{"version":3,"file":"js/client-bundle-a36b875edb3350e0f5a4.js","mappings":"oIAAA,IAAIA,EAAM,CACT,2BAA4B,KAC5B,2BAA4B,KAC5B,aAAc,KACd,wBAAyB,KACzB,qCAAsC,KACtC,qCAAsC,KACtC,uBAAwB,KACxB,kCAAmC,MAIpC,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,EAC5B,CACA,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,CACP,CACA,OAAOP,EAAIE,EACZ,CACAD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,EACpB,EACAC,EAAeW,QAAUR,EACzBS,EAAOC,QAAUb,EACjBA,EAAeE,GAAK,I,wmBC7B4B,IAAAY,EAAA,SAAAC,IAAAC,EAAAA,EAAAA,GAAAF,EAAAC,GAAA,IAmD7CE,EAhBAC,EAnC6CC,EAAAC,EAAAN,GAAA,SAAAA,IAAA,OAAAO,EAAAA,EAAAA,GAAA,KAAAP,GAAAK,EAAAG,MAAA,KAAAC,UAAA,CA4E7C,OA5E6CC,EAAAA,EAAAA,GAAAV,EAAA,EAAAW,IAAA,UAAAC,MAK9C,WACE,IAAKC,SAASC,OAAOC,SAAS,YAAa,CACzC,IAAQC,EAAaC,KAAKC,iBAAiBC,kBAAnCH,SACRI,KAAKC,YAAYL,EACnB,CACAM,QAAQC,IAAI,yCACZV,SAASW,iBAAiB,UAAWJ,KAAKK,eAAeC,KAAKN,MAChE,GAAC,CAAAT,IAAA,aAAAC,MAED,WACEC,SAASc,oBAAoB,UAAWP,KAAKK,eAAeC,KAAKN,MACnE,GAAC,CAAAT,IAAA,iBAAAC,MAED,SAAegB,GACmB,MAA5BA,EAAMjB,IAAIkB,gBACZP,QAAQC,IAAI,iBAAkBK,GAC9BR,KAAKU,UAET,GAAC,CAAAnB,IAAA,iBAAAC,MAED,SAAAmB,GAII,IAFWC,EAAQD,EADrBE,OACEC,QAAWF,SAGbZ,KAAKC,YAAYW,EACnB,GAAC,CAAArB,IAAA,YAAAC,MAED,WAAa,IAADuB,EACwB,QAAlCA,EAAAf,KAAKgB,QAAQC,cAAc,eAAO,IAAAF,GAAlCA,EAAoCG,QACtC,GAAC,CAAA3B,IAAA,cAAAC,OAAAR,GAAAmC,EAAAA,EAAAA,GAAAC,IAAAA,MAED,SAAAC,EAAkBT,GAAQ,OAAAQ,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACpBxB,KAAKyB,2BACPzB,KAAK0B,uBAAuBC,UAAUC,OAAO,UAG/CnC,SAASC,OAAM,YAAAmC,OAAejB,EAAQ,YAEtC,IACEkB,OAAOC,SAASC,QAClB,CAAC,QACKhC,KAAKyB,2BACPzB,KAAK0B,uBAAuBC,UAAUM,IAAI,SAE9C,CAAC,wBAAAX,EAAAY,OAAA,GAAAb,EAAA,UACF,SAAAc,GAAA,OAAAnD,EAAAI,MAAA,KAAAC,UAAA,KAAAE,IAAA,UAAAC,OAAAT,GAAAoC,EAAAA,EAAAA,GAAAC,IAAAA,MAED,SAAAgB,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAtB,IAAAA,MAAA,SAAAuB,GAAA,cAAAA,EAAApB,KAAAoB,EAAAnB,MAAA,OAGyB,OAFvBxB,KAAK0B,uBAAuBC,UAAUC,OAAO,UAE7C1B,QAAQC,IAAI,WAAWwC,EAAApB,KAAA,EAAAoB,EAAAnB,KAAA,EAGEoB,MAAMd,OAAOC,SAASc,MAAM,KAAD,EAApC,OAARR,EAAQM,EAAAG,KAAAH,EAAAnB,KAAA,EACKa,EAASU,OAAO,KAAD,EAA5BT,EAAIK,EAAAG,KACJP,EAAS,IAAIS,UACbR,EAAMD,EAAOU,gBAAgBX,EAAM,aAGnCG,EAAkBD,EAAIvB,cAAc,wCACpCyB,EAAsBjD,SAASwB,cAAc,wCAE/CwB,GAAmBC,IACrBA,EAAoBQ,UAAYT,EAAgBS,WACjDP,EAAAnB,KAAA,iBAAAmB,EAAApB,KAAA,GAAAoB,EAAAQ,GAAAR,EAAA,SAEDzC,QAAQkD,MAAM,8BAA6BT,EAAAQ,IAAS,QAEA,OAFAR,EAAApB,KAAA,GAEpDvB,KAAK0B,uBAAuBC,UAAUM,IAAI,UAAUU,EAAAU,OAAA,6BAAAV,EAAAT,OAAA,GAAAE,EAAA,yBAEvD,kBAAArD,EAAAK,MAAA,KAAAC,UAAA,MAAAT,CAAA,CA5E6C,C,QAEnB0E,KAAUC,EAAAA,EAAAA,GAAA3E,EAAA,UACpB,CAAC,kBAAmB,oB,2kBCHS,IAAAA,EAAA,SAAAC,IAAAC,EAAAA,EAAAA,GAAAF,EAAAC,GAAA,IAAAI,EAAAC,EAAAN,GAAA,SAAAA,IAAA,OAAAO,EAAAA,EAAAA,GAAA,KAAAP,GAAAK,EAAAG,MAAA,KAAAC,UAAA,CAuB7C,OAvB6CC,EAAAA,EAAAA,GAAAV,EAAA,EAAAW,IAAA,SAAAC,MAK9C,SAAOgB,GACLA,EAAMgD,kBACNxD,KAAKyD,WAAW9B,UAAU+B,OAAO,SACnC,GAAC,CAAAnE,IAAA,UAAAC,MAED,WACEQ,KAAK2D,aAAe3D,KAAK4D,cAActD,KAAKN,MAC5CP,SAASW,iBAAiB,QAASJ,KAAK2D,aAC1C,GAAC,CAAApE,IAAA,aAAAC,MAED,WACEC,SAASc,oBAAoB,QAASP,KAAK2D,aAC7C,GAAC,CAAApE,IAAA,gBAAAC,MAED,SAAcgB,GACPR,KAAKgB,QAAQ6C,SAASrD,EAAMK,SAC/Bb,KAAKyD,WAAW9B,UAAUM,IAAI,SAElC,KAACrD,CAAA,CAvB6C,C,QAEnB0E,KAAUC,EAAAA,EAAAA,GAAA3E,EAAA,UACpB,CAAC,Q,mECAdkF,EAAcC,EAAAA,GAAYC,QAC1BC,EAAUC,EAAAA,MAChBJ,EAAYK,MAAKC,EAAAA,EAAAA,IAAuBH,G,ikBCLQ,IAAArF,EAAA,SAAAC,IAAAC,EAAAA,EAAAA,GAAAF,EAAAC,GAAA,IAAAI,EAAAC,EAAAN,GAAA,SAAAA,IAAA,OAAAO,EAAAA,EAAAA,GAAA,KAAAP,GAAAK,EAAAG,MAAA,KAAAC,UAAA,CAiB7C,OAjB6CC,EAAAA,EAAAA,GAAAV,EAAA,EAAAW,IAAA,UAAAC,MAG9C,WACEU,QAAQC,IAAI,6BACd,GAAC,CAAAZ,IAAA,SAAAC,MAED,WACMC,SAAS4E,gBAAgB1C,UAAUkC,SAAS,SAC9CpE,SAAS4E,gBAAgB1C,UAAUC,OAAO,QAC1C0C,aAAaC,MAAQ,UAErB9E,SAAS4E,gBAAgB1C,UAAUM,IAAI,QACvCqC,aAAaC,MAAQ,QAGvBrE,QAAQC,IAAI,kBACd,KAACvB,CAAA,CAjB6C,C,QAEnB0E,G,wICIvBkB,EAAgB,SAAH7D,GAAqD,ICDhE8D,EAEAC,EAIAC,EAIAC,EDTiBC,EAAQlE,EAARkE,SAGvB,OCJMJ,GAAcK,EAAAA,EAAAA,MAEdJ,GAAcK,EAAAA,EAAAA,cAAY,WAC9B7E,QAAQC,IAAI,iCACd,GAAG,IAEGwE,GAAiBI,EAAAA,EAAAA,cAAY,WACjC7E,QAAQC,IAAI,oCACd,GAAG,IAEGyE,GAAaG,EAAAA,EAAAA,cACjB,SAACC,GACC,IAAQC,EAASD,EAATC,KACR/E,QAAQC,IAAI,kCAAD0B,OAAmCoD,IAGjC,qBAATA,IACF/E,QAAQC,IAAI,oEAEZsE,EAAYS,kBAAkB,CAAEC,SAAU,CAAC,cAC3CV,EAAYS,kBAAkB,CAAEC,SAAU,CAAC,eAE/C,GACA,CAACV,KAGHW,EAAAA,EAAAA,YAAU,WACRlF,QAAQC,IAAI,+CAEZ,IAAMkF,GAAQC,EAAAA,EAAAA,MAERC,EAAeF,EAAMG,cAAcC,OAAO,kBAAmB,CACjEC,UAAWhB,EACXiB,aAAchB,EACdiB,SAAUhB,IAGZ,OAAO,WACL1E,QAAQC,IAAI,iDACZoF,EAAaM,cACbR,EAAMS,YACR,CACF,GAAG,CAACpB,EAAaC,EAAgBC,IDtC1BC,CACT,EAaA,MAVA,SAAekB,GAA+C,IAA5ClB,EAAQkB,EAARlB,SACVJ,EAAc,IAAIuB,EAAAA,EAExB,OACEC,EAAAA,cAACC,EAAAA,GAAmB,CAACC,OAAQ1B,GAC3BwB,EAAAA,cAACzB,EAAa,KAAEK,GAGtB,E,6EEDauB,GAAmBX,EAAAA,EAAAA,IAAsB,SAACY,EAAKC,GAAG,MAAM,CACnEC,kBAAmB,GACnBC,gBAAiB3G,KAAKC,iBAAiBC,kBAAkBH,SACzD6G,YAAa,IAAIC,KACjBC,SAAU,GACVC,UAAW,GACXC,WAAW,EAEXC,eAAgB,SAACC,GACfV,GAAI,SAACW,GAAK,MAAM,CACdT,kBAAmBS,EAAMT,kBAAkB5G,SAASoH,GAChDC,EAAMT,kBAAkBU,QAAO,SAACjJ,GAAE,OAAKA,IAAO+I,CAAU,IAAC,GAAAlF,QAAAqF,EAAAA,EAAAA,GACrDF,EAAMT,mBAAiB,CAAEQ,IAClC,IACDT,IAAMa,eACR,EAEAC,eAAgB,SAACC,GACfhB,EAAI,CAAEI,YAAaY,IACnBf,IAAMa,eACR,EAEAG,mBAAoB,SAAC1G,GACnByF,EAAI,CAAEG,gBAAiB5F,IACvB0F,IAAMa,eACR,EAEAI,gBAAcC,GAAArG,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAC,IAAA,IAAAgB,EAAA,OAAAjB,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEWiG,EAAAA,EAAMnB,IAAI,cAAc,KAAD,EAAxCjE,EAAQf,EAAAwB,KACduD,EAAI,CAAEO,UAAWvE,EAASqF,KAAKd,YAAatF,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6B,GAAA7B,EAAA,SAE5CpB,QAAQkD,MAAM,6BAA4B9B,EAAA6B,IAAS,yBAAA7B,EAAAY,OAAA,GAAAb,EAAA,kBAEtD,kBAAAmG,EAAApI,MAAA,KAAAC,UAAA,GAED8H,eAAaQ,GAAAxG,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAgB,IAAA,IAAAwF,EAAAnB,EAAAF,EAAAC,EAAAqB,EAAAC,EAAAC,EAAAC,EAAA3F,EAAA,OAAAjB,IAAAA,MAAA,SAAAuB,GAAA,cAAAA,EAAApB,KAAAoB,EAAAnB,MAAA,OAYqD,OAZrDoG,EAC+CtB,IAApDG,EAAWmB,EAAXnB,YAAaF,EAAiBqB,EAAjBrB,kBAAmBC,EAAeoB,EAAfpB,gBACxCH,EAAI,CAAEQ,WAAW,IAAQlE,EAAApB,KAAA,EAGjBsG,EAAY,IAAInB,KAAKD,EAAYwB,cAAexB,EAAYyB,WAAY,GACxEJ,EAAU,IAAIpB,KAAKD,EAAYwB,cAAexB,EAAYyB,WAAa,EAAG,IAE1EH,EAAgB,IAAIrB,KAAKmB,IACjBM,QAAQJ,EAAcK,UAAYL,EAAcM,WAExDL,EAAc,IAAItB,KAAKoB,IACjBK,QAAQL,EAAQM,WAAa,EAAIN,EAAQO,WAAW1F,EAAAnB,KAAA,GAEzCiG,EAAAA,EAAMnB,IAAI,YAAa,CAC5CgC,OAAQ,CACNC,WAAYR,EAAcS,cAC1BC,SAAUT,EAAYQ,cACtBE,aAAcnC,EACd3F,SAAU4F,KAEX,KAAD,GAPInE,EAAQM,EAAAG,KASduD,EAAI,CAAEM,SAAUtE,EAASqF,KAAKf,WAAYhE,EAAAnB,KAAA,iBAAAmB,EAAApB,KAAA,GAAAoB,EAAAQ,GAAAR,EAAA,SAE1CzC,QAAQkD,MAAM,4BAA2BT,EAAAQ,IAAS,QAExB,OAFwBR,EAAApB,KAAA,GAElD8E,EAAI,CAAEQ,WAAW,IAASlE,EAAAU,OAAA,6BAAAV,EAAAT,OAAA,GAAAE,EAAA,yBAE7B,kBAAAuF,EAAAvI,MAAA,KAAAC,UAAA,IA7Ba,IAADsI,EATCH,CAuCf,IC5EYmB,EAAkC,SAAHhI,GAKrC,IAJLiG,EAASjG,EAATiG,UACAL,EAAiB5F,EAAjB4F,kBACAqC,EAAgBjI,EAAhBiI,iBACAC,EAAmBlI,EAAnBkI,oBAEA,OACE5C,EAAAA,cAAA,OAAK6C,UAAU,+EACb7C,EAAAA,cAAA,OAAK6C,UAAU,OACb7C,EAAAA,cAAA,UACE8C,QAASF,EACTC,UAAU,yIACX,aAGD7C,EAAAA,cAAA,OAAK6C,UAAU,0DAAyD,aACxE7C,EAAAA,cAAA,OAAK6C,UAAU,QACZlC,EAAU/I,KAAI,SAACmL,GAAQ,OACtB/C,EAAAA,cAAA,OAAK1G,IAAKyJ,EAAShL,GAAI8K,UAAU,4CAC/B7C,EAAAA,cAAA,SACEhB,KAAK,WACLjH,GAAE,YAAA6D,OAAcmH,EAAShL,IACzBiL,KAAK,iBACLzJ,MAAOwJ,EAAShL,GAChBkL,QAAS3C,EAAkB5G,SAASqJ,EAAShL,IAC7CmL,SAAU,kBAAMP,EAAiBI,EAAShL,GAAG,IAE/CiI,EAAAA,cAAA,SAAOmD,QAAO,YAAAvH,OAAcmH,EAAShL,IAAM8K,UAAU,oCAClDE,EAASK,OAER,MAMlB,E,8NCjCO,IAAMC,EAAgD,SAAH3I,GAQnD,IAPL8F,EAAW9F,EAAX8F,YACA8C,EAAW5I,EAAX4I,YACA/C,EAAe7F,EAAf6F,gBACAgD,EAAc7I,EAAd6I,eACAC,EAAS9I,EAAT8I,UACAC,EAAY/I,EAAZ+I,aACAC,EAAQhJ,EAARgJ,SAEA,OACE1D,EAAAA,cAAA,OAAK6C,UAAU,uEACb7C,EAAAA,cAAA,OAAK6C,UAAU,+BACb7C,EAAAA,cAAA,MAAI6C,UAAU,wCAAwCc,MAAO,CAAEC,MAAO,MACnEpD,EAAYqD,eAAe,U,qWAASC,CAAA,CACnCC,MAAO,OACPC,KAAM,WACc,SAAhBV,GAA0B,CAAEW,IAAK,cAGzCjE,EAAAA,cAAA,OAAK6C,UAAU,6BACb7C,EAAAA,cAAA,UACE8C,QAAS,kBAAMS,EAAe,QAAQ,EACtCV,UAAS,wCAAAjH,OACS,UAAhB0H,EACI,uGACA,mHAAkH,kBAEzH,SAGDtD,EAAAA,cAAA,UACE8C,QAAS,kBAAMS,EAAe,SAAS,EACvCV,UAAS,yEAAAjH,OACS,WAAhB0H,GAA4C,SAAhBA,EACxB,gHACA,qHAEP,UAIc,UAAfA,GAA0C,QAAfA,IAC3BtD,EAAAA,cAAA,OAAK6C,UAAU,kCACb7C,EAAAA,cAAA,UACE8C,QAAS,kBAAMS,EAAe,SAAS,EACvCV,UAAS,wCAAAjH,OACS,WAAhB0H,EACI,uGACA,mHAAkH,kBAEzH,QAGDtD,EAAAA,cAAA,UACE8C,QAAS,kBAAMS,EAAe,OAAO,EACrCV,UAAS,yEAAAjH,OACS,SAAhB0H,EACI,gHACA,qHAEP,YAMPtD,EAAAA,cAAA,OAAK6C,UAAU,+BACb7C,EAAAA,cAAA,OAAK6C,UAAU,YACb7C,EAAAA,cAAA,UAAQ6C,UAAU,2LACftC,EACDP,EAAAA,cAAA,OAAK6C,UAAU,4BAA4BqB,KAAK,OAAOC,OAAO,eAAeC,QAAQ,aACnFpE,EAAAA,cAAA,QAAMqE,EAAE,iBAAiBC,cAAc,QAAQC,eAAe,QAAQC,YAAY,SAIxFxE,EAAAA,cAAA,UACE8C,QAASU,EACTX,UAAU,2LACX,SAGD7C,EAAAA,cAAA,OAAK6C,UAAU,kBACb7C,EAAAA,cAAA,UACE8C,QAASW,EACTZ,UAAU,8KAEV7C,EAAAA,cAAA,OAAK6C,UAAU,UAAUqB,KAAK,OAAOC,OAAO,eAAeC,QAAQ,aACjEpE,EAAAA,cAAA,QAAMqE,EAAE,kBAAkBC,cAAc,QAAQC,eAAe,QAAQC,YAAY,QAGvFxE,EAAAA,cAAA,UACE8C,QAASY,EACTb,UAAU,mKAEV7C,EAAAA,cAAA,OAAK6C,UAAU,UAAUqB,KAAK,OAAOC,OAAO,eAAeC,QAAQ,aACjEpE,EAAAA,cAAA,QAAMqE,EAAE,eAAeC,cAAc,QAAQC,eAAe,QAAQC,YAAY,UAO9F,ECnHaC,EAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAuBtDC,EAAc,SAAClE,GAC1B,IAAMmE,EAAc,IAAIlE,KAAKD,GAC7BmE,EAAYzC,QAAQyC,EAAYxC,UAAYwC,EAAYvC,UAGxD,IADA,IAAMwC,EAAe,GACZC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAMZ,EAAM,IAAIxD,KAAKkE,GACrBV,EAAI/B,QAAQ+B,EAAI9B,UAAY0C,GAC5BD,EAAKE,KAAKb,EACZ,CACA,OAAOW,CACT,ECHaG,EAAsC,SAAHrK,GAUzC,IATL8F,EAAW9F,EAAX8F,YACAE,EAAQhG,EAARgG,SACAH,EAAe7F,EAAf6F,gBACAyE,EAActK,EAAdsK,eACAC,EAAavK,EAAbuK,cACAC,EAAiBxK,EAAjBwK,kBACAC,EAAezK,EAAfyK,gBACAC,EAAU1K,EAAV0K,WACAC,EAAY3K,EAAZ2K,aAiCMC,EAAe,WACnB,IAAKD,EAAc,OAAO,KAE1B,IAAME,EAAa,SAACnE,GAClB,OAAOA,EAAKoE,mBAAmB,GAAI,CACjCC,KAAM,UACNC,OAAQ,UACRC,QAAQ,GAEZ,EAEA,OACE3F,EAAAA,cAAA,OAAK6C,UAAU,QACb7C,EAAAA,cAAA,OAAK6C,UAAU,8CACb7C,EAAAA,cAAA,OAAK6C,UAAU,eAAc,cAC7B7C,EAAAA,cAAA,OAAK6C,UAAU,sBACZ0C,EAAWF,EAAaO,WAAW,MAAIL,EAAWF,EAAaQ,WAK1E,EAEA,OACE7F,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OAAK6C,UAAU,sFACZ4B,EAAS7M,KAAI,SAACqM,GAAG,OAChBjE,EAAAA,cAAA,OACE1G,IAAK2K,EACLpB,UAAU,kGAEToB,EACG,KAGVjE,EAAAA,cAAA,OAAK6C,UAAU,gHD1GU,SAACrC,GAC9B,IAAMoB,EAAY,IAAInB,KAAKD,EAAYwB,cAAexB,EAAYyB,WAAY,GACxEJ,EAAU,IAAIpB,KAAKD,EAAYwB,cAAexB,EAAYyB,WAAa,EAAG,GAE1E6D,EAAY,IAAIrF,KAAKmB,GAC3BkE,EAAU5D,QAAQ4D,EAAU3D,UAAY2D,EAAU1D,UAElD,IAAM2D,EAAU,IAAItF,KAAKoB,GACzBkE,EAAQ7D,QAAQL,EAAQM,WAAa,EAAIN,EAAQO,WAKjD,IAHA,IAAMwC,EAAe,GACfoB,EAAa,IAAIvF,KAAKqF,GAErBE,GAAcD,GACnBnB,EAAKE,KAAK,IAAIrE,KAAKuF,IACnBA,EAAW9D,QAAQ8D,EAAW7D,UAAY,GAG5C,OAAOyC,CACT,CCwFSqB,CAAgBzF,GAAa5I,KAAI,SAACwJ,GACjC,IAAM8E,EAAU9E,EAAK+E,kBAAmB,IAAI1F,MAAO0F,eAC7CC,EAAcf,GAAgBjE,EAAK+E,iBAAmBd,EAAagB,QAAQF,eAEjF,OACEnG,EAAAA,cAAA,OACE1G,IAAK8H,EAAKmB,cACVM,UAAS,8DAAAjH,OACPwF,EAAKa,aAAezB,EAAYyB,WAAa,aAAe,IAE9Da,QAAS,SAAC3K,GAAC,OA7EC,SAACiJ,EAAY7G,GACnC,GAAI6K,EAGF,OAFAH,GAAc,QACdE,EAAgB,MAIlB,IAAMmB,EAAQ/L,EAAMgM,cAA0BC,wBACxCC,EAAWH,EAAK1C,MAEhBgC,EAAY,IAAInF,KAAKW,GAC3BwE,EAAUc,SAAS,EAAG,EAAG,EAAG,GAC5B,IAAMb,EAAU,IAAIpF,KAAKmF,GACzBC,EAAQa,SAAS,GAAI,EAAG,EAAG,GAE3BvB,EAAgB,CACdS,UAAAA,EACAC,QAAAA,EACAc,IAAKL,EAAKK,IACVC,OAAQ,GACRP,QAASjF,IAGX8D,EAAkB,CAChByB,IAAKL,EAAKK,IACVE,KAAMP,EAAKQ,MAAQL,EAAW,MAGhCxB,GAAc,EAChB,CAgD4B8B,CAAgB3F,EAAMjJ,EAAE,GAExC6H,EAAAA,cAAA,OACE6C,UAAS,WAAAjH,OACPsK,EACI,gGACA,qCAGL9E,EAAKe,WAEPiE,IAAgBf,EAAatN,IAAMiI,EAAAA,cAACsF,EAAY,MAChD5E,EACEM,QAAO,SAACgG,GAAO,OAAK,IAAIvG,KAAKuG,EAAQC,WAAWd,iBAAmB/E,EAAK+E,cAAc,IACtFe,MAAK,SAACC,EAAGC,GAAC,OAAK,IAAI3G,KAAK0G,EAAEF,WAAWI,UAAY,IAAI5G,KAAK2G,EAAEH,WAAWI,SAAS,IAChFzP,KAAI,SAACoP,GAAO,OACXhH,EAAAA,cAAA,OACE1G,IAAK0N,EAAQjP,GACb8K,UAAU,uCACVC,QAAS,SAAC3K,GACRA,EAAEoF,kBACFyH,EAAegC,EACjB,EACAjP,GAAE,WAAA6D,OAAaoL,EAAQjP,KAEvBiI,EAAAA,cAAA,OAAK6C,UAAU,qFACZmE,EAAQhE,KACThD,EAAAA,cAAA,OAAK6C,UAAU,4CACZ,IAAIpC,KAAKuG,EAAQC,WAAWzB,mBAAmB,GAAI,CAClDC,KAAM,UACNC,OAAQ,UACRC,QAAQ,EACRhM,SAAU4G,MAIZ,IAIhB,KAIR,ECzJa+G,EAA0C,SAAH5M,GAK7C,IAJLsM,EAAOtM,EAAPsM,QACAzG,EAAe7F,EAAf6F,gBACAyE,EAActK,EAAdsK,eACAuC,EAAU7M,EAAV6M,WAEM3B,EAAY,IAAInF,KAAKuG,EAAQC,WAC7BpB,EAAU,IAAIpF,KAAKuG,EAAQQ,SAC3BC,GAAsC,GAAvB7B,EAAU8B,WAAkB9B,EAAU+B,eAAiBJ,EAAa,IACnFX,GACkB,GAArBf,EAAQ6B,WAAkB7B,EAAQ8B,cAAuC,GAAvB/B,EAAU8B,WAAkB9B,EAAU+B,gBACxFJ,EAAa,IAEhB,OACEvH,EAAAA,cAAA,OACE1G,IAAK0N,EAAQjP,GACb8K,UAAU,kKACV9K,GAAE,WAAA6D,OAAaoL,EAAQjP,IACvB4L,MAAO,CACLgD,IAAI,GAAD/K,OAAK6L,EAAW,MACnBb,OAAO,GAADhL,OAAKgL,EAAM,OAEnB9D,QAAS,kBAAMkC,EAAegC,EAAQ,GAErCA,EAAQhE,KACThD,EAAAA,cAAA,OAAK6C,UAAU,4CACZ+C,EAAUJ,mBAAmB,GAAI,CAChCC,KAAM,UACNC,OAAQ,UACRC,QAAQ,EACRhM,SAAU4G,KAKpB,ECXMqH,EAAQC,MAAMC,KAAK,CAAEC,OAAQ,KAAM,SAACC,EAAGnD,GAAC,OAAKA,CAAC,IAC9CoD,EAAc,GAEdC,EAAe,SAACC,GACpB,IAAM1C,EAAO2C,KAAKC,MAAMF,EAAIF,GACtBvC,EAAS0C,KAAKC,MAAOF,EAAIF,EAAW,GACpC7G,EAAO,IAAIX,KAEjB,OADAW,EAAKsF,SAASjB,EAAMC,EAAQ,EAAG,GACxBtE,CACT,EAEakH,EAAoC,SAAH5N,GAYvC,IAXL8F,EAAW9F,EAAX8F,YACAE,EAAQhG,EAARgG,SACAH,EAAe7F,EAAf6F,gBAEAyE,GADetK,EAAf6N,gBACc7N,EAAdsK,gBACAI,EAAU1K,EAAV0K,WAEAH,GADcvK,EAAd8N,eACa9N,EAAbuK,eACAC,EAAiBxK,EAAjBwK,kBACAC,EAAezK,EAAfyK,gBACAE,EAAY3K,EAAZ2K,aAEAoD,EAAsCzI,EAAAA,SAAe,IAAIS,MAAOiI,GAAAC,EAAAA,EAAAA,GAAAF,EAAA,GAAzDG,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAClCI,GAAkCC,EAAAA,EAAAA,UAA2C,MAAKC,GAAAL,EAAAA,EAAAA,GAAAG,EAAA,GAA3EG,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAC9BG,GAA8BJ,EAAAA,EAAAA,UAAwB,MAAKK,GAAAT,EAAAA,EAAAA,GAAAQ,EAAA,GAApDE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAE1BpJ,EAAAA,WAAgB,WACd,IAAMuJ,EAAQC,aAAY,kBAAMX,EAAe,IAAIpI,KAAO,GAAE,KAC5D,OAAO,kBAAMgJ,cAAcF,EAAO,CACpC,GAAG,IAEHvJ,EAAAA,WAAgB,WACd,IAAM0J,EAAqB,SAACvR,GACtBiN,IAAgBjN,EAAEyC,OAAmB+O,QAAQ,0BAC/C1E,GAAc,GACdE,EAAgB,MAEpB,EAGA,OADA3L,SAASW,iBAAiB,YAAauP,GAChC,kBAAMlQ,SAASc,oBAAoB,YAAaoP,EAAoB,CAC7E,GAAG,CAACtE,IAEJpF,EAAAA,WAAgB,WAEd,IAAMuJ,EAAQK,YAAW,WACvB,IAAMC,EAAYrQ,SAASwB,cAAc,6BACzC,GAAI6O,EAAW,CAGbA,EAAUC,UADiB,GAE7B,CACF,GAAG,GAEH,OAAO,kBAAMC,aAAaR,EAAO,CACnC,GAAG,CAAC7I,IAEJ,IAAMsJ,GAAgBlL,EAAAA,EAAAA,cAAY,WAChC,GAAImK,EAAW,CACb,IAAMgB,EAAShB,EAAUd,EACnB+B,EAAmB,OAAZb,EAAmBY,EAAShC,EAAcoB,EAEjDzD,EAAYsC,EAAaE,KAAK+B,IAAIF,EAAQC,IAC1CrE,EAAUqC,EAAaE,KAAKgC,IAAIH,EAAQC,IAE9CtE,EAAUyE,YACRpB,EAAU7H,KAAKY,cACfiH,EAAU7H,KAAKa,WACfgH,EAAU7H,KAAKe,WAEjB0D,EAAQwE,YAAYpB,EAAU7H,KAAKY,cAAeiH,EAAU7H,KAAKa,WAAYgH,EAAU7H,KAAKe,WAE5F,IAAMwE,EAAMyB,KAAK+B,IAAIF,EAAQC,GACvBtD,EAASwB,KAAKkC,IAAIJ,EAAOD,GAE/B9E,EAAgB,CACdS,UAAAA,EACAC,QAAAA,EACAc,IAAAA,EACAC,OAAAA,EACAP,QAAS4C,EAAU7H,OAID5H,SAASwB,cAAc,2BAA3C,IACMuP,EAAmB/Q,SAASwB,cAAc,6BAC1CwP,EAAsBhR,SAASwB,cAAc,0BAC7CyP,GAAgC,OAAhBF,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB/D,0BAA2B,CACjEG,IAAK,EACLE,KAAM,EACNjD,MAAO,EACPgD,OAAQ,GAEJ8D,GAAqC,OAAnBF,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBhE,wBAAwB5C,QAAS,EAE9E,IAAK8G,IAAoBD,EAAc7G,MACrC,OAGF,IAAM6C,GAAYgE,EAAc7G,MAAQ8G,GAAmB,EAE3DxF,EAAkB,CAChByB,IAAKsC,EAAUd,EAAIsC,EAAc9D,MAAuB,OAAhB4D,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBT,YAAa,GACvEjD,KAAMJ,EAAWwC,EAAU7H,KAAKgB,SAAW,IAG7C6C,GAAc,EAChB,CACAiE,EAAa,MACbI,EAAW,KACb,GAAG,CAACL,EAAWI,IAET/D,GAAexG,EAAAA,EAAAA,cAAY,WAC/B,IAAKuG,EAAc,OAAO,KAE1B,IAAME,EAAa,SAACnE,GAClB,OAAOA,EAAKoE,mBAAmB,GAAI,CACjCC,KAAM,UACNC,OAAQ,UACRC,QAAQ,GAEZ,EAkBA,OACE3F,EAAAA,cAAA,OACE6C,UAAU,6HACVc,MAAO,CACLgD,IAAI,GAAD/K,OAAKyJ,EAAasB,IAAG,MACxBC,OAAO,GAADhL,OAAKyJ,EAAauB,OAAM,OAEhC9D,QAvBgB,SAAC3K,GACnB8B,QAAQC,IAAI,yBACZ/B,EAAEoF,kBACF,IAAM+I,EAAOnO,EAAEoO,cAAcC,wBAC7BvM,QAAQC,IAAI,oBAAqB,CAC/BoM,KAAAA,EACAK,IAAKL,EAAKK,IACVE,KAAMP,EAAKQ,MAAQ,IAErB5B,EAAkB,CAChByB,IAAKL,EAAKK,IACVE,KAAMP,EAAKQ,MAAQ,IAErB7B,GAAc,EAChB,GAWIjF,EAAAA,cAAA,OAAK6C,UAAU,eAAc,cAC7B7C,EAAAA,cAAA,OAAK6C,UAAU,sBACZ0C,EAAWF,EAAaO,WAAW,MAAIL,EAAWF,EAAaQ,UAIxE,GAAG,CAACR,IAEJ,OACErF,EAAAA,cAAA,OAAK6C,UAAU,wCAEb7C,EAAAA,cAAA,OAAK6C,UAAU,2HACb7C,EAAAA,cAAA,OAAK6C,UAAU,mCACd6B,EAAYlE,GAAa5I,KAAI,SAACwJ,GAAI,OACjCpB,EAAAA,cAAA,OACE1G,IAAK8H,EAAKmB,cACVM,UAAU,kGAEV7C,EAAAA,cAAA,WAAMyE,EAASrD,EAAKgB,WACpBpC,EAAAA,cAAA,OACE6C,UAAS,QAAAjH,OACPwF,EAAK+E,kBAAmB,IAAI1F,MAAO0F,eAC/B,wGACA,KAGL/E,EAAKe,WAEJ,KAKVnC,EAAAA,cAAA,OAAK6C,UAAU,2HACb7C,EAAAA,cAAA,OAAK6C,UAAU,8BACZ+E,EAAMhQ,KAAI,SAAC6N,GAAI,OACdzF,EAAAA,cAAA,OACE1G,IAAKmM,EACL5C,UAAU,sGACVc,MAAO,CAAEiD,OAAO,GAADhL,OAAKqM,EAAW,MAAM0C,WAAW,GAAD/O,OAAKqM,EAAW,QAErD,IAATxC,EAAa,QAAUA,EAAO,GAAE,GAAA7J,OAAM6J,EAAI,OAAiB,KAATA,EAAc,QAAO,GAAA7J,OAAM6J,EAAO,GAAE,OACnF,KAIVzF,EAAAA,cAAA,OAAK6C,UAAU,oCACb7C,EAAAA,cAAA,OAAK6C,UAAU,qCAAqCc,MAAO,CAAEiH,cAAe,OAAQC,OAAQ,KACzFjD,EAAMhQ,KAAI,SAAC6N,GAAI,OACdzF,EAAAA,cAAA,OACE1G,IAAKmM,EACL5C,UAAU,gDACVc,MAAO,CAAEiD,OAAO,GAADhL,OAAKqM,EAAW,QAC/B,KAINjI,EAAAA,cAAA,OACE6C,UAAU,iDACVc,MAAO,CACLgD,IAAI,GAAD/K,OAA4D,GAA7B,GAAzBgN,EAAYlB,WAAkBkB,EAAYjB,cAAkC,MACrFmD,UAAW,qBAGb9K,EAAAA,cAAA,OAAK6C,UAAU,0CACf7C,EAAAA,cAAA,OAAK6C,UAAU,4BAGhB6B,EAAYlE,GAAa5I,KAAI,SAACwJ,GAAI,OACjCpB,EAAAA,cAAA,OACE1G,IAAK8H,EAAKmB,cACVM,UAAU,qCACVc,MAAO,CAAEoH,UAAU,GAADnP,OAAK,KAAgB,OACvCoP,YAAa,SAAC7S,GAAO,IAAD8S,EACZC,EAAa/S,EAAEyC,OAAmB+O,QAAQ,qBAChD,GAAIvE,GAAc8F,EAGhB,OAFAjG,GAAc,QACdE,EAAgB,MAIlB,IAAMmB,EAAOnO,EAAEoO,cAAcC,wBACvB2B,EAAIhQ,EAAEgT,QAAU7E,EAAKK,KAAmC,QAAhCsE,EAAG9S,EAAEoO,cAAc6E,qBAAa,IAAAH,OAAA,EAA7BA,EAA+BnB,WAChEZ,EAAa,CAAEf,EAAAA,EAAG/G,KAAAA,GACpB,EACAiK,YAAa,SAAClT,GACZ,GAAI8Q,EAAW,CAAC,IAADqC,EACPhF,EAAOnO,EAAEoO,cAAcC,wBACvB2B,EAAIhQ,EAAEgT,QAAU7E,EAAKK,KAAmC,QAAhC2E,EAAGnT,EAAEoO,cAAc6E,qBAAa,IAAAE,OAAA,EAA7BA,EAA+BxB,WAChER,EAAWnB,EACb,CACF,EACAoD,UAAWvB,EACXwB,aAAcxB,GAEbf,GAAa7H,EAAK+E,iBAAmB8C,EAAU7H,KAAK+E,gBAA8B,OAAZkD,GACrErJ,EAAAA,cAAA,OACE6C,UAAU,kEACVc,MAAO,CACLgD,IAAI,GAAD/K,OAAKwM,KAAK+B,IAAIlB,EAAUd,EAAGkB,GAAQ,MACtCzC,OAAO,GAADhL,OAAKwM,KAAKkC,IAAIjB,EAAUJ,EAAUd,GAAE,SAK/C9C,GACCjE,EAAK+E,iBAAmBd,EAAagB,QAAQF,iBAC5Cd,EAAatN,IAAMiI,EAAAA,cAACsF,EAAY,MAElC5E,EACEM,QAAO,SAACgG,GAAO,OAAK,IAAIvG,KAAKuG,EAAQC,WAAWd,iBAAmB/E,EAAK+E,cAAc,IACtFvO,KAAI,SAACoP,GAAO,OACXhH,EAAAA,cAACsH,EAAW,CACVhO,IAAK0N,EAAQjP,GACbiP,QAASA,EACTzG,gBAAiBA,EACjByE,eAAgBA,EAChBuC,WAAYU,GACZ,IAEF,MAMlB,E,mBCjSawD,EAA8C,SAAH/Q,GAA6C,IAAvCgR,EAAMhR,EAANgR,OAAQC,EAAOjR,EAAPiR,QAASC,EAAclR,EAAdkR,eAC7E9C,GAAkCC,EAAAA,EAAAA,UAAoB,SAAQC,GAAAL,EAAAA,EAAAA,GAAAG,EAAA,GAAvD+C,EAAS7C,EAAA,GAAE8C,EAAY9C,EAAA,GAC9BG,GAA0BJ,EAAAA,EAAAA,UAAS,IAAGK,GAAAT,EAAAA,EAAAA,GAAAQ,EAAA,GAA/B4C,EAAK3C,EAAA,GAAE4C,EAAQ5C,EAAA,GACtB6C,GAAwBlD,EAAAA,EAAAA,WAAS,GAAKmD,GAAAvD,EAAAA,EAAAA,GAAAsD,EAAA,GAA/BE,EAAID,EAAA,GAAEE,EAAOF,EAAA,GACpBG,GAAsCtD,EAAAA,EAAAA,UAAS,IAAGuD,GAAA3D,EAAAA,EAAAA,GAAA0D,EAAA,GAA3CE,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAClCG,GAAgC1D,EAAAA,EAAAA,UAAS,IAAG2D,GAAA/D,EAAAA,EAAAA,GAAA8D,EAAA,GAArC3Q,EAAQ4Q,EAAA,GAAEC,EAAWD,EAAA,GAC5BE,GAAkC7D,EAAAA,EAAAA,UAAS,IAAG8D,GAAAlE,EAAAA,EAAAA,GAAAiE,EAAA,GAAvChL,EAASiL,EAAA,GAAEC,EAAYD,EAAA,GAC9BE,GAA8BhE,EAAAA,EAAAA,UAAS,IAAGiE,GAAArE,EAAAA,EAAAA,GAAAoE,EAAA,GAAnClL,EAAOmL,EAAA,GAAEC,EAAUD,EAAA,GAC1BE,GAA4BnE,EAAAA,EAAAA,UAAmC,IAAGoE,GAAAxE,EAAAA,EAAAA,GAAAuE,EAAA,GAA3DE,EAAMD,EAAA,GAAEE,EAASF,EAAA,GAExB,IAAKzB,EAAQ,OAAO,KAEpB,IAAM4B,EAAY,eAAAxN,GAAA5E,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,IAAA,IAAAgB,EAAA,OAAAjB,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEMiG,EAAAA,EAAM+L,KAAK,YAAa,CAC7CvG,QAAS,CACPhE,KAAM+I,EACN9E,UAAWrF,EACX4F,QAAS3F,EACT0K,YAAAA,EACAzQ,SAAAA,EACA0R,SAAS,GAEXC,cAAeL,EAAOxV,KAAI,SAAC8V,GAAK,MAAM,CACpCtK,MAAOsK,EAAMtK,MACbuK,gBAAiB,UACjBC,WAAW,EACXC,SAAS,EACV,IACDC,oBAAoB,IACnB,KAAD,GAhBI1R,EAAQf,EAAAwB,MAkBD4E,KAAKsM,UACF,OAAdnC,QAAc,IAAdA,GAAAA,EAAiBxP,EAASqF,KAAKuF,SAC/B2E,KACDtQ,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6B,GAAA7B,EAAA,SAEDpB,QAAQkD,MAAM,4BAA2B9B,EAAA6B,IAAS,yBAAA7B,EAAAY,OAAA,GAAAb,EAAA,kBAErD,kBA3BiB,OAAA0E,EAAA3G,MAAA,KAAAC,UAAA,KA6BlB,OACE4G,EAAAA,cAAA,OAAK6C,UAAU,sDACb7C,EAAAA,cAAA,OAAK6C,UAAU,sDACb7C,EAAAA,cAAA,OAAK6C,UAAU,6DAA6DC,QAAS6I,IAErF3L,EAAAA,cAAA,OACE6C,UAAU,iEACVC,QAAS,SAAC3K,GAAC,OAAKA,EAAEoF,iBAAiB,GAGnCyC,EAAAA,cAAA,OAAK6C,UAAU,uEACb7C,EAAAA,cAAA,SACEhB,KAAK,OACLgP,YAAY,YACZnL,UAAU,wFACVtJ,MAAOwS,EACP7I,SAAU,SAAC/K,GAAC,OAAK6T,EAAS7T,EAAEyC,OAAOrB,MAAM,EACzC0U,WAAS,IAEXjO,EAAAA,cAAA,UAAQ8C,QAAS6I,EAAS9I,UAAU,6DAClC7C,EAAAA,cAACkO,EAAAA,EAAe,CAACC,KAAMC,EAAAA,IAASvL,UAAU,cAK9C7C,EAAAA,cAAA,OAAK6C,UAAU,kBACX,CAAC,QAAS,OAAQ,eAA+BjL,KAAI,SAACoH,GAAI,OAC1DgB,EAAAA,cAAA,UACE1G,IAAK0F,EACL8D,QAAS,kBAAMgJ,EAAa9M,EAAK,EACjC6D,UAAS,wBAAAjH,OACPiQ,IAAc7M,EACV,gEACA,6CAGLA,EACM,KAKbgB,EAAAA,cAAA,OAAK6C,UAAU,iBAEb7C,EAAAA,cAAA,OAAK6C,UAAU,+BACb7C,EAAAA,cAACkO,EAAAA,EAAe,CAACC,KAAME,EAAAA,IAASxL,UAAU,0BAC1C7C,EAAAA,cAAA,OAAK6C,UAAU,UACb7C,EAAAA,cAAA,SACEhB,KAAK,iBACL6D,UAAU,6DACVtJ,MAAOqI,EACPsB,SAAU,SAAC/K,GAAC,OAAK2U,EAAa3U,EAAEyC,OAAOrB,MAAM,IAE/CyG,EAAAA,cAAA,QAAM6C,UAAU,QAAO,KACvB7C,EAAAA,cAAA,SACEhB,KAAK,iBACL6D,UAAU,6DACVtJ,MAAOsI,EACPqB,SAAU,SAAC/K,GAAC,OAAK8U,EAAW9U,EAAEyC,OAAOrB,MAAM,MAMjDyG,EAAAA,cAAA,OAAK6C,UAAU,4FACb7C,EAAAA,cAACkO,EAAAA,EAAe,CAACC,KAAMG,EAAAA,IAASzL,UAAU,0BAC1C7C,EAAAA,cAAA,SACEhB,KAAK,OACLgP,YAAY,sCACZnL,UAAU,oEACVK,SAAU,SAAC/K,GAAC,OACVkV,EAAUlV,EAAEyC,OAAOrB,MAAMgV,MAAM,KAAK3W,KAAI,SAACwL,GAAK,MAAM,CAAEA,MAAOA,EAAMoL,OAAQ,IAAG,KAMpFxO,EAAAA,cAAA,OAAK6C,UAAU,4FACb7C,EAAAA,cAACkO,EAAAA,EAAe,CAACC,KAAMM,EAAAA,IAAS5L,UAAU,0BAC1C7C,EAAAA,cAAA,QAAM6C,UAAU,iBAAgB,uCAIlC7C,EAAAA,cAAA,OAAK6C,UAAU,4FACb7C,EAAAA,cAACkO,EAAAA,EAAe,CAACC,KAAMO,EAAAA,IAAe7L,UAAU,0BAChD7C,EAAAA,cAAA,SACEhB,KAAK,OACLgP,YAAY,eACZnL,UAAU,oEACVtJ,MAAOuC,EACPoH,SAAU,SAAC/K,GAAC,OAAKwU,EAAYxU,EAAEyC,OAAOrB,MAAM,KAKhDyG,EAAAA,cAAA,OAAK6C,UAAU,4FACb7C,EAAAA,cAACkO,EAAAA,EAAe,CAACC,KAAMQ,EAAAA,IAAa9L,UAAU,0BAC9C7C,EAAAA,cAAA,SACEhB,KAAK,OACLgP,YAAY,iCACZnL,UAAU,oEACVtJ,MAAOgT,EACPrJ,SAAU,SAAC/K,GAAC,OAAKqU,EAAerU,EAAEyC,OAAOrB,MAAM,KAKnDyG,EAAAA,cAAA,OAAK6C,UAAU,+CACb7C,EAAAA,cAAA,OAAK6C,UAAU,+BACb7C,EAAAA,cAACkO,EAAAA,EAAe,CAACC,KAAMS,EAAAA,IAAe/L,UAAU,0BAChD7C,EAAAA,cAAA,YAAM,aAERA,EAAAA,cAAA,OAAK6C,UAAU,+BACb7C,EAAAA,cAAA,QAAM6C,UAAU,yBAAyBsJ,EAAO,OAAS,QACzDnM,EAAAA,cAAA,UACE8C,QAAS,kBAAMsJ,GAASD,EAAK,EAC7BtJ,UAAS,wEAAAjH,OACPuQ,EAAO,cAAgB,gBAGzBnM,EAAAA,cAAA,OACE6C,UAAS,yFAAAjH,OACPuQ,EAAO,gBAAkB,uBASrCnM,EAAAA,cAAA,OAAK6C,UAAU,uEACb7C,EAAAA,cAAA,UAAQ6C,UAAU,8EAA6E,gBAG/F7C,EAAAA,cAAA,OAAK6C,UAAU,aACb7C,EAAAA,cAAA,UACE8C,QAAS6I,EACT9I,UAAU,+FACX,UAGD7C,EAAAA,cAAA,UACE8C,QAASwK,EACTzK,UAAU,8DACX,YASf,EC3KA,EArCoD,SAAHnI,GAAqC,IAADmU,EAAAC,EAAAC,EAAAC,EAA9BhI,EAAOtM,EAAPsM,QAAShC,EAActK,EAAdsK,eAC9D,OACEhF,EAAAA,cAAA,OACE1G,IAAK0N,EAAQjP,GACb8K,UAAU,iIACVC,QAAS,kBAAMkC,EAAegC,EAAQ,GAEtChH,EAAAA,cAAA,OAAK6C,UAAU,WAAWmE,EAAQhE,MAAQ,cAC1ChD,EAAAA,cAAA,OAAK6C,UAAU,4DACZ,IAAIpC,KAAKuG,EAAQC,WAAWzB,mBAAmB,GAAI,CAClDC,KAAM,UACNC,OAAQ,UACRC,QAAQ,IAET,MACA,IAAIlF,KAAKuG,EAAQQ,SAAShC,mBAAmB,GAAI,CAChDC,KAAM,UACNC,OAAQ,UACRC,QAAQ,KAGZ3F,EAAAA,cAAA,OAAK6C,UAAU,iDACb7C,EAAAA,cAAA,OAAK6C,UAAU,4BACG,QAAfgM,EAAA7H,EAAQiI,eAAO,IAAAJ,OAAA,EAAfA,EAAiBK,WAChBlP,EAAAA,cAAA,OACEmP,IAAoB,QAAjBL,EAAE9H,EAAQiI,eAAO,IAAAH,OAAA,EAAfA,EAAiBI,SACtBE,IAAoB,QAAjBL,EAAE/H,EAAQiI,eAAO,IAAAF,OAAA,EAAfA,EAAiB/L,KACtBH,UAAU,yBAGE,QADfmM,EACAhI,EAAQiI,eAAO,IAAAD,OAAA,EAAfA,EAAiBhM,OAK5B,ECeA,EA9C8C,SAAHtI,GAKpC,IAJL8F,EAAW9F,EAAX8F,YACAE,EAAQhG,EAARgG,SAEAsE,GADetK,EAAf6F,gBACc7F,EAAdsK,gBAEA,OACEhF,EAAAA,cAAA,OAAK6C,UAAU,wBAEb7C,EAAAA,cAAA,OAAK6C,UAAU,wGACZ6B,EAAYlE,GAAa5I,KAAI,SAACwJ,GAAI,OACjCpB,EAAAA,cAAA,OACE1G,IAAK8H,EAAKmB,cACVM,UAAU,kGAEV7C,EAAAA,cAAA,WAAMyE,EAASrD,EAAKgB,WACpBpC,EAAAA,cAAA,OACE6C,UAAS,QAAAjH,OACPwF,EAAK+E,kBAAmB,IAAI1F,MAAO0F,eAC/B,wGACA,KAGL/E,EAAKe,WAEJ,KAKVnC,EAAAA,cAAA,OAAK6C,UAAU,+DACZ6B,EAAYlE,GAAa5I,KAAI,SAACwJ,GAAI,OACjCpB,EAAAA,cAAA,OAAK1G,IAAK8H,EAAKmB,cAAeM,UAAU,+CACrCnC,EACEM,QAAO,SAACgG,GAAO,OAAK,IAAIvG,KAAKuG,EAAQC,WAAWd,iBAAmB/E,EAAK+E,cAAc,IACtFe,MAAK,SAACC,EAAGC,GAAC,OAAK,IAAI3G,KAAK0G,EAAEF,WAAWI,UAAY,IAAI5G,KAAK2G,EAAEH,WAAWI,SAAS,IAChFzP,KAAI,SAACoP,GAAO,OACXhH,EAAAA,cAACqP,EAAa,CAAC/V,IAAK0N,EAAQjP,GAAIiP,QAASA,EAAShC,eAAgBA,GAAkB,IAEpF,KAKhB,E,UC7CasK,EAA0D,SAAH5U,GAK7D,IAAD6U,EAAAC,EAAAC,EAAAC,EAJJ1I,EAAOtM,EAAPsM,QACA2E,EAAOjR,EAAPiR,QACAgE,EAAajV,EAAbiV,cACAC,EAAelV,EAAfkV,gBAEA,IAAK5I,EAAS,OAAO,KAErB,IAMM6I,EAAiB,SAACzO,EAAczG,GACpC,OAAO,IAAI8F,KAAKW,GAAMyC,eAAe,GAAI,CACvC4B,KAAM,UACNC,OAAQ,UACRC,QAAQ,EACR5B,MAAO,QACPE,IAAK,UACLtK,SAAUgB,GAEd,EAEA,OACEqF,EAAAA,cAAA,OACE6C,UAAU,iFACVC,QApBwB,SAAC3K,GACvBA,EAAEyC,SAAWzC,EAAEoO,eACjBoF,GAEJ,GAkBI3L,EAAAA,cAAA,OAAK6C,UAAU,2GACb7C,EAAAA,cAAA,OAAK6C,UAAU,yCACb7C,EAAAA,cAAA,UACE8C,QAAS,WACHgN,QAAQ,kDACVF,EAAgB5I,EAEpB,EACAnE,UAAU,iFAEV7C,EAAAA,cAAA,OAAK6C,UAAU,UAAUqB,KAAK,OAAOC,OAAO,eAAeC,QAAQ,aACjEpE,EAAAA,cAAA,QACEsE,cAAc,QACdC,eAAe,QACfC,YAAa,EACbH,EAAE,mIAIRrE,EAAAA,cAAA,UACE8C,QAAS,WACP6M,EAAc3I,EAChB,EACAnE,UAAU,iFAEV7C,EAAAA,cAAA,OAAK6C,UAAU,UAAUqB,KAAK,OAAOC,OAAO,eAAeC,QAAQ,aACjEpE,EAAAA,cAAA,QACEsE,cAAc,QACdC,eAAe,QACfC,YAAa,EACbH,EAAE,6HAIRrE,EAAAA,cAAA,UACE8C,QAAS6I,EACT9I,UAAU,iFAEV7C,EAAAA,cAAA,OAAK6C,UAAU,UAAUqB,KAAK,OAAOC,OAAO,eAAeC,QAAQ,aACjEpE,EAAAA,cAAA,QAAMsE,cAAc,QAAQC,eAAe,QAAQC,YAAa,EAAGH,EAAE,6BAK/D,QAAXkL,EAAA1T,OAAOkU,YAAI,IAAAR,OAAA,EAAXA,EAAaS,aACZhQ,EAAAA,cAAA,KACEpD,KAAI,mBAAAhB,OAAqBoL,EAAQjP,IACjC6C,OAAO,SACPqV,IAAI,sBACJpN,UAAU,yGAEV7C,EAAAA,cAAA,OAAK6C,UAAU,UAAUqB,KAAK,OAAOC,OAAO,eAAeC,QAAQ,aACjEpE,EAAAA,cAAA,QACEsE,cAAc,QACdC,eAAe,QACfC,YAAa,EACbH,EAAE,qMAMVrE,EAAAA,cAAA,MAAI6C,UAAU,yDAAyDmE,EAAQhE,MAE/EhD,EAAAA,cAAA,OAAK6C,UAAU,aACb7C,EAAAA,cAAA,OAAK6C,UAAU,8BACb7C,EAAAA,cAAA,OACE6C,UAAU,kDACVqB,KAAK,OACLC,OAAO,eACPC,QAAQ,aAERpE,EAAAA,cAAA,QACEsE,cAAc,QACdC,eAAe,QACfC,YAAa,EACbH,EAAE,iDAGNrE,EAAAA,cAAA,OAAK6C,UAAU,oCACZgN,EAAe7I,EAAQC,UAAWD,EAAQrM,UAC1C,MACAkV,EAAe7I,EAAQQ,QAASR,EAAQrM,UACzCqF,EAAAA,cAAA,OAAK6C,UAAU,4CAA4CmE,EAAQrM,aAI1D,QAAZ6U,EAAAxI,EAAQvF,YAAI,IAAA+N,OAAA,EAAZA,EAAcjD,cACbvM,EAAAA,cAAA,OAAK6C,UAAU,8BACb7C,EAAAA,cAAA,OACE6C,UAAU,kDACVqB,KAAK,OACLC,OAAO,eACPC,QAAQ,aAERpE,EAAAA,cAAA,QACEsE,cAAc,QACdC,eAAe,QACfC,YAAa,EACbH,EAAE,4BAGNrE,EAAAA,cAAA,OACE6C,UAAU,mCACVqN,wBAAyB,CACvBC,OAAQC,EAAAA,EAAUC,UAAqB,QAAZZ,EAAAzI,EAAQvF,YAAI,IAAAgO,OAAA,EAAZA,EAAclD,cAAe,QAM/DvF,EAAQlL,UACPkE,EAAAA,cAAA,OAAK6C,UAAU,8BACb7C,EAAAA,cAAA,OACE6C,UAAU,kDACVqB,KAAK,OACLC,OAAO,eACPC,QAAQ,aAERpE,EAAAA,cAAA,QACEsE,cAAc,QACdC,eAAe,QACfC,YAAa,EACbH,EAAE,uFAEJrE,EAAAA,cAAA,QACEsE,cAAc,QACdC,eAAe,QACfC,YAAa,EACbH,EAAE,sCAGNrE,EAAAA,cAAA,OAAK6C,UAAU,oCAAoCmE,EAAQlL,WAI/DkE,EAAAA,cAAA,OAAK6C,UAAU,0EACb7C,EAAAA,cAAA,OAAK6C,UAAU,4CAA4CyN,KAAKC,UAAUvJ,EAAS,KAAM,KAG3FhH,EAAAA,cAAA,OAAK6C,UAAU,wBACA,QAAZ6M,EAAA1I,EAAQvF,YAAI,IAAAiO,OAAA,EAAZA,EAAcc,eACbxQ,EAAAA,cAAA,UACE8C,QAAS,kBAAMjH,OAAO4U,KAAKzJ,EAAQvF,KAAK+O,aAAc,SAAS,EAC/D3N,UAAU,4FAEV7C,EAAAA,cAAA,OAAK6C,UAAU,UAAUqB,KAAK,OAAOC,OAAO,eAAeC,QAAQ,aACjEpE,EAAAA,cAAA,QACEsE,cAAc,QACdC,eAAe,QACfC,YAAa,EACbH,EAAE,wIAGNrE,EAAAA,cAAA,YAAM,wBAuBtB,EC5Ma0Q,EAA0D,SAAHhW,GAO7D,IANLsM,EAAOtM,EAAPsM,QACApB,EAASlL,EAATkL,UACAC,EAAOnL,EAAPmL,QACA8K,EAAMjW,EAANiW,OACAC,EAAQlW,EAARkW,SACAC,EAAQnW,EAARmW,SAEA5W,QAAQC,IAAI,UAAWoW,KAAKC,UAAUvJ,EAAS,KAAM,IAErD,IAAA8B,GAA0BC,EAAAA,EAAAA,WAAgB,OAAP/B,QAAO,IAAPA,OAAO,EAAPA,EAAShE,OAAQ,IAAGgG,GAAAL,EAAAA,EAAAA,GAAAG,EAAA,GAAhDiD,EAAK/C,EAAA,GAAEgD,EAAQhD,EAAA,GACtBG,GAAoDJ,EAAAA,EAAAA,UAAwB,MAAKK,GAAAT,EAAAA,EAAAA,GAAAQ,EAAA,GAA1E2H,EAAkB1H,EAAA,GAAE2H,EAAqB3H,EAAA,GAChD6C,GAAgClD,EAAAA,EAAAA,WAAS,GAAMmD,GAAAvD,EAAAA,EAAAA,GAAAsD,EAAA,GAAxC+E,EAAQ9E,EAAA,GAAE+E,EAAW/E,EAAA,GACtBgF,GAAWC,EAAAA,EAAAA,QAAyB,MAC1CC,EAAqCjR,IAA7BQ,EAASyQ,EAATzQ,UAAWO,EAAakQ,EAAblQ,cACnBmL,GAAgDtD,EAAAA,EAAAA,UAASnD,GAAU0G,GAAA3D,EAAAA,EAAAA,GAAA0D,EAAA,GAA5DgF,EAAgB/E,EAAA,GAAEgF,EAAmBhF,EAAA,GAC5CG,GAA4C1D,EAAAA,EAAAA,UAASlD,GAAQ6G,GAAA/D,EAAAA,EAAAA,GAAA8D,EAAA,GAAtD8E,EAAc7E,EAAA,GAAE8E,EAAiB9E,EAAA,IAExCvN,EAAAA,EAAAA,YAAU,WAAO,IAADsS,EACE,QAAhBA,EAAAP,EAASQ,eAAO,IAAAD,GAAhBA,EAAkBE,QACdhR,EAAUoH,OAAS,IAAM+I,GAC3BC,EAAsBpQ,EAAU,GAAG5I,GAEvC,GAAG,CAAC4I,IAEJ,IAQMiR,EAAU,eAAA9R,GAAA5E,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,IAAA,IAAAyW,EAAA,OAAA1W,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UACZuV,EAAmB,CAADzV,EAAAE,KAAA,QACa,OAAlCuW,MAAM,4BAA4BzW,EAAA0W,OAAA,iBAehC,GAXJd,GAAY,GAAM5V,EAAAC,KAAA,EAGVuW,EAAc,CAClB7K,QAAS,CACPhE,KAAM+I,GAAS,aACf9E,UAAWoK,EAAiB9O,cAC5BiF,QAAS+J,EAAehP,cACxByP,YAAalB,GAEfnW,SAAUf,KAAKC,iBAAiBC,kBAAkBH,UAGzC,OAAPqN,QAAO,IAAPA,IAAAA,EAASjP,GAAE,CAAAsD,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,EACPiG,EAAAA,EAAMyQ,IAAI,aAADrW,OAAcoL,EAAQjP,IAAM8Z,GAAa,KAAD,EAAAxW,EAAAE,KAAA,wBAAAF,EAAAE,KAAA,GAEjDiG,EAAAA,EAAM+L,KAAK,YAAasE,GAAa,KAAD,UAAAxW,EAAAE,KAAA,GAItC2F,IAAgB,KAAD,GAErByP,EAAO5E,GAAO1Q,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6B,GAAA7B,EAAA,SAEdpB,QAAQkD,MAAM,4BAA2B9B,EAAA6B,IACzC4U,MAAM,+CAA+C,QAElC,OAFkCzW,EAAAC,KAAA,GAErD2V,GAAY,GAAO5V,EAAA+B,OAAA,6BAAA/B,EAAAY,OAAA,GAAAb,EAAA,yBAEtB,kBAnCe,OAAA0E,EAAA3G,MAAA,KAAAC,UAAA,KAqChB,OACE4G,EAAAA,cAAA,OACE6C,UAAU,2FACVc,MAAO,CACLgD,IAAKkK,EAASlK,IACdE,KAAMgK,EAAShK,KACfjD,MAAO,QACPiH,OAAQ,KAEVG,YAAa,SAAC7S,GAAC,OAAKA,EAAEoF,iBAAiB,GAEvCyC,EAAAA,cAAA,OAAK6C,UAAU,2BACb7C,EAAAA,cAAA,SACEkS,IAAKhB,EACLlS,KAAK,OACLzF,MAAOwS,EACP7I,SAAU,SAAC/K,GAAC,OAAK6T,EAAS7T,EAAEyC,OAAOrB,MAAM,EACzC4Y,UA9Dc,SAACha,GACP,UAAVA,EAAEmB,IACJsY,IACmB,WAAVzZ,EAAEmB,KACXsX,GAEJ,EAyDQ5C,YAAY,YACZnL,UAAU,+FACVoL,WAAS,IAEXjO,EAAAA,cAAA,UAAQ8C,QAAS8N,EAAU/N,UAAU,wDACnC7C,EAAAA,cAAA,KAAG6C,UAAU,yDAGjB7C,EAAAA,cAAA,OAAK6C,UAAU,mCACb7C,EAAAA,cAAA,QAAM6C,UAAU,QACd7C,EAAAA,cAAA,KAAG6C,UAAU,gEAEf7C,EAAAA,cAAA,OAAK6C,UAAU,4CACb7C,EAAAA,cAAA,SACEhB,KAAK,OACLzF,MAAO8X,EAAiB9O,cAAcgM,MAAM,KAAK,GACjDrL,SAAU,SAAC/K,GACT,IAAMia,EAAU,IAAI3R,KAAKtI,EAAEyC,OAAOrB,OAC5B8Y,EAAe,IAAI5R,KAAK4Q,GAC9BgB,EAAahI,YAAY+H,EAAQpQ,cAAeoQ,EAAQnQ,WAAYmQ,EAAQjQ,WAC5EmP,EAAoBe,EACtB,EACAxP,UAAU,kGACT,IAAI,IACL,IACF7C,EAAAA,cAAA,SACEhB,KAAK,OACLzF,MAAOgY,EAAehP,cAAcgM,MAAM,KAAK,GAC/CrL,SAAU,SAAC/K,GACT,IAAMia,EAAU,IAAI3R,KAAKtI,EAAEyC,OAAOrB,OAC5B+Y,EAAa,IAAI7R,KAAK8Q,GAC5Be,EAAWjI,YAAY+H,EAAQpQ,cAAeoQ,EAAQnQ,WAAYmQ,EAAQjQ,WAC1EqP,EAAkBc,EACpB,EACAzP,UAAU,oGAIhB7C,EAAAA,cAAA,OAAK6C,UAAU,mCACb7C,EAAAA,cAAA,QAAM6C,UAAU,QACd7C,EAAAA,cAAA,KAAG6C,UAAU,uDAEf7C,EAAAA,cAAA,OAAK6C,UAAU,4CACb7C,EAAAA,cAAA,SACEhB,KAAK,OACLzF,MAAO8X,EAAiB7L,mBAAmB,GAAI,CAC7CC,KAAM,UACNC,OAAQ,UACRC,QAAQ,IAEVzC,SAAU,SAAC/K,GACT,IAAAoa,EAAyBpa,EAAEyC,OAAOrB,MAAMgV,MAAM,KAAIiE,GAAA7J,EAAAA,EAAAA,GAAA4J,EAAA,GAA3CE,EAAKD,EAAA,GAAEE,EAAOF,EAAA,GACfH,EAAe,IAAI5R,KAAK4Q,GAC9BgB,EAAa3L,SAASiM,SAASF,GAAQE,SAASD,IAChDpB,EAAoBe,EACtB,EACAxP,UAAU,kGACT,IAAI,IACL,IACF7C,EAAAA,cAAA,SACEhB,KAAK,OACLzF,MAAOgY,EAAe/L,mBAAmB,GAAI,CAC3CC,KAAM,UACNC,OAAQ,UACRC,QAAQ,IAEVzC,SAAU,SAAC/K,GACT,IAAAya,EAAyBza,EAAEyC,OAAOrB,MAAMgV,MAAM,KAAIsE,GAAAlK,EAAAA,EAAAA,GAAAiK,EAAA,GAA3CH,EAAKI,EAAA,GAAEH,EAAOG,EAAA,GACfP,EAAa,IAAI7R,KAAK8Q,GAC5Be,EAAW5L,SAASiM,SAASF,GAAQE,SAASD,IAC9ClB,EAAkBc,EACpB,EACAzP,UAAU,oGAIhB7C,EAAAA,cAAA,OAAK6C,UAAU,mCACb7C,EAAAA,cAAA,QAAM6C,UAAU,QACd7C,EAAAA,cAAA,KAAG6C,UAAU,yDAEf7C,EAAAA,cAAA,UACE6C,UAAU,mGACViQ,aAAa,mBAEb9S,EAAAA,cAAA,UAAQzG,MAAM,mBAAkB,mBAChCyG,EAAAA,cAAA,UAAQzG,MAAM,SAAQ,SACtByG,EAAAA,cAAA,UAAQzG,MAAM,UAAS,UACvByG,EAAAA,cAAA,UAAQzG,MAAM,WAAU,WACxByG,EAAAA,cAAA,UAAQzG,MAAM,UAAS,YAG3ByG,EAAAA,cAAA,OAAK6C,UAAU,mCACb7C,EAAAA,cAAA,QAAM6C,UAAU,QACd7C,EAAAA,cAAA,KAAG6C,UAAU,gEAEf7C,EAAAA,cAAA,UACEzG,MAAOuX,GAAsB,GAC7B5N,SAAU,SAAC/K,GAAC,OAAK4Y,EAAsBgC,OAAO5a,EAAEyC,OAAOrB,OAAO,EAC9DsJ,UAAU,oGAETlC,EAAU/I,KAAI,SAACmL,GAAQ,OACtB/C,EAAAA,cAAA,UAAQ1G,IAAKyJ,EAAShL,GAAIwB,MAAOwJ,EAAShL,IACvCgL,EAASK,MACH,MAIfpD,EAAAA,cAAA,OAAK6C,UAAU,yBACb7C,EAAAA,cAAA,UACE8C,QAAS8O,EACToB,SAAUhC,IAAaF,EACvBjO,UAAU,6KAETmO,EAAW,YAAc,SAKpC,E,qkBCLA,MAzMA,WACE,IAAAlI,GAAsCC,EAAAA,EAAAA,UAAuB,UAASC,GAAAL,EAAAA,EAAAA,GAAAG,EAAA,GAA/DxF,EAAW0F,EAAA,GAAEzF,EAAcyF,EAAA,GAClCiK,ECbyB,WACzB,IAAA7B,EAYIjR,IAXFG,EAAiB8Q,EAAjB9Q,kBACAC,EAAe6Q,EAAf7Q,gBACAC,EAAW4Q,EAAX5Q,YACAE,EAAQ0Q,EAAR1Q,SACAE,EAASwQ,EAATxQ,UACAD,EAASyQ,EAATzQ,UACgBuS,EAAoB9B,EAApCvQ,eACAM,EAAciQ,EAAdjQ,eACAE,EAAkB+P,EAAlB/P,mBACAC,EAAc8P,EAAd9P,eACAJ,EAAakQ,EAAblQ,cAQF,OALA/B,EAAAA,EAAAA,YAAU,WACRmC,IACAJ,GACF,GAAG,IAEI,CACLZ,kBAAAA,EACAC,gBAAAA,EACAC,YAAAA,EACAE,SAAAA,EACAE,UAAAA,EACAD,UAAAA,EACAuS,qBAAAA,EACA/R,eAAAA,EACAE,mBAAAA,EACAH,cAAAA,EAEJ,CDVMiS,GARF7S,EAAiB2S,EAAjB3S,kBACAC,EAAe0S,EAAf1S,gBACAC,EAAWyS,EAAXzS,YACAE,EAAQuS,EAARvS,SACAC,EAASsS,EAATtS,UACAuS,EAAoBD,EAApBC,qBACA/R,EAAc8R,EAAd9R,eACAD,EAAa+R,EAAb/R,cAGFiI,GAAsDJ,EAAAA,EAAAA,WAAS,GAAMK,GAAAT,EAAAA,EAAAA,GAAAQ,EAAA,GAA9DiK,EAAmBhK,EAAA,GAAEiK,EAAsBjK,EAAA,GAClD6C,GAA8ClD,EAAAA,EAAAA,UAAyB,MAAKmD,GAAAvD,EAAAA,EAAAA,GAAAsD,EAAA,GAArEqH,EAAepH,EAAA,GAAEqH,EAAkBrH,EAAA,GAC1CG,GAAoCtD,EAAAA,EAAAA,WAAS,GAAMuD,GAAA3D,EAAAA,EAAAA,GAAA0D,EAAA,GAA5CjH,EAAUkH,EAAA,GAAErH,EAAaqH,EAAA,GAChCG,GAA4C1D,EAAAA,EAAAA,UAAS,CAAEpC,IAAK,EAAGE,KAAM,IAAI6F,GAAA/D,EAAAA,EAAAA,GAAA8D,EAAA,GAAlEjE,EAAckE,EAAA,GAAExH,EAAiBwH,EAAA,GACxCE,GAAwC7D,EAAAA,EAAAA,UAO9B,MAAK8D,GAAAlE,EAAAA,EAAAA,GAAAiE,EAAA,GAPRvH,EAAYwH,EAAA,GAAE1H,EAAe0H,EAAA,GAiC9B7H,EAAiB,SAACgC,GACtB/M,QAAQC,IAAI,iBAAkBoW,KAAKC,UAAUvJ,EAAS,KAAM,IAE5DuM,EAAmBvM,GAEnB,IAAMwM,EAAiBha,SAASia,eAAe,WAAD7X,OAAYoL,EAAQjP,KAClE,GAAIyb,EAAgB,CAClB,IAAMlN,EAAOkN,EAAehN,wBAC5BtB,EAAkB,CAAEyB,IAAKL,EAAKK,IAAKE,KAAMP,EAAKO,KAAO,KACvD,CACF,EAEM0B,EAAkB,SAAC3C,EAAiBC,EAAeQ,GACvDpM,QAAQC,IAAI,oBAAqB,CAAE0L,UAAAA,EAAWC,QAAAA,EAASQ,QAAAA,GACzD,EAEMuJ,GAAkB9Q,EAAAA,EAAAA,cAAY,SAACkI,GACnCxF,EAAAA,EAAK,OAAQ,aAAD5F,OAAcoL,EAAQjP,KAAM2b,MAAK,WAC3CH,EAAmB,MACnBrS,GACF,GACF,GAAG,IAEGyO,GAAgB7Q,EAAAA,EAAAA,cAAY,SAACkI,GACjC/B,GAAc,GAEdhL,QAAQC,IAAI,mBAAoB8M,GAEhC,IAAMwM,EAAiBha,SAASia,eAAe,WAAD7X,OAAYoL,EAAQjP,KAClE,GAAIyb,EAAgB,CAClBvZ,QAAQC,IAAI,mBAAoBsZ,GAChC,IAAMlN,EAAOkN,EAAehN,wBAC5BtB,EAAkB,CAAEyB,IAAKL,EAAKK,IAAKE,KAAMP,EAAKO,KAAO,MACrD1B,EAAerB,EAAAA,EAAC,CAAC,EACZkD,GAAO,IACVjP,GAAIgb,OAAO/L,EAAQjP,IACnB6N,UAAW,IAAInF,KAAKuG,EAAQC,WAC5BpB,QAAS,IAAIpF,KAAKuG,EAAQQ,SAC1Bb,IAAKL,EAAKK,IACVC,OAAQN,EAAKM,OACbP,QAAS,IAAI5F,KAAKuG,EAAQC,cAE5BsM,EAAmB,KACrB,MACEtZ,QAAQkD,MAAM,4BAElB,GAAG,IAEH,OACE6C,EAAAA,cAAA,OAAK6C,UAAU,8CACb7C,EAAAA,cAAA,OAAK6C,UAAU,eACb7C,EAAAA,cAAA,OAAK6C,UAAU,yBACb7C,EAAAA,cAAC0C,EAAO,CACN/B,UAAWA,EACXL,kBAAmBA,EACnBqC,iBAAkBuQ,EAClBtQ,oBAAqB,kBAAMyQ,GAAuB,EAAK,KAI3DrT,EAAAA,cAAA,OAAK6C,UAAU,yEACb7C,EAAAA,cAACqD,EAAc,CACb7C,YAAaA,EACb8C,YAAaA,EACb/C,gBAAiBA,EACjBgD,eAAgBA,EAChBC,UAlFQ,WAChBrC,EAAe,IAAIV,KACrB,EAiFUgD,aAA8B,UAAhBH,EA3FE,WACxBnC,EAAe,IAAIV,KAAKD,EAAYwB,cAAexB,EAAYyB,WAAa,EAAG,GACjF,EAUyB,WACvB,IAAMmQ,EAAU,IAAI3R,KAAKD,GACzB4R,EAAQlQ,QAAQkQ,EAAQjQ,UAAY,GACpChB,EAAeiR,EACjB,EA4EU1O,SAA0B,UAAhBJ,EAxFE,WACpBnC,EAAe,IAAIV,KAAKD,EAAYwB,cAAexB,EAAYyB,WAAa,EAAG,GACjF,EAYqB,WACnB,IAAMmQ,EAAU,IAAI3R,KAAKD,GACzB4R,EAAQlQ,QAAQkQ,EAAQjQ,UAAY,GACpChB,EAAeiR,EACjB,IAyEU,WACA,OAAQ9O,GACN,IAAK,QACH,OACEtD,EAAAA,cAAC+E,EAAS,CACRvE,YAAaA,EACbE,SAAUA,EACVH,gBAAiBA,EACjByE,eAAgBA,EAChBC,cAAeA,EACfC,kBAAmBA,EACnBC,gBAAiBA,EACjBC,WAAYA,EACZC,aAAcA,IAGpB,IAAK,OACH,OACErF,EAAAA,cAACsI,EAAQ,CACP9H,YAAaA,EACbE,SAAUA,EACVH,gBAAiBA,EACjBgI,gBAAiBA,EACjBvD,eAAgBA,EAChBI,WAAYA,EACZoD,eAAgBA,EAChBvD,cAAeA,EACfC,kBAAmBA,EACnBC,gBAAiBA,EACjBE,aAAcA,IAGpB,IAAK,SACH,OACErF,EAAAA,cAAC2T,EAAU,CACTjT,SAAUA,EACVF,YAAaA,EACbD,gBAAiBA,EACjByE,eAAgBA,IAGtB,QACE,OAAO,KAEb,CA5CE,KAgDNhF,EAAAA,cAACyL,EAAa,CAACC,OAAQ0H,EAAqBzH,QAAS,kBAAM0H,GAAuB,EAAM,IAExFrT,EAAAA,cAACsP,EAAmB,CAClBtI,QAASsM,EACT3H,QAAS,kBAAM4H,EAAmB,KAAK,EACvC5D,cAAeA,EACfC,gBAAiBA,IAGlBxK,GAAcC,GACbrF,EAAAA,cAAC0Q,EAAmB,CAClB1J,QAAS3B,EACTO,UAAWP,EAAaO,UACxBC,QAASR,EAAaQ,QACtBgL,SAAUrI,EACVmI,OAAQ,SAAC5E,GACHxD,GACFA,EAAgBlD,EAAaO,UAAWP,EAAaQ,QAASR,EAAagB,SAE7EpB,GAAc,GACdE,EAAgB,KAClB,EACAyL,SAAU,WACR3L,GAAc,GACdE,EAAgB,KAClB,IAKV,EEhKA,EAvCmC,SAAHzK,GAAuC,IAAjC+G,EAAI/G,EAAJ+G,KAAMmS,EAAOlZ,EAAPkZ,QAASC,EAAUnZ,EAAVmZ,WACnD,OACE7T,EAAAA,cAAA,OAAK6C,UAAU,mBACb7C,EAAAA,cAAA,SAAO6C,UAAU,4DACf7C,EAAAA,cAAA,SAAO6C,UAAU,+BACf7C,EAAAA,cAAA,UACG4T,EAAQhc,KAAI,SAACkc,GAAM,OAClB9T,EAAAA,cAAA,MACE1G,IAAKwa,EAAOxa,IACZuJ,UAAU,qGAETiR,EAAOC,OACL,MAIX/T,EAAAA,cAAA,SAAO6C,UAAU,2EACdpB,EAAK7J,KAAI,SAACoc,EAAKC,GAAQ,OACtBjU,EAAAA,cAAA,MACE1G,IAAK2a,EACLnR,QAAS,kBAAgB,OAAV+Q,QAAU,IAAVA,OAAU,EAAVA,EAAaG,EAAI,EAChCnR,UAAS,2CAAAjH,OAA6CiY,EAAa,iBAAmB,KAErFD,EAAQhc,KAAI,SAACkc,GAAM,OAClB9T,EAAAA,cAAA,MACE1G,IAAKwa,EAAOxa,IACZuJ,UAAU,wEAETiR,EAAOI,OAASJ,EAAOI,OAAOF,EAAIF,EAAOxa,KAAM0a,GAAOA,EAAIF,EAAOxa,KAC/D,IAEJ,MAMjB,E,qkBCrCA,IAsEA,EAtEgD,SAAHoB,GAStC,IARLyZ,EAAOzZ,EAAPyZ,QACAC,EAAc1Z,EAAd0Z,eACAC,EAAa3Z,EAAb2Z,cACAC,EAAc5Z,EAAd4Z,eACAC,EAAW7Z,EAAX6Z,YACAC,EAAY9Z,EAAZ8Z,aACAC,EAAc/Z,EAAd+Z,eACAC,EAAcha,EAAdga,eAEA,OACE1U,EAAAA,cAAA,OAAK6C,UAAU,kFACb7C,EAAAA,cAAA,OAAK6C,UAAU,uFACb7C,EAAAA,cAAA,MAAI6C,UAAU,0DAAyD,WACvE7C,EAAAA,cAAA,UACE8C,QAASyR,EACT1R,UAAU,iEACX,UAIH7C,EAAAA,cAAA,OAAK6C,UAAU,mBACZsR,EAAQvc,KAAI,SAAC+c,GAAM,OAClB3U,EAAAA,cAAA,OACE1G,IAAKqb,EAAO5c,GACZ8K,UAAS,sBAAAjH,OACPwY,IAAmBO,EAAO5c,GACtB,+BACA,2CAA0C,oBAGhDiI,EAAAA,cAAA,OAAK8C,QAAS,kBAAMwR,EAAeK,EAAO5c,GAAG,IAC7B,OAAbsc,QAAa,IAAbA,OAAa,EAAbA,EAAetc,MAAO4c,EAAO5c,GAC5BiI,EAAAA,cAAA,SACEhB,KAAK,OACLzF,MAAO8a,EAAcrR,KACrBE,SAAU,SAAC/K,GAAC,OAAKqc,EAAY1Q,EAAAA,EAAC,CAAC,EAAIuQ,GAAa,IAAErR,KAAM7K,EAAEyC,OAAOrB,QAAQ,EACzEqb,OAAQ,kBAAMH,EAAeE,EAAO5c,GAAIsc,EAAcrR,KAAK,EAC3DH,UAAU,gFACVoL,WAAS,IAGXjO,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,MAAI6C,UAAU,gDAAgD8R,EAAO3R,MACrEhD,EAAAA,cAAA,KAAG6C,UAAU,qDAAqD8R,EAAOE,cACzE7U,EAAAA,cAAA,QAAM6C,UAAU,4CAA4C8R,EAAOG,cAIzE9U,EAAAA,cAAA,OAAK6C,UAAU,4DACb7C,EAAAA,cAAA,UACE8C,QAAS,kBAAM0R,EAAaG,EAAO,EACnC9R,UAAU,qFACX,gBAGD7C,EAAAA,cAAA,UACE8C,QAAS,kBAAM4R,EAAeC,EAAO5c,GAAG,EACxC8K,UAAU,2DACX,uBAIC,KAKhB,E,oBCdA,EA1C8C,SAAHnI,GAA+C,IAAzCqE,EAAOrE,EAAPqE,QAAiBgW,GAAFra,EAANsa,OAAwBta,EAAhBqa,kBAC1DE,EAA2B,QAAnBlW,EAAQmW,OAEtB,OACElV,EAAAA,cAAA,OAAK6C,UAAS,QAAAjH,OAAUqZ,EAAQ,gBAAkB,cAAa,UAC7DjV,EAAAA,cAAA,OACE6C,UAAS,eAAAjH,OACPqZ,EAAQ,4BAA8B,yBAAwB,4CAGhEjV,EAAAA,cAAA,OAAK6C,UAAU,uBACZ9D,EAAQjC,KACTkD,EAAAA,cAAA,QAAM6C,UAAU,iDACb,IAAIpC,KAAK1B,EAAQoW,YAAY3P,uBAIjCzG,EAAQqW,WAAarW,EAAQqW,UAAUrN,OAAS,GAC/C/H,EAAAA,cAAA,OAAK6C,UAAU,2DACb7C,EAAAA,cAAA,OAAK6C,UAAU,4BAA2B,cAC1C7C,EAAAA,cAAA,OAAK6C,UAAU,wBACZ9D,EAAQqW,UAAUxd,KAAI,SAACyd,GAAQ,OAC9BrV,EAAAA,cAAA,UACE1G,IAAK+b,EAAStd,GACd+K,QAAS,kBAAMiS,EAAiBM,EAAS,EACzCxS,UAAS,6BAAAjH,OACPqZ,EACI,gEACA,yBAAwB,wCAG7BI,EAAStJ,OAASsJ,EAASC,cACrB,OAQzB,E,qkBC7BA,IAyUA,EAzUuB,WAAO,IAADC,EAgClBC,EAYAC,EA3CHC,GAAWC,EAAAA,EAAAA,MACXnX,GAAcK,EAAAA,EAAAA,MACpBiK,GAAoCC,EAAAA,EAAAA,UAAS,IAAGC,GAAAL,EAAAA,EAAAA,GAAAG,EAAA,GAAzC8M,EAAU5M,EAAA,GAAE6M,EAAa7M,EAAA,GAChCG,GAA4CJ,EAAAA,EAAAA,WAAS,GAAMK,GAAAT,EAAAA,EAAAA,GAAAQ,EAAA,GAC3D8C,GADqB7C,EAAA,GAAmBA,EAAA,IACIL,EAAAA,EAAAA,UAAwB,OAAKmD,GAAAvD,EAAAA,EAAAA,GAAAsD,EAAA,GAAlEmI,EAAclI,EAAA,GAAE4J,EAAiB5J,EAAA,GACxCG,GAA0CtD,EAAAA,EAAAA,UAA4B,MAAKuD,GAAA3D,EAAAA,EAAAA,GAAA0D,EAAA,GAApEgI,EAAa/H,EAAA,GAAEyJ,EAAgBzJ,EAAA,GACtCG,GAAoC1D,EAAAA,EAAAA,WAAS,GAAM2D,GAAA/D,EAAAA,EAAAA,GAAA8D,EAAA,GAA5CuJ,EAAUtJ,EAAA,GAAEuJ,EAAavJ,EAAA,GAC1BwJ,GAAe/E,EAAAA,EAAAA,QAAyB,MACxCgF,GAAiBhF,EAAAA,EAAAA,QAAuB,MACxCiF,GAAmBjF,EAAAA,EAAAA,QAAuB,MAChDvE,GAAgD7D,EAAAA,EAAAA,UAA0B,MAAK8D,GAAAlE,EAAAA,EAAAA,GAAAiE,EAAA,GAAxEyJ,EAAgBxJ,EAAA,GAAEyJ,EAAmBzJ,EAAA,GAEtC0J,EAAiB,WACjBH,EAAiB1E,UACnB0E,EAAiB1E,QAAQ5H,UAAYsM,EAAiB1E,QAAQ8E,aAElE,EAaAC,GAA+BC,EAAAA,EAAAA,GAAS,CACtCxX,SAAU,CAAC,WACXyX,SAAOnB,GAAAta,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAC,IAAA,IAAAgB,EAAA,OAAAjB,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACgBiG,EAAAA,EAAMnB,IAAI,qBAAqB,KAAD,EAGpD,OAHKjE,EAAQf,EAAAwB,MACD4E,KAAKsG,OAAS,IAAMqM,GAC/B0B,EAAkB1Z,EAASqF,KAAK,GAAG1J,IACpCsD,EAAA0W,OAAA,SACM3V,EAASqF,MAAI,wBAAApG,EAAAY,OAAA,GAAAb,EAAA,KACrB,kBAAAoa,EAAArc,MAAA,KAAAC,UAAA,KACDwd,EAAAH,EATMhV,KAAM0S,OAAO,IAAAyC,EAAG,GAAEA,EAY1BC,GAAgCH,EAAAA,EAAAA,GAAS,CACvCxX,SAAU,CAAC,WAAYkV,GACvBuC,SAAOlB,GAAAva,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAgB,IAAA,IAAAC,EAAA,OAAAjB,IAAAA,MAAA,SAAAuB,GAAA,cAAAA,EAAApB,KAAAoB,EAAAnB,MAAA,UACF6Y,EAAe,CAAD1X,EAAAnB,KAAA,eAAAmB,EAAAqV,OAAA,SAAS,IAAE,cAAArV,EAAAnB,KAAA,EACPiG,EAAAA,EAAMnB,IAAI,qBAADzE,OAAsBwY,EAAc,cAAa,KAAD,EAAlE,OAARhY,EAAQM,EAAAG,KAAAH,EAAAqV,OAAA,SACP3V,EAASqF,MAAI,wBAAA/E,EAAAT,OAAA,GAAAE,EAAA,KACrB,kBAAAsZ,EAAAtc,MAAA,KAAAC,UAAA,GACD0d,UAAW1C,EACX2C,UAAW,WAETR,GACF,IACAS,EAAAH,EAZMpV,KAAMwV,OAAQ,IAAAD,EAAG,GAAEA,GAe3B7X,EAAAA,EAAAA,YAAU,WACRoX,GACF,GAAG,CAACU,IAGJ,IACYC,EAgDAC,EAeAC,EAcAC,EA0DYhC,GAxIlBiC,IAAsBC,EAAAA,EAAAA,GAAY,CACtCC,YAAUN,GAAAhc,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAsc,EAAA/c,GAAA,IAAAgd,EAAA5a,EAAAV,EAAA,OAAAjB,IAAAA,MAAA,SAAAwc,GAAA,cAAAA,EAAArc,KAAAqc,EAAApc,MAAA,OACU,OADDmc,EAAQhd,EAARgd,SAAU5a,EAAIpC,EAAJoC,KAC7BmZ,GAAc,GAAM0B,EAAArc,KAAA,EAAAqc,EAAApc,KAAA,EAEKiG,EAAAA,EAAM+L,KAAK,qBAAD3R,OACV8b,EAAQ,aAC7B,CACE3Y,QAAS,CACPjC,KAAAA,EACAoY,OAAQ,SAGZ,CACE0C,aAAc,SACdC,mBAAoB,SAACC,GACJA,EAAcvd,MAAMK,OAAOmd,aACvCxJ,MAAM,MACNvN,QAAO,SAACgX,GAAI,OAAKA,EAAKC,WAAW,SAAS,IAEtCC,SAAQ,SAACC,GACd,IACE,IAAM5d,EAAQ+V,KAAK8H,MAAMD,EAAUE,MAAM,IAEzC7Z,EAAY8Z,aAAa,CAAC,WAAYlE,IAAiB,SAACmE,GACtD,OAAKA,EACEA,EAAQ3gB,KAAI,SAAC4gB,GAAG,OACrBA,EAAIzgB,KAAOwC,EAAMke,UAAS3U,EAAAA,EAAA,GAAQ0U,GAAG,IAAE1b,KAAM0b,EAAI1b,KAAOvC,EAAMme,UAAYF,CAAG,IAF1DD,CAIvB,GACF,CAAE,MAAOpgB,GACP8B,QAAQkD,MAAM,qBAAsBhF,EACtC,CACF,GACF,IAEF,KAAD,EA/Ba,OAARiE,EAAQub,EAAA9a,KAAA8a,EAAA5F,OAAA,SAgCP3V,EAASqF,MAAI,OAEC,OAFDkW,EAAArc,KAAA,EAEpB2a,GAAc,GAAO0B,EAAAva,OAAA,4BAAAua,EAAA1b,OAAA,GAAAwb,EAAA,sBAExB,SAAAvb,GAAA,OAAAgb,EAAA/d,MAAA,KAAAC,UAAA,GACD2d,UAAW,WACTvY,EAAYS,kBAAkB,CAAEC,SAAU,CAAC,WAAYkV,KACvD5V,EAAYS,kBAAkB,CAAEC,SAAU,CAAC,YAC7C,IAIIyZ,IAAuBpB,EAAAA,EAAAA,GAAY,CACvCC,YAAUL,GAAAjc,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAyd,EAAO5V,GAAY,IAAA5G,EAAA,OAAAjB,IAAAA,MAAA,SAAA0d,GAAA,cAAAA,EAAAvd,KAAAud,EAAAtd,MAAA,cAAAsd,EAAAtd,KAAA,EACNiG,EAAAA,EAAM+L,KAAK,oBAAqB,CACrDuL,YAAa,CAAE9V,KAAAA,KACd,KAAD,EAFY,OAAR5G,EAAQyc,EAAAhc,KAAAgc,EAAA9G,OAAA,SAGP3V,EAASqF,MAAI,wBAAAoX,EAAA5c,OAAA,GAAA2c,EAAA,KACrB,SAAAG,GAAA,OAAA5B,EAAAhe,MAAA,KAAAC,UAAA,GACD2d,UAAW,SAACiC,GACVxa,EAAYS,kBAAkB,CAAEC,SAAU,CAAC,aAC3C4W,EAAkBkD,EAAUjhB,IAC5B6R,YAAW,eAAAqP,EAAA,OAA0B,QAA1BA,EAAM/C,EAAaxE,eAAO,IAAAuH,OAAA,EAApBA,EAAsBtH,OAAO,GAAE,EAClD,IAIIuH,IAAuB3B,EAAAA,EAAAA,GAAY,CACvCC,YAAUJ,GAAAlc,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAge,EAAArZ,GAAA,IAAA4X,EAAA1U,EAAA5G,EAAA,OAAAjB,IAAAA,MAAA,SAAAie,GAAA,cAAAA,EAAA9d,KAAA8d,EAAA7d,MAAA,OAAuB,OAAdmc,EAAQ5X,EAAR4X,SAAU1U,EAAIlD,EAAJkD,KAAIoW,EAAA7d,KAAA,EACViG,EAAAA,EAAMyQ,IAAI,qBAADrW,OAAsB8b,GAAY,CAChEoB,YAAa,CAAE9V,KAAAA,KACd,KAAD,EAFY,OAAR5G,EAAQgd,EAAAvc,KAAAuc,EAAArH,OAAA,SAGP3V,EAASqF,MAAI,wBAAA2X,EAAAnd,OAAA,GAAAkd,EAAA,KACrB,SAAAE,GAAA,OAAAjC,EAAAje,MAAA,KAAAC,UAAA,GACD2d,UAAW,WACTvY,EAAYS,kBAAkB,CAAEC,SAAU,CAAC,aAC3C6W,EAAiB,KACnB,IAIIuD,IAAuB/B,EAAAA,EAAAA,GAAY,CACvCC,YAAUH,GAAAnc,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAoe,EAAO7B,GAAgB,OAAAvc,IAAAA,MAAA,SAAAqe,GAAA,cAAAA,EAAAle,KAAAke,EAAAje,MAAA,cAAAie,EAAAje,KAAA,EAC3BiG,EAAAA,EAAK,OAAQ,qBAAD5F,OAAsB8b,IAAY,KAAD,SAAA8B,EAAAzH,OAAA,SAC5C2F,GAAQ,wBAAA8B,EAAAvd,OAAA,GAAAsd,EAAA,KAChB,SAAAE,GAAA,OAAApC,EAAAle,MAAA,KAAAC,UAAA,GACD2d,UAAW,SAAC2C,GAEV,GADAlb,EAAYS,kBAAkB,CAAEC,SAAU,CAAC,aACvCkV,IAAmBsF,EAAiB,CACtC,IAAMC,EAAaxF,EAAQyF,MAAK,SAACC,GAAC,OAAKA,EAAE9hB,KAAO2hB,CAAe,IAC/D5D,GAA4B,OAAV6D,QAAU,IAAVA,OAAU,EAAVA,EAAY5hB,KAAM,KACtC,CACF,IAGI+hB,GAAU,eAAAC,GAAA7e,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAA6e,EAAO7hB,GAAkB,OAAAgD,IAAAA,MAAA,SAAA8e,GAAA,cAAAA,EAAA3e,KAAA2e,EAAA1e,MAAA,OACvB,GAAnBpD,EAAE+hB,iBACGtE,EAAWpH,QAAW4F,EAAc,CAAA6F,EAAA1e,KAAA,eAAA0e,EAAAlI,OAAA,iBAEzCuF,GAAoB6C,OAClB,CAAEzC,SAAUtD,EAAgBtX,KAAM8Y,GAClC,CACEmB,UAAW,WACTlB,EAAc,GAChB,IAEF,wBAAAoE,EAAAhe,OAAA,GAAA+d,EAAA,KACH,gBAZeI,GAAA,OAAAL,EAAA5gB,MAAA,KAAAC,UAAA,KAyCVihB,IAdYxS,MAAMC,KAAK,CAAEC,OAAQ,KAAMnQ,KAAI,SAACoQ,EAAGsS,GAAK,MAAM,CAC9DviB,GAAIuiB,EAAQ,EACZvO,MAAM,eAADnQ,OAAiB0e,EAAQ,GAC9BC,OAAQD,EAAQ,IAAM,EAAI,SAAW,UACrClZ,MAAM,IAAIX,MAAO+Z,qBAClB,IAS+B,SAACC,GAC/B/E,EAAS,kBAAD9Z,OAAmB6e,EAAa1iB,IAC1C,GAiBA,OACEiI,EAAAA,cAAA,OAAK6C,UAAU,yBACb7C,EAAAA,cAAC0a,EAAW,CACVvG,QAASA,EACTC,eAAgBA,EAChBC,cAAeA,EACfC,eAAgBwB,EAChBvB,YAAa,WACXoE,GAAqBwB,OAAO,WAC9B,EACA3F,aAAcuB,EACdtB,eAzDe,SAACiD,EAAkBiD,GACtCzB,GAAqBiB,OAAO,CAAEzC,SAAAA,EAAU1U,KAAM2X,GAChD,EAwDMjG,eAtDe,SAACgD,GACf7b,OAAOiU,QAAQ,iDACpBwJ,GAAqBa,OAAOzC,EAC9B,IAuDKtD,GACCpU,EAAAA,cAAA,OAAK6C,UAAU,+DAEb7C,EAAAA,cAAA,OAAK6C,UAAU,iHACZuR,EACCpU,EAAAA,cAAA,MAAI6C,UAAU,uDACiC,QADoB0S,EAChEpB,EAAQyF,MAAK,SAACC,GAAC,OAAKA,EAAE9hB,KAAOqc,CAAc,WAAC,IAAAmB,OAAA,EAA5CA,EAA8CvS,MAGjDhD,EAAAA,cAAA,MAAI6C,UAAU,uDAAsD,SAIxE7C,EAAAA,cAAA,OAAKkS,IAAKkE,EAAkBvT,UAAU,gDACnCoU,EAASrf,KAAI,SAACmH,EAASub,GAAK,OAC3Bta,EAAAA,cAAC4a,EAAU,CACTthB,IAAKyF,EAAQhH,GACbgH,QAASA,EACTiW,OAAQsF,IAAUrD,EAASlP,OAAS,EACpCgN,iBAAkBuB,GAClB,IAEHN,GACChW,EAAAA,cAAA,OAAK6C,UAAU,sBACb7C,EAAAA,cAAA,OAAK6C,UAAU,kGACb7C,EAAAA,cAAA,OAAK6C,UAAU,kBACb7C,EAAAA,cAAA,OACE6C,UAAU,kDACVc,MAAO,CAAEkX,eAAgB,SAE3B7a,EAAAA,cAAA,OACE6C,UAAU,kDACVc,MAAO,CAAEkX,eAAgB,WAE3B7a,EAAAA,cAAA,OACE6C,UAAU,kDACVc,MAAO,CAAEkX,eAAgB,cAMnC7a,EAAAA,cAAA,OAAKkS,IAAKiE,KAGZnW,EAAAA,cAAA,QACE8a,SAAUhB,GACVjX,UAAU,+EAEV7C,EAAAA,cAAA,OAAK6C,UAAU,kBACb7C,EAAAA,cAAA,SACEkS,IAAKgE,EACLlX,KAAK,OACLzF,MAAOqc,EACP1S,SAAU,SAAC/K,GAAC,OAAK0d,EAAc1d,EAAEyC,OAAOrB,MAAM,EAC9CyU,YAAY,uBACZnL,UAAU,oOAMZ7C,EAAAA,cAAA,UACEhB,KAAK,SACL6D,UAAU,qHACX,WASRwT,GACCrW,EAAAA,cAAA,OAAK6C,UAAU,+FACb7C,EAAAA,cAAA,OAAK6C,UAAU,uFACb7C,EAAAA,cAAA,MAAI6C,UAAU,uDAAuDwT,EAAiBtK,OACtF/L,EAAAA,cAAA,UACE8C,QAAS,kBAAMwT,EAAoB,KAAK,EACxCzT,UAAU,6DAEV7C,EAAAA,cAAA,OACE+a,MAAM,6BACNlY,UAAU,2CACVqB,KAAK,OACLE,QAAQ,YACRD,OAAO,gBAEPnE,EAAAA,cAAA,QAAMsE,cAAc,QAAQC,eAAe,QAAQC,YAAa,EAAGH,EAAE,4BAI3ErE,EAAAA,cAAA,OAAK6C,UAAU,wBA1Hd,WAFewS,GA4HsCgB,GA3H3Cf,cAGXtV,EAAAA,cAACgb,EAAS,CACRvZ,KAAM4T,GAAS5T,KAAKwZ,KACpBrH,QAASyB,GAAS5T,KAAKmS,QACvBC,WAAYwG,KAIT,OAsHf,E,ykBCzTA,IA8TA,GA9TgC,WAC9B,IAAM3E,GAAWC,EAAAA,EAAAA,MACjB7M,GAA0CC,EAAAA,EAAAA,UAAyB,IAAGC,GAAAL,EAAAA,EAAAA,GAAAG,EAAA,GAA/DoS,EAAalS,EAAA,GAAEmS,EAAgBnS,EAAA,GACtCG,GAA8BJ,EAAAA,EAAAA,WAAS,GAAKK,GAAAT,EAAAA,EAAAA,GAAAQ,EAAA,GAArCiS,EAAOhS,EAAA,GAAEiS,EAAUjS,EAAA,GAC1B6C,GAAoClD,EAAAA,EAAAA,UAAS,IAAGmD,GAAAvD,EAAAA,EAAAA,GAAAsD,EAAA,GAAzCqP,EAAUpP,EAAA,GAAEqP,EAAarP,EAAA,GAChCG,GAAwBtD,EAAAA,EAAAA,UAAyB,CAAEyS,aAAc,EAAGC,YAAa,EAAGC,YAAa,IAAIpP,GAAA3D,EAAAA,EAAAA,GAAA0D,EAAA,GAA9FsP,EAAIrP,EAAA,GAAEsP,EAAOtP,EAAA,GACpBG,GAA8B1D,EAAAA,EAAAA,UAAkB,CAC9CwR,OAAQ,GACRvb,KAAM,GACN6c,OAAQ,OACRC,UAAW,MACXC,eAAe,EACfC,OAAQ,GACRC,cAAe,KACfvP,GAAA/D,EAAAA,EAAAA,GAAA8D,EAAA,GARKyP,EAAOxP,EAAA,GAAEyP,EAAUzP,EAAA,GAS1BE,GAAsC7D,EAAAA,EAAAA,WAAS,GAAM8D,GAAAlE,EAAAA,EAAAA,GAAAiE,EAAA,GACrDG,GADkBF,EAAA,GAAgBA,EAAA,IACN9D,EAAAA,EAAAA,UAAwD,CAClFiT,OAAQ,GACRC,cAAe,MACfjP,GAAArE,EAAAA,EAAAA,GAAAoE,EAAA,GAHaqP,GAAFpP,EAAA,GAAWA,EAAA,IAKlBqP,EAAkB,eAAA3hB,GAAAQ,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,EAAOkhB,EAAcC,GAAe,IAAAC,EAAAC,EAAArgB,EAAAqF,EAAAib,EAAAC,EAAAC,EAAA,OAAAzhB,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAW9C,OAX8CF,EAAAC,KAAA,EAErDkhB,EAAcD,EAAM,WAAA3gB,OAAcihB,mBAAmBN,IAAY,GACjEE,EAAe,IAAIK,gBAAgB,CACvCvC,OAAQ2B,EAAQ3B,OAChBvb,KAAMkd,EAAQld,KACd+d,QAASb,EAAQL,OACjBmB,WAAYd,EAAQJ,UACpBE,OAAQE,EAAQF,OAAOiB,KAAK,KAC5BC,eAAgBhB,EAAQD,cAAcgB,KAAK,KAC3CE,aAAcjB,EAAQH,cAAgB,OAAS,UAC9CqB,WAAU/hB,EAAAE,KAAA,EAEUoB,MAAM,qCAADf,OAAsC0gB,GAAI1gB,OAAG4gB,EAAW,KAAA5gB,OAAI6gB,IAAgB,KAAD,EAAzF,OAARrgB,EAAQf,EAAAwB,KAAAxB,EAAAE,KAAA,EACKa,EAASihB,OAAO,KAAD,EAA5B5b,EAAIpG,EAAAwB,KACN6f,EAAqBjb,EAAK6b,WAGxBX,EAAe,IAAIY,IACnBX,EAAsB,IAAIW,IAEhC9b,EAAK6b,WAAWpF,SAAQ,SAACsF,GAAuB,IAADC,EAAAC,EAC7B,QAAhBD,EAAID,EAAIG,gBAAQ,IAAAF,GAAU,QAAVA,EAAZA,EAAc3hB,gBAAQ,IAAA2hB,GAAtBA,EAAwBG,YAC1BjB,EAAa3gB,IAAIwhB,EAAIG,SAAS7hB,SAAS8hB,YAEzB,QAAhBF,EAAIF,EAAIG,gBAAQ,IAAAD,GAAZA,EAAcR,gBAChBM,EAAIG,SAAST,eAAehF,SAAQ,SAAClZ,GAAI,OAAK4d,EAAoB5gB,IAAIgD,EAAK,GAE/E,IAEAod,EAAU,CACRJ,OAAQnU,MAAMC,KAAK6U,GAAczV,OACjC+U,cAAepU,MAAMC,KAAK8U,GAAqB1V,SAI7CgV,EAAQH,gBACVW,EAAqBA,EAAmB1b,QAAO,SAAC6c,GAAe,OAAyB,KAAnB,OAADA,QAAC,IAADA,OAAC,EAADA,EAAGV,aAAqB,KAG9FhC,EAAiBuB,GACjBd,EAAO9X,GAAAA,GAAC,CAAC,EACJrC,EAAKka,MAAI,IACZD,YAAagB,EAAmB3U,OAChC0T,YAAarT,KAAK0V,KAAKpB,EAAmB3U,OAAS,QAClD1M,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6B,GAAA7B,EAAA,SAEHpB,QAAQkD,MAAM,gCAA+B9B,EAAA6B,IAAS,QAEpC,OAFoC7B,EAAAC,KAAA,GAEtD+f,GAAW,GAAOhgB,EAAA+B,OAAA,6BAAA/B,EAAAY,OAAA,GAAAb,EAAA,yBAErB,gBAnDuBc,EAAA6c,GAAA,OAAAre,EAAAvB,MAAA,KAAAC,UAAA,MAqDxB+F,EAAAA,EAAAA,YAAU,WACR,IAAM4e,EAAYnU,YAAW,WAC3ByS,EAAmB,EAAGf,EACxB,GAAG,KAEH,OAAO,kBAAMvR,aAAagU,EAAW,CACvC,GAAG,CAACzC,EAAYY,IAEhB,IAAM8B,EAAmB,SAAC1B,GACxBD,EAAmBC,EAAMhB,EAC3B,EAEM2C,EAAoB,eAAAne,GAAA5E,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAgB,EAAOse,EAA4BtiB,GAAmB,IAAA+lB,EAAA9hB,EAAAqF,EAAA,OAAAtG,IAAAA,MAAA,SAAAuB,GAAA,cAAAA,EAAApB,KAAAoB,EAAAnB,MAAA,OAGnB,OAF9DpD,EAAEoF,kBAAkBb,EAAApB,KAAA,EAEZ4iB,EAASzD,EAAa0C,aAAe,SAAW,OAAMzgB,EAAAnB,KAAA,EACrCoB,MAAM,gCAADf,OAAiC6e,EAAa1iB,GAAE,aAAa,CACvFmmB,OAAAA,IACC,KAAD,EAFY,OAAR9hB,EAAQM,EAAAG,KAAAH,EAAAnB,KAAA,EAGKa,EAASihB,OAAO,KAAD,EAA5B5b,EAAI/E,EAAAG,KACVse,GAAiB,SAACgD,GAAI,OACpBA,EAAKvmB,KAAI,SAAC4lB,GAAG,OAAMA,EAAIzlB,KAAO0iB,EAAa1iB,GAAE+L,GAAAA,GAAA,GAAQ0Z,GAAG,IAAEL,aAAc1b,EAAK0b,eAAiBK,CAAG,GAAE,IACnG9gB,EAAAnB,KAAA,iBAAAmB,EAAApB,KAAA,GAAAoB,EAAAQ,GAAAR,EAAA,SAEFzC,QAAQkD,MAAM,2BAA0BT,EAAAQ,IAAS,yBAAAR,EAAAT,OAAA,GAAAE,EAAA,mBAEpD,gBAdyBkd,EAAAI,GAAA,OAAA3Z,EAAA3G,MAAA,KAAAC,UAAA,KAgBpBwa,EAAoB,CACxB,CACEta,IAAK,WACLya,OAAQ,GACRG,OAAQ,SAAC3a,EAAYya,GAAiB,OACpChU,EAAAA,cAAA,UACE8C,QAAS,SAAC3K,GAAC,OAAK8lB,EAAqBjK,EAAK7b,EAAE,EAC5C0K,UAAU,6DAEV7C,EAAAA,cAAA,KAAG6C,UAAS,MAAAjH,OAAW,OAAHoY,QAAG,IAAHA,GAAAA,EAAKmJ,aAAe,QAAU,UAAS,8BACpD,GAGb,CACE7jB,IAAK,OACLya,OAAQ,OACRG,OAAQ,SAAC3a,EAAeya,GAAiB,OACvChU,EAAAA,cAAA,OAAK6C,UAAU,6CACb7C,EAAAA,cAAA,OAAK6C,UAAS,eAAAjH,OAAoB,OAAHoY,QAAG,IAAHA,GAAAA,EAAKmJ,aAAe,uCAAyC,KACzF5jB,GAAgB,OAEf,GAGV,CACED,IAAK,SACLya,OAAQ,eACRG,OAAQ,SAAC3a,GACP,OAAOA,EACH,IAAIK,KAAKwkB,aAAa,QAAS,CAC7Bza,MAAO,WACP0a,SAAU,MACVC,sBAAuB,EACvBC,sBAAuB,EACvBC,SAAU,aACTC,OAAOllB,GACV,KACN,GAEF,CACED,IAAK,WACLya,OAAQ,WACRG,OAAQ,SAAC3a,EAAYya,GAAuB,IAAD0K,EACzC,GAAQ,OAAH1K,QAAG,IAAHA,GAAa,QAAV0K,EAAH1K,EAAK2J,gBAAQ,IAAAe,IAAbA,EAAe5iB,SAAU,MAAO,MACrC,IAAA6iB,EAAkC3K,EAAI2J,SAAS7hB,SAC/C,MAAO,CADU6iB,EAATC,UAAqBD,EAAVf,YACY5c,OAAO6d,SAAS5B,KAAK,OAAS,KAC/D,GAEF,CACE3jB,IAAK,QACLya,OAAQ,iBACRG,OAAQ,SAAC3a,EAAYya,GAAuB,IAAD8K,EACzC,OAAQ,OAAH9K,QAAG,IAAHA,GAAa,QAAV8K,EAAH9K,EAAK2J,gBAAQ,IAAAmB,GAAgB,QAAhBA,EAAbA,EAAe5B,sBAAc,IAAA4B,GAA7BA,EAA+B/W,OAElC/H,EAAAA,cAAA,OAAK6C,UAAU,wBACZmR,EAAI2J,SAAST,eAAetlB,KAAI,SAACoH,EAAMsb,GAAK,OAC3Cta,EAAAA,cAAA,QAAM1G,IAAKghB,EAAOzX,UAAU,+DACzB7D,EACI,KANsC,KAUrD,IA+BJ,OAAIoc,EAEApb,EAAAA,cAAA,OAAK6C,UAAU,8DAA6D,4BAO9E7C,EAAAA,cAAA,OAAK6C,UAAU,2CAIb7C,EAAAA,cAAA,OAAK6C,UAAU,gCAEb7C,EAAAA,cAAA,OAAK6C,UAAU,wCACb7C,EAAAA,cAAA,OAAK6C,UAAU,WAEb7C,EAAAA,cAAA,OAAK6C,UAAU,mCACb7C,EAAAA,cAAA,OAAK6C,UAAU,wBACb7C,EAAAA,cAAA,QAAM8a,SAzBC,SAAC3iB,GACpBA,EAAE+hB,iBACFmC,EAAmB,EAAGf,EACxB,EAsB4CzY,UAAU,sBACtC7C,EAAAA,cAAA,OAAK6C,UAAU,wEACb7C,EAAAA,cAACkO,EAAAA,EAAe,CAACC,KAAM4Q,EAAAA,IAAUlc,UAAU,2BAE7C7C,EAAAA,cAAA,SACEhB,KAAK,OACLzF,MAAO+hB,EACPpY,SAAU,SAAC/K,GAAC,OAAKojB,EAAcpjB,EAAEyC,OAAOrB,MAAM,EAC9CyU,YAAY,0BACZnL,UAAU,+PAGd7C,EAAAA,cAAA,UACE8C,QAAS,kBAAMqZ,GAAW,SAAC7gB,GAAI,OAAAwI,GAAAA,GAAA,GAAWxI,GAAI,IAAEygB,eAAgBzgB,EAAKygB,eAAa,GAAI,EACtFlZ,UAAS,8EAAAjH,OACPsgB,EAAQH,cACJ,gHACA,oEAAmE,6CAGzE/b,EAAAA,cAAA,KACE6C,UAAS,MAAAjH,OAAQsgB,EAAQH,cAAgB,QAAU,UAAS,aAAAngB,OAC1DsgB,EAAQH,cAAgB,kBAAoB,MAG/CG,EAAQH,cAAgB,oBAAsB,sBAQzD/b,EAAAA,cAAA,OAAK6C,UAAU,6BACb7C,EAAAA,cAAA,OAAK6C,UAAU,8CACZqY,EAAcnT,OAAS,EACtB/H,EAAAA,cAAA,OAAK6C,UAAU,wBACb7C,EAAAA,cAACgb,EAAS,CAACvZ,KAAMyZ,EAAetH,QAASA,EAASC,WApFzC,SAACG,GACtB0B,EAAS,kBAAD9Z,OAAmBoY,EAAIjc,IACjC,KAqFYiI,EAAAA,cAAA,OAAK6C,UAAU,4EAA2E,4BAQ/F8Y,EAAKF,YAAc,GAClBzb,EAAAA,cAAA,OAAK6C,UAAU,qEACb7C,EAAAA,cAAA,OAAK6C,UAAU,qCACb7C,EAAAA,cAAA,OAAK6C,UAAU,2BACb7C,EAAAA,cAAA,UACE8C,QAAS,kBAAMkb,EAAiBrC,EAAKH,aAAe,EAAE,EACtDxI,SAAgC,IAAtB2I,EAAKH,aACf3Y,UAAU,4KACX,YAGD7C,EAAAA,cAAA,OAAK6C,UAAU,4BACZ5B,EAAAA,EAAAA,GAAI4G,MAAM8T,EAAKF,cAAc7jB,KAAI,SAACoQ,EAAGsS,GACpC,IAAMgC,EAAOhC,EAAQ,EACrB,OACW,IAATgC,GACAA,IAASX,EAAKF,aACba,GAAQX,EAAKH,aAAe,GAAKc,GAAQX,EAAKH,aAAe,EAG5Dxb,EAAAA,cAAA,UACE1G,IAAKghB,EACLxX,QAAS,kBAAMkb,EAAiB1B,EAAK,EACrCzZ,UAAS,oDAAAjH,OACP+f,EAAKH,eAAiBc,EAClB,0CACA,wGAGLA,GAIA,IACT,KAEFtc,EAAAA,cAAA,UACE8C,QAAS,kBAAMkb,EAAiBrC,EAAKH,aAAe,EAAE,EACtDxI,SAAU2I,EAAKH,eAAiBG,EAAKF,YACrC5Y,UAAU,4KACX,SAIH7C,EAAAA,cAAA,OAAK6C,UAAU,4CAA2C,QAClD8Y,EAAKH,aAAa,OAAKG,EAAKF,gBAQlD,E,iCCtKA,GA9K0C,SAAH/gB,GAA4C,IAQxE8a,EAqBAC,EAcGyB,EAgBAC,EA3D+B6H,EAAetkB,EAAfskB,gBAAiBC,EAAavkB,EAAbukB,cAC5DnW,GAAoCC,EAAAA,EAAAA,UAAS,IAAGC,GAAAL,EAAAA,EAAAA,GAAAG,EAAA,GAAzCoW,EAAUlW,EAAA,GAAEmW,EAAanW,EAAA,GAC1BxK,GAAcK,EAAAA,EAAAA,MACpBugB,ECpB6B,SAAH1kB,GAA+D,IAAzDskB,EAAetkB,EAAfskB,gBAAiBC,EAAavkB,EAAbukB,cAC3CzgB,GAAcK,EAAAA,EAAAA,MACdwgB,GAAkBlO,EAAAA,EAAAA,QAAY,MAE9B1S,GAAcK,EAAAA,EAAAA,cAAY,WAC9B7E,QAAQC,IAAI,iCACd,GAAG,IAEGwE,GAAiBI,EAAAA,EAAAA,cAAY,WACjC7E,QAAQC,IAAI,oCACd,GAAG,IAEGyE,GAAaG,EAAAA,EAAAA,cACjB,SAACC,GACC,IAAQC,EAAeD,EAAfC,KAAMyC,EAAS1C,EAAT0C,KAGd,OAFAxH,QAAQC,IAAI,kCAAD0B,OAAmCoD,IAEtCA,GACN,IAAK,cAEHR,EAAY8Z,aACV,CAAC,WAAY0G,EAAiBC,IAC9B,WAA8B,IAA7BK,EAAkBlmB,UAAA2O,OAAA,QAAAwX,IAAAnmB,UAAA,GAAAA,UAAA,GAAG,GACpB,MAAM,CAAEqI,EAAK+d,SAAO5jB,QAAAqF,EAAAA,EAAAA,GAAKqe,GAC3B,IAEF,MAEF,IAAK,kBACH9gB,EAAY8Z,aACV,CAAC,WAAY0G,EAAiBC,IAC9B,WACE,OADiB7lB,UAAA2O,OAAA,QAAAwX,IAAAnmB,UAAA,GAAAA,UAAA,GAAG,IACDxB,KAAI,SAAC4nB,GAAO,OAAMA,EAAQznB,KAAO0J,EAAK+d,QAAQznB,GAAK0J,EAAK+d,QAAUA,CAAO,GAC9F,IAEF,MAEF,IAAK,kBACHhhB,EAAY8Z,aACV,CAAC,WAAY0G,EAAiBC,IAC9B,WACE,OADiB7lB,UAAA2O,OAAA,QAAAwX,IAAAnmB,UAAA,GAAAA,UAAA,GAAG,IACD4H,QAAO,SAACwe,GAAO,OAAKA,EAAQznB,KAAO0J,EAAKge,UAAU,GACvE,IAEF,MAEF,IAAK,SACL,IAAK,iBACHjhB,EAAY8Z,aACV,CAAC,eAAgB0G,EAAiBC,IAClC,WAA2B,IAA1BS,EAAetmB,UAAA2O,OAAA,QAAAwX,IAAAnmB,UAAA,GAAAA,UAAA,GAAG,GACjB,MAAa,WAAT4F,EAMK0gB,EAAS1e,QAAO,SAAC2e,GAAI,OAAKA,EAAK5nB,KAAO0J,EAAKme,OAAO,IALpCF,EAAS9F,MAAK,SAAC+F,GAAI,OAAKA,EAAK5nB,KAAO0J,EAAKme,OAAO,IAOhEF,EALG,GAAN9jB,QAAAqF,EAAAA,EAAAA,GAAWye,GAAQ,CAAE,CAAE3nB,GAAI0J,EAAKme,QAAS5c,KAAMvB,EAAKoe,YAM1D,IAIR,GACA,CAACrhB,EAAawgB,EAAiBC,IAG3Ba,GAAyBhhB,EAAAA,EAAAA,aAC7BihB,MAAS,WAAO,IAADC,EACU,QAAvBA,EAAAX,EAAgB3N,eAAO,IAAAsO,GAAvBA,EAAyBC,QAAQ,iBACnC,GAAG,KACH,IAGIC,GAAephB,EAAAA,EAAAA,cAAY,WAAO,IAADqhB,EACd,QAAvBA,EAAAd,EAAgB3N,eAAO,IAAAyO,GAAvBA,EAAyBF,QAAQ,UACjCH,GACF,GAAG,CAACA,IA+BJ,OA7BA3gB,EAAAA,EAAAA,YAAU,WACR,GAAK6f,GAAoBC,EAAzB,CAEAhlB,QAAQC,IAAI,+CACZ,IAAMkF,GAAQC,EAAAA,EAAAA,MAERC,EAAeF,EAAMG,cAAcC,OACvC,CACE4gB,QAAS,kBACTC,iBAAkBrB,EAClBsB,eAAgBrB,GAElB,CACExf,UAAWhB,EACXiB,aAAchB,EACdiB,SAAUhB,IAMd,OAFA0gB,EAAgB3N,QAAUpS,EAEnB,WACLrF,QAAQC,IAAI,iDACZ4lB,EAAuBS,SACvBjhB,EAAaM,cACbR,EAAMS,YACR,CAzB8C,CA0BhD,GAAG,CAACmf,EAAiBC,EAAexgB,EAAaC,EAAgBC,EAAYmhB,IAEtE,CAAEI,aAAAA,EACX,CD1F2BM,CAAgB,CAAExB,gBAAAA,EAAiBC,cAAAA,IAApDiB,EAAYd,EAAZc,aAGRzJ,GAAgCC,EAAAA,EAAAA,GAAS,CACvCxX,SAAU,CAAC,WAAY8f,EAAiBC,GACxCtI,SAAOnB,GAAAta,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAC,IAAA,IAAAgB,EAAA,OAAAjB,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACgBiG,EAAAA,EAAMnB,IAAI,gBAAiB,CAChDgC,OAAQ,CACNge,iBAAkBrB,EAClBsB,eAAgBrB,KAEjB,KAAD,EALY,OAAR7iB,EAAQf,EAAAwB,KAAAxB,EAAA0W,OAAA,SAMP3V,EAASqF,MAAI,wBAAApG,EAAAY,OAAA,GAAAb,EAAA,KACrB,kBAAAoa,EAAArc,MAAA,KAAAC,UAAA,KACDwd,EAAAH,EAXMhV,KAAMgf,OAAQ,IAAA7J,EAAG,GAAEA,EAkBzBI,GAJiCN,EAAAA,EAAAA,GAAS,CAC1CxX,SAAU,CAAC,eAAgB8f,EAAiBC,GAC5CtI,QAAS,iBAAM,EAAE,EACjB+J,UAAWC,MAHLlf,KAAMmf,OAAW,IAAA5J,EAAG,GAAEA,EAO9B6J,GAAqCnK,EAAAA,EAAAA,GAAS,CAC5CxX,SAAU,CAAC,sBAAuB8f,EAAiBC,GACnDtI,SAAOlB,GAAAva,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAgB,IAAA,IAAAC,EAAA0kB,EAAA,OAAA3lB,IAAAA,MAAA,SAAAuB,GAAA,cAAAA,EAAApB,KAAAoB,EAAAnB,MAAA,UACiB,yBAApByjB,EAA0C,CAAAtiB,EAAAnB,KAAA,eAAAmB,EAAAnB,KAAA,EACrBiG,EAAAA,EAAMnB,IAAI,gCAADzE,OAAiCqjB,IAAiB,KAAD,EAAnE,OAAR7iB,EAAQM,EAAAG,KAAAH,EAAAqV,OAAA,SACP3V,EAASqF,MAAI,UACS,qBAApBud,EAAsC,CAAAtiB,EAAAnB,KAAA,gBAAAmB,EAAAnB,KAAA,GACxBiG,EAAAA,EAAMnB,IAAI,oBAADzE,OAAqBqjB,IAAiB,KAAD,GAAvD,OAAR7iB,EAAQM,EAAAG,KAAAH,EAAAqV,OAAA,SACP3V,EAASqF,MAAI,eAAA/E,EAAAqV,OAAA,SAEf,MAAI,yBAAArV,EAAAT,OAAA,GAAAE,EAAA,KACZ,kBAAAsZ,EAAAtc,MAAA,KAAAC,UAAA,KAIG2nB,GAf0BF,EAAxBpf,MAesB8V,EAAAA,EAAAA,GAAY,CACxCC,YAAUN,GAAAhc,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAsc,EAAOuJ,GAAY,IAAA5kB,EAAA,OAAAjB,IAAAA,MAAA,SAAAwc,GAAA,cAAAA,EAAArc,KAAAqc,EAAApc,MAAA,cAAAoc,EAAApc,KAAA,EACNiG,EAAAA,EAAM+L,KAAK,gBAAiB,CACjD8S,iBAAkBrB,EAClBsB,eAAgBrB,EAChBO,QAAS,CAAEwB,KAAAA,KACV,KAAD,EAJY,OAAR5kB,EAAQub,EAAA9a,KAAA8a,EAAA5F,OAAA,SAKP3V,EAASqF,MAAI,wBAAAkW,EAAA1b,OAAA,GAAAwb,EAAA,KACrB,SAAAvb,GAAA,OAAAgb,EAAA/d,MAAA,KAAAC,UAAA,GACD2d,UAAW,WACTvY,EAAYS,kBAAkB,CAAEC,SAAU,CAAC,WAAY8f,EAAiBC,KACxEE,EAAc,GAChB,KAII8B,GAAwB1J,EAAAA,EAAAA,GAAY,CACxCC,YAAUL,GAAAjc,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAyd,EAAOsI,GAAiB,IAAA9kB,EAAA,OAAAjB,IAAAA,MAAA,SAAA0d,GAAA,cAAAA,EAAAvd,KAAAud,EAAAtd,MAAA,cAAAsd,EAAAtd,KAAA,EACXiG,EAAAA,EAAK,OAAQ,iBAAD5F,OAAkBslB,IAAa,KAAD,EAAnD,OAAR9kB,EAAQyc,EAAAhc,KAAAgc,EAAA9G,OAAA,SACP3V,EAASqF,MAAI,wBAAAoX,EAAA5c,OAAA,GAAA2c,EAAA,KACrB,SAAAG,GAAA,OAAA5B,EAAAhe,MAAA,KAAAC,UAAA,GACD2d,UAAW,WACTvY,EAAYS,kBAAkB,CAAEC,SAAU,CAAC,WAAY8f,EAAiBC,IAC1E,IASI3R,EAAe,SAACnV,GACnB,OAADA,QAAC,IAADA,GAAAA,EAAG+hB,iBACEgF,EAAW1Q,QAChBuS,EAAsB5G,OAAO+E,EAC/B,EAkBA,OACElf,EAAAA,cAAA,OAAK6C,UAAU,yBAEZ,EAWD7C,EAAAA,cAAA,OAAK6C,UAAU,wCACZ4d,EAAS7oB,KAAI,SAAC4nB,GAAgB,IAAA2B,EAAA,OAC7BnhB,EAAAA,cAAA,OAAK1G,IAAKkmB,EAAQznB,GAAI8K,UAAU,mDAC9B7C,EAAAA,cAAA,OAAK6C,UAAU,0CACb7C,EAAAA,cAAA,OAAK6C,UAAU,2BACb7C,EAAAA,cAAA,QAAM6C,UAAU,8CACD,QAAZse,EAAA3B,EAAQG,YAAI,IAAAwB,OAAA,EAAZA,EAAcne,OAAQ,aAEzBhD,EAAAA,cAAA,QAAM6C,UAAU,6CACbue,EAAAA,GAAAA,GAAoB,IAAI3gB,KAAK+e,EAAQrK,YAAa,CAAEkM,WAAW,MAGpErhB,EAAAA,cAAA,UACE8C,QAAS,kBAvDDoe,EAuDoB1B,EAAQznB,QAtD5C8D,OAAOiU,QAAQ,kDACjBmR,EAAsB9G,OAAO+G,IAFZ,IAACA,CAuD+B,EACvCre,UAAU,uFACVkJ,MAAM,kBAEN/L,EAAAA,cAAA,KAAG6C,UAAU,kBAGjB7C,EAAAA,cAAA,KAAG6C,UAAU,wDAAwD2c,EAAQwB,MACzE,KAKTJ,EAAY7Y,OAAS,GACpB/H,EAAAA,cAAA,OAAK6C,UAAU,sDACW,IAAvB+d,EAAY7Y,OAAY,GAAAnM,OAClBglB,EAAY,GAAG5d,KAAI,oBAAApH,OACnBglB,EAAY7Y,OAAM,0BAK7B/H,EAAAA,cAAA,QAAM8a,SAAUxN,EAAczK,UAAU,qDACtC7C,EAAAA,cAAA,YACEzG,MAAO2lB,EACPhc,SA7Da,SAAC/K,GACpBgnB,EAAchnB,EAAEyC,OAAOrB,OACvB2mB,GACF,EA2DQ/N,UArEc,SAACha,GACP,UAAVA,EAAEmB,KAAoBnB,EAAEmpB,WAC1BnpB,EAAE+hB,iBACF5M,IAEJ,EAiEQU,YAAY,eACZnL,UAAU,kPAOZ7C,EAAAA,cAAA,OAAK6C,UAAU,0CACb7C,EAAAA,cAAA,UACEhB,KAAK,SACLgU,SAAU+N,EAAsBQ,UAChC1e,UAAU,sKAITke,EAAsBQ,UAAY,aAAe,kBAM9D,E,ykBElIA,IAAMC,GAAiB,eAAA9mB,GAAAQ,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,EAAOrD,GAAU,IAAAqE,EAAA,OAAAjB,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EAClBoB,MAAM,gCAADf,OAAiC7D,IAAM,KAAD,EAApD,IAARqE,EAAQf,EAAAwB,MACA4kB,GAAG,CAADpmB,EAAAE,KAAA,cACR,IAAInD,MAAM,gCAAgC,KAAD,SAAAiD,EAAA0W,OAAA,SAE1C3V,EAASihB,QAAM,wBAAAhiB,EAAAY,OAAA,GAAAb,EAAA,KACvB,gBANsBc,GAAA,OAAAxB,EAAAvB,MAAA,KAAAC,UAAA,KAuUvB,GA/TsC,WAAO,IAADsoB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAe9B/K,EAWAC,EAzBJpf,GAAOmqB,EAAAA,EAAAA,MAAPnqB,GACFyG,GAAcK,EAAAA,EAAAA,MAEpB4X,GAIIC,EAAAA,EAAAA,GAAS,CACXxX,SAAU,CAAC,eAAgBnH,GAC3B4e,QAAS,kBAAM6K,GAAkBzpB,EAAI,EACrC+e,UAAW/e,IANL0iB,EAAYhE,EAAlBhV,KACAb,EAAS6V,EAAT7V,UACAzD,EAAKsZ,EAALtZ,MAOFglB,GAAiE5K,EAAAA,EAAAA,GAAY,CAC3EC,YAAUN,GAAAhc,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAgB,IAAA,OAAAhB,IAAAA,MAAA,SAAAuB,GAAA,cAAAA,EAAApB,KAAAoB,EAAAnB,MAAA,cAAAmB,EAAAnB,KAAA,EACJoB,MAAM,gCAADf,OAAiC7D,EAAE,YAAY,CACxDmmB,OAAQ,SACP,KAAD,mBAAAxhB,EAAAT,OAAA,GAAAE,EAAA,KACH,kBAAA+a,EAAA/d,MAAA,KAAAC,UAAA,GACD2d,UAAW,WACTvY,EAAYS,kBAAkB,CAAEC,SAAU,CAAC,eAAgBnH,IAC7D,IARcqqB,EAAmBD,EAA3BhI,OAAwCkI,EAAYF,EAAvBZ,UAWrCe,GAAmC/K,EAAAA,EAAAA,GAAY,CAC7CC,YAAUL,GAAAjc,EAAAA,EAAAA,GAAAC,IAAAA,MAAE,SAAAsc,IAAA,IAAAyG,EAAA9hB,EAAA,OAAAjB,IAAAA,MAAA,SAAAwc,GAAA,cAAAA,EAAArc,KAAAqc,EAAApc,MAAA,OACmD,OAAvD2iB,EAAqB,OAAZzD,QAAY,IAAZA,GAAAA,EAAc0C,aAAe,SAAW,OAAMxF,EAAApc,KAAA,EACtCoB,MAAM,gCAADf,OAAiC7D,EAAE,aAAa,CAC1EmmB,OAAAA,IACC,KAAD,EAFY,OAAR9hB,EAAQub,EAAA9a,KAAA8a,EAAA5F,OAAA,SAGP3V,EAASihB,QAAM,wBAAA1F,EAAA1b,OAAA,GAAAwb,EAAA,KACvB,kBAAAN,EAAAhe,MAAA,KAAAC,UAAA,GACD2d,UAAW,SAACtV,GACVjD,EAAY8Z,aAAa,CAAC,eAAgBvgB,IAAK,SAACwgB,GAC9C,OAAKA,EACLzU,GAAAA,GAAA,GAAYyU,GAAO,IAAE4E,aAAc1b,EAAK0b,eADnB5E,CAEvB,GACF,IAbcgK,EAAcD,EAAtBnI,OAyBR,GAAIvZ,EACF,OACEZ,EAAAA,cAAA,OAAK6C,UAAU,8DAA6D,mCAMhF,GAAI1F,EACF,OACE6C,EAAAA,cAAA,OAAK6C,UAAU,8DAA6D,sCAMhF,IAAK4X,EACH,OACEza,EAAAA,cAAA,OAAK6C,UAAU,8DAA6D,0BAIhF,IAAM2f,EAAiB,SAACC,GACtB,OAAO,IAAI7oB,KAAKwkB,aAAa,QAAS,CACpCza,MAAO,WACP0a,SAAU,QACTI,OAAOgE,EACZ,EAEA,OACEziB,EAAAA,cAAA,OAAK6C,UAAU,wBAEb7C,EAAAA,cAAA,OAAK6C,UAAU,0DACb7C,EAAAA,cAAA,OAAK6C,UAAU,6BACb7C,EAAAA,cAAA,OAAK6C,UAAU,gCACb7C,EAAAA,cAAC0iB,EAAAA,GAAI,CACHC,GAAG,iBACH9f,UAAU,yGAEV7C,EAAAA,cAACkO,EAAAA,EAAe,CAACC,KAAMyU,EAAAA,MAAe,yBAGxC5iB,EAAAA,cAAA,MAAI6C,UAAU,sCAAkD,OAAZ4X,QAAY,IAAZA,OAAY,EAAZA,EAAczX,MAClEhD,EAAAA,cAAA,OAAK6C,UAAU,mCACb7C,EAAAA,cAAA,KACEpD,KAAI,kCAAAhB,OAAgD,OAAZ6e,QAAY,IAAZA,OAAY,EAAZA,EAAc1iB,IACtD6C,OAAO,SACPqV,IAAI,sBACJpN,UAAU,uJAEV7C,EAAAA,cAAA,KAAG6C,UAAU,2BAA2B,SAG1C7C,EAAAA,cAAA,UACE8C,QA3De,WACtB2X,GACL8H,GACF,EAyDc1f,UAAU,uJAEV7C,EAAAA,cAAA,KACE6C,UAAS,MAAAjH,OAAoB,OAAZ6e,QAAY,IAAZA,GAAAA,EAAc0C,aAAe,QAAU,UAAS,8BAEtD,OAAZ1C,QAAY,IAAZA,GAAAA,EAAc0C,aAAe,YAAc,YAE9Cnd,EAAAA,cAAA,UACE8C,QAxEQ,WACpBsf,GACF,EAuEcpP,SAAUqP,EACVxf,UAAU,0IAEV7C,EAAAA,cAACkO,EAAAA,EAAe,CAACC,KAAM0U,EAAAA,IAAQC,KAAMT,IACpCA,EAAe,gBAAkB,aAMxCriB,EAAAA,cAAA,OAAK6C,UAAU,oDACb7C,EAAAA,cAAA,OAAK6C,UAAU,2DACb7C,EAAAA,cAAA,MAAI6C,UAAU,qDAAoD,uBAEpE7C,EAAAA,cAAA,OAAK6C,UAAU,6CACb7C,EAAAA,cAAA,WACEA,EAAAA,cAAA,MAAI6C,UAAU,aACZ7C,EAAAA,cAAA,WACEA,EAAAA,cAAA,MAAI6C,UAAU,wDAAuD,gBACrE7C,EAAAA,cAAA,MAAI6C,UAAU,4CACC,OAAZ4X,QAAY,IAAZA,GAAAA,EAAcgI,OAASD,EAAe/H,EAAagI,QAAU,QAGlEziB,EAAAA,cAAA,WACEA,EAAAA,cAAA,MAAI6C,UAAU,wDAAuD,QACrE7C,EAAAA,cAAA,MAAI6C,UAAU,oCAAoC4X,EAAasI,MAAQ,QAEzE/iB,EAAAA,cAAA,WACEA,EAAAA,cAAA,MAAI6C,UAAU,wDAAuD,OACrE7C,EAAAA,cAAA,MAAI6C,UAAU,oCAAoC4X,EAAauI,KAAO,QAExEhjB,EAAAA,cAAA,WACEA,EAAAA,cAAA,MAAI6C,UAAU,wDAAuD,mBACrE7C,EAAAA,cAAA,MAAI6C,UAAU,oCAAoC4X,EAAawI,oBAIrEjjB,EAAAA,cAAA,WACEA,EAAAA,cAAA,MAAI6C,UAAU,aACZ7C,EAAAA,cAAA,WACEA,EAAAA,cAAA,MAAI6C,UAAU,wDAAuD,YACrE7C,EAAAA,cAAA,MAAI6C,UAAU,oCACU,QAArB6e,EAAAjH,EAAakD,gBAAQ,IAAA+D,GAArBA,EAAuB5lB,SACpB,CACE2e,EAAakD,SAAS7hB,SAASonB,cAC/BzI,EAAakD,SAAS7hB,SAAS8iB,UAC/BnE,EAAakD,SAAS7hB,SAAS8hB,WAC/BnD,EAAakD,SAAS7hB,SAASqnB,KAE9BniB,OAAO6d,SACP5B,KAAK,MACR,QAGRjd,EAAAA,cAAA,WACEA,EAAAA,cAAA,MAAI6C,UAAU,wDAAuD,kBACrE7C,EAAAA,cAAA,MAAI6C,UAAU,wBACU,QADY8e,EACjClH,EAAakD,gBAAQ,IAAAgE,GAAgB,QAAhBA,EAArBA,EAAuBzE,sBAAc,IAAAyE,OAAA,EAArCA,EAAuC/pB,KAAI,SAACoH,EAAMsb,GAAK,OACtDta,EAAAA,cAAA,QACE1G,IAAKghB,EACLzX,UAAU,gGAET7D,EACI,UAUrBgB,EAAAA,cAAA,OAAK6C,UAAU,6DAEb7C,EAAAA,cAAA,OAAK6C,UAAU,+CACb7C,EAAAA,cAAA,OAAK6C,UAAU,2DACb7C,EAAAA,cAAA,MAAI6C,UAAU,qDAAoD,oBAEpE7C,EAAAA,cAAA,OAAK6C,UAAU,QACA,OAAZ4X,QAAY,IAAZA,GAA6B,QAAjBmH,EAAZnH,EAAc2I,uBAAe,IAAAxB,GAAS,QAATA,EAA7BA,EAA+ByB,eAAO,IAAAzB,OAAA,EAAtCA,EAAwChqB,KAAI,SAAC0rB,EAAQhJ,GAAK,OACzDta,EAAAA,cAAA,OAAK1G,IAAKghB,EAAOzX,UAAU,kBACzB7C,EAAAA,cAAA,MAAI6C,UAAU,6CACL,OAANygB,QAAM,IAANA,OAAM,EAANA,EAAQtgB,KAAK,KAAS,OAANsgB,QAAM,IAANA,OAAM,EAANA,EAAQjrB,KAAK,KAEhC2H,EAAAA,cAAA,KAAG6C,UAAU,oCAAmC,iBACzB,OAANygB,QAAM,IAANA,GAAAA,EAAQb,OAASD,EAAec,EAAOb,QAAU,OAE9D,MACFziB,EAAAA,cAAA,KAAG6C,UAAU,oCAAmC,uCAK1D7C,EAAAA,cAAA,OAAK6C,UAAU,+CACb7C,EAAAA,cAAA,OAAK6C,UAAU,2DACb7C,EAAAA,cAAA,MAAI6C,UAAU,qDAAoD,cAEpE7C,EAAAA,cAAA,OAAK6C,UAAU,QACA,OAAZ4X,QAAY,IAAZA,GAAgC,QAApBoH,EAAZpH,EAAc8I,0BAAkB,IAAA1B,GAAS,QAATA,EAAhCA,EAAkCwB,eAAO,IAAAxB,OAAA,EAAzCA,EAA2CjqB,KAAI,SAAC4rB,EAAWlJ,GAAK,OAC/Dta,EAAAA,cAAA,OAAK1G,IAAKghB,EAAOzX,UAAU,kBACzB7C,EAAAA,cAAA,MAAI6C,UAAU,6CACF,OAAT2gB,QAAS,IAATA,OAAS,EAATA,EAAWxgB,KAAK,KAAY,OAATwgB,QAAS,IAATA,OAAS,EAATA,EAAWnrB,KAAK,KAEtC2H,EAAAA,cAAA,KAAG6C,UAAU,oCAAmC,iBACtB,OAAT2gB,QAAS,IAATA,GAAAA,EAAWf,OAASD,EAAegB,EAAUf,QAAU,OAEpE,MACFziB,EAAAA,cAAA,KAAG6C,UAAU,oCAAmC,iCAK1D7C,EAAAA,cAAA,OAAK6C,UAAU,+CACb7C,EAAAA,cAAA,OAAK6C,UAAU,2DACb7C,EAAAA,cAAA,MAAI6C,UAAU,qDAAoD,qBAEpE7C,EAAAA,cAAA,OAAK6C,UAAU,QACA,OAAZ4X,QAAY,IAAZA,GAA6B,QAAjBqH,EAAZrH,EAAcgJ,uBAAe,IAAA3B,GAAS,QAATA,EAA7BA,EAA+BuB,eAAO,IAAAvB,OAAA,EAAtCA,EAAwClqB,KAAI,SAACqX,EAASqL,GAAK,OAC1Dta,EAAAA,cAAA,OAAK1G,IAAKghB,EAAOzX,UAAU,kBACzB7C,EAAAA,cAAA,MAAI6C,UAAU,8CACJ,OAAPoM,QAAO,IAAPA,OAAO,EAAPA,EAASjM,OAAQ,MAAM,MAAU,OAAPiM,QAAO,IAAPA,OAAO,EAAPA,EAAS5W,OAAQ,MAAM,KAEpD2H,EAAAA,cAAA,KAAG6C,UAAU,oCAAmC,iBACxB,OAAPoM,QAAO,IAAPA,GAAAA,EAASwT,OAASD,EAAevT,EAAQwT,QAAU,OAEhE,MACFziB,EAAAA,cAAA,KAAG6C,UAAU,oCAAmC,uCAK1D7C,EAAAA,cAAA,OAAK6C,UAAU,+CACb7C,EAAAA,cAAA,OAAK6C,UAAU,2DACb7C,EAAAA,cAAA,MAAI6C,UAAU,qDAAoD,kBAEpE7C,EAAAA,cAAA,OAAK6C,UAAU,QACA,OAAZ4X,QAAY,IAAZA,GAAkB,QAANsH,EAAZtH,EAAciJ,YAAI,IAAA3B,GAAS,QAATA,EAAlBA,EAAoBsB,eAAO,IAAAtB,OAAA,EAA3BA,EAA6BnqB,KAAI,SAAC+rB,EAASrJ,GAAK,OAC/Cta,EAAAA,cAAA,OAAK1G,IAAKghB,EAAOzX,UAAU,kBACzB7C,EAAAA,cAAA,MAAI6C,UAAU,8CAAoD,OAAP8gB,QAAO,IAAPA,OAAO,EAAPA,EAAS3gB,OAAQ,OAC5EhD,EAAAA,cAAA,KAAG6C,UAAU,oCAAmC,UAChC,OAAP8gB,QAAO,IAAPA,OAAO,EAAPA,EAAStrB,OAAQ,MACxB2H,EAAAA,cAAA,WAAM,WACU,OAAP2jB,QAAO,IAAPA,GAAAA,EAASlB,OAASD,EAAemB,EAAQlB,QAAU,OAE1D,MACFziB,EAAAA,cAAA,KAAG6C,UAAU,oCAAmC,qCAM5D7C,EAAAA,cAAA,OAAK6C,UAAU,yCAEb7C,EAAAA,cAAA,OAAK6C,UAAU,+CACb7C,EAAAA,cAAA,OAAK6C,UAAU,2DACb7C,EAAAA,cAAA,MAAI6C,UAAU,qDAAoD,0BAEpE7C,EAAAA,cAAA,OAAK6C,UAAU,QACA,OAAZ4X,QAAY,IAAZA,GAAiB,QAALuH,EAAZvH,EAAcmJ,WAAG,IAAA5B,GAAS,QAATA,EAAjBA,EAAmBqB,eAAO,IAAArB,OAAA,EAA1BA,EAA4BpqB,KAAI,SAACisB,EAAMvJ,GAAK,OAC3Cta,EAAAA,cAAA,OAAK1G,IAAKghB,EAAOzX,UAAU,kBACzB7C,EAAAA,cAAA,MAAI6C,UAAU,8CACP,OAAJghB,QAAI,IAAJA,OAAI,EAAJA,EAAM7gB,OAAQ,MAAM,MAAO,OAAJ6gB,QAAI,IAAJA,OAAI,EAAJA,EAAMxrB,OAAQ,MAAM,KAE9C2H,EAAAA,cAAA,KAAG6C,UAAU,oCAAmC,WACjC,OAAJghB,QAAI,IAAJA,GAAAA,EAAMpB,OAASD,EAAeqB,EAAKpB,QAAU,OAEpD,MACFziB,EAAAA,cAAA,KAAG6C,UAAU,oCAAmC,2BAK1D7C,EAAAA,cAAA,OAAK6C,UAAU,+CACb7C,EAAAA,cAAA,OAAK6C,UAAU,2DACb7C,EAAAA,cAAA,MAAI6C,UAAU,qDAAoD,gBAEpE7C,EAAAA,cAAA,OAAK6C,UAAU,QACA,OAAZ4X,QAAY,IAAZA,GAAmB,QAAPwH,EAAZxH,EAAcqJ,aAAK,IAAA7B,GAAS,QAATA,EAAnBA,EAAqBoB,eAAO,IAAApB,OAAA,EAA5BA,EAA8BrqB,KAAI,SAACisB,EAAMvJ,GAAK,OAC7Cta,EAAAA,cAAA,OAAK1G,IAAKghB,EAAOzX,UAAU,kBACzB7C,EAAAA,cAAA,MAAI6C,UAAU,8CACP,OAAJghB,QAAI,IAAJA,OAAI,EAAJA,EAAM7gB,OAAQ,MAAM,MAAO,OAAJ6gB,QAAI,IAAJA,OAAI,EAAJA,EAAMxrB,OAAQ,MAAM,KAE9C2H,EAAAA,cAAA,KAAG6C,UAAU,oCAAmC,WACjC,OAAJghB,QAAI,IAAJA,GAAAA,EAAMpB,OAASD,EAAeqB,EAAKpB,QAAU,OAEpD,MACFziB,EAAAA,cAAA,KAAG6C,UAAU,oCAAmC,gCAQhE7C,EAAAA,cAAA,OAAK6C,UAAU,mGACb7C,EAAAA,cAAA,OAAK6C,UAAU,qDACb7C,EAAAA,cAAA,MAAI6C,UAAU,uDAAsD,aAEtE7C,EAAAA,cAAC+jB,GAAQ,CAAC/E,gBAAgB,uBAAuBC,cAAelnB,KAIxE,EC9MA,GA1J8B,WAC5B,IAAM2d,GAAWC,EAAAA,EAAAA,MACjB7M,GAAgCC,EAAAA,EAAAA,UAAoB,IAAGC,GAAAL,EAAAA,EAAAA,GAAAG,EAAA,GAAhD2X,EAAQzX,EAAA,GAAEgb,EAAWhb,EAAA,GAC5BG,GAA8BJ,EAAAA,EAAAA,WAAS,GAAKK,GAAAT,EAAAA,EAAAA,GAAAQ,EAAA,GAArCiS,EAAOhS,EAAA,GAAEiS,EAAUjS,EAAA,GAC1B6C,GAAoClD,EAAAA,EAAAA,UAAS,IAAGmD,GAAAvD,EAAAA,EAAAA,GAAAsD,EAAA,GAAzCqP,EAAUpP,EAAA,GAAEqP,EAAarP,EAAA,GAChCG,GAAwBtD,EAAAA,EAAAA,UAAyB,CAAEyS,aAAc,EAAGC,YAAa,EAAGC,YAAa,IAAIpP,GAAA3D,EAAAA,EAAAA,GAAA0D,EAAA,GAA9FsP,EAAIrP,EAAA,GAAEsP,EAAOtP,EAAA,GAEd2X,EAAa,eAAAvpB,GAAAQ,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,EAAOkhB,EAAcC,GAAe,IAAAC,EAAApgB,EAAAqF,EAAA,OAAAtG,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEmB,OAFnBF,EAAAC,KAAA,EAEhDkhB,EAAcD,EAAM,WAAA3gB,OAAcihB,mBAAmBN,IAAY,GAAElhB,EAAAE,KAAA,EAClDoB,MAAM,sBAADf,OAAuB0gB,GAAI1gB,OAAG4gB,IAAe,KAAD,EAA1D,OAARpgB,EAAQf,EAAAwB,KAAAxB,EAAAE,KAAA,EACKa,EAASihB,OAAO,KAAD,EAA5B5b,EAAIpG,EAAAwB,KACVmnB,EAAYviB,GACZma,EAAQna,EAAKka,MAAMtgB,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6B,GAAA7B,EAAA,SAEnBpB,QAAQkD,MAAM,2BAA0B9B,EAAA6B,IAAS,QAE/B,OAF+B7B,EAAAC,KAAA,GAEjD+f,GAAW,GAAOhgB,EAAA+B,OAAA,6BAAA/B,EAAAY,OAAA,GAAAb,EAAA,yBAErB,gBAZkBc,EAAA6c,GAAA,OAAAre,EAAAvB,MAAA,KAAAC,UAAA,MAcnB+F,EAAAA,EAAAA,YAAU,WACR,IAAM4e,EAAYnU,YAAW,WAC3Bqa,EAAc,EAAG3I,EACnB,GAAG,KAEH,OAAO,kBAAMvR,aAAagU,EAAW,CACvC,GAAG,CAACzC,IAEJ,IAAM0C,EAAmB,SAAC1B,GACxB2H,EAAc3H,EAAMhB,EACtB,EAQM1H,EAAoB,CACxB,CACEta,IAAK,eACLya,OAAQ,eACRG,OAAQ,SAAC3a,GAAU,OAAU,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOyJ,OAAQ,KAAK,GAE9C,CACE1J,IAAK,OACLya,OAAQ,SACRG,OAAQ,SAAC3a,GAAU,OAAU,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOyJ,OAAQ,KAAK,GAE9C,CACE1J,IAAK,OACLya,OAAQ,UACRG,OAAQ,SAAC3a,GAAa,OAAKyG,EAAAA,cAAA,OAAK6C,UAAU,qBAAqBtJ,EAAY,GAE7E,CACED,IAAK,aACLya,OAAQ,OACRG,OAAQ,SAAC3a,GAAa,OACpByG,EAAAA,cAAA,OAAK6C,UAAU,iBACb7C,EAAAA,cAAA,YAAO,IAAIS,KAAKlH,GAAOihB,sBACvBxa,EAAAA,cAAA,QAAM6C,UAAU,0BACbue,EAAAA,GAAAA,GAAoB,IAAI3gB,KAAKlH,GAAQ,CAAE8nB,WAAW,KAEjD,IAUZ,OAAIjG,EAEApb,EAAAA,cAAA,OAAK6C,UAAU,8DAA6D,uBAK9E7C,EAAAA,cAAA,OAAK6C,UAAU,2CACb7C,EAAAA,cAAA,OAAK6C,UAAU,gCAEb7C,EAAAA,cAAA,OAAK6C,UAAU,wCACb7C,EAAAA,cAAA,OAAK6C,UAAU,WACb7C,EAAAA,cAAA,OAAK6C,UAAU,mCACb7C,EAAAA,cAAA,QAAM8a,SAlBG,SAAC3iB,GACpBA,EAAE+hB,iBACF+J,EAAc,EAAG3I,EACnB,EAe0CzY,UAAU,sBACtC7C,EAAAA,cAAA,OAAK6C,UAAU,wEACb7C,EAAAA,cAACkO,EAAAA,EAAe,CAACC,KAAM4Q,EAAAA,IAAUlc,UAAU,2BAE7C7C,EAAAA,cAAA,SACEhB,KAAK,OACLzF,MAAO+hB,EACPpY,SAAU,SAAC/K,GAAC,OAAKojB,EAAcpjB,EAAEyC,OAAOrB,MAAM,EAC9CyU,YAAY,qBACZnL,UAAU,kQAQpB7C,EAAAA,cAAA,OAAK6C,UAAU,6BACb7C,EAAAA,cAAA,OAAK6C,UAAU,+CACJ,OAAR4d,QAAQ,IAARA,OAAQ,EAARA,EAAU1Y,QAAS,EAClB/H,EAAAA,cAAA,OAAK6C,UAAU,wBACb7C,EAAAA,cAACgb,EAAS,CACRvZ,KAAMgf,EACN7M,QAASA,EACTC,WA9EO,SAAC2L,GACW,yBAA7BA,EAAQa,kBAA+Cb,EAAQc,gBACjE5K,EAAS,kBAAD9Z,OAAmB4jB,EAAQc,gBAEvC,EA2EgB4D,aAAa,4DAIjBlkB,EAAAA,cAAA,OAAK6C,UAAU,4EAA2E,wBAQ3F,OAAJ8Y,QAAI,IAAJA,OAAI,EAAJA,EAAMF,aAAc,GACnBzb,EAAAA,cAAA,OAAK6C,UAAU,qEACb7C,EAAAA,cAAA,OAAK6C,UAAU,qCACb7C,EAAAA,cAAA,OAAK6C,UAAU,2BACb7C,EAAAA,cAAA,UACE8C,QAAS,kBAAMkb,EAAiBrC,EAAKH,aAAe,EAAE,EACtDxI,SAAgC,IAAtB2I,EAAKH,aACf3Y,UAAU,4KACX,YAGD7C,EAAAA,cAAA,QAAM6C,UAAU,oCAAmC,QAC3C8Y,EAAKH,aAAa,OAAKG,EAAKF,aAEpCzb,EAAAA,cAAA,UACE8C,QAAS,kBAAMkb,EAAiBrC,EAAKH,aAAe,EAAE,EACtDxI,SAAU2I,EAAKH,eAAiBG,EAAKF,YACrC5Y,UAAU,4KACX,YAUjB,ECiCA,GArMwB,WACtB,IAAM6S,GAAWC,EAAAA,EAAAA,MACjB7M,GAA0BC,EAAAA,EAAAA,UAAiB,IAAGC,GAAAL,EAAAA,EAAAA,GAAAG,EAAA,GAAvCqb,EAAKnb,EAAA,GAAEob,EAAQpb,EAAA,GACtBG,GAAwCJ,EAAAA,EAAAA,UAAS,IAAGK,GAAAT,EAAAA,EAAAA,GAAAQ,EAAA,GAA7Ckb,EAAYjb,EAAA,GAAEkb,EAAelb,EAAA,GACpC6C,GAAsClD,EAAAA,EAAAA,UAAsB,MAAKmD,GAAAvD,EAAAA,EAAAA,GAAAsD,EAAA,GAA1DsY,EAAWrY,EAAA,GAAEsY,EAActY,EAAA,GAClCG,GAAkCtD,EAAAA,EAAAA,UAAS,IAAGuD,GAAA3D,EAAAA,EAAAA,GAAA0D,EAAA,GAAvCoY,EAASnY,EAAA,GAAEoY,EAAYpY,EAAA,IAE9BnN,EAAAA,EAAAA,YAAU,WACRwlB,GACF,GAAG,IAEH,IAAMA,EAAU,eAAAjqB,GAAAQ,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,IAAA,IAAAgB,EAAAqF,EAAA,OAAAtG,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEQoB,MAAM,cAAc,KAAD,EAA5B,OAARP,EAAQf,EAAAwB,KAAAxB,EAAAE,KAAA,EACKa,EAASihB,OAAO,KAAD,EAA5B5b,EAAIpG,EAAAwB,KACVunB,EAAS3iB,GAAMpG,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6B,GAAA7B,EAAA,SAEfpB,QAAQkD,MAAM,wBAAuB9B,EAAA6B,IAAS,yBAAA7B,EAAAY,OAAA,GAAAb,EAAA,mBAEjD,kBARe,OAAAV,EAAAvB,MAAA,KAAAC,UAAA,KAUVwrB,EAAgB,eAAA9kB,GAAA5E,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAgB,EAAOhE,GAAkB,IAAAiE,EAAAyoB,EAAA,OAAA1pB,IAAAA,MAAA,SAAAuB,GAAA,cAAAA,EAAApB,KAAAoB,EAAAnB,MAAA,OAC7B,GAAnBpD,EAAE+hB,iBACGmK,EAAa7V,OAAO,CAAD9R,EAAAnB,KAAA,eAAAmB,EAAAqV,OAAA,wBAAArV,EAAApB,KAAA,EAAAoB,EAAAnB,KAAA,EAGCoB,MAAM,aAAc,CACzCuhB,OAAQ,OACR4G,QAAS,CACP,eAAgB,oBAElB9D,KAAM1Q,KAAKC,UAAU,CACnBwU,KAAM,CACJhZ,MAAOsY,EACP5iB,KAAM,CAAC,OAGV,KAAD,EAXY,KAARrF,EAAQM,EAAAG,MAaD4kB,GAAG,CAAD/kB,EAAAnB,KAAA,gBAAAmB,EAAAnB,KAAA,GACSa,EAASihB,OAAO,KAAD,GAA/BwH,EAAOnoB,EAAAG,KACbunB,EAAS,GAADxoB,QAAAqF,EAAAA,EAAAA,GAAKkjB,GAAK,CAAEU,KACpBP,EAAgB,IAAI5nB,EAAAnB,KAAA,iBAEb,OAFamB,EAAAQ,GAEpBjD,QAAOyC,EAAAnB,KAAA,GAAqCa,EAASihB,OAAM,QAAA3gB,EAAAsoB,GAAAtoB,EAAAG,KAAAH,EAAAQ,GAAnDC,MAAK8nB,KAAAvoB,EAAAQ,GAAC,uBAAsBR,EAAAsoB,IAAA,QAAAtoB,EAAAnB,KAAA,iBAAAmB,EAAApB,KAAA,GAAAoB,EAAAwoB,GAAAxoB,EAAA,SAGtCzC,QAAQkD,MAAM,uBAAsBT,EAAAwoB,IAAS,yBAAAxoB,EAAAT,OAAA,GAAAE,EAAA,mBAEhD,gBA5BqBD,GAAA,OAAA4D,EAAA3G,MAAA,KAAAC,UAAA,KA8BhB+rB,EAAc,eAAApL,GAAA7e,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAsc,EAAOtf,GAAkB,IAAAiE,EAAAgpB,EAAA,OAAAjqB,IAAAA,MAAA,SAAAwc,GAAA,cAAAA,EAAArc,KAAAqc,EAAApc,MAAA,OAC3B,GAAnBpD,EAAE+hB,iBACGqK,GAAgBE,EAAUjW,OAAM,CAAAmJ,EAAApc,KAAA,eAAAoc,EAAA5F,OAAA,wBAAA4F,EAAArc,KAAA,EAAAqc,EAAApc,KAAA,EAGZoB,MAAM,cAADf,OAAe2oB,EAAYxsB,IAAM,CAC3DmmB,OAAQ,MACR4G,QAAS,CACP,eAAgB,oBAElB9D,KAAM1Q,KAAKC,UAAU,CACnBwU,KAAM,CACJhZ,MAAO0Y,EACPhjB,KAAM8iB,EAAY9iB,UAGrB,KAAD,EAXY,KAARrF,EAAQub,EAAA9a,MAaD4kB,GAAG,CAAD9J,EAAApc,KAAA,gBAAAoc,EAAApc,KAAA,GACaa,EAASihB,OAAO,KAAD,GAAnC+H,EAAWzN,EAAA9a,KACjBunB,EAASD,EAAMvsB,KAAI,SAACmtB,GAAI,OAAMA,EAAKhtB,KAAOqtB,EAAYrtB,GAAKqtB,EAAcL,CAAI,KAC7EP,EAAe,MACfE,EAAa,IAAI/M,EAAApc,KAAA,iBAEV,OAFUoc,EAAAza,GAEjBjD,QAAO0d,EAAApc,KAAA,GAAqCa,EAASihB,OAAM,QAAA1F,EAAAqN,GAAArN,EAAA9a,KAAA8a,EAAAza,GAAnDC,MAAK8nB,KAAAtN,EAAAza,GAAC,uBAAsBya,EAAAqN,IAAA,QAAArN,EAAApc,KAAA,iBAAAoc,EAAArc,KAAA,GAAAqc,EAAAuN,GAAAvN,EAAA,SAGtC1d,QAAQkD,MAAM,uBAAsBwa,EAAAuN,IAAS,yBAAAvN,EAAA1b,OAAA,GAAAwb,EAAA,mBAEhD,gBA7BmBsB,GAAA,OAAAgB,EAAA5gB,MAAA,KAAAC,UAAA,KA+BdisB,EAAgB,eAAAC,GAAApqB,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAyd,EAAO2M,GAAc,IAAAnpB,EAAA,OAAAjB,IAAAA,MAAA,SAAA0d,GAAA,cAAAA,EAAAvd,KAAAud,EAAAtd,MAAA,UACvCuU,QAAQ,8CAA8C,CAAD+I,EAAAtd,KAAA,eAAAsd,EAAA9G,OAAA,wBAAA8G,EAAAvd,KAAA,EAAAud,EAAAtd,KAAA,EAGjCoB,MAAM,cAADf,OAAe2pB,GAAU,CACnDrH,OAAQ,WACP,KAAD,EAFY,KAAR9hB,EAAQyc,EAAAhc,MAID4kB,GAAG,CAAD5I,EAAAtd,KAAA,SACb6oB,EAASD,EAAMnjB,QAAO,SAAC+jB,GAAI,OAAKA,EAAKhtB,KAAOwtB,CAAM,KAAG1M,EAAAtd,KAAA,iBAE9C,OAF8Csd,EAAA3b,GAErDjD,QAAO4e,EAAAtd,KAAA,GAAqCa,EAASihB,OAAM,QAAAxE,EAAAmM,GAAAnM,EAAAhc,KAAAgc,EAAA3b,GAAnDC,MAAK8nB,KAAApM,EAAA3b,GAAC,uBAAsB2b,EAAAmM,IAAA,QAAAnM,EAAAtd,KAAA,iBAAAsd,EAAAvd,KAAA,GAAAud,EAAAqM,GAAArM,EAAA,SAGtC5e,QAAQkD,MAAM,uBAAsB0b,EAAAqM,IAAS,yBAAArM,EAAA5c,OAAA,GAAA2c,EAAA,mBAEhD,gBAhBqBS,GAAA,OAAAiM,EAAAnsB,MAAA,KAAAC,UAAA,KA2BtB,OACE4G,EAAAA,cAAA,OAAK6C,UAAU,OACb7C,EAAAA,cAAA,MAAI6C,UAAU,2BAA0B,SAExC7C,EAAAA,cAAA,QAAM8a,SAAU8J,EAAkB/hB,UAAU,QAC1C7C,EAAAA,cAAA,OAAK6C,UAAU,cACb7C,EAAAA,cAAA,SACEhB,KAAK,OACLzF,MAAO8qB,EACPnhB,SAAU,SAAC/K,GAAC,OAAKmsB,EAAgBnsB,EAAEyC,OAAOrB,MAAM,EAChDyU,YAAY,mBACZnL,UAAU,2FAEZ7C,EAAAA,cAAA,UACEhB,KAAK,SACL6D,UAAU,qHACX,cAML7C,EAAAA,cAAA,OAAK6C,UAAU,wDACZshB,EAAMvsB,KAAI,SAACmtB,GAAI,IAAAS,EAAA,OACdxlB,EAAAA,cAAA,OAAK1G,IAAKyrB,EAAKhtB,GAAI8K,UAAU,sEACf,OAAX0hB,QAAW,IAAXA,OAAW,EAAXA,EAAaxsB,MAAOgtB,EAAKhtB,GACxBiI,EAAAA,cAAA,QAAM8a,SAAUqK,EAAgBtiB,UAAU,aACxC7C,EAAAA,cAAA,SACEhB,KAAK,OACLzF,MAAOkrB,EACPvhB,SAAU,SAAC/K,GAAC,OAAKusB,EAAavsB,EAAEyC,OAAOrB,MAAM,EAC7CsJ,UAAU,2FAEZ7C,EAAAA,cAAA,OAAK6C,UAAU,cACb7C,EAAAA,cAAA,UACEhB,KAAK,SACL6D,UAAU,mEACX,QAGD7C,EAAAA,cAAA,UACEhB,KAAK,SACL8D,QAAS,WACP0hB,EAAe,MACfE,EAAa,GACf,EACA7hB,UAAU,iEACX,YAML7C,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,MAAI6C,UAAU,8BAA8BkiB,EAAKhZ,OACjD/L,EAAAA,cAAA,KAAG6C,UAAU,8BAA6B,YAC9B,IAAIpC,KAAKskB,EAAK5P,YAAYqF,sBAEtCxa,EAAAA,cAAA,KAAG6C,UAAU,8BAA6B,WAAkB,QAAV2iB,EAAAT,EAAKU,aAAK,IAAAD,OAAA,EAAVA,EAAYzd,SAAU,GACxE/H,EAAAA,cAAA,OAAK6C,UAAU,cACb7C,EAAAA,cAAA,UACE8C,QAAS,kBAjEHyiB,EAiEwBR,EAAKhtB,QAhEnD2d,EAAS,UAAD9Z,OAAW2pB,IADE,IAACA,CAiEgC,EACtC1iB,UAAU,iEACX,QAGD7C,EAAAA,cAAA,UACE8C,QAAS,kBA5EN,SAACiiB,GACpBP,EAAeO,GACfL,EAAaK,EAAKhZ,MACpB,CAyEiC2Z,CAAaX,EAAK,EACjCliB,UAAU,qEACX,QAGD7C,EAAAA,cAAA,UACE8C,QAAS,kBAAMuiB,EAAiBN,EAAKhtB,GAAG,EACxC8K,UAAU,+DACX,YAMH,KAKhB,E,ykBCnMA,IA+QA,GA/Q2B,WACzB,IAAQ9K,GAAOmqB,EAAAA,EAAAA,MAAPnqB,GACF2d,GAAWC,EAAAA,EAAAA,MACjB7M,GAAwBC,EAAAA,EAAAA,UAAsB,MAAKC,GAAAL,EAAAA,EAAAA,GAAAG,EAAA,GAA5Cic,EAAI/b,EAAA,GAAE2c,EAAO3c,EAAA,GACpBG,GAAwCJ,EAAAA,EAAAA,UAAS,IAAGK,GAAAT,EAAAA,EAAAA,GAAAQ,EAAA,GAA7Cyc,EAAYxc,EAAA,GAAEyc,EAAezc,EAAA,GACpC6C,GAAsClD,EAAAA,EAAAA,UAAsB,MAAKmD,GAAAvD,EAAAA,EAAAA,GAAAsD,EAAA,GAA1D6Z,EAAW5Z,EAAA,GAAE6Z,EAAc7Z,EAAA,GAClCG,GAAkCtD,EAAAA,EAAAA,UAAS,IAAGuD,GAAA3D,EAAAA,EAAAA,GAAA0D,EAAA,GAAvCoY,EAASnY,EAAA,GAAEoY,EAAYpY,EAAA,GAC9BG,GAAsC1D,EAAAA,EAAAA,UAAS,IAAG2D,GAAA/D,EAAAA,EAAAA,GAAA8D,EAAA,GAA3CuZ,EAAWtZ,EAAA,GAAEuZ,EAAcvZ,EAAA,IAElCvN,EAAAA,EAAAA,YAAU,WACR+mB,GACF,GAAG,CAACnuB,IAEJ,IAAMmuB,EAAS,eAAAxrB,GAAAQ,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,IAAA,IAAAgB,EAAAqF,EAAA,OAAAtG,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAESoB,MAAM,cAADf,OAAe7D,IAAM,KAAD,EAAlC,OAARqE,EAAQf,EAAAwB,KAAAxB,EAAAE,KAAA,EACKa,EAASihB,OAAO,KAAD,EAA5B5b,EAAIpG,EAAAwB,KACV8oB,EAAQlkB,GAAMpG,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6B,GAAA7B,EAAA,SAEdpB,QAAQkD,MAAM,uBAAsB9B,EAAA6B,IAAS,yBAAA7B,EAAAY,OAAA,GAAAb,EAAA,mBAEhD,kBARc,OAAAV,EAAAvB,MAAA,KAAAC,UAAA,KAUT+sB,EAAgB,eAAArmB,GAAA5E,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAgB,EAAOhE,GAAkB,IAAAiE,EAAAgqB,EAAA,OAAAjrB,IAAAA,MAAA,SAAAuB,GAAA,cAAAA,EAAApB,KAAAoB,EAAAnB,MAAA,OAC7B,GAAnBpD,EAAE+hB,iBACG0L,EAAapX,QAAWuW,EAAI,CAAAroB,EAAAnB,KAAA,eAAAmB,EAAAqV,OAAA,wBAAArV,EAAApB,KAAA,EAAAoB,EAAAnB,KAAA,EAGRoB,MAAM,aAAc,CACzCuhB,OAAQ,OACR4G,QAAS,CACP,eAAgB,oBAElB9D,KAAM1Q,KAAKC,UAAU,CACnB+L,KAAM,CACJvQ,MAAO6Z,EACPlN,QAAS,GACT2N,QAAStB,EAAKhtB,GACduuB,MAAOvB,EAAKU,MAAM1d,YAGrB,KAAD,EAbY,KAAR3L,EAAQM,EAAAG,MAeD4kB,GAAG,CAAD/kB,EAAAnB,KAAA,gBAAAmB,EAAAnB,KAAA,GACSa,EAASihB,OAAO,KAAD,GAA/B+I,EAAO1pB,EAAAG,KACb8oB,EAAO7hB,GAAAA,GAAC,CAAC,EACJihB,GAAI,IACPU,MAAM,GAAD7pB,QAAAqF,EAAAA,EAAAA,GAAM8jB,EAAKU,OAAK,CAAEW,OAEzBP,EAAgB,IAAInpB,EAAAnB,KAAA,iBAEb,OAFamB,EAAAQ,GAEpBjD,QAAOyC,EAAAnB,KAAA,GAAqCa,EAASihB,OAAM,QAAA3gB,EAAAsoB,GAAAtoB,EAAAG,KAAAH,EAAAQ,GAAnDC,MAAK8nB,KAAAvoB,EAAAQ,GAAC,uBAAsBR,EAAAsoB,IAAA,QAAAtoB,EAAAnB,KAAA,iBAAAmB,EAAApB,KAAA,GAAAoB,EAAAwoB,GAAAxoB,EAAA,SAGtCzC,QAAQkD,MAAM,uBAAsBT,EAAAwoB,IAAS,yBAAAxoB,EAAAT,OAAA,GAAAE,EAAA,mBAEhD,gBAjCqBD,GAAA,OAAA4D,EAAA3G,MAAA,KAAAC,UAAA,KAmChBmtB,EAAc,eAAAxM,GAAA7e,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAsc,EAAOtf,GAAkB,IAAAiE,EAAAoqB,EAAA,OAAArrB,IAAAA,MAAA,SAAAwc,GAAA,cAAAA,EAAArc,KAAAqc,EAAApc,MAAA,OAC3B,GAAnBpD,EAAE+hB,iBACG4L,GAAgBrB,EAAUjW,QAAWuW,EAAI,CAAApN,EAAApc,KAAA,eAAAoc,EAAA5F,OAAA,wBAAA4F,EAAArc,KAAA,EAAAqc,EAAApc,KAAA,EAGrBoB,MAAM,cAADf,OAAekqB,EAAY/tB,IAAM,CAC3DmmB,OAAQ,MACR4G,QAAS,CACP,eAAgB,oBAElB9D,KAAM1Q,KAAKC,UAAU,CACnB+L,KAAM,CACJvQ,MAAO0Y,EACP/L,QAASsN,OAGZ,KAAD,EAXY,KAAR5pB,EAAQub,EAAA9a,MAaD4kB,GAAG,CAAD9J,EAAApc,KAAA,gBAAAoc,EAAApc,KAAA,GACaa,EAASihB,OAAO,KAAD,GAAnCmJ,EAAW7O,EAAA9a,KACjB8oB,EAAO7hB,GAAAA,GAAC,CAAC,EACJihB,GAAI,IACPU,MAAOV,EAAKU,MAAM7tB,KAAI,SAAC0kB,GAAI,OAAMA,EAAKvkB,KAAOyuB,EAAYzuB,GAAKyuB,EAAclK,CAAI,OAElFyJ,EAAe,MACfrB,EAAa,IACbuB,EAAe,IAAItO,EAAApc,KAAA,iBAEZ,OAFYoc,EAAAza,GAEnBjD,QAAO0d,EAAApc,KAAA,GAAqCa,EAASihB,OAAM,QAAA1F,EAAAqN,GAAArN,EAAA9a,KAAA8a,EAAAza,GAAnDC,MAAK8nB,KAAAtN,EAAAza,GAAC,uBAAsBya,EAAAqN,IAAA,QAAArN,EAAApc,KAAA,iBAAAoc,EAAArc,KAAA,GAAAqc,EAAAuN,GAAAvN,EAAA,SAGtC1d,QAAQkD,MAAM,uBAAsBwa,EAAAuN,IAAS,yBAAAvN,EAAA1b,OAAA,GAAAwb,EAAA,mBAEhD,gBAjCmBsB,GAAA,OAAAgB,EAAA5gB,MAAA,KAAAC,UAAA,KAmCdqtB,EAAgB,eAAAnB,GAAApqB,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAyd,EAAO8N,GAAc,IAAAtqB,EAAA,OAAAjB,IAAAA,MAAA,SAAA0d,GAAA,cAAAA,EAAAvd,KAAAud,EAAAtd,MAAA,UACvCuU,QAAQ,+CAAkDiV,EAAI,CAAAlM,EAAAtd,KAAA,eAAAsd,EAAA9G,OAAA,wBAAA8G,EAAAvd,KAAA,EAAAud,EAAAtd,KAAA,EAG1CoB,MAAM,cAADf,OAAe8qB,GAAU,CACnDxI,OAAQ,WACP,KAAD,EAFY,KAAR9hB,EAAQyc,EAAAhc,MAID4kB,GAAG,CAAD5I,EAAAtd,KAAA,SACboqB,EAAO7hB,GAAAA,GAAC,CAAC,EACJihB,GAAI,IACPU,MAAOV,EAAKU,MAAMzkB,QAAO,SAACsb,GAAI,OAAKA,EAAKvkB,KAAO2uB,CAAM,OACpD7N,EAAAtd,KAAA,iBAEI,OAFJsd,EAAA3b,GAEHjD,QAAO4e,EAAAtd,KAAA,GAAqCa,EAASihB,OAAM,QAAAxE,EAAAmM,GAAAnM,EAAAhc,KAAAgc,EAAA3b,GAAnDC,MAAK8nB,KAAApM,EAAA3b,GAAC,uBAAsB2b,EAAAmM,IAAA,QAAAnM,EAAAtd,KAAA,iBAAAsd,EAAAvd,KAAA,GAAAud,EAAAqM,GAAArM,EAAA,SAGtC5e,QAAQkD,MAAM,uBAAsB0b,EAAAqM,IAAS,yBAAArM,EAAA5c,OAAA,GAAA2c,EAAA,mBAEhD,gBAnBqBS,GAAA,OAAAiM,EAAAnsB,MAAA,KAAAC,UAAA,KA2BhButB,EAAkB,eAAAC,GAAA1rB,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAge,EAAOuN,EAAgBG,GAAgB,IAAAzqB,EAAAoqB,EAAAM,EAAAC,EAAA,OAAA5rB,IAAAA,MAAA,SAAAie,GAAA,cAAAA,EAAA9d,KAAA8d,EAAA7d,MAAA,UAC3DwpB,EAAK,CAAD3L,EAAA7d,KAAA,eAAA6d,EAAArH,OAAA,wBAAAqH,EAAA9d,KAAA,EAAA8d,EAAA7d,KAAA,EAGgBoB,MAAM,cAADf,OAAe8qB,EAAM,YAAY,CAC3DxI,OAAQ,MACR4G,QAAS,CACP,eAAgB,oBAElB9D,KAAM1Q,KAAKC,UAAU,CAAE+V,MAAOO,MAC7B,KAAD,EANY,KAARzqB,EAAQgd,EAAAvc,MAQD4kB,GAAG,CAADrI,EAAA7d,KAAA,gBAAA6d,EAAA7d,KAAA,EACaa,EAASihB,OAAO,KAAD,EAAnCmJ,EAAWpN,EAAAvc,KACXiqB,GAAY7lB,EAAAA,EAAAA,GAAO8jB,EAAKU,OACxBsB,EAAWD,EAAaE,WAAU,SAACC,GAAC,OAAKA,EAAElvB,KAAO2uB,CAAM,IAC9DI,EAAaI,OAAOH,EAAU,GAC9BD,EAAaI,OAAOL,EAAU,EAAGL,GACjCb,EAAO7hB,GAAAA,GAAC,CAAC,EAAIihB,GAAI,IAAEU,MAAOqB,KAAgB1N,EAAA7d,KAAA,iBAEnC,OAFmC6d,EAAAlc,GAE1CjD,QAAOmf,EAAA7d,KAAA,GAAuCa,EAASihB,OAAM,QAAAjE,EAAA4L,GAAA5L,EAAAvc,KAAAuc,EAAAlc,GAArDC,MAAK8nB,KAAA7L,EAAAlc,GAAC,yBAAwBkc,EAAA4L,IAAA,QAAA5L,EAAA7d,KAAA,iBAAA6d,EAAA9d,KAAA,GAAA8d,EAAA8L,GAAA9L,EAAA,SAGxCnf,QAAQkD,MAAM,yBAAwBic,EAAA8L,IAAS,yBAAA9L,EAAAnd,OAAA,GAAAkd,EAAA,mBAElD,gBAzBuBM,EAAAW,GAAA,OAAAwM,EAAAztB,MAAA,KAAAC,UAAA,KA2BxB,OAAK2rB,GAIL9qB,QAAQC,IAAI6qB,GAGV/kB,EAAAA,cAAA,OAAK6C,UAAU,OACb7C,EAAAA,cAAA,OAAK6C,UAAU,0CACb7C,EAAAA,cAAA,MAAI6C,UAAU,sBAAsBkiB,EAAKhZ,OACzC/L,EAAAA,cAAA,UACE8C,QAAS,kBAAM4S,EAAS,SAAS,EACjC7S,UAAU,iEACX,kBAKH7C,EAAAA,cAAA,QAAM8a,SAAUqL,EAAkBtjB,UAAU,QAC1C7C,EAAAA,cAAA,OAAK6C,UAAU,cACb7C,EAAAA,cAAA,SACEhB,KAAK,OACLzF,MAAOqsB,EACP1iB,SAAU,SAAC/K,GAAC,OAAK0tB,EAAgB1tB,EAAEyC,OAAOrB,MAAM,EAChDyU,YAAY,mBACZnL,UAAU,2FAEZ7C,EAAAA,cAAA,UACEhB,KAAK,SACL6D,UAAU,qHACX,cAML7C,EAAAA,cAAA,OAAK6C,UAAU,aACZkiB,EAAKU,MAAM7tB,KAAI,SAAC0kB,EAAMhC,GAAK,OAC1Bta,EAAAA,cAAA,OAAK1G,IAAKgjB,EAAKvkB,GAAI8K,UAAU,0BACf,OAAXijB,QAAW,IAAXA,OAAW,EAAXA,EAAa/tB,MAAOukB,EAAKvkB,GACxBiI,EAAAA,cAAA,QAAM8a,SAAUyL,EAAgB1jB,UAAU,aACxC7C,EAAAA,cAAA,SACEhB,KAAK,OACLzF,MAAOkrB,EACPvhB,SAAU,SAAC/K,GAAC,OAAKusB,EAAavsB,EAAEyC,OAAOrB,MAAM,EAC7CsJ,UAAU,yFACVmL,YAAY,eAEdhO,EAAAA,cAAA,YACEzG,MAAOysB,EACP9iB,SAAU,SAAC/K,GAAC,OAAK8tB,EAAe9tB,EAAEyC,OAAOrB,MAAM,EAC/CsJ,UAAU,yFACVoY,KAAM,EACNjN,YAAY,iBAEdhO,EAAAA,cAAA,OAAK6C,UAAU,cACb7C,EAAAA,cAAA,UACEhB,KAAK,SACL6D,UAAU,mEACX,QAGD7C,EAAAA,cAAA,UACEhB,KAAK,SACL8D,QAAS,WACPijB,EAAe,MACfrB,EAAa,IACbuB,EAAe,GACjB,EACApjB,UAAU,iEACX,YAML7C,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OAAK6C,UAAU,yCACb7C,EAAAA,cAAA,MAAI6C,UAAU,yBAAyByZ,EAAKvQ,OAC5C/L,EAAAA,cAAA,OAAK6C,UAAU,cACb7C,EAAAA,cAAA,UACE8C,QAAS,kBAlHR,SAACwZ,GACpByJ,EAAezJ,GACfoI,EAAapI,EAAKvQ,OAClBka,EAAe3J,EAAK5D,QACtB,CA8GmCgN,CAAapJ,EAAK,EACjCzZ,UAAU,qEACX,QAGD7C,EAAAA,cAAA,UACE8C,QAAS,kBAAM2jB,EAAiBnK,EAAKvkB,GAAG,EACxC8K,UAAU,+DACX,YAKL7C,EAAAA,cAAA,OAAK6C,UAAU,oBACZyZ,EAAK5D,SAAW1Y,EAAAA,cAAA,KAAG6C,UAAU,wBAAuB,mBAEvD7C,EAAAA,cAAA,OAAK6C,UAAU,mBACZyX,EAAQ,GACPta,EAAAA,cAAA,UACE8C,QAAS,kBAAM6jB,EAAmBrK,EAAKvkB,GAAIuiB,EAAQ,EAAE,EACrDzX,UAAU,iEACX,WAIFyX,EAAQyK,EAAKU,MAAM1d,OAAS,GAC3B/H,EAAAA,cAAA,UACE8C,QAAS,kBAAM6jB,EAAmBrK,EAAKvkB,GAAIuiB,EAAQ,EAAE,EACrDzX,UAAU,iEACX,eAOL,OApHL7C,EAAAA,cAAA,OAAK6C,UAAU,OAAM,aAyHhC,ECpFA,GApMwB,WACtB,IAAM6S,GAAWC,EAAAA,EAAAA,MACjB7M,GAA0BC,EAAAA,EAAAA,UAAiB,IAAGC,GAAAL,EAAAA,EAAAA,GAAAG,EAAA,GAAvCqe,EAAKne,EAAA,GAAEoe,EAAQpe,EAAA,GACtBG,GAAwCJ,EAAAA,EAAAA,UAAS,IAAGK,GAAAT,EAAAA,EAAAA,GAAAQ,EAAA,GAA7Cke,EAAYje,EAAA,GAAEke,EAAele,EAAA,GACpC6C,GAAsClD,EAAAA,EAAAA,UAAsB,MAAKmD,GAAAvD,EAAAA,EAAAA,GAAAsD,EAAA,GAA1Dsb,EAAWrb,EAAA,GAAEsb,EAActb,EAAA,GAClCG,GAAkCtD,EAAAA,EAAAA,UAAS,IAAGuD,GAAA3D,EAAAA,EAAAA,GAAA0D,EAAA,GAAvCoY,EAASnY,EAAA,GAAEoY,EAAYpY,EAAA,IAE9BnN,EAAAA,EAAAA,YAAU,WACRsoB,GACF,GAAG,IAEH,IAAMA,EAAU,eAAA/sB,GAAAQ,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,IAAA,IAAAgB,EAAAqF,EAAA,OAAAtG,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEQoB,MAAM,cAAc,KAAD,EAA5B,OAARP,EAAQf,EAAAwB,KAAAxB,EAAAE,KAAA,EACKa,EAASihB,OAAO,KAAD,EAA5B5b,EAAIpG,EAAAwB,KACVuqB,EAAS3lB,GAAMpG,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6B,GAAA7B,EAAA,SAEfpB,QAAQkD,MAAM,wBAAuB9B,EAAA6B,IAAS,yBAAA7B,EAAAY,OAAA,GAAAb,EAAA,mBAEjD,kBARe,OAAAV,EAAAvB,MAAA,KAAAC,UAAA,KAUVsuB,EAAgB,eAAA5nB,GAAA5E,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAgB,EAAOhE,GAAkB,IAAAiE,EAAAurB,EAAA,OAAAxsB,IAAAA,MAAA,SAAAuB,GAAA,cAAAA,EAAApB,KAAAoB,EAAAnB,MAAA,OAC7B,GAAnBpD,EAAE+hB,iBACGmN,EAAa7Y,OAAO,CAAD9R,EAAAnB,KAAA,eAAAmB,EAAAqV,OAAA,wBAAArV,EAAApB,KAAA,EAAAoB,EAAAnB,KAAA,EAGCoB,MAAM,aAAc,CACzCuhB,OAAQ,OACR4G,QAAS,CACP,eAAgB,oBAElB9D,KAAM1Q,KAAKC,UAAU,CACnBqX,KAAM,CACJ7b,MAAOsb,EACP5lB,KAAM,CAAC,OAGV,KAAD,EAXY,KAARrF,EAAQM,EAAAG,MAaD4kB,GAAG,CAAD/kB,EAAAnB,KAAA,gBAAAmB,EAAAnB,KAAA,GACSa,EAASihB,OAAO,KAAD,GAA/BsK,EAAOjrB,EAAAG,KACbuqB,EAAS,GAADxrB,QAAAqF,EAAAA,EAAAA,GAAKkmB,GAAK,CAAEQ,KACpBL,EAAgB,IAAI5qB,EAAAnB,KAAA,iBAEb,OAFamB,EAAAQ,GAEpBjD,QAAOyC,EAAAnB,KAAA,GAAqCa,EAASihB,OAAM,QAAA3gB,EAAAsoB,GAAAtoB,EAAAG,KAAAH,EAAAQ,GAAnDC,MAAK8nB,KAAAvoB,EAAAQ,GAAC,uBAAsBR,EAAAsoB,IAAA,QAAAtoB,EAAAnB,KAAA,iBAAAmB,EAAApB,KAAA,GAAAoB,EAAAwoB,GAAAxoB,EAAA,SAGtCzC,QAAQkD,MAAM,uBAAsBT,EAAAwoB,IAAS,yBAAAxoB,EAAAT,OAAA,GAAAE,EAAA,mBAEhD,gBA5BqBD,GAAA,OAAA4D,EAAA3G,MAAA,KAAAC,UAAA,KA8BhByuB,EAAc,eAAA9N,GAAA7e,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAsc,EAAOtf,GAAkB,IAAAiE,EAAA0rB,EAAA,OAAA3sB,IAAAA,MAAA,SAAAwc,GAAA,cAAAA,EAAArc,KAAAqc,EAAApc,MAAA,OAC3B,GAAnBpD,EAAE+hB,iBACGqN,GAAgB9C,EAAUjW,OAAM,CAAAmJ,EAAApc,KAAA,eAAAoc,EAAA5F,OAAA,wBAAA4F,EAAArc,KAAA,EAAAqc,EAAApc,KAAA,EAGZoB,MAAM,cAADf,OAAe2rB,EAAYxvB,IAAM,CAC3DmmB,OAAQ,MACR4G,QAAS,CACP,eAAgB,oBAElB9D,KAAM1Q,KAAKC,UAAU,CACnBqX,KAAM,CACJ7b,MAAO0Y,EACPhjB,KAAM8lB,EAAY9lB,UAGrB,KAAD,EAXY,KAARrF,EAAQub,EAAA9a,MAaD4kB,GAAG,CAAD9J,EAAApc,KAAA,gBAAAoc,EAAApc,KAAA,GACaa,EAASihB,OAAO,KAAD,GAAnCyK,EAAWnQ,EAAA9a,KACjBuqB,EAASD,EAAMvvB,KAAI,SAACgwB,GAAI,OAAMA,EAAK7vB,KAAO+vB,EAAY/vB,GAAK+vB,EAAcF,CAAI,KAC7EJ,EAAe,MACf9C,EAAa,IAAI/M,EAAApc,KAAA,iBAEV,OAFUoc,EAAAza,GAEjBjD,QAAO0d,EAAApc,KAAA,GAAqCa,EAASihB,OAAM,QAAA1F,EAAAqN,GAAArN,EAAA9a,KAAA8a,EAAAza,GAAnDC,MAAK8nB,KAAAtN,EAAAza,GAAC,uBAAsBya,EAAAqN,IAAA,QAAArN,EAAApc,KAAA,iBAAAoc,EAAArc,KAAA,GAAAqc,EAAAuN,GAAAvN,EAAA,SAGtC1d,QAAQkD,MAAM,uBAAsBwa,EAAAuN,IAAS,yBAAAvN,EAAA1b,OAAA,GAAAwb,EAAA,mBAEhD,gBA7BmBsB,GAAA,OAAAgB,EAAA5gB,MAAA,KAAAC,UAAA,KA+Bd2uB,EAAgB,eAAAzC,GAAApqB,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAyd,EAAOoP,GAAc,IAAA5rB,EAAA,OAAAjB,IAAAA,MAAA,SAAA0d,GAAA,cAAAA,EAAAvd,KAAAud,EAAAtd,MAAA,UACvCuU,QAAQ,8CAA8C,CAAD+I,EAAAtd,KAAA,eAAAsd,EAAA9G,OAAA,wBAAA8G,EAAAvd,KAAA,EAAAud,EAAAtd,KAAA,EAGjCoB,MAAM,cAADf,OAAeosB,GAAU,CACnD9J,OAAQ,WACP,KAAD,EAFY,KAAR9hB,EAAQyc,EAAAhc,MAID4kB,GAAG,CAAD5I,EAAAtd,KAAA,SACb6rB,EAASD,EAAMnmB,QAAO,SAAC4mB,GAAI,OAAKA,EAAK7vB,KAAOiwB,CAAM,KAAGnP,EAAAtd,KAAA,iBAE9C,OAF8Csd,EAAA3b,GAErDjD,QAAO4e,EAAAtd,KAAA,GAAqCa,EAASihB,OAAM,QAAAxE,EAAAmM,GAAAnM,EAAAhc,KAAAgc,EAAA3b,GAAnDC,MAAK8nB,KAAApM,EAAA3b,GAAC,uBAAsB2b,EAAAmM,IAAA,QAAAnM,EAAAtd,KAAA,iBAAAsd,EAAAvd,KAAA,GAAAud,EAAAqM,GAAArM,EAAA,SAGtC5e,QAAQkD,MAAM,uBAAsB0b,EAAAqM,IAAS,yBAAArM,EAAA5c,OAAA,GAAA2c,EAAA,mBAEhD,gBAhBqBS,GAAA,OAAAiM,EAAAnsB,MAAA,KAAAC,UAAA,KA2BtB,OACE4G,EAAAA,cAAA,OAAK6C,UAAU,OACb7C,EAAAA,cAAA,MAAI6C,UAAU,2BAA0B,SAExC7C,EAAAA,cAAA,QAAM8a,SAAU4M,EAAkB7kB,UAAU,QAC1C7C,EAAAA,cAAA,OAAK6C,UAAU,cACb7C,EAAAA,cAAA,SACEhB,KAAK,OACLzF,MAAO8tB,EACPnkB,SAAU,SAAC/K,GAAC,OAAKmvB,EAAgBnvB,EAAEyC,OAAOrB,MAAM,EAChDyU,YAAY,mBACZnL,UAAU,2FAEZ7C,EAAAA,cAAA,UACEhB,KAAK,SACL6D,UAAU,qHACX,cAML7C,EAAAA,cAAA,OAAK6C,UAAU,wDACZskB,EAAMvvB,KAAI,SAACgwB,GAAI,OACd5nB,EAAAA,cAAA,OAAK1G,IAAKsuB,EAAK7vB,GAAI8K,UAAU,sEACf,OAAX0kB,QAAW,IAAXA,OAAW,EAAXA,EAAaxvB,MAAO6vB,EAAK7vB,GACxBiI,EAAAA,cAAA,QAAM8a,SAAU+M,EAAgBhlB,UAAU,aACxC7C,EAAAA,cAAA,SACEhB,KAAK,OACLzF,MAAOkrB,EACPvhB,SAAU,SAAC/K,GAAC,OAAKusB,EAAavsB,EAAEyC,OAAOrB,MAAM,EAC7CsJ,UAAU,2FAEZ7C,EAAAA,cAAA,OAAK6C,UAAU,cACb7C,EAAAA,cAAA,UACEhB,KAAK,SACL6D,UAAU,mEACX,QAGD7C,EAAAA,cAAA,UACEhB,KAAK,SACL8D,QAAS,WACP0kB,EAAe,MACf9C,EAAa,GACf,EACA7hB,UAAU,iEACX,YAML7C,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,MAAI6C,UAAU,8BAA8B+kB,EAAK7b,OACjD/L,EAAAA,cAAA,KAAG6C,UAAU,8BAA6B,YAC9B,IAAIpC,KAAKmnB,EAAKzS,YAAYqF,sBAEtCxa,EAAAA,cAAA,OAAK6C,UAAU,cACb7C,EAAAA,cAAA,UACE8C,QAAS,kBAhEHklB,EAgEwBJ,EAAK7vB,QA/DnD2d,EAAS,UAAD9Z,OAAWosB,IADE,IAACA,CAgEgC,EACtCnlB,UAAU,iEACX,QAGD7C,EAAAA,cAAA,UACE8C,QAAS,kBA3EN,SAAC8kB,GACpBJ,EAAeI,GACflD,EAAakD,EAAK7b,MACpB,CAwEiC2Z,CAAakC,EAAK,EACjC/kB,UAAU,qEACX,QAGD7C,EAAAA,cAAA,UACE8C,QAAS,kBAAMilB,EAAiBH,EAAK7vB,GAAG,EACxC8K,UAAU,+DACX,YAMH,KAKhB,ECnKA,GA/B2B,WACzB,IAAQ9K,GAAOmqB,EAAAA,EAAAA,MAAPnqB,GACR+Q,GAAwBC,EAAAA,EAAAA,UAAsB,MAAKC,GAAAL,EAAAA,EAAAA,GAAAG,EAAA,GAA5C8e,EAAI5e,EAAA,GAAEif,EAAOjf,EAAA,IAEpB7J,EAAAA,EAAAA,YAAU,WACR+oB,GACF,GAAG,CAACnwB,IAEJ,IAAMmwB,EAAS,eAAAxtB,GAAAQ,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,IAAA,IAAAgB,EAAAqF,EAAA,OAAAtG,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAESoB,MAAM,cAADf,OAAe7D,IAAM,KAAD,EAAlC,OAARqE,EAAQf,EAAAwB,KAAAxB,EAAAE,KAAA,EACKa,EAASihB,OAAO,KAAD,EAA5B5b,EAAIpG,EAAAwB,KACVorB,EAAQxmB,GAAMpG,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6B,GAAA7B,EAAA,SAEdpB,QAAQkD,MAAM,uBAAsB9B,EAAA6B,IAAS,yBAAA7B,EAAAY,OAAA,GAAAb,EAAA,mBAEhD,kBARc,OAAAV,EAAAvB,MAAA,KAAAC,UAAA,KAUf,OAAKwuB,EAKH5nB,EAAAA,cAAA,OAAK6C,UAAU,OACb7C,EAAAA,cAAA,MAAI6C,UAAU,2BAA2B+kB,EAAK7b,OAC9C/L,EAAAA,cAAA,KAAG6C,UAAU,8BAA6B,YAAU,IAAIpC,KAAKmnB,EAAKzS,YAAYqF,sBAC9Exa,EAAAA,cAAA,OAAK6C,UAAU,sBAPV7C,EAAAA,cAAA,OAAK6C,UAAU,OAAM,aAUhC,EC7BA,GAT2B,WACzB,OACE7C,EAAAA,cAAA,OAAK6C,UAAU,OACb7C,EAAAA,cAAA,MAAI6C,UAAU,2BAA0B,YACxC7C,EAAAA,cAAA,OAAK6C,UAAU,cAGrB,ECIA,GAXwB,WACtB,OACE7C,EAAAA,cAAA,OAAK6C,UAAU,OACb7C,EAAAA,cAAA,MAAI6C,UAAU,2BAA0B,mBACxC7C,EAAAA,cAAA,OAAK6C,UAAU,yDAKrB,ECKA,GACE7C,EAAAA,cAACmoB,EAAM,KACLnoB,EAAAA,cAACooB,EAAAA,GAAM,KACLpoB,EAAAA,cAACqoB,EAAAA,GAAK,CAACC,KAAK,YAAYvtB,QAASiF,EAAAA,cAACuoB,EAAQ,QAC1CvoB,EAAAA,cAACqoB,EAAAA,GAAK,CAACC,KAAK,QAAQvtB,QAASiF,EAAAA,cAACwoB,EAAI,QAClCxoB,EAAAA,cAACqoB,EAAAA,GAAK,CAACC,KAAK,iBAAiBvtB,QAASiF,EAAAA,cAACyoB,GAAa,QACpDzoB,EAAAA,cAACqoB,EAAAA,GAAK,CAACC,KAAK,qBAAqBvtB,QAASiF,EAAAA,cAAC0oB,GAAmB,QAC9D1oB,EAAAA,cAACqoB,EAAAA,GAAK,CAACC,KAAK,YAAYvtB,QAASiF,EAAAA,cAAC2oB,GAAW,QAC7C3oB,EAAAA,cAACqoB,EAAAA,GAAK,CAACC,KAAK,SAASvtB,QAASiF,EAAAA,cAAC4oB,GAAK,QACpC5oB,EAAAA,cAACqoB,EAAAA,GAAK,CAACC,KAAK,aAAavtB,QAASiF,EAAAA,cAAC6oB,GAAQ,QAC3C7oB,EAAAA,cAACqoB,EAAAA,GAAK,CAACC,KAAK,SAASvtB,QAASiF,EAAAA,cAAC8oB,GAAK,QACpC9oB,EAAAA,cAACqoB,EAAAA,GAAK,CAACC,KAAK,aAAavtB,QAASiF,EAAAA,cAAC+oB,GAAQ,QAC3C/oB,EAAAA,cAACqoB,EAAAA,GAAK,CAACC,KAAK,YAAYvtB,QAASiF,EAAAA,cAACgpB,GAAQ,QAC1ChpB,EAAAA,cAACqoB,EAAAA,GAAK,CAACC,KAAK,SAASvtB,QAASiF,EAAAA,cAACipB,GAAK,UCnB1C,OAJA,SAAmBC,GACjB,OAAOlpB,EAAAA,cAACmpB,EAAAA,GAAa,KAAEC,GACzB,ECSA,OAVA,SAAsB1uB,GACpB,OADoCA,EAAb2uB,cAAuB3uB,EAAR4uB,SAEpCtpB,EAAAA,cAAA,OAAK6C,UAAU,kFACb7C,EAAAA,cAAA,OAAK6C,UAAU,kDACb7C,EAAAA,cAAA,KAAG6C,UAAU,4CAA2C,6CAIhE,E,QCNA0mB,IAAAA,WAAwB,CAGtBC,iBAAiB,IAGnBD,IAAAA,SAAsB,CACpBE,UAAAA,GACAC,iBCda,WAEb,OAAO1pB,EAAAA,cAAC2pB,GAAa,KACvB,G","sources":["webpack://react-webpack-rails-tutorial/./client/controllers/ sync \\.js$","webpack://react-webpack-rails-tutorial/./client/controllers/calendar_controller.js","webpack://react-webpack-rails-tutorial/./client/controllers/dropdown_controller.js","webpack://react-webpack-rails-tutorial/./client/controllers/index.js","webpack://react-webpack-rails-tutorial/./client/controllers/theme_controller.js","webpack://react-webpack-rails-tutorial/./client/layout/Layout.tsx","webpack://react-webpack-rails-tutorial/./client/components/Calendar/hooks/useCable.ts","webpack://react-webpack-rails-tutorial/./client/stores/calendarStore.ts","webpack://react-webpack-rails-tutorial/./client/components/Calendar/components/Sidebar.tsx","webpack://react-webpack-rails-tutorial/./client/components/Calendar/components/CalendarHeader.tsx","webpack://react-webpack-rails-tutorial/./client/components/Calendar/utils.ts","webpack://react-webpack-rails-tutorial/./client/components/Calendar/components/MonthView.tsx","webpack://react-webpack-rails-tutorial/./client/components/Calendar/components/WeekMeeting.tsx","webpack://react-webpack-rails-tutorial/./client/components/Calendar/components/WeekView.tsx","webpack://react-webpack-rails-tutorial/./client/components/Calendar/components/AddEventModal.tsx","webpack://react-webpack-rails-tutorial/./client/components/Calendar/components/AgendaMeeting.tsx","webpack://react-webpack-rails-tutorial/./client/components/Calendar/components/AgendaView.tsx","webpack://react-webpack-rails-tutorial/./client/components/Calendar/components/MeetingDetailsModal.tsx","webpack://react-webpack-rails-tutorial/./client/components/Calendar/components/InlineMeetingEditor.tsx","webpack://react-webpack-rails-tutorial/./client/components/Calendar/index.tsx","webpack://react-webpack-rails-tutorial/./client/components/Calendar/hooks/useCalendar.ts","webpack://react-webpack-rails-tutorial/./client/components/shared/DataTable.tsx","webpack://react-webpack-rails-tutorial/./client/components/ChatSidebar.tsx","webpack://react-webpack-rails-tutorial/./client/components/Chat/ChatBubble.tsx","webpack://react-webpack-rails-tutorial/./client/components/Chat.tsx","webpack://react-webpack-rails-tutorial/./client/components/Organizations.tsx","webpack://react-webpack-rails-tutorial/./client/components/Comments/Comments.tsx","webpack://react-webpack-rails-tutorial/./client/components/Comments/hooks/useCommentCable.ts","webpack://react-webpack-rails-tutorial/./client/components/OrganizationDetails.tsx","webpack://react-webpack-rails-tutorial/./client/components/AllComments.tsx","webpack://react-webpack-rails-tutorial/./client/components/Books/index.tsx","webpack://react-webpack-rails-tutorial/./client/components/Books/BookView.tsx","webpack://react-webpack-rails-tutorial/./client/components/Goals/index.tsx","webpack://react-webpack-rails-tutorial/./client/components/Goals/GoalView.tsx","webpack://react-webpack-rails-tutorial/./client/components/Settings.tsx","webpack://react-webpack-rails-tutorial/./client/components/Admin.tsx","webpack://react-webpack-rails-tutorial/./client/routes/routes.tsx","webpack://react-webpack-rails-tutorial/./client/apps/RouterApp.jsx","webpack://react-webpack-rails-tutorial/./client/components/NavigationBar/NavigationBar.tsx","webpack://react-webpack-rails-tutorial/./client/packs/client-bundle.js","webpack://react-webpack-rails-tutorial/./client/apps/NavigationBarApp.jsx"],"sourcesContent":["var map = {\n\t\"./calendar_controller.js\": 5461,\n\t\"./dropdown_controller.js\": 1222,\n\t\"./index.js\": 8187,\n\t\"./theme_controller.js\": 9075,\n\t\"controllers/calendar_controller.js\": 5461,\n\t\"controllers/dropdown_controller.js\": 1222,\n\t\"controllers/index.js\": 8187,\n\t\"controllers/theme_controller.js\": 9075\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 3426;","import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n static targets = ['currentTimezone', 'loadingIndicator'];\n\n connect() {\n if (!document.cookie.includes('timezone')) {\n const { timeZone } = Intl.DateTimeFormat().resolvedOptions();\n this.setTimezone(timeZone);\n }\n console.log('HELLOCalendar!!s controller connected');\n document.addEventListener('keydown', this.handleKeyPress.bind(this));\n }\n\n disconnect() {\n document.removeEventListener('keydown', this.handleKeyPress.bind(this));\n }\n\n handleKeyPress(event) {\n if (event.key.toLowerCase() === 'r') {\n console.log('handleKeyPress', event);\n this.refresh();\n }\n }\n\n changeTimezone({\n target: {\n dataset: { timezone },\n },\n }) {\n this.setTimezone(timezone);\n }\n\n goToToday() {\n this.element.querySelector('form')?.submit();\n }\n\n async setTimezone(timezone) {\n if (this.hasLoadingIndicatorTarget) {\n this.loadingIndicatorTarget.classList.remove('hidden');\n }\n\n document.cookie = `timezone=${timezone};path=/;`;\n\n try {\n window.location.reload();\n } finally {\n if (this.hasLoadingIndicatorTarget) {\n this.loadingIndicatorTarget.classList.add('hidden');\n }\n }\n }\n\n async refresh() {\n this.loadingIndicatorTarget.classList.remove('hidden');\n\n console.log('refresh');\n\n try {\n const response = await fetch(window.location.href);\n const html = await response.text();\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/html');\n\n // Find the calendar grid and replace it\n const newCalendarGrid = doc.querySelector('.flex-grow.border-b.grid.grid-cols-7');\n const currentCalendarGrid = document.querySelector('.flex-grow.border-b.grid.grid-cols-7');\n\n if (newCalendarGrid && currentCalendarGrid) {\n currentCalendarGrid.innerHTML = newCalendarGrid.innerHTML;\n }\n } catch (error) {\n console.error('Failed to refresh calendar:', error);\n } finally {\n this.loadingIndicatorTarget.classList.add('hidden');\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n static targets = ['menu'];\n\n toggle(event) {\n event.stopPropagation();\n this.menuTarget.classList.toggle('hidden');\n }\n\n connect() {\n this.clickHandler = this.closeDropdown.bind(this);\n document.addEventListener('click', this.clickHandler);\n }\n\n disconnect() {\n document.removeEventListener('click', this.clickHandler);\n }\n\n closeDropdown(event) {\n if (!this.element.contains(event.target)) {\n this.menuTarget.classList.add('hidden');\n }\n }\n}\n","import { Application } from '@hotwired/stimulus';\nimport { definitionsFromContext } from '@hotwired/stimulus-webpack-helpers';\n\nconst application = Application.start();\nconst context = require.context('.', true, /\\.js$/);\napplication.load(definitionsFromContext(context));\n","import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n connect() {\n console.log('Theme controller connected');\n }\n\n toggle() {\n if (document.documentElement.classList.contains('dark')) {\n document.documentElement.classList.remove('dark');\n localStorage.theme = 'light';\n } else {\n document.documentElement.classList.add('dark');\n localStorage.theme = 'dark';\n }\n\n console.log('Theme toggled 2');\n }\n}\n","import React from 'react';\n\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\n\nimport { useCable } from '../components/Calendar/hooks/useCable';\n\nconst CableProvider = ({ children }: { children: React.ReactNode }) => {\n useCable();\n\n return children;\n};\n\n/* eslint-disable react/prefer-stateless-function */\nfunction Layout({ children }: { children: React.ReactNode }) {\n const queryClient = new QueryClient();\n\n return (\n \n {children}\n \n );\n}\n\nexport default Layout;\n","import { useCallback, useEffect } from 'react';\nimport { createConsumer } from '@rails/actioncable';\nimport { useQueryClient } from '@tanstack/react-query';\n\nexport const useCable = () => {\n const queryClient = useQueryClient();\n\n const onConnected = useCallback(() => {\n console.log('[Calendar WebSocket] Connected');\n }, []);\n\n const onDisconnected = useCallback(() => {\n console.log('[Calendar WebSocket] Disconnected');\n }, []);\n\n const onReceived = useCallback(\n (message: any) => {\n const { type } = message;\n console.log(`[Calendar WebSocket] Received: ${type}`);\n\n // Invalidate queries when meetings are updated\n if (type === 'meetings_updated') {\n console.log('[Calendar WebSocket] Invalidating meetings and calendars queries');\n\n queryClient.invalidateQueries({ queryKey: ['meetings'] });\n queryClient.invalidateQueries({ queryKey: ['calendars'] });\n }\n },\n [queryClient],\n );\n\n useEffect(() => {\n console.log('[Calendar WebSocket] Creating connection...');\n\n const cable = createConsumer();\n\n const subscription = cable.subscriptions.create('CalendarChannel', {\n connected: onConnected,\n disconnected: onDisconnected,\n received: onReceived,\n });\n\n return () => {\n console.log('[Calendar WebSocket] Destroying connection...');\n subscription.unsubscribe();\n cable.disconnect();\n };\n }, [onConnected, onDisconnected, onReceived]);\n};\n","import { create } from 'zustand';\nimport axios from 'axios';\nimport { Meeting, UserEmail } from '../components/Calendar/types';\n\ninterface CalendarStore {\n selectedCalendars: number[];\n currentTimezone: string;\n currentDate: Date;\n meetings: Meeting[];\n calendars: UserEmail[];\n isLoading: boolean;\n\n // Actions\n toggleCalendar: (calendarId: number) => void;\n setCurrentDate: (date: Date) => void;\n setCurrentTimezone: (timezone: string) => void;\n fetchCalendars: () => Promise;\n fetchMeetings: () => Promise;\n}\n\nexport const useCalendarStore = create((set, get) => ({\n selectedCalendars: [],\n currentTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n currentDate: new Date(),\n meetings: [],\n calendars: [],\n isLoading: false,\n\n toggleCalendar: (calendarId) => {\n set((state) => ({\n selectedCalendars: state.selectedCalendars.includes(calendarId)\n ? state.selectedCalendars.filter((id) => id !== calendarId)\n : [...state.selectedCalendars, calendarId],\n }));\n get().fetchMeetings();\n },\n\n setCurrentDate: (date) => {\n set({ currentDate: date });\n get().fetchMeetings();\n },\n\n setCurrentTimezone: (timezone) => {\n set({ currentTimezone: timezone });\n get().fetchMeetings();\n },\n\n fetchCalendars: async () => {\n try {\n const response = await axios.get('/calendars');\n set({ calendars: response.data.calendars });\n } catch (error) {\n console.error('Failed to fetch calendars:', error);\n }\n },\n\n fetchMeetings: async () => {\n const { currentDate, selectedCalendars, currentTimezone } = get();\n set({ isLoading: true });\n\n try {\n const startDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\n const endDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);\n\n const viewStartDate = new Date(startDate);\n viewStartDate.setDate(viewStartDate.getDate() - viewStartDate.getDay());\n\n const viewEndDate = new Date(endDate);\n viewEndDate.setDate(endDate.getDate() + (6 - endDate.getDay()));\n\n const response = await axios.get('/meetings', {\n params: {\n start_date: viewStartDate.toISOString(),\n end_date: viewEndDate.toISOString(),\n calendar_ids: selectedCalendars,\n timezone: currentTimezone,\n },\n });\n\n set({ meetings: response.data.meetings });\n } catch (error) {\n console.error('Failed to fetch meetings:', error);\n } finally {\n set({ isLoading: false });\n }\n },\n}));\n","import React from 'react';\nimport { UserEmail } from '../types';\n\ninterface SidebarProps {\n calendars: UserEmail[];\n selectedCalendars: number[];\n onCalendarToggle: (id: number) => void;\n onOpenAddEventModal: () => void;\n}\n\nexport const Sidebar: React.FC = ({\n calendars,\n selectedCalendars,\n onCalendarToggle,\n onOpenAddEventModal,\n}) => {\n return (\n
\n
\n \n Add Event\n \n
Calendars
\n
\n {calendars.map((calendar) => (\n
\n onCalendarToggle(calendar.id)}\n />\n \n
\n ))}\n
\n
\n
\n );\n};\n","import React from 'react';\nimport { CalendarView } from '../types';\n\ninterface CalendarHeaderProps {\n currentDate: Date;\n currentView: CalendarView;\n currentTimezone: string;\n setCurrentView: (view: CalendarView) => void;\n goToToday: () => void;\n goToPrevious: () => void;\n goToNext: () => void;\n}\n\nexport const CalendarHeader: React.FC = ({\n currentDate,\n currentView,\n currentTimezone,\n setCurrentView,\n goToToday,\n goToPrevious,\n goToNext,\n}) => {\n return (\n
\n
\n

\n {currentDate.toLocaleString('default', {\n month: 'long',\n year: 'numeric',\n ...(currentView === 'week' && { day: 'numeric' }),\n })}\n

\n
\n setCurrentView('month')}\n className={`px-4 py-2 text-sm font-medium border ${\n currentView === 'month'\n ? 'bg-blue-50 border-blue-500 text-blue-600 dark:bg-blue-900/30 dark:border-blue-400 dark:text-blue-300'\n : 'bg-white border-gray-300 text-gray-700 hover:bg-gray-50 dark:bg-gray-700 dark:text-gray-200 dark:border-gray-600'\n } rounded-l-md`}\n >\n Month\n \n setCurrentView('agenda')}\n className={`px-4 py-2 text-sm font-medium border-t border-b border-r rounded-r-md ${\n currentView === 'agenda' || currentView === 'week'\n ? 'bg-blue-50 border-blue-500 text-blue-600 dark:bg-blue-900/30 dark:border-blue-400 dark:text-blue-300 border-l'\n : 'bg-white border-gray-300 text-gray-700 hover:bg-gray-50 dark:bg-gray-700 dark:text-gray-200 dark:border-gray-600'\n }`}\n >\n Week\n \n
\n {(currentView == 'agenda' || currentView == 'week') && (\n
\n setCurrentView('agenda')}\n className={`px-4 py-2 text-sm font-medium border ${\n currentView === 'agenda'\n ? 'bg-blue-50 border-blue-500 text-blue-600 dark:bg-blue-900/30 dark:border-blue-400 dark:text-blue-300'\n : 'bg-white border-gray-300 text-gray-700 hover:bg-gray-50 dark:bg-gray-700 dark:text-gray-200 dark:border-gray-600'\n } rounded-l-md`}\n >\n List\n \n setCurrentView('week')}\n className={`px-4 py-2 text-sm font-medium border-t border-b border-r rounded-r-md ${\n currentView === 'week'\n ? 'bg-blue-50 border-blue-500 text-blue-600 dark:bg-blue-900/30 dark:border-blue-400 dark:text-blue-300 border-l'\n : 'bg-white border-gray-300 text-gray-700 hover:bg-gray-50 dark:bg-gray-700 dark:text-gray-200 dark:border-gray-600'\n }`}\n >\n Hourly\n \n
\n )}\n
\n
\n
\n \n
\n \n Today\n \n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n );\n};\n","export const weekDays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\nexport const getCalendarDays = (currentDate: Date): Date[] => {\n const startDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\n const endDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);\n\n const startWeek = new Date(startDate);\n startWeek.setDate(startWeek.getDate() - startWeek.getDay());\n\n const endWeek = new Date(endDate);\n endWeek.setDate(endDate.getDate() + (6 - endDate.getDay()));\n\n const days: Date[] = [];\n const currentDay = new Date(startWeek);\n\n while (currentDay <= endWeek) {\n days.push(new Date(currentDay));\n currentDay.setDate(currentDay.getDate() + 1);\n }\n\n return days;\n};\n\nexport const getWeekDays = (currentDate: Date): Date[] => {\n const startOfWeek = new Date(currentDate);\n startOfWeek.setDate(startOfWeek.getDate() - startOfWeek.getDay());\n\n const days: Date[] = [];\n for (let i = 0; i < 7; i++) {\n const day = new Date(startOfWeek);\n day.setDate(day.getDate() + i);\n days.push(day);\n }\n return days;\n};\n\nexport const formatTime = (date: Date, format: 'friendly' | 'default' = 'default') => {\n if (format === 'friendly') {\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const period = hours >= 12 ? 'pm' : 'am';\n const friendlyHours = hours % 12 || 12;\n\n // Only show minutes if they're not zero\n return minutes === 0\n ? `${friendlyHours}${period}`\n : `${friendlyHours}:${minutes.toString().padStart(2, '0')}${period}`;\n }\n\n // Default format (original implementation)\n return date.toLocaleTimeString('default', {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n });\n};\n","import React from 'react';\nimport { Meeting } from '../types';\nimport { weekDays, getCalendarDays } from '../utils';\n\ninterface MonthViewProps {\n currentDate: Date;\n meetings: Meeting[];\n currentTimezone: string;\n onMeetingClick: (meeting: Meeting) => void;\n setShowEditor: (show: boolean) => void;\n setEditorPosition: (position: { top: number; left: number }) => void;\n setDraftMeeting: (\n meeting: {\n startTime: Date;\n endTime: Date;\n top: number;\n height: number;\n dayDate: Date;\n } | null,\n ) => void;\n showEditor: boolean;\n draftMeeting: {\n id?: number;\n startTime: Date;\n endTime: Date;\n top: number;\n height: number;\n dayDate: Date;\n } | null;\n}\n\nexport const MonthView: React.FC = ({\n currentDate,\n meetings,\n currentTimezone,\n onMeetingClick,\n setShowEditor,\n setEditorPosition,\n setDraftMeeting,\n showEditor,\n draftMeeting,\n}) => {\n const handleDateClick = (date: Date, event: React.MouseEvent) => {\n if (showEditor) {\n setShowEditor(false);\n setDraftMeeting(null);\n return;\n }\n\n const rect = (event.currentTarget as Element).getBoundingClientRect();\n const dayWidth = rect.width;\n\n const startTime = new Date(date);\n startTime.setHours(9, 0, 0, 0);\n const endTime = new Date(startTime);\n endTime.setHours(10, 0, 0, 0);\n\n setDraftMeeting({\n startTime,\n endTime,\n top: rect.top,\n height: 60,\n dayDate: date,\n });\n\n setEditorPosition({\n top: rect.top,\n left: rect.right - dayWidth - 330,\n });\n\n setShowEditor(true);\n };\n\n const DraftMeeting = () => {\n if (!draftMeeting) return null;\n\n const formatTime = (date: Date) => {\n return date.toLocaleTimeString([], {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n });\n };\n\n return (\n
\n
\n
(No title)
\n
\n {formatTime(draftMeeting.startTime)} - {formatTime(draftMeeting.endTime)}\n
\n
\n
\n );\n };\n\n return (\n <>\n
\n {weekDays.map((day) => (\n \n {day}\n
\n ))}\n \n
\n {getCalendarDays(currentDate).map((date) => {\n const isToday = date.toDateString() === new Date().toDateString();\n const isDraftDate = draftMeeting && date.toDateString() === draftMeeting.dayDate.toDateString();\n\n return (\n handleDateClick(date, e)}\n >\n \n {date.getDate()}\n
\n {isDraftDate && !draftMeeting.id && }\n {meetings\n .filter((meeting) => new Date(meeting.starts_at).toDateString() === date.toDateString())\n .sort((a, b) => new Date(a.starts_at).getTime() - new Date(b.starts_at).getTime())\n .map((meeting) => (\n {\n e.stopPropagation();\n onMeetingClick(meeting);\n }}\n id={`meeting-${meeting.id}`}\n >\n
\n {meeting.name}\n
\n {new Date(meeting.starts_at).toLocaleTimeString([], {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n timeZone: currentTimezone,\n })}\n
\n
\n \n ))}\n \n );\n })}\n \n \n );\n};\n","import React from 'react';\nimport { Meeting } from '@/types/meeting';\n\ninterface WeekMeetingProps {\n meeting: Meeting;\n currentTimezone: string;\n onMeetingClick: (meeting: Meeting) => void;\n cellHeight: number;\n}\n\nexport const WeekMeeting: React.FC = ({\n meeting,\n currentTimezone,\n onMeetingClick,\n cellHeight,\n}) => {\n const startTime = new Date(meeting.starts_at);\n const endTime = new Date(meeting.ends_at);\n const topPosition = (startTime.getHours() * 60 + startTime.getMinutes()) * (cellHeight / 60);\n const height =\n (endTime.getHours() * 60 + endTime.getMinutes() - (startTime.getHours() * 60 + startTime.getMinutes())) *\n (cellHeight / 60);\n\n return (\n onMeetingClick(meeting)}\n >\n {meeting.name}\n
\n {startTime.toLocaleTimeString([], {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n timeZone: currentTimezone,\n })}\n
\n \n );\n};\n","import React, { useState, useCallback } from 'react';\nimport { Meeting } from '../types';\nimport { getWeekDays, weekDays } from '../utils';\nimport { WeekMeeting } from './WeekMeeting';\n\ninterface WeekViewProps {\n currentDate: Date;\n meetings: Meeting[];\n currentTimezone: string;\n onCreateMeeting?: (startTime: Date, endTime: Date, dayDate: Date) => void;\n onMeetingClick: (meeting: Meeting) => void;\n showEditor: boolean;\n editorPosition: { top: number; left: number };\n setShowEditor: (show: boolean) => void;\n setEditorPosition: (position: { top: number; left: number }) => void;\n setDraftMeeting: (\n meeting: {\n startTime: Date;\n endTime: Date;\n top: number;\n height: number;\n dayDate: Date;\n } | null,\n ) => void;\n draftMeeting: {\n id?: number;\n startTime: Date;\n endTime: Date;\n top: number;\n height: number;\n dayDate: Date;\n } | null;\n}\n\nconst HOURS = Array.from({ length: 24 }, (_, i) => i);\nconst CELL_HEIGHT = 60; // height in pixels for each hour cell\n\nconst getTimeFromY = (y: number): Date => {\n const hour = Math.floor(y / CELL_HEIGHT);\n const minute = Math.floor((y % CELL_HEIGHT) / (CELL_HEIGHT / 60));\n const date = new Date();\n date.setHours(hour, minute, 0, 0);\n return date;\n};\n\nexport const WeekView: React.FC = ({\n currentDate,\n meetings,\n currentTimezone,\n onCreateMeeting,\n onMeetingClick,\n showEditor,\n editorPosition,\n setShowEditor,\n setEditorPosition,\n setDraftMeeting,\n draftMeeting,\n}) => {\n const [currentTime, setCurrentTime] = React.useState(new Date());\n const [dragStart, setDragStart] = useState<{ y: number; date: Date } | null>(null);\n const [dragEnd, setDragEnd] = useState(null);\n\n React.useEffect(() => {\n const timer = setInterval(() => setCurrentTime(new Date()), 60000); // Update every minute\n return () => clearInterval(timer);\n }, []);\n\n React.useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (showEditor && !(e.target as Element).closest('.inline-event-editor')) {\n setShowEditor(false);\n setDraftMeeting(null);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [showEditor]);\n\n React.useEffect(() => {\n // Wait for next render cycle to ensure DOM is ready\n const timer = setTimeout(() => {\n const container = document.querySelector('.week-view-grid-container');\n if (container) {\n // Scroll to show business hours (e.g., 9 AM) instead of scrolling to bottom\n const businessHourOffset = 9 * CELL_HEIGHT; // 9 AM\n container.scrollTop = businessHourOffset;\n }\n }, 0);\n\n return () => clearTimeout(timer);\n }, [meetings]); // Add meetings as dependency to re-run when meetings change\n\n const handleDragEnd = useCallback(() => {\n if (dragStart) {\n const startY = dragStart.y;\n const endY = dragEnd === null ? startY + CELL_HEIGHT : dragEnd;\n\n const startTime = getTimeFromY(Math.min(startY, endY));\n const endTime = getTimeFromY(Math.max(startY, endY));\n\n startTime.setFullYear(\n dragStart.date.getFullYear(),\n dragStart.date.getMonth(),\n dragStart.date.getDate(),\n );\n endTime.setFullYear(dragStart.date.getFullYear(), dragStart.date.getMonth(), dragStart.date.getDate());\n\n const top = Math.min(startY, endY);\n const height = Math.abs(endY - startY);\n\n setDraftMeeting({\n startTime,\n endTime,\n top,\n height,\n dayDate: dragStart.date,\n });\n\n // Get the container element's position\n const leftSidebar = document.querySelector('.left-sidebar-container');\n const containerElement = document.querySelector('.week-view-grid-container');\n const timeLegendContainer = document.querySelector('.time-legend-container');\n const containerRect = containerElement?.getBoundingClientRect() || {\n top: 0,\n left: 0,\n width: 0, // Add width property\n height: 0, // Add height property for completeness\n };\n const timeLegendWidth = timeLegendContainer?.getBoundingClientRect().width || 0;\n\n if (!timeLegendWidth || !containerRect.width) {\n return;\n }\n\n const dayWidth = (containerRect.width - timeLegendWidth) / 7;\n\n setEditorPosition({\n top: dragStart.y + containerRect.top - (containerElement?.scrollTop || 0),\n left: dayWidth * dragStart.date.getDay() - 4,\n });\n\n setShowEditor(true);\n }\n setDragStart(null);\n setDragEnd(null);\n }, [dragStart, dragEnd]);\n\n const DraftMeeting = useCallback(() => {\n if (!draftMeeting) return null;\n\n const formatTime = (date: Date) => {\n return date.toLocaleTimeString([], {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n });\n };\n\n const handleClick = (e: React.MouseEvent) => {\n console.log('4. DraftEvent clicked');\n e.stopPropagation();\n const rect = e.currentTarget.getBoundingClientRect();\n console.log('5. Click position', {\n rect,\n top: rect.top,\n left: rect.right + 8,\n });\n setEditorPosition({\n top: rect.top,\n left: rect.right + 8,\n });\n setShowEditor(true);\n };\n\n return (\n \n
(No title)
\n
\n {formatTime(draftMeeting.startTime)} - {formatTime(draftMeeting.endTime)}\n
\n \n );\n }, [draftMeeting]);\n\n return (\n
\n {/* Fixed header */}\n
\n
\n {getWeekDays(currentDate).map((date) => (\n \n
{weekDays[date.getDay()]}
\n \n {date.getDate()}\n
\n
\n ))}\n
\n\n {/* Scrollable content */}\n
\n
\n {HOURS.map((hour) => (\n \n {hour === 0 ? '12 AM' : hour < 12 ? `${hour} AM` : hour === 12 ? '12 PM' : `${hour - 12} PM`}\n
\n ))}\n
\n\n
\n
\n {HOURS.map((hour) => (\n \n ))}\n
\n\n \n
\n
\n
\n\n {getWeekDays(currentDate).map((date) => (\n {\n const isMeeting = (e.target as Element).closest('.calendar-meeting');\n if (showEditor || isMeeting) {\n setShowEditor(false);\n setDraftMeeting(null);\n return;\n }\n\n const rect = e.currentTarget.getBoundingClientRect();\n const y = e.clientY - rect.top + e.currentTarget.parentElement?.scrollTop!;\n setDragStart({ y, date });\n }}\n onMouseMove={(e) => {\n if (dragStart) {\n const rect = e.currentTarget.getBoundingClientRect();\n const y = e.clientY - rect.top + e.currentTarget.parentElement?.scrollTop!;\n setDragEnd(y);\n }\n }}\n onMouseUp={handleDragEnd}\n onMouseLeave={handleDragEnd}\n >\n {dragStart && date.toDateString() === dragStart.date.toDateString() && dragEnd !== null && (\n \n )}\n\n {draftMeeting &&\n date.toDateString() === draftMeeting.dayDate.toDateString() &&\n !draftMeeting.id && }\n\n {meetings\n .filter((meeting) => new Date(meeting.starts_at).toDateString() === date.toDateString())\n .map((meeting) => (\n \n ))}\n
\n ))}\n
\n \n \n );\n};\n","import React, { useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faClock,\n faUsers,\n faVideo,\n faLocationDot,\n faAlignLeft,\n faCalendarDay,\n faTimes,\n} from '@fortawesome/free-solid-svg-icons';\nimport axios from 'axios';\n\ninterface AddEventModalProps {\n isOpen: boolean;\n onClose: () => void;\n onEventCreated?: (meeting: any) => void;\n}\n\ntype EventType = 'Event' | 'Task' | 'Appointment';\n\nexport const AddEventModal: React.FC = ({ isOpen, onClose, onEventCreated }) => {\n const [eventType, setEventType] = useState('Event');\n const [title, setTitle] = useState('');\n const [busy, setBusy] = useState(true);\n const [description, setDescription] = useState('');\n const [location, setLocation] = useState('');\n const [startDate, setStartDate] = useState('');\n const [endDate, setEndDate] = useState('');\n const [guests, setGuests] = useState>([]);\n\n if (!isOpen) return null;\n\n const handleSubmit = async () => {\n try {\n const response = await axios.post('/meetings', {\n meeting: {\n name: title,\n starts_at: startDate,\n ends_at: endDate,\n description,\n location,\n all_day: false,\n },\n meeting_users: guests.map((guest) => ({\n email: guest.email,\n response_status: 'pending',\n organizer: false,\n is_self: false,\n })),\n send_notifications: true,\n });\n\n if (response.data.success) {\n onEventCreated?.(response.data.meeting);\n onClose();\n }\n } catch (error) {\n console.error('Failed to create meeting:', error);\n }\n };\n\n return (\n
\n
\n
\n\n e.stopPropagation()}\n >\n {/* Header */}\n
\n setTitle(e.target.value)}\n autoFocus\n />\n \n
\n\n {/* Event Type Selector */}\n
\n {(['Event', 'Task', 'Appointment'] as EventType[]).map((type) => (\n setEventType(type)}\n className={`px-4 py-2 rounded-lg ${\n eventType === type\n ? 'bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200'\n : 'hover:bg-gray-100 dark:hover:bg-gray-700'\n }`}\n >\n {type}\n \n ))}\n
\n\n {/* Main Content */}\n
\n {/* Time Selection */}\n
\n \n
\n setStartDate(e.target.value)}\n />\n -\n setEndDate(e.target.value)}\n />\n
\n
\n\n {/* Guests */}\n
\n \n \n setGuests(e.target.value.split(',').map((email) => ({ email: email.trim() })))\n }\n />\n
\n\n {/* Google Meet */}\n
\n \n Add Google Meet video conferencing\n
\n\n {/* Location */}\n
\n \n setLocation(e.target.value)}\n />\n
\n\n {/* Description */}\n
\n \n setDescription(e.target.value)}\n />\n
\n\n {/* Calendar Selection */}\n
\n
\n \n Personal\n
\n
\n {busy ? 'Busy' : 'Free'}\n setBusy(!busy)}\n className={`w-10 h-6 rounded-full p-1 transition-colors duration-200 ease-in-out ${\n busy ? 'bg-blue-600' : 'bg-gray-200'\n }`}\n >\n \n \n
\n
\n
\n\n {/* Footer */}\n
\n \n
\n \n Cancel\n \n \n Save\n \n
\n
\n
\n
\n
\n );\n};\n","import React from 'react';\nimport { Meeting } from '@/types';\n\ninterface AgendaMeetingProps {\n meeting: Meeting;\n onMeetingClick: (meeting: Meeting) => void;\n}\n\nconst AgendaMeeting: React.FC = ({ meeting, onMeetingClick }) => {\n return (\n onMeetingClick(meeting)}\n >\n
{meeting.name || '(No title)'}
\n
\n {new Date(meeting.starts_at).toLocaleTimeString([], {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n })}\n {' - '}\n {new Date(meeting.ends_at).toLocaleTimeString([], {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n })}\n
\n
\n
\n {meeting.account?.logo_url && (\n \n )}\n {meeting.account?.name}\n
\n
\n \n );\n};\n\nexport default AgendaMeeting;\n","import React from 'react';\nimport { Meeting } from '../types';\nimport { getWeekDays, weekDays } from '../utils';\nimport AgendaMeeting from './AgendaMeeting';\n\ninterface AgendaViewProps {\n currentDate: Date;\n meetings: Meeting[];\n currentTimezone: string;\n onMeetingClick: (meeting: Meeting) => void;\n}\n\nconst AgendaView: React.FC = ({\n currentDate,\n meetings,\n currentTimezone,\n onMeetingClick,\n}) => {\n return (\n
\n {/* Fixed header */}\n
\n {getWeekDays(currentDate).map((date) => (\n \n
{weekDays[date.getDay()]}
\n \n {date.getDate()}\n
\n
\n ))}\n \n\n {/* Scrollable content */}\n
\n {getWeekDays(currentDate).map((date) => (\n
\n {meetings\n .filter((meeting) => new Date(meeting.starts_at).toDateString() === date.toDateString())\n .sort((a, b) => new Date(a.starts_at).getTime() - new Date(b.starts_at).getTime())\n .map((meeting) => (\n \n ))}\n
\n ))}\n
\n \n );\n};\n\nexport default AgendaView;\n","import React from 'react';\nimport { Meeting } from '@/types';\nimport DOMPurify from 'dompurify';\n\ninterface MeetingDetailsModalProps {\n meeting: Meeting | null;\n onClose: () => void;\n onEditMeeting: (meeting: Meeting) => void;\n onDeleteMeeting: (meeting: Meeting) => void;\n}\n\nexport const MeetingDetailsModal: React.FC = ({\n meeting,\n onClose,\n onEditMeeting,\n onDeleteMeeting,\n}) => {\n if (!meeting) return null;\n\n const handleBackdropClick = (e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n onClose();\n }\n };\n\n const formatDateTime = (date: string, timezone: string) => {\n return new Date(date).toLocaleString([], {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n month: 'short',\n day: 'numeric',\n timeZone: timezone,\n });\n };\n\n return (\n \n
\n
\n {\n if (confirm('Are you sure you want to delete this meeting?')) {\n onDeleteMeeting(meeting);\n }\n }}\n className=\"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200\"\n >\n \n \n \n \n {\n onEditMeeting(meeting);\n }}\n className=\"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200\"\n >\n \n \n \n \n \n \n \n \n \n
\n\n {window.USER?.superadmin && (\n \n \n \n \n \n )}\n\n

{meeting.name}

\n\n
\n
\n \n \n \n
\n {formatDateTime(meeting.starts_at, meeting.timezone)}\n {' - '}\n {formatDateTime(meeting.ends_at, meeting.timezone)}\n
{meeting.timezone}
\n
\n
\n\n {meeting.data?.description && (\n
\n \n \n \n \n
\n )}\n\n {meeting.location && (\n
\n \n \n \n \n
{meeting.location}
\n
\n )}\n\n
\n
{JSON.stringify(meeting, null, 2)}
\n
\n\n
\n {meeting.data?.hangout_link && (\n window.open(meeting.data.hangout_link, '_blank')}\n className=\"bg-green-500 text-white px-4 py-2 rounded hover:bg-green-600 flex items-center space-x-2\"\n >\n \n \n \n Join Google Meet\n \n )}\n\n {/* (window.location.href = `mailto:${meeting.organizer_email}`)}\n className=\"text-gray-700 dark:text-gray-300 px-4 py-2 rounded border border-gray-300 dark:border-gray-600 hover:bg-gray-100 dark:hover:bg-gray-700 flex items-center space-x-2\"\n >\n \n \n \n Send email\n */}\n
\n
\n
\n \n );\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport axios from 'axios';\nimport { useCalendarStore } from '../../../stores/calendarStore';\nimport { Meeting } from '../types';\n\ninterface InlineMeetingEditorProps {\n startTime: Date;\n endTime: Date;\n onSave: (title: string) => void;\n onCancel: () => void;\n position: { top: number; left: number };\n meeting?: Meeting;\n}\n\nexport const InlineMeetingEditor: React.FC = ({\n meeting,\n startTime,\n endTime,\n onSave,\n onCancel,\n position,\n}) => {\n console.log('meeting', JSON.stringify(meeting, null, 2));\n\n const [title, setTitle] = useState(meeting?.name || '');\n const [selectedCalendarId, setSelectedCalendarId] = useState(null);\n const [isSaving, setIsSaving] = useState(false);\n const inputRef = useRef(null);\n const { calendars, fetchMeetings } = useCalendarStore();\n const [meetingStartTime, setMeetingStartTime] = useState(startTime);\n const [meetingEndTime, setMeetingEndTime] = useState(endTime);\n\n useEffect(() => {\n inputRef.current?.focus();\n if (calendars.length > 0 && !selectedCalendarId) {\n setSelectedCalendarId(calendars[0].id);\n }\n }, [calendars]);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n handleSave();\n } else if (e.key === 'Escape') {\n onCancel();\n }\n };\n\n const handleSave = async () => {\n if (!selectedCalendarId) {\n alert('Please select a calendar');\n return;\n }\n\n setIsSaving(true);\n\n try {\n const meetingData = {\n meeting: {\n name: title || '(No title)',\n starts_at: meetingStartTime.toISOString(),\n ends_at: meetingEndTime.toISOString(),\n calendar_id: selectedCalendarId,\n },\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n };\n\n if (meeting?.id) {\n await axios.put(`/meetings/${meeting.id}`, meetingData);\n } else {\n await axios.post('/meetings', meetingData);\n }\n\n // Fetch updated meetings after successful creation\n await fetchMeetings();\n\n onSave(title);\n } catch (error) {\n console.error('Failed to create meeting:', error);\n alert('Failed to create meeting. Please try again.');\n } finally {\n setIsSaving(false);\n }\n };\n\n return (\n e.stopPropagation()}\n >\n
\n setTitle(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder=\"Add title\"\n className=\"flex-1 bg-transparent border-none focus:outline-none focus:ring-0 text-black dark:text-white\"\n autoFocus\n />\n \n
\n
\n \n \n \n
\n {\n const newDate = new Date(e.target.value);\n const newStartTime = new Date(meetingStartTime);\n newStartTime.setFullYear(newDate.getFullYear(), newDate.getMonth(), newDate.getDate());\n setMeetingStartTime(newStartTime);\n }}\n className=\"bg-transparent border dark:border-gray-700 rounded px-1 text-sm text-gray-500 dark:text-white\"\n />{' '}\n -{' '}\n {\n const newDate = new Date(e.target.value);\n const newEndTime = new Date(meetingEndTime);\n newEndTime.setFullYear(newDate.getFullYear(), newDate.getMonth(), newDate.getDate());\n setMeetingEndTime(newEndTime);\n }}\n className=\"bg-transparent border dark:border-gray-700 rounded px-1 text-sm text-gray-500 dark:text-white\"\n />\n
\n
\n
\n \n \n \n
\n {\n const [hours, minutes] = e.target.value.split(':');\n const newStartTime = new Date(meetingStartTime);\n newStartTime.setHours(parseInt(hours), parseInt(minutes));\n setMeetingStartTime(newStartTime);\n }}\n className=\"bg-transparent border dark:border-gray-700 rounded px-1 text-sm text-gray-500 dark:text-white\"\n />{' '}\n -{' '}\n {\n const [hours, minutes] = e.target.value.split(':');\n const newEndTime = new Date(meetingEndTime);\n newEndTime.setHours(parseInt(hours), parseInt(minutes));\n setMeetingEndTime(newEndTime);\n }}\n className=\"bg-transparent border dark:border-gray-700 rounded px-1 text-sm text-gray-500 dark:text-white\"\n />\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n setSelectedCalendarId(Number(e.target.value))}\n className=\"w-full p-1 text-sm rounded border dark:border-gray-700 bg-transparent text-black dark:text-white\"\n >\n {calendars.map((calendar) => (\n \n ))}\n \n
\n
\n \n {isSaving ? 'Saving...' : 'Save'}\n \n
\n \n );\n};\n","import React, { useCallback, useState } from 'react';\nimport { CalendarView, Meeting } from './types';\nimport { useCalendar } from './hooks/useCalendar';\nimport { Sidebar } from './components/Sidebar';\nimport { CalendarHeader } from './components/CalendarHeader';\nimport { MonthView } from './components/MonthView';\nimport { WeekView } from './components/WeekView';\nimport { AddEventModal } from './components/AddEventModal';\nimport AgendaView from './components/AgendaView';\nimport { MeetingDetailsModal } from './components/MeetingDetailsModal';\nimport { InlineEventViewer } from './components/InlineEventViewer';\nimport { InlineMeetingEditor } from './components/InlineMeetingEditor';\nimport axios from 'axios';\n\nfunction Calendar() {\n const [currentView, setCurrentView] = useState('agenda');\n const {\n selectedCalendars,\n currentTimezone,\n currentDate,\n meetings,\n calendars,\n handleCalendarToggle,\n setCurrentDate,\n fetchMeetings,\n } = useCalendar();\n\n const [isAddEventModalOpen, setIsAddEventModalOpen] = useState(false);\n const [selectedMeeting, setSelectedMeeting] = useState(null);\n const [showEditor, setShowEditor] = useState(false);\n const [editorPosition, setEditorPosition] = useState({ top: 0, left: 0 });\n const [draftMeeting, setDraftMeeting] = useState<{\n id?: number;\n startTime: Date;\n endTime: Date;\n top: number;\n height: number;\n dayDate: Date;\n } | null>(null);\n\n const goToPreviousMonth = () => {\n setCurrentDate(new Date(currentDate.getFullYear(), currentDate.getMonth() - 1, 1));\n };\n\n const goToNextMonth = () => {\n setCurrentDate(new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 1));\n };\n\n const goToToday = () => {\n setCurrentDate(new Date());\n };\n\n const goToPreviousWeek = () => {\n const newDate = new Date(currentDate);\n newDate.setDate(newDate.getDate() - 7);\n setCurrentDate(newDate);\n };\n\n const goToNextWeek = () => {\n const newDate = new Date(currentDate);\n newDate.setDate(newDate.getDate() + 7);\n setCurrentDate(newDate);\n };\n\n const onMeetingClick = (meeting: Meeting) => {\n console.log('onMeetingClick', JSON.stringify(meeting, null, 2));\n\n setSelectedMeeting(meeting);\n\n const meetingElement = document.getElementById(`meeting-${meeting.id}`);\n if (meetingElement) {\n const rect = meetingElement.getBoundingClientRect();\n setEditorPosition({ top: rect.top, left: rect.left - 330 });\n }\n };\n\n const onCreateMeeting = (startTime: Date, endTime: Date, dayDate: Date) => {\n console.log('Creating meeting:', { startTime, endTime, dayDate });\n };\n\n const onDeleteMeeting = useCallback((meeting: Meeting) => {\n axios.delete(`/meetings/${meeting.id}`).then(() => {\n setSelectedMeeting(null);\n fetchMeetings();\n });\n }, []);\n\n const onEditMeeting = useCallback((meeting: Meeting) => {\n setShowEditor(true);\n\n console.log('Editing meeting:', meeting);\n\n const meetingElement = document.getElementById(`meeting-${meeting.id}`);\n if (meetingElement) {\n console.log('Meeting element:', meetingElement);\n const rect = meetingElement.getBoundingClientRect();\n setEditorPosition({ top: rect.top, left: rect.left - 330 });\n setDraftMeeting({\n ...meeting,\n id: Number(meeting.id),\n startTime: new Date(meeting.starts_at),\n endTime: new Date(meeting.ends_at),\n top: rect.top,\n height: rect.height,\n dayDate: new Date(meeting.starts_at),\n });\n setSelectedMeeting(null);\n } else {\n console.error('Meeting element not found');\n }\n }, []);\n\n return (\n
\n
\n
\n setIsAddEventModalOpen(true)}\n />\n
\n\n
\n \n\n {(() => {\n switch (currentView) {\n case 'month':\n return (\n \n );\n case 'week':\n return (\n \n );\n case 'agenda':\n return (\n \n );\n default:\n return null;\n }\n })()}\n
\n
\n\n setIsAddEventModalOpen(false)} />\n\n setSelectedMeeting(null)}\n onEditMeeting={onEditMeeting}\n onDeleteMeeting={onDeleteMeeting}\n />\n\n {showEditor && draftMeeting && (\n {\n if (onCreateMeeting) {\n onCreateMeeting(draftMeeting.startTime, draftMeeting.endTime, draftMeeting.dayDate);\n }\n setShowEditor(false);\n setDraftMeeting(null);\n }}\n onCancel={() => {\n setShowEditor(false);\n setDraftMeeting(null);\n }}\n />\n )}\n
\n );\n}\n\nexport default Calendar;\n","import { useEffect } from 'react';\nimport { useCalendarStore } from '../../../stores/calendarStore';\n\nexport const useCalendar = () => {\n const {\n selectedCalendars,\n currentTimezone,\n currentDate,\n meetings,\n isLoading,\n calendars,\n toggleCalendar: handleCalendarToggle,\n setCurrentDate,\n setCurrentTimezone,\n fetchCalendars,\n fetchMeetings,\n } = useCalendarStore();\n\n useEffect(() => {\n fetchCalendars();\n fetchMeetings();\n }, []);\n\n return {\n selectedCalendars,\n currentTimezone,\n currentDate,\n meetings,\n isLoading,\n calendars,\n handleCalendarToggle,\n setCurrentDate,\n setCurrentTimezone,\n fetchMeetings,\n };\n};\n","import React from 'react';\n\ninterface Column {\n key: string;\n header: string;\n render?: (value: any, row: any) => React.ReactNode;\n}\n\ninterface Props {\n data: any[];\n columns: Column[];\n onRowClick?: (row: any) => void;\n}\n\nconst DataTable: React.FC = ({ data, columns, onRowClick }) => {\n return (\n
\n \n \n \n {columns.map((column) => (\n \n {column.header}\n \n ))}\n \n \n \n {data.map((row, rowIndex) => (\n onRowClick?.(row)}\n className={`hover:bg-gray-50 dark:hover:bg-gray-800 ${onRowClick ? 'cursor-pointer' : ''}`}\n >\n {columns.map((column) => (\n \n {column.render ? column.render(row[column.key], row) : row[column.key]}\n \n ))}\n \n ))}\n \n
\n
\n );\n};\n\nexport default DataTable;\n","import React from 'react';\nimport { ChatThread } from './Chat';\n\ninterface ChatSidebarProps {\n threads: ChatThread[];\n selectedThread: number | null;\n editingThread: ChatThread | null;\n onThreadSelect: (threadId: number) => void;\n onNewThread: () => void;\n onEditThread: (thread: ChatThread) => void;\n onUpdateThread: (threadId: number, newName: string) => void;\n onDeleteThread: (threadId: number) => void;\n}\n\nconst ChatSidebar: React.FC = ({\n threads,\n selectedThread,\n editingThread,\n onThreadSelect,\n onNewThread,\n onEditThread,\n onUpdateThread,\n onDeleteThread,\n}) => {\n return (\n
\n
\n

Threads

\n \n + New\n \n
\n
\n {threads.map((thread) => (\n \n
onThreadSelect(thread.id)}>\n {editingThread?.id === thread.id ? (\n onEditThread({ ...editingThread, name: e.target.value })}\n onBlur={() => onUpdateThread(thread.id, editingThread.name)}\n className=\"w-full p-1 rounded bg-white dark:bg-gray-600 text-gray-800 dark:text-gray-200\"\n autoFocus\n />\n ) : (\n <>\n

{thread.name}

\n

{thread.last_message}

\n {thread.updated_at}\n \n )}\n
\n \n
\n ))}\n
\n \n );\n};\n\nexport default ChatSidebar;\n","import React from 'react';\n\ninterface Artifact {\n id: number;\n artifact_type: string;\n data: any;\n title: string;\n description: string;\n created_at: string;\n}\n\ninterface Message {\n id: number;\n text: string;\n sender: string;\n chat_thread_id: number;\n created_at: string;\n artifacts: Artifact[];\n}\n\ninterface ChatBubbleProps {\n message: Message;\n isLast?: boolean;\n onArtifactSelect: (artifact: Artifact) => void;\n}\n\nconst ChatBubble: React.FC = ({ message, isLast, onArtifactSelect }) => {\n const isBot = message.sender === 'bot';\n\n return (\n
\n \n
\n {message.text}\n \n {new Date(message.created_at).toLocaleTimeString()}\n \n
\n\n {message.artifacts && message.artifacts.length > 0 && (\n
\n
Artifacts:
\n
\n {message.artifacts.map((artifact) => (\n onArtifactSelect(artifact)}\n className={`px-2 py-1 rounded text-xs ${\n isBot\n ? 'bg-gray-200 dark:bg-gray-600 text-gray-700 dark:text-gray-200'\n : 'bg-blue-700 text-white'\n } transition-colors hover:opacity-80`}\n >\n {artifact.title || artifact.artifact_type}\n \n ))}\n
\n
\n )}\n
\n \n );\n};\n\nexport default ChatBubble;\n","import React, { useState, useRef, useEffect } from 'react';\nimport DataTable from './shared/DataTable';\nimport axios from 'axios';\nimport { useNavigate } from 'react-router-dom';\nimport ChatSidebar from './ChatSidebar';\nimport { useChatCable } from './Chat/hooks/useChatCable';\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport ChatBubble from './Chat/ChatBubble';\n\ninterface Message {\n id: number;\n text: string;\n sender: 'user' | 'bot';\n created_at: string;\n artifacts: Artifact[];\n}\n\nexport interface ChatThread {\n id: number;\n name: string;\n last_message: string;\n created_at: string;\n updated_at: string;\n}\n\ninterface Artifact {\n id: number;\n artifact_type: string;\n data: {\n columns: Array<{ key: string; header: string }>;\n rows: Array;\n };\n title: string;\n description?: string;\n created_at: string;\n}\n\nconst Chat: React.FC = () => {\n const navigate = useNavigate();\n const queryClient = useQueryClient();\n const [newMessage, setNewMessage] = useState('');\n const [showRightPanel, setShowRightPanel] = useState(false);\n const [selectedThread, setSelectedThread] = useState(null);\n const [editingThread, setEditingThread] = useState(null);\n const [isAiTyping, setIsAiTyping] = useState(false);\n const chatInputRef = useRef(null);\n const messagesEndRef = useRef(null);\n const chatContainerRef = useRef(null);\n const [selectedArtifact, setSelectedArtifact] = useState(null);\n\n const scrollToBottom = () => {\n if (chatContainerRef.current) {\n chatContainerRef.current.scrollTop = chatContainerRef.current.scrollHeight;\n }\n };\n\n // Format message text with line breaks\n const formatMessageText = (text: string) => {\n return text.split('\\n').map((line, i) => (\n \n {line}\n {i !== text.split('\\n').length - 1 &&
}\n
\n ));\n };\n\n // Query for threads\n const { data: threads = [] } = useQuery({\n queryKey: ['threads'],\n queryFn: async () => {\n const response = await axios.get('/api/chat_threads');\n if (response.data.length > 0 && !selectedThread) {\n setSelectedThread(response.data[0].id);\n }\n return response.data;\n },\n });\n\n // Query for messages\n const { data: messages = [] } = useQuery({\n queryKey: ['messages', selectedThread],\n queryFn: async () => {\n if (!selectedThread) return [];\n const response = await axios.get(`/api/chat_threads/${selectedThread}/messages`);\n return response.data;\n },\n enabled: !!selectedThread,\n onSuccess: () => {\n // Scroll immediately when messages are loaded\n scrollToBottom();\n },\n });\n\n // Scroll when new messages are added (for streaming responses)\n useEffect(() => {\n scrollToBottom();\n }, [messages]);\n\n // Mutation for sending messages\n const sendMessageMutation = useMutation({\n mutationFn: async ({ threadId, text }: { threadId: number; text: string }) => {\n setIsAiTyping(true);\n try {\n const response = await axios.post(\n `/api/chat_threads/${threadId}/messages`,\n {\n message: {\n text,\n sender: 'user',\n },\n },\n {\n responseType: 'stream',\n onDownloadProgress: (progressEvent) => {\n const events = progressEvent.event.target.responseText\n .split('\\n')\n .filter((line) => line.startsWith('data: '));\n\n events.forEach((eventLine) => {\n try {\n const event = JSON.parse(eventLine.slice(6));\n // Update the message in the cache\n queryClient.setQueryData(['messages', selectedThread], (oldData: Message[] | undefined) => {\n if (!oldData) return oldData;\n return oldData.map((msg) =>\n msg.id === event.messageId ? { ...msg, text: msg.text + event.content } : msg,\n );\n });\n } catch (e) {\n console.error('Error parsing SSE:', e);\n }\n });\n },\n },\n );\n return response.data;\n } finally {\n setIsAiTyping(false);\n }\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['messages', selectedThread] });\n queryClient.invalidateQueries({ queryKey: ['threads'] });\n },\n });\n\n // Mutation for creating threads\n const createThreadMutation = useMutation({\n mutationFn: async (name: string) => {\n const response = await axios.post('/api/chat_threads', {\n chat_thread: { name },\n });\n return response.data;\n },\n onSuccess: (newThread) => {\n queryClient.invalidateQueries({ queryKey: ['threads'] });\n setSelectedThread(newThread.id);\n setTimeout(() => chatInputRef.current?.focus(), 0);\n },\n });\n\n // Mutation for updating threads\n const updateThreadMutation = useMutation({\n mutationFn: async ({ threadId, name }: { threadId: number; name: string }) => {\n const response = await axios.put(`/api/chat_threads/${threadId}`, {\n chat_thread: { name },\n });\n return response.data;\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['threads'] });\n setEditingThread(null);\n },\n });\n\n // Mutation for deleting threads\n const deleteThreadMutation = useMutation({\n mutationFn: async (threadId: number) => {\n await axios.delete(`/api/chat_threads/${threadId}`);\n return threadId;\n },\n onSuccess: (deletedThreadId) => {\n queryClient.invalidateQueries({ queryKey: ['threads'] });\n if (selectedThread === deletedThreadId) {\n const nextThread = threads.find((t) => t.id !== deletedThreadId);\n setSelectedThread(nextThread?.id || null);\n }\n },\n });\n\n const handleSend = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!newMessage.trim() || !selectedThread) return;\n\n sendMessageMutation.mutate(\n { threadId: selectedThread, text: newMessage },\n {\n onSuccess: () => {\n setNewMessage('');\n },\n },\n );\n };\n\n const updateThread = (threadId: number, newName: string) => {\n updateThreadMutation.mutate({ threadId, name: newName });\n };\n\n const deleteThread = (threadId: number) => {\n if (!window.confirm('Are you sure you want to delete this thread?')) return;\n deleteThreadMutation.mutate(threadId);\n };\n\n const toggleRightPanel = () => {\n setShowRightPanel(!showRightPanel);\n };\n\n const tableData = Array.from({ length: 20 }).map((_, index) => ({\n id: index + 1,\n title: `Sample Item ${index + 1}`,\n status: index % 2 === 0 ? 'Active' : 'Pending',\n date: new Date().toLocaleDateString(),\n }));\n\n const tableColumns = [\n { key: 'id', header: 'ID' },\n { key: 'title', header: 'Title' },\n { key: 'status', header: 'Status' },\n { key: 'date', header: 'Date' },\n ];\n\n const handleOrganizationClick = (organization: any) => {\n navigate(`/organizations/${organization.id}`);\n };\n\n const renderArtifact = (artifact: Artifact) => {\n switch (artifact.artifact_type) {\n case 'table':\n return (\n \n );\n default:\n return null;\n }\n };\n\n return (\n
\n {\n createThreadMutation.mutate('Untitled');\n }}\n onEditThread={setEditingThread}\n onUpdateThread={updateThread}\n onDeleteThread={deleteThread}\n />\n\n {/* Main Chat Area */}\n {selectedThread && (\n
\n {/* Dark mode and right panel toggles */}\n
\n {selectedThread ? (\n

\n {threads.find((t) => t.id === selectedThread)?.name}\n

\n ) : (\n

Chat

\n )}\n
\n\n
\n {messages.map((message, index) => (\n \n ))}\n {isAiTyping && (\n
\n
\n
\n \n \n \n
\n
\n
\n )}\n
\n
\n\n \n
\n setNewMessage(e.target.value)}\n placeholder=\"Type your message...\"\n className=\"flex-1 p-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500\n bg-white dark:bg-gray-700\n border-gray-300 dark:border-gray-600\n text-gray-800 dark:text-gray-200\n placeholder-gray-500 dark:placeholder-gray-400\"\n />\n \n Send\n \n
\n \n
\n )}\n\n {/* Right Panel with Table */}\n {selectedArtifact && (\n
\n
\n

{selectedArtifact.title}

\n setSelectedArtifact(null)}\n className=\"p-1 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-full\"\n >\n \n \n \n \n
\n
{renderArtifact(selectedArtifact)}
\n
\n )}\n
\n );\n};\n\nexport default Chat;\n","import React, { useEffect, useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSearch, faFilter, faSortAmountDown, faSortAmountUp } from '@fortawesome/free-solid-svg-icons';\nimport { useNavigate } from 'react-router-dom';\nimport DataTable from './shared/DataTable';\nimport OrganizationSidebar from './OrganizationSidebar';\n\ninterface Organization {\n id: number;\n name: string;\n duns: string;\n data_scraped_at?: string;\n amount?: number;\n created_at: string;\n uei?: string;\n recipient_level?: string;\n is_favorited?: boolean;\n metadata?: {\n location?: {\n address_line1?: string;\n city_name?: string;\n state_code?: string;\n zip?: string;\n };\n business_types?: string[];\n alternate_names?: string[];\n };\n}\n\ninterface PaginationMeta {\n current_page: number;\n total_pages: number;\n total_count: number;\n}\n\ninterface Filters {\n status: string;\n type: string;\n sortBy: string;\n sortOrder: 'asc' | 'desc';\n showFavorites: boolean;\n states: string[];\n businessTypes: string[];\n}\n\ninterface Column {\n key: string;\n header: string;\n render?: (value: any, row?: any) => React.ReactNode;\n}\n\nconst Organizations: React.FC = () => {\n const navigate = useNavigate();\n const [organizations, setOrganizations] = useState([]);\n const [loading, setLoading] = useState(true);\n const [searchTerm, setSearchTerm] = useState('');\n const [meta, setMeta] = useState({ current_page: 1, total_pages: 1, total_count: 0 });\n const [filters, setFilters] = useState({\n status: '',\n type: '',\n sortBy: 'name',\n sortOrder: 'asc',\n showFavorites: false,\n states: [],\n businessTypes: [],\n });\n const [showFilters, setShowFilters] = useState(false);\n const [facets, setFacets] = useState<{ states: string[]; businessTypes: string[] }>({\n states: [],\n businessTypes: [],\n });\n\n const fetchOrganizations = async (page: number, search?: string) => {\n try {\n const searchParam = search ? `&search=${encodeURIComponent(search)}` : '';\n const filterParams = new URLSearchParams({\n status: filters.status,\n type: filters.type,\n sort_by: filters.sortBy,\n sort_order: filters.sortOrder,\n states: filters.states.join(','),\n business_types: filters.businessTypes.join(','),\n is_favorited: filters.showFavorites ? 'true' : 'false',\n }).toString();\n\n const response = await fetch(`/api/usa_spending_recipients?page=${page}${searchParam}&${filterParams}`);\n const data = await response.json();\n let filteredRecipients = data.recipients;\n\n // Update facets\n const uniqueStates = new Set();\n const uniqueBusinessTypes = new Set();\n\n data.recipients.forEach((org: Organization) => {\n if (org.metadata?.location?.state_code) {\n uniqueStates.add(org.metadata.location.state_code);\n }\n if (org.metadata?.business_types) {\n org.metadata.business_types.forEach((type) => uniqueBusinessTypes.add(type));\n }\n });\n\n setFacets({\n states: Array.from(uniqueStates).sort(),\n businessTypes: Array.from(uniqueBusinessTypes).sort(),\n });\n\n // Apply favorites filter client-side since it's based on the user's state\n if (filters.showFavorites) {\n filteredRecipients = filteredRecipients.filter((r: Organization) => r?.is_favorited === true);\n }\n\n setOrganizations(filteredRecipients);\n setMeta({\n ...data.meta,\n total_count: filteredRecipients.length,\n total_pages: Math.ceil(filteredRecipients.length / 100),\n });\n } catch (error) {\n console.error('Error fetching organizations:', error);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n const timeoutId = setTimeout(() => {\n fetchOrganizations(1, searchTerm);\n }, 300);\n\n return () => clearTimeout(timeoutId);\n }, [searchTerm, filters]);\n\n const handlePageChange = (page: number) => {\n fetchOrganizations(page, searchTerm);\n };\n\n const handleToggleFavorite = async (organization: Organization, e: React.MouseEvent) => {\n e.stopPropagation();\n try {\n const method = organization.is_favorited ? 'DELETE' : 'POST';\n const response = await fetch(`/api/usa_spending_recipients/${organization.id}/favorite`, {\n method,\n });\n const data = await response.json();\n setOrganizations((orgs) =>\n orgs.map((org) => (org.id === organization.id ? { ...org, is_favorited: data.is_favorited } : org)),\n );\n } catch (error) {\n console.error('Error toggling favorite:', error);\n }\n };\n\n const columns: Column[] = [\n {\n key: 'favorite',\n header: '',\n render: (value: any, row: Organization) => (\n handleToggleFavorite(row, e)}\n className=\"p-1 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700\"\n >\n \n \n ),\n },\n {\n key: 'name',\n header: 'Name',\n render: (value: string, row: Organization) => (\n
\n
\n {value ? value : 'N/A'}\n
\n
\n ),\n },\n {\n key: 'amount',\n header: 'Total Amount',\n render: (value: number) => {\n return value\n ? new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n notation: 'standard',\n }).format(value)\n : 'N/A';\n },\n },\n {\n key: 'location',\n header: 'Location',\n render: (value: any, row: Organization) => {\n if (!row?.metadata?.location) return 'N/A';\n const { city_name, state_code } = row.metadata.location;\n return [city_name, state_code].filter(Boolean).join(', ') || 'N/A';\n },\n },\n {\n key: 'types',\n header: 'Business Types',\n render: (value: any, row: Organization) => {\n if (!row?.metadata?.business_types?.length) return 'N/A';\n return (\n
\n {row.metadata.business_types.map((type, index) => (\n \n {type}\n \n ))}\n
\n );\n },\n },\n ];\n\n const handleRowClick = (row: Organization) => {\n navigate(`/organizations/${row.id}`);\n };\n\n const toggleSort = (field: string) => {\n setFilters((prev) => ({\n ...prev,\n sortBy: field,\n sortOrder: prev.sortBy === field && prev.sortOrder === 'asc' ? 'desc' : 'asc',\n }));\n };\n\n const toggleFilter = (type: 'states' | 'businessTypes', value: string) => {\n setFilters((prev) => {\n const currentValues = prev[type];\n const newValues = currentValues.includes(value)\n ? currentValues.filter((v) => v !== value)\n : [...currentValues, value];\n return { ...prev, [type]: newValues };\n });\n };\n\n const handleSearch = (e: React.FormEvent) => {\n e.preventDefault(); // Prevent form submission\n fetchOrganizations(1, searchTerm);\n };\n\n if (loading) {\n return (\n
\n Loading organizations...\n
\n );\n }\n\n return (\n
\n {/* */}\n\n {/* Main Content */}\n
\n {/* Header Section */}\n
\n
\n {/* Search and Filter Controls */}\n
\n
\n
\n
\n \n
\n setSearchTerm(e.target.value)}\n placeholder=\"Search organizations...\"\n className=\"block w-full pl-10 pr-3 py-2 border border-gray-300 rounded-lg bg-white dark:bg-gray-700 dark:border-gray-600 dark:text-gray-200 placeholder-gray-500 dark:placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500\"\n />\n \n setFilters((prev) => ({ ...prev, showFavorites: !prev.showFavorites }))}\n className={`inline-flex items-center gap-2 px-4 py-2 border border-gray-300 rounded-lg ${\n filters.showFavorites\n ? 'bg-yellow-50 border-yellow-300 text-yellow-700 dark:bg-yellow-900 dark:border-yellow-600 dark:text-yellow-200'\n : 'bg-white dark:bg-gray-700 dark:border-gray-600 dark:text-gray-200'\n } hover:bg-gray-50 dark:hover:bg-gray-600`}\n >\n \n {filters.showFavorites ? 'Showing Favorites' : 'Show Favorites'}\n \n
\n
\n
\n
\n\n {/* Table Section */}\n
\n
\n {organizations.length > 0 ? (\n
\n \n
\n ) : (\n
\n No organizations found\n
\n )}\n
\n
\n\n {/* Pagination Section */}\n {meta.total_pages > 1 && (\n
\n
\n
\n handlePageChange(meta.current_page - 1)}\n disabled={meta.current_page === 1}\n className=\"px-3 py-1 rounded transition-colors duration-150 disabled:opacity-50 bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-600\"\n >\n Previous\n \n
\n {[...Array(meta.total_pages)].map((_, index) => {\n const page = index + 1;\n if (\n page === 1 ||\n page === meta.total_pages ||\n (page >= meta.current_page - 2 && page <= meta.current_page + 2)\n ) {\n return (\n handlePageChange(page)}\n className={`px-3 py-1 rounded transition-colors duration-150 ${\n meta.current_page === page\n ? 'bg-blue-600 text-white dark:bg-blue-500'\n : 'bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-600'\n }`}\n >\n {page}\n \n );\n }\n return null;\n })}\n
\n handlePageChange(meta.current_page + 1)}\n disabled={meta.current_page === meta.total_pages}\n className=\"px-3 py-1 rounded transition-colors duration-150 disabled:opacity-50 bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-600\"\n >\n Next\n \n
\n
\n Page {meta.current_page} of {meta.total_pages}\n
\n
\n
\n )}\n
\n
\n );\n};\n\nexport default Organizations;\n","import React, { useState } from 'react';\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport axios from 'axios';\nimport { useCommentCable } from './hooks/useCommentCable';\nimport { formatDistanceToNow } from 'date-fns';\n\ninterface Comment {\n id: number;\n body: string;\n user_id: number;\n user: {\n id: number;\n name: string;\n };\n created_at: string;\n}\n\ninterface TypingUser {\n id: number;\n name: string;\n}\n\ninterface CommentsProps {\n commentableType: string;\n commentableId: string | number;\n}\n\nconst Comments: React.FC = ({ commentableType, commentableId }) => {\n const [newComment, setNewComment] = useState('');\n const queryClient = useQueryClient();\n const { notifyTyping } = useCommentCable({ commentableType, commentableId });\n\n // Query for comments\n const { data: comments = [] } = useQuery({\n queryKey: ['comments', commentableType, commentableId],\n queryFn: async () => {\n const response = await axios.get(`/api/comments`, {\n params: {\n commentable_type: commentableType,\n commentable_id: commentableId,\n },\n });\n return response.data;\n },\n });\n\n // Query for typing users\n const { data: typingUsers = [] } = useQuery({\n queryKey: ['typing_users', commentableType, commentableId],\n queryFn: () => [],\n staleTime: Infinity,\n });\n\n // Query for commentable details\n const { data: commentableDetails } = useQuery({\n queryKey: ['commentable_details', commentableType, commentableId],\n queryFn: async () => {\n if (commentableType === 'UsaSpendingRecipient') {\n const response = await axios.get(`/api/usa_spending_recipients/${commentableId}`);\n return response.data;\n } else if (commentableType === 'UsaSpendingAward') {\n const response = await axios.get(`/api/commentable/${commentableId}`);\n return response.data;\n }\n return null;\n },\n });\n\n // Mutation for creating comments\n const createCommentMutation = useMutation({\n mutationFn: async (body: string) => {\n const response = await axios.post('/api/comments', {\n commentable_type: commentableType,\n commentable_id: commentableId,\n comment: { body },\n });\n return response.data;\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['comments', commentableType, commentableId] });\n setNewComment('');\n },\n });\n\n // Mutation for deleting comments\n const deleteCommentMutation = useMutation({\n mutationFn: async (commentId: number) => {\n const response = await axios.delete(`/api/comments/${commentId}`);\n return response.data;\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['comments', commentableType, commentableId] });\n },\n });\n\n const handleDelete = (commentId: number) => {\n if (window.confirm('Are you sure you want to delete this comment?')) {\n deleteCommentMutation.mutate(commentId);\n }\n };\n\n const handleSubmit = (e?: React.FormEvent) => {\n e?.preventDefault();\n if (!newComment.trim()) return;\n createCommentMutation.mutate(newComment);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n handleSubmit();\n }\n };\n\n const handleChange = (e: React.ChangeEvent) => {\n setNewComment(e.target.value);\n notifyTyping();\n };\n\n const formatCommentableType = (type: string) => {\n return type.replace(/([A-Z])/g, ' $1').trim();\n };\n\n return (\n
\n {/* Commentable Details */}\n {false && commentableDetails && (\n
\n
\n {formatCommentableType(commentableType)}\n
\n
\n {commentableDetails.name || JSON.stringify(commentableDetails)}\n
\n
\n )}\n\n
\n {comments.map((comment: Comment) => (\n
\n
\n
\n \n {comment.user?.name || 'Anonymous'}\n \n \n {formatDistanceToNow(new Date(comment.created_at), { addSuffix: true })}\n \n
\n handleDelete(comment.id)}\n className=\"text-red-500 hover:text-red-700 p-1 rounded hover:bg-red-50 dark:hover:bg-red-900/20\"\n title=\"Delete comment\"\n >\n \n \n
\n

{comment.body}

\n
\n ))}\n
\n\n {/* Typing Indicators */}\n {typingUsers.length > 0 && (\n
\n {typingUsers.length === 1\n ? `${typingUsers[0].name} is typing...`\n : `${typingUsers.length} people are typing...`}\n
\n )}\n\n {/* Comment Form */}\n
\n \n
\n \n {createCommentMutation.isPending ? 'Posting...' : 'Post Comment'}\n \n
\n \n
\n );\n};\n\nexport default Comments;\n","import { useCallback, useEffect, useRef } from 'react';\nimport { createConsumer } from '@rails/actioncable';\nimport { useQueryClient } from '@tanstack/react-query';\nimport debounce from 'lodash/debounce';\n\ninterface CommentableParams {\n commentableType: string;\n commentableId: string | number;\n}\n\nexport const useCommentCable = ({ commentableType, commentableId }: CommentableParams) => {\n const queryClient = useQueryClient();\n const subscriptionRef = useRef(null);\n\n const onConnected = useCallback(() => {\n console.log('[Comments WebSocket] Connected');\n }, []);\n\n const onDisconnected = useCallback(() => {\n console.log('[Comments WebSocket] Disconnected');\n }, []);\n\n const onReceived = useCallback(\n (message: any) => {\n const { type, data } = message;\n console.log(`[Comments WebSocket] Received: ${type}`);\n\n switch (type) {\n case 'new_comment':\n // Update the comments cache with the new comment\n queryClient.setQueryData(\n ['comments', commentableType, commentableId],\n (oldComments: any[] = []) => {\n return [data.comment, ...oldComments];\n },\n );\n break;\n\n case 'comment_updated':\n queryClient.setQueryData(\n ['comments', commentableType, commentableId],\n (oldComments: any[] = []) => {\n return oldComments.map((comment) => (comment.id === data.comment.id ? data.comment : comment));\n },\n );\n break;\n\n case 'comment_deleted':\n queryClient.setQueryData(\n ['comments', commentableType, commentableId],\n (oldComments: any[] = []) => {\n return oldComments.filter((comment) => comment.id !== data.comment_id);\n },\n );\n break;\n\n case 'typing':\n case 'stopped_typing':\n queryClient.setQueryData(\n ['typing_users', commentableType, commentableId],\n (oldUsers: any[] = []) => {\n if (type === 'typing') {\n const existingUser = oldUsers.find((user) => user.id === data.user_id);\n if (!existingUser) {\n return [...oldUsers, { id: data.user_id, name: data.user_name }];\n }\n } else {\n return oldUsers.filter((user) => user.id !== data.user_id);\n }\n return oldUsers;\n },\n );\n break;\n }\n },\n [queryClient, commentableType, commentableId],\n );\n\n const debouncedStoppedTyping = useCallback(\n debounce(() => {\n subscriptionRef.current?.perform('stopped_typing');\n }, 1000),\n [],\n );\n\n const notifyTyping = useCallback(() => {\n subscriptionRef.current?.perform('typing');\n debouncedStoppedTyping();\n }, [debouncedStoppedTyping]);\n\n useEffect(() => {\n if (!commentableType || !commentableId) return;\n\n console.log('[Comments WebSocket] Creating connection...');\n const cable = createConsumer();\n\n const subscription = cable.subscriptions.create(\n {\n channel: 'CommentsChannel',\n commentable_type: commentableType,\n commentable_id: commentableId,\n },\n {\n connected: onConnected,\n disconnected: onDisconnected,\n received: onReceived,\n },\n );\n\n subscriptionRef.current = subscription;\n\n return () => {\n console.log('[Comments WebSocket] Destroying connection...');\n debouncedStoppedTyping.cancel();\n subscription.unsubscribe();\n cable.disconnect();\n };\n }, [commentableType, commentableId, onConnected, onDisconnected, onReceived, debouncedStoppedTyping]);\n\n return { notifyTyping };\n};\n","import React from 'react';\nimport { useParams, Link } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faArrowLeft, faSync } from '@fortawesome/free-solid-svg-icons';\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport Comments from './Comments/Comments';\n\ninterface OrganizationDetails {\n id: number;\n name: string;\n amount: number;\n duns: string;\n uei: string;\n recipient_level: string;\n is_favorited: boolean;\n metadata: {\n location?: {\n address_line1?: string;\n city_name?: string;\n state_code?: string;\n zip?: string;\n };\n alternate_names?: string[];\n business_types?: string[];\n };\n awarding_agency: {\n results: Array<{\n name: string;\n code: string;\n amount: number;\n }>;\n };\n awarding_subagency: {\n results: Array<{\n name: string;\n code: string;\n amount: number;\n }>;\n };\n federal_account: {\n results: Array<{\n name: string;\n code: string;\n amount: number;\n }>;\n };\n cfda: {\n results: Array<{\n name: string;\n code: string;\n amount: number;\n }>;\n };\n psc: {\n results: Array<{\n name: string;\n code: string;\n amount: number;\n }>;\n };\n naics: {\n results: Array<{\n name: string;\n code: string;\n amount: number;\n }>;\n };\n}\n\nconst fetchOrganization = async (id: string) => {\n const response = await fetch(`/api/usa_spending_recipients/${id}`);\n if (!response.ok) {\n throw new Error('Failed to fetch organization');\n }\n return response.json();\n};\n\nconst OrganizationDetails: React.FC = () => {\n const { id } = useParams<{ id: string }>();\n const queryClient = useQueryClient();\n\n const {\n data: organization,\n isLoading,\n error,\n } = useQuery({\n queryKey: ['organization', id],\n queryFn: () => fetchOrganization(id!),\n enabled: !!id,\n });\n\n const { mutate: refreshOrganization, isPending: isRefreshing } = useMutation({\n mutationFn: async () => {\n await fetch(`/api/usa_spending_recipients/${id}/refresh`, {\n method: 'POST',\n });\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['organization', id] });\n },\n });\n\n const { mutate: toggleFavorite } = useMutation({\n mutationFn: async () => {\n const method = organization?.is_favorited ? 'DELETE' : 'POST';\n const response = await fetch(`/api/usa_spending_recipients/${id}/favorite`, {\n method,\n });\n return response.json();\n },\n onSuccess: (data) => {\n queryClient.setQueryData(['organization', id], (oldData: OrganizationDetails | undefined) => {\n if (!oldData) return oldData;\n return { ...oldData, is_favorited: data.is_favorited };\n });\n },\n });\n\n const handleRefresh = () => {\n refreshOrganization();\n };\n\n const handleToggleFavorite = () => {\n if (!organization) return;\n toggleFavorite();\n };\n\n if (isLoading) {\n return (\n
\n Loading organization details...\n
\n );\n }\n\n if (error) {\n return (\n
\n Error loading organization details\n
\n );\n }\n\n if (!organization) {\n return (\n
Organization not found
\n );\n }\n\n const formatCurrency = (amount: number) => {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n }).format(amount);\n };\n\n return (\n
\n {/* Main Content */}\n
\n
\n
\n \n \n Back to Organizations\n \n

{organization?.name}

\n
\n \n \n Admin\n \n \n \n {organization?.is_favorited ? 'Favorited' : 'Favorite'}\n \n \n \n {isRefreshing ? 'Refreshing...' : 'Refresh'}\n \n
\n
\n\n {/* Overview Card */}\n
\n
\n

Recipient Overview

\n
\n
\n
\n
\n
\n
Total Amount
\n
\n {organization?.amount ? formatCurrency(organization.amount) : 'N/A'}\n
\n
\n
\n
DUNS
\n
{organization.duns || 'N/A'}
\n
\n
\n
UEI
\n
{organization.uei || 'N/A'}
\n
\n
\n
Recipient Level
\n
{organization.recipient_level}
\n
\n
\n
\n
\n
\n
\n
Location
\n
\n {organization.metadata?.location\n ? [\n organization.metadata.location.address_line1,\n organization.metadata.location.city_name,\n organization.metadata.location.state_code,\n organization.metadata.location.zip,\n ]\n .filter(Boolean)\n .join(', ')\n : 'N/A'}\n
\n
\n
\n
Business Types
\n
\n {organization.metadata?.business_types?.map((type, index) => (\n \n {type}\n \n ))}\n
\n
\n
\n
\n
\n
\n\n {/* Funding Summary - All four sections in one row on larger screens */}\n
\n {/* Awarding Agency Card */}\n
\n
\n

Awarding Agency

\n
\n
\n {organization?.awarding_agency?.results?.map((agency, index) => (\n
\n

\n {agency?.name} ({agency?.code})\n

\n

\n Total Amount: {agency?.amount ? formatCurrency(agency.amount) : 'N/A'}\n

\n
\n )) ||

No awarding agency data available

}\n
\n
\n\n {/* Subagency Card */}\n
\n
\n

Subagency

\n
\n
\n {organization?.awarding_subagency?.results?.map((subagency, index) => (\n
\n

\n {subagency?.name} ({subagency?.code})\n

\n

\n Total Amount: {subagency?.amount ? formatCurrency(subagency.amount) : 'N/A'}\n

\n
\n )) ||

No subagency data available

}\n
\n
\n\n {/* Federal Accounts Card - Changed from table to match other cards */}\n
\n
\n

Federal Accounts

\n
\n
\n {organization?.federal_account?.results?.map((account, index) => (\n
\n

\n {account?.name || 'N/A'} ({account?.code || 'N/A'})\n

\n

\n Total Amount: {account?.amount ? formatCurrency(account.amount) : 'N/A'}\n

\n
\n )) ||

No federal account data available

}\n
\n
\n\n {/* CFDA Programs Card */}\n
\n
\n

CFDA Programs

\n
\n
\n {organization?.cfda?.results?.map((program, index) => (\n
\n

{program?.name || 'N/A'}

\n

\n Code: {program?.code || 'N/A'}\n
\n Amount: {program?.amount ? formatCurrency(program.amount) : 'N/A'}\n

\n
\n )) ||

No CFDA program data available

}\n
\n
\n
\n\n {/* PSC and NAICS Cards */}\n
\n {/* PSC Card */}\n
\n
\n

Product Service Codes

\n
\n
\n {organization?.psc?.results?.map((item, index) => (\n
\n

\n {item?.name || 'N/A'} ({item?.code || 'N/A'})\n

\n

\n Amount: {item?.amount ? formatCurrency(item.amount) : 'N/A'}\n

\n
\n )) ||

No PSC data available

}\n
\n
\n\n {/* NAICS Card */}\n
\n
\n

NAICS Codes

\n
\n
\n {organization?.naics?.results?.map((item, index) => (\n
\n

\n {item?.name || 'N/A'} ({item?.code || 'N/A'})\n

\n

\n Amount: {item?.amount ? formatCurrency(item.amount) : 'N/A'}\n

\n
\n )) ||

No NAICS data available

}\n
\n
\n
\n
\n
\n\n {/* Comments Section */}\n
\n
\n

Comments

\n
\n \n
\n
\n );\n};\n\nexport default OrganizationDetails;\n","import React, { useEffect, useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSearch } from '@fortawesome/free-solid-svg-icons';\nimport DataTable from './shared/DataTable';\nimport { formatDistanceToNow } from 'date-fns';\n\ninterface Comment {\n id: number;\n body: string;\n user: {\n name: string;\n };\n created_at: string;\n organization?: {\n name: string;\n id: number;\n };\n commentable_type?: string;\n commentable_id?: number;\n}\n\ninterface PaginationMeta {\n current_page: number;\n total_pages: number;\n total_count: number;\n}\n\ninterface Column {\n key: string;\n header: string;\n render?: (value: any, row?: any) => React.ReactNode;\n}\n\nconst AllComments: React.FC = () => {\n const navigate = useNavigate();\n const [comments, setComments] = useState([]);\n const [loading, setLoading] = useState(true);\n const [searchTerm, setSearchTerm] = useState('');\n const [meta, setMeta] = useState({ current_page: 1, total_pages: 1, total_count: 0 });\n\n const fetchComments = async (page: number, search?: string) => {\n try {\n const searchParam = search ? `&search=${encodeURIComponent(search)}` : '';\n const response = await fetch(`/api/comments?page=${page}${searchParam}`);\n const data = await response.json();\n setComments(data);\n setMeta(data.meta);\n } catch (error) {\n console.error('Error fetching comments:', error);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n const timeoutId = setTimeout(() => {\n fetchComments(1, searchTerm);\n }, 300);\n\n return () => clearTimeout(timeoutId);\n }, [searchTerm]);\n\n const handlePageChange = (page: number) => {\n fetchComments(page, searchTerm);\n };\n\n const handleRowClick = (comment: Comment) => {\n if (comment.commentable_type === 'UsaSpendingRecipient' && comment.commentable_id) {\n navigate(`/organizations/${comment.commentable_id}`);\n }\n };\n\n const columns: Column[] = [\n {\n key: 'organization',\n header: 'Organization',\n render: (value: any) => value?.name || 'N/A',\n },\n {\n key: 'user',\n header: 'Author',\n render: (value: any) => value?.name || 'N/A',\n },\n {\n key: 'body',\n header: 'Comment',\n render: (value: string) =>
{value}
,\n },\n {\n key: 'created_at',\n header: 'Date',\n render: (value: string) => (\n
\n {new Date(value).toLocaleDateString()}\n \n {formatDistanceToNow(new Date(value), { addSuffix: true })}\n \n
\n ),\n },\n ];\n\n const handleSearch = (e: React.FormEvent) => {\n e.preventDefault();\n fetchComments(1, searchTerm);\n };\n\n if (loading) {\n return (\n
Loading comments...
\n );\n }\n\n return (\n
\n
\n {/* Header Section */}\n
\n
\n
\n
\n
\n \n
\n setSearchTerm(e.target.value)}\n placeholder=\"Search comments...\"\n className=\"block w-full pl-10 pr-3 py-2 border border-gray-300 rounded-lg bg-white dark:bg-gray-700 dark:border-gray-600 dark:text-gray-200 placeholder-gray-500 dark:placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500\"\n />\n \n
\n
\n
\n\n {/* Table Section */}\n
\n
\n {comments?.length > 0 ? (\n
\n \n
\n ) : (\n
\n No comments found\n
\n )}\n
\n
\n\n {/* Pagination Section */}\n {meta?.total_pages > 1 && (\n
\n
\n
\n handlePageChange(meta.current_page - 1)}\n disabled={meta.current_page === 1}\n className=\"px-3 py-1 rounded transition-colors duration-150 disabled:opacity-50 bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-600\"\n >\n Previous\n \n \n Page {meta.current_page} of {meta.total_pages}\n \n handlePageChange(meta.current_page + 1)}\n disabled={meta.current_page === meta.total_pages}\n className=\"px-3 py-1 rounded transition-colors duration-150 disabled:opacity-50 bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-600\"\n >\n Next\n \n
\n
\n
\n )}\n
\n
\n );\n};\n\nexport default AllComments;\n","import React, { useEffect, useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\n\ninterface Page {\n id: number;\n title: string;\n content: string;\n order: number;\n book_id: number;\n created_at: string;\n updated_at: string;\n}\n\ninterface Book {\n id: number;\n title: string;\n data: Record;\n created_at: string;\n updated_at: string;\n pages: Page[];\n}\n\nconst Books: React.FC = () => {\n const navigate = useNavigate();\n const [books, setBooks] = useState([]);\n const [newBookTitle, setNewBookTitle] = useState('');\n const [editingBook, setEditingBook] = useState(null);\n const [editTitle, setEditTitle] = useState('');\n\n useEffect(() => {\n fetchBooks();\n }, []);\n\n const fetchBooks = async () => {\n try {\n const response = await fetch('/api/books');\n const data = await response.json();\n setBooks(data);\n } catch (error) {\n console.error('Error fetching books:', error);\n }\n };\n\n const handleCreateBook = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!newBookTitle.trim()) return;\n\n try {\n const response = await fetch('/api/books', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n book: {\n title: newBookTitle,\n data: {},\n },\n }),\n });\n\n if (response.ok) {\n const newBook = await response.json();\n setBooks([...books, newBook]);\n setNewBookTitle('');\n } else {\n console.error('Error creating book:', await response.json());\n }\n } catch (error) {\n console.error('Error creating book:', error);\n }\n };\n\n const handleEditBook = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!editingBook || !editTitle.trim()) return;\n\n try {\n const response = await fetch(`/api/books/${editingBook.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n book: {\n title: editTitle,\n data: editingBook.data,\n },\n }),\n });\n\n if (response.ok) {\n const updatedBook = await response.json();\n setBooks(books.map((book) => (book.id === updatedBook.id ? updatedBook : book)));\n setEditingBook(null);\n setEditTitle('');\n } else {\n console.error('Error updating book:', await response.json());\n }\n } catch (error) {\n console.error('Error updating book:', error);\n }\n };\n\n const handleDeleteBook = async (bookId: number) => {\n if (!confirm('Are you sure you want to delete this book?')) return;\n\n try {\n const response = await fetch(`/api/books/${bookId}`, {\n method: 'DELETE',\n });\n\n if (response.ok) {\n setBooks(books.filter((book) => book.id !== bookId));\n } else {\n console.error('Error deleting book:', await response.json());\n }\n } catch (error) {\n console.error('Error deleting book:', error);\n }\n };\n\n const startEditing = (book: Book) => {\n setEditingBook(book);\n setEditTitle(book.title);\n };\n\n const handleViewBook = (bookId: number) => {\n navigate(`/books/${bookId}`);\n };\n\n return (\n
\n

Books

\n\n
\n
\n setNewBookTitle(e.target.value)}\n placeholder=\"Enter book title\"\n className=\"flex-1 px-4 py-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500\"\n />\n \n Add Book\n \n
\n
\n\n
\n {books.map((book) => (\n
\n {editingBook?.id === book.id ? (\n
\n setEditTitle(e.target.value)}\n className=\"w-full px-3 py-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500\"\n />\n
\n \n Save\n \n {\n setEditingBook(null);\n setEditTitle('');\n }}\n className=\"px-3 py-1 bg-gray-500 text-white rounded-md hover:bg-gray-600\"\n >\n Cancel\n \n
\n \n ) : (\n <>\n

{book.title}

\n

\n Created: {new Date(book.created_at).toLocaleDateString()}\n

\n

Pages: {book.pages?.length || 0}

\n
\n handleViewBook(book.id)}\n className=\"px-3 py-1 bg-blue-500 text-white rounded-md hover:bg-blue-600\"\n >\n View\n \n startEditing(book)}\n className=\"px-3 py-1 bg-yellow-500 text-white rounded-md hover:bg-yellow-600\"\n >\n Edit\n \n handleDeleteBook(book.id)}\n className=\"px-3 py-1 bg-red-500 text-white rounded-md hover:bg-red-600\"\n >\n Delete\n \n
\n \n )}\n
\n ))}\n
\n
\n );\n};\n\nexport default Books;\n","import React, { useEffect, useState } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\n\ninterface Page {\n id: number;\n title: string;\n content: string;\n order: number;\n book_id: number;\n created_at: string;\n updated_at: string;\n}\n\ninterface Book {\n id: number;\n title: string;\n data: Record;\n created_at: string;\n updated_at: string;\n pages: Page[];\n}\n\nconst BookView: React.FC = () => {\n const { id } = useParams<{ id: string }>();\n const navigate = useNavigate();\n const [book, setBook] = useState(null);\n const [newPageTitle, setNewPageTitle] = useState('');\n const [editingPage, setEditingPage] = useState(null);\n const [editTitle, setEditTitle] = useState('');\n const [editContent, setEditContent] = useState('');\n\n useEffect(() => {\n fetchBook();\n }, [id]);\n\n const fetchBook = async () => {\n try {\n const response = await fetch(`/api/books/${id}`);\n const data = await response.json();\n setBook(data);\n } catch (error) {\n console.error('Error fetching book:', error);\n }\n };\n\n const handleCreatePage = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!newPageTitle.trim() || !book) return;\n\n try {\n const response = await fetch('/api/pages', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n page: {\n title: newPageTitle,\n content: '',\n book_id: book.id,\n order: book.pages.length,\n },\n }),\n });\n\n if (response.ok) {\n const newPage = await response.json();\n setBook({\n ...book,\n pages: [...book.pages, newPage],\n });\n setNewPageTitle('');\n } else {\n console.error('Error creating page:', await response.json());\n }\n } catch (error) {\n console.error('Error creating page:', error);\n }\n };\n\n const handleEditPage = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!editingPage || !editTitle.trim() || !book) return;\n\n try {\n const response = await fetch(`/api/pages/${editingPage.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n page: {\n title: editTitle,\n content: editContent,\n },\n }),\n });\n\n if (response.ok) {\n const updatedPage = await response.json();\n setBook({\n ...book,\n pages: book.pages.map((page) => (page.id === updatedPage.id ? updatedPage : page)),\n });\n setEditingPage(null);\n setEditTitle('');\n setEditContent('');\n } else {\n console.error('Error updating page:', await response.json());\n }\n } catch (error) {\n console.error('Error updating page:', error);\n }\n };\n\n const handleDeletePage = async (pageId: number) => {\n if (!confirm('Are you sure you want to delete this page?') || !book) return;\n\n try {\n const response = await fetch(`/api/pages/${pageId}`, {\n method: 'DELETE',\n });\n\n if (response.ok) {\n setBook({\n ...book,\n pages: book.pages.filter((page) => page.id !== pageId),\n });\n } else {\n console.error('Error deleting page:', await response.json());\n }\n } catch (error) {\n console.error('Error deleting page:', error);\n }\n };\n\n const startEditing = (page: Page) => {\n setEditingPage(page);\n setEditTitle(page.title);\n setEditContent(page.content);\n };\n\n const handleReorderPages = async (pageId: number, newOrder: number) => {\n if (!book) return;\n\n try {\n const response = await fetch(`/api/pages/${pageId}/reorder`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ order: newOrder }),\n });\n\n if (response.ok) {\n const updatedPage = await response.json();\n const updatedPages = [...book.pages];\n const oldIndex = updatedPages.findIndex((p) => p.id === pageId);\n updatedPages.splice(oldIndex, 1);\n updatedPages.splice(newOrder, 0, updatedPage);\n setBook({ ...book, pages: updatedPages });\n } else {\n console.error('Error reordering page:', await response.json());\n }\n } catch (error) {\n console.error('Error reordering page:', error);\n }\n };\n\n if (!book) {\n return
Loading...
;\n }\n\n console.log(book);\n\n return (\n
\n
\n

{book.title}

\n navigate('/books')}\n className=\"px-4 py-2 bg-gray-500 text-white rounded-md hover:bg-gray-600\"\n >\n Back to Books\n \n
\n\n
\n
\n setNewPageTitle(e.target.value)}\n placeholder=\"Enter page title\"\n className=\"flex-1 px-4 py-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500\"\n />\n \n Add Page\n \n
\n
\n\n
\n {book.pages.map((page, index) => (\n
\n {editingPage?.id === page.id ? (\n
\n setEditTitle(e.target.value)}\n className=\"w-full px-3 py-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500\"\n placeholder=\"Page title\"\n />\n setEditContent(e.target.value)}\n className=\"w-full px-3 py-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500\"\n rows={5}\n placeholder=\"Page content\"\n />\n
\n \n Save\n \n {\n setEditingPage(null);\n setEditTitle('');\n setEditContent('');\n }}\n className=\"px-3 py-1 bg-gray-500 text-white rounded-md hover:bg-gray-600\"\n >\n Cancel\n \n
\n \n ) : (\n <>\n
\n

{page.title}

\n
\n startEditing(page)}\n className=\"px-3 py-1 bg-yellow-500 text-white rounded-md hover:bg-yellow-600\"\n >\n Edit\n \n handleDeletePage(page.id)}\n className=\"px-3 py-1 bg-red-500 text-white rounded-md hover:bg-red-600\"\n >\n Delete\n \n
\n
\n
\n {page.content ||

No content yet

}\n
\n
\n {index > 0 && (\n handleReorderPages(page.id, index - 1)}\n className=\"px-3 py-1 bg-gray-500 text-white rounded-md hover:bg-gray-600\"\n >\n Move Up\n \n )}\n {index < book.pages.length - 1 && (\n handleReorderPages(page.id, index + 1)}\n className=\"px-3 py-1 bg-gray-500 text-white rounded-md hover:bg-gray-600\"\n >\n Move Down\n \n )}\n
\n \n )}\n
\n ))}\n
\n
\n );\n};\n\nexport default BookView;\n","import React, { useEffect, useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\n\ninterface Goal {\n id: number;\n title: string;\n data: Record;\n created_at: string;\n updated_at: string;\n}\n\nconst Goals: React.FC = () => {\n const navigate = useNavigate();\n const [goals, setGoals] = useState([]);\n const [newGoalTitle, setNewGoalTitle] = useState('');\n const [editingGoal, setEditingGoal] = useState(null);\n const [editTitle, setEditTitle] = useState('');\n\n useEffect(() => {\n fetchGoals();\n }, []);\n\n const fetchGoals = async () => {\n try {\n const response = await fetch('/api/goals');\n const data = await response.json();\n setGoals(data);\n } catch (error) {\n console.error('Error fetching goals:', error);\n }\n };\n\n const handleCreateGoal = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!newGoalTitle.trim()) return;\n\n try {\n const response = await fetch('/api/goals', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n goal: {\n title: newGoalTitle,\n data: {},\n },\n }),\n });\n\n if (response.ok) {\n const newGoal = await response.json();\n setGoals([...goals, newGoal]);\n setNewGoalTitle('');\n } else {\n console.error('Error creating goal:', await response.json());\n }\n } catch (error) {\n console.error('Error creating goal:', error);\n }\n };\n\n const handleEditGoal = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!editingGoal || !editTitle.trim()) return;\n\n try {\n const response = await fetch(`/api/goals/${editingGoal.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n goal: {\n title: editTitle,\n data: editingGoal.data,\n },\n }),\n });\n\n if (response.ok) {\n const updatedGoal = await response.json();\n setGoals(goals.map((goal) => (goal.id === updatedGoal.id ? updatedGoal : goal)));\n setEditingGoal(null);\n setEditTitle('');\n } else {\n console.error('Error updating goal:', await response.json());\n }\n } catch (error) {\n console.error('Error updating goal:', error);\n }\n };\n\n const handleDeleteGoal = async (goalId: number) => {\n if (!confirm('Are you sure you want to delete this goal?')) return;\n\n try {\n const response = await fetch(`/api/goals/${goalId}`, {\n method: 'DELETE',\n });\n\n if (response.ok) {\n setGoals(goals.filter((goal) => goal.id !== goalId));\n } else {\n console.error('Error deleting goal:', await response.json());\n }\n } catch (error) {\n console.error('Error deleting goal:', error);\n }\n };\n\n const startEditing = (goal: Goal) => {\n setEditingGoal(goal);\n setEditTitle(goal.title);\n };\n\n const handleViewGoal = (goalId: number) => {\n navigate(`/goals/${goalId}`);\n };\n\n return (\n
\n

Goals

\n\n
\n
\n setNewGoalTitle(e.target.value)}\n placeholder=\"Enter goal title\"\n className=\"flex-1 px-4 py-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500\"\n />\n \n Add Goal\n \n
\n
\n\n
\n {goals.map((goal) => (\n
\n {editingGoal?.id === goal.id ? (\n
\n setEditTitle(e.target.value)}\n className=\"w-full px-3 py-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500\"\n />\n
\n \n Save\n \n {\n setEditingGoal(null);\n setEditTitle('');\n }}\n className=\"px-3 py-1 bg-gray-500 text-white rounded-md hover:bg-gray-600\"\n >\n Cancel\n \n
\n \n ) : (\n <>\n

{goal.title}

\n

\n Created: {new Date(goal.created_at).toLocaleDateString()}\n

\n
\n handleViewGoal(goal.id)}\n className=\"px-3 py-1 bg-blue-500 text-white rounded-md hover:bg-blue-600\"\n >\n View\n \n startEditing(goal)}\n className=\"px-3 py-1 bg-yellow-500 text-white rounded-md hover:bg-yellow-600\"\n >\n Edit\n \n handleDeleteGoal(goal.id)}\n className=\"px-3 py-1 bg-red-500 text-white rounded-md hover:bg-red-600\"\n >\n Delete\n \n
\n \n )}\n
\n ))}\n
\n
\n );\n};\n\nexport default Goals;\n","import React, { useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom';\n\ninterface Goal {\n id: number;\n title: string;\n data: Record;\n created_at: string;\n updated_at: string;\n}\n\nconst GoalView: React.FC = () => {\n const { id } = useParams<{ id: string }>();\n const [goal, setGoal] = useState(null);\n\n useEffect(() => {\n fetchGoal();\n }, [id]);\n\n const fetchGoal = async () => {\n try {\n const response = await fetch(`/api/goals/${id}`);\n const data = await response.json();\n setGoal(data);\n } catch (error) {\n console.error('Error fetching goal:', error);\n }\n };\n\n if (!goal) {\n return
Loading...
;\n }\n\n return (\n
\n

{goal.title}

\n

Created: {new Date(goal.created_at).toLocaleDateString()}

\n
{/* Add your goal content here */}
\n
\n );\n};\n\nexport default GoalView;\n","import React from 'react';\n\nconst Settings: React.FC = () => {\n return (\n
\n

Settings

\n
{/* Settings form will go here */}
\n
\n );\n};\n\nexport default Settings;\n","import React from 'react';\n\nconst Admin: React.FC = () => {\n return (\n
\n

Admin Dashboard

\n
\n {/* Admin controls will go here */}\n
\n
\n );\n};\n\nexport default Admin;\n","import React from 'react';\nimport { Route, Routes } from 'react-router-dom';\n\nimport Layout from '../layout/Layout';\nimport Calendar from '../components/Calendar';\nimport Chat from '../components/Chat';\nimport Organizations from '../components/Organizations';\nimport OrganizationDetails from '../components/OrganizationDetails';\nimport AllComments from '../components/AllComments';\nimport Books from '../components/Books';\nimport BookView from '../components/Books/BookView';\nimport Goals from '../components/Goals';\nimport GoalView from '../components/Goals/GoalView';\nimport Settings from '../components/Settings';\nimport Admin from '../components/Admin';\n\nexport default (\n \n \n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n \n);\n","// Compare to ../ServerRouterApp.jsx\nimport React from 'react';\nimport { BrowserRouter } from 'react-router-dom';\nimport routes from '../routes/routes';\nimport { useCable } from '../components/Calendar/hooks/useCable';\n\nfunction RouterApp(_props) {\n return {routes};\n}\n\nexport default RouterApp;\n","import React from 'react';\n\ninterface NavigationBarProps {\n commentsCount?: number;\n pathname: string;\n}\n\nfunction NavigationBar({ commentsCount, pathname }: NavigationBarProps): JSX.Element {\n return (\n \n );\n}\n\nexport default NavigationBar;\n","import ReactOnRails from 'react-on-rails';\n// eslint-disable-next-line import/no-webpack-loader-syntax\nimport 'expose-loader?exposes=$,jQuery!jquery';\nimport 'jquery-ujs';\n\nimport RouterApp from '../apps/RouterApp';\nimport NavigationBarApp from '../apps/NavigationBarApp';\nimport '../controllers';\n\nReactOnRails.setOptions({\n // traceTurbolinks: process.env.TRACE_TURBOLINKS, // eslint-disable-line no-undef\n // process.env.TRACE_TURBOLINKS -> error: development is not defined\n traceTurbolinks: true,\n});\n\nReactOnRails.register({\n RouterApp,\n NavigationBarApp,\n});\n","import React from 'react';\nimport NavigationBar from '../components/NavigationBar/NavigationBar';\n\nexport default function NavigationBarApp() {\n // eslint-disable-next-line react/react-in-jsx-scope\n return ;\n}\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","_default","_Controller","_inherits","_refresh","_setTimezone","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","document","cookie","includes","timeZone","Intl","DateTimeFormat","resolvedOptions","this","setTimezone","console","log","addEventListener","handleKeyPress","bind","removeEventListener","event","toLowerCase","refresh","_ref","timezone","target","dataset","_this$element$querySe","element","querySelector","submit","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","hasLoadingIndicatorTarget","loadingIndicatorTarget","classList","remove","concat","window","location","reload","add","stop","_x","_callee2","response","html","parser","doc","newCalendarGrid","currentCalendarGrid","_context2","fetch","href","sent","text","DOMParser","parseFromString","innerHTML","t0","error","finish","Controller","_defineProperty","stopPropagation","menuTarget","toggle","clickHandler","closeDropdown","contains","application","Application","start","context","require","load","definitionsFromContext","documentElement","localStorage","theme","CableProvider","queryClient","onConnected","onDisconnected","onReceived","children","useQueryClient","useCallback","message","type","invalidateQueries","queryKey","useEffect","cable","createConsumer","subscription","subscriptions","create","connected","disconnected","received","unsubscribe","disconnect","_ref2","QueryClient","React","QueryClientProvider","client","useCalendarStore","set","get","selectedCalendars","currentTimezone","currentDate","Date","meetings","calendars","isLoading","toggleCalendar","calendarId","state","filter","_toConsumableArray","fetchMeetings","setCurrentDate","date","setCurrentTimezone","fetchCalendars","_fetchCalendars","axios","data","_fetchMeetings","_get","startDate","endDate","viewStartDate","viewEndDate","getFullYear","getMonth","setDate","getDate","getDay","params","start_date","toISOString","end_date","calendar_ids","Sidebar","onCalendarToggle","onOpenAddEventModal","className","onClick","calendar","name","checked","onChange","htmlFor","email","CalendarHeader","currentView","setCurrentView","goToToday","goToPrevious","goToNext","style","width","toLocaleString","_objectSpread","month","year","day","fill","stroke","viewBox","d","strokeLinecap","strokeLinejoin","strokeWidth","weekDays","getWeekDays","startOfWeek","days","i","push","MonthView","onMeetingClick","setShowEditor","setEditorPosition","setDraftMeeting","showEditor","draftMeeting","DraftMeeting","formatTime","toLocaleTimeString","hour","minute","hour12","startTime","endTime","startWeek","endWeek","currentDay","getCalendarDays","isToday","toDateString","isDraftDate","dayDate","rect","currentTarget","getBoundingClientRect","dayWidth","setHours","top","height","left","right","handleDateClick","meeting","starts_at","sort","a","b","getTime","WeekMeeting","cellHeight","ends_at","topPosition","getHours","getMinutes","HOURS","Array","from","length","_","CELL_HEIGHT","getTimeFromY","y","Math","floor","WeekView","onCreateMeeting","editorPosition","_React$useState","_React$useState2","_slicedToArray","currentTime","setCurrentTime","_useState","useState","_useState2","dragStart","setDragStart","_useState3","_useState4","dragEnd","setDragEnd","timer","setInterval","clearInterval","handleClickOutside","closest","setTimeout","container","scrollTop","clearTimeout","handleDragEnd","startY","endY","min","max","setFullYear","abs","containerElement","timeLegendContainer","containerRect","timeLegendWidth","lineHeight","pointerEvents","zIndex","transform","minHeight","onMouseDown","_e$currentTarget$pare","isMeeting","clientY","parentElement","onMouseMove","_e$currentTarget$pare2","onMouseUp","onMouseLeave","AddEventModal","isOpen","onClose","onEventCreated","eventType","setEventType","title","setTitle","_useState5","_useState6","busy","setBusy","_useState7","_useState8","description","setDescription","_useState9","_useState10","setLocation","_useState11","_useState12","setStartDate","_useState13","_useState14","setEndDate","_useState15","_useState16","guests","setGuests","handleSubmit","post","all_day","meeting_users","guest","response_status","organizer","is_self","send_notifications","success","placeholder","autoFocus","FontAwesomeIcon","icon","faTimes","faClock","faUsers","split","trim","faVideo","faLocationDot","faAlignLeft","faCalendarDay","_meeting$account","_meeting$account2","_meeting$account3","_meeting$account4","account","logo_url","src","alt","AgendaMeeting","MeetingDetailsModal","_window$USER","_meeting$data","_meeting$data2","_meeting$data3","onEditMeeting","onDeleteMeeting","formatDateTime","confirm","USER","superadmin","rel","dangerouslySetInnerHTML","__html","DOMPurify","sanitize","JSON","stringify","hangout_link","open","InlineMeetingEditor","onSave","onCancel","position","selectedCalendarId","setSelectedCalendarId","isSaving","setIsSaving","inputRef","useRef","_useCalendarStore","meetingStartTime","setMeetingStartTime","meetingEndTime","setMeetingEndTime","_inputRef$current","current","focus","handleSave","meetingData","alert","abrupt","calendar_id","put","ref","onKeyDown","newDate","newStartTime","newEndTime","_e$target$value$split","_e$target$value$split2","hours","minutes","parseInt","_e$target$value$split3","_e$target$value$split4","defaultValue","Number","disabled","_useCalendar","handleCalendarToggle","useCalendar","isAddEventModalOpen","setIsAddEventModalOpen","selectedMeeting","setSelectedMeeting","meetingElement","getElementById","then","AgendaView","columns","onRowClick","column","header","row","rowIndex","render","threads","selectedThread","editingThread","onThreadSelect","onNewThread","onEditThread","onUpdateThread","onDeleteThread","thread","onBlur","last_message","updated_at","onArtifactSelect","isLast","isBot","sender","created_at","artifacts","artifact","artifact_type","_threads$find","_queryFn","_queryFn2","navigate","useNavigate","newMessage","setNewMessage","setSelectedThread","setEditingThread","isAiTyping","setIsAiTyping","chatInputRef","messagesEndRef","chatContainerRef","selectedArtifact","setSelectedArtifact","scrollToBottom","scrollHeight","_useQuery","useQuery","queryFn","_useQuery$data","_useQuery2","enabled","onSuccess","_useQuery2$data","messages","_mutationFn","_mutationFn2","_mutationFn3","_mutationFn4","sendMessageMutation","useMutation","mutationFn","_callee3","threadId","_context3","responseType","onDownloadProgress","progressEvent","responseText","line","startsWith","forEach","eventLine","parse","slice","setQueryData","oldData","msg","messageId","content","createThreadMutation","_callee4","_context4","chat_thread","_x2","newThread","_chatInputRef$current","updateThreadMutation","_callee5","_context5","_x3","deleteThreadMutation","_callee6","_context6","_x4","deletedThreadId","nextThread","find","t","handleSend","_ref3","_callee7","_context7","preventDefault","mutate","_x5","handleOrganizationClick","index","status","toLocaleDateString","organization","ChatSidebar","newName","ChatBubble","animationDelay","onSubmit","xmlns","DataTable","rows","organizations","setOrganizations","loading","setLoading","searchTerm","setSearchTerm","current_page","total_pages","total_count","meta","setMeta","sortBy","sortOrder","showFavorites","states","businessTypes","filters","setFilters","setFacets","fetchOrganizations","page","search","searchParam","filterParams","filteredRecipients","uniqueStates","uniqueBusinessTypes","encodeURIComponent","URLSearchParams","sort_by","sort_order","join","business_types","is_favorited","toString","json","recipients","Set","org","_org$metadata","_org$metadata2","metadata","state_code","r","ceil","timeoutId","handlePageChange","handleToggleFavorite","method","orgs","NumberFormat","currency","minimumFractionDigits","maximumFractionDigits","notation","format","_row$metadata","_row$metadata$locatio","city_name","Boolean","_row$metadata2","faSearch","commentableType","commentableId","newComment","setNewComment","_useCommentCable","subscriptionRef","oldComments","undefined","comment","comment_id","oldUsers","user","user_id","user_name","debouncedStoppedTyping","debounce","_subscriptionRef$curr","perform","notifyTyping","_subscriptionRef$curr2","channel","commentable_type","commentable_id","cancel","useCommentCable","comments","staleTime","Infinity","typingUsers","_useQuery3","_response","createCommentMutation","body","deleteCommentMutation","commentId","_comment$user","formatDistanceToNow","addSuffix","shiftKey","isPending","fetchOrganization","ok","_organization$metadat","_organization$metadat2","_organization$awardin","_organization$awardin2","_organization$federal","_organization$cfda","_organization$psc","_organization$naics","useParams","_useMutation","refreshOrganization","isRefreshing","_useMutation2","toggleFavorite","formatCurrency","amount","Link","to","faArrowLeft","faSync","spin","duns","uei","recipient_level","address_line1","zip","awarding_agency","results","agency","awarding_subagency","subagency","federal_account","cfda","program","psc","item","naics","Comments","setComments","fetchComments","rowClassName","books","setBooks","newBookTitle","setNewBookTitle","editingBook","setEditingBook","editTitle","setEditTitle","fetchBooks","handleCreateBook","newBook","headers","book","t1","call","t2","handleEditBook","updatedBook","handleDeleteBook","_ref4","bookId","_book$pages","pages","startEditing","setBook","newPageTitle","setNewPageTitle","editingPage","setEditingPage","editContent","setEditContent","fetchBook","handleCreatePage","newPage","book_id","order","handleEditPage","updatedPage","handleDeletePage","pageId","handleReorderPages","_ref5","newOrder","updatedPages","oldIndex","findIndex","p","splice","goals","setGoals","newGoalTitle","setNewGoalTitle","editingGoal","setEditingGoal","fetchGoals","handleCreateGoal","newGoal","goal","handleEditGoal","updatedGoal","handleDeleteGoal","goalId","setGoal","fetchGoal","Layout","Routes","Route","path","Calendar","Chat","Organizations","OrganizationDetails","AllComments","Books","BookView","Goals","GoalView","Settings","Admin","_props","BrowserRouter","routes","commentsCount","pathname","ReactOnRails","traceTurbolinks","RouterApp","NavigationBarApp","NavigationBar"],"sourceRoot":""}