UNPKG

trbr

Version:

TraceBreaker is a simple tool to decode and analyze ESP backtraces

1 lines 134 kB
{"version":3,"file":"lib/lib.mjs","mappings":"4CACA,IAAIA,EAAsB,CCA1BA,EAAwB,CAACC,EAASC,KACjC,IAAI,IAAIC,KAAOD,EACXF,EAAoBI,EAAEF,EAAYC,KAASH,EAAoBI,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDH,EAAwB,CAACS,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,I,yICE3E,MAAMI,UAAmBC,MAC9BC,WAAAA,GACEC,MAAM,cACNC,KAAKC,KAAO,aACZD,KAAKE,KAAO,WACd,EAGK,MAAMC,GAAc,IAAIC,iBAAkBC,OCV3C,EAA+BC,cAA6CC,IAA7CD,CAAkD,oBCAjF,EAA+BA,cAA6CC,IAA7CD,CAAkD,WCAjF,EAA+BA,cAA6CC,IAA7CD,CAAkD,aCAjF,EAA+BA,cAA6CC,IAA7CD,CAAkD,wBCAjF,EAA+BA,cAA6CC,IAA7CD,CAAkD,sBCoDhF,SAASE,EAAWC,GACzB,OAAOA,EACJC,MAAM,SACNC,KAAKC,GAASA,EAAKC,SACnBC,OAAOC,SACPJ,KAAKK,GAQH,SAAmBJ,GAExB,MAAMK,EAAW,CAEf,0FAEA,iEAEA,8EAEA,qEAEA,oEAEA,wCAEA,wDAGF,IAAK,MAAOC,EAAGC,KAAYF,EAASG,UAAW,CAC7C,MAAMC,EAAQT,EAAKS,MAAMF,GACzB,GAAIE,EAAO,CAET,GAAU,IAANH,GAAiB,IAANA,EAAS,CACtB,MAAO,CAAEI,EAASC,EAAQC,EAAMC,GAAcJ,EAC9C,OAAOK,EAAoB,CAAEJ,UAASC,SAAQC,OAAMC,cACtD,CAEA,GAAU,IAANP,EAAS,CACX,MAAO,CAAEI,EAASC,EAAQC,EAAMC,GAAcJ,EAC9C,OAAOK,EAAoB,CAAEJ,UAASC,SAAQC,OAAMC,cACtD,CAEA,GAAU,IAANP,EAAS,CACX,MAAO,CAAEI,EAASC,EAAQC,EAAMC,GAAcJ,EAC9C,OAAOK,EAAoB,CAAEJ,UAASC,SAAQC,OAAMC,cACtD,CAEA,GAAU,IAANP,EAAS,CACX,MAAO,CAAEI,EAASC,EAAQC,GAAQH,EAClC,OAAOK,EAAoB,CAAEJ,UAASC,SAAQC,OAAMC,WAAY,MAClE,CAEA,GAAU,IAANP,EAAS,CACX,MAAO,CAAEI,EAASE,EAAMC,GAAcJ,EACtC,OAAOK,EAAoB,CAAEJ,UAASC,OAAQ,KAAMC,OAAMC,cAC5D,CAEA,GAAU,IAANP,EAAS,CACX,MAAO,CAAEK,EAAQC,EAAMC,GAAcJ,EACrC,OAAOK,EAAoB,CAAEJ,QAAS,KAAMC,SAAQC,OAAMC,cAC5D,CACF,CACF,CAEA,MAAME,EAAgBf,EAAKS,MACzB,wEAEF,GAAIM,EAAe,CACjB,MAAO,CAAEL,EAASC,GAAUI,EAC5B,OAAOD,EAAoB,CACzBJ,UACAC,OAAQA,EAAOV,OACfW,KAAM,KACNC,WAAY,MAEhB,CAGF,CA7EoBG,CAAUZ,KACzBF,OAAOe,IAAaC,GACzB,CA2FA,SAASJ,EAAoBK,GAC3B,MAAM,KAAEP,EAAI,WAAEC,EAAU,OAAEF,EAAM,QAAED,GAAYS,EACxCC,EA3IR,SAA8BC,GAC5B,MAAMC,EAAYD,EAAIZ,MAAM,yBAC5B,IAAKa,EACH,MAAO,CAAEjC,KAAMgC,EAAIpB,OAAQsB,KAAM,IAGnC,MAAO,CAAElC,EAAMmC,GAAWF,EACpBC,EACJC,EAAQf,MAAM,kCAAkCV,KAAK0B,IACnD,MAAMC,EAAQD,EAAI3B,MAAM,KACxB,GAAqB,IAAjB4B,EAAMC,OAAc,CACtB,MAAOtC,EAAMuC,GAASF,EAAM3B,KAAK8B,GAAMA,EAAE5B,SACzC,MAAO,CAAEZ,OAAMuC,QACjB,CACE,MAAO,CAAEvC,KAAMoC,EAAIxB,OACrB,KACI,GACR,MAAO,CAAEZ,KAAMA,EAAKY,OAAQsB,OAC9B,CAyHuBO,CAAqBnB,GAEpCoB,EAAenB,GAAiB,KAATA,GAAwB,OAATA,EACtCoB,EAAenB,GAA6B,KAAfA,GAAoC,OAAfA,EAExD,GAAIkB,GAAgBC,EAAc,CAChC,MAAMC,EAAS,CACbvB,UACAC,OAAQS,EAAa/B,KACrBuB,KAAMmB,EAAenB,EAAO,KAC5BC,WAAYmB,EAAenB,EAAa,MAK1C,OAHIO,EAAaG,MAAQH,EAAaG,KAAKI,OAAS,GAClDpD,OAAO2D,OAAOD,EAAQ,CAAEV,KAAMH,EAAaG,OAEtCU,CACT,CAEA,MAAME,EACJf,EAAa/B,MACS,KAAtB+B,EAAa/B,MACS,OAAtB+B,EAAa/B,MACS,UAAtB+B,EAAa/B,KAEf,OAAK2C,GAAgBG,EACZ,CAAEzB,UAASG,WAAYO,EAAa/B,MAGtC,CAAEqB,UAASG,WAAYA,GAAc,KAC9C,CCpGO,SAASuB,EAAYC,EAAS,GACnC,MAAO,KAAKA,EAAOC,SAAS,IAAIC,SAAS,EAAG,MAC9C,CCpEA,MAAMC,EAAS,QAKf,MAAMC,EAKJvD,WAAAA,EAAY,SAAEwD,EAAQ,QAAEC,GAAWC,EAAU,CAAC,GAC5CxD,KAAKsD,SAAWA,EAChBtD,KAAKuD,QAAUA,EACfvD,KAAKyD,MAAQ,KACbzD,KAAK0D,wBAAyB,EAC9B1D,KAAK2D,KAAMC,EAAAA,EAAAA,OAAMN,EAAU,CAACC,GAAU,CACpCM,MAAO,OACPxD,OAAQmD,EAAQnD,SAElBL,KAAK8D,OAAS,GAEd9D,KAAK+D,MAAQ,GACb/D,KAAKgE,QAAU,KACfhE,KAAK2D,IAAIlD,OAAOwD,GAAG,QAASC,GAAUlE,KAAKmE,QAAQD,KACnDlE,KAAK2D,IAAIS,OAAOH,GAAG,QAASC,GAAUlE,KAAKmE,QAAQD,KACnDlE,KAAK2D,IAAIM,GAAG,SAAUI,GAAQrE,KAAKgE,SAASM,OAAOD,KACnDrE,KAAK2D,IAAIM,GAAG,QAAQ,CAAC/D,EAAMG,KACZ,IAATH,GAAyB,YAAXG,GAChBkE,QAAQC,KAAK,wBAAwBtE,eAAkBG,IACzD,GAEJ,CAGA8D,OAAAA,CAAQD,GAEN,GADAlE,KAAK8D,QAAUI,EAAMhB,YAChBlD,KAAKgE,QACR,OAEF,MAAMS,EAAMzE,KAAK8D,OAAOY,QAAQtB,GAChC,IAAa,IAATqB,EACF,OAEF,MAAME,EAAS3E,KAAK8D,OAAOc,MAAM,EAAGH,GACpCzE,KAAK8D,OAAS9D,KAAK8D,OAAOc,MAAMH,EAAMrB,GACtC,MAAM,QAAEyB,GAAY7E,KAAKgE,QACzBhE,KAAKgE,QAAU,KACfa,EAAQF,GACR3E,KAAK8E,eACP,CAEAA,aAAAA,GACE,MAAMC,EAAO/E,KAAK+D,MAAMiB,QACxB,GAAIhF,KAAKgE,UAAYe,EACnB,OAEF,MAAM,IAAEE,EAAG,QAAEJ,EAAO,OAAEP,GAAWS,EACjC/E,KAAKgE,QAAU,CAAEa,UAASP,UAC1BtE,KAAK2D,IAAIuB,MAAMC,MAAMF,EAAM,KAC7B,CAEAG,KAAAA,GACE,OAAO,IAAIC,SAAQ,CAACR,EAASP,KAE3B,MAYMgB,EAAgCpB,IAEpC,IACGlE,KAAK0D,wBACN1D,KAAK8D,OAAOyB,SA7EQ,6BAqFpB,YANKvF,KAAKyD,QACRzD,KAAKyD,MAAQ,IAAI5D,MACf,mDAAmDG,KAAKuD,WAE1De,EAAOtE,KAAKyD,SAMhB,IACGzD,KAAK0D,yBACL1D,KAAK8D,OAAOyB,SA7FK,6BA8FhBvF,KAAK8D,OAAOyB,SA7FQ,+BAqGtB,YANKvF,KAAKyD,QACRzD,KAAKyD,MAAQ,IAAI5D,MACf,6CAA6CG,KAAKuD,WAEpDe,EAAOtE,KAAKyD,SAKhBzD,KAAK8D,QAAUI,EAAMhB,WACrB,MAAMuB,EAAMzE,KAAK8D,OAAOY,QAAQtB,IACnB,IAATqB,IACFzE,KAAK8D,OAAS9D,KAAK8D,OAAOc,MAAMH,EAAMrB,GACtCyB,EAAQ,IACV,EAEF7E,KAAK2D,IAAIM,GAAG,SAjD0BR,IACpC,IAAI+B,EAAY/B,EAEdA,aAAiB5D,OACjB,SAAU4D,GACK,WAAfA,EAAMvD,OAENsF,EAAY,IAAI3F,MAAM,yBAAyBG,KAAKsD,aAEtDgB,EAAOkB,EAAU,IAyCnBxF,KAAK2D,IAAIlD,OAAOwD,GAAG,OAAQqB,GAC3BtF,KAAK2D,IAAIS,OAAOH,GAAG,OAAQqB,EAAO,GAEtC,CAGA,UAAMG,CAAKR,GACT,GAAIjF,KAAKyD,MAEP,OADAzD,KAAK0F,QACEL,QAAQf,OAAOtE,KAAKyD,OAE7B,MAAMZ,QAAe,IAAIwC,SAAQ,CAACR,EAASP,KACzCtE,KAAK+D,MAAM4B,KAAK,CAAEV,MAAKJ,UAASP,WAChCtE,KAAK8E,eAAe,IAItB,OADA9E,KAAK0D,wBAAyB,EACvBb,CACT,CAEA,WAAM6C,GACC1F,KAAK2D,IAAIiC,SACZ5F,KAAK2D,IAAIuB,MAAMW,MACf7F,KAAK2D,IAAImC,KAAK,WACmB,iBAAtB9F,KAAK2D,IAAIoC,gBACZ,IAAIV,SAASR,GAAY7E,KAAK2D,IAAIqC,KAAK,OAAQnB,KAG3D,EA0CKoB,eAAeC,GAAU,QAAE3C,EAAO,SAAED,GAAY6C,EAAO3C,EAAU,CAAC,GACvE,MAAM4C,EA9BR,SAA6BD,GAE3B,MAAME,EAAe,IAAIC,IACzB,IAAK,MAAMC,KAAQJ,EAAO,CACxB,IAAIK,EACgB,iBAATD,EACTC,EAAaD,EAAKA,KACO,iBAATA,IAChBC,EAAaD,QAEIE,IAAfD,GAA6BH,EAAaK,IAAIF,IAChDH,EAAaM,IAAIH,EAErB,CACA,OAAOI,MAAMC,KAAKR,EAAaS,SACjC,CAeoBC,CAAoBZ,GACtC,IAAKC,EAAU7D,OACb,MAAM,IAAI1C,MAAM,yCAGlB,MAAMmH,EAAU,IAAIC,IACdC,EAAU,IAAI7D,EAAW,CAAEE,UAASD,YAAYE,GAEtD,UACQ0D,EAAQ9B,cACR8B,EAAQzB,KAAK,4BACbyB,EAAQzB,KAAK,kBACnB,IAAK,MAAMc,KAAQH,EAAW,CAC5B,MAAMe,EAAMnE,EAAYuD,GAExB,IAAIa,EAAc5G,QADO0G,EAAQzB,KAAK,SAAS0B,MAE3CE,EAAWD,EAAYE,KAAKxF,IAC3BuF,IAEHD,EAAc5G,QADW0G,EAAQzB,KAAK,cAAc0B,MAEpDE,EAAWD,EAAYE,KAAKxF,KAE9BkF,EAAQO,IAAIhB,EAAM,CAChBA,OACAc,SAAUA,GAAY,CAAE/F,QAAS6F,EAAK1F,WAAY,OAEtD,CACF,CAAE,cACMyF,EAAQxB,OAChB,CAEA,OAAOS,EAAMxF,KAAK6G,IAChB,MAAMjB,EAA6B,iBAAfiB,EAA0BA,EAAWjB,KAAOiB,EAChE,OAAOR,EAAQ1H,IAAIiH,IAAS,CAAEc,SAAU,KAAM,GAElD,CCnJO,MAAMI,EAMX3H,WAAAA,CAAY4H,EAASvF,EAAMqB,EAAU,CAAC,GACpCxD,KAAK2H,GAAKA,EAAAA,MAASD,EAASvF,EAAM,CAAE0B,MAAO,OAAQxD,OAAQmD,EAAQnD,SAEnEL,KAAKyD,WAAQgD,EAEbzG,KAAK4H,aAAe,GAEpB5H,KAAKK,OAASmD,EAAQnD,OAClBL,KAAKK,QACPL,KAAKK,OAAOwH,iBAAiB,SAAS,KACpC,MAAMC,EAAW,IAAIlI,EACrBI,KAAKyD,MAAQqE,EACb9H,KAAK4H,aAAaG,SAASC,GAAaA,EAAS1D,OAAOwD,KACxD9H,KAAK4H,aAAe,EAAE,IAI1B5H,KAAKiI,aAAe,GACpBjI,KAAK2H,GAAGlH,OAAOwD,GAAG,QAASC,GAAUlE,KAAKmE,QAAQD,KAClDlE,KAAK2H,GAAGvD,OAAOH,GAAG,QAASC,GAAUlE,KAAKmE,QAAQD,KAClDlE,KAAK2H,GAAG1D,GAAG,SAAUI,IACnBrE,KAAKyD,MAAQY,EACbrE,KAAK4H,aAAaG,SAASC,GAAaA,EAAS1D,OAAOD,KACxDrE,KAAK4H,aAAe,EAAE,GAE1B,CAMAM,WAAAA,CAAYC,GACV,OAAInI,KAAKyD,MACA4B,QAAQf,OAAOtE,KAAKyD,OAEtB,IAAI4B,SAAQ,CAACR,EAASP,KAC3B,MAAM0D,EAAW,CAAEnD,UAASP,UAC5BtE,KAAK4H,aAAajC,KAAKqC,GACvBhI,KAAK2H,GAAGzC,MAAMC,MAAM,GAAGgD,MAAY,GAEvC,CAGAhE,OAAAA,CAAQD,GAON,GANIlE,KAAKyD,QACPzD,KAAK4H,aAAaG,SAASC,GAAaA,EAAS1D,OAAOtE,KAAKyD,SAC7DzD,KAAK4H,aAAe,IAGtB5H,KAAKiI,cAAgB/D,EAAMhB,WACvB,eAAekF,KAAKpI,KAAKiI,cAAe,CAC1C,MAAMtD,EAAS3E,KAAKiI,aACpBjI,KAAKiI,aAAe,GACpB,MAAMD,EAAWhI,KAAK4H,aAAa5C,QACnCgD,GAAUnD,QAAQF,EACpB,CACF,CAEAe,KAAAA,GACE1F,KAAK2H,GAAGzC,MAAMW,MACd7F,KAAK2H,GAAG7B,MACV,CAGA,oBAAMuC,GACJ,OAAO,IAAIhD,SAAQ,CAACR,EAASP,KAC3B,MAAMgB,EAAgCpB,IACpC,GAAIlE,KAAKyD,MAGP,OAFAzD,KAAK2H,GAAGlH,OAAO6H,IAAI,OAAQhD,QAC3BhB,EAAOtE,KAAKyD,OAGdzD,KAAKiI,cAAgB/D,EAAMhB,WACvB,eAAekF,KAAKpI,KAAKiI,gBAC3BjI,KAAK2H,GAAGlH,OAAO6H,IAAI,OAAQhD,GACvBtF,KAAKK,QACPL,KAAKK,OAAOkI,oBAAoB,QAASC,GAE3CxI,KAAKiI,aAAe,GACpBpD,IACF,EAEI2D,EAAUA,KACdxI,KAAK2H,GAAGlH,OAAO6H,IAAI,OAAQhD,GAC3BtF,KAAKK,QAAQkI,oBAAoB,QAASC,GAC1ClE,EAAO,IAAI1E,EAAa,EAE1BI,KAAK2H,GAAGlH,OAAOwD,GAAG,OAAQqB,GAC1BtF,KAAKK,QAAQwH,iBAAiB,QAASW,EAAQ,GAEnD,EASF,SAASC,EAAeC,GAEtB,MAAM7F,EAAS,CAAC,EAGV8F,EAAUD,EAAQrH,MACtB,qDAEF,GAAIsH,EAAS,CACX,MAAMC,EAAQD,EAAQ,GAChBE,EAAQ,+CACd,IAAK,MAAMC,KAAKF,EAAMG,SAASF,GAC7BhG,EAAOiG,EAAE,IAAMA,EAAE,GAEnB,OAAOjG,CACT,CAGA,MAAM7B,EAAQ0H,EAAQhI,MAAM,SAC5B,IAAK,MAAME,KAAQI,EAAO,CACxB,MAAMK,EAAQT,EAAKS,MAAM,mCACzB,GAAIA,EAAO,CACT,MAAO,CAAEpB,EAAMuC,GAASnB,EACxBwB,EAAO5C,GAAQuC,CACjB,CACF,CAEA,OAAOK,CACT,CAwDOoD,eAAe+C,EACpBC,EACAC,EACA1F,EAAU,CAAC,EACX2F,GAAY,GAEZ,MAAM,QAAE5F,EAAO,SAAED,GAAa2F,GACxB,UAAEG,GAAcF,EAChBG,EAAS,IAAI5B,EACjBnE,EACA,CAAC,oBAAqB,KAAM8F,EAAW7F,GACvCC,GAGIwD,EAAU,GAEhB,UAEQqC,EAAOhB,iBAEb,MAAMiB,QAAmBD,EAAOnB,YAAY,gBAEtCqB,EAAqBD,EAAWjI,MAAM,6BACtCmI,EAAkBD,EAAqBA,EAAmB,GAAK,KAG/DE,EA1DV,SAA+BC,GAC7B,MACMjF,EAAMiF,EAAIhF,QADGzF,aAEnB,GAAIwF,EAAM,EACR,OAEF,MAAMW,EAAQsE,EAAIhF,QAAQ,IAAKD,GAC/B,GAAIW,EAAQ,EACV,OAEF,IAAIuE,EAAQ,EACZ,IAAK,IAAIzI,EAAIkE,EAAOlE,EAAIwI,EAAInH,OAAQrB,IAAK,CACvC,MAAM0I,EAAIF,EAAIxI,GACd,GAAU,MAAN0I,EACFD,SACK,GAAU,MAANC,IACTD,IACc,IAAVA,GACF,OAAOD,EAAIG,UAAUzE,EAAQ,EAAGlE,EAGtC,CAEF,CAmC2B4I,CAAsBR,GAEvCS,EAAgB,GACtB,GAAIN,EAAgB,CAElB,MAAMO,EAAO,GACb,IAAIL,EAAQ,EACRM,GAAY,EAChB,IAAK,IAAI/I,EAAI,EAAGA,EAAIuI,EAAelH,OAAQrB,IAAK,CAC9C,MAAMgJ,EAAKT,EAAevI,GACf,MAAPgJ,GACY,IAAVP,IACFM,EAAW/I,GAEbyI,KACgB,MAAPO,IACTP,IACc,IAAVA,GAAeM,GAAY,GAC7BD,EAAKrE,KAAK8D,EAAe7E,MAAMqF,EAAU/I,EAAI,IAGnD,CAEA,IAAK,MAAMiJ,KAAUH,EAAM,CACzB,MAAMlB,EAAI,iDAAiDrD,KAAK0E,GAC5DrB,GACFiB,EAAcpE,KAAK,CAACmD,EAAE,GAAIA,EAAE,IAEhC,CACF,CACA,MAAMsB,EAAYL,EAAcpJ,KAAI,EAAE0J,KAAQA,IACxCC,EAAanL,OAAOoL,YACxBR,EAAcpJ,KAAI,EAAE0J,EAAIG,KAAS,CAACH,EAAII,OAAOD,OAG/C,IAAK,MAAME,KAAON,EAAW,OACrBf,EAAOnB,YAAY,kBAAkBwC,KAE3C,MACMC,SADoBtB,EAAOnB,YAAY,8BACZ7G,MAAM,4BACjCuJ,EAAWD,EACbA,EAAa,GACVjK,MAAM,KACNC,KAAK8B,GAAMA,EAAE5B,OAAOgK,QAAQ,SAAU,MACtClK,KAAI,CAACV,EAAMiB,IAAM,CAACA,EAAEgC,WAAYjD,KAChCa,QAAO,EAAE,CAAEb,OAAYA,IAC1B,GACE6K,EAAa3L,OAAOoL,YAAYK,GAGhCG,EAAatC,QADGY,EAAOnB,YAAY,iCAGnC8C,EAAc7L,OAAOoL,YACzBpL,OAAOiC,QAAQ2J,GACZpK,KAAI,EAAEsK,EAAKC,KAAS,CAACJ,EAAWG,GAAMR,OAAOS,MAC7CpK,QAAO,EAAEb,OAAYA,KAGpBkL,EAAiBH,EAAgB,GAEjCI,QAAc/B,EAAOnB,YAAY,sBAMjCmD,SAJgBhC,EAAOnB,YAC3B,gDAG4B7G,MAAM,4BAEpC,IAAIiK,EAAY,GAChB,GAAID,EAAe,CACjB,MAEM/I,EAFU+I,EAAc,GAER3K,MAAM,iBAAiBC,KAAI,CAAC4K,EAAM9G,IAC1C,IAARA,EACK8G,EAAO,IAET,UAAYA,EAAO,MAE5BD,EAAYhJ,EAAM3B,KAAK6K,IACrB,MAAMC,EAAWD,EAASnK,MAAM,uBAC1BqK,EAAMD,EAAWA,EAAS,GAAK,GAE/BlM,EAAM,CAAE4C,KAAM,IAEdwJ,EAAaD,EAAIrK,MAAM,iBACzBsK,IACFpM,EAAIqM,MAAQD,EAAW,IAGzB,MAAME,EAAiBH,EAAIrK,MAAM,sBACjC,GAAIwK,GAAkBA,EAAe,GAAGhL,OAAQ,CAC9C,MAAMiL,EAAcD,EAAe,GAC7BE,EACJ,qDACF,IAAIjD,EACJ,KAAQA,EAAIiD,EAAStG,KAAKqG,IACxBvM,EAAI4C,KAAKwD,KAAK,CAAE1F,KAAM6I,EAAE,GAAIkD,KAAMlD,EAAE,GAAItG,MAAOsG,EAAE,IAErD,CACA,OAAOvJ,CAAG,GAEd,MACE+L,EAAY,GAGd,MACMW,EArLM,IAoLoBb,EApLZrC,SAAS,uBAAuBpI,KAAKU,IAE3D,MAAM9B,EAAM,CAAC,EACb,IAAK,MAAM2M,KAAQ7K,EAAM,GAAGX,MAAM,KAAM,CACtC,MAAOzB,EAAKiM,GAAOgB,EAAKxL,MAAM,KAC9BnB,EAAIN,GAAOiM,GAAKiB,WAAW,KAAOjB,EAAItG,MAAM,GAAI,GAAKsG,CACvD,CACA,OAAO3L,CAAG,IA8KyBoB,KAAI,CAACyL,EAAOC,KAC3C,MAAMlK,EAAOmJ,EAAUe,IAAQlK,MAAQ,GACvC,MAAO,CACLb,QAAS8K,EAAM7F,KACf9E,WAAY2K,EAAMxL,MAAQ,QACtBwL,EAAME,MAAQF,EAAM5K,KACpB,CAAED,OAAQ6K,EAAME,KAAM9K,KAAM4K,EAAM5K,KAAMW,QACxC,CAAC,EACN,IAGH6E,EAAQrB,KAAK,CACX4G,SAAU7B,EACV8B,IAAKlC,EAAWI,GAChB7H,OAAQ,CACN4J,UAAW,CACTC,OAAQC,SAASjC,GACjBS,eAAgB,CACd5E,KAAM4E,EACN9D,SAAU4E,EAAgB,IAAM,CAC9B3K,QAAS0B,EAAYmI,GACrB1J,WAAY,OAGhBmL,eAAWnG,GAEboG,KAAM7B,EACNiB,mBAEFjI,QAAS0G,IAAQlB,GAErB,CACF,CAAE,QACAH,EAAO3D,OACT,CAEA,IAAKsB,EAAQzE,QAAU4G,EAAW,CAChC,MAAMuC,QAAYoB,EAAAA,SAAY5D,EAAME,WAC9B2D,QAxaV9G,eAAiCgD,EAAQyC,GACvC,MAAMsB,EAAgBC,OAAOpG,KAAK,CAAC,IAAM,GAAM,GAAM,KAC/CqG,EAASxB,EAAIhH,QAAQsI,GAC3B,IAAgB,IAAZE,EAAe,CAEjB,MAAMC,EAAUzB,EAAI0B,aAAaF,EAAS,IACpCG,EAAc3B,EAAI4B,aAAaJ,EAAS,IACxCK,EAAU7B,EAAI4B,aAAaJ,EAAS,IAcpCM,EAbS,MACb,IAAIC,EAAM,EACV,IAAK,IAAIvM,EAAI,EAAGA,EAAIqM,EAASrM,IAAK,CAChC,MAAMwM,EAAcR,EAASC,EAAUjM,EAAImM,EAGrCxH,EAFW6F,EAAI0B,aAAaM,EAAc,GAC/BhC,EAAI0B,aAAaM,EAAc,IAE5C7H,EAAM4H,IACRA,EAAM5H,EAEV,CACA,OAAO4H,CACR,EAZc,GAcf,GAAI/B,EAAInJ,QAAU2K,EAASM,EAAc,CACvC,MAAMG,EAAYjC,EAAIkC,SAASV,EAAQA,EAASM,GAC1CK,QAAmBf,EAAAA,QAAWgB,EAAAA,KAAUC,EAAAA,SAAa,UACrDC,EAAmBF,EAAAA,KAAUD,EAAY,uBACzCf,EAAAA,UAAakB,EAAkBL,GACrC,IASE,aARqB3E,EACnB,IACKC,GAEL,CAAEG,UAAW4E,QAwYIC,GAtYjB,EAGJ,CAAE,cACMnB,EAAAA,GACAe,EAAY,CAAEK,WAAW,EAAMC,OAAO,IACzCC,OAAO/J,GAAQE,QAAQC,KAAK,+BAAgCH,IACjE,CACF,CACF,CAEF,CA2X2B4J,CAAkBhF,EAAQyC,GACjD,GAAIqB,EACF,OAAOA,CAEX,CAEA,OAAO/F,CACT,CCpcO,MAAMqH,EAAQ,CACnBC,sBAA8CC,GAC5C,8BAA8BA,KCO3BtI,eAAeR,EAAKjE,EAAMW,EAAO,GAAIqB,EAAU,CAAC,GACrD,OAAO,IAAI6B,SAAQ,CAACR,EAASP,MAC3BkK,EAAAA,EAAAA,UAAShN,EAAMW,EAAMqB,GAAS,CAACC,EAAOhD,EAAQ2D,KACxCX,EACFa,EAAOb,GAEPoB,EAAQ,CACNpE,OAAQA,EAAOyC,WACfkB,OAAQA,EAAOlB,YAEnB,GACA,GAEN,CCJO+C,eAAewI,GACpB,eAAEC,EAAc,KAAEC,EAAI,qBAAEC,EAAoB,eAAEC,GAC9CrL,GAWA,OAAOsL,EAAgB,CAAEH,OAAMI,sBATDC,EAC5B,CACEN,iBACAC,OACAE,iBACAD,wBAEFpL,IAGJ,CAMOyC,eAAe+I,GACpB,eAAEN,EAAc,KAAEC,EAAI,qBAAEC,EAAoB,eAAEC,GAC9CrL,GAEA,MAAM,OAAE/C,SAyIVwF,gBAAgC,KAC9B0I,EAAI,eACJD,EAAc,qBACdE,EAAoB,eACpBC,EAAc,OACdxO,IAEA,MAAM8B,EAAO,CAAC,QAAS,UAAW,KAAMwM,EAAKzL,WAAY,WAAY,QAOrE,OANI0L,GACFzM,EAAKwD,KAAK,gBAAiBiJ,GAEzBC,GACF1M,EAAKwD,KAAK,oBAAqBkJ,GAE1BpJ,EAAKiJ,EAAgBvM,EAAM,CAAE9B,UACtC,CAxJ2B4O,CAAiB,CACxCP,iBACAC,OACAC,uBACAC,iBACAxO,OAAQmD,GAASnD,UAGb,iBAAE6O,GAAqBC,KAAKC,MAAM3O,GACxC,OAA4ByO,EAmJVG,QAAO,CAACC,EAAKC,KAC7B,MAAMxN,EAWV,SAAuByN,GACrB,MAAMC,EAAWD,EAAS9O,MAAMgP,GAChC,GAAID,EAASlN,OAAS,EAEpB,YADAgC,QAAQC,KAAK,mCAAmCgL,MAGlD,MAAOvQ,KAAQ0Q,GAAQF,EACvB,OAAKxQ,EAKE,CAACA,EADM0Q,EAAKC,KAAKF,SAHtBnL,QAAQC,KAAK,8CAA8CgL,KAK/D,CAxBkBK,CAAcN,GAC5B,GAAIxN,EAAO,CACT,MAAO9C,EAAKuD,GAAST,EACrBuN,EAAIrQ,GAAOuD,CACb,CACA,OAAO8M,CAAG,GAC8B,CAAC,EAzJ7C,CAOA,MAAMQ,EAAwC,CAC5C,UACA,UACA,UACA,UACA,UACA,WAEWC,EAA0C,SAehD,SAASC,EAAkB3N,GAChC,MACiB,iBAARA,GACPyN,EAAgBvK,SAAyClD,EAE7D,CAEA,MAAM4N,EAAW,YAMV,SAASC,GAAe,gBAAEnB,IAC/B,MAAMoB,EAAMpB,EAAgBkB,GAC5B,OAAID,EAAkBG,GACbA,EAEFJ,CACT,CAEA,MAAMK,EAAQ,QAERC,EAAyB,IAAI/J,IAAI,CAAC8J,EADxB,YAGVE,EAAe,SACfC,EAAgB,QAEhBC,EAAa,cACbC,EAAc,eAYbxK,eAAe6I,GAAgB,KAAEH,EAAI,gBAAEI,IAC5C,MAAM,KAAE2B,GAAS/B,EACjB,IAAK0B,EAAuB3J,IAAIgK,GAC9B,MAAM,IAAI7Q,MAAM,oCAAoC8O,MAEtD,IAAIgC,EAAQL,EACRM,EAASL,EACTG,IAASN,IACXO,EAAQ5B,EAAgByB,IAAeF,EACvCM,EAAS7B,EAAgB0B,IAAgBF,GAG3C,MAAMM,EAAY,GAAGF,KAASC,QACxBE,EAAU,GAAGH,gBACbhN,ECvIC,GDuI8BkN,QCvIK,UAArBE,QAAQC,SAAuB,OAAS,KD0I7D/K,eAAeqB,EAAKrI,GAClB,MAAMuD,EAAQuM,EAAgB9P,GAC9B,GAAIuD,EAAO,CACT,MAAMc,EAAWwK,EAAAA,KAAUtL,EAAO,MAAOmB,GACzC,IAEE,aADMmJ,EAAAA,OAAUxJ,GACTA,CACT,CAAE,MAAO,CACX,CAEF,CAIA,MAAM2N,EAAc,SAASH,SACvBI,EAAmB,SAASL,aAO5BvN,SANkB+B,QAAQ8L,IAAI,CAClC7J,EAAK,WAAW2J,KAChB3J,EAAK,WAAW4J,KAChB5J,EAAK2J,GACL3J,EAAK4J,MAEoB5J,MAAM8J,GAAMA,IACvC,IAAK9N,EACH,MAAM,IAAIzD,MAAM,gCAAgC8O,MAElD,OAAOrL,CACT,CAyCA,MAAMoM,EAAc,IElGb,SAAS2B,EAAqBpI,GACnC,MAAO,iBAAkBA,GAAUlI,QAAQkI,EAAOqI,aACpD,CA2COrL,eAAesL,EAAmBtI,GAEvC,IAAI3F,EAEAiL,EAEJ,GA3CF,SAA0BtF,GACxB,MAAO,aAAcA,GAAqC,iBAApBA,EAAO3F,QAC/C,CAyCMkO,CAAiBvI,GACnB3F,EAAW2F,EAAO3F,SAClBiL,EAAatF,EAAOsF,YAAcwB,OAC7B,GAtCT,SAAiC9G,GAC/B,MACE,oBAAqBA,GAA4C,iBAA3BA,EAAO8F,eAEjD,CAkCa0C,CAAwBxI,GACjC3F,QAAiBwL,EAAgB7F,GACjCsF,EAAa2B,EAAejH,OACvB,KA/BT,SAA4BA,GAC1B,MAAO,mBAAoBA,GAA2C,iBAA1BA,EAAOyF,cACrD,CA6BagD,CAAmBzI,GAQ5B,MAAM,IAAIpJ,MACR,0CAA0CsP,KAAKwC,UAAU1I,MATtB,CACrC,MAAM8F,QAAwBC,EAAuB/F,GACrD3F,QAAiBwL,EAAgB,CAC/BH,KAAM1F,EAAO0F,KACbI,oBAEFR,EAAa2B,EAAe,CAAEnB,mBAChC,CAIA,CAGA,MAAM6C,EAAe,CACnBrO,QAAS0F,EAAO1F,QAChBD,WACAiL,cAGF,OAAK8C,EAAqBpI,GAInB,IAAK2I,EAAcN,cAAc,GAH/BM,CAIX,CClMA,MAAM,EAA+BtR,cAA6CC,IAA7CD,CAAkD,YC6BjFuR,EAA8C,CAClD,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,KACA,KACA,KACA,KACA,QAIWC,EAAsC,CACjDC,QAASC,EACTC,QAASD,EACTE,QAASF,EACTG,QAASH,EACTI,QAASJ,EACTK,QAASL,GAILM,EAAc,CAClBP,QAASF,EACTI,QAASJ,EACTK,QAASL,EACTM,QAASN,EACTO,QAASP,EACTQ,QAASR,GAsKX,SAASU,GAAiB,MAAErJ,EAAK,OAAE0H,IACjC,MAAM,SAAE4B,EAAQ,UAAEC,EAAS,eAAEtH,EAAc,UAAEuH,EAAS,UAAE9F,GArH1D,UAAe,MAAE1D,EAAK,OAAE0H,IACtB,MAAM5P,EAAQkI,EAAMxI,MAAM,YAEpB8R,EAAW,GAEXC,EAAY,GAElB,IAAIE,EAGA/F,EAEA8F,EAJAE,GAAgB,EAKhBzH,EAAiB,EAErB,MAAM0H,EA1DR,SAAgC7G,GAC9B,MAAM8G,EAAWR,EAAYtG,GAC7B,IAAK8G,EACH,MAAM,IAAIjT,MAAM,uBAAuBmM,KAGzC,OAAQ+G,GACND,EAASvN,SACgDwN,EAE7D,CAgD2BC,CAAuBpC,GA4ChD,OA1CA5P,EAAM+G,SAASnH,IACb,GAAIA,EAAKuL,WAAW,QAAS,CAC3B,MAAM9K,EAAQT,EAAKS,MAAM,kCACrBA,IACFsR,EAAiB,CACfjG,OAAQC,SAAStL,EAAM,GAAI,IAC3BwL,KAAM,CAAC,GAET2F,EAAS7M,KAAKgN,GAElB,MAAO,GAAIA,IAAmBC,EAAe,CAC3C,MAAMK,EAAarS,EAAKmI,SAAS,yCACjC,IAAK,MAAM1H,KAAS4R,EAAY,CAC9B,MAAMF,EAAU1R,EAAM,GAChBC,EAAUqL,SAAStL,EAAM,GAAI,IAC/BC,GAAWuR,EAAiBE,IAC9BJ,EAAe9F,KAAKkG,GAAWzR,EACf,SAAZyR,IACF5H,EAAiB7J,IAEE,WAAZyR,EACTnG,EAAYtL,EACS,UAAZyR,IACTL,EAAYpR,EAEhB,CACoB,kBAAhBV,EAAKC,SACP+R,GAAgB,EAEpB,MAAO,GAAIA,EAAe,CACxB,MAAMvR,EAAQT,EAAKS,MAAM,+CACzB,GAAIA,EAAO,CACT,MAAM6R,EAAWvG,SAAStL,EAAM,GAAI,IAC9B8R,EAAO9R,EAAM,GAChBR,OACAH,MAAM,OACNC,KAAKwG,GAAQwF,SAASxF,EAAK,MAC9BsL,EAAU9M,KAAK,CAAEuN,WAAUC,QAC7B,CACF,KAGK,CAAEX,WAAUC,YAAW7F,YAAW8F,YAAWvH,iBACtD,CAyDwEiE,CAAM,CAC1ElG,QACA0H,WAEF,GAAwB,IAApB4B,EAASjQ,OACX,MAAM,IAAI1C,MAAM,2BAElB,GAAI2S,EAASjQ,OAAS,EACpB,MAAM,IAAI1C,MAAM,yDAGlB,MAAM,OAAE6M,EAAM,KAAEG,GAAS2F,EAAS,IAC5B,cAAEY,EAAa,UAAEC,GApDzB,UAA6B,UAAEZ,IAC7B,IAAIW,EAAgB,EAChBF,EAAW,EACXI,EAAc,EACdD,EAAYpG,OAAOsG,MAAM,GAsB7B,OApBAd,EAAU1K,SAASnH,IACjB,MAAM4S,EAAeN,EAErB,GADAA,EAAWtS,EAAKsS,SACM,IAAlBE,EACFA,EAAgBF,OAEhB,GAAIA,IAAaM,EAAeF,EAC9B,MAAM,IAAIzT,MAAM,wBAIpB,MAAM4T,EAAWxG,OAAOyG,OACtB9S,EAAKuS,KAAKxS,KAAKgT,GACb1G,OAAOpG,KAAK8M,EAAKzQ,SAAS,IAAIC,SAAS,EAAG,KAAM,UAGpDmQ,EAAcG,EAASlR,OACvB8Q,EAAYpG,OAAOyG,OAAO,CAACL,EAAWI,GAAU,IAG3C,CAAEL,gBAAeC,YAC1B,CAyBuCO,CAAoB,CAAEnB,cAE3D,MAAO,CACL/F,SACAvB,iBACAuH,YACA9F,YACAC,OACAuG,gBACAC,YACAzC,SAEJ,CAaO,MAAMiD,EAEX/T,WAAAA,CAAYmJ,GACVjJ,KAAK8T,UAAY7K,EAAO6K,UACxB9T,KAAK+T,QAAUzB,EAAYrJ,EAAO6K,UAAUlD,QAC5C5Q,KAAKgU,MAAQ/K,EAAO+K,OAAS,MAAS,EACxC,CAMA,WAAM5O,CAAM6D,EAAS,CAAC,GACpB,GAAIjJ,KAAKiU,OACP,MAAM,IAAIpU,MAAM,0BAGlB,MAAM,OAAEQ,EAASF,GAAgB8I,EAC3BgL,EAASC,EAAAA,eACflU,KAAKiU,OAASA,QAER,IAAI5O,SAAQ,CAACR,EAASP,KAC1B,MAAM6P,EAAeA,KACnBnU,KAAKgU,MAAM,cACX1P,EAAO,IAAI1E,GACXI,KAAK0F,OAAO,EAGVrF,EAAO+T,QACTD,KAIF9T,EAAOwH,iBAAiB,QAASsM,GACjCF,EAAOhQ,GAAG,aAAa,KACrB5D,EAAOkI,oBAAoB,QAAS4L,GACpCtP,OAAQ4B,EAAU,IAEpBwN,EAAOI,OAAO,GAAE,IAGlB,MAAMC,EAAUL,EAAOK,UACvB,IAAKA,EAEH,MADAtU,KAAK0F,QACC,IAAI7F,MAAM,0BAElB,GAAuB,iBAAZyU,EAET,MADAtU,KAAK0F,QACC,IAAI7F,MACR,kDAAkDyU,KAqBtD,OAjBAL,EAAOhQ,GAAG,cAAesQ,IACvBA,EAAOtQ,GAAG,QAASkP,IACjB,MAAMrP,EAASqP,EAAKjQ,WACpB,GAAIY,EAAOqI,WAAW,KAIpB,OAHAnM,KAAKgU,MAAM,oBAAoBlQ,KAC/ByQ,EAAOpP,MAAM,UACboP,EAAO1O,MAIL/B,EAAOvB,OAAS,GAA8B,MAAzBuB,EAAOc,OAAO,GAAI,KACzC5E,KAAKgU,MAAM,YAAYlQ,KACvB9D,KAAKwU,eAAe1Q,EAAQyQ,GAC9B,GACA,IAGGD,CACT,CAEA5O,KAAAA,GACE1F,KAAKiU,QAAQvO,QACb1F,KAAKiU,YAASxN,CAChB,CAMA+N,cAAAA,CAAe1Q,EAAQyQ,GACjBzQ,EAAOqI,WAAW,OACpBrI,EAASA,EAAOc,MAAM,IAGxB,MAAMuD,EAAUrE,EAAOc,MAAM,GAAI,GAOjC,GALA2P,EAAOpP,MAAM,KACbnF,KAAKgU,MACH,sBAAsBlQ,EAAOvB,YAAY4M,KAAKwC,UAAU7N,MAE1D9D,KAAKgU,MAAM,gBAAgB7L,KACX,MAAZA,EAEFnI,KAAKgU,MAAM,wBACXhU,KAAKyU,SAAS,MAAOF,QAChB,GAAIpM,EAAQgE,WAAW,OAAShE,EAAQgE,WAAW,MAExDnM,KAAKgU,MAAM,uBACXhU,KAAKyU,SAAS,KAAMF,QACf,GAAgB,iBAAZpM,EAITnI,KAAKgU,MAAM,uBACXhU,KAAKyU,SAAS,KAAMF,QACf,GAAgB,OAAZpM,EAETnI,KAAKgU,MAAM,wBACXhU,KAAKyU,SAAS,MAAOF,QAChB,GAAgB,MAAZpM,EAETnI,KAAK0U,aAAaH,QACb,GAAIpM,EAAQgE,WAAW,KAAM,CAElC,MAAO5F,EAAMoO,GAAQxM,EAClBvD,MAAM,GACNlE,MAAM,KACNC,KAAKiU,GAAMjI,SAASiI,EAAG,MAC1B5U,KAAK6U,YAAYtO,EAAMoO,EAAMJ,EAC/B,MAAWpM,EAAQgE,WAAW,UAAwB,MAAZhE,GAExCnI,KAAKgU,MAAM,uBACXhU,KAAKyU,SAAS,KAAMF,GACpBA,EAAO1O,QAGP7F,KAAKgU,MAAM,4BACXhU,KAAKyU,SAAS,GAAIF,GAEtB,CAMAE,QAAAA,CAAStB,EAAMoB,GAEb,MAGMO,EAAM,IAAI3B,MAFkD,IADhDlG,OAAOpG,KAAKsM,EAAM,SACT9D,QAAO,CAAC0F,EAAKC,IAASD,EAAMC,GAAM,IAE5B9R,SAAS,IAAIC,SAAS,EAAG,OAC1DoR,EAAOpP,MAAM2P,GACb9U,KAAKgU,MAAM,UAAUc,IACvB,CAGAJ,YAAAA,CAAaH,GACX,IAAIU,EAAW,GAOf,IAAK,MAAMlC,KAAW/S,KAAK+T,QAAS,CAClC,MAAMmB,EAASlV,KAAK8T,UAAUjH,KAAKkG,IAAY,EACzCoC,EAAWlI,OAAOsG,MAAM,GAC9B4B,EAASC,cAAcF,GAEvBD,GADkBE,EAASjS,SAAS,MAEtC,CACAlD,KAAKgU,MACH,oBAAoBhU,KAAK+T,QACtBpT,KAAK0U,GAAM,GAAGA,KAAKrS,EAAYhD,KAAK8T,UAAUjH,KAAKwI,IAAM,OACzDzF,KAAK,SAEV5P,KAAKgU,MAAM,sBAAsBiB,KACjCjV,KAAKyU,SAASQ,EAAUV,EAC1B,CAOAM,WAAAA,CAAYS,EAAWX,EAAMJ,GAC3B,MAAMgB,EAAevV,KAAK8T,UAAUV,cAC9BC,EAAYrT,KAAK8T,UAAUT,UAC3BmC,EAAWnC,EAAU9Q,OACrBkT,EAAeF,EAAeC,EAE9BE,EAAiCnP,GACrCgP,GAAgBhP,GAAQA,EAAOkP,EAEjC,IAAI5S,EAAS,GACb,IAAK,IAAI0D,EAAO+O,EAAW/O,EAAO+O,EAAYX,EAAMpO,IAC7CmP,EAAQnP,GAGX1D,GAAUwQ,EAAU9M,EAAOgP,GAAcrS,SAAS,IAAIC,SAAS,EAAG,KAFlEN,GAAU,KAMd7C,KAAKgU,MACH,8BAA8BsB,EAAUpS,SAAS,WAAWyR,WAE9D3U,KAAKgU,MAAM,2BAA2BnR,KACtC7C,KAAKyU,SAAS5R,EAAQ0R,EACxB,EAGF,MAAMoB,EAAa,CACjB,CAAEzV,KAAM,EAAK0V,YAAa,kCAC1B,CAAE1V,KAAM,EAAK0V,YAAa,4BAC1B,CAAE1V,KAAM,EAAK0V,YAAa,uBAC1B,CAAE1V,KAAM,EAAK0V,YAAa,cAC1B,CAAE1V,KAAM,EAAK0V,YAAa,2BAC1B,CAAE1V,KAAM,EAAK0V,YAAa,qBAC1B,CAAE1V,KAAM,EAAK0V,YAAa,gCAC1B,CAAE1V,KAAM,EAAK0V,YAAa,0BAC1B,CAAE1V,KAAM,EAAK0V,YAAa,gCAC1B,CAAE1V,KAAM,EAAK0V,YAAa,gCAC1B,CAAE1V,KAAM,GAAK0V,YAAa,gCAC1B,CAAE1V,KAAM,GAAK0V,YAAa,0BAC1B,CAAE1V,KAAM,GAAK0V,YAAa,mBAC1B,CAAE1V,KAAM,GAAK0V,YAAa,yBA4B5B3P,eAAe4P,EAAmB5M,EAAQ6K,EAAWtQ,EAAU,CAAC,GAC9D,MAAM,QAAED,EAAO,SAAED,GAAa2F,EAC9B,IAAIgL,EACJ,IACE,MAAM,OAAE5T,EAAM,MAAE2T,GAAUxQ,EACpBsS,EAAY,IAAIjC,EAAU,CAAEC,YAAWE,WACvC,KAAE+B,SAAeD,EAAU1Q,MAAM,CAAE/E,WACzC4T,EAAS6B,EAET,MAAM3T,EA7BV,SAA8BoB,EAASwS,GACrC,MAAO,CACL,UACA,KACAxS,EAGA,MACA,kBAAkBwS,IAClB,MACA,KAEJ,CAiBiBC,CAAqBzS,EAASwS,IACrC,OAAEtV,SAAiBgF,EAAKnC,EAAUnB,EAAM,CAAE9B,WAEhD,OAAOI,CACT,CAAE,QACAwT,GAAQvO,OACV,CACF,CA4BOO,eAAe+L,EAAY/I,EAAQC,EAAO1F,GAC/C,MAAMoN,EAAS3H,EAAOsF,WACtB,IAAKyB,EAAkBY,GACrB,MAAM,IAAI/Q,MAAM,uBAAuB+Q,KAIzC,IAAIkD,EAUJ,GAREA,EADmB,iBAAV5K,EACGqJ,EAAiB,CAC3BrJ,QACA0H,WAGU1H,EAGV,mBAAoB4K,EACtB,MAAM,IAAIjU,MACR,0EAIJ,MAAOY,GAAS0K,EAAgB8K,UAAmB5Q,QAAQ8L,IAAI,CAC7D0E,EAAmB5M,EAAQ6K,EAAWtQ,GACtC0C,EAAU+C,EAAQ,CAAC6K,EAAU3I,eAAgB2I,EAAUpB,WAAYlP,KAGrE,OA/CF,SAA4BsQ,EAAW3I,EAAgBuH,EAAWjS,GAChE,MAAMyV,EAAYP,EAAWrO,MAAM6O,GAAMA,EAAEjW,OAAS4T,EAAUlH,YACxDX,EAAkBzL,EAAWC,GAEnC,MAAO,CACLgM,UAAW,CACTC,OAAQoH,EAAUpH,OAClBvB,iBACAuH,YACA9F,UAAWkH,EAAUlH,UACrBwJ,aAAcF,EAAYA,EAAUN,iBAAcnP,GAEpDoG,KAAMiH,EAAUjH,KAChBZ,kBACAoK,eAAW5P,EAEf,CA+BS6P,CAAmBxC,EAAW3I,EAAgB8K,EAAUxV,EACjE,CCleA,MAAM8V,EAAW,WACXZ,EAAa,CACjB,sBACA,sBACA,oGACA,yFACA,gGACA,gFACA,yEACAY,EACA,uEACA,iEACAA,EACAA,EACA,6DACA,4EACA,gEACA,+EACA,mDACA,4DACA,wGACAA,EACA,8HACAA,EACAA,EACAA,EACA,gEACA,yEACA,mGACAA,EACA,+FACA,mGCtFK,SAASC,EAAQC,GACtB,IAAKA,EACH,OAEF,MAAMC,EAAa/J,SACjB9K,GAAU4U,GAAgBA,EAAanV,QAAWmV,GAAgB,IAClE,IAEF,OAAOE,MAAMD,QAAcjQ,EAAYiQ,CACzC,CAmCO,SAASE,EAAwBvU,GACtC,OACU,OAARA,GACe,iBAARA,GACP,cAAeA,GACU,iBAAlBA,EAAI+G,SAEf,CAMO,SAASyN,EAA0BxU,GACxC,OACU,OAARA,GACe,iBAARA,GACP,gBAAiBA,GACjBA,EAAIyU,uBAAuBC,QAAQ,UAAUC,QAEjD,CA+EO,MAAMjH,EAA0C,SAIjDkH,EAAiC,CACrC,CAAClH,GD3MI9J,eAA4BgD,EAAQC,EAAO1F,GAEhD,IAAIsQ,EAaJ,GAZqB,iBAAV5K,GACT4K,EAgJJ,SAA+B5K,GAC7B,MAAMlI,EAAQkI,EAAMxI,MAAM,YAEpBmM,EAAO,CAAC,EACd,IAAIH,EAAS,EAEb,MAAMwK,EAAiB,GACjBC,EAAcjO,EAAM7H,MAAM,uCAC5B8V,IACFzK,EAASC,SAASwK,EAAY,GAAI,KAGpC,MAAMC,EAAW,yCACjB,IAAK,MAAMxW,KAAQI,EAAO,CACxB,IAAK,MAAMK,KAAST,EAAKmI,SAASqO,GAAW,CAC3C,MAAO,CAAErE,EAASsE,GAAYhW,EACxBmB,EAAQmK,SAAS0K,EAAU,IAC5B5M,OAAOkM,MAAMnU,KAChBqK,EAAKkG,GAAWvQ,EAEpB,CAEA,GAAI5B,EAAKuL,WAAW,cAAe,CACjC,MAAMmL,EAAU1Q,MAAMC,KAAKjG,EAAKmI,SAAS,sBACzC,IAAK,MAAM1H,KAASiW,EAAS,CAC3B,MAAM/Q,EAAOoG,SAAStL,EAAM,GAAI,IAC3BoJ,OAAOkM,MAAMpQ,IAChB2Q,EAAevR,KAAKY,EAExB,CACF,CACF,CAEA,MAAO,CACLmG,SACAG,OACAqK,iBACAtK,UAAWC,EAAK0K,SAChB7E,UAAW7F,EAAK2K,SAChBrM,eAAgB0B,EAAK4K,GAEzB,CAzLgBC,CAAsBxO,GAE/B/J,OAAOwY,KAAK7D,EAAUjH,MAAMtK,QAC5BuR,EAAUoD,eAAe3U,SAE1BuR,EAgDN,SAAiC5K,GAC/B,MAAMlI,EAAQkI,EAAMxI,MAAM,YAEpBmM,EAAO,CAAC,EAGRqK,EAAiB,GAEvB,IAAItK,EAEA8F,EAEJ,MAAMkF,EAAU1O,EAAM7H,MAAM,yBACxBuW,IACFhL,EAAYD,SAASiL,EAAQ,GAAI,KAGnC,IAAK,MAAMhX,KAAQI,EAAO,CACxB,MAAM6W,EAAajX,EAAKmI,SACtB,8CAEF,IAAK,MAAM1H,KAASwW,EAAY,CAC9B,MAAO,CAAEC,EAAK3Q,GAAO9F,EACrBwL,EAAKiL,EAAIC,eAAiBpL,SAASxF,EAAK,IACd,aAAtB2Q,EAAIE,gBACNtF,EAAY/F,SAASxF,EAAK,IAE9B,CAGA,MAAM8Q,EAAarX,EAAKS,MAAM,6CAC9B,GAAI4W,EAAY,CACd,MAAMC,EAAQD,EAAW,GAAGpX,OAAOH,MAAM,OACzC,IAAK,MAAMiT,KAAQuE,EAAO,CACxB,MAAM3R,EAAOoG,SAASgH,EAAM,KACvBlJ,OAAOkM,MAAMpQ,IAAgB,WAAPA,GACzB2Q,EAAevR,KAAKY,EAExB,CACF,CACF,CAEA,MAAO,CACLmG,OAvCa,EAwCbG,OACAqK,iBACAtK,YACA8F,YACAvH,eAAgB0B,EAAKsL,KAEzB,CAlGkBC,CAAwBlP,KAGtC4K,EAAY5K,EAGV,kBAAmB4K,EAErB,MADAvP,QAAQd,MAAM,+BAAgC0L,KAAKwC,UAAUmC,IACvD,IAAIjU,MAAM,4CAGlB,MAAOsL,EAAgBuH,KAAc2F,SAAmBnS,EACtD+C,EACA,CACE6K,EAAU3I,eACV2I,EAAUpB,aACNoB,EAAUoD,gBAAkB,IAElC1T,GAEF,IAAI4S,EAcJ,OAbItC,EAAUlH,YACZwJ,EAAeT,EAAW7B,EAAUlH,YAY/B,CACLH,UATgB,CAChBC,OAAQoH,EAAUpH,OAClBvB,iBACAuH,YACA9F,UAAWkH,EAAUlH,UACrBwJ,gBAKAvJ,KAAMiH,EAAUjH,KAChBZ,gBAAiBoM,EACd1X,KAAI,EAAG0G,cAAeA,IACtBvG,OAAOe,IACVwU,eAAW5P,EAEf,KCyJKqL,GAGQwG,GAAwCnZ,OAAOwY,KAAKV,GAM1D,SAASsB,GAAelW,GAC7B,MAAsB,iBAARA,GAAoBA,KAAO4U,CAC3C,CAUOhR,eAAeuS,GACpBvP,EACAwP,EACAjV,EAAU,CAAEwQ,MAAOA,OAAU3T,QAAQ,IAAID,iBAAkBC,SAG3D,MAAMqY,EAAY,GAElB,IACE,GAAIrH,EAAqBpI,GAAS,CAChC,IAAI0P,EACJ,GAAI/B,EAAwB6B,GAC1BE,EAAgBF,EAAYrP,eACvB,GAAIyN,EAA0B4B,GAAc,CACjD,MAAM5K,QAAmBf,EAAAA,QAAWgB,EAAAA,KAAUC,EAAAA,SAAa,UAC3D4K,EAAgB7K,EAAAA,KAAUD,EAAY,gBACtC6K,EAAU/S,MAAKM,UACb,UACQ6G,EAAAA,GAAMe,EAAY,CAAEK,WAAW,EAAMC,OAAO,GACpD,CAAE,MAAO9J,GACPE,QAAQd,MAAM,iDAAkDY,EAClE,KAEF,MAAMuU,QAAW9L,EAAAA,KAAQ6L,EAAe,KAExC,IAAI/H,EACJ,IACEA,EAASgI,EAAGC,0BACNC,EAAAA,EAAAA,UAASL,EAAY3B,YAAalG,EAC1C,CAAE,QACAvL,QAAQ0T,WAAW,CACjBH,EAAGlT,QACH,IAAIL,SAAQ,CAACR,EAASP,IACpBsM,GAAQlL,OAAOrB,IACTA,EACFC,EAAOD,GAEPQ,OAAQ4B,EACV,QAGHuS,MAAMC,GACPA,EAAalR,SAASmR,IACA,aAAhBA,EAAKC,QACP5U,QAAQd,MAAM,0BAA2ByV,EAAKE,OAChD,KAGN,CACF,CACA,IAAKT,EACH,MAAM,IAAI9Y,MACR,iDAAiDsP,KAAKwC,UACpD8G,MAWN,aANqBzP,EACnBC,EACA,CAAEG,UAAWuP,GACbnV,IAGY7C,KAAK0Y,IAAkB,IAChCA,KACAC,GAAgBD,EAAmBxW,WAE1C,CAEA,MAAM,WAAE0L,GAAetF,EACjBsQ,EAAUtC,EAAS1I,GACzB,IAAKgL,EACH,MAAM,IAAI1Z,MAAMwO,EAAMC,sBAAsBC,IAI9C,IAAIrF,EACJ,GAA2B,iBAAhBuP,EACTvP,EAAQuP,OACH,GAAI7B,EAAwB6B,GACjCvP,QAAc4D,EAAAA,SAAY2L,EAAYrP,UAAW,aAC5C,GAAIyN,EAA0B4B,GAAc,CACjDvP,EAAQ,GACR,UAAW,MAAMhF,KAASuU,EAAY3B,YACpC5N,EAAQhF,EAAMhB,UAElB,MACEgG,EAAQuP,EAGV,MACMe,EAAcF,SADCC,EAAQtQ,EAAQC,EAAO1F,IAE5C,GAAIA,EAAQnD,QAAQ+T,QAClB,MAAM,IAAIxU,EAEZ,OAAO4Z,CACT,CAAE,MAAOnV,GACP,GAAIA,aAAexE,OAAS,SAAUwE,GAAoB,cAAbA,EAAInE,KAC/C,MAAM,IAAIN,EAEZ,MAAMyE,CACR,CAAE,QACA,IAAK,MAAMoV,KAAWf,EACpB,UACQe,GACR,CAAE,MAAOpV,GACPE,QAAQd,MAAM,8BAA+BY,EAC/C,CAEJ,CACF,CAGA,SAASiV,GAAgBzW,GAEvB,IAAI6W,EA+JN,SAAkC7W,GAChC,MAAO,IACFA,EACHoJ,gBAAiBpJ,EAAOoJ,gBAAgBnL,QAAQF,IAE5CiB,GAAUjB,IACU,OAApBA,EAAKa,YAC0B,eAA/Bb,EAAKU,QAAQ0W,gBAOrB,CA7KuB2B,CAwCvB,SAAyB9W,GACvB,MAAO,IACFA,EACH4J,UAAW5J,EAAO4J,UACd,IACK5J,EAAO4J,UACVtB,eAAgByO,GACd/W,EAAO4J,UAAUtB,gBAEnBuH,UAAWkH,GAAyB/W,EAAO4J,UAAUiG,iBAEvDjM,EACJwF,gBAAiBpJ,EAAOoJ,gBAAgBtL,IAAIiZ,IAC5CvD,UAAWxT,EAAOwT,UACd,IACKxT,EAAOwT,UACVwD,UAAWD,GAAyB/W,EAAOwT,UAAUwD,iBAEvDpT,EAER,CA7D2BqT,CAAgBjX,IAEzC6W,EAkLF,SAAiC7W,GAC/B,MAAO,IACFA,EACHoJ,gBAAiBpJ,EAAOoJ,gBAAgBoD,QACtC,CAACC,EAAKyK,EAAa1N,EAAO2N,KACxB,MAAMC,EAAWD,EAAU3N,EAAQ,GACnC,OAAI4N,GAeZ,SAA4BrZ,EAAMqZ,GAChC,IAAKnY,GAAgBmY,GACnB,OAAO,EAGT,MAAMC,EAAW1D,EAAQyD,EAAS3Y,SAC5BiF,EAAOiQ,EAAQ5V,EAAKU,SAC1B,QAAamF,IAATF,QAAmCE,IAAbyT,EACxB,OAAO,EAGT,MAAMC,EAAW5T,IAAS,IAAO,EAC3B6T,EAAeF,IAAa,IAAO,EAEzC,MAA2B,OAApBtZ,EAAKa,YAAuB0Y,GAAYC,CACjD,CA9BwBC,CAAmBN,EAAaE,GACvC3K,EAEF,IAAIA,EAAKyK,EAAY,GAEc,IAGlD,CAhMmBO,CAAwBZ,GACzC,MAAMa,EA+OR,SAAsB1X,GACpB,GACEA,EAAO4J,WACP5K,GAAUgB,EAAO4J,UAAUiG,WAAWrL,WACa,OAAnDxE,EAAO4J,UAAUiG,UAAUrL,SAAS5F,aACnCoB,EAAO4J,UAAUiG,UAAUnM,KAC5B,CAEA,MAAMiU,EAAOrL,KAAKC,MAAMD,KAAKwC,UAAU9O,IAEvC,cADO2X,EAAK/N,UAAUiG,UACf8H,CACT,CAEA,OAAO3X,CACT,CA7P+B4X,CAAaf,GACpCgB,EA0NR,SAAwB7X,GACtB,MAAO,IACFA,EACHoJ,gBAAiBpJ,EAAOoJ,gBAAgBoD,QACtC,CAACC,EAAKyK,EAAa1N,KACjB,MAAMsO,EAAerL,EAAIjD,EAAQ,GACjC,OAAIsO,IA5FiBC,EA4F2Bb,EA3FlDjY,GADiB+Y,EA4FmBF,KA3FV7Y,GAAgB8Y,KAGzC9Y,GAAgB+Y,IAAS/Y,GAAgB8Y,KAI1C9Y,GAAgB+Y,IAAS/Y,GAAgB8Y,GAEzCC,EAAKvZ,UAAYsZ,EAAMtZ,SACvBuZ,EAAKpZ,aAAemZ,EAAMnZ,YAC1BoZ,EAAKrZ,OAASoZ,EAAMpZ,MACpBqZ,EAAKtZ,SAAWqZ,EAAMrZ,OAInBsZ,EAAKvZ,UAAYsZ,EAAMtZ,SAAWuZ,EAAKpZ,aAAemZ,EAAMnZ,aA8EtD,IAAI6N,EAAKyK,GAFPzK,EA7FjB,IAAuBuL,EAAMD,CA+FO,GAEc,IAGlD,CAxOwBE,CAAeP,GACrC,OAAOG,CACT,CAMO,SAAS7Y,GAAUQ,GACxB,OACU,OAARA,GACe,iBAARA,GACP,YAAaA,GACU,iBAAhBA,EAAIf,SACX,eAAgBe,GACU,iBAAnBA,EAAIZ,UAEf,CAMO,SAASK,GAAgBO,GAC9B,OACER,GAAUQ,IACV,SAAUA,GACU,iBAAbA,EAAIb,MACX,WAAYa,GACU,iBAAfA,EAAId,MAEf,CAiCA,SAASqY,GAAyBmB,GAChC,IAAKA,EACH,OAAOA,EAGT,GAnXU,QAFe1Y,EAqXV0Y,IAlXE,iBAAR1Y,GACP,SAAUA,IACW,iBAAbA,EAAIkE,WAAkCE,IAAbpE,EAAIkE,OACrC,aAAclE,IACW,iBAAjBA,EAAIgF,UACVxF,GAAUQ,EAAIgF,WACdvF,GAAgBO,EAAIgF,WA4WO,CAC7B,MAAMA,EAAW0T,EAAc1T,SAC/B,GAAIvF,GAAgBuF,GAAW,CAC7B,MAAMmT,EAAOrL,KAAKC,MAAMD,KAAKwC,UAAUoJ,IAEvC,OADAP,EAAKnT,SAAS7F,KAAOwZ,GAAe3T,EAAS7F,MACtCgZ,CACT,CACF,CA5XK,IAAoBnY,EA8XzB,GAAIP,GAAgBiZ,GAAgB,CAClC,MAAMP,EAAOrL,KAAKC,MAAMD,KAAKwC,UAAUoJ,IAEvC,OADAP,EAAKhZ,KAAOwZ,GAAeD,EAAcvZ,MAClCgZ,CACT,CAEA,OAAOO,CACT,CAMA,SAASC,GAAelN,GACtB,MAA4B,UAArBiD,QAAQC,UAAwB,eAAe5I,KAAK0F,GACvDA,EAAKjD,QAAQ,MAAO,MACpBiD,CACN,CCncA,IA0CGmN,GAAI9b,OAAOiC,QA1CN,CACN8Z,MAAO,CAAC,EAAG,GACXC,KAAM,CAAC,EAAG,GAAI,aACdC,IAAK,CAAC,EAAG,GAAI,aACbC,OAAQ,CAAC,EAAG,IACZC,UAAW,CAAC,EAAG,IACfC,QAAS,CAAC,EAAG,IACbC,OAAQ,CAAC,EAAG,IACZC,cAAe,CAAC,EAAG,IACnBC,MAAO,CAAC,GAAI,IACZC,IAAK,CAAC,GAAI,IACVC,MAAO,CAAC,GAAI,IACZC,OAAQ,CAAC,GAAI,IACbC,KAAM,CAAC,GAAI,IACXC,QAAS,CAAC,GAAI,IACdC,KAAM,CAAC,GAAI,IACXC,MAAO,CAAC,GAAI,IACZC,KAAM,CAAC,GAAI,IACXC,QAAS,CAAC,GAAI,IACdC,MAAO,CAAC,GAAI,IACZC,QAAS,CAAC,GAAI,IACdC,SAAU,CAAC,GAAI,IACfC,OAAQ,CAAC,GAAI,IACbC,UAAW,CAAC,GAAI,IAChBC,OAAQ,CAAC,GAAI,IACbC,QAAS,CAAC,GAAI,IACdC,YAAa,CAAC,GAAI,IAClBC,UAAW,CAAC,GAAI,IAChBC,YAAa,CAAC,GAAI,IAClBC,aAAc,CAAC,GAAI,IACnBC,WAAY,CAAC,GAAI,IACjBC,cAAe,CAAC,GAAI,IACpBC,WAAY,CAAC,GAAI,IACjBC,YAAa,CAAC,GAAI,IAClBC,cAAe,CAAC,IAAK,IACrBC,YAAa,CAAC,IAAK,IACnBC,cAAe,CAAC,IAAK,IACrBC,eAAgB,CAAC,IAAK,IACtBC,aAAc,CAAC,IAAK,IACpBC,gBAAiB,CAAC,IAAK,IACvBC,aAAc,CAAC,IAAK,IACpBC,cAAe,CAAC,IAAK,MAEvB,SAASC,GAAEC,GACT,OAAOC,OAAOD,EAChB,CAcA,SAASxM,GAAEwM,GAAI,GACb,IAAIzH,EALN,SAAWyH,GAAI,GACb,IAAIzH,EAAsB,oBAAXpF,QAAyBA,aAAU,EAAQ7P,GAAU,MAALiV,OAAY,EAASA,EAAE2H,MAAQ,CAAC,EAAGC,GAAU,MAAL5H,OAAY,EAASA,EAAE6H,OAAS,GACvI,QAAS,aAAc9c,GAAK6c,EAAExY,SAAS,iBAAmB,gBAAiBrE,GAAK6c,EAAExY,SAAS,YAAoD,WAAhC,MAAL4Q,OAAY,EAASA,EAAEnF,WAAyB4M,GAAgB,SAAX1c,EAAE+c,MAAmB,OAAQ/c,IAAuB,oBAAVgd,UAA2BA,OAAOC,MAC7O,CAEUC,CAAER,GAMPG,EAAI,CAAC1I,EAAGgJ,EAAGzU,EAAIyL,KAChB,IAAInW,EAAKof,IACP,IAAI7b,EAAIob,OAAOS,GAAIC,EAAI9b,EAAEiC,QAAQ2Z,EAAGhJ,EAAE9S,QACtC,OAAQgc,EAAIlJ,EATE,EAACA,EAAGgJ,EAAGzU,EAAG1K,KAC1B,IAAIof,EAAI,GAAI7b,EAAI,EAChB,GACE6b,GAAKjJ,EAAExL,UAAUpH,EAAGvD,GAAK0K,EAAGnH,EAAIvD,EAAImf,EAAE9b,OAAQrD,EAAImW,EAAE3Q,QAAQ2Z,EAAG5b,UACzDvD,GACR,OAAOof,EAAIjJ,EAAExL,UAAUpH,EAAE,EAIPvB,CAAEuB,EAAG4b,EAAGzU,EAAG2U,GAAKF,EAAIhJ,EAAI5S,EAAI4b,CAAC,EAE/C,OAAOnf,EAAEsf,KAAOnJ,EAAGnW,EAAEwG,MAAQ2Y,EAAGnf,CAAC,EAChCuf,EAAI,CACLC,iBAAkBvI,GACjBwI,EAAKtJ,GAAM,KAAQA,KACtB,IAAK,IAAKA,EAAGgJ,KAAMpD,GACjBwD,EAAEpJ,GAAKc,EAAI4H,EACTY,EAAEN,EAAE,IACJM,EAAEN,EAAE,IACJA,EAAE,IACAV,GACN,OAAOc,CACT,CApCAd,GAAEa,KAAO,GACTb,GAAEjY,MAAQ,GChDV,MAAM,GAA+BpF,cAA6CC,IAA7CD,CAAkD,OCQvF,IAAI+U,QAA8B,IAA1BtE,QAAQ+M,IAAIc,YAAwB,aAAE,GAO1CH,GAAI,GAAEpJ,ICNV,MAAMwJ,GAAiB,CACrBC,YAAY,EACZC,cAAe,QAkCV,SAASC,GAAsBnc,EAAQW,EAAUqb,IACtDrb,EAAU,IAAKqb,MAAmBrb,GAClC,MAAM,WAAEyb,EAAU,WAAEC,GAyBtB,SAAuB1b,GACrB,MAAM2b,EACJA,CACyCxD,EACAC,EACAE,IAEzC,CAAuBsD,EAAuCC,KAC5D,OAAQA,GACN,IAAK,MACH,OAAO1D,EAAIyD,GACb,IAAK,QACH,OAAOxD,EAAMwD,GACf,IAAK,OACH,OAAOtD,EAAKsD,GACd,QACE,OAAOA,EACX,EAGJ,IAAIF,EAAaA,OAIjB,GAAsB,YAAlB1b,EAAQ6b,MACV,MAAO,CACLJ,WAAaG,GAASA,EACtBF,cAIJ,GAAsB,UAAlB1b,EAAQ6b,MAAmB,CACxBtO,QAAQ+M,IAAIwB,cACfvO,QAAQ+M,IAAIwB,YAAc,IAC1BJ,EAAaA,YACJnO,QAAQ+M,IAAIwB,WAAW,GAIlC,MAAM,IAAE3D,EAAG,MAAEC,EAAK,KAAEE,GDlGf,GAAEzG,ICoGP,MAAO,CACL4J,WAFiBE,EAAOxD,EAAKC,EAAOE,GAGpCoD,aAEJ,CAEA,MAAM,IAAEvD,EAAG,MAAEC,EAAK,KAAEE,GAASyD,GAE7B,MAAO,CACLN,WAFiBE,EAAOxD,EAAKC,EAAOE,GAGpCoD,aAEJ,CA9EqCM,CAAchc,GAEjD,IACE,MAAMxC,EAAQ4F,MAAM6Y,QAAQ5c,GA1BhC,SAAuCA,EAAQoc,GAC7C,MAAMje,EAAQ,IAAI0e,GAAqB7c,EAAQoc,GAAa,IAE5D,IAAK,IAAI/d,EAAI,EAAGA,EAAI2B,EAAON,OAAQrB,IAAK,CACtC,MAAMye,EAAS9c,EAAO3B,GACtBF,EAAM2E,KACJia,GAAmBD,MAChBE,GAA4BF,EAAQV,IAErC/d,EAAI2B,EAAON,OAAS,GACtBvB,EAAM2E,KAAK,GAEf,CAEA,OAAO3E,CACT,CAYQ8e,CAA8Bjd,EAAQoc,GAgF9C,SAAqCpc,EAAQoc,GAC3C,MAAMje,EAAQ,GACd,GAA2C,iBAAhC6B,EAAO4J,WAAWG,UAAwB,CACnD,IAAImT,EAAgB,GAAGld,EAAO4J,UAAUC,SACpC7J,EAAO4J,UAAU2J,eACnB2J,GAAiB,MAAMld,EAAO4J,UAAU2J,gBAE1C2J,GAAiB,MAAMld,EAAO4J,UAAUG,YACxC5L,EAAM2E,KAAKsZ,EAAWc,EAAe,OACvC,CAEA,MAAMC,EAAKnd,EAAO4J,WAAWtB,eAAe9D,SACxC2Y,IACEhf,EAAMuB,QACRvB,EAAM2E,KAAK,IAEb3E,EAAM2E,KACJ,GAAGsZ,EAAW,SAAU,SAASgB,GAAsBD,EAAIf,OAI/D,MAAMvM,EAAY7P,EAAO4J,WAAWiG,WAAWrL,SAC3CqL,GACF1R,EAAM2E,KACJ,GAAGsZ,EAAW,YAAa,SAASgB,GAClCvN,EACAuM,MAKFpc,EAAOoJ,gBAAgB1J,QAAUvB,EAAMuB,QACzCvB,EAAM2E,KAAK,IAGb,IAAK,MAAM/E,KAAQiC,EAAOoJ,gBACxBjL,EAAM2E,KAAKsa,GAAsBrf,EAAMqe,IAkBzC,OAfIpc,EAAOwT,YACLrV,EAAMuB,QACRvB,EAAM2E,KAAK,IAEb3E,EAAM2E,KACJ,GAAGsZ,EACD,wBAAwBpc,EAAOwT,UAAU6J,yBACzC,SACEjB,EAAW,UAAUgB,GACvBpd,EAAOwT,UAAUwD,UACjBoF,OAKCje,CACT,CAtIQmf,CAA4Btd,EAAQoc,GACxC,OAAOje,EAAM4O,KAAKpM,EAAQub,cAC5B,CAAE,QACAG,GACF,CACF,CAuIA,SAASQ,GAAqB7c,EAAQoc,GACpC,MAAMje,EAAQ,GACdA,EAAM2E,KAAK,0DACX3E,EAAM2E,KAAK,oCAEX,IAAK,MAAMga,KAAU9c,EAAQ,CAC3B,MAAMud,EAAOT,EAAO3b,QAAU,IAAM,IAC9B0G,EAAMiV,EAAOpT,SAASrJ,WAAWC,SAAS,GAC1CqH,EAAMmV,EAAOnT,IAAItJ,WAAWmd,OAAO,IACnCC,EAAMX,EAAO9c,OAAOoJ,kBAAkB,GAC5CjL,EAAM2E,KACJ,IAAIya,IAAO1V,cAAgBF,KAAOyV,GAAsBK,EAAKrB,KAEjE,CACA,OAAOje,CACT,CAGA,SAAS4e,GAAmBD,GAC1B,MAAO,+BACLA,EAAOpT,sBACKoT,EAAOnT,KAAKtJ,SAAS,2BACrC,CAMA,SAAS2c,GAA4Bhd,EAAQoc,GAC3C,OAAOpc,EAAOA,OAAOoJ,gBAAgBtL,KAAKC,GACxCqf,GAAsBrf,EAAMqe,IAEhC,CAWA,SAASgB,GAAsB5Y,EAAU4X,GACvC,GAAwB,iBAAb5X,EACT,OAAO4X,EAAW5X,GAEpB,IAAKvF,GAAgBuF,GAGnB,MAAO,GAFS4X,EAAW5X,EAAS/F,QAAS,WAC9B2d,EAAW,KAAK5X,EAAS5F,gBAI1C,MAAMU,EACJkF,EAASlF,MACLxB,KAAK0B,GAAQ,GAAGA,EAAIpC,OAAOoC,EAAIG,MAAQ,IAAIH,EAAIG,QAAU,OAC1DoN,KAAK,OAAS,GAEb2Q,EAAY,GAAGlZ,EAAS9F,WAAWY,KAEzC,MAAO,GAAG8c,EAAW5X,EAAS/F,QAAS,WAAW2d,EAChD,QACEA,EAAWsB,EAAW,UAAUtB,EAClC,OAAO5X,EAAS7F,QAAQ6F,EAAS5F,eAErC,C","sources":["webpack://trbr/webpack/bootstrap","webpack://trbr/webpack/runtime/define property getters","webpack://trbr/webpack/runtime/hasOwnProperty shorthand","webpack://trbr/./src/lib/abort.js","webpack://trbr/external node-commonjs \"node:fs/promises\"","webpack://trbr/external node-commonjs \"node:os\"","webpack://trbr/external node-commonjs \"node:path\"","webpack://trbr/external node-commonjs \"node:stream/promises\"","webpack://trbr/external node-commonjs \"node:child_process\"","webpack://trbr/./src/lib/decode/regAddr.js","webpack://trbr/./src/lib/decode/regs.js","webpack://trbr/./src/lib/decode/addr2Line.js","webpack://trbr/./src/lib/decode/coredump.js","webpack://trbr/./src/lib/decode/decode.text.js","webpack://trbr/./src/lib/exec.js","webpack://trbr/./src/lib/tool.js","webpack://trbr/./src/lib/os.js","webpack://trbr/./src/lib/decode/decodeParams.js","webpack://trbr/external node-commonjs \"node:net\"","webpack://trbr/./src/lib/decode/riscv.js","webpack://trbr/./src/lib/decode/xtensa.js","webpack://trbr/./src/lib/decode/decode.js","webpack://trbr/./node_modules/tinyrainbow/dist/chunk-BVHSVHOK.js","webpack://trbr/external node-commonjs \"tty\"","webpack://trbr/./node_modules/tinyrainbow/dist/node.js","webpack://trbr/./src/lib/decode/stringify.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// @ts-check\n\nexport class AbortError extends Error {\n constructor() {\n super('User abort')\n this.name = 'AbortError'\n this.code = 'ABORT_ERR'\n }\n}\n\nexport const neverSignal = new AbortController().signal\n","const __WEBPACK_NAMESPACE_OBJECT__ = __WEBPACK_EXTERNAL_createRequire(import.meta.url)(\"node:fs/promises\");","const __WEBPACK_NAMESPACE_OBJECT__ = __WEBPACK_EXTERNAL_createRequire(import.meta.url)(\"node:os\");","const __WEBPACK_NAMESPACE_OBJECT__ = __WEBPACK_EXTERNAL_createRequire(import.meta.url)(\"node:path\");","const __WEBPACK_NAMESPACE_OBJECT__ = __WEBPACK_EXTERNAL_createRequire(import.meta.url)(\"node:stream/promises\");","const __WEBPACK_NAMESPACE_OBJECT__ = __WEBPACK_EXTERNAL_createRequire(import.meta.url)(\"node:child_process\");","// @ts-check\n\nimport { isGDBLine, isParsedGDBLine } from './decode.js'\n\n/**\n * Parses a method signature string into its name and argument list.\n *\n * @param {string} sig\n * @returns {{\n * name: string\n * args: { name: string; value?: string; type?: string }[]\n * }}\n */\nfunction parseMethodSignature(sig) {\n const nameMatch = sig.match(/^([^(]+)\\s*\\((.*)\\)$/s)\n if (!nameMatch) {\n return { name: sig.trim(), args: [] }\n }\n\n const [, name, argsStr] = nameMatch\n const args =\n argsStr.match(/(?:[^,\"']+|\"[^\"]*\"|'[^']*')+/g)?.map((arg) => {\n const parts = arg.split('=')\n if (parts.length === 2) {\n const [name, value] = parts.map((s) => s.trim())\n return { name, value }\n } else {\n return { name: arg.trim() }\n }\n }) || []\n return { name: name.trim(), args }\n}\n\n/** @typedef {string} RegAddr `'0x12345678'` or `'this::loop'` */\n\n/**\n * @typedef {Object} GDBLine\n * @property {RegAddr} regAddr\n * @property {string} lineNumber `'36'` or `'??'`\n */\n\n/**\n * @typedef {GDBLine & {\n * file: string\n * method: string\n * }} ParsedGDBLine\n */\n\n/**\n * @param {string} stdout\n * @returns {(GDBLine | ParsedGDBLine)[]}\n */\nexport function parseLines(stdout) {\n return stdout\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter(Boolean)\n .map((lines) => parseLine(lines))\n .filter(isGDBLine || isParsedGDBLine)\n}\n\n/**\n * @param {string} line\n * @returns {GDBLine | ParsedGDBLine | undefined}\n */\nexport function parseLine(line) {\n // console.log(`Parsing line: ${line}`)\n const patterns = [\n // GDB style with frame number and numeric file/line\n /#\\d+\\s+(0x[0-9a-f]+)\\s+in\\s+([^(]+\\((?:\"(?:\\\\.|[^\"\\\\])*\"|[^()])*?\\))\\s+at\\s+(.+):(\\d+)/i,\n // GDB style without frame number and numeric file/line\n /(0x[0-9a-f]+)\\s+in\\s+([^(]+(?:\\([^()]*\\))?)\\s+at\\s+(.+):(\\d+)/i,\n // GDB style with frame number and ?? file/line\n /(?:#\\d+\\s+)?(0x[0-9a-f]+)\\s+in\\s+([^(]+(?:\\([^()]*\\))?)\\s+at\\s+(\\?+):(\\?+)/i,\n // \"is in\" format with numeric file/line\n /(0x[0-9a-f]+)\\s+is\\s+in\\s+([^(]+(?:\\([^()]*\\))?)\\s+\\((.+):(\\d+)\\)/i,\n // \"is in\" format without line number\n /(0x[0-9a-f]+)\\s+is\\s+in\\s+([^(]+(?:\\([^()]*\\))?)\\s+\\(([^():]+)\\)/i,\n // Address with \"is at\" and numeric file/line\n /(0x[0-9a-f]+)\\s+is\\s+at\\s+(.+):(\\d+)/i,\n // Method with file/line but no address\n /(?:#\\d+\\s+)?([^(]+(?:\\([^()]*\\))?)\\s+at\\s+(.+):(\\d+)/,\n ]\n\n for (const [i, pattern] of patterns.entries()) {\n const match = line.match(pattern)\n if (match) {\n // Numeric file/line after \"in\"\n if (i === 0 || i === 1) {\n const [, regAddr, method, file, lineNumber] = match\n return normalizeParsedLine({ regAddr, method, file, lineNumber })\n }\n // ?? file/line after \"in\"\n if (i === 2) {\n const [, regAddr, method, file, lineNumber] = match\n return normalizeParsedLine({ regAddr, method, file, lineNumber })\n }\n // \"is in\" with numeric file/line\n if (i === 3) {\n const [, regAddr, method, file, lineNumber] = match\n return normalizeParsedLine({ regAddr, method, file, lineNumber })\n }\n // \"is in\" without line number\n if (i === 4) {\n const [, regAddr, method, file] = match\n return normalizeParsedLine({ regAddr, method, file, lineNumber: '??' })\n }\n // \"is at\" with numeric file/line\n if (i === 5) {\n const [, regAddr, file, lineNumber] = match\n return normalizeParsedLine({ regAddr, method: '??', file, lineNumber })\n }\n // Method with file/line but no address\n if (i === 6) {\n const [, method, file, lineNumber] = match\n return normalizeParsedLine({ regAddr: '??', method, file, lineNumber })\n }\n }\n }\n // Fallback for addresses without file/line info\n const fallbackMatch = line.match(\n /(?:#\\d+\\s+)?(0x[0-9a-f]+)\\s+(?:is\\s+in|in)\\s+([^(]+(?:\\([^()]*\\))?)/i\n )\n if (fallbackMatch) {\n const [, regAddr, method] = fallbackMatch\n return normalizeParsedLine({\n regAddr,\n method: method.trim(),\n file: '??',\n lineNumber: '??',\n })\n }\n // console.log(`No pattern matched for line: ${line}`)\n return undefined\n}\n\n/**\n * Normalize a parsed GDB line entry. If both file and lineNumber are missing or\n * unknown, omit them. If either is present but unknown, default to '??'.\n *\n * @param {ParsedGDBLine} entry\n * @returns {GDBLine | ParsedGDBLine}\n */\n/**\n * Normalize a parsed GDB line entry. If both file and lineNumber are missing or\n * unknown, omit them. If either is present but unknown, default to '??'.\n *\n * @param {ParsedGDBLine} entry\n * @returns {GDBLine | ParsedGDBLine}\n */\nfunction normalizeParsedLine(entry) {\n const { file, lineNumber, method, regAddr } = entry\n const parsedMethod = parseMethodSignature(method)\n\n const hasValidFile = file && file !== '' && file !== '??'\n const hasValidLine = lineNumber && lineNumber !== '' && lineNumber !== '??'\n\n if (hasValidFile || hasValidLine) {\n const result = {\n regAddr,\n method: parsedMethod.name,\n file: hasValidFile ? file : '??',\n lineNumber: hasValidLine ? lineNumber : '??',\n }\n if (parsedMethod.args && parsedMethod.args.length > 0) {\n Object.assign(result, { args: parsedMethod.args })\n }\n return result\n }\n\n const hasValidMethod =\n parsedMethod.name &&\n parsedMethod.name !== '' &&\n parsedMethod.name !== '??' &&\n parsedMethod.name !== '?? ()'\n\n if (!hasValidLine && hasValidMethod) {\n return { regAddr, lineNumber: parsedMethod.name }\n }\n\n return { regAddr, lineNumber: lineNumber || '??' }\n}\n","// @ts-check\n\nexport const registerSets = /** @type {const} */ ({\n // Xtensa exception frame order used in ESP‑IDF v5 core dumps\n xtensa: [\n 'PC',\n 'PS',\n // loop registers + SAR\n 'LBEG',\n 'LEND',\n 'LCOUNT',\n 'SAR',\n // general‑purpose registers\n 'A0',\n 'A1',\n 'A2',\n 'A3',\n 'A4',\n 'A5',\n 'A6',\n 'A7',\n 'A8',\n 'A9',\n 'A10',\n 'A11',\n 'A12',\n 'A13',\n 'A14',\n 'A15',\n // remaining exception/window registers\n 'EXCCAUSE',\n 'EXCVADDR',\n 'WINDOWBASE',\n 'WINDOWSTART',\n ],\n // TODO: compare with gdbRegsInfoRiscvIlp32\n riscv: [\n 'MEPC',\n 'RA',\n 'SP',\n 'GP',\n 'TP',\n 'T0',\n 'T1',\n 'T2',\n 'S0',\n 'S1',\n 'A0',\n 'A1',\n 'A2',\n 'A3',\n 'A4',\n 'A5',\n 'A6',\n 'A7',\n 'S2',\n 'S3',\n 'S4',\n 'S5',\n 'S6',\n 'S7',\n 'S8',\n 'S9',\n 'S10',\n 'S11',\n 'T3',\n 'T4',\n 'T5',\n 'T6',\n 'MSTATUS',\n 'MTVEC',\n 'MCAUSE',\n 'MTVAL',\n 'MHARTID',\n ],\n})\n\n/**\n * @param {number} number\n * @returns {string}\n */\nexport function toHexString(number = 0) {\n return `0x${number.toString(16).padStart(8, '0')}`\n}\n","// @ts-check\n\nimport { spawn } from 'node:child_process'\n\nimport { isParsedGDBLine } from './decode.js'\nimport { parseLines } from './regAddr.js'\nimport { toHexString } from './regs.js'\n\n/**\n * @typedef {Object} CommandQueueItem\n * @property {string} cmd\n * @property {(result: string) => void} resolve\n * @property {(reason: unknown) => void} reject\n */\n\nconst prompt = '(gdb)'\nconst notExecutableFormat = 'not in executable format'\nconst fileFormatNotRecognized = 'file format not recognized'\nconst noSuchFileOrDirectory = 'No such file or directory'\n\nclass GDBSession {\n /**\n * @param {Pick<DecodeParams, 'elfPath' | 'toolPath'>} params\n * @param {DecodeOptions} [options={}] Default is `{}`\n */\n constructor({ toolPath, elfPath }, options = {}) {\n this.toolPath = toolPath\n this.elfPath = elfPath\n this.error = null\n this.didExecuteFirstCommand = false\n this.gdb = spawn(toolPath, [elfPath], {\n stdio: 'pipe',\n signal: options.signal,\n })\n this.buffer = ''\n /** @type {CommandQueueItem[]} */\n this.queue = []\n this.current = null\n this.gdb.stdout.on('data', (chunk) => this._onData(chunk))\n this.gdb.stderr.on('data', (chunk) => this._onData(chunk))\n this.gdb.on('error', (err) => this.current?.reject(err))\n this.gdb.on('exit', (code, signal) => {\n if (code !== 0 && signal !== 'SIGTERM') {\n console.warn(`GDB exited with code ${code} or signal ${signal}`)\n }\n })\n }\n\n /** @param {Buffer} chunk */\n _onData(chunk) {\n this.buffer += chunk.toString()\n if (!this.current) {\n return\n }\n const idx = this.buffer.indexOf(prompt)\n if (idx === -1) {\n return\n }\n const output = this.buffer.slice(0, idx)\n this.buffer = this.buffer.slice(idx + prompt.length)\n const { resolve } = this.current\n this.current = null\n resolve(output)\n this._processQueue()\n }\n\n _processQueue() {\n const item = this.queue.shift()\n if (this.current || !item) {\n return\n }\n const { cmd, resolve, reject } = item\n this.current = { resolve, reject }\n this.gdb.stdin.write(cmd + '\\n')\n }\n\n start() {\n return new Promise((resolve, reject) => {\n // GDB not found\n const onError = (/** @type {Error} */ error) => {\n let userError = error\n if (\n error instanceof Error &&\n 'code' in error &&\n error.code === 'ENOENT'\n ) {\n userError = new Error(`GDB tool not found at ${this.toolPath}`)\n }\n reject(userError)\n }\n\n const onData = (/** @type {Buffer} */ chunk) => {\n // ELF is not found\n if (\n !this.didExecuteFirstCommand &&\n this.buffer.includes(noSuchFileOrDirectory)\n ) {\n if (!this.error) {\n this.error = new Error(\n `The ELF file does not exist or is not readable: ${this.elfPath}`\n )\n reject(this.error)\n }\n return\n }\n\n // Not an ELF\n if (\n !this.didExecuteFirstCommand &&\n (this.buffer.includes(notExecutableFormat) ||\n this.buffer.includes(fileFormatNotRecognized))\n ) {\n if (!this.error) {\n this.error = new Error(\n `The ELF file is not in executable format: ${this.elfPath}`\n )\n reject(this.error)\n }\n return\n }\n\n this.buffer += chunk.toString()\n const idx = this.buffer.indexOf(prompt)\n if (idx !== -1) {\n this.buffer = this.buffer.slice(idx + prompt.length)\n resolve('')\n }\n }\n this.gdb.on('error', onError)\n this.gdb.stdout.on('data', onData)\n this.gdb.stderr.on('data', onData)\n })\n }\n\n /** @param {string} cmd */\n async exec(cmd) {\n if (this.error) {\n this.close()\n return Promise.reject(this.error)\n }\n const result = await new Promise((resolve, reject) => {\n this.queue.push({ cmd, resolve, reject })\n this._processQueue()\n })\n\n this.didExecuteFirstCommand = true\n return result\n }\n\n async close() {\n if (!this.gdb.killed) {\n this.gdb.stdin.end()\n this.gdb.kill('SIGTERM')\n if (typeof this.gdb.exitCode !== 'number') {\n await new Promise((resolve) => this.gdb.once('exit', resolve))\n }\n }\n }\n}\n\n/** @typedef {import('./decode.js').DecodeParams} DecodeParams */\n/** @typedef {import('./decode.js').DecodeOptions} DecodeOptions */\n/** @typedef {import('./decode.js').GDBLine} GDBLine */\n/** @typedef {import('./decode.js').ParsedGDBLine} ParsedGDBLine */\n/** @typedef {import('./decode.js').AddrLine} AddrLine */\n\n/**\n * @param {(number | AddrLine | undefined)[]} addrs\n * @returns {number[]}\n */\nfunction buildAddr2LineAddrs(addrs) {\n /** @type {Set<number>} */\n const dedupedAddrs = new Set()\n for (const addr of addrs) {\n let addrNumber\n if (typeof addr === 'object') {\n addrNumber = addr.addr\n } else if (typeof addr === 'number') {\n addrNumber = addr\n }\n if (addrNumber !== undefined && !dedupedAddrs.has(addrNumber)) {\n dedupedAddrs.add(addrNumber)\n }\n }\n return Array.from(dedupedAddrs.values())\n}\n\n/**\n * @typedef {Object} RegsInfo\n * @property {Record<number, Record<string, number>>} threadRegs\n * @property {number} [currentThreadAddr]\n */\n\n/**\n * @param {Pick<DecodeParams, 'elfPath' | 'toolPath'>} params\n * @param {(number | AddrLine | undefined)[]} addrs\n * @param {DecodeOptions} [options={}] Default is `{}`\n * @returns {Promise<AddrLine[]>}\n */\nexport async function addr2line({ elfPath, toolPath }, addrs, options = {}) {\n const addresses = buildAddr2LineAddrs(addrs)\n if (!addresses.length) {\n throw new Error('No register addresses found to decode')\n }\n\n const results = new Map()\n const session = new GDBSession({ elfPath, toolPath }, options)\n\n try {\n await session.start()\n await session.exec('set pagination off')\n await session.exec('set listsize 1')\n for (const addr of addresses) {\n const hex = toHexString(addr)\n const listOutput = await session.exec(`list *${hex}`)\n let parsedLines = parseLines(listOutput)\n let location = parsedLines.find(isParsedGDBLine)\n if (!location) {\n const lineOutput = await session.exec(`info line *${hex}`)\n parsedLines = parseLines(lineOutput)\n location = parsedLines.find(isParsedGDBLine)\n }\n results.set(addr, {\n addr,\n location: location ?? { regAddr: hex, lineNumber: '??' },\n })\n