{"version":3,"file":"shared.a67f63b7e6dbf54b1cc0.js","mappings":"6QAAYA,E,6EAAkB,gCAAlBA,GAAAA,EAAkB,kBAAlBA,EAAkB,2DAAlBA,EAAkB,6CAAlBA,EAAkB,gEAAlBA,EAAkB,yBAAlBA,EAAkB,uBAAlBA,EAAkB,gBAAlBA,EAAkB,uBAAlBA,EAAkB,gBAAlBA,EAAkB,YAAlBA,EAAkB,YAAlBA,EAAkB,4CAAlBA,EAAkB,0BAAlBA,IAAkB,qBAAlBA,EAAkB,O,otECAzBC,E,kEAAe,SAAfA,GAAAA,EAAAA,EAAe,0CAAfA,IAAAA,EAAe,WAILA,EAAe,c,2MCJlBC,E,yEAAc,4BAAdA,GAAAA,EAAAA,EAAc,mBAAdA,EAAAA,EAAc,wBAAdA,IAAc,iBAAdA,EAAc,O,2MCAdC,E,2EAAgB,8BAAhBA,GAAAA,EAAAA,EAAgB,mBAAhBA,EAAAA,EAAgB,qBAAhBA,EAAAA,EAAgB,oBAAhBA,IAAgB,mBAAhBA,EAAgB,O,2+ZCAhBC,E,8EAAmB,iCAAnBA,GAAAA,EAAmB,wCAAnBA,EAAmB,sCAAnBA,EAAmB,8BAAnBA,EAAmB,iCAAnBA,IAAmB,sBAAnBA,EAAmB,O,4vBCAnBC,E,6EAAkB,gCAAlBA,GAAAA,EAAAA,EAAkB,iBAAlBA,EAAAA,EAAkB,yBAAlBA,EAAAA,EAAkB,yBAAlBA,EAAAA,EAAkB,wCAAlBA,IAAkB,qBAAlBA,EAAkB,O,60DCK9B,MAAMC,EAAe,CACnB,oBACA,oBACA,0BAGIC,EAAgB,CAEpB,uCACA,6BACA,uCACA,+BACA,oCACA,+BACA,+BACA,0CACA,wCACA,kCACA,iCACA,mCACA,+BACA,+BACA,+BACA,4BACA,gCACA,wBACA,mCACA,sCAEA,qCACA,uCACA,mCACA,mCAEA,sDAEIC,EAAmB,IAEpBD,EAGH,8BACA,6BACA,0BAEA,eAEA,wBACA,wBACA,uBACA,wBACA,wBACA,2BACA,kBACA,uBACA,0BACA,uBACA,wBACA,wBACA,oBACA,uBACA,+BACA,mBACA,iBACA,wBACA,qBACA,uBACA,iBACA,mBACA,mBACA,kBACA,4BACA,qBACA,2BACA,6BACA,0BACA,qBACA,+BACA,uBACA,kBACA,iBACA,wCACA,sCACA,uCACA,+CACA,oBACA,mBACA,2BACA,6BACA,yBAEA,6BACA,+BAGA,qBACA,iBACA,wBACA,wBACA,wBACA,4BACA,8BACA,6BACA,+BACA,2BACA,mBACA,qBAGA,cACA,iBACA,kBACA,gBACA,8BACA,sBAGA,wCAGA,mCACA,+BAEA,4BACA,oBACA,oBACA,sBAEA,0BAEA,iCAGA,uBACA,sBACA,0BAEA,kCACA,mBACA,gBACA,iBAGWE,EAAkB,IAAIH,KAAiBE,GA4B7C,SAASE,EAAcC,GAC5B,OAAOL,EAAaM,WAAWC,GAAMA,IAAMF,KAAU,CACvD,CAGO,SAASG,EAAeH,GAC7B,OAAOJ,EAAcK,WAAWC,GAAMA,IAAMF,KAAU,CACxD,CAnCgF,mBAmC/E,G,gRCvLM,MAAMI,EAAiB,CAC5BC,YAAa,yBACbC,UAAW,uBACXC,QAAS,qBACTC,QAAS,qBACTC,cAAe,0BACfC,iBAAkB,+BAClBC,mBAAoB,iCACpBC,cAAe,4BACfC,UAAW,yBACXC,UAAW,oBACX,qB,sjBCcFC,QAAQC,OAAO,uBAAwB,IACvCD,QAAQC,OAAO,uBAAwB,GAAI,G,mQCA3C,SAASC,EAAmBC,GAC1B,SAASC,IACP,OAAOD,EAAQE,kBACjB,CAEA,SAASC,EAAeC,EAAgBC,GAClCC,UACFN,EAAQE,mBAAqB,IAAII,SAASF,EAAQC,EAAQE,GAK1DP,EAAQE,mBAAmBM,mBAAqB,SAC9CC,GAEAC,EAAED,GAAWE,OACf,GACKC,QAAQC,MAAM,iCACvB,CAEA,SAASN,IACPK,QAAQE,IAAI,kBACZd,EAAQe,cAAe,CACzB,CAOA,MALiB,CACfC,eAAgBb,EAChBc,iBAAkBhB,EAClBiB,eAAgBX,EAGpB,E,QACAV,QACGC,OAAO,sBACPqB,QAAQ,qBAAsB,CAAC,UAAWpB,GAAqB,G,qMChDhEF,QAAQC,OAAO,qBAAsB,GAClC,G,sxBCEGA,OAAO,sBAAsBqB,QAAQ,YAAa,CACxD,UACA,SAAUnB,GAIR,OAHkBoB,MAAdpB,EAAQqB,IACVT,QAAQC,MAAM,oBAETb,EAAQqB,EACjB,GACC,G,qMCpBDxB,QAAQC,OAAO,sBAAsBqB,QAAQ,qBAAsB,CACjE,UACA,SAAUnB,GAIR,YAH4BoB,IAAxBpB,EAAQsB,aACVV,QAAQC,MAAM,6BAETb,EAAQsB,WACjB,GAEC,G;;;;;yECqBE,IAAIC,EAAgBC,OAAOD,GAAG,OACrCA,EAAGE,GAAK,KAER5B,EAAQC,OAAO,sBAAsBqB,QAAQI,EAAGE,GAAI,CAAC,IAAMF,GAAK,G,4QCtBhE1B,QAAQC,OAAO,sBAAsBqB,QAAQ,SAAU,CACrD,UACA,gBACA,SAAUnB,EAAS0B,GAmDjB,OAlDiBN,MAAbpB,EAAQU,GACVE,QAAQC,MAAM,wBAGhBH,EAAEiB,GAAGC,OAAO,CAIVC,YACE,OAAOC,KAAK,GAAGD,WAAaC,KAAKC,QAAQC,KAAK,UAAUC,SAASC,MACnE,EAKAC,YACE,MAAMC,EAAK1B,EAAE2B,SAASC,cAAc,SACpCF,EAAGF,KAAKJ,KAAKC,SAASQ,SAAS,QAC/B,MAAMC,EAAIJ,EAAGK,QAEb,OADAL,EAAGM,SACIF,CACT,EAIAG,aACE,MAAMP,EAAK1B,EAAE2B,SAASC,cAAc,SACpCF,EAAGF,KAAKJ,KAAKC,SAASQ,SAAS,QAC/B,MAAMC,EAAIJ,EAAGQ,SAEb,OADAR,EAAGM,SACIF,CACT,EAMAK,iBACE,OAA2B,GAApBf,KAAK,GAAGgB,UAAqC,GAApBhB,KAAK,GAAGgB,QAC1C,EAKAC,YAEE,OADuC,GAApBjB,KAAK,GAAGgB,SACPhB,KAAKG,SAASe,GAAG,YAAclB,KAAKkB,GAAG,WAC7D,IAGKhD,EAAQU,CACjB,GACC,G,kMCtEH,aAAa,4DAGbb,QAAQC,OAAO,sBAAsBqB,QAAQ,eAAgB,CAC3D,UACA,SAAUnB,GAIR,YAHsBoB,IAAlBpB,EAAQiD,OACVrC,QAAQC,MAAM,uBAETb,EAAQiD,KACjB,GACC,G,4QCVHpD,QAAQC,OAAO,sBAAsBqB,QAAQ,eAAgB,CAC3D,UACA,SAAUnB,GAKR,YAJsBoB,IAAlBpB,EAAQkD,OACVtC,QAAQC,MAAM,uBAGTb,EAAQkD,KACjB,GACC,G,qMCKDrD,QAAQC,OAAO,sBAAsBqB,QAAQ,gBAAiB,CAC5D,UACA,SAAUnB,GAKR,OAJiBoB,MAAbpB,EAAQ0B,GACVd,QAAQC,MAAM,wBAGTb,EAAQ0B,CACjB,GAEC,G,qMCVH7B,QAAQC,OAAO,sBAAsBqB,QAAQ,qBAAsB,CACjE,UACA,SAAUnB,GAIR,OAH2BoB,MAAvBpB,EAAQmD,aACVvC,QAAQC,MAAM,6BAETb,EAAQmD,WACjB,GAEC,G,qMCTHtD,QAAQC,OAAO,sBAAsBqB,QAAQ,gBAAiB,CAC5D,UACA,SAAUnB,GAIR,OAHsBoB,MAAlBpB,EAAQoD,QACVxC,QAAQC,MAAM,wBAETb,EAAQoD,MACjB,GAEC,G,qMCTHvD,QAAQC,OAAO,sBAAsBqB,QAAQ,mBAAoB,CAC/D,UACA,SAAUnB,GAIR,OAHoBoB,MAAhBpB,EAAQqD,MACVzC,QAAQC,MAAM,4BAETb,EAAQqD,IACjB,GAEC,G,qMCTHxD,QAAQC,OAAO,sBAAsBqB,QAAQ,gBAAiB,CAC5D,UACA,SAAUnB,GAIR,YAHuBoB,IAAnBpB,EAAQsD,QACV1C,QAAQC,MAAM,wBAETb,EAAQsD,MACjB,GAEC,G,mMCXL,aAAa,4DAEbzD,QAAQC,OAAO,sBAAsBqB,QAAQ,gBAAiB,CAC5D,UACA,SAAUnB,GAIR,OAHsBoB,MAAlBpB,EAAQuD,QACV3C,QAAQC,MAAM,wBAETb,EAAQuD,MACjB,GACC,G,mMCvBH,aAAa,0DAmCb,MAAMC,EAGJC,eAAiB,CACf,YACA,mBACA,iBACA,oBACA,qBACA,iCACA,UACA,gBACA,aACA,iBAEFC,YACUC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAhE,EACAiE,EACAC,EACAC,GACR,KAVQR,UAAAA,EAAe,KACfC,iBAAAA,EAAgB,KAChBC,eAAAA,EAAyC,KACzCC,kBAAAA,EAAgD,KAChDC,mBAAAA,EAA+C,KAC/CC,+BAAAA,EAA8D,KAC9DhE,QAAAA,EAA+B,KAC/BiE,cAAAA,EAAqC,KACrCC,WAAAA,EAA+B,KAC/BC,cAAAA,EAERrC,KAAKsC,SAAW,CACdC,qBAAsBvC,KAAK+B,eAAeS,kBAC1CC,kBAAmB,IACnBC,sBAAuB,IACvBC,mBAAoB,GACpBC,mBAAoB5C,KAAK+B,eAAec,mBACxCC,iBAAkB9C,KAAK+B,eAAee,iBACtCC,wBAAyB/C,KAAK+B,eAAegB,wBAC7CC,+BACEhD,KAAK+B,eAAeiB,+BACtBC,oBAAqBjD,KAAK+B,eAAemB,wBACzCC,qBAAsBnD,KAAK+B,eAAeqB,wBAC1CC,8BACErD,KAAK+B,eAAeuB,8BAExBtD,KAAKuD,yBAA2BvD,KAAKuD,yBAAyBC,KAAKxD,KACrE,CAIOyD,8BACL,MAAO,CACLC,YAAa,GACbC,aAAc,GAElB,CAEOC,QAAQC,GAEb,OADA9F,EAAAA,QAAQ+B,OAAOE,KAAKsC,SAAUuB,GACvB7D,KAAK8D,iBACd,CAMOC,eAAeF,GAGpB,OAFA9F,EAAAA,QAAQ+B,OAAOE,KAAKsC,SAAUuB,GAEvB7D,KAAKgE,wBACd,CAEQC,oCAAoCC,GAE1C,OACEA,IAAMlE,KAAKiC,mBAAmBkC,SAASC,UACvCF,IAAMlE,KAAKiC,mBAAmBkC,SAASE,mBACvCH,IAAMlE,KAAKiC,mBAAmBkC,SAASG,mBAM3C,CAEQC,qCAAqCC,GAE3C,MAAMC,EAC6B,SAAjCD,EAAKE,0BAC4B,IAAjCF,EAAKE,wBAEP,OAAQ1E,KAAK2E,qBAAqBH,EAAKL,WAAaM,CACtD,CAEQG,uCAAuCV,GAI7C,OAAO,CACT,CAEQW,2CAA2CC,GAKjD,OAFe,SAAZA,IAAkC,IAAZA,IACvB9E,KAAKoC,WAAW2C,cAEpB,CAEQC,0CAA0CF,GAEhD,MAD+C,SAAlCG,OAAOH,GAASI,aAE/B,CAEQC,wCAAwCL,GAC9C,MAAMM,EAC+B,MAAnCpF,KAAKoC,WAAWiD,iBAChBrF,KAAKoC,WAAWiD,gBAGlB,OAD0B,SAAZP,IAAkC,IAAZA,IAAqBM,CAE3D,CAEQE,0CAA0CpB,GAGhD,MADmB,SAANA,IAAsB,IAANA,CAE/B,CAEQqB,wCAAwCrB,GAE9C,OAAOA,GAAKlE,KAAKoC,WAAWoD,cAC9B,CAEQb,qBAAqBR,GAC3B,OAAoB,IAAbA,CACT,CAEQsB,eAAeC,GAIrB,OAHiB1F,KAAKkC,+BAA+ByD,UACnDD,EAAYE,KAGV5F,KAAK+B,eAAe8D,MAAMC,MAAMC,OAAOC,MACvChG,KAAK+B,eAAec,kBAC1B,CAEQoD,eAAeP,GACrB,MAAMQ,EAAWlG,KAAKkC,+BAA+ByD,UACnDD,EAAYE,MAER,SAAEzB,GAAauB,EAErB,OAAI1F,KAAK2E,qBAAqBR,GAErB+B,EACHlG,KAAK+B,eAAe8D,MAAMC,MAAMC,OAAOI,YAAc,EACrD,EAEGD,EACHlG,KAAK+B,eAAe8D,MAAMC,MAAMC,OAAOI,YACvCnG,KAAK+B,eAAegB,uBAE5B,CAEQqD,kBAAkBlC,GACxB,OAAIA,EAAEmC,MAAcnC,EAAEmC,MACVrG,KAAK+B,eAAe8D,MAAMS,cACxC,CAEQC,cAIN,MAFqC,cAAnCvG,KAAK9B,QAAQsI,SAASC,QAG1B,CAEOlD,yBAAyBmD,GAC9B,MAAMC,EAAcD,EAAUE,OAAO,GAAGC,cACxC,OAAO7G,KAAKqC,cAAcyE,uCACxBH,EAEJ,CAGQ7C,kBACN,MAAMiD,EAAM/G,KAAK6B,UAAUmF,YAAYC,KA2ZvC,OAzZ6BF,EAC3B/G,KAAK6B,UAAUqF,KACf,OACA,CACEC,YAAY,EACZC,YAAapH,KAAK+B,eAAesF,QAAQC,OAAOjB,MAChDkB,WAAYvH,KAAK+B,eAAesF,QAAQC,OAAOE,KAC/CC,aAAc,IAAIzH,KAAK6B,UAAU6F,MAC/B1H,KAAK+B,eAAesF,QAAQC,OAAOK,QACnC3H,KAAK+B,eAAesF,QAAQC,OAAOM,SAErCC,aAAc7H,KAAK6B,UAAUiG,KAAKC,OAClCC,WAAW,EACXC,kBAAkB,EAClBC,eAAgBlI,KAAK6B,UAAUmF,YAAYmB,SAC3CC,OAAQ,OACRC,WAAY,SAAUnL,EAAGsH,GAClBxE,KAAKgC,kBAAkBsG,8BAExBtI,KAAK2E,qBAAqBH,EAAK+D,KAAKpE,UACtCnE,KAAKgC,kBAAkBwG,SAAShE,EAAM,uBAEtCxE,KAAKgC,kBAAkBwG,SAAShE,EAAM,0BAE1C,EAAEhB,KAAKxD,MACPyI,WAAY,SAAUvL,EAAGsH,GACvBxE,KAAKgC,kBAAkB0G,SAASlE,EAAM,0BACtCxE,KAAKgC,kBAAkB0G,SAASlE,EAAM,sBACxC,EAAEhB,KAAKxD,OAET,IAAIA,KAAK6B,UAAU8G,QAAQ,YAAa,sBACxC,IAAI3I,KAAK6B,UAAU8G,QAAQ,qBAAsB,YAAazE,GACrDlE,KAAK2E,qBAAqBT,GAAK,OAAS,WAEjD,IAAIlE,KAAK6B,UAAU8G,QACjB,WACA,MACA3I,KAAK6B,UAAU6F,MAAMkB,OACrBC,WAAW7I,KAAK6B,UAAU6F,MAAMoB,WAClC/B,EACE/G,KAAK6B,UAAUkH,MACf,OACAhC,EACE/G,KAAK6B,UAAUmH,MACf,CACEC,KAAM,QACNC,OAAQlJ,KAAKsC,SAASM,mBACtBuG,YAAanJ,KAAKsC,SAASS,wBAC3BqG,cAAc,EACdC,YAAY,EACZC,OAAQ,WACRC,wBAAwB,EACxBC,sBAAsB,EAEtBpB,OAAQ,UACRqB,SAAUzJ,KAAK6B,UAAUiG,KAAK4B,UAC9BC,OAAQ3J,KAAK6B,UAAUiG,KAAK8B,SAC5BC,KAAM,WAKR,IAAI7J,KAAK6B,UAAU8G,QACjB,SACA,GACA3I,KAAKyF,eAAejC,KAAKxD,OAE3B,IAAIA,KAAK6B,UAAU8G,QACjB,cACA,GACA3I,KAAKiG,eAAezC,KAAKxD,OAG3B,IAAIA,KAAK6B,UAAU8G,QAAQ,OAAQ,YAAazE,GACvClE,KAAK2E,qBAAqBT,GAAK,cAAgB,UAExD,IAAIlE,KAAK6B,UAAU8G,QAAQ,SAAU,YAAazE,GACzClE,KAAK2E,qBAAqBT,GAAK,aAAe,MAGzD6C,EAAI/G,KAAK6B,UAAUmH,MAAO,CACxBC,KAAM,cACNC,OAAQ,KACRd,OAAQ,OACRzH,MAAOX,KAAKsC,SAASI,sBACrB5B,OAAQd,KAAKsC,SAASK,mBACtBmH,UAAW9J,KAAK6B,UAAUiG,KAAKiC,KAC/BF,KAAM,UAIV9C,EACE/G,KAAK6B,UAAUkH,MACf,QACA,CACEiB,iBAAkBhK,KAAK6B,UAAUiG,KAAKiC,KACtCE,OAAQ,IAAIjK,KAAK6B,UAAUqI,OAAO,EAAG,IAAK,EAAG,IAE/CnD,EAAI/G,KAAK6B,UAAUsI,oBAAqB,CACtCC,IAAK,EACLC,WAAYrK,KAAKsC,SAASW,sBAG5B,IAAIjD,KAAK6B,UAAU8G,QAChB3I,KAAKuG,cAA+B,GAAf,aACtB,IACCrC,GACQlE,KAAKoG,kBAAkBlC,KAGlC6C,EAAI/G,KAAK6B,UAAUsI,oBAAqB,CAAEC,IAAK,IAC/CrD,EAAI/G,KAAK6B,UAAUsI,oBAAqB,CAAEC,IAAK,EAAGtJ,OAAQ,KAG1DiG,EACE/G,KAAK6B,UAAUkH,MACf,aACA,CACEqB,IAAK,EACLE,OAAQ,EACRC,QAASvK,KAAK6B,UAAUmF,YAAYwD,KACpCC,QAAS,IAAIzK,KAAK6B,UAAU6I,KAAK,GAAI,KAEvC3D,EACE/G,KAAK6B,UAAU8I,UACf,CACEhK,MAAO,GACPiK,UAAW,SACXC,KAAM,uBACN3B,OAAQ,WAEV,IAAIlJ,KAAK6B,UAAU8G,QAAQ,OAAQ,aAAa,SAC9CjC,GAGA,OADoBA,EAAUE,OAAO,GAAGC,aAE1C,KAEF,IAAI7G,KAAK6B,UAAU8G,QACjB,aACA,YACA3I,KAAKuD,2BAITwD,EACE/G,KAAK6B,UAAU8I,UACf,CACEP,IAAK,EACLE,OAAQ,EACRR,UAAW9J,KAAK6B,UAAUiG,KAAKiC,KAC/BE,OAAQ,EACRY,KAAM,uBACND,UAAW,OACX1B,OAAQ,UACRvI,MAAO,IACPT,KAAMF,KAAK6B,UAAU8I,UAAUG,iBAEjC,IAAI9K,KAAK6B,UAAU8G,QAAQ,OAAQ,cAGrC5B,EACE/G,KAAK6B,UAAU8I,UACf,CACEP,IAAK,EACLE,OAAQ,EACRS,WAAY,EACZH,UAAW,SACXX,OAAQ,GACRY,KAAM,uBACN3B,OAAQ,UACR8B,UAAU,EACVC,eAAgB,CAACC,EAAWC,EAAUC,MAElCA,EAASC,QAAQ,MAAQ,GAAKD,EAASC,QAAQ,MAAQ,GAG3DC,WAAYtL,KAAKgC,kBAAkBuJ,qBACnCnD,OAAQ,OACRzH,MAAOX,KAAKsC,SAASG,kBACrBvC,KAAMF,KAAK6B,UAAU8I,UAAUa,QAC/BC,aAAa,EACblB,QAASvK,KAAK6B,UAAUmF,YAAY0E,YAEtC,IAAI1L,KAAK6B,UAAU8G,QAAQ,QAAQE,YAAW,CAAC8C,EAAUnH,KAInDA,EAAKoH,OAASD,IAIhBnH,EAAKoH,KAAOD,EACZ3L,KAAKmC,cAAc0J,QAAQ,qBAEtBF,MAGX,IAAI3L,KAAK6B,UAAU8G,QAAQ,UAAW,YAAazE,IACzClE,KAAK2E,qBAAqBT,MAItC6C,EACE/G,KAAK6B,UAAUkH,MACf,OACA,CACEe,UAAW,IAAI9J,KAAK6B,UAAUiG,KAAK,EAAG,EAAG,GAAI,IAE/Cf,EAAI/G,KAAK6B,UAAUmH,MAAO,UAAW,CACnCC,KAAMjJ,KAAKsC,SAASW,oBACpBiG,OAAQlJ,KAAKsC,SAASM,qBAExBmE,EACE/G,KAAK6B,UAAU8I,UACf,CACEE,KAAM,uBACND,UAAW,SACX1B,OAAQ,UACRe,OAAQ,IAAIjK,KAAK6B,UAAUqI,OAAO,EAAG,IAEvC,IAAIlK,KAAK6B,UAAU8G,QAAQ,OAAQ,gBAErC,IAAI3I,KAAK6B,UAAU8G,QAAQ,UAAW,IAAKnE,KAChCA,EAAKsH,aAAiC,IAAlBtH,EAAKL,YAItC4C,EACE/G,KAAK6B,UAAUkH,MACf,aACA,CACEjI,OAAQ,IACRgJ,UAAW9J,KAAK6B,UAAUiG,KAAKiE,aAGjChF,EACE/G,KAAK6B,UAAUmK,QACf,CACEnC,KAAM,OACNlJ,MAAOX,KAAK+B,eAAesF,QAAQ4E,mBAAmBtL,MACtDG,OAAQd,KAAK+B,eAAesF,QAAQ4E,mBAAmBnL,OACvDoL,MAAOlM,KAAK+B,eAAesF,QAAQ4E,mBAAmBC,MACtDC,OAAQC,qCACRnC,OAAQ,IAAIjK,KAAK6B,UAAUqI,OAAO,EAAG,EAAG,EAAG,GAC3CJ,UAAW9J,KAAK6B,UAAUiG,KAAKiE,aAEjC,IAAI/L,KAAK6B,UAAU8G,QACjB,UACA,gCACA3I,KAAKgF,0CAA0CxB,KAAKxD,QAIxD+G,EACE/G,KAAK6B,UAAUmK,QACf,CACEnC,KAAM,OACNlJ,MAAQX,KAAKgC,kBAAkBqK,mBAE3BrM,KAAK+B,eAAesF,QAAQiF,kBAAkB3L,MAD9CX,KAAK+B,eAAesF,QAAQkF,gBAAgB5L,MAEhDG,OAASd,KAAKgC,kBAAkBqK,mBAE5BrM,KAAK+B,eAAesF,QAAQiF,kBAAkBxL,OAD9Cd,KAAK+B,eAAesF,QAAQkF,gBAAgBzL,OAEhDoL,MAAQlM,KAAKgC,kBAAkBqK,mBAE3BrM,KAAK+B,eAAesF,QAAQiF,kBAAkBJ,MAD9ClM,KAAK+B,eAAesF,QAAQkF,gBAAgBL,MAEhDC,OAAQC,mCACRnC,OAAQ,IAAIjK,KAAK6B,UAAUqI,OAAO,EAAG,EAAG,EAAG,GAC3CJ,UAAW9J,KAAK6B,UAAUiG,KAAKiE,aAEjC,IAAI/L,KAAK6B,UAAU8G,QACjB,UACA,6BACA3I,KAAK6E,2CAA2CrB,KAAKxD,QAKzD+G,EACE/G,KAAK6B,UAAUmH,MACf,CACEC,KAAMjJ,KAAK+B,eAAeyK,qBAC1BtD,OAAQlJ,KAAK+B,eAAeyK,qBAC5BrD,YAAa,EACbxI,MAAO,GACPG,OAAQ,GACR2L,eACE,0aACFxC,OAAQ,IAAIjK,KAAK6B,UAAUqI,OAAO,EAAG,EAAG,EAAG,GAC3CJ,UAAW9J,KAAK6B,UAAUiG,KAAKiE,aAEjC,IAAI/L,KAAK6B,UAAU8G,QACjB,UACA,wBACA3I,KAAKsF,0CAA0C9B,KAAKxD,QAKxD+G,EACE/G,KAAK6B,UAAUmH,MACf,CACEE,OAAQlJ,KAAK+B,eAAe2K,mBAC5BvD,YAAa,IACbxI,MAAO,GACPG,OAAQ,GACR2L,eACE,8OACFxC,OAAQ,IAAIjK,KAAK6B,UAAUqI,OAAO,EAAG,EAAG,EAAG,GAC3CJ,UAAW9J,KAAK6B,UAAUiG,KAAKiE,aAEjC,IAAI/L,KAAK6B,UAAU8G,QACjB,UACA,sBACA3I,KAAKuF,wCAAwC/B,KAAKxD,QAMtD+G,EACE/G,KAAK6B,UAAUmH,MACf,iBACA,CACEC,KAAMjJ,KAAK+B,eAAe4K,mBAC1BzD,OAAQlJ,KAAK+B,eAAe4K,mBAC5BxD,YAAa,EACbsD,eAAgB,oDAChBxC,OAAQ,IAAIjK,KAAK6B,UAAUqI,OAAO,EAAG,EAAG,EAAG,GAC3CJ,UAAW9J,KAAK6B,UAAUiG,KAAKiE,aAEjC,IAAI/L,KAAK6B,UAAU8G,QACjB,UACA,WACA3I,KAAKiE,oCAAoCT,KAAKxD,SAKpD+G,EACE/G,KAAK6B,UAAUkH,MACf,WACA,CACEsB,WAAY,cACZjC,OAAQ,QAEVrB,EACE/G,KAAK6B,UAAUkH,MACf,OACAhC,EACE/G,KAAK6B,UAAUkH,MACf,OACAhC,EACE/G,KAAK6B,UAAUmK,QACf,CACE5C,cAAc,EACdC,YAAY,EACZC,OAAQ,aACRO,KAAM,OACNN,wBAAwB,EACxBC,sBAAsB,EACtBC,SAAUzJ,KAAK6B,UAAUiG,KAAK4B,UAC9BC,OAAQ3J,KAAK6B,UAAUiG,KAAK8B,SAC5BjJ,MAAOX,KAAK+B,eAAesF,QAAQuF,UAAUC,WAC7C/L,OAAQd,KAAK+B,eAAesF,QAAQuF,UAAUE,YAC9C1E,OAAQ,UACR+D,OAAQC,4BAEV,IAAIpM,KAAK6B,UAAU8G,QAAQ,SAAU,YAAazE,GACzClE,KAAK2E,qBAAqBT,GAAK,GAAK,gBAG/C6C,EAAI/G,KAAK6B,UAAUmH,MAAO,SAAU,CAClCC,KAAM,cACNC,OAAQ,KACRvI,MAAOX,KAAK+B,eAAesF,QAAQuF,UAAUC,WAAa,GAC1D/L,OAAQd,KAAK+B,eAAesF,QAAQuF,UAAUE,YAAc,KAE9D9M,KAAKgC,kBAAkB+K,SACrB,sBACA/M,KAAK6B,UAAUiG,KAAKkF,MACpB,IAAIhN,KAAK6B,UAAUiG,KAAK,EAAG,GAAK,EAAG,MAIzC9H,KAAK8B,iBAAiBmL,aACpB,QACA,OACA3N,EACA,YACAA,GACA,EACAU,KAAK+B,eAAemL,mBAEtB,IAAIlN,KAAK6B,UAAU8G,QACjB,UACA,WACA3I,KAAK2E,qBAAqBnB,KAAKxD,QAGnCA,KAAKgC,kBAAkB+K,SACrB,yBACA/M,KAAK6B,UAAUiG,KAAKkF,MACpB,IAAIhN,KAAK6B,UAAUiG,KAAK,EAAG,GAAK,EAAG,IAErC,CAAEqF,MAAOnN,KAAKgC,kBAAkBoL,kBAIpC,CAEQpJ,yBACN,MAAM+C,EAAM/G,KAAK6B,UAAUmF,YAAYC,KAEvC,OAAOjH,KAAK8B,iBAAiBuL,YAC3BtG,EACE/G,KAAK6B,UAAUmK,QACf,CAAC,EAED,IAAIhM,KAAK6B,UAAU8G,QAAQ,SAAU,YAAaxE,GAC5CnE,KAAK2E,qBAAqBR,GACrBiI,2BAEAA,gCAIX,IAAIpM,KAAK6B,UAAU8G,QAAQ,QAAS,YAAaxE,GAC3CnE,KAAK2E,qBAAqBR,GACpBnE,KAAKgC,kBAAkBqK,mBAE3BrM,KAAK+B,eAAeuL,QAAQC,OAAOC,MAAMC,WADzCzN,KAAK+B,eAAeuL,QAAQI,KAAKD,WAG7BzN,KAAKgC,kBAAkBqK,mBAE3BrM,KAAK+B,eAAeuL,QAAQC,OAAOI,SAASF,WAD5CzN,KAAK+B,eAAeuL,QAAQI,KAAKD,aAKzC,IAAIzN,KAAK6B,UAAU8G,QAAQ,SAAU,YAAaxE,GAC5CnE,KAAK2E,qBAAqBR,GACpBnE,KAAKgC,kBAAkBqK,mBAE3BrM,KAAK+B,eAAeuL,QAAQC,OAAOC,MAAMI,YADzC5N,KAAK+B,eAAeuL,QAAQI,KAAKE,YAG7B5N,KAAKgC,kBAAkBqK,mBAE3BrM,KAAK+B,eAAeuL,QAAQC,OAAOI,SAASC,YAD5C5N,KAAK+B,eAAeuL,QAAQI,KAAKE,cAKzC,IAAI5N,KAAK6B,UAAU8G,QAAQ,QAAS,YAAaxE,GAC3CnE,KAAK2E,qBAAqBR,GACpBnE,KAAKgC,kBAAkBqK,mBAE3BrM,KAAK+B,eAAeuL,QAAQC,OAAOC,MAAMtB,MADzC,EAGIlM,KAAKgC,kBAAkBqK,mBAE3BrM,KAAK+B,eAAeuL,QAAQC,OAAOI,SAASzB,MAD5C,KAMd,EAGFnO,EAAAA,QACGC,OAAO,0BACP6P,QAAQ,0BAA2BnM,EAAyB,G,yNCnqB/D,aAAa,mDAWb,SAASoM,EAAmBjM,EAAWkM,EAAa9L,GAIlD,MAHgB,CACd+L,sBAAuBA,GAIzB,SAASA,IAqkBP,OApkBAnM,EAAUoM,QAAQC,QAAQC,EAAoBtM,EAAUuM,gBAYxDD,EAAmBE,UAAUC,kBAAoB,WAC/C,MAAMjH,EAAUrH,KAAKqH,QACrB,QACEA,SAEAA,EAAQkH,YACRlH,EAAQmH,iBAGNnH,EAAQoH,UAAUC,MAAQ,EAEhC,EAMAP,EAAmBE,UAAUM,UAAY,WACvC,MAAMtH,EAAUrH,KAAKqH,QACrBA,EAAQuH,iBAAiB,iBACzB,IAAIC,EAAcC,IAClBzH,EAAQoH,UAAUM,MAAK,SAAUC,GAC3BA,aAAmBnN,EAAUoN,OACjCJ,EAAcK,KAAKC,IAAIH,EAAQI,SAASC,EAAGR,GAC7C,IAEAxH,EAAQoH,UAAUM,MAAK,SAAUC,GAC3BA,aAAmBnN,EAAUoN,MACjCD,EAAQM,KAAK,IAAIzN,EAAU6F,MAAMmH,EAAaG,EAAQI,SAASG,GACjE,IAEAlI,EAAQmI,kBAAkB,gBAC5B,EAMArB,EAAmBE,UAAUoB,WAAa,WACxC,MAAMpI,EAAUrH,KAAKqH,QACrBA,EAAQuH,iBAAiB,kBACzB,IAAIc,GAAc,IAClBrI,EAAQoH,UAAUM,MAAK,SAAUC,GAC/B,GAAIA,aAAmBnN,EAAUoN,KAAM,OACvC,MAAMU,EACJX,EAAQY,aAAaP,EAAIL,EAAQY,aAAajP,MAChD+O,EAAcR,KAAKW,IAAIF,EAAcD,EACvC,IACArI,EAAQoH,UAAUM,MAAK,SAAUC,GAC3BA,aAAmBnN,EAAUoN,MACjCD,EAAQM,KACN,IAAIzN,EAAU6F,MACZgI,EAAcV,EAAQY,aAAajP,MACnCqO,EAAQI,SAASG,GAGvB,IACAlI,EAAQmI,kBAAkB,iBAC5B,EAMArB,EAAmBE,UAAUyB,SAAW,WACtC,MAAMzI,EAAUrH,KAAKqH,QACrBA,EAAQuH,iBAAiB,YACzB,IAAIC,EAAcC,IAClBzH,EAAQoH,UAAUM,MAAK,SAAUC,GAC3BA,aAAmBnN,EAAUoN,OACjCJ,EAAcK,KAAKC,IAAIH,EAAQI,SAASG,EAAGV,GAC7C,IACAxH,EAAQoH,UAAUM,MAAK,SAAUC,GAC3BA,aAAmBnN,EAAUoN,MACjCD,EAAQM,KAAK,IAAIzN,EAAU6F,MAAMsH,EAAQI,SAASC,EAAGR,GACvD,IACAxH,EAAQmI,kBAAkB,WAC5B,EAMArB,EAAmBE,UAAU0B,YAAc,WACzC,MAAM1I,EAAUrH,KAAKqH,QACrBA,EAAQuH,iBAAiB,mBACzB,IAAIc,GAAc,IAClBrI,EAAQoH,UAAUM,MAAK,SAAUC,GAC/B,GAAIA,aAAmBnN,EAAUoN,KAAM,OACvC,MAAMe,EACJhB,EAAQY,aAAaL,EAAIP,EAAQY,aAAa9O,OAChD4O,EAAcR,KAAKW,IAAIG,EAAeN,EACxC,IACArI,EAAQoH,UAAUM,MAAK,SAAUC,GAC3BA,aAAmBnN,EAAUoN,MACjCD,EAAQM,KACN,IAAIzN,EAAU6F,MACZsH,EAAQY,aAAaP,EACrBK,EAAcV,EAAQY,aAAa9O,QAGzC,IACAuG,EAAQmI,kBAAkB,kBAC5B,EAMArB,EAAmBE,UAAU4B,aAAe,WAC1C,MAAM5I,EAAUrH,KAAKqH,QACf6I,EAAiB7I,EAAQoH,UAAU0B,QACzC,IAAKD,EAAgB,OACrB7I,EAAQuH,iBAAiB,qBACzB,MAAMwB,EACJF,EAAeN,aAAaP,EAAIa,EAAeN,aAAajP,MAAQ,EACtE0G,EAAQoH,UAAUM,MAAK,SAAUC,GAC3BA,aAAmBnN,EAAUoN,MACjCD,EAAQM,KACN,IAAIzN,EAAU6F,MACZ0I,EAAUpB,EAAQY,aAAajP,MAAQ,EACvCqO,EAAQY,aAAaL,GAG3B,IACAlI,EAAQmI,kBAAkB,oBAC5B,EAMArB,EAAmBE,UAAUgC,aAAe,WAC1C,MAAMhJ,EAAUrH,KAAKqH,QACf6I,EAAiB7I,EAAQoH,UAAU0B,QACzC,IAAKD,EAAgB,OACrB7I,EAAQuH,iBAAiB,qBACzB,MAAM0B,EACJJ,EAAeN,aAAaL,EAAIW,EAAeN,aAAa9O,OAAS,EACvEuG,EAAQoH,UAAUM,MAAK,SAAUC,GAC3BA,aAAmBnN,EAAUoN,MACjCD,EAAQM,KACN,IAAIzN,EAAU6F,MACZsH,EAAQY,aAAaP,EACrBiB,EAAUtB,EAAQY,aAAa9O,OAAS,GAG9C,IACAuG,EAAQmI,kBAAkB,oBAC5B,EAQArB,EAAmBE,UAAUkC,YAAc,SAAUC,GACnD,MAAMnJ,EAAUrH,KAAKqH,QACrBA,EAAQuH,iBAAiB,qBACRtP,IAAbkR,IAAwBA,EAAW,GACvCA,EAAWC,WAAWD,GACtB,MAAME,EAAgB,GACtBrJ,EAAQoH,UAAUM,MAAK,SAAUC,GAC3BA,aAAmBnN,EAAUoN,MACjCyB,EAAcC,KAAK3B,EACrB,IACA,IAAK,IAAI4B,EAAI,EAAGA,EAAIF,EAAcG,OAAS,EAAGD,IAAK,CACjD,MAAM5B,EAAU0B,EAAcE,GAExBE,EACJ9B,EAAQY,aAAaL,EAAIP,EAAQY,aAAa9O,OAAS0P,EAC5CE,EAAcE,EAAI,GAC1BtB,KACH,IAAIzN,EAAU6F,MAAMsH,EAAQY,aAAaP,EAAGyB,GAEhD,CACAzJ,EAAQmI,kBAAkB,eAC5B,EAQArB,EAAmBE,UAAU0C,SAAW,SAAUP,QAC/BlR,IAAbkR,IAAwBA,EAAW,GACvCA,EAAWC,WAAWD,GACtB,MAAMnJ,EAAUrH,KAAKqH,QACrBA,EAAQuH,iBAAiB,aACzB,MAAM8B,EAAgB,GACtBrJ,EAAQoH,UAAUM,MAAK,SAAUC,GAC3BA,aAAmBnN,EAAUoN,MACjCyB,EAAcC,KAAK3B,EACrB,IACA,IAAK,IAAI4B,EAAI,EAAGA,EAAIF,EAAcG,OAAS,EAAGD,IAAK,CACjD,MAAM5B,EAAU0B,EAAcE,GAExBI,EACJhC,EAAQY,aAAaP,EAAIL,EAAQY,aAAajP,MAAQ6P,EAC3CE,EAAcE,EAAI,GAC1BtB,KAAK,IAAIzN,EAAU6F,MAAMsJ,EAAiBhC,EAAQY,aAAaL,GACtE,CACAlI,EAAQmI,kBAAkB,YAC5B,EAYArB,EAAmBE,UAAU4C,UAAY,WACvC,MAAM5J,EAAUrH,KAAKqH,QACrB,QACEA,SAEAA,EAAQkH,YACRlH,EAAQmH,iBAGNnH,EAAQoH,UAAUC,MAAQ,EAEhC,EAQAP,EAAmBE,UAAU6C,OAAS,SAAUC,GAC1CA,UAAuCA,EAAQ,IACnD,MAAM9J,EAAUrH,KAAKqH,QACrBA,EAAQuH,iBAAiB,UAAYuC,EAAMC,YAE3C/J,EAAQoH,UAAUM,MAAK,SAAUC,GAE7BA,aAAmBnN,EAAUoN,MAC7BD,aAAmBnN,EAAUwP,QAG/BrC,EAAQmC,OAASA,EACnB,IACA9J,EAAQmI,kBAAkB,UAAY2B,EAAMC,WAC9C,EAOAjD,EAAmBE,UAAUiD,UAAY,WACvC,MAAMjK,EAAUrH,KAAKqH,QACrB,GAAIA,QAA2C,OAC/C,MAAMnK,EAAImK,EAAQkK,UAGlB,GACY,OAAVrU,EAAE0I,KACQ,SAAV1I,EAAE0I,KACQ,SAAV1I,EAAE0I,KACQ,UAAV1I,EAAE0I,IACF,CACA,MAAM4L,EAAWxR,KAAKyR,iBACtB,GAAiB,SAAbD,EAEF,OACK,GAAiB,WAAbA,EAET,YADAxR,KAAK0R,kBAEA,GAAiB,SAAbF,EAET,YADAxR,KAAK2R,eAIT,CAGA9P,EAAUuM,eAAeC,UAAUiD,UAAUM,KAAK5R,KACpD,EAOAmO,EAAmBE,UAAUwD,aAAe,WAC1C,MAAMC,EAAW,GAQjB,OAPA9R,KAAKqH,QAAQ0K,MAAMhD,MAAK,SAAUvK,GAChCsN,EAASnB,KAAKnM,EAChB,IACAxE,KAAKqH,QAAQ2K,MAAMjD,MAAK,SAAUkD,GAChCH,EAASnB,KAAKsB,EAChB,IAEOH,CACT,EAMA3D,EAAmBE,UAAUsD,cAAgB,WAC3C,MAAMtK,EAAUrH,KAAKqH,QACfnK,EAAImK,EAAQkK,UAElB,IAAIW,EAAY,EACZC,EAAY,EAEhB,GAAIjV,EAAEkV,SAAWlV,EAAEmV,KACjBH,EAAY,EACZC,EAAY,OACP,GAAqB,OAAjB9K,EAAQiL,KAAe,CAChC,MAAMC,EAAWlL,EAAQiL,KAAKE,aAC9BL,EAAYI,EAAS5R,MACrBuR,EAAYK,EAASzR,MACvB,CACAuG,EAAQuH,iBAAiB,gBACzBvH,EAAQoH,UAAUM,MAAK,SAAUkD,GACjB,OAAV/U,EAAE0I,IACJqM,EAAK3C,KACH,IAAIzN,EAAU6F,MACZuK,EAAKrC,aAAaP,EAClB4C,EAAKrC,aAAaL,EAAI2C,IAGP,SAAVhV,EAAE0I,IACXqM,EAAK3C,KACH,IAAIzN,EAAU6F,MACZuK,EAAKrC,aAAaP,EAClB4C,EAAKrC,aAAaL,EAAI2C,IAGP,SAAVhV,EAAE0I,IACXqM,EAAK3C,KACH,IAAIzN,EAAU6F,MACZuK,EAAKrC,aAAaP,EAAI8C,EACtBF,EAAKrC,aAAaL,IAGH,UAAVrS,EAAE0I,KACXqM,EAAK3C,KACH,IAAIzN,EAAU6F,MACZuK,EAAKrC,aAAaP,EAAI8C,EACtBF,EAAKrC,aAAaL,GAI1B,IACAlI,EAAQmI,kBAAkB,eAC5B,EAMArB,EAAmBE,UAAUqD,gBAAkB,WAC7C,MAAMrK,EAAUrH,KAAKqH,QACfnK,EAAImK,EAAQkK,UAIlB,IAAIkB,EAAW,KACD,OAAVvV,EAAE0I,IACJ6M,EAAWzS,KAAK0S,wBAAwB,KACrB,SAAVxV,EAAE0I,IACX6M,EAAWzS,KAAK0S,wBAAwB,IACrB,SAAVxV,EAAE0I,IACX6M,EAAWzS,KAAK0S,wBAAwB,KACrB,UAAVxV,EAAE0I,MACX6M,EAAWzS,KAAK0S,wBAAwB,IAEtCD,UACEvV,EAAEyV,MACJF,EAASG,YAAa,EACb1V,EAAEkV,SAAWlV,EAAEmV,KACxBI,EAASG,YAAcH,EAASG,WAEhCvL,EAAQwL,OAAOJ,GAGrB,EASAtE,EAAmBE,UAAUqE,wBAA0B,SAAUI,GAC/D,MAAMC,EAAe/S,KAAKqH,QAAQoH,UAAU0B,QAC5C,GAAI4C,QAAqD,OAAO,KAChE,MAAMC,EAAgBD,EAAanD,aAAaqD,OAC1CnB,EAAW9R,KAAK6R,eACtB,IAAIqB,EAAkBpE,IAClBqE,EAAUJ,EAEd,IAAK,IAAInC,EAAI,EAAGA,EAAIkB,EAASjB,OAAQD,IAAK,CACxC,MAAM6B,EAAWX,EAASlB,GAC1B,GAAI6B,IAAaM,EAAc,SAC/B,MAAMK,EAAYX,EAAS7C,aAAaqD,OAClC9B,EAAQ6B,EAAcK,eAAeD,GACrCE,EAAYtT,KAAKuT,gBAAgBpC,EAAO2B,GAC9C,GAAIQ,GAAa,GAAI,CAEnB,IAAI9C,EAAWwC,EAAcQ,qBAAqBJ,GAClD5C,GAAY,EAAItB,KAAKuE,IAAKH,EAAYpE,KAAKwE,GAAM,KAC7ClD,EAAW0C,IAEbA,EAAkB1C,EAClB2C,EAAUV,EAEd,CACF,CACA,OAAOU,CACT,EAQAhF,EAAmBE,UAAUkF,gBAAkB,SAAUI,EAAGb,GAC1D,OAAO5D,KAAKC,IACVD,KAAK0E,IAAId,EAAMa,GACfzE,KAAKC,IAAID,KAAK0E,IAAId,EAAM,IAAMa,GAAIzE,KAAK0E,IAAId,EAAM,IAAMa,IAE3D,EAQAxF,EAAmBE,UAAUwF,gBAAkB,SAAUC,GAEvD,MAAMC,EAAW,GACjBD,EAAK/E,MAAK,SAAUiF,GACdA,EAAEC,UAA2B,qBAAfD,EAAEC,SAClBF,EAASpD,KAAKqD,GACLA,aAAazU,GAAG0P,OAEC,qBAAxB+E,EAAEE,SAASD,UACW,qBAAtBD,EAAEG,OAAOF,UAETF,EAASpD,KAAKqD,GAGpB,IACA,IAAK,IAAIpD,EAAI,EAAGA,EAAImD,EAASlD,OAAQD,IACnCkD,EAAKlT,OAAOmT,EAASnD,IAGvB5Q,KAAKqH,QAAQ+M,MAAMC,kBACjBrU,KAAKqH,QAAQ+M,MAAME,iBAAiBC,GACtCvU,KAAKqH,QAAQ+M,MAAMI,mBACjBxU,KAAKqH,QAAQ+M,MAAME,iBAAiB1O,IACtC/D,EAAUuM,eAAeC,UAAUwF,gBAAgBjC,KAAK5R,KAAM8T,GAC9D9T,KAAKyU,iBAAiBC,IAAI1U,KAAK2U,YACjC,EAQAxG,EAAmBE,UAAUuG,mBAAqB,WAChD5U,KAAKqH,QAAQ+M,MAAMS,sBAAuB,EAC1C,MAAMC,EACJjT,EAAUuM,eAAeC,UAAUuG,mBAAmBhD,KAAK5R,MAuB7D,OAtBAA,KAAKqH,QAAQ0N,UAAUD,EAAkB9U,KAAKyU,kBAC9CzU,KAAKyU,iBAAiBO,IAAIhV,KAAK2U,aAE/B/U,EAAEqV,QAAQH,EAAiBI,IAAKC,IACzBA,EAAKvP,KAAQuP,EAAKvP,IAAIwP,KAGvBD,EAAKvP,IAAIwP,GAAGb,GACdY,EAAKvP,IAAIwP,GAAGC,iBAAmBF,EAAKvP,IAAIwP,GAAGb,GAE3CzV,QAAQE,IAAI,yBAEdmW,EAAKvP,IAAIwP,GAAGb,GAAKxG,EAAYuH,MAE3BH,EAAKvP,IAAIwP,GAAGxJ,MACZuJ,EAAKvP,IAAIwP,GAAGnB,WACVhS,EAAmBsT,aAAaC,kBAClCL,EAAKvP,IAAIwP,GAAGnB,WAAahS,EAAmBsT,aAAaE,QAEzDN,EAAKvP,IAAIwP,GAAGxJ,KAAQ,WAAUuJ,EAAKvP,IAAIwP,GAAGxJ,QAC5C,IAEKkJ,CACT,EAEA3G,EAAmBE,UAAUqH,gBAAkB,WAC7C,MAAMrO,EAAUrH,KAAKqH,QACrBA,EAAQoH,UAAUM,MAAK,SAAUkD,GACN,SAArBA,EAAKmD,GAAGnB,UACNhC,EAAK0D,YAAYjH,MAAQ,GAC3BrH,EAAQuO,eAAeC,iBAAiB5D,EAAK0D,aAAa,EAGhE,IACA9T,EAAUuM,eAAeC,UAAUqH,gBAAgB9D,KAAK5R,KAC1D,EASA8V,OAAOC,eAAe5H,EAAmBE,UAAW,mBAAoB,CACtE2H,IAAK,WACH,OAAOhW,KAAKiW,iBACd,EACAvB,IAAK,SAAUwB,GACb,GACU,SAARA,GACQ,WAARA,GACQ,WAARA,GACQ,SAARA,EAEA,MAAM,IAAIpQ,MACR,kGACEoQ,GAGNlW,KAAKiW,kBAAoBC,CAC3B,IASFJ,OAAOC,eAAe5H,EAAmBE,UAAW,cAAe,CACjE2H,IAAK,WACH,OAAOhW,KAAKmW,YACd,EACAzB,IAAK,SAAUwB,GACb,KAAMA,aAAerU,EAAU6F,OAC7B,MAAM,IAAI5B,MACR,wDAA0DoQ,GAE9DlW,KAAKmW,aAAazB,IAAIwB,EACxB,IAQK,IAAI/H,CACb,CAEA,SAASA,IACPtM,EAAUuM,eAAewD,KAAK5R,MAC9BA,KAAKiW,kBAAoB,OACzBjW,KAAKmW,aAAe,IAAItU,EAAU6F,MAAM,GAAI,IAC5C1H,KAAKyU,iBAAmB,IAAI5S,EAAU6F,MAAM,EAAG,EACjD,CACF,EA/lBa,QAKb3J,QACGC,OAAO,0BACPqB,QAAQ,qBAAsByO,GAEjCA,EAAmBsI,QAAU,CAAC,YAAa,cAAe,qBAslBzD,G,gNC3kBD,SAASC,EACPxU,EACAE,EACAI,EACAC,EACAkU,GAeA,MAbgB,CACdC,mBAAoBA,EACpBC,gBAAiBA,EACjBC,iBAAkBA,EAClBC,gBAAiBA,EACjBtJ,iBAAkBA,EAClBf,mBAAoBA,EACpBd,mBAAoBA,EACpBwB,SAAUA,EACVzE,0BAA2BA,EAC3BE,SAAUA,EACVE,SAAUA,GAIZ,SAAS0E,EAAiBlQ,GACxBiF,EAAc0J,QACZ,uBACA3O,EAAEmK,QAAQ+M,MAAME,iBAEpB,CAEA,SAASiC,IAuJP,OAtJA1U,EAAUoM,QAAQC,QAAQyI,EAAiB9U,EAAU+U,aAIrDD,EAAgBtI,UAAUwI,WAAa,SACrC3C,EACA4C,EACA3C,EACA4C,GAEA,IAAIC,EAAQ,KAGTL,EAAwBM,8BACvB/C,EACA4C,EACA3C,EACA4C,KAGFC,EAAQhX,KAAKkX,kBACblX,KAAKkX,kBAAoB,CAAEjD,SAAU,QAIvC,MAAMkD,EAAUtV,EAAU+U,YAAYvI,UAAUwI,WAAWjF,KACzD5R,KACAkU,EACA4C,EACA3C,EACA4C,GAEFI,EAAQC,QAAUC,EAAetV,EAAeuV,aAChDH,EAAQI,MAAQ1V,EAAUoN,KAAKuI,QAC/BL,EAAQM,OAAS1V,EAAe2V,gBAChC,MAAMtD,EAAQF,EAAS7M,QAAQ+M,MAG7BkC,EAAkBqB,gBAChBzD,EAAS3L,KACT4L,EAAO5L,KACP6L,EAAMwD,cACNxD,EAAMyD,iBAGRV,EAAQ5O,KAAKuP,YAAa,EAC1B5D,EAAS3L,KAAKwP,WAAa5D,EAAO5L,KAAK3C,KAGzC5F,KAAKkX,kBAAoB,CACvBc,QAAS,CAAEC,KAAM,YAOnB,MAAMC,EAAa,EAMbC,EAAcjE,EAAS3L,KAY7B,GAVE4P,EAAYlE,WAAamE,EAAAA,aAAa3C,OACtC0C,EAAYE,iBAAmBH,IAE/BlY,KAAKkX,kBAAkBc,QAAQC,KAAO,QAEX,YAAzBE,EAAYlE,WACdjU,KAAKkX,kBAAkBc,QAAQC,KAAO,QAKtC/D,EAASD,WAAamE,EAAAA,aAAaE,mBACnCH,EAAYI,iBACZ,CACA,MAAMC,EAAQrB,EAAQsB,WAAW,SACnB,OAAVD,IACFA,EAAM5M,KAAO,QACb4M,EAAME,SAAU,EAEpB,CAIA,OADc,OAAV1B,IAAgBhX,KAAKkX,kBAAoBF,GACtCG,CACT,EAKCR,EAAwBgC,+BAAiC,SACxDC,EACAC,EACAC,EACAC,GAEA,OAA0B,OAAtBH,EAAS3E,UAAyC,OAApB6E,EAAO7E,aAIT,OAA7B2E,EAASI,iBAC8B,eAAtCJ,EAASI,gBAAgB/E,UACC,OAA3B6E,EAAOE,iBAC8B,eAApCF,EAAOE,gBAAgB/E,WAErB2E,EAASI,kBAAoBF,EAAOE,mBAGtCJ,EAASI,kBAAoBF,EAAOE,iBAGvB,MADFJ,EAASK,0BAA0BH,GAEpD,EAGCnC,EAAwBM,8BAAgC,SACvD2B,EACAC,EACAC,EACAC,GAEA,OAA0B,OAAtBH,EAAS3E,UAAyC,OAApB6E,EAAO7E,WAGjB,mBAAtB2E,EAAS3E,UACW,mBAApB6E,EAAO7E,aAMuB,OAA7B2E,EAASI,iBAC8B,eAAtCJ,EAASI,gBAAgB/E,UACC,OAA3B6E,EAAOE,iBAC8B,eAApCF,EAAOE,gBAAgB/E,WAErB2E,EAASI,kBAAoBF,EAAOE,mBAGtCJ,EAASI,kBAAoBF,EAAOE,iBAGtB,OADHJ,EAASK,0BAA0BH,IAEpD,EAGO,IAAInC,CACb,CAEA,SAASH,IACP,MAAMzP,EAAMlF,EAAUmF,YAAYC,KAuElC,OArE6BF,EAC3BlF,EAAUoN,KACV,CACEmI,QAASC,EAAetV,EAAeuV,aACvCC,MAAO1V,EAAUoN,KAAKuI,QACtBC,OAAQ1V,EAAe2V,gBACvBwB,YAAY,EACZC,gBAAgB,EAChBC,cAAc,EACdC,mBAAoB,GACpBlM,MAAOC,GAETrG,EACElF,EAAUmH,MACV,CAAEG,YAAapH,EAAeuX,WAC9B,IAAI/Z,GAAGoJ,QAAQ,SAAU,IAAI,SAAU4Q,GACrC,OAAOC,EAAaD,GAAM,EAC5B,IAAGE,YAEL1S,EACElF,EAAUmH,MACV,CAAE0Q,QAAS,WAAYxN,MAAO,KAAMhD,OAAQ,MAC5C,IAAIrH,EAAU8G,QAAQ,OAAQ,IAAI,SAAU4Q,GAC1C,OAAOC,EAAaD,GAAM,EAC5B,IAAGE,YAEL1S,EACElF,EAAUmH,MACV,CACE2Q,UAAW,GACXzN,MAAO,KACPhD,OAAQnH,EAAe6X,WACvB3Q,KAAMlH,EAAe6X,YAEvB,IAAI/X,EAAU8G,QAAQ,YAAa,aAAa,SAAUzE,GACxD,OAAU,OAANA,EAAmB,GAChBA,EAAI,YAAc,kBAC3B,IACA,IAAIrC,EAAU8G,QAAQ,gBAAiB,aAAa,SAAUzE,GAC5D,OAAOA,EAAI,IAAIrC,EAAU6F,MAAM,EAAG,GAAK,IAAI7F,EAAU6F,MAAM,EAAG,EAChE,KAGFX,EACElF,EAAU8I,UACV,CAEEd,KAAM,QAENgB,KAAM,0CACNG,UAAU,EACVS,aAAa,EACbG,KAAM,QACNhB,UAAW,SACXiP,cAAe,IAAIhY,EAAU6F,MAAM,EAAG,IACtC/G,MAAO,IACPsJ,OAAQ,GACRyO,SAAS,EACTxY,KAAM,UACNmK,WAAY,WAEd,IAAIxI,EAAU8G,QAAQ,OAAQ,QAAQE,aACtC,IAAIhH,EAAU8G,QAAQ,UAAW,WAAWE,cAG9C,IAAIhH,EAAU8G,QAAQ,WAAY,WAAY9G,EAAUiG,KAAKc,OAC7D,IAAI/G,EAAU8G,QAAQ,UAAUE,aAIpC,CAEA,SAAS2Q,EAAaD,EAAMO,GAC1B,IAAIzT,EAAQtE,EAAe6X,WAmB3B,OAjBEL,GACAA,EAAKrF,UACLqF,EAAKrF,SAAS3L,MACdgR,EAAKrF,SAAS3L,KAAKwP,YACnBwB,EAAKpF,QACLoF,EAAKpF,OAAO5L,MACZgR,EAAKpF,OAAO5L,KAAK3C,MAAQ2T,EAAKrF,SAAS3L,KAAKwP,aAE5C1R,EAAQtE,EAAegY,eACnBD,UACKP,EAAKrF,SAAS3L,KAAKwP,WAE5BwB,EAAKhC,MAAQ1V,EAAUoN,KAAK+K,SAC5BT,EAAKhR,KAAKkB,SAAW,MACrB8P,EAAKU,qBAAqB,aAGrB5T,CACT,CAEA,SAASsQ,IACP9U,EAAU+U,YAAYhF,KAAK5R,MAE3BA,KAAKka,UAAYrY,EAAU+U,YAAYuD,aAEvCna,KAAKoa,cAAchD,QAAUC,EAAetV,EAAeuV,aAC3DtX,KAAKqa,eAAiB,SAAUzB,EAAUC,EAAUC,EAAQC,GAC1D,OACGpC,EAAwBgC,+BACvBC,EACAC,EACAC,EACAC,IAEDpC,EAAwBM,8BACvB2B,EACAC,EACAC,EACAC,EAGN,CACF,CAEA,SAAS1B,EAAeiD,GAGtB,OAAQA,GACN,KAAK,EACH,OAAOzY,EAAUoN,KAAKsL,WAExB,KAAK,EACH,OAAO1Y,EAAUoN,KAAKuL,YAExB,QACE,OAAO3Y,EAAUoN,KAAKwL,OAE5B,CAEA,SAAShE,EAAiBiE,EAAcC,GAEtC,OAAO5T,EADKlF,EAAUmF,YAAYC,MACvBpF,EAAU+Y,MAAOF,EAAcC,EAC5C,CAEA,SAASjE,EAAgBmE,EAAK3O,GAC5B,MAAMnF,EAAMlF,EAAUmF,YAAYC,KAElC,OAAOF,EACLlF,EAAUkH,MACV,aACA,CACEe,UAAWjI,EAAUiG,KAAKgT,aAC1BC,eAAgBlZ,EAAUiG,KAAKgT,cAEjC/T,EACElF,EAAUmH,MACV,mBACA,CACErI,MAAO,GAAKuL,EACZpL,OAAQ,GAAKoL,EACbjC,OAAQ,EACRyO,SAAS,EACTvP,YAAapH,EAAeiZ,2BAE9B,IAAInZ,EAAU8G,QAAQ,UAAW,WAEnC5B,EACElF,EAAUmH,MACV,uBACA,CACErI,MAAO,GAAKuL,EACZpL,OAAQ,GAAKoL,EACbjC,OAAQ,EACRyO,SAAS,EACTvP,YAAapH,EAAeiZ,2BAE9B,IAAInZ,EAAU8G,QAAQ,UAAW,eAEnC5B,EACElF,EAAUmH,MACV,yBACA,CACErI,MAAO,GAAKuL,EACZpL,OAAQ,GAAKoL,EACbjC,OAAQ,EACRyO,SAAS,EACTvP,YAAapH,EAAeiZ,2BAE9B,IAAInZ,EAAU8G,QAAQ,UAAW,iBAEnC5B,EACElF,EAAUmH,MACV,oBACA,CACErI,MAAO,GAAKuL,EACZpL,OAAQ,GAAKoL,EACbjC,OAAQ,EACRyO,SAAS,EACTvP,YAAapH,EAAeiZ,2BAE9B,IAAInZ,EAAU8G,QAAQ,UAAW,YAEnC5B,EACElF,EAAUmH,MACV,2BACA,CACErI,MAAO,GAAKuL,EACZpL,OAAQ,GAAKoL,EACbjC,OAAQ,EACRyO,SAAS,EACTvP,YAAapH,EAAeiZ,0BAC5B/R,KAAM,MAER,IAAIpH,EAAU8G,QAAQ,UAAW,mBAEnCsS,EAAcJ,GAElB,CAEA,SAASI,EAAcJ,GACrB,MAAM9T,EAAMlF,EAAUmF,YAAYC,KAClC,OAAI4T,EACK,CACL9T,EAAI,0BACJ,CAAEkD,OAAQ,EAAGyO,SAAS,GACtB,IAAI7W,EAAU8G,QAAQ,UAAW,iBAE9B,EACT,CAEA,SAAS0D,IACP,QAAI,UAAU6O,KAAKC,UAAUC,UAG/B,CAEA,SAAS7P,IACP,MACM8P,GADe,IAAIxZ,EAAUyZ,iBACID,kBAIvC,OAHAA,EAAkBE,MAAMC,gBACtBzZ,EAAe8D,MAAMS,eAEhB+U,CACT,CAEA,SAAStO,EACPlD,EACA4R,EACA3R,GAIA,OAAO/C,EAFKlF,EAAUmF,YAAYC,MAEvBpF,EAAUmH,MAAO,SAAU,CACpCa,KAAMA,EACNZ,KAAM,UACNyS,QAAS,GACTxS,OAAQ,KACRyS,YAAa,IAAI9Z,EAAU6I,KAAK,GAAI,IACpCZ,UAAWA,EACXiR,eAAgBU,EAChBnS,OAAQO,EACRT,cAAc,EACdC,YAAY,EACZjB,OAAQ,UACRsQ,SAAS,GAEb,CAEA,SAASpQ,IACP,OACElG,EAAWwZ,uBACkB,cAA7Blc,OAAO8G,SAASC,QAEpB,CAEA,SAAS+B,EAAShE,EAAMqX,GACtB,MAAMC,EAAOtX,EAAKiU,WAAWoD,GACzBC,IACFA,EAAKpD,SAAU,EAEnB,CAEA,SAAShQ,EAASlE,EAAMqX,GACtB,MAAMC,EAAOtX,EAAKiU,WAAWoD,GACzBC,IACFA,EAAKpD,SAAU,EAEnB,CACF,CAjeA3a,QACGC,OAAO,0BACPqB,QAAQ,oBAAqBgX,GAEhCA,EAAkBD,QAAU,CAC1B,YACA,iBACA,gBACA,aACA,oBAwdD,G,mMCxfD,aAAa,0DAwBb,MAAM2F,EAIJpa,eAAiB,CACf,YACA,iBACA,mBACA,oBACA,kCAGFC,YACUC,EACAE,EACAD,EACAE,EACAE,GACR,KALQL,UAAAA,EAAe,KACfE,eAAAA,EAAyC,KACzCD,iBAAAA,EAAuC,KACvCE,kBAAAA,EAAgD,KAChDE,+BAAAA,EAERlC,KAAK+G,IAAM/G,KAAK6B,UAAUmF,YAAYC,KAEtCjH,KAAKsC,SAAW,CACd0Z,eAAgB,IAChBC,oBAAqBjc,KAAK+B,eAAec,mBACzCqZ,yBAA0Blc,KAAK+B,eAAegB,wBAC9CoZ,qBAAsBnc,KAAK+B,eAAemB,wBAE1CkZ,sBAAuB,GACvBC,sBAAuB,KACvBC,0BAA2B,GAE3BC,uBAAwB,GACxBC,oBAAqB,QAGvBxc,KAAK6B,UAAUmH,MAAMyT,sBACnB,mBACA,CAACC,EAAOC,EAAGC,KACF,IAAI5c,KAAK6B,UAAUgb,UAAW7H,IACnC,IAAIhV,KAAK6B,UAAUib,WAAW,EAAGF,GAAG,GACjC5H,IACC,IAAIhV,KAAK6B,UAAUkb,YACjB/c,KAAK6B,UAAUkb,YAAYC,KAC3Bhd,KAAKsC,SAASga,0BACd,IAGHtH,IACC,IAAIhV,KAAK6B,UAAUkb,YACjB/c,KAAK6B,UAAUkb,YAAYC,KAC3BL,EACA,IAGH3H,IACC,IAAIhV,KAAK6B,UAAUkb,YACjB/c,KAAK6B,UAAUkb,YAAYC,KAC3BL,EACAC,OAOZ5c,KAAK6B,UAAUmH,MAAMyT,sBACnB,iBACA,CAACC,EAAOC,EAAGC,KACF,IAAI5c,KAAK6B,UAAUgb,UAAW7H,IACnC,IAAIhV,KAAK6B,UAAUib,WAAW,EAAGF,GAAG,GACjC5H,IACC,IAAIhV,KAAK6B,UAAUkb,YACjB/c,KAAK6B,UAAUkb,YAAYC,KAC3Bhd,KAAKsC,SAASga,0BACd,IAGHtH,IACC,IAAIhV,KAAK6B,UAAUkb,YACjB/c,KAAK6B,UAAUkb,YAAYC,KAC3Bhd,KAAKsC,SAASga,0BACdM,IAGH5H,IACC,IAAIhV,KAAK6B,UAAUkb,YACjB/c,KAAK6B,UAAUkb,YAAYC,KAC3B,EACAJ,OAOZ5c,KAAK6B,UAAUmH,MAAMyT,sBACnB,iBACA,CAACC,EAAOC,EAAGC,KACF,IAAI5c,KAAK6B,UAAUgb,UAAW7H,IACnC,IAAIhV,KAAK6B,UAAUib,WAAW,EAAG,GAAG,GACjC9H,IACC,IAAIhV,KAAK6B,UAAUkb,YACjB/c,KAAK6B,UAAUkb,YAAYC,KAC3B,EACAJ,EAAI,IAGP5H,IACC,IAAIhV,KAAK6B,UAAUkb,YACjB/c,KAAK6B,UAAUkb,YAAYC,KAC3BL,EACAC,EAAI,IAGP5H,IACC,IAAIhV,KAAK6B,UAAUkb,YACjB/c,KAAK6B,UAAUkb,YAAYC,KAC3BL,EACA,MAMd,CAEQM,gBACN,OAAOjd,KAAK+G,IACV/G,KAAK6B,UAAUkH,MACf,OACA,CAAC,EACD/I,KAAK+G,IACH/G,KAAK6B,UAAUmH,MACf,kBACA,CACEC,KAAMjJ,KAAK+B,eAAe8D,MAAMqX,mBAChCvc,MAAOX,KAAKsC,SAAS0Z,eACrBlb,OAAQd,KAAKsC,SAAS8Z,uBAIxB,IAAIpc,KAAK6B,UAAU8G,QACjB,SACA,GACA3I,KAAKyF,eAAejC,KAAKxD,OAE3B,IAAIA,KAAK6B,UAAU8G,QACjB,cACA,GACA3I,KAAKiG,eAAezC,KAAKxD,QAK7BA,KAAK+G,IACH/G,KAAK6B,UAAU8I,UACf,CACEb,UAAW,IAAI9J,KAAK6B,UAAUiG,KAC5B,GACA,GACA9H,KAAKsC,SAASga,0BAA4B,EAC1C,GAEFzR,KAAM,uBACND,UAAW,SACX1B,OAAQ,UACRvI,MACEX,KAAKsC,SAAS0Z,eACdhc,KAAKsC,SAASga,0BACdtc,KAAKsC,SAAS+Z,sBAChBvb,OAAQd,KAAKsC,SAASia,uBAAyB,EAC/CY,SAAUnd,KAAK6B,UAAU8I,UAAUyS,kBAErC,IAAIpd,KAAK6B,UAAU8G,QAAQ,OAAQ,cAGzC,CAEQ0U,cACN,OAAOrd,KAAK+G,IACV/G,KAAK6B,UAAUkH,MACf,OACA,CACEe,UAAW,IAAI9J,KAAK6B,UAAUiG,KAAK,EAAG,EAAG,GAAI,IAE/C9H,KAAK+G,IACH/G,KAAK6B,UAAUmH,MACf,gBACA,CACEC,KAAM,OACNtI,MAAOX,KAAKsC,SAAS0Z,eACrBlb,OAAQd,KAAKsC,SAASka,oBACtBpT,cAAc,EACdC,YAAY,EACZC,OAAQ,WACRC,wBAAwB,EACxBC,sBAAsB,EACtB8T,WAAY,EACZlV,OAAQ,UACRqB,SAAUzJ,KAAK6B,UAAUiG,KAAK4B,UAC9BC,OAAQ3J,KAAK6B,UAAUiG,KAAK8B,SAC5BC,KAAM,UAIR,IAAI7J,KAAK6B,UAAU8G,QACjB,SACA,GACA3I,KAAKyF,eAAejC,KAAKxD,OAE3B,IAAIA,KAAK6B,UAAU8G,QACjB,cACA,GACA3I,KAAKiG,eAAezC,KAAKxD,QAG7BA,KAAK+G,IACH/G,KAAK6B,UAAUkH,MACf,WACA,CACEpI,MAAOX,KAAKsC,SAAS0Z,gBAEvBhc,KAAK+G,IACH/G,KAAK6B,UAAU8I,UACf,CACEC,UAAW,SACXC,KAAM,uBACN3B,OAAQ,UACR8B,UAAU,EACVM,WAAYtL,KAAKgC,kBAAkBuJ,qBACnCnD,OAAQ,OACRlI,KAAMF,KAAK6B,UAAU8I,UAAUa,QAC/BC,aAAa,EACblB,QAASvK,KAAK6B,UAAUmF,YAAY0E,WACpCzB,OAAQ,IAAIjK,KAAK6B,UAAUqI,OAAO,GAAI,IACtCvJ,MAAO,SAET,IAAIX,KAAK6B,UAAU8G,QAAQ,QAAQE,cAErC7I,KAAKud,uBAGX,CAEQA,sBACN,OAAOvd,KAAK+G,IACV/G,KAAK6B,UAAUkH,MACf,OACA,CACEe,UAAW,IAAI9J,KAAK6B,UAAUiG,KAAK,EAAG,GACtCmC,OAAQ,IAAIjK,KAAK6B,UAAUqI,OAAO,EAAG,EAAG,EAAG,IAE7ClK,KAAK+G,IAAI/G,KAAK6B,UAAUmH,MAAO,UAAW,CACxCC,KAAMjJ,KAAKsC,SAAS6Z,qBACpBjT,OAAQlJ,KAAKsC,SAAS2Z,sBAExBjc,KAAK+G,IACH/G,KAAK6B,UAAU8I,UACf,CACEE,KAAM,uBACND,UAAW,SACX1B,OAAQ,UACRe,OAAQ,IAAIjK,KAAK6B,UAAUqI,OAAO,EAAG,IAEvC,IAAIlK,KAAK6B,UAAU8G,QAAQ,OAAQ,gBAErC,IAAI3I,KAAK6B,UAAU8G,QAAQ,UAAW,IAAKnE,GAGrCA,EAAKsH,aAAiC,IAAlBtH,EAAKL,SACpB,EAEA,IAIf,CAKQsB,eAAeC,GAIrB,OAHiB1F,KAAKkC,+BAA+ByD,UACnDD,EAAYE,KAGV5F,KAAK+B,eAAe8D,MAAMC,MAAMC,OAAOC,MACvChG,KAAKsC,SAAS2Z,mBACpB,CAKQhW,eAAeP,GAIrB,OAHiB1F,KAAKkC,+BAA+ByD,UACnDD,EAAYE,KAGV5F,KAAK+B,eAAe8D,MAAMC,MAAMC,OAAOI,YAAc,EACrD,CACN,CAEOvC,QAAQC,GACb,OAAO7D,KAAK+G,IACV/G,KAAK6B,UAAUqF,KACf,OACA,CACEC,YAAY,EACZC,YAAapH,KAAK+B,eAAesF,QAAQC,OAAOjB,MAChDkB,WAAYvH,KAAK+B,eAAesF,QAAQC,OAAOE,KAC/CC,aAAc,IAAIzH,KAAK6B,UAAU6F,MAC/B1H,KAAK+B,eAAesF,QAAQC,OAAOK,QACnC3H,KAAK+B,eAAesF,QAAQC,OAAOM,SAErC4V,mBAAoB,YACpB3V,aAAc7H,KAAK6B,UAAUiG,KAAKC,OAClCC,WAAW,EACXC,kBAAkB,EAClBC,eAAgBlI,KAAK6B,UAAUmF,YAAYmB,SAC3CC,OAAQ,OACRqB,SAAUzJ,KAAK6B,UAAUiG,KAAK4B,UAC9BC,OAAQ3J,KAAK6B,UAAUiG,KAAK8B,SAC5B6T,aAAc,EACdpV,WAAY,CAACnL,EAAGsH,KACdxE,KAAKgC,kBAAkBwG,SAAShE,EAAM,gBAAgB,EAExDiE,WAAY,CAACvL,EAAGsH,KACdxE,KAAKgC,kBAAkB0G,SAASlE,EAAM,gBAAgB,GAI1D,IAAIxE,KAAK6B,UAAU8G,QAAQ,qBAAsB,UACjD,IAAI3I,KAAK6B,UAAU8G,QACjB,WACA,MACA3I,KAAK6B,UAAU6F,MAAMkB,OACrBC,WAAW7I,KAAK6B,UAAU6F,MAAMoB,WAElC9I,KAAK+G,IACH/G,KAAK6B,UAAUkH,MACf,WACA,CAAEc,KAAM,aACR7J,KAAKid,gBACLjd,KAAKqd,eAGPrd,KAAK+G,IACH/G,KAAK6B,UAAUmH,MACf,gBACA,CACEc,UAAW,IAAI9J,KAAK6B,UAAUiG,KAAK,EAAG,GACtCmB,KAAM,UACNtI,MAAOX,KAAKsC,SAAS0Z,eACrBlb,OAAQd,KAAKsC,SAAS8Z,uBAIxB,IAAIpc,KAAK6B,UAAU8G,QACjB,SACA,GACA3I,KAAKyF,eAAejC,KAAKxD,OAE3B,IAAIA,KAAK6B,UAAU8G,QACjB,cACA,GACA3I,KAAKiG,eAAezC,KAAKxD,WAGzBA,KAAKgC,kBAAkBsG,4BACvB,CACEtI,KAAKgC,kBAAkB+K,SACrB,gBACA/M,KAAK6B,UAAUiG,KAAKkF,MACpB,IAAIhN,KAAK6B,UAAUiG,KAAK,EAAG,GAAK,EAAG,KAGvC,GACJ9H,KAAK+G,IAAI/G,KAAK6B,UAAUmH,MAAO,CAC7BC,KAAM,cACNC,OAAQ,KACRd,OAAQ,OACRzH,MAAOX,KAAKsC,SAAS0Z,eAAiB,GACtClb,OAAQd,KAAKsC,SAASka,oBACtB1S,UAAW9J,KAAK6B,UAAUiG,KAAKiC,KAC/BF,KAAM,SAER,CAAEsD,MAAOnN,KAAKgC,kBAAkBoL,kBAEpC,CAEOrJ,eAAeF,GACpB,OAAO7D,KAAK+G,IACV/G,KAAK6B,UAAU6b,KACf1d,KAAK6B,UAAUkH,MAAMZ,SACrB,CACExH,MAAOX,KAAK+B,eAAeuL,QAAQG,WACnCxF,kBAAkB,GAEpBjI,KAAK+G,IAAI/G,KAAK6B,UAAUmK,QAAS,CAC/BG,OAAQC,+BACRzL,MAAQX,KAAKgC,kBAAkBqK,mBAE3BrM,KAAK+B,eAAeuL,QAAQC,OAAOoQ,UAAUlQ,WAD7CzN,KAAK+B,eAAeuL,QAAQI,KAAKD,WAErC3M,OAASd,KAAKgC,kBAAkBqK,mBAE5BrM,KAAK+B,eAAeuL,QAAQC,OAAOoQ,UAAUlQ,WAD7CzN,KAAK+B,eAAeuL,QAAQI,KAAKE,YAErC1B,MAAQlM,KAAKgC,kBAAkBqK,mBAE3BrM,KAAK+B,eAAeuL,QAAQC,OAAOoQ,UAAUzR,MAD7C,IAGNlM,KAAK8B,iBAAiBmL,aACpB,YACA3N,EACAU,KAAK+B,eAAe6b,kBACpB,OACA,0BAGN,EAGF7f,EAAAA,QACGC,OAAO,0BACP6P,QAAQ,2BAA4BkO,EAA0B,G,uMCxbjE,aAAa,4HAQb,MAAM8B,EAAQ,CACZC,qBAAsB,EACtBC,4BAA6B,EAC7BzX,eAAgB,OAChB0X,eAAgB,UAChBC,cAAe,UACfC,gBAAiB,UACjBC,aAAc,UACdC,cAAe,UACflB,mBAAoB,UACpBmB,oBAAqB,OACrBC,kBAAmB,OACnBC,qBAAsB,UACtBC,qBAAsB,UACtBC,eAAgB,OAChBC,eAAgB,UAChBC,oBAAqB,UACrBC,yBAA0B,UAE1B9Y,MAAO,CACLC,OAAQ,CACNC,MAAO,OACPG,YAAa,KAKb0Y,EAAY,CAChBhZ,MAAOgY,EAEPrb,mBAAmB,EAEnB8U,YAAa,EACbI,gBAAiB,GAEjBoH,aAAc,GACdC,gBAAiB,KACjBC,gBAAiB,IAEjBC,cAAe,GACfC,mBAAoB,GAGpBzc,kBAAmB,IACnBE,mBAAoB,IACpBI,wBAAyB,IACzBC,+BAAgC6a,EAAME,4BACtC/C,0BAA2B,IAC3BnY,mBAAoB,OACpBC,iBAAkB+a,EAAMvX,eACxB6Y,qBAAsBtB,EAAMK,gBAC5Bhb,wBAAyB2a,EAAMX,mBAC/B9Z,wBAAyBya,EAAMc,oBAC/Brb,6BAA8Bua,EAAMe,yBACpCQ,SAAU,WACVlS,kBAAmB2Q,EAAMvX,eAGzB+Y,QAAS,UACTC,gBAAiB,GACjBC,gBAAiB1B,EAAMvX,eACvBkZ,kBAAmB3B,EAAMS,kBACzBmB,uBAAwB5B,EAAMC,qBAC9B4B,8BAA+B7B,EAAME,4BACrC4B,iBAAkB9B,EAAMvX,eAGxBsZ,qBAAsB/B,EAAMC,qBAC5B+B,4BAA6BhC,EAAME,4BACnC+B,cAAejC,EAAMvX,eACrByZ,qBAAsBlC,EAAMX,mBAC5B8C,iBAAkBnC,EAAMG,eACxBiC,eAAgBpC,EAAMM,aACtB+B,gBAAiB,CAAE,EAAGrC,EAAMG,eAAgB,EAAGH,EAAMG,gBACrDmC,iBAAkB,CAAE,EAAGtC,EAAMK,gBAAiB,EAAGL,EAAMK,iBACvDkC,eAAgBvC,EAAMvX,eAGtB+Z,oBAAqB,IACrBC,qBAAsB,EACtBC,kBAAmB,EACnBC,QAAS,EACTC,WAAY,GAEZC,gBAAiB7C,EAAMS,kBACvB9R,qBAAsBqR,EAAMS,kBAC5B3R,mBAAoBkR,EAAMa,eAC1BhS,mBAAoBmR,EAAMa,eAC1BiC,sBAAuB9C,EAAMa,eAG7B9E,WAAY,OACZG,eAAgB8D,EAAMQ,oBACtB/E,UAAW,EAGXsH,WAAY/C,EAAMW,qBAClBZ,kBAAmBC,EAAMW,qBAEzBlR,QAAS,CACPG,WAAY,GACZZ,WAAY,GACZa,KAAM,CACJD,WAAY,GACZZ,WAAY,GACZe,YAAa,GACbd,YAAa,IAEfS,OAAQ,CACNvQ,MAAO,CACLyQ,WAAY,GACZG,YAAa,GACb1B,MAAO,IAETyB,SAAU,CACRF,WAAY,GACZG,YAAa,GACb1B,MAAO,IAETsB,MAAO,CACLC,WAAY,IACZG,YAAa,IACb1B,MAAO,IAET2U,QAAS,CACPpT,WAAY,GACZG,YAAa,GACb1B,MAAO,IAET4U,KAAM,CACJrT,WAAY,GACZG,YAAa,GACb1B,MAAO,IAETyR,UAAW,CACTlQ,WAAY,GACZG,YAAa,GACb1B,MAAO,KAGXhB,UAAW,CACTuC,WAAY,MAGhBpG,QAAS,CACPuF,UAAW,CACTC,WAAY,IACZC,YAAa,KAEfiU,YAAa,CACXlU,WAAY,GACZC,YAAa,IAEfY,KAAM,CACJD,WAAY,GACZZ,WAAY,GACZe,YAAa,GACbd,YAAa,IAEfxF,OAAQ,CACNjB,MAAO,UACPmB,KAAM,EACNG,QAAS,EACTC,QAAS,GAEX2E,gBAAiB,CACf5L,MAAO,GACPG,OAAQ,GACRoL,MAAO,GAETI,kBAAmB,CACjB3L,MAAO,GACPG,OAAQ,GACRoL,MAAO,IAETD,mBAAoB,CAClBtL,MAAO,GACPG,OAAQ,GACRoL,MAAO,KAGX,MAEa2S,EAIf,YACA9gB,EAAAA,QAAQC,OAAO,0BAA0BgjB,SAAS,iBAAkBnC,EAAW,G,8MC3M/E,aAAa,4DAkBb9gB,QAAQC,OAAO,0BAA0BijB,UAAU,gBAAiB,CAClE,iBACA,aACA,WACA,UACA,YACA,gBACA,cACA,qBACA,cAEA,gBACA,oBACA,qBACA,SACElf,EACAmf,EACAC,EACAjjB,EACA2D,EACAM,EACAif,EACAC,EACAtT,EACAuT,EACAhL,EACArU,GAEA,MAAO,CACLsf,SAAU,IACVC,SAAU,cACVC,SAAS,EACTC,MAAO,CACLtN,MAAO,WACPuN,WAAY,MAEdpI,KAAM,SAAUmI,EAAOE,EAAcC,GAGnC,MAAM9a,EAAMlF,EAAUmF,YAAYC,KAE5B6a,EAAKT,EAAmBU,kBAC9BD,EAAGE,wBAA0BngB,EAAUiG,KAAKC,OAE5C,MAAMV,EAEJN,EAAIlF,EAAUoM,QAAS2T,EAAQ,GAAIE,GAkCrC,SAASG,EAAoB/N,EAAU4C,EAAU3C,EAAQ4C,GACvD,MAAMmL,EAAU,CACdhO,WACAC,SACA2C,WACAC,SACAa,cAAevQ,EAAQ+M,MAAMwD,cAC7BC,cAAexQ,EAAQ+M,MAAMyD,eAG/B,QACEvB,EAAkB6L,2BAChBjO,EACAC,EACA9M,EAAQ+M,MAAMwD,cACdvQ,EAAQ+M,MAAMyD,iBAEfvB,EAAkB8L,qBAAqBF,IACxC5L,EAAkB+L,kCAChBnO,EACAC,GAON,CAcA,SAASmO,EAAUjb,GAIjB,GAAIA,EAAQ1G,OAAS,GAEnB,OAEF,MAAM4hB,EAAU,GACVC,EAAU,GAGVC,EAAepb,EAAQqb,eAAe/hB,MACtCgiB,EAAgBtb,EAAQqb,eAAe5hB,OAGvCH,EAAQihB,EAAQjhB,QAChBG,EAAS8gB,EAAQ9gB,SAEvB,GAAI2hB,EAAe9hB,GAASgiB,EAAgB7hB,EAAQ,CAGlD,MAAM8hB,EAASjiB,EAAQ8hB,EACjBI,EAAS/hB,EAAS6hB,EACxBtb,EAAQ6E,MAAQ0W,EAASC,EAASD,EAASC,EAEvCxb,EAAQ6E,MAAQqW,EAElBlb,EAAQ6E,MAAQqW,EAGhBlb,EAAQ6E,MAAQ7E,EAAQ6E,MAAQ,GAG9B7E,EAAQ6E,MAAQsW,IAElBnb,EAAQ6E,MAAQsW,EAEpB,MAEEnb,EAAQ6E,MAAQqW,EAIlB,MAAMO,EAA0D,EAApC/gB,EAAeuL,QAAQT,WAC7CkW,EAAgBhhB,EAAeuL,QAAQI,KAAKb,WAAa,EAC/DxF,EAAQ+H,SAASC,EACfhI,EAAQqb,eAAerT,EAAIyT,EAAsBC,CACrD,CAGA,SAASC,EAAqB5O,GAC5B,MAAM6O,EAAQ7O,EAAMyD,cACd9F,EAAQqC,EAAMwD,cACfqL,GAAUlR,GAIGkR,EAAMC,QAAQC,GAAMA,EAAErL,aAC9B7C,SAASmO,IACjB,MAAMlP,EAAWnC,EAAMsR,MAAM3iB,GAAMA,EAAEkF,MAAQwd,EAASE,OAClDpP,IACFA,EAAS6D,WAAaqL,EAASG,GACjC,GAEJ,CAQA,SAASC,EAAsBxmB,GAC7B,GAAIA,EAAMymB,sBAAuB,CAC/B,MAAMC,EAAc1mB,EAAM2mB,OAC1B,GAAoB,OAAhBD,EACF,OAGF,MAAME,EAA4B,SAAnB5mB,EAAMmO,SACrB,IAAI0Y,GAAe,EAEnBH,EAAYI,QAAQ/U,MAAK,SAAU7R,GACjC,OAAQA,EAAE6mB,aACR,IAAK,gBAED7mB,EAAE8mB,SAAWniB,EAAUoiB,aAAaC,QACnChnB,EAAE8mB,SAAWniB,EAAUoiB,aAAaE,QAAUP,GAE/CzhB,EAAc0J,QAAQ,wBAAyB,CAC7C0N,KAAMrc,EAAEkO,WAEVyY,GAAe,IAEf3mB,EAAE8mB,SAAWniB,EAAUoiB,aAAaE,QACnCjnB,EAAE8mB,SAAWniB,EAAUoiB,aAAaC,QAAUN,KAE/CzhB,EAAc0J,QAAQ,uBAAwB,CAC5C0N,KAAMrc,EAAEiO,WAEV0Y,GAAe,GAEjB,MAEF,IAAK,gBAED3mB,EAAE8mB,SAAWniB,EAAUoiB,aAAaC,QACpChnB,EAAE8mB,SAAWniB,EAAUoiB,aAAaE,SAEpCN,GAAe,GAIvB,IAEIA,GAEFO,GAAe,GAAO,EAE1B,CACF,CA4FA,SAASC,IACPzlB,EAAE,iBAAiB0lB,SAAS,gBAC9B,CACA,SAASC,IACPpiB,EAAc0J,QAAQ,wBAAyB,CAC7CrH,KAAM6C,EAAQ+M,MAAME,kBAExB,CAEA,SAASkQ,IACPC,IACAtiB,EAAc0J,QAAQ,mBACxB,CA6BA,SAASuY,EAAeM,EAAkBC,GAEd,WAAxBzD,EAAW0D,UACa,YAAxB1D,EAAW0D,WAEPF,GACFH,IACII,GACFH,KAGFA,IAEF9C,EAAMmD,SAEV,CAyFA,SAASC,EAAeC,GAGtB,OAFAA,EAAYxQ,GAAKxG,EAAYuH,MAC7ByP,EAAYC,OAAQ,EACZD,EAAY9Q,UAClB,KAAKmE,EAAAA,aAAagH,SAChB/X,EAAQuH,iBAAiB,qBACzBmW,EAAYE,KAAO7D,EAAY3d,8BAC/B4D,EAAQmI,kBAAkB,qBAC1B,MAEF,KAAK4I,EAAAA,aAAaE,kBAChByM,EAAYlE,QAAU,CAAEqE,MAAO,IAInC/iB,EAAc0J,QAAQ,0BAA2BkZ,EACnD,CAIA,SAASI,EAAcnoB,EAAOuL,GAC5B4Y,GAAS,WACP9Z,EAAQ+M,MAAMgR,sBAAsB5B,GAEpCnc,EAAQge,OAAOC,mBACfb,IACApd,EAAQ+M,MAAMmR,mBAAmB/B,EACnC,GACF,CAEA,SAASgC,EAAmBxoB,EAAOuL,GAGjC4Y,GAAS,WACP9Z,EAAQ+M,MAAMgR,sBAAsB5B,GACpCnc,EAAQuH,iBAAiB,sBAEzB,IAAK,IAAIgC,EAAI,EAAGA,EAAIrI,EAAK0a,MAAMpS,OAAQD,IAAK,CAC1C,MAAM6U,EAAWld,EAAK0a,MAAMrS,GAE5B6U,EAASC,UAAY,KAEnBD,EAASE,YACuB,cAAhCF,EAASE,WAAW,GAAG1N,OAEvBwN,EAASC,WAAY,GAGvB,MAAMnM,EAAOlS,EAAQue,gBAAgBH,GACrClM,EAAKU,qBAAqB,QAC1BV,EAAKU,qBAAqB,WAC1BV,EAAKU,qBAAqB,YAC5B,CAEA5S,EAAQmI,kBAAkB,sBAC1BiV,IACApd,EAAQ+M,MAAMmR,mBAAmB/B,EACnC,GACF,CAEA,SAASqC,EAAe7oB,EAAOuL,GAC7B4Y,GAAS,WACP,MAAM3c,EAAO6C,EAAQye,gBAAgBvd,EAAK/D,MAE1C6C,EAAQ+M,MAAMgR,sBAAsB5B,GACpCnc,EAAQuH,iBAAiB,kBACzBvH,EAAQ+M,MAAM2R,gBACZxd,EAAK/D,KACL,WACAA,EAAK+D,KAAKpE,UAGZK,EAAKyV,qBAAqB,YAC1B5S,EAAQmI,kBAAkB,kBAC1BnI,EAAQ+M,MAAMmR,mBAAmB/B,GAGjCgB,GACF,GACF,CAEA,SAASC,IACP,MAAMuB,EAAK3e,EAAQ4b,MAAMgD,SACzB,KAAOD,EAAGE,QAAQ,CAChB,MAAMC,EAAKH,EAAGI,MAAMC,YAAYvlB,OAChC,GAAW,IAAPqlB,GAAYA,EAAK,EAAG,CACtB,MAAMG,EAAKN,EAAGI,MAAMG,OAAON,SAC3BK,EAAGJ,OACH,MAAMM,EAAeF,EAAGF,MACxB,KAAOE,EAAGJ,QACRI,EAAGF,MAAM7W,EAAIiX,EAAajX,EAE5ByW,EAAGI,MAAMK,WAAW,EAAG,EACzB,CACF,CACF,CAEA,SAASC,EAAgB1pB,EAAOuL,GAE9B4Y,GAAS,WACP9Z,EAAQ+M,MAAMgR,sBAAsB5B,GACpCnc,EAAQuH,iBAAiB,iCAEzB,MAAMpK,EAAO6C,EAAQye,gBAAgBvd,EAAK/D,MAC9BlF,MAARkF,IACFA,EAAK+D,KAAK7D,wBACR6D,EAAK/D,KAAKE,wBACZF,EAAKyV,qBAAqB,4BAE5B5S,EAAQmI,kBAAkB,iCAC1BiV,IACApd,EAAQ+M,MAAMmR,mBAAmB/B,EACnC,GACF,CAEA,SAASmD,EAAqB3pB,EAAOuL,GAEnC4Y,GAAS,WACP9Z,EAAQ+M,MAAMgR,sBAAsB5B,GACpCnc,EAAQuH,iBAAiB,+BAEzB,MAAMpK,EAAO6C,EAAQye,gBAAgBvd,EAAK/D,MAC9BlF,MAARkF,IACFA,EAAK+D,KAAKqe,sBAAwBre,EAAK/D,KAAKoiB,sBAC5CpiB,EAAKyV,qBAAqB,0BAE5B5S,EAAQmI,kBAAkB,+BAC1BiV,IACApd,EAAQ+M,MAAMmR,mBAAmB/B,GACjCqD,EAAmB7pB,EAAOuL,GAC1Bue,EAA0B9pB,EAAOuL,EACnC,GACF,CAEA,SAASse,EAAmB7pB,EAAOuL,GAEjC4Y,GAAS,WACP9Z,EAAQ+M,MAAMgR,sBAAsB5B,GACpCnc,EAAQuH,iBAAiB,6BAEzB,MAAMpK,EAAO6C,EAAQye,gBAAgBvd,EAAK/D,MAC9BlF,MAARkF,IACFA,EAAK+D,KAAKwe,oBACRxe,EAAK/D,KAAKuiB,sBACTxe,EAAK/D,KAAKoiB,sBACbpiB,EAAKyV,qBAAqB,wBAE5B5S,EAAQmI,kBAAkB,6BAC1BiV,IACApd,EAAQ+M,MAAMmR,mBAAmB/B,GACjCsD,EAA0B9pB,EAAOuL,EACnC,GACF,CAEA,SAASue,EAA0B9pB,EAAOuL,GAExC4Y,GAAS,WACP9Z,EAAQ+M,MAAMgR,sBAAsB5B,GACpCnc,EAAQuH,iBAAiB,6BAEzB,MAAMpK,EAAO6C,EAAQye,gBAAgBvd,EAAK/D,MAC9BlF,MAARkF,IACFA,EAAK+D,KAAKye,2BACRze,EAAK/D,KAAKwiB,2BACZxiB,EAAKyV,qBAAqB,+BAE5B5S,EAAQmI,kBAAkB,oCAC1BiV,IACApd,EAAQ+M,MAAMmR,mBAAmB/B,EACnC,GACF,CAEA,SAASyD,EAAyBjqB,EAAOuL,GAEvC4Y,GAAS,WACP9Z,EAAQ+M,MAAMgR,sBAAsB5B,GACpCnc,EAAQuH,iBAAiB,gCAEzB,MAAMpK,EAAO6C,EAAQye,gBAAgBvd,EAAK/D,MAC9BlF,MAARkF,IACFA,EAAK+D,KAAK2e,8BACR3e,EAAK/D,KAAK0iB,8BACZ1iB,EAAKyV,qBAAqB,kCAE5B5S,EAAQmI,kBAAkB,gCAC1BiV,IACApd,EAAQ+M,MAAMmR,mBAAmB/B,EACnC,GACF,CAEA,SAAS2D,EAAmBnqB,EAAOuL,GAEjC4Y,GAAS,WACP9Z,EAAQ+M,MAAMgR,sBAAsB5B,GACpCnc,EAAQuH,iBAAiB,sBAEzB,MAAMpK,EAAO6C,EAAQye,gBAAgBvd,EAAK/D,MAC9BlF,MAARkF,IACFA,EAAK+D,KAAK6e,oBAAsB7e,EAAK/D,KAAK4iB,oBAC1C5iB,EAAKyV,qBAAqB,wBAG5B5S,EAAQmI,kBAAkB,sBAC1BiV,IACApd,EAAQ+M,MAAMmR,mBAAmB/B,EACnC,GACF,CAEA,SAAS6D,EAAsBrqB,EAAOuL,GAEpC4Y,GAAS,WACP9Z,EAAQ+M,MAAMgR,sBAAsB5B,GAEpCnc,EAAQuH,iBAAiB,yBAEzBrG,EAAKwJ,MACFmR,QACExiB,GAAqB,aAAfA,EAAEuT,UAA0C,cAAfvT,EAAEuT,WAEvCgB,SAASvU,IACR,MAAM8D,EAAO6C,EAAQigB,eAAe5mB,EAAEkF,KAC1BtG,MAARkF,GACFA,EAAKyV,qBAAqB,cAC5B,IAGJ5S,EAAQmI,kBAAkB,yBAC1BiV,IACApd,EAAQ+M,MAAMmR,mBAAmB/B,EACnC,GACF,CAEA,SAAS+D,EAAgBvqB,EAAOuL,GAE9B4Y,GAAS,WACP9Z,EAAQ+M,MAAMgR,sBAAsB5B,GAEpCnc,EAAQuH,iBAAiB,mBACzB,MAAMpK,EAAO6C,EAAQigB,eAAe/e,EAAK/D,KAAKoB,KAClCtG,MAARkF,IACFA,EAAKyV,qBAAqB,aAC1BzV,EAAKyV,qBAAqB,cAE5B5S,EAAQmI,kBAAkB,mBAC1BiV,IACApd,EAAQ+M,MAAMmR,mBAAmB/B,EACnC,GACF,CAKA,SAASgE,EAAWxqB,EAAOuL,GACzB8b,IAEAlD,GAAS,WACP9Z,EAAQ+M,MAAMgR,sBAAsB5B,GACpCnc,EAAQuH,iBAAiB,cACzB,IAAIpK,EAAO6C,EAAQye,gBAAgBvd,EAAKkf,WAC5BnoB,MAARkF,IACFA,EAAKyV,qBAAqB,QAC1BzV,EAAKyV,qBAAqB,SAC1BzV,EAAKyV,qBAAqB,eAC1BzV,EAAKyV,qBAAqB,YAC1BzV,EAAKyV,qBAAqB,SAC1BzV,EAAKyV,qBAAqB,aAE5B5S,EAAQmI,kBAAkB,cAEJ,OAAlBjH,EAAKmf,WAGPrgB,EAAQ+M,MAAMgR,sBAAsB5B,GAEpCnc,EAAQuH,iBAAiB,kBACzBpK,EAAO6C,EAAQye,gBAAgBvd,EAAKmf,UACxBpoB,MAARkF,IACFA,EAAKyV,qBAAqB,QAC1BzV,EAAKyV,qBAAqB,SAC1BzV,EAAKyV,qBAAqB,eAC1BzV,EAAKyV,qBAAqB,aAE5B5S,EAAQmI,kBAAkB,mBAE5BiV,IACApd,EAAQ+M,MAAMmR,mBAAmB/B,EACnC,GACF,CAEA,SAASmE,EAAe3qB,EAAO4qB,GAG7B,GAFAvgB,EAAQ+M,MAAMgR,sBAAsB5B,GACpCnc,EAAQuH,iBAAiB,WACZ,OAATgZ,GAAmC,SAAlBA,EAAK3T,SAAqB,CAE7C,MAAM4T,EAAUxgB,EAAQye,gBAAgB8B,GAClClL,EAAQmL,EAAQpP,WAAW,SAC3BqP,EAAO,IAAIjmB,EAAU6I,KAAKgS,EAAM/b,MAAO,IAEvConB,EAAc,CAClB9T,SAAU,OACVrI,KAAM,WACNvF,MAAO,OACPkO,GAAIxG,EAAYuH,MAChB0S,SAAS,EACTC,IAAKpmB,EAAU6F,MAAMoB,UACnB,IAAIjH,EAAU6F,MAAMmgB,EAAQrhB,SAAS6I,EAAGwY,EAAQrhB,SAAS+I,EAAI,IAE/DuY,KAAMjmB,EAAU6I,KAAK5B,UAAUgf,GAC/BI,MAAOL,EAAQtf,KAAK2f,OAGtB7gB,EAAQ+M,MAAM+T,YAAYJ,EAC5B,MAAO,GAAa,OAATH,GAAmC,SAAlBA,EAAK3T,SAAqB,CACpD,MAAMmU,EAAqB,CACzBnU,SAAU,OACVrI,KAAM,WACNvF,MAAO,OACPkO,GAAIxG,EAAYuH,MAChB0S,SAAS,EACTF,KAAMjmB,EAAU6I,KAAK5B,UAAU,IAAIjH,EAAU6I,KAAK,GAAI,KACtDwd,MAAON,EAAKhiB,KAEdyB,EAAQ+M,MAAM+T,YAAYC,EAC5B,CACA/gB,EAAQmI,kBAAkB,WAC1BnI,EAAQ+M,MAAMmR,mBAAmB/B,EACnC,CAEA,SAAS6E,EAAerrB,EAAO4qB,GAC7BvgB,EAAQ+M,MAAMgR,sBAAsB5B,GACpCnc,EAAQuH,iBAAiB,cACzB,MAAM0Z,EAAWjhB,EAAQigB,eAAeM,EAAKhiB,KACzC0iB,EAAS3S,YAAYjH,MAAQ,GAC/BrH,EAAQuO,eAAeC,iBAAiByS,EAAS3S,aAAa,GAEhEtO,EAAQzG,OAAO0nB,GACfjhB,EAAQmI,kBAAkB,cAC1BnI,EAAQ+M,MAAMmR,mBAAmB/B,EACnC,CAeA,SAAS+E,EAAOhgB,GACdlB,EAAQuH,iBAAiB,UACzB,MAAM4Z,EAAUC,OAAO,UAAYlgB,EAAK4M,KAAO,QAC/C9N,EAAQ+M,MAAM2R,gBAAgBxd,EAAM,OAAQigB,GAC5CnhB,EAAQmI,kBAAkB,SAC5B,CApxBAnI,EAAQqhB,WAAa7mB,EAAUoM,QAAQ0a,SAEnCjH,EAAMC,aACRta,EAAQkH,YAAa,EACrBlH,EAAQuhB,YAAYC,YAAYC,WAAY,GAG9CzhB,EAAQ0hB,mBAAmB,0BAA0B,SAAU7rB,GAC7D,MAAMmK,EAAUnK,EAAEmK,QACjBnJ,EAAgBmJ,QAAUA,EAC3Bib,EAAUjb,GAEV8Z,GAAS,KAEPriB,QAAQE,IAAI,wDAEZqI,EAAQuH,iBAAiB,kCACzBvH,EAAQ2hB,0BACR3hB,EAAQmI,kBAAkB,kCAE1B1Q,QAAQE,IACN,wDACD,GACA,IACL,IAGAqI,EAAQuhB,YAAYK,aAAaC,mBAAoB,EACrD7hB,EAAQuhB,YAAYO,aAAaD,mBAAoB,EA+BrD7hB,EAAQuhB,YAAYQ,YAAY/O,eAAiB4H,EACjD5a,EAAQuhB,YAAYS,cAAchP,eAAiB4H,EAGnDZ,EAAmBiI,aAAa,OAAQjiB,GAGxCnJ,EAAQqrB,YAAcliB,EAkItBqa,EAAM8H,OAAO,SAAS,SAAUC,GAC9B,MAAMC,EAAWriB,EAAQ+M,MACrBsV,IAAaD,IACXC,GACFA,EAAStE,sBAAsB5B,GAEjCrC,GAAS,WACP6B,EAAqByG,GACrBpiB,EAAQ+M,MAAQqV,CAClB,IACAA,EAASlE,mBAAmB/B,GAEhC,IAMArhB,EAAcwnB,UACZ,wBACAnC,EACA,0BAEFrlB,EAAcwnB,UACZ,oBACA9D,EACA,0BAEF1jB,EAAcwnB,UACZ,2BACAjD,EACA,0BAEFvkB,EAAcwnB,UACZ,6BACAhD,EACA,0BAEFxkB,EAAcwnB,UACZ,4BACAtC,EACA,0BAEFllB,EAAcwnB,UACZ,qBACApC,EACA,0BAEFplB,EAAcwnB,UACZ,+BACAnE,EACA,0BAEFrjB,EAAcwnB,UACZ,uBACAxE,EACA,0BAEFhjB,EAAcwnB,UACZ,oBACAhC,EACA,0BAEFxlB,EAAcwnB,UACZ,mBACAtB,EACA,0BAEFlmB,EAAcwnB,UACZ,2BACA9C,EACA,0BAEF1kB,EAAcwnB,UACZ,mCACA7C,EACA,0BAEF3kB,EAAcwnB,UACZ,+BACA1C,EACA,0BAEF9kB,EAAcwnB,UACZ,4BACAxC,EACA,0BAiBF9f,EAAQ0hB,mBAAmB,2BAA2B,SAAU7rB,GAC9DiF,EAAc0J,QAAQ,kBACxB,IAEAxE,EAAQ0hB,mBAAmB,0BAA0B,SAAU7rB,GAC7D4nB,EAAe5nB,EAAE0sB,QAAQzZ,QAAQ5H,KACnC,IAEAlB,EAAQ0hB,mBAAmB,0BAA0B,SAAU7rB,GAC7DiF,EAAc0J,QAAQ,iBACxB,IAGAxE,EAAQ0hB,mBAAmB,YAAY,SAAU7rB,GAC/CmnB,GACF,IAGAhd,EAAQ0hB,mBAAmB,yBAAyB,SAAU7rB,GAEjC,QAAzBA,EAAEmK,QAAQ+H,SAASya,GACKvqB,MAAxBpC,EAAEmK,QAAQ+H,SAASya,GAEnBrF,GAEJ,IAmBAnd,EAAQ0hB,mBAAmB,gBAAgB,SAAU7rB,GACnDiF,EAAc0J,QAAQ,wBAAyB,CAC7C0N,KAAMrc,EAAE0sB,QACRE,qBAAsB5sB,EAAE6sB,WAE5B,IAGA1iB,EAAQ0hB,mBAAmB,oBAAoB,SAAU7rB,GACvDiF,EAAc0J,QAAQ,wBACxB,IACAxE,EAAQ0hB,mBAAmB,mBAAoB7rB,IAC7CA,EAAE0sB,QAAQ7a,MAAMkD,IACVA,aAAgBpQ,EAAUqF,OAC5BhK,EAAEmK,QAAQ+M,MAAMgR,sBAAsB5B,GACtCtmB,EAAEmK,QAAQ+M,MAAMxF,iBAAiB,yBACjCqD,EAAKgI,qBAAqB,QAC1B/c,EAAEmK,QAAQ+M,MAAM5E,kBAAkB,yBAClCtS,EAAEmK,QAAQ+M,MAAMmR,mBAAmB/B,GACrC,GACA,IAGJnc,EAAQ0hB,mBAAmB,oBAAoB,SAAU7rB,GACvD,MAAM8sB,EAAU3iB,EAAQoH,UAAU0B,QAClC,IAAI8Z,EACFD,aAAmBnoB,EAAUqF,KAAO8iB,EAAQzhB,KAAO,KACjDoc,GAAY,EAiChB,GA/BAtd,EAAQ+M,MAAME,iBAAmB2V,EAM/B5iB,EAAQ+M,MAAMC,mBACdhN,EAAQ+M,MAAMS,uBAEdxN,EAAQ+M,MAAME,iBAAiBe,iBAC7BhO,EAAQ+M,MAAMC,kBAChBhN,EAAQ+M,MAAME,iBAAiB4V,kBAC7B7iB,EAAQ+M,MAAMI,0BACTnN,EAAQ+M,MAAME,iBAAiByD,WACtC1Q,EAAQ+M,MAAMS,sBAAuB,GAIrB,OAAhBoV,SACAD,GAGI1I,EAAO6I,SAASH,EAAQ/V,SAAS/O,cAAe,aAKlDyf,GAAY,GAIG,MAAfsF,IACFA,EACED,aAAmBnoB,EAAUoN,KAAO+a,EAAQzhB,KAAO,KACjD0hB,GAAa,CACf5iB,EAAQ+M,MAAME,iBAAmB2V,EAEjC,MAAM1Q,EAAOlS,EAAQue,gBAAgBqE,IAEX,IAAxBA,EAAYvR,SACZa,GAC2B,qBAA3BA,EAAKrF,SAASD,SAEdgW,EAAYhW,SAAW,OAEvBgW,EAAYhW,SAAW,EAE3B,CAGFmQ,GAAe,EAAMO,EACvB,IAEAtd,EAAQuhB,YAAYwB,eAAeC,SACjC,EACAhJ,EAAmBiJ,uBA2VrB5I,EAAM6I,IAAI,YAAY,SAAUvtB,EAAOwtB,GAE9B,WADCA,EAAUC,OAEdlC,EAAOiC,EAAUjiB,MACjBvL,EAAM0tB,iBAGZ,IAWAhJ,EAAM6I,IAAI,cAAc,SAAUvtB,EAAOuL,GACvC,OAAQA,GACN,IAAK,OACHlB,EAAQuO,eAAe+U,gBACvB3tB,EAAM0tB,iBACN,MAEF,IAAK,QACHrjB,EAAQuO,eAAegV,iBACvB5tB,EAAM0tB,iBACN,MAEF,IAAK,MACHrjB,EAAQuO,eAAeiV,eACvB7tB,EAAM0tB,iBACN,MAEF,IAAK,SACHrjB,EAAQuO,eAAeF,kBACvB1Y,EAAM0tB,iBACN,MAEF,IAAK,YACHrjB,EAAQuO,eAAekV,YACvB9tB,EAAM0tB,iBACN,MAEF,IAAK,OACHrjB,EAAQuO,eAAemV,OACvB/tB,EAAM0tB,iBACN,MAEF,IAAK,OACHrjB,EAAQuO,eAAeoV,OACvBhuB,EAAM0tB,iBACN,MAEF,IAAK,YACHrjB,EAAQuO,eAAejH,YACvB3R,EAAM0tB,iBACN,MAEF,IAAK,aACHrjB,EAAQuO,eAAenG,aACvBzS,EAAM0tB,iBACN,MAEF,IAAK,WACHrjB,EAAQuO,eAAe9F,WACvB9S,EAAM0tB,iBACN,MAEF,IAAK,cACHrjB,EAAQuO,eAAe7F,cACvB/S,EAAM0tB,iBACN,MAEF,IAAK,eACHrjB,EAAQuO,eAAe3F,eACvBjT,EAAM0tB,iBACN,MAEF,IAAK,eACHrjB,EAAQuO,eAAevF,eACvBrT,EAAM0tB,iBAGZ,GAGF,EAEJ,GACC,G,mMCh5BH,aAAa,mDAab,SAASO,EAAmBppB,EAAWE,EAAgBqf,GAGrD,MAAM8J,EAAY,IACZC,EAAa,GAEbC,EAA4C,CAAC,EASnD,MAPgB,CACdC,WAAYA,EACZtJ,gBAAiBA,EACjBuH,aAAcA,EACdgB,oBAAqBA,EACrBgB,gBAAiBA,GASnB,SAASvJ,IAsBP,MArBgB,CAEdwJ,gBAAiBnK,EAAYoK,qBAC7BC,gBAAiBrK,EAAYsK,qBAC7BC,iBAAkBvK,EAAYwK,sBAC9BC,WAAW,EACX3f,MAAOnK,EAAe+c,aACtBgN,SAAU/pB,EAAegd,gBACzBgN,SAAUhqB,EAAeid,gBACzBpJ,eAAgBwL,EAAYpT,wBAC5Bob,YAAahI,EAAY7K,qBAEzB,kCAAmC,OAEnCyV,WAAW,EACX,yBAAyB,EACzB,8BAA8B,EAC9B,8BAA8B,EAC9B,4BAA6B,IAC7BC,WAAYpqB,EAAUoM,QAAQie,eAGlC,CAKA,SAASb,EAAWzlB,GAClB,OAAOwlB,EAASxlB,EAClB,CAKA,SAAS0jB,EAAa1jB,EAAayB,GACjC+jB,EAASxlB,GAAOyB,CAClB,CAIA,SAASijB,IAkEP,OAjEAzoB,EAAUoM,QAAQC,QAAQie,EAAkBtqB,EAAUuqB,cAEtDD,EAAiB9d,UAAUge,cAAgB,WACzC,OAAOrsB,KAAKssB,OAAOxiB,YAAcjI,EAAUiG,KAAKkF,KAClD,EAGAmf,EAAiB9d,UAAUke,eAAiB,WAC1C,MAAM3E,EAAO5nB,KAAKwsB,cAAcva,KAE1Bwa,EAAMC,EAAmB9E,GAC/B,GAAI5nB,KAAKqsB,gBAAiB,CAExB,MAAMM,EAAKC,EAAmBhF,EAAK5O,iBACnCyT,EAAI9rB,MAAQuO,KAAKW,IAAI4c,EAAI9rB,MAAOgsB,EAAGhsB,MACrC,KAAO,CAEL,MAAMgsB,EAAKE,EAAgBjF,GAC3B6E,EAAI9rB,MAAQuO,KAAKW,IAAI4c,EAAI9rB,MAAOgsB,EAAGhsB,OACnC8rB,EAAI3rB,OAASoO,KAAKW,IAAI4c,EAAI3rB,OAAQ6rB,EAAG7rB,OACvC,CACA,OAAO2rB,CACT,EAGAN,EAAiB9d,UAAUye,SAAW,WACpC,IAAKjrB,EAAUuqB,aAAa/d,UAAUye,SAASlb,KAAK5R,MAAO,OAAO,EAGlE,MAAMqH,EAAU+jB,EAAe,KAC/B,GAAgB,OAAZ/jB,EAAkB,OAAO,EAC7B,MAAM0lB,EAAQ/sB,KAAKgtB,iBACjB3lB,EAAQ4lB,WAAWC,cACnBltB,KAAK6J,MAEP,OACY,OAAVkjB,GACe,OAAfA,EAAM9a,MACuB,OAA7B8a,EAAM9a,KAAKua,eACuB,OAAlCO,EAAM9a,KAAKua,cAAcva,MAGuB,SAA3C8a,EAAM9a,KAAKua,cAAcva,KAAKgC,QACvC,EAGAkY,EAAiB9d,UAAU8e,OAAS,SAAUC,GAC5C,MAAMxF,EAAO5nB,KAAKwsB,cAAcva,KAC5BjS,KAAKqsB,gBAEPzE,EAAK5O,gBAAgBrD,YAAY5G,MAAK,SAAU6Y,GAC9C,KAAMA,aAAgB/lB,EAAUwP,OAAQ,OACxC,MAAMqL,EAAQkL,EAAKyF,aACL,OAAV3Q,IAEFA,EAAM/b,MAAQysB,EAAKzsB,MAEvB,IAGAkB,EAAUuqB,aAAa/d,UAAU8e,OAAOvb,KAAK5R,KAAMotB,GAErD9B,GACF,EAEO,IAAIa,CACb,CAEA,SAASb,IACP,MAAMgC,EAAYlC,EAAe,KACjCkC,EAAUjI,OAAOC,mBACjBgI,EAAUC,qBAAqBxe,MAAK,SAAUye,GACzB,SAAfA,EAAEvZ,UAAqBuZ,EAAEnI,OAAOC,kBACtC,IACAgI,EAAUG,eACZ,CAGA,SAAStB,IACPtqB,EAAUuqB,aAAaxa,KAAK5R,KAC9B,CAGA,SAAS4sB,EAAmB9L,GAE1B,IAAI4M,EAAMxC,EAUV,OATApK,EAAKnL,YAAY5G,MAAK,SAAU6Y,GAE9B,KAAMA,aAAgB/lB,EAAUwP,OAAQ,OACxC,MAAMsc,EAAS/F,EAAKgG,YACpB,GAAe,OAAXD,EAAiB,CACnB,MAAMhB,EAAKgB,EAAO/d,aAClB8d,EAAMxe,KAAKW,IAAI6d,EAAKf,EAAGhsB,MACzB,CACF,IACO,IAAIkB,EAAU6I,KAAKgjB,EAAKG,IACjC,CAGA,SAAShB,EAAgBjF,GAEvB,MAAM+E,EAAKD,EAAmB9E,GAC9B,GAAIA,EAAKkG,mBAAoB,CAC3B,MAAMH,EAAS/F,EAAKgG,YACpB,GAAe,OAAXD,EAAiB,CACnB,MAAMI,EAAMJ,EAAO/d,aACnB+c,EAAG7rB,OAASoO,KAAKW,IAAI8c,EAAG7rB,OAAQitB,EAAIjtB,OACtC,CACF,CAEA,MAAMktB,EAAMpG,EAAKnP,WAAW,UAE5B,OADY,OAARuV,IAAcrB,EAAG7rB,OAASoO,KAAKW,IAAI8c,EAAG7rB,OAAQktB,EAAIpe,aAAa9O,SAC5D6rB,CACT,CAGA,SAASD,EAAmB9E,GAC1B,OAAKA,EAAKkG,mBACH,IAAIjsB,EAAU6I,KAAKwgB,EAAWC,GADA,IAAItpB,EAAU6I,KAAKwgB,EAAW,EAErE,CACF,EArMa,QAObntB,QACGC,OAAO,0BACPqB,QAAQ,qBAAsB4rB,GAEjCA,EAAmB7U,QAAU,CAAC,YAAa,iBAAkB,cA0L5D,G,8MCnMD,aAAa,mDAcb,SAAS6X,EACPpsB,EACAC,EACAC,EACAC,GAEA,MAAM+E,EAAMlF,EAAUmF,YAAYC,KAI5B3E,EAAW,CACf2c,cAAeld,EAAekd,cAC9BC,mBAAoBnd,EAAemd,mBACnCgP,oBAAqB,GACrBC,qBAAsBpsB,EAAe+d,cACrCsO,oBAAqBrsB,EAAeod,qBACpCkP,0BAA2BtsB,EAAeie,iBAC1CsO,6BAA8BvsB,EAAeke,eAC7CsO,+BAAgCxsB,EAAeod,qBAC/CS,qBAAsB7d,EAAe6d,qBACrCC,4BAA6B9d,EAAe8d,4BAC5C2O,0BAA2BzsB,EAAe6d,qBAC1CG,qBAAsBhe,EAAege,sBAOvC,MAJgB,CACdnc,QAASA,EACTG,eAAgBA,GAMlB,SAASH,EAAQC,GAGf,OAFA9F,EAAAA,QAAQ+B,OAAOwC,EAAUuB,GAElB4qB,EAAa1sB,EAAeye,SAAS,EAC9C,CAEA,SAASzc,EAAeF,GAGtB,OAFA9F,EAAAA,QAAQ+B,OAAOwC,EAAUuB,GAElB6qB,GACT,CAIA,SAASA,EAAgBxiB,EAAQyiB,GAC/B,MAAM5nB,EAAMlF,EAAUmF,YAAYC,KAElC,OAAOF,EACLlF,EAAU6b,KACV7b,EAAUkH,MAAMZ,SAChB,CAAExH,MAAOoB,EAAeuL,QAAQG,WAAYxF,kBAAkB,GAC9DlB,EACElF,EAAUmK,QACV,CACEnC,KAAM,OACN8R,YAAc3Z,EAAkBqK,mBAK5B,IAAIxK,EAAU6I,KACZ3I,EAAeuL,QAAQC,OAAOvQ,MAAMyQ,WACpC1L,EAAeuL,QAAQC,OAAOvQ,MAAM4Q,aANtC,IAAI/L,EAAU6I,KACZ3I,EAAeuL,QAAQI,KAAKD,WAC5B1L,EAAeuL,QAAQI,KAAKE,aAMlC1B,MAAQlK,EAAkBqK,mBAEtBtK,EAAeuL,QAAQC,OAAOvQ,MAAMkP,MADpC,GAGN,IAAIrK,EAAU8G,QAAQ,SAAU,QAASwM,IACvC,OAAQA,EAAKjQ,eACX,IAAK,QACH,MAAOkH,2BACT,IAAK,MACH,MAAOA,yBACT,QACE,MAAM,IAAItG,MAAM,yBAA2BqP,GAAM,KAKzDrT,EAAiBmL,aACf,YACA3N,EACAyC,EAAe6b,kBACf,QAGN,CAgBA,SAAS6Q,EAAaviB,EAAOyiB,EAAcC,GAOzC,OANIA,GACF9vB,QAAQ+vB,KACN,0FAIG9nB,EACLlF,EAAUqF,KACV,WACA,CACEsW,mBAAoB,OACpB3V,aAAchG,EAAUiG,KAAKC,OAC7BE,iBAAkB0mB,EAClBtmB,WAAY,SAAUnL,EAAGsH,GACvBxC,EAAkBwG,SAAShE,EAAM,gBACnC,EACAiE,WAAY,SAAUvL,EAAGsH,GACvBxC,EAAkB0G,SAASlE,EAAM,gBACnC,GAEF,IAAI3C,EAAU8G,QACZ,WACA,MACA9G,EAAU6F,MAAMkB,OAChBC,WAAWhH,EAAU6F,MAAMoB,WAE7B,IAAIjH,EAAU8G,QAAQ,YAAa,cAAc,SAAUzE,GACzD,OAAOA,EAAI,aAAe,EAC5B,IAAGuV,WAEH1S,EACElF,EAAUkH,MACV,OACAhC,EACElF,EAAUmK,QACV,CACEnC,KAAM,OACNlJ,MAAOoB,EAAesF,QAAQqG,KAAKD,WACnC3M,OAAQiB,EAAesF,QAAQqG,KAAKE,YACpCtE,OAAQ,GACRF,cAAc,EACdC,YAAY,EACZjB,OAAQ,UACRqB,SAAU5H,EAAUiG,KAAK4B,UACzBC,OAAQ9H,EAAUiG,KAAK8B,UAEzB,IAAI/H,EAAU8G,QAAQ,SAAU,QAASwM,IACvC,OAAQA,EAAKjQ,eACX,IAAK,QACH,MAAOkH,2BACT,IAAK,MACH,MAAOA,yBACT,QACE,MAAM,IAAItG,MAAM,yBAA2BqP,GAAM,KAIzDpO,EAAIlF,EAAUmH,MAAO,SAAU,CAC7BC,KAAM,cACNC,OAAQ,KACRvI,MAAOoB,EAAesF,QAAQqG,KAAKD,WAAa,EAChD3M,OAAQiB,EAAesF,QAAQqG,KAAKE,YAAc,EAClD/D,KAAM,UACNilB,UAAU,IAEZ/nB,EAAIlF,EAAUmH,MAAO,SAAU,CAC7BC,KAAM,cACNC,OAAQ,KACRd,OAAQ,OACRzH,MAAOoB,EAAesF,QAAQqG,KAAKD,WAAa,GAChD3M,OAAQiB,EAAesF,QAAQqG,KAAKE,YAAc,QAEhD5L,EAAkBsG,4BAClB,CACEtG,EAAkB+K,SAChB,gBACAlL,EAAUiG,KAAKkF,MACf,IAAInL,EAAUiG,KAAK,EAAG,GAAK,GAAK,KAGpC,IAGNhG,EAAiBmL,aACf,YACA3N,EACAyC,EAAe6b,kBACf,OACA,+BACAte,EACAyC,EAAeqe,gBAEjB,CAAEjT,MAAOnL,EAAkBoL,kBAE/B,CACF,EAxNa,QAGbrP,QACGC,OAAO,0BACPqB,QAAQ,uBAAwB4uB,GAEnCA,EAAqB7X,QAAU,CAC7B,YACA,mBACA,iBACA,oBA6MD,G,oKCxND,aAAa,mDAiBb,SAAS2Y,EACPltB,EACAC,EACAC,EACAC,EACAE,EACAD,GAGA,MAAM+sB,EAAyB,CAC7BnlB,KAAM,OACNlJ,MAAOoB,EAAesF,QAAQ0Z,YAAYlU,WAC1C/L,OAAQiB,EAAesF,QAAQ0Z,YAAYjU,YAC3CxD,OAAQ,GACRF,cAAc,EACdC,YAAY,EACZjB,OAAQ,UACRqB,SAAU5H,EAAUiG,KAAKmnB,YACzBtlB,OAAQ9H,EAAUiG,KAAKonB,YAGnBC,EAAwB,UACxBC,EAA6B,UAE7BroB,EAAMlF,EAAUmF,YAAYC,KAC5B3E,EAAW,CACf+sB,oBAAqBttB,EAAeS,kBACpC8c,gBAAiB,GACjBgQ,sBAAuB,GACvB/P,gBAAiBxd,EAAewd,gBAChCC,kBAAmB2P,EACnB1P,uBAAwB1d,EAAe0d,uBACvCC,8BAA+B3d,EAAe2d,8BAC9C6P,wBAAyBxtB,EAAeyd,kBACxCgQ,sBAAuBztB,EAAewd,gBACtCkQ,uBAAwBL,EACxBM,6BAA8B,KAG1BC,EAAsB,CAC1B1mB,KAAM,cACNC,OAAQ,KACRd,OAAQ,OACRzH,MAAOoB,EAAesF,QAAQ0Z,YAAYlU,WAAa,GACvD/L,OAAQiB,EAAesF,QAAQ0Z,YAAYjU,YAAc,IAM3D,MAJgB,CACdlJ,QAASA,EACTG,eAAgBA,GAMlB,SAASH,EAAQqQ,EAAUpQ,GAGzB,OAFA9F,EAAAA,QAAQ+B,OAAOwC,EAAUuB,GAEjBoQ,GACN,KAAKhS,EAAmBsT,aAAa+C,kBACnC,OAAOsX,IAET,KAAK3tB,EAAmBsT,aAAasa,gBACnC,OAAOC,IAET,KAAK7tB,EAAmBsT,aAAaC,iBACnC,OAAOua,IAET,QACE,OAAOC,IAEb,CAKA,SAASvqB,EAAeC,GAEtB,OADiBxD,EAA+ByD,UAAUD,EAAYE,KAElE7D,EAAe8D,MAAMC,MAAMC,OAAOC,MAClCjE,EAAec,kBACrB,CAKA,SAASoD,EAAeP,GAEtB,OADiBxD,EAA+ByD,UAAUD,EAAYE,KAElE7D,EAAe8D,MAAMC,MAAMC,OAAOI,YAAc,EAChD,CACN,CAEA,SAAS8pB,IACP,OAAOlpB,EACLlF,EAAUmH,MACV,SACA,CACEC,KAAM,QACNC,OAAQ,UACRC,YAAa,EACbU,KAAM,WAIR,IAAIhI,EAAU8G,QAAQ,SAAU,GAAIlD,GACpC,IAAI5D,EAAU8G,QAAQ,cAAe,GAAI1C,GAE7C,CAEA,SAASiqB,IAAgC,IAAXC,EAAO,UAAH,6CAAG,CAAC,EACpC,OAAOppB,EACLlF,EAAUkH,MACV,OAGAknB,IACAlpB,EACElF,EAAUkH,MACV,OACAhC,EAAIlF,EAAUmK,QAAS,IAClBgjB,KACAmB,EACHhkB,OAAQC,gCAEVrF,EAAIlF,EAAUmH,MAAO,UAAW,IAC3B2mB,QAGH3tB,EAAkBsG,4BAClB,CACEtG,EAAkB+K,SAChB,gBACAlL,EAAUiG,KAAKkF,MACf,IAAInL,EAAUiG,KAAK,EAAG,GAAK,GAAK,KAGpC,GAER,CAEA,SAASsoB,IAA+B,IAAXD,EAAO,UAAH,6CAAG,CAAC,EACnC,OAAOppB,EACLlF,EAAUkH,MACV,OAGAknB,IACAlpB,EACElF,EAAUkH,MACV,OACAhC,EAAIlF,EAAUmK,QAAS,IAClBgjB,KACAmB,EACHhkB,OAAQC,+BAEVrF,EAAIlF,EAAUmH,MAAO,UAAW,IAC3B2mB,QAGH3tB,EAAkBsG,4BAClB,CACEtG,EAAkB+K,SAChB,gBACAlL,EAAUiG,KAAKkF,MACf,IAAInL,EAAUiG,KAAK,EAAG,GAAK,GAAK,KAGpC,GAER,CAEA,SAASuoB,IAA6B,IAAXF,EAAO,UAAH,6CAAG,CAAC,EACjC,OAAOppB,EACLlF,EAAUkH,MACV,OAGAknB,IACAlpB,EACElF,EAAUkH,MACV,OACAhC,EAAIlF,EAAUmK,QAAS,IAClBgjB,KACAmB,EACHhkB,OAAQC,6BAEVrF,EAAIlF,EAAUmH,MAAO,UAAW,IAC3B2mB,QAGH3tB,EAAkBsG,4BAClB,CACEtG,EAAkB+K,SAChB,gBACAlL,EAAUiG,KAAKkF,MACf,IAAInL,EAAUiG,KAAK,EAAG,GAAK,GAAK,KAGpC,GAER,CAMA,SAAS/D,EAAeF,EAASysB,EAAoBC,GAEnD,OADAxyB,EAAAA,QAAQ+B,OAAOwC,EAAUuB,GAClB2sB,EAAsBF,EAAoBC,EACnD,CAWA,SAASP,IAoDP,OAnD4BjpB,EAC1BlF,EAAUqF,KACV,WACA,CACEsW,mBAAoB,OACpB3V,aAAchG,EAAUiG,KAAKC,QAG/B,IAAIlG,EAAU8G,QACZ,WACA,MACA9G,EAAU6F,MAAMkB,OAChBC,WAAWhH,EAAU6F,MAAMoB,WAE7B,IAAIjH,EAAU8G,QAAQ,YAAa,cAAc,SAAUzE,GACzD,OAAOA,EAAI,aAAe,EAC5B,IAAGuV,WAEH,CAAEzR,WAAW,EAAOyoB,iBAAkB,SACtC1pB,EACElF,EAAUkH,MACV,OACAhC,EACElF,EAAUmH,MACV,UACA,CACEG,YAAa7G,EAASmd,uBACtBxW,KAAM3G,EAASid,gBACfrW,OAAQ5G,EAASkd,kBACjB3V,KAAM,QACN8R,YAAa,IAAI9Z,EAAU6I,KACzBpI,EAASgd,gBACThd,EAASgd,iBAEXhW,OAAQ,GACRF,cAAc,EACdC,YAAY,EACZjB,OAAQ,UACRqB,SAAU5H,EAAUiG,KAAKmnB,YACzBtlB,OAAQ9H,EAAUiG,KAAKonB,YAEzB,IAAIrtB,EAAU8G,QACZ,cACA,OACA9G,EAAU6I,KAAK9B,OACfC,WAAWhH,EAAU6I,KAAK5B,aAGhChH,EAAiBmL,aAAa,QAIlC,CAGA,SAAS2iB,IAuCP,OAtC4B7oB,EAC1BlF,EAAUqF,KACV,WACA,CACEsW,mBAAoB,OACpB3V,aAAchG,EAAUiG,KAAKC,OAC7BM,WAAY,SAAUnL,EAAGsH,GACvB,CAAC,iBAAiByQ,SAAS4G,GACzB7Z,EAAkBwG,SAAShE,EAAMqX,IAErC,EACApT,WAAY,SAAUvL,EAAGsH,GACvB,CAAC,iBAAiByQ,SAAS4G,GACzB7Z,EAAkB0G,SAASlE,EAAMqX,IAErC,EACA6U,UAAW,cAEb,IAAI7uB,EAAU8G,QACZ,WACA,MACA9G,EAAU6F,MAAMkB,OAChBC,WAAWhH,EAAU6F,MAAMoB,WAE7B,CAAEd,WAAW,EAAOyoB,iBAAkB,SACtCP,IACApuB,EAAiBmL,aACf,QACA,OACA3N,EACA,YACAA,GACA,EACAyC,EAAe4d,kBAEjB,CAAExS,MAAOnL,EAAkBoL,kBAI/B,CAEA,SAASujB,EAAsBC,EAAkBC,GAC/C,OAAO9pB,EACLlF,EAAUqF,KACV,WACA,CACEsW,mBAAoB,OACpB3V,aAAchG,EAAUiG,KAAKC,OAC7BoF,MAAOnL,EAAkBoL,iBACzB/E,WAAY,SAAUnL,EAAGsH,GACvB,CAAC,iBAAiByQ,SAAS4G,GACzB7Z,EAAkBwG,SAAShE,EAAMqX,IAErC,EACApT,WAAY,SAAUvL,EAAGsH,GACvB,CAAC,iBAAiByQ,SAAS4G,GACzB7Z,EAAkB0G,SAASlE,EAAMqX,IAErC,EACA6U,UAAW,cAGbE,EAEA9uB,EAAiBmL,aACf,QACA,OACA3N,EACA,YACAA,EACAuxB,EACA9uB,EAAe4d,kBAGjB,IAAI9d,EAAU8G,QACZ,WACA,MACA9G,EAAU6F,MAAMkB,OAChBC,WAAWhH,EAAU6F,MAAMoB,WAEjC,CAEA,SAASgnB,IACP,OAAOa,EAAsBP,KAAuB,EACtD,CAEA,SAASL,IACP,OAAOY,EAAsBN,KAAqB,EACpD,CAEA,SAASG,EAAsBF,EAAoBC,GACjD,IAAIO,EAWJ,OATEA,EADER,EACSlkB,8BAEPmkB,EACSnkB,2BAEAA,6BAIRtK,EAAiBuL,YACtBtG,EAAIlF,EAAUmK,QAAS,CACrBG,OAAQ2kB,EACRnwB,MAAQqB,EAAkBqK,mBAEtBtK,EAAeuL,QAAQC,OAAOsT,QAAQpT,WADtC1L,EAAeuL,QAAQI,KAAKD,WAEhC3M,OAASkB,EAAkBqK,mBAEvBtK,EAAeuL,QAAQC,OAAOsT,QAAQjT,YADtC7L,EAAeuL,QAAQI,KAAKE,YAEhC1B,MAAQlK,EAAkBqK,mBAEtBtK,EAAeuL,QAAQC,OAAOsT,QAAQ3U,MADtC,IAIV,CACF,EA3Za,QAIbnO,QACGC,OAAO,0BACPqB,QAAQ,yBAA0B0vB,GAErCA,EAAuB3Y,QAAU,CAC/B,YACA,mBACA,iBACA,oBACA,iCACA,qBA6YD,O,+NC3ZD,aAAa,mDAUb,SAAS2a,EACPlvB,EACA3D,EACA8D,GAMA,MAJgB,CACd4B,QAASA,EACTG,eAAgBA,GAMlB,SAASH,EAAQC,GAGf,OAAOmtB,GACT,CAMA,SAASjtB,EAAeF,GAGtB,OAAOotB,GACT,CAIA,SAASC,IAEP,MAAO,CACL,CACE9oB,OAAO,OACPsoB,UAAW,aACXrmB,WAAY,cACZ8mB,SAAS,EACTC,UAAU,EACVC,WAAW,GAEb,IAAIxvB,EAAU8G,QACZ,WACA,MACA9G,EAAU6F,MAAMkB,OAChBC,WAAWhH,EAAU6F,MAAMoB,WAEjC,CAGA,SAASwoB,EAAqBpJ,GAC5BA,EAAMqJ,6BAA6BxiB,MAAK,SAAUoU,GAChDA,EAAEzK,QAAUyK,EAAEjP,SAASjT,aAAekiB,EAAEhP,OAAOlT,WACjD,GACF,CAEA,SAASqqB,EAAgBkG,GACvB,MAAMlE,OAC2B,IAAxBpvB,EAAQqrB,YAA8BiI,EAAMtzB,EAAQqrB,YAC7D+D,EAAUjI,OAAOC,mBACjBgI,EAAUC,qBAAqBxe,MAAK,SAAUye,GACzB,SAAfA,EAAEvZ,UAAqBuZ,EAAEnI,OAAOC,kBACtC,IACAgI,EAAUG,eACZ,CAEA,SAASuD,IACP,MAAMjqB,EAAMlF,EAAUmF,YAAYC,KAE5BwqB,EAAmB1qB,EACvBlF,EAAUwP,MACV,OACA6f,IACA,CACErnB,KAAM,OACN6nB,YAAa,KACbC,YAAa,IAAI9vB,EAAU6F,MAAMmmB,KAAK,KACtC+D,YAAa,IAAI/vB,EAAU6F,MAAMmmB,IAAK/e,KACtC+iB,oBAAqB,QACrB7pB,WAAW,EACXyoB,iBAAkB,QAElBpoB,WAAY,SAAUnL,EAAG40B,GACvBA,EAAI7f,KAAKkf,SAAU,CACrB,EACA1oB,WAAY,SAAUvL,EAAG40B,GACvBA,EAAI7f,KAAKkf,SAAU,CACrB,EAEA9L,OAAQte,EACNlF,EAAUkwB,qBACV,CACEC,WAAW,EACXC,WAAW,EACX/X,UAAW,EACXgY,cAAe,GACfC,eACEtwB,EAAUkwB,qBAAqBK,yBAGrCC,yBAAyB,EACzBC,8BAA8B,EAC9BC,iCAAiC,EACjCC,2BAA2B,EAC3BC,UAAW,SAAUv1B,EAAGw1B,GAKnBx1B,EAAEmK,QAAQoH,UAAUkkB,KAAI,SAAUjyB,GACjC,OACGA,aAAamB,EAAUwP,OAAwB,eAAf3Q,EAAEuT,UACpB,mBAAfvT,EAAEuT,QAEN,MAEWye,EAAIE,WAAWF,EAAIrrB,QAAQoH,WAAW,IAE/C6iB,EAAqBoB,GACrBpH,EAAgBoH,EAAIrrB,UAEpBqrB,EAAIrrB,QAAQwrB,YAAYC,WAG9B,EACAC,wBAAyB,SAAUL,GACjC,MAAMM,EAAMN,EAAIrF,aACZqF,EAAIrrB,QAAQ4rB,YAAYC,mBACxBR,EAAI5E,mBACNkF,EAAIlyB,OAAS4xB,EAAIS,eAEjBT,EAAIS,cAAgBH,EAAIlyB,OACxBkyB,EAAIlyB,OAAS+sB,KAEfyD,EAAqBoB,GACvB,GAGF3rB,EACElF,EAAUmH,MACV,YACA,CAAEa,KAAM,QAASZ,KAAM,QAASC,OAAQ,MACxC,IAAIrH,EAAU8G,QAAQ,OAAQ,SAC9B,IAAI9G,EAAU8G,QACZ,cACA,OACA9G,EAAU6I,KAAK9B,OACfC,WAAWhH,EAAU6I,KAAK5B,YAG9B/B,EACElF,EAAUkH,MACV,aACA,CACEc,KAAM,SACNC,UAAWjI,EAAUiG,KAAKsrB,QAC1BrY,eAAgBlZ,EAAUiG,KAAKsrB,SAEjCrsB,EAAI,yBAA0B,CAC5BkD,OAAQ,EACRtJ,MAAO,GACPG,OAAQ,MAIZiG,EACElF,EAAUkH,MACV,aACA,CACEc,KAAM,SACNC,UAAWjI,EAAUiG,KAAKurB,WAC1BtY,eAAgBlZ,EAAUiG,KAAKurB,YAEjCtsB,EACElF,EAAU8I,UACV,CACEK,UAAU,EACVM,WAAYtJ,EAAkBuJ,qBAC9BtB,OAAQ,IAAIpI,EAAUqI,OAAO,EAAG,EAAG,EAAG,GACtCvJ,MAAO,KAET,IAAIkB,EAAU8G,QAAQ,UAAW,sBAAsB8Q,WACvD,IAAI5X,EAAU8G,QAAQ,OAAQ,QAAQE,aACtC,IAAIhH,EAAU8G,QAAQ,OAAQ,YAAY,SAAUzE,GAClD,MAAO,UAAYA,EAAI,eACzB,MAGJ6C,EAAIlF,EAAUyxB,YAAa,CACzBC,QAAS,GACTzpB,UAAWjI,EAAUiG,KAAKsrB,QAC1BrY,eAAgBlZ,EAAUiG,KAAKsrB,UAEjCrsB,EACElF,EAAUkH,MACV,aACA,CACEe,UAAWjI,EAAUiG,KAAKsrB,QAC1BrY,eAAgBlZ,EAAUiG,KAAKsrB,SAEjCrsB,EACElF,EAAU8I,UACV,CACEd,KAAM,QACNmB,UAAU,EACV0N,SAAS,EACTzO,OAAQ,IAAIpI,EAAUqI,OAAO,EAAG,EAAG,EAAG,KAExC,IAAIrI,EAAU8G,QAAQ,UAAW,sBAAsB,SAAUzL,GAC/D,OAAQA,CACV,IAAGuc,WACH,IAAI5X,EAAU8G,QAAQ,OAAQ,QAAQE,eAG1C,CAAEsE,MAAOnL,EAAkBoL,mBAmC7B,OAhCAqkB,EAAiB+B,wBAA0BzsB,EACzClF,EAAU4xB,UACV,OACA1sB,EAAIlF,EAAUyxB,aACdvsB,EACElF,EAAUmH,MACV,CACEc,UAAWjI,EAAUiG,KAAKkF,MAC1B2O,YAAa,IAAI9Z,EAAU6I,KAAK,EAAG,IACnCzB,KAAM,YACNC,OAAQ,aACRd,OAAQ,cAEV,IAAIvG,EAAU8G,QAAQ,UAAW,IAAI,SAAUuM,GAC7C,OAAOA,EAAGwe,YAAY5F,kBACxB,IAAGrU,YAEL1S,EACElF,EAAUmH,MACV,CACEc,UAAWjI,EAAUiG,KAAK6rB,OAC1BhY,YAAa,IAAI9Z,EAAU6I,KAAK,GAAI,GACpCzB,KAAM,YACNC,OAAQ,aACRd,OAAQ,cAEV,IAAIvG,EAAU8G,QAAQ,UAAW,IAAI,SAAUuM,GAC7C,OAAOA,EAAGwe,YAAY5F,kBACxB,IAAGrU,aAIAgY,CACT,CAEA,SAASR,IAKP,OAFgClqB,EAFpBlF,EAAUmF,YAAYC,MAEEpF,EAAUwP,MAAO,WAGvD,CACF,EA9Qa,QAGbtT,QACGC,OAAO,0BACPqB,QAAQ,sBAAuB0xB,GAElCA,EAAoB3a,QAAU,CAAC,YAAa,UAAW,oBAuQtD,G,mMCvRD,aAAa,mDAQb,SAASwd,EACP1S,EACAC,EACAtf,GAMA,MAJgB,CACdgyB,oBAAqBA,EACrBC,qBAAsBA,GAIxB,SAASD,IACP,MAAM9sB,EAAMlF,EAAUmF,YAAYC,KAkClC,OAhCyBF,EACvBlF,EAAU4xB,UACV,WAmBA1sB,EACE,oBACAA,EAAIlF,EAAU8I,UAAW,SAAU,CAAEV,OAAQ,IAC7C,CACEkD,MAAO,SAAUjQ,EAAG40B,GAClBiC,EAAa,SAAUjC,EAAI7f,KAAK1J,KAClC,IAMR,CAEA,SAASurB,IACP,MAAM/sB,EAAMlF,EAAUmF,YAAYC,KAgBlC,OAdEF,EACElF,EAAU4xB,UACV,WACA1sB,EACE,oBACAA,EAAIlF,EAAU8I,UAAW,gBAEzB,CACEwC,MAAO,SAAUjQ,EAAG40B,GAClBiC,EAAa,4BAA6BjC,EAAI7f,KAAKua,cACrD,IAKV,CAGA,SAASuH,EAAatJ,EAAMliB,GAE1B4Y,GAAS,WAEPD,EAAW8S,WAAW,WAAY,CAAEvJ,KAAM,SAAUliB,KAAMA,GAC5D,GAAG,EACL,CACF,EArFa,QAEbxK,QACGC,OAAO,0BACPqB,QAAQ,kBAAmBu0B,GAE9BA,EAAgBxd,QAAU,CAAC,aAAc,WAAY,YA+EpD,G,mMCtFD,aAAa,4DAEbrY,QAAQC,OAAO,yBAA0B,CAAC,sBAAuB,G,mMCJjE,aAAa,4DAIbD,QAAQC,OAAO,0BAA0BijB,UAAU,iBAAkB,CACnE,YACA,qBACA,SACEpf,EACAwf,GAEA,MAAO,CACLE,SAAU,IACVC,SAAU,cACVC,SAAS,EACTC,MAAO,CAAEra,QAAS,cAClBkS,KAAM,SAAUmI,EAAOE,EAASC,GAC9B,MAAM9a,EAAMlF,EAAUmF,YAAYC,KAG5BI,EAAUga,EAAmBgK,WAAW,QAI/B/rB,MAAX+H,GACFN,EAAIlF,EAAUoyB,SAAUrS,EAAQ,GAAI,CAAEsS,SAAU7sB,GAIpD,EAEJ,GACC,G,mMC5BH,aAAa,4DAIbtJ,QAAQC,OAAO,0BAA0BijB,UAAU,gBAAiB,CAClE,YACA,cACA,SAAUpf,EAAiBuf,GACzB,MAAO,CACLG,SAAU,IACVC,SAAU,cACVC,SAAS,EACTC,MAAO,CAAEtN,MAAO,YAChBmF,KAAM,SAAUmI,EAAOE,EAASC,GAC9B,MAAM9a,EAAMlF,EAAUmF,YAAYC,KAC5BtI,EAAYZ,EAAAA,QAAQ6jB,QAAQA,EAAQ,IAK1C,SAASuS,EAAWxgB,EAAGygB,GACrB,MAAMC,EAAK1gB,EAAEpL,KAAK3C,IACZ0uB,EAAKF,EAAE7rB,KAAK3C,IAClB,OAAIyuB,EAAKC,GAAY,EACjBD,EAAKC,EAAW,EACb,CACT,CAEA,MAAMC,EAAqB,IACrBC,EAAqB,IACrBC,EAAsB,GACtBC,EAAsB,GAS5B,SAASC,EAAkBC,GACzB,MAGMC,GAFHD,EAAiBJ,IACjBD,EAAqBC,IAEbC,EAAsBC,GAC/BA,EACF,OAAIA,GAAuBG,EAClB,IAAIhzB,EAAU6I,KAAK,EAAGgqB,GACpBD,GAAuBI,EACzB,IAAIhzB,EAAU6I,KAAK,EAAG+pB,GAEtB,IAAI5yB,EAAU6I,KAAK,EAAGmqB,EAEjC,CAGA,MAAMxtB,EAEJN,EAAIlF,EAAUizB,QAASlT,EAAQ,GAAI,CAEjC2J,gBAAiBnK,EAAY2T,4BAC7BpJ,iBAAkBvK,EAAY4T,6BAC9B3P,OAAQte,EAAIlF,EAAUozB,WAAY,CAEhCC,eAAgB,EAChBC,SAAUhB,MAIhB9sB,EAAQ0hB,mBAAmB,yBAAyB,SAAU7rB,GAC5DA,EAAEmK,QAAQge,OAAOwP,QAAUF,EAAkBh2B,EAAUmC,SACzD,IAEI,OAAOoa,KAAKC,UAAUC,aACxB/T,EAAQ+tB,iBAAiBtM,WAAY,GAKvCpH,EAAM8H,OAAO,SAAS,SAAUC,GACbpiB,EAAQ+M,QACRqV,IACfpiB,EAAQ+M,MAAQqV,EAEpB,GACF,EAEJ,GACC,G,mMC5FH,aAAa,mDAUb,SAAS4L,EACPxzB,EACAE,EACAC,GAEA,MAAM+E,EAAMlF,EAAUmF,YAAYC,KAMlC,MAJgB,CACdgG,eACAI,eASF,SAASA,EAAYioB,GACnB,OAAOvuB,EACLlF,EAAU6b,KACV7b,EAAUkH,MAAMZ,SAChB,CACExH,MAAOoB,EAAeuL,QAAQG,WAC9BxF,kBAAkB,GAEpBqtB,EACAroB,EAAa,YAAQ3N,EAAWyC,EAAe6b,kBAAmB,QAEtE,CAEA,SAAS3Q,EACPsoB,EACA1sB,EACAxC,EACA+B,EACAyC,EACAG,EACAX,GAMA,MAAMmrB,EAAU3sB,EACZ,IAAIhH,EAAU8G,QAAQ4sB,GAAa1sB,aACnC,IAAIhH,EAAU8G,QAAQ4sB,GACpBE,EAAYpvB,GAAgBtE,EAAe6e,WAC3C8U,EAAe1qB,GAAsBjJ,EAAeS,kBAEpDqB,EAAU,CACdiG,UAAW,IAAIjI,EAAUiG,KAAK,GAAK,EAAG,EAAG,GACzCkD,SAAU0qB,EACVpqB,WAAYtJ,EAAkBuJ,qBAC9BX,UAAW,SACX1B,OAAQusB,EACRhrB,QAAS,IAAI5I,EAAU6I,KAAK3I,EAAeuL,QAAQG,WAAY,IAC/DkoB,QAAS,IAAI9zB,EAAU6I,KACrB3I,EAAeuL,QAAQpC,UAAUuC,WACjC,SAEFvN,KAAM2B,EAAU8I,UAAUa,QAC1BX,KAAMA,GAAc,0BACpBZ,OAAQ,IAAIpI,EAAUqI,OAAO,EAAG,EAAG,EAAG,GACtCG,WAAYA,GAAc,eAK5B,OAHIjC,IACDvE,EAAgBuE,OAASA,GAErBrB,EAAIlF,EAAU8I,UAAW9G,EAAS2xB,EAC3C,CAGF,EAnFa,QAIbz3B,QACGC,OAAO,0BACPqB,QAAQ,mBAAoBg2B,GAE/BA,EAAiBjf,QAAU,CAAC,YAAa,iBAAkB,oBA2E1D,G,mMCxED,aAAa,mDAgBb,SAASwf,EACP/zB,EACAG,EACAD,EACA7D,GAGmB6D,EAAeud,gBACHvd,EAAe8d,4BAF9C,MAQMqL,EAAY,IACZC,EAAa,GAMnB,MAJgB,CACdvnB,QAASA,EACTG,eAAgBA,GAMlB,SAASH,EAAQC,GAGf,OAAOgyB,GACT,CAMA,SAAS9xB,EAAeF,GAGtB,OAAOiyB,GACT,CAIA,SAAS5E,IAEP,MAAO,CACL,CACER,UAAW,aACXrmB,WAAY,cACZ8mB,SAAS,EACTC,UAAU,EACVC,WAAW,GAEb,IAAIxvB,EAAU8G,QACZ,WACA,MACA9G,EAAU6F,MAAMkB,OAChBC,WAAWhH,EAAU6F,MAAMoB,WAEjC,CAIA,SAASitB,IACPl0B,EAAUozB,WAAWrjB,KAAK5R,MAC1BA,KAAKg2B,SAAW,IAAIn0B,EAAU6I,KAAK,EAAG,GACtC1K,KAAKk1B,eAAiB,EACtBl1B,KAAKi2B,cAAgBnnB,IACrB9O,KAAKk2B,YAAa,EAClBl2B,KAAK8J,UAAYjI,EAAUozB,WAAWkB,SAGtCn2B,KAAKm1B,SAAW,SAAUxhB,EAAGygB,GAC3B,MAAMgC,EAAKziB,EAAEnN,SAAS+I,EAChB8mB,EAAKjC,EAAE5tB,SAAS+I,EACtB,OAAI+mB,MAAMF,IAAOE,MAAMD,GAAY,EAC/BD,EAAKC,GAAY,EACjBD,EAAKC,EAAW,EACb,CACT,CACF,CAGA,SAASzJ,EAAmB9L,GAE1B,IAAI4M,EAAMxC,EAUV,OATApK,EAAKnL,YAAY5G,MAAK,SAAU6Y,GAE9B,KAAMA,aAAgB/lB,EAAUwP,OAAQ,OACxC,MAAMsc,EAAS/F,EAAKgG,YACpB,GAAe,OAAXD,EAAiB,CACnB,MAAMhB,EAAKgB,EAAO/d,aAClB8d,EAAMxe,KAAKW,IAAI6d,EAAKf,EAAGhsB,MACzB,CACF,IACO,IAAIkB,EAAU6I,KAAKgjB,EAAKG,IACjC,CAGA,SAAShB,EAAgBjF,GAEvB,MAAM+E,EAAKD,EAAmB9E,GAC9B,GAAIA,EAAKkG,mBAAoB,CAC3B,MAAMH,EAAS/F,EAAKgG,YACpB,GAAe,OAAXD,EAAiB,CACnB,MAAMI,EAAMJ,EAAO/d,aACnB+c,EAAG7rB,OAASoO,KAAKW,IAAI8c,EAAG7rB,OAAQitB,EAAIjtB,OACtC,CACF,CAEA,MAAMktB,EAAMpG,EAAKnP,WAAW,UAE5B,OADY,OAARuV,IAAcrB,EAAG7rB,OAASoO,KAAKW,IAAI8c,EAAG7rB,OAAQktB,EAAIpe,aAAa9O,SAC5D6rB,CACT,CAGA,SAASD,EAAmB9E,GAC1B,OAAKA,EAAKkG,mBACH,IAAIjsB,EAAU6I,KAAKwgB,EAAWC,GADA,IAAItpB,EAAU6I,KAAKwgB,EAAW,EAErE,CAEA,SAASqL,IA4CP,OA3CA10B,EAAUoM,QAAQC,QAAQ6nB,EAAYl0B,EAAUozB,YAGhDc,EAAW1nB,UAAUmoB,SAAW,SAAU1iB,GACxC,MAAMzM,EAAUnJ,EAAQqrB,YACxB,GAAIliB,QAA2C,OAC/CA,EAAQuH,iBAAiB,cACzB,MAAMkS,EAAO9gB,KAAKkoB,MAClB,GAAa,OAATpH,GAAmC,SAAlBA,EAAK7M,SAAqB,CAE7C,MAAMwiB,EAAU7J,EAAmB9L,GACnCA,EAAKnL,YAAY5G,MAAK,SAAU6Y,GAC9B,GAAMA,aAAgB/lB,EAAUwP,OACV,SAAlBuW,EAAK3T,SAAqB,CAC5B,MAAMyI,EAAQkL,EAAKyF,aACnB,GAAc,OAAV3Q,EAAgB,CAElB,MAAMiQ,EAAKE,EAAgBjF,GAC3BlL,EAAM/b,MAAQ21B,MAAM5Z,EAAM/b,OACtB81B,EAAQ91B,MACRuO,KAAKW,IAAI6M,EAAM/b,MAAO81B,EAAQ91B,OAClC+b,EAAM5b,OAAUw1B,MAAM5Z,EAAM5b,QAExB6rB,EAAG7rB,OADHoO,KAAKW,IAAI6M,EAAM5b,OAAQ6rB,EAAG7rB,QAE9B,MAAM41B,EAAO9O,EAAK+O,gBACbL,MAAM5Z,EAAM/b,SAAW21B,MAAMI,EAAK/1B,QAAU+1B,EAAK/1B,MAAQ,IAC5D+b,EAAM/b,MAAQuO,KAAK0nB,KAAKla,EAAM/b,MAAQ+1B,EAAK/1B,OAAS+1B,EAAK/1B,QAExD21B,MAAM5Z,EAAM5b,UACZw1B,MAAMI,EAAK51B,SACZ41B,EAAK51B,OAAS,IAEd4b,EAAM5b,OACJoO,KAAK0nB,KAAKla,EAAM5b,OAAS41B,EAAK51B,QAAU41B,EAAK51B,OACnD,CACF,CACF,GACF,CAEAe,EAAUozB,WAAW5mB,UAAUmoB,SAAS5kB,KAAK5R,KAAM8T,GACnDzM,EAAQmI,kBAAkB,aAC5B,EAEO,IAAIumB,CACb,CAEA,SAASF,IACP,MAAM9uB,EAAMlF,EAAUmF,YAAYC,KA+ClC,OA7CyBF,EACvBlF,EAAUwP,MACV,OACA6f,IACA,CAGE7L,OAAQte,EAAIwvB,EAAe,CAAE1B,QAAS,IAAIhzB,EAAU6I,KAAK,EAAG,MAE9D,IAAI7I,EAAU8G,QACZ,WACA,MACA9G,EAAU6F,MAAMkB,OAChBC,WAAWhH,EAAU6F,MAAMoB,WAC7B,CAAEV,OAAQ,QACVrB,EACElF,EAAUmH,MACV,CAAEC,KAAM,QAASY,KAAM,WACvB,IAAIhI,EAAU8G,QAAQ,OAAQ,UAEhC5B,EACElF,EAAUkH,MACV,QACA,CAAE8tB,6BAA8B,SAChC9vB,EACElF,EAAUkH,MACV,aACA,CAAEuB,OAAQ,EAAG6G,MAAO,KACpBpK,EACElF,EAAU8I,UACV,CACEK,UAAU,EACVM,WAAYtJ,EAAkBuJ,qBAC9BtB,OAAQ,IAAIpI,EAAUqI,OAAO,EAAG,EAAG,EAAG,IAExC,IAAIrI,EAAU8G,QAAQ,QAAQE,aAC9B,IAAIhH,EAAU8G,QAAQ,OAAQ,YAAY,SAAUzE,GAClD,MAAO,UAAYA,EAAI,eACzB,MAGJ6C,EAAIlF,EAAUyxB,YAAa,CAAEjpB,WAAY,WAAYC,OAAQ,KAE/D,CAAE6C,MAAOnL,EAAkBoL,kBAG/B,CAEA,SAAS0oB,IACP,MAAM/uB,EAAMlF,EAAUmF,YAAYC,KA2ClC,OAzCgCF,EAC9BlF,EAAUwP,MACV,WACA,CACEyc,oBAAoB,EACpB7lB,kBAAkB,GAEpBlB,EACElF,EAAUkH,MACV,WACA,CACEpI,MAAOoB,EAAeuL,QAAQG,WAC9B3D,UAAWjI,EAAUiG,KAAKC,QAG5BhB,EAAIlF,EAAUmK,QAAS,CACrBG,OAAQC,0BACRtC,UAAWjI,EAAUiG,KAAKC,OAC1BpH,MAAQqB,EAAkBqK,mBAEtBtK,EAAeuL,QAAQC,OAAOuT,KAAKrT,WADnC1L,EAAeuL,QAAQI,KAAKD,WAEhC3M,OAASkB,EAAkBqK,mBAEvBtK,EAAeuL,QAAQC,OAAOuT,KAAKlT,YADnC7L,EAAeuL,QAAQI,KAAKE,YAEhC1B,MAAQlK,EAAkBqK,mBAEtBtK,EAAeuL,QAAQC,OAAOuT,KAAK5U,MADnC,IAGNnF,EACElF,EAAU8I,UACV,CACEb,UAAW,IAAIjI,EAAUiG,KAAK,IAAM,GACpCmC,OAAQ,EACRf,OAAQnH,EAAe6b,kBACvB/S,KAAM,2BAER,IAAIhJ,EAAU8G,QAAQ,UAM9B,CACF,EAzRa,QAIb5K,QACGC,OAAO,0BACPqB,QAAQ,sBAAuBu2B,GAElCA,EAAoBxf,QAAU,CAC5B,YACA,oBACA,iBACA,UA6QD,G,mQCxRD,SAASgL,EACPvf,EACAktB,EACAhtB,EACAC,EACA80B,EACAC,EACAr1B,EACAk0B,EACA7E,EACAhV,EACA9Z,GAcA,OAZA+0B,IAEgB,CACdzgB,mBAAoBA,EACpB9S,4BAA6BA,EAC7BioB,mBAAoBA,EACpBF,mBAAoBA,EACpBuJ,0BAA2BA,EAC3BnJ,oBAAqBA,EACrBoJ,2BAA4BA,EAC5BhnB,sBAAuBA,GAMzB,SAASuI,IACP,OAAOvU,EAAkBuU,oBAC3B,CAKA,SAAS9S,IACP,OAAO/B,EAAwB+B,6BACjC,CAKA,SAAS+nB,IACP,MAAMD,EAAkB,IAAI1pB,EAAUo1B,IAAI,SAAUp1B,EAAUqF,MA2B9D,OA1BAqkB,EAAgBvW,IACd,UACApR,EAAQ,UAAW,CAAE0b,gBAAiB,OAExCiM,EAAgBvW,IACd/S,EAAmBsT,aAAa+C,kBAChC1U,EAAQ3B,EAAmBsT,aAAa+C,kBAAmB,CACzDgH,gBAAiB,OAGrBiM,EAAgBvW,IACd/S,EAAmBsT,aAAasa,gBAChCjsB,EAAQ3B,EAAmBsT,aAAasa,gBAAiB,CACvDvQ,gBAAiB,OAGrBiM,EAAgBvW,IACd/S,EAAmBsT,aAAaC,iBAChC5R,EAAQ3B,EAAmBsT,aAAaC,iBAAkB,CACxD8J,gBAAiB,OAGrBiM,EAAgBvW,IAAI,QAASpR,EAAQ,UACrC2nB,EAAgBvW,IAAI,WAAYpR,EAAQ,aACxC2nB,EAAgBvW,IAAI,YAAapR,EAAQ,cAElC2nB,CACT,CAKA,SAASK,IACP,MAAMD,EAAmB,IAAI9pB,EAAUo1B,IAAI,SAAUp1B,EAAUwP,OAG/D,OAFAsa,EAAiB3W,IAAI,OAAQpR,EAAQ,SACrC+nB,EAAiB3W,IAAI,OAAQpR,EAAQ,SAC9B+nB,CACT,CAKA,SAASD,IACP,MAAMD,EAAkB,IAAI5pB,EAAUo1B,IAAI,SAAUp1B,EAAUoN,MAE9D,OADAwc,EAAgBzW,IAAI,GAAIwB,KACjBiV,CACT,CAKA,SAASsJ,IACP,MAAMxJ,EAAkB,IAAI1pB,EAAUo1B,IAmBtC,OAjBA1L,EAAgBvW,IAAI,QAASjR,EAAe,UAC5CwnB,EAAgBvW,IAAI,WAAYjR,EAAe,aAE/CwnB,EAAgBvW,IACd/S,EAAmBsT,aAAa+C,kBAChCvU,EAAe9B,EAAmBsT,aAAa+C,oBAEjDiT,EAAgBvW,IACd/S,EAAmBsT,aAAasa,gBAChC9rB,EAAe9B,EAAmBsT,aAAasa,kBAEjDtE,EAAgBvW,IACd/S,EAAmBsT,aAAaC,iBAChCzR,EAAe9B,EAAmBsT,aAAaC,mBAGjD+V,EAAgBvW,IAAI,YAAajR,EAAe,cACzCwnB,CACT,CAKA,SAASyJ,IACP,MAAMkC,EAAsB,IAAIr1B,EAAUo1B,IAI1C,OAFAC,EAAoBliB,IAAI,OAAQjR,EAAe,SAExCmzB,CACT,CAKA,SAASlpB,IACP,OAAO8oB,EAAmB9oB,uBAC5B,CAGA,SAASgpB,IACPG,GACF,CAEA,SAAS3gB,IACP,OAAOxU,EAAkBwU,iBAC3B,CAIA,SAAS5S,EAAQqQ,EAAUpQ,GACzB,OAAQoQ,GACN,KAAKlS,EAAesd,QAGpB,KAAKpd,EAAmBsT,aAAa+C,kBAGrC,KAAKrW,EAAmBsT,aAAasa,gBAGrC,KAAK5tB,EAAmBsT,aAAaC,iBACnC,OAAOuZ,EAAuBnrB,QAAQqQ,EAAUpQ,GAElD,IAAK,QACH,OAAOkzB,EAAqBnzB,QAAQC,GAEtC,IAAK,WACH,OAAOnC,EAAwBkC,QAAQC,GAEzC,IAAK,OACH,OAAO+xB,EAAoBhyB,QAAQC,GAErC,IAAK,OACH,OAAOktB,EAAoBntB,QAAQC,GAErC,IAAK,YACH,OAAOkY,EAAyBnY,QAAQC,GAE9C,CAIA,SAASE,EAAekQ,EAAUpQ,GAChC,OAAQoQ,GACN,IAAK,UAGL,KAAKhS,EAAmBsT,aAAa+C,kBACnC,OAAOyW,EAAuBhrB,eAAeF,GAAS,GAExD,KAAK5B,EAAmBsT,aAAasa,gBACnC,OAAOd,EAAuBhrB,eAAeF,GAAS,GAAO,GAE/D,KAAK5B,EAAmBsT,aAAaC,iBACnC,OAAOuZ,EAAuBhrB,eAAeF,GAAS,GAAO,GAE/D,IAAK,QACH,OAAOkzB,EAAqBhzB,eAAeF,GAE7C,IAAK,WACH,OAAOnC,EAAwBqC,eAAeF,GAEhD,IAAK,OACH,OAAO+xB,EAAoB7xB,eAAeF,GAE5C,IAAK,OACH,OAAOktB,EAAoBhtB,eAAeF,GAE5C,IAAK,YACH,OAAOkY,EAAyBhY,eAAeF,GAErD,CAEA,SAASszB,IACPt1B,EAAUmH,MAAMyT,sBAAsB,SAAS,SAAUC,EAAOC,EAAGC,GACjE,OAAO,IAAI/a,EAAUgb,QACvB,GACF,CACF,E,QAzOA9e,QAAQC,OAAO,0BAA0BqB,QAAQ,cAAe+hB,GAEhEA,EAAYhL,QAAU,CACpB,YACA,yBACA,iBACA,oBACA,qBACA,uBACA,0BACA,sBACA,sBACA,2BACA,qBA4ND,G,6aCrNM,MAAMghB,EACXz1B,eAAiB,CACf,WACA,SACA,0BACA,oBACA,sBACA,iBACA,oBACA,cACA,gBACA,gBAEF,2BAAoC,sBAQ7B01B,iBAAmB,IAInBC,SAAkB,GAIzB11B,YACUuf,EACAoW,EACAC,EACAC,EACAC,EACAC,EACArhB,EACAshB,EACAz1B,EACA01B,GACR,KAVQ1W,SAAAA,EAAyB,KACzBoW,OAAAA,EAAc,KACdC,wBAAAA,EAAgD,KAChDC,kBAAAA,EAAoC,KACpCC,oBAAAA,EAAiD,KACjDC,eAAAA,EAAuC,KACvCrhB,kBAAAA,EAA6C,KAC7CshB,YAAAA,EAAiC,KACjCz1B,cAAAA,EAAqC,KACrC01B,aAAAA,EAGN73B,KAAK83B,oBAAsBC,EAAAA,QAAkBC,KAAK5mB,YAClDpR,KAAK83B,oBAAsBC,EAAAA,QAAkBE,UAAU7mB,WAEvDpR,KAAKk4B,iBAAmB,gBAExBl4B,KAAKk4B,iBAAmB,eAG1Bl4B,KAAKm4B,cAAgBn4B,KAAKm4B,gBAAiB,CAC7C,CAEAC,UACEp4B,KAAKmC,cAAcwnB,UACjB,gCACA,KACE3pB,KAAKq4B,gBAAgB,GAEvB,yBAGFr4B,KAAKmC,cAAcwnB,UACjB,6BACA,KACE3pB,KAAKs4B,kBAAkB,GAEzB,yBAGFt4B,KAAKmC,cAAcwnB,UACjB,+BACA,KACE3pB,KAAKu4B,iBAAiB,GAExB,yBAGFv4B,KAAKmC,cAAcwnB,UACjB,4BACA,KACE3pB,KAAKu4B,iBAAiB,GAExB,wBAEJ,CAEAC,aACEx4B,KAAKmhB,UAAS,KACZ,MAAMsX,EACJz4B,KAAKw3B,wBAAwBkB,+BAC3B14B,KAAK24B,gBAAkB,IAErBC,EACJ54B,KAAKw3B,wBAAwBqB,+BAC3B74B,KAAK24B,gBAAkB,IAE3B,IAAIG,EAAaC,EAGf/4B,KAAK83B,oBAAsBC,EAAAA,QAAkBC,KAAK5mB,YAClDpR,KAAK83B,oBAAsBC,EAAAA,QAAkBE,UAAU7mB,YAEvD0nB,EAAc,gBACdC,EAAc,6BAEdD,EAAc,iBACdC,EAAc,6BAGiD,KAA7D/4B,KAAKw3B,wBAAwBwB,WAAWJ,GAI1C54B,KAAKsW,kBAAkB2iB,sBAAsBL,GAE7C54B,KAAK03B,oBAAoBwB,eACvB,gGAIJl5B,KAAKm5B,QAAU,CACbA,QAASP,EACTH,SAAUA,EACVW,QAASp5B,KAAKs3B,SAAS+B,KAAKC,GAAMA,EAAE/kB,KACpCglB,OAAQv5B,KAAK23B,eAAe6B,UAAUjlB,GACtC4jB,cAAen4B,KAAKm4B,cACpBsB,YAAaC,EAAAA,YAAYC,aAG3B35B,KAAKy3B,kBACFmC,eACCC,SACqC,MAAnC75B,KAAK85B,2BACD95B,KAAK83B,kBACL93B,KAAK85B,4BAEX95B,KAAK+5B,gBACL/5B,KAAKm5B,QACLn5B,KAAKg6B,wBAENC,MAAK,KACJj6B,KAAKu3B,OAAOvD,WACVoD,EAA8B8C,qBAKhC,MAAMC,EAAcn6B,KAAK23B,eAAe6B,UAClCY,EAAuB,CAC3BC,SAAUF,EAAYE,SACtBC,UAAWH,EAAYG,UACvBf,OAAQY,EAAY5lB,GACpBgmB,gBAAiBJ,EAAYE,SAC7BG,gBAAiB,oBACjBrB,QAASP,EACT6B,MAAOz6B,KAAKs3B,SACZmC,YAAaC,EAAAA,YAAYC,aAE3B35B,KAAK06B,aAAa,CAAEvB,QAASiB,IAC7Bp6B,KAAKs3B,SAAW,GAEhBt3B,KAAK03B,oBAAoBiD,iBAAiB7B,EAAY,KAnDxD94B,KAAK03B,oBAAoBkD,iBAAiB7B,EAoDxC,GACH/4B,KAAKq3B,iBACV,CAEAwD,eACE76B,KAAKmC,cAAc0J,QACjB,uBACAxP,EAAAA,mBAAmBy+B,sBAEvB,CAEAC,eAAeC,GACbh7B,KAAKs3B,SAAS3mB,KAAKqqB,EACrB,CAEA1C,mBACEt4B,KAAKi7B,qBAAsB,CAC7B,CAEA1C,kBACEv4B,KAAKi7B,qBAAsB,CAC7B,CAEAC,WAAWC,GACTn7B,KAAKs4B,mBACL,MAAM0C,EAAOh7B,KAAKs3B,SAAS8D,OAAOD,EAAO,GAAG,GACtCE,EAAOr7B,KAAK23B,eAAe6B,UACjCx5B,KAAK43B,YAAY0D,QAAQD,EAAK9mB,GAAIvU,KAAK63B,aAAa0D,YAAYhnB,IAChEvU,KAAK43B,YACF4D,gBAAgBR,EAAKzmB,IACrB0lB,MAAK,KACJj6B,KAAK03B,oBAAoBiD,iBAAiBK,EAAKS,SAAW,YAC1Dz7B,KAAKu4B,iBAAiB,IAEvBmD,OAAM,IAAM17B,KAAKu4B,mBACtB,CAEAF,iBACOr4B,KAAKs3B,UAAqC,IAAzBt3B,KAAKs3B,SAASzmB,SAEpB7Q,KAAKs3B,SAAS+B,KAAKC,GAAMA,EAAE/kB,KACnCU,SAASV,GAAOvU,KAAK43B,YAAY4D,gBAAgBjnB,KAEzDvU,KAAKs3B,SAAW,GAClB,CAEAqE,aACE37B,KAAKmC,cAAcy5B,eAAe,yBAClC57B,KAAKq4B,gBACP,EACD,kCAEM,MAAMwD,EAQXj6B,cACE5B,KAAK87B,SAAW,CACd/B,gBAAiB,IACjBjC,kBAAmB,IACnBK,cAAe,IACfuC,aAAc,IACdZ,2BAA4B,IAC5BE,uBAAwB,MAG1Bh6B,KAAK+7B,YAAc,uBACrB,CAEAC,WAAa5E,EACd,wBAEDr5B,EAAAA,QACGC,OAAO,wBACP2f,UAAU,aAAc,IAAIke,EAAuB,G,02BCxP/C,MAAMI,EAIXr6B,cACE5B,KAAK87B,SAAW,CACd3C,QAAS,IACT+C,eAAgB,IAChBC,cAAe,IACfC,SAAU,KAGZp8B,KAAK+7B,YAAc,2BACrB,EACD,4BAEDh+B,EACGC,OAAO,wBACP2f,UAAU,iBAAkB,IAAIse,EAA2B,G,qWCd9D,MAAMI,EACJ,eAAwB,CACtB,oBACA,gBACA,iBAYKz6B,YACG61B,EACAt1B,EACAE,GACR,KAHQo1B,kBAAAA,EAA6C,KAC7Ct1B,cAAAA,EAAqC,KACrCE,cAAAA,CACP,CAEH+1B,UACEp4B,KAAKs8B,uBAAwB,EAE7Bt8B,KAAKmC,cAAcwnB,UACjB,+BACA,KACE,GAAI3pB,KAAKu8B,aAAev8B,KAAKu8B,YAAY1rB,OAAS,EAChD,IAAK,IAAI2rB,KAAKx8B,KAAKu8B,YACjBC,EAAElC,UAAYt6B,KAAKqC,cAAco6B,aAAaD,EAAEjD,OAEpD,GAEF,sBAGFv5B,KAAKmC,cAAcwnB,UACjB,mCACA,CAAC3sB,EAAOuL,KACNA,EAAOm0B,KAAK9zB,MAAML,GAEdvI,KAAK+5B,kBAAoBxxB,EAAKwxB,iBAChC/5B,KAAK28B,cACP,GAEF,sBAGF38B,KAAKmC,cAAcwnB,UACjB,wCACA,CAAC3sB,EAAOuL,KACNA,EAAOm0B,KAAK9zB,MAAML,GAEdvI,KAAK+5B,kBAAoBxxB,EAAKq0B,YAChC58B,KAAK28B,cACP,GAEF,qBAEJ,CAEAhB,aACE37B,KAAKmC,cAAcy5B,eAAe,qBACpC,CAEOe,eACL38B,KAAKy3B,kBACFoF,gBACC78B,KAAK83B,kBACL93B,KAAK+5B,iBACL,EACA/5B,KAAKg6B,wBAENC,MAAM1xB,IACLvI,KAAKu8B,YAAch0B,CAAI,GAE7B,CAEAmyB,aAAavB,GACXn5B,KAAKu8B,YAAcv8B,KAAKu8B,aAAe,GACvCv8B,KAAKu8B,YAAY5rB,KAAKwoB,GACtBn5B,KAAKs8B,uBAAwB,EAE7Bt8B,KAAK88B,eAAe,CAClB/C,gBAAiB/5B,KAAK+5B,gBACtBrrB,MAAO1O,KAAKu8B,YAAY1rB,QAE5B,EAGK,MAAMksB,EAOXn7B,cACE5B,KAAK87B,SAAW,CACd/B,gBAAiB,IACjBjC,kBAAmB,IACnByE,YAAa,IACbH,SAAU,IACVjE,cAAe,IACf2E,eAAgB,IAChBhD,2BAA4B,IAC5BE,uBAAwB,MAG1Bh6B,KAAK+7B,YAAc,oBACrB,CAEAC,WAAaK,EACd,sBAEDt+B,EAAAA,QACGC,OAAO,wBACP2f,UAAU,oBAAqB,IAAIof,EAAqB,G,mMC9H3D,aAAa,4DAGYh/B,QAAQC,OAAO,uBAAwB,CAC9D,mBACA,yBAGeg/B,IAAI,CACnB,iBACA,SAAUC,GAERA,EAAeC,IACb,wBACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,4BACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,qBACAC,EAAAA,OAAAA,GAIFF,EAAeC,IACb,0CACAC,EAAAA,OAAAA,GAEFF,EAAeC,IACb,8BACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,mCACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,mCACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,oCACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,yCACAC,EAAAA,OAAAA,GAEFF,EAAeC,IACb,gDACAC,EAAAA,OAAAA,GAIFF,EAAeC,IACb,4CACAC,EAAAA,OAAAA,GAIFF,EAAeC,IACb,qCACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,oCACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,8BACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,oCACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,yCACAC,EAAAA,OAAAA,GAIFF,EAAeC,IACb,kCACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,4CACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,iCACAC,EAAAA,OAAAA,EAEJ,GACC,G,ugCC3HI,MAAMC,EAAQ,CAAEvzB,KAAM,oBAAqB,UAC3C,MAAMwzB,EAAiB,CAAEzxB,KAAM,oBAAqB,mBAOpD,MAAM0xB,EAA6C,CACxD,CAAElX,MAAO,KAAMxa,KAAMwxB,EAAMvzB,MAC3B,CAAEuc,MAAO,IAAKxa,KAAM,UACpB,CAAEwa,MAAO,KAAMxa,KAAM,eACrB,2BAEK,MAAM2xB,EAA+C,CAC1D,CAAEnX,MAAO,KAAMxa,KAAMwxB,EAAMvzB,MAC3B,CAAEuc,MAAO,IAAKxa,KAAM,UACpB,CAAEwa,MAAO,KAAMxa,KAAM,cACrB,CAAEwa,MAAO,IAAKxa,KAAM,QACpB,CAAEwa,MAAO,IAAKxa,KAAM,QACpB,CAAEwa,MAAO,KAAMxa,KAAM,iBACrB,CAAEwa,MAAO,KAAMxa,KAAM,kBAUhB,SAAS4xB,EAAeC,GAC7B,OAAOA,GAAOL,EAAMvzB,KAAO4zB,EAAM,IACnC,CATA,6BAWO,MAAMC,EACX,eAAwB,CACtB,QACA,WACA,aACA,kBACA,gBACA,KACA,qBACA,mBASK97B,YACG+7B,EACAxc,EACA/e,EACAw7B,EACAtc,EACAuc,EACA57B,EACA67B,GACR,KARQH,MAAAA,EAAK,KACLxc,SAAAA,EAAQ,KACR/e,WAAAA,EAA+B,KAC/Bw7B,gBAAAA,EAAyC,KACzCtc,OAAAA,EAAM,KACNuc,GAAAA,EAAE,KACF57B,mBAAAA,EAA+C,KAC/C67B,gBAAAA,EAER99B,KAAK+9B,oBAAsB/9B,KAAKoC,WAAW47B,WAAa,iBACxDh+B,KAAKi+B,mBAAqBj+B,KAAKi+B,mBAAmBz6B,KAAKxD,MACvDA,KAAKk+B,mBAAqBl+B,KAAKk+B,mBAAmB16B,KAAKxD,MACvDA,KAAKm+B,0BAA4Bn+B,KAAKiC,mBAAmBm8B,iBACzDp+B,KAAKq+B,gBAAkBr+B,KAAK89B,gBAAgBQ,kBAC1C,2DAEJ,CAEQC,OAAS,GACTC,oBAAsB,GACtBC,aAAe,GACfC,iBAAmBnB,EAInBoB,mBAAoB,EAGpBC,MAAwB5+B,KAAK6+B,gBAE7BA,gBACN,MAAO,CAAEh1B,KAAMuzB,EAAO0B,UAAW,CAAC,EAAG1Y,MAAO,CAAC,EAC/C,CAEO6X,qBACL,GAAIj+B,KAAK4+B,MAAM/0B,KAAM,CACnB,MAAMk1B,EAAM/+B,KAAK4+B,MAAM/0B,KAAKA,KAE5B7J,KAAKg/B,MAAMC,aAAaC,QAAQ,GAAG50B,OAASkzB,EAAeuB,GAC3D/+B,KAAKm/B,sBACP,CAEIn/B,KAAK4+B,MAAME,YACb9+B,KAAKg/B,MAAMC,aAAaC,QAAQ,GAAGJ,UAAYtB,EAC7Cx9B,KAAK4+B,MAAME,UAAU1Y,QAIrBpmB,KAAK4+B,MAAMxY,QACbpmB,KAAKg/B,MAAMC,aAAaC,QAAQ,GAAG9Y,MAAQoX,EACzCx9B,KAAK4+B,MAAMxY,MAAMvc,OAIrB7J,KAAKo/B,mBACP,CAOOlB,qBACL,MAAMmB,EAAUr/B,KAAKshB,OAAOtL,IAC1BhW,KAAKg/B,MACL,iCACA5B,EAAMvzB,MAEFy1B,EAAWt/B,KAAKw+B,oBAA4Bnb,MAC/Ckc,GAAMA,EAAE11B,OAASw1B,IAEdG,EAAUx/B,KAAKshB,OAAOtL,IAAIspB,EAAS,YAIvCt/B,KAAK4+B,MAAM/0B,KAAkB,MAAXy1B,EAAkBlC,EAAQkC,EAI9C,CACE,MAAMR,EAAY9+B,KAAKshB,OAAOtL,IAC5BhW,KAAKg/B,MACL,qCAEIS,EACO,QAAXD,EAAoBlC,EAAyBC,EAC/Cv9B,KAAK4+B,MAAME,UAAaW,EAAmBpc,MACxCqc,GAAMA,EAAEtZ,OAAS0Y,GAEtB,CAGA,CACE,MAAMa,EAAU3/B,KAAKshB,OAAOtL,IAC1BhW,KAAKg/B,MACL,iCAEFh/B,KAAK4+B,MAAMxY,MAASpmB,KAAKy+B,aAAqBpb,MAC3Ckc,GAAMA,EAAE11B,MAAQ81B,GAErB,CACF,CAEOR,qBAAqBL,GAC1B,GAAI9+B,KAAKg/B,MAAMC,aAAaC,QAAQ,GAAG50B,OAAQ,CAC7C,MAAMs1B,EAAe5/B,KAAKw+B,oBAA4Bnb,MACnDkc,GAAMA,EAAE11B,OAAS7J,KAAKg/B,MAAMC,aAAaC,QAAQ,GAAG50B,UAGrDs1B,GACyB,YAAxBA,EAAYC,UAAkD,UAAxBD,EAAYC,UAKnDD,GACyB,QAAxBA,EAAYC,UACa,QAAxBD,EAAYC,UACY,SAAxBD,EAAYC,WAEd7/B,KAAKy+B,aAAez+B,KAAK8/B,oBACzB9/B,KAAK0+B,iBAAmBpB,IATxBt9B,KAAKy+B,aAAez+B,KAAK8/B,kBAAkBF,EAAYC,UACvD7/B,KAAK0+B,iBAAmBnB,GAWtBuB,GACF9+B,KAAKmhB,UAAS,KACZnhB,KAAKg/B,MAAMC,aAAaC,QAAQ,GAAGJ,UAAYA,CAAS,IAI5D9+B,KAAKo/B,mBACP,CACF,CAEOA,oBACDp/B,KAAKg/B,aAC6C,IAAzCh/B,KAAKg/B,MAAMC,aAAac,eACjC//B,KAAKg/B,MAAMC,aAAac,aAAe,CAAC3C,EAAMvzB,OAEhD7J,KAAKggC,cAAc,CAAEtJ,KAAM12B,KAAKg/B,QAEpC,CAEOiB,oBAC0C,IAApCjgC,KAAKg/B,MAAMC,aAAaC,UACjCl/B,KAAKg/B,MAAMC,aAAaC,QAAQ,GAAG50B,YAAShL,EAC5CU,KAAKg/B,MAAMC,aAAaC,QAAQ,GAAGJ,eAAYx/B,EAC/CU,KAAKg/B,MAAMC,aAAaC,QAAQ,GAAG9Y,WAAQ9mB,GAG7CU,KAAK4+B,MAAQ5+B,KAAK6+B,gBAClB7+B,KAAKk+B,qBAELl+B,KAAKkgC,sCAELlgC,KAAKo/B,mBACP,CAEOe,iBAEL,IAUIC,EAVAC,GAAe,EAwDnB,YAvDuC/gC,IAAnCU,KAAKg/B,MAAMC,aAAaqB,SAC1BtgC,KAAKg/B,MAAMC,aAAaqB,OACtBtgC,KAAKugC,YAAYtB,cAAgBj/B,KAAKugC,YAAYtB,aAAaqB,OACjED,GAAe,GAIjBrgC,KAAKw+B,oBAAsB,CAACpB,GAI5Bp9B,KAAK2+B,mBAAoB,EAKvByB,EAHApgC,KAAKg/B,MAAMC,aAAaqB,QACW,KAAnCtgC,KAAKg/B,MAAMC,aAAaqB,OAEdtgC,KAAK29B,MACZ3nB,IACE,GAAEhW,KAAK+9B,+BAA+B/9B,KAAKg/B,MAAMC,aAAaqB,SAC/D,CAAEE,WAAW,IAEdvG,MAAMwG,IACL,MAAMC,EAAgBD,EAASl4B,KAAKtL,WAAW0jC,GAAiB,OAAXA,EAAE92B,OACjD+2B,EAAsBH,EAASl4B,KAAKtL,WACvC0jC,GAAiB,qBAAXA,EAAE92B,OAGP62B,GAAiB,GAAKE,EAAsB,EAC9CH,EAASl4B,KAAK6yB,OAAOsF,EAAe,GAC3BE,GAAuB,GAChCH,EAASl4B,KAAK6yB,OAAOwF,EAAqB,GAG5C5gC,KAAKw+B,oBAAsBiC,EAASl4B,KACpCvI,KAAKw+B,oBAAoBqC,QAAQzD,GACjCp9B,KAAKg/B,MAAMC,aAAaT,oBAAsB,GAC9CzgC,EAAQ+iC,KACN9gC,KAAKw+B,oBACLx+B,KAAKg/B,MAAMC,aAAaT,qBAGtB6B,IACFrgC,KAAKg/B,MAAMC,aAAac,aACtB//B,KAAKugC,YAAYtB,aAAac,aAChC//B,KAAKg/B,MAAMC,aAAaC,QAAQ,GAAG50B,OACjCtK,KAAKugC,YAAYtB,aAAaC,QAAQ,GAAG50B,OAC3CtK,KAAKm/B,qBACHn/B,KAAKg/B,MAAMC,aAAaC,QAAQ,GAAGJ,WAEvC,IAGM9+B,KAAK69B,GAAGkD,UAGbX,EAAQnG,MAAK,KAElBj6B,KAAKk+B,qBACLl+B,KAAKo/B,oBAELp/B,KAAK2+B,mBAAoB,CAAI,GAEjC,CAEOvG,UACLp4B,KAAKghC,SAAU,EACfhhC,KAAKugC,YAAcxiC,EAAQ+iC,KAAK9gC,KAAKg/B,MAAO,CAAC,QAEb1/B,IAA5BU,KAAKg/B,MAAMC,eACbj/B,KAAKg/B,MAAMC,aAAe,CACxBqB,OAAQ,GACRP,aAAc,GACdb,QAAS,CAAC,CAAC,IAEbl/B,KAAKo/B,qBAGPp/B,KAAK29B,MACF3nB,IAAIhW,KAAK+9B,oBAAsB,oBAAqB,CACnDyC,WAAW,IAEZvG,MAAMwG,IACLzgC,KAAKu+B,OAAS,CAAC,CAAE/lB,MAAO4kB,EAAMvzB,KAAMA,KAAM,KAG1C,IAAK,IAAIo3B,KAAMR,EAASl4B,KACtB04B,EAAGzoB,MAAQyoB,EAAGp3B,KACd7J,KAAKu+B,OAAO5tB,KAAKswB,GAGnB,OAAOjhC,KAAKmgC,gBAAgB,IAE7Be,SAAQ,KACPlhC,KAAKghC,SAAU,EAEfhhC,KAAKkgC,qCAAqC,IAI9ClgC,KAAKy+B,aAAez+B,KAAK8/B,mBAC3B,CAEQI,sCAKNlgC,KAAKmhB,UAAS,KACZnhB,KAAK2+B,mBAAoB,EACzB3+B,KAAKmhB,UAAS,KACZnhB,KAAK2+B,mBAAoB,CAAI,GAC5B,EAAE,GACJ,EACL,CAEQmB,kBAAkBD,GACxB,MAAMpB,EAAez+B,KAAK49B,gBAAgBuD,qBACxC,CAAEC,UAAWphC,KAAKohC,WAClBphC,KAAKg/B,MACLa,GAEIjS,EACmB,GAAvB6Q,EAAa5tB,OAAcwsB,EAAiB,CAAEzxB,KAAMwxB,EAAMvzB,MAE5D,OADA40B,EAAaoC,QAAQjT,GACd6Q,CACT,EACD,mCAEM,MAAM4C,EAGJtF,YAAc,4CACdD,SAAW,CAChBkD,MAAO,IACPoC,UAAW,IACXpB,cAAe,KAEVhE,WAAa0B,EACrB,kCAED3/B,EACGC,OAAO,wBACP2f,UAAU,uBAAwB,IAAI0jB,EAAiC,G,q2BCrW1E,MAAMC,EACJ3/B,eAAiB,CAAC,YAMlBC,YAAoB2/B,GAA+B,KAA/BA,SAAAA,CAAgC,CAEpDnJ,UACEp4B,KAAK4tB,YAAc5tB,KAAK4tB,aAAe,aACvC5tB,KAAKwhC,OAAS,eACdxhC,KAAKyhC,WAAY,CACnB,CAEAC,YACE1hC,KAAKoU,MAAQ,KACbpU,KAAKuhC,SAASle,KAAK,SAAS9a,KAAK,mBAAmB6d,MAAM,KAC5D,EAGK,MAAMub,EAIX//B,cACE5B,KAAK87B,SAAW,CACd1nB,MAAO,IACPwZ,YAAa,KAGf5tB,KAAK+7B,YAAc,gCACrB,CAEAC,WAAasF,EACd,wBAEDvjC,EACGC,OAAO,wBACP2f,UAAU,sBAAuB,IAAIgkB,EAAuB,G,uRCvC/D5jC,QACGC,OAAO,wBACPqB,QAAQ,oBAAqBuiC,EAAAA,kBAAmB,G,2JCCnD,aAEO,SAASA,IAGd,MAAMC,EAAS,CACbC,IAAK,EACLC,OAAQ,EACRC,KAAM,EACNC,MAAO,GAIHp0B,EAAU,CACd9O,MAAOA,EACPmjC,KAAMA,EACNL,OAAQA,EACR7iC,IAAKA,EACLmjC,gBAAiBA,EACjBC,aAjBsC,UAAH,6CAAG,MAoBxC,OAAOv0B,EAEP,SAAS9O,EAAMsjC,GACTx0B,EAAQu0B,cAAgBP,EAAOE,QACjCjjC,QAAQC,MAAMsjC,EAElB,CAEA,SAASH,EAAKG,GACRx0B,EAAQu0B,cAAgBP,EAAOG,MACjCljC,QAAQojC,KAAKG,EAEjB,CAEA,SAASrjC,EAAIqjC,GACPx0B,EAAQu0B,cAAgBP,EAAOI,OACjCnjC,QAAQE,IAAIqjC,EAEhB,CAEA,SAASF,EAAgBG,GACvBz0B,EAAQu0B,aAAeE,CACzB,CACF,CA7Ca,sEA6CZ,O,iOCjCCvkC,QAAQC,OAAO,wBAAwB2f,UAAU,mBAAoB,CACnEme,SAAU,CACRyG,WAAY,KAGdxG,YAAa,0CAEZ,G,qRCnBL,MAAMyG,EA2BJ5gC,YACEi8B,EACA4E,EACAC,EACA/K,GAEA33B,KAAK2iC,KAAO,CACVD,iBACA/K,iBACA8K,gBACA5E,MAEF79B,KAAK4iC,WAAa5iC,KAAK4iC,WAAWp/B,KAAKxD,MACvCA,KAAK6iC,WAAa7iC,KAAK6iC,WAAWr/B,KAAKxD,MACvCA,KAAK8iC,yBAA2B9iC,KAAK8iC,yBAAyBt/B,KAAKxD,KACrE,CAEA6iC,aACE7iC,KAAK+iC,QAAU/iC,KAAK8iC,yBAAyB9iC,KAAK+iC,QACpD,CAWAD,yBAAyBzH,GACvB,GAAIA,EAOF,OANAA,EAAK2H,aAAe3H,EAAK4H,IAAM5H,EAAK9mB,GACpC8mB,EAAK6H,YACH7H,EAAK8H,UACL9H,EAAKhB,UACJgB,EAAK+H,WAAc,GAAE/H,EAAK+H,aAAa/H,EAAKgI,YAC7C,GACKhI,CAEX,CAEAuH,WAAW,GAA4B,IAA5B,KAAEU,GAAwB,EACnC,MAAM,GAAEzF,EAAE,cAAE4E,EAAa,eAAEC,GAAmB1iC,KAAK2iC,MAC7C,eAAEY,EAAc,QAAEC,EAAO,QAAEC,EAAO,aAAEC,EAAY,OAAEC,EAAM,OAAEC,GAC9DnB,EAEIG,EAAa,GAanB,OAZAA,EAAWjyB,KACT+xB,EAAemB,YAAY,CACzBP,OACAQ,SAAU9jC,KAAK+jC,WACfC,sBAAuBhkC,KAAKgkC,yBAI5BhkC,KAAKikC,SACPrB,EAAWjyB,KAAK3Q,KAAKkkC,mBAAmBlkC,KAAKikC,UAGxCpG,EACJsG,IAAIvB,GACJ3I,MAAK,IAAmC,IAAjCmK,EAAaC,GAAe,EAC9BC,EAASF,EAKb,GAJIC,IACFC,EAASA,EAAOV,OAAOS,IAGrBrkC,KAAKukC,QAAS,CAChB,MAAMC,GACJhB,EAAQxjC,KAAKukC,SAAWvkC,KAAKukC,QAAU,CAACvkC,KAAKukC,UAC7ClL,IAAIoK,GACN,OAAOF,EACLe,EACAE,GACA,CAACC,EAAOlwB,IAAOkvB,EAAQgB,EAAMlwB,MAAQA,GAEzC,CACE,OAAO+vB,CACT,IAEDrK,MAAMyK,GAGEA,EAAMrL,IAAIr5B,KAAK8iC,4BAEvB7I,MAAMyK,GAAUf,EAAOe,EAAO,cAC9BzK,MAAMyK,GAAUhB,EAAagB,EAAO,QACpChJ,MAAM17B,KAAK2kC,gBAChB,CAEAT,mBAAmBU,GACjB,IAAKA,EAAY,MAAO,GAExB,MAAM,GAAE/G,EAAE,eAAE6E,GAAmB1iC,KAAK2iC,KAI9BkC,GAFND,EAAaE,MAAMtB,QAAQoB,GAAcA,EAAa,CAACA,IAE3BvL,KAAK0L,GACxB/kC,KAAKglC,SACRhlC,KAAKglC,SAASD,EAAW,KAAM,CAAEhB,WAAY/jC,KAAK+jC,aAAc9J,MAC7DoB,GAASA,IAEZqH,EACGuC,4BAA4BF,GAC5B9K,MAAMoB,GAASA,MAGxB,OAAOwC,EAAGsG,IAAIU,GAAU5K,MAAMoB,GAASA,EAAKnY,QAAQ7T,GAAMA,KAC5D,EAGFmzB,EAAqBpsB,QAAU,CAC7B,KACA,gBACA,iBACA,kBAEFrY,EAAAA,QACGC,OAAO,wBACPg+B,WAAW,uBAAwBwG,GAEtCzkC,EAAAA,QAAQC,OAAO,wBAAwB2f,UAAU,aAAc,CAC7Dme,SAAU,CACRiH,QAAS,IACTwB,QAAS,IACTN,QAAS,IACTD,sBAAuB,IACvBD,WAAY,IAGZmB,WAAY,IACZC,QAAS,IACTC,SAAU,IACVC,SAAU,IACVC,QAAS,IACTC,OAAQ,IACRZ,gBAAiB,IACjBK,SAAU,KAEZhJ,WAAY,uBACZxa,SAAW,+uBAkBV,G,uMCrLH,aAAa,2JAIE,MAAMgkB,EACnB7jC,eAAiB,CAAC,UAElBC,YAAoB21B,GAAQ,KAARA,OAAAA,EAClBA,EAAOhN,IAAI,wBAAwB,CAACvtB,EAAOyoC,IAAWzlC,KAAK0lC,YAAYD,EAAOzoC,MAAOyoC,EAAOE,WAC9F,CAEAD,YAAYxoC,EAAGyoC,GACb,MAAMC,EAAS7nC,EAAAA,QAAQ6jB,QAAQrhB,UAAU8iB,KAAKsiB,GAAUp9B,KAAK,eACvDs9B,EAAmBC,GACnBA,EAAWC,MAAM,mCAIZ,CACLtb,KAAM,UACNlW,GALiBuxB,EAAWC,MAAM,SAChCD,EAAWE,MAAM,WAAW,GAAGA,MAAM,KAAK,GAC1CF,EAAWE,MAAM,sBAAsB,GAAGA,MAAM,QAAQ,KAM9DC,MACE,0HAEK,GAIHC,EAAQN,EAAOO,WACfC,EAASroC,EAAAA,QACZ6jB,QAAQ7jB,EAAAA,QAAQ6jB,QAAQ,yBAAyBxhB,QACjDijB,KAAK,uBACLlW,OAAM,KACL,MAAMk5B,EAAQR,EAAgBO,EAAOxkB,QAAQyB,KAAK,SAASnN,OAC3D,GAAImwB,EAAO,CACT,MAAM7kB,EAAWpgB,MAAMogB,SAAS5iB,EAAE,qBAAqBwB,QAEvDwlC,EAAOU,YAAYJ,GACnBN,EAAOW,KAAK,aAAc,CACxBngB,MAAO5E,EAAS,CACdrV,OAAQk6B,EAAM9xB,MAGpB,CAEA6xB,EAAOI,OAAO,IAEfC,MACApjB,KAAK,uBACLlW,OAAM,WACLi5B,EAAOI,OACT,IACCC,MACAC,YAAY,CACXC,OAAO,EACPC,MAAO,eACPnF,WAAW,EACXoF,WAAY,KACVT,EAAOU,SAAS,EAElBC,SAAU,KACRC,YAAW,KACTpoC,EAAE,aAAaqoC,OAAO,GACrB,IAAI,IAGV1+B,KAAK,eAER69B,EAAOnzB,SAASi0B,MAClB,EACD,YAEM,MAAMC,EACJpL,YAAc,4CACdqL,aAAe,OAEtBpL,WAAawJ,EACd,iCAEDznC,EAAAA,QACGC,OAAO,wBACP2f,UAAU,sBAAuB,IAAIwpB,EAAgC,G,2MC7FxE,aAAa,0DAeb,MAAME,EAAyB,CAC7BjC,SAAU,SACVC,SAAU,YACVC,QAAS,QACTC,OAAQ,OACR+B,YAAa,aAGf,MAAMC,EAoCJ3lC,YACEuf,EACAqmB,EACA3J,EACA4E,EACAgF,EACAlG,EACAhK,GAMA,MAAM,KACJhvB,EAAI,YACJm/B,EAAW,UACXC,EAAS,UACTC,EAAS,WACTC,EAAU,YACVja,EAAW,UACX9E,EAAS,aACTgf,EAAY,QACZ3C,GACE5N,EAAOwQ,MAWX,GAVA/nC,KAAKuI,KAAOA,EACZvI,KAAK0nC,YAAcA,EACnB1nC,KAAK2nC,UAAYA,EACjB3nC,KAAK4nC,UAAYA,EACjB5nC,KAAK6nC,WAAaA,EAClB7nC,KAAK4tB,YAAcA,EACnB5tB,KAAK8oB,UAAYA,EACjB9oB,KAAK8nC,aAAeA,EACpB9nC,KAAKmlC,QAAUA,GAEVnlC,KAAKuI,KACR,MAAM,IAAIzC,MAAO,gHAGnB9F,KAAK2iC,KAAO,CACV6E,SACA3J,KACA4E,gBACAgF,mBACAtmB,WACAogB,WACAhK,UAEF,MAAM,SAAEj1B,GAAamgC,GACf,SAAE4C,EAAQ,SAAED,EAAQ,OAAEG,EAAM,QAAED,GAAY/N,EAAOwQ,MAEvD/nC,KAAKgoC,aAAe,CAAC,EACrBhoC,KAAKioC,QAAQ,cAAejoC,KAAK0nC,aAAa,GAC3CO,QAAQ,YAAajoC,KAAK2nC,UAAW,GACrCM,QAAQ,gBAAiBjoC,KAAK4nC,UAAW,QACzCK,QAAQ,iBAAkBjoC,KAAK6nC,WAAY,MAC3CI,QAAQ,cAAejoC,KAAK4tB,YAAa,IACzCqa,QAAQ,SAAUjoC,KAAK8oB,WAAW,GAClCof,gBAAgBloC,KAAK8nC,cACrBK,WAAWnoC,KAAKmlC,SAChBnoC,MAAM,WAAYqoC,GAClBroC,MAAM,WAAYooC,GAClBpoC,MAAM,UAAWsoC,GACjBtoC,MAAM,SAAUuoC,GAChB6C,eAAepoC,KAAKuI,MAMnBvI,KAAKgoC,aAAaL,UAAY,GAChCxmB,GAAS,KACPnhB,KAAKqoC,WAAWC,QAAQ,GACvB,KAGLtoC,KAAKuoC,aAAejmC,EAAStC,KAAKwoC,iBAAkBxoC,KAAKyoC,SAC3D,CAMAD,iBACE,OAAOxoC,KAAKgoC,YACd,CASAC,QAAQjJ,EAAO9oB,EAAKwyB,GAClB,MAAMtiB,OAAgB9mB,IAAR4W,EAAoBwyB,EAAaxyB,EAI/C,YAHc5W,IAAV8mB,IACFpmB,KAAKgoC,aAAahJ,GAAS5Y,GAEtBpmB,IACT,CAQA2oC,WAAWC,GACT,MAAM1D,OAA+B5lC,IAAlBspC,GAAsCA,EACzD5oC,KAAKioC,QAAQ,UAAW/C,GAAY,EACtC,CAQAkD,eAAe7/B,GAGb,OAFAvI,KAAKqoC,WAAa,IAAIroC,KAAK2iC,KAAK8E,iBAAiBl/B,GACjDvI,KAAKgoC,aAAaK,WAAaroC,KAAKqoC,WAAWQ,mBACxC7oC,IACT,CAQAhD,MAAMA,EAAO8rC,GACX,GAAI9rC,GAAS8rC,EAAI,CAGf,MAAMC,EAAY1B,EAAuBrqC,GACzC,IAAK+rC,EACH,MAAM,IAAIjjC,MAAM,+BAKlB,GAAI9F,KAAKgoC,aAAae,GAAY,CAChC,MAAM,KAAEC,GAAShpC,KAAK2iC,KAAKF,cAC3BqG,EAAKE,EAAKhpC,KAAKgoC,aAAae,GAAYD,EAC1C,CACA9oC,KAAKgoC,aAAae,GAAaD,CACjC,CACA,OAAO9oC,IACT,CAEAkoC,gBAAgBe,GACd,IAAKA,EACH,OAAOjpC,KAET,MAAMkpC,EAAKlpC,KAEXA,KAAKmpC,MAAQnpC,KAAKuI,KAClBvI,KAAKuI,KAAO,WACV,MAAM2Z,EAAUgnB,EAAGE,iBACnB,OAAOF,EAAGC,MAAMjnB,EAClB,EAEA,MAAMmnB,EAAqB,CACzBC,MAAO,IACPC,UAAU,EACVC,YAAY,EACZtmB,OAAQ,WACRumB,UAAW,SAAU,GAAY,IAAZ,OAAEC,GAAQ,EACbR,EAAGS,oBACXrG,KAAOoG,EAAOE,MAAM1zB,KAC9B,GAQF,OALAlW,KAAKgoC,aAAe,IACfhoC,KAAKgoC,gBACLqB,GAGErpC,IACT,CAEA2pC,oBAEE,OADA3pC,KAAK6pC,aAAe,CAAC,EACd7pC,KAAK6pC,YACd,CAEAT,iBACE,OAAOppC,KAAK6pC,cAAgB7pC,KAAK2pC,mBACnC,CAEAxB,WAAW2B,GACT,GAAIA,EAAiB,CACnB,MAAMZ,EAAKlpC,KAGXkpC,EAAGlsC,MAAM,eAAe,KACtB,IAAKksC,EAAGnG,QAAS,CACfmG,EAAGnG,QAAUmG,EAAGb,WAAW0B,iBAAiB,GAC5C,MAAMjB,EAAK9oC,KAAKgoC,aAAqB,OACjCc,GACFI,EAAGvG,KAAKxhB,UAAS,IAAM2nB,KAAM,GAEjC,CACAI,EAAGc,aAAed,EAAGnG,OAAO,IAG9B,MAAMkH,EAA6B,SAAUjtC,GAC3C,IAAKA,EACH,OAEF,MAAM4qC,EAAYsB,EAAGlB,aAAakC,eAC5B,KAAE7mB,GAAS6lB,EAAGvG,KAAKF,cAIVpf,EAFK6lB,EAAGb,WAAW0B,iBAED,CAC/B,CAACnC,GAFgB5qC,EAAM0sC,OAAOE,MAAM1zB,QASpCgzB,EAAGc,aAAed,EAAGnG,SAHrB/lC,EAAM0sC,OAAOE,MAAM1zB,IAAIgzB,EAAGc,aAAapC,IACvCsB,EAAGnG,QAAUmG,EAAGc,aAIpB,EAEAd,EAAGlsC,MAAM,WAAYitC,GACrBf,EAAGlsC,MAAM,UAAWitC,EACtB,CACA,OAAOjqC,IACT,CAGImqC,uBACF,OAAOnqC,KAAK2iC,KAAKpL,OAAO4S,gBAC1B,EAqBF5C,EAAyBnxB,QAAU,CACjC,WACA,SACA,KACA,gBACA,wBACA,WACA,UAGFrY,EAAAA,QACGC,OAAO,wBACPg+B,WAAW,gCAAiCuL,GAC/CxpC,EAAAA,QAAQC,OAAO,wBAAwB2f,UAAU,sBAAuB,CACtEme,SAAU,CACRiH,QAAS,IAETx6B,KAAM,IAINkgC,SAAU,IACVX,aAAc,IAEdF,UAAW,IACXC,WAAY,IACZja,YAAa,IACb+Z,UAAW,IACXD,YAAa,IACb5e,UAAW,IACXqc,QAAS,IAETE,SAAU,IACVD,SAAU,IACVG,OAAQ,IACRD,QAAS,KAEXtJ,WAAY,gCACZxa,SAAW,ySAQV,G,mMC1WH,aAAa,mDAoBb,SAAS4oB,EAAsBvM,EAAe4E,GAC5C,MAAM,QAAEe,EAAO,WAAE6G,GAAe5H,EAEhC,MAAMgF,EAKJ7lC,YAAY2G,GACVvI,KAAKuI,KAAOA,EACZvI,KAAKsqC,cAAgB,CACnBC,gBAAiBF,EAAW9hC,GAC5BiiC,UAAW,CACTC,KAAMzqC,KAAK0qC,eAGf1qC,KAAK2qC,QAAU,IAAIvpC,MAAMmH,KAAKqiC,WAAW5qC,KAAKsqC,cAChD,CAMAhC,SACE,OAAOtoC,KAAK2qC,QAAQF,MACtB,CAWAC,aACE,OAAQ7mC,GACC7D,KAAK6qC,UAAU7qC,KAAKuI,MAAM0xB,MAAM6Q,IACrCjnC,EAAQknC,QAAQD,EAAe,GAGrC,CAEAf,iBACE,OAAO/pC,KAAK2qC,QAAQxB,KACtB,CAWA0B,UAAUtiC,EAAY+6B,GACpB,OAAIE,EAAQj7B,GACHs1B,EAAGkD,QAAQx4B,GACT8hC,EAAW9hC,GACbs1B,EAAGkD,QAAQx4B,EAAK+6B,SADlB,CAGT,CAOAuF,mBACE,OAAO7oC,KAAK2qC,OACd,EAGF,OAAOlD,CACT,EAhGa,QAWb1pC,QACGC,OAAO,wBACPqB,QAAQ,wBAAyB,CAChC,KACA,gBACA+qC,GAgFH,G,sPC/FD,MAAMY,EAAqB,SAErB50B,EAAU,CAAC,iBACjBrY,EAAAA,QAAQC,OAAO,wBAAwB6P,QAAQ,cAAe,IACzDuI,EACH,SAAUxW,GACR,OAAO,MAKL+B,uBAAuBspC,GACrB,OACEA,EAAMC,IACND,EAAMC,GAAGC,OAAO,EAAGH,EAAmBn6B,SAAWm6B,GACjDC,EAAM5C,UAEV,CAQA1mC,mBAAmBspC,GACjB,MAAMG,EAAWprC,KAAKqrC,gBAAgBJ,GAClCA,EACA7pC,MAAMkqC,eAAetrC,KAAKurC,SAASN,IACvC,IAAKG,EACH,MAAM,IAAItlC,MACR,+EAGJ,OAAOslC,CACT,CAQAzpC,6BAA6BspC,GAC3B,MAAMG,EAAWprC,KAAKwrC,YAAYP,GAClC,GAA+B,mBAApBG,EAASv4B,OAClB,MAAM,IAAI/M,MACP,sBAAqBslC,EAASF,2CAGnC,OAAOE,CACT,CAQAzpC,qBAAqBspC,EAAOQ,GAC1B,MAAMC,EAAc1rC,KAAKwrC,YAAYP,GACrCS,EAAYC,cAAcF,GAC1BC,EAAYE,SACd,CAYAjqC,oBAAoBspC,EAAO7kB,GACzB,MAAMylB,EAAgB7rC,KAAK8rC,sBAAsBb,GAC3Cc,EAAWF,EAAcG,GAC5BC,WACAC,UACAhpB,QAAQhmB,GAAMA,EAAEivC,YAEnB,GAAuB,GAAnBJ,EAASl7B,OACX,MAAM,IAAI/K,MACP,8DAA6DsgB,KAG5D2lB,EAASl7B,OAAS,GACpB/R,QAAQ+vB,KAAM,cAAakd,EAASl7B,wDAAwDuV,0HAG9FylB,EAAch5B,OAAOk5B,EAAS,IAC9BF,EAAcO,QAAQ,SAE1B,CASAzqC,wBAAwBspC,GAAsB,IAAfoB,EAAW,UAAH,6CAAG,CAAC,EACzC,MAAMR,EAAgB7rC,KAAK8rC,sBAAsBb,GACjDY,EAAch5B,OAAOjT,EAAE0sC,QAAQD,IAC/BR,EAAcO,QAAQ,SACxB,CAEAzqC,gBAAgBspC,GACd,GAAIA,aAAiBltC,EAAAA,QAAQ6jB,QAC3B,OAAOqpB,EACF,GAAoB,iBAATA,EAChB,OAAOltC,EAAAA,QAAQ6jB,QAAQqpB,GAEvB,MAAM,IAAInlC,MACP,oDAAmDmlC,IAG1D,EAEJ,GACC,O,iOCzGDltC,QAAQC,OAAO,wBAAwB2f,UAAU,mBAAoB,CACnEme,SAAU,CAERxB,UAAW,IACXiS,QAAS,IAET1iC,KAAM,KAERmyB,WAAY,CACV,WACA,gBACA,SAAUuF,EAAUl/B,GAClB,IAAI0lC,EAAQ/nC,KASZ,SAASwsC,IACP,GAAIzE,EAAMwE,QAAS,CACjB,IAAIE,EAAMpqC,EAAco6B,aAAasL,EAAMwE,SACvCE,IACF1E,EAAMzN,UAAYmS,EAEtB,CAGA,GADA1E,EAAM2E,WAAY,EACd3E,EAAMl+B,KAAM,CACdk+B,EAAMphC,YAActE,EAAcsqC,eAAe5E,EAAMl+B,MAEvD,IAAIxD,EAAQhE,EAAcuqC,UAAU7E,EAAMl+B,MAE5B9L,QAAQ6jB,QACpB2f,EAAS,GAAGsL,uBAAuB,WAE7BC,KAAK,QAAS,oBAAsBzmC,EAC9C,MACE0hC,EAAMphC,YAAc,GAExB,CA5BAohC,EAAM3P,QAAU,WACdoU,GACF,EACAzE,EAAMlF,WAAa,WACjB2J,GACF,CAwBF,GAEFhrB,SAAU,CACR,QACA,oFACA,gGACA,SACA,UACAurB,KAAK,KAEN,G,+OChDL,SAASC,EACPC,EACAC,EACA9qC,EACAqgC,EACA0K,GAWA,MATgB,CACdC,mBAAoBA,EACpBC,yBAA0BA,EAC1BC,WAAYA,EACZC,WAAYA,EACZC,QAASA,EACTC,iBAAkBA,GAOpB,SAASJ,EAAyBK,GAA0B,IAAnBC,EAAW,UAAH,6CAAG,OAClD,OAAOD,EAAME,MAAK,SAAUj6B,EAAGygB,GAC7B,OAAIzgB,EAAEg6B,GAAUzoC,cAAgBkvB,EAAEuZ,GAAUzoC,eAAuB,EAC/DyO,EAAEg6B,GAAUzoC,cAAgBkvB,EAAEuZ,GAAUzoC,cAAsB,EAC3D,CACT,GACF,CAEA,SAASsoC,EAAQ9N,GACf,IAAImO,EAAOjoC,EAAKkoC,EAAS1nB,EAEzB,GAAIsZ,aAAaoF,MAEf,IAAKl/B,KADLioC,EAAQ,GACInO,EACVtZ,EAAQsZ,EAAE95B,GAEW,iBAAVwgB,IACTA,EAAQonB,EAAQpnB,IAElBynB,EAAMl9B,KAAKyV,QAIb,IAAKxgB,KADLioC,EAAQ,CAAC,EACGnO,EACN5pB,OAAOzH,UAAU0/B,eAAen8B,KAAK8tB,EAAG95B,KAC1CkoC,GACEloC,EAAIgB,OAAO,GAAG1B,cAAgBU,EAAIooC,MAAM,IAAMpoC,GAC9CwL,WACFgV,EAAQsZ,EAAE95B,GACI,OAAVwgB,GAAmC,iBAAVA,IAC3BA,EAAQonB,EAAQpnB,IAGlBynB,EAAMC,GAAW1nB,GAIvB,OAAOynB,CACT,CAEA,SAASP,EAAWW,EAAMC,GACxB,MAAM/S,EAAQsH,EAAcxlC,UAAUgxC,GAAM,SAAU94B,GACpD,OAAOA,EAAKg5B,SAAWD,CACzB,IACI/S,GAAS,GACX8S,EAAK7S,OAAOD,EAAO,EAEvB,CAEA,SAASoS,EAAWU,EAAMC,EAAQE,GAChC,MAAMjT,EAAQsH,EAAcxlC,UAAUgxC,GAAM,SAAU94B,GACpD,MAAMk5B,EAAWl5B,EAAKg5B,SAAWD,EAC3BI,EAAY7L,EAAc8L,KAAKp5B,EAAKq5B,OAAO,SAAUC,GACzD,OAAOA,EAAKxL,KAAOmL,CACrB,IACA,OAAOC,GAAYC,CACrB,IACInT,GAAS,GACX8S,EAAK7S,OAAOD,EAAO,EAEvB,CAEA,SAASiS,EAAmBxnC,GAC1B,IAAIwgB,EAUJ,OAPEA,EADE6mB,EAAa1kC,MAAQ0kC,EAAa1kC,KAAK3C,GACjCqnC,EAAa1kC,KAAK3C,GACjBsnC,EAAUwB,SAAS9oC,GACpBsnC,EAAUwB,SAAS9oC,QAEnBtG,EAGH8mB,CACT,CAEA,SAASqnB,IACP,IAAIrrC,EAAWusC,eAAgBvsC,EAAWwsC,yBAaxC,OAAO,EAZP,IACE,MAAOC,EAAoBC,GACzB1sC,EAAWusC,aAAa3I,MAAM,KAChC,OAAOmH,IAAgB4B,UACrB5B,EAAc0B,GACd1B,EAAc2B,GAKlB,CAHE,MAAO5xC,GAEP,OADA4B,QAAQC,MAAM7B,IACP,CACT,CAIJ,CACF,E,QA7HAa,QACGC,OAAO,wBACPqB,QAAQ,sBAAuB2tC,GAElCA,EAAoB52B,QAAU,CAC5B,eACA,YACA,aACA,gBACA,gBAoHD,O,2UCpID,WAGErY,QAAQC,OAAO,wBAAwB2f,UAAU,gBAAiB,CAChEme,SAAU,CACRkD,MAAO,IACPoC,UAAW,IACX4N,MAAO,IACPhP,cAAe,KAEjBjE,YAAa,qCACbC,WAAY,CACV,WACA,gBACA,oBACA,+BACA,qBACA,SACE7a,SACAhf,cACAmU,kBACA24B,6BACAhtC,oBAEA,IAAI8lC,MAAQ/nC,KACR4hB,QACAstB,cAAgB,EACpB,MAAM9mC,OAAS,SACf2/B,MAAMhpC,OAAQ,EACdgpC,MAAMoH,cAAgB,CAAC,IAAK,IAAK,IAAK,KACtCpH,MAAMqH,SAAW,CAAC,IAAK,KACvBrH,MAAM3P,QAAU,KACdjX,SAASkuB,KAAM,IAAI,EAErB,IAAIC,QAAU,CACZC,KAAM,OACNC,QAAS,UACTC,QAAS,UACTC,KAAM,QAGR,SAASL,OACPtH,MAAM4H,QAAU,SAAsBrwC,IAAhByoC,MAAMiH,MAC5B7sC,cAAcwnB,UACZ,wCACAimB,qBAEF,IAAIC,EAAY9H,MAAM/I,MAAMn1B,KAAOk+B,MAAM/I,MAAMn1B,KAAO,GACtDk+B,MAAM/I,MAAMpR,YAAc,GAC1BhM,QAAUrhB,SAASuvC,eAAgB,GAAED,yBACHvwC,IAA9ByoC,MAAM/I,MAAM+Q,eACdhI,MAAM/I,MAAM+Q,cAAgB,CAC1BC,QAAS,GACTC,gBAAiB,GACjBC,eAAgB,IAElBtuB,QAAQuqB,UAAY,IACpBgE,gBAAgBvuB,UAEhBwuB,gBAEFxuB,QAAQyuB,iBAAiB,QAASC,yBAClC1uB,QAAQyuB,iBAAiB,QAASC,yBAClC1uB,QAAQyuB,iBAAiB,QAASE,qBAClC3uB,QAAQyuB,iBAAiB,UAAWE,qBACpC3uB,QAAQyuB,iBAAiB,UAAWG,UACtC,CAEA,SAASA,UAAUtzC,GACjB,IAAIuzC,EAAuBlwC,SAASuvC,eAClC9vC,KAAKuU,GAAK,sBAERm8B,EAAShxC,OAAOixC,eAAeC,UAGnC,GAFIH,IACFA,EAAkBA,EAAgBI,qBAAqB,QACvC,KAAd3zC,EAAE4zC,QAEJ5B,eACA6B,UAAUN,QACL,GAAkB,KAAdvzC,EAAE4zC,QAEX5B,eACA6B,UAAUN,QACL,GAAkB,KAAdvzC,EAAE4zC,QAEX5zC,EAAEwtB,iBACEwkB,cAAgB,GACduB,GAAiBA,EAAgBvB,cAAc/hC,aAEhD,GAAkB,IAAdjQ,EAAE4zC,SAEX,GAAIJ,GAAUA,EAAO1vC,WAAakG,KAAK8pC,UAAW,CAChD,GAAyB,MAArBN,EAAOO,UAET,OADAP,EAAOQ,WAAWC,YAAYT,EAAOU,kBAC9B,EAEc,OAArBV,EAAOO,WACc,MAArBP,EAAOO,WAEP/zC,EAAEwtB,gBAEN,OACK,GAAkB,KAAdxtB,EAAE4zC,SAEX,GAAIJ,GAAUA,EAAO1vC,WAAakG,KAAK8pC,UAAW,CAChD,GAAyB,MAArBN,EAAOO,UAET,OADAP,EAAOQ,WAAWC,YAAYT,EAAOW,cAC9B,EAEc,OAArBX,EAAOO,WACc,MAArBP,EAAOO,YAE2B,IAA9BK,iBAAiB1vB,UACnB8uB,EAAOQ,WAAWC,YAAYT,EAAOW,aAEvCn0C,EAAEwtB,iBAEN,OAEAylB,gBAAgBvuB,QAEpB,CAEA,SAAS0uB,0BACP,IAAIiB,GAAmB,EACvBxJ,MAAMhpC,OAAQ,EACdgpC,MAAMyJ,aAAe,GACrB,IAAIC,EAA6B/xC,OAC9BixC,eACAe,WAAW,GAAGC,wBACbC,EAAiBH,EAAsBL,gBACvCS,EACFJ,IAA0B7vB,QACtBgwB,EACAhwB,QAAQkwB,UACd5C,cAAgB,EAChB,IAAI6C,EAAkB,GACC,OAAnBF,GAA4BA,GAY9BN,EAAmBS,4BAA4BH,GAC/CE,EAAaN,EAAsBR,WAZ/BgB,OAAOR,EAAsBP,YAC/BK,EAAmBS,4BACjBP,IAGFF,EAAmBS,4BACjBP,EAAsBP,YAExBa,EAAaN,EAAsBP,WAAWgB,WAQlB,KADhCH,EAAaI,YAAYJ,IAAe,IACzB1mC,QAAQ,OACrB0mC,EAAaA,EAAWtwB,QAAQ,IAAK,MAElC6U,MAAMyb,IAAeA,EAAWlhC,OAAS,IAC5CkhC,EAAa,GACbR,GAAmB,EACnBhB,uBAEF6B,kBACEb,EACAQ,EACAN,EACmB,OAAnBI,IAA4BA,EAC5BE,EAAWlhC,OAAS,GAAuB,MAAlBkhC,EAAW,GAExC,CAEA,SAASM,YAAYl9B,GACnB,GACEA,EAAKsV,OAASxoB,mBAAmBqwC,cAAcC,QAC/Cp9B,EAAKsV,OAASxoB,mBAAmBuwC,cAAcD,OAE/C,OAAOp9B,EAAKs9B,aACRt9B,EAAKs9B,aAAaC,iBAClBv9B,EAAKsV,KACJ,IACLtV,EAAKsV,OAASxoB,mBAAmBqwC,cAAcK,eAC/Cx9B,EAAKsV,OAASxoB,mBAAmBuwC,cAAcI,WAG7Cz9B,EAAK8pB,cACL6F,MAAMtB,QAAQruB,EAAK8pB,aAAaT,qBAChC,CACA,MAAMqU,EAAiB19B,EAAK8pB,aAAaT,oBAAoBnb,MAC1DyvB,GAAWA,EAAOjpC,OAASsL,EAAK8pB,aAAac,eAEhD,OAAO8S,aAAc,EAAdA,EAAgBhT,QACzB,CAEF,OAAO1qB,EAAKsV,IACd,CAEA,SAASsoB,iBAAiB59B,GACxB,IAAIsV,EAAO4nB,YAAYl9B,GACvB,OACEsV,IAASxoB,mBAAmBqwC,cAAcU,QAC1CvoB,IAASxoB,mBAAmBqwC,cAAcW,UAC1CxoB,IAASxoB,mBAAmBuwC,cAAcQ,QAC1CvoB,IAASxoB,mBAAmBuwC,cAAcS,QAE9C,CAEA,SAASC,cAAc/9B,GACrB,IAAIsV,EAAO4nB,YAAYl9B,GACvB,OACEsV,IAASxoB,mBAAmBqwC,cAAc5C,MAC1CjlB,IAASxoB,mBAAmBuwC,cAAc9C,IAE9C,CAEA,SAASyD,UAAUh+B,GACjB,OAAO49B,iBAAiB59B,IAAS+9B,cAAc/9B,EACjD,CAEA,SAASi+B,cAAgD,IAApClwB,EAAS,UAAH,6CAAI/N,GAASg+B,UAAUh+B,GAChD,IAAIk+B,EAAW,GACf,GAAItL,MAAM4H,UACR0D,EAAWA,EAASzP,OAClBmE,MAAMiH,MACH9rB,QAAQ/N,GAAS+N,EAAO/N,KACxBkkB,KAAKlkB,IAAI,CACRZ,GAAIY,EAAKZ,GACT1K,KAAM5H,mBAAmBqxC,qBAAqBC,KAAOp+B,EAAKZ,GAC1Di/B,YAAar+B,EAAKs+B,OAClBhpB,KAAM4nB,YAAYl9B,YAGnB,CACL,MAAMu+B,EAAgBC,iBACtBN,EAAWA,EAASzP,OAClB8P,EACGxwB,QAAQ/N,GAAS+N,EAAO/N,KACxBkkB,KAAKlkB,IAAI,CACRZ,GAAIY,EAAKZ,GACT1K,KAAMsL,EAAKtL,KACX2pC,YAAar+B,EAAKq+B,YAClB/oB,KAAM4nB,YAAYl9B,OAG1B,CACA,OAAOk+B,CACT,CAEA,SAASM,iBACP,IAAIC,EAAS,GAiBb,OAhBA7L,MAAM3G,UAAUnsB,SAAS2M,IAGnBgyB,EAFIhyB,EAAQ6I,OACTxoB,mBAAmBqwC,cAAcuB,MAC3BD,EAAOhQ,OACdqL,6BAA6B6E,0BAC3B7E,6BAA6B8E,yBAAyB,CACpDnyB,MAMGgyB,EAAOhQ,OAAOhiB,EACjB,IAGLgyB,CACT,CAEA,SAASxB,kBACPb,EACAQ,EACAN,EACAuC,EACA5E,GAEA6E,qBACmB30C,IAAfyyC,IAA0BA,EAAa,IAC3ChK,MAAMmM,SAAWd,cACjBrL,MAAMoM,UAAYpM,MAAMoH,cACpBpH,MAAM/I,MAAM+Q,cAAcE,gBAAgBp/B,OAAS,IAKjDkiC,iBAJahL,MAAMmM,SAAS7wB,MAC7BlO,GACCA,EAAKtL,OAASk+B,MAAM/I,MAAM+Q,cAAcE,gBAAgB,OAG1DlI,MAAMmM,SAAWd,aAAaj+B,GAAS49B,iBAAiB59B,KACxD4yB,MAAMoM,UAAYpM,MAAMoH,gBAExBpH,MAAMmM,SAAWd,aAAaj+B,GAAS+9B,cAAc/9B,KACrD4yB,MAAMoM,UAAY,CAAC,OAGvB,IAAIC,EAAW7zC,SAASC,cAAc,OACtC4zC,EAASC,aAAa,KAAMzyB,QAAQrN,GAAK,sBACzC6/B,EAASC,aAAa,QAAS,sBAC/BzyB,QAAQsvB,WAAWoD,YAAYF,GAC/BA,EAAS/D,iBAAiB,aAAc4D,eACxC,IAAIM,EAAe,GACnBA,EAAex2C,QAAQ+iC,KACrByQ,EAAmBxJ,MAAMmM,SAAWnM,MAAMoM,UAC1C,IAEE5C,GACFgD,EAAa5jC,KAAK,CAAE6iC,YAAa,IAAK3pC,KAAM,MAC5C0qC,EAAa5jC,KAAK,CAAE6iC,YAAa,IAAK3pC,KAAM,QAE5C0qC,EAAa5jC,KAAK,KAClB4jC,EAAa5jC,KAAK,MAEhBohC,EAAWlhC,OAAS,IACtB0jC,EAAeA,EAAarxB,QAAQhmB,IAG8B,KAFjDq0C,EAAmBr0C,EAAEs2C,YAAct2C,GAEvC2J,cAAcwE,QAAQ0mC,EAAWlrC,kBAIhD,IAAK,IAAI+J,EAAI,EAAGA,EAAI2jC,EAAa1jC,OAAQD,IAAK,CAC5C,IAAI6/B,EAAkBlwC,SAASC,cAAc,OACzCoL,EAAO2lC,EACPgD,EAAa3jC,GAAG4iC,YAChBe,EAAa3jC,GACbwV,EAAQmrB,EACRgD,EAAa3jC,GAAG/G,KAChB0qC,EAAa3jC,GACjB6/B,EAAgBtE,UAAY,WAAavgC,EAAO,YAChD6kC,EAAgBtE,WACd,+BAAiCvgC,EAAO,KAC1C6kC,EAAgBtE,WACd,+BAAiC/lB,EAAQ,KAC3CqqB,EAAgBJ,iBAAiB,SAAS,SAAUnzC,GAClD,IAAIs3C,EAAkBx0C,KAAK6wC,qBAAqB,SAAS,GAAGzqB,MACxDquB,GACgD,IAAlD1M,MAAMoH,cAAc9jC,QAAQmpC,GAC1BE,GAAyD,IAA7C3M,MAAMqH,SAAS/jC,QAAQmpC,GACnCG,EACF,4HACAH,EACA,IACAx0C,KAAK6wC,qBAAqB,SAAS,GAAGzqB,MACtC,UACF,GAAIqrB,GAAyBA,IAA0B7vB,QAAS,CAC9D,IAAIgzB,EAAWr0C,SAASC,cAAc,OAMtC,GALAo0C,EAAIzI,UAAYwI,EACF7+B,OAAe++B,OAC3B,GACApD,EAAsBlpC,MAGtByrC,GACA/B,OAAOR,EAAsBP,YAE7BO,EAAsBP,WAAWmD,aAC/B,sBACAO,EAAIE,WAAWC,aAAa,wBAE9BtD,EAAsBP,WAAW/E,UAC/ByI,EAAIE,WAAW3I,cACZ,CACL,GAAkC,IAA9BvqB,QAAQozB,WAAWnkC,OAEnBylB,MACE6b,YACEV,EAAsBR,UAAUxvB,QAAQ,IAAK,QAIjDgwB,EAAsBR,UAAY,SAC/B,CACL,IAAIgE,GAAQ,GACRR,GAAcC,KAChBO,EAAQ3e,MACN6b,YAAYV,EAAsBR,aAGlCgE,IAAOxD,EAAsBR,UAAY,GAC/C,CAEIQ,EAAsBJ,YACxBzvB,QAAQszB,aACNN,EAAIE,WACJrD,EAAsBJ,aAErBzvB,QAAQ0yB,YAAYM,EAAIE,WAC/B,CACF,KAAO,CACL,IAAIK,EAAUvzB,QAAQozB,WAAWpzB,QAAQozB,WAAWnkC,OAAS,GACzDskC,EAAQn0C,WAAakG,KAAK8pC,YACM,IAA9BpvB,QAAQozB,WAAWnkC,OAAcskC,EAAQlE,UAAY,IACpDkE,EAAQv0C,UAEfghB,QAAQuqB,WAAawI,CACvB,CACAS,aACA7E,sBACA,IAAIgB,GAAmB,EAErBA,GADoD,IAAlDxJ,MAAMoH,cAAc9jC,QAAQmpC,GAK3BR,GAAqB5B,kBAAkBb,EAC9C,IACA6C,EAASE,YAAY7D,EACvB,CACF,CAEA,SAASwD,cAAcoB,GAErB,IADA,IAAIhmC,EAAI9O,SAASssC,uBAAuB,sBAC/Bj8B,EAAI,EAAGA,EAAIvB,EAAEwB,OAAQD,IACxBykC,IAAUhmC,EAAEuB,IAAMykC,IAAUzzB,SAC9BvS,EAAEuB,GAAGsgC,WAAWC,YAAY9hC,EAAEuB,GAGpC,CAEA,SAASmgC,UAAU1hC,GACjB,IAAKA,EAAG,OAAO,EACfimC,aAAajmC,GACT6/B,cAAgB7/B,EAAEwB,SAAQq+B,aAAe,GACzCA,aAAe,IAAGA,aAAe7/B,EAAEwB,OAAS,GAChDxB,EAAE6/B,cAAcqG,UAAUvgC,IAAI,sBAChC,CAEA,SAASsgC,aAAajmC,GACpB,IAAK,IAAIuB,EAAI,EAAGA,EAAIvB,EAAEwB,OAAQD,IAC5BvB,EAAEuB,GAAG2kC,UAAU30C,OAAO,sBAE1B,CAEA,SAAS2vC,sBACP,IAAInc,EAAI7zB,SAASC,cAAc,OAC/B4zB,EAAE+X,UAAYvqB,QAAQuqB,UACtB/X,EAAE+X,UAAYgG,YAAY/d,EAAE+X,WAAW,GACvCpE,MAAM/I,MAAMpR,YAAcwG,EAAE8d,UAC5BnK,MAAM/I,MAAM+Q,cAAcG,eAAiB9b,EAAE+X,UAC7CpE,MAAM/I,MAAM+Q,cAAcE,gBAAkB,GAC5C,IAAK,IAAIr/B,EAAI,EAAGA,EAAIgR,QAAQqqB,SAASp7B,OAAQD,IAAK,CAChD,IAAI4kC,EAAaphB,EAAE6X,SAAS,GACxBxhB,EAAOgrB,cAAcD,GACzB,GAAI/qB,IAAS6kB,QAAQI,KAAM,CACzB,IAAIgG,EAAcF,EAAMG,WAAWC,aACjC,uBACAxvB,MACEqE,IAAS6kB,QAAQG,QACF2D,cAAc/vB,MAC5BnmB,GAAMA,EAAE2M,OAAS6rC,MAGlB3N,MAAM/I,MAAM+Q,cAAcE,gBAAgBt/B,KAAK+kC,GAC/CF,EAAMK,YAAYH,IAGpBF,EAAMK,YAAYH,EAEtB,CACF,CACA3N,MAAM/I,MAAM+Q,cAAcC,QAAU5b,EAAE+X,UAAU2J,OAChD/N,MAAM/H,cAAc,CAAEtJ,KAAMqR,MAAM/I,QAClC+W,iBACF,CAEA,SAAS3F,gBACP,IAAI4F,EAAoBjO,MAAM/I,MAAM+Q,cAAcG,eAClD,IAAI9b,EAAI7zB,SAASC,cAAc,OAC/B4zB,EAAE+X,UAAYpuC,QAAQ+iC,KAAKkV,EAAmB,IAC9C5hB,EAAE+X,UAAYgG,YAAY/d,EAAE+X,WAAW,GACZ,IAAvB/X,EAAE+X,UAAUt7B,SAAcujB,EAAE+X,UAAY,KAC5C,IAAK,IAAIv7B,EAAI,EAAGA,EAAIwjB,EAAE6X,SAASp7B,OAAQD,IAAK,CAC1C,IAAI4kC,EAAaphB,EAAE6X,SAASr7B,GAE5B,GADW6kC,cAAcD,KACZlG,QAAQG,QAAS,CAC5B,IAAIiG,EAAcF,EAAMG,WAAWC,aACjC,uBACAxvB,MACE6vB,EAAa7C,cAAc/vB,MAC5BnmB,GAAMA,EAAE2M,OAAS6rC,IAEhBO,IACFT,EAAMtD,UAAY+D,EAAWzC,YAEjC,CACF,CACA5xB,QAAQuqB,UAAY/X,EAAE+X,UACtBpE,MAAM/I,MAAMpR,YAAcwG,EAAE8d,UAC5BnK,MAAM/H,cAAc,CAAEtJ,KAAMqR,MAAM/I,QAClCoW,YACF,CAEA,SAASW,kBACP,GAAIhO,MAAM/I,MAAM+Q,cAAcG,eAAgB,CAC5C,IAAI9b,EAAS7zB,SAASC,cAAc,OACpC4zB,EAAE+X,UAAYpuC,QAAQ+iC,KACpBiH,MAAM/I,MAAM+Q,cAAcG,eAC1B,IAEF9b,EAAE+X,UAAYgG,YAAY/d,EAAE+X,WAC5B,IAAI+J,UAAY,GACdC,cAAgB,GAQlB,GAPA/hB,EAAE4gB,WAAW//B,SAAQ,SAAUvU,GACzBA,EAAEM,WAAakG,KAAK8pC,UAClBtwC,EAAEuwC,WAA6B,MAAhBvwC,EAAEuwC,WAAmBiF,UAAUvlC,KAAKjQ,GAEvDy1C,cAAcxlC,KAAKjQ,EAEvB,IACIw1C,UAAUrlC,OAAS,EAAG,CACxB,IAAK,IAAIulC,EAAI,EAAGA,EAAIF,UAAUrlC,OAAQulC,IAAK,CACzC,IAAIC,IAAMt4C,QAAQ+iC,KAAKoV,UAAUE,GAAGnF,UAAW,IAM/C,GALI7c,EAAE0gB,aAAeoB,UAAUE,KAC7BC,IAAMA,IAAI50B,QAAQ,IAAK,KAEzB40B,IAAMlE,YAAYkE,KAClBC,SAAWhgB,MAAM+f,KACbC,QAAS,CACX,GAAIJ,UAAUE,GAAGhF,gBAAiB,CAChC,IAAImF,aAAed,cACjBS,UAAUE,GAAGhF,iBAEfkF,QAAUC,eAAiBjH,QAAQG,OACrC,CACA,GAAIyG,UAAUE,GAAG/E,aAAeiF,QAAS,CACvC,IAAIE,SAAWf,cAAcS,UAAUE,GAAG/E,aAC1CiF,QAAUE,WAAalH,QAAQG,OACjC,CACF,CACA,IAAK6G,QAAS,KAChB,CACA,IAAKA,QAGH,OAFAvO,MAAMhpC,OAAQ,OACdgpC,MAAMyJ,aAAe,sBAGzB,CACA,IAAIiF,gBAAkB,KAClBH,SAAU,EAgBd,GAfAH,cAAclhC,SAAQ,SAAUyhC,GAC9B,IAAIjsB,EAAOgrB,cAAciB,GACrBjsB,IAAS6kB,QAAQC,MAAQ9kB,IAAS6kB,QAAQG,UAEtB,OAApBgH,iBACAA,kBAAoBhsB,GACpB6rB,UAEAvO,MAAMhpC,OAAQ,EACdgpC,MAAMyJ,aAAe,qBACrB8E,SAAU,GAEZG,gBAAkBhsB,EAEtB,KACK6rB,QAAS,OACd,IAAItG,QAAUjyC,QAAQ+iC,KAAKiH,MAAM/I,MAAM+Q,cAAcC,QAAS,IAC9D,GAAmB,MAAfA,QAAQ,GAGV,OAFAjI,MAAMhpC,OAAQ,OACdgpC,MAAMyJ,aAAe,sBAGvBxB,QAAUA,QAAQvuB,QAAQ,IAAK,IAE/B,IADA,IAAIk1B,qBAAsB,EAEpB/lC,EAAI,EACRA,EAAIm3B,MAAM/I,MAAM+Q,cAAcE,gBAAgBp/B,OAC9CD,IACA,CACA,IAAIgmC,QAAU7O,MAAM/I,MAAM+Q,cAAcE,gBAAgBr/B,GACpDimC,YAAczD,cAAc/vB,MAC7BlO,GAASA,EAAKtL,OAAS+sC,UAE1B,GAAIC,YAAa,CACf,IAAIC,WAAa/D,iBAAiB8D,aAC9B,IAAIE,OAAO,GACX,IAAI9xC,OAAO,KACf+qC,QAAUA,QAAQvuB,QAAQm1B,QAASE,YAC/B5D,cAAc2D,eAChBF,qBAAsB,EAE1B,MACE5O,MAAMhpC,OAAQ,EACdgpC,MAAMyJ,aAAe,oBAEzB,CACA,IACExB,QAAUA,QAAQ8F,OACda,oBACF5O,MAAMoH,cAAcl6B,SAAS/X,IACjB,MAANA,IAAqC,IAAxB8yC,QAAQ3kC,QAAQnO,KAC/B6qC,MAAMhpC,OAAQ,EACdgpC,MAAMyJ,aAAe,qBACvB,IAGFwF,KAAKhH,SAEPjI,MAAMhpC,OAAQ,EACdgpC,MAAMyJ,aAAe,EAIvB,CAHE,MAAOt0C,GACP6qC,MAAMhpC,OAAQ,EACdgpC,MAAMyJ,aAAe,oBACvB,CACF,CACF,CAEA,SAAS5B,sBACPQ,eACF,CAEA,SAASgF,aACPxzB,QAAQuqB,UAAYgG,YAAYvwB,QAAQuqB,WACxC,IAAIyI,EAAMr0C,SAASC,cAAc,OACjC,IAAK,IAAIoQ,EAAI,EAAGA,EAAIgR,QAAQozB,WAAWnkC,OAAQD,IAAK,CAClD,IAAIpM,EAAOod,QAAQozB,WAAWpkC,GAC1BqhC,OAAOztC,KACTA,EAAK6vC,aAAa,kBAAmB,SACrC7vC,EAAK2nC,UAAY,SAAW3nC,EAAK2nC,UAAY,UAE/CyI,EAAIzI,WACF3nC,EAAKxD,WAAakG,KAAK8pC,UACnBxsC,EAAKysC,UACLzsC,EAAKzE,UACX60C,EAAIzI,WAAa/jC,MACnB,CACAwZ,QAAQuqB,UAAYyI,EAAIzI,SAC1B,CAEA,SAAS8F,OAAOztC,GACd,OAAOA,GAAwC,SAAhCA,EAAKyyC,SAASpwC,aAC/B,CAEA,SAASyqC,iBAAiB4F,GACxB,IACEC,EACAjR,EAFEkR,EAAW,EAGf,GAAI13C,OAAOixC,cACTwG,EAAMz3C,OAAOixC,gBACL0G,aACNnR,EAAQiR,EAAIzF,WAAW,IACbC,wBAAwBT,aAAegG,IAC/CE,EAAWlR,EAAMoR,gBAGhB,GACJ/2C,SAAiBkO,WACjBlO,SAAiBkO,UAAU8oC,cAE5BrR,EAAS3lC,SAAiBkO,UAAU8oC,eAC1BC,kBAAoBN,EAAK,CACjC,IAAIO,EAASl3C,SAASC,cAAc,QACpC02C,EAAIhC,aAAauC,EAAQP,EAAIpC,YAC7B,IAAI4C,EAAYxR,EAAMyR,YACtBD,EAAUE,kBAAkBH,GAC5BC,EAAUG,YAAY,WAAY3R,GAClCkR,EAAWM,EAAU9rC,KAAKiF,MAC5B,CAEF,OAAOumC,CACT,CAEA,SAASjH,gBAAgB2H,GAEvB,GADAA,EAAG7Q,aAE6B,IAAvBvnC,OAAOixC,mBACiB,IAAxBpwC,SAASg3C,YAChB,CACA,IAAIrR,EAAQ3lC,SAASg3C,cACrBrR,EAAM6R,mBAAmBD,GACzB5R,EAAM8R,UAAS,GACf,IAAIb,EAAMz3C,OAAOixC,eACjBwG,EAAIc,kBACJd,EAAIe,SAAShS,EACf,MAAO,QAC4C,IAAzC3lC,SAAS43C,KAAaC,gBAC9B,CACA,IAAIC,EAAa93C,SAAS43C,KAAaC,kBACvCC,EAAUT,kBAAkBE,GAC5BO,EAAUL,UAAS,GACnBK,EAAUxlC,QACZ,CACF,CAEA,SAASm/B,4BAA4BsG,GAInC,IAHA,IAAIC,EAAYD,EACZE,GAAuB,EACvBjH,GAAmB,GACfiH,GACN,GAAID,IAAc32B,QAChB2vB,GAAmB,EACnBiH,GAAuB,OAEvB,GAAID,EAAUnH,gBAAiB,CAC7B,IAAI3mB,EAAOgrB,cAAc8C,GACzB,GAAI9tB,IAAS6kB,QAAQI,KAAM,CACzB,IAAI2G,EAAMt4C,QAAQ+iC,KAAKyX,EAAUtH,WAErB,OADZoF,EAAMlE,YAAYkE,KAEhB9E,GAAmB,EACnBiH,GAAuB,GACdnC,EAAIxlC,OAAS,IAAMylB,MAAM+f,IAClC9E,GAAmB,EACnBiH,GAAuB,GAEvBD,EAAYA,EAAUnH,eAE1B,MAAW3mB,IAAS6kB,QAAQE,SAC1BgJ,GAAuB,EACvBjH,EAAmB9mB,IAAS6kB,QAAQC,MAEpCgJ,EAAYA,EAAUnH,eAE1B,MACE,GAAIa,OAAOsG,EAAUrH,YAAa,CAChC,IAAIuH,EAAQhD,cAAc8C,EAAUrH,YACpCsH,GAAuB,EACnBC,IAAUnJ,QAAQE,UACpB+B,EAAmBkH,IAAUnJ,QAAQC,KACzC,MACEiJ,GAAuB,EAK/B,OAAOjH,CACT,CAEA,SAASkE,cAAcyB,GACrB,GACEjF,OAAOiF,IACPA,EAAIvB,WAAWC,aAAa,uBAC5B,CACA,IAAI8C,EAAUxB,EAAIvB,WAAWC,aAC3B,uBACAxvB,MACF,OAAyC,IAArC2hB,MAAMqH,SAAS/jC,QAAQqtC,GAAwBpJ,QAAQE,SACR,IAA1CzH,MAAMoH,cAAc9jC,QAAQqtC,GAC5BpJ,QAAQC,KACLD,QAAQG,OACtB,CACE,OAAOH,QAAQI,IAEnB,CAEA,SAASyC,YAAYkE,EAAKsC,GAKxB,OAJItC,GAAe,OAARA,IACTA,EAAMA,EAAI50B,QAAQ,UAAW,IACxBk3B,IAAStC,EAAMA,EAAI50B,QAAQ,UAAW,MAEtC40B,CACT,CACF,IAGL,EA/uBD,EA+uBK,E,2eCzuBL,aAAa,kJAIE,MAAMuC,EAIXC,MAAQ,GAEhBj3C,cAAe,CAEfw2B,UACE0M,MAAMxhB,KAAK/iB,SAASu4C,aAAa7jC,SAAS8jC,IACxC,IACE,MAAMC,EACJD,EAAIE,UAAYF,EAAIE,SAASpoC,OAAS,GAAKkoC,EAAIE,SAAS,GAC1D,IACGD,GAC4B,iBAAtBA,EAAUE,UACoC,IAArDF,EAAUE,QAAQ7tC,QAAQ,sBAE1B,MAKJ,CAHE,MAAOnO,GAEP,MACF,CAEA,IAAIi8C,GAAW,EAEfrU,MAAMxhB,KAAKy1B,EAAIE,UAAUhkC,SAASmkC,IAChC,GACED,GAC6B,iBAAtBC,EAAKC,eAC+B,IAA3CD,EAAKC,aAAahuC,QAAQ,YAE1B,OAGF,MAAMxB,EAAOuvC,EAAKC,aAAarT,MAAM,KAAK,GAAGvkB,QAAQ,IAAK,IAC7C,cAAT5X,EAOAA,EAAKgH,OAAS,GAChB7Q,KAAK64C,MAAMloC,KAAK,CACd9G,KAAMA,EACN6O,SAAS,IAPXygC,GAAW,CASb,GACA,GAEN,CAEAG,QAAQzvC,GACN7J,KAAK0N,KAAO7D,CACd,CAEA6kC,OAAOpL,GACQ,KAATA,GAMJA,EAAOA,EAAKp+B,cACZlF,KAAK64C,MAAM5jC,SAASvH,IAClBA,EAAKgL,QAAUhL,EAAK7D,KAAKwB,QAAQi4B,IAAS,CAAC,KAP3CtjC,KAAK64C,MAAM5jC,SAASvH,IAClBA,EAAKgL,SAAU,CAAI,GAQzB,EACD,YAEM,MAAM6gC,EACJxd,YAAc,kCACdqL,aAAe,OACftL,SAAW,CAChBpuB,KAAM,KAGRsuB,WAAa4c,EACd,wBAED76C,EAAAA,QACGC,OAAO,wBACP2f,UAAU,aAAc,IAAI47B,EAAuB,G,gNC/FtDx7C,QAAQC,OAAO,wBAAwB2f,UAAU,eAAgB,CAC/Dme,SAAU,CACRkD,MAAO,IACPoC,UAAW,IACX4N,MAAO,IACPhP,cAAe,KAEjBjE,YAAa,oCACbC,WAAY,CACV,QACA,WACA,aACA,kBACA,cACA,cACA,KACA,SACE2B,EACAxc,EACA/e,EACAw7B,EACA7vB,EACAyrC,EACA3b,GAGA,MAAMkK,EAAQ/nC,KACd+nC,EAAMxJ,OAAS,GACfwJ,EAAMvJ,oBAAsB,GAC5BuJ,EAAMtJ,aAAe,GACrBsJ,EAAM0R,SAAW1rC,EAAYuH,MAE7ByyB,EAAMqD,SAAW,CAAC,EAElB,MAAMrN,EAAsB37B,EAAW47B,WAAa,iBAgQpD,SAAS0b,EAAiCC,GACxC,MAAMC,EAAqB77C,QACxB6jB,QAAQ,qBAAuBmmB,EAAM0R,UACrClxC,KAAK,qBACJqxC,IACFA,EAAmBjO,cAAcgO,EAAO91C,SACxC+1C,EAAmBC,OAAOF,EAAOE,SAGnC,MAAMC,EAAuB/7C,QAC1B6jB,QAAQ,uBAAyBmmB,EAAM0R,UACvClxC,KAAK,qBACJuxC,IACFA,EAAqBnO,cAAcgO,EAAO91C,SAC1Ci2C,EAAqBD,OAAOF,EAAOE,SAGrC14B,GAAS,KACPpjB,QACG6jB,QAAQ,qBAAuBmmB,EAAM0R,UACrClxC,KAAK,qBACL6d,MAAM2hB,EAAM/I,MAAMyT,aAAasH,YAClCh8C,QACG6jB,QAAQ,qBAAuBmmB,EAAM0R,UACrClxC,KAAK,qBACLqD,KAAKm8B,EAAM/I,MAAMyT,aAAasH,YAAc,IAE/Ch8C,QACG6jB,QAAQ,uBAAyBmmB,EAAM0R,UACvClxC,KAAK,qBACL6d,MAAM2hB,EAAM/I,MAAMyT,aAAa1S,cAClChiC,QACG6jB,QAAQ,uBAAyBmmB,EAAM0R,UACvClxC,KAAK,qBACLqD,KAAKm8B,EAAM/I,MAAMyT,aAAa1S,cAAgB,GAAG,GACnD,IACL,CAEA,SAASia,IACP,OAAO53C,EAAW63C,oCACpB,CAtSAlS,EAAM3P,QAAU,KACd2P,EAAM/G,SAAU,OACiB1hC,IAA7ByoC,EAAM/I,MAAMyT,eACd1K,EAAM/I,MAAMyT,aAAe,CACzBnS,OAAQ,GACRP,aAAc,GACdga,WAAY,GACZ3zB,WAAO9mB,IASR8C,EAAW63C,sCACXlS,EAAM/I,MAAMyT,aAAarsB,QACxB3pB,EAAAA,oBAAoBy9C,sBACpBnS,EAAM/I,MAAMyT,aAAarsB,QACvB3pB,EAAAA,oBAAoB09C,oBAExBpS,EAAM/I,MAAMyT,aAAarsB,WAAQ9mB,GAGnC6hB,GAAS,KACP4mB,EAAMqD,SAASgP,WACbr8C,QAAQ6jB,QAAQ,qBAAuBmmB,EAAM0R,UAE5CY,kBAAkB,CACjBhS,WAAYN,EAAMvJ,oBAClB0L,cAAe,OACfoQ,eAAgB,OAChB5S,aAAa,IAEdn/B,KAAK,qBAERw/B,EAAMqD,SAASmP,aACbx8C,QAAQ6jB,QAAQ,uBAAyBmmB,EAAM0R,UAE9CY,kBAAkB,CACjBhS,WAAYN,EAAMvJ,oBAClB0L,cAAe,OACfoQ,eAAgB,OAChB5S,aAAa,IAEdn/B,KAAK,qBAERw/B,EAAMqD,SAASoP,QACbz8C,QAAQ6jB,QAAQ,kBAAoBmmB,EAAM0R,UAEzCY,kBAAkB,CACjBhS,WAAYN,EAAMxJ,OAClB2L,cAAe,OACfoQ,eAAgB,OAChB5S,aAAa,IAEdn/B,KAAK,oBAAoB,IAC3B0xB,MAAK,KACN,MAAMwY,EAAe1K,EAAM/I,MAAMyT,aACjC,OAAO5U,EACJsG,IAAI,CACHvG,EAAgB6c,kBAChBhI,EAAanS,QACX1C,EAAgB8c,WAAWjI,EAAanS,UAE3CrG,MAAK,IAA2B,IAAzBsE,EAAQoc,GAAY,EAgC1B,OA5BA5S,EAAMtJ,aAAeb,EAAgBuD,qBACnC,CAAEC,UAAW2G,EAAM3G,UAAW4N,MAAOjH,EAAMiH,OAC3CjH,EAAM/I,WACN1/B,EACA06C,KAEFjS,EAAMxJ,OAASA,EAEfwJ,EAAMqD,SAASoP,QAAQ7O,cAAc5D,EAAMxJ,QACvCkU,EAAanS,SACfyH,EAAMqD,SAASgP,WAAWzO,cAAcgP,GACxC5S,EAAMqD,SAASmP,aAAa5O,cAAcgP,GAE1CnB,EAAYoB,iBAAiB7S,EAAMqD,SAASoP,QAAS,CACnD3wC,KAAM4oC,EAAanS,SAGjBmS,EAAasH,YACfP,EAAYoB,iBAAiB7S,EAAMqD,SAASgP,WAAY,CACtDvwC,KAAM4oC,EAAasH,aAGnBtH,EAAa1S,cACfyZ,EAAYoB,iBAAiB7S,EAAMqD,SAASmP,aAAc,CACxD1wC,KAAM4oC,EAAa1S,gBAIlBgI,EAAM8S,gCAAgC,IAE9C5gB,MAAK,KACJ8N,EAAM/G,SAAU,CAAI,GACpB,GACJ,EAGJ+G,EAAMpM,WAAa,WACjBoM,EAAMxJ,OAAS,GACfwJ,EAAMvJ,oBAAsB,GAC5BuJ,EAAMtJ,aAAe,EACvB,EAEAsJ,EAAM5H,eAAiB,IAAM4H,EAAM8S,iCAEnC9S,EAAM8S,+BACJC,IAEAh8C,QAAQE,IAAI+oC,EAAM/I,MAAMwU,YAAc,0BAGtCzL,EAAMvJ,oBAAsB,GAG1BuJ,EAAM/I,MAAMyT,aAAanS,QACW,KAApCyH,EAAM/I,MAAMyT,aAAanS,QAEzBxhC,QAAQE,IACN+oC,EAAM/I,MAAMwU,YACT,6BAA4BzL,EAAM/I,MAAMyT,aAAanS,UAEnD3C,EACJ3nB,IACE,GAAE+nB,aAA+BgK,EAAM/I,MAAMyT,aAAanS,SAC3D,CAAEE,WAAW,IAEdvG,MAAK,SAAUwG,GACd,MAAMC,EAAgBD,EAASl4B,KAAKtL,WACjC0jC,GAAiB,OAAXA,EAAE92B,OAEL+2B,EAAsBH,EAASl4B,KAAKtL,WACvC0jC,GAAiB,qBAAXA,EAAE92B,OAGP62B,GAAiB,GAAKE,EAAsB,EAC9CH,EAASl4B,KAAK6yB,OAAOsF,EAAe,GAC3BE,GAAuB,GAChCH,EAASl4B,KAAK6yB,OAAOwF,EAAqB,GAG5CmH,EAAMvJ,oBAAsBiC,EAASl4B,KAErCmxC,EAAiC,CAC/B71C,QAASkkC,EAAMvJ,oBACfqb,QAAQ,IAGV14B,GAAS,KACPpjB,QACG6jB,QAAQ,qBAAuBmmB,EAAM0R,UACrClxC,KAAK,qBACL6d,MAAM2hB,EAAM/I,MAAMyT,aAAasH,YAClCh8C,QACG6jB,QAAQ,qBAAuBmmB,EAAM0R,UACrClxC,KAAK,qBACLqD,KAAKm8B,EAAM/I,MAAMyT,aAAasH,YAAc,IAE/Ch8C,QACG6jB,QAAQ,uBAAyBmmB,EAAM0R,UACvClxC,KAAK,qBACL6d,MAAM2hB,EAAM/I,MAAMyT,aAAa1S,cAClChiC,QACG6jB,QAAQ,uBAAyBmmB,EAAM0R,UACvClxC,KAAK,qBACLqD,KAAKm8B,EAAM/I,MAAMyT,aAAa1S,cAAgB,GAAG,GACnD,KAGHgI,EAAMtJ,aAAeb,EAAgBuD,qBACnC,CAAEC,UAAW2G,EAAM3G,UAAW4N,MAAOjH,EAAMiH,OAC3CjH,EAAM/I,WACN1/B,EACA06C,KAGAc,GACyC,GAAzCA,GAKF/S,EAAM3I,kBAAkB,CAAE1I,KAAMqR,EAAM/I,OACxC,KAEKnB,EAAGkD,WAIdgH,EAAMgT,sBAAwB,KAC5B,MAAMC,EAAajT,EAAM/I,MAAMyT,aAAa1S,aAC5CgI,EAAM/I,MAAMyT,aAAaC,iBAAmB9yC,EAAEq7C,MAC5ClT,EAAMvJ,qBAELnb,KAAK,CAAExZ,KAAMmxC,IACbhlC,IAAI,YACJoQ,QACH2hB,EAAM3I,mBAAmB,EAG3B2I,EAAMmT,oBAAsB,KAC1BnT,EAAM3I,mBAAmB,EAG3B2I,EAAM3I,kBAAoB,CAAC+b,EAAeC,KAEtCrT,EAAM/I,MAAMyT,aAAarsB,QACvB3pB,EAAAA,oBAAoBy9C,sBACtBnS,EAAM/I,MAAMyT,aAAarsB,QACvB3pB,EAAAA,oBAAoB09C,mBAGtBpS,EAAMvJ,oBAAsB,GAE5Bkb,EAAiC,CAC/B71C,QAASkkC,EAAMvJ,oBACfqb,QAAQ,IAGV14B,GAAS,KACPpjB,QACG6jB,QAAQ,qBAAuBmmB,EAAM0R,UACrClxC,KAAK,qBACL6d,MAAM2hB,EAAM/I,MAAMyT,aAAasH,YAClCh8C,QACG6jB,QAAQ,qBAAuBmmB,EAAM0R,UACrClxC,KAAK,qBACLqD,KAAKm8B,EAAM/I,MAAMyT,aAAasH,YAAc,IAE/Ch8C,QACG6jB,QAAQ,uBAAyBmmB,EAAM0R,UACvClxC,KAAK,qBACL6d,MAAM2hB,EAAM/I,MAAMyT,aAAa1S,cAClChiC,QACG6jB,QAAQ,uBAAyBmmB,EAAM0R,UACvClxC,KAAK,qBACLqD,KAAKm8B,EAAM/I,MAAMyT,aAAa1S,cAAgB,GAAG,GACnD,MAEHgI,EAAM8S,gCAA+B,GAEnC9S,EAAM/I,OACR+I,EAAM/H,cAAc,CAAEtJ,KAAMqR,EAAM/I,OACpC,CA4CJ,IAED,G,o4BCxTH,MAAMqc,EACJ15C,eAAiB,CACf,KACA,SACA,oBACA,0BACA,gBACA,qBAMK25C,wBAAyB,EACzBC,YAAmC,GACnCC,mBAAoB,EAG3B55C,YACUi8B,EACAtG,EACAE,EACAD,EACAn1B,EACAiU,GACR,KANQunB,GAAAA,EAAgB,KAChBtG,OAAAA,EAAsB,KACtBE,kBAAAA,EAA6C,KAC7CD,wBAAAA,EAAyD,KACzDn1B,cAAAA,EAAqC,KACrCiU,kBAAAA,CACP,CAEH8hB,UACEp4B,KAAKq3B,iBAAmBr3B,KAAKq3B,kBAAoB,IACjDr3B,KAAKu3B,OAAOhN,IAAI6M,EAAAA,8BAA8B8C,qBAAqB,KACjEl6B,KAAKy7C,SAAW,GAChBz7C,KAAK07C,kBAAkB,IAIzB17C,KAAK27C,qBACP,CAKAA,sBACE,MAAMC,EAAyBr7C,SAASs7C,cAAc,qBAClDD,GACFA,EAAuBvL,iBAAiB,WAAYnzC,IACpC,UAAVA,EAAE0I,MACJ1I,EAAEwtB,iBACFnqB,SAASu7C,YAAY,cAAc,EAAO,YAG1CF,EAAuBG,UACrBH,EAAuBI,aAC3B,GAGN,CAMIC,mBACF,IAAK,IAAIrrC,EAAI5Q,KAAKu7C,YAAY1qC,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACrD,MAAMsrC,EAASl8C,KAAKu7C,YAAY3qC,GAChC,GAAIsrC,EAAQ,OAAOA,CACrB,CACF,CAEAC,wBAAwB7Y,GACtB,GAAIA,EAAKzyB,OAAS,EAAG,CACnB,MAAMsqB,EAAQn7B,KAAKu7C,YAAY5qC,KAAK,MAAQ,EAE5C,OAAO3Q,KAAKy3B,kBACT2kB,eACC9Y,EACuB,SAAvBtjC,KAAKm4B,cACLn4B,KAAK+5B,iBACL,GAEDE,MAAM1xB,IACLA,EAAK0M,SAASonC,IACZA,EAAQ/hB,UAAYt6B,KAAKqC,cAAco6B,aACrC4f,EAAQ9P,QACT,IAGHvsC,KAAKu7C,YAAYpgB,GAAS5yB,EACnBvI,KAAK69B,GAAGye,KAAK/zC,KAE1B,CACF,CAEAg0C,gBAAgBpnC,GAMd,MALsB,YAAlBA,EAAKzO,WAA2ByO,EAAKqnC,cAAgBC,EAAAA,UAAUC,OACjE18C,KAAK28C,gBAAkBxnC,EAAKo3B,QAC5BvsC,KAAKw7C,mBAAoB,GAGpBx7C,KAAKw3B,wBAAwBolB,2BAA2BznC,EACjE,CAEAumC,mBACE17C,KAAKw7C,kBACHx7C,KAAK28C,iBACL38C,KAAKy7C,SAASpwC,QAAS,aAAYrL,KAAK28C,qBAAuB,EACjE38C,KAAKs7C,wBAAyB,EAC9B,MAAM1iB,EACJ54B,KAAKw3B,wBAAwBqB,+BAC3B74B,KAAKy7C,UAAY,IAGjBz7C,KAAKsW,kBAAkB2iB,sBAAsBL,KAC/C54B,KAAKs7C,wBAAyB,EAElC,CAEAuB,YAAY3/C,GACVA,EAAEwtB,iBACF,MAAMoyB,EAAW5/C,EAAE6/C,cAAcC,cAAcC,QAAQ,cAEG,KAAtDj9C,KAAKw3B,wBAAwBwB,WAAW8jB,KAC1C98C,KAAKy7C,UAAYqB,EAErB,EAGK,MAAMI,EAIXt7C,cACE5B,KAAK87B,SAAW,CACd2f,SAAU,IACVpkB,iBAAkB,KAClBc,cAAe,IACf4B,gBAAiB,KAGnB/5B,KAAK+7B,YAAc,6BACrB,CAEAC,WAAaqf,EACd,qBAEDt9C,EACGC,OAAO,wBACP2f,UAAU,mBAAoB,IAAIu/B,EAAoB,G,mMCzJzD,aAAa,4DAGbn/C,QAAQC,OAAO,wBAAwB2f,UAAU,mBAAoB,CACnEme,SAAU,CACRqhB,WAAY,KAGdnhB,WAAY,WAAa,EACzBxa,SAAU,6DACT,G,y1BCxBHzjB,EACGC,OAAO,wBACP2f,UAAU,yBAA0By/B,EAAAA,QAA8B,G,qMCEnEr/C,QACGC,OAAO,wBAQP2f,UAAU,cAAe,CACxBme,SAAU,CAERuhB,YAAa,IACbC,aAAc,IACdC,SAAU,KACVC,oBAAqB,IACrBC,SAAU,KACVC,WAAY,IACZC,SAAU,IACVC,eAAgB,KAChBC,gBAAiB,KACjBC,yBAA0B,IAC1BC,kBAAmB,KACnBC,qBAAsB,KACtBC,SAAU,IACVC,UAAW,KACXC,SAAU,KACVC,SAAU,KACVC,qBAAsB,MAExBriB,WAAY,CACV,gBACA,qBACA,SAAUyG,EAAexgC,GACvB,IAAI8lC,EAAQ/nC,KAuCZ,SAASs+C,EAAWC,EAASlB,GAM3B,OAAQA,GACN,KAAKp7C,EAAmBu8C,iBAAiBC,KACvChc,EAAcxtB,QAAQspC,GAAS,SAAUG,GACvCA,EAAElL,YAAckL,EAAElL,aAAekL,EAAErkB,SACnCqkB,EAAEF,iBAAmBv8C,EAAmBu8C,iBAAiBC,IAC3D,IACA,MAEF,KAAKx8C,EAAmBu8C,iBAAiBG,MACvClc,EAAcxtB,QAAQspC,GAAS,SAAUG,GACvCA,EAAElL,YAAckL,EAAElL,aAAekL,EAAE70C,KACnC60C,EAAEF,iBACAv8C,EAAmBu8C,iBAAiBG,KACxC,IACA,MAEF,KAAK18C,EAAmBu8C,iBAAiBI,SACvCnc,EAAcxtB,QAAQspC,GAAS,SAAUG,GACvCA,EAAElL,YAAckL,EAAElL,aAAekL,EAAErkB,SACnCqkB,EAAEF,iBAAmBv8C,EAAmBu8C,iBAAiBC,IAC3D,IACA,MAEF,KAAKx8C,EAAmBu8C,iBAAiBK,gBACvCpc,EAAcxtB,QAAQspC,GAAS,SAAUG,GACvCA,EAAElL,YAAckL,EAAElL,YAClBkL,EAAEF,iBACAv8C,EAAmBu8C,iBAAiBK,eACxC,IACA,MAEF,QACE//C,QAAQC,MAAM,wBAIlBgpC,EAAM+W,WAAaC,EAAiBR,EAASxW,EAAMuV,aACrD,CAEA,SAASyB,EAAiBC,EAAUC,GAElC,OAAOxc,EAAcc,eACnByb,EACAC,GACA,SAAUtrC,EAAGygB,GACX,OAAOzgB,EAAEY,KAAO6f,EAAE7f,EACpB,GAEJ,CA3FAwzB,EAAMuW,WAAaA,EAEnBvW,EAAM3P,QAAU,WAEd2P,EAAM+W,WAAa,GAEnB/W,EAAMsV,YACJtV,EAAMsV,aAAep7C,EAAmBu8C,iBAAiBC,KAE3D1W,EAAMmX,YAAc,GAEfnX,EAAMuV,eACTvV,EAAMuV,aAAe,IAGvBvV,EAAMoX,wBAA0BpX,EAAMyV,oBACtCzV,EAAM0V,SAAW1V,EAAM0V,WAAY,EACnC1V,EAAMwV,SAAWxV,EAAMwV,UAAY,IACnCxV,EAAMmW,UAAYnW,EAAMmW,YAAa,EAEhCnW,EAAMoW,WACTpW,EAAMoW,UAAW,GAEdpW,EAAMqW,WACTrW,EAAMqW,UAAW,EAErB,EAEArW,EAAMlF,WAAc/e,IACdA,EAAQw5B,eAAiBx5B,EAAQw5B,aAAa8B,iBAC5CrX,EAAM+W,YAAc/W,EAAM+W,WAAWjuC,OAAS,GAEhDytC,EAAWvW,EAAM+W,WAAY/W,EAAMsV,YAEvC,CA0DJ,GAEF77B,SAAW,+vDAkCZ,G,qQC/JHzjB,QACGC,OAAO,wBAMP2f,UAAU,kBAAmB,CAC5Bme,SAAU,CACRgjB,WAAY,IACZzB,YAAa,IACbC,aAAc,IACdC,SAAU,KACVE,SAAU,IACVC,WAAY,IACZC,SAAU,IACV0B,sBAAuB,IACvBvB,yBAA0B,KAE5B9hB,WAAY,CACV,gBACA,qBACA,qBACA,oBACA,cACA,iBACA,SACEyG,EACAxgC,EACAq9C,EACAhpC,EACAvI,EACA20B,GAEA,IAAIqF,EAAQ/nC,KAqEZ,SAASu/C,IACP9c,EAAcxtB,QAAQ8yB,EAAM+W,YAAY,SAAU3pC,GAChD4yB,EAAMuV,aAAa3sC,KAAKwE,GACxBqqC,EAAmBrqC,EACrB,IACA4yB,EAAM+W,WAAWjuC,OAAS,CAC5B,CAEA,SAAS4uC,EAAStqC,GAChB,IAAI4yB,EAAM0V,SAAV,CAKA,IAAItiB,EAAQsH,EAAcxlC,UACxB8qC,EAAMuV,cACN,SAAU1sC,GACR,OAAOA,EAAE2D,KAAOY,EAAKZ,EACvB,IAEFwzB,EAAMuV,aAAaliB,OAAOD,EAAO,GAIjC,IAAIkiB,EAActV,EAAMsV,YACpBA,IAAgBp7C,EAAmBu8C,iBAAiBI,WACtDvB,EAAcp7C,EAAmBu8C,iBAAiBC,WAI5Bn/C,IAAtByoC,EAAMsV,aACNA,IAAgBloC,EAAKqpC,kBAErBzW,EAAM+W,WAAWnuC,KAAKwE,EAtBxB,CAwBF,CAEA,SAAS+N,EAAO/N,GACd,GAAwB7V,MAApByoC,EAAM2X,WACR,OAAO,EAGT,IAAI1Z,EAAQ7wB,EAAKq+B,YAAYxN,MAAM,KAC/B2Z,EAAY3Z,EAAM,GAElB4Z,EAAW,GACX5Z,EAAMn1B,OAAS,IACjB+uC,EAAW5Z,EAAM,IAInB,IAAI6Z,EAAQ9X,EAAM2X,WAAW1Z,MAAM,KACnC,OAAqB,IAAjB6Z,EAAMhvC,OAEN8uC,EACGz6C,cACA46C,WAAW/X,EAAM2X,WAAWx6C,gBAC/B06C,EACG16C,cACA46C,WAAW/X,EAAM2X,WAAWx6C,eAI/By6C,EAAUz6C,cAAc46C,WAAWD,EAAM,GAAG36C,gBAC5C06C,EAAS16C,cAAc46C,WAAWD,EAAM,GAAG36C,cAGjD,CAEA,SAAS66C,IACP,IAAI1C,EAActV,EAAMsV,YAKxB,GAJIA,IAAgBp7C,EAAmBu8C,iBAAiBI,WACtDvB,EAAcp7C,EAAmBu8C,iBAAiBC,WAG1Bn/C,IAAtByoC,EAAMsV,YAERtV,EAAM+W,WAAa/W,EAAM+W,WAAWlb,OAAOmE,EAAMuV,kBAC5C,CAEL,IAAI0C,EAAWvd,EAAcvf,OAC3B6kB,EAAMuV,cACN,SAAUnoC,GACR,OACEA,EAAKqpC,mBAAqBnB,GAC1BloC,EAAK8qC,YAAc5C,CAEvB,IAEFtV,EAAM+W,WAAa/W,EAAM+W,WAAWlb,OAAOoc,EAC7C,CAEAjY,EAAMuV,aAAazsC,OAAS,CAC9B,CAEA,SAASgC,EAAOsC,GACd,IAAI4yB,EAAM0V,SAAV,CAIA+B,EAAmBrqC,GAGnB,IAAIgmB,EAAQsH,EAAcxlC,UAAU8qC,EAAM+W,YAAY,SAAUluC,GAC9D,OAAOA,EAAE2D,KAAOY,EAAKZ,EACvB,IACAwzB,EAAM+W,WAAW1jB,OAAOD,EAAO,GAC/B4M,EAAMuV,aAAa3sC,KAAKwE,EATxB,CAUF,CAEA,SAASqqC,EAAmBrqC,GAExBA,EAAKqpC,mBACLv8C,EAAmBu8C,iBAAiBG,QAEpCxpC,EAAK+qC,qBACH/qC,EAAKuvB,OACLvvB,EAAKuvB,MAAMxhB,QAAQmY,GACV0M,EAAM+V,yBAAyB,CAAEziB,KAAMA,MAGtD,CAEA,SAAS8kB,EAAoBC,GAC3B,IAAIrY,EAAMsY,cAAV,CAMA,GALAtY,EAAMsY,eAAgB,EACtBtY,EAAMuY,wBACavY,EAAMuV,aAAa/O,MACnCgS,GAAMA,EAAE/M,cAAgBzL,EAAMyY,mBAK/B,OAFAzY,EAAM0Y,+BAAgC,OACtC1Y,EAAMsY,eAAgB,GAGxB3d,EACGge,oBAAoB3Y,EAAMyY,kBAC1BvmB,MAAMwG,IACL,GAAIA,EAAS6V,QAAS,CACpB,MAAMjb,EAAO,CACXmY,YAAazL,EAAMyY,iBACnBhC,iBACEv8C,EAAmBu8C,iBAAiBmC,cAExC5Y,EAAMuV,aAAa3sC,KAAK0qB,GACxB0M,EAAMyY,iBAAmB,EAC3B,MACEJ,EAAUI,iBAAiBI,aACzB,iBACA,EAEJ,IAED1f,SAAQ,KACP6G,EAAMsY,eAAgB,CAAK,GA9BA,CAgCjC,CAEA,SAASQ,EAAmBT,GAAW,MACA,QAArC,EAAIA,EAAUI,iBAAiBM,cAAM,OAAjC,EAAmCC,eACrCX,EAAUI,iBAAiBI,aAAa,iBAAiB,GAE3D7Y,EAAMuY,uBACR,CAvOAvY,EAAMyY,iBAAmB,GACzBzY,EAAMwX,OAASA,EACfxX,EAAM0X,SAAWA,EACjB1X,EAAM7kB,OAASA,EACf6kB,EAAMgY,UAAYA,EAClBhY,EAAMl1B,OAASA,EACfk1B,EAAMoY,oBAAsBA,EAC5BpY,EAAM8Y,mBAAqBA,EAC3B9Y,EAAMiZ,uBACJ1qC,EAAkB2qC,4BACpBlZ,EAAM0Y,+BAAgC,EACtC1Y,EAAMsY,eAAgB,EAEtBtY,EAAMmZ,eAAiB,IAEnB5B,EAAmB6B,sBAClBpZ,EAAMsV,cAAgBp7C,EAAmBu8C,iBAAiBC,MACzD1W,EAAMsV,cACJp7C,EAAmBu8C,iBAAiBI,UAI5C7W,EAAMqZ,kBAAoB,KACnBrZ,EAAMmZ,mBAKTnZ,EAAMsV,cAAgBp7C,EAAmBu8C,iBAAiBC,KAE1Da,EACG+B,SAAStZ,EAAM2X,YACfzlB,MAAK,SAAUwG,GACdsH,EAAMsX,sBAAsB,CAC1Bd,QAAS9d,EAASl4B,KAAK+4C,oBACvBjE,YAAatV,EAAMsV,aAEvB,IAEFiC,EACGiC,sBAAsBxZ,EAAMwV,SAAUxV,EAAM2X,YAC5CzlB,MAAK,SAAUwG,GACdsH,EAAMsX,sBAAsB,CAC1Bd,QAAS9d,EAASl4B,KAAKi5C,UAAUC,uBACjCpE,YAAatV,EAAMsV,aAEvB,IACJ,EAGFr9C,KAAKo4B,QAAU,WAERnzB,OAAOoJ,UAAUyxC,aACpB76C,OAAOoJ,UAAUyxC,WAAa,SAAU4B,EAActyC,GAEpD,OADAA,EAAWA,GAAY,EAErBpP,KAAKmrC,OAAO/7B,EAAUsyC,EAAa7wC,UAAY6wC,CAEnD,GAGFjf,EAAcxtB,QAAQ8yB,EAAMuV,cAAc,SAAUnoC,GAClDqqC,EAAmBrqC,EACrB,GACF,EAyKA4yB,EAAMuY,sBAAwB,KAC5BvY,EAAM0Y,+BAAgC,CAAK,CAE/C,GAEFj/B,SAAW,07HAyDZ,G,wPC7UHzjB,QACGC,OAAO,wBAOP2f,UAAU,oBAAqB,CAC9Bme,SAAU,CACRuhB,YAAa,IACbsE,cAAe,KACfpE,SAAU,KACVqE,qBAAsB,IACtBhE,eAAgB,KAChBC,gBAAiB,KACjBE,kBAAmB,KACnBC,qBAAsB,KACtBC,SAAU,IACVC,UAAW,KACXE,SAAU,KACVD,SAAU,KACVE,qBAAsB,MAExBriB,WAAY,CACV,qBACA,qBACA,SACEsjB,EACAr9C,GAGA,MAAM4/C,EAAW5/C,EAAmBu8C,iBAAiBC,KAC/CqD,EAAY7/C,EAAmBu8C,iBAAiBG,MAChDoD,EAAe9/C,EAAmBu8C,iBAAiBI,SACnDoD,EACJ//C,EAAmBu8C,iBAAiBK,gBAEtC,IAAI9W,EAAQ/nC,KAWZ,SAAS0uC,IACH3G,EAAMsV,cAAgByE,EAEpB/Z,EAAM8V,gBACRoE,EAAoBla,EAAM8V,gBAAiBiE,GAE3CxC,EAAmB4C,YAAYjoB,MAAK,SAAUwG,GAC5CwhB,EAAoBxhB,EAASl4B,KAAKi5C,UAAWM,EAC/C,IAEO/Z,EAAMsV,cAAgBwE,EAE3B9Z,EAAM6V,eACRqE,EAAoBla,EAAM6V,eAAgBiE,GAE1CvC,EAAmB+B,WAAWpnB,MAAK,SAAUwG,GAC3C6e,EAAmB6C,kBACjB1hB,EAASl4B,KAAK24C,gBAEhBe,EACExhB,EAASl4B,KAAK+4C,oBACdO,EAEJ,IAEO9Z,EAAMsV,cAAgB0E,EAE3Bha,EAAM6V,eACRqE,EAAoBla,EAAM6V,eAAgBmE,GAE1CzC,EACGiC,sBAAsBxZ,EAAMwV,UAC5BtjB,MAAK,SAAUwG,GACd6e,EAAmB6C,kBACjB1hB,EAASl4B,KAAKi5C,UAAUN,gBAE1Be,EACExhB,EAASl4B,KAAKi5C,UAAUC,uBACxBI,EAEJ,IAEK9Z,EAAMsV,cAAgB2E,EAC/BC,EACEla,EAAMiW,qBACNgE,GAGFja,EAAMsV,cACNp7C,EAAmBu8C,iBAAiBmC,cAEpCsB,EACEla,EAAMiW,qBACN/7C,EAAmBu8C,iBAAiBmC,aAG1C,CAEA,SAASsB,EAAoB1D,EAASlB,GAEpCtV,EAAM4Z,cAAgBpD,EACtBxW,EAAM6Z,qBAAqB,CACzBrD,QAASxW,EAAM4Z,cACftE,YAAaA,GAEjB,CA1EAtV,EAAM2G,OAASA,EACf3G,EAAMyW,iBAAmBv8C,EAAmBu8C,iBAE5Cx+C,KAAKo4B,QAAU,WACbsW,GACF,CAsEF,GAEFltB,SAAW,2zCAWZ,G,qMC3HL,SAAS89B,EAAmB3hB,EAAOv7B,EAAYH,GAC7C,IAAIi/C,GAAiB,EAErB,SAASG,EAAS3B,GAChB,OAAO/hB,EAAM3nB,IACX5T,EAAW47B,WACR,uCACC/7B,EAAmBmgD,yBAClB1C,EAAa,eAAiBA,EAAa,KAEpD,CAEA,SAASwC,IACP,OAAOvkB,EAAM3nB,IAAI5T,EAAW47B,WAAa,6BAC3C,CAEA,SAASujB,EAAsBr+B,EAAQw8B,EAAYlf,GACjD,OAAO7C,EAAM3nB,IACV,GACC5T,EAAW47B,mBACJ9a,mDACPjhB,EAAmBmgD,yBAClB1C,EAAa,eAAiBA,EAAa,KAC9C,CAAElf,UAAWA,IAAa,GAE9B,CAEA,SAAS2gB,IACP,OAAOD,CACT,CAEA,SAASiB,EAAkBjsC,GACzBgrC,EAAiBhrC,CACnB,CASA,MARgB,CACdmrC,SAAUA,EACVa,UAAWA,EACXX,sBAAuBA,EACvBJ,kBAAmBA,EACnBgB,kBAAmBA,EAIvB,CAjDApkD,QACGC,OAAO,wBACPqB,QAAQ,qBAAsBigD,GAEjCA,EAAmBlpC,QAAU,CAAC,QAAS,aAAc,qBA6CpD,G,qMCxBCrY,QAAQC,OAAO,wBAAwB2f,UAAU,uBAAwB,CACvEme,SAAU,CACRpF,KAAM,IACN2rB,UAAW,IACXC,cAAe,IACfC,oBAAqB,KAEvBvmB,WAAY,WACEh8B,KACNwiD,oBAAsB,CAC1BC,MAAO,OACPC,MAAO,MAEX,EACA3mB,YAAa,0CAEZ,G,gNC1BHh+B,QACGC,OAAO,wBACP2f,UAAU,6BAA8B,CACvCme,SAAU,CACRpF,KAAM,IACNsY,MAAO,IACP5N,UAAW,IACXuhB,UAAW,IACXC,cAAe,IACfC,iBAAkB,KAEpB1lB,QAAS,CACPh9B,OAAQ,qBAEV67B,WAAY,CACV,WACA,aACA,SAAUuF,EAAUn/B,GAClB,IAAI0gD,EAAc,EACd/a,EAAQ/nC,KAkEZ,SAAS+iD,EAAarsB,GAEpB,GAAYp3B,MAARo3B,EAAmB,CACrB,MAAMssB,EAAaziD,SAASuvC,eACzB,GAAE/H,EAAM4a,kBAAkBjsB,EAAKniB,MAElC,GAAmB,OAAfyuC,EAAqB,CACvB,MAAMC,EAAcllD,QAAQ6jB,QAAQohC,GAAY,GAC1CE,EAAaD,EAAYE,aAC/B,GAAmB,OAAfD,EACF,OAIFxsB,EAAKrnB,EAAI4zC,EAAYG,WACrB1sB,EAAKnnB,EAAI0zC,EAAYI,UACrB3sB,EAAK/Z,EAAIumC,EAAWI,YAEpB,MAAMC,EAAY,IACZC,EAAa,IACb5d,EAAS7nC,QAAQ6jB,QACrB2f,EAAS,GAAGsL,uBACV,mCAKJ,IAAI4W,EAAO/sB,EAAKrnB,EAAI,GAChBo0C,EAAOF,EAAY7sB,EAAK/Z,IAC1B8mC,EAAO/sB,EAAK/Z,EAAI4mC,GAGlB3d,EAAOmT,IAAI,OAAQ0K,EAAO,MAC1B7d,EAAOmT,IAAI,MAAOriB,EAAKnnB,EAAIi0C,EAAa,KAC1C,CAGAE,EAAsBhtB,EACxB,MAEEgtB,GAEJ,CAEA,SAASA,EAAsBhtB,GAG7B,IAAIitB,EAAiC,IAErC,GAAIjtB,EAAM,CACR,IAAI/3B,EAAYZ,QAAQ6jB,QACtBrhB,SAASs7C,cAAc,kBAEzBiH,EAAca,EAAiCjtB,EAAKnnB,EACpD5Q,EAAUo6C,IAAI,aAAc+J,EAAc,KAC5C,MACMnkD,EAAYZ,QAAQ6jB,QACtBrhB,SAASs7C,cAAc,mBAEf9C,IACR,aACA+J,EAAca,EAAiC,KAGrD,CAhIA3jD,KAAKo4B,QAAU,WACb2P,EAAM6b,MAAQ7b,EAAM5nC,OAAOyjD,MAC3B7b,EAAMlkC,QAAU,CACd,CAAEuiB,MAAO2hB,EAAM6b,MAAMh4C,KAAMA,KAAM,QACjC,CAAEwa,MAAO2hB,EAAM6b,MAAMC,SAAUj4C,KAAM,YACrC,CAAEwa,MAAO2hB,EAAM6b,MAAME,OAAQl4C,KAAM,UACnC,CAAEwa,MAAO2hB,EAAM6b,MAAM5oB,KAAMpvB,KAAM,eACjC,CAAEwa,MAAO2hB,EAAM6b,MAAMG,KAAMn4C,KAAM,QACjC,CAAEwa,MAAO2hB,EAAM6b,MAAMI,SAAUp4C,KAAM,iBACrC,CAAEwa,MAAO2hB,EAAM6b,MAAMK,OAAQr4C,KAAM,WAEjCxJ,EAAW8hD,oBACbnc,EAAMlkC,QAAQ8M,KAAK,CACjByV,MAAO2hB,EAAM6b,MAAM5T,QACnBpkC,KAAM,YAKRm8B,EAAMrR,KAAKjM,OAASsd,EAAM6b,MAAMI,eACJ1kD,IAA5ByoC,EAAMrR,KAAKuI,aAEX8I,EAAMrR,KAAKuI,aAAe,CACxBqB,OAAQ,GACRP,aAAc,GACdb,QAAS,CACP,CACE50B,OAAQ,GACRw0B,UAAW,GACX1Y,MAAO,MAKb2hB,EAAMrR,KAAKjM,OAASsd,EAAM6b,MAAMK,aACJ3kD,IAA5ByoC,EAAMrR,KAAK+b,eAEX1K,EAAMrR,KAAK+b,aAAe,CACxBnS,OAAQ,GACRP,aAAc,GACdga,WAAY,GACZ3zB,MAAO,IAGb,EAEApmB,KAAK6iC,WAAa,SAAU/e,GAU1B,GATIA,EAAQ4S,OAKV12B,KAAK02B,KAAO34B,QAAQ+iC,KAAK9gC,KAAK02B,MAE9BqsB,EAAahb,EAAMrR,OAEjB5S,EAAQkrB,MAAO,CAEjB,IAAItY,EAAOqR,EAAMiH,MAAMjH,EAAMiH,MAAMn+B,OAAS,GAC5CkyC,EAAarsB,GACbqR,EAAMrR,KAAOA,CACf,CACF,CAmEF,GAEFqF,YAAa,iDAEd,G,gNCpJHh+B,QAAQC,OAAO,wBAAwB2f,UAAU,mBAAoB,CACnEme,SAAU,CACRqoB,YAAa,IACb/iB,UAAW,IACXgjB,eAAgB,IAChBC,eAAgB,KAElBtoB,YAAa,oCACbC,WAAY,CACV,WACA,gBACA,qBACA,SAAUuF,EAAUp/B,EAAeF,GACjC,IACI8lC,EAAQ/nC,KAkCZ,SAASskD,EAAQC,GAEf,IAAIC,EAAUC,EAAe1c,EAAMiH,MAAMn+B,QAErC6zC,EAAe3mD,QAAQ+iC,KAAKiH,EAAMiH,OACtC0V,EAAa/zC,KAAK6zC,GAClBzc,EAAMiH,MAAQ0V,EAEd3c,EAAM4c,oBACN5c,EAAM6c,eAAeJ,EACvB,CAEA,SAASK,EAAWnuB,GAClB,IAAIouB,EAAM/c,EAAMiH,MAAM/xC,WAAWu/B,GAAMA,EAAEjoB,KAAOmiB,EAAKniB,KAErD,GAAIwwC,EAAYD,GAKd,OAJA/c,EAAMid,UAAYF,EAClB/c,EAAMyJ,aACJ,kEACFzJ,EAAM6c,oBAAetlD,GAGrByoC,EAAMid,WAAa,EACnBjd,EAAMyJ,aAAe,GAGvBzJ,EAAMiH,MAAM5T,OAAO0pB,EAAK,GAExB/c,EAAM4c,kBAAkBjuB,GACxBqR,EAAM6c,oBAAetlD,GAErB2lD,EAAmBH,GACnBI,GACF,CAEA,SAASN,EAAeluB,EAAM15B,GASlBsC,MAARo3B,GACCqR,EAAMod,YAAcpd,EAAMod,WAAW5wC,KAAOmiB,EAAKniB,IACjDwzB,EAAMod,YACLpd,EAAMod,WAAW5wC,IAAMmiB,EAAKniB,KAC3BmiB,EAAKjM,MAAQsd,EAAM6b,MAAMK,QACxBvtB,EAAKjM,MAAQsd,EAAM6b,MAAMI,UACzBttB,EAAKjM,MAAQsd,EAAM6b,MAAM5T,UAC7BtZ,EAAKniB,KAAOwzB,EAAMid,UAGlBjd,EAAMod,gBAAa7lD,GAIrByoC,EAAMid,WAAa,EACnBjd,EAAMyJ,aAAe,GAErBzJ,EAAMod,WAAazuB,EACCA,EAAKniB,GAC3B,CAEA,SAASowC,EAAkBjuB,GACzB,GAAYp3B,MAARo3B,EAAmB,CACrB,IAAI0uB,EAAmBrd,EAAMiH,MAAM/xC,WAChCu/B,GAAMA,EAAEjoB,IAAMmiB,EAAKniB,KAIlB6wC,GAAoB,IACtBrd,EAAMiH,MAAMoW,GAAoB1uB,GAG9BA,EAAKjM,OAASsd,EAAM6b,MAAMK,OAC5BvtB,EAAKymB,YAAa,SAEXzmB,EAAK+b,aAGV/b,EAAKjM,OAASsd,EAAM6b,MAAMI,iBACrBttB,EAAKuI,aAGVvI,EAAKjM,OAASsd,EAAM6b,MAAM5T,QAC5BtZ,EAAKymB,YAAa,SAEXzmB,EAAKqZ,aAEhB,CAEAhI,EAAMsc,eAAe,CAAEgB,MAAOC,KAChC,CAIA,SAASb,EAAelwC,GACtB,MAAO,CACLA,GAAIA,EACJkW,KAAMsd,EAAM6b,MAAMh4C,KAClBgiB,YAAa,gBACb6lB,OAAQ,SACR0J,YAAY,EAEhB,CACA,SAASmI,IACP,OAAO5oB,KAAK5zB,UAAUi/B,EAAMiH,MAC9B,CACA,SAASuW,EAAwBC,GAC1B1gB,MAAMtB,QAAQgiB,KACjBA,EAAS9oB,KAAK9zB,MAAM48C,IAGtBA,EAAOvwC,SAASyhB,GAASqR,EAAMiH,MAAMr+B,KAAK+lB,IAC5C,CACA,SAASwuB,IACP,IAAI3wC,EAAK,EAETwzB,EAAMiH,MAAM/5B,SAASyhB,IACnBA,EAAKniB,GAAKA,EACVA,GAAI,GAER,CACA,SAASwwC,EAAYU,GACnB,OAAO1d,EAAMiH,MAAMT,MAAM7X,MAErBA,EAAKqZ,gBACLrZ,EAAKqZ,cAAcE,gBAAgB1B,MAChCqI,GACCA,IACA30C,EAAmBqxC,qBAAqBC,KAAOkS,MAOzD,CACA,SAASC,EAAoB1V,EAASyV,GACpC,MAAME,EAAU,IAAIC,OAClB3jD,EAAmBqxC,qBAAqBC,KAAO,SAC/C,KAEF,OAAOvD,EAAQvuB,QAAQkkC,GAAS,CAAC5f,EAAO8f,KACtC,MAAMC,EAAS/O,OAAO8O,GACtB,OAAIC,EAASL,EAETxjD,EAAmBqxC,qBAAqBC,MAAQuS,EAAS,GAGtD/f,CAAK,GAEhB,CACA,SAASkf,EAAmBQ,GAC1B,IAAK,MAAM/uB,KAAQqR,EAAMiH,MACnBtY,EAAKqZ,gBACPrZ,EAAKqZ,cAAcC,QAAU0V,EAC3BhvB,EAAKqZ,cAAcC,QACnByV,GAEF/uB,EAAKqZ,cAAcE,gBACjBvZ,EAAKqZ,cAAcE,gBAAgB5W,KAAKud,GAC/B8O,EAAoB9O,EAAS6O,KAI9C,CAxMA1d,EAAMiH,MAAQ,GACdjH,EAAM6b,MAAQ,CACZh4C,KAAM,EACNi4C,SAAU,EACVC,OAAQ,EACR9oB,KAAM,EACN+oB,KAAM,EACNC,SAAU,EACVC,OAAQ,EACRjU,QAAS,GAEXjI,EAAMuc,QAAUA,EAChBvc,EAAM6c,eAAiBA,EACvB7c,EAAM8c,WAAaA,EACnB9c,EAAM4c,kBAAoBA,EAC1B5c,EAAMid,WAAa,EACnBjd,EAAMyJ,aAAe,GAErBxxC,KAAKo4B,QAAU,WAAa,EAE5Bp4B,KAAK6iC,WAAa,WAESvjC,MAArByoC,EAAMoc,aACRpc,EAAMiH,MAAMr+B,KAAK8zC,EAAe,IAChC1c,EAAM4c,qBAENY,EAAwBxd,EAAMoc,YAElC,CA6KF,IAGD,G,qQCzMLpmD,QAAQC,OAAO,wBAAwB2f,UAAU,kBAAmB,CAClEme,SAAU,CAERkD,MAAO,IACP+mB,KAAM,IACN5I,WAAY,IACZ6I,WAAY,IACZ7B,YAAa,IAEb8B,SAAU,IAEV5B,eAAgB,IAChB6B,cAAe,IACfC,YAAa,KAEfhpB,QAAS,CACPipB,SAAU,YAEZrqB,YAAa,mCACbC,WAAY,CACV,SACA,gBACA,gBACA,0BACA,qBACA,WACA,eACA,sBACA,cACA,SACEzE,EACAkL,EACAtgC,EACAkkD,EACApkD,EACAkf,EACAmlC,EACAC,EACAC,GAEA,MAAMC,EAAkB,kBAGlB1e,EAAQ/nC,KAuFd,SAAS0mD,EAAgB1pD,EAAOuL,GAEb,MAAfw/B,EAAM/I,OACc,MAApB+I,EAAM/I,MAAMn1B,MACU,MAAtBtB,EAAKo+C,eAMH5e,EAAM/I,MAAMn1B,OAAStB,EAAKo+C,eAC5BC,GAEJ,CAEA,SAASC,IAGP9e,EAAM+e,KAAKn2C,KAAKo2C,EAAYhf,EAAM+e,KAAKj2C,SACvCk3B,EAAMge,KAAKiB,MAAMC,YAAa,EAC9Blf,EAAMmf,YACR,CAEA,SAASC,EAAUC,GACjB,GAA0B,IAAtBrf,EAAM+e,KAAKj2C,QAAgBk3B,EAAMoV,WACnC,OAEF,MAAMkK,EAAWtf,EAAM+e,KAAK7pD,WAAWmN,GAAQA,EAAImK,KAAO6yC,IAC1Drf,EAAM+e,KAAK1rB,OAAOisB,EAAU,GAEF,IAAtBtf,EAAM+e,KAAKj2C,OACbk3B,EAAMke,cAAW3mD,EAEjByoC,EAAMke,SAAWqB,IAEnBV,IACAW,GACF,CAEA,SAASC,EAAqB9wB,EAAMtsB,GAClC,IAAKssB,EAAKtQ,MACR,OAUF,GANEsQ,EAAKjM,OAASxoB,EAAmBuwC,cAAcQ,QAC/Ctc,EAAKjM,OAASxoB,EAAmBuwC,cAAcS,UAE/C7C,EAAchmC,GAIdssB,EAAKjM,OAASxoB,EAAmBuwC,cAAc9C,MAC/ChZ,EAAKjM,OAASxoB,EAAmBuwC,cAAcI,UAC/Clc,EAAKjM,OAASxoB,EAAmBuwC,cAAcQ,QAC/Ctc,EAAKjM,OAASxoB,EAAmBuwC,cAAcS,SAE/C,OAGF,MAAMwU,EAAe1f,EAAMiH,MAAM9rB,QAAQ6b,GAChCA,EAAI0T,cAAgB1T,EAAI0T,aAAarsB,OAASsQ,EAAKniB,KAG5D,GAA4B,IAAxBkzC,EAAa52C,OACf,OAGF,MAAM62C,EAAiBD,EAAapuB,KACjC2F,IAAK,CACJ2jB,UAAW5a,EAAMqG,OACjBuZ,cAAe3oB,EAAMzqB,GACrBqzC,YAAa7f,EAAM/I,MAAMwmB,OAAOqC,WAChC5oB,aAAc,CACZqB,OAAQtB,EAAMyT,aAAanS,OAC3BP,aAAcf,EAAMyT,aAAa1S,aACjCvB,oBAAqB,GACrBU,QAAS,CACP,CACE50B,OAAQ00B,EAAMyT,aAAasH,WAC3Bjb,UAAW,IACX1Y,MAAOsQ,EAAKtQ,aAOhB0hC,EAAiBxB,EACpByB,gBAAgBhgB,EAAM/I,MAAMwmB,OAAOqC,WAAYH,GAC/CztB,MAAMskB,IACL,IAAK,MAAMrC,KAAUqC,EAAS,CAC5B,MAAMyJ,EAAe59C,EAAI4kC,MAAM3rB,MAAMqT,GAC5BA,EAAKniB,IAAM2nC,EAAOyL,gBAG3B,IAAKK,EACH,OAGFA,EAAa5hC,MAAQ81B,EAAOr4C,QACzBw1B,KAAKyZ,GAAWA,EAAOlnC,OACvBmhC,KAAK,KACV,CACAhF,EAAMmf,aACN9W,EAAchmC,EAAI,IAEtBo8C,EAAYyB,WAAWH,EACzB,CAEA,SAAS1X,EAAchmC,GACrB,GAAIA,EAAI4kC,MAAM3rB,MAAMqT,QAAwBp3B,IAAfo3B,EAAKtQ,QAAsB,CACtD,MAAM+9B,EAAcznB,KAAK9zB,MAAMm/B,EAAMoc,aACrC,IAAK,MAAM+D,KAAc/D,EAAYjhC,QAClChf,GAAMA,EAAEumB,OAASxoB,EAAmBuwC,cAAc2V,UAClD,CACD,MAAMC,EAAch+C,EAAI4kC,MAAM3rB,MAC3BqT,GAASA,EAAKniB,KAAO2zC,EAAW3zC,KAEnC,GAAI6zC,EAAa,CACf,MAAMlM,EAASmK,EAAwBgC,SACrCH,EAAWnY,cACXhI,EAAMge,KAAKP,OACXzd,EAAMge,KAAKx9C,KACX47C,EACA/5C,GAEE8xC,IAAWkM,EAAYhiC,QACzBgiC,EAAYhiC,MAAQ81B,EACpBnU,EAAMmf,aAEV,CACF,CACF,CACF,CAEA,SAASA,EAAWxwB,EAAMtsB,GACxB29B,EAAMugB,aAAc,EAEhB5xB,IACFA,EAAK6xB,SAAU,GAGjB3B,IACAW,KAGE7wB,GACCA,EAAKjM,OAASxoB,EAAmBuwC,cAAc9C,MAC9ChZ,EAAKjM,OAASxoB,EAAmBuwC,cAAcI,UAC/Clc,EAAKjM,OAASxoB,EAAmBuwC,cAAcQ,QAC/Ctc,EAAKjM,OAASxoB,EAAmBuwC,cAAcS,UAEjDuU,EAAqB9wB,EAAMtsB,GAI7B29B,EAAMke,SAAWqB,GACnB,CAIA,SAASkB,IACP,GAAIzgB,EAAMugB,aAER,GADe5rB,KAAK9zB,MAAMm/B,EAAMoc,aAEvB9gC,MACJqT,GAASA,EAAKjM,OAASxoB,EAAmBuwC,cAAc2V,UAG3D,IAAK,MAAM/9C,KAAO29B,EAAM+e,KACtB1W,EAAchmC,OARpB,CAgBA,GAHA29B,EAAMiH,MAAQ,GACdjH,EAAM+e,KAAO,GAGX/e,EAAMke,UACNle,EAAMke,WAAahkD,EAAmBwmD,kBAAkBC,aACxD,CACA,MAAMC,EAASjsB,KAAK9zB,MAAMm/B,EAAMke,UAI1BjX,EAAQ,QAEc,IAAnB2Z,EAAa,MACpBA,EAAa,KAAE93C,OAAS,GAExB9S,QAAQ+iC,KAAK6nB,EAAa,KAAE,GAAG3Z,MAAOA,GAGxC,IAAK,IAAIxS,EAAI,EAAGA,EAAIwS,EAAMn+B,OAAQ2rB,IAAK,CACrC,MAAM9F,EAAOsY,EAAMxS,GACnB9F,EAAKtQ,WAAQ9mB,EACTspD,EAAOlyB,KACTqR,EAAM8gB,YAAa,GAErB9gB,EAAMiH,MAAMr+B,KAAK+lB,EACnB,CAGA,IAAK,MAAMoyB,KAAUH,EAAQ,CAC3B,MAAM7B,EAAO6B,EAAOG,GACpB,IAAK,IAAIpK,EAAI,EAAGA,EAAIoI,EAAKj2C,OAAQ6tC,IAAK,CACpC,MAAMt0C,EAAM08C,EAAKpI,GACjBjc,EAAcxtB,QAAQ7K,EAAI4kC,OAAO,SAAUxS,GACzCA,EAAEpyB,IAAMs0C,CACV,SAEiC,IAAtB3W,EAAMoc,aACfpc,EAAM+e,KAAKn2C,KAAK,CACd4D,GAAInK,EAAImK,GACRy6B,MAAOvM,EAAcsmB,MACnB3+C,EAAI4kC,MACJtS,KAAK9zB,MAAMm/B,EAAMoc,eAIzB,CACF,CACA6E,EAAmBjhB,EAAMoc,aACzBoD,GACF,MAEEyB,EAAmBjhB,EAAMoc,aAGzBpc,EAAM+e,KAAKn2C,KAAKo2C,EAAY,IAG9B,GAAIhf,EAAMoc,kBAA4C,IAAtBpc,EAAMoc,YAA6B,CACjE,MAAM8E,EAAiBvsB,KAAK9zB,MAAMm/B,EAAMoc,aACxC1hB,EAAcxtB,QAAQg0C,GAAgB,SAAUC,GAC1CA,EAAIz+B,MAAQxoB,EAAmBuwC,cAAcI,iBACxCsW,EAAIjqB,aAGTiqB,EAAIz+B,MAAQxoB,EAAmBuwC,cAAcD,eACxC2W,EAAIzW,aAGTyW,EAAIz+B,MAAQxoB,EAAmBuwC,cAAc2V,gBACxCe,EAAInZ,aAEf,IACAhI,EAAMoc,YAAcznB,KAAK5zB,UAAUmgD,GACnClhB,EAAM/I,MAAMwmB,OAAOrB,YAAcpc,EAAMoc,WACzC,CAGApc,EAAM+e,KAAK7xC,SAAQ,CAAC7K,EAAKi9C,KACvB,IAAK,MAAO8B,EAAWzyB,KAAStsB,EAAI4kC,MAAMoa,UAAW,CACnD,MAAMC,EAAYthB,EAAMiH,MAAM3rB,MAAMmZ,GAAM9F,EAAKniB,KAAOioB,EAAEjoB,KAGtD80C,GACA3yB,EAAKjM,OAASxoB,EAAmBuwC,cAAcI,WAE/Clc,EAAK4yB,gBAAkBvrD,QAAQ+iC,KAAKuoB,EAAUxlD,UAEzCwlD,EAAUE,YAAcF,EAAUxlD,UACrC6yB,EAAK4yB,gBAAgBE,YAAc,mBACnC9yB,EAAK7yB,QAAU6yB,EAAK4yB,iBAGlBD,EAAUE,YAAcF,EAAUxlD,SACpCsd,GAAS,WAELuV,EAAK4yB,iBACL5yB,EAAK4yB,gBAAgBz4C,OACnB5O,EAAmBwnD,0BAErB/yB,EAAK4yB,gBAAkB5yB,EAAK4yB,gBAAgBtb,MAC1C,EACA/rC,EAAmBwnD,0BAKvBC,EAAwBhzB,EAAM2wB,EAAU8B,GAExCzyB,EAAK7yB,QAAU,CACb2lD,YAAa,mBACbtmC,OAAQ,YAGVwT,EAAK7yB,QAAQ4lC,UAAY,SAAUvsC,GACjC,MAAMgmB,EAAShmB,EAAEgmB,OACjBhmB,EAAEwtB,iBAEFi/B,EACE5hB,EAAM/I,MAAMn1B,KACZ6sB,EACAxT,EAAOkD,MAEX,CACF,IAGFwjC,EAAoBlzB,GAExB,KAGFqR,EAAMke,SAAWqB,IAGjBV,GAxIA,CAyIF,CAEA,SAAS8C,EAAwBhzB,EAAM2wB,EAAU8B,GAC/C,GACEzyB,EAAKtQ,OACLsQ,EAAKtQ,MAAM0vB,OAAOjlC,OAAS,IAC1B6lB,EAAK4yB,gBAAgBjmC,MAAMyvB,GAAWA,EAAO1sB,QAAUsQ,EAAKtQ,QAC7D,iBAEA,MAAMxa,EAIL,QAJS,EAAG8wB,KAAK9zB,MAChBm/B,SAAe,QAAV,EAALA,EAAOqe,gBAAQ,OAAY,QAAZ,EAAf,EAAiByD,kBAAU,OAE1B,QAF0B,EAA3B,EAA6BxmC,MAC1B2b,IAAK,eAAKA,EAAM8qB,QAAS/hB,SAAY,QAAP,EAALA,EAAO/I,aAAK,OAAQ,QAAR,EAAZ,EAAcwmB,cAAM,WAAf,EAAL,EAAsB37C,KAAI,WACrD,WAFI,EAAL,EAEGkgD,aACJ,OAAgB,QAAhB,EAJY,EAIVjD,KAAKO,UAAS,OAAkB,QAAlB,EAJJ,EAIMrY,MAAMma,UAAU,WAAlC,EAJY,EAIwB/iC,MAE/B7d,EAAO,CACX6d,MAAOsQ,EAAKtQ,MACZ4jC,SAAS,EACTp+C,KAAMA,GAER8qB,EAAK4yB,gBAAkB,IAAI5yB,EAAK4yB,gBAAiB/gD,EACnD,CACF,CAEA,SAAS++C,IAGP,MAAMrB,EAAW,CAAEa,KAAM,IACzB,IAAImD,EAcJ,OAbAxnB,EAAcxtB,QAAQ8yB,EAAM+e,MAAM,SAAU18C,GAC1C6/C,EAAa,CAAE11C,GAAInK,EAAImK,GAAIy6B,MAAO,IAClCvM,EAAcxtB,QAAQ7K,EAAI4kC,OAAO,SAAUtY,GACzCuzB,EAAWjb,MAAMr+B,KAAK,CACpB4D,GAAImiB,EAAKniB,GACT6R,MAAOsQ,EAAKtQ,MACZqtB,OAAQ/c,EAAK+c,OACbhpB,KAAMiM,EAAKjM,MAEf,IACAw7B,EAASa,KAAKn2C,KAAKs5C,EACrB,IAEOvtB,KAAK5zB,UAAUm9C,EACxB,CAEA,SAASc,EAAYxyC,GAEnB,MAAMnK,EAAM,CAAEmK,GAAIA,EAAIy6B,MAAO,IAO7B,OANAjxC,QAAQ+iC,KAAKiH,EAAMiH,MAAO5kC,EAAI4kC,OAC9BvM,EAAcxtB,QAAQ7K,EAAI4kC,OAAO,SAAUtY,GACzCA,EAAKtsB,IAAMmK,EACXq1C,EAAoBlzB,GACpBwzB,EAAyBxzB,EAC3B,IACOtsB,CACT,CAEA,SAAS+/C,EAAsB3E,EAAQ4E,GACvB9qD,MAAVkmD,IAIJA,EAAS9oB,KAAK9zB,MAAM48C,GACpB/iB,EAAcxtB,QAAQuwC,GAAQ,SAAU9uB,GACtC+L,EAAcxtB,QAAQm1C,GAAU,SAAUC,GACpC3zB,EAAKniB,KAAO81C,EAAM91C,KAChBq0C,EAAOlyB,IACTqR,EAAM8gB,YAAa,EACnBwB,EAAMC,IAAM,GAEZ5zB,EAAKjM,OAASxoB,EAAmBuwC,cAAcI,UAI7Clc,EAAKuI,aAAaC,SAClBxI,EAAKuI,aAAaC,QAAQ,GAAG50B,SAE7BigD,EAA4B7zB,GAC5B2zB,EAAMjkC,MAAQsQ,EAAKtQ,MACnBikC,EAAMxmD,QAAU6yB,EAAK7yB,QACrBwmD,EAAMf,gBAAkB5yB,EAAK4yB,iBAIrC,GACF,IACF,CAEA,SAASN,EAAmBxD,GAGZlmD,MAAVkmD,IAGJzd,EAAMiH,MAAMn+B,OAAS,EACrB20C,EAAS9oB,KAAK9zB,MAAM48C,GAEpB/iB,EAAcxtB,QAAQuwC,GAAQ,SAAU9uB,GACtCA,EAAKtQ,WAAQ9mB,EACbo3B,EAAKtsB,IAAM,EAEPw+C,EAAOlyB,KACTqR,EAAM8gB,YAAa,EACnBnyB,EAAK4zB,IAAM,GAET5zB,EAAKjM,OAASxoB,EAAmBuwC,cAAcI,UACjD2X,EAA4B7zB,GAG9BqR,EAAMiH,MAAMr+B,KAAK+lB,EACnB,IACF,CAEA,SAASkzB,EAAoBlzB,GAC3B,GACEA,EAAKjM,OAASxoB,EAAmBuwC,cAAcD,SAC9Cx0C,QAAQylC,QAAQuE,EAAM/I,MAAMwmB,OAAOgF,cAEpC,OAGF,MAAMC,EAAa1iB,EAAM/I,MAAMwmB,OAAOgF,aAAannC,MAChDiW,GAAMA,EAAEoxB,WAAah0B,EAAKniB,KAEzBk2C,IACF/zB,EAAKtQ,MAAQqkC,EAAWE,MAE5B,CAEA,SAASJ,EAA4B7zB,GACnC,GACEqR,EAAM/I,MAAMwmB,OAAO3hD,SACnBkkC,EAAM/I,MAAMwmB,OAAO3hD,QAAQgN,OAAS,GAErB,MAAX6lB,EAAKniB,GAAY,CACnB,MAAMq2C,EAAW7iB,EAAM/I,MAAMwmB,OAAO3hD,QAAQwf,MACzCqc,GAAMA,EAAEioB,gBAAkBjxB,EAAKniB,KAG9Bq2C,IACEl0B,EAAK6yB,aACP7yB,EAAKtQ,MAAQ,IAGfsQ,EAAK7yB,QAAU+mD,EAAS/mD,QAEtB6yB,EAAKuI,aAAaC,UACjBxI,EAAKuI,aAAaC,QAAQ,GAAG50B,SAE9BosB,EAAK4yB,gBAAkBsB,EAAS/mD,SAGtC,CAEJ,CAEA,SAASqmD,EAAyBxzB,GAChC,GACGA,GACDA,EAAKjM,OAASxoB,EAAmBuwC,cAAcI,UAC9C7K,EAAM/I,MAAMwmB,OAAO3hD,WACpBkkC,EAAM/I,MAAMwmB,OAAO3hD,QAAQgN,QAAU,IAKxB,MAAX6lB,EAAKniB,GAAY,CACnB,MAAMq2C,EAAW7iB,EAAM/I,MAAMwmB,OAAO3hD,QAAQwf,MACzCqc,GAAMA,EAAEioB,gBAAkBjxB,EAAKniB,KAG9Bq2C,IACFl0B,EAAK7yB,QAAU6yB,EAAK7yB,SAAW+mD,EAAS/mD,QACxC6yB,EAAK7yB,QAAQ2lD,YAAc,mBAC3B9yB,EAAK4yB,gBAAkBsB,EAAS/mD,QAE5B6yB,EAAK6yB,aACP7yB,EAAK7yB,QAAQqf,OAAS,WAGpBwT,EAAK4yB,iBACL5yB,EAAK4yB,gBAAgBz4C,OACnB5O,EAAmBwnD,0BAErB/yB,EAAK4yB,gBAAkB5yB,EAAK4yB,gBAAgBtb,MAC1C,EACA/rC,EAAmBwnD,0BAIvB/yB,EAAK7yB,QAAQ4lC,UAAY,SAAUvsC,GACjC,MAAMgmB,EAAShmB,EAAEgmB,OACjBhmB,EAAEwtB,iBAEFi/B,EAAuB5hB,EAAM/I,MAAMn1B,KAAM6sB,EAAMxT,EAAOkD,MACxD,GAGN,CACF,CAEA,SAASmhC,IAKHxf,EAAM8gB,YACRpmB,EAAcxtB,QAAQ8yB,EAAMiH,OAAO,SAAU6b,GAC3CA,EAAQP,IAAM,EAEd7nB,EAAcxtB,QAAQ8yB,EAAM+e,MAAM,SAAU18C,GAC1Cq4B,EAAcxtB,QAAQ7K,EAAI4kC,OAAO,SAAUtY,GACzC,GAAIA,EAAKniB,KAAOs2C,EAAQt2C,SAAqBjV,IAAfo3B,EAAKtQ,MACjC,GAAIigC,EAAwByE,iBAAiBp0B,GAC3C,GAAIA,EAAKtQ,MAAM/a,QAAQ,MAAQ,EAAG,CAChC,MAAM0/C,EAAar0B,EAAKtQ,MAAM4f,MAAM,KAEpC,IAAK,MAAMzG,KAAKwrB,EACTz0B,MAAM7lB,WAAW8uB,MACpBsrB,EAAQP,KAAO75C,WAAW8uB,GAGhC,MACOjJ,MAAM7lB,WAAWimB,EAAKtQ,UACzBykC,EAAQP,KAAO75C,WAAWimB,EAAKtQ,aAInCykC,EAAQP,KAAOvT,OAAOrgB,EAAKtQ,OAG/B,GAAIykC,EAAQP,OAASO,EAAQP,IAAK,CAChC,MACMU,EADYjjB,EAAM/I,MAAMn1B,KACG,KAAOghD,EAAQt2C,GAAK,OACrDwzB,EAAMge,KAAKx9C,KAAKyiD,GAAgBH,EAAQP,GAC1C,CACF,GACF,GACF,GAEJ,CAEA,SAASX,EAAuBsB,EAAWC,EAAUC,GACnD,MAAMzD,EAAoC,CACxC/E,UAAWsI,EACXhsB,aAAclhC,QAAQ+iC,KAAKoqB,EAASjsB,cACpCsqB,YAAY,EACZ6B,mBAAoBnpD,EAAmBwnD,wBACvC/J,WAAYyL,EACZvD,YAAa7f,EAAM/I,MAAMwmB,OAAOqC,YAIhCH,EAAezoB,aAAaC,SAC5BwoB,EAAezoB,aAAaC,QAAQruB,OAAS,IAE7C62C,EAAezoB,aAAaC,QAAQ,GAAG9Y,MAAQ+kC,GAGjD7E,EACGyB,gBAAgBhgB,EAAM/I,MAAMwmB,OAAOqC,WAAY,CAACH,IAChDztB,MAAMskB,IACL,GAAIA,GAAWA,EAAQ1tC,OAAS,EAAG,CACjCq6C,EAASrnD,QAAU06C,EAAQ,GAAG16C,QAC9BqnD,EAAS5B,gBAAkBvrD,QAAQ+iC,KAAKoqB,EAASrnD,SAEjD,MAAMwlD,EAAYthB,EAAMiH,MAAM3rB,MAAMmZ,GAAMA,EAAEjoB,KAAO22C,EAAS32C,KACxD80C,GAA8B,IAAjB6B,EAAS9gD,MACxBi/C,EAAUxlD,QAAUqnD,EAASrnD,QAC7BwlD,EAAUC,gBAAkB4B,EAAS5B,gBAEzC,IAEN,CAEA,SAAS+B,EAAoBjhD,GAC3B,GAAW,MAAPA,GAA4B,MAAbA,EAAI4kC,MAErB,OAAO,EAGT,IAAIsc,GAAW,EAYf,OAXA7oB,EAAcxtB,QAAQ7K,EAAI4kC,OAAQtY,IAEhB,MAAdA,EAAKtQ,OACS9mB,MAAdo3B,EAAKtQ,OACU,KAAfsQ,EAAKtQ,QAGLklC,GAAW,EACb,IAGKA,CACT,CAEA,SAAS1E,IAKP7e,EAAMwjB,WAAa,GACnBxjB,EAAMyjB,eAAgB,EAEtB,MAAMC,EAAkB1jB,EAAMoV,WAsC9B,OAnCA1a,EAAcxtB,QAAQ8yB,EAAM+e,MAAM,SAAU18C,GAC1C,IAAIshD,GAAgB,GACI,IAApBD,IAEFC,EAAgBL,EAAoBjhD,IAGtC,MAAMuhD,GACgB,IAApBF,IAA+C,IAAlBC,EAE/BjpB,EAAcxtB,QAAQ7K,EAAI4kC,OAAO,SAAUtY,GACzCA,EAAK33B,WAAQO,GAGuB,IAAhCqsD,IACFj1B,EAAK33B,MAAQ6sD,EAAal1B,SAGTp3B,IAAfo3B,EAAK33B,QACPgpC,EAAMyjB,eAAgB,EAInB/oB,EAAc8L,KAAKxG,EAAMwjB,YAAY,SAAUruD,GAC9C,OAAOA,EAAEu2C,SAAW/c,EAAK+c,MAC3B,KAEA1L,EAAMwjB,WAAW56C,KAAK+lB,EAAK33B,OAGjC,GACF,IAGAgpC,EAAMyjB,cAAgBzjB,EAAMme,gBAAkBne,EAAMoe,cAC7Cpe,EAAMyjB,aACf,CAEA,SAASI,EAAal1B,GACpB,GACEA,EAAKjM,OAASxoB,EAAmBuwC,cAAc9C,MAC/C3H,EAAMge,KAAKiB,OACXjf,EAAMge,KAAKiB,MAAMlG,QACjB/Y,EAAMge,KAAKiB,MAAMlG,OAAO+K,aACxB9jB,EAAMge,KAAKiB,MAAMlG,OAAO+K,YAAYxoC,MAAMiW,GAAkB,KAAZA,EAAEwyB,QAElD,MAAO,CACLvD,QAAS7xB,EAAK6xB,QACd9U,OAAQ/c,EAAK+c,OACbsY,IAAK,oCAIT,GAAIr1B,EAAKymB,aAA6B79C,MAAdo3B,EAAKtQ,OAAqC,KAAfsQ,EAAKtQ,OAAe,CACrE,IAAI4lC,EAAgB,GAEpB,OAAQt1B,EAAKjM,MACX,KAAK,EACHuhC,EAAgB,0BAChB,MACF,KAAK,EACHA,EAAgB,4BAChB,MACF,KAAK,EACHA,EAAgB,0BAChB,MACF,KAAK,EACHA,EAAgB,6BAChB,MACF,KAAK,EACHA,EAAgB,wBAChB,MACF,KAAK,EACHA,EAAgB,iCAChB,MACF,QACEA,EAAgB,yBAIpB,MAAO,CACLzD,QAAS7xB,EAAK6xB,QACd9U,OAAQ/c,EAAK+c,OACbsY,IAAK,IAAMC,EAAgB,QAAUt1B,EAAK+c,OAAS,WAEvD,CAGA,OACE/c,EAAKymB,YACLzmB,EAAKjM,OAASxoB,EAAmBuwC,cAAcQ,SAC9C,qCAAqC93B,KAAKwb,EAAKtQ,OAEzC,CACLmiC,QAAS7xB,EAAK6xB,QACd9U,OAAQ/c,EAAK+c,OACbsY,IAAK,kCAAoCr1B,EAAK+c,OAAS,gBAR3D,CAaF,CAEA,SAASmV,EAAOlyB,GACd,OAAO2vB,EAAwB4F,WAC7BlkB,EAAMge,KAAKP,OACXzd,EAAMiH,MACNtY,EAEJ,CA7yBAqR,EAAMiH,MAAQ,GAEdjH,EAAM+e,KAAO,GAEb/e,EAAM8e,OAASA,EACf9e,EAAMof,UAAYA,EAClBpf,EAAMmf,WAAaA,EACnBnf,EAAMyf,qBAAuBA,EAC7Bzf,EAAMmkB,YAAc3F,EAAoB4F,eAExCnsD,KAAKo4B,QAAU,WACb2P,EAAMya,oBAAsB,CAC1BC,MAAO,OACPC,MAAO,OAGT8F,IAEAzgB,EAAMqG,OAA2B,MAAlBrG,EAAMqe,SAAmBre,EAAMqe,SAAShY,OAAS,GAEhE7W,EAAO/N,QAAO,WACZ,QAAuC,IAA5Bue,EAAM/I,MAAMwmB,OAAO37C,KAC5B,OAAOk+B,EAAMge,KAAKx9C,KAAKw/B,EAAM/I,MAAMwmB,OAAO37C,KAC9C,GAAG2+C,GAEHrmD,EAAcwnB,UACZ,wBACA+8B,EACAD,EAEJ,EAEAzmD,KAAK27B,WAAa,WAChBx5B,EAAcy5B,eAAe6qB,EAC/B,EAEAzmD,KAAK6iC,WAAa,SAAU/e,GAGtBA,EAAQq5B,aAAer5B,EAAQq5B,WAAWiC,kBAG5CrX,EAAMoV,WACFpV,EAAM+e,KAAKn2C,KAAKo2C,EAAY,IAC3Bhf,EAAM+e,KAAKj2C,OAAS,GAGvBiT,EAAQqgC,cAAgBrgC,EAAQqgC,YAAY/E,iBAG9CrX,EAAM+e,KAAK7xC,SAASypC,IAClByL,EAAsBpiB,EAAMoc,YAAazF,EAAE1P,MAAM,GAGvD,EAEAjH,EAAMqkB,cAAiB11B,GACd2vB,EAAwBgG,WAC7BtkB,EAAMge,KAAKP,OACXzd,EAAMiH,MACNtY,GAIJqR,EAAMukB,eAAkB51B,GACf2vB,EAAwBiG,eAC7BvkB,EAAMge,KAAKP,OACXzd,EAAMiH,MACNtY,GAIJqR,EAAMwkB,aAAgB71B,GACb2vB,EAAwBkG,aAC7BxkB,EAAMge,KAAKP,OACXzd,EAAMiH,MACNtY,GAGJqR,EAAMykB,qBAAwBrI,IAC5B,GAAIA,EAAY94C,QAAQ,aAAe,EAAG,OAAO,CAAI,CA8tBzD,IAED,G,qMCt3BDtN,QAAQC,OAAO,wBAAwB2f,UAAU,gBAAiB,CAChEme,SAAU,CACRpF,KAAM,IACN+1B,cAAe,KAEjB1wB,YAAa,8BACbC,WAAY,CACV,WACA,cACA,SAAU7a,EAAUpT,GAClB,IAAIg6B,EAAQ/nC,KAwBZ,SAAS0sD,IACP3kB,EAAM0kB,cAAc,CAAE/1B,KAAMqR,EAAMrR,MACpC,CAGA,SAASi2B,IACP,OAAO5uD,QAAQ6jB,QAAQ,IAAMmmB,EAAMxzB,GACrC,CAEA,SAASq4C,IACP,OAAOD,IAAuBpkD,KAAK,kBACrC,CAjCAw/B,EAAM2kB,eAAiBA,EACvB3kB,EAAM8kB,eAAiB,WACJD,IACN1lB,MACb,EAEAlnC,KAAKo4B,QAAU,WACb2P,EAAMxzB,GAAKxG,EAAYuH,MACvByyB,EAAMlkC,QAAU,CACd+pB,YAAa,aACb4T,OAAQ,aACRsrB,aAAc,CAAC,eAGjB3rC,GAAS,WACPwrC,IACGI,gBAAgBhlB,EAAMlkC,SACtBipC,KAAK,YAAY,GACjBA,KAAK,cAAe/E,EAAMlkC,QAAQ+pB,YACvC,GACF,CAcF,IAGD,G,qMC9CL,SAASo/B,IAmBP,MAlBgB,CACdzrC,SAAU,IACVhI,KAAM,SAAUmI,EAAOE,EAASC,GAC9B,IAAIorC,EAAkBvrC,EAAMwrC,MAAMrrC,EAAMmrC,cAExCprC,EAAQpe,KAAK,SAAUypD,GAEvBrrC,EAAQpe,KAAK,SAAS,WAEpBoe,EAAQ,GAAGwE,MAAQ,EACrB,IAEA1E,EAAM6I,IAAI,YAAY,WACpB3I,EAAQurC,OAAO,SAAUF,EAC3B,GACF,EAIJ,CAxBAlvD,QACGC,OAAO,wBACPijB,UAAU,eAAgB,CAAC+rC,GAsB7B,G,wPCbCjvD,QAAQC,OAAO,wBAAwB2f,UAAU,sBAAuB,CACtEme,SAAU,CACRsS,OAAQ,IACRwZ,YAAa,IACb1Z,OAAQ,IACRyU,UAAW,IACXjsB,KAAM,IACN0wB,MAAO,IACPgG,OAAQ,IACRC,aAAc,KAEhBtxB,YAAa,oCACbC,WAAY,CACV,QACA,eACA,gBACA,iBACA,cACA,sBACA,eACA,aACA,KACA,SACE2B,EACAsP,EACA9qC,EACAw1B,EACAC,EACAF,EACAG,GAEA,IAAIkQ,EAAQ/nC,KAyCZ,SAASstD,EAAQF,GACf,OAAOx1B,EAAY21B,YAAYH,EACjC,CAEA,SAASJ,EAAahwD,GACpBmF,EAAc0J,QAAQ,6BAEtB7O,EAAMwwD,kBAENC,EADmBzwD,EAAM0zC,OAAOjW,MAAM,GAExC,CAEA,SAASS,IACP/4B,EAAc0J,QAAQ,+BAGlB8rB,EAAe6B,UACD5B,EAAY81B,WAAW3lB,EAAMqlB,OAAQrlB,EAAMqG,QAE3CxW,EAAY+1B,oBAC1B5lB,EAAMqlB,OACNrlB,EAAMqG,SAGInU,MAAK,WACjB8N,EAAM6lB,kBAAetuD,EACrByoC,EAAMrR,KAAKtQ,WAAQ9mB,EACnByoC,EAAMslB,aAAa,CAAE32B,KAAMqR,EAAMrR,OACjCv0B,EAAc0J,QAAQ,+BACxB,GACF,CAIA,SAAS4hD,EAAWI,GAEEvuD,MAAhByoC,EAAMqG,QAAuC,IAAhBrG,EAAMqG,SAErCrG,EAAMqG,OAAS,yCAEbzW,EAAe6B,UACD5B,EAAYk2B,gBACzB,IAAG/lB,EAAMqG,UAAUrG,EAAMrR,KAAKniB,MAAMwzB,EAAMqf,QAC3CyG,GAGcj2B,EAAYm2B,yBACzB,QAAOhmB,EAAM6f,oBAAoB7f,EAAMqG,gBAAgBrG,EAAM4a,aAAa5a,EAAMqf,SAASrf,EAAMrR,KAAKniB,UACrGs5C,IAMU5zB,MAAK,SAAUwG,GAC3BsH,EAAMqlB,OAAS3sB,EAASl4B,KACxBw/B,EAAMrR,KAAKtQ,MAAQqa,EAASl4B,KAC5B,IAAIuf,EAAO5Y,KAAK8+C,MAAMH,EAAa/lC,KAAO,KAC1CigB,EAAM6lB,aAAe,CAEnBnyB,SAAUoyB,EAAahkD,KACvB0K,GAAIksB,EAASl4B,KACb3C,IAAKmiC,EAAM4a,UACXsL,aAAcC,EAAmBztB,EAASl4B,MAC1Cuf,KAAMA,EAAO,EAAIA,EAAO,GAE1BigB,EAAMslB,aAAa,CAAE32B,KAAMqR,EAAMrR,OACjCv0B,EAAc0J,QAAQ,+BACtB6rB,EAAoBiD,iBAClBkzB,EAAahkD,KAAO,YAExB,GACF,CAEA,SAASqkD,EAAmBd,GAC1B,OAAOx1B,EAAYu2B,gBACjBf,EACyB,yBAAzBngB,EAAamhB,SAEjB,CAvHArmB,EAAMilB,aAAeA,EACrBjlB,EAAM7M,WAAaA,EAEnBl7B,KAAKo4B,QAAU,WAGb,GAFA2P,EAAM6lB,kBAAetuD,GAEhByoC,EAAMqlB,OACT,OAGF,IAAIiB,EAEJ,GAAIphB,EAAaqhB,eACfD,EAAcz2B,EACX22B,iBAAiBxmB,EAAMqlB,OAAQrlB,EAAMqG,QACrCnU,MAAMwG,GAAaA,QACjB,CACL,MAAMpF,EAAO1D,EAAe6B,UAC5B,IAAK6B,EACH,OAEFzD,EAAY0D,QAAQD,EAAK9mB,GAAIsjB,EAAa0D,YAAYhnB,IACtD85C,EAAcf,EAAQvlB,EAAMqlB,QAAQnzB,MACjCwG,GAAaA,EAASl4B,MAE3B,CAEA8lD,EAAYp0B,MAAMu0B,IAChBzmB,EAAM6lB,aAAe,CACnBnyB,SAAU+yB,EAAS/yB,SACnBlnB,GAAIwzB,EAAMqlB,OACVxnD,IAAKmiC,EAAM4a,UACXsL,aAAchhB,EAAaqhB,eACvB12B,EAAYu2B,gBAAgBpmB,EAAMqlB,QAAQ,GAC1Cc,EAAmBnmB,EAAMqlB,QAC7BtlC,KAAM0mC,EAAS1mC,KAChB,GAEL,CAkFF,IAGD,G,iLCtKH/pB,QAAQC,OAAO,wBAAwB2f,UAAU,kBAAmB,CAClEme,SAAU,CAER2yB,UAAW,IACXtK,YAAa,IACbuK,UAAW,IACXjgB,KAAM,IACNkgB,iBAAkB,MAEpB5yB,YAAa,mCACbC,WAAY,CACV,OACA,aACA,gBACA,iBACA,0BACA,qBACA,eACA,SACE4yB,EACAxsD,EACAqgC,EACA9K,EACA0uB,EACApkD,EACA41B,GAEA,MAAMkQ,EAAQ/nC,KAGd,IAAImkD,EA6CJ,SAAS0K,EAAcJ,GACrB,MAAMpJ,EAAQ3oB,KAAK9zB,MAAM6lD,GAIzB,OAHAK,EAAYzJ,GACZ0J,EAAa1J,GACb2J,EAAgB3J,GACTA,CACT,CAEA,SAAS2J,EAAgB3J,GACvB5iB,EAAcxtB,QAAQowC,EAAMyB,MAAM,SAAU18C,GAC1Cq4B,EAAcxtB,QAAQ7K,EAAI4kC,OAAO,SAAUtY,GACzC,GAAIA,EAAKjM,OAASxoB,EAAmBuwC,cAAcyc,KAAM,CAEvD,MAAMC,EAAWC,EAAaz4B,EAAKtQ,OAC7B6nC,EAAemB,EAAqB14B,EAAKtQ,OAC/CsQ,EAAKtQ,WACU9mB,IAAb4vD,EACI,CACE9B,OAAQ12B,EAAKtQ,MACb8oC,SAAUA,EACVjB,aAAcA,QAEhB3uD,CACR,CACF,GACF,GACF,CAEA,SAASwvD,EAAYzJ,GACnB5iB,EAAcxtB,QAAQowC,EAAMyB,MAAM,SAAU18C,GAC1Cq4B,EAAcxtB,QAAQ7K,EAAI4kC,OAAO,SAAUtY,GACzC,GACEA,EAAKjM,OAASxoB,EAAmBuwC,cAAcD,QAC/C7b,EAAKjM,OAASxoB,EAAmBuwC,cAAc2V,QAC/C,CACA,MAAMD,EAAa/D,EAAY9gC,MAAMnf,GAAMA,EAAEqQ,KAAOmiB,EAAKniB,KACrD2zC,GAAcA,EAAWzV,eAC3B/b,EAAK+b,aAAeyV,EAAWzV,cAE7ByV,GAAcA,EAAWnY,gBAC3BrZ,EAAKqZ,cAAgBmY,EAAWnY,cAEpC,CACF,GACF,GACF,CAEA,SAASgf,EAAa1J,GAEpB,IAAIgK,GAAwB,EAC5BtnB,EAAMunB,SAAW,GACjB7sB,EAAcxtB,QAAQowC,EAAMyB,MAAM,SAAU18C,GAC1Cq4B,EAAcxtB,QAAQ7K,EAAI4kC,OAAO,SAAUtY,GACzC,MAAM64B,EAAW9sB,EAAcpf,KAC7B0kB,EAAMunB,UACN,SAAUzE,GACR,OAAOA,EAAQt2C,KAAOmiB,EAAKniB,EAC7B,IAGF,GACE8xC,EAAwB4F,WACtBlkB,EAAM0G,KAAK+gB,OACXplD,EAAI4kC,MACJtY,GAIF,GADA24B,GAAwB,EACpBE,EACFA,EAASjF,KAAOmF,EAAiB/4B,OAC5B,CACL,MAAMg5B,EAAeD,EAAiB/4B,GACtCqR,EAAMunB,SAAS3+C,KAAKg/C,EAAcj5B,EAAMg5B,GAC1C,MAEKH,GACHxnB,EAAMunB,SAAS3+C,KAAKg/C,EAAcj5B,GAGxC,GACF,IAEK24B,IACHtnB,EAAMunB,SAAW,GAErB,CAEA,SAASK,EAAcj5B,GAAkB,IAAZ4zB,EAAM,UAAH,6CAAG,KACjC,MAAMO,EAAU,CACdt2C,GAAImiB,EAAKniB,GACTkW,KAAMiM,EAAKjM,MAWb,OATIiM,EAAK+b,eACPoY,EAAsB,aAAIn0B,EAAK+b,cAE7B/b,EAAKqZ,gBACP8a,EAAuB,cAAIn0B,EAAKqZ,eAEtB,OAARua,IACFO,EAAa,IAAIP,GAEZO,CACT,CAEA,SAAS4E,EAAiB/4B,GACxB,IAAI4zB,EAAM,EACV,MAAMsF,OAA2BtwD,IAAfo3B,EAAKtQ,MAAsB,EAAMsQ,EAAKtQ,MAExD,GAAIigC,EAAwByE,iBAAiBp0B,GAC3C,GAAyB,iBAAdk5B,GAA0BA,EAAUvkD,QAAQ,MAAQ,EAAG,CAChE,MAAM0/C,EAAa6E,EAAU5pB,MAAM,KAEnC,IAAK,MAAMzG,KAAKwrB,EACTz0B,MAAM7lB,WAAW8uB,MACpB+qB,GAAO75C,WAAW8uB,GAGxB,MACOjJ,MAAM7lB,WAAWm/C,MACpBtF,GAAO75C,WAAWm/C,SAItBtF,GAAOvT,OAAO6Y,GAGhB,OAAOtF,CACT,CAEA,SAAS6E,EAAa/B,GACpB,YAAkB9tD,IAAX8tD,EACHhrD,EAAW47B,WACT,SACA+J,EAAMhE,WACN,IACAgE,EAAMxO,OACN,IACA6zB,OACF9tD,CACN,CACA,SAAS8vD,EAAqBhC,GAC5B,YAAkB9tD,IAAX8tD,EACF,GAAEhrD,EAAW47B,4BAA4BovB,SAC1C9tD,CACN,CA/LAyoC,EAAM6mB,KAAOA,EACb7mB,EAAMsd,MAAQ,CAAC,EAGfrlD,KAAKo4B,QAAU,WACR2P,EAAM2mB,YACL3mB,EAAMoc,cACRA,EAAcznB,KAAK9zB,MAAMm/B,EAAMoc,cAEjCpc,EAAMxO,OAAS5B,EAAe6B,UAAUjlB,GACxCwzB,EAAMhE,WAAalM,EAAa0D,YAAYhnB,GAC5CwzB,EAAMsd,MAAQwJ,EAAc9mB,EAAM0mB,YAGpC1mB,EAAMqkB,cAAgB,CAACpd,EAAOtY,IACrB2vB,EAAwBgG,WAC7BtkB,EAAM0G,KAAK+gB,OACXxgB,EACAtY,GAIJqR,EAAMukB,eAAiB,CAACtd,EAAOtY,KAC7B,MAAMm5B,EAAc1L,EAAY9gC,MAC7ByvB,GAAWA,EAAOv+B,IAAMmiB,EAAKniB,IAAMu+B,EAAOroB,MAAQiM,EAAKjM,OAE1D,OAAO47B,EAAwBiG,eAC7BvkB,EAAM0G,KAAK+gB,OACXxgB,EACA6gB,EACD,EAGH9nB,EAAMwkB,aAAe,CAACvd,EAAOtY,KAC3B,MAAMm5B,EAAc1L,EAAY9gC,MAC7ByvB,GAAWA,EAAOv+B,IAAMmiB,EAAKniB,IAAMu+B,EAAOroB,MAAQiM,EAAKjM,OAE1D,OAAO47B,EAAwBkG,aAC7BxkB,EAAM0G,KAAK+gB,OACXxgB,EACA6gB,EACD,CAEL,CAqJF,IAGD,O,wSCvOL9xD,QACGC,OAAO,wBACPijB,UAAU,qBAAqB,WAC9B,MAAO,CACL1H,KAAMA,EACNgI,SAAU,KAGZ,SAAShI,EACPmI,EACAE,EACAC,GAEA,IAAIiuC,EAAc,GAClBpuC,EAAM8H,OAAO3H,EAAMkuC,mBAAoB3kD,IACrC0kD,EAAc1kD,CAAQ,IAGxB,MAAMzM,EAAY4B,SAASC,cAAc,OACzC7B,EAAU42C,UAAUvgC,IAAI,uBAExB,MAAMg7C,EAAezvD,SAASC,cAAc,OAC5CwvD,EAAaC,YAAc,UAC3BD,EAAaz0C,MAAMzW,QAAU,OAE7B,MAAM4I,EAAOnN,SAASC,cAAc,KACpCkN,EAAK6nC,UAAUvgC,IAAI,WAAY,UAAW,SAC1CtH,EAAKk5B,MAAQ,oBACbl5B,EAAK2iC,iBAAiB,SAAS,IAC7Bx8B,EAAgBi8C,GAAa71B,MAAK,IAAMi2B,EAAiBF,OAG3DrxD,EAAUwxD,OAAOziD,EAAMsiD,GACvBpuC,EAAQuuC,OAAOxxD,EACjB,CAEA,SAASkV,EAAgBjI,GACvB,OAAOuP,UAAUi1C,UAAUC,UAAUzkD,EACvC,CAEA,SAASskD,EAAiBF,GACxBA,EAAaz0C,MAAMzW,QAAU,QAC7BkiC,YAAW,KACTgpB,EAAaz0C,MAAMzW,QAAU,MAAM,GAClC,IACL,CACF,GAAG,G,mMCvDL,aAAa,4DAGb/G,QAAQC,OAAO,wBAAwBijB,UAAU,sBAAuB,CACtE,WAwBE,MAvBkB,CAChBM,SAAU,IACV4b,QAAS,oBACT5jB,KAAM,SACJmI,EACAE,EACAC,EACAyuC,GAEA,MAAMrD,EAAkBqD,EAAkBtD,aAC1CprC,EAAQ2uC,GAAG,SAAUtD,GAErBrrC,EAAQ2uC,GAAG,SAAS,WAElB3uC,EAAQ,GAAGwE,MAAQ,EACrB,IAEA1E,EAAM6I,IAAI,YAAY,WACpB3I,EAAQ4uC,IAAI,SAAUvD,EACxB,GACF,EAIJ,GACC,G,mMC9BH,aAAa,4DAIblvD,QAAQC,OAAO,wBAAwBijB,UAAU,oBAAqB,CACpE,WAyEE,MAxEkB,CAChBM,SAAU,IACVG,MAAO,CACLqZ,eAAgB,IAChB01B,SAAU,IACVC,WAAY,KAEdtpB,aAAc,OACdpL,WAAY,CACV,SACA,gBACA,gBACA,sBACA,cACA,SACEzE,EACAp1B,EACAsgC,EACA/K,EACAE,GAKA,SAASo1B,EAAahwD,GACc,IAA9BA,EAAM0zC,OAAOjW,MAAM5pB,SAGvB1O,EAAc0J,QAAQ,iCAA6BvM,GACnDtC,EAAMwwD,kBAENmD,EADsB3zD,EAAM0zC,OAAOjW,OAErC,CAEA,SAASk2B,EAAYC,GACnBnuB,EAAc1zB,KAAK6hD,GAAe,SAAU51B,GAC1CpD,EAAYi5B,kBAAkB71B,GAAMf,MAClC,SAAUwG,GACRlJ,EAAOwD,eAAe,CACpBC,KAAM,CACJS,SAAUT,EAAKnxB,KACf0K,GAAIksB,EAASl4B,KACb0lD,aAAcC,EAAmBztB,EAASl4B,MAC1Cuf,KAAM5Y,KAAK8+C,MAAMhzB,EAAKlT,KAAO,QAGjC3lB,EAAc0J,QACZ,mCACAvM,GAEFo4B,EAAoBiD,iBAAiBK,EAAKnxB,KAAO,YACnD,IACA,SAAU9K,GACRoD,EAAc0J,QAAQ,gCAA4BvM,EACpD,GAEJ,GACF,CAGA,SAAS4uD,EAAmBd,GAC1B,OAAOx1B,EAAYu2B,gBAAgBf,EACrC,CAzCaptD,KACRgtD,aAAeA,CA8CtB,GAKN,GACC,G,gNCzEHjvD,QACGC,OAAO,wBACPijB,UAAU,uBAAuB,WAChC,MAAO,CACLkc,QAAS,UACT5jB,KAAM,SAAUmI,EAAOE,EAASC,EAAOkhB,GACrCA,EAAQ+tB,SAASngD,MAAK,SAAUuF,GAC9B,OAAO2jB,SAAS3jB,EAAK,GACvB,IACA6sB,EAAQguB,YAAYpgD,MAAK,SAAUuF,GACjC,MAAO,GAAKA,CACd,GACF,EAEJ,GAAG,G,8MCnBL,aAAa,4DAGbnY,QAAQC,OAAO,wBAAwBijB,UAAU,wBAAyB,CACxE,WACA,gBACA,kBACA,SAAUE,EAAUgsB,EAAe6jB,GACjC,MAAO,CACLzvC,SAAU,IACV4b,QAAS,UACT5jB,KAAM,SACJmI,EACAuvC,EACAnkB,EACAokB,GAEA,SAASC,EAAgBC,GACvB,GAAItkB,EAAKukB,sBAAuB,CAC9B,MAAM/a,EAAUgb,EAAeF,EAActkB,GAC7CokB,EAAKtQ,aAAa,sBAAuBtK,GACzCn1B,GAAS,WACPowC,EAAmBjb,EAASxJ,EAC9B,GACF,CACA,OAAOskB,CACT,CACA,SAASE,EAAeE,EAAY1kB,GAClC,IAAI2kB,GAAQ,EACZ,MAAMC,EAAch1B,KAAK9zB,MAAMkkC,EAAKukB,uBAC9BM,EAAY7kB,EAAK6kB,UACvB,GAAID,EAAYE,UAA2B,OAAfJ,EAC1B,GAAkB,WAAdG,GAAwC,aAAdA,EAA0B,CAGtD,MAAME,EAAUb,EAAgBc,YAAYN,GAE5C,IAAKl7B,MAAMu7B,GAAU,CACnB,MAAME,EAAcF,EACpB,IAAIG,EAAgBvhD,WAAWihD,EAAYtrC,OAC3C,GACEsrC,EAAYO,aACgB,kBAA5BP,EAAYO,aACZnlB,EAAKolB,mCACLR,EAAYS,YACZ,CACA,MAAMC,EAAe11B,KAAK9zB,MACxBkkC,EAAKolB,mCAEPF,EAAgBvhD,WACd2hD,EAAaV,EAAYS,aAE7B,CACA,IAAK77B,MAAM07B,GACT,OAAQN,EAAYtY,MAClB,KAAK,EACHqY,EAAQO,IAAkBD,EAC1B,MACF,KAAK,EACHN,EAAQO,EAAgBD,EACxB,MACF,KAAM,EACJN,EAAQO,EAAgBD,EAIhC,CACF,MAAO,GAAkB,SAAdJ,GAAsC,aAAdA,EAA0B,CAC3D,MAAMU,EACU,SAAdV,EAAuB,aAAe,wBAClCI,EAAc5kB,EAClBqkB,EACAa,GACAC,SACF,IAAIN,EAAgB7kB,EAClBukB,EAAYtrC,MACZisC,GACAC,SACF,GACEZ,EAAYO,aACgB,kBAA5BP,EAAYO,aACZnlB,EAAKolB,mCACLR,EAAYS,YAKZ,GAHsBp0D,EAAAA,QACnB6jB,QAAQ,4BACR1L,QACmBw7C,EAAYa,eAAgB,CAChD,MAAMC,EAAmB91B,KAAK9zB,MAC5BkkC,EAAKolB,mCAEPF,EAAgBQ,EAAiBd,EAAYS,aACzChlB,EACEqlB,EAAiBd,EAAYS,cAC7BG,SACF,gBACN,MACEN,EAAgBtwC,EAAMwvC,KAAKnL,KAAKx9C,KAAKmpD,EAAYS,aAC7ChlB,EACEzrB,EAAMwvC,KAAKnL,KAAKx9C,KAAKmpD,EAAYS,aACjCE,GACAC,SACF,sBAED,GACLZ,EAAYO,aACgB,gBAA5BP,EAAYO,aACVP,EAAYe,sBACd,CACA,MAAMC,EAAqBvlB,IACxBn4B,IAAI08C,EAAYe,sBAAuB,QACvCjxB,OAAO6wB,GACVL,EAAgB7kB,EACdulB,EACAL,GACAC,QACJ,CAEA,GACEN,aAAyBW,MACzBZ,aAAuBY,OACtBr8B,MAAM07B,EAAcY,aACpBt8B,MAAMy7B,EAAYa,WAEnB,OAAQlB,EAAYtY,MAClB,KAAK,EACHqY,EAAQO,EAAcY,YAAcb,EAAYa,UAChD,MACF,KAAK,EACHnB,EAAQO,EAAcY,UAAYb,EAAYa,UAC9C,MACF,KAAM,EACJnB,EAAQO,EAAcY,UAAYb,EAAYa,UAItD,CAEF,OAAOnB,CACT,CAEA,SAASF,EAAmBjb,EAASxJ,GACnC,MAAM+lB,EAAU90D,EAAAA,QAAQ6jB,QAAQ,IAAMkrB,EAAKv4B,GAAK,UAChD,GAAuB,IAAnBs+C,EAAQhiD,OAAc,OAC1B,MAAM8gD,EAAY7kB,EAAK6kB,UACjBmB,EAA4B,SAAdnB,GAAsC,aAAdA,EAC5C,GAAIrb,EAASuc,EAAQzyD,KAAK,QACrB,CACH,MAAMsxD,EAAch1B,KAAK9zB,MAAMkkC,EAAKukB,uBACpC,GACEK,EAAYlgB,cACZkgB,EAAYlgB,aAAa3gC,OAAS,EAElCgiD,EAAQzyD,KAAKsxD,EAAYlgB,kBACpB,CACL,IAAIzyC,EAAQ,GACZA,EAAQ,KAAO4yD,EAAY,qBAC3B,MAAMoB,EACU,WAAdpB,GAAwC,aAAdA,EACtB,iBACA,UACAqB,EACU,WAAdrB,GAAwC,aAAdA,EACtB,cACA,WACAU,EAAaS,EACD,SAAdnB,EACE,aACA,wBACF,GACJ,OAAQD,EAAYtY,MAClB,KAAK,EACHr6C,GAAS,aACT,MACF,KAAK,EACHA,GAASg0D,EACT,MACF,KAAM,EACJh0D,GAASi0D,EAGb,IAAI5sC,EAAQ,GACZ,GACEsrC,EAAYO,aACgB,kBAA5BP,EAAYO,aACZnlB,EAAKolB,mCACLR,EAAYS,YASV/rC,EAPoBroB,EAAAA,QACnB6jB,QAAQ,4BACR1L,QACmBw7C,EAAYa,eACX71B,KAAK9zB,MACxBkkC,EAAKolB,mCAEcR,EAAYS,aAEzBhlB,EACNzrB,EAAMwvC,KAAKnL,KAAKx9C,KAAKmpD,EAAYS,aACjCE,GACAC,cAEC,GACLZ,EAAYO,aACgB,gBAA5BP,EAAYO,aACVP,EAAYe,sBACd,CACA,MAAMC,EAAqBvlB,IACxBn4B,IAAI08C,EAAYe,sBAAuB,QACvCjxB,OAAO6wB,GACVjsC,EAAQ+mB,EAAculB,EAAoBL,GAAYC,QACxD,MACElsC,EAAQ0sC,EACJ3lB,EAAcukB,EAAYtrC,MAAOisC,GAAYC,SAC7CZ,EAAYtrC,MAEd0sC,IACF1sC,EAAQ+mB,EAAc/mB,GAAOob,OAAO6wB,IAEtCQ,EAAQzyD,KAAKrB,EAAQqnB,EACvB,CACF,CACF,CAEA8qC,EAAKJ,SAASjwB,QAAQswB,GACtBD,EAAKH,YAAYlwB,QAAQswB,GAEzBrkB,EAAKmmB,SAAS,qCAAqC,SAAU/8C,GAC3D,GAAW,IAAPA,EAAW,CACb,MAAM3N,EAAOm0B,KAAK9zB,MAAMsN,GACpB3N,GAAQuN,OAAOo9C,KAAK3qD,GAAMsI,OAAS,GACrCsgD,EAAgBD,EAAKiC,yBACzB,CACF,IACArmB,EAAKmmB,SAAS,kBAAkB,SAAU/8C,GACxC,GAAW,IAAPA,EAAW,CACb,MAAM3N,EAAOm0B,KAAK9zB,MAAMsN,GACpB3N,GAAQuN,OAAOo9C,KAAK3qD,GAAMsI,OAAS,GACrCsgD,EAAgBD,EAAKiC,yBACzB,CACF,GACF,EAEJ,GACC,G,mMCrOH,aAAa,4DAGbp1D,QACGC,OAAO,wBACPijB,UAAU,wBAAwB,WACjC,MAAO,CACLkc,QAAS,UACT5jB,KAAMA,EACNgI,SAAU,KAGZ,SAAShI,EACPmI,EACA0xC,EACAvxC,EACAwxC,GAEA3xC,EAAM8H,OAAO3H,EAAMy0B,SAAS,SAAUA,GACpC+c,EAAIzS,aAAa/+B,EAAMwgB,QAASiU,EAClC,GACF,CACF,GAAG,G,mMC/BL,aAAa,4DAKbv4C,QAAQC,OAAO,+BAA+B2f,UAAU,mBAAoB,CAC1Eoe,YAAa,8BACbD,SAAU,CACRT,KAAM,KAERW,WAAY,CACV,iBACA,WACA,oBACA,sBACA,aACA,aACA,SACErE,EACAxW,EACAmyC,EACA57B,EACAxW,EACAqyC,GAEA,MAAMxrB,EAAQ/nC,KAgDd,SAASwzD,IACPF,EAAkBG,oBAAoBx5B,MAAK,WACzC,MAAMoB,EAAO1D,EAAe6B,UAC5B6B,EAAKq4B,kBAAmB,EACxBr4B,EAAKs4B,4BAAyBr0D,EAC9B+7B,EAAKu4B,wBAAqBt0D,EAC1B+7B,EAAKw4B,qCAAkCv0D,EACvC+7B,EAAKy4B,yBAA2B,GAChCz4B,EAAK04B,6BAA+B,GACpC14B,EAAK24B,sCAAwC,GAC7Cr8B,EAAes8B,YACft8B,EAAe2D,QAAQD,GACvBna,EAAWgzC,wBAAyB,EACpCx8B,EAAoBiD,iBAClB,iCAEJ,GACF,CACA,SAASw5B,IACPpsB,EAAMqsB,iBAAmBrsB,EAAMqsB,gBAC/BjzC,GAAS,WACPkzC,GACF,GACF,CAEA,SAASA,IACP,GAAItsB,EAAMqsB,gBAAiB,CACzB,MAAME,EAAS/zD,SACZuvC,eAAe,oBACfykB,wBAEGC,EADQ51D,EAAEc,QAAQiB,QAEd,IAAM2zD,EAAOG,MAAQ,IAAMH,EAAOI,KAAO,IAEnD32D,EAAAA,QAAQ6jB,QAAQ,0BAA0Bm3B,IAAI,CAAE2b,KAAMF,GACxD,CACF,CAnFAzsB,EAAMqsB,iBAAkB,EACxBrsB,EAAMosB,WAAaA,EACnBpsB,EAAMyrB,QAAUA,EAChBtyC,EAAWgzC,uBAAyBl0D,KAAKq7B,KAAKq4B,iBAC9C3rB,EAAM4sB,uBAAyBpB,EAAUoB,uBAEzC5sB,EAAM3P,QAAU,WAEdT,EACGi9B,eAAe7sB,EAAM1M,KAAK7tB,OAC1BysB,MAAK,SAAUwG,GACd,MAAMo0B,EAAMp0B,EAASl4B,KACrB,IAAoB,IAAhBssD,EAAI9pB,QAAkB,CACxB,MAAM+pB,EAAcn9B,EAAeo9B,0BACjCF,EAAIrT,WAENtgC,EAAWma,KAAOy5B,EAClB/sB,EAAM1M,KAAK04B,6BACT7yC,EAAWma,KAAK04B,6BAClBhsB,EAAM1M,KAAKy4B,yBACT5yC,EAAWma,KAAKy4B,yBAClB/rB,EAAM1M,KAAK24B,sCACT9yC,EAAWma,KAAK24B,qCACpB,CACF,GACJ,EAEAp1D,EAAEc,QAAQyN,OAAM,SAAUnQ,GACxB,MAAM0zC,EAAS1zC,EAAM0zC,OAEL,qBAAdA,EAAOn8B,IACO,0BAAdm8B,EAAOn8B,IACO,qCAAdm8B,EAAOn8B,IACPxW,EAAAA,QAAQ6jB,QAAQ8uB,GAAQskB,SAAS,yBACjCj3D,EAAAA,QAAQ6jB,QAAQ8uB,GAAQskB,SAAS,2BAInC7zC,GAAS,WACP4mB,EAAMqsB,iBAAkB,CAC1B,GACF,IACAx1D,EAAEc,QAAQ6wD,GAAG,qBAAqB,SAAUvzD,GAC1CmkB,GAAS,WACP4mB,EAAMqsB,iBAAkB,CAC1B,GACF,IAuCArsB,EAAMktB,qBAAuB,WAM3B,MALsB,CACpBj1D,KAAKq7B,KAAKs4B,uBACV3zD,KAAKq7B,KAAKu4B,mBACV5zD,KAAKq7B,KAAKw4B,iCACV3wC,OAAOgyC,SACYrkD,QAAU,EAAI,QAAU,OAC/C,CACF,IAED,G,mMCjIH,aAAa,4DAGkB9S,QAAQC,OACrC,8BACA,IAGqBg/B,IAAI,CACzB,iBACA,SAAUC,GACRA,EAAeC,IACb,8BACAC,EAAAA,OAAAA,EAEJ,GACC,G,kMCVH,aAAa,4DAGWp/B,QAAQC,OAAO,uBAAwB,CAC7D,yBAGcg/B,IAAI,CAClB,iBACA,SAAUC,GACRA,EAAeC,IACb,sCACAC,EAAAA,OAAAA,EAGJ,GACC,G,0VCzBI,MAAMg4B,EAOJzzC,MAAQ,CACb0zC,YAAa,IACbC,YAAa,IACbC,UAAW,IACXC,QAAS,IACTC,SAAU,IACVC,UAAW,IACXC,KAAM,KAGR9zD,cACE5B,KAAKuZ,KAAO,CAACmI,EAAkBE,KACzBF,EAAM0zC,aACRxzC,EAAQkrB,KAAK,YAAa,QAG5BlrB,EAAQ2uC,GAAG,aAAa,SAAUoF,GAChCA,EAAG5Y,cAAc6Y,aAAaC,cAAgB,OAC9Cn0C,EAAM4zC,WACR,IAEA1zC,EAAQ2uC,GAAG,WAAW,WACpB7uC,EAAM6zC,SACR,IAEI7zC,EAAM2zC,cACRzzC,EAAQ2uC,GAAG,YAAY,SAAUoF,GAC/BA,EAAGjrC,iBACHirC,EAAG5Y,cAAc6Y,aAAaE,WAAa,OAC3Cp0C,EAAM8zC,UACR,IAEA5zC,EAAQ2uC,GAAG,aAAa,SAAUoF,GAChCA,EAAGjrC,iBACHhJ,EAAM+zC,WACR,IAEA7zC,EAAQ2uC,GAAG,QAAQ,SAAUoF,GAC3BA,EAAGjrC,iBACHhJ,EAAMg0C,MACR,IACF,EAGF11D,KAAKuhB,SAAW,GAClB,CAEA5f,iBACE,MAAMsf,EAAY,IACT,IAAIk0C,EAKb,OAFAl0C,EAAmB,QAAI,GAEhBA,CACT,EACD,sBAEDljB,EAAAA,QACGC,OAAO,wBACPijB,UAAU,oBAAqBk0C,EAAkBY,UAAW,G,8MCrE/D,aAAa,4DAGbh4D,QAAQC,OAAO,wBAAwBijB,UAAU,wBAAyB,CACxE,gBACA,SAAU3f,GACR,MAAO,CACLigB,SAAU,IACV4b,QAAS,UACT5jB,KAAM,SAAUmI,EAAOuvC,EAAMnkB,EAAMokB,GACjCA,EAAK8E,sBAAwB,qBAI7B9E,EAAKJ,SAASjwB,SAAQ,SAAUza,GAC9B,GAAIA,EAAO,CACTA,EAAQ9kB,EAAO8kB,EAAO8qC,EAAK8E,uBAG3B,MAAMvE,EAAQnwD,EAAO8kB,GAAO6vC,QAAQ30D,KAGpC,OAFA4vD,EAAKtQ,aAAa,UAAW6Q,GAEtBrrC,CACT,CACE8qC,EAAKtQ,aAAa,YAAY,EAElC,IAIAsQ,EAAKH,YAAYlwB,SAAQ,SAAUza,GACjC,GAAIA,EAMF,OALAA,EAAQ9kB,EAAO8kB,EAAO8qC,EAAK8E,uBAE3B9E,EAAKtQ,aAAa,UAAWt/C,EAAO8kB,GAAO6vC,QAAQ30D,MAG5C8kB,EAEP8qC,EAAKtQ,aAAa,YAAY,EAElC,GACF,EAEJ,GACC,G,mMC3BH,aAAa,0DAGb,MAAMsV,EAAgB,CACpB/F,OAAQ,IAEVpyD,EAAAA,QACGC,OAAO,wBACPgjB,SAAS,oBAAqBk1C,GAC9Bj1C,UAAU,cAAe,CACxB,WACA,UACA,oBACA,SACEE,EACAjjB,EACAy7C,GAEA,MAAO,CACLxc,QAAS,UACT5b,SAAU,OACVhI,KAAM,SACJmI,EACAE,EACAC,EACAkhB,GAGA,MAAMozB,EAAKv0C,EAAQ,GACjBw0C,EAAMx0C,EAGR,GAAoB,aAAhBu0C,EAAGlf,WAA4B/4C,EAAQm4D,iBACzC,OAIFD,EAAIrd,IAAI,CACN57B,SAAU,SACV,aAAc,SACd,YAAa,eAIf,MAAMvR,EAAOuqD,EAAG/vC,MAChB+vC,EAAG/vC,MAAQ,GACX+vC,EAAG/vC,MAAQxa,EAEX,MAAMukD,EAAStuC,EAAMy0C,YACfz0C,EAAMy0C,YAAY70C,QAAQ,OAAQ,MAClCk4B,EAAOwW,OACXoG,EAAOx4D,EAAAA,QAAQ6jB,QAAQ1jB,GACvBs4D,EACE,2QAKFC,EAAU14D,EAAAA,QACP6jB,QACC,qDAEE40C,EACA,OAEHjuD,KAAK,WAAW,GACnBmuD,EAASD,EAAQ,GACnB,IAAIE,EAAUN,iBAAiBF,GAC/B,MAAMhpC,EAASwpC,EAAQC,iBAAiB,UAKtCC,EAH6C,eAA3CF,EAAQC,iBAAiB,eACuB,eAAhDD,EAAQC,iBAAiB,oBAC0B,eAAnDD,EAAQC,iBAAiB,sBAGvB,CACEj2D,MACEk5B,SACE88B,EAAQC,iBAAiB,sBACzB,IAEF/8B,SAAS88B,EAAQC,iBAAiB,iBAAkB,IACpD/8B,SAAS88B,EAAQC,iBAAiB,gBAAiB,IACnD/8B,SAAS88B,EAAQC,iBAAiB,qBAAsB,IAC1D91D,OACE+4B,SAAS88B,EAAQC,iBAAiB,oBAAqB,IACvD/8B,SAAS88B,EAAQC,iBAAiB,eAAgB,IAClD/8B,SAAS88B,EAAQC,iBAAiB,kBAAmB,IACrD/8B,SACE88B,EAAQC,iBAAiB,uBACzB,KAhBN,CAAEj2D,MAAO,EAAGG,OAAQ,GAmBxBg2D,EAAiBj9B,SACf88B,EAAQC,iBAAiB,cACzB,IAEFG,EAAcl9B,SAAS88B,EAAQC,iBAAiB,UAAW,IAC3DI,EAAY9nD,KAAKW,IAAIinD,EAAgBC,GAAeF,EAAS/1D,OAC/D,IACIm2D,EAAUC,EADVC,EAAYt9B,SAAS88B,EAAQC,iBAAiB,cAAe,IAEjE,MAAMQ,EAAY,CAChB,cACA,YACA,cACA,aACA,iBACA,cACA,iBACA,eACA,eA8BF,SAASC,IACP,IAAIC,EAAcd,EAElBS,EAAWd,EAEXQ,EAAUN,iBAAiBF,GAC3Bp4D,EAAAA,QAAQkX,QAAQmiD,GAAW,SAAUlhD,GACnCohD,GAAephD,EAAM,IAAMygD,EAAQC,iBAAiB1gD,GAAO,GAC7D,IACAwgD,EAAOriB,aAAa,QAASijB,EAC/B,CAEA,SAASC,IACP,IAAIC,EAAUC,EAAsBC,EAAc/2D,EAAOwc,EAErD85C,IAAad,GACfkB,IAIGH,IACHA,GAAS,EAETR,EAAOtwC,MAAQ+vC,EAAG/vC,MAAQ+pC,EAC1BuG,EAAOn7C,MAAMo8C,UAAYxB,EAAG56C,MAAMo8C,UAElCH,EACsB,KAApBrB,EAAG56C,MAAMza,OAAgB,OAAS+4B,SAASs8B,EAAG56C,MAAMza,OAAQ,IAE9D22D,EACEpB,iBAAiBF,GAAIS,iBAAiB,SAOhC,OAHNa,EAAqBtsB,OACnBssB,EAAqB5mD,OAAS,EAC9B,KAIFlQ,EAAQk5B,SAAS49B,EAAsB,IAAMZ,EAASl2D,MACtD+1D,EAAOn7C,MAAM5a,MAAQA,EAAQ,MAG/B+2D,EAAehB,EAAO1a,aAElB0b,EAAeP,GACjBO,EAAeP,EACfh6C,EAAW,UACFu6C,EAAeV,IACxBU,EAAeV,GAEjBU,GAAgBb,EAAS/1D,OACzBq1D,EAAG56C,MAAMo8C,UAAYx6C,GAAY,SAE7Bq6C,IAAaE,IACfh2C,EAAMk2C,MAAM,iBAAkBxB,EAAKoB,EAAUE,GAC7CvB,EAAG56C,MAAMza,OAAS42D,EAAe,MAInCv2C,GACE,WACE+1C,GAAS,CACX,GACA,GACA,GAGN,CAEA,SAASW,IACPX,GAAS,EACTK,GACF,CApGInB,EAAI7tD,KAAK,aAKb4uD,EAAYA,GAAaA,EAAY,EAAIA,EAAY,IAGjDT,EAAOxlB,aAAe3wC,SAAS43C,MACjCp6C,EAAAA,QAAQ6jB,QAAQrhB,SAAS43C,MAAMgY,OAAOuG,GAIxCN,EACGrd,IAAI,CACH5rB,OACa,SAAXA,GAAgC,aAAXA,EACjB,OACA,eAEP5kB,KAAK,WAAW,GAyFjB4tD,EAAY,QAFV,qBAAsBA,GAAM,YAAaA,EAE3BA,EAAG2B,QAAUP,EAEbA,EAGlBhB,EAAK/yD,KAAK,SAAUq0D,GAEpBn2C,EAAM8H,QACJ,WACE,OAAOuZ,EAAQg1B,WACjB,IACA,SAAU3sD,GACRysD,GACF,IAGFn2C,EAAM6I,IAAI,kBAAkB,WAC1B8sC,IACAQ,GACF,IAEA12C,EAASo2C,EAAQ,GAAG,GAMpB71C,EAAM6I,IAAI,YAAY,WACpBksC,EAAQ71D,SACR21D,EAAKpJ,OAAO,SAAU0K,EACxB,IACF,EAEJ,GACC,G,mMCxQL,aAAa,4DAGb95D,QAAQC,OAAO,6BAA8B,CAAC,wBAAyB,G,0LCFvE,aAAa,iDAIbD,QAAQC,OAAO,8BAA8BijB,UAAU,mBAAoB,CACzE,cACA,SAAU2W,GACR,MAAO,CACLrW,SAAU,IACVhI,KAAM,SACJmI,EACAE,EACAC,GAEAA,EAAMm2C,KAAK,QAAS,YACpBn2C,EAAMm2C,KAAK,QAAS,kBAGpBp2C,EAAQpe,KAAK,SAAS,SAAUtG,GAC9B06B,EAAYqgC,cAAcp2C,EAAMq2C,iBAClC,GACF,EAEJ,GACC,G,kMChBH,aAAa,4DAGbn6D,QAAQC,OAAO,8BAA8BijB,UAAU,gBAAiB,CACtE,SACA,SAAUk3C,GACR,MAAO,CACL52C,SAAU,KACVhI,KAAM,SACJmI,EACAE,EACAC,GAEA,MACMu2C,EADWD,EAAOt2C,EAAMw2C,eACJxjB,OACpBxP,EAAW8yB,EAAOt2C,EAAMwjB,UAExBizB,EAAc,WAClBF,EAAS12C,EAAOE,EAAQ,GAAG6Y,MAAM,IACjC4K,EAAS3jB,EACX,EACAE,EAAQ2uC,GAAG,SAAU+H,EACvB,EAEJ,GACC,G,mMCZH,aAAa,mDAQb,SAASC,EAAsBp2D,GAsC7B,MArCkB,CAChBof,SAAU,IACV4b,QAAS,UACTzb,MAAO,CACL82C,UAAW,KAEbj/C,KAAM,SACJmI,EACAE,EACAC,EACA42C,GAEA,SAASxL,EAAgBjwD,GAEvB,GADAA,EAAMwwD,kBACF5rC,EAAQ,IAAMA,EAAQ,GAAG6Y,OAAS7Y,EAAQ,GAAG6Y,MAAM5pB,OAAS,EAAG,CACjE,MASM+/C,EAAgB,CAAEn2B,MATV7Y,EAAQ,GAAG6Y,MASa70B,IAAK6yD,EAAY3M,OACvD3pD,EAAc0J,QAAQ,gBAAiB+kD,EACzC,CACF,CAEAhvC,EAAQpe,KAAK,SAAUypD,GAEvBvrC,EAAM6I,IAAI,YAAY,WACpB3I,EAAQurC,OAAO,SAAUF,EAC3B,GACF,EAIJ,EA/Ca,QAIblvD,QACGC,OAAO,8BACPijB,UAAU,wBAAyB,CAAC,gBAAiBs3C,GAyCvD,G,mMC3ED,aAAa,4DAGbx6D,QACGC,OAAO,wBACPijB,UAAU,uBAAuB,WAChC,MAAO,CACLM,SAAU,IACV4b,QAAS,UACT5jB,KAAM,SACJmI,EACAuvC,EACAnkB,EACA/J,GAEAkuB,EAAKV,GAAG,UAAU,WAChB,MAAM91B,EAASw2B,EAAK,GAAwBx2B,MAC5CsI,EAAQ21B,cAAcj+B,EACxB,GACF,EAEJ,GAAG,G,mMCrBL,aAAa,4DAGb18B,QAAQC,OAAO,wBAAwBijB,UAAU,2BAA4B,CAC3E,OACA,SAAU2tC,GACR,MAAO,CACLrtC,SAAU,IACV4b,QAAS,WACT5jB,KAAM,SACJmI,EACAE,EACAC,EACAkhB,GAEA,SAAS0H,IACP,IAAIrqC,EAAOwhB,EAAQxhB,OAGfyhB,EAAM82C,SAAoB,SAATv4D,IACnBA,EAAO,IAET2iC,EAAQ21B,cAAct4D,EACxB,CAEK2iC,IAGLA,EAAQ61B,QAAU,WACZ71B,EAAQ81B,aAAej3C,EAAQxhB,QACjCwhB,EAAQxhB,KAAKwuD,EAAKkK,eAAe/1B,EAAQ81B,YAAc,IAE3D,EAGAj3C,EAAQ2uC,GAAG,qBAAqB,WAC9B7uC,EAAMmD,OAAO4lB,EACf,IACAA,IACF,EAEJ,GACC,G,mMCxBH,aAAa,4DAIb1sC,QAAQC,OAAO,wBAAwBijB,UAAU,gBAAiB,CAChE,UACA,SACA,gBACA,gBACA,SACE/iB,EACAi6D,EACAh2D,EACAsgC,GAEA,MAAO,CACLlhB,SAAU,IACVhI,KAAM,SAAUmI,EAAOE,EAASC,GAC9B,MAAMk3C,EAAgBr3C,EAAM8H,OAAO3H,EAAMm3C,cAAc,SAAU9iD,GAC1DA,IAIL+iD,IACAF,IACF,IAEA,SAASE,IACP,MAAMv5D,EAAS3B,EAAAA,QAAQ6jB,QAAQ1jB,GACzBg7D,EAAe,WACnBC,IACAC,EAAaC,eAAeztB,SAC9B,EACMwtB,EAAoBr7D,EAAAA,QAAQ6jB,QAAQ,IAAMC,EAAMtN,IAChD+kD,EAAWF,EAAa7wD,KAAK,aAC7BgxD,EAAWH,EAAa/1C,KAAK,mBACnC,IAAIm2C,EAAqB,EACzB,MAAMC,EAAsB/3C,EAAM8H,OAChC3H,EAAM63C,gBACN,SAAUtuD,IACS,IAAbA,IACF8tD,IACAx3C,EAAMqmB,MAAM2xB,gBAAiB,EAEjC,IAmCF,SAASC,IACPC,EAAc,cACdT,IAEAI,EAASxd,UAAU,GAGQ,IAAvByd,IACFD,EAASM,WAAW,GACpBN,EAASM,WAAWL,GAExB,CAEA,SAASI,EAAcjI,GACrB,IAAKwG,EAAOt2C,EAAMi4C,QAAb3B,CAAsBz2C,GACzB,OAGF,MAAMpP,EAAO8mD,EAAaC,eAE1B52B,EAAcxtB,QAAQ3C,EAAKynD,SAAS,SAAUh7B,GAExCA,EAAIg7B,QACNt3B,EAAcxtB,QAAQ8pB,EAAIg7B,SAAS,SAAUC,QAE3B16D,IAAdqyD,GACAqI,EAAWrI,YAAcA,GAEzBr/C,EAAKsnD,cAAcI,EAEvB,SAEkB16D,IAAdqyD,GAA2B5yB,EAAI4yB,YAAcA,GAC/Cr/C,EAAKsnD,cAAc76B,EAGzB,GACF,CAEA,SAASo6B,IACP,MAAMc,EAASpgC,SAAShY,EAAMo4C,SAAW,IACnCv6D,EAAc3B,EAAAA,QAAQ6jB,QAAQ1jB,GAC9Bg8D,EAAgBd,EAAa/1C,KAAK,yBAClC82C,EACJf,EAAa/1C,KAAK,kBAAkBzV,cACpCssD,EAActsD,cACdwrD,EAAa/1C,KAAK,iBAAiBzV,cAC/BwsD,EAAuB16D,EAAOkO,cAAgBqsD,EAC9CI,EAAYnrD,KAAKC,IACrBirD,EACAD,GAEF,IAAI5C,EAAS,EACT+C,EAAiB,EAEjBH,EAA6BC,EAC/BE,GAAkB,GAGhB/C,EADE11C,EAAM04C,eACC,GAEA,EAIbnB,EAAat4D,OAAOu5D,EAAY9C,GAG5B71C,EAAMqmB,MAAMyyB,QACdjB,EAASj1C,SAAS,cAClB80C,EAAa/1C,KAAK,iBAAiBo3C,SAEnClB,EAASz4D,OACPu5D,EACEjB,EAAa/1C,KAAK,kBAAkBzV,cACpCwrD,EAAa/1C,KAAK,iBAAiBzV,cACnC0sD,EACA,IAEJf,EAASmB,YAAY,cACrBtB,EAAa/1C,KAAK,iBAAiB5e,OAEvC,CAIA,SAASk2D,IACPnB,EAAqBD,EAASM,YAChC,CAxHKP,IAKLA,EAAS91D,KAAK,cAAem3D,GAE7Bj7D,EAAO6wD,GAAG,SAAU2I,GACpB/2D,EAAcwnB,UACZ,wBACAgwC,EACA,kBAEFx3D,EAAcwnB,UACZ,qBACAuvC,EACA,kBAGFx3C,EAAM6I,IAAI,YAAY,WACpB7qB,EAAO8wD,IAAI,SAAU0I,GACrBO,IACAt3D,EAAcy5B,eAAe,iBAC/B,IAEAg+B,IAEAT,IAEAC,EAAaC,eAAeztB,UA4F9B,CACF,EAEJ,GACC,G,8MCnMH,aAAa,4DAGb7tC,QACGC,OAAO,wBACPijB,UAAU,yBAAyB,WAClC,SAAS1H,EAAKmI,EAAOuvC,EAAMpvC,EAAOkhB,GAChCA,EAAQ+tB,SAASngD,MAAK,SAAUyV,GAC9B,MAAMw0C,EAAoB,IAAIhV,OAC3B,IAAGlkC,EAAMk5C,sBACV,KAEF,IAAKA,EAAkB1/C,KAAKkL,GAC1B,OAAOA,EAET,MAAMy0C,EAAaz0C,EAAM3E,QAAQm5C,EAAmB,IAGpD,OAFA73B,EAAQ21B,cAAcmC,GACtB93B,EAAQ61B,UACDiC,CACT,GACF,CAEA,MAAO,CACLt5C,SAAU,IACV4b,QAAS,UACTzb,MAAO,CACLk5C,kBAAmB,KAErBrhD,KAAMA,EAEV,GAAG,G,mMCfL,aAAa,4DAGbxb,QAAQC,OAAO,wBAAwB2f,UAAU,4BAA6B,CAC5Eme,SAAU,CACRviB,KAAM,IACNqtB,MAAO,KAET5K,WAAY,CACV,YACA,kBACA,SACEkR,EACA4tB,GAMA,SAASC,IACPD,EAAgBE,WAAW,8BAA+B,CACxDC,KAAM/tB,EAAUguB,QAEpB,CARcl7D,KAER+6D,qBAAuBA,CAO/B,GAEFv5C,SAAW,4QAKV,G,0LC/BH,aAAa,iDAIbzjB,QAAQC,OAAO,wBAAwB2f,UAAU,0BAA2B,CAC1Eme,SAAU,CACRq/B,cAAe,KAEjBn/B,WAAY,CACV,aACA,gBACA,sBACA,sBACA,sBACA,kBACA,SACE55B,EACAD,EACA6qC,EACAuZ,EACA7uB,EACAojC,GAEA,MAAM/yB,EAAQ/nC,KACRo7D,EAAe,oBAyBrB,SAASC,EAAoBr+D,EAAOuL,GAClCw/B,EAAMuzB,YAAc/yD,EAEpBw/B,EAAMwzB,UAAYxzB,EAAMuzB,YAAc,CACxC,CA3BAvzB,EAAMuzB,iBAAch8D,EACpByoC,EAAMwzB,WAAY,EAClBxzB,EAAM3L,SAAWmqB,EAAoBiV,iBACrCzzB,EAAM0zB,eAAiB,KAChBzuB,EAAoBS,qBACvBqtB,EAAgBY,kBAChBhkC,EAAoBikC,cAClBv5D,EAAWwsC,0BAEf,EAGF7G,EAAM3P,QAAU,WACdj2B,EAAcwnB,UACZ,wCACA0xC,EACAD,EAEJ,EAEArzB,EAAMpM,WAAa,WACjBx5B,EAAcy5B,eAAew/B,EAC/B,CAMF,GAEFr/B,YAAa,uCACZ,G,mMCnEH,aAAa,4DAGbh+B,QAAQC,OAAO,wBAAwB2f,UAAU,cAAe,CAC9D6D,SACE,+dACD,G,4VCGI,MAAMo6C,EAQXh6D,YACUuf,EACAqW,GACR,KAFQrW,SAAAA,EAAyB,KACzBqW,wBAAAA,EAERx3B,KAAKuZ,KAAO,CAACmI,EAAeE,KAC1BA,EAAQm3B,IAAI,UAAW,QACvB/4C,KAAKmhB,UAAS,KACZ,MAAM06C,EACJ77D,KAAKw3B,wBAAwBskC,oBAC3Bl6C,EAAQ,GAAGuqB,WAEfvqB,EAAQ,GAAGuqB,UAAY0vB,EACvBj6C,EAAQm3B,IAAI,UAAW,QAAQ,GAC/B,EAGJ/4C,KAAKuhB,SAAW,GAClB,CAEA5f,iBACE,MAAMsf,EAAY,CAChBE,EACAqW,IAEO,IAAIokC,EAAoBz6C,EAAUqW,GAK3C,OAFAvW,EAAmB,QAAI,CAAC,WAAY,2BAE7BA,CACT,EACD,wBAEDljB,EAAAA,QACGC,OAAO,wBACPijB,UAAU,sBAAuB26C,EAAoB7F,UAAW,G,mMCvCnE,aAAa,4DAEbh4D,QACGC,OAAO,wBACPijB,UAAU,uBAAuB,WAChC,MAAO,CACLM,SAAU,IACVG,MAAO,CAAEq6C,oBAAqB,KAC9BxiD,KAAM,SAAUmI,EAAeE,GAC7BF,EAAM8H,OAAO,uBAAuB,SAAUwyC,GAC5B,GAAZA,EACFp6C,EAAQxhB,KAAK,WAEbwhB,EAAQuuC,OAAO,iCAEnB,GACF,EAEJ,GAAG,G,mMCrBL,aAAa,4DAGbpyD,QAAQC,OAAO,wBAAwBijB,UAAU,gBAAgB,WAC/D,MAAO,CACLM,SAAU,IACVhI,KAAM,SAAUmI,EAAeE,EAAiBC,GACnB,SAAvBA,EAAMo6C,cAAkD,KAAvBp6C,EAAMo6C,cACzCr6C,EAAQuuC,OAAO,iCAEnB,EAEJ,GAAG,G,mMCDH,aAAa,4DAKbpyD,QAAQC,OAAO,wBAAwBijB,UAAU,gBAAiB,CAChE,SACA,aACA,qBACA,SACEk3C,EACA/1D,EACA85D,GAEA,MAAO,CACLC,cAAc,EACdC,YAAY,EACZC,SAAU,IACVC,UAAU,EACV/6C,SAAU,IACVhI,KAAM,SACJge,EACAgK,EACAg7B,EACArL,EACAsL,GAEA,MAAMC,EAAqBr6D,EAAWs6D,qBAChCC,EAAsBxE,EAAOoE,EAAMK,cAAbzE,CAA4B5gC,GAIxD,SAASslC,IACP,IAAIC,GAAqB,EAGzB,MAAMC,OACoBz9D,IAAxBq9D,GAC+B,IAA/BA,EAAoB9rD,OAEjBksD,IACHD,EAAqBZ,EAAmBc,iBACtCL,EACAF,KAIAM,GAAaD,IACfN,GAAY,SAAUv8D,GACpBshC,EAAS4uB,OAAOlwD,EAClB,GAEJ,CAtBA48D,GAuBF,EAEJ,GACC,G,mMCtDH,aAAa,4DAGb9+D,QAAQC,OAAO,wBAAwBijB,UAAU,cAAe,CAC9D,SACA,qBACA,SAAqBk3C,EAAQ+D,GAC3B,MAAO,CACLC,cAAc,EACdC,YAAY,EACZC,SAAU,IACVC,UAAU,EACV/6C,SAAU,IACVhI,KAAM,SACJge,EACAgK,EACAg7B,EACArL,EACAsL,GAEA,MAAMS,EAAsB9E,EAAOoE,EAAMW,YAAb/E,CAA0B5gC,GAOtD,SAAS4lC,IACP,IAAIC,GAAmB,EAGvB,MAAML,OACoBz9D,IAAxB29D,GAC+B,IAA/BA,EAAoBpsD,OAEjBksD,IACHK,EACElB,EAAmBmB,0BAA0BJ,KAG7CF,GAAaK,IACfZ,GAAY,SAAUv8D,GACpBshC,EAAS4uB,OAAOlwD,EAClB,GAEJ,CApBAk9D,GAqBF,EAEJ,GACC,G,uMCrDH,SAASjB,EAAmBvkC,GAQ1B,MAPgB,CACdqlC,iBAAkBA,EAClBM,yBAA0BA,EAC1BD,0BAA2BA,EAC3BE,+BAAgCA,GAOlC,SAASP,EAAiBL,EAAqBF,GAC7C,YAA4Bn9D,IAAxBq9D,GAGGA,EAAoBtxD,QAAQoxD,IAAuB,CAC5D,CAEA,SAASa,EAAyBE,GAChC,OAAOH,EAA0B,CAACG,GACpC,CAEA,SAASH,EACPJ,GAEA,QAA4B39D,IAAxB29D,GAAoE,IAA/BA,EAAoBpsD,OAC3D,OAAO,EAET,MAAM4sD,EAAkB9lC,EAAe+lC,iBACvC,QAAKD,GACER,EAAoBU,OAAOC,GACzBH,EAAgBpyD,QAAQuyD,IAAe,GAElD,CAEA,SAASL,EACPN,GAEA,QAA4B39D,IAAxB29D,GAAoE,IAA/BA,EAAoBpsD,OAC3D,OAAO,EAET,MAAM4sD,EAAkB9lC,EAAe+lC,iBACvC,OAAOT,EAAoB1uB,MAAMqvB,GACxBH,EAAgBpyD,QAAQuyD,IAAe,GAElD,CACF,C,iDArDA7/D,QACGC,OAAO,wBACPqB,QAAQ,qBAAsB,CAAC,iBAAkB68D,IAEpDA,EAAmB9lD,QAAU,EAiD5B,G,4QCvDDrY,QAAQC,OAAO,wBAAwB2f,UAAU,sBAAuB,CACtEme,SAAU,CAER+hC,SAAU,IACV/1C,KAAM,KAERkU,WAAY,CACV,SACA,WACA,SAAUzE,EAAgBgK,GACxB,MAAMwG,EAAQ/nC,KAWd,SAAS89D,IACP,GAAI/1B,EAAM81B,SAAU,CAClB91B,EAAMphC,YAAcohC,EAAM81B,SAASj3D,OAAO,GAE1C,MAAMP,EAAQ03D,EAAah2B,EAAM81B,UAEjB9/D,EAAAA,QAAQ6jB,QACtB2f,EAAS,GAAGsL,uBAAuB,WAE7BC,KAAK,QAAS,oBAAsBzmC,EAC9C,MACE0hC,EAAMphC,YAAc,IAEjBohC,EAAMjgB,OACTigB,EAAMjgB,KAAO,IAEjB,CAEA,SAASi2C,EAAal0D,GACpB,MAAMm0D,EAAMC,EAAUp0D,GAGtB,OAAOq0D,EADKC,EADGtkC,SAASmkC,EAAK,KAG/B,CAEA,SAASG,EAAWC,GAClB,MAAMC,EAAY,GAClB,IAAIC,EAASF,EACb,KAAOE,EAASD,GACdC,GAAkBD,EAEpB,OAAOxkC,SAASykC,EAClB,CAEA,SAASL,EAAUr0B,GACjB,IAAIh5B,EAAI,EACJgM,EAAI,GACR,KAAOhM,EAAIg5B,EAAM/4B,QACf+L,GAAKgtB,EAAM20B,WAAW3tD,KAAKQ,SAAS,IAEtC,OAAOwL,CACT,CAEA,SAASshD,EAAqB/iC,GAC5B,OAAO7tB,EAAQ6tB,EACjB,CAtDAn7B,KAAKo4B,QAAU,WACb0lC,IACAvmC,EAAO/N,OAAO,YAAY,SAAUpe,EAAUD,GACxCC,IAAaD,GAAYC,GAC3B0yD,GAEJ,GACF,EAiDA,MAAMxwD,EAAU,CACd,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEJ,GAEFkU,SAAU,CACR,mYAWAurB,KAAK,KACN,G,4QChGHhvC,QAAQC,OAAO,wBAAwBijB,UAAU,cAAe,CAC9D,YACA,SAAUu9C,GACR,MAAO,CACL98C,MAAO,CAAC,EACRH,SAAU,IACVhI,KAAM,SACJmI,EACAE,EACAC,GAEA,MAAM48C,EAAa78C,EAAQhW,OAC3B,IAAIvL,EAAY,KACZq+D,GAAe,EA6BnB,OA5BAh9C,EAAMi9C,kBAAmB,EACzB/8C,EAAQm3B,IAAI,CAAE6lB,WAAY,iBAC1Bl9C,EAAM8H,OAAO,oBAAoB,SAAUq1C,EAAQC,GACjD,IAAI3mB,EAAmBl4C,EAavB,OAZI4+D,IAAWC,IAAqB,IAAXA,IACvB7+D,EAAQ2hB,EAAQ3hB,QAChBA,EAAM84C,IAAI,CACR2b,KAAM,UACNtlD,SAAU,aAEZ+oC,EAAOqmB,EAAU,GAAGrmB,KACpBA,EAAK7D,YAAYr0C,EAAM,IACvBI,EAAYJ,EAAM,GAAGqjD,YAAc,IACnCjjD,GAAwB,KACxB83C,EAAKhH,YAAYlxC,EAAM,KAErByhB,EAAMi9C,kBACR/8C,EAAQhW,KAAK,IACb8V,EAAMq9C,WAAY,EAClBn9C,EAAQm3B,IAAI,CAAEimB,SAAU,UACjBp9C,EAAQ0C,SAAS,gBAExB1C,EAAQhW,KAAK6yD,GACb/8C,EAAMq9C,WAAY,EAClBn9C,EAAQm3B,IAAI,CAAEimB,SAAU3+D,IACjBuhB,EAAQ84C,YAAY,cAE/B,IACO94C,EAAQ2uC,GAAG,SAAS,WACzB,MAAMsE,EAAMnzC,EAAMu9C,QAAQp6C,OAAOhD,EAAMq9C,eACvC,GAAKx9C,EAAMi9C,mBAAoB9J,EAKxB,CACL,GAAI6J,EACF,OAMF,OAJAA,GAAe,EACf98C,EAAQm3B,IAAI,CAAEr9B,QAAS,QACvBkG,EAAQ84C,YAAY,cACpBh5C,EAAMq9C,WAAY,EACXr9C,EAAMu9C,QAAQp6C,OAAOhD,EAAMs9C,YACpC,CAbEz9C,EAAMmD,QAAO,WAEX,OADAnD,EAAMq9C,WAAY,EACVr9C,EAAMi9C,kBAAmB,CACnC,GAWJ,GACF,EAEJ,GACC,G,8MChEH,aAAa,mDAMb,SAASS,IASP,MARkB,CAChB79C,SAAU,IACV4b,QAAS,UACT5jB,KAAMA,EACNmI,MAAO,CACL29C,iBAAkB,MAKtB,SAAS9lD,EACPmI,EACAE,EACAC,EACAkhB,GAEAA,EAAQu8B,qBAAqB3uD,MAAK,WAChC,MAAM4uD,EACJ79C,EAAM29C,iBAAiBtH,cAAgBh1B,EAAQg1B,mBACNz4D,IAAvCoiB,EAAM29C,iBAAiBtH,aACgB,OAAvCr2C,EAAM29C,iBAAiBtH,aACgB,KAAvCr2C,EAAM29C,iBAAiBtH,oBACEz4D,IAAxByjC,EAAQg1B,aACiB,OAAxBh1B,EAAQg1B,aACgB,KAAxBh1B,EAAQg1B,aAEdh1B,EAAQ6d,aAAa,eAAgB2e,GACrC79C,EAAM29C,iBAAiBze,aAAa,eAAgB2e,EACtD,GACF,CACF,EArCa,QAEbxhE,QACGC,OAAO,wBACPijB,UAAU,mBAAoBm+C,EAiChC,G,mMCrCD,aAAa,4DASbrhE,QAAQC,OAAO,wBAAwBijB,UAAU,kBAAmB,CAClE,WACA,YACA,gBACA,SACEE,EACA+rB,EACAsyB,GAEA,MAAO,CACLj+C,SAAU,IACVhI,KAAM,SACJmI,EACAE,EACAC,GAEA,MAAM49C,OACiBngE,IAArBuiB,EAAM69C,WAA2B79C,EAAM69C,WAAa79C,EAAM89C,OAC5D,IAAIC,EACJJ,EAAcK,aACWvgE,IAAvBuiB,EAAMi+C,aAA6Bj+C,EAAMi+C,aAAe,QAEvCxgE,IAAfmgE,IACFG,EAAcl+C,EAAM8H,OAAOi2C,GAAY,SAAUZ,GAC3CA,GAAUh9C,EAAMtN,IAClB4M,GAAS,WACH+rB,EAAU6yB,SAAWl+C,EAAMtN,GAC7B24B,EAAU6yB,KAAKl+C,EAAMtN,IAErBirD,GAEJ,GAAG,IAEP,KAGF99C,EAAM6I,IAAI,YAAY,WAChBq1C,GACFA,GAEJ,GACF,EAEJ,GACC,G,mMCxDH,aAAa,4DAGb7hE,QAAQC,OAAO,wBAAwBijB,UAAU,wBAAyB,CACxE,WACA,SAAUE,GACR,MAAO,CACLI,SAAU,IACVhI,KAAM,SACJmI,EACAE,EACAkrB,GAEmC,SAA/BA,EAAKxQ,uBACPnb,GAAS,WACP,MAAMob,EAAch8B,SAASs7C,cAAc,uBAC3Ctf,EAAYwf,UAAYxf,EAAYyf,YACtC,GAEJ,EAEJ,GACC,G,qMC3BDj+C,QACGC,OAAO,gCACP2f,UAAU,uBAAwB,CACjCoe,YAAa,mCACbD,SAAU,CACRkkC,aAAc,IACdv1B,KAAM,IACNrO,SAAU,IACV6jC,oBAAqB,IACrBC,iBAAkB,KAEpBlkC,WAAY,CACV,aACA,SAAU9a,GACR,IAAI6mB,EAAQ/nC,KAEZ+nC,EAAMo4B,sBAAwB,KAC5Bp4B,EAAMk4B,oBAAoB,CAAED,aAAcj4B,EAAMi4B,cAAe,EAGjEj4B,EAAMq4B,mBAAqB,KACzBr4B,EAAMm4B,iBAAiB,CACrBhyB,OAAQnG,EAAMi4B,aAAa9xB,OAC3BmyB,iBAAkBt4B,EAAMi4B,aAAaK,iBACrCC,SAAUv4B,EAAMi4B,aAAapjC,aAG/B1b,EAAWq/C,eAAiB,oBAAoB,CAEpD,IAGH,G,oKCnBL,aAAa,mDAUb,SAASC,EACP7iC,EACAv7B,EACAu1B,GAGA,MAAM9pB,EAAU,CACd4yD,kBAAmB,EACnBR,oBAAqBA,EACrBS,iBAAkBA,EAClBC,qBAAsBA,EACtBT,iBAAkBA,GAGpB,OAAOryD,EAIP,SAASoyD,EAAoBW,EAAgBpgC,GAC3C,OAAO7C,EAAMkjC,OACXz+D,EAAW47B,WACT,qBACArG,EAAe6B,UAAUjlB,GACzB,kBACAqsD,EACF,CAAEpgC,UAAWA,GAEjB,CAEA,SAASmgC,IAAwC,IAAnBngC,EAAY,UAAH,8CACrC,OAAO7C,EACJ3nB,IACC5T,EAAW47B,WACT,qBACArG,EAAe6B,UAAUjlB,GACzB,qBACF,CAAEisB,UAAWA,IAEdvG,MAAK,SAAUwG,GACd5yB,EAAQ4yD,kBAAoBhgC,EAASl4B,IACvC,GACJ,CAEA,SAASm4D,EAAiBI,EAAYtgC,GACpC,OAAO7C,EACJ3nB,IACC5T,EAAW47B,WACT,qBACArG,EAAe6B,UAAUjlB,GACzB,6BACAusD,EACF,CAAEtgC,UAAWA,IAEdvG,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,IAClB,GACJ,CAEA,SAAS23D,EAAiBhyB,EAAQ1N,GAChC,OAAO7C,EAAMT,IACX96B,EAAW47B,WACT,qBACArG,EAAe6B,UAAUjlB,GACzB,kBACA25B,EACF,CAAE1N,UAAWA,GAEjB,CACF,EA9Ea,QAIbziC,QACGC,OAAO,gCACPqB,QAAQ,8BAA+BmhE,GAE1CA,EAA4BpqD,QAAU,CAAC,QAAS,aAAc,iBAsE7D,O,+NChGD,aAAa,4DAMbrY,QAAQC,OAAO,gCAAgC2f,UAAU,oBAAqB,CAC5Eoe,YAAa,+BACbD,SAAU,CACRM,SAAU,KAEZJ,WAAY,CACV,SACA,UACA,WACA,8BACA,gBACA,wBACA,qBACA,SACE+kC,EACA7iE,EACAijB,EACAq/C,EACAr+D,EACA6+D,EACA/+D,GAEA,MAAM8lC,EAAQ/nC,KACd+nC,EAAMk5B,iBAAmB,GACzBl5B,EAAMm5B,mBAAoB,EAE1Bn5B,EAAMk4B,oBAAsBA,EAC5Bl4B,EAAMo5B,oBAAsBA,EAC5Bp5B,EAAMm4B,iBAAmBA,EACzBn4B,EAAMq5B,qBAAuBA,EAC7Br5B,EAAM44B,qBAAuBA,EAC7B54B,EAAMs5B,4BAA6B,EAEnCt5B,EAAM+4B,WAAa,EACnB/4B,EAAMu5B,SAAW,GAEjB,MAAMlG,EAAe,4BA0CrB,SAAS6E,EAAoBD,GAC3BQ,EACGP,oBAAoBD,EAAazrD,IAAI,GACrC0lB,MAAK,WACJ8N,EAAMk5B,iBAAmBl5B,EAAMk5B,iBAAiB/9C,QAAO,SACrD4O,GAEA,OAAOA,EAAIvd,KAAOyrD,EAAazrD,EACjC,KAC0B,IAAtByrD,EAAav1B,MACf+1B,EAA4BC,mBAEhC,GACJ,CAEA,SAASW,IACPr5B,EAAM+4B,WAAa/4B,EAAM+4B,WAAa,EACtCS,EAA4Bx5B,EAAM+4B,WACpC,CAEA,SAASH,IACP,OAAOH,EAA4BC,iBACrC,CAEA,SAASU,IACPp5B,EAAMm5B,mBAAqBn5B,EAAMm5B,kBAC5Bn5B,EAAMm5B,mBAIXn5B,EAAM+4B,WAAa,EACnBS,EAA4Bx5B,EAAM+4B,aAJhC/4B,EAAMk5B,iBAAmB,EAK7B,CAEA,SAASf,EAAiBhyB,EAAQmyB,EAAkBC,GAClDv4B,EAAMm5B,mBAAoB,EAExBb,IAAqBp+D,EAAmBo+D,iBAAiBmB,aAEzDT,EAAOxhE,GAAG,kBAAmB,CAC3B2uC,OAAQA,EACRuzB,cAAc,IAGhBpB,IAAqBp+D,EAAmBo+D,iBAAiBpoC,UAEzD8oC,EAAOxhE,GAAG,kBAAmB,CAC3B2uC,OAAQA,EACRoyB,SAAUA,IAGZU,EAAsBU,YAAYxzB,GAAQ,GAAO,GAGnDsyB,EAA4BN,iBAAiBhyB,EAC/C,CAGA,SAASyzB,IACPnB,EAA4BG,sBAAqB,EACnD,CAEA,SAASY,EAA4BT,GACnCN,EACGE,iBAAiBI,GAAY,GAC7B7mC,MAAK,SAAUwG,GACdsH,EAAMk5B,iBAAmBl5B,EAAMk5B,iBAAiBr9B,OAAOnD,GACvDsH,EAAMs5B,6BACH5gC,EAAS5vB,OAASk3B,EAAMu5B,WACJ,IAArBv5B,EAAM+4B,UACV,GACJ,CA/GK/4B,EAAM3L,UACTx9B,EAAEc,QAAQ6wD,GAAG,SAAS,SAAUvzD,GAC9B,MAAM0zC,EAAS1zC,EAAM0zC,OAEL,sBAAdA,EAAOn8B,IACO,qCAAdm8B,EAAOn8B,IACPxW,EAAAA,QAAQ6jB,QAAQ8uB,GAAQskB,SAAS,yBACjCj3D,EAAAA,QAAQ6jB,QAAQ8uB,GAAQskB,SAAS,2BACjCj3D,EAAAA,QAAQ6jB,QAAQ8uB,GAAQskB,SAAS,2BAI9Bj3D,EAAAA,QAAQ6jB,QAAQ,oBAA4BggD,IAAIlxB,GAAQ7/B,QAI7DsQ,GAAS,WACP4mB,EAAMm5B,mBAAoB,EAC1Bn5B,EAAMk5B,iBAAmB,EAC3B,GACF,IAGFjhE,KAAKo4B,QAAU,WACT2P,EAAM3L,UACR+kC,IAEFX,EAA4BG,sBAAqB,GACjDx+D,EAAcwnB,UACZ,0CACAg4C,EACAvG,EAEJ,EAEAp7D,KAAK27B,WAAa,WAChBx5B,EAAcy5B,eAAew/B,GAC7Bl9D,EAAQiP,MAAQ,IAClB,CA0EF,IAED,G,mMC9JH,aAAa,4DAGmBpP,QAAQC,OAAO,+BAAgC,CAC7E,cAGsBg/B,IAAI,CAC1B,iBACA,SAAUC,GACRA,EAAeC,IACb,+BACAC,EAAAA,MAAAA,GAGFF,EAAeC,IACb,mCACAC,EAAAA,OAAAA,EAEJ,GACC,G,mMCpBH,aAAa,4DAWbp/B,QAAQC,OAAO,0BAA0B2f,UAAU,0BAA2B,CAC5Eoe,YAAa,uCACbD,SAAU,CACRT,KAAM,IACNe,SAAU,IACVylC,oBAAqB,IACrBC,oBAAqB,KAEvB9lC,WAAY,CACV,YACA,gBAEA,SACEwiC,EACAn8D,GAEA,MAAM0lC,EAAQ/nC,KAOd,SAAS+hE,IAGPh6B,EAAM85B,qBACR,CAEA,SAAS7U,IAGPjlB,EAAM+5B,oBAAoB,CACxB9mC,KAAM+M,EAAM/M,KACZgnC,iBAAkBj6B,EAAMk6B,sBAE5B,CAEA,SAASC,IACO1D,EAAU,GAAG1uB,eACzB,gBAEI1pB,MAAQ,GACd2hB,EAAM/M,KAAO,IACf,CA1BA+M,EAAMk6B,qBAAuBC,EAC7Bn6B,EAAMg6B,aAAeA,EACrBh6B,EAAMilB,aAAeA,EACrBjlB,EAAM1M,KAAKf,UAAYj4B,EAAco6B,aAAasL,EAAM1M,KAAK9mB,GAwB/D,IAED,G,kMC1DH,aAAa,4DAGaxW,QAAQC,OAAO,yBAA0B,CACjE,yBAGgBg/B,IAAI,CACpB,iBACA,SAAUC,GACRA,EAAeC,IACb,uCACAC,EAAAA,OAAAA,EAEJ,GACC,G,8MCfH,aAAa,4DAIbp/B,QAAQC,OAAO,wBAAwBijB,UAAU,yBAA0B,CACzE,oBACA,SAAU3K,GACR,MAAO,CACLiL,SAAU,IACV4b,QAAS,UACT5jB,KAAM,SACJmI,EACAuvC,EACAnkB,EACAokB,GAIAA,EAAKJ,SAASjwB,SAAQ,SAAUza,GAE9B,MAAMqrC,GAASn7C,EAAkB2iB,sBAAsB7S,GAGvD,OAFA8qC,EAAKtQ,aAAa,cAAe6Q,GAE1BrrC,CACT,IAIA8qC,EAAKH,YAAYlwB,SAAQ,SAAUza,GAOjC,OALA8qC,EAAKtQ,aACH,eACCtqC,EAAkB2iB,sBAAsB7S,IAGpCA,CACT,GACF,EAEJ,GACC,G,mMCtCH,aAAa,4DAEbroB,QAAQC,OAAO,oBAAqB,GAAI,G,mMCIxC,aAAa,4DAIbD,QAAQC,OAAO,qBAAqBklB,OAAO,qBAAsB,CAC/D,cACA,SAAU0U,GACR,OAAO,SAAU6D,GACf,OAAO7D,EAAYuqC,mBAAmB1mC,EACxC,CACF,GACC,G,4QCtBH19B,QAAQC,OAAO,qBAAqBklB,OAAO,UAAU,WACnD,OAAO,SAAU4O,GACf,cAAcA,CAChB,CACF,GAAG,G,kMCDH,aAAa,4DAGb/zB,QAAQC,OAAO,qBAAqBklB,OAAO,aAAc,CACvD,UACA,SAAoBk/C,GAClB,OAAO,SAAUC,EAAuB7gC,GACtC,GAAK6gC,EAWL,OANkC,IAAhCA,EAAch3D,QAAQ,OACU,IAAhCg3D,EAAch3D,QAAQ,OAEtBg3D,GAAiB,KAGZD,EAAQ,OAARA,CAAgBC,EAAe7gC,EACxC,CACF,GACC,G,ySCfI,MAAM8gC,EAAU,CAAO71B,EAAa5oC,KACzC,MAAM85B,GAAQ,EAAA4kC,EAAAA,eAAcvsD,IAAI,SAChC,OAAO,IAAIwsD,SAAQ,CAACzhC,EAAS0hC,KAE3B,MAAMC,EAAY7N,IAChB,MAAMtsD,EAAOssD,EAAItsD,KACjBw4B,EAAQx4B,EAAKi5C,UAAU,EAGnBmhB,EAAWC,GAAWH,EAAOG,GACnCjlC,EAAM3nB,IAAOy2B,EAAK5oC,GAASo2B,KAAKyoC,EAAUC,EAAQ,GAClD,EAGJ,YAGO,MAAME,EAAuBp2B,GAClC61B,EAAQ71B,EAAK,CAAEjM,WAAW,IAAQ,uB,yRCrB7B,MAAMsiC,EAAiBj5D,IAC5B,EAAA04D,EAAAA,eAAcvsD,IAAInM,GAAW,iB,uMCT/B,aAAa,4HAUE,MAAMk5D,EACnBphE,eAA2B,GAI3BC,cACGlC,OAAewC,+BAAiClC,KACjDA,KAAKgjE,gBACP,CAEAA,iBACEhjE,KAAKijE,SAAW,CAAC,CACnB,CAEAC,YAAYt9D,GACV,QAAI5F,KAAKijE,SAASr9D,KAChB5F,KAAKijE,SAASr9D,GAAO,IACd,EAIX,CAEAD,UAAUC,GACR,OAAO5F,KAAKijE,SAASr9D,IAAQ5F,KAAKijE,SAASr9D,GAAKiL,OAAS,CAC3D,CAEAsyD,SAASv9D,EAAsB7G,GAC7B,MAAMqkE,EAASpjE,KAAKijE,SAASr9D,IAAQ,GACrC5F,KAAKijE,SAASr9D,GAAOw9D,EAAOx/B,OAAO7kC,EACrC,EACD,YAEDhB,EAAAA,QACGC,OAAO,gCACP6P,QAAQ,iCAAkCk1D,EAAgC,G,4TC8C7E,SAASM,EACP1lC,EACArc,EACAgiD,EACAC,EACAt0B,EACAu0B,EACAC,EACAC,EACAptD,EACAvI,EACA+sD,EACAj9B,EACA8lC,EACA1hE,EACArD,EACAglE,EACA1hE,EACAmf,EACAqhB,GAEA,IACImhC,EACAtQ,EACAuQ,EAEAC,EALAX,EAAS,GAITY,GAAc,EASlB,MAPgB,CACdC,iBAAkBA,EAClBC,0BAA2BA,EAC3BC,mBAAoBA,EACpBC,6BAA8BA,IAKhC,SAASD,EAAmBn7B,EAAM2Q,GAChCz3C,EAA+B8gE,iBAE/Ba,EAAW76B,EACXo6B,EAAS,GACT7P,EAAY5Z,EAEZ0qB,IAEA,MAAMh9D,EAAUga,EAAmBgK,WAAW,QAW9C,OATAvsB,QAAQE,IAAI,oDAGZqI,EAAQuH,iBAAiB,6BACzBvH,EAAQ2hB,0BACR3hB,EAAQmI,kBAAkB,6BAE1B1Q,QAAQE,IAAI,qDAEL6+B,EAAGye,KAAK8mB,EACjB,CAEAkB,eAAeL,EAAiBj7B,EAAM2Q,EAAQ4qB,GAC5CriE,EAA+B8gE,iBAC/B,MAAMwB,EAAqB7mC,EAAM3nB,IAC9B,GAAE2jC,EAAO3b,4CACV,CAAEwC,WAAW,IAGT0b,QAAere,EAAGsG,IAAI,CAC1BqgC,EACAb,EAAoBc,0BACpBd,EAAoBe,0BAGhBC,EAAezoB,EAAO,GAAG3zC,KACzBq8D,EAAgC1oB,EAAO,GACvC2oB,EAA8B3oB,EAAO,GAE3C2nB,EAAW76B,EACXo6B,EAAS,GACT7P,EAAY5Z,EACZoqB,EAAqBQ,EACrB,MAAMnwD,EAAQsoB,KAAK9zB,MAAMogC,EAAK87B,YACxBC,EAAgBC,GAAiB5wD,GACvC0vD,EAAWmB,GAAiB7wD,GAC5B,MAAM8wD,EACJj2B,EAA6Bk2B,iBAAiBJ,GAC1CK,EACJn2B,EAA6Bo2B,kBAAkBN,GAE3C7iD,EAAU,CAEd7a,QAASga,EAAmBgK,WAAW,QAEvC2d,OACA50B,QACAuwD,eACAI,gBAGAjB,WAEAoB,gBACAE,iBACAE,cAAet8B,EAAKu8B,MAGpBX,gCACAC,8BAEAW,UAAW,IAAI5B,EAAsB6B,kBAAkBz8B,IAqBzD,GAnBA08B,EAAmBxjD,EAAS6hD,GAC5B4B,EAA0BzjD,GAC1B0jD,GAAyB1jD,GACzB2jD,EAAmB3jD,GACnB4jD,EAA+B5jD,GAC/B6jD,GAAkBhB,EAAejB,GAOjCkC,EAA0B9jD,EAASkhD,GACnC6C,GAAkBj9B,EAAKu8B,MAAOR,GAC9BmB,GAAiCpC,EAAUiB,EAAe3B,GAG1D+C,GAAwBjkD,GAEoB,MAAxCA,EAAQsjD,UAAUY,mBAA4B,CAChD,MAAM3+C,EAAYwnB,EAA6Bo3B,kBAC7CtB,EACAjB,GAEF,IAAK,IAAIlzD,EAAI,EAAGA,EAAIsR,EAAQ6iD,cAAcl0D,OAAQD,IAAK,CAErD,MAAM01D,EAAYpkD,EAAQ6iD,cAAcn0D,GAClC21D,EAAerkD,EAAQsjD,UAAUzzD,MAAMy0D,WAC3C,gBACAF,EAAU/xD,IAGNkyD,EAAYC,GAAStyD,EAAOkyD,GAC5BK,EAAa,IAAKzkD,EAASokD,YAAWG,aAoB5C,OAjBAG,GAAsCH,GACtCI,EAAkCJ,GAClCK,GAA6CL,EAAWH,GACxDS,GAA2BN,EAAWH,GACtCU,GAA6BP,EAAWH,GAEtCC,SAAAA,EAAcU,aACdX,EAAUniE,WAAa+iE,EAAAA,SAASvmB,cAEhCwmB,GACEb,EACAvB,EACAjB,GAKIwC,EAAUryD,UAChB,KAAKhS,EAAmBsT,aAAa+C,kBACnC8uD,GAAyBhzD,EAAMwD,cAAe0uD,EAAWG,GACzDY,GACEjzD,EAAMwD,cACNxD,EAAMyD,cACNyuD,GAEF,MAEF,KAAKrkE,EAAmBsT,aAAasa,gBACnCy3C,GACEvC,EACAjB,EACAwC,EACAG,GAEF,MAEF,KAAKxkE,EAAmBsT,aAAaC,iBACnC+xD,GACExC,EACAjB,EACAwC,EACAG,GAEF,MAEF,KAAKxkE,EAAmBsT,aAAa6J,SACnCooD,GAAqBlB,EAAWvB,EAAejB,GAC/C2D,EAAsBnB,GAEtBoB,GAAmBjgD,EAAW6+C,EAAW3B,GACzCgD,EAAqBhB,EAAYvD,GAGjC,IAAK,MAAMwE,KAAerB,EAAathD,KAAKthB,aAQ1C,OAPAkkE,GACEvB,EACAC,EACArkD,EAAQojD,cACRsC,GAGMA,EAAYn9C,MAClB,IAAK,SACHq9C,GACExB,EACAsB,EAAYn1B,aACZ,SACAm1B,EAAYp0B,YACZmxB,EACAvB,EACA37C,GAEF,MACF,IAAK,cACHsgD,GACEH,EACA1lD,EACAqkD,EACAD,EACAlD,GAEF,MACF,KAAK4E,EAAAA,cAAcC,UACjBC,GACEN,EACArB,EACAD,EACAlD,GAQR,MACF,IAAK,QACH,MACF,QACEtkE,QAAQC,MACN,+CACAunE,GAMFr3B,EAA6Bk5B,uBAAuB7B,IAEtD8B,GAAyB9B,EAE7B,CACF,CAGA,MAAMj/D,EAAUga,EAAmBgK,WAAW,QAW9C,OATAvsB,QAAQE,IAAI,kDAGZqI,EAAQuH,iBAAiB,2BACzBvH,EAAQ2hB,0BACR3hB,EAAQmI,kBAAkB,2BAE1B1Q,QAAQE,IAAI,mDAERokE,EAAOvyD,OAAS,EACXgtB,EAAGye,KAAK8mB,GAERiF,GAEX,CAEA,SAASV,EAAqBzlD,EAASkhD,GACrC,MAAM,UAAEkD,EAAS,UAAEd,GAActjD,EAEjC,GAA2B,aAAvBokD,EAAUryD,SAAyB,CACrC,MAEMtQ,EAFO6hE,EAAUzzD,MAAMy0D,WAAW,gBAAiBF,EAAU/xD,IACjD0Q,KACQthB,aAE1B,IAAK,IAAIiN,EAAI,EAAGA,EAAIjN,EAAakN,OAAQD,IAAK,CAC5C,MAAMg3D,EAAcjkE,EAAaiN,GAE3B03D,EAAa9C,EAAU8C,WAC1BC,cACAC,MAAM,GACNC,OAAOC,GAAWA,EAAOn0D,IAAM+xD,EAAU/xD,KACzCpE,QAEH,GAAIy3D,EAAYe,sBAAuB,CACrC,IAAIryB,EACJ,IACEA,EAAUsyB,EAAoC,IACzC1mD,EACHomD,aACAV,eAKJ,CAHE,MAAOhF,GACPtsB,GAAU,EACVx3C,QAAQC,MAAM6jE,EAChB,CACA,IAAKtsB,EAAS,CACZ,MAAMv3C,EAAQ,CACZsjC,QAAU,GAAEimC,EAAW18D,uBAAuBg8D,EAAYp0B,wDAE5DtxC,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CACF,CACF,CACF,CACF,CAMA,SAAS6pE,EAAoC,GAIjC,IAJiC,WAC3CN,EAAU,YACVV,EAAW,QACXvgE,GACD,EACC,MAAMwhE,EAAexhE,EAAQigB,eAAeghD,EAAW1iE,KASvD,QARoBqpC,EAA6B65B,kBAC/CD,GACCvzC,GACQA,EAAS/sB,KAAKgM,IAAMqzD,EAAYe,uBAEzCtnD,EAAmBgK,WAAW,QAIlC,CAEA,SAAS26C,EAA0B,EAAe5C,GAAQ,IAAvB,UAAEoC,GAAW,EAC9CA,EAAUuD,eACPR,cACAE,OACE/nE,GAC0B,YAAzBA,EAAE4nE,WAAWr0D,UACbvT,EAAEsoE,QAAQ9lD,QAAQlP,GAAMtT,EAAEgiD,OAAS1uC,EAAE0uC,QAAO7xC,SAE/Co4D,SACAh0D,SAAQ,IAAoB,IAAnB,WAAEqzD,GAAY,EACtB,MAAMvpE,EAAQ,CACZsjC,QAAU,GAAEimC,EAAW18D,0EAEzB1J,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EAAM,GAExB,CAEA,SAASmlE,EAA0Bl7B,EAAM2Q,GASvC,GARAz3C,EAA+B8gE,iBAE/Ba,EAAW76B,EACXo6B,EAAS,GACT7P,EAAY5Z,EACZqqB,GAAc,EACdkF,EAA4ClgC,GAExCo6B,EAAOvyD,OAAS,EAAG,CACrB,MAAMxJ,EAAUga,EAAmBgK,WAAW,QAW9C,OATAvsB,QAAQE,IAAI,2DAGZqI,EAAQuH,iBAAiB,oCACzBvH,EAAQ2hB,0BACR3hB,EAAQmI,kBAAkB,oCAE1B1Q,QAAQE,IAAI,4DAEL6+B,EAAGye,KAAK8mB,EACjB,CAEA,OAAOa,EAAiBj7B,EAAM2Q,EAAQ,KACxC,CAEA,SAASwvB,EAAe3jB,GAItB,OAAO7nB,EAAMyrC,KAAK7V,EAAUv1B,WAAa,yBAA0B,CACjEwxB,OAAQhK,GAEZ,CAEA,SAAS6iB,IACP,OAAOc,EAAetF,EAASiB,YAAY7qC,MAAMwG,IAE/C,IAAK,MAAM1hC,KAAU0hC,EAASl4B,KAAai5C,UACzC4hB,EAAOzyD,KAAK,CAAE0xB,QAAStjC,EAAMyyC,aAAc63B,eAAe,IAO5D,OALIjG,EAAOvyD,OAAS,GAClBiqD,EAAgBE,WAAW,2CAA4C,CACrE,YAAa6I,EAAS/Z,OAGnBsZ,CAAM,GAEjB,CAEA,SAASsC,EAAmB,EAE1B3B,GACA,IAFA,cAAEgB,GAAe,EAGjBuE,GAAuBvE,GACvBwE,GAAoBxE,GACpByE,GAAkBzE,GAClB0E,GAAqB1E,GACrB2E,EAAkB3E,GAClB4E,GAAiC5E,EAAehB,EAClD,CAEA,SAAS4B,EAA0B,GAMhC,IANgC,eACjCP,EAAc,cACdL,EAAa,SACbjB,EAAQ,8BACRc,EAA6B,4BAC7BC,GACD,EACCvjD,EAAOrM,QAAQmwD,GAAgB,SAAUwE,GACvCC,EACED,EACA7E,EACAjB,EACAc,EACAC,EAEJ,GACF,CAEA,SAASgB,EAAmB,GAA6B,IAA7B,cAAEd,EAAa,SAAEjB,GAAU,EACrD,MAAMgG,EAAkBC,IACxB,GAAuB,MAAnBD,GAAsD,IAA3BA,EAAgBj5D,OAC7C,OAGF,IAAK,MAAMm5D,KAAkBF,EAC3B,IAAK,MAAMlC,KAAeoC,EAAe/kD,KAAKthB,aAC5C,GACuB,gBAArBikE,EAAYn9C,MACZw/C,EAAqCrC,GACrC,CACA,MAAM7oE,EAA0B,CAC9BsjC,QACG,IAAG2nC,EAAeE,yKAIjBC,EAAsBpF,EAAc1hD,MACvCijD,GAAcA,EAAU/xD,KAAOy1D,EAAeI,gBAEjDloE,EAA+BihE,SAC7BgH,EAAoBvkE,IACpB7G,GAEFqkE,EAAOzyD,KAAK5R,GACZ,KACF,CAIJsrE,EAA0BP,EAAiB/E,GAE3C,MAAMuF,EAA0BC,IAChC,GAAID,EAAwBz5D,OAAS,IAAMi5D,EAAgB,GAAG7C,YAAa,CACzE,MAAMloE,EAA0B,CAC9BsjC,QACE,uFAWJ,OAPAioC,EAAwBr1D,SAASqzD,IAC3BwB,EAAgB,GAAGM,eAAiB9B,EAAW//D,MACjDrG,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,EAC1D,SAGFqkE,EAAOzyD,KAAK5R,EAEd,CAEA,MAAMyrE,EAAsBzF,EAAc1hD,MACvCijD,GAAcA,EAAU/xD,KAAOu1D,EAAgB,GAAGM,gBAYrDK,GACED,EATAv7B,EAA6By7B,qCAC3BF,EAAoB5kE,IACpBm/D,EACAjB,EACA,MACA,GAON,CAEA,SAASuG,EAA0BP,EAAiB/E,GAClD,GAAIxR,EAAUoX,+BACZ,IAAK,MAAMX,KAAkBF,EAAiB,CAC5C,MAAMc,EAAc7F,EAAc1hD,MAC/BijD,GAAcA,EAAU/xD,KAAOy1D,EAAeI,gBAEjD,GAC6B,MAA3BQ,EAAYC,aACoC,KAAhDD,EAAYC,YAAYC,WAAW,IAAK,IACxC,CACA,MAAM/rE,EAA0B,CAC9BsjC,QAAU,8BAA6B2nC,EAAeE,8BAExDhoE,EAA+BihE,SAASyH,EAAYhlE,IAAK7G,GACzDqkE,EAAOzyD,KAAK5R,GACZ,KACF,CACA,MAAMgsE,EAAmBC,GACvBJ,EAAYC,YACZb,GAEEe,GACFA,EAAiB91D,SAASg2D,IACxB,MAAMlsE,EAA0B,CAC9BsjC,QAAU,IAAG2nC,EAAeE,mDAAmDe,+BAEjF/oE,EAA+BihE,SAASyH,EAAYhlE,IAAK7G,GACzDqkE,EAAOzyD,KAAK5R,EAAM,GAGxB,CAEJ,CAEA,SAASkrE,EAAqCrC,GAC5C,MAAMsD,EAAwBtD,EAAYxhD,MAC1C,GAA6B,MAAzB8kD,EAA+B,CACjC,MAAM1pD,EAAW2pD,GAAWD,GAEtBE,EAAoB,UAE1B,MAH0B,UAINlwD,KAAKsG,IAAa4pD,EAAkBlwD,KAAKsG,EAE/D,CACA,OAAO,CACT,CAEA,SAAS6iD,IACP,MAAMyF,EAAkBC,IACxB,GAAID,GAAmBA,EAAgBj5D,OAAS,EAAG,CACjD,MAAM9R,EAA0B,CAC9BsjC,QAAU,mDAIZkoC,IAAiCt1D,SAASqzD,GACxCpmE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,KAG1DqkE,EAAOzyD,KAAK5R,EACd,CAGF,CAEA,SAASwrE,IACP,OAAOlpD,EAAmBgK,WAAW,QAAQjX,MAAMwD,cAAcsL,QAC9DolD,GAAuC,eAAxBA,EAAW5hE,WAE/B,CAEA,SAASqjE,IAOP,OANuBsB,KAAWnoD,QAAQxiB,GAEtCA,EAAE4qE,oBAAiChsE,IAAhBoB,EAAE6qE,YAA2C,IAAhB7qE,EAAE6qE,YAKxD,CAEA,SAASzF,EAA+B,GAIrC,IAJqC,cACtCR,EAAa,cACbP,EAAa,SACbjB,GACD,EACC0H,GAA4BlG,EAAeP,EAAejB,GAC1D2H,GAAwBnG,EAAeP,EAAejB,EACxD,CAEA,SAAS+F,EACPvD,EACAvB,EACAjB,EACAc,EACAC,GAEA,GAAKyB,EAAUoF,mBAMR,GACL9G,EAA8BvhD,MAC3BmZ,GAAMA,EAAEmvC,oBAAsBrF,EAAUoF,oBAE3C,CACA,MAAM3sE,EAA0B,CAC9BsjC,QAAU,8BAA6BikC,EAAU16D,uCAEnD1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,MAAO,IACJ8lE,EAA4BxhD,MAC1BmZ,GAAMA,EAAEmvC,oBAAsBrF,EAAUoF,oBAE3C,CACA,MAAM3sE,EAA0B,CAC9BsjC,QAAU,2BAA0BikC,EAAU16D,qBAEhD1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,MA1BkC,CAChC,MAAMA,EAA0B,CAC9BsjC,QAAU,yCAAwCikC,EAAU16D,UAE9D1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,CAsBA6sE,EAAuCtF,EAAWvB,EAAejB,EACnE,CAEA,SAAS8H,EACPtF,EACAvB,EACAjB,GAEA,MAAM+H,EACJ58B,EAA6By7B,qCAC3BpE,EAAU1gE,IACVm/D,EACAjB,EACA,MACA,GAEJ,IAAK+H,GAAkC,IAArBA,EAAUh7D,OAAc,OAE1C,MAAMrM,EAAOqnE,EAAUxoD,MACpB3iB,GACCA,EAAEorE,YAAcC,EAAAA,WAAWC,SAC3BtrE,EAAE+jC,QAAUwnC,EAAAA,sBAAsBC,wBAEtC,GAAI1nE,EAAM,CACR,MAAMzF,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,6EAEpB1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAASmqE,EAA4ClgC,GAGnDmjC,EADsBnH,GADRtoC,KAAK9zB,MAAMogC,EAAK87B,cAG9BsH,GACF,CAEA,SAASD,EAAuCp6D,GAC9CuP,EAAOrM,QAAQlD,GAAO,SAAUvN,GAC9B,GAAIA,EAAKyP,WAAahS,EAAmBsT,aAAa82D,UAAW,CAC/D,MAAMttE,EAA0B,CAC9BsjC,QAAU,cAAa79B,EAAKoH,4CAE9B1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,GACF,CAEA,SAASqtE,IACP,MAAMtC,EAAkBC,IACxB,GAAID,GAAmBA,EAAgBj5D,OAAS,EAAG,CACjD,MAAM9R,EAA0B,CAC9BsjC,QAAS,kDAIXynC,EAAgB70D,SAASzQ,IACvB,MAAM8jE,EAAajnD,EAAmBgK,WACpC,QACAjX,MAAMwD,cAAcyL,MAAM3iB,GAAMA,EAAE6T,IAAM/P,EAAK4lE,gBAC/CloE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,EAAM,IAGhEqkE,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAAS2qE,EAAkB33D,GACzBuP,EAAOrM,QAAQlD,GAAO,SAAUvN,GAC9B,GACEA,EAAKyP,WAAahS,EAAmBsT,aAAaE,OAClDjR,EAAKyP,WAAahS,EAAmBsT,aAAa+2D,MAClD9nE,EAAKyP,WAAahS,EAAmBsT,aAAag3D,OACrB,UAA5B/nE,EAAKoH,KAAK1G,eACmB,QAA5BV,EAAKoH,KAAK1G,eACZ,CACA,MAAMnG,EAA0B,CAC9BsjC,QAAS,2CAEXngC,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,IACA,MAAMytE,EAAQ,GACdlrD,EAAOrM,QAAQlD,GAAO,SAAUvN,GAC9B,GACEA,EAAKyP,WAAahS,EAAmBsT,aAAaE,OAClDjR,EAAKyP,WAAahS,EAAmBsT,aAAaC,kBAClDhR,EAAKyP,WAAahS,EAAmBsT,aAAa+2D,MAClD9nE,EAAKyP,WAAahS,EAAmBsT,aAAag3D,KAIpD,QAAkBjtE,IAAdkF,EAAKoH,MAA2C,KAArBpH,EAAKoH,KAAKkqC,OACvC,GAAItxC,EAAKsH,YAAa,CACpB,MAAM/M,EAA0B,CAC9BsjC,QAAS,QAAU79B,EAAKsH,YAAc,qBAExC5J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,KAAO,CACL,MAAMA,EAA0B,CAC9BsjC,QAAS,2BAEXngC,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,MACK,IAAwD,IAApDuiB,EAAOjW,QAAQmhE,EAAOhoE,EAAKoH,KAAK1G,eACzCsnE,EAAM77D,KAAKnM,EAAKoH,KAAK1G,mBAChB,CACL,MAAMnG,EAA0B,CAC9BsjC,QAAU,qCAAoC79B,EAAKoH,KAAK1G,mBAE1DhD,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,GACF,CAEA,SAAS0oE,EAAsBjjE,GAC7B,GACEA,EAAKL,WAAa+iE,EAAAA,SAASvmB,cAC3Bn8C,EAAKL,WAAa+iE,EAAAA,SAASmF,aAIxB7nE,EAAKigC,OAAwB,KAAfjgC,EAAKigC,OAAc,CACpC,MAAM1lC,EAA0B,CAC9BsjC,QAAU,+BAA8B79B,EAAKoH,UAE/Cw3D,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAAS8nE,EAAkC5jD,GACzC,GAAIA,EAAMwpD,cAAc57D,OAAS,EAAG,CAClC,MAAM9R,EAA0B,CAC9BsjC,QAAS,4CAEX+gC,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAASsoE,GACPt1D,EACAkR,EACAypD,GACA,YACA,IAAIC,EAAoB56D,EAAMsR,MAC3B3iB,GAAMA,EAAEkF,MAAQ8mE,EAAYE,kBAE/B,QAA0BttE,IAAtBqtE,EAAiC,CACnC,IAAIE,EAAgB59B,EAA6B69B,eAC/CJ,EAAY9mE,IACZqd,GAEE8pD,EAAgB99B,EAA6B+9B,wBAC/CH,EACA96D,GAEF,KACEg7D,GACAA,EAAcl8D,OAAS,GACO,aAA9Bk8D,EAAc,GAAG94D,UAEjB44D,EAAgB59B,EAA6B69B,eAC3CC,EAAc,GAAGnnE,IACjBqd,GAEF8pD,EAAgB99B,EAA6B+9B,wBAC3CH,EACA96D,GAGAg7D,GAAiBA,EAAcl8D,OAAS,IAC1C87D,EAAoB56D,EAAMsR,MAAM3iB,GAAMA,EAAEkF,MAAQmnE,EAAc,GAAGnnE,MAErE,CAEA,QAA0BtG,IAAtBqtE,EAAiC,CACnC,MAAM5tE,EAA0B,CAC9BsjC,QAAU,IAAGqqC,EAAY9gE,uCAI3B,OAFA1J,EAA+BihE,SAASuJ,EAAY9mE,IAAK7G,QACzDqkE,EAAOzyD,KAAK5R,EAEd,CAEA,MAGMkuE,EAHyBC,GAAyB,CACtDP,IAE2CtpD,MAAMiW,IACjD,IAAKozC,EAAY7rD,QAAQssD,QACvB,OAEF,MACMC,EADkBV,EAAY7rD,QAAQssD,QAAQnnC,MAAM,MACnB,GACvC,OAAO1M,EAAEzvB,OAASujE,CAAc,IAGlC,IAAKH,EAAe,CAClB,MAAMluE,EAA0B,CAC9BsjC,QAAU,IAAGqqC,EAAY9gE,yCAI3B,OAFA1J,EAA+BihE,SAASuJ,EAAY9mE,IAAK7G,QACzDqkE,EAAOzyD,KAAK5R,EAEd,CAEA,MAAMsuE,GACsB,QAA1B,EAAAJ,EAAchuC,oBAAY,aAA1B,EAA4BqB,UACF,QADQ,EAClC2sC,EAAcx6B,oBAAY,aAA1B,EAA4BnS,SAC5B,GACIgtC,GACsB,QAA1B,EAAAL,EAAchuC,oBAAY,aAA1B,EAA4Bc,gBACF,QADc,EACxCktC,EAAcx6B,oBAAY,aAA1B,EAA4B1S,eAC5B,GACF,GACEstC,IAAgBX,EAAY7rD,QAAQyf,QACnB,KAAhB+sC,GACCC,IAAwBZ,EAAY7rD,QAAQ0sD,YAC9C,CACA,MAAMxuE,EAA0B,CAC9BsjC,QACG,mCAAkCqqC,EAAY9gE,2BACvC8gE,EAAY9gE,mCAIxB,OAFA1J,EAA+BihE,SAASuJ,EAAY9mE,IAAK7G,QACzDqkE,EAAOzyD,KAAK5R,EAEd,CAQA,IALEkuE,EAAcxiD,OAASxoB,EAAmBqwC,cAAck7B,aACxDP,EAAcxiD,OACZxoB,EAAmBqwC,cAAcm7B,mBACnCR,EAAcxiD,OAASxoB,EAAmBqwC,cAAco7B,WAEN,KAA/BhB,EAAY7rD,QAAQyf,OAAe,CACtD,GAAI2sC,EAAcppE,QAAQgN,OAAS67D,EAAY7rD,QAAQqE,MAAMrU,OAAQ,CAEnE,MAAM9R,EAA0B,CAC9BsjC,QAAU,IAAGqqC,EAAY9gE,+EAE3B1J,EAA+BihE,SAASuJ,EAAY9mE,IAAK7G,GACzDqkE,EAAOzyD,KAAK5R,EACd,CAEA2tE,EAAY7rD,QAAQqE,MAAMjQ,SAAS04D,IACjC,IAAIA,EAAKC,UAGT,IACGD,EAAKE,WACmB,KAAxBF,EAAKE,UAAU/jB,MACd6jB,EAAKE,UAAUljB,QAAU58C,EAAYlP,SACf,aAAvBouE,EAAcxiD,QACXkjD,EAAKG,gBAAiD,IAA/BH,EAAKG,eAAej9D,QAC/C,CACA,MAAM9R,EAA0B,CAC9BsjC,QAAU,IAAGqqC,EAAY9gE,uCAE3B1J,EAA+BihE,SAASuJ,EAAY9mE,IAAK7G,GACzDqkE,EAAOzyD,KAAK5R,EACd,MAAO,KAAK4uE,EAAKG,gBAAkBH,EAAKG,eAAej9D,QAAU,KAChDo8D,EAAcppE,QAAQwf,MAClCyvB,GACC66B,EAAKE,UAAUljB,QAAU7X,EAAO1sB,OAChCunD,EAAKE,UAAU/jB,OAAShX,EAAOlnC,OAIjC,GAA2B,MAAvB+hE,EAAKE,UAAU/jB,MAAwC,KAAxB6jB,EAAKE,UAAU/jB,KAAa,CAC7D,MAAM/qD,EAA0B,CAC9BsjC,QAAU,IAAGqqC,EAAY9gE,qDAE3B1J,EAA+BihE,SAASuJ,EAAY9mE,IAAK7G,GACzDqkE,EAAOzyD,KAAK5R,EACd,MAEE,GAAI4uE,EAAKE,UAAU/jB,OAAS6jB,EAAKE,UAAUljB,MAAO,CAChD,MAAM5rD,EAA0B,CAC9BsjC,QAAU,IAAGqqC,EAAY9gE,+CAA+C+hE,EAAKE,UAAU/jB,UAEzF5nD,EAA+BihE,SAASuJ,EAAY9mE,IAAK7G,GACzDqkE,EAAOzyD,KAAK5R,EACd,CAGN,GAEJ,CACF,CA4BA,SAASooE,GACPb,EACAv0D,EACAkR,GAEA,MAAM8qD,EAAe,CAACzH,GACtB,KAAOyH,EAAal9D,OAAS,GAAG,CAC9B,MAAM7B,EAAU++D,EAAa3yC,OAAO,EAAG,GAAG,GACpCywC,EAAY58B,EAA6B++B,oBAC7Ch/D,EAAQpJ,IACRmM,EACAkR,GAEF,IAAK,MAAMviB,KAAKmrE,EAAW,CACzB,GACEnrE,EAAEuT,WAAamE,EAAAA,aAAagH,UAC5B1e,EAAEorE,YAAcC,EAAAA,WAAWC,SAC3BtrE,EAAE+jC,QAAUwnC,EAAAA,sBAAsBgC,eAClC,CACA,MAAMlvE,EAA0B,CAC9BsjC,QAAU,IAAG3hC,EAAEkL,sEAEjB1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,GACZgvE,EAAal9D,OAAS,EACtB,KACF,CAGGnQ,EAAEuT,WAAamE,EAAAA,aAAagH,UAC3B1e,EAAEyD,WAAa+iE,EAAAA,SAASvmB,cAC1BjgD,EAAEuT,WAAamE,EAAAA,aAAai0D,WAE5B0B,EAAap9D,KAAKjQ,EAEtB,CACF,CACF,CAEA,SAAS8mE,GACPlB,EACAv0D,EACAkR,GAEA,MAAMze,EAAO0pE,GAAY5H,EAAU/xD,IACnC,GACE/P,IACCw/D,GACDx/D,EAAKyiE,aACLX,EAAUwF,YAAcC,EAAAA,WAAWC,SACnC1F,EAAU7hC,QAAUwnC,EAAAA,sBAAsBgC,eAC1C,CACA,MAAMlvE,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,oEAEzB1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,CAEA,GACEyF,GACA8hE,EAAUwF,YAAcC,EAAAA,WAAWC,SACnC1F,EAAU7hC,QAAUwnC,EAAAA,sBAAsBC,sBAC1C,CACA,MAAMiC,EACJl/B,EAA6Bm/B,0CAC3B9H,EAAU1gE,IACVmM,EACAkR,EACA,MACA,GAEJ,GACEkrD,EAAct9D,OAAS,GACvBs9D,EAAc5/B,MACX7tC,GAAMA,EAAEyD,WAAalC,EAAmBkC,SAASw8C,eAEpD,CACA,MAAM5hD,EAA0B,CAC9BsjC,QAAU,uBAAsBikC,EAAU16D,uCAE5C1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,MAAO,IACJyF,EAAK6pE,uBACgC,IAAtC7pE,EAAK6pE,sBAAsBx9D,OAC3B,CACA,MAAM9R,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,8CAEzB1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,CACF,CAEA,GACEuvE,OACChI,EAAU7hC,QAAUwnC,EAAAA,sBAAsBsC,WACzCjI,EAAU7hC,QAAUwnC,EAAAA,sBAAsBuC,mBAC5C,CACA,MAAMzvE,EAA0B,CAC9BsjC,QACG,IAAGikC,EAAU16D,0IAGlBw3D,EAAOzyD,KAAK5R,GACZmD,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,EACzD,CAEA,GACEyF,GACA8hE,EAAUwF,YAAcC,EAAAA,WAAWC,SACnC1F,EAAU7hC,QAAUwnC,EAAAA,sBAAsBgC,eAC1C,CACA,MAAME,EACJl/B,EAA6Bm/B,0CAC3B9H,EAAU1gE,IACVmM,EACAkR,EACA,MACA,GAGJ,GACEkrD,EAAct9D,OAAS,GACvBs9D,EAAc5/B,MACX7tC,GAAMA,EAAEyD,WAAalC,EAAmBkC,SAASsqE,qBAEpD,CACA,MAAM1vE,EAA0B,CAC9BsjC,QAAU,SAAQikC,EAAU16D,oGAE9B1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,CACF,CACF,CAEA,SAAS0qE,GAAqBiF,GAC5BptD,EAAOrM,QAAQy5D,GAAY,SAAUpI,GACnC,MAAMqI,EAAQrtD,EAAO4B,OAAOwrD,GAAY,SAAUhuE,GAChD,OAAOA,EAAE6T,KAAO+xD,EAAU/xD,EAC5B,IAEIo6D,EAAM99D,OAAS,GACjByQ,EAAOrM,QAAQ05D,GAAO,SAAUjuE,GAC9B,MAAM3B,EAA0B,CAC9BsjC,QAAU,IAAG3hC,EAAEkL,2BAEjB1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,GAEJ,GACF,CAEA,SAAS6vE,GACP7K,GACS,QACT,OACEA,IACkD,QAAlD,EAAAA,EAAmB8K,uCAA+B,aAAlD,EAAoDh+D,QAAS,IACT,QAApD,EAAAkzD,EAAmB+K,yCAAiC,aAApD,EAAsDj+D,QAAS,CAEnE,CAEA,SAAS84D,GACP+E,EACA3K,GAGKxQ,EAAUwb,wBAIVH,GAA8C7K,IAInDziD,EAAOrM,QAAQy5D,GAAY,SAAUpI,GACnC,GACEA,EAAU0I,yBACY,MAAtB1I,EAAUniE,UACV4/D,EAAmB+K,kCAAkC3kD,SACnDm8C,EAAUniE,YAIT4/D,EAAmB8K,gCAAgC1kD,SAClDm8C,EAAUniE,UAEZ,CACA,MAAMpF,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,2GAGzB1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,CAEJ,GACF,CAEA,SAASqpE,GAAyB9B,GAChC,MAAM9hE,EAAO0pE,GAAY5H,EAAU/xD,IAEnC,GAAI/P,GAAQA,EAAKyiE,YAAa,CAC5B,MAAMloE,EAA0B,CAC9BsjC,QAAU,+BAA8B79B,EAAK0lE,+DAI/C,OAFAhoE,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,QACvDqkE,EAAOzyD,KAAK5R,EAEd,CAEA,IAAKyF,EAAKyqE,mBAAuD,IAAlCzqE,EAAKyqE,kBAAkBp+D,OAAc,CAClE,MAAM9R,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,yCAEzB1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAAS0rE,GACPD,EACAkE,GAEA,MAAM38D,EAAQs5D,KACd,IAAK,MAAM/E,KAAaoI,EAAY,CAClC,MAAMQ,EAAYn9D,EAAMsR,MAAM3iB,GACrBA,EAAE0pE,gBAAkB9D,EAAU/xD,KAGvC,GAAiB,MAAb26D,GAAqBA,EAAU3D,UACjC,OAIF,GAAIjF,EAAU7hC,QAAUwnC,EAAAA,sBAAsBC,sBAAuB,CACnE,MAAMntE,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,2FAEzB1J,EAA+BihE,SAASmD,EAAWvnE,GACnDqkE,EAAOzyD,KAAK5R,EACd,MAAO,GACLkwC,EAA6Bk5B,uBAAuB7B,GACpD,CACA,MAAMvnE,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,sFAEzB1J,EAA+BihE,SAASmD,EAAWvnE,GACnDqkE,EAAOzyD,KAAK5R,EACd,CACF,CACF,CAEA,SAASgnE,GAAkBh0D,EAAqBkR,GAC5BA,EAAMC,QAAQC,GAAMA,EAAErL,aAC9B7C,SAASmO,IACjB,MAAMlP,EAAWnC,EAAMsR,MAAM3iB,GAAMA,EAAEkF,MAAQwd,EAASE,OAChDnP,EAASpC,EAAMsR,MAAM3iB,GAAMA,EAAEkF,MAAQwd,EAASG,KAEpD,GAAIjN,EAAkBqB,gBAAgBzD,EAAUC,EAAQpC,EAAOkR,GAC7D,OAEF,MAAMlkB,EAAQ,CACZsjC,QAAU,kBAAiBnuB,EAAStI,aAAauI,EAAOvI,qBAE1D1J,EAA+BihE,SAASjvD,EAAStO,IAAK7G,GACtDqkE,EAAOzyD,KAAK5R,EAAM,GAEtB,CAEA,SAASysE,GAA4BlG,EAAevzD,EAAOkR,GACzDqiD,EAAcrwD,SAASsxD,IACrB,MAAM+B,EAAav2D,EAAMsR,MAAM3iB,GAAMA,EAAE6T,IAAMgyD,EAAa6D,gBAE1D,GACI7D,EAAagF,WACfhF,EAAa4I,wBACXltE,EAAmBmtE,sBAAsBC,YAC1C9I,EAAa+I,WACZrtE,EAAmBkC,SAASE,mBAC5BkiE,EAAa+I,WACXrtE,EAAmBkC,SAASG,oBAEhC,OAEF,MAAMgiE,EAAYr3B,EAA6Bi/B,YAC7Cn8D,EACAw0D,EAAa6D,eAEf,IAAK7D,EAAagJ,4BAA6B,CAC7C,MAAMpB,EACJl/B,EAA6BugC,wBAC3BlJ,EAAU1gE,IACVmM,EACAkR,GAEJ,GAA6B,IAAzBkrD,EAAct9D,OAChB,GACEs9D,EAAc,GAAGl6D,WACjBhS,EAAmBsT,aAAaC,iBAChC,CACA,MAAMzW,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,iGAEzB1J,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,MAAO,GACLovE,EAAc,GAAGhqE,WACjBlC,EAAmBkC,SAASw8C,aAC5B,CACA,MAAM5hD,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,gGAEzB1J,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,MAAO,GACLovE,EAAc,GAAGhqE,WAAalC,EAAmBkC,SAASkoE,UAC1D,CACA,MAAMttE,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,6FAEzB1J,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,MAAO,GACLovE,EAAc,GAAGhqE,WACflC,EAAmBkC,SAASE,mBAC9B8pE,EAAc,GAAGhqE,WACflC,EAAmBkC,SAASG,oBAC9B,CACA,MAAMvF,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,0GAEzB1J,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,MAAO,GACLovE,EAAc,GAAGhqE,WACjBlC,EAAmBkC,SAASsqE,mBAC5B,CACA,MAAM1vE,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,sGAEzB1J,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CAEF,MACF,CAEA,MAQM0wE,EAPJxgC,EAA6Bm/B,0CAC3B9H,EAAU1gE,IACVmM,EACAkR,EACA,MACA,GAEwCI,MACzCqsD,GAAOA,EAAGn7D,KAAOgyD,EAAagJ,8BAEjC,IACGE,IACAlM,EAAyBoM,+BACxBF,GAEF,CACA,MAAM1wE,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,2EAEzB1J,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,IAEJ,CAEA,SAAS0sE,GAAwBnG,EAAevzD,EAAqBkR,GACnEqiD,EAAcrwD,SAASsxD,IACrB,MAAM+B,EAAav2D,EAAMsR,MAAM3iB,GAAMA,EAAE6T,IAAMgyD,EAAa6D,gBACpDwF,EAAgBrJ,EAAa+I,WAAapI,EAAAA,SAASvmB,aACnDkvB,EACJtJ,EAAa+I,WAAapI,EAAAA,SAASuH,mBACrC,GAAMlI,EAAagF,YAAeqE,IAAkBC,EAClD,OAEF,GACED,GACArJ,EAAaU,aACuB,IAApC1T,EAAUuc,sBACV,CACA,MAAM/wE,EAA0B,CAC9BsjC,QAAU,qBAAoBkkC,EAAa2D,+DAI7C,OAFAhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,QACxDqkE,EAAOzyD,KAAK5R,EAEd,CAEA,IAAKwnE,EAAawJ,gBAAiB,CACjC,MAAMhxE,EAA0B,CAC9BsjC,QAAU,IAAGkkC,EAAa2D,mDAI5B,OAFAhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,QACxDqkE,EAAOzyD,KAAK5R,EAEd,CAEA,IAAKwnE,EAAawJ,gBAAgBC,SAAU,CAC1C,MAAMjxE,EAA0B,CAC9BsjC,QAAU,IAAGkkC,EAAa2D,0DAE5BhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CACA,IAAKwnE,EAAawJ,gBAAgBE,QAAS,CACzC,MAAMlxE,EAA0B,CAC9BsjC,QAAU,IAAGkkC,EAAa2D,yDAE5BhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CAEA,MAAMyiB,EAAW+kD,EAAawJ,gBAAgBG,aAC9C,GAAK1uD,EAME,CACL,MAAMupD,EAAmBoF,GACvB3uD,EACA+kD,EACAjB,EACAvzD,EACAkR,GAEE8nD,GACFA,EAAiB91D,SAASg2D,IACxB,MAAMlsE,EAA0B,CAC9BsjC,QAAU,IAAGkkC,EAAa2D,mDAAmDe,4BAE/E/oE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EAAM,GAGxB,KAvBe,CACb,MAAMA,EAA0B,CAC9BsjC,QAAU,IAAGkkC,EAAa2D,wDAE5BhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CAmBA,MAAMqxE,EAAa7J,EAAawJ,gBAAgBM,wBAChD,IACGT,GAAiBC,KACjBtJ,EAAawJ,gBAAgBO,wBAC5BF,GACsB,IAAtBA,EAAWv/D,QACX0/D,GACEH,EACA7J,EACAjB,EACAvzD,EACAkR,IAEJ,CACA,MAAMlkB,EAA0B,CAC9BsjC,QAAU,IAAGkkC,EAAa2D,uCACxB2F,EAAqB,wBAA0B,uBAGnD3tE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CAEA,GACE8wE,GACAtJ,EAAawJ,gBAAgBO,qBAC7B,CACA,MAAMF,EAAa7J,EAAawJ,gBAAgBO,qBAEhD5tC,EACGge,oBAAoB0vB,GACpBn2C,MAAMwG,IAA2C,MAChD,IAAKA,EAAS6V,SAAiC,QAA1B,EAAI7V,EAAS+vC,qBAAa,OAAtB,EAAwB3/D,OAAQ,CACvD,MAAM4/D,EAAoBhwC,EAAS+vC,cAAczjC,KAAK,MAGhDhuC,EAA0B,CAAEsjC,QAFZ,IAAGkkC,EAAa2D,2CAA2CuG,mEAGjFvuE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,IAEN,CAEA,GAAKwnE,EAAawJ,gBAAgBW,QAM3B,CACL,MAAM3F,EAAmBoF,GACvB5J,EAAawJ,gBAAgBW,QAC7BnK,EACAjB,EACAvzD,EACAkR,GAEE8nD,GACFA,EAAiB91D,SAASg2D,IACxB,MAAMlsE,EAA0B,CAC9BsjC,QAAU,IAAGkkC,EAAa2D,mDAAmDe,4BAE/E/oE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EAAM,GAGxB,KAvB2C,CACzC,MAAMA,EAA0B,CAC9BsjC,QAAU,IAAGkkC,EAAa2D,kDAE5BhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CAmBA,GAAI8wE,IAAuBtJ,EAAawJ,gBAAgBY,YAAa,CACnE,MAAM5xE,EAA0B,CAC9BsjC,QAAU,IAAGkkC,EAAa2D,8DAE5BhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,IAEJ,CAEA,SAASoxE,GACP3uD,EACA+kD,EACAjB,EACAvzD,EACAkR,GAEAzB,EAAW2pD,GAAW3pD,GACtB,MAAMovD,EAAmB3rE,OAAO4rE,aAAa,KAC7CrvD,EAAWA,EAASspD,WAAW8F,EAAkB,KACjD,MAAMtK,EAAYr3B,EAA6Bi/B,YAC7Cn8D,EACAw0D,EAAa6D,eAEf,IAAI0G,EAAa,GAiBjB,OAfE7hC,EAA6Bm/B,0CAC3B9H,EAAU1gE,IACVmM,EACAkR,EACA,MACA,GAEahO,SAAS21D,IACxB,MAGMmG,EAAYC,GAHL1L,EAAcjiD,MACxB4tD,GAAQA,EAAI7G,gBAAkBQ,EAAYr2D,MAG7Cu8D,EAAaA,EAAWltC,OAAOmtC,EAAU,IAGpCG,GAAkC1vD,EAAUsvD,EACrD,CAEA,SAAS9F,GAAmCxpD,EAAUhd,GAGpD,OAAO0sE,GAFP1vD,EAAW2pD,GAAW3pD,GACHwvD,GAAsBxsE,GAE3C,CAEA,SAAS0sE,GAAkC1vD,EAAUsvD,GACnDA,EAAW77D,SAASk8D,IAClB,MAAMC,EAAK,IAAIxrB,OAAOyrB,GAAaF,GAAK,KACxC3vD,EAAWA,EAASC,QAAQ2vD,EAAI,GAAG,IAErC,MAAME,EAA2B,oBACjC,OAAO9vD,EAASukB,MAAMurC,EACxB,CAEA,SAASN,GAAsBxsE,GAC7B,IAAKA,IAASA,EAAKygB,OAASzgB,EAAKygB,KAAKthB,aACpC,OAEF,MAAMmtE,EAAa,GACbntE,EAAea,EAAKygB,KAAKthB,aAC/BA,EAAasR,SAAS+pB,IACpB8xC,EAAWngE,KAAM,SAAQnM,EAAK0lE,YAAYlrC,EAAMwU,eAAe,IAGjE,MAAM+9B,EAAc5tE,EAAauf,QAC9B8b,GAA4B,SAAlBA,EAAMwyC,WAEnB,GAAID,GAAeA,EAAY1gE,OAAS,EAAG,CACzC,MAAM4gE,EAAaxiC,EAA6B6E,0BAC9C7E,EAA6B8E,yBAAyBw9B,IAGpDE,GAAcA,EAAW5gE,OAAS,GACpC4gE,EAAWx8D,SAASyhB,IAClBo6C,EAAWngE,KAAM,SAAQnM,EAAK0lE,YAAYxzC,EAAK8c,eAAe,GAGpE,CAOA,OAJAs9B,EAAWngE,KAAM,SAAQnM,EAAK0lE,uBAC9B4G,EAAWngE,KAAM,SAAQnM,EAAK0lE,+BAC9B4G,EAAWngE,KAAM,SAAQnM,EAAK0lE,2BAC9B4G,EAAWngE,KAAM,SAAQnM,EAAK0lE,kCACvB4G,CACT,CAEA,SAAS3F,GAAW/kD,GAClB,OAAOxnB,EAAE,UAAUwB,KAAKgmB,GAAOxa,MACjC,CAEA,SAASylE,GAAaK,GACpB,OAAOA,EAAOjwD,QAAQ,sBAAuB,OAC/C,CAEA,SAAS8uD,GACPH,EACA7J,EACAjB,EACAvzD,EACAkR,GAEA,OAAOmtD,EAAWzS,OAAOjf,IACvB,GAA2B,kBAAvBA,EAAEizB,iBAAsC,OAAO,EAEnD,MAAMrL,EAAYr3B,EAA6Bi/B,YAC7Cn8D,EACAw0D,EAAa6D,eAUTwH,EAPJ3iC,EAA6Bm/B,0CAC3B9H,EAAU1gE,IACVmM,EACAkR,EACA,MACA,GAEiDI,MAClD3iB,GAAMA,EAAE6T,KAAOmqC,EAAEmzB,qBAEpB,IAAKD,EAAsB,OAAO,EAElC,MAGME,EAHexM,EAAcjiD,MAChC4tD,GAAQA,EAAI7G,gBAAkBwH,EAAqBr9D,KACpD0Q,KAAKthB,aACwB0f,MAAMukD,GAC5BA,EAAY/9D,OAAS60C,EAAEqzB,YAEhC,OACGD,GACAA,EAAUrnD,OAASxoB,EAAmBqwC,cAAc0/B,OACnDF,EAAUrnD,OAASxoB,EAAmBqwC,cAAcC,QACpDu/B,EAAUrnD,OAASxoB,EAAmBqwC,cAAcK,aAI5C,GAEhB,CAoBA,SAASu6B,GAAyBn7D,GAChC,MAAM6hC,EAAuB,GAC7B,IAAK,MAAM0yB,KAAav0D,GAAS,GAAI,CACnC,MAAM64D,EAAcsD,GAAY5H,EAAU/xD,IAC1C,GAC8B,iBAArBq2D,EAAY3lD,MAClB6f,MAAMtB,QAAQonC,EAAY3lD,KAAKthB,cAIlC,IAAK,MAAMmuE,KAAalH,EAAY3lD,KAAKthB,aACnCsuE,GAAyBH,EAAUrnD,OACrCmpB,EAAOjjC,KAAKmhE,EAGlB,CACA,OAAOl+B,CACT,CASA,SAASq+B,GAAyBxnD,GAChC,OAAQA,GACN,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,eACL,IAAK,WACL,IAAK,kBACL,IAAK,OACL,IAAK,IACL,IAAK,iBACH,OAAO,EAET,QAME,OAAO,EAEb,CAEA,SAAS68C,GAAuBvC,EAAejB,EAAUt/D,EAAMiiE,GAC7D,GACsC,IAApClT,EAAUuc,uBACVrJ,EAAUyL,qBAAuB,EACjC,CACA,MAAMnzE,EAA0B,CAC9BsjC,QAAU,4FAEZngC,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACA,GAAI0nE,EAAU0L,uBAAyB,EAAG,CACxC,MAAMpzE,EAA0B,CAC9BsjC,QAAU,yGAIZ,OAFAngC,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,QAClDqkE,EAAOzyD,KAAK5R,EAEd,CAEA,MAAM8sE,EAAY58B,EAA6B++B,oBAC7CxpE,EAAKoB,IACLm/D,EACAjB,GAEIsO,EAAYvG,EAAUxoD,MAAM3iB,GAAMA,EAAEuT,WAAamE,EAAAA,aAAa3C,QACpE,GAAI28D,EAAW,CACb,MAAMrzE,EAA0B,CAC9BsjC,QAAU,sCAAqC+vC,EAAUxmE,SAE3D1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CAEA,MAAMszE,EAAkB7O,EAAqB8O,cAAczG,GAC3D,GAAIwG,GAAmBA,EAAgBxhE,OAAS,EAAG,CACjD,MAAM0hE,EAAmB9O,EAAyB+O,iBAChD9O,EAAe+O,gBACfJ,GAGF,IAAKE,EAAiBj8B,QAAS,CAC7B,MAAMv3C,EAA0B,CAC9BsjC,QAAU,GAAEkwC,EAAiB/gC,4CAE/BtvC,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,CACF,CA2CA,SAASwoE,GACPxC,EACAjB,EACAt/D,EACAiiE,GAUA,GARAiM,GAAwB3N,EAAejB,EAAUt/D,EAAKoB,KACtD+sE,GACE5N,EACAjB,EACAt/D,EAAKoB,IACLpB,EAAKoB,KAIgC,IAApC2tD,EAAUuc,uBACTrJ,EAAUyL,qBAAuB,GACnCzL,EAAUyL,qBAAuB,EACjC,CACA,MAAMnzE,EAA0B,CAC9BsjC,QAAU,mHAIZ,OAFAngC,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,QAClDqkE,EAAOzyD,KAAK5R,EAEd,CAEA,GAAwC,IAApCw0D,EAAUuc,sBAA6B,CACzC,MAAM/9D,EAAQk9B,EAA6BugC,wBACzChrE,EAAKoB,IACLm/D,EACAjB,GAGI8O,EAAmBpP,EAAqBqP,eAAe9gE,GAC7D,GAAI6gE,GAAoBA,EAAiB/hE,OAAS,EAAG,CACnD,MAAM0hE,EAAmB9O,EAAyB+O,iBAChD9O,EAAeoP,iBACfF,GAGF,IAAKL,EAAiBj8B,QAAS,CAC7B,MAAMv3C,EAA0B,CAC9BsjC,QAAU,GAAEkwC,EAAiB/gC,gCAE/BtvC,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,CACF,CACF,CAEA,SAAS2zE,GACP3gE,EACAkR,EACA8vD,GAEA,MAAMC,EAAa/jC,EAA6BugC,wBAC9CuD,EACAhhE,EACAkR,GAEIgwD,EAAe,GACrB,KAAOD,EAAWniE,OAAS,GAAG,CAC5B,MAAMqiE,EAAcF,EAAWG,MAC/B,GACED,EAAYj/D,WAAahS,EAAmBsT,aAAasa,gBAEzD,OAEFojD,EAAatiE,KAAKuiE,GAClB,MAMME,EALJnkC,EAA6BugC,wBAC3B0D,EAAYttE,IACZmM,EACAkR,GAEqCC,QACtCmwD,IAAWJ,EAAa1kC,MAAM+kC,GAAYA,EAAQ1tE,MAAQytE,EAAMztE,QAEnEotE,EAAWriE,QACNyiE,EAAelwD,QAAQ1e,GAASA,EAAKoB,MAAQmtE,IAEpD,CAEA,MAAMh0E,EAA0B,CAC9BsjC,QACE,iHAEJngC,EAA+BihE,SAAS4P,EAAiBh0E,GACzDqkE,EAAOzyD,KAAK5R,EACd,CAEA,SAAS4zE,GACP5gE,EACAkR,EACAswD,EACAR,GAEA,IADAS,EAAsC,UAAH,6CAAG,GAEtC,MAAMR,EAAa/jC,EAA6BugC,wBAC9C+D,EACAxhE,EACAkR,GAEF,GAA0B,IAAtB+vD,EAAWniE,OACb,OAEF,GAAImiE,EAAWzkC,MAAM/pC,GAASA,EAAKoB,MAAQmtE,IAAkB,CAC3D,MAAMh0E,EAA0B,CAC9BsjC,QACE,2HAKJ,OAFAngC,EAA+BihE,SAAS4P,EAAiBh0E,QACzDqkE,EAAOzyD,KAAK5R,EAEd,CACA,MAAM00E,EAAiBT,EAAW9vD,QAAQmwD,GACxCG,EAAsBjlC,MACnBmlC,GAAoBA,EAAgB9tE,MAAQytE,EAAMztE,QAGvD,IAAK,MAAM+tE,KAAgBF,EAAgB,CACzC,MAAMP,EAAcnhE,EAAMsR,MAAM7e,GAASA,EAAKoB,MAAQ2tE,IAChDx0E,EAA0B,CAC9BsjC,QACG,kCAAiCsxC,EAAa/nE,cAAcsnE,EAAYtnE,qGAG7E1J,EAA+BihE,SAAS+P,EAAYttE,IAAK7G,GACzDqkE,EAAOzyD,KAAK5R,EACd,CACA,IAAK,MAAM60E,KAAaZ,EAEnBS,EAAellC,MACbslC,GAAkBA,EAAcjuE,MAAQguE,EAAUhuE,OAGrD+sE,GACE5gE,EACAkR,EACA2wD,EAAUhuE,IACVmtE,EACA,CAACa,KAAcJ,GAIvB,CAEA,SAASpM,GAAyBsH,EAAYlqE,EAAMye,GAClD,MAAM6wD,EAAqB,SAAU5uD,GACnC,IAAK,IAAI6uD,EAAa,EAAGA,EAAa7uD,EAAMrU,OAAQkjE,IAAc,CAChE,MAAMpG,EAAOzoD,EAAM6uD,GACbC,EAAkB1yD,EAAO4B,OAAOwrD,GAAY,SAAUpI,GAC1D,OAAOA,EAAU1gE,MAAQ+nE,EAAKsG,UAChC,IACA,GACED,SAEAA,EAAgBnjE,OAAS,EACzB,CACA,MAAM9R,EAA0B,CAC9BsjC,QAAU,YAAW79B,EAAKoH,iCAAiC+hE,EAAK9jE,UAElE3H,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CAEI4uE,EAAKC,SACX,CAKA,MAAMsG,EAAkB,GAWxB,GAVA5yD,EACG25B,MAAMz2C,EAAKqc,QAAQqE,OACnBivD,SAASxG,GAASrsD,EAAOtL,IAAI23D,EAAM,iBAAkB,IAAI3nC,MAAM,OAC/DouC,UACA/6C,KAAI,CAACg7C,EAAUzuE,KACVyuE,EAASxjE,OAAS,GAAa,KAARjL,GACzBsuE,EAAgBvjE,KAAK/K,EACvB,IAEDwgB,QACC8tD,EAAgBrjE,OAAQ,CAC1B,MAAM9R,EAA0B,CAC9BsjC,QACG,IAAG79B,EAAKoH,4CACLsoE,EAAgBnnC,KAAK,kDAG7B7qC,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,EAEA,GAAIkkB,EAAMkvD,uBAAyB,EAAG,CACpC,MAAMpzE,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,yFAEpB1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CAGA,GAAkB,KAAdyF,EAAKoH,KAAa,CACpB,MAAM7M,EAA0B,CAC9BsjC,QAAS,8BAEXngC,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CAEA,GAAIyF,EAAKqc,QAAS,CAChB,GAA6B,KAAzBrc,EAAKqc,QAAQssD,SAA0C7tE,MAAxBkF,EAAKqc,QAAQssD,QAAsB,CACpE,MAAMpuE,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,6CAA6CpH,EAAKoH,sCAEtE1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACA,IAAIu1E,GAAoB,EACxB,GAAI9vE,EAAKqc,QAAQqE,MAAO,CAWtB,GAVA5D,EAAOrM,QAAQzQ,EAAKqc,QAAQqE,OAAO,SAAUyoD,GAEtBruE,MAAlBquE,EAAKE,WACqB,KAAzBF,EAAKE,UAAUljB,OACSrrD,MAAxBquE,EAAKE,UAAUljB,OAChBgjB,EAAKC,YAEN0G,GAAoB,EAExB,IACIA,EAAmB,CACrB,MAAMv1E,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,wEAEpB1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACA,GAAIyF,EAAKqc,QAAQqE,MAAMrU,SAAWoS,EAAMkvD,uBAAwB,CAC9D,MAAMpzE,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,iHAEpB1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACA+0E,EAAmBtvE,EAAKqc,QAAQqE,MAClC,KAAO,CACL,MAAMnmB,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,wEAEpB1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,CACF,CAEA,SAASimE,GAAiB5wD,GACxB,OAAOA,EAAMwD,aACf,CAEA,SAASqtD,GAAiB7wD,GACxB,OAAOA,EAAMyD,aACf,CAWA,SAASwzD,KAEP,OADAvsE,QAAQy1E,MAAM,IAAIzuE,MAAM,yCACjB+9D,EAAS0B,OAAS,EAC3B,CAEA,SAAS2I,GAAYsG,GAOnB,OANA11E,QAAQy1E,MAAM,IAAIzuE,MAAM,4CACCulE,KACKhoD,MAAM3iB,GAC3BA,EAAE0pE,cAAcllE,gBAAkBsvE,EAActvE,eAI3D,CAEA,SAASwhE,GAAStyD,EAAO5P,GACvB,MAAMqwD,EAAM,CACV4f,gBAAiB,GACjBhI,cAAe,GACfyF,qBAAsB,EACtBC,uBAAwB,EACxBuC,qBAAsB,EACtBC,uBAAwB,EACxBC,gBAAgB,GAEZC,EAAMzgE,EAAMyD,cAkBlB,OAjBAyJ,EAAOrM,QAAQ4/D,GAAK,SAAUt7D,GACL,SAAnB/U,EAAKswE,WAAwBtwE,EAAKoB,MAAQ2T,EAAKgK,GACjDsxC,EAAI4f,gBAAgB9jE,KAAKnM,GACC,SAAjBA,EAAKuwE,SAAsBvwE,EAAKoB,MAAQ2T,EAAK+J,KACtDuxC,EAAI4X,cAAc97D,KAAKnM,GACdA,EAAKoB,MAAQ2T,EAAKgK,IAC3BsxC,EAAI+f,gBAAiB,EACrBr7D,EAAKzB,WACD+8C,EAAI6f,uBACJ7f,EAAIqd,wBACC1tE,EAAKoB,MAAQ2T,EAAK+J,OAC3BuxC,EAAImgB,kBAAmB,EACvBz7D,EAAKzB,WACD+8C,EAAI8f,yBACJ9f,EAAIsd,yBAEZ,IACOtd,CACT,CAEA,SAAS2U,GAAkBzE,GACzB,MAAMkQ,EAAW3zD,EAAO4B,OAAO6hD,GAAe,SAAU5vD,GACtD,MAAwB,SAAjBA,EAAK4/D,OACd,IACA,GAAIE,SAA+CA,EAASpkE,OAAS,EAAG,CACtE,MAAM9R,EAA0B,CAC9BsjC,QAAS,wCAEX+gC,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAASwqE,GAAoBxE,GAC3B,MAAMmQ,EAAa5zD,EAAO4B,OAAO6hD,GAAe,SAAU5vD,GACxD,MAA0B,SAAnBA,EAAK2/D,SACd,IACA,GACEI,SAEAA,EAAWrkE,OAAS,EACpB,CACA,MAAM9R,EAA0B,CAC9BsjC,QAAS,+BAEX+gC,EAAOzyD,KAAK5R,EACd,MAAO,GAAIm2E,EAAWrkE,OAAS,EAAG,CAChC,MAAM9R,EAA0B,CAC9BsjC,QAAS,mCAEX+gC,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAAS6nE,GAAsC3jD,GAC7C,GAAIA,EAAMwxD,gBAAgB5jE,OAAS,EAAG,CACpC,MAAM9R,EAA0B,CAC9BsjC,QAAS,+CAEX+gC,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAAS+nE,GAA6C7jD,EAAOze,GAC3D,GAAI++D,EAAyB4R,mBAAmB3wE,GAC9C4wE,GAAwDnyD,EAAOze,GAC/D6wE,GAAmDpyD,EAAOze,QACrD,IACH8+D,EAAwB3+C,UAAUngB,IAClCye,EAAMkvD,uBAAyB,GAChC7O,EAAwBgS,kBAAkB9wE,IACzCye,EAAMkvD,uBAAyB,EACjC,CACA,MAAMpzE,EAA0B,CAC9BsjC,QAAU,SAAQ79B,EAAKoH,+CAEzB1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAASq2E,GACPnyD,EACAze,GAEA,GAAIye,EAAMkvD,uBAAyB,EAAG,CACpC,MAAMpzE,EAA0B,CAC9BsjC,QAAU,SAAQ79B,EAAKoH,oDAEzB1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACA,GAAIkkB,EAAM0xD,uBAAyB,EAAG,CACpC,MAAM51E,EAA0B,CAC9BsjC,QAAU,SAAQ79B,EAAKoH,yDAEzB1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAASs2E,GAAmDpyD,EAAOze,GACjE,GACEye,EAAM0xD,uBAAyB,GACE,IAAjC1xD,EAAMkvD,uBACN,CACA,MAAMpzE,EAA0B,CAC9BsjC,QAAU,SAAQ79B,EAAKoH,sEAEzB1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAASioE,GAA6B/jD,EAAOze,GAC3C,IACGye,EAAM+xD,kBACU,SAAjBxwE,EAAKuwE,SACa,SAAlBvwE,EAAKyP,UACa,SAAlBzP,EAAKyP,SACL,CACA,MAAMlV,EAA0B,CAC9BsjC,QAAU,sCAAqC79B,EAAKoH,UAEtD1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAASgoE,GAA2B9jD,EAAOze,GACzC,IACGye,EAAM2xD,gBACY,SAAnBpwE,EAAKswE,WACa,SAAlBtwE,EAAKyP,UACa,SAAlBzP,EAAKyP,SACL,CACA,MAAMlV,EAA0B,CAC9BsjC,QAAU,oCAAmC79B,EAAKoH,UAEpD1J,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAASuqE,GAAuBvE,GAC9B,IACGA,EAAcx2B,MACZ/pC,IACEA,EAAKyP,WAAahS,EAAmBsT,aAAa6J,UACjD5a,EAAKyP,WAAahS,EAAmBsT,aAAa82D,YACpD7nE,EAAKL,WAAalC,EAAmBkC,SAASw8C,eAElD,CACA,MAAM5hD,EAA0B,CAC9BsjC,QAAS,yCAEX+gC,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAAS2oE,GACPjgD,EACA6+C,EACA3B,GAEA,GACyB,aAAvB2B,EAAUryD,UACVqyD,EAAUniE,WAAalC,EAAmBkC,SAASw8C,aAEnD,OAEF,MAAM40B,EAAOrH,GAAY5H,EAAU/xD,IAAI0Q,KACjCuwD,EAAoBD,EAAK5xE,aAAauf,QACzC8b,GAAUA,EAAMvU,OAASxoB,EAAmBqwC,cAAcmjC,QAC3D5kE,OAEI6kE,EAAgCH,EAAK5xE,aAAa4qC,MACrDvP,GACCA,EAAMvU,OAASxoB,EAAmBqwC,cAAcqjC,aAChC,iDAAhB32C,EAAM5Y,QAGJwvD,EAAYL,EAAK5xE,aAAa0f,MACjC2b,GAAUA,EAAMvU,OAASxoB,EAAmBqwC,cAAcmjC,QAG7D,GAA0B,IAAtBD,EAAyB,CAC3B,MAAMz2E,EAA0B,CAC9BsjC,QACG,IAAGikC,EAAU16D,sDACbgqE,EAAY,4BAA8B,MAE/C1zE,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,MAAO,GACiB,IAAtBy2E,GACAE,KACEE,GAAaA,EAAUC,UACzB,CAGA,MAAM92E,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,4DAEzB1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,CAMA,GAJwBw2E,EAAK5xE,aAAauf,QACvC8b,GAAUA,EAAMvU,OAASu9C,EAAAA,cAAcC,YAGtBp3D,OAAS,EAAG,CAC9B,MAAM9R,EAA0B,CAC9BsjC,QAAU,IAAGikC,EAAU16D,8CAEzB1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,CAEAw2E,EAAK5xE,aACFuf,QACE8b,GACCA,EAAMvU,OAASu9C,EAAAA,cAAc2N,cAC5B32C,EAAMwU,aACPxU,EAAM82C,kBAET7gE,SAAS+pB,IACR,MAAMjgC,EAAQ,CACZsjC,QAAU,IAAGikC,EAAU16D,gEAEzB1J,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EAAM,IAGtBg3E,GACEzP,EACAiP,EAAK5xE,aACL,WACA,OACAghE,GAEFoR,GACEzP,EACAiP,EAAK5xE,aACL,kBACA,kBACAghE,GAEFoR,GACEzP,EACAiP,EAAK5xE,aACL,kBACA,SACAghE,GAEFoR,GACEzP,EACAiP,EAAK5xE,aACL,aACA,WACAghE,GAEFqR,GAAcvuD,EAAW6+C,EAAWiP,EAAK5xE,aAAcghE,EACzD,CAeA,SAASsR,GAAkBC,GACzB,MAAMC,EAAMD,EAIN32C,GAAK62C,GAHED,EAAIE,eACJF,EAAI55E,gBAIjB,OAAO+5B,MAAMiJ,GAAK,EAAIA,CACxB,CAEA,SAAS62C,KAAkB,2BAANE,EAAI,yBAAJA,EAAI,gBACvB,IAAK,MAAMC,KAAOD,EAChB,GAAIC,UAAsCjgD,MAAMigD,GAC9C,OAAOA,CAGb,CAEA,SAASC,KACP,IAAIC,EAAKpL,KAAWhoD,MAAM3iB,GAAMA,EAAEumE,cAElC,OADAwP,OAAmB,IAAPA,EAAqBA,EAAK,GAC/BA,CACT,CAEA,SAASC,KACP,MAAMC,EAAYH,KAEZ3wB,EAAK8wB,EAAUN,eACfO,EAAKD,EAAUp6E,eACfs6E,EAAsB,MAANhxB,GAAoB,MAAN+wB,EACpC,OACED,EAAUrH,WAAapI,EAAAA,SAASuH,oBAChCkI,EAAUrH,WAAapI,EAAAA,SAAS4P,aAC/BD,GAAwC,eAAvBF,EAAUI,SAEhC,CAcA,SAASzI,KACP,MAAMqI,EAAYH,KACZH,OACiB,IAAdM,GAA4BV,GAAkBU,GACvD,OAAOD,MAAgD,GAAlBL,CACvC,CAUA,SAASxO,GAAsBS,EAAY9jE,EAAMwyE,EAAkBh4C,GAOjE,KALEA,EAAMi4C,oBACNj4C,EAAM2pC,uBACN3pC,EAAMk4C,oBACuB,kBAA7Bl4C,EAAMi4C,oBAGN,OAGF,MAAME,EAAeH,EAAiB3zD,MACnC3iB,GAAMA,EAAE0pE,gBAAkBprC,EAAM2pC,wBAGnC,IAAKwO,EAAc,CACjB,MAAMp4E,EAA0B,CAC9BsjC,QAAU,qCAAoC79B,EAAK0lE,oBAAoBlrC,EAAMwU,4BAI/E,OAFAtxC,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,QACxDqkE,EAAOzyD,KAAK5R,EAEd,CAAO,CACL,IAAIqiC,EAAYrjC,EAAAA,QAAQ+iC,KAAKq2C,EAAalyD,KAAKthB,cAC/C,MAAM4tE,EAAcnwC,EAAUle,QAAQoW,GAAqB,UAAfA,EAAEk4C,WAC9C,GAAID,GAAeA,EAAY1gE,OAAS,EAAG,CACzC,MAAM4gE,EACJxiC,EAA6B6E,0BAC3B7E,EAA6B8E,yBAAyBw9B,IAE1DnwC,EAAYA,EAAUwC,OAAO6tC,EAC/B,CAKA,IAJyBrwC,EAAU/d,MAChC+zD,GAAOA,EAAGvtE,OAASm1B,EAAMk4C,qBAGL,CACrB,MAAMn4E,EAA0B,CAC9BsjC,QAAU,qCAAoC79B,EAAK0lE,oBAAoBlrC,EAAMwU,4BAI/E,OAFAtxC,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,QACxDqkE,EAAOzyD,KAAK5R,EAEd,CACF,CACF,CAEA,SAASonE,GAAwBjkD,GACNA,EAAQojD,cAEhBrwD,SAASzQ,IACxB,MAAM6yE,EAAuB7yE,EAAKygB,KAAKthB,aAAauf,QACjDoW,GAAMA,EAAEg+C,YAAch+C,EAAEg+C,WAAWzmE,OAAS,IAEzCy3D,EAAapmD,EAAQsjD,UAAU8C,WAAW9B,WAC9C,KACAhiE,EAAK4lE,eAGPiN,EAAqBpiE,SAAS+pB,IAC5BA,EAAMs4C,WAAWriE,SAASsiE,IACxB,IAAKA,EAAe1tE,KAAM,CACxB,MAAM9K,EAA0B,CAC9BsjC,QAAU,8BAA6BrD,EAAMwU,oBAAoBhvC,EAAK0lE,6CAExEhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CAEA,GAC8B,MAA5Bw4E,EAAeC,WACqB,IAApCD,EAAeC,UAAU3mE,OACzB,CACA,MAAM9R,EAA0B,CAC9BsjC,QAAU,oBAAmBk1C,EAAe1tE,oBAAoBm1B,EAAMwU,oBAAoBhvC,EAAK0lE,sCAEjGhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CAEA,GAC4B,MAA1Bw4E,EAAeE,SACmB,IAAlCF,EAAeE,QAAQ5mE,OACvB,CACA,MAAM9R,EAA0B,CAC9BsjC,QAAU,oBAAmBk1C,EAAe1tE,oBAAoBm1B,EAAMwU,oBAAoBhvC,EAAK0lE,oCAEjGhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CAEAw4E,EAAeC,UAAUviE,SAASyiE,IAChC,MAAMC,EACJ11E,EAAmB01E,yBACf9J,EAAY+J,GAChBD,EACAD,EAAS7J,WACTz8D,WAEF,IAAKsmE,EAASzK,cAAe,CAC3B,MAAMluE,EAA0B,CAC9BsjC,QAAU,oBAAmBk1C,EAAe1tE,oBAAoBm1B,EAAMwU,oBAAoBhvC,EAAK0lE,yCAEjGhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CAEA,GAAiB,MAAb8uE,EAAmB,CACrB,MAAM9uE,EAA0B,CAC9BsjC,QAAU,oBAAmBk1C,EAAe1tE,oBAAoBm1B,EAAMwU,oBAAoBhvC,EAAK0lE,oCAEjGhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CAEA,IACG8uE,GAAa8J,EAAyBE,OAAOzmE,YAC5Cy8D,GAAa8J,EAAyBG,UAAU1mE,aACrB,MAA7BsmE,EAAStxD,MAAMhV,WACf,CACA,MAAMrS,EAA0B,CAC9BsjC,QAAU,oBAAmBk1C,EAAe1tE,oBAAoBm1B,EAAMwU,oBAAoBhvC,EAAK0lE,gCAEjGhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,KAGFw4E,EAAeE,QAAQxiE,SAAS8iE,IAC9B,GAAqC,MAAjCA,EAAOC,YAAY5mE,WAAoB,CACzC,MAAMrS,EAA0B,CAC9BsjC,QAAU,oBAAmBk1C,EAAe1tE,oBAAoBm1B,EAAMwU,oBAAoBhvC,EAAK0lE,wCAEjGhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CAEA,GAAqB,MAAjBg5E,EAAOA,QAA8C,MAA5BA,EAAOA,OAAO3mE,WAAoB,CAC7D,MAAMrS,EAA0B,CAC9BsjC,QAAU,oBAAmBk1C,EAAe1tE,oBAAoBm1B,EAAMwU,oBAAoBhvC,EAAK0lE,kCAEjGhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,IACA,GACF,GACF,GAEN,CAEA,SAAS64E,GAAaK,EAAqBrsE,GACzC,OAAI0qB,MAAM1qB,GACDqsE,EACLniE,OAAOo9C,KAAK+kB,GACT5+C,KAAKzzB,GAAQqyE,EAAeryE,KAC5Byd,MACEnmB,GAAMA,EAAEkU,WAAWlM,eAAiB0G,EAAKwF,WAAWlM,iBAItD0G,CACT,CAEA,SAASg6D,GAAyB,GAAe,IAAf,UAAEJ,GAAW,EAC7C,MAAMwR,EAAmB3L,KACzB2L,EAAiB/hE,SAASzQ,IACxB,MAAM0zE,EAAmB1zE,EAAKygB,KAAKthB,aAAauf,QAC7CoW,GAAMA,EAAE6+C,kBAAoB7+C,EAAE6+C,iBAAiBvmB,WAE5C0W,EAAa9C,EAAU8C,WAAW9B,WACtC,KACAhiE,EAAK4lE,eAGP8N,EAAiBjjE,SAASqkB,IACxB,MAAM8+C,EAAoB9+C,EAAE6+C,iBAE5B,OAD4B7+C,EAAE7O,MAE5B,KAAKu9C,EAAAA,cAAcqQ,WACjB,IACG/2D,EAAOg3D,SAASF,EAAkBG,YACnCH,EAAkBG,UAAY,GAC9BrpE,KAAK8+C,MAAMoqB,EAAkBG,YAC3BH,EAAkBG,UACpB,CACA,MAAMx5E,EAA0B,CAC9BsjC,QAAU,0BAAyB/I,EAAEka,oBAAoBhvC,EAAK0lE,qCAEhEhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,CACA,OACF,KAAKipE,EAAAA,cAAcwQ,iBACjB,MACF,QACE,QAC6Bl5E,IAA3B84E,EAAkBh/B,MACS,KAA3Bg/B,EAAkBh/B,KAClB,CACA,MAAMr6C,EAA0B,CAC9BsjC,QAAU,qCAAoC/I,EAAEka,oBAAoBhvC,EAAK0lE,cAK3E,OAFAhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,QACxDqkE,EAAOzyD,KAAK5R,EAEd,CAEA,GAAsC,SAAlCq5E,EAAkBnmB,aACpB,IAAKmmB,EAAkBhyD,MAAO,CAC5B,MAAMrnB,EAA0B,CAC9BsjC,QAAU,kCAAiC/I,EAAEka,oBAAoBhvC,EAAK0lE,cAGxEhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,OACK,GAAsC,kBAAlCq5E,EAAkBnmB,YAAiC,CAC5D,MAAMklB,EAAeH,EAAiB3zD,MACnC3iB,GAAMA,EAAE0pE,gBAAkBgO,EAAkB7lB,iBAG/C,IAAK4kB,EAAc,CACjB,MAAMp4E,EAA0B,CAC9BsjC,QAAU,+CAA8C79B,EAAK0lE,oBAAoB5wC,EAAEka,4BAIrF,OAFAtxC,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,QACxDqkE,EAAOzyD,KAAK5R,EAEd,CAKE,IAJyBo4E,EAAalyD,KAAKthB,aAAa0f,MACrD+zD,GAAOA,EAAGvtE,OAASuuE,EAAkBjmB,cAGjB,CACrB,MAAMpzD,EAA0B,CAC9BsjC,QAAU,+CAA8C79B,EAAK0lE,oBAAoB5wC,EAAEka,4BAOrF,OALAtxC,EAA+BihE,SAC7BmF,EAAW1iE,IACX7G,QAEFqkE,EAAOzyD,KAAK5R,EAEd,CAEJ,MAAO,GAAsC,gBAAlCq5E,EAAkBnmB,cACtBmmB,EAAkB3lB,sBAAuB,CAC5C,MAAM1zD,EAA0B,CAC9BsjC,QAAU,6CAA4C/I,EAAEka,oBAAoBhvC,EAAK0lE,cAEnFhoE,EAA+BihE,SAASmF,EAAW1iE,IAAK7G,GACxDqkE,EAAOzyD,KAAK5R,EACd,EAEI,GAEV,GAEN,CAEA,SAASi3E,GACPvuD,EACAjjB,EACAb,EACAghE,GAEA,MAAM8T,EAASn3D,EAAO4B,OAAOvf,GAAc,SAAUikE,GACnD,MAA4B,UAArBA,EAAYn9C,IACrB,IACAnJ,EAAOrM,QAAQwjE,GAAQ,SAAUpzB,GAC/B,GAAyB/lD,MAArB+lD,EAAMlB,aAAkD,OAAtBkB,EAAMlB,YAAsB,CAChE,IAAI2C,EAAO,GAETA,EADEhiB,MAAMtB,QAAQ6hB,EAAMlB,aACfkB,EAAMlB,YAENznB,KAAK9zB,MAAMy8C,EAAMlB,aAG1B,IAAIu0B,GAAoB,EA+BxB,GA5BAp3D,EAAOrM,QAAQ6xC,GAAM,SAAU18C,GAEzBA,EAAI+yC,aAAeu7B,IACrBA,GAAoB,GAElBtuE,EAAIqgB,OAASkuD,EAAAA,cAAc/lC,SAC7BgmC,GACEp0E,EACA,WACA4F,EAAI60B,aACJomB,EAAM7R,YACNppC,EAAIqpC,OACJkxB,EACAvB,GAEOh5D,EAAIqgB,OAASkuD,EAAAA,cAAcpmC,QACpCu1B,GACEtjE,EACA4F,EAAIqoC,aACJ4S,EAAM7R,YACNppC,EAAIqpC,OACJkxB,EACAvB,EACA37C,EAGN,IAGsB,MAApB49B,EAAMwzB,YACNxzB,EAAMwzB,WAAWjnB,WAChB8mB,EACD,CACA,MAAM35E,EAA0B,CAC9BsjC,QAAU,IAAGgjB,EAAM7R,oBAAoBhvC,EAAKoH,6FAE9Cw3D,EAAOzyD,KAAK5R,EACd,CACF,KAAO,CACL,MAAMA,EAA0B,CAC9BsjC,QAAU,oBAAmB79B,EAAKoH,cAAcy5C,EAAM7R,4BAExDtxC,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,GACF,CAEA,SAASg3E,GACPvxE,EACAb,EACAm1E,EACAC,EACApU,GAEA,MAAMqU,EAAQ13D,EAAO4B,OAAOvf,GAAc,SAAUikE,GAClD,OAAOA,EAAYn9C,OAASquD,CAC9B,IAEAx3D,EAAOrM,QAAQ+jE,GAAO,SAAU/qC,GAC9B,MAAMgrC,EAAa33D,EAAO+X,IAAI4U,EAAKpqC,QAAS,SAG5C,GADEyd,EAAO43D,KAAKD,GAAYpoE,SAAWooE,EAAWpoE,OAC7B,CACjB,MAAM9R,EAA0B,CAC9BsjC,QAAU,GAAE02C,4BAAsCv0E,EAAKoH,UAAUqiC,EAAKuF,gCAExEtxC,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACA65E,GACEp0E,EACAypC,EAAK5F,WACL4F,EAAKhP,aACL85C,EACA9qC,EAAKuF,YACLmxB,EACAvB,EAEJ,GACF,CAEA,SAAS2E,GACPH,EACA1lD,EACAqkD,EACAD,EACAlD,GAEA,MAAM+V,EAAmBvR,EAAYxhD,MACrC,GAAwB,MAApB+yD,EAA0B,CAC5B,MAAMpO,EAAmBoF,GACvBgJ,EACA5S,EACArkD,EAAQojD,cACRpjD,EAAQ6iD,cACR7iD,EAAQ4hD,UAENiH,GACFA,EAAiB91D,SAASg2D,IACxB,MAAMlsE,EAAQ,CACZsjC,QAAU,IAAGkkC,EAAa2D,mDAAmDe,iCAAwC1E,EAAa2D,YAAYtC,EAAYp0B,gBAE5JtxC,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EAAM,GAGxB,CACF,CAEA,SAAS+oE,GACPtjE,EACAiuC,EACAe,EACA4lC,EACAzU,EACAvB,EACA37C,GAEA,GAAI4xD,GAAa5mC,GAAe,CAC9B,MAAM1zC,EAAQ,CACZsjC,QAAU,GAAEmR,KAAe4lC,SAAwB50E,EAAKoH,4BAI1D,OAFAw3D,EAAOzyD,KAAK5R,QACZmD,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,EAEpD,CAEA,GAAIs6E,GAAa5mC,EAAanS,QAAS,CACrC,MAAMvhC,EAAQ,CACZsjC,QAAU,GAAEmR,KAAe4lC,SAAwB50E,EAAKoH,4CAE1Dw3D,EAAOzyD,KAAK5R,GACZmD,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,EACpD,MAAO,IAAK4lE,EAAap2B,MAAMtN,GAAOA,EAAGp3B,OAAS4oC,EAAanS,SAAS,CACtE,MAAMvhC,EAAQ,CACZsjC,QACG,GAAEmR,KAAe4lC,SAAwB50E,EAAKoH,6BACnC6mC,EAAanS,gCAE7B8iC,EAAOzyD,KAAK5R,GACZmD,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,EACpD,CAEA,GACEu6E,GACE7mC,EAAa1S,aACb0S,EAAarsB,OAEf,CACA,MAAMrnB,EAAQ,CACZsjC,QAAU,GAAEmR,KAAe4lC,SAAwB50E,EAAKoH,kDAE1Dw3D,EAAOzyD,KAAK5R,GACZmD,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,EACpD,CAEA,GACEu6E,GACE7mC,EAAasH,WACbtH,EAAarsB,OAEf,CACA,MAAMrnB,EAAQ,CACZsjC,QAAU,GAAEmR,KAAe4lC,SAAwB50E,EAAKoH,gDAE1Dw3D,EAAOzyD,KAAK5R,GACZmD,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,EACpD,CAEA,GAAIs6E,GAAa5mC,EAAarsB,OAAQ,CACpC,MAAMrnB,EAAQ,CACZsjC,QAAU,GAAEmR,KAAe4lC,SAAwB50E,EAAKoH,kDAE1Dw3D,EAAOzyD,KAAK5R,GACZmD,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,EACpD,MAAO,GACJ0zC,EAAarsB,QAAU3pB,EAAAA,oBAAoBy9C,sBAC1CzH,EAAarsB,QAAU3pB,EAAAA,oBAAoB09C,oBAC3C31C,EAAKL,WAAa+iE,EAAAA,SAAS4P,aAC3BtyE,EAAK6xE,iBAAmB95E,EAAAA,eAAeg9E,SACvC/0E,EAAKL,WAAa+iE,EAAAA,SAASuH,oBAcxB,IACJh8B,EAAarsB,QAAU3pB,EAAAA,oBAAoB+8E,mBAC1C/mC,EAAarsB,QAAU3pB,EAAAA,oBAAoBg9E,iBAC7ChyD,EAAUtjB,WAAa+iE,EAAAA,SAAS4P,aAChCrvD,EAAU4uD,iBAAmB95E,EAAAA,eAAeg9E,OAC5C,CACA,MAAMG,EACJjnC,EAAarsB,QAAU3pB,EAAAA,oBAAoB+8E,kBACvCG,EAAAA,yBAAyBH,kBACzBG,EAAAA,yBAAyBF,eACzB16E,EAAQ,CACZsjC,QACG,GAAEmR,KAAe4lC,SAAwB50E,EAAKoH,cAAc8tE,uHAGjEtW,EAAOzyD,KAAK5R,GACZmD,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,EACpD,MA9BE,CACA,MAAM66E,EACJnnC,EAAarsB,QAAU3pB,EAAAA,oBAAoBy9C,qBACvCy/B,EAAAA,yBAAyBE,yBACzBF,EAAAA,yBAAyBG,sBAEzB/6E,EAAQ,CACZsjC,QACG,GAAEmR,KAAe4lC,SAAwB50E,EAAKoH,cAAcguE,kHAGjExW,EAAOzyD,KAAK5R,GACZmD,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,EACpD,CAkBF,CAEA,SAASmpE,GACPN,EACArB,EACAD,EACAlD,GAEA,IAAKmD,EAAa+E,aAAc,CAC9B,MAAMvsE,EAAQ,CACZsjC,QAAU,IAAGkkC,EAAa2D,qCAAqCtC,EAAYp0B,2DAE7EtxC,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,CAEA,GAAIwnE,EAAathD,KAAKthB,aAAa0wB,IAAI,KAAOuzC,EAAa,CACzD,MAAM7oE,EAAQ,CACZsjC,QAAU,IAAGkkC,EAAa2D,qCAAqCtC,EAAYp0B,4EAE7EtxC,EAA+BihE,SAASmD,EAAU1gE,IAAK7G,GACvDqkE,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAAS65E,GACPp0E,EACA6jC,EACApJ,EACAuU,EACA4lC,EACAzU,EACAvB,GAEA,IAAIiW,GAAahxC,IAA8B,aAAfA,EAAhC,CAIA,GAAIgxC,GAAap6C,GAAe,CAC9B,MAAMlgC,EAAQ,CACZsjC,QAAU,GAAEmR,2BAAqChvC,EAAKoH,YAAYwtE,iBAKpE,OAFAl3E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,QAClDqkE,EAAOzyD,KAAK5R,EAEd,CAEA,GAAIs6E,GAAap6C,EAAaqB,QAAS,CACrC,MAAMvhC,EAAQ,CACZsjC,QAAU,GAAEmR,kCAA4ChvC,EAAKoH,YAAYwtE,iBAG3El3E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACA,GACEs6E,GAAap6C,EAAac,eAC1Bd,EAAac,eAAiB99B,EAAmB83E,WACjD,CACA,MAAMh7E,EAAQ,CACZsjC,QAAU,GAAEmR,kCAA4ChvC,EAAKoH,YAAYwtE,iBAG3El3E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CAEA,IACGs6E,GAAap6C,EAAaqB,cACoChhC,IAA/DqlE,EAAathD,MAAM4d,GAAOA,EAAGp3B,OAASo1B,EAAaqB,SACnD,CACA,MAAMvhC,EAAQ,CACZsjC,QAAU,GAAEmR,+BAAyCvU,EAAaqB,aAAa97B,EAAKoH,YAAYwtE,mBAGlGl3E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CAEIkgC,EAAaC,QAAQ,KAEpBm6C,GAAap6C,EAAaC,QAAQ,GAAG50B,SACrC+uE,GAAap6C,EAAaC,QAAQ,GAAGJ,YACrCu6C,GAAap6C,EAAaC,QAAQ,GAAG9Y,QAEtC4zD,GACExmC,EACAhvC,EACAy6B,EACAm6C,EACAhW,GAvDN,CA2DF,CAEA,SAASgB,GAA6BP,GACpC,OAAOlmC,EAAMyrC,KACX7V,EAAUv1B,WAAa,uCACvB6lC,EAEJ,CAEA,SAASoC,GAAkBtiE,EAAcohE,GACnCA,GACFzjD,EAAOrM,QAAQ8vD,GAAe,SAAUvgE,GAErB,OAAfA,EAAKy1E,YACU36E,IAAfkF,EAAKy1E,OACU,KAAfz1E,EAAKy1E,OAEL34D,EAAOrM,QAAQzQ,EAAKy1E,OAAO,SAAU7gC,GACnC,MAAM8gC,EAAS,SAAU7qE,GACvB,OAAO,MAAOA,CAChB,EAEA,IACG6qE,EAAO9gC,EAAK+gC,gBACS,IAAtB/gC,EAAK+gC,cACL7jD,MAAM8iB,EAAKy0B,WACX,CACA,MAAM9uE,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,gCAChBytE,GAAajgC,EAAKghC,UAAY,SAAWhhC,EAAKghC,mDAGlDl4E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,MAAO,IACJm7E,EAAO9gC,EAAK+gC,gBACS,IAAtB/gC,EAAK+gC,cACLd,GAAajgC,EAAKy0B,WAClB,CACA,MAAM9uE,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,gCAChBytE,GAAajgC,EAAKghC,UAAY,SAAWhhC,EAAKghC,mDAGlDl4E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CAEA,GACGm7E,EAAO9gC,EAAK+gC,gBACS,IAAtB/gC,EAAK+gC,cACJD,EAAO9gC,EAAKihC,iBAoCR,IACJH,EAAO9gC,EAAK+gC,gBACS,IAAtB/gC,EAAK+gC,cACLd,GAAajgC,EAAKihC,gBAClB,CACA,MAAMt7E,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,gCAChBytE,GAAajgC,EAAKghC,UAAY,SAAWhhC,EAAKghC,oDAGlDl4E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,MA/CE,CACA,MAAMu7E,EAAuB,GAqB7B,GApBAh5D,EAAO4B,OAAOvf,GAAc,SAAUwR,GAC/B+kE,EAAO/kE,IACL+kE,EAAO/kE,EAAK8P,OACVi1D,EAAO/kE,EAAK8P,KAAKthB,eACpB2d,EAAO4B,OACL/N,EAAK8P,KAAKthB,cACV,SAAUikE,GACJA,EAAY/9D,OAASuvC,EAAKihC,gBAC5BC,EAAqB3pE,KAAK,CACxB4D,GAAIqzD,EAAY/9D,KAChBA,KAAMuvC,EAAKihC,gBAGjB,GAKV,IAGEC,SAEAA,EAAqBzpE,OAAS,EAC9B,CACA,MAAM9R,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,gCAChBytE,GAAajgC,EAAKghC,UAAY,SAAWhhC,EAAKghC,oDAGlDl4E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,CAeAuiB,EAAOrM,QAAQmkC,EAAKq+B,SAAS,SAAUM,GAErC,IACGmC,EAAO9gC,EAAK+gC,gBACS,IAAtB/gC,EAAK+gC,cACL7jD,MAAMyhD,EAAOA,QACb,CACA,MAAMh5E,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,gCAChBytE,GAAajgC,EAAKghC,UAAY,SAAWhhC,EAAKghC,gDAGlDl4E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,MAAO,IACJm7E,EAAO9gC,EAAK+gC,gBACS,IAAtB/gC,EAAK+gC,cACLd,GAAatB,EAAOA,QACpB,CACA,MAAMh5E,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,gCAChBytE,GAAajgC,EAAKghC,UAAY,SAAWhhC,EAAKghC,gDAGlDl4E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CAGA,GACGm7E,EAAO9gC,EAAK+gC,gBACS,IAAtB/gC,EAAK+gC,cACJd,GAAatB,EAAOwC,gBA4BhB,IACJL,EAAO9gC,EAAK+gC,gBACS,IAAtB/gC,EAAK+gC,cACLd,GAAatB,EAAOwC,eACpB,CACA,MAAMx7E,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,gCAChBytE,GAAajgC,EAAKghC,UAAY,SAAWhhC,EAAKghC,8CAGlDl4E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,MAvCE,CACA,MAAMy7E,EAAoB,GAa1B,GAZAl5D,EAAO4B,OAAO6hD,GAAe,SAAU5vD,GAEnCA,EAAKZ,KAAOwjE,EAAOwC,eACA,YAAnBplE,EAAK22D,WAEL0O,EAAkB7pE,KAAK,CACrB4D,GAAIY,EAAKZ,GACT1K,KAAMkuE,EAAOwC,eAGnB,IAGEC,SAEAA,EAAkB3pE,OAAS,EAC3B,CACA,MAAM9R,EAA0B,CAC9BsjC,QAAU,IAAG79B,EAAKoH,gCAChBytE,GAAajgC,EAAKghC,UAAY,SAAWhhC,EAAKghC,8CAGlDl4E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,CAaF,GACF,GAEJ,GAEJ,CAGA,SAASu6E,GAAiCmB,EAAcC,GACtD,OACErB,GAAaoB,IACbC,IAAgBj+E,EAAAA,oBAAoBy9C,sBACpCwgC,IAAgBj+E,EAAAA,oBAAoB09C,iBAExC,CAEA,SAASk/B,GAAaoB,GACpB,OACEA,SAAwE,KAAjBA,CAE3D,CAEA,SAAST,GACPxmC,EACAhvC,EACAy6B,EACAm6C,EACAhW,GAGA,GAAIiW,GAAap6C,EAAaC,QAAQ,GAAG50B,QAAS,CAChD,MAAMvL,EAAQ,CACZsjC,QAAU,GAAEmR,sBAAgChvC,EAAKoH,YAAYwtE,iBAG/Dl3E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CAEA,GAAIs6E,GAAap6C,EAAaC,QAAQ,GAAGJ,WAAY,CACnD,MAAM//B,EAAQ,CACZsjC,QAAU,GAAEmR,yBAAmChvC,EAAKoH,YAAYwtE,iBAGlEl3E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CAEA,GAAIs6E,GAAap6C,EAAaC,QAAQ,GAAG9Y,OAAQ,CAC/C,MAAMrnB,EAAQ,CACZsjC,QAAU,GAAEmR,qBAA+BhvC,EAAKoH,YAAYwtE,iBAG9Dl3E,EAA+BihE,SAAS3+D,EAAKoB,IAAK7G,GAClDqkE,EAAOzyD,KAAK5R,EACd,CACF,CAEA,SAASmnE,GACPjjD,EACAlR,EACAqxD,GAEiBrxD,EAAMmR,QACpB1e,GAASA,EAAKyP,WAAamE,EAAAA,aAAayX,kBAElC5a,SAAS0lE,IACE13D,EAAMC,QAAQ3J,GAASA,EAAK+J,OAASq3D,EAAQ/0E,MACrDqP,SAASsE,IACjB,KAAOA,GAAM,CACX,MAAMmO,EAAW3V,EAAMsR,MAAM7e,GAASA,EAAKoB,MAAQ2T,EAAKgK,KACxD,QACwBjkB,IAAtBooB,EAASvjB,UACTujB,EAASzT,WAAamE,EAAAA,aAAaE,mBACnCoP,EAASzT,WAAamE,EAAAA,aAAai0D,UAEnC,OACK,GAAI3kD,EAASzT,WAAamE,EAAAA,aAAa5C,iBAAkB,CAC9D,MAAMzW,EAA0B,CAC9BsjC,QACG,sCAAqCs4C,EAAQ/uE,cAAc8b,EAAS9b,4CAKzE,OAFA1J,EAA+BihE,SAAS5pD,EAAK+J,KAAMvkB,QACnDqkE,EAAOzyD,KAAK5R,EAEd,CAAO,GAAI2oB,EAASzT,WAAamE,EAAAA,aAAayX,gBAAiB,CAC7D,MAAM9wB,EAA0B,CAC9BsjC,QACG,sCAAqCs4C,EAAQ/uE,cAAc8b,EAAS9b,kBAC1D8b,EAAS9b,4CAA4C+uE,EAAQ/uE,kBAI5E,OAFA1J,EAA+BihE,SAAS5pD,EAAK+J,KAAMvkB,QACnDqkE,EAAOzyD,KAAK5R,EAEd,CAEAwa,EAAO0J,EAAMI,MAAMF,GAAMA,EAAEG,OAASoE,EAAS9hB,KAC/C,IACA,GAEN,CACF,E,QA1vGA7H,QACGC,OAAO,gCACPqB,QAAQ,2BAA4BgkE,GAEvCA,EAAyBjtD,QAAU,CACjC,QACA,gBACA,0BACA,2BACA,+BACA,uBACA,2BACA,iBACA,oBACA,cACA,kBACA,KACA,sBACA,qBACA,SACA,wBACA,iCACA,qBACA,iBAmuGD,O,8ZCtzGM,MAAMqvD,EAIJW,mBAA0B,CAAC,EAE1BwU,qBACN,IAAIC,EAAuB,CAAEC,WAAY,QACnCC,iBAA2C,IAAIF,EACrD,CAAEC,WAAY,MAAOE,QAAS,CAAC,QAIzBC,WAAqC,IAAIJ,EAAuB,CACtEC,WAAY,KACZE,QAAS,CAAC,mBAIJE,cAAwC,IAAIL,EAAuB,CACzEC,WAAY,oBAGdl5E,YAAYiiE,GACV7jE,KAAKm7E,UAAYtX,EACjB7jE,KAAKo7E,QAAU1+C,KAAK9zB,MAAMi7D,EAASiB,YAGnC,IAAK,IAAIl0D,EAAI5Q,KAAKo7E,QAAQvjE,cAAchH,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC/D,MAAM2I,EAAOvZ,KAAKo7E,QAAQvjE,cAAcjH,GAClCqS,EAAQjjB,KAAKk7E,cAAcG,QAAQ9hE,EAAK+J,OAAS,GACvDL,EAAMtS,KAAK4I,EAAKgK,IAChBN,EAAMq4D,gBAAkB/hE,EAAK+J,KAC7BtjB,KAAKk7E,cAAcK,OAAOt4D,EAC5B,CAGA,IAAK,IAAIrS,EAAI5Q,KAAKo7E,QAAQxjE,cAAc/G,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC/D,MAAM83D,EAAS1oE,KAAKo7E,QAAQxjE,cAAchH,GAC1C5Q,KAAK+6E,iBAAiBQ,OAAO7S,EAC/B,CAGA,IAAK,IAAI93D,EAAI5Q,KAAKm7E,UAAU5V,MAAM10D,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACzD,MAAMpM,EAAOxE,KAAKm7E,UAAU5V,MAAM30D,GAClC5Q,KAAKi7E,WAAWM,OAAO/2E,EACzB,CAGA,MAAMg3E,EAAex7E,KAAKsoE,WACvBC,cACAC,MAAM,GACNC,OAAOC,GAA0B,SAAfA,EAAOvzD,OACzB8zD,SAEH,QAA+B,IAApBuS,EAAa,GAAoB,CAC1C,MAAMC,EAAcD,EAAa,GACjCx7E,KAAKomE,mBAAqBpmE,KAAK07E,kBAAkBD,EAAY71E,IAAK,EACpE,CAEI41E,EAAa3qE,QAAU,IAAG7Q,KAAKomE,mBAAqB,KAC1D,CAYQsV,kBAAkB91E,EAAa88C,GACrC,MAAMgmB,EAAS1oE,KAAK+6E,iBAAiBM,QAAQz1E,GAEvC+1E,EAAmC,kBAAnBjT,EAAOz0D,SACa,mBAAnBy0D,EAAOz0D,SAI5ByuC,IACSi5B,GACTj5B,IAIF,MAAMk5B,EAAgB,IAAIC,EAAsBj2E,EAAK8iE,GAEnDkT,EAAcl5B,MAAQA,EACtB1iD,KAAK+oE,eAAewS,OAAOK,GAG7B,MAAME,EAAY97E,KAAKk7E,cAAcG,QAAQz1E,GAC7C,GAAIk2E,EACF,IAAK,MAAMC,KAAYD,EAAW,CAEhC,MAAME,EACJh8E,KAAK46E,qBAAqBS,QAAQU,IAClC/7E,KAAK07E,kBAAkBK,EAAUr5B,GACnCk5B,EAAcK,SAASD,EACzB,CAGF,OAAOJ,CACT,CAEI7pE,YACF,OAAO/R,KAAKi7E,UACd,CAEI3S,iBACF,OAAOtoE,KAAK+6E,gBACd,CAEImB,cACF,OAAOl8E,KAAKk7E,aACd,CAEInS,qBACF,OAAO/oE,KAAK46E,oBACd,EACD,sBAED,MAAMiB,EACIM,UAAqC,GACrCC,SAAoC,GAM5Cx6E,YAAYgE,EAAa8iE,GACvB1oE,KAAKq8E,KAAOz2E,EACZ5F,KAAKs8E,YAAc5T,CACrB,CAEAuT,SAASL,GAGP,OAAK57E,KAAKm8E,UAAkB94D,MAAMmyB,GAAUomC,GAAiBpmC,MAG3Dx1C,KAAKm8E,UAAUxrE,KAAKirE,GACpBA,EAAcW,UAAUv8E,OACjB,EAEX,CAEAu8E,UAAUrrC,GAELtxC,EAAEyjB,KACDrjB,KAAKo8E,SACLx8E,EAAE48E,gBAAgB,kBAAmBtrC,EAAWorC,YAAY12E,OAG9D5F,KAAKo8E,SAASzrE,KAAKugC,EAEvB,CAEIo3B,iBACF,OAAOtoE,KAAKs8E,WACd,CAEI12E,UACF,OAAO5F,KAAKq8E,IACd,CAEIrT,cACF,MAAO,IAAIhpE,KAAKo8E,SAClB,CAEInwC,eACF,MAAO,IAAIjsC,KAAKm8E,UAClB,EAQF,MAAMtB,EAEI4B,aAAuB,CAAC,EAGxBC,MAAe,GAEvB96E,YAAY6jC,GAIV,GAHAzlC,KAAK28E,IAAMl3C,EAAOq1C,WAGdr1C,EAAOu1C,QAAS,CAClBh7E,KAAK48E,SAAW,CAAC,EACjB,IAAK,MAAMzhD,KAASsK,EAAOu1C,QACzBh7E,KAAK48E,SAASzhD,GAAS,CAAC,CAE5B,CACF,CAeAqrC,WAAWrrC,EAAev1B,GACxB,OAAOhG,EAAEoW,IAAIhW,KAAK48E,SAAU,CAACzhD,EAAOv1B,GACtC,CASAy1E,QAAQwB,GACN,OAAO78E,KAAKy8E,aAAaI,EAC3B,CAEAtB,OAAOpmE,GACL,MAAM2nE,EAAU3nE,EAAKnV,KAAK28E,KAK1B,GAJA38E,KAAK08E,MAAM/rE,KAAKwE,GAChBnV,KAAKy8E,aAAaK,GAAW3nE,EAGzBnV,KAAK48E,SACP,IAAK,MAAMzhD,KAASn7B,KAAK48E,SAAiB,CACxC,MAAMG,EAAa5nE,EAAKgmB,GACxBn7B,KAAK48E,SAASzhD,GAAO4hD,GAAc5nE,CACrC,CAEJ,CAEAozD,cACE,OAAO,IAAIyU,EAAuBh9E,KAAK08E,MACzC,CAEAzT,SACE,OAAOjpE,KAAK08E,KACd,EAGF,MAAMM,EAEIC,OAAiBlmC,OAAOmmC,UAEhCt7E,YAAY+sE,GACV3uE,KAAKm9E,OAASxO,CAChB,CAEA97D,OAAOhT,GAEL,OADAG,KAAKm9E,OAASn9E,KAAKm9E,OAAO9jD,IAAIx5B,GACvBG,IACT,CAEAyoE,MAAM5oE,GACJ,MAAMu9E,EAAO,GACb,IAAK,IAAIxsE,EAAI,EAAGA,EAAI5Q,KAAKm9E,OAAOtsE,QAAUusE,EAAKvsE,OAAS7Q,KAAKi9E,OAAQrsE,IAAK,CACxE,MAAMuE,EAAOnV,KAAKm9E,OAAOvsE,GACrB/Q,EAAGsV,IACLioE,EAAKzsE,KAAKwE,EAEd,CAEA,OADAnV,KAAKm9E,OAASC,EACPp9E,IACT,CAEAwoE,MAAM6U,GAEJ,OADAr9E,KAAKi9E,OAASI,EACPr9E,IACT,CAEAC,QACE,OAAO,IAAI+8E,EAAuBh9E,KAAKipE,SACzC,CAEA94D,QACE,OAAOnQ,KAAKm9E,OAAO,EACrB,CAEAG,OACE,OAAOt9E,KAAKm9E,OAAOn9E,KAAKm9E,OAAOtsE,OAAS,EAC1C,CAEAo4D,SACE,OAAOrpE,EAAE29E,UAAUv9E,KAAKm9E,OAC1B,EAGK,MAAMK,EAA6B,CACxC/X,oBACAoW,wBACAmB,0BAGF,SAASS,IACP,MAAO,CACLhY,oBACAoW,wBACAmB,yBAEJ,CARE,+BASFj/E,EAAAA,QACGC,OAAO,0BACPqB,QAAQ,wBAAyB,CAACo+E,GAAwB,G,8kBC5TtD,MAAMC,EACJC,0BAAmC,CACxCj6E,YAAa,oCAGRk6E,8BAAuC,CAC5Cl6E,YAAa,gEAGRm6E,8BAAuC,CAC5Cn6E,YAAa,wCAGRo6E,gCAAyC,CAC9Cp6E,YAAa,sDAGRq6E,gCAAyC,CAC9Cr6E,YAAa,0CAGRs6E,kCAA2C,CAChDt6E,YAAa,wDAGRu6E,sCAA+C,CACpDv6E,YAAa,gDAGRw6E,kCAA2C,CAChDx6E,YAAa,4CAGRy6E,oCAA6C,CAClDz6E,YAAa,8CAGR06E,iCAA0C,CAC/C16E,YAAa,iDAGR26E,QAAiB,CACtB36E,YAAa,6BAEhB,gBAED3F,EAAAA,QACGC,OAAO,gCACPqB,QAAQ,cAAe,CAAC,IAAM,IAAIq+E,GAAgB,G,mXCzC9C,MAAMY,EACX18E,YACU28E,EACAt8E,GACR,KAFQs8E,YAAAA,EAA0C,KAC1Ct8E,mBAAAA,CACP,CAEHqwE,cAAckM,GACZ,MAAMC,EAAsB,CAACz+E,KAAKu+E,YAAYF,SACxCK,EAAoBF,EAA0Bt7D,QACjD1e,GACCA,EAAKL,WAAa+iE,EAAAA,SAASyX,MAC3Bn6E,EAAKo6E,mBAAqBC,EAAAA,oBAAoB3S,wBAChDr7D,OACIiuE,EAAsBN,EAA0Bt7D,QACnD1e,GACCA,EAAKL,WAAa+iE,EAAAA,SAAS9iE,UAC3BI,EAAKo6E,mBAAqBC,EAAAA,oBAAoB3S,wBAChDr7D,OACIkuE,EAAkBP,EAA0Bt7D,QAC/C1e,GAASA,EAAKL,WAAa+iE,EAAAA,SAAS7iE,oBACrCwM,OACImuE,EAAoBR,EAA0Bt7D,QACjD1e,GAASA,EAAKL,WAAa+iE,EAAAA,SAAS5iE,sBACrCuM,OAsCF,OApCI6tE,GAAqB,GACvBD,EAAW9tE,KAAK3Q,KAAKu+E,YAAYZ,2BAG/BmB,GAAuB,GACzBL,EAAW9tE,KAAK3Q,KAAKu+E,YAAYX,+BAG/Bc,EAAoB,GAAKK,EAAkB,GAC7CN,EAAW9tE,KAAK3Q,KAAKu+E,YAAYV,+BAG/BiB,EAAsB,GAAKC,EAAkB,GAC/CN,EAAW9tE,KAAK3Q,KAAKu+E,YAAYT,iCAG/BY,EAAoB,GAAKM,EAAoB,GAC/CP,EAAW9tE,KAAK3Q,KAAKu+E,YAAYR,iCAG/Be,EAAsB,GAAKE,EAAoB,GACjDP,EAAW9tE,KAAK3Q,KAAKu+E,YAAYP,mCAG/BgB,GAAqB,GACvBP,EAAW9tE,KAAK3Q,KAAKu+E,YAAYN,uCAG/Bc,GAAmB,GACrBN,EAAW9tE,KAAK3Q,KAAKu+E,YAAYL,mCAG/Bc,EAAoB,GAAKD,EAAkB,GAC7CN,EAAW9tE,KAAK3Q,KAAKu+E,YAAYJ,qCAG5BM,CACT,CAEA5L,eAAe9gE,GACb,MAAM0sE,EAAsB,CAACz+E,KAAKu+E,YAAYF,SAW9C,OAT8BtsE,EAAMmR,QACjCxiB,GACCA,EAAEuT,WAAajU,KAAKiC,mBAAmBsT,aAAa+C,oBACtDzH,OAE0B,GAC1B4tE,EAAW9tE,KAAK3Q,KAAKu+E,YAAYH,kCAG5BK,CACT,EACD,yBAED1gF,EAAAA,QACGC,OAAO,gCACPqB,QAAQ,uBAAwB,CAC/B,cACA,qBACA,CAACk/E,EAAat8E,IACZ,IAAIq8E,EAAqBC,EAAat8E,IACvC,G,iWC5FE,MAAMg9E,EACXzM,iBAAiB0M,EAAqBC,GACpC,IAAI7oC,GAAU,EACV9E,EAAe,GAYnB,OAVA2tC,EAASlqE,SAASypC,IAChB,MAAM0gC,EAAYF,EAAQh8D,QAAQm8D,GAAOA,EAAGjmC,OAASsF,IAErD,GAAI0gC,EAAUvuE,OAAS,IAAMuuE,EAAU,GAAGE,QAGxC,OAFAhpC,GAAU,OACV9E,EAAekN,EAAEh7C,YAEnB,IAGK,CACL4yC,QAASA,EACT9E,aAAcA,EAElB,EACD,6BAEDzzC,EAAAA,QACGC,OAAO,gCACPqB,QAAQ,2BAA4B,CAAC,IAAM,IAAI4/E,GAA6B,G,ilBCzBxE,MAAMM,EAIX39E,YAAoB28E,GAA4C,KAA5CA,YAAAA,EAClBv+E,KAAKyyE,gBAAkB,CACrB,CACEr5B,KAAMp5C,KAAKu+E,YAAYZ,0BACvB2B,SAAS,GAEX,CACElmC,KAAMp5C,KAAKu+E,YAAYX,8BACvB0B,SAAS,GAEX,CACElmC,KAAMp5C,KAAKu+E,YAAYV,8BACvByB,SAAS,GAEX,CACElmC,KAAMp5C,KAAKu+E,YAAYT,gCACvBwB,SAAS,GAEX,CACElmC,KAAMp5C,KAAKu+E,YAAYR,gCACvBuB,SAAS,GAEX,CACElmC,KAAMp5C,KAAKu+E,YAAYP,kCACvBsB,SAAS,GAEX,CACElmC,KAAMp5C,KAAKu+E,YAAYN,sCACvBqB,SAAS,GAEX,CACElmC,KAAMp5C,KAAKu+E,YAAYL,kCACvBoB,SAAS,GAEX,CACElmC,KAAMp5C,KAAKu+E,YAAYJ,oCACvBmB,SAAS,GAEX,CACElmC,KAAMp5C,KAAKu+E,YAAYF,QACvBiB,SAAS,IAIbt/E,KAAK8yE,iBAAmB,CACtB,CACE15B,KAAMp5C,KAAKu+E,YAAYH,iCACvBkB,SAAS,GAEX,CACElmC,KAAMp5C,KAAKu+E,YAAYF,QACvBiB,SAAS,GAGf,EACD,mBAEDvhF,EAAAA,QACGC,OAAO,gCACPqB,QAAQ,iBAAkB,CACzB,cACCk/E,GAAgB,IAAIgB,EAAehB,IACnC,G,mMClEL,aAAa,4DAGbxgF,QAAQC,OAAO,+BAAgC,CAAC,sBAAuB,G,4QCDvE,MAAMoE,EAIJR,cACE5B,KAAKw/E,MAAQ,IAAIhd,SAASzhC,GAAa/gC,KAAKy/E,SAAW1+C,GACzD,CAKA2+C,uBAAyB,MACzBC,8BAA+B,EAC/BC,sCAAwC,IACxCjxC,aAAe,GACfC,yBAA2B,GAuB3BixC,YAAc,GACdC,kBAAoB,GACpBC,4BAA8B,GAC9BC,sBAAuB,EACvBC,4BAA6B,EAC7BtV,gCAAiC,EACjCuV,wBAAyB,EACzBh8B,oBAAqB,EACrBi8B,4BAA8B,aAC9BC,eAAgB,EAChBC,WAAa,GACbC,UAAY5gF,OAAO6gF,OACnBC,gBAAiB,EACjBC,iBAAmB,GACnBC,uBAAyB,OACzBC,yCAA0C,EAC1CC,wBAAyB,EACzBC,wBAA0B,GAC1B9R,wBAAyB,EACzB+R,YAAc,UACdC,uBAAwB,EACxBC,iBAAkB,EAClBC,iBAAmB,EACnBC,6BAA8B,EAC9BC,yBAA0B,EAE1BC,mBAAqB,GACrBC,oBAAsB,GACtBC,kBAAoB,GACpBC,YAAc,GACdC,sBAAuB,EACvBC,wBAAyB,EACzBC,WAAa,GACbC,YAAc,GACdC,0BAA2B,EAC3BC,oBAAsB,uBACtBC,sBAAwB,EACxBC,oBAAsB,IAGtBC,mBAAqB,GACrBC,iBAAkB,EAClBC,kBAAoB,GAGpBC,oBAAsB,GACtBC,qBAAuB,GACvBC,0BAA2B,EAC3BC,4BAA6B,EAC7BC,sBAAuB,EACvBC,sBAAuB,EAEvBC,gBAAkB,cAClBC,aAAc,EACdC,mBAAoB,EAIpBC,sCAAwC,EAExCC,yBAA0B,EAE1BC,qCAAsC,EAMtCC,sBAA4BzjF,EAC5B0jF,sBAAuB,EACvBC,mBAAoB,EAKpBC,8BAAoC5jF,EAIpC6jF,oBAA0B7jF,EAU1B8jF,eAAgB,EAIhBC,gBAAkB,GAElBC,YAAc,CACZC,iBAAkB,CAChBC,OAAQ,aACR35E,KAAM,6BAIV45E,eAAiB,CACflvE,GAAI,GACJmvE,UAAW,KAIbC,oBAAgC,GAChCC,sBAAsBC,GAEpB,OADc7jF,KAAK2jF,oBAAoBx5D,SAAS05D,EAElD,CAEAC,aAAa19D,GACX,MAAwB,iBAAVA,GAAqD,SAA/BA,EAAMlhB,cAAc4wC,MAC1D,CAGOiuC,cACLF,EACAG,GAGA,IAcIC,EAhBJC,EAAmB,UAAH,6CAAG1nF,EAAAA,iBAAiBk1E,OACpCyS,EAA8B,UAAH,6CAAG,KAQ9B,GANqB,OAAjBA,IACFA,EAAeN,EAAYpiE,QAAQ,iBAAkB,IACrD0iE,EACEA,EAAav9E,OAAO,GAAG1B,cAAgBi/E,EAAan2C,MAAM,IAIpC,iBAAjBg2C,GACNhkF,KAAK4jF,sBAAsBO,GAF9B,CASA,OAAQD,GACN,KAAK1nF,EAAAA,iBAAiB4nF,QACpBH,EAAiBjkF,KAAK8jF,aAAaE,GACnC,MACF,KAAKxnF,EAAAA,iBAAiBsnD,OACpBmgC,EAAiBltC,OAAOitC,GACpB1tD,MAAM2tD,IACRjkF,KAAKqkF,gBAAgBR,EAAaG,GAEpC,MACF,KAAKxnF,EAAAA,iBAAiBk1E,OACtB,QACEuS,EAAiBD,EAIrBhkF,KAAKmkF,GAAgBF,CApBrB,CAqBF,CAEQI,gBAAgBR,EAAqBG,GAC3C,MAAM,IAAIl+E,MACP,4BAA2B+9E,QAAkBG,KAElD,CAEQM,gBACNT,GAGA,IAFAK,EAAmB,UAAH,6CAAG1nF,EAAAA,iBAAiBk1E,OACpCyS,EAAe,UAAH,6CAAG,KAEf,MAAM/9D,EAAQpmB,KAAKukE,SAASsf,GAC5B7jF,KAAK+jF,cAAcF,EAAaz9D,EAAO89D,EAAkBC,EAC3D,CAMOI,yBAAyBhgB,GAE9BvkE,KAAK2jF,oBAAsB,GAE3B,IAAK,MAAO/9E,EAAKwgB,KAAUtQ,OAAOszC,QAAQmb,GACxCvkE,KAAK4F,GAAOwgB,EACZpmB,KAAK2jF,oBAAoBhzE,KAAK/K,EAElC,CAMO4+E,sBAAsBC,GAC3B,MAAM,YACJ3D,EAAW,kBACXoB,EAAiB,uBACjBT,EAAsB,QACtBiD,EAAO,MACP99C,EAAK,QACL+9C,EAAO,uBACPjF,EAAsB,qBACtBsD,EAAoB,kBACpBC,EACA2B,SAAS,4BACP1D,EAA2B,wBAC3BC,EAAuB,wBACvB0D,IAEAJ,EACAzkF,KAAK4jF,sBAAsB,iBAC7B5jF,KAAK8gF,YAAcA,GAGjB9gF,KAAK4jF,sBAAsB,uBAC7B5jF,KAAKkiF,kBAAoBA,GAGvBliF,KAAK4jF,sBAAsB,4BAC7B5jF,KAAKyhF,uBAAyBA,GAG5BzhF,KAAK4jF,sBAAsB,0BAC7B5jF,KAAKgjF,qBAAuBA,GAG1BhjF,KAAK4jF,sBAAsB,uBAC7B5jF,KAAKijF,kBAAoBA,GAGvBjjF,KAAK4jF,sBAAsB,aAC7B5jF,KAAK0kF,QAAUA,GAGb1kF,KAAK4jF,sBAAsB,6BAC7B5jF,KAAKmhF,wBAA0BA,GAG7BnhF,KAAK4jF,sBAAsB,iCAC7B5jF,KAAKkhF,4BAA8BA,GAGjClhF,KAAK4jF,sBAAsB,6BAC7B5jF,KAAK6kF,wBAA0BA,GAG7B7kF,KAAK4jF,sBAAsB,iBAC7B5jF,KAAKuhF,YAAc36C,GAGjB5mC,KAAK4jF,sBAAsB,aAC7B5jF,KAAK2kF,QAAUA,GAGb3kF,KAAK4jF,sBAAsB,4BAC7B5jF,KAAK0/E,uBAAyBA,EAElC,CAMOoF,iBAAiBvgB,GAAU,MA0JhC,GAzJAvkE,KAAKukE,SAAWA,EAMhBvkE,KAAKskF,gBACH,gCACA9nF,EAAAA,iBAAiB4nF,SAEnBpkF,KAAKskF,gBAAgB,gBAAiB9nF,EAAAA,iBAAiB4nF,SACvDpkF,KAAKskF,gBACH,wCACA9nF,EAAAA,iBAAiBsnD,QAEnB9jD,KAAKskF,gBACH,+BACA9nF,EAAAA,iBAAiB4nF,SAEnBpkF,KAAKskF,gBAAgB,mBAAoB9nF,EAAAA,iBAAiB4nF,SAC1DpkF,KAAKskF,gBAAgB,sBAAuB9nF,EAAAA,iBAAiB4nF,SAC7DpkF,KAAKskF,gBAAgB,wBAAyB9nF,EAAAA,iBAAiB4nF,SAC/DpkF,KAAKskF,gBAAgB,2BAA4B9nF,EAAAA,iBAAiB4nF,SAClEpkF,KAAKskF,gBAAgB,2BAA4B9nF,EAAAA,iBAAiB4nF,SAClEpkF,KAAKskF,gBAAgB,0BAA2B9nF,EAAAA,iBAAiB4nF,SACjEpkF,KAAKskF,gBAAgB,wBACrBtkF,KAAKskF,gBAAgB,yBACrBtkF,KAAKskF,gBAAgB,kBACrBtkF,KAAKskF,gBACH,+BACA9nF,EAAAA,iBAAiB4nF,SAGnBpkF,KAAKskF,gBAAgB,iBAAkB9nF,EAAAA,iBAAiB4nF,SACxDpkF,KAAKskF,gBAAgB,iBACrBtkF,KAAKskF,gBAAgB,sBACrBtkF,KAAKskF,gBAAgB,2BACrBtkF,KAAKskF,gBAAgB,uBACrBtkF,KAAKskF,gBACH,qCACA9nF,EAAAA,iBAAiBk1E,OACjB,+BAEF1xE,KAAKskF,gBACH,4BACA9nF,EAAAA,iBAAiBk1E,OACjB,4BAEF1xE,KAAKskF,gBAAgB,uBAAwB9nF,EAAAA,iBAAiB4nF,SAC9DpkF,KAAKskF,gBAAgB,yBAA0B9nF,EAAAA,iBAAiB4nF,SAChEpkF,KAAKskF,gBAAgB,uBAAwB9nF,EAAAA,iBAAiB4nF,SAC9DpkF,KAAKskF,gBACH,iCACA9nF,EAAAA,iBAAiB4nF,SAEnBpkF,KAAKskF,gBAAgB,yBAA0B9nF,EAAAA,iBAAiB4nF,SAChEpkF,KAAKskF,gBAAgB,kBAAmB9nF,EAAAA,iBAAiB4nF,SACzDpkF,KAAKskF,gBAAgB,qBAAsB9nF,EAAAA,iBAAiB4nF,SAC5DpkF,KAAKskF,gBAAgB,iBAAkB9nF,EAAAA,iBAAiB4nF,SACxDpkF,KAAKskF,gBAAgB,oBAAqB9nF,EAAAA,iBAAiB4nF,SAC3DpkF,KAAKskF,gBAAgB,4BACrBtkF,KAAKskF,gBACH,6BACA9nF,EAAAA,iBAAiB4nF,SAEnBpkF,KAAKskF,gBAAgB,iBAAkB9nF,EAAAA,iBAAiB4nF,SACxDpkF,KAAKskF,gBACH,0CACA9nF,EAAAA,iBAAiB4nF,SAEnBpkF,KAAKskF,gBAAgB,gBACrBtkF,KAAKskF,gBAAgB,kBACrBtkF,KAAKskF,gBAAgB,gBACrBtkF,KAAKskF,gBACH,kCACA9nF,EAAAA,iBAAiB4nF,SAEnBpkF,KAAKskF,gBACH,mCACA9nF,EAAAA,iBAAiB4nF,SAEnBpkF,KAAKskF,gBACH,sCACA9nF,EAAAA,iBAAiB4nF,SAEnBpkF,KAAKskF,gBAAgB,oBAErBtkF,KAAKskF,gBACH,gBACA9nF,EAAAA,iBAAiB4nF,QACjB,iBAEFpkF,KAAKskF,gBACH,+BACA9nF,EAAAA,iBAAiBk1E,OACjB,+BAEF1xE,KAAKskF,gBACH,4BACA9nF,EAAAA,iBAAiB4nF,QACjB,4BAEFpkF,KAAKskF,gBACH,gCACA9nF,EAAAA,iBAAiBk1E,OACjB,gCAEF1xE,KAAKskF,gBAAgB,sBAAuB9nF,EAAAA,iBAAiB4nF,SAC7DpkF,KAAKskF,gBAAgB,mBAAoB9nF,EAAAA,iBAAiB4nF,SAC1DpkF,KAAKskF,gBACH,sCACA9nF,EAAAA,iBAAiB4nF,SAEnBpkF,KAAKskF,gBAAgB,yBAA0B9nF,EAAAA,iBAAiB4nF,SAChEpkF,KAAKskF,gBAAgB,yBAA0B9nF,EAAAA,iBAAiB4nF,SAChEpkF,KAAKskF,gBAAgB,wBAAyB9nF,EAAAA,iBAAiB4nF,SAC/DpkF,KAAKskF,gBACH,uCACA9nF,EAAAA,iBAAiB4nF,SAEnBpkF,KAAKskF,gBAAgB,0BAA2B9nF,EAAAA,iBAAiB4nF,SACjEpkF,KAAKskF,gBAAgB,yBAA0B9nF,EAAAA,iBAAiB4nF,SAChEpkF,KAAKskF,gBAAgB,iBAAkB9nF,EAAAA,iBAAiB4nF,SACxDpkF,KAAKskF,gBAAgB,sBACrBtkF,KAAKskF,gBAAgB,yBAA0B9nF,EAAAA,iBAAiB4nF,SAChEpkF,KAAKskF,gBACH,wCACA9nF,EAAAA,iBAAiB4nF,SAEnBpkF,KAAKskF,gBAAgB,6BACrBtkF,KAAKskF,gBAAgB,2BAA4B9nF,EAAAA,iBAAiB4nF,SAGhE7f,EAAgC,uBAChCvkE,KAAK4jF,sBAAsB,2BAE3B5jF,KAAK8vE,uBAAyBvL,EAAgC,uBAG9DA,EAAS,sCACTvkE,KAAK4jF,sBAAsB,gBAE3B5jF,KAAKg+B,WAAaumC,EAAS,qCAAuC,SAIlEA,EAAsC,6BACtCvkE,KAAK4jF,sBAAsB,iCAE3B5jF,KAAKmgF,4BACH5b,EAAsC,4BAAEr/D,eAGxCq/D,EAA4B,kBAAG,CACjC,MAAMn+C,GAASm+C,EAA4B,kBACvCxtB,OAAOguC,SAAS3+D,IAAUA,EAAQ,EACpCpmB,KAAKyjF,eAAeC,UAAYt9D,EAEhCtnB,QAAQC,MACL,gCAA+BqnB,YAAgBpmB,KAAKyjF,eAAeC,YAG1E,CAGEnf,EAAiC,wBACjCvkE,KAAK4jF,sBAAsB,4BAE3B5jF,KAAK0/E,wBAA0Bnb,EAAiC,wBAIhEA,EAAiC,wBACjCvkE,KAAK4jF,sBAAsB,4BAE3B5jF,KAAK0gF,uBACHnc,EAAiC,uBAAEr/D,eAGnClF,KAAK4jF,sBAAsB,6BAC7B5jF,KAAK6gF,wBAA0Btc,EAAkC,yBAAK,IAGpEvkE,KAAK4jF,sBAAsB,4BAC7B5jF,KAAK+uE,uBAAyB/uE,KAAK8jF,aACjCvf,EAAiC,yBAIjCvkE,KAAK4jF,sBAAsB,2BAC7B5jF,KAAK+gF,sBAAwB/gF,KAAK8jF,aAChCvf,EAAgC,wBAIhCvkE,KAAK4jF,sBAAsB,2BAC7B5jF,KAAKglF,sBAAwBhlF,KAAK8jF,aAChCvf,EAAgC,wBAIhCvkE,KAAK4jF,sBAAsB,qBAC7B5jF,KAAKilF,gBAAkB1gB,EAAS,qBAG9BvkE,KAAK4jF,sBAAsB,0BAC7B5jF,KAAKwhF,qBAAuBxhF,KAAK8jF,aAC/Bvf,EAA+B,uBAKjCA,EAA0B,iBAC1BvkE,KAAK4jF,sBAAsB,qBAE3B5jF,KAAKiiF,gBAAkBjiF,KAAK8jF,aAAavf,EAA0B,kBAGjEA,EAAqB,YAAKvkE,KAAK4jF,sBAAsB,gBACvD5jF,KAAKqgF,WAAa9b,EAAqB,YAIvCA,EAAS,iDACTvkE,KAAK4jF,sBAAsB,sBAE3B5jF,KAAKygF,iBACHlc,EAAS,gDAAkD,YAG3DA,EAAwB,eAAKvkE,KAAK4jF,sBAAsB,gBAC1D5jF,KAAK0hF,WAAand,EAAwB,eAI1CA,EAAS,4BACTvkE,KAAK4jF,sBAAsB,4BAE3B5jF,KAAKyhF,uBAAyBzhF,KAAK8jF,aACjCvf,EAAS,6BAKXA,EAA+B,sBAC/BvkE,KAAK4jF,sBAAsB,0BAE3B5jF,KAAK08D,qBAAuB6H,EAA+B,sBAGzDvkE,KAAK4jF,sBAAsB,qBAE3Brf,EAA0B,iBAC+B,UAAzDA,EAA0B,gBAAEnzD,WAAWlM,cAEvClF,KAAKghF,iBAAkB,EAEvBhhF,KAAKghF,iBAAkB,GAKzBzc,EAA2B,kBAC3BvkE,KAAK4jF,sBAAsB,sBAE3B5jF,KAAKihF,iBAAmBpnD,SAAS0qC,EAA2B,mBAG9D,MAAMke,EAA6C,QAA9B,EAAGle,EAA0B,uBAAC,aAA3B,EAA6BzuB,OAKrD,GAJI2sC,IACFziF,KAAKyiF,gBAAkBA,GAGrBle,EAAsB,aAAKvkE,KAAK4jF,sBAAsB,iBACxD5jF,KAAK0iF,YAAc1iF,KAAK8jF,aAAavf,EAAsB,aAEvDA,EAAsC,6BACxC,IACE,MAAM6Y,EAAO1gD,KAAK9zB,MAAM27D,EAAsC,6BAE1D6Y,EAAa,SACfp9E,KAAKsjF,YAAYC,iBAAiBC,OAASpG,EAAa,QAGtDA,EAAW,OACbp9E,KAAKsjF,YAAYC,iBAAiB15E,KAAOuzE,EAAW,KAMxD,CAJE,MAAOlgF,GACP4B,QAAQC,MACN,+DAEJ,CAKFwlE,EAA+B,sBAC/BvkE,KAAK4jF,sBAAsB,0BAE3B5jF,KAAKuiF,qBAAuBviF,KAAK8jF,aAC/Bvf,EAA+B,uBAKjCA,EAA+B,sBAC/BvkE,KAAK4jF,sBAAsB,0BAE3B5jF,KAAKwiF,qBAAuBxiF,KAAK8jF,aAC/Bvf,EAA+B,uBAKjCA,EAAmC,0BACnCvkE,KAAK4jF,sBAAsB,8BAE3B5jF,KAAKqiF,yBAA2BriF,KAAK8jF,aACnCvf,EAAmC,2BAKrCA,EAAqC,4BACrCvkE,KAAK4jF,sBAAsB,gCAE3B5jF,KAAKsiF,2BAA6BtiF,KAAK8jF,aACrCvf,EAAqC,6BAKvCA,EAA4B,mBAC5BvkE,KAAK4jF,sBAAsB,uBAE3B5jF,KAAK2iF,kBAAoB3iF,KAAK8jF,aAAavf,EAA4B,oBAGrEA,EAAsB,aAAKvkE,KAAK4jF,sBAAsB,iBACxD5jF,KAAKklF,aAAe3gB,EAAsB,aAI1CA,EAA8B,qBAC9BvkE,KAAK4jF,sBAAsB,yBAE3B5jF,KAAK+hF,qBAAuBxd,EAA8B,qBAI1DA,EAAgC,uBAChCvkE,KAAK4jF,sBAAsB,2BAE3B5jF,KAAK8hF,sBACHjoD,SAAS0qC,EAAgC,wBAAM,GAIjDA,EAAgD,uCAChDvkE,KAAK4jF,sBAAsB,2CAE3B5jF,KAAK4iF,sCAAwC/oD,SAC3C0qC,EAAgD,wCAKlDA,EAAkC,yBAClCvkE,KAAK4jF,sBAAsB,6BAE3B5jF,KAAK6iF,wBAA0B7iF,KAAK8jF,aAClCvf,EAAkC,0BAKpCA,EAA2B,kBAC3BvkE,KAAK4jF,sBAAsB,qBAE3B5jF,KAAKskF,gBAAgB,mBAAoB9nF,EAAAA,iBAAiB4nF,SAG5DpkF,KAAKskF,gBAAgB,2BAA4B9nF,EAAAA,iBAAiB4nF,SAClEpkF,KAAKskF,gBACH,sCACA9nF,EAAAA,iBAAiB4nF,SAEnBpkF,KAAKskF,gBAAgB,0BAA2B9nF,EAAAA,iBAAiB4nF,SAIjE,MAAMe,EAAa,gBAEjB5gB,EAA8B,qBAC9BvkE,KAAK4jF,sBAAsB,yBAE3B5jF,KAAKqhF,oBACH9c,EAA8B,oBAAEl5D,QAAQ85E,IAAe,EACnD5gB,EAA8B,oBAAEv+B,MAAMm/C,GAAY,GAClD5gB,EAA8B,qBAIpCA,EAA4B,mBAC5BvkE,KAAK4jF,sBAAsB,uBAE3B5jF,KAAKshF,kBACH/c,EAA4B,kBAAEl5D,QAAQ85E,IAAe,EACjD5gB,EAA4B,kBAAEv+B,MAAMm/C,GAAY,GAChD5gB,EAA4B,mBAIlCA,EAA6B,oBAC7BvkE,KAAK4jF,sBAAsB,wBAE3B5jF,KAAKohF,mBAAqB7c,EAA6B,oBAIvDA,EAAwC,+BACxCvkE,KAAK4jF,sBAAsB,mCAE3B5jF,KAAKolF,8BACH7gB,EAAwC,+BAI1CA,EAAoC,2BACpCvkE,KAAK4jF,sBAAsB,+BAE3B5jF,KAAKqlF,0BAA4B9gB,EAAoC,2BAIrEA,EAAS,yCACTvkE,KAAK4jF,sBAAsB,qBAE3B5jF,KAAKqjF,gBAAkB9e,EAAS,yCAGlCvkE,KAAKy/E,UACP,EAGF1hF,EAAAA,QAAQC,OAAO,sBAAsBgjB,SAAS,aAAc,IAAI5e,EAAc,O,4OC1uB9E,MAAMkjF,EACI3rC,OAA6B,CACnC7V,SAAU,KACVyhD,OAAQ,KACRC,oBAAqB,CAAC,GAEhBC,OAAsB,KAE9Bp2C,KAAKsK,GACH35C,KAAK25C,OAAS,IAAK35C,KAAK25C,UAAWA,EACrC,CAEA2qB,kBAIE,OAHKtkE,KAAKylF,SACRzlF,KAAKylF,aAAe,EAAAC,EAAAA,mBAAkB1lF,KAAK25C,SAEtC35C,KAAKylF,MACd,CAEAE,KAAO,CACL,KACC9nD,IACC,MAAM+nD,EAAY5lF,KAAK4lF,UAAUpiF,KAAKxD,MACtC,MAAO,CACL4lF,UAAW,IAAM/nD,EAAGye,KAAKspC,KAC1B,GAKP7nF,QACGC,OAAO,sBACP6nF,SAAS,qBAAsBP,EAAoB,G,+KCxBtD,aAAa,0DAoCb,MAAMQ,EAAmB,CACvBC,YAAa,eACbC,yBAA0B,eAC1BC,qBAAsB,cACtBC,yBAA0B,sBAC1BC,mBAAoB,sBACpBC,iBAAkB,oBAClBC,eAAgB,kBAChBC,uBAAwB,yBACxBC,qBAAsB,oBACtBC,kBAAmB,2BACnBC,0BAA2B,8BAC3BC,cAAe,uBACfC,oBAAqB,6BACrBC,sBAAuB,sBACvBC,0BAA2B,+BAC3BC,eAAgB,uBAChBC,mBAAoB,4BACpBC,aAAc,iBACdC,iBAAkB,2BAClBC,eAAgB,wBAChBC,qBAAsB,wCACtBC,yBAA0B,4CAC1BC,qBAAsB,sBACtBC,eAAgB,kBAChBC,iBAAkB,oBAClBC,iBAAkB,qBAClBC,iCAAkC,uCAClCC,2BAA4B,gCAC5BC,mCACE,4CACFC,8BAA+B,qCAC/BC,8BAA+B,4CAcjC,SAASC,EAAmBC,GAC1B,MAAMC,EAA2B,CAAC,EAC5BC,EAAuC,CAAC,EAC9C,IAAIC,EAUJ,MARgB,CACdC,mBACAC,gBACAC,kBACAC,0BACAC,4BAMF,SAASJ,EAAiBK,GAKxB,MAAM,mBAAEC,KAAuBC,GAAiBF,EAE1C7uC,EAAS,CACbgvC,iBAAkB,sBAAwBF,KACvCC,GAGLR,EAAc,IAAIU,EAAAA,oBAAoB,CACpCjvC,WAGFuuC,EAAYW,kBAEZX,EAAYE,eACd,CAEA,SAASA,EAAcv+E,EAAci/E,GACnC,GAAKZ,EAGL,IACEA,EAAYE,cAAc,CACxBv+E,OACAi/E,cAGF,CADA,MACA,CAEJ,CAEA,SAASC,EACPl/E,EACAm/E,EACAF,GAEA,GAAKZ,EAGL,IACEA,EAAYa,YAAY,CACtBl/E,OACAm/E,UACAF,cAGF,CADA,MACA,CAEJ,CAEA,SAAST,EAAgBt/C,GACvBkgD,EAAclgD,GACdi/C,EAAYj/C,GAAa4pB,KAAKu2B,KAChC,CAEA,SAASD,EAAclgD,GACrBi/C,EAAYj/C,QAAazpC,EACzB2oF,EAAkBl/C,QAAazpC,CACjC,CAEA,SAAS6pF,EAAwBpgD,GAC/B,MAAMqgD,EAAYpB,EAAYj/C,GACxBsgD,EAAyBpB,EAAkBl/C,IAAc,EAE/D,GAAIqgD,EACF,OAAQz2B,KAAKu2B,MAAQE,EAAYC,GAA0B,GAE/D,CAEA,SAASf,EACPv/C,EACAugD,GAEA,MAAMC,EAAazD,EAAiB/8C,GAC9BygD,EAAmBL,EAAwBpgD,GAE7CygD,GAAoBD,IACtBN,EAAclgD,GAMdggD,EAAYQ,EAAYC,EAJL,IACdzB,EAAkB0B,oBAClBH,IAIT,CAGA,SAASI,EAAuB3gD,EAAsB4gD,GACpD,MAAMC,EAAgB3B,EAAkBl/C,IAAc,EACtDk/C,EAAkBl/C,GAAa4gD,EAASC,CAC1C,CAMA,SAASrB,EACP1oF,EACA2sE,GAEA,OAAO,WACL,MAAM4c,EAAYz2B,KAAKu2B,MACvB,OAAOrpF,KAAM,WAAMo6B,MAAMiiB,IACvB,MAAM2tC,EAAcl3B,KAAKu2B,MAAQE,EAOjC,OANmBtkD,MAAMtB,QAAQgpC,GAASA,EAAQ,CAACA,IAExCv3D,SAAS8zB,IAClB2gD,EAAuB3gD,EAAW8gD,EAAY,IAGzC3tC,CAAM,GAEjB,CACF,CACF,CA5IAn+C,EAAAA,QACGC,OAAO,sBACPqB,QAAQ,qBAAsByoF,GAEjCA,EAAmB1xE,QAAU,CAAC,oBAwI7B,O,+RC/ND,SAAS2xE,EAAkBpwD,GAWzB,MAAO,CAAE8xD,eAVc,KAAM,MAI3B,MAAO,CACLlwD,OAJqC,QAA3B,EAAG5B,EAAe6B,iBAAS,aAAxB,EAA0BjlB,GAKvCu1E,aAJmBnyD,EAAeoyD,kBAKnC,EAIL,E,QAlBAhsF,QACGC,OAAO,sBACPqB,QAAQ,oBAAqB0oF,GAEhCA,EAAkB3xE,QAAU,CAAC,iBAc5B,G,mMCRD,aAAa,mDAQb,SAAS4zE,EACPrsD,EACAv7B,EACAu1B,GAEA,MAAMsyD,EAAU,CACdC,sBAAuB,wBACvBC,qBAAsB,wBAGlBC,EAAkBhoF,EAAW47B,WAAa,MAUhD,MARgB,CACdqsD,iBAAkBA,EAClBC,wBAAyBA,EACzBC,oBAAqBA,EACrBC,qBAAsBA,EACtBP,QAASA,GAOX,SAASO,EAAqBC,GAC5B,MAAMC,EAAUL,EAAiBI,GAIjC,OAHIC,GACFJ,EAAwBI,EAAST,EAAQC,sBAAuB,GAAG,GAE9DQ,CACT,CAEA,SAASH,EAAoBG,GACvBA,GACFJ,EAAwBI,EAAST,EAAQE,qBAAsB,GAAG,EAEtE,CAEA,SAASE,EAAiBI,GACxB,GAAIA,EAAWE,eAA8C,KAA7BF,EAAWE,cACzC,OAAOF,EAAWE,aAEtB,CAEA,SAASL,EAAwBK,EAAetoD,EAAS0I,EAAS6/C,GAChE,OAAOjtD,EAAMT,IAAIktD,EAAkB,SAAU,CAC3CS,cAAeF,EACfG,OAAQC,IACRC,QAAS3oD,EACT4oD,QAASlgD,EACTmgD,UAAWN,GAEf,CAIA,SAASG,IACP,OAAOpzD,EAAe6B,UAAUjlB,EAClC,CACF,EAnEa,QAIbxW,QAAQC,OAAO,sBAAsBqB,QAAQ,eAAgB2qF,GAE7DA,EAAa5zE,QAAU,CAAC,QAAS,aAAc,iBA6D9C,G,mMC/ED,aAAa,mDAUb,SAAS+0E,EACP/oF,EACA2L,EACA7P,GAKA,MAHgB,CACdc,IAAKA,GAIP,SAASA,EAAIosF,GAEX,GACEltF,EAAQgjF,6BAEN,SADFhjF,EAAQgjF,4BAA4B9vE,WAAWlM,cAAc4wC,OAE7D,CACA,MAAMu1C,EAAoB,CACxBvnD,SAAUwnD,IACVtsF,IAAKosF,GAGDG,EAAM,IAAIC,eAChBD,EAAIrkD,KAAK,OAAQ9kC,EAAW47B,WAAa,qBACzCutD,EAAIE,iBAAiB,eAAgB,oBACrCF,EAAIG,KAAKhvD,KAAK5zB,UAAUuiF,GAC1B,CAGF,CAEA,SAASC,IACP,MAAMK,EAAgBztF,EAAQ0tF,aAAaC,QACzCzpF,EAAW0pF,qBAEb,IAAKH,EAAe,CAClB,MAAMI,EAAch+E,EAAYuH,MAEhC,OADApX,EAAQ0tF,aAAaI,QAAQ5pF,EAAW0pF,oBAAqBC,GACtDA,CACT,CACA,OAAOJ,CACT,CACF,EApDa,QAIb5tF,QACGC,OAAO,sBACPqB,QAAQ,wBAAyB8rF,GAEpCA,EAAsB/0E,QAAU,CAAC,aAAc,cAAe,UA4C7D,G,mMChCD,aAAa,mDAOb,SAAS/T,EAAcogC,GACrB,IAAIwpD,EACAC,EAAqB,KAEzB,MAAMr+E,EAAU,CACds+E,gBAAiBA,EACjBx/C,eAAgBA,EAChBC,UAAWA,EACX9lC,uCACEA,EACF21B,aAAcA,EACd2vD,wBAAyBA,EACzBC,qBAAsBA,EACtBC,cAAeA,EACfC,eAAgBA,GAKlB,OAFAC,IAEO3+E,EAIP,SAAS0+E,IACP,OAA2B,OAAvBL,CAEN,CAEA,SAASI,IACP,OAAOJ,CACT,CAEA,SAASG,EAAqB9jF,GAC5B2jF,EAAqB3jF,EACrBk6B,EAAcxtB,QAAQi3E,GAAoB,SAAU9hF,QACnC9K,IAAX8K,EAAImK,KACNnK,EAAImK,GAAKnK,EAAI64B,GACb74B,EAAIqiF,SAAWriF,EAAIsiF,SACnBtiF,EAAIkwB,UAAYlwB,EAAIuiF,UACpBviF,EAAIwiF,SAAWxiF,EAAIyiF,SACnBziF,EAAIP,KAAOO,EAAI0/C,MAEZ1/C,EAAIqiF,WACPriF,EAAIkwB,UAAY,KAEpB,GACF,CAGA,SAASmC,EAAa8P,GAOpB,OAAO,IAKT,CAEA,SAAS6/C,EAAwB7/C,EAAS7lC,GAOxC,MAAMC,EAAcD,GAAaA,EAAUE,OAAO,GAAG1B,cAErD,OAAOyB,GAAeA,EAAYo/B,MAAM,SACrB,iCAAkBp/B,WACjC,EACN,CAEA,SAASwlF,EAAgBW,EAAUC,GAEjC,GAAIA,EACF,OAAOA,EAMT,MAIMC,EAJYF,EACfrrE,QAAQ,IAAK,KACbA,QAAQ,YAAa,IACrB5a,cACqBm/B,MAAM,KAAK9iB,OAAOgyC,SAE1C,OAAqB,IAAjB83B,EAAMn8E,QAAgBm8E,EAAM,GAAGn8E,OAAS,EACnCm8E,EAAM,GAAGpmF,OAAO,GAAKomF,EAAM,GAAGpmF,OAAO,GACnComF,EAAMn8E,OAAS,EACjBm8E,EAAM,GAAGpmF,OAAO,GAAKomF,EAAM,GAAGpmF,OAAO,GAE1ComF,EAAMn8E,OAAS,EACVm8E,EAAM,GAAGpmF,OAAO,QADzB,CAGF,CAEA,SAAS+lC,EAAevJ,GACtB,OAAOA,EAAUx8B,OAAO,EAC1B,CAEA,SAASgmC,EAAU/iC,GACjB,OAAOk0D,EAAal0D,EACtB,CAEA,SAAS/C,EAAuCmmF,GAC9C,MAAM/uE,EAAkB,UAIxB,OAFA+uE,EAAUA,EAAQpmF,eAGhB,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IAYL,IAAK,IACH,MAAO,UAXT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UAGT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,UACT,QACE,OAAOqX,EAEb,CAWA,SAASsuE,IACPP,EAAW,CACT,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEJ,CAEA,SAASluB,EAAal0D,GACpB,MAAMm0D,EAAMC,EAAUp0D,GAGtB,OAAOq0D,EADKC,EADGtkC,SAASmkC,EAAK,KAG/B,CAEA,SAASG,EAAWC,GAClB,MAAMC,EAAY,GAClB,IAAIC,EAASF,EACb,KAAOE,EAASD,GACdC,GAAkBD,EAEpB,OAAOxkC,SAASykC,EAClB,CAEA,SAASL,EAAUr0B,GACjB,IAAIh5B,EAAI,EACJgM,EAAI,GACR,KAAOhM,EAAIg5B,EAAM/4B,QACf+L,GAAKgtB,EAAM20B,WAAW3tD,KAAKQ,SAAS,IAEtC,OAAOwL,CACT,CAEA,SAASshD,EAAqB/iC,GAC5B,OAAO8wD,EAAS9wD,EAClB,CACF,EA5Oa,QAGbp9B,QAAQC,OAAO,sBAAsBqB,QAAQ,gBAAiBgD,GAE9DA,EAAc+T,QAAU,CAAC,gBAuOxB,G,kQC9OD,SAAS0nB,EAAgB17B,GAQvB,MAPgB,CACd8qF,aAAcA,EACdC,WAAYA,EACZC,sBAAuBA,EACvB9uD,kBAAmBA,GAOrB,SAAS4uD,EAAaG,GACpB9sF,SAASqmC,MAAQymD,CACnB,CAEA,SAASF,EAAWG,GAClB,IAAI/zE,EAAOhZ,SAASs7C,cAAc,qBAC7BtiC,IACHA,EAAOhZ,SAASC,cAAc,QAC9B+Y,EAAKg0E,IAAM,OACXhtF,SAASitF,KAAKl5C,YAAY/6B,IAE5BA,EAAKk0E,KAAOH,CACd,CAEA,SAASF,IACP,MAAmC,cAA5BhrF,EAAWsrF,YACpB,CAEA,SAASpvD,EAAkBqvD,GACzB,OAAOP,IAA0BO,EAAMvrF,EAAW6iF,eACpD,CACF,E,QAvCAlnF,QACGC,OAAO,sBACPqB,QAAQ,kBAAmBy+B,GAE9BA,EAAgB1nB,QAAU,CAAC,aAmC1B,G,mQC9BD,SAASmwC,EAAoBiY,GAc3B,MAbgB,CACdovB,KAAMA,EACNC,UAAWA,EACXryB,eAAgBA,EAChBrP,aAAcA,EACd2hC,SAAUA,EACVC,gBAAiBA,EACjBC,eAAgBA,EAChB9hC,YAAaA,EACb+hC,MAAOA,EACPC,SAAUA,EACVC,MAAOA,GAKT,SAASP,IACP,OAAoCtuF,MAA7Bk/D,EAAU,GAAG4vB,YACtB,CAEA,SAASP,IACP,MAAO,UAAU3yE,KAAKC,UAAUC,UAClC,CAEA,SAAS+yE,IACP,MAAO,eAAejzE,KAAKC,UAAUC,UACvC,CAEA,SAASogD,IACP,IAAI6yB,GAAQ,EAEZ,IAAW16E,EAYX,OAZWA,EAURwH,UAAUC,WAAaD,UAAUmzE,QAAW5uF,OAAe6uF,OAR1D,sVAAsVrzE,KACpVvH,IAEF,8hDAA8hDuH,KAC5hDvH,EAAEw3B,OAAO,EAAG,OAGdkjD,GAAQ,GAGLA,CACT,CAEA,SAASliC,IACP,MAAO,kBAAkBjxC,KAAKC,UAAUC,UAC1C,CAEA,SAAS0yE,IACP,OAAOpuF,OAAO8uF,WAAW,8BAA8BliD,OACzD,CAEA,SAAS0hD,IACP,OAAOxyB,KAAoBsyB,GAC7B,CAEA,SAASC,IACP,OAAQvyB,KAAoBsyB,GAC9B,CAEA,SAAS5hC,IACP,OAAOC,KAAkB6hC,GAC3B,CAEA,SAASC,IACP,OAAO9hC,KAAkB2hC,GAC3B,CAEA,SAASI,IACP,IAAIG,GAAQ,EAEZ,IAAW16E,EAIX,OAJWA,EAERwH,UAAUC,UADP,sBAAsBF,KAAKvH,KAAI06E,GAAQ,GAGtCA,CACT,CACF,E,QAtFAtwF,QACGC,OAAO,sBACPqB,QAAQ,sBAAuBknD,GAElCA,EAAoBnwC,QAAU,CAAC,YAkF9B,G,gVC/Fc,MAAMq4E,EAGnB7sF,YAAoB8sF,GAAsC,KAAtCA,UAAAA,EAClB1uF,KAAK2uF,OACP,CAEO1mC,WAAW7nB,GAChBpgC,KAAK4uF,KAAK3mC,WAAW7nB,EACvB,CAEWyuD,aACT,OAAO7uF,KAAK4uF,KAAKC,MACnB,CAEOF,QACL3uF,KAAK4uF,KAAO,IAAI5uF,KAAK0uF,SACvB,EACD,YAED3wF,EAAAA,QACGC,OAAO,sBACPqB,QAAQ,cAAe,CACtB,YACCyvF,GAAyC,IAAIL,EAAYK,IACzD,G,kQClBL,SAASC,EAAiBlxD,GACxB,MAAMixD,EACIE,kBAAoB,EACpBC,qBAAuB,EAE3BJ,aACF,OAAO7uF,KAAKgvF,mBAAqBhvF,KAAKivF,oBACxC,CAEOhnC,WAAWquB,GAChB,GAAIxxC,MAAMtB,QAAQ8yC,GAAO,CACvB,MAAM4Y,EAAoC5Y,EAC1Ct2E,KAAKgvF,mBAAqBE,EAAar+E,OACvCgtB,EAAGsG,IAAI+qD,GAAchuD,SACnB,IAAOlhC,KAAKivF,sBAAwBC,EAAar+E,QAErD,KAAO,CACL,MAAMs+E,EAAiC7Y,EACvCt2E,KAAKgvF,oBACLG,EAAYjuD,SAAQ,KAClBlhC,KAAKivF,sBAAsB,GAE/B,CACF,EAGF,OAAOH,CACT,E,QAEA/wF,QACGC,OAAO,sBACPqB,QAAQ,YAAa,CAAC,KAAM0vF,GAAmB,G,iTCnBnC,MAAMK,EACnBxtF,YACU+7B,EACAv7B,GACR,KAFQu7B,MAAAA,EAA2B,KAC3Bv7B,WAAAA,CACP,CAIHitF,YAAYp7E,GACV,OAAOjU,KAAK29B,MAAMyrC,KAChBppE,KAAKoC,WAAW47B,WAAc,cAC9B/pB,EAEJ,CAEAq7E,aAAar7E,GACX,OAAOjU,KAAK29B,MAAMT,IAChBl9B,KAAKoC,WAAW47B,WAAc,cAC9B/pB,EAEJ,CAEAs7E,eAAeC,EAAYC,GACzB,OAAOzvF,KAAK29B,MAAM,CAChB8O,IAAKzsC,KAAKoC,WAAW47B,WAAa,cAClC0xD,OAAQ,SACRnnF,KAAM,CACJinF,WAAYA,EACZC,kBAAmBA,GAErBE,QAAS,CACP,eAAgB,mCAGtB,CAEAC,gBAAiC,IAAnBpvD,EAAY,UAAH,8CACrB,OAAOxgC,KAAK29B,MACT3nB,IACChW,KAAKoC,WAAW47B,WAAa,aAC7B,CACEwC,UAAWA,IAAa,IAG3BvG,MAAMwG,IACLzgC,KAAK6vF,iBAAmB9xF,EAAAA,QAAQ+iC,KAAKL,EAASl4B,KAAKi5C,WAC5C/gB,EAASl4B,KAAKi5C,YAE3B,CAEAsuC,sBAAsBC,GACpB,OAAO/vF,KAAK29B,MACT3nB,IACChW,KAAKoC,WAAW47B,WACd,wCACA+xD,GAEH91D,MAAM46B,GACEA,EAAItsD,MAEjB,EACD,YAEDxK,EAAAA,QACGC,OAAO,sBACPqB,QAAQ,qBAAsB,CAC7B,QACA,aACA,CAACs+B,EAAqBv7B,IACpB,IAAIgtF,EAAmBzxD,EAAOv7B,IAC/B,O,kWCvEE,MAAM4tF,EACXpuF,YACU+7B,EACAv7B,EACAo1B,EACAI,GACR,KAJQ+F,MAAAA,EAA2B,KAC3Bv7B,WAAAA,EAA+B,KAC/Bo1B,wBAAAA,EAAyD,KACzDI,YAAAA,CACP,CAEHgC,eACE9B,EACAiC,EACAZ,GAEA,IADA82D,EAAe,UAAH,8CAEZ,MAAMxjD,EAAO,GAAEzsC,KAAKoC,WAAW47B,sBAAsBlG,KAAqBiC,kBAAgCk2D,IAE1G,OAAOjwF,KAAK29B,MAAMyrC,KAAK38B,EAAKtT,EAC9B,CAEA0D,gBACE/E,EACAiC,GAGA,IAFAyG,EAAY,UAAH,8CACT0vD,EAA0B,UAAH,8CAEvB,MAAMzjD,EACH,GAAEzsC,KAAKoC,WAAW47B,sBAChBlG,KAAqBiC,6BAA2Cm2D,IAErE,OAAOlwF,KAAK29B,MAAM3nB,IAAgBy2B,EAAK,CAAEjM,cAAavG,MAAMwG,IAC1D,MAAM0vD,EAAWnwF,KAAKw3B,wBAAwB44D,qBAC5C3vD,EAASl4B,MAWX,OATA4nF,GACEA,EAASl7E,SAASkkB,IAChBA,EAAQsB,OACNtB,EAAQsB,MAAMxlB,SACXqkB,GACEA,EAAE20B,aAAejuD,KAAK43B,YAAYu2B,gBAAgB70B,EAAE8zB,SACxD,IAGA+iC,CAAQ,GAEnB,CAEA7rB,qBACE+rB,EACAl4D,EACA4B,EACAyG,GAEArI,EAAgBA,IAAiB,EACjC,MAAMsI,QAAiBzgC,KAAK29B,MAAM3nB,IAC/B,GAAEhW,KAAKoC,WAAW47B,sCAAsCqyD,mBAA4Bl4D,qBAAiC4B,IACtH,CAAEyG,UAAWA,IAAa,IAE5B,GAAIxgC,KAAKoC,WAAWkuF,yBAA2B7vD,EAASl4B,KAAM,CAC5D,MAAMgoF,EAAgB9vD,EAASl4B,KAAKtL,WACjCwnC,GACqB,aAApBA,EAAM/9B,WAA4B+9B,EAAM+X,cAAgBC,EAAAA,UAAUC,OAElE6zC,GAAiB,GACnB9vD,EAASl4B,KAAK6yB,OAAOm1D,EAAe,EAExC,CACA,OAAO9vD,EAASl4B,IAClB,EACD,sBAEDxK,EAAAA,QACGC,OAAO,sBACPqB,QAAQ,oBAAqB,CAC5B,QACA,aACA,0BACA,cACA,CAACs+B,EAAOv7B,EAAYo1B,EAAyBI,IAC3C,IAAIo4D,EACFryD,EACAv7B,EACAo1B,EACAI,IAEH,O,+XCxGE,MAAM44D,EACHC,iBAAoC,CAC1CC,OAAQ,IACRC,KAAM,GACN9mF,KAAM,IAGD+mF,gBAEL,OAAOC,EAAAA,UACT,CASOC,kBAAkBH,GAGvB,OAAQE,EAAAA,WAAmBxtE,MAAMmZ,GAAuBA,EAAEm0D,MAAQA,GACpE,CASO7+B,YAAY38C,GACjB,cAAeA,GACb,IAAK,SACH,OAAOA,EACT,IAAK,SAAU,CACb,MAAM47E,EAAU57E,EAAgB4wB,MAAM,YACtC,OAAIgrD,GAAUA,EAAOlgF,QACXkgF,EAAOhkD,KAAK,IAEblf,GAEX,CACA,QACE,OAAOA,IAEb,CAEOmjE,WAAW77E,EAAW87E,GAC3B,GACO,iBADQ97E,EAEX,OAAOnV,KAAKkxF,iBAAiB/7E,EAAM87E,EAEzC,CAEQC,iBAAiB7T,EAAa4T,GACpC,MAAMptC,EACJ7jD,KAAK8wF,kBAAkBG,IAAiBjxF,KAAKywF,iBACzCU,EAAe,IAAIC,KAAKC,aAAa,QAAS,CAClDC,sBAAuB,IACtB9vD,OAAOtyB,KAAK0E,IAAIypE,IAGnB,MAAQ,GAFKA,EAAM,EAAI,IAAM,KAEZx5B,EAAS6sC,SAASS,KAAgBttC,EAAS8sC,MAC9D,EACD,oBAED5yF,EAAAA,QACGC,OAAO,sBACP6P,QAAQ,kBAAmB2iF,EAAiB,G,qQC9D/C,SAAS5yD,EACPx7B,EACAu7B,GAEA,MAAMI,EAAsB37B,EAAW47B,WAAa,iBASpD,MAPgB,CACdmD,qBAAsBA,EACtBowD,uBACA72C,aACAD,mBAMF,SAASA,IACP,OAAO9c,EACJ3nB,IAAI+nB,EAAsB,oBAAqB,CAAEyC,WAAW,IAC5DvG,MAAMwG,GAAaA,EAASl4B,MACjC,CAEA,SAASmyC,IACP,OAAQ62C,KAAgC,WAAMt3D,MAAM8/B,IAClD,MAAMr5B,EAAgBq5B,EAAQ98D,WAAW0jC,GAAiB,OAAXA,EAAE92B,OAC3C+2B,EAAsBm5B,EAAQ98D,WACjC0jC,GAAiB,qBAAXA,EAAE92B,OAQX,OALI62B,GAAiB,GAAKE,EAAsB,EAC9Cm5B,EAAQ3+B,OAAOsF,EAAe,GACrBE,GAAuB,GAChCm5B,EAAQ3+B,OAAOwF,EAAqB,GAE/Bm5B,CAAO,GAElB,CAEA,SAASw3B,EAAqBjxD,GAC5B,MAAMqZ,EAAS,CACbnZ,WAAW,KAFkC,UAAH,6CAAG,CAAC,GAKhD,OAAO7C,EACJ3nB,IAAK,GAAE+nB,aAA+BuC,IAAUqZ,GAChD1f,MAAMwG,GAAaA,EAASl4B,MACjC,CAEA,SAAS44B,EACP54B,EACAy2B,EACAa,GAEA,IADA2xD,EAAyB,UAAH,8CAElB/yD,EAAe,GACnB,MAAMkR,OAAyBrwC,IAAfiJ,EAAKymC,MA2BrB,GAzBAvQ,EAAa9tB,KAAK,CAChB9G,KAAMpN,EAAAA,oBAAoB+8E,kBAC1B5tE,KAAM+tE,EAAAA,yBAAyBH,kBAC/B/uD,KAAM,SAGRgU,EAAa9tB,KAAK,CAChB9G,KAAMpN,EAAAA,oBAAoBg9E,eAC1B7tE,KAAM+tE,EAAAA,yBAAyBF,eAC/BhvD,KAAM,SAGJ+mE,IACF/yD,EAAa9tB,KAAK,CAChB9G,KAAMpN,EAAAA,oBAAoBy9C,qBAC1BtuC,KAAM+tE,EAAAA,yBAAyBE,yBAC/BpvD,KAAM,SAERgU,EAAa9tB,KAAK,CAChB9G,KAAMpN,EAAAA,oBAAoB09C,kBAC1BvuC,KAAM+tE,EAAAA,yBAAyBG,sBAC/BrvD,KAAM,UAINliB,EAAK64B,WAAa74B,EAAKymC,MAAO,CAChC,GAAIW,EACF,IAAK,MAAMnT,KAAKj0B,EAAKymC,MAAO,CAC1B,GAAIxS,EAAEjoB,KAAOyqB,EAAMzqB,GACjB,MAEW,IAAXioB,EAAE/R,MACS,IAAX+R,EAAE/R,MACS,IAAX+R,EAAE/R,MACS,IAAX+R,EAAE/R,MAGFgU,EAAa9tB,KAAK,CAChB9G,KAAM2yB,EAAEjoB,GAAK,GACb3I,KAAM4wB,EAAEiX,OACRhpB,KAAM+R,EAAE/R,MAGd,MAEA,IAAK,MAAM6O,KAAK/wB,EAAK64B,UAAW,CAC9B,GAAI9H,EAAEzvB,OAASm1B,EAAMn1B,KACnB,OAEAyvB,EAAE7O,OAASu9C,EAAAA,cAAct4B,MACzBpW,EAAE7O,OAASu9C,EAAAA,cAAch1B,QACzB1Z,EAAE7O,OAASu9C,EAAAA,cAAcwF,aACzBl0C,EAAE7O,OAASu9C,EAAAA,cAAcyF,mBACzBn0C,EAAE7O,OAASu9C,EAAAA,cAAc/0B,UACzB3Z,EAAE7O,OAASu9C,EAAAA,cAAcgK,OACxB14C,EAAE7O,OAASu9C,EAAAA,cAAcz1B,QAAUjZ,EAAEmZ,eAEtChU,EAAa9tB,KAAK,CAChB9G,KAAMyvB,EAAEzvB,KACR+B,KAAM0tB,EAAEka,YACR/oB,KAAM6O,EAAE7O,MAGd,CAIEoV,GAAyB,SAAbA,IACdpB,EAAeA,EAAavb,QAAQwc,GAAMA,EAAEjV,OAASoV,IAEzD,CAEA,OAAOpB,CACT,CACF,E,QAzIA1gC,QACGC,OAAO,sBACPqB,QAAQ,kBAAmBu+B,GAE9BA,EAAgBxnB,QAAU,CAAC,aAAc,QAqIxC,O,wSCvGM,MAAMy6E,EAAgC,CAC3C,CACEF,KAAM,MACN9mF,KAAM,UACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,MACN6mF,OAAQ,OAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,YACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,SACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,wBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,oBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,sBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,mBACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,OAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,mBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,WACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,YACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,QACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,mBACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,oBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,wBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,oBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,uBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,qBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,oBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,aACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,mBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,gCACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,OAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,oBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,QACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,yBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,cACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,YACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,SACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,aACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,UACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,SACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,UACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,mBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,SACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,SACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,8BACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,cACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,qBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,MACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,QACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,mBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,MACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,MACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,MACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,cACN6mF,OAAQ,OAEV,CACEC,KAAM,MACN9mF,KAAM,SACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,QACN6mF,OAAQ,OAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,oBACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,UACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,UACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,sBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,oCACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,SACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,qBACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,cACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,QACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,aACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,SACN6mF,OAAQ,OAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,UACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,MACN6mF,OAAQ,OAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,QACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,cACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,OAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,qBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,QACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,cACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,QAEV,CACEC,KAAM,MACN9mF,KAAM,mBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,QACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,mBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,QACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,yBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,uBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,YACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,WACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,YACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,oBACN6mF,OAAQ,OAEV,CACEC,KAAM,MACN9mF,KAAM,SACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,qBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,UACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,6BACN6mF,OAAQ,OAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,eACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,yBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,UACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,aACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,uBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,gBACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,gDACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,UACN6mF,OAAQ,MAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,cACN6mF,OAAQ,KAEV,CACEC,KAAM,MACN9mF,KAAM,iBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,kBACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,oDACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,sDACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,0DACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,4DACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,mDACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,oEACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,OACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,YACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,WACN6mF,OAAQ,IAEV,CACEC,KAAM,MACN9mF,KAAM,SACN6mF,OAAQ,KAEV,iB,mQCx3BF,SAASe,EACPvzF,EACAwzF,EACAC,EACAh6D,EACAkG,GAGA,MAAM+zD,EAAmB,uBAAuB12E,KAC9Chd,EAAQid,UAAUC,WAepB,MAbgB,CACdy2E,6BAA8BA,EAC9BC,kBAAmBA,EACnBC,kBAAmBA,EACnBC,kBAAmBA,EACnBC,oBAAqBA,EACrBC,WAAYA,EACZC,cAAeA,EACfC,0BAA2BA,EAC3BC,yBAA0BA,EAC1BC,iBAAkBA,GAOpB,SAAST,EAA6BtpF,GAEpC,MAAgB,cAATA,GAAiC,YAATA,QAA+BjJ,IAATiJ,CACvD,CAEA,SAASupF,EAAkBv6D,EAAQg7D,GACjC,MAAM1uF,EAAiC,CACrC+iC,MAAO,iBACPvE,QAAS,uDACTmwD,UAAW,uBACXhxE,SAAU,0BACVixE,iBAAkB,GAClBC,kBAAmB,cACnBC,gBAAiB,GAMnB,OAFA50F,EAAAA,QAAQ+B,OAAO+D,EAAS0uF,GAEjBb,EAASkB,YAAY,CAC1BhB,iBAAkBA,EAClBiB,WAAW,EACXL,UAAW3uF,EAAQ2uF,UACnBhxE,SAAU3d,EAAQ2d,SAClBE,MAAO6V,EACPyE,WAAY,CACV,WACA,SAAU7a,GACRnhB,KAAK6D,QAAUA,EACf7D,KAAK4mC,MAAQ/iC,EAAQ+iC,MACrB5mC,KAAKqiC,QAAUx+B,EAAQw+B,QACvBriC,KAAKyyF,iBAAmB5uF,EAAQ4uF,iBAChCzyF,KAAK0yF,kBAAoB7uF,EAAQ6uF,kBACjC1yF,KAAK8yF,cAAgBjvF,EAAQ8uF,iBAAmB,EAEhD3yF,KAAK+yF,gBAAkB,KACrB5xE,GAAS,KACPnhB,KAAKgzF,qBACDhzF,KAAKgzF,oBAAsB,EAC7BhzF,KAAK8yF,eAAgB,EAErB9yF,KAAK+yF,iBACP,GACC,IAAK,EAGNlvF,EAAQ8uF,gBAAkB,IAC5B3yF,KAAKgzF,mBAAqBnvF,EAAQ8uF,gBAClC3yF,KAAK+yF,kBAET,GAEF3rD,aAAc,QAElB,CAEA,SAAS8qD,EAAWe,GAClB,MAAMC,EAAuB,CAC3BtB,iBAAkBA,EAClBY,UAAW,uBACXW,gBAAiB,GACjBN,WAAW,EACXzrD,aAAc,QAOhB,OAJArpC,EAAAA,QAAQ+B,OAAOozF,EAAsBD,GAEtBvB,EAASxqD,KAAKgsD,GAEfE,aAAan5D,MAAK,SAAU1xB,GACxC,OAAOA,EAAK6d,KACd,GACF,CAEA,SAAS2rE,EAAkBQ,GACzB,MAAMc,EAAiB,CACrBzB,iBAAkBA,EAClBl0C,WAAY,iBACZrb,aAAS/iC,EACTg0F,SAAKh0F,GAIPvB,EAAAA,QAAQ+B,OAAOuzF,EAAgBd,GAE/B,MAAMC,EACkBlzF,MAAtB+zF,EAAeC,IACX,iCACA,uBAEN5B,EAASxqD,KAAK,CACZsrD,UAAWA,EACXK,WAAW,EACXrxE,SAAU,oCACVwa,WAAY,CACV,WACA,SAAU01D,GACR,MAAMxgC,EAAOlxD,KAKb,SAASwmC,IACPkrD,EAAS6B,UACX,CALAriC,EAAK98C,MAAQi/E,EACbniC,EAAK1qB,MAAQA,CAKf,GAEFY,aAAc,QAElB,CAEA,SAAS4qD,EACPtwE,EACA8xE,EACAC,EACAC,EACAC,EACAC,EACAC,GAOAnyE,EAAMiyE,OAASA,EACfjyE,EAAMkyE,YAAcA,EACpBlyE,EAAMmyE,kBAAoBA,EAE1B,MAAM34B,EAAOw4B,GAAgB,8BAa7B,OAZsBhC,EAASxqD,KAAK,CAClC0qD,iBAAkBA,EAClBY,UAAW,uBACXW,gBAAiB,0CACjBN,WAAW,EACXrxE,SAAU05C,EACVl/B,WAAYy3D,EACZrsD,aAAc,OACd1lB,MAAOA,EACPnZ,KAAMirF,IAGaJ,aAAan5D,MAAK,SAAU1xB,GAC/C,OAAOA,EAAK6d,KACd,GACF,CAEA,SAAS6rE,EAAoBvwE,EAAOoyE,GAYlC,OAXwBpC,EAASxqD,KAAK,CACpC0qD,iBAAkBA,EAClBY,UAAW,kDACXK,WAAW,EACXrxE,SAAU,gCACVwa,WAAY,8BACZoL,aAAc,OACd1lB,MAAOA,EACPnZ,KAAMurF,IAGeV,aAAan5D,MAAK,SAAU1xB,GACjD,OAAOA,EAAK6d,KACd,GACF,CAEA,SAAS+rE,EAAczwE,EAAOqyE,GAC5B,OAAOrC,EAASkB,YAAY,CAC1BhB,iBAAkBA,EAClBY,UAAW,yCACXK,WAAW,EACXtqF,KAAM,CAAEyrF,aAAcD,GACtBvyE,SACE,oEACFE,MAAOA,GAEX,CAGA,SAAS0wE,EAA0B1wE,EAAOpH,EAAMupD,GAc9C,OAbe6tB,EAASxqD,KAAK,CAC3B0qD,iBAAkBA,EAClBY,UAAW,uBACXK,WAAW,EACXrxE,SACE,mEACFE,MAAOA,EACPsa,WAAY,kCACZoL,aAAc,OACd7+B,KAAM,CAAE+R,KAAMA,EAAMupD,SAAUA,GAC9BowB,iBAAiB,IAGLb,aAAan5D,MAAK,SAAU1xB,GACxC,OAAOA,EAAK6d,KACd,GACF,CAEA,SAASisE,EAAyB3wE,GAChC,IAAIwyE,GAAsB,EAa1B,OAV+D50F,MAA7Dq4B,EAAew8D,gBAAgB,6BAE/BD,GAAsB,GAG6B50F,MAAjDqyF,EAAU37E,IAAI,kCAChBk+E,GAAsB,GAInBA,EAyBEr2D,EAAGye,OAxBDo1C,EACJkB,YAAY,CACXhB,iBAAkBA,EAClBY,UAAW,uBACXK,WAAW,EACXrxE,SACE,8EACFE,MAAOA,IAERuY,MACC,SAAUm6D,GAOR,OANIA,GAGFzC,EAAUj9E,IAAI,gCAAgC,GAEhDijB,EAAe08D,gBAAgB,2BAA2B,GACnDx2D,EAAGye,MACZ,IACA,WACE,OAAOze,EAAG4kC,QACZ,GAIR,CAEA,SAAS6vB,IACP,OAAOZ,EAAS4C,gBAClB,CACF,E,QAjSAv2F,QAAQC,OAAO,sBAAsBqB,QAAQ,gBAAiBoyF,GAY9DA,EAAcr7E,QAAU,CACtB,UACA,WACA,YACA,iBACA,KAgRD,G,iWCtSc,MAAMm+E,EAEnB3yF,YACU+7B,EACAv7B,EACAw1B,EACAJ,GACR,KAJQmG,MAAAA,EAA2B,KAC3Bv7B,WAAAA,EAA+B,KAC/Bw1B,YAAAA,EAAiC,KACjCJ,wBAAAA,EAERx3B,KAAKw0F,QAAUx0F,KAAKoC,WAAW47B,WAAa,YAC9C,CAEAy2D,2BAA2BC,EAAyBjqE,GAClD,OAAOzqB,KAAK29B,MACT3nB,IACE,GAAEhW,KAAKw0F,2BAA2BE,UAA0BjqE,KAE9DwP,MAAMwG,IACL,MAAMlgC,EAAWkgC,EAASl4B,KAC1BvI,KAAK43B,YAAY+8D,SACfp0F,EAASgI,KACThI,EAASk7B,SACTl7B,EAASq0F,SACV,GAEP,CAEAC,gCAAgCH,GAC9B,OAAO10F,KAAKy0F,2BACVC,EACAI,EAAAA,QAAaC,qBAEjB,CAEAC,8BAA8BN,GAC5B,OAAO10F,KAAKy0F,2BACVC,EACAI,EAAAA,QAAaG,mBAEjB,CAEAC,sCAAsCR,GACpC,OAAO10F,KAAKy0F,2BACVC,EACAI,EAAAA,QAAaK,2BAEjB,CAEAC,mBAAmBxtC,EAAmBytC,GACpC,OAAOr1F,KAAK29B,MACT3nB,IACE,GAAEhW,KAAKw0F,2BAA2B5sC,YAAsBytC,KAE1Dp7D,MAAMwG,GACEA,EAASl4B,MAEtB,CAEA+sF,QAAQpnD,EAAcmnD,GACpB,OAAOr1F,KAAK29B,MACT3nB,IACE,GAAEhW,KAAKw0F,gBAAgBtmD,YAAiBmnD,KAE1Cp7D,MAAMwG,GACEA,EAASl4B,MAEtB,CAEAs0B,gBAAgBqR,EAAcmnD,GAC5B,MAAM5oD,EACH,GAAEzsC,KAAKoC,WAAW47B,gCAChBjG,EAAAA,QAAkBC,QAAQkW,aAAkBmnD,IAEjD,OAAOr1F,KAAK29B,MAAM3nB,IAAgBy2B,GAAKxS,MAAMwG,IAC3C,MAAM0vD,EAAWnwF,KAAKw3B,wBAAwB44D,qBAC5C3vD,EAASl4B,MAWX,OATA4nF,GACEA,EAASl7E,SAASkkB,IAChBA,EAAQsB,OACNtB,EAAQsB,MAAMxlB,SACXqkB,GACEA,EAAE20B,aAAejuD,KAAK43B,YAAYu2B,gBAAgB70B,EAAE8zB,SACxD,IAGA+iC,CAAQ,GAEnB,CAEAoF,gBAAgBnoC,EAAcioC,GAC5B,OAAOr1F,KAAK29B,MACT3nB,IAAK,GAAEhW,KAAKw0F,eAAepnC,YAAiBioC,KAC5Cp7D,MAAMwG,GACEA,EAASl4B,MAEtB,CAEAitF,gBAAgBtnD,EAAczjB,GAC5B,OAAOzqB,KAAK29B,MACT3nB,IAAwB,GAAEhW,KAAKw0F,gBAAgBtmD,UAAezjB,KAC9DwP,MAAMwG,IACL,MAAMlgC,EAAWkgC,EAASl4B,KAC1BvI,KAAK43B,YAAY+8D,SACfp0F,EAASgI,KACThI,EAASk7B,SACTl7B,EAASq0F,SACV,GAEP,CAEAa,qBAAqB7tC,EAAmBn9B,GACtC,OAAOzqB,KAAK29B,MACT3nB,IACE,GAAEhW,KAAKw0F,qBAAqB5sC,UAAoBn9B,KAElDwP,MAAMwG,IACL,MAAMlgC,EAAWkgC,EAASl4B,KAC1BvI,KAAK43B,YAAY+8D,SACfp0F,EAASgI,KACThI,EAASk7B,SACTl7B,EAASq0F,SACV,GAEP,CAEAc,0BAA0B9tC,GACxB,OAAO5nD,KAAKy1F,qBACV7tC,EACAktC,EAAAA,QAAaC,qBAEjB,CAEAY,wBAAwB/tC,GACtB,OAAO5nD,KAAKy1F,qBACV7tC,EACAktC,EAAAA,QAAaG,mBAEjB,CAEAW,gCAAgChuC,GAC9B,OAAO5nD,KAAKy1F,qBACV7tC,EACAktC,EAAAA,QAAaK,2BAEjB,EACD,YACDp3F,QACGC,OAAO,sBACPqB,QAAQ,qBAAsB,CAC7B,QACA,aACA,cACA,0BACA,CACEs+B,EACAv7B,EACAw1B,EACAJ,IAEA,IAAI+8D,EACF52D,EACAv7B,EACAw1B,EACAJ,IAEH,G,uKChKL,WAQE,SAASq+D,EAAiBC,GAExB,IAAIC,GAAe,EAMnB,MAJc,CAEZh3F,MAAOA,GAKT,SAASA,EAAMi3F,EAAWC,KAItBD,EAAUp0F,aACqB,uBAA9Bo0F,EAAUp0F,YAAYiI,MACS,0BAA9BmsF,EAAUp0F,YAAYiI,MACQ,KAA9BmsF,EAAUp0F,YAAYiI,OAKtBksF,GAGFD,EAAK/2F,MAAMm3F,MAAMJ,EAAMK,UAE3B,CACF,CAnCAp4F,QACGC,OAAO,sBACPqB,QAAQ,mBAAoBw2F,GAE/BA,EAAiBz/E,QAAU,CAAC,OAgC7B,CAtCD,EAsCK,O,+NC7DL,aAAa,mDAYb,SAASkwC,EACPlkD,EACAu7B,GAEA,MAAMy4D,EAAmBh0F,EAAW47B,WAAa,iBAC3Cq4D,EAAsBj0F,EAAW47B,WAAa,OAMpD,MAJgB,CACd+pB,mBAKF,SAASA,EACPuuC,EACAC,GAEA,MAAMC,GACHF,EAAgBD,EAAsBD,GACvC,kBACF,OAAOz4D,EAAMyrC,KAA2BotB,EAAKD,GAASt8D,MAAMwG,GACnDA,EAASl4B,MAEpB,CACF,EApCa,QAQbxK,QAAQC,OAAO,sBAAsBqB,QAAQ,eAAgBinD,GAE7DA,EAAalwC,QAAU,CAAC,aAAc,QA0BrC,G,0OCpCD,aA2DA,SAASwhB,EACPiG,EACAF,EACAv7B,EACA2L,EACA2pB,EACAx5B,EACAijB,EACAwW,EACA4uB,GAEA,MAAMkwC,EAAkB,QACxB,IAAIC,EACAC,EACAC,EAoCJ,MAlCgB,CACdz0B,mBAAoBA,EACpB00B,gBAAiBA,EACjBtpC,YAAaA,EACbupC,aAAcA,EACdnC,SAAUA,EACVoC,aAAcA,EACd9+B,cAAeA,EACf++B,aAAcA,EACd97D,WAAYA,EACZwyB,WAAYA,EACZlyB,gBAAiBA,EACjBiyB,WAAYA,EACZK,gBAAiBA,EACjB+C,kBAAmBA,EACnBomC,yBAA0BA,EAC1BC,oBAAqBA,EACrBC,sBAAuBA,EACvBhpC,gBAAiBA,EACjB7yB,QAASA,EACT87D,kCAAmCA,EACnCC,oBAAqBA,EACrBC,oBAAqBA,EACrBC,gBAAiBA,EACjBC,YAAaA,EACbC,mBAAoBA,EACpBC,sCACEA,EACFC,yBAA0BA,EAC1B5pC,yBAA0BA,EAC1BJ,oBAAqBA,EACrBY,iBAAkBA,GASpB,SAAS6oC,IACPj2E,GAAS,KACP,MAAM4qB,EAAWxrC,SAASssC,uBACxB,iCAEI+qD,EAAqB,WACzB,MAAMC,EAAU73F,KAAK+0C,aAAa,YAClC+hD,EAAc,GAAE10F,EAAW47B,aAAa65D,KAAW9sD,SAAS/P,IAC1D25D,EAAS35D,EAAKzyB,KAAMyyB,EAAKS,SAAUT,EAAK45D,SAAS,GAErD,EAEA,IAAK,IAAIhkF,EAAI,EAAGA,EAAIm7B,EAASl7B,OAAQD,KACuB,IAAtD7S,QAAQ6jB,QAAQmqB,EAASn7B,IAAIrI,KAAK,kBAEpCwjC,EAASn7B,GAAGknF,oBAAoB,QAASF,GAAoB,GAC7D7rD,EAASn7B,GAAGy/B,iBAAiB,QAASunD,GAAoB,GAG1D75F,QAAQ6jB,QAAQmqB,EAASn7B,IAAIrI,KAAK,gBAAgB,GAEtD,GAEJ,CAEA,SAAS45D,EAAmB1mC,GAC1B,OAAOA,EAAW,IAAM1tB,EAAYuH,KACtC,CAEA,SAASgmB,EAAQ/B,EAAQwK,GACvB4yD,EAAUp9D,EACVq9D,EAAc7yD,CAChB,CAEA,SAASoqB,EAAgBf,GACvB,OAD0C,UAAH,8CAE7B,GAAEhrD,EAAW47B,kCAAkCovB,IAEjD,GAAEhrD,EAAW47B,4BAA4BovB,GACnD,CAEA,SAASypC,EAAgBzpC,GACvB,OAAOzvB,EACJ3nB,IAAoB,GAAE5T,EAAW47B,mBAAmBovB,UACpDnzB,MAAMwG,GAAaA,EAASl4B,MACjC,CAEA,SAASglD,EAAYH,GAA2C,IAAnC2qC,EAAQ,UAAH,6CAAGpgE,EAAeqgE,WAKlD,OAAOlB,EAJK3oC,EACVf,EACU,OAAV2qC,GAAkB75F,EAAQsI,SAASC,SAASq5C,WAAW,WAEhCi4C,EAC3B,CAEA,SAASjB,EAAarqD,GAAwC,IAAnCsrD,EAAQ,UAAH,6CAAGpgE,EAAeqgE,WAQhD,OAAOr6D,EAPe,CACpB+xD,OAAQ,MACRC,QAAS,CAAEsI,cAAe,UAAYF,GACtCtrD,IAAKA,EACLyrD,MAAO,QAIX,CAEA,SAASnB,EAAa3pC,GACpB,OAAOG,EAAYH,EADiB,UAAH,6CAAGz1B,EAAeqgE,YACjBjtD,SAAQ,QAAC,KAAExiC,EAAI,SAAEkzB,EAAQ,SAAEm5D,GAAU,SACrED,EAASpsF,EAAMkzB,EAAUm5D,EAAS,GAEtC,CACA,SAAS38B,EAAcxrB,GACrB,OAAOqqD,EAAarqD,EADc,UAAH,6CAAG9U,EAAeqgE,YACjBjtD,SAAQ,QAAC,KAAExiC,EAAI,SAAEkzB,EAAQ,SAAEm5D,GAAU,SACnED,EAASpsF,EAAMkzB,EAAUm5D,EAAS,GAEtC,CAYA,SAASD,EAASwD,EAAe18D,EAAU28D,GACzC,MAAMC,EAAOrB,EAAamB,EAAeC,GACnCE,EAAY/xC,EAAoBsnC,YAChC3hC,EAAc3F,EAAoB2F,cAGxC,GAFc3F,EAAoB4nC,UAEnBmK,IAAapsC,EAY1B,GAAIhuD,EAAQid,UAAUo9E,iBACpBr6F,EAAQid,UAAUo9E,iBAAiBF,EAAM58D,OACpC,CACL,MAAMliB,EAAOxb,QAAQ6jB,QAAQrhB,SAASC,cAAc,MAC9CisC,EAAM+rD,IAAIC,gBAAgBJ,GAEhC9+E,EAAKuzB,KAAK,OAAQL,GAClBlzB,EAAKuzB,KAAK,WAAYrR,GAEtBta,GAAS,WACP5H,EAAK,GAAGpM,OACV,GACF,KAxBwC,CACxC,MAAMs/B,EAAM/sC,OAAO84F,KAAQ94F,OAAeg5F,UACpCC,EAAUlsD,EAAIgsD,gBAAgBJ,GAE/BnsC,EAIHxsD,OAAOwnC,KAAKyxD,IAHZz6F,EAAQgpC,KAAKyxD,EAASl9D,GACtBgR,EAAImsD,gBAAgBD,GAIxB,CAgBF,CAWA,SAAS3B,EAAa6B,EAAST,GAC7BA,EAAcA,GAAe,GAC7B,MAAMU,EAAY,IAEZC,EAAiBC,KAAKH,GACtBI,EAAa,GAEnB,IAAK,IAAIh/B,EAAS,EAAGA,EAAS8+B,EAAeloF,OAAQopD,GAAU6+B,EAAW,CACxE,MAAM9qD,EAAQ+qD,EAAe/qD,MAAMisB,EAAQA,EAAS6+B,GAE9CI,EAAc,IAAIp0D,MAAMkJ,EAAMn9B,QACpC,IAAK,IAAID,EAAI,EAAGA,EAAIo9B,EAAMn9B,OAAQD,IAChCsoF,EAAYtoF,GAAKo9B,EAAMuwB,WAAW3tD,GAGpC,MAAMuoF,EAAY,IAAIC,WAAWF,GAEjCD,EAAWtoF,KAAKwoF,EAClB,CAOA,OAJa,IAAKE,KAAaJ,EAAY,CACzCK,SAAU,QACV7uE,KAAM2tE,GAGV,CAEA,SAASl9D,EAAWkyB,EAAQhf,GAC1B,OAAOzQ,EAAMyrC,KAAM,GAAEmwB,EAAc,aAAansC,KAAUhf,IAAU,CAAC,EACvE,CAEA,SAASsf,EAAWN,EAAQhf,GAC1B,OAAOzQ,EAAMyrC,KACV,GAAEhnE,EAAW47B,0BAA0B44D,KAAeD,KAAWvpC,KAAUhf,IAC5E,CAAC,EAEL,CAEA,SAAS5S,EAAgB4xB,GACvB,OAAOzvB,EAAMyrC,KAAM,GAAEhnE,EAAW47B,0BAA0BovB,IAAU,CAAC,EACvE,CAEA,SAASK,EAAWrf,EAAQpT,EAAMw+D,GAEhC,OAAOC,EADM,GAAEF,OAAmBnrD,KAAUorD,IACVx+D,EACpC,CAEA,SAAS8yB,EAAgBrhB,EAAKzR,GAG5B,OAAOy+D,EAFa,GAAEF,MAAkB9sD,IAECzR,EAC3C,CAEA,SAAS61B,EAAkB71B,GAEzB,OAAOy+D,EADM,GAAEr3F,EAAW47B,8BACQhD,EACpC,CAEA,SAASi8D,EAAyBj8D,GAEhC,OAAOy+D,EADM,GAAEr3F,EAAW47B,iCACQhD,EACpC,CAEA,SAASk8D,EAAoBl8D,EAAMwoD,GAIjC,OAAOiW,EAFJ,GAAEr3F,EAAW47B,4BACbwlD,EAAU,WAAUA,IAAW,IACAxoD,EACpC,CAEA,SAASm8D,EAAsBn8D,GAE7B,OAAOy+D,EADM,GAAEr3F,EAAW47B,yCACQhD,EACpC,CAEA,SAASy+D,EAAsBhtD,EAAKzR,GAGlC,GAFA07D,EAAOjqD,EAEHzR,EAAKlT,MAAQ,SAIf,OAHA4P,EAAoBwB,eAClB,6CAEK2E,EAAG4kC,SAGZ,MAAMi3B,EAAY1+D,EAAKnxB,KACpB8vF,UAAU3+D,EAAKnxB,KAAK+vF,YAAY,KAAO,GACvC10F,cACH,MACgB,QAAdw0F,GACc,SAAdA,GACc,QAAdA,GACc,QAAdA,EAEOG,EAAc7+D,GAAMf,MAAK,SAAU6/D,GACxC,OAAOC,EAAoBD,EAAYE,EAAYh/D,EAAKnxB,MAC1D,IAEOowF,EAAmBj/D,EAE9B,CAIA,SAASu+D,EAAcxhB,GACrB,MAAQ,GAAE31E,EAAW47B,kBACnB+5C,EAAS,IAAMA,EAAS,MACtB6e,KAAeD,GACrB,CAGA,SAASuD,EAAS3xF,EAAM4xF,GACtB,IAAIC,EAEJ,IACEA,EAAM,IAAIf,KAAK,CAAC9wF,GAAO,CAAEkiB,KAAM0vE,GAejC,CAdE,MAAOj9F,GAOP,GANCwC,OAAe26F,YACb36F,OAAe26F,aACf36F,OAAe46F,mBACf56F,OAAe66F,gBACf76F,OAAe86F,cAEJ,aAAVt9F,EAAE2M,MAAwBnK,OAAe26F,YAAa,CACxD,MAAMI,EAAK,IAAIJ,YACfI,EAAGtqC,OAAO5nD,GACV6xF,EAAMK,EAAGC,QAAQP,EACnB,KAAqB,qBAAVj9F,EAAE2M,OACXuwF,EAAM,IAAIf,KAAK,CAAC9wF,GAAO,CAAEkiB,KAAM0vE,IAEnC,CACA,OAAOC,CACT,CAEA,SAASO,EAAcC,GAErB,IAAIC,EAEFA,EADED,EAAQ50D,MAAM,KAAK,GAAG36B,QAAQ,WAAa,EAChC2tF,KAAK4B,EAAQ50D,MAAM,KAAK,IACrB80D,SAASF,EAAQ50D,MAAM,KAAK,IAG9C,MAAM+0D,EAAaH,EAAQ50D,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAGA,MAAM,KAAK,GAG5Dg1D,EAAK,IAAI5B,WAAWyB,EAAWhqF,QACrC,IAAK,IAAID,EAAI,EAAGA,EAAIiqF,EAAWhqF,OAAQD,IACrCoqF,EAAGpqF,GAAKiqF,EAAWt8B,WAAW3tD,GAGhC,OAAOspF,EAASc,EAAID,EACtB,CAEA,SAASlB,EAAc7+D,GAKrB,MAAMigE,EAAiBp9D,EAAGq9D,QAEpBC,EAAS,IAAIC,WA4BnB,OAzBAD,EAAOE,UAAY,SAAUC,GAE3B,MAAMp/C,EAAc,CAAC,EACfq/C,EAAQ,IAAIC,MAClBD,EAAME,IAAMH,EAAM5qD,OAAOwL,OACzBq/C,EAAMG,OAAS,WACb,MAAM/+E,EAAK3c,KAAaW,MACtBic,EAAK5c,KAAac,OAClBoD,EAAI82B,EAAKlT,KAAO,KAAO,KAQzB,OANAo0B,EAAO0+C,QAAUU,EAAM5qD,OAAOwL,OAC9BA,EAAOv7C,MAAQgc,EACfu/B,EAAOp7C,OAAS8b,EAChBs/B,EAAOp0B,KAAO5jB,EACdg4C,EAAOryC,KAAOmxB,EAAKnxB,KAEZoxF,EAAel6D,QAAQmb,EAChC,EACAq/C,EAAMI,QAAU,WACd,CAEJ,EAEAR,EAAOS,cAAc5gE,GAEdigE,EAAe76D,OACxB,CAEA,SAASm3D,EAAgBv8D,EAAMgkC,EAAU7H,GACvC,OAAO0kC,EAAiB7gE,GAAMf,MAAMshE,IAClC,MAAMO,EAAkB,IAClBvzF,EAAOgzF,EAAME,IACnB,GAAqB,IAAjBF,EAAMz6F,QAAgC,IAAhBy6F,EAAM56F,MAC9B,OAAO6hE,QAAQC,OAAO,iCAGxB,GADqBl6D,EAAKsI,QAAU0qF,EAAMz6F,OAASy6F,EAAM56F,QAEvCm7F,GAChBP,EAAMz6F,QAAUq2D,GAChBokC,EAAM56F,OAASq+D,EAEf,OAAOhkC,EAET,MAAM+gE,EAAcvE,EAAY+D,EAAOv8B,EAAU7H,GAC3C6kC,EAAgBhhE,EAAKnxB,KAAKm8B,MAAM,KAWtC,OAVIg2D,EAAcnrF,OAAS,EACzBmrF,EAAcA,EAAcnrF,OAAS,GAAKkrF,EAAYrC,UAEtDsC,EAAcrrF,KAAKorF,EAAYrC,WAGjBjC,EACdsE,EAAYlE,QACZmE,EAAcjvD,KAAK,KAEP,GAElB,CAEA,SAAS0qD,EAAmBI,EAASoE,GACnC,MAAMjqF,EAAQ6lF,EAAQ7xD,MAAM,KACtB4uD,EAAW5iF,EAAM,GAAG+zB,MAAM,WAAW,GACrCx9B,EAAOywF,KAAKhnF,EAAM,IACxB,IAAImpB,EAAQ5yB,EAAKsI,OACjB,MAAMqrF,EAAU,IAAI9C,WAAWj+D,GAC/B,KAAOA,KACL+gE,EAAQ/gE,GAAS5yB,EAAKg2D,WAAWpjC,GAEnC,OAAO,IAAIghE,KAAK,CAACD,GAAUD,EAAU,CAAExxE,KAAMmqE,GAC/C,CAEA,SAASiH,EAAiB7gE,GAYxB,OAX2C,IAAIwnC,SAC7C,CAACzhC,EAAS0hC,KACR,MAAM04B,EAAS,IAAIC,WACnBD,EAAOO,OAAS,SAAU1+F,GACxB,MAAMu+F,EAAQ,IAAIC,MAClBD,EAAME,IAAOz+F,EAAM0zC,OAAewL,OAClCnb,EAAQw6D,EACV,EACAJ,EAAOS,cAAc5gE,EAAK,GAIhC,CAEA,SAASw8D,EACP+D,EACAv8B,EACA7H,GAEA,MAAMilC,EAAgB77F,SAASC,cAAc,UACvC67F,EAAiBD,EAAcE,WAAW,MAC1CC,EAAgBh8F,SAASC,cAAc,UACvCg8F,EAAiBD,EAAcD,WAAW,MAC1CG,EAAoB,CACxB97F,MAAOuO,KAAK8+C,MAAMutC,EAAM56F,OACxBG,OAAQoO,KAAK8+C,MAAMutC,EAAMz6F,SAE3Bs7F,EAAcz7F,MAAQ87F,EAAkB97F,MACxCy7F,EAAct7F,OAAS27F,EAAkB37F,OACzCy7F,EAAc57F,MAAQ87F,EAAkB97F,MACxC47F,EAAcz7F,OAAS27F,EAAkB37F,OACzCu7F,EAAeK,UAAU,EAAG,EAAGN,EAAcz7F,MAAOy7F,EAAct7F,QAClEu7F,EAAeM,UACbpB,EACA,EACA,EACAa,EAAcz7F,MACdy7F,EAAct7F,QAEhB07F,EAAeE,UAAU,EAAG,EAAGH,EAAc57F,MAAO47F,EAAcz7F,QAElE,MAAM87F,EAAiB,CACrBj8F,MAAO,KACPG,OAAQ,MAGV,KAC4B,GAA1B27F,EAAkB97F,MAAcq+D,GACL,GAA3By9B,EAAkB37F,OAAeq2D,GAEjCylC,EAAej8F,MAAQuO,KAAK8+C,MAAgC,GAA1ByuC,EAAkB97F,OACpDi8F,EAAe97F,OAASoO,KAAK8+C,MAAiC,GAA3ByuC,EAAkB37F,QAErD07F,EAAeE,UAAU,EAAG,EAAGH,EAAc57F,MAAO47F,EAAcz7F,QAClE07F,EAAeG,UACbP,EACA,EACA,EACAK,EAAkB97F,MAClB87F,EAAkB37F,OAClB,EACA,EACA87F,EAAej8F,MACfi8F,EAAe97F,QAGjBu7F,EAAeK,UAAU,EAAG,EAAGN,EAAcz7F,MAAOy7F,EAAct7F,QAClEu7F,EAAeM,UACbJ,EACA,EACA,EACAK,EAAej8F,MACfi8F,EAAe97F,OACf,EACA,EACA87F,EAAej8F,MACfi8F,EAAe97F,QAGjB27F,EAAkB97F,MAAQi8F,EAAej8F,MACzC87F,EAAkB37F,OAAS87F,EAAe97F,OAGxCy6F,EAAMz6F,OAASq2D,GAAaokC,EAAM56F,MAAQq+D,GAC5Cu9B,EAAc57F,MACZ46F,EAAM56F,MAAQ46F,EAAMz6F,OAChBk+D,EACA9vD,KAAK8+C,MAAOmJ,EAAYokC,EAAMz6F,OAAUy6F,EAAM56F,OACpD47F,EAAcz7F,OACZy6F,EAAMz6F,OAASy6F,EAAM56F,MACjBw2D,EACAjoD,KAAK8+C,MAAOgR,EAAWu8B,EAAM56F,MAAS46F,EAAMz6F,UAElDy7F,EAAc57F,MAAQ46F,EAAM56F,MAC5B47F,EAAcz7F,OAASy6F,EAAMz6F,QAG/B,MAMMyH,EANU8zF,EAAeQ,aAC7B,EACA,EACAT,EAAcz7F,MACdy7F,EAAct7F,QAEKyH,KACrB,IAAIu0F,GAAkB,EACtB,IAAK,IAAIlsF,EAAI,EAAGA,EAAIrI,EAAKsI,OAAQD,GAAK,EACpC,GAAIrI,EAAKqI,EAAI,GAAK,IAAK,CACrBksF,GAAkB,EAClB,KACF,CAsBF,OAnBIA,EACFN,EAAeE,UAAU,EAAG,EAAGH,EAAc57F,MAAO47F,EAAcz7F,SAElE07F,EAAeO,UAAY,OAC3BP,EAAeQ,SAAS,EAAG,EAAGT,EAAc57F,MAAO47F,EAAcz7F,SAGnE07F,EAAeG,UACbP,EACA,EACA,EACAK,EAAkB97F,MAClB87F,EAAkB37F,OAClB,EACA,EACAy7F,EAAc57F,MACd47F,EAAcz7F,QAGZg8F,EACK,CACLjF,QAAS0E,EAAcU,UAAU,aACjCvD,UAAW,OAIR,CACL7B,QAAS0E,EAAcU,UAAU,aAAc,KAC/CvD,UAAW,MAEf,CAEA,SAASO,EAAmBj/D,GAK1B,MAAMirB,EAAW,IAAIi3C,SAAS38F,SAASC,cAAc,SAGrD,OAFAylD,EAASkK,OAAO6pC,EAAYh/D,EAAKnxB,MAAOmxB,GAEjCmiE,EAAel3C,EACxB,CAEA,SAASk3C,EAAel3C,GAStB,MAAMg1C,EAAiBp9D,EAAGq9D,QACpBkC,EAAgB,CACpBC,iBAAkBt/F,QAAQu/F,SAC1BC,QAAS9G,EACT9G,QAAS,CAAE,oBAAgBrwF,IAW7B,OATAq+B,EACGyrC,KAAKstB,EAAMzwC,EAAUm3C,GACrBryD,SAAQ,SAAUxiC,GACjB0yF,EAAel6D,QAAQ,CAAE0wB,OAAO,EAAM1F,IAAK,GAAIxjD,KAAMA,GACvD,IACCxJ,OAAM,SAAUA,GACfk8F,EAAex4B,OAAO,CAAEhR,OAAO,EAAO1F,IAAKhtD,GAC7C,IAEKk8F,EAAe76D,OACxB,CAEA,SAAS25D,EAAoBD,EAAYr+D,GAKvC,MAAM+hE,EAAW7C,EAAcb,EAAWc,SAMpC30C,EAAW,IAAIi3C,SAAS38F,SAASC,cAAc,SAGrD,OAFAylD,EAASkK,OAAO,OAAQqtC,EAAU/hE,GAE3B0hE,EAAel3C,EACxB,CAEA,SAAS+zC,EAAYyD,GACnB,OAAOA,EAAYtyD,OAAOsyD,EAAY7D,YAAY,MAAQ,EAC5D,CAEA,SAASvC,IACP,OAAO15D,EAAM3nB,IAAK,GAAE5T,EAAW47B,8BAA8B/D,MAC1DwG,GAC4B,MAApBA,EAASi9D,OAAiBj9D,EAASl4B,KAAO,OAElDxJ,GACQ,MAGb,CAEA,SAASu4F,EAAoBqG,GAC3B,OAAOhgE,EACJ3nB,IACE,GAAE5T,EAAW47B,2CAA2C2/D,KAE1D1jE,MACEwG,GAC4B,MAApBA,EAASi9D,OAAiBj9D,EAASl4B,KAAO,OAElDxJ,GACQ,MAGf,CAEAulE,eAAeozB,EACbkG,EACAj7C,EACA6gC,GAEA,MAAMqa,GAAY,IAAIlrC,MAAOmrC,UACvBC,EAAan4C,OAChB,oEACD,KAEIo4C,EAAe,IACfC,EAAmB,GACnB/hD,EAAS,CAAE91B,MAAOw3E,GAClBM,EAAiB,CAAC17B,QAAQzhC,QAAQmb,IAExC,IAAIiiD,EAAaJ,EAAWx3D,KAAKq3D,GAC7BQ,EAAa,EACjB,KAAsB,OAAfD,GAAqB,CAC1B,MAAME,EAAkBF,EAClBG,EAAkBH,EAAW,GACnC,GACEF,EAAiB1vD,MACdgwD,GAAoBA,IAAoBD,IAE3C,CACAH,EAAaJ,EAAWx3D,KAAKq3D,GAC7B,QACF,CAEA,GADAK,EAAiBttF,KAAK2tF,GAClBD,EAAgB,GAAGhzF,QAAQ,kBAAoB,EAAG,CACpD,MAEM+hD,EAFcxH,OAAQ,qCAAqC,KACjCrf,KAAK83D,EAAgB,IAC1B,GAC3BniD,EAAO91B,MAAQ81B,EAAO91B,MAAM0kD,WAC1BuzB,EAAgB,GACf,sBAAqBjxC,SAExB,QACF,CAEA,MAAMmuC,QAAgC,IAAI/4B,SAASg8B,IACjD,MAAMC,EAAc,IAAIjD,MACxBiD,EAAY/C,OAAS,KACnB8C,EAASC,EAAY,EAEvBA,EAAYhD,IAAM6C,CAAe,IAGnC,GAAoB,IAAhB/C,EAAM56F,OAAgC,IAAjB46F,EAAMz6F,OAE7Bo7C,EAAO91B,MAAQ81B,EAAO91B,MAAM0kD,WAAWuzB,EAAgB,GAAI,QACtD,CACL,MAAMK,EAAUlH,EAAY+D,EAAOyC,EAAcA,GAC3CW,EAAiBD,EAAQ7G,QACzB6B,EAAYgF,EAAQhF,UAMpBkF,EAAgB1H,EAJTO,EACXkH,EACC,GAAEh8C,KAAak7C,KAAaO,KAAc1E,KAEGlW,GAAQvpD,MACrDwG,IACCyb,EAAO91B,MAAQ81B,EAAO91B,MAAM0kD,WAC1BuzB,EAAgB,GACf,sBAAqB59D,EAASl4B,YAE1B2zC,KAET,KAEEA,EAAO91B,MAAQ81B,EAAO91B,MAAM0kD,WAC1BuzB,EAAgB,GACf,aAAYM,SAERziD,KAGXgiD,EAAevtF,KAAKiuF,EACtB,CAEAT,EAAaJ,EAAWx3D,KAAKq3D,GAC7BQ,GACF,CACA,aAAa57B,QAAQr+B,IAAI+5D,GAAgBjkE,MAAMskB,GACtCA,EAAQ,GAAGn4B,OAEtB,CAEA,SAASuxE,EAAyBv3F,GAChC,MAAM29F,EAAan4C,OAAQ,qCAAqC,KAChE,IAAIu4C,EAAaJ,EAAWx3D,KAAKnmC,GACjC,MAAMy+F,EAAkB,GAClBC,EAAkB,GAExB,KAAsB,OAAfX,GAAqB,CAC1B,MAAME,EAAkBF,EAClB/wC,EAAS+wC,EAAW,GAC1B,GAAIU,EAAgBtwD,MAAMwwD,GAAmBA,IAAmB3xC,IAAS,CACvE+wC,EAAaJ,EAAWx3D,KAAKnmC,GAC7B,QACF,CACAy+F,EAAgBluF,KAAKy8C,GAErB,MAAMiB,EAAcd,EAAYH,GAAQnzB,MAAMwG,IAC5C,MAAMu+D,EACH,sBAAqB5xC,gBACR3sB,EAASl4B,KAAKqsF,mBAAmBn0D,EAASl4B,KAAKA,WAC/DnI,EAAOA,EAAK0qE,WAAWuzB,EAAgB,GAAIW,EAAU,IAEvDF,EAAgBnuF,KAAK09C,GAErB8vC,EAAaJ,EAAWx3D,KAAKnmC,EAC/B,CACA,OAAOoiE,QAAQy8B,WAAWH,GAAiB7kE,MAAK,IACvC75B,GAEX,CAEA,SAAS2tD,EAAyBthB,EAAKzR,GACrC,GAAIA,EAAKlT,MAAQ,SAIf,OAHA9nB,KAAK03B,oBAAoBwB,eACvB,6CAEKspC,QAAQC,OAAO,IAGxB,MAAMxc,EAAW,IAAIi3C,SAAS38F,SAASC,cAAc,SAC/Cy7F,EAAWjhE,EAAKnxB,KAAKshC,OAAOnQ,EAAKnxB,KAAK+vF,YAAY,MAAQ,GAGhE,OAFA3zC,EAASkK,OAAO8rC,EAAUjhE,GAEnB2C,EAAMyrC,KAAM,GAAEhnE,EAAW47B,aAAayO,IAAOwZ,EAAU,CAC5Do3C,iBAAkBt/F,QAAQu/F,SAC1BC,QAAS9G,EACT9G,QAAS,CAAE,oBAAgBrwF,IAE/B,CAEA,SAASquD,EAAoBP,EAAgBhf,GAC3C,OAAOzQ,EAAMkjC,OACV,GAAEz+D,EAAW47B,uBAAuBoQ,UAAegf,IAExD,CAEA,SAASmB,EAAiBnB,EAAchf,GACtC,IAAKgf,EACH,OAAOvvB,EAAGye,OAGZ,MAAM4iD,EAAgB,CACpBxP,OAAQ,MACRjjD,IACErqC,EAAW47B,WAAX57B,cAGAgsC,EACA,UACAgf,EACF8qC,MAAO,QAGT,OAAOv6D,EAAMuhE,GAAejlE,MAAMwG,GAAaA,EAASl4B,MAC1D,CACF,CAx2Ba,iDA6CbxK,QAAQC,OAAO,sBAAsBqB,QAAQ,cAAeu4B,GAE5DA,EAAYxhB,QAAU,CACpB,KACA,QACA,aACA,cACA,sBACA,UACA,WACA,iBACA,sBAgzBD,O,0SC/1BD,SAASmtD,EAAyBxhE,EAAgBE,GAYhD,MAVgB,CACdk9F,WAAYA,EACZn7B,YAAaA,EACbo7B,eAAgBA,EAChBjqB,mBAAoBA,EACpBkqB,2BAA4BA,EAC5B1vB,+BAAgCA,EAChC2vB,2BAA4BA,GAM9B,SAASH,EAAW74B,GAClB,OAAOA,GAAaA,EAAUryD,WAAalS,EAAeqd,QAC5D,CAEA,SAAS4kD,EAAYsC,GACnB,OACEA,GACAA,EAAUryD,WAAahS,EAAmBsT,aAAa82D,SAE3D,CAEA,SAAS+yB,EAAe94B,GACtB,OAAOA,GAAaA,EAAUniE,WAAalC,EAAmBkC,SAASw6E,IACzE,CAEA,SAAShP,EAA+BrJ,GACtC,OACEA,IACCA,EAAUniE,WAAalC,EAAmBkC,SAASw6E,MAClDrY,EAAUniE,WAAalC,EAAmBkC,SAASC,SAEzD,CAEA,SAAS+wE,EAAmB7O,GAC1B,OACEA,IACCA,EAAUniE,WAAalC,EAAmBkC,SAASC,UAClDkiE,EAAUniE,WAAalC,EAAmBkC,SAASE,mBACnDiiE,EAAUniE,WAAalC,EAAmBkC,SAASG,oBAEzD,CAEA,SAAS+6F,EAA2B/4B,GAClC,OACEA,IACCA,EAAUniE,WAAalC,EAAmBkC,SAASE,mBAClDiiE,EAAUniE,WAAalC,EAAmBkC,SAASG,oBAEzD,CAEA,SAASi7F,EAA0Bn5E,GACjC,IAAK,MAAMxgB,KAAOshE,EAAAA,SAChB,GAAIthE,IAAQwgB,EACV,OAAO8gD,EAAAA,SAASthE,EAItB,CAEA,SAAS05F,EAA2Bl5E,GAClC,IAAK,MAAMxgB,KAAO45F,EAAAA,aAChB,GAAIA,EAAAA,aAAa55F,KAASwgB,EACxB,OAAOm5E,EAA0B35F,EAIvC,CACF,E,QA9EA7H,QACGC,OAAO,sBACPqB,QAAQ,2BAA4BkkE,GAEvCA,EAAyBntD,QAAU,CAAC,iBAAkB,qBA0ErD,G,mQCvED,SAASqpF,EACP9hE,EACAv7B,GAQA,MALgB,CACds9F,kCAAmCA,EACnCC,qCAAsCA,GAKxC,SAASD,EAAkC93C,GACzC,OAAOjqB,EACJ3nB,IACC5T,EAAW47B,WACR,8CAA6C4pB,IAChD,CAAEpnB,WAAW,IAEdvG,MAAMwG,GACEA,EAASl4B,KAAKi5C,WAE3B,CAEA,SAASm+C,EAAqC/3C,GAC5C,OAAOjqB,EACJyrC,KACChnE,EAAW47B,WACR,iDAAgD4pB,IACnD,CAAEpnB,WAAW,IAEdvG,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,KAAKi5C,SACvB,GACJ,CACF,E,QAzCAzjD,QACGC,OAAO,sBACPqB,QAAQ,sBAAuBogG,GAElCA,EAAoBrpF,QAAU,CAAC,QAAS,aAqCvC,G,kQCxBD,SAASutD,EACP9lC,EACAF,EACAv7B,EACAH,GAQA,MANgB,CACdwiE,wBAAyBA,EACzBm7B,eAAgBA,EAChBl7B,sBAAuBA,GAKzB,SAASD,IACP,OAAO9mC,EACJ3nB,IACC5T,EAAW47B,WACT,yBACA/7B,EAAmB49F,qBAAqBC,uBAE3C7lE,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,KAAKw3F,SACvB,GACJ,CAEA,SAASH,IACP,OAAOjiE,EACJ3nB,IACC5T,EAAW47B,WACT,yBACA/7B,EAAmB49F,qBAAqBG,aAE3C/lE,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,KAAKw3F,SACvB,GACJ,CAEA,SAASr7B,IACP,OAAO/mC,EACJ3nB,IACC5T,EAAW47B,WACT,yBACA/7B,EAAmB49F,qBAAqBI,oBAE3ChmE,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,KAAKw3F,SACvB,GACJ,CACF,E,QA5DAhiG,QACGC,OAAO,sBACPqB,QAAQ,sBAAuBskE,GAElCA,EAAoBvtD,QAAU,CAC5B,KACA,QACA,aACA,qBAoDD,G,sWC9Dc,MAAM8pF,EACnBv+F,eAAiB,GAIjBC,cACE5B,KAAKmgG,gBAAkB,GACvBngG,KAAKogG,oBAAsB,EAC7B,CAEAC,oBAAoBrhE,GAClBh/B,KAAKmgG,gBAAgBxvF,KAAKquB,EAC5B,CAEAshE,UAAUC,EAAmBx6C,GAC3B/lD,KAAKogG,oBAAsB,GAC3B,MAAMI,EAAcD,EAAa/6C,OACjC,GAA8B,MAA1Bg7C,EAAYlpB,WACd,IAAK,IAAI1mE,EAAI,EAAGA,EAAI4vF,EAAYlpB,WAAWzmE,OAAQD,IACjD,IACE,MAAMi9D,EAAY2yB,EAAYlpB,WAAW1mE,GACnC6vF,EAAoB16C,EAAKx9C,KAAKi4F,EAAY32F,MAChD7J,KAAK0gG,wBAAwB7yB,EAAW0yB,GACxCvgG,KAAK2gG,iBAAiBJ,EAAcE,EAGtC,CAFE,MAAO1hG,GACPD,QAAQC,MAAMA,EAChB,CAGN,CAEA6hG,cAAcj+C,GACZ,MAAM3jB,EAAQh/B,KAAKmgG,gBAAgB98E,MAChC2b,GAAUA,EAAMn1B,OAAS84C,IAG5B,OAAa,MAAT3jB,GAAoC,MAAnBA,EAAM/9B,YACD,IAApB+9B,EAAM/9B,SAOd,CAEA4/F,0BAA0Bl+C,GACxB,MAAM3jB,EAAQh/B,KAAKmgG,gBAAgB98E,MAChC2b,GAAUA,EAAMn1B,OAAS84C,IAG5B,OAAa,MAAT3jB,GAA+C,MAA9BA,EAAM8hE,sBAClB9hE,EAAM8hE,oBAGjB,CAEAC,mBACsC,IAAhC/gG,KAAKmgG,gBAAgBtvF,SAGzB7Q,KAAKmgG,gBAAkB,GACzB,CAEQO,wBAAwB7yB,EAAgB0yB,GAC9CvgG,KAAKogG,oBAAoBzvF,KAAK,CAC5B4vF,aAAcA,EAAa12F,KAC3BmuE,YAAanK,EAAU4J,QAAQ,GAAGO,YAClCnK,UAAWA,EAAU2J,UAAU,GAAG3J,UAClCkK,OAAQlK,EAAU4J,QAAQ,GAAGM,OAC7BipB,iBAAkBT,EAAa/6C,OAAO/6B,KACtCw2E,cAAepzB,EAAU2J,UAAU,GAAGpxD,OAE1C,CAEQu6E,iBAAiBJ,EAAmBE,GAC1C,IAAK,IAAI7vF,EAAI,EAAGA,EAAI5Q,KAAKmgG,gBAAgBtvF,OAAQD,IAAK,CACpD,MAAM,mBAAEswF,EAAkB,eAAEC,GAC1BnhG,KAAKogG,oBAAoBgB,QACvB,CAACllD,EAAQ2xB,KAELA,EAAU0yB,eAAiBA,EAAa12F,MACxCgkE,EAAUmK,cAAgBh4E,KAAKmgG,gBAAgBvvF,GAAG40C,OAAO37C,OAEzDqyC,EAAOglD,mBAAqBrzB,EAC5B3xB,EAAOilD,eAAexwF,KAAKk9D,EAAUozB,gBAEhC/kD,IAET,CAAEglD,mBAAoB,KAAMC,eAAgB,KAGhD,GAAInhG,KAAKqhG,iBAAiBH,GAAqB,CAC7C,MAAMI,EAActhG,KAAKmgG,gBAAgBvvF,GACzC,OAAQswF,EAAmBrzB,UAAU3oE,eACnC,KAAKq8F,EAAAA,yBACHA,EAAAA,yBAAyB1pB,QACzB3yE,cAEElF,KAAKwhG,eACHjB,EACAY,EACAV,GAGFzgG,KAAKyhG,cAAcP,EAAmBnpB,OAAQupB,GAAa,GAE3DthG,KAAKyhG,cAAcP,EAAmBnpB,OAAQupB,GAAa,GAE7D,MAEF,KAAKC,EAAAA,yBACHA,EAAAA,yBAAyBzpB,WACzB5yE,cAEElF,KAAKwhG,eACHjB,EACAY,EACAV,GAGFzgG,KAAKyhG,cAAcP,EAAmBnpB,OAAQupB,GAAa,GAE3DthG,KAAKyhG,cAAcP,EAAmBnpB,OAAQupB,GAAa,GAE7D,MAEF,KAAKC,EAAAA,yBACHA,EAAAA,yBAAyBG,OACzBx8F,cACIlF,KAAK2hG,aAAapB,EAAcE,GAClCzgG,KAAKyhG,cAAcP,EAAmBnpB,OAAQupB,GAAa,GAE3DthG,KAAKyhG,cAAcP,EAAmBnpB,OAAQupB,GAAa,GAE7D,MAEF,KAAKC,EAAAA,yBACHA,EAAAA,yBAAyBK,QACzB18F,cACKlF,KAAK2hG,aAAapB,EAAcE,GAGnCzgG,KAAKyhG,cAAcP,EAAmBnpB,OAAQupB,GAAa,GAF3DthG,KAAKyhG,cAAcP,EAAmBnpB,OAAQupB,GAAa,GAOnE,CACF,CACF,CAEQD,iBAAiBH,GACvB,SAAKA,IAIAA,EAAmBrzB,YAA+C,IAAlCqzB,EAAmBrzB,YAInDqzB,EAAmBnpB,SAAyC,IAA/BmpB,EAAmBnpB,OAKvD,CAEQ8pB,gBAAgBh6D,GACtB,OAA0C,IAAnC/xB,OAAOo9C,KAAKrrB,GAAYh3B,MACjC,CAEQ8wF,aAAapB,EAAmB14D,GACtC,OAAQ04D,EAAa/6C,OAAO/6B,KAAKvlB,eAC/B,KAAK8iE,EAAAA,cAAc85B,UACnB,KAAK95B,EAAAA,cAAcwQ,iBACjB,OACiB,OAAf3wC,GACe,KAAfA,QACevoC,IAAfuoC,MAKE7nC,KAAK6hG,gBAAgBh6D,OAGuC,IAAhDnL,KAAK5zB,UAAU++B,GAAYx8B,QAAQ,UAIrD,KAAK28D,EAAAA,cAAc0F,SACjB,OAAmB,IAAf7lC,GAIa,OAAfA,GAAsC,KAAfA,QAAoCvoC,IAAfuoC,EAGhD,KAAKmgC,EAAAA,cAAch1B,OACnB,KAAKg1B,EAAAA,cAAc/0B,SACjB,QACEpL,SAEe,KAAfA,IACAkP,OAAOzgB,MAAMuR,IAMjB,QACE,OACiB,OAAfA,GAAsC,KAAfA,QAAoCvoC,IAAfuoC,EAIpD,CAEQ25D,eACNjB,EACAwB,EACAC,GAEA,GAAyB,MAArBA,GAA6BjkG,EAAAA,QAAQkkG,OAAO,CAAC,EAAGD,GAClD,OAAO,EAET,OAAQzB,EAAa/6C,OAAO/6B,KAAKvlB,eAC/B,KAAK8iE,EAAAA,cAAcyF,kBACnB,KAAKzF,EAAAA,cAAcr1B,cACjB,OAAOovD,EAAexzD,MACnB2zD,GAAkBA,IAAkBF,IAGzC,KAAKh6B,EAAAA,cAAcwQ,iBACjB,OAAOupB,EAAexzD,MAAM2zD,IAGa,IADrCF,EAAkBjrD,OAAOmrD,MAI/B,KAAKl6B,EAAAA,cAAc0F,SACjB,OAAOs0B,EAET,KAAKh6B,EAAAA,cAAcm6B,cAIjB,OAHgBJ,EAAexzD,MAC5B2zD,GAAkBj9F,OAAOi9F,KAAmBj9F,OAAO+8F,KAIxD,QAIE,OAHAljG,QAAQ+vB,KACL,IAAG0xE,EAAa/6C,OAAO/6B,KAAKvlB,kFAExB,EAGb,CAEQu8F,cAAc1pB,EAAaupB,EAAkBc,GACnD,OAAQrqB,GACN,KAAKsqB,EAAAA,yBACHA,EAAAA,yBAAyBC,MACzBp9F,cACIk9F,GACFd,EAAYrgG,WAAY,EACxBqgG,EAAYR,sBAAuB,IAEnCQ,EAAYrgG,WAAY,EACxBqgG,EAAYR,sBAAuB,GAErC,MAEF,KAAKuB,EAAAA,yBACHA,EAAAA,yBAAyBE,MACzBr9F,cACIk9F,GACFd,EAAYrgG,WAAY,EACxBqgG,EAAYR,sBAAuB,IAEnCQ,EAAYrgG,WAAY,EACxBqgG,EAAYR,sBAAuB,GAErC,MAEF,QACEhiG,QAAQ+vB,KAAK,mBAInB,EACD,YAED9wB,EAAAA,QACGC,OAAO,sBACP6P,QAAQ,yBAA0BqyF,EAAwB,G,sXC7QtD,MAAMsC,EACX5gG,YACU6gC,EACA5gC,EACAwf,EACAhf,EACAJ,EACAG,EACAL,GACR,KAPQ0gC,cAAAA,EAAqB,KACrB5gC,UAAAA,EAAe,KACfwf,mBAAAA,EAAkD,KAClDhf,cAAAA,EAAqC,KACrCJ,mBAAAA,EAA+C,KAC/CG,WAAAA,EAA+B,KAC/BL,eAAAA,CACP,CAGI0gG,qBACL5+F,EACA6+F,GAEA,MAAM9jG,EAAIoB,KAAK6B,UAAUmF,YAAYC,KAI/B07F,EAAe,IAFD3iG,KAAKqhB,mBAAmBU,qBAC1Ble,EAAQ++F,iBAAmB,CAAC,GAKxCC,EAA8B,IAC9BC,EAAgC,IAGhCC,EAAmC,IAEnC/5D,EAAOnlC,EAAQmlC,KACrB,IAAIkF,EAASlF,EAAK/F,IAAM+F,EAAKz0B,GAC7B,MAAMyuF,EAAeh6D,EAAKg6D,aACxBC,EAAoBj6D,EAAKi6D,uBAEP3jG,IAAhB0pC,EAAKmF,SAAsBD,EAASlF,EAAKmF,QAE7Cw0D,EAAa3gF,wBAA0BhiB,KAAK6B,UAAUiG,KAAKC,OAC3D46F,EAAaz2F,MAAQ82F,EACjBF,EACAD,OAGkCvjG,IAAlCqjG,EAAaO,mBACXF,EACFL,EAAaO,iBAAmBljG,KAAK6B,UAAUoM,QAAQk1F,KAC7CF,IACVN,EAAaO,iBAAmBljG,KAAK6B,UAAUoM,QAAQm1F,UAI3DT,EAAaU,uBAA0BnmG,IACrC,MAAMmK,EAAUnK,EAAEmK,QACZi8F,EAAQtjG,KAEdqH,EAAQksB,QAAU,GAClBlsB,EAAQyhB,WAAY,EACpBzhB,EAAQkH,YAAa,EACrBlH,EAAQk8F,WAAY,EACpBl8F,EAAQm8F,YAAc3/F,EAAQ2/F,cAAe,EAC7Cn8F,EAAQo8F,wBAAyB,EACjCp8F,EAAQq8F,sBAAuB,EAG/B,MAAMC,EAAiB3jG,KAAK4jG,kBAAkB//F,EAAQmlC,MACtD,GAAI26D,EAAgB,CAClB,MAAME,EAASF,EAAevyF,WACb/J,EAAQigB,eAAeu8E,EAC1C,CAEKb,GAWH37F,EAAQuO,eAAetE,UAAY,WACjC,MAAMpU,EAAImK,EAAQkK,UAChBuyF,EAAMz8F,EAAQuO,eAChB,IAAIuhC,EAAM,GASV,GAPA9vC,EAAQoH,UAAUM,MAAK,SAAUrO,GAC3BA,aAAa4iG,EAAMzhG,UAAUqF,OAC3BiwC,EAAItmC,OAAS,IAAGsmC,GAAO,MAC3BA,GAAOz2C,EAAE6H,KAAK3C,IAElB,IAEIuxC,EAAItmC,OAAS,EAGf,OACE3T,EAAE0I,KAEF,IAAK,KACL,IAAK,OACL,IAAK,OACL,IAAK,QACH,MACF,QACE09F,EAAMzhG,UAAUuM,eAAeC,UAAUiD,UAAUM,KAAKkyF,QAGvDR,EAAMzhG,UAAUuM,eAAeC,UAAUiD,UAAUM,KAAKkyF,GAEpC,mBAAhBpB,GACTA,EAAYxlG,EAEhB,EAEAmK,EAAQutC,IAAIr5B,MAAMza,OAAS+C,EAAQkgG,qBAAuB,KAEtD18F,EAAQqb,eAAe5hB,QAAUiiG,IAEnC17F,EAAQ6E,MAAQ22F,GAIlBx7F,EAAQ0hB,mBAAmB,qBAAqB,KAC9Ci7E,EAAcngG,EAASwD,EAASi8F,EAAM,KArDxCj8F,EAAQutC,IAAIr5B,MAAMza,OAChBuG,EAAQqb,eAAe5hB,OAAS+hG,EAChC,GACA,IAoDJ,EAKF,MAAMoB,EAAWjkG,KAAK6B,UAAUoM,QAAQi2F,QAAQh2D,GAC5C+1D,IACFA,EAASrvD,IAAM,MAGjB,MAAMuvD,EAAan7D,EAAKm7D,YAAcn7D,EAAK87B,WAC3C,IACGk+B,KACCmB,GAAcA,EAAWtzF,OAAS7Q,KAAKoC,WAAWgiG,oBAEpD,OAIF,IAAIhwF,EAAQpU,KAAK6B,UAAUwiG,MAAMC,SAASH,GAc1C,GAXA/vF,EAAQpU,KAAKukG,6BACXnwF,EACAvQ,EAAQ2gG,YACR3gG,EAAQ4gG,OACR5gG,EAAQw2B,SACRx2B,EAAQy2B,UACRz2B,EAAQmlC,MAKK,OADAtpC,OAAOa,SAASuvC,eAAe5B,GACzB,CACnB,MAAM7mC,EAAUzI,EAAEoB,KAAK6B,UAAUoM,QAASigC,EAAQy0D,GAGlD,OADAt7F,EAAQ+M,MAAQA,EACT/M,CACT,CAEA,SAAS28F,EAAcngG,EAASwD,EAASi8F,GACvCj8F,EAAQq9F,iBAAmBpB,EAAMzhG,UAAUiG,KAAKC,OAChDV,EAAQ+tB,iBAAiBuvE,gBACzBt9F,EAAQib,aAEkB,IAAtBze,EAAQ+gG,YACVv9F,EAAQ4kB,WAAaq3E,EAAMzhG,UAAUoM,QAAQie,qBAIvB5sB,IAApBuE,EAAQghG,SACVvB,EAAMniF,UAAS,KACZpjB,EAAAA,QAAQ6jB,QAAQ,gBAAkB/d,EAAQghG,SAAiB59D,OAAO,GAClE,IAEP,CACF,CAEQ28D,kBAAkB56D,GACxB,GACEA,EAAKwF,YAEH,IADKxF,EAAKwF,MAAMnrB,MAAMnf,GAAMA,EAAE4gG,gBAAmC,GAAjB5gG,EAAE6gG,cAEpD,CACA,MAAMC,EAASh8D,EAAKwF,MAAMnrB,MACrBnf,GAAMA,EAAE4gG,gBAAmC,GAAjB5gG,EAAE6gG,cAC7B36B,cACF5lE,EAAOk4B,KAAK9zB,MAAMogC,EAAK87B,YAAYltD,cAAcyL,MAC9C3iB,GAAMA,EAAE6T,IAAMywF,IAGnB,GAAIxgG,EAAM,OAAOA,EAAKoB,GACxB,CAEA,OAAO,IACT,CAEQ2+F,6BACNU,EACAT,EACAjrE,EACAc,EACAC,EACA0O,GAEA,MAAM1E,EAAStkC,KAAKqC,cAAciqF,gBAC5BqX,EAAiB3jG,KAAK4jG,kBAAkB56D,GAG5ChpC,KAAKoC,WAAW8iG,qCAChBl8D,EAAKg6D,cAELhjG,KAAKmlG,6BAA6BF,GAGpCjlG,KAAKyiC,cAAcxtB,QAAQgwF,EAAUrtF,eAAgBlX,IAiEnD,QAhEkCpB,IAA9BoB,EAAEgE,0BACJhE,EAAEgE,yBAA0B,QAGEpF,IAA5BoB,EAAEkmB,wBACJlmB,EAAEkmB,uBAAwB,QAGEtnB,IAA1BoB,EAAEqmB,sBACJrmB,EAAEqmB,qBAAsB,QAGWznB,IAAjCoB,EAAEsmB,6BACJtmB,EAAEsmB,4BAA6B,QAGO1nB,IAApCoB,EAAEwmB,gCACJxmB,EAAEwmB,+BAAgC,QAGN5nB,IAA1BoB,EAAE0mB,sBACJ1mB,EAAE0mB,qBAAsB,GAGD,MAArB1mB,EAAE0kG,kBACJ1kG,EAAE0mB,oBAAsB1mB,EAAE0kG,sBAGZ9lG,IAAZoB,EAAEu5E,OAA0C,IAAnBv5E,EAAEu5E,MAAMppE,OACnCnQ,EAAEqmB,qBAAsB,EAExB/mB,KAAKyiC,cAAcxtB,QAAQvU,EAAEu5E,OAAQ7gC,SACF,IAAtBA,EAAK+gC,cAAgC/gC,EAAK+gC,eAEnDz5E,EAAEqmB,qBAAsB,EAC1B,SAKeznB,IAAfoB,EAAE2kG,UAAgD,IAAtB3kG,EAAE2kG,SAASx0F,OACzCnQ,EAAEsmB,4BAA6B,EAE/BhnB,KAAKyiC,cAAcxtB,QAAQvU,EAAE2kG,UAAWC,SAEQ,IAArCA,EAAQC,0BACfD,EAAQC,2BAGR7kG,EAAEsmB,4BAA6B,EACjC,IAKe,aAAftmB,EAAEuT,WACJvT,EAAE2F,OACC2iC,EAAKw8D,aACN7B,GACAjjG,EAAEkF,MAAQ+9F,GACK,IAAfjjG,EAAEyD,SACEnE,KAAK+B,eAAe8D,MAAM+Y,yBAC1B5e,KAAK+B,eAAe8D,MAAMS,gBAGhC5F,EAAEyD,WAAa+iE,EAAAA,SAAS7iE,mBACxB3D,EAAEyD,WAAa+iE,EAAAA,SAAS5iE,oBAExB5D,EAAE45B,UAAYluB,yCACd1L,EAAEgG,UAAY,iBAEd,GAAIhG,EAAEorE,WAA6B,SAAhBprE,EAAEorE,WAAmC,OAAXxnC,EAAiB,CAC5D,MAAMyB,EAAQ/lC,KAAKyiC,cAAcpf,KAAKihB,GAAS3wB,GACtCA,EAAEY,KAAO7T,EAAE+jC,QAGhBsB,IACEy+D,GAAez+D,EAAMxxB,IAAMglB,GAC7B74B,EAAE45B,UAAYA,EACd55B,EAAEgG,UAAY2zB,GAEd35B,EAAE45B,UAAYt6B,KAAKqC,cAAc+pF,wBAC/B1rF,EAAE+jC,MACF/jC,EAAEgG,WAIV,CACF,IAGF,MAAM++F,EAAUzlG,KAAKyiC,cAAcpf,KACjC4hF,EAAUrtF,eACV,SAAUpT,GACR,OAA+B,IAAxBA,EAAK6T,cACd,IAEF,GAAIotF,EAAS,CACX,MAAMC,EAAiB1lG,KAAKyiC,cAAcvf,OACxC+hF,EAAUptF,eACT0B,GACQA,EAAKgK,KAAOkiF,EAAQ7/F,MAGzB+/F,EAAY,GAClB3lG,KAAKyiC,cAAcxtB,QAAQywF,GAAiBnsF,IAC1C,MAAM/U,EAAOxE,KAAKyiC,cAAcpf,KAC9B4hF,EAAUrtF,eACTpT,GAEGA,EAAKoB,MAAQ2T,EAAK+J,OACC,aAAlB9e,EAAKyP,UACc,qBAAlBzP,EAAKyP,YAIb0xF,EAAUh1F,KAAKnM,EAAK,IAEtBxE,KAAKyiC,cAAcxtB,QAAQ0wF,GAAW,SAAUnhG,GAC1CA,QAAyClF,IAAjCkF,EAAKE,0BACfF,EAAKE,yBAA0B,EAEnC,GACF,CACA,OAAOugG,CACT,CAEQE,6BAA6BF,GACnCjlG,KAAKyiC,cAAcxtB,QAAQgwF,EAAUrtF,eAAgBlX,IAC/CA,EAAEuT,WAAajU,KAAKiC,mBAAmBsT,aAAa6J,WACtD1e,EAAEwmB,gCAAkCxmB,EAAEwmB,8BACxC,GAEJ,EACD,4BAEDnpB,EAAAA,QACGC,OAAO,sBACPqB,QAAQ,0BAA2B,CAClC,gBACA,YACA,qBACA,gBACA,qBACA,aACA,iBACA,CACEojC,EACA5gC,EACAwf,EACAhf,EACAJ,EACAG,EACAL,IAEA,IAAIygG,EACF//D,EACA5gC,EACAwf,EACAhf,EACAJ,EACAG,EACAL,IAIR,G,6RCtaA,aAAa,wEAab,SAASskD,wBACPpX,6BACA+hB,gBACA/uD,oBAEA,MAAMktC,cAAgB,CAAC,IAAK,IAAK,IAAK,KAGhCthC,QAAU,CACdw6C,SACAu9C,SACAv5C,WACAC,eACAC,aACAN,WACAnB,kBAGF,OAAOj9C,QAIP,SAASw+C,WAAWw5C,EAAY72D,EAAOtY,GACrC,GAAIA,EAAKjM,OAASxoB,mBAAmBuwC,cAAc2V,cAEhC7oD,IAAfo3B,EAAKtQ,OACU,OAAfsQ,EAAKtQ,OACU,KAAfsQ,EAAKtQ,MACL,CACA,MAAM0/E,EAAe/uD,OAAOrgB,EAAKtQ,OACjC,IACGkQ,MAAMwvE,IACPC,kBACEF,EACA72D,EACAtY,EACAz0B,mBAAmBqwC,cAAcW,UAGnC,OAAO6yD,EAAaE,QAAQ,EAEhC,CAEF,OAAOtvE,EAAKtQ,KACd,CAEA,SAASkmC,eAAeu5C,EAAY72D,EAAOtY,GACzC,OACEA,EAAKjM,OAASxoB,mBAAmBuwC,cAAcS,UAC/CgzD,iBAAiBvvE,EAAMz0B,mBAAmBqwC,cAAcW,WACxD8yD,kBACEF,EACA72D,EACAtY,EACAz0B,mBAAmBqwC,cAAcW,WAEnCizD,qBAAqBxvE,EAAMz0B,mBAAmBqwC,cAAcW,SAEhE,CAEA,SAASsZ,aAAas5C,EAAY72D,EAAOtY,GACvC,OACEA,EAAKjM,OAASxoB,mBAAmBuwC,cAAcQ,QAC/CizD,iBAAiBvvE,EAAMz0B,mBAAmBqwC,cAAcU,SACvD+yD,kBACCF,EACA72D,EACAtY,EACAz0B,mBAAmBqwC,cAAcU,UAEhC+yD,kBACCF,EACA72D,EACAtY,EACAz0B,mBAAmBqwC,cAAcW,WAErCizD,qBAAqBxvE,EAAMz0B,mBAAmBqwC,cAAcU,OAEhE,CAEA,SAASkzD,qBAAqBxvE,EAAMjM,GAClC,GAAIiM,EAAKjM,OAASxoB,mBAAmBuwC,cAAcI,SACjD,GACElc,EAAKuI,cACL6F,MAAMtB,QAAQ9M,EAAKuI,aAAaT,qBAChC,CACA,MAAMqU,EAAiBnc,EAAKuI,aAAaT,oBAAoBnb,MAC1DyvB,GAAWA,EAAOjpC,OAAS6sB,EAAKuI,aAAac,eAEhD,IAAI8S,aAAc,EAAdA,EAAgBhT,YAAapV,EAC/B,OAAO,CAEX,MAAO,IAAK6L,MAAMI,EAAK4zB,OAASh0B,MAAMI,EAAKtQ,OACzC,OAAO,EAIX,OAAO,CACT,CAEA,SAAS+/E,kBAAkBt2C,GACzB,MAAMhd,EAAiBgd,EAAY5wB,aAAaT,oBAAoBnb,MACjEyvB,GAAWA,EAAOjpC,OAASgmD,EAAY5wB,aAAac,eAEvD,OACE8S,aAAc,EAAdA,EAAgBhT,YAChB59B,mBAAmBmkG,mBAAmBnzD,SAE/BhxC,mBAAmBuwC,cAAcS,UAExCJ,aAAc,EAAdA,EAAgBhT,YAAa59B,mBAAmBmkG,mBAAmBpzD,OAE5D/wC,mBAAmBuwC,cAAcQ,YAHnC,CAKT,CAEA,SAASiZ,WAAW45C,EAAY72D,EAAOtY,GACrC,OACE41B,eAAeu5C,EAAY72D,EAAOtY,IAClC61B,aAAas5C,EAAY72D,EAAOtY,EAEpC,CAEA,SAASo0B,iBAAiBp0B,GACxB,OACEuvE,iBAAiBvvE,EAAMz0B,mBAAmBqwC,cAAcW,WACxDgzD,iBAAiBvvE,EAAMz0B,mBAAmBqwC,cAAcU,OAE5D,CAEA,SAASqV,SACPtY,cACAs2D,WACApgD,UAGA,IAFA9B,YAAc,UAAH,6CAAG,KACdmiD,SAAW,UAAH,6CAAG,KAEX,MAAMjzD,SAAWtD,cAAcE,gBAC/B,IAAID,QAAUD,cAAcC,QAC5BA,QAAUA,QAAQvuB,QAAQ,IAAK,IAE/B,IAAIk1B,qBAAsB,EAC1B,IAAK,MAAM4vD,KAAelzD,SACxB,IAEK,IADHkzD,EAAYl7F,QAAQpJ,mBAAmBqxC,qBAAqBkzD,SAEW,IAAvED,EAAYl7F,QAAQpJ,mBAAmBqxC,qBAAqBC,MAC5D,CACA,IAAIkzD,EAAeC,gBAAgBH,EAAatgD,SAAUqgD,UAC1D,MAAMK,EAAcC,eAClBL,EACAF,WACAliD,aAEEwiD,EAAY91F,OAAS,IACnB81F,IAAgB1kG,mBAAmBqwC,cAAc5C,UAEhCpwC,IAAjBmnG,GACiB,KAAjBA,GACiB,OAAjBA,IAEA9vD,qBAAsB,EACtB3G,QAAUA,QAAQvuB,QAAQ8kF,EAAa,IAAIthG,OAAOwhG,KAGpDE,IAAgB1kG,mBAAmBqwC,cAAcU,QACjD2zD,IAAgB1kG,mBAAmBqwC,cAAcW,WAEjDwzD,EAAgB,IACdE,GAAe1kG,mBAAmBqwC,cAAcW,SAC5C+d,gBAAgBc,YAAY20C,GAC5Bh2F,WAAWg2F,KAEZnwE,MAAMmwE,KACTz2D,QAAUA,QAAQvuB,QAAQ8kF,EAAaE,KAI/C,CAEF,IACsE,IAApEz2D,QAAQ3kC,QAAQpJ,mBAAmBqxC,qBAAqBkzD,SACW,IAAnEx2D,QAAQ3kC,QAAQpJ,mBAAmBqxC,qBAAqBC,MACxD,CACA,GAAIoD,oBACF,OAAO3G,QAAQvuB,QAAQ,IAAK,IAE5B,IACE,MAAMy6B,OAASlF,KAAKhH,SACpB,IAAK1Z,MAAM4lB,QACT,OAAOA,OAAO8pD,QAAQ9pD,OAAS,GAAM,EAAI,EAAI,EAG/C,CADA,MAAOn9C,GACP,CAGN,CAEA,OAAO,IACT,CAEA,SAAS6mG,SAAS71D,cAAes2D,YAAgC,IAApBliD,YAAc,UAAH,6CAAG,KACzD,QAAsB7kD,IAAlBywC,cACF,OAAO,EAET,MAAMsD,SAAWtD,cAAcE,gBAC/B,IAAID,QAAUD,cAAcC,QAE5B,GADAA,QAAUA,QAAQvuB,QAAQ,IAAK,IACR,KAAnBuuB,QAAQ8F,OAAe,OAAO,EAElC,IAAIa,qBAAsB,EAC1B,IAAK,MAAM4vD,KAAelzD,SACxB,IAEK,IADHkzD,EAAYl7F,QAAQpJ,mBAAmBqxC,qBAAqBkzD,SAEW,IAAvED,EAAYl7F,QAAQpJ,mBAAmBqxC,qBAAqBC,MAC5D,CACA,MAAMozD,EAAcC,eAClBL,EACAF,WACAliD,aAEF,KAAIwiD,EAAY91F,OAAS,GAiBvB,OAAO,EAjBmB,CAC1B,IAAIimC,EAAa,KACjB,GAAI6vD,IAAgB1kG,mBAAmBqwC,cAAc5C,KACnDiH,qBAAsB,EACtBG,EAAa,QACR,IACL6vD,IAAgB1kG,mBAAmBqwC,cAAcU,QACjD2zD,IAAgB1kG,mBAAmBqwC,cAAcW,SAIjD,OAAO,EAFP6D,EAAa,CAGf,CACmB,OAAfA,IACF9G,QAAUA,QAAQvuB,QAAQ8kF,EAAazvD,GAE3C,CAGF,CAEF,GAAIH,oBACF,OAAOxH,cACJjsB,QAAQ2jF,GAA0B,MAAbA,IACrBlpC,OAAOkpC,IAA4C,IAA/B72D,QAAQ3kC,QAAQw7F,KAEvC,IACE,MAAMC,OAAS9vD,KAAKhH,SACpB,OAAQ1Z,MAAMwwE,OAGhB,CAFE,MAAO/nG,GACP,OAAO,CACT,CAEJ,CAIA,SAASszC,YAAYl9B,GACnB,IACGA,EAAKsV,OAASxoB,mBAAmBuwC,cAAcD,QAC9Cp9B,EAAKsV,OAASxoB,mBAAmBqwC,cAAcC,SACjDp9B,EAAKs9B,aAEL,OAAOt9B,EAAKs9B,aAAaC,iBACpB,IACLv9B,EAAKsV,OAASxoB,mBAAmBqwC,cAAcK,eAC/Cx9B,EAAKsV,OAASxoB,mBAAmBuwC,cAAcI,UACjC,eAAdz9B,EAAKsV,OAGHtV,EAAK8pB,cACL6F,MAAMtB,QAAQruB,EAAK8pB,aAAaT,qBAChC,CACA,MAAMqU,EAAiB19B,EAAK8pB,aAAaT,oBAAoBnb,MAC1DyvB,GAAWA,EAAOjpC,OAASsL,EAAK8pB,aAAac,eAGhD,IACE8S,aAAc,EAAdA,EAAgBhT,YAChB59B,mBAAmBmkG,mBAAmBnzD,SAEtC,OAAOhxC,mBAAmBmkG,mBAAmBnzD,SACxC,IACLJ,aAAc,EAAdA,EAAgBhT,YAChB59B,mBAAmBmkG,mBAAmBpzD,OAEtC,OAAO/wC,mBAAmBmkG,mBAAmBpzD,OACxC,IACLH,aAAc,EAAdA,EAAgBhT,YAChB59B,mBAAmBmkG,mBAAmB12D,KAEtC,OAAOztC,mBAAmBmkG,mBAAmB12D,IAEjD,CAGF,OAAQv6B,EAAKsV,MACX,KAAKxoB,mBAAmBuwC,cAAc9C,KACpC,OAAOztC,mBAAmBqwC,cAAc5C,KAC1C,KAAKztC,mBAAmBuwC,cAAcS,SACpC,OAAOhxC,mBAAmBqwC,cAAcW,SAC1C,KAAKhxC,mBAAmBuwC,cAAcQ,OACpC,OAAO/wC,mBAAmBqwC,cAAcU,OAE5C,OAAO79B,EAAKsV,IACd,CAEA,SAASs8E,QAAQR,EAAatiD,GAC5B,OAAKsiD,EAAYzmD,WAAW79C,mBAAmBqxC,qBAAqBC,MAM7D0Q,EAHQlN,OACbwvD,EAAY5M,UAAU13F,mBAAmBqxC,qBAAqBC,KAAK1iC,UAH5D,IAMX,CAEA,SAAS61F,gBAAgBH,EAAatgD,EAAUqgD,GAC9C,MAAM5vE,EAAOqwE,QAAQR,GAAczgD,GACjCwgD,EAAWA,EAASt3D,MAAM3rB,MAAMqT,GAASA,EAAKniB,KAAOuxC,IAAU,OAEjE,OAAa,OAATpvB,EACKuvB,EAASsgD,GAEX7vE,EAAKtQ,KACd,CAEA,SAASwgF,eAAeL,EAAaF,EAAYliD,GAC/C,MAAMztB,EAAOqwE,QAAQR,GAAczgD,GACjC3B,EAAcA,EAAY9gC,MAAMqT,GAASA,EAAKniB,IAAMuxC,IAAU,OAEhE,GAAa,OAATpvB,EACF,OAAO2b,YAAY3b,GAGrB,IAAI0K,EAAYrjC,SAAAA,QAAQ+iC,KAAKulE,EAAWzyD,QACxC,MAAM29B,EAAc80B,EAAWzyD,OAAO1wB,QACnCoW,GAAMA,EAAE7O,OAASxoB,mBAAmBqwC,cAAcuB,QAGrD,GAAI09B,GAAeA,EAAY1gE,OAAS,EAAG,CACzC,MAAM4gE,EAAaxiC,6BAA6B6E,0BAC9C7E,6BAA6B8E,yBAAyBw9B,IAExDnwC,EAAYA,EAAUwC,OAAO6tC,EAC/B,CAEA,MAAMzyC,EAAQoC,EAAU/d,MAAM2b,GAAUA,EAAMn1B,OAAS08F,IACvD,OAAIvnE,EACKqT,YAAYrT,GAGd,EACT,CAEA,SAASinE,iBAAiBvvE,EAAMjM,GAC9B,OACEiM,EAAKjM,OAASxoB,mBAAmBuwC,cAAcD,QAC/C7b,EAAK+b,cACL/b,EAAK+b,aAAaC,mBAAqBjoB,CAE3C,CAEA,SAASs7E,kBAAkBF,EAAY72D,EAAOtY,EAAMjM,GAClD,OACEiM,EAAKjM,OAASxoB,mBAAmBuwC,cAAc2V,SAC/CzxB,EAAKqZ,eACLrZ,EAAKqZ,cAAcE,gBAAgB1B,MAAMqI,GAErCowD,YAAYnB,EAAYjvD,EAASnsB,IACjCw8E,WAAWpB,EAAY72D,EAAO4H,EAASnsB,IAI/C,CAEA,SAASu8E,YAAYnB,EAAYqB,EAAaz8E,GAC5C,IACGy8E,EAAYpnD,WAAW79C,mBAAmBqxC,qBAAqBkzD,OAEhE,OAAO,EAET,MAAMxnE,EAAQ6mE,EAAWjyD,OAAOvwB,MAAMiW,GAAMA,EAAEzvB,OAASq9F,IACvD,OACEloE,IACCA,EAAMvU,OAASA,GACbuU,EAAMvU,OAASxoB,mBAAmBqwC,cAAcC,QAC/CvT,EAAMyT,cACNzT,EAAMyT,aAAaC,mBAAqBjoB,EAEhD,CAEA,SAAS08E,2BAA2B18E,GAClC,OAAQA,GACN,KAAKxoB,mBAAmBuwC,cAAcQ,OACpC,OAAO/wC,mBAAmBqwC,cAAcU,OAC1C,KAAK/wC,mBAAmBuwC,cAAcS,SACpC,OAAOhxC,mBAAmBqwC,cAAcW,SAE5C,OAAOxoB,CACT,CAEA,SAASw8E,WAAWpB,EAAY72D,EAAOk4D,EAAaz8E,GAClD,IAAKy8E,EAAYpnD,WAAW79C,mBAAmBqxC,qBAAqBC,MAClE,OAAO,EAET,MAAMuS,EAAS/O,OACbmwD,EAAYvN,UAAU13F,mBAAmBqxC,qBAAqBC,KAAK1iC,SAE/D6lB,EAAOsY,EAAM3rB,MAAMmZ,GAAMA,EAAEjoB,KAAOuxC,IACxC,IAAIshD,EAAW1wE,EAAKjM,KAsBpB,OAnBEiM,EAAKuI,cACL6F,MAAMtB,QAAQ9M,EAAKuI,aAAaT,qBAEhC4oE,EAAWjB,kBAAkBzvE,GACpBA,EAAKjM,OAASxoB,mBAAmBuwC,cAAcI,UACvCizD,EAAWjyD,OAAO1wB,QAAQwc,GAAiB,UAAXA,EAAEjV,OAC1CxV,SAAS2M,IAChB,MACMiuC,EADcnzB,KAAK9zB,MAAMgZ,EAAQuiC,aACP9gC,MAC7Bqc,GAAMA,EAAEnrB,IAAMmiB,EAAKniB,IAAMmrB,EAAEjV,OAASiM,EAAKjM,OAG1ColC,EAAY5wB,cACZ6F,MAAMtB,QAAQqsB,EAAY5wB,aAAaT,uBAEvC4oE,EAAWjB,kBAAkBt2C,GAC/B,IAIFn5B,IACCywE,2BAA2BC,KAAc38E,GACvCiM,EAAKjM,OAASxoB,mBAAmBuwC,cAAcD,QAC9C7b,EAAK+b,cACL/b,EAAK+b,aAAaC,mBAAqBjoB,GACxCiM,EAAKjM,OAASxoB,mBAAmBuwC,cAAc2V,SAC9C49C,kBAAkBF,EAAY72D,EAAOtY,EAAMjM,GAEnD,CACF,CAzca,0CAGb1sB,SAAAA,QACGC,OAAO,sBACPqB,QAAQ,0BAA2BgnD,yBAEtCA,wBAAwBjwC,QAAU,CAChC,+BACA,kBACA,qBA+bD,E,4hBChcD,SAASktD,EACPvhE,EACAE,GAUA,MAPgB,CACd0iB,UAAWA,EACX2L,mBAAoBA,EACpB+2E,iBAAkBA,EAClB/xB,kBAAmBA,GAMrB,SAAS3wD,EAAU2hD,GACjB,OACEA,GACAA,EAAUryD,SAAS/O,cAAcmG,QAAQtJ,EAAesd,UAAY,CAExE,CAEA,SAASiR,EAAmBg2C,GAC1B,OACEA,GACAA,EAAUryD,WAAahS,EAAmBsT,aAAa+C,iBAE3D,CAEA,SAAS+uF,EAAiB/gC,GACxB,OACEA,GACAA,EAAUryD,WAAahS,EAAmBsT,aAAasa,eAE3D,CAEA,SAASylD,EAAkBhP,GACzB,OACEA,GACAA,EAAUryD,WAAahS,EAAmBsT,aAAaC,gBAE3D,CACF,E,QAhDAzX,QACGC,OAAO,sBACPqB,QAAQ,0BAA2BikE,GAEtCA,EAAwBltD,QAAU,CAAC,iBAAkB,qBA4CpD,G,oNCtCD,SAASkxF,EACPzpE,EACAnG,EACAG,GAEA,MAAM0vE,EAAkB,IAQxB,MALc,CACZC,aAAcA,EACdC,cAAeA,GAOjB,SAASD,EAAaE,GAQpB,OAPyB,MAArBA,EAAUhK,QACZhmE,EAAoBwB,eAClB,iCACAquE,GAIG1pE,EAAG4kC,OAAOilC,EACnB,CAEA,SAASD,EAAcC,GAQrB,OAPyB,MAArBA,EAAUhK,OACZ7lE,EAAa8vE,uBAAsB,GAGnCC,EAAsBF,GAGjB7pE,EAAG4kC,OAAOilC,EACnB,CAEA,SAASE,EAAsBF,GAG7B,MAAMG,EAAa,IACbC,EAAc,IAEpB,GAAIJ,EAAUhK,SAAWmK,GAAcH,EAAUhK,SAAWoK,EAAa,CAGvE,MAAMv/F,EAAOm/F,EAAUn/F,KACjB85B,EAAU95B,EAAK85B,SAAW95B,EAAKyiF,QACrC,GAAI3oD,EAAS,CACX,MAAO8B,EAAK4jE,EAAWC,GACrB,gCAAgCzhE,KAAKlE,GACvC3K,EAAoBwB,eAAe8uE,EAAWT,GAC1CQ,IACFx/F,EAAK85B,QAAU2lE,EACfz/F,EAAKw/F,UAAYA,EAAU58D,OAAO,EAAG48D,EAAUl3F,OAAS,GAE5D,CACF,KAAO,CAGL,IAAIuyD,EAAS,GACT6kC,EACgB3oG,MAAlBooG,EAAUn/F,KAAoBm/F,EAAUn/F,KAAK0/F,WAAa,CAAC,EAC7D,IAAK,IAAIriG,KAAOqiG,EACd,IAAK,IAAIr3F,EAAI,EAAGA,EAAIq3F,EAAWriG,GAAKiL,OAAQD,IAC1CwyD,EAAOzyD,KAAKs3F,EAAWriG,GAAKgL,IAQhC,IAAK,IAAIhL,KAJL8hG,EAAUn/F,MAAQm/F,EAAUn/F,KAAK2/F,mBACnC9kC,EAAOzyD,KAAK+2F,EAAUn/F,KAAK2/F,mBAGb9kC,EACd1rC,EAAoBwB,eAAekqC,EAAOx9D,GAAM2hG,EAEpD,CACF,CACF,C,iDA1FAxpG,QACGC,OAAO,sBACPqB,QAAQ,gCAAiCioG,GAE5CA,EAA8BlxF,QAAU,CACtC,KACA,sBACA,eAmFD,G,sMCzFD,WASE,SAAS+xF,EAAmBxqE,EAAOv7B,EAAYy7B,GAE7C,IAAIhwB,EAAU,CACZu6F,QAAS,GACTC,UAAWA,GAGb,OAAOx6F,EAGP,SAASw6F,EAAUC,GACjB,OAAIz6F,EAAQu6F,QAAQE,GAAezqE,EAAGye,KAAKzuC,EAAQu6F,QAAQE,IAGpD3qE,EACJ3nB,IAAI5T,EAAW47B,WAAa,+BAAiCsqE,GAC7DruE,MAAK,SAAUwG,GAEd,OADA5yB,EAAQu6F,QAAQE,GAAS7nE,EAASl4B,KAC3Bk4B,EAASl4B,IAClB,GAIJ,CACF,CA9BAxK,QACGC,OAAO,sBACPqB,QAAQ,qBAAsB8oG,GAEjCA,EAAmB/xF,QAAU,CAAC,QAAS,aAAc,KA2BtD,CAlCD,EAkCK,G,2WChBE,MAAMmyF,EACX3mG,YAAoB4mG,GAAwB,KAAxBA,uBAAAA,CAAyB,CAErCC,aACN,6HAGK7rD,2BAA2BP,GAChC,MAAQ,qCAAoCA,EAAQ9P,2BAA2B8P,EAAQG,gBAAgBH,EAAQ31C,eACjH,CAEOo1D,oBAAoBrgB,GACzB,MAAMitD,EAAQ,uBAUd,OAT2BjtD,EAASh6B,QAClCinF,GACA,CAAC3iE,EAAO4iE,EAAS9+F,IACP,2BAA0Bk8B,EAAM4zD,UACtC,EACA5zD,EAAMl1B,OAAS,UAKvB,CAEOgoB,+BAA+B+vE,GACpC,MAMMC,EAAiB,YAQvB,OAd2BD,EAAennF,QACxCzhB,KAAKyoG,cACL,CAAC1iE,EAAO4iE,EAAS9+F,IACP,KAAIA,OAKb4X,QAAQ,6BAA8B,IACtCA,QAAQ,eAAgB,IACxBA,QAAQonF,EAAgB,QACxBpnF,QAAQ,cAAe,IACvBA,QAAQ,aAAc,IAG3B,CAEO2uE,qBAAqB0Y,GAC1B,IAAK,MAAM3vE,KAAW2vE,EACpB3vE,EAAQqB,gBACNx6B,KAAKwoG,uBAAuBO,gCAC1B5vE,EAAQ6vE,aAId,OAAOF,CACT,CAEOpwE,+BACLuwE,GAEA,MAAMxwE,EAA8B,GAC9BywE,EAAe,qBACfC,EAAmB,0BAEzB,IAAIC,EACJ,KAA6D,QAArDA,EAAYppG,KAAKyoG,aAAaliE,KAAK0iE,KACzC,GAAIG,GAAaA,EAAUv4F,OAAS,EAAG,CACrC,MAAMw4F,EAAaD,EAAU,GAAGrjE,MAAMmjE,GAChCI,EAAiBF,EAAU,GAAGrjE,MAAMojE,GAE1C,GACEE,GACAA,EAAWx4F,OAAS,GACpBy4F,GACAA,EAAez4F,OAAS,EACxB,CACA,MAAM07B,EAAkBvsC,KAAKupG,UAAUF,EAAW,GAAI,YAChD7sD,EAAsB3iB,SAC1B75B,KAAKupG,UAAUD,EAAe,GAAI,kBAIlC7wE,EAASx7B,WAAWusG,GACXA,EAAEj9D,UAAYA,IAClB,GAEL9T,EAAS9nB,KAAK,CACZ47B,QAASA,EACTiQ,YAAaA,GAGnB,CACF,CAGF,OAAO/jB,CACT,CAEOO,WAAWyiB,GAChB,MAAMitD,EAAQ,yBACd,OAAOjtD,EAASh6B,QAAQinF,EAAO,GACjC,CAEQa,UAAU9rE,EAAa73B,GAC7B,MAAMw3E,EAAO3/C,EAAIhc,QAAS,GAAE7b,MAAS,IACrC,OAAOw3E,EAAKpvC,MAAM,EAAGovC,EAAKvsE,OAAS,EACrC,EACD,4BAED9S,EAAAA,QACGC,OAAO,sBACPqB,QAAQ,0BAA2B,CAClC,yBACCmpG,GACC,IAAID,EAAwBC,IAC7B,G,4QCzHL,MAAMiB,EAAqB,GAc3B,SAASx6D,EACPxM,EACAb,EACA0hC,EACArhE,EACAshE,GAgDA,MA7CgB,CACdmmC,iBAAkBA,EAClBC,aAAcA,EACdtjC,kBAAmBA,EACnBujC,iBAAkBA,EAClBC,kBAAmBA,EACnBC,sBAAuBA,EACvB98B,wBAAyBA,EACzB+8B,aAAcA,EACdC,2BAA4BA,EAC5BC,yBAA0BA,EAC1BC,gBAAiBA,EACjBC,kBAAmBA,EACnBC,aAAcA,EACdl8B,YAAaA,EACbm8B,eAAgBA,EAChBC,iBAAkBA,EAClBnlC,iBAAkBA,EAClBE,kBAAmBA,EACnB2I,oBAAqBA,EACrBtD,qCAAsCA,EACtC8E,wBAAyBA,EACzBpB,0CACEA,EACFm8B,sCACEA,EACFC,iBAAkBA,EAClB19B,eAAgBA,EAChB29B,WAAYA,EACZC,eAAgBA,EAChBC,cAAeA,EACfxiC,uBAAwBA,EACxByiC,qBAAsBA,EACtBC,sBAAuBA,EACvBC,sCACEA,EACFhiC,kBAAmBA,EACnBiiC,yBAA0BA,EAC1BC,wBAAyBA,EACzBj3D,yBAA0BA,EAC1BD,0BAA2BA,EAC3Bm3D,yCACEA,GAQJ,SAASvB,EAAiB9xF,EAAeC,GACvC4qB,EAAcxtB,QAAQ2C,GAAe,SAAUszF,QACH5rG,IAAtC4rG,EAAUxmG,0BACZwmG,EAAUxmG,yBAA0B,QAEEpF,IAApC4rG,EAAUtkF,wBACZskF,EAAUtkF,uBAAwB,QAEStnB,IAAzC4rG,EAAUlkF,6BACZkkF,EAAUlkF,4BAA6B,QAEH1nB,IAAlC4rG,EAAU9jF,sBACZ8jF,EAAU9jF,qBAAsB,QAEc9nB,IAA5C4rG,EAAUhkF,gCACZgkF,EAAUhkF,+BAAgC,GAGlB,YAAtBgkF,EAAUj3F,WACZi3F,EAAUnkF,qBAAsB,EAEhC0b,EAAcxtB,QAAQi2F,EAAUjxB,OAAQv7B,SACR,IAAnBA,EAAEy7B,cAAgCz7B,EAAEy7B,eAC7C+wB,EAAUnkF,qBAAsB,EAAI,IAG5C,IAEA,MAAM4+E,EAAYgE,EAAa/xF,EAAeC,GAC9C4qB,EAAcxtB,QAAQ0wF,GAAW,SAAUuF,IAEvCA,QACuC5rG,IAAtC4rG,EAAUxmG,0BAC6B,IAAtCwmG,EAAUxmG,0BAEZwmG,EAAUxmG,yBAA0B,EAExC,GACF,CAEA,SAASilG,EAAa/xF,EAAeC,GACnC,MAAM4tF,EAAUhjE,EAAcpf,KAAKzL,GAAe,SAAUpT,GAC1D,OAA+B,IAAxBA,EAAK6T,cACd,IAGA,QAAgB/Y,IAAZmmG,EACF,OAGF,MAAMC,EAAiBjjE,EAAcvf,OAAOrL,GAAe,SAAU0B,GACnE,OAAOA,EAAKgK,KAAOkiF,EAAQ7/F,GAC7B,IACM+/F,EAAY,GAYlB,OAXAljE,EAAcxtB,QAAQywF,GAAgB,SAAUnsF,GAC9C,MAAM/U,EAAOi+B,EAAcpf,KAAKzL,GAAe,SAAUpT,GACvD,OACEA,EAAKoB,MAAQ2T,EAAK+J,OACC,aAAlB9e,EAAKyP,UACc,cAAlBzP,EAAKyP,UACLqvD,EAAwB3+C,UAAUngB,GAExC,IACAmhG,EAAUh1F,KAAKnM,EACjB,IACOmhG,CACT,CAEA,SAASkE,EAAkBjyF,GACzB,OAAOA,EAAcyL,MAAM3iB,GACH,UAAfA,EAAEuT,UAAmC,UAAXvT,EAAEkL,MAEvC,CAEA,SAASg+F,EAAiBhyF,EAAeC,GACvC,IAAIoL,EAAQpL,EACRszF,EAAYtB,EAAkBjyF,GAGlC,IAAKuzF,EAAW,CAEd,MAAMC,EACJxzF,EAAcwpF,QACZ,CAACiK,EAAaC,IACZp8F,KAAKC,IAAIk8F,EAAaC,EAAa1lG,MACrCmxC,OAAOmmC,WACL,EACNiuB,EAAY,CACV52F,GAAI62F,EAAOh6F,WACXxL,IAAKwlG,EAET,CAGA,MAAMG,EAAmB3zF,EAAcsL,QACpCxiB,GAAsD,IAAhDosE,EAAepsE,EAAEkF,IAAKiS,GAAehH,SAS9C,OAPAoS,EAAQA,EAAM2gB,OACZ2nE,EAAiBlyE,KAAK34B,IAAC,CACrB4iB,KAAM6nF,EAAUvlG,IAChB2d,GAAI7iB,EAAEkF,SAIH,CAAEpB,KAAM2mG,EAAWloF,QAC5B,CAEA,SAASojD,EAAkBzuD,EAAeC,GACxC,MAAM2zF,EAAY,CAAEj3F,GAAI,MAClB42F,EAAYtB,EAAkBjyF,GAEpC,GAAIuzF,EAAW,CACb,MAAMM,EAAwB5zF,EAAcwL,MAAMF,GACzCA,EAAEG,OAAS6nF,EAAUvlG,MAG9B,GAAI6lG,EAAuB,CACzB,MAAMhkF,EAAY7P,EAAcyL,MAAM3iB,GAC7BA,EAAEkF,MAAQ6lG,EAAsBloF,KAGzC,OAAIkE,GAGK+jF,CAEX,CACE,OAAOA,CAEX,CACE,OAAOA,CAEX,CAEA,SAASd,EAAe9yF,EAAe8zF,EAAWnyF,GAChD,MAAMoyF,EAAWvB,EAAaxyF,EAAe2B,EAAK+J,MAElD,GAAIqoF,EAAU,CACZ,GAAIroC,EAAwBhzC,mBAAmBq7E,GAC7C,MAAQ,KAAIpyF,EAAK+J,OACZ,GACLqoF,EAAS13F,SAAS/O,gBAClBjD,EAAmBsT,aAAasa,gBAEhC,MAAQ,KAAItW,EAAK+J,QAAQ/J,EAAKgK,KACzB,CACL,MAAMN,EAAQwf,EAAcvf,OAAOwoF,GAAW,SAAUvoF,GACtD,OAAOA,EAAEI,KAAOooF,EAAS/lG,KAAOud,EAAEyoF,aAAiC,KAAlBzoF,EAAEyoF,WACrD,IAEA,GAAI3oF,GAASA,EAAMpS,OAAS,EAC1B,OAAOoS,EAAM,GAAG2oF,WAEpB,CACF,CAGF,CAEA,SAAS9B,EACP4B,EACA9zF,GAEA,MAAM7F,EAAsB,GAS5B,OARA25F,EAAUz2F,SAASsE,IACjB,MAAM/U,EAAOi+B,EAAcpf,KAAKzL,GAAe,SAAUpT,GACvD,OAAOA,EAAKoB,MAAQ2T,EAAKgK,KAAOhK,EAAKzB,UACvC,IACYxY,MAARkF,GACFuN,EAAMpB,KAAKnM,EACb,IAEKuN,CACT,CAEA,SAASi7D,EAAwB0+B,EAAW9zF,GAC1C,MAAM7F,EAAQ,GASd,OARA0wB,EAAcxtB,QAAQy2F,GAAW,SAAUnyF,GACzC,MAAM/U,EAAOi+B,EAAcpf,KAAKzL,GAAe,SAAUpT,GACvD,OAAOA,EAAKoB,MAAQ2T,EAAK+J,OAAS/J,EAAKzB,UACzC,IACYxY,MAARkF,GACFuN,EAAMpB,KAAKnM,EAEf,IACOuN,CACT,CAEA,SAASg4F,EAAa8B,GACpB,IAAI//B,EAAY,OAYhB,OAVoBxsE,MAAhBusG,EAAOpnE,QAGNonE,EAAOpnE,MAAMsB,MACZ,wEAGF+lC,EAAY+/B,EAAOpnE,QAGhBqnC,CACT,CAEA,SAASk+B,EAA2BzwF,EAAMo0D,GACxC,IAAIm+B,EAAgB,SAOpB,OAJIvyF,EAAKgK,KAAOoqD,EAAKsG,aACnB63B,EAAgB,aAGXA,CACT,CAEA,SAAS7B,EAAyBpyF,EAAeg0F,EAAQE,GACvD,IAAIC,EAgBJ,OAbEA,EADc1sG,MAAZysG,EACUtpE,EAAcxlC,UAAU4a,GAAe,SAAUo0F,GAC3D,OACEA,EAAI1oF,KAAOsoF,EAAOjmG,KAAOqmG,EAAI3oF,OAASyoF,EAASnmG,MAAQqmG,EAAIn0F,UAE/D,IAEY2qB,EAAcxlC,UAAU4a,GAAe,SAAUo0F,GAC3D,OAAOA,EAAI1oF,KAAOsoF,EAAOjmG,MAAQqmG,EAAIn0F,UACvC,IAGWD,EAAcm0F,EAG7B,CAEA,SAAS9B,EACPtyF,EACA2B,GAEA,OAAKA,EAIQkpB,EAAcpf,KAAKzL,GAAe,SAAUpT,GACvD,OAAOA,EAAKoB,MAAQ2T,EAAKgK,EAC3B,IALS,IAQX,CAEA,SAAS4mF,EAAkBp4F,EAAqBwH,GAC9C,OAAKA,GAASxH,EAIDA,EAAMsR,MAAM7e,GAASA,EAAKoB,MAAQ2T,EAAK+J,OAH3C,IAKX,CAEA,SAAS8mF,EAAaxyF,EAAehS,GAKnC,OAAOgS,EAJW6qB,EAAcxlC,UAAU2a,GAAe,SAAUs0F,GACjE,OAAOA,EAAItmG,MAAQA,CACrB,IAGF,CAEA,SAASsoE,EAAYt2D,EAAerD,GAKlC,OAJakuB,EAAcpf,KAAKzL,GAAe,SAAUpT,GACvD,OAAOA,EAAK+P,KAAOA,CACrB,GAGF,CAEA,SAAS81F,EAAezyF,EAAerD,GAKrC,OAJakuB,EAAcpf,KAAKzL,GAAe,SAAUpT,GACvD,OAAOA,EAAK+P,KAAOA,CACrB,IAEY3O,GACd,CAEA,SAAS0kG,EAAiBzyF,EAAiCjS,GAIzD,OAHciS,EAAcqL,QAAQ3J,GAC3BA,EAAK+J,OAAS1d,IAAQ2T,EAAKzB,YAGtC,CAEA,SAASqtD,EAAiBvtD,GACxB,OAAO6qB,EAAcvf,OAAOtL,GAAgBpT,GACnCA,EAAKyP,WAAahS,EAAmBsT,aAAa6J,UAE7D,CAEA,SAASimD,EAAkBztD,GACzB,OAAO6qB,EAAcvf,OAAOtL,GAAgBpT,GACnCA,EAAKyP,WAAahS,EAAmBsT,aAAa82D,WAE7D,CAEA,SAAS2B,EACPm+B,EACAv0F,EACAC,GAIA,OAFc2yF,EAAiB2B,EAASt0F,GACpBwhB,KAAKlW,GAAM+mF,EAAgBtyF,EAAeuL,IAEhE,CAEA,SAASunD,EACPyhC,EACAv0F,EACAC,EACAu0F,EACAC,GAEA,MAAMxgC,EAAYmC,EAChBm+B,EACAv0F,EACAC,GAqCF,OAnCKu0F,IAAmBA,EAAoB,IAE5C3pE,EAAc1zB,KAAK88D,GAAYrnE,IAC7B,OAAQA,EAAKyP,UACX,KAAKhS,EAAmBsT,aAAa6J,SACrC,KAAKnd,EAAmBsT,aAAa82D,UACnC,GAAI+/B,EAAkB/oF,MAAM3iB,GAAMA,EAAEkF,MAAQpB,EAAKoB,MAAM,MACvDwmG,EAAkBz7F,KAAKnM,GACvB,MACF,KAAKvC,EAAmBsT,aAAasa,gBACrC,KAAK5tB,EAAmBsT,aAAaC,iBAC9B62F,GACH3hC,EACElmE,EAAKoB,IACLgS,EACAC,EACAu0F,EACAC,GAEJ,MACF,KAAKpqG,EAAmBsT,aAAa+C,kBACnCoyD,EACElmE,EAAKoB,IACLgS,EACAC,EACAu0F,EACAC,GAGJ,KAAKpqG,EAAmBsT,aAAaE,OAE7B,IAIL22F,CACT,CAEA,SAAStB,EACPqB,EACAv0F,EACAC,EACAy0F,EACAD,GAEA,MAAMxgC,EAAYmC,EAChBm+B,EACAv0F,EACAC,GAqCF,OAnCKy0F,IAAoBA,EAAqB,IAE9C7pE,EAAc1zB,KAAK88D,GAAYrnE,IAC7B,OAAQA,EAAKyP,UACX,KAAKhS,EAAmBsT,aAAa82D,UACnC,GAAIigC,EAAmBjpF,MAAM3iB,GAAMA,EAAEkF,MAAQpB,EAAKoB,MAAM,MACxD0mG,EAAmB37F,KAAKnM,GACxB,MACF,KAAKvC,EAAmBsT,aAAasa,gBACrC,KAAK5tB,EAAmBsT,aAAaC,iBAC9B62F,GACHvB,EACEtmG,EAAKoB,IACLgS,EACAC,EACAy0F,EACAD,GAEJ,MACF,KAAKpqG,EAAmBsT,aAAa+C,kBACnCwyF,EACEtmG,EAAKoB,IACLgS,EACAC,EACAy0F,EACAD,GAGJ,KAAKpqG,EAAmBsT,aAAaE,MACrC,KAAKxT,EAAmBsT,aAAa6J,UAE7B,IAILktF,CACT,CAEA,SAAS98B,EACP28B,EACAp6F,EACAkR,GAIA,OAFoB6pD,EAAeq/B,EAASlpF,GACVoW,KAAKlW,GAAMgnF,EAAkBp4F,EAAOoR,IAExE,CAEA,SAAS4nF,EACPoB,EACAv0F,EACAC,GAEA,IADAu0F,EAAoB,UAAH,6CAAG,GAEpB,MAAMvgC,EAAYnB,EAChByhC,EACAv0F,EACAC,EACA,GACA,GAGF,OAAKg0D,GAAkC,IAArBA,EAAUh7D,QAE5B4xB,EAAcxtB,QAAQ42D,GAAYrnE,IAE9Bi+B,EAAcpf,KAAK+oF,GAAoB1rG,GAC9BA,EAAEkF,MAAQpB,EAAKoB,QAK1BwmG,EAAkBz7F,KAAKnM,GACvBumG,EACEvmG,EAAKoB,IACLgS,EACAC,EACAu0F,GACD,IAGIA,GAnB0C,EAoBnD,CAkBA,SAASh+B,EACP+9B,EACAv0F,EACAC,EACA00F,EACAC,EACAH,GAEAvtG,QAAQy1E,MACN,IAAIzuE,MACF,0EAIJ,MAAM2mG,EAAYj9B,EAChB28B,EACAv0F,EACAC,GA0DF,OAxDK00F,IAAmBA,EAAoB,IAE5C9pE,EAAc1zB,KAAK09F,GAAYjoG,IAC7B,OAAQA,EAAKyP,UACX,KAAKhS,EAAmBsT,aAAa6J,SACnC,GAAImtF,EAAkBlpF,MAAM3iB,GAAMA,EAAEkF,MAAQpB,EAAKoB,MAAM,MACvD2mG,EAAkB57F,KAAKnM,GACnBgoG,GACFp+B,EACE5pE,EAAKoB,IACLgS,EACAC,EACA00F,EACAC,EACAH,GAEJ,MACF,KAAKpqG,EAAmBsT,aAAa82D,UAC/BmgC,GACFp+B,EACE5pE,EAAKoB,IACLgS,EACAC,EACA00F,EACAC,EACAH,GAEJ,MACF,KAAKpqG,EAAmBsT,aAAasa,gBACrC,KAAK5tB,EAAmBsT,aAAaC,iBAC9B62F,GACHj+B,EACE5pE,EAAKoB,IACLgS,EACAC,EACA00F,EACAC,EACAH,GAEJ,MACF,KAAKpqG,EAAmBsT,aAAa+C,kBACnC81D,EACE5pE,EAAKoB,IACLgS,EACAC,EACA00F,EACAC,EACAH,GAGJ,KAAKpqG,EAAmBsT,aAAaE,OAE7B,IAIL82F,CACT,CAgBA,SAASzjC,EAAkB4jC,EAAYC,EAAatlG,GAKlD,OAAOulG,EACLF,GACCG,GACCH,GAAcG,GAAiBF,EAAYE,IAP/B,CACdxlG,UACAylG,WAAY,CAAC,GAQjB,CAEA,SAASF,EAAmBC,EAAeF,EAAazqF,GACtD,MAAM,QAAE7a,EAAO,WAAEylG,GAAe5qF,EAChC,GAAIyqF,EAAYE,GACd,OAAOA,EACF,CACL,MAAM5pF,EAAQ4pF,EAAcE,gBAC5B,KAAO9pF,EAAMiD,QAAQ,CACnB,MAAM3M,EAAO0J,EAAMmD,MAAM7d,KACnBitC,EAAQnuC,EAAQigB,eAAe/N,EAAK+J,MACpC0pF,EAAc,GAAEzzF,EAAK+J,QAAQ/J,EAAKgK,KACxC,GAA8B,MAA1BupF,EAAWE,GACbF,EAAWE,GAAc,OACpB,KAAMF,EAAWE,GAAcvD,EAIpC,MAAM,IAAI3jG,MACR,8EAGJ,GAAY,MAARyT,IAAiBA,EAAKzB,WAAY,CACpC,MAAMm1F,EAAaL,EAAmBp3D,EAAOm3D,EAAazqF,GAC1D,GAAI+qF,EACF,OAAOA,CAEX,CACF,CACA,OAAO,IACT,CACF,CAEA,SAAS1C,EACP4B,EACAv0F,EACAC,EACA00F,EACAC,GAEA,IAAIU,EAAwB9+B,EAC1B+9B,EACAv0F,EACAC,EACA00F,EACAC,GAUF,GARAU,EAAwBA,EAAsBhqF,QAAQ1e,GAElD++D,EAAyBoM,+BAA+BnrE,IACxDA,EAAKL,UAAYlC,EAAmBkC,SAAS2yE,aAC7CtyE,EAAKL,UAAYlC,EAAmBkC,SAASsqE,qBAI7Cy+B,GAAyBA,EAAsBr8F,OAAS,EAK1D,OAJkBq8F,EAAsB7zE,KAAKq2C,IACpC,CAAEy9B,IAAKz9B,EAAGn7D,GAAIo2C,MAAO+kB,EAAG9jE,QAOrC,CAEA,SAASq/F,EACPkB,EACAv0F,EACAC,EACA00F,EACAC,GAEA,MASMY,GARJh/B,EACE+9B,EACAv0F,EACAC,EACA00F,EACAC,IACG,IAEkCtpF,QAAQ1e,GAC/C++D,EAAyBoM,+BAA+BnrE,KAG1D,OAAO4oG,EAAWv8F,OAAS,EACvBu8F,EAAW/zE,KAAK70B,IAAI,CAAQ2oG,IAAK3oG,EAAK+P,GAAIo2C,MAAOnmD,EAAKoH,SACtD,EACN,CAEA,SAAS4+F,EAAiB2B,EAAiBt0F,GAIzC,OAHcA,EAAcqL,QAAQ3J,GAC3BA,EAAK+J,OAAS6oF,IAAY5yF,EAAKzB,YAG1C,CAEA,SAASg1D,EAAeq/B,EAAiBlpF,GAIvC,OAHoBA,EAAMC,QACvB3J,GAASA,EAAKgK,KAAO4oF,IAAY5yF,EAAKzB,YAG3C,CAMA,SAAS2yF,EAAW7yF,EAAe2B,GACjC,MAAMoyF,EAAWvB,EAAaxyF,EAAe2B,EAAK+J,MAC5C8oB,EAAU,CACdn0B,KAAM,UACNo1F,QAAS,0BAOLn1F,EAAa,EAwBnB,MApBwB,UAAtByzF,EAAS13F,UACT03F,EAAStzF,iBAAmBH,IAE5Bk0B,EAAQn0B,KAAO,QAGbqrD,EAAwB3+C,UAAUgnF,KACpCv/D,EAAQn0B,KAAOqrD,EAAwBhzC,mBAAmBq7E,GACtD,OACA,UACJv/D,EAAQihE,QAAU/pC,EAAwBhzC,mBAAmBq7E,GACzD,yBACA,0BAGFpyF,EAAKzB,aACPs0B,EAAQn0B,KAAO,OACfm0B,EAAQihE,QAAU,0BAGbjhE,CACT,CAEA,SAASu+D,EAAc/yF,EAAehS,GACpC,MAAMpB,EAAO4lG,EAAaxyF,EAAehS,GAGzC,QAAI09D,EAAwB3+C,UAAUngB,EAKxC,CAEA,SAAS2jE,EAAuB3jE,GAC9B,OACEA,IACCA,EAAKL,WAAa+iE,EAAAA,SAAS7iE,mBAC1BG,EAAKL,WAAa+iE,EAAAA,SAAS5iE,oBAEjC,CAEA,SAASsmG,EAAqBpmG,EAAMqT,GAClC,OAAOA,EAAc02B,MAAMprB,GAAMA,EAAErL,YAAcqL,EAAEG,OAAS9e,EAAKoB,KACnE,CAEA,SAASilG,EAAsBrmG,EAAMoT,EAAeC,GAClD,MAAMuL,EAAWvL,EAAcwL,MAC5BF,GAAMA,EAAErL,YAAcqL,EAAEG,OAAS9e,EAAKoB,MAEzC,GAAIwd,EACF,OAAOxL,EAAcyL,MAAM3iB,GAAMA,EAAEkF,MAAQwd,EAASG,IAGxD,CAEA,SAASwwB,EAAyBw9B,GAChC,IAAI+7B,EAAgB,GACpB,OAAK/7B,GAAeA,EAAY1gE,OAAS,GAIzC4xB,EAAcxtB,QAAQs8D,GAAcvyC,IAClC,GAAuB,UAAnBA,EAAMwyC,SACR,OAGF,MAAMxiC,EAAQg8D,EAAwBhsE,GACtCsuE,EAAgBA,EAAc1pE,OAAOoL,EAAM,IATpCs+D,CAaX,CACA,SAASC,EAAsB72E,GAC7B,GAAIA,EAAKjM,OAASxoB,EAAmBuwC,cAAcI,SACjD,GACElc,EAAKuI,cACL6F,MAAMtB,QAAQ9M,EAAKuI,aAAaT,qBAChC,CACA,MAAMqU,EAAiBnc,EAAKuI,aAAaT,oBAAoBnb,MAC1DyvB,GAAWA,EAAOjpC,OAAS6sB,EAAKuI,aAAac,eAEhD,IACE8S,aAAc,EAAdA,EAAgBhT,YACd59B,EAAmBmkG,mBAAmBpzD,SACxCH,aAAc,EAAdA,EAAgBhT,YACd59B,EAAmBmkG,mBAAmBnzD,SAExC,OAAO,CAEX,MAAO,IAAK3c,MAAMI,EAAK4zB,OAASh0B,MAAMI,EAAKtQ,OACzC,OAAO,EAGX,OAAO,CACT,CAEA,SAASonF,EAA6B92E,GACpC,QACEA,EAAKjM,OAASxoB,EAAmBuwC,cAAcD,SAC/C7b,EAAK+b,cAGH/b,EAAK+b,aAAaC,mBAChBzwC,EAAmBmkG,mBAAmBnzD,UACxCvc,EAAK+b,aAAaC,mBAChBzwC,EAAmBmkG,mBAAmBpzD,OAI9C,CACA,SAASy6D,EAAqB/2E,EAAMsY,GAClC,GAAItY,EAAKjM,OAASxoB,EAAmBuwC,cAAc2V,QACjD,OAAO,EAGT,IAAImwB,GAAW,EACXo1B,GAAa,EAEjB,IAAK,MAAM9rF,KAAW8U,EAAKqZ,cAAcE,gBAAiB,CACxD,MAAM09D,EAAW9zE,SAASjY,EAAQH,QAAQ,SAAU,IAAK,IACnDnX,EAAS0kC,EAAM3rB,MAAMqc,GAAMA,EAAEnrB,KAAOo5F,IAE1C,GAAKrjG,EAAL,CAEA,GACEA,EAAO20B,cACP6F,MAAMtB,QAAQl5B,EAAO20B,aAAaT,qBAClC,CACA,MAAMqU,EAAiBvoC,EAAO20B,aAAaT,oBAAoBnb,MAC5DyvB,GAAWA,EAAOjpC,OAASS,EAAO20B,aAAac,gBAGhD8S,aAAc,EAAdA,EAAgBhT,YAChB59B,EAAmBmkG,mBAAmBnzD,UAEtCy6D,GAAa,EACbh3E,EAAKk3E,WAAa3rG,EAAmBmkG,mBAAmBnzD,WAExDJ,aAAc,EAAdA,EAAgBhT,YAChB59B,EAAmBmkG,mBAAmBpzD,SAEtCslC,GAAW,EACX5hD,EAAKk3E,WAAa3rG,EAAmBmkG,mBAAmBpzD,OAE5D,MAAW1oC,EAAOmgB,OAASxoB,EAAmBuwC,cAAcQ,QAC1DslC,GAAW,EACX5hD,EAAKk3E,WAAa3rG,EAAmBqwC,cAAcU,QAC1C1oC,EAAOmgB,OAASxoB,EAAmBuwC,cAAcS,WAC1Dy6D,GAAa,EACbh3E,EAAKk3E,WAAa3rG,EAAmBqwC,cAAcW,UAGrD,GAAIqlC,GAAYo1B,EACd,OAAO,CA/BY,CAiCvB,CAEA,OAAO,CACT,CAEA,SAAS1C,EAAwBhsE,GAC/B,MAAMsuE,EAAgB,GACtB,IAAKtuE,EAAMmlB,YACT,OAAOmpD,EAGT,IAAIt+D,EAAQ,CAAC,EACb,GAAIlK,MAAMtB,QAAQxE,EAAMmlB,aACtBnV,EAAQhQ,EAAMmlB,iBAEd,IACEnV,EAAQtS,KAAK9zB,MAAMo2B,EAAMmlB,YAK3B,CAJE,MAAOplD,GAGP,OAFAD,QAAQC,MAAMigC,EAAMmlB,aACpBrlD,QAAQC,MAAMA,GACPuuG,CACT,CAyBF,OAtBA7qE,EAAcxtB,QAAQ+5B,GAAQjQ,KAE1BA,EAAItU,OAASxoB,EAAmBuwC,cAAcS,UAC9ClU,EAAItU,OAASxoB,EAAmBuwC,cAAcQ,QAC9Cu6D,EAAsBxuE,IACtByuE,EAA6BzuE,IAC7B0uE,EAAqB1uE,EAAKiQ,KAE1BvM,EAAcxtB,QACZhT,EAAmB4rG,6BAClBpjF,IACC6iF,EAAc38F,KAAK,CACjB4D,GAAIwqB,EAAIxqB,GACRi/B,YACExU,EAAMwU,YAAc,MAAQ/oB,EAAO,OAASsU,EAAI0U,OAClD5pC,KAAMm1B,EAAMn1B,KAAO,KAAOk1B,EAAIxqB,GAAK,IAAMkW,EAAKvlB,cAC9CssE,SAAUs8B,EAAY/uE,IACtB,GAGR,IAEKuuE,CACT,CAEA,SAASQ,EAAYp3E,GACnB,GACEA,EAAKjM,OAASxoB,EAAmBuwC,cAAcQ,QAC/Ctc,EAAKjM,OAASxoB,EAAmBuwC,cAAcS,SAE/C,OAAOvc,EAAKjM,KACP,GAAIiM,EAAKjM,OAASxoB,EAAmBuwC,cAAcI,UACxD,GACElc,EAAKuI,cACL6F,MAAMtB,QAAQ9M,EAAKuI,aAAaT,qBAChC,CACA,MAAMqU,EAAiBnc,EAAKuI,aAAaT,oBAAoBnb,MAC1DyvB,GAAWA,EAAOjpC,OAAS6sB,EAAKuI,aAAac,eAEhD,IACE8S,aAAc,EAAdA,EAAgBhT,YAAa59B,EAAmBqwC,cAAcW,SAE9D,OAAOhxC,EAAmBuwC,cAAcS,SACnC,IACLJ,aAAc,EAAdA,EAAgBhT,YAAa59B,EAAmBqwC,cAAcU,OAE9D,OAAO/wC,EAAmBuwC,cAAcQ,MAE5C,OACK,GAAItc,EAAKjM,OAASxoB,EAAmBuwC,cAAcD,OAAQ,CAChE,GACE7b,EAAK+b,aAAaC,mBAClBzwC,EAAmBqwC,cAAcW,SAEjC,OAAOhxC,EAAmBuwC,cAAcS,SACnC,GACLvc,EAAK+b,aAAaC,mBAClBzwC,EAAmBqwC,cAAcU,OAEjC,OAAO/wC,EAAmBuwC,cAAcQ,MAE5C,MAAO,GAAItc,EAAKjM,OAASxoB,EAAmBuwC,cAAc2V,QAAS,CACjE,GAAIzxB,EAAKk3E,aAAe3rG,EAAmBqwC,cAAcU,OACvD,OAAO/wC,EAAmBuwC,cAAcQ,OAC1C,GAAItc,EAAKk3E,aAAe3rG,EAAmBqwC,cAAcW,SACvD,OAAOhxC,EAAmBuwC,cAAcS,QAC5C,CACF,CACA,SAASa,EAA0B29B,GAUjC,OATAhvC,EAAcxtB,QAAQw8D,GAAa/6C,IAC7BA,EAAK86C,UAAYvvE,EAAmBuwC,cAAcS,UACpDvc,EAAK86C,SAAWvvE,EAAmB8rG,oBAAoB96D,SACvDvc,EAAKjM,KAAOxoB,EAAmBqwC,cAAcW,UACpCvc,EAAK86C,UAAYvvE,EAAmBuwC,cAAcQ,SAC3Dtc,EAAK86C,SAAWvvE,EAAmB8rG,oBAAoB/6D,OACvDtc,EAAKjM,KAAOxoB,EAAmBqwC,cAAcU,OAC/C,IAEKy+B,CACT,CAsBF,CA5hCA1zE,EAAAA,QACGC,OAAO,sBACPqB,QAAQ,+BAAgC4vC,GAE3CA,EAA6B74B,QAAU,CACrC,gBACA,oBACA,0BACA,qBACA,2BAmhCD,O,2XCzhCM,MAAM43F,EACXpsG,YACUurC,EACAomB,GACR,KAFQpmB,cAAAA,EAAqB,KACrBomB,UAAAA,CACP,CAEH06C,sBAAsBC,GACpB,GAAgB5uG,MAAZ4uG,EACF,OAIFluG,KAAKmtC,cAAcghE,sBAAsB,IAAK,IAG9C,MAAMC,EAAQpuG,KAAKmtC,cAAckhE,IAAIH,EAAU,uBAEzCI,EAAWtuG,KAAKmtC,cAAcihE,GAAOG,UAC3C,OAAOvuG,KAAKwuG,mBAAmBF,EACjC,CAEAG,uCAAuCP,GACrC,GAAgB5uG,MAAZ4uG,EACF,OAIFluG,KAAKmtC,cAAcghE,sBAAsB,IAAK,IAE9C,MAAMC,EAAQpuG,KAAKmtC,cAAc+gE,EAAU,uBAErCI,EAAWtuG,KAAKmtC,cAAcihE,GAAOG,UAC3C,OAAOvuG,KAAKwuG,mBAAmBF,EACjC,CAEAI,kCAAkCR,GAChC,GAAgB5uG,MAAZ4uG,EACF,OAGFluG,KAAKmtC,cAAcghE,sBAAsB,IAAK,IAC9C,MAAMC,EAAQpuG,KAAKmtC,cAAckhE,IAAIH,EAAU,uBAC/C,OAAOluG,KAAKwuG,mBAAmBxuG,KAAKmtC,cAAcihE,GAAOG,SAAQ,GACnE,CAEAI,mDAAmDT,GACjD,GAAgB5uG,MAAZ4uG,EACF,OAGFluG,KAAKmtC,cAAcghE,sBAAsB,IAAK,IAC9C,MAAMC,EAAQpuG,KAAKmtC,cAAc+gE,EAAU,uBAC3C,OAAOluG,KAAKwuG,mBAAmBxuG,KAAKmtC,cAAcihE,GAAOG,SAAQ,GACnE,CAEAxF,gCAAgChlD,GAC9B,OAAO/jD,KAAK4uG,gBAAgB7qD,GACxB,MAAQ/jD,KAAK6uG,eAAe9qD,EAAM,QAClC/jD,KAAKiuG,sBAAsBlqD,EACjC,CAEAyqD,mBAAmB/wE,GACjB,OAAOA,EAAIhc,QACT,UACC40B,GAAQA,EAAIzvC,OAAO,GAAGC,cAAgBwvC,EAAIlL,OAAO,GAAGjmC,eAEzD,CAEA0pG,gBAAgB7qD,GACd,GAAIA,EAAM,CACR,MAAM+qD,EAAW9uG,KAAKuzD,UAAU2xB,YAC1BgE,EAAMlpF,KAAKmtC,gBACX4hE,EAAa/uG,KAAKmtC,cAAckhE,IAAItqD,EAAM,uBAChD,QAAKgrD,EAAWz4D,WAETw4D,EAAW,EADA5lB,EAAI8lB,KAAKD,EAAWvtE,OAAO,cAAe,OAE9D,CACA,OAAO,CACT,CAEAytE,iBAAiBC,GACf,OAAOlvG,KAAKmtC,cACTkhE,IAAIa,EAAS,uBACbd,QACA5sE,OAAO,cACZ,CAEAqtE,eAAe9qD,EAAMviB,GACnB,OAAIuiB,GAAQviB,EACHxhC,KAAKmtC,cACTkhE,IAAItqD,EAAM,uBACVqqD,QACA5sE,OAAOA,GACA,EACd,CAEA2tE,gCAAgCprD,EAAMviB,GACpC,OAAIuiB,GAAQviB,EACHxhC,KAAKmtC,cAAc4W,EAAM,uBAC7BqqD,QACA5sE,OAAOA,GACA,EACd,CAEA4tE,cAAcrrD,EAAMviB,GAClB,OAAIuiB,GAAQviB,EACHxhC,KAAKmtC,cAAc4W,EAAM,uBAAuBviB,OAAOA,GACpD,EACd,CAEA6tE,sBAAsBnB,GACpB,OAAgB5uG,MAAZ4uG,EACK,cAELluG,KAAKsvG,UAAUpB,GAEf,OAASluG,KAAKwuG,mBAAmBxuG,KAAKiuG,sBAAsBC,IAI5D,UACAluG,KAAKwuG,mBACHxuG,KAAK0uG,kCAAkCR,GAI/C,CAEAqB,+BAA+BrB,GAC7B,OAAgB5uG,MAAZ4uG,EACK,oBAGLluG,KAAKsvG,UAAUpB,GAEf,aACAluG,KAAKwuG,mBAAmBxuG,KAAKiuG,sBAAsBC,IAInD,aACAluG,KAAKwuG,mBACHxuG,KAAK0uG,kCAAkCR,GAI/C,CAEAsB,uCAAuCtB,GACrC,OAAgB5uG,MAAZ4uG,EACK,cAELluG,KAAKsvG,UAAUpB,GAEf,OACAluG,KAAKwuG,mBACHxuG,KAAKyuG,uCAAuCP,IAK9C,UACAluG,KAAKwuG,mBACHxuG,KAAK2uG,mDAAmDT,GAIhE,CAEAoB,UAAUpB,GACR,GAAgB5uG,MAAZ4uG,EACF,OAAO,EAET,MAAME,EAAQpuG,KAAKmtC,cAAckhE,IAAIH,EAAU,uBAC/C,OAAOluG,KAAKmtC,gBAAgB8oB,QAAQm4C,EACtC,EACD,2BAEDrwG,EAAAA,QACGC,OAAO,sBACPqB,QAAQ,yBAA0B,CACjC,gBACA,aACA,CAAC8tC,EAAuBomB,IACtB,IAAIy6C,EAAuB7gE,EAAeomB,IAC3C,G,mMChML,aAAa,4DAGHx1D,QAAQC,OAAO,qBAAsB,IAC7Cg/B,IAAI,CACJ,iBACA,SAAUC,GACRA,EAAeC,IACb,0BACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,oCACAC,EAAAA,OAAAA,GAGFF,EAAeC,IACb,gCACAC,EAAAA,OAAAA,EAEJ,GACC,G,mMC5BH,aAAa,mDAMb,SAASsyE,IAMP,MAJgB,CACdC,wBAAyBA,GAM3B,SAASA,EACPC,EACAC,EACAC,EACAC,GAEA,IAAKH,EAAc,OAAO,EAC1B,IAAKC,EAAc,OAAQ,EAC3B,MAAMG,EAASJ,EAAa3pE,MAAM,KAC5BgqE,EAASJ,EAAa5pE,MAAM,KAC5BiqE,EAASJ,GAAsBA,EAAmB7pE,MAAM,KACxDkqE,EAASJ,GAAsBA,EAAmB9pE,MAAM,KAE9D,GAAsB,IAAlB+pE,EAAOl/F,QAAkC,IAAlBm/F,EAAOn/F,OAAc,OAAO,EAEvD,GACEk/F,EAAO,GAAGl/F,OAASm/F,EAAO,GAAGn/F,QAC5Bk/F,EAAO,GAAGl/F,SAAWm/F,EAAO,GAAGn/F,QAAUk/F,EAAO,GAAKC,EAAO,GAE7D,OAAQ,EAEV,GACED,EAAO,KAAOC,EAAO,KACpBD,EAAO,GAAGl/F,OAASm/F,EAAO,GAAGn/F,QAC3Bk/F,EAAO,GAAGl/F,SAAWm/F,EAAO,GAAGn/F,QAAUk/F,EAAO,GAAKC,EAAO,IAE/D,OAAQ,EAEV,GAAID,EAAO,KAAOC,EAAO,IAAMD,EAAO,KAAOC,EAAO,GAAI,CACtD,IAAKH,EAAoB,OAAO,EAChC,IAAKC,EAAoB,OAAQ,EAEjC,GAAsB,IAAlBG,EAAOp/F,QAAkC,IAAlBq/F,EAAOr/F,OAAc,OAAO,EAEvD,GACEo/F,EAAO,GAAGp/F,OAASq/F,EAAO,GAAGr/F,QAC5Bo/F,EAAO,GAAGp/F,SAAWq/F,EAAO,GAAGr/F,QAAUo/F,EAAO,GAAKC,EAAO,GAE7D,OAAQ,EAEV,GACED,EAAO,KAAOC,EAAO,KACpBD,EAAO,GAAGp/F,OAASq/F,EAAO,GAAGr/F,QAC3Bo/F,EAAO,GAAGp/F,SAAWq/F,EAAO,GAAGr/F,QAAUo/F,EAAO,GAAKC,EAAO,IAE/D,OAAQ,CACZ,CAEA,OACED,GACAC,GACAD,EAAO,KAAOC,EAAO,IACrBD,EAAO,KAAOC,EAAO,GAEd,EAGF,CACT,CACF,EA1Ea,QAEbnyG,QACGC,OAAO,sBACPqB,QAAQ,uBAAwBowG,EAsElC,G,8QC5DD,SAASU,EACPxyE,EACAv7B,EACA2L,GAEA,MAAMF,EAAU,CACduiG,MAAO,GACPC,oBAAqBA,EACrBC,eAAgBA,EAChBC,SAAUA,EACVC,WAAYA,GAERC,EAAkBruG,EAAW47B,WAAa,QAEhD,OAAOnwB,EAEP,SAAS2iG,EAAWr7F,EAAMsvB,GACxB,OAAO9G,EAAM,CACX8O,IAAKrqC,EAAW47B,WAAa,SAC7B0xD,OAAQ,SACRnnF,KAAM,CACJmoG,cAAev7F,EAAKZ,GACpBo8F,gBAAiBlsE,GAEnBkrD,QAAS,CACP,eAAgB,mCAGtB,CAEA,SAAS4gB,EAASK,GAChB,MAAMC,GAAaD,EAAKr8F,GAMxB,OALIs8F,IACFD,EAAKr8F,GAAKxG,EAAYlP,QACtB+xG,EAAK7sE,WAAah2B,EAAYlP,SAGzB8+B,EACJyrC,KAAmBqnC,EAAiBG,GACpC32E,MAAK,SAAUwG,GACd,MAAMqwE,EAAYrwE,EAASl4B,KAE3B,GAAIsoG,EACFhjG,EAAQuiG,MAAMz/F,KAAK8vB,EAASl4B,WAE5B,IAAK,MAAO4yB,EAAO41E,KAAMljG,EAAQuiG,MAAMhnD,UACrC,GAAI2nD,EAAEx8F,KAAOu8F,EAAUv8F,GAAI,CACzB1G,EAAQuiG,MAAMj1E,GAAS21E,EACvB,KACF,CAKJ,OADAE,IACOF,CACT,GACJ,CAEA,SAAST,EAAoBxsG,GAC3B,OAAO85B,EACJyrC,KACCqnC,EAAkB,uBAClB5sG,EACA,CACE28B,WAAW,IAGdvG,MAAK,SAAUwG,GAEd,OADA1iC,EAAAA,QAAQ+iC,KAAKL,EAASl4B,KAAK6nG,MAAOviG,EAAQuiG,OACnC3vE,EAASl4B,IAClB,GACJ,CAEA,SAAS+nG,EAAeW,GACtB,OAAOtzE,EACJ3nB,IACCy6F,EAAkB,0BAA4BQ,EAC9C,CACEzwE,WAAW,IAGdvG,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,IAClB,GACJ,CAGA,SAASyoG,IACPnjG,EAAQuiG,MAAMxiE,MAAK,CAACsjE,EAAIC,KACtB,MAAMC,EAAkBF,EAAGrnG,KAAKisC,OAAO5wC,cACjCmsG,EAAkBF,EAAGtnG,KAAKisC,OAAO5wC,cAEvC,OAAIksG,EAAkBC,GACZ,EAGND,EAAkBC,EACb,EAGFD,EAAkBC,CAAe,GAE5C,CACF,E,QA3GAtzG,QAAQC,OAAO,sBAAsBqB,QAAQ,iBAAkB8wG,GAE/DA,EAAe/5F,QAAU,CAAC,QAAS,aAAc,cAyGhD,G,+OC7FD,SAASssB,EACP/E,EACAv7B,EACAu1B,EACA8K,EACA5K,GAEA,MAAMhqB,EAAU,CACd62B,MAAO,GACP4sE,QAASA,EACTC,SAAUA,EACVC,WAAYA,EACZC,SAAUA,EACVpwD,SAAUA,EACV7nB,QAASA,EACTk4E,oBAAqBA,EACrBC,eAAgBA,EAChBC,uBAAwBA,EACxBC,eAAgBA,EAChBC,yBAA0BA,EAC1BC,+BAAgCA,EAChCC,iCAAkCA,EAClCC,eAAgBA,EAChBC,oBAAqBA,EACrBruE,YAAaA,EACbsuE,oBAAqBA,EACrBC,cAAeA,EACfC,iBAAkBA,EAClBC,sBAAuBA,EACvBC,kBAAmBA,EACnBttE,4BAA6BA,EAC7Byb,oBAAqBA,GAGvB,OAAO7yC,EAIP,SAASyjG,EAAQj2E,GACf,OAAOsC,EACJyrC,KAAKhnE,EAAW47B,WAAa,SAAU3C,GACvCpB,MAAK,SAAUwG,GAEd,OADA5yB,EAAQ62B,MAAM/zB,KAAK8vB,EAASl4B,KAAKi5C,WAC1B/gB,CACT,GACJ,CAEA,SAAS8wE,EAAS7sE,EAA6BlE,GAC7C,OAAO7C,EACJyrC,KACChnE,EAAW47B,WAAa,iBACxB0G,EACA,CACElE,UAAWA,IAAa,IAG3BvG,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,IAClB,GACJ,CAEA,SAASupG,EAAyBv4E,EAAQ2U,GACxC,OAAOvQ,EACJ3nB,IAAK,GAAE5T,EAAW47B,mBAAmBzE,UAAe2U,KACpDjU,MAAMwG,GACEA,EAASl4B,MAEtB,CAEA,SAASipG,EACPj4E,EACAi5E,EACAC,EACAC,EACAC,GAGA,OAAOh1E,EAAM,CACX8O,IAAKrqC,EAAW47B,WAAa,SAC7B0xD,OAAQ,SACRnnF,KAAM,CACJqqG,cAAer5E,EACfi5E,eAAgBA,EAChBC,iBAAkBA,EAClBC,6BAA8BA,EAC9BC,0BAA2BA,GAE7BhjB,QAAS,CACP,eAAgB,mCAGtB,CAEA,SAAS8hB,EAASp2E,GAChB,OAAOsC,EACJT,IAAI96B,EAAW47B,WAAa,SAAU3C,GACtCpB,MAAK,SAAUwG,GAEd,OADA5yB,EAAQ62B,MAAM/zB,KAAK8vB,EAASl4B,KAAKi5C,WAC1B/gB,CACT,GACJ,CAEA,SAAS4gB,EAAS7gB,GAChB,OAAO7C,EACJ3nB,IACC5T,EAAW47B,WACT,oBACAnG,EAAa0D,YAAYhnB,GAC3B,CAAEisB,UAAWA,IAAa,IAE3BvG,MAAK,SAAUwG,GAEd,OADA1iC,EAAAA,QAAQ+iC,KAAKL,EAASl4B,KAAKi5C,UAAW3zC,EAAQ62B,OACvCjE,EAASl4B,KAAKi5C,SACvB,GACJ,CAEA,SAAShoB,EAAQD,GAQf,OAAOm4E,EALc,CACnBxuF,OAAQ,CACNgc,QAAS,CAAC,CAAEF,MAAO,KAAM5Y,MAAOmT,OAGKU,MAAK,IAAsB,IAArB,MAAE44E,EAAK,MAAEnuE,GAAO,EAC7D,OAAOA,EAAMyuC,KAAK,GAEtB,CAWA,SAAStvC,IAMD,IANa,SACnBC,EAAW,KAAI,KACfR,EAAO,KAAI,MACXklC,EAAQ,IAAG,UACXhoC,GAAY,EAAI,sBAChBwD,EAAwB,MACtB,UAAH,6CAAG,CAAC,EACH,MAAMyI,EAAO,GAAErqC,EAAW47B,yBAEpByH,EAAS,CACb1B,WAAYD,GAAYjM,EAAa0D,YAAYhnB,GACjD6tC,uBAAwBomB,EACxB9oB,gBAAYpgD,EACZ0kC,sBAAuBA,GAGrBV,IACFmC,EAAOia,WAAapc,GAGtB,MAAMz/B,EAAU,CAAE28B,YAAWiF,SAAQkqD,aAASrwF,GACxC66B,EAAcxC,EAAe6B,UAC7Bu+D,EAAQlgE,EAAamgE,WAK3B,OAJK79D,GAAe49D,IAClBl0F,EAAQ8rF,QAAU,CAAEsI,cAAe,UAAYF,IAG1Cp6D,EAAM3nB,IAAIy2B,EAAK5oC,GAASo2B,MAAK,SAAUwG,GAC5C,OAAOA,EAASl4B,KAAK+4C,mBACvB,GACF,CAEA,SAAS6wD,IAID,IAJqB,SAC3BruE,EAAW,KAAI,MACf0kC,EAAQ,IAAG,UACXhoC,GAAY,GACV,UAAH,6CAAG,CAAC,EACH,MAAMiM,EAAO,GAAErqC,EAAW47B,2BAOpBn6B,EAAU,CAAE28B,YAAWiF,OALd,CACb3B,SAAUA,GAAYjM,EAAa0D,YAAYhnB,GAC/C6tC,uBAAwBomB,GAGWmnB,aAASrwF,GAExC66B,EAAcxC,EAAe6B,UAC7Bu+D,EAAQlgE,EAAamgE,WAK3B,OAJK79D,GAAe49D,IAClBl0F,EAAQ8rF,QAAU,CAAEsI,cAAe,UAAYF,IAG1Cp6D,EAAM3nB,IAAIy2B,EAAK5oC,GAASo2B,MAAK,SAAUwG,GAC5C,OAAOA,EAASl4B,KAAK+4C,mBACvB,GACF,CAEA,SAASowD,EAAoB7tG,GAC3B,MAAMivG,EAAc,CAClBC,KAAM,IACNC,KAAM,EACNC,KAAM,EACN3xC,SAAU,IACVp5C,MAAO,IAGT,OADArkB,EAAU4+B,EAAcngC,SAASuB,EAASivG,GACnCn1E,EACJyrC,KAAKhnE,EAAW47B,WAAa,4BAA6Bn6B,EAAS,CAClE28B,WAAW,IAEZvG,MAAK,SAAUwG,GAEd,OADA1iC,EAAAA,QAAQ+iC,KAAKL,EAASl4B,KAAKm8B,MAAO72B,EAAQ62B,OACnCjE,EAASl4B,IAClB,GACJ,CAEA,SAASopG,EAAeuB,EAAU1yE,GAChC,OAAO7C,EACJ3nB,IAAI5T,EAAW47B,WAAa,8BAAgCk1E,EAAU,CACrE1yE,UAAWA,IAAa,IAEzBvG,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,KAAKi5C,SACvB,GACJ,CAEA,SAASowD,EAAuBuB,GAAmC,IAAnB3yE,EAAY,UAAH,8CACvD,OAAO7C,EACJ3nB,IAAI5T,EAAW47B,WAAa,wBAA0Bm1E,EAAgB,CACrE3yE,UAAWA,IAAa,IAEzBvG,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,KAAKi5C,SACvB,GACJ,CAEA,SAASqwD,IACP,OAAOl0E,EACJ3nB,IAAI5T,EAAW47B,WAAa,sBAC5B/D,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,KAAKi5C,SACvB,GACJ,CAEA,SAASuwD,EAA+Bx4E,EAAQ40D,GAG9C,GAFArvF,QAAQE,IAAI,8CAAgDu6B,GAGC,MAA1D75B,OAAe0zG,iBAAiBC,6BAE/B,IADM3zG,OAAe0zG,iBAAiBC,uBAGxC,OAAO11E,EACJyrC,KACChnE,EAAW47B,WAAa,iCACxB,CACE1R,OAAS5sB,OAAe0zG,iBAAiBC,uBACzC95E,OAAQA,EACR40D,MAAOA,GAET,CAAE3tD,WAAW,IAEdvG,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,IAClB,IACGzJ,QAAQE,IAAI,kCACrB,CAEA,SAASgzG,IACP,OAAOr0E,EACJyrC,KACChnE,EAAW47B,WACT,2CACCt+B,OAAe0zG,iBAAiBC,uBACnC,CAAE7yE,WAAW,IAEdvG,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,IAClB,GACJ,CAEA,SAAS0pG,EAAeqB,GACtB,OAAO31E,EACJyrC,KAAKhnE,EAAW47B,WAAa,qBAAsBs1E,EAAY,CAC9D9yE,WAAW,IAEZvG,MAAK,SAAUwG,GACd,OAAOA,CACT,GACJ,CAEA,SAASyxE,EAAoBoB,GAC3B,OAAO31E,EAAMyrC,KACXhnE,EAAW47B,WAAa,yBACxBs1E,EACA,CAAE9yE,WAAW,GAEjB,CAEA,SAAS4xE,IACP,OAAOz0E,EACJ3nB,IAAI5T,EAAW47B,WAAc,oBAC7B/D,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,KAAKi5C,SACvB,GACJ,CAEA,SAAS6wD,EAAiBkB,GACxB,OAAO51E,EAAMT,IAAI96B,EAAW47B,WAAc,oBAAmBu1E,IAC/D,CAEA,SAASjB,EAAsB/4E,GAC7B,OAAOoE,EACJ3nB,IAAkB5T,EAAW47B,WAAc,SAAQzE,YAAkB,CACpEiH,WAAW,IAEZvG,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,IAClB,GACJ,CAEA,SAASgqG,EAAkB1uG,GACzB,MAAMivG,EAAc,CAClBC,KAAM,IACNC,KAAM,EACNC,KAAM,EACN3xC,SAAU,IACVp5C,MAAO,IAGT,OADArkB,EAAU4+B,EAAcngC,SAASuB,EAASivG,GACnCn1E,EACJyrC,KAAKhnE,EAAW47B,WAAa,cAAen6B,EAAS,CACpD28B,WAAW,IAEZvG,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,IAClB,GACJ,CAEA,SAAS08B,EAA4B1L,GAMnC,OAAOg5E,EALc,CACnBrvF,OAAQ,CACNgc,QAAS,CAAC,CAAEF,MAH+C,UAAH,6CAAG,KAG7B5Y,MAAOmT,OAGFU,MAAK,IAAsB,IAArB,MAAE44E,EAAK,MAAEnuE,GAAO,EAC3D,OAAOA,EAAMyuC,KAAK,GAEtB,CAEA,SAASzyB,EAAoBlzC,GAC3B,OAAOmwB,EACJyrC,KACChnE,EAAW47B,WAAa,8BACxBtB,KAAK5zB,UAAU0E,IAEhBysB,MAAK,SAAUwG,GACd,OAAOA,EAASl4B,IAClB,IACCmzB,OAAM,SAAU38B,GACfD,QAAQC,MAAM,SAAUA,EAC1B,GACJ,CACF,E,QAnXAhB,QAAQC,OAAO,sBAAsBqB,QAAQ,iBAAkBqjC,GAE/DA,EAAetsB,QAAU,CACvB,QACA,aACA,iBACA,gBACA,eA8WF,O,yVClXO,MAAMo9F,EACX5xG,YACU+7B,EACAv7B,EACAH,GACR,KAHQ07B,MAAAA,EAAmB,KACnBv7B,WAAAA,EAA+B,KAC/BH,mBAAAA,CACP,CAEHwxG,gBAAiC,IAAnBjzE,EAAY,UAAH,8CACrB,OAAOxgC,KAAK29B,MACT3nB,IACE,GAAEhW,KAAKoC,WAAW47B,uBACnB,CACEwC,UAAWA,IAAa,IAG3BvG,MAAMwG,GACEA,EAASl4B,KAAKi5C,WAE3B,CAEAkyD,iBAAiB9rD,GAAyC,IAAtB+rD,EAAe,UAAH,8CAC9C,OAAO3zG,KAAK29B,MACT3nB,IACE,GAAEhW,KAAKoC,WAAW47B,wBAAwB4pB,kBAA4B+rD,KAExE15E,MAAMwG,GAAaA,EAASl4B,MACjC,CAEAqrG,qBAAqBhsD,GAAsC,IAAnBpnB,EAAY,UAAH,8CAC/C,OAAOxgC,KAAK29B,MAAM3nB,IACf,GAAEhW,KAAKoC,WAAW47B,wBAAwB4pB,sBAC3C,CAAEpnB,UAAWA,GAEjB,CAEAqzE,gBAAgBz/F,GACd,OAAOpU,KAAK29B,MAAMyrC,KACf,GAAEppE,KAAKoC,WAAW47B,wBAAwB5pB,EAAMwzC,+BACjDxzC,EAEJ,CAEA0/F,iBAAiB1/F,GACf,OAAOpU,KAAK29B,MAAMyrC,KACf,GAAEppE,KAAKoC,WAAW47B,wBAAwB5pB,EAAM85B,iBACjD95B,EAEJ,CAEA2/F,mBAAmBnsD,GACjB,OAAO5nD,KAAK29B,MAAMyrC,KACf,GAAEppE,KAAKoC,WAAW47B,wBAAwB4pB,cAC3C,CAAC,EAEL,CAEAosD,sBAAsBpsD,GAAsC,IAAnBpnB,EAAY,UAAH,8CAChD,OAAOxgC,KAAK29B,MACT3nB,IACE,GAAEhW,KAAKoC,WAAW47B,kCAAkC4pB,oBACjC5nD,KAAKiC,mBAAmBmgD,yBAC5C,CAAE5hB,UAAWA,IAEdvG,MAAMwG,GACEA,EAASl4B,KAAKi5C,WAE3B,CAEAyyD,uBACEzzE,EACAozD,GAEA,OAAO5zF,KAAK29B,MAAqB,CAC/B+xD,OAAQ,MACRjjD,IAAKzsC,KAAKoC,WAAW47B,WAAa,uBAClCyH,OAAQ,CACNmuD,YAAaA,GAEfpzD,UAAWA,IACVvG,MAAMwG,GAAaA,EAASl4B,KAAKi5C,WACtC,CAEA0yD,sBAAuC,IAAnB1zE,EAAY,UAAH,8CAC3B,OAAOxgC,KAAK29B,MACT3nB,IACChW,KAAKoC,WAAW47B,WAAa,mCAC7B,CACEwC,UAAWA,IAGdvG,MAAMwG,GACEA,EAASl4B,MAEtB,CAEA4rG,gBAAgBvsD,GACd,OAAO5nD,KAAK29B,MAAMyrC,KACf,GAAEppE,KAAKoC,WAAW47B,+BAA+B4pB,IAClD,CAAC,EAEL,CAEAwsD,wBAAwB5zE,GACtB,OAAOxgC,KAAK29B,MACT3nB,IACChW,KAAKoC,WAAW47B,WAAa,yBAC7B,CACEwC,UAAWA,IAGdvG,MAAMwG,GACEA,EAASl4B,MAEtB,CAEA8rG,6BAA6B7zE,GAC3B,OAAOxgC,KAAK29B,MACT3nB,IACChW,KAAKoC,WAAW47B,WAAa,6BAC7B,CACEwC,UAAWA,IAGdvG,MAAMwG,GACEA,EAASl4B,MAEtB,CAEA+rG,4BAA4B9zE,GAC1B,OAAOxgC,KAAK29B,MACT3nB,IACChW,KAAKoC,WAAW47B,WAAa,uBAC7B,CACEwC,UAAWA,IAGdvG,MAAMwG,GACEA,EAASl4B,MAEtB,CAEAgsG,0BAA0B3sD,EAAmBwF,GAC3C,OAAOptD,KAAK29B,MAAMT,IACf,GAAEl9B,KAAKoC,WAAW47B,wBAAwB4pB,WAC3ClrB,KAAK5zB,UAAUskD,GAEnB,CAEAonD,gCAAgC5gB,GAC9B,OAAO5zF,KAAK29B,MAAM3nB,IACf,GAAEhW,KAAKoC,WAAW47B,6BAA6B41D,IAEpD,CAEA6gB,cAAcC,GACZ,OAAO10G,KAAK29B,MAAMyrC,KACf,GAAEppE,KAAKoC,WAAW47B,sCACnB02E,EAEJ,EACD,wBAED32G,EAAAA,QACGC,OAAO,sBACPqB,QAAQ,sBAAuB,CAC9B,QACA,aACA,qBACA,CACEs+B,EACA41B,EACAtxD,IACG,IAAIuxG,EAAoB71E,EAAO41B,EAAWtxD,IAC9C,O,2QC9LL,SAAS0yG,EACPz2G,EACA02G,GAUA,SAASC,EAAQC,GAAgC,IAAjB3xF,EAAI,UAAH,6CAAG,YAClCjlB,EAAQilB,GAAKjlB,EAAQilB,IAAM,GAC3BjlB,EAAQilB,GAAGxS,KAAK,CAAE,aAAa,IAAIgiD,MAAOmrC,UAAW9gG,MAAO,WAC5D,MAAM+3G,EAAU,aAAL5xF,EAAmB,MAAQA,EAAI,GAC1CyxF,EAAcI,WACZ,8CAAgDF,EAAQC,EACxD,kBACA,QAEJ,CAEA,MAAO,CACLF,UAEJ,E,QA7BA92G,QAAQC,OAAO,sBAAsBqB,QAAQ,aAAcs1G,GAE3DA,EAAWv+F,QAAU,CAAC,UAAW,gBA2BhC,O,0SCND,SAASrI,IAOP,MANgB,CACduH,IAAK2/F,EACLp2G,MAAO,IAAMq2G,EAAAA,UACbC,YAAaA,GAOf,SAASF,IAGP,SAASG,EAAMlxG,GACb,MAAM8P,GAAK9E,KAAKmmG,SAASjkG,SAAS,IAAM,aAAa+5B,OAAO,EAAG,GAC/D,OAAOjnC,EAAI,IAAM8P,EAAEm3B,OAAO,EAAG,GAAK,IAAMn3B,EAAEm3B,OAAO,EAAG,GAAKn3B,CAC3D,CACA,OAAQohG,IAAUA,GAAM,GAAQA,GAAM,GAAQA,GAChD,CAEA,SAASD,EAAYj/F,GAGnB,MADE,kEACWgF,KAAKhF,EACpB,CACF,E,QA9BAnY,QAAQC,OAAO,sBAAsBqB,QAAQ,cAAe0O,GAE5DA,EAAYqI,QAAU,EA4BrB,G,4TCNc,MAAMk/F,EACnB3zG,eAAiB,CACf,UACA,gBACA,iBACA,sBACA,aACA,WACA,sBAGM4zG,WAAY,EACZC,eAAiB,GAEzB5zG,YACU1D,EACAiE,EACAw1B,EACAqV,EACA5qC,EACA+e,EACAlf,GACR,gBAPQ/D,QAAAA,EAAO,KACPiE,cAAAA,EAAa,KACbw1B,eAAAA,EAAc,KACdqV,oBAAAA,EAAmB,KACnB5qC,WAAAA,EAAU,KACV+e,SAAAA,EAAiC,KACjClf,mBAAAA,EAGR,MAAMwzG,EAAsBC,GACnB,WAAa,2BAATp/B,EAAI,yBAAJA,EAAI,gBACT,EAAKi/B,UAGPG,EAAS9jG,KAAK,KAAS0kE,GAIvB,EAAKk/B,eAAe7kG,MAAK,KACvB7R,QAAQE,IAAI,UAAW02G,EAAStkG,YAChCskG,EAAS9jG,KAAK,KAAS0kE,EAAK,GAGlC,EAGFt2E,KAAK21G,KAAOF,EAAmBz1G,KAAK21G,MACpC31G,KAAK41G,SAAWH,EAAmBz1G,KAAK41G,UACxC51G,KAAKg7D,WAAay6C,EAAmBz1G,KAAKg7D,YAC1Ch7D,KAAK07D,gBAAkB+5C,EAAmBz1G,KAAK07D,gBACjD,CAKAm6C,mBACEC,GAEA,IADAz6E,EAAO,UAAH,6CAAGr7B,KAAK23B,eAAe6B,UAG3B,IAAK6B,EAEH,OAGF,MAAM06E,EAAc16E,EAAK26E,MAAMznE,MAC5B0nE,GACEA,EAAKpsG,MACJ7J,KAAKiC,mBAAmBi0G,eAAeC,wBACvCF,EAAKvwF,WACNuwF,EAAKpsG,MACJ7J,KAAKiC,mBAAmBi0G,eAAeE,yBACvCH,EAAKvwF,YAEL2wF,EAA2B,wCAAnBh7E,EAAK0I,YAEdsyE,GAASN,IAAiBM,IAC5B32G,OACE42G,+BAA+Bt2G,KAAKoC,WAAWu/E,aAC/C1nD,MAAK,KACJj6B,KAAKu2G,cAAcT,EAAwBz6E,GAE3Cr7B,KAAKu1G,WAAY,CAAI,IAEtBt7E,MAAK,KAGJ,IAAIu8E,EACJ,KAAQA,EAAax2G,KAAKw1G,eAAeriC,OACvCqjC,GACF,GAGR,CAEAD,cAAcT,EAAwBz6E,GAEpCr7B,KAAK9B,QAAQu4G,eAAiB,KAC5Bz2G,KAAK41G,UAAU,EAGb51G,KAAKgtC,oBAAoBS,qBAC3BqoE,EAAuBY,yBAA2B,sBAGhDr7E,GACFr7B,KAAK21G,KAAKG,EAEd,CAEAH,KAAKgB,GAEH32G,KAAK9B,QAAQ04G,SAAS,OAAQD,GAG9B32G,KAAK9B,QAAQ04G,SAAS,uBAAwBt7C,IAC5Ct7D,KAAKmC,cAAc0J,QACjB,wCACAyvD,EACD,GAEL,CAEAs6C,WAEE51G,KAAK9B,QAAQ04G,SAAS,WACxB,CAEA57C,WAAWjyB,EAAW8tE,GAYpB,OAVIA,EACF72G,KAAK9B,QAAQ04G,SACX,aACA52G,KAAK82G,YAAY/tE,GACjB8tE,GAGF72G,KAAK9B,QAAQ04G,SAAS,aAAc52G,KAAK82G,YAAY/tE,IAGhD/oC,KAAKmhB,UAAS,KACnBnhB,KAAK9B,QAAQ04G,SAAS,SAAU,CAC9BG,gBAAiB7nG,KAAK8+C,OAAM,IAAI2E,MAAOmrC,UAAY,MACnD,GACD99F,KAAKoC,WAAWqhF,eAAeC,UACpC,CAEAhoB,kBACE17D,KAAK9B,QAAQ04G,SAAS,SAAU,CAC9BF,yBAA0B,yCAE9B,CAIAI,YAAY/tE,GACV,OAAQA,GACN,IAAK,yBACH,MAAO,4BAET,IAAK,qBACH,MAAO,4BAET,IAAK,kBACH,MAAO,qBAET,IAAK,uBACH,MAAO,sBAET,IAAK,2BACH,MAAO,iCAET,IAAK,qCACH,MAAO,0BAET,IAAK,+BACH,MAAO,oBAET,IAAK,2BACH,MAAO,uBAET,QACE,OAAOA,EACJtnB,QAAQ,MAAO,UACfA,QAAQ,IAAImkC,OAAO,MAAO,KAAM,KAEzC,EACD,YAED7nD,EAAAA,QACGC,OAAO,sBACP6P,QAAQ,kBAAmBynG,EAAiB,O,oRCtM/C,MAAM0B,EACJ,UAAmB,sBACnB,eAAwB,CACtB,gBACA,gBACA,qBAEFp1G,YACUq1G,EACAx0E,EACAnsB,GACR,KAHQ2gG,cAAAA,EAAqB,KACrBx0E,cAAAA,EAA6B,KAC7BnsB,kBAAAA,EAGR2gG,EAAcpzG,QAAU,CACtBqzG,aAAa,EACb3iC,OAAO,EACP4iC,aAAa,EACbC,aAAa,EACbC,cAAe,mBACfC,mBAAmB,EACnBC,QAAS,KACTC,aAAc,IACdC,aAAc,IACdC,QAAS,IACTC,gBAAiB,IACjBC,WAAY,QACZC,WAAY,SACZC,WAAY,SACZC,WAAY,UAEhB,CAEO7+E,eAAemJ,EAAiB21E,GACrC,MAAMC,EAAgBj4G,KAAKk4G,aAAa71E,EAAS21E,EAAU,SAC3Dh4G,KAAKi3G,cAAcl4G,MAAMk5G,EAC3B,CAEOt9E,iBAAiB0H,EAAiB21E,GACvC,MAAMC,EAAgBj4G,KAAKk4G,aAAa71E,EAAS21E,EAAU,WAC3Dh4G,KAAKi3G,cAAclsE,QAAQktE,EAC7B,CAEOt8C,cAAct5B,EAAiB21E,GACpC,MAAMC,EAAgBj4G,KAAKk4G,aAAa71E,EAAS21E,EAAU,QAC3Dh4G,KAAKi3G,cAAc/0E,KAAK+1E,EAC1B,CAEOr9E,iBAAiByH,EAAiB21E,GACvC,MAAMC,EAAgBj4G,KAAKk4G,aAAa71E,EAAS21E,EAAU,WAC3Dh4G,KAAKi3G,cAAckB,QAAQF,EAC7B,CAEQG,sBAAsBJ,GAC5B,MAAMK,EAAaL,GAAY,IAC/Bh4G,KAAKi3G,cAAcpzG,QAAQ6zG,QAAUW,CACvC,CAEQH,aACN71E,EACA21E,EACAM,GAOA,OALAt4G,KAAKo4G,sBAAsBJ,GAEvBh4G,KAAKsW,kBAAkB2iB,sBAAsBoJ,KAC/CA,EAAUriC,KAAKyiC,cAAc81E,OAAOl2E,IAE/BriC,KAAKsW,kBAAkBkiG,eAAen2E,IAAYi2E,CAC3D,EAGFv6G,QACGC,OAAO,sBACP6P,QAAQmpG,EAAoBr3G,GAAIq3G,EAAqB,G,+KC/FxD,aAAa,0DAGb,MAAMhmE,EAAY,EACZynE,EAAU,EAKhB,SAASC,EACPt3G,EACAy8B,EACA1c,EACAviB,EACA+5G,GAEA,MAAMC,EAAmB,CACvB,UACA,SACA,WACA,MACA,OACA,QACA,UAEIC,EAAc,CAAC,YAAa,eAC5BC,EAAkB,CAAC,cAAe,eAElCJ,EAAa,CACjBK,QAAS,CACPC,WAAYA,EACZC,cAAeA,GAEjB31F,KAAM,CACJ41F,IAAKC,GAEPrxF,KAAM,CAEJsxF,GAAI,CAAC,IAAK,KACVC,aAAc,CAAC,IAAK,KACpBC,OAAQ,CAAC,IAAK,KACdC,iBAAkB,CAAC,IAAK,OAI5B,OAAOb,EAEP,SAASS,EAAQxzE,EAAUs2D,GAA4B,IAAlBtiD,EAAc,UAAH,6CAAG,CAAC,GAC9C,KAAE7xB,GAAS6xB,EACV7xB,IAAMA,EAAO4wF,EAAW5wF,KAAKuxF,cAElC,MAAMG,EAAO56G,EAAE+mC,GAAU1lC,QAazB,OAZAu5G,EACGl1F,SAAS,wBACTA,SAAS,cACT3jB,MAAO,GAAEmnB,EAAK,QACdzE,KAAK,gBACLziB,SACC+4C,EAAO8/D,eACTD,EAAKl1F,SAASq1B,EAAO8/D,eAGvB76G,EAAE,QAAQuxD,OAAOqpD,GAEV37E,EACJkD,UACA9G,MAAK,IAAM0f,EAAO+/D,WAAa//D,EAAO+/D,UAAU,CAAE93F,QAAS43F,MAC3Dv/E,MAAK,IAAM74B,EAAMu4G,QAAQC,QAAQJ,KACjCv/E,MAAMwhB,GAAar6C,EAAMu4G,QAAQE,IAAIC,OAAOr+D,EAAW,GAAEwgD,WACzDvgE,MAAM58B,QAAQC,OACdk7B,MAAK,KAAQv6B,OAAeq6G,4BAA8BP,EAAK54G,UACpE,CAOA,SAASo4G,EAAWQ,GAClB,KAAMA,aAAgB56G,GACpB,MAAM,IAAIkH,MAAM,kDAElB,IAAIk0G,EACJ,OAAQR,EAAK,GAAGx4G,UACd,KAAKgwC,EACHgpE,EAAQC,EAAgBT,GACxB,MACF,KAAKf,EACHuB,EAAQE,EAAmBV,GAC3B,MACF,QACEQ,EAAQn8E,EAAGkD,UAEf,OAAOi5E,CACT,CAEA,SAASE,EAAmBV,GAC1B,MAAMW,EAAOC,EAAUZ,EAAKz5G,aAEtBe,EAAS+4B,SAAS2/E,EAAK1sG,aAAY,IAAS,GAAK,KAQvD,OANAqtG,EAAKrtE,KAAK,QAAS0sE,EAAK3sG,YAAW,IACnCstG,EAAKrtE,KAAK,SAAUhsC,GAEpBq5G,EAAK92F,KAAK,gBAAgB01B,IAAIygE,EAAKzgE,IAAI8/D,IACvCsB,EAAK92F,KAAK,gBAAgB01B,IAAIygE,EAAKzgE,IAAI6/D,IACvCuB,EAAK92F,KAAK,gBAAgBypB,KAAKutE,EAAab,IACrCc,EAAWH,EACpB,CAOA,SAASF,EAAgBT,GACvB,MACMW,EAAOC,EADAZ,EAAK,GAAGvpD,aAEftvD,EAAQk5B,SAAS2/E,EAAKn5G,aAAe,GAAK,KAC1CS,EAAS+4B,SAAS2/E,EAAK34G,cAAgB,GAAK,KAQlD,OANAs5G,EAAKrtE,KAAK,QAASnsC,GACnBw5G,EAAKrtE,KAAK,SAAUhsC,GAEpBq5G,EAAK92F,KAAK,gBAAgB01B,IAAIygE,EAAKr5G,SAAS44C,IAAI8/D,IAChDsB,EAAK92F,KAAK,gBAAgBypB,KAAKutE,EAAab,EAAKr5G,WAE1Cm6G,EAAWH,EACpB,CAEA,SAASE,EAAab,GACpB,MAAMe,EAASf,EAAKzgE,IAAI+/D,GAExB,OADAyB,EAAO,eAAiBA,EAAO,eAAe94F,QAAQ,KAAM,KACrD84F,CACT,CAEA,SAASH,EAAUI,GACjB,MAAMC,EAAU9B,EAAW+B,kBAAkBF,GAC7C,OAAO57G,EAAG,yNAG4E67G,wFAIxF,CAOA,SAASH,EAAWH,GAClB,GAAoC,GAAhCtgF,SAASsgF,EAAKrtE,KAAK,UACrB,MAAM,IAAIhnC,MAAM,yCAGlB,GAAqC,GAAjC+zB,SAASsgF,EAAKrtE,KAAK,WACrB,MAAM,IAAIhnC,MAAM,0CAGlB,MAAM60G,EAAcR,EAAKp6G,YACnB07F,EAAM,sBAAwBmf,mBAAmBD,GACvD,OAAO1B,EAAcxd,GAClBxhE,MAAM4gF,IACL,MAAMC,EAASv6G,SAASC,cAAc,UAChCu6G,EAAUn8G,EAAEk8G,GACZE,EAAMF,EAAOxe,WAAW,MAM9B,OAJAwe,EAAOn6G,MAAQk6G,EAAKl6G,QACpBm6G,EAAOh6G,OAAS+5G,EAAK/5G,SAErBi6G,EAAQt6G,SAASF,SAAS43C,MACnBh3B,EAAS,KAAM8Y,MAAK,KACzB+gF,EAAIre,UAAUke,EAAK,GAAI,EAAG,GAC1BG,EAAIre,UAAUke,EAAK,GAAI,EAAG,GAE1B,MAAMhjB,EAAUijB,EAAO7d,YACvB,GAAe,UAAXpF,EACF,MAAM,IAAI/xF,MAAM,kCAAoC21F,GAGtD,OAAOwd,EAAcphB,GAAS,GAAM59D,MAAMghF,IACxCA,EAAW32F,SAAS,iBAGpBu2F,EAAKj6G,SACLm6G,EAAQn6G,SACDq6G,IACP,GACF,IAEHv/E,OAAM,KACL58B,QAAQC,MACN,sDACA47G,EACD,GAEP,CASA,SAAS1B,EAAciC,GAAuB,IACxCC,GAAY,EAEhB,MAAM1f,EAH+B,UAAH,8CAGbyf,EAAQA,EAAMz5F,QAAQ,OAAQ,KAAKq0B,OAClD+kE,EAAOj8G,EAAE2B,SAASC,cAAc,QAEtC5B,EAAE2B,SAAS43C,MAAMgY,OAAO0qD,GACxB,MAAMO,EAAYv9E,EAAGq9D,QAEfmgB,EAAWz4C,IACfw4C,EAAU34C,OAAO,IAAI38D,MAAM88D,GAAK,EAG5B04C,EAAY,KAChBH,GAAY,EACZC,EAAUr6E,QAAQ85E,EAAK,EAazB,OAVAA,EAAKtqD,GAAG,QAAS8qD,GACjBR,EAAKtqD,GAAG,OAAQ+qD,GAChBn6F,GAAS,KACU,GAAbg6F,IACFN,EAAKU,KAAK,YACND,IACAD,EAAQ,sBAAwB5f,GAAI,GACzC,KAEHof,EAAK/tE,KAAK,MAAO2uD,GACV2f,EAAUh7E,OACnB,CACF,CAvOAriC,EAAAA,QAAQC,OAAO,sBAAsB6P,QAAQ,aAAc6qG,GAE3DA,EAAWtiG,QAAU,CAAC,eAAgB,KAAM,WAAY,SAAU,aAqOjE,O,sRC3MD,SAASjU,EACPgf,EACAshB,EACAb,GAEA,MAAQM,KAAMs5E,EAASz8G,MAAO08G,GAAa75E,GACrC,UAAE85E,GAAcj5E,EAChBk5E,EAA2B,CAAC,EAElC,IAAIC,GAAoB,EACpBC,EAAgC,GAEpC,MAAMhuG,EAAyB,CAC7BiuG,cAAe,CAAC,EAChBnyF,YACA9d,UACA+vB,kBAKF,OAFA5E,IAEOnpB,EAEP,SAAS8b,EACP3sB,EACA++G,EACA3gD,EACAnwB,GAWA,MAAM+wE,EAAa,CACjBznG,GAAI6mD,EACJ2gD,WACA9wE,SAEIgxE,EAAapuG,EAAQiuG,cAAc9+G,GAGrCo+D,GACFsgD,EAAUO,EAAY,CAAC,CAAE1nG,GAAI6mD,IAAiB,MAGhD6gD,EAAWtrG,KAAKqrG,EAClB,CAOA,SAASE,EAAcl/G,EAAoBuL,GAGzC,MAAM4zG,EAActuG,EAAQiuG,cAAc9+G,GAE1CmkB,GAAS,WACPq6F,EAAQ,oBAAsBx+G,GAE9Bm/G,EAAYlnG,SAAS+mG,IACnB,MAAM,GAAEznG,EAAE,SAAEwnG,EAAQ,MAAE9wE,GAAU+wE,EAEhC,IACGJ,IAAsB,EAAAz+G,EAAAA,gBAAeH,KACtCe,EAAAA,QAAQssC,WAAW0xE,IAUnB,IAAKH,EAAmB,CAEtB,MAAMQ,EAAeP,EAAcx4F,MAChCg5F,GAAQA,EAAIr/G,QAAUA,IAErBo/G,EACFA,EAAa7zG,KAAOA,EAEpBszG,EAAclrG,KAAK,CACjB3T,QACAuL,QAGN,OArBA,IAEEizG,EAAS,cAAajnG,eAAgBvX,eACtC++G,EAAS/+G,EAAOuL,EAAM0iC,EAGxB,CAFE,MAAO/tC,GACPu+G,EAASv+G,EACX,CAgBF,GAEJ,GAAG,EACL,CAQA,SAAS2O,EACP7O,GAGA,IAFAuL,EAAgB,UAAH,6CAAG,KAChB+zG,EAAc,UAAH,8CAGX,IAAI,EAAAv/G,EAAAA,eAAcC,IAAUs/G,EAE1B,YADAJ,EAAcl/G,EAAOuL,GAIvB,IAAIg0G,EAAYZ,EAAyB3+G,GAErCu/G,GACFp7F,EAASq7F,OAAOD,GAGlB,MAAME,GAAS,EAAAt/G,EAAAA,gBAAeH,GAAS,KAAO,IAG9Cu/G,EAAYp7F,GAAS,KACnBw6F,EAAyB3+G,GAAS,KAElCk/G,EAAcl/G,EAAOuL,EAAK,GACzBk0G,GAEHd,EAAyB3+G,GAASu/G,CACpC,CAGA,SAAS3gF,EAAew/B,GACtB,MAAM,cAAE0gD,GAAkBjuG,EAC1B,IAAK,MAAM7Q,KAAS8+G,EAAe,CACjC,MAAMK,EAAcL,EAAc9+G,GAC9Bm/G,EAAYtrG,OAAS,GACvB6qG,EAAUS,EAAa,CAAC,CAAE5nG,GAAI6mD,IAAiB,KAEnD,CACF,CAMA,SAASpkC,IACP,MAAMokC,EAAe,wBACfshD,EAAmB,KACvBd,GAAoB,EAEpBC,EAAc5mG,SAAQ,QAAC,MAAEjY,EAAK,KAAEuL,GAAM,SAAKsD,EAAQ7O,EAAOuL,EAAK,IAC/DszG,EAAgB,EAAE,EAEdc,EAAgB,IAAOf,GAAoB,EAGjD9+G,EAAAA,gBAAgBmY,SAASjY,GAAW6Q,EAAQiuG,cAAc9+G,GAAS,KACnE2sB,EAAU,oBAAqB+yF,EAAkBthD,GACjDzxC,EAAU,yBAA0BgzF,EAAevhD,EACrD,CACF,E,QAzKAr9D,QAAQC,OAAO,sBAAsBqB,QAAQ,gBAAiB8C,GAE9DA,EAAciU,QAAU,CAAC,WAAY,gBAAiB,oBAyKtD,O,qYC/MO,MAAMwmG,EAGXh7G,YACUQ,EACA2+D,GACR,KAFQ3+D,WAAAA,EAA+B,KAC/B2+D,OAAAA,EAER/gE,KAAK68G,mBAAqB78G,KAAK88G,uBACjC,CAEAC,wBAAwBC,GACtB,MAAMC,EAAoBj9G,KAAK68G,mBAAmBG,GAGlD,IAFoBC,GAAoBA,IAGtC,OAAO,EAGT,MAAMC,EAAgBl9G,KAAKm9G,mBAG3B,OAFAn9G,KAAK+gE,OAAOxhE,GAAG29G,IAER,CACT,CAEQJ,wBACN,MAAO,CACL,CAAC1/G,EAAAA,eAAeC,aAAc,IAAM2C,KAAKoC,WAAWghF,cACpD,CAAChmF,EAAAA,eAAeE,WAAY,IAAM0C,KAAKoC,WAAWghF,cAClD,CAAChmF,EAAAA,eAAeG,SAAU,IAAMyC,KAAKoC,WAAWghF,cAChD,CAAChmF,EAAAA,eAAeI,SAAU,IAAMwC,KAAKoC,WAAWghF,cAChD,CAAChmF,EAAAA,eAAeM,kBAAmB,IAAMsC,KAAKoC,WAAWghF,cACzD,CAAChmF,EAAAA,eAAeS,WAAY,IAAMmC,KAAKoC,WAAWghF,cAClD,CAAChmF,EAAAA,eAAeU,WAAY,IAAMkC,KAAKoC,WAAWghF,cAClD,CAAChmF,EAAAA,eAAeK,eAAgB,IAAMuC,KAAKoC,WAAW4+E,gBACtD,CAAC5jF,EAAAA,eAAeK,eAAgB,IAAMuC,KAAKoC,WAAW4+E,gBACtD,CAAC5jF,EAAAA,eAAeO,oBAAqB,IAAMqC,KAAKoC,WAAW4+E,gBAE/D,CAEQm8B,mBACN,MAAMC,EAAqBp9G,KAAKoC,WAAWqgF,gBACrC46B,EACJr9G,KAAK68G,mBAAmBz/G,EAAAA,eAAeggH,IAKzC,IAAIE,EAUJ,OAPEA,GAP+BD,GAC7BA,IAMYD,EACLp9G,KAAKoC,WAAWghF,cACX,cAEA,gBAGThmF,EAAAA,eAAekgH,EACxB,EACD,0BAEDv/G,EAAAA,QACGC,OAAO,sBACPqB,QAAQ,wBAAyB,CAChC,aACA,SACA,CAAC+C,EAAsC2+D,IACrC,IAAI67C,EAAsBx6G,EAAY2+D,IACvC,G,qLC/DL,SAAS6zC,IACP,MAAMI,EAAa,SACjBvoE,GAGG,IAFHhiB,EAAO,UAAH,6CAAG,kBACP8yF,EAAU,UAAH,6CAAG,QAEV,IAAK9wE,EAAK,CACR,MAAMm2B,EAAM,IAAI98D,MAAO,iCAEvB,OADAhH,QAAQ+vB,KAAK+zC,GACNJ,QAAQC,OAAOG,EACxB,CAEA,OAAO,IAAIJ,SAAc,CAACzhC,EAAS0hC,KACjC,IAAI+6C,EAASj9G,SAASs7C,cACpB,gBAAkBpP,EAAM,MAE1B,IAAK+wE,EAAQ,CACX,MAAMC,EAAQl9G,SAASswC,qBAAqB,QAC5C,GAAI4sE,GAASA,EAAM5sG,OAAQ,CACzB,MAAM28E,EAAOiwB,EAAM,GACfjwB,IACFgwB,EAASj9G,SAASC,cAAc,UAChCg9G,EAAOnpE,aAAa,MAAO5H,GAC3B+wE,EAAOnpE,aAAa,OAAQ5pB,GACxB8yF,GAASC,EAAOnpE,aAAa,UAAWkpE,GAC5C/vB,EAAKl5C,YAAYkpE,GAEbA,EAAOE,WAETF,EAAOG,mBAAqB,WAEF,WAAtBH,EAAOE,YACe,aAAtBF,EAAOE,aAEPF,EAAOG,mBAAqB,KAC5B58E,IAEJ,GAGAy8E,EAAO9hB,OAAS,WACd36D,GACF,EAEAy8E,EAAO7hB,QAAU,WACfl5B,GACF,GAGN,CACF,CACA,OAAO+6C,CAAM,GAEjB,EAEA,MAAO,CACLxI,aAEJ,C,iDApEAj3G,QAAQC,OAAO,sBAAsBqB,QAAQ,gBAAiBu1G,EAoE7D,O,gQCGD,SAASj9E,EACPuV,EACAhsB,EACA6/C,EACApjC,EACAv7B,EACAy1B,EACA+lF,EACA37G,EACA47B,EACA1c,EACAgqE,GAGA,MAAM0yB,EAAY,aAAez7G,EAAWs6D,qBACtCohD,EAAmBD,EAAY,WAC/BE,EAAgBF,EAAY,QAC5BpgD,EAAkBogD,EAAY,oBAC9BG,EAAmBH,EAAY,WAC/BI,EAA0BJ,EAAY,SAE5C,IAAIK,EAEAC,EADAC,EAAWR,EAAM5nG,IAAI8nG,GAErBO,EAAWT,EAAM5nG,IAAIgoG,GACzB,MAAMM,EAAkB,EACxBV,EAAMlpG,IAAIupG,GAAyB,GACnCzkF,IAEA,MAAM3rB,EAAU,CACdonC,MAAOA,EACPspE,eAAgBA,EAChBC,mBAAoBA,EACpBzpD,0BAA2BA,EAC3Bv7B,QAASA,EACTilF,WAAYA,EACZC,gBAAiBA,EACjBC,eAAgBA,EAChBC,WAAYA,EACZlhD,eAAgBA,EAChBmhD,WAAYA,EACZC,qBAAsBA,EACtBxjF,QAASA,EACT24B,UAAWA,EACX8qD,WAAYA,EACZnqD,eAAgBA,EAChBoqD,WAAYA,EACZC,YAAaA,EACbjnB,SAAUA,EACVknB,iBAAkBA,EAClBC,eAAgBA,EAChBC,iBAAkBA,EAClBC,SAAUA,EACVC,MAAOA,EACPC,iBAAkBA,EAClBC,gBAAiBA,EACjBC,gBAAiBA,EACjBC,yBAA0BA,GAC1BC,iBAAkBA,GAClBC,iBAAkBA,EAClB71B,gBAAiBA,EACjB81B,cAAeA,EACf1rB,gBAAiBA,GACjBE,gBAAiBA,GACjByrB,oBAAqBA,GACrBC,OAAQA,IAGV,OAAOlyG,EAIP,SAASwxG,EAASC,GAChBn0B,EAAsBnsF,IACnB,kDAAiDsgH,KAEpD1B,EAAMlpG,IAAIupG,EAAyBqB,EACrC,CAEA,SAASA,IACP,OAAO1B,EAAM5nG,IAAIioG,EACnB,CAEA,SAASiB,IACP,YACY5/G,IAAV4+G,SACe5+G,IAAd4+G,EAAM8B,KAAqB9B,EAAM8B,IAAM1B,EAM5C,CAEA,SAASa,IACP,OAAOb,CACT,CAEA,SAAStmB,IACP,OAAOngE,EAAamgE,UACtB,CAEA,SAASpjC,EACPpnD,EACAuqF,GAEA,MAAMkoB,EAAcloB,EAAQ,iBAAmB,UAG/C,OAAOp6D,EAFgBo6D,EAAQ,MAAQ,QAGpC,GAAE31F,EAAW47B,qBAAqBiiF,IACnC,CAAEzyG,MAAOA,IAERysB,MAAK,SAAUwG,GAEd,IAAI+9E,EAAmB/9E,EAASl4B,MAIhC,OAAOk4B,CACT,IACC/E,OAAM,WAGP,GACJ,CAEA,SAASujF,IAAsC,IAA1BiB,EAAsB,UAAH,6CAAG,GACzC,OAAOviF,EACJ3nB,IACE,GAAE5T,EAAW47B,6BACd,CACEyH,OAAQ,CAAE06E,UAAWD,KAGxBjmF,MAAMwG,GACEA,EAASl4B,MAAQk4B,EAASl4B,KAAK0iF,QAClCxqD,EAASl4B,KAAKw3F,UACd,CAAC,IAENrkE,OAAM,WACL,MAAO,CAAC,CACV,GACJ,CAEA,SAASsjF,EAAWn7B,GAClB,OAAOlmD,EACJ3nB,IACE,GAAE5T,EAAW47B,uCAAuC6lD,KAEtD5pD,MAAMwG,GACEA,EAASl4B,MAAQk4B,EAASl4B,KAAK0iF,QAClCxqD,EAASl4B,KAAKw3F,eACdzgG,IAELo8B,OAAM,WAEP,GACJ,CAIA,SAASq5B,EAA0BqrD,GACjC,MAAO,CACLJ,IAAK1B,EAGL/pG,GAAI6rG,EAAW7rG,GACf8lB,SAAU+lF,EAAW/lF,SACrB0J,WAAYq8E,EAAWr8E,WACvB+lD,aAAcs2B,EAAWt2B,aACzBu2B,iBAAkBD,EAAWC,iBAC7BC,oBAAqBF,EAAWE,oBAChCC,QAASH,EAAWG,QAGpBC,oBAAqBtxG,KAAK8+C,MACxB2E,KAAK/pD,MAAMw3G,EAAWI,qBAAuB,KAE/C7gE,UAAWygE,EAAWh9E,UACtBwc,SAAUwgE,EAAW/8E,SACrBo9E,YAAaL,EAAWK,YACxBC,SAAUN,EAAWM,SACrBlzG,MAAO4yG,EAAW5yG,MAClBwoG,MAAOoK,EAAWpK,MAClB2K,YAAaP,EAAWQ,gBACxBC,cAAeT,EAAWS,cAC1BzQ,MAAOgQ,EAAWU,OAClBC,qBAAsBX,EAAWW,qBACjCrtD,iBAAkB0sD,EAAW1sD,iBAC7BK,6BAA8BqsD,EAAWrsD,6BACzCJ,uBAAwBysD,EAAWzsD,uBACnCG,yBAA0BssD,EAAWtsD,yBACrCF,mBAAoBwsD,EAAWxsD,mBAC/BC,gCACEusD,EAAWvsD,gCACbG,sCACEosD,EAAWpsD,sCAEjB,CAEA,SAASurD,IACP,OAAO3B,EAAM5nG,IAAI+nG,EACnB,CAEA,SAASvkF,IAGP,GAFAwnF,SAEc1hH,IAAV4+G,EAAqB,CACvB,MAAM+C,EAAa1B,IACnB,GAAkBjgH,MAAd2hH,EACF,OAEF/C,EAAQ+C,CACV,CAEA,YAAc3hH,IAAV4+G,SAAsC5+G,IAAd4+G,EAAM8B,KAAqB9B,EAAM8B,IAAM,IAEjE/qE,IACAk2C,EAAsBnsF,IACpB,0IAEF+hE,EAAOxhE,GAAG,eAIR2/G,MACFhB,EAAM8B,IAAM1B,EACZ1pD,EAAespD,EAAM1wG,OAAOysB,MAAK,SAAUwG,GACzC,QAAiBnhC,IAAbmhC,EACFy9E,EAAM8B,IAAM,MACP,CACL,MAAMnrD,EAAMp0B,EAASl4B,KACrB,IAAoB,IAAhBssD,EAAI9pB,QAAkB,CACxB,MAAM+pB,EAAcC,EAA0BF,EAAIrT,WAIlD,OAHAlmB,EAAQw5B,GACR5zC,EAAWma,KAAOy5B,EAClBopD,EAAQppD,EACDopD,CACT,CAAOA,EAAM8B,IAAM,CACrB,CACA,OAAO9B,CACT,KAEKA,EACT,CAIA,SAASO,IAEP,OADAuC,MACI9C,CAKN,CAEA,SAASa,IAEP,OADAV,EAAWT,EAAM5nG,IAAIgoG,GACdK,CACT,CAEA,SAAS/iF,EAAQD,GACf6iF,EAAQ7iF,EACR6iF,EAAM8B,IAAM1B,EACZV,EAAMlpG,IAAIqpG,EAAe1iF,EAC3B,CAEA,SAASyjF,IACP59F,EAAWu+F,iBAAkB,CAC/B,CAEA,SAASd,IACP,OAAOR,CACT,CAEA,SAASO,IACPP,GAAmB,CACrB,CAOA,SAASU,EAAWqC,GAClB9C,EAAW8C,EACXtD,EAAMlpG,IAAIopG,EAAkBM,EAC9B,CAEA,SAASQ,IAGP,OAFAoC,IACA5C,EAAWR,EAAM5nG,IAAI8nG,GACdM,CACT,CAEA,SAAS1gD,IAEP,OADAsjD,IACOnpF,EAAa6lC,gBACtB,CAEA,SAASzoB,IACPk2C,EAAsBnsF,IAAI,2CAC1B64B,EAAaspF,aACbvD,EAAMh9G,OAAOk9G,GACbF,EAAMh9G,OAAOm9G,GACbH,EAAMh9G,OAAO68D,GACbygD,OAAQ5+G,EACR8+G,OAAW9+G,CACb,CAEA,SAASi/G,IACPJ,GAAmB,CACrB,CAEA,SAASlqD,IACP2pD,EAAMh9G,OAAOm9G,GACbG,OAAQ5+G,CACV,CAEA,SAAS0hH,IACHnpF,EAAaupF,0BACfvpF,EAAa8vE,uBAAsB,GACnC1yD,IAEJ,CAEA,SAASupE,EAAmBj2G,GAC1B,MAAMi5C,EAAYj5C,EAAKi5C,WAAaj5C,EAAKw3F,UACnCshB,EAAU7/D,EAAUqf,QAAUrf,EAAU8/D,OAW9C,OATgB,IAAZD,IAEFpsE,IACAk2C,EAAsBnsF,IACpB,mHAEF+hE,EAAOxhE,GAAG,cAGL8hH,CACT,CAEA,SAASzB,IACP,MAAM2B,EAAS1pF,EAAa0D,YAC5B,OACEgmF,GACArD,GACAqD,EAAOhtG,GAAGrP,gBAAkBg5G,EAAMn6E,WAAW7+B,aAEjD,CAEA,SAAS6kF,IAAkB,QACzB,MAAMy3B,EAAqC,QAA3B,EAAG3pF,EAAa0D,mBAAW,aAAxB,EAA0B1xB,KAC7C,OAAI23G,IAGY,QAAhB,EAAOhoF,WAAS,aAAT,EAAWswD,aACpB,CAEA,SAAS+1B,IAAgB,QACvB,MAAM4B,EAAmC,QAA3B,EAAG5pF,EAAa0D,mBAAW,aAAxB,EAA0BhnB,GAC3C,OAAIktG,IAGY,QAAhB,EAAOjoF,WAAS,aAAT,EAAWuK,WACpB,CAIA,SAASq7E,IACP,OAAOlB,EAAMlI,MAAMznE,MAChB0nE,GACCA,EAAKpsG,OAAS5H,EAAmBi0G,eAAewL,0BAEtD,CAQA,SAASlC,IACP,OAAOmC,IACT,CAEA,SAASlC,IACP,MAAMmC,EAAW/pF,EAAamgE,WACxB6pB,EAAUh0G,EAAQ0xG,mBACxB,OAAOqC,GAAYC,CACrB,CAMA,SAASnC,KACP,MAAO,gBAAgBxkG,KAAKgyB,EAAU40E,OACxC,CAcA,SAASH,KAAyC,IAAvBI,EAAW,UAAH,6CAAGlkF,EAAGq9D,QAWvC,OAPIukB,IACFsC,EAAShhF,QAAQlzB,EAAQ0xG,oBAEzBp+F,GAAS,KACPwgG,GAAkBI,EAAS,GAC1B,KAEEA,EAAS3hF,OAClB,CAKAkkC,eAAeq7C,GAAiBqC,GAC9B,IAKE,aAJuBrkF,EAAM3nB,IAC1B,GAAE5T,EAAW47B,uCAAuCgkF,MAGvCz5G,IAEhB,CADA,MAAOrL,GACP,CAEJ,CAEA,SAASi3F,GAAgB8tB,GACvB,OAAOrE,EAAM5nG,IAAIisG,EACnB,CAEA,SAAS5tB,GAAgB4tB,EAAW77F,GAClCw3F,EAAMlpG,IAAIutG,EAAW77F,EACvB,CAEA,SAAS05F,GAAoB/nB,GAG3B,OAFAlgE,EAAaqqF,SAASnqB,GAAO,GAEtBnjC,EADO,KACemjC,GAAO99D,MAAK,SAAUwG,QAChCnhC,IAAbmhC,EACFsgC,EAAOxhE,GAAG,cAEV2+G,EAAQnpD,EAA0Bt0B,EAASl4B,KAAKi5C,WAChDo8D,EAAMlpG,IAAIqpG,EAAeG,GAE7B,GACF,CAEA,SAAS6B,GAAOoC,GACd,MAAMC,EAAa,IAAI5pB,IAAI94F,OAAO8G,SAAS4K,YACrCixG,EAAU,IAAI7pB,IAAI2pB,GACxB,GACEC,EAAWE,WAAaD,EAAQC,UAChCF,EAAWG,WAAaF,EAAQE,UAChCH,EAAWtmG,OAASumG,EAAQvmG,KAC5B,CACA,MAAMi8E,EAAQC,IACd,GAAID,GAAmB,SAAVA,EAAkB,CAC7B,MAAMyqB,EAAYJ,EAClBI,EAAUF,SAAWD,EAAQC,SAC7BE,EAAUD,SAAWF,EAAQE,SAC7BC,EAAU1mG,KAAOumG,EAAQvmG,KACzB,MAAM2mG,EAAeD,EAAUE,aAC/BD,EAAa5hD,OAAO,SACpB4hD,EAAatyD,OAAO,QAAS4nC,GAC7B0qB,EAAa5hD,OAAO,WACpB,MAAMqgD,EAAUtC,IAChB6D,EAAatyD,OAAO,UAAW+wD,GAC/BxhH,OAAO8G,SAASinF,KAAO+0B,EAAU/0B,IACnC,CACF,CACF,CACF,E,QAxfA1vF,QAAQC,OAAO,sBAAsBqB,QAAQ,iBAAkBs4B,GAE/DA,EAAevhB,QAAU,CACvB,YACA,aACA,SACA,QACA,aACA,eACA,QACA,qBACA,KACA,WACA,wBA2eD,O,sQC/hBc,MAAMusG,EACnB/gH,YACU+7B,EACAv7B,EACAqgC,GACR,KAHQ9E,MAAAA,EAA2B,KAC3Bv7B,WAAAA,EAA+B,KAC/BqgC,cAAAA,CACP,CAGH50B,QAAU,CACR+0G,UAAW,GACXxS,MAAO,GACP1rE,MAAO,IAGTkrD,gBAAiC,IAAnBpvD,EAAY,UAAH,8CACrB,OAAOxgC,KAAK29B,MACT3nB,IACChW,KAAKoC,WAAW47B,WAAa,mBAC7B,CACEwC,UAAWA,IAAa,IAG3BvG,MAAMwG,IACLzgC,KAAK6vF,iBAAmB9xF,QAAQ+iC,KAAKL,EAASl4B,KAAKi5C,WAC5C/gB,EAASl4B,KAAKi5C,YAE3B,CAEAqhE,aAAariF,GACX,OAAOxgC,KAAK29B,MACT3nB,IAAyB,GAAEhW,KAAKoC,WAAW47B,4BAA6B,CACvEwC,UAAWA,IAAa,IAEzBvG,MAAMwG,IACL1iC,QAAQ+iC,KAAKL,EAASl4B,KAAMvI,KAAK6N,QAAQ+0G,WACzC5iH,KAAK8iH,sBACEriF,EAASl4B,OAEtB,CAEAu6G,sBACE9iH,KAAK6N,QAAQ+0G,UAAUh1E,MAAK,CAACsjE,EAAIC,KAC/B,MAAMC,EAAkBF,EAAGrnG,KAAKisC,OAAO5wC,cACjCmsG,EAAkBF,EAAGtnG,KAAKisC,OAAO5wC,cAEvC,OAAIksG,EAAkBC,GACZ,EAGND,EAAkBC,EACb,EAGF,CAAC,GAEZ,CAEAhB,oBAAoBxsG,GAClB,OAAO7D,KAAK29B,MACTyrC,KACE,GAAEppE,KAAKoC,WAAW47B,wBACnBn6B,EACA,CACE28B,WAAW,IAGdvG,MAAMwG,IACL1iC,QAAQ+iC,KAAKL,EAASl4B,KAAK6nG,MAAOpwG,KAAK6N,QAAQuiG,OACxC3vE,EAASl4B,OAEtB,CAEAmpG,oBAAoB7tG,GAClB,MAAMivG,EAAc,CAClBC,KAAM,IACNC,KAAM,EACNC,KAAM,EACN3xC,SAAU,IACVp5C,MAAO,IAGT,OADArkB,EAAU7D,KAAKyiC,cAAcngC,SAASuB,EAASivG,GACxC9yG,KAAK29B,MACTyrC,KACCppE,KAAKoC,WAAW47B,WAAa,cAC7Bn6B,EACA,CACE28B,WAAW,IAGdvG,MAAMwG,IACL1iC,QAAQ+iC,KAAKL,EAASl4B,KAAKm8B,MAAO1kC,KAAK6N,QAAQ62B,OACxCjE,EAASl4B,OAEtB,CAEOw6G,WAAWC,GAChB,OAAOhjH,KAAK29B,MACT3nB,IACE,GAAEhW,KAAKoC,WAAW47B,4BAA4BglF,KAEhD/oF,MAAMwG,GACEA,EAASl4B,MAEtB,EACD,YACDxK,QACGC,OAAO,sBACPqB,QAAQ,kBAAmB,CAC1B,QACA,aACA,gBACA,CACEs+B,EACAv7B,EACAqgC,IACG,IAAIkgF,EAAgBhlF,EAAOv7B,EAAYqgC,IAC3C,O,8NChHL,aAAa,4DAIb1kC,QAAQC,OAAO,sBAAsB2f,UAAU,oBAAqB,CAClEme,SAAU,CACR2kD,iBAAkB,KAEpBzkD,WAAY,CACV,gBACA,WACA,iBACA,eACA,aACA,eACA,SACE75B,EACAgf,EACAwW,EACAqyD,EACA5nF,EACAy1B,GAEA,MAAMkQ,EAAQ/nC,KAEd,IAAIijH,EACAC,EACJ,MAAMC,EAAYp7E,EAAM04C,kBAAoBr+E,EAAWq+E,iBACjDrlB,EAAe,wBAErB,SAASgoD,KAC6B,IAAhCzrF,EAAeonF,eAEfkE,IAKJA,EAAarkH,EAAEykH,cAAcF,GAC7BF,EAAWr+B,SAAU,EAGrBs+B,EAAMD,EAAWK,eAAe,oBAOhCJ,EAAI3yD,GAAG,gBAAiBluB,IACtBrjC,EAAI,gBACJukH,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,wBAAyBw2B,EAAQ,IAGzD6gF,EAAI3yD,GAAG,qBAAsBluB,IAC3BrjC,EAAI,oBAAqBqjC,GACzBkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,6BAA8Bw2B,EAAQ,IAG9D6gF,EAAI3yD,GAAG,6BAA8BluB,IACnCrjC,EAAI,4BAA6BqjC,GACjCkhF,EAAkBlhF,GAClBlgC,EAAc0J,QACZ,uCACAw2B,EACD,IAGH6gF,EAAI3yD,GAAG,uBAAwBluB,IAC7BrjC,EAAI,sBAAuBqjC,GAC3BkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,+BAAgCw2B,EAAQ,IAGhE6gF,EAAI3yD,GAAG,0BAA2BluB,IAChCrjC,EAAI,yBAA0BqjC,GAC9BkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,oCAAqCw2B,EAAQ,IAGrE6gF,EAAI3yD,GAAG,qBAAsBluB,IAC3BrjC,EAAI,oBAAqBqjC,GACzBkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,+BAAgCw2B,EAAQ,IAGhE6gF,EAAI3yD,GAAG,wBAAyBluB,IAC9BrjC,EAAI,uBAAwBqjC,GAC5BkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,gCAAiCw2B,EAAQ,IAGjE6gF,EAAI3yD,GAAG,gCAAiCluB,IACtCrjC,EAAI,+BAAgCqjC,GACpCkhF,EAAkBlhF,GAClBlgC,EAAc0J,QACZ,uCACAw2B,EACD,IAIH6gF,EAAI3yD,GAAG,sBAAuBluB,IAC5BrjC,EAAI,qBAAsBqjC,GAC1BkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,+BAAgCw2B,EAAQ,IAEhE6gF,EAAI3yD,GAAG,sBAAuBluB,IAC5BrjC,EAAI,qBAAsBqjC,GAC1BkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,+BAAgCw2B,EAAQ,IAEhE6gF,EAAI3yD,GAAG,mBAAoBluB,IACzBrjC,EAAI,kBAAmBqjC,GACvBkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,4BAA6Bw2B,EAAQ,IAG7D6gF,EAAI3yD,GAAG,sBAAuBluB,IAC5BrjC,EAAI,qBAAsBqjC,GAC1BkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,+BAAgCw2B,EAAQ,IAEhE6gF,EAAI3yD,GAAG,sBAAuBluB,IAC5BrjC,EAAI,qBAAsBqjC,GAC1BkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,+BAAgCw2B,EAAQ,IAEhE6gF,EAAI3yD,GAAG,mBAAoBluB,IACzBrjC,EAAI,kBAAmBqjC,GACvBkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,iCAAkCw2B,EAAQ,IAGlE6gF,EAAI3yD,GAAG,oBAAqBluB,IAC1BrjC,EAAI,mBAAoBqjC,GACxBkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,mCAAoCw2B,EAAQ,IAGpE6gF,EAAI3yD,GAAG,sCAAuCluB,IAC5CrjC,EAAI,qCAAsCqjC,GAC1CkhF,EAAkBlhF,GAClBlgC,EAAc0J,QACZ,0CACAw2B,EACD,IAEH6gF,EAAI3yD,GAAG,6BAA8BluB,IACnCrjC,EAAI,4BAA6BqjC,GACjCkhF,EAAkBlhF,GAClBlgC,EAAc0J,QACZ,wCACAw2B,EACD,IAEH6gF,EAAI3yD,GAAG,wBAAyBluB,IAC9BrjC,EAAI,uBAAwBqjC,GAC5BkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,kCAAmCw2B,EAAQ,IAEnE6gF,EAAI3yD,GAAG,yBAA0BluB,IAC/BrjC,EAAI,wBAAyBqjC,GAC7BkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,mCAAoCw2B,EAAQ,IAEpE6gF,EAAI3yD,GAAG,8BAA+BluB,IACpCrjC,EAAI,6BAA8BqjC,GAClCkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,sCAAuCw2B,EAAQ,IAGvE6gF,EAAI3yD,GAAG,4BAA6BluB,IAClCrjC,EAAI,2BAA4BqjC,GAChCkhF,EAAkBlhF,GAClBlgC,EAAc0J,QACZ,uCACAw2B,EACD,IAGH6gF,EAAI3yD,GAAG,yBAA0BluB,IAC/BrjC,EAAI,wBAAyBqjC,GAC7BkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,mCAAoCw2B,EAAQ,IAGpE6gF,EAAI3yD,GAAG,yBAA0BluB,IAC/BrjC,EAAI,wBAAyBqjC,GAC7BkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,mCAAoCw2B,EAAQ,IAGpE6gF,EAAI3yD,GAAG,2BAA4BluB,IACjCrjC,EAAI,0BAA2BqjC,GAC/BkhF,EAAkBlhF,GAClBlgC,EAAc0J,QAAQ,qCAAsCw2B,EAAQ,IAGtE6gF,EAAI3yD,GAAG,qCAAsCluB,IAC3CrjC,EAAI,oCAAqCqjC,GACzCkhF,EAAkBlhF,GAClBlgC,EAAc0J,QACZ,qDACAw2B,EACD,IAGH4gF,EAAWO,gBAAe,KACxBxkH,EAAI,6CAA+CikH,EAAW1uG,GAAG,IAInE0uG,EAAWlkH,OAAOA,IAChBC,EAAI,kBAAoBD,EAAM,IAIhCkkH,EAAWQ,cAAa,KACtBzkH,EACE,qDAAuDikH,EAAW1uG,GACnE,IAIH0uG,EAAWS,cAAa,KAClBT,EAAWU,UACb3kH,EACE,4CACEikH,EAAWU,UAAUthF,SAGzBrjC,EACE,sDACEikH,EAAW1uG,IAGjB4M,GAAS,KACPyiG,GAAgB,EAAK,GACpB,IAAK,IAIV5kH,EAAI,wCAA0CmkH,GAC9CS,KACF,CAEA,SAASL,EAAkBlhF,GACzB,MAAM95B,EAAOm0B,KAAK9zB,MAAMy5B,GACxB2nD,EAAaQ,qBAAqBjiF,EACpC,CAEA,SAASs7G,IACP,MAAMxoF,EAAO1D,EAAe6B,UAC5B,OAAO6B,OACT,CAEA,SAASuoF,EAAgBE,GACvB,MAAMC,EAAiBD,EAAc,MAAQ,GAE7Cb,EACGxgE,MAAM,CAAEuhE,iBAAiB,IACzBC,MAAK,KASJ,GARAjlH,EACE,sBACE+kH,EACA,8BACAd,EAAW1uG,IAIVsvG,IAKE,CACL,MAAMtqF,EAAS5B,EAAe6B,UAAUjlB,GAClCwvB,EAAalM,EAAa0D,YAAYhnB,GAI5C2uG,EACGgB,OAAO,oBAAqB,CAAE3qF,SAAQwK,eACtCkgF,MAAK,KACJjlH,EAAI,uCAAyCu6B,GAC7Cp3B,EAAc0J,QAAQ,oBAAoB,IAE3Cs4G,MAAMplH,IACLC,EAAI,wCAA0CD,GAC9CoD,EAAc0J,QAAQ,yBAAyB,GAErD,MApBE7M,EACE,UACA,uFAkBJ,IAEDmlH,MAAMjnH,IACL8B,EACE,mCACE+kH,EACA,eACF7mH,GAEFiF,EAAc0J,QAAQ,yBAAyB,GAErD,CAEA,SAAS7M,EAAIhC,EAAOqlC,GACdjgC,EAAWgiH,sBACbtlH,QAAQE,IAAIhC,EAAOqlC,GAAW,GAElC,CAGA0F,EAAM3P,QAAU,KACdj2B,EAAcwnB,UACZ,oBACAy5F,EACAhoD,EACD,EAIHrzB,EAAMpM,WAAa,KACjB38B,EAAI,6BACJikH,EAAWoB,OACXliH,EAAcy5B,eAAew/B,EAAa,CAE9C,IAED,G,mMCrVH,aAAa,0DAIb,MAAMkpD,EAIJ1iH,YAAY+7B,EAA6Bl+B,GACvCO,KAAKukH,QAAU5mF,EACf39B,KAAKwkH,MAAQ/kH,CACf,CAEAglH,cAAch3B,GACZ,MAAO,aAAavyE,KAAKuyE,EAC3B,CAOAi3B,aAAaj3B,GACX,OAAOztF,KAAKukH,QAAQvuG,IAAIy3E,GAAMxzD,MAAMiiB,GAAWA,EAAO3zC,MACxD,CAOAmyG,kBAAkBiK,GAChB,MAAMC,EAAW5kH,KAAK6kH,WAAWF,GAI3BG,EAAU9kH,KAAK+kH,oBAAoBH,GAEzC,OADgB5kH,KAAKglH,iBAAiBF,EAExC,CAEQC,oBAAoBJ,GAC1B,OAAO3kH,KAAKwkH,MAAMS,OAAON,EAC3B,CAEQK,iBAAiBL,GACvB,OAAOA,EAAWljG,QAAQ,KAAM,QAClC,CAEQojG,WAAWF,GACjB,MAAMlnF,EAAMknF,EAAWljG,QAAQ,UAAW,KAC1C,IAAIyjG,EAAS,GACb,IAAK,IAAIt0G,EAAI,EAAGA,EAAI6sB,EAAI5sB,OAAQD,IACL,KAArB6sB,EAAI8gC,WAAW3tD,GAEjBs0G,GAAU,IAEVA,GAAUznF,EAAI7sB,GAGlB,OAAOs0G,CACT,EAGFnnH,EAAAA,QAAQC,OAAO,sBAAsB6P,QAAQ,aAAc,CACzD,QACA,KACA,SAAU8vB,EAAOl+B,GACf,OAAO,IAAI6kH,EAAW3mF,EAAOl+B,EAC/B,GACC,G,wKCtDH,SAASuhE,EACP5+D,EACA2L,EACA4pB,EACA11B,GAQA,MANgB,CACdy/D,YAAaA,EACbyjD,cAAeA,EACfC,iBAAkBA,GAOpB,SAAS1jD,EACPxzB,GAaAk3E,EAPYD,EACVj3E,EANW,UAAH,8CACK,UAAH,8CACE,UAAH,6CAAG,KACa,UAAH,+CAU1B,CAIA,SAASi3E,EACPv9D,GAKA,IAJAy9D,EAAa,UAAH,8CACVC,EAAe,UAAH,8CACZC,EAAc,UAAH,6CAAG,KACdC,EAA2B,UAAH,8CAGxB,MAAMC,EACH,kCAFH79D,OAA8BtoD,IAAhBsoD,EAA4B75C,EAAYlP,QAAU+oD,WAGpDy9D,kBACOC,KAChBC,EAAe,gBAAeA,IAAgB,KAC9CC,EACI,6BAA4BA,IAC7B,IACN,GACEpjH,EAAWs6D,uBACXz6D,EAAmByjH,sBAAsBC,MACzC,CACA,MAAM5tB,EAAQpgE,EAAeqgE,WAC7B,OAAO51F,EAAWi+E,WAAaolC,EAAe,UAAS1tB,GACzD,CACE,OAAO0tB,CAEX,CAIA,SAASL,EAAiB34E,GACxB,MAAM94B,EAAIpT,SAASC,cAAc,KAGjC,GAFAmT,EAAE85E,KAAOhhD,EACT94B,EAAE+8B,OAAS,SACPnwC,SAASqlH,YAAa,CACxB,MAAMjwD,EAAKp1D,SAASqlH,YAAY,cAChCjwD,EAAGkwD,eACD,SACA,GACA,EACAnmH,OACA,KACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,MAEFiU,EAAEmyG,cAAcnwD,EAClB,MACEhiD,EAAExG,OAEN,CACF,C,iDAvGApP,QACGC,OAAO,sBACPqB,QAAQ,wBAAyB2hE,GAEpCA,EAAsB5qD,QAAU,CAC9B,aACA,cACA,iBACA,qBA+FD,O,+NC9GD,aAAa,mDAcb,SAAS2vG,EACP3jH,EACAu7B,GAiBA,MAfgB,CACdqoF,aAAcA,EACdC,YAAaA,EACbC,aAAcA,EACdC,SAAUA,EACVC,SAAUA,EACVC,WAAYA,EACZC,WAAYA,EACZ12B,cAAeA,EACf22B,oBAAqBA,EACrBC,kBAAmBA,EACnBC,mBAAoBA,EACpBC,gBAAiBA,GAKnB,SAASV,EAAaW,GACpB,OAAOhpF,EACJ3nB,IAAK,GAAE5T,EAAW47B,qCAAqC2oF,KACvD1sF,MAAMwG,GAAaA,EAASl4B,MACjC,CAEA,SAAS09G,EAAYrgH,GACnB,OAAO+3B,EACJ3nB,IAAK,GAAE5T,EAAW47B,uBAAuBp4B,KACzCq0B,MAAMwG,GAAaA,EAASl4B,MACjC,CAEA,SAAS29G,EAAa1kG,GACpB,OAAOmc,EACJT,IAAK,GAAE96B,EAAW47B,uBAAwBxc,GAC1CyY,MAAMwG,GAAaA,EAASl4B,MACjC,CAEA,SAASqnF,IACP,OAAOjyD,EACJ3nB,IAAK,GAAE5T,EAAW47B,kCAClB/D,MAAMwG,GAAaA,EAASl4B,MACjC,CAEA,SAAS49G,IACP,OAAOxoF,EACJ3nB,IAAsB,GAAE5T,EAAW47B,6BACnC/D,MAAMwG,GAAaA,EAASl4B,MACjC,CAEA,SAAS69G,EAASQ,GAChB,OAAOjpF,EACJT,IAAa,GAAE96B,EAAW47B,4BAA6B4oF,GACvD3sF,MAAMwG,GAAaA,EAASl4B,MACjC,CAEA,SAAS89G,IACP,OAAO1oF,EACJ3nB,IAAwB,GAAE5T,EAAW47B,+BACrC/D,MAAMwG,GAAaA,EAASl4B,MACjC,CAEA,SAAS+9G,EAAW/E,GAClB,OAAO5jF,EACJT,IAAa,GAAE96B,EAAW47B,+BAAgCujF,GAC1DtnF,MAAMwG,GAAaA,EAASl4B,MACjC,CAEA,SAASi+G,EAAkB/gF,GACzB,OAAO9H,EACJyrC,KAAM,GAAEhnE,EAAW47B,6BAA8ByH,GACjDxL,MAAMwG,GAAaA,EAASl4B,MACjC,CAEA,SAASg+G,EAAoB3gH,GAC3B,MAAM+nF,EAAO,GAAEvrF,EAAW47B,2BAA2B48E,mBACnDh1G,KAEF,OAAO+3B,EAAM3nB,IAAI23E,GAAK1zD,MAAMwG,GAAaA,EAASl4B,MACpD,CAEA,SAASk+G,IACP,OAAO9oF,EACJ3nB,IAAK,GAAE5T,EAAW47B,8BAClB/D,MAAMwG,GAAaA,EAASl4B,MACjC,CAEA,SAASm+G,EAAgBG,GACvB,OAAOlpF,EACJT,IAAK,GAAE96B,EAAW47B,6BAA8B6oF,GAChD5sF,MAAMwG,GAAaA,EAASl4B,MACjC,CACF,EA3Ga,QAQbxK,QACGC,OAAO,sBACPqB,QAAQ,kBAAmB0mH,GAE9BA,EAAgB3vG,QAAU,CAAC,aAAc,QAiGzC,G,oOC7EA,SAASyhB,EACP3W,EACA4lG,EACAC,EACA75E,EACA9qC,EACAw7G,EACAoJ,EACAC,EACA95E,EACAg+C,EACA5kC,EACA2gE,EACAjlH,EACAE,GAGA,MAAM07G,EAAY,aAAez7G,EAAWs6D,qBACtCyqD,EAAiBtJ,EAAY,SAC7BuJ,EAAqBvJ,EAAY,aACjCwJ,EAAmB,gBACzB,IAGIC,EAHAC,EAAS3J,EAAM5nG,IAAImxG,GACnBK,GAAgB,EAChBC,GAAkB,EAElBC,GAA2B,EAoB/B,MAlBgB,CACdhqD,eAAgBA,EAChBniC,UAAWA,EACXy8D,SAAUA,EACV2vB,iBAAkBA,EAClBxG,WAAYA,EACZyG,oCAAqCA,EACrC1F,SAAUA,EACV2F,aAAcA,EACdC,eAAgBA,EAChBC,cAAeA,EACfC,gBAAiBA,EACjBC,qBAAsBA,EACtBtgB,sBAAuBA,EACvByZ,sBAAuBA,EACvB8G,mBAAoBA,GAOtB,SAASA,EAAmBhyG,GAC1BuxG,EAAkBvxG,CACpB,CAEA,SAASyxF,EAAsBwgB,GAC7BX,EAAgBW,CAClB,CAEA,SAAS/G,IACP,OAAOoG,CACT,CAEA,SAAS9pD,IACP,GAAI6pD,EACF,OAAOP,EAAUoB,YAAYb,GAAQc,oBAEzC,CAEA,SAAS9sF,IACP,GAAIgsF,EAAQ,CACV,MAAMe,EAAYtB,EAAUoB,YAAYb,GACxC,MAAO,CACLhzG,GAAI+zG,EAAUC,mBACd1+G,KAAMy+G,EAAUE,aAEpB,CACF,CAEA,SAASxwB,IAEP,OADAuvB,EAAS3J,EAAM5nG,IAAImxG,GACZI,CACT,CAEA,SAASU,IACP,GAAI1hE,EAAoB0nC,QACtB,OAAO,EAET,MAAMw6B,EAAa1B,EAAS/wG,IAAIqxG,GAEhC,SACEoB,IACAt7E,EAAckhE,IAAIoa,GAAYC,SAASv7E,EAAckhE,OAKzD,CAEA,SAAS2Z,IACP,MAAMS,EAAa1B,EAAS/wG,IAAIqxG,GAC9BsB,EAAWx7E,EAAcs7E,GAAct7E,IAAkB,IAE3DruC,QAAQE,IAAK,sCAAqC2pH,EAAW,KAEzDA,EAAW,GACb7B,GACE,KACE5lG,EAAW8S,WAAW,YAAY,GAEpC20F,EACA,EAGN,CAEA,SAASf,EAAoCgB,GAC3C,MAAMC,EACqB,KAAzBnpH,OAAO8G,SAASsV,KAAe,IAAGpc,OAAO8G,SAASsV,OAAS,GACvDgtG,EAAiB,GAAEppH,OAAO8G,SAAS87G,aAAa5iH,OAAO8G,SAAS+7G,WAAWsG,IA0EjF,OAxEA19B,EAAsBnsF,IACpB,gEAE2B,IAAIwjE,SAAQ,CAACzhC,EAAS0hC,KAEjD,GACqC,kBAAnCv1B,EAAUguB,OAAOh2D,eACjBgoC,EAAUwB,SAASq6E,cAClBH,EAED7nF,OAAQzhC,OACH,CACL,MAAMy4F,EAAQC,IAEVD,GAEEkwB,MAA2BR,IAC7BtG,IACAh2B,EAAsBnsF,IACpB,qJAEFyjE,EAAO,CACL1jE,MAAO,0BACPiqH,YAAaF,EAAgB,mBAI5BprD,KA+BHytB,EAAsBnsF,IACpB,0FAEF+hC,OAAQzhC,IAjCJ2pH,EAAalxB,GACfmxB,EACEnoF,EACA0hC,EACA,yCAGFwkD,EAAakC,aACX,CACEC,aAAc,iBACdC,SAAUjnH,EAAWknH,cACrBN,YAAaF,EAAgB,kBAE/B,SAAUlmD,EAAK2mD,GACTA,GACFrH,EAASqH,EAAiBC,SAC1Br+B,EAAsBnsF,IACpB,iFAEF+hC,EAAQwoF,EAAiBC,WAEzBr+B,EAAsBnsF,IACpB,oHAEFyjE,EAAO,uCAEX,MAUN0oB,EAAsBnsF,IACpB,8FAEF+hC,EAAQ,CAAEhiC,MAAO,kBAErB,IAIJ,CAEA,SAASmjH,EAASnqB,GAA0B,IAAnB0xB,EAAY,UAAH,8CAChCt+B,EAAsBnsF,IAAI,qCAE1BuoH,EAASxvB,EACT6lB,EAAMlpG,IAAIyyG,EAAgBI,GACtBkC,GACFC,EAAa3xB,GAEfgwB,GACF,CAEA,SAAS2B,EAAa3xB,GACpB,MAAMkrB,EAAa+D,EAAUoB,YAAYrwB,GAAmB,YAAK,KACjE6lB,EAAMlpG,IAAI0yG,EAAoB,CAAEnE,WAAYA,GAC9C,CAEA,SAAS4E,IACP,OAAOjK,EAAM5nG,IAAIoxG,EACnB,CAEA,SAASU,IACPlK,EAAMh9G,OAAOwmH,EACf,CAEA,SAASW,IACP,MAAM4B,EAAaroH,OAChB+sG,MACAr5F,IAAI5S,EAAWs9E,uBAAwB,KACvCkqC,cACH7C,EAAS7pF,IAAImqF,EAAkBsC,GAC/BxnH,EAAc0J,QAAQ,sBAAuB89G,EAC/C,CAEA,SAASxI,IACPh2B,EAAsBnsF,IAAI,uCAC1B4+G,EAAMh9G,OAAOumH,GACbI,OAASjoH,CACX,CAIA,SAASqoH,EAAiBqB,GAExB,OADA79B,EAAsBnsF,IAAI,6CACtB0oH,IAGJA,GAA2B,EAC3BJ,EAA2B,IAAI9kD,SAAQ,CAACzhC,EAAS0hC,KAC/C,MAAMs1B,EAAQC,IACd,IAAKD,EAMH,OALA5M,EAAsBnsF,IACpB,kFAEFyjE,EAAO,6BACPilD,GAA2B,GAI7B,IAAKmC,EAAe9xB,GAMlB,OALA5M,EAAsBnsF,IACpB,kEAEF+hC,EAAQ,WACR2mF,GAA2B,GAI7B,GAAIuB,EAAalxB,GACfmxB,EAAsBnoF,EAAS0hC,OAC1B,CACL,MAAMomD,EACqB,KAAzBnpH,OAAO8G,SAASsV,KAAe,IAAGpc,OAAO8G,SAASsV,OAAS,GACvDgtG,EAAiB,GAAEppH,OAAO8G,SAAS87G,aAAa5iH,OAAO8G,SAAS+7G,WAAWsG,IACjF5B,EAAakC,aACX,CACEC,aAAc,iBACdC,SAAUjnH,EAAWknH,cACrBN,YAAaF,GAAiBE,GAAe,MAE/C,SAAUpmD,EAAK2mD,GACTA,GACFrH,EAASqH,EAAiBC,SAC1Br+B,EAAsBnsF,IACpB,8DAEF+hC,EAAQwoF,EAAiBC,WAEzBr+B,EAAsBnsF,IACpB,0DACE09B,KAAK5zB,UAAU85D,IAEnBH,EAAO,wCAETilD,GAA2B,CAC7B,GAEJ,MApDOJ,CAwDX,CAEAhjD,eAAe4kD,EACbnoF,EACA0hC,GAEA,IADAqnD,EAAS,UAAH,6CAAG,qBAET,GAC+B,cAA7BpqH,OAAO8G,SAASC,UAChBrE,EAAWs6D,uBACTz6D,EAAmByjH,sBAAsBC,MAQ7C,IACE,MAAMoE,QAAoB7C,EAAmBthC,kBACvCmkC,EAAYC,iBAAiB,CACjCC,kBAAkB,EAClBC,UAAW,QAEb,MACMV,SADeO,EAAYI,oBACVC,MACvBlI,EAASsH,GACT9B,GAA2B,EAC3Bv8B,EAAsBnsF,IACnB,mBAAkB8qH,6BAErB/oF,EAAQyoF,EAIV,CAHE,MAAOzqH,GACP2oH,GAA2B,EAC3BjlD,EAAO,sCACT,MAvBE3jE,QAAQC,MACN,sPAuBN,CAEA,SAAS8qH,EAAe9xB,GACtB,MAAMsyB,EAAsB,GAC5B,OACErD,EAAUsD,uBAAuBvyB,IAAS,IAAIplC,MAAOmrC,UAC/B,IAAtBusB,CAEJ,CAEA,SAASpB,EAAalxB,GAEpB,OADwBivB,EAAUoB,YAAYrwB,GAAOwyB,MAC1BnoH,EAAWooH,kBACxC,CACF,E,QA3WAzsH,QAAQC,OAAO,sBAAsBqB,QAAQ,eAAgBw4B,GAE7DA,EAAazhB,QAAU,CACrB,aACA,YACA,WACA,YACA,aACA,QACA,YACA,eACA,gBACA,wBACA,sBACA,qBACA,qBACA,gBA2VD,O,uPCnWD,SAASE,EACPm0G,EACAnnD,EACAC,EACAt0B,EACAskB,EACA3E,GAkBA,MAhBgB,CACd3N,0BAA2BA,EAC3BypE,2BAA4BA,EAC5BC,gCAAiCA,EACjCxoG,2BAA4BA,EAC5BC,qBAAsBA,EACtBC,kCAAmCA,EACnC1K,gBAAiBA,EACjBshB,sBAAuBA,EACvBu/E,eAAgBA,EAGhBoS,UACAC,YAqBF,SAASD,EAAQ10G,GACf,QAAItW,EAAEkrH,MAAM50G,KAGHtW,EAAE4jC,QAAQttB,GAA2B,GAAdA,EAAIrF,OAC3BjR,EAAEmrH,SAAS70G,GAAmC,GAAtBtW,EAAEszD,KAAKh9C,GAAKrF,SACpCjR,EAAEorH,SAAS90G,IAAmC,GAAtBtW,EAAEk2C,KAAK5/B,GAAKrF,OAE/C,CAEA,SAASg6G,EAAS30G,GAChB,MAAO,KAAKgF,KAAKhF,EACnB,CAEA,SAAS+iB,EAAsBgyF,GAM7B,IAAI/uE,EAHU,IAAI0J,OAChB,w5GAEiB1qC,KAAK+vG,GAKxB,OAHI13D,EAAUysB,uBACZ9jC,GAAS,GAEJA,CACT,CAEA,SAASgvE,EAA8BD,GAMrC,OALqB,IAAIrlE,OACvB,6GAE0B1qC,KAAK+vG,EAGnC,CAEA,SAASE,EAAkCF,GAKzC,OAJkC,IAAIrlE,OACpC,iCAEuC1qC,KAAK+vG,EAEhD,CAEA,SAASzS,EAAeyS,GACtB,OACEA,GACAhyF,EAAsBgyF,KACrBC,EAA8BD,KAC9BE,EAAkCF,GAE5BG,EAA6BH,GAE7BA,CAEX,CAGA,SAASG,EAA6BH,GACpC,MAAMI,EAAkBZ,EACtBQ,EAAY75G,WAAWqQ,QAAQ,UAAW,UAE5C,OAAOmtC,EAAK08D,YAAYD,EAAgB5pG,QAAQ,SAAU,UAC5D,CAEA,SAASw/B,IAEP,MAAO,uJACT,CAEA,SAASypE,IACP,MAAO,kBACT,CAEA,SAASC,IACP,MAAO,UACT,CAEA,SAASxoG,EACPvJ,EACAE,EACAlB,EACAC,GAEA,IAAKyrD,EAAwB3+C,UAAU/L,GACrC,OAAO,EAGT,IAAI2yG,GAAa,EAiDjB,OA9CEjoD,EAAwB+jC,iBAAiBzuF,EAASrQ,OAClD+6D,EAAwBgS,kBAAkBx8D,EAAOvQ,OAKb,IAApCgrD,EAAUuc,uBACVxM,EAAwBhzC,mBAAmB1X,EAASrQ,OACpD+6D,EAAwBgS,kBAAkBx8D,EAAOvQ,OAKjD+6D,EAAwBgS,kBAAkB18D,EAASrQ,OACf,IAApCgrD,EAAUuc,wBACTxM,EAAwB+jC,iBAAiBvuF,EAAOvQ,OAC/C+6D,EAAwBgS,kBAAkBx8D,EAAOvQ,QAKnD+6D,EAAwBhzC,mBAAmB1X,EAASrQ,OACpDg7D,EAAyB47B,WAAWrmF,EAAOvQ,OAC3CsP,EAAc02B,MACXprB,GAAMA,EAAEG,OAAS1K,EAASrQ,KAAK3C,KAAOud,EAAEI,KAAOzK,EAAOvQ,KAAK3C,SApB9D2lH,GAAa,GA2BXA,EACFzsH,QAAQE,IAAI,gCAUZusH,EACoE,IAP9CC,EACpB5yG,EAASrQ,KACTqP,EACAC,GAIcqL,QAAQxiB,GAAMA,EAAEkF,MAAQkT,EAAOvQ,KAAK3C,MAAKiL,OAGpD06G,CACT,CAEA,SAASlpG,EAAkCzJ,EAAUE,GACnD,MAA6B,UAAzBA,EAAOvQ,KAAK0L,UAA6C,UAArB6E,EAAOvQ,KAAKqD,MAGrB,UAA3BgN,EAASrQ,KAAK0L,UAA+C,QAAvB2E,EAASrQ,KAAKqD,IAK1D,CAEA,SAASwW,EAAqB,GAK3B,IAL2B,SAC5BlO,EAAQ,OACRC,EAAM,cACNyD,EAAa,cACbC,GACD,EAKC,GAH0BA,EAAc02B,MACrCprB,GAAMA,EAAEG,OAASpP,EAAS3L,KAAK3C,KAAOud,EAAEI,KAAOpP,EAAO5L,KAAK3C,MAG5D,OAAO,EAGT,MAAM6lH,GAAyBloD,EAAyB47B,WACtDjrF,EAAS3L,MAELmjH,GAA0BnoD,EAAyBS,YACvD9vD,EAAS3L,MAGX,GAAIkjH,GAAyBC,EAC3B,OAAO,EAGT,IAAIj6D,GAAQ,EACZ,MAAMk6D,EAAoB9zG,EAAcqL,QACrCC,GAAMA,EAAEG,OAASpP,EAAS3L,KAAK3C,MAE5BgmH,EAAyBD,EAAkB96G,OAC3Cg7G,EAAal0G,EACjBzD,EAAS3L,KACT4L,EAAO5L,KACPqP,EACAC,GAiCF,OA9B+B,IAA3B+zG,GAAiCC,EAeC,IAA3BD,GAGJD,EAAkB,GAAG7zG,YAAc+zG,IACpCF,EAAkB,GAAG7zG,aAAe+zG,KAEtCp6D,GAAQ,EACHk6D,EAAkB,GAAG7zG,mBACjB5D,EAAS3L,KAAKwP,YAGW,IAA3B6zG,IACTn6D,GAAQ,GAxBNxiB,EAA6Bm/B,0CAC3Bl6D,EAAS3L,KAAK3C,IACdgS,EACAC,EACA,MACA,GACA,GAEiBxM,QAAQ8I,EAAO5L,OAAS,IAC3CkpD,GAAQ,SACDv9C,EAAS3L,KAAKwP,YAiBlB05C,CACT,CAEA,SAAS95C,EACPzD,EACAC,EACAyD,EACAC,GAIA,SACG0rD,EAAyB4R,mBAAmBjhE,KAC5CqvD,EAAyB47B,WAAWhrF,IACrCA,EAAOhQ,WAAa+iE,EAAAA,SAASvmB,cAC7BxsC,EAAOhQ,WAAa+iE,EAAAA,SAAS4P,cAM7B7nC,EAA6Bm/B,0CAC3Bl6D,EAAStO,IACTgS,EACAC,EACA,MACA,GACA,GAEcxM,QAAQ8I,IAAW,CAKvC,CAgCA,SAASq3G,EACPhnH,EACAoT,EACAC,EACAi0G,GAEA,MAAM/5G,EAAQ,GACd+5G,EAAgBA,GAAiB,GACjC,MAAM7oG,EAAQrjB,EAAEsjB,OAAOrL,GAAe,SAAU0B,GAC9C,OAAOA,EAAKgK,KAAO/e,EAAKoB,MAAQ2T,EAAKzB,UACvC,IAEA,OAAImL,GACFrjB,EAAEqV,QAAQgO,GAAO,SAAU1J,GACzB,MAAM/U,EAAO5E,EAAEyjB,KAAKzL,GAAe,SAAUpT,GAC3C,OAAOA,EAAKoB,MAAQ2T,EAAK+J,OAAS/J,EAAKzB,UACzC,IAEA,QACoDxY,IAAlDwsH,EAAczoG,MAAMzd,GAAQA,IAAQpB,EAAKoB,OACzCpB,EACA,CACAsnH,EAAcn7G,KAAKnM,EAAKoB,KACxB,MAAMovC,EAAaw2E,EACjBhnH,EACAoT,EACAC,EACAi0G,GAEFlsH,EAAEqV,QAAQ+/B,GAAat0C,IACrBqR,EAAMpB,KAAKjQ,EAAE,IAGfqR,EAAMpB,KAAKnM,EACb,CACF,IACOuN,GAGFA,CACT,CACF,CA7XAhU,QACGC,OAAO,sBACPqB,QAAQ,oBAAqBiX,GAEhCA,EAAkBF,QAAU,CAC1B,YACA,0BACA,2BACA,+BACA,aACA,OAmXD,G,mMC7VD,aAAa,mDAQb,SAAS21G,IACP,MAAMC,EAAU,CAAC,EASjB,MANgB,CACdC,SAAUA,EACVC,mBAAoBA,EACpBC,YAAaA,GAOf,SAASF,EAASvqG,EAAO7X,EAAMuiH,EAAeC,EAAgBC,GAC5D,MAAMC,EAAQ7qG,EAAM8H,OAClB4iG,GACA,SAAuBhhH,EAAUD,GAC3BC,IAAaD,GACfkhH,GAEJ,GACAC,GAGFN,EAAQniH,GAAQ0iH,CAClB,CAEA,SAASL,EAAmBxqG,EAAO7X,EAAMuiH,EAAeC,GACtD,MAAME,EAAQ7qG,EAAM8qG,iBAClBJ,GACA,SAAuBhhH,EAAUD,GAC1BpN,EAAAA,QAAQkkG,OAAO72F,EAAUD,IAC5BkhH,GAEJ,IAGFL,EAAQniH,GAAQ0iH,CAClB,CAEA,SAASJ,EAAYtiH,GACfmiH,EAAQniH,IACVmiH,EAAQniH,IAEZ,CACF,EAtDa,QAGb9L,QAAQC,OAAO,sBAAsBqB,QAAQ,eAAgB0sH,GAE7DA,EAAa31G,QAAU,EAiDtB,G,2OC3FD,MAAMq2G,EACJ9qH,eAAiB,CAAC,QAAS,aAAc,qBACzC,iBAA0B,GAC1BC,YACU+7B,EACAv7B,EACAkU,GACR,KAHQqnB,MAAAA,EAAmB,KACnBv7B,WAAAA,EAA+B,KAC/BkU,kBAAAA,CACP,CAEHo2G,aAAaC,GACX,OAAO3sH,KAAK29B,MACT3nB,IACChW,KAAKoC,WAAW47B,WAAa,wBAA0B2uF,GAExD1yF,MAAMwG,GACEA,EAASl4B,MAEtB,CAEAqkH,cAAchlE,GAAsC,IAAnBpnB,EAAY,UAAH,8CACxC,OAAOxgC,KAAK29B,MACT3nB,IACE,GAAEhW,KAAKoC,WAAW47B,mCAAmC4pB,IACtD,CAAEpnB,UAAWA,IAEdvG,MAAMwG,GAAaA,EAASl4B,MACjC,CAEAskH,wBACEC,EACAtsF,GAGA,OAFc,UAAH,8CAGPxgC,KAAK29B,MACF3nB,IACE,GAAEhW,KAAKoC,WAAW47B,yBAAyB8uF,KAE7C7yF,MAAMwG,GAAaA,EAASl4B,OAC/BvI,KAAK29B,MACF3nB,IACE,GAAEhW,KAAKoC,WAAW47B,6CAA6C8uF,IAChE,CAAEtsF,UAAWA,IAEdvG,MAAMwG,GAAaA,EAASl4B,MACrC,CAEAwkH,yBACEnlE,EACA4sB,EACAh0C,GAGA,OAFc,UAAH,8CAGPxgC,KAAK29B,MACF3nB,IACE,GAAEhW,KAAKoC,WAAW47B,iBAAiB4pB,kBAA4B4sB,IAChE,CAAEh0C,UAAWA,IAEdvG,MAAMwG,GAAaA,EAASl4B,OAC/BvI,KAAK29B,MACF3nB,IACE,GAAEhW,KAAKoC,WAAW47B,qBAAqB4pB,8BAAwC4sB,IAChF,CAAEh0C,UAAWA,IAEdvG,MAAMwG,GAAaA,EAASl4B,MACrC,CAEAykH,mBAAmBt4B,GAIjB,OAAO10F,KAAK29B,MAAM3nB,IAChBhW,KAAKoC,WAAW47B,WAAa,yBAA2B02D,EAE5D,CAEAu4B,iBAAiBH,GACf,OAAO9sH,KAAK29B,MAAM3nB,IACf,GAAEhW,KAAKoC,WAAW47B,sCAAsC8uF,aAE7D,CAEAI,2BAA2BP,GACzB,OAAO3sH,KAAK29B,MAAM3nB,IAChBhW,KAAKoC,WAAW47B,WAAa,0BAA4B2uF,EAE7D,CAEAQ,0CAA0CvlE,GACxC,OAAO5nD,KAAK29B,MAAM3nB,IAChBhW,KAAKoC,WAAW47B,WACd,0CACA4pB,EAEN,CAEAwlE,oBAAoBC,GAClB,OAAOrtH,KAAK29B,MACTyrC,KACCppE,KAAKoC,WAAW47B,WAAa,8BAC7BqvF,GAEDpzF,MAAMwG,GACEA,EAASl4B,MAEtB,CAEA+kH,4BAA4B1lE,GAC1B,OAAO5nD,KAAK29B,MACT3nB,IACChW,KAAKoC,WAAW47B,WAAa,4BAA8B4pB,GAE5D3tB,MAAMwG,GACEA,EAASl4B,MAEtB,CAEAglH,yBAAyBxpF,EAAYl6B,GAKnC,MAAM4iC,EAAMzsC,KAAKoC,WAAW47B,WAAa,0BACzC,OAAOh+B,KAAK29B,MACT3nB,IAAIy2B,EAAK,CACRhH,OAAQ,CACN1B,WAAYA,EACZl6B,KAAM7J,KAAKsW,kBAAkBkiG,eAAe3uG,MAG/CowB,MAAMwG,IAC8B,IAA5BA,EAASl4B,KAAKw3F,WAE3B,CAEAytB,YAAY3pD,GACV,OAAO7jE,KAAK29B,MAAMT,IAChBl9B,KAAKoC,WAAW47B,WAAa,mBAC7B6lC,EAEJ,CAEA4pD,cAAc5pD,GAIZ,OAAO7jE,KAAK29B,MAAMyrC,KAChBppE,KAAKoC,WAAW47B,WAAa,yBAC7B6lC,EAEJ,CAEA6pD,eAAe7pD,GAIb,OAAO7jE,KAAK29B,MAAMyrC,KAChBppE,KAAKoC,WAAW47B,WAAa,mBAC7B6lC,EAEJ,CAEA8pD,0BAA0B9pD,GAIxB,MAAM+pD,EAAUlxF,KAAK9zB,MAAM8zB,KAAK5zB,UAAU+6D,IAI1C,OAHI+pD,EAAQC,eAAiBD,EAAQC,cAAcC,oBACjDF,EAAQC,cAAcC,kBAAoB,MAErC9tH,KAAK29B,MAAMyrC,KAChBppE,KAAKoC,WAAW47B,WAAa,8BAC7B4vF,EAEJ,CAEAzkD,eAAe3jB,GAIb,OAAOxlD,KAAK29B,MAAMyrC,KAChBppE,KAAKoC,WAAW47B,WAAa,yBAC7B,CACEwxB,OAAQhK,GAGd,CAEAuoE,2BAA2BC,GACzB,OAAOhuH,KAAK29B,MAAMyrC,KAChBppE,KAAKoC,WAAW47B,WAAa,mBAC7BgwF,EAEJ,EAGFjwH,EAAAA,QACGC,OAAO,sBACP6P,QAAQ,qBAAsB4+G,EAAoB,O,6MCnLrD,SAASwB,EACPpwF,EACAh8B,EACAQ,EACAs1B,EACA5pB,EACAkhC,EACAhtC,EACAG,EACAsgC,GAUA,MAPgB,CACdwrF,gBAAiBA,EACjBC,cAAeA,EACfC,gBAAiBA,EACjBC,YAAaA,GAOf,SAASH,IAA6C,IAA7BrkH,EAAO,UAAH,6CAAG,GAAInG,EAAc,UAAH,6CAAG,GAKhD,OAAOm6B,GAAIkD,IACLpJ,EAAeioF,mBACjBl9E,EAAegvE,oBAAoB,CAAEpwC,SAAU,IAAKrnC,MAAMiiB,IACxDnb,EAAQmb,EAAOxX,MAAM,GAAG,IAG1B3D,EAAQ,KACV,IACC9G,MAAMq0F,IACP,MAAMjzF,EAAO1D,EAAe6B,UAmC5B,OAAO+0F,EAjCqB,CAC1BnrD,OAAQ,GACRngC,GAAIl1B,EAAYlP,QAChBirD,KAAMjgD,GAAQ,GACd2kH,YAAa9qH,GAAe,GAC5B+qH,iBAAkB,EAClBC,SAAU,WACVC,YAAatzF,EAAK9mB,GAClBq6G,WAAYN,EAAaA,EAAWvqF,WAAa1I,EAAK0I,WACtD8qF,aAAc,GACdC,aAAa,IAAIn8D,MAAOi3D,cACxBmF,aAAa,IAAIp8D,MAAOi3D,cACxBoF,uBAAuB,EACvBC,uBAAuB,EACvBC,iBAAkB7zF,EAAK9mB,GACvBgxD,MAAO,GACP4pD,uBAAmB7vH,EACnB8vH,6BAAyB9vH,EACzBygE,KAAM,GACN3rD,WAAO9U,EACP+vH,QAAQ,EACRvqD,WAAY,GACZwqD,WAAW,EACXC,wBAAyB,GACzBC,iBAAkB,KAClBC,kBAAkB,EAClBC,uBAAuB,EACvBC,cAAe,EACfC,kBAAmB,GACnB/B,mBAAevuH,EACfuwH,gBAAgB,GAGK,GAE3B,CAEA,SAAS1B,EAActqD,GAUrB,OALAA,EAASgrD,aACPhrD,EAASgrD,cAA0C,KAA1BhrD,EAASgrD,aAC9BhrD,EAASgrD,aACT,GAECT,EAAgBvqD,EAASiB,YAAY7qC,MAAM7lB,IAChDyvD,EAASzvD,MAAQA,GAGdyvD,EAASisD,gBACR7tH,EAAmB8tH,cAAc/vB,aACjCn8B,EAASmsD,cACP/tH,EAAmB49F,qBAAqBG,aAC1Cn8B,EAASmsD,cACP/tH,EAAmB49F,qBAAqBC,wBAC5C19F,EAAW8iG,qCACXpgE,MAAMtB,QAAQqgC,EAASzvD,MAAMwD,gBAE7BisD,EAASzvD,MAAMwD,cAAc3C,SAASzQ,IAChCA,EAAKyP,WAAahS,EAAmBsT,aAAa6J,WACpD5a,EAAK0iB,gCACD1iB,EAAK0iB,8BACX,IAIJ+nB,EAA6By6D,iBAC3B7lC,EAASzvD,MAAMwD,cACfisD,EAASzvD,MAAMyD,eAEjBgsD,EAASiB,WAAajB,EAASzvD,MAAM67G,SAC9BC,EAAmBrsD,KAE9B,CAEA,SAASuqD,EAAgBjqB,GAKvB,GAAkB7kG,MAAd6kG,EAAyB,CACE,MAAzBA,EAAWv9F,OAAO,KACpBu9F,EAAaA,EAAWh5D,OAAO,IAEgB,MAA7Cg5D,EAAWv9F,OAAOu9F,EAAWtzF,OAAS,KACxCszF,EAAaA,EAAWh5D,OAAO,EAAGg5D,EAAWtzF,OAAS,IAExD,MAAMuD,EAAQvS,EAAUwiG,MAAMC,SAASH,GACvC,OAAOtmE,EAAGkD,QAAQ3sB,EACpB,CACE,OAAO+7G,IAAoBl2F,MAAMurB,GACxB3jD,EAAUwiG,MAAMC,SAAS9+C,IAGtC,CAIA,SAAS6oE,EAAYxqD,GACnB,OAAOhmC,GAAIkD,IACLpJ,EAAeioF,mBACjBl9E,EAAegvE,oBAAoB,CAAEpwC,SAAU,IAAKrnC,MAAMiiB,IACxDnb,EAAQmb,EAAOxX,MAAM,GAAGnwB,GAAG,IAG7BwsB,EAAQpJ,EAAe6B,UAAUjlB,GACnC,IACC0lB,MAAMV,GACA,CACL,CACE0J,GAAI4gC,EAASzvD,MAAMwD,cAAc,GAAGrD,GACpC67G,eAAgB72F,EAChB82F,gBAAiB,KACjBC,mBAAmB,EACnBC,2BAA2B,EAC3BnmD,cAAevG,EAASzvD,MAAMwD,cAAc,GAAGrD,GAC/Ci8G,mBAAoB,EACpBllD,cAAc,EACdrE,aAAa,EACbwpD,YAAY,EACZC,kBAAcpxH,EACdqxH,0BAA2B,EAC3BC,6BAA8B,EAC9BC,8BACE5uH,EAAmB6uH,8BAA8BC,IACnD5hD,sBACEltE,EAAmBmtE,sBAAsB4hD,SAC3C9mD,SAAUrG,EAASzvD,MAAMwD,cAAc,GAAGhM,KAC1CqZ,KAAM,CACJgsG,UAAW,sBACXvtH,YAAa,GACbC,aAAc,IAEhBs2E,MAAO,CACL,CACE1lE,GAAI,KACJ6lE,SAAU,GACV4qB,OAAQ,KACR3qB,eAAgB,GAChBxM,UAAW,EACX4J,QAAS,CACP,CACEljE,GAAI,KACJwjE,OAAQ,EACRwC,cAAe,UAMzB,CACEt3C,GAAI4gC,EAASzvD,MAAMwD,cAAc,GAAGrD,GACpC67G,eAAgB72F,EAChB82F,gBAAiB,KACjBC,mBAAmB,EACnBC,2BAA2B,EAC3BnmD,cAAevG,EAASzvD,MAAMwD,cAAc,GAAGrD,GAC/Ci8G,mBAAoB,EACpBllD,cAAc,EACdrE,aAAa,EACbwpD,YAAY,EACZC,kBAAcpxH,EACdqxH,0BAA2B,EAC3BC,6BAA8B,EAC9BC,8BACE5uH,EAAmB6uH,8BAA8BC,IACnD5hD,sBACEltE,EAAmBmtE,sBAAsB4hD,SAC3C9mD,SAAUrG,EAASzvD,MAAMwD,cAAc,GAAGhM,KAC1CqZ,KAAM,CACJgsG,UAAW,sBACXvtH,YAAa,GACbC,aAAc,IAEhBs2E,MAAO,CACL,CACE1lE,GAAI,KACJ6lE,SAAU,GACV4qB,OAAQ,KACR3qB,eAAgB,GAChBxM,UAAW,EACX4J,QAAS,CACP,CACEljE,GAAI,KACJwjE,OAAQ,EACRwC,cAAe,UAMzB,CACEt3C,GAAI4gC,EAASzvD,MAAMwD,cAAc,GAAGrD,GACpC67G,eAAgB72F,EAChB82F,gBAAiB,KACjBC,mBAAmB,EACnBC,2BAA2B,EAC3BnmD,cAAevG,EAASzvD,MAAMwD,cAAc,GAAGrD,GAC/Ci8G,mBAAoB,EACpBllD,cAAc,EACdrE,aAAa,EACbwpD,YAAY,EACZC,kBAAcpxH,EACdqxH,0BAA2B,EAC3BC,6BAA8B,EAC9BC,8BACE5uH,EAAmB6uH,8BAA8BC,IACnD5hD,sBACEltE,EAAmBmtE,sBAAsB4hD,SAC3C9mD,SAAUrG,EAASzvD,MAAMwD,cAAc,GAAGhM,KAC1CqZ,KAAM,CACJgsG,UAAW,sBACXvtH,YAAa,GACbC,aAAc,IAEhBs2E,MAAO,CACL,CACE1lE,GAAI,KACJ6lE,SAAU,GACV4qB,OAAQ,KACR3qB,eAAgB,GAChBxM,UAAW,EACX4J,QAAS,CACP,CACEljE,GAAI,KACJwjE,OAAQ,EACRwC,cAAe,YAQ/B,CAIA,SAASg0C,EAAO1qD,GACd,OAAOuqD,IACJn0F,MAAM7lB,IACLyvD,EAASzvD,MAAQA,EACjByvD,EAASiB,WAAajB,EAASzvD,MAAM67G,SAC9B5B,EAAYxqD,MAEpB5pC,MAAMloB,IACL8xD,EAAS0B,MAAQxzD,EACV8xD,IAEb,CAEA,SAASqsD,EAAmBrsD,GAC1B,OAAOuqD,EAAgBvqD,EAASiB,YAAY7qC,MAAM7lB,IAChDyvD,EAASzvD,MAAQA,EACVyvD,IAEX,CAEA,SAASssD,IACP,OAAOtyF,GAAIkD,IACLpJ,EAAeioF,mBACjBl9E,EAAegvE,oBAAoB,CAAEpwC,SAAU,IAAKrnC,MAAMiiB,IACxDnb,EAAQmb,EAAOxX,MAAM,GAAG,IAG1B3D,EAAQpJ,EAAe6B,UACzB,IACCS,MAAMoB,IACP,MAAM9B,EAAS8B,EAAK9mB,GACd8lB,EAAWgB,EAAKhB,SAChBC,EAAYj4B,EAAc+pF,wBAAwB7yD,EAAQc,GAKhE,MAAO,CACL62F,MAAO3xH,GAAG4xH,gBACVC,UAAW,CACThiH,SAAU,aAEZwI,cAAe,CACb,CACErD,GAAIxG,EAAYuH,MAChB1P,IAAK,IACLqO,SAAUmE,EAAAA,aAAa3C,MACvB7J,KAAM,QACNylH,UAAW,EACXh5G,eAAgB,EAChBlD,KAAM,QACN2/D,UAAW,OACX7sD,IAAK,eAEP,CACE1T,GAAIxG,EAAYuH,MAChB1P,IAAK,IACLqO,SAAUmE,EAAAA,aAAa3C,MACvB7J,KAAM,MACNylH,UAAW,EACXh5G,eAAgB,EAChBlD,KAAM,MACN4/D,QAAS,OACT9sD,IAAK,iBAEP,CACEriB,IAAK,IACLqO,SAAUmE,EAAAA,aAAagH,SACvBxT,KAAM,SACNuJ,KAAM,eACNmlB,UAAWA,EACX5zB,UAAW2zB,EACXl2B,SAAU,EACV8jB,IAAK,4BACL1T,GAAIxG,EAAYuH,MAChBw2D,UAAWC,EAAAA,WAAWttB,KACtB/5C,wBAAyB,QACzB+/B,MAAOlL,EACPnS,qBAAqB,EACrBJ,4BAA4B,EAC5BJ,uBAAuB,EACvBG,qBAAqB,EACrBG,+BAA+B,EAC/BoqG,qBAAqB,EACrBC,sBAAuB,GACvBt3C,MAAO,CACL,CACE1lE,GAAI,KACJ6lE,SAAU,GACV4qB,OAAQ,KACR3qB,eAAgB,GAChBxM,UAAW,EACX4J,QAAS,CAAC,CAAEljE,GAAI,KAAMwjE,OAAQ,EAAGwC,cAAe,UAItD,CACE30E,KAAM,EACNqO,SAAUmE,EAAAA,aAAagH,SACvBxT,KAAM,SACNuJ,KAAM,eACNmlB,UAAWA,EACX5zB,UAAW2zB,EACXl2B,SAAU,EACV8jB,IAAK,4BACL1T,GAAIxG,EAAYuH,MAChBw2D,UAAWC,EAAAA,WAAWttB,KACtB/5C,wBAAyB,QACzB+/B,MAAOlL,EACPnS,qBAAqB,EACrBJ,4BAA4B,EAC5BJ,uBAAuB,EACvBG,qBAAqB,EACrBG,+BAA+B,EAC/BoqG,qBAAqB,EACrBC,sBAAuB,GACvBt3C,MAAO,CACL,CACE1lE,GAAI,KACJ6lE,SAAU,GACV4qB,OAAQ,KACR3qB,eAAgB,GAChBxM,UAAW,EACX4J,QAAS,CAAC,CAAEljE,GAAI,KAAMwjE,OAAQ,EAAGwC,cAAe,UAItD,CACE30E,KAAM,EACNqO,SAAUmE,EAAAA,aAAagH,SACvBxT,KAAM,SACNuJ,KAAM,eACNmlB,UAAWA,EACX5zB,UAAW2zB,EACXl2B,SAAU,EACV8jB,IAAK,2BACL1T,GAAIxG,EAAYuH,MAChBw2D,UAAWC,EAAAA,WAAWttB,KACtB/5C,wBAAyB,QACzB+/B,MAAOlL,EACPnS,qBAAqB,EACrBJ,4BAA4B,EAC5BJ,uBAAuB,EACvBG,qBAAqB,EACrBG,+BAA+B,EAC/BoqG,qBAAqB,EACrBC,sBAAuB,GACvBt3C,MAAO,CACL,CACE1lE,GAAI,KACJ6lE,SAAU,GACV4qB,OAAQ,KACR3qB,eAAgB,GAChBxM,UAAW,EACX4J,QAAS,CAAC,CAAEljE,GAAI,KAAMwjE,OAAQ,EAAGwC,cAAe,WAKxD1iE,cAAe,CACb,CACEG,QAAS,CAAEC,KAAM,OAAQo1F,QAAS,0BAClC/pF,KAAM,IACNC,GAAI,IACJiuG,aAAc,CAAC,CAAEnkB,QAAS,OAAQp1F,KAAM,UACxCsO,OAAQ,CACN,mBAAoB,OAAQ,mBAAoB,OAChD,mBAAoB,OAAQ,mBAAoB,OAChD,kBAAmB,OAAQ,kBAAmB,SAGlD,CACEvO,QAAS,CAAEC,KAAM,UAAWo1F,QAAS,0BACrC/pF,KAAM,IACNC,IAAK,EACLiuG,aAAc,CAAC,CAAEnkB,QAAS,OAAQp1F,KAAM,UACxCsO,OAAQ,CACN,kBAAmB,OAAQ,kBAAmB,OAAQ,YACtD,OAAQ,YAAa,OAAQ,mBAAoB,OACjD,mBAAoB,SAGxB,CACEvO,QAAS,CAAEC,KAAM,UAAWo1F,QAAS,0BACrC/pF,MAAO,EACPC,IAAK,EACLiuG,aAAc,CAAC,CAAEnkB,QAAS,OAAQp1F,KAAM,UACxCsO,OAAQ,CACN,YAAa,OAAQ,YAAa,OAAQ,kBAC1C,OAAQ,kBAAmB,OAAQ,kBAAmB,OACtD,kBAAmB,SAGvB,CACEvO,QAAS,CAAEC,KAAM,UAAWo1F,QAAS,0BACrC/pF,MAAO,EACPC,GAAI,IACJiuG,aAAc,CAAC,CAAEnkB,QAAS,OAAQp1F,KAAM,UACxCsO,OAAQ,CACN,kBAAmB,OAAQ,kBAAmB,OAC9C,kBAAmB,OAAQ,kBAAmB,OAC9C,kBAAmB,OAAQ,kBAAmB,UAIrD,GAEL,CACF,CAvfAxoB,QACGC,OAAO,sBACPqB,QAAQ,uBAAwB4uH,GAEnCA,EAAqB73G,QAAU,CAC7B,KACA,YACA,gBACA,iBACA,cACA,+BACA,qBACA,aACA,iBA0eD,O,02BClgB0E,OAAtC,EAAAq7G,EAAAA,eAAcC,EAAAA,SACR,c,g3BCqIzC,MApIuC,KACvC,MAAMn+D,GAAY,EAAAuP,EAAAA,YAAqC,cACjD6uD,GACJ,EAAA7uD,EAAAA,YAAwC,iBAE1C,IAAKvP,EAAUosB,6BACb,OAAO,KAGT,GACEpsB,EAAUqsB,uCACVrsB,EAAUmsB,uBAKV,OAHA5gF,QAAQ+vB,KACN,oGAEK,KAGT,MAAO+iG,EAAWC,IAAgB,EAAAC,EAAAA,WAAS,IACpCC,EAAWC,IAAgB,EAAAF,EAAAA,UAAwB,MAEpDG,GAAe,EAAAC,EAAAA,QAAsB,MACrCC,GAAoB,EAAAD,EAAAA,QAA8C,MAClEE,GAA2B,EAAAF,EAAAA,QAC/B,MAGI92D,EAAe,4BAErB,EAAAi3D,EAAAA,YAAU,KACR,MAAMC,EAAqB,KACzBC,IACAV,GAAa,EAAM,EAGrB,OADAnyH,OAAO2wC,iBAAiB,eAAgBiiF,GACjC,KACL5yH,OAAOo4F,oBAAoB,eAAgBw6B,EAAmB,CAC/D,GACA,KAEH,EAAAD,EAAAA,YAAU,KACRV,EAAchoG,UACZ,uBACA,CAAC6oG,EAAQC,IACPC,EAAuBD,IACzBr3D,GAGK,KACLm3D,IACAZ,EAAc/1F,eAAew/B,EAAa,IAE3C,IAEH,MAAMs3D,EAA0BD,IAC9BZ,GAAa,GACbU,IACA,MAAMI,EAAkB,IAAIhgE,KAAK8/D,GAAgB30B,UAC7CxnE,MAAMq8F,GACR7zH,QAAQ+vB,KAAK,8DAGfojG,EAAajjH,QAAU2jH,EACvBC,IAAe,EAGXA,EAAgB,KACpB,MAAMC,EACJt/D,EAAUqsB,sCACNkzC,EAAsD,IAA1BD,EAC5BE,EAAWd,EAAajjH,QAAU2jD,KAAKu2B,MAEzC6pC,GAAYD,EACdE,EAAe9jH,KAAK0nB,KAAKm8F,EAAW,MAEpCX,EAAyBpjH,QAAUg4B,YACjC,IAAMgsF,EAAeH,IACrBE,EAAWD,EAEf,EAGIE,EAAkBC,IACtBpB,GAAa,GACbG,EAAaiB,GAEbd,EAAkBnjH,QAAUkkH,aAAY,KACtClB,GAAcmB,GACRA,GAAQ,GACVZ,IACAV,GAAa,GACN,GAEFsB,EAAO,GACd,GACD,IAAK,EAGJZ,EAAc,KAClBa,cAAcjB,EAAkBnjH,SAChCqkH,aAAajB,EAAyBpjH,QAAQ,EAG1CskH,EAAcvB,IAClB,MAAMwB,EAAOl2C,GAAgBp4E,OAAOo4E,GAAKm2C,SAAS,EAAG,KAE/CC,EAAQvkH,KAAK8+C,MAAM+jE,EAAY,MAC/B2B,EAAUxkH,KAAK8+C,MAAO+jE,EAAY,KAAQ,IAC1CkB,EAAUlB,EAAY,GAE5B,OAAO0B,EAAQ,EACV,GAAEF,EAAIE,MAAUF,EAAIG,MAAYH,EAAIN,KACpC,GAAEM,EAAIG,MAAYH,EAAIN,IAAU,EAGvC,OACE,wBAAC,EAAAU,OAAM,CAACzsF,KAAM0qF,EAAWgC,sBAAoB,GAC3C,wBAAC,EAAAC,cAAa,KACZ,wBAAC,EAAAC,IAAG,CAACthC,UAAU,4BACb,6BAAGA,UAAU,wBAAuB,wBACpC,6BAAGA,UAAU,wBAAwB8gC,EAAWvB,IAChD,6BAAGv/B,UAAU,+BAA8B,gCACZ,mCAAM,wCACE,mCAAM,mCACX,mCAAM,cAKrC,EAIwB,c,8ECxIrC,QAFW,miD,gDCEX,QAFW,knG,gDCEX,QAFW,w1B,gDCEX,QAFW,wpG,gDCEX,QAFW,2W,gDCEX,QAFW,uR,gDCEX,QAFW,ymB,gDCEX,QAFW,2W,gDCEX,QAFW,+Y,gDCEX,QAFW,spF,gDCEX,QAFW,ib,gDCEX,QAFW,urB,gDCEX,QAFW,2iD,gDCEX,QAFW,46G,gDCEX,QAFW,u5B,gDCEX,QAFW,k6I,gDCEX,QAFW,8T,gDCEX,QAFW,+3B,gDCEX,QAFW,g6C,gDCEX,QAFW,i9E,gDCEX,QAFW,6Q,gDCEX,QAFW,6sB,+CCEX,QAFW,yrD,gDCEX,QAFW,8yB,gDCEX,QAFW,msB,gDCEX,QAFW,oU,gDCEX,QAFW,6hB,qXCDXx0F,EAAO+1H,QAAUh2H,O","sources":["webpack://flowingly-runner/../Flowingly.Modeler.Web/Client/@types/modelerActionEvent.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/@types/core/contracts/constants/nodeRuleActions.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/@types/core/contracts/constants/publicFormType.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/@types/core/contracts/constants/settingValueTypes.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/@types/core/contracts/queryModel/workflow/lookupSpecialFields.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/@types/core/data/entities/workflows/workflowStatusType.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/@types/pubSub.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/@types/stateMappings.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/app.module.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/exago.adapter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/flowingly.adapters.module.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/go.adapter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/html2canvas.adapter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/htmlentities.adapter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/jquery.adapter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/jspdf.adapter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/kendo.adapter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/lodash.adapter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/materialize.adapter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/moment.adapter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/papa-parse.adapter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/toastr.adapter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.adapters/zxcvbn.adapter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.activity.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.command.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.common.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.component.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.constants.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.diagram.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.diagram.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.event.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.gateway.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.lane.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.menu.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.module.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.overview.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.palette.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.parts.factory.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.pool.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.bpmn.modeler/flowingly.bpmn.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/comments/add-comment.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/comments/comment-history.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/comments/comments.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/components.module.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/customdatabase/customdatabase.config.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/datepicker/flowingly.datepicker.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/devtools/dev-logger.module.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/devtools/dev-logger.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/dialogwarningbox/dialog.warning.box.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/easyinput/flow.select.user.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/editor.youtube.dialog.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/facade/kendo.combobox.facade.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/facade/kendo.datasource.facade.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/facade/kendo.helper.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/flow.avatar.circle.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/flows.utility.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/formula/formula.config.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/icon.picker.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/lookup/lookup.config.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/mention/flowingly.mention.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/optional.text.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/sessiontimeoutnotifier/flowingly.session.timeout.notifier.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/smartselect/smart.select.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/smartselect/smart.select.list.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/smartselect/smart.select.search.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/smartselect/smart.select.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tablebuilder/table.builder.cell.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tablebuilder/table.builder.cell.editor.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tablebuilder/table.builder.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tablerunner/table.runner.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tablerunner/table.runner.date.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tablerunner/table.runner.fileChange.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tablerunner/table.runner.fileUpload.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tableviewer/table.viewer.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/clipboard.copy.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/comment.file.onchange.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/comment.file.upload.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/convertToNumber.directive.js","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/custom.input.validaton.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/custom.validation.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/delegation-banner/delegation-banner.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/delegation-banner/delegation-banner.module.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/directives.module.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/drag-drop.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/duedate.validation.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/elastic.textarea.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/files/files.module.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/files/flow.download.link.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/files/flowFileInput.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/files/flowPublishFileChange.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/filesInput.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/flowingly.contenteditable.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/grid/flowingly.grid.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/illegalCharacter.strip.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/intercom.knowledgebase.link.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/intercom.message.launcher/intercom.message.launcher.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/loading-text/loading.text.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/mention-tag.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/optional.comment.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/optional.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/permissions/flow.if.environment.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/permissions/flow.if.permissions.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/permissions/flow.permissions.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/profile.avatar.circle.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/really.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/same.password.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/scroll.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/scrollToCommentBottom.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/user-notifications/user.notification-view.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/user-notifications/user.notifications.api.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/user-notifications/user.notifications.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/user-notifications/user.notifications.module.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/user-profile/user.profile.change.avatar.component.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/user-profile/user.profile.module.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/xss.validation.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.filters/filters.module.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.filters/randomsrc.filter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.filters/typeof.filter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.filters/utcToLocal.filter.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.helper/fetcher.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.hooks/useService.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.modeler.validation/modeler.validation.errors.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.modeler.validation/modeler.validation.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.modeler.validation/queryable.workflow.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.modeler.validation/rule.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.modeler.validation/ruleset-parser.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.modeler.validation/ruleset-validation.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.modeler.validation/ruleset.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.modeler.validation/validation.module.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/APP_CONFIG.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/angular.auth0SpaSdk.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/appInsights.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/appInsightsHelper.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/audit.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/authentication.logging.api.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/avatar.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/branding.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/browser-utils.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/busy.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/busylight.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/category.api.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/comment.api.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/currency.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/customdb.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/data/currencies_24_10_2019.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/dialog.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/document.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/exceptionHandler.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/field.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/file.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.activity.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.api.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.component.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.conditionalForm.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.diagram.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.formula.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.gateway.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.http-error-interceptor.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.kb.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.mention.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.modelUtility.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.moment.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.services.module.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.step.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.team.api.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowingly.user.api.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/flowmodel.api.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/gtm.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/guid.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/intercom.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/notification.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/pdf.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/pubSub.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/route.appconfig.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/script.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/sessionService.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/setup.api.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/signalr.client.directive.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/svg.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/temp.modeler.url.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/template.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/tokenService.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/validation.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/watch.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/workflow.api.service.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/workflow.model.factory.ts","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/sessiontimeoutnotifier/bridges/SessionTimeoutNotifierBridge.tsx","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/sessiontimeoutnotifier/components/SessionTimeoutNotifier.tsx","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/comments/add-comment.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/comments/comment-history.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/comments/comments.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/customdatabase/customdatabase.config.component.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/datepicker/flowingly.datepicker.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/dialogwarningbox/dialog.warning.box.component.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/editor.youtube.dialog.component.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/formula/formula.config.component.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/icon.picker.component.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/lookup/lookup.config.component.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/mention/flowingly.mention-search-list.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/mention/flowingly.mention.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tablebuilder/table.builder.cell.component.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tablebuilder/table.builder.cell.editor.component.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tablebuilder/table.builder.component.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tablerunner/table.runner.component.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tablerunner/table.runner.date.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tablerunner/table.runner.fileUpload.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.components/tableviewer/table.viewer.component.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/delegation-banner/delegation-banner.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/intercom.message.launcher/intercom.message.launcher.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/user-notifications/user.notification-view.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/user-notifications/user.notifications.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.directives/user-profile/user.profile.change.avatar.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/confirmDialog.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/services.message.dialog.tmpl.html","webpack://flowingly-runner/../Flowingly.Shared.Angular/src/flowingly.services/unPublishFlowDialog.tmpl.html","webpack://flowingly-runner/external var \"angular\""],"sourcesContent":["export enum ModelerActionEvent {\n PUBLISH = 'publish',\n PUBLISH_AS_WORKFLOW_COMPONENT = 'publishAsWorkflowComponent',\n PUBLISH_AS_PROCESS_MAP = 'publishAsProcessMap',\n PUBLISH_AS_PROCESS_MAP_COMPONENT = 'publishAsProcessMapComponent',\n PRINT_STEPS = 'printSteps',\n EXPORT_MAP = 'exportMap',\n EXPORT = 'export',\n EXPORT_XML = 'exportXML',\n IMPORT = 'import',\n EDIT = 'edit',\n SAVE = 'save',\n TOGGLE_FEEDBACK_PANEL = 'toggleFeedbackPanel',\n VIEW_ERRORS = 'viewErrors'\n}\n","enum NodeRuleActions {\n AssignStepToActor = 0\n}\n\nexport default NodeRuleActions;\n","export enum PublicFormType {\n Public = 0,\n Intranet = 1\n}\n","export enum SettingValueType {\n string = 0,\n boolean = 1,\n number = 2\n}\n","export enum LookupSpecialFields {\n CurrentActorFullName = 'CurrentActorName',\n CurrentActorEmail = 'CurrentActorEmail',\n InitiatorFullName = 'Initiator',\n InitiatorEmail = 'InitiatorEmail'\n}\n","export enum WorkflowStatusType {\n Draft = 1,\n Validated = 2,\n Published = 3,\n AwaitingApproval = 4\n}\n","import { Guid } from './guid';\n\n/**\n * This module contains constant, type and type predicate for the pubSub.service.ts\n */\nconst systemEvents = [\n 'READY_FOR_SIGNALR',\n 'SIGNALR_CONNECTED',\n 'SIGNALR_CONNECT_FAILED'\n] as const;\n\nconst signalrEvents = [\n //signalR events\n 'SIGNALR_WORKFLOW_UNPUBLISHED_CHANGES',\n 'SIGNALR_WORKFLOW_PUBLISHED',\n 'SIGNALR_FLOW_MODEL_PUBLISH_REQUESTED',\n 'SIGNALR_WORKFLOW_UNPUBLISHED',\n 'SIGNALR_FLOW_MODEL_STATUS_CHANGED',\n 'SIGNALR_NEW_FLOW_MODEL_SAVED',\n 'SIGNALR_USER_PROFILE_UPDATED', //currently only used when avatar deleted / updated / added server side\n 'SIGNALR_USER_NOTIFICATION_COUNT_CHANGED',\n 'SIGNALR_RUNNER_NEW_FLOW_COMMENT_COUNT',\n 'SIGNALR_RUNNER_NEW_FLOW_COMMENT',\n 'SIGNALR_SETUP_CATEGORY_DELETED', //used to update client side lists\n 'SIGNALR_SETUP_FLOW_MODEL_DELETED', //used to update client side lists\n 'SIGNALR_RUNNER_WITHDRAW_FLOW',\n 'SIGNALR_RUNNER_COMPLETE_STEP',\n 'SIGNALR_RUNNER_REASSIGN_STEP',\n 'SIGNALR_RUNNER_START_FLOW',\n 'SIGNALR_WORKFLOW_NAME_CHANGED',\n 'SIGNALR_ACTOR_DELETED',\n 'SIGNALR_RUNNER_USER_TEAM_UPDATED',\n 'SIGNALR_RUNNER_STEP_WEBHOOK_UPDATED',\n\n 'SIGNALR_RUNNER_STEP_TASK_CANCELLED',\n 'SIGNALR_RUNNER_NEW_STEP_TASK_COMMENT', // When a new step task comment is added in the API.\n 'SIGNALR_RUNNER_STEP_TASK_CREATED', // When a step task is created in the API.\n 'SIGNALR_RUNNER_STEP_TASK_UPDATED', // When a step task is updated in the API.\n\n 'SIGNALR_RUNNER_STEP_INTEGRATION_PROCESSING_UPDATED'\n] as const;\nconst noneSystemEvents = [\n // include all signalR events\n ...signalrEvents,\n\n //Modeler events\n 'CARD_DESIGNER_CLOSE_EDITORS',\n 'CARD_DESIGNER_OPEN_EDITORS',\n 'CARD_DESIGNER_DRAG_DROP',\n\n 'CARD_UPDATED',\n\n 'DIAGRAM_LINK_INSERTED',\n 'DIAGRAM_LINK_RELINKED',\n 'DIAGRAM_LINK_DELETED',\n 'DIAGRAM_PARTS_DELETED',\n 'DIAGRAM_NODE_SELECTED',\n 'DIAGRAM_POSITION_CHANGED',\n 'DIAGRAM_CLICKED',\n 'DIAGRAM_NODE_CLICKED',\n 'DIAGRAM_ELEMENT_DROPPED',\n 'TASK_PANEL_OPENCLOSE',\n 'GATEWAY_FIELD_CHANGED',\n 'WORKFLOW_NODE_CHANGED',\n 'STEP_TYPE_CHANGED',\n 'GATEWAY_TYPE_CHANGED',\n 'GATEWAY_DEFAULT_GATE_CHANGED',\n 'DIAGRAM_MODIFIED',\n 'DIAGRAM_LOADED',\n 'SELECTED_NODE_CHANGED',\n 'MODELER_FILE_EVENT',\n 'MODELER_ACTION_EVENT',\n 'WORKFLOW_VALID', //the workflow has no errors (after validation) //TODO consider combinig wiht blow = WORKFLOW_VALIDATED\n 'WORKFLOW_INVALID', //the workflow has one or more errors (after validation)\n 'WORKFLOW_UPDATED', //the worklow or the associated schema has changed (new / imported / saved)\n 'WORKFLOW_LOADED', //a workflow has been loaded\n 'STEP_REF_SEQUENCE_CHANGED', // when step ref sequence has changed\n 'STEP_ACTOR_CHANGED', // when actor is assigned to a step\n 'NOTIFY_INITIATOR_CHANGED', //when the user toggles => Notify Initiator when this step is completed?\n 'PUBLICFORM_SETTING_CHANGED', //when the user toggles => Make this a public form\n 'WORKFLOW_SAVE_COMPLETED',\n 'WORKFLOW_PUBLISHED',\n 'FLOW_MODEL_PUBLISH_REQUESTED',\n 'WORKFLOW_UNPUBLISHED',\n 'WORKFLOW_CLONED',\n 'UPDATE_EDITING',\n 'WORKFLOW_DESIGNER_FORM_FIELDS_CHANGED',\n 'WORKFLOW_DESIGNER_FORM_FIELDS_ADDED',\n 'FORM_FIELD_NAME_OR_STEP_NAME_CHANGED',\n 'FORM_FIELD_NAME_OR_STEP_NAME_CHANGE_COMPLETE',\n 'ADD_NEW_SWIM_LANE',\n 'REMOVE_SWIM_LANE',\n 'STEPRULE_SETTING_CHANGED',\n 'WORKFLOW_PUBLISH_PROCESSED',\n 'FLOWMODEL_TYPE_CHANGED',\n\n 'IMAGEUPLOAD_UPLOAD_STARTED',\n 'IMAGEUPLOAD_UPLOAD_COMPLETED',\n\n //RUNNER EVENTS\n 'RUNNER_RESIZE_GRID',\n 'STEP_NEW_NUDGE', //when step waiting on actor get nudged, thus need notify area which display step nudge history\n 'FILEUPLOAD_FILE_ERROR', //a file is required, but not present on form\n 'FILEUPLOAD_FILE_VALID', //a file is required and present on form (or not required)\n 'FILEUPLOAD_FILE_READY',\n 'FILEUPLOAD_UPLOAD_STARTED',\n 'FILEUPLOAD_UPLOAD_COMPLETED',\n 'FILEUPLOAD_REMOVAL_STARTED',\n 'FILEUPLOAD_REMOVAL_COMPLETED',\n 'FILEUPLOAD_UPLOAD_FAILED', //file upload has failed for some reason\n 'FORM_TABLE_VALID',\n 'FORM_TABLE_INVALID',\n\n //GENERAL EVENTS\n 'WINDOW_BLUR',\n 'USER_LOGGED_IN',\n 'USER_LOGGED_OUT',\n 'FILE_SELECTED',\n 'CLIENT_USER_PROFILE_UPDATED', //user's profile &/Or avatar is updated\n 'IDLE_EXPIRY_CHANGED',\n\n //INTERCOM EVENTS\n 'INTERCOM_UNREAD_MESSAGE_COUNT_CHANGED',\n\n // When integration settings has been updated, (for ex. to show/hide integration icon)\n 'STEP_INTEGRATION_SETTING_CHANGED',\n 'STEP_ATTACH_DOCUMENT_CHANGED',\n\n 'STEP_TASK_ENABLED_CHANGED', // When step tasks have been enabled/disabled on a node in Modeler.\n 'STEP_TASK_CREATED', // When a step task is created\n 'STEP_TASK_UPDATED', // When a step task is updated\n 'STEP_TASK_CANCELLED', // When a step task is canceled\n\n 'WORKFLOW_FIELDS_UPDATED', // When runner step fields are updated.\n\n 'KENDO_FACADE_UPDATE_COLLECTION', // When collection bound to kendo-combobox-facade needs reloading.\n\n //V2(REACT) EVENTS\n 'PROCESSMAPV2_CLICKED',\n 'PROCESSMAPV2_LOADED',\n 'PROCESSMAPVIEWV2_LOADED',\n\n 'CATEGORY_WITH_SUBCATEGORY_ADDED',\n 'BACKTOFLOWS_IMIN',\n 'NAVIGATE_BACK',\n 'CLEAR_CAPTCHA'\n] as const;\n\nexport const allPubSubEvents = [...systemEvents, ...noneSystemEvents] as const; // all events\nexport type PubSubEvent = (typeof allPubSubEvents)[number];\nexport type SystemEvent = (typeof systemEvents)[number];\nexport type SignalrEvent = (typeof signalrEvents)[number];\nexport type Callback = (\n event: PubSubEvent,\n data: unknown,\n params?: unknown\n) => void;\nexport type Subscriber = {\n id: string;\n callback: Callback;\n param?: unknown;\n};\nexport type PendingEvent = { event: PubSubEvent; data: unknown };\nexport type PubSubService = {\n subscriptions: Record | Record;\n subscribe: (\n event: PubSubEvent,\n callback: Callback,\n subscriberId: string,\n param?: unknown\n ) => void;\n publish: (event: PubSubEvent, data?: unknown, isImmediate?: boolean) => void;\n unsubscribeAll: (subscriberId: string) => void;\n};\n\n// type predicate to check if an event is a system event\nexport function isSystemEvent(event: PubSubEvent): event is SystemEvent {\n return systemEvents.findIndex((e) => e === event) > -1;\n}\n\n// type predicate to check if an event is signalr event\nexport function isSignalrEvent(event: PubSubEvent): event is SignalrEvent {\n return signalrEvents.findIndex((e) => e === event) > -1;\n}\n\nexport interface IEventFileUploadResult {\n fileControlId: string;\n flowInstanceId: Guid;\n}\n","export const STATE_MAPPINGS = {\n flowsactive: 'app.runner.flowsactive',\n flowstodo: 'app.runner.flowstodo',\n flowsin: 'app.runner.flowsin',\n reports: 'app.runner.reports',\n processmapsv2: 'app.runner.processmapv2',\n libraryworkflows: 'app.runner.library.workflows',\n libraryprocessmaps: 'app.runner.library.processmaps',\n librarydrafts: 'app.runner.library.drafts',\n dashboard: 'app.runner.exagosingle',\n analytics: 'app.runner.exago'\n};\n","import './flowingly.adapters/flowingly.adapters.module';\nimport './flowingly.bpmn.modeler/flowingly.bpmn.module';\n\nimport './flowingly.components/components.module';\n\nimport './flowingly.directives/directives.module';\nimport './flowingly.directives/delegation-banner/delegation-banner.module';\nimport './flowingly.filters/filters.module';\nimport './flowingly.directives/files/files.module';\nimport './flowingly.directives/user-notifications/user.notifications.module';\nimport './flowingly.directives/user-profile/user.profile.module';\n\nimport './flowingly.modeler.validation/validation.module';\n\nimport './flowingly.services/flowingly.services.module';\n\n/**\n * This module act like a main module to create all modules for angular.shared app\n * This module also define APP_CONFIG the way the runner does. APP_CONFIG will have values populated via .env files at build time\n * I notice that templates-directives & templates-components are all emptied modules but referenced by other modules\n * I create them here to avoid errorsbut will remove all references to them later\n */\n\n('use strict');\n\nangular.module('templates-directives', []);\nangular.module('templates-components', []);\n","/**\n * @ngdoc service\n * @name goService\n * @module flowingly.adapters\n *\n * @description Wraps the global ExagoAPI Object.\n *\n * ## Notes\n * Go is a global object, to make unit testing easier this adapter is used.\n * It simply wraps the global go object and allows it to be injected as a depdency into Angular controllers / services.\n * Assumes go has already been loaded on the page.\n */\n\nimport angular, { IWindowService } from 'angular';\n\n/**\n * ExagoApi comes from exago script https://stagingbi.flowingly.net/Exago/WrScriptResource.axd?s=ExagoApi\n * Tell typescript function ExagoApi exists\n * */\ndeclare function ExagoApi(\n exagoBaseURL: string,\n apiKey: string,\n onLoadCallback: () => void,\n showErrorDetail?: boolean\n): void;\n\nfunction exagoJsApiResource($window: IWindowService) {\n function getActiveSession() {\n return $window.ExagoActiveSession;\n }\n\n function createInstance(appUrl: string, apiKey: string) {\n if (ExagoApi) {\n $window.ExagoActiveSession = new ExagoApi(appUrl, apiKey, onLoadCallback);\n\n // Note: this was previously defined in exago.report.component but\n // it doesnt make sense to define this every single time you instantiate\n // the component, so I've moved it here for now -Cassey\n $window.ExagoActiveSession.OnDisposeContainer = function resetContainer(\n container\n ) {\n $(container).empty();\n };\n } else console.error('Exago API resource is missing.');\n }\n\n function onLoadCallback() {\n console.log('Exago is ready');\n $window.isExagoReady = true;\n }\n\n const retValue = {\n CreateInstance: createInstance,\n GetActiveSession: getActiveSession,\n OnLoadCallback: onLoadCallback\n };\n return retValue;\n}\nangular\n .module('flowingly.adapters')\n .factory('exagoJsApiResource', ['$window', exagoJsApiResource]);\n\nexport type ExagoJsApiResourceType = ReturnType;\n","/**\n * @ngdoc module\n * @name flowingly.adapters\n * @module flowingly.adapters\n * @description Wrappers for global objects to make testing easier and depdencies more explicit\n */\n\n//angular.module('flowingly.adapters', []);\n\n(function () {\n 'use strict';\n\n angular.module('flowingly.adapters', []);\n})();\n","/**\n * @ngdoc service\n * @name goService\n * @module flowingly.adapters\n *\n * @description Wraps the global Go Object.\n *\n * ## Notes\n * Go is a global object, to make unit testing easier this adapter is used.\n * It simply wraps the global go object and allows it to be injected as a depdency into Angular controllers / services.\n * Assumes go has already been loaded on the page.\n */\n\nimport * as angular from 'angular';\n\nangular.module('flowingly.adapters').factory('goService', [\n '$window',\n function ($window) {\n if ($window.go == undefined) {\n console.error('Go is not loaded');\n }\n return $window.go;\n }\n]);\n","(function () {\n 'use strict';\n\n angular.module('flowingly.adapters').factory('html2canvasService', [\n '$window',\n function ($window) {\n if ($window.html2canvas === undefined) {\n console.error('html2canvas is not loaded');\n }\n return $window.html2canvas;\n }\n ]);\n})();\n","/**\n * Html Entity (he) module https://github.com/mathiasbynens/he\n *\n * @license MIT\n */\nimport * as angular from 'angular';\ndeclare var window: any;\n\nexport interface IHeAdapter {\n version: string;\n encode: (string, IHeAdapterEncodeOptions?) => string;\n decode: (string, IHeAdapterDecodeOptions?) => string;\n unescape: (string, IHeAdapterDecodeOptions?) => string;\n escape: (string) => string;\n}\n\nexport interface HeAdapter extends IHeAdapter {\n ID: string;\n}\n\nexport interface IHeAdapterEncodeOptions {\n useNamedReferences: boolean;\n decimal: boolean;\n strict: boolean;\n encodeEverything: boolean;\n allowUnsafeSymbols: boolean;\n}\n\nexport interface IHeAdapterDecodeOptions {\n isAttributeValue: boolean;\n strict: boolean;\n}\n\nexport var he: HeAdapter = window.he;\nhe.ID = 'he';\n\nangular.module('flowingly.adapters').factory(he.ID, [() => he]);\n","/**\n * @ngdoc service\n * @name jQuery\n * @module flowingly.adapters\n *\n * @description Wraps the global jQuery Object.\n *\n * ## Notes\n * $ is a global object, to make unit testing easier this adapter is used.\n * It simply wraps the global $ object and allows it to be injected as a depdency into Angular controllers / services.\n * Assumes jquery has already been loaded on the page.\n */\nimport angular from 'angular';\n\nangular.module('flowingly.adapters').factory('jQuery', [\n '$window',\n 'lodashService',\n function ($window, _) {\n if ($window.$ == undefined) {\n console.error('jQuery is not loaded');\n }\n\n $.fn.extend({\n /**\n * Returns the `.html()` of this command but includes the current element.\n */\n outerHTML() {\n return this[0].outerHTML || this.clone().wrap('
').parent().html();\n },\n\n /**\n * Like `.width()` but returns only fthe width of its text box contents\n */\n textWidth() {\n const $e = $(document.createElement('span'));\n $e.html(this.clone()).appendTo('body');\n const n = $e.width();\n $e.remove();\n return n;\n },\n /**\n * Like `.height()` but returns only fthe height of its text box contents\n */\n textHeight() {\n const $e = $(document.createElement('span'));\n $e.html(this.clone()).appendTo('body');\n const n = $e.height();\n $e.remove();\n return n;\n },\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n * Returns true if nodeType is either Element or Text\n */\n isWorkableNode() {\n return this[0].nodeType == 3 || this[0].nodeType == 1;\n },\n\n /**\n * .is(:visible) does not work with pure text nodes\n */\n isVisible() {\n const isTextNode = this[0].nodeType == 3;\n return isTextNode ? this.parent().is(':visible') : this.is(':visible');\n }\n });\n\n return $window.$;\n }\n]);\n","'use strict';\nimport angular from 'angular';\n\nangular.module('flowingly.adapters').factory('jspdfService', [\n '$window',\n function ($window: angular.IWindowService) {\n if ($window.jsPDF === undefined) {\n console.error('jsPDF is not loaded');\n }\n return $window.jsPDF;\n }\n]);\n","import angular from 'angular';\nangular.module('flowingly.adapters').factory('kendoService', [\n '$window',\n function ($window: angular.IWindowService) {\n if ($window.kendo === undefined) {\n console.error('kendo is not loaded');\n }\n\n return $window.kendo;\n }\n]);\n","/**\n * @ngdoc service\n * @name lodashService\n * @module flowingly.adapters\n *\n * @description Wraps the global Lodash (_) Object.\n *\n * ## Notes\n * _ is a global object, to make unit testing easier this adapter is used.\n * It simply wraps the global _ object and allows it to be injected as a depdency into Angular controllers / services.\n * Assumes lodash has already been loaded on the page.\n */\n(function () {\n 'use strict';\n\n angular.module('flowingly.adapters').factory('lodashService', [\n '$window',\n function ($window) {\n if ($window._ == undefined) {\n console.error('Lodash is not loaded');\n }\n\n return $window._;\n }\n ]);\n})();\n","/**\n * @ngdoc service\n * @name lodashService\n * @module flowingly.adapters\n *\n * @description Wraps the global Materialize Object.\n *\n * ## Notes\n * Materialize is a global object, to make unit testing easier this adapter is used.\n * It simply wraps the global Materialize object and allows it to be injected as a depdency into Angular controllers / services.\n * Assumes Materialize has already been loaded on the page.\n */\n(function () {\n 'use strict';\n\n angular.module('flowingly.adapters').factory('materializeService', [\n '$window',\n function ($window) {\n if ($window.Materialize == undefined) {\n console.error('Materialize is not loaded');\n }\n return $window.Materialize;\n }\n ]);\n})();\n","/**\n * @ngdoc service\n * @name momentService\n * @module flowingly.adapters\n *\n * @description Wraps the global moment Object.\n *\n * ## Notes\n * moment is a global object, to make unit testing easier this adapter is used.\n * It simply wraps the global moment object and allows it to be injected as a depdency into Angular controllers / services.\n * Assumes moment has already been loaded on the page.\n */\n(function () {\n 'use strict';\n\n angular.module('flowingly.adapters').factory('momentService', [\n '$window',\n function ($window) {\n if ($window.moment == undefined) {\n console.error('moment is not loaded');\n }\n return $window.moment;\n }\n ]);\n})();\n","/**\n * @ngdoc service\n * @name papaParseService\n * @module flowingly.adapters\n *\n * @description Wraps the global Papa Object.\n *\n * ## Notes\n * Papa is a global object, to make unit testing easier this adapter is used.\n * It simply wraps the global Papa object and allows it to be injected as a depdency into Angular controllers / services.\n * Assumes Papa has already been loaded on the page. Papa Parse is a library to parse csv to json and more, refer http://papaparse.com/docs for more information.\n */\n(function () {\n 'use strict';\n\n angular.module('flowingly.adapters').factory('papaParseService', [\n '$window',\n function ($window) {\n if ($window.Papa == undefined) {\n console.error('Papa Parse is not loaded');\n }\n return $window.Papa;\n }\n ]);\n})();\n","/**\n * @ngdoc service\n * @name toastrService\n * @module flowingly.adapters\n *\n * @description Wraps the global toastr Object.\n *\n * ## Notes\n * toastr is a global object, to make unit testing easier this adapter is used.\n * It simply wraps the global toastr object and allows it to be injected as a depdency into Angular controllers / services.\n * Assumes toastr has already been loaded on the page.\n */\n(function () {\n 'use strict';\n\n angular.module('flowingly.adapters').factory('toastrService', [\n '$window',\n function ($window) {\n if ($window.toastr === undefined) {\n console.error('toastr is not loaded');\n }\n return $window.toastr;\n }\n ]);\n})();\n","/**\n * @ngdoc service\n * @name zxcvbnAdapter\n * @module flowingly.adapters\n *\n * @description Wraps the global zxcvbn Object.\n *\n * ## Notes\n * zxcvbn is a global object, to make unit testing easier this adapter is used.\n * It simply wraps the global zxcvbn object and allows it to be injected as a depdency into Angular controllers / services.\n * Assumes zxcvbn has already been loaded on the page.\n */\n\n'use strict';\nimport angular, { IWindowService } from 'angular';\nangular.module('flowingly.adapters').factory('zxcvbnAdapter', [\n '$window',\n function ($window: IWindowService) {\n if ($window.zxcvbn == undefined) {\n console.error('zxcvbn is not loaded');\n }\n return $window.zxcvbn;\n }\n]);\n","'use strict';\nimport angular from 'angular';\nimport ModelerValidationErrorsService from '../flowingly.modeler.validation/modeler.validation.errors.service';\nimport { BpmnModeler } from './@types/services';\nimport { Services } from '@Shared.Angular/@types/services';\nimport { SharedAngular } from '@Angular.Runner/@types/sharedAngular';\n\n/**\n * @ngdoc service\n * @name BpmnActivityNodeService\n * @module flowingly.bpmn.modeler\n *\n * @description A service for creating BPMN Activity nodes (Tasks).\n *\n * ## Notes\n *\n * ### Model Usage\n * { key: 131, category: \"activity\", text: \"Task\", item: \"generic task\", taskType: 0}\n *\n * There are two types of nodes (node/palette node). The first is what gets drawn on the canvas;\n * the second what gets drawni the palette and dragged on to the canvas.\n * ###API\n * * getDefaultActivityCardModel - Get default state of activity node (model)\n * * getNode - Get an actvity node defined by the (optional) options\n * * getPaletteNode - Get an actvity palette node defined by the (optional) options\n */\n\n///\n/// A service for creating BPMN Activity nodes\n///\n/// Model Usage\n///\n/// { key: 131, category: \"activity\", text: \"Task\", item: \"generic task\", taskType: 0},\n///\n\nclass BpmnActivityNodeService {\n private defaults: any;\n\n static $inject = [\n 'goService',\n 'BpmnPartsFactory',\n 'BPMN_CONSTANTS',\n 'BpmnCommonService',\n 'flowinglyConstants',\n 'modelerValidationErrorsService',\n '$window',\n 'pubsubService',\n 'APP_CONFIG',\n 'avatarService'\n ];\n constructor(\n private goService: GoJS,\n private BpmnPartsFactory,\n private BPMN_CONSTANTS: BpmnModeler.BpmnConstants,\n private BpmnCommonService: BpmnModeler.BpmnCommonService,\n private flowinglyConstants: Services.FlowinglyConstants,\n private modelerValidationErrorsService: ModelerValidationErrorsService,\n private $window: angular.IWindowService,\n private pubsubService: Services.PubSubService,\n private APP_CONFIG: Services.APP_CONFIG,\n private avatarService: SharedAngular.AvatarService\n ) {\n this.defaults = {\n ActivityNodeEditable: this.BPMN_CONSTANTS.MakeNodesEditable,\n ActivityNodeWidth: 145,\n ActivityNodeMaskWidth: 150,\n ActivityNodeHeight: 80,\n ActivityNodeStroke: this.BPMN_CONSTANTS.ActivityNodeBorder,\n ActivityNodeFill: this.BPMN_CONSTANTS.ActivityNodeFill,\n ActivityNodeStrokeWidth: this.BPMN_CONSTANTS.ActivityNodeStrokeWidth,\n ActivityNodePaletteStrokeWidth:\n this.BPMN_CONSTANTS.ActivityNodePaletteStrokeWidth,\n ActivityHeaderColor: this.BPMN_CONSTANTS.ActivityHeaderFillColor,\n ActivitySquareColour: this.BPMN_CONSTANTS.ActivitySquareFillColor,\n ActivitySquareHighlightColour:\n this.BPMN_CONSTANTS.ActivitySquareHighlightColor\n };\n this.determineBackgroundColor = this.determineBackgroundColor.bind(this);\n }\n ///\n /// Get default state of activity node (model)\n ///\n public getDefaultActivityCardModel() {\n return {\n description: '',\n formElements: []\n };\n }\n\n public getNode(options) {\n angular.extend(this.defaults, options); //override defaults, if options supplied\n return this.getActivityNode();\n }\n\n ///\n /// Get a Gateway node defined by the (optional) options\n /// If options is not supplied, default values will be used\n ///\n public getPaletteNode(options) {\n angular.extend(this.defaults, options); //override defaults, if options supplied\n\n return this.getActivityPaletteNode();\n }\n\n private nodeActivityTaskVisibilityConverter(s) {\n //if it's an approval task then show the tickmark\n if (\n s === this.flowinglyConstants.taskType.APPROVAL ||\n s === this.flowinglyConstants.taskType.PARALLEL_APPROVAL ||\n s === this.flowinglyConstants.taskType.SEQUENTIAL_APPROVAL\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n private nodeShowEmailIconVisibilityConverter(node) {\n //if it's notify email checked show envelope\n const show =\n node.displayNotificationIcon === 'true' ||\n node.displayNotificationIcon === true;\n\n return !this.isCustomMailActivity(node.taskType) && show;\n }\n\n private nodeShowRefSequenceVisibilityConverter(s) {\n //if it has ref sequence show it\n const show = !!s;\n\n return false;\n }\n\n private nodeShowIntegrationIconVisibilityConverter(display) {\n //If integration is enabled on the step and business settings then show the integration icon\n const show =\n (display === 'true' || display === true) &&\n this.APP_CONFIG.enableWebhooks;\n return show;\n }\n\n private nodeShowAttachDocumentVisibilityConverter(display) {\n const show = String(display).toLowerCase() === 'true';\n return show;\n }\n\n private nodeShowStepTaskIconVisibilityConverter(display) {\n const isStepTaskEnabled =\n this.APP_CONFIG.enableStepTasks != null &&\n this.APP_CONFIG.enableStepTasks;\n\n const show = (display === 'true' || display === true) && isStepTaskEnabled;\n return show;\n }\n\n private nodeShowPublicFormIconVisibilityConverter(s) {\n //if it's public form checked show icon\n const show = s === 'true' || s === true;\n return show;\n }\n\n private nodeShowStepRuleIconVisibilityConverter(s) {\n //if the step has a step rule then show icon\n return s && this.APP_CONFIG.allowStepRules;\n }\n\n private isCustomMailActivity(taskType) {\n return taskType === 6;\n }\n\n private getBorderColor(goNodeModel) {\n const hasError = this.modelerValidationErrorsService.hasErrors(\n goNodeModel.key\n );\n return hasError\n ? this.BPMN_CONSTANTS.Theme.Error.Border.Color\n : this.BPMN_CONSTANTS.ActivityNodeBorder;\n }\n\n private getBorderWidth(goNodeModel) {\n const hasError = this.modelerValidationErrorsService.hasErrors(\n goNodeModel.key\n );\n const { taskType } = goNodeModel;\n\n if (this.isCustomMailActivity(taskType)) {\n // custom email is made with the same function :(\n return hasError\n ? this.BPMN_CONSTANTS.Theme.Error.Border.StrokeWidth / 2\n : 0; // divided by 2 to match the activity width\n } else {\n return hasError\n ? this.BPMN_CONSTANTS.Theme.Error.Border.StrokeWidth\n : this.BPMN_CONSTANTS.ActivityNodeStrokeWidth;\n }\n }\n\n private isNodeCurrentStep(s) {\n if (s.color) return s.color;\n else return this.BPMN_CONSTANTS.Theme.FlowinglyWhite;\n }\n\n private isInModeler() {\n const _isInModeler =\n this.$window.location.pathname === '/modeler/' ? true : false;\n\n return _isInModeler;\n }\n\n public determineBackgroundColor(actorName) {\n const firstLetter = actorName.charAt(0).toUpperCase();\n return this.avatarService.getBgColorForProcessMapRightPaneAvatar(\n firstLetter\n );\n }\n\n //---------------------------------------------TEMPLATE------------------------------------------\n private getActivityNode() {\n const $GO = this.goService.GraphObject.make;\n\n const activityNodeTemplate = $GO(\n this.goService.Node,\n 'Auto',\n {\n isShadowed: true,\n shadowColor: this.BPMN_CONSTANTS.diagram.shadow.color,\n shadowBlur: this.BPMN_CONSTANTS.diagram.shadow.blur,\n shadowOffset: new this.goService.Point(\n this.BPMN_CONSTANTS.diagram.shadow.offsetX,\n this.BPMN_CONSTANTS.diagram.shadow.offsetY\n ),\n locationSpot: this.goService.Spot.Center,\n resizable: false,\n selectionAdorned: true,\n defaultStretch: this.goService.GraphObject.Vertical,\n cursor: 'move',\n mouseEnter: function (e, node) {\n if (!this.BpmnCommonService.shouldShowConnectorPoints()) return;\n\n if (this.isCustomMailActivity(node.data.taskType)) {\n this.BpmnCommonService.showPort(node, 'EmailConnectionSpot');\n } else {\n this.BpmnCommonService.showPort(node, 'ActivityConnectionSpot');\n }\n }.bind(this),\n mouseLeave: function (e, node) {\n this.BpmnCommonService.hidePort(node, 'ActivityConnectionSpot');\n this.BpmnCommonService.hidePort(node, 'EmailConnectionSpot');\n }.bind(this)\n },\n new this.goService.Binding('itemArray', 'boundaryEventArray'),\n new this.goService.Binding('locationObjectName', 'taskType', (s) => {\n return this.isCustomMailActivity(s) ? 'Icon' : 'Square';\n }),\n new this.goService.Binding(\n 'location',\n 'loc',\n this.goService.Point.parse\n ).makeTwoWay(this.goService.Point.stringify),\n $GO(\n this.goService.Panel,\n 'Auto',\n $GO(\n this.goService.Shape,\n {\n fill: 'white',\n stroke: this.defaults.ActivityNodeStroke,\n strokeWidth: this.defaults.ActivityNodeStrokeWidth,\n fromLinkable: true,\n toLinkable: true,\n portId: 'activity',\n fromLinkableDuplicates: true,\n toLinkableDuplicates: true,\n //toMaxLinks: 1,\n cursor: 'pointer',\n fromSpot: this.goService.Spot.RightSide,\n toSpot: this.goService.Spot.LeftSide,\n name: 'outline'\n },\n\n // Business Rule for FLOW-4654, when valdiation the borders of\n // the nodes should turn red if they contain an error.\n new this.goService.Binding(\n 'stroke',\n '',\n this.getBorderColor.bind(this)\n ),\n new this.goService.Binding(\n 'strokeWidth',\n '',\n this.getBorderWidth.bind(this)\n ),\n\n new this.goService.Binding('fill', 'taskType', (s) => {\n return this.isCustomMailActivity(s) ? 'transparent' : 'white';\n }),\n new this.goService.Binding('portId', 'taskType', (s) => {\n return this.isCustomMailActivity(s) ? 'customMail' : '';\n })\n ),\n $GO(this.goService.Shape, {\n fill: 'transparent',\n stroke: null,\n cursor: 'move',\n width: this.defaults.ActivityNodeMaskWidth,\n height: this.defaults.ActivityNodeHeight,\n alignment: this.goService.Spot.Left,\n name: 'Mask'\n })\n ),\n\n $GO(\n this.goService.Panel,\n 'Table',\n {\n defaultAlignment: this.goService.Spot.Left,\n margin: new this.goService.Margin(1, 1.5, 1, 1)\n },\n $GO(this.goService.RowColumnDefinition, {\n row: 0,\n background: this.defaults.ActivityHeaderColor\n }),\n\n new this.goService.Binding(\n !this.isInModeler() ? 'background' : '',\n '',\n (s) => {\n return this.isNodeCurrentStep(s);\n }\n ),\n $GO(this.goService.RowColumnDefinition, { row: 1 }),\n $GO(this.goService.RowColumnDefinition, { row: 2, height: 24 }),\n\n //header icon\n $GO(\n this.goService.Panel,\n 'Horizontal',\n {\n row: 0,\n column: 0,\n stretch: this.goService.GraphObject.Fill,\n minSize: new this.goService.Size(34, 34)\n },\n $GO(\n this.goService.TextBlock,\n {\n width: 34,\n textAlign: 'center',\n font: '600 16pt \"Open Sans\"',\n stroke: '#ffffff'\n },\n new this.goService.Binding('text', 'actorName', function (\n actorName\n ) {\n const firstLetter = actorName.charAt(0).toUpperCase();\n return firstLetter;\n })\n ),\n new this.goService.Binding(\n 'background',\n 'actorName',\n this.determineBackgroundColor\n )\n ),\n //header title\n $GO(\n this.goService.TextBlock,\n {\n row: 0,\n column: 1,\n alignment: this.goService.Spot.Left,\n margin: 5,\n font: '600 10pt \"Open Sans\"',\n textAlign: 'left',\n stroke: '#408EE0',\n width: 120,\n wrap: this.goService.TextBlock.WrapDesiredSize\n },\n new this.goService.Binding('text', 'actorName')\n ),\n //task name\n $GO(\n this.goService.TextBlock,\n {\n row: 1,\n column: 0,\n columnSpan: 2,\n textAlign: 'center',\n margin: 15,\n font: '600 11pt \"Open Sans\"',\n stroke: '#35384D',\n editable: true,\n textValidation: (textBlock, oldValue, newValue) => {\n return !(\n newValue.indexOf('{') > -1 || newValue.indexOf('}') > -1\n );\n },\n textEditor: this.BpmnCommonService.getTextEditingTool(),\n cursor: 'move',\n width: this.defaults.ActivityNodeWidth,\n wrap: this.goService.TextBlock.WrapFit,\n isMultiline: true,\n stretch: this.goService.GraphObject.Horizontal\n },\n new this.goService.Binding('text').makeTwoWay((stepName, node) => {\n // FLOW-6030: This is a binding conversion function that is executed before setting the binding.\n // This gets executed at the time if initialization as well at this time the node and stepName would be equal.\n // Once the user double clicks and updates the value then this function gets executed before updating the binding property to node.\n if (node.text !== stepName) {\n // FLOW-6030 : If the stepname is updated then we set the latest step name to the node and then fire the\n // diagram updated event. This is to avoid issue with timing issue where before the binding updates the stepname and\n // firing the DIAGRAM_MODIFIED event. We want to fire the event after the node.text property is updated with the latest value.\n node.text = stepName;\n this.pubsubService.publish('DIAGRAM_MODIFIED');\n }\n return stepName;\n })\n ),\n new this.goService.Binding('visible', 'taskType', (s) => {\n return !this.isCustomMailActivity(s);\n })\n ),\n //Task ref sequence text\n $GO(\n this.goService.Panel,\n 'Auto',\n {\n alignment: new this.goService.Spot(0, 1, 5, -5)\n },\n $GO(this.goService.Shape, 'Ellipse', {\n fill: this.defaults.ActivityHeaderColor,\n stroke: this.defaults.ActivityNodeStroke\n }),\n $GO(\n this.goService.TextBlock,\n {\n font: '600 10pt \"Open Sans\"',\n textAlign: 'center',\n stroke: '#35384D',\n margin: new this.goService.Margin(0, 5)\n },\n new this.goService.Binding('text', 'refSequence')\n ),\n new this.goService.Binding('visible', '', (node) => {\n return !!node.refSequence && node.taskType !== 6;\n })\n ),\n\n $GO(\n this.goService.Panel,\n 'Horizontal',\n {\n height: 100,\n alignment: this.goService.Spot.BottomRight\n },\n // Attach Document Icon\n $GO(\n this.goService.Picture,\n {\n name: 'Icon',\n width: this.BPMN_CONSTANTS.diagram.attachDocumentIcon.width,\n height: this.BPMN_CONSTANTS.diagram.attachDocumentIcon.height,\n scale: this.BPMN_CONSTANTS.diagram.attachDocumentIcon.scale,\n source: ASSETS_PATH + '/attachment-icon.svg',\n margin: new this.goService.Margin(0, 5, 3, 0),\n alignment: this.goService.Spot.BottomRight\n },\n new this.goService.Binding(\n 'visible',\n 'displayStepAttachDocumentIcon',\n this.nodeShowAttachDocumentVisibilityConverter.bind(this)\n )\n ),\n // Integration Icon\n $GO(\n this.goService.Picture,\n {\n name: 'Icon',\n width: !this.BpmnCommonService.isInternetExplorer\n ? this.BPMN_CONSTANTS.diagram.webhooksSvgIcon.width\n : this.BPMN_CONSTANTS.diagram.webhooksSvgIconIE.width,\n height: !this.BpmnCommonService.isInternetExplorer\n ? this.BPMN_CONSTANTS.diagram.webhooksSvgIcon.height\n : this.BPMN_CONSTANTS.diagram.webhooksSvgIconIE.height,\n scale: !this.BpmnCommonService.isInternetExplorer\n ? this.BPMN_CONSTANTS.diagram.webhooksSvgIcon.scale\n : this.BPMN_CONSTANTS.diagram.webhooksSvgIconIE.scale,\n source: ASSETS_PATH + '/webhooks-icon.svg',\n margin: new this.goService.Margin(0, 5, 3, 0),\n alignment: this.goService.Spot.BottomRight\n },\n new this.goService.Binding(\n 'visible',\n 'displayStepIntegrationIcon',\n this.nodeShowIntegrationIconVisibilityConverter.bind(this)\n )\n ),\n // End Integration Icon\n // Public Forms Icon\n $GO(\n this.goService.Shape,\n {\n fill: this.BPMN_CONSTANTS.PublicFormIconColour,\n stroke: this.BPMN_CONSTANTS.PublicFormIconColour,\n strokeWidth: 1,\n width: 22,\n height: 22,\n geometryString:\n 'M1408 928v320q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h704q14 0 23 9t9 23v64q0 14-9 23t-23 9h-704q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113v-320q0-14 9-23t23-9h64q14 0 23 9t9 23zm384-864v512q0 26-19 45t-45 19-45-19l-176-176-652 652q-10 10-23 10t-23-10l-114-114q-10-10-10-23t10-23l652-652-176-176q-19-19-19-45t19-45 45-19h512q26 0 45 19t19 45z',\n margin: new this.goService.Margin(0, 5, 6, 0),\n alignment: this.goService.Spot.BottomRight\n },\n new this.goService.Binding(\n 'visible',\n 'displayPublicFormIcon',\n this.nodeShowPublicFormIconVisibilityConverter.bind(this)\n )\n ),\n // End Public Forms Icon\n //Step Rules Icon, arrow-alt-circle-up-solid.svg LICENSE: https://fontawesome.com/license\n $GO(\n this.goService.Shape,\n {\n stroke: this.BPMN_CONSTANTS.StepRuleIconColour,\n strokeWidth: 2.5,\n width: 22,\n height: 22,\n geometryString:\n 'M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z',\n margin: new this.goService.Margin(0, 5, 5, 0),\n alignment: this.goService.Spot.BottomRight\n },\n new this.goService.Binding(\n 'visible',\n 'displayStepRuleIcon',\n this.nodeShowStepRuleIconVisibilityConverter.bind(this)\n )\n ),\n //END Step Rules Icon\n\n //Approval Task Icon, Material check icon\n $GO(\n this.goService.Shape,\n 'BpmnTaskScript',\n {\n fill: this.BPMN_CONSTANTS.ApprovalIconColour,\n stroke: this.BPMN_CONSTANTS.ApprovalIconColour,\n strokeWidth: 2,\n geometryString: 'M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z',\n margin: new this.goService.Margin(0, 5, 8, 5),\n alignment: this.goService.Spot.BottomRight\n },\n new this.goService.Binding(\n 'visible',\n 'taskType',\n this.nodeActivityTaskVisibilityConverter.bind(this)\n )\n )\n //END Approval Task Icon\n ),\n $GO(\n this.goService.Panel,\n 'Vertical',\n {\n background: 'transparent',\n cursor: 'move'\n },\n $GO(\n this.goService.Panel,\n 'Spot',\n $GO(\n this.goService.Panel,\n 'Auto',\n $GO(\n this.goService.Picture,\n {\n fromLinkable: true,\n toLinkable: true,\n portId: 'customMail',\n name: 'Icon',\n fromLinkableDuplicates: true,\n toLinkableDuplicates: true,\n fromSpot: this.goService.Spot.RightSide,\n toSpot: this.goService.Spot.LeftSide,\n width: this.BPMN_CONSTANTS.diagram.emailIcon.outerWidth,\n height: this.BPMN_CONSTANTS.diagram.emailIcon.outerHeight,\n cursor: 'pointer',\n source: ASSETS_PATH + '/email.svg'\n },\n new this.goService.Binding('portId', 'taskType', (s) => {\n return this.isCustomMailActivity(s) ? '' : 'customMail';\n })\n ),\n $GO(this.goService.Shape, 'Circle', {\n fill: 'transparent',\n stroke: null,\n width: this.BPMN_CONSTANTS.diagram.emailIcon.outerWidth - 10,\n height: this.BPMN_CONSTANTS.diagram.emailIcon.outerHeight - 10\n }),\n this.BpmnCommonService.makePort(\n 'EmailConnectionSpot',\n this.goService.Spot.Right,\n new this.goService.Spot(1, 0.5, 0, 0)\n )\n )\n ),\n this.BpmnPartsFactory.getTextBlock(\n 'text',\n true,\n undefined,\n 'move',\n undefined,\n true,\n this.BPMN_CONSTANTS.ActivityLabelFill\n ),\n new this.goService.Binding(\n 'visible',\n 'taskType',\n this.isCustomMailActivity.bind(this)\n )\n ),\n this.BpmnCommonService.makePort(\n 'ActivityConnectionSpot',\n this.goService.Spot.Right,\n new this.goService.Spot(1, 0.5, 0, 0)\n ),\n { click: this.BpmnCommonService.nodeClickHandler }\n );\n\n return activityNodeTemplate;\n }\n\n private getActivityPaletteNode() {\n const $GO = this.goService.GraphObject.make;\n\n return this.BpmnPartsFactory.paletteIcon(\n $GO(\n this.goService.Picture,\n {},\n\n new this.goService.Binding('source', 'taskType', (taskType) => {\n if (this.isCustomMailActivity(taskType)) {\n return ASSETS_PATH + '/email.svg';\n } else {\n return ASSETS_PATH + '/activity.svg';\n }\n }),\n\n new this.goService.Binding('width', 'taskType', (taskType) => {\n if (this.isCustomMailActivity(taskType)) {\n return !this.BpmnCommonService.isInternetExplorer\n ? this.BPMN_CONSTANTS.palette.icon.innerWidth\n : this.BPMN_CONSTANTS.palette.iconIE.email.innerWidth;\n } else {\n return !this.BpmnCommonService.isInternetExplorer\n ? this.BPMN_CONSTANTS.palette.icon.innerWidth\n : this.BPMN_CONSTANTS.palette.iconIE.activity.innerWidth;\n }\n }),\n\n new this.goService.Binding('height', 'taskType', (taskType) => {\n if (this.isCustomMailActivity(taskType)) {\n return !this.BpmnCommonService.isInternetExplorer\n ? this.BPMN_CONSTANTS.palette.icon.innerHeight\n : this.BPMN_CONSTANTS.palette.iconIE.email.innerHeight;\n } else {\n return !this.BpmnCommonService.isInternetExplorer\n ? this.BPMN_CONSTANTS.palette.icon.innerHeight\n : this.BPMN_CONSTANTS.palette.iconIE.activity.innerHeight;\n }\n }),\n\n new this.goService.Binding('scale', 'taskType', (taskType) => {\n if (this.isCustomMailActivity(taskType)) {\n return !this.BpmnCommonService.isInternetExplorer\n ? 1\n : this.BPMN_CONSTANTS.palette.iconIE.email.scale;\n } else {\n return !this.BpmnCommonService.isInternetExplorer\n ? 1\n : this.BPMN_CONSTANTS.palette.iconIE.activity.scale;\n }\n })\n )\n );\n }\n}\n\nangular\n .module('flowingly.bpmn.modeler')\n .service('BpmnActivityNodeService', BpmnActivityNodeService);\n\nexport type BpmnActivityNodeServiceType = InstanceType<\n typeof BpmnActivityNodeService\n>;\n","/**\n * @ngdoc service\n * @name BpmnCommandService\n * @module flowingly.bpmn.modeler\n *\n * @description Facade service for creating GoJS command handlers specific to BPMN diagram.\n *\n * ## Notes\n *\n * ###API\n * * getDrawCommandHandler - creates and returns instance of a draw handler\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/9c9f57c35d8a2835898844ff97a37bb83bb4ae98/src/Flowingly.Shared.Angular/flowingly.bpmn.modeler/flowingly.bpmn.command.service.js?at=master\n */\n'use strict';\nimport angular from 'angular';\n\ndeclare const _: Lodash;\n\nangular\n .module('flowingly.bpmn.modeler')\n .factory('BpmnCommandService', bpmnCommandService);\n\nbpmnCommandService.$inject = ['goService', 'guidService', 'flowinglyConstants'];\n\nfunction bpmnCommandService(goService, guidService, flowinglyConstants) {\n const service = {\n getDrawCommandHandler: getDrawCommandHandler\n };\n return service;\n\n function getDrawCommandHandler() {\n goService.Diagram.inherit(drawCommandHandler, goService.CommandHandler);\n\n /**\n * This controls whether or not the user can invoke the {@link #alignLeft}, {@link #alignRight},\n * {@link #alignTop}, {@link #alignBottom}, {@link #alignCenterX}, {@link #alignCenterY} commands.\n * @this {drawCommandHandler}\n * @return {boolean}\n * This returns true:\n * if the diagram is not {@link Diagram#isReadOnly},\n * if the model is not {@link Model#isReadOnly}, and\n * if there are at least two selected {@link Part}s.\n */\n drawCommandHandler.prototype.canAlignSelection = function () {\n const diagram = this.diagram;\n if (\n diagram === undefined ||\n diagram === null ||\n diagram.isReadOnly ||\n diagram.isModelReadOnly\n )\n return false;\n if (diagram.selection.count < 2) return false;\n return true;\n };\n\n /**\n * Aligns selected parts along the left-most edge of the left-most part.\n * @this {drawCommandHandler}\n */\n drawCommandHandler.prototype.alignLeft = function () {\n const diagram = this.diagram;\n diagram.startTransaction('aligning left');\n let minPosition = Infinity;\n diagram.selection.each(function (current) {\n if (current instanceof goService.Link) return; // skips over goService.Link\n minPosition = Math.min(current.position.x, minPosition);\n });\n\n diagram.selection.each(function (current) {\n if (current instanceof goService.Link) return; // skips over goService.Link\n current.move(new goService.Point(minPosition, current.position.y));\n });\n\n diagram.commitTransaction('aligning left');\n };\n\n /**\n * Aligns selected parts at the right-most edge of the right-most part.\n * @this {drawCommandHandler}\n */\n drawCommandHandler.prototype.alignRight = function () {\n const diagram = this.diagram;\n diagram.startTransaction('aligning right');\n let maxPosition = -Infinity;\n diagram.selection.each(function (current) {\n if (current instanceof goService.Link) return; // skips over goService.Link\n const rightSideLoc =\n current.actualBounds.x + current.actualBounds.width;\n maxPosition = Math.max(rightSideLoc, maxPosition);\n });\n diagram.selection.each(function (current) {\n if (current instanceof goService.Link) return; // skips over goService.Link\n current.move(\n new goService.Point(\n maxPosition - current.actualBounds.width,\n current.position.y\n )\n );\n });\n diagram.commitTransaction('aligning right');\n };\n\n /**\n * Aligns selected parts at the top-most edge of the top-most part.\n * @this {drawCommandHandler}\n */\n drawCommandHandler.prototype.alignTop = function () {\n const diagram = this.diagram;\n diagram.startTransaction('alignTop');\n let minPosition = Infinity;\n diagram.selection.each(function (current) {\n if (current instanceof goService.Link) return; // skips over goService.Link\n minPosition = Math.min(current.position.y, minPosition);\n });\n diagram.selection.each(function (current) {\n if (current instanceof goService.Link) return; // skips over goService.Link\n current.move(new goService.Point(current.position.x, minPosition));\n });\n diagram.commitTransaction('alignTop');\n };\n\n /**\n * Aligns selected parts at the bottom-most edge of the bottom-most part.\n * @this {drawCommandHandler}\n */\n drawCommandHandler.prototype.alignBottom = function () {\n const diagram = this.diagram;\n diagram.startTransaction('aligning bottom');\n let maxPosition = -Infinity;\n diagram.selection.each(function (current) {\n if (current instanceof goService.Link) return; // skips over goService.Link\n const bottomSideLoc =\n current.actualBounds.y + current.actualBounds.height;\n maxPosition = Math.max(bottomSideLoc, maxPosition);\n });\n diagram.selection.each(function (current) {\n if (current instanceof goService.Link) return; // skips over goService.Link\n current.move(\n new goService.Point(\n current.actualBounds.x,\n maxPosition - current.actualBounds.height\n )\n );\n });\n diagram.commitTransaction('aligning bottom');\n };\n\n /**\n * Aligns selected parts at the x-value of the center point of the first selected part.\n * @this {drawCommandHandler}\n */\n drawCommandHandler.prototype.alignCenterX = function () {\n const diagram = this.diagram;\n const firstSelection = diagram.selection.first();\n if (!firstSelection) return;\n diagram.startTransaction('aligning Center X');\n const centerX =\n firstSelection.actualBounds.x + firstSelection.actualBounds.width / 2;\n diagram.selection.each(function (current) {\n if (current instanceof goService.Link) return; // skips over goService.Link\n current.move(\n new goService.Point(\n centerX - current.actualBounds.width / 2,\n current.actualBounds.y\n )\n );\n });\n diagram.commitTransaction('aligning Center X');\n };\n\n /**\n * Aligns selected parts at the y-value of the center point of the first selected part.\n * @this {drawCommandHandler}\n */\n drawCommandHandler.prototype.alignCenterY = function () {\n const diagram = this.diagram;\n const firstSelection = diagram.selection.first();\n if (!firstSelection) return;\n diagram.startTransaction('aligning Center Y');\n const centerY =\n firstSelection.actualBounds.y + firstSelection.actualBounds.height / 2;\n diagram.selection.each(function (current) {\n if (current instanceof goService.Link) return; // skips over goService.Link\n current.move(\n new goService.Point(\n current.actualBounds.x,\n centerY - current.actualBounds.height / 2\n )\n );\n });\n diagram.commitTransaction('aligning Center Y');\n };\n\n /**\n * Aligns selected parts top-to-bottom in order of the order selected.\n * Distance between parts can be specified. Default distance is 0.\n * @this {drawCommandHandler}\n * @param {number} distance\n */\n drawCommandHandler.prototype.alignColumn = function (distance) {\n const diagram = this.diagram;\n diagram.startTransaction('align Column');\n if (distance === undefined) distance = 0; // for aligning edge to edge\n distance = parseFloat(distance);\n const selectedParts = [];\n diagram.selection.each(function (current) {\n if (current instanceof goService.Link) return; // skips over goService.Link\n selectedParts.push(current);\n });\n for (let i = 0; i < selectedParts.length - 1; i++) {\n const current = selectedParts[i];\n // adds distance specified between parts\n const curBottomSideLoc =\n current.actualBounds.y + current.actualBounds.height + distance;\n const next = selectedParts[i + 1];\n next.move(\n new goService.Point(current.actualBounds.x, curBottomSideLoc)\n );\n }\n diagram.commitTransaction('align Column');\n };\n\n /**\n * Aligns selected parts left-to-right in order of the order selected.\n * Distance between parts can be specified. Default distance is 0.\n * @this {drawCommandHandler}\n * @param {number} distance\n */\n drawCommandHandler.prototype.alignRow = function (distance) {\n if (distance === undefined) distance = 0; // for aligning edge to edge\n distance = parseFloat(distance);\n const diagram = this.diagram;\n diagram.startTransaction('align Row');\n const selectedParts = [];\n diagram.selection.each(function (current) {\n if (current instanceof goService.Link) return; // skips over goService.Link\n selectedParts.push(current);\n });\n for (let i = 0; i < selectedParts.length - 1; i++) {\n const current = selectedParts[i];\n // adds distance specified between parts\n const curRightSideLoc =\n current.actualBounds.x + current.actualBounds.width + distance;\n const next = selectedParts[i + 1];\n next.move(new goService.Point(curRightSideLoc, current.actualBounds.y));\n }\n diagram.commitTransaction('align Row');\n };\n\n /**\n * This controls whether or not the user can invoke the {@link #rotate} command.\n * @this {drawCommandHandler}\n * @param {number=} angle the positive (clockwise) or negative (counter-clockwise) change in the rotation angle of each Part, in degrees.\n * @return {boolean}\n * This returns true:\n * if the diagram is not {@link Diagram#isReadOnly},\n * if the model is not {@link Model#isReadOnly}, and\n * if there is at least one selected {@link Part}.\n */\n drawCommandHandler.prototype.canRotate = function () {\n const diagram = this.diagram;\n if (\n diagram === undefined ||\n diagram === null ||\n diagram.isReadOnly ||\n diagram.isModelReadOnly\n )\n return false;\n if (diagram.selection.count < 1) return false;\n return true;\n };\n\n /**\n * Change the angle of the parts connected with the given part. This is in the command handler\n * so it can be easily accessed for the purpose of creating commands that change the rotation of a part.\n * @this {drawCommandHandler}\n * @param {number=} angle the positive (clockwise) or negative (counter-clockwise) change in the rotation angle of each Part, in degrees.\n */\n drawCommandHandler.prototype.rotate = function (angle) {\n if (angle === undefined || angle === null) angle = 90;\n const diagram = this.diagram;\n diagram.startTransaction('rotate ' + angle.toString());\n //var diagram = this.diagram;\n diagram.selection.each(function (current) {\n if (\n current instanceof goService.Link ||\n current instanceof goService.Group\n )\n return; // skips over Links and Groups\n current.angle += angle;\n });\n diagram.commitTransaction('rotate ' + angle.toString());\n };\n\n /**\n * This implements custom behaviors for arrow key keyboard events.\n * Set {@link #arrowKeyBehavior} to \"select\", \"move\" (the default), \"scroll\" (the standard behavior), or \"none\"\n * to affect the behavior when the user types an arrow key.\n * @this {drawCommandHandler}*/\n drawCommandHandler.prototype.doKeyDown = function () {\n const diagram = this.diagram;\n if (diagram === undefined || diagram === null) return;\n const e = diagram.lastInput;\n\n // determines the function of the arrow keys\n if (\n e.key === 'Up' ||\n e.key === 'Down' ||\n e.key === 'Left' ||\n e.key === 'Right'\n ) {\n const behavior = this.arrowKeyBehavior;\n if (behavior === 'none') {\n // no-op\n return;\n } else if (behavior === 'select') {\n this._arrowKeySelect();\n return;\n } else if (behavior === 'move') {\n this._arrowKeyMove();\n return;\n }\n // otherwise drop through to get the default scrolling behavior\n }\n\n // otherwise still does all standard commands\n goService.CommandHandler.prototype.doKeyDown.call(this);\n };\n\n /**\n * Collects in an Array all of the non-Link Parts currently in the Diagram.\n * @this {drawCommandHandler}\n * @return {Array}\n */\n drawCommandHandler.prototype._getAllParts = function () {\n const allParts = [];\n this.diagram.nodes.each(function (node) {\n allParts.push(node);\n });\n this.diagram.parts.each(function (part) {\n allParts.push(part);\n });\n // note that this ignores Links\n return allParts;\n };\n\n /**\n * To be called when arrow keys should move the Diagram.selection.\n * @this {drawCommandHandler}\n */\n drawCommandHandler.prototype._arrowKeyMove = function () {\n const diagram = this.diagram;\n const e = diagram.lastInput;\n // moves all selected parts in the specified direction\n let vdistance = 0;\n let hdistance = 0;\n // if control is being held down, move pixel by pixel. Else, moves by grid cell size\n if (e.control || e.meta) {\n vdistance = 1;\n hdistance = 1;\n } else if (diagram.grid !== null) {\n const cellsize = diagram.grid.gridCellSize;\n hdistance = cellsize.width;\n vdistance = cellsize.height;\n }\n diagram.startTransaction('arrowKeyMove');\n diagram.selection.each(function (part) {\n if (e.key === 'Up') {\n part.move(\n new goService.Point(\n part.actualBounds.x,\n part.actualBounds.y - vdistance\n )\n );\n } else if (e.key === 'Down') {\n part.move(\n new goService.Point(\n part.actualBounds.x,\n part.actualBounds.y + vdistance\n )\n );\n } else if (e.key === 'Left') {\n part.move(\n new goService.Point(\n part.actualBounds.x - hdistance,\n part.actualBounds.y\n )\n );\n } else if (e.key === 'Right') {\n part.move(\n new goService.Point(\n part.actualBounds.x + hdistance,\n part.actualBounds.y\n )\n );\n }\n });\n diagram.commitTransaction('arrowKeyMove');\n };\n\n /**\n * To be called when arrow keys should change selection.\n * @this {drawCommandHandler}\n */\n drawCommandHandler.prototype._arrowKeySelect = function () {\n const diagram = this.diagram;\n const e = diagram.lastInput;\n // with a part selected, arrow keys change the selection\n // arrow keys + shift selects the additional part in the specified direction\n // arrow keys + control toggles the selection of the additional part\n let nextPart = null;\n if (e.key === 'Up') {\n nextPart = this._findNearestPartTowards(270);\n } else if (e.key === 'Down') {\n nextPart = this._findNearestPartTowards(90);\n } else if (e.key === 'Left') {\n nextPart = this._findNearestPartTowards(180);\n } else if (e.key === 'Right') {\n nextPart = this._findNearestPartTowards(0);\n }\n if (nextPart !== undefined && nextPart !== null) {\n if (e.shift) {\n nextPart.isSelected = true;\n } else if (e.control || e.meta) {\n nextPart.isSelected = !nextPart.isSelected;\n } else {\n diagram.select(nextPart);\n }\n }\n };\n\n /**\n * Finds the nearest Part in the specified direction, based on their center points.\n * if it doesn't find anything, it just returns the current Part.\n * @this {drawCommandHandler}\n * @param {number} dir the direction, in degrees\n * @return {Part} the closest Part found in the given direction\n */\n drawCommandHandler.prototype._findNearestPartTowards = function (dir) {\n const originalPart = this.diagram.selection.first();\n if (originalPart === undefined || originalPart === null) return null;\n const originalPoint = originalPart.actualBounds.center;\n const allParts = this._getAllParts();\n let closestDistance = Infinity;\n let closest = originalPart; // if no parts meet the criteria, the same part remains selected\n\n for (let i = 0; i < allParts.length; i++) {\n const nextPart = allParts[i];\n if (nextPart === originalPart) continue; // skips over currently selected part\n const nextPoint = nextPart.actualBounds.center;\n const angle = originalPoint.directionPoint(nextPoint);\n const anglediff = this._angleCloseness(angle, dir);\n if (anglediff <= 45) {\n // if this part's center is within the desired direction's sector,\n let distance = originalPoint.distanceSquaredPoint(nextPoint);\n distance *= 1 + Math.sin((anglediff * Math.PI) / 180); // the more different from the intended angle, the further it is\n if (distance < closestDistance) {\n // and if it's closer than any other part,\n closestDistance = distance; // remember it as a better choice\n closest = nextPart;\n }\n }\n }\n return closest;\n };\n\n /**\n * @this {drawCommandHandler}\n * @param {number} a\n * @param {number} dir\n * @return {number}\n */\n drawCommandHandler.prototype._angleCloseness = function (a, dir) {\n return Math.min(\n Math.abs(dir - a),\n Math.min(Math.abs(dir + 360 - a), Math.abs(dir - 360 - a))\n );\n };\n\n /**\n * Reset the last offset for pasting.\n * @override\n * @this {drawCommandHandler}\n * @param {Iterable.} coll a collection of {@link Part}s.\n */\n drawCommandHandler.prototype.copyToClipboard = function (coll) {\n //remove invalid links\n const toRemove = [];\n coll.each(function (p) {\n if (p.category && p.category === 'exclusiveGateway') {\n toRemove.push(p);\n } else if (p instanceof go.Link) {\n if (\n p.fromNode.category === 'exclusiveGateway' ||\n p.toNode.category === 'exclusiveGateway'\n ) {\n toRemove.push(p);\n }\n }\n });\n for (let i = 0; i < toRemove.length; i++) {\n coll.remove(toRemove[i]);\n }\n\n this.diagram.model.nodeIdInClipboard =\n this.diagram.model.selectedNodeData.id; // save the node id copied to clipboard\n this.diagram.model.nodeKeyInClipboard =\n this.diagram.model.selectedNodeData.key;\n goService.CommandHandler.prototype.copyToClipboard.call(this, coll);\n this._lastPasteOffset.set(this.pasteOffset);\n };\n\n /**\n * Paste from the clipboard with an offset incremented on each paste, and reset when copied.\n * @override\n * @this {drawCommandHandler}\n * @return {Set.} a collection of newly pasted {@link Part}s\n */\n drawCommandHandler.prototype.pasteFromClipboard = function () {\n this.diagram.model.isPasteFromClipboard = true; // save the state to tell now is paste from clipboard, gojs will fire \"ChangedSelection\" event right after this.\n const pastedCollection =\n goService.CommandHandler.prototype.pasteFromClipboard.call(this);\n this.diagram.moveParts(pastedCollection, this._lastPasteOffset);\n this._lastPasteOffset.add(this.pasteOffset);\n //if what we are pasting has an id, give it a new one.\n _.forEach(pastedCollection.ad, (item) => {\n if (!item.key || !item.key.sh) {\n return;\n }\n if (item.key.sh.id) {\n item.key.sh.copiedFromNodeId = item.key.sh.id;\n } else {\n console.log('missed copied node id');\n }\n item.key.sh.id = guidService.new();\n if (\n item.key.sh.text &&\n item.key.sh.category !==\n flowinglyConstants.nodeCategory.CONVERGE_GATEWAY &&\n item.key.sh.category !== flowinglyConstants.nodeCategory.EVENT\n ) {\n item.key.sh.text = `Copy of ${item.key.sh.text}`;\n }\n });\n return pastedCollection;\n };\n\n drawCommandHandler.prototype.deleteSelection = function () {\n const diagram = this.diagram;\n diagram.selection.each(function (part) {\n if (part.sh.category === 'Lane') {\n if (part.memberParts.count > 0) {\n diagram.commandHandler.addTopLevelParts(part.memberParts, true);\n }\n }\n });\n goService.CommandHandler.prototype.deleteSelection.call(this);\n };\n\n /**\n * Gets or sets the arrow key behavior. Possible values are \"move\", \"select\", and \"scroll\".\n * The default value is \"move\".\n * @name drawCommandHandler#arrowKeyBehavior\n * @function.\n * @return {string}\n */\n Object.defineProperty(drawCommandHandler.prototype, 'arrowKeyBehavior', {\n get: function () {\n return this._arrowKeyBehavior;\n },\n set: function (val) {\n if (\n val !== 'move' &&\n val !== 'select' &&\n val !== 'scroll' &&\n val !== 'none'\n ) {\n throw new Error(\n 'drawCommandHandler.arrowKeyBehavior must be either \"move\", \"select\", \"scroll\", or \"none\", not: ' +\n val\n );\n }\n this._arrowKeyBehavior = val;\n }\n });\n\n /**\n * Gets or sets the offset at which each repeated pasteSelection() puts the new copied parts from the clipboard.\n * @name drawCommandHandler#pasteOffset\n * @function.\n * @return {Point}\n */\n Object.defineProperty(drawCommandHandler.prototype, 'pasteOffset', {\n get: function () {\n return this._pasteOffset;\n },\n set: function (val) {\n if (!(val instanceof goService.Point))\n throw new Error(\n 'drawCommandHandler.pasteOffset must be a Point, not: ' + val\n );\n this._pasteOffset.set(val);\n }\n });\n\n /* This CommandHandler class allows the user to position selected Parts in a diagram\n * relative to the first part selected, in addition to overriding the doKeyDown method\n * of the CommandHandler for handling the arrow keys in additional manners.\n */\n\n return new drawCommandHandler();\n }\n\n function drawCommandHandler() {\n goService.CommandHandler.call(this);\n this._arrowKeyBehavior = 'move';\n this._pasteOffset = new goService.Point(10, 10);\n this._lastPasteOffset = new goService.Point(0, 0);\n }\n}\n\nexport type BpmnCommandServiceType = ReturnType;\n","/**\n * @ngdoc service\n * @name BpmnCommonService\n * @module flowingly.bpmn.modeler\n *\n * @description A service for creating BPMN common (shared) nodes etc.\n *\n * ## Notes\n *\n * ###API\n * * getBpmnLinkingTool - creates and returns instance of a linking tool\n * * getLinkTemplate - return template for creating new links\n * * getGradientBrush - creates and returns a gradient brush\n * * makeMarkerPanel - ??\n */\n\nimport { Services } from '@Shared.Angular/@types/services';\nimport { BpmnModeler } from './@types/services';\nimport { SharedAngular } from '@Angular.Runner/@types/sharedAngular';\nimport { Node as GoJsNode, GraphObject, Link } from 'FlowGoJS';\nimport { NodeCategory } from '@Shared.Angular/flowingly.services/flowingly.constants';\nimport { FlowinglyModel } from '@Shared.Angular/@types/goJS';\n\nangular\n .module('flowingly.bpmn.modeler')\n .factory('BpmnCommonService', bpmnCommonService);\n\nbpmnCommonService.$inject = [\n 'goService',\n 'BPMN_CONSTANTS',\n 'pubsubService',\n 'APP_CONFIG',\n 'validationService'\n];\n\nfunction bpmnCommonService(\n goService: GoJS,\n BPMN_CONSTANTS: BpmnModeler.BpmnConstants,\n pubsubService: Services.PubSubService,\n APP_CONFIG: SharedAngular.APP_CONFIG,\n validationService: Services.ValidationService\n) {\n const service = {\n getBpmnLinkingTool: getBpmnLinkingTool,\n getLinkTemplate: getLinkTemplate,\n getGradientBrush: getGradientBrush,\n makeMarkerPanel: makeMarkerPanel,\n nodeClickHandler: nodeClickHandler,\n isInternetExplorer: isInternetExplorer,\n getTextEditingTool: getTextEditingTool,\n makePort: makePort,\n shouldShowConnectorPoints: shouldShowConnectorPoints,\n showPort: showPort,\n hidePort: hidePort\n };\n return service;\n\n function nodeClickHandler(e) {\n pubsubService.publish(\n 'DIAGRAM_NODE_CLICKED',\n e.diagram.model.selectedNodeData\n );\n }\n\n function getBpmnLinkingTool() {\n goService.Diagram.inherit(bpmnLinkingTool, goService.LinkingTool);\n\n /*START bpmnLinkingTool*/\n /** @override */\n bpmnLinkingTool.prototype.insertLink = function (\n fromNode: GoJsNode,\n fromPort: GraphObject,\n toNode: GoJsNode,\n toPort: GraphObject\n ) {\n let lsave = null;\n // maybe temporarily change the link data that is copied to create the new link\n if (\n (bpmnLinkingTool as any).validateMessageLinkConnection(\n fromNode,\n fromPort,\n toNode,\n toPort\n )\n ) {\n lsave = this.archetypeLinkData;\n this.archetypeLinkData = { category: 'msg' };\n }\n\n // create the link in the standard manner by calling the base method\n const newlink = goService.LinkingTool.prototype.insertLink.call(\n this,\n fromNode,\n fromPort,\n toNode,\n toPort\n ) as Link;\n newlink.routing = setRoutingMode(BPMN_CONSTANTS.RoutingMode);\n newlink.curve = goService.Link.JumpGap;\n newlink.corner = BPMN_CONSTANTS.LinkCornerCurve;\n const model = fromNode.diagram.model as FlowinglyModel;\n\n if (\n validationService.isValidBackLink(\n fromNode.data,\n toNode.data,\n model.nodeDataArray,\n model.linkDataArray\n )\n ) {\n newlink.data.isBacklink = true;\n fromNode.data.backlinkTo = toNode.data.key;\n }\n\n this.archetypeLinkData = {\n Trigger: { Type: 'Command' }\n };\n\n ///\n /// All nodes need to set to a trigger type of Command apart from the start node which needs to be Auto to\n /// transition to the next step when a flow is started\n ///\n const eventStart = 1;\n\n //PLEASE NOTE THAT IF LOGIC FOR SETTING TRIGGER TYPES CHANGES TO UPDATE:\n //\n // flowinglyModelUtilityService.getTrigger();\n //\n const nodeObjFrom = fromNode.data;\n if (\n nodeObjFrom.category === NodeCategory.EVENT &&\n nodeObjFrom.eventDimension === eventStart\n ) {\n this.archetypeLinkData.Trigger.Type = 'Auto';\n }\n if (nodeObjFrom.category === 'gateway') {\n this.archetypeLinkData.Trigger.Type = 'Auto';\n }\n\n // maybe make the label visible\n if (\n fromNode.category === NodeCategory.EXCLUSIVE_GATEWAY &&\n nodeObjFrom.allowNamingLinks\n ) {\n const label = newlink.findObject('Label');\n if (label !== null) {\n label.text = 'Label';\n label.visible = true;\n }\n }\n\n // maybe restore the original archetype link data\n if (lsave !== null) this.archetypeLinkData = lsave;\n return newlink;\n };\n\n // static utility validation routines for linking & relinking as well as insert link logic\n\n // in BPMN, can't link sequence flows across subprocess or pool boundaries\n (bpmnLinkingTool as any).validateSequenceLinkConnection = function (\n fromnode,\n fromport,\n tonode,\n toport\n ) {\n if (fromnode.category === null || tonode.category === null) return true;\n\n // if either node is in a subprocess, both nodes must be in same subprocess (not even Message Flows)\n if (\n (fromnode.containingGroup !== null &&\n fromnode.containingGroup.category === 'subprocess') ||\n (tonode.containingGroup !== null &&\n tonode.containingGroup.category === 'subprocess')\n ) {\n if (fromnode.containingGroup !== tonode.containingGroup) return false;\n }\n\n if (fromnode.containingGroup === tonode.containingGroup) return true; // a valid Sequence Flow\n // also check for children in common pool\n const common = fromnode.findCommonContainingGroup(tonode);\n return common != null;\n };\n\n // in BPMN, Message Links must cross pool boundaries\n (bpmnLinkingTool as any).validateMessageLinkConnection = function (\n fromnode,\n fromport,\n tonode,\n toport\n ) {\n if (fromnode.category === null || tonode.category === null) return true;\n\n if (\n fromnode.category === 'privateProcess' ||\n tonode.category === 'privateProcess'\n )\n return true;\n\n // if either node is in a subprocess, both nodes must be in same subprocess (not even Message Flows)\n if (\n (fromnode.containingGroup !== null &&\n fromnode.containingGroup.category === 'subprocess') ||\n (tonode.containingGroup !== null &&\n tonode.containingGroup.category === 'subprocess')\n ) {\n if (fromnode.containingGroup !== tonode.containingGroup) return false;\n }\n\n if (fromnode.containingGroup === tonode.containingGroup) return false; // an invalid Message Flow\n // also check for children in common pool\n const common = fromnode.findCommonContainingGroup(tonode);\n return common === null;\n };\n /*END bpmnLinkingTool*/\n\n return new bpmnLinkingTool();\n }\n\n function getLinkTemplate() {\n const $GO = goService.GraphObject.make;\n\n const sequenceLinkTemplate = $GO(\n goService.Link,\n {\n routing: setRoutingMode(BPMN_CONSTANTS.RoutingMode),\n curve: goService.Link.JumpGap,\n corner: BPMN_CONSTANTS.LinkCornerCurve,\n reshapable: true,\n relinkableFrom: true,\n relinkableTo: true,\n toEndSegmentLength: 20,\n click: nodeClickHandler\n },\n $GO(\n goService.Shape,\n { strokeWidth: BPMN_CONSTANTS.LinkWidth },\n new go.Binding('stroke', '', function (link) {\n return getLinkColor(link, false);\n }).ofObject()\n ),\n $GO(\n goService.Shape,\n { toArrow: 'Triangle', scale: 1.25, stroke: null },\n new goService.Binding('fill', '', function (link) {\n return getLinkColor(link, true);\n }).ofObject()\n ),\n $GO(\n goService.Shape,\n {\n fromArrow: '',\n scale: 1.25,\n stroke: BPMN_CONSTANTS.LinkColour,\n fill: BPMN_CONSTANTS.LinkColour\n },\n new goService.Binding('fromArrow', 'isDefault', function (s) {\n if (s === null) return '';\n return s ? 'BackSlash' : 'StretchedDiamond';\n }),\n new goService.Binding('segmentOffset', 'isDefault', function (s) {\n return s ? new goService.Point(5, 0) : new goService.Point(0, 0);\n })\n ),\n\n $GO(\n goService.TextBlock,\n {\n // this is a Link label\n name: 'Label',\n //\"font-style font-variant font-weight font-size font-family\"\n font: 'normal normal 400 13px Open Sans, Serif',\n editable: false,\n isMultiline: false,\n text: 'LABEL',\n textAlign: 'center',\n segmentOffset: new goService.Point(0, 10),\n width: 100,\n margin: 20,\n visible: false,\n wrap: 'WrapFit',\n background: '#dcdfe5'\n },\n new goService.Binding('text', 'text').makeTwoWay(),\n new goService.Binding('visible', 'visible').makeTwoWay()\n ),\n\n new goService.Binding('fromSpot', 'fromSpot', goService.Spot.parse),\n new goService.Binding('points').makeTwoWay() // TwoWay Binding of Link.points\n );\n\n return sequenceLinkTemplate;\n }\n\n function getLinkColor(link, deleteBacklinkTo) {\n let color = BPMN_CONSTANTS.LinkColour;\n if (\n link &&\n link.fromNode &&\n link.fromNode.data &&\n link.fromNode.data.backlinkTo &&\n link.toNode &&\n link.toNode.data &&\n link.toNode.data.key === link.fromNode.data.backlinkTo\n ) {\n color = BPMN_CONSTANTS.BackLinkColour;\n if (deleteBacklinkTo) {\n delete link.fromNode.data.backlinkTo;\n }\n link.curve = goService.Link.JumpOver;\n link.data.fromSpot = 'Top';\n link.updateTargetBindings('fromSpot');\n }\n\n return color;\n }\n\n function bpmnLinkingTool() {\n goService.LinkingTool.call(this);\n // don't allow user to create link starting on the To node\n this.direction = goService.LinkingTool.ForwardsOnly;\n //this is how the link will look while dragged on screen\n this.temporaryLink.routing = setRoutingMode(BPMN_CONSTANTS.RoutingMode);\n this.linkValidation = function (fromnode, fromport, tonode, toport) {\n return (\n (bpmnLinkingTool as any).validateSequenceLinkConnection(\n fromnode,\n fromport,\n tonode,\n toport\n ) ||\n (bpmnLinkingTool as any).validateMessageLinkConnection(\n fromnode,\n fromport,\n tonode,\n toport\n )\n );\n };\n }\n\n function setRoutingMode(mode) {\n //Setting this property to AvoidsNodes requires the Diagram to do considerable computation when calculating Link routes.\n //Consider not using the AvoidsNodes with Diagrams that contain large numbers of Nodes and Links if you are targeting slow devices.\n switch (mode) {\n case 2:\n return goService.Link.Orthogonal;\n\n case 3:\n return goService.Link.AvoidsNodes;\n\n default:\n return goService.Link.Normal;\n }\n }\n\n function getGradientBrush(gradientType, gradientMeta) {\n const $GO = goService.GraphObject.make;\n return $GO(goService.Brush, gradientType, gradientMeta);\n }\n\n function makeMarkerPanel(sub, scale) {\n const $GO = goService.GraphObject.make;\n\n return $GO(\n goService.Panel,\n 'Horizontal',\n {\n alignment: goService.Spot.MiddleBottom,\n alignmentFocus: goService.Spot.MiddleBottom\n },\n $GO(\n goService.Shape,\n 'BpmnActivityLoop',\n {\n width: 12 / scale,\n height: 12 / scale,\n margin: 2,\n visible: false,\n strokeWidth: BPMN_CONSTANTS.ActivityMarkerStrokeWidth\n },\n new goService.Binding('visible', 'isLoop')\n ),\n $GO(\n goService.Shape,\n 'BpmnActivityParallel',\n {\n width: 12 / scale,\n height: 12 / scale,\n margin: 2,\n visible: false,\n strokeWidth: BPMN_CONSTANTS.ActivityMarkerStrokeWidth\n },\n new goService.Binding('visible', 'isParallel')\n ),\n $GO(\n goService.Shape,\n 'BpmnActivitySequential',\n {\n width: 12 / scale,\n height: 12 / scale,\n margin: 2,\n visible: false,\n strokeWidth: BPMN_CONSTANTS.ActivityMarkerStrokeWidth\n },\n new goService.Binding('visible', 'isSequential')\n ),\n $GO(\n goService.Shape,\n 'BpmnActivityAdHoc',\n {\n width: 12 / scale,\n height: 12 / scale,\n margin: 2,\n visible: false,\n strokeWidth: BPMN_CONSTANTS.ActivityMarkerStrokeWidth\n },\n new goService.Binding('visible', 'isAdHoc')\n ),\n $GO(\n goService.Shape,\n 'BpmnActivityCompensation',\n {\n width: 12 / scale,\n height: 12 / scale,\n margin: 2,\n visible: false,\n strokeWidth: BPMN_CONSTANTS.ActivityMarkerStrokeWidth,\n fill: null\n },\n new goService.Binding('visible', 'isCompensation')\n ),\n makeSubButton(sub)\n ); // end activity markers horizontal panel\n }\n\n function makeSubButton(sub) {\n const $GO = goService.GraphObject.make;\n if (sub)\n return [\n $GO('SubGraphExpanderButton'),\n { margin: 2, visible: false },\n new goService.Binding('visible', 'isSubProcess')\n ];\n return [];\n }\n\n function isInternetExplorer() {\n if (/Trident/.test(navigator.userAgent)) return true;\n\n return false;\n }\n\n function getTextEditingTool() {\n const textEditTool = new goService.TextEditingTool();\n const defaultTextEditor = textEditTool.defaultTextEditor;\n defaultTextEditor.style.backgroundColor =\n BPMN_CONSTANTS.Theme.FlowinglyWhite;\n\n return defaultTextEditor;\n }\n\n function makePort(\n name: string,\n spot: go.Spot,\n alignment: go.Spot\n ): go.GraphObject {\n const $GO = goService.GraphObject.make;\n\n return $GO(goService.Shape, 'Circle', {\n name: name,\n fill: '#42a5f5',\n opacity: 0.5,\n stroke: null,\n desiredSize: new goService.Size(20, 20),\n alignment: alignment,\n alignmentFocus: spot,\n portId: name,\n fromLinkable: true,\n toLinkable: true,\n cursor: 'pointer',\n visible: false\n });\n }\n\n function shouldShowConnectorPoints() {\n return (\n APP_CONFIG.enableConnectorPoints &&\n window.location.pathname === '/modeler/'\n );\n }\n\n function showPort(node, portName) {\n const port = node.findObject(portName);\n if (port) {\n port.visible = true;\n }\n }\n\n function hidePort(node, portName) {\n const port = node.findObject(portName);\n if (port) {\n port.visible = false;\n }\n }\n}\n\nexport type BpmnCommonServiceType = ReturnType;\n","'use strict';\nimport angular from 'angular';\nimport { BpmnModeler } from './@types/services';\nimport { ModelerValidation } from '@Shared.Angular/flowingly.modeler.validation/@types/services';\n\n/**\n * @ngdoc service\n * @name BpmnComponentNodeService\n * @module flowingly.bpmn.modeler\n *\n * @description A service for creating BPMN Component nodes.\n *\n * ## Notes\n * There are two types of nodes (node/palette node). The first is what gets drawn on the canvas;\n * the second what gets drawni the palette and dragged on to the canvas.\n *\n * ### Model Usage\n * { key: 5, category: \"component\", text: \"Component\", item: \"generic task\", taskType: 11}\n *\n * ###API\n * * getNode - Get a component node defined by the (optional) options\n * * getPaletteNode - Get a component palette node defined by the (optional) options\n */\n\nclass BpmnComponentNodeService {\n private defaults: any;\n private $GO: any;\n\n static $inject = [\n 'goService',\n 'BPMN_CONSTANTS',\n 'BpmnPartsFactory',\n 'BpmnCommonService',\n 'modelerValidationErrorsService'\n ];\n\n constructor(\n private goService: GoJS,\n private BPMN_CONSTANTS: BpmnModeler.BpmnConstants,\n private BpmnPartsFactory: BpmnModeler.BpmnParts,\n private BpmnCommonService: BpmnModeler.BpmnCommonService,\n private modelerValidationErrorsService: ModelerValidation.ModelerValidationErrorsService\n ) {\n this.$GO = this.goService.GraphObject.make;\n\n this.defaults = {\n ComponentWidth: 150,\n ComponentNodeStroke: this.BPMN_CONSTANTS.ActivityNodeBorder,\n ComponentNodeStrokeWidth: this.BPMN_CONSTANTS.ActivityNodeStrokeWidth,\n ComponentHeaderColor: this.BPMN_CONSTANTS.ActivityHeaderFillColor,\n\n ComponentHeaderHeight: 35,\n ComponentHeaderMargin: 35 / 4,\n ComponentHeaderFoldAmount: 35,\n\n MinComponentBodyHeight: 72,\n ComponentBodyHeight: 'auto'\n };\n\n this.goService.Shape.defineFigureGenerator(\n 'ComponentHeader',\n (shape, w, h) => {\n return new this.goService.Geometry().add(\n new this.goService.PathFigure(0, h, true)\n .add(\n new this.goService.PathSegment(\n this.goService.PathSegment.Line,\n this.defaults.ComponentHeaderFoldAmount,\n 0\n )\n )\n .add(\n new this.goService.PathSegment(\n this.goService.PathSegment.Line,\n w,\n 0\n )\n )\n .add(\n new this.goService.PathSegment(\n this.goService.PathSegment.Line,\n w,\n h\n )\n )\n );\n }\n );\n\n this.goService.Shape.defineFigureGenerator(\n 'ComponentFold',\n (shape, w, h) => {\n return new this.goService.Geometry().add(\n new this.goService.PathFigure(0, h, true)\n .add(\n new this.goService.PathSegment(\n this.goService.PathSegment.Line,\n this.defaults.ComponentHeaderFoldAmount,\n 0\n )\n )\n .add(\n new this.goService.PathSegment(\n this.goService.PathSegment.Line,\n this.defaults.ComponentHeaderFoldAmount,\n h\n )\n )\n .add(\n new this.goService.PathSegment(\n this.goService.PathSegment.Line,\n 0,\n h\n )\n )\n );\n }\n );\n\n this.goService.Shape.defineFigureGenerator(\n 'ComponentBody',\n (shape, w, h) => {\n return new this.goService.Geometry().add(\n new this.goService.PathFigure(0, 0, true)\n .add(\n new this.goService.PathSegment(\n this.goService.PathSegment.Line,\n 0,\n h + 1\n )\n ) //FLOW-5309: To compensate with the adjustment done in Ln. 108\n .add(\n new this.goService.PathSegment(\n this.goService.PathSegment.Line,\n w,\n h + 1\n )\n )\n .add(\n new this.goService.PathSegment(\n this.goService.PathSegment.Line,\n w,\n 0\n )\n )\n );\n }\n );\n }\n\n private getNodeHeader() {\n return this.$GO(\n this.goService.Panel,\n 'Auto',\n {},\n this.$GO(\n this.goService.Shape,\n 'ComponentHeader',\n {\n fill: this.BPMN_CONSTANTS.Theme.FlowinglyLightGrey,\n width: this.defaults.ComponentWidth,\n height: this.defaults.ComponentHeaderHeight\n },\n // Business Rule for FLOW-4654, when valdiation the borders of\n // the nodes should turn red if they contain an error.\n new this.goService.Binding(\n 'stroke',\n '',\n this.getBorderColor.bind(this)\n ),\n new this.goService.Binding(\n 'strokeWidth',\n '',\n this.getBorderWidth.bind(this)\n )\n ),\n\n //header title\n this.$GO(\n this.goService.TextBlock,\n {\n alignment: new this.goService.Spot(\n 0.5,\n 0.5,\n this.defaults.ComponentHeaderFoldAmount / 2,\n 0\n ),\n font: '600 10pt \"Open Sans\"',\n textAlign: 'center',\n stroke: '#408EE0',\n width:\n this.defaults.ComponentWidth -\n this.defaults.ComponentHeaderFoldAmount -\n this.defaults.ComponentHeaderMargin,\n height: this.defaults.MinComponentBodyHeight / 3,\n overflow: this.goService.TextBlock.OverflowEllipsis\n },\n new this.goService.Binding('text', 'actorName')\n )\n );\n }\n\n private getNodeBody() {\n return this.$GO(\n this.goService.Panel,\n 'Auto',\n {\n alignment: new this.goService.Spot(0, 0, 0, -1) // to align it wth the header\n },\n this.$GO(\n this.goService.Shape,\n 'ComponentBody',\n {\n fill: '#FFF',\n width: this.defaults.ComponentWidth,\n height: this.defaults.ComponentBodyHeight,\n fromLinkable: true,\n toLinkable: true,\n portId: 'activity',\n fromLinkableDuplicates: true,\n toLinkableDuplicates: true,\n toMaxLinks: 1,\n cursor: 'pointer',\n fromSpot: this.goService.Spot.RightSide,\n toSpot: this.goService.Spot.LeftSide,\n name: 'SQUARE'\n },\n // Business Rule for FLOW-4654, when valdiation the borders of\n // the nodes should turn red if they contain an error.\n new this.goService.Binding(\n 'stroke',\n '',\n this.getBorderColor.bind(this)\n ),\n new this.goService.Binding(\n 'strokeWidth',\n '',\n this.getBorderWidth.bind(this)\n )\n ),\n this.$GO(\n this.goService.Panel,\n 'Vertical',\n {\n width: this.defaults.ComponentWidth\n },\n this.$GO(\n this.goService.TextBlock,\n {\n textAlign: 'center',\n font: '600 11pt \"Open Sans\"',\n stroke: '#35384D',\n editable: true,\n textEditor: this.BpmnCommonService.getTextEditingTool(),\n cursor: 'move',\n wrap: this.goService.TextBlock.WrapFit,\n isMultiline: true,\n stretch: this.goService.GraphObject.Horizontal,\n margin: new this.goService.Margin(12, 12),\n width: '300px'\n },\n new this.goService.Binding('text').makeTwoWay()\n ),\n this.getNodeSequenceBody()\n )\n );\n }\n\n private getNodeSequenceBody() {\n return this.$GO(\n this.goService.Panel,\n 'Auto',\n {\n alignment: new this.goService.Spot(0, 1),\n margin: new this.goService.Margin(0, 0, 4, 4)\n },\n this.$GO(this.goService.Shape, 'Ellipse', {\n fill: this.defaults.ComponentHeaderColor,\n stroke: this.defaults.ComponentNodeStroke\n }),\n this.$GO(\n this.goService.TextBlock,\n {\n font: '600 10pt \"Open Sans\"',\n textAlign: 'center',\n stroke: '#35384D',\n margin: new this.goService.Margin(0, 5)\n },\n new this.goService.Binding('text', 'refSequence')\n ),\n new this.goService.Binding('opacity', '', (node) => {\n // use this instead of visiblity so that the entire\n // height will be calculated correctly\n if (node.refSequence && node.taskType !== 6) {\n return 1.0;\n } else {\n return 0.0;\n }\n })\n );\n }\n\n // @TODO flowingly.bpmn.activity.service has the\n // exact same function, we should merge this into\n // a service.\n private getBorderColor(goNodeModel) {\n const hasError = this.modelerValidationErrorsService.hasErrors(\n goNodeModel.key\n );\n return hasError\n ? this.BPMN_CONSTANTS.Theme.Error.Border.Color\n : this.defaults.ComponentNodeStroke;\n }\n\n // @TODO flowingly.bpmn.activity.service has the\n // exact same function, we should merge this into\n // a service.\n private getBorderWidth(goNodeModel) {\n const hasError = this.modelerValidationErrorsService.hasErrors(\n goNodeModel.key\n );\n return hasError\n ? this.BPMN_CONSTANTS.Theme.Error.Border.StrokeWidth / 2 // divde by 2 to match activity body\n : 1;\n }\n\n public getNode(options) {\n return this.$GO(\n this.goService.Node,\n 'Auto',\n {\n isShadowed: true,\n shadowColor: this.BPMN_CONSTANTS.diagram.shadow.color,\n shadowBlur: this.BPMN_CONSTANTS.diagram.shadow.blur,\n shadowOffset: new this.goService.Point(\n this.BPMN_CONSTANTS.diagram.shadow.offsetX,\n this.BPMN_CONSTANTS.diagram.shadow.offsetY\n ),\n locationObjectName: 'Container',\n locationSpot: this.goService.Spot.Center,\n resizable: false,\n selectionAdorned: true,\n defaultStretch: this.goService.GraphObject.Vertical,\n cursor: 'move',\n fromSpot: this.goService.Spot.RightSide,\n toSpot: this.goService.Spot.LeftSide,\n fromMaxLinks: 1,\n mouseEnter: (e, node) => {\n this.BpmnCommonService.showPort(node, 'ConnectorPort');\n },\n mouseLeave: (e, node) => {\n this.BpmnCommonService.hidePort(node, 'ConnectorPort');\n }\n },\n\n new this.goService.Binding('locationObjectName', 'SQUARE'),\n new this.goService.Binding(\n 'location',\n 'loc',\n this.goService.Point.parse\n ).makeTwoWay(this.goService.Point.stringify),\n\n this.$GO(\n this.goService.Panel,\n 'Vertical',\n { name: 'Container' },\n this.getNodeHeader(),\n this.getNodeBody()\n ),\n\n this.$GO(\n this.goService.Shape,\n 'ComponentFold',\n {\n alignment: new this.goService.Spot(0, 0),\n fill: '#fdfcfc',\n width: this.defaults.ComponentWidth,\n height: this.defaults.ComponentHeaderHeight\n },\n // Business Rule for FLOW-4654, when valdiation the borders of\n // the nodes should turn red if they contain an error.\n new this.goService.Binding(\n 'stroke',\n '',\n this.getBorderColor.bind(this)\n ),\n new this.goService.Binding(\n 'strokeWidth',\n '',\n this.getBorderWidth.bind(this)\n )\n ),\n ...(this.BpmnCommonService.shouldShowConnectorPoints()\n ? [\n this.BpmnCommonService.makePort(\n 'ConnectorPort',\n this.goService.Spot.Right,\n new this.goService.Spot(1, 0.5, 0, 0)\n )\n ]\n : []),\n this.$GO(this.goService.Shape, {\n fill: 'transparent',\n stroke: null,\n cursor: 'move',\n width: this.defaults.ComponentWidth - 15,\n height: this.defaults.ComponentBodyHeight,\n alignment: this.goService.Spot.Left,\n name: 'Mask'\n }),\n { click: this.BpmnCommonService.nodeClickHandler }\n );\n }\n\n public getPaletteNode(options) {\n return this.$GO(\n this.goService.Part,\n this.goService.Panel.Vertical,\n {\n width: this.BPMN_CONSTANTS.palette.innerWidth,\n selectionAdorned: false\n },\n this.$GO(this.goService.Picture, {\n source: ASSETS_PATH + '/component.svg',\n width: !this.BpmnCommonService.isInternetExplorer\n ? this.BPMN_CONSTANTS.palette.icon.innerWidth\n : this.BPMN_CONSTANTS.palette.iconIE.component.innerWidth,\n height: !this.BpmnCommonService.isInternetExplorer\n ? this.BPMN_CONSTANTS.palette.icon.innerHeight\n : this.BPMN_CONSTANTS.palette.iconIE.component.innerWidth,\n scale: !this.BpmnCommonService.isInternetExplorer\n ? 1\n : this.BPMN_CONSTANTS.palette.iconIE.component.scale\n }),\n this.BpmnPartsFactory.getTextBlock(\n 'text',\n undefined,\n this.BPMN_CONSTANTS.PaletteTextColour,\n 'move',\n 'normal 9px \"Open Sans\"'\n )\n );\n }\n}\n\nangular\n .module('flowingly.bpmn.modeler')\n .service('BpmnComponentNodeService', BpmnComponentNodeService);\n\nexport type BpmnComponentNodeServiceType = InstanceType<\n typeof BpmnComponentNodeService\n>;\n","/**\n * @ngdoc type\n * @module flowingly.bpmn.modeler'\n * @name c\n *\n * @description Constants for use within the modeler.bpmn module.\n */\n'use strict';\nimport angular from 'angular';\n\n///\n/// This module contains BPMN constants\n///\n\n/// Theme colours for flowingly to use in BPMN models. (These could be injected if BpmnService made a provider)\nconst theme = {\n FlowinglyStrokeWidth: 5,\n FlowinglyPaletteStrokeWidth: 3,\n FlowinglyWhite: '#FFF',\n FlowinglyGreen: '#94D895',\n FlowinglyBlue: '#35384C',\n FlowinglyOrange: '#f57c00',\n FlowinglyRed: '#F58779',\n FlowinglyGrey: '#B5B5B5',\n FlowinglyLightGrey: '#EFEFEF',\n FlowinglyMediumGrey: '#999',\n FlowinglyDarkGrey: '#555',\n FlowinglyPaletteGrey: '#727272',\n FlowinglyPaletteText: '#35384D',\n FlowinglyBlack: '#000',\n FlowinglyBlue2: '#408EE0',\n FlowinglyLightGrey2: '#D1D1D1',\n FlowinglyHighlightedNode: '#D0E6FE',\n\n Error: {\n Border: {\n Color: '#F66', // used in border coloring\n StrokeWidth: 2\n }\n }\n};\n\nconst CONSTANTS = {\n Theme: theme,\n //Options\n MakeNodesEditable: false,\n\n RoutingMode: 3, //1 = Normal, 2 = Orthogonal, 3 = AvoidNodes\n LinkCornerCurve: 10,\n\n DiagramScale: 0.8,\n DiagramMinScale: 0.0001,\n DiagramMaxScale: 100,\n\n EventNodeSize: 42,\n EventNodeInnerSize: 36, //(EventNodeSize -6);\n\n //Activity Node\n ActivityNodeWidth: 500,\n ActivityNodeHeight: 500,\n ActivityNodeStrokeWidth: 1.5,\n ActivityNodePaletteStrokeWidth: theme.FlowinglyPaletteStrokeWidth,\n ActivityMarkerStrokeWidth: 1.5,\n ActivityNodeBorder: '#777',\n ActivityNodeFill: theme.FlowinglyWhite,\n TerminateInnerCircle: theme.FlowinglyOrange,\n ActivityHeaderFillColor: theme.FlowinglyLightGrey,\n ActivitySquareFillColor: theme.FlowinglyLightGrey2,\n ActivitySquareHighlightColor: theme.FlowinglyHighlightedNode,\n ACTIVITY: 'activity',\n ActivityLabelFill: theme.FlowinglyWhite,\n\n //Gateway\n GATEWAY: 'gateway',\n GatewayNodeSize: 80,\n GatewayNodeFill: theme.FlowinglyWhite,\n GatewayNodeStroke: theme.FlowinglyDarkGrey,\n GatewayNodeStrokeWidth: theme.FlowinglyStrokeWidth,\n GatewayNodePaletteStrokeWidth: theme.FlowinglyPaletteStrokeWidth,\n GatewayLabelFill: theme.FlowinglyWhite,\n\n //Events\n EventNodeStrokeWidth: theme.FlowinglyStrokeWidth,\n EventNodePaletteStrokeWidth: theme.FlowinglyPaletteStrokeWidth,\n EventNodeFill: theme.FlowinglyWhite,\n EventNodePaletteFill: theme.FlowinglyLightGrey,\n EventStartBorder: theme.FlowinglyGreen,\n EventEndBorder: theme.FlowinglyRed,\n LightGreenBrush: { 0: theme.FlowinglyGreen, 1: theme.FlowinglyGreen },\n LightOrangeBrush: { 0: theme.FlowinglyOrange, 1: theme.FlowinglyOrange },\n EventLabelFill: theme.FlowinglyWhite,\n\n //Palette scale\n GatewayPaletteScale: 3.2,\n ActivityPaletteScale: 2,\n EventPaletteScale: 2,\n NoScale: 1,\n PaletteGap: 40,\n\n EmailIconColour: theme.FlowinglyDarkGrey,\n PublicFormIconColour: theme.FlowinglyDarkGrey,\n ApprovalIconColour: theme.FlowinglyBlue2,\n StepRuleIconColour: theme.FlowinglyBlue2,\n IntegrationIconColour: theme.FlowinglyBlue2,\n\n // LINKS\n LinkColour: '#777',\n BackLinkColour: theme.FlowinglyMediumGrey,\n LinkWidth: 2,\n\n //TEXT\n TextColour: theme.FlowinglyPaletteText,\n PaletteTextColour: theme.FlowinglyPaletteText,\n\n palette: {\n innerWidth: 52,\n outerWidth: 61,\n icon: {\n innerWidth: 39,\n outerWidth: 39,\n innerHeight: 39,\n outerHeight: 39\n },\n iconIE: {\n event: {\n innerWidth: 50,\n innerHeight: 50,\n scale: 0.8\n },\n activity: {\n innerWidth: 50,\n innerHeight: 50,\n scale: 0.8\n },\n email: {\n innerWidth: 100,\n innerHeight: 100,\n scale: 0.4\n },\n gateway: {\n innerWidth: 70,\n innerHeight: 70,\n scale: 0.6\n },\n pool: {\n innerWidth: 50,\n innerHeight: 50,\n scale: 0.8\n },\n component: {\n innerWidth: 50,\n innerHeight: 50,\n scale: 0.8\n }\n },\n textBlock: {\n innerWidth: 100\n }\n },\n diagram: {\n emailIcon: {\n outerWidth: 100,\n outerHeight: 100\n },\n gatewayIcon: {\n outerWidth: 70,\n outerHeight: 70\n },\n icon: {\n innerWidth: 70,\n outerWidth: 50,\n innerHeight: 70,\n outerHeight: 50\n },\n shadow: {\n color: '#A2A2A2',\n blur: 7,\n offsetX: 2,\n offsetY: 3\n },\n webhooksSvgIcon: {\n width: 28,\n height: 28,\n scale: 1\n },\n webhooksSvgIconIE: {\n width: 45,\n height: 45,\n scale: 0.6\n },\n attachDocumentIcon: {\n width: 28,\n height: 28,\n scale: 1\n }\n }\n};\n\nexport default CONSTANTS;\n\n///\n/// These values are shared across one or more services\n/// @TODO convert all of these into more of a namespaced thingy majig\nangular.module('flowingly.bpmn.modeler').constant('BPMN_CONSTANTS', CONSTANTS);\n","'use strict';\nimport angular from 'angular';\nimport { BpmnModeler } from './@types/services';\nimport { Services } from '@Shared.Angular/@types/services';\nimport { Diagram } from 'FlowGoJS';\nimport { NodeCategory } from '@Shared.Angular/flowingly.services/flowingly.constants';\n\n/**\n * @ngdoc directive\n * @name goBpmnDiagram\n * @module flowingly.modeler.directives\n * @description A directive that represents a GoJS diagram.\n * @usage\n * ```\n \n * ```\n */\n\nangular.module('flowingly.bpmn.modeler').directive('goBpmnDiagram', [\n 'BPMN_CONSTANTS',\n '$rootScope',\n '$timeout',\n '$window',\n 'goService',\n 'pubsubService',\n 'BpmnService',\n 'BpmnDiagramService',\n 'guidService',\n\n 'lodashService',\n 'validationService',\n 'flowinglyConstants',\n function (\n BPMN_CONSTANTS: BpmnModeler.BpmnConstants,\n $rootScope: angular.IRootScopeService,\n $timeout: angular.ITimeoutService,\n $window: angular.IWindowService,\n goService: GoJS,\n pubsubService: Services.PubSubService,\n BpmnService: BpmnModeler.BpmnService,\n BpmnDiagramService: BpmnModeler.BpmnDiagramService,\n guidService: Services.GuidService,\n lodash: Lodash,\n validationService: Services.ValidationService,\n flowinglyConstants: Services.FlowinglyConstants\n ) {\n return {\n restrict: 'E',\n template: '
',\n replace: true,\n scope: {\n model: '=goModel',\n isReadonly: ' {\n // FLOW-4514 Fix: for when the image async load does not trigger an update for gojs\n console.log('Start InitialLayoutCompleted updateAllTargetBindings');\n\n diagram.startTransaction('UpdateAllTargetBindings_Update');\n diagram.updateAllTargetBindings();\n diagram.commitTransaction('UpdateAllTargetBindings_Update');\n\n console.log(\n 'Commit InitialLayoutCompleted updateAllTargetBindings'\n );\n }, 100);\n });\n\n // FLOW-2532 Enable snap to grid in modeler\n diagram.toolManager.draggingTool.isGridSnapEnabled = true;\n diagram.toolManager.resizingTool.isGridSnapEnabled = true;\n\n // FLOW-2566 Prevent links being drawn between parallel pathway nodes\n function customizeValidation(fromNode, fromPort, toNode, toPort) {\n const context = {\n fromNode,\n toNode,\n fromPort,\n toPort,\n nodeDataArray: diagram.model.nodeDataArray,\n linkDataArray: diagram.model.linkDataArray\n };\n\n if (\n validationService.isLinkDisallowedForGateway(\n fromNode,\n toNode,\n diagram.model.nodeDataArray,\n diagram.model.linkDataArray\n ) ||\n !validationService.isLinkAllowedForNode(context) ||\n validationService.isLinkDisallowedForStartOrEndNode(\n fromNode,\n toNode\n )\n ) {\n return false;\n }\n\n return true;\n }\n diagram.toolManager.linkingTool.linkValidation = customizeValidation;\n diagram.toolManager.relinkingTool.linkValidation = customizeValidation;\n\n //store the diagram so that we can later retrieve it in the overview directive\n BpmnDiagramService.storeDiagram('main', diagram);\n //store it on the window so that it's accessible everywhere.\n //as per the bpmn js here: https://gojs.net/latest/extensions/BPMN.js\n $window.mainDiagram = diagram;\n\n //------------------------------------------end Diagram-------------------------------------------------------\n\n //------------------------------------------DIAGRAM INIT -----------------------------------------------------\n\n function zoomToFit(diagram) {\n //previoulsy used, dg.initialAutoScale = go.Diagram.Uniform, but this results in small diagrams zoomed in too much\n //and thus the tasks were displayed really large.\n\n if (diagram.width <= 10) {\n //this method fires a few times before the diagram is actually displayed\n return;\n }\n const maxZoom = 0.8; //we dont want large tasks\n const minZoom = 0.4; //or teeny tiny ones\n\n //get diagram bounds\n const diagramWidth = diagram.documentBounds.width;\n const diagramHeight = diagram.documentBounds.height;\n\n //get the canvas bounds\n const width = element.width();\n const height = element.height();\n\n if (diagramWidth > width || diagramHeight > height) {\n //calculate new scale as a ratio\n //use the smallest of width and height ratio\n const wRatio = width / diagramWidth;\n const hRatio = height / diagramHeight;\n diagram.scale = wRatio < hRatio ? wRatio : hRatio;\n\n if (diagram.scale > maxZoom) {\n //dont zoom in anymore than this\n diagram.scale = maxZoom;\n } else {\n //zoom out a little to ensure fits\n diagram.scale = diagram.scale - 0.1;\n }\n\n if (diagram.scale < minZoom) {\n //dont zoom out more than this\n diagram.scale = minZoom;\n }\n } else {\n //default zoom\n diagram.scale = maxZoom;\n }\n\n // Business requirement https://bizflo.atlassian.net/browse/FLOW-4523\n const distanceFromPalette = BPMN_CONSTANTS.palette.outerWidth * 2;\n const iconHalfWidth = BPMN_CONSTANTS.palette.icon.outerWidth / 2;\n diagram.position.x =\n diagram.documentBounds.x - distanceFromPalette - iconHalfWidth;\n }\n\n // Set backlinkTo on backlink fromNode, so that backlink color can be decided when getLinkTemplate\n function setBacklinkToOnNodes(model) {\n const links = model.linkDataArray;\n const nodes = model.nodeDataArray;\n if (!links || !nodes) {\n return;\n }\n\n const backlinks = links.filter((l) => l.isBacklink);\n backlinks.forEach((backlink) => {\n const fromNode = nodes.find((n) => n.key === backlink.from);\n if (fromNode) {\n fromNode.backlinkTo = backlink.to;\n }\n });\n }\n\n // NOTIFY //////////////////////////////////////////////////////////////////////////////////\n //\n // Anything in this section notifies the outside world of changes within diagram\n\n // whenever a GoJS transaction has finished modifying the model,\n // notify any link changes, and update all Angular bindings\n function onDiagramModelChanged(event) {\n if (event.isTransactionFinished) {\n const transaction = event.object;\n if (transaction === null) {\n return;\n }\n\n const isUndo = event.oldValue === 'Undo';\n let notifyChange = false;\n // iterate over all of the actual ChangedEvents of the Transaction\n transaction.changes.each(function (e) {\n switch (e.modelChange) {\n case 'linkDataArray':\n if (\n e.change === goService.ChangedEvent.Insert ||\n (e.change === goService.ChangedEvent.Remove && isUndo)\n ) {\n pubsubService.publish('DIAGRAM_LINK_INSERTED', {\n link: e.newValue\n });\n notifyChange = true;\n } else if (\n e.change === goService.ChangedEvent.Remove ||\n (e.change === goService.ChangedEvent.Insert && isUndo)\n ) {\n pubsubService.publish('DIAGRAM_LINK_DELETED', {\n link: e.oldValue\n });\n notifyChange = true;\n }\n break;\n\n case 'nodeDataArray':\n if (\n e.change === goService.ChangedEvent.Insert ||\n e.change === goService.ChangedEvent.Remove\n ) {\n notifyChange = true;\n }\n break;\n }\n });\n // Raise a change when model first created, so validation fires\n if (notifyChange) {\n // update angular bindings\n safeScopeApply(false, false); //Selected node has not changed\n }\n }\n }\n\n // notice when the value of \"model\" changes: update the Diagram.model\n scope.$watch('model', function (newmodel: any) {\n const oldmodel = diagram.model;\n if (oldmodel !== newmodel) {\n if (oldmodel) {\n oldmodel.removeChangedListener(onDiagramModelChanged);\n }\n $timeout(function () {\n setBacklinkToOnNodes(newmodel);\n diagram.model = newmodel;\n });\n newmodel.addChangedListener(onDiagramModelChanged);\n }\n });\n\n // RESPOND ////////////////////////////////////////////////////////////////////////////////\n //\n // Anything in this section responds to events both inside and outside the diagram\n\n pubsubService.subscribe(\n 'WORKFLOW_NODE_CHANGED',\n updateNode,\n 'bpmn.diagram.directive'\n );\n pubsubService.subscribe(\n 'STEP_TYPE_CHANGED',\n updateStepType,\n 'bpmn.diagram.directive'\n );\n pubsubService.subscribe(\n 'NOTIFY_INITIATOR_CHANGED',\n updateEmailIcon,\n 'bpmn.diagram.directive'\n );\n pubsubService.subscribe(\n 'PUBLICFORM_SETTING_CHANGED',\n updatePublicFormIcon,\n 'bpmn.diagram.directive'\n );\n pubsubService.subscribe(\n 'STEP_REF_SEQUENCE_CHANGED',\n updateStepRefSequence,\n 'bpmn.diagram.directive'\n );\n pubsubService.subscribe(\n 'STEP_ACTOR_CHANGED',\n updateStepActor,\n 'bpmn.diagram.directive'\n );\n pubsubService.subscribe(\n 'GATEWAY_DEFAULT_GATE_CHANGED',\n setLinkDefaultFlow,\n 'bpmn.diagram.directive'\n );\n pubsubService.subscribe(\n 'TASK_PANEL_OPENCLOSE',\n redrawDiagram,\n 'bpmn.diagram.directive'\n );\n pubsubService.subscribe(\n 'ADD_NEW_SWIM_LANE',\n addNewSwimLane,\n 'bpmn.diagram.directive'\n );\n pubsubService.subscribe(\n 'REMOVE_SWIM_LANE',\n removeSwimLane,\n 'bpmn.diagram.directive'\n );\n pubsubService.subscribe(\n 'STEPRULE_SETTING_CHANGED',\n updateStepRuleIcon,\n 'bpmn.diagram.directive'\n );\n pubsubService.subscribe(\n 'STEP_INTEGRATION_SETTING_CHANGED',\n updateStepIntegrationIcon,\n 'bpmn.diagram.directive'\n );\n pubsubService.subscribe(\n 'STEP_ATTACH_DOCUMENT_CHANGED',\n updateAttachDocumentIcon,\n 'bpmn.diagram.directive'\n );\n pubsubService.subscribe(\n 'STEP_TASK_ENABLED_CHANGED',\n updateStepTaskIcon,\n 'bpmn.diagram.directive'\n );\n\n function markDIagramAsDirty() {\n $('#body-content').addClass('changed-input');\n }\n function raiseSelectionChanged() {\n pubsubService.publish('DIAGRAM_NODE_SELECTED', {\n node: diagram.model.selectedNodeData\n });\n }\n\n function raiseDiagramUpdatedEvent() {\n updateNodeLinks();\n pubsubService.publish('DIAGRAM_MODIFIED');\n }\n\n diagram.addDiagramListener('BackgroundSingleClicked', function (e) {\n pubsubService.publish('DIAGRAM_CLICKED');\n });\n\n diagram.addDiagramListener('ExternalObjectsDropped', function (e) {\n onDroppedEvent(e.subject.first().data);\n });\n\n diagram.addDiagramListener('InitialLayoutCompleted', function (e) {\n pubsubService.publish('DIAGRAM_LOADED');\n });\n\n // to allow the confirm box You haven't saved your changes to show when diagram is modified\n diagram.addDiagramListener('Modified', function (e) {\n markDIagramAsDirty();\n });\n\n //if the diagram position has been moved - save it.\n diagram.addDiagramListener('ViewportBoundsChanged', function (e) {\n if (\n e.diagram.position.M !== 'NaN' &&\n e.diagram.position.M != undefined\n ) {\n raiseDiagramUpdatedEvent();\n }\n });\n\n function safeScopeApply(selectionChanged, isGateway) {\n if (\n $rootScope.$GOphase !== '$apply' &&\n $rootScope.$GOphase !== '$digest'\n ) {\n if (selectionChanged) {\n raiseSelectionChanged();\n if (isGateway) {\n raiseDiagramUpdatedEvent();\n }\n } else {\n raiseDiagramUpdatedEvent();\n }\n scope.$apply();\n }\n }\n\n diagram.addDiagramListener('LinkRelinked', function (e) {\n pubsubService.publish('DIAGRAM_LINK_RELINKED', {\n link: e.subject,\n portDisconnectedFrom: e.parameter\n });\n });\n\n // We need to reinitialise the gateway when links are deleted - may as well do it whenever anythiung is deleted to be sure\n diagram.addDiagramListener('SelectionDeleted', function (e) {\n pubsubService.publish('DIAGRAM_PARTS_DELETED');\n });\n diagram.addDiagramListener('ClipboardPasted', (e) => {\n e.subject.each((part) => {\n if (part instanceof goService.Node) {\n e.diagram.model.removeChangedListener(onDiagramModelChanged);\n e.diagram.model.startTransaction('Updating Copied Names');\n part.updateTargetBindings('text');\n e.diagram.model.commitTransaction('Updating Copied Names');\n e.diagram.model.addChangedListener(onDiagramModelChanged);\n }\n });\n });\n // update the model when the selection changes\n diagram.addDiagramListener('ChangedSelection', function (e) {\n const selnode = diagram.selection.first();\n let selNodeData =\n selnode instanceof goService.Node ? selnode.data : null;\n let isGateway = false;\n\n diagram.model.selectedNodeData = selNodeData;\n\n // fix FLOW-2419 Modeler - Copy and Paste node, no card\n // if comes from copy paste routine, need tell Modeler side, then can deal with the node information.\n // As now that is saved in the Nodes array, gojs side know nothing about it\n if (\n diagram.model.nodeIdInClipboard &&\n diagram.model.isPasteFromClipboard\n ) {\n diagram.model.selectedNodeData.copiedFromNodeId =\n diagram.model.nodeIdInClipboard;\n diagram.model.selectedNodeData.copiedFromNodeKey =\n diagram.model.nodeKeyInClipboard;\n delete diagram.model.selectedNodeData.backlinkTo;\n diagram.model.isPasteFromClipboard = false;\n }\n\n if (\n selNodeData !== null &&\n selnode !== null &&\n selnode !== undefined\n ) {\n if (lodash.includes(selnode.category.toLowerCase(), 'gateway')) {\n // Is a gateway so unfotunately we need to raise the diagram updated even to\n // ensure that the gates are handled properly. This is a major problem here ...\n // ToDo: we must break this down and clean up Modeler - we are relying on the\n // need for events to be raised which do \"god knows what\"! Its crazy shit ...\n isGateway = true;\n }\n }\n\n if (selNodeData == null) {\n selNodeData =\n selnode instanceof goService.Link ? selnode.data : null;\n if (selNodeData) {\n diagram.model.selectedNodeData = selNodeData;\n\n const link = diagram.findLinkForData(selNodeData);\n if (\n selNodeData.visible === true &&\n link &&\n link.fromNode.category === 'exclusiveGateway'\n ) {\n selNodeData.category = 'link';\n } else {\n selNodeData.category = '';\n }\n }\n }\n\n safeScopeApply(true, isGateway); //Selected node has changed + its a gateway\n });\n\n diagram.toolManager.mouseDownTools.insertAt(\n 0,\n BpmnDiagramService.getLaneResizingTool()\n );\n\n function onDroppedEvent(droppedNode) {\n droppedNode.id = guidService.new();\n droppedNode.isNew = true;\n switch (droppedNode.category) {\n case NodeCategory.ACTIVITY:\n diagram.startTransaction('update node model');\n droppedNode.Card = BpmnService.getDefaultActivityCardModel();\n diagram.commitTransaction('update node model');\n break;\n\n case NodeCategory.EXCLUSIVE_GATEWAY:\n droppedNode.gateway = { gates: [] };\n break;\n }\n\n pubsubService.publish('DIAGRAM_ELEMENT_DROPPED', droppedNode);\n }\n\n // Invalidate the layout so it will be redrawn. We do this\n // as when we select nodes we hide/show the rhs drawer\n function redrawDiagram(event, data) {\n $timeout(function () {\n diagram.model.removeChangedListener(onDiagramModelChanged);\n\n diagram.layout.invalidateLayout();\n updateNodeLinks();\n diagram.model.addChangedListener(onDiagramModelChanged);\n });\n }\n\n function setLinkDefaultFlow(event, data) {\n //use timeout to prevent glitch whereby the linkData array doubles in length\n //after this code runs in re\n $timeout(function () {\n diagram.model.removeChangedListener(onDiagramModelChanged);\n diagram.startTransaction('setLinkDefaultFlow');\n\n for (let i = 0; i < data.links.length; i++) {\n const linkData = data.links[i];\n\n linkData.isDefault = null;\n if (\n linkData.Conditions &&\n linkData.Conditions[0].Type === 'Otherwise'\n ) {\n linkData.isDefault = true;\n }\n\n const link = diagram.findLinkForData(linkData);\n link.updateTargetBindings('text');\n link.updateTargetBindings('visible');\n link.updateTargetBindings('isDefault');\n }\n\n diagram.commitTransaction('setLinkDefaultFlow');\n updateNodeLinks();\n diagram.model.addChangedListener(onDiagramModelChanged);\n });\n }\n\n function updateStepType(event, data) {\n $timeout(function () {\n const node = diagram.findNodeForData(data.node);\n\n diagram.model.removeChangedListener(onDiagramModelChanged);\n diagram.startTransaction('updateStepType');\n diagram.model.setDataProperty(\n data.node,\n 'taskType',\n node.data.taskType\n );\n\n node.updateTargetBindings('taskType');\n diagram.commitTransaction('updateStepType');\n diagram.model.addChangedListener(onDiagramModelChanged);\n // We need to be careful that we do not add any code in future that changes the step type in the DIAGRAM_MODIFIED event\n // for obvious reasons\n raiseDiagramUpdatedEvent(); //Need to notify that the diagram has changed\n });\n }\n\n function updateNodeLinks() {\n const it = diagram.links.iterator;\n while (it.next()) {\n const ht = it.value.routeBounds.height;\n if (ht !== 0 && ht < 5) {\n const pt = it.value.points.iterator;\n pt.next();\n const initialpoint = pt.value;\n while (pt.next()) {\n pt.value.y = initialpoint.y;\n }\n it.value.movePoints(0, 0);\n }\n }\n }\n\n function updateEmailIcon(event, data) {\n //Use timeout to avoid digest in progress error\n $timeout(function () {\n diagram.model.removeChangedListener(onDiagramModelChanged);\n diagram.startTransaction('updateDisplayNotificationIcon');\n\n const node = diagram.findNodeForData(data.node);\n if (node != undefined) {\n node.data.displayNotificationIcon =\n data.node.displayNotificationIcon;\n node.updateTargetBindings('displayNotificationIcon');\n }\n diagram.commitTransaction('updateDisplayNotificationIcon');\n updateNodeLinks();\n diagram.model.addChangedListener(onDiagramModelChanged);\n });\n }\n\n function updatePublicFormIcon(event, data) {\n //Use timeout to avoid digest in progress error\n $timeout(function () {\n diagram.model.removeChangedListener(onDiagramModelChanged);\n diagram.startTransaction('updateDisplayPublicFormIcon');\n\n const node = diagram.findNodeForData(data.node);\n if (node != undefined) {\n node.data.displayPublicFormIcon = data.node.displayPublicFormIcon;\n node.updateTargetBindings('displayPublicFormIcon');\n }\n diagram.commitTransaction('updateDisplayPublicFormIcon');\n updateNodeLinks();\n diagram.model.addChangedListener(onDiagramModelChanged);\n updateStepRuleIcon(event, data); //we also call it here as as of now, Public Form and Step Rules are mutually exclusive\n updateStepIntegrationIcon(event, data);\n });\n }\n\n function updateStepRuleIcon(event, data) {\n //Use timeout to avoid digest in progress error\n $timeout(function () {\n diagram.model.removeChangedListener(onDiagramModelChanged);\n diagram.startTransaction('updateDisplayStepRuleIcon');\n\n const node = diagram.findNodeForData(data.node);\n if (node != undefined) {\n node.data.displayStepRuleIcon =\n data.node.displayStepRuleIcon &&\n !data.node.displayPublicFormIcon;\n node.updateTargetBindings('displayStepRuleIcon');\n }\n diagram.commitTransaction('updateDisplayStepRuleIcon');\n updateNodeLinks();\n diagram.model.addChangedListener(onDiagramModelChanged);\n updateStepIntegrationIcon(event, data);\n });\n }\n\n function updateStepIntegrationIcon(event, data) {\n //Use timeout to avoid digest in progress error\n $timeout(function () {\n diagram.model.removeChangedListener(onDiagramModelChanged);\n diagram.startTransaction('updateStepIntegrationIcon');\n\n const node = diagram.findNodeForData(data.node);\n if (node != undefined) {\n node.data.displayStepIntegrationIcon =\n data.node.displayStepIntegrationIcon;\n node.updateTargetBindings('displayStepIntegrationIcon');\n }\n diagram.commitTransaction('updateDisplayStepIntegrationIcon');\n updateNodeLinks();\n diagram.model.addChangedListener(onDiagramModelChanged);\n });\n }\n\n function updateAttachDocumentIcon(event, data) {\n //Use timeout to avoid digest in progress error\n $timeout(function () {\n diagram.model.removeChangedListener(onDiagramModelChanged);\n diagram.startTransaction('updateStepAttachDocumentIcon');\n\n const node = diagram.findNodeForData(data.node);\n if (node != undefined) {\n node.data.displayStepAttachDocumentIcon =\n data.node.displayStepAttachDocumentIcon;\n node.updateTargetBindings('displayStepAttachDocumentIcon');\n }\n diagram.commitTransaction('updateStepAttachDocumentIcon');\n updateNodeLinks();\n diagram.model.addChangedListener(onDiagramModelChanged);\n });\n }\n\n function updateStepTaskIcon(event, data) {\n //Use timeout to avoid digest in progress error\n $timeout(function () {\n diagram.model.removeChangedListener(onDiagramModelChanged);\n diagram.startTransaction('updateStepTaskIcon');\n\n const node = diagram.findNodeForData(data.node);\n if (node != undefined) {\n node.data.displayStepTaskIcon = data.node.displayStepTaskIcon;\n node.updateTargetBindings('displayStepTaskIcon');\n }\n\n diagram.commitTransaction('updateStepTaskIcon');\n updateNodeLinks();\n diagram.model.addChangedListener(onDiagramModelChanged);\n });\n }\n\n function updateStepRefSequence(event, data) {\n //Use timeout to avoid digest in progress error\n $timeout(function () {\n diagram.model.removeChangedListener(onDiagramModelChanged);\n\n diagram.startTransaction('updateStepRefSequence');\n\n data.nodes\n .filter(\n (n) => n.category === 'activity' || n.category === 'component'\n )\n .forEach((n) => {\n const node = diagram.findNodeForKey(n.key);\n if (node != undefined) {\n node.updateTargetBindings('refSequence');\n }\n });\n\n diagram.commitTransaction('updateStepRefSequence');\n updateNodeLinks();\n diagram.model.addChangedListener(onDiagramModelChanged);\n });\n }\n\n function updateStepActor(event, data) {\n //Use timeout to avoid digest in progress error\n $timeout(function () {\n diagram.model.removeChangedListener(onDiagramModelChanged);\n\n diagram.startTransaction('updateStepActor');\n const node = diagram.findNodeForKey(data.node.key);\n if (node != undefined) {\n node.updateTargetBindings('actorName');\n node.updateTargetBindings('avatarUrl');\n }\n diagram.commitTransaction('updateStepActor');\n updateNodeLinks();\n diagram.model.addChangedListener(onDiagramModelChanged);\n });\n }\n\n ///\n /// Update the node content in response to outside change\n ///\n function updateNode(event, data) {\n markDIagramAsDirty();\n //Use timeout to avoid digest in progress error\n $timeout(function () {\n diagram.model.removeChangedListener(onDiagramModelChanged);\n diagram.startTransaction('updateNode');\n let node = diagram.findNodeForData(data.firstNode);\n if (node != undefined) {\n node.updateTargetBindings('text');\n node.updateTargetBindings('actor');\n node.updateTargetBindings('description');\n node.updateTargetBindings('taskType');\n node.updateTargetBindings('color'); // Lane background color\n node.updateTargetBindings('fontSize'); // Pool or Lane lable font Size\n }\n diagram.commitTransaction('updateNode');\n\n if (data.nextNode !== null) {\n // We also deal here with any updates to the next node also\n // eg a gateway where a field in the prior node has a changed name that it is dependant on\n diagram.model.removeChangedListener(onDiagramModelChanged);\n\n diagram.startTransaction('updateNextNode');\n node = diagram.findNodeForData(data.nextNode);\n if (node != undefined) {\n node.updateTargetBindings('text');\n node.updateTargetBindings('actor');\n node.updateTargetBindings('description');\n node.updateTargetBindings('taskType');\n }\n diagram.commitTransaction('updateNextNode');\n }\n updateNodeLinks();\n diagram.model.addChangedListener(onDiagramModelChanged);\n });\n }\n\n function addNewSwimLane(event, lane) {\n diagram.model.removeChangedListener(onDiagramModelChanged);\n diagram.startTransaction('addLane');\n if (lane !== null && lane.category === 'Lane') {\n // create a new lane data object\n const laneObj = diagram.findNodeForData(lane);\n const shape = laneObj.findObject('SHAPE');\n const size = new goService.Size(shape.width, 20);\n //size.height = MINBREADTH;\n const newlanedata = {\n category: 'Lane',\n text: 'New Lane',\n color: '#fff',\n id: guidService.new(),\n isGroup: true,\n loc: goService.Point.stringify(\n new goService.Point(laneObj.location.x, laneObj.location.y + 1)\n ), // place below selection\n size: goService.Size.stringify(size),\n group: laneObj.data.group\n };\n // and add it to the model\n diagram.model.addNodeData(newlanedata);\n } else if (lane !== null && lane.category === 'Pool') {\n const newlanedatawithLoc = {\n category: 'Lane',\n text: 'New Lane',\n color: '#fff',\n id: guidService.new(),\n isGroup: true,\n size: goService.Size.stringify(new goService.Size(20, 20)),\n group: lane.key\n };\n diagram.model.addNodeData(newlanedatawithLoc);\n }\n diagram.commitTransaction('addLane');\n diagram.model.addChangedListener(onDiagramModelChanged);\n }\n\n function removeSwimLane(event, lane) {\n diagram.model.removeChangedListener(onDiagramModelChanged);\n diagram.startTransaction('removeLane');\n const laneNode = diagram.findNodeForKey(lane.key);\n if (laneNode.memberParts.count > 0) {\n diagram.commandHandler.addTopLevelParts(laneNode.memberParts, true);\n }\n diagram.remove(laneNode);\n diagram.commitTransaction('removeLane');\n diagram.model.addChangedListener(onDiagramModelChanged);\n }\n\n //------------------------------------------END DIAGRAM INIT -----------------------------------------------------\n\n // ----------------------------------------- DIAGRAM MENU COMMAND HANDLERS ----------------------------------------------\n\n scope.$on('go.event', function (event, eventData) {\n switch (eventData.type) {\n case 'rename':\n rename(eventData.data);\n event.preventDefault();\n break;\n }\n });\n\n function rename(data) {\n diagram.startTransaction('rename');\n const newName = prompt('Rename ' + data.item + ' to:');\n diagram.model.setDataProperty(data, 'item', newName);\n diagram.commitTransaction('rename');\n }\n\n // ----------------------------------------- MAIN MENU COMMAND HANDLERS ----------------------------------------------\n\n scope.$on('go.command', function (event, data) {\n switch (data) {\n case 'copy':\n diagram.commandHandler.copySelection();\n event.preventDefault();\n break;\n\n case 'paste':\n diagram.commandHandler.pasteSelection();\n event.preventDefault();\n break;\n\n case 'cut':\n diagram.commandHandler.cutSelection();\n event.preventDefault();\n break;\n\n case 'delete':\n diagram.commandHandler.deleteSelection();\n event.preventDefault();\n break;\n\n case 'selectAll':\n diagram.commandHandler.selectAll();\n event.preventDefault();\n break;\n\n case 'undo':\n diagram.commandHandler.undo();\n event.preventDefault();\n break;\n\n case 'redo':\n diagram.commandHandler.redo();\n event.preventDefault();\n break;\n\n case 'alignLeft':\n diagram.commandHandler.alignLeft();\n event.preventDefault();\n break;\n\n case 'alignRight':\n diagram.commandHandler.alignRight();\n event.preventDefault();\n break;\n\n case 'alignTop':\n diagram.commandHandler.alignTop();\n event.preventDefault();\n break;\n\n case 'alignBottom':\n diagram.commandHandler.alignBottom();\n event.preventDefault();\n break;\n\n case 'alignCenterX':\n diagram.commandHandler.alignCenterX();\n event.preventDefault();\n break;\n\n case 'alignCenterY':\n diagram.commandHandler.alignCenterY();\n event.preventDefault();\n break;\n }\n });\n\n // ----------------------------------------- END COMMAND HANDLERS ----------------------------------------------\n }\n };\n }\n]);\n","/**\n * @ngdoc service\n * @name BpmnDiagramService\n * @module flowingly.bpmn.modeler\n *\n * @description A helper service for defining and persisting GoJS Diagrams.\n *\n * ## Notes\n *\n * ###API\n * * getDiagram - Get previously stored GoJS diagram associated wih the given key\n * * getDiagramModel - Create a new diagram with default properties.\n * * storeDiagram - Store a GoJS diagram with the given key\n * * getLaneResizingTool - return a tool for lane resizing (not used)\n * * relayoutDiagram - ??\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/e5284bf862628ec8ee720a99ca862545a7b5c12e/src/Flowingly.Shared.Angular/flowingly.bpmn.modeler/flowingly.bpmn.diagram.service.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\nimport { Diagram } from 'FlowGoJS';\n///\n/// A helper service for defining and persisting GoJS Diagrams\n///\n\nangular\n .module('flowingly.bpmn.modeler')\n .factory('BpmnDiagramService', bpmnDiagramService);\n\nbpmnDiagramService.$inject = ['goService', 'BPMN_CONSTANTS', 'BpmnService'];\n\nfunction bpmnDiagramService(goService, BPMN_CONSTANTS, BpmnService) {\n // TODO these should be defined on BPMN_CONSTANTS and/ or within a swimlane service\n //swimlanes\n const MINLENGTH = 400; // this controls the minimum length of any swimlane\n const MINBREADTH = 20; // this controls the minimum breadth of any non-collapsed swimlane\n\n const diagrams: { [property: string]: Diagram } = {};\n\n const service = {\n getDiagram: getDiagram,\n getDiagramModel: getDiagramModel,\n storeDiagram: storeDiagram,\n getLaneResizingTool: getLaneResizingTool,\n relayoutDiagram: relayoutDiagram\n };\n return service;\n\n /// PUBLIC ///////////////////////////////////////////////////////////////////////\n\n ///\n /// Create a new diagram with default properties.\n ///\n function getDiagramModel() {\n const diagram = {\n //maybe we should pass this into directive?\n nodeTemplateMap: BpmnService.getNodeTemplateMap(),\n linkTemplateMap: BpmnService.getLinkTemplateMap(),\n groupTemplateMap: BpmnService.getGroupTemplateMap(),\n allowDrop: true,\n scale: BPMN_CONSTANTS.DiagramScale,\n minScale: BPMN_CONSTANTS.DiagramMinScale,\n maxScale: BPMN_CONSTANTS.DiagramMaxScale,\n commandHandler: BpmnService.getDrawCommandHandler(),\n linkingTool: BpmnService.getBpmnLinkingTool(),\n // default to having arrow keys move selected nodes\n 'commandHandler.arrowKeyBehavior': 'move',\n // Prevent undo/redo, but enable undoManager due to required events: FLOW-5376\n allowUndo: false,\n 'undoManager.isEnabled': true,\n 'draggingTool.isCopyEnabled': false,\n 'animationManager.isEnabled': true,\n 'animationManager.duration': 1000,\n scrollMode: goService.Diagram.InfiniteScroll\n };\n return diagram;\n }\n\n ///\n /// Get GoJS diagram associated wih the given key\n ///\n function getDiagram(key: string) {\n return diagrams[key];\n }\n\n ///\n /// Store a GoJS diagram with the given key\n ///\n function storeDiagram(key: string, diagram: Diagram) {\n diagrams[key] = diagram;\n }\n\n //TODO THIS SHOULD NOT BE HERE. The best place for this would be the common service, injected into bpmnService\n //and then use from there - see getBpmnLinkingTool()\n function getLaneResizingTool() {\n goService.Diagram.inherit(laneResizingTool, goService.ResizingTool);\n\n laneResizingTool.prototype.isLengthening = function () {\n return this.handle.alignment === goService.Spot.Right;\n };\n\n /** @override */\n laneResizingTool.prototype.computeMinSize = function () {\n const lane = this.adornedObject.part;\n // assert(lane instanceof goService.Group && lane.category !== \"Pool\");\n const msz = computeMinLaneSize(lane); // get the absolute minimum size\n if (this.isLengthening()) {\n // compute the minimum length of all lanes\n const sz = computeMinPoolSize(lane.containingGroup);\n msz.width = Math.max(msz.width, sz.width);\n } else {\n // find the minimum size of this single lane\n const sz = computeLaneSize(lane);\n msz.width = Math.max(msz.width, sz.width);\n msz.height = Math.max(msz.height, sz.height);\n }\n return msz;\n };\n\n /** @override */\n laneResizingTool.prototype.canStart = function () {\n if (!goService.ResizingTool.prototype.canStart.call(this)) return false;\n\n // if this is a resize handle for a \"Lane\", we can start.\n const diagram = diagrams['main'];\n if (diagram === null) return false;\n const handl = this.findToolHandleAt(\n diagram.firstInput.documentPoint,\n this.name\n );\n if (\n handl === null ||\n handl.part === null ||\n handl.part.adornedObject === null ||\n handl.part.adornedObject.part === null\n )\n return false;\n return handl.part.adornedObject.part.category === 'Lane';\n };\n\n /** @override */\n laneResizingTool.prototype.resize = function (newr) {\n const lane = this.adornedObject.part;\n if (this.isLengthening()) {\n // changing the length of all of the lanes\n lane.containingGroup.memberParts.each(function (lane) {\n if (!(lane instanceof goService.Group)) return;\n const shape = lane.resizeObject;\n if (shape !== null) {\n // set its desiredSize length, but leave each breadth alone\n shape.width = newr.width;\n }\n });\n } else {\n // changing the breadth of a single lane\n goService.ResizingTool.prototype.resize.call(this, newr);\n }\n relayoutDiagram(); // now that the lane has changed size, layout the pool again\n };\n\n return new laneResizingTool();\n }\n\n function relayoutDiagram() {\n const myDiagram = diagrams['main'];\n myDiagram.layout.invalidateLayout();\n myDiagram.findTopLevelGroups().each(function (g) {\n if (g.category === 'Pool') g.layout.invalidateLayout();\n });\n myDiagram.layoutDiagram();\n }\n\n //PRIVATE METHODS ///////////////////////////////////////////////////////////////////\n function laneResizingTool() {\n goService.ResizingTool.call(this);\n }\n\n // compute the minimum size of a Pool Group needed to hold all of the Lane Groups\n function computeMinPoolSize(pool) {\n // assert(pool instanceof goService.Group && pool.category === \"Pool\");\n let len = MINLENGTH;\n pool.memberParts.each(function (lane) {\n // pools ought to only contain lanes, not plain Nodes\n if (!(lane instanceof goService.Group)) return;\n const holder = lane.placeholder;\n if (holder !== null) {\n const sz = holder.actualBounds;\n len = Math.max(len, sz.width);\n }\n });\n return new goService.Size(len, NaN);\n }\n\n // compute the minimum size for a particular Lane Group\n function computeLaneSize(lane) {\n // assert(lane instanceof goService.Group && lane.category !== \"Pool\");\n const sz = computeMinLaneSize(lane);\n if (lane.isSubGraphExpanded) {\n const holder = lane.placeholder;\n if (holder !== null) {\n const hsz = holder.actualBounds;\n sz.height = Math.max(sz.height, hsz.height);\n }\n }\n // minimum breadth needs to be big enough to hold the header\n const hdr = lane.findObject('HEADER');\n if (hdr !== null) sz.height = Math.max(sz.height, hdr.actualBounds.height);\n return sz;\n }\n\n // determine the minimum size of a Lane Group, even if collapsed\n function computeMinLaneSize(lane) {\n if (!lane.isSubGraphExpanded) return new goService.Size(MINLENGTH, 1);\n return new goService.Size(MINLENGTH, MINBREADTH);\n }\n}\n\nexport type BpmnDiagramServiceType = ReturnType;\n","/**\n * @ngdoc service\n * @name BpmnEventNodeService\n * @module flowingly.bpmn.modeler\n *\n * @description A service for creating BPMN EVENT nodes (start/end).\n *\n * ## Notes\n *\n * ### Model Usage\n * { key: 101, category: \"event\", text: \"Start\", eventType: 1, eventDimension: 1, item: \"start\"},\n *\n * There are two types of nodes (node/palette node). The first is what gets drawn on the canvas;\n * the second what gets drawni the palette and dragged on to the canvas.\n * ###API\n * * getNode - Get an event node defined by the (optional) options\n * * getPaletteNode - Get a event palette node defined by the (optional) options\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/541a9cd54770a525c26af6d64ee8d4d8625af645/src/Flowingly.Shared.Angular/flowingly.bpmn.modeler/flowingly.bpmn.event.service.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\n\nangular\n .module('flowingly.bpmn.modeler')\n .factory('BpmnEventNodeService', bpmnEventNodeService);\n\nbpmnEventNodeService.$inject = [\n 'goService',\n 'BpmnPartsFactory',\n 'BPMN_CONSTANTS',\n 'BpmnCommonService'\n];\n\nfunction bpmnEventNodeService(\n goService: GoJS,\n BpmnPartsFactory,\n BPMN_CONSTANTS,\n BpmnCommonService\n) {\n const $GO = goService.GraphObject.make;\n\n //--------------------------------------------DEFAULTS------------------------------------------\n\n const defaults = {\n EventNodeSize: BPMN_CONSTANTS.EventNodeSize,\n EventNodeInnerSize: BPMN_CONSTANTS.EventNodeInnerSize /* EventNode -6*/,\n EventNodeSymbolSize: 22 /*EventNodeInnerSize -14*/,\n EventSymbolLightFill: BPMN_CONSTANTS.EventNodeFill,\n EventSymbolDarkFill: BPMN_CONSTANTS.TerminateInnerCircle,\n EventDimensionStrokeColor: BPMN_CONSTANTS.EventStartBorder,\n EventDimensionStrokeEndColor: BPMN_CONSTANTS.EventEndBorder,\n EventDimensionInnerStrokeColor: BPMN_CONSTANTS.TerminateInnerCircle,\n EventNodeStrokeWidth: BPMN_CONSTANTS.EventNodeStrokeWidth,\n EventNodePaletteStrokeWidth: BPMN_CONSTANTS.EventNodePaletteStrokeWidth,\n EventNodeStrokeWidthIsEnd: BPMN_CONSTANTS.EventNodeStrokeWidth,\n EventNodePaletteFill: BPMN_CONSTANTS.EventNodePaletteFill\n };\n\n const service = {\n getNode: getNode,\n getPaletteNode: getPaletteNode\n };\n return service;\n\n /// PUBLIC ///////////////////////////////////////////////////////////////////////\n\n function getNode(options) {\n angular.extend(defaults, options); //override defaults, if options supplied\n\n return getEventNode(BPMN_CONSTANTS.NoScale, true);\n }\n\n function getPaletteNode(options) {\n angular.extend(defaults, options); //override defaults, if options supplied\n\n return makePaletteNode();\n }\n\n /// PRIVATE ///////////////////////////////////////////////////////////////////////\n\n function makePaletteNode(scale?, useAdornment?) {\n const $GO = goService.GraphObject.make;\n\n return $GO(\n goService.Part,\n goService.Panel.Vertical,\n { width: BPMN_CONSTANTS.palette.innerWidth, selectionAdorned: false },\n $GO(\n goService.Picture,\n {\n name: 'Icon',\n desiredSize: !BpmnCommonService.isInternetExplorer\n ? new goService.Size(\n BPMN_CONSTANTS.palette.icon.innerWidth,\n BPMN_CONSTANTS.palette.icon.innerHeight\n )\n : new goService.Size(\n BPMN_CONSTANTS.palette.iconIE.event.innerWidth,\n BPMN_CONSTANTS.palette.iconIE.event.innerHeight\n ),\n scale: !BpmnCommonService.isInternetExplorer\n ? 1\n : BPMN_CONSTANTS.palette.iconIE.event.scale\n },\n new goService.Binding('source', 'item', (item) => {\n switch (item.toLowerCase()) {\n case 'start':\n return ASSETS_PATH + '/start.svg';\n case 'end':\n return ASSETS_PATH + '/end.svg';\n default:\n throw new Error('Unsupported item type ' + item);\n }\n })\n ),\n\n BpmnPartsFactory.getTextBlock(\n 'text',\n undefined,\n BPMN_CONSTANTS.PaletteTextColour,\n 'move'\n )\n );\n }\n\n //---------------------------------------------HELPERS------------------------------------------\n function nodeEventDimensionStrokeColorConverter(s) {\n if (s === 8) return defaults.EventDimensionStrokeEndColor;\n if (s > 3 && s <= 7) return defaults.EventDimensionStrokeEndColor;\n return defaults.EventDimensionStrokeColor;\n }\n\n function nodeEventDimensionSymbolFillConverter(s) {\n if (s <= 6) return '#fff';\n\n return '#fff';\n }\n\n //---------------------------------------------TEMPLATE------------------------------------------\n function getEventNode(scale, useAdornment, isForPalette?) {\n if (isForPalette) {\n console.warn(\n 'using this function for palette icons i deprecated please use makePaletteNode function'\n );\n }\n\n return $GO(\n goService.Node,\n 'Vertical',\n {\n locationObjectName: 'Icon',\n locationSpot: goService.Spot.Center,\n selectionAdorned: useAdornment,\n mouseEnter: function (e, node) {\n BpmnCommonService.showPort(node, 'ConnectorPort');\n },\n mouseLeave: function (e, node) {\n BpmnCommonService.hidePort(node, 'ConnectorPort');\n }\n },\n new goService.Binding(\n 'location',\n 'loc',\n goService.Point.parse\n ).makeTwoWay(goService.Point.stringify),\n // move a selected part into the Foreground layer, so it isn't obscured by any non-selected parts\n new goService.Binding('layerName', 'isSelected', function (s) {\n return s ? 'Foreground' : '';\n }).ofObject(),\n // can be resided according to the user's desires\n $GO(\n goService.Panel,\n 'Auto',\n $GO(\n goService.Picture,\n {\n name: 'Icon',\n width: BPMN_CONSTANTS.diagram.icon.innerWidth,\n height: BPMN_CONSTANTS.diagram.icon.innerHeight,\n portId: '',\n fromLinkable: true,\n toLinkable: true,\n cursor: 'pointer',\n fromSpot: goService.Spot.RightSide,\n toSpot: goService.Spot.LeftSide\n },\n new goService.Binding('source', 'item', (item) => {\n switch (item.toLowerCase()) {\n case 'start':\n return ASSETS_PATH + '/start.svg';\n case 'end':\n return ASSETS_PATH + '/end.svg';\n default:\n throw new Error('Unsupported item type ' + item);\n }\n })\n ),\n $GO(goService.Shape, 'Square', {\n fill: 'transparent',\n stroke: null,\n width: BPMN_CONSTANTS.diagram.icon.innerWidth - 1,\n height: BPMN_CONSTANTS.diagram.icon.innerHeight - 1,\n name: 'outline',\n pickable: false\n }),\n $GO(goService.Shape, 'Circle', {\n fill: 'transparent',\n stroke: null,\n cursor: 'move',\n width: BPMN_CONSTANTS.diagram.icon.innerWidth - 10,\n height: BPMN_CONSTANTS.diagram.icon.innerHeight - 10\n }),\n ...(BpmnCommonService.shouldShowConnectorPoints()\n ? [\n BpmnCommonService.makePort(\n 'ConnectorPort',\n goService.Spot.Right,\n new goService.Spot(1, 0.5, 0.5, 0)\n )\n ]\n : [])\n ),\n\n BpmnPartsFactory.getTextBlock(\n 'text',\n undefined,\n BPMN_CONSTANTS.PaletteTextColour,\n 'move',\n 'normal 14px \"Open Sans\"',\n undefined,\n BPMN_CONSTANTS.EventLabelFill\n ),\n { click: BpmnCommonService.nodeClickHandler }\n ); // end goService.Node Vertical\n }\n}\n\nexport type BpmnEventNodeServiceType = ReturnType;\n","/**\n * @ngdoc service\n * @name BpmnGatewayNodeService\n * @module flowingly.bpmn.modeler\n *\n * @description A service for creating BPMN Gateway nodes.\n *\n * ## Notes\n *\n * ### Model Usage\n * { key: 201, category: \"exclusiveGateway\", text: \"Decision\" }\n *\n * There are two types of nodes (node/palette node). The first is what gets drawn on the canvas;\n * the second what gets drawni the palette and dragged on to the canvas.\n * ###API\n * * getNode - Get an gateway node defined by the (optional) options\n * * getPaletteNode - Get a gateway palette node defined by the (optional) options\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/b093fe974b2b3eb0982893197d03250818171b7f/src/Flowingly.Shared.Angular/flowingly.bpmn.modeler/flowingly.bpmn.gateway.service.js?at=master\n */\n\n'use strict';\nimport { Services } from '@Shared.Angular/@types/services';\nimport angular from 'angular';\n\nangular\n .module('flowingly.bpmn.modeler')\n .factory('BpmnGatewayNodeService', BpmnGatewayNodeService);\n\nBpmnGatewayNodeService.$inject = [\n 'goService',\n 'BpmnPartsFactory',\n 'BPMN_CONSTANTS',\n 'BpmnCommonService',\n 'modelerValidationErrorsService',\n 'flowinglyConstants'\n];\n\nfunction BpmnGatewayNodeService(\n goService,\n BpmnPartsFactory,\n BPMN_CONSTANTS,\n BpmnCommonService,\n modelerValidationErrorsService,\n flowinglyConstants: Services.FlowinglyConstants\n) {\n //--------------------------------------------DEFAULTS------------------------------------------\n const COMMON_GATEWAY_OPTIONS = {\n name: 'Icon',\n width: BPMN_CONSTANTS.diagram.gatewayIcon.outerWidth,\n height: BPMN_CONSTANTS.diagram.gatewayIcon.outerHeight,\n portId: '',\n fromLinkable: true,\n toLinkable: true,\n cursor: 'pointer',\n fromSpot: goService.Spot.NotLeftSide,\n toSpot: goService.Spot.MiddleLeft\n };\n\n const GATEWAY_DAFAULT_COLOR = '#A3A3A3';\n const GATEWAY_PALETTE_FILL_COLOR = '#efefef';\n const GATEWAY_CANVAS_SIZE = 70;\n const $GO = goService.GraphObject.make;\n const defaults = {\n GatewayNodeEditable: BPMN_CONSTANTS.MakeNodesEditable,\n GatewayNodeSize: 80,\n GatewayNodeSymbolSize: 25,\n GatewayNodeFill: BPMN_CONSTANTS.GatewayNodeFill,\n GatewayNodeStroke: GATEWAY_DAFAULT_COLOR,\n GatewayNodeStrokeWidth: BPMN_CONSTANTS.GatewayNodeStrokeWidth,\n GatewayNodePaletteStrokeWidth: BPMN_CONSTANTS.GatewayNodePaletteStrokeWidth,\n GatewayNodeSymbolStroke: BPMN_CONSTANTS.GatewayNodeStroke,\n GatewayNodeSymbolFill: BPMN_CONSTANTS.GatewayNodeFill,\n GatewayNodePaletteFill: GATEWAY_PALETTE_FILL_COLOR,\n GatewayNodeSymbolStrokeWidth: 2.5\n };\n\n const CURSOR_MOVE_OPTIONS = {\n fill: 'transparent',\n stroke: null,\n cursor: 'move',\n width: BPMN_CONSTANTS.diagram.gatewayIcon.outerWidth - 10,\n height: BPMN_CONSTANTS.diagram.gatewayIcon.outerHeight - 10\n };\n const service = {\n getNode: getNode,\n getPaletteNode: getPaletteNode\n };\n return service;\n\n /// PUBLIC ///////////////////////////////////////////////////////////////////////\n\n function getNode(category, options) {\n angular.extend(defaults, options); //override defaults, if options supplied\n\n switch (category) {\n case flowinglyConstants.nodeCategory.EXCLUSIVE_GATEWAY:\n return getExclusiveGatewayNode();\n\n case flowinglyConstants.nodeCategory.DIVERGE_GATEWAY:\n return getDivergeGatewayNode();\n\n case flowinglyConstants.nodeCategory.CONVERGE_GATEWAY:\n return getMergeGatewayNode();\n\n default:\n return getGenericGateway();\n }\n }\n\n // @TODO flowingly.bpmn.activity.service has the\n // exact same function, we should merge this into\n // a service.\n function getBorderColor(goNodeModel) {\n const hasError = modelerValidationErrorsService.hasErrors(goNodeModel.key);\n return hasError\n ? BPMN_CONSTANTS.Theme.Error.Border.Color\n : BPMN_CONSTANTS.ActivityNodeBorder;\n }\n\n // @TODO flowingly.bpmn.activity.service has the\n // exact same function, we should merge this into\n // a service.\n function getBorderWidth(goNodeModel) {\n const hasError = modelerValidationErrorsService.hasErrors(goNodeModel.key);\n return hasError\n ? BPMN_CONSTANTS.Theme.Error.Border.StrokeWidth / 2 // divide by 2 so it will match with the activity's width\n : 0;\n }\n\n function getShapeForBorder() {\n return $GO(\n goService.Shape,\n 'Square',\n {\n fill: 'white',\n stroke: '#FF0000',\n strokeWidth: 4,\n name: 'outline'\n },\n // Business Rule for FLOW-4654, when valdiation the borders of\n // the nodes should turn red if they contain an error.\n new goService.Binding('stroke', '', getBorderColor),\n new goService.Binding('strokeWidth', '', getBorderWidth)\n );\n }\n\n function getDecisionGraphIcon(opts = {}) {\n return $GO(\n goService.Panel,\n 'Auto',\n // this shape is solely for giving the decision gateway a\n // box border for when an error has occured.\n getShapeForBorder(),\n $GO(\n goService.Panel,\n 'Auto',\n $GO(goService.Picture, {\n ...COMMON_GATEWAY_OPTIONS,\n ...opts,\n source: ASSETS_PATH + '/decision.svg'\n }),\n $GO(goService.Shape, 'Diamond', {\n ...CURSOR_MOVE_OPTIONS\n })\n ),\n ...(BpmnCommonService.shouldShowConnectorPoints()\n ? [\n BpmnCommonService.makePort(\n 'ConnectorPort',\n goService.Spot.Right,\n new goService.Spot(1, 0.5, 0.5, 0)\n )\n ]\n : [])\n );\n }\n\n function getDivergeGraphIcon(opts = {}) {\n return $GO(\n goService.Panel,\n 'Auto',\n // this shape is solely for giving the decision gateway a\n // box border for when an error has occured.\n getShapeForBorder(),\n $GO(\n goService.Panel,\n 'Auto',\n $GO(goService.Picture, {\n ...COMMON_GATEWAY_OPTIONS,\n ...opts,\n source: ASSETS_PATH + '/diverge.svg'\n }),\n $GO(goService.Shape, 'Diamond', {\n ...CURSOR_MOVE_OPTIONS\n })\n ),\n ...(BpmnCommonService.shouldShowConnectorPoints()\n ? [\n BpmnCommonService.makePort(\n 'ConnectorPort',\n goService.Spot.Right,\n new goService.Spot(1, 0.5, 0.5, 0)\n )\n ]\n : [])\n );\n }\n\n function getMergeGraphIcon(opts = {}) {\n return $GO(\n goService.Panel,\n 'Auto',\n // this shape is solely for giving the decision gateway a\n // box border for when an error has occured.\n getShapeForBorder(),\n $GO(\n goService.Panel,\n 'Auto',\n $GO(goService.Picture, {\n ...COMMON_GATEWAY_OPTIONS,\n ...opts,\n source: ASSETS_PATH + '/merge.svg'\n }),\n $GO(goService.Shape, 'Diamond', {\n ...CURSOR_MOVE_OPTIONS\n })\n ),\n ...(BpmnCommonService.shouldShowConnectorPoints()\n ? [\n BpmnCommonService.makePort(\n 'ConnectorPort',\n goService.Spot.Right,\n new goService.Spot(1, 0.5, 0.5, 0)\n )\n ]\n : [])\n );\n }\n\n ///\n /// Get a Gateway node defined by the (optional) options\n /// If options is not supplied, default values will be used\n ///\n function getPaletteNode(options, isExclusiveGateway, isConverge) {\n angular.extend(defaults, options); //override defaults, if options supplied\n return getGatewayPaletteNode(isExclusiveGateway, isConverge);\n }\n\n /// PRIVATE ///////////////////////////////////////////////////////////////////////\n\n //---------------------------------------------HELPERS------------------------------------------\n\n //---------------------------------------------TEMPLATE------------------------------------------\n\n /**\n * @deprecated\n */\n function getGenericGateway() {\n const gatewayNodeTemplate = $GO(\n goService.Node,\n 'Vertical',\n {\n locationObjectName: 'Icon',\n locationSpot: goService.Spot.Center\n //toolTip: tooltiptemplate\n },\n new goService.Binding(\n 'location',\n 'loc',\n goService.Point.parse\n ).makeTwoWay(goService.Point.stringify),\n // move a selected part into the Foreground layer, so it isn't obscured by any non-selected parts\n new goService.Binding('layerName', 'isSelected', function (s) {\n return s ? 'Foreground' : '';\n }).ofObject(),\n // can be resided according to the user's desires\n { resizable: false, resizeObjectName: 'SHAPE' },\n $GO(\n goService.Panel,\n 'Spot',\n $GO(\n goService.Shape,\n 'Diamond',\n {\n strokeWidth: defaults.GatewayNodeStrokeWidth,\n fill: defaults.GatewayNodeFill,\n stroke: defaults.GatewayNodeStroke,\n name: 'SHAPE',\n desiredSize: new goService.Size(\n defaults.GatewayNodeSize,\n defaults.GatewayNodeSize\n ),\n portId: '',\n fromLinkable: true,\n toLinkable: true,\n cursor: 'pointer',\n fromSpot: goService.Spot.NotLeftSide,\n toSpot: goService.Spot.MiddleLeft\n },\n new goService.Binding(\n 'desiredSize',\n 'size',\n goService.Size.parse\n ).makeTwoWay(goService.Size.stringify)\n ) // end main shape\n ),\n BpmnPartsFactory.getTextBlock('text')\n ); // end goService.Node Vertical\n\n return gatewayNodeTemplate;\n }\n\n //TODO RF refactor common parts into one method\n function getExclusiveGatewayNode() {\n const gatewayNodeTemplate = $GO(\n goService.Node,\n 'Vertical',\n {\n locationObjectName: 'Icon',\n locationSpot: goService.Spot.Center,\n mouseEnter: function (e, node) {\n ['ConnectorPort'].forEach((portName) =>\n BpmnCommonService.showPort(node, portName)\n );\n },\n mouseLeave: function (e, node) {\n ['ConnectorPort'].forEach((portName) =>\n BpmnCommonService.hidePort(node, portName)\n );\n },\n layerName: 'Foreground'\n },\n new goService.Binding(\n 'location',\n 'loc',\n goService.Point.parse\n ).makeTwoWay(goService.Point.stringify),\n // can be resided according to the user's desires\n { resizable: false, resizeObjectName: 'SHAPE' },\n getDecisionGraphIcon(),\n BpmnPartsFactory.getTextBlock(\n 'text',\n true,\n undefined,\n 'move',\n undefined,\n true,\n BPMN_CONSTANTS.GatewayLabelFill\n ),\n { click: BpmnCommonService.nodeClickHandler }\n ); // end goService.Node Vertical\n\n return gatewayNodeTemplate;\n }\n\n function getGenericGatewayNode(gatewayGraphIcon, canEditText) {\n return $GO(\n goService.Node,\n 'Vertical',\n {\n locationObjectName: 'Icon',\n locationSpot: goService.Spot.Center,\n click: BpmnCommonService.nodeClickHandler,\n mouseEnter: function (e, node) {\n ['ConnectorPort'].forEach((portName) =>\n BpmnCommonService.showPort(node, portName)\n );\n },\n mouseLeave: function (e, node) {\n ['ConnectorPort'].forEach((portName) =>\n BpmnCommonService.hidePort(node, portName)\n );\n },\n layerName: 'Foreground'\n },\n\n gatewayGraphIcon,\n\n BpmnPartsFactory.getTextBlock(\n 'text',\n true,\n undefined,\n 'move',\n undefined,\n canEditText,\n BPMN_CONSTANTS.GatewayLabelFill\n ),\n\n new goService.Binding(\n 'location',\n 'loc',\n goService.Point.parse\n ).makeTwoWay(goService.Point.stringify)\n ); // end goService.Node Vertical\n }\n\n function getDivergeGatewayNode() {\n return getGenericGatewayNode(getDivergeGraphIcon(), true);\n }\n\n function getMergeGatewayNode() {\n return getGenericGatewayNode(getMergeGraphIcon(), false);\n }\n\n function getGatewayPaletteNode(isExclusiveGateway, isConverge) {\n let imageUrl;\n if (isExclusiveGateway) {\n imageUrl = ASSETS_PATH + '/decision.svg';\n } else {\n if (isConverge) {\n imageUrl = ASSETS_PATH + '/merge.svg';\n } else {\n imageUrl = ASSETS_PATH + '/diverge.svg';\n }\n }\n\n return BpmnPartsFactory.paletteIcon(\n $GO(goService.Picture, {\n source: imageUrl,\n width: !BpmnCommonService.isInternetExplorer\n ? BPMN_CONSTANTS.palette.icon.innerWidth\n : BPMN_CONSTANTS.palette.iconIE.gateway.innerWidth,\n height: !BpmnCommonService.isInternetExplorer\n ? BPMN_CONSTANTS.palette.icon.innerHeight\n : BPMN_CONSTANTS.palette.iconIE.gateway.innerHeight,\n scale: !BpmnCommonService.isInternetExplorer\n ? 1\n : BPMN_CONSTANTS.palette.iconIE.gateway.scale\n })\n );\n }\n}\n\nexport type BpmnGatewayNodeServiceType = ReturnType<\n typeof BpmnGatewayNodeService\n>;\n","/**\n * @ngdoc service\n * @name BpmnLaneNodeService\n * @module flowingly.bpmn.modeler\n *\n * @description A service for creating BPMN Lane nodes.\n *\n * ## Notes\n * There are two types of nodes (node/palette node). The first is what gets drawn on the canvas;\n * the second what gets drawni the palette and dragged on to the canvas.\n *\n * ### Model Usage\n * { key: \"Lane5\", \"text\": \"Lane 1\", \"isGroup\": \"true\", \"group\": \"501\",\"color\": \"lightyellow\", \"category\": \"Lane\" },\n *\n * ###API\n * * getNode - Get a swim lane defined by the (optional) options\n * * getPaletteNode - Get a swim lane palette node defined by the (optional) options\n *\n * Converted to ts on 17/01/020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/895ebfda5208378cbdb14687b51a1dd6f0d0d4e4/src/Flowingly.Shared.Angular/flowingly.bpmn.modeler/flowingly.bpmn.lane.service.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\nimport { BpmnModeler } from './@types/services';\nangular\n .module('flowingly.bpmn.modeler')\n .factory('BpmnLaneNodeService', BpmnLaneNodeService);\n\nBpmnLaneNodeService.$inject = ['goService', '$window', 'BpmnCommonService'];\n\n// ReSharper disable once InconsistentNaming\nfunction BpmnLaneNodeService(\n goService: GoJS,\n $window: angular.IWindowService,\n BpmnCommonService: BpmnModeler.BpmnCommonService\n) {\n const service = {\n getNode: getNode,\n getPaletteNode: getPaletteNode\n };\n return service;\n\n /// PUBLIC ///////////////////////////////////////////////////////////////////////\n\n function getNode(options) {\n //angular.extend(defaults, options); //override defaults, if options supplied\n\n return getLaneNodeTemplate();\n }\n\n ///\n /// Get a Pool node defined by the (optional) options\n /// If options is not supplied, default values will be used\n ///\n function getPaletteNode(options) {\n //angular.extend(defaults, options); //override defaults, if options supplied\n\n return getLanePaletteNode();\n }\n\n //private functions\n\n function groupStyle() {\n // common settings for both Lane and Pool Groups\n return [\n {\n cursor:'move',\n layerName: 'Background', // all pools and lanes are always behind all nodes and links\n background: 'transparent', // can grab anywhere in bounds\n movable: true, // allows users to re-order by dragging\n copyable: false, // can't copy lanes or pools\n avoidable: false // don't impede AvoidsNodes routed Links\n },\n new goService.Binding(\n 'location',\n 'loc',\n goService.Point.parse\n ).makeTwoWay(goService.Point.stringify)\n ];\n }\n\n // hide links between lanes when either lane is collapsed\n function updateCrossLaneLinks(group) {\n group.findExternalLinksConnected().each(function (l) {\n l.visible = l.fromNode.isVisible() && l.toNode.isVisible();\n });\n }\n\n function relayoutDiagram(dia) {\n const myDiagram =\n typeof $window.mainDiagram === 'undefined' ? dia : $window.mainDiagram;\n myDiagram.layout.invalidateLayout();\n myDiagram.findTopLevelGroups().each(function (g) {\n if (g.category === 'Pool') g.layout.invalidateLayout();\n });\n myDiagram.layoutDiagram();\n }\n\n function getLaneNodeTemplate() {\n const $GO = goService.GraphObject.make;\n\n const laneNodeTemplate = $GO(\n goService.Group,\n 'Spot',\n groupStyle(),\n {\n name: 'Lane',\n contextMenu: null,\n minLocation: new goService.Point(NaN, -Infinity), // only allow vertical movement\n maxLocation: new goService.Point(NaN, Infinity),\n selectionObjectName: 'SHAPE', // selecting a lane causes the body of the lane to be highlit, not the label\n resizable: true,\n resizeObjectName: 'SHAPE', // the custom resizeAdornmentTemplate only permits two kinds of resizing\n\n mouseEnter: function (e, obj) {\n obj.part.movable = false;\n },\n mouseLeave: function (e, obj) {\n obj.part.movable = true;\n },\n\n layout: $GO(\n goService.LayeredDigraphLayout, // automatically lay out the lane's subgraph\n {\n isInitial: false, // don't even do initial layout\n isOngoing: false, // don't invalidate layout when nodes or links are added or removed\n direction: 0,\n columnSpacing: 10,\n layeringOption:\n goService.LayeredDigraphLayout.LayerLongestPathSource\n }\n ),\n computesBoundsAfterDrag: true, // needed to prevent recomputing Group.placeholder bounds too soon\n computesBoundsIncludingLinks: false, // to reduce occurrences of links going briefly outside the lane\n computesBoundsIncludingLocation: true, // to support empty space at top-left corner of lane\n handlesDragDropForMembers: true, // don't need to define handlers on member Nodes and Links\n mouseDrop: function (e, grp) {\n // dropping a copy of some Nodes and Links onto this Group adds them to this Group\n // don't allow drag-and-dropping a mix of regular Nodes and Groups\n //todo: not sure if we need this right now\n if (\n !e.diagram.selection.any(function (n) {\n return (\n (n instanceof goService.Group && n.category !== 'subprocess') ||\n n.category === 'privateProcess'\n );\n })\n ) {\n const ok = grp.addMembers(grp.diagram.selection, true);\n if (ok) {\n updateCrossLaneLinks(grp);\n relayoutDiagram(grp.diagram);\n } else {\n grp.diagram.currentTool.doCancel();\n }\n }\n },\n subGraphExpandedChanged: function (grp) {\n const shp = grp.resizeObject;\n if (grp.diagram.undoManager.isUndoingRedoing) return;\n if (grp.isSubGraphExpanded) {\n shp.height = grp._savedBreadth;\n } else {\n grp._savedBreadth = shp.height;\n shp.height = NaN;\n }\n updateCrossLaneLinks(grp);\n }\n },\n //new goService.Binding(\"isSubGraphExpanded\", \"expanded\").makeTwoWay(),\n $GO(\n goService.Shape,\n 'Rectangle', // this is the resized object\n { name: 'SHAPE', fill: 'white', stroke: null }, // need stroke null here or you gray out some of pool border.\n new goService.Binding('fill', 'color'),\n new goService.Binding(\n 'desiredSize',\n 'size',\n goService.Size.parse\n ).makeTwoWay(goService.Size.stringify)\n ),\n\n $GO(\n goService.Panel,\n 'Horizontal',\n {\n name: 'HEADER',\n alignment: goService.Spot.TopLeft,\n alignmentFocus: goService.Spot.TopLeft\n },\n $GO('SubGraphExpanderButton', {\n margin: 4,\n width: 20,\n height: 20\n }) // but this remains always visible!\n ),\n // the lane header\n $GO(\n goService.Panel,\n 'Horizontal',\n {\n name: 'HEADER',\n alignment: goService.Spot.LeftCenter,\n alignmentFocus: goService.Spot.LeftCenter\n },\n $GO(\n goService.TextBlock, // the lane label\n {\n editable: true,\n textEditor: BpmnCommonService.getTextEditingTool(),\n margin: new goService.Margin(2, 0, 0, 8),\n width: 500\n },\n new goService.Binding('visible', 'isSubGraphExpanded').ofObject(),\n new goService.Binding('text', 'text').makeTwoWay(),\n new goService.Binding('font', 'fontSize', function (s) {\n return 'normal ' + s + 'px sans-serif';\n })\n )\n ), // end Horizontal Panel\n $GO(goService.Placeholder, {\n padding: 12,\n alignment: goService.Spot.TopLeft,\n alignmentFocus: goService.Spot.TopLeft\n }),\n $GO(\n goService.Panel,\n 'Horizontal',\n {\n alignment: goService.Spot.TopLeft,\n alignmentFocus: goService.Spot.TopLeft\n },\n $GO(\n goService.TextBlock, // this TextBlock is only seen when the swimlane is collapsed\n {\n name: 'LABEL',\n editable: false,\n visible: false,\n margin: new goService.Margin(6, 0, 0, 30)\n },\n new goService.Binding('visible', 'isSubGraphExpanded', function (e) {\n return !e;\n }).ofObject(),\n new goService.Binding('text', 'text').makeTwoWay()\n )\n ),\n { click: BpmnCommonService.nodeClickHandler }\n );\n\n laneNodeTemplate.resizeAdornmentTemplate = $GO(\n goService.Adornment,\n 'Spot',\n $GO(goService.Placeholder),\n $GO(\n goService.Shape, // for changing the length of a lane\n {\n alignment: goService.Spot.Right,\n desiredSize: new goService.Size(7, 50),\n fill: 'lightblue',\n stroke: 'dodgerblue',\n cursor: 'col-resize'\n },\n new goService.Binding('visible', '', function (ad) {\n return ad.adornedPart.isSubGraphExpanded;\n }).ofObject()\n ),\n $GO(\n goService.Shape, // for changing the breadth of a lane\n {\n alignment: goService.Spot.Bottom,\n desiredSize: new goService.Size(50, 7),\n fill: 'lightblue',\n stroke: 'dodgerblue',\n cursor: 'row-resize'\n },\n new goService.Binding('visible', '', function (ad) {\n return ad.adornedPart.isSubGraphExpanded;\n }).ofObject()\n )\n );\n\n return laneNodeTemplate;\n }\n\n function getLanePaletteNode() {\n const $GO = goService.GraphObject.make;\n\n const poolNodePaletteTemplate = $GO(goService.Group, 'Vertical');\n\n return poolNodePaletteTemplate;\n }\n}\n\nexport type BpmnLaneNodeServiceType = ReturnType;\n","/**\n * @ngdoc service\n * @name BpmnMenuService\n * @module flowingly.bpmn.modeler\n *\n * @description A service for creating BPMN context menus\n *\n * ## Notes\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/04c5ea8eba7bf8961358cbf6f93bb688a37854a4/src/Flowingly.Shared.Angular/flowingly.bpmn.modeler/flowingly.bpmn.menu.service.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\nangular\n .module('flowingly.bpmn.modeler')\n .factory('BpmnMenuService', BpmnMenuService);\n\nBpmnMenuService.$inject = ['$rootScope', '$timeout', 'goService'];\n\nfunction BpmnMenuService(\n $rootScope: angular.IRootScopeService,\n $timeout: angular.ITimeoutService,\n goService: GoJS\n) {\n const service = {\n getActivityNodeMenu: getActivityNodeMenu,\n getBoundaryEventMenu: getBoundaryEventMenu\n };\n return service;\n\n function getActivityNodeMenu() {\n const $GO = goService.GraphObject.make;\n\n const activityNodeMenu = $GO(\n goService.Adornment,\n 'Vertical',\n //$GO(\"ContextMenuButton\",\n // $GO(goService.TextBlock, \"Add Email Event\", { margin: 3 }),\n // { click: function(e, obj) { addActivityNodeBoundaryEvent(2, 5); } }),\n //$GO(\"ContextMenuButton\",\n // $GO(goService.TextBlock, \"Add Timer Event\", { margin: 3 }),\n // { click: function(e, obj) { addActivityNodeBoundaryEvent(3, 5); } }),\n //$GO(\"ContextMenuButton\",\n // $GO(goService.TextBlock, \"Add Escalation Event\", { margin: 3 }),\n // { click: function(e, obj) { addActivityNodeBoundaryEvent(4, 5); } }),\n //$GO(\"ContextMenuButton\",\n // $GO(goService.TextBlock, \"Add Error Event\", { margin: 3 }),\n // { click: function(e, obj) { addActivityNodeBoundaryEvent(7, 5); } }),\n //$GO(\"ContextMenuButton\",\n // $GO(goService.TextBlock, \"Add Signal Event\", { margin: 3 }),\n // { click: function(e, obj) { addActivityNodeBoundaryEvent(10, 5); } }),\n //$GO(\"ContextMenuButton\",\n // $GO(goService.TextBlock, \"Add N-I Escalation Event\", { margin: 3 }),\n // { click: function(e, obj) { addActivityNodeBoundaryEvent(4, 6); } }),\n $GO(\n 'ContextMenuButton',\n $GO(goService.TextBlock, 'Rename', { margin: 3 }),\n {\n click: function (e, obj) {\n issueCommand('rename', obj.part.data);\n }\n }\n )\n );\n\n return activityNodeMenu;\n }\n\n function getBoundaryEventMenu() {\n const $GO = goService.GraphObject.make;\n const boundaryEventMenu = // context menu for each boundaryEvent on Activity node\n $GO(\n goService.Adornment,\n 'Vertical',\n $GO(\n 'ContextMenuButton',\n $GO(goService.TextBlock, 'Remove event'),\n // in the click event handler, the obj.part is the Adornment; its adornedObject is the port\n {\n click: function (e, obj) {\n issueCommand('emoveActivityNodeBoundary', obj.part.adornedObject);\n }\n }\n )\n );\n return boundaryEventMenu;\n }\n\n /// PRIVATE ///////////////////////////////////////////////////////////////////////\n function issueCommand(type, data) {\n //timeout is required to avoid $digest already in progress issues\n $timeout(function () {\n // TODO: review use of $broadcast\n $rootScope.$broadcast('go.event', { type: 'rename', data: data });\n }, 0);\n }\n}\n\nexport type BpmnMenuServiceType = ReturnType;\n","/**\n * @ngdoc module\n * @name flowingly.bpmn.modeler\n * @module flowingly.bpmn.modeler\n * @requires flowingly.adapters\n * @description Contains services and directives for wrapping GoJS and implementing the GoJS BPMN editor found here\n * http://gojs.net/latest/extensions/BPMN.html\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/deaa3e49cef09006e53d6351564e8e4ba65c1f62/src/Flowingly.Shared.Angular/flowingly.bpmn.modeler/flowingly.bpmn.module.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\nangular.module('flowingly.bpmn.modeler', ['flowingly.adapters']);\n","/**\n * @ngdoc directive\n * @name goBpmnOverview\n * @module flowingly.modeler.directives\n * @description A directive that represents a GoJS overview.\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/deaa3e49cef09006e53d6351564e8e4ba65c1f62/src/Flowingly.Shared.Angular/flowingly.bpmn.modeler/flowingly.bpmn.overview.directive.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\nimport { BpmnModeler } from './@types/services';\n\nangular.module('flowingly.bpmn.modeler').directive('goBpmnOverview', [\n 'goService',\n 'BpmnDiagramService',\n function (\n goService: GoJS,\n BpmnDiagramService: BpmnModeler.BpmnDiagramService\n ) {\n return {\n restrict: 'E',\n template: '
',\n replace: true,\n scope: { diagram: '&goDiagram' },\n link: function (scope, element, attrs) {\n const $GO = goService.GraphObject.make;\n\n //Get the GoJS diagram that is displaying the main diagram\n const diagram = BpmnDiagramService.getDiagram('main');\n\n //------------------------------------------the overview Diagram----------------------------------------------\n\n if (diagram != undefined) {\n $GO(goService.Overview, element[0], { observed: diagram });\n }\n\n //------------------------------------------end Diagram-------------------------------------------------------\n }\n };\n }\n]);\n","/**\n * @ngdoc directive\n * @name goBpmnPalette\n * @module flowingly.modeler.directives\n * @description A directive that represents a GoJS BMPN palette.\n * @usage\n * ```\n \n * ```\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/4ab0b7597264c5c63831f8c92c0455197ccf689a/src/Flowingly.Shared.Angular/flowingly.bpmn.modeler/flowingly.bpmn.palette.directive.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\nimport { BpmnModeler } from './@types/services';\n\nangular.module('flowingly.bpmn.modeler').directive('goBpmnPalette', [\n 'goService',\n 'BpmnService',\n function (goService: GoJS, BpmnService: BpmnModeler.BpmnService) {\n return {\n restrict: 'E',\n template: '
',\n replace: true,\n scope: { model: '=goModel' },\n link: function (scope, element, attrs) {\n const $GO = goService.GraphObject.make;\n const container = angular.element(element[0]);\n\n //------------------------------------------Helpers ----------------------------------------\n\n /// Orders palette items by their key\n function keyCompare(a, b) {\n const at = a.data.key;\n const bt = b.data.key;\n if (at < bt) return -1;\n if (at > bt) return 1;\n return 0;\n }\n\n const PALETTE_MAX_HEIGHT = 865; // grow up to this height\n const PALETTE_MIN_HEIGHT = 665; // shrink up to this height\n const PALETTE_SPACING_MAX = 30;\n const PALETTE_SPACING_MIN = 10;\n /**\n * Returns the spacing between icons which is between 10 and 30. The size is proportional to the\n * height of the window, but it is calculated to be between the PALETTE_MIN_HEIGHT and PALETTE_MAX_HEIGHT meaning\n * if the height is on or below 665 it is calculated as 0% and if the height is on or above 865 it is\n * calculated is 100%\n *\n * @returns {number} a ratioed number between 10 and 30\n */\n function getPaletteSpacing(diamgramHeight) {\n const ratio =\n (diamgramHeight - PALETTE_MIN_HEIGHT) /\n (PALETTE_MAX_HEIGHT - PALETTE_MIN_HEIGHT);\n const spacing =\n ratio * (PALETTE_SPACING_MAX - PALETTE_SPACING_MIN) +\n PALETTE_SPACING_MIN;\n if (PALETTE_SPACING_MIN >= spacing) {\n return new goService.Size(0, PALETTE_SPACING_MIN);\n } else if (PALETTE_SPACING_MAX <= spacing) {\n return new goService.Size(0, PALETTE_SPACING_MAX);\n } else {\n return new goService.Size(0, spacing);\n }\n }\n\n //------------------------------------------the main Diagram----------------------------------------------\n const diagram =\n // create a Diagram for the given HTML DIV element (we are using a direct reference)\n $GO(goService.Palette, element[0], {\n //maybe we should pass this into directive?\n nodeTemplateMap: BpmnService.getPaletteNodeTemplateMap(),\n groupTemplateMap: BpmnService.getPaletteGroupTemplateMap(),\n layout: $GO(goService.GridLayout, {\n //spacing: getPaletteSpacing(),\n wrappingColumn: 1, //this forces the palettes to form a single column\n comparer: keyCompare\n })\n });\n\n diagram.addDiagramListener('ViewportBoundsChanged', function (e) {\n e.diagram.layout.spacing = getPaletteSpacing(container.height());\n });\n\n if (/Edge/.test(navigator.userAgent)) {\n diagram.animationManager.isEnabled = false;\n }\n //------------------------------------------end Diagram-------------------------------------------------------\n\n // notice when the value of \"model\" changes: update the Diagram.model\n scope.$watch('model', function (newmodel) {\n const oldmodel = diagram.model;\n if (oldmodel !== newmodel) {\n diagram.model = newmodel;\n }\n });\n }\n };\n }\n]);\n","/**\n * @ngdoc service\n * @name BpmnPartsFactory\n * @module flowingly.bpmn.modeler\n *\n * @description A service for creating frequently used GoJS BPMN parts\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/3d6860509d68b26fa20076f845bef9c0e6533309/src/Flowingly.Shared.Angular/flowingly.bpmn.modeler/flowingly.bpmn.parts.factory.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\nimport { BpmnModeler } from './@types/services';\n\nangular\n .module('flowingly.bpmn.modeler')\n .factory('BpmnPartsFactory', bpmnPartsFactory);\n\nbpmnPartsFactory.$inject = ['goService', 'BPMN_CONSTANTS', 'BpmnCommonService'];\n\nfunction bpmnPartsFactory(\n goService: GoJS,\n BPMN_CONSTANTS: BpmnModeler.BpmnConstants,\n BpmnCommonService: BpmnModeler.BpmnCommonService\n) {\n const $GO = goService.GraphObject.make;\n\n const service = {\n getTextBlock,\n paletteIcon\n };\n return service;\n\n /**\n * This wrapper centers the gojs node and adds the text field to it.\n *\n * @param {any} goJsNode\n */\n function paletteIcon(goJsNode) {\n return $GO(\n goService.Part,\n goService.Panel.Vertical,\n {\n width: BPMN_CONSTANTS.palette.innerWidth,\n selectionAdorned: false\n },\n goJsNode,\n getTextBlock('text', undefined, BPMN_CONSTANTS.PaletteTextColour, 'move')\n );\n }\n\n function getTextBlock(\n bindingName,\n makeTwoWay,\n color,\n cursor,\n font?,\n editable?,\n background?\n ) {\n ///\n /// bindingName = name of element to bind to\n /// makeTwoWay = make this a two way binding\n ///\n const binding = makeTwoWay\n ? new goService.Binding(bindingName).makeTwoWay()\n : new goService.Binding(bindingName);\n const textColor = color ? color : BPMN_CONSTANTS.TextColour;\n const textEditable = editable ? editable : BPMN_CONSTANTS.MakeNodesEditable;\n\n const options = {\n alignment: new goService.Spot(0.5, 0, 0, 3),\n editable: textEditable,\n textEditor: BpmnCommonService.getTextEditingTool(),\n textAlign: 'center',\n stroke: textColor,\n minSize: new goService.Size(BPMN_CONSTANTS.palette.innerWidth, 17),\n maxSize: new goService.Size(\n BPMN_CONSTANTS.palette.textBlock.innerWidth,\n 9999999\n ),\n wrap: goService.TextBlock.WrapFit,\n font: font ? font : 'normal 12px \"Open Sans\"',\n margin: new goService.Margin(0, 0, 2, 0),\n background: background ?? 'transparent'\n };\n if (cursor) {\n (options as any).cursor = cursor;\n }\n return $GO(goService.TextBlock, options, binding);\n }\n\n /// PRIVATE ///////////////////////////////////////////////////////////////////////\n}\n\nexport type BpmnPartsType = ReturnType;\n","/**\n * @ngdoc service\n * @name BpmnPoolNodeService\n * @module flowingly.bpmn.modeler\n *\n * @description A service for creating BPMN Pool nodes.\n *\n * ## Notes\n * There are two types of nodes (node/palette node). The first is what gets drawn on the canvas;\n * the second what gets drawni the palette and dragged on to the canvas.\n *\n * ### Model Usage\n * { key: \"501\", \"text\": \"Pool 1\", \"isGroup\": \"true\", \"category\":\"Pool\" },\n *\n * ###API\n * * getNode - Get a pool node defined by the (optional) options\n * * getPaletteNode - Get a pool node palette node defined by the (optional) options\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/2a45f5a1603c5731704b21be8fc3199711034ac7/src/Flowingly.Shared.Angular/flowingly.bpmn.modeler/flowingly.bpmn.pool.service.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\nimport { BpmnModeler } from './@types/services';\n\nangular\n .module('flowingly.bpmn.modeler')\n .factory('BpmnPoolNodeService', BpmnPoolNodeService);\n\nBpmnPoolNodeService.$inject = [\n 'goService',\n 'BpmnCommonService',\n 'BPMN_CONSTANTS',\n '$window'\n];\n\n// ReSharper disable once InconsistentNaming\nfunction BpmnPoolNodeService(\n goService: GoJS,\n BpmnCommonService: BpmnModeler.BpmnCommonService,\n BPMN_CONSTANTS: BpmnModeler.BpmnConstants,\n $window: angular.IWindowService\n) {\n const defaults = {\n GatewayNodeSize: BPMN_CONSTANTS.GatewayNodeSize,\n EventNodePaletteStrokeWidth: BPMN_CONSTANTS.EventNodePaletteStrokeWidth,\n GatewayNodeStroke: '#A3A3A3',\n FillColour: 'rgb(238,238,238)'\n };\n\n // swimlanes\n const MINLENGTH = 400; // this controls the minimum length of any swimlane\n const MINBREADTH = 20; // this controls the minimum breadth of any non-collapsed swimlane\n\n const service = {\n getNode: getNode,\n getPaletteNode: getPaletteNode\n };\n return service;\n\n /// PUBLIC ///////////////////////////////////////////////////////////////////////\n\n function getNode(options) {\n //angular.extend(defaults, options); //override defaults, if options supplied\n\n return getPoolNodeTemplate();\n }\n\n ///\n /// Get a Pool node defined by the (optional) options\n /// If options is not supplied, default values will be used\n ///\n function getPaletteNode(options) {\n //angular.extend(defaults, options); //override defaults, if options supplied\n\n return getPoolPaletteNode();\n }\n\n //private functions\n\n function groupStyle() {\n // common settings for both Lane and Pool Groups\n return [\n {\n layerName: 'Background', // all pools and lanes are always behind all nodes and links\n background: 'transparent', // can grab anywhere in bounds\n movable: true, // allows users to re-order by dragging\n copyable: false, // can't copy lanes or pools\n avoidable: false // don't impede AvoidsNodes routed Links\n },\n new goService.Binding(\n 'location',\n 'loc',\n goService.Point.parse\n ).makeTwoWay(goService.Point.stringify)\n ];\n }\n\n // define a custom grid layout that makes sure the length of each lane is the same\n // and that each lane is broad enough to hold its subgraph\n function poolLayout() {\n goService.GridLayout.call(this);\n this.cellSize = new goService.Size(1, 1);\n this.wrappingColumn = 1;\n this.wrappingWidth = Infinity;\n this.isRealtime = false; // don't continuously layout while dragging\n this.alignment = goService.GridLayout.Position;\n // This sorts based on the location of each Group.\n // This is useful when Groups can be moved up and down in order to change their order.\n this.comparer = function (a, b) {\n const ay = a.location.y;\n const by = b.location.y;\n if (isNaN(ay) || isNaN(by)) return 0;\n if (ay < by) return -1;\n if (ay > by) return 1;\n return 0;\n };\n }\n\n // compute the minimum size of a Pool Group needed to hold all of the Lane Groups\n function computeMinPoolSize(pool) {\n // assert(pool instanceof goService.Group && pool.category === \"Pool\");\n let len = MINLENGTH;\n pool.memberParts.each(function (lane) {\n // pools ought to only contain lanes, not plain Nodes\n if (!(lane instanceof goService.Group)) return;\n const holder = lane.placeholder;\n if (holder !== null) {\n const sz = holder.actualBounds;\n len = Math.max(len, sz.width);\n }\n });\n return new goService.Size(len, NaN);\n }\n\n // compute the minimum size for a particular Lane Group\n function computeLaneSize(lane) {\n // assert(lane instanceof goService.Group && lane.category !== \"Pool\");\n const sz = computeMinLaneSize(lane);\n if (lane.isSubGraphExpanded) {\n const holder = lane.placeholder;\n if (holder !== null) {\n const hsz = holder.actualBounds;\n sz.height = Math.max(sz.height, hsz.height);\n }\n }\n // minimum breadth needs to be big enough to hold the header\n const hdr = lane.findObject('HEADER');\n if (hdr !== null) sz.height = Math.max(sz.height, hdr.actualBounds.height);\n return sz;\n }\n\n // determine the minimum size of a Lane Group, even if collapsed\n function computeMinLaneSize(lane) {\n if (!lane.isSubGraphExpanded) return new goService.Size(MINLENGTH, 1);\n return new goService.Size(MINLENGTH, MINBREADTH);\n }\n\n function getPoolLayout() {\n goService.Diagram.inherit(poolLayout, goService.GridLayout);\n\n /** @override */\n poolLayout.prototype.doLayout = function (coll) {\n const diagram = $window.mainDiagram;\n if (diagram === null || diagram === undefined) return;\n diagram.startTransaction('poolLayout');\n const pool = this.group;\n if (pool !== null && pool.category === 'Pool') {\n // make sure all of the Group Shapes are big enough\n const minsize = computeMinPoolSize(pool);\n pool.memberParts.each(function (lane) {\n if (!(lane instanceof goService.Group)) return;\n if (lane.category !== 'Pool') {\n const shape = lane.resizeObject;\n if (shape !== null) {\n // change the desiredSize to be big enough in both directions\n const sz = computeLaneSize(lane);\n shape.width = isNaN(shape.width)\n ? minsize.width\n : Math.max(shape.width, minsize.width);\n shape.height = !isNaN(shape.height)\n ? Math.max(shape.height, sz.height)\n : sz.height;\n const cell = lane.resizeCellSize;\n if (!isNaN(shape.width) && !isNaN(cell.width) && cell.width > 0)\n shape.width = Math.ceil(shape.width / cell.width) * cell.width;\n if (\n !isNaN(shape.height) &&\n !isNaN(cell.height) &&\n cell.height > 0\n )\n shape.height =\n Math.ceil(shape.height / cell.height) * cell.height;\n }\n }\n });\n }\n // now do all of the usual stuff, according to whatever properties have been set on this GridLayout\n goService.GridLayout.prototype.doLayout.call(this, coll);\n diagram.commitTransaction('poolLayout');\n };\n\n return new poolLayout();\n }\n\n function getPoolNodeTemplate() {\n const $GO = goService.GraphObject.make;\n\n const poolNodeTemplate = $GO(\n goService.Group,\n 'Auto',\n groupStyle(),\n {\n // use a simple layout that ignores links to stack the \"lane\" Groups on top of each other\n // no space between lanes\n layout: $GO(getPoolLayout, { spacing: new goService.Size(0, 0) })\n },\n new goService.Binding(\n 'location',\n 'loc',\n goService.Point.parse\n ).makeTwoWay(goService.Point.stringify),\n { cursor: 'move' },\n $GO(\n goService.Shape,\n { fill: 'white', name: 'outline' },\n new goService.Binding('fill', 'color')\n ),\n $GO(\n goService.Panel,\n 'Table',\n { defaultColumnSeparatorStroke: 'black' },\n $GO(\n goService.Panel,\n 'Horizontal',\n { column: 0, angle: 270 },\n $GO(\n goService.TextBlock,\n {\n editable: true,\n textEditor: BpmnCommonService.getTextEditingTool(),\n margin: new goService.Margin(5, 0, 5, 0)\n }, // margin matches private process (black box pool)\n new goService.Binding('text').makeTwoWay(),\n new goService.Binding('font', 'fontSize', function (s) {\n return 'normal ' + s + 'px sans-serif';\n })\n )\n ),\n $GO(goService.Placeholder, { background: 'darkgray', column: 1 })\n ),\n { click: BpmnCommonService.nodeClickHandler }\n );\n return poolNodeTemplate;\n }\n\n function getPoolPaletteNode() {\n const $GO = goService.GraphObject.make;\n\n const poolNodePaletteTemplate = $GO(\n goService.Group,\n 'Vertical',\n {\n isSubGraphExpanded: false,\n selectionAdorned: false\n },\n $GO(\n goService.Panel,\n 'Vertical',\n {\n width: BPMN_CONSTANTS.palette.innerWidth,\n alignment: goService.Spot.Center\n },\n\n $GO(goService.Picture, {\n source: ASSETS_PATH + '/pool.svg',\n alignment: goService.Spot.Center,\n width: !BpmnCommonService.isInternetExplorer\n ? BPMN_CONSTANTS.palette.icon.innerWidth\n : BPMN_CONSTANTS.palette.iconIE.pool.innerWidth,\n height: !BpmnCommonService.isInternetExplorer\n ? BPMN_CONSTANTS.palette.icon.innerHeight\n : BPMN_CONSTANTS.palette.iconIE.pool.innerHeight,\n scale: !BpmnCommonService.isInternetExplorer\n ? 1\n : BPMN_CONSTANTS.palette.iconIE.pool.scale\n }),\n $GO(\n goService.TextBlock,\n {\n alignment: new goService.Spot(0.55, 1), // the center looks a bit off so we manually do this\n margin: 2,\n stroke: BPMN_CONSTANTS.PaletteTextColour,\n font: 'normal 11px \"Open Sans\"'\n },\n new goService.Binding('text')\n )\n )\n );\n\n return poolNodePaletteTemplate;\n }\n}\n\nexport type BpmnPoolNodeServiceType = ReturnType;\n","import angular from 'angular';\nimport { BpmnModeler } from './@types/services';\nimport { Services } from '@Shared.Angular/@types/services';\n///\n/// Facade service for creating GoJS diagrams using BPMN objects\n///\n\nangular.module('flowingly.bpmn.modeler').factory('BpmnService', BpmnService);\n\nBpmnService.$inject = [\n 'goService',\n 'BpmnGatewayNodeService',\n 'BPMN_CONSTANTS',\n 'BpmnCommonService',\n 'BpmnCommandService',\n 'BpmnEventNodeService',\n 'BpmnActivityNodeService',\n 'BpmnPoolNodeService',\n 'BpmnLaneNodeService',\n 'BpmnComponentNodeService',\n 'flowinglyConstants'\n];\n\nfunction BpmnService(\n goService: GoJS,\n BpmnGatewayNodeService: BpmnModeler.BpmnGatewayNodeService,\n BPMN_CONSTANTS: BpmnModeler.BpmnConstants,\n BpmnCommonService: BpmnModeler.BpmnCommonService,\n BpmnCommandService: BpmnModeler.BpmnCommandService,\n BpmnEventNodeService: BpmnModeler.BpmnEventNodeService,\n BpmnActivityNodeService: BpmnModeler.BpmnActivityNodeService,\n BpmnPoolNodeService: BpmnModeler.BpmnPoolNodeService,\n BpmnLaneNodeService: BpmnModeler.BpmnLaneNodeService,\n BpmnComponentNodeService: BpmnModeler.BpmnComponentNodeService,\n flowinglyConstants: Services.FlowinglyConstants\n) {\n initialise();\n\n const service = {\n getBpmnLinkingTool: getBpmnLinkingTool,\n getDefaultActivityCardModel: getDefaultActivityCardModel,\n getLinkTemplateMap: getLinkTemplateMap,\n getNodeTemplateMap: getNodeTemplateMap,\n getPaletteNodeTemplateMap: getPaletteNodeTemplateMap,\n getGroupTemplateMap: getGroupTemplateMap,\n getPaletteGroupTemplateMap: getPaletteGroupTemplateMap,\n getDrawCommandHandler: getDrawCommandHandler\n };\n return service;\n\n /// PUBLIC ///////////////////////////////////////////////////////////////////////\n\n function getBpmnLinkingTool() {\n return BpmnCommonService.getBpmnLinkingTool();\n }\n\n ///\n /// Get default state of activity node (model)\n ///\n function getDefaultActivityCardModel() {\n return BpmnActivityNodeService.getDefaultActivityCardModel();\n }\n\n ///\n /// Get a node template map for assigning to a goModel Diagram (within sample.diagram.directive.js)\n ///\n function getNodeTemplateMap() {\n const nodeTemplateMap = new goService.Map('string', goService.Node);\n nodeTemplateMap.add(\n 'gateway',\n getNode('gateway', { GatewayNodeSize: 100 })\n );\n nodeTemplateMap.add(\n flowinglyConstants.nodeCategory.EXCLUSIVE_GATEWAY,\n getNode(flowinglyConstants.nodeCategory.EXCLUSIVE_GATEWAY, {\n GatewayNodeSize: 100\n })\n );\n nodeTemplateMap.add(\n flowinglyConstants.nodeCategory.DIVERGE_GATEWAY,\n getNode(flowinglyConstants.nodeCategory.DIVERGE_GATEWAY, {\n GatewayNodeSize: 100\n })\n );\n nodeTemplateMap.add(\n flowinglyConstants.nodeCategory.CONVERGE_GATEWAY,\n getNode(flowinglyConstants.nodeCategory.CONVERGE_GATEWAY, {\n GatewayNodeSize: 100\n })\n );\n nodeTemplateMap.add('event', getNode('event'));\n nodeTemplateMap.add('activity', getNode('activity'));\n nodeTemplateMap.add('component', getNode('component'));\n\n return nodeTemplateMap;\n }\n ///\n /// Gets the group nodes template map for assigning to the 'groupTemplateMap' property\n /// in the go diagram.\n ///\n function getGroupTemplateMap() {\n const groupTemplateMap = new goService.Map('string', goService.Group);\n groupTemplateMap.add('Pool', getNode('Pool'));\n groupTemplateMap.add('Lane', getNode('Lane'));\n return groupTemplateMap;\n }\n\n ///\n /// Get a link template map. This describes how the links look when loaded.\n ///\n function getLinkTemplateMap() {\n const linkTemplateMap = new goService.Map('string', goService.Link);\n linkTemplateMap.add('', getLinkTemplate()); // default\n return linkTemplateMap;\n }\n\n ///\n /// Get a node template map for assigning to a goModel Palette (within sample.palette.directive.js)\n ///\n function getPaletteNodeTemplateMap() {\n const nodeTemplateMap = new goService.Map();\n\n nodeTemplateMap.add('event', getPaletteNode('event'));\n nodeTemplateMap.add('activity', getPaletteNode('activity'));\n\n nodeTemplateMap.add(\n flowinglyConstants.nodeCategory.EXCLUSIVE_GATEWAY,\n getPaletteNode(flowinglyConstants.nodeCategory.EXCLUSIVE_GATEWAY)\n );\n nodeTemplateMap.add(\n flowinglyConstants.nodeCategory.DIVERGE_GATEWAY,\n getPaletteNode(flowinglyConstants.nodeCategory.DIVERGE_GATEWAY)\n );\n nodeTemplateMap.add(\n flowinglyConstants.nodeCategory.CONVERGE_GATEWAY,\n getPaletteNode(flowinglyConstants.nodeCategory.CONVERGE_GATEWAY)\n );\n\n nodeTemplateMap.add('component', getPaletteNode('component'));\n return nodeTemplateMap;\n }\n\n ///\n /// Get a group template map for assigning to a goModel Palette (within sample.palette.directive.js)\n ///\n function getPaletteGroupTemplateMap() {\n const palGroupTemplateMap = new goService.Map();\n ////palGroupTemplateMap.add(\"subprocess\", getPaletteNode(\"subprocess\"));\n palGroupTemplateMap.add('Pool', getPaletteNode('Pool'));\n //palGroupTemplateMap.add(\"Lane\", getPaletteNode(\"Lane\"));\n return palGroupTemplateMap;\n }\n\n ///\n /// Get a custom command handler for draw events; for assigning to a goModel Diagram (within sample.diagram.directive.js)\n ///\n function getDrawCommandHandler() {\n return BpmnCommandService.getDrawCommandHandler();\n }\n\n /// PRIVATE ///////////////////////////////////////////////////////////////////////\n function initialise() {\n createEmptyShape();\n }\n\n function getLinkTemplate() {\n return BpmnCommonService.getLinkTemplate();\n }\n\n /// Get a node of the specified category, defined by the (optional) options\n /// If options is not supplied, default values will be used\n function getNode(category, options?) {\n switch (category) {\n case BPMN_CONSTANTS.GATEWAY: // a generic gateway\n return BpmnGatewayNodeService.getNode(category, options);\n\n case flowinglyConstants.nodeCategory.EXCLUSIVE_GATEWAY:\n return BpmnGatewayNodeService.getNode(category, options);\n\n case flowinglyConstants.nodeCategory.DIVERGE_GATEWAY:\n return BpmnGatewayNodeService.getNode(category, options);\n\n case flowinglyConstants.nodeCategory.CONVERGE_GATEWAY:\n return BpmnGatewayNodeService.getNode(category, options);\n\n case 'event':\n return BpmnEventNodeService.getNode(options);\n\n case 'activity':\n return BpmnActivityNodeService.getNode(options);\n\n case 'Pool':\n return BpmnPoolNodeService.getNode(options);\n\n case 'Lane':\n return BpmnLaneNodeService.getNode(options);\n\n case 'component':\n return BpmnComponentNodeService.getNode(options);\n }\n }\n\n /// Get a node of the specified category, defined by the (optional) options\n /// If options is not supplied, default values will be used\n function getPaletteNode(category, options?) {\n switch (category) {\n case 'gateway': //palette only has a generic node\n return BpmnGatewayNodeService.getPaletteNode(options, true);\n\n case flowinglyConstants.nodeCategory.EXCLUSIVE_GATEWAY:\n return BpmnGatewayNodeService.getPaletteNode(options, true);\n\n case flowinglyConstants.nodeCategory.DIVERGE_GATEWAY:\n return BpmnGatewayNodeService.getPaletteNode(options, false, false);\n\n case flowinglyConstants.nodeCategory.CONVERGE_GATEWAY:\n return BpmnGatewayNodeService.getPaletteNode(options, false, true);\n\n case 'event':\n return BpmnEventNodeService.getPaletteNode(options);\n\n case 'activity':\n return BpmnActivityNodeService.getPaletteNode(options);\n\n case 'Pool':\n return BpmnPoolNodeService.getPaletteNode(options);\n\n case 'Lane':\n return BpmnLaneNodeService.getPaletteNode(options);\n\n case 'component':\n return BpmnComponentNodeService.getPaletteNode(options);\n }\n }\n\n function createEmptyShape() {\n goService.Shape.defineFigureGenerator('Empty', function (shape, w, h) {\n return new goService.Geometry();\n });\n }\n}\n\nexport type BpmnServiceType = ReturnType;\n","/**\n * @ngdoc component\n * @name addComment\n * @module flowingly.components\n * @description This is a component for adding a new comment / feedback to flow / flow model\n *\n * Input attributes\n * commentTargetId - the id of comment target\n *\n * Output attributes\n * onAddComment - callback when add a new comment\n *\n * @usage\n * ```\n * \n * ```\n */\n\nimport angular, { IScope, ITimeoutService } from 'angular';\nimport { IComment, CommentType } from '../../interfaces/comment.interface';\nimport { ICommentMention } from '../../interfaces/comment-mention.interface';\nimport { FlowinglyMentionService } from '@Shared.Angular/flowingly.services/flowingly.mention.service';\nimport { CommentApiService } from '@Shared.Angular/flowingly.services/comment.api.service';\nimport { Services } from '@Shared.Angular/@types/services';\nimport { ModelerActionEvent } from '../../../../Flowingly.Modeler.Web/Client/@types/modelerActionEvent';\nimport CommentTargetType from '@Shared.Angular/@types/core/contracts/constants/commentTargetType';\n\nexport class AddCommentComponentController {\n static $inject = [\n '$timeout',\n '$scope',\n 'flowinglyMentionService',\n 'commentApiService',\n 'notificationService',\n 'sessionService',\n 'validationService',\n 'fileService',\n 'pubsubService',\n 'tokenService'\n ];\n public static COMMENT_RESET_EVENT = 'COMMENT_RESET_EVENT';\n public commentTargetId: string;\n public commentTargetType: string;\n public flowOwnerOnly: boolean;\n public addCommentHeader: string;\n public userId: string;\n public loadComments: () => void;\n public onAddComment: (comment) => void;\n public debounceInterval = 100;\n private commentContent: string;\n private comment: IComment;\n private isAddButtonDisabled: boolean;\n public fileList: any[] = [];\n public commentTargetTypeFromReact: string;\n public isPublishRequestSchema: boolean;\n\n constructor(\n private $timeout: ITimeoutService,\n private $scope: IScope,\n private flowinglyMentionService: FlowinglyMentionService,\n private commentApiService: CommentApiService,\n private notificationService: Services.NotificationService,\n private sessionService: Services.SessionService,\n private validationService: Services.ValidationService,\n private fileService: Services.FileService,\n private pubsubService: Services.PubSubService,\n private tokenService: Services.TokenService\n ) {\n if (\n this.commentTargetType === CommentTargetType.FLOW.toString() ||\n this.commentTargetType === CommentTargetType.STEP_TASK.toString()\n ) {\n this.addCommentHeader = 'Add a comment';\n } else {\n this.addCommentHeader = 'Add feedback';\n }\n\n this.flowOwnerOnly = this.flowOwnerOnly || false;\n }\n\n $onInit() {\n this.pubsubService.subscribe(\n 'SIGNALR_RUNNER_COMPLETE_STEP',\n () => {\n this.removeAllFiles();\n },\n 'add-comment.component'\n );\n\n this.pubsubService.subscribe(\n 'FILEUPLOAD_UPLOAD_STARTED',\n () => {\n this.disableAddButton();\n },\n 'add-comment.component'\n );\n\n this.pubsubService.subscribe(\n 'FILEUPLOAD_UPLOAD_COMPLETED',\n () => {\n this.enableAddButton();\n },\n 'add-comment.component'\n );\n\n this.pubsubService.subscribe(\n 'FILEUPLOAD_UPLOAD_FAILED',\n () => {\n this.enableAddButton();\n },\n 'add-comment.component'\n );\n }\n\n addComment(): void {\n this.$timeout(() => {\n const mentions: ICommentMention[] =\n this.flowinglyMentionService.extractMentionsFromCommentText(\n this.commentContent || ''\n );\n const commentContents: string =\n this.flowinglyMentionService.transformMentionDisplayToStore(\n this.commentContent || ''\n );\n let confirmText, warningText;\n\n if (\n this.commentTargetType === CommentTargetType.FLOW.toString() ||\n this.commentTargetType === CommentTargetType.STEP_TASK.toString()\n ) {\n confirmText = 'Comment added';\n warningText = 'Cannot add empty comment';\n } else {\n confirmText = 'Feedback added';\n warningText = 'Cannot add empty feedback';\n }\n\n if (this.flowinglyMentionService.trimSpaces(commentContents) === '') {\n this.notificationService.showWarningToast(warningText);\n return;\n } else if (\n this.validationService.isXssVulnerableString(commentContents)\n ) {\n this.notificationService.showErrorToast(\n 'The comment field contains invalid text. Please remove any markup or script from the field.'\n );\n return;\n }\n this.comment = {\n comment: commentContents,\n mentions: mentions,\n fileIds: this.fileList.map((f) => f.id),\n userId: this.sessionService.getUser().id,\n flowOwnerOnly: this.flowOwnerOnly,\n commentType: CommentType.UserComment\n };\n\n this.commentApiService\n .addFlowComment(\n parseInt(\n this.commentTargetTypeFromReact == null\n ? this.commentTargetType\n : this.commentTargetTypeFromReact\n ),\n this.commentTargetId,\n this.comment,\n this.isPublishRequestSchema\n )\n .then(() => {\n this.$scope.$broadcast(\n AddCommentComponentController.COMMENT_RESET_EVENT\n );\n\n // notify parent component of the new comment just added.\n // As data is not from backend, need manually fill some of the details\n const currentUser = this.sessionService.getUser();\n const newComment: IComment = {\n fullName: currentUser.fullName,\n avatarUrl: currentUser.avatarUrl,\n userId: currentUser.id,\n commentedByName: currentUser.fullName,\n momentCommented: 'A Few Seconds Ago',\n comment: commentContents,\n files: this.fileList,\n commentType: CommentType.UserComment\n };\n this.onAddComment({ comment: newComment });\n this.fileList = [];\n\n this.notificationService.showSuccessToast(confirmText);\n });\n }, this.debounceInterval);\n }\n\n closeComment(): void {\n this.pubsubService.publish(\n 'MODELER_ACTION_EVENT',\n ModelerActionEvent.TOGGLE_FEEDBACK_PANEL\n );\n }\n\n onFileUploaded(file) {\n this.fileList.push(file);\n }\n\n disableAddButton() {\n this.isAddButtonDisabled = true;\n }\n\n enableAddButton() {\n this.isAddButtonDisabled = false;\n }\n\n removeFile(index) {\n this.disableAddButton();\n const file = this.fileList.splice(index, 1)[0];\n const user = this.sessionService.getUser();\n this.fileService.setUser(user.id, this.tokenService.getTenant().id);\n this.fileService\n .removeFileForId(file.id)\n .then(() => {\n this.notificationService.showSuccessToast(file.filename + ' Removed');\n this.enableAddButton();\n })\n .catch(() => this.enableAddButton());\n }\n\n removeAllFiles() {\n if (!this.fileList || this.fileList.length === 0) return;\n\n const fileIds = this.fileList.map((f) => f.id);\n fileIds.forEach((id) => this.fileService.removeFileForId(id));\n\n this.fileList = [];\n }\n\n $onDestroy() {\n this.pubsubService.unsubscribeAll('add-comment.component');\n this.removeAllFiles();\n }\n}\n\nexport class AddCommentComponent implements angular.IComponentOptions {\n public bindings: Bindings;\n public templateUrl: string;\n\n /* TODO: 2 way binding of commentTargetType isn't working when in react compoenent. \n Adding a workaround until we re-write this in react or figure out why this commentTargetType bidning needs to be a 2 way binding\n it doesnt look like it needs to be but it breaks the component. Leaving this re-visit later */\n\n constructor() {\n this.bindings = {\n commentTargetId: '<',\n commentTargetType: '@',\n flowOwnerOnly: '<',\n onAddComment: '&',\n commentTargetTypeFromReact: '<',\n isPublishRequestSchema: '\n * ```\n */\n\nimport * as angular from 'angular';\n\nexport class CommentHistoryComponent implements ng.IComponentOptions {\n public bindings: any;\n public templateUrl: string;\n\n constructor() {\n this.bindings = {\n comment: '<',\n isFirstComment: '<',\n isLastComment: '<',\n isMobile: '<'\n };\n\n this.templateUrl = 'comment-history.tmpl.html';\n }\n}\n\nangular\n .module('flowingly.components')\n .component('commentHistory', new CommentHistoryComponent());\n","/**\n * @ngdoc directive\n * @name flowinglyComments\n * @module flowingly.components\n * @description This is a component for displaying the comments / feedback history and allow add new comment / feedback\n *\n * Input attributes\n * commentTargetId - the id for the comment target (e.g. flowId)\n * commentTargetType - the type of the comment target (e.g. flow, flowModel)\n * commentList - the comments object\n * isMobile - is that mobile view?\n *\n * @usage\n * ```\n * \n * ```\n */\n\nimport angular from 'angular';\nimport { IComment } from '../../interfaces/comment.interface';\n\nimport { Services } from '@Shared.Angular/@types/services';\nimport CommentTargetType from '@Shared.Angular/@types/core/contracts/constants/commentTargetType';\n\nclass CommentsComponentController implements angular.IController {\n public static $inject = [\n 'commentApiService',\n 'pubsubService',\n 'avatarService'\n ];\n\n public commentTargetId: string;\n public commentTargetType: CommentTargetType;\n public flowOwnerOnly: boolean;\n public scrollToCommentBottom: boolean;\n private commentList: IComment[];\n public onCommentAdded: (data) => void;\n public commentTargetTypeFromReact: string;\n public isPublishRequestSchema: boolean;\n\n public constructor(\n private commentApiService: Services.CommentApiService,\n private pubsubService: Services.PubSubService,\n private avatarService: Services.AvatarService\n ) {}\n\n $onInit() {\n this.scrollToCommentBottom = true;\n\n this.pubsubService.subscribe(\n 'CLIENT_USER_PROFILE_UPDATED',\n () => {\n if (this.commentList && this.commentList.length > 0) {\n for (let c of this.commentList) {\n c.avatarUrl = this.avatarService.getAvatarUrl(c.userId);\n }\n }\n },\n 'comments.component'\n );\n\n this.pubsubService.subscribe(\n 'SIGNALR_RUNNER_NEW_FLOW_COMMENT',\n (event, data) => {\n data = JSON.parse(data);\n\n if (this.commentTargetId === data.commentTargetId) {\n this.loadComments();\n }\n },\n 'comments.component'\n );\n\n this.pubsubService.subscribe(\n 'SIGNALR_RUNNER_NEW_STEP_TASK_COMMENT',\n (event, data) => {\n data = JSON.parse(data);\n\n if (this.commentTargetId === data.stepTaskId) {\n this.loadComments();\n }\n },\n 'comments.component'\n );\n }\n\n $onDestroy() {\n this.pubsubService.unsubscribeAll('comments.component');\n }\n\n public loadComments(): void {\n this.commentApiService\n .getFlowComments(\n this.commentTargetType,\n this.commentTargetId,\n false,\n this.isPublishRequestSchema\n )\n .then((data: IComment[]) => {\n this.commentList = data;\n });\n }\n\n onAddComment(comment: IComment): void {\n this.commentList = this.commentList || [];\n this.commentList.push(comment);\n this.scrollToCommentBottom = true;\n // update the comment count\n this.onCommentAdded({\n commentTargetId: this.commentTargetId,\n count: this.commentList.length\n });\n }\n}\n\nexport class CommentsComponent implements ng.IComponentOptions {\n public bindings: any;\n public templateUrl: string;\n /* TODO: 2 way binding of commentTargetType isn't working when in react compoenent. \n Adding a workaround until we re-write this in react or figure out why this commentTargetType bidning needs to be a 2 way binding\n it doesnt look like it needs to be but it breaks the component. Leaving this re-visit later */\n\n constructor() {\n this.bindings = {\n commentTargetId: '<',\n commentTargetType: '@',\n commentList: '<',\n isMobile: '<',\n flowOwnerOnly: '<',\n onCommentAdded: '&',\n commentTargetTypeFromReact: '<',\n isPublishRequestSchema: '', text: 'Not Equals' }\n];\n\nexport const NUMBER_OPERATION_OPTIONS: IOperationOption[] = [\n { value: null, text: EMPTY.name },\n { value: '=', text: 'Equals' },\n { value: '<>', text: 'Not Equals' },\n { value: '<', text: 'Less' },\n { value: '>', text: 'More' },\n { value: '<=', text: 'Less or Equal' },\n { value: '>=', text: 'More or Equal' }\n];\n\n// @TODO Remove at FLOW-4842\nexport interface ProxyInterface {\n name?: any;\n operation?: IOperationOption;\n value?: any;\n}\n\nexport function getActualValue(str: string) {\n return str != EMPTY.name ? str : null;\n}\n\nexport class CustomDatabaseConfigController implements angular.IController {\n public static $inject = [\n '$http',\n '$timeout',\n 'APP_CONFIG',\n 'customdbService',\n 'lodashService',\n '$q',\n 'flowinglyConstants',\n 'brandingService'\n ];\n\n // from bindings\n private field: any;\n private allFields: any;\n private onFieldChange: any;\n private decisionHelpUri: string;\n\n public constructor(\n private $http,\n private $timeout,\n private APP_CONFIG: Services.APP_CONFIG,\n private customdbService: Services.CustomdbService,\n private lodash,\n private $q,\n private flowinglyConstants: Services.FlowinglyConstants,\n private brandingService\n ) {\n this.databasesApiBaseUrl = this.APP_CONFIG.apiBaseUrl + 'customdatabase';\n this.moveProxyToNgModel = this.moveProxyToNgModel.bind(this);\n this.moveNgModelToProxy = this.moveNgModelToProxy.bind(this);\n this.tableColumnsNameConstants = this.flowinglyConstants.tableColumnsName;\n this.decisionHelpUri = this.brandingService.getBrandedHelpUri(\n 'https://help.flowingly.net/en/articles/2056865-decisions'\n );\n }\n\n private allDbs = [];\n private displayValueOptions = [];\n private valueOptions = [];\n private operationOptions = NUMBER_OPERATION_OPTIONS;\n private databasesApiBaseUrl: string;\n private copyOfField: any;\n private isReady: boolean;\n private shouldShowFilters = true; // used to \"trick the UI\" to perform a a rerender since theres an issue with the var swapping\n private tableColumnsNameConstants;\n\n private proxy: ProxyInterface = this.getEmptyProxy();\n\n private getEmptyProxy(): ProxyInterface {\n return { name: EMPTY, operation: {}, value: {} };\n }\n\n public moveProxyToNgModel() {\n if (this.proxy.name) {\n const col = this.proxy.name.name;\n\n this.field.dbDataSource.filters[0].column = getActualValue(col);\n this.onFilterColumnChange();\n }\n\n if (this.proxy.operation) {\n this.field.dbDataSource.filters[0].operation = getActualValue(\n this.proxy.operation.value\n );\n }\n\n if (this.proxy.value) {\n this.field.dbDataSource.filters[0].value = getActualValue(\n this.proxy.value.name\n );\n }\n\n this.submitFieldChange();\n }\n\n /**\n * At the moment, our usage of kendo is match by exact reference, which is why we are fetching the\n * actual object first, before assigning it to the proxy. Complicated yes, but theres a reason why\n * it's being done this way.\n */\n public moveNgModelToProxy() {\n const colName = this.lodash.get(\n this.field,\n 'dbDataSource.filters[0].column',\n EMPTY.name\n );\n const colData = (this.displayValueOptions as any).find(\n (v) => v.name === colName\n );\n const colType = this.lodash.get(colData, 'dataType');\n\n // move to proxy.name\n {\n this.proxy.name = colData == null ? EMPTY : colData;\n }\n\n // move to proxy.operation\n {\n const operation = this.lodash.get(\n this.field,\n 'dbDataSource.filters[0].operation'\n );\n const operations =\n colType == 'text' ? TEXT_OPERATION_OPTIONS : NUMBER_OPERATION_OPTIONS;\n this.proxy.operation = (operations as any).find(\n (o) => o.value == operation\n );\n }\n\n //move to proxy.value\n {\n const valName = this.lodash.get(\n this.field,\n 'dbDataSource.filters[0].value'\n );\n this.proxy.value = (this.valueOptions as any).find(\n (v) => v.name == valName\n );\n }\n }\n\n public onFilterColumnChange(operation?) {\n if (this.field.dbDataSource.filters[0].column) {\n const matchColumn = (this.displayValueOptions as any).find(\n (v) => v.name === this.field.dbDataSource.filters[0].column\n );\n if (\n matchColumn &&\n (matchColumn.dataType == 'currency' || matchColumn.dataType == 'number')\n ) {\n this.valueOptions = this.fetchValueOptions(matchColumn.dataType);\n this.operationOptions = NUMBER_OPERATION_OPTIONS;\n } else if (\n matchColumn &&\n (matchColumn.dataType == 'text' ||\n matchColumn.dataType == 'user' ||\n matchColumn.dataType == 'email')\n ) {\n this.valueOptions = this.fetchValueOptions();\n this.operationOptions = TEXT_OPERATION_OPTIONS;\n }\n\n if (operation) {\n this.$timeout(() => {\n this.field.dbDataSource.filters[0].operation = operation;\n });\n }\n\n this.submitFieldChange();\n }\n }\n\n public submitFieldChange() {\n if (this.field) {\n if (typeof this.field.dbDataSource.displayValue === 'undefined') {\n this.field.dbDataSource.displayValue = [EMPTY.name];\n }\n this.onFieldChange({ cell: this.field });\n }\n }\n\n public clearFilters() {\n if (typeof this.field.dbDataSource.filters !== 'undefined') {\n this.field.dbDataSource.filters[0].column = undefined;\n this.field.dbDataSource.filters[0].operation = undefined;\n this.field.dbDataSource.filters[0].value = undefined;\n }\n\n this.proxy = this.getEmptyProxy();\n this.moveNgModelToProxy();\n\n this.rerenderKendoComponentsHackFLOW4826();\n\n this.submitFieldChange();\n }\n\n public onDbNameChange() {\n // first time handler\n let isDuringInit = false;\n if (this.field.dbDataSource.dbName === undefined) {\n this.field.dbDataSource.dbName =\n this.copyOfField.dbDataSource && this.copyOfField.dbDataSource.dbName;\n isDuringInit = true;\n }\n\n // reset values\n this.displayValueOptions = [EMPTY];\n\n let promise;\n\n this.shouldShowFilters = false;\n if (\n this.field.dbDataSource.dbName &&\n this.field.dbDataSource.dbName !== ''\n ) {\n promise = this.$http\n .get(\n `${this.databasesApiBaseUrl}/columns/${this.field.dbDataSource.dbName}`,\n { noSpinner: true }\n )\n .then((response) => {\n const idColumnIndex = response.data.findIndex((d) => d.name === 'Id');\n const customIdColumnIndex = response.data.findIndex(\n (d) => d.name === 'customdatabaseid'\n );\n\n if (idColumnIndex >= 0 && customIdColumnIndex < 0) {\n response.data.splice(idColumnIndex, 1);\n } else if (customIdColumnIndex >= 0) {\n response.data.splice(customIdColumnIndex, 1);\n }\n\n this.displayValueOptions = response.data;\n this.displayValueOptions.unshift(EMPTY);\n this.field.dbDataSource.displayValueOptions = [];\n angular.copy(\n this.displayValueOptions,\n this.field.dbDataSource.displayValueOptions\n );\n\n if (isDuringInit) {\n this.field.dbDataSource.displayValue =\n this.copyOfField.dbDataSource.displayValue;\n this.field.dbDataSource.filters[0].column =\n this.copyOfField.dbDataSource.filters[0].column;\n this.onFilterColumnChange(\n this.field.dbDataSource.filters[0].operation\n );\n }\n });\n } else {\n promise = this.$q.resolve();\n }\n\n return promise.then(() => {\n // submit changes\n this.moveNgModelToProxy();\n this.submitFieldChange();\n\n this.shouldShowFilters = true;\n });\n }\n\n public $onInit() {\n this.isReady = false;\n this.copyOfField = angular.copy(this.field, {});\n\n if (this.field.dbDataSource === undefined) {\n this.field.dbDataSource = {\n dbName: '',\n displayValue: '',\n filters: [{}]\n };\n this.submitFieldChange();\n }\n\n this.$http\n .get(this.databasesApiBaseUrl + '?fromModeler=true', {\n noSpinner: true\n })\n .then((response) => {\n this.allDbs = [{ label: EMPTY.name, name: '' }];\n\n // remap for Kendo Usage\n for (let db of response.data) {\n db.label = db.name;\n this.allDbs.push(db);\n }\n\n return this.onDbNameChange();\n })\n .finally(() => {\n this.isReady = true;\n\n this.rerenderKendoComponentsHackFLOW4826();\n });\n\n // work out the valueOptions for filters which are short text/number/dropdown list/option list/currency/email fields before current field\n this.valueOptions = this.fetchValueOptions();\n }\n\n private rerenderKendoComponentsHackFLOW4826() {\n // below is a hack to show the \"Please Choose...\" onsome Kendo dropdowns\n // yes, we are triggering the $digest cycle twice... FML.\n // @TODO Remove at FLOW-4842\n // - Cassey\n this.$timeout(() => {\n this.shouldShowFilters = false;\n this.$timeout(() => {\n this.shouldShowFilters = true;\n }, 1);\n }, 1);\n }\n\n private fetchValueOptions(dataType?: any) {\n const valueOptions = this.customdbService.populateValueOptions(\n { allFields: this.allFields },\n this.field,\n dataType\n );\n const placeholder =\n valueOptions.length == 0 ? EMPTY_PREVIOUS : { text: EMPTY.name };\n valueOptions.unshift(placeholder);\n return valueOptions;\n }\n}\n\nexport class CustomDatabaseConfigComponent\n implements angular.IComponentOptions\n{\n public templateUrl = 'customdatabase.config.component.tmpl.html';\n public bindings = {\n field: '=',\n allFields: '<',\n onFieldChange: '&'\n };\n public controller = CustomDatabaseConfigController;\n}\n\nangular\n .module('flowingly.components')\n .component('customdatabaseConfig', new CustomDatabaseConfigComponent());\n","import * as angular from 'angular';\n\nclass DatepickerComponentController {\n static $inject = ['$element'];\n public model: any;\n public placeholder: string;\n public format: string;\n public animation: boolean;\n\n constructor(private $element: ng.IAugmentedJQuery) {}\n\n $onInit() {\n this.placeholder = this.placeholder || 'DD/MM/YYYY';\n this.format = \"'dd/MM/yyyy'\";\n this.animation = false;\n }\n\n clearDate() {\n this.model = null;\n this.$element.find('input').data('kendoDatePicker').value(null);\n }\n}\n\nexport class DatepickerComponent implements angular.IComponentOptions {\n public bindings: any;\n public templateUrl: string;\n\n constructor() {\n this.bindings = {\n model: '=',\n placeholder: '@'\n };\n\n this.templateUrl = 'flowingly.datepicker.tmpl.html';\n }\n\n controller = DatepickerComponentController;\n}\n\nangular\n .module('flowingly.components')\n .component('flowinglyDatepicker', new DatepickerComponent());\n","import angular from 'angular';\nimport { devLoggingService } from './dev-logger.service';\nangular\n .module('flowingly.components')\n .factory('devLoggingService', devLoggingService);\n","/**\n * Converted to ts on 17/01/2020\n * SEe https://bitbucket.org/flowingly-team/flowingly-source-code/src/04c5ea8eba7bf8961358cbf6f93bb688a37854a4/src/Flowingly.Shared.Angular/flowingly.components/devtools/dev-logger.service.js?at=master\n */\n\n'use strict';\n\nexport function devLoggingService(level = null) {\n // Available log levels\n // A message will be logged if it's level is the same or less than current level\n const levels = {\n OFF: 1,\n ERRORS: 2,\n INFO: 3,\n DEBUG: 4\n };\n\n //API\n const service = {\n error: error,\n info: info,\n levels: levels,\n log: log,\n setLoggingLevel: setLoggingLevel,\n currentLevel: level\n };\n\n return service;\n\n function error(message) {\n if (service.currentLevel >= levels.ERRORS) {\n console.error(message);\n }\n }\n\n function info(message) {\n if (service.currentLevel >= levels.INFO) {\n console.info(message);\n }\n }\n\n function log(message) {\n if (service.currentLevel >= levels.DEBUG) {\n console.log(message);\n }\n }\n\n function setLoggingLevel(level) {\n service.currentLevel = level;\n }\n}\n\nexport type DevLoggingServiceType = ReturnType;\n","/**\n * @ngdoc directive\n * @name dialogWarningBox\n * @module flowingly.components\n * @description A component for warning box\n * @usage\n * ```\n * \n \n * ```\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/67bd6e8112f8f40ecb80b6e12e9fe8e6aba1a94f/src/Flowingly.Shared.Angular/flowingly.components/dialogwarningbox/dialog.warning.box.component.js?at=master\n */\n(function () {\n 'use strict';\n\n angular.module('flowingly.components').component('dialogWarningBox', {\n bindings: {\n paragraphs: '<'\n },\n\n templateUrl: 'dialog.warning.box.component.tmpl.html'\n });\n})();\n","import IUserBasicInfo from '@Shared.Angular/@types/core/contracts/queryModel/user/UserBasicInfo';\nimport { Guid } from '@Shared.Angular/@types/guid';\nimport { Services } from '@Shared.Angular/@types/services';\nimport angular, { IPromise, IQService } from 'angular';\n\nclass SelectUserController {\n //bindings\n ngModel: any;\n exclude: string | string[];\n include: string | string[];\n permissionSecureCodes: string[];\n businessId: string;\n isDisabled: boolean;\n noEmpty: boolean;\n onSelect: any;\n onChange: any;\n onClose: any;\n onOpen: any;\n onDataLoadError: () => void;\n loadUser: (\n userId: Guid,\n fieldName: string,\n options: any\n ) => IPromise;\n\n svcs: {\n $q: IQService;\n lodashService: Lodash;\n userApiService: Services.UserApiService;\n sessionService: Services.SessionService;\n };\n\n constructor(\n $q: IQService,\n lodashService: Lodash,\n userApiService: Services.UserApiService,\n sessionService: Services.SessionService\n ) {\n this.svcs = {\n userApiService,\n sessionService,\n lodashService,\n $q\n };\n this.fetchUsers = this.fetchUsers.bind(this);\n this.$onChanges = this.$onChanges.bind(this);\n this.multipleStandardsAdapter = this.multipleStandardsAdapter.bind(this);\n }\n\n $onChanges() {\n this.ngModel = this.multipleStandardsAdapter(this.ngModel);\n }\n\n /**\n * Different APIs return different standards of these values\n * So we do a catch all here and handle the display and\n * value ourselves.\n *\n * NOTE: {} is not blank. Whne combined with no-empty,\n * the behavior is that it is initially empty, then if you\n * select 1, you are unable to go back to the empty state\n */\n multipleStandardsAdapter(user) {\n if (user) {\n user._selectValue = user.Id || user.id;\n user._selectText =\n user.FullName ||\n user.fullName ||\n (user.firstName && `${user.firstName} ${user.lastName}`) ||\n '';\n return user;\n }\n }\n\n fetchUsers({ term }: { term: string }) {\n const { $q, lodashService, userApiService } = this.svcs;\n const { differenceWith, isArray, toLower, sortedUniqBy, sortBy, concat } =\n lodashService;\n\n const fetchUsers = [];\n fetchUsers.push(\n userApiService.searchUsers({\n term,\n clientId: this.businessId,\n permissionSecureCodes: this.permissionSecureCodes\n })\n );\n\n if (this.include) {\n fetchUsers.push(this.fetchSpecificUsers(this.include));\n }\n\n return $q\n .all(fetchUsers)\n .then(([foundActors, specificActors]) => {\n let actors = foundActors;\n if (specificActors) {\n actors = actors.concat(specificActors);\n }\n // if there is an id to exclude (via the exclude param), we filter it out here\n if (this.exclude) {\n const excludeSet = (\n isArray(this.exclude) ? this.exclude : [this.exclude]\n ).map(toLower);\n return differenceWith(\n actors,\n excludeSet,\n (actor, id) => toLower(actor.id) === id\n );\n } else {\n return actors;\n }\n })\n .then((users) => {\n // we remap id to Id because the backend returns it as \"id\"\n // and everywhere else in the app we use \"Id\"\n return users.map(this.multipleStandardsAdapter);\n })\n .then((users) => sortBy(users, 'fullName'))\n .then((users) => sortedUniqBy(users, 'id'))\n .catch(this.onDataLoadError);\n }\n\n fetchSpecificUsers(idsToFetch: string | string[]) {\n if (!idsToFetch) return [];\n\n const { $q, userApiService } = this.svcs;\n\n idsToFetch = Array.isArray(idsToFetch) ? idsToFetch : [idsToFetch];\n\n const requests = idsToFetch.map((idToFetch) => {\n return this.loadUser\n ? this.loadUser(idToFetch, 'id', { businessId: this.businessId }).then(\n (user) => user\n )\n : userApiService\n .getUserBasicInfoByFieldName(idToFetch)\n .then((user) => user);\n });\n\n return $q.all(requests).then((user) => user.filter((x) => x));\n }\n}\n\nSelectUserController.$inject = [\n '$q',\n 'lodashService',\n 'userApiService',\n 'sessionService'\n];\nangular\n .module('flowingly.components')\n .controller('selectUserController', SelectUserController);\n\nangular.module('flowingly.components').component('selectUser', {\n bindings: {\n ngModel: '=',\n exclude: '<', // UserId | UserId[] to exclude\n include: '<', // UserId | UserId[] to exclude\n permissionSecureCodes: '<',\n businessId: '<',\n\n // pass through bindings\n isDisabled: '<',\n noEmpty: '<', // if true, everytime the box is emptied, it returns to the original\n onSelect: '<',\n onChange: '<',\n onClose: '<',\n onOpen: '<',\n onDataLoadError: '<',\n loadUser: '<'\n },\n controller: 'selectUserController',\n template: `\n \n \n `\n});\n","/**\n * @name editorYoutubeDialog\n * @module flowingly.components\n * @description Displays dialog for adding a YouTube video to a kendo editor\n * \n * @usage\n * ```\n \n * ```\n */\n'use strict';\n\nimport angular from 'angular';\n\nexport default class EditorYoutubeDialogComponentController {\n static $inject = ['$scope'];\n\n constructor(private $scope) {\n $scope.$on('EditorYoutubeClicked', (event, params) => this.insertVideo(params.event, params.selector))\n }\n\n insertVideo(e, selector) {\n const editor = angular.element(document).find(selector).data('kendoEditor');\n const testUrlForMedia = (pastedData) => {\n if (pastedData.match('https://(www.)?youtube|youtu.be')) {\n const youtube_id = pastedData.match('embed')\n ? pastedData.split(/embed\\//)[1].split('\"')[0]\n : pastedData.split(/v\\/|v=|youtu\\.be\\//)[1].split(/[?&]/)[0];\n return {\n type: 'youtube',\n id: youtube_id\n };\n }\n alert(\n 'No valid media id detected.\\nBe sure to use the \"Share\" url, located in the menu under the video on the youtube page.'\n );\n return false;\n };\n\n // 1. save the selected range\n const range = editor.getRange();\n const dialog = angular\n .element(angular.element('#insertVideo-template').html())\n .find('.insertVideo-insert')\n .click(() => {\n const media = testUrlForMedia(dialog.element.find('input').val());\n if (media) {\n const template = kendo.template($('#youTube-template').html());\n // 2. restore the selected range\n editor.selectRange(range);\n editor.exec('insertHtml', {\n value: template({\n source: media.id\n })\n });\n }\n\n dialog.close();\n })\n .end()\n .find('.insertVideo-cancel')\n .click(function () {\n dialog.close();\n })\n .end()\n .kendoWindow({\n modal: true,\n title: 'Insert Video',\n animation: false,\n deactivate: () => {\n dialog.destroy();\n },\n activate: () => {\n setTimeout(() => {\n $('#videoUrl').focus();\n }, 100);\n }\n })\n .data('kendoWindow');\n\n dialog.center().open();\n }\n}\n\nexport class EditorYoutubeDialogComponent implements angular.IComponentOptions {\n public templateUrl = 'editor.youtube.dialog.component.tmpl.html';\n public controllerAs = 'ctrl';\n\n controller = EditorYoutubeDialogComponentController;\n}\n\nangular\n .module('flowingly.components')\n .component('editorYoutubeDialog', new EditorYoutubeDialogComponent());\n","'use strict';\nimport { Services } from '@Shared.Angular/@types/services';\nimport angular, {\n IAttributes,\n IQService,\n IScope,\n ITimeoutService\n} from 'angular';\nimport { Data } from './kendo.datasource.facade';\n\n/**\n * The kendo event names are ambiguous,\n * so we rename it in this module through\n * this map for clarity.\n */\nconst FACADE_KENDO_EVENT_MAP = {\n onSelect: 'change',\n onChange: 'filtering',\n onClose: 'close',\n onOpen: 'open',\n onDataBound: 'dataBound'\n};\n\nclass ComboBoxFacadeController {\n // from bindings\n ngModel: any; // the ngModel will be assigned the whole object.\n data: Data; // ARRAY or FUNCTION\n // if function, the function must return an array.\n // is capable of handling promises.\n kOptions: any; // OBJECT kendo options if you want to get down and dirty\n autocomplete: any; // BOOLEAN if true, runs DATA every search\n fieldText: any; // STRING maps the display text to this field. DEFAULTS to Name\n fieldValue: any; // STRING maps the value to this field. DEFAULTS to Id\n placeholder: any; // STRING placeholder value\n minLength: any; // NUMBER min length before searching\n clearButton: any; // BOOLEAN k-clear-button\n isEnabled: any; // BOOLEAN works the same as ng-disabled=\"!value\"\n noEmpty: any; // BOOLEAN disallows empty\n onChange: any; // FUNCTION fires everytime you change the input\n onSelect: any; // FUNCTION activates when an item is selected\n onOpen: any; // FUNCTION runs when you open the box\n onClose: any; // FUNCTION executes when you close the box\n\n private _kendoConfig: any;\n private _previousVal: any;\n private _data: any;\n private _dataContext: any;\n private svcs: {\n $timeout: ITimeoutService;\n $attrs: IAttributes;\n $q: IQService;\n lodashService: Lodash;\n DataSourceFacade: Services.DataSourceFacade;\n $element: JQuery;\n $scope: IScope;\n };\n private dataSource: Services.DataSourceFacadeInstance;\n private kendoOptions: any;\n\n constructor(\n $timeout: ITimeoutService,\n $attrs: IAttributes,\n $q: IQService,\n lodashService: Lodash,\n DataSourceFacade: Services.DataSourceFacade,\n $element: JQuery,\n $scope: IScope\n ) {\n /**\n * Webpack build somehow not injecting values into this pointer the way grunt build does\n * So need to pass data from $scope.$ctrl to this pointer to avoid the Exception data is a required attribute for kendo-combo-box-facade and its extensions\n */\n const {\n data,\n clearButton,\n minLength,\n fieldText,\n fieldValue,\n placeholder,\n isEnabled,\n autocomplete,\n noEmpty\n } = $scope.$ctrl;\n this.data = data;\n this.clearButton = clearButton;\n this.minLength = minLength;\n this.fieldText = fieldText;\n this.fieldValue = fieldValue;\n this.placeholder = placeholder;\n this.isEnabled = isEnabled;\n this.autocomplete = autocomplete;\n this.noEmpty = noEmpty;\n\n if (!this.data)\n throw new Error(`data is a required attribute for \n kendo-combo-box-facade and its extensions`);\n\n this.svcs = {\n $attrs,\n $q,\n lodashService,\n DataSourceFacade,\n $timeout,\n $element,\n $scope\n };\n const { defaults } = lodashService;\n const { onChange, onSelect, onOpen, onClose } = $scope.$ctrl;\n\n this._kendoConfig = {};\n this.setAttr('clearButton', this.clearButton, true)\n .setAttr('minLength', this.minLength, 2)\n .setAttr('dataTextField', this.fieldText, 'Name')\n .setAttr('dataValueField', this.fieldValue, 'Id')\n .setAttr('placeholder', this.placeholder, '')\n .setAttr('enable', this.isEnabled, true)\n .setAutoComplete(this.autocomplete)\n .setNoEmpty(this.noEmpty)\n .event('onChange', onChange)\n .event('onSelect', onSelect)\n .event('onClose', onClose)\n .event('onOpen', onOpen)\n .initDataSource(this.data);\n\n // special case for non-zero min length\n // because in most cases ngModel will initially be zero length\n // When zero length, it fails the minLength requirement\n // so no initial data will be outed.\n if (this._kendoConfig.minLength > 0) {\n $timeout(() => {\n this.dataSource.update();\n }, 100);\n }\n\n this.kendoOptions = defaults(this.getKendoConfig(), this.kOptions);\n }\n\n /**\n * Return the kendo json options that you\n * can plug into the combobox\n */\n getKendoConfig() {\n return this._kendoConfig;\n }\n\n /**\n * Set a field on the underlying kendo configuration.\n * *\n * @param {string} field\n * @param {any} val\n * @param {any} defaultVal\n */\n setAttr(field, val, defaultVal) {\n const value = val === undefined ? defaultVal : val;\n if (value !== undefined) {\n this._kendoConfig[field] = value;\n }\n return this;\n }\n\n /**\n * Wrapper for setAttr that converts ngDisabled\n * to enable\n *\n * @param {any} isDisabledRaw\n */\n setDisable(isDisabledRaw) {\n const isDisabled = isDisabledRaw === undefined ? false : isDisabledRaw;\n this.setAttr('enable', !isDisabled, true);\n }\n\n /**\n * Creates the data source and assigns it\n * to the kendoConfig datasource\n *\n * @param {array|function} data\n */\n initDataSource(data: Data) {\n this.dataSource = new this.svcs.DataSourceFacade(data);\n this._kendoConfig.dataSource = this.dataSource.getAsKendoBridge();\n return this;\n }\n\n /**\n * Attach an event to the component.\n *\n * @param {string} event Name of the event\n * @param {function} cb Callback of the event.\n */\n event(event, cb) {\n if (event && cb) {\n // We have renamed the events in facade because of\n // the ambiguity in the name.\n const eventName = FACADE_KENDO_EVENT_MAP[event];\n if (!eventName) {\n throw new Error('Event is upassable to Kendo');\n }\n\n // we dont override, we keep it just incase another reusable\n // component needs these events.\n if (this._kendoConfig[eventName]) {\n const { flow } = this.svcs.lodashService;\n cb = flow(this._kendoConfig[eventName], cb);\n }\n this._kendoConfig[eventName] = cb;\n }\n return this;\n }\n\n setAutoComplete(isOn) {\n if (!isOn) {\n return this;\n }\n const me = this;\n\n this._data = this.data;\n this.data = function () {\n const context = me.getDataContext();\n return me._data(context);\n };\n\n const autoCompleteConfig = {\n delay: 300,\n autoBind: false,\n ignoreCase: true,\n filter: 'contains',\n filtering: function ({ sender }) {\n const context = me.createDataContext();\n context.term = sender.input.val();\n }\n };\n\n this._kendoConfig = {\n ...this._kendoConfig,\n ...autoCompleteConfig\n };\n\n return this;\n }\n\n createDataContext() {\n this._dataContext = {};\n return this._dataContext;\n }\n\n getDataContext() {\n return this._dataContext || this.createDataContext();\n }\n\n setNoEmpty(shouldBeNoEmpty) {\n if (shouldBeNoEmpty) {\n const me = this;\n\n // on initialize if not empty is on we replace ngModel with the first result\n me.event('onDataBound', () => {\n if (!me.ngModel) {\n me.ngModel = me.dataSource.getCurrentList()[0];\n const cb = this._kendoConfig['change'];\n if (cb) {\n me.svcs.$timeout(() => cb(), 10);\n }\n }\n me._previousVal = me.ngModel;\n });\n\n const restorePreviousModelIfNone = function (event) {\n if (!event) {\n return;\n }\n const fieldText = me._kendoConfig.dataTextField;\n const { find } = me.svcs.lodashService;\n\n const currentList = me.dataSource.getCurrentList();\n const searchTerm = event.sender.input.val();\n const exists = find(currentList, {\n [fieldText]: searchTerm\n });\n\n if (!exists) {\n event.sender.input.val(me._previousVal[fieldText]);\n me.ngModel = me._previousVal;\n } else {\n me._previousVal = me.ngModel;\n }\n };\n\n me.event('onSelect', restorePreviousModelIfNone);\n me.event('onClose', restorePreviousModelIfNone);\n }\n return this;\n }\n\n // Kendo binds it to the scope via kendo-combo-box\n get KendoComboBoxAPI() {\n return this.svcs.$scope.KendoComboBoxAPI;\n }\n}\n\n/**\n * This is a facade for the kendo combobox. It is hard\n * to use for our use case, so we decorate the directive for\n * easier reuse.\n *\n * Example:\n *\n * // original\n * // new one\n *\n * // TYPICAL USAGE\n * \n *\n * \n *\n */\nComboBoxFacadeController.$inject = [\n '$timeout',\n '$attrs',\n '$q',\n 'lodashService',\n 'kendoDataSourceFacade',\n '$element',\n '$scope'\n];\n\nangular\n .module('flowingly.components')\n .controller('kendoComboBoxFacadeController', ComboBoxFacadeController);\nangular.module('flowingly.components').component('kendoComboBoxFacade', {\n bindings: {\n ngModel: '=', // the ngModel will be assigned the whole object.\n\n data: '<', // ARRAY or FUNCTION\n // if function, the function must return an array.\n // is capable of handling promises.\n\n kOptions: '<', // OBJECT kendo options if you want to get down and dirty\n autocomplete: '<', // BOOLEAN if true, runs DATA every search\n\n fieldText: '@', // STRING maps the display text to this field. DEFAULTS to Name\n fieldValue: '@', // STRING maps the value to this field. DEFAULTS to Id\n placeholder: '@', // STRING placeholder value\n minLength: '@', // NUMBER min length before searching\n clearButton: '<', // BOOLEAN k-clear-button\n isEnabled: '<', // BOOLEAN works the same as ng-disabled=\"!value\"\n noEmpty: '<', // BOOLEAN disallows empty\n\n onChange: '<', // FUNCTION fires everytime you change the input\n onSelect: '<', // FUNCTION activates when an item is selected\n onOpen: '<', // FUNCTION runs when you open the box\n onClose: '<' // FUNCTION executes when you close the box\n },\n controller: 'kendoComboBoxFacadeController',\n template: `\n \n `\n});\n","'use strict';\nimport angular, { IQService } from 'angular';\n\n/**\n * Because kendo datasource is so confusing and does not natively support\n * our use case of fetching data as you type unless you use the autocomplete\n * module. However the autocomplete module does not have the same features\n * as the combobox (which we want).\n *\n * So we use a facade to simplify the implementation details.\n */\nangular\n .module('flowingly.components')\n .factory('kendoDataSourceFacade', [\n '$q',\n 'lodashService',\n kendoDataSourceFacade\n ]);\n\nexport type Data = any[] | ((...params: any[]) => any); // either an array or a function\nfunction kendoDataSourceFacade($q: IQService, lodashService: Lodash) {\n const { isArray, isFunction } = lodashService;\n\n class DataSourceFacade {\n kendoDsConfig: kendo.data.DataSourceOptions;\n data: Data;\n kendoDS: kendo.data.DataSource;\n\n constructor(data: Data) {\n this.data = data;\n this.kendoDsConfig = {\n serverFiltering: isFunction(data),\n transport: {\n read: this.dataBridge()\n }\n };\n this.kendoDS = new kendo.data.DataSource(this.kendoDsConfig);\n }\n\n /**\n * Reruns the underlying kendo data retrieval.\n * Kendo hands off the data to the kendo input.\n */\n update() {\n return this.kendoDS.read();\n }\n\n /**\n * Returns a function that can be used as a databridge\n * between Kendo and the flowingly app.\n *\n * Typically this would be the read value you supply\n * to a new Kendo Datasource.\n *\n * @return {function}\n */\n dataBridge() {\n return (options: kendo.data.DataSourceTransportOptions) => {\n return this.fetchData(this.data).then((fetchedResults) => {\n options.success(fetchedResults);\n });\n };\n }\n\n getCurrentList() {\n return this.kendoDS._data;\n }\n\n /**\n * Given data, return it as a promise.\n * If given an array, resolve to the array.\n * If given a function, resolve to the return value.\n *\n * @param {array|function} data\n * @param {string} term\n * @return {promise}\n */\n fetchData(data: Data, term?) {\n if (isArray(data)) {\n return $q.resolve(data);\n } else if (isFunction(data)) {\n return $q.resolve(data(term));\n }\n }\n\n /**\n * Returns the underlying Kendo datasource.\n *\n * @returns {kendo.data.Datasource}\n */\n getAsKendoBridge() {\n return this.kendoDS;\n }\n }\n\n return DataSourceFacade;\n}\n\nexport type DataSourceFacadeInstanceType = InstanceType<\n ReturnType\n>;\n\nexport type DataSourceFacadeType = ReturnType;\n","import angular from 'angular';\nconst KENDO_INSTANCE_KEY = '.kendo';\n\nconst $inject = ['lodashService'];\nangular.module('flowingly.components').service('kendoHelper', [\n ...$inject,\n function (_: Lodash) {\n return class KendoHelper {\n /**\n * This is basically a duck typing test. The kendo object always has the\n * ns and dataSource properties.\n */\n static isKendoInstance(param) {\n return (\n param.ns &&\n param.ns.substr(0, KENDO_INSTANCE_KEY.length) == KENDO_INSTANCE_KEY &&\n param.dataSource\n );\n }\n\n /**\n * Returns the kendo controls of an _instantiated_ widget.\n * This can return any kendo widget, no matter what type it is\n *\n * @param {string|jQuery|KendoWidget} param\n */\n static getInstance(param) {\n const instance = this.isKendoInstance(param)\n ? param\n : kendo.widgetInstance(this.toJQuery(param));\n if (!instance) {\n throw new Error(\n 'Tried to get instance of a non-kendo or a not yet initialized kendo element'\n );\n }\n return instance;\n }\n\n /**\n * This is the same as getInstance but it asserts that the instance\n * can use the kendo's api select methods\n *\n * @param {string|jQuery|KendoWidget} param\n */\n static getSelectableInstance(param) {\n const instance = this.getInstance(param);\n if (typeof instance.select !== 'function') {\n throw new Error(\n `This kendo object (${instance.ns}) does not support the select method!`\n );\n }\n return instance;\n }\n\n /**\n * Set the datasource of a given kendo widget.\n *\n * @param {string|jQuery|KendoWidget} param\n * @param {any} newDs\n */\n static setDatasource(param, newDs) {\n const kendoWidget = this.getInstance(param);\n kendoWidget.setDataSource(newDs);\n kendoWidget.refresh();\n }\n\n /**\n * Select using the dataTextField and dataValueField as the\n * criterions for the search.\n *\n * See https://docs.telerik.com/kendo-ui/api/javascript/ui/dropdownlist/methods/select\n * for specific examples of this implementation\n *\n * @param {string|jQuery|KendoWidget} param\n * @param {any} value\n */\n static selectByHtml(param, value) {\n const kendoInstance = this.getSelectableInstance(param);\n const elements = kendoInstance.ul\n .children()\n .toArray()\n .filter((e) => e.innerHTML);\n\n if (elements.length == 0) {\n throw new Error(\n `Did not find any child of this widget with an innerHTML of ${value}`\n );\n } else {\n if (elements.length > 1) {\n console.warn(`Found more ${elements.length} results using selectByHtml using the criteria ${value}. \n Consider using selectByCriteria instead. This will default to first element found`);\n }\n kendoInstance.select(elements[0]);\n kendoInstance.trigger('change');\n }\n }\n\n /**\n * See https://docs.telerik.com/kendo-ui/api/javascript/ui/dropdownlist/methods/select\n * for specific examples of this implementation\n *\n * @param {string|jQuery|KendoWidget} param\n * @param {object} criteria See https://lodash.com/docs/4.17.11#matches\n */\n static selectByCriteria(param, criteria = {}) {\n const kendoInstance = this.getSelectableInstance(param);\n kendoInstance.select(_.matches(criteria));\n kendoInstance.trigger('change');\n }\n\n static toJQuery(param) {\n if (param instanceof angular.element) {\n return param;\n } else if (typeof param == 'string') {\n return angular.element(param);\n } else {\n throw new Error(\n `Expected a angular-jq obj or a string. Receieved ${param}`\n );\n }\n }\n };\n }\n]);\n","/**\n * @ngdoc component\n * @name flowAvatarCircle\n * @module flowingly.components\n * @description This is a component for displaying the users avatar. If they have no avatar saved, the first letter of their name is used instead.\n * @usage\n * ```\n * \n * ```\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/c1bef6b1678a4d74661919252b68fd866d11676a/src/Flowingly.Shared.Angular/flowingly.components/flow.avatar.circle.component.js?at=master\n */\n(function () {\n ///\n /// Styling for this directive will be handled by the component that is including this directive\n ///\n\n angular.module('flowingly.components').component('flowAvatarCircle', {\n bindings: {\n //url to the users avartar\n avatarUrl: '<',\n actorId: '<',\n //the users name\n name: '<'\n },\n controller: [\n '$element',\n 'avatarService',\n function ($element, avatarService) {\n var $ctrl = this;\n\n $ctrl.$onInit = function () {\n showAvatar();\n };\n $ctrl.$onChanges = function () {\n showAvatar();\n };\n\n function showAvatar() {\n if ($ctrl.actorId) {\n var url = avatarService.getAvatarUrl($ctrl.actorId);\n if (url) {\n $ctrl.avatarUrl = url;\n }\n }\n\n $ctrl.showImage = false;\n if ($ctrl.name) {\n $ctrl.firstLetter = avatarService.getUserInitial($ctrl.name);\n //get random colour using the name as an input\n var color = avatarService.getColour($ctrl.name);\n //update the colour in the dom\n var element = angular.element(\n $element[0].getElementsByClassName('circle')\n );\n element.attr('style', 'background-color:' + color);\n } else {\n $ctrl.firstLetter = '?';\n }\n }\n }\n ],\n template: [\n '
',\n '',\n '

{{$ctrl.firstLetter}}

',\n '
',\n '
'\n ].join('')\n });\n})();\n","/**\n * @ngdoc service\n * @name flowsUtilityService\n * @module flowingly.runner.services\n *\n * @description Service that provides utliities for working with forms and form data\n *\n */\nimport { Services } from '@Shared.Angular/@types/services';\nimport angular from 'angular';\n\nangular\n .module('flowingly.components')\n .factory('flowsUtilityService', flowsUtilityService);\n\nflowsUtilityService.$inject = [\n '$stateParams',\n '$location',\n 'APP_CONFIG',\n 'lodashService',\n 'momentService'\n];\n\nfunction flowsUtilityService(\n $stateParams: angular.ui.IStateParamsService,\n $location: angular.ILocationService,\n APP_CONFIG: Services.APP_CONFIG,\n lodashService: Lodash,\n momentService: Moment\n) {\n const service = {\n getStateParamValue: getStateParamValue,\n orderItemsAlphabetically: orderItemsAlphabetically,\n removeFlow: removeFlow,\n removeStep: removeStep,\n toCamel: toCamel,\n isInSupportHours: isInSupportHours\n };\n\n return service;\n\n //////////// Public API Methods\n\n function orderItemsAlphabetically(flows, property = 'name') {\n return flows.sort(function (a, b) {\n if (a[property].toLowerCase() < b[property].toLowerCase()) return -1;\n if (a[property].toLowerCase() > b[property].toLowerCase()) return 1;\n return 0;\n });\n }\n\n function toCamel(o) {\n let build, key, destKey, value;\n\n if (o instanceof Array) {\n build = [];\n for (key in o) {\n value = o[key];\n\n if (typeof value === 'object') {\n value = toCamel(value);\n }\n build.push(value);\n }\n } else {\n build = {};\n for (key in o) {\n if (Object.prototype.hasOwnProperty.call(o, key)) {\n destKey = (\n key.charAt(0).toLowerCase() + key.slice(1) || key\n ).toString();\n value = o[key];\n if (value !== null && typeof value === 'object') {\n value = toCamel(value);\n }\n\n build[destKey] = value;\n }\n }\n }\n return build;\n }\n\n function removeFlow(list, flowId) {\n const index = lodashService.findIndex(list, function (item) {\n return item.FlowId === flowId;\n });\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n\n function removeStep(list, flowId, stepId) {\n const index = lodashService.findIndex(list, function (item) {\n const intMatch = item.FlowId === flowId;\n const stepFound = lodashService.some(item.Steps, function (step) {\n return step.Id === stepId;\n });\n return intMatch && stepFound;\n });\n if (index > -1) {\n list.splice(index, 1);\n }\n }\n\n function getStateParamValue(key) {\n let value;\n\n if ($stateParams.data && $stateParams.data[key]) {\n value = $stateParams.data[key];\n } else if ($location.search()[key]) {\n value = $location.search()[key];\n } else {\n value = undefined;\n }\n\n return value;\n }\n\n function isInSupportHours() {\n if (APP_CONFIG.supportHours && APP_CONFIG.outOfHoursSupportMessage) {\n try {\n const [utcSupportHourFrom, utcSupportHourTo] =\n APP_CONFIG.supportHours.split('|');\n return momentService().isBetween(\n momentService(utcSupportHourFrom),\n momentService(utcSupportHourTo)\n );\n } catch (e) {\n console.error(e);\n return true;\n }\n } else {\n return true;\n }\n }\n}\n\nexport type FlowsUtilityServiceType = ReturnType;\n","/*\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/11e594fa4c9196ad6d315186280fd1f29ec2c68d/src/Flowingly.Shared.Angular/flowingly.components/formula/formula.config.component.js?at=master\n */\n(function () {\n 'use strict';\n\n angular.module('flowingly.components').component('formulaConfig', {\n bindings: {\n field: '=',\n allFields: '<',\n cells: '<',\n onFieldChange: '&'\n },\n templateUrl: 'formula.config.component.tmpl.html',\n controller: [\n '$timeout',\n 'pubsubService',\n 'validationService',\n 'flowinglyModelUtilityService',\n 'flowinglyConstants',\n function (\n $timeout,\n pubsubService,\n validationService,\n flowinglyModelUtilityService,\n flowinglyConstants\n ) {\n let $ctrl = this;\n let element;\n let currentFocus = -1;\n const cursor = '‌';\n $ctrl.error = false;\n $ctrl.mathOperators = ['+', '-', '*', '/'];\n $ctrl.brackets = ['(', ')'];\n $ctrl.$onInit = () => {\n $timeout(init, 500);\n };\n var OPRTYPE = {\n MATH: 'math',\n BRACKET: 'bracket',\n OPERAND: 'operand',\n TEXT: 'text'\n };\n\n function init() {\n $ctrl.isTable = () => $ctrl.cells !== undefined;\n pubsubService.subscribe(\n 'WORKFLOW_DESIGNER_FORM_FIELDS_CHANGED',\n onFormFieldsChanged\n );\n let fieldname = $ctrl.field.name ? $ctrl.field.name : '';\n $ctrl.field.placeholder = '';\n element = document.getElementById(`${fieldname}_formulaBuilder`);\n if ($ctrl.field.formulaConfig === undefined) {\n $ctrl.field.formulaConfig = {\n formula: '',\n formulaOperands: [],\n displayFormula: ''\n };\n element.innerHTML = '=';\n placeCaretAtEnd(element);\n } else {\n updateFormula();\n }\n element.addEventListener('click', setAutoCompleteSettings);\n element.addEventListener('input', setAutoCompleteSettings);\n element.addEventListener('keyup', updateFormulaConfig);\n element.addEventListener('mouseup', updateFormulaConfig);\n element.addEventListener('keydown', onKeyDown);\n }\n\n function onKeyDown(e) {\n var autoListElement: any = document.getElementById(\n this.id + '_autocomplete-list'\n );\n var target = window.getSelection().focusNode;\n if (autoListElement)\n autoListElement = autoListElement.getElementsByTagName('div');\n if (e.keyCode === 40) {\n //down\n currentFocus++;\n addActive(autoListElement);\n } else if (e.keyCode === 38) {\n //up\n currentFocus--;\n addActive(autoListElement);\n } else if (e.keyCode === 13) {\n //enter\n e.preventDefault();\n if (currentFocus > -1) {\n if (autoListElement) autoListElement[currentFocus].click();\n }\n } else if (e.keyCode === 8) {\n //backspace\n if (target && target.nodeType === Node.TEXT_NODE) {\n if (target.nodeValue === '\\u200C') {\n target.parentNode.removeChild(target.previousSibling);\n return false;\n } else if (\n target.nodeValue === '=\\u200C' ||\n target.nodeValue === '='\n ) {\n e.preventDefault();\n }\n }\n } else if (e.keyCode === 46) {\n //delete\n if (target && target.nodeType === Node.TEXT_NODE) {\n if (target.nodeValue === '\\u200C') {\n target.parentNode.removeChild(target.nextSibling);\n return false;\n } else if (\n target.nodeValue === '=\\u200C' ||\n target.nodeValue === '='\n ) {\n if (getCaretPosition(element) === 2) {\n target.parentNode.removeChild(target.nextSibling);\n }\n e.preventDefault();\n }\n }\n } else {\n placeCaretAtEnd(element);\n }\n }\n\n function setAutoCompleteSettings() {\n var currentSelection = true;\n $ctrl.error = false;\n $ctrl.errorMessage = '';\n var cursorPositionElement: any = window\n .getSelection()\n .getRangeAt(0).commonAncestorContainer;\n var previousElemet = cursorPositionElement.previousSibling;\n var cursorPosChild =\n cursorPositionElement !== element\n ? previousElemet\n : element.lastChild;\n currentFocus = -1;\n var filterText: any = '';\n if (cursorPosChild === null || !cursorPosChild) {\n if (isSpan(cursorPositionElement.parentNode)) {\n currentSelection = getPreviousElementOperation(\n cursorPositionElement\n );\n } else {\n currentSelection = getPreviousElementOperation(\n cursorPositionElement.parentNode\n );\n filterText = cursorPositionElement.parentNode.innerText;\n }\n } else {\n currentSelection = getPreviousElementOperation(cursorPosChild);\n filterText = cursorPositionElement.nodeValue;\n }\n\n filterText = replaceText(filterText) || '';\n if (filterText.indexOf('=') === 0) {\n filterText = filterText.replace('=', '');\n }\n if (!isNaN(filterText) && filterText.length > 0) {\n filterText = '';\n currentSelection = false;\n updateFormulaConfig();\n }\n buildAutoPopulate(\n currentSelection,\n filterText,\n cursorPositionElement,\n cursorPosChild === null || !cursorPosChild,\n filterText.length > 0 && filterText[0] === '@'\n );\n }\n\n function getItemType(item) {\n if (\n item.type === flowinglyConstants.formFieldType.LOOKUP ||\n item.type === flowinglyConstants.tableCellType.LOOKUP\n ) {\n return item.lookupConfig\n ? item.lookupConfig.displayValueType\n : item.type;\n } else if (\n item.type === flowinglyConstants.formFieldType.DROPDOWN_LIST ||\n item.type === flowinglyConstants.tableCellType.DROPDOWN\n ) {\n if (\n item.dbDataSource &&\n Array.isArray(item.dbDataSource.displayValueOptions)\n ) {\n const matchingOption = item.dbDataSource.displayValueOptions.find(\n (option) => option.name === item.dbDataSource.displayValue\n );\n return matchingOption?.dataType;\n }\n }\n return item.type;\n }\n\n function isNumericOperand(item) {\n var type = getItemType(item);\n return (\n type === flowinglyConstants.formFieldType.NUMBER ||\n type === flowinglyConstants.formFieldType.CURRENCY ||\n type === flowinglyConstants.tableCellType.NUMBER ||\n type === flowinglyConstants.tableCellType.CURRENCY\n );\n }\n\n function isTextOperand(item) {\n var type = getItemType(item);\n return (\n type === flowinglyConstants.formFieldType.TEXT ||\n type === flowinglyConstants.tableCellType.TEXT\n );\n }\n\n function isOperand(item) {\n return isNumericOperand(item) || isTextOperand(item);\n }\n\n function getOperands(filter = (item) => isOperand(item)) {\n var operands = [];\n if ($ctrl.isTable()) {\n operands = operands.concat(\n $ctrl.cells\n .filter((item) => filter(item))\n .map((item) => ({\n id: item.id,\n name: flowinglyConstants.formulaOperandPrefix.CELL + item.id,\n displayName: item.header,\n type: getItemType(item)\n }))\n );\n } else {\n const updatedFields = getFieldUpdate();\n operands = operands.concat(\n updatedFields\n .filter((item) => filter(item))\n .map((item) => ({\n id: item.id,\n name: item.name,\n displayName: item.displayName,\n type: getItemType(item)\n }))\n );\n }\n return operands;\n }\n\n function getFieldUpdate() {\n let fields = [];\n $ctrl.allFields.forEach((element) => {\n switch (element.type) {\n case flowinglyConstants.formFieldType.TABLE:\n fields = fields.concat(\n flowinglyModelUtilityService.transformTableCellToField(\n flowinglyModelUtilityService.getEligibleCellsInFields([\n element\n ])\n )\n );\n break;\n default:\n fields = fields.concat(element);\n break;\n }\n });\n return fields;\n }\n\n function buildAutoPopulate(\n currentSelection,\n filterText?,\n cursorPositionElement?,\n previousChildExists?,\n brackets?\n ) {\n closeAllLists();\n if (filterText === undefined) filterText = '';\n $ctrl.Operands = getOperands();\n $ctrl.Operators = $ctrl.mathOperators;\n if ($ctrl.field.formulaConfig.formulaOperands.length > 0) {\n var fieldFound = $ctrl.Operands.find(\n (item) =>\n item.name === $ctrl.field.formulaConfig.formulaOperands[0]\n );\n if (isNumericOperand(fieldFound)) {\n $ctrl.Operands = getOperands((item) => isNumericOperand(item));\n $ctrl.Operators = $ctrl.mathOperators;\n } else {\n $ctrl.Operands = getOperands((item) => isTextOperand(item));\n $ctrl.Operators = ['+'];\n }\n }\n var autoList = document.createElement('DIV');\n autoList.setAttribute('id', element.id + '_autocomplete-list');\n autoList.setAttribute('class', 'autocomplete-items');\n element.parentNode.appendChild(autoList);\n autoList.addEventListener('mouseleave', closeAllLists);\n var autoListData = [];\n autoListData = angular.copy(\n currentSelection ? $ctrl.Operands : $ctrl.Operators,\n []\n );\n if (currentSelection) {\n autoListData.push({ displayName: '(', name: '(' });\n autoListData.push({ displayName: ')', name: ')' });\n } else {\n autoListData.push('(');\n autoListData.push(')');\n }\n if (filterText.length > 0) {\n autoListData = autoListData.filter((e) => {\n var propName = currentSelection ? e.displayName : e;\n return (\n propName.toUpperCase().indexOf(filterText.toUpperCase()) !== -1\n );\n });\n }\n for (var i = 0; i < autoListData.length; i++) {\n var autoListElement = document.createElement('DIV');\n var text = currentSelection\n ? autoListData[i].displayName\n : autoListData[i];\n var value = currentSelection\n ? autoListData[i].name\n : autoListData[i];\n autoListElement.innerHTML = '' + text + '';\n autoListElement.innerHTML +=\n \"\";\n autoListElement.innerHTML +=\n \"\";\n autoListElement.addEventListener('click', function (e) {\n var valueofSelected = this.getElementsByTagName('input')[1].value;\n var isOperator =\n $ctrl.mathOperators.indexOf(valueofSelected) !== -1;\n var isBracket = $ctrl.brackets.indexOf(valueofSelected) !== -1;\n var insertTmpl =\n \"' +\n this.getElementsByTagName('input')[0].value +\n '';\n if (cursorPositionElement && cursorPositionElement !== element) {\n var div: any = document.createElement('div');\n div.innerHTML = insertTmpl;\n var filter = (Object as any).assign(\n '',\n cursorPositionElement.data\n );\n if (\n previousChildExists &&\n isSpan(cursorPositionElement.parentNode)\n ) {\n cursorPositionElement.parentNode.setAttribute(\n 'auto-selected-value',\n div.firstChild.getAttribute('auto-selected-value')\n );\n cursorPositionElement.parentNode.innerHTML =\n div.firstChild.innerHTML;\n } else {\n if (element.childNodes.length === 1) {\n if (\n isNaN(\n replaceText(\n cursorPositionElement.nodeValue.replace('=', '')\n )\n )\n )\n cursorPositionElement.nodeValue = '=';\n } else {\n var clear = true;\n if (isOperator || isBracket) {\n clear = isNaN(\n replaceText(cursorPositionElement.nodeValue)\n );\n }\n if (clear) cursorPositionElement.nodeValue = '';\n }\n\n if (cursorPositionElement.nextSibling)\n element.insertBefore(\n div.firstChild,\n cursorPositionElement.nextSibling\n );\n else element.appendChild(div.firstChild);\n }\n } else {\n var lstNode = element.childNodes[element.childNodes.length - 1];\n if (lstNode.nodeType === Node.TEXT_NODE) {\n if (element.childNodes.length === 1) lstNode.nodeValue = '=';\n else lstNode.remove();\n }\n element.innerHTML += insertTmpl;\n }\n insertChar();\n updateFormulaConfig();\n var currentSelection = true;\n if ($ctrl.mathOperators.indexOf(valueofSelected) !== -1) {\n currentSelection = true;\n } else {\n currentSelection = false;\n }\n if (!previousChildExists) buildAutoPopulate(currentSelection);\n });\n autoList.appendChild(autoListElement);\n }\n }\n\n function closeAllLists(elmnt?) {\n var x = document.getElementsByClassName('autocomplete-items');\n for (var i = 0; i < x.length; i++) {\n if (elmnt !== x[i] && elmnt !== element) {\n x[i].parentNode.removeChild(x[i]);\n }\n }\n }\n\n function addActive(x) {\n if (!x) return false;\n removeActive(x);\n if (currentFocus >= x.length) currentFocus = 0;\n if (currentFocus < 0) currentFocus = x.length - 1;\n x[currentFocus].classList.add('autocomplete-active');\n }\n\n function removeActive(x) {\n for (var i = 0; i < x.length; i++) {\n x[i].classList.remove('autocomplete-active');\n }\n }\n\n function updateFormulaConfig() {\n let b = document.createElement('DIV');\n b.innerHTML = element.innerHTML;\n b.innerHTML = replaceText(b.innerHTML, true);\n $ctrl.field.placeholder = b.innerText;\n $ctrl.field.formulaConfig.displayFormula = b.innerHTML;\n $ctrl.field.formulaConfig.formulaOperands = [];\n for (var i = 0; i < element.children.length; i++) {\n var child: any = b.children[0];\n var type = typeOfOperand(child);\n if (type !== OPRTYPE.TEXT) {\n var selectedval = child.attributes.getNamedItem(\n 'auto-selected-value'\n ).value;\n if (type === OPRTYPE.OPERAND) {\n var fieldFound = getOperands().find(\n (e) => e.name === selectedval\n );\n if (fieldFound) {\n $ctrl.field.formulaConfig.formulaOperands.push(selectedval);\n child.replaceWith(selectedval);\n }\n } else {\n child.replaceWith(selectedval);\n }\n }\n }\n $ctrl.field.formulaConfig.formula = b.innerHTML.trim();\n $ctrl.onFieldChange({ cell: $ctrl.field });\n validateFormula();\n }\n\n function updateFormula() {\n var oldDisplayFormula = $ctrl.field.formulaConfig.displayFormula;\n let b = document.createElement('DIV');\n b.innerHTML = angular.copy(oldDisplayFormula, '');\n b.innerHTML = replaceText(b.innerHTML, true);\n if (b.innerHTML.length === 0) b.innerHTML = '=';\n for (var i = 0; i < b.children.length; i++) {\n var child: any = b.children[i];\n var type = typeOfOperand(child);\n if (type === OPRTYPE.OPERAND) {\n var selectedval = child.attributes.getNamedItem(\n 'auto-selected-value'\n ).value;\n var fieldFound = getOperands().find(\n (e) => e.name === selectedval\n );\n if (fieldFound) {\n child.innerText = fieldFound.displayName;\n }\n }\n }\n element.innerHTML = b.innerHTML;\n $ctrl.field.placeholder = b.innerText;\n $ctrl.onFieldChange({ cell: $ctrl.field });\n insertChar();\n }\n\n function validateFormula() {\n if ($ctrl.field.formulaConfig.displayFormula) {\n let b: any = document.createElement('DIV');\n b.innerHTML = angular.copy(\n $ctrl.field.formulaConfig.displayFormula,\n ''\n );\n b.innerHTML = replaceText(b.innerHTML);\n var textNodes = [],\n operatorNodes = [];\n b.childNodes.forEach(function (n) {\n if (n.nodeType === Node.TEXT_NODE) {\n if (n.nodeValue && n.nodeValue !== '=') textNodes.push(n);\n } else {\n operatorNodes.push(n);\n }\n });\n if (textNodes.length > 0) {\n for (var k = 0; k < textNodes.length; k++) {\n var txt = angular.copy(textNodes[k].nodeValue, '');\n if (b.firstChild === textNodes[k]) {\n txt = txt.replace('=', '');\n }\n txt = replaceText(txt);\n isValid = !isNaN(txt);\n if (isValid) {\n if (textNodes[k].previousSibling) {\n var previousType = typeOfOperand(\n textNodes[k].previousSibling\n );\n isValid = previousType !== OPRTYPE.OPERAND;\n }\n if (textNodes[k].nextSibling && isValid) {\n var nextType = typeOfOperand(textNodes[k].nextSibling);\n isValid = nextType !== OPRTYPE.OPERAND;\n }\n }\n if (!isValid) break;\n }\n if (!isValid) {\n $ctrl.error = true;\n $ctrl.errorMessage = 'Text is not allowed';\n return;\n }\n }\n var previousOperand = null;\n var isValid = true;\n operatorNodes.forEach(function (opNode) {\n var type = typeOfOperand(opNode);\n if (type === OPRTYPE.MATH || type === OPRTYPE.OPERAND) {\n if (\n previousOperand !== null &&\n previousOperand === type &&\n isValid\n ) {\n $ctrl.error = true;\n $ctrl.errorMessage = 'Invalid expression';\n isValid = false;\n }\n previousOperand = type;\n }\n });\n if (!isValid) return;\n var formula = angular.copy($ctrl.field.formulaConfig.formula, '');\n if (formula[0] !== '=') {\n $ctrl.error = true;\n $ctrl.errorMessage = 'Invalid expression';\n return;\n }\n formula = formula.replace('=', '');\n var stringDataTypeFound = false;\n for (\n var i = 0;\n i < $ctrl.field.formulaConfig.formulaOperands.length;\n i++\n ) {\n var operand = $ctrl.field.formulaConfig.formulaOperands[i];\n var oprandField = getOperands().find(\n (item) => item.name === operand\n );\n if (oprandField) {\n var replaceVal = isNumericOperand(oprandField)\n ? new Number(1)\n : new String('t');\n formula = formula.replace(operand, replaceVal);\n if (isTextOperand(oprandField)) {\n stringDataTypeFound = true;\n }\n } else {\n $ctrl.error = true;\n $ctrl.errorMessage = 'Invalid expression';\n }\n }\n try {\n formula = formula.trim();\n if (stringDataTypeFound) {\n $ctrl.mathOperators.forEach((e) => {\n if (e !== '+' && formula.indexOf(e) !== -1) {\n $ctrl.error = true;\n $ctrl.errorMessage = 'Invalid expression';\n }\n });\n } else {\n eval(formula);\n }\n $ctrl.error = false;\n $ctrl.errorMessage = '';\n } catch (e) {\n $ctrl.error = true;\n $ctrl.errorMessage = 'Invalid expression';\n }\n }\n }\n\n function onFormFieldsChanged() {\n updateFormula();\n }\n\n function insertChar() {\n element.innerHTML = replaceText(element.innerHTML);\n let div = document.createElement('div');\n for (var i = 0; i < element.childNodes.length; i++) {\n var node = element.childNodes[i];\n if (isSpan(node)) {\n node.setAttribute('contenteditable', 'false');\n node.innerHTML = ' ' + node.innerHTML + ' ';\n }\n div.innerHTML +=\n node.nodeType === Node.TEXT_NODE\n ? node.nodeValue\n : node.outerHTML;\n div.innerHTML += cursor;\n }\n element.innerHTML = div.innerHTML;\n }\n\n function isSpan(node) {\n return node && node.nodeName.toUpperCase() === 'SPAN';\n }\n\n function getCaretPosition(ele) {\n var caretPos = 0,\n sel,\n range;\n if (window.getSelection) {\n sel = window.getSelection();\n if (sel.rangeCount) {\n range = sel.getRangeAt(0);\n if (range.commonAncestorContainer.parentNode === ele) {\n caretPos = range.endOffset;\n }\n }\n } else if (\n (document as any).selection &&\n (document as any).selection.createRange\n ) {\n range = (document as any).selection.createRange();\n if (range.parentElement() === ele) {\n var tempEl = document.createElement('span');\n ele.insertBefore(tempEl, ele.firstChild);\n var tempRange = range.duplicate();\n tempRange.moveToElementText(tempEl);\n tempRange.setEndPoint('EndToEnd', range);\n caretPos = tempRange.text.length;\n }\n }\n return caretPos;\n }\n\n function placeCaretAtEnd(el) {\n el.focus();\n if (\n typeof window.getSelection != 'undefined' &&\n typeof document.createRange != 'undefined'\n ) {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (\n typeof (document.body as any).createTextRange != 'undefined'\n ) {\n var textRange = (document.body as any).createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n }\n\n function getPreviousElementOperation(currentElement) {\n var selElment = currentElement;\n var previousElementFound = false;\n var currentSelection = true;\n while (!previousElementFound) {\n if (selElment === element) {\n currentSelection = true;\n previousElementFound = true;\n } else {\n if (selElment.previousSibling) {\n var type = typeOfOperand(selElment);\n if (type === OPRTYPE.TEXT) {\n var txt = angular.copy(selElment.nodeValue);\n txt = replaceText(txt);\n if (txt === '=') {\n currentSelection = true;\n previousElementFound = true;\n } else if (txt.length > 0 && !isNaN(txt)) {\n currentSelection = false;\n previousElementFound = true;\n } else {\n selElment = selElment.previousSibling;\n }\n } else if (type !== OPRTYPE.BRACKET) {\n previousElementFound = true;\n currentSelection = type === OPRTYPE.MATH;\n } else {\n selElment = selElment.previousSibling;\n }\n } else {\n if (isSpan(selElment.parentNode)) {\n var stype = typeOfOperand(selElment.parentNode);\n previousElementFound = true;\n if (stype !== OPRTYPE.BRACKET)\n currentSelection = stype !== OPRTYPE.MATH;\n } else {\n previousElementFound = true;\n }\n }\n }\n }\n return currentSelection;\n }\n\n function typeOfOperand(ele) {\n if (\n isSpan(ele) &&\n ele.attributes.getNamedItem('auto-selected-value')\n ) {\n var spanVal = ele.attributes.getNamedItem(\n 'auto-selected-value'\n ).value;\n if ($ctrl.brackets.indexOf(spanVal) !== -1) return OPRTYPE.BRACKET;\n else if ($ctrl.mathOperators.indexOf(spanVal) !== -1)\n return OPRTYPE.MATH;\n else return OPRTYPE.OPERAND;\n } else {\n return OPRTYPE.TEXT;\n }\n }\n\n function replaceText(txt, noSpace?) {\n if (txt && txt !== null) {\n txt = txt.replace(/\\u200C/g, '');\n if (!noSpace) txt = txt.replace(/ /g, '');\n }\n return txt;\n }\n }\n ]\n });\n})();\n","/**\n * @name iconPicker\n * @module flowingly.components\n * @description Displays an interface for choosing a font awesome icon\n * \n * @usage\n * ```\n \n * ```\n */\n'use strict';\n\nimport angular from 'angular';\n\nexport default class IconPickerComponentController {\n // Bindings\n private icon: string;\n\n private icons = [];\n\n constructor() {}\n\n $onInit() {\n Array.from(document.styleSheets).forEach((css) => {\n try {\n const firstRule =\n css.cssRules && css.cssRules.length > 0 && css.cssRules[0];\n if (\n !firstRule ||\n typeof firstRule.cssText !== 'string' ||\n firstRule.cssText.indexOf('Font Awesome 6 Pro') === -1\n ) {\n return;\n }\n } catch (e) {\n // Remote stylesheets will not let us read their rules\n return;\n }\n\n let skipping = false;\n\n Array.from(css.cssRules).forEach((rule: CSSStyleRule) => {\n if (\n skipping ||\n typeof rule.selectorText !== 'string' ||\n rule.selectorText.indexOf('::before') === -1\n ) {\n return;\n }\n\n const name = rule.selectorText.split(':')[0].replace('.', '');\n if (name === 'fa-monero') {\n // Currently this is the first of the Brand icons\n // We don't support these so skip the rest\n skipping = true;\n return;\n }\n // shorter names are helper classes e.g. fa-xl\n if (name.length > 5) {\n this.icons.push({\n name: name,\n visible: true\n });\n }\n });\n });\n }\n\n setIcon(name) {\n this.icon = name;\n }\n\n search(term) {\n if (term === '') {\n this.icons.forEach((icon) => {\n icon.visible = true;\n });\n return;\n }\n term = term.toLowerCase();\n this.icons.forEach((icon) => {\n icon.visible = icon.name.indexOf(term) > -1;\n });\n }\n}\n\nexport class IconPickerComponent implements angular.IComponentOptions {\n public templateUrl = 'icon.picker.component.tmpl.html';\n public controllerAs = 'ctrl';\n public bindings = {\n icon: '='\n };\n\n controller = IconPickerComponentController;\n}\n\nangular\n .module('flowingly.components')\n .component('iconPicker', new IconPickerComponent());\n","import { SharedAngular } from '@Angular.Runner/@types/sharedAngular';\nimport { LookupSpecialFields } from '@Shared.Angular/@types/core/contracts/queryModel/workflow/lookupSpecialFields';\n\nangular.module('flowingly.components').component('lookupConfig', {\n bindings: {\n field: '=',\n allFields: '<',\n cells: '<',\n onFieldChange: '&'\n },\n templateUrl: 'lookup.config.component.tmpl.html',\n controller: [\n '$http',\n '$timeout',\n 'APP_CONFIG',\n 'customdbService',\n 'guidService',\n 'kendoHelper',\n '$q',\n function (\n $http,\n $timeout,\n APP_CONFIG: SharedAngular.APP_CONFIG,\n customdbService: SharedAngular.CustomdbService,\n guidService,\n kendoHelper,\n $q\n ) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const $ctrl = this;\n $ctrl.allDbs = [];\n $ctrl.displayValueOptions = [];\n $ctrl.valueOptions = [];\n $ctrl.randomId = guidService.new();\n\n $ctrl.instance = {};\n\n const databasesApiBaseUrl = APP_CONFIG.apiBaseUrl + 'customdatabase';\n\n $ctrl.$onInit = () => {\n $ctrl.isReady = false;\n if ($ctrl.field.lookupConfig === undefined) {\n $ctrl.field.lookupConfig = {\n dbName: '',\n displayValue: '',\n queryValue: '',\n value: undefined\n };\n }\n\n // FLOW-6927 If EnableLookupFieldCurrentActorOptions is toggeld off then we need to unset the previously set\n // lookup fields that had Current Actor options. By this way at the time of publish validation will trigger and\n // forces the Flow Model Admin to change the value or turn the business setting back on again, which means\n // toggle on and off works as they are intended.\n if (\n !APP_CONFIG.enableLookupFieldCurrentActorOptions &&\n ($ctrl.field.lookupConfig.value ===\n LookupSpecialFields.CurrentActorFullName ||\n $ctrl.field.lookupConfig.value ===\n LookupSpecialFields.CurrentActorEmail)\n ) {\n $ctrl.field.lookupConfig.value = undefined;\n }\n\n $timeout(() => {\n $ctrl.instance.kendoQuery = (\n angular.element('#lookupQueryValue_' + $ctrl.randomId) as any\n )\n .kendoDropDownList({\n dataSource: $ctrl.displayValueOptions,\n dataTextField: 'name',\n dataValueField: 'name',\n clearButton: false\n })\n .data('kendoDropDownList');\n\n $ctrl.instance.kendoDisplay = (\n angular.element('#lookupDisplayValue_' + $ctrl.randomId) as any\n )\n .kendoDropDownList({\n dataSource: $ctrl.displayValueOptions,\n dataTextField: 'name',\n dataValueField: 'name',\n clearButton: false\n })\n .data('kendoDropDownList');\n\n $ctrl.instance.kendoDb = (\n angular.element('#lookupDBValue_' + $ctrl.randomId) as any\n )\n .kendoDropDownList({\n dataSource: $ctrl.allDbs,\n dataTextField: 'name',\n dataValueField: 'name',\n clearButton: false\n })\n .data('kendoDropDownList');\n }).then(() => {\n const lookupConfig = $ctrl.field.lookupConfig;\n return $q\n .all([\n customdbService.getAllDatabases(),\n lookupConfig.dbName &&\n customdbService.getColumns(lookupConfig.dbName)\n ])\n .then(([allDbs, currColumns]) => {\n // work out the valueOptions for filters which are\n // short text|number|dropdown list|option list|currency|email\n // fields before current field\n $ctrl.valueOptions = customdbService.populateValueOptions(\n { allFields: $ctrl.allFields, cells: $ctrl.cells },\n $ctrl.field,\n undefined,\n shouldAddCurrentActorOptions()\n );\n $ctrl.allDbs = allDbs;\n\n $ctrl.instance.kendoDb.setDataSource($ctrl.allDbs);\n if (lookupConfig.dbName) {\n $ctrl.instance.kendoQuery.setDataSource(currColumns);\n $ctrl.instance.kendoDisplay.setDataSource(currColumns);\n\n kendoHelper.selectByCriteria($ctrl.instance.kendoDb, {\n name: lookupConfig.dbName\n });\n\n if (lookupConfig.queryValue) {\n kendoHelper.selectByCriteria($ctrl.instance.kendoQuery, {\n name: lookupConfig.queryValue\n });\n }\n if (lookupConfig.displayValue) {\n kendoHelper.selectByCriteria($ctrl.instance.kendoDisplay, {\n name: lookupConfig.displayValue\n });\n }\n }\n return $ctrl.populateQueryAndDisplayColumns(); // populate the query/and dispaly columns\n })\n .then(() => {\n $ctrl.isReady = true;\n });\n });\n };\n\n $ctrl.$onDestroy = function () {\n $ctrl.allDbs = [];\n $ctrl.displayValueOptions = [];\n $ctrl.valueOptions = [];\n };\n\n $ctrl.onDbNameChange = () => $ctrl.populateQueryAndDisplayColumns();\n\n $ctrl.populateQueryAndDisplayColumns = (\n suppressSubmitFieldChangeNotification: boolean\n ) => {\n console.log($ctrl.field.displayName + ': enter onDbNameChange');\n\n // reset values\n $ctrl.displayValueOptions = [];\n\n if (\n $ctrl.field.lookupConfig.dbName &&\n $ctrl.field.lookupConfig.dbName !== ''\n ) {\n console.log(\n $ctrl.field.displayName +\n `: API getting all columns ${$ctrl.field.lookupConfig.dbName}`\n );\n return $http\n .get(\n `${databasesApiBaseUrl}/columns/${$ctrl.field.lookupConfig.dbName}`,\n { noSpinner: true }\n )\n .then(function (response) {\n const idColumnIndex = response.data.findIndex(\n (d) => d.name === 'Id'\n );\n const customIdColumnIndex = response.data.findIndex(\n (d) => d.name === 'customdatabaseid'\n );\n\n if (idColumnIndex >= 0 && customIdColumnIndex < 0) {\n response.data.splice(idColumnIndex, 1);\n } else if (customIdColumnIndex >= 0) {\n response.data.splice(customIdColumnIndex, 1);\n }\n\n $ctrl.displayValueOptions = response.data;\n\n setQueryValueOptionAndEnablement({\n options: $ctrl.displayValueOptions,\n enable: true\n });\n\n $timeout(() => {\n angular\n .element('#lookupQueryValue_' + $ctrl.randomId)\n .data('kendoDropDownList')\n .value($ctrl.field.lookupConfig.queryValue);\n angular\n .element('#lookupQueryValue_' + $ctrl.randomId)\n .data('kendoDropDownList')\n .text($ctrl.field.lookupConfig.queryValue || '');\n\n angular\n .element('#lookupDisplayValue_' + $ctrl.randomId)\n .data('kendoDropDownList')\n .value($ctrl.field.lookupConfig.displayValue);\n angular\n .element('#lookupDisplayValue_' + $ctrl.randomId)\n .data('kendoDropDownList')\n .text($ctrl.field.lookupConfig.displayValue || '');\n }, 200);\n\n // work out the valueOptions for filters which are short text/number/dropdown list/option list/currency/email fields before current field\n $ctrl.valueOptions = customdbService.populateValueOptions(\n { allFields: $ctrl.allFields, cells: $ctrl.cells },\n $ctrl.field,\n undefined,\n shouldAddCurrentActorOptions()\n );\n if (\n suppressSubmitFieldChangeNotification &&\n suppressSubmitFieldChangeNotification == true\n ) {\n return;\n }\n // submit changes\n $ctrl.submitFieldChange({ cell: $ctrl.field });\n });\n } else {\n return $q.resolve();\n }\n };\n\n $ctrl.onDisplayColumnChange = () => {\n const optionName = $ctrl.field.lookupConfig.displayValue;\n $ctrl.field.lookupConfig.displayValueType = _.chain(\n $ctrl.displayValueOptions\n )\n .find({ name: optionName })\n .get('dataType')\n .value();\n $ctrl.submitFieldChange();\n };\n\n $ctrl.onQueryColumnChange = () => {\n $ctrl.submitFieldChange();\n };\n\n $ctrl.submitFieldChange = (isQueryColumn, isDisplayColumn) => {\n if (\n $ctrl.field.lookupConfig.value ===\n LookupSpecialFields.CurrentActorFullName ||\n $ctrl.field.lookupConfig.value ===\n LookupSpecialFields.CurrentActorEmail\n ) {\n // reset values\n $ctrl.displayValueOptions = [];\n\n setQueryValueOptionAndEnablement({\n options: $ctrl.displayValueOptions,\n enable: false\n });\n\n $timeout(() => {\n angular\n .element('#lookupQueryValue_' + $ctrl.randomId)\n .data('kendoDropDownList')\n .value($ctrl.field.lookupConfig.queryValue);\n angular\n .element('#lookupQueryValue_' + $ctrl.randomId)\n .data('kendoDropDownList')\n .text($ctrl.field.lookupConfig.queryValue || '');\n\n angular\n .element('#lookupDisplayValue_' + $ctrl.randomId)\n .data('kendoDropDownList')\n .value($ctrl.field.lookupConfig.displayValue);\n angular\n .element('#lookupDisplayValue_' + $ctrl.randomId)\n .data('kendoDropDownList')\n .text($ctrl.field.lookupConfig.displayValue || '');\n }, 200);\n } else {\n $ctrl.populateQueryAndDisplayColumns(true);\n }\n if ($ctrl.field) {\n $ctrl.onFieldChange({ cell: $ctrl.field });\n }\n };\n\n function setQueryValueOptionAndEnablement(config) {\n const queryValueDropdown = angular\n .element('#lookupQueryValue_' + $ctrl.randomId)\n .data('kendoDropDownList');\n if (queryValueDropdown) {\n queryValueDropdown.setDataSource(config.options);\n queryValueDropdown.enable(config.enable);\n }\n\n const displayValueDropdown = angular\n .element('#lookupDisplayValue_' + $ctrl.randomId)\n .data('kendoDropDownList');\n if (displayValueDropdown) {\n displayValueDropdown.setDataSource(config.options);\n displayValueDropdown.enable(config.enable);\n }\n\n $timeout(() => {\n angular\n .element('#lookupQueryValue_' + $ctrl.randomId)\n .data('kendoDropDownList')\n .value($ctrl.field.lookupConfig.queryValue);\n angular\n .element('#lookupQueryValue_' + $ctrl.randomId)\n .data('kendoDropDownList')\n .text($ctrl.field.lookupConfig.queryValue || '');\n\n angular\n .element('#lookupDisplayValue_' + $ctrl.randomId)\n .data('kendoDropDownList')\n .value($ctrl.field.lookupConfig.displayValue);\n angular\n .element('#lookupDisplayValue_' + $ctrl.randomId)\n .data('kendoDropDownList')\n .text($ctrl.field.lookupConfig.displayValue || '');\n }, 200);\n }\n\n function shouldAddCurrentActorOptions() {\n return APP_CONFIG.enableLookupFieldCurrentActorOptions;\n }\n }\n ]\n});\n","/**\n * @ngdoc directive\n * @name mention\n * @module flowingly.components\n * @description This is a component for editing text contents with ability to search mentions\n *\n * Input attributes\n * contents: the text contents reference, we need to use reference here,\n * then the place that consumes this component can get the latest text contents easily\n * debounceInterval: the interval in milliseconds for model debounce option,\n * eg. how long to wait between model changes and searching API for match mentions\n *\n * @usage\n * ```\n * \n * ```\n */\n\nimport * as angular from 'angular';\nimport { ICommentMention } from '../../interfaces/comment-mention.interface';\nimport { ActorType } from '../../interfaces/actor-type.enum';\nimport { Services } from '@Shared.Angular/@types/services';\nimport { AddCommentComponentController } from '../comments/add-comment.component';\n\nclass MentionComponentController {\n static $inject = [\n '$q',\n '$scope',\n 'commentApiService',\n 'flowinglyMentionService',\n 'avatarService',\n 'validationService'\n ];\n public contents: string;\n public commentTargetId: string;\n public flowOwnerOnly: string;\n public debounceInterval: number;\n public hasXssVulnerableString = false;\n public resultStack: ICommentMention[][] = [];\n public everyoneMentioned = false;\n private everyoneActorId: string;\n\n constructor(\n private $q: ng.IQService,\n private $scope: angular.IScope,\n private commentApiService: Services.CommentApiService,\n private flowinglyMentionService: Services.FlowinglyMentionService,\n private avatarService: Services.AvatarService,\n private validationService: Services.ValidationService\n ) {}\n\n $onInit() {\n this.debounceInterval = this.debounceInterval || 500;\n this.$scope.$on(AddCommentComponentController.COMMENT_RESET_EVENT, () => {\n this.contents = '';\n this.onContentsChange();\n });\n\n // Add an event listener for the Enter key\n this.addEnterKeyListener();\n }\n\n /**\n * Add an event listener to handle the Enter key in the contenteditable element.\n */\n addEnterKeyListener() {\n const contentEditableElement = document.querySelector('.mention-contents');\n if (contentEditableElement) {\n contentEditableElement.addEventListener('keydown', (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n document.execCommand('insertHTML', false, '

');\n\n // Scroll to the bottom of the contentEditable element\n contentEditableElement.scrollTop =\n contentEditableElement.scrollHeight;\n }\n });\n }\n }\n\n /**\n * Find the first finished result in the execution stack.\n * The topmost can be null (because the request have not come back yet)\n */\n get searchResult() {\n for (let i = this.resultStack.length - 1; i >= 0; i--) {\n const result = this.resultStack[i];\n if (result) return result;\n }\n }\n\n searchAvailableMentions(term: string) {\n if (term.length > 0) {\n const index = this.resultStack.push(null) - 1; // placeholder\n\n return this.commentApiService\n .searchMentions(\n term,\n this.flowOwnerOnly === 'true',\n this.commentTargetId,\n false\n )\n .then((data: ICommentMention[]) => {\n data.forEach((mention) => {\n mention.avatarUrl = this.avatarService.getAvatarUrl(\n mention.actorId\n );\n });\n\n this.resultStack[index] = data;\n return this.$q.when(data);\n });\n }\n }\n\n onMentionSelect(item: ICommentMention): string {\n if (item.actorName == 'Everyone' && item.actorTypeId === ActorType.Team) {\n this.everyoneActorId = item.actorId;\n this.everyoneMentioned = true;\n }\n\n return this.flowinglyMentionService.transformMentionForDisplay(item);\n }\n\n onContentsChange() {\n this.everyoneMentioned =\n this.everyoneActorId &&\n this.contents.indexOf(`actor-id=\"${this.everyoneActorId}\"`) > -1;\n this.hasXssVulnerableString = false;\n const commentContents: string =\n this.flowinglyMentionService.transformMentionDisplayToStore(\n this.contents || ''\n );\n\n if (this.validationService.isXssVulnerableString(commentContents)) {\n this.hasXssVulnerableString = true;\n }\n }\n\n handlePaste(e): void {\n e.preventDefault();\n const copyData = e.originalEvent.clipboardData.getData('text/plain');\n\n if (this.flowinglyMentionService.trimSpaces(copyData) !== '') {\n this.contents += copyData;\n }\n }\n}\n\nexport class MentionComponent implements angular.IComponentOptions {\n public bindings: any;\n public templateUrl: string;\n\n constructor() {\n this.bindings = {\n contents: '=',\n debounceInterval: '\n * ```\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/04c5ea8eba7bf8961358cbf6f93bb688a37854a4/src/Flowingly.Shared.Angular/flowingly.components/optional.text.component.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\n\nangular.module('flowingly.components').component('flowOptionalText', {\n bindings: {\n isRequired: '<'\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n controller: function () {},\n template: ''\n});\n","import * as angular from 'angular';\nimport SessionTimeoutNotifierBridge from './bridges/SessionTimeoutNotifierBridge';\n\nangular\n .module('flowingly.components')\n .component('sessionTimeoutNotifier', SessionTimeoutNotifierBridge);\n","/*\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/430e5d24428db28582955b079d7c74af3a8619e2/src/Flowingly.Shared.Angular/flowingly.components/smartselect/smart.select.component.js?at=master\n */\n(function () {\n 'use strict';\n\n angular\n .module('flowingly.components')\n ///\n /// A container component for smart select components. Handles communication between them.\n /// -\n /// -\n ///\n /// See Also: https://bizflo.atlassian.net/wiki/display/TECH/Angular+Smart+Select+Component\n ///\n .component('smartSelect', {\n bindings: {\n //list of items the user can search from (will populate LHS of smart-select-list)\n searchGroup: '<',\n selectedList: '<',\n filterBy: ' {\n if (changes.selectedList && !changes.selectedList.isFirstChange()) {\n if ($ctrl.searchList && $ctrl.searchList.length > 0) {\n // refresh the search list in case of selected list changed\n updateList($ctrl.searchList, $ctrl.searchGroup);\n }\n }\n };\n\n function updateList(results, searchGroup) {\n ///\n /// The user has changed the search filter (search group - user/group)\n /// Update the search list (will appear on LHS smart-select-list)\n /// But first, remove any items that have already been selected (are in RHS of smart-select-list)\n ///\n switch (searchGroup) {\n case flowinglyConstants.searchEntityType.USER:\n lodashService.forEach(results, function (r) {\n r.displayName = r.displayName || r.fullName;\n r.searchEntityType = flowinglyConstants.searchEntityType.USER;\n });\n break;\n\n case flowinglyConstants.searchEntityType.GROUP:\n lodashService.forEach(results, function (r) {\n r.displayName = r.displayName || r.name;\n r.searchEntityType =\n flowinglyConstants.searchEntityType.GROUP;\n });\n break;\n\n case flowinglyConstants.searchEntityType.APPROVER:\n lodashService.forEach(results, function (r) {\n r.displayName = r.displayName || r.fullName;\n r.searchEntityType = flowinglyConstants.searchEntityType.USER;\n });\n break;\n\n case flowinglyConstants.searchEntityType.STEP_FORM_FIELD:\n lodashService.forEach(results, function (r) {\n r.displayName = r.displayName;\n r.searchEntityType =\n flowinglyConstants.searchEntityType.STEP_FORM_FIELD;\n });\n break;\n\n default:\n console.error('unknown filter group');\n }\n\n //remove any that are already selected\n $ctrl.searchList = removeDuplicates(results, $ctrl.selectedList);\n }\n\n function removeDuplicates(arrayOne, arrayTwo) {\n //remove any item from arrayOne that is also in arrayTwo.\n return lodashService.differenceWith(\n arrayOne,\n arrayTwo,\n function (a, b) {\n return a.id === b.id;\n }\n );\n }\n }\n ],\n template: `\n
\n \n \n\n \n \n
\n `\n });\n})();\n","import { ExternalUserValidationResult } from '@Shared.Angular/@types/core/contracts/queryModel/user/ExternalUserValidationResult';\nimport { UserApiServiceType } from '@Shared.Angular/flowingly.services/flowingly.user.api.service';\nimport { GuidServiceType } from '@Shared.Angular/flowingly.services/guid.service';\nimport { ValidationServiceType } from '@Shared.Angular/flowingly.services/validation.service';\n\n/*\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/0259ccb38b1aed72cf2327fdafae455ab3ae5029/src/Flowingly.Shared.Angular/flowingly.components/smartselect/smart.select.list.component.js?at=master\n */\n(function () {\n 'use strict';\n\n angular\n .module('flowingly.components')\n ///\n /// A component for enabling a user to easily select/unselect entities to publish a flow to.\n ///\n /// See Also: https://bizflo.atlassian.net/wiki/display/TECH/Angular+Smart+Select+Component\n ///\n .component('smartSelectList', {\n bindings: {\n searchList: '<',\n searchGroup: '<',\n selectedList: '=',\n filterBy: ' {\n return (\n smartSelectService.getHasMoreResults() &&\n ($ctrl.searchGroup === flowinglyConstants.searchEntityType.USER ||\n $ctrl.searchGroup ===\n flowinglyConstants.searchEntityType.APPROVER)\n );\n };\n\n $ctrl.searchTermChanged = () => {\n if (!$ctrl.hasMoreResults()) {\n return;\n }\n\n if (\n $ctrl.searchGroup === flowinglyConstants.searchEntityType.USER\n ) {\n smartSelectService\n .getUsers($ctrl.searchTerm)\n .then(function (response) {\n $ctrl.onSelectedListUpdated({\n results: response.data.userDetailForModals,\n searchGroup: $ctrl.searchGroup\n });\n });\n } else {\n smartSelectService\n .getAvailableApprovers($ctrl.filterBy, $ctrl.searchTerm)\n .then(function (response) {\n $ctrl.onSelectedListUpdated({\n results: response.data.dataModel.availableStepApprovers,\n searchGroup: $ctrl.searchGroup\n });\n });\n }\n };\n\n this.$onInit = function () {\n //IE11 polyfill\n if (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return (\n this.substr(position, searchString.length) === searchString\n );\n };\n }\n\n lodashService.forEach($ctrl.selectedList, function (item) {\n filterGroupMembers(item);\n });\n };\n\n //// PUBLIC METHODS /////////////////////////////////////////\n\n function addAll() {\n lodashService.forEach($ctrl.searchList, function (item) {\n $ctrl.selectedList.push(item);\n filterGroupMembers(item);\n });\n $ctrl.searchList.length = 0;\n }\n\n function deselect(item) {\n if ($ctrl.readOnly) {\n return;\n }\n\n // Remove the item from the selected list\n var index = lodashService.findIndex(\n $ctrl.selectedList,\n function (i) {\n return i.id === item.id;\n }\n );\n $ctrl.selectedList.splice(index, 1);\n\n // add it to the input list, if it meets the current search criteria used to filter the list\n // the list itself will be for a particular user type and the list will then be filtered by the search box\n var searchGroup = $ctrl.searchGroup;\n if (searchGroup === flowinglyConstants.searchEntityType.APPROVER) {\n searchGroup = flowinglyConstants.searchEntityType.USER;\n }\n\n if (\n $ctrl.searchGroup === undefined ||\n searchGroup === item.searchEntityType\n ) {\n $ctrl.searchList.push(item);\n }\n }\n\n function filter(item) {\n if ($ctrl.searchTerm == undefined) {\n return true;\n }\n //we search on the display name, split it into two parts\n var split = item.displayName.split(' ');\n var firstname = split[0];\n //Groups only have a firstname\n var lastname = '';\n if (split.length > 1) {\n lastname = split[1];\n }\n //get the search terms, if the user has entered 2 (or more) grab the first two for more precise searchin\n //first term will search firstname, second term will search lastname\n var terms = $ctrl.searchTerm.split(' ');\n if (terms.length === 1) {\n return (\n firstname\n .toLowerCase()\n .startsWith($ctrl.searchTerm.toLowerCase()) ||\n lastname\n .toLowerCase()\n .startsWith($ctrl.searchTerm.toLowerCase())\n );\n } else {\n return (\n firstname.toLowerCase().startsWith(terms[0].toLowerCase()) &&\n lastname.toLowerCase().startsWith(terms[1].toLowerCase())\n );\n }\n }\n\n function removeAll() {\n var searchGroup = $ctrl.searchGroup;\n if (searchGroup === flowinglyConstants.searchEntityType.APPROVER) {\n searchGroup = flowinglyConstants.searchEntityType.USER;\n }\n\n if ($ctrl.searchGroup === undefined) {\n //copy all selected items back to search list\n $ctrl.searchList = $ctrl.searchList.concat($ctrl.selectedList);\n } else {\n //find all items that match current group\n var filtered = lodashService.filter(\n $ctrl.selectedList,\n function (item) {\n return (\n item.searchEntityType === searchGroup ||\n item.itemGroup === searchGroup\n );\n }\n );\n $ctrl.searchList = $ctrl.searchList.concat(filtered);\n }\n\n $ctrl.selectedList.length = 0;\n }\n\n function select(item) {\n if ($ctrl.readOnly) {\n return;\n }\n\n filterGroupMembers(item);\n\n //when an item is selected, copy it to the RHS and remove from the LHS\n var index = lodashService.findIndex($ctrl.searchList, function (i) {\n return i.id === item.id;\n });\n $ctrl.searchList.splice(index, 1);\n $ctrl.selectedList.push(item);\n }\n\n function filterGroupMembers(item) {\n if (\n item.searchEntityType ===\n flowinglyConstants.searchEntityType.GROUP\n ) {\n item.filteredGroupMembers =\n item.users &&\n item.users.filter((user) => {\n return $ctrl.expandGroupMembersFilter({ user: user });\n });\n }\n }\n\n function addCustomEmailInput(emailForm) {\n if ($ctrl.isAddDisabled) return;\n $ctrl.isAddDisabled = true;\n $ctrl.resetCustomEmailInput();\n const userExists = $ctrl.selectedList.some(\n (u) => u.displayName === $ctrl.customEmailInput\n );\n if (userExists) {\n $ctrl.showDuplicateUserErrorMessage = true;\n $ctrl.isAddDisabled = false;\n return;\n }\n userApiService\n .isValidExternalUser($ctrl.customEmailInput)\n .then((response: ExternalUserValidationResult) => {\n if (response.isValid) {\n const user = {\n displayName: $ctrl.customEmailInput,\n searchEntityType:\n flowinglyConstants.searchEntityType.CUSTOM_EMAIL\n };\n $ctrl.selectedList.push(user);\n $ctrl.customEmailInput = '';\n } else {\n emailForm.customEmailInput.$setValidity(\n 'apiValidation',\n false\n );\n }\n })\n .finally(() => {\n $ctrl.isAddDisabled = false;\n });\n }\n\n function onEmailInputChange(emailForm) {\n if (emailForm.customEmailInput.$error?.apiValidation) {\n emailForm.customEmailInput.$setValidity('apiValidation', true);\n }\n $ctrl.resetCustomEmailInput();\n }\n\n $ctrl.resetCustomEmailInput = () => {\n $ctrl.showDuplicateUserErrorMessage = false;\n };\n }\n ],\n template: `\n
\n
\n \n \n
\n
    \n
  • {{item.displayName}}
  • \n
  • {{item.displayName}}
  • \n
\n
\n
Please search to see additional users
\n 0 && !$ctrl.readOnly && !$ctrl.hasMoreResults()\" class=\"pl-5\">Add All\n
\n\n
\n
\n \n
\n \n
\n
{{$ctrl.headerText || ' '}}
\n {{$ctrl.infoText || ' '}}\n
\n
\n
    \n
  • \n {{item.displayName}}\n
      0\" class=\"filtered-group-members\">\n
    • {{member.fullName}}
    • \n
    \n
  • \n
\n
\n 0 && !$ctrl.readOnly\" class=\"pl-5\">Remove All\n
\n
\n `\n });\n})();\n","import { FlowinglyConstantsType } from '@Shared.Angular/flowingly.services/flowingly.constants';\n\n/*\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/430e5d24428db28582955b079d7c74af3a8619e2/src/Flowingly.Shared.Angular/flowingly.components/smartselect/smart.select.search.component.js?at=master\n */\n(function () {\n 'use strict';\n\n angular\n .module('flowingly.components')\n ///\n /// A component for retrieving list of entities that the user can publish to\n /// User as input to a smart-select-list\n ///\n /// See Also: https://bizflo.atlassian.net/wiki/display/TECH/Angular+Smart+Select+Component\n ///\n .component('smartSelectSearch', {\n bindings: {\n searchGroup: '=',\n searchResults: '=?',\n filterBy: '\n
    \n
  • \n
  • \n
  • \n
  • \n
\n \n `\n });\n})();\n","/**\n * @ngdoc service\n * @name smartSelectService\n * @module flowingly.components\n *\n * @description A service responsible solely for smart select component\n */\n\nangular\n .module('flowingly.components')\n .factory('smartSelectService', smartSelectService);\n\nsmartSelectService.$inject = ['$http', 'APP_CONFIG', 'flowinglyConstants'];\n\nfunction smartSelectService($http, APP_CONFIG, flowinglyConstants) {\n let hasMoreResults = false;\n\n function getUsers(searchTerm) {\n return $http.get(\n APP_CONFIG.apiBaseUrl +\n `users/search?maxNumberOfUsersToShow=${\n flowinglyConstants.maxNumberOfUsersToShow\n }${searchTerm ? '&searchTerm=' + searchTerm : ''}`\n );\n }\n\n function getGroups() {\n return $http.get(APP_CONFIG.apiBaseUrl + 'teams?includeDetails=false');\n }\n\n function getAvailableApprovers(filter, searchTerm, noSpinner) {\n return $http.get(\n `${\n APP_CONFIG.apiBaseUrl\n }flows/${filter}/availableStepApprovers?maxNumberOfUsersToShow=${\n flowinglyConstants.maxNumberOfUsersToShow\n }${searchTerm ? '&searchTerm=' + searchTerm : ''}`,\n { noSpinner: noSpinner || false }\n );\n }\n\n function getHasMoreResults() {\n return hasMoreResults;\n }\n\n function setHasMoreResults(val) {\n hasMoreResults = val;\n }\n const service = {\n getUsers: getUsers,\n getGroups: getGroups,\n getAvailableApprovers: getAvailableApprovers,\n getHasMoreResults: getHasMoreResults,\n setHasMoreResults: setHasMoreResults\n };\n\n return service;\n}\n","/**\n * @ngdoc directive\n * @name flowTableBuilderCell\n * @module flowingly.components\n * @description This comppnent represents a cell within the table builder.\n * https://bizflo.atlassian.net/wiki/display/TECH/Angular+Dynamic+Table+Builder\n * ### Notes\n * This component displays the cell contents (after editing)\n * It is not possible to use expressions in ng-switch-when, so we cannot for example do:\n * ng-switch-when=\"$ctrl.types.file\"\n * ng-switch-when=\"{{$ctrl.types.file}}\"\n * ### Properties\n * * cell : the cell to be rendered\n * * onCellClicked : method to call each time the cell is clicked\n * * onCellDeleteClicked : method to call each time the cell delete button is clicked\n * @usage\n * ```\n \n \n * ```\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/deaa3e49cef09006e53d6351564e8e4ba65c1f62/src/Flowingly.Shared.Angular/flowingly.components/tablebuilder/table.builder.cell.component.js?at=master\n */\n(function () {\n 'use strict';\n\n angular.module('flowingly.components').component('flowTableBuilderCell', {\n bindings: {\n cell: '<',\n cellCount: '<',\n onCellClicked: '&',\n onCellDeleteClicked: '&'\n },\n controller: function () {\n var $ctrl = this;\n $ctrl.dateSelectorOptions = {\n start: 'year',\n depth: 'day'\n };\n },\n templateUrl: 'table.builder.cell.component.tmpl.html'\n });\n})();\n","/**\n * @ngdoc directive\n * @name flowTableBuilderCellEditor\n * @module flowingly.components\n * @description This comppnent displays an editor used to configure the cells of a table.\n * https://bizflo.atlassian.net/wiki/display/TECH/Angular+Dynamic+Table+Builder\n * ### Notes\n * ### Properties\n * * cell : the cell to be edited\n * * cells : a list of all cells\n * * onCellChanged : method to call each time the cell format is changed\n * * onOverlayClicked : method to call each time the overlay is clicked\n * @usage\n * ```\n \n * ```\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/825435bf2da8dee2e2049804b1c5a431dfc7b33c/src/Flowingly.Shared.Angular/flowingly.components/tablebuilder/table.builder.cell.editor.component.js?at=master\n */\n(function () {\n 'use strict';\n\n angular\n .module('flowingly.components')\n .component('flowTableBuilderCellEditor', {\n bindings: {\n cell: '<',\n cells: '<', //list of all cells\n allFields: '<',\n fieldName: '<',\n onCellChanged: '&',\n onOverlayClicked: '&'\n },\n require: {\n parent: '^flowTableBuilder'\n },\n controller: [\n '$element',\n 'APP_CONFIG',\n function ($element, APP_CONFIG) {\n var _lastHeight = 0; //height of the container, the last time a cell was edited\n var $ctrl = this;\n\n this.$onInit = function () {\n $ctrl.types = $ctrl.parent.types;\n $ctrl.options = [\n { value: $ctrl.types.text, text: 'Text' },\n { value: $ctrl.types.currency, text: 'Currency' },\n { value: $ctrl.types.number, text: 'Number' },\n { value: $ctrl.types.file, text: 'File Upload' },\n { value: $ctrl.types.date, text: 'Date' },\n { value: $ctrl.types.dropdown, text: 'Dropdown List' },\n { value: $ctrl.types.lookup, text: 'Lookup' }\n ];\n if (APP_CONFIG.enableTableFormula) {\n $ctrl.options.push({\n value: $ctrl.types.formula,\n text: 'Formula'\n });\n }\n\n if (\n $ctrl.cell.type === $ctrl.types.dropdown &&\n $ctrl.cell.dbDataSource === undefined\n ) {\n $ctrl.cell.dbDataSource = {\n dbName: '',\n displayValue: '',\n filters: [\n {\n column: '',\n operation: '',\n value: ''\n }\n ]\n };\n } else if (\n $ctrl.cell.type === $ctrl.types.lookup &&\n $ctrl.cell.lookupConfig === undefined\n ) {\n $ctrl.cell.lookupConfig = {\n dbName: '',\n displayValue: '',\n queryValue: '',\n value: ''\n };\n }\n };\n\n this.$onChanges = function (changes) {\n if (changes.cell) {\n //make a copy of the data - this breaks two way binding.\n // [ Data passed down through one-way bindings are not $watch-ed by Angular,\n // however they are passed by reference. This means any changes we make to Objects\n // (specifically, primitives are not bound by reference) actually affect the parent ]\n this.cell = angular.copy(this.cell);\n\n formatEditor($ctrl.cell);\n }\n if (changes.cells) {\n //open editor at this index\n var cell = $ctrl.cells[$ctrl.cells.length - 1];\n formatEditor(cell);\n $ctrl.cell = cell;\n }\n };\n\n function formatEditor(cell) {\n //this method moves the editor window so that it is in line with the cell it is editing.\n if (cell != undefined) {\n const rawElement = document.getElementById(\n `${$ctrl.fieldName}_cell_${cell.id}`\n );\n if (rawElement !== null) {\n const cellElement = angular.element(rawElement)[0];\n const builderRow = cellElement.offsetParent;\n if (builderRow === null) {\n return;\n // Repositioning the table field on the form triggers this function\n // but during the move there's no offsetParent\n }\n cell.x = cellElement.offsetLeft;\n cell.y = cellElement.offsetTop;\n cell.w = builderRow.offsetWidth;\n\n const cellWidth = 575;\n const cellHeight = 100;\n const editor = angular.element(\n $element[0].getElementsByClassName(\n 'flow-table-builder-cell-editor'\n )\n );\n //cell.w is the width of the containing row (flow-table-builder-row).\n //take into account space available to the right\n let xPos = cell.x - 20;\n if (xPos + cellWidth > cell.w) {\n xPos = cell.w - cellWidth;\n }\n\n editor.css('left', xPos + 'px');\n editor.css('top', cell.y + cellHeight + 'px');\n }\n\n //finally update the height of the container to accomodate the editor\n updateContainerHeight(cell);\n } else {\n //reset the container height\n updateContainerHeight();\n }\n }\n\n function updateContainerHeight(cell?) {\n //if there is a cell, expand container to allow editor to edit it\n //else shrink conainer\n var containerPaddingWhenEditorOpen = 400;\n\n if (cell) {\n var container = angular.element(\n document.querySelector('#tableBuilder')\n );\n _lastHeight = containerPaddingWhenEditorOpen + cell.y;\n container.css('min-height', _lastHeight + 'px');\n } else {\n var container = angular.element(\n document.querySelector('#tableBuilder')\n );\n container.css(\n 'min-height',\n _lastHeight - containerPaddingWhenEditorOpen + 'px'\n );\n }\n }\n }\n ],\n templateUrl: 'table.builder.cell.editor.component.tmpl.html'\n });\n})();\n","/**\n * @ngdoc directive\n * @name flowTableBuilder\n * @module flowingly.components\n * @description A component for generating tables for use in the Runner.\n * The format of the cells (input type), validation rules, and placeholder text can be configured.\n * https://bizflo.atlassian.net/wiki/display/TECH/Angular+Dynamic+Table+Builder\n * ### Notes\n * This is the root component and enapsulates other components.\n * This directive is intended for use in the Modeler Form Builder\n * ### Properties\n * * tableSchema : JSON representation of the table schema\n * * onTableUpdated : method to call each time the table schema is updated\n * @usage\n * ```\n * \n \n * ```\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/85bf14ea51f0682bcb98d8609f3c8f5a47bfd49c/src/Flowingly.Shared.Angular/flowingly.components/tablebuilder/table.builder.component.js?at=master\n */\n(function () {\n 'use strict';\n\n angular.module('flowingly.components').component('flowTableBuilder', {\n bindings: {\n tableSchema: '=',\n allFields: '<',\n tableFieldName: '<',\n onTableUpdated: '&'\n },\n templateUrl: 'table.builder.component.tmpl.html',\n controller: [\n '$element',\n 'pubsubService',\n 'flowinglyConstants',\n function ($element, pubsubService, flowinglyConstants) {\n var _lastCellOpenedId = undefined;\n var $ctrl = this;\n\n $ctrl.cells = [];\n $ctrl.types = {\n text: 1,\n currency: 2,\n number: 3,\n file: 4,\n date: 5,\n dropdown: 6,\n lookup: 7,\n formula: 8\n };\n $ctrl.addCell = addCell;\n $ctrl.showHideEditor = showHideEditor;\n $ctrl.deleteCell = deleteCell;\n $ctrl.updateTableSchema = updateTableSchema;\n $ctrl.errorCell = -1;\n $ctrl.errorMessage = '';\n\n this.$onInit = function () {};\n\n this.$onChanges = function () {\n //if ($ctrl.tableSchema == undefined || $ctrl.tableSchema === {}) {\n if ($ctrl.tableSchema == undefined) {\n $ctrl.cells.push(getDefaultCell(0));\n $ctrl.updateTableSchema();\n } else {\n generateTableFromSchema($ctrl.tableSchema);\n }\n };\n\n // PUBLIC METHODS ///////////////////////////////////////////////////////////\n\n function addCell($event) {\n //add an empty default cell (and open the editor)\n var newCell = getDefaultCell($ctrl.cells.length);\n //http://stackoverflow.com/questions/35604919/angular-1-5-component-onchanges-is-not-working\n var updatedModel = angular.copy($ctrl.cells);\n updatedModel.push(newCell);\n $ctrl.cells = updatedModel;\n\n $ctrl.updateTableSchema();\n $ctrl.showHideEditor(newCell);\n }\n\n function deleteCell(cell) {\n var idx = $ctrl.cells.findIndex((c) => c.id === cell.id);\n\n if (isCellInUse(idx)) {\n $ctrl.errorCell = idx;\n $ctrl.errorMessage =\n 'Cannot delete this column as it is being used in a formula';\n $ctrl.showHideEditor(undefined);\n return;\n } else {\n $ctrl.errorCell = -1;\n $ctrl.errorMessage = '';\n }\n //We have to make sure that the cells array is updated first before updating the cell Id's\n $ctrl.cells.splice(idx, 1);\n\n $ctrl.updateTableSchema(cell);\n $ctrl.showHideEditor(undefined);\n\n updateCellFormulas(idx);\n updateCellIds();\n }\n\n function showHideEditor(cell, event) {\n //close the editor if:\n // - the cell has been deleted\n // the cell will be undefined if we have just deleted one\n // - the current open editor cell has been clicked again\n // - we've changed cell and it's a dropdown, lookup, or formula\n // we need to do this because the editor needs refreshing for these types\n // - the cell has an error\n if (\n cell == undefined ||\n ($ctrl.activeCell && $ctrl.activeCell.id === cell.id) ||\n ($ctrl.activeCell &&\n $ctrl.activeCell.id != cell.id &&\n (cell.type == $ctrl.types.lookup ||\n cell.type == $ctrl.types.dropdown ||\n cell.type == $ctrl.types.formula)) ||\n cell.id === $ctrl.errorCell\n ) {\n //close the editor by setting activeCell to undefined\n $ctrl.activeCell = undefined;\n _lastCellOpenedId = undefined;\n return;\n }\n $ctrl.errorCell = -1;\n $ctrl.errorMessage = '';\n //set the active cell to open the editor\n $ctrl.activeCell = cell;\n _lastCellOpenedId = cell.id;\n }\n\n function updateTableSchema(cell) {\n if (cell != undefined) {\n var updatedCellIndex = $ctrl.cells.findIndex(\n (c) => c.id == cell.id\n );\n\n //check to ensure that deleted cells aren't added back to the array with a -1 index\n if (updatedCellIndex > -1) {\n $ctrl.cells[updatedCellIndex] = cell;\n }\n\n if (cell.type === $ctrl.types.lookup) {\n cell.isRequired = false;\n } else {\n delete cell.lookupConfig;\n }\n\n if (cell.type !== $ctrl.types.dropdown) {\n delete cell.dbDataSource;\n }\n\n if (cell.type === $ctrl.types.formula) {\n cell.isRequired = false;\n } else {\n delete cell.formulaConfig;\n }\n }\n\n $ctrl.onTableUpdated({ table: getTableJson() });\n }\n\n /// PRIVATE METHODS //////////////////////////////////////////////////////////\n\n function getDefaultCell(id) {\n return {\n id: id,\n type: $ctrl.types.text,\n placeholder: 'click to edit',\n header: 'header',\n isRequired: true\n };\n }\n function getTableJson() {\n return JSON.stringify($ctrl.cells);\n }\n function generateTableFromSchema(schema) {\n if (!Array.isArray(schema)) {\n schema = JSON.parse(schema);\n }\n\n schema.forEach((cell) => $ctrl.cells.push(cell));\n }\n function updateCellIds() {\n var id = 0;\n //ensure that the cell ids start at zero and are contiguous\n $ctrl.cells.forEach((cell) => {\n cell.id = id;\n id++;\n });\n }\n function isCellInUse(deletedCellId) {\n return $ctrl.cells.some((cell) => {\n if (\n cell.formulaConfig &&\n cell.formulaConfig.formulaOperands.some(\n (operand) =>\n operand ===\n flowinglyConstants.formulaOperandPrefix.CELL + deletedCellId\n )\n ) {\n return true;\n }\n return false;\n });\n }\n function formulaCellReplacer(formula, deletedCellId) {\n const pattern = new RegExp(\n flowinglyConstants.formulaOperandPrefix.CELL + '(\\\\d+)',\n 'g'\n );\n return formula.replace(pattern, (match, p1) => {\n const cellId = Number(p1);\n if (cellId > deletedCellId) {\n return (\n flowinglyConstants.formulaOperandPrefix.CELL + (cellId - 1)\n );\n }\n return match;\n });\n }\n function updateCellFormulas(deletedCellId) {\n for (const cell of $ctrl.cells) {\n if (cell.formulaConfig) {\n cell.formulaConfig.formula = formulaCellReplacer(\n cell.formulaConfig.formula,\n deletedCellId\n );\n cell.formulaConfig.formulaOperands =\n cell.formulaConfig.formulaOperands.map((operand) => {\n return formulaCellReplacer(operand, deletedCellId);\n });\n }\n }\n }\n }\n ]\n });\n})();\n","/**\n * @ngdoc directive\n * @name flowTableRunner\n * @module flowingly.components\n * @description This comppnent displays a table to a user in the Runner (as part of a form for a step).\n * https://bizflo.atlassian.net/wiki/display/TECH/Angular+Dynamic+Table+Builder\n * ### Notes\n * Has a dependency on the flow-elastic directive which is used to have the textarea gorw/shrink with content.\n * ### Properties\n * #### Inputs\n * * field : remove?\n * * form : the form to which this field belongs. We use this to determine if form submitted.\n * * isRequired : is the table a required field on the form\n * * table-title: title for the table\n * * tableSchema: JSON schema of how to render the table\n * #### Outputs\n * * formData : the formdata to save for this step. I.e. the users inputs\n * #### Events\n * * onTableUpdated : Method to call each time the user completes a cell in the table / adds a row\n * * onFormInvalid : method to call when the form becomes invalid\n * * onFormValid : method to call when the form becomes valid\n * @usage\n * ```\n \n * ```\n */\n\nimport { IFieldOptionQuery } from '@Shared.Angular/@types/fieldOptions';\nimport { PubSubService } from '@Shared.Angular/@types/pubSub';\nimport { Services } from '@Shared.Angular/@types/services';\nimport { FieldServiceType } from '@Shared.Angular/flowingly.services/field.service';\nimport { FlowinglyConstantsType } from '@Shared.Angular/flowingly.services/flowingly.constants';\nimport { FlowinglyFormulaServiceType } from '@Shared.Angular/flowingly.services/flowingly.formula.service';\nimport { IScope, ITimeoutService } from 'angular';\n\n///\n/// This component is the root table runner component. It encapsulates all other components.\n///\n/// \n\nangular.module('flowingly.components').component('flowTableRunner', {\n bindings: {\n //INPUTS\n field: '<',\n form: '<',\n isRequired: '<',\n tableTitle: '<',\n tableSchema: '<',\n //OUTPUTS\n formData: '=',\n //EVENTS\n onTableUpdated: '&',\n onFormInvalid: '&',\n onFormValid: '&'\n },\n require: {\n formCtrl: '?^fgForm'\n },\n templateUrl: 'table.runner.component.tmpl.html',\n controller: [\n '$scope',\n 'lodashService',\n 'pubsubService',\n 'flowinglyFormulaService',\n 'flowinglyConstants',\n '$timeout',\n 'fieldService',\n 'browserUtilsService',\n 'busyService',\n function (\n $scope: IScope,\n lodashService: Lodash,\n pubsubService: PubSubService,\n flowinglyFormulaService: FlowinglyFormulaServiceType,\n flowinglyConstants: FlowinglyConstantsType,\n $timeout: ITimeoutService,\n fieldService: FieldServiceType,\n browserUtilsService: Services.BrowserUtilsService,\n busyService: Services.BusyService\n ) {\n const SUBSCRIBER_NAME = 'flowTableRunner';\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const $ctrl = this;\n //the collection of cells to add to each row, as defined by the designed schema\n $ctrl.cells = [];\n //collection of rows added to the table AND the values assigned to each cell\n $ctrl.rows = [];\n\n $ctrl.addRow = addRow;\n $ctrl.removeRow = removeRow;\n $ctrl.updateForm = updateForm;\n $ctrl.populateLookupFields = populateLookupFields;\n $ctrl.isMobileApp = browserUtilsService.isCordovaApp();\n\n this.$onInit = function () {\n $ctrl.dateSelectorOptions = {\n start: 'year',\n depth: 'day'\n };\n\n initializeTableFromFormData();\n\n $ctrl.stepId = $ctrl.formCtrl != null ? $ctrl.formCtrl.stepId : '';\n\n $scope.$watch(function () {\n if (typeof $ctrl.field.schema.name !== 'undefined')\n return $ctrl.form.data[$ctrl.field.schema.name];\n }, initializeTableFromFormData);\n\n pubsubService.subscribe(\n 'FILEUPLOAD_FILE_ERROR',\n fileUploadError,\n SUBSCRIBER_NAME\n );\n };\n\n this.$onDestroy = function () {\n pubsubService.unsubscribeAll(SUBSCRIBER_NAME);\n };\n\n this.$onChanges = function (changes) {\n //this component is used to display the table the user edits in the Runner, but also is also used\n //to show a preview of the table in the Modeler\n if (changes.isRequired && !changes.isRequired.isFirstChange()) {\n //we need to watch the validation required flag, in order to change the default row status\n //when the user edits required states in the builder (modeler)\n $ctrl.isRequired\n ? $ctrl.rows.push(generateRow(0))\n : ($ctrl.rows.length = 0);\n }\n\n if (changes.tableSchema && !changes.tableSchema.isFirstChange()) {\n //we need to watch the schema, since the user might be editing it in the builder (modeler)\n //update existing rows cells definition\n $ctrl.rows.forEach((r) => {\n updateCellsFromSchema($ctrl.tableSchema, r.cells);\n });\n }\n };\n\n $ctrl.formatFormula = (cell) => {\n return flowinglyFormulaService.formatCell(\n $ctrl.form.schema,\n $ctrl.cells,\n cell\n );\n };\n\n $ctrl.isCurrencyCell = (cell) => {\n return flowinglyFormulaService.isCurrencyCell(\n $ctrl.form.schema,\n $ctrl.cells,\n cell\n );\n };\n\n $ctrl.isNumberCell = (cell) => {\n return flowinglyFormulaService.isNumberCell(\n $ctrl.form.schema,\n $ctrl.cells,\n cell\n );\n };\n $ctrl.isTableHasFileUpload = (tableSchema) => {\n if (tableSchema.indexOf('\"type\":4') > -1) return true;\n };\n\n // PUBLIC METHODS ///////////////////////////////////////////////////////////\n\n function fileUploadError(event, data) {\n if (\n $ctrl.field == null ||\n $ctrl.field.name == null ||\n data.fileControlId == null\n ) {\n return;\n }\n\n // Make sure the file upload error is for this table.\n if ($ctrl.field.name === data.fileControlId) {\n validateForm();\n }\n }\n\n function addRow() {\n // adds a new row to the table, with each cell configured as per schema and\n // defaulting to empty values\n $ctrl.rows.push(generateRow($ctrl.rows.length));\n $ctrl.form.state.$submitted = false; // As a new row has been added, ensure that the state is set back to unsubmitted\n $ctrl.updateForm();\n }\n\n function removeRow(rowId: number) {\n if ($ctrl.rows.length === 1 && $ctrl.isRequired) {\n return;\n }\n const rowIndex = $ctrl.rows.findIndex((row) => row.id === rowId);\n $ctrl.rows.splice(rowIndex, 1);\n\n if ($ctrl.rows.length === 0) {\n $ctrl.formData = undefined;\n } else {\n $ctrl.formData = generateFormData();\n }\n validateForm();\n sumRows();\n }\n\n function populateLookupFields(cell, row) {\n if (!cell.value) {\n return;\n }\n\n if (\n cell.type === flowinglyConstants.tableCellType.NUMBER ||\n cell.type === flowinglyConstants.tableCellType.CURRENCY\n ) {\n updateFormula(row);\n }\n\n if (\n cell.type !== flowinglyConstants.tableCellType.TEXT &&\n cell.type !== flowinglyConstants.tableCellType.DROPDOWN &&\n cell.type !== flowinglyConstants.tableCellType.NUMBER &&\n cell.type !== flowinglyConstants.tableCellType.CURRENCY\n ) {\n return;\n }\n // check if any other columns lookup this column\n const lookupFields = $ctrl.cells.filter((col) => {\n return col.lookupConfig && col.lookupConfig.value == cell.id;\n });\n\n if (lookupFields.length === 0) {\n return;\n }\n\n const requestPayload = lookupFields.map(\n (field): IFieldOptionQuery => ({\n fieldName: $ctrl.stepId,\n tableColumnId: field.id,\n flowModelId: $ctrl.field.schema.publicForm,\n dbDataSource: {\n dbName: field.lookupConfig.dbName,\n displayValue: field.lookupConfig.displayValue,\n displayValueOptions: [],\n filters: [\n {\n column: field.lookupConfig.queryValue,\n operation: '=',\n value: cell.value\n }\n ]\n }\n })\n );\n\n const optionsPromise = fieldService\n .getFieldOptions($ctrl.field.schema.publicForm, requestPayload)\n .then((results) => {\n for (const result of results) {\n const matchingCell = row.cells.find((cell) => {\n return cell.id == result.tableColumnId;\n });\n\n if (!matchingCell) {\n return;\n }\n\n matchingCell.value = result.options\n .map((option) => option.text)\n .join(', ');\n }\n $ctrl.updateForm();\n updateFormula(row);\n });\n busyService.addPromise(optionsPromise);\n }\n\n function updateFormula(row) {\n if (row.cells.find((cell) => cell.value !== undefined)) {\n const tableSchema = JSON.parse($ctrl.tableSchema);\n for (const cellSchema of tableSchema.filter(\n (s) => s.type === flowinglyConstants.tableCellType.FORMULA\n )) {\n const formulaCell = row.cells.find(\n (cell) => cell.id === cellSchema.id\n );\n if (formulaCell) {\n const result = flowinglyFormulaService.evaluate(\n cellSchema.formulaConfig,\n $ctrl.form.schema,\n $ctrl.form.data,\n tableSchema,\n row\n );\n if (result !== formulaCell.value) {\n formulaCell.value = result;\n $ctrl.updateForm();\n }\n }\n }\n }\n }\n\n function updateForm(cell, row) {\n $ctrl.tableEdited = true;\n //called in response to the user editing a cell.\n if (cell) {\n cell.touched = true;\n }\n\n validateForm();\n sumRows();\n\n if (\n cell &&\n (cell.type === flowinglyConstants.tableCellType.TEXT ||\n cell.type === flowinglyConstants.tableCellType.DROPDOWN ||\n cell.type === flowinglyConstants.tableCellType.NUMBER ||\n cell.type === flowinglyConstants.tableCellType.CURRENCY)\n ) {\n populateLookupFields(cell, row);\n }\n\n //add / update this cells data and save to the form\n $ctrl.formData = generateFormData();\n }\n\n /// PRIVATE METHODS //////////////////////////////////////////////////////////\n\n function initializeTableFromFormData() {\n if ($ctrl.tableEdited) {\n const schema = JSON.parse($ctrl.tableSchema);\n if (\n schema.find(\n (cell) => cell.type === flowinglyConstants.tableCellType.FORMULA\n )\n ) {\n for (const row of $ctrl.rows) {\n updateFormula(row);\n }\n }\n return;\n }\n $ctrl.cells = [];\n $ctrl.rows = [];\n //if there is form data saved, then restore it\n if (\n $ctrl.formData &&\n $ctrl.formData !== flowinglyConstants.tableNoRowMessage.TABLE_NO_ROW\n ) {\n const parsed = JSON.parse($ctrl.formData);\n\n //set up default cells (we need to do this so that Add New Row works)\n //take them from the first row (all rows are the same)\n const cells = [];\n if (\n typeof parsed['rows'] !== 'undefined' &&\n parsed['rows'].length > 0\n ) {\n angular.copy(parsed['rows'][0].cells, cells);\n }\n\n for (let c = 0; c < cells.length; c++) {\n const cell = cells[c];\n cell.value = undefined;\n if (hasSum(cell)) {\n $ctrl.showSumRow = true;\n }\n $ctrl.cells.push(cell);\n }\n\n //set up row data (this will also set up the correct schema)\n for (const rowKey in parsed) {\n const rows = parsed[rowKey];\n for (let r = 0; r < rows.length; r++) {\n const row = rows[r];\n lodashService.forEach(row.cells, function (c) {\n c.row = r;\n });\n\n if (typeof $ctrl.tableSchema !== 'undefined') {\n $ctrl.rows.push({\n id: row.id,\n cells: lodashService.merge(\n row.cells,\n JSON.parse($ctrl.tableSchema)\n )\n });\n }\n }\n }\n getCellsFromSchema($ctrl.tableSchema);\n sumRows();\n } else {\n //create a table, as designed by flow author and populate with one row.\n getCellsFromSchema($ctrl.tableSchema);\n\n //we always add a row (previously we only did this for required tables)\n $ctrl.rows.push(generateRow(0));\n }\n\n if ($ctrl.tableSchema && typeof $ctrl.tableSchema !== 'undefined') {\n const objTableSchema = JSON.parse($ctrl.tableSchema);\n lodashService.forEach(objTableSchema, function (fts) {\n if (fts.type != flowinglyConstants.tableCellType.DROPDOWN) {\n delete fts.dbDataSource;\n }\n\n if (fts.type != flowinglyConstants.tableCellType.LOOKUP) {\n delete fts.lookupConfig;\n }\n\n if (fts.type != flowinglyConstants.tableCellType.FORMULA) {\n delete fts.formulaConfig;\n }\n });\n $ctrl.tableSchema = JSON.stringify(objTableSchema);\n $ctrl.field.schema.tableSchema = $ctrl.tableSchema;\n }\n\n // update existing rows cells definition\n $ctrl.rows.forEach((row, rowIndex) => {\n for (const [cellIndex, cell] of row.cells.entries()) {\n const matchCell = $ctrl.cells.find((c) => cell.id === c.id);\n\n if (\n matchCell &&\n cell.type === flowinglyConstants.tableCellType.DROPDOWN\n ) {\n cell.filteredOptions = angular.copy(matchCell.options);\n\n if (!matchCell.searchable && matchCell.options) {\n cell.filteredOptions.optionLabel = 'Please Choose...';\n cell.options = cell.filteredOptions;\n }\n\n if (matchCell.searchable && matchCell.options) {\n $timeout(function () {\n if (\n cell.filteredOptions &&\n cell.filteredOptions.length >\n flowinglyConstants.searchableComboPageSize\n ) {\n cell.filteredOptions = cell.filteredOptions.slice(\n 0,\n flowinglyConstants.searchableComboPageSize\n );\n }\n\n // If the selected value is not present in the initial dropdown list, appends the text and value from fields object.\n appendToFilteredOptions(cell, rowIndex, cellIndex);\n\n cell.options = {\n optionLabel: 'Please Choose...',\n filter: 'contains'\n };\n\n cell.options.filtering = function (e) {\n const filter = e.filter;\n e.preventDefault();\n\n filterAndSearchAPICall(\n $ctrl.field.name,\n cell,\n filter.value\n );\n };\n });\n }\n\n fillUserLookupValue(cell);\n }\n }\n });\n\n $ctrl.formData = generateFormData();\n\n //Validate the form's table whether it is required or optional, to prevent form submission with invalid rows\n validateForm();\n }\n\n function appendToFilteredOptions(cell, rowIndex, cellIndex) {\n if (\n cell.value &&\n cell.value.trim().length > 0 &&\n !cell.filteredOptions.find((option) => option.value === cell.value)\n ) {\n // To get the Text attribute\n const text = JSON.parse(\n $ctrl?.formCtrl?.flowFields?.find(\n (field) => field.Name === $ctrl?.field?.schema?.name\n )?.Text\n )?.rows[rowIndex]?.cells[cellIndex]?.value;\n\n const data = {\n value: cell.value,\n checked: false,\n text: text\n };\n cell.filteredOptions = [...cell.filteredOptions, data];\n }\n }\n\n function generateFormData() {\n //for each row the user has added, create an object for each cell\n //we save the id and value; and to simplify generating the table in the history, the header value and cell type\n const formData = { rows: [] };\n let currentRow = undefined;\n lodashService.forEach($ctrl.rows, function (row) {\n currentRow = { id: row.id, cells: [] };\n lodashService.forEach(row.cells, function (cell) {\n currentRow.cells.push({\n id: cell.id,\n value: cell.value,\n header: cell.header,\n type: cell.type\n });\n });\n formData.rows.push(currentRow);\n });\n\n return JSON.stringify(formData);\n }\n\n function generateRow(id) {\n //create a new table row and initialise with default cell configurations.\n const row = { id: id, cells: [] };\n angular.copy($ctrl.cells, row.cells);\n lodashService.forEach(row.cells, function (cell) {\n cell.row = id;\n fillUserLookupValue(cell);\n populateDropdownOnAddRow(cell);\n });\n return row;\n }\n\n function updateCellsFromSchema(schema, rowcells) {\n if (schema == undefined) {\n return;\n }\n\n schema = JSON.parse(schema);\n lodashService.forEach(schema, function (cell) {\n lodashService.forEach(rowcells, function (rcell) {\n if (cell.id === rcell.id) {\n if (hasSum(cell)) {\n $ctrl.showSumRow = true;\n rcell.sum = 0;\n } else if (\n cell.type === flowinglyConstants.tableCellType.DROPDOWN\n ) {\n //if filter present\n if (\n cell.dbDataSource.filters &&\n cell.dbDataSource.filters[0].column\n ) {\n populateDropdownCellOptions(cell);\n rcell.value = cell.value;\n rcell.options = cell.options;\n rcell.filteredOptions = cell.filteredOptions;\n }\n }\n }\n });\n });\n }\n\n function getCellsFromSchema(schema) {\n //use the passed in schema (as designed by flow auther) to generate the default cells\n //i.e. cell type, header value etc. Value will default to undefined\n if (schema == undefined) {\n return;\n }\n $ctrl.cells.length = 0;\n schema = JSON.parse(schema);\n\n lodashService.forEach(schema, function (cell) {\n cell.value = undefined;\n cell.row = 0;\n //if this is a currency/number/formula type, show sum row and initialise sum for this column to zero.\n if (hasSum(cell)) {\n $ctrl.showSumRow = true;\n cell.sum = 0;\n }\n if (cell.type === flowinglyConstants.tableCellType.DROPDOWN) {\n populateDropdownCellOptions(cell);\n }\n\n $ctrl.cells.push(cell);\n });\n }\n\n function fillUserLookupValue(cell) {\n if (\n cell.type !== flowinglyConstants.tableCellType.LOOKUP ||\n !angular.isArray($ctrl.field.schema.lookupValues)\n ) {\n return;\n }\n\n const matchField = $ctrl.field.schema.lookupValues.find(\n (f) => f.ColumnId === cell.id\n );\n if (matchField) {\n cell.value = matchField.Value;\n }\n }\n\n function populateDropdownCellOptions(cell) {\n if (\n $ctrl.field.schema.options &&\n $ctrl.field.schema.options.length > 0\n ) {\n if (cell.id != null) {\n const matchCol = $ctrl.field.schema.options.find(\n (o) => o.tableColumnId === cell.id\n );\n\n if (matchCol) {\n if (cell.searchable) {\n cell.value = ''; //FLOW-5426: Fix for the search keyword automatically being removed on the very first search\n }\n\n cell.options = matchCol.options;\n if (\n cell.dbDataSource.filters &&\n !cell.dbDataSource.filters[0].column\n ) {\n cell.filteredOptions = matchCol.options;\n }\n }\n }\n }\n }\n\n function populateDropdownOnAddRow(cell) {\n if (\n !cell ||\n cell.type !== flowinglyConstants.tableCellType.DROPDOWN ||\n !$ctrl.field.schema.options ||\n $ctrl.field.schema.options.length <= 0\n ) {\n return;\n }\n\n if (cell.id != null) {\n const matchCol = $ctrl.field.schema.options.find(\n (o) => o.tableColumnId === cell.id\n );\n\n if (matchCol) {\n cell.options = cell.options || matchCol.options;\n cell.options.optionLabel = 'Please Choose...';\n cell.filteredOptions = matchCol.options;\n\n if (cell.searchable) {\n cell.options.filter = 'contains';\n\n if (\n cell.filteredOptions &&\n cell.filteredOptions.length >\n flowinglyConstants.searchableComboPageSize\n ) {\n cell.filteredOptions = cell.filteredOptions.slice(\n 0,\n flowinglyConstants.searchableComboPageSize\n );\n }\n\n cell.options.filtering = function (e) {\n const filter = e.filter;\n e.preventDefault();\n\n filterAndSearchAPICall($ctrl.field.name, cell, filter.value);\n };\n }\n }\n }\n }\n\n function sumRows() {\n //$ctrl.cells contains the default schema cells for each row.\n //We use this now to also store sum of any number / currency columns.\n //The sum will default to zero (set in getCellsFromSchema) and we update it each time\n //this method is called, in response to updateForm(cell) being called.\n if ($ctrl.showSumRow) {\n lodashService.forEach($ctrl.cells, function (sumCell) {\n sumCell.sum = 0;\n //find valu of all rows with this cell id\n lodashService.forEach($ctrl.rows, function (row) {\n lodashService.forEach(row.cells, function (cell) {\n if (cell.id === sumCell.id && cell.value !== undefined) {\n if (flowinglyFormulaService.hasLookupSumCell(cell)) {\n if (cell.value.indexOf(',') >= 0) {\n const valueArray = cell.value.split(',');\n\n for (const v of valueArray) {\n if (!isNaN(parseFloat(v))) {\n sumCell.sum += parseFloat(v);\n }\n }\n } else {\n if (!isNaN(parseFloat(cell.value))) {\n sumCell.sum += parseFloat(cell.value);\n }\n }\n } else {\n sumCell.sum += Number(cell.value);\n }\n }\n if (sumCell.sum === +sumCell.sum) {\n const tableName = $ctrl.field.name;\n const sumFieldName = tableName + '__' + sumCell.id + '_sum';\n $ctrl.form.data[sumFieldName] = sumCell.sum;\n }\n });\n });\n });\n }\n }\n\n function filterAndSearchAPICall(fieldCtrl, cellData, filterValue) {\n const requestPayload: IFieldOptionQuery = {\n fieldName: fieldCtrl,\n dbDataSource: angular.copy(cellData.dbDataSource),\n searchable: true,\n searchablePageSize: flowinglyConstants.searchableComboPageSize,\n searchTerm: filterValue,\n flowModelId: $ctrl.field.schema.publicForm\n };\n\n if (\n requestPayload.dbDataSource.filters &&\n requestPayload.dbDataSource.filters.length > 0\n ) {\n requestPayload.dbDataSource.filters[0].value = filterValue;\n }\n\n fieldService\n .getFieldOptions($ctrl.field.schema.publicForm, [requestPayload])\n .then((results) => {\n if (results && results.length > 0) {\n cellData.options = results[0].options;\n cellData.filteredOptions = angular.copy(cellData.options);\n\n const matchCell = $ctrl.cells.find((c) => c.id === cellData.id);\n if (matchCell && cellData.row === 0) {\n matchCell.options = cellData.options;\n matchCell.filteredOptions = cellData.filteredOptions;\n }\n }\n });\n }\n\n function hasValuesInTableRow(row) {\n if (row == null || row.cells == null) {\n // Nothing to check.\n return false;\n }\n\n let hasValue = false;\n lodashService.forEach(row.cells, (cell) => {\n if (\n cell.value != null &&\n cell.value != undefined &&\n cell.value !== ''\n ) {\n // The row contains a value.\n hasValue = true;\n }\n });\n\n return hasValue;\n }\n\n function validateForm() {\n //this method validates the table each time the user changes a cell value\n //fields are marked invalid if they are required, but have no value set.\n //an error is only displayed per COLUMN however. i.e. if 5 cells in a column are in error,\n //only one message gets added to the list.\n $ctrl.formErrors = [];\n $ctrl.formHasErrors = false;\n\n const isTableRequired = $ctrl.isRequired;\n\n //check that all required fields have values, if not set error status\n lodashService.forEach($ctrl.rows, function (row) {\n let hasValueInRow = false;\n if (isTableRequired === false) {\n // Optional table. Check for any data in the row.\n hasValueInRow = hasValuesInTableRow(row);\n }\n\n const optionalTableWithoutRowData =\n isTableRequired === false && hasValueInRow === false;\n\n lodashService.forEach(row.cells, function (cell) {\n cell.error = undefined;\n\n // When the table is optional and no data has been entered then nothing is required.\n if (optionalTableWithoutRowData === false) {\n cell.error = getCellError(cell);\n }\n\n if (cell.error !== undefined) {\n $ctrl.formHasErrors = true;\n //error messages are added to list only if there is not already one for the same type.\n //they will only be shown in the view if the cell touched, for form submitted.\n if (\n !lodashService.some($ctrl.formErrors, function (e) {\n return e.header === cell.header;\n })\n ) {\n $ctrl.formErrors.push(cell.error);\n }\n }\n });\n });\n\n //raise event - this will be handled by the flow form component to enable/prevent submit\n $ctrl.formHasErrors ? $ctrl.onFormInvalid() : $ctrl.onFormValid();\n return $ctrl.formHasErrors;\n }\n\n function getCellError(cell) {\n if (\n cell.type === flowinglyConstants.tableCellType.TEXT &&\n $ctrl.form.state &&\n $ctrl.form.state.$error &&\n $ctrl.form.state.$error.xssValidate &&\n $ctrl.form.state.$error.xssValidate.find((f) => f.$name === '')\n ) {\n return {\n touched: cell.touched,\n header: cell.header,\n msg: 'This input does not support HTML'\n };\n }\n\n if (cell.isRequired && (cell.value == undefined || cell.value === '')) {\n let validationMsg = '';\n\n switch (cell.type) {\n case 1:\n validationMsg = 'n entry is required for';\n break;\n case 2:\n validationMsg = 'n amount\tis required for';\n break;\n case 3:\n validationMsg = ' number is required for';\n break;\n case 4:\n validationMsg = ' file must be uploaded for';\n break;\n case 5:\n validationMsg = ' date is required for';\n break;\n case 6:\n validationMsg = 'n option must be selected from';\n break;\n default:\n validationMsg = ' value is required for';\n break;\n }\n\n return {\n touched: cell.touched,\n header: cell.header,\n msg: 'A' + validationMsg + ' the ' + cell.header + ' column.'\n };\n }\n\n //currency - we use ng-currency which will automatically convert input to a valid currency value (on blur)\n if (\n cell.isRequired &&\n cell.type === flowinglyConstants.tableCellType.NUMBER &&\n !/^[+-]?(?=.)(?:\\d+,)*\\d*(?:\\.\\d+)?$/.test(cell.value)\n ) {\n return {\n touched: cell.touched,\n header: cell.header,\n msg: 'Value must be a number for the ' + cell.header + ' column'\n };\n }\n\n return undefined;\n }\n\n function hasSum(cell) {\n return flowinglyFormulaService.hasSumCell(\n $ctrl.form.schema,\n $ctrl.cells,\n cell\n );\n }\n }\n ]\n});\n","/**\n * @ngdoc directive\n * @name flowTableDate\n * @module flowingly.components\n * @description This component is responsbile for render a date control for a table cell.\n * ### Notes\n * The use case here is slightly different so we cannot resuse the shared version of this directive.\n * ### Properties\n * #### Inputs\n * * cell : the cell control work with\n * #### Events\n * * onValueChange : method to call when date value been changed\n * @usage\n * ```\n \n * ```\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/a3394a73235013c719c58d174dc4a4440f730679/src/Flowingly.Shared.Angular/flowingly.components/tablerunner/table.runner.date.js?at=master\n */\n(function () {\n 'use strict';\n\n angular.module('flowingly.components').component('flowTableDate', {\n bindings: {\n cell: '<',\n onValueChange: '&'\n },\n templateUrl: 'table.runner.date.tmpl.html',\n controller: [\n '$timeout',\n 'guidService',\n function ($timeout, guidService) {\n var $ctrl = this;\n\n $ctrl.handleOnChange = handleOnChange;\n $ctrl.showDatePicker = function () {\n var datePicker = getDatePicker();\n datePicker.open();\n };\n\n this.$onInit = function () {\n $ctrl.id = guidService.new();\n $ctrl.options = {\n placeholder: 'DD/MM/YYYY',\n format: 'dd/MM/yyyy',\n parseFormats: ['dd/MM/yyyy']\n };\n\n $timeout(function () {\n getDatePickerElement()\n .kendoDatePicker($ctrl.options)\n .attr('readonly', true)\n .attr('placeholder', $ctrl.options.placeholder);\n });\n };\n\n function handleOnChange() {\n $ctrl.onValueChange({ cell: $ctrl.cell });\n }\n\n /// PRIVATE METHODS //////////////////////////////////////////////////////////\n function getDatePickerElement(): any {\n return angular.element('#' + $ctrl.id);\n }\n\n function getDatePicker() {\n return getDatePickerElement().data('kendoDatePicker');\n }\n }\n ]\n });\n})();\n","/**\n * @ngdoc directive\n * @name onFileChange\n * @module flowingly.components\n * @description It is not possible to bind to input File type in angular. So this is not possible: onchange=\"onFileChange(this)\n * https://github.com/angular/angular.js/issues/1375.\n * ### Notes\n * The use case here is slightly different so we cannot resuse the shared version of this directive.\n * @usage\n * ```\n \n * ```\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/deaa3e49cef09006e53d6351564e8e4ba65c1f62/src/Flowingly.Shared.Angular/flowingly.components/tablerunner/table.runner.fileChange.js?at=master\n */\nangular\n .module('flowingly.components')\n .directive('onFileChange', [onFileChange]);\n\nfunction onFileChange() {\n var directive = {\n restrict: 'A',\n link: function (scope, element, attrs) {\n var onChangeHandler = scope.$eval(attrs.onFileChange);\n\n element.bind('change', onChangeHandler);\n\n element.bind('click', function () {\n //clear the value so that we can select a file with the same name\n element[0].value = '';\n });\n\n scope.$on('$destroy', function () {\n element.unbind('change', onChangeHandler);\n });\n }\n };\n\n return directive;\n}\n","import { SharedAngular } from '@Angular.Runner/@types/sharedAngular';\nimport { IHttpService, IQService } from 'angular';\nimport { IStateParamsService } from 'angular-ui-router';\n\n/**\n * @ngdoc directive\n * @name flowTableFileUpload\n * @module flowingly.components\n * @description This comppnent is responsbile for uploading a file for a table cell.\n * ### Notes\n * The use case here is slightly different so we cannot resuse the shared version of this directive.\n * ### Properties\n * #### Inputs\n * * stepId : ID of the step to upload the file against\n * * flowId : ID of the flow to upload the file against\n * * fieldName : name of the table\n * * cell : the cell the file is uploaded for\n * * rowId : the id of the row the cell is on\n * #### Outputs\n * * fileId : id of the uploaded file (returned from server)\n * #### Events\n * * onFileUpload : method to call when file upload completed\n * @usage\n * ```\n \n * ```\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/0167263d57cc4f14858ca4b517cf2122df9218b3/src/Flowingly.Shared.Angular/flowingly.components/tablerunner/table.runner.fileUpload.js?at=master\n */\n(function () {\n 'use strict';\n\n angular.module('flowingly.components').component('flowTableFileUpload', {\n bindings: {\n stepId: '<',\n flowModelId: '<',\n flowId: '<',\n fieldName: '<',\n cell: '<',\n rowId: '<',\n fileId: '=',\n onFileUpload: '&'\n },\n templateUrl: 'table.runner.fileUpload.tmpl.html',\n controller: [\n '$http',\n '$stateParams',\n 'pubsubService',\n 'sessionService',\n 'fileService',\n 'notificationService',\n 'tokenService',\n 'APP_CONFIG',\n '$q',\n function (\n $http: IHttpService,\n $stateParams: IStateParamsService,\n pubsubService: SharedAngular.PubSubService,\n sessionService: SharedAngular.SessionService,\n fileService: SharedAngular.FileService,\n notificationService: SharedAngular.NotificationService,\n tokenService: SharedAngular.TokenService\n ) {\n var $ctrl = this;\n $ctrl.onFileChange = onFileChange;\n $ctrl.removeFile = removeFile;\n\n this.$onInit = function () {\n $ctrl.uploadedFile = undefined;\n\n if (!$ctrl.fileId) {\n return;\n }\n\n let filePromise;\n\n if ($stateParams.isExternalForm) {\n filePromise = fileService\n .getFileAnonymous($ctrl.fileId, $ctrl.stepId)\n .then((response) => response);\n } else {\n const user = sessionService.getUser();\n if (!user) {\n return;\n }\n fileService.setUser(user.id, tokenService.getTenant().id);\n filePromise = getFile($ctrl.fileId).then(\n (response) => response.data\n );\n }\n\n filePromise.then((fileData) => {\n $ctrl.uploadedFile = {\n filename: fileData.filename,\n id: $ctrl.fileId,\n key: $ctrl.fieldName,\n downloadLink: $stateParams.isExternalForm\n ? fileService.getDownloadLink($ctrl.fileId, true)\n : createDownloadLink($ctrl.fileId),\n size: fileData.size\n };\n });\n };\n\n function getFile(fileId) {\n return fileService.getFileById(fileId);\n }\n\n function onFileChange(event) {\n pubsubService.publish('FILEUPLOAD_UPLOAD_STARTED');\n //handle file change notification (from onFileChange)\n event.stopPropagation();\n var fileToUpload = event.target.files[0];\n uploadFile(fileToUpload);\n }\n\n function removeFile() {\n pubsubService.publish('FILEUPLOAD_REMOVAL_STARTED');\n\n var deleteService;\n if (sessionService.getUser()) {\n deleteService = fileService.deleteFile($ctrl.fileId, $ctrl.stepId);\n } else {\n deleteService = fileService.deleteAnonymousFile(\n $ctrl.fileId,\n $ctrl.stepId\n );\n }\n deleteService.then(function () {\n $ctrl.uploadedFile = undefined;\n $ctrl.cell.value = undefined;\n $ctrl.onFileUpload({ cell: $ctrl.cell });\n pubsubService.publish('FILEUPLOAD_REMOVAL_COMPLETED');\n });\n }\n\n /// PRIVATE METHODS //////////////////////////////////////////////////////////\n\n function uploadFile(fileToUpload) {\n var uploadService;\n if ($ctrl.stepId == undefined || $ctrl.stepId == '') {\n //stepId will be undefined if we are uploading a file for a flow not yet started\n $ctrl.stepId = '00000000-0000-0000-0000-000000000000';\n }\n if (sessionService.getUser()) {\n uploadService = fileService.uploadTableFile(\n `/${$ctrl.stepId}/${$ctrl.cell.id}/${$ctrl.rowId}`,\n fileToUpload\n );\n } else {\n uploadService = fileService.uploadTableAnonymousFile(\n `form/${$ctrl.flowModelId}/step/${$ctrl.stepId}/field/${$ctrl.fieldName}/${$ctrl.rowId}/${$ctrl.cell.id}/file`,\n fileToUpload\n );\n }\n\n //we need to store the row and cell id\n\n uploadService.then(function (response) {\n $ctrl.fileId = response.data;\n $ctrl.cell.value = response.data;\n var size = Math.floor(fileToUpload.size / 1000);\n $ctrl.uploadedFile = {\n //stepId is used to keep track of files associated to this step\n filename: fileToUpload.name,\n id: response.data,\n key: $ctrl.fieldName,\n downloadLink: createDownloadLink(response.data),\n size: size > 0 ? size : 1\n };\n $ctrl.onFileUpload({ cell: $ctrl.cell });\n pubsubService.publish('FILEUPLOAD_UPLOAD_COMPLETED');\n notificationService.showSuccessToast(\n fileToUpload.name + ' uploaded'\n );\n });\n }\n\n function createDownloadLink(fileId) {\n return fileService.getDownloadLink(\n fileId,\n $stateParams.formType == 'flowingly_public_form'\n );\n }\n }\n ]\n });\n})();\n","/**\n * @ngdoc directive\n * @name flowTableViewer\n * @module flowingly.components\n * @description This comppnent is responsbile for displaying a table in the Runner history view.\n * ### Notes\n * This component shows the data entered by the user for the table, when they completed the step.\n * ### Properties\n * #### Inputs\n * * tableData : the JSON table data to display.\n * * noRowData : boolean tell if has any table data\n * * noRowDataMessage : the message to display when no table data\n * @usage\n * ```\n \n * ```\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/8db4d4f422bc44beda7c174555866ff0de7c3f63/src/Flowingly.Shared.Angular/flowingly.components/tableviewer/table.viewer.component.js?at=master\n */\n(function () {\n 'use strict';\n\n angular.module('flowingly.components').component('flowTableViewer', {\n bindings: {\n //this input contains the data saved when the user completed the form (which the table was part of)\n tableData: '<',\n tableSchema: '<',\n noRowData: '<',\n step: '<',\n noRowDataMessage: '@?'\n },\n templateUrl: 'table.viewer.component.tmpl.html',\n controller: [\n '$sce',\n 'APP_CONFIG',\n 'lodashService',\n 'sessionService',\n 'flowinglyFormulaService',\n 'flowinglyConstants',\n 'tokenService',\n function (\n $sce,\n APP_CONFIG,\n lodashService,\n sessionService,\n flowinglyFormulaService,\n flowinglyConstants,\n tokenService\n ) {\n const $ctrl = this;\n $ctrl.$sce = $sce;\n $ctrl.table = {};\n let tableSchema;\n\n this.$onInit = function () {\n if (!$ctrl.noRowData) {\n if ($ctrl.tableSchema) {\n tableSchema = JSON.parse($ctrl.tableSchema);\n }\n $ctrl.userId = sessionService.getUser().id;\n $ctrl.businessId = tokenService.getTenant().id;\n $ctrl.table = generateTable($ctrl.tableData);\n }\n\n $ctrl.formatFormula = (cells, cell) => {\n return flowinglyFormulaService.formatCell(\n $ctrl.step.Schema,\n cells,\n cell\n );\n };\n\n $ctrl.isCurrencyCell = (cells, cell) => {\n const cellDetails = tableSchema.find(\n (option) => option.id == cell.id && option.type == cell.type\n );\n return flowinglyFormulaService.isCurrencyCell(\n $ctrl.step.Schema,\n cells,\n cellDetails\n );\n };\n\n $ctrl.isNumberCell = (cells, cell) => {\n const cellDetails = tableSchema.find(\n (option) => option.id == cell.id && option.type == cell.type\n );\n return flowinglyFormulaService.isNumberCell(\n $ctrl.step.Schema,\n cells,\n cellDetails\n );\n };\n };\n\n /// PRIVATE METHODS //////////////////////////////////////////////////////////\n\n function generateTable(tableData) {\n const table = JSON.parse(tableData);\n formatTypes(table);\n formatTotals(table);\n formatImageUrls(table);\n return table;\n }\n\n function formatImageUrls(table) {\n lodashService.forEach(table.rows, function (row) {\n lodashService.forEach(row.cells, function (cell) {\n if (cell.type === flowinglyConstants.tableCellType.FILE) {\n //if no file was uploaded cell.value will be undefined\n const filepath = generateLink(cell.value);\n const downloadLink = generateDownloadLink(cell.value);\n cell.value =\n filepath !== undefined\n ? {\n fileId: cell.value,\n filepath: filepath,\n downloadLink: downloadLink\n }\n : undefined;\n }\n });\n });\n }\n\n function formatTypes(table) {\n lodashService.forEach(table.rows, function (row) {\n lodashService.forEach(row.cells, function (cell) {\n if (\n cell.type === flowinglyConstants.tableCellType.LOOKUP ||\n cell.type === flowinglyConstants.tableCellType.FORMULA\n ) {\n const cellSchema = tableSchema.find((s) => s.id === cell.id);\n if (cellSchema && cellSchema.lookupConfig) {\n cell.lookupConfig = cellSchema.lookupConfig;\n }\n if (cellSchema && cellSchema.formulaConfig) {\n cell.formulaConfig = cellSchema.formulaConfig;\n }\n }\n });\n });\n }\n\n function formatTotals(table) {\n //if there are any number / currency columns, we create an array of totals\n let foundNumberOrCurrency = false;\n $ctrl.sumCells = [];\n lodashService.forEach(table.rows, function (row) {\n lodashService.forEach(row.cells, function (cell) {\n const existing = lodashService.find(\n $ctrl.sumCells,\n function (sumCell) {\n return sumCell.id === cell.id;\n }\n );\n\n if (\n flowinglyFormulaService.hasSumCell(\n $ctrl.step.Schema,\n row.cells,\n cell\n )\n ) {\n foundNumberOrCurrency = true;\n if (existing) {\n existing.sum += calculateCellSum(cell);\n } else {\n const sumInitValue = calculateCellSum(cell);\n $ctrl.sumCells.push(createCellSum(cell, sumInitValue));\n }\n } else {\n if (!existing) {\n $ctrl.sumCells.push(createCellSum(cell));\n }\n }\n });\n });\n //if did not find any number or currency columns clear out the data so total row not displayed.\n if (!foundNumberOrCurrency) {\n $ctrl.sumCells = [];\n }\n }\n\n function createCellSum(cell, sum = null) {\n const sumCell = {\n id: cell.id,\n type: cell.type\n };\n if (cell.lookupConfig) {\n sumCell['lookupConfig'] = cell.lookupConfig;\n }\n if (cell.formulaConfig) {\n sumCell['formulaConfig'] = cell.formulaConfig;\n }\n if (sum !== null) {\n sumCell['sum'] = sum;\n }\n return sumCell;\n }\n\n function calculateCellSum(cell) {\n let sum = 0;\n const cellValue = cell.value === undefined ? 0.0 : cell.value;\n\n if (flowinglyFormulaService.hasLookupSumCell(cell)) {\n if (typeof cellValue === 'string' && cellValue.indexOf(',') >= 0) {\n const valueArray = cellValue.split(',');\n\n for (const v of valueArray) {\n if (!isNaN(parseFloat(v))) {\n sum += parseFloat(v);\n }\n }\n } else {\n if (!isNaN(parseFloat(cellValue))) {\n sum += parseFloat(cellValue);\n }\n }\n } else {\n sum += Number(cellValue);\n }\n\n return sum;\n }\n\n function generateLink(fileId) {\n return fileId !== undefined\n ? APP_CONFIG.apiBaseUrl +\n 'files/' +\n $ctrl.businessId +\n '/' +\n $ctrl.userId +\n '/' +\n fileId\n : undefined;\n }\n function generateDownloadLink(fileId) {\n return fileId !== undefined\n ? `${APP_CONFIG.apiBaseUrl}files/download/${fileId}`\n : undefined;\n }\n }\n ]\n });\n})();\n","/**\n * @name flowClipboardCopy\n * @module flowingly.directives\n * @description Displays a copy icon and copies the target value to the clipboard when clicked.\n *\n * @usage\n * ```\n *
\n * The icon will appear here:\n *
\n * ```\n */\nimport angular from 'angular';\n\nangular\n .module('flowingly.directives')\n .directive('flowClipboardCopy', function () {\n return {\n link: link,\n restrict: 'A'\n };\n\n function link(\n scope: angular.IScope,\n element: JQuery,\n attrs: angular.IAttributes\n ) {\n let targetValue = '';\n scope.$watch(attrs.flowClipboardCopy, (newValue: string) => {\n targetValue = newValue;\n });\n\n const container = document.createElement('div');\n container.classList.add('flow-clipboard-copy');\n\n const confirmation = document.createElement('div');\n confirmation.textContent = 'Copied!';\n confirmation.style.display = 'none';\n\n const icon = document.createElement('i');\n icon.classList.add('fa-light', 'fa-copy', 'fa-lg');\n icon.title = 'Copy to clipboard';\n icon.addEventListener('click', () =>\n copyToClipboard(targetValue).then(() => showConfirmation(confirmation))\n );\n\n container.append(icon, confirmation);\n element.append(container);\n }\n\n function copyToClipboard(text: string) {\n return navigator.clipboard.writeText(text);\n }\n\n function showConfirmation(confirmation: HTMLDivElement) {\n confirmation.style.display = 'block';\n setTimeout(() => {\n confirmation.style.display = 'none';\n }, 1000);\n }\n });\n","/*\n * Converted to ts on 16/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/83cc170e12a35da4c6f4928f79530954089a126f/src/Flowingly.Shared.Angular/flowingly.directives/comment.file.onchange.directive.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\n\nangular.module('flowingly.directives').directive('commentFileOnchange', [\n function () {\n const directive = {\n restrict: 'A',\n require: 'commentFileUpload',\n link: function (\n scope: angular.IScope,\n element: JQuery,\n attrs,\n commentFileUpload\n ) {\n const onChangeHandler = commentFileUpload.onFileChange;\n element.on('change', onChangeHandler);\n\n element.on('click', function () {\n //clear the value so that we can select a file with the same name\n element[0].value = '';\n });\n\n scope.$on('$destroy', function () {\n element.off('change', onChangeHandler);\n });\n }\n };\n\n return directive;\n }\n]);\n","/*\n * Converted to ts on 16/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/db114d5bb5acf3216e345a732beb9bb60cfd6da7/src/Flowingly.Shared.Angular/flowingly.directives/comment.file.upload.js?at=master\n */\n\n'use strict';\nimport { Services } from '@Shared.Angular/@types/services';\nimport angular from 'angular';\n\nangular.module('flowingly.directives').directive('commentFileUpload', [\n function () {\n const directive = {\n restrict: 'A',\n scope: {\n onFileUploaded: '&',\n targetId: '<',\n targetType: '<'\n },\n controllerAs: 'ctrl',\n controller: [\n '$scope',\n 'pubsubService',\n 'lodashService',\n 'notificationService',\n 'fileService',\n function controller(\n $scope: angular.IScope,\n pubsubService: Services.PubSubService,\n lodashService: Lodash,\n notificationService: Services.NotificationService,\n fileService: Services.FileService\n ) {\n const ctrl = this;\n ctrl.onFileChange = onFileChange;\n\n function onFileChange(event) {\n if (event.target.files.length === 0) {\n return;\n }\n pubsubService.publish('FILEUPLOAD_UPLOAD_STARTED', undefined);\n event.stopPropagation();\n const filesToUpload = event.target.files;\n uploadFiles(filesToUpload);\n }\n\n function uploadFiles(filesToUpload) {\n lodashService.each(filesToUpload, function (file) {\n fileService.uploadCommentFile(file).then(\n function (response) {\n $scope.onFileUploaded({\n file: {\n filename: file.name,\n id: response.data,\n downloadLink: createDownloadLink(response.data),\n size: Math.floor(file.size / 1000)\n }\n });\n pubsubService.publish(\n 'FILEUPLOAD_UPLOAD_COMPLETED',\n undefined\n );\n notificationService.showSuccessToast(file.name + ' uploaded');\n },\n function (error) {\n pubsubService.publish('FILEUPLOAD_UPLOAD_FAILED', undefined);\n }\n );\n });\n }\n\n /// PRIVATE METHODS ///////////////////////////////////////////////////////////////////////\n function createDownloadLink(fileId) {\n return fileService.getDownloadLink(fileId);\n }\n\n function validateFile(filename) {\n //we now allow upload of any file type\n return true;\n }\n }\n ]\n };\n\n return directive;\n }\n]);\n","/**\n * @ngdoc directive\n * @name flowConvertToNumber\n * @module flowingly.modeler.directives\n * @description A directive for converting a string to a number.\n * @usage\n * ```\n \n * ```\n */\nangular\n .module('flowingly.directives')\n .directive('flowConvertToNumber', function () {\n return {\n require: 'ngModel',\n link: function (scope, element, attrs, ngModel) {\n ngModel.$parsers.push(function (val) {\n return parseInt(val, 10);\n });\n ngModel.$formatters.push(function (val) {\n return '' + val;\n });\n }\n };\n });\n","/*\n * Converted to ts on 16/01/2020\n * See\n * https://bitbucket.org/flowingly-team/flowingly-source-code/commits/b984ace3e94a00d25e8579e860baac87c6a727a7\n * https://bitbucket.org/flowingly-team/flowingly-source-code/src/bad03a1dc5283e0ed90fa7961aae1bcfa21ef25a/src/Flowingly.Shared.Angular/flowingly.directives/input.validaton.directive.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\n\nangular.module('flowingly.directives').directive('customInputValidation', [\n '$timeout',\n 'momentService',\n 'currencyService',\n function ($timeout, momentService, currencyService) {\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function (\n scope: angular.IScope,\n elem: JQuery,\n attr: angular.IAttributes,\n ctrl: angular.IController\n ) {\n function customValidator(ngModelValue) {\n if (attr.customInputValidation) {\n const isValid = comparervalues(ngModelValue, attr);\n ctrl.$setValidity('customInputValidate', isValid);\n $timeout(function () {\n updateErrorMessage(isValid, attr);\n });\n }\n return ngModelValue;\n }\n function comparervalues(ngModelVal, attr) {\n let valid = true;\n const custvaliobj = JSON.parse(attr.customInputValidation);\n const fieldType = attr.fieldType;\n if (custvaliobj.required && ngModelVal !== null) {\n if (fieldType === 'number' || fieldType === 'currency') {\n // this service returns a number if already number\n // @TODO move this method to a better place\n const tempVal = currencyService.parseNumber(ngModelVal);\n\n if (!isNaN(tempVal)) {\n const parsedNgVal = tempVal;\n let parsedcustVal = parseFloat(custvaliobj.value);\n if (\n custvaliobj.valueOption &&\n custvaliobj.valueOption === 'previousValue' &&\n attr.customInputValidationPreviousData &&\n custvaliobj.formFieldId\n ) {\n const previousData = JSON.parse(\n attr.customInputValidationPreviousData\n );\n parsedcustVal = parseFloat(\n previousData[custvaliobj.formFieldId]\n );\n }\n if (!isNaN(parsedcustVal)) {\n switch (custvaliobj.rule) {\n case 0:\n valid = parsedcustVal === parsedNgVal;\n break; // equals\n case 1:\n valid = parsedcustVal < parsedNgVal;\n break; // greater than\n case -1:\n valid = parsedcustVal > parsedNgVal;\n break; //less than\n }\n }\n }\n } else if (fieldType === 'date' || fieldType === 'datetime') {\n const dateFormat =\n fieldType === 'date' ? 'DD/MM/YYYY' : 'DD/MM/YYYY hh:mm:ss A'; // based on date formats in field-date-directve and field-dateTime-directive\n const parsedNgVal = momentService(\n ngModelVal,\n dateFormat\n ).toDate();\n let parsedcustVal = momentService(\n custvaliobj.value,\n dateFormat\n ).toDate();\n if (\n custvaliobj.valueOption &&\n custvaliobj.valueOption === 'previousValue' &&\n attr.customInputValidationPreviousData &&\n custvaliobj.formFieldId\n ) {\n const currentStepId = angular\n .element('#stepForFormModeleNodeId')\n .val();\n if (currentStepId !== custvaliobj.previousStepId) {\n const previousDataTime = JSON.parse(\n attr.customInputValidationPreviousData\n );\n parsedcustVal = previousDataTime[custvaliobj.formFieldId]\n ? momentService(\n previousDataTime[custvaliobj.formFieldId]\n ).toDate()\n : 'data not found';\n } else {\n parsedcustVal = scope.ctrl.form.data[custvaliobj.formFieldId]\n ? momentService(\n scope.ctrl.form.data[custvaliobj.formFieldId],\n dateFormat\n ).toDate()\n : 'data not found';\n }\n } else if (\n custvaliobj.valueOption &&\n custvaliobj.valueOption === 'createdDate' &&\n !!custvaliobj.stepCreatedDateOffset\n ) {\n const formattedDateValue = momentService()\n .add(custvaliobj.stepCreatedDateOffset, 'days')\n .format(dateFormat);\n parsedcustVal = momentService(\n formattedDateValue,\n dateFormat\n ).toDate();\n }\n\n if (\n parsedcustVal instanceof Date &&\n parsedNgVal instanceof Date &&\n !isNaN(parsedcustVal.valueOf()) &&\n !isNaN(parsedNgVal.valueOf())\n ) {\n switch (custvaliobj.rule) {\n case 0:\n valid = parsedcustVal.valueOf() === parsedNgVal.valueOf();\n break; //equals\n case 1:\n valid = parsedcustVal.valueOf() < parsedNgVal.valueOf();\n break; // after\n case -1:\n valid = parsedcustVal.valueOf() > parsedNgVal.valueOf();\n break; //before\n }\n }\n }\n }\n return valid;\n }\n\n function updateErrorMessage(isValid, attr) {\n const errSpan = angular.element('#' + attr.id + '_error');\n if (errSpan.length === 0) return;\n const fieldType = attr.fieldType;\n const isDateField = fieldType === 'date' || fieldType === 'datetime';\n if (isValid) errSpan.html('');\n else {\n const custvaliobj = JSON.parse(attr.customInputValidation);\n if (\n custvaliobj.errorMessage &&\n custvaliobj.errorMessage.length > 0\n ) {\n errSpan.html(custvaliobj.errorMessage);\n } else {\n let error = '';\n error = 'A ' + fieldType + ' value should be ';\n const oneRule =\n fieldType === 'number' || fieldType === 'currency'\n ? ' greater than '\n : ' after ';\n const minusOneRule =\n fieldType === 'number' || fieldType === 'currency'\n ? ' less than '\n : ' before ';\n const dateFormat = isDateField\n ? fieldType === 'date'\n ? 'DD/MM/YYYY'\n : 'DD/MM/YYYY hh:mm:ss A'\n : '';\n switch (custvaliobj.rule) {\n case 0:\n error += ' equal to ';\n break;\n case 1:\n error += oneRule;\n break;\n case -1:\n error += minusOneRule;\n break;\n }\n let value = '';\n if (\n custvaliobj.valueOption &&\n custvaliobj.valueOption === 'previousValue' &&\n attr.customInputValidationPreviousData &&\n custvaliobj.formFieldId\n ) {\n const currentStepId = angular\n .element('#stepForFormModeleNodeId')\n .val();\n if (currentStepId !== custvaliobj.previousStepId) {\n const previousData = JSON.parse(\n attr.customInputValidationPreviousData\n );\n value = previousData[custvaliobj.formFieldId];\n } else {\n value = momentService(\n scope.ctrl.form.data[custvaliobj.formFieldId],\n dateFormat\n ).toDate();\n }\n } else if (\n custvaliobj.valueOption &&\n custvaliobj.valueOption === 'createdDate' &&\n !!custvaliobj.stepCreatedDateOffset\n ) {\n const formattedDateValue = momentService()\n .add(custvaliobj.stepCreatedDateOffset, 'days')\n .format(dateFormat);\n value = momentService(formattedDateValue, dateFormat).toDate();\n } else {\n value = isDateField\n ? momentService(custvaliobj.value, dateFormat).toDate()\n : custvaliobj.value;\n }\n if (isDateField) {\n value = momentService(value).format(dateFormat);\n }\n errSpan.html(error + value);\n }\n }\n }\n\n ctrl.$parsers.unshift(customValidator);\n ctrl.$formatters.unshift(customValidator);\n\n attr.$observe('customInputValidationPreviousData', function (val: any) {\n if (val != '') {\n const data = JSON.parse(val);\n if (data && Object.keys(data).length > 0)\n customValidator(ctrl.$$lastCommittedViewValue);\n }\n });\n attr.$observe('customFormData', function (val: any) {\n if (val != '') {\n const data = JSON.parse(val);\n if (data && Object.keys(data).length > 0)\n customValidator(ctrl.$$lastCommittedViewValue);\n }\n });\n }\n };\n }\n]);\n","/**\n * @name flowSamePassword\n * @module flowingly.directives\n * @description Custom validator based on expressions.\n * ### Notes\n * see: https://docs.angularjs.org/guide/forms\n * https://wijmo.com/blog/easy-form-validation-in-angularjs/\n *\n * @usage\n * ```\n * \n * \n * \n *
\n *
Passwords don't match.
\n *
\n * ```\n *\n * Converted to ts on 16/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/deaa3e49cef09006e53d6351564e8e4ba65c1f62/src/Flowingly.Shared.Angular/flowingly.directives/custom.validation.directive.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\n\nangular\n .module('flowingly.directives')\n .directive('flowCustomValidation', function () {\n return {\n require: 'ngModel',\n link: link,\n restrict: 'E'\n };\n\n function link(\n scope: angular.IScope,\n elm: JQuery,\n attrs: angular.IAttributes,\n ctl: angular.IController\n ) {\n scope.$watch(attrs.isValid, function (isValid) {\n ctl.$setValidity(attrs.message, isValid);\n });\n }\n });\n","/**\n * @name delegationBanner\n * @module flowingly.directives\n * @description A component is used to display delegation banner.\n * @usage\n * ```\n \n * ```\n *\n * Converted to ts on 16/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/ba08a9e223ae3b3307b6a1d00d82d22ace18b02d/src/Flowingly.Shared.Angular/flowingly.directives/delegation-banner/delegation-banner.component.js?at=master\n */\n\n'use strict';\n\nimport angular from 'angular';\nimport { Services } from '@Shared.Angular/@types/services';\nimport { SharedAngular } from '@Angular.Runner/@types/sharedAngular';\nangular.module('flowingly.delegation.banner').component('delegationBanner', {\n templateUrl: 'delegation-banner.tmpl.html',\n bindings: {\n user: '<'\n },\n controller: [\n 'sessionService',\n '$timeout',\n 'accountApiService',\n 'notificationService',\n '$rootScope',\n 'APP_CONFIG',\n function (\n sessionService: Services.SessionService,\n $timeout: angular.ITimeoutService,\n accountApiService: Services.AccountApiService,\n notificationService: Services.NotificationService,\n $rootScope: angular.IRootScopeService,\n appConfig: SharedAngular.APP_CONFIG\n ) {\n const $ctrl = this;\n $ctrl.showBannerPopup = false;\n $ctrl.showBanner = showBanner;\n $ctrl.turnOff = turnOff;\n $rootScope.globalInDelegationMode = this.user.inDelegationMode; //initialization\n $ctrl.enableProcessApprovals = appConfig.enableProcessApprovals;\n\n $ctrl.$onInit = function () {\n //FLOW-4290: Might not be an actual issue occuring in prod as this works well for a real SSO user (used Microsoft SSO), but is here to fix anyway */\n sessionService\n .getUserDetails($ctrl.user.email)\n .then(function (response) {\n const res = response.data;\n if (res.success === true) {\n const userDetails = sessionService.formatUserForLocalStorage(\n res.dataModel\n );\n $rootScope.user = userDetails;\n $ctrl.user.delegateApprovalUserFullName =\n $rootScope.user.delegateApprovalUserFullName;\n $ctrl.user.delegateStepUserFullName =\n $rootScope.user.delegateStepUserFullName;\n $ctrl.user.delegateFlowModelApprovalUserFullName =\n $rootScope.user.delegateFlowModelApprovalUserFullName;\n }\n });\n };\n\n $(window).click(function (event) {\n const target = event.target;\n if (\n target.id === 'delegationBanner' ||\n target.id === 'delegationBannerPopup' ||\n target.id === 'tab-inprogress-link-large-screen' ||\n angular.element(target).hasClass('yay-toggle hamburger') ||\n angular.element(target).hasClass('yay-toggle side-toggle')\n )\n return;\n\n $timeout(function () {\n $ctrl.showBannerPopup = false;\n });\n });\n $(window).on('orientationchange', function (event) {\n $timeout(function () {\n $ctrl.showBannerPopup = false;\n });\n });\n function turnOff() {\n accountApiService.turnOffDelegation().then(function () {\n const user = sessionService.getUser();\n user.inDelegationMode = false;\n user.delegateApprovalUserId = undefined;\n user.delegateStepUserId = undefined;\n user.delegateFlowModelApprovalUserId = undefined;\n user.delegateStepUserFullName = '';\n user.delegateApprovalUserFullName = '';\n user.delegateFlowModelApprovalUserFullName = '';\n sessionService.clearUser();\n sessionService.setUser(user);\n $rootScope.globalInDelegationMode = false;\n notificationService.showSuccessToast(\n 'Delegation has been turned off'\n );\n });\n }\n function showBanner() {\n $ctrl.showBannerPopup = !$ctrl.showBannerPopup;\n $timeout(function () {\n setPopupPosition();\n });\n }\n\n function setPopupPosition() {\n if ($ctrl.showBannerPopup) {\n const banner = document\n .getElementById('delegationBanner')\n .getBoundingClientRect();\n const width = $(window).width();\n const popupleft =\n width < 601 ? banner.right - 295 : banner.left - 150;\n\n angular.element('#delegationBannerPopup').css({ left: popupleft });\n }\n }\n\n $ctrl.calculateBannerWidth = function () {\n const hasDelegation = [\n this.user.delegateApprovalUserId,\n this.user.delegateStepUserId,\n this.user.delegateFlowModelApprovalUserId\n ].filter(Boolean);\n return hasDelegation.length >= 2 ? '487px' : '340px';\n };\n }\n ]\n});\n","/*\n * Converted to ts on 16/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/0e79da5eea4ea73285a3c42d2f3e41bfcb223521/src/Flowingly.Shared.Angular/flowingly.directives/delegation-banner/delegation-banner.module.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\n\nconst delegationBannerModule = angular.module(\n 'flowingly.delegation.banner',\n []\n);\n\ndelegationBannerModule.run([\n '$templateCache',\n function ($templateCache: angular.ITemplateCacheService) {\n $templateCache.put(\n 'delegation-banner.tmpl.html',\n require('./delegation-banner.tmpl.html').default\n );\n }\n]);\n","/**\n * @ngdoc module\n * @name flowingly.directives\n * @module flowingly.adapters\n * @requires templates-directives\n * @description Directives shared across our websites\n *\n * Converted to ts on 17/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/deaa3e49cef09006e53d6351564e8e4ba65c1f62/src/Flowingly.Shared.Angular/flowingly.directives/directives.module.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\n\nconst directiveModule = angular.module('flowingly.directives', [\n 'templates-directives'\n]);\n\ndirectiveModule.run([\n '$templateCache',\n function ($templateCache: angular.ITemplateCacheService) {\n $templateCache.put(\n 'intercom.message.launcher.tmpl.html',\n require('./intercom.message.launcher/intercom.message.launcher.tmpl.html')\n .default\n );\n }\n]);\n","import angular from 'angular';\n\nexport class FlowinglyDragDrop {\n public link: (\n scope: ng.IScope,\n element: ng.IAugmentedJQuery,\n attrs: ng.IAttributes\n ) => void;\n public restrict: string;\n public scope = {\n isDraggable: '<',\n isDroppable: '<',\n dragStart: '&',\n dragEnd: '&',\n dragOver: '&',\n dragLeave: '&',\n drop: '&'\n };\n\n constructor() {\n this.link = (scope: ng.IScope, element: JQuery) => {\n if (scope.isDraggable) {\n element.attr('draggable', 'true');\n }\n\n element.on('dragstart', function (ev) {\n ev.originalEvent.dataTransfer.effectAllowed = 'copy';\n scope.dragStart();\n });\n\n element.on('dragend', function () {\n scope.dragEnd();\n });\n\n if (scope.isDroppable) {\n element.on('dragover', function (ev) {\n ev.preventDefault();\n ev.originalEvent.dataTransfer.dropEffect = 'copy';\n scope.dragOver();\n });\n\n element.on('dragleave', function (ev) {\n ev.preventDefault();\n scope.dragLeave();\n });\n\n element.on('drop', function (ev) {\n ev.preventDefault();\n scope.drop();\n });\n }\n };\n\n this.restrict = 'A';\n }\n\n static Factory() {\n const directive = () => {\n return new FlowinglyDragDrop();\n };\n\n directive['$inject'] = [];\n\n return directive;\n }\n}\n\nangular\n .module('flowingly.directives')\n .directive('flowinglyDragDrop', FlowinglyDragDrop.Factory());\n","'use strict';\nimport angular from 'angular';\n\nangular.module('flowingly.directives').directive('duedatePastValidation', [\n 'momentService',\n function (moment: Moment) {\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function (scope, elem, attr, ctrl: angular.IController) {\n ctrl.controlDateTimeFormat = 'DD/MM/YYYY hh:mm A';\n\n // add a parser that will process each time the value is\n // parsed into the model when the user updates it.\n ctrl.$parsers.unshift(function (value) {\n if (value) {\n value = moment(value, ctrl.controlDateTimeFormat);\n\n // test and set the validity after update.\n const valid = moment(value).isAfter(moment());\n ctrl.$setValidity('pattern', valid);\n\n return value;\n } else {\n ctrl.$setValidity('required', false);\n }\n });\n\n // add a formatter that will process each time the value\n // is updated on the DOM element.\n ctrl.$formatters.unshift(function (value) {\n if (value) {\n value = moment(value, ctrl.controlDateTimeFormat);\n // validate.\n ctrl.$setValidity('pattern', moment(value).isAfter(moment()));\n // return the value or nothing will be written to the DOM.\n\n return value;\n } else {\n ctrl.$setValidity('required', false);\n }\n });\n }\n };\n }\n]);\n","/**\n * @ngdoc directive\n * @name flowElastic\n * @module flowingly.directives\n * @description A directive to make textareas expand (and shrink) with content\n * ### Notes\n * Copied as is from here: https://github.com/monospaced/angular-elastic\n * @usage\n * ```\n \n * ```\n *\n * Converted to ts on 16/01/2020\n * See https://bitbucket.org/flowingly-team/flowingly-source-code/src/819311883fccbb372f685182bb8a6e78667b38ce/src/Flowingly.Shared.Angular/flowingly.directives/elastic.textarea.directive.js?at=master\n */\n\n'use strict';\nimport angular from 'angular';\n\nconst elasticConfig = {\n append: ''\n};\nangular\n .module('flowingly.directives')\n .constant('flowElasticConfig', elasticConfig)\n .directive('flowElastic', [\n '$timeout',\n '$window',\n 'flowElasticConfig',\n function (\n $timeout: angular.ITimeoutService,\n $window: angular.IWindowService,\n config: typeof elasticConfig\n ) {\n return {\n require: 'ngModel',\n restrict: 'A, C',\n link: function (\n scope: angular.IScope,\n element: JQuery,\n attrs: angular.IAttributes,\n ngModel: any\n ) {\n // cache a reference to the DOM element\n const ta = element[0],\n $ta = element;\n\n // ensure the element is a textarea, and browser is capable\n if (ta.nodeName !== 'TEXTAREA' || !$window.getComputedStyle) {\n return;\n }\n\n // set these properties before measuring dimensions\n $ta.css({\n overflow: 'hidden',\n 'overflow-y': 'hidden',\n 'word-wrap': 'break-word'\n });\n\n // force text reflow\n const text = ta.value;\n ta.value = '';\n ta.value = text;\n\n const append = attrs.flowElastic\n ? attrs.flowElastic.replace(/\\\\n/g, '\\n')\n : config.append,\n $win = angular.element($window),\n mirrorInitStyle =\n 'position: absolute; top: -999px; right: auto; bottom: auto;' +\n 'left: 0; overflow: hidden; -webkit-box-sizing: content-box;' +\n '-moz-box-sizing: content-box; box-sizing: content-box;' +\n 'min-height: 0 !important; height: 0 !important; padding: 0;' +\n 'word-wrap: break-word; border: 0;',\n $mirror = angular\n .element(\n '
\";\n// Exports\nexport default code;","// Module\nvar code = \"
Required
Searchable
This input does not support HTML.
A value is required for this field

This input does not support HTML.

\";\n// Exports\nexport default code;","// Module\nvar code = \"
Add Column

{{$ctrl.errorMessage}}

\";\n// Exports\nexport default code;","// Module\nvar code = \"
 downloading attachments not supported on this device
{{cell.header}} (Optional) (formula) (lookup)
Unrecognised type {{cell.type}}
1 || !$ctrl.isRequired\\\" ng-click=\\\"$ctrl.removeRow(row.id)\\\" class=\\\"fa-light fa-circle-minus btn-remove\\\" title=\\\"Remove row\\\">
No Rows Added Yet
{{cell.sum | currency:\\\"$\\\":2}} {{cell.sum | number:2}}
    0\\\">
  • {{error.msg}}
\";\n// Exports\nexport default code;","// Module\nvar code = \"
\";\n// Exports\nexport default code;","// Module\nvar code = \"
{{$ctrl.uploadedFile.filename}}({{$ctrl.uploadedFile.size}}K)
\";\n// Exports\nexport default code;","// Module\nvar code = \"
0\\\" class=\\\"sum-row\\\">
{{cell.header}}
\\n                        \\n                
No file added
{{cell.sum | number:2}}
{{::$ctrl.noRowDataMessage}}
\";\n// Exports\nexport default code;","// Module\nvar code = \"
You are reassigning approvals to {{$ctrl.user.delegateApprovalUserFullName}} and other steps to normal steps to {{$ctrl.user.delegateStepUserFullName}} and flow model approval to {{$ctrl.user.delegateFlowModelApprovalUserFullName}} Turn Off
You are reassigning
approvals to {{$ctrl.user.delegateApprovalUserFullName}}
and other steps to normal steps to {{$ctrl.user.delegateStepUserFullName}}
\";\n// Exports\nexport default code;","// Module\nvar code = \" \";\n// Exports\nexport default code;","// Module\nvar code = \"
{{::$ctrl.notification.header}}
{{$ctrl.notification.commentDate | date: 'dd MMM'}}
\";\n// Exports\nexport default code;","// Module\nvar code = \"
0}\\\" ng-attr-data-badge=\\\"{{$ctrl.getNotificationCount()}}\\\" aria-hidden=\\\"true\\\">
Notifications
\";\n// Exports\nexport default code;","// Module\nvar code = \"
\";\n// Exports\nexport default code;","// Module\nvar code = \"

{{::ctrl.title}}

{{::ctrl.message}}

Type {{::ctrl.confirmationWord}} to continue:
\";\n// Exports\nexport default code;","// Module\nvar code = \"

{{ctrl.model.headerText}}

{{ctrl.model.message}}
\";\n// Exports\nexport default code;","// Module\nvar code = \"

{{ctrl.unPublishMessage}}

{{ctrl.subMessage}}

Any active flows will continue to run until completion.

We will save your publishing settings so that you can use these again in the future.

\";\n// Exports\nexport default code;","module.exports = angular;"],"names":["ModelerActionEvent","NodeRuleActions","PublicFormType","SettingValueType","LookupSpecialFields","WorkflowStatusType","systemEvents","signalrEvents","noneSystemEvents","allPubSubEvents","isSystemEvent","event","findIndex","e","isSignalrEvent","STATE_MAPPINGS","flowsactive","flowstodo","flowsin","reports","processmapsv2","libraryworkflows","libraryprocessmaps","librarydrafts","dashboard","analytics","angular","module","exagoJsApiResource","$window","getActiveSession","ExagoActiveSession","createInstance","appUrl","apiKey","ExagoApi","onLoadCallback","OnDisposeContainer","container","$","empty","console","error","log","isExagoReady","CreateInstance","GetActiveSession","OnLoadCallback","factory","undefined","go","html2canvas","he","window","ID","_","fn","extend","outerHTML","this","clone","wrap","parent","html","textWidth","$e","document","createElement","appendTo","n","width","remove","textHeight","height","isWorkableNode","nodeType","isVisible","is","jsPDF","kendo","Materialize","moment","Papa","toastr","zxcvbn","BpmnActivityNodeService","static","constructor","goService","BpmnPartsFactory","BPMN_CONSTANTS","BpmnCommonService","flowinglyConstants","modelerValidationErrorsService","pubsubService","APP_CONFIG","avatarService","defaults","ActivityNodeEditable","MakeNodesEditable","ActivityNodeWidth","ActivityNodeMaskWidth","ActivityNodeHeight","ActivityNodeStroke","ActivityNodeBorder","ActivityNodeFill","ActivityNodeStrokeWidth","ActivityNodePaletteStrokeWidth","ActivityHeaderColor","ActivityHeaderFillColor","ActivitySquareColour","ActivitySquareFillColor","ActivitySquareHighlightColour","ActivitySquareHighlightColor","determineBackgroundColor","bind","getDefaultActivityCardModel","description","formElements","getNode","options","getActivityNode","getPaletteNode","getActivityPaletteNode","nodeActivityTaskVisibilityConverter","s","taskType","APPROVAL","PARALLEL_APPROVAL","SEQUENTIAL_APPROVAL","nodeShowEmailIconVisibilityConverter","node","show","displayNotificationIcon","isCustomMailActivity","nodeShowRefSequenceVisibilityConverter","nodeShowIntegrationIconVisibilityConverter","display","enableWebhooks","nodeShowAttachDocumentVisibilityConverter","String","toLowerCase","nodeShowStepTaskIconVisibilityConverter","isStepTaskEnabled","enableStepTasks","nodeShowPublicFormIconVisibilityConverter","nodeShowStepRuleIconVisibilityConverter","allowStepRules","getBorderColor","goNodeModel","hasErrors","key","Theme","Error","Border","Color","getBorderWidth","hasError","StrokeWidth","isNodeCurrentStep","color","FlowinglyWhite","isInModeler","location","pathname","actorName","firstLetter","charAt","toUpperCase","getBgColorForProcessMapRightPaneAvatar","$GO","GraphObject","make","Node","isShadowed","shadowColor","diagram","shadow","shadowBlur","blur","shadowOffset","Point","offsetX","offsetY","locationSpot","Spot","Center","resizable","selectionAdorned","defaultStretch","Vertical","cursor","mouseEnter","shouldShowConnectorPoints","data","showPort","mouseLeave","hidePort","Binding","parse","makeTwoWay","stringify","Panel","Shape","fill","stroke","strokeWidth","fromLinkable","toLinkable","portId","fromLinkableDuplicates","toLinkableDuplicates","fromSpot","RightSide","toSpot","LeftSide","name","alignment","Left","defaultAlignment","margin","Margin","RowColumnDefinition","row","background","column","stretch","Fill","minSize","Size","TextBlock","textAlign","font","WrapDesiredSize","columnSpan","editable","textValidation","textBlock","oldValue","newValue","indexOf","textEditor","getTextEditingTool","WrapFit","isMultiline","Horizontal","stepName","text","publish","refSequence","BottomRight","Picture","attachDocumentIcon","scale","source","ASSETS_PATH","isInternetExplorer","webhooksSvgIconIE","webhooksSvgIcon","PublicFormIconColour","geometryString","StepRuleIconColour","ApprovalIconColour","emailIcon","outerWidth","outerHeight","makePort","Right","getTextBlock","ActivityLabelFill","click","nodeClickHandler","paletteIcon","palette","iconIE","email","innerWidth","icon","activity","innerHeight","service","bpmnCommandService","guidService","getDrawCommandHandler","Diagram","inherit","drawCommandHandler","CommandHandler","prototype","canAlignSelection","isReadOnly","isModelReadOnly","selection","count","alignLeft","startTransaction","minPosition","Infinity","each","current","Link","Math","min","position","x","move","y","commitTransaction","alignRight","maxPosition","rightSideLoc","actualBounds","max","alignTop","alignBottom","bottomSideLoc","alignCenterX","firstSelection","first","centerX","alignCenterY","centerY","alignColumn","distance","parseFloat","selectedParts","push","i","length","curBottomSideLoc","alignRow","curRightSideLoc","canRotate","rotate","angle","toString","Group","doKeyDown","lastInput","behavior","arrowKeyBehavior","_arrowKeySelect","_arrowKeyMove","call","_getAllParts","allParts","nodes","parts","part","vdistance","hdistance","control","meta","grid","cellsize","gridCellSize","nextPart","_findNearestPartTowards","shift","isSelected","select","dir","originalPart","originalPoint","center","closestDistance","closest","nextPoint","directionPoint","anglediff","_angleCloseness","distanceSquaredPoint","sin","PI","a","abs","copyToClipboard","coll","toRemove","p","category","fromNode","toNode","model","nodeIdInClipboard","selectedNodeData","id","nodeKeyInClipboard","_lastPasteOffset","set","pasteOffset","pasteFromClipboard","isPasteFromClipboard","pastedCollection","moveParts","add","forEach","ad","item","sh","copiedFromNodeId","new","nodeCategory","CONVERGE_GATEWAY","EVENT","deleteSelection","memberParts","commandHandler","addTopLevelParts","Object","defineProperty","get","_arrowKeyBehavior","val","_pasteOffset","$inject","bpmnCommonService","validationService","getBpmnLinkingTool","getLinkTemplate","getGradientBrush","makeMarkerPanel","bpmnLinkingTool","LinkingTool","insertLink","fromPort","toPort","lsave","validateMessageLinkConnection","archetypeLinkData","newlink","routing","setRoutingMode","RoutingMode","curve","JumpGap","corner","LinkCornerCurve","isValidBackLink","nodeDataArray","linkDataArray","isBacklink","backlinkTo","Trigger","Type","eventStart","nodeObjFrom","NodeCategory","eventDimension","EXCLUSIVE_GATEWAY","allowNamingLinks","label","findObject","visible","validateSequenceLinkConnection","fromnode","fromport","tonode","toport","containingGroup","findCommonContainingGroup","reshapable","relinkableFrom","relinkableTo","toEndSegmentLength","LinkWidth","link","getLinkColor","ofObject","toArrow","fromArrow","LinkColour","segmentOffset","deleteBacklinkTo","BackLinkColour","JumpOver","updateTargetBindings","direction","ForwardsOnly","temporaryLink","linkValidation","mode","Orthogonal","AvoidsNodes","Normal","gradientType","gradientMeta","Brush","sub","MiddleBottom","alignmentFocus","ActivityMarkerStrokeWidth","makeSubButton","test","navigator","userAgent","defaultTextEditor","TextEditingTool","style","backgroundColor","spot","opacity","desiredSize","enableConnectorPoints","portName","port","BpmnComponentNodeService","ComponentWidth","ComponentNodeStroke","ComponentNodeStrokeWidth","ComponentHeaderColor","ComponentHeaderHeight","ComponentHeaderMargin","ComponentHeaderFoldAmount","MinComponentBodyHeight","ComponentBodyHeight","defineFigureGenerator","shape","w","h","Geometry","PathFigure","PathSegment","Line","getNodeHeader","FlowinglyLightGrey","overflow","OverflowEllipsis","getNodeBody","toMaxLinks","getNodeSequenceBody","locationObjectName","fromMaxLinks","Part","component","PaletteTextColour","theme","FlowinglyStrokeWidth","FlowinglyPaletteStrokeWidth","FlowinglyGreen","FlowinglyBlue","FlowinglyOrange","FlowinglyRed","FlowinglyGrey","FlowinglyMediumGrey","FlowinglyDarkGrey","FlowinglyPaletteGrey","FlowinglyPaletteText","FlowinglyBlack","FlowinglyBlue2","FlowinglyLightGrey2","FlowinglyHighlightedNode","CONSTANTS","DiagramScale","DiagramMinScale","DiagramMaxScale","EventNodeSize","EventNodeInnerSize","TerminateInnerCircle","ACTIVITY","GATEWAY","GatewayNodeSize","GatewayNodeFill","GatewayNodeStroke","GatewayNodeStrokeWidth","GatewayNodePaletteStrokeWidth","GatewayLabelFill","EventNodeStrokeWidth","EventNodePaletteStrokeWidth","EventNodeFill","EventNodePaletteFill","EventStartBorder","EventEndBorder","LightGreenBrush","LightOrangeBrush","EventLabelFill","GatewayPaletteScale","ActivityPaletteScale","EventPaletteScale","NoScale","PaletteGap","EmailIconColour","IntegrationIconColour","TextColour","gateway","pool","gatewayIcon","constant","directive","$rootScope","$timeout","BpmnService","BpmnDiagramService","lodash","restrict","template","replace","scope","isReadonly","element","attrs","dg","getDiagramModel","initialContentAlignment","customizeValidation","context","isLinkDisallowedForGateway","isLinkAllowedForNode","isLinkDisallowedForStartOrEndNode","zoomToFit","maxZoom","minZoom","diagramWidth","documentBounds","diagramHeight","wRatio","hRatio","distanceFromPalette","iconHalfWidth","setBacklinkToOnNodes","links","filter","l","backlink","find","from","to","onDiagramModelChanged","isTransactionFinished","transaction","object","isUndo","notifyChange","changes","modelChange","change","ChangedEvent","Insert","Remove","safeScopeApply","markDIagramAsDirty","addClass","raiseSelectionChanged","raiseDiagramUpdatedEvent","updateNodeLinks","selectionChanged","isGateway","$GOphase","$apply","onDroppedEvent","droppedNode","isNew","Card","gates","redrawDiagram","removeChangedListener","layout","invalidateLayout","addChangedListener","setLinkDefaultFlow","linkData","isDefault","Conditions","findLinkForData","updateStepType","findNodeForData","setDataProperty","it","iterator","next","ht","value","routeBounds","pt","points","initialpoint","movePoints","updateEmailIcon","updatePublicFormIcon","displayPublicFormIcon","updateStepRuleIcon","updateStepIntegrationIcon","displayStepRuleIcon","displayStepIntegrationIcon","updateAttachDocumentIcon","displayStepAttachDocumentIcon","updateStepTaskIcon","displayStepTaskIcon","updateStepRefSequence","findNodeForKey","updateStepActor","updateNode","firstNode","nextNode","addNewSwimLane","lane","laneObj","size","newlanedata","isGroup","loc","group","addNodeData","newlanedatawithLoc","removeSwimLane","laneNode","rename","newName","prompt","validCycle","CycleAll","toolManager","panningTool","isEnabled","addDiagramListener","updateAllTargetBindings","draggingTool","isGridSnapEnabled","resizingTool","linkingTool","relinkingTool","storeDiagram","mainDiagram","$watch","newmodel","oldmodel","subscribe","subject","M","portDisconnectedFrom","parameter","selnode","selNodeData","copiedFromNodeKey","includes","mouseDownTools","insertAt","getLaneResizingTool","$on","eventData","type","preventDefault","copySelection","pasteSelection","cutSelection","selectAll","undo","redo","bpmnDiagramService","MINLENGTH","MINBREADTH","diagrams","getDiagram","relayoutDiagram","nodeTemplateMap","getNodeTemplateMap","linkTemplateMap","getLinkTemplateMap","groupTemplateMap","getGroupTemplateMap","allowDrop","minScale","maxScale","allowUndo","scrollMode","InfiniteScroll","laneResizingTool","ResizingTool","isLengthening","handle","computeMinSize","adornedObject","msz","computeMinLaneSize","sz","computeMinPoolSize","computeLaneSize","canStart","handl","findToolHandleAt","firstInput","documentPoint","resize","newr","resizeObject","myDiagram","findTopLevelGroups","g","layoutDiagram","len","holder","placeholder","NaN","isSubGraphExpanded","hsz","hdr","bpmnEventNodeService","EventNodeSymbolSize","EventSymbolLightFill","EventSymbolDarkFill","EventDimensionStrokeColor","EventDimensionStrokeEndColor","EventDimensionInnerStrokeColor","EventNodeStrokeWidthIsEnd","getEventNode","makePaletteNode","useAdornment","isForPalette","warn","pickable","BpmnGatewayNodeService","COMMON_GATEWAY_OPTIONS","NotLeftSide","MiddleLeft","GATEWAY_DAFAULT_COLOR","GATEWAY_PALETTE_FILL_COLOR","GatewayNodeEditable","GatewayNodeSymbolSize","GatewayNodeSymbolStroke","GatewayNodeSymbolFill","GatewayNodePaletteFill","GatewayNodeSymbolStrokeWidth","CURSOR_MOVE_OPTIONS","getExclusiveGatewayNode","DIVERGE_GATEWAY","getDivergeGatewayNode","getMergeGatewayNode","getGenericGateway","getShapeForBorder","getDecisionGraphIcon","opts","getDivergeGraphIcon","getMergeGraphIcon","isExclusiveGateway","isConverge","getGatewayPaletteNode","resizeObjectName","layerName","getGenericGatewayNode","gatewayGraphIcon","canEditText","imageUrl","BpmnLaneNodeService","getLaneNodeTemplate","getLanePaletteNode","groupStyle","movable","copyable","avoidable","updateCrossLaneLinks","findExternalLinksConnected","dia","laneNodeTemplate","contextMenu","minLocation","maxLocation","selectionObjectName","obj","LayeredDigraphLayout","isInitial","isOngoing","columnSpacing","layeringOption","LayerLongestPathSource","computesBoundsAfterDrag","computesBoundsIncludingLinks","computesBoundsIncludingLocation","handlesDragDropForMembers","mouseDrop","grp","any","addMembers","currentTool","doCancel","subGraphExpandedChanged","shp","undoManager","isUndoingRedoing","_savedBreadth","TopLeft","LeftCenter","Placeholder","padding","resizeAdornmentTemplate","Adornment","adornedPart","Bottom","BpmnMenuService","getActivityNodeMenu","getBoundaryEventMenu","issueCommand","$broadcast","Overview","observed","keyCompare","b","at","bt","PALETTE_MAX_HEIGHT","PALETTE_MIN_HEIGHT","PALETTE_SPACING_MAX","PALETTE_SPACING_MIN","getPaletteSpacing","diamgramHeight","spacing","Palette","getPaletteNodeTemplateMap","getPaletteGroupTemplateMap","GridLayout","wrappingColumn","comparer","animationManager","bpmnPartsFactory","goJsNode","bindingName","binding","textColor","textEditable","maxSize","BpmnPoolNodeService","getPoolNodeTemplate","getPoolPaletteNode","poolLayout","cellSize","wrappingWidth","isRealtime","Position","ay","by","isNaN","getPoolLayout","doLayout","minsize","cell","resizeCellSize","ceil","defaultColumnSeparatorStroke","BpmnCommandService","BpmnEventNodeService","initialise","Map","palGroupTemplateMap","createEmptyShape","AddCommentComponentController","debounceInterval","fileList","$scope","flowinglyMentionService","commentApiService","notificationService","sessionService","fileService","tokenService","commentTargetType","CommentTargetType","FLOW","STEP_TASK","addCommentHeader","flowOwnerOnly","$onInit","removeAllFiles","disableAddButton","enableAddButton","addComment","mentions","extractMentionsFromCommentText","commentContent","commentContents","transformMentionDisplayToStore","confirmText","warningText","trimSpaces","isXssVulnerableString","showErrorToast","comment","fileIds","map","f","userId","getUser","commentType","CommentType","UserComment","addFlowComment","parseInt","commentTargetTypeFromReact","commentTargetId","isPublishRequestSchema","then","COMMENT_RESET_EVENT","currentUser","newComment","fullName","avatarUrl","commentedByName","momentCommented","files","onAddComment","showSuccessToast","showWarningToast","closeComment","TOGGLE_FEEDBACK_PANEL","onFileUploaded","file","isAddButtonDisabled","removeFile","index","splice","user","setUser","getTenant","removeFileForId","filename","catch","$onDestroy","unsubscribeAll","AddCommentComponent","bindings","templateUrl","controller","CommentHistoryComponent","isFirstComment","isLastComment","isMobile","CommentsComponentController","scrollToCommentBottom","commentList","c","getAvatarUrl","JSON","loadComments","stepTaskId","getFlowComments","onCommentAdded","CommentsComponent","run","$templateCache","put","require","EMPTY","EMPTY_PREVIOUS","TEXT_OPERATION_OPTIONS","NUMBER_OPERATION_OPTIONS","getActualValue","str","CustomDatabaseConfigController","$http","customdbService","$q","brandingService","databasesApiBaseUrl","apiBaseUrl","moveProxyToNgModel","moveNgModelToProxy","tableColumnsNameConstants","tableColumnsName","decisionHelpUri","getBrandedHelpUri","allDbs","displayValueOptions","valueOptions","operationOptions","shouldShowFilters","proxy","getEmptyProxy","operation","col","field","dbDataSource","filters","onFilterColumnChange","submitFieldChange","colName","colData","v","colType","operations","o","valName","matchColumn","dataType","fetchValueOptions","displayValue","onFieldChange","clearFilters","rerenderKendoComponentsHackFLOW4826","onDbNameChange","promise","isDuringInit","dbName","copyOfField","noSpinner","response","idColumnIndex","d","customIdColumnIndex","unshift","copy","resolve","isReady","db","finally","populateValueOptions","allFields","CustomDatabaseConfigComponent","DatepickerComponentController","$element","format","animation","clearDate","DatepickerComponent","devLoggingService","levels","OFF","ERRORS","INFO","DEBUG","info","setLoggingLevel","currentLevel","message","level","paragraphs","SelectUserController","lodashService","userApiService","svcs","fetchUsers","$onChanges","multipleStandardsAdapter","ngModel","_selectValue","Id","_selectText","FullName","firstName","lastName","term","differenceWith","isArray","toLower","sortedUniqBy","sortBy","concat","searchUsers","clientId","businessId","permissionSecureCodes","include","fetchSpecificUsers","all","foundActors","specificActors","actors","exclude","excludeSet","actor","users","onDataLoadError","idsToFetch","requests","Array","idToFetch","loadUser","getUserBasicInfoByFieldName","isDisabled","noEmpty","onSelect","onChange","onClose","onOpen","EditorYoutubeDialogComponentController","params","insertVideo","selector","editor","testUrlForMedia","pastedData","match","split","alert","range","getRange","dialog","media","selectRange","exec","close","end","kendoWindow","modal","title","deactivate","destroy","activate","setTimeout","focus","open","EditorYoutubeDialogComponent","controllerAs","FACADE_KENDO_EVENT_MAP","onDataBound","ComboBoxFacadeController","$attrs","DataSourceFacade","clearButton","minLength","fieldText","fieldValue","autocomplete","$ctrl","_kendoConfig","setAttr","setAutoComplete","setNoEmpty","initDataSource","dataSource","update","kendoOptions","getKendoConfig","kOptions","defaultVal","setDisable","isDisabledRaw","getAsKendoBridge","cb","eventName","flow","isOn","me","_data","getDataContext","autoCompleteConfig","delay","autoBind","ignoreCase","filtering","sender","createDataContext","input","_dataContext","shouldBeNoEmpty","getCurrentList","_previousVal","restorePreviousModelIfNone","dataTextField","KendoComboBoxAPI","kendoDataSourceFacade","isFunction","kendoDsConfig","serverFiltering","transport","read","dataBridge","kendoDS","DataSource","fetchData","fetchedResults","success","KENDO_INSTANCE_KEY","param","ns","substr","instance","isKendoInstance","widgetInstance","toJQuery","getInstance","newDs","kendoWidget","setDataSource","refresh","kendoInstance","getSelectableInstance","elements","ul","children","toArray","innerHTML","trigger","criteria","matches","actorId","showAvatar","url","showImage","getUserInitial","getColour","getElementsByClassName","attr","join","flowsUtilityService","$stateParams","$location","momentService","getStateParamValue","orderItemsAlphabetically","removeFlow","removeStep","toCamel","isInSupportHours","flows","property","sort","build","destKey","hasOwnProperty","slice","list","flowId","FlowId","stepId","intMatch","stepFound","some","Steps","step","search","supportHours","outOfHoursSupportMessage","utcSupportHourFrom","utcSupportHourTo","isBetween","cells","flowinglyModelUtilityService","currentFocus","mathOperators","brackets","init","OPRTYPE","MATH","BRACKET","OPERAND","TEXT","isTable","onFormFieldsChanged","fieldname","getElementById","formulaConfig","formula","formulaOperands","displayFormula","placeCaretAtEnd","updateFormula","addEventListener","setAutoCompleteSettings","updateFormulaConfig","onKeyDown","autoListElement","target","getSelection","focusNode","getElementsByTagName","keyCode","addActive","TEXT_NODE","nodeValue","parentNode","removeChild","previousSibling","nextSibling","getCaretPosition","currentSelection","errorMessage","cursorPositionElement","getRangeAt","commonAncestorContainer","previousElemet","cursorPosChild","lastChild","filterText","getPreviousElementOperation","isSpan","innerText","replaceText","buildAutoPopulate","getItemType","formFieldType","LOOKUP","tableCellType","lookupConfig","displayValueType","DROPDOWN_LIST","DROPDOWN","matchingOption","option","isNumericOperand","NUMBER","CURRENCY","isTextOperand","isOperand","getOperands","operands","formulaOperandPrefix","CELL","displayName","header","updatedFields","getFieldUpdate","fields","TABLE","transformTableCellToField","getEligibleCellsInFields","previousChildExists","closeAllLists","Operands","Operators","autoList","setAttribute","appendChild","autoListData","valueofSelected","isOperator","isBracket","insertTmpl","div","assign","firstChild","getAttribute","childNodes","clear","insertBefore","lstNode","insertChar","elmnt","removeActive","classList","child","typeOfOperand","selectedval","attributes","getNamedItem","replaceWith","trim","validateFormula","oldDisplayFormula","fieldFound","textNodes","operatorNodes","k","txt","isValid","previousType","nextType","previousOperand","opNode","stringDataTypeFound","operand","oprandField","replaceVal","Number","eval","nodeName","ele","sel","caretPos","rangeCount","endOffset","createRange","parentElement","tempEl","tempRange","duplicate","moveToElementText","setEndPoint","el","selectNodeContents","collapse","removeAllRanges","addRange","body","createTextRange","textRange","currentElement","selElment","previousElementFound","stype","spanVal","noSpace","IconPickerComponentController","icons","styleSheets","css","firstRule","cssRules","cssText","skipping","rule","selectorText","setIcon","IconPickerComponent","kendoHelper","randomId","setQueryValueOptionAndEnablement","config","queryValueDropdown","enable","displayValueDropdown","queryValue","shouldAddCurrentActorOptions","enableLookupFieldCurrentActorOptions","CurrentActorFullName","CurrentActorEmail","kendoQuery","kendoDropDownList","dataValueField","kendoDisplay","kendoDb","getAllDatabases","getColumns","currColumns","selectByCriteria","populateQueryAndDisplayColumns","suppressSubmitFieldChangeNotification","onDisplayColumnChange","optionName","chain","onQueryColumnChange","isQueryColumn","isDisplayColumn","MentionComponentController","hasXssVulnerableString","resultStack","everyoneMentioned","contents","onContentsChange","addEnterKeyListener","contentEditableElement","querySelector","execCommand","scrollTop","scrollHeight","searchResult","result","searchAvailableMentions","searchMentions","mention","when","onMentionSelect","actorTypeId","ActorType","Team","everyoneActorId","transformMentionForDisplay","handlePaste","copyData","originalEvent","clipboardData","getData","MentionComponent","isRequired","SessionTimeoutNotifierBridge","searchGroup","selectedList","filterBy","searchGroupDisabled","readOnly","headerText","infoText","availableUsers","availableGroups","expandGroupMembersFilter","isEmailRecipients","availableEmailFields","uniqueId","showTitle","showUser","showTeam","showCustomEmailInput","updateList","results","searchEntityType","USER","r","GROUP","APPROVER","STEP_FORM_FIELD","searchList","removeDuplicates","arrayOne","arrayTwo","resultsList","isSearchGroupDisabled","isFirstChange","onSelectedListUpdated","smartSelectService","addAll","filterGroupMembers","deselect","searchTerm","firstname","lastname","terms","startsWith","removeAll","filtered","itemGroup","filteredGroupMembers","addCustomEmailInput","emailForm","isAddDisabled","resetCustomEmailInput","u","customEmailInput","showDuplicateUserErrorMessage","isValidExternalUser","CUSTOM_EMAIL","$setValidity","onEmailInputChange","$error","apiValidation","emailValidationPattern","getEmailValidationPattern","hasMoreResults","getHasMoreResults","searchTermChanged","getUsers","userDetailForModals","getAvailableApprovers","dataModel","availableStepApprovers","searchString","searchResults","onResultsListUpdated","userText","groupText","approverText","stepFormFieldText","handleSearchResults","getGroups","setHasMoreResults","maxNumberOfUsersToShow","cellCount","onCellClicked","onCellDeleteClicked","dateSelectorOptions","start","depth","fieldName","onCellChanged","onOverlayClicked","_lastHeight","formatEditor","rawElement","cellElement","builderRow","offsetParent","offsetLeft","offsetTop","offsetWidth","cellWidth","cellHeight","xPos","updateContainerHeight","containerPaddingWhenEditorOpen","types","currency","number","date","dropdown","lookup","enableTableFormula","tableSchema","tableFieldName","onTableUpdated","addCell","$event","newCell","getDefaultCell","updatedModel","updateTableSchema","showHideEditor","deleteCell","idx","isCellInUse","errorCell","updateCellFormulas","updateCellIds","activeCell","updatedCellIndex","table","getTableJson","generateTableFromSchema","schema","deletedCellId","formulaCellReplacer","pattern","RegExp","p1","cellId","form","tableTitle","formData","onFormInvalid","onFormValid","formCtrl","flowinglyFormulaService","fieldService","browserUtilsService","busyService","SUBSCRIBER_NAME","fileUploadError","fileControlId","validateForm","addRow","rows","generateRow","state","$submitted","updateForm","removeRow","rowId","rowIndex","generateFormData","sumRows","populateLookupFields","lookupFields","requestPayload","tableColumnId","flowModelId","publicForm","optionsPromise","getFieldOptions","matchingCell","addPromise","cellSchema","FORMULA","formulaCell","evaluate","tableEdited","touched","initializeTableFromFormData","tableNoRowMessage","TABLE_NO_ROW","parsed","hasSum","showSumRow","rowKey","merge","getCellsFromSchema","objTableSchema","fts","cellIndex","entries","matchCell","filteredOptions","searchable","optionLabel","searchableComboPageSize","appendToFilteredOptions","filterAndSearchAPICall","fillUserLookupValue","flowFields","Name","Text","checked","currentRow","populateDropdownOnAddRow","updateCellsFromSchema","rowcells","rcell","sum","populateDropdownCellOptions","lookupValues","matchField","ColumnId","Value","matchCol","sumCell","hasLookupSumCell","valueArray","sumFieldName","fieldCtrl","cellData","filterValue","searchablePageSize","hasValuesInTableRow","hasValue","formErrors","formHasErrors","isTableRequired","hasValueInRow","optionalTableWithoutRowData","getCellError","xssValidate","$name","msg","validationMsg","hasSumCell","isMobileApp","isCordovaApp","formatFormula","formatCell","isCurrencyCell","isNumberCell","isTableHasFileUpload","onValueChange","handleOnChange","getDatePickerElement","getDatePicker","showDatePicker","parseFormats","kendoDatePicker","onFileChange","onChangeHandler","$eval","unbind","fileId","onFileUpload","getFile","getFileById","stopPropagation","uploadFile","deleteFile","deleteAnonymousFile","uploadedFile","fileToUpload","uploadTableFile","uploadTableAnonymousFile","floor","downloadLink","createDownloadLink","getDownloadLink","formType","filePromise","isExternalForm","getFileAnonymous","fileData","tableData","noRowData","noRowDataMessage","$sce","generateTable","formatTypes","formatTotals","formatImageUrls","FILE","filepath","generateLink","generateDownloadLink","foundNumberOrCurrency","sumCells","existing","Schema","calculateCellSum","sumInitValue","createCellSum","cellValue","cellDetails","targetValue","flowClipboardCopy","confirmation","textContent","showConfirmation","append","clipboard","writeText","commentFileUpload","on","off","targetId","targetType","uploadFiles","filesToUpload","uploadCommentFile","$parsers","$formatters","currencyService","elem","ctrl","customValidator","ngModelValue","customInputValidation","comparervalues","updateErrorMessage","ngModelVal","valid","custvaliobj","fieldType","required","tempVal","parseNumber","parsedNgVal","parsedcustVal","valueOption","customInputValidationPreviousData","formFieldId","previousData","dateFormat","toDate","previousStepId","previousDataTime","stepCreatedDateOffset","formattedDateValue","Date","valueOf","errSpan","isDateField","oneRule","minusOneRule","$observe","keys","$$lastCommittedViewValue","elm","ctl","accountApiService","appConfig","turnOff","turnOffDelegation","inDelegationMode","delegateApprovalUserId","delegateStepUserId","delegateFlowModelApprovalUserId","delegateStepUserFullName","delegateApprovalUserFullName","delegateFlowModelApprovalUserFullName","clearUser","globalInDelegationMode","showBanner","showBannerPopup","setPopupPosition","banner","getBoundingClientRect","popupleft","right","left","enableProcessApprovals","getUserDetails","res","userDetails","formatUserForLocalStorage","hasClass","calculateBannerWidth","Boolean","FlowinglyDragDrop","isDraggable","isDroppable","dragStart","dragEnd","dragOver","dragLeave","drop","ev","dataTransfer","effectAllowed","dropEffect","Factory","controlDateTimeFormat","isAfter","elasticConfig","ta","$ta","getComputedStyle","flowElastic","$win","mirrorInitStyle","$mirror","mirror","taStyle","getPropertyValue","boxOuter","minHeightValue","heightValue","minHeight","mirrored","active","maxHeight","copyStyle","initMirror","mirrorStyle","adjust","taHeight","taComputedStyleWidth","mirrorHeight","overflowY","$emit","forceAdjust","onkeyup","$modelValue","$set","downloadByUrl","flowDownloadLink","$parse","modelSet","flowFileInput","updateModel","flowPublishFileChange","flowModel","ngModelCtrl","$setViewValue","stripBr","$render","$viewValue","getTrustedHtml","gridInitWatch","gridInitDone","setup","onGridResize","resizeGrid","_gridElement","getKendoGrid","gridData","dataArea","scrollLeftPosition","gridNeedResizeWatch","gridNeedResize","autoFitFileUploadColumn","autoFitColumn","scrollLeft","autoFit","columns","groupedCol","offset","dataAreaTable","gridHeightToDisplayAllRows","adjustedWindowHeight","newHeight","dataAreaAdjust","gridIsGrouping","noRows","hide","removeClass","handleDataBounding","illegalCharacters","legalValue","intercomService","triggerIntercomEvent","trackEvent","Page","path","intercomAppId","subscriberId","onUnreadCountChange","unreadCount","showBadge","isMobileDevice","onSupportClick","turnOffLauncher","showInfoToast","FlowinglyMentionTag","transformedText","transformMentionTag","flowOptionalComment","newvalue","flowOptional","permissionsService","multiElement","transclude","priority","terminal","$attr","$transclude","currentEnvironment","flowinglyEnvironment","allowedEnvironments","ifEnvironment","doEnvironmentCheck","correctEnvrionment","skipCheck","checkEnvironment","requiredPermissions","ifPermitted","doPermissionCheck","meetsPermissions","currentUserHasPermissions","currentUserHasPermission","currentUserHasAnyOfPermissions","requiredPermission","userPermissions","getPermissions","every","permission","fullname","initName","lookupColour","hex","hexEncode","getColourFromPalette","getColorId","hexint","numColors","ranged","charCodeAt","$document","actionText","hasConfirmed","confirmingAction","transition","newVal","oldVal","IsVisible","maxWidth","$parent","confirmNeeded","reallyClick","samePassword","flowSamePassword","$viewChangeListeners","isSame","$anchorScroll","scrollFlag","needScroll","expand","scrollWatch","yOffset","scrollOffset","hash","notification","dismissNotification","readNotification","onDismissNotification","onReadNotification","notificationType","stepTask","highlightState","userNotificationsApiService","notificationCount","getNotifications","getNotificationCount","notificationId","delete","pageNumber","$state","tempModelerUrlService","notificationList","showNotifications","onNotificationClick","getMoreNotifications","hasMoreUnreadNotifications","pageSize","getNotificationsByPageIndex","FLOW_COMMENT","showComments","openModeler","updateUserNotificationCountChanged","has","onRemoveAvatarClick","onUploadAvatarClick","removeAvatar","clearInputMethod","clearFileInputMethod","clearFileInput","appendUniqueSuffix","$filter","utcDateString","fetcher","getInjector","Promise","reject","sucessCb","errorCb","err","fetcherNoSpinner","useService","ModelerValidationErrorsService","resetAllErrors","errorMap","emptyErrors","addError","errors","modelerValidationService","flowinglyGatewayService","flowinglyActivityService","rulesetParserService","rulesetValidationService","rulesetService","componentApiService","BpmnQueryableWorkflow","workflow","allLinks","validationSettings","isComponent","validateWorkFlow","validateWorkflowComponent","validateProcessMap","validateWorkflowPassXssCheck","validatePublicFormExistsInProcessMap","async","settings","getCustomDBPromise","getProcessMapComponents","getWorkflowComponents","allCustomDbs","publishedProcessMapComponents","publishedWorkflowComponents","FlowSchema","allModelNodes","getAllModelNodes","getAllModelLinks","activityNodes","getActivityNodes","componentNodes","getComponentNodes","workflowNodes","Nodes","queryable","QueryableWorkflow","validateModelNodes","validateEachComponentNode","validateCustomValidation","validatePublicForm","validateContentInWorkflowNodes","validateBacklinks","validateNodeRelationships","validateStepRules","checkForDivergePathsWithoutSteps","validateFieldConditions","_rootQueryableNode","getFirstModelNode","modelNode","workflowNode","getByIndex","nodeLinks","getLinks","newContext","validateThatStartNodeOnlyHasFromLinks","validateThatEndNodeOnlyHasToLinks","validateThatNodeDoesNotHaveMultipleFromLinks","validateNodeHasToConnector","validateNodeHasFromConnector","IsFirstNode","TaskType","validateDynamicActorAfterInitialEmail","validateExclusiveGateWay","validateDecisionField","validateDivergeGateWay","validateConvergeGateWay","validateDynamicActor","validateHasValidActor","validateNodeFields","validateNodeFieldsV2","formElement","validatePreviousField","validateLookupField","validateInstructionField","FormFieldType","RECAPTCHA","validateRecaptchaField","isMultipleApprovalNode","validateMultipleApproval","validateWorkflowSchema","goNodeData","toQueryable","limit","where","goNode","defaultPreviousStepId","validateIfPreviousFieldIsAccessible","startingNode","findPreviousUntil","queryableNodes","parents","toList","validateAdditionalRulesForWorkflowComponent","validateSchema","post","isServerError","validateAtleastOneStep","validateStartObject","validateEndObject","validateUniqueNodeId","validateNodeNames","validateNodesForIpaasIntegration","componentNode","validateComponentNode","publicFormNodes","getPublicFormNodes","publicFormNode","containsStepOrFlowAttributeVariables","StepName","modelNodePublicForm","ModelerNodeId","validatePublicFormSubject","publicFormNodesViaActor","getPublicFormNodesViaActorName","publicFormModelNode","validateAssignedActorAndApproverForNodesAfterPublicForm","getNextActivityNodesForNodeRecursive","enableCustomPublicFormSubjects","modelerNode","flowSubject","replaceAll","invalidVariables","getInvalidTemplateVariablesForNode","variable","instructionFieldValue","htmlDecode","flowVariableRegex","getNodes","IsPublicForm","isDeleted","validateSelectApproversNode","validateCustomEmailNode","componentSchemaId","ComponentSchemaId","validateDynamicActorNodeAfterComponent","nextNodes","actorType","ActorTypes","DYNAMIC","DynamicActorTypeNames","SELECT_DYNAMIC_ACTORS","componentDoesNotContainOtherComponents","componentDoesNotContainPublicForm","COMPONENT","POOL","LANE","names","endConnectors","gatewayNode","decisionFieldStep","selectedNodeKey","incomingLinks","getLinksToNode","incomingNodes","findNodesAtStartOfLinks","decisionField","getDecisionFieldsOfNodes","fieldId","gatewayFieldId","fieldDbName","fieldDbDisplayValue","dbFieldName","SELECT_LIST","RADIO_BUTTON_LIST","CHECKBOX","gate","IsDefault","condition","multiCondition","nodesToCheck","getNextNodesForNode","PREVIOUS_ACTOR","getNodeById","previousNodes","getPreviousAcitivityNodesForNodeRecursive","SelectedDynamicActors","firstStepIsNonIntraPublicNode","INITIATOR","INITIATOR_MANAGER","EXTERNAL_USER_TASK","modelNodes","items","validationSettingsAreValidForIPaaSIntegration","stepTypeNumberSupportedForIPaaS","validTaskTypesForIpaasIntegration","enableIPaaSIntegration","iPaasIntegrationEnabled","SelectedApprovers","matchNode","WhenApproversSelected","whenApproversSelected","MODEL_TIME","StepType","SelectApproverModelerNodeId","getPreviousNodesForNode","selectApproverNode","pn","isTaskOrSingleApprovalActivity","isCustomEmail","isExternalUserTask","workflowParserVersion","NodeCustomEmail","FromName","ReplyTo","TemplateHtml","getInvalidTemplateVariablesForPriorNodes","recipients","SelectedEmailRecipients","AdditionalRecipients","isAllEmailRecipientInvalidFields","invalidEmails","invalidEmailsList","Subject","ActionLabel","nonBreakingSpace","fromCharCode","stepFields","variables","getStepFieldVariables","wfn","checkTemplateForInvalidStepFields","sf","re","escapeRegExp","regexForInvalidStepField","tableFields","typeName","tableCells","string","SearchEntityType","recipientModelerNode","FieldModelerNodeId","formField","FieldName","EMAIL","isValidDecisionFieldType","foreToConnectorCount","foreFromConnectorCount","eventNode","divergeRuleData","divergeParser","validationResult","validateRuleData","DIVERGE_RULESET","checkConvergeHasDiverge","checkConvergeNotLinkedFromFutureNode","convergeRuleData","convergeParser","CONVERGE_RULESET","convergeNodeKey","priorNodes","visitedNodes","currentNode","pop","unvisitedNodes","prior","visited","currentNodeKey","nodesAfterCurrentNode","revisitedNodes","alreadySeenNode","revistedNode","priorNode","revisitedNode","validateNodeValues","firstIndex","foundModelNodes","RouteToKey","duplicateValues","flatMap","groupBy","grouping","conditionsMissing","debug","modelerNodeId","startConnectors","backToConnectorCount","backFromConnectorCount","hasToConnector","arr","IsInitial","IsFinal","hasFromConnector","endNodes","startNodes","isApprovalActivity","approvalNodeDoesNotHaveMultipleBackOrForeFromConnectors","approvalNodeHasForelinkWhenBackFromConnectorExists","isConvergeGateway","card","nonLogoFieldCount","IMAGE","defaultInstructionFieldExists","INSTRUCTION","logoField","disabled","showDisplayName","validateOptions","validateTable","getPublicFormType","someNodeWhoseTypeImUnsureOf","tmp","coalesce","publicFormType","args","arg","getFirstStep","fs","firstStepIsAnyPublicNode","firstStep","p2","hasPublicType","PUBLIC_FORM","ActorName","allWorkflowNodes","defaultValueOption","defaultFormFieldId","previousStep","pf","fieldsWithConditions","conditions","fieldCondition","decisions","actions","decision","formFieldConditionOption","getEnumValue","Equals","NotEquals","action","actionField","enumCollection","Validationfields","customValidation","custvalidationObj","SHORT_TEXT","isNumber","maxLength","MULTISELECT_LIST","tables","hasRequiredColumn","TableCellType","validateCustomDatabase","validation","listType","displayname","lists","listValues","uniq","instructionValue","fieldDisplayName","isValueEmpty","isLookupDisplayOrQueryValueValid","Public","InitiatorFullName","InitiatorEmail","initiatorLabel","LookupSpecialFieldLabels","currentActorOptionText","CurrentActorFullNameText","CurrentActorEmailText","EMPTY_NAME","validateCustomDatabaseFilters","rules","isvoid","isEnableRule","ruleName","triggerFieldId","triggerFieldIdExists","applyToNodeId","applyToNodeExists","valueToCheck","lookupValue","diverge","_queryableNodesTable","QueryableWorfklowTable","primaryKey","_goNodeDataTable","indexes","_nodeTable","_goLinksTable","_workflow","_schema","getByPk","DummyPrimaryKey","insert","goStartNodes","goStartNode","makeQueryableNode","isDivergeNode","queryableNode","QueryableWorkflowNode","childKeys","childKey","queryableChildNode","addChild","goLinks","_children","_parents","_key","_goNodeData","addParent","matchesProperty","_rowsPkIndex","_rows","_pk","_indexes","pk","pkValue","indexValue","QueryableWorfklowQuery","_limit","MAX_VALUE","_items","temp","num","last","cloneDeep","QueryableWorkflowContainer","bpmnQueryableWorkflow","RuleService","DYNAMICACTOR_DYNAMICACTOR","DYNAMICACTORAR_DYNAMICACTORAR","DYNAMICACTOR_PARALLELAPPROVAL","DYNAMICACTORAR_PARALLELAPPROVAL","DYNAMICACTOR_SEQUENTIALAPPROVAL","DYNAMICACTORAR_SEQUENTIALAPPROVAL","SEQUENTIALAPPROVAL_SEQUENTIALAPPROVAL","PARALLELAPPROVAL_PARALLELAPPROVAL","PARALLELAPPROVAL_SEQUENTIALAPPROVAL","EXCLUSIVEGATEWAY_CONVERGEGATEWAY","DEFAULT","RulesetParserService","ruleService","firstNodesOfDivergedPaths","matchRules","dynamicActorCount","TASK","dynamicActorType","DynamicActorTypeIds","dynamicActorARCount","parallelARCount","sequentialARCount","RulesetValidationService","ruleset","ruleData","matchRule","rs","allowed","RulesetService","ready","setReady","sessionTimeoutInSecond","enableSessionTimeoutReminder","sessionTimeoutReminderTriggerInSecond","auth0Domain","brandingEmailLogo","brandingSendingEmailAddress","disableXssValidation","showConfidentialFlowOption","enableModelerXmlExport","flowModelFeedbackVisibility","fmoCanPublish","modelerUrl","runnerUrl","origin","showLogoFields","signalrServerUrl","stepTimeCostVisibility","showVisibilityToggleInsideConfiguration","enableConditionalForms","iPaaSSupportedStepTypes","welcomeText","enableDatabaseFeature","allowProcessMap","maxSubCategories","enableAuthenticationLogging","enableAppInsightsRunner","googleTagManagerId","runnerClosedLogoUrl","runnerOpenLogoUrl","runnerTitle","showReportDatesInUtc","auth0UseUniversalLogin","intercomId","intercomUrl","isDatabaseFeatureEnabled","localDateTimeFormat","maximumWebhooksOnStep","maxReportReturnRows","gridReportPageSize","hideInviteUsers","loginAlertMessage","brandingHomepageUri","brandingSupportEmail","disableAdminCategoryEdit","disableAdminDatabaseDelete","disableAdminTeamEdit","disableAdminUserEdit","defaultHomePage","enableExago","enableReportOwner","maxNumberOfDaysForRecentlyUpdatedMaps","enablePublicProcessMaps","displayUsersDropdownInSendTestEmail","enableFlowDelete","auth0UseRefreshToken","auth0UseSilentSso","enableFormFieldReCaptcha","enableTimeCost","allowWorkflow","runnerRehomeUrl","exagoConfig","defaultDashboard","folder","intercomConfig","pollDelay","noOverwriteSettings","isSettingOverwritable","settingName","isTrueString","updateSetting","settingValue","convertedValue","settingValueType","propertyName","boolean","throwParseError","tryApplySetting","populateFromSettingsJSON","populateLoginSettings","loginSettings","logoUrl","favIcon","logging","appInsightsRunnerConfig","populateSettings","isFinite","enableTenantSwitching","brandingHelpUri","defaultDays","legacyPath","flowsInDateFilterDefaultRange","flowsInDateFilterMaxRange","AngularAuth0SpaSdk","domain","authorizationParams","client","createAuth0Client","$get","getClient","provider","eventToMetricMap","flowStarted","flowStartedForBulkActors","flowSelectedFromList","flowLoadFromExternalLink","flowsActiveEntered","flowsTodoEntered","flowsInEntered","flowLoadProcessMapList","flowRenderProcessMap","stepFormSubmitted","stepFormTransitionStarted","stepFormSaved","publicFormSubmitted","stepTaskDoneSubmitted","stepTaskApprovalSubmitted","stepReassigned","stepTaskReassigned","flowCanceled","stepTaskCanceled","stepUserNudged","subcategoriesFetched","subcategoryDeleteWarning","subcategoriesdeleted","categoryEdited","subcategoryAdded","userInviteLoaded","userInviteBusinessSettingsLoaded","userInviteProfileCompleted","governanceLoadProcessReviewDueList","governanceLoadMyApprovalsList","governanceSentForApprovalList","appInsightsService","appInsightsHelper","eventTimers","userActivityTimed","appInsights","startAppInsights","trackPageView","startEventTimer","trackMetricIfTimerExist","timeUserActivityForEvent","cfg","instrumentationKey","restOfConfig","connectionString","ApplicationInsights","loadAppInsights","properties","trackMetric","average","resetAllTimer","now","getElapsedTimeInSeconds","startTime","userActivitiyTimeTaken","otherProps","metricName","elapsedInSeconds","getCustomProps","addUserActivityToEvent","timeMs","currentTimeMs","elapsedTime","businessName","getBusinessName","auditService","MESSAGE","NOTIFICATION_RECEIVED","NOTIFICATION_HANDLED","auditApiBaseUrl","getSystemAuditId","updateSystemAuditRecord","handledNotification","receivedNotification","parsedData","auditId","systemAuditId","increment","SystemAuditId","UserId","getUserId","Message","Success","Increment","authLoggingApiService","logText","authenticationLog","getClientId","xhr","XMLHttpRequest","setRequestHeader","send","savedClientId","localStorage","getItem","keyForAuthLoggingId","newClientId","setItem","_palette","_actorsWithAvatars","getFlowInitials","getModelerNodeAvatarUrl","setActorsWithAvatars","getAvatarList","haveAvatarList","initialisePalette","isAvatar","IsAvatar","AvatarUrl","avatarId","AvatarId","flowName","flowCode","words","initial","setPageTitle","setFavIcon","usingDefaultBrandName","newTitle","newFavIcon","rel","head","href","brandingName","uri","isIE","isFireFox","isWebApp","isDesktopWebApp","isMobileWebApp","isApp","isTablet","isIos","documentMode","check","vendor","opera","matchMedia","BusyService","busyLight","reset","busy","isBusy","BusyLight","busyLightFactory","addedPromiseCount","resolvedPromiseCount","nextPromises","nextPromise","CategoryApiService","addCategory","editCategory","deleteCategory","categoryId","replaceCategoryId","method","headers","getCategories","cachedCategories","getSubCategoryWarning","itemId","CommentApiService","isGovernance","isRequestFromGovernance","comments","transformRawComments","searchText","disableEveryoneMentions","everyoneIndex","CurrencyService","DEFAULT_CURRENCY","symbol","code","getCurrencies","CURRENCIES","getCurrencyByCode","digits","toCurrency","currencyCode","numberToCurrency","numberAsText","Intl","NumberFormat","maximumFractionDigits","getColumnsUnfiltered","addCurrentActorOptions","dialogService","ngDialog","flowStore","disableAnimation","isCloseModalWithCancelAction","showConfirmDialog","showMessageDialog","showPublishDialog","showUnPublishDialog","showDialog","showHelpModal","showCreateCloneEditDialog","showGateOrderChangeModal","getOpenDialogIds","customOptions","className","confirmationWord","actionButtonClass","disabledSeconds","openConfirm","showClose","actionEnabled","actionCountdown","disabledForSeconds","customDialogOptions","defaultDialogOptions","appendClassName","closePromise","initialOptions","big","closeAll","selectedFlow","controllerName","templatePath","isEdit","publishType","warningParagraphs","flowCount","force","hideDontShow","closeByDocument","supressConfirmation","getSessionState","dontShowAgain","setSessionState","getOpenDialogs","DocumentApiService","apiBase","downloadFlowModelSchemaPdf","flowModelSchemaId","download","mimeType","downloadFlowModelSchemaStepsPdf","DocumentType","FlowModelSchemaSteps","downloadFlowModelSchemaMapPdf","FlowModelSchemaMap","downloadFlowModelSchemaMapAndStepsPdf","FlowModelSchemaMapAndSteps","getFlowModelSchema","secret","getFlow","getFileForPrint","downloadFlowPdf","downloadFlowModelPdf","downloadFlowModelStepsPdf","downloadFlowModelMapPdf","downloadFlowModelMapAndStepsPdf","exceptionService","$log","logToConsole","exception","cause","apply","arguments","DATABASE_API_URI","PUBLIC_FORM_API_URI","forPublicForm","request","URI","_requestTimeout","_url","_userId","_businessId","getFileMetaData","getFileByUrl","downloadById","base64ToBlob","uploadAttachDocumentFile","uploadEmbeddedImage","uploadFlowModelSource","addFileDownloadClickEventListener","getBusinessImageIds","getAllowedFileTypes","reduceImageFile","resizeImage","getFileFromDataUrl","convertEmbeddedImagesToFileReferences","replaceFileIdsWithImages","getFileAndDownload","dataUrl","removeEventListener","token","getToken","Authorization","cache","base64Content","contentType","blob","isFirefox","msSaveOrOpenBlob","URL","createObjectURL","webkitURL","fileUrl","revokeObjectURL","b64Data","sliceSize","byteCharacters","atob","byteArrays","byteNumbers","byteArray","Uint8Array","Blob","encoding","getBaseApiUrl","fieldkey","uploadFileByExtension","extension","substring","lastIndexOf","getFileObject","fileObject","uploadImageToServer","getFileName","uploadFileToserver","blobSafe","datatype","out","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","bb","getBlob","dataUrItoBlob","dataUri","byteString","unescape","mimeString","ia","deferredObject","defer","reader","FileReader","onloadend","_file","image","Image","src","onload","onerror","readAsDataURL","getImageFromFile","maxDataPerPixel","resizedData","fileNameParts","fileName","u8Array","File","bufferACanvas","bufferAContext","getContext","bufferBCanvas","bufferBContext","currentDimensions","clearRect","drawImage","halfDimensions","getImageData","hasTransparency","fillStyle","fillRect","toDataURL","FormData","uploadFormData","defaultParams","transformRequest","identity","timeout","fileBlob","rawFileName","status","mimeFilter","sourceHtml","timeStamp","getTime","imageRegex","maxDimension","previousDataUrls","uploadPromises","regexMatch","imageIndex","localRegexMatch","originalDataUrl","previousDataUrl","resolved","imageToLoad","newData","resizedDataUrl","uploadPromise","previousFileIds","getFilePromises","previousFileId","imageHtml","allSettled","requestConfig","isActivity","isTaskActivity","isMultipleApprovalActivity","findStepTypeNumberWithName","findStepTypeNumberWithKey","StepTypeName","flowinglyApiService","getFlowModelsReferencingComponent","updateFlowModelsReferencingComponent","getProcessMaps","flowModelPublishType","PROCESS_MAP_COMPONENT","DataModel","PROCESS_MAP","WORKFLOW_COMPONENT","ConditionalFormService","fieldsAddedToUI","conditionsToExecute","storeFieldAddedToUI","refreshUI","triggerField","fieldSchema","triggerFieldValue","storeConditionToExecute","executeCondition","isFieldHidden","isFieldHiddenByConditions","isHiddenByConditions","emptyFieldsArray","triggerFieldType","decisionValue","conditionToExecute","decisionValues","reduce","isConditionValid","targetField","FormFieldConditionOption","areValuesEqual","executeAction","Empty","isFieldEmpty","Filled","isAnEmptyObject","TASK_LIST","expectedValues","currentFieldValue","equals","expectedValue","APPROVAL_RULE","valueIsTruthy","FormFieldConditionAction","Show","Hide","FlowinglyDiagramService","generateProcessModel","onDoKeyDown","diagramModel","modelCustomArgs","DEFAULT_SCALE_FOR_WORKFLOWS","DEFAULT_SCALE_FOR_PROCESSMAPS","THRESHOLD_HEIGHT_FOR_PROCESSMAPS","isProcessMap","isPrintMapRequest","initialAutoScale","None","Uniform","InitialLayoutCompleted","_this","allowLink","allowSelect","hasHorizontalScrollbar","hasVerticalScrollbar","currentStepKey","getCurrentStepKey","keyStr","cmd","dynamicInitialHeight","someGoJSCalls","modelDiv","fromDiv","flowSchema","flowModelSizeLimit","Model","fromJson","updateModelWithFieldsAndData","applyAvatar","userID","contentAlignment","stopAnimation","allowMove","focusId","IsSelectedStep","IsCompleted","nodeId","tempModel","enableModelerFlowModelTypeSelection","updateStepAttachDocumentIcon","stepTaskEnabled","webhooks","webhook","isStepIntegrationEnabled","IsFinalised","endNode","linksToEndNode","lastNodes","validate","formschema","numericValue","isFormulaCellType","toFixed","isLookupCellType","isDropdownCellOfType","getCustomDataType","customDataTypeName","formSchema","tableRow","operandName","FIELD","operandValue","getOperandValue","operandType","getOperandType","operator","outPut","getCell","isFieldType","isCellType","operandname","convertCellTypeToFieldType","cellType","isDivergeGateway","flowinglyHttpErrorInterceptor","messageDuration","requestError","responseError","rejection","setUnauthorisedAccess","parseErrorsAndDisplay","badRequest","serverError","errorCode","actualMsg","modelState","error_description","flowinglyKBService","kbLinks","getKbLink","kbKey","FlowinglyMentionService","flowinglyMomentService","displayRegex","regex","openTag","mentionDisplay","lineBreakRegex","rowComments","calculateRelativeTimeOrFullDate","createdDate","commentText","actorIdRegex","actorTypeIdRegex","tempArray","actorIdRaw","actorTypeIdRaw","extractId","m","SAFE_RECURSION_MAX","addFieldsToNodes","getLastNodes","getRootModelNode","getStartModelNode","findNodesAtEndOfLinks","getActorType","getDefaultGatewayCondition","getLinkThatConnectsNodes","getNodeLinkedTo","getNodeLinkedFrom","getNodeByKey","getNodeKeyById","getNodeLinksFrom","getPreviousNodesDataSourceForDropdown","getLinksFromNode","getTrigger","getLinkProcess","isNodeGateway","doesNodeHaveBacklink","getNodeBacklinkToNode","getNextComponentNodesForNodeRecursive","getAllActivityNodesAfter","getEligibleCellsInTable","getPreviousNodesForApproversNodeDropdown","nodeModel","startNode","newKey","accumulator","currentValue","unconnectedNodes","dummyNode","linkDataFromStartNode","linkArray","prevNode","linkProcess","nodeTo","conditionType","nodeFrom","linkIndex","lnk","nde","nodeKey","nextActivityNodes","stopAtMergeGateway","nextComponentNodes","prevActivityNodes","getAll","prevNodes","fromGoNode","predicateFn","_findPreviousUntil","currentGoNode","visitTable","findLinksInto","visitorKey","prevGoNode","allPreviousModelNodes","Key","validNodes","NameRef","eligibleCells","isDropdownCellNumeric","isLookupNumberOrCurrencyCell","isFormulaCellNumeric","isCurrency","columnId","columnType","tableNumberCalculationTypes","getTypeName","formFieldTypePascal","FlowinglyMomentService","calculateRelativeTime","dateTime","relativeTimeThreshold","local","utc","relative","fromNow","capitalizeEachWord","calculateRelativeTimeFromLocalDateTime","calculateRelativeTimeWithNoPrefix","calculateRelativeTimeFromLocalDateTimeWithNoPrefix","isOverOneDayAgo","formatFullDate","daysDiff","momentDate","diff","formatUTCToLocal","utcDate","formatFullDateFromLocalDateTime","formatRawDate","calculateDeadlineTime","isOverdue","calculateStepTaskCompletedTime","calculateDeadlineTimeFromLocalDateTime","flowinglyStepService","stepRefSequenceComparer","refSequence1","refSequence2","componentSequence1","componentSequence2","parts1","parts2","parts3","parts4","teamApiService","teams","getTeamsWithOptions","getUsersInTeam","saveTeam","deleteTeam","teamsApiBaseUrl","deletedTeamId","replacedActorId","team","isNewTeam","savedTeam","t","sortTeamsByName","teamId","t1","t2","t1NameToCompare","t2NameToCompare","addUser","addUsers","deleteUser","editUser","getUsersWithOptions","getUsersOfRole","getUsersWithPermission","getUserAvatars","getUserInvolvementInFlow","registerUserMobileNotification","unregisterUserMobileNotification","userLoginAudit","userLoginErrorAudit","searchUsersCustomDB","getLoginState","updateLoginState","getUserProfileUsingId","getUsersBasicInfo","replaceActorId","replaceManagerId","replaceCustomDatabaseActorId","replaceCategoryApproverId","deletedUserId","total","defaultOpts","take","skip","page","roleName","permissionCode","flowinglyCordova","pushNotificationHandle","loginAudit","loggedIn","FlowModelApiService","getFlowModels","getFlowModelById","allowDeleted","getPublishedEntities","sendForApproval","publishFlowModel","unPublishFlowModel","getPublishedFlowModel","getPublishedFlowModels","getReportFlowModels","deleteFlowModel","getMyApprovalFlowModels","getSentForApprovalFlowModels","getProcessOverdueFlowModels","linkFlowModelToSourceFile","linkImportedFlowModelComponents","sendTestEmail","nodeCustomEmail","gtmService","scriptService","loadGTM","tagId","dl","loadScript","newGuid","EmptyGuid","isValidGuid","chunk","random","IntercomService","hasAccess","deferExecStack","execOrDeferFactory","fnToCall","boot","shutdown","initializeIntercom","intercomServiceOptions","correctRole","roles","role","flowinglyRoles","BUSINESS_ADMINISTRATOR","FLOWINGLY_ADMINISTRATOR","isPMI","_flowinglyLoadIntercComForUser","startIntercom","exectuable","onbeforeunload","custom_launcher_selector","userSettings","Intercom","metaData","formatEvent","last_request_at","NotificationService","toastrService","closeButton","newestOnTop","progressBar","positionClass","preventDuplicates","onclick","showDuration","hideDuration","timeOut","extendedTimeOut","showEasing","hideEasing","showMethod","hideMethod","duration","messageToShow","setupMessage","warning","setupTimeToShowOption","timeToShow","defaultMessage","escape","sanitizeString","EL_NODE","pdfService","svgService","CONTAINER_STYLES","TEXT_STYLES","SVG_TEXT_STYLES","utility","domToImage","stringToImage","dom","fromDom","a4","a4_landscape","letter","letter_landscape","$dom","pdfStyleClass","onPreDraw","drawing","drawDOM","pdf","saveAs","_flowinglyPdfExportKeepDom","imgPr","textNodeToImage","elementNodeToImage","$svg","htmlToSvg","getSVGStyles","svgToImage","styles","htmlContent","payload","getEmbeddableHtml","svgAsString","encodeURIComponent","$img","canvas","$canvas","ctx","$canvasImg","_src_","hasLoaded","$deferred","onError","onResolve","prop","logInfo","logError","pullAllBy","debouncedEventTimeoutIds","isConnectionReady","pendingEvents","subscriptions","callback","subscriber","subsribers","execCallbacks","subscribers","pendingEvent","evt","isImmediate","timeoutId","cancel","waitMs","signalrConnected","signalrFailed","RouteAppConfigService","routeConfigMapping","getRouteConfigMapping","handleRouteAvailability","route","checkAvailability","fallbackRoute","getFallbackRoute","defaultHomePageKey","defaultHomePageAllowedCheck","fallbackKey","charset","script","heads","readyState","onreadystatechange","store","nameSpace","profileStoreName","userStoreName","signalRStoreName","singleSignOnStorageName","_user","_isIniitialLogin","_profile","_signalR","_currentUserVer","clearLoginFlag","checkIfUserDeleted","isLoggedIn","setInitialLogin","isInitialLogin","getProfile","setProfile","setuserAuthenticated","getSignalR","getSetting","getSettings","isOldUserVersion","getUserVersion","isFlowModelAdmin","setIsSso","isSso","getUserFromStore","onAuthenticated","isAuthenticated","isAuthenticationInFlight","getLoginSettings","inTenantBusiness","getBusinessId","acquireAndStoreUser","rehome","ver","apiEndpoint","noDefault","nodefault","userDetail","businessIndustry","businessPhoneNumber","isOwner","businessCreatedDate","phoneNumber","jobTitle","managerName","managerFullName","managerUserId","groups","numberOfUsersManaged","handleUnauthorisedAccess","userObject","profile","clearToken","wasUnauthorisedAccess","deleted","Delete","tenant","tenantName","tenantId","FLOW_MODEL_ADMINISTRATOR","pollForLoginToken","hasToken","hasUser","$$hash","deferred","domainName","stateName","setToken","home","currentUrl","homeUrl","protocol","hostname","rehomeUrl","rehomeParams","searchParams","SetupApiService","databases","getDatabases","sortDatabasesByName","getFeature","featureName","connection","hub","serverUrl","startSignalr","hubConnection","createHubProxy","auditNotification","connectionSlow","reconnecting","disconnected","lastError","startConnection","isSessionUserExist","isReconnect","reestablishStr","waitForPageLoad","done","invoke","fail","enableConsoleLogging","stop","SvgService","svcHttp","svcHe","isSvgResource","getSvgString","htmlString","stripped","stripNbsps","decoded","flattenHTMLEntities","replaceAmperSand","decode","newStr","getModelerUrl","openLinkInNewTab","cloneModel","openFeedback","templateKey","loadPublishRequestSchema","modelerPath","flowinglyEnvironments","Local","createEvent","initMouseEvent","dispatchEvent","templateService","getTemplates","getTemplate","saveTemplate","getPacks","savePack","getTenants","saveTenant","getTemplateIdForKey","sendAccessRequest","getExportTemplates","importTemplates","forManagement","pack","templates","$interval","$cookies","jwtHelper","angularAuth0","angularAuth0SpaSdk","tokenStoreName","lastLoginStoreName","ngidelExpiryName","checkTokenExpiredPromise","_token","_unauthorised","inLogoutProcess","checkTokenExpiredPending","checkTokenExpire","refreshTokenIfPermissionsDonotExist","getLastLogin","clearLastLogin","setIdleExpiry","manualIdleCheck","isAllApplicationIdle","setInLogoutProcess","access","decodeToken","flowinglypermissions","tokenData","businessidentifier","businessname","idleExpiry","isBefore","interval","isRequestUserCondition","domainPort","currentDomain","inviteToken","redirectUri","isAuth0AppV2","renewTokenAuth0SpaSdk","checkSession","responseType","clientID","auth0ClientId","delegationResult","idToken","savelogin","setLastLogin","expireTime","toISOString","isTokenExpired","caller","auth0Client","getTokenSilently","detailedResponse","cacheMode","getIdTokenClaims","__raw","willExpireInSeconds","getTokenExpirationDate","aud","auth0AppV2ClientId","$sanitize","getNumberValidationPattern","getPhoneNumberValidationPattern","isEmpty","hasSpace","isNil","isObject","isString","stringValue","isYouTubeEmbeddedLinkDetected","isInternalFileDownloadUrlDetected","sanitizeStringExcludingStyle","sanitizedString","trustAsHtml","disallowed","findIncomingNodes","fromNodeIsNotActivity","fromNodeIsNotComponent","fromNodeFromLinks","fromNodeFromLinksCount","isBackLink","traveledNodes","watchService","watches","addWatch","addCollectionWatch","removeWatch","watchFunction","invokeFunction","deep","watch","$watchCollection","WorkflowApiService","getFlowModel","workflowId","getProcessMap","getProcessMapbySchemaId","schemaId","getProcessMapNodeElement","getSchemaByVersion","getTimeCostTotal","getFlowModelSchemaVersions","getPublishApprovalFlowModelSchemaVersions","getFlowModelSchemas","flowModelSchemasIds","getPublishApprovalFlowModel","checkFlowModelNameExists","addWorkflow","cloneWorkflow","updateWorkflow","saveWorkflowDialogDetails","details","ProcessDetail","ProcessReviewDate","sendTestIntegrationMessage","integrationTestMessage","workflowModelFactory","createFlowModel","loadFlowModel","createGoJsModel","createNodes","tenantUser","create","Description","WorkflowStatusId","Category","CreatedById","BusinessId","BusinessName","CreatedDate","UpdatedDate","EditableByCurrentUser","HasUnpublishedChanges","LastModifiedById","FlowModelVersions","currentFlowModelVersion","Active","HasErrors","SelectedFieldForSubject","BackgroundColour","NodesAreEditable","DisableContactSupport","FeedbackCount","CustomPlaceholder","IsConfidential","FlowModelType","flowModelType","PublishType","toJson","setModelFromSchema","createEmptySchema","AssignedUserId","AssignedGroupId","AssignedInitiator","AssignedInitiatorMananger","NodeDataArrayIndex","IsLastNode","PublicFormId","NumberOfApproversRequired","MaxNumberOfApproversRequired","NumberOfApproversRequiredType","numberOfApproversRequiredType","ALL","RUN_TIME","dateLimit","class","GraphLinksModel","modelData","eventType","NotifyOnStepCreated","approvalRuleFieldName","Restrictions","react2angular","SessionTimeoutNotifier","pubSubService","showPopup","setShowPopup","useState","countdown","setCountdown","expiresAtRef","useRef","countdownTimerRef","countdownTimerStarterRef","useEffect","handleBeforeUnload","clearTimers","_event","expiryDateTime","handleIdleExpiryChange","expiryTimestamp","schedulePopup","reminderTriggerInSecond","warningTimeInMilliSeconds","timeLeft","startCountdown","seconds","setInterval","prev","clearInterval","clearTimeout","formatTime","pad","padStart","hours","minutes","Dialog","disableEscapeKeyDown","DialogContent","Box","exports"],"sourceRoot":""}