{"version":3,"file":"static/js/main-3316b678.b4cbe7cd.js","mappings":"+oBAkGA,MAAMA,EAAeC,IAAU,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAC5B,MAAM,GAAEC,KAAOC,EAAAA,EAAAA,KACTC,GAAYC,aAAaC,QAAQ,aACjCC,IAAYC,EAAAA,EAAAA,QAAO,MACnBC,IAAaD,EAAAA,EAAAA,QAAO,OACpB,WAAEE,GAAU,YAAEC,GAAW,WAAEC,GAAU,WAAEC,KAAeC,EAAAA,EAAAA,KACzDC,GAAUA,aAAK,EAALA,EAAOC,gBAEbC,GAAiBC,KAAsBC,EAAAA,EAAAA,WAAS,GACjDC,GAAcjH,SAAU,QAANC,EAAJD,EAAMkH,YAAI,IAAAjH,GAAQ,QAARC,EAAVD,EAAYkH,cAAM,IAAAjH,OAAd,EAAJA,EAAoBkH,MAClCC,GAAcrH,SAAU,QAANG,EAAJH,EAAMkH,YAAI,IAAA/G,GAAQ,QAARC,EAAVD,EAAYgH,cAAM,IAAA/G,OAAd,EAAJA,EAAoBkH,KAClCC,GAAcvH,SAAU,QAANK,EAAJL,EAAMkH,YAAI,IAAA7G,GAAQ,QAARC,EAAVD,EAAY8G,cAAM,IAAA7G,OAAd,EAAJA,EAAoBiH,YAClCC,GAAUxH,SAAU,QAANO,EAAJP,EAAMkH,YAAI,IAAA3G,GAAQ,QAARC,EAAVD,EAAY4G,cAAM,IAAA3G,OAAd,EAAJA,EAAoBgH,SAC9B,uBAAEC,KAA2BC,EAAAA,EAAAA,GAAwB,CACzDC,SAAU3H,aAAI,EAAJA,EAAM2H,YAEXC,GAASC,KAAcb,EAAAA,EAAAA,WAAS,IAEhCc,GAAYC,KAAiBf,EAAAA,EAAAA,WAAS,IACtCgB,GAAiBC,KAAsBjB,EAAAA,EAAAA,WAAS,IAChDkB,GAAoBC,KAAyBnB,EAAAA,EAAAA,WAAS,IACtDoB,GAAaC,KAAkBrB,EAAAA,EAAAA,UAAS,KACxCsB,GAAUC,KAAevB,EAAAA,EAAAA,WAAS,IAClCwB,GAAqBC,KAA0BzB,EAAAA,EAAAA,WAAS,IACxD0B,GAAcC,KAAoB3B,EAAAA,EAAAA,WAAS,GAC5C4B,IAAsBvC,EAAAA,EAAAA,QAAO,MAC7BwC,IAAQC,EAAAA,EAAAA,OACPC,GAASC,KAAchC,EAAAA,EAAAA,WAAS,GACjCiC,IAAa5C,EAAAA,EAAAA,QAAO,OACnB6C,GAAQC,KAAanC,EAAAA,EAAAA,UAAS,MAC9BoC,GAAaC,KAAkBrC,EAAAA,EAAAA,WAAS,GACzCsC,IAAWC,EAAAA,EAAAA,OACVC,GAAeC,KAAoBzC,EAAAA,EAAAA,WAAS,IAC5C0C,GAAaC,KAAkB3C,EAAAA,EAAAA,WAAS,IACxC4C,GAAsBC,KAA2B7C,EAAAA,EAAAA,WAAS,IAC3D,OAAE8C,KAAWC,EAAAA,EAAAA,MACbC,GAAc9D,aAAaC,QAAQ,aACnC8D,GAAgBD,GAAcE,KAAKC,MAAMH,IAAe,CAAC,GACxDI,GAAWC,KAAgBrD,EAAAA,EAAAA,UAAS,CACzCsD,aAActK,EAAKkH,KAAKqD,MACO,iBAApBvK,EAAKkH,KAAKqD,MACfC,IAAIC,gBAAgBzK,EAAKkH,KAAKqD,OAC9BvK,EAAKkH,KAAKqD,MACZ,GACJG,YAAa1K,EAAKkH,KAAKyD,YAAc3K,EAAKkH,KAAKyD,YAAc,GAC7DC,UAAW5K,EAAKkH,KAAK2D,UAAY7K,EAAKkH,KAAK2D,UAAY,IACvDC,UAAW9K,EAAKkH,KAAK4D,UAAY9K,EAAKkH,KAAK4D,UAAY,OACvDC,OAAQ/K,SAAU,QAANS,EAAJT,EAAMkH,YAAI,IAAAzG,GAAM,QAANC,EAAVD,EAAYyG,YAAI,IAAAxG,OAAZ,EAAJA,EAAkBqK,OAC1BC,iBAAgBhL,SAAU,QAANW,GAAJX,EAAMkH,YAAI,IAAAvG,KAAVA,GAAYqK,kBACxBhL,SAAU,QAANY,GAAJZ,EAAMkH,YAAI,IAAAtG,QAAN,EAAJA,GAAYoK,gBAEhBC,eAAcjL,SAAU,QAANa,GAAJb,EAAMkH,YAAI,IAAArG,KAAVA,GAAYoK,gBAAejL,SAAU,QAANc,GAAJd,EAAMkH,YAAI,IAAApG,QAAN,EAAJA,GAAYmK,cACrDC,cAAelL,SAAU,QAANe,GAAJf,EAAMkH,YAAI,IAAAnG,IAAVA,GAAYmK,cAAgBlL,SAAU,QAANgB,GAAJhB,EAAMkH,YAAI,IAAAlG,QAAN,EAAJA,GAAYkK,cAAgB,EACvEC,KAAKnL,SAAU,QAANiB,GAAJjB,EAAMkH,YAAI,IAAAjG,QAAN,EAAJA,GAAYkK,MAAO,MAGnBC,GAAUC,KAAerE,EAAAA,EAAAA,YAAShH,SAAU,QAANkB,GAAJlB,EAAMkH,YAAI,IAAAhG,KAAVA,GAAYoK,QAC9CC,GAAcC,KAAmBxE,EAAAA,EAAAA,WAAS,IAC1CyE,GAAQC,KAAa1E,EAAAA,EAAAA,UAAS,KAC9B2E,GAAOC,KAAY5E,EAAAA,EAAAA,WAAS,IAC5B6E,GAAcC,KAAmB9E,EAAAA,EAAAA,UAAS,OAC1C+E,GAAcC,KAAmBhF,EAAAA,EAAAA,UAAS,KAC1CiF,GAASC,IAAcC,EAAAA,UAAe,IACtCC,GAAaC,IAAkBF,EAAAA,SAAe,OAC9CG,GAAgBC,KAAqBvF,EAAAA,EAAAA,WAAS,GAE/CwF,GADeP,IAAWQ,QAAQL,IACX,yBAAsBM,EAE7CC,IAAetG,EAAAA,EAAAA,QAAO,MACtBuG,IAAiBvG,EAAAA,EAAAA,QAAO,MACxBwG,IAAUxG,EAAAA,EAAAA,QAAO,MACjByG,IAAUzG,EAAAA,EAAAA,QAAO,MACjB0G,IAAc1G,EAAAA,EAAAA,QAAO,MACrB2G,IAAa3G,EAAAA,EAAAA,QAAO,OAClBN,GAAIkH,KAAmBjH,EAAAA,EAAAA,MACzB,SAAEkH,GAAQ,SAAEC,GAAQ,qBAAEC,GAAoB,QAAEC,GAAO,SAAEC,KACzDC,EAAAA,EAAAA,MACIC,IAAWC,EAAAA,EAAAA,OACX,KAAEC,GAAI,aAAEC,KAAiBC,EAAAA,EAAAA,KACzBC,IAAaxH,EAAAA,EAAAA,SAAO,GACpByH,GAAST,GAAQrN,aAAI,EAAJA,EAAM+F,KACvB,cACJgI,GAAa,kBACbC,GAAiB,kBACjBC,GAAiB,mBACjBC,KACEC,EAAAA,EAAAA,GAAmB,CAAExG,SAAU3H,aAAI,EAAJA,EAAM2H,WACnCyG,GAC4C,IAAhDjB,KAAWkB,QAAQC,GAAMA,EAAE3G,WAAU4G,QAChCC,GAAOC,KAAYzH,EAAAA,EAAAA,UAAS,CACjCI,MAAO0G,UAAa,QAAP3M,GAAN2M,GAAQY,aAAK,IAAAvN,QAAP,EAANA,GAAeiG,MACtBuH,OAAQb,UAAa,QAAP1M,GAAN0M,GAAQY,aAAK,IAAAtN,QAAP,EAANA,GAAeuN,UAwBzBC,EAAAA,EAAAA,YAAU,KACH5O,EAAK2H,WACRc,IAAuB,GACvBgB,IAAiB,GACjBE,IAAe,GACfN,IAAe,GACfkD,IAAkB,GAClBf,IAAgB,GAChB7C,IAAiB,GACjBR,IAAsB,GACxB,GACC,CAACnI,aAAI,EAAJA,EAAM2H,WAEV,MA+BMkH,IAAexI,EAAAA,EAAAA,SAAO,GACtByI,IAAmBzI,EAAAA,EAAAA,QAAO,MAC1B0I,IAAsBC,EAAAA,EAAAA,OAC5BJ,EAAAA,EAAAA,YAAU,KACR,IAAKE,GAAiBG,QACpB,OAGF,MAAMC,GAAYC,EAAAA,EAAAA,IAAOL,GAAiBG,SACpCG,GAAcC,EAAAA,EAAAA,MACjBC,GAAG,QAASC,IAAS,IAADC,EAAAC,EACnBZ,GAAaI,SAAU,EACvB,MAAMS,EAAKH,EAAII,EACTC,EAAKL,EAAIM,EAETC,EADMC,KAAKC,MAAMN,EAAIE,IACR,IAAMG,KAAKE,IAC9BlB,GAAoBhJ,IAEpB,MAAMmK,EAAW,CACfP,EAAG3P,aAAI,EAAJA,EAAMmQ,KACTN,EAAG7P,aAAI,EAAJA,EAAMoQ,KACTC,EAAGvC,UAAa,QAAP0B,EAAN1B,GAAQY,aAAK,IAAAc,OAAP,EAANA,EAAepI,MAClBkJ,EAAGxC,UAAa,QAAP2B,EAAN3B,GAAQY,aAAK,IAAAe,OAAP,EAANA,EAAed,OAClBmB,IAAK,IAAMA,GAEPS,EA4lDZ,SAAmBZ,EAAGE,EAAGQ,EAAGC,EAAGR,GAC7B,MAAMU,EAAMV,GAAOC,KAAKE,GAAK,KACvBQ,EAAWd,EAAIU,EAAI,EACnBK,EAAWb,EAAIS,EAAI,EACnBK,EACJF,GACCd,EAAIc,GAAYV,KAAKa,IAAIJ,IACzBX,EAAIa,GAAYX,KAAKc,IAAIL,GACtBM,EACJJ,GACCf,EAAIc,GAAYV,KAAKc,IAAIL,IACzBX,EAAIa,GAAYX,KAAKa,IAAIJ,GACtBO,EAAQhB,KAAKiB,IAAIX,EAAIN,KAAKa,IAAIJ,IAAQT,KAAKiB,IAAIV,EAAIP,KAAKc,IAAIL,IAC5DS,EAAQlB,KAAKiB,IAAIV,EAAIP,KAAKa,IAAIJ,IAAQT,KAAKiB,IAAIX,EAAIN,KAAKc,IAAIL,IAElE,MAAO,CACLG,MAAOA,EACPG,MAAOA,EACPC,MAAOA,EACPE,MAAOA,EAEX,CAjnDsBC,CACdhB,EAASP,EACTO,EAASL,EACTK,EAASG,EACTH,EAASI,EACTJ,EAASJ,KAEX5C,IAAUiE,GACDA,EAAMC,KAAKC,GACZA,EAAGtL,KAAO/F,EAAK+F,IACjBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKD,GAAE,IACLnK,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,IACCC,EAAAA,EAAAA,MAAKF,EAAGnK,KAAM,CAAC,iBAAe,IACjCsK,SAAU,IAAM1B,EAChB2B,YAAalB,MAIZc,KAET,IAEH/B,GAAG,OAAO,KACToC,IAAa,IAGjBxC,EAAUyC,KAAKvC,EAAY,GAC1B,CAACrJ,GAAIgJ,KAER,MAAM2C,GAAcE,UAAa,IAADC,EAC9B,IAAIC,EAAe3E,KACnB0B,GAAaI,SAAU,EACvB,IAAI8C,EAAa,CAAC,EAClB,MAAM9L,EAAYC,aAAaC,QAAQ,aACnCF,IACF8L,EAAa7H,KAAKC,MAAMlE,IAE1B,MACM+L,EADS,IAAIC,gBAAgB3I,GAAS4I,QACxBC,IAAI,SAExBC,EAAAA,EAAAA,IAAW,CACTC,KAAM,CACJC,kBAAmB,CACjBnB,MAAOW,EACPS,cAAyB,QAAZV,EAAEE,SAAU,IAAAF,OAAA,EAAVA,EAAYW,UAG/BzM,MACAyH,YACAE,QACAC,gBACAqE,QACA,EAOES,GAAYA,CAACC,EAAKlL,KACtB,MAAMmL,EAASC,SAASF,EAAIG,QAAQ,IAAK,IAAK,IAExCC,EAAKH,GAAU,EAAK,IACpBI,EAAa,IAATJ,EAEV,MAAM,QAANK,OAJWL,GAAU,GAAM,IAIX,KAAAK,OAAIF,EAAC,KAAAE,OAAID,EAAC,KAAAC,OAAIxL,EAAO,MAEjCyL,GAAcA,KAClB,MAAMC,EAAS,CACb,UACA,UACA,UACA,UACA,UACA,UACA,WAEF,OAAOA,EAAOnD,KAAKoD,MAAMpD,KAAKqD,SAAWF,EAAO3E,QAAQ,GAM1DK,EAAAA,EAAAA,YAAU,KAAO,IAADyE,EAAAC,EACd,MAAMC,EAA2B,QAAbF,EAAGlG,YAAU,IAAAkG,GACqC,QADrCC,EAAVD,EACnBhF,QAAQC,IAAMA,aAAC,EAADA,EAAGkF,eAAexT,aAAI,EAAJA,EAAM+F,KAAkB,aAAZuI,aAAC,EAADA,EAAGhH,eAAmB,IAAAgM,OADrC,EAAVA,EAEnBlC,KAAKqC,GAAQA,aAAG,EAAHA,EAAK1N,KACtB,GAAIwN,EAAgB,CAClB,MAAMzB,EAAe3E,KAAWiE,KAAK9C,IACE,IAADoF,EAApC,OAAIH,EAAeI,SAASrF,aAAC,EAADA,EAAGvI,KAC7BuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IACJI,OAAK4C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAhD,EAAEI,OAAK,IACVkF,OAAQ5T,SAAU,QAAN0T,EAAJ1T,EAAMkH,YAAI,IAAAwM,GAAVA,EAAYG,UAAY,KAAO,MAItCvF,CAAC,IAEVpB,GAAS4E,EACX,IACC,CAAC9R,SAAU,QAANqB,GAAJrB,EAAMkH,YAAI,IAAA7F,QAAN,EAAJA,GAAYwS,UAAW1G,GAAUD,KAErC,MAiHM4G,GAAgBA,KAAO,IAADC,EACtB/T,SAAU,QAAN+T,EAAJ/T,EAAMkH,YAAI,IAAA6M,GAAVA,EAAYC,iBACd9G,IAAU+G,GACaA,aAAI,EAAJA,EAAM7C,KAAKC,IAAQ,IAAD6C,EACrC,MAAgB,aAAZ7C,EAAG/J,OAAuB+J,SAAQ,QAAN6C,EAAF7C,EAAInK,YAAI,IAAAgN,OAAN,EAAFA,EAAUC,gBAAgBnU,aAAI,EAAJA,EAAM+F,KAC5DuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKD,GAAE,IACLnK,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACCD,EAAGnK,MAAI,IACVkN,cAAe/C,EAAGjK,MAClBiN,eAAgBhD,EAAG1C,OACnB2F,iBAAkBjD,EAAGkD,SACrBC,yBAA0BnD,EAAGoD,iBAC7B5G,YAAY,MAIXwD,CAAE,KAIf,EAGIqD,GAAWA,CAACC,EAAGC,KAAY,IAADC,EAAAC,EAAAC,EAC9B,MAAM,OAAEpG,EAAM,MAAEvH,GAAUwN,EAEpBI,EAAcrG,GAAS3O,SAAU,QAAN6U,EAAJ7U,EAAMkH,YAAI,IAAA2N,OAAN,EAAJA,EAAYR,gBACnCY,EAAa7N,GAAQpH,SAAU,QAAN8U,EAAJ9U,EAAMkH,YAAI,IAAA4N,OAAN,EAAJA,EAAYV,eAEnCpU,SAAU,QAAN+U,EAAJ/U,EAAMkH,YAAI,IAAA6N,GAAVA,EAAYf,iBACd9G,IAAU+G,GACaA,aAAI,EAAJA,EAAM7C,KAAKC,IAAQ,IAAD6D,EACrC,MAAgB,aAAZ7D,EAAG/J,OAAuB+J,SAAQ,QAAN6D,EAAF7D,EAAInK,YAAI,IAAAgO,OAAN,EAAFA,EAAUf,gBAAgBnU,aAAI,EAAJA,EAAM+F,KAC5DuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKD,GAAE,IACL3C,OAAK4C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAD,EAAG3C,OAAK,IACXtH,MAAO6N,EAAa5D,EAAGnK,KAAKkN,cAC5BzF,OAAQqG,EAAc3D,EAAGnK,KAAKmN,iBAEhCE,SAAU,CACR5E,EAAG0B,EAAGnK,KAAKoN,iBAAiB3E,EAAIsF,EAChCpF,EAAGwB,EAAGnK,KAAKoN,iBAAiBzE,EAAImF,GAElCP,iBAAkB,CAChB9E,EAAG0B,EAAGnK,KAAKsN,yBAAyB7E,EAAIsF,EACxCpF,EAAGwB,EAAGnK,KAAKsN,yBAAyB3E,EAAImF,KAIvC3D,CAAE,KAIf,EAEI8D,GAAWA,CAACC,EAAIC,KACpB,MAAMF,EAAWhI,KAAWiE,KAAK9C,IAC/B,GAAIA,EAAEvI,KAAOqP,EAAI,CAAC,IAADE,EAAAC,EAAAC,EACf,MAAMC,EAAqBnH,SAAO,QAANgH,EAADhH,EAAGpH,YAAI,IAAAoO,GAAO,QAAPC,EAAPD,EAASD,aAAK,IAAAE,OAAb,EAADA,EAAgBG,WACxCf,GACCA,EAAEU,MAAMM,UAAYN,EAAMM,SAAWhB,EAAEiB,UAAWC,cAAQ,EAARA,GAAUrD,WAEhC,IAADsD,EAAAC,EAA/B,OAA4B,IAAxBN,GACFnE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IACJpH,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACChD,EAAEpH,MAAI,IACTmO,MAAa,QAARS,EAAExH,EAAEpH,YAAI,IAAA4O,GAAO,QAAPC,EAAND,EAAQT,aAAK,IAAAU,OAAP,EAANA,EAAe1H,QACpB,CAAC2H,EAAGC,IAAUA,IAAUR,SAKhCnE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IACJpH,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACChD,EAAEpH,MAAI,IACTmO,MAAO,IAAI/G,SAAO,QAANkH,EAADlH,EAAGpH,YAAI,IAAAsO,OAAN,EAADA,EAASH,MAAO,CAAEA,QAAOO,OAAQC,cAAQ,EAARA,GAAUrD,aAG5D,CACA,OAAOlE,CAAC,IAGVpI,aAAagQ,QACX,mBACAhM,KAAKiM,UAAU,CACb7D,kBAAmB,CACjBnB,MAAOhE,KAEPiJ,UAAU,OAIhBlJ,GAASiI,GACTkB,GAAoBlB,EAAS,EAGzBmB,GAAYvG,KAAKoD,QAAOrF,cAAM,EAANA,GAAQ1G,OAAQ,IAD3B,IAGbmP,GAAUxG,KAAKoD,QAAOrF,cAAM,EAANA,GAAQ1G,OAAQ,IAD3B,IAwBXoP,IAtBsB,QAAblV,GAAG6L,YAAU,IAAA7L,QAAA,EAAVA,GAAYmV,QAAO,CAACC,EAAKC,KAAa,IAADC,EAAAC,EAmBrD,OAlBKH,EAAIC,EAAQ5Q,MACf2Q,EAAIC,EAAQ5Q,IAAM,CAChBsP,MAAO,CAAC,IAIA,QAAZuB,EAAAD,EAAQzP,YAAI,IAAA0P,GAAO,QAAPC,EAAZD,EAAcvB,aAAK,IAAAwB,GAAnBA,EAAqBC,SAASnC,IACvB+B,EAAIC,EAAQ5Q,IAAIsP,MAAMV,EAAEU,MAAMM,WACjCe,EAAIC,EAAQ5Q,IAAIsP,MAAMV,EAAEU,MAAMM,SAAW,CACvCoB,SAAUpC,EAAEU,MAAM0B,SAClB1B,MAAOV,EAAEU,MAAMA,MACfM,QAAShB,EAAEU,MAAMM,QACjBqB,MAAO,IAGXN,EAAIC,EAAQ5Q,IAAIsP,MAAMV,EAAEU,MAAMM,SAASqB,OAAO,IAGzCN,CAAG,GACT,CAAC,IAEqB1W,aAAI,EAAJA,EAAM+F,KAAO,CAAEsP,MAAO,CAAC,GAE1C4B,GAAaC,kBAAM,EAANA,OAAQC,OAAOX,IAAQ,IAMnCY,GAAiBC,KAAsBrQ,EAAAA,EAAAA,UAAS,CACrDI,MAAO,KACPuH,OAAQ,OAEJ2I,GACJ/P,IAAeC,GAVK+P,EAACC,EAAMC,KAC3B,MAAMC,EAAQF,EAAKG,MAAM,0CACzB,OAAKD,EACC,QAAN1E,OAAe0E,EAAM,GAAE,MAAA1E,OAAK0E,EAAM,GAAE,MAAA1E,OAAK0E,EAAM,GAAE,MAAA1E,OAAKyE,EAAU,KAD7CD,CAC6C,EAOvCD,CAAchQ,GAAaC,IAAW,IAEjEoH,EAAAA,EAAAA,YAAU,KAAO,IAADgJ,EACdvN,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAIlH,IAAS,IAAEE,aAActK,SAAU,QAAN4X,EAAJ5X,EAAMkH,YAAI,IAAA0Q,OAAN,EAAJA,EAAYrN,QAAQ,GAC9D,CAACvK,SAAU,QAANuB,GAAJvB,EAAMkH,YAAI,IAAA3F,QAAN,EAAJA,GAAYgJ,SAkChBqE,EAAAA,EAAAA,YAAU,KACJ9E,IACFA,GAAOwF,GAAGuI,EAAAA,GAAaC,cAAe5Q,IAAU,IAAD6Q,EAC7C,MAAMC,EAAW9Q,aAAI,EAAJA,EAAMoL,kBACjB2F,EAAWD,SAAe,QAAPD,EAARC,EAAU7G,aAAK,IAAA4G,OAAP,EAARA,EAAiBG,MAAMzE,IAAQA,aAAG,EAAHA,EAAK1N,OAAO/F,aAAI,EAAJA,EAAM+F,MACK,IAADoS,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAlEZ,aAAQ,EAARA,EAAUzF,kBAAkBtI,cAAa,EAAbA,GAAeuI,UAAayF,IAC1D5N,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZa,aAAcgN,SAAc,QAANE,EAARF,EAAU/Q,YAAI,IAAAiR,OAAN,EAARA,EAAgBlN,aAC9BD,eAAgBiN,SAAc,QAANG,EAARH,EAAU/Q,YAAI,IAAAkR,OAAN,EAARA,EAAgBpN,eAChCG,IAAK8M,SAAc,QAANI,EAARJ,EAAU/Q,YAAI,IAAAmR,OAAN,EAARA,EAAgBlN,IACrB0I,UAAWoE,SAAc,QAANK,EAARL,EAAU/Q,YAAI,IAAAoR,OAAN,EAARA,EAAgBzE,UAK3BvJ,aAAc2N,SAAc,QAANM,EAARN,EAAU/Q,YAAI,IAAAqR,OAAN,EAARA,EAAgBhO,QAC1B0N,SAAc,QAANO,EAARP,EAAU/Q,YAAI,IAAAsR,OAAN,EAARA,EAAgB5N,YAAa,CAC/BA,UAAWqN,SAAc,QAANQ,EAARR,EAAU/Q,YAAI,IAAAuR,OAAN,EAARA,EAAgB7N,aAG/BzB,GAAU8O,SAAc,QAANS,EAART,EAAU/Q,YAAI,IAAAwR,OAAN,EAARA,EAAgBxP,QAC1BmO,GAAmB,CACjBjQ,MAAO6Q,SAAc,QAANU,EAARV,EAAU/Q,YAAI,IAAAyR,OAAN,EAARA,EAAgBvR,MACvBuH,OAAQsJ,SAAc,QAANW,EAARX,EAAU/Q,YAAI,IAAA0R,OAAN,EAARA,EAAgBjK,SAE1B3F,IAAW,GACb,GAGJ,GACC,CAACc,KAEJ,MAAM+O,GAAcA,CAACC,EAAO9Y,KAAU,IAAD+Y,EACnC7L,IAAU8L,GACRA,EAAI5H,KAAK9C,IACHA,aAAC,EAADA,EAAGvI,OAAO/F,aAAI,EAAJA,EAAM+F,KAClBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IACJlH,MAAO0R,EAAMnJ,EACbhB,OAAQmK,EAAMjJ,EACd3I,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACChD,EAAEpH,MAAI,IACT+R,OAAO,EACP7R,MAAO0R,EAAMnJ,EACbhB,OAAQmK,EAAMjJ,IAEhBnB,MAAO,CACLtH,MAAO0R,EAAMnJ,EACbhB,OAAQmK,EAAMjJ,KAIbvB,MAGX+I,GAAmB,CACjBjQ,MAAO0R,EAAMnJ,EACbhB,OAAQmK,EAAMjJ,IAEhB,IAAIiC,EAAe,GACnB,MAAMoH,EAAc,GACpB,IAAInH,EAAa,CAAC,EACd9L,KACF8L,EAAa7H,KAAKC,MAAMlE,KAE1B4H,GAAWoB,SAAU,EACrB/B,IAAU+G,IAAU,IAADkF,EAAAC,EAkIjB,OAjIAlT,aAAagQ,QACX,mBACAhM,KAAKiM,UAAU,CACb7D,kBAAmB,CACjBnB,MAAO8C,EACP1B,cAAyB,QAAZ4G,EAAEpH,SAAU,IAAAoH,OAAA,EAAVA,EAAY3G,QAC3B4D,UAAU,OAKhBtE,EAAemC,aAAI,EAAJA,EAAM7C,KAAK4E,IAAO,IAADqD,EACNC,EAAAC,EAAxB,OAAK,QAADF,EAAArD,SAAC,IAAAqD,OAAA,EAADA,EAAGtT,OAAO/F,aAAI,EAAJA,EAAM+F,MAClBiQ,EAAI9L,KAAKC,MAAMD,KAAKiM,UAAUH,KAC5B9O,KAAK+R,OAAQ,EACfjD,EAAEtH,MAAMtH,MAAQoS,QAAOpT,UAAkB,QAATkT,EAATlT,GAAW6I,eAAO,IAAAqK,OAAT,EAATA,EAAoBG,cAAe,GAC1DzD,EAAEtH,MAAMC,OAAS6K,OAAOpT,UAAkB,QAATmT,EAATnT,GAAW6I,eAAO,IAAAsK,OAAT,EAATA,EAAoBG,cAC5C1D,EAAE9O,KAAK+R,OAAQ,EACRjD,GAEAA,CACT,IAGFlE,EAA2B,QAAfsH,EAAGtH,SAAY,IAAAsH,OAAA,EAAZA,EAAchI,KAAK9C,IAAO,IAADqL,EAAAC,EAAAC,EAAAC,EACtC,MAAMC,EAAgB3M,GAAqBpN,GAAM,GACjD,IAAIga,EAAY,KAKhB,IAJID,aAAa,EAAbA,EAAexL,QAAS,IAC1ByL,EAAYD,GAAcA,aAAa,EAAbA,EAAexL,QAAS,IAIpC,UAAdvO,EAAKsH,MAALtH,MACAA,GAAAA,EAAMwT,aACNxT,aAAI,EAAJA,EAAMwT,eAAwB,QAAdmG,EAAKK,SAAS,IAAAL,OAAA,EAATA,EAAW5T,IAGhC,OAAOuI,EACF,IACLyL,EAAcxL,SACdvO,aAAI,EAAJA,EAAMwT,eAAwB,QAAdoG,EAAKI,SAAS,IAAAJ,OAAA,EAATA,EAAW7T,KAC/B/F,SAAAA,EAAMwT,WA8BF,IAELxT,SAAAA,EAAMwT,aACNxT,aAAI,EAAJA,EAAMwT,eAAwB,QAAdqG,EAAKG,SAAS,IAAAH,OAAA,EAATA,EAAW9T,MAC/BiU,EACD,CAEA,GAAI,CAACha,aAAI,EAAJA,EAAM+F,IAAI4N,SAASrF,EAAEvI,KAAtB,MAA6B/F,GAAAA,EAAMwT,WAAY,CAAC,IAADyG,EAAAC,EACjD,MAAM1G,EACO,QADGyG,EAAGpR,GAChBsR,kBAAU,IAAAF,GACI,QADJC,EADMD,EAEfG,qBAAa,IAAAF,OADJ,EADMA,EAEA/H,IAAInS,aAAI,EAAJA,EAAMwT,YAC7B,GAAIA,EAAY,CAAC,IAAD6G,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACd,IAAIC,GAAQrJ,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPhD,GAAC,IACJiG,SAAU,CACR5E,GAAa,QAAV0K,EAAA/L,EAAEiG,gBAAQ,IAAA8F,OAAA,EAAVA,EAAY1K,IAAoC,QAAnC2K,EAAI9G,SAA4B,QAAlB+G,EAAV/G,EAAYiB,wBAAgB,IAAA8F,OAAlB,EAAVA,EAA8B5K,SAAC,IAAA2K,EAAAA,EAAI,GACvDzK,GAAa,QAAV2K,EAAAlM,EAAEiG,gBAAQ,IAAAiG,OAAA,EAAVA,EAAY3K,IAAoC,QAAnC4K,EAAIjH,SAA4B,QAAlBkH,EAAVlH,EAAYiB,wBAAgB,IAAAiG,OAAlB,EAAVA,EAA8B7K,SAAC,IAAA4K,EAAAA,EAAI,IAEzDG,kBAAclO,EACd8G,gBAAY9G,IAGd,OADAwM,EAAY2B,KAAKF,GACVA,CACT,CACE,OAAOrM,CAEX,CACE,OAAOA,CAEX,CAKG,IAADwM,EAEwBC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAcnBC,EArBA,OAELtb,SAAAA,EAAMwT,aACNxT,aAAI,EAAJA,EAAMwT,eAAwB,QAAdsG,EAAKE,SAAS,IAAAF,OAAA,EAATA,EAAW/T,KAChCiU,GAGK,QAADc,EAAAxM,SAAC,IAAAwM,OAAA,EAADA,EAAG/U,OAAO/F,aAAI,EAAJA,EAAM+F,MAClBuI,EAAIiN,gBAAgBjN,IAClBkF,WAAsB,QAAZuH,EAAGf,SAAS,IAAAe,OAAA,EAATA,EAAWhV,GAC1BuI,EAAEiG,SAAW,CACX5E,IACG3P,SAAsB,QAAlBgb,EAAJhb,EAAMyU,wBAAgB,IAAAuG,OAAlB,EAAJA,EAAwBrL,IAAK,KACpB,QAATsL,EAAAjB,SAAS,IAAAiB,GAAkB,QAAlBC,EAATD,EAAWxG,wBAAgB,IAAAyG,OAAlB,EAATA,EAA6BvL,IAAK,GACrCE,IACG7P,SAAsB,QAAlBmb,EAAJnb,EAAMyU,wBAAgB,IAAA0G,OAAlB,EAAJA,EAAwBtL,IAAK,KACpB,QAATuL,EAAApB,SAAS,IAAAoB,GAAkB,QAAlBC,EAATD,EAAW3G,wBAAgB,IAAA4G,OAAlB,EAATA,EAA6BxL,IAAK,IAEvCqJ,EAAY2B,KAAKvM,GACVA,GACKA,GAET,QAADgN,EAAAhN,SAAC,IAAAgN,GAADA,EAAGhU,KAGAgH,EACT,CApFG,IAADkN,EAEA,GAAIlN,EAAEvI,KAAOiU,EAAUjU,GAKrB,OAJAmT,EAAY2B,MAAIvJ,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACbhD,GAAC,IACJmN,UAAW,OAEbnK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IACJmN,UAAW,KAER,GAAInN,EAAEvI,KAAO/F,EAAK+F,IAAQ,QAAFyV,EAAClN,SAAC,IAAAkN,GAADA,EAAGhI,WAiB5B,OAAOlF,EAjBiC,CAAC,IAADoN,EAC7C,MAAMnH,EAAoD,QAA5CmH,GAAGC,EAAAA,EAAAA,IAA4BrN,EAAG0L,UAAU,IAAA0B,EAAAA,EAAI,CAC5D/L,EAAG,EACHE,EAAG,GAQL,OANAqJ,EAAY2B,MAAIvJ,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACbhD,GAAC,IACJiG,WACAf,WAAYwG,EAAUjU,OAGxBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IACJiG,WACAf,WAAYwG,EAAUjU,IAG1B,CAwDF,IAGK+L,CAAY,IAGrB,MACME,EADS,IAAIC,gBAAgB3I,GAAS4I,QACxBC,IAAI,SACxBC,EAAAA,EAAAA,IAAW,CACTC,KAAM,CACJC,kBAAmB,CACjBnB,MAAOW,EACPS,cAAyB,QAAZwG,EAAEhH,SAAU,IAAAgH,OAAA,EAAVA,EAAYvG,UAG/BzM,MACAyH,YACAE,QACAsE,OACArE,iBACA,EAGE0I,IAAsBuF,EAAAA,EAAAA,cAC1BC,EAAAA,EAAAA,WAAS,CAACC,EAAWC,KAAkB,IAADC,EACpC,IAAIjK,EAAa,CAAC,EACd9L,KACF8L,EAAa7H,KAAKC,MAAMlE,KAE1B,MACM+L,EADS,IAAIC,gBAAgB3I,GAAS4I,QACxBC,IAAI,SACxBC,EAAAA,EAAAA,IAAW,CACTC,KAAM,CACJC,kBAAmB,CACjBnB,OAAO2K,aAAS,EAATA,EAAWvN,QAAS,EAAIuN,EAAY3O,KAC3C8O,OAAOF,aAAY,EAAZA,EAAcxN,QAAS,EAAIwN,EAAezO,KACjDiF,cAAyB,QAAZyJ,EAAEjK,SAAU,IAAAiK,OAAA,EAAVA,EAAYxJ,UAG/BzM,GAAIkH,GAEJS,QACAC,gBACAqE,QACA,GACD,KACH,CAACI,EAAAA,GAAYnM,GAAWF,GAAIyH,GAAUE,GAAMpE,GAAU6D,GAAUG,KAG5DuI,IAAWlP,EAAAA,EAAAA,KAAaC,GAAUA,EAAMsV,OAAOrG,WAC/CsG,GAAqBC,IACzB,MAAMC,EAAcC,KAAKC,MACnBC,EAAiBH,EAAcD,EAIrC,OAA4B,IAFArM,KAAKoD,MAAMqJ,EAAc,KAG5CH,EAEAA,EAAcD,CACvB,EAgLIK,GAAkB7K,UACtBjJ,IAAiB,GACjB5B,IAAmB,GACnBiC,IAAW,GACXkE,IAAU8L,IAAS,IAAD0D,EAChB,MAAM5K,EAAekH,EAAI5H,KAAK9C,IACH,IAADqO,EAAxB,OAAIrO,aAAC,EAADA,EAAGvI,OAAO/F,aAAI,EAAJA,EAAM+F,KAClBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IAEJpH,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACChD,EAAEpH,MAAI,IACT2M,WAAqC,KAA1B7T,SAAU,QAAN2c,EAAJ3c,EAAMkH,YAAI,IAAAyV,OAAN,EAAJA,EAAY9I,eAItBvF,CAAC,IAEV,IAAIyD,EAAa,CAAC,EACd9L,KACF8L,EAAa7H,KAAKC,MAAMlE,KAE1B,MACM+L,EADS,IAAIC,gBAAgB3I,GAAS4I,QACxBC,IAAI,QAexB,OAdAC,EAAAA,EAAAA,IAAW,CACTC,KAAM,CACJC,kBAAmB,CACjBnB,MAAOW,EAEPS,cAAyB,QAAZmK,EAAE3K,SAAU,IAAA2K,OAAA,EAAVA,EAAYlK,UAG/BzM,MACAyH,YACAE,QACAsE,OACArE,kBAEKmE,CAAY,GACnB,EA4DE8K,GAAmBhL,UAIvB,GAHAjJ,IAAiB,GACjB5B,IAAmB,GACnBiC,IAAW,GACP5C,GAAU6I,QAAS,CACrBhH,IAAmB,GACnB,IAAK,IAAD4U,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACF,IAAIC,EACAC,EAAS,MACb,GAAIpd,SAAU,QAAN6c,EAAJ7c,EAAMkH,YAAI,IAAA2V,GAAU,QAAVC,EAAVD,EAAYQ,gBAAQ,IAAAP,GAApBA,EAAsBQ,SAAS,QAAS,CAC1C,MAAMC,QAAqBC,EAAAA,EAAAA,MAC3BL,QAAgBM,EAAAA,EAAAA,IAAMrX,GAAU6I,QAAS,CACvCyO,WAAW,EACXC,eAAe,EACfJ,aAAcA,EACdK,QAAS,IAEXR,EAAS,KACX,MAAO,GACLpd,SAAU,QAAN+c,EAAJ/c,EAAMkH,YAAI,IAAA6V,GAAU,QAAVC,EAAVD,EAAYM,gBAAQ,IAAAL,GAApBA,EAAsBM,SAAS,UAC/Btd,SAAU,QAANid,EAAJjd,EAAMkH,YAAI,IAAA+V,GAAU,QAAVC,EAAVD,EAAYI,gBAAQ,IAAAH,GAApBA,EAAsBI,SAAS,QAC/B,CACA,MAAMC,QAAqBC,EAAAA,EAAAA,MAC3BL,QAAgBU,EAAAA,EAAAA,IAAOzX,GAAU6I,QAAS,CACxCyO,WAAW,EACXC,eAAe,EACfJ,aAAcA,EACdK,QAAS,IAEXR,EAAS,MACX,KAAO,CAAC,IAADU,EACL,GAA6B,WAAzB9d,SAAU,QAAN8d,EAAJ9d,EAAMkH,YAAI,IAAA4W,OAAN,EAAJA,EAAYC,UAAsB,CAAC,IAADC,EACpCb,OAtMgBvL,WACxB,MAAMqM,QAAiBC,MAAMC,GACvBC,QAAaH,EAASG,OAG5B,OADgB5T,IAAIC,gBAAgB2T,EACtB,EAiMUC,CAAkBre,SAAU,QAANge,EAAJhe,EAAMkH,YAAI,IAAA8W,OAAN,EAAJA,EAAYzT,OAC9C6S,EAASpd,EAAKkH,KAAKmW,SAASiB,MAC1Bte,EAAKkH,KAAKmW,SAASkB,YAAY,KAAO,EAE1C,KAAO,CACL,MAAMhB,QAAqBC,EAAAA,EAAAA,MAC3BL,QAAgBqB,EAAAA,EAAAA,IAAMpY,GAAU6I,QAAS,CACvCyO,WAAW,EACXC,eAAe,EACfJ,aAAcA,EACdK,QAAS,IAEXR,EAAS,KACX,CACF,CAEA,MAAMqB,EAAOC,SAASC,cAAc,KACpCF,EAAKG,KAAOzB,EACZsB,EAAKI,SAAQ,GAAA7L,QAAOhT,EAAKkH,KAAKmW,UAAY,SAASiB,MACjD,GACCte,EAAKkH,KAAKmW,UAAY,SAASkB,YAAY,MAC7C,KAAAvL,OAAIoK,GACLqB,EAAKK,OACP,CAAE,MAAOnT,GAET,CAAC,QACC1D,IAAmB,EACrB,CACF,IAGF2G,EAAAA,EAAAA,YAAU,KAAO,IAADmQ,EACe,OAAzB3U,cAAS,EAATA,GAAWQ,YACbsC,IAAU8L,IAAS,IAADgG,EACGN,SAASO,cAAc,oBAGxCpX,IAAW,GAEb,MAAMiK,EAAekH,EAAI5H,KAAK9C,IACH,IAAD4Q,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAxB,OAAIlR,aAAC,EAADA,EAAGvI,OAAO/F,aAAI,EAAJA,EAAM+F,KAClBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IASJlH,MAC4B,OAA1BgQ,GAAgBhQ,MACZgQ,GAAgBhQ,MAChBpH,SAAU,QAANkf,EAAJlf,EAAMkH,YAAI,IAAAgY,OAAN,EAAJA,EAAYO,WAClB9Q,OAC6B,OAA3ByI,GAAgBzI,OACZyI,GAAgBzI,OAChB3O,SAAU,QAANmf,EAAJnf,EAAMkH,YAAI,IAAAiY,OAAN,EAAJA,EAAYO,YAClBxY,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACChD,EAAEpH,MAAI,IACTgJ,UAAU,EACVtF,UAAWR,cAAS,EAATA,GAAWQ,UACtBL,MAAOvK,SAAU,QAANof,EAAJpf,EAAMkH,YAAI,IAAAkY,OAAN,EAAJA,EAAYO,YACnBzW,OAAQ,GACR+P,OAAO,EAEP7R,MAC4B,OAA1BgQ,GAAgBhQ,MACZgQ,GAAgBhQ,MAChBpH,SAAU,QAANqf,EAAJrf,EAAMkH,YAAI,IAAAmY,OAAN,EAAJA,EAAYI,WAClB9Q,OAC6B,OAA3ByI,GAAgBzI,OACZyI,GAAgBzI,OAChB3O,SAAU,QAANsf,EAAJtf,EAAMkH,YAAI,IAAAoY,OAAN,EAAJA,EAAYI,cAEpBhR,MAAO,CASLtH,MAC4B,OAA1BgQ,GAAgBhQ,MACZgQ,GAAgBhQ,MAChBpH,SAAU,QAANuf,EAAJvf,EAAMkH,YAAI,IAAAqY,OAAN,EAAJA,EAAYE,WAClB9Q,OAC6B,OAA3ByI,GAAgBzI,OACZyI,GAAgBzI,OAChB3O,SAAU,QAANwf,EAAJxf,EAAMkH,YAAI,IAAAsY,OAAN,EAAJA,EAAYE,eAIjBpR,CAAC,IAEV,IAAIyD,EAAa,CAAC,EAEd9L,KACF8L,EAAa7H,KAAKC,MAAMlE,KAE1B,MACM+L,EADS,IAAIC,gBAAgB3I,GAAS4I,QACxBC,IAAI,QAexB,OAdAC,EAAAA,EAAAA,IAAW,CACTC,KAAM,CACJC,kBAAmB,CACjBnB,MAAOW,EAEPS,cAAyB,QAAZyM,EAAEjN,SAAU,IAAAiN,OAAA,EAAVA,EAAYxM,UAG/BzM,MACAyH,YACAE,QACAsE,OACArE,kBAEKmE,CAAY,IAIvB,MAAM8N,EAA4B,QAArBb,EAAG9V,GAAWgG,eAAO,IAAA8P,OAAA,EAAlBA,EAAoBa,QAChCA,GACFA,EAAQC,eAAeC,KACzB,GACC,CAAC1V,cAAS,EAATA,GAAWQ,aAEfgE,EAAAA,EAAAA,YAAU,KACiC,IAADmR,EACZC,EAEnBC,GAHLhX,IAAeA,UAAAA,GAAYgG,UACzBjP,SAAU,QAAN+f,EAAJ/f,EAAMkH,YAAI,IAAA6Y,GAAVA,EAAY7P,SACd7F,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAIlH,IAAS,IAAEE,aAActK,SAAU,QAANggB,EAAJhgB,EAAMkH,YAAI,IAAA8Y,OAAN,EAAJA,EAAYL,eAEvDtV,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAIlH,IAAS,IAAEE,aAActK,SAAU,QAANigB,EAAJjgB,EAAMkH,YAAI,IAAA+Y,OAAN,EAAJA,EAAY1V,SAE3D,GACC,CAACvK,IAEJ,MAAM8f,GAAiBA,KACrB,OAAQ1V,cAAS,EAATA,GAAWQ,WACjB,IAAK,SACH,OAAO,EACT,IAAK,WACH,OAAO,EAAI,EACb,IAAK,YACH,OAAO,EAAI,EACb,IAAK,OACH,OAAO,GAAK,EACd,QACE,OAAOsV,IACX,EAEIC,GAAwB,QAAb3e,GAAG2L,YAAU,IAAA3L,QAAA,EAAVA,GAAY6M,QAC7BoF,GAAsB,iBAAdA,aAAG,EAAHA,EAAKnM,OAA0BmM,EAAI9L,YAG9CiH,EAAAA,EAAAA,YAAU,KACR,IACEuR,cAAW,EAAXA,GAAa5R,QAAS,GAAtB,MACAnE,IAAAA,GAAWQ,WACX+B,IAFA,MAGAA,IAAAA,GAAcsC,QACd,CACA,MAAMmR,EAAaxO,UACjB,GACE3I,GAAWgG,SACXhG,GAAWgG,QAAQ2Q,SADnB3W,MAEAmB,IAAAA,GAAWQ,UACX,CACA,MAAMgV,EAAU3W,GAAWgG,QAAQ2Q,QAEnC,IACE,MAAMS,EAAgBT,EAAQU,mBAE9B,GAAID,EAAe,CACjBtY,IAAc,GACd,MAAMwY,EAAiBF,EAAcG,YAC/BC,EAAiBb,EAAQc,QACzBtC,QAAaF,MAAMqC,GAAgBI,MAAMC,GAC7CA,EAAIxC,SAEAyC,EAAO,IAAIC,KAAK,CAAC1C,GAAM,GAADpL,OAAKoL,aAAI,EAAJA,EAAM9W,KAAI,QAAQ,CACjDA,KAAM,cAIFyZ,EAAW,IAAIC,SACrBD,EAASE,OAAO,OAAQJ,GACxBE,EAASE,OAAO,WAAW,GAADjO,OAAKoL,aAAI,EAAJA,EAAM9W,KAAI,SAEzC,IAAK,IAAD4Z,EAAAC,EAAAC,EACF,MAAMC,QAA4BC,EAAAA,GAAcC,UAC9C,YAAY,eAEZR,GAGI3Z,EAAQwL,SAAS6N,SAAqB,QAAPS,EAAdT,EAAgB/R,aAAK,IAAAwS,OAAP,EAAdA,EAAuB9Z,MAAO,KAAO,IACtDuH,EACJiE,SAAS6N,SAAqB,QAAPU,EAAdV,EAAgB/R,aAAK,IAAAyS,OAAP,EAAdA,EAAuBxS,OAAQ,KAAO,IAQ9C,IAAD6S,EAAAC,EAAAC,EANF,GACEL,SAAyB,QAAND,EAAnBC,EAAqBna,YAAI,IAAAka,GAAzBA,EAA2Bla,MACF,OAAzBkD,cAAS,EAATA,GAAWQ,YACX+B,IAFA0U,MAGA1U,IAAAA,GAAcsC,SAHdoS,MAIAlB,IAAAA,GAAa5R,OAEblE,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZQ,UAAW,IACXN,aACE+W,SAAyB,QAANG,EAAnBH,EAAqBna,YAAI,IAAAsa,GAAM,QAANC,EAAzBD,EAA2Bta,YAAI,IAAAua,GAAK,QAALC,EAA/BD,EAAkC,UAAE,IAAAC,OAAjB,EAAnBA,EAAsCpY,YAE1C+B,IAAY,GACZoD,GAAS,CAAErH,MAAOA,EAAOuH,OAAQA,IACjCzB,IAAU8L,IAAS,IAAD2I,EAChB,MAAM7P,EAAekH,EAAI5H,KAAK9C,IACxBA,aAAC,EAADA,EAAGvI,OAAO/F,aAAI,EAAJA,EAAM+F,KAClBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IACJlH,QACAuH,SACAzH,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACChD,EAAEpH,MAAI,IACTE,QACAuH,SACArD,MAAM,EACNf,MAAOgW,MASNjS,IAGT,IAAIyD,EAAa,CAAC,EACd9L,KACF8L,EAAa7H,KAAKC,MAAMlE,KAE1B,MACM+L,EADS,IAAIC,gBAAgB3I,GAAS4I,QACxBC,IAAI,QAcxB,OAbAC,EAAAA,EAAAA,IAAW,CACTC,KAAM,CACJC,kBAAmB,CACjBnB,MAAOW,EACPS,cAAyB,QAAZoP,EAAE5P,SAAU,IAAA4P,OAAA,EAAVA,EAAYnP,UAG/BzM,MACAyH,YACAE,QACAsE,OACArE,kBAEKmE,CAAY,GAGzB,CAAE,MAAOnG,GAET,CAAC,QACC5D,IAAc,EAChB,CACF,CAGF,CAAE,MAAO4D,GAET,CACF,GAGFyU,GACF,IACC,EAACD,cAAW,EAAXA,GAAa5R,QAAS,IAE1B,MAAMqT,GAAsB9I,IAExB7P,GAAWgG,SACXtC,GAAasC,UACZtC,GAAasC,QAAQ4S,SAAS/I,EAAMgJ,UAErCC,KACAhb,IAAmB,IAGnB6B,GAAoBqG,UACnBrG,GAAoBqG,QAAQ4S,SAAS/I,EAAMgJ,SAE5CrZ,IAAuB,GAGrBoE,UAAAA,GAASoC,SAAWpC,GAAQoC,QAAQ4S,SAAS/I,EAAMgJ,QACrD9Y,IAAW,GAEXA,IAAW,GAET8D,UAAAA,GAASmC,SAAWnC,GAAQmC,QAAQ4S,SAAS/I,EAAMgJ,QACrD/a,IAAmB,GAEnBA,IAAmB,GAEjBgG,GAAYkC,UAAYlC,GAAYkC,QAAQ4S,SAAS/I,EAAMgJ,SAC7DtW,IAAgB,EAClB,EAGIuW,GAAYnQ,UAChB,GAAI3I,GAAWgG,SAAWhG,GAAWgG,QAAQ2Q,QAAS,CAAC,IAADoC,EAAAC,EACpD,MAAMrC,EAAU3W,GAAWgG,QAAQ2Q,QAEnC,GAAI5f,SAAU,QAANgiB,EAAJhiB,EAAMkH,YAAI,IAAA8a,GAAU,QAAVC,EAAVD,EAAY3E,gBAAQ,IAAA4E,GAApBA,EAAsB3E,SAAS,QACjC,IAAK,IAAD4E,EAAAC,EACF,MAAM1B,EAAiBb,EAAQc,QACzB0B,EAAa3B,EAAexB,cAAc,QAChDmD,EAAW1T,MAAMvH,OAAS,OAC1B,MAAMgW,QAAgBM,EAAAA,EAAAA,IAAM2E,GAC5B/X,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZQ,UAAW,IACXN,aAAc6S,KAEhB,MAAM/V,EAAQwL,SAAS6N,SAAqB,QAAPyB,EAAdzB,EAAgB/R,aAAK,IAAAwT,OAAP,EAAdA,EAAuB9a,MAAO,KAAO,IACtDuH,EAASiE,SAAS6N,SAAqB,QAAP0B,EAAd1B,EAAgB/R,aAAK,IAAAyT,OAAP,EAAdA,EAAuBxT,OAAQ,KAAO,IAC9DzB,IAAU8L,IAAS,IAADqJ,EAChB,MAAMvQ,EAAekH,EAAI5H,KAAK9C,IACxBA,aAAC,EAADA,EAAGvI,OAAO/F,aAAI,EAAJA,EAAM+F,KAClBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IACJlH,MAAOA,EAAQ,IAAMA,EAAQ,IAC7BuH,OAAQA,EAAS,IAAMA,EAAS,IAChCzH,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACChD,EAAEpH,MAAI,IACTqD,MAAO4S,EACP7R,MAAM,EACNlE,MAAOA,EAAQ,IAAMA,EAAQ,IAC7BuH,OAAQA,EAAS,IAAMA,EAAS,IAChC2T,QAASnF,IAEXzO,MAAO,CACLtH,MAAOA,EAAQ,IAAMA,EAAQ,IAC7BuH,OAAQA,EAAS,IAAMA,EAAS,OAI/BL,IAETjD,IAAY,GACZ,IAAI0G,EAAa,CAAC,EACd9L,KACF8L,EAAa7H,KAAKC,MAAMlE,KAE1B,MACM+L,EADS,IAAIC,gBAAgB3I,GAAS4I,QACxBC,IAAI,QAexB,OAdAC,EAAAA,EAAAA,IAAW,CACTC,KAAM,CACJC,kBAAmB,CACjBnB,MAAOW,EAEPS,cAAyB,QAAZ8P,EAAEtQ,SAAU,IAAAsQ,OAAA,EAAVA,EAAY7P,UAG/BzM,MACAyH,YACAE,QACAsE,OACArE,kBAEKmE,CAAY,GAOvB,CAAE,MAAOnG,GAET,MAEA,IACE5D,IAAc,GACd,MAAMsY,EAAgBT,EAAQU,mBAC9B,GAAID,EAAe,CAAC,IAADkC,EAAAC,EAAAC,EACjB,MAAMlC,EAAiBF,EAAcG,YAC/BC,EAAiBb,EAAQc,QACzBtC,QAAaF,MAAMqC,GAAgBI,MAAMC,GAAQA,EAAIxC,SACrDyC,EAAO,IAAIC,KAAK,CAAC1C,GAAM,GAADpL,OAAKoL,aAAI,EAAJA,EAAM9W,KAAI,QAAQ,CACjDA,KAAM,cAIFyZ,EAAW,IAAIC,SACrBD,EAASE,OAAO,OAAQJ,GACxBE,EAASE,OAAO,WAAW,GAADjO,OAAKoL,aAAI,EAAJA,EAAM9W,KAAI,SACzC,MAAM+Z,QAA4BC,EAAAA,GAC/BC,UAAU,YAAY,eAAiBR,GACvC2B,SAAQ,SAKLtb,EAAQwL,SAAS6N,SAAqB,QAAP8B,EAAd9B,EAAgB/R,aAAK,IAAA6T,OAAP,EAAdA,EAAuBnb,MAAO,KAAO,IACtDuH,EAASiE,SAAS6N,SAAqB,QAAP+B,EAAd/B,EAAgB/R,aAAK,IAAA8T,OAAP,EAAdA,EAAuB7T,OAAQ,KAAO,IAC9DF,GAAS,CAAErH,MAAOA,EAAOuH,OAAQA,IAC7B0S,SAAyB,QAANoB,EAAnBpB,EAAqBna,YAAI,IAAAub,GAAzBA,EAA2Bvb,MAC7BgG,IAAU8L,IAAS,IAAD2J,EAAAC,EAAAC,EAAAC,EAChB,MAAMhR,EAAekH,EAAI5H,KAAK9C,IACH,IAADyU,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAxB,OAAI9U,aAAC,EAADA,EAAGvI,OAAO/F,aAAI,EAAJA,EAAM+F,KAClBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IACJlH,MAAOA,EACPuH,OAAQA,EACRzH,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACChD,EAAEpH,MAAI,IACTE,MAAOA,EACPuH,OAAQA,EACRpE,MAAO8W,SAAyB,QAAN0B,EAAnB1B,EAAqBna,YAAI,IAAA6b,GAAM,QAANC,EAAzBD,EAA2B7b,YAAI,IAAA8b,GAAK,QAALC,EAA/BD,EAAkC,UAAE,IAAAC,OAAjB,EAAnBA,EAAsC3Z,SAC7CgC,MAAM,EACNgX,QAASjB,SAAyB,QAAN6B,EAAnB7B,EAAqBna,YAAI,IAAAgc,GAAM,QAANC,EAAzBD,EAA2Bhc,YAAI,IAAAic,GAAK,QAALC,EAA/BD,EAAkC,UAAE,IAAAC,OAAjB,EAAnBA,EAAsC9Z,aAS9CgF,CAAC,IAEVjE,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZQ,UAAW,IACXN,aAAc+W,SAAyB,QAANsB,EAAnBtB,EAAqBna,YAAI,IAAAyb,GAAM,QAANC,EAAzBD,EAA2Bzb,YAAI,IAAA0b,GAAK,QAALC,EAA/BD,EAAkC,UAAE,IAAAC,OAAjB,EAAnBA,EAAsCvZ,YAEtD+B,IAAY,GACZ,IAAI0G,EAAa,CAAC,EACd9L,KACF8L,EAAa7H,KAAKC,MAAMlE,KAE1B,MACM+L,EADS,IAAIC,gBAAgB3I,GAAS4I,QACxBC,IAAI,QAexB,OAdAC,EAAAA,EAAAA,IAAW,CACTC,KAAM,CACJC,kBAAmB,CACjBnB,MAAOW,EAEPS,cAAyB,QAAZuQ,EAAE/Q,SAAU,IAAA+Q,OAAA,EAAVA,EAAYtQ,UAG/BzM,MACAyH,YACAE,QACAsE,OACArE,kBAEKmE,CAAY,GAGzB,CAGF,CAAE,MAAOnG,GAET,CAEJ,CAEA,GAGFiD,EAAAA,EAAAA,YAAU,KAAO,IAADyU,GACTvb,IAAD,MAAe9H,GAAU,QAANqjB,EAAJrjB,EAAMkH,YAAI,IAAAmc,GAAVA,EAAY/X,MAAQwC,IACrCZ,IAAU8L,IAAS,IAADsK,EAChB,MAAMxR,EAAekH,EAAI5H,KAAK9C,IACxBA,aAAC,EAADA,EAAGvI,OAAO/F,aAAI,EAAJA,EAAM+F,KAClBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IAEJI,MAAO,CACLtH,MAAOoH,cAAK,EAALA,GAAOpH,MACduH,OAAQH,cAAK,EAALA,GAAOG,UAIdL,IAGT,IAAIyD,EAAa,CAAC,EACd9L,KACF8L,EAAa7H,KAAKC,MAAMlE,KAE1B,MACM+L,EADS,IAAIC,gBAAgB3I,GAAS4I,QACxBC,IAAI,QAcxB,OAbAC,EAAAA,EAAAA,IAAW,CACTC,KAAM,CACJC,kBAAmB,CACjBnB,MAAOW,EACPS,cAAyB,QAAZ+Q,EAAEvR,SAAU,IAAAuR,OAAA,EAAVA,EAAY9Q,UAG/BzM,MACAyH,YACAE,QACAsE,OACArE,kBAEKmE,CAAY,GAEvB,GACC,CAAChK,KAEJ,MAAM,aAAEyb,GAAY,cAAEC,KAAkBC,EAAAA,EAAAA,IAAY,CAClDC,OAASC,IACP,MAAM9C,EAAO8C,EAAM,GACnB,GAAI9C,EAAM,CACR,MAAM+C,EAAS,IAAIC,WACnBD,EAAOE,cAAcjD,GAErB+C,EAAOG,OAAS,KACd,MAAMC,EAAeJ,EAAOK,OAEtBC,EAAM,IAAIC,MAChBD,EAAIE,IAAMJ,EAEVE,EAAIH,OAAS,KACX,IAAI3c,EAAQ8c,EAAI9c,MACZuH,EAASuV,EAAIvV,OAEjB,GAAIvH,EAAQ,KAAOuH,EAAS,IAAK,CAC/B,MAAM0V,EAAcjd,EAAQuH,EAExBvH,EAAQuH,GACVvH,EAAQ,IACRuH,EAAS,IAAM0V,IAEf1V,EAAS,IACTvH,EAAQ,IAAMid,EAElB,CAEAha,IAAc4J,IAAI3C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACb2C,GAAI,IACP3J,aAAc0Z,MAGhB9W,IAAU8L,IAAS,IAADsL,EAChB,MAAMxS,EAAekH,EAAI5H,KAAK9C,IACH,IAADiW,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAxB,OAAItW,aAAC,EAADA,EAAGvI,OAAO/F,aAAI,EAAJA,EAAM+F,KAClBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IACJlH,MAAO0G,cAAM,EAANA,GAAQ1G,MACfuH,OAAQb,cAAM,EAANA,GAAQa,OAChBzH,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACChD,EAAEpH,MAAI,IACTqD,MAAOyZ,EACPrE,YAAaqE,EACb1B,QAAS0B,EACTvE,WAAYnR,SAAQ,QAAPiW,EAADjW,EAAGI,aAAK,IAAA6V,OAAP,EAADA,EAAUnd,MACtBsY,YAAapR,SAAQ,QAAPkW,EAADlW,EAAGI,aAAK,IAAA8V,OAAP,EAADA,EAAU7V,OACvBkW,cAAevW,SAAQ,QAAPmW,EAADnW,EAAGI,aAAK,IAAA+V,OAAP,EAADA,EAAUrd,MACzB0d,eAAgBxW,SAAQ,QAAPoW,EAADpW,EAAGI,aAAK,IAAAgW,OAAP,EAADA,EAAU/V,SAE5BD,MAAO,CACLtH,MAAOkH,SAAQ,QAAPqW,EAADrW,EAAGI,aAAK,IAAAiW,OAAP,EAADA,EAAUvd,MACjBuH,OAAQL,SAAQ,QAAPsW,EAADtW,EAAGI,aAAK,IAAAkW,OAAP,EAADA,EAAUjW,UAIjBL,CAAC,IAEV,IAAIyD,EAAa,CAAC,EACd9L,KACF8L,EAAa7H,KAAKC,MAAMlE,KAE1B,MACM+L,EADS,IAAIC,gBAAgB3I,GAAS4I,QACxBC,IAAI,QAexB,OAdAC,EAAAA,EAAAA,IAAW,CACTC,KAAM,CACJC,kBAAmB,CACjBnB,MAAOW,EAEPS,cAAyB,QAAZ+R,EAAEvS,SAAU,IAAAuS,OAAA,EAAVA,EAAY9R,UAG/BzM,MACAyH,YACAE,QACAsE,OACArE,kBAEKmE,CAAY,IAGrB9I,IAAW,GACXG,GAAU,GAAG,EAIf+a,EAAIa,QAAWpZ,IAIZ,CACF,EAGHiY,EAAOmB,QAAWpZ,IACwC,CAE5D,CACAhD,IAAiB,EAAM,IAIrBqc,GAAkBlM,IACJ,UAAdA,EAAMmM,MACRnM,EAAMoM,kBACFjc,GAAWgG,SAAWtC,GAAasC,UACrC8S,KACA/Y,IAAW,IAEf,GAGF4F,EAAAA,EAAAA,YAAU,KACR,MAAMuW,EAAgBzG,SAASO,cAAc,qBAO7C,OALIkG,SAAiB/a,IAAAA,GAAWQ,YAC9Bua,EAAcC,iBAAiB,YAAaxD,IAC5ClD,SAAS0G,iBAAiB,UAAWJ,KAGhC,KACDG,GACFA,EAAcE,oBAAoB,YAAazD,IAEjDlD,SAAS2G,oBAAoB,UAAWL,GAAe,CACxD,GACA,CAAC5a,cAAS,EAATA,GAAWQ,YAEf,MAAM0a,IAAoB1J,EAAAA,EAAAA,cACxBC,EAAAA,EAAAA,WAAUlH,IACRzH,IAAU8L,IACR,MAAMuM,EAAWvM,EAAI5H,KAAK9C,IACxBA,aAAC,EAADA,EAAGvI,OAAO/F,aAAI,EAAJA,EAAM+F,KAAEuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACThD,GAAC,IAAEpH,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAOhD,EAAEpH,MAAI,IAAEmW,SAAU1I,EAAEmN,OAAO0D,UAC9ClX,IAIN,OADA+H,GAAoBkP,EAAUjY,MACvBiY,CAAQ,GACf,GACD,KACH,CAACvlB,aAAI,EAAJA,EAAM+F,GAAImH,KAOPuY,GAA0B,QAAbhkB,GAAG0L,YAAU,IAAA1L,IAE/B,QAF+BC,GAAVD,GAAY4M,QAC/BoF,IAAQA,aAAG,EAAHA,EAAK9L,WAA2B,cAAd8L,SAAAA,EAAKnM,eACjC,IAAA5F,QAF+B,EAAVA,GAEnB6M,OAEGmX,IAAsBC,EAAAA,EAAAA,UAAQ,IAC3BF,GAAgB,GACtB,CAACA,KA6BJ,MAAMG,GAA4B,QAAbjkB,GAAGwL,YAAU,IAAAxL,QAAA,EAAVA,GAAY0M,QAAQoF,GAAQA,aAAG,EAAHA,EAAK9L,WACnDke,IAAiBC,EAAAA,EAAAA,IAAeF,KAE/BjX,GAAQoX,KAAa/e,EAAAA,EAAAA,UAAS6e,cAAc,EAAdA,GAAgBlX,SAC9CvH,GAAO4e,KAAYhf,EAAAA,EAAAA,UAAS6e,cAAc,EAAdA,GAAgBze,QAC5C6e,GAAMC,KAAWlf,EAAAA,EAAAA,UAAS6e,cAAc,EAAdA,GAAgBlW,IAC1CwW,GAAKC,KAAUpf,EAAAA,EAAAA,UAAS6e,cAAc,EAAdA,GAAgBhW,GA+E/C,OA7EAjB,EAAAA,EAAAA,YAAU,KAAO,IAADyX,EACd,MAAMC,EAAkBrd,UAAmB,QAATod,EAAVpd,GAAYgG,eAAO,IAAAoX,OAAT,EAAVA,EAAqBzG,QACvC2G,EAAeA,KACnB,GAAID,EAAiB,CACIA,EAAgB5F,QAErC7Y,IAAW,GAEX2e,WAAWD,EAAc,IAE7B,GAGED,GACFC,GACF,GACC,CAACtd,UAAmB,QAATrH,GAAVqH,GAAYgG,eAAO,IAAArN,QAAT,EAAVA,GAAqBge,WAEzBhR,EAAAA,EAAAA,YAAU,KACRsX,GAAQL,cAAc,EAAdA,GAAgBlW,GACxByW,GAAOP,cAAc,EAAdA,GAAgBhW,GACvBmW,GAASH,cAAc,EAAdA,GAAgBze,OACzB2e,GAAUF,cAAc,EAAdA,GAAgBlX,OAAO,GAChC,CAACkX,MAEJjX,EAAAA,EAAAA,YAAU,KAAO,IAAD6X,EACd,MAAMC,EAA6B,QAAbD,EAAGtZ,YAAU,IAAAsZ,OAAA,EAAVA,EAAYpY,QAClCrO,GAAuB,gBAAdA,EAAKsH,OAA0BtH,aAAI,EAAJA,EAAM2H,YAEjD,IAAIgf,EAAgBd,GAAelW,EAC/BiX,EAAgBf,GAAehW,EAC/BgX,EAAoBhB,cAAc,EAAdA,GAAgBze,MACpC0f,EAAqBjB,cAAc,EAAdA,GAAgBlX,OACzC+X,EAAiB5P,SAAS9W,IAAU,IAAD+mB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAcjC,IACW,QAATP,EAAA/mB,EAAKkH,YAAI,IAAA6f,GAAa,QAAbC,EAATD,EAAWtV,mBAAW,IAAAuV,OAAb,EAATA,EAAwBrW,QAAiB,QAAZsW,EAAGjnB,EAAKkH,YAAI,IAAA+f,GAAa,QAAbC,EAATD,EAAWxV,mBAAW,IAAAyV,OAAb,EAATA,EAAwBnW,OACxD8U,GAAelW,EAAIkW,GAAeze,MAClC,CAAC,IAADmgB,EAAAC,EAAAC,EAAAC,EACAb,EAAoBhB,cAAc,EAAdA,GAAgBze,MACpC,MAAMugB,GACK,QAATJ,EAAAvnB,EAAKkH,YAAI,IAAAqgB,GAAa,QAAbC,EAATD,EAAW9V,mBAAW,IAAA+V,OAAb,EAATA,EAAwB7W,QACf,QADoB8W,EAC7BznB,EAAKkH,YAAI,IAAAugB,GAAa,QAAbC,EAATD,EAAWhW,mBAAW,IAAAiW,OAAb,EAATA,EAAwB3W,QACvB8U,GAAelW,EAAIkW,GAAeze,OACrCyf,EAAoBhB,GAAeze,MAAQugB,CAC7C,CACA,IACW,QAATR,EAAAnnB,EAAKkH,YAAI,IAAAigB,GAAa,QAAbC,EAATD,EAAW1V,mBAAW,IAAA2V,OAAb,EAATA,EAAwBtW,QAAiB,QAAZuW,EAAGrnB,EAAKkH,YAAI,IAAAmgB,GAAa,QAAbC,EAATD,EAAW5V,mBAAW,IAAA6V,OAAb,EAATA,EAAwBrW,OACxD4U,GAAehW,EAAIgW,GAAelX,OAClC,CAAC,IAADiZ,EAAAC,EAAAC,EAAAC,EACAjB,EAAqBjB,cAAc,EAAdA,GAAgBlX,OACrC,MAAMgZ,GACK,QAATC,EAAA5nB,EAAKkH,YAAI,IAAA0gB,GAAa,QAAbC,EAATD,EAAWnW,mBAAW,IAAAoW,OAAb,EAATA,EAAwB/W,QACf,QADoBgX,EAC7B9nB,EAAKkH,YAAI,IAAA4gB,GAAa,QAAbC,EAATD,EAAWrW,mBAAW,IAAAsW,OAAb,EAATA,EAAwB9W,QACvB4U,GAAehW,EAAIgW,GAAelX,QACrCmY,EAAqBjB,GAAelX,OAASgZ,EAAM,EACrD,KAGFzB,GAAQS,GACRP,GAAOQ,GACPZ,GAASa,GACTd,GAAUe,EAAmB,GAC5B,CAAClB,MAGFoC,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAC,SAAA,EA2BEF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFC,GAAI,CACFzZ,OAAQ,OACRvH,MAAO,OACPihB,UAAU,UAADrV,QAAYhT,SAAU,QAAN6B,GAAJ7B,EAAMkH,YAAI,IAAArF,QAAN,EAAJA,GAAY2P,WAAY,EAAC,QAC9C8W,cAA8B,aAAf5hB,GAA4B,MAAQ,QAErDX,GAAE,QAAAiN,OAAUhT,aAAI,EAAJA,EAAM+F,IAClB0V,UAAW,SACX8M,YAAaA,KACXhgB,IAAY,EAAK,EAEnBigB,aAAcA,KACZjgB,IAAY,EAAM,EAClB2f,SAAA,EAEFO,EAAAA,EAAAA,KAACC,EAAAA,GAAW,CACVC,WACGlhB,IACD2G,IACApO,EAAK2H,WACJ3H,EAAK4oB,WACLlD,GAEHhX,MAAO,CACLma,UAAW,SAEbtU,SAAUuU,EAAAA,GAASC,IAAIb,UAEvBO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFa,QAAS,OACTC,IAAK,MAELC,EAAG,MACHd,GAAI,CACFe,QAAS,UACThiB,OAAQ,oBACRiiB,UACE,2DACFxV,OAAQ,KACRyV,aAAc,OAIdC,WAAY,SACZT,UAAW,QAEXG,QAAS,OACTO,eAAgB,SAChBC,aAAc,SAEd7a,OAAQ,QACRuZ,SAEDloB,EAAK2H,WACJqgB,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAC,SAAA,CAC4B,OAAzB9d,cAAS,EAATA,GAAWQ,aACV6d,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAAD,UACFO,EAAAA,EAAAA,KAACgB,EAAAA,EAAiB,CAChBC,UAAU,MACVC,OAAK,EACLvB,GAAI,CACF,yBAA0B,CACxBwB,QAAS,IAGbC,MAAO7pB,SAAU,QAAN8B,GAAJ9B,EAAMkH,YAAI,IAAApF,QAAN,EAAJA,GAAYub,SAAS6K,UAE5BO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACFzZ,OAAQ,OACRxH,OAAQ,qBACRkiB,aAAc,MACdO,QAAS,MACTT,QAAS,UACT/hB,MAAO,QACP0iB,SAAU,OACVd,QAAS,OACTM,WAAY,SACZC,eAAgB,UAChBrB,UASFO,EAAAA,EAAAA,KAACsB,EAAAA,IAQC,CACAC,aAAchqB,EAAKkH,KAAKmW,SACxB4M,QAASA,IAAM1d,IAAkB,GACjC2d,OAAQA,IAAM3d,IAAkB,GAChC4d,SAAWxV,GA7PbA,KACpB2Q,GAAkB3Q,EAAE,EA4PmByV,CAAazV,GAC9B0V,aAAa,MACbjC,GAAI,CACFzZ,OAAQ,OAER,2BAA4B,CAC1BxH,OAAQ,OACRyiB,QAAS,MACTjb,OAAQ,OACR2b,SAAU,SAEV,aAAc,CACZnjB,OAAQ,QAEV,mBAAoB,CAClBA,OAAQ,QAEV,yBAA0B,CACxBA,OAAQ,QAGV,wBAAyB,CAEvBojB,YAAa,MACbC,aAAcle,GAAiB,MAAQ,MACvCme,SAAU,OACVC,WAAY,MACZvjB,OAAQ,OACRwH,OAAQ,OACRvH,MAAO,QACPujB,WAAYre,GACR,SACA,SACJge,SAAUhe,GAAiB,UAAY,SACvCse,aAActe,GACV,OACA,mCAUlBtM,SAAU,QAAN+B,GAAJ/B,EAAMkH,YAAI,IAAAnF,IAAM,QAANC,GAAVD,GAAYmF,YAAI,IAAAlF,IAAhBA,GAAkB+I,SAAmC,OAAzBX,cAAS,EAATA,GAAWQ,aACvC6d,EAAAA,EAAAA,KAACoC,EAAAA,EAAa,CACZC,GAAG,MACHC,YAAY,WACZC,QAAQ,SACRC,UAAQ,EACR7C,GAAI,CACFzZ,OAAQ,OACRvH,MAAO,WAIXpH,SAAU,QAANiC,GAAJjC,EAAMkH,YAAI,IAAAjF,IAAM,QAANC,GAAVD,GAAYiF,YAAI,IAAAhF,IAAhBA,GAAkB6I,UAClBid,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAC,SAAA,CACG,IACyB,WAAzBloB,SAAU,QAANmC,GAAJnC,EAAMkH,YAAI,IAAA/E,QAAN,EAAJA,GAAY4b,WACc,OAAzB3T,cAAS,EAATA,GAAWQ,aACT6d,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAC+C,IAAKle,GAAWkb,UACnBO,EAAAA,EAAAA,KAAC0C,EAAAA,EAAa,CACZC,GAAI,EAEJC,YAAa,CACXC,eAAe,GAEjBC,QAASA,IAAM5iB,IAAiB,GAChC6iB,KAAM9iB,GACN+iB,sBAAoB,EACpBC,sBAAoB,EACpBC,sBAAoB,EACpB9B,OACE7B,EAAAA,EAAAA,MAAC4D,EAAAA,IAAK,CACJxD,GAAI,CACFc,EAAG,OACHE,UAAW,4BACXjiB,OAAQ,oBACR6hB,QAAS,OACTC,IAAK,MACL4C,cAAe,SACf1C,QAAS,OACTE,aAAc,OACdjiB,MAAO,SACP8gB,SAAA,EAEFF,EAAAA,EAAAA,MAAC4D,EAAAA,IAAK,CACJE,UAAW,MACX7C,IAAK,OACLwB,SAAU,OACV9b,OAAQ,OACRod,SAAU,MACV3D,GAAI,CACFiB,aAAc,MACd2C,WAAY,gBACZC,OAAQ,UACR,UAAW,CACT9C,QAAS,YAGb+C,QAASA,KACP1e,IAAS2e,EAAAA,EAAAA,KAAiB,IAC1B3e,IAAS4e,EAAAA,EAAAA,KAAiB,IAC1B5e,IAAS6e,EAAAA,EAAAA,IAAkBrsB,aAAI,EAAJA,EAAM+F,KACjCyH,IAAS8e,EAAAA,EAAAA,IAAaxe,KACtB9E,IAAW,GACXG,GAAU,IACVR,IAAiB,EAAM,EACvBuf,SAAA,EAEFF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFa,QAAS,OACTM,WAAY,SACZL,IAAK,OACLf,SAAA,EAEAO,EAAAA,EAAAA,KAAC8D,EAAAA,IAAe,IAAI,QAEtB9D,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACTpE,GAAI,CACFqC,SAAU,OACVzB,QAAS,OACTM,WAAY,SACZoB,WAAY,MACZ+B,WAAY,UACZC,MAAO,WACPxE,SACH,6BAIHO,EAAAA,EAAAA,KAACmD,EAAAA,IAAK,CACJE,UAAW,MACX7C,IAAK,OACLwB,SAAU,OACV9b,OAAQ,OACRod,SAAU,MACV3D,GAAI,CACFiB,aAAc,MACd2C,WAAY,gBACZC,OAAQ,UACR,UAAW,CACT9C,QAAS,YAEXjB,UAEFF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFa,QAAS,OACTM,WAAY,SACZL,IAAK,OAAOf,SAAA,EAEZO,EAAAA,EAAAA,KAAA,SAAAnX,EAAAA,EAAAA,GAAA,GAAWkS,QACXiF,EAAAA,EAAAA,KAAA,OAAAnX,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACMiS,GAAa,CACf9H,UAAW,WACX/M,MAAO,CACLtH,MAAO,OACPuH,OAAQ,OACRqa,QAAS,OACT6C,cAAe,SACfvC,WAAY,SACZC,eAAgB,SAChB0C,OAAQ,cAEV,IAAA/D,UAEFF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFa,QAAS,OACTM,WAAY,SACZL,IAAK,OACLf,SAAA,EAEAO,EAAAA,EAAAA,KAACkE,EAAAA,EAAQ,KAETlE,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACTpE,GAAI,CACFqC,SAAU,OACVC,WAAY,MACZ+B,WAAY,UACZC,MAAO,UACP1D,QAAS,OACTM,WAAY,UACZpB,SACH,mCAWTO,EAAAA,EAAAA,KAACmD,EAAAA,IAAK,CACJE,UAAW,MACX7C,IAAK,OACLwB,SAAU,OACV9b,OAAQ,OACRod,SAAU,MACV3D,GAAI,CACFiB,aAAc,MACd2C,WAAY,gBACZC,OAAQ,UACR,UAAW,CACT9C,QAAS,YAGb+C,QAASA,KAAO,IAADU,EACb/iB,IAAwB,GACxBQ,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZE,aAActK,SAAU,QAAN4sB,EAAJ5sB,EAAMkH,YAAI,IAAA0lB,OAAN,EAAJA,EAAYriB,SAE5B8M,GAAmB,CACjBjQ,MAAO,KACPuH,OAAQ,OAEVhG,IAAiB,GACjBK,IAAW,GACXG,GAAU,GAAG,EACb+e,UAEFF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFa,QAAS,OACTM,WAAY,SACZL,IAAK,OAAOf,SAAA,EAEZO,EAAAA,EAAAA,KAACoE,EAAAA,IAAe,KAChBpE,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACTpE,GAAI,CACFqC,SAAU,OACVC,WAAY,MACZ+B,WAAY,UACZC,MAAO,UACP1D,QAAS,OACTM,WAAY,UACZpB,SACH,2BAMRA,UAEDO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACF+D,QAAUvX,IACRA,EAAEuQ,kBACFvc,IAAkBD,IAClB3B,IAAmB,GACnBiC,IAAW,GACXP,IAAuB,GACvBY,IAAe,GACfmC,IAAgB,EAAM,EACtB0c,UAEFO,EAAAA,EAAAA,KAACqE,EAAAA,EAAmB,CAClBpD,UAAU,MACVqD,aAAc,gBACdC,SAAUtkB,GAAawf,UAEvBO,EAAAA,EAAAA,KAACwE,EAAAA,GAAU,CACT7E,GAAI,CAUFzZ,OAAQ,kBACRvH,MAAO,kBACPiiB,aAAc,MACd2C,WAAY,gBACZkB,WAAY,OACZtD,QAAS,MACTqC,OAAQ,UAER,UAAW,CACTiB,WAAY,YAEdhF,UAEFO,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACT/B,SAAU,GACVC,WAAY,IACZgC,MAAO,UACP/d,OAAQ,OAAOuZ,UAEfO,EAAAA,EAAAA,KAAC0E,EAAAA,IAAkB,gBAQT,WAAzBntB,SAAU,QAANoC,GAAJpC,EAAMkH,YAAI,IAAA9E,QAAN,EAAJA,GAAY2b,WACc,OAAzB3T,cAAS,EAATA,GAAWQ,aACT6d,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAAD,UACFO,EAAAA,EAAAA,KAAC0C,EAAAA,EAAa,CACZC,GAAI,EAEJF,IAAKpe,GACLue,YAAa,CACXC,eAAe,GAEjBC,QAASA,IAAMxkB,IAAmB,GAClCykB,KAAM1kB,GACN2kB,sBAAoB,EACpBC,sBAAoB,EACpBC,sBAAoB,EACpB9B,OACE7B,EAAAA,EAAAA,MAAC4D,EAAAA,IAAK,CACJxD,GAAI,CACFc,EAAG,OACHE,UAAW,4BACXjiB,OAAQ,oBACR6hB,QAAS,OACT6C,cAAe,SACf1C,QAAS,OACTE,aAAc,QACdnB,SAAA,EAEFF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFa,QAAQ,OACRM,WAAW,SACXL,IAAK,OACLmE,YAAaA,KAYX,IAAItb,EAXJzH,IAAcgjB,IAAa/b,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACtB+b,GAAa,IAChBriB,gBACGqiB,EAAcriB,mBASnBkC,IAAU8L,IACRlH,EAAekH,EAAI5H,KAAKkc,GAClBA,EAAMvnB,MAAO/F,aAAI,EAAJA,EAAM+F,KACrBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKgc,GAAK,IACRpmB,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACCgc,EAAMpmB,MAAI,IACb8D,gBACGsiB,EAAMpmB,KAAK8D,eACdC,aACEqiB,EAAMpmB,KAAK+D,iBAIZqiB,IAEFxb,KAETuE,GACEvE,EACAxE,MAEFvG,IAAmB,GACnBsE,IAAY,EAAM,EAEpB+c,GAAI,CACF6D,OAAQ,UACR5C,aAAc,MACd2C,WAAY,gBACZU,MAAO,QACP/d,OAAQ,OACRod,SAAU,MAEV,UAAW,CACTwB,gBAAiB,YAEnBrF,SAAA,EAEFO,EAAAA,EAAAA,KAAC+E,EAAAA,EAAe,KAEhB/E,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACTpE,GAAI,CACFqC,SAAU,OACVC,WAAY,MACZ+B,WAAY,UACZC,MAAO,WACPxE,SACH,wBAIHF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFa,QAAQ,OACRM,WAAW,SACX8D,YAAaA,KAYX,IAAItb,EAXJzH,IAAcgjB,IAAa/b,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACtB+b,GAAa,IAChBpiB,cAAeoiB,EAAcpiB,iBAU/BiC,IAAU8L,IACRlH,EAAekH,EAAI5H,KAAKkc,GAClBA,EAAMvnB,MAAO/F,aAAI,EAAJA,EAAM+F,KACrBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKgc,GAAK,IACRpmB,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACCgc,EAAMpmB,MAAI,IACb8D,eACEsiB,EAAMpmB,KAAK8D,eACbC,cACGqiB,EAAMpmB,KAAK+D,iBAIbqiB,IAEFxb,KAETuE,GACEvE,EACAxE,MAEFvG,IAAmB,GACnBsE,IAAY,EAAM,EAEpB+c,GAAI,CACF6D,OAAQ,UACR5C,aAAc,MACdJ,IAAK,OACLyD,MAAO,QACP/d,OAAQ,OACRod,SAAU,MACVC,WAAY,gBACZ,UAAW,CACTuB,gBAAiB,YAEnBrF,SAAA,EAEFO,EAAAA,EAAAA,KAACgF,EAAAA,EAAc,CAAC/e,MAAO,CAAEgf,YAAa,OACtCjF,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACTpE,GAAI,CACFqC,SAAU,OACVC,WAAY,MACZ+B,WAAY,UACZC,MAAO,WACPxE,SACH,wBAKNA,UAEDO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFiF,YAAczY,IACZA,EAAEuQ,kBACFne,IAAoBD,IACpB6B,IAAiB,GACjBK,IAAW,GACXP,IAAuB,GACvBY,IAAe,GACfmC,IAAgB,EAAM,EACtB0c,UAEFO,EAAAA,EAAAA,KAACqE,EAAAA,EAAmB,CAClBpD,UAAU,MACVqD,aAAc,aACdC,SAAUlmB,GAAgBohB,UAE1BO,EAAAA,EAAAA,KAACwE,EAAAA,GAAU,CACT7E,GAAI,CAUFzZ,OAAQ,kBACRvH,MAAO,kBACPiiB,aAAc,MACd2C,WAAY,gBACZkB,WAAY,OACZtD,QAAS,MACTqC,OAAQ,UAER,UAAW,CACTiB,WAAY,YAEdhF,UAEFO,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACT/B,SAAU,GACVC,WAAY,IACZgC,MAAO,UACP/d,OAAQ,OAAOuZ,UAEfO,EAAAA,EAAAA,KAAC+E,EAAAA,EAAe,gBAQN,OAAzBpjB,cAAS,EAATA,GAAWQ,aACV6d,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAAD,UACFO,EAAAA,EAAAA,KAACgB,EAAAA,EAAiB,CAChBC,UAAU,MACVC,OAAK,EACLE,MAAO,WAAW3B,UAElBO,EAAAA,EAAAA,KAACwE,EAAAA,GAAU,CACT7E,GAAI,CAYFzZ,OAAQ,kBACRvH,MAAO,kBACPiiB,aAAc,MACd2C,WAAY,gBACZkB,WAAY,OACZtD,QAAS,MACTqC,OAAQ,UAER,UAAW,CACTiB,WAAY,YAGhBhB,QAASA,IAAMtP,KAAmBsL,SAEjClgB,IACCygB,EAAAA,EAAAA,KAACkF,EAAAA,EAAsB,CAACC,KAAM,MAE9BnF,EAAAA,EAAAA,KAACoF,EAAAA,IAAe,UAMA,WAAzB7tB,SAAU,QAANqC,GAAJrC,EAAMkH,YAAI,IAAA7E,QAAN,EAAJA,GAAY0b,YACX0K,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAAD,UACFO,EAAAA,EAAAA,KAAC0C,EAAAA,EAAa,CACZD,IAAKre,GACLue,GAAI,EAEJC,YAAa,CACXC,eAAe,GAEjBC,QAASA,IAAMviB,IAAW,GAC1BwiB,KAAMziB,GACN0iB,sBAAoB,EACpBC,sBAAoB,EACpBC,sBAAoB,EACpB9B,OACE7B,EAAAA,EAAAA,MAAC4D,EAAAA,IAAK,CACJxD,GAAI,CACFc,EAAG,OACHE,UAAW,4BACXjiB,OAAQ,oBACR6hB,QAAS,OACT6C,cAAe,SACf1C,QAAS,OACTE,aAAc,OACdjiB,MAAO,SACP8gB,SAAA,EAEFF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFa,QAAQ,OACRC,IAAK,OACLK,WAAW,SAEX8D,YAAczY,IAAO,IAADmZ,EAClBzjB,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZQ,UAAW,SACXN,aAActK,SAAU,QAAN8tB,EAAJ9tB,EAAMkH,YAAI,IAAA4mB,OAAN,EAAJA,EAAYvjB,SAE5BvB,IAAW,GACXkE,IAAU8L,GACRA,EAAI5H,KAAK9C,IACkB,IAADyf,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAxB,OAAIhgB,aAAC,EAADA,EAAGvI,OAAO/F,aAAI,EAAJA,EAAM+F,KAClBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IAUJlH,MAC4B,OAA1BgQ,GAAgBhQ,MACZgQ,GAAgBhQ,MAChBpH,SAAU,QAAN+tB,EAAJ/tB,EAAMkH,YAAI,IAAA6mB,OAAN,EAAJA,EAAYtO,WAClB9Q,OAC6B,OAA3ByI,GAAgBzI,OACZyI,GAAgBzI,OAChB3O,SAAU,QAANguB,EAAJhuB,EAAMkH,YAAI,IAAA8mB,OAAN,EAAJA,EAAYtO,YAClBxY,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACChD,EAAEpH,MAAI,IACT0D,UAAW,SACXL,MAAOvK,SAAU,QAANiuB,EAAJjuB,EAAMkH,YAAI,IAAA+mB,OAAN,EAAJA,EAAYtO,YACnB2C,QAAStiB,SAAU,QAANkuB,EAAJluB,EAAMkH,YAAI,IAAAgnB,OAAN,EAAJA,EAAYvO,YACrBzW,OAAQ,GACR+P,OAAO,EACP/I,UAAU,EAUV9I,MAC4B,OAA1BgQ,GAAgBhQ,MACZgQ,GAAgBhQ,MAChBpH,SAAU,QAANmuB,EAAJnuB,EAAMkH,YAAI,IAAAinB,OAAN,EAAJA,EAAY1O,WAClB9Q,OAC6B,OAA3ByI,GAAgBzI,OACZyI,GAAgBzI,OAChB3O,SAAU,QAANouB,EAAJpuB,EAAMkH,YAAI,IAAAknB,OAAN,EAAJA,EAAY1O,cAEpBhR,MAAO,CAULtH,MAC4B,OAA1BgQ,GAAgBhQ,MACZgQ,GAAgBhQ,MAChBpH,SAAU,QAANquB,EAAJruB,EAAMkH,YAAI,IAAAmnB,OAAN,EAAJA,EAAY5O,WAClB9Q,OAC6B,OAA3ByI,GAAgBzI,OACZyI,GAAgBzI,OAChB3O,SAAU,QAANsuB,EAAJtuB,EAAMkH,YAAI,IAAAonB,OAAN,EAAJA,EAAY5O,eAIjBpR,CAAC,MAIZnF,GAAU,GAAG,EAcfif,GAAI,CACF6D,OAAQ,UACR5C,aAAc,MACd2C,WAAY,gBACZU,MAAO,QACP/d,OAAQ,OACRod,SAAU,MACV,UAAW,CACTwB,gBAAiB,YAEnBrF,SAAA,EAEFF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFC,GAAI,CAAEsF,YAAa,MAAOa,WAAY,OAAQrG,SAAA,CAE7C,KACDO,EAAAA,EAAAA,KAAC+F,EAAAA,IAAQ,CACP9f,MAAO,CACLgf,YAAa,MACbhB,MAAO,iBAIbjE,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACTpE,GAAI,CACFqC,SAAU,OACVC,WAAY,MACZ+B,WAAY,UACZxD,IAAK,OACLwF,cAAe,YACf/B,MAAO,WACPxE,SACH,cAIuB,OAAzB9d,cAAS,EAATA,GAAWQ,aACVod,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFa,QAAQ,OACRM,WAAW,SACXL,IAAK,OACLmE,YAAaA,KAAO,IAADsB,EACjBrkB,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZE,aAActK,SAAU,QAAN0uB,EAAJ1uB,EAAMkH,YAAI,IAAAwnB,OAAN,EAAJA,EAAY/O,YAC1B3U,gBAAgB,EAChBC,cAAc,KAGhBiC,IAAU8L,IAAS,IAAD2V,EAChB,MAAM7c,EAAekH,EAAI5H,KAAK9C,IACH,IAADsgB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAxB,OAAI5gB,aAAC,EAADA,EAAGvI,OAAO/F,aAAI,EAAJA,EAAM+F,KAClBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IACJlH,MAAOpH,SAAU,QAAN4uB,EAAJ5uB,EAAMkH,YAAI,IAAA0nB,OAAN,EAAJA,EAAYnP,WACnB9Q,OAAQ3O,SAAU,QAAN6uB,EAAJ7uB,EAAMkH,YAAI,IAAA2nB,OAAN,EAAJA,EAAYnP,YACpBxY,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACChD,EAAEpH,MAAI,IACTgJ,UAAU,EACVoS,QAAStiB,SAAU,QAAN8uB,EAAJ9uB,EAAMkH,YAAI,IAAA4nB,OAAN,EAAJA,EAAYnP,YACrBvY,MAAOpH,SAAU,QAAN+uB,EAAJ/uB,EAAMkH,YAAI,IAAA6nB,OAAN,EAAJA,EAAYtP,WACnB9Q,OAAQ3O,SAAU,QAANgvB,EAAJhvB,EAAMkH,YAAI,IAAA8nB,OAAN,EAAJA,EAAYtP,YACpBzG,OAAO,EACPrO,UAAW,KAEb8D,MAAO,CACLtH,MAAOpH,SAAU,QAANivB,EAAJjvB,EAAMkH,YAAI,IAAA+nB,OAAN,EAAJA,EAAYxP,WACnB9Q,OAAQ3O,SAAU,QAANkvB,EAAJlvB,EAAMkH,YAAI,IAAAgoB,OAAN,EAAJA,EAAYxP,eAInBpR,CAAC,IAEV,IAAIyD,EAAa,CAAC,EACd9L,KACF8L,EAAa7H,KAAKC,MAAMlE,KAE1B,MAGM+L,EAHS,IAAIC,gBACjB3I,GAAS4I,QAESC,IAAI,QAexB,OAdAC,EAAAA,EAAAA,IAAW,CACTC,KAAM,CACJC,kBAAmB,CACjBnB,MAAOW,EAEPS,cAAyB,QAAZoc,EAAE5c,SAAU,IAAA4c,OAAA,EAAVA,EAAYnc,UAG/BzM,MACAyH,YACAE,QACAsE,OACArE,kBAEKmE,CAAY,IAErBuF,GAAmB,CACjBjQ,MAAO,KACPuH,OAAQ,OAGV3F,IAAW,GACXG,GAAU,GAAG,EAEfif,GAAI,CACF6D,OAAQ,UACR5C,aAAc,MACd2C,WAAY,gBACZU,MAAO,QACP/d,OAAQ,OACRod,SAAU,MAEV,UAAW,CACTwB,gBAAiB,YAEnBrF,SAAA,EAKFF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFzZ,MAAO,CAAEge,MAAO,UAAWtlB,MAAO,QAAS8gB,SAAA,CAE1C,KACDO,EAAAA,EAAAA,KAAC0G,EAAAA,EAAU,QAGb1G,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACTpE,GAAI,CACFqC,SAAU,OACVC,WAAY,MACZ+B,WAAY,UACZxD,IAAK,OACLwF,cAAe,YACf/B,MAAO,WACPxE,SACH,iBAKLO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACFgH,aAAc,qBACdzgB,OAAQ,MACR0gB,aAAc,MACdxG,UAAW,UAGfb,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFa,QAAQ,OACRM,WAAW,SACXL,IAAK,OACLmE,YAAaA,KAAO,IAADkC,EACjBjlB,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZQ,UAAW,SACXN,aAActK,SAAU,QAANsvB,EAAJtvB,EAAMkH,YAAI,IAAAooB,OAAN,EAAJA,EAAY/kB,SAE5BpB,GAAU,UAEVH,IAAW,EAAM,EAGnBof,GAAI,CACF6D,OAAQ,UACR5C,aAAc,MACd2C,WAAY,gBACZU,MAAO,QACP/d,OAAQ,OACRod,SAAU,MAEV,UAAW,CACTwB,gBAAiB,YAEnBrF,SAAA,EAEFO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFzZ,MAAO,CAAEtH,MAAO,OAAQslB,MAAO,WAAYxE,UAE3CO,EAAAA,EAAAA,KAAC8G,EAAAA,IAAQ,OAGX9G,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACTpE,GAAI,CACFqC,SAAU,OACVC,WAAY,MACZ+B,WAAY,UACZgC,cAAe,YACf/B,MAAO,WACPxE,SACH,eAKHF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFa,QAAQ,OACRM,WAAW,SACXL,IAAK,OACLiD,QAASA,KAAO,IAADsD,EACbnlB,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZQ,UAAW,SACXN,aAActK,SAAU,QAANwvB,EAAJxvB,EAAMkH,YAAI,IAAAsoB,OAAN,EAAJA,EAAYjlB,SAG5BvB,IAAW,GAEXG,GAAU,GAAG,EAIfif,GAAI,CACF6D,OAAQ,UACR5C,aAAc,MACd2C,WAAY,gBACZU,MAAO,QACP/d,OAAQ,OACRod,SAAU,MAEV,UAAW,CACTwB,gBAAiB,YAEnBrF,SAAA,EAEFF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CAACC,GAAI,CAAEhhB,MAAO,QAAS8gB,SAAA,CACxB,KACDO,EAAAA,EAAAA,KAACgH,EAAAA,IAAQ,CACP/gB,MAAO,CACLge,MAAO,iBAKbjE,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACTpE,GAAI,CACFqC,SAAU,OACVC,WAAY,MACZ+B,WAAY,UACZgC,cAAe,YACf/B,MAAO,WACPxE,SACH,eAIHF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFa,QAAQ,OACRM,WAAW,SACXL,IAAK,OACLmE,YAAaA,KAAO,IAADsC,EACjBrlB,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZQ,UAAW,WACXN,aAActK,SAAU,QAAN0vB,EAAJ1vB,EAAMkH,YAAI,IAAAwoB,OAAN,EAAJA,EAAYnlB,SAG5BvB,IAAW,GACXG,GAAU,GAAG,EAGfif,GAAI,CACF6D,OAAQ,UACR5C,aAAc,MACd2C,WAAY,gBACZU,MAAO,QACP/d,OAAQ,OACRod,SAAU,MAEV,UAAW,CACTwB,gBAAiB,YAEnBrF,SAAA,EAEFF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFzZ,MAAO,CACLgf,YAAa,IACbhB,MAAO,UAEP6B,WAAY,OACZrG,SAAA,CAED,KACDO,EAAAA,EAAAA,KAACkH,EAAAA,EAAU,CACTjhB,MAAO,CACLgf,YAAa,GACbhB,MAAO,UACP6B,WAAY,aAKlB9F,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACTpE,GAAI,CACFqC,SAAU,OACVC,WAAY,MACZ+B,WAAY,UACZgC,cAAe,YACf/B,MAAO,WACPxE,SACH,uBAIHF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFa,QAAQ,OACRM,WAAW,SACXL,IAAK,OACLmE,YAAaA,KAAO,IAADwC,EACjBvlB,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZQ,UAAW,YACXN,aAActK,SAAU,QAAN4vB,EAAJ5vB,EAAMkH,YAAI,IAAA0oB,OAAN,EAAJA,EAAYrlB,SAG5BvB,IAAW,GACXG,GAAU,GAAG,EAGfif,GAAI,CACF6D,OAAQ,UACR5C,aAAc,MACd2C,WAAY,gBACZU,MAAO,QACP/d,OAAQ,OACRod,SAAU,MAEV,UAAW,CACTwB,gBAAiB,YAEnBrF,SAAA,EAEFO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAAD,UACFO,EAAAA,EAAAA,KAACoH,EAAAA,IAAW,CACVnhB,MAAO,CACLgf,YAAa,EACbtmB,MAAO,OACPslB,MAAO,gBAIbjE,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACTpE,GAAI,CACFqC,SAAU,OACVC,WAAY,MACZ+B,WAAY,UACZgC,cAAe,YACf/B,MAAO,WACPxE,SACH,wBAIHF,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFa,QAAQ,OACRM,WAAW,SACXL,IAAK,OACLmE,YAAaA,KAAO,IAAD0C,EACjBzlB,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZQ,UAAW,OACXN,aAActK,SAAU,QAAN8vB,EAAJ9vB,EAAMkH,YAAI,IAAA4oB,OAAN,EAAJA,EAAYvlB,SAE5BvB,IAAW,GAEXG,GAAU,GAAG,EAGfif,GAAI,CACF6D,OAAQ,UACR5C,aAAc,MACd2C,WAAY,gBACZU,MAAO,QACP/d,OAAQ,OACRod,SAAU,MAEV,UAAW,CACTwB,gBAAiB,YAEnBrF,SAAA,EAEFO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAACC,GAAI,CAAEhhB,MAAO,QAAS8gB,UACzBO,EAAAA,EAAAA,KAACsH,EAAAA,IAAM,CAACrhB,MAAO,CAAEge,MAAO,gBAE1BjE,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACTpE,GAAI,CACFqC,SAAU,OACVC,WAAY,MACZ+B,WAAY,UACZgC,cAAe,YACf/B,MAAO,WACPxE,SACH,sBAKNA,UAEDO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFiF,YAAczY,IAwBZA,EAAEuQ,kBACFlc,IAAYD,IACZJ,IAAiB,GACjB5B,IAAmB,GACnB0B,IAAuB,GACvBY,IAAe,GACfmC,IAAgB,EAAM,EACtB0c,UAEFO,EAAAA,EAAAA,KAACqE,EAAAA,EAAmB,CAClBpD,UAAU,MACVqD,aAAc,OACdC,SAAUjkB,GAAQmf,UAElBO,EAAAA,EAAAA,KAACwE,EAAAA,GAAU,CACT7E,GAAI,CACFzZ,OAAQ,kBACRvH,MAAO,kBACPiiB,aAAc,MACd2C,WAAY,gBACZkB,WAAY,OACZtD,QAAS,MACTqC,OAAQ,UAER,UAAW,CACTiB,WAAY,YAEdhF,UAEFO,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CACT/B,SAAU,GACVC,WAAY,IACZgC,MAAO,UACP/d,OAAQ,OAAOuZ,UAEfO,EAAAA,EAAAA,KAACuH,EAAAA,IAAW,gBAOvB,IACuB,OAAzB5lB,cAAS,EAATA,GAAWQ,aACV6d,EAAAA,EAAAA,KAACoC,EAAAA,EAAa,CACZC,GAAG,MACHC,YAAY,WACZC,QAAQ,SACRC,UAAQ,EACR7C,GAAI,CACFzZ,OAAQ,OACRvH,MAAO,cAMfpH,SAAU,QAANsC,GAAJtC,EAAMkH,YAAI,IAAA5E,IAAM,QAANC,GAAVD,GAAY4E,YAAI,IAAA3E,IAAhBA,GAAkBwI,SAAmC,OAAzBX,cAAS,EAATA,GAAWQ,aACvC6d,EAAAA,EAAAA,KAACwH,EAAAA,IAAiB,CAChBC,YAAaA,IAAM7mB,IAAe,GAClC6hB,IAAKte,GAAesb,UAEpBO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAAD,UACFO,EAAAA,EAAAA,KAAC0C,EAAAA,EAAa,CACZC,GAAI,EACJC,YAAa,CAAEC,eAAe,GAC9BC,QAASA,IAAMliB,IAAe,GAC9BmiB,KAAMpiB,GACNqiB,sBAAoB,EACpBC,sBAAoB,EACpBC,sBAAoB,EACpB9B,OAAOpB,EAAAA,EAAAA,KAAC0H,EAAAA,EAAkB,CAACnwB,KAAMA,IAASkoB,UAE1CO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAAD,UACFO,EAAAA,EAAAA,KAACqE,EAAAA,EAAmB,CAClBpD,UAAU,MACVqD,aAAa,mCACb7E,UAEAO,EAAAA,EAAAA,KAACmD,EAAAA,IAAK,CACJE,UAAU,MACVxC,WAAW,SACXC,eAAe,SACf5a,OAAO,OACPvH,MAAM,OACNiiB,aAAa,MACbjB,GAAI,CACF4D,WAAY,gBACZkB,WAAY,OACZtD,QAAS,EACTqC,OAAQ,UACR,UAAW,CACTiB,WAAY,YAGhBhB,QAASA,KACP7iB,IAAgBD,IAChBJ,IAAW,GACXL,IAAiB,GACjB5B,IAAmB,GACnB0B,IAAuB,GACvB+C,IAAgB,EAAM,EACtB0c,SAcDloB,SAAU,QAANwC,GAAJxC,EAAMkH,YAAI,IAAA1E,IAAVA,GAAY4tB,YACX3H,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACFzZ,OAAQ,OACRvH,MAAO,OACPD,OAAO,aAAD6L,QACJhT,SAAU,QAANyC,GAAJzC,EAAMkH,YAAI,IAAAzE,IAAQ,QAARC,GAAVD,GAAY0E,cAAM,IAAAzE,QAAd,EAAJA,GAAoB6E,cACpB,WAEF0kB,OAAQ,UACR5C,aAAc,MACd6D,WAAY,kBAIhBzE,EAAAA,EAAAA,KAAC4H,EAAAA,IAAa,gBASJ,OAAzBjmB,cAAS,EAATA,GAAWQ,aACV6d,EAAAA,EAAAA,KAACoC,EAAAA,EAAa,CACZC,GAAG,MACHC,YAAY,WACZC,QAAQ,SACRC,UAAQ,EACR7C,GAAI,CACFzZ,OAAQ,OACRvH,MAAO,WAKXpH,SAAU,QAAN2C,GAAJ3C,EAAMkH,YAAI,IAAAvE,IAAM,QAANC,GAAVD,GAAYuE,YAAI,IAAAtE,IAAhBA,GAAkBmI,SAAmC,OAAzBX,cAAS,EAATA,GAAWQ,aACvCod,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAC,SAAA,EACEO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAC+C,IAAKne,GAAYmb,UACpBO,EAAAA,EAAAA,KAACwH,EAAAA,IAAiB,CAChBC,YAAaA,IAAM1kB,IAAgB,GAAO0c,UAE1CO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACF+D,QAASA,KACP1gB,IAAiBD,IACjB5C,IAAiB,GACjB5B,IAAmB,GACnBiC,IAAW,GACXP,IAAuB,GACvBY,IAAe,EAAM,EACrB6e,UAEFO,EAAAA,EAAAA,KAAC0C,EAAAA,EAAa,CACZE,YAAa,CACXC,eAAe,GAEjBC,QAASA,IAAM/f,IAAgB,GAC/BggB,KAAMjgB,GACNkgB,sBAAoB,EACpBC,sBAAoB,EACpBC,sBAAoB,EACpB9B,OACEpB,EAAAA,EAAAA,KAACmD,EAAAA,IACC,CACAR,GAAI,QACJhD,GAAI,CACFgB,UAAW,4BACXF,EAAG,MACHG,aAAc,MACd1a,OAAQ,QACRka,UAAW,QAGbqD,QAAUvX,IACRA,EAAEuQ,iBAAiB,EAErBoL,eAAiB3b,IACfA,EAAEuQ,iBAAiB,EACnBgD,UAEFO,EAAAA,EAAAA,KAAC8H,EAAAA,GAAW,CACVC,aAAenb,IACbF,GAASnV,aAAI,EAAJA,EAAM+F,GAAIsP,EAAM,MAIhC6S,UAEDO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAACpiB,GAAG,iBAAgBmiB,UACtBO,EAAAA,EAAAA,KAACqE,EAAAA,EAAmB,CAClBpD,UAAU,MACVqD,aAAc,eAAe7E,UAE7BO,EAAAA,EAAAA,KAACwE,EAAAA,GAAU,CACT7E,GAAI,CASFzZ,OAAQ,kBACRvH,MAAO,kBACPiiB,aAAc,MACd2C,WAAY,gBACZkB,WAAY,OACZtD,QAAS,MACTqC,OAAQ,UAER,UAAW,CACTiB,WAAY,YAEdhF,UAEFO,EAAAA,EAAAA,KAACgI,EAAAA,EAAgB,mBAQ/BhI,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAAD,UACFO,EAAAA,EAAAA,KAACgB,EAAAA,EAAiB,CAACC,UAAU,MAAMC,OAAK,EAACE,MAAO,MAAM3B,UACpDO,EAAAA,EAAAA,KAACwE,EAAAA,GAAU,CACT7E,GAAI,CACFzZ,OAAQ,kBACRvH,MAAO,kBACPiiB,aAAc,MACd2C,WAAY,gBACZkB,WAAY,OACZtD,QAAS,MACTqC,OAAQ,UACR,UAAW,CACTiB,WAAY,YAGhBhB,QAAUvX,IAhnGhCtI,GAinGuCsI,EAjnGlB+b,eACrBxkB,IAAYykB,IAAkBA,IAinGNnlB,IAAgB,GAChB7C,IAAiB,GACjB5B,IAAmB,GACnBiC,IAAW,GACXP,IAAuB,GACvBY,IAAe,EAAM,EACrB6e,UAEFO,EAAAA,EAAAA,KAACmI,EAAAA,IAAa,WAIpBnI,EAAAA,EAAAA,KAACoC,EAAAA,EAAa,CACZC,GAAG,MACHC,YAAY,WACZC,QAAQ,SACRC,UAAQ,EACR7C,GAAI,CACFzZ,OAAQ,OACRvH,MAAO,YAKW,OAAzBgD,cAAS,EAATA,GAAWQ,aACV6d,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAAD,UACFO,EAAAA,EAAAA,KAACgB,EAAAA,EAAiB,CAACC,UAAU,MAAMC,OAAK,EAACE,MAAO,UAAU3B,UACxDO,EAAAA,EAAAA,KAACwE,EAAAA,GAAU,CACT7E,GAAI,CAOFzZ,OAAQ,kBACRvH,MAAO,kBACPiiB,aAAc,MACd2C,WAAY,gBACZkB,WAAY,OACZtD,QAAS,MACTqC,OAAQ,UACR,UAAW,CACTiB,WAAY,YAGhBhB,QA9kFG2E,KACvBloB,IAAiB,GACjB5B,IAAmB,GACnBsC,IAAe,GACfL,IAAW,GACX,MAAM8nB,EAASxqB,GAAW2I,QAAQwK,YAAc,EAC1CsX,EAAUzqB,GAAW2I,QAAQyK,aAAe,EAE5C/J,GAAI3P,aAAI,EAAJA,EAAMmQ,MAAO2gB,EACjBjhB,GAAI7P,aAAI,EAAJA,EAAMoQ,MAAO2gB,EAEjBC,EAAU1U,KAAKC,MACf0U,EAAa,CACjBlrB,GAAG,WAADiN,OAAasJ,KAAKC,OACpBjV,KAAM,UACN2d,IAAK,UACL/d,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACF4f,MAAO,eACJrb,IAAQ,IACXsb,UAAWH,EACXI,UAAW,GACX/b,MAAO,GACPgc,YAAa,CACX1hB,EAAGA,GAAI3P,aAAI,EAAJA,EAAMmQ,MACbN,EAAGA,GAAI7P,aAAI,EAAJA,EAAMoQ,OAEfkhB,KAAK,EACLC,UAAU,EACVC,MAAM,EACNC,eAAgB,OAElB/iB,MAAO,CACLkF,OAAQ,aACRsZ,WAAY,cACZ/lB,OAAQ,EACRuqB,QAAS,QAEXle,WAAYxT,aAAI,EAAJA,EAAM+F,GAClBwO,SAAU,CACR5E,EAAGA,GAAI3P,aAAI,EAAJA,EAAMmQ,MACbN,EAAGA,GAAI7P,aAAI,EAAJA,EAAMoQ,OAEfqE,iBAAkB,CAChB9E,EAAGA,GAAI3P,aAAI,EAAJA,EAAMmQ,MACbN,EAAGA,GAAI7P,aAAI,EAAJA,EAAMoQ,OAEfwY,UAAU,EACVjhB,UAAU,EACVgqB,YAAY,GAGdzkB,IAAU0kB,IAAe,IAADC,EACtB,MAAM/f,EAAe3E,KAAWiE,KAAKpR,IACR,IAAD8xB,EAA1B,OAAK9xB,EAAKkH,KAAKiqB,UAURnxB,GATLsR,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKtR,GAAI,IACPkH,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACCtR,EAAKkH,MAAI,IACZiqB,UAAWhV,GAAkBnc,EAAKkH,KAAKiqB,WACvCM,eAAgBtV,GAAkBnc,SAAU,QAAN8xB,EAAJ9xB,EAAMkH,YAAI,IAAA4qB,OAAN,EAAJA,EAAYL,mBAIzC,IASPM,EAAoB,IAAIjgB,GAPCR,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAC1B2f,GAAU,IACb/pB,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACC2f,EAAW/pB,MAAI,IAClBiqB,UAAWH,OAIf9qB,aAAagQ,QACX,mBACAhM,KAAKiM,UAAU,CACb7D,kBAAmB,CACjBnB,MAAO4gB,EACP3b,UAAU,OAKhB,IAAIrE,EAAa,CAAC,EACd9L,KACF8L,EAAa7H,KAAKC,MAAMlE,KAE1B,MACM+L,EADS,IAAIC,gBAAgB3I,GAAS4I,QACxBC,IAAI,QAcxB,OAbAC,EAAAA,EAAAA,IAAW,CACTC,KAAM,CACJC,kBAAmB,CACjBnB,MAAO4gB,EACPxf,cAAyB,QAAZsf,EAAE9f,SAAU,IAAA8f,OAAA,EAAVA,EAAYrf,UAG/BzM,MACA2H,QACAsE,OACArE,kBAGKokB,CAAiB,GACxB,EAu+E4C7J,UAE1BO,EAAAA,EAAAA,KAACuJ,EAAAA,IAA0B,UAKT,OAAzB5nB,cAAS,EAATA,GAAWQ,aACV6d,EAAAA,EAAAA,KAACoC,EAAAA,EAAa,CACZC,GAAG,MACHC,YAAY,WACZC,QAAQ,SACRC,UAAQ,EACR7C,GAAI,CACFzZ,OAAQ,OACRvH,MAAO,SAIa,OAAzBgD,cAAS,EAATA,GAAWQ,aACV6d,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAAD,UACFO,EAAAA,EAAAA,KAACgB,EAAAA,EAAiB,CAChBC,UAAU,MACVC,OAAK,EACLE,MAAO7pB,SAAU,QAAN6C,GAAJ7C,EAAMkH,YAAI,IAAArE,IAAM,QAANC,GAAVD,GAAYqE,YAAI,IAAApE,IAAhBA,GAAkBiI,OAAS,OAAS,SAASmd,UAEpDO,EAAAA,EAAAA,KAACwE,EAAAA,GAAU,CACT7E,GAAI,CAOFzZ,OAAQ,kBACRvH,MAAO,kBACPiiB,aAAc,MACd2C,WAAY,gBACZkB,WAAY,OACZtD,QAAS,MACTqC,OAAQ,UACR,UAAW,CACTiB,WAAY,YAGhBhB,QArmGG+F,KAAO,IAADC,EAC7BvpB,IAAiB,GACjB5B,IAAmB,GACnBiC,IAAW,GACX,IAKIkQ,EALApH,EAAe3E,KACf4E,EAAa,CAAC,EACd9L,KACF8L,EAAa7H,KAAKC,MAAMlE,KAG1BiH,IAAUiE,IAAW,IAADghB,EA4BlB,OA3BAjsB,aAAagQ,QACX,mBACAhM,KAAKiM,UAAU,CACb7D,kBAAmB,CACjBnB,QACAoB,cAAyB,QAAZ4f,EAAEpgB,SAAU,IAAAogB,OAAA,EAAVA,EAAY3f,QAC3B4D,UAAU,OAIhBtE,EAAeX,EAAMC,KAAKC,IACA,IAAD+gB,EAAAC,EAAAC,EAAAC,EAAvB,OAAIlhB,EAAGtL,KAAO/F,EAAK+F,IACjBmT,GAAW5H,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACND,GAAE,IACLnK,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACCD,EAAGnK,MAAI,IACV6D,SAASsG,SAAQ,QAAN+gB,EAAF/gB,EAAInK,YAAI,IAAAkrB,GAARA,EAAUrnB,QACnB7D,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,IACED,SAAQ,QAANghB,EAAFhhB,EAAInK,YAAI,IAAAmrB,OAAN,EAAFA,EAAUnrB,OAAQ,CAAC,GAAG,CAAF,GACxB6D,SAASsG,SAAQ,QAANihB,EAAFjhB,EAAInK,YAAI,IAAAorB,GAAM,QAANC,EAARD,EAAUprB,YAAI,IAAAqrB,GAAdA,EAAgBxnB,cAIxBmO,GAEF7H,CAAE,IAEJS,CAAY,IAErB,MACME,EADS,IAAIC,gBAAgB3I,GAAS4I,QACxBC,IAAI,SAExBC,EAAAA,EAAAA,IAAW,CACTC,KAAM,CACJC,kBAAmB,CACjBnB,MAAOW,EACPS,cAAyB,QAAZ2f,EAAEngB,SAAU,IAAAmgB,OAAA,EAAVA,EAAY1f,UAG/BzM,MACAyH,YACAE,QACAsE,OACArE,iBACA,EA8iG4Cua,SAEzBloB,SAAU,QAAN+C,GAAJ/C,EAAMkH,YAAI,IAAAnE,IAAM,QAANC,GAAVD,GAAYmE,YAAI,IAAAlE,IAAhBA,GAAkB+H,QAEjB0d,EAAAA,EAAAA,KAAC+J,EAAAA,IAAY,KAGb/J,EAAAA,EAAAA,KAACgK,EAAAA,IAAc,YAMvBzyB,SAAU,QAANiD,GAAJjD,EAAMkH,YAAI,IAAAjE,IAAM,QAANC,GAAVD,GAAYiE,YAAI,IAAAhE,IAAhBA,GAAkB6H,SAAmC,OAAzBX,cAAS,EAATA,GAAWQ,aACvCod,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAC,SAAA,EACEO,EAAAA,EAAAA,KAACoC,EAAAA,EAAa,CACZC,GAAG,MACHC,YAAY,WACZC,QAAQ,SACRC,UAAQ,EACR7C,GAAI,CACFzZ,OAAQ,OACRvH,MAAO,UAGXqhB,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAAD,UACFO,EAAAA,EAAAA,KAACgB,EAAAA,EAAiB,CAChBC,UAAU,MACVC,OAAK,EACLE,MACE7pB,SAAU,QAANmD,GAAJnD,EAAMkH,YAAI,IAAA/D,IAAVA,GAAY0Q,UAAY,aAAe,aACxCqU,UAEDO,EAAAA,EAAAA,KAACwE,EAAAA,GAAU,CACT7E,GAAI,CACFzZ,OAAQ,kBACRvH,MAAO,kBACPiiB,aAAc,MACd2C,WAAY,gBACZkB,WAAY,OACZtD,QAAS,MACTqC,OAAQ,UAER,UAAW,CACTiB,WAAY,YAGhBhB,QAASzP,GAAgByL,SAGvBloB,SAAU,QAANoD,GAAJpD,EAAMkH,YAAI,IAAA9D,IAAVA,GAAYyQ,WAGZ4U,EAAAA,EAAAA,KAACiK,EAAAA,IAAS,CAACC,KAAK,UAAUvrB,MAAO,GAAIuH,OAAQ,MAF7C8Z,EAAAA,EAAAA,KAACmK,EAAAA,EAAS,UAMX,OAGe,OAAzBxoB,cAAS,EAATA,GAAWQ,aACVod,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAC,SAAA,EACEO,EAAAA,EAAAA,KAACoC,EAAAA,EAAa,CACZC,GAAG,MACHC,YAAY,WACZC,QAAQ,SACRC,UAAQ,EACR7C,GAAI,CACFzZ,OAAQ,OACRvH,MAAO,UAGXqhB,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAC+C,IAAKtiB,GAAoBsf,UAC5BO,EAAAA,EAAAA,KAAC0C,EAAAA,EAAa,CACZC,GAAI,EACJC,YAAa,CACXC,eAAe,GAEjBC,QAASA,IAAM9iB,IAAuB,GACtC+iB,KAAMhjB,GACNijB,sBAAoB,EACpBC,sBAAoB,EACpBC,sBAAoB,EACpB9B,OACEpB,EAAAA,EAAAA,KAACoK,EAAAA,EAAc,CACb7yB,KAAMA,EACN8yB,UAAW1sB,GACXgB,OAAOd,UAAmB,QAATjD,GAAViD,GAAY2I,eAAO,IAAA5L,QAAT,EAAVA,GAAqBoW,aAAc,EAC1C9K,QAAQrI,UAAmB,QAAThD,GAAVgD,GAAY2I,eAAO,IAAA3L,QAAT,EAAVA,GAAqBoW,cAAe,EAC5CqZ,YAAY,EACZC,eAAe,EACfC,iBAAiB,EACjBC,gBAAgB,EAChBC,gBAAgB,EAChBC,cAAc,EACdC,YAAY,EACZC,YAAY,EACZC,UAAU,EACVC,cAAc,EACdC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,yBAAyB,EACzB/U,UAAU,EACVgV,wBAAyBprB,GACzBgU,gBAAiBA,IAAMA,KACvBqX,yBAA0BA,IAnnFnBliB,WAAa,IAADmiB,EACjBC,EAOnBC,EAPHj0B,SAAU,QAAN+zB,EAAJ/zB,EAAMkH,YAAI,IAAA6sB,GAAVA,EAAY7jB,SACd7F,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZE,aAActK,SAAU,QAANg0B,EAAJh0B,EAAMkH,YAAI,IAAA8sB,OAAN,EAAJA,EAAYrU,YAC1B3U,gBAAgB,EAChBC,cAAc,KAGhBZ,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTlH,IAAS,IACZE,aAActK,SAAU,QAANi0B,EAAJj0B,EAAMkH,YAAI,IAAA+sB,OAAN,EAAJA,EAAY1pB,MAC1BS,gBAAgB,EAChBC,cAAc,KASlBiC,IAAU8L,GACRA,EAAI5H,KAAK9C,IACkB,IAAD4lB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAxB,OAAIjmB,aAAC,EAADA,EAAGvI,OAAO/F,aAAI,EAAJA,EAAM+F,KAClBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKhD,GAAC,IAGJlH,MAAOpH,SAAU,QAANk0B,EAAJl0B,EAAMkH,YAAI,IAAAgtB,OAAN,EAAJA,EAAY9sB,MACnBuH,OAAQ3O,SAAU,QAANm0B,EAAJn0B,EAAMkH,YAAI,IAAAitB,OAAN,EAAJA,EAAYxlB,OACpBzH,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACChD,EAAEpH,MAAI,IACT+R,OAAO,EACP7R,MAAOpH,SAAU,QAANo0B,EAAJp0B,EAAMkH,YAAI,IAAAktB,OAAN,EAAJA,EAAYhtB,MACnBuH,OAAQ3O,SAAU,QAANq0B,EAAJr0B,EAAMkH,YAAI,IAAAmtB,OAAN,EAAJA,EAAY1lB,SAItBD,MAAO,CACLtH,MAAOpH,SAAU,QAANs0B,EAAJt0B,EAAMkH,YAAI,IAAAotB,OAAN,EAAJA,EAAYltB,MACnBuH,OAAQ3O,SAAU,QAANu0B,EAAJv0B,EAAMkH,YAAI,IAAAqtB,OAAN,EAAJA,EAAY5lB,UAMnBL,CAAC,MAGZ+I,GAAmB,CACjBjQ,MAAO,KACPuH,OAAQ,OAGV3F,IAAW,GACXG,GAAU,GAAG,EA4jFa2qB,GAEFU,oBAAqBA,IAAM5X,OAE9BsL,UAEDO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAAD,UACFO,EAAAA,EAAAA,KAACqE,EAAAA,EAAmB,CAClBpD,UAAU,MACVqD,aAAa,OACbC,SAAUxkB,GAAoB0f,UAE9BO,EAAAA,EAAAA,KAACwE,EAAAA,GAAU,CACT7E,GAAI,CACFzZ,OAAQ,kBACRvH,MAAO,kBACPiiB,aAAc,MACd2C,WAAY,gBACZkB,WAAY,OACZtD,QAAS,MACTqC,OAAQ,UACR5D,UAAW,gBACX,UAAW,CACT6E,WAAY,YAGhBhB,QAASA,KACPzjB,IAAwBD,IACxBQ,IAAW,GACXL,IAAiB,GACjB5B,IAAmB,GACnBsC,IAAe,GACfmC,IAAgB,EAAM,EACtB0c,UAEFO,EAAAA,EAAAA,KAACgM,EAAAA,IAAkB,CACjB9lB,OAAO,KACPvH,MAAM,KACNurB,KAAK,iCAc5B3yB,aAAI,EAAJA,EAAM2H,YACJpB,IACwB,OAAzB6D,cAAS,EAATA,GAAWQ,cACV5K,SAAU,QAANuD,GAAJvD,EAAMkH,YAAI,IAAA3D,IAAM,QAANC,GAAVD,GAAY2D,YAAI,IAAA1D,IAAhBA,GAAkBuH,UAClB2a,KACAje,KACAjB,KACCwhB,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAC,SAAA,GACIloB,SAAU,QAANyD,GAAJzD,EAAMkH,YAAI,IAAAzD,IAAVA,GAAYsH,UACZ0d,EAAAA,EAAAA,KAACiM,EAAAA,GAAW,CACVhI,MAAM,cACN5C,SAAU,GACV6K,UAAW,GACX7gB,cAAeA,GACf+E,YAAclE,GAAMkE,GAAYlE,EAAG3U,GACnC0U,SAAWC,IAxgHzB9G,GAAWoB,SAAU,CAygHS,KAIpBwZ,EAAAA,EAAAA,KAACmM,EAAAA,GACC,CACArgB,SAAS,eACTsE,YAAclE,GAAMkE,GAAYlE,EAAG3U,GACnC0U,SAAUA,GACVZ,cAAeA,GACfgW,SAAU,IACV6K,UAAW,IAAIzM,UAEfO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF8E,WAAYltB,SAAAA,EAAM2H,SAAW,UAAY,cACzCP,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,OACJW,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,OACJqb,aAAc,QACdhB,UAAWna,GAAkB,wBAEzBD,GAAiB,wBAEjBD,GAAiB,sDAGrB7G,OAAQnH,SAAAA,EAAM2H,SAAQ,aAAAqL,OACA,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cACpB,OACJ,UAAW,CAAE1L,QAAc,OAALuD,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,oBAInCpM,EAAAA,EAAAA,KAACmM,EAAAA,GAEC,CACArgB,SAAS,cACTsE,YAAclE,GAAMkE,GAAYlE,EAAG3U,GACnC0U,SAAUA,GACVZ,cAAeA,GACfgW,SAAU,IACV6K,UAAW,IAAIzM,UAEfO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF8E,WAAYltB,SAAAA,EAAM2H,SAAW,UAAY,cACzCP,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,OACJW,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,OACJqb,aAAc,QAQdhB,UAAWna,GAAkB,wBAEzBD,GAAiB,4BAEjBD,GAAiB,oDAGrB7G,OAAQnH,SAAAA,EAAM2H,SAAQ,aAAAqL,OACA,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cACpB,OACJ,UAAW,CAAE1L,QAAc,OAALuD,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,oBAInCpM,EAAAA,EAAAA,KAACmM,EAAAA,GACC,CACArgB,SAAS,YACTsE,YAAclE,GAAMkE,GAAYlE,EAAG3U,GACnC0U,SAAUA,GACVZ,cAAeA,GACfgW,SAAU,IACV6K,UAAW,IAAIzM,UAEfO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF8E,WAAYltB,SAAAA,EAAM2H,SAAW,UAAY,cACzCP,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,OACJW,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,OACJqb,aAAc,QACdhB,UAAWna,GAAkB,wBAEzBD,GAAiB,2BAEjBD,GAAiB,sDAGrB7G,OAAQnH,SAAAA,EAAM2H,SAAQ,aAAAqL,OACA,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cACpB,OACJ,UAAW,CAAE1L,QAAc,OAALuD,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,oBAInCpM,EAAAA,EAAAA,KAACmM,EAAAA,GACC,CACArgB,SAAS,WACTsE,YAAclE,GAAMkE,GAAYlE,EAAG3U,GACnC0U,SAAUA,GACVZ,cAAeA,GACfgW,SAAU,IACV6K,UAAW,IAAIzM,UAEfO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF8E,WAAYltB,SAAAA,EAAM2H,SAAW,UAAY,cACzCP,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,OACJW,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,OACJqb,aAAc,QACdhB,UAAWna,GAAkB,wBAEzBD,GAAiB,2BAEjBD,GAAiB,sDAGrB7G,OAAQnH,SAAAA,EAAM2H,SAAQ,aAAAqL,OACA,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cACpB,OACJ,UAAW,CAAE1L,QAAc,OAALuD,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,wBAOvC70B,SAAAA,EAAM4oB,YACLriB,KACAwH,KACA/N,EAAKkH,KAAK6D,SACVvE,KACAC,IACwB,OAAzB2D,cAAS,EAATA,GAAWQ,aACTod,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAC,SAAA,EACEO,EAAAA,EAAAA,KAACqM,EAAAA,GAAM,CACL/uB,GAAI,MAEJgvB,eAAe,QACftZ,UAAU,cACVlH,SAAS,OACTygB,eAAe,EACftmB,MAAO,CACLtH,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,MACJW,OAAQ,OACRsmB,SAAU,OACVC,UAAW,OACXlM,QAAS,OACTO,eAAgB,aAChBD,WAAY,SACZ1V,OAAQ,KACRW,SAAU,WACV2Y,WAAY,cACZ/lB,OAAQ,OACRkhB,UAAU,mBACVpC,KACEjmB,EAAK2H,UAAYW,GACb4F,GACE,SACAD,GACA,SACAD,GACA,QACA,SACF,OAERmnB,UAAYvgB,IAAmD,EAC/D2T,YAAaA,KACXhgB,IAAY,GACZF,GAAe,OAAO,EAExBmgB,aAAcA,KACZjgB,IAAY,GACZF,GAAe,GAAG,EAEpB6jB,QAAUvX,IACRA,EAAEygB,gBAAgB,EAClBlN,WAECzgB,IAA0B2G,MAC3Bqa,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF8E,WACG5kB,IAA4B,SAAhBF,IACZpI,EAAK2H,UAA4B,SAAhBS,GACd,UACgB,SAAhBA,GACK,OAALskB,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,aACP,cACN1tB,OACEmB,IAAYtI,EAAK2H,SAAQ,aAAAqL,OACH,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cAEpB,OACNxM,UAA2B,SAAhBjgB,GAAyB,aAAe,GACnDihB,aAAc,MACdf,cAAe,OACflhB,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,MACJW,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,YAKZya,EAAAA,EAAAA,KAACqM,EAAAA,GAAM,CACL/uB,GAAI,MAEJgvB,eAAe,QACfxgB,SAAS,QACTkH,UAAU,cACVuZ,eAAe,EACftmB,MAAO,CACLwe,WAAY,cACZ/lB,OAAQ,OACRyM,OAAQ,KACRW,SAAU,WACV8T,UAAU,mBACVjhB,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,MACJW,OAAQ,OACRsmB,SAAU,OACVC,UAAW,OACXlM,QAAS,OACTO,eAAgB,WAChBD,WAAY,SACZ+L,MACEr1B,EAAK2H,UAAYW,GACb4F,GACE,SACAD,GACA,SACAD,GACA,QACA,SACF,OAERmnB,UAAYvgB,IAAmD,EAC/D2T,YAAaA,KACXhgB,IAAY,GACZF,GAAe,QAAQ,EAEzBmgB,aAAcA,KACZjgB,IAAY,GACZF,GAAe,GAAG,EAEpB6jB,QAAUvX,IACRA,EAAEygB,gBAAgB,EAClBlN,WAECzgB,IAA0B2G,MAC3Bqa,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF8E,WACG5kB,IAA4B,UAAhBF,IACZpI,EAAK2H,UAA4B,UAAhBS,GACd,UACgB,UAAhBA,GACK,OAALskB,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,aACP,cACN1tB,OACEmB,IAAYtI,EAAK2H,SAAQ,aAAAqL,OACH,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cAEpB,OACNxM,UAA2B,UAAhBjgB,GAA0B,aAAe,GACpDihB,aAAc,MACdf,cAAe,OACflhB,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,MACJW,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,YAKZya,EAAAA,EAAAA,KAACqM,EAAAA,GAAM,CACL/uB,GAAI,MAEJgvB,eAAe,QACfxgB,SAAS,MACTygB,eAAe,EACfvZ,UAAU,cACV/M,MAAO,CACLwe,WAAY,cACZ/lB,OAAQ,OACRyM,OAAQ,KACRW,SAAU,WACV0R,KAAM,MACNoC,UAAU,mBACVjhB,MAAO,OACPuH,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,MACJinB,SAAU,OACVC,UAAW,OACXlM,QAAS,OACTO,eAAgB,SAChBD,WAAY,aACZnD,IACEnmB,EAAK2H,UAAYW,GACb4F,GACE,SACAD,GACA,SACAD,GACA,QACA,SACF,OAERua,YAAaA,KACXhgB,IAAY,GACZF,GAAe,MAAM,EAEvBmgB,aAAcA,KACZjgB,IAAY,GACZF,GAAe,GAAG,EAEpB6jB,QAAUvX,IACRA,EAAEygB,gBAAgB,EAClBlN,WAECzgB,IAA0B2G,MAC3Bqa,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF8E,WACG5kB,IAA4B,QAAhBF,IACZpI,EAAK2H,UAA4B,QAAhBS,GACd,UACgB,QAAhBA,GACK,OAALskB,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,aACP,cACN1tB,OACEmB,IAAYtI,EAAK2H,SAAQ,aAAAqL,OACH,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cAEpB,OACNxM,UAA2B,QAAhBjgB,GAAwB,aAAe,GAClDihB,aAAc,MACdf,cAAe,OACflhB,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,MACJW,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,YAKZya,EAAAA,EAAAA,KAACqM,EAAAA,GAAM,CACL/uB,GAAG,MAEHgvB,eAAe,QACfxgB,SAAS,SACTkH,UAAU,cACVuZ,eAAe,EACftmB,MAAO,CACLwe,WAAY,cACZ/lB,OAAQ,OACRyM,OAAQ,KACRW,SAAU,WACV0R,KAAM,MACNoC,UAAU,mBACVjhB,MAAO,OACPuH,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,MACJinB,SAAU,OACVC,UAAW,OACXlM,QAAS,OACTO,eAAgB,SAChBD,WAAY,WACZgM,OACEt1B,EAAK2H,UAAYW,GACb4F,GACE,SACAD,GACA,SACAD,GACA,QACA,SACF,OAERmnB,UAAYvgB,IAAmD,EAC/D2T,YAAaA,KACXhgB,IAAY,GACZF,GAAe,SAAS,EAE1BmgB,aAAcA,KACZjgB,IAAY,GACZF,GAAe,GAAG,EAEpB6jB,QAAUvX,IACRA,EAAEygB,gBAAgB,EAClBlN,WAECzgB,IAA0B2G,MAC3Bqa,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF8E,WACG5kB,IAA4B,WAAhBF,IACZpI,EAAK2H,UAA4B,WAAhBS,GACd,UACgB,WAAhBA,GACK,OAALskB,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,aACP,cACN1tB,OACEmB,IAAYtI,EAAK2H,SAAQ,aAAAqL,OACH,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cAEpB,OACNxM,UAA2B,WAAhBjgB,GAA2B,aAAe,GACrDkgB,cAAe,OACfe,aAAc,MACdjiB,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,MACJW,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,cAQjBpG,IAAoC,WAAzB5H,SAAU,QAAN0D,GAAJ1D,EAAMkH,YAAI,IAAAxD,QAAN,EAAJA,GAAYqa,YACtB0K,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF7T,SAAU,WACV4R,IAAK,EACLF,KAAM,EACN7e,MAAO,OACPuH,OAAQ,OACRqa,QAAS,OACTO,eAAgB,SAChBD,WAAY,SACZiE,gBAAiB,2BACjB3Z,OAAQ,GACRsU,UAEFO,EAAAA,EAAAA,KAAC8M,EAAAA,IAAgB,MAIpBztB,KACC2gB,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF7T,SAAU,WACV4R,IAAK,EACLF,KAAM,EACN7e,MAAO,OACPuH,OAAQ,OACRqa,QAAS,OACTO,eAAgB,SAChBD,WAAY,SACZiE,gBAAiB,2BACjB3Z,OAAQ,GACRsU,UAEFO,EAAAA,EAAAA,KAACkF,EAAAA,EAAsB,CAACC,KAAM,OAIR,OAAzBxjB,cAAS,EAATA,GAAWQ,aAAsB9C,KAChC2gB,EAAAA,EAAAA,KAAA,OAAKyC,IAAKve,GAAc+B,MAAO,CAAE6f,WAAY,SAAUrG,UACrDO,EAAAA,EAAAA,KAAC+M,EAAAA,EAAO,CACNpuB,MAAO,OACPuH,OAAQ,MACR8mB,YAAY,YACZC,QAAQ,eACRC,UAAU,EACVC,mBAAoB,EACpBC,kBAAkB,EAClB3I,YAAY,EACZ4I,iBAAkB,EAClBC,gBAAiB,EACjBC,YAAY,EACZC,QAAQ,EACRC,aAAc,GAEdza,UAAsB,WAAXvS,GAAyB,WAAU8J,OAAA,KAAS,OACvDoR,IACiC,iBAAxBpkB,SAAU,QAAN2D,GAAJ3D,EAAMkH,YAAI,IAAAvD,QAAN,EAAJA,GAAY2e,SACftiB,SAAU,QAAN4D,GAAJ5D,EAAMkH,YAAI,IAAAtD,QAAN,EAAJA,GAAY0e,QACZ9X,IAAIC,gBAAgBzK,SAAU,QAAN6D,GAAJ7D,EAAMkH,YAAI,IAAArD,QAAN,EAAJA,GAAYye,SAEtC6T,SAAU,EACVjL,IAAKjiB,OAIe,OAAzBmB,cAAS,EAATA,GAAWQ,YAA2C,aAAtB5K,SAAU,QAAN8D,GAAJ9D,EAAMkH,YAAI,IAAApD,QAAN,EAAJA,GAAYyG,SAC3Cke,EAAAA,EAAAA,KAAA,OACEhN,UAAWzb,SAAU,QAAN+D,GAAJ/D,EAAMkH,YAAI,IAAAnD,IAAM,QAANC,GAAVD,GAAYmD,YAAI,IAAAlD,IAAhBA,GAAkB+G,OAAS,SAAW,GACjDmgB,IAAK9kB,GACLL,GAAG,eACH2I,MAAO,CACLvH,OACGS,IAAD,MACA5H,IAAAA,EAAM2H,UACL3H,SAAU,QAANiE,GAAJjE,EAAMkH,YAAI,IAAAjD,IAAM,QAANC,GAAVD,GAAYiD,YAAI,IAAAhD,IAAhBA,GAAkB6G,QAClB2a,IACAlf,IACAwB,GAEG,0BAFY,eAAAgL,OACQ,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cAE5BztB,MAAO,OACPuH,OAAQ,OACR4F,SAAU,YACV2T,SAEwB,WAAzBloB,SAAU,QAANmE,GAAJnE,EAAMkH,YAAI,IAAA/C,QAAN,EAAJA,GAAY4Z,WACX0K,EAAAA,EAAAA,KAAAR,EAAAA,SAAA,CAAAC,UACEO,EAAAA,EAAAA,KAAA,OACErE,SAC4B1X,KAA1B1M,SAAU,QAANoE,GAAJpE,EAAMkH,YAAI,IAAA9C,QAAN,EAAJA,GAAYyP,aACc,KAA1B7T,SAAU,QAANqE,GAAJrE,EAAMkH,YAAI,IAAA7C,QAAN,EAAJA,GAAYwP,WAC2B,iBAA5BzJ,cAAS,EAATA,GAAWE,cAChBF,cAAS,EAATA,GAAWE,aACXE,IAAIC,iBAAgBL,cAAS,EAATA,GAAWE,eAAgB,IAAG,GAAA0I,OACjDojB,EAAAA,GAAW,mBAEpBlL,IAAK5kB,GACL+vB,OAAQA,KACNxuB,IAAW,GACXE,IAAc,EAAM,EAEtB0tB,YAAY,YACZa,QAASA,KACPzuB,IAAW,GACXE,IAAc,EAAM,EAEtBwuB,IAAI,UACJnvB,MAAO,OACPuH,OAAQ,OACRD,MAAO,CACL8nB,UAAW,QACXnO,UAAU,SAADrV,OACP5I,UAAAA,GAAWY,iBAAmBI,IAAY,EAAI,EAAC,MAAA4H,OAC5C5I,UAAAA,GAAWa,eAAiBG,IAAY,EAAI,EAAC,KAElD4gB,WAAY,sBAGZ3C,aAC4B,YAA1BrpB,SAAU,QAANsE,GAAJtE,EAAMkH,YAAI,IAAA5C,QAAN,EAAJA,GAAYsG,YAAqC,WAAX1B,GAClC,MACA,IACN/B,QACGS,IAAD,MACA5H,GAAU,QAANuE,GAAJvE,EAAMkH,YAAI,IAAA3C,IAAVA,GAAY6rB,aACc,KAA1BpwB,SAAU,QAANwE,GAAJxE,EAAMkH,YAAI,IAAA1C,QAAN,EAAJA,GAAYqP,WAAkB,GAAAb,OACvB/L,GAAW,OAAA+L,OAAM3L,GAAW,KAAA2L,OAAIsE,IACnC,8BAKZmR,EAAAA,EAAAA,KAAA,SACErE,IAAKpkB,SAAU,QAANyE,GAAJzE,EAAMkH,YAAI,IAAAzC,QAAN,EAAJA,GAAY8F,MACjBoE,OAAQ,OACRvH,MAAO,OACPqvB,UAAQ,MAoDU,OAAzBrsB,cAAS,EAATA,GAAWQ,YACY,aAAtB5K,SAAU,QAAN0E,GAAJ1E,EAAMkH,YAAI,IAAAxC,QAAN,EAAJA,GAAY6F,SACZvK,SAAU,QAAN2E,GAAJ3E,EAAMkH,YAAI,IAAAvC,QAAN,EAAJA,GAAY0Q,SACX7O,KACyB,KAA1BxG,SAAU,QAAN4E,GAAJ5E,EAAMkH,YAAI,IAAAtC,QAAN,EAAJA,GAAYiP,aACZ7T,SAAU,QAAN6E,GAAJ7E,EAAMkH,YAAI,IAAArC,QAAN,EAAJA,GAAYwQ,MAAM9G,QAAS,IACzBka,EAAAA,EAAAA,KAACwH,EAAAA,IAAiB,CAACC,YA/jILwG,KACtBjtB,IAAiB,EAAM,EA8jIiCye,UAC9CO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAAC5T,SAAS,WAAW7F,MAAO,CAAE4mB,OAAQ,OAAQrP,KAAM,OAAQiC,UAC9DF,EAAAA,EAAAA,MAAC4D,EAAAA,IAAK,CACJE,UAAU,MACV7C,IAAI,MACJ0N,SAAUntB,GAAgB,SAAW,OACrC8f,WAAW,SACX/U,SAAS,QACTX,OAAQ,MAAMsU,SAAA,CAEbhR,OAAOC,OAAOF,IACZqH,MAAM,EAAG9U,GAAgByN,GAAW1I,OAAS+H,IAC7ClF,KAAI,CAACiE,EAAOuhB,KACX5O,EAAAA,EAAAA,MAAC4D,EAAAA,IAAK,CAEJxD,GAAI,CACFhhB,MAAO,OACPuH,OAAQ,OACRsa,IAAK,MACLI,aAAc,OACdliB,OAAO,aAAD6L,OAAoB,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cAC5BrL,aAAc,SACdD,eAAgB,SAChBoN,SAAU,OACVpJ,gBAAiB,WACjBrF,SAAA,EAEFO,EAAAA,EAAAA,KAAA,OACErE,IAAK/O,aAAK,EAALA,EAAO0B,SACZwf,IAAI,GACJd,YAAY,YACZ9mB,OAAQ,GACRvH,MAAO,MAETqhB,EAAAA,EAAAA,KAACmD,EAAAA,IAAK,CAACc,MAAM,UAAUjC,SAAU,GAAGvC,SACjC7S,EAAM2B,UArBJ4f,MA0BTptB,KAAiBxJ,SAAU,QAAN8E,GAAJ9E,EAAMkH,YAAI,IAAApC,QAAN,EAAJA,GAAYuQ,MAAM9G,QAAS+H,KAC5CmS,EAAAA,EAAAA,KAACmD,EAAAA,IAAK,CACJxD,GAAI,CACFhhB,MAAO,OACPuH,OAAQ,OACR0a,aAAc,MACdC,WAAY,SACZC,eAAgB,SAChBgE,gBAAiB,UACjBlF,UAAW,gBACXe,UAAW,4BACX6C,OAAQ,WAEVC,QAASA,IAAMziB,IAAiB,GAAMye,UAEtCO,EAAAA,EAAAA,KAACgM,EAAAA,IAAkB,OAGvBhM,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACF+D,QAASA,IAAM/jB,IAAuBD,IACtCkgB,GAAI,CACFE,cAAetoB,SAAU,QAAN+E,GAAJ/E,EAAMkH,YAAI,IAAAnC,IAAM,QAANC,GAAVD,GAAYmC,YAAI,IAAAlC,IAAhBA,GAAkB+F,OAAS,OAAS,MACnDkhB,OAAQ,sBACR/D,UAEFO,EAAAA,EAAAA,KAAC0C,EAAAA,EAAa,CACZE,YAAa,CACXC,eAAe,GAEjBC,QAASA,IAAMpjB,IAAsB,GACrCqjB,KAAMtjB,GACNujB,sBAAoB,EACpBC,sBAAoB,EACpBC,sBAAoB,EACpB9B,OACEpB,EAAAA,EAAAA,KAACmD,EAAAA,IAAK,CACJR,GAAG,QACHhD,GAAI,CACFgB,UAAW,4BACXF,EAAG,MACHG,aAAc,MACd1a,OAAQ,QACRka,UAAW,QAEbqD,QAAUvX,IACRA,EAAEuQ,iBAAiB,EAErBoL,eAAiB3b,IACfA,EAAEuQ,iBAAiB,EACnBgD,UAEFO,EAAAA,EAAAA,KAAC8H,EAAAA,GAAW,CACVC,aAAenb,IACbF,GAASnV,aAAI,EAAJA,EAAM+F,GAAIsP,EAAM,MAIhC6S,UAEDO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFpiB,GAAG,iBACHqiB,GAAI,CACFhhB,MAAO,OACPuH,OAAQ,OACR0a,aAAc,MACdC,WAAY,SACZN,QAAS,OACTO,eAAgB,SAChBgE,gBAAiB,UACjBnE,UAAW,6BACXlB,UAEFO,EAAAA,EAAAA,KAACoO,EAAAA,IAAO,iBAQE,OAAzBzsB,cAAS,EAATA,GAAWQ,YACY,aAAtB5K,SAAU,QAANiF,GAAJjF,EAAMkH,YAAI,IAAAjC,QAAN,EAAJA,GAAYsF,SACZH,cAAS,EAATA,GAAWe,OACV3E,KACyB,KAA1BxG,SAAU,QAANkF,GAAJlF,EAAMkH,YAAI,IAAAhC,QAAN,EAAJA,GAAY2O,aACZzJ,UAAc,QAALjF,GAATiF,GAAWe,WAAG,IAAAhG,QAAL,EAATA,GAAgBoJ,QAAS,IACvBka,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF7T,SAAU,WACV+gB,OAAQt1B,SAAU,QAANoF,GAAJpF,EAAMkH,YAAI,IAAA9B,IAAO,QAAPC,GAAVD,GAAYiQ,aAAK,IAAAhQ,IAAjBA,GAAmBkJ,OAAS,GAAK,GACzC0X,KAAM,EACN7e,MAAO,OACPwM,OAAQ,KACRsU,UAEFF,EAAAA,EAAAA,MAAC4D,EAAAA,IAAK,CACJE,UAAU,MACV7C,IAAI,MACJD,QAAS,OACT2N,SAAU,SACVrN,WAAW,SACX/U,SAAS,QAAO2T,SAAA,EAEfloB,SAAU,QAANsF,GAAJtF,EAAMkH,YAAI,IAAA5B,IAAK,QAALC,GAAVD,GAAY6F,WAAG,IAAA5F,QAAX,EAAJA,GAAiBgJ,QAAS,IAChB,QADiB/I,GAC1BxF,EAAKkH,YAAI,IAAA1B,QAAA,EAATA,GAAW2F,IACRmT,MAAM,EAAG5U,GAAc1J,SAAU,QAANyF,GAAJzF,EAAMkH,YAAI,IAAAzB,QAAN,EAAJA,GAAY0F,IAAIoD,OAASgI,IAChDnF,KAAI,CAACqC,EAAKwC,KACT,MAAMsX,EAAkB9Z,EAAIiZ,MACxBja,GAAUgB,EAAIiZ,MAAO,IACrB,OACEoK,EACJrjB,EAAIiZ,OAn3I1B,SAAsBA,GACpB,MAAMqK,EAAMnkB,SAAS8Z,EAAMpO,MAAM,GAAI,IAKrC,MADkB,MAHPyY,GAAO,GAAM,KAGM,MAFnBA,GAAO,EAAK,KAEmB,MADnB,IAAZA,GAEQ,GACrB,CA42ImCC,CAAavjB,EAAIiZ,OAAS,OAAS,OAElD,OACEjE,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CAEFC,GAAI,CACFe,QAASoE,EACTlE,aAAc,SACdoB,SAAU,UACVC,WAAY,IACZqB,SAAU,MACVkL,SAAU,MACVjO,QAAS,OACT6C,cAAe,MACfvC,WAAY,SACZniB,OAAO,gBAAD6L,OAAkBS,EAAIiZ,OAAS,QACrCA,MAAOoK,EACPljB,OAAQ,IACRxM,MAAO,eACP8gB,SAEDzU,EAAIyjB,KAAK3oB,OAAS,GAAE,GAAAyE,OACdS,EAAIyjB,KAAK5Y,MAAM,GAAE,OACpB7K,EAAIyjB,MAnBHjhB,EAoBD,MAIZvM,KACAU,cAAS,EAATA,GAAWe,OACXf,UAAc,QAAL1E,GAAT0E,GAAWe,WAAG,IAAAzF,QAAL,EAATA,GAAgB6I,QAASgI,KACvBkS,EAAAA,EAAAA,KAACmD,EAAAA,IAAK,CACJxD,GAAI,CACFhhB,MAAO,OACPuH,OAAQ,OACR0a,aAAc,MACdC,WAAY,SACZC,eAAgB,SAChBgE,gBAAiB,UACjBlF,UAAW,gBACXe,UAAW,4BACX6C,OAAQ,WAEVC,QAASA,IAAMviB,IAAe,GAAMue,UAEpCO,EAAAA,EAAAA,KAACgM,EAAAA,IAAkB,YAOhCz0B,aAAI,EAAJA,EAAM2H,YACJpB,KACAC,IACwB,OAAzB4D,cAAS,EAATA,GAAWQ,cACV5K,SAAU,QAAN2F,GAAJ3F,EAAMkH,YAAI,IAAAvB,IAAM,QAANC,GAAVD,GAAYuB,YAAI,IAAAtB,IAAhBA,GAAkBmF,UAClB2a,KACAje,KACCugB,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAC,SAAA,EACEO,EAAAA,EAAAA,KAACmM,EAAAA,GAAiB,CAChBuC,iBAAiB,EACjB5iB,SAAS,eACTogB,UAAW,GACX7K,SAAU,GAGVjR,YAAclE,GAAMkE,GAAYlE,EAAG3U,GACnC0O,MAAO,CACLkF,OAAQ,IACRsU,UAEFO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF8E,WAAYltB,SAAAA,EAAM2H,SAAW,UAAY,cACzCP,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,OACJW,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,OACJqb,aAAc,QACdhB,UAAWna,GAAkB,wBAEzBD,GAAiB,wBAEjBD,GAAiB,sDAGrB7G,OAAQnH,SAAAA,EAAM2H,SAAQ,aAAAqL,OACA,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cACpB,OACJ,UAAW,CAAE1L,QAAc,OAALuD,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,oBAInCpM,EAAAA,EAAAA,KAACmM,EAAAA,GAAiB,CAChBD,UAAW,GACX7K,SAAU,GAGVvV,SAAS,cACT4iB,iBAAiB,EAKjBte,YAAclE,GAAMkE,GAAYlE,EAAG3U,GACnC0O,MAAO,CACLkF,OAAQ,IACRsU,UAEFO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF8E,WAAYltB,SAAAA,EAAM2H,SAAW,UAAY,cACzCP,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,OACJW,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,OACJqb,aAAc,QAQdhB,UAAWna,GAAkB,wBAEzBD,GAAiB,4BAEjBD,GAAiB,oDAGrB7G,OAAQnH,SAAAA,EAAM2H,SAAQ,aAAAqL,OACA,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cACpB,OACJ,UAAW,CAAE1L,QAAc,OAALuD,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,oBAInCpM,EAAAA,EAAAA,KAACmM,EAAAA,GACC,CACArgB,SAAS,YACT4iB,iBAAiB,EACjBxC,UAAW,GACX7K,SAAU,GAGVjR,YAAclE,GAAMkE,GAAYlE,EAAG3U,GACnC0O,MAAO,CACLkF,OAAQ,IACRsU,UAEFO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF8E,WAAYltB,SAAAA,EAAM2H,SAAW,UAAY,cACzCP,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,OACJW,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,OACJqb,aAAc,QACdhB,UAAWna,GAAkB,wBAEzBD,GAAiB,2BAEjBD,GAAiB,sDAGrB7G,OAAQnH,SAAAA,EAAM2H,SAAQ,aAAAqL,OACA,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cACpB,OACJ,UAAW,CAAE1L,QAAc,OAALuD,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,oBAInCpM,EAAAA,EAAAA,KAACmM,EAAAA,GACC,CACArgB,SAAS,WACT4iB,iBAAiB,EACjBxC,UAAW,GACX7K,SAAU,GAGVjR,YAAclE,GAAMkE,GAAYlE,EAAG3U,GACnC0O,MAAO,CACLkF,OAAQ,IACRsU,UAEFO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFC,GAAI,CACF8E,WAAYltB,SAAAA,EAAM2H,SAAW,UAAY,cACzCP,MAAO8G,GACH,OACAD,GACA,OACAD,GACA,OACA,OACJW,OAAQT,GACJ,OACAD,GACA,OACAD,GACA,OACA,OACJqb,aAAc,QACdhB,UAAWna,GAAkB,wBAEzBD,GAAiB,2BAEjBD,GAAiB,sDAGrB7G,OAAQnH,SAAAA,EAAM2H,SAAQ,aAAAqL,OACA,OAAL0Z,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,cACpB,OACJ,UAAW,CAAE1L,QAAc,OAALuD,EAAAA,QAAK,IAALA,EAAAA,OAAK,EAALA,EAAAA,EAAOmI,0BAO3CpM,EAAAA,EAAAA,KAAC2O,EAAAA,IAAO,CACNrxB,GAAIyG,GACJgf,KAAMvf,GACNorB,SAAUjrB,GACVmf,QAASA,IAAMrf,IAAW,GAC1BorB,aAAc,CACZC,SAAU,SACVC,WAAY,UAEdC,gBAAiB,CACfF,SAAU,MACVC,WAAY,UAEdpP,GAAI,CACF,mBAAoB,CAClBsP,GAAI,QACJtwB,MAAO,IACPgkB,GAAI,OAGJhC,UAAW,OACXD,QAAS,gBAGbwO,cAAe,CACbjpB,MAAO,CAAE6e,gBAAiB,eAC1BrB,QAASA,IAAMhgB,IAAW,IAC1Bgc,UAEFF,EAAAA,EAAAA,MAAC4D,EAAAA,IAAK,CACJxD,GAAI,CACFgB,UAAW,4BACXjiB,OAAQ,oBACR6hB,QAAS,OACT6C,cAAe,SACf1C,QAAS,OACTE,aAAc,OACdJ,IAAK,MACLW,QAAS,QACT1B,SAAA,EAEAnc,KACA0c,EAAAA,EAAAA,KAACsB,EAAAA,IAAS,CACR6N,YAAY,YACZpS,MAAO/Z,GACP0e,SAAWxV,IACTjJ,GAAUiJ,EAAEmN,OAAO0D,OACnB5Z,IAAS,EAAM,EAEjBisB,UAAYljB,IACI,UAAVA,EAAEsQ,KA3+IC6S,MAAO,IAADC,EACzB,GAAsB,KAAlBtsB,GAAOusB,SAAiB5tB,UAAc,QAAL2tB,EAAT3tB,GAAWe,WAAG,IAAA4sB,OAAL,EAATA,EAAgBxpB,QAAS,EAAG,CACtD,MAAM0pB,EAAc,IACf7tB,GAAUe,IACb,CAAE+rB,KAAMzrB,GAAQihB,MAAOzZ,OAEzB5I,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAIlH,IAAS,IAAEe,IAAK8sB,KAClC,IAAInmB,EAAe,GACnB5E,IAAU8L,IACRlH,EAAekH,EAAI5H,KAAKkc,GAClBA,EAAMvnB,MAAO/F,aAAI,EAAJA,EAAM+F,KACrBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKgc,GAAK,IACRpmB,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACCgc,EAAMpmB,MAAI,IACbiE,IAAK8sB,MAIJ3K,IAEFxb,KAETuE,GAAoBvE,EAAcxE,MAClC5B,GAAU,IACVE,IAAS,EACX,MACEA,IAAS,EACX,EAg9IcksB,EACF,EAEFnsB,MAAOA,GACPusB,WAAYvsB,GAAQ,mCAAqC,GACzDwsB,WAAS,EACT/P,GAAI,CACF,2BAA4B,CAC1BwB,QAAS,MACTwF,aAAc,oBAEd,aAAc,CACZjoB,OAAQ,QAEV,mBAAoB,CAAC,EACrB,yBAA0B,CAAC,EAC3B,qCAAsC,CACpCulB,MAAO,WAET,wBAAyB,CACvBtlB,MAAO,OACPD,OAAQ,OACRyiB,QAAS,MACT6C,WAAY,OACZhC,SAAU,kBACVC,WAAY,uBAMtB1C,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFC,GAAI,CACFY,QAAS,OACTM,WAAY,UACZpB,SAAA,CAEDnc,KACC0c,EAAAA,EAAAA,KAACsB,EAAAA,IAAS,CACRvE,MAAOzZ,GACPoe,SAAWxV,IACT3I,GAAgB2I,EAAEmN,OAAO0D,OACzB5Z,IAAS,EAAM,EAEjBusB,WAAS,EACT/P,GAAI,CACF,2BAA4B,CAC1BwB,QAAS,MACTwF,aAAc,oBAEd,aAAc,CACZjoB,OAAQ,QAEV,mBAAoB,CAAC,EACrB,yBAA0B,CAAC,EAC3B,qCAAsC,CACpCulB,MAAO,WAET,wBAAyB,CACvBtlB,MAAO,OACPD,OAAQ,OACRyiB,QAAS,MACT6C,WAAY,OACZhC,SAAU,kBACVC,WAAY,sBAMrB3e,KACC0c,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACF+D,QAASA,IArtJCjW,KACtB,GAAIlK,GAAaisB,OAAQ,CACvB,MAAMC,EAAc7tB,GAAUe,IAAIiG,KAAI,CAACjG,EAAKitB,IACtCA,IAAQniB,GACV3E,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAYnG,GAAG,IAAE+rB,KAAMnrB,KAElBZ,IAET,IAAI2G,EACJ5E,IAAU8L,IACRlH,EAAekH,EAAI5H,KAAKkc,GAClBA,EAAMvnB,MAAO/F,aAAI,EAAJA,EAAM+F,KACrBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKgc,GAAK,IACRpmB,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACCgc,EAAMpmB,MAAI,IACbiE,IAAK8sB,MAIJ3K,IAEFxb,KAETuE,GAAoBvE,EAAcxE,MAClCjD,IAAYiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAIlH,IAAS,IAAEe,IAAK8sB,KAClCnsB,GAAgB,MAChBE,GAAgB,IAChBJ,IAAS,EACX,GAwrJ2BysB,CAAexsB,IAC9Buc,GAAI,CACFmF,gBAAiB,OACjBb,MAAO,OACP9C,QAAS,MACTa,SAAU,OACVpB,aAAc,MACdiP,cAAe,OACfrM,OAAQ,UACR,UAAW,CACTsB,gBAAiB,SAEnBrF,SACH,aAKLO,EAAAA,EAAAA,KAACN,EAAAA,IAAG,CACFa,QAAQ,OACRM,WAAW,SACXL,IAAI,SACJM,eAAgB,aAChBoN,SAAU,OACVvO,GAAI,CACFS,UAAW,QACXX,UAED9d,UAAc,QAALvE,GAATuE,GAAWe,WAAG,IAAAtF,QAAL,EAATA,GAAgB0I,QAAS,IACxBnE,UAAc,QAALtE,GAATsE,GAAWe,WAAG,IAAArF,QAAL,EAATA,GAAgBsL,KAAI,CAACqC,EAAKwC,KACxB+R,EAAAA,EAAAA,MAACG,EAAAA,IAAG,CACFC,GAAI,CACFe,QAAS1W,GAAUgB,aAAG,EAAHA,EAAKiZ,MAAO,IAC/BrD,aAAc,SACdoB,SAAU,UACVC,WAAY,MACZd,QAAS,MACTZ,QAAS,OACT6C,cAAe,MACfvC,WAAY,SACZniB,OAAO,gBAAD6L,OAAkBS,EAAIiZ,OAC5BA,MAAOjZ,EAAIiZ,OACXxE,SAAA,EAEFO,EAAAA,EAAAA,KAAC+D,EAAAA,IAAU,CAACxB,QAAQ,QAAQ5C,GAAI,CAAEqC,SAAU,WAAYvC,SACrDzU,EAAIyjB,KAAK3oB,OAAS,GAAE,GAAAyE,OACdS,EAAIyjB,KAAK5Y,MAAM,EAAG,IAAG,OACxB7K,EAAIyjB,QAEVzO,EAAAA,EAAAA,KAACwE,EAAAA,GAAU,CACTf,QAASA,IAhyJLqM,EAACtiB,EAAOuP,KAC5B1Z,GAAgBmK,GAChBjK,GAAgBwZ,EAAM,EA8xJS+S,CAActiB,EAAOxC,EAAIyjB,MACxC9O,GAAI,CACFwB,QAAS,MACT2E,WAAY,OACZrG,UAEFO,EAAAA,EAAAA,KAAC+P,EAAAA,EAAQ,CACP5K,KAAM,QACNxF,GAAI,CAAEhhB,MAAO,OAAQuH,OAAQ,aAGjC8Z,EAAAA,EAAAA,KAACwE,EAAAA,GAAU,CACTf,QAASA,IAnlJFjW,KACvB,MAAMgiB,EAAc7tB,GAAUe,IAAIkD,QAAO,CAAC2H,EAAG4gB,IAAMA,IAAM3gB,IAKzD,IAAInE,EAJJzH,IAAc4J,IAAI3C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACb2C,GAAI,IACP9I,IAAK8sB,MAGP/qB,IAAU8L,IACRlH,EAAekH,EAAI5H,KAAKkc,GAClBA,EAAMvnB,MAAO/F,aAAI,EAAJA,EAAM+F,KACrBuL,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKgc,GAAK,IACRpmB,MAAIoK,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACCgc,EAAMpmB,MAAI,IACbiE,IAAK8sB,MAIJ3K,IAEFxb,KAETuE,GAAoBvE,EAAcxE,MAClC1B,IAAS,EAAM,EA4jJgB6sB,CAAgBxiB,GAC/BmS,GAAI,CACFwB,QAAS,MACT2E,WAAY,OACZrG,UAEFO,EAAAA,EAAAA,KAACiQ,EAAAA,EAAU,CACT9K,KAAM,QACNxF,GAAI,CAAEhhB,MAAO,OAAQuH,OAAQ,yBAQ5C/E,KACC6e,EAAAA,EAAAA,KAACkQ,EAAAA,EAAY,CACXC,YAAaA,KACX/uB,IAAwB,EAAM,EAEhC7J,KAAMA,EACN8N,OAAQA,GACR+qB,aAAcxuB,GACdmhB,KAAM5hB,MAGV6e,EAAAA,EAAAA,KAACqQ,EAAAA,EAAY,CAAC94B,KAAMA,MACnB,EAIP,GAAe+4B,EAAAA,EAAAA,MAAKh5B,GAAa,CAACi5B,EAAWC,IACpCD,EAAU9xB,KAAKgyB,gBAAkBD,EAAU/xB,KAAKgyB,gB","sources":["Components/DrawBoard/Nodes-Types/UploadImage.js"],"sourcesContent":["import React, {\r\n useState,\r\n useRef,\r\n useEffect,\r\n useMemo,\r\n useCallback,\r\n memo,\r\n} from \"react\";\r\nimport { select } from \"d3-selection\";\r\nimport {\r\n Box,\r\n IconButton,\r\n Typography,\r\n Stack,\r\n CircularProgress,\r\n TextField,\r\n Popover,\r\n ClickAwayListener,\r\n} from \"@mui/material\";\r\nimport EditIcon from \"@mui/icons-material/Edit\";\r\nimport { drag } from \"d3-drag\";\r\nimport CancelIcon from \"@mui/icons-material/Cancel\";\r\nimport {\r\n IcTagOutlined,\r\n IcBorderStyle,\r\n IcCircle,\r\n IcCustom,\r\n IcEyeOpen,\r\n IcMessageOneBubbleOutlined,\r\n IcPlus2,\r\n IcRectangle,\r\n IcSquare,\r\n IcWide,\r\n} from \"../../../assets/icon-components\";\r\nimport SimpleCircularProgress from \"../../../common-components/SimpleCircularProgress\";\r\nimport {\r\n openImageandIcon,\r\n imageWHstate,\r\n isOpenImagesIcon,\r\n setReplaceImageId,\r\n} from \"../../../Redux/sidebarSlice\";\r\nimport { toJpeg, toPng, toSvg } from \"html-to-image\";\r\nimport FrameBorderToolbar from \"../../Node/frameNode/FrameBorderToolbar\";\r\nimport IcLaptop from \"../../../assets/icon-components/IcLaptop.js\";\r\nimport IcHideImg from \"../../../assets/icon-components/IcHideImg\";\r\nimport IcFlipHorizotal from \"../../../assets/icon-components/IcFlipHorizotal\";\r\nimport IcFlipVertical from \"../../../assets/icon-components/IcFlipVertical\";\r\nimport Cropper from \"react-cropper\";\r\nimport \"cropperjs/dist/cropper.css\";\r\nimport \"./style.scss\";\r\nimport UploadViaUrl from \"../../../common-components/modals/ImageUrlModal\";\r\nimport {\r\n Handle,\r\n Position,\r\n NodeToolbar,\r\n useReactFlow,\r\n useStoreApi,\r\n NodeResizeControl,\r\n useUpdateNodeInternals,\r\n NodeResizer,\r\n getNodesBounds,\r\n} from \"reactflow\";\r\nimport { CustomTooltip } from \"../top-toolbar/components/CustomTooltip\";\r\nimport { CustomNameTooltip } from \"../top-toolbar/components/CustomTooltip\";\r\nimport {\r\n IcImageCrop,\r\n IcImageDownload,\r\n IcLockLocked,\r\n IcLockUnLocked,\r\n IcLinkOutlined3,\r\n IcReplaceImageFile,\r\n IcImageOutlined,\r\n IcMenuDotsVertical,\r\n} from \"../../../assets/icon-components\";\r\nimport { getNodePositionInsideParent } from \"../../../Utils/grouping-utils\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport IcOriginal from \"../../../assets/icon-components/IcOriginal.js\";\r\nimport IcPortails from \"../../../assets/icon-components/IcPortail\";\r\nimport { updateJson } from \"../../../CommanFunctions/commanFunctions\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport { debounce, omit } from \"lodash\";\r\nimport FrameMoreMenus from \"../../Node/frameNode/FrameMoreMenus\";\r\nimport ToolTipWithDisabled from \"../top-toolbar/components/ToolTipWithDisabled\";\r\nimport EmojiPicker from \"emoji-picker-react\";\r\nimport IcSmileHappyPlus from \"../../../assets/icon-components/IcSmileHappyPlus.js\";\r\nimport { useUndoRedo } from \"../dndUndoRedo/UndoRedoProvider.js\";\r\nimport VotingCommon from \"../../mind-map/VotingCommon.js\";\r\nimport { useSocketContext } from \"../../../Utils/hooks/useSocketContext.js\";\r\nimport { s3AssetsUrl, socketEvents } from \"../const.js\";\r\nimport commanService from \"../../../CommanFunctions/commanService.js\";\r\nimport useZoomPercentages from \"../../../Utils/hooks/useZoomPercentages.js\";\r\nimport useNodeSelectionStarted from \"../../../Utils/hooks/useNodeSelectionStarted.js\";\r\nimport { color } from \"../../../Utils/style/color/color.js\";\r\nimport CommonDivider from \"../../../common-components/CommonDivider.js\";\r\nimport { generateFontEmbedCss } from \"../utils.js\";\r\n\r\nconst UploadImage = (node) => {\r\n const { id } = useParams();\r\n const user_data = localStorage.getItem(\"user_data\");\r\n const imageData = useRef(null);\r\n const imageData1 = useRef(null);\r\n const { showExport, copyAsImage, isDownload, permission } = useSelector(\r\n (state) => state?.mindMapStore\r\n );\r\n const [showFontSizeOpt, setShowFontSizeOpt] = useState(false);\r\n const borderWidth = node?.data?.border?.width;\r\n const borderStyle = node?.data?.border?.type;\r\n const borderColor = node?.data?.border?.borderColor;\r\n const opacity = node?.data?.border?.opacity;\r\n const { isNodeSelectionStarted } = useNodeSelectionStarted({\r\n selected: node?.selected,\r\n });\r\n const [loading, setLoading] = useState(true);\r\n\r\n const [cropLoader, setCropLoader] = useState(false);\r\n const [loadingDownload, setLoadingDownload] = useState(false);\r\n const [showReactionBottom, setShowReactionBottom] = useState(false);\r\n const [hoveredItem, setHoveredItem] = useState(\"\");\r\n const [showDots, setShowDots] = useState(false);\r\n const [showLinkMoreOptions, setShowLinkMoreOptions] = useState(false);\r\n const [replaceImage, setReplaceImages] = useState(false);\r\n const frameMoreOptionsRef = useRef(null);\r\n const store = useStoreApi();\r\n const [cropImg, setCropImg] = useState(false);\r\n const cropperRef = useRef(null);\r\n const [redius, setRedius] = useState(\" \");\r\n const [showBgColor, setShowBgColor] = useState(false);\r\n const location = useLocation();\r\n const [showAllEmojis, setShowAllEmojis] = useState(false);\r\n const [showAllTags, setShowAllTags] = useState(false);\r\n const [showImageviaUrlModal, setShowImageviaUrlModal] = useState(false);\r\n const { socket } = useSocketContext();\r\n const userRowData = localStorage.getItem(\"user_data\");\r\n const userDataLocal = userRowData ? JSON.parse(userRowData) : {};\r\n const [customize, setCustomize] = useState({\r\n imagePreview: node.data.Label\r\n ? typeof node.data.Label !== \"string\"\r\n ? URL.createObjectURL(node.data.Label)\r\n : node.data.Label\r\n : \"\",\r\n description: node.data.Description ? node.data.Description : \"\",\r\n cropShape: node.data.CropShape ? node.data.CropShape : \" \",\r\n ImageSize: node.data.ImageSize ? node.data.ImageSize : \"100%\",\r\n locked: node?.data?.data?.locked,\r\n flipHorizontal: node?.data?.flipHorizontal\r\n ? node?.data?.flipHorizontal\r\n : false,\r\n flipVertical: node?.data?.flipVertical ? node?.data?.flipVertical : false,\r\n rotationAngle: node?.data?.rotationAngle ? node?.data?.rotationAngle : 0,\r\n tag: node?.data?.tag || [],\r\n });\r\n\r\n const [flipShow, setFlipShow] = useState(node?.data?.crop ? true : false);\r\n const [showReaction, setShowReaction] = useState(false);\r\n const [newTag, setNewTag] = useState(\"\");\r\n const [error, setError] = useState(false);\r\n const [editTagIndex, setEditTagIndex] = useState(null);\r\n const [editTagValue, setEditTagValue] = useState(\"\");\r\n const [openTag, setOpenTag] = React.useState(false);\r\n const [anchorElTag, setAnchorElTag] = React.useState(null);\r\n const [isInputFocused, setIsInputFocused] = useState(false);\r\n const canBeOpenTag = openTag && Boolean(anchorElTag);\r\n const idTag = canBeOpenTag ? \"transition-popper\" : undefined;\r\n\r\n const containerRef = useRef(null);\r\n const borderPopupRef = useRef(null);\r\n const cropRef = useRef(null);\r\n const flipRef = useRef(null);\r\n const reactionRef = useRef(null);\r\n const replaceRef = useRef(null);\r\n const { id: architectureId } = useParams();\r\n const { setNodes, getNodes, getIntersectingNodes, getNode, getEdges } =\r\n useReactFlow();\r\n const dispatch = useDispatch();\r\n const { undo, takeSnapshot } = useUndoRedo();\r\n const isResizing = useRef(false);\r\n const nodeWH = getNode(node?.id);\r\n const {\r\n isItemToSmall,\r\n isWidthLessthan25,\r\n isWidthLessthan50,\r\n isWidthLessthan100,\r\n } = useZoomPercentages({ selected: node?.selected });\r\n const isOnlyOneNodeSelected =\r\n getNodes().filter((n) => n.selected).length === 1;\r\n const [newWh, setNewWh] = useState({\r\n width: nodeWH?.style?.width,\r\n height: nodeWH?.style?.height,\r\n });\r\n\r\n // const isItemToSmall = useMemo(\r\n // () => zoomPercentages <= 12.5,\r\n // [zoomPercentages]\r\n // );\r\n\r\n const handleResize = () => {\r\n isResizing.current = true;\r\n };\r\n\r\n const handleEditTag = (index, value) => {\r\n setEditTagIndex(index);\r\n setEditTagValue(value);\r\n };\r\n function isColorLight(color) {\r\n const rgb = parseInt(color.slice(1), 16);\r\n const r = (rgb >> 16) & 0xff;\r\n const g = (rgb >> 8) & 0xff;\r\n const b = (rgb >> 0) & 0xff;\r\n const luminance = 0.299 * r + 0.587 * g + 0.114 * b;\r\n return luminance > 186;\r\n }\r\n useEffect(() => {\r\n if (!node.selected) {\r\n setShowLinkMoreOptions(false);\r\n setShowAllEmojis(false);\r\n setShowAllTags(false);\r\n setShowBgColor(false);\r\n setIsInputFocused(false);\r\n setShowReaction(false);\r\n setReplaceImages(false);\r\n setShowReactionBottom(false);\r\n }\r\n }, [node?.selected]);\r\n\r\n const handleSaveEdit = (index) => {\r\n if (editTagValue.trim()) {\r\n const updatedTags = customize.tag.map((tag, idx) => {\r\n if (idx === index) {\r\n return { ...tag, name: editTagValue };\r\n }\r\n return tag;\r\n });\r\n let updatedNodes;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((node1) => {\r\n if (node1.id === node?.id) {\r\n return {\r\n ...node1,\r\n data: {\r\n ...node1.data,\r\n tag: updatedTags,\r\n },\r\n };\r\n }\r\n return node1;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n setCustomize({ ...customize, tag: updatedTags });\r\n setEditTagIndex(null);\r\n setEditTagValue(\"\");\r\n setError(false);\r\n }\r\n };\r\n const nodeRotating = useRef(false);\r\n const rotateControlRef = useRef(null);\r\n const updateNodeInternals = useUpdateNodeInternals();\r\n useEffect(() => {\r\n if (!rotateControlRef.current) {\r\n return;\r\n }\r\n\r\n const selection = select(rotateControlRef.current);\r\n const dragHandler = drag()\r\n .on(\"drag\", (evt) => {\r\n nodeRotating.current = true;\r\n const dx = evt.x;\r\n const dy = evt.y;\r\n const rad = Math.atan2(dx, dy);\r\n const deg = rad * (180 / Math.PI);\r\n updateNodeInternals(id);\r\n\r\n const original = {\r\n x: node?.xPos,\r\n y: node?.yPos,\r\n w: nodeWH?.style?.width,\r\n h: nodeWH?.style?.height,\r\n deg: 360 - deg,\r\n };\r\n const rotated = rotateDiv(\r\n original.x,\r\n original.y,\r\n original.w,\r\n original.h,\r\n original.deg\r\n );\r\n setNodes((nodes) => {\r\n return nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...omit(nd.data, [\"editorState\"]),\r\n rotation: 360 - deg,\r\n newPosition: rotated,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n });\r\n })\r\n .on(\"end\", () => {\r\n RotateNodes();\r\n });\r\n\r\n selection.call(dragHandler);\r\n }, [id, updateNodeInternals]);\r\n\r\n const RotateNodes = async () => {\r\n let updatedNodes = getNodes();\r\n nodeRotating.current = false;\r\n let parsedData = {};\r\n const user_data = localStorage.getItem(\"user_data\");\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n };\r\n\r\n const handleClickTag = (event) => {\r\n setAnchorElTag(event.currentTarget);\r\n setOpenTag((previousOpen) => !previousOpen);\r\n };\r\n const hexToRgba = (hex, opacity) => {\r\n const bigint = parseInt(hex.replace(\"#\", \"\"), 16);\r\n const r = (bigint >> 16) & 255;\r\n const g = (bigint >> 8) & 255;\r\n const b = bigint & 255;\r\n\r\n return `rgba(${r},${g},${b},${opacity})`;\r\n };\r\n const randomColor = () => {\r\n const colors = [\r\n \"#059669\",\r\n \"#4F46E5\",\r\n \"#DC2626\",\r\n \"#1A84F9\",\r\n \"#D97706\",\r\n \"#65901F\",\r\n \"#1b5e20\",\r\n ];\r\n return colors[Math.floor(Math.random() * colors.length)];\r\n };\r\n const handleClickAway = () => {\r\n setShowAllEmojis(false);\r\n };\r\n\r\n useEffect(() => {\r\n const filteredNodes1 = getNodes()\r\n ?.filter((n) => n?.parentNode === node?.id && n?.type === \"comment\")\r\n ?.map((val) => val?.id);\r\n if (filteredNodes1) {\r\n const updatedNodes = getNodes().map((n) => {\r\n if (filteredNodes1.includes(n?.id)) {\r\n return {\r\n ...n,\r\n style: {\r\n ...n.style,\r\n zIndex: node?.data?.imageShow ? 999 : -1,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n setNodes(updatedNodes);\r\n }\r\n }, [node?.data?.imageShow, getNodes, setNodes]);\r\n\r\n const handleAddTag = () => {\r\n if (newTag.trim() !== \"\" && customize?.tag?.length < 8) {\r\n const updatedTags = [\r\n ...customize.tag,\r\n { name: newTag, color: randomColor() },\r\n ];\r\n setCustomize({ ...customize, tag: updatedTags });\r\n let updatedNodes = [];\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((node1) => {\r\n if (node1.id === node?.id) {\r\n return {\r\n ...node1,\r\n data: {\r\n ...node1.data,\r\n tag: updatedTags,\r\n },\r\n };\r\n }\r\n return node1;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n setNewTag(\"\");\r\n setError(false);\r\n } else {\r\n setError(true);\r\n }\r\n };\r\n\r\n const handleRemoveTag = (index) => {\r\n const updatedTags = customize.tag.filter((_, i) => i !== index);\r\n setCustomize((prev) => ({\r\n ...prev,\r\n tag: updatedTags,\r\n }));\r\n let updatedNodes;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((node1) => {\r\n if (node1.id === node?.id) {\r\n return {\r\n ...node1,\r\n data: {\r\n ...node1.data,\r\n tag: updatedTags,\r\n },\r\n };\r\n }\r\n return node1;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(updatedNodes, getEdges());\r\n setError(false);\r\n };\r\n const toggleLockUnlock = () => {\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setCropImg(false);\r\n let updatedNodes = getNodes();\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n let updatedNode;\r\n setNodes((nodes) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n updatedNodes = nodes.map((nd) => {\r\n if (nd.id === node.id) {\r\n updatedNode = {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n locked: !nd?.data?.locked,\r\n data: {\r\n ...(nd?.data?.data || {}),\r\n locked: !nd?.data?.data?.locked,\r\n },\r\n },\r\n };\r\n return updatedNode;\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n };\r\n const onResizeStart = () => {\r\n if (node?.data?.isOrgChartFrame) {\r\n setNodes((prev) => {\r\n const updatedNodes = prev?.map((nd) => {\r\n if (nd.type === \"orgChart\" && nd?.data?.rootFrameId === node?.id) {\r\n return {\r\n ...nd,\r\n data: {\r\n ...nd.data,\r\n previousWidth: nd.width,\r\n previousHeight: nd.height,\r\n previousPosition: nd.position,\r\n previousPositionAbsolute: nd.positionAbsolute,\r\n isResizing: true,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n }\r\n };\r\n\r\n const onResize = (e, params) => {\r\n const { height, width } = params;\r\n\r\n const heightScale = height / node?.data?.previousHeight;\r\n const widthScale = width / node?.data?.previousWidth;\r\n\r\n if (node?.data?.isOrgChartFrame) {\r\n setNodes((prev) => {\r\n const updatedNodes = prev?.map((nd) => {\r\n if (nd.type === \"orgChart\" && nd?.data?.rootFrameId === node?.id) {\r\n return {\r\n ...nd,\r\n style: {\r\n ...nd.style,\r\n width: widthScale * nd.data.previousWidth,\r\n height: heightScale * nd.data.previousHeight,\r\n },\r\n position: {\r\n x: nd.data.previousPosition.x * widthScale,\r\n y: nd.data.previousPosition.y * heightScale,\r\n },\r\n positionAbsolute: {\r\n x: nd.data.previousPositionAbsolute.x * widthScale,\r\n y: nd.data.previousPositionAbsolute.y * heightScale,\r\n },\r\n };\r\n }\r\n return nd;\r\n });\r\n return updatedNodes;\r\n });\r\n }\r\n };\r\n const addEmoji = (Id, emoji) => {\r\n const addEmoji = getNodes().map((n) => {\r\n if (n.id === Id) {\r\n const existingEmojiIndex = n?.data?.emoji?.findIndex(\r\n (e) =>\r\n e.emoji.unified === emoji.unified && e.userId === userData?.user_id\r\n );\r\n if (existingEmojiIndex !== -1) {\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n emoji: n.data?.emoji?.filter(\r\n (_, index) => index !== existingEmojiIndex\r\n ),\r\n },\r\n };\r\n }\r\n return {\r\n ...n,\r\n data: {\r\n ...n.data,\r\n emoji: [...n?.data?.emoji, { emoji, userId: userData?.user_id }],\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: getNodes(),\r\n // lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n setNodes(addEmoji);\r\n debouncedUpdateJson(addEmoji);\r\n };\r\n const emojiWidth = 40 + 6;\r\n const maxEmojis = Math.floor((nodeWH?.width - 60) / emojiWidth);\r\n const tagWidth = 70 + 6;\r\n const maxTags = Math.floor((nodeWH?.width - 60) / tagWidth);\r\n const emojiData = getNodes()?.reduce((acc, comment) => {\r\n if (!acc[comment.id]) {\r\n acc[comment.id] = {\r\n emoji: {},\r\n };\r\n }\r\n\r\n comment.data?.emoji?.forEach((e) => {\r\n if (!acc[comment.id].emoji[e.emoji.unified]) {\r\n acc[comment.id].emoji[e.emoji.unified] = {\r\n imageUrl: e.emoji.imageUrl,\r\n emoji: e.emoji.emoji,\r\n unified: e.emoji.unified,\r\n count: 0,\r\n };\r\n }\r\n acc[comment.id].emoji[e.emoji.unified].count++;\r\n });\r\n\r\n return acc;\r\n }, {});\r\n\r\n const emojiD = emojiData[node?.id] || { emoji: {} };\r\n\r\n const emojiCount = Object?.values(emojiD)[0];\r\n const adjustOpacity = (rgba, newOpacity) => {\r\n const parts = rgba.match(/rgba?\\((\\d+), (\\d+), (\\d+), ([\\d.]+)\\)/);\r\n if (!parts) return rgba;\r\n return `rgba(${parts[1]}, ${parts[2]}, ${parts[3]}, ${newOpacity})`;\r\n };\r\n const [imageDimensions, setImageDimensions] = useState({\r\n width: null,\r\n height: null,\r\n });\r\n const newBorderColor =\r\n borderColor && opacity ? adjustOpacity(borderColor, opacity) : \"\";\r\n\r\n useEffect(() => {\r\n setCustomize({ ...customize, imagePreview: node?.data?.Label });\r\n }, [node?.data?.Label]);\r\n\r\n // function flipImage(imageUrl, flipHorizontal, flipVertical) {\r\n // return new Promise((resolve, reject) => {\r\n // const img = new Image();\r\n // img.crossOrigin = \"anonymous\";\r\n // img.src = imageUrl;\r\n\r\n // img.onload = () => {\r\n // const canvas = document.createElement(\"canvas\");\r\n // const ctx = canvas.getContext(\"2d\");\r\n\r\n // canvas.width = img.width;\r\n // canvas.height = img.height;\r\n\r\n // const translateX = flipHorizontal ? canvas.width : 0;\r\n // const translateY = flipVertical ? canvas.height : 0;\r\n // const scaleX = flipHorizontal ? -1 : 1;\r\n // const scaleY = flipVertical ? -1 : 1;\r\n\r\n // ctx.translate(translateX, translateY);\r\n // ctx.scale(scaleX, scaleY);\r\n // ctx.drawImage(img, 0, 0);\r\n\r\n // const flippedImageUrl = canvas.toDataURL(\"image/png\", 1.0);\r\n // resolve(flippedImageUrl);\r\n // };\r\n\r\n // img.onerror = () => {\r\n // reject(new Error(\"Failed to load the image.\"));\r\n // };\r\n // });\r\n // }\r\n\r\n useEffect(() => {\r\n if (socket) {\r\n socket.on(socketEvents.NODE_UPDATED, (data) => {\r\n const jsonData = data?.architecture_json;\r\n const currData = jsonData?.nodes?.find((val) => val?.id === node?.id);\r\n if (jsonData?.lastUpdatedBy !== userDataLocal?.user_id && !!currData) {\r\n setCustomize({\r\n ...customize,\r\n flipVertical: currData?.data?.flipVertical,\r\n flipHorizontal: currData?.data?.flipHorizontal,\r\n tag: currData?.data?.tag,\r\n imageShow: currData?.data?.imageShow,\r\n // ! this is issue of shapes change\r\n // typeof customize?.imagePreview === \"string\"\r\n // ? customize?.imagePreview\r\n // : URL.createObjectURL(customize?.imagePreview)\r\n imagePreview: currData?.data?.Label,\r\n ...(currData?.data?.cropShape && {\r\n cropShape: currData?.data?.cropShape,\r\n }),\r\n });\r\n setRedius(currData?.data?.redius);\r\n setImageDimensions({\r\n width: currData?.data?.width,\r\n height: currData?.data?.height,\r\n });\r\n setCropImg(false);\r\n }\r\n });\r\n // cropperRef.current.blur()\r\n }\r\n }, [socket]);\r\n\r\n const onResizeEnd = (event, node) => {\r\n setNodes((nds) =>\r\n nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width: event.x,\r\n height: event.y,\r\n data: {\r\n ...n.data,\r\n scale: true,\r\n width: event.x,\r\n height: event.y,\r\n },\r\n style: {\r\n width: event.x,\r\n height: event.y,\r\n },\r\n };\r\n }\r\n return n;\r\n })\r\n );\r\n setImageDimensions({\r\n width: event.x,\r\n height: event.y,\r\n });\r\n let updatedNodes = [];\r\n const updatedNode = [];\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n isResizing.current = false;\r\n setNodes((prev) => {\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: prev,\r\n lastUpdatedBy: parsedData?.user_id,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n // Update the resized node\r\n updatedNodes = prev?.map((_) => {\r\n if (_?.id === node?.id) {\r\n _ = JSON.parse(JSON.stringify(_));\r\n _.data.scale = false;\r\n _.style.width = Number(imageData?.current?.offsetWidth || 0);\r\n _.style.height = Number(imageData?.current?.offsetHeight);\r\n _.data.scale = true;\r\n return _;\r\n } else {\r\n return _;\r\n }\r\n });\r\n\r\n updatedNodes = updatedNodes?.map((n) => {\r\n const intersections = getIntersectingNodes(node, false);\r\n let groupNode = null;\r\n if (intersections?.length > 0) {\r\n groupNode = intersections[intersections?.length - 1];\r\n }\r\n\r\n if (\r\n node.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode === groupNode?.id\r\n ) {\r\n // node drop in in same Group\r\n return n; // do nothing but do not delete\r\n } else if (\r\n intersections.length &&\r\n node?.parentNode !== groupNode?.id &&\r\n !node?.parentNode\r\n ) {\r\n /**.NODE DROP IN GROUP*/\r\n if (n.id === groupNode.id) {\r\n updatedNode.push({\r\n ...n,\r\n className: \"\",\r\n });\r\n return {\r\n ...n,\r\n className: \"\",\r\n };\r\n } else if (n.id === node.id && !n?.parentNode) {\r\n const position = getNodePositionInsideParent(n, groupNode) ?? {\r\n x: 0,\r\n y: 0,\r\n };\r\n updatedNode.push({\r\n ...n,\r\n position,\r\n parentNode: groupNode.id,\r\n // extent: 'parent',\r\n });\r\n return {\r\n ...n,\r\n position,\r\n parentNode: groupNode.id,\r\n // extent: 'parent',\r\n };\r\n } else return n;\r\n } else if (\r\n // node.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n !groupNode\r\n ) {\r\n /** NODE DROP OUTSIDE */\r\n if ([node?.id].includes(n.id) && node?.parentNode) {\r\n const parentNode = store\r\n .getState()\r\n ?.nodeInternals?.get(node?.parentNode);\r\n if (parentNode) {\r\n let tempNode = {\r\n ...n,\r\n position: {\r\n x: n.position?.x + (parentNode?.positionAbsolute?.x ?? 0),\r\n y: n.position?.y + (parentNode?.positionAbsolute?.y ?? 0),\r\n },\r\n expandParent: undefined,\r\n parentNode: undefined,\r\n };\r\n updatedNode.push(tempNode);\r\n return tempNode;\r\n } else {\r\n return n;\r\n }\r\n } else {\r\n return n;\r\n }\r\n } else if (\r\n // node.type !== \"group\" &&\r\n node?.parentNode &&\r\n node?.parentNode !== groupNode?.id &&\r\n groupNode\r\n ) {\r\n /** NODE DIRECTLY DROP IN TO ONE GROUP TO ANOTHER GROUP*/\r\n if (n?.id === node?.id) {\r\n n = structuredClone(n);\r\n n.parentNode = groupNode?.id;\r\n n.position = {\r\n x:\r\n (node?.positionAbsolute?.x || 0) -\r\n (groupNode?.positionAbsolute?.x || 0),\r\n y:\r\n (node?.positionAbsolute?.y || 0) -\r\n (groupNode?.positionAbsolute?.y || 0),\r\n };\r\n updatedNode.push(n);\r\n return n;\r\n } else return n;\r\n } else {\r\n if (n?.type === \"group\") {\r\n // n.dragging = false;\r\n }\r\n return n; // DO NOTHING\r\n }\r\n });\r\n\r\n return updatedNodes;\r\n });\r\n\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n };\r\n\r\n const debouncedUpdateJson = useCallback(\r\n debounce((tempNodes, updatedEdges) => {\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: tempNodes?.length > 0 ? tempNodes : getNodes(),\r\n edges: updatedEdges?.length > 0 ? updatedEdges : getEdges(),\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id: architectureId,\r\n // dispatch: reduxDispatch,\r\n undo,\r\n takeSnapshot,\r\n a_id,\r\n });\r\n }, 200),\r\n [updateJson, user_data, id, dispatch, undo, location, getNodes, getEdges]\r\n );\r\n\r\n const userData = useSelector((state) => state.common.userData);\r\n const getTimeDifference = (commentTimestamp) => {\r\n const currentTime = Date.now();\r\n const differenceInMs = currentTime - commentTimestamp;\r\n\r\n const differenceInMinutes = Math.floor(differenceInMs / (1000 * 60));\r\n\r\n if (differenceInMinutes === 0) {\r\n return currentTime;\r\n } else {\r\n return currentTime - commentTimestamp;\r\n }\r\n };\r\n\r\n const handleAddComment = () => {\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setShowBgColor(false);\r\n setCropImg(false);\r\n const widthN = imageData1.current.offsetWidth / 2;\r\n const heightN = imageData1.current.offsetHeight / 2;\r\n\r\n const x = node?.xPos + widthN;\r\n const y = node?.yPos + heightN;\r\n\r\n const timeNow = Date.now();\r\n const newComment = {\r\n id: `comment-${Date.now()}`,\r\n type: \"comment\",\r\n key: \"comment\",\r\n data: {\r\n label: \"New Comment\",\r\n ...userData,\r\n timestamp: timeNow,\r\n replyData: [],\r\n emoji: [],\r\n maxPosition: {\r\n x: x - node?.xPos,\r\n y: y - node?.yPos,\r\n },\r\n new: true,\r\n resolved: false,\r\n read: false,\r\n replyTimeStamp: null,\r\n },\r\n style: {\r\n zIndex: 999999999999,\r\n background: \"transparent\",\r\n border: 0,\r\n outline: \"none\",\r\n },\r\n parentNode: node?.id,\r\n position: {\r\n x: x - node?.xPos,\r\n y: y - node?.yPos,\r\n },\r\n positionAbsolute: {\r\n x: x - node?.xPos,\r\n y: y - node?.yPos,\r\n },\r\n dragging: true,\r\n selected: false,\r\n selectable: false,\r\n };\r\n\r\n setNodes((prevNodes) => {\r\n const updatedNodes = getNodes().map((node) => {\r\n if (!node.data.timestamp) {\r\n return {\r\n ...node,\r\n data: {\r\n ...node.data,\r\n timestamp: getTimeDifference(node.data.timestamp),\r\n replyTimeStamp: getTimeDifference(node?.data?.replyTimeStamp),\r\n },\r\n };\r\n }\r\n return node;\r\n });\r\n const newCommentWithCurrentTime = {\r\n ...newComment,\r\n data: {\r\n ...newComment.data,\r\n timestamp: timeNow,\r\n },\r\n };\r\n const finalUpdatedNodes = [...updatedNodes, newCommentWithCurrentTime];\r\n localStorage.setItem(\r\n \"architectureJson\",\r\n JSON.stringify({\r\n architecture_json: {\r\n nodes: finalUpdatedNodes,\r\n lastEvent: ``,\r\n },\r\n })\r\n );\r\n\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: finalUpdatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n\r\n return finalUpdatedNodes;\r\n });\r\n };\r\n\r\n const createUrlForVideo = async (url) => {\r\n const response = await fetch(url);\r\n const blob = await response.blob();\r\n\r\n const urlBlob = URL.createObjectURL(blob);\r\n return urlBlob;\r\n };\r\n\r\n const handleClickOriginalImage = async () => {\r\n if (node?.data?.original) {\r\n setCustomize({\r\n ...customize,\r\n imagePreview: node?.data?.originalUrl,\r\n flipHorizontal: false,\r\n flipVertical: false,\r\n });\r\n } else {\r\n setCustomize({\r\n ...customize,\r\n imagePreview: node?.data?.Label,\r\n flipHorizontal: false,\r\n flipVertical: false,\r\n });\r\n }\r\n // setCustomize({\r\n // ...customize,\r\n // imagePreview: node?.data?.Label,\r\n // flipHorizontal: false,\r\n // flipVertical: false,\r\n // });\r\n setNodes((nds) =>\r\n nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n // width: node?.data?.imageWidth,\r\n // height: node?.data?.imageHeigth,\r\n width: node?.data?.width,\r\n height: node?.data?.height,\r\n data: {\r\n ...n.data,\r\n scale: false,\r\n width: node?.data?.width,\r\n height: node?.data?.height,\r\n // width: node?.data?.imageWidth,\r\n // height: node?.data?.imageHeigth,\r\n },\r\n style: {\r\n width: node?.data?.width,\r\n height: node?.data?.height,\r\n // width: node?.data?.imageWidth,\r\n // height: node?.data?.imageHeigth,\r\n },\r\n };\r\n }\r\n return n;\r\n })\r\n );\r\n setImageDimensions({\r\n width: null,\r\n height: null,\r\n });\r\n\r\n setCropImg(false);\r\n setRedius(\"\");\r\n };\r\n\r\n const handleHideImage = async () => {\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setCropImg(false);\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n\r\n data: {\r\n ...n.data,\r\n imageShow: node?.data?.imageShow === true ? false : true,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // edges: edges,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n };\r\n\r\n // const handleFileExport = async () => {\r\n // setReplaceImages(false);\r\n // setShowFontSizeOpt(false);\r\n // setCropImg(false);\r\n\r\n // if (imageData.current) {\r\n // setLoadingDownload(true);\r\n\r\n // try {\r\n // const images = imageData.current.getElementsByTagName(\"img\");\r\n // const originalSrcs = [];\r\n\r\n // await Promise.all(\r\n // Array.from(images).map(async (img) => {\r\n // if (img.src.startsWith(\"http\")) {\r\n // originalSrcs.push({ img, src: img.src });\r\n // try {\r\n // const response = await fetch(img.src);\r\n // const blob = await response.blob();\r\n // const base64 = await new Promise((resolve) => {\r\n // const reader = new FileReader();\r\n // reader.onload = () => resolve(reader.result);\r\n // reader.readAsDataURL(blob);\r\n // });\r\n // img.src = base64;\r\n // } catch (error) {\r\n // console.error(\"Failed to convert image to base64:\", error);\r\n // }\r\n // }\r\n // })\r\n // );\r\n\r\n // const canvas = await html2canvas(imageData.current, {\r\n // useCORS: true,\r\n // scale: 2,\r\n // logging: false,\r\n // backgroundColor: null,\r\n // });\r\n\r\n // const dataUrl = canvas.toDataURL(\"image/png\", 1.0);\r\n\r\n // originalSrcs.forEach(({ img, src }) => {\r\n // img.src = src;\r\n // });\r\n\r\n // const link = document.createElement(\"a\");\r\n // link.href = dataUrl;\r\n // link.download = `${(node.data.filename || \"Image\").split(\".\")[0]}.png`;\r\n // link.click();\r\n // } catch (error) {\r\n // console.error(\"Error exporting the image:\", error);\r\n // } finally {\r\n // setLoadingDownload(false);\r\n // }\r\n // }\r\n // };\r\n\r\n const handleFileExport = async () => {\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setCropImg(false);\r\n if (imageData.current) {\r\n setLoadingDownload(true); // Start loading\r\n try {\r\n let dataUrl;\r\n let format = \"png\";\r\n if (node?.data?.filename?.endsWith(\".svg\")) {\r\n const fontEmbedCSS = await generateFontEmbedCss();\r\n dataUrl = await toSvg(imageData.current, {\r\n skipFonts: true,\r\n skipAutoScale: true,\r\n fontEmbedCSS: fontEmbedCSS,\r\n quality: 1,\r\n });\r\n format = \"svg\";\r\n } else if (\r\n node?.data?.filename?.endsWith(\".jpeg\") ||\r\n node?.data?.filename?.endsWith(\".jpg\")\r\n ) {\r\n const fontEmbedCSS = await generateFontEmbedCss();\r\n dataUrl = await toJpeg(imageData.current, {\r\n skipFonts: true,\r\n skipAutoScale: true,\r\n fontEmbedCSS: fontEmbedCSS,\r\n quality: 1,\r\n });\r\n format = \"jpeg\";\r\n } else {\r\n if (node?.data?.fileType === \"video\") {\r\n dataUrl = await createUrlForVideo(node?.data?.Label);\r\n format = node.data.filename.slice(\r\n node.data.filename.lastIndexOf(\".\") + 1\r\n );\r\n } else {\r\n const fontEmbedCSS = await generateFontEmbedCss();\r\n dataUrl = await toPng(imageData.current, {\r\n skipFonts: true,\r\n skipAutoScale: true,\r\n fontEmbedCSS: fontEmbedCSS,\r\n quality: 1,\r\n });\r\n format = \"png\";\r\n }\r\n }\r\n\r\n const link = document.createElement(\"a\");\r\n link.href = dataUrl;\r\n link.download = `${(node.data.filename || \"Image\").slice(\r\n 0,\r\n (node.data.filename || \"Image\").lastIndexOf(\".\")\r\n )}.${format}`;\r\n link.click();\r\n } catch (error) {\r\n console.error(\"Error exporting the image:\", error);\r\n } finally {\r\n setLoadingDownload(false);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (customize?.cropShape !== \" \") {\r\n setNodes((nds) => {\r\n const cropCanvas = document.querySelector(\".cropper-canvas\");\r\n\r\n if (!cropCanvas) {\r\n setLoading(true);\r\n }\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n // width:\r\n // imageDimensions.width !== null\r\n // ? imageDimensions.width\r\n // : node?.data?.width,\r\n // height:\r\n // imageDimensions.height !== null\r\n // ? imageDimensions.height\r\n // : node?.data?.height,\r\n width:\r\n imageDimensions.width !== null\r\n ? imageDimensions.width\r\n : node?.data?.imageWidth,\r\n height:\r\n imageDimensions.height !== null\r\n ? imageDimensions.height\r\n : node?.data?.imageHeigth,\r\n data: {\r\n ...n.data,\r\n original: false,\r\n cropShape: customize?.cropShape,\r\n Label: node?.data?.originalUrl,\r\n redius: \"\",\r\n scale: false,\r\n\r\n width:\r\n imageDimensions.width !== null\r\n ? imageDimensions.width\r\n : node?.data?.imageWidth,\r\n height:\r\n imageDimensions.height !== null\r\n ? imageDimensions.height\r\n : node?.data?.imageHeigth,\r\n },\r\n style: {\r\n // width:\r\n // imageDimensions.width !== null\r\n // ? imageDimensions.width\r\n // : node?.data?.width,\r\n // height:\r\n // imageDimensions.height !== null\r\n // ? imageDimensions.height\r\n // : node?.data?.height,\r\n width:\r\n imageDimensions.width !== null\r\n ? imageDimensions.width\r\n : node?.data?.imageWidth,\r\n height:\r\n imageDimensions.height !== null\r\n ? imageDimensions.height\r\n : node?.data?.imageHeigth,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n let parsedData = {};\r\n\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // edges: edges,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n }\r\n\r\n const cropper = cropperRef.current?.cropper;\r\n if (cropper) {\r\n cropper.setAspectRatio(getAspectRatio());\r\n }\r\n }, [customize?.cropShape]);\r\n\r\n useEffect(() => {\r\n if (cropperRef && !cropperRef?.current) {\r\n if (node?.data?.original) {\r\n setCustomize({ ...customize, imagePreview: node?.data?.originalUrl });\r\n } else {\r\n setCustomize({ ...customize, imagePreview: node?.data?.Label });\r\n }\r\n }\r\n }, [node]);\r\n\r\n const getAspectRatio = () => {\r\n switch (customize?.cropShape) {\r\n case \"square\":\r\n return 1;\r\n case \"portrait\":\r\n return 3 / 4;\r\n case \"landscape\":\r\n return 4 / 3;\r\n case \"wide\":\r\n return 16 / 9;\r\n default:\r\n return NaN;\r\n }\r\n };\r\n const seletedNode = getNodes()?.filter(\r\n (val) => val?.type !== \"uploadImage\" && val.selected\r\n );\r\n\r\n useEffect(() => {\r\n if (\r\n seletedNode?.length > 0 &&\r\n customize?.cropShape &&\r\n containerRef &&\r\n containerRef?.current\r\n ) {\r\n const handleCrop = async () => {\r\n if (\r\n cropperRef.current &&\r\n cropperRef.current.cropper &&\r\n customize?.cropShape\r\n ) {\r\n const cropper = cropperRef.current.cropper;\r\n\r\n try {\r\n const croppedCanvas = cropper.getCroppedCanvas();\r\n\r\n if (croppedCanvas) {\r\n setCropLoader(true);\r\n const croppedDataURL = croppedCanvas.toDataURL();\r\n const cropBoxElement = cropper.cropBox;\r\n const blob = await fetch(croppedDataURL).then((res) =>\r\n res.blob()\r\n );\r\n const file = new File([blob], `${blob?.type}.png`, {\r\n type: \"image/png\",\r\n });\r\n\r\n // Create FormData for upload\r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n formData.append(\"fileName\", `${blob?.type}.png`);\r\n\r\n try {\r\n const imageUploadResponse = await commanService.uploadApi(\r\n \"drawboard\",\r\n `upload/files`,\r\n formData\r\n );\r\n\r\n const width = parseInt(cropBoxElement?.style?.width, 10) || 200;\r\n const height =\r\n parseInt(cropBoxElement?.style?.height, 10) || 200;\r\n\r\n if (\r\n imageUploadResponse?.data?.data &&\r\n customize?.cropShape !== \" \" &&\r\n containerRef &&\r\n containerRef?.current &&\r\n seletedNode?.length\r\n ) {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \" \",\r\n imagePreview:\r\n imageUploadResponse?.data?.data?.[0]?.location,\r\n });\r\n setFlipShow(true);\r\n setNewWh({ width: width, height: height });\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width,\r\n height,\r\n data: {\r\n ...n.data,\r\n width,\r\n height,\r\n crop: true,\r\n Label: croppedDataURL,\r\n },\r\n\r\n // style: {\r\n // width,\r\n // height,\r\n // },\r\n };\r\n }\r\n return n;\r\n });\r\n\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n }\r\n } catch (error) {\r\n console.error(\"Error during image upload:\", error);\r\n } finally {\r\n setCropLoader(false);\r\n }\r\n } else {\r\n console.error(\"Unable to get cropped canvas.\");\r\n }\r\n } catch (error) {\r\n console.error(\"Error while cropping raster image:\", error);\r\n }\r\n }\r\n };\r\n\r\n handleCrop();\r\n }\r\n }, [seletedNode?.length > 0]);\r\n\r\n const handleClickOutside = (event) => {\r\n if (\r\n cropperRef.current &&\r\n containerRef.current &&\r\n !containerRef.current.contains(event.target)\r\n ) {\r\n cropImage();\r\n setShowFontSizeOpt(false);\r\n }\r\n if (\r\n frameMoreOptionsRef.current &&\r\n !frameMoreOptionsRef.current.contains(event.target)\r\n ) {\r\n setShowLinkMoreOptions(false);\r\n }\r\n\r\n if (cropRef?.current && cropRef.current.contains(event.target)) {\r\n setCropImg(true);\r\n } else {\r\n setCropImg(false);\r\n }\r\n if (flipRef?.current && flipRef.current.contains(event.target)) {\r\n setShowFontSizeOpt(true);\r\n } else {\r\n setShowFontSizeOpt(false);\r\n }\r\n if (reactionRef.current && !reactionRef.current.contains(event.target)) {\r\n setShowReaction(false);\r\n }\r\n };\r\n\r\n const cropImage = async () => {\r\n if (cropperRef.current && cropperRef.current.cropper) {\r\n const cropper = cropperRef.current.cropper;\r\n\r\n if (node?.data?.filename?.endsWith(\".svg\")) {\r\n try {\r\n const cropBoxElement = cropper.cropBox;\r\n const divElement = cropBoxElement.querySelector(\"span\");\r\n divElement.style.border = \"none\";\r\n const dataUrl = await toSvg(divElement);\r\n setCustomize({\r\n ...customize,\r\n cropShape: \" \",\r\n imagePreview: dataUrl,\r\n });\r\n const width = parseInt(cropBoxElement?.style?.width, 10) || 200;\r\n const height = parseInt(cropBoxElement?.style?.height, 10) || 200;\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width: width > 200 ? width : 200,\r\n height: height > 200 ? height : 200,\r\n data: {\r\n ...n.data,\r\n Label: dataUrl,\r\n crop: true,\r\n width: width > 200 ? width : 200,\r\n height: height > 200 ? height : 200,\r\n flipUrl: dataUrl,\r\n },\r\n style: {\r\n width: width > 200 ? width : 200,\r\n height: height > 200 ? height : 200,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n setFlipShow(true);\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // edges: edges,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n // setImageDimensions({\r\n // ...imageDimensions,\r\n // width: width > 200 ? width : 200,\r\n // height: height > 200 ? height : 200,\r\n // });\r\n } catch (error) {\r\n console.error(\"Error while cropping SVG:\", error);\r\n }\r\n } else {\r\n try {\r\n setCropLoader(true);\r\n const croppedCanvas = cropper.getCroppedCanvas();\r\n if (croppedCanvas) {\r\n const croppedDataURL = croppedCanvas.toDataURL();\r\n const cropBoxElement = cropper.cropBox;\r\n const blob = await fetch(croppedDataURL).then((res) => res.blob());\r\n const file = new File([blob], `${blob?.type}.png`, {\r\n type: \"image/png\",\r\n });\r\n\r\n // Create FormData\r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n formData.append(\"fileName\", `${blob?.type}.png`);\r\n const imageUploadResponse = await commanService\r\n .uploadApi(\"drawboard\", `upload/files`, formData)\r\n .finally(() => {\r\n // setTimeout(() => {\r\n // setCropLoader(false);\r\n // }, 200);\r\n });\r\n const width = parseInt(cropBoxElement?.style?.width, 10) || 200;\r\n const height = parseInt(cropBoxElement?.style?.height, 10) || 200;\r\n setNewWh({ width: width, height: height });\r\n if (imageUploadResponse?.data?.data) {\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width: width,\r\n height: height,\r\n data: {\r\n ...n.data,\r\n width: width,\r\n height: height,\r\n Label: imageUploadResponse?.data?.data?.[0]?.location,\r\n crop: true,\r\n flipUrl: imageUploadResponse?.data?.data?.[0]?.location,\r\n // Label:\"https://s3.amazonaws.com/cloudairy-template-storage/355d65d0-04d8-4122-9c30-c279770d96f3/1733317514065Free Cloud Text Effect Photoshop PSD - PsFile.png\"\r\n },\r\n // style: {\r\n // width: width,\r\n // height: height,\r\n // },\r\n };\r\n }\r\n return n;\r\n });\r\n setCustomize({\r\n ...customize,\r\n cropShape: \" \",\r\n imagePreview: imageUploadResponse?.data?.data?.[0]?.location,\r\n });\r\n setFlipShow(true);\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // edges: edges,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n }\r\n } else {\r\n console.error(\"Unable to get cropped canvas.\");\r\n }\r\n } catch (error) {\r\n console.error(\"Error while cropping raster image:\", error);\r\n }\r\n }\r\n } else {\r\n console.error(\"Cropper not initialized or image not loaded yet.\");\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!cropLoader && node?.data?.crop && nodeWH) {\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n\r\n style: {\r\n width: newWh?.width,\r\n height: newWh?.height,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n }\r\n }, [cropLoader]);\r\n\r\n const { getRootProps, getInputProps } = useDropzone({\r\n onDrop: (files) => {\r\n const file = files[0];\r\n if (file) {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = () => {\r\n const base64String = reader.result;\r\n\r\n const img = new Image();\r\n img.src = base64String;\r\n\r\n img.onload = () => {\r\n let width = img.width;\r\n let height = img.height;\r\n\r\n if (width > 400 || height > 400) {\r\n const aspectRatio = width / height;\r\n\r\n if (width > height) {\r\n width = 400;\r\n height = 400 / aspectRatio;\r\n } else {\r\n height = 400;\r\n width = 400 * aspectRatio;\r\n }\r\n }\r\n\r\n setCustomize((prev) => ({\r\n ...prev,\r\n imagePreview: base64String,\r\n }));\r\n\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width: nodeWH?.width,\r\n height: nodeWH?.height,\r\n data: {\r\n ...n.data,\r\n Label: base64String,\r\n originalUrl: base64String,\r\n flipUrl: base64String,\r\n imageWidth: n?.style?.width,\r\n imageHeigth: n?.style?.height,\r\n originalWidth: n?.style?.width,\r\n originalHeigth: n?.style?.height,\r\n },\r\n style: {\r\n width: n?.style?.width,\r\n height: n?.style?.height,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(location.search);\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // edges: edges,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n\r\n setCropImg(false);\r\n setRedius(\"\");\r\n // setImageDimensions({ width, height });\r\n };\r\n\r\n img.onerror = (error) => {\r\n console.error(\r\n \"Error loading image for dimension extraction:\",\r\n error\r\n );\r\n };\r\n };\r\n\r\n reader.onerror = (error) => {\r\n console.error(\"Error converting file to base64:\", error);\r\n };\r\n }\r\n setReplaceImages(false);\r\n },\r\n });\r\n\r\n const handleKeyPress = (event) => {\r\n if (event.key === \"Enter\") {\r\n event.stopPropagation();\r\n if (cropperRef.current && containerRef.current) {\r\n cropImage();\r\n setCropImg(false);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const reactFlowPane = document.querySelector(\".react-flow__pane\");\r\n\r\n if (reactFlowPane && customize?.cropShape) {\r\n reactFlowPane.addEventListener(\"mousedown\", handleClickOutside);\r\n document.addEventListener(\"keydown\", handleKeyPress);\r\n }\r\n\r\n return () => {\r\n if (reactFlowPane) {\r\n reactFlowPane.removeEventListener(\"mousedown\", handleClickOutside);\r\n }\r\n document.removeEventListener(\"keydown\", handleKeyPress);\r\n };\r\n }, [customize?.cropShape]);\r\n\r\n const handleInputChange = useCallback(\r\n debounce((e) => {\r\n setNodes((nds) => {\r\n const newNodes = nds.map((n) =>\r\n n?.id === node?.id\r\n ? { ...n, data: { ...n.data, filename: e.target.value } }\r\n : n\r\n );\r\n\r\n debouncedUpdateJson(newNodes, getEdges());\r\n return newNodes;\r\n });\r\n }, 300),\r\n [node?.id, setNodes]\r\n );\r\n\r\n const handleChange = (e) => {\r\n handleInputChange(e);\r\n };\r\n\r\n const selectedNodes = getNodes()?.filter(\r\n (val) => val?.selected && !val?.type === \"comment\"\r\n )?.length;\r\n\r\n const isMultiNodeSelected = useMemo(() => {\r\n return selectedNodes > 1;\r\n }, [selectedNodes]);\r\n\r\n function rotateDiv(x, y, w, h, deg) {\r\n const rad = deg * (Math.PI / 180);\r\n const center_x = x + w / 2;\r\n const center_y = y + h / 2;\r\n const new_x =\r\n center_x +\r\n (x - center_x) * Math.cos(rad) -\r\n (y - center_y) * Math.sin(rad);\r\n const new_y =\r\n center_y +\r\n (x - center_x) * Math.sin(rad) +\r\n (y - center_y) * Math.cos(rad);\r\n const new_w = Math.abs(w * Math.cos(rad)) + Math.abs(h * Math.sin(rad));\r\n const new_h = Math.abs(h * Math.cos(rad)) + Math.abs(w * Math.sin(rad));\r\n\r\n return {\r\n new_x: new_x,\r\n new_y: new_y,\r\n new_w: new_w,\r\n new_h: new_h,\r\n };\r\n }\r\n\r\n // const selectedNodes1 = getNodes()?.filter(\r\n // (val) => val?.selected && val.type === \"uploadImage\"\r\n // );\r\n\r\n const selectedNodes11 = getNodes()?.filter((val) => val?.selected);\r\n const boundingClient = getNodesBounds(selectedNodes11);\r\n\r\n const [height, setHeight] = useState(boundingClient?.height);\r\n const [width, setWidth] = useState(boundingClient?.width);\r\n const [left, setLeft] = useState(boundingClient?.x);\r\n const [top, setTop] = useState(boundingClient?.y);\r\n\r\n useEffect(() => {\r\n const cropperInstance = cropperRef?.current?.cropper;\r\n const checkCropBox = () => {\r\n if (cropperInstance) {\r\n const cropBoxElement = cropperInstance.cropBox;\r\n if (cropBoxElement) {\r\n setLoading(false);\r\n } else {\r\n setTimeout(checkCropBox, 100);\r\n }\r\n }\r\n };\r\n\r\n if (cropperInstance) {\r\n checkCropBox();\r\n }\r\n }, [cropperRef?.current?.cropper]);\r\n\r\n useEffect(() => {\r\n setLeft(boundingClient?.x);\r\n setTop(boundingClient?.y);\r\n setWidth(boundingClient?.width);\r\n setHeight(boundingClient?.height);\r\n }, [boundingClient]);\r\n\r\n useEffect(() => {\r\n const uploadImageNodes = getNodes()?.filter(\r\n (node) => node.type === \"uploadImage\" && node?.selected\r\n );\r\n let smallerXNodes = boundingClient.x;\r\n let smallerYNodes = boundingClient.y;\r\n let smallerWidthNodes = boundingClient?.width;\r\n let smallerHeigthNodes = boundingClient?.height;\r\n uploadImageNodes.forEach((node) => {\r\n // if (node.data?.newPosition?.new_x < boundingClient?.x) {\r\n // smallerXNodes = node.data?.newPosition?.new_x;\r\n // smallerWidthNodes = boundingClient?.width\r\n // const add = boundingClient?.x - node.data?.newPosition?.new_x;\r\n // smallerWidthNodes += add;\r\n // }\r\n // if (node.data?.newPosition?.new_y > boundingClient?.y) {\r\n // const add = node.data?.newPosition?.new_y - boundingClient?.y;\r\n // const newY = boundingClient?.y - add;\r\n // smallerHeigthNodes = boundingClient?.height;\r\n // smallerYNodes = newY;\r\n // smallerHeigthNodes += add;\r\n // }\r\n if (\r\n node.data?.newPosition?.new_x + node.data?.newPosition?.new_w >\r\n boundingClient.x + boundingClient.width\r\n ) {\r\n smallerWidthNodes = boundingClient?.width;\r\n const add =\r\n node.data?.newPosition?.new_x +\r\n node.data?.newPosition?.new_w -\r\n (boundingClient.x + boundingClient.width);\r\n smallerWidthNodes = boundingClient.width + add;\r\n }\r\n if (\r\n node.data?.newPosition?.new_y + node.data?.newPosition?.new_h >\r\n boundingClient.y + boundingClient.height\r\n ) {\r\n smallerHeigthNodes = boundingClient?.height;\r\n const add =\r\n node.data?.newPosition?.new_y +\r\n node.data?.newPosition?.new_h -\r\n (boundingClient.y + boundingClient.height);\r\n smallerHeigthNodes = boundingClient.height + add - 50;\r\n }\r\n });\r\n\r\n setLeft(smallerXNodes);\r\n setTop(smallerYNodes);\r\n setWidth(smallerWidthNodes);\r\n setHeight(smallerHeigthNodes);\r\n }, [selectedNodes11]);\r\n\r\n return (\r\n <>\r\n {/* {getNodes()?.filter((val) => val.selected).length === 1 &&\r\n getNodes()?.some(\r\n (val) => val.type === \"uploadImage\" && val.selected\r\n ) && (\r\n \r\n )}\r\n {getNodes()?.filter((val) => val.selected).length > 1 &&\r\n selectedNodes1?.length > 0 && (\r\n \r\n )} */}\r\n\r\n {\r\n setShowDots(true);\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n }}\r\n >\r\n \r\n \r\n {node.selected && (\r\n <>\r\n {customize?.cropShape === \" \" && (\r\n \r\n \r\n \r\n {/* \r\n {node.data.filename.length > 20\r\n ? `${node.data.filename.slice(0, 17)}...`\r\n : node.data.filename.slice(\r\n 0,\r\n node.data.filename.lastIndexOf(\".\")\r\n ) || node.data.filename} */}\r\n 16\r\n // ? `${node.data.filename.slice(0, 16)}...`\r\n // : node.data.filename.slice(\r\n // 0,\r\n // node.data.filename.lastIndexOf(\".\")\r\n // ) || node.data.filename\r\n // }\r\n defaultValue={node.data.filename}\r\n onFocus={() => setIsInputFocused(true)}\r\n onBlur={() => setIsInputFocused(false)}\r\n onChange={(e) => handleChange(e)}\r\n autoComplete=\"off\"\r\n sx={{\r\n height: \"18px\",\r\n\r\n \"& .MuiOutlinedInput-root\": {\r\n border: \"none\",\r\n padding: \"0px\",\r\n height: \"100%\",\r\n overflow: \"hidden\",\r\n\r\n \"& fieldset\": {\r\n border: \"none\",\r\n },\r\n \"&:hover fieldset\": {\r\n border: \"none\",\r\n },\r\n \"&.Mui-focused fieldset\": {\r\n border: \"none\",\r\n },\r\n\r\n \"& .MuiInputBase-input\": {\r\n // paddingX: \"3px\",\r\n paddingLeft: \"3px\",\r\n paddingRight: isInputFocused ? \"3px\" : \"1px\",\r\n fontSize: \"14px\",\r\n fontWeight: \"400\",\r\n border: \"none\",\r\n height: \"18px\",\r\n width: \"120px\",\r\n whiteSpace: isInputFocused\r\n ? \"normal\"\r\n : \"nowrap\",\r\n overflow: isInputFocused ? \"visible\" : \"hidden\",\r\n textOverflow: isInputFocused\r\n ? \"clip\"\r\n : \"ellipsis !important\",\r\n },\r\n },\r\n }}\r\n />\r\n \r\n \r\n \r\n )}\r\n\r\n {!node?.data?.data?.locked && customize?.cropShape === \" \" && (\r\n \r\n )}\r\n {!node?.data?.data?.locked && (\r\n <>\r\n {\" \"}\r\n {node?.data?.fileType !== \"video\" &&\r\n customize?.cropShape === \" \" && (\r\n \r\n setReplaceImages(false)}\r\n open={replaceImage}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {\r\n dispatch(openImageandIcon(true));\r\n dispatch(isOpenImagesIcon(true));\r\n dispatch(setReplaceImageId(node?.id));\r\n dispatch(imageWHstate(nodeWH));\r\n setCropImg(false);\r\n setRedius(\"\");\r\n setReplaceImages(false);\r\n }}\r\n >\r\n \r\n {\" \"}\r\n \r\n \r\n Replace from library\r\n \r\n \r\n \r\n \r\n \r\n \r\n setReplaceImages(false)}\r\n >\r\n \r\n\r\n \r\n Upload from device\r\n \r\n \r\n \r\n {/* \r\n \r\n Upload from device\r\n */}\r\n \r\n \r\n {\r\n setShowImageviaUrlModal(true);\r\n setCustomize({\r\n ...customize,\r\n imagePreview: node?.data?.Label,\r\n });\r\n setImageDimensions({\r\n width: null,\r\n height: null,\r\n });\r\n setReplaceImages(false);\r\n setCropImg(false);\r\n setRedius(\"\");\r\n }}\r\n >\r\n \r\n \r\n \r\n Upload via URL\r\n \r\n \r\n \r\n \r\n }\r\n >\r\n {\r\n e.stopPropagation();\r\n setReplaceImages(!replaceImage);\r\n setShowFontSizeOpt(false);\r\n setCropImg(false);\r\n setShowLinkMoreOptions(false);\r\n setShowBgColor(false);\r\n setShowReaction(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {node?.data?.fileType !== \"video\" &&\r\n customize?.cropShape === \" \" && (\r\n \r\n setShowFontSizeOpt(false)}\r\n open={showFontSizeOpt}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {\r\n setCustomize((prevCustomize) => ({\r\n ...prevCustomize,\r\n flipHorizontal:\r\n !prevCustomize.flipHorizontal,\r\n }));\r\n // setTimeout(() => {\r\n // setCustomize((prevCustomize) => ({\r\n // ...prevCustomize,\r\n // flipHorizontal: true,\r\n // }));\r\n // }, 200);\r\n let updatedNodes;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((node1) => {\r\n if (node1.id === node?.id) {\r\n return {\r\n ...node1,\r\n data: {\r\n ...node1.data,\r\n flipHorizontal:\r\n !node1.data.flipHorizontal,\r\n flipVertical:\r\n node1.data.flipVertical,\r\n },\r\n };\r\n }\r\n return node1;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(\r\n updatedNodes,\r\n getEdges()\r\n );\r\n setShowFontSizeOpt(false);\r\n setFlipShow(false);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n\r\n \r\n Flip Horizontal\r\n \r\n \r\n {\r\n setCustomize((prevCustomize) => ({\r\n ...prevCustomize,\r\n flipVertical: !prevCustomize.flipVertical,\r\n }));\r\n\r\n // setTimeout(() => {\r\n // setCustomize((prevCustomize) => ({\r\n // ...prevCustomize,\r\n // flipVertical: true,\r\n // }));\r\n // }, 200);\r\n let updatedNodes;\r\n setNodes((nds) => {\r\n updatedNodes = nds.map((node1) => {\r\n if (node1.id === node?.id) {\r\n return {\r\n ...node1,\r\n data: {\r\n ...node1.data,\r\n flipHorizontal:\r\n node1.data.flipHorizontal,\r\n flipVertical:\r\n !node1.data.flipVertical,\r\n },\r\n };\r\n }\r\n return node1;\r\n });\r\n return updatedNodes;\r\n });\r\n debouncedUpdateJson(\r\n updatedNodes,\r\n getEdges()\r\n );\r\n setShowFontSizeOpt(false);\r\n setFlipShow(false);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n gap: \"14px\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n \r\n Flip Vertical\r\n \r\n \r\n \r\n }\r\n >\r\n {\r\n e.stopPropagation();\r\n setShowFontSizeOpt(!showFontSizeOpt);\r\n setReplaceImages(false);\r\n setCropImg(false);\r\n setShowLinkMoreOptions(false);\r\n setShowBgColor(false);\r\n setShowReaction(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {customize?.cropShape === \" \" && (\r\n \r\n \r\n handleFileExport()}\r\n >\r\n {loadingDownload ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n {node?.data?.fileType !== \"video\" && (\r\n \r\n setCropImg(false)}\r\n open={cropImg}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n \r\n {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \"custom\",\r\n imagePreview: node?.data?.Label,\r\n });\r\n setCropImg(false);\r\n setNodes((nds) =>\r\n nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n // width:\r\n // imageDimensions.width !== null\r\n // ? imageDimensions.width\r\n // : node?.data?.width,\r\n // height:\r\n // imageDimensions.height !== null\r\n // ? imageDimensions.height\r\n // : node?.data?.height,\r\n // : node?.data?.height,\r\n width:\r\n imageDimensions.width !== null\r\n ? imageDimensions.width\r\n : node?.data?.imageWidth,\r\n height:\r\n imageDimensions.height !== null\r\n ? imageDimensions.height\r\n : node?.data?.imageHeigth,\r\n data: {\r\n ...n.data,\r\n cropShape: \"custom\",\r\n Label: node?.data?.originalUrl,\r\n flipUrl: node?.data?.originalUrl,\r\n redius: \"\",\r\n scale: false,\r\n original: false,\r\n // width:\r\n // imageDimensions.width !== null\r\n // ? imageDimensions.width\r\n // : node?.data?.width,\r\n // height:\r\n // imageDimensions.height !== null\r\n // ? imageDimensions.height\r\n // : node?.data?.height,\r\n // : node?.data?.height,\r\n width:\r\n imageDimensions.width !== null\r\n ? imageDimensions.width\r\n : node?.data?.imageWidth,\r\n height:\r\n imageDimensions.height !== null\r\n ? imageDimensions.height\r\n : node?.data?.imageHeigth,\r\n },\r\n style: {\r\n // width:\r\n // imageDimensions.width !== null\r\n // ? imageDimensions.width\r\n // : node?.data?.width,\r\n // height:\r\n // imageDimensions.height !== null\r\n // ? imageDimensions.height\r\n // : node?.data?.height,\r\n // : node?.data?.height,\r\n width:\r\n imageDimensions.width !== null\r\n ? imageDimensions.width\r\n : node?.data?.imageWidth,\r\n height:\r\n imageDimensions.height !== null\r\n ? imageDimensions.height\r\n : node?.data?.imageHeigth,\r\n },\r\n };\r\n }\r\n return n;\r\n })\r\n );\r\n\r\n setRedius(\"\");\r\n // setLoading(true);\r\n }}\r\n // sx={{\r\n // cursor: \"pointer\",\r\n // borderRadius: \"8px\",\r\n // height: \"36px\",\r\n // transition: \"all 0.3s ease\",\r\n // \"&:hover\": {\r\n // backgroundColor: \"#F5F5F5\",\r\n\r\n // color: \"#1976d2\",\r\n // },\r\n // }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n Custom\r\n \r\n \r\n {customize?.cropShape === \" \" && (\r\n {\r\n setCustomize({\r\n ...customize,\r\n imagePreview: node?.data?.originalUrl,\r\n flipHorizontal: false,\r\n flipVertical: false,\r\n });\r\n\r\n setNodes((nds) => {\r\n const updatedNodes = nds.map((n) => {\r\n if (n?.id === node?.id) {\r\n return {\r\n ...n,\r\n width: node?.data?.imageWidth,\r\n height: node?.data?.imageHeigth,\r\n data: {\r\n ...n.data,\r\n original: true,\r\n flipUrl: node?.data?.originalUrl,\r\n width: node?.data?.imageWidth,\r\n height: node?.data?.imageHeigth,\r\n scale: false,\r\n cropShape: \"\",\r\n },\r\n style: {\r\n width: node?.data?.imageWidth,\r\n height: node?.data?.imageHeigth,\r\n },\r\n };\r\n }\r\n return n;\r\n });\r\n let parsedData = {};\r\n if (user_data) {\r\n parsedData = JSON.parse(user_data);\r\n }\r\n const search = new URLSearchParams(\r\n location.search\r\n );\r\n const a_id = search.get(\"a_id\");\r\n updateJson({\r\n json: {\r\n architecture_json: {\r\n nodes: updatedNodes,\r\n // edges: edges,\r\n lastUpdatedBy: parsedData?.user_id,\r\n },\r\n },\r\n id,\r\n dispatch,\r\n undo,\r\n a_id,\r\n takeSnapshot,\r\n });\r\n return updatedNodes;\r\n });\r\n setImageDimensions({\r\n width: null,\r\n height: null,\r\n });\r\n\r\n setCropImg(false);\r\n setRedius(\"\");\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n {/* */}\r\n \r\n {\" \"}\r\n \r\n \r\n\r\n \r\n Original\r\n \r\n \r\n )}\r\n \r\n {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \"circle\",\r\n imagePreview: node?.data?.Label,\r\n });\r\n setRedius(\"circle\");\r\n\r\n setCropImg(false);\r\n // setLoading(true);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n Circle\r\n \r\n \r\n\r\n {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \"square\",\r\n imagePreview: node?.data?.Label,\r\n });\r\n\r\n setCropImg(false);\r\n\r\n setRedius(\"\");\r\n\r\n // setLoading(true);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n {\" \"}\r\n \r\n \r\n\r\n \r\n Square\r\n \r\n \r\n {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \"portrait\",\r\n imagePreview: node?.data?.Label,\r\n });\r\n\r\n setCropImg(false);\r\n setRedius(\"\");\r\n // setLoading(true);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n {\" \"}\r\n \r\n \r\n\r\n \r\n Portrait (3:4)\r\n \r\n \r\n {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \"landscape\",\r\n imagePreview: node?.data?.Label,\r\n });\r\n\r\n setCropImg(false);\r\n setRedius(\"\");\r\n // setLoading(true);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n Landscape (4:3)\r\n \r\n \r\n {\r\n setCustomize({\r\n ...customize,\r\n cropShape: \"wide\",\r\n imagePreview: node?.data?.Label,\r\n });\r\n setCropImg(false);\r\n\r\n setRedius(\"\");\r\n // setLoading(true);\r\n }}\r\n sx={{\r\n cursor: \"pointer\",\r\n borderRadius: \"8px\",\r\n transition: \"all 0.3s ease\",\r\n color: \"black\",\r\n height: \"36px\",\r\n paddingX: \"8px\",\r\n\r\n \"&:hover\": {\r\n backgroundColor: \"#F5F5F5\",\r\n },\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n Wide (16:9)\r\n \r\n \r\n \r\n }\r\n >\r\n {\r\n // flipImage(\r\n // node.data.flipUrl,\r\n // customize?.flipHorizontal,\r\n // customize?.flipVertical\r\n // ).then((url) => {\r\n // setNodes((nds) =>\r\n // nds.map((n) =>\r\n // n.id === node.id\r\n // ? {\r\n // ...n,\r\n // data: {\r\n // ...n.data,\r\n // flipUrl: url,\r\n // flipHorizontal:\r\n // customize?.flipHorizontal,\r\n // flipVertical:\r\n // customize?.flipVertical,\r\n // },\r\n // }\r\n // : n\r\n // )\r\n // );\r\n // });\r\n e.stopPropagation();\r\n setCropImg(!cropImg);\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setShowLinkMoreOptions(false);\r\n setShowBgColor(false);\r\n setShowReaction(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}{\" \"}\r\n {customize?.cropShape === \" \" && (\r\n \r\n )}\r\n \r\n )}\r\n {!node?.data?.data?.locked && customize?.cropShape === \" \" && (\r\n setShowBgColor(false)}\r\n ref={borderPopupRef}\r\n >\r\n \r\n setShowBgColor(false)}\r\n open={showBgColor}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={}\r\n >\r\n \r\n \r\n {\r\n setShowBgColor(!showBgColor);\r\n setCropImg(false);\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setShowLinkMoreOptions(false);\r\n setShowReaction(false);\r\n }}\r\n >\r\n {/* */}\r\n {node?.data?.showBorder ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {customize?.cropShape === \" \" && (\r\n \r\n )}\r\n\r\n {!node?.data?.data?.locked && customize?.cropShape === \" \" && (\r\n <>\r\n \r\n setShowReaction(false)}\r\n >\r\n {\r\n setShowReaction(!showReaction);\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setCropImg(false);\r\n setShowLinkMoreOptions(false);\r\n setShowBgColor(false);\r\n }}\r\n >\r\n setShowReaction(false)}\r\n open={showReaction}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n {\r\n e.stopPropagation();\r\n }}\r\n onWheelCapture={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n {\r\n addEmoji(node?.id, emoji);\r\n }}\r\n />\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n handleClickTag(e);\r\n setShowReaction(false);\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setCropImg(false);\r\n setShowLinkMoreOptions(false);\r\n setShowBgColor(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {customize?.cropShape === \" \" && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {customize?.cropShape === \" \" && (\r\n \r\n )}\r\n {customize?.cropShape === \" \" && (\r\n \r\n \r\n \r\n {node?.data?.data?.locked ? (\r\n // \r\n \r\n ) : (\r\n // \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n {!node?.data?.data?.locked && customize?.cropShape === \" \" && (\r\n <>\r\n \r\n \r\n \r\n \r\n {/* */}\r\n {!node?.data?.imageShow ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {\" \"}\r\n \r\n )}\r\n {customize?.cropShape === \" \" && (\r\n <>\r\n \r\n \r\n setShowLinkMoreOptions(false)}\r\n open={showLinkMoreOptions}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n handleHideImage()}\r\n handleClickOriginalImage={() =>\r\n handleClickOriginalImage()\r\n }\r\n handleClickDownload={() => handleFileExport()}\r\n />\r\n }\r\n >\r\n \r\n \r\n {\r\n setShowLinkMoreOptions(!showLinkMoreOptions);\r\n setCropImg(false);\r\n setReplaceImages(false);\r\n setShowFontSizeOpt(false);\r\n setShowBgColor(false);\r\n setShowReaction(false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n\r\n {node?.selected &&\r\n !showExport &&\r\n customize?.cropShape === \" \" &&\r\n !node?.data?.data?.locked &&\r\n !isMultiNodeSelected &&\r\n !isNodeSelectionStarted &&\r\n !copyAsImage && (\r\n <>\r\n {!node?.data?.locked && (\r\n onResizeEnd(e, node)}\r\n onResize={(e) => {\r\n handleResize();\r\n }}\r\n />\r\n )}\r\n onResizeEnd(e, node)}\r\n onResize={onResize}\r\n onResizeStart={onResizeStart}\r\n minWidth={100}\r\n minHeight={100}\r\n >\r\n \r\n \r\n setIsResizing(true)}\r\n // keepAspectRatio={true}\r\n position=\"bottom-left\"\r\n onResizeEnd={(e) => onResizeEnd(e, node)}\r\n onResize={onResize}\r\n onResizeStart={onResizeStart}\r\n minWidth={100}\r\n minHeight={100}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n onResize={onResize}\r\n onResizeStart={onResizeStart}\r\n minWidth={100}\r\n minHeight={100}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n onResize={onResize}\r\n onResizeStart={onResizeStart}\r\n minWidth={100}\r\n minHeight={100}\r\n >\r\n \r\n \r\n \r\n )}\r\n\r\n {!node?.dragging &&\r\n !showExport &&\r\n !isItemToSmall &&\r\n !node.data.locked &&\r\n !copyAsImage &&\r\n !isDownload &&\r\n customize?.cropShape === \" \" && (\r\n <>\r\n console.log(\"handle onConnect\", params)}\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"left\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isOnlyOneNodeSelected) && (\r\n \r\n )}\r\n \r\n console.log(\"handle onConnect\", params)}\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"right\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isOnlyOneNodeSelected) && (\r\n \r\n )}\r\n \r\n {\r\n setShowDots(true);\r\n setHoveredItem(\"top\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isOnlyOneNodeSelected) && (\r\n \r\n )}\r\n \r\n console.log(\"handle onConnect\", params)}\r\n onMouseOver={() => {\r\n setShowDots(true);\r\n setHoveredItem(\"bottom\");\r\n }}\r\n onMouseLeave={() => {\r\n setShowDots(false);\r\n setHoveredItem(\"\");\r\n }}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n }}\r\n >\r\n {(!isNodeSelectionStarted || isOnlyOneNodeSelected) && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n {loading && node?.data?.fileType !== \"video\" && (\r\n \r\n \r\n \r\n )}\r\n\r\n {cropLoader && (\r\n \r\n \r\n \r\n )}\r\n\r\n {customize?.cropShape !== \" \" && !cropLoader && (\r\n
\r\n \r\n
\r\n )}\r\n {customize?.cropShape === \" \" && node?.data?.Label !== \"loading\" && (\r\n \r\n {node?.data?.fileType !== \"video\" ? (\r\n <>\r\n {\r\n setLoading(false);\r\n setCropLoader(false);\r\n }}\r\n crossOrigin=\"anonymous\"\r\n onError={() => {\r\n setLoading(false);\r\n setCropLoader(false);\r\n }}\r\n alt=\"Drawing\"\r\n width={\"100%\"}\r\n height={\"100%\"}\r\n style={{\r\n objectFit: \"cover\",\r\n transform: `scale(${\r\n customize?.flipHorizontal && !flipShow ? -1 : 1\r\n }, ${customize?.flipVertical && !flipShow ? -1 : 1})`,\r\n\r\n transition: \"transform 0.3s ease\",\r\n // minHeight: \"50px\",\r\n // minWidth: \"50px\",\r\n borderRadius:\r\n node?.data?.cropShape === \"circle\" || redius === \"circle\"\r\n ? \"50%\"\r\n : \"0\",\r\n border:\r\n !loading &&\r\n node?.data?.showBorder &&\r\n node?.data?.imageShow === true\r\n ? `${borderWidth}px ${borderStyle} ${newBorderColor}`\r\n : \"0px solid transparent\",\r\n }}\r\n />\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n {/* \r\n {node.selected &&\r\n !node.data.locked &&\r\n !node.data.locked &&\r\n !showExport &&\r\n !copyAsImage &&\r\n customize?.cropShape === \" \" &&\r\n !isNodeSelectionStarted && (\r\n \r\n \r\n \r\n )}\r\n */}\r\n {customize?.cropShape === \" \" &&\r\n node?.data?.Label !== \"loading\" &&\r\n node?.data?.emoji &&\r\n !copyAsImage &&\r\n node?.data?.imageShow === true &&\r\n node?.data?.emoji.length > 0 && (\r\n \r\n \r\n \r\n {Object.values(emojiCount)\r\n .slice(0, showAllEmojis ? emojiCount.length : maxEmojis)\r\n .map((emoji, i) => (\r\n \r\n \r\n \r\n {emoji.count}\r\n \r\n \r\n ))}\r\n\r\n {!showAllEmojis && node?.data?.emoji.length > maxEmojis && (\r\n setShowAllEmojis(true)}\r\n >\r\n \r\n \r\n )}\r\n setShowReactionBottom(!showReactionBottom)}\r\n sx={{\r\n pointerEvents: node?.data?.data?.locked ? \"none\" : \"all\",\r\n cursor: \"pointer !important\",\r\n }}\r\n >\r\n setShowReactionBottom(false)}\r\n open={showReactionBottom}\r\n disableFocusListener\r\n disableHoverListener\r\n disableTouchListener\r\n title={\r\n {\r\n e.stopPropagation();\r\n }}\r\n onWheelCapture={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n {\r\n addEmoji(node?.id, emoji);\r\n }}\r\n />\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {customize?.cropShape === \" \" &&\r\n node?.data?.Label !== \"loading\" &&\r\n customize?.tag &&\r\n !copyAsImage &&\r\n node?.data?.imageShow === true &&\r\n customize?.tag?.length > 0 && (\r\n \r\n \r\n {node?.data?.tag?.length > 0 &&\r\n node.data?.tag\r\n .slice(0, showAllTags ? node?.data?.tag.length : maxTags)\r\n .map((val, index) => {\r\n const backgroundColor = val.color\r\n ? hexToRgba(val.color, 0.9)\r\n : \"gray\";\r\n const textColor =\r\n val.color && isColorLight(val.color) ? \"#333\" : \"#FFF\";\r\n\r\n return (\r\n \r\n {val.name.length > 12\r\n ? `${val.name.slice(0)}...`\r\n : val.name}\r\n \r\n );\r\n })}\r\n\r\n {!showAllTags &&\r\n customize?.tag &&\r\n customize?.tag?.length > maxTags && (\r\n setShowAllTags(true)}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n {node?.selected &&\r\n !showExport &&\r\n !copyAsImage &&\r\n customize?.cropShape === \" \" &&\r\n !node?.data?.data?.locked &&\r\n !isMultiNodeSelected &&\r\n !isNodeSelectionStarted && (\r\n <>\r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 99,\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 99,\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 99,\r\n }}\r\n >\r\n \r\n \r\n onResizeEnd(e, node)}\r\n style={{\r\n zIndex: 99,\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n setOpenTag(false)}\r\n anchorOrigin={{\r\n vertical: \"bottom\",\r\n horizontal: \"center\",\r\n }}\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"center\",\r\n }}\r\n sx={{\r\n \"& .MuiPaper-root\": {\r\n ml: \"-10px\",\r\n width: 277,\r\n mt: \"15px\",\r\n // top:\"790px !important\",\r\n // left:\"634px !important\",\r\n boxShadow: \"none\",\r\n bgcolor: \"transparent\",\r\n },\r\n }}\r\n BackdropProps={{\r\n style: { backgroundColor: \"transparent\" },\r\n onClick: () => setOpenTag(false),\r\n }}\r\n >\r\n \r\n {!editTagValue && (\r\n {\r\n setNewTag(e.target.value);\r\n setError(false);\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.key === \"Enter\") {\r\n handleAddTag();\r\n }\r\n }}\r\n error={error}\r\n helperText={error ? \"You can add a maximum of 8 tags.\" : \"\"}\r\n fullWidth\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n padding: \"1px\",\r\n borderBottom: \"2px solid #EEEEEE\",\r\n\r\n \"& fieldset\": {\r\n border: \"none\",\r\n },\r\n \"&:hover fieldset\": {},\r\n \"&.Mui-focused fieldset\": {},\r\n \"& .MuiInputBase-input::placeholder\": {\r\n color: \"#959BA3\",\r\n },\r\n \"& .MuiInputBase-input\": {\r\n width: \"100%\",\r\n border: \"none\",\r\n padding: \"8px\",\r\n lineHeight: \"20px\",\r\n fontSize: \"12px !important\",\r\n fontWeight: \"400 !important\",\r\n },\r\n },\r\n }}\r\n />\r\n )}\r\n \r\n {editTagValue && (\r\n {\r\n setEditTagValue(e.target.value);\r\n setError(false);\r\n }}\r\n fullWidth\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n padding: \"1px\",\r\n borderBottom: \"2px solid #EEEEEE\",\r\n\r\n \"& fieldset\": {\r\n border: \"none\",\r\n },\r\n \"&:hover fieldset\": {},\r\n \"&.Mui-focused fieldset\": {},\r\n \"& .MuiInputBase-input::placeholder\": {\r\n color: \"#959BA3\",\r\n },\r\n \"& .MuiInputBase-input\": {\r\n width: \"100%\",\r\n border: \"none\",\r\n padding: \"8px\",\r\n lineHeight: \"20px\",\r\n fontSize: \"12px !important\",\r\n fontWeight: \"400 !important\",\r\n },\r\n },\r\n }}\r\n />\r\n )}\r\n {editTagValue && (\r\n handleSaveEdit(editTagIndex)}\r\n sx={{\r\n backgroundColor: \"none\",\r\n color: \"blue\",\r\n padding: \"2px\",\r\n fontSize: \"12px\",\r\n borderRadius: \"8px\",\r\n textTransform: \"none\",\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n backgroundColor: \"none\",\r\n },\r\n }}\r\n >\r\n Save\r\n \r\n )}\r\n \r\n \r\n {customize?.tag?.length > 0 &&\r\n customize?.tag?.map((val, index) => (\r\n \r\n \r\n {val.name.length > 12\r\n ? `${val.name.slice(0, 12)}...`\r\n : val.name}\r\n \r\n handleEditTag(index, val.name)}\r\n sx={{\r\n padding: \"0px\",\r\n marginLeft: \"4px\",\r\n }}\r\n >\r\n \r\n \r\n handleRemoveTag(index)}\r\n sx={{\r\n padding: \"0px\",\r\n marginLeft: \"4px\",\r\n }}\r\n >\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {showImageviaUrlModal && (\r\n {\r\n setShowImageviaUrlModal(false);\r\n }}\r\n node={node}\r\n nodeWH={nodeWH}\r\n uploadViaUrl={setCustomize}\r\n open={showImageviaUrlModal}\r\n />\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default memo(UploadImage, (prevProps, nextProps) => {\r\n return prevProps.data.globalDragging && nextProps.data.globalDragging;\r\n});\r\n"],"names":["UploadImage","node","_node$data","_node$data$border","_node$data2","_node$data2$border","_node$data3","_node$data3$border","_node$data4","_node$data4$border","_node$data5","_node$data5$data","_node$data6","_node$data7","_node$data8","_node$data9","_node$data10","_node$data11","_node$data12","_node$data13","_nodeWH$style","_nodeWH$style2","_node$data15","_getNodes2","_node$data21","_getNodes3","_getNodes4","_getNodes4$filter","_getNodes5","_cropperRef$current3","_node$data58","_node$data59","_node$data60","_node$data60$data","_node$data61","_node$data61$data","_node$data62","_node$data64","_node$data65","_node$data88","_node$data88$data","_node$data89","_node$data90","_node$data90$border","_node$data91","_node$data91$data","_node$data92","_node$data92$data","_node$data93","_node$data93$data","_node$data94","_node$data94$data","_node$data95","_node$data96","_imageData1$current","_imageData1$current2","_node$data97","_node$data97$data","_node$data98","_node$data99","_node$data100","_node$data101","_node$data102","_node$data103","_node$data104","_node$data104$data","_node$data105","_node$data105$data","_node$data106","_node$data107","_node$data108","_node$data109","_node$data110","_node$data111","_node$data112","_node$data113","_node$data114","_node$data115","_node$data116","_node$data117","_node$data118","_node$data118$data","_node$data119","_node$data120","_customize$tag2","_node$data121","_node$data121$emoji","_node$data122","_node$data122$tag","_node$data123","_node$data124","_customize$tag3","_node$data125","_node$data125$data","_customize$tag4","_customize$tag5","id","useParams","user_data","localStorage","getItem","imageData","useRef","imageData1","showExport","copyAsImage","isDownload","permission","useSelector","state","mindMapStore","showFontSizeOpt","setShowFontSizeOpt","useState","borderWidth","data","border","width","borderStyle","type","borderColor","opacity","isNodeSelectionStarted","useNodeSelectionStarted","selected","loading","setLoading","cropLoader","setCropLoader","loadingDownload","setLoadingDownload","showReactionBottom","setShowReactionBottom","hoveredItem","setHoveredItem","showDots","setShowDots","showLinkMoreOptions","setShowLinkMoreOptions","replaceImage","setReplaceImages","frameMoreOptionsRef","store","useStoreApi","cropImg","setCropImg","cropperRef","redius","setRedius","showBgColor","setShowBgColor","location","useLocation","showAllEmojis","setShowAllEmojis","showAllTags","setShowAllTags","showImageviaUrlModal","setShowImageviaUrlModal","socket","useSocketContext","userRowData","userDataLocal","JSON","parse","customize","setCustomize","imagePreview","Label","URL","createObjectURL","description","Description","cropShape","CropShape","ImageSize","locked","flipHorizontal","flipVertical","rotationAngle","tag","flipShow","setFlipShow","crop","showReaction","setShowReaction","newTag","setNewTag","error","setError","editTagIndex","setEditTagIndex","editTagValue","setEditTagValue","openTag","setOpenTag","React","anchorElTag","setAnchorElTag","isInputFocused","setIsInputFocused","idTag","Boolean","undefined","containerRef","borderPopupRef","cropRef","flipRef","reactionRef","replaceRef","architectureId","setNodes","getNodes","getIntersectingNodes","getNode","getEdges","useReactFlow","dispatch","useDispatch","undo","takeSnapshot","useUndoRedo","isResizing","nodeWH","isItemToSmall","isWidthLessthan25","isWidthLessthan50","isWidthLessthan100","useZoomPercentages","isOnlyOneNodeSelected","filter","n","length","newWh","setNewWh","style","height","useEffect","nodeRotating","rotateControlRef","updateNodeInternals","useUpdateNodeInternals","current","selection","select","dragHandler","drag","on","evt","_nodeWH$style3","_nodeWH$style4","dx","x","dy","y","deg","Math","atan2","PI","original","xPos","yPos","w","h","rotated","rad","center_x","center_y","new_x","cos","sin","new_y","new_w","abs","new_h","rotateDiv","nodes","map","nd","_objectSpread","omit","rotation","newPosition","RotateNodes","call","async","_parsedData","updatedNodes","parsedData","a_id","URLSearchParams","search","get","updateJson","json","architecture_json","lastUpdatedBy","user_id","hexToRgba","hex","bigint","parseInt","replace","g","b","concat","randomColor","colors","floor","random","_getNodes","_getNodes$filter","filteredNodes1","parentNode","val","_node$data14","includes","zIndex","imageShow","onResizeStart","_node$data16","isOrgChartFrame","prev","_nd$data4","rootFrameId","previousWidth","previousHeight","previousPosition","position","previousPositionAbsolute","positionAbsolute","onResize","e","params","_node$data17","_node$data18","_node$data19","heightScale","widthScale","_nd$data5","addEmoji","Id","emoji","_n$data","_n$data$emoji","_n$data3","existingEmojiIndex","findIndex","unified","userId","userData","_n$data2","_n$data2$emoji","_","index","setItem","stringify","lastEvent","debouncedUpdateJson","maxEmojis","maxTags","emojiD","reduce","acc","comment","_comment$data","_comment$data$emoji","forEach","imageUrl","count","emojiCount","Object","values","imageDimensions","setImageDimensions","newBorderColor","adjustOpacity","rgba","newOpacity","parts","match","_node$data20","socketEvents","NODE_UPDATED","_jsonData$nodes","jsonData","currData","find","_currData$data","_currData$data2","_currData$data3","_currData$data4","_currData$data5","_currData$data6","_currData$data7","_currData$data8","_currData$data9","_currData$data10","onResizeEnd","event","_parsedData5","nds","scale","updatedNode","_parsedData4","_updatedNodes","_ref","_imageData$current","_imageData$current2","Number","offsetWidth","offsetHeight","_groupNode","_groupNode2","_groupNode3","_groupNode4","intersections","groupNode","_store$getState","_store$getState$nodeI","getState","nodeInternals","_n$position","_parentNode$positionA","_parentNode$positionA2","_n$position2","_parentNode$positionA3","_parentNode$positionA4","tempNode","expandParent","push","_n2","_groupNode5","_node$positionAbsolut","_groupNode6","_groupNode6$positionA","_node$positionAbsolut2","_groupNode7","_groupNode7$positionA","_n3","structuredClone","_n","className","_getNodePositionInsid","getNodePositionInsideParent","useCallback","debounce","tempNodes","updatedEdges","_parsedData6","edges","common","getTimeDifference","commentTimestamp","currentTime","Date","now","differenceInMs","handleHideImage","_parsedData8","_node$data32","handleFileExport","_node$data33","_node$data33$filename","_node$data34","_node$data34$filename","_node$data35","_node$data35$filename","dataUrl","format","filename","endsWith","fontEmbedCSS","generateFontEmbedCss","toSvg","skipFonts","skipAutoScale","quality","toJpeg","_node$data36","fileType","_node$data37","response","fetch","url","blob","createUrlForVideo","slice","lastIndexOf","toPng","link","document","createElement","href","download","click","_cropperRef$current","_parsedData9","querySelector","_node$data38","_node$data39","_node$data40","_node$data41","_node$data42","_node$data43","_node$data44","imageWidth","imageHeigth","originalUrl","cropper","setAspectRatio","getAspectRatio","_node$data45","_node$data46","_node$data47","NaN","seletedNode","handleCrop","croppedCanvas","getCroppedCanvas","croppedDataURL","toDataURL","cropBoxElement","cropBox","then","res","file","File","formData","FormData","append","_cropBoxElement$style","_cropBoxElement$style2","_imageUploadResponse$","imageUploadResponse","commanService","uploadApi","_imageUploadResponse$2","_imageUploadResponse$3","_imageUploadResponse$4","_parsedData10","handleClickOutside","contains","target","cropImage","_node$data48","_node$data48$filename","_cropBoxElement$style3","_cropBoxElement$style4","divElement","_parsedData11","flipUrl","_cropBoxElement$style5","_cropBoxElement$style6","_imageUploadResponse$5","finally","_imageUploadResponse$12","_imageUploadResponse$13","_imageUploadResponse$14","_parsedData12","_imageUploadResponse$6","_imageUploadResponse$7","_imageUploadResponse$8","_imageUploadResponse$9","_imageUploadResponse$10","_imageUploadResponse$11","_node$data49","_parsedData13","getRootProps","getInputProps","useDropzone","onDrop","files","reader","FileReader","readAsDataURL","onload","base64String","result","img","Image","src","aspectRatio","_parsedData14","_n$style","_n$style2","_n$style3","_n$style4","_n$style5","_n$style6","originalWidth","originalHeigth","onerror","handleKeyPress","key","stopPropagation","reactFlowPane","addEventListener","removeEventListener","handleInputChange","newNodes","value","selectedNodes","isMultiNodeSelected","useMemo","selectedNodes11","boundingClient","getNodesBounds","setHeight","setWidth","left","setLeft","top","setTop","_cropperRef$current2","cropperInstance","checkCropBox","setTimeout","_getNodes6","uploadImageNodes","smallerXNodes","smallerYNodes","smallerWidthNodes","smallerHeigthNodes","_node$data50","_node$data50$newPosit","_node$data51","_node$data51$newPosit","_node$data54","_node$data54$newPosit","_node$data55","_node$data55$newPosit","_node$data52","_node$data52$newPosit","_node$data53","_node$data53$newPosit","add","_node$data56","_node$data56$newPosit","_node$data57","_node$data57$newPosit","_jsxs","_Fragment","children","Box","sx","transform","pointerEvents","onMouseOver","onMouseLeave","_jsx","NodeToolbar","isVisible","dragging","marginTop","Position","Top","display","gap","p","bgcolor","boxShadow","borderRadius","alignItems","justifyContent","alignContent","CustomNameTooltip","placement","arrow","padding","title","minWidth","TextField","defaultValue","onFocus","onBlur","onChange","handleChange","autoComplete","overflow","paddingLeft","paddingRight","fontSize","fontWeight","whiteSpace","textOverflow","CommonDivider","my","orientation","variant","flexItem","ref","CustomTooltip","mt","PopperProps","disablePortal","onClose","open","disableFocusListener","disableHoverListener","disableTouchListener","Stack","flexDirection","direction","paddingX","transition","cursor","onClick","openImageandIcon","isOpenImagesIcon","setReplaceImageId","imageWHstate","IcImageOutlined","Typography","lineHeight","color","IcLaptop","_node$data63","IcLinkOutlined3","ToolTipWithDisabled","tooltipTitle","disabled","IconButton","background","IcReplaceImageFile","onMouseDown","prevCustomize","node1","backgroundColor","IcFlipHorizotal","IcFlipVertical","marginRight","SimpleCircularProgress","size","IcImageDownload","_node$data66","_node$data67","_node$data68","_node$data69","_node$data70","_node$data71","_node$data72","_node$data73","_node$data74","marginLeft","IcCustom","letterSpacing","_node$data75","_parsedData15","_node$data76","_node$data77","_node$data78","_node$data79","_node$data80","_node$data81","_node$data82","IcOriginal","borderBottom","marginBottom","_node$data83","IcCircle","_node$data84","IcSquare","_node$data85","IcPortails","_node$data86","IcRectangle","_node$data87","IcWide","IcImageCrop","ClickAwayListener","onClickAway","FrameBorderToolbar","showBorder","IcBorderStyle","onWheelCapture","EmojiPicker","onEmojiClick","IcSmileHappyPlus","currentTarget","previousOpen","IcTagOutlined","handleAddComment","widthN","heightN","timeNow","newComment","label","timestamp","replyData","maxPosition","new","resolved","read","replyTimeStamp","outline","selectable","prevNodes","_parsedData7","_node$data22","finalUpdatedNodes","IcMessageOneBubbleOutlined","toggleLockUnlock","_parsedData3","_parsedData2","_nd$data","_nd$data2","_nd$data3","_nd$data3$data","IcLockLocked","IcLockUnLocked","IcEyeOpen","fill","IcHideImg","FrameMoreMenus","simpleRef","showRename","showDuplicate","showCopyAsImage","showAddComment","showLockUnlock","showCopyLink","exportShow","showLinkTo","saveFile","originalSize","hideImage","showDelete","showFrame","showBringToFrontAndBack","setShowFrameMoreOptions","handleClickOriginalImage","_node$data23","_node$data24","_node$data25","_node$data26","_node$data27","_node$data28","_node$data29","_node$data30","_node$data31","handleClickDownload","IcMenuDotsVertical","NodeResizer","minHeight","NodeResizeControl","primaryColor","Handle","connectionMode","isConnectable","maxWidth","maxHeight","onConnect","preventDefault","right","bottom","CircularProgress","Cropper","crossOrigin","preview","zoomable","initialAspectRatio","checkOrientation","minCropBoxHeight","minCropBoxWidth","responsive","guides","autoCropArea","viewMode","s3AssetsUrl","onLoad","onError","alt","objectFit","controls","handleClickAway","flexWrap","i","IcPlus2","textColor","rgb","isColorLight","paddingY","name","keepAspectRatio","Popover","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","ml","BackdropProps","placeholder","onKeyDown","handleAddTag","_customize$tag","trim","updatedTags","helperText","fullWidth","idx","handleSaveEdit","textTransform","handleEditTag","EditIcon","handleRemoveTag","CancelIcon","UploadViaUrl","handleClose","uploadViaUrl","VotingCommon","memo","prevProps","nextProps","globalDragging"],"sourceRoot":""}