{"version":3,"file":"index-a02fc829.js","mappings":"IAAYA,E,qBCCZ,K,OAAA,GAAU,iD,2BCCV,K,OAAA,GAAU,ylF,2BCAV,K,OAAA,GAAU,i6B,kBCDV,K,OAAA,GAAU,wnB,2BCCV,K,OAAA,GAAU,kyB,kBCDV,K,OAAA,GAAU,4I,iBCAV,K,OAAA,GAAU,qH,iBCAV,K,OAAA,GAAU,mG,2BCCV,K,OAAA,GAAU,0K,kBCDV,K,OAAA,GAAU,qkO,mCCDV,MAAe,wa,iCCSf,SAASC,EAAgBC,CAAe,CAAEC,CAA2B,CAAEC,CAAO,EAC1E,SAASC,EAAgBH,CAAe,CAAEC,CAA2B,EACjE,IAAI,CAACD,eAAe,CAAGA,EACvB,IAAI,CAACC,2BAA2B,CAAGA,CACvC,CAkBA,SAASG,EAASC,CAAU,CAAEC,CAAI,CAAEN,CAAe,CAAEO,CAAsB,CAAEC,CAAO,EAChFC,EAAaC,IAAI,CAAC,IAAI,CAAEJ,EAAMD,EAAYL,EAAiBO,GAC3D,IAAI,CAACC,OAAO,CAAGA,EACf,IAAI,CAACG,cAAc,CAAG,IAAI,CAACC,UAAU,CAACC,IAAI,CAAC,IAAI,EAC/C,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAACC,OAAO,CAAC,CAAG,IAAI,CAACC,iBAAiB,CAACJ,IAAI,CAAC,IAAI,EACnG,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAACG,SAAS,CAAC,CAAG,IAAI,CAACC,aAAa,CAACN,IAAI,CAAC,IAAI,EACjG,IAAI,CAACO,WAAW,CAAG,CAAC,EACpB,IAAI,CAACA,WAAW,CAAC,IAAI,CAACb,sBAAsB,CAACQ,UAAU,CAACM,MAAM,CAAC,CAAG,IAAI,CAACC,cAAc,CAACT,IAAI,CAAC,IAAI,CACnG,CAoGA,SAASU,EAAYjB,CAAI,CAAEkB,CAAY,CAAExB,CAAe,CAAEO,CAAsB,EAC5EE,EAAaC,IAAI,CAAC,IAAI,CAAEJ,EAAMkB,EAAcxB,EAAiBO,GAC7D,IAAI,CAACO,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAACU,SAAS,CAAC,CAAG,IAAI,CAACR,iBAAiB,CAACJ,IAAI,CAAC,IAAI,EACrG,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAACW,UAAU,CAAC,CAAG,IAAI,CAACP,aAAa,CAACN,IAAI,CAAC,IAAI,EAClG,IAAI,CAACc,8BAA8B,CAAG,IAAI,CAACC,uBAAuB,CAACf,IAAI,CAAC,IAAI,CAChF,CA2EA,SAASJ,EAAaH,CAAI,CAAEkB,CAAY,CAAExB,CAAe,CAAEO,CAAsB,EAC7E,IAAI,CAACD,IAAI,CAAGA,EACZ,IAAI,CAACC,sBAAsB,CAAGA,EAC9B,IAAI,CAACP,eAAe,CAAGA,EACvB,IAAI,CAAC6B,UAAU,CAAG,GAClB,IAAI,CAACL,YAAY,CAAGA,EACpB,IAAI,CAACM,oBAAoB,CAAG,IAAI,CAACN,YAAY,CAACO,IAAI,CAAC,YACnD,IAAI,CAACC,OAAO,CAAG,iBAAI,CAACR,YAAY,CAACO,IAAI,CAAC,QACtC,IAAI,CAACjB,WAAW,CAAG,CAAC,EACpB,IAAI,CAACA,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAACkB,IAAI,CAAC,CAAG,IAAI,CAACC,cAAc,CAACrB,IAAI,CAAC,IAAI,EAC7F,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAACoB,GAAG,CAAC,CAAG,IAAI,CAACC,aAAa,CAACvB,IAAI,CAAC,IAAI,CAC/F,CA+GA,OAtUAV,EAAgBkC,SAAS,CAACC,UAAU,CAAG,SAAUjC,CAAU,CAAEC,CAAI,CAAEE,CAAO,EACtE,OAAO,IAAIJ,EAASC,EAAYC,EAAM,IAAI,CAACN,eAAe,CAAE,IAAI,CAACC,2BAA2B,CAAEO,EAClG,EAEAL,EAAgBkC,SAAS,CAACE,aAAa,CAAG,SAAUjC,CAAI,CAAEkB,CAAY,EAClE,OAAO,IAAID,EAAYjB,EAAMkB,EAAc,IAAI,CAACxB,eAAe,CAAE,IAAI,CAACC,2BAA2B,CACrG,EAoBAC,EAAQsC,WAAW,CAACpC,EAAUK,GAE9BL,EAASiC,SAAS,CAACI,KAAK,CAAG,SAAUC,CAAK,EACtC,IAAI,CAAClC,OAAO,CAACkC,EACjB,EAEAtC,EAASiC,SAAS,CAACf,cAAc,CAAG,SAAUoB,CAAK,EAC/C,IAAI,CAACC,WAAW,CAAC,IAAI,CAACnB,YAAY,CAAC,EAAE,CAAE,IAAI,CAACM,oBAAoB,EAChE,IAAIc,EAAQ,IAAI,CAACpC,OAAO,CAACkC,EAErBE,CAAAA,GAAS,mBAAOA,EAAMC,IAAI,CAC1BD,EAAMC,IAAI,CACN,YACI,IAAI,CAACrB,YAAY,CAAC,EAAE,CAACsB,KAAK,EAC9B,GAAEjC,IAAI,CAAC,IAAI,GAGf,IAAI,CAACW,YAAY,CAAC,EAAE,CAACsB,KAAK,EAElC,EAEA1C,EAASiC,SAAS,CAACzB,UAAU,CAAG,SAAU8B,CAAK,EACvC,IAAI,CAAC1C,eAAe,CAAC+C,eAAe,CAAC,IAAI,CAACvB,YAAY,CAAC,EAAE,CAAEkB,EAAMM,MAAM,EACvE,IAAI,CAACL,WAAW,CAAC,IAAI,CAACnB,YAAY,CAAC,EAAE,CAAE,IAAI,CAACM,oBAAoB,EACxD,IAAI,CAAC9B,eAAe,CAAC+C,eAAe,CAAC,IAAI,CAACzC,IAAI,CAAC,EAAE,CAAEoC,EAAMM,MAAM,IACvE,IAAI,CAACP,KAAK,CAACC,GAEN,IAAI,CAACV,OAAO,EAEb,IAAI,CAACW,WAAW,CAAC,IAAI,CAACnB,YAAY,CAAC,EAAE,CAAE,IAAI,CAACM,oBAAoB,EAG5E,EAEA1B,EAASiC,SAAS,CAACY,OAAO,CAAG,SAAUP,CAAK,EACxC,IAAIQ,EAAS,IAAI,CAAC9B,WAAW,CAACsB,EAAMS,OAAO,CAAC,CAE5C,GAAID,EAAQ,CACRR,EAAMU,eAAe,GACrBF,EAAOR,GACP,MACJ,CAQA,GAJe,KAAK,IAFpBQ,CAAAA,EAAS,IAAI,CAACpC,WAAW,CAAC4B,EAAMS,OAAO,CAAC,GAEf,SAASE,IAAI,CAACX,EAAMY,GAAG,GAC5CJ,CAAAA,EAAS,IAAI,CAACK,uBAAuB,CAAC1C,IAAI,CAAC,IAAI,GAG/CqC,EAAQ,CACR,IAAIM,EAAW,IAAI,CAACC,WAAW,GAE/B,GAAID,IAAAA,EAASE,MAAM,CAAQ,CACvB,IAAI,CAACjB,KAAK,CAACC,GACX,MACJ,CAEAA,EAAMU,eAAe,GACrBF,EAAOR,EAAOc,EAClB,CACJ,EAEApD,EAASiC,SAAS,CAACsB,aAAa,CAAG,WAC1B,IAAI,CAAC9B,UAAU,GAChB,IAAI,CAACL,YAAY,CAACO,IAAI,CAAC,WAAY,MACnC,IAAI,CAACzB,IAAI,CAACO,IAAI,CAAC,QAAS,IAAI,CAACoC,OAAO,CAACpC,IAAI,CAAC,IAAI,GAC9C,IAAI,CAACP,IAAI,CAACO,IAAI,CAAC,UAAW,IAAI,CAAC+C,SAAS,CAAC/C,IAAI,CAAC,IAAI,GAClDgD,SAASC,gBAAgB,CAAC,QAAS,IAAI,CAACnD,cAAc,CAAE,IACxD,IAAI,CAACkB,UAAU,CAAG,GAE1B,EAEAzB,EAASiC,SAAS,CAAC0B,eAAe,CAAG,WAC7B,IAAI,CAAClC,UAAU,GACf,IAAI,CAACvB,IAAI,CAAC0D,MAAM,CAAC,SACjB,IAAI,CAAC1D,IAAI,CAAC0D,MAAM,CAAC,WAEZ,IAAI,CAAChC,OAAO,EACb,IAAI,CAACW,WAAW,CAAC,IAAI,CAACnB,YAAY,CAAC,EAAE,CAAE,IAAI,CAACM,oBAAoB,EAEpE+B,SAASI,mBAAmB,CAAC,QAAS,IAAI,CAACtD,cAAc,CAAE,IAC3D,IAAI,CAACkB,UAAU,CAAG,GAE1B,EAEAzB,EAASiC,SAAS,CAACuB,SAAS,CAAG,SAAUlB,CAAK,EAC7B,IAAI,CAAC5B,WAAW,CAAC4B,EAAMS,OAAO,CAAC,EAExCT,EAAMwB,cAAc,GAGxB,IAAIC,EAAgBzB,EAAMS,OAAO,GAAK,IAAI,CAAC5C,sBAAsB,CAACQ,UAAU,CAACqD,GAAG,CAC5ED,IACA,IAAI,CAAC1B,KAAK,CAACC,GACXjC,EAAa4B,SAAS,CAACuB,SAAS,CAAClD,IAAI,CAAC,IAAI,CAAE,KAAMyD,GAE1D,EASAjE,EAAQsC,WAAW,CAACjB,EAAad,GAEjCc,EAAYc,SAAS,CAACY,OAAO,CAAG,SAAUP,CAAK,EAC3C,IAAIQ,EAAS,IAAI,CAACpC,WAAW,CAAC4B,EAAMS,OAAO,CAAC,CAM5C,GAJe,KAAK,IAAhBD,GAAqB,SAASG,IAAI,CAACX,EAAMY,GAAG,GAC5CJ,CAAAA,EAAS,IAAI,CAACK,uBAAuB,CAAC1C,IAAI,CAAC,IAAI,GAG/CqC,EAAQ,CACRR,EAAMU,eAAe,GACrB,IAAIiB,EAAY,IAAI,CAACZ,WAAW,GAC5Ba,EAAepB,EAAOR,EAAO2B,GAEjC,GAAIC,EAAc,CACd,IAAIC,EAAgB,IAAI,CAACC,iBAAiB,CAACH,EAAW3B,EAAMM,MAAM,EAE9DsB,IAAiBC,IACjBA,EAAcE,YAAY,CAAC,WAAY,MACvC,IAAI,CAAC9B,WAAW,CAAC2B,EAAc,IAAI,CAACxC,oBAAoB,EAEhE,CACJ,CACJ,EAEAP,EAAYc,SAAS,CAACmC,iBAAiB,CAAG,SAAUE,CAAY,CAAEC,CAAa,EAC3E,OAAOD,EAAaE,IAAI,CACpB,UAAUC,CAAI,EACV,OAAO,IAAI,CAAC7E,eAAe,CAAC+C,eAAe,CAAC8B,EAAMF,EACtD,GAAE9D,IAAI,CAAC,IAAI,EAEnB,EAEAU,EAAYc,SAAS,CAACsB,aAAa,CAAG,WAC7B,IAAI,CAAC9B,UAAU,GAChB,IAAI,CAACL,YAAY,CAACX,IAAI,CAClB,QACA,YACIgD,SAASC,gBAAgB,CAAC,QAAS,IAAI,CAACnC,8BAA8B,CAAE,GAC5E,GAAEd,IAAI,CAAC,IAAI,GAGf,IAAI,CAACP,IAAI,CAACO,IAAI,CAAC,QAAS,IAAI,CAACoC,OAAO,CAACpC,IAAI,CAAC,IAAI,GAC9C,IAAI,CAACgB,UAAU,CAAG,GAE1B,EAEAN,EAAYc,SAAS,CAACT,uBAAuB,CAAG,SAAUc,CAAK,EACtD,IAAI,CAACoC,6BAA6B,CAACpC,EAAMM,MAAM,IAGhD+B,IAFoB,CAACtB,WAAW,GAEtBuB,OAAO,CACb,UAAUC,CAAQ,EACVA,IAAa,IAAI,CAACzD,YAAY,CAAC,EAAE,EAAIyD,OAAAA,EAASC,YAAY,CAAC,aAC3DD,EAASR,YAAY,CAAC,WAAY,KAE1C,GAAE5D,IAAI,CAAC,IAAI,GAGf,IAAI,CAAC8B,WAAW,CAAC,IAAI,CAACnB,YAAY,CAAC,EAAE,CAAE,IAAI,CAACM,oBAAoB,EAChE+B,SAASI,mBAAmB,CAAC,QAAS,IAAI,CAACtC,8BAA8B,CAAE,IAEnF,EAEAJ,EAAYc,SAAS,CAAC0B,eAAe,CAAG,WAChC,IAAI,CAAClC,UAAU,GACf,IAAI,CAACvB,IAAI,CAAC0D,MAAM,CAAC,SACjB,IAAI,CAACxC,YAAY,CAACwC,MAAM,CAAC,SACzBH,SAASI,mBAAmB,CAAC,QAAS,IAAI,CAACtC,8BAA8B,CAAE,IAC3E,IAAI,CAACE,UAAU,CAAG,GAE1B,EAeApB,EAAa4B,SAAS,CAACM,WAAW,CAAG,SAAUkC,CAAI,CAAEjC,CAAK,EAClDA,EACAiC,EAAKJ,YAAY,CAAC,WAAY7B,GAE9BiC,EAAKM,eAAe,CAAC,WAE7B,EAEA1E,EAAa4B,SAAS,CAACuB,SAAS,CAAG,SAAUlB,CAAK,CAAE0C,CAAc,EAC1DA,CAAAA,GAAkB1C,EAAMS,OAAO,GAAK,IAAI,CAAC5C,sBAAsB,CAACQ,UAAU,CAACqD,GAAG,GAC9E,IAAI,CAACiB,aAAa,EAE1B,EAEA5E,EAAa4B,SAAS,CAACyC,6BAA6B,CAAG,SAAUQ,CAAO,EACpE,OAAO,IAAI,CAACtF,eAAe,CAAC+C,eAAe,CAAC,IAAI,CAACzC,IAAI,CAAC,EAAE,CAAEgF,IAAY,IAAI,CAACtF,eAAe,CAAC+C,eAAe,CAAC,IAAI,CAACvB,YAAY,CAAC,EAAE,CAAE8D,EACrI,EAEA7E,EAAa4B,SAAS,CAACoB,WAAW,CAAG,WACjC,IAAIsB,EAAYQ,MAAMlD,SAAS,CAACmD,KAAK,CAAC9E,IAAI,CAAC,IAAI,CAACJ,IAAI,CAAC,EAAE,CAACmF,gBAAgB,CAAC,qBAAsB,GAC3FC,EAAW,IAAI,CAACpF,IAAI,CAAC,EAAE,CAACmF,gBAAgB,CAAC,iBAE7C,OAAOV,EAAUY,MAAM,CAAC,SAAUV,CAAQ,EACtC,IAAK,IAAIW,EAAI,EAAGA,EAAIF,EAAShC,MAAM,CAAEkC,IACjC,GAAIF,CAAQ,CAACE,EAAE,CAACC,QAAQ,CAACZ,GACrB,MAAO,GAIf,MAAO,EACX,EACJ,EAEAxE,EAAa4B,SAAS,CAACgD,aAAa,CAAG,WACnC,IAAI,CAAC7D,YAAY,CAAC,EAAE,CAACsB,KAAK,EAC9B,EAEArC,EAAa4B,SAAS,CAAClB,aAAa,CAAG,SAAUuB,CAAK,CAAEc,CAAQ,EAC5D,OAAO,IAAI,CAACsC,8BAA8B,CAACtC,EAAUd,EAAO,EAChE,EAEAjC,EAAa4B,SAAS,CAACpB,iBAAiB,CAAG,SAAUyB,CAAK,CAAEc,CAAQ,EAChE,OAAO,IAAI,CAACsC,8BAA8B,CAACtC,EAAUd,EAAO,GAChE,EAEAjC,EAAa4B,SAAS,CAACyD,8BAA8B,CAAG,SAAUtC,CAAQ,CAAEd,CAAK,CAAEqD,CAAK,EACpF,IAAIC,EAAkBxC,EAASmC,MAAM,CACjC,UAAUL,CAAO,EACb,OAAO,IAAI,CAACtF,eAAe,CAACiG,gBAAgB,CAACX,EACjD,GAAEzE,IAAI,CAAC,IAAI,GAGXqF,EAAeF,EAAgBG,OAAO,CAACzD,EAAMM,MAAM,EAEvD,GAAIkD,KAAAA,EACA,OAAO,IAAI,CAAChE,cAAc,CAACQ,EAAOsD,GAGtC,IAAII,EAAWF,EAAeH,SAE9B,EAAe,EACJ,IAAI,CAAC3D,aAAa,CAAC,KAAM4D,GACzBI,GAAYJ,EAAgBtC,MAAM,CAClC,IAAI,CAACxB,cAAc,CAAC,KAAM8D,IAEjCA,CAAe,CAACI,EAAS,CAACtD,KAAK,GACxBkD,CAAe,CAACI,EAAS,CAExC,EAEA3F,EAAa4B,SAAS,CAACH,cAAc,CAAG,SAAUQ,CAAK,CAAEc,CAAQ,EAC7D,GAAIA,KAAa6C,IAAb7C,GAA0BA,KAAgB6C,IAAhB7C,CAAQ,CAAC,EAAE,CAIzC,OADAA,CAAQ,CAAC,EAAE,CAACV,KAAK,GACVU,CAAQ,CAAC,EAAE,EAGtB/C,EAAa4B,SAAS,CAACD,aAAa,CAAG,SAAUM,CAAK,CAAEc,CAAQ,EAE5D,OADAA,CAAQ,CAACA,EAASE,MAAM,CAAG,EAAE,CAACZ,KAAK,GAC5BU,CAAQ,CAACA,EAASE,MAAM,CAAG,EAAE,EAGxCjD,EAAa4B,SAAS,CAACkB,uBAAuB,CAAG,SAAUb,CAAK,CAAEc,CAAQ,EACtE,IAAI0C,EAAe1C,EAAS2C,OAAO,CAACzD,EAAMM,MAAM,CAE3B,MAAjBkD,GACAA,CAAAA,EAAe,GAKnB,IAAK,IAFDI,EAAQ,OAAW,WAAa5D,EAAMY,GAAG,CAAE,KAEtCiD,EAAIL,EAAe,EAAGM,EAAIhD,EAASE,MAAM,CAAE6C,EAAIC,EAAGD,IACvD,GAAID,EAAMjD,IAAI,CAACG,CAAQ,CAAC+C,EAAE,CAACE,WAAW,EAElC,OADAjD,CAAQ,CAAC+C,EAAE,CAACzD,KAAK,GACVU,CAAQ,CAAC+C,EAAE,CAI1B,GAAIL,IAAAA,EACA,KAAK,IAAIK,EAAI,EAAGA,EAAIL,EAAcK,IAC9B,GAAID,EAAMjD,IAAI,CAACG,CAAQ,CAAC+C,EAAE,CAACE,WAAW,EAElC,OADAjD,CAAQ,CAAC+C,EAAE,CAACzD,KAAK,GACVU,CAAQ,CAAC+C,EAAE,CAIlC,EAEO,IAAIpG,EAAgBH,EAAiBC,EAChD,C,oCAhVAyG,EAAAA,CAAUA,CAACC,OAAO,CAAC,kBAAmB5G,GACtCA,EAAgB6G,OAAO,CAAG,CAAC,kBAAmB,8BAA+B,UAAU,E,gCCGhF,OAAMC,EACTC,YAAYC,CAAO,CAAEC,CAAO,CAAE,CAC1B,IAAI,CAACC,QAAQ,CAAGF,EAChB,IAAI,CAACG,QAAQ,CAAGF,CACpB,CAEAnE,KAAKsE,CAAO,CAAEC,CAAM,CAAE,CAClB,IAAMC,EAAY,mBAAOF,EAAyB,GAAU,IAAI,CAACG,aAAa,CAACH,EAASI,GAAQ,KAC1FC,EAAW,mBAAOJ,EAAwB,GAAe,IAAI,CAACE,aAAa,CAACF,EAAQK,GAAa,KAEvG,OAAO,IAAIZ,EAAsB,IAAI,CAACI,QAAQ,CAACpE,IAAI,CAACwE,EAAWG,GAAW,IAAI,CAACN,QAAQ,CAC3F,CAEAQ,MAAMN,CAAM,CAAE,CACV,OAAO,IAAIP,EACP,IAAI,CAACI,QAAQ,CAACS,KAAK,CAAC,GAAe,IAAI,CAACJ,aAAa,CAACF,EAAQK,IAC9D,IAAI,CAACP,QAAQ,CAErB,CAEAS,QAAQR,CAAO,CAAE,CACb,OAAO,IAAIN,EACP,IAAI,CAACI,QAAQ,CAACU,OAAO,CAAC,GAAU,IAAI,CAACL,aAAa,CAACH,EAASI,IAC5D,IAAI,CAACL,QAAQ,CAErB,CAEAU,OAAQ,CACJ,IAAI,CAACV,QAAQ,CAACU,KAAK,EACvB,CAEAN,cAAcO,CAAQ,CAAEN,CAAI,CAAE,CAC1B,IAAI,IAAI,CAACL,QAAQ,CAACY,SAAS,GAI3B,OAAOD,EAASN,EACpB,CACJ,C,2CChDO,OAAMQ,EACTjB,aAAc,CACV,IAAI,CAACkB,SAAS,CAAG,EAAE,CAGvBC,IAAIC,CAAgB,CAAE,CAClB,IAAI,CAACF,SAAS,CAACG,IAAI,CAACD,GAEpBA,EAAiBP,OAAO,CAAC,KACrB,IAAM5B,EAAQ,IAAI,CAACiC,SAAS,CAAC7B,OAAO,CAAC+B,EACvB,MAAVnC,GACA,IAAI,CAACiC,SAAS,CAACI,MAAM,CAACrC,EAAO,EAErC,EACJ,CAEAsC,UAAW,CACP,IAAK,IAAIH,KAAoB,IAAI,CAACF,SAAS,CACR3B,KAAAA,IAA3B6B,EAAiBN,KAAK,EACtBM,EAAiBN,KAAK,EAI9B,KAAI,CAACI,SAAS,CAACtE,MAAM,CAAG,CAC5B,CACJ,C,iDCzBO,OAAM4E,EACTxB,aAAc,CACV,IAAI,CAACyB,UAAU,CAAG,EACtB,CAEAX,OAAQ,CACJ,IAAI,CAACW,UAAU,CAAG,EACtB,CAEAT,WAAY,CACR,OAAO,IAAI,CAACS,UAAU,CAE9B,CCLO,SAASC,EAAczB,CAAO,EACjC,OAAO,IAAIF,EAAAA,CAAqBA,CAACE,EAAS,IAAIuB,EAClD,C,mDCRwC,OAElCG,EACF3B,YAAY4B,CAAQ,CAAE,CAClB,IAAI,CAACC,SAAS,CAAGD,EACjB,IAAI,CAACE,UAAU,CAAG,IAAIC,EAAAA,SAASA,CAACC,QAChC,IAAI,CAACC,gBAAgB,CAAG,IAC5B,CAEAC,SAASC,CAAS,CAAEC,CAAI,CAAE,CACtB,IAAMC,EAAaD,EAAKE,GAAG,CAAC,eACxB,IAAMC,EAAgB,CAAE,GAAGC,CAAQ,EASnC,OAPAD,EAAcxB,QAAQ,CAAG,sCAAI0B,EAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,CAAY,CAAZA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAEzB,EAAKZ,SAAS,CAAC,KACXW,EAASzB,QAAQ,IAAI0B,EACzB,EACJ,EAEOF,CACX,GAEA,OAAO,IAAI,CAACT,UAAU,CAACI,QAAQ,CAACC,EAAWE,EAC/C,CAEAK,aAAqB,CAAT,kDAAGC,CAAI,CAAP,eAAO,CACf,OAAO,IAAI,CAACb,UAAU,CAACY,WAAW,IAAIC,EAC1C,CAEAC,QAAgB,CAAT,kDAAGD,CAAI,CAAP,eAAO,CACV,GAAI,WAAI,CAACV,gBAAgB,CACrB,IAAK,IAAME,KAAaQ,EACqBpD,KAAAA,IAArC,IAAI,CAAC0C,gBAAgB,CAACE,EAAU,EAChC,OAAO,IAAI,CAACF,gBAAgB,CAACE,EAAU,CAKnD,OAAO,IAAI,CAACL,UAAU,CAACc,MAAM,IAAID,EACrC,CAEAE,eAAgB,CACZ,GAAI,WAAI,CAACZ,gBAAgB,CACrB,OAGJ,IAAMa,EAAe,IAAI,CAAChB,UAAU,CAACY,WAAW,GAC1CK,EAAqB,CAAC,EAE5BC,OAAOC,MAAM,CAACH,GAAc5E,OAAO,CAAC,IAChC,IAAMgF,EAAoBH,KAA2CxD,IAA3CwD,CAAkB,CAACP,EAASL,SAAS,CAAC,CAAiB,EAAE,CAAGY,CAAkB,CAACP,EAASL,SAAS,CAAC,CAC5He,EAAkB7B,IAAI,CAACmB,GACvBO,CAAkB,CAACP,EAASL,SAAS,CAAC,CAAGe,EACzC,IAAI,CAACpB,UAAU,CAACc,MAAM,CAACJ,EAASL,SAAS,CAC7C,GAEA,IAAI,CAACF,gBAAgB,CAAGc,CAC5B,CAEAI,gBAAiB,CACiB,OAA1B,IAAI,CAAClB,gBAAgB,GAIzBe,OAAOZ,IAAI,CAAC,IAAI,CAACH,gBAAgB,EAAE/D,OAAO,CAAC,IACvC,IAAI,CAAC4D,UAAU,CAACI,QAAQ,CAACC,EAAW,IAAI,CAACF,gBAAgB,CAACE,EAAU,CACxE,GAEA,IAAI,CAACF,gBAAgB,CAAG,KAC5B,CACJ,CAEAN,EAAiB7B,OAAO,CAAG,CAAC,WAAW,CACvCF,EAAAA,CAAUA,CAACC,OAAO,CAAC,mBAAoB8B,E,gFCrEc,OAE/CyB,UAA8BC,EAAAA,CAAWA,CAC3CrD,YAAYsD,CAAoB,CAAE,CAC9B,KAAK,GAEL,IAAI,CAACA,oBAAoB,CAAGA,EAC5B,IAAI,CAACC,iBAAiB,CAAG,GACzB,IAAI,CAACC,0BAA0B,CAAGA,EAAAA,CAClC,KAAI,CAACC,mBAAmB,CAAG,GAC3B,IAAI,CAACC,mBAAmB,CAAG,IAAI,CAACC,oBAAoB,CAAC5J,IAAI,CAAC,IAAI,EAC9D,IAAI,CAAC6J,iBAAiB,CAAG,wCACzB,IAAI,CAACC,sBAAsB,CAAG,+BAC9B,IAAI,CAACC,kBAAkB,CAAG,IAAI,CAACR,oBAAoB,CAACS,SAAS,CAAC,gDAClE,CAEAC,0BAA0BC,CAAa,CAAEC,CAAQ,CAAE,CAC/C,IAAI,CAACC,qBAAqB,CAAC,CACvBC,WAAYF,EAASG,UAAU,CAC/BC,WAAYJ,EAASK,UAAU,CAC/BC,aAAcN,EAASO,YAAY,CACnCC,OAAQR,EAASS,MAAM,CACvBV,cAAeA,CACnB,EACJ,CAEAN,qBAAqBM,CAAa,CAAE,CAChC,IAAI,CAACR,mBAAmB,CAAGQ,EAE3B,IAAI,CAACE,qBAAqB,CAAC,CACvBF,cAAeA,CACnB,EACJ,CACJ,CAcAb,EAAsBtD,OAAO,CAAG,CAAC,uBAAuB,CACxDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,wBAb0B,CAC3CC,SAAU,CACNX,SAAU,IACVY,kBAAmB,IACnBC,0BAA2B,IAC3BC,eAAgB,IAChBb,sBAAuB,GAC3B,EACAc,SCjDW,wxEDkDXC,WAAY9B,CAChB,E,wEEjDO,IAAM+B,EAAqB,CAAC7B,EAAsB8B,EAAWC,EAAUC,EAAiBC,SACvFC,EACJ,IAAIC,EAAoBnC,EAAqBS,SAAS,CAAC,uDAAwD,CAAE2B,MAAOL,CAAS,GAEjI,GAAIC,EAAiB,CACjB,IAAIK,EAAgBrC,EAAqBS,SAAS,CAAC,yCAA0C,CAAE2B,MAAOL,CAAS,GAC/GI,EAAoB,CAAC,EAAEE,EAAc,UAAU,EAAEF,EAAkB,CAAC,CACpED,EAAclC,EAAqBS,SAAS,CAAC,wDAAyD,CAAE2B,MAAOL,CAAS,EAC5H,MACIG,EAAclC,EAAqBS,SAAS,CAAC,iDAAkD,CAAE2B,MAAOL,CAAS,GAGrH,IAAMO,EAAS,CACXC,KAAMC,EAAAA,CAAUA,CAACC,KAAK,CACtBC,aAAc,CAAEC,YAAaR,CAAkB,EAC/CS,cAAe,CAACC,EAAQC,KACpBA,EAASzK,KAAK,CAAC4J,EACnB,EACAX,UAAW,IAAM,yDAAuB7I,IAAI,CAAC,GAAYsK,EAAOC,uBAAuB,EACvFC,MAAOf,EACPgB,QAAS,CACL,CACIC,MAAOnD,EAAqBS,SAAS,CAAC,kBACtC2C,UAAWpD,EAAqBS,SAAS,CAAC,kBAC1C4C,YAAaC,EAAAA,CAAWA,CAACC,QAAQ,CACjCC,SAAU,sBACVC,SAAU,IAAM,GAChB3K,OAAQ,CAAC+J,EAAQC,KACbA,EAASzK,KAAK,CAAC4J,EACnB,CACJ,EACA,CACIkB,MAAOnD,EAAqBS,SAAS,CAAC,4CACtC2C,UAAWpD,EAAqBS,SAAS,CAAC,4CAC1C4C,YAAaC,EAAAA,CAAWA,CAACI,SAAS,CAClCF,SAAU,6BACVC,SAAU,IAAM,GAChB3K,OAAQ,CAAC+J,EAAQC,KACbA,EAASzK,KAAK,GACdyJ,EAAUgB,EACd,CACJ,EACH,EAGLa,CAAAA,EAAAA,EAAAA,CAAAA,EAAarB,EACjB,C,wEC9CO,IAAMsB,EAAoB,CAAC5D,EAAsB8B,EAAWC,EAAUC,EAAiBC,SACtFC,EACAC,EAEAH,GACAG,EAAoBnC,EAAqBS,SAAS,CAAC,6DAA8D,CAAE2B,MAAOL,CAAS,GACnIG,EAAclC,EAAqBS,SAAS,CAAC,uDAAwD,CAAE2B,MAAOL,CAAS,KAEvHG,EAAclC,EAAqBS,SAAS,CAAC,gDAAiD,CAAE2B,MAAOL,CAAS,GAChHI,EAAoBnC,EAAqBS,SAAS,CAAC,sDAAuD,CAAE2B,MAAOL,CAAS,IAGhI,IAAMO,EAAS,CACXC,KAAMC,EAAAA,CAAUA,CAACC,KAAK,CACtBC,aAAc,CAAEC,YAAaR,CAAkB,EAC/CS,cAAe,CAACC,EAAQC,KACpBA,EAASzK,KAAK,CAAC4J,EACnB,EACAX,UAAW,IAAM,yDAAuB7I,IAAI,CAAC,GAAYsK,EAAOC,uBAAuB,EACvFC,MAAOf,EACPgB,QAAS,CACL,CACIC,MAAOnD,EAAqBS,SAAS,CAAC,kBACtC2C,UAAWpD,EAAqBS,SAAS,CAAC,kBAC1C4C,YAAaC,EAAAA,CAAWA,CAACC,QAAQ,CACjCC,SAAU,sBACVC,SAAU,IAAM,GAChB3K,OAAQ,CAAC+J,EAAQC,KACbA,EAASzK,KAAK,CAAC4J,EACnB,CACJ,EACA,CACIkB,MAAOnD,EAAqBS,SAAS,CAAC,wDACtC2C,UAAWpD,EAAqBS,SAAS,CAAC,wDAC1C4C,YAAaC,EAAAA,CAAWA,CAACI,SAAS,CAClCF,SAAU,6BACVC,SAAU,IAAM,GAChB3K,OAAQ,CAAC+J,EAAQC,KACbA,EAASzK,KAAK,GACdyJ,EAAUgB,EACd,CACJ,EACH,EAGLa,CAAAA,EAAAA,EAAAA,CAAAA,EAAarB,EACjB,C,wEC9CO,IAAMuB,EAAsB,CAAC7D,EAAsB8B,EAAWC,EAAUE,KAC3E,IAAMC,EAAclC,EAAqBS,SAAS,CAAC,kDAAmD,CAAE2B,MAAOL,CAAS,GAClHI,EAAoBnC,EAAqBS,SAAS,CAAC,wDAAyD,CAAE2B,MAAOL,CAAS,GAE9HO,EAAS,CACXC,KAAMC,EAAAA,CAAUA,CAACC,KAAK,CACtBC,aAAc,CAAEC,YAAaR,CAAkB,EAC/CS,cAAe,CAACC,EAAQC,KACpBA,EAASzK,KAAK,CAAC4J,EACnB,EACAX,UAAW,IAAM,yDAAuB7I,IAAI,CAAC,GAAYsK,EAAOC,uBAAuB,EACvFC,MAAOf,EACPgB,QAAS,CACL,CACIC,MAAOnD,EAAqBS,SAAS,CAAC,kBACtC2C,UAAWpD,EAAqBS,SAAS,CAAC,kBAC1C4C,YAAaC,EAAAA,CAAWA,CAACC,QAAQ,CACjCC,SAAU,sBACVC,SAAU,IAAM,GAChB3K,OAAQ,CAAC+J,EAAQC,KACbA,EAASzK,KAAK,CAAC4J,EACnB,CACJ,EACA,CACIkB,MAAOnD,EAAqBS,SAAS,CAAC,6CACtC2C,UAAWpD,EAAqBS,SAAS,CAAC,6CAC1C4C,YAAaC,EAAAA,CAAWA,CAACI,SAAS,CAClCF,SAAU,6BACVC,SAAU,IAAM,GAChB3K,OAAQ,CAAC+J,EAAQC,KACbA,EAASzK,KAAK,GACdyJ,EAAUgB,EACd,CACJ,EACH,EAGLa,CAAAA,EAAAA,EAAAA,CAAAA,EAAarB,EACjB,C,kCCxCO,OAAMwB,EACTpH,YAAYqH,CAAO,CAAEC,EAAY,GAAG,CAAEC,EAAe,EAAE,CAAE,CACrD,IAAI,CAACF,OAAO,CAAGA,EACf,IAAI,CAACC,SAAS,CAAGA,EACjB,IAAI,CAACC,YAAY,CAAGA,CACxB,CAEAC,oBAAoBH,CAAO,CAAE,CACzB,OAAO,IAAID,EAAaC,EAAS,IAAI,CAACC,SAAS,CAAE,IAAI,CAACC,YAAY,CACtE,CACJ,C,qDCmBA,SAASE,EAAqBC,CAAK,CAAEC,CAAY,CAAEC,CAAM,CAAEC,CAAU,CAAEC,CAAS,CAAEC,CAAW,EACzF,IAAI,CAACC,aAAa,CAAGN,EACrB,IAAI,CAACE,MAAM,CAAGA,EACd,IAAI,CAACD,YAAY,CAAGA,EACpB,IAAI,CAACG,SAAS,CAAGA,EACjB,IAAI,CAACC,WAAW,CAAGA,EACnB,IAAI,CAACF,UAAU,CAAGA,CACtB,C,SA/BAjI,EAAAA,CAAUA,CAACqI,QAAQ,CAAC,uBACpB,WACI,IAAI,CAACH,SAAS,CAAG,KACjB,IAAI,CAACC,WAAW,CAAG,KAEnB,IAAI,CAACG,YAAY,CAAG,UAAUJ,CAAS,EACnC,IAAI,CAACA,SAAS,CAAGA,CACrB,GAAE/N,IAAI,CAAC,IAAI,EAEX,IAAI,CAACoO,kBAAkB,CAAG,UAAUC,CAAM,EACtC,IAAI,CAACL,WAAW,CAAGK,CACvB,GAAErO,IAAI,CAAC,IAAI,EAEX,IAAI,CAACsO,IAAI,CAAG,CACR,QACA,eACA,SACA,aACA,UAAUX,CAAK,CAAEC,CAAY,CAAEC,CAAM,CAAEC,CAAU,EAC7C,OAAO,IAAIJ,EAAqBC,EAAOC,EAAcC,EAAQC,EAAY,IAAI,CAACC,SAAS,CAAE,IAAI,CAACC,WAAW,CAC7G,GAAEhO,IAAI,CAAC,IAAI,EACd,GAiBL0N,EAAqBlM,SAAS,CAAC+M,iBAAiB,CAAG,SAAUF,CAAM,EAE/D,OADAA,EAAS,IAAI,CAACG,kBAAkB,CAACH,GAC1B,IAAI,CAACJ,aAAa,CAACQ,IAAI,CAAC,IAAI,CAACV,SAAS,CAACQ,iBAAiB,CAAE,KAAM,CAAEF,OAAQA,CAAO,GAAGrM,IAAI,CAAC,SAAU0M,CAAQ,EAC9G,OAAOA,EAAShI,IAAI,EAE5B,EAOAgH,EAAqBlM,SAAS,CAACmN,yBAAyB,CAAG,SAAUN,CAAM,EACvE,OAAO,IAAI,CAACJ,aAAa,CACpBW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACY,yBAAyB,CAAE,IAAI,CAACH,kBAAkB,CAACH,IAAU,MAClHrM,IAAI,CAAC,SAAU0M,CAAQ,EACpB,OAAOA,EAAShI,IAAI,EAEhC,EAOAgH,EAAqBlM,SAAS,CAACsN,mBAAmB,CAAG,SAAUT,CAAM,EAEjE,OADAA,EAAS,IAAI,CAACG,kBAAkB,CAACH,GAC1B,IAAI,CAACJ,aAAa,CAACW,GAAG,CAAC,IAAI,CAACb,SAAS,CAACe,mBAAmB,CAAE,CAAET,OAAQA,CAAO,GAAGrM,IAAI,CAAC,SAAU0M,CAAQ,EACzG,OAAOA,CACX,EACJ,EAOAhB,EAAqBlM,SAAS,CAACuN,aAAa,CAAG,SAAUV,CAAM,EAC3D,OAAO,IAAI,CAACJ,aAAa,CAACW,GAAG,CAAC,IAAI,CAACb,SAAS,CAACgB,aAAa,CAAE,CAAEV,OAAQA,CAAO,GAAGrM,IAAI,CAAC,SAAU0M,CAAQ,EACnG,OAAOA,CACX,EACJ,EAMAhB,EAAqBlM,SAAS,CAACwN,gBAAgB,CAAG,SAAUX,CAAM,EAG9D,IAAMhG,EAAOY,OAAOZ,IAAI,CAFxBgG,EAAS,IAAI,CAACG,kBAAkB,CAACH,IAG3BY,EAAa,EAAE,CAErB,IAAK,IAAIvJ,EAAI,EAAGA,EAAI2C,EAAKxF,MAAM,CAAE6C,IAAK,CAClC,IAAMjD,EAAM4F,CAAI,CAAC3C,EAAE,MACF,IAAbjD,GAAkB4L,KAAqB,IAArBA,CAAM,CAAC5L,EAAI,EAC7BwM,EAAW3H,IAAI,CAAC,CAAE7E,IAAKA,EAAKV,MAAOsM,CAAM,CAAC5L,EAAI,EAEtD,CAEA,OAAO,IAAI,CAACqL,UAAU,CAACoB,aAAa,CAAC,IAAI,CAACnB,SAAS,CAACgB,aAAa,CAAEE,EACvE,EAMAvB,EAAqBlM,SAAS,CAAC2N,WAAW,CAAG,SAAUd,CAAM,EACzD,OAAO,IAAI,CAACJ,aAAa,CAACW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACqB,QAAQ,CAAE,IAAI,CAACZ,kBAAkB,CAACH,IAAU,MAAMrM,IAAI,CAAC,SAAU0M,CAAQ,EACpJ,OAAOA,CACX,EACJ,EAEAhB,EAAqBlM,SAAS,CAAC6N,iBAAiB,CAAG,SAAUhB,CAAM,EAC/D,OAAO,IAAI,CAACJ,aAAa,CACpBW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACuB,cAAc,CAAE,IAAI,CAACd,kBAAkB,CAACH,IAAU,MACvGrM,IAAI,CAAC,SAAU0M,CAAQ,EACpB,OAAOA,CACX,EACR,EAEAhB,EAAqBlM,SAAS,CAAC+N,oBAAoB,CAAG,SAAUlB,CAAM,CAAEe,CAAQ,EAC5E,OAAO,IAAI,CAACnB,aAAa,CACpBuB,GAAG,CAAC,IAAI,CAACX,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC0B,gBAAgB,CAAE,IAAI,CAACjB,kBAAkB,CAACH,IAAUe,GACzGpN,IAAI,CAAC,SAAU0M,CAAQ,EACpB,OAAOA,CACX,EACR,EAEAhB,EAAqBlM,SAAS,CAACkO,WAAW,CAAG,SAAUrB,CAAM,CAAEe,CAAQ,EAQnE,MANIf,CAAAA,EAAOsB,YAAY,GAAKC,EAAAA,CAAoBA,CAACC,cAAc,CAACC,kBAAkB,EAC9EzB,EAAOsB,YAAY,GAAKC,EAAAA,CAAoBA,CAACC,cAAc,CAACE,kBAAkB,EAC9E1B,EAAOsB,YAAY,GAAKC,EAAAA,CAAoBA,CAACC,cAAc,CAACG,oBAAoB,GAEhF3B,CAAAA,EAAOsB,YAAY,CAAGC,EAAAA,CAAoBA,CAACC,cAAc,CAACI,QAAQ,EAE/D,IAAI,CAAChC,aAAa,CACpBQ,IAAI,CAAC,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC0B,gBAAgB,CAAE,IAAI,CAACjB,kBAAkB,CAACH,IAAUe,GAC1GpN,IAAI,CAAC,SAAU0M,CAAQ,EACpB,OAAOA,CACX,EACR,EAEAhB,EAAqBlM,SAAS,CAAC0O,YAAY,CAAG,SAAU7B,CAAM,CAAEe,CAAQ,EACpE,OAAO,IAAI,CAACnB,aAAa,CACpBkC,KAAK,CAAC,IAAI,CAACtB,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC0B,gBAAgB,CAAE,IAAI,CAACjB,kBAAkB,CAACH,IAAUe,GAC3GpN,IAAI,CAAC,SAAU0M,CAAQ,EACpB,OAAOA,CACX,EACR,EAEAhB,EAAqBlM,SAAS,CAAC4O,cAAc,CAAG,SAAU/B,CAAM,EAC5D,OAAO,IAAI,CAACJ,aAAa,CACpBoC,MAAM,CAAC,IAAI,CAACxB,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACuB,cAAc,CAAE,IAAI,CAACd,kBAAkB,CAACH,IAAU,MAC1GrM,IAAI,CAAC,SAAU0M,CAAQ,EACpB,OAAOA,CACX,EACR,EAEAhB,EAAqBlM,SAAS,CAAC8O,eAAe,CAAG,SAAUjC,CAAM,EAC7D,OAAO,IAAI,CAACJ,aAAa,CACpBW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACwC,YAAY,CAAE,IAAI,CAAC/B,kBAAkB,CAACH,IAAU,MACrGrM,IAAI,CAAC,SAAU0M,CAAQ,EACpB,OAAOA,CACX,EACR,EAEAhB,EAAqBlM,SAAS,CAACgP,gBAAgB,CAAG,SAAUnC,CAAM,EAC9D,OAAO,IAAI,CAACJ,aAAa,CACpBW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACyC,gBAAgB,CAAE,IAAI,CAAChC,kBAAkB,CAACH,IAAU,MACzGrM,IAAI,CAAC,SAAU0M,CAAQ,EACpB,OAAOA,CACX,EACR,EAKAhB,EAAqBlM,SAAS,CAACiP,oBAAoB,CAAG,WAClD,OAAO,IAAI,CAACxC,aAAa,CACpBW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC2C,gBAAgB,CAAE,IAAI,CAAClC,kBAAkB,CAAC,EAAE,GAAI,MACrGxM,IAAI,CAAC,SAAU0M,CAAQ,EACpB,OAAOA,CACX,EACR,EAEAhB,EAAqBlM,SAAS,CAACmP,iBAAiB,CAAG,SAAUrD,CAAO,CAAEE,CAAY,CAAED,CAAS,EAOzF,OAAO,IAAI,CAACU,aAAa,CACpBW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC4C,iBAAiB,CAAE,IAAI,CAACnC,kBAAkB,CAPrF,CACXlB,QAASA,EACTE,aAAcA,EACdD,UAAWA,KAAc/H,IAAd+H,EAA0BA,EAAY,CACrD,IAG+G,MAC1GvL,IAAI,CAAC,GACK0M,EAEnB,EAEAhB,EAAqBlM,SAAS,CAACoP,kBAAkB,CAAG,SAAUvC,CAAM,EAChE,OAAO,IAAI,CAACJ,aAAa,CACpBW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC8C,mBAAmB,CAAE,IAAI,CAACrC,kBAAkB,CAACH,IAAU,MAC5GrM,IAAI,CAAC,SAAU0M,CAAQ,EACpB,OAAOA,CACX,EACR,EAEAhB,EAAqBlM,SAAS,CAACsP,wBAAwB,CAAG,WACtD,OAAO,IAAI,CAAC7C,aAAa,CACpBW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACgD,gBAAgB,CAAE,IAAI,CAACvC,kBAAkB,CAAC,EAAE,GAAI,MACrGxM,IAAI,CAAC,SAAU0M,CAAQ,EACpB,OAAOA,CACX,EACR,EAEAhB,EAAqBlM,SAAS,CAACwP,YAAY,CAAG,SAAU3C,CAAM,CAAEe,CAAQ,EACpE,OAAO,IAAI,CAACnB,aAAa,CACpBQ,IAAI,CAAC,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC0B,gBAAgB,CAAE,IAAI,CAACjB,kBAAkB,CAACH,IAAUe,GAC1GpN,IAAI,CAAC,GACK0M,EAEnB,EAEAhB,EAAqBlM,SAAS,CAACyP,0BAA0B,CAAG,SAAU5C,CAAM,EACxE,OAAO,IAAI,CAACJ,aAAa,CACpBW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACkD,0BAA0B,CAAE,IAAI,CAACzC,kBAAkB,CAACH,KACzGrM,IAAI,CAAC,GACK0M,EAEnB,EAEAhB,EAAqBlM,SAAS,CAAC0P,wBAAwB,CAAG,SAAU5D,CAAO,CAAE3C,CAAM,CAAE6C,CAAY,CAAED,CAAS,CAAE4D,CAAO,EACjH,OAAO,IAAI,CAAClD,aAAa,CAACQ,IAAI,CAC1B,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACmD,wBAAwB,CAAE,CACvE5D,QAASA,EACT3C,OAAQA,EACR6C,aAAcA,EACdD,UAAWA,CACf,GACA4D,EAER,EAEAzD,EAAqBlM,SAAS,CAAC4P,aAAa,CAAG,SAAU1K,CAAI,EACzD,OAAO,IAAI,CAACuH,aAAa,CAACoC,MAAM,CAAC,IAAI,CAACxB,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACqD,aAAa,CAAE,IAAI,CAAC5C,kBAAkB,CAAC9H,IAAQ,MAAM1E,IAAI,CAAC,GACjI0M,EAEf,EAEAhB,EAAqBlM,SAAS,CAAC6P,qBAAqB,CAAG,SAAU/D,CAAO,CAAE3C,CAAM,CAAE6C,CAAY,CAAED,CAAS,CAAE4D,CAAO,EAC9G,OAAO,IAAI,CAAClD,aAAa,CAACQ,IAAI,CAC1B,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACsD,qBAAqB,CAAE,CACpE/D,QAASA,EACT3C,OAAQA,EACR6C,aAAcA,EACdD,UAAWA,CACf,GACA4D,EAER,EAEAzD,EAAqBlM,SAAS,CAAC8P,yBAAyB,CAAG,SAAUhE,CAAO,CAAE3C,CAAM,CAAE6C,CAAY,CAAED,CAAS,CAAE4D,CAAO,EAClH,OAAO,IAAI,CAAClD,aAAa,CAACQ,IAAI,CAC1B,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACuD,yBAAyB,CAAE,CACxEhE,QAASA,EACT3C,OAAQA,EACR6C,aAAcA,EACdD,UAAWA,CACf,GACA4D,EAER,EAEAzD,EAAqBlM,SAAS,CAAC+P,wBAAwB,CAAG,SAAUjE,CAAO,CAAEkE,CAAU,CAAEhE,CAAY,CAAED,CAAS,CAAE4D,CAAO,EACrH,OAAO,IAAI,CAAClD,aAAa,CAACQ,IAAI,CAC1B,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACwD,wBAAwB,CAAE,CACvEjE,QAASA,EACTkE,WAAYA,EACZhE,aAAcA,EACdD,UAAWA,CACf,GACA4D,EAER,EAEAzD,EAAqBlM,SAAS,CAACiQ,oBAAoB,CAAG,SAAUC,CAAU,CAAEpE,CAAO,EAC/E,OAAO,IAAI,CAACW,aAAa,CAACW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC0D,oBAAoB,CAAE,CAAEC,WAAYA,EAAYpE,QAASA,CAAQ,GAAI,KACxJ,EAEAI,EAAqBlM,SAAS,CAACmQ,kBAAkB,CAAG,SAAUrE,CAAO,CAAEE,CAAY,CAAED,CAAS,EAC1F,OAAO,IAAI,CAACU,aAAa,CACpBW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC4D,kBAAkB,CAAE,CAAErE,QAASA,EAASE,aAAcA,EAAcD,UAAWA,CAAU,GAAI,MAClJvL,IAAI,CAAC,GACK0M,EAEnB,EAEAhB,EAAqBlM,SAAS,CAACoQ,OAAO,CAAG,SAAUtE,CAAO,CAAEuE,CAAQ,EAChE,OAAO,IAAI,CAAC5D,aAAa,CACpBW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC6D,OAAO,CAAE,CAAEtE,QAASA,EAASuE,SAAUA,CAAS,GAAI,MACzG7P,IAAI,CAAC,GACK0M,EAEnB,EAEAhB,EAAqBlM,SAAS,CAACsQ,4BAA4B,CAAG,SAAUxE,CAAO,EAC3E,OAAO,IAAI,CAACW,aAAa,CACpBW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC+D,4BAA4B,CAAE,CAAExE,QAASA,CAAQ,GAAI,MAC1GtL,IAAI,CAAC,GACK0M,EAEnB,EAEAhB,EAAqBlM,SAAS,CAACuQ,gBAAgB,CAAG,SAAUzE,CAAO,CAAE0E,CAAU,CAAExE,CAAY,EACzF,OAAO,IAAI,CAACS,aAAa,CACpBW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACgE,gBAAgB,CAAE,CAAEzE,QAASA,EAAS0E,WAAYA,EAAYxE,aAAcA,CAAa,GAAI,MAClJxL,IAAI,CAAC,GACK0M,EAEnB,EAEAhB,EAAqBlM,SAAS,CAACyQ,mBAAmB,CAAG,SAAU3E,CAAO,CAAE0E,CAAU,CAAE7P,CAAM,CAAE+P,CAAU,CAAE1E,CAAY,EAChH,OAAO,IAAI,CAACS,aAAa,CACpBW,GAAG,CACA,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACkE,mBAAmB,CAAE,CAClE3E,QAASA,EACT0E,WAAYA,EACZ7P,OAAQA,EACR+P,WAAYA,EACZ1E,aAAcA,CAClB,GACA,MAEHxL,IAAI,CAAC,GACK0M,EAEnB,EAEAhB,EAAqBlM,SAAS,CAAC2Q,yBAAyB,CAAG,SAAU7E,CAAO,CAAE8E,CAAQ,CAAE5E,CAAY,EAChG,OAAO,IAAI,CAACS,aAAa,CAACQ,IAAI,CAC1B,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACoE,yBAAyB,CAAE,CAAE7E,QAASA,EAASE,aAAcA,CAAa,GAC3H4E,EAER,EAEA1E,EAAqBlM,SAAS,CAAC6Q,4BAA4B,CAAG,SAAU/E,CAAO,CAAE8E,CAAQ,CAAE5E,CAAY,EACnG,OAAO,IAAI,CAACS,aAAa,CAACQ,IAAI,CAC1B,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACsE,4BAA4B,CAAE,CAAE/E,QAASA,EAASE,aAAcA,CAAa,GAC9H4E,EAER,EAEA1E,EAAqBlM,SAAS,CAAC8Q,UAAU,CAAG,SAAUhF,CAAO,CAAEiF,CAAS,CAAE/E,CAAY,EAClF,OAAO,IAAI,CAACS,aAAa,CAACW,GAAG,CACzB,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACuE,UAAU,CAAE,CAAEhF,QAASA,EAASiF,UAAWA,EAAW/E,aAAcA,CAAa,GAClI,KAER,EAEAE,EAAqBlM,SAAS,CAACgR,WAAW,CAAG,SAAUlF,CAAO,CAAEE,CAAY,CAAEiF,CAAQ,EAClF,OAAO,IAAI,CAACxE,aAAa,CAACW,GAAG,CACzB,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACyE,WAAW,CAAE,CAAElF,QAASA,EAASE,aAAcA,EAAciF,SAAUA,CAAS,GACjI,KAER,EAEA/E,EAAqBlM,SAAS,CAACkR,qBAAqB,CAAG,SAAUC,CAAkB,CAAEnF,CAAY,EAC7F,OAAO,IAAI,CAACS,aAAa,CAACQ,IAAI,CAAC,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC2E,qBAAqB,CAAE,CAAElF,aAAcA,CAAa,GAAImF,EAC5I,EAEAjF,EAAqBlM,SAAS,CAACoR,aAAa,CAAG,SAAUtF,CAAO,CAAEE,CAAY,CAAE+E,CAAS,EACrF,OAAO,IAAI,CAACtE,aAAa,CAACoC,MAAM,CAC5B,IAAI,CAACxB,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC6E,aAAa,CAAE,CAAEtF,QAASA,EAASE,aAAcA,EAAc+E,UAAWA,CAAU,GACrI,KAER,EAKA7E,EAAqBlM,SAAS,CAACqR,mBAAmB,CAAG,SAAUrF,CAAY,CAAED,CAAS,EAMlF,IAAMuF,EACF,IAAI,CAAC/E,SAAS,CAAC8E,mBAAmB,CAACvN,OAAO,CAAC,gBAAkB,GACvD,IAAI,CAACuJ,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC8E,mBAAmB,CAAE,IAAI,CAACrE,kBAAkB,CAPxF,CACXhB,aAAcA,EACdD,UAAWA,KAAc/H,IAAd+H,EAA0BA,EAAY,CACrD,IAKU,IAAI,CAACQ,SAAS,CAAC8E,mBAAmB,CAE5C,OADA,IAAI,CAAC5E,aAAa,CAAC8E,QAAQ,CAACC,eAAe,CAAG,GACvC,IAAI,CAAC/E,aAAa,CAACW,GAAG,CAACkE,EAAK,MAAM9Q,IAAI,CAAC,SAAU0M,CAAQ,EAC5D,OAAOA,EAAShI,IAAI,EAAIgI,EAAShI,IAAI,CAACuM,MAAM,CAAGvE,EAAShI,IAAI,CAAG,IACnE,EACJ,EAEAgH,EAAqBlM,SAAS,CAAC0R,6BAA6B,CAAG,WAC3D,OAAO,IAAI,CAACjF,aAAa,CAACW,GAAG,CAAC,IAAI,CAACb,SAAS,CAACmF,6BAA6B,EAAElR,IAAI,CAAC,SAAU0M,CAAQ,EAC/F,OAAOA,EAAShI,IAAI,EAE5B,EAEAgH,EAAqBlM,SAAS,CAAC2R,sBAAsB,CAAG,SAAUC,CAAQ,EACtE,IAAM/E,EAAS,IAAI,CAACG,kBAAkB,CAAC,CAAC,GACxC,OAAO,IAAI,CAACP,aAAa,CAACQ,IAAI,CAAC,IAAI,CAACV,SAAS,CAACoF,sBAAsB,CAAEC,EAAU,CAAE/E,OAAQA,CAAO,GAAGrM,IAAI,CAAC,SAAU0M,CAAQ,EACvH,OAAOA,CACX,EACJ,EAEAhB,EAAqBlM,SAAS,CAAC6R,0BAA0B,CAAG,SAAUhF,CAAM,EAExE,OADAA,EAAS,IAAI,CAACG,kBAAkB,CAACH,GAC1B,IAAI,CAACJ,aAAa,CAACW,GAAG,CAAC,IAAI,CAACb,SAAS,CAACsF,0BAA0B,CAAE,CAAEhF,OAAQA,CAAO,EAC9F,EAEAX,EAAqBlM,SAAS,CAAC8R,UAAU,CAAG,SAAUjF,CAAM,EAExD,OADAA,EAAS,IAAI,CAACG,kBAAkB,CAACH,GAC1B,IAAI,CAACJ,aAAa,CAACW,GAAG,CAAC,IAAI,CAACb,SAAS,CAACuF,UAAU,CAAE,CAAEjF,OAAQA,CAAO,EAC9E,EAEAX,EAAqBlM,SAAS,CAAC+R,uBAAuB,CAAG,SAAUC,CAAE,EACjE,IAAMnF,EAAS,IAAI,CAACG,kBAAkB,CAAC,CAAElB,QAASkG,CAAG,GACrD,OAAO,IAAI,CAACvF,aAAa,CAACW,GAAG,CAAC,IAAI,CAACb,SAAS,CAACwF,uBAAuB,CAAE,CAAElF,OAAQA,CAAO,EAC3F,EAEAX,EAAqBlM,SAAS,CAACiS,8BAA8B,CAAG,SAAUpF,CAAM,EAC5E,OAAO,IAAI,CAACJ,aAAa,CAACQ,IAAI,CAAC,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC2F,sBAAsB,CAAE,IAAI,CAAClF,kBAAkB,CAACH,IAAU,KAC9I,EAEAX,EAAqBlM,SAAS,CAACmS,YAAY,CAAG,SAAUtF,CAAM,EAE1D,OADAA,EAAS,IAAI,CAACG,kBAAkB,CAACH,GAC1B,IAAI,CAACJ,aAAa,CAACQ,IAAI,CAAC,IAAI,CAACV,SAAS,CAAC4F,YAAY,CAAEtF,EAChE,EAEAX,EAAqBlM,SAAS,CAACoS,iBAAiB,CAAG,SAAUtG,CAAO,CAAEuG,CAAY,EAC9E,IAAMC,EAAQ,IAAI,CAACjF,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC6F,iBAAiB,CAAE,CAAEtG,QAASA,EAAS3C,OAAQkJ,EAAaE,EAAE,GAC7H,OAAO,IAAI,CAAC9F,aAAa,CAACQ,IAAI,CAACqF,EAAOD,EAC1C,EAEAnG,EAAqBlM,SAAS,CAACwS,YAAY,CAAG,WAC1C,OAAO,IAAI,CAACnF,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACkG,MAAM,CAAE,IAAI,CAACzF,kBAAkB,CAAC,CAAC,GAC7F,EAEAd,EAAqBlM,SAAS,CAAC0S,UAAU,CAAG,SAAUxN,CAAI,CAAE2H,CAAM,EAC9D,IAAMyE,EAAM,IAAI,CAACjE,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACmG,UAAU,CAAE,IAAI,CAAC1F,kBAAkB,CAACH,IACjG,OAAO,IAAI,CAACJ,aAAa,CAACQ,IAAI,CAACqE,EAAKpM,EACxC,EAEAgH,EAAqBlM,SAAS,CAAC2S,6BAA6B,CAAG,SAAU9F,CAAM,CAAE+F,CAAK,EAClF,OAAO,IAAI,CAACnG,aAAa,CAACQ,IAAI,CAAC,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACsG,aAAa,CAAE,IAAI,CAAC7F,kBAAkB,CAACH,IAAU+F,EACrI,EAEA1G,EAAqBlM,SAAS,CAAC8S,qBAAqB,CAAG,SAAUjG,CAAM,EACnE,OAAO,IAAI,CAACJ,aAAa,CAACoC,MAAM,CAAC,IAAI,CAACxB,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACwG,mBAAmB,CAAE,IAAI,CAAC/F,kBAAkB,CAACH,IAAU,KAC7I,EAEAX,EAAqBlM,SAAS,CAACgT,kBAAkB,CAAG,SAAUnG,CAAM,EAChE,OAAO,IAAI,CAACJ,aAAa,CAACW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACwG,mBAAmB,CAAE,IAAI,CAAC/F,kBAAkB,CAACH,IAAU,KAC1I,EAEAX,EAAqBlM,SAAS,CAACiT,mCAAmC,CAAG,SAAUpG,CAAM,EACjF,OAAO,IAAI,CAACJ,aAAa,CAACQ,IAAI,CAC1B,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC0G,mCAAmC,CAAE,IAAI,CAACjG,kBAAkB,CAACH,IAC9GA,EAER,EAEAX,EAAqBlM,SAAS,CAACkT,iBAAiB,CAAG,SAAUpH,CAAO,CAAEqH,CAAS,CAAEpH,CAAS,EACtF,OAAO,IAAI,CAACU,aAAa,CAACW,GAAG,CACzB,IAAI,CAACC,4BAA4B,CAC7B,IAAI,CAACd,SAAS,CAAC2G,iBAAiB,CAChC,IAAI,CAAClG,kBAAkB,CAAC,CAAElB,QAASA,EAASqH,UAAWA,EAAWpH,UAAWA,KAAAA,EAAmBA,EAAY,CAAE,IAG1H,EAEAG,EAAqBlM,SAAS,CAACoT,0BAA0B,CAAG,SAAUvG,CAAM,EACxE,OAAO,IAAI,CAACJ,aAAa,CAACuB,GAAG,CAAC,IAAI,CAACX,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC6G,0BAA0B,CAAE,IAAI,CAACpG,kBAAkB,CAACH,IAAUA,EACjJ,EAEAX,EAAqBlM,SAAS,CAACqT,mBAAmB,CAAG,SAAUxG,CAAM,EACjE,OAAO,IAAI,CAACJ,aAAa,CAACQ,IAAI,CAAC,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC8G,mBAAmB,CAAE,IAAI,CAACrG,kBAAkB,CAACH,IAAUA,EAC3I,EAEAX,EAAqBlM,SAAS,CAACsT,6BAA6B,CAAG,SAAUpO,CAAI,EACzE,OAAO,IAAI,CAACuH,aAAa,CAAC,CACtB8G,OAAQ,SACRjC,IAAK,IAAI,CAAC/E,SAAS,CAAC+G,6BAA6B,CACjDpO,KAAMA,EACNsO,QAAS,CAAE,eAAgB,kBAAmB,CAClD,EACJ,EAEAtH,EAAqBlM,SAAS,CAACyT,uCAAuC,CAAG,SAAUvO,CAAI,EACnF,OAAO,IAAI,CAACuH,aAAa,CAACQ,IAAI,CAAC,IAAI,CAACV,SAAS,CAACkH,uCAAuC,CAAEvO,EAC3F,EAEAgH,EAAqBlM,SAAS,CAAC0T,eAAe,CAAG,SAAU5H,CAAO,EAC9D,OAAO,IAAI,CAACW,aAAa,CAACW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACmH,eAAe,CAAE,CAAE5H,QAASA,CAAQ,GACvH,EAEAI,EAAqBlM,SAAS,CAAC2T,oBAAoB,CAAG,WAClD,OAAO,IAAI,CAAClH,aAAa,CAACuB,GAAG,CAAC,IAAI,CAACzB,SAAS,CAACqH,wBAAwB,CACzE,EAEA1H,EAAqBlM,SAAS,CAAC6T,qBAAqB,CAAG,WACnD,OAAO,IAAI,CAACpH,aAAa,CAACoC,MAAM,CAAC,IAAI,CAACtC,SAAS,CAACqH,wBAAwB,CAC5E,EAEA1H,EAAqBlM,SAAS,CAAC8T,gBAAgB,CAAG,WAC9C,OAAO,IAAI,CAACrH,aAAa,CAACW,GAAG,CAAC,IAAI,CAACb,SAAS,CAACwH,kBAAkB,CACnE,EAEA7H,EAAqBlM,SAAS,CAACgU,gBAAgB,CAAG,SAAUlI,CAAO,CAAExI,CAAM,EACvE,OAAO,IAAI,CAACmJ,aAAa,CAACQ,IAAI,CAAC,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACyH,gBAAgB,CAAE,IAAI,CAAChH,kBAAkB,CAAC,CAAElB,QAASA,CAAQ,IAAKxI,EACtJ,EAEA4I,EAAqBlM,SAAS,CAACiU,gBAAgB,CAAG,SAAUnI,CAAO,CAAEoI,CAAU,EAC3E,OAAO,IAAI,CAACzH,aAAa,CAACuB,GAAG,CACzB,IAAI,CAACX,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC0H,gBAAgB,CAAE,IAAI,CAACjH,kBAAkB,CAAC,CAAElB,QAASA,CAAQ,IAC9GoI,EAER,EAEAhI,EAAqBlM,SAAS,CAACmU,gBAAgB,CAAG,SAAUrI,CAAO,CAAEsI,CAAQ,EACzE,OAAO,IAAI,CAAC3H,aAAa,CAACoC,MAAM,CAC5B,IAAI,CAACxB,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC4H,gBAAgB,CAAE,IAAI,CAACnH,kBAAkB,CAAC,CAAElB,QAASA,EAASsI,SAAUA,CAAS,IAE1I,EAEAlI,EAAqBlM,SAAS,CAACqU,aAAa,CAAG,SAAUvI,CAAO,EAC5D,OAAO,IAAI,CAACW,aAAa,CAACW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC8H,aAAa,CAAE,IAAI,CAACrH,kBAAkB,CAAC,CAAElB,QAASA,CAAQ,IAC7I,EAEAI,EAAqBlM,SAAS,CAACsU,2BAA2B,CAAG,SAAUpP,CAAI,CAAE2H,CAAM,EAC/E,IAAMyE,EAAM,IAAI,CAACjE,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC+H,2BAA2B,CAAE,IAAI,CAACtH,kBAAkB,CAACH,IAClH,OAAO,IAAI,CAACJ,aAAa,CAACQ,IAAI,CAACqE,EAAKpM,GAAM1E,IAAI,CAAC,GAAc0M,EAAShI,IAAI,CAC9E,EAEAgH,EAAqBlM,SAAS,CAACuU,0BAA0B,CAAG,SAAUzI,CAAO,CAAE3C,CAAM,CAAEqL,CAAU,EAC7F,IAAMlD,EAAM,IAAI,CAACjE,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACkI,0BAA0B,CAAE,IAAI,CAACzH,kBAAkB,CAAC,CAAElB,QAASA,EAAS3C,OAAQA,CAAO,IACpJ,OAAO,IAAI,CAACsD,aAAa,CAACuB,GAAG,CAACsD,EAAKkD,GAAYhU,IAAI,CAAC,GAAc0M,EAAShI,IAAI,CACnF,EAEAgH,EAAqBlM,SAAS,CAAC0U,0BAA0B,CAAG,SAAU5I,CAAO,CAAE3C,CAAM,EACjF,OAAO,IAAI,CAACsD,aAAa,CAACoC,MAAM,CAC5B,IAAI,CAACxB,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACkI,0BAA0B,CAAE,IAAI,CAACzH,kBAAkB,CAAC,CAAElB,QAASA,EAAS3C,OAAQA,CAAO,IAEhJ,EAEA+C,EAAqBlM,SAAS,CAAC2U,mBAAmB,CAAG,SAAU7I,CAAO,CAAE3C,CAAM,CAAEqL,CAAU,EACtF,IAAMlD,EAAM,IAAI,CAACjE,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACqI,mBAAmB,CAAE,IAAI,CAAC5H,kBAAkB,CAAC,CAAElB,QAASA,EAAS3C,OAAQA,CAAO,IAC7I,OAAO,IAAI,CAACsD,aAAa,CAACuB,GAAG,CAACsD,EAAKkD,GAAYhU,IAAI,CAAC,GAAc0M,EAAShI,IAAI,CACnF,EAEAgH,EAAqBlM,SAAS,CAAC6U,mBAAmB,CAAG,SAAU/I,CAAO,CAAE3C,CAAM,EAC1E,OAAO,IAAI,CAACsD,aAAa,CAACoC,MAAM,CAC5B,IAAI,CAACxB,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACqI,mBAAmB,CAAE,IAAI,CAAC5H,kBAAkB,CAAC,CAAElB,QAASA,EAAS3C,OAAQA,CAAO,IAEzI,EAEA+C,EAAqBlM,SAAS,CAAC8U,oBAAoB,CAAG,SAAUhJ,CAAO,CAAE3C,CAAM,EAC3E,OAAO,IAAI,CAACsD,aAAa,CACpBQ,IAAI,CAAC,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAACuI,oBAAoB,CAAE,IAAI,CAAC9H,kBAAkB,CAAC,CAAElB,QAASA,EAAS3C,OAAQA,CAAO,KACvI3I,IAAI,CAAC,GACK0M,EAAShI,IAAI,CAEhC,EAEAgH,EAAqBlM,SAAS,CAAC+U,kBAAkB,CAAG,SAAUC,CAAQ,EAClE,OAAO,IAAI,CAACvI,aAAa,CAACQ,IAAI,CAAC,IAAI,CAACV,SAAS,CAACwI,kBAAkB,CAAEC,EACtE,EAEA9I,EAAqBlM,SAAS,CAACiV,eAAe,CAAG,WAC7C,OAAO,IAAI,CAACxI,aAAa,CAACW,GAAG,CAAC,IAAI,CAACb,SAAS,CAAC0I,eAAe,CAChE,EAEA/I,EAAqBlM,SAAS,CAACkV,iBAAiB,CAAG,SAAUpJ,CAAO,EAChE,OAAO,IAAI,CAACW,aAAa,CAACW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC2I,iBAAiB,CAAE,CAAEpJ,QAASA,CAAQ,GACzH,EAEAI,EAAqBlM,SAAS,CAACmV,eAAe,CAAG,SAAUrJ,CAAO,EAC9D,OAAO,IAAI,CAACW,aAAa,CAACW,GAAG,CAAC,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC4I,eAAe,CAAE,CAAErJ,QAASA,CAAQ,GACvH,EAEAI,EAAqBlM,SAAS,CAACoV,cAAc,CAAG,SAAUtJ,CAAO,EAC7D,OAAO,IAAI,CAACuB,4BAA4B,CAAC,IAAI,CAACd,SAAS,CAAC8I,WAAW,CAAE,IAAI,CAACrI,kBAAkB,CAAC,CAAElB,QAASA,CAAQ,GACpH,EAOAI,EAAqBlM,SAAS,CAACgN,kBAAkB,CAAG,SAAUH,CAAM,EAChE,GAAI,CAAC,IAAI,CAACL,WAAW,CACjB,OAAOK,EAGX,IAAMhG,EAAOY,OAAOZ,IAAI,CAAC,IAAI,CAAC2F,WAAW,EACzC,IAAK,IAAI8I,EAAI,EAAGA,EAAIzO,EAAKxF,MAAM,CAAEiU,IAAK,CAClC,IAAMrU,EAAM4F,CAAI,CAACyO,EAAE,CACnB,IAAK,IAAIpR,EAAI,EAAGA,EAAI,IAAI,CAACsI,WAAW,CAACvL,EAAI,CAACI,MAAM,CAAE6C,IAAK,CACnD,IAAIqR,EAAa,IAAI,CAAC/I,WAAW,CAACvL,EAAI,CAACiD,EAAE,MACT,IAA5B2I,CAAM,CAAC0I,EAAW,EAClB1I,CAAAA,CAAM,CAAC0I,EAAW,CAAG,IAAI,CAACnJ,YAAY,CAACmJ,EAAW,CAE1D,CACJ,CAEA,OAAO1I,CACX,EAQAX,EAAqBlM,SAAS,CAACqN,4BAA4B,CAAG,SAAUiF,CAAK,CAAEzF,CAAM,EACjF,IAAIhG,EAAOY,OAAOZ,IAAI,CAACgG,GAEvB,IAAK,IAAI3I,EAAI,EAAGA,EAAI2C,EAAKxF,MAAM,CAAE6C,IAAK,CAClC,IAAIjD,EAAM4F,CAAI,CAAC3C,EAAE,CAEwB,KAArCoO,EAAMxO,OAAO,CAAC,KAAO7C,EAAM,OAC3BqR,CAAAA,EAAQA,EAAMkD,OAAO,CAAC,KAAOvU,EAAM,KAAM4L,CAAM,CAAC5L,EAAI,EAE5D,CAEA,OAAOqR,CACX,C,kBC5mBAjO,E,OAAAA,CAAUA,CAACqI,QAAQ,CAAC,uBAbb,MACHjI,aAAc,CACV,IAAI,CAAC4F,MAAM,CAAG,CACVoL,wBAAyB,GACzBC,qBAAsB,EAAE,CAEhC,CAEA5I,MAAO,CACH,OAAO,IAAI,CAACzC,MAAM,CAE1B,E,iCCFA,SAASsL,EAAcC,CAAI,CAAEC,CAAe,EACxC,MAAO,CACHnM,SCbO,8uBDcPoM,SAAU,IACVC,MAAO,CACHC,MAAO,IACP1E,IAAK,IACL2E,cAAe,IACfC,UAAW,IACXC,kBAAmB,GACvB,EACAxM,WAAY,0BACZyM,aAAc,KACdC,iBAAkB,EACtB,CACJ,CAEA,SAASC,EAAwBC,CAAU,CAAEC,CAAO,CAAEzO,CAAoB,CAAE0O,CAAa,EACrF,IAAI,CAACC,QAAQ,CAAG,CACZC,UAAWJ,EAAWK,UAAU,CAACpY,IAAI,CAAC+X,GACtCE,cAAeA,CACnB,EAEA,IAAI,CAACI,OAAO,CAAG9O,EAAqBS,SAAS,CAAC,uCAAwC,CAClFsO,OAAQ,IAAI,CAACd,KAAK,CAACe,OAAO,CAC1BC,OAAQ,IAAI,CAAChB,KAAK,CAACgB,MAAM,CACzBC,KAAMT,EAAQ,cAAc,IAAI,CAACR,KAAK,CAACkB,eAAe,CAAE,YACxDC,KAAMX,EAAQ,cAAc,IAAI,CAACR,KAAK,CAACkB,eAAe,CAAE,aAC5D,GAEA,IAAI,CAACE,cAAc,CAAGrP,EAAqBS,SAAS,CAAC,qCAAsC,CACvF6O,WAAY,IAAI,CAACpB,aAAa,CAAG,EACjCqB,MAAO,IAAI,CAACpB,SAAS,GAGzB,IAAI,CAACqB,aAAa,CAAGxP,EAAqBS,SAAS,CAAC,qCAAsC,CACtFgP,cAAe,IAAI,CAACvB,aAAa,EAAI,EAAI,IAAI,CAACmB,cAAc,CAAG,GAC/DK,WAAY,IAAI,CAACzB,KAAK,CAACyB,UAAU,CACjCC,UAAW,IAAI,CAAChB,QAAQ,CAACD,aAAa,CAACkB,gBAAgB,CAAC,IAAI,CAAC3B,KAAK,CAAC4B,aAAa,EAChFd,OAAQ,IAAI,CAACd,KAAK,CAACe,OAAO,CAACc,WAAW,GACtCb,OAAQ,IAAI,CAAChB,KAAK,CAACgB,MAAM,CACzBC,KAAMT,EAAQ,cAAc,IAAI,CAACR,KAAK,CAACkB,eAAe,CAAE,YACxDC,KAAMX,EAAQ,cAAc,IAAI,CAACR,KAAK,CAACkB,eAAe,CAAE,aAC5D,GAEA,IAAI,CAACY,mBAAmB,CAAG/P,EAAqBS,SAAS,CAAC,qCAAsC,CAC5FiP,WAAY,IAAI,CAACzB,KAAK,CAACyB,UAAU,CACjCC,UAAW,IAAI,CAAChB,QAAQ,CAACD,aAAa,CAACkB,gBAAgB,CAAC,IAAI,CAAC3B,KAAK,CAAC4B,aAAa,CACpF,EACJ,C,kBAvDAvT,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiBpC,GACtCA,EAAcpR,OAAO,CAAG,CAAC,OAAQ,kBAAkB,CAEnDF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,0BAA2B2M,GACjDA,EAAwB/R,OAAO,CAAG,CAAC,aAAc,UAAW,uBAAwB,gBAAgB,CAqDpG+R,EAAwBtW,SAAS,CAACgY,kBAAkB,CAAG,SAAUlM,CAAO,EACpE,IAAI,CAAC4K,QAAQ,CAACC,SAAS,CAAC,yBAA0B,CAC9CsB,MAAO,aACPnM,QAASA,CACb,EACJ,C,iCE5DA,SAASoM,EAAgB/L,CAAK,CAAEgM,CAAE,CAAEtC,CAAe,CAAEuC,CAAoB,EAGrE,IAAI,CAACC,IAAI,CAWT,SAAcvM,CAAO,EACjB,OAAOK,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,+BAAiCxM,GAAStL,IAAI,CAAC,SAAU0M,CAAQ,EAC7G,OAAOA,EAAShI,IAAI,EAE5B,EAdA,IAAI,CAACqT,MAAM,CAoBX,SAAgBzM,CAAO,EACnB,OAAOK,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,+BAAiCxM,GAAStL,IAAI,CAAC,SAAU0M,CAAQ,EAC7G,OAAOA,EAAShI,IAAI,EAE5B,EAvBA,IAAI,CAACsT,eAAe,CA6BpB,SAAyB1M,CAAO,EAC5B,OAAOsM,EAAqBlD,iBAAiB,CAACpJ,GAAStL,IAAI,CAAC,SAAU0M,CAAQ,EAC1E,OAAOA,EAAShI,IAAI,EAE5B,EAhCA,IAAI,CAACuT,aAAa,CAsClB,SAAuB3M,CAAO,EAC1B,OAAOK,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,iCAAmCxM,GAAStL,IAAI,CAAC,SAAU0M,CAAQ,EAC/G,OAAOA,EAAShI,IAAI,EAE5B,CACJ,C,kBApDAb,EAAAA,CAAUA,CAACC,OAAO,CAAC,kBAAmB4T,GACtCA,EAAgB3T,OAAO,CAAG,CAAC,QAAS,KAAM,kBAAmB,uBAAuB,E,kDCoBpF,SAASmU,EACLnC,CAAU,CACV4B,CAAE,CACFQ,CAAO,CACPC,CAAS,CACTC,CAAS,CACTX,CAAe,CACfY,CAAK,CACLjD,CAAe,CACf9N,CAAoB,CACpB0O,CAAa,CACbsC,CAAoB,CACpBC,CAAU,CACVC,CAAc,EAId,IAAI,CAACZ,IAAI,CAAGA,EACZ,IAAI,CAACE,MAAM,CAAGA,EACd,IAAI,CAACE,aAAa,CAAGA,EACrB,IAAI,CAACD,eAAe,CAyHpB,SAAyB1M,CAAO,EAC5B,OAAOoM,EAAgBM,eAAe,CAAC1M,EAC3C,EA1HA,IAAI,CAACoN,SAAS,CAiId,SAAmBpN,CAAO,CAAEuE,CAAQ,EAEhC,OADA4I,EAAeE,IAAI,CAAC,OAAQ,CAAC,gBAAgB,EAAE9I,EAAS,CAAC,EAClDgI,EAAKvM,GAAStL,IAAI,CAAC,SAAU4Y,CAAU,EAE1C,IAAIC,EAAwB,GACxBC,EAAiBX,EAAQY,cAAc,CAACC,OAAO,CAACC,EAAiB3N,IAErE,GAAI,CAACsN,EACD,OAAOjB,EAAGpT,MAAM,GACb,GAAIqU,CAA2B,IAA3BA,EAAWM,WAAW,CAC7B,OAAOvB,EAAGpT,MAAM,CAACqU,GACd,GAAIA,EAAWO,iBAAiB,EAAIL,SAAAA,EAIvC,IAAIM,EA8DR,CAACC,EAAqBrW,QAAQ,CAhEkC6M,IAoErDyJ,EAAsBtW,QAAQ,CApEcsI,MAyE3DgO,EAAsBhU,IAAI,CAzEiCgG,GA0EpD,IAxEwBwN,OAAAA,EACnB,OAAOnB,EAAGpT,MAAM,CAACqU,EACrB,MAEAC,EAAwB,GACxBU,EAA4BjO,GAGhC,OAAOkO,EAAiBlO,EAASuE,EAAUgJ,EAC/C,EACJ,EAzJA,IAAI,CAACW,gBAAgB,CAAGA,EACxB,IAAI,CAACC,iBAAiB,CAAGA,EACzB,IAAI,CAACC,wBAAwB,CA4N7B,SAAkCpO,CAAO,EACrC,OAAOgO,EAAsBtW,QAAQ,CAACsI,EAC1C,EA7NA,IAAI,CAACiO,2BAA2B,CAAGA,EACnC,IAAI,CAACI,gBAAgB,CAAGA,EACxB,IAAI,CAACC,oBAAoB,CAsQzB,WACI,IAAIC,EAAW,EAAE,CAOjB,OAJAC,EAAYnX,KAAK,GAAGR,OAAO,CAAC,SAAU0V,CAAI,EACtCgC,EAASvU,IAAI,CAACuS,EAAKkC,eAAe,GACtC,GAEOpC,EAAGqC,GAAG,CAACH,EAClB,EA3QA,IAAIC,EAAc,EAAE,CAChBR,EAAwB,EAAE,CAC1BD,EAAuB,CAACY,EAAAA,CAAeA,CAACC,KAAK,CAACC,iBAAiB,CAAEF,EAAAA,CAAeA,CAACC,KAAK,CAACE,QAAQ,CAAC,CAapG,SAASC,EAAW7I,CAAE,CAAE8I,CAAU,CAAEzB,CAAqB,CAAE0B,CAAQ,CAAEC,CAAQ,EACzE,IAAI,CAAChJ,EAAE,CAAGA,EACV,IAAI,CAAC8I,UAAU,CAAGA,EAClB,IAAI,CAACC,QAAQ,CAAGA,EAChB,IAAI,CAACC,QAAQ,CAAGA,EAChB,IAAI,CAACC,SAAS,CAAG,CACbC,MAAO,KACPC,QAAS,IACb,EAEAxC,EAAQY,cAAc,CAAC6B,OAAO,CAAC,IAAI,CAACN,UAAU,CAAEzB,EACpD,CA6DA,SAAShB,EAAKvM,CAAO,EACjB,OAAOoM,EAAgBG,IAAI,CAACvM,GAAStL,IAAI,CAAC,SAAU0E,CAAI,EACpD,OAAOA,GAAciT,EAAGpT,MAAM,EAClC,EACJ,CAMA,SAASwT,EAAOzM,CAAO,EACnB,IAAIuP,EAAapB,EAAkBnO,GAInC,OAHIuP,GACAA,EAAWC,MAAM,GAEdpD,EAAgBK,MAAM,CAACzM,EAClC,CAgDA,SAAS2M,EAAc3M,CAAO,CAAEuE,CAAQ,EAEpC,OAAO6H,EAAgBO,aAAa,CAAC3M,GAAStL,IAAI,CAAC,SAAU2a,CAAO,EAEhE,GAAIA,CAAY,IAAZA,EACA,OAAOA,EAIX,IAAII,EAAY,eAqBhBF,EApBI,MAAOG,CAqBI,QADfH,EAAapB,EApBSnO,KAsBtBuP,EAAWC,MAAM,GAGrBrC,EAAeE,IAAI,CAAC,OAAQ,CAAC,kBAAkB,EAzBZ9I,EAyBuB,CAAC,EACpD0I,EAAqB0C,sBAAsB,CA1BxB3P,GA0BkCtL,IAAI,CAACkb,EAA0Bld,IAAI,CAAC,KAAM,GA1BnE6R,GA0BoFqL,EAA0Bld,IAAI,CAAC,KAAM,GA1BzH6R,KAAU7P,IAAI,CAAC2X,EAAGpT,MAAM,CACvD,EAGA,OAAOsT,EAAKvM,GAAStL,IAAI,CAAC,SAAU4Y,CAAU,EAC1C,GAAI,CAACA,EAAWM,WAAW,CAEvB,OAAO6B,GAEf,EAAGA,EACP,EACJ,CAgDA,SAASxB,EAA4BjO,CAAO,EACxCgO,EAAsBzS,MAAM,CAACyE,EACjC,CAEA,SAAS2N,EAAiB3N,CAAO,EAC7B,MAAO,mBAAqBA,CAChC,CASA,SAASkO,EAAiBlO,CAAO,CAAEuE,CAAQ,CAAEgJ,CAAqB,EAC9D,IAAI0B,EAAWnC,EAAUH,EAAcja,IAAI,CAAC,KAAMsN,EAASuE,GAzO5C,MA0OXyK,EAAarB,EAAiB3N,GAC9BuP,EAAa,IAAIR,EAAW/O,EAASgP,EAAYzB,EAAuB0B,EAAUZ,GAKtF,OAHAkB,EAAWM,oBAAoB,GAC/BrB,EAAYxU,IAAI,CAACuV,GAEVA,CACX,CAMA,SAASpB,EAAkBnO,CAAO,EAC9B,IAAIpI,EAAQ4W,EAAYsB,kBAAkB,CAAC,KAAM9P,GACjD,OAAOpI,KAAAA,EAAe4W,CAAW,CAAC5W,EAAM,CAAG,IAC/C,CAoBA,SAASyW,EAAiBrO,CAAO,EAC7B,IAAIpI,EAAQ4W,EAAYsB,kBAAkB,CAAC,KAAM9P,UAEjD,KAAIpI,IACA4W,EAAYvU,MAAM,CAACrC,EAAO,GAC1BqW,EAA4BjO,GACrB,GAGf,CAMA,SAAS4P,EAA0BG,CAAgB,CAAExL,CAAQ,EACzD,IAAIyL,EAAavF,EAAWwF,IAAI,CAAC,IAkBjC,OAhBAD,EAAW/T,oBAAoB,CAAGA,EAClC+T,EAAWD,gBAAgB,CAAGA,EAC9BC,EAAWE,UAAU,CAAG,CACpBC,UAAWxF,EAAcyF,iBAAiB,CAAC7L,GACrCtI,EAAqBS,SAAS,CAAC,2CAC/BT,EAAqBS,SAAS,CAAC,wCACrC2T,gBAAiB1F,EAAcyF,iBAAiB,CAAC7L,GAC3CtI,EAAqBS,SAAS,CAAC,iDAC/BT,EAAqBS,SAAS,CAAC,6CACzC,EACAsT,EAAW3d,OAAO,CAAG,WAEjB0a,EAAUvH,GAAG,CAAC0H,EAAWoD,sBAAsB,CAACvD,EAAUvH,GAAG,KAC7DwK,EAAWO,QAAQ,EACvB,EAEOvD,EAAMwD,QAAQ,CAAC,CAClBvG,MAAO+F,EACPS,WAAY,GACZC,aAAc,GACdC,YAAa5G,EAAgB6G,yBAAyB,CAAG,wDAC7D,EACJ,CA7RA7B,EAAW7a,SAAS,CAAC2b,oBAAoB,CAAG,WAsBxC,OApBA,IAAI,CAACV,SAAS,CAACC,KAAK,CAAG3E,EAAWoG,GAAG,CACjC,oBACA,YAEI,IAAI,CAAC1B,SAAS,CAACC,KAAK,GACpB,IAAI,CAACD,SAAS,CAACC,KAAK,CAAG,KAGvB,IAAI,CAACD,SAAS,CAACE,OAAO,CAAG5E,EAAWoG,GAAG,CACnC,sBACA,YAEI,IAAI,CAAC1B,SAAS,CAACE,OAAO,GAEtB,IAAI,CAACZ,eAAe,EACxB,GAAE/b,IAAI,CAAC,IAAI,EAEnB,GAAEA,IAAI,CAAC,IAAI,GAGR,IAAI,EAGfqc,EAAW7a,SAAS,CAACsb,MAAM,CAAG,WAmB1B,OAlB6B,OAAzB,IAAI,CAACL,SAAS,CAACC,KAAK,GACpB,IAAI,CAACD,SAAS,CAACC,KAAK,GACpB,IAAI,CAACD,SAAS,CAACC,KAAK,CAAG,MAGI,OAA3B,IAAI,CAACD,SAAS,CAACE,OAAO,GACtB,IAAI,CAACF,SAAS,CAACE,OAAO,GACtB,IAAI,CAACF,SAAS,CAACE,OAAO,CAAG,MAI7BvC,EAAU0C,MAAM,CAAC,IAAI,CAACP,QAAQ,EAC9B,IAAI,CAACA,QAAQ,CAAG,KAEM,KAAK,IAAvB,IAAI,CAACC,QAAQ,EACb,IAAI,CAACA,QAAQ,CAAC,IAAI,CAAChJ,EAAE,EAGlB,IAAI,EAGf6I,EAAW7a,SAAS,CAACua,eAAe,CAAG,WAGnC,OAFA,IAAI,CAACe,MAAM,GACX3C,EAAQY,cAAc,CAACqD,UAAU,CAAC,IAAI,CAAC9B,UAAU,EAC1CvC,EAAO,IAAI,CAACvG,EAAE,CACzB,CA2OJ,C,4CA1WA3N,EAAAA,CAAUA,CAACC,OAAO,CAAC,qBAAsBoU,GACzCA,EAAmBnU,OAAO,CAAG,CACzB,aACA,KACA,UACA,YACA,YACA,kBACA,QACA,kBACA,uBACA,gBACA,uBACA,aACA,iBACH,E,oFCfDF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,+BAAgCkT,GACtDA,EAA6BtY,OAAO,CAAG,CACnC,SACA,YACA,WACA,eACA,qBACA,aACA,uBACA,iBACA,kBACA,gBACH,CAGD,IAAIsU,EAAY,KACZxS,EAAW,KACX+F,EAAe,KACfsM,EAAqB,KACrBM,EAAa,KACb8D,EAAiB,KAErB,SAASD,EAA6BE,CAAM,CAAEC,CAAW,CAAEC,CAAU,CAAEC,CAAc,CAAEC,CAAoB,CAAEC,CAAY,CAAErV,CAAoB,CAAEsV,CAAgB,CAAExH,CAAe,CAAEY,CAAa,EAC7LiC,EAAqByE,EACrBnE,EAAaoE,EACbvE,EAAYmE,EACZ3W,EAAW4W,EACX7Q,EAAe8Q,EACfJ,EAAiBO,EAEjB,IAAI,CAACC,cAAc,CAAG7G,EACtB,IAAI,CAAC3K,OAAO,CAAGiR,EAAOjR,OAAO,CAC7B,IAAI,CAACuE,QAAQ,CAAG0M,EAAO1M,QAAQ,CAC/B,IAAI,CAACtI,oBAAoB,CAAGA,EAC5B,IAAI,CAACwV,OAAO,CAAG,GACf,IAAI,CAACC,UAAU,CAAG,GAClB,IAAI,CAACC,YAAY,CAAGV,EAAOU,YAAY,CACvC,IAAI,CAACC,WAAW,CAAGX,EAAOW,WAAW,CACrC,IAAI,CAACC,SAAS,CAAGZ,EAAOY,SAAS,CAACnf,IAAI,CAACue,GACvC,IAAI,CAACa,SAAS,CAAGb,EAAOa,SAAS,CACjC,IAAI,CAACC,UAAU,CAAGd,EAAOc,UAAU,CACnC,IAAI,CAACC,qBAAqB,CAAGjI,EAAgB6G,yBAAyB,CAAG,8EAEzE,IAAMtM,EAAU,CAAC,IAAI,CAACkN,cAAc,CAACpB,iBAAiB,CAAC,IAAI,CAAC7L,QAAQ,CAIpE,KAAI,CAAC0N,aAAa,CAAG,IAAI,CAAChW,oBAAoB,CAACS,SAAS,CAH/B4H,EAAU,sCAAwC,0CAI3E,IAAI,CAAC4N,gBAAgB,CAAG,IAAI,CAACjW,oBAAoB,CAACS,SAAS,CAH/B4H,EAAU,yCAA2C,6CAKjF2M,EAAOU,YAAY,CAAG,KACtBV,EAAOW,WAAW,CAAG,KACrBX,EAAOa,SAAS,CAAG,KACnBb,EAAOc,UAAU,CAAG,KACpB,IAAI,CAACI,wBAAwB,GAC7BlB,EAAOJ,GAAG,CAAC,WAAY,IAAI,CAACuB,SAAS,CAAC1f,IAAI,CAAC,IAAI,GAE/C,IAAI,CAAC2f,iBAAiB,CAAG,IAAI,CAACC,kBAAkB,CAAC5f,IAAI,CAAC,IAAI,EAC1D,IAAI,CAAC6f,OAAO,CAAG,IAAI,CAACC,QAAQ,CAAC9f,IAAI,CAAC,IAAI,EACtC,IAAI,CAAC+f,QAAQ,CAAG,IAAI,CAACC,SAAS,CAAChgB,IAAI,CAAC,IAAI,EACxC,IAAI,CAAC8c,MAAM,CAAG,IAAI,CAACmD,OAAO,CAACjgB,IAAI,CAAC,IAAI,CACxC,CC5DA,SAASkgB,IACL,MAAO,CACHhV,SAAU,SAAUqT,CAAM,CAAE4B,CAAM,EAC9B,MAAOA,SAAAA,EAAOC,WAAW,CCZtB,+uBCAA,62BFaP,EACA9I,SAAU,IACVC,MAAO,GACPpM,WAAY,+BACZyM,aAAc,IAClB,CACJ,CGVA,SAASyI,EAAgC1G,CAAE,CAAEU,CAAS,CAAEhD,CAAe,CAAE9N,CAAoB,CAAE+W,CAAkB,CAAEhG,CAAK,CAAExM,CAAU,CAAEmK,CAAa,CAAEwC,CAAc,EAC/J,IAAI,CAAC8F,GAAG,CAAG5G,EACX,IAAI,CAAC6G,UAAU,CAAGnG,EAClB,IAAI,CAACoG,gBAAgB,CAAGpJ,EACxB,IAAI,CAACqJ,qBAAqB,CAAGnX,EAC7B,IAAI,CAACoX,mBAAmB,CAAGL,EAC3B,IAAI,CAACM,MAAM,CAAGtG,EACd,IAAI,CAACuG,WAAW,CAAG/S,EACnB,IAAI,CAACgR,cAAc,CAAG7G,EACtB,IAAI,CAAC6I,eAAe,CAAGrG,CAC3B,CJoDA4D,EAA6B7c,SAAS,CAACie,wBAAwB,CAAG,WAC9D,IAAI,CAACsB,mBAAmB,CAAG,IAAI,CAAC7B,WAAW,EAAI,IAAI,CAAC5R,OAAO,GAAK,IAAI,CAAC4R,WAAW,CAAC8B,OAAO,EAG5F3C,EAA6B7c,SAAS,CAACyf,UAAU,CAAG,WAEhD,OADA,IAAI,CAAC5B,UAAU,GACRhF,EAAU6G,IAAI,CAAC1G,EAAW2G,SAAS,CAAC,IAAI,CAAC7T,OAAO,CAAE,KAAM,IACnE,EAEA+Q,EAA6B7c,SAAS,CAACwe,SAAS,CAAG,WAI/C,OAHA,IAAI,CAACjB,OAAO,CAAG,GAGR7E,EAAmBQ,SAAS,CAAC,IAAI,CAACpN,OAAO,CAAE,IAAI,CAACuE,QAAQ,EAAE7P,IAAI,CACjE,YACI,IAAI,CAACmd,SAAS,GACd,IAAI,CAACC,SAAS,EAClB,GAAEpf,IAAI,CAAC,IAAI,EACX,UAAU4a,CAAU,EAKhB,OAJIA,GAAcA,CAA2B,IAA3BA,EAAWM,WAAW,EACpC,IAAI,CAACkG,gBAAgB,CAACxG,GAGnB,IAAI,CAACyG,kBAAkB,CAAC,GACnC,GAAErhB,IAAI,CAAC,IAAI,EAEnB,EAKAqe,EAA6B7c,SAAS,CAAC4f,gBAAgB,CAAG,SAAUxG,CAAU,EACtE,IAAI,CAACqE,YAAY,CAAChM,MAAM,GAAK2H,EAAW0G,QAAQ,CAACrO,MAAM,EACvD,KAAI,CAACgM,YAAY,CAAGrE,EAAW0G,QAAQ,EAGvC,IAAI,CAACpC,WAAW,CAAC8B,OAAO,GAAKpG,EAAW2G,qBAAqB,CAACP,OAAO,GACrE,IAAI,CAAC9B,WAAW,CAAGtE,EAAW2G,qBAAqB,CACnD,IAAI,CAAC9B,wBAAwB,GAErC,EAMApB,EAA6B7c,SAAS,CAAC6f,kBAAkB,CAAG,SAAUrC,CAAU,EAC5E,OAAOnX,EACH,YACI,IAAI,CAACkX,OAAO,CAAG,GACf,IAAI,CAACC,UAAU,CAAGA,CACtB,GAAEhf,IAAI,CAAC,IAAI,EACX,KAER,EAEAqe,EAA6B7c,SAAS,CAACoe,kBAAkB,CAAG,WAGxD,OAFAvF,EAAUvH,GAAG,CAACwL,EAAekD,kBAAkB,CAAC5T,EAAa6T,SAAS,GAAKjH,EAAWoD,sBAAsB,CAACvD,EAAU6G,IAAI,KAC3H,IAAI,CAAC7B,UAAU,GACR,IAAI,CAACF,SAAS,EACzB,EAEAd,EAA6B7c,SAAS,CAACye,OAAO,CAAG,WAE7C,OADA,IAAI,CAACZ,UAAU,GACR,IAAI,CAACF,SAAS,EACzB,EAEAd,EAA6B7c,SAAS,CAACse,QAAQ,CAAG,WAC9C,IAAI,CAACmB,UAAU,GACf,IAAI,CAAChB,OAAO,EAChB,EAEA5B,EAA6B7c,SAAS,CAACke,SAAS,CAAG,WAC/C,IAAI,CAACP,SAAS,CAAG,IACrB,E,SC3IAtZ,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,qBAAsB2G,GAC3CA,EAAmBna,OAAO,CAAG,CAAC,OAAQ,kBAAkB,C,SGCxDsa,EAAgCta,OAAO,CAAG,CAAC,KAAM,YAAa,kBAAmB,uBAAwB,qBAAsB,QAAS,aAAc,gBAAiB,iBAAiB,CAoBxLsa,EAAgC7e,SAAS,CAACkgB,kBAAkB,CAAG,SAAUpU,CAAO,CAAEuE,CAAQ,CAAEiB,CAAG,EAE3F,OADA,IAAI,CAACgO,eAAe,CAACpE,KAAK,CAAC7K,EAAU,0BAC9B,IAAI,CAAC8O,mBAAmB,CAACjG,SAAS,CAACpN,EAASuE,EAAUiB,GAAK9Q,IAAI,CAClE,SAAU2f,CAAY,EAClB,OAAOA,CACX,EACA,UAAU/G,CAAU,EAChB,GAAIA,GACA,GAAIA,EAAWM,WAAW,EAAIN,EAAWO,iBAAiB,CAAE,CAExD,IAAIyG,EAAW,IAAI,CAACf,WAAW,CAACM,SAAS,CAAC7T,EAAS,GAAI,IACvD,IAAI,CAACkT,UAAU,CAACU,IAAI,CAACU,GAAU5K,OAAO,EAE1C,MAAO,GAAI4D,EAAWiH,oBAAoB,CAEtC,OAAO,IAAI,CAACC,kBAAkB,CAACxU,EAASuE,EAAU+I,EAD9B,6FACyD5Y,IAAI,CAC7E,YACS,IAAI,CAAC6e,WAAW,CAACkB,wBAAwB,CAACzU,EAASuE,IACpD,IAAI,CAAC2O,UAAU,CAACU,IAAI,CAAC,IAAI,CAACL,WAAW,CAACM,SAAS,CAAC7T,EAASuE,GAEjE,GAAE7R,IAAI,CAAC,IAAI,GAIvB,OAAO,IAAI,CAACugB,GAAG,CAACha,MAAM,EAC1B,GAAEvG,IAAI,CAAC,IAAI,EAEnB,EASAqgB,EAAgC7e,SAAS,CAACwgB,2BAA2B,CAAG,SAAU1U,CAAO,CAAEuE,CAAQ,CAAEiB,CAAG,EAEpG,OADA,IAAI,CAACgO,eAAe,CAACnG,IAAI,CAAC,OAAQ,CAAC,eAAe,EAAE9I,EAAS,6BAA6B,CAAC,EACpF,IAAI,CAAC8O,mBAAmB,CAACjG,SAAS,CAACpN,EAASuE,EAAUiB,GAAK9Q,IAAI,CAClE,SAAU2f,CAAY,EAClB,OAAOA,CACX,EACA,UAAU/G,CAAU,SAChB,GAAkBA,EAAWiH,oBAAoB,CAEtC,IAAI,CAACC,kBAAkB,CAACxU,EAASuE,EAAU+I,EAD9B,oGAGjB,IAAI,CAAC2F,GAAG,CAACha,MAAM,EAC1B,GAAEvG,IAAI,CAAC,IAAI,EAEnB,EASAqgB,EAAgC7e,SAAS,CAACsgB,kBAAkB,CAAG,SAAUxU,CAAO,CAAEuE,CAAQ,CAAE+I,CAAU,CAAEqD,CAAW,EAC/G,IAAIrM,EAAU,CAAC,IAAI,CAACkN,cAAc,CAACpB,iBAAiB,CAAC7L,GACjDoQ,EAAW,IAAI,CAAC1B,GAAG,CAAC2B,KAAK,GAGzBC,EAAa,CACb7U,QAASA,EACTsE,QAASA,EACTsN,YAAatE,EAAW2G,qBAAqB,CAC7CtC,aAAcrE,EAAW0G,QAAQ,CACjCzP,SAAUA,EACVtI,qBAAsB,IAAI,CAACmX,qBAAqB,CAChDrB,WAAY4C,EAAS1b,MAAM,CAC3B6Y,UAAW6C,EAAS3b,OAAO,CAACtG,IAAI,CAAC,KAAM,CAAEwT,GAAIlG,EAASuE,SAAUA,CAAS,GACzErF,MAAO,IAAI,CAACkU,qBAAqB,CAAC1W,SAAS,CAX5B4H,EAAU,+BAAiC,kCAY9D,EAOA,OALA,IAAI,CAACgP,MAAM,CAACwB,MAAM,CAAC,IAAI,CAAC3B,gBAAgB,CAACvC,yBAAyB,CAAGD,EAAakE,EAAY,CAC1FpE,WAAY,GACZC,aAAc,EAClB,GAEOiE,EAAS/b,OAAO,EAG3BL,EAAAA,CAAUA,CAACC,OAAO,CAAC,kCAAmCua,E,4EChH/C,OAAMgC,EACTpc,YAAYqc,CAAI,CAAEC,CAAO,CAAEC,CAAkB,CAAE,CAC3C,IAAI,CAACF,IAAI,CAAGA,EACZ,IAAI,CAACC,OAAO,CAAGA,EACf,IAAI,CAACC,kBAAkB,CAAGA,CAC9B,CACJ,CCNO,MAAMC,EACTxc,YAAYyc,CAAS,CAAEhc,CAAI,CAAE,CACzB,IAAI,CAACic,IAAI,CAAGD,EACZ,IAAI,CAAChc,IAAI,CAAGA,CAChB,CACJ,CCGO,MAAMkc,EACT3c,YAAY4c,CAAY,CAAEC,CAAK,CAAEnJ,CAAE,CAAEoJ,CAAS,CAAE,CAC5C,IAAI,CAACC,aAAa,CAAGH,EACrB,IAAI,CAACtC,GAAG,CAAG5G,EACX,IAAI,CAACsJ,UAAU,CAAGF,EAClB,IAAI,CAACG,WAAW,CAAG,IAAIC,EAAAA,CAAeA,CAACL,GACvC,IAAI,CAACM,oBAAoB,CAAG,CAACnH,EAAAA,CAAeA,CAACC,KAAK,CAACE,QAAQ,CAAEH,EAAAA,CAAeA,CAACC,KAAK,CAACC,iBAAiB,CAAEF,EAAAA,CAAeA,CAACC,KAAK,CAACmH,QAAQ,CAAC,CAYzIC,gBAAgB3Y,CAAM,CAAE4Y,CAAS,CAAE,CAC/B,IAAMC,EAAQ,IAAI,CAACN,WAAW,CAACO,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAS/Y,IAEnD,GAAI6Y,OAAAA,EACA,OAAO,IAAI,CAACjD,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACC,SAAS,EAG/C,GAAI,IAAI,CAACR,oBAAoB,CAACS,QAAQ,CAACL,EAAMlB,IAAI,CAACwB,QAAQ,EAAG,CACzD,IAAMC,EAAY,IAAIZ,EAAAA,CAAeA,CAACK,EAAMlB,IAAI,CAAC0B,QAAQ,EAAEjgB,IAAI,CAAC,GAAOkgB,EAAEH,QAAQ,GAAK7H,EAAAA,CAAeA,CAACC,KAAK,CAACmH,QAAQ,EACpH,OAAO,IAAI,CAAC9C,GAAG,CAACha,MAAM,CAAC,IAAIkc,EAAckB,EAAAA,CAAUA,CAACO,iBAAiB,CAAEH,GAC3E,CAEA,OAAO,IAAI,CAACI,WAAW,CAACX,EAAMlB,IAAI,CAAEkB,EAAMjB,OAAO,CAAEgB,EACvD,CAEAY,YAAY7B,CAAI,CAAEC,CAAO,CAAEgB,CAAS,CAAE,CAClC,GAAIjB,EAAKwB,QAAQ,GAAK7H,EAAAA,CAAeA,CAACmI,aAAa,CAACC,SAAS,EAAI/B,EAAKwB,QAAQ,GAAK7H,EAAAA,CAAeA,CAACmI,aAAa,CAACE,kBAAkB,CAC/H,OAAO,IAAI,CAAC/D,GAAG,CAACgE,IAAI,CAAC,CAAEjC,KAAMA,EAAMC,QAASA,EAASC,mBAAoB,EAAG,GAGhF,IAAMgC,EAAcC,SC9CkBnC,CAAI,CAAEC,CAAO,CAAEjV,CAAO,EAChE,IAAIoX,EAAQ,CAAEla,WAAY8X,EAAKqC,WAAW,CAAE/Z,OAAQ0X,EAAK1X,MAAM,CAAEga,KAAM,IAAK,EAE5E,IAAK,IAAMC,KAAUtC,EACjBmC,EAAQ,CAAEla,WAAYqa,EAAOF,WAAW,CAAE/Z,OAAQia,EAAOja,MAAM,CAAEga,KAAMF,CAAM,EAGjF,MAAO,CAAEla,WAAY8C,EAASsX,KAAMF,CAAM,CAC9C,EDsC0DpC,EAAMC,EAAS,IAAI,CAACS,aAAa,CAAC1V,OAAO,EAC3F,OAAO,IAAI,CAAC2V,UAAU,CAACkB,WAAW,CAACK,EAAa,CAAE,GAAG,IAAI,CAACxB,aAAa,CAAEO,UAAWA,EAAW5Y,OAAQ2X,EAAK1X,MAAM,GAAI5I,IAAI,CAAC,GAAa,IAAI,CAAC8iB,wBAAwB,CAACxC,EAAMC,EAASwC,GACzL,CASAC,6BAA6Bra,CAAM,CAAEsa,CAAS,CAAE,CAC5C,OAAO,IAAI,CAACC,eAAe,CAACva,EAAQ,CAAEwa,UAAWF,CAAU,GAAGjjB,IAAI,CAAC,IAC/DsgB,EAAK8C,wBAAwB,CAAGH,EACzB3C,GAEf,CAEA+C,uBAAuB1a,CAAM,CAAE6G,CAAU,CAAE,CACvC,OAAO,IAAI,CAAC0T,eAAe,CAACva,EAAQ,CAAEoJ,GAAIpJ,EAAQ2a,WAAY9T,CAAW,GAAGxP,IAAI,CAAC,IAC7EsgB,EAAKiD,cAAc,CAAG/T,EACtB8Q,EAAK8C,wBAAwB,CAAG,GACzB9C,GAEf,CAEAkD,eAAe7a,CAAM,CAAE,CACnB,IAAM6Y,EAAQ,IAAI,CAACN,WAAW,CAACO,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAS/Y,WAEnD,OAAI6Y,EACO,IAAI,CAACjD,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACC,SAAS,EAGxC,IAAI,CAAC6B,WAAW,CAACjC,EAAMlB,IAAI,CAAEkB,EAAMjB,OAAO,CACrD,CAEAkD,YAAYnD,CAAI,CAAEC,CAAO,CAAE,CACvB,OAAO,IAAI,CAACU,UAAU,CAACyC,UAAU,CAAC,IAAI,CAACC,qBAAqB,CAACpD,GAAUD,EAAK1X,MAAM,EAAE5I,IAAI,CAAC,KACrFsgB,EAAKiD,cAAc,CAAG,GACtBjD,EAAK8C,wBAAwB,CAAG,GACzB9C,GAEf,CAEAwC,yBAAyBxC,CAAI,CAAEC,CAAO,CAAEwC,CAAO,CAAE,CAC7C,IAAK,IAAMa,KAAgBb,EAAQc,OAAO,CAAE,CACxC,IAAMhB,EAAStC,EAAQxe,IAAI,CAAC2f,CAAAA,EAAAA,EAAAA,CAAAA,EAASkC,EAAa7R,EAAE,EACrCvO,MAAAA,IAAXqf,IACAA,EAAOiB,UAAU,CAAGF,EAAaG,UAAU,CAC3ClB,EAAOU,cAAc,CAAGK,EAAaN,UAAU,CAEvD,CAEAhD,EAAKwD,UAAU,CAAGf,EAAQH,IAAI,CAACmB,UAAU,CACzC,IAAMC,EAAoB1D,EAAKiD,cAAc,QAC7C,IAA0BR,EAAQH,IAAI,CAACU,UAAU,EAC7ChD,EAAKiD,cAAc,CAAGR,EAAQH,IAAI,CAACU,UAAU,CACtC,IAAIjD,EAAoBC,EAAMC,EAASyD,IAG3C,IAAI3D,EAAoBC,EAAMC,EAAS,GAClD,CAEAoD,sBAAsBpD,CAAO,CAAE,CAC3B,OAAOA,EAAQ1f,MAAM,CAAG,EAAI0f,CAAO,CAAC,EAAE,CAACgD,cAAc,CAAG,IAAI,CAACvC,aAAa,CAAC1V,OAAO,CAGtF4X,gBAAgBva,CAAM,CAAEoa,CAAO,CAAE,CAC7B,IAAMvB,EAAQ,IAAI,CAACN,WAAW,CAACO,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAS/Y,WAEnD,OAAI6Y,EACO,IAAI,CAACjD,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACC,SAAS,EAGxC,IAAI,CAACqC,WAAW,CAACzC,EAAMlB,IAAI,CAAEkB,EAAMjB,OAAO,CAAEwC,EACvD,CAEAkB,YAAY3D,CAAI,CAAEC,CAAO,CAAEwC,CAAO,CAAE,CAChC,IAAM/O,EAAa,CAAEsP,WAAYhD,EAAKiD,cAAc,CAAE,GAAGR,CAAO,EAEhE,OAAO,IAAI,CAAC9B,UAAU,CAACiD,UAAU,CAAC,IAAI,CAACP,qBAAqB,CAACpD,GAAUD,EAAK1X,MAAM,CAAEoL,GAAYhU,IAAI,CAAC,IAC1FsgB,EAEf,CACJ,CElIO,SAAS6D,EAA6BC,CAAa,EACtD,MAAO,CACHC,UAAWD,EAAczB,WAAW,CACpC2B,MAAOF,EAAcG,SAAS,CAEtC,C,QCGO,OAAMC,EACTvgB,YAAY4c,CAAY,CAAEC,CAAK,CAAEnJ,CAAE,CAAEoJ,CAAS,CAAE,CAC5C,IAAI,CAACC,aAAa,CAAGH,EACrB,IAAI,CAACtC,GAAG,CAAG5G,EACX,IAAI,CAAC8M,MAAM,CAAG3D,EACd,IAAI,CAACI,WAAW,CAAG,IAAIC,EAAAA,CAAeA,CAACL,GACvC,IAAI,CAACG,UAAU,CAAGF,CACtB,CAEAO,gBAAgB3Y,CAAM,CAAE4Y,CAAS,CAAE,CAC/B,IAAMC,EAAQ,IAAI,CAACN,WAAW,CAACO,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAS/Y,IAEnD,GAAI6Y,OAAAA,EACA,OAAO,IAAI,CAACjD,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACC,SAAS,EAG/C,GAAIJ,EAAMlB,IAAI,CAACoE,kBAAkB,CAAE,CAC/B,IAAMC,EAAgB,IAAI,CAACC,4BAA4B,CAACpD,GAExD,OAAOqD,IADyB,CAACC,mBAAmB,CAACH,EAAcI,IAAI,EAC5C5C,WAAW,CAACwC,EAAcrE,IAAI,CAAEqE,EAAcpE,OAAO,CAAEgB,GAAWvhB,IAAI,CAAC,IAC9FgU,EAAWuM,OAAO,CAACjb,IAAI,CAACqf,EAAcI,IAAI,EACnC/Q,GAEf,CAEA,OAAO,IAAI,CAACuK,GAAG,CAACgE,IAAI,CAAC,IAAIlC,EAAoBmB,EAAMlB,IAAI,CAAEkB,EAAMjB,OAAO,CAAE,IAC5E,CAEAyE,QAAQZ,CAAa,CAAE,CACnB,OAAO,IAAI,CAACnD,UAAU,CAAC9M,mBAAmB,CAAC,IAAI,CAAC6M,aAAa,CAAC1V,OAAO,CAAE8Y,EAAczB,WAAW,CAAEwB,EAA6BC,IAAgBpkB,IAAI,CAAC,KAChJ,IAAI,CAACykB,MAAM,CAACnf,IAAI,CAAC8e,GACVA,GAEf,CAEAa,cAAcb,CAAa,CAAEc,CAAQ,CAAE,CACnC,IAAM1D,EAAQ,IAAI,CAACN,WAAW,CAACO,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAASwD,IACnD,GAAI1D,OAAAA,GAAkBA,EAAMlB,IAAI,CAACoE,kBAAkB,EAAIlD,EAAMlB,IAAI,CAACwB,QAAQ,GAAK7H,EAAAA,CAAeA,CAACC,KAAK,CAACmH,QAAQ,CACzG,OAAO,IAAI,CAAC9C,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACwD,cAAc,EAGpD,IAAMtC,EAASrB,EAAMlB,IAAI,CACzB,OAAO,IAAI,CAACW,UAAU,CAAC9M,mBAAmB,CAAC0O,EAAOF,WAAW,CAAEyB,EAAczB,WAAW,CAAEwB,EAA6BC,IAAgBpkB,IAAI,CAAC,KACxI6iB,EAAOb,QAAQ,CAAC1c,IAAI,CAAC8e,GACdA,GAEf,CAEAZ,eAAe7a,CAAM,CAAE,CACnB,IAAM6Y,EAAQ,IAAI,CAACN,WAAW,CAACO,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAS/Y,IAEnD,GAAI6Y,OAAAA,EACA,OAAO,IAAI,CAACjD,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACC,SAAS,EAG/C,GAAIJ,EAAMlB,IAAI,CAACoE,kBAAkB,CAC7B,OAAO,IAAI,CAACnG,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACyD,WAAW,EAGjD,IAAIC,EAAe7D,EAAMlB,IAAI,CACzBgF,EAAqB,CAAE3C,YAAa,IAAI,CAAC3B,aAAa,CAAC1V,OAAO,CAAE0W,SAAU,IAAI,CAACyC,MAAM,EACzF,IAAK,IAAI5B,KAAUrB,EAAMjB,OAAO,CAAE,CAC9B,GAAIsC,EAAOb,QAAQ,CAACnhB,MAAM,CAAG,EAAG,CAC5BykB,EAAqBzC,EACrB,KACJ,CACAwC,EAAexC,CACnB,QAEA,IAAIyC,EAAmBtD,QAAQ,CAACnhB,MAAM,CAC3B,IAAI,CAAC0d,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAAC4D,SAAS,EAGxC,IAAI,CAACtE,UAAU,CAAC5M,mBAAmB,CAACiR,EAAmB3C,WAAW,CAAE0C,EAAa1C,WAAW,EAAE3iB,IAAI,CAAC,KACtG,IAAM8gB,EAAQwE,EAAmBtD,QAAQ,CACnC9e,EAAQ4d,EAAM0E,SAAS,CAAC9D,CAAAA,EAAAA,EAAAA,CAAAA,EAAS2D,EAAazc,MAAM,EAC5C,MAAV1F,GACA4d,EAAMvb,MAAM,CAACrC,EAAO,EAE5B,EACJ,CAEAuiB,gBAAgB9c,CAAM,CAAE+c,CAAQ,CAAE,CAC9B,IAAMlE,EAAQ,IAAI,CAACN,WAAW,CAACO,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAS/Y,WAEnD,OAAI6Y,EACO,IAAI,CAACjD,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACC,SAAS,EAG3CJ,EAAMlB,IAAI,CAACoE,kBAAkB,CACtB,IAAI,CAACnG,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACyD,WAAW,EAG1C,IAAI,CAACnE,UAAU,CAAC9M,mBAAmB,CAAC,IAAI,CAACwP,qBAAqB,CAACnC,EAAMjB,OAAO,EAAGiB,EAAMlB,IAAI,CAAC1X,MAAM,CAAE,CAAE0b,MAAOoB,CAAS,GAAG1lB,IAAI,CAAC,KAC/HwhB,EAAMlB,IAAI,CAACiE,SAAS,CAAGmB,CAC3B,EACJ,CAEArC,uBAAuB1a,CAAM,CAAE6G,CAAU,CAAE,CACvC,IAAMgS,EAAQ,IAAI,CAACN,WAAW,CAACO,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAS/Y,IAEnD,GAAI6Y,OAAAA,EACA,OAAO,IAAI,CAACjD,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACC,SAAS,EAG/C,GAAI,CAACJ,EAAMlB,IAAI,CAACoE,kBAAkB,CAC9B,OAAO,IAAI,CAACnG,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACyD,WAAW,EAGjD,IAAMT,EAAgB,IAAI,CAACC,4BAA4B,CAACpD,GAExD,OAAOqD,IADyB,CAACC,mBAAmB,CAACH,EAAcI,IAAI,EAC5C1B,sBAAsB,CAACsB,EAAcrE,IAAI,CAAC1X,MAAM,CAAE4G,EACjF,CAEAmW,uBAAuBhd,CAAM,CAAE,CAC3B,IAAM6Y,EAAQ,IAAI,CAACN,WAAW,CAACO,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAS/Y,IAEnD,GAAI6Y,OAAAA,EACA,OAAO,IAAI,CAACjD,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACC,SAAS,EAG/C,GAAI,CAACJ,EAAMlB,IAAI,CAACoE,kBAAkB,CAC9B,OAAO,IAAI,CAACnG,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACyD,WAAW,EAGjD,IAAMT,EAAgB,IAAI,CAACC,4BAA4B,CAACpD,GAExD,OAAOqD,IADyB,CAACC,mBAAmB,CAACH,EAAcI,IAAI,EAC5CvB,cAAc,CAACmB,EAAcrE,IAAI,CAAC1X,MAAM,CACvE,CAEAgd,YAAYjd,CAAM,CAAE,CAChB,IAAM6Y,EAAQ,IAAI,CAACN,WAAW,CAACO,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAS/Y,WAEnD,OAAI6Y,EACO,IAAI,CAACjD,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACC,SAAS,EAG3CJ,EAAMlB,IAAI,CAACoE,kBAAkB,CACtB,IAAI,CAACnG,GAAG,CAACha,MAAM,CAACod,EAAAA,CAAUA,CAACyD,WAAW,EAG1C,IAAI,CAACnE,UAAU,CAAC2E,WAAW,CAAC,IAAI,CAACjC,qBAAqB,CAACnC,EAAMjB,OAAO,EAAG5X,GAAQ3I,IAAI,CAAC,IACvF,IAAM8gB,EAAQU,EAAMjB,OAAO,CAAC1f,MAAM,CAAG,EAAI2gB,EAAMjB,OAAO,CAAC,EAAE,CAACyB,QAAQ,CAAG,IAAI,CAACyC,MAAM,CAC1EvhB,EAAQ4d,EAAM0E,SAAS,CAAC9D,CAAAA,EAAAA,EAAAA,CAAAA,EAASF,EAAMlB,IAAI,CAAC1X,MAAM,GAExD,GAAI1F,EAAQ,GAaR,OAZA4d,CAAK,CAAC5d,EAAM,CAAG,CACXyf,YAAakD,EAASxB,SAAS,CAC/Bzb,OAAQid,EAAS9T,EAAE,CACnBwS,UAAWsB,EAASvB,KAAK,CACzBxC,SAAU,WACVgE,SAAU,WACV9D,SAAU,CAACR,EAAMlB,IAAI,CAAC,CACtBwD,WAAY,YACZiC,uBAAwB,GACxBC,SAAU,CACd,EAEOlF,CAAK,CAAC5d,EAAM,OAGjB,MAAU,4FACpB,EACJ,CAEAygB,sBAAsBpD,CAAO,CAAE,CAC3B,OAAOA,EAAQ1f,MAAM,CAAG,EAAI0f,CAAO,CAAC,EAAE,CAACoC,WAAW,CAAG,IAAI,CAAC3B,aAAa,CAAC1V,OAAO,CAGnFsZ,6BAA6BqB,CAAS,CAAE,CACpC,IAAK,IAAIviB,EAAI,EAAGA,EAAIuiB,EAAU1F,OAAO,CAAC1f,MAAM,CAAE6C,IAAK,CAC/C,IAAMmf,EAASoD,EAAU1F,OAAO,CAAC7c,EAAE,CACnC,GAAI,CAACmf,EAAO6B,kBAAkB,EAAI7B,EAAOf,QAAQ,GAAK7H,EAAAA,CAAeA,CAACC,KAAK,CAACmH,QAAQ,CAChF,MAAO,CACHf,KAAM2F,EAAU3F,IAAI,CACpBC,QAAS0F,EAAU1F,OAAO,CAAC5d,KAAK,CAAC,EAAGe,GACpCqhB,KAAMlC,CACV,CAER,CAEA,MAAM,MAAU,iFACpB,CAEAiC,oBAAoBoB,CAAY,CAAE,CAE9B,OAAO,IAAItF,EADW,IAAI,CAACI,aAAa,CAACvV,mBAAmB,CAACya,EAAavD,WAAW,EAC/BuD,EAAalE,QAAQ,CAAE,IAAI,CAACzD,GAAG,CAAE,IAAI,CAAC0C,UAAU,CAC1G,CACJ,CChMO,MAAMkF,EACTliB,YAAY0T,CAAE,CAAEC,CAAoB,CAAE,CAClC,IAAI,CAAC2G,GAAG,CAAG5G,EACX,IAAI,CAACyO,qBAAqB,CAAGxO,CACjC,CAEAyO,8BAA8BC,CAAK,CAAEzF,CAAY,CAAE,CAC/C,OAAO,IAAID,EAA4BC,EAAcyF,EAAMC,KAAK,CAAE,IAAI,CAAChI,GAAG,CAAE,CACxE4D,YAAa,IAAI,CAACiE,qBAAqB,CAACtS,2BAA2B,CAAC9V,IAAI,CAAC,IAAI,CAACooB,qBAAqB,EACnG1C,WAAY,IAAI,CAAC0C,qBAAqB,CAAClS,0BAA0B,CAAClW,IAAI,CAAC,IAAI,CAACooB,qBAAqB,EACjGlC,WAAY,IAAI,CAACkC,qBAAqB,CAACrS,0BAA0B,CAAC/V,IAAI,CAAC,IAAI,CAACooB,qBAAqB,CACrG,EACJ,CAEAI,2BAA2BF,CAAK,CAAEzF,CAAY,CAAE,CAC5C,OAAO,IAAI2D,EAAqB3D,EAAcyF,EAAMC,KAAK,CAAE,IAAI,CAAChI,GAAG,CAAE,CACjE4D,YAAa,IAAI,CAACiE,qBAAqB,CAACtS,2BAA2B,CAAC9V,IAAI,CAAC,IAAI,CAACooB,qBAAqB,EACnG1C,WAAY,IAAI,CAAC0C,qBAAqB,CAAClS,0BAA0B,CAAClW,IAAI,CAAC,IAAI,CAACooB,qBAAqB,EACjG/R,oBAAqB,IAAI,CAAC+R,qBAAqB,CAAC/R,mBAAmB,CAACrW,IAAI,CAAC,IAAI,CAACooB,qBAAqB,EACnGlC,WAAY,IAAI,CAACkC,qBAAqB,CAACrS,0BAA0B,CAAC/V,IAAI,CAAC,IAAI,CAACooB,qBAAqB,EACjGjS,oBAAqB,IAAI,CAACiS,qBAAqB,CAACjS,mBAAmB,CAACnW,IAAI,CAAC,IAAI,CAACooB,qBAAqB,EACnGR,YAAa,IAAI,CAACQ,qBAAqB,CAAC9R,oBAAoB,CAACtW,IAAI,CAAC,IAAI,CAACooB,qBAAqB,CAChG,EACJ,CACJ,CAEAD,EAAwBpiB,OAAO,CAAG,CAAC,KAAM,uBAAuB,CAChEF,EAAAA,CAAUA,CAACC,OAAO,CAAC,0BAA2BqiB,E,uDCxB9C,SAASM,EAAc1Q,CAAU,CAAE4B,CAAE,CAAEta,CAAO,CAAEqO,CAAoB,EAChE,IAAI,CAACqK,UAAU,CAAGA,EAClB,IAAI,CAAC4B,EAAE,CAAGA,EACV,IAAI,CAACta,OAAO,CAAGA,EACf,IAAI,CAACua,oBAAoB,CAAGlM,CAChC,C,kBANA+a,EAAc1iB,OAAO,CAAG,CAAC,aAAc,KAAM,UAAW,uBAAuB,CAQ/E0iB,EAAcjnB,SAAS,CAACknB,YAAY,CAAG,SAAUC,CAAO,EAEpD,OADAA,EAAQC,sBAAsB,CAAG,WAC1B,IAAI,CAACC,OAAO,CAACF,EACxB,EAEAF,EAAcjnB,SAAS,CAACsnB,WAAW,CAAG,SAAUH,CAAO,EAEnD,OADAA,EAAQC,sBAAsB,CAAG,SAC1B,IAAI,CAACC,OAAO,CAACF,GAAS3mB,IAAI,CAAC,SAAU0E,CAAI,EAC5C,OAAOA,GAAQA,CAAI,CAAC,EAAE,CAAGA,CAAI,CAAC,EAAE,CAAG,IACvC,EACJ,EAEA+hB,EAAcjnB,SAAS,CAACunB,gBAAgB,CAAG,SAAUJ,CAAO,EACxD,OAAO,IAAI,CAACG,WAAW,CAACH,GAAS3mB,IAAI,CAAC,GAClC,OAAI0E,GAAiBA,EAAKsiB,OAAO,GAAK/M,EAAAA,CAAeA,CAACgN,UAAU,CAACC,KAAK,CAC3DxiB,EAGJ,IAAI,CAACkT,oBAAoB,CAC3B1E,eAAe,CAACxO,EAAKqN,EAAE,EACvB/R,IAAI,CAAC,IACF0E,EAAKyiB,OAAO,CAAGza,EAAShI,IAAI,CACrBA,IAEVG,KAAK,CAAC,IACHH,EAAKyiB,OAAO,CAAG,KACRziB,IAGvB,EAEA+hB,EAAcjnB,SAAS,CAACqnB,OAAO,CAAG,SAAUF,CAAO,EAE/C,IAAM1G,EAAW,IAAI,CAACtI,EAAE,CAACuI,KAAK,GACxBkH,EAAU,IAAI,CAAC/pB,OAAO,CAACgqB,IAAI,GAC3BC,EAAkB,CACpB7P,MAAO,WACP8P,iBAAkBH,EAClBI,cAAe,aACfZ,uBAAwB,SACxBa,WAAY,aACZC,UAAW,EAAE,CACbC,SAAU,EAAE,CACZC,WAAY,CAAC,OAAQ,SAAS,CAC9BC,qBAAsB,EAAE,CACxBC,WAAY,EAAE,CACdC,kBAAmB,EAAE,CACrBC,cAAe,GACfC,cAAe,EAAE,CACjBC,WAAY1kB,KAAAA,CAChB,EAEAyD,OAAOkhB,MAAM,CAACb,EAAiBX,GAC/B,IAAI,CAAC5Q,UAAU,CAACK,UAAU,CAAC,yBAA0BkR,GAErD,IAAMc,EAAkB,IAAI,CAACrS,UAAU,CAACoG,GAAG,CACvCiL,EACA,UAAUvnB,CAAK,CAAE6E,CAAI,EACjB0jB,IACAnI,EAAS3b,OAAO,CAACI,GAAQ,KAC7B,GAAE1G,IAAI,CAAC,IAAI,GAGTqH,EAAmBM,CAAAA,EAAAA,EAAAA,CAAAA,EAAcsa,EAAS/b,OAAO,EAmBvD,MAlBsB,CAClBlE,KAAAA,CAAKwE,EAAWG,IACLU,EAAiBrF,IAAI,CAACwE,EAAWG,GAE5CE,MAAAA,GACWQ,EAAiBR,KAAK,CAACF,GAElCG,QAAAA,GACWO,EAAiBP,OAAO,CAACujB,GAEpCtjB,QAC4B,OAApBqjB,GACAA,IAEJ/iB,EAAiBN,KAAK,EAC1B,CACJ,CAGJ,EAEAlB,EAAAA,CAAUA,CAACC,OAAO,CAAC,gBAAiB2iB,E,6GC5FpC,IAAI6B,EAAe,SAAUC,CAAM,CAAE9lB,CAAO,CAAE+lB,CAAS,EACnD,IAAI,CAACD,MAAM,CAAGA,GAAU,GACxB,IAAI,CAAC9lB,OAAO,CAAGA,GAAW,KAC1B,IAAI,CAAC+lB,SAAS,CAAGA,GAAa,IAClC,EAEA3kB,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,aAAc,CAC/B,OACA,kBACA,uBACA,WACA,mBACA,SAAUnC,CAAI,CAAEC,CAAe,CAAE9N,CAAoB,CAAE1B,CAAQ,CAAE4iB,CAAgB,EAC7E,MAAO,CACHnT,SAAU,IACVpM,SCtBG,+nFDuBHqM,MAAO,CACHmT,MAAO,IACPC,OAAQ,IACRC,WAAY,IACZC,aAAc,IACdC,gBAAiB,GACrB,EAEA3f,WAAY,CACR,SACA,SAAUoT,CAAM,EAEZ,IAAIwM,EAAc,QAClBxM,CAAAA,EAAOhV,oBAAoB,CAAGA,EAE9BgV,EAAOyM,SAAS,CAAG,QACnBzM,EAAO0M,UAAU,CAAG,SACpB1M,EAAO2M,OAAO,CAAG,CACbR,MAAO,IAAIJ,EAAa,GAAO,KAAM,CAAC,SAAS,EAC/CK,OAAQ,IAAIL,EAAa,GAAO,KAAM,CAAC,QAAQ,EAC/Ca,KAAM,IAAIb,EAAa,GAC3B,EACA/L,EAAO6M,QAAQ,CAAG,CACdC,OAAQ,CACJC,WAAYlU,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,oCACnFsN,UAAWpU,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,mCAClFuN,UAAWrU,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,kCACtF,CACJ,EACAK,EAAOmN,UAAU,CAAG,KACpBnN,EAAOoN,OAAO,CAAG,KAGjBpN,EAAOqN,mBAAmB,CAAG,SAAUC,CAAS,EAExCA,EAAUrB,SAAS,CACnB3iB,EAAS,WACLikB,EAAwBD,EAAUrB,SAAS,CAC/C,GAEA3iB,EAAS,WACLkkB,GACJ,GAGAxN,EAAOmN,UAAU,GAEjBnN,EAAOmN,UAAU,CAACnB,MAAM,CAAG,GAC3BhM,EAAOmN,UAAU,CAACjnB,OAAO,CAACunB,WAAW,CAACjB,IAI1Cc,EAAUtB,MAAM,CAAG,GACnBsB,EAAUpnB,OAAO,CAACwnB,QAAQ,CAAClB,GAC3BxM,EAAOmN,UAAU,CAAGG,CACxB,EAGA,IAAIC,EAA0B,SAAUzjB,CAAI,EACxC,IAAK,IAA4B5F,EAAxBiD,EAAI,EAAGC,EAAI0C,EAAKxF,MAAM,CAAO6C,EAAIC,EAAGD,IAGrBF,KAAAA,IAAhB+Y,CAAM,CADV9b,EAAM4F,CAAI,CAAC3C,EAAE,CACE,EACX6Y,CAAAA,CAAM,CAAC9b,EAAI,CAAG,IAAG,CAGzB8b,CAAAA,EAAOoN,OAAO,CAAG,KACjBI,GACJ,EAUIG,EAAc,SAAUvJ,CAAI,CAAE5gB,CAAK,EACnCwc,EAAO4N,KAAK,CAAC,eAAgB,CACzB,CACIxJ,KAAMA,EACN5gB,MAAOA,CACX,EACH,CACL,EAEIgqB,EAAiB,WACjBxN,EAAO4N,KAAK,CAAC,eAAgB,CACzB,CAAExJ,KAAMpE,EAAOyM,SAAS,CAAEjpB,MAAOwc,EAAOmM,KAAK,EAC7C,CAAE/H,KAAMpE,EAAO0M,UAAU,CAAElpB,MAAOwc,EAAOoM,MAAM,EAClD,CACL,EAEIyB,EAAe,SAAUvqB,CAAK,CAAE8gB,CAAI,CAAE5gB,CAAK,EACvCF,GACAA,EAAMU,eAAe,GAEzB2pB,EAAYvJ,EAAM5gB,EACtB,EAGAwc,EAAOJ,GAAG,CAAC,kBAAoBI,EAAOyM,SAAS,CAAE,SAAUnpB,CAAK,CAAEE,CAAK,EACnEwc,EAAOoN,OAAO,CAAGpN,EAAOmM,KAAK,CAAG,KAChC0B,EAAavqB,EAAO0c,EAAOyM,SAAS,CAAEjpB,EAC1C,GACAwc,EAAOJ,GAAG,CAAC,kBAAoBI,EAAO0M,UAAU,CAAE,SAAUppB,CAAK,CAAEE,CAAK,EACpEwc,EAAOoM,MAAM,CAAG,KAChByB,EAAavqB,EAAO0c,EAAO0M,UAAU,CAAElpB,EAC3C,GAEAwc,EAAO8N,WAAW,CAAG,SAAUC,CAAI,EAC/B/N,EAAOmM,KAAK,CAAG4B,EACf/N,EAAOoN,OAAO,CAAGlB,EAAiB8B,OAAO,CAAChO,EAAOmM,KAAK,CAAE,MAAO,GAC1C,OAAjBnM,EAAOmM,KAAK,EACZ0B,EAAa,KAAM7N,EAAOyM,SAAS,CAAEzM,EAAOmM,KAAK,CAEzD,EAEAnM,EAAOiO,YAAY,CAAG,SAAUF,CAAI,EAChC/N,EAAOoM,MAAM,CAAG2B,EACM,OAAlB/N,EAAOoM,MAAM,EACbyB,EAAa,KAAM7N,EAAO0M,UAAU,CAAE1M,EAAOoM,MAAM,CAE3D,CACJ,EACH,CAED8B,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAEhCqW,EAAM2T,OAAO,CAACR,KAAK,CAACjmB,OAAO,CAAGioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,EACxGpV,EAAM2T,OAAO,CAACP,MAAM,CAAClmB,OAAO,CAAGioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,sBAAsB,CAAC,EAAE,EAC1GpV,EAAM2T,OAAO,CAACC,IAAI,CAAC1mB,OAAO,CAAGioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,EAEtG9kB,EAAS,WACD0P,EAAMmT,KAAK,EAAInT,EAAMoT,MAAM,CAC3BpT,EAAMqU,mBAAmB,CAACrU,EAAM2T,OAAO,CAACC,IAAI,EACrC5T,EAAMmT,KAAK,EAClBnT,EAAMoU,OAAO,CAAGpU,EAAMmT,KAAK,CAC3BnT,EAAMqU,mBAAmB,CAACrU,EAAM2T,OAAO,CAACR,KAAK,GACtCnT,EAAMoT,MAAM,EACnBpT,EAAMqU,mBAAmB,CAACrU,EAAM2T,OAAO,CAACP,MAAM,EAElDpT,EAAM4U,KAAK,CAAC,mBAAoB,GACpC,EAAG,KAEH5U,EAAM4G,GAAG,CAAC,WAAY,WAClB5G,EAAMmT,KAAK,CAAG,KACdnT,EAAMoT,MAAM,CAAG,KACfpT,EAAMoU,OAAO,CAAG,IACpB,EACJ,CACJ,CACJ,EACH,E,oCEjLD,MAAe,CAAC;;;;+xKAI+wK,CAAC,CCShyK,IAAIiB,EAAe,SAAUC,CAAI,CAAE/nB,CAAM,CAAE6d,CAAI,EAC3C,IAAI,CAACmK,WAAW,CAAGD,EACnB,IAAI,CAACE,MAAM,CAAGjoB,GAAU,KACxB,IAAI,CAACkoB,UAAU,CAAGrK,CACtB,EAEA9c,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,wBAAyB,CAC1C,uBACA,mBACA,gBACA,WACA,SAAUhQ,CAAoB,CAAEkhB,CAAgB,CAAEwC,CAAa,CAAEplB,CAAQ,EACrE,MAAO,CACHyP,SAAU,IACVpM,SAAUA,EACVqM,MAAO,CACH2V,cAAe,IACfC,WAAY,IACZC,UAAW,IACXC,OAAQ,IACRC,UAAW,IACXC,QAAS,IACTxa,SAAU,IACVya,wBAAyB,IACzBC,yBAA0B,KAC1BC,oBAAqB,IACrBC,sBAAuB,IAC3B,EAEAxiB,WAAY,CACR,SACA,SACA,SAAUoT,CAAM,CAAE4B,CAAM,EAEpB5B,EAAOqP,eAAe,CAAGA,EAAAA,CAEzBrP,CAAAA,EAAOhV,oBAAoB,CAAGA,EAC9BgV,EAAOsP,mBAAmB,CAAGhhB,EAAAA,CAAWA,CAACC,QAAQ,CACjDyR,EAAOuP,qBAAqB,CAAG,GAC/BvP,EAAOwP,YAAY,CAAG,GACtBxP,EAAOyP,0BAA0B,CAAG,CAChCC,aAAc,kCACdC,aAAc,iCAClB,EAEA,IAAIC,EAAY,qBAEhB5P,CAAAA,EAAOpN,OAAO,CAAG,CACbid,SAAU,IAAIxB,EAAarjB,EAAqBS,SAAS,CAAC,gCAAiC,EAAE,CAAE,oBAC/FqkB,WAAY,IAAIzB,EAChB0B,YAAa,IAAI1B,EAAarjB,EAAqBS,SAAS,CAAC,qDAAsD,KAAM,uBACzHukB,UAAW,IAAI3B,EAAarjB,EAAqBS,SAAS,CAAC,2BAA4B,KAAM,uBAC7FwkB,KAAM,IAAI5B,EAAarjB,EAAqBS,SAAS,CAAC,2BAA4B,EAAE,CAAE,kBACtFykB,SAAU,IAAI7B,EAAarjB,EAAqBS,SAAS,CAAC,oBAAqB,KAAM,sBACrF0kB,OAAQ,IAAI9B,EAAarjB,EAAqBS,SAAS,CAAC,kBAAmB,KAAM,oBACjF2kB,cAAe,IAAI/B,EAAarjB,EAAqBS,SAAS,CAAC,sCAAuC,GAAO,2BAC7G4kB,sBAAuB,IAAIhC,EAAa,GAAI,GAChD,EAEArO,EAAOsQ,UAAU,CAAG,CAChB,IAAIjC,EAAarjB,EAAqBS,SAAS,CAAC,2BAA4B,KAAMmkB,GAClF,IAAIvB,EAAarjB,EAAqBS,SAAS,CAAC,6BAA8B,OAAQmkB,GACtF,IAAIvB,EAAarjB,EAAqBS,SAAS,CAAC,8BAA+B,QAASmkB,GAC3F,CAGD,IAAMW,EAA0B,IAC5BvQ,EAAOpN,OAAO,CAACmd,WAAW,CAACvB,MAAM,CAAGjoB,EACpC,IAAMiqB,EAAUxQ,EAAOpN,OAAO,CAACmd,WAAW,CAACtB,UAAU,CAACgC,KAAK,CAAC,IAAI,CAAC,EAAE,CACnEzQ,EAAO4N,KAAK,CAAC,qBAAsB4C,EAASxQ,EAAOpN,OAAO,CAACmd,WAAW,CAAE/P,EAAO0Q,eAAe,GAClG,CAEA1Q,CAAAA,EAAO2Q,iBAAiB,CAAG,WACvBjC,EACKnE,WAAW,CAAC,CACTqG,wBAAyB,GACzB1F,WAAY,iBACZC,UAAW,CAAC,OAAO,GAEtB1nB,IAAI,CAAC,IACW,OAAT0E,GAUJooB,EANe,CACXxI,MAAO5f,EAAK4f,KAAK,CACjB8I,KAAM1oB,EAAK0oB,IAAI,CACfrb,GAAIrN,EAAKqN,EAAE,CACXsb,aAAc3oB,EAAK2oB,YAAY,EAGvC,GACCxoB,KAAK,CAAC6lB,QAAQ4C,IAAI,CAC3B,EAEA/Q,EAAOgR,uBAAuB,CAAG,WAC7BT,EAAwB,KAC5B,EAEAvQ,EAAOiR,SAAS,CAAG,SAAU1qB,CAAM,CAAE2qB,CAAY,EAC7C,IAAIC,EAAe5qB,EAAOkoB,UAAU,CAChCyC,IACK3qB,EAAO6qB,YAAY,EACpB7qB,CAAAA,EAAO6qB,YAAY,CAAG7qB,EAAOkoB,UAAU,EAG3CloB,EAAOkoB,UAAU,CAAGyC,GAGxB,IAAIV,EAAUjqB,EAAOkoB,UAAU,CAACgC,KAAK,CAAC,IAAI,CAAC,EAAE,MAE5BxpB,IADF+Y,EAAOpN,OAAO,CAAC4d,EAAQ,GAGlCxQ,EAAOpN,OAAO,CAAC4d,EAAQ,CAAGW,EAAe5qB,EAAS,IAAI8nB,EAAa,KAAM,KAAMrO,EAAOpN,OAAO,CAAC4d,EAAQ,CAAC/B,UAAU,EACjHzO,EAAO4N,KAAK,CAAC,qBAAsB4C,EAASxQ,EAAOpN,OAAO,CAAC4d,EAAQ,CAAExQ,EAAO0Q,eAAe,IAEnG,EAEA1Q,EAAOqR,iBAAiB,CAAG,SAAUxB,CAAQ,EACzC7P,EAAOpN,OAAO,CAACid,QAAQ,CAACrB,MAAM,CAAGxO,EAAO2O,aAAa,CAAC2C,OAAO,CAACzB,QAAQ,CACtE7P,EAAO0Q,eAAe,GACtB1Q,EAAO4N,KAAK,CAAC,qBAAsB5N,EAAOpN,OAAO,CAACid,QAAQ,CAACpB,UAAU,CAACgC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAEzQ,EAAOpN,OAAO,CAACid,QAAQ,CAAE7P,EAAO0Q,eAAe,GACxI,EAEA1Q,EAAOuR,oBAAoB,CAAG,WACrBvR,EAAOpN,OAAO,CAACwd,aAAa,CAAC5B,MAAM,EACpCxO,EAAOwR,WAAW,CAACxR,EAAOpN,OAAO,CAACwd,aAAa,CAEvD,EAEApQ,EAAOyR,oBAAoB,CAAG,IAC1BzR,EAAOpN,OAAO,CAACyd,qBAAqB,CAAC7B,MAAM,CAAGkD,EAC9C1R,EAAO0Q,eAAe,EAC1B,EAEA1Q,EAAOwR,WAAW,CAAG,SAAUjrB,CAAM,EAC7BA,EAAOgoB,WAAW,CAClBhoB,EAAOioB,MAAM,CAAG,KAEhBjoB,EAAS,IAEjB,EAEAyZ,EAAO2R,qBAAqB,CAAG,SAAUprB,CAAM,EAC3C,OAAOA,GAAUA,EAAOioB,MAAM,CAAGjoB,EAAOgoB,WAAW,CAAG,IAC1D,EAEAvO,EAAO4R,qBAAqB,CAAG,WAC3B,IAEIC,EACAC,EAHAlf,EAAUoN,EAAOpN,OAAO,CACxB4B,EAAWwL,EAAOxL,QAAQ,CAK1BA,EAASsb,UAAU,EAAK+B,CAAAA,EAAkBE,EAAmB/R,EAAO2O,aAAa,CAAC2C,OAAO,CAACxB,UAAU,CAAEtb,EAASsb,UAAU,IACzHld,CAAAA,EAAQkd,UAAU,CAAG+B,CAAc,EAInCrd,EAASwb,SAAS,EAAIhQ,EAAO2O,aAAa,CAACqD,SAAS,CAAChC,SAAS,EAAK8B,CAAAA,EAAkBC,EAAmB/R,EAAO2O,aAAa,CAACqD,SAAS,CAAChC,SAAS,CAAExb,EAASwb,SAAS,IACpKpd,CAAAA,EAAQod,SAAS,CAAG8B,CAAc,EAGtC9R,EAAOiS,gBAAgB,CAAGzd,EAASqb,QAAQ,CAC3Cjd,EAAQid,QAAQ,CAACrB,MAAM,CAAGha,EAASqb,QAAQ,CAC3Cjd,EAAQmd,WAAW,CAACvB,MAAM,CAAGha,EAASub,WAAW,CACjDnd,EAAQqd,IAAI,CAACzB,MAAM,CAAGha,EAASyb,IAAI,EAAI,EAAE,CACzCrd,EAAQsd,QAAQ,CAAC1B,MAAM,CAAGha,EAAS0b,QAAQ,EAAI,KAC/Ctd,EAAQud,MAAM,CAAC3B,MAAM,CAAGha,EAAS2b,MAAM,EAAI,KAC3Cvd,EAAQwd,aAAa,CAAG5b,EAAS4b,aAAa,CAC9Cxd,EAAQyd,qBAAqB,CAAC7B,MAAM,CAAGha,EAAS6b,qBAAqB,CAEhC,KAAjCrQ,EAAOoP,qBAAqB,EAC5BpP,CAAAA,EAAOuP,qBAAqB,CAAG,CAAC2C,GAA6B,EAEjElS,EAAO0Q,eAAe,EAC1B,EAEA1Q,EAAO0Q,eAAe,CAAG,WACrB,GAAI1Q,CAAiC,IAAjCA,EAAOoP,qBAAqB,CAAW,CACvC,IAAM+C,EAA0BnS,EAAOuP,qBAAqB,CAC5DvP,EAAOuP,qBAAqB,CAAG,CAAC2C,IAE5BC,IAA4BnS,EAAOuP,qBAAqB,EACxDvP,CAAAA,EAAOpN,OAAO,CAAC,qBAAwB,CAAC4b,MAAM,CAAG,CAACxO,EAAOuP,qBAAqB,CAEtF,CAGA,IAAK,IAAM6C,KADXpS,EAAOwP,YAAY,CAAG,GACGxP,EAAOpN,OAAO,CACnC,GAAIwf,0BAAAA,GAA0CpS,EAAOpN,OAAO,CAACyf,cAAc,CAACD,GAAa,CACrF,IAAM7rB,EAASyZ,EAAOpN,OAAO,CAACwf,EAAW,CACzC,GAAI7rB,GAAQioB,SAAWvnB,KAAAA,GAAaV,OAAAA,EAAOioB,MAAM,EAAc,EAACroB,MAAMmsB,OAAO,CAAC/rB,EAAOioB,MAAM,GAAKjoB,EAAOioB,MAAM,CAAClqB,MAAM,CAAG,GAAI,CACvH0b,EAAOwP,YAAY,CAAG,GACtB,KACJ,CACJ,CAIJ,OADAxP,EAAOuS,WAAW,GACXvS,EAAOwP,YAAY,EAG9BxP,EAAOwS,qBAAqB,CAAG,SAAUC,CAAU,CAAEC,CAAQ,EACrDD,EAAWjE,MAAM,EACjBiE,CAAAA,EAAWlE,WAAW,CAAGmE,EAAW,IAAMxG,EAAiByG,QAAQ,CAACF,EAAWjE,MAAM,EAE7F,EAGA,IAAIoE,EAAkB,SAAUrsB,CAAM,CAAEssB,CAAY,EAChDtsB,EAAOgoB,WAAW,CAAGsE,EAAatE,WAAW,CAC7ChoB,EAAOioB,MAAM,CAAGqE,EAAarE,MAAM,CAE9BjoB,EAAOkoB,UAAU,EAClBloB,CAAAA,EAAOkoB,UAAU,CAAGoE,EAAapE,UAAU,CAEnD,EAEIqE,EAAoB,SAAUC,CAAU,EACxC,IAAIxsB,EACJ,IAAK,IAAI6rB,KAAcpS,EAAOpN,OAAO,CACjC,GAAIoN,EAAOpN,OAAO,CAACyf,cAAc,CAACD,IAC9B7rB,CAAAA,EAASyZ,EAAOpN,OAAO,CAACwf,EAAW,GAEpB7rB,CAAAA,EAAOkoB,UAAU,GAAKsE,GAAexsB,CAAAA,EAASyZ,EAAOpN,OAAO,CAACmgB,EAAWtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GACjG,OAAOlqB,CAIvB,EAEIwrB,EAAqB,SAAUiB,CAAU,CAAExvB,CAAK,EAEhD,OAAOyvB,EADiBC,KAAK,CAAC,CAAE1E,OAAQhrB,CAAM,EACjC,CAAC,EAAE,EAAI,IACxB,EAEI2vB,EAAc,SAAU7vB,CAAK,EAC7BA,EAAMU,eAAe,GACrBgc,EAAO0Q,eAAe,GACtB1Q,EAAO4N,KAAK,CAAC,qBAAsB5N,EAAOpN,OAAO,CAACqd,IAAI,CAACxB,UAAU,CAACgC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAEzQ,EAAOpN,OAAO,CAACqd,IAAI,CAAEjQ,EAAO0Q,eAAe,GAChI,EAEA,IAAMwB,EAA+B,KACjC,IAAMkB,EAAapT,EAAOpN,OAAO,CAAC,IAAO,CACnCygB,EAAoBrT,EAAOpN,OAAO,CAAC,WAAc,CACjD0gB,EAAmBF,GAAY5E,QAAQlqB,SAAW2C,KAAAA,GAAamsB,EAAW5E,MAAM,CAAClqB,MAAM,CAAG,EAC1FivB,EAAsBF,GAAmB7E,SAAWvnB,KAAAA,GAAaosB,OAAAA,EAAkB7E,MAAM,CAC/F,OAAO8E,GAAoBC,CAC/B,EAGAvT,EAAOJ,GAAG,CAAC,WAAYuT,GACvBnT,EAAOJ,GAAG,CAAC,aAAcuT,GACzBnT,EAAOJ,GAAG,CAAC,kBAAmB,SAAUtc,CAAK,CAAEuvB,CAAY,EACvD,IAAItsB,EAASusB,EAAkBD,EAAapE,UAAU,EAClDloB,GACAqsB,EAAgBrsB,EAAQssB,EAEhC,GACA7S,EAAOJ,GAAG,CAAC,eAAgB,SAAUtc,CAAK,CAAEkwB,CAAK,EAC7ClwB,EAAMU,eAAe,GAErB,IAAK,IADDyuB,EAAYC,EAAU3E,EACjB5mB,EAAI,EAAGC,EAAIosB,EAAMlvB,MAAM,CAAE6C,EAAIC,EAAGD,IAEjC4mB,UAAAA,CADJA,EAAOyF,CAAK,CAACrsB,EAAE,EACNid,IAAI,EACTqO,EAAazS,EAAOpN,OAAO,CAACsd,QAAQ,CACpCwC,EAAW1S,EAAO8O,MAAM,CAAC0E,KAAK,CAACrH,KAAK,GAEpCsG,EAAazS,EAAOpN,OAAO,CAACud,MAAM,CAClCuC,EAAW1S,EAAO8O,MAAM,CAAC0E,KAAK,CAACpH,MAAM,EAEzCqG,EAAWjE,MAAM,CAAGT,EAAKvqB,KAAK,CAC9Bwc,EAAOwS,qBAAqB,CAACC,EAAYC,GACzC1S,EAAO4N,KAAK,CAAC,qBAAsB6E,EAAWhE,UAAU,CAACgC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAEgC,EAAYtrB,IAAMC,EAAI,GAAI4Y,EAAO0Q,eAAe,GAEhI,GAEA1Q,EAAOJ,GAAG,CAAC,eAAgB,SAAUtc,CAAK,CAAEyvB,CAAU,EAClD,IAAIxsB,EAASusB,EAAkBC,GAC3BxsB,GACAyZ,EAAOwR,WAAW,CAACjrB,EAE3B,GAEAyZ,EAAOJ,GAAG,CAAC,WAAY,WACnBI,EAAOpN,OAAO,CAACqd,IAAI,CAACzB,MAAM,CAAClqB,MAAM,CAAG,IACxC,GAEAsd,EAAO6R,QAAQ,CAAC,aAAc,SAAUC,CAAQ,CAAEC,CAAQ,EACtD3T,EAAO4T,8BAA8B,CAAGF,KAAAA,EAAS3sB,OAAO,CAACsoB,EAAAA,CAAeA,CAACwE,WAAW,CAACC,QAAQ,CACjG,EACJ,EACH,CAED5F,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EAC7BA,EAAMvf,QAAQ,EACdlL,EAAS,WACL0P,EAAM4Y,qBAAqB,EAC/B,EAER,CACJ,CACJ,EACH,C,8PCxTDtqB,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,WAAY,WAC7B,MAAO,CACHrO,SCPO,qlBDQPoM,SAAU,IACVN,QAAS,GACTyV,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAMgb,YAAY,CAAG,GAErBhb,EAAMib,MAAM,CAACF,EAAM3J,OAAO,CAAE,SAAU8J,CAAU,EAC5Clb,EAAMoR,OAAO,CAAG8J,EAEhB,IAAK,IAAI/sB,EAAI,EAAGA,EAAI6R,EAAMoR,OAAO,CAAC9lB,MAAM,CAAE6C,IAETF,KAAAA,GAAzB+R,EAAMoR,OAAO,CAACjjB,EAAE,CAACid,IAAI,EAAiBpL,EAAMoR,OAAO,CAACjjB,EAAE,CAACid,IAAI,EAAIpL,EAAMgb,YAAY,GACjFhb,EAAMgb,YAAY,CAAGhb,EAAMoR,OAAO,CAACjjB,EAAE,CAACid,IAAI,CAC1CpL,EAAMoR,OAAO,CAACphB,MAAM,CAAC7B,EAAG,EAAG,CAAEmnB,KAAMtV,EAAMgb,YAAY,CAAE5P,KAAM,cAAe,GAIhFpL,CAAAA,EAAMmb,aAAa,CACnBhG,QAAQvoB,OAAO,CAACsuB,EAAY,SAAUE,CAAM,EAEpCA,EAAO5wB,KAAK,EAAIwV,EAAMmb,aAAa,EACnCnb,CAAAA,EAAMgb,YAAY,CAAGI,EAAO9F,IAAI,CAExC,GAGAtV,EAAMqb,YAAY,CAACH,CAAU,CAAC,EAAE,CAExC,GAEAlb,EAAM4G,GAAG,CAAC,mBAAoB,SAAUtc,CAAK,CAAEE,CAAK,EAChD,IAAK,IAAI2D,EAAI,EAAGA,EAAI6R,EAAMoR,OAAO,CAAC9lB,MAAM,CAAE6C,IAElC6R,EAAMoR,OAAO,CAACjjB,EAAE,CAAC3D,KAAK,EAAIA,GAC1BwV,EAAMqb,YAAY,CAACrb,EAAMoR,OAAO,CAACjjB,EAAE,CAG/C,GAEA6R,EAAMqb,YAAY,CAAG,SAAUC,CAAc,EACzCtb,EAAMgb,YAAY,CAAGM,EAAehG,IAAI,CACxCtV,EAAMmb,aAAa,CAAGG,EAAe9wB,KAAK,CAElD,CACJ,CACJ,G,wFE/CA,SAAS+wB,EAAgB3zB,CAAe,CAAEC,CAA2B,EACjE,IAAI,CAACD,eAAe,CAAGA,EACvB,IAAI,CAACC,2BAA2B,CAAGA,CACvC,CAMA,SAAS2zB,EAASC,CAAY,CAAEC,CAAQ,CAAEC,CAAY,CAAE/zB,CAAe,CAAEO,CAAsB,EAC3F,IAAI,CAACP,eAAe,CAAGA,EACvB,IAAI,CAACO,sBAAsB,CAAGA,EAC9B,IAAI,CAACwzB,YAAY,CAAGA,EACpB,IAAI,CAACC,gBAAgB,CAAG,IAAI,CAACD,YAAY,CAAG,IAAI,CAACA,YAAY,CAAG,oBAChE,IAAI,CAACE,WAAW,CAAG,eAEnB,IAAI,CAACC,GAAG,CAAGJ,EACX,IAAI,CAACD,YAAY,CAAGA,EAEpB,IAAI,CAAC/yB,WAAW,CAAG,CAAC,EACpB,IAAI,CAACA,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAACU,SAAS,CAAC,CAAG,IAAI,CAAC0yB,aAAa,CAACtzB,IAAI,CAAC,IAAI,EACjG,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAACW,UAAU,CAAC,CAAG,IAAI,CAAC0yB,cAAc,CAACvzB,IAAI,CAAC,IAAI,EACnG,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAACC,OAAO,CAAC,CAAG,IAAI,CAACqzB,WAAW,CAACxzB,IAAI,CAAC,IAAI,EAC7F,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAACG,SAAS,CAAC,CAAG,IAAI,CAACozB,aAAa,CAACzzB,IAAI,CAAC,IAAI,EACjG,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAACwzB,MAAM,CAAC,CAAG,IAAI,CAACC,eAAe,CAAC3zB,IAAI,CAAC,IAAI,EAChG,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAAC0zB,QAAQ,CAAC,CAAG,IAAI,CAACC,iBAAiB,CAAC7zB,IAAI,CAAC,IAAI,EACpG,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAACkB,IAAI,CAAC,CAAG,IAAI,CAAC0yB,UAAU,CAAC9zB,IAAI,CAAC,IAAI,EACzF,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,sBAAsB,CAACQ,UAAU,CAACoB,GAAG,CAAC,CAAG,IAAI,CAACyyB,SAAS,CAAC/zB,IAAI,CAAC,IAAI,CAC3F,C,oHA/BA6F,EAAAA,CAAUA,CAACC,OAAO,CAAC,kBAAmBgtB,GACtCA,EAAgB/sB,OAAO,CAAG,CAAC,kBAAmB,8BAA8B,CAO5E+sB,EAAgBtxB,SAAS,CAACwyB,UAAU,CAAG,SAAUhB,CAAY,CAAEC,CAAQ,CAAEC,CAAY,EACjF,OAAO,IAAIH,EAASC,EAAcC,EAAUC,EAAc,IAAI,CAAC/zB,eAAe,CAAE,IAAI,CAACC,2BAA2B,CACpH,EAuBA2zB,EAASvxB,SAAS,CAACyyB,aAAa,CAAG,SAAUC,CAAQ,EACjD,IAAIC,EAAOzvB,MAAMlD,SAAS,CAACmD,KAAK,CAAC9E,IAAI,CAAC,IAAI,CAACmzB,YAAY,CAAC,EAAE,CAACpuB,gBAAgB,CAAC,IAAI,CAACwuB,WAAW,EAAG,GAC/F,GAAIe,IAAAA,EAAKtxB,MAAM,CACX,OAAO,KAGX,IAAIuxB,EAAaD,EAAK7uB,OAAO,CAAC,IAAI,CAAC+tB,GAAG,CAAC,EAAE,EAEzC,GAAIe,KAAAA,EACA,OAAO,KAGX,IAAI7uB,EAAW6uB,EAAaF,SAE5B,GAAgBC,EAAKtxB,MAAM,CAChBsxB,CAAI,CAACA,EAAKtxB,MAAM,CAAG,EAAE,CACrB0C,EAAW,EACX4uB,CAAI,CAAC,EAAE,CAEPA,CAAI,CAAC5uB,EAAS,EAI7BwtB,EAASvxB,SAAS,CAAC6yB,YAAY,CAAG,WAC9B,IAAI,CAACrB,YAAY,CAAChzB,IAAI,CAAC,UAAW,IAAI,CAAC+C,SAAS,CAAC/C,IAAI,CAAC,IAAI,EAC9D,EAEA+yB,EAASvxB,SAAS,CAAC8yB,eAAe,CAAG,WACjC,IAAI,CAACtB,YAAY,CAAC7vB,MAAM,CAAC,UAC7B,EAEA4vB,EAASvxB,SAAS,CAAC+yB,SAAS,CAAG,WAC3B,IAAI,CAACC,kBAAkB,CAAC,IAAI,CAACxB,YAAY,CAAC,EAAE,CAACyB,aAAa,CAAC,IAAI,CAACrB,WAAW,EAC/E,EAEAL,EAASvxB,SAAS,CAACgzB,kBAAkB,CAAG,SAAU/vB,CAAO,EACrD,IAAI,CAAC4uB,GAAG,CAAC,EAAE,CAAG5uB,CAClB,EAEAsuB,EAASvxB,SAAS,CAACkzB,UAAU,CAAG,SAAUC,CAAQ,EAC9C,IAAIR,EAAO,IAAI,CAACnB,YAAY,CAAC,EAAE,CAACpuB,gBAAgB,CAAC,IAAI,CAACwuB,WAAW,GAE7DuB,CAAAA,GAAYR,EAAKtxB,MAAM,IAI3B,IAAI,CAACwwB,GAAG,CAAC,EAAE,CAAGc,CAAI,CAACQ,EAAS,CAC5B,IAAI,CAACC,gBAAgB,CAAG,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACxB,GAAG,CAAC,EAAE,EAE7C,IAAI,CAACuB,gBAAgB,CAAC/xB,MAAM,CAAG,GAC/B,IAAI,CAAC+xB,gBAAgB,CAAC,EAAE,CAAC3yB,KAAK,GAEtC,EAEA8wB,EAASvxB,SAAS,CAACqzB,QAAQ,CAAG,SAAUC,CAAU,EAI9C,IAAK,IAHDC,EAAQD,EAAWlwB,gBAAgB,CAAC,IAAI,CAACuuB,gBAAgB,EACzD6B,EAAe,EAAE,CAEZtvB,EAAI,EAAGA,EAAIqvB,EAAMlyB,MAAM,CAAE6C,IAC1B,IAAI,CAACvG,eAAe,CAACiG,gBAAgB,CAAC2vB,CAAK,CAACrvB,EAAE,GAC9CsvB,EAAa1tB,IAAI,CAACytB,CAAK,CAACrvB,EAAE,EAIlC,OAAOsvB,CACX,EAEAjC,EAASvxB,SAAS,CAACuB,SAAS,CAAG,SAAUlB,CAAK,EAC1C,IAAI,CAACozB,UAAU,CAAG,IAAI,CAAC5B,GAAG,CAAC,EAAE,CAC7B,IAAI,CAACuB,gBAAgB,CAAG,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACI,UAAU,EAErD,IAAI5vB,EAAeX,MAAMlD,SAAS,CAAC8D,OAAO,CAACzF,IAAI,CAAC,IAAI,CAAC+0B,gBAAgB,CAAE/yB,EAAMM,MAAM,EAC/EE,EAAS,IAAI,CAACpC,WAAW,CAAC4B,EAAMS,OAAO,CAAC,CAE5C,GAAID,EAAQ,CACRR,EAAMwB,cAAc,GACpB,IAAIV,EAAW,IAAI,CAACiyB,gBAAgB,CAChCM,EAAcrzB,EAAMszB,OAAO,CAC3BC,EAAiB/yB,EAAOR,EAAOc,EAAU0C,EAAc6vB,GACvDE,IACAvzB,EAAMM,MAAM,CAACkzB,QAAQ,CAAG,GACxBD,EAAeC,QAAQ,CAAG,EAElC,CACJ,EAEAtC,EAASvxB,SAAS,CAAC+xB,cAAc,CAAG,SAAU1xB,CAAK,CAAEc,CAAQ,CAAE0C,CAAY,EACvE,GAAIA,IAAiB1C,EAASE,MAAM,CAAG,EAQnC,OAAO,IAAI,CAACyyB,YAAY,CAAC3yB,EAAU0C,EAAe,GAPlD,IAAIkwB,EAAU,IAAI,CAAClC,GAAG,CAAC,EAAE,CAGzB,GAFA,IAAI,CAACmC,UAAU,CAAC,GAEZD,IAAY,IAAI,CAACE,OAAO,CACxB,OAAO,IAAI,CAACH,YAAY,CAAC,IAAI,CAACI,gBAAgB,GAAI,EAK9D,EAEA3C,EAASvxB,SAAS,CAAC8xB,aAAa,CAAG,SAAUzxB,CAAK,CAAEc,CAAQ,CAAE0C,CAAY,EACtE,GAAIA,IAAAA,EASA,OAAO,IAAI,CAACiwB,YAAY,CAAC3yB,EAAU0C,EAAe,GARlD,IAAIkwB,EAAU,IAAI,CAAClC,GAAG,CAAC,EAAE,CAGzB,GAFA,IAAI,CAACmC,UAAU,CAAC,IAEZD,IAAY,IAAI,CAACE,OAAO,CAAE,CAC1B,IAAIE,EAAY,IAAI,CAACD,gBAAgB,GACrC,OAAO,IAAI,CAACJ,YAAY,CAACK,EAAWA,EAAU9yB,MAAM,CAAG,EAC3D,CAIR,EAEAkwB,EAASvxB,SAAS,CAACiyB,aAAa,CAAG,SAAU5xB,CAAK,EAC9C,IAAI,CAAC2zB,UAAU,CAAC,GAEhB,IAAII,EAAe,IAAI,CAACF,gBAAgB,GACxC,OAAO,IAAI,CAACG,SAAS,CAACh0B,EAAO+zB,EACjC,EAEA7C,EAASvxB,SAAS,CAACgyB,WAAW,CAAG,SAAU3xB,CAAK,EAC5C,IAAI,CAAC2zB,UAAU,CAAC,IAEhB,IAAII,EAAe,IAAI,CAACF,gBAAgB,GACxC,OAAO,IAAI,CAACG,SAAS,CAACh0B,EAAO+zB,EACjC,EAEA7C,EAASvxB,SAAS,CAACqyB,iBAAiB,CAAG,SAAUhyB,CAAK,EAClD,IAAI,CAAC2zB,UAAU,CAAC,GAEhB,IAAII,EAAe,IAAI,CAACF,gBAAgB,GACxC,OAAO,IAAI,CAACG,SAAS,CAACh0B,EAAO+zB,EACjC,EAEA7C,EAASvxB,SAAS,CAACmyB,eAAe,CAAG,SAAU9xB,CAAK,EAChD,IAAI,CAAC2zB,UAAU,CAAC,IAEhB,IAAII,EAAe,IAAI,CAACF,gBAAgB,GACxC,OAAO,IAAI,CAACG,SAAS,CAACh0B,EAAO+zB,EACjC,EAEA7C,EAASvxB,SAAS,CAACs0B,oBAAoB,CAAG,WACtC,IAAI3B,EAAO,IAAI,CAACnB,YAAY,CAAC,EAAE,CAACpuB,gBAAgB,CAAC,IAAI,CAACwuB,WAAW,EACjE,IAAI,CAACoC,UAAU,CAAC,CAACrB,EAAKtxB,MAAM,EAE5B,IAAI+yB,EAAe,IAAI,CAACF,gBAAgB,GACxC,OAAO,IAAI,CAACJ,YAAY,CAACM,EAAc,EAC3C,EAEA7C,EAASvxB,SAAS,CAACsyB,UAAU,CAAG,SAAUjyB,CAAK,CAAEc,CAAQ,CAAE0C,CAAY,CAAE6vB,CAAW,SAChF,EACuB,IAAI,CAACY,oBAAoB,GAIzC,IAAI,CAACR,YAAY,CAAC3yB,EAAU,EACvC,EAEAowB,EAASvxB,SAAS,CAACu0B,mBAAmB,CAAG,WACrC,IAAI5B,EAAO,IAAI,CAACnB,YAAY,CAAC,EAAE,CAACpuB,gBAAgB,CAAC,IAAI,CAACwuB,WAAW,EACjE,IAAI,CAACoC,UAAU,CAACrB,EAAKtxB,MAAM,CAAG,GAE9B,IAAI+yB,EAAe,IAAI,CAACF,gBAAgB,GACxC,OAAO,IAAI,CAACJ,YAAY,CAACM,EAAcA,EAAa/yB,MAAM,CAAG,EACjE,EAEAkwB,EAASvxB,SAAS,CAACuyB,SAAS,CAAG,SAAUlyB,CAAK,CAAEc,CAAQ,CAAE0C,CAAY,CAAE6vB,CAAW,SAC/E,EACuB,IAAI,CAACa,mBAAmB,GAIxC,IAAI,CAACT,YAAY,CAAC3yB,EAAUA,EAASE,MAAM,CAAG,EACzD,EAEAkwB,EAASvxB,SAAS,CAACg0B,UAAU,CAAG,SAAUtB,CAAQ,EAC9C,IAAI,CAACuB,OAAO,CAAG,IAAI,CAACxB,aAAa,CAACC,GAEb,OAAjB,IAAI,CAACuB,OAAO,EAIhB,KAAI,CAACpC,GAAG,CAAC,EAAE,CAAG,IAAI,CAACoC,OAAO,GAG9B1C,EAASvxB,SAAS,CAACk0B,gBAAgB,CAAG,WAElC,OADA,IAAI,CAACM,aAAa,CAAG,IAAI,CAACnB,QAAQ,CAAC,IAAI,CAACY,OAAO,EACxC,IAAI,CAACO,aAAa,EAG7BjD,EAASvxB,SAAS,CAACq0B,SAAS,CAAG,SAAUh0B,CAAK,CAAEc,CAAQ,EACpD,GAAI,IAAI,CAACqzB,aAAa,CAACnzB,MAAM,CAAG,IAAI,CAAC+xB,gBAAgB,CAAC/xB,MAAM,EAAI,IAAI,CAACmzB,aAAa,CAACnzB,MAAM,CAAG,IAAI,CAAC+xB,gBAAgB,CAAC/xB,MAAM,CACpH,OAAO,IAAI,CAACozB,kBAAkB,CAACp0B,GAE/B,IAAIwD,EAAeX,MAAMlD,SAAS,CAAC8D,OAAO,CAACzF,IAAI,CAAC,IAAI,CAAC+0B,gBAAgB,CAAE/yB,EAAMM,MAAM,EACnF,OAAO,IAAI,CAACmzB,YAAY,CAAC3yB,EAAU0C,EAE3C,EAEA0tB,EAASvxB,SAAS,CAACy0B,kBAAkB,CAAG,SAAUp0B,CAAK,EACnD,IAAK,IAAI6D,EAAI,EAAGA,EAAI,IAAI,CAACswB,aAAa,CAACnzB,MAAM,CAAE6C,IAC3C,GAAI,IAAI,CAACswB,aAAa,CAACtwB,EAAE,CAACwwB,SAAS,CAACn0B,KAAK,GAAKF,EAAMM,MAAM,CAAC+zB,SAAS,CAACn0B,KAAK,CAEtE,OADA,IAAI,CAACi0B,aAAa,CAACtwB,EAAE,CAACzD,KAAK,GACpB,IAAI,CAAC+zB,aAAa,CAACtwB,EAAE,CAIpC,OAAO,IAAI,CAACswB,aAAa,CAAC,EAAE,CAAC/zB,KAAK,EACtC,EAEA8wB,EAASvxB,SAAS,CAAC8zB,YAAY,CAAG,SAAU3yB,CAAQ,CAAEuC,CAAK,EAEvD,OADAvC,CAAQ,CAACuC,EAAM,CAACjD,KAAK,GACdU,CAAQ,CAACuC,EACpB,E,2BC1NAW,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiB,CAClC,OACA,WACA,KACA,WACA,aACA,eACA,YACA,UACA,oBACA,kBACA,iBACA,aACA,8BACA,kBACA,yBACA,uBACA,kBACA,SACInC,CAAI,CACJvP,CAAQ,CACR8R,CAAE,CACFwc,CAAQ,CACRpe,CAAU,CACVnK,CAAY,CACZyM,CAAS,CACTrC,CAAO,CACPoe,CAAiB,CACjB/e,CAAe,CACfgf,CAAc,CACdvoB,CAAU,CACV1O,CAA2B,CAC3B0zB,CAAe,CACfwD,CAAsB,CACtB/sB,CAAoB,CACpBgtB,CAAe,EAEf,MAAO,CACHrrB,SCpEG,gwpBDqEHoM,SAAU,IACVC,MAAO,GACPkV,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EAGjC,IAFIkE,EACAC,EACAC,EAAWnf,EAAMof,WAAW,CAC5BC,EAAc,GAEElK,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,EAC5F,IAAMkK,EAAuB,IAAIC,EAAAA,CAAUA,CACrCC,EAAoBR,EAAgBS,SAAS,CAAC,cAEpD1E,EAAMN,QAAQ,CAAC,eAAgB,SAAUiF,CAAM,EAC3C1f,EAAM2f,YAAY,CAAGC,SAASF,EAAQ,GAC1C,GAEA,IAAMG,EAAiB,IACnB,IAAMC,EAAkBlK,IAAeS,EAAAA,CAAeA,CAACwE,WAAW,CAACkF,KAAK,CACxE/f,EAAMggB,kBAAkB,CAAGpK,IAAeS,EAAAA,CAAeA,CAACwE,WAAW,CAACoF,QAAQ,CAC9EjgB,EAAMkgB,mBAAmB,CAAGtK,IAAeS,EAAAA,CAAeA,CAACwE,WAAW,CAACsF,SAAS,CAChF,IAAMC,EAAmBxK,IAAeS,EAAAA,CAAeA,CAACwE,WAAW,CAACwF,OAAO,CAE3ErgB,EAAMsgB,yBAAyB,CAAGR,GAAmB9f,EAAMkgB,mBAAmB,EAAIE,EAClFpgB,EAAMugB,4BAA4B,CAAGvgB,EAAMggB,kBAAkB,EAAIhgB,EAAMkgB,mBAAmB,EAAIE,EAC9FpgB,EAAMwgB,oBAAoB,CAAGxgB,EAAMkgB,mBAAmB,EAAIE,EAE1DpgB,EAAMygB,eAAe,CAAG,CAACL,GAAoBZ,CACjD,CAEAxf,CAAAA,EAAM0gB,SAAS,CAAGA,EAAAA,CAClB1gB,CAAAA,EAAM2gB,QAAQ,CAAGA,EAAAA,CACjB3gB,CAAAA,EAAM4gB,YAAY,CAAGA,EAAAA,CACrB5gB,CAAAA,EAAM6gB,mBAAmB,CAAG1L,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,8BAA8B,CAAC,EAAE,EAC/GpV,EAAM8gB,MAAM,CAAG,GACf9gB,EAAM+gB,QAAQ,CAAG,KAEjB,IAAIC,EAAgB,EAAE,CACtBhhB,EAAMghB,aAAa,CAAG,EAAE,CACxBhhB,EAAMihB,eAAe,CAAGlC,EAAuBmC,qBAAqB,CAACF,EAAe,EAAG7B,GAAY,IACnGnf,EAAMmhB,oBAAoB,CAAG,GAC7BnhB,EAAMohB,yBAAyB,CAAG,GAClCphB,EAAMhO,oBAAoB,CAAGA,EAC7BgO,EAAMqhB,gBAAgB,CACtBrhB,EAAMqW,eAAe,CAAGA,EAAAA,CAAeA,CACvCwJ,EAAe9E,EAAM,UAAa,EAElC,IAAIuG,EAAgB,SAAUC,CAAkB,CAAEntB,CAAK,EAEnD,GAAImtB,KAAAA,EAAmBxzB,OAAO,CAACsoB,EAAAA,CAAeA,CAACwE,WAAW,CAACC,QAAQ,EAE/D,IAAK,IADD0G,EAAYD,EAAmB9J,KAAK,CAAC,IAAI,CAAC,EAAE,CACvCtpB,EAAI,EAAGA,EAAI6R,EAAMyhB,gBAAgB,CAACn2B,MAAM,CAAE6C,IAAK,CACpD,IAAII,EAAUyR,EAAMyhB,gBAAgB,CAACtzB,EAAE,CACvC,GAAII,EAAQmzB,SAAS,GAAKF,EACtB,OAAOjzB,EAAQozB,IAAI,QAM/B,EAAU/L,UAAU,CAAC9T,WAAW,GAAG/T,OAAO,CAAC,aAAe,IAGtDwzB,EAAqBA,CADrBA,EAAqBK,EADFhM,UAAU,CAAC6B,KAAK,CAAC,IACT,CAAC,EAAE,EACUhY,OAAO,CAAC,IAAK,IAAIA,OAAO,CAAC,IAAK,KAC/De,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,4BAA8B8uB,EAAmBzf,WAAW,GAAI,CAAE1N,MAAOA,CAAM,IAEzHoM,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,4BAA8BuN,EAAM4V,UAAU,CAAC9T,WAAW,GAAI,CAAE1N,MAAOA,CAAM,EAEtI,CAEA4L,CAAAA,EAAM6hB,sBAAsB,CAAG,CAACC,EAAcC,EAAcC,IACxD,EAAiBC,eAAe,CACrBjwB,EAAqBS,SAAS,CAAC,CAAC,qBAAqB,EAAEuN,EAAMkiB,iBAAiB,CAAG,uCAAyC,wBAAwB,CAAC,CAAE,CACxJ9tB,MAAO2tB,EACPI,UAAWH,CACf,GAGGhwB,EAAqBS,SAAS,CAAC,CAAC,qBAAqB,EAAEuN,EAAMkiB,iBAAiB,CAAG,gCAAkC,eAAe,CAAC,CAAE,CACxI9tB,MAAO2tB,EACPI,UAAWH,CACf,GAGJhiB,EAAMoiB,oBAAoB,CAAG,CAACxM,EAAYkM,EAAcC,EAAcC,KAElE,GADAhiB,EAAMqiB,cAAc,CAAGriB,EAAM6hB,sBAAsB,CAACC,EAAcC,EAAcC,GAC5E,CAACF,EAAaG,eAAe,CAAE,CAC/BjiB,EAAMsiB,gBAAgB,CAAGtwB,EAAqBS,SAAS,CAAC,4CACxD,MACJ,CACA,GAAIuN,EAAMkiB,iBAAiB,CAAE,CACzBliB,EAAMsiB,gBAAgB,CAAGtwB,EAAqBS,SAAS,CAAC,gEAAiE,CAAE8vB,eAAgBP,CAAW,GACtJ,MACJ,CACAhiB,EAAMsiB,gBAAgB,CAAGhB,EAAc1L,EAAY,EACvD,EAEA5V,EAAMwiB,4BAA4B,CAAG,CAAC5M,EAAYkM,EAAcC,EAAcC,KAC1EhiB,EAAMyiB,qBAAqB,CAAGziB,EAAM6hB,sBAAsB,CAACC,EAAcC,EAAcC,GACvFhiB,EAAMqiB,cAAc,CAAGriB,EAAMyiB,qBAAqB,EAGtDziB,EAAM0iB,QAAQ,CAAG,WACb,GAAK1iB,EAAM6T,QAAQ,EAGnB7T,EAAM2iB,WAAW,CAAG,GACpB3iB,EAAM4V,UAAU,CAAGmF,EAAM,UAAa,CACtC8E,EAAe7f,EAAM4V,UAAU,EAE/B,IAAIgN,EAAoBzN,QAAQ0N,IAAI,CAAC7iB,EAAM6T,QAAQ,EAYnD,GAVA7T,EAAM8iB,wBAAwB,CAAG9iB,QAAAA,EAAM+iB,OAAO,CAACC,eAAe,GAC/B/0B,KAAAA,IAA3B+R,EAAMijB,gBAAgB,EACtBjjB,CAAAA,EAAMijB,gBAAgB,CAAG,EAAG,EAE5BjjB,EAAM8iB,wBAAwB,EAC9B9iB,CAAAA,EAAMijB,gBAAgB,CAAG,EAAI,EAGjCjjB,EAAMkjB,mBAAmB,CAAG5B,EAActhB,EAAM4V,UAAU,CAAE,GAAG9T,WAAW,GAEtE9B,EAAM4V,UAAU,CAAC7nB,OAAO,CAAC,KAAO,GAAI,CACpC,IAAI6zB,EAAS5hB,EAAM4V,UAAU,CAAC6B,KAAK,CAAC,KAIpC,GAHAmL,EAAkBO,UAAU,CAAG,QAG3BnjB,EAAM4V,UAAU,CAAC9T,WAAW,GAAG/T,OAAO,CAAC,aAAe,GACtD60B,EAAkBQ,WAAW,CAAG,CAACxB,CAAM,CAAC,EAAE,CAAC,CAC3CgB,EAAkBS,WAAW,CAAG,GAChCrjB,EAAM6T,QAAQ,CAACwP,WAAW,CAAG,GACzBrjB,CAAAA,uBAAAA,EAAMsjB,KAAK,EAA6BtjB,uBAAAA,EAAMsjB,KAAK,GACnDtjB,EAAMiY,SAAS,CAAC,CACZ1C,YAAa+L,EAActhB,EAAM4V,UAAU,CAAE,GAC7CJ,OAAQoM,CAAM,CAAC,EAAE,CACjBnM,WAAY,mBAChB,QAED,GAAIzV,EAAM4V,UAAU,CAAC9T,WAAW,GAAG/T,OAAO,CAACsoB,EAAAA,CAAeA,CAACwE,WAAW,CAACC,QAAQ,EAAI,GAAI,CAE1F9a,EAAMkiB,iBAAiB,CAAG,GAC1B,IAAK,IAAI/zB,EAAI,EAAGA,EAAI6R,EAAMyhB,gBAAgB,CAACn2B,MAAM,CAAE6C,IAAK,CACpD,IAAIo1B,EAAkBvjB,EAAMyhB,gBAAgB,CAACtzB,EAAE,CAC/C,GAAIo1B,EAAgB7B,SAAS,CAAC5f,WAAW,KAAO8f,CAAM,CAAC,EAAE,CAAC9f,WAAW,GAAI,CACrE8gB,EAAkBY,QAAQ,CAAGD,EAAgB7B,SAAS,CACtD,KACJ,CACJ,CACJ,CACJ,MAEIkB,EAAkBO,UAAU,CAAGnjB,EAAM4V,UAAU,CAE3C5V,EAAM4V,UAAU,CAAC9T,WAAW,KAAOuU,EAAAA,CAAeA,CAACwE,WAAW,CAAC4I,IAAI,GACnEb,EAAkBO,UAAU,CAAG9M,EAAAA,CAAeA,CAACwE,WAAW,CAACkF,KAAK,CAChE6C,EAAkBQ,WAAW,CAAG,CAAC,OAAO,CAIhDpjB,CAAAA,EAAM0jB,UAAU,CAAG,GACnB1jB,EAAM2jB,cAAc,CAAG,GAGvB1E,CAFAA,EAAgBJ,EAAkB+E,WAAW,CAAChB,EAAmB,CAAC5iB,EAAM6jB,SAAS,GAEnEp5B,IAAI,CAAC,SAAU0M,CAAQ,EACjC,GAAI6I,EAAM8gB,MAAM,CAAE,CACd9gB,EAAM8gB,MAAM,CAAG,GACf,MACJ,CAEA,GAAI3pB,MAAAA,EAAS2sB,MAAM,CAAU,CACzB9jB,EAAM2iB,WAAW,CAAGxrB,EAAS4sB,UAAU,CACvC/jB,EAAM0jB,UAAU,CAAG,GACnB1jB,EAAM2jB,cAAc,CAAG,GACvB9E,EAAkBtZ,MAAM,CAAC0Z,GACzB,MACJ,CACA,GAAI9nB,EAAShI,IAAI,CAAE,CACf6xB,EAAgB7pB,EAAShI,IAAI,CAAC60B,YAAY,CAC1C,IAAIC,EAAa,EAAE,CAMnB,GAJIjkB,EAAM4V,UAAU,GAAKS,EAAAA,CAAeA,CAACwE,WAAW,CAACoF,QAAQ,EACzDgE,EAAWl0B,IAAI,CAACiQ,EAAMkkB,YAAY,EAGlCD,EAAW34B,MAAM,CACjB,IAAK,IAAI6C,EAAI,EAAGC,EAAI4yB,EAAc11B,MAAM,CAAEkC,EAAI,EAAG+R,EAAI0kB,EAAW34B,MAAM,CAAE6C,EAAIC,EAAGD,IAC3E,IAAKX,EAAI,EAAGA,EAAI+R,EAAG/R,IACfy2B,CAAU,CAACz2B,EAAE,CAACwzB,CAAa,CAAC7yB,EAAE,EAK1C6R,EAAMihB,eAAe,CAACkD,UAAU,CAAC1jB,EAAQ,WAAWugB,EAAe,CAAChhB,EAAMokB,WAAW,CAAEpkB,EAAMqkB,aAAa,CAAC,CAAErkB,EAAMskB,YAAY,GAC/HtkB,EAAMihB,eAAe,CAACsD,UAAU,GAAG95B,IAAI,CAAC,SAAU+5B,CAAO,EACrDxkB,EAAMghB,aAAa,CAAGwD,EACtBxkB,EAAMykB,SAAS,CAAGD,IAAAA,EAAQl5B,MAAM,EAAUk5B,EAAQl5B,MAAM,GAAK01B,EAAc11B,MAAM,CACjF0U,EAAM2jB,cAAc,CAAG,GACvB3jB,EAAMgiB,UAAU,CAAGV,EAActhB,EAAM4V,UAAU,CAAE5V,EAAMghB,aAAa,CAAC11B,MAAM,EAC7E0U,EAAMqiB,cAAc,CAAGrwB,EAAqBS,SAAS,CAAC,+CAAgD,CAAEiyB,OAAQ1kB,EAAMghB,aAAa,CAAC11B,MAAM,GAE1I,IAAM02B,EAAahiB,EAAMkiB,iBAAiB,CAAGliB,EAAMgiB,UAAU,CAAGhiB,EAAMgiB,UAAU,CAAClgB,WAAW,GAC5F,GAAI0iB,IAAAA,EAAQl5B,MAAM,CAAQ,CACtB0U,EAAMqiB,cAAc,CAAGrwB,EAAqBS,SAAS,CAAC,CAAC,qBAAqB,EAAEuN,EAAMkiB,iBAAiB,CAAG,oBAAsB,yBAAyB,CAAC,CAAE,CACtJyC,YAAa3C,CACjB,GACA,MACJ,CACA,GAAIhiB,EAAM6jB,SAAS,CAAE,CACjB7jB,EAAMwiB,4BAA4B,CAACxiB,EAAM4V,UAAU,CAAEgN,EAAmB5iB,EAAMghB,aAAa,CAAC11B,MAAM,CAAE02B,GACpG,MACJ,CAEAhiB,EAAMoiB,oBAAoB,CAACpiB,EAAM4V,UAAU,CAAEgN,EAAmB5iB,EAAMghB,aAAa,CAAC11B,MAAM,CAAE02B,EAChG,EACJ,CAEuB,OAAnBhiB,EAAM+gB,QAAQ,EACdzwB,EAAS,WACL0P,EAAM4c,IAAI,CAAGzH,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,SAC/DpV,EAAM8b,GAAG,CAAG3G,QAAQjoB,OAAO,CAAC8S,EAAM4c,IAAI,CAAC,EAAE,CAACM,aAAa,CAAC,iBACxDld,EAAM+gB,QAAQ,CAAGxF,EAAgBkB,UAAU,CAACzc,EAAM4c,IAAI,CAAE5c,EAAM8b,GAAG,CAAE,oBACnE9b,EAAM+gB,QAAQ,CAACjE,YAAY,EAC/B,EAER,GAEA9c,EAAM4kB,OAAO,CAAChP,UAAU,CAAG5V,EAAM4V,UAAU,KAG/C5V,EAAM6kB,oBAAoB,CAAG,SAAUC,CAAI,CAAEC,CAAM,EAC/C,IAAK,IAAI52B,EAAI,EAAGA,EAAI22B,EAAKE,MAAM,CAAC15B,MAAM,CAAE6C,IACpC,GAAI22B,OAAAA,EAAKE,MAAM,CAAC72B,EAAE,EAAa22B,EAAKE,MAAM,CAAC72B,EAAE,CAACqO,EAAE,GAAKuoB,EACjD,OAAOD,EAAKE,MAAM,CAAC72B,EAAE,CAAConB,WAAW,CAIzC,OAAOuP,IAAAA,EAAKE,MAAM,CAAC15B,MAAM,CAAS,GAAKw5B,EAAKE,MAAM,CAAC,EAAE,CAACzP,WAAW,EAGrEvV,EAAMkkB,YAAY,CAAG,SAAUY,CAAI,EAC/BA,EAAKvpB,GAAG,CAAGupB,EAAKtoB,EAAE,GAAKnG,EAAaN,OAAO,CAAGQ,EAAW0uB,iBAAiB,CAACH,EAAKI,OAAO,EAAI,EAC/F,EAEAllB,EAAMmlB,gBAAgB,CAAG,SAAUC,CAAa,EAE5C,GADAplB,EAAM8gB,MAAM,CAAG,GACX9gB,EAAMqlB,aAAa,GAAKD,EAAc56B,KAAK,EAAIwV,EAAMskB,YAAY,GAAKc,EAAcE,OAAO,CAAE,CACjEr3B,KAAAA,IAAxB+R,EAAMqlB,aAAa,EACnBE,EAAAA,CAAOA,CAACC,UAAU,CAAC,cAAe,iBAAkBJ,EAAc9P,IAAI,EAG1EtV,EAAMqlB,aAAa,CAAGD,EAAc56B,KAAK,CACzCwV,EAAMylB,oBAAoB,CAAGzzB,EAAqBS,SAAS,CAAC,gCAAiC,CAAE2oB,OAAQgK,EAAcnwB,KAAK,GAC1H+K,EAAMskB,YAAY,CAAGc,EAAcE,OAAO,CAE1C,IAAId,EAAU/jB,EAAQ,WAAWT,EAAMihB,eAAe,CAACyE,mBAAmB,GAAI,CAAC1lB,EAAMokB,WAAW,CAAEpkB,EAAMqkB,aAAa,CAAC,CAAErkB,EAAMskB,YAAY,EAC1ItkB,EAAMihB,eAAe,CAACkD,UAAU,CAACK,EAASxkB,EAAMghB,aAAa,CAAC11B,MAAM,EACpE0U,EAAMihB,eAAe,CAACsD,UAAU,GAAG95B,IAAI,CAAC,SAAU+5B,CAAO,EACrDxkB,EAAMghB,aAAa,CAAGwD,EAClBxkB,EAAM+gB,QAAQ,EACd/gB,EAAM+gB,QAAQ,CAAC/D,SAAS,EAEhC,EACJ,CACJ,EAEAhd,EAAM2lB,iBAAiB,CAAG,SAAUvK,CAAM,UAClCpb,EAAM4V,UAAU,CAAC7nB,OAAO,CAACsoB,EAAAA,CAAeA,CAACwE,WAAW,CAACoF,QAAQ,EAAI,IAC7D7E,CAAAA,iBAAAA,EAAO5wB,KAAK,CAAC,EAAE,EAAuB4wB,kBAAAA,EAAO5wB,KAAK,CAAC,EAAE,EAAwB4wB,oBAAAA,EAAO5wB,KAAK,CAAC,EAAE,GAKhGwV,EAAM4V,UAAU,CAAC7nB,OAAO,CAACsoB,EAAAA,CAAeA,CAACwE,WAAW,CAACC,QAAQ,EAAI,IAC7DM,UAAAA,EAAO5wB,KAAK,CAAC,EAAE,EAAgB4wB,YAAAA,EAAO5wB,KAAK,CAAC,EAAE,EAAkB4wB,iBAAAA,EAAO5wB,KAAK,CAAC,EAAE,CAM3F,EAEAwV,EAAMokB,WAAW,CAAG,SAAUU,CAAI,EAE9B,OADA9kB,EAAMqhB,gBAAgB,CAAGrhB,EAAMqlB,aAAa,CAAC,EAAE,CACxCP,CAAI,CAAC9kB,EAAMqlB,aAAa,CAAC,EAAE,CAAC,EAEvCrlB,EAAMqkB,aAAa,CAAG,SAAUS,CAAI,EAChC,OAAOA,CAAI,CAAC9kB,EAAMqlB,aAAa,CAAC,EAAE,CAAC,EAGvCrlB,EAAM4lB,eAAe,CAAG,WAChB5lB,EAAM6lB,WAAW,GAIrB7lB,EAAM6lB,WAAW,CAAG,GACpB7lB,EAAMohB,yBAAyB,CAAGpvB,EAAqBS,SAAS,CAAC,uBACjEnC,EAAS,WACL0P,EAAMihB,eAAe,CAAC6E,mBAAmB,GAAGr7B,IAAI,CAAC,SAAU+5B,CAAO,EAC9D,IAAI12B,EAAekS,EAAMghB,aAAa,CAAC11B,MAAM,CAC7C0U,EAAMghB,aAAa,CAAGhhB,EAAMghB,aAAa,CAAC+E,MAAM,CAACvB,GAEjDl0B,EAAS,WACL0P,EAAM+gB,QAAQ,CAAC5D,UAAU,CAACrvB,GAC1BkS,EAAMykB,SAAS,CAAGD,IAAAA,EAAQl5B,MAAM,EAAUk5B,EAAQl5B,MAAM,CAAG0U,EAAMihB,eAAe,CAAC+E,aAAa,GAC9FhmB,EAAM6lB,WAAW,CAAG,GACpB7lB,EAAMmhB,oBAAoB,CAAGnvB,EAAqBS,SAAS,CAAC,+BAAgC,CAAE2B,MAAO4L,EAAMghB,aAAa,CAAC11B,MAAM,GAC/H0U,EAAMohB,yBAAyB,CAAG,EACtC,EACJ,EACJ,GACJ,EAEAphB,EAAMimB,SAAS,CAAG,WACd5G,EAAc,CAACA,EAGflK,QAAQvoB,OAAO,CAACoT,EAAMghB,aAAa,CAAE,SAAU/G,CAAM,CAAE/uB,CAAG,EACtD,IAAIyC,EAAQqS,EAAMkmB,aAAa,CAACn4B,OAAO,CAACksB,EAAOzd,EAAE,CAC7C7O,CAAU,KAAVA,GAAgB0xB,EAChBrf,EAAMkmB,aAAa,CAACn2B,IAAI,CAACkqB,EAAOzd,EAAE,EAC3B7O,EAAQ,IAAM,CAAC0xB,GACtBrf,EAAMkmB,aAAa,CAACl2B,MAAM,CAACrC,EAAO,EAE1C,EACJ,EAEAqS,EAAMmmB,sBAAsB,CAAG,WAC3BnmB,EAAM4kB,OAAO,CAACwB,WAAW,CAAGpmB,EAAMkmB,aAAa,CAAC56B,MAAM,CAAG,CAC7D,EAEA0U,EAAMqmB,iCAAiC,CAAG,SAAUpxB,CAAK,EACrD,OAAOjD,EAAqBS,SAAS,CAAC,kDAAmD,CAAE6zB,cAAerxB,CAAM,EACpH,EAEA+K,EAAMumB,mBAAmB,CAAG,WACpBvmB,EAAM+gB,QAAQ,EACd/gB,EAAM+gB,QAAQ,CAAChE,eAAe,EAEtC,EAEA/c,EAAMwmB,gCAAgC,CAAG,WACjCxmB,EAAM+gB,QAAQ,EACd/gB,EAAM+gB,QAAQ,CAACjE,YAAY,EAEnC,EAEA5vB,EAAQu5B,EAAE,CAAC,WAAY,WACnB5H,EAAkBtZ,MAAM,CAAC0Z,GACzBJ,EAAkBtZ,MAAM,CAAC2Z,GACzBlf,EAAMghB,aAAa,CAAC11B,MAAM,CAAG,EAC7Bo7B,IACA1mB,EAAMsG,QAAQ,GACVtG,EAAM+gB,QAAQ,EACd/gB,EAAM+gB,QAAQ,CAAChE,eAAe,GAGlCuC,EAAqBqH,IAAI,EAC7B,GAEAC,EAAAA,CAAkBA,CACbC,QAAQ,GACRC,IAAI,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAUzH,IACf0H,SAAS,CAAC,IACP,GAAI/M,EAAOgN,KAAK,GAAKC,EAAAA,CAAeA,CAACC,SAAS,CAAE,CAC5CC,EAAyBnN,EAAOoN,KAAK,CAAE,IACvC,MACJ,CAEIpN,EAAOgN,KAAK,GAAKC,EAAAA,CAAeA,CAACI,WAAW,GACxCtnB,EAAM4V,UAAU,GAAKS,EAAAA,CAAeA,CAACwE,WAAW,CAACsF,SAAS,CAC1DoH,EAAwBtN,EAAOoN,KAAK,EAAE58B,IAAI,CAAC,KACvC+8B,EAAcvN,EAAOwN,WAAW,CACpC,GAEAL,EAAyBnN,EAAOoN,KAAK,CAAE,IAGnD,GAEJrnB,EAAM4G,GAAG,CAAC,+BAAgC,CAAC8gB,EAAGr2B,KAC1Ck2B,EAAwBl2B,EAAKs2B,YAAY,EAAEl9B,IAAI,CAAC,KAC5C+8B,EAAcn2B,EAAKo2B,WAAW,CAClC,EACJ,GAEA,IAAMF,EAA0B,GACrBvnB,EAAMihB,eAAe,CACvB2G,uBAAuB,CAAC,GACdC,EAAcvb,QAAQ,CAACwb,EAAatrB,EAAE,GAEhD+nB,UAAU,CAAC,GACX95B,IAAI,CAAC,IACEuV,EAAMkmB,aAAa,GAAK2B,EACxB7nB,EAAMkmB,aAAa,CAAC56B,MAAM,CAAG,EAE7B0U,EAAMkmB,aAAa,CAAC6B,UAAU,CAACF,EAAe,IAGlD7nB,EAAMghB,aAAa,CAAGwD,EAEO,IAAzBqD,EAAcv8B,MAAM,EACpB0U,EAAMmmB,sBAAsB,EAEpC,GAGFqB,EAAgB,eAACC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CACfznB,EAAM+gB,QAAQ,EAAI/gB,EAAM6jB,SAAS,GAAK4D,GAAeznB,EAAMghB,aAAa,CAAC11B,MAAM,CAAG,GAClF0U,EAAMuZ,WAAW,CAAC,KACdvZ,EAAM+gB,QAAQ,CAAC5D,UAAU,CAAC,EAC9B,EAER,EAEMiK,EAA2B,CAACC,EAAOW,KACrChoB,EAAMghB,aAAa,CAACp0B,OAAO,CAAC,IACpBy6B,EAAM/a,QAAQ,CAACwb,EAAatrB,EAAE,GAC9BsrB,CAAAA,EAAaG,WAAW,CAAGD,CAAU,CAE7C,EACJ,EAEAhoB,EAAM4G,GAAG,CAAC,8BAA+B,SAAUtc,CAAK,CAAE+G,CAAI,EAC1D62B,EAA4B72B,EAChC,GACA,IAAI62B,EAA8B,SAAU72B,CAAI,EAC5C,IAAK,IAAIlD,EAAI,EAAGA,EAAI6R,EAAMghB,aAAa,CAAC11B,MAAM,CAAE6C,IAC5C,IAAK,IAAIg6B,EAAI,EAAGA,EAAI92B,EAAK+2B,UAAU,CAAC98B,MAAM,CAAE68B,IACxC,GAAInoB,EAAMghB,aAAa,CAAC7yB,EAAE,CAACqO,EAAE,GAAKnL,EAAK+2B,UAAU,CAACD,EAAE,CAAE,CAClD92B,EAAK+2B,UAAU,CAACp4B,MAAM,CAACm4B,EAAG,GAC1BnoB,EAAMghB,aAAa,CAAC7yB,EAAE,CAACk6B,WAAW,CAAG,UACrCl6B,IACA,KACJ,CAGZ,EAEA6R,EAAM4G,GAAG,CAAC,kBAAmB,SAAUtc,CAAK,CAAE+G,CAAI,EAC9Ci3B,EAAaj3B,EACjB,GAuBA,IAAIi3B,EAAe,SAAUzsB,CAAQ,EAEjC0sB,EADsCC,6BAA6B,CAAC3sB,GACtDpR,IAAI,CACd,SAAU0M,CAAQ,EACd,IAAK,IAAIhJ,EAAI,EAAGA,EAAI6R,EAAMghB,aAAa,CAAC11B,MAAM,CAAE6C,IAC5C,IAAK,IAAIg6B,EAAI,EAAGA,EAAIhxB,EAAShI,IAAI,CAAC7D,MAAM,CAAE68B,IACtC,GAAInoB,EAAMghB,aAAa,CAAC7yB,EAAE,CAACqO,EAAE,GAAKrF,EAAShI,IAAI,CAACg5B,EAAE,CAAC3rB,EAAE,CAAE,CACnDrF,EAAShI,IAAI,CAACg5B,EAAE,CAAC5sB,GAAG,CAAGhF,EAAW0uB,iBAAiB,CAAC9tB,EAAShI,IAAI,CAACg5B,EAAE,CAACjD,OAAO,EAC5EllB,EAAMghB,aAAa,CAAC7yB,EAAE,CAAGgJ,EAAShI,IAAI,CAACg5B,EAAE,CACzChxB,EAAShI,IAAI,CAACa,MAAM,CAACm4B,EAAG,GACxBh6B,IACA,KACJ,CAGZ,EACA,SAAUs6B,CAAK,EACXC,QAAQC,IAAI,CAAC,CAAC,8BAA8B,EAAEF,EAAM,CAAC,CACzD,GAGAzoB,EAAM+gB,QAAQ,EACd/gB,EAAM+gB,QAAQ,CAAC/D,SAAS,EAEhC,EAEI0J,EAAgB1mB,EAAM4oB,gBAAgB,CAAC,gBAAiB,WACxD5oB,EAAMmmB,sBAAsB,GAC5BnmB,EAAM4kB,OAAO,CAACiE,uBAAuB,CAAC7oB,EAAMkmB,aAAa,CAAElmB,EAAMghB,aAAa,CAClF,GAEAhhB,EAAMmlB,gBAAgB,CAACnlB,EAAM8oB,cAAc,CAAC,EAAE,EAC9C9oB,EAAM4G,GAAG,CAAC,eAAgB,SAAUtc,CAAK,CAAE6E,CAAI,EAC3C,IAAK,IAAW24B,EAAcvsB,EAArBpN,EAAI,EAAsBA,EAAI6R,EAAMghB,aAAa,CAAC11B,MAAM,CAAE6C,IAE3DgB,IAAS24B,CADbA,EAAe9nB,EAAMghB,aAAa,CAAC7yB,EAAE,EACXqO,EAAE,EAAIsrB,EAAaiB,OAAO,GAG5CxtB,KAAAA,CAFJA,EAAMhF,EAAW0uB,iBAAiB,CAAC6C,EAAaiB,OAAO,EAAEC,SAAS,CAAC,EAAC,EAE5Dj7B,OAAO,CAAC,UACZ+U,EAAUvH,GAAG,CAACA,GAEd7K,OAAOu4B,IAAI,CAACnB,EAAaiB,OAAO,CAAE,UAIlD,EACJ,CACJ,CACJ,EACH,E,qEEjkBDz6B,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,cAAe,CAC9B,QACA,kBACA,KACA,SAAU3sB,CAAK,CAAE0J,CAAe,CAAEsC,CAAE,EAiBhC,MAAO,CACH8mB,UAAW,SAAUC,CAAW,MAjBd5tB,EAEd6tB,EAEAz6B,EAcA,OAlBc4M,EAkBMuE,EAAgByC,YAAY,CAAG,kBAjBvDnM,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAC7B2tB,EAAchnB,EAAGuI,KAAK,GAU1Bhc,CARIA,EAAU06B,EADMnyB,IAAI,CAACqE,EAeiD4tB,EAftC,CAAEG,QAASF,EAAYz6B,OAAO,GAC5ClE,IAAI,CACtB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOA,CACX,IAEIC,YAAY,CAAGJ,EAChBz6B,CAMP,CACJ,CACJ,EACH,E,2BCnBDL,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,YAAa,CAC9B,KACA,OACA,aACA,kBACA,cACA,WACA,SAAUI,CAAE,CAAEvC,CAAI,CAAEW,CAAU,CAAEV,CAAe,CAAE2pB,CAAW,CAAEn5B,CAAQ,EAClE,MAAO,CACHqD,SCpBG,wxDDqBHoM,SAAU,IACVC,MAAO,CACHjK,QAAS,UACb,EACAnC,WAAY,CACR,SACA,SAAUoT,CAAM,EACZA,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAC7DgV,EAAO0iB,QAAQ,CAAG,CACdC,WAAY,EAChB,EACA3iB,EAAO4iB,gBAAgB,CAAG,IACtB5iB,EAAO0iB,QAAQ,CAACC,UAAU,CAAGjR,EAC7B1R,EAAOuS,WAAW,EACtB,EACAvS,EAAO6iB,eAAe,CAAG,EAAE,CAC3B7iB,EAAO8iB,SAAS,CAAG,CACfC,WAAY,wBACZC,aAAc,kBAClB,CACJ,EACH,CACD9U,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAM3K,WAAW,CAAGC,EAAAA,CAAWA,CAE/B,IAAM20B,EAAe,KACjB,OAAQ,CAACjqB,EAAM+Q,KAAK,CAAC,EAAE,EAAI/Q,EAAM+Q,KAAK,EAAEmZ,QAAQ,CAACpoB,WAAW,IACxD,IAAK,OAIL,IAAK,WAHD9B,EAAMmqB,cAAc,CAAG3pB,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,8CACjEuN,EAAMoqB,UAAU,CAAG,GACnB,KAKJ,SACIpqB,EAAMmqB,cAAc,CAAG3pB,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,2CACjEuN,EAAMoqB,UAAU,CAAG,EAC3B,CACJ,EAEMC,EAA+BrqB,EAAM4oB,gBAAgB,CAAC,kBAAmB,SAAUlO,CAAQ,EACzFA,EAASpvB,MAAM,CAAG,IAClB0U,EAAM+Q,KAAK,CAAG2J,CAAQ,CAAC,EAAE,CACzB1a,EAAM0pB,QAAQ,CAACz0B,KAAK,CAAG+K,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,0BAA2B,CAAEwC,MAAOkgB,QAAQ0N,IAAI,CAAC7iB,EAAM+Q,KAAK,CAAChC,KAAK,CAAE,GAChI/O,EAAM0pB,QAAQ,CAACC,UAAU,CAAG,GAC5BM,IAER,GAEMK,EAAUnV,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,4BAA4B,CAAC,EAAE,CAC/FpV,CAAAA,EAAMuqB,eAAe,CAAG,WACpB,IAAMpB,EAAc,CAChB1f,QAASzJ,EAAM+Q,KAAK,CAACvU,EAAE,CACvBuS,MAAO/O,EAAM0pB,QAAQ,CAACz0B,KAAK,CAC3Bu1B,QAAS,EAAE,CACXC,iBAAkB,GAClBC,gBAAiB1qB,EAAAA,EAAM+Q,KAAK,CAAC4Z,KAAK,CAACr/B,MAAM,EAAG0U,EAAM0pB,QAAQ,CAACC,UAAU,CACrEiB,gBAAiB,EACrB,EAGAN,EAAQ5V,QAAQ,CAAC,gBAGjBmW,EADgC3B,SAAS,CAACC,GAC9B1+B,IAAI,CAAC,SAAU0M,CAAQ,EAC3BA,EAAShI,IAAI,EAAIgI,EAAShI,IAAI,CAACs5B,KAAK,EACpC6B,EAAQ7V,WAAW,CAAC,iBACpB6V,EAAQ7V,WAAW,CAAC,iBACO,MAApBtd,EAAS2sB,MAAM,EACtBxzB,EAAS,WACL0P,EAAM8qB,aAAa,CAAC,GACxB,EAAG,KAGP9qB,EAAM4U,KAAK,CAAC,iBAAkB5U,EAAM+Q,KAAK,CAACvU,EAAE,EAC5CwD,EAAM4kB,OAAO,CAAChd,SAAS,EAC3B,EACJ,EAEA5H,EAAM8qB,aAAa,CAAG,SAAUC,CAAM,MAE9BC,EADJhrB,EAAM4U,KAAK,CAAC,iBAAkB5U,EAAM+Q,KAAK,CAACvU,EAAE,EAGxCuuB,GACAC,EAAe,IACfV,EAAQ5V,QAAQ,CAAC,yBAEjBsW,EAAe,KACfV,EAAQ5V,QAAQ,CAAC,kBAGrBpkB,EAAS,WAEDy6B,EACAT,EAAQ7V,WAAW,CAAC,uBAEpB6V,EAAQ7V,WAAW,CAAC,iBAExB6V,EAAQ7V,WAAW,CAAC,eACxB,EAAGuW,EACP,EAEAhrB,EAAMuF,MAAM,CAAG,WACXvF,EAAM4kB,OAAO,CAAChd,SAAS,EAC3B,EAEA5H,EAAM4G,GAAG,CAAC,WAAY,WAClByjB,GACJ,EACJ,CACJ,CACJ,EACH,E,4CE3FD/7B,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,aAAc,CAC/B,OACA,WACA,aACA,WACA,oBACA,kBACA,gBACA,mBACA,eACA,YACA,qBACA,qBACA,QACA,uBACA,kBACA,mBACA,SACInC,CAAI,CACJvP,CAAQ,CACRkQ,CAAU,CACVoe,CAAQ,CACRC,CAAiB,CACjB/e,CAAe,CACfmrB,CAAa,CACb/X,CAAgB,CAChB7c,CAAY,CACZyM,CAAS,CACTooB,CAAkB,CAClBC,CAAkB,CAClBpoB,CAAK,CACL/Q,CAAoB,CACpBupB,CAAe,CACf6P,CAAgB,EAEhB,MAAO,CACHz3B,SC/EG,miRDgFHoM,SAAU,IACVnM,WAAY,CACR,SACA,SAAUoT,CAAM,EACZA,EAAOqP,eAAe,CAAGA,EAAAA,CACzBrP,CAAAA,EAAOqkB,qBAAqB,CAAG,CAAC,MAAO,SAAS,CAChDrkB,EAAOskB,cAAc,CAAGtkB,EAAOqkB,qBAAqB,CAACj+B,KAAK,GAC1D4Z,EAAOukB,iBAAiB,CAAG,GAE3BvkB,EAAOwkB,aAAa,CAAGC,EAAAA,CACvBzkB,CAAAA,EAAO0kB,aAAa,CAAGC,EAAAA,CACvB3kB,CAAAA,EAAO4kB,UAAU,CAAGC,EAAAA,CACpB7kB,CAAAA,EAAO8kB,kBAAkB,CAAGC,EAAAA,CAC5B/kB,CAAAA,EAAOglB,uBAAuB,CAAGC,EAAAA,CACjCjlB,CAAAA,EAAOklB,eAAe,CAAGC,EAAAA,CACzBnlB,CAAAA,EAAOolB,SAAS,CAAGC,EAAAA,CACnB,CACArlB,EAAOslB,OAAO,CAAGzsB,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,yBACxFK,EAAOulB,oBAAoB,CAAG,CAC1B/R,MAAO,CACHrH,MAAOnhB,EAAqBS,SAAS,CAAC,oBACtC+5B,UAAWx6B,EAAqBS,SAAS,CAAC,qDAC1Cg6B,eAAgBz6B,EAAqBS,SAAS,CAAC,4CAC/C2gB,OAAQphB,EAAqBS,SAAS,CAAC,kBACvCi6B,WAAY16B,EAAqBS,SAAS,CAAC,sDAC3Ck6B,gBAAiB36B,EAAqBS,SAAS,CAAC,6CAChDm6B,SAAU56B,EAAqBS,SAAS,CAAC,4CACzCo6B,cAAe76B,EAAqBS,SAAS,CAAC,2CAC9Cq6B,OAAQ96B,EAAqBS,SAAS,CAAC,0CACvCs6B,YAAa/6B,EAAqBS,SAAS,CAAC,wCAChD,EACAu6B,YAAa,CAAC,CAClB,EACAhmB,EAAOhV,oBAAoB,CAAGA,EAE9BgV,EAAOimB,8BAA8B,CAAG,CAAC,EAAEjmB,EAAOkmB,GAAG,CAAC,4CAA4C,CAAC,CACnGlmB,EAAOmmB,6BAA6B,CAAG,CAAC,EAAEnmB,EAAOkmB,GAAG,CAAC,2CAA2C,CAAC,CACjGlmB,EAAOomB,iCAAiC,CAAG,CAAC,EAAEpmB,EAAOmmB,6BAA6B,CAAC,CAAC,EAAEnmB,EAAOimB,8BAA8B,CAAC,CAAC,CAExHjmB,EAAOqmB,UAAU,EAClBrmB,CAAAA,EAAOqmB,UAAU,CAAG,CAAC,GAIzBrmB,EAAOsmB,eAAe,CAAG,SAAU1zB,CAAO,EACtCoN,EAAOumB,YAAY,CAAC3zB,GACpBoN,EAAOsc,KAAK,CAAGtc,EAAO+b,OAAO,CAACC,eAAe,GAEzChc,EAAOqmB,UAAU,CAACjiB,IAAI,GAAKiL,EAAAA,CAAeA,CAACmX,UAAU,CAACvN,QAAQ,EAAIjZ,EAAOymB,oBAAoB,GAAK7zB,EAAQkd,UAAU,CAACvB,WAAW,EAChIvO,EAAO0mB,wBAAwB,GAGnC1mB,EAAO0b,QAAQ,CAAC1b,EAAO2mB,YAAY,CAAC1xB,EAAE,CAC1C,EAEA+K,EAAOumB,YAAY,CAAG,SAAU3zB,CAAO,EACnC,IAAIrM,EAEJ,IAAK,IAAIrC,KAAO0O,EACRA,EAAQyf,cAAc,CAACnuB,KAGnBqC,CAFJA,EAASqM,CAAO,CAAC1O,EAAI,GAEPqC,EAAOioB,MAAM,EAAK,EAACjoB,EAAOioB,MAAM,CAAClqB,MAAM,EAAIiC,EAAOioB,MAAM,CAAClqB,MAAM,CAAG,GAC5E0b,EAAOiR,SAAS,CAAC1qB,EAAQA,EAAOkoB,UAAU,CAAEtoB,MAAMmsB,OAAO,CAAC/rB,EAAOioB,MAAM,GAEvExO,EAAO4mB,YAAY,CAACrgC,GAIpC,CACJ,EACH,CACD2nB,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EAGjCA,EAAMN,QAAQ,CAAC,eAAgB,SAAUiF,CAAM,EAC3C1f,EAAM2f,YAAY,CAAGC,SAASF,EAAQ,IACtC1f,EAAM6tB,yBAAyB,CAAG7tB,EAAM2f,YAAY,CAAG,CAC3D,GAEA5E,EAAMN,QAAQ,CAAC,aAAc,SAAUiF,CAAM,EACzC1f,EAAM8tB,UAAU,CAAGpO,CACvB,GAEAqO,aAAa/tB,EAAMguB,mBAAmB,EACtChuB,EAAMguB,mBAAmB,CAAGC,WAAW,WACnC,IAAI9gB,EAAQ1hB,SAASyiC,cAAc,CAAC,8BACpC,GAAI5gB,EAAQ,CACR,IAAIA,EAASH,EAAMghB,UAAU,CAC7B7gB,EAAO8gB,WAAW,CAACjhB,EACvB,CACJ,EAAG,MAEHnN,EAAMquB,QAAQ,CAAG,CACbC,QAAS,CACL,CACIC,MAAO,GACPC,KAAM1uB,EAAgB6G,yBAAyB,CAAG,+DAClD8nB,iBAAkB,OAClBC,MAAO,CACX,EACA,CACIH,MAAO,GACPC,KAAM1uB,EAAgB6G,yBAAyB,CAAG,+DAClD8nB,iBAAkB,OAClBC,MAAO,CACX,EACA,CACIH,MAAO,GACPC,KAAM1uB,EAAgB6G,yBAAyB,CAAG,+DAClD8nB,iBAAkB,OAClBC,MAAO,CACX,EACA,CACIH,MAAO,GACPC,KAAM1uB,EAAgB6G,yBAAyB,CAAG,+DAClD8nB,iBAAkB,OAClBC,MAAO,CACX,EACA,CACIH,MAAO,GACPC,KAAM1uB,EAAgB6G,yBAAyB,CAAG,+DAClD8nB,iBAAkB,OAClBC,MAAO,CACX,EACA,CACIH,MAAO,GACPC,KAAM1uB,EAAgB6G,yBAAyB,CAAG,+DAClD8nB,iBAAkB,OAClBC,MAAO,CACX,EACH,CACDtjB,KAAM,QACV,EAEApL,EAAM2uB,qBAAqB,CAAG,CAC1BC,OAAQ,CACJ/W,KAAM,mBACNtC,YAAavjB,EAAqBS,SAAS,CAAC,mDAC5C+iB,OAAQ,kBACRC,WAAY,qBACZoZ,QAAS,EACb,EACAC,OAAQ,CACJjX,KAAM,mBACNtC,YAAavjB,EAAqBS,SAAS,CAAC,mDAC5C+iB,OAAQ,kBACRC,WAAY,qBACZoZ,QAAS,EACb,EACAE,SAAU,CACNlX,KAAM,oBACNtC,YAAavjB,EAAqBS,SAAS,CAAC,qDAC5C+iB,OAAQ,WACRC,WAAY,qBACZoZ,QAAS,EACb,CACJ,EAKA,IAHIG,EAGAC,EAAyB9Z,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,yBAClEgS,EAAwB/Z,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,gCACjEiS,EAAcjiC,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,YAG3Cld,CAAAA,EAAMwH,OAAO,CAAG,GAEhBxH,EAAMovB,cAAc,CAAGrU,EAAM,cAAiB,CAE9C/a,EAAM6jB,SAAS,CAAG9I,KAAyB9sB,IAAzB8sB,EAAM,WAAc,CAEtC/a,EAAMqvB,gBAAgB,CAAGC,EAAAA,CAAeA,CAACz/B,GAAG,CACxC,CACI,CACIiB,KAAM,CAACy+B,EAAAA,CAAIA,CAACC,OAAO,CAAED,EAAAA,CAAIA,CAACE,KAAK,CAAE,IAAI,CACrChgC,SAAUigC,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAMxiC,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,oCAAoCxyB,KAAK,GAAIsV,GACjG2vB,YAAa3vB,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,iCACtD,EACH,CACDuN,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,4CAGzCuN,EAAMijB,gBAAgB,CAAGlI,KAA8B9sB,IAA9B8sB,EAAM,gBAAmB,EAAkBA,SAAAA,EAAM,gBAAmB,CAC7F/a,EAAM4vB,UAAU,CAAG7U,SAAAA,EAAM,UAAa,CAEtC/a,EAAM6vB,aAAa,CAAG7vB,EAAM6jB,SAAS,CAAG,YAAc,kBACtD7jB,EAAM8oB,cAAc,CAAG,CACnB,CACI7zB,MAAOjD,EAAqBS,SAAS,CAAC,2CACtCjI,MAAO,CAAC,eAAgB,QAAQ,CAChC86B,QAAS,GACThQ,KAAM,8BACV,EACA,CACIrgB,MAAOjD,EAAqBS,SAAS,CAAC,0CACtCjI,MAAO,CAAC,eAAgB,QAAQ,CAChC86B,QAAS,GACThQ,KAAM,8BACV,EACA,CACIrgB,MAAOjD,EAAqBS,SAAS,CAAC,0CACtCjI,MAAO,CAAC,UAAW,QAAQ,CAC3B86B,QAAS,GACThQ,KAAM,6BACV,EACA,CACIrgB,MAAOjD,EAAqBS,SAAS,CAAC,yCACtCjI,MAAO,CAAC,UAAW,QAAQ,CAC3B86B,QAAS,GACThQ,KAAM,6BACV,EACA,CACIrgB,MAAOjD,EAAqBS,SAAS,CAAC,kCACtCjI,MAAO,CAAC,QAAS,UAAU,CAC3B86B,QAAS,GACThQ,KAAM,eACV,EACA,CACIrgB,MAAOjD,EAAqBS,SAAS,CAAC,mCACtCjI,MAAO,CAAC,QAAS,UAAU,CAC3B86B,QAAS,GACThQ,KAAM,eACV,EACA,CACIrgB,MAAOjD,EAAqBS,SAAS,CAAC,iCACtCjI,MAAO,CAAC,eAAgB,QAAQ,CAChC86B,QAAS,GACThQ,KAAM,iBACV,EACA,CACIrgB,MAAOjD,EAAqBS,SAAS,CAAC,iCACtCjI,MAAO,CAAC,gBAAiB,QAAQ,CACjC86B,QAAS,GACThQ,KAAM,uBACV,EACA,CACIrgB,MAAOjD,EAAqBS,SAAS,CAAC,+BACtCjI,MAAO,CAAC,aAAc,cAAc,CACpC86B,QAAS,GACThQ,KAAM,eACV,EACA,CACIrgB,MAAOjD,EAAqBS,SAAS,CAAC,oCACtCjI,MAAO,CAAC,kBAAmB,QAAQ,CACnC86B,QAAS,GACThQ,KAAM,oBACV,EACA,CACIrgB,MAAOjD,EAAqBS,SAAS,CAAC,qCACtCjI,MAAO,CAAC,cAAe,cAAc,CACrC86B,QAAS,GACThQ,KAAM,eACV,EACH,CAEDtV,EAAM8vB,aAAa,CAAG,CAClB,CACI76B,MAAOjD,EAAqBS,SAAS,CAAC,kCACtCs9B,MAAO,mBACPjlC,OAAQkV,EAAMstB,eAAe,CAC7B0C,WAAY,EAChB,EACH,CAED,IAAIC,EAAqB,WACrBjwB,EAAMkwB,WAAW,CAAG,GACpBlwB,EAAMomB,WAAW,CAAG,GACpBpmB,EAAMkmB,aAAa,CAAG,EAAE,CACxBlmB,EAAMof,WAAW,CAAG,EACpBpf,EAAMmwB,GAAG,CAAG,GACZnwB,EAAMoX,aAAa,CAAG,GACtBpX,EAAMowB,WAAW,CAAG,CAEhBlZ,SAAU,KACVC,OAAQ,IACZ,EACAnX,EAAMqwB,gBAAgB,CAAG,CAErBpZ,KAAM,EAAE,EAGZjX,EAAMswB,iBAAiB,CAAGtwB,EAAM+iB,OAAO,CAACwN,oBAAoB,GAC5DvwB,EAAMyhB,gBAAgB,CAAGzhB,EAAM+iB,OAAO,CAACyN,mBAAmB,GAC1DxwB,EAAMsjB,KAAK,CAAGtjB,EAAM+iB,OAAO,CAACC,eAAe,GAC3ChjB,EAAM6T,QAAQ,CAAG,CAAC,EAElB7T,EAAM2tB,YAAY,CAAG3tB,EAAMswB,iBAAiB,CAAC,EAAE,CAE/CtwB,EAAMwH,OAAO,CAAG,GAChBxH,EAAMywB,SAAS,CAAG,EACtB,CAEAzwB,CAAAA,EAAM+iB,OAAO,CAAG,IAAIkI,EAEpBjrB,EAAM0wB,sBAAsB,CAAG,WAC3B1wB,EAAMpG,OAAO,CAAGoG,EAAM+iB,OAAO,CAAC4N,iBAAiB,CAAC,IAChD3wB,EAAM4wB,WAAW,CAAG5wB,EAAMpG,OAAO,CAACtO,MAAM,CACxC0U,EAAM6wB,eAAe,CAAG7wB,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,kEAAmE,CAC5H2B,MAAO4L,EAAM4wB,WAAW,EAEhC,EAEA5wB,EAAM0wB,sBAAsB,GAG5B1wB,EAAMkmB,aAAa,CAAG,EAAE,CAExBlmB,EAAM8wB,cAAc,CAAG,WASnB1F,EAAiBx6B,QAAQ,CAAC,aAAc,CAR9B,CACN1F,IAAK,IACL6lC,OAAQ,GACRthC,SAAU,WACNhE,SAAS2pB,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,CAAC1qB,KAAK,EACtE,CACJ,EAE2C,CAC/C,EAEAsV,EAAMgxB,gBAAgB,CAAG,WACrB5F,EAAiB95B,MAAM,CAAC,aAC5B,EAEA0O,EAAM+iB,OAAO,CAACkO,IAAI,GAAGxmC,IAAI,CAAC,WACtBwlC,IACAjwB,EAAM8wB,cAAc,GACpB9wB,EAAM4U,KAAK,CAAC,mBAAoB5U,EAAMyhB,gBAAgB,EAGnBxzB,KAAAA,GAA/B8sB,EAAM,kBAAqB,GAC3B/a,EAAM4V,UAAU,CAAGmF,EAAM,kBAAqB,CAC9C/a,EAAM0iB,QAAQ,CAAC1iB,EAAM4V,UAAU,EAE/BmF,EAAMN,QAAQ,CAAC,qBAAsB,SAAUiF,CAAM,EACjD,IAAIwR,EAAOlxB,EAAM6T,QAAQ,CAACwP,WAAW,CACrC4M,IACAjwB,EAAM6T,QAAQ,CAACwP,WAAW,CAAG6N,EAE7B,IAAK,IAAI/iC,EAAI,EAAGA,EAAI6R,EAAM+iB,OAAO,CAAC4N,iBAAiB,GAAGrlC,MAAM,CAAE6C,IAC1D6R,EAAM+iB,OAAO,CAAC6K,YAAY,CAACz/B,GAE/B6R,EAAM0wB,sBAAsB,GAExBxB,EAAsBiC,QAAQ,CAAC,aAC/BnxB,CAAAA,EAAMoxB,eAAe,CAAG,EAAG,EAE/BpxB,EAAMqxB,WAAW,CAAC,sBAClBrxB,EAAM0iB,QAAQ,CAAChD,EACnB,IAGA1f,EAAM+iB,OAAO,CAACuO,yBAAyB,IAEvCtxB,EAAMa,UAAU,CAAC,kBAGjBb,EAAM+iB,OAAO,CAACwO,kBAAkB,IAChCvxB,CAAAA,EAAMiW,uBAAuB,CAAG,EAAG,CAE3C,GAEAjW,EAAMwxB,mBAAmB,CAAG,WACxBxxB,EAAMa,UAAU,CAAC,iBACjBb,EAAMyxB,oBAAoB,CAAG,CAACzxB,EAAMyxB,oBAAoB,CACxDC,IACI1xB,EAAMyxB,oBAAoB,EAC1BtC,CAAAA,EAAYwC,SAAS,CAAG,EAEhC,EAEA,IAAID,EAA4B,WAC5B,IAAIE,EAA+Bzc,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,6BACxEld,CAAAA,EAAMyxB,oBAAoB,CAErBG,EAA6BT,QAAQ,CAAC,uBACvCS,EAA6Bld,QAAQ,CAAC,sBAGtCkd,EAA6BT,QAAQ,CAAC,uBACtCS,EAA6Bnd,WAAW,CAAC,qBAGrD,CAEAzU,CAAAA,EAAM0iB,QAAQ,CAAG,SAAUmP,CAAQ,EAE/B7xB,EAAMsrB,cAAc,CAAGtrB,EAAMqrB,qBAAqB,CAACj+B,KAAK,GACxD4S,EAAMyxB,oBAAoB,CAAG,GAC7BC,IAGA,IAAII,EAAO,GACX7C,EAAuB8C,KAAK,GAC5B/xB,EAAMgyB,UAAU,CAAGhyB,EAAM+iB,OAAO,CAACkP,eAAe,GAGhDjyB,EAAMkmB,aAAa,CAAC56B,MAAM,CAAG,EAC7B0U,EAAMomB,WAAW,CAAG,GAEfyL,GACDA,CAAAA,EAAWxb,EAAAA,CAAeA,CAACwE,WAAW,CAACqX,OAAO,EAElDL,EAAWA,EAAS/vB,WAAW,GAG/B9B,EAAM+iB,OAAO,CAACoP,qBAAqB,CAACnyB,EAAM6T,QAAQ,CAACwP,WAAW,CAAEwO,GAGhE7xB,EAAMgyB,UAAU,CAAGhyB,EAAM+iB,OAAO,CAACqP,aAAa,GAE9CpyB,EAAMswB,iBAAiB,CAAGtwB,EAAM+iB,OAAO,CAACwN,oBAAoB,GAG5D,IAAK,IAAIpiC,EAAI,EAAGA,EAAI6R,EAAMswB,iBAAiB,CAAChlC,MAAM,CAAE6C,IAChD,GAAI6R,EAAMswB,iBAAiB,CAACniC,EAAE,CAAC8N,EAAE,GAAK41B,EAAU,CAC5C7xB,EAAM2tB,YAAY,CAAGxY,QAAQ0N,IAAI,CAAC7iB,EAAMswB,iBAAiB,CAACniC,EAAE,EAEvD6R,EAAM6jB,SAAS,EAChB7jB,CAAAA,EAAM2tB,YAAY,CAAC1xB,EAAE,CAAG41B,CAAO,EAGnC,KACJ,CAqBJ,GAjBA7xB,EAAM6T,QAAQ,CAAG7T,EAAM+iB,OAAO,CAACsP,0BAA0B,CAACryB,EAAM2tB,YAAY,CAAE3tB,EAAM6T,QAAQ,CAACwP,WAAW,CAAErjB,EAAM6jB,SAAS,EAEzH7jB,EAAMa,UAAU,CAAC,wBAGbgxB,IAAaxb,EAAAA,CAAeA,CAACwE,WAAW,CAACqX,OAAO,EAAKL,IAAaxb,EAAAA,CAAeA,CAACwE,WAAW,CAACC,QAAQ,EAAI9a,EAAM6jB,SAAS,CACzH7jB,EAAMqxB,WAAW,CAAC,OAGE,YAAhBrxB,EAAMsjB,KAAK,EACXtjB,EAAMqxB,WAAW,CAAC,sBAK1BrxB,EAAMof,WAAW,CAAG,EAEhByS,IAAaxb,EAAAA,CAAeA,CAACwE,WAAW,CAACqX,OAAO,EAAKlyB,EAAM6T,QAAQ,CAACuP,WAAW,CAiB/EpjB,EAAMof,WAAW,CAAG,IACpB0S,EAAOA,EAAO,+BAAiCD,EAAW,mBAAqB7xB,EAAM6tB,yBAAyB,CAAG,2BAjBjH,IAAK1/B,EAAI,EAAGA,EAAI6R,EAAMswB,iBAAiB,CAAChlC,MAAM,CAAE6C,IAAK,CACjD,IAAIid,EAAOpL,EAAMswB,iBAAiB,CAACniC,EAAE,CAAC8N,EAAE,CACpCmP,EAAKtJ,WAAW,KAAOuU,EAAAA,CAAeA,CAACwE,WAAW,CAACqX,OAAO,EAAI9mB,EAAKtJ,WAAW,KAAOuU,EAAAA,CAAeA,CAACwE,WAAW,CAACC,QAAQ,EACzHgX,CAAAA,EACIA,EACA,gCACA1mB,EACA,uBACAA,EACA,oBACApL,EAAM6tB,yBAAyB,CAC/B,qBAAoB,CAEhC,CAOJ7tB,EAAMkwB,WAAW,CAAG,GAEpBjB,EAAuBqD,MAAM,CAAC1T,EAASkT,GAAM9xB,GACjD,EAEAA,EAAMuyB,QAAQ,CAAG,SAAUV,CAAQ,EAC/B7xB,EAAMqxB,WAAW,CAAC,sBAG2D,KAAzEQ,EAAS/vB,WAAW,GAAG/T,OAAO,CAACsoB,EAAAA,CAAeA,CAACwE,WAAW,CAACC,QAAQ,GACnE9a,EAAMwyB,wBAAwB,CAACX,GAGnC7xB,EAAM0iB,QAAQ,CAACmP,EACnB,EAEA7xB,EAAMwyB,wBAAwB,CAAG,SAAUX,CAAQ,EAC/C,IAAK,IAAI1jC,EAAI,EAAGA,EAAI6R,EAAMswB,iBAAiB,CAAChlC,MAAM,CAAE6C,IAC5C6R,EAAMswB,iBAAiB,CAACniC,EAAE,CAAC8N,EAAE,GAAKoa,EAAAA,CAAeA,CAACwE,WAAW,CAACC,QAAQ,EACtE9a,CAAAA,EAAM2tB,YAAY,CAAG3tB,EAAMswB,iBAAiB,CAACniC,EAAE,EAIvD,IAAIyzB,EAASiQ,EAASpa,KAAK,CAAC,KAE5B,IAAKtpB,EAAI,EAAGA,EAAI6R,EAAMyhB,gBAAgB,CAACn2B,MAAM,CAAE6C,IAAK,CAChD,IAAIo1B,EAAkBvjB,EAAMyhB,gBAAgB,CAACtzB,EAAE,CAC/C,GAAIo1B,EAAgB7B,SAAS,CAAC5f,WAAW,KAAO8f,CAAM,CAAC,EAAE,CAAC9f,WAAW,GAAI,CACrE9B,EAAMiY,SAAS,CAAC,CACZ1C,YAAagO,EAAgB5B,IAAI,CACjCnM,OAAQ+N,EAAgB7B,SAAS,CACjCjM,WAAY,UAChB,GACA,KACJ,CACJ,CACJ,EAEAzV,EAAMiY,SAAS,CAAG,SAAU1qB,CAAM,CAAE2qB,CAAY,CAAEoB,CAAO,EACrDtZ,EAAM+iB,OAAO,CAAC9K,SAAS,CAAC1qB,EAAQ2qB,EAAcoB,GAC9CtZ,EAAM0wB,sBAAsB,GAC5B1wB,EAAMsjB,KAAK,CAAGtjB,EAAM+iB,OAAO,CAACC,eAAe,GAE3C1yB,EAAS,WACL,IAAImiC,EAAkBvlC,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,2BAC3CuV,GACAA,EAAgB/nC,KAAK,EAE7B,EAAG,EACP,EAEAsV,EAAM0yB,qBAAqB,CAAG,SAAUnlC,CAAM,CAAE6d,CAAI,EAQhD,OAPApL,EAAMiY,SAAS,CAAC1qB,EAAQ6d,GAEpB8jB,EAAsBiC,QAAQ,CAAC,aAC/BnxB,CAAAA,EAAMoxB,eAAe,CAAG,EAAG,EAE/BpxB,EAAMa,UAAU,CAAC,kBAAmBtT,GAE7ByS,EAAM0iB,QAAQ,CAAC1iB,EAAM2tB,YAAY,CAAC1xB,EAAE,CAC/C,EAEA+D,EAAM2yB,mBAAmB,CAAG,SAAUplC,CAAM,CAAE6d,CAAI,EAC9CpL,EAAM4yB,gBAAgB,GACtB5yB,EAAM0yB,qBAAqB,CAACnlC,EAAQ6d,EACxC,EAeApL,EAAM4tB,YAAY,CAAG,SAAUrgC,CAAM,EACjCslC,EAAmBtlC,EAAOkoB,UAAU,CAAE,GAAOloB,EAAOioB,MAAM,CAC9D,EAEAxV,EAAM8yB,mBAAmB,CAAG,SAAUvlC,CAAM,EACxCslC,EAAmBtlC,EAAO6d,IAAI,CAAE,GAAM7d,EAAO/C,KAAK,CACtD,EAGA,IAAIqoC,EAAqB,SAAU9Y,CAAU,CAAE2I,CAAQ,CAAEqQ,CAAW,EAGhE,IAAK,IADDC,EAAiBhzB,EAAM+iB,OAAO,CAAC4N,iBAAiB,GAC3CxiC,EAAI,EAAGA,EAAI6kC,EAAe1nC,MAAM,CAAE6C,IACvC,GAAI6kC,KAAAA,CAAc,CAAC7kC,EAAE,CAACid,IAAI,CAACrd,OAAO,CAACgsB,IAAuBgZ,CAAAA,OAAAA,GAAwBC,CAAc,CAAC7kC,EAAE,CAAC3D,KAAK,GAAKuoC,CAAU,EAAI,CACxH/yB,EAAM+iB,OAAO,CAAC6K,YAAY,CAACz/B,GAC3B6R,EAAMa,UAAU,CAAC,eAAgBkZ,EAAYgZ,GAEzC/yB,EAAM6jB,SAAS,EAAI9J,aAAAA,GACnB/Z,CAAAA,EAAM2tB,YAAY,CAAG3tB,EAAMswB,iBAAiB,CAAC,EAAE,EAEnD,KACJ,CAIJ,GAFAtwB,EAAM0wB,sBAAsB,GAExBhO,QAIA,CAHIwM,EAAsBiC,QAAQ,CAAC,aAC/BnxB,CAAAA,EAAMoxB,eAAe,CAAG,EAAG,EAE3BpxB,EAAM+iB,OAAO,CAAC4N,iBAAiB,GAAGrlC,MAAM,CAAG,GAEpC0U,KAA2B/R,GAA3B+R,EAAM6T,QAAQ,CAAC2P,QAAQ,CACxBxjB,EAAM0iB,QAAQ,CAAC1iB,EAAM2tB,YAAY,CAAC1xB,EAAE,EACpC+D,EAAM0iB,QAAQ,CAAC1iB,EAAM2tB,YAAY,CAAC1xB,EAAE,CAAG,IAAM+D,EAAM6T,QAAQ,CAAC2P,QAAQ,EAK1E,EAAUK,SAAS,CACR7jB,EAAM0iB,QAAQ,CAAC1iB,EAAMswB,iBAAiB,CAAC,EAAE,CAACr0B,EAAE,EAGhD+D,EAAM0iB,QAAQ,CAAC1iB,EAAM2tB,YAAY,CAAC1xB,EAAE,CAGvD,CAEA+D,CAAAA,EAAM4yB,gBAAgB,CAAG,WACrB5yB,EAAM6T,QAAQ,CAACwP,WAAW,CAAG,GAC7BrjB,EAAM0iB,QAAQ,CAAC1iB,EAAM2tB,YAAY,CAAG3tB,EAAM2tB,YAAY,CAAC1xB,EAAE,CAAGoa,EAAAA,CAAeA,CAACwE,WAAW,CAACqX,OAAO,EAC/FzmC,SAASyiC,cAAc,CAAC,gBAAgBxjC,KAAK,EACjD,EAEAsV,EAAMqxB,WAAW,CAAG,SAAU4B,CAAQ,EAClC,IAAIC,EAAWlzB,EAAMsjB,KAAK,CAO1B,GALAtjB,EAAMsjB,KAAK,CAAGtjB,EAAM+iB,OAAO,CAACoQ,QAAQ,CAACF,GACrCjzB,EAAMyxB,oBAAoB,CAAGzxB,uBAAAA,EAAMsjB,KAAK,CAIpC4P,YAAAA,GAA0BA,GAAYD,GAAaA,CAAAA,YAAAA,GAA0BA,QAAAA,CAAiB,GAC1FjzB,OAAAA,EAAM6T,QAAQ,EAAa7T,KAAmB/R,IAAnB+R,EAAM6T,QAAQ,CAAgB,CAGzD,IAAIqd,EAAOlxB,EAAM6T,QAAQ,CAACwP,WAAW,CACrC4M,IAGiB,YAAbgD,GACAjzB,CAAAA,EAAM6T,QAAQ,CAACwP,WAAW,CAAG6N,CAAG,EAGhB,YAAhBlxB,EAAMsjB,KAAK,EACXtjB,CAAAA,EAAM2tB,YAAY,CAAG3tB,EAAMswB,iBAAiB,CAAC,EAAE,CAEvD,CAER,EAEAtwB,EAAMmmB,sBAAsB,CAAG,WAC3BnmB,EAAMomB,WAAW,CAAGpmB,EAAMkmB,aAAa,CAAC56B,MAAM,CAAG,CACrD,EAEA0U,EAAMozB,WAAW,CAAG,SAAUC,CAAC,CAAEx3B,CAAQ,EACrC,GAAI,iBAAOA,EAAuB,CAC9B,IAAIlO,CAEoD,MAAnDA,CAAAA,EAAQqS,EAAMkmB,aAAa,CAACn4B,OAAO,CAAC8N,EAAQ,GAC7CmE,EAAMkmB,aAAa,CAACl2B,MAAM,CAACrC,EAAO,EAE1C,KAAO,CAOH,IAAK,IAND2lC,EAAYtzB,EAAMkmB,aAAa,CAAC56B,MAAM,CACtCioC,EAAa,GACbrC,EAAO,GACPrU,EAAa,EAGR1uB,EAAI,EAAGC,EAAIyN,EAASvQ,MAAM,CAAE6C,EAAIC,EAAGD,IACxColC,EAAa13B,CAAQ,CAAC1N,EAAE,CAIuC,KAA1D0uB,CAAAA,EAAa7c,EAAMkmB,aAAa,CAACn4B,OAAO,CAACwlC,EAAU,IACpDrC,EAAOlxB,EAAMkmB,aAAa,CAAC,EAAEoN,EAAU,CACvCtzB,EAAMkmB,aAAa,CAACoN,EAAU,CAAGC,EACjCvzB,EAAMkmB,aAAa,CAACrJ,EAAW,CAAGqU,EAG1ClxB,CAAAA,EAAMkmB,aAAa,CAAC56B,MAAM,CAAGgoC,CACjC,CACJ,EAGAtzB,EAAMwzB,oBAAoB,CAAG,SAAUC,CAAS,EAGnC,KAFQA,EAAUC,KAAK,GAGxBC,EAAoBF,GACpBzzB,EAAM0iB,QAAQ,CAAC1iB,EAAM2tB,YAAY,CAAG3tB,EAAM2tB,YAAY,CAAC1xB,EAAE,CAAGoa,EAAAA,CAAeA,CAACwE,WAAW,CAACqX,OAAO,EAG3G,EAEA,IAAIyB,EAAsB,SAAUN,CAAC,EAEjC,IAAIO,EAAMP,GAAQ3iC,OAAOpG,KAAK,CAK9B,OAJIspC,EAAI9nC,cAAc,EAClB8nC,EAAI9nC,cAAc,GAEtB8nC,EAAIC,WAAW,CAAG,GACX,EACX,CAEA7zB,CAAAA,EAAM8zB,UAAU,CAAG,SAAUhP,CAAI,EAE7B,MAAOiP,CAD2B,OAAQ,WAAW,CACnBhmC,OAAO,CAAC+2B,EAAKoF,QAAQ,EAAI,IAAO,EAAC,CAACpF,EAAKiE,OAAO,EAAI,cAAc99B,IAAI,CAAC65B,EAAKkP,WAAW,EAC3H,EAEAh0B,EAAMi0B,WAAW,CAAG,SAAUl+B,CAAO,CAAEqV,CAAI,EAEvCtI,EAAUvH,GAAG,CAAC,YAAc24B,CADP,CAAEC,KAAM,WAAYC,SAAU,UAAW,EACpB,CAAChpB,EAAK,CAAG,IAAMrV,EAC7D,EAEAiK,EAAMq0B,YAAY,CAAG,SAAUvP,CAAI,EAC/B9kB,EAAMi0B,WAAW,CAACnP,EAAKtoB,EAAE,CAAEsoB,EAAKoF,QAAQ,CAC5C,EAEAlqB,EAAMs0B,YAAY,CAAG,SAAUxP,CAAI,EAC/B,IAAIyP,EAAU,CACV9qB,QAASqb,EAAKtoB,EAAE,CAChBg4B,WAAY1P,EAAK0P,UAAU,CAC3BC,aAAc3P,EAAK2P,YAAY,CAC/BC,YAAa5P,EAAK4P,WAAW,CAC7BC,aAAc7P,EAAK6P,YAAY,EAGnCzJ,EAAmB0J,QAAQ,CAACL,EAChC,EAEAv0B,EAAM60B,cAAc,CAAG,SAAU/P,CAAI,EACjC,IAAMgQ,EAAYz+B,EAAay+B,SAAS,MACtB7mC,IAAd6mC,GACApkC,CAAAA,OAAOqkC,QAAQ,CAACC,IAAI,CAAG,CAAC,EAAEl1B,EAAgByC,YAAY,CAAC,qCAAqC,EAAEuyB,EAAU,YAAY,EAAEhQ,EAAKtoB,EAAE,CAAC,CAAC,CAEvI,EAMA,IAAIy4B,EAAqB,IAAI9J,EAEzB+J,EAAwBl1B,EAAM4G,GAAG,CAAC,uBAAwB,SAAUtc,CAAK,CAAE6qC,CAAa,EACxF,GAAI,CAACC,EACD,IAAIA,EAAe,CACfC,aAAc,CAAE/f,KAAM,SAAUggB,KAAML,EAAmBn8B,MAAM,CAAEy8B,QAAS,EAAK,EAC/EC,cAAe,CAAElgB,KAAM,UAAWggB,KAAML,EAAmBQ,OAAO,CAAEF,QAAS,EAAK,EAClFG,YAAa,CAAEpgB,KAAM,QAASggB,KAAML,EAAmBU,KAAK,CAAEJ,QAAS,EAAK,EAC5EK,gBAAiB,CAAEtgB,KAAM,SAAUggB,KAAML,EAAmBY,SAAS,CAAEN,QAAS,EAAK,EACrFO,cAAe,CAAExgB,KAAM,UAAWggB,KAAML,EAAmBc,OAAO,CAAER,QAAS,EAAK,EAClFS,gBAAiB,CACb1gB,KAAM,YACNggB,KAAM,GACKL,EAAmBgB,SAAS,CAACp6B,GAAUpR,IAAI,CAAC,IAC3C0M,EAAS7L,MAAM,CAAG,IAItBs7B,EAAAA,CAAkBA,CAAC/2B,GAAG,CAACsH,EAAU6I,EAAM6jB,SAAS,EAChD7jB,EAAMozB,WAAW,CAAC,KAAMj8B,GAC5B,GAEJo+B,QAAS,EACb,EACAW,kBAAmB,CACf5gB,KAAM,cACNggB,KAAM,GACKL,EAAmBkB,WAAW,CAACt6B,GAAUpR,IAAI,CAAC,IAC7C0M,EAAS7L,MAAM,CAAG,IAItBs7B,EAAAA,CAAkBA,CAACt1B,MAAM,CAAC6F,EAAU6I,EAAM6jB,SAAS,EAE/C7jB,EAAM2tB,YAAY,CAAC1xB,EAAE,GAAKoa,EAAAA,CAAeA,CAACwE,WAAW,CAACsF,SAAS,EAC/DngB,EAAMozB,WAAW,CAAC,KAAMj8B,GAEhC,GAEJo+B,QAAS,EACb,CACJ,EAGJ,GADAv1B,EAAMo2B,WAAW,CAAGhB,CAAY,CAACD,EAAckB,cAAc,CAAC,CAC1Dr2B,EAAMo2B,WAAW,EA6BjB,GA5BAp2B,EAAMs2B,eAAe,CAAGlB,CAAY,CAACD,EAAckB,cAAc,CAAC,CAAC/gB,IAAI,CACvEtV,EAAMu2B,MAAM,CAAGv2B,EAAMkmB,aAAa,CAAC56B,MAAM,CAAG,EAC5C0U,EAAMw2B,iBAAiB,CAAGrB,EAAcqB,iBAAiB,CAEzDx2B,EAAMy2B,kBAAkB,CAAG,WAkBvBrB,CAAY,CAACD,EAAckB,cAAc,CAAC,CAACf,IAAI,CAACH,EAAcuB,OAAO,EAAEjsC,IAAI,CAAC,SAAU0M,CAAQ,EAfrD,gBAAjCg+B,EAAckB,cAAc,EAC5BlB,kBAAAA,EAAckB,cAAc,EAC5BlB,iBAAAA,EAAckB,cAAc,EAC3BlB,CAAAA,kBAAAA,EAAckB,cAAc,EAAyBr2B,EAAMoX,aAAa,GAEzE5W,EAAWK,UAAU,CAAC,+BAAgC,CAAE8mB,aAW3CxwB,EAXqEswB,YAAaznB,EAAM6jB,SAAS,GAK7E,oBAAjCsR,EAAckB,cAAc,EAC5Br2B,EAAMa,UAAU,CAAC,8BAA+B,CAAEunB,WAMrCjxB,CAN0D,EAO/E,EACJ,EAEI6I,EAAMo2B,WAAW,CAACb,OAAO,CAAE,CAC3B,IAAMoB,EAAgB,SAAU7hC,CAAQ,EACpCA,EAAS8hC,iBAAiB,CAAC5P,SAAS,CAAC,KACjChnB,EAAMy2B,kBAAkB,GACxBz2B,EAAMuZ,WAAW,EACrB,EACJ,EAEMsd,EAAUprC,SAASyxB,aAAa,CAAC,2DAEnCld,CAA0B,WAA1BA,EAAMs2B,eAAe,CACrBziC,CAAAA,EAAAA,EAAAA,CAAAA,EAAmB7B,EAAsB2kC,EAAe32B,EAAMkmB,aAAa,CAAC56B,MAAM,CAAE0U,EAAMw2B,iBAAiB,CAAEK,GACtG72B,YAAAA,EAAMs2B,eAAe,CAC5BzgC,CAAAA,EAAAA,EAAAA,CAAAA,EAAoB7D,EAAsB2kC,EAAe32B,EAAMkmB,aAAa,CAAC56B,MAAM,CAAEurC,GAErFjhC,CAAAA,EAAAA,EAAAA,CAAAA,EAAkB5D,EAAsB2kC,EAAe32B,EAAMkmB,aAAa,CAAC56B,MAAM,CAAE0U,EAAMw2B,iBAAiB,CAAEK,EAEpH,MACI72B,EAAMy2B,kBAAkB,QAG5BxB,EAAmB6B,MAAM,CAAC3B,EAAckB,cAAc,CAAElB,EAAcuB,OAAO,CAAE,CAC3EtrB,KAAMpL,EAAM4V,UAAU,CACtB5V,MAAOA,CACX,GACAA,EAAMozB,WAAW,CAAC,KAAMpzB,EAAMkmB,aAAa,CAEnD,GA6IA,GA3IA+O,EAAmB8B,SAAS,CAAC,aAAc,SAAUl7B,CAAQ,EAEzDmE,EAAMa,UAAU,CAAC,eAAgBhF,CAAQ,CAAC,EAAE,EAC5CmE,EAAMozB,WAAW,CAAC,KAAMv3B,EAC5B,GAEA3O,EAAQu5B,EAAE,CAAC,WAAY,WACnBzmB,EAAMqvB,gBAAgB,GACtBrvB,EAAMgxB,gBAAgB,GACtBnS,EAAkBtZ,MAAM,CAACypB,GACzBhvB,EAAMqxB,WAAW,CAAC,WAClB6D,IACAl1B,EAAMkmB,aAAa,CAAC56B,MAAM,CAAG,EAC7B2kC,IACI+G,GACAA,IAEJC,IACAj3B,EAAMsG,QAAQ,EAClB,GAEAtG,EAAM4G,GAAG,CAAC,uBAAwB,WAC9B5G,EAAM+iB,OAAO,CAACkO,IAAI,GAAGxmC,IAAI,CAAC,WACtB6F,EAAS,WAGL,GAFA0P,EAAMswB,iBAAiB,CAAGtwB,EAAM+iB,OAAO,CAACwN,oBAAoB,GAExDvwB,EAAMqtB,UAAU,CAACjiB,IAAI,GAAKiL,EAAAA,CAAeA,CAACmX,UAAU,CAACzN,KAAK,CAC1D,KAAK,IAAI5xB,EAAI,EAAGA,EAAI6R,EAAMswB,iBAAiB,CAAChlC,MAAM,CAAE6C,IAChD,GAAI6R,EAAMswB,iBAAiB,CAACniC,EAAE,CAAC8N,EAAE,GAAKoa,EAAAA,CAAeA,CAACwE,WAAW,CAACkF,KAAK,CAAE,CACrE/f,EAAM2tB,YAAY,CAAG3tB,EAAMswB,iBAAiB,CAACniC,EAAE,CAC/C,KACJ,CACJ,CAER,EAAG,EACP,GACI6R,EAAMqtB,UAAU,CAACjiB,IAAI,GAAKiL,EAAAA,CAAeA,CAACmX,UAAU,CAACzN,KAAK,EAC1D/f,EAAM0iB,QAAQ,CAACrM,EAAAA,CAAeA,CAACwE,WAAW,CAACkF,KAAK,CAExD,GAEA/f,EAAMk3B,sBAAsB,CAAG,SAAUC,CAAQ,EAC7C,OAAOt3B,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,gBAAkBwwB,EAAW,OAC/G,EAEAn3B,EAAMo3B,gBAAgB,CAAG,WACrBp3B,EAAMa,UAAU,CAAC,mBACrB,EAEAb,EAAMq3B,UAAU,CAAG,WACft0B,EAAMwD,QAAQ,CACV,CACIvG,MAAOA,EACP0G,YAAa5G,EAAgB6G,yBAAyB,CAAG,8CAC7D,EACA,IAEJ4e,EAAAA,CAAOA,CAACC,UAAU,CAAC,cAAe,QAAS,gBAC/C,EAEAxlB,EAAM4G,GAAG,CAAC,kBAAmB5G,EAAMozB,WAAW,EAC9CpzB,EAAM4G,GAAG,CAAC,iBAAkB5G,EAAMozB,WAAW,EAE7CpzB,EAAMs3B,cAAc,CAAG,SAAUhtC,CAAK,CAAEymB,CAAK,EACzC,IAAI7O,EAAQ5X,EAAMitC,aAAa,CAACzqC,YAAY,CAAC,qBACzCoV,GACAlC,EAAMw3B,aAAa,CAACzmB,EAAMvU,EAAE,CAAE0F,EAAO,CAAEu1B,cAAentC,EAAMitC,aAAa,CAACzqC,YAAY,CAAC,mBAAoB,EAEnH,EAEAkT,EAAMw3B,aAAa,CAAG,SAAUv7B,CAAE,CAAEiG,CAAK,CAAEyQ,CAAU,EACjDzQ,EAAQ,KAAiB,IAAVA,EAAwBA,EAAQ,aAC/C1B,EAAWK,UAAU,CAAC,yBAA0B,CAC5CqB,MAAOA,EACPnM,QAASkG,EACT0W,WAAYA,CAChB,EACJ,EAEA3S,EAAM6oB,uBAAuB,CAAG,SAAU3C,CAAa,CAAElF,CAAa,EAClE,GAAIkF,IAAAA,EAAc56B,MAAM,CAAQ,CAC5B,IAAIosC,EAAaxR,CAAa,CAAC,EAAE,CAC7ByR,EAAY3W,EAAcx0B,IAAI,CAAC,SAAUs4B,CAAI,EAC7C,OAAOA,EAAKtoB,EAAE,GAAKk7B,CACvB,EAEA13B,CAAAA,EAAMurB,iBAAiB,CAAGoM,EAAYA,EAAUzN,QAAQ,CAAG,GAC3D0N,EAAwBD,EAAUE,UAAU,GAAKxhB,EAAAA,CAAeA,CAACyhB,WAAW,CAAC7X,QAAQ,CACzF,MACIjgB,EAAMurB,iBAAiB,CAAG,GAC1BqM,EAAwB,GAEhC,EAEA53B,EAAMytB,oBAAoB,CAAGz7B,EAAqBS,SAAS,CAAC,4CAC5DuN,EAAM0tB,wBAAwB,CAAG,SAAUqK,CAAU,EACjD,IAAMC,EAAgB7iB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,gBACzD+a,EAA0B9iB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,0BACnEgb,EAAmB/iB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,kBAClEld,CAAAA,EAAMm4B,4BAA4B,CAAG,GAEjCF,EAAwB9G,QAAQ,CAAC,YAAc4G,oBAAAA,EAC/ClF,EAAmB,qBAAsB,GAAM,mBACxCqF,EAAiB/G,QAAQ,CAAC,YAAc4G,aAAAA,EAC/ClF,EAAmB,qBAAsB,GAAM,YACxCmF,EAAc7G,QAAQ,CAAC,YAAc4G,oBAAAA,GAC5ClF,EAAmB,qBAAsB,GAAM,mBAG/CmF,EAAc7G,QAAQ,CAAC,YACvBnxB,EAAMytB,oBAAoB,CAAGz7B,EAAqBS,SAAS,CAAC,4CAC5DulC,EAAcvjB,WAAW,CAAC,YACJ,oBAAfsjB,IACP/3B,EAAMytB,oBAAoB,CAAGztB,EAAM2uB,qBAAqB,CAACC,MAAM,CAACrZ,WAAW,CAC3EyiB,EAActjB,QAAQ,CAAC,YAGvBujB,EAAwB9G,QAAQ,CAAC,YACjCnxB,EAAMytB,oBAAoB,CAAGz7B,EAAqBS,SAAS,CAAC,4CAC5DwlC,EAAwBxjB,WAAW,CAAC,YACd,oBAAfsjB,IACP/3B,EAAMytB,oBAAoB,CAAGztB,EAAM2uB,qBAAqB,CAACG,MAAM,CAACvZ,WAAW,CAC3E0iB,EAAwBvjB,QAAQ,CAAC,YAGjCwjB,EAAiB/G,QAAQ,CAAC,YAC1BnxB,EAAMytB,oBAAoB,CAAGz7B,EAAqBS,SAAS,CAAC,4CAC5DylC,EAAiBzjB,WAAW,CAAC,YACP,aAAfsjB,IACP/3B,EAAMytB,oBAAoB,CAAGztB,EAAM2uB,qBAAqB,CAACI,QAAQ,CAACxZ,WAAW,CAC7E2iB,EAAiBxjB,QAAQ,CAAC,YAG1BsjB,CAAAA,EAAc7G,QAAQ,CAAC,YAAc8G,EAAwB9G,QAAQ,CAAC,YAAc+G,EAAiB/G,QAAQ,CAAC,UAAS,IACvHnxB,EAAMm4B,4BAA4B,CAAGJ,EACrCxS,EAAAA,CAAOA,CAACC,UAAU,CAAC,iBAAkB,QAAS,CAAC,EAAEuS,EAAW,cAAc,CAAC,EAEnF,EAEI1hC,EAAa9I,MAAM,CACnB,IAAIypC,EAAoBh3B,EAAMib,MAAM,CAAC,eAAgB,SAAUmd,CAAM,EAEjE,GAAIA,KAAUnqC,GAAVmqC,EAAqB,CACrB,IAAIC,EAAYr4B,EAAM2uB,qBAAqB,CAACt4B,EAAa9I,MAAM,CAACuU,WAAW,GAAG,CAC1Eu2B,GAAar4B,EAAMqtB,UAAU,CAACjiB,IAAI,GAAKiL,EAAAA,CAAeA,CAACmX,UAAU,CAACvN,QAAQ,GAC1EjgB,EAAM0yB,qBAAqB,CAAC2F,GAC5Br4B,EAAM0tB,wBAAwB,CAAC2K,EAAU7iB,MAAM,GAEnDwhB,GACJ,CACJ,GAGJ,IAAIC,EAAMz2B,EAAWoG,GAAG,CAAC,uBAAwB,WAC7C9D,EAAUw1B,MAAM,CAAC,SAAU,MAC3BrB,GACJ,GAEA,IAAMW,EAA0B,IAC5B,IAAIjqC,EAAQqS,EAAMsrB,cAAc,CAACv9B,OAAO,CAAC,OACrC,CAACwqC,GAAa5qC,KAAAA,EAEP4qC,GAAa5qC,KAAAA,GACpBqS,EAAMsrB,cAAc,CAACt7B,MAAM,CAACrC,EAAO,GAFnCqS,EAAMsrB,cAAc,CAACv7B,IAAI,CAAC,OAIlC,CACJ,CACJ,CACJ,EACH,C,4CEpiCM,SAASyoC,EAAgBC,CAAkB,CAAEzmC,CAAoB,EACpE,OAAOymC,EACFxH,IAAI,CAAC,CACFxnB,QAAS,KACTivB,MAAO,CAAEC,wBAAyB,GAAMzO,SAAUxlB,EAAAA,CAAeA,CAACC,KAAK,CAACi0B,aAAa,CACzF,GACCnuC,IAAI,CAAC,SCd+BouC,EAAgB9iC,EDejD,IAAM+iC,EAAcL,EAAmBM,iBAAiB,CAClDC,GChB2BH,EDgBcC,EAAY3pC,IAAI,CChBd4G,EDgBgB+iC,EAAYrvB,OAAO,CCfrF,CACHgD,SAAUtf,MAAMmsB,OAAO,CAACuf,EAAe7nB,KAAK,EAAI6nB,EAAe7nB,KAAK,CAAG,EAAE,CACzEioB,uBAAwBJ,EAAeK,MAAM,CAC7C9rB,YAAarX,EACbwa,SAAUsoB,EAAe3O,QAAQ,CAACpoB,WAAW,GAC7CzO,OAAQ0C,EACRwY,WAAYsqB,EAAeM,WAAW,CACtC3oB,uBAAwB,GAIxB4oB,aAAc,GACdpqB,UAAW6pB,EAAe9pB,KAAK,CAC/BxC,SAAUssB,EAAe3O,QAAQ,CACjCzZ,SAAUooB,EAAepoB,QAAQ,GDI7B,OAFAuoB,EAAUhqB,SAAS,CAAGhd,EAAqBS,SAAS,CAAC,8BAE9CgmC,EAAmBxH,IAAI,CAAC,CAAExnB,QAAS,KAAMivB,MAAO,CAAExO,SAAUxlB,EAAAA,CAAeA,CAACC,KAAK,CAACE,QAAQ,CAAEmM,MAAO,CAACgoB,EAAU,CAAG,GAAGvuC,IAAI,CAAC,KAC5H,IAAM4uC,EAAUZ,EAAmBa,qBAAqB,CACxD,MAAO,CAAEvjC,QAASsjC,EAAQ5vB,OAAO,CAAE4vB,QAASA,EAASjmC,OAAQ4lC,EAAU3lC,MAAM,CACjF,EACJ,EACR,CEjBO,SAASkmC,EAAWd,CAAkB,MAAEe,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAyB,CAAC,EACrE,OAAOf,EACFxH,IAAI,CAAC,CACFxnB,QAAS,KACTivB,MAAO,CACHxO,SAAUxlB,EAAAA,CAAeA,CAACC,KAAK,CAACi0B,aAAa,CAC7CD,wBAAyB,GACzB,GAAGa,CAAsB,CAEjC,GACC/uC,IAAI,CAAC,KACF,IAAM4uC,EAAUZ,EAAmBM,iBAAiB,CACpD,MAAO,CAAEhjC,QAASsjC,EAAQ5vB,OAAO,CAAE4vB,QAASA,CAAQ,CACxD,EACR,CCbO,SAASI,EAAiBhB,CAAkB,MAAEe,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAyB,CAAC,EAC3E,OAAOf,EACFxH,IAAI,CAAC,CACFxnB,QAAS,KACTivB,MAAO,CACHxO,SAAUxlB,EAAAA,CAAeA,CAACC,KAAK,CAAC+0B,kBAAkB,CAClD,GAAGF,CAAsB,CAEjC,GACC/uC,IAAI,CAAC,KACF,IAAM4uC,EAAUZ,EAAmBkB,8BAA8B,CACjE,MAAO,CAAE5jC,QAASsjC,EAAQ5vB,OAAO,CAAE4vB,QAASA,CAAQ,CACxD,EACR,CCdO,SAASO,EAAkBnB,CAAkB,MAAEe,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAyB,CAAC,EAC5E,OAAOf,EACFxH,IAAI,CAAC,CACFxnB,QAAS,KACTivB,MAAO,CACHxO,SAAUxlB,EAAAA,CAAeA,CAACC,KAAK,CAACk1B,YAAY,CAC5C,GAAGL,CAAsB,CAEjC,GACC/uC,IAAI,CAAC,KACF,IAAM4uC,EAAUZ,EAAmBqB,wBAAwB,CAC3D,MAAO,CAAE/jC,QAASsjC,EAAQ5vB,OAAO,CAAE4vB,QAASA,CAAQ,CACxD,EACR,CCbO,SAASU,EAAWtB,CAAkB,MAAEe,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAyB,CAAC,EACrE,OAAOf,EACFxH,IAAI,CAAC,CACFxnB,QAAS,KACTivB,MAAO,CACHxO,SAAUxlB,EAAAA,CAAeA,CAACC,KAAK,CAACq1B,IAAI,CACpC,GAAGR,CAAsB,CAEjC,GACC/uC,IAAI,CAAC,KACF,IAAM4uC,EAAUZ,EAAmBwB,iBAAiB,CACpD,MAAO,CAAElkC,QAASsjC,EAAQ5vB,OAAO,CAAE4vB,QAASA,CAAQ,CACxD,EACR,CCZO,SAASa,EAAWzB,CAAkB,MAAE0B,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAc,GAAIC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAoB,GAGjF,OAAO3B,EACFxH,IAAI,CAAC,CACFxnB,QAAS,KACTivB,MAAO,CACHxO,SAAUxlB,EAAAA,CAAeA,CAACC,KAAK,CAAC01B,IAAI,CACpC1B,wBAAyB,GACzB2B,kBAAmBF,EACnBG,aATSJ,KAAAA,EAAqB,EAAE,CAAG,CAAC,CAAEK,IAAK,QAASC,MAAON,CAAY,EAAE,CAWjF,GACC1vC,IAAI,CAAC,KACF,IAAM4uC,EAAUZ,EAAmBiC,iBAAiB,CACpD,MAAO,CAAE3kC,QAASsjC,EAAQ5vB,OAAO,CAAE4vB,QAASA,CAAQ,CACxD,EACR,CCnBO,SAASsB,EAAuBlC,CAAkB,EACrD,OAAOA,EACFxH,IAAI,CAAC,CACFxnB,QAAS,KACTivB,MAAO,CAAExO,SAAUxlB,EAAAA,CAAeA,CAACC,KAAK,CAACi2B,gBAAgB,CAAEjC,wBAAyB,EAAK,CAC7F,GACCluC,IAAI,CAAC,KACF,IAAM4uC,EAAUZ,EAAmBoC,4BAA4B,CAC/D,MAAO,CAAE9kC,QAASsjC,EAAQ5vB,OAAO,CAAE4vB,QAASA,CAAQ,CACxD,EACR,CCZO,SAASyB,EAAuBrC,CAAkB,EACrD,OAAOA,EACFxH,IAAI,CAAC,CACFxnB,QAAS,KACTivB,MAAO,CAAExO,SAAU,iBAAkB,CACzC,GACCz/B,IAAI,CAAC,KACF,IAAM4uC,EAAUZ,EAAmBsC,4BAA4B,CAC/D,MAAO,CAAEhlC,QAASsjC,EAAQ5vB,OAAO,CAAE4vB,QAASA,CAAQ,CACxD,EACR,C,8DCIA/qC,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,qBAAsB,CACrC,kBACA,qBACA,YACA,aACA,KACA,QACA,qBACA,aACA,YACA,SAAUjjB,CAAe,CAAE24B,CAAkB,CAAE31B,CAAS,CAAEtC,CAAU,CAAE4B,CAAE,CAAEW,CAAK,CAAEmoB,CAAkB,CAAE30B,CAAU,CAAEykC,CAAS,EACtH,IAAMC,EAAc,GAAcxrC,EAAShH,IAAI,CAAC,KAAMgwC,GAGtD,MAAO,CACHyC,wBAAyB,CAAC,OAAQ,aAAa,CAC/CC,mBAAoB,IAAIC,IAAI,CACxB,CAAC12B,EAAAA,CAAeA,CAACC,KAAK,CAACE,QAAQ,CALOpV,EAAShH,IAAI,CAAC,KAAMgwC,EAAoBj4B,EAAWxO,oBAAoB,EAKnC,CAC1E,CAAC0S,EAAAA,CAAeA,CAACC,KAAK,CAACi0B,aAAa,CAAEqC,EAAY1B,GAAY,CAC9D,CAAC70B,EAAAA,CAAeA,CAACC,KAAK,CAAC+0B,kBAAkB,CAAEuB,EAAYxB,GAAkB,CACzE,CAAC/0B,EAAAA,CAAeA,CAACC,KAAK,CAACk1B,YAAY,CAAEoB,EAAYrB,GAAmB,CACpE,CAACl1B,EAAAA,CAAeA,CAACC,KAAK,CAACq1B,IAAI,CAAEiB,EAAYlB,GAAY,CACrD,CAACr1B,EAAAA,CAAeA,CAACC,KAAK,CAAC01B,IAAI,CAAEY,EAAYf,GAAY,CACrD,CAACx1B,EAAAA,CAAeA,CAACC,KAAK,CAACi2B,gBAAgB,CAAEK,EAAYN,GAAwB,CAC7E,CAACj2B,EAAAA,CAAeA,CAACC,KAAK,CAAC02B,gBAAgB,CAAEJ,EAAYH,GAAwB,CAChF,EAEDQ,sBAAuB,SAAUC,CAAY,EACzC/6B,EAAWg7B,WAAW,CAAG,GAEzBhD,EAAgBC,EAAoBj4B,EAAWxO,oBAAoB,EAC9DvH,IAAI,CAAC,IACFguC,EAAmBgD,UAAU,CAAGC,EAAa3lC,OAAO,CACpDk4B,WAAW,WACPwK,EAAmBkD,IAAI,CAACD,EAAa3lC,OAAO,CAAC,CAAC6lC,QAAQ,CAAG,EAC7D,EAAG,KAEH,IAAIC,EAAc/4B,EAAU6G,IAAI,CAAC,YAAc+xB,EAAa3lC,OAAO,EAAEuiC,MAAM,CAAC,CAAEllC,OAAQsoC,EAAatoC,MAAM,GAEpGmoC,GACDM,EAAYp8B,OAAO,EAE3B,GACCnQ,KAAK,CAAC,IAAI,CAACwsC,aAAa,CAACrzC,IAAI,CAAC,IAAI,CAAEic,EAAAA,CAAeA,CAACC,KAAK,CAACE,QAAQ,EAC3E,EAEAk3B,uBAAwB,SAAUR,CAAY,CAAES,CAAgB,CAAEC,CAAW,CAAEzC,CAAsB,EACjG,IAAI,CAAC0C,oBAAoB,CAAC3C,EAAY70B,EAAAA,CAAeA,CAACC,KAAK,CAACi0B,aAAa,CAAEoD,EAAkBC,EAAa,GAAMzC,EACpH,EAEA2C,wBAAyB,SAAUH,CAAgB,CAAEC,CAAW,CAAEzC,CAAsB,EACpF,IAAI,CAAC0C,oBAAoB,CAACzC,EAAkB/0B,EAAAA,CAAeA,CAACC,KAAK,CAAC+0B,kBAAkB,CAAEsC,EAAkBC,EAAa,GAAMzC,EAC/H,EAEA4C,yBAA0B,SAAUJ,CAAgB,CAAEC,CAAW,CAAEzC,CAAsB,EACrF,IAAI,CAAC0C,oBAAoB,CAACtC,EAAmBl1B,EAAAA,CAAeA,CAACC,KAAK,CAACk1B,YAAY,CAAEmC,EAAkBC,EAAa,GAAMzC,EAC1H,EAEA6C,kBAAmB,SAAUL,CAAgB,CAAEC,CAAW,CAAEzC,CAAsB,EAC9E,IAAI,CAAC0C,oBAAoB,CAACnC,EAAYr1B,EAAAA,CAAeA,CAACC,KAAK,CAACq1B,IAAI,CAAEgC,EAAkBC,EAAa,GAAMzC,EAC3G,EAYA8C,kBAAmB,SAAUC,CAAO,CAAEnC,CAAiB,CAAElwB,CAAS,EAC9D1J,EAAWg7B,WAAW,CAAG,GAEzBtB,EAAWzB,EAAoB8D,EAASnC,GACnC3vC,IAAI,CAAC,IACF,GAAI+V,SAAAA,EAAWg8B,OAAO,CAAa,CAC/B9rC,OAAOqkC,QAAQ,CAACC,IAAI,CAAGl1B,EAAgByC,YAAY,CAAG,wEAA0Em5B,EAAa3lC,OAAO,CACpJ,MACJ,CAGA+M,EAAU6G,IAAI,CAAC,QAAU+xB,EAAa3lC,OAAO,EAAEuiC,MAAM,CADhCpuB,EAAY,CAAEA,UAAWA,CAAU,EAAI,GAEhE,GACC5a,KAAK,CAAC,IAAI,CAACwsC,aAAa,CAACrzC,IAAI,CAAC,IAAI,CAAEic,EAAAA,CAAeA,CAACC,KAAK,CAAC01B,IAAI,EACvE,EAEAoC,6BAA8B,SAAUlB,CAAY,EAChD,IAAI,CAACW,oBAAoB,CAACvB,EAAwBj2B,EAAAA,CAAeA,CAACC,KAAK,CAACi2B,gBAAgB,CAAE,KAAM,GAAOW,EAC3G,EAEAmB,6BAA8B,SAAUnB,CAAY,EAChD,IAAI,CAACW,oBAAoB,CAACpB,EAAwBp2B,EAAAA,CAAeA,CAACC,KAAK,CAAC02B,gBAAgB,CAAE,KAAM,GAAOE,EAC3G,EAEAoB,gCAAiC,SAAUpI,CAAO,EAC9Ch+B,EAAWqmC,WAAW,CAAC98B,EAAgByC,YAAY,CAAG,4BAA6B,CAAEs6B,QAAS,UAAW,GAAGpyC,IAAI,CAAC,SAAU0M,CAAQ,EAC/H,IAAM2lC,EAAkB,CACpBrzB,QAAStS,EAAShI,IAAI,CACtB4tC,QAASxI,EAAQgI,OAAO,CACxB/H,WAAYD,EAAQyI,UAAU,CAC9BvI,aAAcF,EAAQ0I,YAAY,CAClCvI,YAAaH,EAAQ2I,WAAW,CAChCvI,aAAcJ,EAAQ4I,YAAY,EAEtCjS,EAAmB0J,QAAQ,CAACkI,EAChC,EACJ,EAEAM,mBAAoB,SAAU9iC,CAAQ,EAClC,IAAM+iC,EAAc,IAAI,CAAClC,kBAAkB,CAAC9jC,GAAG,CAACiD,UAChD,KAAoBrM,IAAhBovC,EACOj7B,EAAGpT,MAAM,CAAC,CAAC,wCAAwC,EAAEsL,EAAS,mBAAmB,CAAC,EAGtF+iC,IAAc5yC,IAAI,CAAC,GAAkB8L,EAAWqT,SAAS,CAAC8xB,EAAa3lC,OAAO,CAAE2lC,EAAarC,OAAO,CAAClqC,IAAI,CAAC+6B,QAAQ,EAC7H,EAWAgS,qBAAsB,SAAUoB,CAAY,CAAEnyB,CAAS,CAAE6wB,CAAgB,CAAEC,CAAW,CAAEV,CAAY,CAAE/B,CAAsB,EACxHh5B,EAAWg7B,WAAW,CAAG,GACzB8B,EAAa7E,EAAoBe,GAC5B/uC,IAAI,CAAC,GAAkB,IAAI,CAAC8yC,gBAAgB,CAAC7B,EAAcM,EAAkBC,EAAaV,IAC1FjsC,KAAK,CAAC,IAAI,CAACwsC,aAAa,CAACrzC,IAAI,CAAC,IAAI,CAAE0iB,GAC7C,EASAoyB,iBAAkB,SAAU7B,CAAY,CAAEjsC,CAAQ,CAAEwsC,CAAW,MAAEV,EAAAA,CAAAA,CAAAA,UAAAA,MAAAA,CAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CACvDxlC,EAAU2lC,EAAa3lC,OAAO,CAC9BuE,EAAWohC,EAAarC,OAAO,CAAClqC,IAAI,CAAC+6B,QAAQ,CASnD,GARAuO,EAAmBgD,UAAU,CAAGC,EAAa3lC,OAAO,CAIhDilC,EAAUwC,UAAU,CAAC/tC,IACrBA,EAASisC,EAAarC,OAAO,EAG7B,CAAC,IAAI,CAAC6B,uBAAuB,CAACztC,QAAQ,CAAC+S,EAAWg8B,OAAO,EAAG,CAC5D9rC,OAAOqkC,QAAQ,CAACC,IAAI,CAAGl1B,EAAgByC,YAAY,CAAG,gEAAkEjI,EAAW,OAASvE,EAC5I,MACJ,CAEA,IAAM0nC,EAAe36B,EAAU6G,IAAI,CAACpT,EAAWqT,SAAS,CAAC7T,EAASuE,IAClEmjC,EAAanF,MAAM,CAAC,SAAU,MAEV,KAAhB2D,GACAwB,EAAanF,MAAM,CAAC,IAGnBiD,GACDkC,EAAah+B,OAAO,EAE5B,EAEAq8B,cAAe,SAAU1wB,CAAI,EACzB5K,EAAWg7B,WAAW,CAAG,GAEzB,IAAMkC,EAAWl9B,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,CAAC,iBAAiB,EAAE2Y,EAAKtJ,WAAW,GAAG,CAAC,EAC7F67B,EAAQ,CACV1oC,MAAOuL,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,6CACjDmrC,QAASp9B,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,0CAA2C,CAAE2Y,KAAMsyB,CAAS,GAC/GG,aAAcr9B,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,8BAC5D,EAEAsQ,EAAM8H,MAAM,CAAC/K,EAAgB6G,yBAAyB,CAAG,0DAA2Dg3B,EACxH,CACJ,CACJ,EACH,C,qGClMDrvC,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,wBAAyB,CACxC,aACA,YACA,WACA,UACA,kBACA,KACA,qBACA,UACA,aACA,SAAUviB,CAAU,CAAEsC,CAAS,CAAExS,CAAQ,CAAEsS,CAAO,CAAE9C,CAAe,CAAEsC,CAAE,CAAEq2B,CAAkB,CAAE3wC,CAAO,CAAEyO,CAAU,EA8F5G,OA7FqB,WACjB,SAASunC,EAAeC,CAAU,EAC9B,IAAI,CAACzT,OAAO,CAAGyT,CACnB,CAuFA,OArFAD,EAAe7zC,SAAS,CAAC+zC,gBAAgB,CAAG,CAAC,yBAA0B,WAAY,YAAa,eAAgB,gBAAiB,YAAY,CAE7IF,EAAe7zC,SAAS,CAACg0C,WAAW,CAAG,SAAUC,CAAQ,CAAExjB,CAAQ,CAAEyjB,CAAQ,CAAEC,CAAe,CAAEroC,CAAO,EACnG,IAAIjF,EAAOotC,EAASzmB,KAAK,CAAC,KACtBvsB,EAAM4F,CAAI,CAACA,EAAKxF,MAAM,CAAG,EAAE,CAC3B+yC,EAAU,GASd,GAPI,IAAI,CAACL,gBAAgB,CAACvwC,QAAQ,CAACvC,GAC/BmzC,EAAU,IAAI,CAACC,iBAAiB,CAACH,EAAUjzC,EAAKwvB,EAAU,IACnDyjB,EAAS9kB,cAAc,CAACnuB,KAC/BizC,CAAQ,CAACjzC,EAAI,CAAGwvB,EAChB2jB,EAAU,IAGVD,GAAmBC,GAAWtoC,EAAS,CACvCooC,EAASrmB,YAAY,CAAG,IAAI1W,KAC5B,IAAIm9B,EAAY9F,EAAmBkD,IAAI,CAAC5lC,EAAQ,CAChDwoC,EAAUC,UAAU,GACpBD,EAAUE,cAAc,CAACN,GACzBI,EAAUG,IAAI,EAClB,CACJ,EAEAZ,EAAe7zC,SAAS,CAACq0C,iBAAiB,CAAG,SAAUH,CAAQ,CAAEjzC,CAAG,CAAEV,CAAK,EACvE,IAAI4wB,EAAS+iB,EAAS5D,YAAY,CAACrgB,KAAK,CAAC,CAAEsgB,IAAKtvC,CAAI,UACpD,EAAYyzC,eAAe,CAACvjB,GACpBA,CAAM,CAAC,EAAE,CAACqf,KAAK,GAAKjwC,IACpB4wB,CAAM,CAAC,EAAE,CAACqf,KAAK,CAAGjwC,EACX,KAGX2zC,EAAS5D,YAAY,CAACxqC,IAAI,CAAC,CACvByqC,IAAKtvC,EACLuvC,MAAOjwC,CACX,GAEO,GAGf,EAEAszC,EAAe7zC,SAAS,CAAC20C,iBAAiB,CAAG,SAAUT,CAAQ,CAAEjzC,CAAG,EAChEizC,EAAS5D,YAAY,CAAG4D,EAAS5D,YAAY,CAAChtC,MAAM,CAAC,GAAOsxC,EAAErE,GAAG,GAAKtvC,EAC1E,EAEA4yC,EAAe7zC,SAAS,CAAC60C,mBAAmB,CAAG,SAAUX,CAAQ,CAAEjzC,CAAG,EAClE,IAAI6zC,EAAQZ,EAAS5D,YAAY,CAACrgB,KAAK,CAAC,CAAEsgB,IAAKtvC,CAAI,EAAE,CAAC,EAAE,CACxD,OAAO6zC,EAAQA,EAAMtE,KAAK,CAAG,EACjC,EAEAqD,EAAe7zC,SAAS,CAAC+0C,SAAS,CAAG,SAAUb,CAAQ,EAQnD,OANA,IAAI,CAACc,gBAAgB,GAEjBC,MAAMf,EAAS1tB,QAAQ,GACvB0tB,CAAAA,EAAS1tB,QAAQ,CAAG,EAAC,EAGlB0uB,EADsBC,YAAY,CAACt/B,EAAgByC,YAAY,CAAG,wBAAyB,CAAEtC,MAAOk+B,CAAS,GACjG1zC,IAAI,CAAC40C,IAPT,CAOcC,gBAAgB,CACjD,EAEAxB,EAAe7zC,SAAS,CAACs1C,eAAe,CAAG,SAAUC,CAAc,CAAEzpC,CAAO,EACxE,OAAQypC,EAAep0B,IAAI,EACvB,IAAK,YACDxI,EAAQmyB,QAAQ,CAACC,IAAI,CAAGwK,EAAejkC,GAAG,CAC1C,KACJ,KAAK,UACDuH,EAAU6G,IAAI,CAAC,WAAa5T,GAC5B,KACJ,KAAK,WACDypC,EAAe/vC,QAAQ,EAC/B,CACJ,EAEAquC,EAAe7zC,SAAS,CAACg1C,gBAAgB,CAAG,WACxC,IAAI,CAAC3U,OAAO,CAAC5V,QAAQ,CAAC,eAC1B,EAEAopB,EAAe7zC,SAAS,CAACq1C,gBAAgB,CAAG,WACxC,IAAID,EAAO,IAAI,CACf,OAAO/uC,EAAS,WACZ+uC,EAAK/U,OAAO,CAAC7V,WAAW,CAAC,eAC7B,EAAGgrB,EAAAA,CAAiBA,CAACC,YAAY,CACrC,EAEO5B,CACX,GAGJ,EACH,C,qEC5GDxvC,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,oBAAqB,CACpC,QACA,kBACA,KACA,OACA,UACA,YACA,aACA,UACA,uBACA,SAAU3sB,CAAK,CAAE0J,CAAe,CAAEsC,CAAE,CAAEu9B,CAAI,CAAE/8B,CAAO,CAAEE,CAAS,CAAEvM,CAAU,CAAEqpC,CAAO,CAAEzpC,CAAoB,EACrG,MAAO,CACHytB,YAAa,SAAU9B,CAAY,CAAE+d,CAAU,EAE3C,OAAOtpC,EAAW6oC,YAAY,CAACt/B,EAAgByC,YAAY,CAD9Cs9B,CAAAA,EAAa,oBAAsB,QAAO,EACe/d,EAC1E,EAEA0T,cAAe,SAAU35B,CAAQ,EAC7B,OAAOtF,EAAW6oC,YAAY,CAACt/B,EAAgByC,YAAY,CAAG,sBAAuB1G,EACzF,EAEAw5B,aAAc,SAAUx5B,CAAQ,EAC5B,OAAOtF,EAAW6oC,YAAY,CAACt/B,EAAgByC,YAAY,CAAG,qBAAsB1G,EACxF,EAEA65B,YAAa,SAAU75B,CAAQ,CAAEikC,CAAmB,EAKhD,OAAOvpC,EAAW6oC,YAAY,CAACt/B,EAAgByC,YAAY,CAAG,oBAJnD,CACP1G,SAAUA,EACVikC,oBAAqBA,CACzB,EAEJ,EAEAlK,gBAAiB,SAAU/5B,CAAQ,EAC/B,OAAOtF,EAAW6oC,YAAY,CAACt/B,EAAgByC,YAAY,CAAG,wBAAyB1G,EAC3F,EAEAi6B,cAAe,SAAUj6B,CAAQ,EAC7B,OAAOtF,EAAW6oC,YAAY,CAACt/B,EAAgByC,YAAY,CAAG,sBAAuB1G,EACzF,EAEAkkC,WAAY,SAAUlkC,CAAQ,EAE1B,IAAImkC,EAAkB7qB,QAAQ0N,IAAI,CAAChnB,GACnCtF,EAAW6oC,YAAY,CAACt/B,EAAgByC,YAAY,CAAG,qBAAsBy9B,GAAiBv1C,IAAI,CAAC,SAAU0M,CAAQ,EACjH,IAAI8oC,EAAO9oC,EAAShI,IAAI,CAExBgmB,QAAQvoB,OAAO,CAACqzC,EAAM,SAAU1kC,CAAG,EAC/BA,EAAMhF,EAAW0uB,iBAAiB,CAAC1pB,GAC/B0kC,IAAAA,EAAK30C,MAAM,EACXiQ,EAAMA,EAAIkE,OAAO,CAAC,KAAM,IACxBqD,EAAU6G,IAAI,CAACpO,IAGfqH,EAAQqmB,IAAI,CAAC1tB,EAAK,SAE1B,EACJ,EACJ,EAEA2kC,kBAAmB,SAAUnqC,CAAO,CAAEoqC,CAAM,EAExC,OAAO/pC,EAAMc,IAAI,CAAC4I,EAAgByC,YAAY,CAA5BzC,mCADoB/J,EAAU,sBAAwBoqC,GACwB11C,IAAI,CAAC,SAAU0M,CAAQ,EACnH,OAAOA,EAAWA,EAAShI,IAAI,CAAGiT,EAAGpT,MAAM,EAC/C,EACJ,EAEAoxC,kBAAmB,SAAUnkC,CAAE,CAAEokC,CAAc,CAAEC,CAAS,EACtD,OAAO/pC,EAAWqmC,WAAW,CAAC98B,EAAgByC,YAAY,CAAG,0BAA2B,CACpFtG,GAAIA,EACJokC,eAAgBA,GAAkB,GAClCC,UAAWA,GAAa,EAC5B,EACJ,EAEA/lC,6BAA8B,SAAUxE,CAAO,EAC3C,OAAOI,EAAqBoE,4BAA4B,CAACxE,EAC7D,EAEAsE,QAAS,SAAU4B,CAAE,CAAE3B,CAAQ,EAC3B,OAAOnE,EAAqBkE,OAAO,CAAC4B,EAAI3B,EAC5C,EAEA0B,wBAAyB,SAAUC,CAAE,EACjC,OAAO9F,EAAqB6F,uBAAuB,CAACC,EACxD,EAEAskC,iBAAkB,SAAUtkC,CAAE,EAC1B,OAAO1F,EAAWqmC,WAAW,CAAC98B,EAAgByC,YAAY,CAAG,gCAAiC,CAC1FxM,QAASkG,CACb,EACJ,EACAukC,kBAAmB,SAAUvkC,CAAE,EAC3B,OAAO1F,EAAW6oC,YAAY,CAACt/B,EAAgByC,YAAY,CAAG,mCAAqCtG,EACvG,EAEAwkC,oBAAqB,SAAUC,CAAG,EAC9B,OAAOnqC,EAAW6oC,YAAY,CAACt/B,EAAgByC,YAAY,CAAG,4BAA6Bm+B,EAC/F,EAEAlY,8BAA+B,SAAUkY,CAAG,EACxC,OAAOnqC,EAAW6oC,YAAY,CAACt/B,EAAgByC,YAAY,CAAG,2BAA4Bm+B,EAC9F,EAEAn7B,OAAQ,SAAU5W,CAAO,EAGjBA,GAAWA,EAAQ66B,YAAY,EAAI76B,EAAQ66B,YAAY,CAACz6B,OAAO,EAC/DJ,EAAQ66B,YAAY,CAACz6B,OAAO,EAEpC,EAEA4xC,WAAY,WACR,OAAOpqC,EAAWqmC,WAAW,CAAC98B,EAAgByC,YAAY,CAAG,0BACjE,EAEAq+B,yCAA0C,WACtC,OAAOhB,EAAQiB,iBAAiB,CAAC,qBAAsB,OAC3D,EAEA/kC,2BAA4B,SAAUhF,CAAM,CAAEgqC,CAAmB,EAC7D,OAAOA,EAAsB3qC,EAAqB4F,UAAU,CAACjF,GAAUX,EAAqB2F,0BAA0B,CAAChF,EAC3H,EAEAiqC,mBAAoB,SAAUllC,CAAQ,EAClC,OAAOtF,EAAW6oC,YAAY,CAACt/B,EAAgByC,YAAY,CAAG,+BAAgC1G,EAClG,EAEAD,uBAAwB,SAAUC,CAAQ,EACtC,OAAO1F,EAAqByF,sBAAsB,CAACC,GAAUpR,IAAI,CAAC,SAAU0M,CAAQ,EAChF,OAAOA,EAAWA,EAAShI,IAAI,CAAGiT,EAAGpT,MAAM,EAC/C,EACJ,EAEAgyC,sBAAuB,SAAUjrC,CAAO,EACpC,OAAO,IAAI,CAAC6F,sBAAsB,CAAC,CAAC7F,EAAQ,EAAEtL,IAAI,CAAC,SAAU0E,CAAI,EAC7D,OAAOA,GAAQA,CAAI,CAAC,EAAE,CAACsrC,KAAK,CAAGtrC,CAAI,CAAC,EAAE,CAACsrC,KAAK,CAAG,IACnD,EACJ,EAEAwG,0BAA2B,SAAUlrC,CAAO,EACxC,OAAOK,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,qCAAuCxM,GAAStL,IAAI,CAAC,SAAU0M,CAAQ,EACnH,OAAOA,EAAShI,IAAI,EAE5B,EAEA+xC,eAAgB,SAAUrlC,CAAQ,CAAEslC,CAAY,EAC5C,OAAO/qC,EAAMc,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,mBAAoB,CAAE1G,SAAUA,EAAUmsB,YAAamZ,CAAa,EACzH,CACJ,CACJ,EACH,C,kGC7ID7yC,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,gBAAiB,CAChC,QACA,kBACA,KACA,oBACA,uBACA,kBACA,SAAU3sB,CAAK,CAAE0J,CAAe,CAAEsC,CAAE,CAAEyc,CAAiB,CAAE7sB,CAAoB,CAAEgtB,CAAe,EAC1F,OAAO,WAOH,IANIoiB,EACAC,EACAC,EACAC,EACAC,EACAC,EAgBAzP,EAfA0P,EAAoB,EAAE,CACtBC,EAAiB,EAAE,CACnBC,EAAS,CAAC,UAAW,MAAO,qBAAsB,qBAAqB,CACvEC,EAAeD,CAAM,CAAC,EAAE,CACxBE,EAAkB,CAClB3e,WAAY,aACZE,YAAa,GACbG,SAAU,UACVue,UAAW,GACX3e,YAAa,EAAE,CACf4e,KAAM,EAAE,CACRC,SAAU,KACVC,OAAQ,IACZ,EACIC,EAAiB,CAAC9rB,EAAAA,CAAeA,CAACwE,WAAW,CAACqX,OAAO,CAAC,CAItDkQ,EAAwB,SAAUnmC,CAAE,CAAEomC,CAAW,CAAEC,CAAO,EAC1D,IAAIC,EAAkB,CAClBtmC,GAAIA,EACJomC,YAAaA,EACbC,QAASA,EACT1oC,QAAS,CACL4oC,OAAQ,CACJC,QAAS,EACb,CACJ,CACJ,EACA,OAAQxmC,GACJ,KAAKoa,EAAAA,CAAeA,CAACwE,WAAW,CAACkF,KAAK,CAClCwiB,EAAgB3oC,OAAO,CAAC0e,OAAO,CAAG,CAC9BxB,WAAYwqB,CAChB,EACAiB,EAAgB3oC,OAAO,CAACof,SAAS,CAAG,CAChChC,UAAW,CACP,CAAE1B,KAAM,MAAO9qB,MAAO,EAAG,EACzB,CAAE8qB,KAAM,gBAAiB9qB,MAAO,MAAO,EACvC,CAAE8qB,KAAM,iBAAkB9qB,MAAO,OAAQ,EACzC,CAAE8qB,KAAM,gBAAiB9qB,MAAO,QAAS,EAC5C,CACDgwB,MAAO,EAAE,CACTvD,KAAM,GACNG,cAAe,GACfsrB,gBAAiB,EACrB,EACA,KACJ,MAAKrsB,EAAAA,CAAeA,CAACwE,WAAW,CAACoF,QAAQ,CACrCsiB,EAAgB3oC,OAAO,CAAC0e,OAAO,CAAG,CAC9BxB,WAAYyqB,CAChB,EACAgB,EAAgB3oC,OAAO,CAACof,SAAS,CAAG,CAChChC,UAAW,CACP,CAAE1B,KAAM,MAAO9qB,MAAO,EAAG,EACzB,CAAE8qB,KAAM,gBAAiB9qB,MAAO,MAAO,EACvC,CAAE8qB,KAAM,iBAAkB9qB,MAAO,OAAQ,EACzC,CAAE8qB,KAAM,gBAAiB9qB,MAAO,QAAS,EAC5C,CACDgwB,MAAO,EAAE,CACTvD,KAAM,GACNG,cAAe,GACfsrB,gBAAiB,EACrB,EACA,KACJ,MAAKrsB,EAAAA,CAAeA,CAACwE,WAAW,CAACsF,SAAS,CACtCoiB,EAAgB3oC,OAAO,CAAC0e,OAAO,CAAG,CAC9BxB,WAAY0qB,CAChB,EACAe,EAAgB3oC,OAAO,CAACof,SAAS,CAAG,CAChChC,UAAW,CACP,CAAE1B,KAAM,MAAO9qB,MAAO,EAAG,EACzB,CAAE8qB,KAAM,gBAAiB9qB,MAAO,MAAO,EACvC,CAAE8qB,KAAM,iBAAkB9qB,MAAO,OAAQ,EACzC,CAAE8qB,KAAM,gBAAiB9qB,MAAO,QAAS,EAC5C,CACDgwB,MAAO,EAAE,CACTvD,KAAM,GACNG,cAAe,GACfsrB,gBAAiB,EACrB,EACA,KACJ,MAAKrsB,EAAAA,CAAeA,CAACwE,WAAW,CAAC4I,IAAI,CACjC8e,EAAgB3oC,OAAO,CAAC0e,OAAO,CAAG,CAC9BxB,WAAYwqB,CAChB,EACAiB,EAAgB3oC,OAAO,CAACof,SAAS,CAAG,CAChChC,UAAW,CACP,CAAE1B,KAAM,MAAO9qB,MAAO,EAAG,EACzB,CAAE8qB,KAAM,gBAAiB9qB,MAAO,MAAO,EACvC,CAAE8qB,KAAM,iBAAkB9qB,MAAO,OAAQ,EACzC,CAAE8qB,KAAM,gBAAiB9qB,MAAO,QAAS,EAC5C,CACDgwB,MAAO,EAAE,CACTvD,KAAM,GACNG,cAAe,GACfsrB,gBAAiB,EACrB,EACA,KACJ,MAAKrsB,EAAAA,CAAeA,CAACwE,WAAW,CAACC,QAAQ,CACrCynB,EAAgB3oC,OAAO,CAAC0e,OAAO,CAAG,CAC9BkC,MAAO,EAAE,EAEb,KACJ,KAAK,UACD+nB,EAAgB3oC,OAAO,CAAC0e,OAAO,CAAG,CAC9BqqB,QAAS,CAAC,IAAK,IAAK,IAAK,MAAM,EAEnC,KACJ,MAAKtsB,EAAAA,CAAeA,CAACwE,WAAW,CAACwF,OAAO,CACpCkiB,EAAgB3oC,OAAO,CAAC0e,OAAO,CAAG,CAC9BxB,WAAY0qB,CAChB,EACAe,EAAgB3oC,OAAO,CAACof,SAAS,CAAG,CAChChC,UAAW,CACP,CAAE1B,KAAM,MAAO9qB,MAAO,EAAG,EACzB,CAAE8qB,KAAM,gBAAiB9qB,MAAO,MAAO,EACvC,CAAE8qB,KAAM,iBAAkB9qB,MAAO,OAAQ,EACzC,CAAE8qB,KAAM,gBAAiB9qB,MAAO,QAAS,EAC5C,CACDgwB,MAAO,EAAE,CACTvD,KAAM,GACNG,cAAe,GACfsrB,gBAAiB,EACrB,CAER,CACAhB,EAAkB3xC,IAAI,CAACwyC,EAC3B,CAeA,KAAI,CAACtR,IAAI,CAAG,WACR,IAAIoO,EAAO,IAAI,CACXuD,EAAc/jB,EAAkB8hB,UAAU,GA0C9C,OAzCAiC,EAAYn4C,IAAI,CAAC,SAAU0M,CAAQ,EAE/BkqC,EAAmBlqC,EAAShI,IAAI,CAACkyC,gBAAgB,CAGjD,IAAK,IAAIlzC,EAAI,EAAGA,EAAIkzC,EAAiB/1C,MAAM,CAAE6C,IACzC,GAAIkzC,YAAAA,CAAgB,CAAClzC,EAAE,CAACuzB,SAAS,CAAgB,CAC7C2f,EAAiBrxC,MAAM,CAAC7B,EAAG,GAC3B,KACJ,CAsBJ,GAlBAmzC,EAAiBnqC,EAAShI,IAAI,CAAC0zC,SAAS,CACxCtB,EAAoBpqC,EAAShI,IAAI,CAAC2zC,YAAY,CAC9CtB,EAAoBrqC,EAAShI,IAAI,CAAC4zC,YAAY,CAG9CrB,EAAkB1xC,MAAM,CAAC,EAAG0xC,EAAkBp2C,MAAM,EACpD82C,EAAsB/rB,EAAAA,CAAeA,CAACwE,WAAW,CAACqX,OAAO,CAAE,aAAc,IACzEkQ,EAAsB/rB,EAAAA,CAAeA,CAACwE,WAAW,CAACkF,KAAK,CAAE,SAAU,IACnEqiB,EAAsB/rB,EAAAA,CAAeA,CAACwE,WAAW,CAACoF,QAAQ,CAAE,YAAa,IAErEjB,EAAgBS,SAAS,CAAC,eAC1B2iB,EAAsB/rB,EAAAA,CAAeA,CAACwE,WAAW,CAACsF,SAAS,CAAE,aAAc,IAG/EiiB,EAAsB/rB,EAAAA,CAAeA,CAACwE,WAAW,CAAC4I,IAAI,CAAE,QAAS,IACjE2e,EAAsB/rB,EAAAA,CAAeA,CAACwE,WAAW,CAACwF,OAAO,CAAE,UAAW,IACtEgf,EAAK2D,iBAAiB,CAAC1B,GAEnBD,GAAoBA,EAAiB/1C,MAAM,CAC3C,IAAK,IAAI6C,EAAI,EAAGA,EAAIkzC,EAAiB/1C,MAAM,CAAE6C,IAAK,CAC9C,IAAII,EAAU8yC,CAAgB,CAAClzC,EAAE,CACjCi0C,EAAsB,CAAC,EAAE/rB,EAAAA,CAAeA,CAACwE,WAAW,CAACC,QAAQ,CAAC,CAAC,EAAEvsB,EAAQmzB,SAAS,CAAC,CAAC,CAAEnzB,EAAQozB,IAAI,CAAE,GACxG,CAEJyf,EAAyBjqC,EAAShI,IAAI,CAAC8zC,YAAY,CAACC,kBAAkB,CACtEzB,EAAkBtqC,EAAShI,IAAI,CAACsyC,eAAe,GAG5CmB,CACX,EAEA,IAAI,CAACI,iBAAiB,CAAG,SAAUG,CAAI,EACnC,IAAK,IAA4B51C,EAAxBY,EAAI,EAAGC,EAAI+0C,EAAK73C,MAAM,CAAU6C,EAAIC,EAAGD,IAC5CZ,EAAS41C,CAAI,CAACh1C,EAAE,CAC8B,KAA1Cg0C,EAAep0C,OAAO,CAACR,EAAOioB,MAAM,GACpCjoB,CAAAA,EAAOioB,MAAM,CAAG,IAAG,CAG/B,EAEA,IAAI,CAAC4tB,cAAc,CAAG,WAClB,OAAOjuB,QAAQ0N,IAAI,CAACif,EACxB,EAEA,IAAI,CAAC9e,eAAe,CAAG,WACnB,OAAO6e,CACX,EAEA,IAAI,CAAC1O,QAAQ,CAAG,SAAU7P,CAAK,EAC3B,IAAI+f,EAAazB,EAAO7zC,OAAO,CAACu1B,UAChC,KAAI+f,EACOxB,EAEXA,EAAeD,CAAM,CAACyB,EAAW,EAKrC,IAAI,CAACC,SAAS,CAAG,WACb,IAAID,EAAazB,EAAO7zC,OAAO,CAAC8zC,GAIhC,OAHIwB,EAAa,IAAMzB,EAAOt2C,MAAM,CAAG+3C,EAAa,GAChDxB,CAAAA,EAAeD,CAAM,CAACyB,EAAa,EAAE,EAElCxB,CACX,EAEA,IAAI,CAAC0B,aAAa,CAAG,WACjB,IAAIF,EAAazB,EAAO7zC,OAAO,CAAC8zC,GAIhC,OAHIwB,EAAa,GACbxB,CAAAA,EAAeD,CAAM,CAACyB,EAAa,EAAE,EAElCxB,CACX,EAEA,IAAI,CAAC1P,qBAAqB,CAAG,SAAUqR,CAAW,CAAE3R,CAAQ,EAExD,OAAQA,GACJ,KAAKxb,EAAAA,CAAeA,CAACwE,WAAW,CAACkF,KAAK,CAClC0jB,EAAYnC,EACZ,KACJ,MAAKjrB,EAAAA,CAAeA,CAACwE,WAAW,CAACoF,QAAQ,CACrCwjB,EAAYlC,EACZ,KACJ,SACIkC,EAAYjC,CAEpB,CAEA,IAAK,IAbDiC,EAaKt1C,EAAI,EAAGA,EAAIuzC,EAAkBp2C,MAAM,CAAE6C,IACtCuzC,CAAiB,CAACvzC,EAAE,CAAC8N,EAAE,CAAC6F,WAAW,GAAG/T,OAAO,CAAC,aAAe,IAE7D2zC,EAAkB1xC,MAAM,CAAC7B,EAAG,GAKpC,GAAKq1C,GAKL,IAAIE,EAAcF,EAAY/rB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC3V,WAAW,GAGvD,IAAK3T,EAAI,EAAGA,EAAIs1C,EAAUn4C,MAAM,CAAE6C,IAAK,CACnC,IAAI0qB,EAAkB4qB,CAAS,CAACt1C,EAAE,CAElC,GAAI0qB,CAA0B,GAA1BA,EAAgB8qB,MAAM,EAAY9qB,OAAAA,EAAgBrD,MAAM,EAI5D,IAAIouB,EAAW/qB,EAAgBrD,MAAM,CAAC1T,WAAW,GAGjD,GAAI8hC,CAFJA,EAAWA,EAASnkC,OAAO,CAAC,YAAa,GAAE,EAE9B1R,OAAO,CAAC21C,GAAe,IAAM7qB,EAAgBtD,WAAW,CAACzT,WAAW,GAAG/T,OAAO,CAAC21C,GAAe,GAAI,CAE3G,GAAI9B,EAAO7zC,OAAO,CAAC8zC,GAAgB,EAAG,CAClC7P,EAAa7c,QAAQ0N,IAAI,CAAChK,GAC1B,MACJ,CAEIupB,EAAsB,aAAevpB,EAAgBrD,MAAM,CAAEqD,EAAgBrD,MAAM,CAAE,IACrF,MAER,EACJ,EACJ,EAEA,IAAI,CAAC6c,0BAA0B,CAAG,SAAUkQ,CAAe,CAAEiB,CAAW,CAAE3f,CAAS,EAC/E,IAAIhQ,EAAW,CACXwP,YAAamgB,CACjB,EAuDA,OArDIjB,EAAgBtmC,EAAE,GAAKoa,EAAAA,CAAeA,CAACwE,WAAW,CAACqX,OAAO,EAAIqQ,KAAAA,EAAgBtmC,EAAE,CAAClO,OAAO,CAACsoB,EAAAA,CAAeA,CAACwE,WAAW,CAACC,QAAQ,GAC7H,IAAI,CAAC7C,SAAS,CAAC,CACX1C,YAAagtB,EAAgBF,WAAW,CACxC7sB,OAAQ+sB,EAAgBtmC,EAAE,CAC1BwZ,WAAY,aACZoZ,QAAShL,CACb,GAGJ1O,QAAQvoB,OAAO,CAAC+0C,EAAgB,SAAUp0C,CAAM,EAC5C,OAAQA,EAAO6d,IAAI,EACf,IAAK,aACDyI,EAASsP,UAAU,CAAG51B,EAAO/C,KAAK,CAClC,KACJ,KAAK,WAGDqpB,EAAS2P,QAAQ,CAAGj2B,EAAO/C,KAAK,CAChC,KACJ,KAAK,qBACDqpB,EAASuP,WAAW,CAAG,CAAC71B,EAAO/C,KAAK,CAAC,CACrCqpB,EAASgwB,gBAAgB,CAAGt2C,EAAO+nB,IAAI,CACvC,KACJ,KAAK,sBACDzB,EAASkuB,SAAS,CAAG,CAACx0C,EAAO/C,KAAK,CAAC,CACnCqpB,EAASiwB,iBAAiB,CAAGv2C,EAAO+nB,IAAI,CACxC,KACJ,KAAK,iBACIzB,EAASmuB,IAAI,EACdnuB,CAAAA,EAASmuB,IAAI,CAAG,EAAE,EAEsB,KAAxCnuB,EAASmuB,IAAI,CAACj0C,OAAO,CAACR,EAAO/C,KAAK,GAClCqpB,EAASmuB,IAAI,CAACjyC,IAAI,CAACxC,EAAO/C,KAAK,EAEnC,KACJ,KAAK,qBACDqpB,EAASkwB,iBAAiB,CAAGx2C,EAAO/C,KAAK,CACzC,KACJ,KAAK,mBACL,IAAK,mBACDqpB,EAASmwB,kBAAkB,CAAGz2C,EAAO/C,KAAK,CAC1C,KACJ,KAAK,0BACDqpB,EAASowB,UAAU,CAAG12C,EAAO/C,KAAK,CAClC,KACJ,KAAK,4BACDqpB,EAASqwB,eAAe,CAAG32C,EAAO/C,KAAK,CAGnD,GAEAqpB,EAASoO,eAAe,CAAGkiB,SArNFC,CAAU,EACnC,GAAIA,KAA2Bn2C,IAA3Bm2C,EAAW/gB,WAAW,EAAkB+gB,KAAAA,EAAW/gB,WAAW,CAC9D,MAAO,GAGX,IAAMvyB,EAAOY,OAAOZ,IAAI,CAACszC,SACzB,CAAItzC,CAAAA,EAAKxF,MAAM,CAAG,IAIXwF,CAAAA,IAAAA,EAAKxF,MAAM,EAASoG,OAAOC,MAAM,CAAC0kB,EAAAA,CAAeA,CAACwE,WAAW,EAAEvO,QAAQ,CAAC83B,EAAWjhB,UAAU,CAAO,CAC/G,EA0MmDtP,GAExCA,CACX,EAEA,IAAI,CAAC8c,iBAAiB,CAAG,SAAU0T,CAAe,EAC9C,GAAI,CAACA,EACD,OAAO1C,EAAev0C,KAAK,CAAC,GAIhC,IAAK,IADDG,EADA+2C,EAAiB,EAAE,CAEdn2C,EAAI,EAAGA,EAAIwzC,EAAer2C,MAAM,CAAE6C,IAEnCZ,CADJA,EAASo0C,CAAc,CAACxzC,EAAE,EACfm0C,OAAO,EACdgC,EAAev0C,IAAI,CAACxC,GAG5B,OAAO+2C,CACX,EAEA,IAAI,CAACrsB,SAAS,CAAG,SAAU1qB,CAAM,CAAE2qB,CAAY,CAAEoB,CAAO,EAChDpB,GACA3qB,CAAAA,EAAOkoB,UAAU,CAAGyC,CAAW,EAUnC,IAAK,IAHDqsB,EACArT,EALAt3B,EAAU0f,EAAU,IAAI,CAACkrB,uBAAuB,CAACj3C,GAAU,CAACA,EAAO,CAEnEk3C,EAAa,GACbj3C,EAAI,EAICW,EAAI,EAAGC,EAAIwL,EAAQtO,MAAM,CAAE6C,EAAIC,EAAGD,IAAK,CAG5C,IAAKX,EAAI,EAFT+2C,EAAY3qC,CAAO,CAACzL,EAAE,CAEVX,EAAIm0C,EAAer2C,MAAM,CAAEkC,IAanC,GAZA0jC,EAAOyQ,CAAc,CAACn0C,EAAE,CAGnB8rB,GAEG4X,EAAK9lB,IAAI,EAAIm5B,EAAU9uB,UAAU,EAAIyb,EAAK1mC,KAAK,EAAI+5C,EAAU/uB,MAAM,EACnEmsB,EAAe3xC,MAAM,CAACxC,EAAG,GAM7B0jC,EAAK1mC,KAAK,EAAI+5C,EAAU/uB,MAAM,CAAE,CAChCivB,EAAa,GACb,KACJ,CAEAA,GACA9C,EAAe5xC,IAAI,CAAC,CAChBulB,KAAMivB,EAAUhvB,WAAW,CAC3B/qB,MAAO+5C,EAAU/uB,MAAM,CACvBpK,KAAM7d,EAAOkoB,UAAU,CAEvB6sB,QAAS/0C,KAAkBU,GAAlBV,EAAOshC,OAAO,EAAiBthC,CAAkB,GAAlBA,EAAOshC,OAAO,EAGlE,CAEA,OAAO8S,CACX,EAEA,IAAI,CAAC/T,YAAY,CAAG,SAAUjgC,CAAK,EAY/B,MATI+2C,eAAAA,CAF8B,CAAC/2C,EAAM,CAEvByd,IAAI,CAClBu2B,EAAiB,EAAE,CAEnBA,EAAe3xC,MAAM,CAACrC,EAAO,GAM1Bg0C,CACX,EAEA,IAAI,CAACpR,oBAAoB,CAAG,WACxB,OAAOmR,CACX,EAEA,IAAI,CAAClR,mBAAmB,CAAG,WACvB,OAAO6Q,CACX,EAEA,IAAI,CAACsD,iBAAiB,CAAG,WACrB,OAAOrD,CACX,EAEA,IAAI,CAAClP,aAAa,CAAG,WACjB,OAAOJ,CACX,EAEA,IAAI,CAACC,eAAe,CAAG,WAEnB,OADAD,EAAa,CAAC,CAElB,EAEA,IAAI,CAACV,yBAAyB,CAAG,WAC7B,OAAO8P,CACX,EAEA,IAAI,CAAC7P,kBAAkB,CAAG,WACtB,OAAOkQ,CACX,EAEA,IAAI,CAAC+C,uBAAuB,CAAG,SAAUj3C,CAAM,EAG3C,IAAK,IADDu3B,EADAlrB,EAAU,EAAE,CAEPzL,EAAI,EAAGC,EAAIb,EAAOioB,MAAM,CAAClqB,MAAM,CAAE6C,EAAIC,EAAGD,IAC7C22B,EAAOv3B,EAAOioB,MAAM,CAACrnB,EAAE,CACvByL,EAAQ7J,IAAI,CAAC,CACTwlB,YAAahoB,EAAOgoB,WAAW,CAAG,IAAMuP,EACxCtP,OAAQsP,EACRrP,WAAYloB,EAAOkoB,UAAU,GAIrC,OAAO7b,CACX,EAEA,IAAI,CAACgrC,aAAa,CAAG,WACjB,MAAO,CACHpC,OAAQ,CACJC,QAAS,EACb,EACAnqB,QAAS,CACLvB,YAAa,KACbD,WAAY,CACR,CACIvB,YAAavjB,EAAqBS,SAAS,CAAC,kCAC5C+iB,OAAQ,KACRC,WAAY,GACZoC,KAAM,cACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,uCAAwC,CAAE2B,MAAO,CAAE,GAC/FohB,OAAQ,cACRC,WAAY,WACZoC,KAAM,cACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,gCAAiC,CAAE2B,MAAO,CAAE,GACxFohB,OAAQ,OACRC,WAAY,WACZoC,KAAM,OACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,sCAAuC,CAAE2B,MAAO,CAAE,GAC9FohB,OAAQ,yBACRC,WAAY,WACZoC,KAAM,yBACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,wCAAyC,CAAE2B,MAAO,CAAE,GAChGohB,OAAQ,eACRC,WAAY,WACZoC,KAAM,eACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,oCAAqC,CAAE2B,MAAO,CAAE,GAC5FohB,OAAQ,WACRC,WAAY,WACZoC,KAAM,WACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,gCAAiC,CAAE2B,MAAO,CAAE,GACxFohB,OAAQ,OACRC,WAAY,WACZoC,KAAM,OACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,4CAA6C,CAAE2B,MAAO,CAAE,GACpGohB,OAAQ,mBACRC,WAAY,WACZoC,KAAM,mBACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,qCAAsC,CAAE2B,MAAO,CAAE,GAC7FohB,OAAQ,YACRC,WAAY,UACZoC,KAAM,YACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,sCAAuC,CAAE2B,MAAO,CAAE,GAC9FohB,OAAQ,aACRC,WAAY,UACZoC,KAAM,aACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,gCAAiC,CAAE2B,MAAO,CAAE,GACxFohB,OAAQ,OACRC,WAAY,UACZoC,KAAM,OACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,sCAAuC,CAAE2B,MAAO,CAAE,GAC9FohB,OAAQ,aACRC,WAAY,UACZoC,KAAM,aACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,kCAAmC,CAAE2B,MAAO,CAAE,GAC1FohB,OAAQ,SACRC,WAAY,UACZoC,KAAM,SACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,gCAAiC,CAAE2B,MAAO,CAAE,GACxFohB,OAAQ,OACRC,WAAY,WACZoC,KAAM,OACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,iCAAkC,CAAE2B,MAAO,CAAE,GACzFohB,OAAQ,QACRC,WAAY,WACZoC,KAAM,QACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,iCAAkC,CAAE2B,MAAO,CAAE,GACzFohB,OAAQ,QACRC,WAAY,WACZoC,KAAM,QACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,uCAAwC,CAAE2B,MAAO,CAAE,GAC/FohB,OAAQ,eACRC,WAAY,UACZoC,KAAM,MACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,iCAAkC,CAAE2B,MAAO,CAAE,GACzFohB,OAAQ,QACRC,WAAY,WACZoC,KAAM,QACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,oCAC5C+iB,OAAQ,YACRC,WAAY,WACZoC,KAAM,YACN8rB,OAAQ,EACZ,EACA,CACIpuB,YAAavjB,EAAqBS,SAAS,CAAC,6CAC5C+iB,OAAQ,aACRC,WAAY,WACZoC,KAAM,QACN8rB,OAAQ,EACZ,EACH,EAEL3qB,UAAW,CACPwB,MAAO,EAAE,CACTkoB,gBAAiB,GACjBtrB,cAAe,GACfJ,UAAW,KACXC,KAAM,EACV,CACJ,CACJ,CACJ,CACJ,EACH,C,kBC/oBD,SAAS8H,EAAuB3c,CAAE,EAC9B,MAAO,CACH8e,sBAAuB,SAAUsD,CAAO,CAAE72B,CAAK,CAAEk3C,CAAU,EACvD,OAAO,IAAIC,EAAgB1iC,EAAIoiB,EAAS72B,EAAOk3C,EACnD,CACJ,CACJ,CASA,SAASC,EAAgBC,CAAC,CAAEvgB,CAAO,CAAE72B,CAAK,CAAEk3C,CAAU,EAClD,IAAI,CAACG,EAAE,CAAGD,EACV,IAAI,CAACE,QAAQ,CAAGzgB,GAAW,EAAE,CAC7B,IAAI,CAAC0gB,MAAM,CAAG,CAAChG,MAAMvxC,IAAU,iBAAOA,GAAsBA,EAAQ,IAAI,CAACs3C,QAAQ,CAAC35C,MAAM,CAAG,EAAIqC,EAAQ,EACvG,IAAI,CAACw3C,WAAW,CAAG,MAAON,IAAe,iBAAOl3C,EAAkC,GAAbk3C,CACzE,CAvBAv2C,E,OAAAA,CAAUA,CAACy0B,OAAO,CAAC,yBAA0BhE,GAC7CA,EAAuBvwB,OAAO,CAAG,CAAC,KAAK,CA4BvCs2C,EAAgB76C,SAAS,CAACk6B,UAAU,CAAG,SAAUK,CAAO,MAAE4gB,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAiB,CACvE,KAAI,CAACH,QAAQ,CAAGzgB,EAChB,IAAI,CAAC0gB,MAAM,CAAGE,CAClB,EAKAN,EAAgB76C,SAAS,CAACy7B,mBAAmB,CAAG,WAC5C,OAAO,IAAI,CAACuf,QAAQ,EAOxBH,EAAgB76C,SAAS,CAAC29B,uBAAuB,CAAG,SAAUyd,CAAU,EACpE,IAAK,IAAIl3C,EAAI,EAAGA,EAAI,IAAI,CAAC82C,QAAQ,CAAC35C,MAAM,CAAE6C,IAClCk3C,EAAW,IAAI,CAACJ,QAAQ,CAAC92C,EAAE,IAC3B,IAAI,CAAC82C,QAAQ,CAACj1C,MAAM,CAAC7B,EAAG,GAEJ,IAAhB,IAAI,CAAC+2C,MAAM,EAAU/2C,GAAK,IAAI,CAAC+2C,MAAM,EACrC,IAAI,CAACA,MAAM,GAEf/2C,KAIR,OAAO,IAAI,EAMf22C,EAAgB76C,SAAS,CAAC+7B,aAAa,CAAG,WACtC,OAAO,IAAI,CAACmf,WAAW,EAM3BL,EAAgB76C,SAAS,CAACs6B,UAAU,CAAG,WACnC,IAAM+gB,EAAW,IAAI,CAACJ,MAAM,CAAG,EAAI,IAAI,CAACA,MAAM,CAAG,IAAI,CAACC,WAAW,CAEjE,OAAO,IAAI,CAACI,YAAY,CAAC,EAAGD,GAAU76C,IAAI,CAAC,IACvC,IAAI,CAACy6C,MAAM,CAAGM,EAAWl6C,MAAM,CACxBk6C,GAEf,EAKAV,EAAgB76C,SAAS,CAAC67B,mBAAmB,CAAG,WAC5C,OAAO,IAAI,CAACyf,YAAY,CAAC,IAAI,CAACL,MAAM,CAAE,IAAI,CAACA,MAAM,CAAG,IAAI,CAACC,WAAW,EAAE16C,IAAI,CAAC,IACvE,IAAI,CAACy6C,MAAM,EAAIM,EAAWl6C,MAAM,CACzBk6C,GAEf,EAKAV,EAAgB76C,SAAS,CAACw7C,gBAAgB,CAAG,SAAUC,CAAa,EAChE,IAAI,CAACP,WAAW,CAAGO,CACvB,EAKAZ,EAAgB76C,SAAS,CAAC07C,OAAO,CAAG,WAChC,OAAO,IAAI,CAACT,MAAM,EAAI,IAAI,CAACD,QAAQ,CAAC35C,MAAM,EAO9Cw5C,EAAgB76C,SAAS,CAACs7C,YAAY,CAAG,SAAUK,CAAU,CAAEN,CAAQ,SACnE,GAAgB,IAAI,CAACL,QAAQ,CAAC35C,MAAM,CACzB,IAAI,CAAC05C,EAAE,CAACh4B,IAAI,CAAC,IAAI,CAACi4B,QAAQ,CAAC73C,KAAK,CAACw4C,EAAYN,IAGpDM,EAAa,IAAI,CAACX,QAAQ,CAAC35C,MAAM,CAAG,EAC7B,IAAI,CAAC05C,EAAE,CAACh4B,IAAI,CAAC,EAAE,EAGnB,IAAI,CAACg4B,EAAE,CAACh4B,IAAI,CAAC,IAAI,CAACi4B,QAAQ,CAAC73C,KAAK,CAACw4C,EAAY,IAAI,CAACX,QAAQ,CAAC35C,MAAM,EAC5E,C,2DClHAgD,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,qBAAsB,CACrC,KACA,QACA,eACA,kBACA,YACA,aACA,WACA,SACA,UACA,OACA,QACA,SAAU3gB,CAAE,CAAEhM,CAAK,CAAEC,CAAY,CAAEyJ,CAAe,CAAEgD,CAAS,CAAEtC,CAAU,CAAEoe,CAAQ,CAAEtoB,CAAM,CAAEsM,CAAO,CAAE/C,CAAI,CAAEkD,CAAK,EAC7G,IAAI8iC,EAAuB,CAAC,EAE5B,MAAO,CACHC,eAAgB,WACZhjC,EAAUw1B,MAAM,CAAC,OAAQ,MACzBx1B,EAAUw1B,MAAM,CAAC,SAAU,KAC/B,EAEAjuB,SAAU,SAAU9O,CAAG,EACnBqH,EAAQmyB,QAAQ,CAACC,IAAI,CAAGz5B,CAC5B,EAEAwqC,gBAAiB,SAAUhwC,CAAO,CAAEiwC,CAAW,SAC3C,GAAoBH,KAAkC53C,IAAlC43C,CAAoB,CAAC9vC,EAAQ,CAGtCK,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,oCAAsCxM,GAAStL,IAAI,CAAC,SAAU0M,CAAQ,EAElH,OADA0uC,CAAoB,CAAC9vC,EAAQ,CAAGoB,EAAShI,IAAI,CACtCgI,EAAShI,IAAI,GAJjBiT,EAAG4K,IAAI,CAAC64B,CAAoB,CAAC9vC,EAAQ,CAOpD,EAGAkwC,WAAY,SAAUC,CAAU,CAAEtI,CAAO,EACrC,IAAIyB,EAAO,IAAI,CACXt5B,EAAavF,EAAWwF,IAAI,CAAC,IAC7B0E,EAAWtI,EAAGuI,KAAK,GA0BvB,OAzBA5E,EAAWogC,qBAAqB,CAAG,WAC/B9G,EAAKyG,cAAc,GACnBhjC,EAAU6G,IAAI,CAAC,UAAU2uB,MAAM,CAAC,OAAQ,WACxCvyB,EAAWqgC,UAAU,CAAG,EAC5B,EACArgC,EAAWsgC,cAAc,CAAG,WACxBhH,EAAKyG,cAAc,GACnBhjC,EAAU6G,IAAI,CAAC,UAAU2uB,MAAM,CAAC,OAAQ,SACxCvyB,EAAWqgC,UAAU,CAAG,EAC5B,EAEArgC,EAAW3d,OAAO,CAAG,WACjBsiB,EAAS3b,OAAO,CAACgX,EAAWqgC,UAAU,EACtCrgC,EAAWO,QAAQ,EACvB,EAEAP,EAAWmgC,UAAU,CAAGA,EAExBngC,EAAW63B,OAAO,CAAG/9B,EAAKymC,WAAW,CAAC1I,GAEtC76B,EAAMwD,QAAQ,CAAC,CACXvG,MAAO+F,EACPW,YAAa5G,EAAgB6G,yBAAyB,CAAG,+DAC7D,GAEO+D,EAAS/b,OAAO,EAI3B43C,iBAAkB,SAAUp3C,CAAI,CAAE4W,CAAU,CAAEygC,CAAa,EACvD,IAAInH,EAAO,IAAI,CACX30B,EAAWtI,EAAGuI,KAAK,GAgEvB,OA9DA5E,EAAWimB,uBAAuB,CAAGnsB,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,yCAC5GZ,EAAW0gC,QAAQ,CAAGt3C,EAAKu3C,QAAQ,CACnC3gC,EAAW4gC,gBAAgB,CAAGx3C,EAAKy3C,gBAAgB,CACnD7gC,EAAW8gC,wBAAwB,CAAG13C,EAAK23C,wBAAwB,CACnE/gC,EAAWghC,oBAAoB,CAAG53C,EAAK63C,oBAAoB,CAC3DjhC,EAAWkhC,qBAAqB,CAAG93C,EAAK+3C,qBAAqB,CAC7DnhC,EAAWygC,aAAa,CAAGA,EAEvBr3C,EAAK+3C,qBAAqB,EAAI/3C,EAAK+3C,qBAAqB,CAAC57C,MAAM,CAAG,EAClEya,EAAWohC,UAAU,CAAG,YAAYl8C,IAAI,CAACkE,EAAK+3C,qBAAqB,CAAC,EAAE,CAACrvB,IAAI,EACpE1oB,EAAK63C,oBAAoB,EAAI73C,EAAK63C,oBAAoB,CAAC17C,MAAM,CAAG,EACvEya,EAAWohC,UAAU,CAAG,YAAYl8C,IAAI,CAACkE,EAAK63C,oBAAoB,CAAC,EAAE,CAACnvB,IAAI,EAE1E9R,EAAWohC,UAAU,CAAG,GAG5BphC,EAAWqhC,aAAa,CAAG,SAAU7rC,CAAG,CAAE8rC,CAAgB,CAAEb,CAAa,EACjEhmC,SAAAA,EAAWg8B,OAAO,CAClB15B,EAAUvH,GAAG,CAACirC,EAAgBa,EAAmBthC,EAAWuhC,YAAY,CAACD,IAEzEzkC,EAAQmyB,QAAQ,CAACC,IAAI,CAAGwR,EAAgBjrC,EAAMwK,EAAWuhC,YAAY,CAAC/rC,GAE1EwK,EAAWqgC,UAAU,CAAG,EAC5B,EAEArgC,EAAWwhC,iBAAiB,CAAG,SAAUhsC,CAAG,CAAE8rC,CAAgB,CAAEb,CAAa,EACzEzgC,EAAWqhC,aAAa,CAAC7rC,EAAK8rC,EAAkBb,EACpD,EAEAzgC,EAAWyhC,mBAAmB,CAAG,WAC7BzhC,EAAWqhC,aAAa,CAACj4C,EAAKy3C,gBAAgB,CAAEz3C,EAAK23C,wBAAwB,CAAEN,EACnF,EAEAzgC,EAAWogC,qBAAqB,CAAG,WAC/B9G,EAAKyG,cAAc,GACnBhjC,EAAU6G,IAAI,CAAC,UAAU2uB,MAAM,CAAC,OAAQ,WACxCvyB,EAAWqgC,UAAU,CAAG,EAC5B,EAEArgC,EAAW3d,OAAO,CAAG,WACjBsiB,EAAS3b,OAAO,CAACgX,EAAWqgC,UAAU,EACtCrgC,EAAWO,QAAQ,EACvB,EAEAP,EAAWuhC,YAAY,CAAG,SAAU/rC,CAAG,EACnC,IAAM2O,EAAY7T,EAAa6T,SAAS,CAAG7T,EAAa6T,SAAS,CAAG,SAClD,KAAdA,GAI2B,EAA3B3O,EAAIxN,OAAO,CAAC,cACZwN,CAAAA,EAAMA,EAAOA,CAAAA,EAAAA,EAAIxN,OAAO,CAAC,KAAW,IAAM,GAAE,EAAK,aAAemc,CAAQ,EAJjE3O,CAQf,EAEAwH,EAAMwD,QAAQ,CAAC,CACXvG,MAAO+F,EACPW,YAAa5G,EAAgB6G,yBAAyB,CAAG,mDAC7D,GAEO+D,EAAS/b,OAAO,EAI3B85B,MAAO,SAAUmV,CAAO,EACpB,IAAI73B,EAAavF,EAAWwF,IAAI,CAAC,GACjCD,CAAAA,EAAW0hC,aAAa,CAAG7J,EAE3B76B,EAAMwD,QAAQ,CAAC,CACXvG,MAAO+F,EACPW,YAAa5G,EAAgB6G,yBAAyB,CAAG,yDAC7D,EACJ,EAEA+gC,YAAa,SAAUv4C,CAAI,CAAEq3C,CAAa,EAEtC,OAAQr3C,EAAK4R,MAAM,EACf,IAAK,WACD,GAAIP,SAAAA,EAAWg8B,OAAO,EAAeh8B,eAAAA,EAAWg8B,OAAO,CAAmB,CACtE,IAAItyB,EAAY7T,EAAa6T,SAAS,CAAG7T,EAAa6T,SAAS,CAAG,EAEjD,KAAbA,GAAoBs8B,IAChBr3C,EAAKw4C,wBAAwB,CAAC55C,OAAO,CAAC,KAAO,EAC7CoB,EAAKw4C,wBAAwB,CAAGx4C,EAAKw4C,wBAAwB,CAAG,cAAgBz9B,EAEhF/a,EAAKw4C,wBAAwB,CAAGx4C,EAAKw4C,wBAAwB,CAAG,cAAgBz9B,GAGxFpH,EAAUvH,GAAG,CAACpM,EAAKw4C,wBAAwB,CAC/C,MACItI,IAfG,CAeEh1B,QAAQ,CAAClb,EAAKy4C,QAAQ,EAE/B,KACJ,KAAK,aACL,IAAK,yBACL,IAAK,uBAED,OADApnC,EAAWg7B,WAAW,CAAG,GAClB6D,IAtBA,CAsBK4G,UAAU,CAAC92C,EAAK4R,MAAM,CAAE5R,EAAK04C,OAAO,CAEpD,KAAK,mBACD,IAAI9hC,EAAavF,EAAWwF,IAAI,CAAC,IAEjC,OADAxF,EAAWg7B,WAAW,CAAG,GAClB6D,IA3BA,CA2BKkH,gBAAgB,CAACp3C,EAAM4W,EAEvC,KAAK,QAGD,OAFAs5B,IA9BO,CA8BF5W,KAAK,CAACt5B,EAAK04C,OAAO,EACvBrnC,EAAWg7B,WAAW,CAAG,GAClBp5B,EAAGpT,MAAM,EAIxB,CACA,OAAOoT,EAAG4K,IAAI,CAAC,GACnB,EAEA4nB,SAAU,SAAUL,CAAO,CAAEiS,CAAa,EACtChmC,EAAWg7B,WAAW,CAAG,GAEzB,IAAI6D,EAAO,IAAI,CAEf,OADAjpC,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAC1BrF,EACFc,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,oBAAqBgyB,GACzD9pC,IAAI,CAAC,SAAU0M,CAAQ,EACpB,OAAOkoC,EAAKqI,WAAW,CAACvwC,EAAShI,IAAI,CAAEq3C,EAC3C,GACCl3C,KAAK,CAAC6lB,QAAQ4C,IAAI,CAC3B,CACJ,CACJ,EACH,C,iCC9MD,SAAS+vB,EAAsBC,CAAI,EAC/B,IAAI,CAACC,KAAK,CAAGD,EAAKE,MAAM,EAC5B,C,QAHAH,EAAsBt5C,OAAO,CAAG,CAAC,OAAO,CAKxCs5C,EAAsB79C,SAAS,CAACi+C,uBAAuB,CAAG,SAAUC,CAAM,CAAEC,CAAa,EACrF,GAAI,WAAI,CAACJ,KAAK,CACV,MAAO,EAAE,CAGb,IAAIK,EAAsBD,EAAc76C,MAAM,CAAC,IAAI,CAAC+6C,mBAAmB,CAAC7/C,IAAI,CAAC,IAAI,GAAGuI,GAAG,CAAC,IAAI,CAACu3C,UAAU,CAAC9/C,IAAI,CAAC,IAAI,GAMjH,OAJe0/C,EAAO56C,MAAM,CAAC,IAAI,CAACi7C,4BAA4B,CAAC//C,IAAI,CAAC,IAAI,CAAE4/C,IAAsBr3C,GAAG,CAAC,SAAUy3C,CAAC,EAC3G,OAAOA,EAAEC,SAAS,CAAClsC,EAAE,EAI7B,EAEAsrC,EAAsB79C,SAAS,CAACq+C,mBAAmB,CAAG,SAAUK,CAAY,EACxE,OAAOA,EAAansC,EAAE,GAAK,IAAI,CAACwrC,KAAK,CAACtsC,MAAM,EAGhDosC,EAAsB79C,SAAS,CAACs+C,UAAU,CAAG,SAAUK,CAAG,EACtD,OAAOA,EAAIpsC,EAAE,EAGjBsrC,EAAsB79C,SAAS,CAACu+C,4BAA4B,CAAG,SAAUK,CAAe,CAAEC,CAAK,EAC3F,OACIA,EAAMJ,SAAS,CAACK,aAAa,EAC7BD,EAAMJ,SAAS,CAACM,UAAU,CAACC,IAAI,CAC3B,UAAUR,CAAC,EACP,OAAOI,EAAgBv8B,QAAQ,CAACm8B,IAAMA,IAAM,IAAI,CAACT,KAAK,CAACtsC,MAAM,GAC/DjT,IAAI,CAAC,IAAI,EAGvB,EAEA6F,EAAAA,CAAUA,CAACC,OAAO,CAAC,wBAAyBu5C,E,6ECjC5Cx5C,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiB,CAClC,QACA,OACA,aACA,WACA,UACA,kBACA,eACA,QACA,SAAU5L,CAAK,CAAEyJ,CAAI,CAAEW,CAAU,CAAEoe,CAAQ,CAAEne,CAAO,CAAEX,CAAe,CAAEopC,CAAY,CAAEnmC,CAAK,EACtF,MAAO,CACHpP,SCnBG,4yKDoBHoM,SAAU,IACVC,MAAO,CACH+Q,MAAO,IACPo4B,mBAAoB,IACpBN,gBAAiB,GACrB,EACAj1C,WAAY,CACR,SACA,SAAUoT,CAAM,MASRoiC,CAPJpiC,CAAAA,EAAOqiC,UAAU,CAAGxpC,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,iCAC3FK,EAAOsiC,aAAa,CAAGzpC,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,oCAE9FK,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAC7DgV,EAAOuiC,cAAc,CAAGviC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,iCAC9DuU,EAAOwiC,UAAU,CAAG,EACpBxiC,EAAOyiC,WAAW,CAAG,GAGrBziC,EAAO0iC,aAAa,CAAG,CACnBxgB,UAAWliB,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,4BACjDk3C,cAAe,SAAUC,CAAS,EAC9B,IAAIC,EAAOppC,EAAQ,cAAcmpC,EAAW,YACxC70B,EAAOtU,EAAQ,cAAcmpC,GAEjC,OAAO5iC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,iCAAkC,CAC3Eo3C,KAAMA,EACN90B,KAAMA,CACV,EACJ,EACA+0B,kBAAmB,SAAUF,CAAS,CAAEG,CAAU,EAC9C,IAAIF,EAAOppC,EAAQ,cAAcmpC,EAAW,YACxC70B,EAAOtU,EAAQ,cAAcmpC,GAEjC,OAAO5iC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,sCAAuC,CAChF2B,MAAO21C,EACPF,KAAMA,EACN90B,KAAMA,CACV,EACJ,CACJ,EAEA/N,EAAOgjC,SAAS,CAAG,SAAU7B,CAAM,SAC/B,EAAY78C,MAAM,CAId68C,CAAM,CAAC,EAAE,CAAC8B,SAAS,CACZjjC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,8BAA+B,CACxE2B,MAAO+zC,EAAO78C,MAAM,GAIrB0b,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,4BATlCuU,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,2BAUrD,EAEAuU,EAAOkjC,kBAAkB,CAAG,SAAUC,CAAW,CAAEC,CAAK,EACpD,IAAK,IAAIj8C,EAAI,EAAGA,EAAIi8C,EAAM9+C,MAAM,CAAE6C,IAC9B,GAAIg8C,EAAY18C,QAAQ,CAAC28C,CAAK,CAACj8C,EAAE,EAC7B,MAAO,GAGf,MAAO,EACX,EAEA6Y,EAAOqjC,kBAAkB,CAAG,SAAUt1B,CAAI,EAEtC,OAAOu1B,KAAAA,IADKlpC,KAAK2T,GACRw1B,cAAc,EAC3B,EAEAvjC,EAAOwjC,cAAc,CAAG,SAAUz1B,CAAI,EAClC,IAAI01B,EAAOzjC,EAAO0jC,iBAAiB,CAAC31B,GACpC,OAAO01B,GAAQ,IAAMA,EAAO,EAChC,EAEAzjC,EAAO2jC,iBAAiB,CAAG,SAAU51B,CAAI,EACrC,IAAI01B,EAAOzjC,EAAO0jC,iBAAiB,CAAC31B,GACpC,OAAO01B,GAAQ,IAAMA,EAAO,CAChC,EAEAzjC,EAAO4jC,gBAAgB,CAAG,SAAU71B,CAAI,EACpC,IAAI01B,EAAOzjC,EAAO0jC,iBAAiB,CAAC31B,GACpC,OAAO01B,GAAQ,GAAKA,EAAO,EAC/B,EAEAzjC,EAAO6jC,WAAW,CAAG,SAAU91B,CAAI,EAE/B,OAAO01B,EADIzjC,EAAO0jC,iBAAiB,CAAC31B,EAExC,EAEA/N,EAAO0jC,iBAAiB,CAAG,SAAU31B,CAAI,EACrC,IAAIu1B,EAAI,IAAIlpC,KAAK2T,GAEjB,OAAO+1B,SA0EKC,CAAK,CAAEC,CAAK,CAAEhmC,CAAQ,EAMlC+lC,EAAQ,IAAI3pC,KAAK2pC,GAEjB,IAAIE,EAAWD,CADfA,EAAQ,IAAI5pC,KAAK4pC,EAAK,EACCD,EACvB,GAAI7L,MAAM+L,GACN,OAAOC,IAEX,OAAQlmC,GACJ,IAAK,QACD,OAAOgmC,EAAMG,WAAW,GAAKJ,EAAMI,WAAW,EAClD,KAAK,SACD,OAAOH,GAAAA,EAAMG,WAAW,GAAUH,EAAMI,QAAQ,GAAML,CAAAA,GAAAA,EAAMI,WAAW,GAAUJ,EAAMK,QAAQ,EAAC,CACpG,KAAK,QACD,OAAOC,KAAKC,KAAK,CAACL,EAbfM,OAcP,KAAK,OACD,OAAOF,KAAKC,KAAK,CAACL,EAhBhBO,MAiBN,KAAK,QACD,OAAOH,KAAKC,KAAK,CAACL,EAnBfQ,KAoBP,KAAK,UACD,OAAOJ,KAAKC,KAAK,CAACL,EAtBbS,IAuBT,KAAK,UACD,OAAOL,KAAKC,KAAK,CAACL,EAzBb,IA0BT,SACI,MACR,CACJ,EAzGc,IAAI7pC,KACKkpC,EAAG,OAC1B,EAEAtjC,EAAO2kC,gBAAgB,CAAG,SAAU52B,CAAI,EACpC,IAAI01B,EAAOzjC,EAAO0jC,iBAAiB,CAAC31B,UAEpC,EAAW,EACA/N,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,sBAAuB,CAAE2B,MAAOq2C,CAAK,GAE3EzjC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,uBAErD,EAEAuU,EAAO4kC,eAAe,CAAG,SAAU3vC,CAAE,EACjC,OAAO6D,EAAgByC,YAAY,CAAG,8BAAgCtG,EAAK,YAC/E,EAEA+K,EAAO6kC,aAAa,CAAG,WACnB7kC,EAAOwiC,UAAU,CAAGxiC,EAAO+J,KAAK,CAAC+6B,MAAM,CAACxgD,MAAM,EAGlD0b,EAAO+kC,WAAW,CAAG,SAAUjD,CAAK,EAChCM,EAAgBN,EAEhB/lC,EAAMwD,QAAQ,CACV,CACIvG,MAAOgH,EACPN,YAAa5G,EAAgB6G,yBAAyB,CAAG,8DAC7D,EACA,GAER,EAEAK,EAAOglC,aAAa,CAAG,WAEnB9C,EAAa6C,WAAW,CAAC3C,EAAcV,SAAS,CAAClsC,EAAE,CAAE,CAAC4sC,EAAcV,SAAS,CAACM,UAAU,CAAC19C,MAAM,EAC/F0b,EAAO+J,KAAK,CAAC+6B,MAAM,CAACG,SAAS,CAACjlC,EAAO+J,KAAK,CAAC+6B,MAAM,CAAC/9C,OAAO,CAACq7C,IAC1DpiC,EAAO+J,KAAK,CAACm7B,UAAU,CAAGllC,EAAO+J,KAAK,CAAC+6B,MAAM,CAACxgD,MAAM,CACpD89C,EAAgB,IACpB,EAEApiC,EAAOmlC,SAAS,CAAG,SAAUp2C,CAAO,CAAE+yC,CAAK,CAAED,CAAe,EACxD,IAAIuD,EAAeplC,EAAOhB,IAAI,CAAC,GAC/BomC,CAAAA,EAAavwC,QAAQ,CAAG,CAAC9F,EAAQ,CACjCq2C,EAAavD,eAAe,CAAGA,EAC/BuD,EAAaC,gBAAgB,CAAGl3B,QAAQ0N,IAAI,CAACimB,GAC7CsD,EAAaE,UAAU,CAAGtlC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,6BAChE25C,EAAaG,SAAS,CAuBfC,CALc,CACjBzd,SAAU,WACV0d,KAAM,UACV,EAEqB,CAACnyC,EAvBsBoyC,cAAc,CAACxiB,QAAQ,CAuBpCpoB,WAAW,GAAG,EAAI,QAtB7CgnC,EAAMJ,SAAS,CAACM,UAAU,CAAC19C,MAAM,EACjC8gD,EAAaO,SAAS,CAAG,QACzBP,EAAaQ,SAAS,CAAG,oBAEzBR,EAAaO,SAAS,CAAG,MACzBP,EAAaE,UAAU,CAAGtlC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,iCAChE25C,EAAaQ,SAAS,CAAG,gBAG7B7pC,EAAMwD,QAAQ,CAAC,CACXvG,MAAOosC,EACPS,UAAW,GACXnmC,YAAa5G,EAAgB6G,yBAAyB,CAAG,yCAC7D,EACJ,EA4CAK,EAAOkiB,SAAS,CAAG,SAAUnzB,CAAO,EAChC,IAAI+2C,EAAY9lC,EAAOhB,IAAI,CAAC,GAC5BgB,CAAAA,EAAOjR,OAAO,CAAGA,EACjB+2C,EAAU/2C,OAAO,CAAGA,EAEpBgN,EAAMwD,QAAQ,CAAC,CACXvG,MAAO8sC,EACPpmC,YAAa5G,EAAgB6G,yBAAyB,CAAG,6CAC7D,EACJ,EAEAK,EAAOJ,GAAG,CAAC,iBAAkB,SAAUtc,CAAK,CAAE6E,CAAI,EAE1CA,GAAQ6X,EAAOjR,OAAO,GACtBiR,EAAOyiC,WAAW,CAAG,GAErBziC,EAAO0iC,aAAa,CAACxgB,SAAS,CAAGliB,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,kCAE/E,EACJ,EACH,CAET,EACH,C,iCErOD,SAASs6C,EAAmBltC,CAAI,CAAEC,CAAe,EAC7C,MAAO,CACHC,SAAU,IACVpM,SAAU,SAAUzG,CAAO,CAAE6tB,CAAK,EAC9B,OAAOA,EAAMiyB,cAAc,CCjBxB,24BCAA,2hCFkBP,EACAhtC,MAAO,CACHitC,WAAY,IACZC,UAAW,GACf,EACA5sC,iBAAkB,GAClB1M,WAAY,+BACZyM,aAAc,IAClB,CACJ,CAIA,SAAS8sC,EAA6BttC,CAAI,CAAEC,CAAe,CAAE9N,CAAoB,EAC7E,IAAIo7C,EAAa,IAAI,CAACC,WAAW,CAAC,IAAI,CAACH,SAAS,CAEhD,KAAI,CAACp5B,MAAM,CAAG,CACVw5B,UAAWztC,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,2BAA6BymC,EAAa,QAC5HG,WAAY1tC,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,4BAA8BymC,EAAa,OAClI,EAEA,IAAI,CAACI,YAAY,CAAG,IAAI,CAACC,iBAAiB,CAAC,IAAI,CAACR,UAAU,EAC1D,IAAI,CAACS,SAAS,CAAG,IAAI,CAACC,YAAY,GAClC,IAAI,CAAC37C,oBAAoB,CAAGA,CAChC,C,SArCA1D,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,qBAAsB+qC,GAC3CA,EAAmBv+C,OAAO,CAAG,CAAC,OAAQ,kBAAkB,CAExDF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,+BAAgCu5C,GACtDA,EAA6B3+C,OAAO,CAAG,CAAC,OAAQ,kBAAmB,uBAAuB,CAqC1F2+C,EAA6BljD,SAAS,CAACwjD,iBAAiB,CAAG,SAAUR,CAAU,EAE3E,OAAOA,EAAWW,eAAe,EAAI,CAAC,oBAAoB3iD,IAAI,CAACgiD,EAAWW,eAAe,CAC7F,EAEAT,EAA6BljD,SAAS,CAAC0jD,YAAY,CAAG,WAClD,OAAO,IAAI,CAACH,YAAY,CAAG,IAAI,CAAC15B,MAAM,CAACy5B,UAAU,CAAG,IAAI,CAACz5B,MAAM,CAACw5B,SAAS,EAG7EH,EAA6BljD,SAAS,CAACojD,WAAW,CAAG,SAAUQ,CAAY,EACvE,OAAOA,EAAe,KAAO,EACjC,C,gIG3CAv/C,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,qBAAsB,CACvC,QACA,OACA,aACA,WACA,UACA,kBACA,eACA,QACA,uBACA,SAAU5L,CAAK,CAAEyJ,CAAI,CAAEW,CAAU,CAAEoe,CAAQ,CAAEhc,CAAO,CAAE9C,CAAe,CAAEopC,CAAY,CAAEnmC,CAAK,CAAE/Q,CAAoB,EAC5G,MAAO,CACH2B,SC1BG,u5HD2BHoM,SAAU,IACVC,MAAO,CACH+Q,MAAO,GACX,EACAnd,WAAY,CACR,SACA,SAAUoT,CAAM,EAEZA,EAAO8mC,cAAc,CAAGjuC,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,kCAC/FK,EAAO+mC,eAAe,CAAGluC,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,mCAEhGK,EAAOhV,oBAAoB,CAAGA,EAE9BgV,EAAOuiC,cAAc,CAAGviC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,8DAE9DuU,EAAOwiC,UAAU,CAAG,EAEpBxiC,EAAOgnC,yBAAyB,CAAG,CAAC,EAEpChnC,EAAOinC,yBAAyB,CAAG,CAC/BC,OAAQlnC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,qDAC9C67B,QAAStnB,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,sDAC/CquB,OAAQ,GACRqtB,SAAU,KACNnnC,EAAOinC,yBAAyB,CAACntB,MAAM,CAAG,CAAC9Z,EAAOinC,yBAAyB,CAACntB,MAAM,CAClF9Z,EAAOuS,WAAW,EACtB,CACJ,EAEAvS,EAAOonC,sBAAsB,CAAG,SAAUnyC,CAAE,EACxC+K,EAAOgnC,yBAAyB,CAAC/xC,EAAG,CAAG,CAAC+K,EAAOgnC,yBAAyB,CAAC/xC,EAAG,EAEhF+K,EAAOqnC,kBAAkB,CAAG,WACxBrnC,EAAOwiC,UAAU,CAAGxiC,EAAO+J,KAAK,CAACu9B,WAAW,CAAChjD,MAAM,EAGvD0b,EAAOunC,cAAc,CAAG,SAAUtB,CAAU,EACxCuB,EAAqBvB,EAErBlqC,EAAMwD,QAAQ,CACV,CACIvG,MAAOgH,EACPN,YAAa5G,EAAgB6G,yBAAyB,CAAG,mEAC7D,EACA,GAER,EAEAK,EAAOynC,gBAAgB,CAAG,WACtBvF,EAAawF,gBAAgB,CAACF,EAAmBhyC,EAAE,EACnDwK,EAAO+J,KAAK,CAACu9B,WAAW,CAACtnC,EAAO+J,KAAK,CAACu9B,WAAW,CAACvgD,OAAO,CAACygD,GAAoB,CAACG,MAAM,CAAG,oBACxFH,EAAqB,IACzB,EAEA,IAtCIA,EAsCAI,EAAY,CACZC,SAAU,UACVC,UAAW,UACXC,MAAO,UACPC,kBAAmB,UACnBC,SAAU,SACVC,QAAS,SACb,EAEIC,EAAa,CACbN,SAAU7nC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,gCAChDq8C,UAAW9nC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,iCACjDs8C,MAAO/nC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,6BAC7Cu8C,kBAAmBhoC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,yCACzDw8C,SAAUjoC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,gCAChDy8C,QAASloC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,+BAC/C28C,eAAgBpoC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,sCACtD48C,eAAgBroC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,qCAC1D,CAEAuU,CAAAA,EAAOsoC,cAAc,CAAG,SAAUxrB,CAAM,SACpC,GAAgB8qB,CAAS,CAAC9qB,EAAOhiB,WAAW,GAAG,CAGxC8sC,CAAS,CAAC9qB,EAAOhiB,WAAW,GAAG,CAF3B,QAE2B,EAG1CkF,EAAOuoC,aAAa,CAAG,SAAUzrB,CAAM,SACnC,KAA8C,IAA1CqrB,CAAU,CAACrrB,EAAOhiB,WAAW,GAAG,CACzBqtC,CAAU,CAACrrB,EAAOhiB,WAAW,GAAG,CAGpCkF,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,8BACjD,EAEAuU,EAAOwoC,mBAAmB,CAAG,SAAUvC,CAAU,CAAEwC,CAAa,EAC5DxC,EAAWyC,iBAAiB,CAACzD,SAAS,CAACwD,EAC3C,EACAzoC,EAAO2oC,YAAY,CAAG,SAAUC,CAAI,CAAE3C,CAAU,EAC5C,IAAIlnC,EAAaiB,EAAOhB,IAAI,CAAC,GAC7BD,CAAAA,EAAWumC,UAAU,CAAGtlC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,+CAC9DsT,EAAW6mC,SAAS,CAAG,kBACvB7mC,EAAW/T,oBAAoB,CAAGgV,EAAOhV,oBAAoB,CAC7D+T,EAAWhQ,OAAO,CAAGiR,EAAO+J,KAAK,CAACvU,EAAE,CACpCuJ,EAAW9P,YAAY,CAAGg3C,EAAWzwC,EAAE,CACvCuJ,EAAWm3B,WAAW,CAAG+P,EAAWzpB,QAAQ,CAE5Czd,EAAW8pC,QAAQ,CAAG,SAAUC,CAAqB,EACjD,IAAIC,EAAsB,CACtBr0C,OAAQo0C,EAAsBE,OAAO,CAAC,EAAE,CACxCC,aAAcH,EAAsBG,YAAY,CAChDvb,YAAaob,EAAsBpb,WAAW,CAC9Cwb,OAAQJ,EAAsBI,MAAM,EAGxC,OAAOhH,EAAaiH,2BAA2B,CAACJ,EACpD,EAEAhqC,EAAWqqC,UAAU,CAAGR,EAAKS,UAAU,CAAG,IAAIjvC,KAAKwuC,EAAKS,UAAU,EAAI,KACtEtqC,EAAWuqC,KAAK,CAAG,CAACV,EAAK,CAEzB7pC,EAAW3d,OAAO,CAAG,WACjB2d,EAAWO,QAAQ,EACvB,EAEA,IAAIiqC,EAAaxtC,EAAMwD,QAAQ,CAAC,CAC5BvG,MAAO+F,EACPW,YAAa5G,EAAgB6G,yBAAyB,CAAG,mDAC7D,EAEAZ,CAAAA,EAAWyqC,UAAU,CAAG,SAAUC,CAAS,CAAEL,CAAU,CAAEM,CAAS,EACzDA,GACDd,CAAAA,EAAKS,UAAU,CAAGD,CAAS,EAG/BG,EAAW3oC,SAAS,EACxB,CACJ,EAEAZ,EAAO2pC,cAAc,CAAG,SAAUC,CAAQ,CAAE3D,CAAU,CAAEwC,CAAa,EACjE,IAAI1pC,EAAaiB,EAAOhB,IAAI,CAAC,GAC7BD,CAAAA,EAAW8qC,UAAU,CAAG,WACpB3H,EAAa4H,SAAS,CAACF,EAASl1C,MAAM,CAAEuxC,EAAWzwC,EAAE,EAAE/R,IAAI,CAAC,WACxDuc,EAAOwoC,mBAAmB,CAACvC,EAAYwC,EAC3C,EACJ,EAEA1pC,EAAW9Q,KAAK,CAAG+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,wCACzDsT,EAAW63B,OAAO,CAAG52B,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,wCAC3DsT,EAAWgrC,iBAAiB,CAAG/pC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,kBACrEsT,EAAWirC,mBAAmB,CAAGhqC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,kBAEvEsT,EAAW3d,OAAO,CAAG,WACjB2d,EAAWO,QAAQ,EACvB,EAEAvD,EAAMwD,QAAQ,CAAC,CACXvG,MAAO+F,EACPW,YAAa5G,EAAgB6G,yBAAyB,CAAG,sEAC7D,EACJ,EAEAK,EAAOiqC,iBAAiB,CAAG,SAAUhE,CAAU,EAC3C,OAAOA,GAAcA,aAAAA,EAAW0B,MAAM,CAAC7sC,WAAW,IAAqBmrC,CAA0D,IAA1DA,EAAWiE,0CAA0C,EAGhIlqC,EAAOmqC,mBAAmB,CAAG,SAAUlE,CAAU,EAC7C,OAAOA,EAAWW,eAAe,EAAIX,EAAWW,eAAe,CAAC7/C,OAAO,CAAC,iBAAmB,EAC/F,EAEAiZ,EAAOoqC,qBAAqB,CAAG,SAAU/d,CAAC,CAAE4Z,CAAU,EAC9C5Z,CAAAA,KAAAA,EAAEtoC,OAAO,EAAWsoC,KAAAA,EAAEtoC,OAAO,GAC7Bic,EAAOunC,cAAc,CAACtB,EAE9B,EAEAjmC,EAAOqqC,kBAAkB,CAAG,SAAUn8B,CAAI,EACtCqQ,EAAAA,CAAOA,CAACC,UAAU,CAAC,uBAAwB,QAAS,uBACpD5iB,EAAQqmB,IAAI,CAAC/T,EAAM,SACvB,CACJ,EACH,CACDA,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EAErC,CACJ,CACJ,EACH,C,uFEjMDzsB,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,kBAAmB,CACpC,QACA,OACA,WACA,WACA,aACA,kBACA,oBACA,SAAU5L,CAAK,CAAEyJ,CAAI,CAAE+e,CAAQ,CAAEtuB,CAAQ,CAAEkQ,CAAU,CAAEV,CAAe,CAAE+e,CAAiB,EACrF,MAAO,CACHlrB,SCzBG,6pHD0BHoM,SAAU,IACVC,MAAO,CACHnE,SAAU,IACV6oB,OAAQ,IACR2b,eAAgB,IAChBC,UAAW,IACXgR,aAAc,IACdC,cAAe,GACnB,EACA39C,WAAY,CACR,SACA,SAAUoT,CAAM,EACZA,EAAOwqC,WAAW,CAAG,SAAUzgC,CAAK,EAChC/J,EAAOyqC,OAAO,CAACxF,SAAS,CAACjlC,EAAO0d,MAAM,CAAC32B,OAAO,CAACgjB,IAC3C/J,EAAO0d,MAAM,EACb1d,EAAO0d,MAAM,CAACunB,SAAS,CAACjlC,EAAO0d,MAAM,CAAC32B,OAAO,CAACgjB,IAE9C/J,EAAOsqC,YAAY,EACnBtqC,EAAOsqC,YAAY,CAACrF,SAAS,CAACjlC,EAAO0d,MAAM,CAAC32B,OAAO,CAACgjB,IAEpD/J,EAAOnL,QAAQ,EACfmL,EAAOnL,QAAQ,CAACowC,SAAS,CAACjlC,EAAO0d,MAAM,CAAC32B,OAAO,CAACgjB,EAAMvU,EAAE,EAEhE,EACAwK,EAAO0qC,UAAU,CAAG,GAChB1qC,EAAOuqC,aAAa,EACpBvqC,CAAAA,EAAO0qC,UAAU,CAAG,EAAG,EAG3B1qC,EAAO2qC,UAAU,CAAG,WAChB,IAAIC,EAAsBz8B,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,gBACtEy8B,EAAkB18B,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,qBAEtEw8B,CAAAA,EAAoBzgB,QAAQ,CAAC,YAAc0gB,CAAe,CAAC,EAAE,CAACxlD,YAAY,CAAC,gBAAiB,QAAUwlD,CAAe,CAAC,EAAE,CAACxlD,YAAY,CAAC,gBAAiB,QAC3J,CACJ,EACH,CACD6oB,KAAM,SAAUlO,CAAM,EAClBA,EAAO8qC,iBAAiB,CAAG,SAAU5nB,CAAQ,EAEb,IAAxBljB,EAAOuqC,aAAa,GAChBrnB,SAAAA,EACAljB,EAAO+qC,cAAc,CAAG58B,QAAQ0N,IAAI,CAAC7b,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,qCACpEy3B,aAAAA,EACPljB,EAAO+qC,cAAc,CAAG58B,QAAQ0N,IAAI,CAAC7b,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,qCAE3EuU,EAAO+qC,cAAc,CAAG58B,QAAQ0N,IAAI,CAAC7b,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,kCAGvF,EAEAuU,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CACzDgV,EAAO0d,MAAM,EAAI1d,EAAO0d,MAAM,CAACp5B,MAAM,EACrC0b,EAAOyqC,OAAO,CAAGzqC,EAAO0d,MAAM,CAC9B1d,EAAO8qC,iBAAiB,CAAC9qC,EAAOyqC,OAAO,CAAC,EAAE,CAACvnB,QAAQ,EACnDljB,EAAOgrC,KAAK,CAAG,KAEfhrC,EAAOyqC,OAAO,CAAG,EAAE,CACnB5yB,EACKuhB,iBAAiB,CAACp5B,EAAOnL,QAAQ,CAAC,EAAE,CAAEmL,EAAOq5B,cAAc,EAAI,GAAOr5B,EAAOs5B,SAAS,EAAI,IAC1F71C,IAAI,CACD,SAAU0M,CAAQ,EACd6P,EAAOyqC,OAAO,CAAC,EAAE,CAAGt6C,EAAShI,IAAI,CACLlB,KAAAA,IAAxB+Y,EAAOsqC,YAAY,EACnBtqC,CAAAA,EAAOsqC,YAAY,CAAGtqC,EAAOyqC,OAAO,EAExCzqC,EAAO8qC,iBAAiB,CAAC9qC,EAAOyqC,OAAO,CAAC,EAAE,CAACvnB,QAAQ,EACnDljB,EAAOgrC,KAAK,CAAG,GAEfhrC,EAAO4N,KAAK,CAAC,uBAAwB5N,EAAOyqC,OAAO,CAACQ,SAAS,CAAC,YAClE,EACA,SAAU1oB,CAAS,EAGXA,KAAAA,EAAUzF,MAAM,CAChB9c,EAAOkrC,YAAY,CAAG,GAEtBxpB,QAAQD,KAAK,CAAC,6BAA8Bc,EAEpD,GAEHh6B,OAAO,CAAC,WACLyX,EAAOgrC,KAAK,CAAG,EACnB,IAGR,IAAIG,EAAoC3xC,EAAWoG,GAAG,CAAC,4BAA6B,SAAUtc,CAAK,CAAE6E,CAAI,EACjG6X,EAAOnL,QAAQ,CAAC,EAAE,GAAK1M,EAAKuoC,UAAU,CAAC,EAAE,CACzC1wB,EAAOorC,mBAAmB,CAAG,CAACprC,EAAOorC,mBAAmB,CAExDprC,EAAOorC,mBAAmB,CAAG,GAEjCprC,EAAO0qC,UAAU,CAAG,EACxB,GAEA1qC,EAAOJ,GAAG,CAAC,WAAY,WACnBurC,GACJ,EACJ,CACJ,CACJ,EACH,C,iCEzHD,SAASE,EAAU/hD,CAAQ,CAAEgiD,CAAkB,EAC3C,MAAO,CACHvyC,SAAU,IACVmV,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjCA,EAAMN,QAAQ,CAAC,YAAa,SAAUC,CAAQ,EACzB,SAAbA,GAGApqB,EACI,WACIgiD,EAAmBC,kBAAkB,GACrCrlD,CAAO,CAAC,EAAE,CAACxC,KAAK,EACpB,EALQ,MAAOqwB,EAAMy3B,cAAc,EAAmC,IAA/BC,OAAO13B,EAAMy3B,cAAc,EAOlE,GAGZ,EACJ,CACJ,CACJ,C,SAvBAlkD,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,YAAaqwC,GAClCA,EAAU7jD,OAAO,CAAG,CAAC,WAAY,qBAAqB,E,qFCItDF,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,eAAgB,CACjC,OACA,kBACA,WACA,aACA,gBACA,mBACA,SAAUnC,CAAI,CAAEC,CAAe,CAAExP,CAAQ,CAAEkQ,CAAU,CAAEE,CAAa,CAAEgyC,CAAgB,EAClF,MAAO,CACH/+C,SCjBG,uzFDkBHoM,SAAU,IACVC,MAAO,CACH2yC,cAAe,iBACfC,oBAAqB,uBACrBC,gBAAiB,mBACjBC,eAAgB,kBAChBC,kBAAmB,qBACnBC,gBAAiB,mBACjBC,WAAY,cACZC,gBAAiB,mBACjBC,mBAAoB,sBACpBC,2BAA4B,8BAC5BC,UAAW,IACXC,YAAa,GACjB,EACA1/C,WAAY,CACR,SACA,SAAUoT,CAAM,EACZA,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAC7DgV,EAAOusC,iBAAiB,CAAG,EAAE,CAC7BvsC,EAAOwsC,cAAc,CAAG,GACxBxsC,EAAOysC,mBAAmB,CAAG,GAC7BzsC,EAAO0sC,aAAa,CAAG,GACvB1sC,EAAO2sC,UAAU,CAAG,GACpB3sC,EAAO4sC,gBAAgB,CAAG,EAC9B,EACH,CACD1+B,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EAEjC/a,EAAM6zC,iBAAiB,CAAG7zC,KAAyB/R,GAAzB+R,EAAMkzC,eAAe,CAAgBlzC,EAAMkzC,eAAe,CAAG,EAEvFlzC,EAAMib,MAAM,CAAC,gBAAiB,SAAUoM,CAAK,EAE5Bp5B,KAAAA,GAATo5B,GACArnB,CAAAA,EAAMuzC,iBAAiB,CAAGp+B,QAAQ0N,IAAI,CAAC7iB,EAAM2yC,aAAa,EAElE,GAEA,IAAImB,EAAoB3+B,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,CAC3F2+B,EAAe7mD,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,CACrE4+B,EAAqB9mD,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,uBAAuB,CAAC,EAAE,CAEjFpV,EAAMszC,WAAW,EACjBU,EAAmB3nD,YAAY,CAAC,mBAAoB2T,EAAMszC,WAAW,EAGzE,IAAIW,EAAa,WACTD,GACAA,EAAmBtpD,KAAK,EAEhC,CAEIsV,CAAAA,EAAMqzC,SAAS,EACfY,IAGJj0C,EAAM4G,GAAG,CAAC,aAAc,SAAUtc,CAAK,EACnC2pD,GACJ,GAEAj0C,EAAMk0C,eAAe,CAAG,SAAUpvB,CAAI,EAClC9kB,EAAM2zC,UAAU,CAAG,GACnB3zC,EAAM4zC,gBAAgB,CAAG,GAEb3lD,KAAAA,GAAR62B,IAGI9kB,OAAAA,EAAMgzC,eAAe,EAAahzC,KAA0B/R,IAA1B+R,EAAMgzC,eAAe,EAAkBhzC,IAAAA,EAAMgzC,eAAe,CAC9FhzC,EAAM4U,KAAK,CAAC5U,EAAMgzC,eAAe,CAAEluB,GAEnC9kB,EAAM4U,KAAK,CAAC,2BAA4BkQ,GAGpD,EAEA9kB,EAAMm0C,qBAAqB,CAAG,SAAUrvB,CAAI,EACxC,IAAMsvB,EAAgBp0C,EAAM2zC,UAAU,CACtC3zC,EAAM2zC,UAAU,CAAG,GACnB3zC,EAAM4zC,gBAAgB,CAAG,GAEb3lD,KAAAA,GAAR62B,IACAx0B,EAASiV,MAAM,CAACvF,EAAMq0C,aAAa,EACnCr0C,EAAM4U,KAAK,CAACkQ,EAAKwvB,cAAc,CAAExvB,EAAMsvB,GACvCH,IAER,EAEAj0C,EAAMu0C,qBAAqB,CAAG,SAAUC,CAAQ,EAG5C,OAFAx0C,EAAMy0C,gBAAgB,CAAG,GACRD,EAAS9gB,KAAK,EAE3B,KAAK,GACD1zB,EAAM4zC,gBAAgB,CAAG,GACzB,KACJ,MAAK,EACL,KAAK,GACL,KAAK,GACL,KAAK,GACD,KACJ,SACIK,GAER,CACJ,EAEAj0C,EAAM00C,mBAAmB,CAAG,SAAUF,CAAQ,CAAE7mD,CAAK,EAGjD,OAFAqS,EAAMy0C,gBAAgB,CAAG,GACRD,EAAS9gB,KAAK,EAE3B,KAAK,GA6BT,IAAIE,CACAA,EADAA,EAAMP,GAAQ3iC,OAAOpG,KAAK,EACtBwB,cAAc,EAClB8nC,EAAI9nC,cAAc,GAEtB8nC,EAAIC,WAAW,CAAG,GA/BV7zB,EAAM20C,eAAe,CAAG,GACxB30C,EAAMk0C,eAAe,CAACl0C,EAAM40C,aAAa,CAACjnD,EAAM,EAChDqS,EAAM4zC,gBAAgB,CAAG,GACzBK,IACA,KACJ,MAAK,EACL,KAAK,GACL,KAAK,GACL,KAAK,GACD,KACJ,SACIA,GAER,CACJ,EAEAj0C,EAAM60C,gBAAgB,CAAG,WACjB70C,EAAM2zC,UAAU,CAACroD,MAAM,EAAI0U,EAAM6zC,iBAAiB,GAClD7zC,EAAM4zC,gBAAgB,CAAG,GACzBtjD,EAAS,WACL0P,EAAM4zC,gBAAgB,CAAG,EAC7B,GAER,EAYA5zC,EAAM80C,SAAS,CAAG,SAAUC,CAAM,CAAEC,CAAK,SACrC,EAIOn1C,EAAKymC,WAAW,CAAC2O,SAAShsD,OAAO8rD,GAAQt1C,OAAO,CAAC,OAAWxW,OAAO+rD,GAAQ,MAAO,6CAH9En1C,EAAKymC,WAAW,CAAC0O,EAIhC,EAEAh1C,EAAMk1C,eAAe,CAAG,SAAUC,CAAM,EACpC,IAAIH,EAAQh1C,EAAM2zC,UAAU,CAC5B3zC,EAAMo1C,SAAS,CAAGp1C,EAAM2zC,UAAU,CAClC3zC,EAAM4zC,gBAAgB,CAAGoB,EAAM1pD,MAAM,EAAI0U,EAAM6zC,iBAAiB,CAC5DmB,EAAM1pD,MAAM,EAAI0U,EAAM6zC,iBAAiB,GAEnC7zC,KAAwB/R,GAAxB+R,EAAM8yC,cAAc,EACpB9yC,EAAMwzC,cAAc,CAAG,GACvBljD,EAASiV,MAAM,CAACvF,EAAMq0C,aAAa,EACnCr0C,EAAMq0C,aAAa,CAAG/jD,EAAS,WAC3BkQ,EAAWK,UAAU,CAACb,EAAM8yC,cAAc,CAAE,CAAEa,WAAY3zC,EAAM2zC,UAAU,EAC9E,EAAG,MAEH3zC,EAAMq1C,wBAAwB,IAGtCr1C,EAAMs1C,eAAe,CAAGngC,QAAQ0N,IAAI,CAACmyB,EAAM1pD,MAAM,EAE7CyvB,EAAMo4B,kBAAkB,EACxBnzC,EAAMmzC,kBAAkB,GAAGgC,EAAQH,EAE3C,EAI+B/mD,KAAAA,GAA3B+R,EAAM+yC,iBAAiB,EACvB/yC,EAAM4G,GAAG,CAAC5G,EAAM+yC,iBAAiB,CAAE,SAAUzoD,CAAK,CAAE6E,CAAI,EACpD6Q,EAAMuzC,iBAAiB,CAAGpkD,EAC1B6Q,EAAMwzC,cAAc,CAAG,GACvBxzC,EAAMq1C,wBAAwB,EAClC,GAGJr1C,EAAMq1C,wBAAwB,CAAG,eAKzBE,CAJCv1C,CAAAA,EAAM4yC,mBAAmB,EAK9BtiD,EAAS,WACL,GAAIyjD,EAAc,CACdwB,EAAexB,EAAayB,qBAAqB,GAAGC,MAAM,CAAGz1C,EAAM4yC,mBAAmB,CAACtnD,MAAM,CAE7F,IAAImqD,EAAS,GAET/C,CAAAA,EAAiBgD,KAAK,EACtBD,CAAAA,GAAkBvoD,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,yBAAyBs4B,qBAAqB,GAAGG,GAAG,EAGnG,IAAIC,EAAkBH,EAASF,CAC/BzB,CAAAA,EAAkB+B,KAAK,CAACC,SAAS,CAAGF,EAAkB,IAC1D,CACJ,EACJ,EAEA51C,EAAM+1C,eAAe,CAAG,WACpB/1C,EAAMg2C,YAAY,CAAG,EACzB,EAEAh2C,EAAMi2C,WAAW,CAAG,SAAUC,CAAI,EAC9Bl2C,EAAMg2C,YAAY,CAAG,GACjBE,GACA5lD,EAAS,WACA0P,EAAMg2C,YAAY,GACnBh2C,EAAM4zC,gBAAgB,CAAG,GACzB5zC,EAAMg2C,YAAY,CAAG,GAE7B,EAAG,IAEX,EAEAh2C,EAAM4G,GAAG,CAAC,yBAA0B,WAChC5G,EAAM4zC,gBAAgB,CAAG,GACzB5zC,EAAM2zC,UAAU,CAAG,EACvB,EACJ,CACJ,CACJ,EACH,EACDrlD,EAAAA,CAAUA,CAACf,MAAM,CAAC,qBAAsB,WACpC,OAAO,SAAU4B,CAAI,CAAE6lD,CAAK,EACxB,GAAI,CAAC7lD,GAID,CAAC6lD,EAHD,OAAO,KAOX,IAAImB,EAAY,EAAE,CAClBnB,EAAQA,EAAMlzC,WAAW,GAEzB,IAAK,IAAI3T,EAAI,EAAGA,EAAIgB,EAAK7D,MAAM,CAAE6C,IAAK,CAClC,IAAI22B,EAAO31B,CAAI,CAAChB,EAAE,CAGd,SAAM4gB,KAAK,EAAY+V,KAAAA,EAAK/V,KAAK,CAACjN,WAAW,GAAG/T,OAAO,CAACinD,IAAmBlwB,MAAAA,EAAKsxB,QAAQ,EAAYtxB,KAAAA,EAAKsxB,QAAQ,CAACt0C,WAAW,GAAG/T,OAAO,CAACinD,EAAY,GACpJmB,EAAUpmD,IAAI,CAAC+0B,EAEvB,CAEA,OAAOqxB,CACX,CACJ,E,yGEzQA7nD,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,sBAAuB,CACxC,aACA,WACA,gBACA,gBACA,SAAUxB,CAAU,CAAElQ,CAAQ,CAAEoQ,CAAa,CAAE21C,CAAa,EACxD,MAAO,CACH1iD,SCjBG,gyDDkBHoM,SAAU,IACVC,MAAO,CACHs2C,cAAe,iBACfC,QAAS,WACTC,iBAAkB,oBAClBvD,WAAY,cACZI,UAAW,IACXC,YAAa,GACjB,EACAp+B,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjCs7B,EAAcI,WAAW,GAAGhsD,IAAI,CAAC,SAAU0M,CAAQ,EAC/C6I,EAAM02C,YAAY,CAAGv/C,EAAShI,IAAI,GAGtC6Q,EAAM22C,0BAA0B,CAAGj2C,EAAcoR,IAAI,GACrD9R,EAAMhO,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAE5DgO,EAAM4G,GAAG,CAAC5G,EAAM22C,0BAA0B,CAAG,2BAA4B,SAAUrsD,CAAK,CAAE6E,CAAI,EAC1FA,EAAKynD,kBAAkB,CAAG,GAC1B52C,EAAM62C,WAAW,CAAC1nD,GAClB6Q,EAAM82C,sBAAsB,EAChC,GAEA92C,EAAM62C,WAAW,CAAG,SAAU1nD,CAAI,EACyB,KAAnD6Q,EAAMw2C,gBAAgB,CAACzoD,OAAO,CAACoB,EAAK4nD,SAAS,IAC7C/2C,EAAMu2C,OAAO,CAACxmD,IAAI,CAACZ,GACnB6Q,EAAMw2C,gBAAgB,CAACzmD,IAAI,CAACZ,EAAK4nD,SAAS,EAElD,EAEA/2C,EAAMg3C,UAAU,CAAG,SAAUrpD,CAAK,EAC9B,IAAIiiD,EAAO5vC,EAAMu2C,OAAO,CAAC5oD,EAAM,CAC/B,GAAIiiD,GAAQA,OAAAA,EAAKmH,SAAS,EAAanH,KAAmB3hD,IAAnB2hD,EAAKmH,SAAS,CAAgB,CACjE/2C,EAAMi3C,aAAa,CAACrH,EAAMjiD,GAC1B,MACJ,CAEA,IAAIupD,EAASl3C,EAAMu2C,OAAO,CAAC5oD,EAAM,CAAC+N,MAAM,CACpCy7C,EAAoBn3C,EAAMs2C,aAAa,CAACrmC,SAAS,CAAC,SAAU6U,CAAI,EAChE,OAAOA,EAAKtoB,EAAE,GAAK06C,CACvB,EAE0B,MAAtBC,GACAn3C,EAAMs2C,aAAa,CAACtmD,MAAM,CAACmnD,EAAmB,GAElDn3C,EAAMu2C,OAAO,CAACvmD,MAAM,CAACrC,EAAO,GAC5BqS,EAAMa,UAAU,CAAC,aACrB,EAEAb,EAAMi3C,aAAa,CAAG,SAAUrH,CAAI,CAAEjiD,CAAK,EACvC,IAAMypD,EAAYp3C,EAAMu2C,OAAO,CAAC5oD,EAAM,CAACopD,SAAS,CAChD/2C,EAAMw2C,gBAAgB,CAACllD,MAAM,CAAC8lD,GAC9Bp3C,EAAMu2C,OAAO,CAACvmD,MAAM,CAACrC,EAAO,EAChC,EAIAqS,EAAM4G,GAAG,CAAC,qBAAsB,SAAUtc,CAAK,CAAE6E,CAAI,EAErC,MAARA,GACA6Q,CAAAA,EAAMq3C,sBAAsB,CAAGloD,CAAG,EAEtC6Q,EAAMs3C,kBAAkB,EAC5B,GAIAt3C,EAAM4G,GAAG,CAAC,oBAAqB,SAAUtc,CAAK,EAC1C0V,EAAMu3C,cAAc,CAAG,EAC3B,GAEAv3C,EAAMs3C,kBAAkB,CAAG,WACvBt3C,EAAMu3C,cAAc,CAAG,GACvBv3C,EAAMw3C,gBAAgB,CAAG,GAEzBlnD,EAAS,KACLpD,CAAO,CAAC,EAAE,CAACuqD,cAAc,GACzBhsD,SAASyiC,cAAc,CAAC,4BAA4BxjC,KAAK,EAC7D,EACJ,EAIAsV,EAAM4G,GAAG,CAAC,uBAAwB,SAAUtc,CAAK,CAAE6E,CAAI,CAAE6lD,CAAK,EAC1Dh1C,EAAM03C,oBAAoB,CAAC1C,EAC/B,GAIAh1C,EAAM4G,GAAG,CAAC,wBAAyB,SAAUtc,CAAK,CAAE6E,CAAI,EACpD6Q,EAAMw3C,gBAAgB,CAAG,EAC7B,GAEAx3C,EAAM03C,oBAAoB,CAAG,SAAU1C,CAAK,EACxCh1C,EAAM23C,gBAAgB,CAAG,CACrBC,UAAW,GACXC,WAAY,GACZC,MAAO,EACX,EAEA,IAAMC,EAAe/C,EAAMgD,IAAI,GAAGv4C,OAAO,CAAC,UAAW,IAC/Cw4C,EAAaF,EAAa9rC,KAAK,CAAC,oBAElCgsC,QAAAA,GACAj4C,EAAM23C,gBAAgB,CAACC,SAAS,CAAGK,CAAU,CAAC,EAAE,CAChDj4C,EAAM23C,gBAAgB,CAACE,UAAU,CAAGI,CAAU,CAAC,EAAE,EAC1CF,EAAazrC,QAAQ,CAAC,KAC7BtM,EAAM23C,gBAAgB,CAACG,KAAK,CAAGC,EAE/B/3C,EAAM23C,gBAAgB,CAACC,SAAS,CAAGG,EAGvC/3C,EAAMw3C,gBAAgB,CAAG,GACzBx3C,EAAMu3C,cAAc,CAAG,EAC3B,EAEAv3C,EAAM4G,GAAG,CAAC,kBAAmB,SAAUtc,CAAK,CAAE6E,CAAI,EACzC6Q,EAAMu2C,OAAO,CAAC9oD,QAAQ,CAAC0B,IAAU6Q,EAAMw2C,gBAAgB,CAAC/oD,QAAQ,CAAC0B,EAAK4nD,SAAS,IAChF5nD,EAAKynD,kBAAkB,CAAG,GAC1B52C,EAAMu2C,OAAO,CAACxmD,IAAI,CAACZ,GACnB6Q,EAAMw2C,gBAAgB,CAACzmD,IAAI,CAACZ,EAAK4nD,SAAS,EAAI5nD,EAAKuM,MAAM,GAG7DsE,EAAM82C,sBAAsB,EAChC,GAEA92C,EAAM9K,OAAO,CAAG,CACZ,CACI6Z,MAAO/O,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,gCAC5C6hD,eAAgB,uBAChB4D,QAAS,oBACb,EACH,CAEDl4C,EAAMib,MAAM,CAAC,mBAAoB,SAAUu8B,CAAgB,EAE/B,IAApBA,GACAlnD,EAAS,WACLpD,CAAO,CAAC,EAAE,CAACuqD,cAAc,GACzBhsD,SAASyiC,cAAc,CAAC,yBAAyBxjC,KAAK,EAC1D,EAER,GAEAsV,EAAM82C,sBAAsB,CAAG,WAC3B,IAAMqB,EAAoBjrD,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,oCACzB,QAAtBi7B,GACAA,EAAkBztD,KAAK,EAE/B,CACJ,CACJ,CACJ,EACH,C,uKE3KO,EAAY,MAAK,OAAV,C,UCIR,OAAM0tD,EACOC,OAECC,CAAAA,mBAA6C,IAAIC,EAAAA,CAAaA,CAAU,EACxEC,CAAAA,2BACAC,CAAAA,6BAAiE,aAEtEC,CAAkD,CAAEC,CAA+D,CAAE,CAC7H,IAAI,CAACH,2BAA2B,CAAGE,EACnC,IAAI,CAACD,6BAA6B,CAAGE,EAErC,IAAI,CAACN,OAAO,CAAG,IAAI,CAACO,2BAA2B,EACnD,CAEOC,cAAiC,CAEpC,OADA,IAAI,CAACP,kBAAkB,CAACQ,IAAI,CAAC,IACtBC,CAAAA,EAAAA,EAAAA,CAAAA,EAAK,IAAI,CAACN,6BAA6B,CAAC,IAAMhuD,IAAI,CAACstB,EAAAA,CAAIA,EAClE,CAEOihC,eAAkC,CACrC,MAAOD,CAAAA,EAAAA,EAAAA,CAAAA,EAAK,IAAI,CAACN,6BAA6B,CAAC,IAAOhuD,IAAI,CAACstB,EAAAA,CAAIA,GAAG+O,IAAI,CAACmyB,CAAAA,EAAAA,EAAAA,CAAAA,EAAI,IAAM,IAAI,CAACX,kBAAkB,CAACQ,IAAI,CAAC,KAClH,CAEQF,6BAAmD,CACvD,IAAMM,EAA0BvuC,CAAAA,EAAAA,EAAAA,CAAAA,EAAM,IAAM,IAAI,CAAC6tC,2BAA2B,IAAI1xB,IAAI,CAChFqyB,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAMC,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,KACpBtQ,CAAAA,EAAAA,EAAAA,CAAAA,IACAuQ,CAAAA,EAAAA,EAAAA,CAAAA,EAAW7uD,IACP,IAAI,CAAC8tD,kBAAkB,CAACQ,IAAI,CAACtuD,GACtB,IAAI,CAAC8tD,kBAChB,IAGJ,OAAOgB,WCakE,IAAzD,IAWI,EFvDM,EE4CV,2BAAyD,CAAzD,sBACY,OAE3B,KAHwE,EF3CxE,KADyB,EE6CP,GF5Cb,MAAM,EAAU,EAAQ,CAAI,CAAC,EAAE,EAAE,CAAM,CAAC,EAAE,CAAC,CE4CvB,EAEjB,MAAM,CAAO,SAAY,CAAO,CAAC,EAAwB,EAAE,IAAM,GAAU,EAQhE,EAR6E,EAShG,SAAC,CAAyB,EAO/B,IAAK,IAND,EAAgC,EAAE,CAAC,WAM9B,CAAC,EACR,EAAc,IAAI,CAChB,SAAU,CAAO,CAAC,EAAwB,EAAE,SAAS,CACnD,QAAyB,EAAY,SAAC,CAAK,EACzC,GAAI,EAAe,CAGjB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAc,MAAM,CAAE,IACxC,IAAM,GAAK,CAAa,CAAC,EAAE,CAAC,WAAW,GAAG,EAE5B,IAAK,CAEvB,EAAW,IAAI,CAAC,EAAM,IAG3B,EAfM,EAAI,EAAG,GAAiB,CAAC,EAAW,MAAM,EAAI,EAAI,EAAQ,MAAM,CAAE,IAAG,EAArE,EAgBR,GA/BL,EDjBoB,IAAI,CAAChB,kBAAkB,CAAEY,EACzC,CACJ,C,+CElCO,OAAMK,EACOlB,OAECC,CAAAA,mBAA6C,IAAIC,EAAAA,CAAaA,CAAU,EACxEiB,CAAAA,YAAsB,4BAA6B,cAEtD,CACV,IAAI,CAACnB,OAAO,CAAG,IAAI,CAACO,2BAA2B,EACnD,CAEOC,cAAiC,CACpC,IAAI,CAACP,kBAAkB,CAACQ,IAAI,CAAC,IAE7B,IAAMW,EAAM,IAAIr4C,KAGhB,OAFA,IAAI,CAACs4C,YAAY,CAAC,IAAI,CAACF,WAAW,CAAEC,EAAIE,WAAW,IAE5CP,CAAAA,EAAAA,EAAAA,EAAAA,GACX,CAEOJ,eAAkC,CAKrC,OAJA,IAAI,CAACV,kBAAkB,CAACQ,IAAI,CAAC,IAE7B,IAAI,CAACc,aAAa,GAEXR,CAAAA,EAAAA,EAAAA,EAAAA,GACX,CAEQR,6BAA+C,CACnD,IAAMiB,EAAYlvC,CAAAA,EAAAA,EAAAA,CAAAA,EAAM,IAAMyuC,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,WAAI,CAACU,WAAW,KAA6BhzB,IAAI,CAC9EgiB,CAAAA,EAAAA,EAAAA,CAAAA,IACAmQ,CAAAA,EAAAA,EAAAA,CAAAA,EAAKzuD,GAAU,IAAI,CAAC8tD,kBAAkB,CAACQ,IAAI,CAACtuD,IAC5Cu8B,CAAAA,EAAAA,EAAAA,CAAAA,EAAU,IAAI,CAACuxB,kBAAkB,GAGrC,MAAOyB,CAAAA,EAAAA,EAAAA,CAAAA,EAAM,IAAI,CAACzB,kBAAkB,CAAEuB,EAC1C,CAEQC,aAA6B,CACjC,IAAME,EAASC,EAAAA,CAAWA,CAAC5iD,GAAG,CAAC,IAAI,CAACmiD,WAAW,SAE/C,OAAIQ,EACO,KAGJA,EAAOxvD,KAClB,CAEQkvD,aAAaxuD,CAAW,CAAEV,CAAa,CAAQ,CACnDyvD,EAAAA,CAAWA,CAACC,GAAG,CAAChvD,EAAKV,EAAO,CACxB2vD,SAAUC,EAAAA,CAAQA,CAACC,MAAM,CACzBC,OAAQ,EACZ,EACJ,CAEQV,eAAsB,CAC1BK,EAAAA,CAAWA,CAACnhD,MAAM,CAAC,IAAI,CAAC0gD,WAAW,CACvC,CACJ,C,gBC3D6D,OAEvDe,EACF7rD,YAAY8rD,CAAI,CAAEzS,CAAI,CAAE1lC,CAAoB,CAAE,CAC1C,IAAI,CAAC2G,GAAG,CAAGwxC,EACX,IAAI,CAACxS,KAAK,CAAGD,EACb,IAAI,CAACl3B,qBAAqB,CAAGxO,EAC7B,IAAI,CAACo4C,kBAAkB,CAAG,IAAIrC,EAC1B,IAAM,IAAI,CAACsC,WAAW,GACtB,GAAe,IAAI,CAACC,WAAW,CAACC,IAEpC,IAAI,CAACC,qBAAqB,CAAG,IAAItB,CACrC,CAEAmB,aAAc,CACV,OAAO,IAAI,CAAC1xC,GAAG,CAACja,OAAO,CAAC,IAAI,CAACi5C,KAAK,CAAC8S,6BAA6B,GACpE,CAEAH,YAAYC,CAAS,CAAE,QACnB,EACW,IAAI,CAAC/pC,qBAAqB,CAACjT,oBAAoB,GAE/C,IAAI,CAACiT,qBAAqB,CAAC/S,qBAAqB,EAE/D,CAEAi9C,oBAAqB,QACjB,OAAI,IAAI,CAAC/S,KAAK,CAACC,MAAM,GACV,IAAI,CAAC4S,qBAAqB,CAG9B,IAAI,CAACJ,kBAAkB,CAGlC5B,cAAe,CACX,OAAO,IAAI,CAACkC,kBAAkB,GAAGlC,YAAY,EACjD,CAEAG,eAAgB,CACZ,OAAO,IAAI,CAAC+B,kBAAkB,GAAG/B,aAAa,EAClD,CAEAX,SAAU,CACN,OAAO,IAAI,CAAC0C,kBAAkB,GAAG1C,OAAO,CAEhD,CAEAkC,EAAoB/rD,OAAO,CAAG,CAAC,KAAM,OAAQ,uBAAuB,CACpEF,EAAAA,CAAUA,CAACC,OAAO,CAAC,sBAAuBgsD,E,iCClC1C,SAASS,IAA2B,CAEpCA,EAAwB/wD,SAAS,CAACgxD,YAAY,CAAG,WAC7C,IAAI,CAACC,aAAa,CAAC,CAAEhwD,IAAK,IAAI,CAACA,GAAG,CAAEV,MAAO,IAAI,CAACA,KAAK,EACzD,EAEA8D,EAAAA,CAAUA,CAACgF,SAAS,CAAC,0BApBC,CAClBC,SAAU,CACN2nD,cAAe,IACfC,QAAS,IACTC,IAAK,IACL5wD,MAAO,IACPU,IAAK,IACLkmB,QAAS,GACb,EACAxd,WAAYonD,EACZrnD,SCbW,4lBDcf,E,iCEGA,SAAS0nD,IAAwB,CAEjCA,EAAqBpxD,SAAS,CAACqxD,iBAAiB,CAAG,WAC/C,IAAI,CAACJ,aAAa,CAAC,CAAEhwD,IAAK,IAAI,CAACA,GAAG,CAAEV,MAAO,IAAI,CAACA,KAAK,EACzD,EACA8D,EAAAA,CAAUA,CAACgF,SAAS,CAAC,6BAnBC,CAClBC,SAAU,CACN2nD,cAAe,IACfC,QAAS,IACTC,IAAK,IACL5wD,MAAO,IACPU,IAAK,IACLkmB,QAAS,GACb,EACAxd,WAAYynD,EACZ1nD,SCbW,i3BDcf,E,mUEiBArF,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,qBAAsB,CACrC,QACA,KACA,aACA,YACA,YACA,eACA,UACA,WACA,kBACA,aACA,gBACA,uBACA,uBACA,aACA,UACA,QACA,uBACA,iBACA,qBACA,iBACA,uBACA,iBACA,wBACA,iBACA,0BACA,oBACA,SACI3sB,CAAK,CACLgM,CAAE,CACF5B,CAAU,CACVsC,CAAS,CACTD,CAAS,CACTxM,CAAY,CACZoK,CAAO,CACPnQ,CAAQ,CACRwP,CAAe,CACfy7C,CAAU,CACV76C,CAAa,CACb1O,CAAoB,CACpBwpD,CAAoB,CACpBjlD,CAAU,CACVzO,CAAO,CACPib,CAAK,CACLC,CAAoB,CACpBy4C,CAAc,CACd94C,CAAkB,CAClB+4C,CAAc,CACdvlD,CAAoB,CACpB+M,CAAc,CACdy4C,CAAqB,CACrBC,CAAc,CACdC,CAAuB,CACvBh9B,CAAiB,EAEjB,IAAIi9B,EAAU,KACVC,EAAY,CACRliB,aAAc,cACdG,KAAM,OACNN,mBAAoB,yBACpBsiB,GAAI,KACJC,KAAM,OACNC,cAAe,eACf7hB,KAAM,OACNx1B,SAAU,WACV+zB,cAAe,eACf9sB,SAAU,WACVlH,kBAAmB,mBACnBg2B,iBAAkB,kBAClBS,iBAAkB,iBACtB,EAKA5C,EAAqB,CACrBkD,KAAM,EAAE,CACRwgB,mBAAoBluD,KAAAA,EACpBmuD,aAAcnuD,KAAAA,EACdwtC,WAAYxtC,KAAAA,EACZouD,KAAMpuD,KAAAA,EACNquD,uBAAwBruD,KAAAA,EACxBsuD,+BAAgCtuD,KAAAA,EAEhCuuD,QAAS,SAAUrtD,CAAI,CAAEstD,CAAa,EAClC,IAAIxiC,EAAS9qB,EAEb,GAAI,CAIA,GADA8qB,EAASA,CAFTA,EAASyiC,EAAAA,CAAqBA,CAACC,GAAG,CAACH,OAAO,CAACviC,EAAQ6hC,EAAO,EAE1CniC,QAAQ,CAAC+iC,EAAAA,CAAqBA,CAACE,GAAG,CAACC,IAAI,EACnDJ,EACA,OAAOxiC,EAEP,OAAO6iC,KAAKC,KAAK,CAAC9iC,EAG1B,CAAE,MAAOwO,EAAO,CAAC,CACrB,EAMAu0B,2BAA4B,SAAUC,CAAqB,EACvD,OAAOtB,EAAsBuB,QAAQ,CAACD,EAAuBnB,EACjE,EAEAqB,iBAAkB,SAAUpnD,CAAO,EAC/B,OAAO4lD,EAAsByB,GAAG,CAACrnD,EACrC,EAMAsnD,uBAAwB,eAAUC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CACxBnuD,EAAOmuD,EAAiB,EAAE,CAAG,CAAC,EAEpC,IAAK,IAAMC,KAAe5B,EAAsB7qD,IAAI,GAC5CwsD,EACAnuD,EAAKY,IAAI,CAACwtD,GAEVpuD,CAAI,CAACouD,EAAY,CAAG5B,EAAsBuB,QAAQ,CAACK,EAAazB,GAIxE,OAAO3sD,CACX,EAEAquD,aAAc,SAAU9c,CAAG,EACvB,IAAIx1C,EACAyD,EACA2V,EAAW,EAAE,CACbm5C,EAAyBhlB,EAAmB4kB,sBAAsB,GAGtE,GAAI3c,MAAAA,GAAqCA,EAAIp1C,MAAM,CAAG,EAClD,IAAKJ,KAAOuyD,EAAwB,CAChC,IAAI3mD,EAAS,CACTf,QAAS7K,EACTwyD,mBAAoB,MACxB,EACA/uD,EAAUwH,EAAqB2F,0BAA0B,CAAChF,GAC1DwN,EAASvU,IAAI,CAACpB,EAClB,MAGA,IAAKzD,KAAOuyD,EACR,IAAK,IAAItvD,EAAI,EAAGA,EAAIuyC,EAAIp1C,MAAM,CAAE6C,IAE5B,GAAIjD,GAAOw1C,CAAG,CAACvyC,EAAE,CAAE,CACf,IAAI2I,EAAS,CACTf,QAAS7K,EACTwyD,mBAAoB,MACxB,EACA/uD,EAAUwH,EAAqB2F,0BAA0B,CAAChF,GAC1DwN,EAASvU,IAAI,CAACpB,EAClB,CAKZ,OAAOyT,EAAGqC,GAAG,CAACH,EAClB,EAEAq5C,aAAc,SAAUjd,CAAG,EACvB,IAAIvyC,EACAQ,EACA2V,EAAW,EAAE,CACboG,EAAWtI,EAAGuI,KAAK,GAavB,OAXA8tB,EAAmB+kB,YAAY,CAAC9c,GAAKj2C,IAAI,CAAC,SAAU0E,CAAI,EACpD,IAAKhB,EAAI,EAAGA,EAAIgB,EAAK7D,MAAM,CAAE6C,IACQ,YAA7BgB,CAAI,CAAChB,EAAE,CAACgB,IAAI,CAACyuD,WAAW,GACxBjvD,EAAU8pC,EAAmBxH,IAAI,CAAC9hC,CAAI,CAAChB,EAAE,CAACgB,IAAI,EAC9CmV,EAASvU,IAAI,CAACpB,IAItB+b,EAAS3b,OAAO,CAAC,CAAEuV,SAAUlC,EAAGqC,GAAG,CAACH,EAAU,EAClD,GAEOoG,EAAS/b,OAAO,EAU3BkvD,gBAAiB,SAAU9nD,CAAO,CAAEuE,CAAQ,CAAEwjD,CAAW,EACrD,IAAIt4C,EAAY,WAEZ,OADAk2C,EAAeqC,WAAW,CAACC,IAAI,GACxB57C,EAAGpT,MAAM,EACpB,EAKA,OADAkU,EAAeE,IAAI,CAAC,OAAQ,CAAC,YAAY,EAAE9I,EAAS,CAAC,EAC9CqI,EAAmBD,aAAa,CAAC3M,EAASuE,GAAU7P,IAAI,CAAC,WAC5D,OAAOuY,EAAqB66C,eAAe,CAAC9nD,GAAStL,IAAI,CACrD,SAAUwzD,CAAQ,EAEVA,GAAYA,EAASC,WAAW,CAACC,YAAY,EAC7C39C,EAAWK,UAAU,CAAC,+BAAgC9K,EAE9D,EACA,SAAU1G,CAAS,EACXA,GAAaA,EAAU+uD,wBAAwB,GAC/Cp7C,EAAqBq7C,kCAAkC,CAAC,CAACtoD,EAAQ,EACjE+M,EAAU6G,IAAI,CAACpT,EAAWqT,SAAS,CAAC7T,EAAS,GAAI,MAErDyP,GACJ,EAER,EAAGA,EACP,EAEA84C,wCAAyC,WACrC99C,EAAW+9C,kBAAkB,CAAG,GAEhCr7C,EAAeiC,KAAK,CAAC,MAAO,oBAC5B,IAAMq5C,EAAuBp8C,EAAGuI,KAAK,GAC/B8zC,EAAsB,IAAI,CAACpB,sBAAsB,CAAC,IAClDqB,EAAkB17C,EAAqB27C,kBAAkB,CAACF,EAAqBD,GAErFA,EAAqB7vD,OAAO,CAAClE,IAAI,CAC7B,KACIuY,EAAqB47C,UAAU,CAAC,GAAO,GAAO,KAAMF,EAAiB,KAAM,MAAMj0D,IAAI,CAAC,WAClF+V,EAAW+9C,kBAAkB,CAAG,EACpC,EACJ,EACA,KACIG,EAAgBj0D,IAAI,CAAC,WACjB+V,EAAW+9C,kBAAkB,CAAG,EACpC,EACJ,GAGJG,EAAgBpvD,KAAK,CAAC,IAAOkR,EAAW+9C,kBAAkB,CAAG,GACjE,EAEAM,4BAA6B,WACzB,IAAI3zD,EAEA4zD,EADArB,EAAyBhlB,EAAmB4kB,sBAAsB,GAKlE0B,EAAmB,IAAI39C,KAI3B,IAAKlW,KAHL6zD,EAAiBC,QAAQ,CAAC,EAAG,EAAG,EAAG,GACnCD,EAAiBE,OAAO,CAACF,EAAiBG,OAAO,GAAK,GAE1CzB,EACJA,EAAuBpkC,cAAc,CAACnuB,IAGlC4zD,CAFJA,EAAgBrB,CAAsB,CAACvyD,EAAI,GAEtB4zD,EAAcK,sBAAsB,EAAIL,EAAcljB,QAAQ,EAAIkjB,CAA0B,GAA1BA,EAAcljB,QAAQ,EAErG,CAAEwjB,CAAAA,IADmBh+C,KAAK09C,EAAcK,sBAAsB,EACvCJ,CAAe,GAEtC,IAAI,CAACM,OAAO,CAACn0D,EAKjC,EAEAo0D,YAAa,WACT,IAAI50C,EAAWtI,EAAGuI,KAAK,UAEvB,GACID,EAAS3b,OAAO,CAAC+sD,GACVpxC,EAAS/b,OAAO,GAEvByH,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAC1BrF,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,sCAAwC,IAAInB,OAAOm+C,OAAO,IAElH,EAEAC,oBAAqB,WACb9+C,EAAc++C,YAAY,IAC1B,IAAI,CAACH,WAAW,GAAG70D,IAAI,CACnB,UAAU0M,CAAQ,EACd2kD,EAAU3kD,EAAShI,IAAI,CAAGgI,EAAShI,IAAI,CAAG,qBAE1C,IAAI,CAACmvD,uCAAuC,EAChD,GAAE71D,IAAI,CAAC,IAAI,EAGvB,EAEAi3D,mBAAoB,SAAUC,CAAG,EAEzBlnB,EAAmB0jB,kBAAkB,GAAKwD,EAAIl2C,OAAO,EACpD,GAAoB0yC,kBAAkB,EAAI1jB,EAAmB2jB,YAAY,GAAKuD,EAAIl2C,OAAO,GAE1Fk2C,CAAAA,EAAIxwD,IAAI,CAACgqC,WAAW,CAAG,MAAK,CAEpC,EAMAkmB,QAAS,SAAUn0D,CAAG,EAClBywD,EAAsBrqD,MAAM,CAACpG,EACjC,EAEA00D,aAAc,SAAU10D,CAAG,QACvB,EAAIutC,EAAmBkD,IAAI,CAACzwC,EAAI,IAAIutC,EAAmBkD,IAAI,CAACzwC,EAAI,CAACiE,IAAI,EACjE,sBAAIspC,EAAmBkD,IAAI,CAACzwC,EAAI,CAACiE,IAAI,CAAC+6B,QAAQ,CACnCuO,EAAmBonB,qBAAqB,CAACC,iCAAiC,CAAC50D,GAE3EutC,EAAmBkD,IAAI,CAACzwC,EAAI,CAAC0wC,QAAQ,CAKxD,EAEAmkB,eAAgB,SAAUC,CAAQ,CAAEC,CAAO,MAKnCC,EAAYC,EAAiBC,EAJjC,GAAKJ,EASL,OAFAG,EAAkBD,CADlBA,EAAaznB,EAAmBkD,IAAI,CAACqkB,EAAS,EACjB7wD,IAAI,CAAG+wD,EAAW/wD,IAAI,CAAC+6B,QAAQ,CAAG,MAG3D,IAAK,WACDuO,EAAmBxH,IAAI,CAAC,CAAExnB,QAASu2C,EAAUtnB,MAAOwnB,EAAW/wD,IAAI,GAEnEixD,CAAAA,EAAY3nB,EAAmBkD,IAAI,CAACskB,EAAQ,GAExCxnB,EAAmBxH,IAAI,CAAC,CAAExnB,QAASw2C,EAASvnB,MAAO0nB,EAAUjxD,IAAI,GAErE,KACJ,KAAK,OACL,IAAK,eACL,IAAK,eACL,IAAK,OACL,IAAK,yBACL,IAAK,cACDspC,EAAmBxH,IAAI,CAAC,CAAExnB,QAASu2C,EAAUtnB,MAAOwnB,EAAW/wD,IAAI,GACnE,KACJ,KAAK,mBACDspC,EAAmBxH,IAAI,CAAC,CAAExnB,QAASu2C,EAAUtnB,MAAOwnB,EAAW/wD,IAAI,GAAI1E,IAAI,CAAC,WACxE,IAAIsgB,EAAO0tB,EAAmBonB,qBAAqB,CAACQ,gBAAgB,CAACJ,EAASxnB,EAAmBonB,qBAAqB,CAAC1wD,IAAI,CAAC6hB,KAAK,CAE7HjG,CAAAA,EAAKiD,cAAc,EACnBoyC,CAAAA,EAAY3nB,EAAmBkD,IAAI,CAAC5wB,EAAKiD,cAAc,CAAC,GAGpDyqB,EAAmBxH,IAAI,CAAC,CAAExnB,QAASsB,EAAKiD,cAAc,CAAE0qB,MAAO0nB,EAAUjxD,IAAI,EAGzF,GACA,KACJ,SACI,MAAM,MAAU,wBAA0BgxD,EAAkB,sBACpE,CACJ,EAEAzhB,KAAM,SAAUshB,CAAQ,CAAEC,CAAO,EAC7B,IACIK,EACAnyD,EACAoyD,EACA5xD,EAJA6xD,EAAe,EAAE,CAKjBl8C,EAAW,EAAE,CACb+6B,EAAO,IAAI,CACX30B,EAAWtI,EAAGuI,KAAK,GAGvB+d,QAAQC,IAAI,CAAC,6EAGb,IAAI+X,EAAM,EAAE,CA+BZ,OA9BAA,EAAI3wC,IAAI,CAACiwD,GACTvnB,EAAmBklB,YAAY,CAACjd,GAAKj2C,IAAI,CAAC,SAAU0E,CAAI,EAEpDA,EAAKmV,QAAQ,CAAC7Z,IAAI,CAAC,WAGf,IAAK61D,KAFLjhB,EAAK0gB,cAAc,CAACC,EAAUC,GAEdxnB,EAAmBkD,IAAI,CAC/BlD,EAAmBkD,IAAI,CAACtiB,cAAc,CAACinC,IACnC7nB,CAA8C,IAA9CA,EAAmBkD,IAAI,CAAC2kB,EAAQ,CAAC1kB,QAAQ,GACzCnD,EAAmBinB,kBAAkB,CAACjnB,EAAmBkD,IAAI,CAAC2kB,EAAQ,EACtEE,EAAazwD,IAAI,CAAC0oC,EAAmBkD,IAAI,CAAC2kB,EAAQ,GAK9D,IAAKnyD,EAAI,EAAGA,EAAIqyD,EAAal1D,MAAM,CAAE6C,IAE7B+wC,MAAMshB,CAAY,CAACryD,EAAE,CAACgB,IAAI,CAACshB,QAAQ,GACnC+vC,CAAAA,CAAY,CAACryD,EAAE,CAACgB,IAAI,CAACshB,QAAQ,CAAG,EAAC,EAErC8vC,EAAe,CAAEtgD,MAAOugD,CAAY,CAACryD,EAAE,CAACgB,IAAI,EAC5CiH,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC9M,EAAUwH,EAAqBiG,YAAY,CAACmkD,GAC5Cj8C,EAASvU,IAAI,CAACpB,EAAQlE,IAAI,CAACg2D,KAG/B/1C,EAAS3b,OAAO,CAAC,CAAEuV,SAAUlC,EAAGqC,GAAG,CAACH,EAAU,EAClD,EACJ,GAEOoG,EAAS/b,OAAO,EAG3BsiC,KAAM,SAAU9hC,CAAI,CAAEuxD,CAAQ,EAE1B,IAAIh2C,EAAWtI,EAAGuI,KAAK,GACvB,OAAQxb,EAAKupC,KAAK,CAACxO,QAAQ,EACvB,KAAK6xB,EAAUliB,YAAY,CACvB,IAAI8mB,EAAmBxxD,EAAMub,EAAUg2C,GACvC,KACJ,MAAK3E,EAAU/hB,IAAI,CACf,IAAI4mB,EAAYzxD,EAAMub,EAAUg2C,GAChC,KACJ,MAAK3E,EAAUriB,kBAAkB,CAC7B,IAAImnB,EAAyB1xD,EAAMub,EAAUg2C,GAC7C,KACJ,MAAK3E,EAAUC,EAAE,CACb,IAAI8E,EAAU3xD,EAAMub,EAAUg2C,GAC9B,KACJ,MAAK3E,EAAUE,IAAI,CACnB,KAAKF,EAAUG,aAAa,CACxB,IAAI6E,EAAY5xD,EAAMub,EAAUg2C,GAChC,KACJ,MAAK3E,EAAU1hB,IAAI,CACfgF,IApBO,CAoBFkd,8BAA8B,CAAGptD,EAAKupC,KAAK,CAACxO,QAAQ,CACzD,IAAI82B,EAAY7xD,EAAMub,EAAUg2C,GAChC,KACJ,MAAK3E,EAAUl3C,QAAQ,CACnB,IAAIo8C,EAAgB9xD,EAAMub,EAAUg2C,GACpC,KACJ,MAAK3E,EAAUnjB,aAAa,CACxByG,IA3BO,CA2BFkd,8BAA8B,CAAGptD,EAAKupC,KAAK,CAACxO,QAAQ,CACzD,IAAIg3B,EAAY/xD,EAAMub,EAAUg2C,GAChC,KACJ,MAAK3E,EAAUjwC,QAAQ,CACvB,KAAKiwC,EAAUn3C,iBAAiB,CAC5B,IAAIu8C,EAAgBhyD,EAAMub,EAAUg2C,GACpC,KACJ,MAAK3E,EAAUnhB,gBAAgB,CAC3ByE,IAnCO,CAmCFkd,8BAA8B,CAAGptD,EAAKupC,KAAK,CAACxO,QAAQ,CACzD,IAAIk3B,EAAuBjyD,EAAMub,EAAUg2C,GAC3C,KACJ,MAAK3E,EAAU1gB,gBAAgB,CAC3BgE,IAvCO,CAuCFkd,8BAA8B,CAAGptD,EAAKupC,KAAK,CAACxO,QAAQ,CACzD,IAAIm3B,EAAuBlyD,EAAMub,EAAUg2C,GAC3C,KACJ,SACI,MAAM,MAAU,wBAA0BvxD,EAAKupC,KAAK,CAACxO,QAAQ,CAAG,sEACxE,CAEA,OAAOxf,EAAS/b,OAAO,EAG3B2yD,cAAe,SAAU3yD,CAAO,EAGxBA,GAAWA,EAAQ66B,YAAY,EAAI76B,EAAQ66B,YAAY,CAACz6B,OAAO,EAC/DJ,EAAQ66B,YAAY,CAACz6B,OAAO,EAEpC,EAEAk5C,OAAQ,SAAUlyC,CAAO,SACrB,GAAe0iC,EAAmBkD,IAAI,CAC3BlD,EAAmBkD,IAAI,CAAC5lC,EAAQ,CAGpC,IACX,EAEAwrD,WAAY,SAAUxrD,CAAO,EACzB,IAAI2U,EAAWtI,EAAGuI,KAAK,GACnBg1C,EAAM,IAAI,CAAC1X,MAAM,CAAClyC,GACtB,GAAI4pD,EACAj1C,EAAS3b,OAAO,CAAC4wD,QAIjB,IAAI6B,EAAUhhD,EAAWoG,GAAG,CACxB,WACA,YACI,IAAI+4C,EAAM,IAAI,CAAC1X,MAAM,CAAClyC,GAClB4pD,IACAj1C,EAAS3b,OAAO,CAAC4wD,GACjB6B,IAER,GAAE/4D,IAAI,CAAC,IAAI,GAGnB,OAAOiiB,EAAS/b,OAAO,EAG3B8yD,MAAO,WACHhpB,EAAmBkD,IAAI,CAAG,EAAE,CAC5BlD,EAAmB0jB,kBAAkB,CAAGluD,KAAAA,EACxCwqC,EAAmB2jB,YAAY,CAAGnuD,KAAAA,EAClCwqC,EAAmBgD,UAAU,CAAGxtC,KAAAA,EAEhC4U,EAAU0C,MAAM,CAACkzB,EAAmB4jB,IAAI,EACxC5jB,EAAmB4jB,IAAI,CAAGpuD,KAAAA,EAC1BwqC,EAAmB6oB,aAAa,CAAC7oB,EAAmB6jB,sBAAsB,CAC9E,EAEAoF,gBAAiB,SAAU1B,CAAQ,EAC/B,GAAI,CAACA,EAAU,CACP7qC,QAAQwsC,SAAS,CAAClpB,EAAmB4jB,IAAI,IACzCx5C,EAAU0C,MAAM,CAACkzB,EAAmB4jB,IAAI,EACxC5jB,EAAmB4jB,IAAI,CAAGpuD,KAAAA,GAE9B,MACJ,CACAwqC,EAAmBgD,UAAU,CAAGukB,EAChCvnB,EAAmB6jB,sBAAsB,CAAG/lD,EACvCqmC,WAAW,CAAC98B,EAAgByC,YAAY,CAAG,oCAAsCk2B,EAAmBgD,UAAU,EAC9GhxC,IAAI,CAAC,SAAU0M,CAAQ,EAChBA,EAAShI,IAAI,EAAIqR,EAAWohD,QAAQ,GAEhCzqD,EAAShI,IAAI,CAACuM,MAAM,GAAK8E,EAAWohD,QAAQ,CAAClmD,MAAM,CAEnD8E,EAAWK,UAAU,CAAC,oBAAqB1J,EAAShI,IAAI,EAChDspC,EAAmB4jB,IAAI,EAE/B5jB,CAAAA,EAAmB4jB,IAAI,CAAGx5C,EACtB,WACI41B,EAAmBipB,eAAe,CAACjpB,EAAmBgD,UAAU,CACpE,EACA,KACA,IAAG,EAInB,EACR,EAEAomB,qBAAsB,SAAUvnD,CAAQ,EACpC,OAAQA,GACJ,KAAKyhD,EAAUliB,YAAY,CACvB,OAAOpB,EAAmBqB,wBAAwB,MAEjDiiB,EAAU/hB,IAAI,CACf,OAAOvB,EAAmBwB,iBAAiB,MAE1C8hB,EAAUriB,kBAAkB,CAC7B,OAAOjB,EAAmBkB,8BAA8B,MAEvDoiB,EAAUC,EAAE,CACb,OAAOvjB,EAAmBqpB,eAAe,MAExC/F,EAAUE,IAAI,CACnB,KAAKF,EAAUG,aAAa,CACxB,OAAOzjB,EAAmBspB,iBAAiB,MAE1ChG,EAAUl3C,QAAQ,CACnB,OAAO4zB,EAAmBa,qBAAqB,MAE9CyiB,EAAUnjB,aAAa,CACxB,OAAOH,EAAmBM,iBAAiB,MAE1CgjB,EAAUjwC,QAAQ,CACvB,KAAKiwC,EAAUn3C,iBAAiB,CAC5B,OAAO6zB,EAAmBonB,qBAAqB,MAE9C9D,EAAU1hB,IAAI,CACf,OAAO5B,EAAmBiC,iBAAiB,MAE1CqhB,EAAUnhB,gBAAgB,CAC3B,OAAOnC,EAAmBoC,4BAA4B,MAErDkhB,EAAU1gB,gBAAgB,CAC3B,OAAO5C,EAAmBsC,4BAA4B,SAGtD,OAAOtC,EAAmBM,iBAAiB,CAGvD,EAEAipB,wBAAyB,eAAUC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAY,CAAC,EACtCv3C,EAAWtI,EAAGuI,KAAK,GACnBC,EAAa,CACf3V,MAAOjD,EAAqBS,SAAS,CAAC,2CACtCmrC,QAAS5rC,EAAqBS,SAAS,CAAC,qDACxCorC,aAAc7rC,EAAqBS,SAAS,CAAC,4CAC7C,GAAGwvD,CAAS,CACZ75D,QAAS,KACL8a,EAAeE,IAAI,CAAC,OAAQ,iCAC5BsH,EAAS3b,OAAO,EACpB,CACJ,EAIA,OAFAgU,EAAM8H,MAAM,CAAC/K,EAAgB6G,yBAAyB,CAAG,0DAA2DiE,GAE7GF,EAAS/b,OAAO,EAG3BuzD,eAAgB,SAAUnsD,CAAO,CAAEosD,CAAS,EACxC,IAAIxzD,EAAU,KACVyzD,EAAa3pB,EAAmBkD,IAAI,CAAC5lC,EAAQ,CAC7CuE,EAAW8nD,EAAWjzD,IAAI,CAAC+6B,QAAQ,CAGvC,GACI,CAACi4B,GACC7nD,CAAAA,qBAAAA,GAAmC8nD,CAAwB,IAAxBA,EAAWxmB,QAAQ,EAAawmB,CAA6B,IAA7BA,EAAWjzD,IAAI,CAACysC,QAAQ,EACxFthC,qBAAAA,GAAmC8nD,EAAWtC,iCAAiC,CAAC/pD,EAAO,EAE5F,OAAOqM,EAAG4K,IAAI,GAGlB,OAAQ1S,GACJ,IAAK,WACD3L,EAAUyzD,EAAWC,oBAAoB,CAACtsD,GAC1C,KACJ,KAAK,WACL,IAAK,mBAED,IAAIusD,EAAgBF,EAAWG,gBAAgB,GAE/C,GAAID,GAAiBA,EAActyB,UAAU,EAAIsyB,CAAkC,GAAlCA,EAActyB,UAAU,CAACwyB,KAAK,CAAW,CACtF,IAAIC,EAAMrgD,EAAGuI,KAAK,GAGlB,OAFAhc,EAAU8zD,EAAI9zD,OAAO,CACrB8zD,EAAI1zD,OAAO,CAACuzD,GACL3zD,CACX,CAGAA,EAAUyzD,EAAWM,wBAAwB,CAAC3sD,EAAS,CAAE4sD,gBAAiB,EAAK,GAAGl4D,IAAI,CAAC,GAC5E0E,EAAKyzD,eAAe,EAE/B,KACJ,KAAK,kBACDj0D,EAAUyzD,EAAWS,2BAA2B,CAAC9sD,GACjD,KACJ,KAAK,eACDpH,EAAUyzD,EAAWU,qBAAqB,CAAC/sD,GAC3C,KACJ,KAAK,OACL,IAAK,eAED,IAAI02C,EAAO2V,EAAWjzD,IAAI,CAC1B,GAAIs9C,EAAM,CACN,IAAIsW,EAAoBvH,EAAqBwH,cAAc,CAACvW,EAAM,GAAO,IAGzE,GAAI,CAACsW,EAAkBP,KAAK,CAAE,CAC1B,IAAIS,EAAK7gD,EAAGuI,KAAK,GAGjB,OAFAhc,EAAUs0D,EAAGt0D,OAAO,CACpBs0D,EAAGl0D,OAAO,CAAC,CAAEihC,WAAY+yB,CAAkB,GACpCp0D,CACX,CACJ,CAGAA,EAAUyzD,EAAWM,wBAAwB,CAAC3sD,GAC9C,KACJ,KAAK,kBACDpH,EAAUyzD,EAAWc,2BAA2B,CAACntD,EAAS,IAC1D,KACJ,KAAK,yBACL,IAAK,kBACDpH,EAAUyzD,EAAWe,sBAAsB,CAACptD,GAC5C,KACJ,KAAK,cACDpH,EAAUyzD,EAAWgB,uBAAuB,CAACrtD,EAAS,IACtD,KACJ,KAAK,OACDpH,EAAUyzD,EAAWiB,gBAAgB,CAACttD,GACtC,KACJ,KAAK,OACDpH,EAAUyzD,EAAWkB,gBAAgB,CAACvtD,GACtC,KACJ,SACI,IAAIgvC,EAAI3iC,EAAGuI,KAAK,GAChBhc,EAAUo2C,EAAEp2C,OAAO,CACnBo2C,EAAEh2C,OAAO,EAEjB,CAEA,OAAOJ,EAAQlE,IAAI,CACf,UAAU0E,CAAI,EACV,GAAIA,CAAAA,IAAQA,EAAKmV,QAAQ,CAyBrB,OAAOlC,EAAG4K,IAAI,GAxBd,IAAIiN,EAAS,KACb,OAAO9qB,EAAKmV,QAAQ,CAAC7Z,IAAI,CACrB,UAAU0E,CAAI,EACV,GAAIA,GAAQA,EAAK7D,MAAM,CAAG,EACtB,IAAK,IAAI6C,EAAI,EAAGA,EAAIgB,EAAK7D,MAAM,CAAE6C,IAAK,CAElC,GAAI8rB,MAAAA,CADJA,EAAS9qB,CAAI,CAAChB,EAAE,EACL21B,MAAM,EAAY7J,UAAAA,EAAO9qB,IAAI,CAACyuD,WAAW,CAChD,OAAOx7C,EAAGpT,MAAM,CAACirB,GAEjB,IAAI,CAACspC,uBAAuB,CAACtpC,EAAO9qB,IAAI,CAACsa,OAAO,EAChD,IAAI+5C,EAAU/qB,EAAmBkD,IAAI,CAAC1hB,EAAO9qB,IAAI,CAACsa,OAAO,CAAC,OACtD+5C,IACAA,EAAQ5nB,QAAQ,CAAG,GACf4nB,EAAQr0D,IAAI,EACZq0D,CAAAA,EAAQr0D,IAAI,CAACysC,QAAQ,CAAG,EAAG,EAI3C,CAEJ,OAAOzsC,CACX,GAAE1G,IAAI,CAAC,IAAI,EAKvB,GAAEA,IAAI,CAAC,IAAI,EAEnB,EAQAg7D,+BAAgC,WAC5B,OAAQhrB,EAAmB8jB,8BAA8B,EACrD,KAAKR,EAAU1hB,IAAI,CACf,OAAO5B,EAAmBiC,iBAAiB,MAC1CqhB,EAAUnjB,aAAa,CACxB,OAAOH,EAAmBM,iBAAiB,MAC1CgjB,EAAUnhB,gBAAgB,CAC3B,OAAOnC,EAAmBoC,4BAA4B,MACrDkhB,EAAU1gB,gBAAgB,CAC3B,OAAO5C,EAAmBsC,4BAA4B,SAItD,MACR,CACJ,EAOA2oB,sBAAuB,SAAUC,CAAK,EAElC,IAAK,IADD9nD,EAAW,EAAE,CACR1N,EAAI,EAAGA,EAAIw1D,EAAMr4D,MAAM,CAAE6C,IAC9B0N,EAAS9L,IAAI,CAAC4zD,CAAK,CAACx1D,EAAE,CAACqO,EAAE,EAE7B,OAAOX,CACX,EAEA+nD,uBAAwB,SAAUC,CAAQ,EACtCn7B,QAAQC,IAAI,CAAC,8DAAgEk7B,EACjF,EAEAC,eAAgB,WACZp7B,QAAQC,IAAI,CAAC,0CACjB,EAEA46B,wBAAyB,SAAUxtD,CAAO,EACtC,GAAIA,MAAAA,EAA2C,CAC3C,IAAIguD,EAAmBpI,EAAsBuB,QAAQ,CAACnnD,EAAS+lD,GAE/D,GAAIiI,OAAAA,EAA2B,CAE3B,IAAIpE,EAAMlnB,EAAmBkD,IAAI,CAAC5lC,EAAQ,OACtC4pD,GACAoE,CAAAA,EAAmBpE,EAAIxwD,IAAI,CAEnC,CAGA,GAAI40D,CAAoB,GAApBA,GAA+DA,MAAlCA,EAA6D,CAC1F,IAAI1qB,EAAUZ,EAAmBkD,IAAI,CAAC5lC,EAAQ,CAE9C,GAAIsjC,EACA,OAAQ0qB,EAAiB75B,QAAQ,EAC7B,IAAK,WACL,IAAK,eACL,IAAK,OACL,IAAK,eACL,IAAK,yBACL,IAAK,kBACL,IAAK,cACL,IAAK,OACL,IAAK,OACL,IAAK,kBAEGmP,EAAQ2qB,iBAAiB,EAAI3qB,EAAQ5vB,OAAO,EAAI1T,GAChDsjC,EAAQ2qB,iBAAiB,GAE7B,KACJ,KAAK,WACL,IAAK,mBAEG3qB,EAAQ5vB,OAAO,EAAI1T,GACnBsjC,EAAQ4qB,yBAAyB,GAErC,KACJ,KAAK,kBACD5qB,EAAQ6qB,gCAAgC,EAEhD,CAIJvI,EAAsBrqD,MAAM,CAACyE,EACjC,CACJ,CACJ,EAEAouD,kBAAkBpuD,CAAO,EACrB,GAAI,CAAC4lD,EAAsByB,GAAG,CAACrnD,GAC3B,OAAO8oB,EAAkBqhB,iBAAiB,CAACnqC,EAAS2O,EAAAA,CAAeA,CAAC0/C,OAAO,CAACC,IAAI,EAGpF,IAAMC,EAAa,IAAMluD,EAAMc,IAAI,CAAC,CAAC,EAAE4I,EAAgByC,YAAY,CAAC,gBAAgB,CAAC,CAAE,CAAEgiD,YAAaxuD,EAASyuD,KAAM,CAACC,EAAW,GAC3HA,EAAa,IAAI,CAACzH,0BAA0B,CAACjnD,GAGnD,OAFA0uD,EAAWtrB,WAAW,CAAGz0B,EAAAA,CAAeA,CAAC0/C,OAAO,CAACC,IAAI,CAE9CjuD,EACFc,IAAI,CAAC,CAAC,EAAE4I,EAAgByC,YAAY,CAAC,+BAA+B,CAAC,CAAE,CAACxM,EAAQ,EAChFtL,IAAI,CAAC,IACF,IAAMi6D,EAAevtD,EAAShI,IAAI,CAAC,EAAE,QACrC,KAAqBlB,IAAjBy2D,GAA8BD,EAAWh0C,QAAQ,EAAIi0C,EAAajqB,KAAK,CAChEr4B,EAAGpT,MAAM,GAGbmH,EAAqBiG,YAAY,CAAC,CAAE6D,MAAOwkD,CAAW,EACjE,GACCh6D,IAAI,CAAC,IACF,GAAI0M,OAAAA,EAAShI,IAAI,CAACupC,KAAK,CACnB,OAAO4rB,GAEf,GACCh1D,KAAK,CAACg1D,GACN/0D,OAAO,CAAC,IAAMosD,EAAsBrqD,MAAM,CAACyE,GACpD,CACJ,EASI4uD,EAAc,SAAUhF,CAAG,CAAEj1C,CAAQ,CAAEg2C,CAAQ,EAC/C,IAAI,CAACh2C,QAAQ,CAAGA,EAChB,IAAI,CAACvb,IAAI,CAAG,GACZ,IAAI,CAACsa,OAAO,CAAGk2C,EAAIl2C,OAAO,CAC1B,IAAI,CAACmyB,QAAQ,CAAG,GAChB,IAAI,CAAC8kB,QAAQ,CAAGA,GAAY,GAC5B,IAAIrhB,EAAO,IAAI,CACf,IAAI,CAACigB,WAAW,GAAG70D,IAAI,CACnB,SAAU0M,CAAQ,EAGV2kD,EADA3kD,OAAAA,EAAShI,IAAI,EAAagI,KAAkBlJ,IAAlBkJ,EAAShI,IAAI,CAC7BgI,EAAShI,IAAI,CAAGgI,EAAShI,IAAI,CAAG,qBAEhCgI,GAAsB,qBAGpC,IAAIxI,EAAU,IACVgxD,CAAAA,EAAIiF,iBAAiB,EACrBvlB,EAAKlwC,IAAI,CAAGosD,EAAWsJ,MAAM,CAAClF,EAAIjnB,KAAK,EACvC2G,EAAKylB,SAAS,CAAC,IACfn2D,EAAUyT,EAAG4K,IAAI,IAEjBre,EAAU0wC,EAAK0lB,YAAY,CAACpF,EAAIjnB,KAAK,EAGzC/pC,EAAQlE,IAAI,CAAC,WACT40C,EAAK30B,QAAQ,CAACs6C,MAAM,CAAC,CAAEC,KAAM,CAAE,EACnC,EACJ,EACA,WACI5lB,EAAK30B,QAAQ,CAAC1b,MAAM,CAAC,CAAEk2D,WAAY,CAAE,EACzC,EAER,CAEAP,CAAAA,EAAY16D,SAAS,CAAG,CACpBq1D,YAAa,WACT,IAAI50C,EAAWtI,EAAGuI,KAAK,UAEvB,GACID,EAAS3b,OAAO,CAAC+sD,GACVpxC,EAAS/b,OAAO,EAEhByH,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,sCAAwC,IAAInB,OAAOm+C,OAAO,GAElH,EAEAwF,aAAc,SAAUpF,CAAG,EACvB,IAAItgB,EAAO,IAAI,CACX30B,EAAWtI,EAAGuI,KAAK,GAKvB,GAHAzH,EAAeE,IAAI,CAAC,OAAQ,CAAC,0BAA0B,EAAEu8C,GAAOA,EAAIz1B,QAAQ,CAAC,CAAC,EAC9E,IAAI,CAAC/6B,IAAI,CAAGosD,EAAWsJ,MAAM,CAAClF,GAE1BA,EAAInjD,EAAE,CAENwG,EAAqBmiD,QAAQ,CAAC,IAAI,CAAC17C,OAAO,CAAEzG,EAAqBoiD,cAAc,CAAC,IAAI,CAACj2D,IAAI,EAAG,GAAO,IAAM1E,IAAI,CAAC,WAC1G40C,EAAKylB,SAAS,GAAGr6D,IAAI,CAAC,KAClB40C,EAAKlwC,IAAI,CAACk2D,WAAW,CAAG1F,EAAIlvC,QAAQ,CACpC/F,EAAS3b,OAAO,EACpB,EACJ,OACG,CAGCmwC,MAAM,IAAI,CAAC/vC,IAAI,CAACshB,QAAQ,GACxB,KAAI,CAACthB,IAAI,CAACshB,QAAQ,CAAG,EAAC,EAE1B,IAAI8vC,EAAe,CAAEtgD,MAAO,IAAI,CAAC9Q,IAAI,CAErCiH,CAAAA,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjCtF,EAAqBiG,YAAY,CAACmkD,GAAc91D,IAAI,CAAC,SAAU0M,CAAQ,EAC/DA,OAAAA,EAAShI,IAAI,CAACsa,OAAO,EACrB41B,EAAK51B,OAAO,CAAGtS,EAAShI,IAAI,CAACsa,OAAO,CACpC41B,EAAKlwC,IAAI,CAAGosD,EAAWsJ,MAAM,CAAC1tD,EAAShI,IAAI,CAACupC,KAAK,EACjD2G,EAAKylB,SAAS,GACdzlB,EAAKlwC,IAAI,CAACk2D,WAAW,CAAGluD,EAAShI,IAAI,CAACupC,KAAK,CAACjoB,QAAQ,EAEpD4uB,EAAK30B,QAAQ,CAAC1b,MAAM,CAAC,CAAE64C,QAAS1wC,EAAShI,IAAI,CAAC04C,OAAO,CAAE+V,YAAazmD,EAAShI,IAAI,CAACyuD,WAAW,EAErG,EACJ,CAEA,OAAOlzC,EAAS/b,OAAO,EAG3B22D,6BAA8B,SAAUC,CAAmB,CAAEC,CAAiB,EAC1E,GAAID,MAAAA,EACA,IAAK,IAAIp3D,EAAI,EAAGs3D,EAAOF,EAAoBj6D,MAAM,CAAE6C,EAAIs3D,EAAMt3D,IAAK,CAC9D,IAAIu3D,EAAaH,CAAmB,CAACp3D,EAAE,CAEnCw3D,EAAc,KAClB,GAAIH,MAAAA,EACA,IAAK,IAAIh4D,EAAI,EAAGo4D,EAAOJ,EAAkBl6D,MAAM,CAAEkC,EAAIo4D,EAAMp4D,IAEnDg4D,CAAiB,CAACh4D,EAAE,CAAC6F,MAAM,EAAIqyD,EAAWryD,MAAM,EAChDsyD,CAAAA,EAAcH,CAAiB,CAACh4D,EAAE,EAK9C,GAAIk4D,CAAAA,aAAAA,EAAWn5C,QAAQ,EAAmBm5C,qBAAAA,EAAWn5C,QAAQ,GAErDo5C,MAAAA,IACIA,EAAYE,sBAAsB,CAAGH,EAAWG,sBAAsB,EAMtEC,CAAmB,IADF,IAAI,CAACR,4BAA4B,CAACI,EAAWj5C,QAAQ,CAAEk5C,EAAYl5C,QAAQ,GAJ5F,MAAO,EAUvB,CAGJ,MAAO,EACX,EAEAq4C,UAAW,SAAUiB,CAAW,EAC5B,IAAIp3D,EAAUyT,EAAG4K,IAAI,GAErB,GAAI,CAAC,IAAI,CAAC0zC,QAAQ,CAAE,CAChB,IAAI,CAACsF,uBAAuB,CAAG,IAAI,CAACv8C,OAAO,CAC3C,IAAIw8C,EAA0B,IAAI,CAACC,IAAI,GACvCD,EAA0BA,EAAAA,GAA0B1K,EAAWsJ,MAAM,CAACoB,GAIlE,CAACF,GACDE,CAA2B,GAA3BA,GACCA,CAAAA,EAAwBx1C,QAAQ,CAAG,IAAI,CAACthB,IAAI,CAACshB,QAAQ,EACjD,yBAAI,CAACthB,IAAI,CAAC+6B,QAAQ,EACf,CAAqF,GAArF,IAAI,CAACo7B,4BAA4B,CAACW,EAAwBj1C,KAAK,CAAE,IAAI,CAAC7hB,IAAI,CAAC6hB,KAAK,CAAS,EAIjGriB,EAAUitD,EAAeuK,OAAO,CAAC,IAAI,CAAC18C,OAAO,CAAE,IAAI,CAACta,IAAI,CAAE82D,GAA2B,MAAMx7D,IAAI,CAAC,IAC5F,IAAI,CAAC0E,IAAI,CAAGi3D,EACZ,IAAI,CAACxqB,QAAQ,CAAGwqB,EAAaxqB,QAAQ,CACrC,IAAI,CAACzsC,IAAI,CAACysC,QAAQ,CAAGwqB,EAAaxqB,QAAQ,CACtC,MAAkB3tC,IAAlB,IAAI,CAAC2tC,QAAQ,EAAkB,WAAI,CAACA,QAAQ,IAC5C,IAAI,CAACA,QAAQ,CAAG,GAChB,IAAI,CAACzsC,IAAI,CAACysC,QAAQ,CAAG,IAEzB,IAAI,CAACoqB,uBAAuB,CAAG,IAAI,CAACv8C,OAAO,CACtC,IAAI,CAACmyB,QAAQ,EACd,IAAI,CAAC8C,IAAI,EAEjB,IAGA,IAAI,CAAC9C,QAAQ,CAAG,GAChB,IAAI,CAACzsC,IAAI,CAACysC,QAAQ,CAAG,IAGzBjtC,EAAQlE,IAAI,CAAC,KACT,IAAI,CAAC47D,mBAAmB,GACxB7lD,EAAWK,UAAU,CAAC,WAAY,IAAI,CAAC4I,OAAO,CAClD,EACJ,CAEA,OAAO9a,EAAQlE,IAAI,CAAC,KAChB,IAAI,CAACigB,QAAQ,CAAC3b,OAAO,CAAC,CAAE0a,QAAS,IAAI,CAACA,OAAO,CAAEivB,MAAO,IAAI,CAACvpC,IAAI,EACnE,EACJ,EAEAqvC,WAAY,SAAU8nB,CAAI,EAItB,GAFsBA,CADtBA,EAAOA,GAAQ,CAAC,GACWC,eAAe,CAErB,CACjB,IAAI,CAACp3D,IAAI,CAACysC,QAAQ,CAAG,GACrB,IAAI,CAACA,QAAQ,CAAG,GAChB,MACJ,CAEI,IAAI,CAACA,QAAQ,GACb,IAAI,CAACzsC,IAAI,CAACshB,QAAQ,GAClB,IAAI,CAACthB,IAAI,CAACysC,QAAQ,CAAG,GACrB,IAAI,CAACA,QAAQ,CAAG,IAGpBp7B,EAAWK,UAAU,CAAC,eAAgB,IAAI,CAAC4I,OAAO,EAClD,IAAI2mC,EAAa,IAAIhvC,KACrBgvC,EAAW6O,OAAO,CAAC7O,EAAW8O,OAAO,GAAK,GAC1C,IAAI,CAAC/vD,IAAI,CAACgwD,sBAAsB,CAAG/O,EAEnC,IAAI,CAACjhD,IAAI,CAAC2oB,YAAY,CAAG,IAAI1W,IACjC,EAEAolD,aAAc,WACV,OAAO,IAAI,CAACr3D,IAAI,EAAI,QAAI,CAACA,IAAI,CAACshB,QAAQ,EAAU,CAAkB,IAAlB,IAAI,CAACmrB,QAAQ,EAGjEooB,kBAAmB,WACfrI,EAAsBrqD,MAAM,CAAC,IAAI,CAAC00D,uBAAuB,CAC7D,EAEAS,kBAAmB,SAAUC,CAAI,CAAEl8D,CAAK,EACpC,GAAI,qCAAI,CAACm8D,WAAW,EAAuC7jD,EAAU6G,IAAI,GAAG5b,OAAO,CAAC,oBAAsB,IAAM24D,YAAAA,EAAoB,CAChI,IAAI37C,EAAO0tB,EAAmBsC,4BAA4B,CAAC6rB,kBAAkB,CAAC,YAAa,IAAI,CAACn9C,OAAO,CAAE,YACzGgvB,EAAmBsC,4BAA4B,CAAC8rB,MAAM,CAAC97C,EAAK1X,MAAM,CAAE,CAAEkd,SAAU7P,EAAcomD,mBAAmB,CAACt8D,EAAO,EAC7H,QAMA,IAJQ,CAACu8D,aAAa,EAClBtuB,EAAmBkD,IAAI,CAAC,IAAI,CAACorB,aAAa,CAAC,CAACC,aAAa,KAGzD,KAAI,CAAC73D,IAAI,CAACkqB,cAAc,CAACqtC,KACzB,IAAI,CAACv3D,IAAI,CAACu3D,EAAK,CAAGl8D,EAClB,IAAI,CAACg0C,UAAU,GAEX,IAAI,CAACE,IAAI,GAJgB,CAUrC,EAEAD,eAAgB,SAAUwoB,CAAM,EAC5B,IAAI,CAAC93D,IAAI,CAAG83D,CAChB,EAEAvoB,KAAM,SAAUxzC,CAAG,CAAEiE,CAAI,EACrB,IAAI+3D,EAAa,IAAI,CAAClB,uBAAuB,CACzCmB,EAAc,IAAI,CAACh4D,IAAI,CAO3B,OANIjE,GAAOiE,IACP+3D,EAAah8D,EACbi8D,EAAch4D,GAGlBwsD,EAAsByL,KAAK,CAACF,EAAYC,EAAarL,GAC9C,EACX,EAKAoK,KAAM,WACF,IAAMjsC,EAAS0hC,EAAsBuB,QAAQ,CAAC,IAAI,CAAC8I,uBAAuB,CAAElK,UAC5E,OAAI7hC,GAGGA,CACX,EAMAotC,aAAc,SAAUpK,CAAqB,EACzC,IAAIhjC,EAAS0hC,EAAsBuB,QAAQ,CAACD,EAAuBnB,GAInE,OAHe,OAAX7hC,GACAA,CAAAA,EAAS,EAAI,EAEVA,CACX,EAEAqtC,8BAA+B,WAE3B,IAAIC,EAAazkD,EAAU6G,IAAI,GAAG5b,OAAO,CAAC,YAAc,GACpDsrC,EAAUZ,EAAmBa,qBAAqB,CAElDiuB,GAAcluB,GAAYA,CAAAA,KAAAA,EAAQhiC,GAAG,CAAC,IAAI,CAACoS,OAAO,GAAY4vB,OAAAA,EAAQmuB,eAAe,CAAC,IAAI,CAAC/9C,OAAO,CAAS,IAC3GgvB,EAAmBa,qBAAqB,CAACkF,UAAU,GACnD/F,EAAmBa,qBAAqB,CAACoF,IAAI,GAErD,CACJ,EAOA,IAAIuiB,EAAkB,SAAUtB,CAAG,EAC/BgF,EAAY8C,KAAK,CAAC,IAAI,CAAEC,WAExB,IAAI,CAACrB,mBAAmB,CAAG,WACvB5tB,EAAmB0jB,kBAAkB,CAAG,IAAI,CAAC1yC,OAAO,CACpDgvB,EAAmBkD,IAAI,CAAC,IAAI,CAACqqB,uBAAuB,CAAC,CAAG,IAAI,CAC5DvtB,EAAmBa,qBAAqB,CAAG,IAAI,EAGnD,IAAI,CAAC1sB,WAAW,CAAG,CAACxZ,EAAQkY,EAAcq8C,KACtC,IAAMC,EAAqB/L,EACtB5qC,0BAA0B,CAAC,IAAI,CAAC9hB,IAAI,CAAEmc,GACtCS,eAAe,CAAC3Y,EAAQu0D,GACxBl9D,IAAI,CAAC,GACF,KAAIwvB,EAAOhP,kBAAkB,EAAY08C,EAIlClvB,EAAmB0rB,iBAAiB,CAAClqC,EAAOhP,kBAAkB,EAAExgB,IAAI,CACvE,IAAMwvB,EAAOlP,IAAI,CACjB,IAAMkP,EAAOlP,IAAI,EALVkP,EAAOlP,IAAI,EAa9B,OAJI48C,GACAC,EAAmBt4D,KAAK,CAAC,GAAeu4D,GAAuBx4D,EAAW,IAAI,CAACoa,OAAO,CAAErW,EAAQ,IAAI,GAGjGw0D,CACX,EAEA,IAAI,CAACE,SAAS,CAAG,SAAUC,CAAU,EACjC,IAAMhyD,EAAU,iBAAOgyD,GAA2BA,KAAAA,EAAoBA,EAAatvB,EAAmBgD,UAAU,CAC1GlwB,EAAQktB,EAAmBkD,IAAI,CAAC5lC,EAAQ,CAAC5G,IAAI,CAAC6hB,KAAK,CAEnD0vB,EAAM,IAAI,CAACsnB,eAAe,CAACz8C,EAAO,IAGxC,OAFAm1B,EAAIunB,OAAO,CAAClyD,GAEL2qC,CACX,EAEA,IAAI,CAACwnB,sBAAsB,CAAG,SAAU38C,CAAK,EACzC,OAAO,IAAI,CAACy8C,eAAe,CAACz8C,EAAO,IAAMhe,MAAM,CAAC,GAAQouD,EAAsByB,GAAG,CAACnhD,GACtF,EAEA,IAAI,CAAC+rD,eAAe,CAAG,SAAUz8C,CAAK,CAAE48C,CAAqB,EACzD,IAAMC,EAAiBD,EAAwB,WAAa,GACtDE,EAAa,IAAIz8C,EAAAA,CAAeA,CAACL,GAGjC+8C,EAA+BC,CAAAA,EAAAA,EAAAA,CAAAA,IACrC,OAAOF,EAAW96D,MAAM,CAACi7D,EAAAA,CAAwBA,CAAEF,EAF5B,GAAUv9C,EAAKwB,QAAQ,GAAK67C,GAE8Cp3D,GAAG,CAACy3D,EAAAA,CAAoBA,CAC7H,EAMA,IAAI,CAACC,aAAa,CAAG,SAAUn9C,CAAK,EAChC,IAAMo9C,EAAW,CAAEv1D,OAAQ,GAAI48B,WAAY,CAAEwyB,MAAO,EAAK,CAAE,EACrDoG,EAAqB,CAAClkD,EAAAA,CAAeA,CAACC,KAAK,CAACu3C,aAAa,CAAEx3C,EAAAA,CAAeA,CAACC,KAAK,CAACs3C,IAAI,CAAC,CAwB5F,OArBAoM,IADuBz8C,EAAAA,CAAeA,CAACL,GAC5B/e,IAAI,CAAC,IACZ,IAAMuJ,EAAU0yD,CAAAA,EAAAA,EAAAA,CAAAA,EAAqB19C,GACrC,GAAIhV,KAAAA,GAAkB,CAAC6yD,EAAmBt8C,QAAQ,CAACvB,EAAKwB,QAAQ,EAC5D,MAAO,GAGX,IAAM4xB,EAAW,IAAI,CAACkpB,YAAY,CAACtxD,GACnC,GAAI,CAACooC,EACD,MAAO,GAGX,IAAMnO,EAAawrB,EAAqBwH,cAAc,CAAC7kB,EAAU,GAAMpzB,EAAKiE,SAAS,QACrF,CAAIghB,EAAWwyB,KAAK,GAIpBmG,EAASv1D,MAAM,CAAG2C,EAClB4yD,EAAS34B,UAAU,CAAGA,EACf,GACX,GAEO24B,CACX,EAEA,IAAI,CAACE,oBAAoB,CAAG,WACxB,IAAIC,EAA2BtoD,EAAWoG,GAAG,CACzC,sBACA,YACItW,EAAS,IAAI,CAACy4D,iCAAiC,EAC/CD,GACJ,GAAErgE,IAAI,CAAC,IAAI,EAEnB,EAEA,IAAI,CAACugE,eAAe,CAAG,SAAU51D,CAAM,EAEnC,IAAI,CAACy1D,oBAAoB,GAGzB/lD,EAAUw1B,MAAM,CAAC,SAAUllC,EAC/B,EAEA,IAAI,CAAC21D,iCAAiC,CAAG,WACrCvoD,EAAWK,UAAU,CAAC,oCAAqC,CAAC,EAChE,EAEA,IAAI,CAACooD,gBAAgB,CAAG,SAAU3G,CAAa,EAE3C,IAAI4G,EAAgB1oD,EAAWwF,IAAI,CAAC,IAChCmjD,EAAe7G,EAAclvD,MAAM,GAAK0P,EAAUw1B,MAAM,GAAGllC,MAAM,CAAG,uBAAyB,cACjG81D,CAAAA,EAAcH,iCAAiC,CAAG,IAAI,CAACA,iCAAiC,CACxFG,EAAcF,eAAe,CAAG,IAAI,CAACA,eAAe,CAACvgE,IAAI,CAAC,IAAI,CAAE65D,EAAclvD,MAAM,EACpF81D,EAAc3f,cAAc,CAAG+Y,EAActyB,UAAU,CAAC4N,OAAO,CAC/D76B,EAAMwD,QAAQ,CAAC,CACXvG,MAAOkpD,EACPxiD,YAAa,uCAAyCyiD,EAAe,YACzE,EACJ,EAEA,IAAI,CAACC,mBAAmB,CAAG,SAAUC,CAAW,EAC5C,IAAM/kD,EAAW,EAAE,CACbglD,EAAY,iBAAOD,GAA4BA,KAAAA,EAAqBA,EAAc5wB,EAAmBgD,UAAU,CAC/GlwB,EAAQktB,EAAmBkD,IAAI,CAAC2tB,EAAU,CAACn6D,IAAI,CAAC6hB,KAAK,CACrDu4C,EAAiB,IAAI,CAACrB,sBAAsB,CAAC38C,GAGnD,IAAK,IAAMxV,KAFXwzD,EAAetB,OAAO,CAACoB,GAEDE,GAAgB,CAClC,IAAMxF,EAAmB,IAAI,CAACsD,YAAY,CAACtxD,GAE3C,GAAIguD,CAAqB,IAArBA,GAAgEA,MAAlCA,EAA6D,CAGvF7kB,MAAM6kB,EAAiBtzC,QAAQ,GAC/BszC,CAAAA,EAAiBtzC,QAAQ,CAAG,EAAC,EAIjCvN,EAAeE,IAAI,CAAC,OAAQ,mBAC5BhN,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAM0jC,EAAchpC,EAAqBiG,YAAY,CAAC,CAAE6D,MAAO8jD,CAAiB,GAC3Et5D,IAAI,CAACg2D,IACLh2D,IAAI,CAAC++D,IAEVllD,EAASvU,IAAI,CAACovC,EAClB,CACJ,CAEA,OAAO76B,CACX,EAEA,IAAI,CAAC+9C,oBAAoB,CAAG,SAAUrC,CAAQ,MAAEyJ,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAe,OAC3D,IAAI/+C,EAAWtI,EAAGuI,KAAK,EAEO,eAA1B,IAAI,CAACxb,IAAI,CAACgqC,WAAW,EACrB,KAAI,CAAChqC,IAAI,CAACgqC,WAAW,CAAGswB,CAAW,EAGvC,IAAI,CAACjrB,UAAU,GACf,IAAI,CAACE,IAAI,GAGT,IAAI4jB,EAAgB,IAAI,CAACoG,aAAa,CAAC,IAAI,CAACv5D,IAAI,CAAC6hB,KAAK,EAEtD,GAAIsxC,EAActyB,UAAU,CAACwyB,KAAK,CAAE,CAEhC,IAAIkH,EAAc,IAAI,CAACryD,GAAG,CAAChB,EAAajD,MAAM,CAAE,IAC5C0qD,EAAc4L,KAAoC,IAApCA,EAAY17C,cAAc,CAAc07C,EAAY17C,cAAc,CAAG07C,EAAYt8C,WAAW,CAC9GqrB,EAAmBolB,eAAe,CAACmC,EAAU,WAAYlC,GAAarzD,IAAI,CACtE,YACI,IAAM6Z,EAAW,IAAI,CAAC8kD,mBAAmB,CAACpJ,EAAU,IACpDt1C,EAAS3b,OAAO,CAAC,CAAEuV,SAAUlC,EAAGqC,GAAG,CAACH,EAAU,EAClD,GAAE7b,IAAI,CAAC,IAAI,EAEnB,MACIiiB,EAAS1b,MAAM,GACf,IAAI,CAACi6D,gBAAgB,CAAC3G,GAG1B,OAAO53C,EAAS/b,OAAO,EAG3B,IAAI,CAACg7D,+BAA+B,CAAG,SAAUhG,CAAK,EAClDA,EAAQA,GAAS,IAAI,CAACx0D,IAAI,CAAC6hB,KAAK,CAEhC,IAAK,IAAI7iB,EAAI,EAAGA,EAAIw1D,EAAMr4D,MAAM,CAAE6C,IAC9B,GAAIw1D,aAAAA,CAAK,CAACx1D,EAAE,CAACoe,QAAQ,EAAmBo3C,aAAAA,CAAK,CAACx1D,EAAE,CAACoe,QAAQ,CACrD,OAAOo3C,CAAK,CAACx1D,EAAE,CAIvB,IAAK,IAAIy7D,EAAI,EAAGA,EAAIjG,EAAMr4D,MAAM,CAAEs+D,IAC9B,GAAIjG,CAAK,CAACiG,EAAE,CAACn9C,QAAQ,CAACnhB,MAAM,CAAG,EAAG,CAC9B,IAAIu+D,EAAY,IAAI,CAACF,+BAA+B,CAAChG,CAAK,CAACiG,EAAE,CAACn9C,QAAQ,EACtE,GAAIo9C,EACA,OAAOA,CAEf,CAGJ,OAAO,IACX,EAGA,IAAI,CAACC,YAAY,CAAG,SAAUC,CAAa,EACvC,IAAMx+C,EAAQpe,MAAMmsB,OAAO,CAACywC,GAAiBA,EAAgB,IAAI,CAAC56D,IAAI,CAAC6hB,KAAK,CAG5E,OAAOq3C,IAFgBz8C,EAAAA,CAAeA,CAACL,GAErB/e,IAAI,CAAC,GAAOkgB,EAAEH,QAAQ,GAAK7H,EAAAA,CAAeA,CAACC,KAAK,CAACE,QAAQ,EAAI6H,EAAEH,QAAQ,GAAK7H,EAAAA,CAAeA,CAACC,KAAK,CAACmH,QAAQ,CAChI,EAEA,IAAI,CAACk+C,WAAW,CAAG,SAAU/tD,CAAE,CAAE8tD,CAAa,EAC1C,IAAMx+C,EAAQpe,MAAMmsB,OAAO,CAACywC,GAAiBA,EAAgB,IAAI,CAAC56D,IAAI,CAAC6hB,KAAK,CACtE/E,EAAQ,IAAIL,EAAAA,CAAeA,CAACL,GAAOW,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAASlQ,IAE7D,GAAIgQ,OAAAA,EACA,MAAO,EAAE,CAGb,IAAMg+C,EAAQh+C,EAAMjB,OAAO,CAACha,GAAG,CAAC,GAAO0b,EAAErZ,MAAM,EAG/C,OAFA42D,EAAMhC,OAAO,CAAChsD,GAEPguD,CACX,EAcA,IAAI,CAAC5yD,GAAG,CAAG,SAAU4E,CAAE,CAAEiuD,CAAS,CAAEH,CAAa,EAC7C,IAAMx+C,EAAQpe,MAAMmsB,OAAO,CAACywC,GAAiBA,EAAgB,IAAI,CAAC56D,IAAI,CAAC6hB,KAAK,CACtEq3C,EAAa,IAAIz8C,EAAAA,CAAeA,CAACL,GAEvC,GAAI,CAAC2+C,EAAW,CACZ,IAAMj+C,EAAQo8C,EAAW77D,IAAI,CAAC2f,CAAAA,EAAAA,EAAAA,CAAAA,EAASlQ,IACvC,OAAOgQ,OAAAA,EAAiBA,EAAQ,EACpC,CAEA,IAAMA,EAAQo8C,EAAWn8C,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAASlQ,IAC7C,GAAIgQ,OAAAA,EACA,OAAO,GAGX,IAAMk+C,EAA0Bl+C,EAAMjB,OAAO,CAAC1f,MAAM,EAAI,EAClD0f,EAAUiB,EAAMjB,OAAO,CAAC1f,MAAM,CAAG,EAAI,CAAEgiB,OAAQrB,EAAMjB,OAAO,CAAC,EAAE,CAAEo/C,WAAYn+C,EAAMjB,OAAO,CAACiB,EAAMjB,OAAO,CAAC1f,MAAM,CAAG,EAAE,EAAKigB,EAE/H,MAAO,CACH8+C,YAAaF,EACbp/C,KAAMkB,EAAMlB,IAAI,CAChBC,QAASA,CACb,CACJ,EAEA,IAAI,CAACw8C,eAAe,CAAG,SAAUvrD,CAAE,EAC/B,OAAO,IAAI2P,EAAAA,CAAeA,CAAC,IAAI,CAACzc,IAAI,CAAC6hB,KAAK,EAAExkB,IAAI,CAAC,GAAOkgB,EAAEsB,cAAc,GAAK/R,EACjF,EAEA,IAAI,CAACouD,WAAW,CAAG,SAAUpuD,CAAE,CAAE8tD,CAAa,EAE1C,MAAOx+C,CADOpe,MAAMmsB,OAAO,CAACywC,GAAiBA,EAAgB,IAAI,CAAC56D,IAAI,CAAC6hB,KAAK,EAC/Di4B,IAAI,CAAC98B,CAAAA,EAAAA,EAAAA,CAAAA,EAASlQ,GAC/B,EAEA,IAAI,CAAC+nD,iBAAiB,CAAG,WACrB,IAAIsG,EAA2B,EAAE,CACjCA,EAAyBv6D,IAAI,CAAC,IAAI,CAACi2D,uBAAuB,EAC1DsE,EAA2B,IAAI,CAACxC,SAAS,CAAC,IAAI,CAAC9B,uBAAuB,EAEtE,IAAK,IAAI4D,EAAI,EAAGA,EAAIU,EAAyBh/D,MAAM,CAAEs+D,IACjDjO,EAAsBrqD,MAAM,CAACg5D,CAAwB,CAACV,EAAE,CAEhE,EAEA,IAAI,CAACW,cAAc,CAAG,SAAUtuD,CAAE,EAC9B,OAAO,IAAI,CAACouD,WAAW,CAACpuD,EAC5B,EAEA,IAAI,CAACpM,GAAG,CAAG,SAAU8vD,CAAG,EACpB,OAAO,IAAI,CAAC6K,yBAAyB,GAAG//D,IAAI,CAAC,IAElCggE,EADqCx5C,0BAA0B,CAAC,IAAI,CAAC9hB,IAAI,CAAE,IAAI2G,EAAAA,CAAYA,CAAC,IAAI,CAAC2T,OAAO,GAC5FgG,OAAO,CAAC,IAAI,CAACi7C,sBAAsB,CAAC/K,IAAMl1D,IAAI,CAAC,GAAOiiB,EAAErZ,MAAM,EAEzF,EAEA,IAAI,CAACs3D,SAAS,CAAG,SAAUhL,CAAG,CAAEhwC,CAAQ,EACpC,OAAO,IAAI,CAAC66C,yBAAyB,GAAG//D,IAAI,CAAC,IAElCggE,EADqCx5C,0BAA0B,CAAC,IAAI,CAAC9hB,IAAI,CAAE,IAAI2G,EAAAA,CAAYA,CAAC,IAAI,CAAC2T,OAAO,GAC5FiG,aAAa,CAAC,IAAI,CAACg7C,sBAAsB,CAAC/K,GAAMhwC,GAAUllB,IAAI,CAAC,GAAOiiB,EAAErZ,MAAM,EAEzG,EAEA,IAAI,CAACq3D,sBAAsB,CAAG,SAAUE,CAAO,EAC3C,IAAM/7C,EAAgB0sC,EAAWsJ,MAAM,CAAC+F,GAIxC,MAHgC,KAA5B/7C,EAAcG,SAAS,EACvBH,CAAAA,EAAcG,SAAS,CAAGhd,EAAqBS,SAAS,CAAC,6BAA4B,EAElFoc,CACX,EAEA,IAAI,CAACqB,eAAe,CAAG,SAAUjU,CAAE,CAAEhH,CAAK,EAEtC,OAAOw1D,EADqCx5C,0BAA0B,CAAC,IAAI,CAAC9hB,IAAI,CAAE,IAAI2G,EAAAA,CAAYA,CAAC,IAAI,CAAC2T,OAAO,GAC5FyG,eAAe,CAACjU,EAAIhH,GAAOxK,IAAI,CAAC,KAC1C,IAAI,CAACmxC,QAAQ,EACd,IAAI,CAAC8C,IAAI,EAEjB,EACJ,EAEA,IAAI,CAACmsB,eAAe,CAAG,SAAUC,CAAa,CAAEnH,CAAK,CAAEoH,CAAe,EAIlE,IAFIC,EACAC,EACAC,EAAqB,CAAC,WAAY,WAAY,mBAAmB,CAErE,GAAIvH,IAAAA,EAAMr4D,MAAM,CACZ,MAAO,GAIX,IADA0/D,EAAmBG,EAAe,EAC3BH,GAAoB,GAAG,CAC1B,GAAIE,EAAAA,EAAmBn9D,OAAO,CAAC41D,CAAK,CAACqH,EAAiB,CAACz+C,QAAQ,CAACzK,WAAW,IACvE,OAAO6hD,CAAK,CAACqH,EAAiB,CAC3B,GAAID,GACPE,CAAAA,EAAc,IAAI,CAACtB,+BAA+B,CAAChG,CAAK,CAACqH,EAAiB,CAACv+C,QAAQ,GAE/E,OAAOw+C,CAGfD,CAAAA,GACJ,CAGA,IADAA,EAAmBG,EAAe,EAC3BH,EAAmBrH,EAAMr4D,MAAM,EAAE,CACpC,GAAI4/D,EAAAA,EAAmBn9D,OAAO,CAAC41D,CAAK,CAACqH,EAAiB,CAACz+C,QAAQ,CAACzK,WAAW,IACvE,OAAO6hD,CAAK,CAACqH,EAAiB,CAC3B,GAAID,GACPE,CAAAA,EAAc,IAAI,CAACtB,+BAA+B,CAAChG,CAAK,CAACqH,EAAiB,CAACv+C,QAAQ,GAE/E,OAAOw+C,CAGfD,CAAAA,GACJ,CAEA,MAAO,EACX,EAEA,IAAI,CAACI,WAAW,CAAG,SAAUnvD,CAAE,EAC3B,IAGI6uD,EACAO,EAJAxB,EAAY,IAAI,CAACxyD,GAAG,CAAC4E,EAAI,IACzB0T,EAAWk6C,EAAU7+C,OAAO,CAACsC,MAAM,CAAGu8C,EAAU7+C,OAAO,CAACsC,MAAM,CAACja,MAAM,CAAG,WAc5E,CATAw2D,EAAU7+C,OAAO,CAAG6+C,EAAU7+C,OAAO,CAACsC,MAAM,CAAGu8C,EAAU7+C,OAAO,CAACsC,MAAM,CAACb,QAAQ,CAAGo9C,EAAU7+C,OAAO,CAGpG8/C,EAAgBjB,EAAU7+C,OAAO,CAACjd,OAAO,CAAC87D,EAAU9+C,IAAI,EAMpD,CAHJsgD,EAAU,IAAI,CAACR,eAAe,CAACC,EAAejB,EAAU7+C,OAAO,CAVzC,CAAC2E,EAUyD,IAGhEA,GAIT07C,EAHI,IAAI,CAACD,WAAW,CAACz7C,EAIhC,EAEA,IAAI,CAACre,MAAM,CAAG,SAAU2K,CAAE,EACtB,OAAO,IAAI,CAACuuD,yBAAyB,GAAG//D,IAAI,CAAC,IAElCggE,EADqCx5C,0BAA0B,CAAC,IAAI,CAAC9hB,IAAI,CAAE,IAAI2G,EAAAA,CAAYA,CAAC,IAAI,CAAC2T,OAAO,GAC5FwE,cAAc,CAAChS,GAE1C,EAEA,IAAI,CAACqvD,eAAe,CAAG,SAAUl4D,CAAM,CAAEmY,CAAK,EAC1C,IAAI+B,EAAS,KACb,IAAK,IAAInf,EAAI,EAAGC,EAAImd,EAAMjgB,MAAM,CAAEyf,EAAM5c,EAAIC,IAGxCkf,CAAAA,EAASvC,KAAAA,CAFTA,EAAOQ,CAAK,CAACpd,EAAE,EAEDse,QAAQ,CAAC5G,kBAAkB,CAAC,SAAUzS,GAAiB2X,EAAO,IAAI,CAACugD,eAAe,CAACl4D,EAAQ2X,EAAK0B,QAAQ,GAH3Ete,KAS/C,OAAOmf,CACX,EAEA,IAAI,CAACk9C,yBAAyB,CAAG,IAGtB1/D,CAFQ,IAAI,CAAC8wC,QAAQ,CAAGx5B,EAAGrT,OAAO,GAAK,IAAI,CAACszD,oBAAoB,CAAC,IAAI,CAAC54C,OAAO,CAAE,IAAI,CAACta,IAAI,CAACgqC,WAAW,GAE7F1uC,IAAI,CAAC,KACe,IAA1B,IAAI,CAAC0E,IAAI,CAACk2D,WAAW,EAAU,IAAI,CAACl2D,IAAI,CAACgqC,WAAW,GAAKz0B,EAAAA,CAAeA,CAAC0/C,OAAO,CAACmH,SAAS,EAC1F,IAAI,CAAC/sB,UAAU,CAAC,CAAE+nB,gBAAiB,EAAK,EAEhD,GAGJ,IAAI,CAACiF,kBAAkB,CAAG,CAACp4D,EAAQ6G,IACxB,IAAI,CAACuwD,yBAAyB,GAAG//D,IAAI,CAAC,IAElCggE,EADqCx5C,0BAA0B,CAAC,IAAI,CAAC9hB,IAAI,CAAE,IAAI2G,EAAAA,CAAYA,CAAC,IAAI,CAAC2T,OAAO,GAC5FqE,sBAAsB,CAAC1a,EAAQ6G,IAI1D,IAAI,CAACwxD,kBAAkB,CAAG,GACf,IAAI,CAACjB,yBAAyB,GAAG//D,IAAI,CAAC,IAElCggE,EADqCx5C,0BAA0B,CAAC,IAAI,CAAC9hB,IAAI,CAAE,IAAI2G,EAAAA,CAAYA,CAAC,IAAI,CAAC2T,OAAO,GAC5F2G,sBAAsB,CAAChd,IAIlD,IAAI,CAACid,WAAW,CAAG,GACR,IAAI,CAACm6C,yBAAyB,GAAG//D,IAAI,CAAC,IAElCggE,EADqCx5C,0BAA0B,CAAC,IAAI,CAAC9hB,IAAI,CAAE,IAAI2G,EAAAA,CAAYA,CAAC,IAAI,CAAC2T,OAAO,GAC5F4G,WAAW,CAACjd,IAUvC,IAAI,CAACs4D,SAAS,CAAG,CAACC,EAAYC,EAAcC,KACxC,IAAM5/C,EAAQ,IAAIL,EAAAA,CAAeA,CAAC,IAAI,CAACzc,IAAI,CAAC6hB,KAAK,EAAE9E,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAASw/C,EAAWt4D,MAAM,GACxF,GAAI4Y,OAAAA,EACA,MAAO,GAGX,IAAM6/C,EAAa7/C,EAAMjB,OAAO,CAAC1f,MAAM,CAAG,EAAI2gB,EAAMjB,OAAO,CAAC,EAAE,CAACyB,QAAQ,CAAG,IAAI,CAACtd,IAAI,CAAC6hB,KAAK,CACnFrjB,EAAQm+D,EAAW/9D,OAAO,CAACke,EAAMlB,IAAI,EAC3C+gD,EAAW97D,MAAM,CAACrC,EAAO,GAGzB,IAAMo+D,EAAgBC,OADIJ,EACgBC,EAASvgE,MAAM,CAAGugE,EAAS57C,SAAS,CAAC9D,CAAAA,EAAAA,EAAAA,CAAAA,EAASy/C,IAExF,OADAC,EAAS77D,MAAM,CAAC+7D,EAAe,EAAGJ,GAC3B,EACX,EAMA,IAAI,CAACM,oBAAoB,CAAG,SAAU3vD,CAAY,EAC9C,IAAMqvD,EAAa,IAAI,CAACt0D,GAAG,CAACiF,EAAa4vD,YAAY,CAAE,GAAM,IAAI,CAAC/8D,IAAI,CAAC6hB,KAAK,EAC5E,GAAI26C,KAAAA,EACA,OAAOvpD,EAAGpT,MAAM,CAAC,MAAU,gCAE/B,GAAI,CAAC,IAAI,CAACm9D,cAAc,CAACR,GACrB,OAAOvpD,EAAGpT,MAAM,CAAC,MAAU,0BAG/B,IAAIo9D,EAAiB,GACjBP,EAAW,KACX1+D,MAAMmsB,OAAO,CAACqyC,EAAW3gD,OAAO,GAChCohD,EAAiB,IAAI,CAAC3iD,OAAO,CAC7BoiD,EAAWF,EAAW3gD,OAAO,GAE7BohD,EAAiBT,EAAW3gD,OAAO,CAACsC,MAAM,CAACF,WAAW,CACtDy+C,EAAWF,EAAW3gD,OAAO,CAACsC,MAAM,CAACb,QAAQ,EAGjD,IAAM4/C,EAAmB,CAAE7vD,GAAIF,EAAa4vD,YAAY,EAQxD,OAPkC,OAA9B5vD,EAAasvD,YAAY,EACzBS,CAAAA,EAAiBC,MAAM,CAAGhwD,EAAasvD,YAAY,EAEtB,OAA7BtvD,EAAaiwD,WAAW,EACxBF,CAAAA,EAAiBG,KAAK,CAAGlwD,EAAaiwD,WAAW,EAG9Cp2D,EAAqBkG,iBAAiB,CAAC+vD,EAAgBC,GAAkB5hE,IAAI,CAAC,KAEjF,GAAI,CADW,IAAI,CAACihE,SAAS,CAACC,EAAW5gD,IAAI,CAAEzO,EAAasvD,YAAY,CAAEC,GAEtE,MAAM,MAAU,4CAExB,EACJ,EAEA,IAAI,CAACM,cAAc,CAAG,SAAUh9D,CAAI,QAC5BA,CAAAA,IAAQA,EAAK6b,OAAO,GAAI,CAAC7b,EAAK6b,OAAO,CAACo/C,UAAU,GAAI,CAACj7D,EAAK6b,OAAO,CAACsC,MAAM,EACpEne,IAAAA,EAAK6b,OAAO,CAAC1f,MAAM,CAMnC,EAEImhE,EAAiB,WAGjB,SAASA,EAAe9M,CAAG,CAAEgH,CAAW,EACpC,IAAI,CAACA,WAAW,CAAGA,GAAe,KAClC,IAAI,CAAC+F,gBAAgB,CAAG,GACxB/H,EAAY8C,KAAK,CAAC,IAAI,CAAEC,UAC5B,CANA5/D,EAAQsC,WAAW,CAACqiE,EAAgB9H,GAQpC8H,EAAexiE,SAAS,CAAC0iE,6BAA6B,CAAG,WACrD,IAAK,IAAIx+D,EAAI,EAAGA,EAAI,IAAI,CAACgB,IAAI,CAACy9D,QAAQ,CAACthE,MAAM,CAAE6C,IAE3C,IAAK,IADD0+D,EAAsB,IAAI,CAAC19D,IAAI,CAACy9D,QAAQ,CAACz+D,EAAE,CACtCX,EAAI,EAAGA,EAAIq/D,EAAoBD,QAAQ,CAACthE,MAAM,CAAEkC,IAAK,CAC1D,IAAIs/D,EAAgBD,EAAoBD,QAAQ,CAACp/D,EAAE,CACnDkT,EAAcisD,6BAA6B,CAACG,EAAe,IAAI,CAAC39D,IAAI,CACxE,CAGJ,IAAI,CAACqvC,UAAU,GACf,IAAI,CAACE,IAAI,GACTl+B,EAAWK,UAAU,CAAC,kBAC1B,EAEA4rD,EAAexiE,SAAS,CAACo8D,mBAAmB,CAAG,WAC3C5tB,EAAmB2jB,YAAY,CAAG,IAAI,CAAC3yC,OAAO,CAC9CgvB,EAAmBkD,IAAI,CAAC,IAAI,CAACqqB,uBAAuB,CAAC,CAAG,IAAI,CAC5DvtB,CAAkB,CAAC,IAAI,CAACkuB,WAAW,CAAC,CAAG,IAAI,EAG/C8F,EAAexiE,SAAS,CAACoN,GAAG,CAAG,SAAUqpC,CAAG,SACxC,IAAQ,CAACvxC,IAAI,EAAI,IAAI,CAACA,IAAI,CAACy9D,QAAQ,EAAIlsB,EAC5B,IAAI,CAACqsB,WAAW,CAACrsB,EAAK,IAAI,CAACvxC,IAAI,CAACy9D,QAAQ,EAE5C,EACX,EAEAH,EAAexiE,SAAS,CAAC8iE,WAAW,CAAG,SAAUrsB,CAAG,CAAE9jB,CAAI,EACtD,GAAIA,GAAQ8jB,EACR,KAAK,IAAIvyC,EAAI,EAAGA,EAAIyuB,EAAKtxB,MAAM,CAAE6C,IAC7B,GAAIuyC,EAAIssB,YAAY,EAAIpwC,CAAI,CAACzuB,EAAE,CAACqO,EAAE,GAAKkkC,EAAIssB,YAAY,CAAE,CACrD,IAAIH,EAAsBjwC,CAAI,CAACzuB,EAAE,CACjC,IAAIuyC,EAAIusB,OAAO,CAuBX,MAAO,CAAEC,WAAYL,EAAqBM,MAAO,KAAMC,aAAc,IAAK,EAtB1E,IAAK,IAAI5/D,EAAI,EAAGA,EAAIq/D,EAAoBD,QAAQ,CAACthE,MAAM,CAAEkC,IAAK,CAC1D,GAAIq/D,EAAoBD,QAAQ,CAACp/D,EAAE,CAACgP,EAAE,GAAKkkC,EAAIusB,OAAO,CAAE,CACpD,IAAII,EAAQR,EAAoBD,QAAQ,CAACp/D,EAAE,CAAC8/D,cAAc,CACpDT,EAAoBD,QAAQ,CAACp/D,EAAE,CAAC8/D,cAAc,CAC9CT,EAAoBD,QAAQ,CAACp/D,EAAE,CACrC,MAAO,CACH0/D,WAAYL,EACZM,MAAOE,EACPD,aAAcP,EAAoBD,QAAQ,CAACp/D,EAAE,CAAC8/D,cAAc,CAAGT,EAAoBD,QAAQ,CAACp/D,EAAE,CAAG,IACrG,CACJ,CAEA,GAAIq/D,8BAAAA,EAAoBD,QAAQ,CAACp/D,EAAE,CAAC+/D,WAAW,CAAkC,CAE7E,IAAIC,EAAgB,IAAI,CAACT,WAAW,CAACrsB,EAAKmsB,EAAoBD,QAAQ,CAACp/D,EAAE,CAACigE,QAAQ,EAElF,GAAID,IAAAA,EACA,OAAOA,CAEf,CACJ,CAIR,MAGI,IAAK,IADDE,EAAa9wC,CAAI,CAACzuB,EAAE,CACf0wC,EAAI,EAAGA,EAAI6uB,EAAWd,QAAQ,CAACthE,MAAM,CAAEuzC,IAC5C,GAAI6uB,8BAAAA,EAAWd,QAAQ,CAAC/tB,EAAE,CAAC0uB,WAAW,CAAkC,CACpE,IAAII,EAAoB,IAAI,CAACZ,WAAW,CAACrsB,EAAKgtB,EAAWd,QAAQ,CAAC/tB,EAAE,CAAC4uB,QAAQ,EAE7E,GAAIE,IAAAA,EACA,OAAOA,CAEf,CAGZ,CAGJ,OAAO,EACX,EAEAlB,EAAexiE,SAAS,CAAC2jE,cAAc,CAAG,SAAUz+D,CAAI,CAAE8F,CAAK,EAC3D9F,EAAK4f,KAAK,CAAG9Z,EACb,IAAI,CAACupC,UAAU,EACnB,EAEAiuB,EAAexiE,SAAS,CAAC4jE,WAAW,CAAG,SAAU5xD,CAAE,EAC/C,OAAO,IAAI,CAAC9M,IAAI,CAACy9D,QAAQ,CAAC57D,GAAG,CAAC,SAAU6tC,CAAC,EACrC,OAAOA,EAAEriC,EAAE,GACZzO,OAAO,CAACkO,EACf,EAMA,IAAI6xD,EAAiB,CACjBC,oBAAqBtS,EAAeuS,cAAc,CAClDC,QANJ,SAA6BC,CAAQ,EACjCC,EAAoBD,EAAU,CAAC,KAAK,CACxC,CAKA,EA6TA,OA3TAzB,EAAexiE,SAAS,CAACmkE,gBAAgB,CAAG,SAAUC,CAAU,CAAEC,CAAO,CAAEC,CAAmB,EAC1F,IAAIC,EAAoBr5C,QAAQ0N,IAAI,CAACwrC,GACjCI,EAAWD,EAAkBhyD,EAAE,CAInC,GAHAgyD,EAAkBhyD,EAAE,CAAGkE,EAAcoR,IAAI,GAGrC08C,EAAkB5B,QAAQ,CAACthE,MAAM,CAAG,EAAG,CACvCkjE,EAAkBE,aAAa,CAAG,GAClC,IAAI/gE,EAAQ6gE,EAAkB5B,QAAQ,CAAC/mD,kBAAkB,CAAC,KAAMyoD,GAEhE,GAAI3gE,KAAAA,EAAc,CACd,IAAI0/D,EAAQmB,EAAkB5B,QAAQ,CAACj/D,EAAM,CAC7C6gE,EAAkB5B,QAAQ,CAACthE,MAAM,CAAG,EACpCkjE,EAAkB5B,QAAQ,CAAC78D,IAAI,CAACs9D,GAEhC3sD,EAAciuD,gBAAgB,CAACH,EAAmBnB,EAAME,WAAW,CAAEgB,GACrEC,EAAkBI,iBAAiB,CAAG,EAC1C,CACJ,CAEA,IAAIV,EAAWM,EAAkB5B,QAAQ,CAAC,EAAE,CAC5C,CAACkB,CAAc,CAACI,EAASX,WAAW,CAAC,EAAIO,EAAe,OAAU,EAAEI,GACpE,IAAIW,EAAaX,EAAS1xD,EAAE,CAQ5B,OANA,IAAI,CAACsyD,mBAAmB,CAACL,EAAUD,EAAmB,UACtD,IAAI,CAAChwB,UAAU,GACf,IAAI,CAACE,IAAI,GAET,IAAI,CAACqwB,YAAY,CAAC,IAEX,CAAE/B,aAAcwB,EAAkBhyD,EAAE,CAAEywD,QAAS4B,CAAW,CACrE,EAEApC,EAAexiE,SAAS,CAAC6kE,mBAAmB,CAAG,SAAUL,CAAQ,CAAEJ,CAAU,CAAE1xC,CAAQ,EACnF,IAAIS,EAEAqxC,EACI9xC,QAAAA,GACAS,EAAW,IAAI,CAACywC,WAAW,CAACY,GAC5B,IAAI,CAACt/D,IAAI,CAACy9D,QAAQ,CAAC58D,MAAM,CAACotB,EAAU,EAAGixC,IACnB,WAAb1xC,IACPS,EAAW,IAAI,CAACywC,WAAW,CAACY,GAC5B,IAAI,CAACt/D,IAAI,CAACy9D,QAAQ,CAAC58D,MAAM,CAACotB,EAAW,EAAG,EAAGixC,IAG/C,IAAI,CAACl/D,IAAI,CAACy9D,QAAQ,CAAC78D,IAAI,CAACs+D,EAEhC,EAEA5B,EAAexiE,SAAS,CAAC+kE,MAAM,CAAG,SAAUrP,CAAG,CAAEsP,CAAc,CAAEtyC,CAAQ,EACrE,IACIuyC,EAAkB,IAAI,CAAC73D,GAAG,CAAC,CAAE21D,aAAciC,CAAe,GAAG/B,UAAU,CAE3E,GAAI,qCAAI,CAACvG,WAAW,CAEhB,IAAIwI,EAAW,IAAI5T,EAAW6T,wBAAwB,CAClD1uD,EAAc2uD,iBAAiB,CAAC1P,EAAIz1B,QAAQ,CAAE,IAAI,CAACwiC,gBAAgB,EACnEhsD,EAAc4uD,6BAA6B,CAAC3P,EAAIz1B,QAAQ,EACxDxpB,EAAc6uD,gBAAgB,CAAC5P,EAAIz1B,QAAQ,EAC3CxpB,EAAc8uD,oBAAoB,CAAC7P,EAAIz1B,QAAQ,QAInD,IAAIilC,EAAW,IAAI5T,EAAWkU,aAAa,CACvC/uD,EAAc2uD,iBAAiB,CAAC1P,EAAIz1B,QAAQ,CAAE,IAAI,CAACwiC,gBAAgB,EACnEhsD,EAAc4uD,6BAA6B,CAAC3P,EAAIz1B,QAAQ,EACxDxpB,EAAc6uD,gBAAgB,CAAC5P,EAAIz1B,QAAQ,EAC3CxpB,EAAc8uD,oBAAoB,CAAC7P,EAAIz1B,QAAQ,GAIvD,IAAIpF,EAAOy2B,EAAWsJ,MAAM,CAAClF,GAO7B,MANyB,iCAArB,IAAI,CAACgH,WAAW,EAChBjmD,EAAcisD,6BAA6B,CAAC7nC,EAAM,IAAI,CAAC31B,IAAI,EAE/DggE,EAASvC,QAAQ,CAAC78D,IAAI,CAAC+0B,GACvB,IAAI,CAACgqC,mBAAmB,CAACI,EAAkBA,EAAgB1yD,EAAE,CAAG,KAAM2yD,EAAUxyC,GAEzE,CAAEqwC,aAAcmC,EAAS3yD,EAAE,CAAEywD,QAASnoC,EAAKtoB,EAAE,CACxD,EAEAiwD,EAAexiE,SAAS,CAACylE,QAAQ,CAAG,SAAU/P,CAAG,CAAEsP,CAAc,CAAEtyC,CAAQ,EAEvE,IADImI,EACAqqC,EAAW,IAAI,CAAC93D,GAAG,CAAC,CAAE21D,aAAciC,CAAe,GAAG/B,UAAU,CAWpE,OAVApoC,EAAO66B,KAAiB1xD,IAAjB0xD,EAAIz1B,QAAQ,CAAiBqxB,EAAWsJ,MAAM,CAAClF,GAAOA,EAEzDhjC,SAAAA,EACAwyC,EAASvC,QAAQ,CAAC3E,OAAO,CAACnjC,GACN,UAAbnI,GACPwyC,EAASvC,QAAQ,CAAC78D,IAAI,CAAC+0B,GAG3BqqC,EAAST,aAAa,CAAG,GAElB,CAAE1B,aAAcmC,EAAS3yD,EAAE,CAAEywD,QAASnoC,EAAKtoB,EAAE,CACxD,EAEAiwD,EAAexiE,SAAS,CAAC4F,GAAG,CAAG,SAAU8vD,CAAG,CAAEsP,CAAc,CAAEtyC,CAAQ,EAClE,IAAI+jB,QAEA,CAAC,MAAO,SAAUzyC,KAAAA,EAAU,CAACF,OAAO,CAAC4uB,GAAY,GACjD+jB,EAAM,IAAI,CAACsuB,MAAM,CAACrP,EAAKsP,EAAgBtyC,GAGlC,CAAC,OAAQ,QAAQ,CAAC5uB,OAAO,CAAC4uB,GAAY,IAC3C+jB,CAAAA,EAAM,IAAI,CAACgvB,QAAQ,CAAC/P,EAAKsP,EAAgBtyC,EAAQ,EAGrD,IAAI,CAAC6hB,UAAU,GACf,IAAI,CAACuwB,YAAY,CAAC,IAElBvuD,EAAWK,UAAU,CAAC,2BAElB,IAAI,CAAC69B,IAAI,GACFgC,CAIf,EAGA+rB,EAAexiE,SAAS,CAAC8kE,YAAY,CAAG,WAAa,EAErDtC,EAAexiE,SAAS,CAAC0lE,gBAAgB,CAAG,SAAUC,CAAM,CAAEC,CAAS,EACnE,IAAIC,EAEJ,GAAID,QAAAA,SAEA,IADAC,CAAAA,EAAiB,IAAI,CAACjC,WAAW,CAAC+B,GAAU,IAIrC,IAAI,CAACzgE,IAAI,CAACy9D,QAAQ,CAACkD,EAAe,CAACC,iBAAiB,EAInEtD,EAAexiE,SAAS,CAAC+lE,MAAM,CAAG,SAAUtvB,CAAG,CAAE/jB,CAAQ,CAAEizC,CAAM,EAC7D,IAAIE,EACAzoC,EAAQlS,QAAQ0N,IAAI,CAAC,IAAI,CAACxrB,GAAG,CAACqpC,IAQlC,GANKkvB,GACDE,CAAAA,EAAiB,IAAI,CAACjC,WAAW,CAACntB,EAAIssB,YAAY,GAGtD,IAAI,CAAC17D,MAAM,CAACovC,GAER,CAAC,MAAO,SAAS,CAAC3yC,OAAO,CAAC4uB,GAAY,IActC,GAbIizC,GACAE,CAAAA,EAAiB,IAAI,CAACjC,WAAW,CAAC+B,EAAM,EAG3B,QAAbjzC,GAAuBizC,GACvBE,CAAAA,GAAkB,GAGL,WAAbnzC,GACAmzC,CAAAA,GAAkB,GAIlBzoC,EAAM6lC,UAAU,CAACN,QAAQ,CAACthE,MAAM,CAAG,GAAKskE,EAAQ,CAChD,GAAI,qCAAI,CAACjJ,WAAW,CAEhB,IAAIwI,EAAW,IAAI5T,EAAW6T,wBAAwB,CAClD1uD,EAAc2uD,iBAAiB,CAAChoC,EAAM8lC,KAAK,CAACI,WAAW,EACvD7sD,EAAc4uD,6BAA6B,CAACjoC,EAAM8lC,KAAK,CAACI,WAAW,EACnE7sD,EAAc6uD,gBAAgB,CAACloC,EAAM8lC,KAAK,CAACjjC,QAAQ,EACnDxpB,EAAc8uD,oBAAoB,CAACnoC,EAAM8lC,KAAK,CAACjjC,QAAQ,QAI3D,IAAIilC,EAAW,IAAI5T,EAAWkU,aAAa,CACvC/uD,EAAc2uD,iBAAiB,CAAChoC,EAAM8lC,KAAK,CAACI,WAAW,EACvD7sD,EAAc4uD,6BAA6B,CAACjoC,EAAM8lC,KAAK,CAACI,WAAW,EACnE,GACA7sD,EAAc8uD,oBAAoB,CAACnoC,EAAM8lC,KAAK,CAACjjC,QAAQ,GAI/DilC,EAASvC,QAAQ,CAAC78D,IAAI,CAACs3B,EAAM8lC,KAAK,EAClC,IAAI,CAACh+D,IAAI,CAACy9D,QAAQ,CAAC58D,MAAM,CAAC8/D,EAAgB,EAAGX,GAC7CzuB,EAAM,CAAEssB,aAAcmC,EAAS3yD,EAAE,CAAEywD,QAAS5lC,EAAM8lC,KAAK,CAAC3wD,EAAE,CAC9D,MAGI,IAAI,CAACrN,IAAI,CAACy9D,QAAQ,CAAC58D,MAAM,CAAC8/D,EAAgB,EAAGzoC,EAAM6lC,UAAU,OAGjExsB,EAAM,IAAI,CAACgvB,QAAQ,CAACroC,EAAM8lC,KAAK,CAAEyC,EAAQjzC,UAO7C,IAJI,CAAC6hB,UAAU,GACf,IAAI,CAACuwB,YAAY,CAAC,MAGd,IAAI,CAACrwB,IAAI,IACFgC,CAIf,EAEA+rB,EAAexiE,SAAS,CAACqH,MAAM,CAAG,SAAUovC,CAAG,EAG3C,IAAK,IAFDzmB,EAAS,GAEJ9rB,EAAI,EAAGA,EAAI,IAAI,CAACgB,IAAI,CAACy9D,QAAQ,CAACthE,MAAM,CAAE6C,IAC3C,GAAI,IAAI,CAACgB,IAAI,CAACy9D,QAAQ,CAACz+D,EAAE,CAACqO,EAAE,GAAKkkC,EAAI,YAAe,CAAE,CAClD,GAAI,QAAI,CAACvxC,IAAI,CAACy9D,QAAQ,CAACz+D,EAAE,CAACy+D,QAAQ,CAACthE,MAAM,EAAWo1C,EAAI,OAAU,CAI9D,IAAK,IADDuvB,EAAkB,IAAI,CAAC9gE,IAAI,CAACy9D,QAAQ,CAACz+D,EAAE,CAClCX,EAAI,EAAGA,EAAIyiE,EAAgBrD,QAAQ,CAACthE,MAAM,CAAEkC,IAC7CyiE,EAAgBrD,QAAQ,CAACp/D,EAAE,CAACgP,EAAE,GAAKkkC,EAAI,OAAU,GACjDuvB,EAAgBrD,QAAQ,CAAC58D,MAAM,CAACxC,EAAG,GACnCyiE,EAAgBvB,aAAa,CAAG,SANxC,IAAI,CAACv/D,IAAI,CAACy9D,QAAQ,CAAC58D,MAAM,CAAC7B,EAAG,GAUjC8rB,EAAS,EACb,CAMJ,OAHA,IAAI,CAACukB,UAAU,GACf,IAAI,CAACuwB,YAAY,CAAC,IAEX90C,GAAU,IAAI,CAACykB,IAAI,EAC9B,EAEA+tB,EAAexiE,SAAS,CAAC+5D,iBAAiB,CAAG,WACzCrI,EAAsBrqD,MAAM,CAAC,IAAI,CAAC00D,uBAAuB,CAC7D,EAEAyG,EAAexiE,SAAS,CAAC48D,MAAM,CAAG,SAAUnmB,CAAG,CAAEkI,CAAG,CAAEsnB,CAAe,CAAEC,CAAW,CAAEC,CAAa,EAC7F,IAAIz0B,EAAO,IAAI,CAACtkC,GAAG,CAACqpC,GAChB2vB,EAAW10B,EAAKuxB,UAAU,CAC1BoD,EAAa30B,EAAKwxB,KAAK,CACvBoD,EAAqB50B,EAAKyxB,YAAY,CAEtCoD,EAAiBr7C,QAAQ0N,IAAI,CAACytC,GAC9BG,EAAet7C,QAAQ0N,IAAI,CAACwtC,GAC5BK,EAAwB,IAAI,CAACvhE,IAAI,CAACshB,QAAQ,CAG9C,GAAI4/C,MAAAA,GAAoBC,MAAAA,EAAoB,CAWxC,GAVAH,EAAczvD,EAAciwD,YAAY,CAACL,EAAWM,YAAY,CAAEhoB,EAAIgoB,YAAY,EAAIlwD,EAAciwD,YAAY,CAACL,EAAY1nB,GAC7HunB,EACMzvD,EAAciwD,YAAY,CAACN,EAASO,YAAY,CAAEV,EAAgBU,YAAY,EAC9ElwD,EAAciwD,YAAY,CAACN,EAAUH,GACvCK,GACA7vD,EAAciwD,YAAY,CAACJ,EAAoBH,GAGnD,IAAI,CAAC5xB,UAAU,GAEX,IAAI,CAACE,IAAI,GACT,MAAO,EAEPyxB,CAAAA,EACMzvD,EAAciwD,YAAY,CAACL,EAAWM,YAAY,CAAEJ,EAAeI,YAAY,EAC/ElwD,EAAciwD,YAAY,CAACL,EAAYE,GAC7CL,EACMzvD,EAAciwD,YAAY,CAACN,EAASO,YAAY,CAAEH,EAAaG,YAAY,EAC3ElwD,EAAciwD,YAAY,CAACN,EAAUI,GAC3C,IAAI,CAACthE,IAAI,CAACshB,QAAQ,CAAGigD,CAE7B,CACA,MAAO,EACX,EAEAjE,EAAexiE,SAAS,CAAC4mE,YAAY,CAAG,SAAU7Q,CAAQ,EACtD,IAAI17C,EAAW,EAAE,CACboG,EAAWtI,EAAGuI,KAAK,GACnBmmD,EAAgB,IAAI,CAIe,cAAnCA,EAAc3hE,IAAI,CAACgqC,WAAW,EAC9B23B,CAAAA,EAAc3hE,IAAI,CAACgqC,WAAW,CAAG,MAAK,EAG1C,IAAI,CAACqF,UAAU,GACfsyB,EAAcpyB,IAAI,GAGlB,IAAI6qB,EAAiB,EAAE,CA6BvB,OA5BAA,EAAex5D,IAAI,CAACiwD,GAEpBvnB,EAAmBolB,eAAe,CAACmC,EAAU8Q,EAAc3hE,IAAI,CAAC+6B,QAAQ,EAAEz/B,IAAI,CAC1E,YACI,IAAK,IAAI0D,EAAI,EAAGA,EAAIo7D,EAAej+D,MAAM,CAAE6C,IAAK,CAC5C,IAAI41D,EAAmB,IAAI,CAACsD,YAAY,CAACkC,CAAc,CAACp7D,EAAE,EAG1D,GAAI41D,CAAoB,GAApBA,GAA+DA,MAAlCA,EAA6D,CAItF7kB,MAAM6kB,EAAiBtzC,QAAQ,GAC/BszC,CAAAA,EAAiBtzC,QAAQ,CAAG,EAAC,EAIjCvN,EAAeE,IAAI,CAAC,OAAQ,CAAC,OAAO,EAAE0tD,EAAc3hE,IAAI,CAAC+6B,QAAQ,CAAC,CAAC,EACnE9zB,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAI9M,EAAUwH,EAAqBiG,YAAY,CAAC,CAAE6D,MAAO8jD,CAAiB,GAC1Ez/C,EAASvU,IAAI,CAACpB,EAAQlE,IAAI,CAACg2D,IAC/B,CACJ,CAEA/1C,EAAS3b,OAAO,CAAC,CAAEuV,SAAUlC,EAAGqC,GAAG,CAACH,EAAU,EAClD,GAAE7b,IAAI,CAAC,IAAI,GAGRiiB,EAAS/b,OAAO,EAGpB89D,CACX,IAOIvL,EAAc,SAAUvB,CAAG,EAC3B8M,EAAehF,KAAK,CAAC,IAAI,CAAEC,WAC3B,IAAI,CAACqJ,OAAO,CAAGtE,EACf,IAAI,CAAC9F,WAAW,CAAG,oBAEnB,IAAI,CAACqK,+BAA+B,CAAG,WACnC,IAAI,CAAC1J,6BAA6B,EACtC,EAEA,IAAI,CAAC0I,MAAM,CAAG,SAAUtvB,CAAG,CAAE/jB,CAAQ,CAAEizC,CAAM,EACzC,IAAIqB,EAAc,IAAI,CAACF,OAAO,CAAC9mE,SAAS,CAAC+lE,MAAM,CAAC1nE,IAAI,CAAC,IAAI,CAAEo4C,EAAK/jB,EAAUizC,GAE1E,OADA,IAAI,CAACoB,+BAA+B,GAC7BC,CACX,EAEA,IAAI,CAAC3/D,MAAM,CAAG,SAAUovC,CAAG,EACvB,IAAIwwB,EAAU,IAAI,CAACH,OAAO,CAAC9mE,SAAS,CAACqH,MAAM,CAAChJ,IAAI,CAAC,IAAI,CAAEo4C,GAEvD,OADA,IAAI,CAACswB,+BAA+B,GAC7BE,CACX,EAEA,IAAI,CAACrK,MAAM,CAAG,SAAUnmB,CAAG,CAAEkI,CAAG,CAAEsnB,CAAe,CAAEC,CAAW,EAC1D,IAAI9xB,EAAU,IAAI,CAAC0yB,OAAO,CAAC9mE,SAAS,CAAC48D,MAAM,CAACv+D,IAAI,CAAC,IAAI,CAAEo4C,EAAKkI,EAAKsnB,EAAiBC,GAElF,OADA,IAAI,CAACa,+BAA+B,GAC7B3yB,CACX,EAEA,IAAI,CAAC0wB,YAAY,CAAG,WAChB,IAAI,CAACiC,+BAA+B,CAAC,GACzC,EAEA,IAAI,CAAClO,qBAAqB,CAAG,SAAU9C,CAAQ,EAC3C,OAAO,IAAI,CAAC6Q,YAAY,CAAC7Q,EAC7B,CACJ,EAOIgB,EAAc,SAAUrB,CAAG,EAC3B8M,EAAehF,KAAK,CAAC,IAAI,CAAEC,WAC3B,IAAI,CAACqJ,OAAO,CAAGtE,EACf,IAAI,CAAC9F,WAAW,CAAG,oBAEnB,IAAI,CAACloB,cAAc,CAAG,SAAUkhB,CAAG,EAI/B,OAHA,IAAI,CAACxwD,IAAI,CAAGwwD,EACZ,IAAI,CAAC/jB,QAAQ,CAAG,GAET,EACX,EAEA,IAAI,CAACo0B,MAAM,CAAG,SAAUtvB,CAAG,CAAE/jB,CAAQ,CAAEizC,CAAM,EACzC,OAAO,IAAI,CAACmB,OAAO,CAAC9mE,SAAS,CAAC+lE,MAAM,CAAC1nE,IAAI,CAAC,IAAI,CAAEo4C,EAAK/jB,EAAUizC,EACnE,EAEA,IAAI,CAACt+D,MAAM,CAAG,SAAUovC,CAAG,EACvB,OAAO,IAAI,CAACqwB,OAAO,CAAC9mE,SAAS,CAACqH,MAAM,CAAChJ,IAAI,CAAC,IAAI,CAAEo4C,EACpD,EAEA,IAAI,CAACmmB,MAAM,CAAG,SAAUnmB,CAAG,CAAEkI,CAAG,CAAEsnB,CAAe,CAAEC,CAAW,EAC1D,OAAO,IAAI,CAACY,OAAO,CAAC9mE,SAAS,CAAC48D,MAAM,CAACv+D,IAAI,CAAC,IAAI,CAAEo4C,EAAKkI,EAAKsnB,EAAiBC,EAC/E,EAEA,IAAI,CAAC9M,gBAAgB,CAAG,SAAUrD,CAAQ,EACtC,OAAO,IAAI,CAAC6Q,YAAY,CAAC7Q,EAC7B,CACJ,EAOIe,EAAc,SAAUpB,CAAG,EAC3BgF,EAAY8C,KAAK,CAAC,IAAI,CAAEC,WAGxB,IAAI,CAACrwD,GAAG,CAAG,SAAUqpC,CAAG,EAEpB,IAAK,IADDt1C,EAAW,IAAI,CAAC+D,IAAI,CAACs+D,QAAQ,CACxBt/D,EAAI,EAAGA,EAAI/C,EAASE,MAAM,CAAE6C,IAAK,CACtC,IAAIjB,EAAU9B,CAAQ,CAAC+C,EAAE,CACzB,GAAIjB,EAAQsP,EAAE,GAAKkkC,EAAIssB,YAAY,CAAE,CACjC,IAAIK,EAAQngE,OAAAA,EAAQikE,QAAQ,CAAYjkE,EAAQikE,QAAQ,CAAGjkE,EAAQkkE,OAAO,CAC1E,GAAI/D,GAASA,EAAM7wD,EAAE,GAAKkkC,EAAIusB,OAAO,CACjC,MAAO,CACHC,WAAYhgE,EACZigE,MAAOE,CACX,CAER,CACJ,CAEA,OAAO,EACX,EAEA,IAAI,CAAChH,mBAAmB,CAAG,WACvB5tB,EAAmB2jB,YAAY,CAAG,IAAI,CAAC3yC,OAAO,CAC9CgvB,EAAmBkD,IAAI,CAAC,IAAI,CAACqqB,uBAAuB,CAAC,CAAG,IAAI,CAC5DvtB,EAAmBspB,iBAAiB,CAAG,IAAI,EAG/C,IAAI,CAACsP,iBAAiB,CAAG,WAEzB,EAEA,IAAI,CAACxK,MAAM,CAAG,SAAUyK,CAAU,CAAEC,CAAoB,EAEpD/wD,EAAWgxD,cAAc,CAAGF,yBAAAA,EAAWG,WAAW,CAElD,IAAMC,EAAe,IAAI,CAACviE,IAAI,CAACs+D,QAAQ,CAACx9C,SAAS,CAAC,GAAa/iB,EAAQsP,EAAE,GAAK80D,EAAW90D,EAAE,EAE3F,GAAIk1D,KAAAA,EACA,MAAM,MAAU,8BAGpB,GAAIJ,yBAAAA,EAAWG,WAAW,CAKtB,IAAK,IAAME,KAJe,IAAI,CAACxiE,IAAI,CAACs+D,QAAQ,CAAClgE,MAAM,CAC/C,GAAaL,yBAAAA,EAAQukE,WAAW,EAA+B,CAACvkE,EAAQ0kE,iBAAiB,EAIzFD,EAAiBC,iBAAiB,CAAG,GACrCpxD,EAAWK,UAAU,CAAC,0BAA4B8wD,EAAiBn1D,EAAE,EAY7E,OARA,IAAI,CAACrN,IAAI,CAACs+D,QAAQ,CAACiE,EAAa,CAAGJ,EAlBY,KAAzBC,IAqBlB,IAAI,CAAC/yB,UAAU,GACf,IAAI,CAACE,IAAI,GACT,IAAI,CAAC4oB,6BAA6B,IAG/BgK,CACX,EAEA,IAAI,CAAC5O,wBAAwB,CAAG,SAAU3sD,CAAO,EAC7C,IAAM87D,EAAmB,IAAI,CAACC,2BAA2B,GACrDnjE,EAAU,KACd,GAAIkjE,EAAiBE,YAAY,CAACzmE,MAAM,CAAG,EAAG,CAC1C,IAAM0mE,EAAoBtW,EAAeqC,WAAW,CAACkU,gBAAgB,GACrEvW,EAAeqC,WAAW,CAACC,IAAI,GAC/BrvD,EAAU8pC,EAAmBupB,uBAAuB,GAAGv3D,IAAI,CAAC,KACpDunE,GACAtW,EAAeqC,WAAW,CAACmU,IAAI,EAEvC,EACJ,CAEA,OAAO9vD,EAAG4K,IAAI,CAACre,GAASlE,IAAI,CAAC,IAClB,IAAI,CAAC0nE,oBAAoB,CAACp8D,GAEzC,EAEA,IAAI,CAAC+7D,2BAA2B,CAAG,WAC/B,IAAIM,EAAe,CAAEL,aAAc,EAAE,EAEjCtlB,EAAO,IAAI,CAAC4a,YAAY,CAAC,IAAI,CAAC59C,OAAO,EACzC,GAAIgjC,GAAQA,EAAKghB,QAAQ,CAAE,CAIvB,IAAK,IAFD4E,EAAa,GAERC,EAAI,EAAGA,EAAI7lB,EAAKghB,QAAQ,CAACniE,MAAM,CAAEgnE,IAEtC,GAAIC,CAAuB,IAAvBA,EADgCC,kCAAkC,CAAC/lB,EAAKghB,QAAQ,CAAC6E,EAAE,EACtE9P,KAAK,CAAY,CAC9B6P,EAAa,GACb,KACJ,CAIAA,IACAD,EAAaL,YAAY,CAAChiE,IAAI,CAAC,IAAI,CAAC0Z,OAAO,EAC3CgjC,EAAK5+B,wBAAwB,CAAG,GAChC,IAAI,CAAC2wB,UAAU,GACf,IAAI,CAACE,IAAI,GAEjB,CAEA,OAAO0zB,CACX,EAEA,IAAI,CAACD,oBAAoB,CAAG,SAAUnS,CAAQ,CAAEyS,CAAiB,EAC7D,IAAInuD,EAAW,EAAE,CACboG,EAAWtI,EAAGuI,KAAK,GAKnB8nD,CAAAA,MAAAA,GAAiEA,CAAqB,GAArBA,CAAyB,GACtF,kBAAI,CAACtjE,IAAI,CAACgqC,WAAW,EACrB,KAAI,CAAChqC,IAAI,CAACgqC,WAAW,CAAG,MAAK,EAKrC,IAAI,CAACqF,UAAU,GACf,IAAI,CAACE,IAAI,GAGT,IAAI6qB,EAAiB,EAAE,CA+BvB,OA9BAA,EAAex5D,IAAI,CAACiwD,GAEpBvnB,EAAmBolB,eAAe,CAACmC,EAAU,gBAAgBv1D,IAAI,CAC7D,YACI,IAAK,IAAI0D,EAAI,EAAGA,EAAIo7D,EAAej+D,MAAM,CAAE6C,IAAK,CAC5C,IAAI41D,EAAmB,IAAI,CAACsD,YAAY,CAACkC,CAAc,CAACp7D,EAAE,EAG1D,GAAI41D,CAAoB,GAApBA,GAA+DA,MAAlCA,EAA6D,CAItF7kB,MAAM6kB,EAAiBtzC,QAAQ,GAC/BszC,CAAAA,EAAiBtzC,QAAQ,CAAG,EAAC,EAIjCvN,EAAeE,IAAI,CAAC,OAAQ,uBAC5BhN,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAI9M,EAAUwH,EAAqBiG,YAAY,CAAC,CAAE6D,MAAO8jD,CAAiB,GAC1Ez/C,EAASvU,IAAI,CAACpB,EAAQlE,IAAI,CAACg2D,IAG/B,CACJ,CAEA/1C,EAAS3b,OAAO,CAAC,CAAEuV,SAAUlC,EAAGqC,GAAG,CAACH,EAAU,EAClD,GAAE7b,IAAI,CAAC,IAAI,GAGRiiB,EAAS/b,OAAO,CAE/B,EAKIwyD,EAAkB,SAAUxB,CAAG,EAC/BgF,EAAY8C,KAAK,CAAC,IAAI,CAAEC,WACxB,IAAI,CAACf,WAAW,CAAG,wBAEnB,IAAI,CAACN,mBAAmB,CAAG,WACvB5tB,EAAmBkD,IAAI,CAAC,IAAI,CAACqqB,uBAAuB,CAAC,CAAG,IAAI,CAC5DvtB,CAAkB,CAAC,IAAI,CAACkuB,WAAW,CAAC,CAAG,IAAI,EAG/C,IAAI,CAAC/5C,WAAW,CAAG,CAACxZ,EAAQkY,EAAcq8C,KACtC,IAAMC,EAAqB/L,EACtB/qC,6BAA6B,CAAC,IAAI,CAAC3hB,IAAI,CAAEmc,GACzCS,eAAe,CAAC3Y,EAAQu0D,GACxBl9D,IAAI,CAAC,GACF,KAAIwvB,EAAOhP,kBAAkB,EAAY08C,EAIlClvB,EAAmB0rB,iBAAiB,CAAClqC,EAAOhP,kBAAkB,EAAExgB,IAAI,CACvE,IAAMwvB,EAAOlP,IAAI,CACjB,IAAMkP,EAAOlP,IAAI,EALVkP,EAAOlP,IAAI,EAa9B,OAJI48C,GACAC,EAAmBt4D,KAAK,CAAC,GAAeu4D,GAAuBx4D,EAAW,IAAI,CAACoa,OAAO,CAAErW,EAAQ,IAAI,GAGjGw0D,CACX,EAEA,IAAI,CAACoC,WAAW,CAAG,SAAU/tD,CAAE,EAC3B,IAAMgQ,EAAQ,IAAIL,EAAAA,CAAeA,CAAC,IAAI,CAACzc,IAAI,CAAC6hB,KAAK,EAAE9E,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAASlQ,IACvE,GAAIgQ,OAAAA,EACA,MAAO,EAAE,CAGb,IAAMg+C,EAAQh+C,EAAMjB,OAAO,CAACha,GAAG,CAAC,GAAO0b,EAAErZ,MAAM,EAE/C,OADA42D,EAAMhC,OAAO,CAAChsD,GACPguD,CACX,EAcA,IAAI,CAAC5yD,GAAG,CAAG,SAAU4E,CAAE,CAAEiuD,CAAS,CAAEH,CAAa,EAC7C,IAAMx+C,EAAQpe,MAAMmsB,OAAO,CAACywC,GAAiBA,EAAgB,IAAI,CAAC56D,IAAI,CAAC6hB,KAAK,CACtEq3C,EAAa,IAAIz8C,EAAAA,CAAeA,CAACL,GAEvC,GAAI,CAAC2+C,EAAW,CACZ,IAAMj+C,EAAQo8C,EAAW77D,IAAI,CAAC2f,CAAAA,EAAAA,EAAAA,CAAAA,EAASlQ,IACvC,OAAOgQ,OAAAA,EAAiBA,EAAQ,EACpC,CAEA,IAAMA,EAAQo8C,EAAWn8C,UAAU,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAASlQ,IAC7C,GAAIgQ,OAAAA,EACA,OAAO,GAGX,IAAMk+C,EAA0Bl+C,EAAMjB,OAAO,CAAC1f,MAAM,EAAI,EAClD0f,EAAUiB,EAAMjB,OAAO,CAAC1f,MAAM,CAAG,EAAI,CAAEgiB,OAAQrB,EAAMjB,OAAO,CAAC,EAAE,CAAEo/C,WAAYn+C,EAAMjB,OAAO,CAACiB,EAAMjB,OAAO,CAAC1f,MAAM,CAAG,EAAE,EAAKigB,EAE/H,MAAO,CACH8+C,YAAaF,EACbp/C,KAAMkB,EAAMlB,IAAI,CAChBC,QAASA,CACb,CACJ,EAEA,IAAI,CAACq/C,WAAW,CAAG,SAAUpuD,CAAE,CAAE8tD,CAAa,EAE1C,MAAOx+C,CADOpe,MAAMmsB,OAAO,CAACywC,GAAiBA,EAAgB,IAAI,CAAC56D,IAAI,CAAC6hB,KAAK,EAC/Di4B,IAAI,CAAC98B,CAAAA,EAAAA,EAAAA,CAAAA,EAASlQ,GAC/B,EAEA,IAAI,CAACokD,gBAAgB,CAAG,SAAUqS,CAAY,CAAEC,CAAa,SACzD,OAAIA,GAA0BD,OAAAA,EACnB,KAGJ,IAAI9mD,EAAAA,CAAeA,CAAC+mD,GAAenmE,IAAI,CAAC2f,CAAAA,EAAAA,EAAAA,CAAAA,EAASumD,GAC5D,EAEA,IAAI,CAACE,qBAAqB,CAAG,SAAUD,CAAa,SAChD,OAAIA,EACO,KAGJ,IAAI/mD,EAAAA,CAAeA,CAAC+mD,GAAenmE,IAAI,CAAC,GAAOkgB,EAAEH,QAAQ,GAAK7H,EAAAA,CAAeA,CAACC,KAAK,CAACmH,QAAQ,CACvG,EAEA,IAAI,CAAC0/C,kBAAkB,CAAG,CAACp4D,EAAQ6G,IACxB,IAAI,CAACuwD,yBAAyB,GAAG//D,IAAI,CAAC,IAElCggE,EADqC35C,6BAA6B,CAAC,IAAI,CAAC3hB,IAAI,CAAE,IAAI2G,EAAAA,CAAYA,CAAC,IAAI,CAAC2T,OAAO,GAC/FqE,sBAAsB,CAAC1a,EAAQ6G,IAI1D,IAAI,CAACwT,4BAA4B,CAAG,CAACra,EAAQy/D,IAClC,IAAI,CAACrI,yBAAyB,GAAG//D,IAAI,CAAC,IAElCggE,EADqC35C,6BAA6B,CAAC,IAAI,CAAC3hB,IAAI,CAAE,IAAI2G,EAAAA,CAAYA,CAAC,IAAI,CAAC2T,OAAO,GAC/FgE,4BAA4B,CAACra,EAAQy/D,IAIhE,IAAI,CAACpH,kBAAkB,CAAG,GACf,IAAI,CAACjB,yBAAyB,GAAG//D,IAAI,CAAC,IAElCggE,EADqC35C,6BAA6B,CAAC,IAAI,CAAC3hB,IAAI,CAAE,IAAI2G,EAAAA,CAAYA,CAAC,IAAI,CAAC2T,OAAO,GAC/FwE,cAAc,CAAC7a,IAI1C,IAAI,CAACo3D,yBAAyB,CAAG,IAEtB,IADa,CAAC5uB,QAAQ,EAAI,IAAI,CAACkkB,iCAAiC,CAAC,IAAI,CAACr2C,OAAO,EACLrH,EAAGrT,OAAO,GAAvE,IAAI,CAAC+jE,oBAAoB,CAAC,IAAI,CAACrpD,OAAO,CAAE,GAAO,KAAM,IAG3E,IAAI,CAACy+C,sBAAsB,CAAG,SAAUyK,CAAa,EACjD,OAAO,IAAI,CAACI,0BAA0B,CAACJ,GAAeplE,MAAM,CAAC,GAAQouD,EAAsByB,GAAG,CAACnhD,GACnG,EAEA,IAAI,CAAC82D,0BAA0B,CAAG,SAAUJ,CAAa,EACrD,GAAIA,MAAAA,EACA,MAAO,EAAE,CAIb,IAAMK,ECr6EXC,CAAAA,EAAAA,EAAAA,CAAAA,EAAuB,GAAUloD,EAAKiD,cAAc,EDs6E/C,OAAO,IAAIpC,EAAAA,CAAeA,CAAC+mD,GACtBplE,MAAM,CAACi7D,EAAAA,CAAwBA,CAAEwK,EAHR,GAAOtmD,EAAEH,QAAQ,GAAK7H,EAAAA,CAAeA,CAACC,KAAK,CAACmH,QAAQ,EAI7E9a,GAAG,CAAC,GAAO0b,EAAEsB,cAAc,CACpC,EAEA,IAAI,CAAC64C,MAAM,CAAG,SAAUzzD,CAAM,CAAEw1C,CAAG,EAI3BsqB,EADA9/D,EACgB,IAAI,CAACiE,GAAG,CAACjE,GAET,IAAI,CAACjE,IAAI,CAG7B,IARI+jE,EAQAC,EAAgBh+C,QAAQ0N,IAAI,CAACqwC,GAC7BE,EAAkB,IAAI,CAACjkE,IAAI,CAACshB,QAAQ,CAGxC,GAAIyiD,MAAAA,EAAuB,CAIvB,GAHAxyD,EAAciwD,YAAY,CAACuC,EAAetqB,GAC1C,IAAI,CAACpK,UAAU,GAEX,IAAI,CAACE,IAAI,GACT,MAAO,GAEPh+B,EAAciwD,YAAY,CAACuC,EAAeC,GAC1C,IAAI,CAAChkE,IAAI,CAACshB,QAAQ,CAAG2iD,CAE7B,CACA,MAAO,EACX,EAEA,IAAI,CAACN,oBAAoB,CAAG,SAAU9S,CAAQ,CAAEqT,CAAkB,CAAEC,CAAwB,CAAEC,CAAiB,EAC3G,IAAIC,EAAqB,IAAI,CACzBlvD,EAAW,EAAE,CACboG,EAAWtI,EAAGuI,KAAK,SAEnB0oD,GACAA,CAAAA,EAAqB,EAAI,QAGzBC,GACAA,CAAAA,EAA2B,EAAE,QAG7BC,GACAA,CAAAA,EAAoB,EAAI,EAK5B,IAAIE,EAAa,GAEZF,CAAAA,GAAqBF,CAAsB,GAAtBA,CAAyB,GAAMG,cAAAA,EAAmBrkE,IAAI,CAACgqC,WAAW,GACxFq6B,EAAmBrkE,IAAI,CAACgqC,WAAW,CAAG,OACtCs6B,EAAa,IAGjB,IAAI,CAACj1B,UAAU,GACfg1B,EAAmB90B,IAAI,GAEvB,IAAI6qB,EAAiB,EAAE,CACnBG,EAAc,IAAI,CAACryD,GAAG,CAAChB,EAAajD,MAAM,CAAE,IAC5C0qD,EAAc4L,KAAoC,IAApCA,EAAY17C,cAAc,CAAc07C,EAAY17C,cAAc,CAAG07C,EAAYt8C,WAAW,CA4G9G,MAxG0B,IAAtBimD,GACA9J,CAAAA,EAAiB,IAAI,CAACrB,sBAAsB,CAACsL,EAAmBrkE,IAAI,CAAC6hB,KAAK,GAG9Eu4C,EAAex5D,IAAI,CAACiwD,GAEpBvnB,EACKolB,eAAe,CAACmC,EAAU,WAAYlC,GACtCrzD,IAAI,CAAC,KAEF,IAAK,IAAI0D,EAAI,EAAGA,EAAIo7D,EAAej+D,MAAM,CAAE6C,IAAK,CAC5C,IAAI41D,EAAmB,IAAI,CAACsD,YAAY,CAACkC,CAAc,CAACp7D,EAAE,EAG1D,GACI41D,CAAoB,GAApBA,GAEAA,MADAA,GAEAA,CAA8B,IAA9BA,EAAiBnoB,QAAQ,CAC3B,CAEExlC,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAG7ByjC,MAAM6kB,EAAiBtzC,QAAQ,GAC/BszC,CAAAA,EAAiBtzC,QAAQ,CAAG,EAAC,EAEjCvN,EAAeE,IAAI,CAAC,OAAQ,2BAC5B,IAAIzU,EAAUwH,EAAqBiG,YAAY,CAAC,CAAE6D,MAAO8jD,CAAiB,GAC1Ep1D,EAAQlE,IAAI,CAAC,SAAU0M,CAAQ,EAC3B,IAAIqsD,EAAU/qB,EAAmBkD,IAAI,CAACxkC,EAAShI,IAAI,CAACsa,OAAO,CAAC,CAY5D,SAXI+5C,IACAA,EAAQ5nB,QAAQ,CAAG,GACnB4nB,EAAQr0D,IAAI,CAACysC,QAAQ,CAAG,GACxB4nB,EAAQr0D,IAAI,CAACk2D,WAAW,CAAGluD,EAAShI,IAAI,CAACupC,KAAK,CAACjoB,QAAQ,CACnD+yC,EAAQr0D,IAAI,CAACshB,QAAQ,CAAGtZ,EAAShI,IAAI,CAACupC,KAAK,CAACjoB,QAAQ,EACpD+yC,CAAAA,EAAQr0D,IAAI,CAACshB,QAAQ,CAAGtZ,EAAShI,IAAI,CAACupC,KAAK,CAACjoB,QAAQ,GAMxDuvC,GAAY7oD,EAAShI,IAAI,CAACsa,OAAO,CAAE,CACnC,GAAI+pD,MAAAA,IACAA,EAAmB53B,QAAQ,CAAG,GAC1B43B,OAAAA,EAAmBrkE,IAAI,EAAaqkE,KAA4BvlE,IAA5BulE,EAAmBrkE,IAAI,GAC3DqkE,EAAmBrkE,IAAI,CAACysC,QAAQ,CAAG,GAE/B63B,GAEID,OAAAA,EAAmBrkE,IAAI,CAACorC,YAAY,EACpCi5B,KAAyCvlE,IAAzCulE,EAAmBrkE,IAAI,CAACorC,YAAY,EACpCi5B,EAAmBrkE,IAAI,CAACorC,YAAY,CAACjvC,MAAM,CAAG,IAE9C,IAAK,IAAIiU,EAAI,EAAGA,EAAIi0D,EAAmBrkE,IAAI,CAACorC,YAAY,CAACjvC,MAAM,CAAEiU,IAET,kBAAhDi0D,EAAmBrkE,IAAI,CAACorC,YAAY,CAACh7B,EAAE,CAACi7B,GAAG,EAC3Cg5B,UAAAA,EAAmBrkE,IAAI,CAACorC,YAAY,CAACh7B,EAAE,CAACk7B,KAAK,EAE7C+4B,CAAAA,EAAmBrkE,IAAI,CAACorC,YAAY,CAACh7B,EAAE,CAACk7B,KAAK,CAAG,MAAK,EAQ7E,GAAIg5B,GAEIjQ,MAAAA,GAEIA,OAAAA,EAAQr0D,IAAI,CAACorC,YAAY,EACzBipB,KAA8Bv1D,IAA9Bu1D,EAAQr0D,IAAI,CAACorC,YAAY,EACzBipB,EAAQr0D,IAAI,CAACorC,YAAY,CAACjvC,MAAM,CAAG,EAEnC,IAAK,IAAIkC,EAAI,EAAGA,EAAIg2D,EAAQr0D,IAAI,CAACorC,YAAY,CAACjvC,MAAM,CAAEkC,IAET,kBAArCg2D,EAAQr0D,IAAI,CAACorC,YAAY,CAAC/sC,EAAE,CAACgtC,GAAG,EAChCgpB,UAAAA,EAAQr0D,IAAI,CAACorC,YAAY,CAAC/sC,EAAE,CAACitC,KAAK,EAElC+oB,CAAAA,EAAQr0D,IAAI,CAACorC,YAAY,CAAC/sC,EAAE,CAACitC,KAAK,CAAG,MAAK,CAMlE,CAEAhC,EAAmB4mB,OAAO,CAACloD,EAAShI,IAAI,CAACsa,OAAO,CACpD,EAAG0L,QAAQ4C,IAAI,EAEfzT,EAASvU,IAAI,CAACpB,EAClB,MACI8pC,EAAmB4mB,OAAO,CAACkK,CAAc,CAACp7D,EAAE,CAEpD,CAEAuc,EAAS3b,OAAO,CAAC,CAAEuV,SAAUlC,EAAGqC,GAAG,CAACH,EAAU,EAClD,GACChV,KAAK,CAAC,IACHob,EAAS1b,MAAM,CAAC0kE,EACpB,GAEJlzD,EAAWK,UAAU,CAAC,iBAAkB,IAAI,CAAC4I,OAAO,CAAEiB,EAAS/b,OAAO,EAC/D+b,EAAS/b,OAAO,EAG3B,IAAI,CAACs1D,yBAAyB,CAAG,WAC7B,IAAIjE,EAAW,IAAI,CAACgG,uBAAuB,CAC3C,GAAI,IAAK,CAAC72D,IAAI,GAAI,KAAI,CAACA,IAAI,CAAC6hB,KAAK,CAAC1lB,MAAM,EAAI,IAI5C,IAAIqoE,EAAmB,IAAI,CAACZ,0BAA0B,CAAC,IAAI,CAAC5jE,IAAI,CAAC6hB,KAAK,EACtE2iD,EAAiB5jE,IAAI,CAACiwD,GACtB7qC,QAAQvoB,OAAO,CAAC+mE,EAAkB,SAAUzoE,CAAG,EAC3CutC,EAAmB4mB,OAAO,CAACn0D,EAC/B,GACJ,EAEA,IAAI,CAACq3D,gBAAgB,CAAG,WAEpB,OADoB,IAAI,CAACmG,aAAa,CAAC,IAAI,CAACv5D,IAAI,CAAC6hB,KAAK,CAE1D,EAEA,IAAI,CAAC03C,aAAa,CAAG,SAAUkL,CAAU,EACrC,IAAK,IAAIzlE,EAAI,EAAGA,EAAIylE,EAAWtoE,MAAM,CAAE6C,IAAK,CACxC,IAAI4c,EAAO6oD,CAAU,CAACzlE,EAAE,CACxB,GAAI4c,SAAAA,EAAKwB,QAAQ,CAEb,IAAIxB,MAAAA,EAAKiD,cAAc,CAAU,CAC7B,IAAMy+B,EAAOkP,EAAsBuB,QAAQ,CAACnyC,EAAKiD,cAAc,CAAE8tC,GACjE,GAAIrP,OAAAA,EAAe,CACf,IAAIsW,EAAoBvH,EAAqBwH,cAAc,CAACvW,EAAM,GAAM1hC,EAAKiE,SAAS,EAItF,GAFA,IAAI,CAAC0vB,IAAI,CAAC3zB,EAAKiD,cAAc,CAAEy+B,GAE3B,CAACsW,EAAkBP,KAAK,CACxB,MAAO,CAAEpvD,OAAQ2X,EAAK1X,MAAM,CAAE28B,WAAY+yB,CAAkB,CAEpE,CACJ,OACG,GAAIh4C,aAAAA,EAAKwB,QAAQ,EAAmBxB,qBAAAA,EAAKwB,QAAQ,CACpD,OAAO,IAAI,CAACm8C,aAAa,CAAC39C,EAAK0B,QAAQ,CAE/C,CACA,MAAO,CAAErZ,OAAQ,GAAI48B,WAAY,CAAEwyB,MAAO,EAAK,CAAE,CACrD,EAEA,IAAI,CAACE,wBAAwB,CAAG,SAAU3sD,CAAO,MAAEqb,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAU,CAAC,EACpDmhD,EAAe,IAAI,CAACsB,+BAA+B,GACrDllE,EAAU,KAEd,GAAI4jE,EAAaR,YAAY,CAACzmE,MAAM,CAAG,EAAG,CACtC,IAAM0mE,EAAoBtW,EAAeqC,WAAW,CAACkU,gBAAgB,GACrEvW,EAAeqC,WAAW,CAACC,IAAI,GAC/BrvD,EAAU8pC,EAAmBupB,uBAAuB,CAAC5wC,EAAQ0iD,aAAa,EAAErpE,IAAI,CAAC,KACzEunE,GACAtW,EAAeqC,WAAW,CAACmU,IAAI,GAEnC,IAAMzH,EAAc5O,EAAwB/qC,6BAA6B,CAAC,IAAI,CAAC3hB,IAAI,CAAE,IAAI2G,EAAAA,CAAYA,CAACC,IAChGuO,EAAWiuD,EAAaR,YAAY,CAAC/gE,GAAG,CAAC,GACpCy5D,EAAYh9C,4BAA4B,CAACra,EAAQ,KAE5D,OAAOgP,EAAGqC,GAAG,CAACH,EAClB,EACJ,CAEA,OAAOlC,EACF4K,IAAI,CAACre,GACLlE,IAAI,CAAC,IACK,IAAI,CAACqoE,oBAAoB,CAAC/8D,EAAS,GAAO,KAAMqb,EAAQuxC,eAAe,EAAI,KAErFl4D,IAAI,CAAC,GACK,EACHm4D,gBAAiBA,EACjBmR,sBAAuBxB,CAC3B,GAEZ,EAEA,IAAI,CAACsB,+BAA+B,CAAG,WAQnC,OAAO,IAAI,CAACG,8BAA8B,CAAC,IAAI,CAAC7kE,IAAI,CAAC6hB,KAAK,CAC9D,EAEA,IAAI,CAACgjD,8BAA8B,CAAG,SAAUJ,CAAU,EAOtD,IAAK,IANDxB,EAAe,CAAEL,aAAc,EAAE,EACjCtlB,EAAO,KACP4lB,EAAa,GAEbtnD,EAAO,KAEF5c,EAAI,EAAGA,EAAIylE,EAAWtoE,MAAM,CAAE6C,IAEnC,GAAI4c,SAAAA,CADJA,EAAO6oD,CAAU,CAACzlE,EAAE,EACXoe,QAAQ,CAEb,IAAIxB,MAAAA,EAAKiD,cAAc,EAAYjD,CAAiC,IAAjCA,EAAKkpD,uBAAuB,EAAalpD,CAAkC,IAAlCA,EAAK8C,wBAAwB,EACrG4+B,CAAAA,EAAO,IAAI,CAAC4a,YAAY,CAACt8C,EAAKiD,cAAc,IAChCy+B,EAAKghB,QAAQ,CAAE,CAEvB,IAAK,IAAI6E,EAAI,EAAGA,EAAI7lB,EAAKghB,QAAQ,CAACniE,MAAM,CAAEgnE,IAEtC,GAAIC,CAAuB,IAAvBA,EADgCC,kCAAkC,CAAC/lB,EAAKghB,QAAQ,CAAC6E,EAAE,EACtE9P,KAAK,CAAY,CAC9B6P,EAAa,GACb,KACJ,CAIAA,IACAD,EAAaL,YAAY,CAAChiE,IAAI,CAACgb,EAAK1X,MAAM,EAC1C0X,EAAK8C,wBAAwB,CAAG,GAChC4qB,EAAmBonB,qBAAqB,CAACrhB,UAAU,GACnD/F,EAAmBonB,qBAAqB,CAACnhB,IAAI,GAErD,CACJ,MACG,GAAI3zB,aAAAA,EAAKwB,QAAQ,EAAmBxB,qBAAAA,EAAKwB,QAAQ,CAGpD,IAAK,IAFD2nD,EAAc,IAAI,CAACF,8BAA8B,CAACjpD,EAAK0B,QAAQ,EAE1Djf,EAAI,EAAGA,EAAI0mE,EAAYnC,YAAY,CAACzmE,MAAM,CAAEkC,IACjD4kE,EAAaL,YAAY,CAAChiE,IAAI,CAACmkE,EAAYnC,YAAY,CAACvkE,EAAE,EAItE,OAAO4kE,CACX,EAEA,IAAI,CAACtS,iCAAiC,CAAG,SAAUqU,CAAyB,EACxE,IAAIC,EAAkB,EAAE,CAGpBrQ,EAAmB,IAAI,CAACsD,YAAY,CAAC8M,EAGrCpQ,EAAoB,GAApBA,GAEAA,MADAA,GAEAA,OAAAA,EAAiB/yC,KAAK,EACtB+yC,KAA2B91D,IAA3B81D,EAAiB/yC,KAAK,CAGtBojD,EAAkB,IAAI,CAACrB,0BAA0B,CAAChP,EAAiB/yC,KAAK,EAEjEynB,EAAmBonB,qBAAqB,EAAIpnB,EAAmBonB,qBAAqB,CAACp2C,OAAO,EAAI0qD,GACvGC,CAAAA,EAAkB,IAAI,CAACrB,0BAA0B,CAACt6B,EAAmBonB,qBAAqB,CAAC1wD,IAAI,CAAC6hB,KAAK,GAIzGojD,EAAgBrkE,IAAI,CAACokE,GAKrB,IAAK,IAFDv4B,EAAW,GAENztC,EAAI,EAAGkmE,EAAMD,EAAgB9oE,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IAAK,CACxD,IAAI4iB,EAAQ,IAAI,CAACs2C,YAAY,CAAC+M,CAAe,CAACjmE,EAAE,CAEnC,KAAT4iB,GAAyCA,MAAvBA,GAEdA,CAAkB,GAAlBA,EAAM6qB,QAAQ,GACdA,EAAW,GACXztC,EAAIkmE,EAGhB,CAEA,OAAOz4B,CACX,CACJ,EAOIilB,EAA2B,SAAUlB,CAAG,EACxCgF,EAAY8C,KAAK,CAAC,IAAI,CAAEC,WAExB,IAAI,CAACrB,mBAAmB,CAAG,WACvB5tB,EAAmBkD,IAAI,CAAC,IAAI,CAACqqB,uBAAuB,CAAC,CAAG,IAAI,CAC5DvtB,EAAmBkB,8BAA8B,CAAG,IAAI,EAG5D,IAAI,CAAC26B,SAAS,CAAG,WACb,OAAO77B,EAAmBkB,8BAA8B,CAACxqC,IAAI,CAAColE,aAAa,EAG/E,IAAI,CAAC91B,cAAc,CAAG,SAAU+1B,CAAa,EAKzC,OAJA,IAAI,CAAClN,6BAA6B,GAClC,IAAI,CAACn4D,IAAI,CAAGqlE,EACZ,IAAI,CAACh2B,UAAU,GAER,EACX,EAEA,IAAI,CAAC2kB,sBAAsB,CAAG,SAAUnD,CAAQ,EAC5C,IAAI17C,EAAW,EAAE,CACboG,EAAWtI,EAAGuI,KAAK,GAkCvB,MA/B8B,cAA1B,IAAI,CAACxb,IAAI,CAACgqC,WAAW,EACrB,KAAI,CAAChqC,IAAI,CAACgqC,WAAW,CAAG,MAAK,EAGjC,IAAI,CAACqF,UAAU,GACf,IAAI,CAACE,IAAI,GAETjG,EAAmBolB,eAAe,CAACmC,EAAU,0BAA0Bv1D,IAAI,CACvE,YAEI,IAAIs5D,EAAmB,IAAI,CAACsD,YAAY,CAACrH,GAEzC,GAAI+D,CAAoB,GAApBA,GAA+DA,MAAlCA,EAA6D,CAItF7kB,MAAM6kB,EAAiBtzC,QAAQ,GAC/BszC,CAAAA,EAAiBtzC,QAAQ,CAAG,EAAC,EAIjCvN,EAAeE,IAAI,CAAC,OAAQ,iCAC5BhN,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAI9M,EAAUwH,EAAqBiG,YAAY,CAAC,CAAE6D,MAAO8jD,CAAiB,GAC1Ez/C,EAASvU,IAAI,CAACpB,EAAQlE,IAAI,CAACg2D,IAC/B,CAEA/1C,EAAS3b,OAAO,CAAC,CAAEuV,SAAUlC,EAAGqC,GAAG,CAACH,EAAU,EAClD,GAAE7b,IAAI,CAAC,IAAI,GAGRiiB,EAAS/b,OAAO,CAE/B,EAOIgyD,EAAqB,SAAUhB,CAAG,EAClCgF,EAAY8C,KAAK,CAAC,IAAI,CAAEC,WAExB,IAAI,CAACrB,mBAAmB,CAAG,WACvB5tB,EAAmBkD,IAAI,CAAC,IAAI,CAACqqB,uBAAuB,CAAC,CAAG,IAAI,CAC5DvtB,EAAmBqB,wBAAwB,CAAG,IAAI,EAGtD,IAAI,CAACw6B,SAAS,CAAG,WACb,OAAO77B,EAAmBqB,wBAAwB,CAAC3qC,IAAI,CAAColE,aAAa,EAGzE,IAAI,CAAC91B,cAAc,CAAG,SAAUg2B,CAAc,EAK1C,OAJA,IAAI,CAACnN,6BAA6B,GAClC,IAAI,CAACn4D,IAAI,CAAGslE,EACZ,IAAI,CAACj2B,UAAU,GAER,EACX,EAEA,IAAI,CAAC4kB,uBAAuB,CAAG,SAAUpD,CAAQ,CAAE0U,CAAU,EACzD,IAAIpwD,EAAW,EAAE,CACboG,EAAWtI,EAAGuI,KAAK,GAiCvB,OA/BI+pD,GAAc,kBAAI,CAACvlE,IAAI,CAACgqC,WAAW,EACnC,KAAI,CAAChqC,IAAI,CAACgqC,WAAW,CAAG,MAAK,EAIjC,IAAI,CAACqF,UAAU,GACf,IAAI,CAACE,IAAI,GAETjG,EAAmBolB,eAAe,CAACmC,EAAU,eAAev1D,IAAI,CAC5D,YACI,IAAIs5D,EAAmB,IAAI,CAACsD,YAAY,CAACrH,GAEzC,GAAI+D,CAAoB,GAApBA,GAA+DA,MAAlCA,EAA6D,CAItF7kB,MAAM6kB,EAAiBtzC,QAAQ,GAC/BszC,CAAAA,EAAiBtzC,QAAQ,CAAG,EAAC,EAIjCvN,EAAeE,IAAI,CAAC,OAAQ,sBAC5BhN,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAI9M,EAAUwH,EAAqBiG,YAAY,CAAC,CAAE6D,MAAO8jD,CAAiB,GAC1Ez/C,EAASvU,IAAI,CAACpB,EAAQlE,IAAI,CAACg2D,IAC/B,CAEA/1C,EAAS3b,OAAO,CAAC,CAAEuV,SAAUlC,EAAGqC,GAAG,CAACH,EAAU,EAClD,GAAE7b,IAAI,CAAC,IAAI,GAGRiiB,EAAS/b,OAAO,CAE/B,EAOIiyD,EAAc,SAAUjB,CAAG,EAC3BgF,EAAY8C,KAAK,CAAC,IAAI,CAAEC,WAExB,IAAI,CAACrB,mBAAmB,CAAG,WACvB5tB,EAAmB0jB,kBAAkB,CAAG,IAAI,CAAC1yC,OAAO,CACpDgvB,EAAmBkD,IAAI,CAAC,IAAI,CAACqqB,uBAAuB,CAAC,CAAG,IAAI,CAC5DvtB,EAAmBwB,iBAAiB,CAAG,IAAI,EAG/C,IAAI,CAACq6B,SAAS,CAAG,WACb,OAAO77B,EAAmBwB,iBAAiB,CAAC9qC,IAAI,CAAColE,aAAa,EAGlE,IAAI,CAAC91B,cAAc,CAAG,SAAUk2B,CAAO,CAAEC,CAAc,EAOnD,OANA,IAAI,CAACtN,6BAA6B,GAClC,IAAI,CAACn4D,IAAI,CAAGwlE,EACPC,GACD,IAAI,CAACp2B,UAAU,GAGZ,IAAI,CAACE,IAAI,EACpB,EAEA,IAAI,CAACm2B,yBAAyB,CAAG,SAAUlR,CAAK,CAAEmR,CAAS,EACvD,IAAIj5D,EAAW,EAAE,CACbi5D,GACAj5D,EAAS9L,IAAI,CAAC+kE,GAElB,IAAK,IAAI3mE,EAAI,EAAGA,EAAIw1D,EAAMr4D,MAAM,CAAE6C,IAC9B0N,EAAS9L,IAAI,CAAC4zD,CAAK,CAACx1D,EAAE,CAAC4mE,MAAM,EAEjC,OAAOl5D,CACX,EAEA,IAAI,CAACm5D,kBAAkB,CAAG,SAAUC,CAAW,EAU3C,MATe,CACXz4D,GAAIy4D,EAAYz4D,EAAE,CAClBu4D,OAAQE,EAAYF,MAAM,CAC1BG,QAASD,EAAYC,OAAO,CAC5BC,OAAQF,EAAYE,MAAM,CAC1BC,QAASH,EAAYG,OAAO,CAC5BC,SAAUJ,EAAYI,QAAQ,CAC9BC,SAAUL,EAAYK,QAAQ,CAGtC,EAEA,IAAI,CAAChS,gBAAgB,CAAG,SAAUtD,CAAQ,EACtC,IAAI17C,EAAW,EAAE,CACboG,EAAWtI,EAAGuI,KAAK,UAIO,cAA1B,IAAI,CAACxb,IAAI,CAACgqC,WAAW,EACrB,KAAI,CAAChqC,IAAI,CAACgqC,WAAW,CAAG,MAAK,EAG7B,gBAAI,CAAChqC,IAAI,CAACgqC,WAAW,EACrBzuB,EAAS1b,MAAM,IAKnB,IAAI,CAACwvC,UAAU,GACf,IAAI,CAACE,IAAI,GAETjG,EAAmBolB,eAAe,CAACmC,EAAU,QAAQv1D,IAAI,CACrD,YACI,IAAIs5D,EAAmB,IAAI,CAACsD,YAAY,CAACrH,GAEzC,GAAI+D,CAAoB,GAApBA,GAA+DA,MAAlCA,EAA6D,CAItF7kB,MAAM6kB,EAAiBtzC,QAAQ,GAC/BszC,CAAAA,EAAiBtzC,QAAQ,CAAG,EAAC,EAIjCvN,EAAeE,IAAI,CAAC,OAAQ,eAC5BhN,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAI9M,EAAUwH,EAAqBiG,YAAY,CAAC,CAAE6D,MAAO8jD,CAAiB,GAC1Ez/C,EAASvU,IAAI,CAACpB,EAAQlE,IAAI,CAACg2D,IAC/B,CAEA/1C,EAAS3b,OAAO,CAAC,CAAEuV,SAAUlC,EAAGqC,GAAG,CAACH,EAAU,EAClD,GAAE7b,IAAI,CAAC,IAAI,IAGRiiB,EAAS/b,OAAO,EAG3B,IAAI,CAAC4mE,iBAAiB,CAAG,SAAUC,CAAO,CAAEC,CAAI,EAE5C,IAAK,IADD9R,EAAQ,IAAI,CAACx0D,IAAI,CAACumE,KAAK,CAClBvnE,EAAI,EAAGA,EAAIw1D,EAAMr4D,MAAM,CAAE6C,IAE1Bw1D,CAAK,CAACx1D,EAAE,CAAC4mE,MAAM,EAAIS,GACnB7R,CAAAA,CAAK,CAACx1D,EAAE,CAAC+mE,OAAO,CAAGO,CAAG,EAK9B,OAFA,IAAI,CAACj3B,UAAU,GAER,IAAI,CAACE,IAAI,EACpB,EAEA,IAAI,CAACi3B,UAAU,CAAG,SAAUH,CAAO,CAAEC,CAAI,EAErC,IAAK,IADD9R,EAAQ,IAAI,CAACx0D,IAAI,CAACumE,KAAK,CAClBvnE,EAAI,EAAGA,EAAIw1D,EAAMr4D,MAAM,CAAE6C,IAE1Bw1D,CAAK,CAACx1D,EAAE,CAAC4mE,MAAM,EAAIS,GACnB7R,EAAM3zD,MAAM,CAAC7B,EAAG,GAKxB,OAFA,IAAI,CAACqwC,UAAU,GAER,IAAI,CAACE,IAAI,EACpB,CACJ,EAOIoiB,EAAY,SAAUnB,CAAG,EACzBgF,EAAY8C,KAAK,CAAC,IAAI,CAAEC,WAExB,IAAI,CAACrB,mBAAmB,CAAG,WACvB5tB,EAAmBkD,IAAI,CAAC,IAAI,CAACqqB,uBAAuB,CAAC,CAAG,IAAI,CAC5DvtB,EAAmBqpB,eAAe,CAAG,IAAI,EAG7C,IAAI,CAACwS,SAAS,CAAG,WACb,OAAO77B,EAAmBqpB,eAAe,CAAC3yD,IAAI,CAAColE,aAAa,EAGhE,IAAI,CAAC91B,cAAc,CAAG,SAAUm3B,CAAK,EAIjC,OAHA,IAAI,CAACzmE,IAAI,CAAGymE,EACZ,IAAI,CAACp3B,UAAU,GAER,EACX,CACJ,EAOI4iB,EAAyB,SAAUzB,CAAG,EACtC8M,EAAehF,KAAK,CAAC,IAAI,CAAEC,WAC3B,IAAI,CAACqJ,OAAO,CAAGtE,EACf,IAAI,CAAC9F,WAAW,CAAG,+BACnB,IAAI,CAAC+F,gBAAgB,CAAG,SACxB,IAAI,CAAC3F,aAAa,CAAG,KAErB,IAAI,CAACuN,SAAS,CAAG,WACb,OAAO77B,CAAkB,CAAC,IAAI,CAACkuB,WAAW,CAAC,CAACx3D,IAAI,CAAColE,aAAa,EAGlE,IAAI,CAAC91B,cAAc,CAAG,SAAUkhB,CAAG,EAI/B,OAHA,IAAI,CAACxwD,IAAI,CAAGwwD,EACZ,IAAI,CAAC/jB,QAAQ,CAAG,GAChB,IAAI,CAACmzB,YAAY,CAAC,IACX,EACX,EAEA,IAAI,CAAClI,MAAM,CAAG,SAAUnmB,CAAG,CAAEkI,CAAG,CAAEsnB,CAAe,CAAEC,CAAW,CAAEC,CAAa,EACzE,IAAI/xB,EAAU,IAAI,CAAC0yB,OAAO,CAAC9mE,SAAS,CAAC48D,MAAM,CAACv+D,IAAI,CAAC,IAAI,CAAEo4C,EAAKkI,EAAKsnB,EAAiBC,EAAaC,GAE/F,OADA,IAAI,CAACrB,YAAY,CAAC1wB,GACXA,CACX,EAEA,IAAI,CAAC0wB,YAAY,CAAG,SAAU1wB,CAAO,EAC7B,IAAI,CAAC0oB,aAAa,EAAI1oB,GACtB5F,EAAmBkD,IAAI,CAAC,IAAI,CAACorB,aAAa,CAAC,CAACC,aAAa,EAEjE,EAEA,IAAI,CAAC9D,2BAA2B,CAAG,SAAUlD,CAAQ,CAAEyS,CAAiB,EACpE,IAAInuD,EAAW,EAAE,CACboG,EAAWtI,EAAGuI,KAAK,GAKnB8nD,CAAAA,MAAAA,GAAiEA,CAAqB,GAArBA,CAAyB,GACtF,kBAAI,CAACtjE,IAAI,CAACgqC,WAAW,EACrB,KAAI,CAAChqC,IAAI,CAACgqC,WAAW,CAAG,MAAK,EAKrC,IAAI,CAACqF,UAAU,GACf,IAAI,CAACE,IAAI,GAGT,IAAI6qB,EAAiB,EAAE,CA+BvB,OA9BAA,EAAex5D,IAAI,CAACiwD,GAEpBvnB,EAAmBolB,eAAe,CAACmC,EAAU,mBAAmBv1D,IAAI,CAChE,YACI,IAAK,IAAI0D,EAAI,EAAGA,EAAIo7D,EAAej+D,MAAM,CAAE6C,IAAK,CAC5C,IAAI41D,EAAmB,IAAI,CAACsD,YAAY,CAACkC,CAAc,CAACp7D,EAAE,EAG1D,GAAI41D,CAAoB,GAApBA,GAA+DA,MAAlCA,EAA6D,CAItF7kB,MAAM6kB,EAAiBtzC,QAAQ,GAC/BszC,CAAAA,EAAiBtzC,QAAQ,CAAG,EAAC,EAIjCvN,EAAeE,IAAI,CAAC,OAAQ,eAC5BhN,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAI9M,EAAUwH,EAAqBiG,YAAY,CAAC,CAAE6D,MAAO8jD,CAAiB,GAC1Ez/C,EAASvU,IAAI,CAACpB,EAAQlE,IAAI,CAACg2D,IAG/B,CACJ,CAEA/1C,EAAS3b,OAAO,CAAC,CAAEuV,SAAUlC,EAAGqC,GAAG,CAACH,EAAU,EAClD,GAAE7b,IAAI,CAAC,IAAI,GAGRiiB,EAAS/b,OAAO,CAE/B,EAEI0yD,EAAyB,SAAU1B,CAAG,EACtCwB,EAAgBsG,KAAK,CAAC,IAAI,CAAEC,WAC5B,IAAI,CAACqJ,OAAO,CAAGtE,EACf,IAAI,CAAC9F,WAAW,CAAG,+BAEnB,IAAI,CAACN,mBAAmB,CAAG,WACvB5tB,EAAmBkD,IAAI,CAAC,IAAI,CAACqqB,uBAAuB,CAAC,CAAG,IAAI,CAC5DvtB,CAAkB,CAAC,IAAI,CAACkuB,WAAW,CAAC,CAAG,IAAI,EAG/C,IAAI,CAACloB,cAAc,CAAG,SAAUkhB,CAAG,EAI/B,OAHA,IAAI,CAACxwD,IAAI,CAAGwwD,EACZ,IAAI,CAAC/jB,QAAQ,CAAG,GAET,EACX,EAEA,IAAI,CAACorB,aAAa,CAAG,WACjB,IAAI,CAACxoB,UAAU,GACf,IAAI,CAACE,IAAI,EACb,EAEA,IAAI,CAAC2rB,WAAW,CAAG,SAAUpuD,CAAE,CAAEsP,CAAK,EAElC,MAAOA,CADPA,EAAQA,GAAS,IAAI,CAACpc,IAAI,CAAC6hB,KAAK,EACnBi4B,IAAI,CAAC98B,CAAAA,EAAAA,EAAAA,CAAAA,EAASlQ,GAC/B,EAEA,IAAI,CAACqvD,eAAe,CAAG,SAAUl4D,CAAM,CAAEmY,CAAK,EAE1C,IAAK,IAA6BR,EAD9BuC,EAAS,KACJnf,EAAI,EAAGC,EAAImd,EAAMjgB,MAAM,CAAQ6C,EAAIC,IAGxCkf,CAAAA,EAASvC,KAAAA,CAFTA,EAAOQ,CAAK,CAACpd,EAAE,EAEDse,QAAQ,CAAC5G,kBAAkB,CAAC,SAAUzS,GAAiB2X,EAAO,IAAI,CAACugD,eAAe,CAACl4D,EAAQ2X,EAAK0B,QAAQ,GAH3Ete,KAS/C,OAAOmf,CACX,EAEA,IAAI,CAACuoD,OAAO,CAAG,SAAUziE,CAAM,CAAEmY,CAAK,CAAEuqD,CAAU,EAC9C,IAAIC,EAAYxqD,EAAMyqD,8BAA8B,CAAC,SAAU5iE,EAAQ,WAAY,WAAY0iE,GAC/F,OAAOC,KAAc9nE,IAAd8nE,EAA0BA,EAAY,IACjD,EAEA,IAAI,CAACnP,kBAAkB,CAAG,SAAUF,CAAI,CAAEl8D,CAAK,CAAEsrE,CAAU,CAAEG,CAAG,EAE5D,MAAOA,CADPA,EAAMA,GAAO,IAAI,CAAC9mE,IAAI,CAAC6hB,KAAK,EACjBglD,8BAA8B,CAACtP,EAAMl8D,EAAO,WAAY,WAAYsrE,EACnF,EAEA,IAAI,CAAChM,YAAY,CAAG,SAAUv+C,CAAK,CAAE2qD,CAAc,EAE/C,IAAK,IAA6BnrD,EAD9ByB,EAAY,KACPre,EAAI,EAAGC,EAAImd,EAAMjgB,MAAM,CAAQ6C,EAAIC,IAExCoe,CAAAA,EAAYzB,CADZA,EAAOQ,CAAK,CAACpd,EAAE,EACEoe,QAAQ,GAAK2pD,EAAiB,IAAI,CAACpM,YAAY,CAAC/+C,EAAK0B,QAAQ,CAAEypD,GAAkBnrD,CAAG,EAF1D5c,KAS/C,OAAOqe,CACX,EAEA,IAAI,CAAC2pD,+BAA+B,CAAG,SAAUxS,CAAK,EAIlD,IAAK,IAHD1pC,EAAS,EAAE,CACX1O,EAAQo4C,EAAMv2D,KAAK,GAEde,EAAI,EAAGA,EAAIod,EAAMjgB,MAAM,CAAE6C,IAAK,CACnC,IAAI4c,EAAOQ,CAAK,CAACpd,EAAE,CACf4c,EAAKqC,WAAW,GAChBrC,EAAK+D,SAAS,CAAG/D,EAAKqC,WAAW,CAAC,OAC3BrC,EAAKqC,WAAW,EAE3B6M,EAAOlqB,IAAI,CAACgb,EAChB,CAEA,OAAOkP,CACX,EAEA,IAAI,CAACm8C,oBAAoB,CAAG,WACxB,IAAMzW,EAAM,CACR3wC,UAAWhd,EAAqBS,SAAS,CAAC,2CAC1C8Z,SAAU7H,EAAAA,CAAeA,CAACmI,aAAa,CAACE,kBAAkB,CAC1DwD,SAAU,mBACd,EAEMuU,EAAO,IAAIy2B,EAAW8a,WAAW,CAAC1W,GAExC,IAAI,CAACxwD,IAAI,CAAC6hB,KAAK,CAACi3C,OAAO,CAACnjC,EAC5B,EAEA,IAAI,CAACwxC,cAAc,CAAG,SAAU3W,CAAG,CAAE4W,CAAM,EAEvC,IADIjpD,EACA5C,EAAWtI,EAAGuI,KAAK,GACnBma,EAAO,IAAIy2B,EAAW8a,WAAW,CAAC1W,GAEtC,GAAI76B,IAAAA,EAAK9V,SAAS,EAAU8V,KAAmB72B,IAAnB62B,EAAK9V,SAAS,EAAkB8V,OAAAA,EAAK9V,SAAS,CACtE,OAAQ8V,EAAKvY,QAAQ,EACjB,IAAK,eACDuY,EAAK9V,SAAS,CAAGhd,EAAqBS,SAAS,CAAC,0CAChD,KACJ,KAAK,OACDqyB,EAAK9V,SAAS,CAAGhd,EAAqBS,SAAS,CAAC,0CAChD,KACJ,KAAK,yBACDqyB,EAAK9V,SAAS,CAAGhd,EAAqBS,SAAS,CAAC,gDAChD,KACJ,KAAK,cACDqyB,EAAK9V,SAAS,CAAGhd,EAAqBS,SAAS,CAAC,yCAChD,KACJ,SACIqyB,EAAK9V,SAAS,CAAGhd,EAAqBS,SAAS,CAAC,6BAExD,CAEA8jE,GACAjpD,EAAS,IAAI,CAACjW,GAAG,CAACk/D,GAClBzxC,EAAKsU,YAAY,CAAG9rB,EAAOb,QAAQ,CAACnhB,MAAM,CAC1CgiB,EAAOb,QAAQ,CAAC1c,IAAI,CAAC+0B,IAErB,IAAI,CAAC31B,IAAI,CAAC6hB,KAAK,CAACjhB,IAAI,CAAC+0B,GAGzB,IAAIsuC,EAAkB,IAAI,CAACjkE,IAAI,CAACshB,QAAQ,CAgBxC,OAdA,IAAI,CAAC+tB,UAAU,GAEX,IAAI,CAACE,IAAI,GACTh0B,EAAS3b,OAAO,CAAC+1B,EAAKzxB,MAAM,GAE5B,IAAI,CAAClE,IAAI,CAACshB,QAAQ,CAAG2iD,EACjBmD,KAAWtoE,IAAXsoE,EACAjpD,EAAOb,QAAQ,CAACzc,MAAM,CAACsd,EAAOb,QAAQ,CAACnhB,MAAM,CAAG,EAAG,GAEnD,IAAI,CAAC6D,IAAI,CAAC6hB,KAAK,CAAChhB,MAAM,CAAC,IAAI,CAACb,IAAI,CAAC6hB,KAAK,CAAC1lB,MAAM,CAAG,EAAG,GAEvDof,EAAS1b,MAAM,IAGZ0b,EAAS/b,OAAO,EAI3B,IAAI,CAACg7D,+BAA+B,CAAG,SAAUhG,CAAK,EAClDA,EAAQA,GAAS,IAAI,CAACx0D,IAAI,CAAC6hB,KAAK,CAEhC,IAAK,IAAI7iB,EAAI,EAAGA,EAAIw1D,EAAMr4D,MAAM,CAAE6C,IAC9B,GAAIw1D,aAAAA,CAAK,CAACx1D,EAAE,CAACoe,QAAQ,EAAmBo3C,aAAAA,CAAK,CAACx1D,EAAE,CAACoe,QAAQ,CACrD,OAAOo3C,CAAK,CAACx1D,EAAE,CAIvB,IAAK,IAAIy7D,EAAI,EAAGA,EAAIjG,EAAMr4D,MAAM,CAAEs+D,IAC9B,GAAIjG,CAAK,CAACiG,EAAE,CAACn9C,QAAQ,CAACnhB,MAAM,CAAG,EAAG,CAC9B,IAAIu+D,EAAY,IAAI,CAACF,+BAA+B,CAAChG,CAAK,CAACiG,EAAE,CAACn9C,QAAQ,EACtE,GAAIo9C,EACA,OAAOA,CAEf,CAGJ,OAAO,IACX,EAGA,IAAI,CAACh6D,GAAG,CAAG,SAAU8vD,CAAG,CAAE6W,CAAY,EAClC,IAAI9rD,EAAWtI,EAAGuI,KAAK,GACnBma,EAAOy2B,EAAWsJ,MAAM,CAAClF,EAC7B76B,CAAAA,EAAKsU,YAAY,CAAG,IAAI,CAACjqC,IAAI,CAAC6hB,KAAK,CAAC1lB,MAAM,CAC1C,IAAI,CAAC6D,IAAI,CAAC6hB,KAAK,CAACjhB,IAAI,CAAC+0B,GAEjBA,CAAAA,IAAAA,EAAK9V,SAAS,EAAU8V,KAAmB72B,IAAnB62B,EAAK9V,SAAS,EAAkB8V,OAAAA,EAAK9V,SAAS,GACtE8V,CAAAA,EAAK9V,SAAS,CAAGhd,EAAqBS,SAAS,CAAC,6BAA4B,EAGhF,IAAI2gE,EAAkB,IAAI,CAACjkE,IAAI,CAACshB,QAAQ,CAgBxC,OAbK+lD,GACD,IAAI,CAACh4B,UAAU,GAEf,IAAI,CAACE,IAAI,GAETh0B,EAAS3b,OAAO,CAAC+1B,EAAKzxB,MAAM,GAE5B,IAAI,CAAClE,IAAI,CAACshB,QAAQ,CAAG2iD,EACrB,IAAI,CAACjkE,IAAI,CAAC6hB,KAAK,CAAChhB,MAAM,CAAC,IAAI,CAACb,IAAI,CAAC6hB,KAAK,CAAC1lB,MAAM,CAAG,EAAG,GAEnDof,EAAS1b,MAAM,IAGZ0b,EAAS/b,OAAO,EAI3B,IAAI8nE,EAAuB,SAAUC,CAAW,CAAEC,CAAe,CAAEC,CAAW,EAC1E,IAAK,IAAIzoE,EAAI,EAAGA,EAAIuoE,EAAYprE,MAAM,CAAE6C,IAChCyoE,EAC8C,aAA1CF,CAAW,CAACvoE,EAAE,CAACoe,QAAQ,CAACzK,WAAW,IACnC60D,EAAgB5mE,IAAI,CAAC2mE,CAAW,CAACvoE,EAAE,CAACif,WAAW,EAGnDupD,EAAgB5mE,IAAI,CAAC2mE,CAAW,CAACvoE,EAAE,CAACif,WAAW,EAE/CspD,CAAW,CAACvoE,EAAE,CAACse,QAAQ,CAACnhB,MAAM,CAAG,GACjCmrE,EAAqBC,CAAW,CAACvoE,EAAE,CAACse,QAAQ,CAAEkqD,EAAiBC,EAG3E,EAyJA,SAASC,EAAkB56D,CAAE,CAAE0nD,CAAK,CAAEuG,CAAS,CAAE4M,CAAkB,CAAEC,CAAY,EAG7E,IAAK,IAFDC,EAAkB,EAAE,CAEf7oE,EAAI,EAAGA,EAAIw1D,EAAMr4D,MAAM,CAAE6C,IAAK,CACnC,GAAIw1D,CAAK,CAACx1D,EAAE,CAACkF,MAAM,GAAK4I,EACpB,OAAOiuD,EAAY,CAAEl/C,QAAS+rD,GAAgBpT,EAAO54C,KAAM44C,CAAK,CAACx1D,EAAE,EAAKw1D,CAAK,CAACx1D,EAAE,CAKpF,GAJWw1D,CAAK,CAACx1D,EAAE,CAACse,QAAQ,EAAIk3C,CAAK,CAACx1D,EAAE,CAACse,QAAQ,CAACnhB,MAAM,CAAG,GACvD0rE,EAAgBjnE,IAAI,CAAC4zD,CAAK,CAACx1D,EAAE,EAG7BA,IAAMw1D,EAAMr4D,MAAM,CAAG,GAAK,CAACwrE,EAC3B,IAAK,IAAIlN,EAAI,EAAGA,EAAIoN,EAAgB1rE,MAAM,CAAEs+D,IAAK,CAC7C,IAAIqN,EAAgBJ,EAAkB56D,EAAI+6D,CAAe,CAACpN,EAAE,CAACn9C,QAAQ,CAAEy9C,EAAW,GAAO,CACrF58C,OAAQ0pD,CAAe,CAACpN,EAAE,CAC1BQ,WAAY,GAAiB2M,EAAa3M,UAAU,EAAK4M,CAAe,CAACpN,EAAE,GAI/E,GAAIqN,GAAiBA,IAAAA,EACjB,OAAOA,CAEf,CAER,CAEA,OAAO,EACX,CAjLA,IAAI,CAACC,aAAa,CAAG,WAEjB,OAAOC,EADoB,UAAU,IAAI,CAAChoE,IAAI,CAAC6hB,KAAK,CAAE,CAAEzE,SAAU,UAAW,GACzD6qD,uBAAuB,CAAC,YAChD,EAGA,IAAI,CAACtP,SAAS,CAAG,SAAUC,CAAU,CAAE6O,CAAW,EAC9C,IAAIjT,EAAQ,EAAE,CAOd,MALIoE,CAAAA,MAAAA,GAAmDA,IAAAA,CAAe,GAClEA,CAAAA,EAAatvB,EAAmBgD,UAAU,EAE9CkoB,EAAM5zD,IAAI,CAACg4D,GACX0O,EAAqBh+B,EAAmBkD,IAAI,CAACosB,EAAW,CAAC54D,IAAI,CAAC6hB,KAAK,CAAE2yC,EAAOiT,GACrEjT,CACX,EAGA,IAAI,CAACgH,SAAS,CAAG,SAAUhL,CAAG,CAAEhwC,CAAQ,EACpC,IAAIjF,EAAWtI,EAAGuI,KAAK,GACnBma,EAAOy2B,EAAWsJ,MAAM,CAAClF,GACzBryC,EAAS,IAAI,CAACjW,GAAG,CAACsY,EACtBmV,CAAAA,EAAKsU,YAAY,CAAG9rB,EAAOb,QAAQ,CAACnhB,MAAM,CAC1CgiB,EAAOb,QAAQ,CAAC1c,IAAI,CAAC+0B,GAGjBA,CAAAA,IAAAA,EAAK9V,SAAS,EAAU8V,KAAmB72B,IAAnB62B,EAAK9V,SAAS,EAAkB8V,OAAAA,EAAK9V,SAAS,GACtE8V,CAAAA,EAAK9V,SAAS,CAAGhd,EAAqBS,SAAS,CAAC,6BAA4B,EAGhF,IAAI2gE,EAAkB,IAAI,CAACjkE,IAAI,CAACshB,QAAQ,CAWxC,OARA,IAAI,CAAC+tB,UAAU,GACX,IAAI,CAACE,IAAI,GACTh0B,EAAS3b,OAAO,CAAC+1B,EAAKzxB,MAAM,GAE5B,IAAI,CAAClE,IAAI,CAACshB,QAAQ,CAAG2iD,EACrB9lD,EAAOb,QAAQ,CAACzc,MAAM,CAACsd,EAAOb,QAAQ,CAACnhB,MAAM,CAAG,EAAG,GACnDof,EAAS1b,MAAM,IAEZ0b,EAAS/b,OAAO,EAG3B,IAAI,CAAC0oE,WAAW,CAAG,SAAUp7D,CAAE,CAAE0nD,CAAK,EAClC,IAAIxgB,EAAOwgB,EAAMv2D,KAAK,GAClBkqE,EAAY,IAAI,CAACjgE,GAAG,CAAC4E,GAIzB,OAFAknC,EAAKnzC,MAAM,CAACmzC,EAAKp1C,OAAO,CAACupE,GAAY,GAE9Bn0B,CACX,EAEA,IAAI,CAAC7xC,MAAM,CAAG,SAAU2K,CAAE,EACtB,IAAMyO,EAAWtI,EAAGuI,KAAK,GACnB2sD,EAAY,IAAI,CAACjgE,GAAG,CAAC4E,EAAI,IACzBs7D,EAAmBD,EAAUtsD,OAAO,CAACsC,MAAM,CAAGgqD,EAAUtsD,OAAO,CAACsC,MAAM,CAACb,QAAQ,CAAG6qD,EAAUtsD,OAAO,CACnGwsD,EAAeF,EAAUvsD,IAAI,CAGnC,GAAIjjB,EAAQ62C,eAAe,CAAC44B,IAAqBC,EAAc,CAC3D,GAAID,IAAAA,EAAiBjsE,MAAM,EAAUgsE,EAAUtsD,OAAO,CAACsC,MAAM,CACzD,OAAO,IAAI,CAAChc,MAAM,CAACgmE,EAAUtsD,OAAO,CAACsC,MAAM,CAACja,MAAM,EAElDkkE,EAAiBvnE,MAAM,CAACunE,EAAiBxpE,OAAO,CAACypE,GAAe,EAExE,MACI9sD,EAAS1b,MAAM,CAACod,EAAAA,CAAUA,CAACqrD,QAAQ,EAUvC,OAPA,IAAI,CAACj5B,UAAU,GACX,IAAI,CAACE,IAAI,GACTh0B,EAAS3b,OAAO,GAEhB2b,EAAS1b,MAAM,GAGZ0b,EAAS/b,OAAO,EAI3B,IAAI,CAACk8D,eAAe,CAAG,SAAUC,CAAa,CAAEnH,CAAK,CAAEoH,CAAe,EAIlE,IAFIC,EACAC,EACAC,EAAqB,CAAC,WAAY,WAAY,mBAAmB,CAGrE,GAAIvH,GAAAA,EAAMr4D,MAAM,CACZ,MAAO,GAIX,IADA0/D,EAAmBG,EAAe,EAC3BH,GAAoB,GAAG,CAC1B,GAAIE,EAAAA,EAAmBn9D,OAAO,CAAC41D,CAAK,CAACqH,EAAiB,CAACz+C,QAAQ,CAACzK,WAAW,IACvE,OAAO6hD,CAAK,CAACqH,EAAiB,CAC3B,GAAID,GACPE,CAAAA,EAAc,IAAI,CAACtB,+BAA+B,CAAChG,CAAK,CAACqH,EAAiB,CAACv+C,QAAQ,GAE/E,OAAOw+C,CAGfD,CAAAA,GACJ,CAGA,IADAA,EAAmBG,EAAe,EAC3BH,EAAmBrH,EAAMr4D,MAAM,EAAE,CACpC,GAAI4/D,EAAAA,EAAmBn9D,OAAO,CAAC41D,CAAK,CAACqH,EAAiB,CAACz+C,QAAQ,CAACzK,WAAW,IACvE,OAAO6hD,CAAK,CAACqH,EAAiB,CAC3B,GAAID,GACPE,CAAAA,EAAc,IAAI,CAACtB,+BAA+B,CAAChG,CAAK,CAACqH,EAAiB,CAACv+C,QAAQ,GAE/E,OAAOw+C,CAGfD,CAAAA,GACJ,CAEA,MAAO,EACX,EAGA,IAAI,CAACI,WAAW,CAAG,SAAUnvD,CAAE,EAC3B,IAQI6uD,EACAO,EATAxB,EAAY,IAAI,CAACxyD,GAAG,CAAC4E,EAAI,IAE7B,GAAI4tD,KAAAA,EACA,OAAOA,EAGX,IAAIl6C,EAAWk6C,EAAU7+C,OAAO,CAACsC,MAAM,CAAGu8C,EAAU7+C,OAAO,CAACsC,MAAM,CAACja,MAAM,CAAG,WAc5E,CATAw2D,EAAU7+C,OAAO,CAAG6+C,EAAU7+C,OAAO,CAACsC,MAAM,CAAGu8C,EAAU7+C,OAAO,CAACsC,MAAM,CAACb,QAAQ,CAAGo9C,EAAU7+C,OAAO,CAGpG8/C,EAAgBjB,EAAU7+C,OAAO,CAACjd,OAAO,CAAC87D,EAAU9+C,IAAI,EAMpD,CAHJsgD,EAAU,IAAI,CAACR,eAAe,CAACC,EAAejB,EAAU7+C,OAAO,CAVzC,CAAC2E,EAUyD,IAGhEA,GAIT07C,EAHI,IAAI,CAACD,WAAW,CAACz7C,EAIhC,EAgCA,IAAI,CAAC+nD,oBAAoB,CAAG,SAAUpR,CAAI,EAMtC,IAAK,IALD0Q,EAAkB,EAAE,CACpB/6D,EAAKqqD,EAAKrqD,EAAE,CACZ0nD,EAAQ2C,EAAK3C,KAAK,EAAI,EAAE,CACxBgU,EAAWrR,EAAKqR,QAAQ,EAAI,EAAE,CAEzBxpE,EAAI,EAAGA,EAAIw1D,EAAMr4D,MAAM,CAAE6C,IAAK,CACnC,GAAIw1D,CAAK,CAACx1D,EAAE,CAACkF,MAAM,GAAK4I,EAAI,CACxB07D,EAAS1P,OAAO,CAACtE,CAAK,CAACx1D,EAAE,CAACkF,MAAM,EAChC,KACJ,CAIA,GAJWswD,CAAK,CAACx1D,EAAE,CAACse,QAAQ,EAAIk3C,CAAK,CAACx1D,EAAE,CAACse,QAAQ,CAACnhB,MAAM,CAAG,GACvD0rE,EAAgBjnE,IAAI,CAAC4zD,CAAK,CAACx1D,EAAE,EAG7BA,IAAMw1D,EAAMr4D,MAAM,CAAG,EACrB,IAAK,IAAIs+D,EAAI,EAAGA,EAAIoN,EAAgB1rE,MAAM,CAAEs+D,IAEkB,IAAtDiN,EAAkB56D,EAAI+6D,CAAe,CAACpN,EAAE,CAACn9C,QAAQ,IACjDkrD,EAAS1P,OAAO,CAAC+O,CAAe,CAACpN,EAAE,CAACv2D,MAAM,EAE1C,IAAI,CAACqkE,oBAAoB,CAAC,CACtBz7D,GAAIA,EACJ0nD,MAAOqT,CAAe,CAACpN,EAAE,CAACn9C,QAAQ,CAClCkrD,SAAUA,CACd,GAIhB,CAEA,OAAOA,CACX,EAGA,IAAI,CAACtgE,GAAG,CAAG,SAAU4E,CAAE,CAAE27D,CAAU,CAAEjU,CAAK,EAGtC,IAAIkG,EAAYgN,EAAkB56D,EAFlC0nD,EAAQA,GAAS,IAAI,CAACx0D,IAAI,CAAC6hB,KAAK,CAEa4mD,UAE7C,KAAI/N,EACO,MAGPA,EAAU7+C,OAAO,EAAI6+C,EAAU7+C,OAAO,CAACsC,MAAM,EAC7Cu8C,CAAAA,EAAUQ,WAAW,CAAG,IAAI,CAACA,WAAW,CAACR,EAAU7+C,OAAO,CAACsC,MAAM,CAACja,MAAM,CAAEswD,EAAK,EAG5EkG,EACX,EAGA,IAAI,CAAChD,MAAM,CAAG,SAAU5qD,CAAE,CAAE2sC,CAAG,EAIvBsqB,EADAj3D,EACgB,IAAI,CAAC5E,GAAG,CAAC4E,GAET,IAAI,CAAC9M,IAAI,CAG7B,IARI+jE,EAQAC,EAAgBh+C,QAAQ0N,IAAI,CAACqwC,GAC7BE,EAAkB,IAAI,CAACjkE,IAAI,CAACshB,QAAQ,CAGxC,GAAIyiD,MAAAA,EAAuB,CAKvB,GAJAxyD,EAAciwD,YAAY,CAACuC,EAAetqB,GAE1C,IAAI,CAACpK,UAAU,GAEX,IAAI,CAACE,IAAI,GACT,MAAO,GAEPh+B,EAAciwD,YAAY,CAACuC,EAAeC,GAC1C,IAAI,CAAChkE,IAAI,CAACshB,QAAQ,CAAG2iD,CAE7B,CACA,MAAO,EACX,EAEA,IAAI,CAACljD,eAAe,CAAG,SAAUjU,CAAE,CAAEkU,CAAQ,EAEzC,OAAO0nD,IADe,CAAChR,MAAM,CAAC5qD,EAAI,CAAE+S,UAAWmB,CAAS,GACrC/N,EAAGrT,OAAO,GAAKqT,EAAGpT,MAAM,EAC/C,EAEA,IAAI,CAACqxD,gBAAgB,CAAG,SAAUqS,CAAY,CAAEC,CAAa,EAEzD,GAAIA,MAAAA,GAAyBD,MAAAA,EACzB,IAAK,IAAIvkE,EAAI,EAAGA,EAAIwkE,EAAcrnE,MAAM,CAAE6C,IAAK,CAC3C,GAAIwkE,CAAa,CAACxkE,EAAE,CAACkF,MAAM,GAAKq/D,EAC5B,OAAOC,CAAa,CAACxkE,EAAE,CAG3B,GAAIwkE,aAAAA,CAAa,CAACxkE,EAAE,CAACoe,QAAQ,EAAmBomD,qBAAAA,CAAa,CAACxkE,EAAE,CAACoe,QAAQ,CAAyB,CAC9F,IAAIurD,EAAe,IAAI,CAACzX,gBAAgB,CAACqS,EAAcC,CAAa,CAACxkE,EAAE,CAACse,QAAQ,EAEhF,GAAIqrD,MAAAA,EAEA,OADA3pE,EAAIwkE,EAAcrnE,MAAM,CACjBwsE,CAEf,CACJ,CAEJ,OAAO,IACX,EAGA,IAAI,CAACC,WAAW,CAAG,SAAUxsD,CAAK,CAAEysD,CAAU,EAC1C,IAAK,IAA6BjtD,EAAzB5c,EAAI,EAAGC,EAAImd,EAAMjgB,MAAM,CAAQ6C,EAAIC,EAAGD,IAC3C4c,EAAOQ,CAAK,CAACpd,EAAE,CACf6pE,EAAWjoE,IAAI,CAACgb,GAEa,IAAzBA,EAAK0B,QAAQ,CAACnhB,MAAM,EACpB,IAAI,CAACysE,WAAW,CAAChtD,EAAK0B,QAAQ,CAAEurD,GAGxC,OAAOA,CACX,EAEA,IAAI,CAACC,gBAAgB,CAAG,SAAU1sD,CAAK,EACnC,IAAMm1B,EAAM,IAAIw3B,IAOhB,OANA,IAAI,CAACH,WAAW,CAACxsD,EAAO,EAAE,EAAE3e,OAAO,CAAC,IAC3B8zC,EAAI0c,GAAG,CAACryC,EAAK+D,SAAS,GACvB4xB,EAAI7wC,GAAG,CAACkb,EAAK+D,SAAS,CAE9B,GAEO3hB,MAAM4rD,IAAI,CAACrY,EACtB,EAEA,IAAI,CAACspB,WAAW,CAAG,SAAU/tD,CAAE,CAAE0nD,CAAK,EAClC,OAAO,IAAI,CAAC+T,oBAAoB,CAAC,CAC7Bz7D,GAAIA,EACJ0nD,MAAOA,GAAS,IAAI,CAACx0D,IAAI,CAAC6hB,KAAK,EAEvC,EAEA,IAAI,CAACkzC,gCAAgC,CAAG,WACpC,IAAIlE,EAAW,IAAI,CAACgG,uBAAuB,CACvCgS,EAAa,EAAE,CACd,IAAI,CAAC7oE,IAAI,GAAI,KAAI,CAACA,IAAI,CAAC6hB,KAAK,CAAC1lB,MAAM,EAAI,KAK5CqoE,IAD2B,CAACoE,WAAW,CAAC,IAAI,CAAC5oE,IAAI,CAAC6hB,KAAK,CAAEgnD,GACxCjoE,IAAI,CAACiwD,GACtB7qC,QAAQvoB,OAAO,CAACorE,EAAY,SAAUjtD,CAAI,EACtC0tB,EAAmB4mB,OAAO,CAACt0C,EAAK+D,SAAS,CAC7C,GACJ,EAGA,IAAI,CAAC+zC,2BAA2B,CAAG,SAAU9sD,CAAO,EAClB,cAA1B,IAAI,CAAC5G,IAAI,CAACgqC,WAAW,EACrB,KAAI,CAAChqC,IAAI,CAACgqC,WAAW,CAAG,MAAK,EAGjC,IAAI,CAACqF,UAAU,GACf,IAAI,CAACE,IAAI,GAET,IAAIW,EAAO,IAAI,CACX30B,EAAWtI,EAAGuI,KAAK,GAoBvB,OAlBA8tB,EAAmBolB,eAAe,CAAC9nD,EAAS,mBAAmBtL,IAAI,CAC/D,YAEI,IAAI6Z,EAAW,IAAI,CAAC6zD,SAAS,GAGzBj5B,MAAMG,EAAKlwC,IAAI,CAACshB,QAAQ,GACxB4uB,CAAAA,EAAKlwC,IAAI,CAACshB,QAAQ,CAAG,EAAC,EAI1BvN,EAAeE,IAAI,CAAC,OAAQ,mBAC5B,IAAMzU,EAAUwH,EAAqBiG,YAAY,CAAC,CAAE6D,MAAOo/B,EAAKlwC,IAAI,GACpEmV,EAASvU,IAAI,CAACpB,EAAQlE,IAAI,CAACg2D,KAE3B/1C,EAAS3b,OAAO,CAAC,CAAEuV,SAAUlC,EAAGqC,GAAG,CAACH,EAAU,EAClD,GAAE7b,IAAI,CAAC,IAAI,GAERiiB,EAAS/b,OAAO,EAG3B,IAAI,CAACwpE,SAAS,CAAG,WACb,IAAM7zD,EAAW,EAAE,CAGnB,IAAK,IAAI8zD,KAFU,IAAI,CAACH,gBAAgB,CAAC,IAAI,CAAC9oE,IAAI,CAAC6hB,KAAK,EAExB,CAC5B,IAAMqoB,EAAUZ,EAAmBkD,IAAI,CAACy8B,EAAQ,CAGhD,GAAI/+B,GAAWA,CAAqB,IAArBA,EAAQuC,QAAQ,CAAY,CACvC,IAAI,CAAC4C,UAAU,GACf,IAAI,CAACE,IAAI,CAAC05B,EAAS/+B,EAAQlqC,IAAI,EAG3B+vC,MAAM7F,EAAQlqC,IAAI,CAACshB,QAAQ,GAC3B4oB,CAAAA,EAAQlqC,IAAI,CAACshB,QAAQ,CAAG,EAAC,EAG7Bra,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAM9M,EAAUwH,EAAqBiG,YAAY,CAAC,CAAE6D,MAAOo5B,EAAQlqC,IAAI,GACvEmV,EAASvU,IAAI,CAACpB,EAAQlE,IAAI,CAACg2D,IAC/B,CACJ,CAEA,OAAOn8C,CACX,EAMA,IAAI,CAAC+zD,QAAQ,CAAG,IACZ,IAAMC,EAAoB,IAAI,CAACjhE,GAAG,CAACiF,EAAa4vD,YAAY,CAAE,GAAM,IAAI,CAAC/8D,IAAI,CAAC6hB,KAAK,EACnF,GAA0B,OAAtBsnD,GAMA,CAFiB,IAAI,CAAChnE,MAAM,CAACgL,EAAa4vD,YAAY,CAAE,IAHxD,MAAO,GASX,IAAML,EAAW1+D,MAAMmsB,OAAO,CAACg/C,EAAkBttD,OAAO,EAAIstD,EAAkBttD,OAAO,CAAGstD,EAAkBttD,OAAO,CAACsC,MAAM,CAACb,QAAQ,CAG3Hs/C,EAAgBC,OADI1vD,EAAasvD,YAAY,CACTC,EAASvgE,MAAM,CAAGugE,EAAS57C,SAAS,CAAC9D,CAAAA,EAAAA,EAAAA,CAAAA,EAAS7P,EAAasvD,YAAY,GAMjH,OALAC,EAAS77D,MAAM,CAAC+7D,EAAe,EAAGuM,EAAkBvtD,IAAI,EAExD,IAAI,CAACyzB,UAAU,GACf,IAAI,CAACE,IAAI,GAEF,EACX,CACJ,EAOIyvB,EAAsB,SAAUvlB,CAAG,CAAE2vB,CAAW,EAIhD,IAAK,IAHDznE,EAAOY,OAAOZ,IAAI,CAAC83C,GACnB19C,EAAM,GAEDiD,EAAI,EAAGC,EAAI0C,EAAKxF,MAAM,CAAE6C,EAAIC,EAAGD,IACpCjD,EAAM4F,CAAI,CAAC3C,EAAE,CACTy6C,EAAIvvB,cAAc,CAACnuB,IAAQ09C,CAAG,CAAC19C,EAAI,GAC/BqtE,KAAAA,EAAYxqE,OAAO,CAAC7C,GACpB09C,CAAG,CAAC19C,EAAI,CAAGwV,EAAcoR,IAAI,GAG7B0mD,GADO5vB,CAAG,CAAC19C,EAAI,CACa,SAAUutE,CAAU,EAC5CtK,EAAoBsK,EAAYF,EACpC,GAIhB,EAEIC,GAAwB,SAAU1zC,CAAI,CAAEr1B,CAAQ,EAC5Cq1B,EAAKp2B,WAAW,GAAKgD,OACrBjC,EAASq1B,GACFA,EAAKp2B,WAAW,GAAKvB,OAC5B23B,EAAKl4B,OAAO,CAAC,SAAU8rE,CAAW,EAC1BA,GACAF,GAAsBE,EAAajpE,EAE3C,EAER,EAEA,IAAMgxD,GAAoB,SAAUtpD,CAAQ,EACxC,GAAIA,KAAkBlJ,IAAlBkJ,EAAShI,IAAI,CAAgB,CAC7B,IAAMkqC,EAAUZ,EAAmBwP,MAAM,CAAC9wC,EAAShI,IAAI,CAACsa,OAAO,QAC3D4vB,GACAA,CAAAA,EAAQlqC,IAAI,CAACk2D,WAAW,CAAGluD,EAAShI,IAAI,CAACupC,KAAK,CAACjoB,QAAQ,CAE/D,CACA,OAAOtZ,CACX,EAEMqyD,GAA0B,IACM,YAA9BryD,EAAShI,IAAI,CAACyuD,WAAW,EACzBnlB,EAAmB4mB,OAAO,CAACloD,EAAShI,IAAI,CAACsa,OAAO,EAG7CtS,GAGL0wD,GAAyB,CAACx4D,EAAWspE,EAAkBvlE,EAAQwlE,KACjE,GAAIvpE,MAAAA,EAAUy0B,MAAM,CAAU,CAC1B,IAAM/Y,EAAO6tD,EAAavhE,GAAG,CAACjE,GAE9B,GAAI2X,KAAAA,EAAa,CACb,IAAM8tD,EAAmB,IAAMz2D,EAAGpT,MAAM,CAACK,GACzC,OAAOopC,EACF0rB,iBAAiB,CAACsE,CAAAA,EAAAA,EAAAA,CAAAA,EAAqB19C,IACvCtgB,IAAI,CAAC,IAAMguC,EAAmBypB,cAAc,CAACyW,IAC7CluE,IAAI,CAACouE,EAAkBA,EAChC,CACJ,CAEA,OAAOz2D,EAAGpT,MAAM,CAACK,EACrB,EAqBA,OAnBAvH,EAAQsC,WAAW,CAAC62D,EAAiB0D,GACrC78D,EAAQsC,WAAW,CAAC+2D,EAAiBwD,GACrC78D,EAAQsC,WAAW,CAAC22D,EAAa4D,GACjC78D,EAAQsC,WAAW,CAACy2D,EAA0B8D,GAC9C78D,EAAQsC,WAAW,CAAC02D,EAAW6D,GAC/B78D,EAAQsC,WAAW,CAACu2D,EAAoBgE,GACxC78D,EAAQsC,WAAW,CAACw2D,EAAa+D,GACjC78D,EAAQsC,WAAW,CAACi3D,EAAwBF,GAE5Cr5D,EAAQsC,WAAW,CAAC82D,EAAauL,GACjC3kE,EAAQsC,WAAW,CAACg3D,EAAwBqL,GAC5C3kE,EAAQsC,WAAW,CAAC42D,EAAayL,GAEjCzpD,EAAqB81D,WAAW,CAAC9b,0BAA0B,CAAGvkB,EAAmBukB,0BAA0B,CAACv0D,IAAI,CAACgwC,GACjHz1B,EAAqB81D,WAAW,CAACzZ,OAAO,CAAG5mB,EAAmB4mB,OAAO,CAAC52D,IAAI,CAACgwC,GAC3Ez1B,EAAqB81D,WAAW,CAACtc,OAAO,CAAG/jB,EAAmB+jB,OAAO,CAAC/zD,IAAI,CAACgwC,GAC3Ez1B,EAAqB81D,WAAW,CAACC,KAAK,CAAGtgC,EAAmB8qB,uBAAuB,CAAC96D,IAAI,CAACgwC,GACzFz1B,EAAqB81D,WAAW,CAAC7wB,MAAM,CAAGxP,EAAmBwP,MAAM,CACnEjlC,EAAqB81D,WAAW,CAAClZ,YAAY,CAAGnnB,EAAmBmnB,YAAY,CACxEnnB,CACX,EACH,C,uHEtzHDnqC,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,aAAc,CAC7B,OACA,gBACA,kBACA,uBACA,kBACA,cACA,iBACA,0BACA,SAAUljB,CAAI,CAAEa,CAAa,CAAEZ,CAAe,CAAE9N,CAAoB,CAAEgnE,CAAe,CAAEC,CAAW,CAAExd,CAAc,CAAEyd,CAAuB,EAKvI,IAAInd,EAAY,CACZliB,aAAc,cACdG,KAAM,OACNm/B,WAAY,kBACZz/B,mBAAoB,yBACpBsiB,GAAI,KACJC,KAAM,OACNC,cAAe,eACf7hB,KAAM,OACNx1B,SAAU,WACV+zB,cAAe,eACfh0B,kBAAmB,mBACnBw0D,cAAe,uBACfx+B,iBAAkB,kBAClBS,iBAAkB,kBAClBvvB,SAAU,WAEVutD,UAAW,aACXC,YAAa,cACbC,YAAa,cACbC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,iBAAkB,mBAClBC,YAAa,cACbC,YAAa,cAEbC,gBAAiB,wBACjBC,kBAAmB,oBACnBC,iBAAkB,mBAClBC,wBAAyB,0BACzBC,mBAAoB,qBACpBC,eAAgB,iBAChBC,aAAc,eACdC,gBAAiB,kBAEjBC,oBAAqB,sBAErBC,kBAAmB,oBACnBC,uBAAwB,0BACxBC,mBAAoB,qBACpBC,gBAAiB,wBAEjBC,cAAe,gBACfC,aAAc,eACdC,eAAgB,4BAEhBC,gBAAiB,kBACjBC,iBAAkB,mBAClBC,iBAAkB,mBAClBC,iBAAkB,mBAElBC,kBAAmB,0BACnBC,sBAAuB,wBACvBC,8BAA+B,gCAC/BC,kBAAmB,0BAEnBC,oBAAqB,4BACrBC,eAAgB,gBACpB,EAMIC,EAAgB,CAChBC,WAAY,oBACZC,sBAAuB,wBACvBC,UAAW,qBACXC,WAAY,sBACZC,WAAY,sBACZC,UAAW,qBACXC,WAAY,sBACZ,cAAe,sBACfC,iBAAkB,mBAClBC,iBAAkB,eAClBC,WAAY,sBACZ5O,eAAgB,wBAChB6O,yBAA0B,2BAC1BC,wBAAyB,0BACzBC,+BAAgC,kCAChCC,yBAA0B,2BAC1BC,8BAA+B,gCAC/BC,6BAA8B,gCAC9BC,2BAA4B,8BAC5B1O,oBAAqB,sBACrB2O,uBAAwB,yBACxBC,4BAA6B,8BAC7BC,2BAA4B,6BAC5BC,sBAAuB,wBACvBC,0BAA2B,6BAC3BC,wBAAyB,2BACzBC,8BAA+B,gCAC/BC,gBAAiB,kBACjBC,iBAAkB,mBAClB,uCAAwC,uCACxCC,iBAAkB,mBAClBC,iBAAkB,mBAClBC,sBAAuB,wBACvB,2CAA4C,2CAC5CC,mCAAoC,qCACpCC,eAAgB,iBAChBC,0BAA2B,4BAC3BC,iBAAkB,mBAClBC,0BAA2B,2BAC/B,EAEIC,EAAc,CACd,cAAe,QACf,cAAe,QACf,cAAe,OACnB,EAOIC,EAAkB,SAAUje,CAAG,EAC/B,IAAI,CAACnjD,EAAE,CAAGkE,EAAcoR,IAAI,GAC5B,IAAI,CAAC+rD,OAAO,CAAG,EACf,IAAI,CAACtQ,WAAW,CAAGiO,CAAa,CAAC7b,EAAI4N,WAAW,CAAC,CACjD,IAAI,CAACuQ,cAAc,CAAG,EAAE,CACxB,IAAI,CAAClN,YAAY,CAAG,EAAE,CACtB,IAAI,CAACmN,eAAe,CAAGpe,EAAIoe,eAAe,EAAI,GAC9C,IAAI,CAACC,gBAAgB,CAAGre,EAAIqe,gBAAgB,EAAI,EAAE,EAoBlDziB,EAAa,CAKbsJ,OAAQ,SAAUlF,CAAG,EAMjB,GAAIA,GAAOA,EAAIz1B,QAAQ,CAAE,CACrB,IAAI1S,EACAymD,EAAgBte,EAAIz1B,QAAQ,CAACzS,KAAK,CAAC,KACvCkoC,CAAAA,EAAIz1B,QAAQ,CAAG+zC,CAAa,CAAC,EAAE,CAC/BzmD,EAAUymD,CAAa,CAAC,EAAE,CAG9B,OAAQte,EAAIz1B,QAAQ,EAChB,KAAK6xB,EAAUliB,YAAY,CACvB,OAAO,IAAI,IAAI,CAACqkC,cAAc,CAACve,EACnC,MAAK5D,EAAU/hB,IAAI,CACf,OAAO,IAAI,IAAI,CAACmkC,OAAO,CAACxe,EAC5B,MAAK5D,EAAUod,UAAU,CACrB,OAAO,IAAI,IAAI,CAACiF,aAAa,CAACze,EAClC,MAAK5D,EAAUriB,kBAAkB,CAC7B,OAAO,IAAI,IAAI,CAAC2kC,oBAAoB,CAAC1e,EACzC,MAAK5D,EAAUC,EAAE,CACb,OAAO,IAAI,IAAI,CAACsiB,KAAK,CAAC3e,EAC1B,MAAK5D,EAAUE,IAAI,CACf,OAAO,IAAI,IAAI,CAACsiB,OAAO,CAAC5e,EAC5B,MAAK5D,EAAUG,aAAa,CACxB,OAAO,IAAI,IAAI,CAACsiB,eAAe,CAAC7e,EACpC,MAAK5D,EAAU1hB,IAAI,CACf,OAAO,IAAI,IAAI,CAACokC,OAAO,CAAC9e,EAC5B,MAAK5D,EAAUl3C,QAAQ,CACnB,OAAO,IAAI,IAAI,CAAC65D,WAAW,CAAC/e,EAChC,MAAK5D,EAAUnjB,aAAa,CACxB,OAAO,IAAI,IAAI,CAAC+lC,eAAe,CAAChf,EACpC,MAAK5D,EAAUqd,aAAa,CACxB,OAAO,IAAI,IAAI,CAACwF,eAAe,CAACjf,EACpC,MAAK5D,EAAUn3C,iBAAiB,CAC5B,OAAO,IAAI,IAAI,CAACi6D,mBAAmB,CAAClf,EACxC,MAAK5D,EAAUnhB,gBAAgB,CAC3B,OAAO,IAAI,IAAI,CAACkkC,kBAAkB,CAACnf,EACvC,MAAK5D,EAAU1gB,gBAAgB,CAC/B,KAAK0gB,EAAUjwC,QAAQ,CACnB,OAAO,IAAI,IAAI,CAACizD,kBAAkB,CAACpf,EACvC,MAAK5D,EAAUsd,SAAS,CACpB,OAAO,IAAI,IAAI,CAAC2F,WAAW,CAACrf,EAChC,MAAK5D,EAAUud,WAAW,CAE1B,KAAKvd,EAAUwd,WAAW,CAE1B,KAAKxd,EAAUyd,WAAW,CAHtB,OAAO,IAAI,IAAI,CAACyF,aAAa,CAACtf,EAKlC,MAAK5D,EAAU0d,UAAU,CACrB,OAAO,IAAI,IAAI,CAACyF,YAAY,CAACvf,EACjC,MAAK5D,EAAU2d,WAAW,CACtB,OAAO,IAAI,IAAI,CAACyF,aAAa,CAACxf,EAAKnoC,EAAS,GAChD,MAAKukC,EAAU4d,gBAAgB,CAC3B,OAAO,IAAI,IAAI,CAACwF,aAAa,CAACxf,EAAKnoC,EAAS,GAChD,MAAKukC,EAAU6d,WAAW,CACtB,OAAO,IAAI,IAAI,CAACwF,aAAa,CAACzf,EAClC,MAAK5D,EAAU8d,WAAW,CACtB,OAAO,IAAI,IAAI,CAACwF,aAAa,MAC5BtjB,EAAUge,iBAAiB,CAC5B,OAAO,IAAI,IAAI,CAACuF,kBAAkB,CAAC3f,EACvC,MAAK5D,EAAUie,gBAAgB,CAC3B,OAAO,IAAI,IAAI,CAACuF,iBAAiB,CAAC5f,EACtC,MAAK5D,EAAUme,kBAAkB,CAC7B,OAAO,IAAI,IAAI,CAACsF,mBAAmB,CAAC7f,EACxC,MAAK5D,EAAUoe,cAAc,CACzB,OAAO,IAAI,IAAI,CAACsF,gBAAgB,CAAC9f,EACrC,MAAK5D,EAAUse,eAAe,CAC1B,OAAO,IAAI,IAAI,CAACqF,gBAAgB,CAAC/f,EACrC,MAAK5D,EAAUwe,iBAAiB,CAC5B,OAAO,IAAI,IAAI,CAACoF,kBAAkB,CAAChgB,EACvC,MAAK5D,EAAUye,sBAAsB,CACjC,OAAO,IAAI,IAAI,CAACoF,wBAAwB,CAACjgB,EAC7C,MAAK5D,EAAU0e,kBAAkB,CAC7B,OAAO,IAAI,IAAI,CAACoF,mBAAmB,CAAClgB,EACxC,MAAK5D,EAAUke,uBAAuB,CAClC,OAAO,IAAI,IAAI,CAAC6F,uBAAuB,CAACngB,EAC5C,MAAK5D,EAAUqe,YAAY,CACvB,OAAO,IAAI,IAAI,CAAC2F,cAAc,CAACpgB,EACnC,MAAK5D,EAAUue,mBAAmB,CAC9B,OAAO,IAAI,CAAC0F,iBAAiB,CAACxoD,EAClC,MAAKukC,EAAU4e,aAAa,CACxB,OAAO,IAAI,IAAI,CAACsF,eAAe,CAACtgB,EACpC,MAAK5D,EAAU6e,YAAY,CACvB,OAAO,IAAI,IAAI,CAACsF,cAAc,CAACvgB,EACnC,MAAK5D,EAAU8e,cAAc,CACzB,OAAO,IAAI,IAAI,CAACsF,gBAAgB,CAACxgB,EACrC,MAAK5D,EAAUgf,gBAAgB,CAC3B,OAAO,IAAI,IAAI,CAACqF,iBAAiB,CAACzgB,EACtC,MAAK5D,EAAUif,gBAAgB,CAC3B,OAAO,IAAI,IAAI,CAACqF,iBAAiB,CAAC1gB,EACtC,MAAK5D,EAAUkf,gBAAgB,CAC3B,OAAO,IAAI,IAAI,CAACqF,iBAAiB,CAAC3gB,EACtC,MAAK5D,EAAU+e,eAAe,CAC1B,OAAO,IAAI,IAAI,CAACyF,gBAAgB,CAAC5gB,EACrC,MAAK5D,EAAUmf,iBAAiB,CAC5B,OAAO,IAAI,IAAI,CAACsF,wBAAwB,CAAC7gB,EAC7C,MAAK5D,EAAUof,qBAAqB,CAChC,OAAO,IAAI,IAAI,CAACsF,sBAAsB,MACrC1kB,EAAUqf,6BAA6B,CACxC,OAAO,IAAI,IAAI,CAACsF,uBAAuB,CAAC/gB,EAC5C,MAAK5D,EAAUsf,iBAAiB,CAC5B,OAAO,IAAI,IAAI,CAACsF,wBAAwB,CAAChhB,EAC7C,MAAK5D,EAAU2e,eAAe,CAC1B,OAAO,IAAI,IAAI,CAACkG,sBAAsB,MACrC7kB,EAAUwf,cAAc,CACzB,OAAO,IAAI,IAAI,CAACsF,gBAAgB,MAC/B9kB,EAAUuf,mBAAmB,CAC9B,OAAO,IAAI,IAAI,CAACwF,4BAA4B,CAACnhB,EACjD,MAAK5D,EAAU+d,eAAe,CAC1B,OAAO,IAAI,IAAI,CAACiH,sBAAsB,CAACphB,EAC3C,SACI,GAAIA,KAAkB1xD,IAAlB0xD,EAAI7wC,SAAS,CACb,OAAO,IAAI,IAAI,CAACunD,WAAW,CAAC1W,GACzB,GAAIA,KAAoB1xD,IAApB0xD,EAAIvyC,WAAW,CACtB,OAAO,IAAI,IAAI,CAAC4zD,OAAO,CAACrhB,EAExB,OAAM,MAAU,wBAA0BA,EAAIz1B,QAAQ,CAAG,iFAErE,CACJ,EAEA+2C,mBAAoB,CAChB,CAAEzmC,IAAK,GAAI0mC,MAAOlvE,EAAqBS,SAAS,CAAC,mCAAoC,EACrF,CAAE+nC,IAAK,OAAQ0mC,MAAOlvE,EAAqBS,SAAS,CAAC,sBAAuB,EAC5E,CAAE+nC,IAAK,aAAc0mC,MAAOlvE,EAAqBS,SAAS,CAAC,4BAA6B,EACxF,CAAE+nC,IAAK,aAAc0mC,MAAOlvE,EAAqBS,SAAS,CAAC,4BAA6B,EACxF,CAAE+nC,IAAK,SAAU0mC,MAAOlvE,EAAqBS,SAAS,CAAC,wBAAyB,EAChF,CAAE+nC,IAAK,YAAa0mC,MAAOlvE,EAAqBS,SAAS,CAAC,2BAA4B,EACtF,CAAE+nC,IAAK,WAAY0mC,MAAOlvE,EAAqBS,SAAS,CAAC,0BAA2B,EACvF,CAED0uE,sBAAuB,WACnB,OAAO,IAAI,CAACF,kBAAkB,CAAC7zE,KAAK,EACxC,EAEAg0E,8BAA+B,WAC3B,IAAIC,EAAa,IAAI,CAACJ,kBAAkB,CAAC7zE,KAAK,GAC1Ck0E,EAAU,CAAC,GAAI,WAAW,CAE9B,OAAOD,EAAW9zE,MAAM,CAAC,SAAUu3B,CAAI,EACnC,OAAOw8C,KAAAA,EAAQvzE,OAAO,CAAC+2B,EAAK0V,GAAG,CACnC,EACJ,EAKAqkC,oBAAqB,SAAUlf,CAAG,EAC9B,IAAI,CAACplB,YAAY,CAAGolB,EAAIplB,YAAY,EAAI,EAAE,CAC1C,IAAI,CAAC66B,OAAO,CAAG10D,EAAc6gE,aAAa,CAAC5hB,EAAIyV,OAAO,GAAK,IAAIh0D,KAC/D,IAAI,CAACogE,SAAS,CAAG7hB,EAAI6hB,SAAS,EAAIvzE,KAAAA,EAClC,IAAI,CAACwzE,OAAO,CAAG9hB,EAAI8hB,OAAO,EAAI,EAAE,CAChC,IAAI,CAACjlE,EAAE,CAAGmjD,EAAInjD,EAAE,EAAIkE,EAAcoR,IAAI,GACtC,IAAI,CAACgG,YAAY,CAAGpX,EAAc6gE,aAAa,CAAC5hB,EAAI7nC,YAAY,GAAK,IAAI1W,KACzE,IAAI,CAACsgE,cAAc,CAAG/hB,EAAI+hB,cAAc,EAAIzzE,KAAAA,EAC5C,IAAI,CAACi8B,QAAQ,CAAG,mBAChB,IAAI,CAACy3C,gBAAgB,CAAGhiB,EAAIgiB,gBAAgB,EAAI,UAChD,IAAI,CAAC5yD,KAAK,CAAG4wC,EAAI5wC,KAAK,EAAI,GAC1B,IAAI,CAACoqB,WAAW,CAAGwmB,EAAIxmB,WAAW,EAAI,YACtC,IAAI,CAACyoC,UAAU,CAAGjiB,EAAIiiB,UAAU,CAChC,IAAI,CAAC5wD,KAAK,CAAG2uC,EAAI3uC,KAAK,EAAI,EAAE,CAC5B,IAAI,CAACP,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAChC,IAAI,CAAC40C,WAAW,CAAG1F,EAAI0F,WAAW,EAAI,IAAI,CAAC50C,QAAQ,CACnD,IAAI,CAACgB,OAAO,CAAGkuC,EAAIkiB,eAAe,EAGtCC,sBAAuB,SAAUniB,CAAG,EAChC,IAAI,CAACnjD,EAAE,CAAGmjD,EAAInjD,EAAE,EAAI,GACpB,IAAI,CAACulE,OAAO,CAAGpiB,EAAIoiB,OAAO,EAAI,GAC9B,IAAI,CAACC,WAAW,CAAGriB,EAAIqiB,WAAW,EAAI,GACtC,IAAI,CAACC,WAAW,CAAGtiB,EAAIsiB,WAAW,CAAG,IAAI7gE,KAAKu+C,EAAIsiB,WAAW,EAAI,KACjE,IAAI,CAACx4D,OAAO,CAAGk2C,EAAIl2C,OAAO,EAAI,GAC9B,IAAI,CAAC+Z,QAAQ,CAAGm8B,EAAIn8B,QAAQ,EAAI,GAChC,IAAI,CAAC0+C,WAAW,CAAGviB,EAAIuiB,WAAW,EAAI,GACtC,IAAI,CAACC,YAAY,CAAGxiB,EAAIwiB,YAAY,EAAI,GACxC,IAAI,CAACv0B,eAAe,CAAG+R,EAAI/R,eAAe,EAAI,GAC9C,IAAI,CAACw0B,mBAAmB,CAAGziB,EAAIyiB,mBAAmB,EAAI,GACtD,IAAI,CAACC,GAAG,CAAG1iB,EAAI0iB,GAAG,EAAI,GACtB,IAAI,CAAC1zB,MAAM,CAAGgR,EAAIhR,MAAM,EAAI,GAC5B,IAAI,CAAC2zB,aAAa,CAAG3iB,EAAI2iB,aAAa,EAAI,GAC1C,IAAI,CAACC,gBAAgB,CAAG5iB,EAAI4iB,gBAAgB,CAAG,IAAInhE,KAAKu+C,EAAI4iB,gBAAgB,EAAI,KAChF,IAAI,CAAC7gD,SAAS,CAAGi+B,EAAIj+B,SAAS,EAAI,GAClC,IAAI,CAAC8gD,cAAc,CAAG7iB,EAAI6iB,cAAc,EAAI,GAC5C,IAAI,CAACC,wBAAwB,CAAG9iB,CAAiC,IAAjCA,EAAI8iB,wBAAwB,CAC5D,IAAI,CAAC/yB,iBAAiB,CAAG,EAAE,CAC3B,IAAI,CAACwB,0CAA0C,CAAGyO,CAAmD,IAAnDA,EAAIzO,0CAA0C,CAChG,IAAI,CAACwxB,gBAAgB,CAAG/iB,EAAI+iB,gBAAgB,EAGhD9D,gBAAiB,SAAUjf,CAAG,EAC1B,IAAI,CAAC3xC,cAAc,CAAG2xC,EAAI3xC,cAAc,CACxC,IAAI,CAACZ,WAAW,CAAGuyC,EAAIvyC,WAAW,CAClC,IAAI,CAAC/Z,MAAM,CAAGssD,EAAItsD,MAAM,CACxB,IAAI,CAAC+lC,YAAY,CAAGumB,EAAIvmB,YAAY,CACpC,IAAI,CAACpqB,SAAS,CAAG2wC,EAAI3wC,SAAS,CAC9B,IAAI,CAACzC,QAAQ,CAAGozC,EAAIpzC,QAAQ,CAC5B,IAAI,CAACE,QAAQ,CAAGkzC,EAAIlzC,QAAQ,EAAI,EAAE,CAClC,IAAI,CAACgE,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,CACpC,EAKA8tD,QAAS,SAAU5e,CAAG,EAClB,IAAI,CAACplB,YAAY,CAAGolB,EAAIplB,YAAY,EAAI,EAAE,CAC1C,IAAI,CAAC66B,OAAO,CAAG10D,EAAc6gE,aAAa,CAAC5hB,EAAIyV,OAAO,GAAK,IAAIh0D,KAC/D,IAAI,CAACogE,SAAS,CAAG7hB,EAAI6hB,SAAS,EAAIvzE,KAAAA,EAClC,IAAI,CAACwzE,OAAO,CAAG9hB,EAAI8hB,OAAO,EAAI,EAAE,CAChC,IAAI,CAACjlE,EAAE,CAAGmjD,EAAInjD,EAAE,EAAIkE,EAAcoR,IAAI,GACtC,IAAI,CAACgG,YAAY,CAAGpX,EAAc6gE,aAAa,CAAC5hB,EAAI7nC,YAAY,GAAK,IAAI1W,KACzE,IAAI,CAACsgE,cAAc,CAAG/hB,EAAI+hB,cAAc,EAAIzzE,KAAAA,EAC5C,IAAI,CAACi8B,QAAQ,CAAG,OAChB,IAAI,CAACy3C,gBAAgB,CAAGhiB,EAAIgiB,gBAAgB,EAAI,UAChD,IAAI,CAAC5yD,KAAK,CAAG4wC,EAAI5wC,KAAK,EAAI,GAC1B,IAAI,CAACoqB,WAAW,CAAGwmB,EAAIxmB,WAAW,EAAI,YACtC,IAAI,CAAC1oB,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAChC,IAAI,CAAC40C,WAAW,CAAG1F,EAAI0F,WAAW,EAAI,IAAI,CAAC50C,QAAQ,CACnD,IAAI,CAACkyD,UAAU,CAAGhjB,EAAIgjB,UAAU,CAChC,IAAI,CAACC,eAAe,CAAGjjB,EAAIijB,eAAe,CAC1C,IAAI,CAACnV,QAAQ,CAAG9N,EAAI8N,QAAQ,EAAI,EAAE,EAGtC+Q,gBAAiB,SAAU7e,CAAG,EAC1B,IAAI,CAACplB,YAAY,CAAGolB,EAAIplB,YAAY,EAAI,EAAE,CAC1C,IAAI,CAAC66B,OAAO,CAAG10D,EAAc6gE,aAAa,CAAC5hB,EAAIyV,OAAO,GAAK,IAAIh0D,KAC/D,IAAI,CAACogE,SAAS,CAAG7hB,EAAI6hB,SAAS,EAAIvzE,KAAAA,EAClC,IAAI,CAACwzE,OAAO,CAAG9hB,EAAI8hB,OAAO,EAAI,EAAE,CAChC,IAAI,CAACjlE,EAAE,CAAGmjD,EAAInjD,EAAE,EAAIkE,EAAcoR,IAAI,GACtC,IAAI,CAACgG,YAAY,CAAGpX,EAAc6gE,aAAa,CAAC5hB,EAAI7nC,YAAY,GAAK,IAAI1W,KACzE,IAAI,CAACsgE,cAAc,CAAG/hB,EAAI+hB,cAAc,EAAIzzE,KAAAA,EAC5C,IAAI,CAACi8B,QAAQ,CAAG,eAChB,IAAI,CAACy3C,gBAAgB,CAAGhiB,EAAIgiB,gBAAgB,EAAI,UAChD,IAAI,CAAC5yD,KAAK,CAAG4wC,EAAI5wC,KAAK,EAAI,GAC1B,IAAI,CAACoqB,WAAW,CAAGwmB,EAAIxmB,WAAW,EAAI,YACtC,IAAI,CAAC1oB,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAChC,IAAI,CAAC40C,WAAW,CAAG1F,EAAI0F,WAAW,EAAI,IAAI,CAAC50C,QAAQ,CACnD,IAAI,CAACkyD,UAAU,CAAGhjB,EAAIgjB,UAAU,CAChC,IAAI,CAACC,eAAe,CAAGjjB,EAAIijB,eAAe,CAC1C,IAAI,CAACnV,QAAQ,CAAG9N,EAAI8N,QAAQ,EAAI,EAAE,CAClC,IAAI,CAACwG,uBAAuB,CAAGtU,EAAIsU,uBAAuB,EAAI,GAC9D,IAAI,CAACpmD,wBAAwB,CAAG8xC,EAAI9xC,wBAAwB,EAAI,GAEhE,IAAI,CAACg1D,gBAAgB,CAAGljB,EAAIkjB,gBAAgB,EAAI,EACpD,EAOAnE,YAAa,SAAU/e,CAAG,EACtB,IAAI,CAACplB,YAAY,CAAGolB,EAAIplB,YAAY,EAAI,EAAE,CAC1C,IAAI,CAAC66B,OAAO,CAAG10D,EAAc6gE,aAAa,CAAC5hB,EAAIyV,OAAO,GAAK,IAAIh0D,KAC/D,IAAI,CAACogE,SAAS,CAAG7hB,EAAI6hB,SAAS,EAAIvzE,KAAAA,EAClC,IAAI,CAACwzE,OAAO,CAAG9hB,EAAI8hB,OAAO,EAAI,EAAE,CAChC,IAAI,CAACjlE,EAAE,CAAGmjD,EAAInjD,EAAE,EAAIkE,EAAcoR,IAAI,GACtC,IAAI,CAACgG,YAAY,CAAGpX,EAAc6gE,aAAa,CAAC5hB,EAAI7nC,YAAY,GAAK,IAAI1W,KACzE,IAAI,CAACsgE,cAAc,CAAG/hB,EAAI+hB,cAAc,EAAIzzE,KAAAA,EAC5C,IAAI,CAACi8B,QAAQ,CAAG,WAChB,IAAI,CAAClZ,KAAK,CAAG2uC,EAAI3uC,KAAK,EAAI,EAAE,CAC5B,IAAI,CAAC2wD,gBAAgB,CAAGhiB,EAAIgiB,gBAAgB,EAAI,UAChD,IAAI,CAAC5yD,KAAK,CAAG4wC,EAAI5wC,KAAK,EAAI,GAC1B,IAAI,CAACoqB,WAAW,CAAGwmB,EAAIxmB,WAAW,EAAI,YACtC,IAAI,CAAC1oB,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAChC,IAAI,CAAC40C,WAAW,CAAG1F,EAAI0F,WAAW,EAAI,IAAI,CAAC50C,QAAQ,EAGvDuwD,QAAS,SAAUrhB,CAAG,EAElB,IAAI7tC,EAAOpR,EAAcoR,IAAI,EAC7B,KAAI,CAAC1E,WAAW,CAAGuyC,EAAIvyC,WAAW,EAAI0E,EACtC,IAAI,CAACze,MAAM,CAAGssD,EAAItsD,MAAM,EAAIye,EAC5B,IAAI,CAACsnB,YAAY,CAAGumB,EAAIvmB,YAAY,EAAI,EACxC,IAAI,CAACpqB,SAAS,CAAG2wC,EAAI3wC,SAAS,EAAI,GAClC,IAAI,CAACzC,QAAQ,CAAGozC,EAAIpzC,QAAQ,EAAI,eAChC,IAAI,CAACgE,QAAQ,CAAG,iBAAI,CAAChE,QAAQ,CAAkB,WAAaozC,EAAIpvC,QAAQ,EAAI,eAC5E,IAAI,CAAC9D,QAAQ,CAAGkzC,EAAIlzC,QAAQ,EAAI,EAAE,CAClC,IAAI,CAAC8B,UAAU,CAAGoxC,EAAIpxC,UAAU,EAAI,YACpC,IAAI,CAACiC,sBAAsB,CAAG,GAC9B,IAAI,CAACC,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAChC,IAAI,CAACwoB,sBAAsB,CAAG0mB,EAAI1mB,sBAAsB,EAG5Do9B,YAAa,SAAU1W,CAAG,EACtB,IAAI7tC,EAAOpR,EAAcoR,IAAI,EAC7B,KAAI,CAACrF,QAAQ,CAAGkzC,EAAIlzC,QAAQ,EAAI,EAAE,CAClC,IAAI,CAACq2D,6BAA6B,CAAGnjB,EAAImjB,6BAA6B,EAAI,GAC1E,IAAI,CAACC,mBAAmB,CAAGpjB,EAAIojB,mBAAmB,EAAI,GACtD,IAAI,CAACC,qBAAqB,CAAGrjB,EAAIqjB,qBAAqB,EAAI,KAC1D,IAAI,CAACC,sBAAsB,CAAGtjB,EAAIsjB,sBAAsB,EAAI,KAC5D,IAAI,CAACC,uBAAuB,CAAGvjB,EAAIujB,uBAAuB,EAAI,KAC9D,IAAI,CAACC,cAAc,CAAGxjB,EAAIwjB,cAAc,EAAI,EAAE,CAC9C,IAAI,CAACC,qBAAqB,CAAGzjB,EAAIyjB,qBAAqB,EAAI,GAC1D,IAAI,CAACC,+BAA+B,CAAG1jB,EAAI0jB,+BAA+B,EAAI,GAC9E,IAAI,CAACv0D,SAAS,CAAG6wC,EAAI7wC,SAAS,EAAI,GAClC,IAAI,CAACw0D,WAAW,CAAG3jB,EAAI2jB,WAAW,EAAI,GACtC,IAAI,CAACC,kBAAkB,CAAG5jB,EAAI4jB,kBAAkB,EAAI,GACpD,IAAI,CAAC1F,OAAO,CAAGle,EAAIke,OAAO,EAAI,EAC9B,IAAI,CAACttD,QAAQ,CAAGovC,EAAIpvC,QAAQ,CAAG7P,EAAcomD,mBAAmB,CAACnH,EAAIpvC,QAAQ,CAAE,IAAQ,qBACvF,IAAI,CAACld,MAAM,CAAGssD,EAAItsD,MAAM,EAAIye,EAC5B,IAAI,CAAC0xD,2BAA2B,CAAG7jB,EAAI6jB,2BAA2B,EAAI,GACtE,IAAI,CAACC,mBAAmB,CAAG9jB,EAAI8jB,mBAAmB,EAAI,KACtD,IAAI,CAACC,eAAe,CAAG/jB,EAAI+jB,eAAe,EAAI,aAC9C,IAAI,CAAClzD,sBAAsB,CAAG,GAC9B,IAAI,CAACxB,SAAS,CAAG2wC,EAAI3wC,SAAS,EAAI,GAClC,IAAI,CAACzC,QAAQ,CAAGozC,EAAIpzC,QAAQ,EAAI,OAChC,IAAI,CAACgC,UAAU,CAAGoxC,EAAIpxC,UAAU,EAAI,YACpC,IAAI,CAACo1D,eAAe,CAAGhkB,EAAIgkB,eAAe,EAAI,GAC9C,IAAI,CAACC,WAAW,CAAGjkB,EAAIikB,WAAW,EAAI,EACtC,IAAI,CAACC,YAAY,CAAGlkB,EAAIkkB,YAAY,EAAI,EACxC,IAAI,CAACC,2BAA2B,CAAGnkB,EAAImkB,2BAA2B,EAAI,GACtE,IAAI,CAACC,2BAA2B,CAAGpkB,EAAIokB,2BAA2B,EAAI,GACtE,IAAI,CAACC,kBAAkB,CAAGrkB,CAA2B,IAA3BA,EAAIqkB,kBAAkB,EAGpDvF,QAAS,SAAU9e,CAAG,EAClB,IAAI,CAACnjD,EAAE,CAAGmjD,EAAInjD,EAAE,EAAIkE,EAAcoR,IAAI,GACtC,IAAI,CAAC/C,KAAK,CAAG4wC,EAAI5wC,KAAK,EAAI,GAC1B,IAAI,CAACmb,QAAQ,CAAG,OAChB,IAAI,CAACkrC,OAAO,CAAG10D,EAAc6gE,aAAa,CAAC5hB,EAAIyV,OAAO,GAAK,IAAIh0D,KAC/D,IAAI,CAACogE,SAAS,CAAG7hB,EAAI6hB,SAAS,EAAIvzE,KAAAA,EAClC,IAAI,CAACwzE,OAAO,CAAG9hB,EAAI8hB,OAAO,EAAI,EAAE,CAChC,IAAI,CAAC3pD,YAAY,CAAGpX,EAAc6gE,aAAa,CAAC5hB,EAAI7nC,YAAY,GAAK,IAAI1W,KACzE,IAAI,CAACsgE,cAAc,CAAG/hB,EAAI+hB,cAAc,EAAIzzE,KAAAA,EAC5C,IAAI,CAACssC,YAAY,CAAGolB,EAAIplB,YAAY,EAAI,EAAE,CAC1C,IAAI,CAAConC,gBAAgB,CAAGhiB,EAAIgiB,gBAAgB,EAAI,UAChD,IAAI,CAACxoC,WAAW,CAAGwmB,EAAIxmB,WAAW,EAAI,YACtC,IAAI,CAAC1oB,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAChC,IAAI,CAAC40C,WAAW,CAAG1F,EAAI0F,WAAW,EAAI,IAAI,CAAC50C,QAAQ,CAO/CkvC,EAAItmC,cAAc,CAAC,4BAA8BsmC,CAAgC,IAAhCA,EAAIhnB,uBAAuB,EAE5EgnB,EAAIhnB,uBAAuB,CAAG,GAE9B,IAAI,CAACi0B,QAAQ,CAAG,CACZ,CACIpwD,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTtQ,YAAa,oBACbuQ,eAAgB,CAAC,CAAEtjC,IAAK,WAAYC,MAAO,EAAM,EAAE,CACnDi0B,cAAe,GACfqP,gBAAiB,GACjBhO,kBAAmB,GACnBa,aAAc,CACV,CAAEp2B,IAAK,mBAAoBC,MAAO,cAAewpC,OAAQ,SAAU,EACnE,CAAEzpC,IAAK,QAASC,MAAO,gBAAiBwpC,OAAQ,WAAY,EAC5D,CAAEzpC,IAAK,cAAeC,MAAO,IAAKwpC,OAAQ,WAAY,EACzD,CACDrX,SAAU,CACN,CACIpwD,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTtQ,YAAa,qBACbuQ,eAAgB,CACZ,CAAEtjC,IAAK,cAAeC,MAAO,EAAK,EAClC,CAAED,IAAK,WAAYC,MAAO,EAAM,EACnC,CACDm2B,aAAc,CACV,CAAEp2B,IAAK,sBAAuBC,MAAO,MAAO,EAC5C,CAAED,IAAK,iBAAkBC,MAAO,eAAgB,EAChD,CAAED,IAAK,gBAAiBC,MAAO,YAAa,EAC5C,CAAED,IAAK,kBAAmBC,MAAO,EAAM,EACvC,CAAED,IAAK,mBAAoBC,MAAO,EAAM,EAC3C,CACDypC,SAAU,GACVC,uBAAwBxkB,EAAIrlB,iBAAiB,EAvC/C,cAwCE8pC,qBAAsB,GACtBrU,kBAAmB,GACnBhhD,MAAO4wC,EAAI5wC,KAAK,EAAI,GACpBqnC,SA1CL,GA2CKiuB,YAAa,GACbC,WAAY,GACZC,WAAY,GACZC,WAAY,GACZC,kBAAmB,EACvB,EACH,EAEL,CACIjoE,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTtQ,YAAa,oBACbuQ,eAAgB,EAAE,CAClBpP,cAAe,GACfkC,aAAc,CACV,CAAEp2B,IAAK,mBAAoBC,MAAO,cAAewpC,OAAQ,SAAU,EACnE,CAAEzpC,IAAK,QAASC,MAAO,gBAAiBwpC,OAAQ,WAAY,EAC5D,CAAEzpC,IAAK,cAAeC,MAAO,IAAKwpC,OAAQ,WAAY,EACzD,CACDrX,SAAU,CACN,CACI6X,kBAAmB,GACnBF,WAAY,GACZG,eAAgB,GAChBF,WAAY,GACZhoE,GAAIkE,EAAcoR,IAAI,GACtBuyD,YAAa,GACbxG,QAAS,EACTC,eAAgB,CAAC,CAAEtjC,IAAK,qBAAsBC,MAAO,EAAK,EAAE,CAC5D8yB,YAAa,qBACbqD,aAAc,CACV,CAAEp2B,IAAK,gBAAiBC,MAAO,EAAM,EACrC,CAAED,IAAK,eAAgBC,MAAO,CAAE,EACnC,CACD1rB,MAAO,GACPyf,KAAM,EACV,EACH,EAER,EAED,IAAI,CAACo+B,QAAQ,CAAGjN,EAAIiN,QAAQ,EAAI,EAAE,EAS1C+R,gBAAiB,SAAUhf,CAAG,EAC1B,IAAI,CAACnjD,EAAE,CAAGmjD,EAAInjD,EAAE,EAAIkE,EAAcoR,IAAI,GACtC,IAAI,CAAC/C,KAAK,CAAG4wC,EAAI5wC,KAAK,EAAI,GAC1B,IAAI,CAACmb,QAAQ,CAAG,eAChB,IAAI,CAACkrC,OAAO,CAAG10D,EAAc6gE,aAAa,CAAC5hB,EAAIyV,OAAO,GAAK,IAAIh0D,KAC/D,IAAI,CAACogE,SAAS,CAAG7hB,EAAI6hB,SAAS,EAAIvzE,KAAAA,EAClC,IAAI,CAACwzE,OAAO,CAAG9hB,EAAI8hB,OAAO,EAAI,EAAE,CAChC,IAAI,CAAC3pD,YAAY,CAAGpX,EAAc6gE,aAAa,CAAC5hB,EAAI7nC,YAAY,GAAK,IAAI1W,KACzE,IAAI,CAACsgE,cAAc,CAAG/hB,EAAI+hB,cAAc,EAAIzzE,KAAAA,EAC5C,IAAI,CAACssC,YAAY,CAAGolB,EAAIplB,YAAY,EAAI,EAAE,CAC1C,IAAI,CAAConC,gBAAgB,CAAGhiB,EAAIgiB,gBAAgB,EAAI,UAChD,IAAI,CAACxoC,WAAW,CAAGwmB,EAAIxmB,WAAW,EAAI,YACtC,IAAI,CAAC1oB,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAChC,IAAI,CAAC40C,WAAW,CAAG1F,EAAI0F,WAAW,EAAI,IAAI,CAAC50C,QAAQ,CAI/CkvC,EAAItmC,cAAc,CAAC,4BAA8BsmC,KAAgC1xD,IAAhC0xD,EAAIhnB,uBAAuB,EAAkBgnB,OAAAA,EAAIhnB,uBAAuB,EAAagnB,CAA+B,GAA/BA,EAAIhnB,uBAAuB,EAEjKgnB,EAAIhnB,uBAAuB,CAAG,GAG9B,IAAI,CAACi0B,QAAQ,CAAG,CACZ,CACIpwD,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTtQ,YAAa,oBACbuQ,eAAgB,EAAE,CAClBpP,cAAe,GACfkC,aAAc,CACV,CAAEp2B,IAAK,mBAAoBC,MAAO,cAAewpC,OAAQ,SAAU,EACnE,CAAEzpC,IAAK,QAASC,MAAO,gBAAiBwpC,OAAQ,WAAY,EAC5D,CAAEzpC,IAAK,cAAeC,MAAO,IAAKwpC,OAAQ,WAAY,EACzD,CACDrX,SAAU,CACN,CACIpwD,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTtQ,YAAa,qBACbuQ,eAAgB,EAAE,CAClBlN,aAAc,CACV,CAAEp2B,IAAK,sBAAuBC,MAAO,MAAO,EAC5C,CAAED,IAAK,iBAAkBC,MAAO,eAAgB,EAChD,CAAED,IAAK,gBAAiBC,MAAO,SAAU,EACzC,CAAED,IAAK,kBAAmBC,MAAO,EAAM,EACvC,CAAED,IAAK,mBAAoBC,MAAO,EAAK,EAC1C,CACDypC,SAAU,GACVC,uBAAwBtkE,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,+CAC/Fy9D,qBAAsB,GACtBr1D,MAAO,GACPqnC,SAAU,GACViuB,YAAa,GACbC,WAAY,GACZC,WAAY,GACZC,WAAY,GACZC,kBAAmB,EACvB,EACH,EAER,EAED,IAAI,CAAC7X,QAAQ,CAAGjN,EAAIiN,QAAQ,EAAI,EAAE,EAK1CyR,qBAAsB,SAAU1e,CAAG,EAI/B,IAAI,CAACnjD,EAAE,CAAGmjD,EAAInjD,EAAE,EAAIkE,EAAcoR,IAAI,GACtC,IAAI,CAAC/C,KAAK,CAAG4wC,EAAI5wC,KAAK,EAAI,GAC1B,IAAI,CAAC41D,WAAW,CAAGhlB,EAAIglB,WAAW,EAAI,GACtC,IAAI,CAACz6C,QAAQ,CAAG,yBAChB,IAAI,CAACkrC,OAAO,CAAG10D,EAAc6gE,aAAa,CAAC5hB,EAAIyV,OAAO,GAAK,IAAIh0D,KAC/D,IAAI,CAACogE,SAAS,CAAG7hB,EAAI6hB,SAAS,EAAIvzE,KAAAA,EAClC,IAAI,CAACwzE,OAAO,CAAG9hB,EAAI8hB,OAAO,EAAI,EAAE,CAChC,IAAI,CAAC3pD,YAAY,CAAGpX,EAAc6gE,aAAa,CAAC5hB,EAAI7nC,YAAY,GAAK,IAAI1W,KACzE,IAAI,CAACsgE,cAAc,CAAG/hB,EAAI+hB,cAAc,EAAIzzE,KAAAA,EAC5C,IAAI,CAACssC,YAAY,CAAGolB,EAAIplB,YAAY,EAAI,EAAE,CAC1C,IAAI,CAAConC,gBAAgB,CAAGhiB,EAAIgiB,gBAAgB,EAAI,UAChD,IAAI,CAACxoC,WAAW,CAAGwmB,EAAIxmB,WAAW,EAAI,YACtC,IAAI,CAAC1oB,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAChC,IAAI,CAAC40C,WAAW,CAAG1F,EAAI0F,WAAW,EAAI,IAAI,CAAC50C,QAAQ,CAEnD,IAAI,CAACm0D,sBAAsB,CAAGjlB,EAAIilB,sBAAsB,EAAI,EAC5D,IAAI,CAACC,gBAAgB,CAAGllB,EAAIklB,gBAAgB,EAAI,EAAE,CAClD,IAAI,CAACC,KAAK,CAAGnlB,EAAImlB,KAAK,EAAI,EAAE,CAG5B,IAAIC,EAAc,cAElB,GAAI,IAAI,CAACxqC,YAAY,CAACjvC,MAAM,CACxB,IAAK,IAAI6C,EAAI,EAAGA,EAAI,IAAI,CAACosC,YAAY,CAACjvC,MAAM,CAAE6C,IAAK,CAC/C,IAAIitB,EAAS,IAAI,CAACmf,YAAY,CAACpsC,EAAE,CACd,2BAAfitB,EAAOof,GAAG,EACVuqC,CAAAA,EAAc3pD,EAAOqf,KAAK,EAEX,aAAfrf,EAAOof,GAAG,EACCpf,EAAOqf,KAAK,MAI/B,IAAI,CAACF,YAAY,CAACxqC,IAAI,CAAC,CAAEyqC,IAAK,yBAA0BC,MAAOsqC,CAAY,EAEnF,EAEA3G,cAAe,SAAUze,CAAG,EACxB,IAAI,CAACnjD,EAAE,CAAGmjD,EAAInjD,EAAE,EAAIkE,EAAcoR,IAAI,GACtC,IAAI,CAAC/C,KAAK,CAAG4wC,EAAI5wC,KAAK,EAAI,GAC1B,IAAI,CAAC41D,WAAW,CAAGhlB,EAAIglB,WAAW,EAAI,GACtC,IAAI,CAACz6C,QAAQ,CAAG,kBAChB,IAAI,CAACkrC,OAAO,CAAG10D,EAAc6gE,aAAa,CAAC5hB,EAAIyV,OAAO,GAAK,IAAIh0D,KAC/D,IAAI,CAACogE,SAAS,CAAG7hB,EAAI6hB,SAAS,EAAIvzE,KAAAA,EAClC,IAAI,CAACwzE,OAAO,CAAG9hB,EAAI8hB,OAAO,EAAI,EAAE,CAChC,IAAI,CAAC3pD,YAAY,CAAGpX,EAAc6gE,aAAa,CAAC5hB,EAAI7nC,YAAY,GAAK,IAAI1W,KACzE,IAAI,CAACsgE,cAAc,CAAG/hB,EAAI+hB,cAAc,EAAIzzE,KAAAA,EAC5C,IAAI,CAACssC,YAAY,CAAGolB,EAAIplB,YAAY,EAAI,EAAE,CAC1C,IAAI,CAAConC,gBAAgB,CAAGhiB,EAAIgiB,gBAAgB,EAAI,UAChD,IAAI,CAACxoC,WAAW,CAAGwmB,EAAIxmB,WAAW,EAAI,YACtC,IAAI,CAAC1oB,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAChC,IAAI,CAAC40C,WAAW,CAAG1F,EAAI0F,WAAW,EAAI,IAAI,CAAC50C,QAAQ,CAEnD,IAAI,CAACu0D,gBAAgB,CAAGrlB,EAAIqlB,gBAAgB,EAAI,GAChD,IAAI,CAACC,wBAAwB,CAAGtlB,EAAIslB,wBAAwB,EAAI,EAAE,CAClE,IAAI,CAACzvD,MAAM,CAAGmqC,EAAInqC,MAAM,EAAI,CAAC,EAC7B,IAAI,CAAC0vD,MAAM,CAAGvlB,EAAIulB,MAAM,EAAI,CAAC,EAC7B,IAAI,CAACC,SAAS,CAAG,EACrB,EAGAjH,eAAgB,SAAUve,CAAG,EACzB,IAAI,CAACnjD,EAAE,CAAGmjD,EAAInjD,EAAE,EAAIkE,EAAcoR,IAAI,GACtC,IAAI,CAAC/C,KAAK,CAAG4wC,EAAI5wC,KAAK,EAAI,GAC1B,IAAI,CAAC41D,WAAW,CAAGhlB,EAAIglB,WAAW,EAAI,GACtC,IAAI,CAACz6C,QAAQ,CAAG,cAChB,IAAI,CAACkrC,OAAO,CAAG10D,EAAc6gE,aAAa,CAAC5hB,EAAIyV,OAAO,GAAK,IAAIh0D,KAC/D,IAAI,CAACogE,SAAS,CAAG7hB,EAAI6hB,SAAS,EAAIvzE,KAAAA,EAClC,IAAI,CAACwzE,OAAO,CAAG9hB,EAAI8hB,OAAO,EAAI,EAAE,CAChC,IAAI,CAAC3pD,YAAY,CAAGpX,EAAc6gE,aAAa,CAAC5hB,EAAI7nC,YAAY,GAAK,IAAI1W,KACzE,IAAI,CAACsgE,cAAc,CAAG/hB,EAAI+hB,cAAc,EAAIzzE,KAAAA,EAC5C,IAAI,CAACssC,YAAY,CAAGolB,EAAIplB,YAAY,EAAI,EAAE,CAC1C,IAAI,CAAConC,gBAAgB,CAAGhiB,EAAIgiB,gBAAgB,EAAI,UAChD,IAAI,CAACxoC,WAAW,CAAGwmB,EAAIxmB,WAAW,EAAI,YACtC,IAAI,CAAC1oB,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAChC,IAAI,CAAC40C,WAAW,CAAG1F,EAAI0F,WAAW,EAAI,IAAI,CAAC50C,QAAQ,CAEnD,IAAI,CAACmzD,WAAW,CAAGjkB,EAAIikB,WAAW,CAClC,IAAI,CAACC,YAAY,CAAGlkB,EAAIkkB,YAAY,CACpC,IAAI,CAACgB,gBAAgB,CAAGllB,EAAIklB,gBAAgB,EAAI,EAAE,CAClD,IAAI,CAACC,KAAK,CAAGnlB,EAAImlB,KAAK,EAAI,EAAE,CAG5B,IAAIC,EAAc,cAElB,GAAI,IAAI,CAACxqC,YAAY,CAACjvC,MAAM,CACxB,IAAK,IAAI6C,EAAI,EAAGA,EAAI,IAAI,CAACosC,YAAY,CAACjvC,MAAM,CAAE6C,IAAK,CAC/C,IAAIitB,EAAS,IAAI,CAACmf,YAAY,CAACpsC,EAAE,CACd,2BAAfitB,EAAOof,GAAG,EACVuqC,CAAAA,EAAc3pD,EAAOqf,KAAK,EAEX,aAAfrf,EAAOof,GAAG,EACCpf,EAAOqf,KAAK,MAI/B,IAAI,CAACF,YAAY,CAACxqC,IAAI,CAAC,CAAEyqC,IAAK,yBAA0BC,MAAOsqC,CAAY,EAEnF,EAOA5G,QAAS,SAAUxe,CAAG,EAClB,IAAI,CAACnjD,EAAE,CAAGmjD,EAAInjD,EAAE,EAAIkE,EAAcoR,IAAI,GACtC,IAAI,CAAC/C,KAAK,CAAG4wC,EAAI5wC,KAAK,EAAI,GAC1B,IAAI,CAAC41D,WAAW,CAAGhlB,EAAIglB,WAAW,EAAI,GACtC,IAAI,CAACz6C,QAAQ,CAAG,OAChB,IAAI,CAACkrC,OAAO,CAAG10D,EAAc6gE,aAAa,CAAC5hB,EAAIyV,OAAO,GAAK,IAAIh0D,KAC/D,IAAI,CAACogE,SAAS,CAAG7hB,EAAI6hB,SAAS,EAAIvzE,KAAAA,EAClC,IAAI,CAACwzE,OAAO,CAAG9hB,EAAI8hB,OAAO,EAAI,EAAE,CAChC,IAAI,CAAC3pD,YAAY,CAAGpX,EAAc6gE,aAAa,CAAC5hB,EAAI7nC,YAAY,GAAK,IAAI1W,KACzE,IAAI,CAACsgE,cAAc,CAAG/hB,EAAI+hB,cAAc,EAAIzzE,KAAAA,EAC5C,IAAI,CAACssC,YAAY,CAAGolB,EAAIplB,YAAY,EAAI,EAAE,CAC1C,IAAI,CAAConC,gBAAgB,CAAGhiB,EAAIgiB,gBAAgB,EAAI,UAChD,IAAI,CAACxoC,WAAW,CAAGwmB,EAAIxmB,WAAW,EAAI,YACtC,IAAI,CAAC1oB,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAChC,IAAI,CAAC40C,WAAW,CAAG1F,EAAI0F,WAAW,EAAI,IAAI,CAAC50C,QAAQ,CAEnD,IAAI,CAAC20D,gBAAgB,CAAGzlB,EAAIylB,gBAAgB,EAAI,aAChD,IAAI,CAACC,cAAc,CAAG1lB,EAAI0lB,cAAc,EAAI,SAC5C,IAAI,CAAC3P,KAAK,CAAG/V,EAAI+V,KAAK,EAAI,EAAE,CAC5B,IAAI,CAAC4P,WAAW,CAAG3lB,EAAI2lB,WAAW,EAAI,EAAE,CAGxC,IAAIP,EAAc,cACdQ,EAAW,GAEf,GAAI,IAAI,CAAChrC,YAAY,CAACjvC,MAAM,CACxB,IAAK,IAAI6C,EAAI,EAAGA,EAAI,IAAI,CAACosC,YAAY,CAACjvC,MAAM,CAAE6C,IAAK,CAC/C,IAAIitB,EAAS,IAAI,CAACmf,YAAY,CAACpsC,EAAE,CACd,2BAAfitB,EAAOof,GAAG,EACVuqC,CAAAA,EAAc3pD,EAAOqf,KAAK,EAEX,aAAfrf,EAAOof,GAAG,EACV+qC,CAAAA,EAAWnqD,EAAOqf,KAAK,CAE/B,MAEA,IAAI,CAACF,YAAY,CAACxqC,IAAI,CAAC,CAAEyqC,IAAK,yBAA0BC,MAAOsqC,CAAY,EAG/E,KAAI,CAACxQ,aAAa,CAAG,CACjBrH,WAAY,CACR1wD,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTtQ,YAAa,oBACbuQ,eAAgB,EAAE,CAClBpP,cAAe,GACfkC,aAAc,CACV,CAAEp2B,IAAK,mBAAoBC,MAAO,cAAewpC,OAAQ,SAAU,EACnE,CAAEzpC,IAAK,QAASC,MAAO,gBAAiBwpC,OAAQ,WAAY,EAC5D,CAAEzpC,IAAK,cAAeC,MAAO,IAAKwpC,OAAQ,WAAY,EACzD,EAEL9W,MAAO,CACH3wD,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTtQ,YAAa,qBACbuQ,eAAgB,EAAE,CAClBlN,aAAc,CACV,CAAEp2B,IAAK,gBAAiBC,MAAO,SAAU,EACzC,CAAED,IAAK,kBAAmBC,MAAO,EAAM,EACvC,CAAED,IAAK,mBAAoBC,MAAO,EAAK,EAC1C,CACDypC,SAAU,GACVC,uBAAwBY,EACxBX,qBAAsB,GACtBr1D,MAAO4wC,EAAI5wC,KAAK,EAAI,GACpBqnC,SAAUmvB,EACVlB,YAAa,GACbC,WAAY,GACZC,WAAY,GACZC,WAAY,GACZC,kBAAmB,EACvB,CACJ,CACJ,EAEAnG,MAAO,SAAU3e,CAAG,EAChB,IAAI,CAACnjD,EAAE,CAAGmjD,EAAInjD,EAAE,EAAIkE,EAAcoR,IAAI,GACtC,IAAI,CAAC/C,KAAK,CAAG4wC,EAAI5wC,KAAK,EAAI,GAC1B,IAAI,CAAC41D,WAAW,CAAGhlB,EAAIglB,WAAW,EAAI,GACtC,IAAI,CAACz6C,QAAQ,CAAG,KAChB,IAAI,CAACkrC,OAAO,CAAG10D,EAAc6gE,aAAa,CAAC5hB,EAAIyV,OAAO,GAAK,IAAIh0D,KAC/D,IAAI,CAACogE,SAAS,CAAG7hB,EAAI6hB,SAAS,EAAIvzE,KAAAA,EAClC,IAAI,CAACwzE,OAAO,CAAG9hB,EAAI8hB,OAAO,EAAI,EAAE,CAChC,IAAI,CAAC3pD,YAAY,CAAGpX,EAAc6gE,aAAa,CAAC5hB,EAAI7nC,YAAY,GAAK,IAAI1W,KACzE,IAAI,CAACsgE,cAAc,CAAG/hB,EAAI+hB,cAAc,EAAIzzE,KAAAA,EAC5C,IAAI,CAACssC,YAAY,CAAGolB,EAAIplB,YAAY,EAAI,EAAE,CAC1C,IAAI,CAAConC,gBAAgB,CAAGhiB,EAAIgiB,gBAAgB,EAAI,UAChD,IAAI,CAACxoC,WAAW,CAAGwmB,EAAIxmB,WAAW,EAAI,YACtC,IAAI,CAAC1oB,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAEhC,IAAI,CAAC+0D,WAAW,CAAG7lB,EAAI6lB,WAAW,CAClC,IAAI,CAACX,gBAAgB,CAAGllB,EAAIklB,gBAAgB,EAAI,EAAE,CAClD,IAAI,CAACC,KAAK,CAAGnlB,EAAImlB,KAAK,EAAI,EAAE,CAG5B,IAAIC,EAAc,cACdQ,EAAW,GACf,GAAI,IAAI,CAAChrC,YAAY,CAACjvC,MAAM,CACxB,IAAK,IAAI6C,EAAI,EAAGA,EAAI,IAAI,CAACosC,YAAY,CAACjvC,MAAM,CAAE6C,IAAK,CAC/C,IAAIitB,EAAS,IAAI,CAACmf,YAAY,CAACpsC,EAAE,CACd,2BAAfitB,EAAOof,GAAG,EACVuqC,CAAAA,EAAc3pD,EAAOqf,KAAK,EAEX,aAAfrf,EAAOof,GAAG,EACV+qC,CAAAA,EAAWnqD,EAAOqf,KAAK,CAE/B,CAGJ,IAAI,CAAC85B,aAAa,CAAG,CACjBrH,WAAY,CACR1wD,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTtQ,YAAa,oBACbuQ,eAAgB,EAAE,CAClBpP,cAAe,GACfkC,aAAc,CACV,CAAEp2B,IAAK,mBAAoBC,MAAO,cAAewpC,OAAQ,SAAU,EACnE,CAAEzpC,IAAK,QAASC,MAAO,gBAAiBwpC,OAAQ,WAAY,EAC5D,CAAEzpC,IAAK,cAAeC,MAAO,IAAKwpC,OAAQ,WAAY,EACzD,EAEL9W,MAAO,CACH3wD,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTtQ,YAAa,qBACbuQ,eAAgB,EAAE,CAClBlN,aAAc,CACV,CAAEp2B,IAAK,gBAAiBC,MAAO,SAAU,EACzC,CAAED,IAAK,kBAAmBC,MAAO,EAAM,EAC1C,CACDypC,SAAU,GACVC,uBAAwBY,EACxBX,qBAAsB,GACtBr1D,MAAO4wC,EAAI5wC,KAAK,EAAI,GACpBqnC,SAAUmvB,EACVlB,YAAa,GACbC,WAAY,GACZC,WAAY,GACZC,WAAY,GACZC,kBAAmB,EACvB,CACJ,CACJ,EAEA3F,mBAAoB,SAAUnf,CAAG,EAC7B,IAAI,CAACnjD,EAAE,CAAGmjD,EAAInjD,EAAE,EAAIkE,EAAcoR,IAAI,GACtC,IAAI,CAAC/C,KAAK,CAAG4wC,EAAI5wC,KAAK,EAAI,GAC1B,IAAI,CAACmb,QAAQ,CAAG,kBAChB,IAAI,CAACzY,OAAO,CAAGkuC,EAAIluC,OAAO,EAAI,KAC9B,IAAI,CAAC2jD,OAAO,CAAG10D,EAAc6gE,aAAa,CAAC5hB,EAAIyV,OAAO,GAAK,IAAIh0D,KAC/D,IAAI,CAACogE,SAAS,CAAG7hB,EAAI6hB,SAAS,EAAIvzE,KAAAA,EAClC,IAAI,CAACwzE,OAAO,CAAG9hB,EAAI8hB,OAAO,EAAI,EAAE,CAChC,IAAI,CAAC3pD,YAAY,CAAGpX,EAAc6gE,aAAa,CAAC5hB,EAAI7nC,YAAY,GAAK,IAAI1W,KACzE,IAAI,CAACsgE,cAAc,CAAG/hB,EAAI+hB,cAAc,EAAIzzE,KAAAA,EAC5C,IAAI,CAACssC,YAAY,CAAGolB,EAAIplB,YAAY,EAAI,EAAE,CAC1C,IAAI,CAAConC,gBAAgB,CAAGhiB,EAAIgiB,gBAAgB,EAAI,UAChD,IAAI,CAACxoC,WAAW,CAAGwmB,EAAIxmB,WAAW,EAAI,YACtC,IAAI,CAACssC,WAAW,CAAG9lB,EAAI8lB,WAAW,EAAI,GACtC,IAAI,CAACvsC,MAAM,CAAGymB,EAAIzmB,MAAM,EAAI,GAC5B,IAAI,CAACwsC,KAAK,CAAG/lB,EAAI+lB,KAAK,EAAI,OAC1B,IAAI,CAACC,MAAM,CAAGhmB,EAAIgmB,MAAM,EAAI,GAC5B,IAAI,CAACC,SAAS,CAAGjmB,EAAIimB,SAAS,EAAI,EAClC,IAAI,CAACC,sCAAsC,CACvClmB,KAA+C1xD,IAA/C0xD,EAAIkmB,sCAAsC,EAAkBlmB,OAAAA,EAAIkmB,sCAAsC,EAAmBlmB,EAAIkmB,sCAAsC,CACvK,IAAI,CAACC,2CAA2C,CAC5CnmB,KAAoD1xD,IAApD0xD,EAAImmB,2CAA2C,EAAkBnmB,OAAAA,EAAImmB,2CAA2C,EAAmBnmB,EAAImmB,2CAA2C,CACtL,IAAI,CAACC,sCAAsC,CACvCpmB,KAA+C1xD,IAA/C0xD,EAAIomB,sCAAsC,EAAkBpmB,OAAAA,EAAIomB,sCAAsC,EAAmBpmB,EAAIomB,sCAAsC,CACvK,IAAI,CAACt1D,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAChC,IAAI,CAAC40C,WAAW,CAAG1F,EAAI0F,WAAW,EAAI,IAAI,CAAC50C,QAAQ,CACnD,IAAI,CAACu1D,uBAAuB,CAAGrmB,KAAgC1xD,IAAhC0xD,EAAIqmB,uBAAuB,EAAkBrmB,OAAAA,EAAIqmB,uBAAuB,EAAmBrmB,EAAIqmB,uBAAuB,CACrJ,IAAI,CAACC,sBAAsB,CAAGtmB,EAAIsmB,sBAAsB,EAAI,GAC5D,IAAI,CAACC,iBAAiB,CAAGvmB,EAAIumB,iBAAiB,CAC9C,IAAI,CAACC,YAAY,CAAGxmB,EAAIwmB,YAAY,CAGhCxmB,EAAItmC,cAAc,CAAC,4BAA8BsmC,KAAgC1xD,IAAhC0xD,EAAIhnB,uBAAuB,EAAkBgnB,OAAAA,EAAIhnB,uBAAuB,EAAagnB,CAAgC,IAAhCA,EAAIhnB,uBAAuB,EAEjKgnB,EAAIhnB,uBAAuB,CAAG,GAE9B,IAAI,CAACi0B,QAAQ,CAAGjN,EAAIiN,QAAQ,EAAI,CAC5B,CACIpwD,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTtQ,YAAa,wBACbqD,aAAc,CACV,CAAEp2B,IAAK,mBAAoBC,MAAO,cAAewpC,OAAQ,SAAU,EACnE,CAAEzpC,IAAK,QAASC,MAAO,gBAAiBwpC,OAAQ,WAAY,EAC5D,CAAEzpC,IAAK,cAAeC,MAAO,IAAKwpC,OAAQ,WAAY,EACzD,CACDrX,SAAU,CACN,CACIpwD,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTC,eAAgB,EAAE,CAClBvQ,YAAa,wBACb6Y,mBAAoB,qBACpBC,qBAAsB,GACtB3X,cAAe,GACfpB,eAAgB,CACZ9wD,GAAIkE,EAAcoR,IAAI,GACtBy7C,YAAa,qBACbsQ,QAAS,EACTyI,aAAc,GACdnC,uBAAwBtkE,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,+CAC/Fm3D,eAAgB,CAAC,CAAEtjC,IAAK,yBAA0BC,MAAO,aAAc,EAAE,CACzEm2B,aAAc,CACV,CAAEp2B,IAAK,cAAeC,MAAO,IAAKwpC,OAAQ,WAAY,EACtD,CAAEzpC,IAAK,sBAAuBC,MAAO,MAAO,EAC5C,CAAED,IAAK,iBAAkBC,MAAO,eAAgB,EAChD,CAAED,IAAK,gBAAiBC,MAAO,SAAU,EACzC,CAAED,IAAK,kBAAmBC,MAAO,EAAM,EACvC,CAAED,IAAK,mBAAoBC,MAAO,EAAK,EAC1C,EAELm2B,aAAc,CACV,CAAEp2B,IAAK,QAASC,MAAO,gBAAiBwpC,OAAQ,WAAY,EAC5D,CAAEzpC,IAAK,cAAeC,MAAO,IAAKwpC,OAAQ,WAAY,EACzD,EAER,EAEL,CACIznE,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTtQ,YAAa,wBACbqD,aAAc,CACV,CAAEp2B,IAAK,mBAAoBC,MAAO,cAAewpC,OAAQ,SAAU,EACnE,CAAEzpC,IAAK,QAASC,MAAO,SAAUwpC,OAAQ,WAAY,EACrD,CAAEzpC,IAAK,cAAeC,MAAO,IAAKwpC,OAAQ,WAAY,EACzD,CACDrX,SAAU,CACN,CACIpwD,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTC,eAAgB,EAAE,CAClBvQ,YAAa,gCACbgZ,aAAcv0E,EAAqBS,SAAS,CAAC,0BAC7C+zE,YAAa,GACb5V,aAAc,CACV,CAAEp2B,IAAK,iCAAkCC,MAAO,EAAK,EACrD,CAAED,IAAK,mBAAoBC,MAAO,EAAM,EAC3C,EAER,EAER,EAED,IAAI,CAACmyB,QAAQ,CAAGjN,EAAIiN,QAAQ,EAAI,CAC5B,CACIpwD,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTtQ,YAAa,wBACbqD,aAAc,CACV,CAAEp2B,IAAK,mBAAoBC,MAAO,cAAewpC,OAAQ,SAAU,EACnE,CAAEzpC,IAAK,QAASC,MAAO,SAAUwpC,OAAQ,WAAY,EACrD,CAAEzpC,IAAK,cAAeC,MAAO,IAAKwpC,OAAQ,WAAY,EACzD,CACDrX,SAAU,CACN,CACIpwD,GAAIkE,EAAcoR,IAAI,GACtB+rD,QAAS,EACTC,eAAgB,EAAE,CAClBvQ,YAAa,gCACbgZ,aAAcv0E,EAAqBS,SAAS,CAAC,0BAC7C+zE,YAAa,GACb5V,aAAc,CACV,CAAEp2B,IAAK,iCAAkCC,MAAO,EAAK,EACrD,CAAED,IAAK,mBAAoBC,MAAO,EAAM,EAC3C,EAER,EAER,EAITskC,mBAAoB,SAAUpf,CAAG,EAC7B,IAAI,CAACnjD,EAAE,CAAGmjD,EAAInjD,EAAE,EAAIkE,EAAcoR,IAAI,GACtC,IAAI,CAAC/C,KAAK,CAAG4wC,EAAI5wC,KAAK,EAAI,GAC1B,IAAI,CAAC41D,WAAW,CAAGhlB,EAAIglB,WAAW,EAAI,GACtC,IAAI,CAACz6C,QAAQ,CAAG,kBAChB,IAAI,CAACzY,OAAO,CAAGkuC,EAAIluC,OAAO,EAAI,KAC9B,IAAI,CAAC2jD,OAAO,CAAG10D,EAAc6gE,aAAa,CAAC5hB,EAAIyV,OAAO,GAAK,IAAIh0D,KAC/D,IAAI,CAACogE,SAAS,CAAG7hB,EAAI6hB,SAAS,EAAIvzE,KAAAA,EAClC,IAAI,CAACwzE,OAAO,CAAG9hB,EAAI8hB,OAAO,EAAI,EAAE,CAChC,IAAI,CAAC3pD,YAAY,CAAGpX,EAAc6gE,aAAa,CAAC5hB,EAAI7nC,YAAY,GAAK,IAAI1W,KACzE,IAAI,CAACsgE,cAAc,CAAG/hB,EAAI+hB,cAAc,EAAIzzE,KAAAA,EAC5C,IAAI,CAACssC,YAAY,CAAGolB,EAAIplB,YAAY,EAAI,EAAE,CAC1C,IAAI,CAAConC,gBAAgB,CAAGhiB,EAAIgiB,gBAAgB,EAAI,UAChD,IAAI,CAACxoC,WAAW,CAAGwmB,EAAIxmB,WAAW,EAAI,YACtC,IAAI,CAACnoB,KAAK,CAAG2uC,EAAI3uC,KAAK,EAAI,EAAE,CAC5B,IAAI,CAACy0D,WAAW,CAAG9lB,EAAI8lB,WAAW,EAAI,GACtC,IAAI,CAACvsC,MAAM,CAAGymB,EAAIzmB,MAAM,EAAI,GAC5B,IAAI,CAACwsC,KAAK,CAAG/lB,EAAI+lB,KAAK,EAAI,OAC1B,IAAI,CAACC,MAAM,CAAGhmB,EAAIgmB,MAAM,EAAI,GAC5B,IAAI,CAACC,SAAS,CAAGjmB,EAAIimB,SAAS,EAAI,EAClC,IAAI,CAACa,mBAAmB,CAAG9mB,EAAI8mB,mBAAmB,EAAI,GACtD,IAAI,CAACh2D,QAAQ,CAAGkvC,EAAIlvC,QAAQ,EAAI,EAChC,IAAI,CAAC40C,WAAW,CAAG1F,EAAI0F,WAAW,EAAI,IAAI,CAAC50C,QAAQ,CACnD,IAAI,CAACi2D,wBAAwB,CAAG,CAAC,CAAC/mB,EAAI+mB,wBAAwB,CAC9D,IAAI,CAACC,eAAe,CAAGhnB,EAAIgnB,eAAe,CAC1C,IAAI,CAACC,gBAAgB,CAAGjnB,EAAIinB,gBAAgB,EAOhD5H,YAAa,WAETpB,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,WAAY,EAAE,EAG1D,IAAI,CAAC/+B,IAAI,CAAG,GACZ,IAAI,CAACzf,KAAK,CAAG,GACb,IAAI,CAAC21D,cAAc,CAAG,GACtB,IAAI,CAACH,UAAU,CAAG,GAClB,IAAI,CAACC,UAAU,CAAG,GAClB,IAAI,CAACC,iBAAiB,CAAG,GAEzB,IAAI,CAACJ,WAAW,CAAG,GAGnB,IAAI,CAACzT,YAAY,CAAG,CAChB,CAAEp2B,IAAK,gBAAiBC,MAAO,EAAM,EACrC,CAAED,IAAK,eAAgBC,MAAO,CAAE,EAGnC,EAOLwkC,cAAe,SAAUtf,CAAG,EAExBie,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,YAAa,EAAE,EAG3D,IAAI,CAACsZ,YAAY,CAAG,GACpB,IAAI,CAACC,SAAS,CAAGnJ,CAAW,CAAChe,EAAIz1B,QAAQ,CAAC,CAC1C,IAAI,CAAC68C,UAAU,CAAG,GAClB,IAAI,CAACh4D,KAAK,CAAG,GACb,IAAI,CAACi4D,QAAQ,CAAG,GAChB,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAACC,OAAO,CAAG,GACf,IAAI,CAACC,aAAa,CAAG,GACrB,IAAI,CAACv1D,OAAO,CAAG,KAEf,IAAI,CAACg/C,YAAY,CAAG,CAChB,CAAEp2B,IAAK,gBAAiBC,MAAO,EAAM,EACrC,CAAED,IAAK,kBAAmBC,MAAO,EAAM,EAC1C,CAEGkjC,UAAAA,CAAW,CAAChe,EAAIz1B,QAAQ,CAAC,CACzB,IAAI,CAAC0mC,YAAY,CAAC7gE,IAAI,CAAC,CAAEyqC,IAAK,iBAAkBC,MAAO,EAAG,GACnDkjC,UAAAA,CAAW,CAAChe,EAAIz1B,QAAQ,CAAC,CAChC,IAAI,CAAC0mC,YAAY,CAAC7gE,IAAI,CAAC,CAAEyqC,IAAK,iBAAkBC,MAAO,EAAG,GACrB,UAA9BkjC,CAAW,CAAChe,EAAIz1B,QAAQ,CAAC,EAChC,IAAI,CAAC0mC,YAAY,CAAC7gE,IAAI,CAAC,CAAEyqC,IAAK,oBAAqBC,MAAO,QAAS,EAE3E,EAMAykC,aAAc,SAAUvf,CAAG,EAEvBie,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,WAAY,EAAE,EAG1D,IAAI,CAAC2W,QAAQ,CAAG,GAChB,IAAI,CAACC,sBAAsB,CAAGtkE,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,+CACrG,IAAI,CAACy9D,oBAAoB,CAAG,GAC5B,IAAI,CAACr1D,KAAK,CAAG,GACb,IAAI,CAACqnC,QAAQ,CAAG,GAChB,IAAI,CAACiuB,WAAW,CAAG,GACnB,IAAI,CAACC,UAAU,CAAG,GAClB,IAAI,CAACC,UAAU,CAAG,GAClB,IAAI,CAACC,UAAU,CAAG,GAClB,IAAI,CAACC,iBAAiB,CAAG,GAEzB,IAAI2C,EAAsB,CACtB,CAAE5sC,IAAK,cAAeC,MAAO,IAAKwpC,OAAQ,WAAY,EACtD,CAAEzpC,IAAK,sBAAuBC,MAAO,MAAO,EAC5C,CAAED,IAAK,iBAAkBC,MAAO,eAAgB,EAChD,CAAED,IAAK,gBAAiBC,MAAO,SAAU,EACzC,CAAED,IAAK,kBAAmBC,MAAO,EAAM,EACvC,CAAED,IAAK,mBAAoBC,MAAO,EAAK,EAC1C,CAED,IAAI,CAACm2B,YAAY,CAAGjR,GAAOA,EAAIiR,YAAY,CAAGjR,EAAIiR,YAAY,CAACyW,oBAAoB,CAACD,EAAqB,OAASA,CACtH,EAMAjI,cAAe,SAAUxf,CAAG,CAAEnoC,CAAO,CAAE8vD,CAAe,EAClD,IAAIC,EAAc/vD,GAAoBmoC,EAAIz1B,QAAQ,CAYlD,OATA0zC,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAaga,EAAaxJ,gBAAiBuJ,CAAgB,EAAE,EAG5F,IAAI,CAACE,QAAQ,CAAG,GAChB,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAACC,qBAAqB,CAAG,GAC7B,IAAI,CAAC9W,YAAY,CAAG,EAAE,CACtB,IAAI,CAAC+W,iBAAiB,CAAG,CAAC,EAElBnwD,GACJ,IAAK,mBACD,IAAI,CAAC+uD,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAACkB,qBAAqB,CAAG,GAC7B,KACJ,KAAK,mBACD,IAAI,CAAC9W,YAAY,CAAG,CAAC,CAAEp2B,IAAKotC,EAAAA,CAAaA,CAACC,4BAA4B,CAAEptC,MAAO,EAAK,EAAE,CACtF,IAAI,CAAC8rC,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GACnB,KACJ,SACI,IAAI,CAAC5V,YAAY,CAAG,CAAC,CAAEp2B,IAAKotC,EAAAA,CAAaA,CAACE,aAAa,CAAErtC,MAAO,EAAM,EAAE,CACxE,IAAI,CAAC1rB,KAAK,CAAG,EAErB,CACJ,EAMAqwD,cAAe,WAEXxB,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,YAAa,EAAE,EAG3D,IAAI,CAACwa,KAAK,CAAG,GACb,IAAI,CAACC,QAAQ,CAAG,GAEhB,IAAI,CAACpX,YAAY,CAAG,CAAC,CAAEp2B,IAAK,mBAAoBC,MAAO,EAAK,EAAE,EAOlE4kC,cAAe,WAEXzB,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,YAAa,EAAE,EAG3D,IAAI,CAACx+C,KAAK,CAAG,GACb,IAAI,CAACk5D,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAACvD,WAAW,CAAG,GACnB,IAAI,CAACvP,OAAO,CAAG,GACf,IAAI,CAAC+S,QAAQ,CAAG,GAChB,IAAI,CAACC,aAAa,CAAG,GACrB,IAAI,CAACC,UAAU,CAAG,GAClB,IAAI,CAACC,SAAS,CAAG,GACjB,IAAI,CAACC,SAAS,CAAG,GACjB,IAAI,CAAC3X,YAAY,CAAG,EAAE,EAG1BmQ,uBAAwB,SAAUphB,CAAG,EACjCie,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,gBAAiB,EAAE,EAC/D,IAAI,CAACmB,aAAa,CAAG,GACrB,IAAI,CAAC2X,oBAAoB,CAAG,GAW5B,IAAImC,EAAiBC,CARjB,aAAc,CACVC,aAAc,CACV,CAAEluC,IAAK,sBAAuBC,MAAO,MAAO,EAC5C,CAAED,IAAK,gBAAiBC,MAAO,SAAU,EAC5C,CAET,CAE8B,CAACklB,EAAIgpB,SAAS,CAAC,CAC7C,IAAI,CAACrb,cAAc,CAAG/R,EAAWsJ,MAAM,CAAC,CACpC36B,SAAUy1B,EAAIgpB,SAAS,CACvB/X,aAAc4X,KAAwB,IAAxBA,EAA4BA,EAAeE,YAAY,CAAG,EAAE,GAE9E,IAAI,CAACtC,kBAAkB,CAAG,IAAI,CAAC9Y,cAAc,CAACC,WAAW,CACzD,IAAI,CAACqD,YAAY,CAAG,CAChB,CAAEp2B,IAAK,QAASC,MAAO,gBAAiBwpC,OAAQ,WAAY,EAC5D,CAAEzpC,IAAK,cAAeC,MAAO,IAAKwpC,OAAQ,WAAY,EACzD,EAOL3E,mBAAoB,WAEhB1B,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,0BAA2B,EAAE,EAGzE,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAAC5V,YAAY,CAAG,CAChB,CAAEp2B,IAAKotC,EAAAA,CAAaA,CAACgB,YAAY,CAAEnuC,MAAO,EAAM,EAChD,CAAED,IAAKotC,EAAAA,CAAaA,CAACiB,sBAAsB,CAAEpuC,MAAO,EAAM,EAC1D,CAAED,IAAKotC,EAAAA,CAAaA,CAACkB,sBAAsB,CAAEruC,MAAO,EAAK,EACzD,CAAED,IAAKotC,EAAAA,CAAaA,CAACmB,6BAA6B,CAAEtuC,MAAO,EAAK,EAChE,CAAED,IAAKotC,EAAAA,CAAaA,CAACoB,aAAa,CAAEvuC,MAAO,QAAS,EACpD,CAAED,IAAKotC,EAAAA,CAAaA,CAACqB,sBAAsB,CAAExuC,MAAO,EAAM,EAC1D,CAAED,IAAKotC,EAAAA,CAAaA,CAACsB,2BAA2B,CAAEzuC,MAAO,EAAG,EAC/D,EAOL8kC,kBAAmB,WAEf3B,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,yBAA0B,EAAE,EAGxE,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAAC2C,QAAQ,CAAG,EAChB,IAAI,CAACC,QAAQ,CAAG,EAEhB,IAAI,CAACxY,YAAY,CAAG,CAChB,CAAEp2B,IAAKotC,EAAAA,CAAaA,CAACyB,kBAAkB,CAAE5uC,MAAO,EAAM,EACtD,CAAED,IAAKotC,EAAAA,CAAaA,CAACgB,YAAY,CAAEnuC,MAAO,EAAM,EAChD,CAAED,IAAKotC,EAAAA,CAAaA,CAACiB,sBAAsB,CAAEpuC,MAAO,EAAM,EAC1D,CAAED,IAAKotC,EAAAA,CAAaA,CAACkB,sBAAsB,CAAEruC,MAAO,EAAK,EACzD,CAAED,IAAKotC,EAAAA,CAAaA,CAACmB,6BAA6B,CAAEtuC,MAAO,EAAK,EAChE,CAAED,IAAKotC,EAAAA,CAAaA,CAACoB,aAAa,CAAEvuC,MAAO,QAAS,EACpD,CAAED,IAAKotC,EAAAA,CAAaA,CAACqB,sBAAsB,CAAExuC,MAAO,EAAM,EAC1D,CAAED,IAAKotC,EAAAA,CAAaA,CAACsB,2BAA2B,CAAEzuC,MAAO,EAAG,EAC/D,EAOL+kC,oBAAqB,WAEjB5B,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,gCAAiC,EAAE,EAG/E,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAAC8C,MAAM,CAAGpQ,EAAwBqQ,gBAAgB,GAAGtb,OAAO,CAEhE,IAAI,CAACub,MAAM,CAAG,CACV,CACIhvC,IAAK95B,EAAcoR,IAAI,GACvB2oB,MAAO,EACX,EACA,CACID,IAAK95B,EAAcoR,IAAI,GACvB2oB,MAAO,EACX,EACA,CACID,IAAK95B,EAAcoR,IAAI,GACvB2oB,MAAO,EACX,EACH,CAED,IAAI,CAACm2B,YAAY,CAAG,CAChB,CAAEp2B,IAAK,qBAAsBC,MAAO,EAAM,EAC1C,CAAED,IAAK,0BAA2BC,MAAO,EAAM,EAC/C,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,gBAAiBC,MAAO,QAAS,EACxC,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAKotC,EAAAA,CAAaA,CAACsB,2BAA2B,CAAEzuC,MAAO,EAAG,EAC/D,EAOLglC,iBAAkB,WAEd7B,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,8BAA+B,EAAE,EAG7E,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAAC8C,MAAM,CAAGpQ,EAAwBqQ,gBAAgB,GAAGtb,OAAO,CAChE,IAAI,CAACwb,UAAU,CAAG,CACd,CACIjvC,IAAK95B,EAAcoR,IAAI,GACvB2oB,MAAO,EACX,EACA,CACID,IAAK95B,EAAcoR,IAAI,GACvB2oB,MAAO,EACX,EACA,CACID,IAAK95B,EAAcoR,IAAI,GACvB2oB,MAAO,EACX,EACH,CAED,IAAI,CAACm2B,YAAY,CAAG,CAChB,CAAEp2B,IAAK,qBAAsBC,MAAO,EAAM,EAC1C,CAAED,IAAK,0BAA2BC,MAAO,EAAM,EAC/C,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,gBAAiBC,MAAO,QAAS,EACxC,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAKotC,EAAAA,CAAaA,CAACsB,2BAA2B,CAAEzuC,MAAO,EAAG,EAC/D,EAOLilC,iBAAkB,WAEd9B,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,4BAA6B,EAAE,EAG3E,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAACkD,QAAQ,CAAG,CACZ,CACIlvC,IAAK95B,EAAcoR,IAAI,GACvB2oB,MAAO,EACX,EACA,CACID,IAAK95B,EAAcoR,IAAI,GACvB2oB,MAAO,EACX,EACA,CACID,IAAK95B,EAAcoR,IAAI,GACvB2oB,MAAO,EACX,EACH,CAED,IAAI,CAACm2B,YAAY,CAAG,CAChB,CAAEp2B,IAAK,0BAA2BC,MAAO,EAAM,EAC/C,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,gBAAiBC,MAAO,QAAS,EACxC,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAKotC,EAAAA,CAAaA,CAACsB,2BAA2B,CAAEzuC,MAAO,EAAG,EAC/D,EAOLklC,mBAAoB,WAEhB/B,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,wBAAyB,EAAE,EAGvE,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAAC5V,YAAY,CAAG,CAChB,CAAEp2B,IAAK,eAAgBC,MAAO,EAAM,EACpC,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,gBAAiBC,MAAO,QAAS,EACxC,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAKotC,EAAAA,CAAaA,CAACsB,2BAA2B,CAAEzuC,MAAO,EAAG,EAC/D,EAOLmlC,yBAA0B,WAEtBhC,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,6BAA8B,EAAE,EAG5E,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAAC5V,YAAY,CAAG,CAChB,CAAEp2B,IAAK,oBAAqBC,MAAO,EAAG,EACtC,CAAED,IAAK,wBAAyBC,MAAO,MAAO,EAC9C,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACvD,EAOLolC,oBAAqB,WAEjBjC,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,4BAA6B,EAAE,EAG3E,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAAC50D,OAAO,CAAG,KAEf,IAAI,CAACg/C,YAAY,CAAG,CAChB,CAAEp2B,IAAK,qBAAsBC,MAAO,4BAA6B,EACjE,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EACjD,EAOLmmC,uBAAwB,WAEpBhD,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,wBAAyBwQ,gBAAiB,EAAK,EAAE,EAG7F,IAAI,CAACwI,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAAC5V,YAAY,CAAG,EAAE,EAO1BiQ,iBAAkB,WAEdjD,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,kBAAmB,EAAE,EAGjE,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAACmD,WAAW,CAAG,GAEnB,IAAI,CAAC/Y,YAAY,CAAG,EAAE,EAO1BkP,wBAAyB,WAErBlC,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,+BAAgC,EAAE,EAG9E,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAAC5V,YAAY,CAAG,CAChB,CAAEp2B,IAAK,iCAAkCC,MAAO,EAAK,EACrD,CAAED,IAAK,mBAAoBC,MAAO,EAAM,EAC3C,EAGLgmC,uBAAwB,WACpB7C,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,uBAAwB,EAAE,EACtE,IAAI,CAACqD,YAAY,CAAG,CAAC,CAAEp2B,IAAK,kCAAmCC,MAAO,EAAK,EAAE,EAOjFslC,eAAgB,WAEZnC,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,0BAA2B,EAAE,EAGzE,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAACoD,aAAa,CAAG,GACrB,IAAI,CAACC,aAAa,CAAG,GAErB,IAAI,CAACjZ,YAAY,CAAG,CAChB,CAAEp2B,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,gBAAiBC,MAAO,QAAS,EACxC,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAKotC,EAAAA,CAAaA,CAACsB,2BAA2B,CAAEzuC,MAAO,EAAG,EAC/D,EAGLulC,kBAAmB,SAAU8J,CAAS,EAClC,OAAQA,GACJ,KAAK7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACC,WAAW,CAC3C,OAAO,IAAI,IAAI,CAACC,gBAAgB,CAACJ,EACrC,MAAK7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACG,QAAQ,CACxC,OAAO,IAAI,IAAI,CAACC,qBAAqB,CAACN,EAC1C,MAAK7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACK,cAAc,CAC9C,OAAO,IAAI,IAAI,CAACC,wBAAwB,CAACR,EAC7C,MAAK7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACO,UAAU,CAC1C,OAAO,IAAI,IAAI,CAACC,mBAAmB,CAACV,EACxC,MAAK7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACU,MAAM,CAACJ,cAAc,CAC/C,OAAO,IAAI,IAAI,CAACK,sBAAsB,CAACZ,EAC3C,SACI,MAAM,MAAU,uBAAyBA,EAAY,KAC7D,CACJ,EAEAI,iBAAkB,SAAUJ,CAAS,EAEjClM,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAaiO,EAAczN,mBAAmB,EAAG,EAEhF,IAAI4c,EAAY1R,EAAY2R,OAAO,CAACC,gBAAgB,CAACf,EAAU,CAC3DgB,EAAsBH,EAAY,EAClC1jB,EAASxL,EAAesvB,cAAc,CAAC,CACnCC,kBAAmBhS,EAAgBgS,iBAAiB,CACpDl5D,KAAMpR,EAAcoR,IAAI,CACxBg4D,UAAWA,EACXa,UAAWA,CACf,EAGJ,KAAI,CAACpE,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAACyE,SAAS,CAAGnB,EACjB,IAAI,CAACoB,IAAI,CAAGjkB,EAAOikB,IAAI,CACvB,IAAI,CAACC,OAAO,CAAGlkB,EAAOmkB,IAAI,CAE1B,IAAI,CAACxa,YAAY,CAAG,CAChB,CAAEp2B,IAAK,0BAA2BC,MAAOkwC,EAAY,IAAMG,EAAqB7G,OAAQ,SAAU,EAClG,CAAEzpC,IAAK,iBAAkBC,MAAO,YAAawpC,OAAQ,SAAU,EAC/D,CAAEzpC,IAAK,yBAA0BC,MAAO,QAASwpC,OAAQ,SAAU,EACnE,CAAEzpC,IAAK,yBAA0BC,MAAO,OAAQwpC,OAAQ,SAAU,EAClE,CAAEzpC,IAAK,gCAAiCC,MAAO,OAAQwpC,OAAQ,SAAU,EACzE,CAAEzpC,IAAK,iCAAkCC,MAAO,SAAUwpC,OAAQ,SAAU,EAC5E,CAAEzpC,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAKotC,EAAAA,CAAaA,CAACsB,2BAA2B,CAAEzuC,MAAO,EAAG,EAC/D,EAGL+vC,oBAAqB,SAAUV,CAAS,EAEpClM,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAaiO,EAAczN,mBAAmB,EAAG,EAEhF,IAAI4c,EAAY1R,EAAY2R,OAAO,CAACC,gBAAgB,CAACf,EAAU,CAC3D7iB,EAASxL,EAAesvB,cAAc,CAAC,CACnCj5D,KAAMpR,EAAcoR,IAAI,CACxBg4D,UAAWA,EACXa,UAAWA,CACf,EAGJ,KAAI,CAACpE,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAACyE,SAAS,CAAGnB,EACjB,IAAI,CAACuB,KAAK,CAAGpkB,EAEb,IAAI,CAAC2J,YAAY,CAAG,CAChB,CAAEp2B,IAAK,kBAAmBC,MAAOkwC,EAAW1G,OAAQ,SAAU,EAC9D,CAAEzpC,IAAK,0BAA2BC,MAAO,IAAKwpC,OAAQ,SAAU,EAChE,CAAEzpC,IAAK,yBAA0BC,MAAO,QAASwpC,OAAQ,SAAU,EACnE,CAAEzpC,IAAK,yBAA0BC,MAAO,OAAQwpC,OAAQ,SAAU,EAClE,CAAEzpC,IAAK,gCAAiCC,MAAO,OAAQwpC,OAAQ,SAAU,EACzE,CAAEzpC,IAAK,iCAAkCC,MAAO,SAAUwpC,OAAQ,SAAU,EAC5E,CAAEzpC,IAAK,yBAA0BC,MAAO,EAAM,EACjD,EAGL2vC,sBAAuB,SAAUN,CAAS,EAEtClM,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAaiO,EAAczN,mBAAmB,EAAG,EAEhF,IAAI4c,EAAY1R,EAAY2R,OAAO,CAACC,gBAAgB,CAACf,EAAU,CAC3DgB,EAAsBH,EAAY,EAClC1jB,EAASxL,EAAesvB,cAAc,CAAC,CACnCC,kBAAmBhS,EAAgBgS,iBAAiB,CACpDl5D,KAAMpR,EAAcoR,IAAI,CACxBg4D,UAAWA,EACXa,UAAWA,CACf,EAGJ,KAAI,CAACpE,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAACyE,SAAS,CAAGnB,EACjB,IAAI,CAACoB,IAAI,CAAGjkB,EAAOikB,IAAI,CACvB,IAAI,CAACC,OAAO,CAAGlkB,EAAOmkB,IAAI,CAE1B,IAAI,CAACxa,YAAY,CAAG,CAChB,CAAEp2B,IAAK,0BAA2BC,MAAOqwC,EAAsB,IAAMA,CAAoB,EACzF,CAAEtwC,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,iCAAkCC,MAAO,QAAS,EACzD,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EACjD,EAOL6vC,yBAA0B,SAAUR,CAAS,EAEzClM,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAaiO,EAAczN,mBAAmB,EAAG,EAEhF,IAAI4c,EAAY1R,EAAY2R,OAAO,CAACC,gBAAgB,CAACf,EAAU,CAC3DgB,EAAsBH,EAAY,EAClC1jB,EAASxL,EAAesvB,cAAc,CAAC,CACnCC,kBAAmBhS,EAAgBgS,iBAAiB,CACpDl5D,KAAMpR,EAAcoR,IAAI,CACxBg4D,UAAWA,EACXa,UAAWA,CACf,EAGJ,KAAI,CAACpE,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAACyE,SAAS,CAAGnB,EACjB,IAAI,CAACoB,IAAI,CAAGjkB,EAAOikB,IAAI,CACvB,IAAI,CAACC,OAAO,CAAGlkB,EAAOmkB,IAAI,CAE1B,IAAI,CAACxa,YAAY,CAAG,CAChB,CAAEp2B,IAAK,0BAA2BC,MAAOqwC,EAAsB,IAAMA,CAAoB,EACzF,CAAEtwC,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,iCAAkCC,MAAO,QAAS,EACzD,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EACjD,EAOLiwC,uBAAwB,SAAUZ,CAAS,EAEvClM,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAaiO,EAAczN,mBAAmB,EAAG,EAEhF,IAAI4c,EAAY1R,EAAY2R,OAAO,CAACC,gBAAgB,CAACf,EAAU,CAC3DgB,EAAsBH,EAAY,EAClC1jB,EAASxL,EAAesvB,cAAc,CAAC,CACnCC,kBAAmBhS,EAAgBgS,iBAAiB,CACpDl5D,KAAMpR,EAAcoR,IAAI,CACxBg4D,UAAWA,EACXa,UAAWA,CACf,EAGJ,KAAI,CAACpE,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAACyE,SAAS,CAAGnB,EACjB,IAAI,CAACoB,IAAI,CAAGjkB,EAAOikB,IAAI,CACvB,IAAI,CAACC,OAAO,CAAGlkB,EAAOmkB,IAAI,CAE1B,IAAI,CAACxa,YAAY,CAAG,CAChB,CAAEp2B,IAAK,0BAA2BC,MAAOqwC,EAAsB,IAAMA,CAAoB,EACzF,CAAEtwC,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,gBAAiBC,MAAO,QAAS,EACxC,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAKotC,EAAAA,CAAaA,CAACsB,2BAA2B,CAAEzuC,MAAO,EAAG,EAC/D,EAQLylC,eAAgB,WAEZtC,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,yBAA0B,EAAE,EAGxE,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAACoD,aAAa,CAAG,GACrB,IAAI,CAACC,aAAa,CAAG,GAErB,IAAI,CAACjZ,YAAY,CAAG,CAChB,CAAEp2B,IAAK,mBAAoBC,MAAO,GAAI,EACtC,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,gBAAiBC,MAAO,QAAS,EACxC,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAKotC,EAAAA,CAAaA,CAACsB,2BAA2B,CAAEzuC,MAAO,EAAG,EAC/D,EAOLwlC,gBAAiB,WAEbrC,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,2BAA4B,EAAE,EAG1E,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAACoD,aAAa,CAAG,GACrB,IAAI,CAACC,aAAa,CAAG,GAErB,IAAI,CAACjZ,YAAY,CAAG,CAChB,CAAEp2B,IAAK,gBAAiBC,MAAO,KAAM,EACrC,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,gBAAiBC,MAAO,QAAS,EACxC,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAKotC,EAAAA,CAAaA,CAACsB,2BAA2B,CAAEzuC,MAAO,EAAG,EAC/D,EAGL0lC,iBAAkB,WACdvC,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,+BAAgC,EAAE,EAC9E,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAAC5V,YAAY,CAAG,CAChB,CAAEp2B,IAAK,yBAA0BC,MAAO,OAAQwpC,OAAQ,SAAU,EAClE,CAAEzpC,IAAK,gCAAiCC,MAAO,OAAQwpC,OAAQ,SAAU,EACzE,CAAEzpC,IAAK,6BAA8BC,MAAO,GAAOwpC,OAAQ,SAAU,EACrE,CAAEzpC,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAKotC,EAAAA,CAAaA,CAAC0D,0BAA0B,CAAE7wC,MAAO,GAAI,EAC/D,EAOL+lC,yBAA0B,WAEtB5C,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,sCAAuC,EAAE,EAGrF,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAACoD,aAAa,CAAG,GACrB,IAAI,CAACC,aAAa,CAAG,GAErB,IAAI,CAACjZ,YAAY,CAAG,CAChB,CAAEp2B,IAAK,gBAAiBC,MAAO,KAAM,EACrC,CAAED,IAAK,2CAA4CC,MAAO,EAAK,EAC/D,CAAED,IAAK,8CAA+CC,MAAO,EAAK,EAClE,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,6BAA8BC,MAAO,EAAM,EAClD,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAKotC,EAAAA,CAAaA,CAAC0D,0BAA0B,CAAE7wC,MAAO,GAAI,EAC/D,EAOL2lC,kBAAmB,WAEfxC,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,mBAAoBwQ,gBAAiB,EAAK,EAAE,EAGxF,IAAI,CAAC8I,YAAY,CAAG,GACpB,IAAI,CAACK,OAAO,CAAG,GACf,IAAI,CAACt1D,OAAO,CAAG,KAEf,IAAI,CAACg/C,YAAY,CAAG,CAChB,CAAEp2B,IAAK,sBAAuBC,MAAO,EAAM,EAC3C,CAAED,IAAK,oBAAqBC,MAAO,QAAS,EAC5C,CAAED,IAAK,+BAAgCC,MAAO,EAAK,EACtD,EAOL4lC,kBAAmB,WAEfzC,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,mBAAoBwQ,gBAAiB,EAAK,EAAE,EAGxF,IAAI,CAAC8I,YAAY,CAAG,GACpB,IAAI,CAACK,OAAO,CAAG,GAEf,IAAI,CAACtW,YAAY,CAAG,CAChB,CAAEp2B,IAAK,sBAAuBC,MAAO,EAAM,EAC3C,CAAED,IAAK,iBAAkBC,MAAO,EAAG,EACnC,CAAED,IAAK,+BAAgCC,MAAO,EAAK,EACtD,EAQL6lC,kBAAmB,WAEf1C,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,mBAAoBwQ,gBAAiB,EAAK,EAAE,EAGxF,IAAI,CAAC8I,YAAY,CAAG,GACpB,IAAI,CAACK,OAAO,CAAG,GAEf,IAAI,CAACtW,YAAY,CAAG,CAChB,CAAEp2B,IAAK,sBAAuBC,MAAO,EAAM,EAC3C,CAAED,IAAK,iBAAkBC,MAAO,EAAG,EACnC,CAAED,IAAK,+BAAgCC,MAAO,EAAK,EACtD,EAOL8lC,iBAAkB,WAEd3C,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,kBAAmBwQ,gBAAiB,EAAK,EAAE,EAGvF,IAAI,CAACvvC,IAAI,CAAG,GACZ,IAAI,CAACoiC,YAAY,CAAG,CAAC,CAAEp2B,IAAK,+BAAgCC,MAAO,EAAK,EAAE,EAG9EimC,wBAAyB,WACrB9C,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,0CAA2C,EAAE,EAEzF,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAAC8C,MAAM,CAAGpQ,EAAwBqQ,gBAAgB,GAAGtb,OAAO,CAChE,IAAI,CAACub,MAAM,CAAG,CACV,CACIhvC,IAAK95B,EAAcoR,IAAI,GACvB2oB,MAAO,EACX,EACA,CACID,IAAK95B,EAAcoR,IAAI,GACvB2oB,MAAO,EACX,EACA,CACID,IAAK95B,EAAcoR,IAAI,GACvB2oB,MAAO,EACX,EACH,CAED,IAAI,CAACm2B,YAAY,CAAG,CAChB,CAAEp2B,IAAK,qBAAsBC,MAAO,EAAM,EAC1C,CAAED,IAAK,0BAA2BC,MAAO,EAAM,EAC/C,CAAED,IAAK,2CAA4CC,MAAO,EAAK,EAC/D,CAAED,IAAK,8CAA+CC,MAAO,EAAK,EAClE,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,6BAA8BC,MAAO,GAAOwpC,OAAQ,SAAU,EACrE,CAAEzpC,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAKotC,EAAAA,CAAaA,CAAC0D,0BAA0B,CAAE7wC,MAAO,GAAI,EAC/D,EAOLkmC,yBAA0B,WAEtB/C,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,oCAAqC,EAAE,EAGnF,IAAI,CAACgZ,YAAY,CAAG,GACpB,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAACoD,aAAa,CAAG,GACrB,IAAI,CAACC,aAAa,CAAG,GAErB,IAAI,CAACjZ,YAAY,CAAG,CAChB,CAAEp2B,IAAK,2CAA4CC,MAAO,EAAK,EAC/D,CAAED,IAAK,8CAA+CC,MAAO,EAAK,EAClE,CAAED,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACpD,CAAED,IAAK,6BAA8BC,MAAO,EAAM,EAClD,CAAED,IAAK,yBAA0BC,MAAO,EAAM,EAC9C,CAAED,IAAKotC,EAAAA,CAAaA,CAAC0D,0BAA0B,CAAE7wC,MAAO,GAAI,EAC/D,EAWLg1B,cAAe,SAAUl7D,CAAI,CAAEg3E,CAAqB,CAAE7c,CAAa,CAAE8c,CAAa,EAE9E5N,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,aAAcke,gBAAiB,EAAM,EAAE,EAEnF,IAAI,CAAC/c,aAAa,CAAGA,GAAiB,GACtC,IAAI,CAAC9B,QAAQ,CAAG,EAAE,CAClB,IAAI,CAACgE,YAAY,CAAG,CAChB,CACIp2B,IAAK,mBAELC,MAAO8wC,KAAyBt9E,GAAzBs9E,EAAqCA,EAAwB,cACpEtH,OAAQ,SACZ,EACA,CAAEzpC,IAAK,QAASC,MAAOlmC,EAAM0vE,OAAQ,WAAY,EACjD,CAAEzpC,IAAK,cAAeC,MAAO+wC,GAAiB,GAAIvH,OAAQ,WAAY,EACzE,EAWL7U,yBAA0B,SAAU76D,CAAI,CAAEg3E,CAAqB,CAAE7c,CAAa,CAAE8c,CAAa,EAEzF5N,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,wBAAyBke,gBAAiB,EAAM,EAAE,EAE9F,IAAI,CAAC/c,aAAa,CAAGA,GAAiB,GACtC,IAAI,CAAC9B,QAAQ,CAAG,EAAE,CAClB,IAAI,CAACmD,iBAAiB,CAAG,GACzB,IAAI,CAACa,YAAY,CAAG,CAChB,CAAEp2B,IAAK,QAASC,MAAOlmC,EAAM0vE,OAAQ,WAAY,EACjD,CAAEzpC,IAAK,cAAeC,MAAO+wC,GAAiB,GAAIvH,OAAQ,WAAY,EACzE,EAOLnD,6BAA8B,SAAUnhB,CAAG,EAEvCie,EAAgBnW,KAAK,CAAC,IAAI,CAAE,CAAC,CAAE8F,YAAa,2BAA4B,EAAE,EAG1E,IAAI,CAACgZ,YAAY,CAAG5mB,EAAI4mB,YAAY,EAAI,GACxC,IAAI,CAACC,WAAW,CAAG7mB,EAAI6mB,WAAW,EAAI,GACtC,IAAI,CAACkF,UAAU,CAAG/rB,EAAI+rB,UAAU,EAAI,GACpC,IAAI,CAACC,UAAU,CAAGhsB,EAAIgsB,UAAU,EAAI,GACpC,IAAI,CAACC,aAAa,CAAGjsB,EAAIisB,aAAa,EAAI,GAE1C,IAAI,CAAChb,YAAY,CAAG,CAChB,CAAEp2B,IAAK,kCAAmCC,MAAO,IAAI,CAACixC,UAAU,EAChE,CAAElxC,IAAK,yBAA0BC,MAAO,EAAK,EAC7C,CAAED,IAAK,gCAAiCC,MAAO,EAAK,EACvD,CAET,EAEA,OAAO8gB,CACX,EACH,C,6ECtgEDjtD,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,gBAAiB,CAChC,KACA,YACA,uBACA,cACA,SAAU3gB,CAAE,CAAEU,CAAS,CAAE9Q,CAAoB,CAAEinE,CAAW,EACtD,MAAO,CACH4S,uBAAwB,SAAUlsB,CAAG,EACjC,IAAImsB,EAAa,CACbC,kBAAmB,aACnBC,mBAAoB,aACpBC,oBAAqB,WACjB,IAAIC,EACJ,OAAQvsB,EAAImnB,SAAS,EACjB,IAAK,QACDoF,EAAiB,cACjB,KACJ,KAAK,QACDA,EAAiB,cACjB,KACJ,KAAK,QACDA,EAAiB,cACjB,KACJ,SACIA,EAAiB,eACzB,CACA,OAAOA,CACX,EACAC,sBAAuB,wBACvBC,oBAAqB,cACrBC,oBAAqB,cACrBC,mBAAoB,aACpBC,oBAAqB,cACrBvQ,iBAAkB,cAClBwQ,aAAc,mBACdC,kBAAmB,aACnBtQ,yBAA0B,oBAC1BC,wBAAyB,mBACzB,kCAAmC,qBACnCE,yBAA0B,eAC1BC,8BAA+B,0BAC/B,gCAAiC,iBACjC,8BAA+B,kBAC/B,wDAAyD,wBACzD,sCAAuC,kBACvC,0CAA2C,kBAC3CmQ,mBAAoB,qBACpB,wCAAyC,4BACzChQ,uBAAwB,oBACxBC,4BAA6B,0BAC7BC,2BAA4B,qBAC5BC,sBAAuB,wBACvB9O,oBAAqB,sBACrB,6BAA8B,gBAC9B,4BAA6B,gBAC7B,2BAA4B,eAC5BiP,8BAA+B,4BAC/BE,iBAAkB,mBAClBC,iBAAkB,mBAClBC,iBAAkB,mBAClBH,gBAAiB,kBACjB,uCAAwC,0BACxCI,sBAAuB,wBACvB,2CAA4C,gCAC5CC,mCAAoC,0BACpCC,eAAgB,gBAChBC,0BAA2B,kBAC3BE,0BAA2B,4BAC3BD,iBAAkB,gBACtB,SAEA,EAAQlQ,WAAW,EAAI5N,wBAAAA,EAAI4N,WAAW,CAC3Bue,CAAU,CAACnsB,EAAI4N,WAAW,CAAC,GAE3Bue,CAAU,CAACnsB,EAAI4N,WAAW,CAAC,EAI1CzG,oBAAqB,SAAUt8D,CAAK,CAAEmiF,CAAa,EAC/C,IAAIC,EAAU,YAId,MAHID,CAAAA,GAAkBniF,GAASA,EAAMuD,OAAO,CAAC6+E,GAAW,EAAC,GACrDA,CAAAA,EAAU,EAAC,EAER,CAACpiF,EAAQoiF,GAAW,EAAC,EAAG9qE,WAAW,EAC9C,EAEA6uD,aAAc,SAAUkc,CAAO,CAAEC,CAAM,EACnC,GAAI,GAAaA,GAKjB,GAAID,EAAQn+E,WAAW,GAAKvB,OAAS2/E,EAAOp+E,WAAW,GAAKvB,MAGxD,IAAK,IAFD4/E,EAEK5+E,EAAI,EAAGA,EAAI0+E,EAAQvhF,MAAM,CAAE6C,IAChC4+E,CAAAA,EAAa,IAAI,CAACC,aAAa,CAACF,EAAQD,CAAO,CAAC1+E,EAAE,IAG9C0+E,CAAAA,CAAO,CAAC1+E,EAAE,CAAG4+E,CAAS,OAM9B,IAAK,IAAIrmB,KAAQmmB,EACTC,EAAOzzD,cAAc,CAACqtC,IACtBmmB,CAAAA,CAAO,CAACnmB,EAAK,CAAGomB,CAAM,CAACpmB,EAAK,EAI5C,EAEAsmB,cAAe,SAAU1a,CAAC,CAAE2a,CAAC,EACzB,IAAK,IAAI9+E,EAAI,EAAGA,EAAImkE,EAAEhnE,MAAM,CAAE6C,IAC1B,GAAImkE,CAAC,CAACnkE,EAAE,CAACqsC,GAAG,GAAKyyC,EAAEzyC,GAAG,CAClB,OAAO83B,CAAC,CAACnkE,EAAE,CAInB,MAAO,EACX,EAEA++E,OAAQ,SAAUC,CAAU,CAAEC,CAAW,EACrCD,EAAWljF,SAAS,CAAGmjF,EAAYnjF,SAAS,CAC5CkjF,EAAWljF,SAAS,CAACyE,WAAW,CAAGy+E,CACvC,EAQAE,OAAQ,SAAUniF,CAAG,CAAEV,CAAK,EAExB,OAAOsyD,KAAKC,KAAK,CADC,KAAO7xD,EAAM,OAASV,EAAQ,KAEpD,EAEAsnB,KAAM,WACF,MAAO,uCAAuCrS,OAAO,CAAC,QAAS,SAAU6tE,CAAC,EACtE,IAAIC,EAAI,QAAMC,MAAM,GAAW,EAE/B,MAAOC,CADCH,MAAAA,EAAYC,EAAI,IAAY,GAC3B5zD,QAAQ,CAAC,GACtB,EACJ,EAEA+zD,uBAAwB,SAAUv+E,CAAI,CAAEw+E,CAAa,CAAEC,CAAU,EAC7D,GAAIz+E,GAAQA,IAAAA,EAAK7D,MAAM,CAAQ,CAG3B,IAAK,IADD6qD,EAAY,MADhBw3B,EAAgBA,GAAiB,GAExBx/E,EAAI,EAAGkmE,EAAMle,EAAU7qD,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IAC7CgoD,CAAS,CAAChoD,EAAE,CAAGy/E,GAAc,CAAEpzC,IAAK,IAAI,CAAC1oB,IAAI,GAAI2oB,MAAO,EAAG,EAG/D,OAAO0b,CACX,CAEA,OAAOhnD,CACX,EAEAoyE,cAAe,SAAUxsD,CAAI,EACzB,GAAKA,GAIe,UAAhB,OAAOA,GACHA,KAAAA,EAAKhnB,OAAO,CAAC,MACbgnB,CAAAA,GAAQ,GAAE,EAIlB,IAAI84D,EAAU,IAAIzsE,KAAK2T,GACvB,IAAImqB,MAAM2uC,EAAQtuB,OAAO,IAIzB,OAAOsuB,EACX,EAEAC,2BAA4B,SAAUxnB,CAAI,EACtC,GAAIA,EAAKxqC,GAAG,CAAE,CACV,GAAIwqC,EAAKynB,SAAS,CACd,MAAO,yBACJ,GAAIznB,EAAK0nB,YAAY,CAAE,CAC1B,GAAI1nB,EAAKn3D,IAAI,CAAC4gE,iBAAiB,OAC3B,CAA0B,IAAtBzJ,EAAK2nB,YAAY,CACV,+DAEA,kDAGX,IAAK,IAAI9/E,EAAI,EAAGA,EAAIm4D,EAAKn3D,IAAI,CAACy9D,QAAQ,CAACthE,MAAM,CAAE6C,IAC3C,GAAIm4D,0BAAAA,EAAKn3D,IAAI,CAACy9D,QAAQ,CAACz+D,EAAE,CAACo/D,WAAW,CACjC,MAAO,2CAGf,MAAO,oCAEf,QAAO,EAASp+D,IAAI,CAAC4gE,iBAAiB,CAC3B,4BAEA,cAEf,QACI,EAASge,SAAS,CACP,kBACAznB,EAAK0nB,YAAY,CACxB,CAA8B,IAA1B1nB,EAAK4nB,gBAAgB,EAAa5nB,4BAAAA,EAAKn3D,IAAI,CACpC,gDACAm3D,4BAAAA,EAAKn3D,IAAI,CACT,wCACAm3D,qBAAAA,EAAKn3D,IAAI,EAA2Bm3D,oBAAAA,EAAKn3D,IAAI,EAA0Bm3D,qBAAAA,EAAKn3D,IAAI,EAA2Bm3D,qBAAAA,EAAKn3D,IAAI,CACpH,QAEA,8BAEJm3D,CAA0B,IAA1BA,EAAK4nB,gBAAgB,CACrB,gDAEA,OAGnB,EAEAC,qBAAsB,SAAU7nB,CAAI,EAChC,MAAO,EACH8nB,QACI,sMAKA9nB,EAAK+nB,UAAU,CACf,iBACA/nB,EAAK+nB,UAAU,CAPf,uIAUAr8E,EAAqBS,SAAS,CAAC,wCAV/B,2RAkBAT,EAAqBS,SAAS,CAAC,2CAlB/B,0KAqBAT,EAAqBS,SAAS,CAAC,6CArB/B,gFA4BJ67E,0BACI,6UAYJC,aACI,icASAv8E,EAAqBS,SAAS,CAAC,2CAT/B,0KAYAT,EAAqBS,SAAS,CAAC,6CAZ/B,gFAmBJ+7E,mBACI,+VAQAx8E,EAAqBS,SAAS,CAAC,2CAR/B,0KAWAT,EAAqBS,SAAS,CAAC,6CAX/B,gFAkBJg8E,yCACI,icASAz8E,EAAqBS,SAAS,CAAC,2CAT/B,0KAYAT,EAAqBS,SAAS,CAAC,6CAZ/B,gFAmBJi8E,mCACI,icASA18E,EAAqBS,SAAS,CAAC,2CAT/B,0KAYAT,EAAqBS,SAAS,CAAC,6CAZ/B,gFAmBJk8E,gDACI,sXAaJC,6DACI,6UAYJC,kBACI,oDACAvoB,EAAKwoB,SAAS,CADd,8GAMAxoB,EAAK+nB,UAAU,CANf,iBASA/nB,EAAK+nB,UAAU,CATf,sBAeJU,uBAAwB,oDAAsDzoB,EAAKwoB,SAAS,CAApE,sDAExBE,6BAA8B,qDAAuD1oB,EAAKwoB,SAAS,CAArE,sDAG9BzhB,MACI,qDACA/G,EAAK+nB,UAAU,CACf,yDACA/nB,EAAK2oB,UAAU,CAHf,MAMA3oB,EAAK+nB,UAAU,CANf,iBASA/nB,EAAK+nB,UAAU,CATf,uIAYAr8E,EAAqBS,SAAS,CAAC,wCAZ/B,iFAkBJy8E,cACI,qDACA5oB,EAAK+nB,UAAU,CACf,gDACA/nB,EAAK2oB,UAAU,CAHf,MAMA3oB,EAAK+nB,UAAU,CANf,iBASA/nB,EAAK+nB,UAAU,CATf,uIAYAr8E,EAAqBS,SAAS,CAAC,wCAZ/B,iFAiBJ08E,4BACI,qDACA7oB,EAAK+nB,UAAU,CACf,0DACA/nB,EAAK2oB,UAAU,CAHf,MAMA3oB,EAAK+nB,UAAU,CANf,iBASA/nB,EAAK+nB,UAAU,CATf,uIAYAr8E,EAAqBS,SAAS,CAAC,wCAZ/B,oDAgBJ28E,oCACI,qDACA9oB,EAAK+nB,UAAU,CACf,8CACA/nB,EAAKwoB,SAAS,CACd,iBACAxoB,EAAK2oB,UAAU,CALf,MAQA3oB,EAAK+nB,UAAU,CARf,iBAWA/nB,EAAK+nB,UAAU,CAXf,uIAcAr8E,EAAqBS,SAAS,CAAC,wCAd/B,oDAkBJ48E,8CACI,qDACA/oB,EAAK+nB,UAAU,CACf,8CACA/nB,EAAKwoB,SAAS,CACd,iBACAxoB,EAAK2oB,UAAU,CALf,MAQA3oB,EAAK+nB,UAAU,CARf,iBAWA/nB,EAAK+nB,UAAU,CAXf,UAeJiB,sCACI,qDACAhpB,EAAK+nB,UAAU,CACf,wDACA/nB,EAAKwoB,SAAS,CACd,iBACAxoB,EAAK2oB,UAAU,CALf,MAQA3oB,EAAK+nB,UAAU,CARf,iBAWA/nB,EAAK+nB,UAAU,CAXf,UAeJkB,gBACI,qDACAjpB,EAAK+nB,UAAU,CADf,qCAIA/nB,EAAK+nB,UAAU,CAJf,iBAOA/nB,EAAK+nB,UAAU,CAPf,SAUR,EAAC,CAAC/nB,EAAKkpB,aAAa,CAAC,EAGzBC,kBAAmB,CACfC,MAAO,SAAUC,CAAY,CAAEC,CAAe,SAC1C,EACW,GAEA,CAAC,qBAAsB,sBAAuB,sBAAuB,sBAAuB,wBAAyB,sBAAsB,CAAC7hF,OAAO,CAAC4hF,EAEnK,EACA,mBAAoB,SAAUA,CAAY,EACtC,MAAO,CACH,oBACA,qBACA,sBACA,sBACA,qBACA,sBACA,wBACA,sBACH,CAAC5hF,OAAO,CAAC4hF,EACd,EACA,cAAe,SAAUA,CAAY,EACjC,MAAO,CACH,wBACA,iBACA,oBACA,qBACA,sBACA,sBACA,qBACA,sBACA,wBACA,sBACH,CAAC5hF,OAAO,CAAC4hF,EACd,EACA,iCAAkC,SAAUA,CAAY,EACpD,MAAO,EAAE,CAAC5hF,OAAO,CAAC4hF,EACtB,CACJ,EAEAE,wBAAyB,SAAUF,CAAY,CAAEG,CAAY,CAAEF,CAAe,EAC1E,OAAO,IAAI,CAACH,iBAAiB,CAACK,EAAa,CAACH,EAAcC,GAAmB,EACjF,EAEAjhB,iBAAkB,SAAUN,CAAU,CAAE0hB,CAAS,CAAEC,CAAuB,EACtE,IAAIC,EAAa5hB,EAAWuC,YAAY,CAAC12C,KAAK,CAAC,CAAEsgB,IAAK,aAAc,EAAE,CAAC,EAAE,CACrE01C,EAAU7hB,EAAWuC,YAAY,CAAC12C,KAAK,CAAC,CAAEsgB,IAAK,OAAQ,EAAE,CAAC,EAAE,CAWhE,OALAy1C,EAAWx1C,KAAK,CAAGu1C,GAA2BG,KAAAA,CAHf,mBAAoB,mBAAmB,CAGApiF,OAAO,CAACgiF,GAF1D,GAE8F,IAAI,CAACvgB,oBAAoB,CAACugB,GACxIG,GACAA,CAAAA,EAAQz1C,KAAK,CAAG,IAAI,CAAC40B,iBAAiB,CAAC0gB,EAAS,EAG7C1hB,CACX,EAEAgB,kBAAmB,SAAU+gB,CAAU,CAAEC,CAAW,EAChD,OAAQD,GACJ,IAAK,aACL,IAAK,cACL,IAAK,sBACL,IAAK,qBACL,IAAK,wBACL,IAAK,wBACL,IAAK,iBACD,MAAO,eAGX,SACI,MAAOC,WAAAA,EAA2B,iBAAmB,eAC7D,CACJ,EAEA7gB,qBAAsB,SAAU4gB,CAAU,EACtC,OAAO,GACX,EAEA9gB,8BAA+B,SAAU8gB,CAAU,EAC/C,OAAQA,GACJ,IAAK,cACL,IAAK,sBACD,MAAO,SACX,SACI,MAAO,aACf,CACJ,EAEA7gB,iBAAkB,SAAU6gB,CAAU,EAoClC,MAAOE,CAlCH,aACA,2BACA,oBACA,0BACA,mBACA,kCACA,qBACA,2BACA,eACA,gCACA,iBACA,kBACA,8BACA,kBACA,6BACA,gBACA,2BACA,eACA,gCACA,4BACA,uCACA,0BACA,2CACA,gCACA,wBACA,8CACA,sBACA,sBACA,qCACA,0BACA,6BACA,qBACH,CAE0BviF,OAAO,CAACqiF,GAAc,EACrD,EAEAG,+BAAgC,SAAUC,CAAgB,CAAE1rD,CAAI,EAC5D,IAAI2rD,EAAY,IAAI,CAACC,cAAc,CAAC,QAAS5rD,EAAK8rC,YAAY,CAC5C3iE,MAAAA,IAAdwiF,IACAA,EAAY,CAAEj2C,IAAK,QAASC,MAAO,SAAU,EAC7C3V,EAAK8rC,YAAY,CAAC7gE,IAAI,CAAC0gF,IAEvBD,gBAAAA,EACAC,EAAUh2C,KAAK,CAAG,UAElBg2C,EAAUh2C,KAAK,CAAG,SAE1B,EAEAk2C,gBAAiB,SAAUzlF,CAAG,CAAEy4D,CAAK,EACjC,IAAK,IAAIx1D,EAAI,EAAGA,EAAIw1D,EAAMr4D,MAAM,CAAE6C,IAC9B,GAAIw1D,CAAK,CAACx1D,EAAE,CAACqsC,GAAG,GAAKtvC,EACjB,OAAOy4D,CAAK,CAACx1D,EAAE,CAACssC,KAAK,CAG7B,OAAO,IACX,EAEAi2C,eAAgB,SAAUxlF,CAAG,CAAEy4D,CAAK,EAChC,IAAK,IAAIx1D,EAAI,EAAGA,EAAIw1D,EAAMr4D,MAAM,CAAE6C,IAC9B,GAAIw1D,CAAK,CAACx1D,EAAE,CAACqsC,GAAG,GAAKtvC,EACjB,OAAOy4D,CAAK,CAACx1D,EAAE,CAGvB,OAAO,IACX,EAEAyiF,qBAAsB,SAAUjtB,CAAK,CAAEn5D,CAAK,CAAEqmF,CAAO,EACjD,IAAK,IAAI1iF,EAAI,EAAGA,EAAIw1D,EAAMr4D,MAAM,CAAE6C,IAC9B,GAAIw1D,CAAK,CAACx1D,EAAE,CAAC0iF,EAAQ,GAAKrmF,EAAO,CAC7Bm5D,EAAM3zD,MAAM,CAAC7B,EAAG,GAChB,KACJ,CAER,EAEA2iF,oBAAqB,SAAUt5D,CAAO,CAAEmsC,CAAK,EACzB,KAAZnsC,GACA,IAAI,CAACo5D,oBAAoB,CAACjtB,EAAO,GAAI,MAE7C,EAEAotB,UAAW,SAAU7jF,CAAO,EACxB,aAmFA,SAAS8jF,EAAUC,CAAE,CAAEC,CAAQ,SAC3B,OAAWC,gBAAgB,CAChB1lF,SAAS2lF,WAAW,CAACD,gBAAgB,CAACF,EAAI,KAAK,CAACC,EAAS,CAEhED,EAAGI,YAAY,CACRJ,EAAGI,YAAY,CAACH,EAAS,OAExC,CAYA,OAAOI,SApFEA,EAAWL,CAAE,CAAEM,CAAC,CAAEhE,CAAC,CAAEN,CAAC,CAAE7+E,CAAC,CAAEojF,CAAC,CAAEC,CAAC,EACpC,IAAI/kE,EAAIukE,EAAG9iD,UAAU,OAGrB,CAAI,CAACujD,SAsEmBxkF,CAAO,EAE/B,KAAQA,EAAUA,EAAQihC,UAAU,EAChC,GAAIjhC,IAAYzB,SACZ,MAAO,GAGf,MAAO,EACX,EA9E4BwlF,KAIyC,KAA7D,CAAC,KAAMhjF,KAAAA,EAAU,CAACF,OAAO,CAACkjF,EAAGnkF,YAAY,CAAC,gBAK1C,IAAM4f,EAAEilE,QAAQ,EAOhB,SAAWX,EAAUC,EAAI,YACzB,WAAaD,EAAUC,EAAI,gBAK3B,UAAuBM,GAAK,SAAuBhE,GAAK,SAAuBN,GAAK,SAAuB7+E,GAAK,SAAuBojF,GAAK,SAAuBC,CAAAA,IACnKF,EAAIN,EAAGW,SAAS,CAChBxjF,EAAI6iF,EAAGY,UAAU,CACjB5E,EAAIsE,EAAIN,EAAGa,YAAY,CACvBvE,EAAIn/E,EAAI6iF,EAAGc,WAAW,CACtBP,EAAIP,EAAGc,WAAW,CAClBN,EAAIR,EAAGa,YAAY,GAGnBplE,GAEA,CAAI,WAAaskE,EAAUtkE,EAAG,aAAe,WAAaskE,EAAUtkE,EAAG,aAI/Dte,CAAAA,CAAAA,EAvCU,EAuCYse,EAAEqlE,WAAW,CAAGrlE,EAAEslE,UAAU,IAElD5jF,CAAAA,EAAIojF,EAzCM,EAyCgB9kE,EAAEslE,UAAU,IAEtCT,CAAAA,EA3CU,EA2CY7kE,EAAEolE,YAAY,CAAGplE,EAAEilB,SAAS,IAElD4/C,CAAAA,EAAIE,EA7CM,EA6CgB/kE,EAAEilB,SAAS,CAVoC,IAiB7Es/C,EAAGgB,YAAY,GAAKvlE,IACpBte,GAAKse,EAAEmlE,UAAU,CACjBN,GAAK7kE,EAAEklE,SAAS,EAGbN,EAAW5kE,EAAG6kE,EAAGhE,EAAGN,EAAG7+E,EAAGojF,EAAGC,KAG5C,EAsBkBvkF,EACtB,EAEA0U,iBAAkB,SAAUswE,CAAU,QAGlC,UAAI,OAAOA,EACAA,EAOJC,CAJQngF,EAAqBS,SAAS,CAAC,oBAAsBy/E,EAAWpwE,WAAW,IACpF9P,EAAqBS,SAAS,CAAC,oBAAsBy/E,EAAWpwE,WAAW,IAC3EowE,CAAS,EAEKpwE,WAAW,EACnC,EAEA6qD,8BAA+B,SAAUuB,CAAQ,CAAE/vB,CAAQ,EACvD,OAAQ+vB,EAASX,WAAW,EACxB,IAAK,2BACL,IAAK,0BACD,IAAI,CAACmjB,cAAc,CAAC,gCAAiCxiB,EAAS0C,YAAY,EAAEn2B,KAAK,CAAG0D,EAAS2nC,2CAA2C,CACxI,IAAI,CAAC4K,cAAc,CAAC,eAAgBxiB,EAAS0C,YAAY,EAAEn2B,KAAK,CAAG0D,EAAS4nC,sCAAsC,CAClH,IAAI,CAAC2K,cAAc,CAAC,yBAA0BxiB,EAAS0C,YAAY,EAAEn2B,KAAK,CAAG0D,EAAS0nC,sCAAsC,CAC5H,KACJ,KAAK,kCACL,IAAK,gCACL,IAAK,wDACL,IAAK,wCACL,IAAK,qCACL,IAAK,wCACL,IAAK,8BACL,IAAK,6BACL,IAAK,2BACL,IAAK,gCACL,IAAK,2CACL,IAAK,2BACL,IAAK,uCACL,IAAK,qCACL,IAAK,8BACL,IAAK,6BACL,IAAK,yBACD,IAAI,CAAC6K,cAAc,CAAC,gCAAiCxiB,EAAS0C,YAAY,EAAEn2B,KAAK,CAAG0D,EAAS2nC,2CAA2C,CACxI,IAAI,CAAC4K,cAAc,CAAC,yBAA0BxiB,EAAS0C,YAAY,EAAEn2B,KAAK,CAAG0D,EAAS0nC,sCAAsC,CAGxI,EAEAuM,qBAAsB,SAAUxpC,CAAG,QAE/B,CAAIA,EAAIypC,WAAW,EAERzpC,EAAI0+B,eAAe,EAAI1+B,EAAIz5C,IAAI,CAACm4E,eAAe,EAM9DnhE,kBAAmB,SAAUiF,CAAI,EAE7B,OAAOknE,KAAAA,CADc,kBAAmB,kBAAkB,CACrCvkF,OAAO,CAACqd,EACjC,EAEAmnE,aAAc,kBACV,IAAQ,CAACC,cAAc,CACZ,IAAI,CAACA,cAAc,GAEnBpwE,EAAG4K,IAAI,EAEtB,EAEAwlE,eAAgB,KAEhBC,gBAAiB,CAAC,WAAY,YAAa,WAAY,WAAY,aAAc,cAAe,OAAQ,OAAQ,UAAW,OAAQ,SAAU,SAAS,CAEtJC,6BAA8B,WAE1B,OAAO,OADK,IAAM,IAAI,CAACD,eAAe,CAACE,IAAI,CAAC,KAAO,IAC1B,IAC7B,EAEAlzB,aAAc,WAEV,MAAO,CAACvxD,IADQ,CAACwkF,4BAA4B,GAC/BznF,IAAI,CAAC6X,EAAU6G,IAAI,GACrC,CACJ,CACJ,EACH,C,iCC92BD,SAASuvD,EAAwBx4D,CAAa,CAAE1O,CAAoB,EAGhE,IAAI,CAAC4gF,SAAS,CAiEd,SAAmBxnE,CAAI,EACnB,OAAOynE,CAAW,CAACznE,EAAK,EAAI,IAChC,EAlEA,IAAI,CAAC0nE,mBAAmB,CAAGA,EAC3B,IAAI,CAACC,UAAU,CAgFf,SAAoBpzB,CAAG,EACnB,IAAIzhB,EAAW40C,EAAoBnzB,EAAI4N,WAAW,EAClD,OAAO5N,CAAG,CAACzhB,EAAS,EAAI,IAC5B,EAlFA,IAAI,CAAC80C,UAAU,CAwFf,SAAoBrzB,CAAG,CAAEvuC,CAAO,EAC5B,IAAI8sB,EAAW40C,EAAoBnzB,EAAI4N,WAAW,CAClD5N,CAAAA,CAAG,CAACzhB,EAAS,CAAG9sB,GAAW,EAAE,EAzFjC,IAAI,CAAC6hE,YAAY,CAgGjB,SAAsB7nE,CAAI,EACtB,IAAI8nE,EAAUL,CAAW,CAACznE,EAAK,CAC/B,OAAO8nE,KAAiB,IAAjBA,EAAqBA,EAAQC,SAAS,CAAG,EACpD,EAlGA,IAAI,CAACC,YAAY,CAwGjB,SAAsBhoE,CAAI,EACtB,IAAI8nE,EAAUL,CAAW,CAACznE,EAAK,CAC/B,OAAO8nE,KAAiB,IAAjBA,EAAqBA,EAAQG,SAAS,CAAG,IACpD,EA1GA,IAAI,CAACC,eAAe,CA+GpB,WACI,MAAO,CACH94C,IAAK95B,EAAcoR,IAAI,GACvB2oB,MAAO,EACX,CACJ,EAnHA,IAAI,CAAC84C,wBAAwB,CAyH7B,SAAkCC,CAAW,EACzC,OAAOA,GAAeC,EAAoBC,GAAG,EAAIF,GAAeC,EAAoBE,GAAG,EAzH3F,IAAI,CAACC,yBAAyB,CA+H9B,WACI,OA3HyB,CA4H7B,EAhIA,IAAI,CAACrK,gBAAgB,CAqIrB,WACI,OAAOkK,CACX,EAjIA,IAAIA,EAAsB,CAEtBC,IAAK,EACLC,IAAK,EACL1lB,QAAS,CACb,EAEI4kB,EAAc,CACd,gCAAiC,CAC7B30C,SAAU,aACVi1C,UAAW,WACXE,UAAW,CACPQ,QAAS,eACb,EACAC,cAAe,GACfh+D,OAAQ,CACJjmB,IAAKmC,EAAqBS,SAAS,CAAC,qCACxC,CACJ,EAEA,kCAAmC,CAC/ByrC,SAAU,SACVi1C,UAAW,QACXE,UAAW,CACPQ,QAAS,eACb,EACAC,cAAe,GACfh+D,OAAQ,CACJjmB,IAAKmC,EAAqBS,SAAS,CAAC,sCACxC,CACJ,EACA,2CAA4C,CACxCyrC,SAAU,SACVi1C,UAAW,QACXE,UAAW,CACPQ,QAAS,4BACb,EACAC,cAAe,GACfh+D,OAAQ,CACJjmB,IAAKmC,EAAqBS,SAAS,CAAC,sCACxC,CACJ,CACJ,EAgBA,SAASqgF,EAAoB1nE,CAAI,EAC7B,IAAI8nE,EAAUL,CAAW,CAACznE,EAAK,CAC/B,OAAO8nE,KAAiB,IAAjBA,EAAqBA,EAAQh1C,QAAQ,CAAG,EACnD,CAqEJ,C,kBAvJA5vC,EAAAA,CAAUA,CAACC,OAAO,CAAC,0BAA2B2qE,GAC9CA,EAAwB1qE,OAAO,CAAG,CAAC,gBAAiB,uBAAuB,E,+BCS3E,SAASulF,IACL,MAAO,CACHpgF,SChBO,g/BDiBPoM,SAAU,IACVC,MAAO,CACHqpD,YAAa,IACbl0D,MAAO,IACP4V,KAAM,IACNipE,SAAU,GACd,EACApgF,WAAYqgF,EACZ5zE,aAAc,KACdC,iBAAkB,EACtB,CACJ,CAEA,SAAS2zE,EAAoBjtE,CAAM,CAAE5E,CAAE,CAAE8xE,CAAgB,CAAEliF,CAAoB,EAC3E,IAAI,CAAC2O,QAAQ,CAAG,CACZyB,GAAIA,EACJ8xE,iBAAkBA,CACtB,EAEA,IAAI,CAACC,gBAAgB,CAAG,KACxB,IAAI,CAACC,cAAc,CAAG,GACtB,IAAI,CAACC,QAAQ,CAAG,GAChB,IAAI,CAACriF,oBAAoB,CAAGA,EAC5B,IAAI,CAACsiF,eAAe,CAAG,IAAI,CAACtiF,oBAAoB,CAACS,SAAS,CAAC,uCAC3D,IAAI,CAACg2B,KAAK,CAAG,GAEbzhB,EAAOiU,MAAM,CAAC,UAAW,IAAI,CAACs5D,YAAY,CAAC9rF,IAAI,CAAC,IAAI,EACxD,C,oCApCA6F,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,YAAa+xE,GAClCA,EAAUvlF,OAAO,CAAG,EAAE,CAEtBF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,sBAAuBqgF,GAC7CA,EAAoBzlF,OAAO,CAAG,CAAC,SAAU,KAAM,mBAAoB,uBAAuB,CAkC1FylF,EAAoBhqF,SAAS,CAACsqF,YAAY,CAAG,SAAUC,CAAO,CAAEC,CAAO,EAC/DD,IACA,IAAI,CAACL,gBAAgB,CAAG,IAAI,CAACxzE,QAAQ,CAACuzE,gBAAgB,CAACQ,aAAa,CAAC,IAAI,CAACrrB,WAAW,CAAE,IAAI,CAACt+C,IAAI,EAChG,IAAI,CAACqpE,cAAc,CAAG,IAAI,CAACD,gBAAgB,CAACQ,aAAa,GAEjE,EAEAV,EAAoBhqF,SAAS,CAAC48B,QAAQ,CAAG,WAIrC,OAHA,IAAI,CAAC4B,KAAK,CAAG,GACb,IAAI,CAAC4rD,QAAQ,CAAG,GAET,IAAI,CAACO,oBAAoB,CAAC,IAAI,CAACR,cAAc,EAAE7kF,OAAO,CACzD,YACI,IAAI,CAAC8kF,QAAQ,CAAG,EACpB,GAAE5rF,IAAI,CAAC,IAAI,EAEnB,EAEAwrF,EAAoBhqF,SAAS,CAAC2qF,oBAAoB,CAAG,SAAUR,CAAc,EACzE,IAAIS,EAAY,IAAI,CAACV,gBAAgB,CAACW,kBAAkB,CAACV,GACrDW,EAAe,IAAI,CAACC,aAAa,CAACvsF,IAAI,CAAC,IAAI,CAAE2rF,GACjD,OAAO,IAAI,CAACD,gBAAgB,CAACc,qBAAqB,CAACJ,GAAWpqF,IAAI,CAC9D,UAAU+3D,CAAK,EACX,IAAIA,EAKA,OAAO,IAAI,CAACwyB,aAAa,CAACZ,EAAgB,CAAEc,QAAS,EAAK,GAJ1D,IAAIp+E,EAAS,CAAEf,QAAS,IAAI,CAACo+E,gBAAgB,CAACgB,iBAAiB,GAAIh1C,OAAQ00C,EAAWxrB,YAAa,IAAI,CAACA,WAAW,EAEnH,OADA,IAAI,CAAC8qB,gBAAgB,CAACiB,YAAY,CAACP,GAC5B,IAAI,CAACb,QAAQ,CAACl9E,GAAQrM,IAAI,CAAC,IAAI,CAAC4qF,eAAe,CAAC5sF,IAAI,CAAC,IAAI,CAAE2rF,GAAiBW,EAI3F,GAAEtsF,IAAI,CAAC,IAAI,EACXssF,EAER,EAEAd,EAAoBhqF,SAAS,CAACorF,eAAe,CAAG,SAAUjB,CAAc,EACpE,IAAI,CAACA,cAAc,CAAGA,CAC1B,EAEAH,EAAoBhqF,SAAS,CAAC+qF,aAAa,CAAG,SAAUZ,CAAc,CAAE/kF,CAAS,EAE7E,IAAIimF,EAAkB,CAAClB,EACvB,IAAI,CAACD,gBAAgB,CAACiB,YAAY,CAAC,IAAI,CAACjB,gBAAgB,CAACW,kBAAkB,CAACQ,IAC5E,IAAI,CAAClB,cAAc,CAAGkB,EACtB,IAAI,CAAC7sD,KAAK,CACNp5B,GAAaA,EAAU6lF,OAAO,CAAG,IAAI,CAACljF,oBAAoB,CAACS,SAAS,CAAC,4CAA8C,IAAI,CAACT,oBAAoB,CAACS,SAAS,CAAC,mCAC/J,C,4CEpFA,SAAS8iF,EAAiB98C,CAAkB,CAAE5Z,CAAiB,EAC3D,IAAI,CAAC22D,iBAAiB,CAAG,SAAUC,CAAU,EACzC,OAAOC,EAAiBC,gBAAgB,CAACloF,QAAQ,CAACgoF,EACtD,EAEA,IAAI,CAACf,aAAa,CAAG,SAAUrrB,CAAW,CAAEt+C,CAAI,EAC5C,OAAO,IAAI2qE,EAAiBrsB,EAAat+C,EAAM0tB,EAAoB5Z,EAAkBoiB,yBAAyB,CAClH,CACJ,CASA,SAASy0C,EAAiBrsB,CAAW,CAAEt+C,CAAI,CAAE6qE,CAAW,CAAE30C,CAAyB,EAC/E,IAAI,CAACooB,WAAW,CAAGA,EACnB,IAAI,CAACt+C,IAAI,CAAGA,EACZ,IAAI,CAAC6qE,WAAW,CAAGA,EACnB,IAAI,CAAC30C,yBAAyB,CAAGA,EACjC,IAAI,CAAC5H,OAAO,CAAG,IAAI,CAACu8C,WAAW,CAAC3tC,MAAM,CAACohB,GAEvC,IAAIwsB,EAAWnxE,EAAAA,CAAeA,CAACoxE,SAAS,CACxC,IAAI,CAACC,eAAe,CAAG,CAACF,EAASG,gBAAgB,CAAEH,EAASI,UAAU,CAAEJ,EAASK,aAAa,CAAC,C,kBA5BnG5nF,EAAAA,CAAUA,CAACC,OAAO,CAAC,mBAAoBgnF,GACvCA,EAAiB/mF,OAAO,CAAG,CAAC,qBAAsB,oBAAoB,CA8BtEknF,EAAiBC,gBAAgB,CAAG,CAACjxE,EAAAA,CAAeA,CAAC0/C,OAAO,CAACC,IAAI,CAAE3/C,EAAAA,CAAeA,CAAC0/C,OAAO,CAACmH,SAAS,CAAC,CAMrGmqB,EAAiBzrF,SAAS,CAAC6qF,kBAAkB,CAAG,SAAUxyC,CAAO,EAC7D,OAAOA,EAAU59B,EAAAA,CAAeA,CAAC0/C,OAAO,CAACC,IAAI,CAAG3/C,EAAAA,CAAeA,CAAC0/C,OAAO,CAACmH,SAAS,EAMrFmqB,EAAiBzrF,SAAS,CAACksF,iBAAiB,CAAG,WAC3C,IAAIr4B,EAAc,IAAI,CAACq3B,iBAAiB,GAGxC,OAAO97C,IADW,CAACu8C,WAAW,CAAC3tC,MAAM,CAAC6V,IACpB,IACtB,EAEA43B,EAAiBzrF,SAAS,CAACkrF,iBAAiB,CAAG,WAC3C,IAAIpqE,EAAO,IAAI,CAACA,IAAI,CAKpB,OAAOA,CAAI,CAJM,IAAI,CAACgrE,eAAe,CAACvpF,IAAI,CAAC,SAAUtB,CAAG,EACpD,MAAO,CAAC,CAAC6f,CAAI,CAAC7f,EAAI,GAGC,EAM3BwqF,EAAiBzrF,SAAS,CAACmrF,YAAY,CAAG,SAAUP,CAAS,EACzD,IAAI,CAACuB,sBAAsB,CAACvB,GAC5B,IAAI,CAACwB,wBAAwB,CAACxB,EAClC,EAKAa,EAAiBzrF,SAAS,CAACmsF,sBAAsB,CAAG,SAAUvB,CAAS,EACnE,IAAI,CAAC9pE,IAAI,CAACwD,UAAU,CAAGsmE,EAGlB,IAAI,CAACe,WAAW,CAACh2B,YAAY,CAAC,IAAI,CAACvmB,OAAO,CAAC5vB,OAAO,IACnD,IAAI,CAAC4vB,OAAO,CAACmF,UAAU,GACvB,IAAI,CAACnF,OAAO,CAACqF,IAAI,GAEzB,EAKAg3C,EAAiBzrF,SAAS,CAACosF,wBAAwB,CAAG,SAAUxB,CAAS,EAErE,IAAIyB,EAAiB,IAAI,CAACH,iBAAiB,GAEvCG,IACAA,EAAennF,IAAI,CAAC4f,KAAK,CAAG,IAAI,CAAChE,IAAI,CAACiE,SAAS,CAC/CsnE,EAAennF,IAAI,CAACgqC,WAAW,CAAG07C,EAElCyB,EAAe93C,UAAU,GACzB83C,EAAe53C,IAAI,GAE3B,EAMAg3C,EAAiBzrF,SAAS,CAACssF,qBAAqB,CAAG,SAAUnC,CAAc,EACvE,OAAO,IAAI,CAACrpE,IAAI,CAACwD,UAAU,GAAK,IAAI,CAACumE,kBAAkB,CAACV,EAC5D,EAMAsB,EAAiBzrF,SAAS,CAACgrF,qBAAqB,CAAG,SAAUJ,CAAS,EAClE,OAAO,IAAI,CAAC5zC,yBAAyB,CAAC,IAAI,CAACk0C,iBAAiB,IAAI1qF,IAAI,CAChE,UAAU+rF,CAAiB,EACvB,OAAOA,IAAsB9xE,EAAAA,CAAeA,CAAC0/C,OAAO,CAAC/jC,OAAO,EAAIq1D,EAAiBC,gBAAgB,CAACloF,QAAQ,CAAConF,EAC/G,GAAEpsF,IAAI,CAAC,IAAI,EAEnB,EAKAitF,EAAiBzrF,SAAS,CAAC0qF,aAAa,CAAG,WACvC,OAAO,IAAI,CAAC5pE,IAAI,CAACwD,UAAU,GAAK7J,EAAAA,CAAeA,CAAC0/C,OAAO,CAACC,IAC5D,C,0CC5HA/1D,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,+BAAgC,CAC/C,KACA,QACA,YACA,uBACA,SAAU3gB,CAAE,CAAEhM,CAAK,CAAE0M,CAAS,CAAE3M,CAAoB,EAChD,MAAO,CACHsgF,gBAAiB,SAAU1gF,CAAO,CAAEE,CAAY,CAAED,CAAS,EACvD,IAAI0U,EAAWtI,EAAGuI,KAAK,GAqBvB,OAlBK5U,GAGDK,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjCtF,EAAqBiE,kBAAkB,CAACrE,EAASE,EAAcD,GAAWvL,IAAI,CAC1E,SAAU2a,CAAO,EACTA,GAAWA,EAAQjW,IAAI,EAAI,CAAE,kBAAOiW,EAAQjW,IAAI,EAAiBiW,EAAQjW,IAAI,YAAYunF,MAAK,EAC9FhsE,EAAS3b,OAAO,CAACqW,EAAQjW,IAAI,EAE7Bub,EAAS1b,MAAM,CAACoW,EAExB,EACA,SAAUuxE,CAAI,EACVjsE,EAAS1b,MAAM,CAAC2nF,EACpB,IAbJjsE,EAAS1b,MAAM,GAiBZ0b,EAAS/b,OAAO,EAG3BioF,SAAU,SAAUC,CAAY,EAC5B,OAAO/zE,EAAUg0E,MAAM,GAAG/oF,OAAO,CAAC,aAAe,IAAO,CAAC8oF,GAAgB/zE,EAAUg0E,MAAM,GAAG/oF,OAAO,CAAC,aAAe,EACvH,CACJ,CACJ,EACH,C,iBCtCDO,E,OAAAA,CAAUA,CAACC,OAAO,CAAC,cAGf,WAEI,IAAIq8E,EAAU,CACVmM,UAAW,GACXC,UAAW,EACXC,OAAQ,EACRC,OAAQ,IACRC,QAAS,EACTC,QAAS,IACTC,aAAc,EACdC,eAAgB,EAChBzM,iBAAkB,CACd,sCAAuC,EACvC,0CAA2C,EAC3C,wDAAyD,EACzD,wCAAyC,EACzC6B,mBAAoB,EACpBhC,uBAAwB,CAC5B,CACJ,CAIA,KAAI,CAACE,OAAO,CAAGA,EACf,IAAI,CAACx/D,IAAI,CAAG,CACR2+D,QAAS,CACLC,MAAO,CACHC,YAAa,sCACbsN,qBAAsB,0CACtBpN,SAAU,wDACVE,eAAgB,wCAChBE,WAAY,oBAChB,EACAE,OAAQ,CACJJ,eAAgB,wBACpB,CACJ,EACAmN,aAAc,CACVxN,MAAO,CACHC,YAAa,+BACbsN,qBAAsB,mCACtBpN,SAAU,iDACVE,eAAgB,iCAChBE,WAAY,eACZkN,mBAAoB,oBACxB,EACAhN,OAAQ,CACJJ,eAAgB,iBACpB,CACJ,CACJ,EAEA,IAAI,CAACqN,UAAU,CAAG,CACdC,MAAOC,EAAQ,OACfC,MAAOD,EAAQ,MACnB,EAIA,IAAIv4C,EAAO,IAAI,CAEf,SAASu4C,EAAQE,CAAS,EACtB,OAAO,SAAUC,CAAI,CAAEjO,CAAS,CAAE36E,CAAI,EAElC,IADI6oF,EACAC,EAAe9oF,CAAI,CAAC4oF,EAAO,IAAI,CAACzsF,MAAM,CAC1C,OAAQw+E,GACJ,KAAKzqC,EAAKj0B,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACC,WAAW,CACxC,KAAK5qC,EAAKj0B,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACG,QAAQ,CACrC,KAAK9qC,EAAKj0B,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACuN,oBAAoB,CAC7CS,EAAapN,CAAO,CAACkN,EAAYC,EAAK,CACtC,KACJ,MAAK14C,EAAKj0B,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACK,cAAc,CAC3C,KAAKhrC,EAAKj0B,IAAI,CAAC2+D,OAAO,CAACU,MAAM,CAACJ,cAAc,CACxC2N,EAAapN,CAAO,CAACkN,EAAYC,EAAK,CAAG,EACzC,KACJ,MAAK14C,EAAKj0B,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACO,UAAU,CACnCyN,EAAapN,CAAO,CAACkN,EAAY,OAAO,OAIhD,EAAKE,IAIDF,QAAAA,EACOG,GAAgBD,EAChBF,QAAAA,EACAG,GAAgBD,SAE/B,CACJ,CACJ,E,qDCtFJ,SAASE,EAAgBt1E,CAAO,CAAE9a,CAAO,CAAEmxE,CAAW,CAAE/lD,CAAgB,CAAE8nB,CAAS,EAG/E,IAAI,CAACm9C,WAAW,CAAGA,EACnB,IAAI,CAACC,sBAAsB,CA2E3B,SAAgCC,CAAqB,EACjD,IAAIC,EAAaD,EAAsB1+D,QAAQ,GAAGlC,KAAK,CAAC,YAExD,IAAI6gE,EAAWhtF,MAAM,CACV,CACHkyB,MAAO86D,CAAU,CAAC,EAAE,EAGjB,CACHC,KAAMD,CAAU,CAAC,EAAE,CACnB17D,KAAM07D,CAAU,CAAC,EAAE,CAG/B,EAvFA,IAAI,CAACE,kBAAkB,CAyFvB,SAA4BrpF,CAAI,EAC5B,MAAO,CACHopF,KACIppF,EAAKg8E,OAAO,CAAC7/E,MAAM,CAAGmtF,EAAiCtpF,EAAKg8E,OAAO,CAAC,EAAE,CAACuN,UAAU,CAAEvpF,EAAK87E,SAAS,EAAI0N,EAAgCxpF,EAAKg8E,OAAO,CAACh8E,EAAKg8E,OAAO,CAAC7/E,MAAM,CAAG,EAAE,CAACotF,UAAU,EACzL97D,KAAMztB,EAAK+7E,IAAI,CAAC5/E,MAAM,CAAGmtF,EAAiCtpF,EAAK+7E,IAAI,CAAC,EAAE,CAAC0N,OAAO,CAAEzpF,EAAK87E,SAAS,EAAI0N,EAAgCxpF,EAAK+7E,IAAI,CAAC/7E,EAAK+7E,IAAI,CAAC5/E,MAAM,CAAG,EAAE,CAACstF,OAAO,CAC7K,CACJ,EA9FA,IAAI,CAACC,YAAY,CA8GjB,SAAsB1pF,CAAI,EACtB,OAAOA,EAAKk8E,KAAK,CAAC//E,MAAM,EA9G5B,IAAI,CAACwtF,qBAAqB,CAgI1B,SAA+BC,CAAM,CAAEC,CAAgB,CAAE7pF,CAAI,EACzD,IAAI8pF,EAAOC,EAAaH,EAAQ5pF,GAEhC,GAAI8pF,EAAM,CAEN,GAAID,eAAAA,EAAiBG,YAAY,CAAmB,CAChD,GAAIH,UAAAA,EAAiBI,cAAc,CAQ/B,MAAO,GAPP,IAlBSruC,EAAOC,EAkBZquC,GAlBKtuC,EAkB+BkuC,CAAI,CAACD,EAAiBG,YAAY,CAAC,CAlB3DnuC,EAkB6DguC,EAAiBM,aAAa,EAAI,KAd3H,CAHAvuC,EAAQ,IAAI3pC,KAAKm4E,EAAkBxuC,IACnCC,EAAQ,IAAI5pC,KAAKm4E,EAAkBvuC,IAE/B93B,EAAiBsmE,MAAM,CAACzuC,IAAU73B,EAAiBsmE,MAAM,CAACxuC,KACnD93B,EAAiBumE,YAAY,CAAC1uC,EAAOC,GAErCD,IAAUC,GAgBT,OAJIquC,GACAL,EAAiBU,iBAAiB,GAG/BL,CAIf,CAAO,GAAIL,kBAAAA,EAAiBG,YAAY,EAAwBH,UAAAA,EAAiBG,YAAY,EAAgBH,YAAAA,EAAiBG,YAAY,CAEtI,OADAF,CAAI,CAACD,EAAiBG,YAAY,CAAC,CAAGH,EAAiB1qD,OAAO,CACvD,GACJ,GAAI0qD,EAAiBG,YAAY,GAAKQ,EAAAA,CAAgBA,CAACC,KAAK,CAACC,KAAK,CAIrE,OAHAZ,EAAKa,aAAa,CAAGd,EAAiBe,UAAU,EAAI,EACpDd,EAAKe,KAAK,CAAGhB,EAAiBiB,QAAQ,EAAI,EAC1ChB,EAAKiB,OAAO,CAAGlB,EAAiBmB,UAAU,EAAI,EACvC,GACJ,GAAIlB,CAAI,CAACD,EAAiBG,YAAY,CAAC,GAAKH,EAAiB1qD,OAAO,CAEvE,OADA2qD,CAAI,CAACD,EAAiBG,YAAY,CAAC,CAAGH,EAAiB1qD,OAAO,CACvD,EAEf,CAEA,MAAO,EACX,EA9JA,IAAI,CAAC08C,iBAAiB,CAAGA,EACzB,IAAI,CAACoP,qBAAqB,CAmK1B,SAA+BrlC,CAAM,EACjC,OAAOA,EAAOslC,MAAM,CAAC,GAAGC,WAAW,GAAKvlC,EAAO3nD,KAAK,CAAC,EACzD,EApKA,IAAI,CAACmtF,UAAU,CA8Qf,SAAoBprF,CAAI,CAAExB,CAAK,EAC3B,IACIm9D,EAAgB0vB,EAAa,WAAY7sF,GAK7C,OAHAm9D,EAAgBA,KAAuB,IAAvBA,EAA2B37D,EAAKk8E,KAAK,CAAC//E,MAAM,CAAG,EAAIw/D,EACzD2vB,EAAgBtrF,EAAKk8E,KAAK,CAACvgB,EAAc,CAGvD,EArRA,IAAI,CAAC2vB,eAAe,CAAGA,EACvB,IAAI,CAACC,cAAc,CAAGA,EACtB,IAAI,CAACC,SAAS,CAqRd,SAAmBxrF,CAAI,CAAExB,CAAK,EAC1B,IACIm9D,EAAgB0vB,EAAa,WAAY7sF,GAW7C,OATAm9D,EAAgBA,GAAiB37D,EAAK+7E,IAAI,CAAC5/E,MAAM,CAAG,EAEhD6D,EAAK+7E,IAAI,CAACpgB,EAAc,CAAC8tB,OAAO,GAAKe,EAAAA,CAAgBA,CAACC,KAAK,CAACC,KAAK,EAEjE/uB,CAAAA,GAAgC,GAK7B,CACHhvC,IAHK4+D,EAAevrF,EAAKg8E,OAAO,CAAEh8E,EAAK+7E,IAAI,CAACpgB,EAAc,EAI1DytB,KAAMppF,EAAKg8E,OAAO,CAE1B,EArSA,IAAI,CAACyP,QAAQ,CAuTb,SAAkBC,CAAM,CAAEv0B,CAAI,CAAEn3D,CAAI,EAChC,GAAI,CAACm3D,GAAS,CAACA,EAAKyyB,MAAM,EAAI,CAACzyB,EAAKw0B,KAAK,CAErC,OAGJ,IAAI33C,EAAO,KAEX,OAAQ03C,GACJ,IAAK,SACD13C,EAAOh0C,EAAKg8E,OAAO,CACnB,KACJ,KAAK,MACDhoC,EAAOh0C,EAAK+7E,IAAI,CAChB,KACJ,KAAK,OACD/nC,EAAOh0C,EAAKk8E,KAAK,CAIzB,GAAI,IAASloC,CAAAA,EAAK73C,MAAM,CAAG,GAM3B,IAAK,IAAI6C,EAAI,EAAGA,EAAIg1C,EAAK73C,MAAM,CAAE6C,IAAK,CAClC,IAAI4sF,EAAW53C,CAAI,CAACh1C,EAAE,CAEtB,GAAIm4D,EAAKw0B,KAAK,CACV,IAAIC,EAASC,KAAK,GAAK10B,EAAKw0B,KAAK,CAC7B,OAAO3sF,CACX,MAOA,GALoB,KAAK,IAArB4sF,EAASv+E,EAAE,EACXu+E,CAAAA,EAAWA,EAAS1P,KAAK,CAAC,EAAE,EAI5B/kB,EAAKyyB,MAAM,CAAChrF,OAAO,CAACgtF,EAASv+E,EAAE,EAAI,GAAI,CACvC,GAAI8pD,EAAK3pC,QAAQ,EAAI2pC,UAAAA,EAAK3pC,QAAQ,CAC9B,MAAO,CACHs+D,SAAU9sF,EACVwuB,SAAUxuB,EAAI,CAClB,EAEJ,OAAOA,CACX,CAER,CACJ,EAxWA,IAAI,CAACqsF,YAAY,CAAGA,EACpB,IAAI,CAACU,aAAa,CAAGA,EACrB,IAAI,CAACC,gBAAgB,CAsPrB,SAA0Bx3B,CAAK,CAAEh2D,CAAK,EAC9BA,KAAe,IAAfA,GAAoBA,GAASg2D,EAAMr4D,MAAM,CAEzCq4D,EAAMy3B,GAAG,GAETz3B,EAAM3zD,MAAM,CAACrC,EAAO,EAE5B,EA5PA,IAAI,CAAC0tF,kBAAkB,CAuWvB,SAA4B9C,CAAI,EAK5B,IAJA,IAAI3uB,EAAI,EACJ0xB,EAAU/C,EAAKjtF,MAAM,CACrBiwF,EAAWvQ,EAAkBsQ,GAE1B1xB,EAAI0xB,EAAS1xB,IAChB2uB,CAAI,CAAC3uB,EAAE,CAAC4xB,KAAK,CAAGD,CAExB,EA9WA,IAAI,CAACE,SAAS,CAgXd,SAAmBtsF,CAAI,CAAExB,CAAK,EAC1B,IAII6vB,EAEAk+D,EACAC,EAGA7/D,EAVAy8D,EAAOppF,EAAKg8E,OAAO,CACnBvuD,EAAOztB,EAAK+7E,IAAI,CAChBpgB,EAAgB0vB,EAAa,WAAY7sF,GACzCiuF,EAAgBpB,EAAa,WAAY7sF,GAKzCkuF,EAAQ/zF,EAAQgqB,IAAI,GAIxBg5C,EAAgBA,KAAuB,IAAvBA,EAA2BytB,EAAKjtF,MAAM,CAAG,EAAIw/D,EAC7D8wB,EAAgBA,KAAuB,IAAvBA,EAA2BrD,EAAKjtF,MAAM,CAAGswF,EAErDzsF,EAAKg8E,OAAO,CAACrgB,EAAc,CAAC4tB,UAAU,GAAKiB,EAAAA,CAAgBA,CAACC,KAAK,CAACC,KAAK,GAEvE/uB,GAAgC,EAChC8wB,GAAgC,GAGpCF,EAAcnD,CAAI,CAACztB,EAAc,CAEjC,IAAK,IAAI38D,EAAI,EAAG2tF,EAAUl/D,EAAKtxB,MAAM,CAAE6C,EAAI2tF,EAAS3tF,IAIhDwtF,EAAUI,EAAU,OADLv+D,CADfA,EAAQ1B,CADRA,EAAMc,CAAI,CAACzuB,EAAE,EACDk9E,KAAK,CACG,CAACvgB,EAAc,CACO,CAAEtuD,GAAIw/E,EAAaH,EAAO//D,EAAIk/D,KAAK,CAAE,GAC/EE,EAAc19D,EAAOo+D,EAAeD,GASxC,OAFAT,EAAc3C,EAAMqD,EAJXG,EAAU,MAAOL,EAAa,CACnCl/E,GAAIq/E,CACR,IAIO1sF,CACX,EAtZA,IAAI,CAAC6sF,YAAY,CAAGA,EACpB,IAAI,CAACD,SAAS,CAAGA,EACjB,IAAI,CAACE,wBAAwB,CAAGA,EAChC,IAAI,CAACC,iBAAiB,CAoDtB,SAA2BC,CAAS,CAAEpD,CAAM,CAAEqD,CAAI,EAC9C,OAAOA,IAASzC,EAAAA,CAAgBA,CAAC0C,KAAK,CAACC,OAAO,CAAGnE,EAAYgE,EAAUlR,SAAS,CAAE8N,EAAQoD,GAAaF,EAAyBE,EAAUlR,SAAS,CAAE8N,EAAQoD,EACjK,EArDA,IAAI,CAACjD,YAAY,CAAGA,EAIpB,IAAIqD,EAAmB,CACnBtD,KAAM,CACF/X,MAAO,GACPsb,OAAQ,EACRC,WAAY,EAChB,EACAC,IAAK,CACDlB,MAAO,CACX,CACJ,EAIA,SAASrD,EAAYrO,CAAS,CAAEiP,CAAM,CAAE5pF,CAAI,EACxC,IAAIwtF,EAEJ,OAAQ7S,GACJ,KAAK7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACC,WAAW,CAC/C,KAAKhR,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACuN,oBAAoB,CACpDoF,EAAW,SACX,KACJ,MAAK1jB,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACG,QAAQ,CACxCwS,EAAW,MACX,KACJ,MAAK1jB,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACK,cAAc,CAClD,KAAKpR,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACU,MAAM,CAACJ,cAAc,CAC/C,IAAIuS,EAAgBC,EAAW,SAAU1tF,GACrC2tF,EAAaD,EAAW,MAAO1tF,EAE/B4pF,CAAAA,EAAOhrF,OAAO,CAAC+uF,GAAc,GAC7BH,EAAW,SACJ5D,EAAOhrF,OAAO,CAAC6uF,GAAiB,IACvCD,CAAAA,EAAW,KAAI,EAEnB,KACJ,MAAK1jB,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACO,UAAU,CAC1CoS,EAAW,MAEnB,CAEA,OAAOA,CACX,CAEA,SAASV,EAAyBnS,CAAS,CAAEiP,CAAM,CAAEoD,CAAS,EAC1D,OAAOhE,EAAY,UAAYrO,EAAWiP,EAAQoD,EACtD,CA6BA,SAAS1D,EAAiCsE,CAAe,CAAEjT,CAAS,SAChE,IAAwB6P,EAAAA,CAAgBA,CAACC,KAAK,CAACoD,MAAM,EAAIlT,IAAc7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACU,MAAM,CAACJ,cAAc,EAAIP,IAAc7Q,EAAY7tD,IAAI,CAACosE,YAAY,CAAC/M,MAAM,CAACJ,cAAc,CAC/K,GAEJ,CACX,CAEA,SAASsO,EAAgCoE,CAAe,SACpD,IAAwBpD,EAAAA,CAAgBA,CAACC,KAAK,CAACC,KAAK,CACzC,GAEJ,CACX,CAMA,SAASN,EAAkBpqF,CAAI,EAC3B,OAAO6rC,EAAUiiD,QAAQ,CAAC9tF,GAAQA,EAAKsQ,OAAO,CAAC,KAAM,IAAMtQ,CAC/D,CA8CA,SAAS67E,EAAkBkS,CAAS,EAChC,MAAO,CAAC,CAAC,IAAMA,CAAQ,EAAGC,OAAO,CAAC,EACtC,CAMA,SAASjE,EAAaH,CAAM,CAAE5pF,CAAI,EAC9B,IAAIk4B,EAAQl4B,EAAK+7E,IAAI,EAAI,CAAC,CAAEG,MAAOl8E,EAAKk8E,KAAK,EAAG,CAEhD,GAAIhkD,GAASA,EAAM/7B,MAAM,CAAG,GAAK+7B,CAAK,CAAC,EAAE,CAACgkD,KAAK,CAC3C,IAAK,IAAI7tD,EAAOrvB,EAAI,EAAGkmE,EAAMhtC,EAAM/7B,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IAAK,CACrDqvB,EAAQ6J,CAAK,CAACl5B,EAAE,CAACk9E,KAAK,CAEtB,IAAK,IAAI79E,EAAI,EAAG4vF,EAAW5/D,EAAMlyB,MAAM,CAAEkC,EAAI4vF,EAAU5vF,IACnD,GAAIgwB,CAAK,CAAChwB,EAAE,CAACgP,EAAE,GAAKu8E,EAChB,OAAOv7D,CAAK,CAAChwB,EAAE,CAKnC,CAEA,SAASuuF,EAAUsB,CAAQ,CAAEC,CAAW,CAAEC,CAAU,EAChD,IACI72B,EADA82B,EAAWroE,QAAQ0N,IAAI,CAACy6D,GAExBG,EAAclB,CAAgB,CAACc,EAAS,CAE5C,GAAIG,EAAU,CACV,GAAIC,EACA,IAAK/2B,KAAQ+2B,EACLA,EAAYpkE,cAAc,CAACqtC,IAAS82B,EAASnkE,cAAc,CAACqtC,IAC5D82B,CAAAA,CAAQ,CAAC92B,EAAK,CAAG+2B,CAAW,CAAC/2B,EAAK,EAK9C,IAAKA,KAAQ62B,EACLA,EAAWlkE,cAAc,CAACqtC,IAAS82B,EAASnkE,cAAc,CAACqtC,IAC3D82B,CAAAA,CAAQ,CAAC92B,EAAK,CAAG62B,CAAU,CAAC72B,EAAK,CAG7C,CAEA,OAAO82B,CACX,CAEA,SAASxB,EAAa0B,CAAQ,CAAE5C,CAAK,EACjC,OAAO4C,EAAW,IAAM5C,CAC5B,CAEA,SAASJ,EAAenC,CAAI,CAAEoF,CAAO,CAAEJ,CAAU,CAAEK,CAAS,EACxD,IAEIC,EACAnB,EAHAoB,EAAS,CAAE9C,MAAOlzF,EAAQgqB,IAAI,GAAIu5D,MAAO,EAAE,CAAEuN,QAAS+E,EAAQ/E,OAAO,EAAIe,EAAAA,CAAgBA,CAACC,KAAK,CAACmE,MAAM,EACtGC,EAAcL,EAAQtS,KAAK,CAI1BkS,GACDA,CAAAA,EAAa,CAAC,GAGlB,IAAK,IAAIpvF,EAAI,EAAGkmE,EAAM2pB,EAAY1yF,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IAC/C0vF,EAAcG,CAAW,CAAC7vF,EAAE,CAC5BuuF,EAAMnE,CAAI,CAACpqF,EAAE,CAETyvF,GACAC,CAAAA,EAAcD,EAAUC,EAAW,EAEvCN,EAAW/gF,EAAE,CAAGw/E,EAAaU,EAAIlgF,EAAE,CAAEshF,EAAO9C,KAAK,EAEjD8C,EAAOzS,KAAK,CAACt7E,IAAI,CAACgsF,EAAU,OAAQ8B,EAAaN,IAGrD,OAAOO,CACX,CAEA,SAASrD,EAAgBwD,CAAQ,CAAEC,CAAO,EACtC,IAAIC,EAAY,CAAE3hF,GAAI1U,EAAQgqB,IAAI,EAAG,EAKrC,OAJIosE,GACAC,CAAAA,EAAUC,IAAI,CAAGzE,EAAAA,CAAgBA,CAACC,KAAK,CAACmE,MAAM,EAG3ChC,EAAU,OAAQkC,EAAUE,EACvC,CAEA,SAASjD,EAAcv3B,CAAK,CAAEh2D,CAAK,CAAEwB,CAAI,EACjCxB,KAAe,IAAfA,GAAoBA,GAASg2D,EAAMr4D,MAAM,CAEzCq4D,EAAM5zD,IAAI,CAACZ,GAEXw0D,EAAM3zD,MAAM,CAACrC,EAAO,EAAGwB,EAE/B,CAWA,SAASqrF,EAAapvE,CAAI,CAAEzd,CAAK,EAC7B,GAAIA,KAAe,IAAfA,EAIJ,OAAOA,KAAqB,IAArBA,CAAK,CAACyd,EAAK,CAAczd,CAAK,CAACyd,EAAK,CAAGzd,CAClD,CA+BA,SAASkvF,EAAWhC,CAAM,CAAE1rF,CAAI,EAC5B,IAAI8M,EACJ,GAAI9M,GAAQA,EAAKg8E,OAAO,EAAIh8E,EAAK+7E,IAAI,CACjC,OAAQ2P,GACJ,IAAK,SACD5+E,EAAK9M,EAAKg8E,OAAO,CAAC,EAAE,CAAC3uE,EAAE,CACvB,KACJ,KAAK,MACDP,EAAK9M,EAAK+7E,IAAI,CAAC,EAAE,CAAC8P,KAAK,CAKnC,OAAO/+E,CACX,CAwGJ,C,mCA9aA3N,EAAAA,CAAUA,CAACC,OAAO,CAAC,kBAAmB2pF,GACtCA,EAAgB1pF,OAAO,CAAG,CAAC,UAAW,UAAW,cAAe,mBAAoB,YAAY,E,mDCGhG,SAAS6vF,EAAeplB,CAAW,CAAED,CAAe,CAAEt4D,CAAa,CAAE5Y,CAAO,CAAEkzC,CAAS,EAGnF,IAAI,CAAC+vC,cAAc,CA+EnB,SAAwBzkB,CAAI,EACxB,GAAI,CAACA,EACD,MAAM,MAAU,qDAEpB,IASI2yB,EAIA3L,EAEAwN,EAfA9P,EAAoB1kB,EAAK0kB,iBAAiB,EAAI,GAC9Cl5D,EAAOw0C,EAAKx0C,IAAI,EAAI,GACpB64D,EAAYrkB,EAAKqkB,SAAS,EAAI1R,EAAY2R,OAAO,CAACC,gBAAgB,CAClEf,EAAYxjB,EAAKwjB,SAAS,EAAI,GAC9BwU,EAAiBxU,IAAc7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACG,QAAQ,CAAGQ,EAAY,EAAIA,EACzF1jB,EAAS,CAAC,EACVikB,EAAO,EAAE,CACTE,EAAO,EAAE,CACTC,EAAQ,EAAE,CAEVkT,EAAWvT,EAAAA,GAAoBA,EAAkBL,GACjDx8E,EAAI,EACJo/E,EAAI,EAEJiR,EAAK,EAELC,EAAS,EAAE,CAEf,GAAI3U,IAAc7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACO,UAAU,CAAE,CACzD,KAAOiU,EAAK7T,GACRsO,EAAO,CACHz8E,GAAIsV,IACJ4sE,SAAU,GACVxd,MAAO,GACPsb,OAAQ,EACRmC,WAAY,GACZC,aAAc,GACdnC,WAAY,GACZ2B,KAAMzE,EAAAA,CAAgBA,CAACC,KAAK,CAACmE,MAAM,EAEvC1S,EAAMt7E,IAAI,CAACkpF,GAEXuF,IAGJ,OAAOnT,CACX,CAEA,KAAOl9E,EAAIw8E,GAAW,CAClB,IAAIkU,EAAY/sE,IAEhB2sE,EAAO1uF,IAAI,CAAC8uF,GACZzT,EAAKr7E,IAAI,CAAC,CACNyM,GAAIqiF,EACJrD,MAAO+C,EACP7F,WAAYiB,EAAAA,CAAgBA,CAACC,KAAK,CAACmE,MAAM,GAG7C5vF,GACJ,CAEA,KAAOo/E,EAAI+Q,GAAgB,CAEvB,IAAIxiE,EAAM,CAAEk/D,MADZF,EAAQhpE,IACkBu5D,MAAO,EAAE,CAAEuN,QAASe,EAAAA,CAAgBA,CAACC,KAAK,CAACmE,MAAM,EAG3E,IADAzQ,EAAI,EACGA,EAAI3C,GACPsO,EAAO,CACHz8E,GAAIiiF,CAAM,CAACnR,EAAE,CAAG,IAAMwN,EACtB4D,SAAUI,EAAkBhV,EAAW,WAAY,CAAEyD,EAAGA,EAAGD,EAAGA,CAAE,GAChEpM,MAAO4d,EAAkBhV,EAAW,QAAS,CAAEyD,EAAGA,EAAGD,EAAGA,CAAE,GAC1DkP,OAAQsC,EAAkBhV,EAAW,SAAU,CAAEyD,EAAGA,EAAGD,EAAGA,CAAE,GAC5DqR,WAAYG,EAAkBhV,EAAW,aAAc,CAAEyD,EAAGA,EAAGD,EAAGA,CAAE,GACpEsR,aAAcE,EAAkBhV,EAAW,eAAgB,CAAEyD,EAAGA,EAAGD,EAAGA,CAAE,GACxEmP,WAAYqC,EAAkBhV,EAAW,aAAc,CAAEyD,EAAGA,EAAGD,EAAGA,CAAE,GACpE8Q,KAAMU,EAAkBhV,EAAW,OAAQ,CAAEyD,EAAGA,EAAGD,EAAGA,CAAE,EAC5D,EAEAxxD,EAAIuvD,KAAK,CAACt7E,IAAI,CAACkpF,GACf3L,IAGJpC,EAAKn7E,IAAI,CAAC+rB,GACVyxD,GACJ,CAiBA,MAfIzD,CAAAA,IAAc7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACG,QAAQ,EAAIL,IAAc7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACK,cAAc,GACpHe,CAAAA,CAAI,CAAC,EAAE,CAACsN,UAAU,CAAGiB,EAAAA,CAAgBA,CAACC,KAAK,CAACoD,MAAM,EAIlDlT,CAAAA,IAAc7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACC,WAAW,EACxDH,IAAc7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACK,cAAc,EAC3DP,IAAc7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACuN,oBAAoB,GAEjErM,CAAAA,CAAI,CAAC,EAAE,CAAC0N,OAAO,CAAGe,EAAAA,CAAgBA,CAACC,KAAK,CAACoD,MAAM,EAGnD/1B,EAAOikB,IAAI,CAAGA,EACdjkB,EAAOmkB,IAAI,CAAGA,EAEPnkB,CACX,EA9KA,IAAI,CAAC83B,QAAQ,CAgLb,SAAkBjV,CAAS,EACvB,IAAIkV,EAAU/lB,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACU,MAAM,CAE7C,IAAK,IAAIA,KAAUuU,EACf,GAAIA,EAAQ3lE,cAAc,CAACoxD,GACvB,OAAOuU,CAAO,CAACvU,EAAO,GAAKX,CAGvC,EAvLA,IAAI,CAAC9b,cAAc,CAyLnB,SAAwBrO,CAAG,EACvBA,EAAInjD,EAAE,CAAGkE,EAAcoR,IAAI,GAEvB6tC,EAAIsrB,SAAS,GAAKhS,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACO,UAAU,CAC3D0U,EAAUt/B,EAAK,CAAEu/B,QAAS,OAAQ,IAElCD,EAAUt/B,EAAK,CAAEu/B,QAAS,SAAU,GACpCD,EAAUt/B,EAAK,CAAEu/B,QAAS,OAAQC,MAAO,OAAQ,GAEzD,EAjMA,IAAI,CAACC,UAAU,CAyNf,SAAoBz/B,CAAG,EACnB,OAAQA,EAAIsrB,SAAS,EACjB,KAAKhS,EAAY7tD,IAAI,CAACosE,YAAY,CAACxN,KAAK,CAACC,WAAW,CACpD,KAAKhR,EAAY7tD,IAAI,CAACosE,YAAY,CAACxN,KAAK,CAACuN,oBAAoB,CAC7D,KAAKte,EAAY7tD,IAAI,CAACosE,YAAY,CAACxN,KAAK,CAACG,QAAQ,CACjD,KAAKlR,EAAY7tD,IAAI,CAACosE,YAAY,CAACxN,KAAK,CAACK,cAAc,CACvD,KAAKpR,EAAY7tD,IAAI,CAACosE,YAAY,CAACxN,KAAK,CAACO,UAAU,CACnD,KAAKtR,EAAY7tD,IAAI,CAACosE,YAAY,CAACxN,KAAK,CAACyN,kBAAkB,CAC3D,KAAKxe,EAAY7tD,IAAI,CAACosE,YAAY,CAAC/M,MAAM,CAACJ,cAAc,KAoBxDgV,EACAC,EApBI,OAmBJD,EAAe,GACfC,EAAgB,GAEpBC,EAtB+B5/B,EAsBV,OAAQ,SAAU6/B,CAAQ,EAM3C,OALAD,EAAgBC,EAASnU,KAAK,CAAE,KAAM,SAAUoU,CAAa,EAEzD,OADAJ,EAAeK,EAAeD,EAElC,GAEOJ,CACX,GAEAE,EA/B+B5/B,EA+BV,QAAS,SAAU8/B,CAAa,EAEjD,OADAH,EAAgBI,EAAeD,EAEnC,GAEOJ,GAAgBC,CAnCnB,SACI,MAAO,EACf,CACJ,EAzNA,IAAIK,EAAkB,CAClBjB,SAAU,SAAU5U,CAAS,CAAEhzE,CAAM,EACjC,OAAQgzE,GACJ,KAAK7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACC,WAAW,CAC3C,OAAOnzE,IAAAA,EAAOy2E,CAAC,MACdtU,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACG,QAAQ,CACxC,OAAOrzE,IAAAA,EAAOw2E,CAAC,MACdrU,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACO,UAAU,CAC1C,MACJ,MAAKtR,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACK,cAAc,CAClD,KAAKpR,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACU,MAAM,CAACJ,cAAc,CAC/C,OAAOvzE,IAAAA,EAAOy2E,CAAC,EAAUz2E,IAAAA,EAAOw2E,CAAC,CAE7C,EACApM,MAAO,SAAU4I,CAAS,CAAEhzE,CAAM,EAC9B,MAAO,EACX,EACA0lF,OAAQ,SAAU1S,CAAS,CAAEhzE,CAAM,EAC/B,OAAO,CACX,EACA6nF,WAAY,SAAU7U,CAAS,CAAEhzE,CAAM,EACnC,OAAQgzE,GACJ,KAAK7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACC,WAAW,CAC/C,KAAKhR,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACG,QAAQ,CAC5C,KAAKlR,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACK,cAAc,CAClD,KAAKpR,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACO,UAAU,CAC1C,MAAO,EACX,MAAKtR,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACU,MAAM,CAACJ,cAAc,CAC/C,OAAOvzE,IAAAA,EAAOy2E,CAAC,EAAUz2E,IAAAA,EAAOw2E,CAAC,CAE7C,EACAsR,aAAc,SAAU9U,CAAS,CAAEhzE,CAAM,EACrC,MAAO,EACX,EACA2lF,WAAY,SAAU3S,CAAS,CAAEhzE,CAAM,EACnC,MAAO,EACX,EACAsnF,KAAM,SAAUtU,CAAS,CAAEhzE,CAAM,EAC7B,OAAQgzE,GACJ,KAAK7Q,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACC,WAAW,CACN,KACpChR,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACG,QAAQ,CADxC,OAAOwP,EAAAA,CAAgBA,CAACC,KAAK,CAACmE,MAAM,MAGnC9kB,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACK,cAAc,CAC9C,OAAOvzE,IAAAA,EAAOy2E,CAAC,EAAUz2E,IAAAA,EAAOw2E,CAAC,CAASqM,EAAAA,CAAgBA,CAACC,KAAK,CAACgG,KAAK,CAAGjG,EAAAA,CAAgBA,CAACC,KAAK,CAACmE,MAAM,MACrG9kB,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACC,KAAK,CAACO,UAAU,CAC1C,MACJ,MAAKtR,EAAY7tD,IAAI,CAAC2+D,OAAO,CAACU,MAAM,CAACJ,cAAc,CAC/C,GAAI,MAAQkD,CAAC,EAAUz2E,IAAAA,EAAOw2E,CAAC,EAAYx2E,IAAAA,EAAOy2E,CAAC,EAAUz2E,IAAAA,EAAOw2E,CAAC,CACjE,OAAOqM,EAAAA,CAAgBA,CAACC,KAAK,CAACoD,MAAM,CAExC,OAAOlmF,IAAAA,EAAOy2E,CAAC,EAAUz2E,IAAAA,EAAOw2E,CAAC,CAASqM,EAAAA,CAAgBA,CAACC,KAAK,CAACgG,KAAK,CAAGjG,EAAAA,CAAgBA,CAACC,KAAK,CAACmE,MAAM,CAElH,EACA9vB,QAAS,WACL,MAAM,MAAU,8BACpB,CACJ,EAEA,SAAS6wB,EAAkBhV,CAAS,CAAEoH,CAAQ,CAAEp6E,CAAM,EAClD,MAAO,CAAC6oF,CAAe,CAACzO,EAAS,EAAIyO,EAAgB,OAAU,EAAE7V,EAAWhzE,EAChF,CAyHA,SAASmoF,EAAUt/B,CAAG,CAAE2G,CAAI,EAExB,IAAM44B,EAAU54B,CADhBA,EAAOA,GAAQ,CAAC,GACK44B,OAAO,EAAI,GAC1BC,EAAQ74B,EAAK64B,KAAK,EAAI,KACtBU,EAAWlgC,CAAG,CAACu/B,EAAQ,CAE7B,IAAK,IAAI/wF,EAAI,EAAGA,EAAI0xF,EAASv0F,MAAM,CAAE6C,IAAK,CACtC,IAAIsxF,EAAgBI,CAAQ,CAAC1xF,EAAE,CAC3B0tF,EAAQn7E,EAAcoR,IAAI,GAG9B,GAFA2tE,CAAa,CAACN,EAAM,CAAGtD,EAEnBqD,SAAAA,EAAoB,CACpB,IAAIY,EAAcngC,EAAIwrB,OAAO,CACzB4U,EAAWN,EAAcpU,KAAK,CAElC,IAAK,IAAIzhB,EAAI,EAAGA,EAAIm2B,EAASz0F,MAAM,CAAEs+D,IACjCm2B,CAAQ,CAACn2B,EAAE,CAACptD,EAAE,CAAGw8D,EAAgBgjB,YAAY,CAAC8D,CAAW,CAACl2B,EAAE,CAACptD,EAAE,CAAEq/E,EAEzE,CACJ,CACJ,CAiBA,SAAS6D,EAAezG,CAAI,EACxB,IAAI+G,EAAe/G,KAAyB,IAAzBA,EAAKgH,UAAU,CAC9BC,EAAc,CAACF,GAAgB,CAAC/G,EAAK2F,YAAY,EAAI,CAAC3F,EAAKyF,QAAQ,EAAI52F,EAAQq4F,WAAW,CAAClH,EAAK/X,KAAK,EAAElpB,IAAI,GAAG1sD,MAAM,CAAG,EACvH80F,EAAa,CAACJ,GAAgB/G,EAAK2F,YAAY,EAAI3F,EAAKwD,UAAU,CAClElS,EAAa0O,KAAyB,IAAzBA,EAAKgH,UAAU,EAAen4F,EAAQq4F,WAAW,CAAClH,EAAKgH,UAAU,EAAEjoC,IAAI,GAAG1sD,MAAM,CAAG,EAChG+0F,EAAW,CAACpH,EAAKyF,QAAQ,EAAI/E,EAAAA,CAAgBA,CAACC,KAAK,CAAC0G,IAAI,EAAIrH,EAAKsH,UAAU,CAC3EC,EAAc,CAACvH,EAAKyF,QAAQ,EAAI/E,EAAAA,CAAgBA,CAACC,KAAK,CAAC6G,OAAO,EAAIxH,OAAAA,EAAKa,aAAa,EAAa,CAAC56C,MAAM+5C,EAAKa,aAAa,EAC1H4G,EAAW,CAACzH,EAAKyF,QAAQ,EAAI/E,EAAAA,CAAgBA,CAACC,KAAK,CAAC+G,IAAI,EAAM1H,CAAAA,OAAAA,EAAKe,KAAK,EAAa,CAAC96C,MAAM+5C,EAAKe,KAAK,GAAOf,OAAAA,EAAKiB,OAAO,EAAa,CAACh7C,MAAM+5C,EAAKiB,OAAO,GAE7J,OAAOgG,GAAeE,GAAc7V,GAAc8V,GAAYG,GAAeE,CACjF,CAuBA,SAASnB,EAAgBpwF,CAAI,CAAE+vF,CAAO,CAAEzvF,CAAQ,EAC5C,IAAMowF,EAAWX,EAAU/vF,CAAI,CAAC+vF,EAAQ,CAAG/vF,EAE3C,GAAI0wF,GAAYA,EAASv0F,MAAM,CAAG,EAC9B,IAAK,IAAI6C,EAAI,EAAGA,EAAI0xF,EAASv0F,MAAM,CAAE6C,IAAK,CACtC,IAAMsxF,EAAgBI,CAAQ,CAAC1xF,EAAE,CACjC,GAAI6sC,EAAUwC,UAAU,CAAC/tC,IACNA,EAASgwF,GAGpB,KAGZ,CAER,CACJ,C,4CAlSAnxF,EAAAA,CAAUA,CAACC,OAAO,CAAC,iBAAkB8vF,GACrCA,EAAe7vF,OAAO,CAAG,CAAC,cAAe,kBAAmB,gBAAiB,UAAW,YAAY,E,0CCJpG,SAASoyF,EAAe94F,CAAO,EAC3B,MAAO,CACHiY,SAAU,IACVC,MAAO,CACHC,MAAO,WACP0zE,IAAK,IACT,EACAkN,QAAS,UACT3rE,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,CAAE+lE,CAAO,EAC1C,IAAMC,EAAW7hD,MAAMl/B,EAAM2zE,GAAG,GAAK3zE,KAAAA,EAAM2zE,GAAG,CAAUqN,IAAWvuC,OAAOzyC,EAAM2zE,GAAG,EAEnFzmF,EAAQu5B,EAAE,CAAC,UAAW,IACAx4B,KAAAA,IAAd3D,EAAMY,GAAG,EAAkBZ,IAAAA,EAAMY,GAAG,CAACI,MAAM,EAAUhB,CAAkB,IAAlBA,EAAMszB,OAAO,EAC9D1wB,CAAO,CAAC,EAAE,CAACmB,WAAW,CAAC/C,MAAM,EAAIy1F,GACjCz2F,EAAMwB,cAAc,EAGhC,GAEAg1F,EAAQG,QAAQ,CAAClxF,IAAI,CAAC,IAClB,IAAMmxF,EAAap5F,EAAQq4F,WAAW,CAAC31F,GAEvC,GAAI02F,EAAW51F,MAAM,CAAGy1F,EAAU,CAC9B,GAAI/gF,EAAMC,KAAK,CAAC3U,MAAM,GAAKy1F,EAAU,CACjC,IAAMrmE,EAAWwmE,EAAW9zF,KAAK,CAAC,EAAG2zF,GAGrC,OAFAD,EAAQK,aAAa,CAACzmE,GACtBomE,EAAQM,OAAO,GACR1mE,CACX,CAIA,OAFAomE,EAAQK,aAAa,CAACnhF,EAAMC,KAAK,EACjC6gF,EAAQM,OAAO,GACRphF,EAAMC,KAAK,CAGtB,OAAOihF,CACX,EACJ,CACJ,CACJ,C,kBAzCAN,EAAepyF,OAAO,CAAG,CAAC,UAAU,CA2CpCF,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,iBAAkB4+E,G,0BCvCU,OAE3CS,UAAyBtvF,EAAAA,CAAWA,CACtCrD,YAAY5G,CAAO,CAAEkK,CAAoB,CAAE,CACvC,KAAK,GAEL,IAAI,CAAClK,OAAO,CAAGA,EACf,IAAI,CAACkK,oBAAoB,CAAGA,EAC5B,IAAI,CAACxH,KAAK,CAAG,IAAI,CAAC82F,YAAY,CAC9B,IAAI,CAACC,eAAe,CAAC,IAAI,CAAC/2F,KAAK,CACnC,CAEAyzC,aAAc,CACV,IAAMvjB,EAAW,IAAI,CAAC5yB,OAAO,CAACq4F,WAAW,CAAC,IAAI,CAAC31F,KAAK,EACpD,IAAI,CAAC+2F,eAAe,CAAC7mE,GACrB,IAAI,CAACwgC,aAAa,CAAC,CAAE1wD,MAAOkwB,CAAS,EACzC,CAEA6mE,gBAAgB/2F,CAAK,CAAE,CACf,KAAoByD,IAApB,IAAI,CAACuzF,UAAU,EAAkB,SAAI,CAACA,UAAU,CAChD,IAAI,CAACC,IAAI,CAAG,GACLj3F,OAAAA,GAAkBA,EAAMc,MAAM,EAAI,IAAI,CAACk2F,UAAU,CACxD,IAAI,CAACC,IAAI,CAAG,IAAI,CAACzvF,oBAAoB,CAACS,SAAS,CAAC,iDAAkD,CAAEjI,MAAO,IAAI,CAACg3F,UAAU,GAE1H,IAAI,CAACC,IAAI,CAAG,IAAI,CAACzvF,oBAAoB,CAACS,SAAS,CAAC,mDAAoD,CAAEjI,MAAO,IAAI,CAACg3F,UAAU,EAEpI,CACJ,CAEO,IAAME,EAA6B,CACtCnuF,SAAU,CACN26C,OAAQ,IACRyzC,KAAM,IACNC,YAAa,KACbJ,WAAY,KACZF,aAAc,IACd52F,MAAO,IACPwwD,cAAe,GACnB,EACAvnD,SC9CW,qtBD+CXC,WAAYytF,CAChB,CAEAK,CAAAA,EAA2BlzF,OAAO,CAAG,CAAC,UAAW,uBAAuB,CACxEF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,mBAAoBouF,E,+DE/ClC,OAAMG,EACTnzF,YAAYswB,CAAe,CAAEhtB,CAAoB,CAAE,CAC/C,IAAI,CAAC8vF,eAAe,CAAG9iE,EAAgBS,SAAS,CAAC,8BACjD,IAAI,CAACtW,qBAAqB,CAAGnX,CACjC,CAEA+vF,oBAAoBC,CAAe,CAAE,CACjC,OAAO,IAAI,CAACF,eAAe,EAAIE,EAAkB,CACrD,CAEAC,cAAcC,CAAc,CAAEF,CAAe,CAAE,CAC3C,GAAI,CAAC,IAAI,CAACD,mBAAmB,CAACC,GAC1B,MAAO,CACH5sF,UAAW,GACX+sF,OAAQ,KACRvkD,QAAS,EACb,EAGJ,IAAMwkD,EAAgBF,GAAkBF,EAClCpkD,EAAU,IAAI,CAACz0B,qBAAqB,CAAC1W,SAAS,CAAC2vF,EAAgB,6CAA+C,qDAAsD,CACtKhuF,MAAO4tF,CACX,GAEMK,EAAe,IAAI,CAACl5E,qBAAqB,CAAC1W,SAAS,CAAC,sCAG1D,MAAO,CACH2C,UAHc,IAAI,CAAC+T,qBAAqB,CAAC1W,SAAS,CAAC,CAAC,4BAA4B,EAAE2vF,EAAgB,UAAY,cAAc,CAAC,CAAE,CAAEh3E,KAAMi3E,CAAa,GAIpJF,OAAQC,EAAgBE,EAAAA,CAAaA,CAAGC,EAAAA,CAAiBA,CACzD3kD,QAASA,CACb,CACJ,CAEA4kD,mBAAmBC,CAAgB,CAAEP,CAAc,CAAEF,CAAe,CAAE,QAClE,IAAS,CAACD,mBAAmB,CAACC,GAIvBE,GAAkBF,EAHdS,CAIf,CACJ,CAEAZ,EAA0BrzF,OAAO,CAAG,CAAC,kBAAmB,uBAAuB,CAC/EF,EAAAA,CAAUA,CAACC,OAAO,CAAC,4BAA6BszF,E,iCC7ChD,SAASa,IACL,MAAO,CACH3iF,SAAU,IACVC,MAAO,CACH2iF,gBAAiB,GACrB,EACAztE,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,EAC1BA,EAAQwnB,QAAQ,CAAC,qBACjBxnB,EAAQu5B,EAAE,CAAC,QAAS,WAChBzmB,EAAM4iF,MAAM,CAAC,WACT,IAAIC,EAAM7iF,EAAM2iF,eAAe,GAC3BE,GACA31F,EAAQw5D,IAAI,CAAC,WAAY,IACzBm8B,EAAIp4F,IAAI,CAAC,WACLq4F,EAAS51F,EACb,GAAGoC,KAAK,CAAC,WACLwzF,EAAS51F,EACb,IACOw7B,SAAWA,QAAQD,KAAK,EAC/BC,QAAQD,KAAK,CAAC,iEAEtB,EACJ,EACJ,CACJ,CACJ,CAEA,SAASq6D,EAAS51F,CAAO,EACrBA,EAAQw5D,IAAI,CAAC,WAAY,GAC7B,CA9BAg8B,EAAgBl0F,OAAO,CAAG,CAAC,WAAW,CAgCtCF,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,kBAAmB0gF,E,4CC3BxC,SAASK,EAAuB3sF,CAAK,CAAE0J,CAAe,CAAE+e,CAAiB,EAGrE,IAAI,CAACmkE,YAAY,CAMjB,SAAsBjtF,CAAO,EACzB,OAAO8oB,EAAkBmiB,qBAAqB,CAACjrC,EACnD,EAPA,IAAI,CAACktF,YAAY,CASjB,SAAsBltF,CAAO,EACzB,OAAOK,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,qCAAuCxM,EAC3F,CACJ,CCIA,SAASmtF,EACL1iF,CAAU,CACV4B,CAAE,CACFU,CAAS,CACTzM,CAAY,CACZqK,CAAa,CACbnK,CAAU,CACVwM,CAAK,CACLjD,CAAe,CACf9N,CAAoB,CACpB+wF,CAAsB,CACtBI,CAAc,CACdtkE,CAAiB,MAWbukE,EA2BJ,SAASC,IAGL,OAFAvgF,EAAUvH,GAAG,CAAC4nF,EAAel5E,kBAAkB,CAAC5T,EAAa6T,SAAS,GAAK3T,EAAW8P,sBAAsB,CAACvD,EAAU6G,IAAI,KAC3Hy5E,EAAmBx7E,SAAS,GACrBxF,EAAGpT,MAAM,EACpB,CAEA,SAASs0F,EAAsBvtF,CAAO,CAAEwtF,CAAQ,CAAEC,CAAS,EACvD,IAAIz9E,EAAavF,EAAWwF,IAAI,EAChCD,CAAAA,EAAW9Q,KAAK,CAAGjD,EAAqBS,SAAS,CAAC,gDAClDsT,EAAW63B,OAAO,CAAG5rC,EAAqBS,SAAS,CAAC,kDACpDsT,EAAW09E,OAAO,CAAGD,EACrBz9E,EAAW29E,aAAa,CAAG,WAEvBX,EAAuBE,YAAY,CAACltF,GAAStL,IAAI,CAAC,SAAU0M,CAAQ,EAEzC,KAAnBA,EAAS2sB,MAAM,EACfy/D,GAER,EAAGC,EACP,EAEAz9E,EAAW3d,OAAO,CAAG,WACjB2d,EAAWO,QAAQ,EACvB,EAEA88E,EAAqBrgF,EAAMwD,QAAQ,CAAC,CAChCvG,MAAO+F,EACPW,YAAa5G,EAAgB6G,yBAAyB,CAAG,2DACzDF,aAAc,EAClB,EACJ,CAhEA,IAAI,CAACk9E,oBAAoB,CASzB,SAA8BX,CAAY,CAAEjtF,CAAO,CAAEuE,CAAQ,CAAEiB,CAAG,EAC9D,IAAImP,EAAWtI,EAAGuI,KAAK,GAevB,OAbIq4E,IAAiBt+E,EAAAA,CAAeA,CAACk/E,WAAW,CAACC,WAAW,CACpDz5D,EAsDajkB,iBAAiB,CAtDnB7L,IAAa,CAAC/D,EAAWutF,QAAQ,CAACvoF,GAG7C+nF,EAAsBvtF,EAAS2U,EAAS3b,OAAO,CAAEs0F,GAGjD34E,EAAS3b,OAAO,CAACi0F,GAGrBt4E,EAAS3b,OAAO,GAGb2b,EAAS/b,OAAO,EAxB3B,IAAI,CAAC20F,qBAAqB,CAAGA,EAC7B,IAAI,CAACD,kBAAkB,CAAGA,EAC1B,IAAI,CAACU,0BAA0B,CAyB/B,SAAoChuF,CAAO,EACvC,OAAO8oB,EAAkBmiB,qBAAqB,CAACjrC,GAAStL,IAAI,CAAC,SAAUq5B,CAAM,EACzE,OAAOA,IAAWpf,EAAAA,CAAeA,CAACk/E,WAAW,CAACC,WAAW,EAEjE,CAqCJ,C,qDD5GAv1F,EAAAA,CAAUA,CAACC,OAAO,CAAC,yBAA0Bw0F,GAC7CA,EAAuBv0F,OAAO,CAAG,CAAC,QAAS,kBAAmB,oBAAoB,C,SCMlFF,EAAAA,CAAUA,CAACC,OAAO,CAAC,6BAA8B20F,GACjDA,EAA2B10F,OAAO,CAAG,CACjC,aACA,KACA,YACA,eACA,gBACA,aACA,QACA,kBACA,uBACA,yBACA,iBACA,oBACH,E,+HCbDF,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,aAAc,CAC/B,OACA,aACA,QACA,WACA,eACA,kBACA,aACA,oBACA,iBACA,mBACA,SAAUnC,CAAI,CAAEW,CAAU,CAAEpK,CAAK,CAAE9F,CAAQ,CAAE+F,CAAY,CAAEyJ,CAAe,CAAEvJ,CAAU,CAAEytF,CAAiB,CAAEb,CAAc,CAAEjwE,CAAgB,EACvI,MAAO,CACHvf,SCzBG,g6VD0BHoM,SAAU,IACVC,MAAO,CACHggD,SAAU,WACVikC,WAAY,SACZlW,UAAW,YACXmW,iBAAkB,kBAClBC,sBAAuB,qBAC3B,EAEAvwF,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAO+J,KAAK,CAAG,KACf/J,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAC7DgV,EAAOsd,YAAY,CAAG,GACtBtd,EAAO8gB,YAAY,CAAG,EAAE,CACxB9gB,EAAOq9E,UAAU,CAAG,GACpBr9E,EAAOs9E,kBAAkB,CAAGt9E,KAAiC/Y,IAAjC+Y,EAAOm9E,qBAAqB,EAAkBn9E,EAAOm9E,qBAAqB,CACtGn9E,EAAOu9E,aAAa,CAAG,CAAC,CAACluF,EAAaL,SAAS,CAC/CgR,EAAOolB,SAAS,CAAGC,EAAAA,CAEnBrlB,CAAAA,EAAOw9E,kBAAkB,CAAGrvE,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,+BAA+B,CAAC,EAAE,EAE9GpO,EAAOy9E,WAAW,CAAG,GAErBz9E,EAAO09E,iBAAiB,CAAG,WACnB19E,EAAOw9E,kBAAkB,CAAC,EAAE,EAAIx9E,EAAOw9E,kBAAkB,CAAC,EAAE,CAACG,WAAW,CAAG,KAAO39E,EAAOw9E,kBAAkB,CAAC,EAAE,CAACG,WAAW,CAAG,KAC7H39E,EAAOw9E,kBAAkB,CAAC9vE,QAAQ,CAAC,gBACnC1N,EAAOw9E,kBAAkB,CAAC/vE,WAAW,CAAC,sBAC/BzN,EAAOw9E,kBAAkB,CAAC,EAAE,EAAIx9E,EAAOw9E,kBAAkB,CAAC,EAAE,CAACG,WAAW,CAAG,KAClF39E,EAAOw9E,kBAAkB,CAAC9vE,QAAQ,CAAC,qBACnC1N,EAAOw9E,kBAAkB,CAAC/vE,WAAW,CAAC,kBAEtCzN,EAAOw9E,kBAAkB,CAAC/vE,WAAW,CAAC,gBACtCzN,EAAOw9E,kBAAkB,CAAC/vE,WAAW,CAAC,qBAE9C,EAEAzN,EAAO49E,kBAAkB,CAAGpkF,EAAWoG,GAAG,CAAC,iBAAkBI,EAAO09E,iBAAiB,EAErF19E,EAAO6M,QAAQ,CAAG,CACdgxE,KAAM,CACFjjF,iBAAkBoF,EAAOs9E,kBAAkB,CACrCt9E,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,mDACtCuU,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,gDAChD,EACAqhB,OAAQ,CACJgxE,MAAOjlF,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,gCAC9Eo+E,OAAQllF,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,gCACnF,CACJ,EAIAK,EAAO8hB,cAAc,CAAG,CACpB,CACI7zB,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,2CAC7CjI,MAAO,CAAC,eAAgB,QAAQ,CAChC86B,QAAS,GACT0/D,KAAM,UACV,EACA,CACI/vF,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,0CAC7CjI,MAAO,CAAC,eAAgB,QAAQ,CAChC86B,QAAS,GACT0/D,KAAM,UACV,EACA,CACI/vF,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,0CAC7CjI,MAAO,CAAC,UAAW,QAAQ,CAC3B86B,QAAS,GACT0/D,KAAM,UACV,EACA,CACI/vF,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,yCAC7CjI,MAAO,CAAC,UAAW,QAAQ,CAC3B86B,QAAS,GACT0/D,KAAM,UACV,EACA,CACI/vF,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,kCAC7CjI,MAAO,CAAC,QAAS,UAAU,CAC3B86B,QAAS,GACT0/D,KAAM,OACV,EACA,CACI/vF,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,mCAC7CjI,MAAO,CAAC,QAAS,UAAU,CAC3B86B,QAAS,GACT0/D,KAAM,OACV,EACH,CACGh+E,EAAOs9E,kBAAkB,EACzBt9E,EAAO8hB,cAAc,CAAC/4B,IAAI,CACtB,CACIkF,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,kCAC7CjI,MAAO,CAAC,QAAS,UAAU,CAC3B86B,QAAS,GACT2/D,MAAOj+E,EAAO6M,QAAQ,CAACC,MAAM,CAACgxE,KAAK,EAEvC,CACI7vF,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,mCAC7CjI,MAAO,CAAC,QAAS,UAAU,CAC3B86B,QAAS,GACT2/D,MAAOj+E,EAAO6M,QAAQ,CAACC,MAAM,CAACgxE,KAAK,EAEvC,CACI7vF,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,mCAC7CjI,MAAO,CAAC,SAAU,QAAQ,CAC1B86B,QAAS,GACT2/D,MAAOj+E,EAAO6M,QAAQ,CAACC,MAAM,CAACixE,MAAM,EAExC,CACI9vF,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,oCAC7CjI,MAAO,CAAC,SAAU,QAAQ,CAC1B86B,QAAS,GACT2/D,MAAOj+E,EAAO6M,QAAQ,CAACC,MAAM,CAACixE,MAAM,GAMhD,IAAIG,EAAsB,CACtBC,YAAa,SACjB,EAEIC,EAAe,WACf,GAAIp+E,EAAO+J,KAAK,CAACwpB,YAAY,CAACjvC,MAAM,CAAE,CAClC,IAAI+5F,EAAuBr+E,EAAO+J,KAAK,CAACwpB,YAAY,CAACrgB,KAAK,CAAC,CAAEsgB,IAAK,WAAY,EAAE,CAAC,EAAE,CAC/E8qD,EAA0Bt+E,EAAO+J,KAAK,CAACwpB,YAAY,CAACrgB,KAAK,CAAC,CAAEsgB,IAAK,cAAe,EAAE,CAAC,EAAE,CAoBzF,GAjBI,CAAC6qD,GACDA,CAAAA,EAAuBr+E,EAAO+J,KAAK,CAACwpB,YAAY,CAACrgB,KAAK,CAAC,CAAEsgB,IAAK,WAAY,EAAE,CAAC,EAAE,GACnD6qD,EAAqB5qD,KAAK,EAClD4qD,CAAAA,EAAqB5qD,KAAK,CAAGyqD,CAAmB,CAACG,EAAqB5qD,KAAK,CAAC,EAIhF6qD,EAEAA,EAAwB7qD,KAAK,CAAG,CAAC,CAC5B,kBAAO6qD,EAAwB7qD,KAAK,EAAiB6qD,SAAAA,EAAwB7qD,KAAK,CAAC34B,WAAW,IAC/FwjF,CAAiC,GAAjCA,EAAwB7qD,KAAK,EAIjC6qD,EAA0B,CAAE7qD,MAAO,EAAM,EAEzC4qD,EAAsB,CACtB,IAAIE,EAAWF,EAAqB5qD,KAAK,CACxB,mBAAb8qD,GACAA,CAAAA,EAAW,OAAM,EAGrB,IAAK,IADDlgE,EAAgBre,EAAO8hB,cAAc,CAAC,EAAE,CACnC36B,EAAI,EAAGA,EAAI6Y,EAAO8hB,cAAc,CAACx9B,MAAM,CAAE6C,IAE9C,GAAI6Y,EAAO8hB,cAAc,CAAC36B,EAAE,CAAC3D,KAAK,CAAC,EAAE,EAAI+6F,GAAYv+E,EAAO8hB,cAAc,CAAC36B,EAAE,CAACm3B,OAAO,EAAIggE,EAAwB7qD,KAAK,CAAE,CACpHpV,EAAgBre,EAAO8hB,cAAc,CAAC36B,EAAE,CACxC,KACJ,CAEJ6Y,EAAOme,gBAAgB,CAACE,EAC5B,CACJ,CACKre,EAAOqe,aAAa,EACrBre,EAAOme,gBAAgB,CAACne,EAAO8hB,cAAc,CAAC,EAAE,CAAE,GAE1D,CAEA9hB,CAAAA,EAAOme,gBAAgB,CAAG,SAAUC,CAAa,CAAEogE,CAAW,EACtDx+E,EAAOqe,aAAa,GAAKD,EAAc56B,KAAK,EAAIwc,EAAOsd,YAAY,GAAKc,EAAcE,OAAO,GAC7Fte,EAAOqe,aAAa,CAAGD,EAAc56B,KAAK,CAC1Cwc,EAAOye,oBAAoB,CAAGL,EAAcnwB,KAAK,CACjD+R,EAAOsd,YAAY,CAAGc,EAAcE,OAAO,CAEtCkgE,GACDx+E,EAAO4N,KAAK,CAAC,yBAA0BwQ,GAGnD,EACApe,EAAOod,WAAW,CAAG,SAAUU,CAAI,EAE/B,OADA9d,EAAOqa,gBAAgB,CAAGra,EAAOqe,aAAa,CAAC,EAAE,CAC1CP,CAAI,CAAC9d,EAAOqe,aAAa,CAAC,EAAE,CAAC,EAExCre,EAAOqd,aAAa,CAAG,SAAUS,CAAI,EACjC,OAAOA,CAAI,CAAC9d,EAAOqe,aAAa,CAAC,EAAE,CAAC,EAIxCre,EAAOy+E,UAAU,CAAG,SAAUC,CAAW,EACrC1+E,EAAO2c,cAAc,CAAG,GACxB,IAAIh1B,EAAU,KACd,GAAI,CAACqY,EAAOi9E,UAAU,EAAIyB,EAAa,CACnC,IAAI5uF,EAAS,CACT,CAAE5L,IAAK,UAAWV,MAAOwc,EAAOg5C,QAAQ,EACxC,CAAE90D,IAAK,qBAAsBV,MAAOka,EAAAA,CAAeA,CAACk/E,WAAW,CAAC+B,IAAI,EACpE,CAAEz6F,IAAK,eAAgBV,MAAO6L,EAAaJ,YAAY,EAC1D,CACDtH,EAAUq1F,EAAkB4B,aAAa,CAAC9uF,GAAQrM,IAAI,CAAC,SAAU0M,CAAQ,EAErE,OADA6P,EAAO+J,KAAK,CAAG5Z,EAAShI,IAAI,CAACupC,KAAK,CAC3BpoC,EAASu1F,EACpB,EACJ,MACI7+E,EAAO+J,KAAK,CAAG/J,EAAOi9E,UAAU,CAChCt1F,EAAU2B,EAASu1F,GAGvBl3F,EAAQlE,IAAI,CAAC,WACTuc,EAAO4N,KAAK,CAAC,uBAAwB,GACzC,EACJ,EAEA5N,EAAO8+E,sBAAsB,CAAG,WAC5BtlF,EAAWK,UAAU,CAAC,yBAA0B,CAC5CqB,MAAO6jF,EAAAA,CAAeA,CAACC,KAAK,CAACC,mBAAmB,CAChDhqF,GAAI+K,EAAOg5C,QAAQ,CACnBkmC,KAAM,GACNC,yBAA0B,GAC1BC,kBAAmBp/E,EAAO+J,KAAK,CAC/BthB,SAAU0lB,QAAQ4C,IAAI,EAE9B,EAEA,IAAI8tE,EAAkB,WACd7+E,EAAOs9E,kBAAkB,GACzBt9E,EAAOq/E,WAAW,CAAG,EACrBr/E,EAAOs/E,UAAU,CAAG,EACpBt/E,EAAOu/E,YAAY,CAAG,GAG1Bv/E,EAAO+J,KAAK,CAAC+zD,KAAK,CAACl4E,OAAO,CAAC,SAAUk4B,CAAI,EACrCA,EAAKswC,OAAO,CAAGliD,EAAiBquD,aAAa,CAACz8C,EAAKswC,OAAO,EAC1DtwC,EAAKhN,YAAY,CAAG5E,EAAiBquD,aAAa,CAACz8C,EAAKhN,YAAY,EACpE,IAAIvc,EAAMhF,EAAW0uB,iBAAiB,CAACH,EAAKI,OAAO,CAAEle,EAAO+mE,SAAS,CAAG,OAAS9/E,KAAAA,EAAW,KAAM,KAAMoI,EAAaJ,YAAY,EAC7HiU,EAAYi5E,EAAeqD,mBAAmB,EAClD1hE,CAAAA,EAAKvpB,GAAG,CAAGhF,EAAWoB,aAAa,CAAC4D,EAAK,CAAC,CAAErQ,IAAK,YAAaV,MAAO0f,CAAU,EAAE,EACjFu8E,EAAyB3hE,EAC7B,GAEA4hE,IACA1/E,EAAO8gB,YAAY,CAAG9gB,EAAO+J,KAAK,CAAC+zD,KAAK,CACxCsgB,IACAuB,IAEA3/E,EAAO2c,cAAc,CAAG,EAC5B,EAEIgjE,EAA0B,WAC1B3/E,EAAO6M,QAAQ,CAACgxE,IAAI,CAAC+B,SAAS,CAAG5/E,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,kCAAmC,CACtG2B,MAAO4S,EAAO8gB,YAAY,CAACx8B,MAAM,CACjCgP,SAAU0M,EAAO6M,QAAQ,CAACgxE,IAAI,CAACjjF,gBAAgB,GAGnDoF,EAAO6M,QAAQ,CAACgxE,IAAI,CAACgC,eAAe,CAAG7/E,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,sCAAuC,CAChH6H,SAAU0M,EAAO6M,QAAQ,CAACgxE,IAAI,CAACjjF,gBAAgB,CAC/CklF,SAAU9/E,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,+CAAgD,CAAE2B,MAAO4S,EAAO+J,KAAK,CAAC8zD,gBAAgB,CAACv5E,MAAM,GAC7Io5B,OAAQ1d,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,6CAA8C,CAAE2B,MAAO4S,EAAO8gB,YAAY,CAACx8B,MAAM,EACnI,GAEA0b,EAAO6M,QAAQ,CAACgxE,IAAI,CAACkC,WAAW,CAAG//E,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,2BAA4B,CAAE2B,MAAO4S,EAAOs/E,UAAU,GAC/Ht/E,EAAO6M,QAAQ,CAACgxE,IAAI,CAACmC,UAAU,CAAGhgF,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,6BAA8B,CAAE2B,MAAO4S,EAAOu/E,YAAY,GAClIv/E,EAAO6M,QAAQ,CAACgxE,IAAI,CAACoC,gBAAgB,CAAGjgF,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,2CAA4C,CACtHqyF,MAAO99E,EAAOkgF,cAAc,CAC5BC,KAAMngF,EAAOogF,gBAAgB,GAEjCpgF,EAAO6M,QAAQ,CAACgxE,IAAI,CAACwC,YAAY,CAAGrgF,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,4BAA6B,CAAE2B,MAAO4S,EAAOq/E,WAAW,GAElIr/E,EAAO6M,QAAQ,CAACgxE,IAAI,CAACyC,eAAe,CAAGtgF,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,2BAA4B,CAAE2B,MAAO4S,EAAOugF,cAAc,GACvIvgF,EAAO6M,QAAQ,CAACgxE,IAAI,CAAC2C,cAAc,CAAGxgF,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,6BAA8B,CAAE2B,MAAO4S,EAAOygF,gBAAgB,GAC1IzgF,EAAO6M,QAAQ,CAACgxE,IAAI,CAAC6C,oBAAoB,CAAG1gF,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,2CAA4C,CAC1HqyF,MAAO99E,EAAO2gF,kBAAkB,CAChCR,KAAMngF,EAAO4gF,oBAAoB,GAErC5gF,EAAO6M,QAAQ,CAACgxE,IAAI,CAACgD,gBAAgB,CAAG7gF,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,4BAA6B,CAAE2B,MAAO4S,EAAO8gF,eAAe,EAC9I,EAEIrB,EAA2B,SAAU3hE,CAAI,EACzC,GAAI9d,EAAOs9E,kBAAkB,EAAIx/D,EAAKyV,YAAY,CAAE,CAChD,IAAIwtD,EAAUjjE,EAAKyV,YAAY,CAACrgB,KAAK,CAAC,CAAEsgB,IAAK,eAAgB,EAAE,CAAC,EAAE,CAC7DutD,GAAYA,EAAQttD,KAAK,EAC1BstD,CAAAA,EAAU,CAAEttD,MAAO,CAAE,GAGzB,IAAIsqD,EAASjgE,EAAKyV,YAAY,CAACrgB,KAAK,CAAC,CAAEsgB,IAAK,WAAY,EAAE,CAAC,EAAE,CACxDuqD,GAAWA,EAAOtqD,KAAK,EACxBsqD,CAAAA,EAAS,CAAEtqD,MAAO,CAAE,GAGxB3V,EAAK03D,MAAM,CAAG58D,SAASmlE,EAAOtqD,KAAK,CAAE,IACrC3V,EAAKk1D,KAAK,CAAG3uC,KAAKC,KAAK,CAACy8C,EAAQttD,KAAK,CAAG,IACxC3V,EAAKkjE,SAAS,CAAGljE,IAAAA,EAAKk1D,KAAK,CAACrgE,QAAQ,GAAGruB,MAAM,CAAS,IAAMw5B,EAAKk1D,KAAK,CAAGl1D,EAAKk1D,KAAK,CACnFl1D,EAAKo1D,OAAO,CAAG6N,EAAQttD,KAAK,CAAG,GAC/B3V,EAAKmjE,WAAW,CAAGnjE,IAAAA,EAAKo1D,OAAO,CAACvgE,QAAQ,GAAGruB,MAAM,CAAS,IAAMw5B,EAAKo1D,OAAO,CAAGp1D,EAAKo1D,OAAO,CAE3FlzE,EAAOq/E,WAAW,EAAIzmE,SAASkF,EAAK03D,MAAM,CAAE,IAC5Cx1E,EAAOu/E,YAAY,EAAI3mE,SAASmoE,EAAQttD,KAAK,CAAE,GACnD,CACJ,EAEIisD,EAA+B,WAEC,GAA5B1/E,EAAO+J,KAAK,CAAC6yD,WAAW,EAAS58D,GAAAA,EAAO+J,KAAK,CAAC8yD,YAAY,EAC1D78D,CAAAA,EAAO+J,KAAK,CAAG/J,EAAOi9E,UAAU,EAGpCj9E,EAAOkhF,kBAAkB,CAAGlhF,EAAOu/E,YAAY,CAC/Cv/E,EAAOs/E,UAAU,CAAGj7C,KAAKC,KAAK,CAACtkC,EAAOu/E,YAAY,CAAG,IACrDv/E,EAAOu/E,YAAY,CAAGv/E,EAAOu/E,YAAY,CAAG,GAC5Cv/E,EAAOkgF,cAAc,CAAGlgF,IAAAA,EAAOs/E,UAAU,CAAC3sE,QAAQ,GAAGruB,MAAM,CAAS,IAAM0b,EAAOs/E,UAAU,CAAGt/E,EAAOs/E,UAAU,CAC/Gt/E,EAAOogF,gBAAgB,CAAGpgF,IAAAA,EAAOu/E,YAAY,CAAC5sE,QAAQ,GAAGruB,MAAM,CAAS,IAAM0b,EAAOu/E,YAAY,CAAGv/E,EAAOu/E,YAAY,CACvHv/E,EAAOugF,cAAc,CAAGl8C,KAAKsoC,GAAG,CAAC,EAAGtoC,KAAKC,KAAK,CAACtkC,EAAO+J,KAAK,CAAC6yD,WAAW,CAAG58D,EAAOkhF,kBAAkB,CAAG,KACtGlhF,EAAOygF,gBAAgB,CAAGzgF,EAAOkhF,kBAAkB,CAAGlhF,GAAAA,EAAO+J,KAAK,CAAC6yD,WAAW,EAAS58D,EAAOkhF,kBAAkB,CAAG,IAAO,EAAI,EAAI,GAAMlhF,EAAOkhF,kBAAkB,CAAG,GACpKlhF,EAAO2gF,kBAAkB,CAAG3gF,IAAAA,EAAOugF,cAAc,CAAC5tE,QAAQ,GAAGruB,MAAM,CAAS,IAAM0b,EAAOugF,cAAc,CAAGvgF,EAAOugF,cAAc,CAC/HvgF,EAAO4gF,oBAAoB,CAAG5gF,IAAAA,EAAOygF,gBAAgB,CAAC9tE,QAAQ,GAAGruB,MAAM,CAAS,IAAM0b,EAAOygF,gBAAgB,CAAGzgF,EAAOygF,gBAAgB,CACvIzgF,EAAO8gF,eAAe,CAAGz8C,KAAKsoC,GAAG,CAAC,EAAG3sE,EAAO+J,KAAK,CAAC8yD,YAAY,CAAG78D,EAAOq/E,WAAW,EAEnFr/E,EAAOmhF,UAAU,CAAG,WAChBnhF,EAAOkhF,kBAAkB,CAAG,GAC5BlhF,CAAAA,EAAOmhF,UAAU,CAAGnhF,EAAOkhF,kBAAkB,EAAIlhF,GAAAA,EAAO+J,KAAK,CAAC6yD,WAAW,CAAQ,WAAa,SAAQ,EAE1G58D,EAAOohF,WAAW,CAAG,WACjBphF,EAAOq/E,WAAW,CAAG,GACrBr/E,CAAAA,EAAOohF,WAAW,CAAGphF,EAAOq/E,WAAW,EAAIr/E,EAAO+J,KAAK,CAAC8yD,YAAY,CAAG,WAAa,SAAQ,EAGhGrjE,EAAWK,UAAU,CAAC,mBAAoB,CACtC0mF,eAAgBvgF,EAAOugF,cAAc,CACrCE,iBAAkBzgF,EAAOygF,gBAAgB,CACzCK,gBAAiB9gF,EAAO8gF,eAAe,CACvCxB,WAAYt/E,EAAOs/E,UAAU,CAC7BC,aAAcv/E,EAAOu/E,YAAY,CACjCF,YAAar/E,EAAOq/E,WAAW,GAGnCM,GACJ,CAEK3/E,CAAAA,EAAOwwB,aAAa,EACrBxwB,CAAAA,EAAOwwB,aAAa,CAAG,SAAUv7B,CAAE,CAAEiG,CAAK,CAAEyQ,CAAU,EAClDzQ,EAAQ,KAAiB,IAAVA,EAAwBA,EAAQ,aAC/C1B,EAAWK,UAAU,CAAC,yBAA0B,CAC5CqB,MAAOA,EACPnM,QAASkG,EACT0W,WAAYA,CAChB,EACJ,GAGJ3L,EAAOJ,GAAG,CAAC,uBAAwB,IAAMI,EAAOy+E,UAAU,CAAC,IAqB/D,EACH,CAEDvwE,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EAIjC7tB,EAAQu5B,EAAE,CAAC,WAAY,WACnBzmB,EAAMsG,QAAQ,GACdtG,EAAM4kF,kBAAkB,EAC5B,GAEA5kF,EAAMixB,IAAI,MAEN3gC,EAAS,WACL0P,EAAMylF,UAAU,GAChBzlF,EAAM0kF,iBAAiB,EAC3B,EAAG,IAIX,CACJ,CACJ,EACH,C,+FE9ZDp2F,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,oBAAqB,CACpC,QACA,eACA,kBACA,aACA,aACA,OACA,uBACA,SAAU3sB,CAAK,CAAEC,CAAY,CAAEyJ,CAAe,CAAEvJ,CAAU,CAAEglD,CAAU,CAAExT,CAAI,CAAE5xC,CAAoB,EAC9F,MAAO,CACHyvF,cAAe,SAAUyC,CAAU,EAC/B,IAAIvxF,EAAS,CAAC,EASd,OAPAuxF,EAAWz7F,OAAO,CAAC,SAAU07F,CAAK,EAC9BxxF,CAAM,CAACwxF,EAAMp9F,GAAG,CAAC,CAAGo9F,EAAM99F,KAAK,GAE/B6L,EAAaL,SAAS,EAAIc,KAAqB7I,IAArB6I,EAAOd,SAAS,EAC1Cc,CAAAA,EAAOd,SAAS,CAAGK,EAAaL,SAAS,EAGtCG,EAAqB2F,0BAA0B,CAAChF,EAC3D,EAEAyxF,iCAAkC,SAAUtsF,CAAE,EAC1C,IAAInF,EAAS,CAAC,CAAE5L,IAAK,UAAWV,MAAOyR,CAAG,EAAE,CAQ5C,OAPI5F,EAAaL,SAAS,EACtBc,EAAO/G,IAAI,CAAC,CAAE7E,IAAK,YAAaV,MAAO6L,EAAaL,SAAS,GAG7DK,EAAaJ,YAAY,EACzBa,EAAO/G,IAAI,CAAC,CAAE7E,IAAK,eAAgBV,MAAO6L,EAAaJ,YAAY,GAEhEG,EAAMiB,GAAG,CAACd,EAAWoB,aAAa,CAACmI,EAAgByC,YAAY,CAAG,mCAAoCzL,GACjH,EAEA0xF,eAAgB,SAAUr5F,CAAI,EAC1B,GAAIA,EAKA,OAHIA,EAAKshB,QAAQ,EAAIyuB,MAAM/vC,EAAKshB,QAAQ,GACpCthB,CAAAA,EAAKshB,QAAQ,CAAG,EAAC,EAEdla,EAAW6oC,YAAY,CAACt/B,EAAgByC,YAAY,CAAG,wBAAyB,CAAEtC,MAAO9Q,CAAK,EAI7G,EAEAs5F,oCAAoC/jE,CAAM,CAAE8vC,CAAa,EACrD,IAAMk0B,EAAiBl0B,EAAcyQ,wBAAwB,EAAI,EAAE,CAC7Dgf,EAAa,IAAI,CAAC0E,gCAAgC,CAACjkE,EAAQ8vC,GAEjE,OADAyvB,EAAWhf,wBAAwB,CAAGgf,EAAWhf,wBAAwB,CAACl/C,MAAM,CAAC2iE,GAC1EzE,CACX,EAEA0E,iCAAkC,SAAUjkE,CAAM,CAAE8vC,CAAa,EAC7D,IAAI9zB,EAAMhc,EAAO0yC,uBAAuB,CAAC,MAMzC,OALI5C,EACAA,EAAcyQ,wBAAwB,CAAGvkC,EAEzC8zB,EAAgB,IAAI,CAACo0B,4BAA4B,CAACloD,GAE/C8zB,CACX,EAEAo0B,6BAA8B,SAAUloD,CAAG,EACvC,OAAO6a,EAAWsJ,MAAM,CAAC,CACrB36B,SAAU,kBACV86C,iBAAkB,GAClBC,yBAA0BvkC,GAAO,EAAE,CACnC8gC,UAAWz5B,EAAK8gD,KAAK,EACzB,EACJ,EAEAC,qBAAsB,SAAU/yF,CAAO,CAAE+rB,CAAY,EAEjD,IAAMvmB,EAAMhF,EAAWoB,aAAa,CAACmI,EAAgByC,YAAY,CAAG,kCADrD,CAAC,CAAErX,IAAK,UAAWV,MAAOuL,CAAQ,EAAE,EAEnD,OAAOQ,EAAW6oC,YAAY,CAAC7jC,EAAKumB,EACxC,CACJ,CACJ,EACH,C,iCCnFGinE,EAA6B5zE,QAAQpgB,MAAM,CAAC,uBAAwB,CAAC,KAAK,EAW9Ei0F,EAAAA,CAAyBA,CAACnkC,MAAM,CAACkkC,EAPhB,CACb,CAAE79F,IAAK,oBAAqBV,MAAO,QAAS,EAC5C,CAAEU,IAAK,yBAA0BV,MAAO,aAAc,EACtD,CAAEU,IAAK,gBAAiBV,MAAO,IAAK,EACpC,CAAEU,IAAK,sBAAuBV,MAAO,UAAW,EACnD,C,kBCRD,SAASy+F,EAA0BC,CAAY,EAAG,C,iBAMlDD,EAA0Bh/F,SAAS,CAACk/F,gBAAgB,CAAG,SAAUC,CAAQ,CAAEC,CAAU,EACjFA,EAAWz8F,OAAO,CACd,UAAU08F,CAAQ,EACdF,EAASpnF,SAAS,CAACsnF,EAASp+F,GAAG,CAAE,IAAI,CAACq+F,eAAe,CAAC9gG,IAAI,CAAC,IAAI,CAAE6gG,EAASp+F,GAAG,CAAEo+F,EAAS9+F,KAAK,EACjG,GAAE/B,IAAI,CAAC,IAAI,EAEnB,EAEAwgG,EAA0Bh/F,SAAS,CAACs/F,eAAe,CAAG,SAAUC,CAAa,CAAEC,CAAiB,EAC5F,MAAO,CACH1pF,SAAU,IACVmV,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjCA,EAAMN,QAAQ,CAAC+uE,EAAe,SAAU9uE,CAAQ,EACxCA,EACAxtB,CAAO,CAAC,EAAE,CAACb,YAAY,CAACo9F,EAAmB/uE,GAE3CxtB,CAAO,CAAC,EAAE,CAACH,eAAe,CAAC08F,EAEnC,EACJ,CACJ,CACJ,EAEA,IAAMC,EAAgB,CAMlB7kC,OAAQ,SAAUukC,CAAQ,CAAEC,CAAU,EAClC,IAAItmE,EAAU,IAAIkmE,EAElB,OADAlmE,EAAQomE,gBAAgB,CAACC,EAAUC,GAC5BtmE,CACX,CACJ,C,kCC9CA,IAAI4mE,EAAY,CACZC,IAAK,MACLC,OAAQ,SACRC,KAAM,OACNC,OAAQ,SACRpE,KAAM,OACNqE,OAAQ,SACRC,QAAS,SACb,C,mCCRA,IAAIN,EAAY,CACZrxF,eAAgB,CACZ4xF,iBAAkB,mBAClBC,MAAO,QACPC,QAAS,UACTC,UAAW,YACXC,YAAa,cACb5xF,SAAU,WACV6xF,mBAAoB,qBACpBC,gBAAiB,kBACjBC,iBAAkB,mBAClBC,WAAY,aACZC,eAAgB,gBAChBpyF,mBAAoB,mBACpBC,mBAAoB,mBACpBC,qBAAsB,oBAC1B,EACAmyF,oBAAqB,CACjBJ,gBAAiB,CACbK,mBAAoB,qBACpBC,uBAAwB,yBACxBC,oBAAqB,sBACrBC,kBAAmB,mBACvB,EACAtyF,SAAU,CACNuyF,UAAW,YACXC,WAAY,YAChB,CACJ,EACAC,kBAAmB,CACfC,SAAU,WACVC,SAAU,UACd,EACAC,iBAAkB,CACdnB,MAAO,CACHoB,WAAY,aACZxN,OAAQ,QACZ,CACJ,EACAyN,iBAAkB,CACdC,oBAAqB,CACzB,EACAC,eAAgB,CACZC,SAAU,WACVC,WAAY,YAChB,EACAC,iBAAkB,CACdC,eAAgB,gBAChBC,gBAAiB,iBACjBC,aAAc,cACdC,YAAa,YACjB,EACAC,gBAAiB,CACbC,SAAU,WACVC,QAAS,UACTC,SAAU,UACd,CACJ,C,mCCzDA,IAAM1C,EAAY,CACd/F,YAAa,CACT+B,KAAM,OACN2G,MAAO,QACPzI,YAAa,cACb0I,KAAM,OACNC,aAAc,cAClB,EACApoC,QAAS,CACLC,KAAM,OACNkH,UAAW,YACXlrC,QAAS,UACTosE,aAAc,mBAClB,EACA3W,UAAW,CACPG,WAAY,YACZC,cAAe,cACfF,iBAAkB,gBACtB,EACArxE,MAAO,CACHk1B,aAAc,cACdG,KAAM,OACN0yD,aAAc,cACdvzB,WAAY,kBACZz/B,mBAAoB,yBACpBizD,aAAc,eACd3wC,GAAI,KACJv4B,KAAM,OACNw4B,KAAM,OACNC,cAAe,eACf7hB,KAAM,OACNO,iBAAkB,kBAClB/1B,SAAU,WACV+zB,cAAe,eACf9sB,SAAU,WACVuvB,iBAAkB,kBAClBz2B,kBAAmB,kBACvB,EACAgoF,UAAW,CACPC,SAAU,+BACVC,YAAa,kCACbC,OAAQ,yBACRC,SAAU,oBACVC,SAAU,WACVC,WAAY,iCACZC,WAAY,aACZC,SAAU,WACVC,MAAO,wBACPC,SAAU,2BACVC,IAAK,eACLC,mBAAoB,oCACpBC,KAAM,OACNC,aAAc,wBACdC,YAAa,8BACbC,cAAe,gCACfC,QAAS,8BACTC,WAAY,aACZC,KAAM,2BACNC,YAAa,uBACbC,UAAW,YACXC,OAAQ,SACRC,KAAM,gBACNC,UAAW,WACf,EACA3qE,KAAM,CACF9e,MAAO,CACHgN,MAAO,QACP08E,MAAO,QACPC,MAAO,QACPf,IAAK,iBACT,CACJ,EACA77E,WAAY,CACR68E,MAAO,QACPC,QAAS,UACTC,QAAS,UACTC,UAAW,YACXC,MAAO,QACP3yC,GAAI,KACJ4yC,YAAa,aACbj9E,MAAO,QACP08E,MAAO,QACPC,MAAO,OACX,EACAzhF,cAAe,CACXC,UAAW,YACXC,mBAAoB,mBACxB,EACA8hF,eAAgB,CACZC,aAAc,eACdC,QAAS,UACTC,SAAU,WACVC,mBAAoB,oBACpBC,kBAAmB,mBACnBh9D,QAAS,QACb,EACAi9D,mBAAoB,CAAC,eAAgB,UAAW,WAAY,oBAAoB,CAChFC,yBAA0B,CACtBC,cAAe,CAAC,QAAS,YAAa,YAAY,CAClDC,WAAY,aACZC,MAAO,QACPC,UAAW,YACX10E,SAAU,WACV20E,IAAK,CAAC,QAAS,YAAa,YAAa,WAAW,EAExDC,cAAe,CACXC,YAAa,aACbC,kBAAmB,iBACvB,EACAC,gBAAiB,CACbC,cAAe,eACfC,oBAAqB,qBACrBC,gBAAiB,gBACrB,CACJ,C,mCClHA,IAAMrG,EAAY,CACdhlF,MAAO,CACHspF,UAAW,YACXgC,qBAAsB,qBACtB30B,oBAAqB,oBACzB,CACJ,C,iCCNA,IAAMouB,EAAgB,CAClBwG,QAAS,UACTC,kBAAmB,oBACnBC,oBAAqB,sBACrBC,yBAA0B,0BAC9B,C,mCCLA,IAAM1G,EAAY,CACd2G,WAAY,YACZC,SAAU,SACd,C,mCCHA,IAAM5G,EAAY,CACd6G,QAAS,CACLC,eAAgB,gBAChBC,cAAe,cACnB,CACJ,C,mCCLA,IAAM/G,EAAY,CACdgH,SAAU,CACNC,MAAO,GACX,CACJ,C,mCCJA,IAAMjH,EAAY,CACdkH,cAAe,CACXC,eAAgB,CACZC,IAAK,EACLC,IAAK,IACLC,gBAAiB,UACjBC,aAAc,EACdC,aAAc,GACdC,YAAa,GACbC,KAAM,EACNC,aAAc,CACVC,OAAQ,SACRC,KAAM,MACV,CACJ,EACAC,iBAAkB,SACtB,EACAC,WAAY,CACR/sF,MAAO,CACHgtF,QAAS,UACTvG,SAAU,UACd,CACJ,EACAwG,OAAQ,CACJC,QAAS,UACTC,SAAU,WACVC,SAAU,UACd,EACAC,MAAO,CACH5E,SAAU,WACV10F,SAAU,WACVu5F,KAAM,MACV,EACAC,yBAA0B,CACtBC,SAAU,aACVC,YAAa,cACbC,YAAa,gBACbC,eAAgB,iBAChBC,YAAa,cACbC,eAAgB,gBACpB,EACAC,cAAe,CACXC,gCAAiC,SACjCC,uBAAwB,UAC5B,CACJ,C,mCC7CO,IAAMvmF,EAAa,CACtBwD,eAAgB,iBAChB6nD,SAAU,WACV5nD,YAAa,cACbxD,UAAW,YACX2D,UAAW,YACXrD,kBAAmB,mBACvB,C,mCCPA,IAAMg9E,EAAY,CACd3D,MAAO,CACH4M,kBAAmB,8BACnBC,QAAS,UACTC,SAAU,WACVC,YAAa,cACbC,WAAY,aACZ/M,oBAAqB,sBACrBgN,eAAgB,iBAChBC,eAAgB,iBAChBC,cAAe,gBACfC,iBAAkB,mBAClBC,wBAAyB,0BACzBC,yBAA0B,2BAC1BC,YAAa,cACbC,aAAc,eACdC,aAAc,eACdC,iBAAkB,mBAClBC,iBAAkB,mBAClBC,sBAAuB,uBAC3B,CACJ,C,mCCrBO,IAAMC,EAA6B,CACtCn7F,SAAU,WACVqnB,MAAO,QACPqqE,QAAS,UACT0J,QAAS,UACT1G,SAAU,WACVuE,QAAS,UACToC,iBAAkB,kBACtB,C,mCCRO,IAAMjB,EAAW,CACpBkB,YAAa,CACTj0E,MAAO,aACPE,SAAU,iBACVg0E,mBAAoB,8BACpBhG,UAAW,YACX5pC,KAAM,WACV,CACJ,C,mCCRA,IAAMslC,EAAY,CACduK,WAAY,aACZC,IAAK,MACLC,MAAO,OACX,C,mCCJA,IAAMzK,EAAY,CACd0K,aAAc,GACdC,iBAAkB,8BAClBC,aAAc,+BACdC,YAAa,uCACbC,YAAa,cACbC,WAAY,wCACZC,aAAc,gDACdC,aAAc,4CACdC,YAAa,kDACbC,WAAY,4CACZC,cAAe,oDACfC,cAAe,4CACfC,gBAAiB,oDACjBC,gBAAiB,4CACjBC,eAAgB,mDACpB,C,mCChBA,IAAMxL,EAAY,CACdyL,QAAS,sBACTC,gBAAiB,gBACjBC,wBAAyB,uBACzBC,sBAAuB,qBACvBC,YAAa,YACjB,C,mCCNA,IAAM7L,EAAY,CACd7xD,YAAa,CACT7X,SAAU,WACVF,MAAO,OACX,EACAyN,WAAY,CACRzN,MAAO,QACPE,SAAU,WACVE,UAAW,YACXE,QAAS,UACTvF,SAAU,UACd,EACAD,YAAa,CACTqX,QAAS,cACTnS,MAAO,QACPE,SAAU,WACVE,UAAW,YACXsD,KAAM,OACNpD,QAAS,UACTvF,SAAU,UACd,CACJ,C,mCCrBA,IAAM26E,EAAkB,CACpBpsB,mBAAoB,qBACpBvB,cAAe,gBACfc,aAAc,eACdC,uBAAwB,yBACxBC,uBAAwB,yBACxBC,8BAA+B,gCAC/BlB,6BAA8B,+BAC9BmB,cAAe,gBACfC,uBAAwB,yBACxBC,4BAA6B,8BAC7BoC,2BAA4B,0BAChC,C,mCCZA,IAAIv2D,EAAO,OACP2gF,EAAU,UACVC,EAAW,SACX9rD,EAAO,OAEP8/C,EAAY,CACZiM,eAAgB,EAChBhc,MAAO,CACH0G,KAAMvrE,EACN6qE,MAAO,QACPiW,SAAU,WACVC,MAAO,QACP/X,OAAQ4X,EACRlV,QAASiV,EACT7b,MAAO,QACP8G,KAAM92C,EACNmzC,OAAQ,SACR+Y,eAAgB,CAEZhhF,EACA2gF,EACAC,EACA9rD,EACH,CACDmsD,YAAa,CAACN,EAAS7rD,EAAK,CAC5BosD,QAAS,CACLxV,QAAS,CACLyV,aAAc,EAClB,CACJ,CACJ,EACAC,QAAS,CACL7V,KAAM,wCACNG,QAAS,kDACT1C,OAAQ,kCACR4C,KAAM,iCACV,EACAyV,eAAgB,CACZC,aAAc,wCACdC,WAAY,sCACZC,UAAW,wDACXC,OAAQ,yBACR1C,QAAS,qBACb,EACA2C,iBAAkB,kBAClBC,wBAAyB,CAAC,wCAAyC,sCAAuC,wDAAwD,CAClKC,yBAA0B,CAAC,+BAAgC,iCAAkC,iDAAiD,CAC9Ita,MAAO,CACHC,QAAS,UACTsa,OAAQ,SACRC,OAAQ,QACZ,CACJ,C,kCCpDA,IAAMlN,EAAY,CACdjqD,aAAc,GAClB,C,2FCAApxC,EAAAA,CAAUA,CAACC,OAAO,CAAC,cAEnB,WAGI,IAAI,CAACuoG,IAAI,CAIT,SAAclsG,CAAM,CAAEmsG,CAAS,CAAEzwC,CAAI,EACjC,IAAI0wC,EAAYvrG,SAASwrG,WAAW,CAAC,SACrCD,EAAUE,SAAS,CAACH,EAAW,GAAM,IAErCC,EAAUlrG,cAAc,CAAG,YAE3B,GAAErD,IAAI,CAAC,IAAI,EAEXmC,EAAOusG,aAAa,CAACH,EACzB,CACJ,G,+DCNA1oG,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,aAAc,CAC/B,OACA,aACA,WACA,kBACA,mBACA,cACA,uBACA,YACA,mBACA,mBACA,SAAUnC,CAAI,CAAEW,CAAU,CAAElQ,CAAQ,CAAEwP,CAAe,CAAEoT,CAAgB,CAAEkkF,CAAW,CAAEplG,CAAoB,CAAEgpC,CAAS,CAAE0X,CAAgB,CAAE2kD,CAAgB,EAIrJ,IAWIC,EAA2BC,EAX3BC,EAAc/rG,SAASyiC,cAAc,CAAC,oBACtCupE,EAAkBD,EAAcA,EAAY1lB,YAAY,CAAG,EAY/D,OAXA4lB,IAAAA,QAAgB,CAAC,gCAAiC,CAC9CzrF,MAAO,WACHwrF,EAAkBD,EAAcA,EAAY1lB,YAAY,CAAG,CAC/D,EACA6lB,QAAS,WACLF,EAAkBD,EAAcA,EAAY1lB,YAAY,CAAG,CAC/D,CACJ,GAIO,CACH9xE,MAAO,CACH43F,OAAQ,IACRC,WAAY,cACZzjF,QAAS,WACT0jF,QAAS,WACT3iG,MAAO,SACP4iG,qBAAsB,wBACtBC,mBAAoB,IACpBhkB,SAAU,IACVikB,SAAU,YACVC,QAAS,IACb,EACAn4F,SAAU,IACVpM,SCzDG,0iDD0DHC,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAOmxF,SAAS,CAAGA,EAAAA,CAEnB,CAGA,IAAIplB,EAAa,SAAUlpC,CAAI,CAAEuuD,CAAQ,CAAEC,CAAc,EAIrD,IAFA,IAAIjnF,EAAU,EAAE,CAETy4B,EAAOuuD,GAAU,CACpB,IAAIE,EAAY,IAAIl3F,KAAKyoC,GACrB0uD,EACA,CAACD,GAAAA,EAAUE,QAAQ,GAAU,IAAM,EAAC,EAAKF,EAAUE,QAAQ,GAAG7+E,QAAQ,GAAK,IAAO2+E,CAAAA,GAAAA,EAAUG,UAAU,GAAU,IAAM,EAAC,EAAKH,EAAUG,UAAU,GAAG9+E,QAAQ,GAG/JvI,EAAQrhB,IAAI,CAAC,CACTkF,MAAOsjG,UAAAA,EAAwBvmG,EAAqBS,SAAS,CAAC,sBAAwB8lG,EACtF/tG,MAAO8tG,EAAU/4C,OAAO,EAC5B,GAGA1V,EAAK6uD,UAAU,CAAC7uD,EAAK4uD,UAAU,GAAKJ,EACxC,CASA,OALAjnF,EAAQrhB,IAAI,CAAC,CACTkF,MAAOjD,EAAqBS,SAAS,CAAC,wBACtCjI,MAAO4tG,EAAS74C,OAAO,EAC3B,GAEOnuC,CACX,EAEIunF,EAA2B,WAE3B,IAAIN,EAAiB,GACjBO,EAAW,IAAIx3F,KACfg3F,EAAW,IAAIh3F,KAEnB,GAAIwH,EAAOiwF,aAAa,CAAE,CACtB,IAAIC,EAAmBl5E,SAAShX,EAAOiwF,aAAa,CAAE,IAElDC,GAAoB,GACpBT,CAAAA,EAAiBS,CAAe,CAExC,CAUA,OARA9xF,EAAOqxF,cAAc,CAAGA,EAGxBO,EAAS55C,QAAQ,CAAC,EAAGq5C,EAAgB,EAAG,GAGxCD,EAASp5C,QAAQ,CAAC,GAAI,GAAI,EAAG,GAEtB+zB,EAAW6lB,EAAUR,EAAUC,EAC1C,EAEIjnF,EAAU,CACV2nF,KAAM,KACNC,MAAO,KACPjkF,KAAM,KAENkkF,aAAc,KACdC,MAAO,GAGPC,iBAAkB,EAElBC,UAAW,EACXC,SAAU,KACVC,SAAU,KACVC,WAAY,IACZC,iBAAkB,GAClBC,YAAa,EACjB,CAEAzyF,CAAAA,EAAO0yF,sBAAsB,CAAG,SAAUC,CAAQ,EAC9C,GAAI3yF,EAAO4yF,qBAAqB,CAAE,CAC9B,IAAIC,EAAiB3mF,EAAiB4mF,iBAAiB,CAAC9yF,EAAO4yF,qBAAqB,CAAED,EAASlB,UAAU,GAAIkB,EAASnB,QAAQ,IAC9HmB,EAASjB,UAAU,CAACmB,GACpBF,EAASI,UAAU,CAAC,EACxB,CAEA,OAAOJ,CACX,EAEA3yF,EAAO1S,MAAM,CAAG,SAAUgyD,CAAI,EAC1B,IAAIqzC,EAAW,IAAIv4F,KAWnB,OARI4F,EAAOgzF,UAAU,EACjB1zC,CAAAA,EAAK+yC,QAAQ,CAAGnmF,EAAiB+mF,eAAe,CAACN,EAAQ,EAG7DrpG,EAAS,WACLg2D,EAAKvxC,IAAI,CAAG/N,EAAO0yF,sBAAsB,CAACC,EAC9C,EAAG,GAEIrzC,CACX,EAEAt/C,EAAOkzF,sBAAsB,CAAG,WAC5B,IAAIC,EAAW/V,CAAQ,CAAC,EAAE,CAE1B,GAEI,GAAI,CADJ+V,CAAAA,EAAWA,EAAShsE,UAAU,EAE1B,YAECgsE,gBAAAA,EAASC,QAAQ,CAE1B,OAAOD,OAAAA,CACX,EAEAnzF,EAAOiqB,IAAI,CAAG,WAQVjqB,EAAOqzF,WAAW,CAAG,IACrBrzF,EAAOhV,oBAAoB,CAAGA,EAC9BgV,EAAOgzF,UAAU,CAAGpxF,KAAsB3a,IAAtB2a,EAAOoxF,UAAU,CACrChzF,EAAOszF,aAAa,CAAG1xF,KAAuB3a,IAAvB2a,EAAO2xF,WAAW,CACzCvzF,EAAO4yF,qBAAqB,CAAGhxF,CAAAA,KAAAA,EAAOihC,IAAI,EAAWjhC,SAAAA,EAAOihC,IAAI,GAAc8uD,IAC9E3xF,EAAOg+E,IAAI,CAAGp8E,KAAAA,EAAOo8E,IAAI,CACzBh+E,EAAOwzF,aAAa,CAAG5xF,KAAAA,EAAO6xF,YAAY,EAAW7xF,KAAwB3a,IAAxB2a,EAAO6xF,YAAY,CAAiB,GAAK7xF,EAAO6xF,YAAY,CACjHzzF,EAAO0zF,UAAU,CAAG9xF,KAAqB3a,IAArB2a,EAAO+xF,SAAS,CACpC3zF,EAAO4zF,eAAe,CAAGhyF,KAAyB3a,IAAzB2a,EAAOiyF,aAAa,CAE7CzpF,EAAQqoF,WAAW,CAAG,CAAC,CAACzyF,EAAO4yF,qBAAqB,CACpD5yF,EAAOs/C,IAAI,CAAGt/C,EAAO1S,MAAM,CAAC8c,GAC5BpK,EAAO8zF,mBAAmB,CAAG9zF,EAAOkzF,sBAAsB,EAC9D,CACJ,EACH,CAEDhlF,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC,IAAIggF,EAAc,QACdC,EAAoB,YA0GxB,SAASC,IACL3qG,EAAS,WACL8mG,EAAYN,IAAI,CAAC92F,EAAMk7F,QAAQ,CAAC,EAAE,CAAE,qBACxC,EACJ,CA5GAl7F,EAAMm7F,cAAc,CAAG,WACfn7F,EAAMo7F,OAAO,CACbp7F,EAAMq7F,YAAY,GAElBr7F,EAAMs7F,YAAY,EAE1B,EAEAt7F,EAAMi/C,OAAO,CAAG,SAAUlqC,CAAI,EAC1B,IAAIwmF,EAAyBxmF,EAE7B,GAAI,IAAU/U,EAAM06F,UAAU,IAGV,UAAhB,OAAO3lF,GACPA,CAAAA,EAAO,IAAI3T,KAAKA,KAAKo6F,SAAS,CAACzmF,EAAM/U,EAAMq6F,WAAW,EAAC,EAGvD,EAAkB7gB,MAAM,CAACzkE,IAAU/U,EAAM06F,UAAU,GAE5C,CAACxnF,EAAiBsmE,MAAM,CAACzkE,IAAS/U,EAAM06F,UAAU,EACzD3lF,CAAAA,EAAO,IAAG,EAGTA,GACDA,CAAAA,EAAO,IAAI3T,IAAG,EAGlB,IAAIsyE,EAAM1zE,EAAMsmD,IAAI,CAAC+yC,QAAQ,CACzB1lB,EAAM3zE,EAAMsmD,IAAI,CAACgzC,QAAQ,CAEzBpmF,EAAiBsmE,MAAM,CAAC9F,IAAQ3+D,GAAQ2+D,GACxC3+D,EAAO2+D,EACH1zE,EAAM45F,qBAAqB,EAC3B7kF,CAAAA,EAAO/U,EAAMy7F,cAAc,CAAC1mF,EAAM,EAAC,GAEhC7B,EAAiBsmE,MAAM,CAAC7F,IAAQ5+D,GAAQ4+D,IAC/C5+D,EAAO4+D,EACH3zE,EAAM45F,qBAAqB,EAC3B7kF,CAAAA,EAAO/U,EAAMy7F,cAAc,CAAC1mF,EAAM,GAAE,GAI5CA,EAAK2mF,eAAe,CAAC,GACrB17F,EAAMsmD,IAAI,CAACvxC,IAAI,CAAG,IAAI3T,KAAK2T,EAAKwqC,OAAO,IACvCv/C,EAAMsmD,IAAI,CAACyyC,IAAI,CAAG/4F,EAAMsmD,IAAI,CAACvxC,IAAI,CAACo2B,WAAW,GAC7CnrC,EAAMsmD,IAAI,CAAC0yC,KAAK,CAAGh5F,EAAMsmD,IAAI,CAACvxC,IAAI,CAACq2B,QAAQ,GAE3C,IAAIuwD,EAAe37F,EAAM06F,UAAU,EAAI,CAACa,EAAyBA,EAAyBxmF,EAC1F,GAAI7B,EAAiBsmE,MAAM,CAAC+hB,IACpBv7F,CAAAA,EAAM43F,MAAM,EAAI53F,OAAAA,EAAM43F,MAAM,EAAW,CACvC,GAAI53F,CAAgC,IAAhCA,EAAM45F,qBAAqB,CAAY,CACvC,GAAI55F,EAAMsmD,IAAI,CAACvxC,IAAI,CAAE,CACjB,IAAI6mF,EAAgB1oF,EAAiB4mF,iBAAiB,CAAC95F,EAAM45F,qBAAqB,CAAE55F,EAAMsmD,IAAI,CAACvxC,IAAI,CAAC0jF,UAAU,GAAIz4F,EAAMsmD,IAAI,CAACvxC,IAAI,CAACyjF,QAAQ,IAC1Ix4F,EAAMsmD,IAAI,CAACvxC,IAAI,CAAC2jF,UAAU,CAACkD,EAC/B,CAEAD,EAAe37F,EAAMsmD,IAAI,CAACvxC,IAAI,MAE9B4mF,EAAe37F,EAAMi4F,QAAQ,CAAG/kF,EAAiB2oF,aAAa,CAAC77F,EAAMsmD,IAAI,CAACvxC,IAAI,EAAI7B,EAAiB+mF,eAAe,CAACj6F,EAAMsmD,IAAI,CAACvxC,IAAI,EAQtI,IAAI4kF,EAAW,IAAIv4F,KAAKpB,EAAM05F,sBAAsB,CAACiC,IACjDjlB,OAAOijB,KAAcjjB,OAAO12E,EAAM43F,MAAM,GACxC+D,CAAAA,EAAehC,CAAO,EAGrB35F,EAAM87F,OAAO,EAAK97F,EAAM+7F,KAAK,CAACD,OAAO,EACtC97F,EAAM4iF,MAAM,EAEpB,CAcJ,MAVoC,KAAhC5iF,EAAM45F,qBAAqB,GAC3B55F,EAAMg8F,wBAAwB,GAC9Bh8F,EAAMi8F,kBAAkB,CAACN,IAG7BzuG,CAAO,CAAC,EAAE,CAACyxB,SAAS,CAACrtB,MAAM,CAAC,wBAC5B+lG,EAAiB6E,oBAAoB,CAACl8F,EAAMk7F,QAAQ,CAAE,gBAAiB,GACvEl7F,EAAMm8F,gBAAgB,CAACR,GACvB37F,EAAMo8F,QAAQ,GAEPT,EACX,EAEA37F,EAAMq8F,gBAAgB,CAAG,IACrBr8F,EAAMs8F,SAAS,GACfhyG,EAAMU,eAAe,EACzB,EAEAgV,EAAMs8F,SAAS,CAAG,WACdt8F,EAAMg0E,QAAQ,CAAC,CAAEj/D,KAAM,IAAK,GAC5B,IAAI9Y,EAAK+D,EAAM7K,KAAK,EAAI,GACxB6K,EAAM4U,KAAK,CAAC,kBAAoB3Y,EAAI,MACpCg/F,GACJ,EAQAj7F,EAAMo8F,QAAQ,CAAG,WACT,GAAkB5iB,MAAM,CAACx5E,EAAMsmD,IAAI,CAACvxC,IAAI,GAAM/U,EAAM06F,UAAU,GAIlE16F,EAAMu8F,eAAe,EACzB,EAEAv8F,EAAMw8F,SAAS,CAAG,WACd,IAAIC,EAAQ,IAAIr7F,IAChBpB,CAAAA,EAAMsmD,IAAI,CAAC0yC,KAAK,CAAGyD,EAAMrxD,QAAQ,GACjCprC,EAAMsmD,IAAI,CAACyyC,IAAI,CAAG0D,EAAMtxD,WAAW,GACnCnrC,EAAMu8F,eAAe,EACzB,EAEAv8F,EAAM08F,SAAS,CAAG,SAAU1D,CAAK,EACxB95D,MAAM85D,KACPh5F,EAAMsmD,IAAI,CAAC0yC,KAAK,CAAGp5E,SAASo5E,EAAO,IACnCh5F,EAAMu8F,eAAe,GAE7B,EAEAv8F,EAAM28F,QAAQ,CAAG,SAAU5D,CAAI,EACvBA,GAAQ/9D,EAAUiiD,QAAQ,CAAC8b,KAC3B/4F,EAAMsmD,IAAI,CAACyyC,IAAI,CAAGn5E,SAASm5E,EAAM,IACjC/4F,EAAMu8F,eAAe,GAE7B,EAEAv8F,EAAM48F,SAAS,CAAG,WACd58F,EAAMsmD,IAAI,CAAC0yC,KAAK,GAChBh5F,EAAMu8F,eAAe,EACzB,EACAv8F,EAAM68F,SAAS,CAAG,WACd78F,EAAMsmD,IAAI,CAAC0yC,KAAK,GAChBh5F,EAAMu8F,eAAe,EACzB,EAEAv8F,EAAMu8F,eAAe,CAAG,WACpBv8F,EAAM88F,cAAc,GACpB,IAAIhrE,EAAO5e,EAAiB6pF,cAAc,CAAC/8F,EAAMsmD,IAAI,EAErDtmD,EAAMg9F,WAAW,CAAClrE,IAAI,CAACA,GACvBmrE,GACJ,EAEAj9F,EAAMk9F,kBAAkB,CAAG,SAAU3B,CAAsB,EACvD,IAAIzpE,EAAO5e,EAAiBiqF,kBAAkB,CAAC5B,EAAwBv7F,EAAM45F,qBAAqB,CAAE55F,EAAMsmD,IAAI,CAAC+yC,QAAQ,EAEvHr5F,EAAMo9F,cAAc,CAACtrE,IAAI,CAACA,GAEtBypE,EACAv7F,EAAMo9F,cAAc,CAAC,EAAE,CAACrwG,eAAe,CAAC,YAExCiT,EAAMo9F,cAAc,CAAC,EAAE,CAAC/wG,YAAY,CAAC,WAAY,IAGrD2T,EAAMq9F,sBAAsB,EAChC,EAEAr9F,EAAM88F,cAAc,CAAG,WACf98F,EAAMsmD,IAAI,CAAC0yC,KAAK,CAAG,IACnBh5F,EAAMsmD,IAAI,CAACyyC,IAAI,EAAI1tD,KAAKiyD,IAAI,CAACjyD,KAAKkyD,GAAG,CAACv9F,EAAMsmD,IAAI,CAAC0yC,KAAK,EAAI,IAC1Dh5F,EAAMsmD,IAAI,CAAC0yC,KAAK,EAAI,IAEpBh5F,EAAMsmD,IAAI,CAAC0yC,KAAK,CAAG,KACnBh5F,EAAMsmD,IAAI,CAACyyC,IAAI,EAAI1tD,KAAKC,KAAK,CAACD,KAAKkyD,GAAG,CAACv9F,EAAMsmD,IAAI,CAAC0yC,KAAK,EAAI,IAC3Dh5F,EAAMsmD,IAAI,CAAC0yC,KAAK,EAAI,GAE5B,EAEAh5F,EAAMs7F,YAAY,CAAG,WACZt7F,EAAMo7F,OAAO,GAEd9D,EAA4Bt3F,EAAMg9F,WAAW,CAC7Cx8F,EAAWK,UAAU,CAAC,qBACtBb,EAAMo7F,OAAO,CAAG,GAEhBp7F,EAAMg9F,WAAW,CAACtoF,QAAQ,CAAC,QAG3B8oF,IAGAx9F,EAAMy9F,cAAc,GACpBlG,EAAyBv3F,EAAMg9F,WAAW,CAElD,EAEAh9F,EAAMq7F,YAAY,CAAG,WACjB,GAAIr7F,EAAMo7F,OAAO,CAAE,CACfluG,CAAO,CAAC,EAAE,CAACyxB,SAAS,CAACrtB,MAAM,CAAC,8BAE5B0O,EAAMo7F,OAAO,CAAG,GAChBp7F,EAAM09F,SAAS,CAAG,GAClB19F,EAAMg9F,WAAW,CAACvoF,WAAW,CAAC,QAG9BkpF,IAGApG,EAAyBv3F,EAAMg9F,WAAW,CAC1C,IAAI/gG,EAAK+D,EAAM7K,KAAK,EAAI,GACxB6K,EAAM4U,KAAK,CAAC,iBAAmB3Y,EACnC,CACJ,EAOA+D,EAAMy7F,cAAc,CAAG,SAAU1mF,CAAI,CAAE6oF,CAAI,EACvC,OAAO,IAAIx8F,KAAK2T,EAAKwqC,OAAO,GAAKv/C,EAAMq4F,cAAc,CAAGuF,EAAO,IACnE,EAEA59F,EAAM6mB,QAAQ,CAAG,SAAUwM,CAAC,MAEpBte,EAEJ,GAHA7nB,CAAO,CAAC,EAAE,CAACyxB,SAAS,CAACrtB,MAAM,CAAC,wBAGxB+hC,EAAEzoC,MAAM,CAACJ,KAAK,EAAI,MAAMS,IAAI,CAACooC,EAAEzoC,MAAM,CAACJ,KAAK,EAAG,CAC9C,GAAI0oB,EAAiByG,QAAQ,CAAC3Z,EAAM43F,MAAM,IAAMvkE,EAAEzoC,MAAM,CAACJ,KAAK,CAC1D,OAEJ,GAAI,CAEA,GADAuqB,EAAO,IAAI3T,KAAKA,KAAKo6F,SAAS,CAACnoE,EAAEzoC,MAAM,CAACJ,KAAK,CAAEwV,EAAMq6F,WAAW,GAC5Dn7D,MAAMnqB,GACN,MAAM,OAEd,CAAE,MAAO2+C,EAAK,CACV2jC,EAAiBwG,qBAAqB,CAACxqE,EAAEzoC,MAAM,CAAE,gBAAiB,IAClEsC,CAAO,CAAC,EAAE,CAACyxB,SAAS,CAAC9uB,GAAG,CAAC,wBACzB,MACJ,CACJ,MACImQ,EAAMs8F,SAAS,GACft8F,EAAM4iF,MAAM,GAGhB,IAAM+Y,EAAe37F,EAAMi/C,OAAO,CAAClqC,GACnC/U,EAAM89F,YAAY,CAACnC,EACvB,EAEA,IAAIoC,EAAe,SAAU1qE,CAAC,EAC1B,IAAIzoC,EAASuqB,QAAQjoB,OAAO,CAACmmC,EAAEzoC,MAAM,EAAIyoC,EAAE2qE,UAAU,EACjDC,EAAMrzG,CAAM,CAAC,EAAE,CAEnB,GAAKA,CAAM,CAAC,EAAE,EAId,GACI,GAAIuqB,QAAQjoB,OAAO,CAAC+wG,GAAK9sE,QAAQ,CAAC,YAC9B,aAGE8sE,EAAMA,EAAI9vE,UAAU,CAE9B,CAAU,CAAC,EAAE,GAAKnuB,EAAMk7F,QAAQ,CAAC,EAAE,EAC/Bl7F,EAAMq7F,YAAY,GAE1B,EAEI6C,EAAoB,SAAU7qE,CAAC,EAC/B,IAAIzoC,EAASuqB,QAAQjoB,OAAO,CAACmmC,EAAEzoC,MAAM,EAAIyoC,EAAE2qE,UAAU,EAErD,GAAKpzG,CAAM,CAAC,EAAE,EAId,GAAI,CAACA,EAAOumC,QAAQ,CAAC,eAAgB,CACjC,GAAIvmC,EAAOumC,QAAQ,CAAC,eAAiB,CAACvmC,EAAOumC,QAAQ,CAAC,YAAa,CAC/D,GAAInxB,EAAM45F,qBAAqB,CAAE,CAC7B,IAAItB,EAAY,IAAIl3F,KAAKwe,SAAS5f,EAAMo9F,cAAc,CAAC,EAAE,CAAC5yG,KAAK,CAAE,KAC5D0oB,EAAiBsmE,MAAM,CAAC8e,IACzBA,CAAAA,EAAY,IAAIl3F,IAAG,EAGvB,IAAMu6F,EAAe37F,EAAMi/C,OAAO,CAC9B,IAAI79C,KACAxW,CAAM,CAAC,EAAE,CAACkC,YAAY,CAAC,oBACvBlC,CAAM,CAAC,EAAE,CAACkC,YAAY,CAAC,qBACvBlC,CAAM,CAAC,EAAE,CAACkC,YAAY,CAAC,mBACvBwrG,EAAUE,QAAQ,GAClBF,EAAUG,UAAU,KAI5Bz4F,EAAM89F,YAAY,CAACnC,GACnBV,GACJ,KAAO,CACH,IAAMU,EAAe37F,EAAMi/C,OAAO,CAC9B,IAAI79C,KAAKxW,CAAM,CAAC,EAAE,CAACkC,YAAY,CAAC,oBAAqBlC,CAAM,CAAC,EAAE,CAACkC,YAAY,CAAC,qBAAsBlC,CAAM,CAAC,EAAE,CAACkC,YAAY,CAAC,qBAE7HkT,EAAM89F,YAAY,CAACnC,GACnBV,GACJ,CACAj7F,EAAMq7F,YAAY,GAClB,MACJ,CAAWzwG,EAAOumC,QAAQ,CAAC,eACvBnxB,EAAM48F,SAAS,GACRhyG,EAAOumC,QAAQ,CAAC,eACvBnxB,EAAM68F,SAAS,GACRjyG,EAAOumC,QAAQ,CAAC,iBACvBnxB,EAAMw8F,SAAS,EAEvB,CAEA,GAAK5xG,EAAOumC,QAAQ,CAAC,iBAQjBnxB,EAAM09F,SAAS,CAAG,OARiB,CACnC,IAAIrqE,EAAEvnC,cAAc,CAIhB,OADAunC,EAAEQ,WAAW,CAAG,GACT,GAHPR,EAAEvnC,cAAc,EAKxB,EAGJ,EAEI0xG,EAAqB,WACrBx9F,EAAMm+F,WAAW,CAAC,EAAE,CAACzyG,gBAAgB,CAACqvG,EAAagD,EAAc,IACjE/9F,EAAMg9F,WAAW,CAACv0G,IAAI,CAACuyG,EAAmBkD,GAG1Cl+F,EAAMg9F,WAAW,CAACv0G,IAAI,CAACsyG,EAAa,SAAU1nE,CAAC,EAC3CA,EAAEroC,eAAe,EACrB,GAEAgV,EAAMk7F,QAAQ,CAACzyG,IAAI,CAAC,UAAW,SAAU4qC,CAAC,EAClCA,CAAAA,KAAAA,EAAEtoC,OAAO,EAAWsoC,KAAAA,EAAEtoC,OAAO,GAC7BsoC,EAAEroC,eAAe,EAEzB,GAEAgV,EAAMk7F,QAAQ,CAACzyG,IAAI,CAAC,QAASuX,EAAMo+F,aAAa,EAChDp+F,EAAMk7F,QAAQ,CAACzyG,IAAI,CAAC,SAAUuX,EAAM6mB,QAAQ,EAE5Co2E,IAGAj9F,EAAMk7F,QAAQ,CAACzyG,IAAI,CAAC,OAAQ,WACxBwlC,WAAW,WACFjuB,EAAM09F,SAAS,EAChB19F,EAAMq7F,YAAY,GAGtBr7F,EAAM09F,SAAS,CAAG,EACtB,EAAG,GACP,EACJ,EAEIT,EAAkB,WAClBj9F,EAAMq+F,YAAY,CAAGlpF,QAAQjoB,OAAO,CAAC8S,EAAMg9F,WAAW,CAAC,EAAE,CAAC5nF,sBAAsB,CAAC,kBAEjFpV,EAAMq+F,YAAY,CAAC51G,IAAI,CAAC,SAAU,SAAU6B,CAAK,EAC7C,IAAIM,EAASuqB,QAAQjoB,OAAO,CAAC5C,EAAMM,MAAM,EAAIN,EAAM0zG,UAAU,EAEzDpzG,EAAOumC,QAAQ,CAAC,uBAChBnxB,EAAM08F,SAAS,CAAC9xG,CAAM,CAAC,EAAE,CAACJ,KAAK,EACxBI,EAAOumC,QAAQ,CAAC,uBACvBnxB,EAAM28F,QAAQ,CAAC/xG,CAAM,CAAC,EAAE,CAACJ,KAAK,CAEtC,EACJ,CAEAwV,CAAAA,EAAMq9F,sBAAsB,CAAG,WAC3Br9F,EAAMo9F,cAAc,CAAC30G,IAAI,CAAC,SAAU,SAAU4qC,CAAC,EAC3C,IAAIilE,EAAY,IAAIl3F,KAAKwe,SAASyT,EAAEzoC,MAAM,CAACJ,KAAK,CAAE,KAC9CuqB,EAAOI,QAAQ0N,IAAI,CAAC7iB,EAAM43F,MAAM,EACpC7iF,EAAKiqC,QAAQ,CAACs5C,EAAUE,QAAQ,IAChCzjF,EAAK2jF,UAAU,CAACJ,EAAUG,UAAU,IAEpC,IAAMkD,EAAe37F,EAAMi/C,OAAO,CAAClqC,GACnC/U,EAAM89F,YAAY,CAACnC,EACvB,EACJ,EAEA37F,EAAMg8F,wBAAwB,CAAG,WAC7Bh8F,EAAMo9F,cAAc,CAACxxG,MAAM,CAAC,SAChC,EAEA,IAAI0yG,EAAoB,WAChBt+F,EAAMq+F,YAAY,EAClBr+F,EAAMq+F,YAAY,CAACzyG,MAAM,CAAC,SAElC,EAEI+xG,EAAuB,WACvB39F,EAAMm+F,WAAW,CAAC,EAAE,CAACtyG,mBAAmB,CAACkvG,EAAagD,EAAc,IACpE/9F,EAAMg9F,WAAW,CAACpxG,MAAM,CAACovG,EAAmBkD,GAC5Cl+F,EAAMg9F,WAAW,CAACpxG,MAAM,CAACmvG,GACzB/6F,EAAMk7F,QAAQ,CAACtvG,MAAM,CAAC,QACtBoU,EAAMk7F,QAAQ,CAACtvG,MAAM,CAAC,UACtBoU,EAAMk7F,QAAQ,CAACtvG,MAAM,CAAC,WACtBoU,EAAMk7F,QAAQ,CAACtvG,MAAM,CAAC,SAEtB0yG,GACJ,EAEAt+F,EAAM4G,GAAG,CAAC,oBAAqB,WAEvB2wF,GAA0Bv3F,EAAMg9F,WAAW,EAAIzF,GAA0BD,GAA6Bt3F,EAAMo7F,OAAO,EACnHp7F,EAAMq7F,YAAY,EAE1B,GAGAr7F,EAAM4G,GAAG,CAAC,WAAY,WAClB+2F,IACA39F,EAAMu+F,sBAAsB,EAChC,GAEAv+F,EAAMu+F,sBAAsB,CAAG,WACvBv+F,EAAMg9F,WAAW,EAAIh9F,EAAMg9F,WAAW,CAAC,EAAE,EACzCh9F,EAAMg9F,WAAW,CAAC1rG,MAAM,EAEhC,EAEA0O,EAAM4G,GAAG,CAAC,oBAAqB,WACvB5G,EAAMo7F,OAAO,GACbp7F,EAAMq7F,YAAY,GAClBsC,IAER,GAEA39F,EAAMi8F,kBAAkB,CAAG,SAAUV,CAAsB,EACnDroF,EAAiBsmE,MAAM,CAAC+hB,IACxBv7F,EAAM05F,sBAAsB,CAAC6B,GAEjCjrG,EAAS,WACL0P,EAAMk9F,kBAAkB,CAAC3B,EAC7B,EACJ,EAEAv7F,EAAMm8F,gBAAgB,CAAG,SAAUpnF,CAAI,EACnC/U,EAAMk7F,QAAQ,CAAC,EAAE,CAAC1wG,KAAK,CAAGuqB,EAAO7B,EAAiByG,QAAQ,CAAC5E,GAAQ,EACvE,EAEA/U,EAAM89F,YAAY,CAAG,SAAU/oF,CAAI,EAC3B/U,EAAMg0E,QAAQ,EAAIj/D,KAAS9mB,IAAT8mB,GAAsB/U,CAA0B,IAA1BA,EAAMw+F,eAAe,EAC7Dx+F,EAAMg0E,QAAQ,CAAC,CAAEj/D,KAAMA,CAAK,EAEpC,EAEA/U,EAAMy+F,eAAe,CAAG,SAAU1pF,CAAI,EAC9B/U,EAAMg0E,QAAQ,EAAIj/D,KAAS9mB,IAAT8mB,GAAsB/U,CAA2B,IAA3BA,EAAM0+F,gBAAgB,EAC9D1+F,EAAMg0E,QAAQ,CAAC,CAAEj/D,KAAMA,CAAK,EAEpC,EAEA/U,EAAM2+F,eAAe,CAAG,SAAU5pF,CAAI,EAC9B/U,EAAMg0E,QAAQ,EAAIj/D,KAAS9mB,IAAT8mB,GAAsB/U,CAA2B,IAA3BA,EAAM4+F,gBAAgB,EAC9D5+F,EAAMg0E,QAAQ,CAAC,CAAEj/D,KAAMA,CAAK,EAEpC,EAEA/U,EAAMy9F,cAAc,CAAG,WACnBz9F,EAAM6+F,aAAa,CAAG7+F,EAAMk7F,QAAQ,CAAC,EAAE,CAAC1lD,qBAAqB,GAC7Dx1C,EAAM8+F,gBAAgB,CAAG9+F,EAAMg9F,WAAW,CAAC,EAAE,CAACxnD,qBAAqB,GAGnE,IAAMupD,EAAqBruG,OAAOsuG,WAAW,CAAGh/F,EAAM6+F,aAAa,CAACI,MAAM,CAAGj/F,EAAM8+F,gBAAgB,CAACrpD,MAAM,CACpGypD,EAAkBl/F,EAAM6+F,aAAa,CAAClpD,GAAG,CAAG8hD,EAC9C0H,EAAen/F,EAAM6+F,aAAa,CAACI,MAAM,CAAGxH,EAAmB/mG,CAAAA,OAAO0uG,WAAW,EAAIp/F,EAAMm+F,WAAW,CAAC,EAAE,CAACxsE,SAAS,EAAI,GACvH0tE,EAAgB3uG,OAAO4uG,UAAU,EAAI,IAAM,EAAIt/F,EAAM6+F,aAAa,CAACU,IAAI,CAEvER,GAAsB,GAAKG,EAAkBl/F,EAAM8+F,gBAAgB,CAACrpD,MAAM,CAE1E0pD,EADen/F,EAAM6+F,aAAa,CAAClpD,GAAG,CAAG8hD,EAAmB/mG,CAAAA,OAAO0uG,WAAW,EAAIp/F,EAAMm+F,WAAW,CAAC,EAAE,CAACxsE,SAAS,EAAI,GAAK3xB,EAAM8+F,gBAAgB,CAACrpD,MAAM,CAPlI,EAUpB0pD,GAVoB,EAaxB,IAAIK,EAAc9uG,OAAO4uG,UAAU,CAE/BG,EAAkBJ,EADFr/F,EAAMg9F,WAAW,CAAC,EAAE,CAACrY,WAAW,CAIhD8a,EAAkBD,GAClBH,CAAAA,GAAiBG,EAAcC,CAAc,EAK7Cz/F,CAAAA,EAAM46F,eAAe,EACpB56F,EAAMm+F,WAAW,CAAChtE,QAAQ,CAAC,OAASnxB,EAAMm+F,WAAW,CAAChtE,QAAQ,CAAC,kBAC/DnxB,EAAM0/F,qBAAqB,CAACvuE,QAAQ,CAAC,WAAanxB,EAAMm+F,WAAW,CAAChtE,QAAQ,CAAC,SAC9EnxB,EAAM86F,mBAAmB,GAEzBqE,CAAAA,GAAgB1H,CAAc,EAGlCz3F,EAAMg9F,WAAW,CAAC2C,GAAG,CAAC,CAClBhqD,IAAKwpD,EAAe,KACpBI,KAAMF,EAAgB,IAC1B,EACJ,EAEA,IAAIO,EAAc,SAAUC,CAAO,CAAEC,CAAO,EACpC5sF,EAAiBsmE,MAAM,CAACqmB,IAAYA,IAAAA,EAAQE,UAAU,IACtDF,CAAAA,EAAU7/F,EAAM05F,sBAAsB,CAACmG,EAAO,EAGlD,IAAMlE,EAAe37F,EAAMi/C,OAAO,CAAC4gD,GACnC7/F,EAAM89F,YAAY,CAACnC,EACvB,EAEIqE,EAAe,SAAUH,CAAO,CAAEC,CAAO,EACzC,GAAI,KAAa7xG,IAAb,GAA0B6xG,KAAY7xG,IAAZ6xG,GAAyB,CAAC9/F,EAAM06F,UAAU,EAAKmF,IAAYC,EACrF,OAGA5sF,EAAiBsmE,MAAM,CAACqmB,IACxBA,CAAAA,EAAU7/F,EAAM05F,sBAAsB,CAACmG,EAAO,EAElD7/F,EAAMsmD,IAAI,CAAC+yC,QAAQ,CAAGwG,EACtB,IAAIlE,EAAe,KAGfA,EADA37F,EAAM06F,UAAU,EAAI16F,OAAAA,EAAM43F,MAAM,CACjB53F,EAAMi/C,OAAO,CAAC,MAEdj/C,EAAMi/C,OAAO,CAACj/C,EAAMsmD,IAAI,CAACvxC,IAAI,EAGhD/U,EAAMy+F,eAAe,CAAC9C,EAC1B,EAEIsE,EAAe,SAAUJ,CAAO,CAAEC,CAAO,EACzC,GAAID,KAAY5xG,IAAZ4xG,GAAyBC,KAAY7xG,IAAZ6xG,GAAyB,CAAC9/F,EAAM06F,UAAU,CACnE,MAEJ16F,CAAAA,EAAMsmD,IAAI,CAACgzC,QAAQ,CAAGuG,EACtB,IAAIlE,EAAe,KAGfA,EADA37F,EAAM06F,UAAU,EAAI16F,OAAAA,EAAM43F,MAAM,CACjB53F,EAAMi/C,OAAO,CAAC,MAEdj/C,EAAMi/C,OAAO,CAACj/C,EAAMsmD,IAAI,CAACvxC,IAAI,EAGhD/U,EAAM2+F,eAAe,CAAChD,EAC1B,EAEIuE,EAAU,SAAUL,CAAO,CAAEC,CAAO,CAAErwG,CAAQ,CAAE0wG,CAAQ,EACpDN,CAAAA,IAAYC,GAAYK,CAAO,IAInB,OAAZN,GACAA,CAAAA,EAAU3sF,EAAiBquD,aAAa,CAACs+B,EAAO,EAGpDC,EAAU5sF,EAAiBquD,aAAa,CAACu+B,GAErC,EAAC5sF,EAAiBumE,YAAY,CAAComB,EAASC,IAAYK,CAAO,GAC3D1wG,EAASowG,EAASC,GAE1B,EAoEA,GAlEA9/F,EAAMo+F,aAAa,CAAG,SAAU/qE,CAAC,EACzBqf,EAAiB0tD,EAAE,EAAI/sE,KAAAA,EAAEtoC,OAAO,EAChCiV,EAAM6mB,QAAQ,CAACwM,EAEvB,EAEArzB,EAAMqgG,WAAW,CAAG,WAChBrgG,EAAMm+F,WAAW,CAAGhpF,QAAQjoB,OAAO,CAACzB,SAAS60G,eAAe,EAC5DtgG,EAAM0/F,qBAAqB,CAAGvqF,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,EACtG,IAAI4nF,EAAcvxG,SAAS80G,aAAa,CAAC,MACzCvD,CAAAA,EAAYwD,SAAS,CAAG,WAExB/0G,SAASg1G,IAAI,CAACC,WAAW,CAAC1D,GAC1Bh9F,EAAMg9F,WAAW,CAAG7nF,QAAQjoB,OAAO,CAAC8vG,GACpCh9F,EAAMk7F,QAAQ,CAAG/lF,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACyzG,oBAAoB,CAAC,QAAQ,CAAC,EAAE,EAC5E3gG,EAAMo9F,cAAc,CAAGp9F,CAAgC,IAAhCA,EAAM45F,qBAAqB,CAAazkF,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,EAAInnB,KAAAA,EAE7I,IAAM0tG,EAAe37F,EAAMi/C,OAAO,CAACj/C,EAAMsmD,IAAI,CAACvxC,IAAI,EAClD/U,EAAM89F,YAAY,CAACnC,GAGnB37F,EAAMk7F,QAAQ,CAACzyG,IAAI,CAACsyG,EAAa,SAAUzwG,CAAK,EAC5CA,EAAMU,eAAe,GACrBgV,EAAMs7F,YAAY,EACtB,GAGAt7F,EAAMk7F,QAAQ,CAACzyG,IAAI,CAAC,QAAS,WACzBuX,EAAM09F,SAAS,CAAG,GAClB19F,EAAMs7F,YAAY,GAClBpuG,CAAO,CAAC,EAAE,CAACyxB,SAAS,CAAC9uB,GAAG,CAAC,6BAC7B,GAEAmQ,EAAM0+F,gBAAgB,CAAG,GACzB1+F,EAAM4+F,gBAAgB,CAAG,GAEzB5+F,EAAM4/F,WAAW,CAAG5/F,EAAMib,MAAM,CAAC,SAAU,SAAU4kF,CAAO,CAAEC,CAAO,EACjEI,EAAQL,EAASC,EAASF,EAAa5/F,EAAMw+F,eAAe,EAC5Dx+F,EAAMw+F,eAAe,CAAG,EAC5B,GAEuBvwG,KAAAA,IAAnB8sB,EAAMk9E,QAAQ,EACdj4F,EAAMib,MAAM,CAAC,WAAY,SAAU4kF,CAAO,CAAEC,CAAO,EAC/C,GAAID,IAAYC,EAAS,CACrB,IAAMnE,EAAe37F,EAAMi/C,OAAO,CAACj/C,EAAM43F,MAAM,EAC/C53F,EAAM89F,YAAY,CAACnC,EACvB,CACJ,GAGkB1tG,KAAAA,IAAlB8sB,EAAM3G,OAAO,EACbpU,CAAAA,EAAMggG,YAAY,CAAGhgG,EAAMib,MAAM,CAAC,UAAW,SAAU4kF,CAAO,CAAEC,CAAO,EACnEI,EAAQL,EAASC,EAASE,EAAchgG,EAAM0+F,gBAAgB,EAC9D1+F,EAAM0+F,gBAAgB,CAAG,EAC7B,EAAC,EAGiBzwG,KAAAA,IAAlB8sB,EAAM+8E,OAAO,EACb93F,CAAAA,EAAMigG,YAAY,CAAGjgG,EAAMib,MAAM,CAAC,UAAW,SAAU4kF,CAAO,CAAEC,CAAO,EACnEI,EAAQL,EAASC,EAASG,EAAcjgG,EAAM4+F,gBAAgB,EAC9D5+F,EAAM4+F,gBAAgB,CAAG,EAC7B,EAAC,CAET,EAGK1rF,EAAiB0tF,aAAa,CAAC5gG,EAAM43F,MAAM,EAG5C53F,EAAMw+F,eAAe,CAAG,GACxBx+F,EAAMixB,IAAI,GACVjxB,EAAMqgG,WAAW,QAJjB,MAAM,MAAU,6JAMxB,CACJ,CACJ,EACH,C,mDEn1BD/xG,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,mBAAoB,CACnC,uBACA,SAAU/wB,CAAoB,EAC1B,IA6fQ6uG,EACAC,EACAC,EACAC,EAhgBJ9tF,EAAmB,CAEnB+tF,KAAM,CACFC,eAAgBlvG,EAAqBS,SAAS,CAAC,qCAC/C0uG,WAAYnvG,EAAqBS,SAAS,CAAC,iCAC3CgqG,MAAOzqG,EAAqBS,SAAS,CAAC,4BACtC2uG,OAAQ,CACJ,CAAEC,KAAMrvG,EAAqBS,SAAS,CAAC,sCAAuC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,sCAAuC,EAC3J,CAAE4uG,KAAMrvG,EAAqBS,SAAS,CAAC,sCAAuC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,sCAAuC,EAC3J,CAAE4uG,KAAMrvG,EAAqBS,SAAS,CAAC,sCAAuC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,sCAAuC,EAC3J,CAAE4uG,KAAMrvG,EAAqBS,SAAS,CAAC,sCAAuC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,sCAAuC,EAC3J,CAAE4uG,KAAMrvG,EAAqBS,SAAS,CAAC,sCAAuC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,sCAAuC,EAC3J,CAAE4uG,KAAMrvG,EAAqBS,SAAS,CAAC,sCAAuC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,sCAAuC,EAC3J,CAAE4uG,KAAMrvG,EAAqBS,SAAS,CAAC,sCAAuC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,sCAAuC,EAC3J,CAAE4uG,KAAMrvG,EAAqBS,SAAS,CAAC,sCAAuC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,sCAAuC,EAC3J,CAAE4uG,KAAMrvG,EAAqBS,SAAS,CAAC,sCAAuC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,sCAAuC,EAC3J,CAAE4uG,KAAMrvG,EAAqBS,SAAS,CAAC,sCAAuC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,sCAAuC,EAC3J,CAAE4uG,KAAMrvG,EAAqBS,SAAS,CAAC,sCAAuC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,sCAAuC,EAC3J,CAAE4uG,KAAMrvG,EAAqBS,SAAS,CAAC,sCAAuC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,sCAAuC,EAC9J,CACD8uG,SAAU,CACN,CACIF,KAAMrvG,EAAqBS,SAAS,CAAC,wCACrC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,yCACtC+uG,KAAMxvG,EAAqBS,SAAS,CAAC,uCACzC,EACA,CACI4uG,KAAMrvG,EAAqBS,SAAS,CAAC,wCACrC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,yCACtC+uG,KAAMxvG,EAAqBS,SAAS,CAAC,uCACzC,EACA,CACI4uG,KAAMrvG,EAAqBS,SAAS,CAAC,wCACrC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,yCACtC+uG,KAAMxvG,EAAqBS,SAAS,CAAC,uCACzC,EACA,CACI4uG,KAAMrvG,EAAqBS,SAAS,CAAC,wCACrC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,yCACtC+uG,KAAMxvG,EAAqBS,SAAS,CAAC,uCACzC,EACA,CACI4uG,KAAMrvG,EAAqBS,SAAS,CAAC,wCACrC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,yCACtC+uG,KAAMxvG,EAAqBS,SAAS,CAAC,uCACzC,EACA,CACI4uG,KAAMrvG,EAAqBS,SAAS,CAAC,wCACrC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,yCACtC+uG,KAAMxvG,EAAqBS,SAAS,CAAC,uCACzC,EACA,CACI4uG,KAAMrvG,EAAqBS,SAAS,CAAC,wCACrC6uG,MAAOtvG,EAAqBS,SAAS,CAAC,yCACtC+uG,KAAMxvG,EAAqBS,SAAS,CAAC,uCACzC,EACH,CACDgvG,cAAezvG,EAAqBS,SAAS,CAAC,mCAClD,EAEAymG,MAAO,GAGPwI,eAAgB,GAGhBC,SAAU,EAGVC,UAAW,GAGXC,SAAU,EACVC,SAAU,KACVC,UAAW9zG,KAAAA,EACX+zG,UAAW/zG,KAAAA,EAOX2yG,cAAe,SAAUh4D,CAAG,EACxB,GAAI,iBAAOA,EAQP,MAAO,GAPP,IAAK,IAAIz6C,KAAKy6C,EACV,GAAIA,EAAIvvB,cAAc,CAAClrB,GACnB,MAAO,GAGf,MAAO,EAIf,EAEAmrB,QAAS,SAAUsvB,CAAG,EAClB,MAAO,QAAQ39C,IAAI,CAACyG,OAAOzH,SAAS,CAAC0vB,QAAQ,CAACrxB,IAAI,CAACsgD,GACvD,EAOA4wC,OAAQ,SAAU5wC,CAAG,EACjB,MAAO,OAAO39C,IAAI,CAACyG,OAAOzH,SAAS,CAAC0vB,QAAQ,CAACrxB,IAAI,CAACsgD,KAAS,CAAC1J,MAAM0J,EAAI2W,OAAO,GACjF,EAEAk6B,aAAc,SAAUnnB,CAAC,CAAE2a,CAAC,EAExB,MAAO,OAAI,CAACuM,MAAM,CAAClnB,IAAM,IAAI,CAACknB,MAAM,CAACvM,EAAC,GAAI3a,EAAE/S,OAAO,KAAO0tB,EAAE1tB,OAAO,EACvE,EAEA0iD,WAAY,SAAUlJ,CAAI,EAEtB,OAAO,EAAQ,GAAM,GAAKA,EAAO,KAAQ,GAAMA,EAAO,KAAQ,CAClE,EAEAmJ,eAAgB,SAAUnJ,CAAI,CAAEC,CAAK,EACjC,MAAO,CAAC,GAAI,IAAI,CAACiJ,UAAU,CAAClJ,GAAQ,GAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAG,CAACC,EAAM,EAG/FiB,gBAAiB,SAAUllF,CAAI,EAI3B,OAHI,IAAI,CAACykE,MAAM,CAACzkE,IACZA,EAAKiqC,QAAQ,CAAC,EAAG,EAAG,EAAG,GAEpBjqC,CACX,EAEA8mF,cAAe,SAAU9mF,CAAI,EAIzB,OAHI,IAAI,CAACykE,MAAM,CAACzkE,IACZA,EAAKiqC,QAAQ,CAAC,GAAI,GAAI,EAAG,GAEtBjqC,CACX,EAEAC,QAAS,SAAUD,CAAI,CAAE/P,CAAQ,CAAEm9F,CAAK,EACpC,IAAIC,EAAM,IAAIhhG,KAAK2T,GACfstF,EAAa,CACbtJ,KAAM,WACFqJ,EAAIE,WAAW,CAACF,EAAIj3D,WAAW,GAAKg3D,EACxC,EACAI,QAAS,WACLH,EAAII,QAAQ,CAACJ,EAAIh3D,QAAQ,GAAK,EAAI+2D,EACtC,EACAnJ,MAAO,WACHoJ,EAAII,QAAQ,CAACJ,EAAIh3D,QAAQ,GAAK+2D,EAClC,EACAM,KAAM,WACFL,EAAInjD,OAAO,CAACmjD,EAAIljD,OAAO,GAAK,EAAIijD,EACpC,EACA52D,IAAK,WACD62D,EAAInjD,OAAO,CAACmjD,EAAIljD,OAAO,GAAKijD,EAChC,EACA32D,KAAM,WACF42D,EAAIM,OAAO,CAACN,EAAI7iD,OAAO,GAAK4iD,KAAAA,EAChC,EACA12D,OAAQ,WACJ22D,EAAIM,OAAO,CAACN,EAAI7iD,OAAO,GAAK4iD,IAAAA,EAChC,EACAz2D,OAAQ,WACJ02D,EAAIM,OAAO,CAACN,EAAI7iD,OAAO,GAAK4iD,IAAAA,EAChC,EACAl0C,QAAS,WACLm0C,EAAMn0G,KAAAA,CACV,CACJ,EAEA,MADA,CAACo0G,CAAU,CAACr9F,EAAS,EAAIq9F,EAAW,OAAU,IACvCD,CACX,EAKAzoF,SAAU,SAAU5E,CAAI,EACpB,OAAO,IAAK,CAACykE,MAAM,CAACzkE,GAAaA,EAAK4tF,MAAM,CAAC,mBAAjB,EAChC,EAEAC,MAAO,SAAU7tF,CAAI,EACjB,OAAO,IAAI3T,KAAK2T,EAAKw1B,cAAc,GAAIx1B,EAAK8tF,WAAW,GAAI9tF,EAAK+tF,UAAU,GAAI/tF,EAAKguF,WAAW,GAAIhuF,EAAKiuF,aAAa,GAAIjuF,EAAKkuF,aAAa,GAC9I,EAEA1hC,cAAe,SAAUxsD,CAAI,CAAEmuF,CAAY,EACvC,GAAKnuF,EAUL,MANoB,UAAhB,OAAOA,GAAqBA,EAAAA,EAAKhnB,OAAO,CAAC,MACrCgnB,KAAAA,EAAKhnB,OAAO,CAAC,MACbgnB,CAAAA,GAAQ,GAAE,EAIXmuF,CAAiB,IAAjBA,EAAwB,IAAI,CAACN,KAAK,CAAC,IAAIxhG,KAAK2T,IAAS,IAAI3T,KAAK2T,EACzE,EAGA+kF,kBAAmB,SAAUn2C,CAAK,CAAEokC,CAAO,CAAEjD,CAAK,EAC9C,IAAI32F,EAEAg1G,EACAC,EAFAC,EAAU,GAKd,IAAKl1G,EAAI,EAAGA,EAAIw1D,EAAMr4D,MAAM,CAAE6C,IAAK,CAW/B,IAAIm1G,EAAIj4D,KAAKkyD,GAAG,CAACxV,GATbjD,IAAAA,GAAe32F,IAAMw1D,EAAMr4D,MAAM,CAAG,EAGtB83G,CADdA,EAAW,IAAIhiG,KAAKuiD,CAAK,CAACA,EAAMr4D,MAAM,CAAG,EAAE,CAACd,KAAK,GAC1BiuG,UAAU,GAGnB2K,CADdA,EAAW,IAAIhiG,KAAKuiD,CAAK,CAACx1D,EAAE,CAAC3D,KAAK,GACXiuG,UAAU,KAKjC6K,EAAID,GAAWD,EAAS5K,QAAQ,IAAM1T,IACtCue,EAAUC,EACVH,EAAM,IAAI/hG,KAAKuiD,CAAK,CAACx1D,EAAE,CAAC3D,KAAK,EAAEiuG,UAAU,GAEjD,CAEA,OAAO0K,CACX,EASAhG,mBAAoB,SAAUpoF,CAAI,CAAEwuF,CAAS,CAAEnvF,CAAO,EAClD,IACIjmB,EAEAq1G,EACAC,EACAhuG,EALAwgE,EAAM,EAAE,CAOZ,GAAKlhD,EAEE,CACH,IAAI2uF,EAAe3uF,EACf4uF,EAAe5uF,EACnB,IAAK5mB,EAAI,EAAGA,EAAIo1G,EAAUj4G,MAAM,CAAE6C,IAAK,CAEnC,GADAs1G,EAAc,IAAIriG,KAAKmiG,CAAS,CAACp1G,EAAE,CAAC3D,KAAK,EACrCk5G,GAAgBtvF,EAAS,CAEzBuvF,EAAe,IAAIviG,KAAK2T,EAAKo2B,WAAW,GAAIp2B,EAAKq2B,QAAQ,GAAIr2B,EAAKmqC,OAAO,GAAIukD,EAAYjL,QAAQ,GAAIiL,EAAYhL,UAAU,GAAI,GAC/H,IAAImL,EAAc,IAAIxiG,KAAKgT,EAAQ+2B,WAAW,GAAI/2B,EAAQg3B,QAAQ,GAAIh3B,EAAQ8qC,OAAO,GAAI9qC,EAAQokF,QAAQ,GAAIpkF,EAAQqkF,UAAU,GAAI,GAE/HiL,EAAav4D,WAAW,KAAOy4D,EAAYz4D,WAAW,IAAMu4D,EAAat4D,QAAQ,KAAOw4D,EAAYx4D,QAAQ,IAAMs4D,EAAaxkD,OAAO,KAAO0kD,EAAY1kD,OAAO,IAChKzpD,CAAAA,EAAWkuG,GAAgBC,EAAc,WAAa,EAAC,EAGvD,IAAI,CAACnqB,YAAY,CAACiqB,EAAcE,IAChCF,CAAAA,EAAe,IAAI,CAAC1uF,OAAO,CAAC,IAAI5T,KAAK2T,GAAO,SAAU,GAAE,CAEhE,CAGAyuF,EACIC,EAAYjL,QAAQ,IAAMkL,EAAalL,QAAQ,IAAMiL,EAAYhL,UAAU,IAAMp5D,IA5B9E,CA4BmFy6D,iBAAiB,CAACyJ,EAAWG,EAAajL,UAAU,GAAIiL,EAAalL,QAAQ,IAC7J,WACA,GAGVviC,EAAIlmE,IAAI,CAAC,kBAAoBwzG,CAAS,CAACp1G,EAAE,CAAC3D,KAAK,CAAG,KAAOg5G,EAAW,IAAM/tG,EAAW,IAAM8tG,CAAS,CAACp1G,EAAE,CAAC8G,KAAK,CAAG,YACpH,CACJ,MA7BIghE,EAAIlmE,IAAI,CAAC,oBAAsB,IAAI,CAACkxG,IAAI,CAACQ,aAAa,CAAG,aA+B7D,OAAOxrC,EAAI0c,IAAI,CAAC,GACpB,EAEAoqB,eAAgB,SAAUz2C,CAAI,EAC1B,IACIu7C,EAAWv7C,EAAKu7C,QAAQ,CACxBC,EAAWx7C,EAAKw7C,QAAQ,CACxBC,EAAY1iE,IAHD,CAGM0iE,SAAS,CAC1BC,EAAY3iE,IAJD,CAIM2iE,SAAS,CAC1BlwE,EAAO,EAEP,KAAI,CAAC+xE,EAAE,EAAIhC,IACX,IAAI,CAACiC,CAAC,CAAGjC,EACL,CAAC3iE,MAAM6iE,IAAc,IAAI,CAACgC,EAAE,CAAGhC,GAC/B,KAAI,CAACgC,EAAE,CAAGhC,CAAQ,GAItB,IAAI,CAAC8B,EAAE,EAAI/B,IACX,IAAI,CAAC+B,EAAE,CAAG/B,EAEN,CAAC5iE,MAAM8iE,IAAc,IAAI,CAAC+B,EAAE,CAAG/B,GAC/B,KAAI,CAAC+B,EAAE,CAAG/B,CAAQ,GAI1B,IAAK,IAAI10B,EAAI,EAAGA,EAAIhnB,EAAK6yC,gBAAgB,CAAE7rB,IACvCx7C,GAAQuN,IAvBG,CAuBE2kE,uBAAuB,CAAC19C,GAAQjnB,IAvBlC,CAuBuC4kE,qBAAqB,CAAC39C,GAAQjnB,IAvBrE,CAuB0E6kE,WAAW,CAAC59C,GAGrG,OAAOx0B,CACX,EAEAoyE,YAAa,SAAU59C,CAAI,EACvB,IACI7M,EAAM,IAAIr4C,KACVqpC,EAAOpL,IAFI,CAEC6iE,cAAc,CAAC57C,EAAKyyC,IAAI,CAAEzyC,EAAK0yC,KAAK,EAChD5lF,EAAS,IAAIhS,KAAKklD,EAAKyyC,IAAI,CAAEzyC,EAAK0yC,KAAK,CAAE,GAAGmL,MAAM,GAClDC,EAAejvF,QAAQ0N,IAAI,CAACyjC,EAAKvxC,IAAI,EACrC5lB,EAAO,EAAE,CACT2sB,EAAM,EAAE,CAEZ29B,EAAMpa,IARS,CAQJ46D,eAAe,CAACxgD,GAEvB6M,EAAK8yC,SAAS,CAAG,GAEbhmF,CADJA,GAAUkzC,EAAK8yC,SAAS,EACX,GACThmF,CAAAA,GAAU,GAOlB,IAHA,IAAIoK,EAAQitB,EAAOr3B,EACfD,EAAQqK,EAELrK,EAAQ,GACXA,GAAS,EAEbqK,GAAS,EAAIrK,EAEb,IAAK,IAAIhlB,EAAI,EAAGo/E,EAAI,EAAGp/E,EAAIqvB,EAAOrvB,IAAK,CACnC,IAAIo9C,EAAM,IAAInqC,KAAKklD,EAAKyyC,IAAI,CAAEzyC,EAAK0yC,KAAK,CAAE,EAAK7qG,CAAAA,EAAIilB,CAAK,EAAIkzC,EAAKvxC,IAAI,CAACyjF,QAAQ,GAAIlyC,EAAKvxC,IAAI,CAAC0jF,UAAU,IAClG4L,EAAY,IAAIjjG,KAAKklD,EAAKyyC,IAAI,CAAEzyC,EAAK0yC,KAAK,CAAE,EAAK7qG,CAAAA,EAAIilB,CAAK,GAC1DkxF,EAAgB,IAAIljG,KAAKijG,EAEzB/9C,CAAAA,EAAKmzC,WAAW,GAChB6K,EAActlD,QAAQ,CAAC,IACvBslD,EAAc5L,UAAU,CAAC,IACzB4L,EAAcvK,UAAU,CAAC,KAG7B,IAAIwK,EAAc,EAAMlL,QAAQ,EAAIiL,EAAgBh+C,EAAK+yC,QAAQ,EAAM/yC,EAAKgzC,QAAQ,EAAI+K,EAAY/9C,EAAKgzC,QAAQ,CAC7GkL,EAAcnlE,EAAAA,IArCP,CAqCYm6C,MAAM,CAAC4qB,IAAgB/kE,IArCnC,CAqCwCo6C,YAAY,CAACluC,EAAK64D,GACjEK,EAAWplE,IAtCJ,CAsCSo6C,YAAY,CAAC4qB,EAAW5qD,GACxCirD,EAAWv2G,EAAIilB,GAAUjlB,GAAKs8C,EAAOr3B,EAEzC0I,EAAI/rB,IAAI,CAACsvC,IAzCE,CAyCGslE,SAAS,CAAC,EAAKx2G,CAAAA,EAAIilB,CAAK,EAAIkzC,EAAK0yC,KAAK,CAAE1yC,EAAKyyC,IAAI,CAAEyL,EAAaC,EAAUF,EAAaG,IAEzF,GAAR,EAAEn3B,IACEluC,IA5CG,CA4CEqiE,cAAc,EACnB5lF,EAAImsC,OAAO,CAAC5oB,IA7CT,CA6CculE,UAAU,CAACz2G,EAAIilB,EAAQkzC,EAAK0yC,KAAK,CAAE1yC,EAAKyyC,IAAI,GAEjE5pG,EAAKY,IAAI,CAACsvC,IA/CH,CA+CQulE,UAAU,CAAC9oF,EAAKwqC,EAAK4yC,KAAK,GACzCp9E,EAAM,EAAE,CACRyxD,EAAI,EAEZ,CAEA,OAAOluC,IArDQ,CAqDHwlE,WAAW,CAACv+C,EAAMn3D,EAClC,EAEA60G,wBAAyB,SAAU19C,CAAI,EACnC,IACIx0B,EAAO,mCACPgzE,EAAYx+C,EAAKyyC,IAAI,GAAKzyC,EAAKu7C,QAAQ,CACvCkD,EAAYz+C,EAAKyyC,IAAI,GAAKzyC,EAAKw7C,QAAQ,CACvCkD,EAAO,GACPlsD,EAAO,GAeX,OAbIgsD,GAAcx+C,CAAAA,IAAAA,EAAK0yC,KAAK,EAAU35D,IAPvB,CAO4B0iE,SAAS,EAAIz7C,EAAK0yC,KAAK,GAC9DgM,CAAAA,EAAO,EAAI,EAGXD,GAAcz+C,CAAAA,KAAAA,EAAK0yC,KAAK,EAAW35D,IAXxB,CAW6B2iE,SAAS,EAAI17C,EAAK0yC,KAAK,GAC/DlgD,CAAAA,EAAO,EAAI,EAMfhnB,GAHQ,gDAAmDkzE,CAAAA,EAAO,GAAK,cAAa,EAA5E,8JACiF3lE,IAhB1E,CAgB+E4hE,IAAI,CAACxE,KAAK,gEAC7C3jD,CAAAA,EAAO,GAAK,cAAa,0FAIxF,EAEAmrD,sBAAuB,SAAU39C,CAAI,EACjC,IAAI2P,EAAM,EAAE,CACR9nE,EAAI,EACJX,EAAI,EACJskC,EAAO,kCACPmzE,EAAa,GAKjB,IAAK92G,EAAI,EAAGA,EAAI,GAAIA,IAChB8nE,EAAIlmE,IAAI,CAAC,kBAAoB5B,EAAI,IAAOA,CAAAA,IAAMm4D,EAAK0yC,KAAK,CAAG,YAAc,EAAC,EAAK,IAAM35D,IAJxE,CAI6E4hE,IAAI,CAACG,MAAM,CAACjzG,EAAE,CAACkzG,IAAI,CAAG,aAcpH,IAXA4D,EAAa,6BAA+B5lE,IAP3B,CAOgC4hE,IAAI,CAACG,MAAM,CAAC96C,EAAK0yC,KAAK,CAAC,CAACqI,IAAI,CAAG,mEAAqEprC,EAAI0c,IAAI,CAAC,IAAM,kBAEhKtzC,IATa,CASR/lB,OAAO,CAACgtC,EAAKizC,UAAU,GAC5BprG,EAAIm4D,EAAKizC,UAAU,CAAC,EAAE,CACtB/rG,EAAI84D,EAAKizC,UAAU,CAAC,EAAE,CAAG,IAEzBprG,EAAIm4D,EAAKyyC,IAAI,CAAGzyC,EAAKizC,UAAU,CAC/B/rG,EAAI,EAAI84D,EAAKyyC,IAAI,CAAGzyC,EAAKizC,UAAU,EAIlCtjC,EAAM,EAAE,CAAE9nE,EAAIX,GAAKW,GAAKkxC,IAlBZ,CAkBiByiE,QAAQ,CAAE3zG,IACpCA,GAAKkxC,IAnBI,CAmBCwiE,QAAQ,EAClB5rC,EAAIlmE,IAAI,CAAC,kBAAoB5B,EAAI,IAAOA,CAAAA,IAAMm4D,EAAKyyC,IAAI,CAAG,YAAc,EAAC,EAAK,IAAM5qG,EAAI,aAQhG,MAAO2jC,CAFPA,GAAQmzE,EAFI,8BAA+B3+C,EAAKyyC,IAAI,CAAG,iEAAgE,EAAI9iC,EAAI0c,IAAI,CAAC,IAAM,iBAE7G,EAEf,QAClB,EAEAiyB,WAAY,SAAUn6D,CAAI,EACtB,MAAO,OAAS,CAAC,IAAI,CAACyuD,KAAK,CAAGzuD,EAAKnlB,OAAO,GAAKmlB,CAAG,EAAGkoC,IAAI,CAAC,IAAM,OACpE,EAEAuyB,cAAe,SAAU35D,CAAG,CAAE45D,CAAI,EAC9B,OAAOA,EAAO,IAAI,CAAClE,IAAI,CAACM,QAAQ,CAACh2D,EAAI,CAACi2D,IAAI,CAAG,IAAI,CAACP,IAAI,CAACM,QAAQ,CAACh2D,EAAI,CAAC81D,IAAI,EAG7EsD,UAAW,SAAUr6D,CAAC,CAAEg5D,CAAC,CAAEQ,CAAC,CAAEU,CAAW,CAAEC,CAAQ,CAAEF,CAAW,CAAEG,CAAQ,EACtE,GAAIA,EACA,MAAO,6BAGX,IAAIzuC,EAAM,EAAE,CAYZ,OAVIsuC,GACAtuC,EAAIlmE,IAAI,CAAC,eAET00G,GACAxuC,EAAIlmE,IAAI,CAAC,YAETy0G,GACAvuC,EAAIlmE,IAAI,CAAC,eAIT,iBACAu6C,EACA,YACA2rB,EAAI0c,IAAI,CAAC,KAHT,8EAOAmxB,EAPA,uBAUAR,EAVA,qBAaAh5D,EACA,KACAA,EACA,gBAER,EAEA86D,WAAY,SAAU9+C,CAAI,EACtB,IAAIn4D,EAEA8nE,EAAM,EAAE,CAMZ,IAJI3P,EAAKo7C,cAAc,EACnBzrC,EAAIlmE,IAAI,CAAC,aAGR5B,EAAI,EAAGA,EAAI,EAAGA,IACf8nE,EAAIlmE,IAAI,CAAC,oBAAsBsvC,IARpB,CAQyB6lE,aAAa,CAAC/2G,GAAK,KAAOkxC,IARnD,CAQwD6lE,aAAa,CAAC/2G,EAAG,IAAQ,gBAGhG,MAAO,UAAY,CAACm4D,EAAK4yC,KAAK,CAAGjjC,EAAI3wC,OAAO,GAAK2wC,CAAE,EAAG0c,IAAI,CAAC,IAAM,UACrE,EACA0yB,WAAY,SAAUzoF,CAAI,EACtB,MAAO,UAAYA,EAAK+1D,IAAI,CAAC,IAAM,UACvC,EAEAkyB,YAAa,SAAUv+C,CAAI,CAAEn3D,CAAI,EAC7B,MAAO,+DAAiE,IAAI,CAACi2G,UAAU,CAAC9+C,GAAQ,IAAI,CAAC++C,UAAU,CAACl2G,GAAQ,UAC5H,CACJ,EAeIm2G,GACIzE,EAAQ,iEACRC,EAAW,uIACXC,EAAe,cACfC,EAAM,SAAUuE,CAAG,CAAElxC,CAAG,EAGpB,IAFAkxC,EAAM7uB,OAAO6uB,GACblxC,EAAMA,GAAO,EACNkxC,EAAIj6G,MAAM,CAAG+oE,GAChBkxC,EAAM,IAAMA,EAEhB,OAAOA,CACX,EAGG,SAAUxwF,CAAI,CAAEywF,CAAI,CAAEC,CAAG,EAW5B,GAPyB,GAArB/9C,UAAUp8D,MAAM,EAAUoG,oBAAAA,OAAOzH,SAAS,CAAC0vB,QAAQ,CAACrxB,IAAI,CAACysB,IAAgC,KAAK9pB,IAAI,CAAC8pB,KACnGywF,EAAOzwF,EACPA,EAAO9mB,KAAAA,GAKPixC,MADJnqB,EAAOA,EAAO,IAAI3T,KAAK2T,GAAQ,IAAI3T,MAE/B,MAAMskG,YAAY,eAMG,UAArBF,CAHJA,EAAO9uB,OAAOivB,EAAGC,KAAK,CAACJ,EAAK,EAAIA,GAAQG,EAAGC,KAAK,CAAC,OAAU,GAGlDx4G,KAAK,CAAC,EAAG,KACdo4G,EAAOA,EAAKp4G,KAAK,CAAC,GAClBq4G,EAAM,IAGV,IAAI/9E,EAAI+9E,EAAM,SAAW,MACrBn7D,EAAIv1B,CAAI,CAAC2S,EAAI,OAAO,GACpBm+E,EAAI9wF,CAAI,CAAC2S,EAAI,MAAM,GACnB47E,EAAIvuF,CAAI,CAAC2S,EAAI,QAAQ,GACrBo8E,EAAI/uF,CAAI,CAAC2S,EAAI,WAAW,GACxBo+E,EAAI/wF,CAAI,CAAC2S,EAAI,QAAQ,GACrBq+E,EAAIhxF,CAAI,CAAC2S,EAAI,UAAU,GACvB+gB,EAAI1zB,CAAI,CAAC2S,EAAI,UAAU,GACvBs+E,EAAIjxF,CAAI,CAAC2S,EAAI,eAAe,GAC5Bu+E,EAAIR,EAAM,EAAI1wF,EAAKmxF,iBAAiB,GACpCC,EAAQ,CACJ77D,EAAGA,EACH87D,GAAIpF,EAAI12D,GAER+7D,IAAKV,EAAG1E,IAAI,CAACqF,QAAQ,CAACT,GAAAA,EAASA,EAAI,EAAI,EAAE,CAACvE,KAAK,CAE/CiF,KAAMZ,EAAG1E,IAAI,CAACqF,QAAQ,CAACT,GAAAA,EAASA,EAAI,EAAI,EAAE,CAACxE,IAAI,CAC/CiC,EAAGA,EAAI,EACPkD,GAAIxF,EAAIsC,EAAI,GACZmD,IAAKd,EAAG1E,IAAI,CAACyF,UAAU,CAACpD,EAAE,CAAChC,KAAK,CAChCqF,KAAMhB,EAAG1E,IAAI,CAACyF,UAAU,CAACpD,EAAE,CAACjC,IAAI,CAChCuF,GAAIlwB,OAAOotB,GAAG12G,KAAK,CAAC,GACpBy5G,KAAM/C,EACNryB,EAAGq0B,EAAI,IAAM,GACbgB,GAAI9F,EAAI8E,EAAI,IAAM,IAClBA,EAAGA,EACHiB,GAAI/F,EAAI8E,GACRC,EAAGA,EACHiB,GAAIhG,EAAI+E,GACRt9D,EAAGA,EACHw+D,GAAIjG,EAAIv4D,GACRr6C,EAAG4yG,EAAIgF,EAAG,GACVA,EAAGhF,EAAIgF,EAAI,GAAK36D,KAAK67D,KAAK,CAAClB,EAAI,IAAMA,GACrCz0B,EAAGu0B,EAAI,GAAK,IAAM,IAClBqB,GAAIrB,EAAI,GAAK,KAAO,KACpBsB,EAAGtB,EAAI,GAAK,IAAM,IAClBuB,GAAIvB,EAAI,GAAK,KAAO,KACpBwB,EAAG7B,EAAM,MAAQ,CAAC/uB,OAAO3hE,GAAM9I,KAAK,CAAC60F,IAAa,CAAC,GAAG,EAAE1lB,GAAG,GAAG37E,OAAO,CAACshG,EAAc,IACpFkF,EAAG,CAACA,EAAI,EAAI,IAAM,GAAE,EAAKjF,EAAI31D,IAAAA,KAAKC,KAAK,CAACD,KAAKkyD,GAAG,CAAC0I,GAAK,IAAa56D,KAAKkyD,GAAG,CAAC0I,GAAK,GAAK,GAEtFsB,EAAG,CAAC,KAAM,KAAM,KAAM,KAAK,CAACj9D,EAAI,GAAK,EAAI,EAAI,CAAE,EAAK,IAAQA,EAAI,IAAO,EAAC,EAAKA,EAAK,GAAG,EAG7F,OAAOk7D,EAAK/lG,OAAO,CAACohG,EAAO,SAAU2G,CAAE,EACnC,OAAOA,KAAMrB,EAAQA,CAAK,CAACqB,EAAG,CAAGA,EAAGp6G,KAAK,CAAC,EAAGo6G,EAAGl8G,MAAM,CAAG,EAC7D,EACJ,GAgEJ,SAASm8G,EAAmB1O,CAAI,EAC5B,IAAI2O,EAAW,IAAItmG,OAAO+pC,WAAW,GACjCw8D,EAAa5O,EAAKztG,MAAM,QAE5B,EAAiBo8G,EAAS/tF,QAAQ,GAAGruB,MAAM,EACnCs0B,SAASm5E,EAAM,IAAM,IAAM2O,EAAW,IAAM,IAC5CA,CAAAA,GAAY,GAAE,EAGX,CAAC,EAAYr8D,KAAKu8D,GAAG,CAAC,GAAID,IAAAA,EAAmB,EAAIA,IAAgB,GAAGhuF,QAAQ,GAAKo/E,GAGrFA,CACX,CAEA,OA3EAuM,EAAWM,KAAK,CAAG,CACf33C,QAAS,2BACT45C,UAAW,SACXC,WAAY,cACZC,SAAU,eACVC,SAAU,qBACVC,UAAW,UACXC,WAAY,aACZC,SAAU,eACVC,QAAS,aACTC,QAAS,WACTC,YAAa,wBACbC,eAAgB,8BACpB,EAGAjD,EAAWrE,IAAI,CAAG,CACdqF,SAAUpzF,EAAiB+tF,IAAI,CAACM,QAAQ,CACxCmF,WAAYxzF,EAAiB+tF,IAAI,CAACG,MAAM,EAI5ChgG,KAAKnX,SAAS,CAAC04G,MAAM,CAAG,SAAU6C,CAAI,CAAEC,CAAG,EACvC,OAAOH,EAAW,IAAI,CAAEE,EAAMC,EAClC,EAEArkG,KAAKo6F,SAAS,CAAG,SAAUgN,CAAG,CAAE7F,CAAM,EAClC,IAEI5tF,EADA0zF,EAAQD,EAAI/wF,KAAK,CADJ,aAKjB,OAAQkrF,GACJ,IAAK,IAED5tF,EAAO,IAAI3T,KAAKqmG,EAAmBgB,CAAK,CAAC,EAAE,EAAGA,CAAK,CAAC,EAAE,CAAG,EAAGA,CAAK,CAAC,EAAE,EACpE,KACJ,KAAK,IAED1zF,EAAO,IAAI3T,KAAKqmG,EAAmBgB,CAAK,CAAC,EAAE,EAAGA,CAAK,CAAC,EAAE,CAAG,EAAGA,CAAK,CAAC,EAAE,EACpE,KACJ,SAEI1zF,EAAO,IAAI3T,KAAKqmG,EAAmBgB,CAAK,CAAC,EAAE,EAAGA,CAAK,CAAC,EAAE,CAAG,EAAGA,CAAK,CAAC,EAAE,CAC5E,CAEA,OAAO1zF,CACX,EA4BO7B,CACX,EACH,C,0CCrpBD5kB,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,qBAdM,IAChB,EACH6+E,QAAS,6BACT7gF,MAAO,GACPD,SAAU,IACVmV,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,CAAE2tF,CAA4B,EAC/DA,EAA6BC,iBAAiB,CAACz7G,CAAO,CAAC,EAAE,EACzDA,EAAQu5B,EAAE,CAAC,WAAY,KACnBiiF,EAA6BC,iBAAiB,CAAC,KACnD,EACJ,CACJ,G,2CCXG,OAAMC,UAAqC72G,EAAAA,CAAWA,CACzDrD,aAAc,CACV,KAAK,GAEL,IAAI,CAACm6G,UAAU,CAAG,CAAEC,QAAS,IAAK,CACtC,CAEAH,kBAAkBn+G,CAAK,CAAE,CACrB,IAAI,CAACq+G,UAAU,CAACC,OAAO,CAAGt+G,CAC9B,CACJ,CAUA8D,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,4BARd,WACH,MAAO,CACHjC,SAAU,IACVC,MAAO,GACPpM,WAAYg1G,CAChB,CACJ,E,qEChBO,OAAMG,UAA+Bh3G,EAAAA,CAAWA,CACnDrD,YAAY8R,CAAU,CAAEwG,CAAM,CAAE,CAC5B,KAAK,GAEL,IAAI,CAACxG,UAAU,CAAGA,EAClB,IAAI,CAACwG,MAAM,CAAGA,EAEd,IAAI,CAACgiG,WAAW,CAAG,IAAI,CAACC,YAAY,CAACxgH,IAAI,CAAC,IAAI,CAClD,CAEAygH,eAAgB,CACZ,IAAI,CAACC,OAAO,EAChB,CAEAC,oBAAqB,CACjB,IAAMnvF,EAAS,IAAI,CAACkvF,OAAO,EACA,aAAvB,OAAOlvF,EAAOxvB,IAAI,GAClB,IAAI,CAACgL,QAAQ,CAAG,GAChBwkB,EAAO1qB,OAAO,CAAC,KACX,IAAI,CAACkG,QAAQ,CAAG,EACpB,GAER,CAEAwzG,cAAe,CACX,GAAI,CACI,IAAI,CAACI,aAAa,CAClB,IAAI,CAACD,kBAAkB,GAEvB,IAAI,CAACF,aAAa,GAGlB,WAAI,CAACliG,MAAM,CAAC80F,OAAO,EAAa,WAAI,CAAC90F,MAAM,CAAC+0F,KAAK,CAACD,OAAO,CACzD,IAAI,CAAC90F,MAAM,CAAC47E,MAAM,GAElB,IAAI,CAAC57E,MAAM,CAACsiG,UAAU,EAE9B,CAAE,MAAOj2E,EAAG,CACR3K,QAAQD,KAAK,CAAC4K,EAClB,CAEI,IAAI,CAACk2E,UAAU,EACf,IAAI,CAACviG,MAAM,CAAC4d,OAAO,CAAChd,SAAS,EAErC,CACJ,CAmBAmhG,EAAuBv6G,OAAO,CAAG,CAAC,aAAc,SAAS,CACzDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,eAlBU,CAC3BC,SAAU,CACN8B,YAAa,IACbG,SAAU,IACVL,MAAO,IACPg0G,QAAS,IACT1zG,SAAU,KACV2V,KAAM,KACNhW,UAAW,IACXo0G,gBAAiB,IACjBD,WAAY,KACZF,cAAe,IACnB,EACA11G,SCjEW,0RDkEXC,WAAYm1G,CAChB,E,gCElDA,SAASU,EAAcjpG,CAAU,CAAExO,CAAoB,CAAE1B,CAAQ,EAC7D,IAAI,CAACo5G,WAAW,CAAG13G,EAAqBS,SAAS,CAAC,kBAClD,IAAI,CAACk3G,kBAAkB,CAAG33G,EAAqBS,SAAS,CAAC,iDACzD,IAAI,CAACugB,MAAM,CAAG,GACd,IAAI,CAACxS,UAAU,CAAGA,EAClB,IAAI,CAACopG,WAAW,CAAG,GACnB,IAAI,CAACt5G,QAAQ,CAAGA,CACpB,CCPA,SAASu5G,EAAe73G,CAAoB,EACxC,IAAI,CAAC03G,WAAW,CAAG13G,EAAqBS,SAAS,CAAC,kBAClD,IAAI,CAACq3G,sBAAsB,CAAG,EAClC,CCAA,SAASC,EAAyB/iG,CAAM,CAAE1W,CAAQ,EAC9C,IAAI,CAAC05G,UAAU,CAAG,GAClB,IAAI,CAACC,YAAY,CAAG,KACpB,IAAI,CAACC,UAAU,CAAG,IAAI,CAACA,UAAU,EAAI,GACrC,IAAI,CAACC,eAAe,CAAG,IAAI,CAACA,eAAe,EAAI,GAC/C,IAAI,CAACC,uBAAuB,CAAG,CAAC,eAAe,EAAEpjG,EAAOkmB,GAAG,CAAC,CAAC,CAE7D,IAAI,CAAClmB,MAAM,CAAGA,EACd,IAAI,CAAC1W,QAAQ,CAAGA,EAEhB0W,EAAO5e,OAAO,CAAG,IAAI,CAACiiH,eAAe,CAAC5hH,IAAI,CAAC,IAAI,CACnD,C,SFhBAghH,EAAcj7G,OAAO,CAAG,CAAC,aAAc,uBAAwB,WAAW,CAW1Ei7G,EAAcx/G,SAAS,CAACqgH,mBAAmB,CAAG,WAC1C,IAAI,CAACt3F,MAAM,CAAG,GACd,IAAI,CAAC42F,WAAW,CAAG,GAEnB,IAAI,CAACt5G,QAAQ,CAAC,KACV,IAAI,CAACs5G,WAAW,CAAG,EACvB,EAAG,KAEH,IAAI,CAAC51B,QAAQ,CAAC,CAAE54D,OAAQ,IAAI,CAACA,MAAM,CAAE4uF,WAAY,EAAK,EAC1D,EAEAP,EAAcx/G,SAAS,CAACy5F,aAAa,CAAG,WACpC,IAAI,CAAC1wE,MAAM,CAAG,GACd,IAAI,CAAC42F,WAAW,CAAG,GACnB,IAAI,CAAC51B,QAAQ,CAAC,CAAE54D,OAAQ,IAAI,CAACA,MAAM,CAAE4uF,WAAY,EAAM,GACvD,IAAI,CAACl2G,SAAS,EAClB,EAEAxF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,gBAxCS,CAC1BC,SAAU,CACN6nB,OAAQ,IACRtnB,UAAW,IACXkgF,SAAU,IACVhhE,OAAQ,IACZ,EACArf,SGXW,q9CHYXC,WAAY61G,CAChB,GCGAI,EAAer7G,OAAO,CAAG,CAAC,uBAAuB,CAMjDq7G,EAAe5/G,SAAS,CAAC+pF,QAAQ,CAAG,SAAUg2B,CAAU,EACpD,IAAI,CAACF,sBAAsB,CAAGE,CAClC,EAEAH,EAAe5/G,SAAS,CAACsgH,eAAe,CAAG,WACvC,IAAI,CAACC,gBAAgB,CAAC,CAAEr7G,KAAM,IAAI,CAACA,IAAI,EAC3C,EAEA06G,EAAe5/G,SAAS,CAACwgH,eAAe,CAAG,WACvC,IAAI,CAACC,gBAAgB,CAAC,CAAEv7G,KAAM,IAAI,CAACA,IAAI,GACvC,IAAI,CAAC26G,sBAAsB,CAAG,EAClC,EAEAx7G,EAAAA,CAAUA,CAACgF,SAAS,CAAC,iBAhCU,CAC3BC,SAAU,CACNo3G,eAAgB,IAChBC,eAAgB,IAChBC,aAAc,IACd17G,KAAM,IACNq7G,iBAAkB,IAClBE,iBAAkB,GACtB,EACA/2G,SGZW,oVHaXC,WAAYi2G,CAChB,GCKAE,EAAyBv7G,OAAO,CAAG,CAAC,SAAU,WAAW,CAczDu7G,EAAyB9/G,SAAS,CAACoxB,YAAY,CAAG,SAAUD,CAAM,EAC9DA,EAAOtnB,SAAS,EACpB,EAEAi2G,EAAyB9/G,SAAS,CAAC6gH,UAAU,CAAG,WAClB,OAAtB,IAAI,CAACb,YAAY,EACjB,IAAI,CAAC35G,QAAQ,CACT,YACI,IAAI,CAAC0W,MAAM,CAACnG,UAAU,CAAC,IAAI,CAACupG,uBAAuB,CACvD,GAAE3hH,IAAI,CAAC,IAAI,EAGvB,EAEAshH,EAAyB9/G,SAAS,CAAC+pF,QAAQ,CAAG,SAAU54D,CAAM,CAAE4uF,CAAU,EAClEA,GACA,KAAI,CAACC,YAAY,CAAG7uF,CAAK,CAEjC,EAEA2uF,EAAyB9/G,SAAS,CAACogH,eAAe,CAAG,WACvB,OAAtB,IAAI,CAACJ,YAAY,GACjB,IAAI,CAACD,UAAU,CAAG,GAClB,IAAI,CAACC,YAAY,CAAG,KAE5B,EAEA37G,EAAAA,CAAUA,CAACgF,SAAS,CAAC,kBAvDW,CAC5BC,SAAU,CACNyxF,KAAM,IACN5zE,QAAS,IACT25F,YAAa,IACbC,eAAgB,IAChBC,cAAe,IACff,WAAY,KACZC,gBAAiB,IACrB,EACAx2G,SGfW,6+CHgBXC,WAAYm2G,CAChB,E,iCIIA,SAASrgC,EAASlpE,CAAU,CAAEoC,CAAO,CAAEtS,CAAQ,CAAE46G,CAAe,CAAE/iH,CAAsB,CAAEP,CAAe,CAAE8qD,CAAgB,EACvH,IAAIy4D,EAAkB,EAEtB,MAAO,CACHprG,SAAU,IACVC,MAAO,GAEPpM,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAOm3F,WAAW,CAAGhpF,QAAQjoB,OAAO,CAACzB,UACrCub,EAAOokG,SAAS,CAAGj2F,QAAQjoB,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,SAAS,CAAC,EAAE,EAClFpO,EAAOqkG,OAAO,CAAGl2F,QAAQjoB,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,OAAO,CAAC,EAAE,EAC9EpO,EAAOskG,YAAY,CAAGtkG,EAAOokG,SAAS,CAACj6E,QAAQ,CAAC,YAChDnqB,EAAOukG,QAAQ,CAAG,KAElB,IAAIC,EAAgB5iG,EAAO4iG,aAAa,MAClBv9G,IAAlBu9G,GAA+BA,KAAAA,EAC/BxkG,EAAOykG,cAAc,CAAGt2F,QAAQjoB,OAAO,CAACzB,SAASyxB,aAAa,CAACsuF,IACxD//G,SAASyiC,cAAc,CAAC,iBAC/BlnB,EAAOykG,cAAc,CAAGt2F,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,kBAEhElnB,EAAOykG,cAAc,CAAGt2F,QAAQjoB,OAAO,CAACzB,SAASg1G,IAAI,EAIzDz5F,EAAO0kG,yBAAyB,CAAG,SAAUC,CAAY,EACrDA,EAAaljH,IAAI,CAAC,OAAQ,WACtBue,EAAO4kG,sBAAsB,EACjC,EACJ,EAEA5kG,EAAO6kG,0BAA0B,CAAG,WAC5B7kG,EAAO8kG,eAAe,EACtB9kG,EAAO8kG,eAAe,CAACr3F,WAAW,CAAC,sBAGiBxmB,KAAAA,IAApD+Y,EAAOokG,SAAS,CAAC,EAAE,CAACW,UAAU,CAAC,gBAAgB,EAC/C/kG,EAAOokG,SAAS,CAAC,EAAE,CAAC/+G,YAAY,CAAC,gBAAiB,GAE1D,EAEA2a,EAAOglG,wBAAwB,CAAG,WAC1BhlG,EAAO8kG,eAAe,EACtB9kG,EAAO8kG,eAAe,CAACp3F,QAAQ,CAAC,sBAGoBzmB,KAAAA,IAApD+Y,EAAOokG,SAAS,CAAC,EAAE,CAACW,UAAU,CAAC,gBAAgB,EAC/C/kG,EAAOokG,SAAS,CAAC,EAAE,CAAC/+G,YAAY,CAAC,gBAAiB,GAE1D,EAEA2a,EAAOilG,oBAAoB,CAAG,WACtBjlG,EAAOklG,mBAAmB,EAC1BllG,EAAOklG,mBAAmB,CAACxhH,KAAK,GAGhCsc,EAAOmlG,oBAAoB,EAC3BnlG,EAAOmlG,oBAAoB,CAACzhH,KAAK,EAEzC,EAEAsc,EAAOy6C,KAAK,CAAG,SAAU++C,CAAS,EAC1Bx5F,EAAOo0F,OAAO,EACdp0F,EAAOolG,gBAAgB,GAG3BplG,EAAOqlG,SAAS,CAAG,GACnBrlG,EAAOslG,8BAA8B,CAAC9L,EAC1C,EAEAx5F,EAAOulG,YAAY,CAAG,SAAUjiH,CAAK,EACT,OAApB0c,EAAOukG,QAAQ,EACfvkG,CAAAA,EAAOukG,QAAQ,CAAGL,EAAgBhhH,UAAU,CAAC8c,EAAOokG,SAAS,CAAEpkG,EAAOqkG,OAAO,CAAE,SAAU/gH,CAAK,EAG1F,GAAIkiH,OAFqB5kH,EAAgB6kH,qBAAqB,CAACniH,EAAMM,MAAM,CAAE,GAAmB2B,OAAAA,GAA0BA,YAAAA,EAAcmgH,OAAO,CAACC,IAAI,EAIhJ,OADA3lG,EAAOukG,QAAQ,CAAC5/G,eAAe,GACxB2E,EAAS0W,EAAOolG,gBAAgB,CAE/C,EAAC,EAGLplG,EAAOukG,QAAQ,CAAChgH,aAAa,GAC7B,IAAIoB,EAAYqa,EAAOukG,QAAQ,CAAClgH,WAAW,EAEvCsB,CAAAA,EAAUrB,MAAM,CAAG,GACnB0b,EAAOukG,QAAQ,CAACzhH,cAAc,CAAC,KAAM6C,GAGzCqa,EAAO4lG,qBAAqB,CAAC5lG,EAAOokG,SAAS,CAAEpkG,EAAOqkG,OAAO,CACjE,EAGArkG,EAAOslG,8BAA8B,CAAG,WACpC,IAAIO,EAAkB,SAAUpgH,CAAI,EAChC,MAAOA,MAAAA,EAAK2tG,QAAQ,EAAa3tG,WAAAA,EAAK2tG,QAAQ,EAAiB3tG,OAAAA,EAAKK,YAAY,CAAC,yBAAqCL,EAAKkyB,SAAS,CAAClxB,QAAQ,CAACuZ,EAAO8lG,yBAAyB,CAClL,EAEA9lG,EAAOqkG,OAAO,CAAC5iH,IAAI,CAAC,QAAS,SAAU6B,CAAK,EACpC1C,EAAgB6kH,qBAAqB,CAACniH,EAAMM,MAAM,CAAEiiH,EAAiB,CAAEE,KAAM/lG,EAAOqkG,OAAO,KAC3FrkG,EAAOolG,gBAAgB,GAEvB97G,EAAS,WACL0W,EAAOgmG,QAAQ,CAACtiH,KAAK,EACzB,GAER,EACJ,EAEAsc,EAAO4kG,sBAAsB,CAAG,WAC5B39E,WAAW,WACFm2D,CAAQ,CAAC,EAAE,CAAClnE,aAAa,CAAC,YAAeknE,CAAQ,CAAC,EAAE,CAAClnE,aAAa,CAAC,WACpElW,EAAOolG,gBAAgB,EAE/B,EAAG,GACP,EAEAplG,EAAOolG,gBAAgB,CAAG,WACtBplG,EAAOo0F,OAAO,CAAG,GACjBp0F,EAAOm3F,WAAW,CAACvyG,MAAM,CAACob,EAAOimG,cAAc,CAAEjmG,EAAOkmG,oBAAoB,EAC5ElmG,EAAOqkG,OAAO,CAACz/G,MAAM,CAACob,EAAOimG,cAAc,EAC3C7oB,EAAS3vE,WAAW,CAAC,UACrBzN,EAAOmmG,YAAY,CAAC/oB,EAAU,IAC9Bp9E,EAAO6kG,0BAA0B,GAET,OAApB7kG,EAAOukG,QAAQ,EACfvkG,EAAOukG,QAAQ,CAAC5/G,eAAe,GAG/Bqb,EAAOqjG,eAAe,EAAIrjG,CAAM,CAACA,EAAOqjG,eAAe,CAAC,EACxDrjG,CAAM,CAACA,EAAOqjG,eAAe,CAAC,CAACrjG,EAAOomG,UAAU,CAExD,EAEApmG,EAAOqmG,yBAAyB,CAAG,SAAUC,CAAa,EACtDtmG,EAAO8lG,yBAAyB,CAAGQ,CACvC,CACJ,EACH,CAEDp4F,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAMo7F,OAAO,CAAG,GAChBp7F,EAAMutG,UAAU,CAAGxyF,KAAoB9sB,IAApB8sB,EAAMyyF,SAAS,CAClCxtG,EAAMytG,gBAAgB,CAAG1yF,EAAM2yF,cAAc,EAAI,GACjD1tG,EAAM8rG,eAAe,CAAG/wF,EAAM4yF,cAAc,CAAYx4F,QAAQjoB,OAAO,CAACzB,SAASyxB,aAAa,CAACnC,EAAM4yF,cAAc,GAAK,KACxH3tG,EAAMksG,mBAAmB,CAAGnxF,EAAM6yF,gBAAgB,CAAY1gH,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAACnC,EAAM6yF,gBAAgB,EAAI,KACjH5tG,EAAMmsG,oBAAoB,CAAGpxF,EAAM8yF,iBAAiB,CAAY3gH,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAACnC,EAAM8yF,iBAAiB,EAAI,KACpH7tG,EAAMotG,UAAU,CAAGryF,EAAMqyF,UAAU,EAAI,KAEvCryF,EAAMN,QAAQ,CAAC,aAAc,WACrBM,EAAMqyF,UAAU,GAAKptG,EAAMotG,UAAU,EACrCptG,CAAAA,EAAMotG,UAAU,CAAGryF,EAAMqyF,UAAU,EAAI,IAAG,CAElD,GAEAptG,EAAMqqG,eAAe,CAAGtvF,EAAMsvF,eAAe,CAC7CrqG,EAAMqsG,SAAS,CAAG,GAClBrsG,EAAM8tG,UAAU,CAAG,GACnB9tG,EAAM+tG,aAAa,CAAGhzF,KAAwB9sB,IAAxB8sB,EAAMgzF,aAAa,CAErCr7D,EAAiBgD,KAAK,CACtB11C,EAAMitG,cAAc,CAAG,MAEvBjtG,EAAMitG,cAAc,CAAG,QAGvBlyF,EAAMqvF,uBAAuB,EAC7BpqG,EAAM4G,GAAG,CAACmU,EAAMqvF,uBAAuB,CAAEpqG,EAAMusG,YAAY,EAG/DvsG,EAAMguG,YAAY,CAAG,WACbjzF,KAAuB9sB,IAAvB8sB,EAAMkzF,YAAY,EAClBjuG,EAAMkuG,YAAY,CAAG/4F,QAAQjoB,OAAO,CAAC8S,EAAMorG,SAAS,CAAC,EAAE,CAACh2F,sBAAsB,CAAC,cAG3EpV,EAAMkuG,YAAY,CAAC,EAAE,EACrBluG,EAAMkuG,YAAY,CAACtiH,MAAM,CAACoU,EAAMitG,cAAc,EAC9CjtG,EAAMmuG,oBAAoB,CAACnuG,EAAMkuG,YAAY,EAC7CluG,EAAMkuG,YAAY,CAACE,KAAK,CAAG,IAE3BpuG,EAAMmuG,oBAAoB,CAACnuG,EAAMorG,SAAS,GAG9CprG,EAAMorG,SAAS,CAAC3iH,IAAI,CAACuX,EAAMitG,cAAc,CAAE,SAAU55E,CAAC,EAClDA,EAAEroC,eAAe,EACrB,EAER,EAEAgV,EAAMmuG,oBAAoB,CAAG,SAAUE,CAAW,EAC9CA,EAAY5lH,IAAI,CAACuX,EAAMitG,cAAc,CAAE,SAAU55E,CAAC,EAC9CrzB,EAAMsuG,cAAc,CAACj7E,EACzB,GAEItY,EAAMwzF,eAAe,EACrBF,EAAY5lH,IAAI,CAAC,QAAS,SAAU4qC,CAAC,EAC7BA,EAAEtoC,OAAO,GAAK5C,EAAuBQ,UAAU,CAACG,SAAS,EACzDkX,EAAMsuG,cAAc,CAACj7E,EAE7B,EAER,EAGKrzB,EAAMsrG,YAAY,EACnBtrG,EAAMguG,YAAY,GAGtBhuG,EAAMmtG,YAAY,CAAG,SAAUjgH,CAAO,CAAEshH,CAAQ,EAC5C,IAAIC,EAASt5F,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACyzG,oBAAoB,CAAC,SAAS,CAAC,EAAE,EAErE8N,GACAA,EAAO9kH,IAAI,CAAC,gBAAiB6kH,EAErC,EAEAxuG,EAAMsuG,cAAc,CAAG,SAAUj7E,CAAC,EAC9BrzB,EAAMo7F,OAAO,CAAG,CAACp7F,EAAMo7F,OAAO,CAG1Bp7F,EAAMo7F,OAAO,EACbp7F,EAAMssG,8BAA8B,GACpCtsG,EAAMgtG,QAAQ,CAAGvhH,SAASijH,aAAa,CACvCxhH,EAAQwnB,QAAQ,CAAC,UACjB1U,EAAMmtG,YAAY,CAACjgH,EAAS,IAC5B8S,EAAMgsG,wBAAwB,GAC9BhsG,EAAMisG,oBAAoB,GAEtBjsG,EAAMytG,gBAAgB,CACtBztG,EAAM2uG,0BAA0B,CAACt7E,GAEjCrzB,EAAM4uG,kBAAkB,GAG5B5uG,EAAM4sG,qBAAqB,CAAC1/G,EAAS8S,EAAMqrG,OAAO,EAGlDrrG,EAAMqrG,OAAO,CAAC5iH,IAAI,CAACuX,EAAMitG,cAAc,CAAE,SAAU55E,CAAC,EAC5CA,GACAA,EAAEroC,eAAe,EAEzB,GAGAgV,EAAMktG,oBAAoB,CAAG,SAAU5iH,CAAK,EAGf,OAFA1C,EAAgB6kH,qBAAqB,CAACniH,EAAMM,MAAM,CAAE,GAAmB2B,OAAAA,GAA0BA,YAAAA,EAAcmgH,OAAO,CAACC,IAAI,GAGhJr8G,EAAS0P,EAAMosG,gBAAgB,CAEvC,EACApsG,EAAMm+F,WAAW,CAAC11G,IAAI,CAACuX,EAAMitG,cAAc,CAAEjtG,EAAMktG,oBAAoB,EAEnEnyF,EAAM8zF,kBAAkB,EACxB7uG,EAAMusG,YAAY,IAGtBvsG,EAAMosG,gBAAgB,GAKtBjB,GAAmBA,GAAAA,GAAwBA,GAAmBj+G,GAC1Di+G,EAAgBh6E,QAAQ,CAAC,WACrBg6E,EAAgBnrG,KAAK,EAAImrG,EAAgBnrG,KAAK,IAAMmrG,EAAgBnrG,KAAK,GAAGosG,gBAAgB,EAC5FjB,EAAgBnrG,KAAK,GAAGosG,gBAAgB,GAKpDjB,EAAkBj+G,EAEdmmC,GACAA,EAAEroC,eAAe,EAEzB,EAGAgV,EAAM4G,GAAG,CAAC,WAAY,WAClB5G,EAAMm+F,WAAW,CAACvyG,MAAM,CAACoU,EAAMitG,cAAc,CAAEjtG,EAAMosG,gBAAgB,EACrEpsG,EAAMqrG,OAAO,CAACz/G,MAAM,CAACoU,EAAMitG,cAAc,EAElB,OAAnBjtG,EAAMurG,QAAQ,GACdvrG,EAAMurG,QAAQ,CAAC5/G,eAAe,GAC9BqU,EAAMurG,QAAQ,CAACnjH,OAAO,CAAG,MAG7B0mH,GACJ,GAEA5hH,EAAQu5B,EAAE,CAAC,WAAY,WACnBzmB,EAAMsG,QAAQ,EAClB,GAEAtG,EAAM+uG,eAAe,CAAG,WACpB/uG,EAAMgvG,cAAc,CAAGhvG,EAAMivG,YAAY,CAACx5D,MAAM,CAAGz1C,EAAM++F,kBAAkB,CAAG,EAC9E/+F,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAElqD,OAAQz1C,EAAMgvG,cAAc,CAAG,IAAK,EAC5D,EAEAhvG,EAAMkvG,aAAa,CAAG,CAClBC,MAAO,SAAUjiH,CAAO,EACpBA,EAAQwnB,QAAQ,CAAC,WACrB,EACA+sC,MAAO,SAAUv0D,CAAO,EACpBA,EAAQunB,WAAW,CAAC,WACxB,CACJ,EAEAzU,EAAM4sG,qBAAqB,CAAG,SAAU1/G,CAAO,CAAEkiH,CAAM,EAEnD,GAAKpvG,EAAM+tG,aAAa,EAKxB/tG,EAAMkvG,aAAa,CAACztD,KAAK,CAACv0D,GAE1B,IAGImiH,EACAC,EAJAC,EAAaH,CAAM,CAAC,EAAE,CAAC55D,qBAAqB,GAC5Cg6D,EAAe5sG,EAAQo8F,WAAW,CAMlCh/F,EAAMyrG,cAAc,EAAIzrG,EAAMyrG,cAAc,CAAC,EAAE,CAE/C6D,EAAmBG,EADOhE,cAAc,CAAC,EAAE,CAACj2D,qBAAqB,GAC5BypD,MAAM,CAAGsQ,EAAWtQ,MAAM,CAAG,GAGlEoQ,EAAkBhkE,KAAKC,KAAK,CAACkkE,IAAAA,GAE7BF,EAAmBE,EAAeD,EAAWtQ,MAAM,CAAGoQ,GAGtDC,EAAmB,GACnBtvG,EAAMkvG,aAAa,CAACC,KAAK,CAACjiH,GAElC,EAEA8S,EAAM2uG,0BAA0B,CAAG,SAAUt7E,CAAC,EAC1C,IAAIq8E,EAAe1vG,EAAMorG,SAAS,CAAC,EAAE,CAAC51D,qBAAqB,GACvDm6D,EAAa3vG,EAAMqrG,OAAO,CAAC,EAAE,CAAC71D,qBAAqB,GACnDo6D,EAAcl9D,EAAiBgD,KAAK,CAAGriB,EAAEw8E,aAAa,CAACC,cAAc,CAAC,EAAE,CAACC,OAAO,CAAG18E,EAAE28E,KAAK,EAAI38E,EAAE08E,OAAO,CACvGE,EAAkBP,EAAanQ,IAAI,CAAGoQ,EAAWjgC,KAAK,CAAG,EACzDwgC,EAAa,CAGbN,CAAAA,GAAeK,EACfjwG,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAEJ,KAAM,EAAG,IAI7B2Q,EAAaN,EAAcK,EAC3BjwG,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAEJ,KAAM2Q,EAAa,IAAK,GAEpD,EAEAlwG,EAAM4uG,kBAAkB,CAAG,WACnB5uG,CAAAA,EAAMqsG,SAAS,EAAIrsG,EAAMqrG,OAAO,CAAC,EAAE,CAACv5B,YAAY,GAAK9xE,EAAMmwG,uBAAuB,IAClFnwG,EAAMmwG,uBAAuB,CAAGnwG,EAAMqrG,OAAO,CAAC,EAAE,CAAC71D,qBAAqB,GAAGC,MAAM,CAC/Ez1C,EAAMqsG,SAAS,CAAG,IAGtBrsG,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAElqD,OAAQ,EAAG,GAC/Bz1C,EAAMivG,YAAY,CAAGjvG,EAAMqrG,OAAO,CAAC,EAAE,CAAC71D,qBAAqB,GAC3Dx1C,EAAMowG,mBAAmB,CAAGpwG,EAAMyrG,cAAc,CAAC,EAAE,CAACj2D,qBAAqB,GACzEx1C,EAAMqwG,eAAe,CAAGrwG,EAAMorG,SAAS,CAAC,EAAE,CAACr5B,WAAW,CACtD/xE,EAAMswG,aAAa,CAAGtwG,EAAMivG,YAAY,CAACv/B,KAAK,CAC9C1vE,EAAMgvG,cAAc,CAAGhvG,EAAMivG,YAAY,CAACx5D,MAAM,CAChDz1C,EAAMuwG,gBAAgB,CAAGvwG,EAAMivG,YAAY,CAAC1P,IAAI,CAAGv/F,EAAMowG,mBAAmB,CAAC7Q,IAAI,CACjFv/F,EAAM++F,kBAAkB,CAAGruG,OAAOsuG,WAAW,CAAGh/F,EAAMivG,YAAY,CAAChQ,MAAM,CAGpEj/F,EAAMwwG,WAAW,CAIlBxwG,EAAMywG,iBAAiB,CAAGzwG,EAAMowG,mBAAmB,CAACM,KAAK,CAAG1wG,EAAMivG,YAAY,CAACyB,KAAK,EAHpF1wG,EAAMwwG,WAAW,CAAG,CAACxwG,EAAMswG,aAAa,CAAGtwG,EAAMqwG,eAAe,EAAI,EACpErwG,EAAMywG,iBAAiB,CAAGzwG,EAAMowG,mBAAmB,CAACM,KAAK,CAAI1wG,CAAAA,EAAMivG,YAAY,CAACyB,KAAK,CAAG1wG,EAAMwwG,WAAW,GAMzGxwG,EAAMywG,iBAAiB,CAAG,IAC1BzwG,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAE,cAAe,EAAG,GACtC3/F,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAEJ,KAAM,EAAG,GAC7Bv/F,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAE+Q,MAAO,GAAI,IAG/B1wG,EAAMuwG,gBAAgB,CAAG,IACzBvwG,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAE,cAAe,IAAMt0D,KAAKslE,CAAC,GAC/C3wG,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAEJ,KAAM,GAAI,GAC9Bv/F,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAE+Q,MAAO,EAAG,IAI7B1wG,EAAM+tG,aAAa,GAChB/tG,EAAM++F,kBAAkB,CAAG,EAC3B/+F,EAAM+uG,eAAe,GAEjB/uG,EAAM++F,kBAAkB,CAAG/+F,EAAMmwG,uBAAuB,CAAG,EAAInwG,EAAMgvG,cAAc,CAAG,EACtFhvG,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAElqD,OAAQ,EAAG,GAE/Bz1C,EAAM+uG,eAAe,IAO7B1jE,KAAK67D,KAAK,CAAClnG,EAAMswG,aAAa,IAAMjlE,KAAK67D,KAAK,CAAClnG,EAAM4wG,wBAAwB,GAAM5wG,EAAMutG,UAAU,GAE/FvtG,EAAMswG,aAAa,CAAGtwG,EAAMqwG,eAAe,CACvCrwG,EAAMywG,iBAAiB,CAAG,GAAKzwG,EAAMuwG,gBAAgB,CAAG,CAACvwG,EAAMswG,aAAa,CAAGtwG,EAAMqwG,eAAe,EAAI,IACxGrwG,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAE,cAAe,IAAM3/F,EAAMswG,aAAa,CAAG,EAAI,IAAK,GACxEtwG,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAEJ,KAAM,KAAM,GAChCv/F,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAE+Q,MAAO,EAAG,KAIlC1wG,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAE,cAAe,EAAG,GACtC3/F,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAEJ,KAAM,EAAG,GAC7Bv/F,EAAMqrG,OAAO,CAAC1L,GAAG,CAAC,CAAE+Q,MAAO,EAAG,IAIlC1wG,EAAM4wG,wBAAwB,CAAG5wG,EAAMswG,aAAa,CAE5D,EAEqBriH,KAAAA,IAAjB8sB,EAAM+F,MAAM,EAEZ/F,EAAMN,QAAQ,CAAC,SAAU,SAAUo2F,CAAa,EAExC/zD,CAA6B,GAA7BA,KAAKC,KAAK,CAAC8zD,GACX7wG,EAAMsuG,cAAc,GAEpBtuG,EAAMosG,gBAAgB,EAE9B,GAGJ,IAAI0C,EAAqBtuG,EAAWoG,GAAG,CAAC,kBAAmB,WACvD5G,EAAMosG,gBAAgB,EAC1B,EACJ,CACJ,CACJ,C,oCA/cA99G,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,WAAY,WAC7B,MAAO,CACHhC,MAAO,GAEPkV,KAAM,SAAUlV,CAAK,EACbA,EAAM8wG,KAAK,EAAI9wG,EAAMixB,IAAI,EACzBjxB,EAAMixB,IAAI,EAElB,CACJ,CACJ,GAEA3iC,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,WAAY0nE,GACjCA,EAASl7E,OAAO,CAAG,CAAC,aAAc,UAAW,WAAY,kBAAmB,8BAA+B,kBAAmB,mBAAmB,E,8BCnBrG,OAEtCuiH,EACFriH,YAAYsiH,CAAS,CAAE,CACnB,IAAI,CAACC,SAAS,CAAGD,CACrB,CAEAE,0BAA2B,CACvB,OAAO,gCAAkEzmH,IAAI,CAAC,IACnE,IAAI,CAACwmH,SAAS,CAAC55G,GAAG,CAAC,gCAElC,CAEA85G,uBAAwB,CACpB,OAAO,gCAA8D1mH,IAAI,CAAC,IAC/D,IAAI,CAACwmH,SAAS,CAAC55G,GAAG,CAAC,4BAElC,CAEA+5G,gCAAiC,CAC7B,OAAO,gCAAkE3mH,IAAI,CAAC,IACnE,IAAI,CAACwmH,SAAS,CAAC55G,GAAG,CAAC,+BAElC,CACJ,CAEA05G,EAA2BviH,OAAO,CAAG,CAAC,YAAY,CAClDF,EAAAA,CAAUA,CAACC,OAAO,CAAC,6BAA8BwiH,E,kBCtBjD,SAASM,IACL,MAAO,CACHtxG,SAAU,IACVmV,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAM4U,KAAK,CAAC,6BAA8BmG,EAAMu2F,oBAAoB,CAAEpkH,CAAO,CAAC,EAAE,CACpF,CACJ,CACJ,CAVAoB,E,OAAAA,CAAUA,CAAC0T,SAAS,CAAC,uBAAwBqvG,GAC7CA,EAAqB7iH,OAAO,CAAG,EAAE,E,gBCCjC,SAAS+iH,EAAaC,CAAM,EACxB,IAAI,CAACC,SAAS,CAAG,IAAIr2E,IAAIo2E,EAAOxgH,GAAG,CAAC,GAAO,CAACqiC,EAAG,EAAE,CAAC,EACtD,C,0BAOAk+E,EAAatnH,SAAS,CAACw8B,EAAE,CAAG,SAAUswE,CAAS,CAAEtnG,CAAQ,EACrD,IAAI+hH,EAAS,IAAI,CAACC,SAAS,CAACp6G,GAAG,CAAC0/F,EACjB9oG,MAAAA,IAAXujH,IACAA,EAAS,EAAE,CACX,IAAI,CAACC,SAAS,CAACv3D,GAAG,CAAC68C,EAAWya,IAGlCA,EAAOzhH,IAAI,CAACN,EAChB,EAEA8hH,EAAatnH,SAAS,CAACgtC,GAAG,CAAG,SAAU8/D,CAAS,CAAEtnG,CAAQ,EACtD,IAAM+hH,EAAS,IAAI,CAACC,SAAS,CAACp6G,GAAG,CAAC0/F,GAClC,GAAIya,KAAWvjH,IAAXujH,EACA,OAGJ,IAAM7jH,EAAQ6jH,EAAOvhG,SAAS,CAAC,GAASyhG,IAAQjiH,EAClC,MAAV9B,GACA6jH,EAAOxhH,MAAM,CAACrC,EAAO,GAGH,IAAlB6jH,EAAOlmH,MAAM,EACb,IAAI,CAACmmH,SAAS,CAAC34G,MAAM,CAACi+F,EAE9B,EAOAwa,EAAatnH,SAAS,CAAC6sG,IAAI,CAAG,SAAUC,CAAS,CAAEvsG,CAAK,EACpD,IAAMgnH,EAAS,IAAI,CAACC,SAAS,CAACp6G,GAAG,CAAC0/F,EACnB9oG,MAAAA,IAAXujH,GAIJA,EAAO5kH,OAAO,CAAC,GAAc6C,EAASjF,GAC1C,EAMA+mH,EAAatnH,SAAS,CAAC0nH,YAAY,CAAG,SAAUH,CAAM,EAClDA,EAAO5kH,OAAO,CAAC,GAAe,IAAI,CAAC6kH,SAAS,CAAC34G,MAAM,CAACi+F,GACxD,C,uECtDAzoG,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,aAAc,CAC/B,WACA,aACA,yBACA,UACA,SAAU1R,CAAQ,CAAEkQ,CAAU,CAAEoxG,CAAsB,CAAE9pH,CAAO,EAI3D,IAAI0vG,EAAc/rG,SAASyiC,cAAc,CAAC,oBACtCupE,EAAkBD,EAAcA,EAAY1lB,YAAY,CAAG,EAC/D4lB,IAAAA,QAAgB,CAAC,gCAAiC,CAC9CzrF,MAAO,WACHwrF,EAAkBD,EAAcA,EAAY1lB,YAAY,CAAG,CAC/D,EACA6lB,QAAS,WACLF,EAAkBD,EAAcA,EAAY1lB,YAAY,CAAG,CAC/D,CACJ,GAEA,IAAI+/B,EAAgB,CAAC,EACjBC,EAAe,CAAC,EAEpB,MAAO,CACH/xG,SAAU,IACVC,MAAO,CACH+xG,cAAe,GACnB,EACA78F,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,MA8a7Bi3F,EA5aJ,IAAIC,EAAQ,CAAC,CAGTl3F,CAA2B,SAA3BA,EAAMm3F,gBAAgB,CACtBlyG,EAAMmyG,mBAAmB,CAAG,GAE5BnyG,EAAMmyG,mBAAmB,CAAG,GAIhCnyG,EAAMoyG,gBAAgB,CAAG,CAAC,SAAU,aAAa,CAGjDpyG,EAAMqyG,eAAe,CAAG,WACpBJ,EAAM7G,SAAS,CAAGj2F,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,SAAS,CAAC,EAAE,EAChF68F,EAAM/D,YAAY,CAAG/4F,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,YAAY,CAAC,EAAE,EACtF68F,EAAMK,UAAU,CAAGn9F,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,UAAU,CAAC,EAAE,EAClF68F,EAAMM,QAAQ,CAAGp9F,QAAQjoB,OAAO,CAAC+kH,EAAMK,UAAU,CAAC,EAAE,CAACl9F,sBAAsB,CAAC,QAAQ,CAAC,EAAE,EACnF2F,EAAMy3F,OAAO,EACbxyG,CAAAA,EAAMyyG,oBAAoB,CAAGhnH,SAAS2pB,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,CAEhG,EAIApV,EAAM0yG,uBAAuB,CAAG,WAG5BC,QADwBzlH,OAAO,CAAC+kH,EAAM/D,YAAY,CAAC,EAAE,CAACvN,oBAAoB,CAAC,MACjEl4G,IAAI,CAACwpH,EAAMW,UAAU,CAAG,WAAY,SAAUtoH,CAAK,EACzDA,EAAMuoH,wBAAwB,EAClC,GAIAC,QAD4B5lH,OAAO,CAAC+kH,EAAM/D,YAAY,CAAC,EAAE,CAAC7gH,gBAAgB,CAAC,eAC7D5E,IAAI,CAACwpH,EAAMW,UAAU,CAAG,WAAY,SAAUtoH,CAAK,EAC7DA,EAAMuoH,wBAAwB,EAClC,GAIAE,QADyB7lH,OAAO,CAAC+kH,EAAM/D,YAAY,CAAC,EAAE,CAAC94F,sBAAsB,CAAC,cACnE3sB,IAAI,CAACwpH,EAAMW,UAAU,CAAG,WAAY,SAAUtoH,CAAK,EAC1DA,EAAMuoH,wBAAwB,EAClC,GAI2B,SAAvB93F,EAAMi4F,YAAY,EAElBC,QADsC/lH,OAAO,CAAC+kH,EAAM7G,SAAS,CAAC,EAAE,CAAC/9G,gBAAgB,CAAC,eAC1D5E,IAAI,CAACwpH,EAAMW,UAAU,CAAG,WAAY,SAAUtoH,CAAK,EACvEA,EAAMuoH,wBAAwB,EAClC,EAER,EAGA7yG,EAAMkzG,4BAA4B,CAAG,WACjCjB,EAAMK,UAAU,CAAC,EAAE,CAAC5mH,gBAAgB,CAAC,gBAAiBsU,EAAMmzG,YAAY,CAAE,IAC1ElB,EAAMK,UAAU,CAAC,EAAE,CAAC5mH,gBAAgB,CAAC,sBAAuBsU,EAAMmzG,YAAY,CAAE,IAChFlB,EAAMK,UAAU,CAAC,EAAE,CAAC5mH,gBAAgB,CAAC,mBAAoBsU,EAAMmzG,YAAY,CAAE,IAC7ElB,EAAMK,UAAU,CAAC,EAAE,CAAC5mH,gBAAgB,CAAC,kBAAmBsU,EAAMmzG,YAAY,CAAE,IAC5ElB,EAAMK,UAAU,CAAC,EAAE,CAAC5mH,gBAAgB,CAAC,iBAAkBsU,EAAMmzG,YAAY,CAAE,GAC/E,EAGAnzG,EAAMmzG,YAAY,CAAG,SAAU9/E,CAAC,EACJ,KAApB4+E,EAAMmB,SAAS,EAAapzG,EAAMoyG,gBAAgB,CAACrkH,OAAO,CAACslC,EAAE8lD,YAAY,EAAI,IAC7E7oF,EAAS,WACL0P,EAAMqzG,gBAAgB,CAAC,QACvBnmH,EAAQunB,WAAW,CAAC,qBACpBzU,EAAMy3C,cAAc,EACxB,EAAG,GAEX,EAEAz3C,EAAMy3C,cAAc,CAAG,WACnB,IAOI67D,EAAWC,EAPXC,EAAgB9iH,OAAOsuG,WAAW,EAAIvzG,SAAS60G,eAAe,CAACmT,YAAY,EAAIhoH,SAASg1G,IAAI,CAACgT,YAAY,CACzGC,EAAiBxmH,CAAO,CAAC,EAAE,CAAC4kF,YAAY,CACxC6hC,EAAqBloH,SAASgZ,GAAG,CAAGhZ,SAASkmC,SAAS,CAAGjhC,OAAO0uG,WAAW,CAC3ErkF,EAAMy3F,OAAO,EACbmB,CAAAA,EAAqB3zG,EAAMyyG,oBAAoB,CAAC9gF,SAAS,EAE7D,IAAIiiF,EAAsBnoH,SAASgZ,GAAG,CAAGhZ,SAASumF,UAAU,CAAGthF,OAAOmjH,WAAW,CAIjF,GAAIH,EAAiBF,EAAgB/b,EAAiB,CAElD,IAAIqc,EAAiBN,EAAgBF,CADrCA,EAAYpmH,CAAO,CAAC,EAAE,CAACsoD,qBAAqB,EAAC,EACEC,MAAM,CAAG69D,EAAU39D,GAAG,CAAG,EAEpE29D,CAAAA,EAAU39D,GAAG,CAAG8hD,IAChB8b,EAAc9b,EAAkB6b,EAAU39D,GAAG,CAAG,GAEhDi8D,EAAuBmC,OAAO,CAAC,CAC3BC,SAAU,IACVC,UAAWrC,EAAuBsC,gBAAgB,CAACC,cAAc,CACjE/wG,KAAM,SAAUgxG,CAAK,EACjB1jH,OAAO2jH,QAAQ,CAACT,EAAqBD,EAAqBJ,EAAca,EAC5E,CACJ,IAGAN,EAAiB,GACjBlC,EAAuBmC,OAAO,CAAC,CAC3BC,SAAU,IACVC,UAAWrC,EAAuBsC,gBAAgB,CAACC,cAAc,CACjE/wG,KAAM,SAAUgxG,CAAK,EACbr5F,EAAMy3F,OAAO,CACbxyG,EAAMyyG,oBAAoB,CAAC9gF,SAAS,CAAGgiF,EAAqBtoE,KAAKkyD,GAAG,CAACuW,GAAkBM,EAEvF1jH,OAAO2jH,QAAQ,CAACT,EAAqBD,EAAqBtoE,KAAKkyD,GAAG,CAACuW,GAAkBM,EAE7F,CACJ,EAER,MAKIb,EAAcD,CAFdA,EAAYpmH,CAAO,CAAC,EAAE,CAACsoD,qBAAqB,EAAC,EAErBG,GAAG,CAAG8hD,EAAkB,GAEhDma,EAAuBmC,OAAO,CAAC,CAC3BC,SAAU,IACVC,UAAWrC,EAAuBsC,gBAAgB,CAACC,cAAc,CACjE/wG,KAAM,SAAUgxG,CAAK,EACbr5F,EAAMy3F,OAAO,CACbxyG,EAAMyyG,oBAAoB,CAAC9gF,SAAS,CAAGgiF,EAAqBtoE,KAAKkyD,GAAG,CAACuW,GAAkBM,EAEvF1jH,OAAO2jH,QAAQ,CAACT,EAAqBD,EAAqBJ,EAAca,EAEhF,CACJ,EAER,EAEAp0G,EAAMs0G,kBAAkB,CAAG,SAAUxpH,CAAM,EAEvCwF,EAAS,WAGL2hH,EAAMK,UAAU,CAAC79F,WAAW,CAAC,uBAEzB3pB,WAAAA,EAEAoC,EAAQwnB,QAAQ,CAAC,YACV5pB,aAAAA,EAEPoC,EAAQunB,WAAW,CAAC,YAGpBvnB,EAAQqnH,WAAW,CAAC,WAE5B,EAAG,GACP,EAEAv0G,EAAMqzG,gBAAgB,CAAG,SAAUmB,CAAW,EAC1C,OAAQA,GACJ,IAAK,OACDvC,EAAMK,UAAU,CAAC59F,QAAQ,CAAC,uBAC1Bu9F,EAAMK,UAAU,CAAC3S,GAAG,CAAC,CAAElqD,OAAQ,MAAO,GACtC,KAEJ,KAAK,aACD,IAAIg/D,EAAkBxC,EAAMM,QAAQ,CAAC,EAAE,CAACzgC,YAAY,CAEhD2iC,EAAkB,EAClBxC,EAAMK,UAAU,CAAC3S,GAAG,CAAC,CAAElqD,OAAQg/D,EAAkB,IAAK,GAEtDz0G,EAAMqzG,gBAAgB,CAAC,QAE3B,KAEJ,KAAK,OACDpB,EAAMK,UAAU,CAAC3S,GAAG,CAAC,CAAElqD,OAAQ,KAAM,EAK7C,CACJ,EAGAz1C,EAAM00G,QAAQ,CAAG,WACbzC,EAAMmB,SAAS,CAAG,GAEdnB,EAAM0C,UAAU,EAChB1C,EAAM2C,yBAAyB,GAMnCtkH,EAAS,WAGL0P,EAAMqzG,gBAAgB,CAAC,OAC3B,EAAG,GACP,EAGArzG,EAAM60G,MAAM,CAAG,WACX5C,EAAMmB,SAAS,CAAG,GAEdnB,EAAM0C,UAAU,GAChB1C,EAAM2C,yBAAyB,CAAG50G,EAAM4G,GAAG,CAAC,oBAAqB,WAEzDirG,CAAa,CAACI,EAAM0C,UAAU,CAAC,EAAIznH,CAAO,CAAC,EAAE,EAAI2kH,CAAa,CAACI,EAAM0C,UAAU,CAAC,EAAI7C,CAAY,CAACG,EAAM0C,UAAU,CAAC,EAAI1C,EAAMmB,SAAS,EACrIpzG,EAAM80G,gBAAgB,EAE9B,GAGAjD,CAAa,CAACI,EAAM0C,UAAU,CAAC,CAAGznH,CAAO,CAAC,EAAE,CAEpD,EAEA8S,EAAM80G,gBAAgB,CAAG,WAEjB/5F,UAAAA,EAAMg6F,SAAS,EAGf/0G,EAAMqzG,gBAAgB,CAAC,QACvBnmH,EAAQqnH,WAAW,CAAC,cAKpBv0G,EAAMqzG,gBAAgB,CAAC,cACvBrzG,EAAMs0G,kBAAkB,IAIxBrC,EAAMmB,SAAS,CACfpzG,EAAM00G,QAAQ,GAId10G,EAAM60G,MAAM,GAGhB70G,EAAMg1G,kBAAkB,CAAC/C,EAAMmB,SAAS,CAC5C,EAEApzG,EAAMi1G,eAAe,CAAG,WACpB,IAAIC,EAAan6F,EAAMk6F,eAAe,CAElCC,GACAl1G,EAAM4G,GAAG,CAACsuG,EAAY,WAClBhoH,EAAQunB,WAAW,CAAC,YACpBzU,EAAM00G,QAAQ,EAClB,EAER,EAEA10G,EAAMg1G,kBAAkB,CAAG,SAAUxG,CAAQ,EACzCyD,EAAM/D,YAAY,CAAC,EAAE,CAAC7hH,YAAY,CAAC,gBAAiBmiH,EAAS70F,QAAQ,GACzE,EAGA3Z,EAAMixB,IAAI,CAAG,WACTjxB,EAAMm1G,MAAM,CAAG,GAEflD,EAAM0C,UAAU,CAAG55F,EAAAA,EAAMq6F,QAAQ,EAAGr6F,EAAMq6F,QAAQ,CAElDp1G,EAAMi1G,eAAe,GAGrBj1G,EAAMqyG,eAAe,GAEhBJ,EAAMM,QAAQ,CAAC,EAAE,CAACt2G,EAAE,EACrBg2G,CAAAA,EAAMM,QAAQ,CAAC,EAAE,CAACt2G,EAAE,CAAGnU,EAAQgqB,IAAI,EAAC,EAGnCmgG,EAAM/D,YAAY,CAAC,EAAE,CAACphH,YAAY,CAAC,kBACpCmlH,EAAM/D,YAAY,CAAC,EAAE,CAAC7hH,YAAY,CAAC,gBAAiB4lH,EAAMM,QAAQ,CAAC,EAAE,CAACt2G,EAAE,EAK3C,IAA7B+D,EAAMmyG,mBAAmB,EACzBF,EAAM7G,SAAS,CAAC,EAAE,CAAC/+G,YAAY,CAAC,WAAY,GAUhD4lH,EAAMW,UAAU,CAAG,QAGnBX,EAAM/D,YAAY,CAACvO,GAAG,CAAC,SAAU,WAGjCrvG,EAAS,WACL0P,EAAM0yG,uBAAuB,EACjC,GAGA1yG,EAAMkzG,4BAA4B,GAIVjlH,KAAAA,IAApB8sB,EAAMs6F,SAAS,EAEfr1G,CAAAA,EAAMs1G,sBAAsB,CAAGv6F,EAAMN,QAAQ,CAAC,YAAa,SAAUo2F,CAAa,EAS1EA,CAAiB,IALjBA,IAHCA,GAGe/zD,KAAKC,KAAK,CAAC8zD,KAO3B7wG,EAAM60G,MAAM,GAIR70G,CAAgB,GAAhBA,EAAMm1G,MAAM,EACZjoH,EAAQwnB,QAAQ,CAAC,YACjB1U,EAAMqzG,gBAAgB,CAAC,UAGvBrzG,EAAMqzG,gBAAgB,CAAC,cACvBrzG,EAAMs0G,kBAAkB,CAAC,YAKR,KAAjBt0G,EAAMm1G,MAAM,GAEZn1G,EAAMqzG,gBAAgB,CAAC,cACvBrzG,EAAMs0G,kBAAkB,CAAC,YAEzBt0G,EAAM00G,QAAQ,IAItB10G,EAAMm1G,MAAM,CAAG,EACnB,EAAC,EAKuBlnH,KAAAA,IAAxB8sB,EAAMg3F,aAAa,EACnB/xG,CAAAA,EAAMu1G,0BAA0B,CAAGv1G,EAAMib,MAAM,CAAC,gBAAiB,SAAU41F,CAAa,EAC9D,KAAlBA,IACA7wG,EAAM80G,gBAAgB,GACtB90G,EAAM+xG,aAAa,CAAG,GAE9B,EAAC,EAILE,EAAM7G,SAAS,CAAC3iH,IAAI,CAAC,OAAQ,WACzBwpH,EAAM7G,SAAS,CAAC32F,WAAW,CAAC,WAChC,GAIAw9F,EAAM7G,SAAS,CAAC3iH,IAAI,CAAC,QAAS,SAAU4qC,CAAC,EACZ,QAArBA,EAAEzoC,MAAM,CAAC4qH,OAAO,EAAcniF,IAAAA,EAAEtoC,OAAO,EACvCknH,EAAM7G,SAAS,CAAC12F,QAAQ,CAAC,WAEjC,GAGAu9F,EAAM7G,SAAS,CAAC3iH,IAAI,CAAC,UAAW,SAAU4qC,CAAC,EACrB,IAAdA,EAAEtoC,OAAO,EACTknH,EAAM7G,SAAS,CAAC32F,WAAW,CAAC,YAI5B4e,CAAAA,KAAAA,EAAEtoC,OAAO,EAAWsoC,KAAAA,EAAEtoC,OAAO,IAC7BsoC,EAAEvnC,cAAc,GAChBkU,EAAM80G,gBAAgB,GAE9B,GAGA7C,EAAMwD,UAAU,CAAG,GAGnBxD,EAAM/D,YAAY,CAACzlH,IAAI,CAACwpH,EAAMW,UAAU,CAAE,WACtCd,CAAY,CAACG,EAAM0C,UAAU,CAAC,CAAGznH,CAAO,CAAC,EAAE,CAC3CsT,EAAWK,UAAU,CAAC,qBAElBoxG,EAAMwD,UAAU,CAChBnlH,EAAS,WACL0P,EAAM80G,gBAAgB,GACtB7C,EAAMwD,UAAU,CAAG,EACvB,EAAG,KAEHz1G,EAAM80G,gBAAgB,EAE9B,EACJ,EAEA90G,EAAM01G,oBAAoB,CAAG,WACAznH,KAAAA,IAArBgkH,EAAMK,UAAU,GAChBL,EAAMK,UAAU,CAAC,EAAE,CAACzmH,mBAAmB,CAAC,gBAAiBmU,EAAMmzG,YAAY,CAAE,IAC7ElB,EAAMK,UAAU,CAAC,EAAE,CAACzmH,mBAAmB,CAAC,sBAAuBmU,EAAMmzG,YAAY,CAAE,IACnFlB,EAAMK,UAAU,CAAC,EAAE,CAACzmH,mBAAmB,CAAC,mBAAoBmU,EAAMmzG,YAAY,CAAE,IAChFlB,EAAMK,UAAU,CAAC,EAAE,CAACzmH,mBAAmB,CAAC,kBAAmBmU,EAAMmzG,YAAY,CAAE,IAC/ElB,EAAMK,UAAU,CAAC,EAAE,CAACzmH,mBAAmB,CAAC,iBAAkBmU,EAAMmzG,YAAY,CAAE,KAGlFlB,EAAMmB,SAAS,CAAG,GAClBpzG,EAAMm1G,MAAM,CAAG,GACflD,EAAM/D,YAAY,CAACtiH,MAAM,CAACqmH,EAAMW,UAAU,EAC1C5yG,EAAM00G,QAAQ,GAE2BzmH,KAAAA,IAArC+R,EAAMu1G,0BAA0B,EAChCv1G,EAAMu1G,0BAA0B,GAGCtnH,KAAAA,IAAjC+R,EAAMs1G,sBAAsB,EAC5Bt1G,EAAMs1G,sBAAsB,EAEpC,EAMAv6F,EAAMN,QAAQ,CAAC,aAAc,IACzB,GAAIu3F,SAAAA,GACItyF,CAAAA,KAAAA,GAAiBA,KAAWzxB,IAAXyxB,GAAwBA,UAAAA,CAAiB,EAAG,CAC7D1f,EAAM01G,oBAAoB,GAC1B,MACJ,CAEW,UAAXh2F,GACIxyB,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,SAAS,CAAC,EAAE,EAC9C9kB,EAAS,WACL0P,EAAMixB,IAAI,EACd,GAGR+gF,EAAYtyF,CAChB,EACJ,CACJ,CACJ,EACH,C,uDCneM,IAAMi2F,EAAgB,CACzBnmH,MAAO,KAEP,CACJ,E,0BCGuD,OAEjDomH,UAA+B7jH,EAAAA,CAAWA,CAC5CrD,YAAYsY,CAAM,CAAE4B,CAAM,CAAEytC,CAAa,CAAErkD,CAAoB,CAAE,CAC7D,KAAK,GACL,IAAI,CAAC6jH,OAAO,CAAG7uG,EACf,IAAI,CAAC8uG,cAAc,CAAGz/D,EACtB,IAAI,CAACrkD,oBAAoB,CAAGA,EAC5B,IAAI,CAAC+jH,oBAAoB,CAAGJ,EAC5B,IAAI,CAACK,YAAY,GACjBptG,EAAO6R,QAAQ,CAAC,YAAa,GAAgB,IAAI,CAACw7F,eAAe,CAAGC,EACxE,CAEAC,YAAa,CACT,IAAI,CAACJ,oBAAoB,CAACvmH,KAAK,GAC/B,IAAI,CAACwmH,YAAY,GACjB,IAAI,CAACr+D,gBAAgB,CAAG,CAAE,GAAG,IAAI,CAACy+D,WAAW,CACjD,CAEAC,YAAa,CACT,IAAI,CAACN,oBAAoB,CAACvmH,KAAK,EACnC,CAEA8mH,aAAc,CACV,IAAI,CAACC,aAAa,CAAG,GACrB,IAAI,CAACv1F,aAAa,CAAG,KAErB,IAAI,CAAC+0F,oBAAoB,CAACvmH,KAAK,GAC/B,IAAI,CAACumH,oBAAoB,CAAG3lH,CAAAA,EAAAA,EAAAA,CAAAA,EAAc,IAAI,CAAC0lH,cAAc,CAACQ,WAAW,CAAC,IAAI,CAAC3+D,gBAAgB,GAAGltD,IAAI,CAAC,IACnG,IAAI,CAACu2B,aAAa,CAAG7pB,EAAShI,IAAI,CAClC,IAAI,CAAConH,aAAa,CAAG,EACzB,EACJ,CAEAC,8BAA8B5mE,CAAI,CAAE,CAChC,IAAM6mE,EAAa,CACfC,UAAW9mE,EAAK+mE,QAAQ,CAACl/F,KAAK,CAAC,IAAI,CAAC,EAAE,CACtCm/F,WAAYhnE,EAAK+mE,QAAQ,CAACl/F,KAAK,CAAC,IAAI,CAAC,EAAE,CACvCo/F,MAAOjnE,EAAKinE,KAAK,CACjBC,SAAUlnE,EAAKknE,QAAQ,EAG3B,IAAI,CAAChB,cAAc,CAACU,6BAA6B,CAACC,GAAYhsH,IAAI,CAAC,IAC/D0M,EAAShI,IAAI,CAACuM,MAAM,CAAGk0C,EAAKl0C,MAAM,CAClCvE,EAAShI,IAAI,CAAC4nH,cAAc,CAAGnnE,EAAKmnE,cAAc,CAClD5/G,EAAShI,IAAI,CAAC6nH,gBAAgB,CAAGpnE,EAAKonE,gBAAgB,CACtD7/G,EAAShI,IAAI,CAAC8nH,QAAQ,CAAGrnE,EAAKqnE,QAAQ,EAAI,GAC1C9/G,EAAShI,IAAI,CAACinD,QAAQ,CAAGxG,EAAKinE,KAAK,EAAI,GACvC1/G,EAAShI,IAAI,CAAC0nH,KAAK,CAAGjnE,EAAKinE,KAAK,EAAI,GACpC1/G,EAAShI,IAAI,CAAC2nH,QAAQ,CAAGlnE,EAAKknE,QAAQ,CAEtC,IAAI,CAACjB,OAAO,CAACjhG,KAAK,CAAC,kBAAmBzd,EAAShI,IAAI,EACnD,IAAI,CAAC+nH,SAAS,EAClB,EACJ,CAEAA,WAAY,CACR,IAAI,CAAClB,YAAY,GACjB,IAAI,CAACH,OAAO,CAACjhG,KAAK,CAAC,wBACvB,CAEAohG,cAAe,CACX,IAAI,CAACr+D,gBAAgB,CAAG,CACpBC,UAAW,GACXC,WAAY,GACZC,MAAO,EACX,EAEA,IAAI,CAAC92B,aAAa,CAAG,KACrB,IAAI,CAACi1F,eAAe,CAAG,GACvB,IAAI,CAACM,aAAa,CAAG,EACzB,CACJ,CAEAX,EAAuBpnH,OAAO,CAAG,CAAC,SAAU,SAAU,gBAAiB,uBAAuB,CAE9FF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,eAAgB,CACjCC,SAAU,CACN6iH,YAAa,IACjB,EACAziH,SCvFW,kjGDwFXC,WAAYgiH,CAChB,E,0CEtFAtnH,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,gBAAiB,CAChC,QACA,kBACA,KACA,SAAU3sB,CAAK,CAAE0J,CAAe,CAAEsC,CAAE,EAoBhC,SAASg9B,EAAa7jC,CAAG,CAAEpM,CAAI,EAC3BiH,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAI2tB,EAAchnB,EAAGuI,KAAK,GAEtBhc,EAAU06B,EADMnyB,IAAI,CAACqE,EAAKpM,EAAM,CAAEm6B,QAASF,EAAYz6B,OAAO,GAC5ClE,IAAI,CACtB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOA,CACX,GAGJ,OADA56B,EAAQ66B,YAAY,CAAGJ,EAChBz6B,CACX,CAEA,MAAO,CACH8nD,YAAa,eApCIl7C,EAEb6tB,EAKAz6B,EA8BA,OArCa4M,EAqCMuE,EAAgByC,YAAY,CAAG,8BApCtDnM,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAC7B2tB,EAAchnB,EAAGuI,KAAK,GAa1Bhc,CARIA,EAAU06B,EAJMhyB,GAAG,CAACkE,EAAK,CACzB+tB,QAASF,EAAYz6B,OAAO,CAC5BmI,OALkBA,KAAAA,CAMtB,GACsBrM,IAAI,CACtB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOA,CACX,IAEIC,YAAY,CAAGJ,EAChBz6B,CAsBP,EAEA2nH,YAAa,SAAUG,CAAU,EAC7B,OAAOr3E,EAAat/B,EAAgByC,YAAY,CAAG,wBAAyBk0G,EAChF,EAEAD,8BAA+B,SAAUC,CAAU,EAC/C,OAAOr3E,EAAat/B,EAAgByC,YAAY,CAAG,mCAAoCk0G,EAC3F,EAEAU,sBAAuB,SAAUxjE,CAAU,CAAEzW,CAAW,EACpD,OAAO9mC,EAAMc,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,iCAAkC,CAAEs0G,MAAOljE,EAAYjf,YAAawI,CAAY,GAAGzyC,IAAI,CAAC,SAAU0M,CAAQ,SACvJ,EAAahI,IAAI,CACNgI,EAAShI,IAAI,CAAC7D,MAAM,CAAG6L,EAAShI,IAAI,CAAGiT,EAAGpT,MAAM,CAAC,aAEjDoT,EAAGpT,MAAM,EAExB,EACJ,CACJ,CACJ,EACH,C,kBC/DD0C,EAAAA,OAAAA,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,WAAY,CAC/CotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAUs6B,CAAI,CAAE8gB,CAAU,EAC7B,OAAO,SAAI,CAAC73C,OAAO,CAAC+2B,EAAM8gB,GAAc,EAC5C,CACJ,GAMAl0C,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,cAAe,CAClDotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAUyiF,CAAC,EACd,OAAO,IAAI,CAAChkC,IAAI,CAAC,SAAUgoC,CAAE,EACzB,OAAOhE,KAAAA,EAAEl/E,OAAO,CAACkjF,EACrB,EACJ,CACJ,GAMAv/E,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,WAAY,CAC/CotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAUs6B,CAAI,EACZ,IAAI,CAACr3B,QAAQ,CAACq3B,IACf,IAAI,CAAC/0B,IAAI,CAAC+0B,EAElB,CACJ,GAMApzB,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,WAAY,CAC/CotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAU68B,CAAK,CAAEkwF,CAAQ,EAC5B,IAAK,IAAIppH,KAAKk5B,EACV,IAAI,CAACkwF,EAAW,WAAa,OAAO,CAAClwF,CAAK,CAACl5B,EAAE,CAErD,CACJ,GAUAuD,OAAO0lH,cAAc,CAAC1lH,OAAOzH,SAAS,CAAE,QAAS,CAC7CotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAUgtH,CAAK,EAClB,IAAIv9F,EAAS,EAAE,CACf,IAAK,IAAI6K,KAAQ,IAAI,CACjB,GAAK,IAAI,CAACzL,cAAc,CAACyL,IAGzB,IAAI2yF,EAAU,GACd,GAAID,aAAiBE,SACjBD,EAAUD,EAAM,IAAI,CAAC1yF,EAAK,CAAEA,QAE5B,IAAK,IAAI6yF,KAASH,EACd,GAAKA,EAAMn+F,cAAc,CAACs+F,IAItB,IAAI,CAAC7yF,EAAK,CAAC6yF,EAAM,EAAIH,CAAK,CAACG,EAAM,CAAE,CACnCF,EAAU,GACV,KACJ,CAIO,MAAXA,GACAA,CAAAA,EAAU,EAAG,EAEbA,GACAx9F,EAAOlqB,IAAI,CAAC,IAAI,CAAC+0B,EAAK,EAG9B,OAAO7K,CACX,CACJ,GAEAvoB,OAAO0lH,cAAc,CAAC1lH,OAAOzH,SAAS,CAAE,gBAAiB,CACrDotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAUgtH,CAAK,CAAEliF,CAAI,EACxB,IAAK,IAAIxQ,KAAQ,IAAI,CACjB,GAAK,IAAI,CAACzL,cAAc,CAACyL,IAIzB,IAAIl6B,EAAS,KACT4sH,IACIA,aAAiBE,SACjB9sH,EAAS4sH,EAAM,IAAI,CAAC1yF,EAAK,CAAEA,GACpB,kBAAO0yF,GAAuBA,aAAiB9gC,MAAK,GAC3D9rF,CAAAA,EAAS,IAAI,CAACk6B,EAAK,CAAC0yF,EAAM,GAIlCliF,EADA1qC,EAASA,GAAU,IAAI,CAACk6B,EAAK,EAGrC,CACJ,GAQApzB,OAAO0lH,cAAc,CAAC1lH,OAAOzH,SAAS,CAAE,aAAc,CAClDotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAUgtH,CAAK,EAClB,IAAIv9F,EAAS,EAAE,CAQf,OAPA,IAAI,CAAC29F,aAAa,CAACJ,EAAO,SAAU1yF,CAAI,EACpC,IAAK,IAAI+yF,KAAQ/yF,EACTA,EAAKzL,cAAc,CAACw+F,IACpB59F,EAAOlqB,IAAI,CAAC+0B,CAAI,CAAC+yF,EAAK,CAGlC,GACO59F,CACX,CACJ,GAQAvoB,OAAO0lH,cAAc,CAAC1lH,OAAOzH,SAAS,CAAE,YAAa,CACjDotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAUgtH,CAAK,EAClB,IAAIv9F,EAAS,EAAE,CAIf,OAHA,IAAI,CAAC29F,aAAa,CAACJ,EAAO,SAAU1yF,CAAI,EACpC7K,EAAOlqB,IAAI,CAAC+0B,EAChB,GACO7K,CACX,CACJ,GAMAvoB,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,WAAY,CAC/CotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,WAEH,IAAK,IADDyvB,EAAS,EAAE,CACN9rB,EAAI,EAAGA,EAAI,IAAI,CAAC7C,MAAM,CAAE6C,IAC7B8rB,EAAOs9F,QAAQ,CAAC,IAAI,CAACppH,EAAE,EAG3B,OAAO8rB,CACX,CACJ,GAKAvoB,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,QAAS,CAC5CotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,WACH,OAAO,IAAI,CAAC4C,KAAK,EACrB,CACJ,GAKAsE,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,SAAU,CAC7CotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,WAIH,IAAK,IAHDstH,EAAW,KACXj7F,EAAa,GAER1uB,EAAI,EAAGC,EAAIs5D,UAAUp8D,MAAM,CAAE6C,EAAIC,EAAGD,IACzC2pH,EAAWpwD,SAAS,CAACv5D,EAAE,CAGJ,KAFnB0uB,CAAAA,EAAa,IAAI,CAAC9uB,OAAO,CAAC+pH,EAAQ,GAG9B,IAAI,CAAC9nH,MAAM,CAAC6sB,EAAY,GAIhC,OAAO,IAAI,CAEnB,GAKAnrB,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,YAAa,CAChDotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAU2D,CAAC,CAAE8hB,CAAS,EACrBA,GACA9hB,CAAAA,EAAI,IAAI,CAACJ,OAAO,CAACI,EAAC,EAGZ,KAANA,GACA,IAAI,CAAC6B,MAAM,CAAC7B,EAAG,EAEvB,CACJ,GAKAuD,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,aAAc,CACjDotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAUm5D,CAAK,CAAE1zC,CAAS,EAG7B,IAAK,IAFD6U,EAAO,KACPn3B,EAAQ,GACHQ,EAAI,EAAGC,EAAIu1D,EAAMr4D,MAAM,CAAE6C,EAAIC,EAAGD,IACrC22B,EAAO6+B,CAAK,CAACx1D,EAAE,CACG,KAAd8hB,GACAtiB,CAAAA,EAAQ,IAAI,CAACI,OAAO,CAAC+2B,EAAI,EAGf,KAAVn3B,GACA,IAAI,CAACqC,MAAM,CAACrC,EAAO,EAG/B,CACJ,GAKA+D,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,YAAa,CAChDotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAUs6B,CAAI,EAEjB,IAAK,IADD7K,EAAS,EAAE,CACN9rB,EAAI,EAAGA,EAAI,IAAI,CAAC7C,MAAM,CAAE6C,IACzB,IAAI,CAACA,EAAE,GAAK22B,GACZ7K,EAAOlqB,IAAI,CAAC5B,GAGpB,OAAO8rB,CACX,CACJ,GAKAvoB,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,YAAa,CAChDotH,WAAY,GACZhgH,IAAK,WACD,IAAIvG,EAAO,EAAE,CACT3C,EAAI,EAER,IAAK2C,CAAI,CAAC3C,IAAI,GAAI,IAAI,EAEtB,OAAO2C,CACX,CACJ,GAKAY,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,MAAO,CAC1CotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAU8qC,CAAI,EAEjB,IAAK,IADDrb,EAAS,GACJ9rB,EAAI,EAAGA,EAAI,IAAI,CAAC7C,MAAM,CAAE6C,IAC7B8rB,EAASA,GAAUqb,EAAK,IAAI,CAACnnC,EAAE,EAEnC,OAAO8rB,CACX,CACJ,GAKAvoB,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,YAAa,CAChDotH,WAAY,GACZ7sH,MAAO,SAAUiD,CAAQ,EACrB,IAAIsqH,EAAU,GACd,GAAI,IAAI,CAACzsH,MAAM,GAAKmC,EAASnC,MAAM,CAAE,CACjCysH,EAAU,GAEV,IAAK,IAAI5pH,EAAI,EAAGC,EAAIX,EAASnC,MAAM,CAAE6C,EAAIC,EAAGD,IACxC,GAAI,SAAI,CAACJ,OAAO,CAACN,CAAQ,CAACU,EAAE,EAAU,CAClC4pH,EAAU,GACV,KACJ,CAER,CACA,OAAOA,CACX,CACJ,GAKArmH,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,iBAAkB,CACrDotH,WAAY,GAKZ7sH,MAAO,SAAUwtH,CAAY,EAGzB,IAAK,IADDlzF,EADAmzF,EAAe,IAAI,CAAC7qH,KAAK,GAEpBe,EAAI,EAAGC,EAAI4pH,EAAa1sH,MAAM,CAAE6C,EAAIC,EAAGD,IAC5C22B,EAAOkzF,CAAY,CAAC7pH,EAAE,CACa,KAA/B8pH,EAAalqH,OAAO,CAAC+2B,IACrBmzF,EAAaloH,IAAI,CAAC+0B,GAG1B,OAAOmzF,CACX,CACJ,GAKAvmH,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,uBAAwB,CAC3DotH,WAAY,GAMZ7sH,MAAO,SAAUwtH,CAAY,CAAE9mC,CAAQ,EACnC,IAAMgnC,EAAS,EAAE,CACXvmH,EAAS,EAAE,CAGjB,IAAK,IAAIxD,EAAI,EAAGA,EAAI,IAAI,CAAC7C,MAAM,CAAE6C,IAAK,CAClC,IAAI22B,EAAO,IAAI,CAAC32B,EAAE,CAClB+pH,EAAOnoH,IAAI,CAAC+0B,GACZnzB,EAAO5B,IAAI,CAAC+0B,CAAI,CAACosD,EAAS,CAC9B,CAGA,IAAK,IAAI/iF,EAAI,EAAGA,EAAI6pH,EAAa1sH,MAAM,CAAE6C,IAAK,CAC1C,IAAI22B,EAAOkzF,CAAY,CAAC7pH,EAAE,CAGa,KAAnCwD,EAAO5D,OAAO,CAAC+2B,CAAI,CAACosD,EAAS,GAC7BgnC,EAAOnoH,IAAI,CAAC+0B,EAEpB,CAEA,OAAOozF,CACX,CACJ,GAKAxmH,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,cAAe,CAClDotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAU2tH,CAAQ,EAErB,IAAK,IADDrzF,EAAMn3B,EACDQ,EAAI,EAAGC,EAAI+pH,EAAS7sH,MAAM,CAAE6C,EAAIC,EAAGD,IACxC22B,EAAOqzF,CAAQ,CAAChqH,EAAE,CAEmB,KAAhCR,CAAAA,EAAQ,IAAI,CAACI,OAAO,CAAC+2B,EAAI,GAC1B,IAAI,CAAC90B,MAAM,CAACrC,EAAO,EAG/B,CACJ,GAKA+D,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,yBAA0B,CAC7DotH,WAAY,GACZC,SAAU,GAMV9sH,MAAO,SAAU2tH,CAAQ,CAAEtnC,CAAO,EAK9B,IAAK,IAJD/rD,EAEAszF,EADAC,EAAY,EAAE,CAGTlqH,EAAI,EAAGC,EAAI,IAAI,CAAC9C,MAAM,CAAE6C,EAAIC,EAAGD,IAAK,CACzCiqH,EAAY,GACZtzF,EAAO,IAAI,CAAC32B,EAAE,CACd,IAAK,IAAIX,EAAI,EAAG6mE,EAAM8jD,EAAS7sH,MAAM,CAAEkC,EAAI6mE,EAAK7mE,IAC5C,GAAI2qH,CAAQ,CAAC3qH,EAAE,CAAC6rB,cAAc,CAACw3D,IAAY/rD,EAAKzL,cAAc,CAACw3D,IAAYsnC,CAAQ,CAAC3qH,EAAE,CAACqjF,EAAQ,GAAK/rD,CAAI,CAAC+rD,EAAQ,CAAE,CAC/GunC,EAAY,GACZ,KACJ,CAGCA,GACDC,EAAUtoH,IAAI,CAAC+0B,EAEvB,CAEA,OAAOuzF,CACX,CACJ,GAKA3mH,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,qBAAsB,CACzDotH,WAAY,GACZC,SAAU,GAMV9sH,MAAO,SAAU0mF,CAAQ,CAAE1mF,CAAK,EAE5B,IAAK,IAAI2D,EAAI,EAAGC,EAAI,IAAI,CAAC9C,MAAM,CAAE6C,EAAIC,EAAGD,IAEpC,GAAI22B,IADO,CAAC32B,EAAE,CACL+iF,EAAS,GAAK1mF,EACnB,OAAO2D,EAGf,OAAO,EACX,CACJ,GAEAuD,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,iCAAkC,CACrEotH,WAAY,GACZC,SAAU,GASV9sH,MAAO,SAAU0mF,CAAQ,CAAE1mF,CAAK,CAAE8tH,CAAc,CAAEC,CAAO,CAAEC,CAAU,EAEjE,IAAK,IAA4B1zF,EAD7B7Y,EAAQ,KACH9d,EAAI,EAAGC,EAAI,IAAI,CAAC9C,MAAM,CAAQ6C,EAAIC,EAAGD,IAAK,CAE/C,GAAI22B,CADJA,EAAO,IAAI,CAAC32B,EAAE,CACN,CAAC+iF,EAAS,GAAK1mF,EAAO,CAC1ByhB,EAAQ6Y,EACR,KACJ,CAAO,GAAI,EAACyzF,GAAWzzF,CAAI,CAACyzF,EAAQ,GAAKC,CAAS,GAC9CvsG,CAAAA,EAAQ6Y,CAAI,CAACwzF,EAAe,CAACtiD,8BAA8B,CAACkb,EAAU1mF,EAAO8tH,EAAgBC,EAASC,EAAU,EAE5G,KAGZ,CACA,OAAOvsG,CACX,CACJ,GAKAva,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,0BAA2B,CAC9DotH,WAAY,GACZC,SAAU,GAKV9sH,MAAO,SAAU0mF,CAAQ,EAGrB,IAAK,IADDpsD,EADAia,EAAQ,EAAE,CAEL5wC,EAAI,EAAGC,EAAI,IAAI,CAAC9C,MAAM,CAAE6C,EAAIC,EAAGD,IAEbF,KAAAA,IAAnB62B,CADJA,EAAO,IAAI,CAAC32B,EAAE,CACN,CAAC+iF,EAAS,EACdnyC,EAAMhvC,IAAI,CAAC+0B,CAAI,CAACosD,EAAS,EAGjC,OAAOnyC,CACX,CACJ,GAKArtC,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,YAAa,CAChDotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,WACH,OAAO,IAAI,CAACiuH,MAAM,CAAC,SAAUzT,CAAI,CAAE8D,CAAO,EACtC,OAAOlpF,SAASkpF,EAAS,IAAM9D,CACnC,EAAG,EACP,CACJ,GAKAtzG,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,iBAAkB,CACrDotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,WACH,IAAK,IAAI2D,EAAI,IAAI,CAAC7C,MAAM,CAAG,EAAG6C,EAAI,EAAGA,IAAK,CACtC,IAAIX,EAAI69C,KAAKC,KAAK,CAACD,KAAKmiC,MAAM,GAAMr/E,CAAAA,EAAI,IACpC+iC,EAAO,IAAI,CAAC/iC,EAAE,CAClB,IAAI,CAACA,EAAE,CAAG,IAAI,CAACX,EAAE,CACjB,IAAI,CAACA,EAAE,CAAG0jC,CACd,CAEA,OAAO,IAAI,CAEnB,GAKAx/B,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,cAAe,CAClDotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAUkuH,CAAW,EACxB,IAAIC,EAAW,IAAI,CAAC,EAAE,CAClBC,EAAa,IAAI,CAAC7qH,OAAO,CAAC2qH,GAM9B,OAJIE,EAAa,EAAI,IAAI,CAACttH,MAAM,EAC5BqtH,CAAAA,EAAW,IAAI,CAACC,EAAa,EAAE,EAG5BD,CACX,CACJ,GAIKxrH,MAAMlD,SAAS,CAACgmB,SAAS,EAM1Bve,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,YAAa,CAChDotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAUquH,CAAS,EACtB,IAAK,IAAI1qH,EAAI,EAAGC,EAAI,IAAI,CAAC9C,MAAM,CAAE6C,EAAIC,EAAGD,IACpC,GAAI0qH,EAAU,IAAI,CAAC1qH,EAAE,CAAEA,EAAG,IAAI,EAC1B,OAAOA,EAIf,OAAO,EACX,CACJ,GAGChB,MAAMlD,SAAS,CAACuC,IAAI,EAMrBkF,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,OAAQ,CAC3CotH,WAAY,GACZC,SAAU,GACV9sH,MAAO,SAAUquH,CAAS,EAEtB,OAAO,IAAI,CAAC,IAAI,CAAC5oG,SAAS,CAAC4oG,GAAW,CAE9C,GAGC1rH,MAAMlD,SAAS,CAACqiB,QAAQ,EACzB5a,OAAO0lH,cAAc,CAACjqH,MAAMlD,SAAS,CAAE,WAAY,CAC/CotH,WAAY,GACZC,SAAU,GACV9sH,MAAO2C,MAAMlD,SAAS,CAACwD,QAAQ,E,mDC/kBvCa,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,kBAAmB,CACpC,OACA,aACA,kBACA,QACA,SAAUnC,CAAI,CAAEW,CAAU,CAAEV,CAAe,CAAE1J,CAAK,EAC9C,MAAO,CACHzC,SCZG,klHDaHoM,SAAU,IACVC,MAAO,CACH84G,iBAAkB,IAClBC,QAAS,IACTC,SAAU,GACd,EACAplH,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAE9B5B,EAAOiyG,mBAAmB,CAAGrwG,aAAAA,EAAOswG,uBAAuB,CAAkB,WAAa,SAC9F,EACH,CACDhkG,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAMhO,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAC5DgO,EAAMm5G,QAAQ,CAAG,iDACjB,IAAIC,EAAwB3tH,SAASyiC,cAAc,CAAC,mCACpDluB,CAAAA,EAAM84G,gBAAgB,CAAG,CAAC,EAC1B94G,EAAMq5G,cAAc,CAAG,GAEvBr5G,EAAMs5G,WAAW,CAAG,WAChB,GACI,EAAOR,gBAAgB,CAAClhE,SAAS,EAChC53C,EAAM84G,gBAAgB,CAACjhE,UAAU,EACjC73C,CAAAA,CAAAA,EAAM+4G,OAAO,EAAK/4G,EAAM84G,gBAAgB,CAACS,YAAY,GACrDv5G,CAAAA,CAAAA,EAAMg5G,QAAQ,EAAKh5G,EAAM84G,gBAAgB,CAAC/gC,IAAI,GAC9C/3E,EAAM84G,gBAAgB,CAAChhE,KAAK,EAC5B93C,EAAM84G,gBAAgB,CAACU,iBAAiB,EAMzCx5G,IAAAA,EAAM84G,gBAAgB,CAAClhE,SAAS,EAAU53C,IAAAA,EAAM84G,gBAAgB,CAACjhE,UAAU,EAAU73C,IAAAA,EAAM84G,gBAAgB,CAAChhE,KAAK,CAAQ,CACzH,GAAI,CAAC,YAAY7sD,IAAI,CAAC+U,EAAM84G,gBAAgB,CAAChhE,KAAK,EAAG,CACjD93C,EAAMy5G,gBAAgB,CAAG,GACzB,MACJ,CAGA,GAFAz5G,EAAMy5G,gBAAgB,CAAG,GAErBz5G,EAAM84G,gBAAgB,CAAChhE,KAAK,EAAI93C,EAAM84G,gBAAgB,CAACU,iBAAiB,OACxE,aAAIx5G,EAAMi5G,mBAAmB,CAClB7iH,EAAMc,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,8BAA+BvC,EAAM84G,gBAAgB,EAAEruH,IAAI,CAAC,SAAU0M,CAAQ,EAC3HA,EAAShI,IAAI,CAACuqH,UAAU,CAAG,GAC3B15G,EAAM4U,KAAK,CAAC,kBAAmBzd,EAAShI,IAAI,EAC5C6Q,EAAM25G,iBAAiB,EAC3B,GAEOvjH,EAAMc,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,6BAA8BvC,EAAM84G,gBAAgB,EAAEruH,IAAI,CAAC,SAAU0M,CAAQ,EAC1HA,EAAShI,IAAI,CAACuqH,UAAU,CAAG,GAC3B15G,EAAM4U,KAAK,CAAC,kBAAmBzd,EAAShI,IAAI,EAC5C6Q,EAAM25G,iBAAiB,EAC3B,EAGA35G,CAAAA,EAAM84G,gBAAgB,CAACU,iBAAiB,GAExCx5G,EAAMq5G,cAAc,CAAG,GACnBD,GACAA,EAAsB1uH,KAAK,GAI3C,CACJ,EAEAsV,EAAM25G,iBAAiB,CAAG,WACtB35G,EAAM4U,KAAK,CAAC,oBAAqB,CAAC,GAElCglG,GACJ,EAEA55G,EAAM4oB,gBAAgB,CAAC,mBAAoB,SAAUlJ,CAAM,CAAEm6F,CAAM,EAK/D,GAJA75G,EAAMq5G,cAAc,CAAG,GACvBr5G,EAAMy5G,gBAAgB,CAAG,GAGrB/5F,IAAAA,EAAO85F,iBAAiB,EAAU95F,KAA4BzxB,GAA5ByxB,EAAO85F,iBAAiB,CAC1Dx5G,EAAMq5G,cAAc,CAAG,QAEpB,GAAI35F,KAAgBzxB,GAAhByxB,EAAOo4B,KAAK,EAAiBp4B,IAAAA,EAAOo4B,KAAK,CAChD93C,EAAMq5G,cAAc,CAAG,QAGvB,GAAIr5G,KAAgC/R,GAAhC+R,EAAM84G,gBAAgB,CAAChhE,KAAK,EACxB93C,EAAM84G,gBAAgB,CAAChhE,KAAK,CAAC/pD,OAAO,CAAC2xB,EAAO85F,iBAAiB,EAAI,GAAI,CAGrE,IAAK,IADDM,EAAa,GACR3rH,EAAI,EAAGA,EAAIuxB,EAAO85F,iBAAiB,CAACluH,MAAM,CAAE6C,IACjD,GAAIuxB,EAAO85F,iBAAiB,CAACxwF,SAAS,CAAC76B,EAAG,KAAO6R,EAAM84G,gBAAgB,CAAChhE,KAAK,CAAC9uB,SAAS,CAAC76B,EAAG,GAAI,CAC3F2rH,EAAa,GACb,KACJ,CAEAA,GACA95G,CAAAA,EAAMq5G,cAAc,CAAG,EAAI,CAEnC,CAGZ,GAEA,IAAIO,EAAwB,WACxB55G,EAAM84G,gBAAgB,CAAClhE,SAAS,CAAG,GACnC53C,EAAM84G,gBAAgB,CAACjhE,UAAU,CAAG,GACpC73C,EAAM84G,gBAAgB,CAAChhE,KAAK,CAAG,GAC/B93C,EAAM84G,gBAAgB,CAACU,iBAAiB,CAAG,GAC3Cx5G,EAAM84G,gBAAgB,CAACS,YAAY,CAAG,GACtCv5G,EAAM84G,gBAAgB,CAAC/gC,IAAI,CAAG,EAClC,EAEA6hC,GACJ,CACJ,CACJ,EACH,C,0DE/HM,OAAMG,EACTrrH,YAAY2T,CAAoB,CAAE,CAC9B,IAAI,CAACwO,qBAAqB,CAAGxO,EAC7B,IAAI,CAAC23G,SAAS,CAAG,IAAI5+E,IACrB,IAAI,CAAC6+E,cAAc,CAAG,IAC1B,CAEAx6F,UAAUy6F,CAAW,CAAE,CACnB,IAAMC,EAAU,IAAI,CAACH,SAAS,CAAC3iH,GAAG,CAAC6iH,GACnC,OAAOC,KAAYlsH,IAAZksH,GAAyBA,CACpC,CAEAj0D,MAAO,QACyB,OAAxB,IAAI,CAAC+zD,cAAc,EAIvB,KAAI,CAACA,cAAc,CAAG,IAAI,CAACppG,qBAAqB,CAAC9S,gBAAgB,GAAGtT,IAAI,CAAC,IACrE,IAAI,CAACuvH,SAAS,CAACjhD,KAAK,GACpBrnE,OAAO0oH,OAAO,CAACjjH,EAAShI,IAAI,EAAEvC,OAAO,CAAC,OAAC,CAAC2S,EAAGkuE,EAAE,UAAK,IAAI,CAACusC,SAAS,CAAC9/D,GAAG,CAAC36C,EAAGkuE,EAAE,GAC1E,IAAI,CAACwsC,cAAc,CAAG,IAC1B,EAAC,EAPU,IAAI,CAACA,cAAc,CAWtC,CAEAF,EAAgBM,WAAW,CAAG,kBAE9BN,EAAgBvrH,OAAO,CAAG,CAAC,uBAAuB,CAClDF,EAAAA,CAAUA,CAACC,OAAO,CAACwrH,EAAgBM,WAAW,CAAEN,E,iCCzBhD,SAASO,EAAoB95G,CAAU,CAAExO,CAAoB,CAAE+Q,CAAK,CAAEjD,CAAe,CAAEhY,CAAO,EAC1F,IAAI,CAAC0Y,UAAU,CAAGA,EAClB,IAAI,CAACxO,oBAAoB,CAAGA,EAC5B,IAAI,CAAC8N,eAAe,CAAGA,EACvB,IAAI,CAAChY,OAAO,CAAGA,EACf,IAAI,CAACib,KAAK,CAAGA,CACjB,C,mCARAu3G,EAAoB9rH,OAAO,CAAG,CAAC,aAAc,uBAAwB,QAAS,kBAAmB,UAAU,CAU3G8rH,EAAoBrwH,SAAS,CAACswH,kBAAkB,CAAG,SAAU38E,CAAO,CAAE3oC,CAAK,EACvE,IAAMyR,EAAc,CAAC,EAAE,IAAI,CAAC5G,eAAe,CAAC6G,yBAAyB,CAAC,2BAA2B,CAAC,CAC5FiE,EAAa,CACf3V,MAAOA,EACPs0C,eAAgB3L,EAChB48E,SAAU,IAAI,CAACxoH,oBAAoB,CAACS,SAAS,CAAC,mBAC9CgoH,cAAe,IAAI,CAACzoH,oBAAoB,CAACS,SAAS,CAAC,wBACvD,EAEA,OAAO,IAAI,CAACsQ,KAAK,CAAC8H,MAAM,CAACnE,EAAakE,EAC1C,EAEA0vG,EAAoBrwH,SAAS,CAACywH,iBAAiB,CAAG,SAAUC,CAAQ,EAChE,IAAMj0G,EAAc,CAAC,EAAE,IAAI,CAAC5G,eAAe,CAAC6G,yBAAyB,CAAC,oEAAoE,CAAC,CACrIiE,EAAa,CACf3V,MAAO,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,uDAC3CmrC,QAAS,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,kEAC7Cs+C,kBAAmB,IAAI,CAAC/+C,oBAAoB,CAACS,SAAS,CAAC,yBACvDu+C,oBAAqB,IAAI,CAACh/C,oBAAoB,CAACS,SAAS,CAAC,+BACzDo+C,WAAY,KAEZ,EACA+pE,aAAc,KACVD,GACJ,CACJ,EAEA,OAAO,IAAI,CAAC53G,KAAK,CAAC8H,MAAM,CAACnE,EAAakE,EAC1C,EAEAtc,EAAAA,CAAUA,CAACC,OAAO,CAAC,sBAAuB+rH,E,sECxCnC,OAAMO,EACTnsH,YAAYosH,CAA0B,CAAE9oH,CAAoB,CAAEymC,CAAkB,CAAE,CAC9E,IAAI,CAACsiF,2BAA2B,CAAGD,EACnC,IAAI,CAAC3xG,qBAAqB,CAAGnX,EAC7B,IAAI,CAACgpH,mBAAmB,CAAGviF,EAC3B,IAAI,CAAC5sB,oBAAoB,CAAG,CAACnH,EAAAA,CAAeA,CAACC,KAAK,CAACE,QAAQ,CAAEH,EAAAA,CAAeA,CAACC,KAAK,CAACC,iBAAiB,CAAEF,EAAAA,CAAeA,CAACC,KAAK,CAACmH,QAAQ,CAAC,CAGzImvG,mBAAmBllH,CAAO,CAAkC,CAAC,IAAjC3C,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAS,KAAM8nH,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAW,KAC5C7hF,EAAU,IAAI,CAAC2hF,mBAAmB,CAAC/yE,MAAM,CAAClyC,GAC1ColH,EAAoBplH,IAAY,IAAI,CAACglH,2BAA2B,CAACK,yBAAyB,GAEhG,GAAI,GAAsBhoH,OAAAA,GAAwCimC,MAApBA,EAC1C,MAAO,CACHgiF,uBAAwB,GACxBC,SAAU,GACVC,iBAAkB,GAClBC,cAAe,EACnB,EAGJ,IAAMC,EAAoB,CAAC,IAAI,CAAC5vG,oBAAoB,CAACS,QAAQ,CAAC+sB,EAAQlqC,IAAI,CAAC+6B,QAAQ,EACnF,GAAI,CAACixF,GAAqB/nH,OAAAA,GAAoB8nH,CAAAA,OAAAA,GAAqBO,CAAgB,EAC/E,OAAO,IAAI,CAACC,sBAAsB,CAAC3lH,EAASsjC,GAGhD,IAAMqwB,EAAcrwB,EAAQhiC,GAAG,CAACjE,EAAQ,IACxC,OAAO,IAAI,CAACuoH,eAAe,CAACjyD,EAAa,CAAC+xD,EAAmB,CAACN,EAClE,CAEAO,uBAAuB3lH,CAAO,CAAEsjC,CAAO,CAAE,CAErC,MAAO,CACHgiF,uBAAwBtlH,EACxBulH,SAHgBjiF,GAAWA,EAAQlqC,IAAI,EAAIkqC,EAAQlqC,IAAI,CAAC4f,KAAK,CAAGsqB,EAAQlqC,IAAI,CAAC4f,KAAK,CAAG,IAAI,CAAC5F,qBAAqB,CAAC1W,SAAS,CAAC,sDAI1H8oH,iBAAkB,GAClBC,cAAe,EACnB,CACJ,CAEAG,gBAAgB5wG,CAAI,CAAEwwG,CAAgB,CAAEC,CAAa,CAAE,CACnD,MAAO,CACHH,uBAAwBtwG,EAAKiD,cAAc,EAAIjD,EAAKqC,WAAW,CAC/DkuG,SAAUvwG,EAAKiE,SAAS,EAAI,IAAI,CAAC7F,qBAAqB,CAAC1W,SAAS,CAAC,sDACjE8oH,iBAAkBA,EAClBC,cAAeA,CACnB,CACJ,CACJ,CAEAX,EAAsBrsH,OAAO,CAAG,CAAC,6BAA8B,uBAAwB,qBAAqB,CAC5GF,EAAAA,CAAUA,CAACC,OAAO,CAAC,wBAAyBssH,E,2CCvDE,OAExCe,UAAuB7pH,EAAAA,CAAWA,CACpCrD,YAAYmtH,CAAwB,CAAE,CAClC,KAAK,GAEL,IAAI,CAAC/3F,MAAM,CAAG+3F,EAAyBC,aAAa,CAAC,IAAI,CAACh3F,IAAI,CAAC6pB,MAAM,CAAE,IAAI,CAAC7pB,IAAI,CAACi3F,QAAQ,CAAE,IAAI,CAACj3F,IAAI,CAACk3F,QAAQ,CACjH,CACJ,CAUAJ,EAAeptH,OAAO,CAAG,CAAC,2BAA2B,CACrDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,iBATmB,CACpCC,SAAU,CACNuxB,KAAM,GACV,EACAnxB,SChBW,4KDiBXC,WAAYgoH,CAChB,E,iCELA,SAASK,EAAcjqH,CAAoB,EACvC,IAAI,CAACmX,qBAAqB,CAAGnX,EAC7B,IAAI,CAACkqH,oBAAoB,CAAG,IAAI,CAAC/yG,qBAAqB,CAAC1W,SAAS,CAAC,mCACjE,IAAI,CAAC0pH,sBAAsB,CAAG,IAAI,CAAChzG,qBAAqB,CAAC1W,SAAS,CAAC,6CACvE,C,SALAwpH,EAAcztH,OAAO,CAAG,CAAC,uBAAuB,CAOhDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,gBAfS,CAC1BC,SAAU,CACN6oH,SAAU,GACd,EACAzoH,SCRW,ufDSXC,WAAYqoH,CAChB,E,4DEViE,OAE3DI,EACF3tH,YAAY4tH,CAAS,CAAEj3E,EAAa,IAAI,CAACk3E,kBAAkB,CAAE,CACzD,IAAI,CAACC,cAAc,CAAG,EAAE,CACxB,IAAI,CAACF,SAAS,CAAGA,EACjB,IAAI,CAACG,WAAW,CAAGp3E,CACvB,CAEAre,UAAU01F,CAAQ,CAAE,CAChB,IAAI,CAACF,cAAc,CAACzsH,IAAI,CAAC2sH,EAC7B,CAEAC,YAAYD,CAAQ,CAAE,CAClB,IAAK,IAAIvuH,EAAI,EAAGA,EAAI,IAAI,CAACquH,cAAc,CAAClxH,MAAM,CAAE6C,IAC5C,GAAI,IAAI,CAACquH,cAAc,CAACruH,EAAE,GAAKuuH,EAAU,CACrC,IAAI,CAACF,cAAc,CAACxsH,MAAM,CAAC7B,EAAG,GAC9B,MACJ,CAER,CAEA0B,KAAc,CAAV,kDAAGw3B,CAAK,CAAR,eAAQ,CACR,IAAI,CAACi1F,SAAS,CAACvsH,IAAI,IAAIs3B,GACvB,IAAI,CAACu1F,OAAO,CAAC,CAAE9xH,OAAQ+xH,EAAAA,CAAgBA,CAACjzB,GAAG,CAAEviE,MAAOA,CAAM,EAC9D,CAEA/1B,OAAOwzB,CAAI,CAAE,CACT,IAAK,IAAI32B,EAAI,EAAGA,EAAI,IAAI,CAACmuH,SAAS,CAAChxH,MAAM,CAAE6C,IACvC,GAAI,IAAI,CAACsuH,WAAW,CAAC,IAAI,CAACH,SAAS,CAACnuH,EAAE,CAAE22B,GAGpC,OAFA,IAAI,CAACw3F,SAAS,CAACtsH,MAAM,CAAC7B,EAAG,GACzB,IAAI,CAACyuH,OAAO,CAAC,CAAE9xH,OAAQ+xH,EAAAA,CAAgBA,CAAChzB,MAAM,CAAE/kE,KAAMA,CAAK,GACpD,GAGf,MAAO,EACX,CAEArlB,QAAQq9G,CAAO,CAAEC,CAAO,CAAE,CACtB,IAAK,IAAI5uH,EAAI,EAAGA,EAAI,IAAI,CAACmuH,SAAS,CAAChxH,MAAM,CAAE6C,IACvC,GAAI,IAAI,CAACsuH,WAAW,CAAC,IAAI,CAACH,SAAS,CAACnuH,EAAE,CAAE2uH,GAOpC,OANA,IAAI,CAACR,SAAS,CAACtsH,MAAM,CAAC7B,EAAG,EAAG4uH,GAC5B,IAAI,CAACH,OAAO,CAAC,CACT9xH,OAAQ+xH,EAAAA,CAAgBA,CAAC/yB,IAAI,CAC7BgzB,QAASA,EACTC,QAASA,CACb,GACO,GAGf,MAAO,EACX,CAEAhjE,MAAMijE,CAAO,CAAE,CACX,IAAMC,EAAWD,EAAQzvH,MAAM,CAAC,GAAU,CAAC,IAAI,CAAC+uH,SAAS,CAACrzE,IAAI,CAAC,GAAc,IAAI,CAACwzE,WAAW,CAAC1hC,EAAUj2D,KACxG,IAAI,CAACj1B,GAAG,IAAIotH,EAChB,CAEAL,QAAQM,CAAO,CAAE,CACb,IAAI,CAACV,cAAc,CAAC5vH,OAAO,CAAC,IACxBuwH,EAAaD,EACjB,EACJ,CAEAX,mBAAmBjqD,CAAC,CAAE2a,CAAC,CAAE,CACrB,OAAO3a,IAAM2a,CACjB,CACJ,C,2DCrDA,SAASmwC,EAA2Bh7G,CAAE,EAClC,OAAO,IACH,IAAMsI,EAAWtI,EAAGuI,KAAK,GACnBwyG,EAAeE,EAAWv2F,IAAI,CAACw2F,CAAAA,EAAAA,EAAAA,CAAAA,KAASt2F,SAAS,CAAC,CACpD8xB,KAAMpuC,EAAS3b,OAAO,CACtB05B,MAAO/d,EAAS1b,MAAM,GAG1B,OAAO,IAAIP,EAAAA,CAAqBA,CAACic,EAAS/b,OAAO,CAAE,CAC/CwB,WAAY,GACZX,QACI,IAAI,CAACW,UAAU,CAAG,GAClBgtH,EAAaR,WAAW,EAC5B,EACAjtH,YACI,OAAO,IAAI,CAACS,UAAU,CAE9B,EACJ,CACJ,CAEAitH,EAA2B5uH,OAAO,CAAG,CAAC,KAAK,CAC3CF,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,sBAAuBq6F,G,iCC1BN,OAE9BG,EACF7uH,YAAY4B,CAAQ,CAAE8R,CAAE,CAAEo7G,CAAoB,CAAExrH,CAAoB,CAAE+Q,CAAK,CAAEjD,CAAe,CAAE29G,CAAmB,CAAE,CAC/G,IAAI,CAACC,oBAAoB,CAAG,IAAItiF,IAChC,IAAI,CAACuiF,eAAe,CAAG,CAAC,GAAM1vH,KAAAA,EAAU,CAExC,IAAI,CAAC+a,GAAG,CAAG5G,EACX,IAAI,CAAC7R,SAAS,CAAGD,EACjB,IAAI,CAACstH,qBAAqB,CAAGJ,EAC7B,IAAI,CAACr0G,qBAAqB,CAAGnX,EAC7B,IAAI,CAACqX,MAAM,CAAGtG,EACd,IAAI,CAACmG,gBAAgB,CAAGpJ,EACxB,IAAI,CAAC+9G,oBAAoB,CAAGJ,EAE5B,IAAI,CAACK,YAAY,CAAG,CAAC,EACrB,IAAI,CAACC,sBAAsB,CAAG,IAAI3iF,IAClC,IAAI,CAAC4iF,WAAW,CAAG,GACnB,IAAI,CAACC,oBAAoB,CAAG,IAAItuH,EAAAA,CAChC,KAAI,CAACuuH,gBAAgB,CAAG,EAAE,CAG9BC,cAAcpoH,CAAO,CAAEotC,CAAI,CAAE,CACzB,OAAQ,IAAI,CAAC26E,YAAY,CAAC/nH,EAAQ,CAAG,IAAIsmH,EAAel5E,EAAM,CAACmvB,EAAG2a,IAAM3a,EAAE91D,EAAE,GAAKywE,EAAEzwE,EAAE,CACzF,CAEA4hH,wBAAwBroH,CAAO,CAAEsoH,CAAY,CAAE,CAC3C,IAAI,CAACX,oBAAoB,CAACxjE,GAAG,CAACnkD,EAASsoH,EAC3C,CAEAC,cAAcvoH,CAAO,CAAE,CACnB,OAAO,IAAI,CAAC+nH,YAAY,CAAC/nH,EAAQ,CAGrCwoH,wBAAwBxoH,CAAO,CAAE,CAC7B,IAAI2nH,EAAuB,IAAI,CAACA,oBAAoB,CAACrmH,GAAG,CAACtB,GACzD,OAAO2nH,KAAyBzvH,IAAzByvH,GAAsCA,KAAAA,EAA8BA,EAAuB,EACtG,CAEAc,mBAAmBzoH,CAAO,CAAE,QACxB,KAAmC9H,IAA/B,IAAI,CAAC6vH,YAAY,CAAC/nH,EAAQ,CACnB,IAAI,CAACiT,GAAG,CAACgE,IAAI,CAAC,IAAI,CAAC8wG,YAAY,CAAC/nH,EAAQ,EAG5C,IAAI,CAAC6nH,qBAAqB,CAAChmH,WAAW,CAAC7B,EAAS,IAAItL,IAAI,CAAC,IACjB,OAAvC0M,EAAShI,IAAI,CAACsvH,oBAAoB,EAAatnH,KAAAA,EAAShI,IAAI,CAACsvH,oBAAoB,EACjF,IAAI,CAACL,uBAAuB,CAACroH,EAASoB,EAAShI,IAAI,CAACsvH,oBAAoB,EAE5E,IAAI,CAACN,aAAa,CAACpoH,EAASoB,EAAShI,IAAI,CAACuvH,aAAa,EAChD,IAAI,CAACZ,YAAY,CAAC/nH,EAAQ,EAEzC,CAEA4oH,sCAAsC5oH,CAAO,CAAE,CACvC,IAAI,CAAC6oH,WAAW,CAAC7oH,IACjB,IAAI,CAAC8oH,yBAAyB,CAAC,IAAI,CAACf,YAAY,CAAC/nH,EAAQ,CAACumH,SAAS,CAE3E,CAEAwC,yBAAyBC,CAAW,CAAiB,CAAC,IAAhB7D,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAW,GAC7C,GAAI,IAAI,CAAC6C,sBAAsB,CAAC3gE,GAAG,CAAC2hE,GAChC,OAAO,IAAI,CAAClB,oBAAoB,CAAC,IAAI,CAACE,sBAAsB,CAAC1mH,GAAG,CAAC0nH,IAGrE,IAAMC,EAAkBC,CAAAA,EAAAA,EAAAA,CAAAA,EACpB,IAAI,CAACrB,qBAAqB,CACrBhmH,WAAW,CAACmnH,EAAa,GAAI7D,GAC7BzwH,IAAI,CAAC,GAAc,IAAI,CAACy0H,mBAAmB,CAACH,EAAa5nH,EAAShI,IAAI,CAACuvH,aAAa,CAAEvnH,EAAShI,IAAI,CAACsvH,oBAAoB,GAC7H,IAAM,IAAI,CAACV,sBAAsB,CAACjlH,MAAM,CAACimH,IAI7C,OADA,IAAI,CAAChB,sBAAsB,CAAC7jE,GAAG,CAAC6kE,EAAaC,GACtC,IAAI,CAACnB,oBAAoB,CAACmB,EACrC,CAEAG,iCAAiCJ,CAAW,CAAEjhE,CAAW,CAAE,QACvD,IAAQ,CAACigE,sBAAsB,CAAC3gE,GAAG,CAAC2hE,GACzB,IAAI,CAAClB,oBAAoB,CAAC,IAAI,CAACE,sBAAsB,CAAC1mH,GAAG,CAAC0nH,IAG9D,IAAI,CAACnB,qBAAqB,CAAChmH,WAAW,CAACmnH,EAAajhE,EAAa,IAAIrzD,IAAI,CAAC,IAC7E,IAAI,CAACy0H,mBAAmB,CAACH,EAAa5nH,EAAShI,IAAI,CAACuvH,aAAa,CAAE,KACvE,EACJ,CAEAQ,oBAAoBnpH,CAAO,CAAEqpH,CAAa,CAAE1B,CAAoB,CAAE,CAC9D,IAAM2B,EAAiB,IAAI,CAACf,aAAa,CAACvoH,GAM1C,GAJ6B,OAAzB2nH,GAAiCA,KAAAA,GACjC,IAAI,CAACU,uBAAuB,CAACroH,EAAS2nH,GAGtC2B,KAAmBpxH,IAAnBoxH,EAA8B,CAC9B,IAAMC,EAAmB,IAAI,CAACT,yBAAyB,CAACO,GACxD,IAAI,CAACjB,aAAa,CAACpoH,EAASupH,GAE5B,MACJ,CAEA,IAAMC,EAAkBF,EAAe/C,SAAS,CAACv2F,MAAM,CAACq5F,GAClDE,EAAmB,IAAI,CAACT,yBAAyB,CAACU,GACxDF,EAAetlE,KAAK,CAACulE,EACzB,CAEAt4F,UAAUjxB,CAAO,CAAE2mH,CAAQ,CAAE,CACrB,IAAI,CAACkC,WAAW,CAAC7oH,IACjB,IAAI,CAAC+nH,YAAY,CAAC/nH,EAAQ,CAACixB,SAAS,CAAC01F,EAE7C,CAEAC,YAAY5mH,CAAO,CAAE2mH,CAAQ,CAAE,CACvB,IAAI,CAACkC,WAAW,CAAC7oH,IACjB,IAAI,CAAC+nH,YAAY,CAAC/nH,EAAQ,CAAC4mH,WAAW,CAACD,EAE/C,CAEA7sH,IAAIkG,CAAO,CAAEE,CAAY,CAAEupH,CAAe,CAAE,CACxC,IAAM90G,EAAW,IAAI,CAAC1B,GAAG,CAAC2B,KAAK,GAmB/B,OAlBI,IAAI,CAACi0G,WAAW,CAAC7oH,GACjB,IAAI,CAAC6nH,qBAAqB,CACrBzlH,WAAW,CAACqnH,GACZ/0H,IAAI,CAAC,IACF,IAAMg1H,EAAetoH,EAAShI,IAAI,CAClCswH,EAAaC,OAAO,CAAG,GACvB,IAAI,CAAC5B,YAAY,CAAC/nH,EAAQ,CAAClG,GAAG,CAAC4vH,GAC/B,IAAI,CAACE,mBAAmB,CAAC5pH,EAAS0pH,EAAcxpH,EAAc,GAC9DyU,EAAS3b,OAAO,EACpB,GACCO,KAAK,CAAC,IACH,IAAI,CAACswH,aAAa,CAACn3F,EAAO,QAC1B/d,EAAS1b,MAAM,EACnB,GAEJ0b,EAAS1b,MAAM,GAGZ0b,EAAS/b,OAAO,CAG3BkxH,aAAa9pH,CAAO,CAAEE,CAAY,CAAE6pH,CAAgB,CAAE1sH,CAAM,CAAEgF,CAAY,CAAE,QACxE,IAAS,CAACwmH,WAAW,CAAC7oH,GAIf,IAAI,CAAC6nH,qBAAqB,CAC5B5lH,oBAAoB,CAAC8nH,EAAkB1nH,EAAcrC,EAASE,GAC9DxL,IAAI,CAAC,IACF,IAAI,CAACs1H,oBAAoB,CAAChqH,EAASE,EAAc6pH,EAAkB3oH,EAAShI,IAAI,CAAEiE,EACtF,GACC9D,KAAK,CAAC,GACH,KAAmBrB,IAAfw6B,EAAMt5B,IAAI,EAAkBs5B,OAAAA,EAAMt5B,IAAI,EAAas5B,KAAwBx6B,IAAxBw6B,EAAMt5B,IAAI,CAAC6wH,QAAQ,EAAkBv3F,KAAyBx6B,IAAzBw6B,EAAMt5B,IAAI,CAAC8wH,SAAS,EAC5G,IAAI,CAACF,oBAAoB,CAAChqH,EAASE,EAAc6pH,EAAkBr3F,EAAMt5B,IAAI,CAAC8wH,SAAS,CAAE7sH,GACzF,IAAI,CAACwsH,aAAa,CAACn3F,EAAO,gBACnB,IAAI,CAACzf,GAAG,CAACha,MAAM,CAACy5B,KAEvB,IAAI,CAACm3F,aAAa,CAACn3F,EAAO,QACnB,IAAI,CAACzf,GAAG,CAACha,MAAM,KAfvB,IAAI,CAACga,GAAG,CAACha,MAAM,EAkB9B,CAEAsC,OAAOyE,CAAO,CAAE+uB,CAAI,CAAE,CAClB,IAAMpa,EAAW,IAAI,CAAC1B,GAAG,CAAC2B,KAAK,GAC/B,GAAI,IAAI,CAACi0G,WAAW,CAAC7oH,GAAU,CAC3B,IAAMypH,EAAkB,CAAE,GAAG16F,CAAI,CAAE46F,QAAS,EAAK,EACjD,IAAI,CAAC5B,YAAY,CAAC/nH,EAAQ,CAAC0J,OAAO,CAACqlB,EAAM06F,GAEzC,IAAI,CAAC5B,qBAAqB,CACrB/kH,cAAc,CAACisB,EAAKrb,OAAO,CAAEqb,EAAKtoB,EAAE,EACpC/R,IAAI,CAAC,KACF,IAAI,CAACqzH,YAAY,CAAC/nH,EAAQ,CAACzE,MAAM,CAACkuH,GAClC90G,EAAS3b,OAAO,EACpB,GACCO,KAAK,CAAC,IACH,IAAI,CAACwuH,YAAY,CAAC/nH,EAAQ,CAAC0J,OAAO,CAAC+/G,EAAiB16F,GACpD,IAAI,CAAC86F,aAAa,CAACn3F,EAAO,SAC9B,EACR,MACI/d,EAAS1b,MAAM,GAGnB,OAAO0b,EAAS/b,OAAO,CAG3B8Q,QAAQ1J,CAAO,CAAEypH,CAAe,CAAEU,CAAe,CAAE,CAC/C,IAAMx1G,EAAW,IAAI,CAAC1B,GAAG,CAAC2B,KAAK,GAoB/B,OAnBI,IAAI,CAACi0G,WAAW,CAAC7oH,GACjB,IAAI,CAAC6nH,qBAAqB,CACrBjlH,YAAY,CAAC6mH,GACb/0H,IAAI,CAAC,IACF,IAAMg1H,EAAetoH,EAAShI,IAAI,CAClCswH,EAAaC,OAAO,CAAG,GAEvB,IAAI,CAAC5B,YAAY,CAAC/nH,EAAQ,CAAC0J,OAAO,CAACygH,EAAiBT,GACpD,IAAI,CAACE,mBAAmB,CAAC5pH,EAAS0pH,EAAcS,EAAgBjwE,YAAY,CAAE,GAC9EvlC,EAAS3b,OAAO,EACpB,GACCO,KAAK,CAAC,IACH,IAAI,CAACswH,aAAa,CAACn3F,EAAO,UAC1B/d,EAAS1b,MAAM,EACnB,GAEJ0b,EAAS1b,MAAM,GAGZ0b,EAAS/b,OAAO,CAG3BwxH,qBAAqBpqH,CAAO,CAAEqqH,CAAY,CAAEZ,CAAe,CAAE,QACzD,IAAQ,CAACZ,WAAW,CAAC7oH,IACjB,IAAI,CAAC+nH,YAAY,CAAC/nH,EAAQ,CAAC0J,OAAO,CAAC2gH,EAAcZ,GAC1C,IAAI,CAAC5B,qBAAqB,CAC5BjlH,YAAY,CAAC6mH,GACb/0H,IAAI,CAAC,IACF+0H,EAAgBE,OAAO,CAAG,GAC1B,IAAI,CAACC,mBAAmB,CAAC5pH,EAASypH,EAAiBY,EAAanwE,YAAY,CAAE,EAClF,GACC3gD,KAAK,CAAC,IACH,IAAI,CAACswH,aAAa,CAACn3F,EAAO,mBAC1B,IAAI,CAACq1F,YAAY,CAAC/nH,EAAQ,CAAC0J,OAAO,CAAC+/G,EAAiBY,GAC7C,IAAI,CAACp3G,GAAG,CAACha,MAAM,MAG3B,IAAI,CAACga,GAAG,CAACha,MAAM,EAC1B,CAWAqxH,6BAA6BtqH,CAAO,CAAEmlH,CAAQ,CAAEoF,CAAe,CAAsB,CAAC,IAArBxiE,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAc,KAC3E,GAAI,IAAI,CAAC8gE,WAAW,CAAC7oH,GAGjB,OAAOsnH,IAFgB,CAACS,YAAY,CAAC/nH,EAAQ,CAE3BumH,SAAS,CAAC9vH,IAAI,CAAC,IAC7B,GAAIqL,EAAS0oH,QAAQ,GAAKrF,GAAYrjH,EAAS4R,OAAO,GAAKq0C,GAAe,CAAEwiE,CAAAA,GAAmBzoH,EAASkkH,QAAQ,GAAK,IAAI,CAAC4B,eAAe,CAAClwH,QAAQ,CAACoK,EAAS2oH,sBAAsB,EAC9K,OAAO3oH,CAEf,EAIR,CAEA4oH,mBAAmB1qH,CAAO,CAAEmlH,CAAQ,CAAEp9D,CAAW,CAAE,QAC/C,IAAQ,CAAC8gE,WAAW,CAAC7oH,GAGVsnH,IAFgB,CAACS,YAAY,CAAC/nH,EAAQ,CAE3BumH,SAAS,CAAC/uH,MAAM,CAAC,GAAcsK,EAAS0oH,QAAQ,GAAKrF,GAAYrjH,EAAS4R,OAAO,GAAKq0C,GAErG,EAAE,CAGb4iE,2BAA4B,CACxB,IAAI,CAAChD,oBAAoB,CAAC3kD,KAAK,EACnC,CAEA4nD,aAAc,CAGV,IAAK,IAAMr3F,KAFX,IAAI,CAAC20F,oBAAoB,CAAChuH,QAAQ,GAEZ,IAAI,CAACiuH,gBAAgB,EACvC,IAAI,CAAC3tH,SAAS,CAACgV,MAAM,CAAC+jB,EAE1B,KAAI,CAAC40F,gBAAgB,CAAC5yH,MAAM,CAAG,CACnC,CAEAy0H,qBAAqBhqH,CAAO,CAAEE,CAAY,CAAE6pH,CAAgB,CAAEL,CAAY,CAAErsH,CAAM,CAAE,CAChF,IAAMwtH,EAAed,EAAiBrH,MAAM,CAAC,CAACx+F,EAAQpiB,KAC9B5J,KAAAA,IAAhB4J,EAAS2E,EAAE,EACXyd,EAAOlqB,IAAI,CAAC8H,EAAS0oH,QAAQ,EAE1BtmG,GACR,EAAE,EAEL,IAAK,IAAMpiB,KAAY4nH,EAAc,CAGjC,GAFA5nH,EAAS6nH,OAAO,CAAG,GAEfkB,EAAat0G,QAAQ,CAACzU,EAAS0oH,QAAQ,EACvC,IAAI,CAACzC,YAAY,CAAC/nH,EAAQ,CAAClG,GAAG,CAACgI,OAC5B,CACH,IAAMqoH,EAAkB,IAAI,CAACG,4BAA4B,CAACtqH,EAAS8B,EAAS0oH,QAAQ,CAAE,GAAOntH,GAC7F,IAAI,CAAC0qH,YAAY,CAAC/nH,EAAQ,CAAC0J,OAAO,CAACygH,EAAiBroH,EACxD,CACA,IAAI,CAAC8nH,mBAAmB,CAAC5pH,EAAS8B,EAAU5B,EAAc,EAC9D,CACJ,CAEA4oH,0BAA0BO,CAAa,CAAE,CACrCA,EAAcxyH,OAAO,CAAC,IAClB,IAAIi0H,EAAa,GACX9qH,EAAUqqH,EAAa32G,OAAO,QAEhC22G,EAAaG,QAAQ,EACrBM,CAAAA,EAAa,IAAI,CAACC,qBAAqB,CAAC1B,EAAegB,EAAcrqH,EAAO,EAGhFqqH,EAAaI,sBAAsB,CAAGK,CAC1C,GAEA,IAAME,EAAsB3B,EAAc7xH,MAAM,CAAC,GAAkB6yH,EAAaY,YAAY,GAAK3oH,EAAAA,CAAoBA,CAACC,cAAc,CAACoyF,UAAU,EAK/I,OAJAq2B,EAAoBn0H,OAAO,CAAC,IACxBwzH,EAAaa,kBAAkB,CAAG,IAAI,CAACH,qBAAqB,CAACC,EAAqBX,EAAcA,EAAa32G,OAAO,CACxH,GAEO21G,CACX,CAEA0B,sBAAsB1B,CAAa,CAAEgB,CAAY,CAAErqH,CAAO,CAAE,CACxD,MAAO,CAACqpH,EAAcn2E,IAAI,CAAC,GAEnBm3E,EAAa5jH,EAAE,GAAK0kH,EAAgB1kH,EAAE,EAAI4jH,EAAaG,QAAQ,GAAKW,EAAgBX,QAAQ,EAAIxqH,IAAYmrH,EAAgBz3G,OAAO,EAAI22G,EAAa/qD,QAAQ,CAAG6rD,EAAgB7rD,QAAQ,CAGnM,CAEAuqD,cAAcn3F,CAAK,CAAE04F,CAAU,CAAE,CAC7B,IAAIC,EAAY,EACGnzH,MAAAA,IAAfw6B,EAAMt5B,IAAI,EAAkBs5B,OAAAA,EAAMt5B,IAAI,GAClCs5B,EAAMt5B,IAAI,GAAKkyH,EAAAA,CAAeA,CAACjxB,mBAAmB,CAClDgxB,EAAY,IAAI,CAACj4G,qBAAqB,CAAC1W,SAAS,CAAC,iDACnBxE,KAAAA,IAAvBw6B,EAAMt5B,IAAI,CAAC04C,OAAO,EACzBu5E,CAAAA,EAAY34F,EAAMt5B,IAAI,CAAC04C,OAAO,GAGpB,KAAdu5E,GACAA,CAAAA,EAAY,IAAI,CAACj4G,qBAAqB,CAAC1W,SAAS,CAAC,CAAC,kCAAkC,EAAE0uH,EAAW,CAAC,GAGtG,IAAI,CAACG,qBAAqB,CACtB,IAAI,CAACn4G,qBAAqB,CAAC1W,SAAS,CAAC,oDAAqD,CAAEg2B,MAAO24F,CAAU,GAC7G,IAAI,CAACj4G,qBAAqB,CAAC1W,SAAS,CAAC,mDAE7C,CAEA8uH,qBAAqBxrH,CAAO,CAAEyrH,CAAW,CAAEC,CAAY,CAAE,CACrD,IAAI,CAAC3D,YAAY,CAAC/nH,EAAQ,CAAC0J,OAAO,CAAC+hH,EAAaC,EACpD,CAEA9B,oBAAoB5pH,CAAO,CAAEqqH,CAAY,CAAEnqH,CAAY,CAAEyrH,CAAO,CAAE,CAC9D,IAAMC,EAAiB,IAAI,CAACpxH,SAAS,CAAC,KAClC,IAAMqxH,EAAkB,IAAI,CAAChE,qBAAqB,CAC7CiE,QAAQ,CAACzB,EAAa5jH,EAAE,EACxB/R,IAAI,CAAC,IAEF,GADAi3H,IACI,CAACtB,EAAapE,QAAQ,EAAIoE,EAAa0B,SAAS,IAAO3qH,CAAAA,EAAShI,IAAI,GAAKkJ,EAAAA,CAAoBA,CAACqzF,cAAc,CAACC,QAAQ,EAAG,CACxH,IAAMo2B,EAAyB,IAAI,CAACnE,qBAAqB,CACpDoE,eAAe,CAAC5B,EAAa5jH,EAAE,CAAEzG,EAASE,GAC1CxL,IAAI,CAAC,IACF,IAAI,CAAC82H,oBAAoB,CAACxrH,EAASqqH,EAAcjpH,EAAShI,IAAI,CAClE,GACCG,KAAK,CAAC,IACH,IAAI,CAACswH,aAAa,CAACn3F,EAAO,cAC9B,GAEJ,IAAI,CAACw1F,oBAAoB,CAACpuH,GAAG,CAACkyH,EAClC,MAAWL,EAAU,IAAI,CAAC1D,WAAW,EACjC,IAAI,CAAC2B,mBAAmB,CAAC5pH,EAASqqH,EAAcnqH,EAAcyrH,EAEtE,GACCpyH,KAAK,CAAC,IACH,IAAI,CAACswH,aAAa,CAACn3F,EAAO,iBAC9B,GAEJ,IAAI,CAACw1F,oBAAoB,CAACpuH,GAAG,CAAC+xH,GAEhB,KADA,IAAI,CAAC1D,gBAAgB,CAACnwH,OAAO,CAAC4zH,IAExC,IAAI,CAACzD,gBAAgB,CAACluH,MAAM,CAAC,IAAI,CAACkuH,gBAAgB,CAACnwH,OAAO,CAAC4zH,GAAiB,EAEpF,EAAG,KAEH,IAAI,CAACzD,gBAAgB,CAACnuH,IAAI,CAAC4xH,EAC/B,CAEA/C,YAAY7oH,CAAO,CAAE,CACjB,OAAO,KAA+B9H,IAA/B,IAAI,CAAC6vH,YAAY,CAAC/nH,EAAQ,CAGrCurH,sBAAsB1jF,CAAO,CAAE3oC,CAAK,CAAE,CAClC,IAAMyR,EAAc,IAAI,CAACwC,gBAAgB,CAACvC,yBAAyB,CAAG,8BAChEiE,EAAa,CACf3V,MAAOA,EACPs0C,eAAgB3L,EAChB5rC,qBAAsB,IAAI,CAACmX,qBAAqB,CAChDqxG,SAAU,IAAI,CAACrxG,qBAAqB,CAAC1W,SAAS,CAAC,mBAC/CgoH,cAAe,IAAI,CAACtxG,qBAAqB,CAAC1W,SAAS,CAAC,yBACpDrK,QAAS+sB,QAAQ4C,IAAI,EAGzB,OAAO,IAAI,CAAC1O,MAAM,CAACwB,MAAM,CAACnE,EAAakE,EAC3C,CACJ,CAEA2yG,EAAoB/uH,OAAO,CAAG,CAAC,WAAY,KAAM,uBAAwB,uBAAwB,QAAS,kBAAmB,sBAAsB,CACnJF,EAAAA,CAAUA,CAACC,OAAO,CAAC,sBAAuBgvH,E,2CCvZ8B,OAElE0E,EACFvzH,aAAc,CACV,IAAI,CAACwzH,aAAa,CAAG,IAAI,CAACC,iBAAiB,GAC3C,IAAI,CAACC,UAAU,CAAG,IAAIlqD,IAEtB,IAAI,CAACmqD,iBAAiB,CAAG,CAAC,IAAI,CAACC,WAAW,CAAC75H,IAAI,CAAC,IAAI,EAAG,IAAI,CAAC85H,OAAO,CAAC95H,IAAI,CAAC,IAAI,EAAG,IAAI,CAAC+5H,aAAa,CAAC/5H,IAAI,CAAC,IAAI,EAAG,IAAI,CAACg6H,+BAA+B,CAACh6H,IAAI,CAAC,IAAI,EAAE,CAGnKu+B,UAAUv3B,CAAQ,CAAE,CAEhB,OADA,IAAI,CAAC2yH,UAAU,CAACvyH,GAAG,CAACJ,GACb,KACH,IAAI,CAAC2yH,UAAU,CAACtpH,MAAM,CAACrJ,EAC3B,CACJ,CAEAlC,OAAO4B,CAAI,CAAE,QACT,IAAIuC,OAAOZ,IAAI,CAAC,IAAI,CAACoxH,aAAa,EAAE52H,MAAM,CAC/B6D,EAEJA,EAAK5B,MAAM,CAAC,GAAc,IAAI,CAAC80H,iBAAiB,CAACK,KAAK,CAAC,GAAQC,EAAG9qH,IAC7E,CAEA+qH,iBAAkB,CACd,OAAO,IAAI,CAACV,aAAa,CAG7BtoG,gBAAgBipG,CAAS,CAAE,CACvB,IAAI,CAACX,aAAa,CAAGW,EACrB,IAAI,CAACC,kBAAkB,CC7BlB,MD8BT,CAEAC,mBAAmBF,CAAS,CAAE,CAC1B,IAAI,CAACX,aAAa,CAAG,CAAE,GAAG,IAAI,CAACA,aAAa,CAAE,GAAGW,CAAS,EAC1D,IAAI,CAACC,kBAAkB,CChCf,SDiCZ,CAEAtqG,aAAc,CACV,IAAI,CAAC0pG,aAAa,CAAG,IAAI,CAACC,iBAAiB,GAC3C,IAAI,CAACW,kBAAkB,CCtChB,QDuCX,CAEAA,mBAAmBh4H,CAAM,CAAE,CACvB,IAAK,IAAM2E,KAAY,IAAI,CAAC2yH,UAAU,CAClC3yH,EAAS3E,EAEjB,CAEAq3H,mBAAoB,CAChB,MAAO,CACHa,+BAAgC,EACpC,CACJ,CAEAT,QAAQ1qH,CAAQ,CAAE,QACd,KAAkC5J,IAA9B,IAAI,CAACi0H,aAAa,CAACe,MAAM,EAItB,IAAI,CAACf,aAAa,CAACe,MAAM,GAAKprH,EAAS4R,OAAO,CAGzD+4G,cAAc3qH,CAAQ,CAAE,CAEpB,MAAO,CAACqrH,CADY,KAAoCj1H,IAApC,IAAI,CAACi0H,aAAa,CAACiB,YAAY,CAAiB,IAAI,CAACjB,aAAa,CAACiB,YAAY,CAAG,EAAE,EACpF72G,QAAQ,CAACzU,EAASmpH,YAAY,CACtD,CAEAyB,gCAAgC5qH,CAAQ,CAAE,QACtC,KAA0D5J,IAAtD,IAAI,CAACi0H,aAAa,CAACc,8BAA8B,EAIjD,KAAkC/0H,IAAlC,IAAI,CAACi0H,aAAa,CAACkB,UAAU,GAI7B,IAAI,CAAClB,aAAa,CAACc,8BAA8B,CAC1CnrH,EAASmpH,YAAY,GAAK3oH,EAAAA,CAAoBA,CAACC,cAAc,CAACqyF,cAAc,EAAI9yF,EAAS2oH,sBAAsB,CAGnH3oH,EAASmpH,YAAY,GAAK3oH,EAAAA,CAAoBA,CAACC,cAAc,CAACqyF,cAAc,EAGvF23B,YAAYzqH,CAAQ,CAAE,QAClB,KAAsC5J,IAAlC,IAAI,CAACi0H,aAAa,CAACkB,UAAU,EAI1BvrH,OAAAA,EAAS0oH,QAAQ,EAAa1oH,OAAAA,EAASwrH,MAAM,EAAaxrH,EAAS0oH,QAAQ,GAAK,IAAI,CAAC2B,aAAa,CAACkB,UAAU,CAAClI,QAAQ,EAAIrjH,EAAS4R,OAAO,GAAK,IAAI,CAACy4G,aAAa,CAACkB,UAAU,CAACrtH,OAAO,CAEnM,CEzFO,MAAMutH,EACT50H,aAAc,CACV,IAAI,CAAC60H,UAAU,CAAG,IAAInoF,GAC1B,CAEA/jC,IAAI4E,CAAE,CAAE,CACJ,IAAIunH,EAAkB,IAAI,CAACD,UAAU,CAAClsH,GAAG,CAAC4E,GAS1C,OARwBhO,KAAAA,IAApBu1H,IACAA,EAAkB,CACdC,SAAU,IAAIxB,EACdyB,WAAY,CAChB,EACA,IAAI,CAACH,UAAU,CAACrpE,GAAG,CAACj+C,EAAIunH,IAE5BA,EAAgBE,UAAU,GACnBF,EAAgBC,QAAQ,CAGnCnyH,OAAO2K,CAAE,CAAE,CACP,IAAMunH,EAAkB,IAAI,CAACD,UAAU,CAAClsH,GAAG,CAAC4E,EACpBhO,MAAAA,IAApBu1H,IACAA,EAAgBE,UAAU,GACtBF,EAAgBE,UAAU,EAAI,GAC9B,IAAI,CAACH,UAAU,CAACzqH,MAAM,CAACmD,GAGnC,CACJ,CAEAqnH,EAA2B90H,OAAO,CAAG,EAAE,CACvCF,EAAAA,CAAUA,CAACC,OAAO,CAAC,6BAA8B+0H,E,kBCnBjDh1H,E,OAAAA,CAAUA,CAACqI,QAAQ,CAAC,yBAZb,MACHjI,aAAc,CACV,IAAI,CAACqI,IAAI,CAAG,KACR,MAAM,MAAU,yBACpB,CACJ,CAEA4sH,YAAYC,CAAQ,CAAE,CAClB,IAAI,CAAC7sH,IAAI,CAAG6sH,CAChB,CACJ,E,oOCUAt1H,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,aAAc,CAC/B,KACA,QACA,OACA,WACA,WACA,aACA,kBACA,oBACA,QACA,8BACA,iBACA,uBACA,mBACA,aACA,UACA,SACII,CAAE,CACFhM,CAAK,CACLyJ,CAAI,CACJ+e,CAAQ,CACRtuB,CAAQ,CACRkQ,CAAU,CACVV,CAAe,CACf+jH,CAAiB,CACjB9gH,CAAK,CACL+gH,CAA2B,CAC3BpoE,CAAc,CACd1pD,CAAoB,CACpB0gD,CAAgB,CAChBn8C,CAAU,CACVzO,CAAO,EAEP,MAAO,CACH6L,SCxDG,4kmBDyDHoM,SAAU,IACVC,MAAO,CACH+jH,eAAgB,IAChBC,WAAY,IACZC,gBAAiB,IACjBC,UAAW,GACf,EACAtwH,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAOhV,oBAAoB,CAAGA,EAC9BgV,EAAOm9G,kBAAkB,CAAGv7G,KAA0B3a,IAA1B2a,EAAOm7G,cAAc,CACjD/8G,EAAOo9G,WAAW,CAAGp9G,KAAqB/Y,IAArB+Y,EAAOk9G,SAAS,CACrCl9G,EAAOq9G,SAAS,CAAGR,EAAkBpnH,YAAY,GACjDuK,EAAOs9G,aAAa,CAAGzkH,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,4BAC9FK,EAAOu9G,aAAa,CAAG1kH,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,wBAC9FK,EAAOw9G,eAAe,CAAG3kH,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,8BAChGK,EAAOy9G,YAAY,CAAG5kH,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,gCAC7FK,EAAO09G,aAAa,CAAG,KACvB19G,EAAOiQ,IAAI,CAAG,EAAE,CAChBjQ,EAAO29G,kBAAkB,CAAG,GAC5B39G,EAAO49G,mBAAmB,CAAG,CAAC,aAAc,YAAY,CACxD59G,EAAO69G,qBAAqB,CAAGA,EAAAA,CAC/B79G,CAAAA,EAAO89G,gBAAgB,CAAG,KAC1B99G,EAAO3R,WAAW,CAAGC,EAAAA,CAErB0R,CAAAA,EAAO+9G,UAAU,CAAG,SAAUC,CAAQ,CAAEC,CAAS,EAC7C,IAAIxnH,EAAU,CAAC,EACXynH,EAAYC,EAAAA,CAAUA,CAAC9tH,GAAG,GAI9B,MAHkB,KAAd6tH,GACAznH,CAAAA,CAAO,CAAC,eAAe,CAAGynH,CAAQ,EAE/BznH,CACX,EAEAuJ,EAAOo+G,QAAQ,CAAG,CACdx6H,OAAQoc,EAAOq9G,SAAS,CACxBgB,WAAY,GACZ5pH,gBAAiB,GACjB6pH,oBAAqB,EACrBC,UAAW,QACXC,eAAgB,GAChBC,WAAYz+G,EAAOm9G,kBAAkB,CACrC1mH,QAASuJ,EAAO+9G,UAAU,EAG9B/9G,EAAO0+G,mBAAmB,CAAG,SAAUryF,CAAC,CAAElD,CAAG,EACzCnpB,EAAOiQ,IAAI,CAAGoc,EAAEsyF,WAAW,CAAC1uG,IAAI,EAGpCjQ,EAAO4+G,wBAAwB,CAAG,SAAUvyF,CAAC,CAAElD,CAAG,EAC9CnpB,EAAOiQ,IAAI,CAAGoc,EAAEsyF,WAAW,CAAC1uG,IAAI,EAGpCjQ,EAAO6+G,cAAc,CAAG,WACpB,GAAI7+G,EAAO09G,aAAa,EAAI19G,EAAO09G,aAAa,CAAG,GAAK,CAAC19G,EAAO29G,kBAAkB,CAAE,CAChF39G,EAAO29G,kBAAkB,CAAG,GAE5B,IAAIz7D,EAAgBliD,EAAOhB,IAAI,CAAC,IAC5B8/G,EAAS,GAgCb,OA/BA58D,EAAc68D,WAAW,CAAG/+G,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,4CAClEy2D,EAAczhB,aAAa,CAAGzgC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,qCACpEy2D,EAAc88D,eAAe,CAAG,WAC5BF,EAAS,GACT9+G,EACKi/G,QAAQ,GACRx7H,IAAI,CAAC,WACF+V,EAAWK,UAAU,CAAC,gCACtBijH,EAA4BnH,WAAW,CAAC,UAAW31G,EAAOk/G,cAAc,CAC5E,GAEC52H,KAAK,CAAC,KAAO,EACtB,EACA45D,EAAci9D,QAAQ,CAAG,WACrB3lH,EAAWK,UAAU,CAAC,+BAC1B,EAEAqoD,EAAc9gE,OAAO,CAAG,WACf09H,GACDhC,EAA4BnH,WAAW,CAAC,UAAW31G,EAAOk/G,cAAc,EAG5El/G,EAAO29G,kBAAkB,CAAG,GAC5Bz7D,EAAc5iD,QAAQ,EAC1B,EAEAvD,EAAMwD,QAAQ,CAAC,CACXvG,MAAOkpD,EACPxiD,YAAa5G,EAAgB6G,yBAAyB,CAAG,iDAC7D,GAEOvE,EAAGpT,MAAM,CAAC,0BACrB,CACJ,EAGAgY,EAAOo/G,WAAW,CAAGx9G,KAAsB3a,IAAtB2a,EAAOo7G,UAAU,EAAkBp7G,SAAAA,EAAOo7G,UAAU,CACzEh9G,EAAOq/G,gBAAgB,CAAGz9G,KAA2B3a,IAA3B2a,EAAOq7G,eAAe,EAAkBr7G,SAAAA,EAAOq7G,eAAe,CAEpFj9G,EAAOo9G,WAAW,GAClBp9G,EAAOk/G,cAAc,CAAG,uBACxBpC,EAA4B98F,SAAS,CAAC,UAAWhgB,EAAOk/G,cAAc,CAAEl/G,EAAO6+G,cAAc,EAErG,EACH,CACD3wG,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAMoL,IAAI,CAAG,GACbpL,EAAMsmH,OAAO,CAAG,GAEhBtmH,EAAMumH,kBAAkB,CAAG,WACvBvmH,EAAMwmH,eAAe,CAAGxmH,EAAMsmH,OAAO,CAC/BtmH,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,iDACrCuN,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,+CAC/C,EAEAuN,EAAMumH,kBAAkB,GAExBvmH,EAAMm5G,QAAQ,CAAG,kCACjBn5G,EAAMymH,cAAc,CAAGzmH,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,iCAE5DuN,EAAM0mH,WAAW,CAAGvxG,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,cAAc,CAAC,EAAE,EAEvF,IAEIuxG,EAAO3mH,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,8BAC5C63B,EAAUoxB,EAAekrE,oBAAoB,CAACpmH,EAHnC,oBACJ,kCAEmEmmH,EAE1Ej0E,CAAAA,EAAiBgD,KAAK,EACtB11C,CAAAA,EAAM6mH,aAAa,CAAG,EAAG,EAO7BC,EAFsCC,aAAa,GAG9Ct8H,IAAI,CAAC,SAAU0M,CAAQ,EAIpB6I,EAAMgnH,iBAAiB,CAAG7vH,EAAShI,IAAI,CAAC83H,cAAc,CACtDjnH,EAAMknH,UAAU,CAAG/vH,EAAShI,IAAI,CAE5B6Q,EAAMgnH,iBAAiB,CAAG,GAC1BhnH,CAAAA,EAAMmnH,cAAc,CAAG,GAAKnnH,EAAMgnH,iBAAiB,CAE3D,GACCz3H,OAAO,CAAC,KACLyQ,EAAMonH,OAAO,CAAG,GAChBpnH,EAAMsmH,OAAO,CAAG,EACpB,GAKJ,IAAIe,EAAelyG,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,oBACxDoqG,EAAgBnyG,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,qBACzDqqG,EAAkB97H,SAASyiC,cAAc,CAAC,mBAE9CluB,CAAAA,EAAMwnH,aAAa,CAAG,GACtBxnH,EAAMynH,WAAW,CAAG,IACpBznH,EAAM0nH,WAAW,CAAG,EAAE,CACtB1nH,EAAM2nH,UAAU,CAAG,CAAE1yH,MAAO,GAAI06B,YAAa,GAAIi4F,QAAS,IAAK,EAC/D5nH,EAAM6nH,cAAc,CAAG7nH,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,0BAE5DuN,EAAM8nH,kBAAkB,CAAG,IACvB9nH,EAAM2nH,UAAU,CAACC,OAAO,CAAGp9H,CAC/B,EAEAwV,EAAM4G,GAAG,CAAC,WAAY5G,EAAM0lH,mBAAmB,EAC/C1lH,EAAM4G,GAAG,CAAC,aAAc5G,EAAM4lH,wBAAwB,EAEtD5lH,EAAM+nH,YAAY,CAAG,IAAO/nH,EAAMsmH,OAAO,CAAG,GAE5CtmH,EAAMgoH,SAAS,CAAG,SAAUC,CAAI,CAAEC,CAAI,EAClC,GAAI,CAACA,EAAKC,YAAY,IAAM,CAACnoH,EAAMsmH,OAAO,CAWtC,OAVAtmH,EAAM8kH,gBAAgB,CAAG,CACrB15G,KAAMg9G,EAAAA,CAAaA,CACnBjzH,MAAO6K,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAMpL,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,wCAAyC,GACzK67B,QAAStuB,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,gCAC9C41H,UAAW,KACProH,EAAM8kH,gBAAgB,CAAG,KACzB9kH,EAAMuZ,WAAW,EACrB,CACJ,EAEO,EAGXvZ,CAAAA,EAAM8kH,gBAAgB,CAAG,KACC,IAAtBmD,EAAKK,KAAK,CAACh9H,MAAM,EACjB0U,CAAAA,EAAM2nH,UAAU,CAAC1yH,KAAK,CAAGizH,EAAK5yG,IAAI,EAGtC,IAAK,IAAW0vG,EAAP72H,EAAI,EAAaA,EAAI85H,EAAKK,KAAK,CAACh9H,MAAM,CAAE6C,IAG7C,GAAI62H,CAFJA,EAAWiD,EAAKK,KAAK,CAACn6H,EAAE,EAEXo6H,cAAc,GAAKL,EAAKM,gBAAgB,EAAIN,EAAKA,IAAI,CAACO,YAAY,EAAIzD,EAASkD,IAAI,CAACO,YAAY,GAAKP,EAAKA,IAAI,CAACO,YAAY,CACpI,MAAO,EAIfP,CAAAA,EAAKK,cAAc,CAAGL,EAAKM,gBAAgB,CAC3CN,EAAKM,gBAAgB,CAAGE,IACxBR,EAAKS,KAAK,CAAGvnH,KAAKq4C,GAAG,GAErBmvE,EAAeV,GACfloH,EAAMsmH,OAAO,CAAG,GAChBtmH,EAAMumH,kBAAkB,EAC5B,EAGA,IAAIqC,EAAiB,SAAUV,CAAI,EAC/B,IAAI98G,EAAO88G,EAAKA,IAAI,CAAC98G,IAAI,CACzB9a,EAAS,WACL,GAAI8a,EAAKrd,OAAO,CAAC,SAAW,GAAI,CAE5B,IAAI86H,EAAUC,CADY,CAAC,EAAE,CAAC5rG,aAAa,CAAC,SACjB6rG,WAAW,CAAC39G,EACvCpL,CAAAA,EAAMoL,IAAI,CAAG,QACG,KAAZy9G,GACAX,CAAAA,EAAKc,YAAY,CAAGnpH,EAAKopH,kBAAkB,CAACC,IAAIC,eAAe,CAACjB,EAAKA,IAAI,EAAC,CAElF,MAAO,GAAI98G,EAAKrd,OAAO,CAAC,SAAW,GAAI,CAEnC,IAAI86H,EAAUO,CADY,CAAC,EAAE,CAAClsG,aAAa,CAAC,SACjB6rG,WAAW,CAAC39G,EACvCpL,CAAAA,EAAMoL,IAAI,CAAG,QACG,KAAZy9G,GACAX,CAAAA,EAAKc,YAAY,CAAGnpH,EAAKopH,kBAAkB,CAACC,IAAIC,eAAe,CAACjB,EAAKA,IAAI,EAAC,CAElF,MAAW98G,EAAKrd,OAAO,CAAC,SAAW,KAC/BiS,EAAMoL,IAAI,CAAG,QAKT88G,EAAKA,IAAI,CAAC3zH,IAAI,CAAG80H,UAChBj+G,CAAAA,EAAKrd,OAAO,CAAC,OAAS,IAAMqd,EAAKrd,OAAO,CAAC,OAAS,IAAMqd,EAAKrd,OAAO,CAAC,QAAU,IAAMqd,EAAKrd,OAAO,CAAC,OAAS,IAAMqd,EAAKrd,OAAO,CAAC,OAAS,EAAC,GAEzIm6H,CAAAA,EAAKc,YAAY,CAAG,UAAS,EAGzC,EAAG,EACP,CAEAhpH,CAAAA,EAAMspH,eAAe,CAAG,SAAUC,CAAS,CAAEtB,CAAI,EAC7C,IAAK,IAAI95H,EAAI,EAAGA,EAAIo7H,EAAUj+H,MAAM,CAAE6C,IAClC6R,EAAMwpH,WAAW,CAACvB,EAAMsB,CAAS,CAACp7H,EAAE,EAGxC85H,EAAKvrH,MAAM,GACPsD,EAAMypH,iBAAiB,CAACxB,IACxBjoH,EAAM0pH,gBAAgB,CAACzB,EAE/B,EAEAjoH,EAAMwpH,WAAW,CAAG,SAAUvB,CAAI,CAAEC,CAAI,EACpCA,EAAKyB,YAAY,CAAG,GAEpB,IAAI1C,EAAiBjnH,EAAMknH,UAAU,CAACD,cAAc,CAQpD,GANIiB,EAAK3zH,IAAI,CAAGyL,EAAMknH,UAAU,CAAC0C,iBAAiB,GAC9C1B,EAAK2B,KAAK,GACV3B,EAAKyB,YAAY,CAAG,cAIpB3pH,IAAAA,EAAMknH,UAAU,CAAC4C,QAAQ,EAAU5B,eAAAA,EAAKyB,YAAY,CAEpD,MAAO,GAGX,GAAI1C,EAAiBiB,EAAK3zH,IAAI,CAAG,EAC7B,IAAI2zH,eAAAA,EAAKyB,YAAY,CAGjB,OAFA1C,GAAkBiB,EAAK3zH,IAAI,CAC3ByL,EAAMknH,UAAU,CAACD,cAAc,CAAGA,EAC3B,EACX,MAEyB,GAAlBA,IACmB,eAAtBiB,EAAKyB,YAAY,EACjBzB,CAAAA,EAAKyB,YAAY,CAAG,WAAU,EAElCzB,EAAK2B,KAAK,GAGQ,IAAlB5C,GACAjnH,EAAM+pH,oBAAoB,CAAC9B,EAEnC,EAEAjoH,EAAM+pH,oBAAoB,CAAG,SAAU9B,CAAI,EAGvC,GAAIjoH,IAAAA,EAAMknH,UAAU,CAAC4C,QAAQ,CAAQ,CAEjC9pH,EAAMknH,UAAU,CAACD,cAAc,CAAG,EAClC,MACJ,CAGA,IAAK,IADD+C,EAAuB,EAClB77H,EAAI,EAAGA,EAAI85H,EAAKK,KAAK,CAACh9H,MAAM,CAAE6C,IACN,KAAzB85H,EAAKK,KAAK,CAACn6H,EAAE,CAAC87H,MAAM,EACpBD,CAAAA,GAAwB/B,EAAKK,KAAK,CAACn6H,EAAE,CAACoG,IAAI,CAIlDyL,CAAAA,EAAMknH,UAAU,CAACD,cAAc,CAAGjnH,EAAMgnH,iBAAiB,CAAGgD,CAChE,EAEAhqH,EAAMkqH,WAAW,CAAG,SAAUjC,CAAI,CAAEC,CAAI,CAAEtqF,CAAO,EAE7C,GADAA,EAAUkf,KAAKC,KAAK,CAACnf,GACjB,CAACsqF,EAAKz/F,KAAK,CAAE,CACby/F,EAAKr1D,QAAQ,CAAG,GAEhB,IAAIs3D,EAAgBjC,EAAK5yG,IAAI,CAACmC,KAAK,CAAC,IACpCzX,CAAAA,EAAM0kH,aAAa,CAAGuD,EAAKK,KAAK,CAACh9H,MAAM,CACvC0U,EAAM0nH,WAAW,CAAC33H,IAAI,CAAC,CACnBq6H,SAAUlC,EAAKM,gBAAgB,CAC/BvzH,MAAOizH,EAAK5yG,IAAI,CAChBqa,YAAau4F,EAAKv4F,WAAW,CAC7Bq1F,SAAUkD,EACVljC,KAAM6+B,EAAkBwG,kBAAkB,CAACF,EAAc/uC,GAAG,IAC5DwsC,QAAS,IACb,GACIL,GAEAj3H,EAAS,WACA0P,EAAM+jH,cAAc,EACrBwD,EAAgB78H,KAAK,EAE7B,EAAG,GAGHsV,EAAMmkH,kBAAkB,EACxBnkH,EAAM4U,KAAK,CAAC,mBAAoBszG,EAExC,CAEIloH,EAAMypH,iBAAiB,CAACxB,IACxBjoH,EAAM0pH,gBAAgB,CAACzB,EAE/B,EAEA,IAAIqC,EAAsB,SAAUpC,CAAI,CAAE/wH,CAAQ,EAO9C,GANA6I,EAAM0nH,WAAW,CAAC96H,OAAO,CAAC,CAAC29H,EAAY58H,KAC/B48H,EAAWvF,QAAQ,CAACuD,cAAc,GAAKL,EAAKK,cAAc,EAC1DvoH,EAAM0nH,WAAW,CAAC13H,MAAM,CAACrC,EAAO,EAExC,GAEIwJ,EAASsxB,KAAK,CAACnc,QAAQ,CAAC,uBAAwB,CAIhD,IAAMk+G,EAAoBrzH,EAASsxB,KAAK,CAAChpB,OAAO,CAAC,sBAAuB,GACxEyoH,CAAAA,EAAKsC,iBAAiB,CAAGA,EAAkB/qH,OAAO,CAAC,IAAK,KACxDyoH,EAAK5yG,IAAI,CAAG4yG,EAAK5yG,IAAI,CAAC7V,OAAO,CAAC,IAAK,KACnCO,EAAM2nH,UAAU,CAAC1yH,KAAK,CAAGizH,EAAK5yG,IAAI,CAAC7V,OAAO,CAAC,IAAK,KAChDyoH,EAAKyB,YAAY,CAAG,gBACpB,MACJ,CAEIxyH,GAAYA,EAASsxB,KAAK,EAAItxB,EAASszH,gBAAgB,CACvDvC,EAAKwC,YAAY,CAAG,CAChBt/G,KAAMjU,EAASsxB,KAAK,CACpBgiG,iBAAkBtzH,EAASszH,gBAAgB,EAG/CvC,EAAKyC,cAAc,CAAG,GAE1B9G,EAAkB+G,YAAY,CAAC1C,EAAKM,gBAAgB,CACxD,CAEAxoH,CAAAA,EAAM6qH,SAAS,CAAG,SAAU5C,CAAI,CAAEC,CAAI,CAAEtqF,CAAO,EAE3C0sF,EAAoBpC,EADpBtqF,EAAUkf,KAAKC,KAAK,CAACnf,IAEjB59B,EAAMypH,iBAAiB,CAACxB,IACxBjoH,EAAM0pH,gBAAgB,CAACzB,EAE/B,EAEAjoH,EAAM0pH,gBAAgB,CAAG,SAAUzB,CAAI,EAInC,IAAK,IAHD6C,EAAa,EAAE,CACfC,EAAU,EAAE,CAEP58H,EAAI,EAAGA,EAAI85H,EAAKK,KAAK,CAACh9H,MAAM,CAAE6C,IAC/B85H,EAAKK,KAAK,CAACn6H,EAAE,CAAC0kE,QAAQ,CACtBi4D,EAAW/6H,IAAI,CAACk4H,EAAKK,KAAK,CAACn6H,EAAE,EAE7B48H,EAAQh7H,IAAI,CAACk4H,EAAKK,KAAK,CAACn6H,EAAE,EAIlC,GAAI48H,IAAAA,EAAQz/H,MAAM,EAAUw/H,EAAWx/H,MAAM,CAAG,EAAG,CAC/C0U,EAAMgrH,qBAAqB,CAAGhrH,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,4DACnE,MACJ,CAEIs4H,EAAQz/H,MAAM,CAAG,GAAKw/H,EAAWx/H,MAAM,CAAG,EAC1C0U,EAAMgrH,qBAAqB,CAAGhrH,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,6DAEnEuN,EAAMgrH,qBAAqB,CAAGhrH,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,4DAGvEuN,EAAMgrH,qBAAqB,EAAID,EAAQtS,MAAM,CAAC,SAAUwS,CAAgB,CAAE/C,CAAI,EAC1E,OAAO+C,EAAmBjrH,EAAMkrH,0BAA0B,CAAChD,EAC/D,EAAG,GACP,EAEAloH,EAAMkrH,0BAA0B,CAAG,SAAUhD,CAAI,EAC7C,IAAIiD,EAAM,GAaV,OAXIA,EADAjD,eAAAA,EAAKyB,YAAY,CACX3pH,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,uDACpCy1H,cAAAA,EAAKyB,YAAY,CAClB3pH,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,4DACpCy1H,EAAKkD,eAAe,CACrBprH,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,+CACpCy1H,kBAAAA,EAAKyB,YAAY,CAClB3pH,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,8CAA+C,CAAE+3H,kBAAmBtC,EAAKsC,iBAAiB,GAE/HxqH,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,6CAGxCy1H,EAAK5yG,IAAI,CAAG61G,CACvB,EAEAnrH,EAAMypH,iBAAiB,CAAG,SAAUxB,CAAI,EAKpC,OAJAjoH,EAAMqrH,cAAc,CAAGpD,EAAKK,KAAK,CAAC5F,KAAK,CAAC,SAAUwF,CAAI,EAClD,OAAOA,EAAKr1D,QAAQ,EAAIq1D,EAAKz/F,KAAK,EAAIzoB,EAAM4kH,mBAAmB,CAACn3H,QAAQ,CAACy6H,EAAKyB,YAAY,CAC9F,GAEO3pH,EAAMqrH,cAAc,EAG/BrrH,EAAMsrH,SAAS,CAAG,SAAUrD,CAAI,CAAEC,CAAI,EAClCA,EAAKwC,YAAY,CAAG,KACpBxC,EAAKyC,cAAc,CAAG,KACtBzC,EAAKM,gBAAgB,CAAGE,IACxBR,EAAKqD,KAAK,GACVvrH,EAAMwpH,WAAW,CAACvB,EAAMC,EAC5B,EAEAloH,EAAMwrH,UAAU,CAAG,SAAUvD,CAAI,CAAEC,CAAI,EACnCA,EAAKkD,eAAe,CAAG,CAAClD,EAAKr1D,QAAQ,CACrCgxD,EAAkB+G,YAAY,CAAC1C,EAAKM,gBAAgB,EAEhDN,EAAKuD,WAAW,IAChBvD,EAAK2B,KAAK,GAGd,IAAK,IAAI17H,EAAI,EAAGA,EAAI85H,EAAKK,KAAK,CAACh9H,MAAM,CAAE6C,IACN,KAAzB85H,EAAKK,KAAK,CAACn6H,EAAE,CAAC87H,MAAM,EAEhBhC,EAAKK,KAAK,CAACn6H,EAAE,EAAI+5H,GAAQ,CAACD,EAAKK,KAAK,CAACn6H,EAAE,CAACi9H,eAAe,EACnDprH,EAAMwpH,WAAW,CAACvB,EAAMA,EAAKK,KAAK,CAACn6H,EAAE,IACrC85H,EAAKK,KAAK,CAACn6H,EAAE,CAACu9H,MAAM,GACpBzD,EAAKK,KAAK,CAACn6H,EAAE,CAACw7H,YAAY,CAAG17H,KAAAA,EAM7Ci6H,CAAAA,EAAKyB,YAAY,CAAG17H,KAAAA,EACpB+R,EAAM0kH,aAAa,CAAGuD,EAAKK,KAAK,CAACh9H,MAAM,CACnC0U,EAAMypH,iBAAiB,CAACxB,IACxBjoH,EAAM0pH,gBAAgB,CAACzB,EAE/B,EAEAjoH,EAAM2rH,WAAW,CAAG,SAAU1D,CAAI,CAAEC,CAAI,EACpCA,EAAKM,gBAAgB,CAAGE,IACxBR,EAAK0D,SAAS,GACd1D,EAAKwD,MAAM,GACXxD,EAAKr1D,QAAQ,CAAG,GAChBq1D,EAAKkD,eAAe,CAAG,GACvBlD,EAAKyB,YAAY,CAAG17H,KAAAA,EACpB+R,EAAMwpH,WAAW,CAACvB,EAAMC,EAC5B,EAEAloH,EAAM6rH,UAAU,CAAG,SAAU5D,CAAI,CAAEC,CAAI,EAC9BA,EAAKz/F,KAAK,EACXzoB,EAAM0nH,WAAW,CAACz7E,SAAS,CAACjsC,EAAM0nH,WAAW,CAACz1E,SAAS,CAAC,YAAY65E,SAAS,CAAC5D,IAGlFA,EAAK3iH,MAAM,GACN2iH,EAAKyC,cAAc,EAAKzC,EAAKwC,YAAY,EAE1CqB,EAD0CnB,YAAY,CAAC1C,EAAKM,gBAAgB,EAC1D/9H,IAAI,CAAC,SAAU0M,CAAQ,EACrC6I,EAAM+pH,oBAAoB,CAAC9B,GAC3B,IAAK,IAAI95H,EAAI,EAAGA,EAAI85H,EAAKK,KAAK,CAACh9H,MAAM,CAAE6C,IACN,KAAzB85H,EAAKK,KAAK,CAACn6H,EAAE,CAAC87H,MAAM,EAEhB,CAAChC,EAAKK,KAAK,CAACn6H,EAAE,CAACi9H,eAAe,EAAInD,EAAKK,KAAK,CAACn6H,EAAE,EAAI+5H,GAC/CloH,EAAMwpH,WAAW,CAACvB,EAAMA,EAAKK,KAAK,CAACn6H,EAAE,IACrC85H,EAAKK,KAAK,CAACn6H,EAAE,CAACu9H,MAAM,GACpBzD,EAAKK,KAAK,CAACn6H,EAAE,CAACw7H,YAAY,CAAG17H,KAAAA,EAKjD,GAEA+R,EAAMmkH,kBAAkB,EACxBnkH,EAAM4U,KAAK,CAAC,mBAAoB,MAGhC5U,EAAM4kB,OAAO,CAAConG,mBAAmB,EACjChsH,EAAM4kB,OAAO,CAAConG,mBAAmB,GAErChsH,EAAMsmH,OAAO,CAAG2B,EAAKK,KAAK,CAACh9H,MAAM,CAAG,EACpC0U,EAAM0kH,aAAa,CAAGuD,EAAKK,KAAK,CAACh9H,MAAM,CAEvC0U,EAAMumH,kBAAkB,GAEpBvmH,EAAMypH,iBAAiB,CAACxB,IACxBjoH,EAAM0pH,gBAAgB,CAACzB,EAE/B,EAEA,IAAIgE,EAAY,EAAE,CAClBjsH,EAAMksH,UAAU,CAAG,SAAUjE,CAAI,CAAEC,CAAI,EACnC,IAAIiE,EAAgB/qH,KAAKq4C,GAAG,GACxB2yE,EAAiBnE,EAAKK,KAAK,CAACh9H,MAAM,CAClC0pD,EAAQsyE,CAAa,CAAC,EAAE,CAACpqG,aAAa,CAAC,sBAEvCmvG,EAAgB,SAAUh5F,CAAC,EAC3B,GAAI44F,KAAAA,EAAUl+H,OAAO,CAACo+H,IAItBn3E,EAAMnpD,mBAAmB,CAAC,SAAUwgI,GACpCJ,EAAUl8H,IAAI,CAACo8H,GAEf,IAAIG,EAAarE,EAAKK,KAAK,CAACh9H,MAAM,CAC9BihI,EAAqB,EAEzB,GAAI,CAACvsH,EAAMmkH,kBAAkB,CAAE,CAQ3B,GANA8D,EAAKK,KAAK,CAAC17H,OAAO,CAAC,SAAU4/H,CAAC,EACtBA,EAAEjE,cAAc,GAAKL,EAAKK,cAAc,EAAIL,EAAKA,IAAI,CAACO,YAAY,EAAI+D,EAAEtE,IAAI,CAACO,YAAY,GAAKP,EAAKA,IAAI,CAACO,YAAY,EACpH8D,GAER,GAEIA,GAAsB,GAAKH,IAAmBE,EAC9C,MAIJrE,CAAAA,EAAKK,KAAK,CAACL,EAAKK,KAAK,CAACv6H,OAAO,CAACm6H,GAAM,CAAGD,EAAKK,KAAK,CAACgE,EAAa,EAAE,CACjErE,EAAKK,KAAK,CAACltC,GAAG,GAGdp7E,EAAM0nH,WAAW,CAACz7E,SAAS,CAACjsC,EAAM0nH,WAAW,CAAC7hH,kBAAkB,CAAC,WAAYqiH,EAAKM,gBAAgB,GAClGxoH,EAAMwrH,UAAU,CAACvD,EAAMC,GACvBloH,EAAM6rH,UAAU,CAAC5D,EAAMC,EAC3B,CAEAlzE,EAAMnpD,mBAAmB,CAAC,SAAUwgI,GACpCJ,EAAUl8H,IAAI,CAACo8H,GAGW,IAAtBlE,EAAKK,KAAK,CAACh9H,MAAM,EAEb48H,EAAK5yG,IAAI,GAAKtV,EAAM2nH,UAAU,CAAC1yH,KAAK,EAEpC+K,CAAAA,EAAM2nH,UAAU,CAAC1yH,KAAK,CAAGgzH,EAAKK,KAAK,CAAC,EAAE,CAAChzG,IAAI,EAGvD,EAEA0/B,EAAMtpD,gBAAgB,CAAC,SAAU2gI,GACjC/E,CAAa,CAAC,EAAE,CAACmF,KAAK,EAC1B,EAEAzsH,EAAM0sH,QAAQ,CAAG,SAAUC,CAAS,EAChC3sH,EAAM2sH,SAAS,CAAGA,EACdA,EACAtF,EAAa3yG,QAAQ,CAAC,QAEtB2yG,EAAa5yG,WAAW,CAAC,OAEjC,EAGA,IAAIi0G,EAAU,WACV,MAAO,uCAAuCjpH,OAAO,CAAC,QAAS,SAAU6tE,CAAC,EACtE,IAAIC,EAAI,QAAMC,MAAM,GAAW,EAE/B,MAAOC,CADCH,MAAAA,EAAYC,EAAI,IAAY,GAC3B5zD,QAAQ,CAAC,GACtB,EACJ,EAEIizG,EAAiB,WACK3+H,KAAAA,IAAlB8sB,EAAM8xG,OAAO,EACb7sH,EAAM4kB,OAAO,CAAChd,SAAS,EAE/B,CAEA5H,CAAAA,EAAM8sH,gBAAgB,CAAG,SAAUC,CAAc,EAY7C,IAAM59H,EAAO,CAAE21E,MAXDioD,EAAe/7H,GAAG,CAAC,GACtB,EACHwL,GAAIwwH,EAASxwH,EAAE,CACfuS,MAAOi+G,EAASj+G,KAAK,CACrB0C,QAASu7G,EAASv7G,OAAO,CACzByY,SAAU8iG,EAAS9iG,QAAQ,CAC3BrS,KAAMm1G,EAASn1G,IAAI,CACnBmqB,KAAMgrF,EAAShrF,IAAI,IAIEirF,WAAYjtH,EAAMkkH,SAAS,CAACgJ,UAAU,EAOnE,OAL8Bj/H,KAAAA,IAA1B+R,EAAMkkH,SAAS,CAAC75H,KAAK,EACrB2V,EAAMkkH,SAAS,CAAC75H,KAAK,GAGzBmW,EAAWK,UAAU,CAAC,wBAAyB1R,GACxCusD,EAAeyxE,cAAc,CAAC,IACzC,EAEAntH,EAAMotH,OAAO,CAAG,SAAUnF,CAAI,EAC1B,OAAOA,KAASh6H,IAATg6H,GAAsBjoH,EAAM0nH,WAAW,CAACp8H,MAAM,EAAI28H,EAAKK,KAAK,CAACh9H,MAAM,EAAI0U,EAAM0nH,WAAW,CAACp8H,MAAM,GAAK28H,EAAKK,KAAK,CAACh9H,MAAM,EAGhI0U,EAAMqtH,eAAe,CAAG,SAAU3F,CAAW,EACzC,GAAIA,IAAAA,EAAYp8H,MAAM,CAClB,OAAO8W,EAAG4K,IAAI,CAAC,EAAE,EAIrB,IAAMsgH,EAAgBC,EADEC,UAAU,CAAC9F,EAAa,GAClB/1H,MAAM,GAC9BsoB,EAAS,EAAE,CACXwzG,EAAY,GAAWrrH,EAAGqC,GAAG,CAACipH,EAAM18H,GAAG,CAACgP,EAAM2tH,cAAc,GAC5DC,EAAc,IAChB3zG,EAAOlqB,IAAI,IAAI89H,GACf,IAAMC,EAAYR,EAAcx0E,IAAI,GACpC,IAAIg1E,EAAUC,IAAI,CAIlB,OAAON,EAAUK,EAAUtjI,KAAK,EAAEC,IAAI,CAACmjI,EAC3C,EAEA,OAAOH,EAAUH,EAAcx0E,IAAI,GAAGtuD,KAAK,EACtCC,IAAI,CAACmjI,GACLnjI,IAAI,CAAC,IAAMwvB,EACpB,EAEAja,EAAM2tH,cAAc,CAAG,SAAUpD,CAAU,EACvC,OAAO1G,EACFmK,YAAY,CAACzD,GACb9/H,IAAI,CAAC,GACK,EACH+R,GAAIrN,EAAK69H,QAAQ,CAACxwH,EAAE,CACpB0tB,SAAU/6B,EAAK69H,QAAQ,CAAC9iG,QAAQ,CAChCzY,QAAStiB,EAAK69H,QAAQ,CAACv7G,OAAO,CAC9Bw8G,SAAU1D,EAAWH,QAAQ,CAC7Br7G,MAAOw7G,EAAWt1H,KAAK,CACvB4iB,KAAM0yG,EAAWvlC,IAAI,CACrBhjD,KAAMuoF,EAAWtzG,IAAI,IAG5B3nB,KAAK,CAAC,IACHg7H,EAAoBC,EAAWvF,QAAQ,CAAE7tH,GAClC,MAEnB,EAEA6I,EAAMimH,QAAQ,CAAG,WAGb,IAAMiI,EAAmBluH,EAAM0nH,WAAW,CAACyG,KAAK,EAGhB,KAA5BD,EAAiB5iI,MAAM,GACvB4iI,CAAgB,CAAC,EAAE,CAACj5H,KAAK,CAAG+K,EAAM2nH,UAAU,CAAC1yH,KAAK,CAClDi5H,CAAgB,CAAC,EAAE,CAACv+F,WAAW,CAAG3vB,EAAM2nH,UAAU,CAACh4F,WAAW,CAE1Du+F,CAAgB,CAAC,EAAE,CAAClJ,QAAQ,CAACkD,IAAI,CAAC98G,IAAI,CAACrd,OAAO,CAAC,SAAW,IAC1DmgI,CAAAA,CAAgB,CAAC,EAAE,CAACtG,OAAO,CAAG5nH,EAAM2nH,UAAU,CAACC,OAAO,GAI9D,IAAK,IAAIz5H,EAAI,EAAGC,EAAI8/H,EAAiB5iI,MAAM,CAAE6C,EAAIC,EAAGD,IAAK,CACrD,IAAIigI,EAAeF,CAAgB,CAAC//H,EAAE,CAEZ,IAAtB6R,EAAMiX,IAAI,CAAC3rB,MAAM,EACjB8iI,CAAAA,EAAan3G,IAAI,CAAGjX,EAAMiX,IAAI,EAEDhpB,KAAAA,IAA7BmgI,EAAaz+F,WAAW,EACxBy+F,CAAAA,EAAaz+F,WAAW,CAAG,EAAC,CAEpC,CAKA,OAHA+rB,EAAe2yE,gBAAgB,CAAC/jG,GAChCoxB,EAAewW,IAAI,GAEZlyD,EAAMqtH,eAAe,CAACa,GAAkBzjI,IAAI,CAAC,GAEhD,EADsCw+C,IAAI,CAAC,GAAc9xC,OAAAA,IAErDukD,EAAesC,IAAI,CAAC,KACb57C,EAAGpT,MAAM,KAGpBgR,EAAM0kH,aAAa,CAAG,EACtBlkH,EAAWK,UAAU,CAAC,wBACfvQ,EAAS,IACZ,EAAU8zH,WAAW,CACVpkH,EAAM8sH,gBAAgB,CAACe,IAE9BjB,IACOlxE,EAAeyxE,cAAc,CAAC,MAE1C,MAEX,EAEAntH,EAAM3V,KAAK,CAAG,WACV2V,EAAM4U,KAAK,CAAC,YAChB,EAEA5U,EAAMsuH,iBAAiB,CAAG,WAClBtuH,CAAAA,KAA2B/R,IAA3B+R,EAAM2nH,UAAU,CAAC1yH,KAAK,EAAkB+K,KAAAA,EAAM2nH,UAAU,CAAC1yH,KAAK,GAE9D+K,CAAAA,EAAM2nH,UAAU,CAAC1yH,KAAK,CAAG+K,EAAM0nH,WAAW,CAAC,EAAE,CAACzyH,KAAK,CAE3D,EAEA+K,EAAMuuH,mBAAmB,CAAG,SAAUl7F,CAAC,EAEjB,KAAdA,EAAEtoC,OAAO,EACTu8H,CAAa,CAAC,EAAE,CAACmF,KAAK,EAE9B,EAEAzsH,EAAMwuH,YAAY,CAAG,SAAUtG,CAAI,EAC/B,IAAIuG,EAAWvG,EAAKuG,QAAQ,GAC5B,MAAO,CAACA,GAAY,EAAIA,EAAW,GAAK,GAC5C,EAEAvhI,EAAQu5B,EAAE,CAAC,WAAY,WACnBzmB,EAAMsG,QAAQ,EAClB,GAEAtG,EAAM4G,GAAG,CAAC,WAAY,WAClBk9G,EAA4BnH,WAAW,CAAC,UAAW38G,EAAMkmH,cAAc,CAC3E,GAEAlmH,EAAM0uH,qBAAqB,CAAGn4H,EAAWo4H,gBAAgB,CAAC,CACtD,CACIzjI,IAAK,WACLV,MAAO,kBACX,EACA,CACIU,IAAK,SACLV,MAAO,OACX,EACH,CACL,CACJ,CACJ,EACH,C,8EEjzBD8D,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,oBAAqB,CACpC,QACA,kBACA,KACA,uBACA,SAAU3sB,CAAK,CAAE0J,CAAe,CAAEsC,CAAE,CAAEjM,CAAoB,EACtD,MAAO,CACHsG,aAAc,WACV,OAAOtG,EAAqBsG,YAAY,EAC5C,EAEAuxH,aAAc,SAAUzD,CAAU,EAC9B,IAAI9pB,EAAO,CACPxrG,MAAOs1H,EAAWt1H,KAAK,CACvB06B,YAAa46F,EAAW56F,WAAW,CACnCi4F,QAAS2C,EAAW3C,OAAO,CAC3BwC,SAAUG,EAAWH,QAAQ,CAC7BnzG,KAAMszG,EAAWtzG,IAAI,CACrBkpB,OAAQoqF,EAAWpqF,MAAM,CACzByuF,aAAcrE,EAAWqE,YAAY,EAEzC,OAAOz4H,EAAqBwG,UAAU,CAAC8jG,EAAM,CAAEouB,UAAW,EAAK,GAAGpkI,IAAI,CAAC,SAAU0M,CAAQ,QACrF,CAAKA,EAAShI,IAAI,EAAIgI,EAAShI,IAAI,CAACs5B,KAAK,CAC9BrmB,EAAGpT,MAAM,CAACmI,GAEd,CACH61H,SAAU71H,EAAShI,IAAI,CACvBi7H,SAAUG,EAAWH,QAAQ,CAErC,EACJ,EAEAQ,aAAc,SAAUR,CAAQ,EAe5B,OAdAh0H,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAMnB4tB,EAJMnyB,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,gBAAiB,CACrE6nH,SAAUA,CACd,GAEsB3/H,IAAI,CACtB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOA,CACX,EAGR,EAEAw9F,cAAe,WAaX,OAZA3wH,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAInB4tB,EAFMhyB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,eAAgB,CAAC,GAElD9X,IAAI,CACtB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOA,CACX,EAGR,EAEAulG,gBAAiB,SAAUvE,CAAU,EAuBjC,OAtBAn0H,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAUnB4tB,EARMnyB,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,cAAe,CACnEtN,MAAOs1H,EAAWt1H,KAAK,CACvB06B,YAAa46F,EAAW56F,WAAW,CACnCi4F,QAAS2C,EAAW3C,OAAO,CAC3B7xH,QAASw0H,EAAWx0H,OAAO,CAC3Bq0H,SAAUG,EAAWH,QAAQ,GAGX3/H,IAAI,CACtB,SAAU0M,CAAQ,SACd,GAAgBA,EAAS2sB,MAAM,CACpB3sB,EAEAiL,EAAGpT,MAAM,EAExB,EACA,SAAUu6B,CAAS,EACf,OAAOA,CACX,EAGR,EAGAwlG,oBAAqB,SAAUz0H,CAAQ,EAEnC,OADgBA,EAASwH,WAAW,IAEhC,IAAK,eACD,MAAO,CAAC,MAAO,MAAO,OAAO,KAC5B,cACD,MAAO,CAAC,MAAO,MAAO,MAAO,MAAO,OAAO,KAC1C,WACD,MAAO,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAM,KAC1C,QACD,MAAO,CAAC,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,MAAO,MAAM,KACrE,QACD,MAAO,CAAC,MAAO,MAAO,MAAO,MAAO,MAAM,KACzC,QACD,MAAO,CAAC,MAAO,MAAO,MAAO,OAAQ,MAAO,MAAO,MAAM,KACxD,UACD,MAAO,CAAC,MAAM,SAEd,MACR,CACJ,EAEAuoH,mBAAoB,SAAU7yG,CAAO,EACjC,IAAIw3G,EAAex3G,EAAQ1V,WAAW,GACtC,GAAI,CAAC,MAAO,MAAO,OAAO,CAAC/T,OAAO,CAACihI,GAAgB,GAC/C,MAAO,eACJ,GAAI,CAAC,MAAO,MAAO,MAAO,MAAO,OAAO,CAACjhI,OAAO,CAACihI,GAAgB,GACpE,MAAO,cACJ,GAAI,CAAC,MAAO,OAAQ,MAAO,MAAM,CAACjhI,OAAO,CAACihI,GAAgB,GAC7D,MAAO,OACJ,GAAIA,QAAAA,EACP,MAAO,MACJ,GAAI,CAAC,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,MAAO,MAAM,CAACjhI,OAAO,CAACihI,GAAgB,GAC/F,MAAO,QACJ,GAAI,CAAC,MAAO,MAAO,MAAO,MAAO,MAAM,CAACjhI,OAAO,CAACihI,GAAgB,GACnE,MAAO,QACJ,GAAI,CAAC,MAAO,MAAO,MAAO,OAAQ,MAAO,MAAO,MAAM,CAACjhI,OAAO,CAACihI,GAAgB,GAClF,MAAO,aACJ,GAAIA,QAAAA,EACP,MAAO,eAEP,MAAO,MAEf,EAEAC,aAAc,SAAUC,CAAO,CAAEC,CAAW,CAAEC,CAAS,EAC9CA,GACDA,CAAAA,EAAY,GAAE,EAMlB,IAAK,IAHDC,EAAiB3+H,OAAO4+H,IAAI,CAACJ,GAC7BK,EAAa,EAAE,CAEVC,EAAS,EAAGA,EAASH,EAAe/jI,MAAM,CAAEkkI,GAAUJ,EAAW,CAItE,IAAK,IAHDhiI,EAAQiiI,EAAejiI,KAAK,CAACoiI,EAAQA,EAASJ,GAE9CK,EAAc,MAAUriI,EAAM9B,MAAM,EAC/B6C,EAAI,EAAGA,EAAIf,EAAM9B,MAAM,CAAE6C,IAC9BshI,CAAW,CAACthI,EAAE,CAAGf,EAAMsiI,UAAU,CAACvhI,GAJtC,IAOIwhI,EAAY,IAAIC,WAAWH,GAE/BF,EAAWx/H,IAAI,CAAC4/H,EACpB,CAEA,OAAO,IAAIE,KAAKN,EAAY,CAAEnkH,KAAM+jH,CAAY,EACpD,EAEAW,qBAAsB,SAAU3gI,CAAI,EAChC,OAAOA,EAAK65B,SAAS,CAAC75B,EAAKpB,OAAO,CAAC,KAAO,EAC9C,CACJ,CACJ,EACH,C,sDCvKM,OAAMgiI,EACTrhI,aAAc,CACV,IAAI,CAACshI,MAAM,CAAG,IAAI50F,GACtB,CAEA60F,QAAQC,CAAS,CAAEC,CAAc,CAAEC,CAAS,CAAE,CAC1C,IAAMC,EAASC,CAAAA,EAAAA,EAAAA,CAAAA,IAQf,OAPA,IAAI,CAACC,eAAe,CAACJ,GAErB,IAAI,CAACH,MAAM,CAAC91E,GAAG,CAACm2E,EAAQ,CACpB/+H,OAAQk/H,EAAAA,CAAYA,CAACC,IAAI,CAACP,EAAWE,GACrCD,eAAgBA,CACpB,GAEOE,CACX,CAEAK,WAAWL,CAAM,CAAE,CACf,GAAI,CAAC,IAAI,CAACL,MAAM,CAAC5yE,GAAG,CAACizE,GACjB,OAGJ,IAAMI,EAAO,IAAI,CAACT,MAAM,CAAC34H,GAAG,CAACg5H,GAI7B,IAAK,IAAMM,KAHX,IAAI,CAACX,MAAM,CAACl3H,MAAM,CAACu3H,GACnBI,EAAKn/H,MAAM,GAEiBm/H,EAAKN,cAAc,EACvC,IAAI,CAACS,oBAAoB,CAACD,IAC1BA,EAAc5jI,eAAe,CAAC,cAG1C,CAEAwjI,gBAAgBJ,CAAc,CAAE,CAC5B,IAAK,IAAMQ,KAAiBR,EACxBQ,EAActkI,YAAY,CAAC,cAAe,OAElD,CAEAukI,qBAAqBD,CAAa,CAAE,CAChC,GAAI,QAAI,CAACX,MAAM,CAACz7H,IAAI,CAChB,MAAO,GAGX,IAAK,IAAMk8H,KAAQ,IAAI,CAACT,MAAM,CAACr+H,MAAM,GACjC,GAAI8+H,EAAKN,cAAc,CAAC7jH,QAAQ,CAACqkH,GAC7B,MAAO,GAIf,MAAO,EACX,CACJ,CAEAZ,EAAiBvhI,OAAO,CAAG,EAAE,CAC7BF,EAAAA,CAAUA,CAACC,OAAO,CAAC,mBAAoBwhI,E,iCCnDvC,SAASc,IACL,MAAO,CACHl9H,SCVO,gTDWPoM,SAAU,IACVnM,WAAY,oBACZyM,aAAc,KACdC,iBAAkB,GAClBN,MAAO,CACH8wH,MAAO,IACPC,aAAc,IACdC,UAAW,GACf,CACJ,CACJ,CAMA,SAASC,EAA4BjqH,CAAM,CAAEjE,CAAK,CAAE/Q,CAAoB,EACpE,IAAI,CAAC+Q,KAAK,CAAGA,EACb,IAAI,CAACiE,MAAM,CAAGA,EACd,IAAI,CAAChV,oBAAoB,CAAGA,EAE5BgV,EAAOJ,GAAG,CACN,WACA,YACI,OAAO,IAAI,CAACI,MAAM,GACpBve,IAAI,CAAC,IAAI,EAEnB,C,QAhCA6F,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,oBAAqB6uH,GAC1CA,EAAkBriI,OAAO,CAAG,EAAE,CAkB9BF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,oBAAqBq9H,GAC3CA,EAA4BziI,OAAO,CAAG,CAAC,SAAU,QAAS,uBAAuB,CAcjFyiI,EAA4BhnI,SAAS,CAACinI,SAAS,CAAG,WAC9C,IAAInrH,EAAa,IAAI,CAACiB,MAAM,CAAChB,IAAI,CAAC,GAClCD,CAAAA,EAAW9Q,KAAK,CAAG,IAAI,CAAC87H,YAAY,CACpChrH,EAAW63B,OAAO,CAAG,IAAI,CAACozF,SAAS,CACnCjrH,EAAW83B,YAAY,CAAG,IAAI,CAAC7rC,oBAAoB,CAACS,SAAS,CAAC,0BAC9D,IAAI,CAACsQ,KAAK,CAACwD,QAAQ,CAAC,CAChBvG,MAAO+F,EACPW,YAAa,IAAI,CAAC3D,KAAK,CAACouH,gBAAgB,CAACC,KAAK,CAC9C5qH,WAAY,GACZ6qH,mBAAoB,EACxB,GAEAtrH,EAAW3d,OAAO,CAAG,WACjB2d,EAAWO,QAAQ,EACvB,CACJ,C,gCErDO,OAAMgrH,EACT5iI,YAAYkU,CAAO,CAAE,CACjB,IAAI,CAAC2uH,aAAa,CAAG,CAAC,EACtB,IAAI,CAAC3uH,OAAO,CAAGA,CACnB,CAEA4uH,iBAAiBC,CAAiB,CAAEC,CAAU,CAAEC,CAAS,CAAE57H,CAAO,CAAE67H,CAAU,CAAE7S,CAAW,CAAE8S,CAAiB,CAAEC,CAAqB,CAAE,CACnI,IAAI,CAACP,aAAa,CAACx7H,EAAQ,CAAG,CAC1B07H,kBAAmBA,EACnBC,WAAYA,EACZH,cAAeI,EACf57H,QAASA,EACT67H,WAAYA,EACZ7S,YAAaA,EACb8S,kBAAmBA,EACnBC,sBAAuBA,CAC3B,EAEA,IAAI,CAAClvH,OAAO,CAACY,cAAc,CAAC6B,OAAO,CAAC,CAAC,qBAAqB,EAAEtP,EAAQ,CAAC,CAAE+mD,KAAKi1E,SAAS,CAAC,IAAI,CAACR,aAAa,CAACx7H,EAAQ,EACrH,CAEAi8H,iBAAiBj8H,CAAO,CAAE,QACtB,KAAoC9H,IAAhC,IAAI,CAACsjI,aAAa,CAACx7H,EAAQ,CACpB,IAAI,CAACw7H,aAAa,CAACx7H,EAAQ,CAE3B+mD,KAAKC,KAAK,CAAC,IAAI,CAACn6C,OAAO,CAACY,cAAc,CAACC,OAAO,CAAC,CAAC,qBAAqB,EAAE1N,EAAQ,CAAC,EAE/F,CAEAk8H,2BAA2Bl8H,CAAO,CAAE,CACI9H,KAAAA,IAAhC,IAAI,CAACsjI,aAAa,CAACx7H,EAAQ,EAC3B,OAAO,IAAI,CAACw7H,aAAa,CAACx7H,EAAQ,CAEtC,IAAI,CAAC6M,OAAO,CAACY,cAAc,CAACqD,UAAU,CAAC,CAAC,qBAAqB,EAAE9Q,EAAQ,CAAC,CAC5E,CAEAm8H,mBAAmBn8H,CAAO,CAAEwF,CAAG,CAAE,CAC7B,IAAI,CAACqH,OAAO,CAACY,cAAc,CAAC6B,OAAO,CAAC,CAAC,eAAe,EAAEtP,EAAQ,CAAC,CAAEwF,EACrE,CAEA42H,mBAAmBp8H,CAAO,CAAE,CACxB,OAAO,IAAI,CAAC6M,OAAO,CAACY,cAAc,CAACC,OAAO,CAAC,CAAC,eAAe,EAAE1N,EAAQ,CAAC,CAC1E,CAEAq8H,sBAAsBr8H,CAAO,CAAE,CAC3B,IAAI,CAAC6M,OAAO,CAACY,cAAc,CAACqD,UAAU,CAAC,CAAC,eAAe,EAAE9Q,EAAQ,CAAC,CACtE,CACJ,CAEAu7H,EAAqB9iI,OAAO,CAAG,CAAC,UAAU,CAC1CF,EAAAA,CAAUA,CAACC,OAAO,CAAC,uBAAwB+iI,E,sHChD2B,OAEhEe,UAAiDtgI,EAAAA,CAAWA,CAC9DrD,YAAY4jI,CAAyB,CAAE,CACnC,KAAK,GAEL,IAAI,CAACA,yBAAyB,CAAGA,EACjC,IAAI,CAACC,wBAAwB,CAAG,CAAC,EAEjC,IAAI,CAACZ,SAAS,CAAC/kI,OAAO,CAAC,IACnB,IAAM4lI,EAAe,IAAI,CAACF,yBAAyB,CAACvwC,mBAAmB,CAAC0wC,EAASC,QAAQ,CAACC,0BAA0B,CAEpH,KAAI,CAACJ,wBAAwB,CAACE,EAASG,QAAQ,CAAC,CAAG,CAC/CJ,aAAcA,EACdK,kBAAmBL,EAAe,CAAC,EAAEC,EAASK,SAAS,CAAC,EAAEL,EAASG,QAAQ,CAAC,SAAS,CAAC,CAAG,EAC7F,CACJ,EACJ,CAEAG,WAAWzoI,CAAK,CAAE0oI,CAAU,CAAE5/H,CAAM,CAAE6/H,CAAa,CAAEjgI,CAAU,CAAE,CAC7D,IAAI,CAACkgI,SAAS,CAAC,CAAE5oI,MAAAA,EAAO0oI,WAAAA,EAAY5/H,OAAAA,EAAQ6/H,cAAAA,EAAejgI,WAAAA,CAAW,EAC1E,CACJ,CAEO,IAAMmgI,EAAkC,CAC3C5/H,SAAU,CACN2/H,UAAW,IACXF,WAAY,IACZ5/H,OAAQ,IACRu+H,UAAW,IACX3+H,WAAY,GAChB,EACAW,SCpCW,uvCDqCXC,WAAYy+H,CAChB,EEXA,SAASe,EAAmC1yH,CAAa,CAAE1O,CAAoB,CAAEqhI,CAAW,EACxF,IAAI,CAAC3yH,aAAa,CAAGA,EACrB,IAAI,CAAC1O,oBAAoB,CAAGA,EAC5B,IAAI,CAACshI,UAAU,CAAGD,EAAYprF,MAAM,GAAGsrF,mBAAmB,CAC1D,IAAI,CAAC7uH,eAAe,CAAGA,EAAAA,CACvB,CFQJyuH,EAAgC3kI,OAAO,CAAG,CAAC,4BAA4B,CACvEF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,kCAAmC6/H,GEhBxDC,EAAmC5kI,OAAO,CAAG,CAAC,gBAAiB,uBAAwB,OAAO,CAa9F4kI,EAAmCnpI,SAAS,CAACupI,OAAO,CAAG,WACnD,IAAI,CAACjC,aAAa,CAAC3kI,OAAO,CAAC,IAEvB,IAAM6mI,EAActkI,EAAK+6B,QAAQ,GAAK,IAAI,CAACxlB,eAAe,CAACC,KAAK,CAACs3C,IAAI,EAAI9sD,KAAgBlB,IAAhBkB,EAAKukI,MAAM,EAAkBvkI,IAAAA,EAAKukI,MAAM,CAACpoI,MAAM,CAAS6D,EAAKukI,MAAM,CAAC,EAAE,CAAGvkI,CAEpHlB,MAAAA,IAA1BwlI,EAAYE,SAAS,EACrBF,EAAYE,SAAS,CAAC/mI,OAAO,CAAC,IAC1B6lI,EAASG,QAAQ,CAAG,IAAI,CAAClyH,aAAa,CAACoR,IAAI,EAC/C,EAER,EACJ,EAaAshH,EAAmCnpI,SAAS,CAAC2pI,mBAAmB,CAAG,SAAUZ,CAAU,CAAE5/H,CAAM,CAAE6/H,CAAa,CAAEzoI,CAAK,CAAEwI,CAAU,EAC7H,IAAI,CAAC6gI,cAAc,CAAC,CAChBrpI,MAAOA,EACPwoI,WAAYA,EACZ5/H,OAAQA,EACR6/H,cAAeA,EACfjgI,WAAYA,CAChB,EACJ,EASAogI,EAAmCnpI,SAAS,CAAC8oI,UAAU,CAAG,SAAUzoI,CAAK,CAAE0oI,CAAU,CAAE5/H,CAAM,CAAE6/H,CAAa,CAAEjgI,CAAU,EACpH,IAAI,CAAC6gI,cAAc,CAAC,CAChBrpI,MAAOF,EAAMM,MAAM,CAACkpI,OAAO,CAC3Bd,WAAYA,EACZ5/H,OAAQA,EACR6/H,cAAeA,EACfjgI,WAAYA,CAChB,EACJ,EAEA1E,EAAAA,CAAUA,CAACgF,SAAS,CAAC,8CA9E8B,CAC/CC,SAAU,CACNg+H,cAAe,IACfwC,MAAO,IACPC,YAAa,IACbH,eAAgB,IAChBzgI,OAAQ,IACRJ,WAAY,IACZggI,WAAY,GAChB,EACAr/H,SCrBW,+nFDsBXC,WAAYw/H,CAChB,EEnBwD,OAElDa,UAAkCliI,EAAAA,CAAWA,CAC/CrD,YAAYsD,CAAoB,CAAE,CAC9B,KAAK,GAEL,IAAI,CAACmX,qBAAqB,CAAGnX,EAC7B,IAAI,CAACkiI,WAAW,CAAG,GACnB,IAAI,CAACC,YAAY,CAAG,IACxB,CAEAX,SAAU,CACN,IAAI,CAAC9zB,qBAAqB,CAAGvqF,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,uBAC7E,IAAI,CAACsqF,qBAAqB,CAAChrF,QAAQ,CAAC,oCAETzmB,KAAAA,IAAvB,IAAI,CAACsjI,aAAa,EAAkB,IAAI,CAACA,aAAa,CAACjmI,MAAM,CAAG,GAChE,IAAI,CAAC8oI,iBAAiB,EAE9B,CAEAje,WAAW+G,CAAO,CAAE,CACcjvH,KAAAA,IAA1BivH,EAAQqU,aAAa,EAAmBrU,EAAQqU,aAAa,CAAC8C,aAAa,IAC3E,IAAI,CAACD,iBAAiB,EAE9B,CAEAA,mBAAoB,CAChB,IAAI,CAACF,WAAW,CAAG,GACe,IAA9B,IAAI,CAAC3C,aAAa,CAACjmI,MAAM,EACzB,KAAI,CAAC6oI,YAAY,CAAG,IAAI,CAAChrH,qBAAqB,CAAC1W,SAAS,CAAC,2CAA0C,CAE3G,CAEA6hI,eAAetB,CAAU,CAAE5/H,CAAM,CAAE6/H,CAAa,CAAEzoI,CAAK,CAAEwI,CAAU,CAAE,CACjE,IAAI,CAACuhI,QAAQ,CAAC,CACVplI,KAAM,CACF,CACIqlI,WAAYxB,EACZ3/H,OAAQD,EACR0/H,UAAWG,EACXwB,cAAexB,EACfhgI,WAAYD,CAChB,EACH,CACDxI,MAAOA,CACX,EACJ,CACJ,CAYAypI,EAA0BzlI,OAAO,CAAG,CAAC,uBAAuB,CAC5DF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,4BAXoB,CACrCC,SAAU,CACNg+H,cAAe,IACfgD,SAAU,IACVG,cAAe,GACnB,EACA/gI,SC3DW,uqBD4DXC,WAAYqgI,CAChB,E,qHEnDO,OAAMU,EACTjmI,YAAYkmI,CAA6B,CAAEp0H,CAAU,CAAErK,CAAoB,CAAE2J,CAAe,CAAE24B,CAAkB,CAAEo8F,CAAe,CAAEC,CAAsB,CAAE,CACvJ,IAAI,CAACC,8BAA8B,CAAGH,EACtC,IAAI,CAACI,uBAAuB,CAAGF,EAC/B,IAAI,CAACG,YAAY,CAAG,IAAI75F,IACxB,IAAI,CAAC85F,WAAW,CAAG10H,EACnB,IAAI,CAACqQ,qBAAqB,CAAG1a,EAC7B,IAAI,CAAC+S,gBAAgB,CAAGpJ,EACxB,IAAI,CAACk7G,mBAAmB,CAAGviF,EAE3Bo8F,EAAgBM,kBAAkB,CAAC,IAAI,CAACC,mBAAmB,CAAC3sI,IAAI,CAAC,IAAI,EACzE,CAEA0U,kBAAkBC,CAAS,CAAErH,CAAO,CAAkB,CAAC,IAAjBC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAY,GAC9C,OAAO,IAAI,CAAC6a,qBAAqB,CAAC1T,iBAAiB,CAACpH,EAASqH,EAAWpH,EAC5E,CAEAq/H,YAAYp7H,CAAU,CAAEmD,CAAS,CAAEk4H,CAAW,CAAE,CAC5C,IAAMC,EAAc,IAAI,CAACC,cAAc,CAACp4H,GAClCq4H,EAAU,CACZC,mBAAoBz7H,EACpBw6H,cAAer3H,EACfu4H,iBAAkBL,EAAYtkI,GAAG,CAAC,GACvB,EACH4kI,mBAAoBhjI,EAAS4J,EAAE,CAC/B1K,sBAAuBc,EAASijI,aAAa,GAGzD,EAEA,OAAO,IAAI,CAAChlH,qBAAqB,CAACxT,0BAA0B,CAACo4H,GAAShrI,IAAI,CAAC,IAEvE,IAAMqrI,EAAqBC,CADLR,EAAYS,WAAW,CAACpjI,QAAQ,CAACtH,MAAM,CAAG,EAAIiqI,EAAYS,WAAW,CAACpjI,QAAQ,CAAC,EAAE,CAACqjI,aAAa,CAAC3qI,MAAM,CAAG,GACpF,EAAI,IAAIiqI,EAAYS,WAAW,CAACpjI,QAAQ,CAAC,EAAE,CAACqjI,aAAa,IAAK9+H,EAAShI,IAAI,CAAC,CAAGgI,EAAShI,IAAI,CAEnI20B,EAAS,EACTgyG,CAAAA,EAAmBxqI,MAAM,CAAG,GAAKiqI,EAAYS,WAAW,CAACE,cAAc,GAAKxxH,EAAAA,CAAeA,CAACmrF,eAAe,CAACC,aAAa,EACzHhsE,CAAAA,EAASpf,EAAAA,CAAeA,CAACmrF,eAAe,CAACE,mBAAmB,EAGhE,IAAM12D,EAAU,IAAI,CAAC2hF,mBAAmB,CAAC/yE,MAAM,CAAChuC,GAOhD,OANAs7H,EAAYY,gBAAgB,CAACL,EAAoBhyG,EAAQ,CAACuV,EAAQuC,QAAQ,EAEtC3tC,KAAAA,IAAhCsnI,EAAYa,eAAe,EAC3Bb,EAAYa,eAAe,CAACj/H,EAAShI,IAAI,EAGtC2mI,CACX,EACJ,CAEAO,uBAAuBphI,CAAK,CAAE0xH,CAAI,CAAE,CAKhC,OAAO,IAAI,CAAC91G,qBAAqB,CAACvT,mBAAmB,CAJrC,CACZyR,MAAO9Z,EACPqhI,SAAU3P,CACd,EAEJ,CAEA4P,eAAet8H,CAAU,CAAEmD,CAAS,CAAEo5H,CAAW,CAAE,CAC/C,OAAO,IAAI,CAAC3lH,qBAAqB,CAACtT,6BAA6B,CAAC,CAAEk5H,YAAaD,CAAY,GAAG/rI,IAAI,CAAC,KAC/F,IAAM8qI,EAAc,IAAI,CAACC,cAAc,CAACp4H,GAClC04H,EAAqBP,EAAYS,WAAW,CAACpjI,QAAQ,CAAC,EAAE,CAACqjI,aAAa,CAAC1oI,MAAM,CAAC,GAAcqF,EAAS6jI,WAAW,GAAKD,GAEvH1yG,EAAS,EACqB,KAA9BgyG,EAAmBxqI,MAAM,EAAUiqI,EAAYS,WAAW,CAACE,cAAc,GAAKxxH,EAAAA,CAAeA,CAACmrF,eAAe,CAACC,aAAa,EAC3HhsE,CAAAA,EAASpf,EAAAA,CAAeA,CAACmrF,eAAe,CAACC,aAAa,EAG1D,IAAMz2D,EAAU,IAAI,CAAC2hF,mBAAmB,CAAC/yE,MAAM,CAAChuC,GAGhD,OAFAs7H,EAAYY,gBAAgB,CAACL,EAAoBhyG,EAAQ,CAACuV,EAAQuC,QAAQ,EAEnE,CAAEhpC,SAAUkjI,EAAoBhyG,OAAQA,CAAO,CAC1D,EACJ,CAEA4yG,iCAAiCt5H,CAAS,CAAEzK,CAAa,CAAE,CAEvD4iI,IADwB,CAACN,YAAY,CAAC59H,GAAG,CAAC+F,GAC9Bu5H,4BAA4B,CAAChkI,EAC7C,CAEAikI,4BAA4BC,CAAY,CAAE,CACtC,IAAMC,EAAY,CACdL,YAAaI,EAAaJ,WAAW,CACrCZ,cAAegB,EAAahB,aAAa,EAE7C,OAAO,IAAI,CAAChlH,qBAAqB,CAACnT,uCAAuC,CAACo5H,EAC9E,CAEAC,qBAAqB35H,CAAS,CAAE45H,CAAkB,CAAE,CAIhD,OAFAzB,IADwB,CAACN,YAAY,CAAC59H,GAAG,CAAC+F,GAC9B+4H,gBAAgB,CAAC,KAAMa,EAAqBtyH,EAAAA,CAAeA,CAACmrF,eAAe,CAACG,eAAe,CAAGtrF,EAAAA,CAAeA,CAACmrF,eAAe,CAACE,mBAAmB,CAAE,IAExJinC,CACX,CAEA5B,oBAAoBn7H,CAAU,CAAEnP,CAAM,CAAEsS,CAAS,CAAE,CAC/C,IAAMm4H,EAAc,IAAI,CAACC,cAAc,CAACp4H,GACxC,GAAIm4H,KAAgBtnI,IAAhBsnI,EACA,OAGJ,IAAM0B,EAAe1B,EAAYS,WAAW,CAACkB,aAAa,CACpDC,EAAWrsI,IAAW+xH,EAAAA,CAAgBA,CAACjzB,GAAG,CAAGqtC,EAAe,EAAIA,EAAe,EAC/E59F,EAAU,IAAI,CAAC2hF,mBAAmB,CAAC/yE,MAAM,CAAChuC,GAChDs7H,EAAY6B,oBAAoB,CAACD,EAAU,CAAC99F,EAAQuC,QAAQ,CAChE,CAEA45F,eAAep4H,CAAS,CAAE,CACtB,OAAO,IAAI,CAAC63H,YAAY,CAAC59H,GAAG,CAAC+F,EACjC,CAEAi6H,gBAAgBrB,CAAW,CAAEsB,CAAS,CAAE,CACpC,IAAI,CAACrC,YAAY,CAAC/6E,GAAG,CAAC87E,EAAY/5H,EAAE,CAAE,CAAE+5H,YAAaA,EAAa,GAAGsB,CAAS,EAClF,CAEAC,wBAAwBvB,CAAW,CAAEsB,CAAS,CAAE,CAC5C,IAAI/B,EAAc,IAAI,CAACN,YAAY,CAAC59H,GAAG,CAAC2+H,EAAY/5H,EAAE,EACtDs5H,EAAc,CAAE,GAAGA,CAAW,CAAE,GAAG+B,CAAS,EAC5C,IAAI,CAACrC,YAAY,CAAC/6E,GAAG,CAAC87E,EAAY/5H,EAAE,CAAEs5H,EAC1C,CAEAiC,uBAAuBroI,CAAI,CAAE,CACzB,IAAI,CAACkoI,eAAe,CAACloI,EAAKsyF,IAAI,CAAEtyF,EAAKmoI,SAAS,EAC9C,IAAI,CAACvC,8BAA8B,CAAC0C,kBAAkB,CAACtoI,EAAKsyF,IAAI,CAACxlF,EAAE,CAAE9M,EAAKuoI,SAAS,CAAEvoI,EAAK4G,OAAO,CAAE5G,EAAKwoI,eAAe,CAAExoI,EAAKyoI,YAAY,CAC9I,CAEAC,yBAAyB1oI,CAAI,CAAE,CAC3B,IAAI,CAACkoI,eAAe,CAACloI,EAAKsyF,IAAI,CAAEtyF,EAAKmoI,SAAS,EAC9C,IAAI,CAACtC,uBAAuB,CAAC8C,oBAAoB,CAAC3oI,EAAKsyF,IAAI,CAACxlF,EAAE,CAAE9M,EAAKuoI,SAAS,CAAEvoI,EAAK4G,OAAO,CAAE5G,EAAKwoI,eAAe,CAAExoI,EAAKyoI,YAAY,CACzI,CAEAG,4BAA4B5oI,CAAI,CAAE,CAC9B,IAAI,CAACkoI,eAAe,CAACloI,EAAKsyF,IAAI,CAAEtyF,EAAKmoI,SAAS,EAC9C,IAAI,CAACtC,uBAAuB,CAACgD,uBAAuB,CAAC7oI,EAAKsyF,IAAI,CAACxlF,EAAE,CAAE9M,EAAKuoI,SAAS,CAAEvoI,EAAK4G,OAAO,CAAE5G,EAAKwoI,eAAe,CAAExoI,EAAKyoI,YAAY,CAC5I,CAEAK,2BAA2B9oI,CAAI,CAAE,CAC7B,IAAI,CAACkoI,eAAe,CAACloI,EAAKsyF,IAAI,CAAEtyF,EAAKmoI,SAAS,EAC9C,IAAI,CAACvC,8BAA8B,CAACmD,6BAA6B,CAAC/oI,EAAK4G,OAAO,CAAE5G,EAAKsyF,IAAI,CAACxlF,EAAE,CAAE9M,EAAKuoI,SAAS,CAAEvoI,EAAKwoI,eAAe,CAAExoI,EAAKyoI,YAAY,CACzJ,CAEAO,iCAAiChpI,CAAI,CAAE,CAC/B,IAAI,CAAC8lI,YAAY,CAAC73E,GAAG,CAACjuD,EAAKsyF,IAAI,CAACxlF,EAAE,EAClC,IAAI,CAACs7H,uBAAuB,CAACpoI,EAAKsyF,IAAI,CAAEtyF,EAAKmoI,SAAS,EAEtD,IAAI,CAACD,eAAe,CAACloI,EAAKsyF,IAAI,CAAEtyF,EAAKmoI,SAAS,EAGlD,IAAMc,EAAmB,EAAE,MACAnqI,IAAvBkB,EAAKsyF,IAAI,CAAC7uF,QAAQ,EAAkBzD,EAAKsyF,IAAI,CAAC7uF,QAAQ,CAACtH,MAAM,CAAG,GAChE6D,EAAKsyF,IAAI,CAAC7uF,QAAQ,CAAChG,OAAO,CAAC,IACvBgG,EAASqjI,aAAa,CAACrpI,OAAO,CAAC,IAC3BwrI,EAAiBroI,IAAI,CAAC8mI,EAAar6H,EAAE,CACzC,EACJ,GAGJ,IAAM67H,EAAkB,CACpBn2H,MAAO6jF,EAAAA,CAAeA,CAACC,KAAK,CAACwN,YAAY,CACzCz9F,QAAS5G,EAAK4G,OAAO,CACrBmlH,SAAU/rH,EAAKsyF,IAAI,CAACxlF,EAAE,CACtBm8H,iBAAkBA,EAClBT,gBAAiBxoI,EAAKwoI,eAAe,CACrC5B,cAAe5mI,EAAK4mI,aAAa,CACjC/zC,gBAAiB7yF,EAAK6yF,eAAe,EAGzC,IAAI,CAACkzC,WAAW,CAACr0H,UAAU,CAAC,yBAA0Bw3H,EAC1D,CAEAC,uBAAuBnpI,CAAI,CAAE,CACzB,IAAI,CAAC+lI,WAAW,CAACr0H,UAAU,CAAC,0BAA2B,CACnD03H,gBAAiB,CAAEntH,KAAM,SAAU5N,OAAQ,IAAI,CAAC26H,gCAAgC,CAAC1vI,IAAI,CAAC,IAAI,CAAE0G,EAAM,EAClGqpI,8BAA+B,EACnC,EACJ,CAEAC,iBAAiBr7H,CAAS,CAAE,CACxB,IAAI,CAAC63H,YAAY,CAACn8H,MAAM,CAACsE,EAC7B,CACJ,CAEAu3H,EAAuBnmI,OAAO,CAAG,CAAC,gCAAiC,aAAc,uBAAwB,kBAAmB,qBAAsB,kBAAmB,yBAAyB,CAE9LF,EAAAA,CAAUA,CAACC,OAAO,CAAC,yBAA0BomI,E,kBCpL7CrmI,E,OAAAA,CAAUA,CAACqI,QAAQ,CAAC,gCAZb,MACHjI,aAAc,CACV,IAAI,CAACqI,IAAI,CAAG,KACR,MAAM,MAAU,yBACpB,CACJ,CAEA4sH,YAAYC,CAAQ,CAAE,CAClB,IAAI,CAAC7sH,IAAI,CAAG6sH,CAChB,CACJ,E,mCCZO,IAAM8U,EAA4B,CAACC,EAAYnuI,KAClD,GAAImuI,gCAAAA,EAAWlnE,WAAW,CAAoC,CAC1D,GAAIjnE,SAAAA,EACA,OAAOmuI,EAAW9uD,aAAa,CAC5B,GAAIr/E,QAAAA,EACP,OAAOmuI,EAAW/uD,aAAa,CAE/B,IAAI+uD,EAAWC,UAAU,CAACC,aAAa,CAAC,EAAE,CAOtC,MAAO,GANP,GAAIF,SAAAA,EAAWC,UAAU,CAACC,aAAa,CAAC,EAAE,CAACC,MAAM,CAC7C,OAAOH,EAAW9uD,aAAa,CAC5B,GAAI8uD,QAAAA,EAAWC,UAAU,CAACC,aAAa,CAAC,EAAE,CAACC,MAAM,CACpD,OAAOH,EAAW/uD,aAAa,KAM4B,CAApE,GAAI+uD,sCAAAA,EAAWlnE,WAAW,CAW7B,OAAOjnE,EAVP,GAAI,iBAAOA,EAOP,MAAO,GANP,IAAK,IAAI2D,EAAI,EAAGA,EAAIwqI,EAAWI,OAAO,CAACztI,MAAM,CAAE6C,IAC3C,GAAI3D,IAAUmuI,EAAWI,OAAO,CAAC5qI,EAAE,CAACqO,EAAE,CAClC,OAAOm8H,EAAWI,OAAO,CAAC5qI,EAAE,CAAC+yE,KAAK,CAStD,C,qEC9BA,IAAM83D,EAAa,CACf,oBACA,0BACA,mBACA,2BACA,yBACA,uBACA,kBACA,oBACA,oBACA,sBACA,eACA,gCACA,8BACA,oCACA,yBACH,CCTD1qI,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,uBAAwB,CACvC,uBACA,aACA,iBACA,kBACA,UACA,SAAU/wB,CAAoB,CAAEwO,CAAU,CAAEi7C,CAAc,CAAEw9E,CAAe,CAAEnxI,CAAO,EAChF,IAAI0zD,EAAuB,CACvB09E,2BAA4B,GAC5BC,sBAAuB,EAC3B,EAspBA,OAppBA39E,EAAqB49E,yBAAyB,CAAG,SAAUlsI,CAAO,EAC9D,MAAO,CAACA,EAAQmsI,WAAW,CAACC,aAAa,EAAI,CAAEpsI,CAAAA,sBAAAA,EAAQukE,WAAW,EAA4BvkE,UAAAA,EAAQqsI,cAAc,GAAiBC,EAAqBltH,QAAQ,CAACpf,EAAQukE,WAAW,CAC1L,EAEAjW,EAAqBi+E,gBAAgB,CAAG,SAAU7wF,CAAG,EACjD,MAAO,CAACA,EAAI17C,OAAO,CAACmsI,WAAW,CAACnkE,OAAO,EAAI,CAACtsB,EAAI17C,OAAO,CAACmsI,WAAW,CAACK,YAAY,EAAI,CAAC9wF,EAAI17C,OAAO,CAACmsI,WAAW,CAACC,aAAa,EAG9H99E,EAAqBm+E,eAAe,CAAG,SAAU/wF,CAAG,EAChD,OAAOA,EAAI17C,OAAO,CAACmsI,WAAW,CAACnkE,OAAO,EAAItsB,EAAIgxF,gBAAgB,EAGlEp+E,EAAqBq+E,oBAAoB,CAAG,SAAUjxF,CAAG,EACrD,OAAOA,EAAI17C,OAAO,CAACmsI,WAAW,CAACK,YAAY,EAAK9wF,CAAAA,EAAIkxF,gBAAgB,EAAIlxF,EAAIgxF,gBAAgB,CAChG,EAEAp+E,EAAqBu+E,qBAAqB,CAAG,SAAUnxF,CAAG,EACtD,OAAOA,EAAI17C,OAAO,CAACmsI,WAAW,CAACC,aAAa,EAGhD99E,EAAqBw+E,yBAAyB,CAAG,SAAUpxF,CAAG,QAE1D,EADoB,KAAI,CAAC6wF,gBAAgB,CAAC7wF,IAAQ,IAAI,CAAC+wF,eAAe,CAAC/wF,IAAQ,IAAI,CAACixF,oBAAoB,CAACjxF,IAAQ,IAAI,CAACmxF,qBAAqB,CAACnxF,EAAG,MAK3I,IAAI,CAACmxF,qBAAqB,CAACnxF,MAAQA,EAAIkxF,gBAAgB,EAIpDlxF,CAAAA,EAAImlC,SAAS,CAAG,IAAI,CAACksD,4BAA4B,CAACrxF,GAAO,IAAI,CAACsxF,4BAA4B,CAACtxF,EAAG,EACzG,EAEA4S,EAAqB0+E,4BAA4B,CAAG,SAAUtxF,CAAG,EAC7D,MAAO,CAACA,EAAImlC,SAAS,EAGzBvyB,EAAqBy+E,4BAA4B,CAAG,SAAUrxF,CAAG,EAE7D,GAAIA,EAAI17C,OAAO,CAACmsI,WAAW,CAACc,QAAQ,EAIhCvxF,EAAI17C,OAAO,CAACmsI,WAAW,CAACC,aAAa,EAAI1wF,EAAIkxF,gBAAgB,CAH7D,MAAO,GAQX,GAAIlxF,EAAImlC,SAAS,CAAE,CAEf,GAAInlC,EAAI17C,OAAO,CAACktI,8BAA8B,CAC1C,MAAO,GAGP,OAAQxxF,EAAI17C,OAAO,CAACukE,WAAW,EAM3B,IAAK,oBACL,IAAK,mBACD,OAAOjW,EAAqB6+E,wBAAwB,CAACzxF,EAAI17C,OAAO,GAAKsuD,EAAqB8+E,gBAAgB,CAAC1xF,EAAI17C,OAAO,CAC1H,KAAK,kBACD,OAAOsuD,EAAqB++E,wBAAwB,CAAC3xF,EAAI17C,OAAO,GAAKsuD,EAAqB8+E,gBAAgB,CAAC1xF,EAAI17C,OAAO,CAC1H,KAAK,2BACL,IAAK,uBACL,IAAK,oCACD,OAAOsuD,EAAqBg/E,0BAA0B,CAAC5xF,EAAI17C,OAAO,GAAKsuD,EAAqB8+E,gBAAgB,CAAC1xF,EAAI17C,OAAO,CAC5H,KAAK,8BACL,IAAK,oBACL,IAAK,oBACL,IAAK,sBACL,IAAK,gCACD,OAAOsuD,EAAqBi/E,4BAA4B,CAAC7xF,EAAI17C,OAAO,GAAKsuD,EAAqB8+E,gBAAgB,CAAC1xF,EAAI17C,OAAO,CAC9H,KAAK,yBACD,OAAOsuD,EAAqBk/E,yBAAyB,CAAC9xF,EAAI17C,OAAO,GAAKsuD,EAAqB8+E,gBAAgB,CAAC1xF,EAAI17C,OAAO,CAC3H,KAAK,yBACD,OAAOsuD,EAAqB8+E,gBAAgB,CAAC1xF,EAAI17C,OAAO,CAC5D,KAAK,sBACD,OAAOsuD,EAAqBm/E,oBAAoB,CAAC/xF,EAAI17C,OAAO,CAChE,KAAK,eACD,OAAOuuD,EAAe2jC,UAAU,CAACx2C,EAAI17C,OAAO,CAChD,KAAK,cACD,OAAOsuD,EAAqBo/E,0BAA0B,CAAChyF,EAAI17C,OAAO,CACtE,KAAK,uBACD,OAAOsuD,EAAqBq/E,eAAe,CAACjyF,EAAI17C,OAAO,CAM3D,KAAK,mBAGD,IAAK,IAFD4tI,EAAU,GAELxoE,EAAI,EAAGA,EAAI1pB,EAAI17C,OAAO,CAAC6tI,QAAQ,CAACzvI,MAAM,CAAEgnE,IAAK,CAClD,IAAI0oE,EAAapyF,EAAI17C,OAAO,CAAC6tI,QAAQ,CAACzoE,EAAE,CAEpCnoB,EAAc,CACdj9C,QAAS8tI,EACTjtD,UAAWnlC,EAAImlC,SAAS,CACxB+rD,iBAAkBlxF,EAAIkxF,gBAAgB,CACtCF,iBAAkBhxF,EAAIgxF,gBAAgB,EAGtCp+E,EAAqBy+E,4BAA4B,CAAC9vF,IAAgBqR,EAAqBy/E,sBAAsB,CAACD,IAC9GF,CAAAA,EAAU,EAAG,CAErB,CACA,OAAOA,CAMX,KAAK,iBACD,OAAOlyF,EAAI17C,OAAO,CAACguI,iBAAiB,KACnC,oCACL,IAAK,sCACL,IAAK,4CACD,IAAIC,EAAe,GACfC,EAAY,GACZC,EAAgB,GAapB,MAXkC,KAA9BzyF,EAAI17C,OAAO,CAACouI,aAAa,EACzBH,CAAAA,EAAe,EAAI,EAEQ,KAA3BvyF,EAAI17C,OAAO,CAACquI,UAAU,EACtBH,CAAAA,EAAY,EAAI,EAG0B,KAA1CxyF,EAAI17C,OAAO,CAACsuI,yBAAyB,EAAcL,CAAAA,CAAiB,IAAjBA,GAAyBC,CAAc,IAAdA,CAAiB,GAC7FC,CAAAA,EAAgB,EAAG,EAGhBA,CACX,KAAK,0BACD,OAAOzyF,EAAI17C,OAAO,CAACsuI,yBAAyB,SAE5C,MAAO,EACf,CAER,CACA,MAAO,EACX,EAEAhgF,EAAqB8+E,gBAAgB,CAAG,SAAUptI,CAAO,QACrD,EAAIA,EAAQopI,QAAQ,CAACmF,eAAe,IAC5BvuI,EAAQopI,QAAQ,CAACA,QAAQ,CAAC,EAAE,EAExB,KAASA,QAAQ,CAACA,QAAQ,CAAC,EAAE,EAAIppI,IAAAA,EAAQopI,QAAQ,CAACA,QAAQ,CAAC,EAAE,CAACT,aAAa,EAAY3oI,EAAAA,EAAQopI,QAAQ,CAACA,QAAQ,CAAC,EAAE,EAAIppI,EAAQopI,QAAQ,CAACA,QAAQ,CAAC,EAAE,CAACL,aAAa,CAAC3qI,MAAM,CAAG,EAW3L,EAEAkwD,EAAqBgX,kCAAkC,CAAG,SAAUtlE,CAAO,EACvE,GAAIA,EACA,OAAQA,EAAQukE,WAAW,EACvB,IAAK,mBACD,OAAOjW,EAAqBkgF,wBAAwB,CAACxuI,EAEzD,KAAK,mBACD,OAAOsuD,EAAqBmgF,8BAA8B,CAACzuI,EAE/D,KAAK,8BACL,IAAK,oBACL,IAAK,kBACL,IAAK,sBACL,IAAK,oBACL,IAAK,sBACL,IAAK,gCACL,IAAK,oCACL,IAAK,2BACL,IAAK,uBACL,IAAK,yBACL,IAAK,oBACL,IAAK,cACL,IAAK,yBACD,OAAOsuD,EAAqBogF,kCAAkC,CAAC1uI,EAEnE,KAAK,eACD,OAAOsuD,EAAqBqgF,0BAA0B,CAAC3uI,EAE3D,SAWI,MAAO,CAAEs1D,MAAO,GAAMp3C,KAAM,kBAAmB,CAEvD,CAGJ,MAAO,CAAEo3C,MAAO,GAAMp3C,KAAM,cAAe,CAC/C,EAEAowC,EAAqBogF,kCAAkC,CAAG,SAAU1uI,CAAO,QAEvE,CAAqC,IAAjCA,EAAQ4uI,oBAAoB,CACrB,CAAEt5E,MAAO,GAAMp3C,KAAM,iBAAkB,EAG3CowC,EAAqBy/E,sBAAsB,CAAC/tI,GAAW,CAAEs1D,MAAO,GAAMp3C,KAAM,yBAA0B,EAAI,CAAEo3C,MAAO,GAAOp3C,KAAM,YAAa,CACxJ,EAEAowC,EAAqBmgF,8BAA8B,CAAG,SAAUzuI,CAAO,EAEnE,GAAIA,CAAiC,IAAjCA,EAAQ4uI,oBAAoB,CAC5B,MAAO,CAAEt5E,MAAO,GAAMp3C,KAAM,iBAAkB,EAIlD,GAAIle,CAA6B,IAA7BA,EAAQ6uI,gBAAgB,CAAW,CAEnC,IAAIC,EAAY/C,EAAgBgD,YAAY,CAAC/uI,EAAQgvI,UAAU,EAC/D,GAAIjD,EAAgBkD,kBAAkB,CAACH,EAAW9uI,EAAQk8E,QAAQ,CAAEl8E,EAAQi8E,QAAQ,EAChF,MAAO,CAAE3mB,MAAO,GAAOp3C,KAAM,iBAAkB,CAEvD,CAGA,OAAOowC,EAAqBy/E,sBAAsB,CAAC/tI,GAAW,CAAEs1D,MAAO,GAAMp3C,KAAM,yBAA0B,EAAI,CAAEo3C,MAAO,GAAOp3C,KAAM,YAAa,CACxJ,EAEAowC,EAAqBqgF,0BAA0B,CAAG,SAAU3uI,CAAO,QAC/D,CAAqC,IAAjCA,EAAQ4uI,oBAAoB,CACrB,CAAEt5E,MAAO,GAAMp3C,KAAM,iBAAkB,EAG3C,CAAEo3C,MAAO/G,EAAe2jC,UAAU,CAAClyF,GAAUke,KAAM,YAAa,CAC3E,EAEAowC,EAAqBkgF,wBAAwB,CAAG,SAAUxuI,CAAO,EAG7D,IAAK,IADDkvI,EAAoB,GACf9pE,EAAI,EAAGA,EAAIplE,EAAQ6tI,QAAQ,CAACzvI,MAAM,CAAEgnE,IACQ,KAA7CplE,EAAQ6tI,QAAQ,CAACzoE,EAAE,CAACwpE,oBAAoB,EACxCM,CAAAA,EAAoB,EAAG,EAK/B,GAAIA,CAAsB,IAAtBA,EACA,MAAO,CAAE55E,MAAO,GAAMp3C,KAAM,iBAAkB,EAKlD,IAAK,IADDixH,EAAiB,KACZpvD,EAAI,EAAGA,EAAI//E,EAAQ6tI,QAAQ,CAACzvI,MAAM,CAAE2hF,IAEzC,GAAIovD,CADJA,EAAiB7gF,EAAqBgX,kCAAkC,CAACtlE,EAAQ6tI,QAAQ,CAAC9tD,EAAE,IACtEovD,CAAyB,IAAzBA,EAAe75E,KAAK,CAEtC,OAAO65E,EAKf,MAAO,CAAE75E,MAAO,GAAMp3C,KAAM,yBAA0B,CAC1D,EAEAowC,EAAqBy/E,sBAAsB,CAAG,SAAU/tI,CAAO,EAE3D,GAAIA,EACA,OAAQA,EAAQukE,WAAW,EACvB,IAAK,oBACL,IAAK,mBACD,OAAOjW,EAAqB6+E,wBAAwB,CAACntI,EAEzD,KAAK,kBACD,OAAOsuD,EAAqB++E,wBAAwB,CAACrtI,EAEzD,KAAK,2BACL,IAAK,uBACL,IAAK,oCACD,OAAOsuD,EAAqBg/E,0BAA0B,CAACttI,EAE3D,KAAK,8BACL,IAAK,oBACL,IAAK,oBACL,IAAK,sBACL,IAAK,gCACD,OAAOsuD,EAAqBi/E,4BAA4B,CAACvtI,EAE7D,KAAK,yBACD,OAAOsuD,EAAqBk/E,yBAAyB,CAACxtI,EAE1D,KAAK,yBACD,OAAOsuD,EAAqB8+E,gBAAgB,CAACptI,EAEjD,KAAK,sBACD,OAAOsuD,EAAqBm/E,oBAAoB,CAACztI,EAErD,KAAK,eACD,OAAOuuD,EAAe2jC,UAAU,CAAClyF,EAErC,KAAK,cACD,OAAOsuD,EAAqBo/E,0BAA0B,CAAC1tI,EAE3D,KAAK,uBACD,OAAOsuD,EAAqBq/E,eAAe,CAAC3tI,EAEhD,KAAK,mBACD,OAAOsuD,EAAqB8gF,4BAA4B,CAACpvI,EAEjE,CAGJ,MAAO,EACX,EAEAsuD,EAAqB6+E,wBAAwB,CAAG,SAAUntI,CAAO,EAG7D,OAAOA,KAAuBe,IAAvBf,EAAQgvI,UAAU,EAAkBhvI,OAAAA,EAAQgvI,UAAU,EAAa,CAACp0I,EAAQo2F,OAAO,CAAChxF,EAAQgvI,UAAU,CACjH,EAEA1gF,EAAqB++E,wBAAwB,CAAG,SAAUrtI,CAAO,EAC7D,OAAO,KAA2Be,IAA3B,EAASsuI,aAAa,EAAkBrvI,OAAAA,EAAQqvI,aAAa,EAAervI,KAAwBe,IAAxBf,EAAQsvI,WAAW,EAAkBtvI,OAAAA,EAAQsvI,WAAW,EAG/IhhF,EAAqBg/E,0BAA0B,CAAG,SAAUttI,CAAO,EAG/D,OAAOA,KAAwBe,IAAxBf,EAAQuvI,WAAW,EAAkBvvI,OAAAA,EAAQuvI,WAAW,EAAavvI,IAAAA,EAAQuvI,WAAW,EAGnGjhF,EAAqBi/E,4BAA4B,CAAG,SAAUvtI,CAAO,EAGjE,OAAOA,KAA0Be,IAA1Bf,EAAQwvI,aAAa,EAAkBxvI,OAAAA,EAAQwvI,aAAa,EAAaxvI,IAAAA,EAAQwvI,aAAa,EAGzGlhF,EAAqBk/E,yBAAyB,CAAG,SAAUxtI,CAAO,EAE9D,GAAIA,OAAAA,EAAQ6rI,OAAO,EAAa7rI,KAAoBe,IAApBf,EAAQ6rI,OAAO,CAC3C,KAAK,IAAI5qI,EAAI,EAAGA,EAAIjB,EAAQ6rI,OAAO,CAACztI,MAAM,CAAE6C,IAExC,GAAIjB,SAAAA,EAAQ6rI,OAAO,CAAC5qI,EAAE,CAACwuI,OAAO,EAAezvI,CAA8B,GAA9BA,EAAQ6rI,OAAO,CAAC5qI,EAAE,CAACwuI,OAAO,CACnE,MAAO,EAEf,CAEJ,MAAO,EACX,EAEAnhF,EAAqBm/E,oBAAoB,CAAG,SAAUztI,CAAO,EACzD,MAAO,CAAC,CAACA,EAAQ0vI,mBAAmB,EAGxCphF,EAAqBo/E,0BAA0B,CAAG,SAAU1tI,CAAO,EAC/D,OAAOA,EAAQ2vI,KAAK,EAAI3vI,EAAQ2vI,KAAK,CAACvxI,MAAM,CAAG,CACnD,EAEAkwD,EAAqBq/E,eAAe,CAAG,SAAU3tI,CAAO,EACpD,MAAO,CAAC,CAACA,EAAQ4vI,SAAS,EAG9BthF,EAAqB8gF,4BAA4B,CAAG,SAAUpvI,CAAO,EAEjE,IAAK,IADD6vI,EAAgB,GACXzqE,EAAI,EAAGA,EAAIplE,EAAQ6tI,QAAQ,CAACzvI,MAAM,CAAEgnE,IAE+B,IAApE9W,EAAqBy/E,sBAAsB,CAAC/tI,EAAQ6tI,QAAQ,CAACzoE,EAAE,GAC/DyqE,CAAAA,EAAgB,EAAI,EAG5B,OAAOA,CACX,EAEAvhF,EAAqBwhF,yCAAyC,CAAG,SAAUp0F,CAAG,QACtE,CAACA,EAAIkxF,gBAAgB,IAAIlxF,EAAI17C,OAAO,CAACmsI,WAAW,CAACC,aAAa,EAOtE99E,EAAqByhF,UAAU,CAAG,SAAUC,CAAQ,EAChD,IAAIvW,EAAO7+H,EAAQq4F,WAAW,CAAC+8C,GAG3Bz0F,EAAIk+E,EAAOA,EAAKlvG,KAAK,CAAC,UAAY,EACtC,OAAOgxB,EAAIA,EAAEn9C,MAAM,CAAG,EAC1B,EAEAkwD,EAAqBwH,cAAc,CAAG,SAAUvW,CAAI,CAAE0wF,CAAa,CAAEC,CAAU,EAG3E,IAAK,IAFDC,EAAY,GACZC,EAAiB,GACZnvI,EAAI,EAAGA,EAAIs+C,EAAKghB,QAAQ,CAACniE,MAAM,CAAE6C,IAAK,CAC3C,IAAIjB,EAAUu/C,EAAKghB,QAAQ,CAACt/D,EAAE,CAC9B,OAAQjB,EAAQukE,WAAW,EACvB,IAAK,oBACGvkE,EAAQqsI,cAAc,GAAKvnI,EAAqBS,SAAS,CAAC,2BACtD0qI,CAAkB,IAAlBA,EAEIjwI,CAAAA,KAAuBe,IAAvBf,EAAQgvI,UAAU,EAClBhvI,OAAAA,EAAQgvI,UAAU,EAClBhvI,KAAAA,EAAQgvI,UAAU,EAClBhvI,EAAQgvI,UAAU,GAAKlqI,EAAqBS,SAAS,CAAC,kCAAiC,GAEvFvF,CAAAA,EAAQgvI,UAAU,CAAGkB,CAAS,EAG9BlwI,KAAuBe,IAAvBf,EAAQgvI,UAAU,EAAkBhvI,OAAAA,EAAQgvI,UAAU,EAAahvI,KAAAA,EAAQgvI,UAAU,CACrFhvI,EAAQqwI,OAAO,CAAG,IAElBrwI,EAAQqwI,OAAO,CAAG,GACdF,GACAC,CAAAA,EAAiBtrI,EAAqBS,SAAS,CAAC,yBAAwB,EAE5E4qI,EAAY,KAIxB,KACJ,KAAK,mBACGnwI,EAAQgvI,UAAU,EAAIhvI,EAAQi8E,QAAQ,CAAG,GAAK3tB,CAA+C,IAA/CA,EAAqB29E,qBAAqB,GAIpF6C,IAFgB,CAACiB,UAAU,CAAC/vI,EAAQgvI,UAAU,EAElChvI,EAAQi8E,QAAQ,EAC5Bj8E,EAAQqwI,OAAO,CAAG,GACdF,GACAC,CAAAA,EAAiBtrI,EAAqBS,SAAS,CAAC,gCAAkCvF,EAAQi8E,QAAQ,CAACxvD,QAAQ,EAAC,EAEhH0jH,EAAY,IAEZnwI,EAAQqwI,OAAO,CAAG,IAG1B,KACJ,KAAK,oCAEL,IAAK,iBAEL,IAAK,yBAEL,IAAK,2BAqBL,IAAK,uBAEL,IAAK,cAEL,IAAK,4CAEL,IAAK,sCAEL,IAAK,sBAeL,IAAK,mBAjDD,KAOJ,KAAK,kBAEGrwI,CAAsB,GAAtBA,EAAQswI,UAAU,EAAYtwI,MAAAA,EAAQqvI,aAAa,EAAYrvI,MAAAA,EAAQsvI,WAAW,EAAYtvI,CAAmB,GAAnBA,EAAQuwI,OAAO,EAC7GvwI,EAAQqwI,OAAO,CAAG,GACdF,GACAC,CAAAA,EAAiBtrI,EAAqBS,SAAS,CAAC,4BAA2B,EAE/E4qI,EAAY,IAELnwI,CAAsB,GAAtBA,EAAQswI,UAAU,EAAYtwI,MAAAA,EAAQqvI,aAAa,EAAYrvI,MAAAA,EAAQsvI,WAAW,EAAYtvI,CAAmB,GAAnBA,EAAQuwI,OAAO,EACpHvwI,EAAQqwI,OAAO,CAAG,GACdF,GACAC,CAAAA,EAAiBtrI,EAAqBS,SAAS,CAAC,8BAA6B,EAEjF4qI,EAAY,IAEZnwI,EAAQqwI,OAAO,CAAG,GAEtB,KAWJ,KAAK,gCACL,IAAK,8BACL,IAAK,oCACGrwI,EAAQwwI,mBAAmB,EAC3BxwI,EAAQqwI,OAAO,CAAG,GACdF,GACAC,CAAAA,EAAiBtrI,EAAqBS,SAAS,CAAC,+DAA8D,EAElH4qI,EAAY,IAEZnwI,EAAQqwI,OAAO,CAAG,GAEtB,KAGJ,KAAK,uBAEmD,IAA7B/8H,EAAWgxD,cAAc,EAC1BtkE,EAAQ4vI,SAAS,EAAK5vI,CAAAA,EAAQywI,eAAe,EAAIzwI,EAAQ4vI,SAAS,CAACc,WAAW,EAAI1wI,EAAQ4vI,SAAS,CAACa,eAAe,GAAK,CAAClxF,EAAK7Q,QAAQ,GACxJ1uC,EAAQ0kE,iBAAiB,CAAG,GACxB1kE,EAAQ2wI,eAAe,CACvBr9H,EAAWK,UAAU,CAAC,yBAA2B3T,EAAQsP,EAAE,EAE3DgE,EAAWK,UAAU,CAAC,0BAA4B3T,EAAQsP,EAAE,EAM5E,CAEA,GAAI,CAAC6gI,EACD,KAER,CACA,MAAO,CAAE5wF,KAAMA,EAAM+V,MAAO66E,EAAWz/F,QAAS0/F,CAAe,CACnE,EAEA9hF,EAAqBsiF,4BAA4B,CAAG,SAAUnF,CAAU,CAAEoF,CAAQ,EAC1EpF,EAAWmE,SAAS,EAAKnE,CAAAA,EAAWmE,SAAS,CAACc,WAAW,EAAIjF,EAAWgF,eAAe,IAClFn9H,EAAWw9H,iBAAiB,EAE7Bx9H,CAAAA,EAAWw9H,iBAAiB,CAAG,CAC3BC,QAAS,EACTC,MAAO,EACPC,cAAe,CACnB,GAGA,CAACJ,IACGpF,CAA+B,IAA/BA,EAAWkF,eAAe,EAE1Br9H,EAAWw9H,iBAAiB,CAACE,KAAK,GAE9BvF,EAAWyF,gBAAgB,EAC3B59H,EAAWw9H,iBAAiB,CAACG,aAAa,IAEN,KAAjCxF,EAAW/mE,iBAAiB,EACnCpxD,EAAWw9H,iBAAiB,CAACC,OAAO,IAIpD,EAEAziF,EAAqB6iF,iBAAiB,CAAG,SAAUC,CAAc,SAC7D,EAAmBjlH,cAAc,CAAC,gBACvBilH,EAAeC,YAAY,GAE3BD,EAAepxI,OAAO,CAACsxI,QAAQ,CAC/BF,EAAAA,EAAepxI,OAAO,CAACsxI,QAAQ,CAACh8E,KAAK,EAAU87E,EAAepxI,OAAO,CAACsxI,QAAQ,CAACrK,YAAY,OAE1G,EAEA34E,EAAqBijF,sBAAsB,CAAG,SAAUC,CAAe,CAAEC,CAAU,EAC/E,IAAIL,EAAiB,KACjBM,EAAqB,GACrBzK,EAAe,GAEfwK,GACA,KAAI,CAACzF,0BAA0B,CAAG,EAAI,EAI1C,IAAK,IAAI/qI,EAAI,EAAGC,EAAIswI,EAAgBpzI,MAAM,CAAE6C,EAAIC,EAAGD,IAG3CmwI,yBAAAA,CAFJA,EAAiBI,CAAe,CAACvwI,EAAE,EAEhBjB,OAAO,CAACukE,WAAW,EAGG,IAAjCjxD,EAAWq+H,kBAAkB,GAC7Br+H,EAAWq+H,kBAAkB,CAAG,GAGL,KAD3BD,CAAAA,EAAqB,IAAI,CAACP,iBAAiB,CAACC,EAAc,GACvBnK,KAAAA,GAC/BA,CAAAA,EAAeyK,CAAiB,EAEpCp+H,EAAWq+H,kBAAkB,CAAG,IAGpC,IAAI,CAACf,4BAA4B,CAACQ,EAAepxI,OAAO,CAAEoxI,EAAevwD,SAAS,EAE9EuwD,EAAeQ,0BAA0B,EAAI,CAAC,IAAI,CAAC5F,0BAA0B,EAC7E,KAAI,CAACA,0BAA0B,CAAGoF,EAAeQ,0BAA0B,GAIpD,KAD3BF,CAAAA,EAAqB,IAAI,CAACP,iBAAiB,CAACC,EAAc,GACvBnK,KAAAA,GAC/BA,CAAAA,EAAeyK,CAAiB,EAK5C,MAAO,CACHG,SAAU5K,KAAAA,EACVv2F,QAASu2F,CACb,CACJ,EAgBA34E,EAAqBwjF,uBAAuB,CAAG,SAC3CrG,CAAU,CACVsG,CAAkB,CAClBC,CAAU,CACVnB,CAAQ,CACRoB,CAAc,CACdC,CAAY,CACZhsI,CAAM,CACNqH,CAAU,CACVm3H,CAAU,CACVyN,CAAsB,CACtBrpI,CAAS,CACTspI,CAAU,EAEV,MAAO,CACHpyI,QAASyrI,GAAc,KACvB5qD,UAAWgwD,EACXnE,iBAAkBqF,EAClBnF,iBAAkBoF,EAClBC,eAAgBA,EAChBC,aAAcA,EACdhsI,OAAQA,EACRw+H,WAAYA,EACZn3H,WAAYA,EACZ4kI,uBAAwBA,EACxBrpI,UAAWA,GAAa,KACxBspI,WAAYA,KAAerxI,IAAfqxI,EAA2BA,EAAa,IACxD,CACJ,EAEA9jF,EAAqB+jF,kBAAkB,CAAG,SAAU5/E,CAAG,EAcnD,OAbAA,EAAI49E,OAAO,CAAG59E,KAAgB1xD,IAAhB0xD,EAAI49E,OAAO,EAAiB59E,EAAI49E,OAAO,CAErD59E,EAAI6+E,QAAQ,CAAG,CACXh8E,MAAO7C,EAAI49E,OAAO,CAClBnyH,KAAM,EACV,EAEAu0C,EAAI6/E,cAAc,CAAG,CACjBh9E,MAAO,CAAC7C,EAAIm8E,oBAAoB,CAChC1wH,KAAM,GACNq0H,aAAc,EAClB,EAEO9/E,CACX,EAEOnE,CACX,EACH,C,iCCnqBD,SAASkkF,EAAgB1kG,CAAS,CAAElzC,CAAO,EAGvC,IAAI,CAACq0I,kBAAkB,CASvB,SAA4BH,CAAS,CAAE2D,CAAQ,CAAEC,CAAQ,SACrD,IAAIA,EACO5D,EAAY2D,EAEZ3D,EAAY2D,GAAY3D,EAAY4D,CAEnD,EAdA,IAAI,CAAC3D,YAAY,CAsCjB,SAAsB3tG,CAAO,MATTA,SAUhB,GAIAA,EAAUuxG,SA3BYvxG,CAAO,EAI7B,IAAK,IAHDpgC,EACA4xI,EAAW,GAEN3xI,EAAI,EAAGC,EAAI2xI,EAAYz0I,MAAM,CAAE6C,EAAIC,EAAGD,IAE3CD,EAAQ,OADR4xI,EAAW,IAAMC,CAAW,CAAC5xI,EAAE,CAAG,IACL,KAC7BmgC,EAAUA,EAAQ7uB,OAAO,CAACvR,EAAO,KAAO4xI,GAG5C,OAAOxxG,CACX,EAgB+BA,GAZ3B,OADAA,CAAAA,EAAUA,CADMA,EAeExmC,EAAQq4F,WAAW,CAAC7xD,IAdpBriB,KAAK,CAAC+zH,EAAS,EAEtB1xG,EAAQhjC,MAAM,CAGlB,GAKI,CAKf,EA1CA,IAAIy0I,EAAc,CAAC,MAAO,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAK,CAC1EC,EAAY,mEA0CpB,C,SArDA1xI,EAAAA,CAAUA,CAACC,OAAO,CAAC,kBAAmBmxI,GACtCA,EAAgBlxI,OAAO,CAAG,CAAC,YAAa,UAAU,E,yCCHW,OAEvDyxI,UAAyBluI,EAAAA,CAAWA,CACtCrD,aAAc,CACV,KAAK,EACT,CAEAynH,YAAa,CACT,IAAI,CAAC+pB,aAAa,CAAG,CAAC,EAAE,EAAE,IAAI,CAACnM,KAAK,CAAC,QAAQ,EAAE,IAAI,CAACvzB,SAAS,EAAI,GAAG,EAAE,EAAE,IAAI,CAAClyE,OAAO,CAAC,GAAG,EAAE,IAAI,CAACylG,KAAK,CAAC,CAAC,CAAC,CAE/G,CAYAkM,EAAiBzxI,OAAO,CAAG,EAAE,CAC7BF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,UAXY,CAC7BC,SAAU,CACNwgI,MAAO,IACPzlG,QAAS,IACTkyE,UAAW,GACf,EACA7sG,SAAU,qFACVC,WAAYqsI,CAChB,E,qDCjBA3xI,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiB,WAClC,MAAO,CACHhC,MAAO,GAEPkV,KAAM,SAAUlV,CAAK,EACbA,EAAM8wG,KAAK,EACX9wG,EAAMixB,IAAI,EAElB,CACJ,CACJ,GACA3iC,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiB,WAClC,MAAO,CACHhC,MAAO,GAEPkV,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EAEjC,IAAIolH,EAAkBngI,EAAMib,MAAM,CAACF,EAAMqlH,aAAa,CAAE,SAAUjpI,CAAQ,EAEtE,GAAIA,EACA,IAAIkpI,EAAmBrgI,EAAMib,MAAM,CAAC,KAAM,SAAUqlH,CAAU,EAEtDA,GAActgI,EAAMugI,MAAM,GAC1BxlH,EAAMylH,IAAI,CAAC,MAAOrpI,GAClBkpI,IACAF,IAER,QAIAA,GAER,EACJ,CACJ,CACJ,GACA7xI,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiB,CAClC,WACA,aACA,YACA,WACA,UACA,OACA,kBACA,uBACA,SAAU4c,CAAQ,CAAEpe,CAAU,CAAEqC,CAAS,CAAEvS,CAAQ,CAAEsS,CAAO,CAAE/C,CAAI,CAAEC,CAAe,CAAE9N,CAAoB,EACrG,MAAO,CACH+N,SAAU,IACVpM,SCrDG,0+CDsDHC,WAAY,CACR,SACA,WACA,SAAUoT,CAAM,CAAEo9E,CAAQ,EACtBp9E,EAAOhV,oBAAoB,CAAGA,EAC9BgV,EAAOL,yBAAyB,CAAG7G,EAAgB6G,yBAAyB,CAC5EK,EAAOy5H,eAAe,CAAG5gI,EAAKmU,qBAAqB,CAAChN,EAAOL,yBAAyB,CAAG,gDAGvFK,EAAO05H,oBAAoB,CAAG,IAS9BlgI,EAAWmgI,YAAY,CAAG,GAG1B,IAAIC,EAAkBx8C,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,eACzDpO,CAAAA,EAAO65H,yBAAyB,CAAGp1I,SAAS2pB,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,CAC/F,IAAI0rH,EAA2B18C,CAAQ,CAAC,EAAE,CAAClnE,aAAa,CAAC,0BACrD6jH,EAAmC5rH,QAAQjoB,OAAO,CAAC4zI,GACnDE,EAA4B7rH,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,0BAExElnB,CAAAA,EAAOi6H,UAAU,CAAG,WAEZj6H,CAAAA,EAAO4d,OAAO,CAAC3vB,KAAK,GAAKjD,EAAqBS,SAAS,CAAC,iCACxDuU,EAAO4d,OAAO,CAAC3vB,KAAK,GAAKjD,EAAqBS,SAAS,CAAC,+BAA8B,GAEtDsuI,EAAiCrsH,QAAQ,CAAC,aAElF,EAEA1N,EAAOi6H,UAAU,GAEjBj6H,EAAOk6H,gBAAgB,CAAG,SAAU7tG,CAAC,EACf,IAAdA,EAAEtoC,OAAO,EAAUsoC,CAAe,IAAfA,EAAE8tG,QAAQ,GAC7B9tG,EAAEvnC,cAAc,GAChBL,SAASyiC,cAAc,CAAC,uBAAuBxjC,KAAK,GAE5D,EAEAsc,EAAOo6H,WAAW,CAAG,SAAUC,CAAW,EAEtC,OAAOr6H,EAAOqnB,QAAQ,CAACC,OAAO,CADd+yG,EAAc,EACW,CAACC,YAAY,EAG1Dt6H,EAAOu6H,cAAc,CAAG,SAAUluG,CAAC,EAC/B,IAAIzoC,EAASyoC,EAAEzoC,MAAM,CAGrB42I,EAF6BrzG,UAAU,CAACA,UAAU,CACnBwyE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CACtD8gC,IAAI,GACb72I,EAAOujC,UAAU,CAACC,WAAW,CAACxjC,EAClC,EAKAoc,EAAO3b,WAAW,CAAG,WAGZy1I,EAAyB5jH,aAAa,CAAC,YAIxClW,EAAO06H,MAAM,CAAGvsH,QAAQjoB,OAAO,CAAC4zI,EAAyB5jH,aAAa,CAAC,cAHvElW,EAAO06H,MAAM,CAAGvsH,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC,EAAE,EAClD55H,EAAO06H,MAAM,CAAChtH,QAAQ,CAAC,YAMtBosH,EAAyB5jH,aAAa,CAAC,UAOxClW,EAAO26H,OAAO,CAAGxsH,QAAQjoB,OAAO,CAAC4zI,EAAyB5jH,aAAa,CAAC,UACxE/H,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC55H,EAAO/K,EAAE,CAAG,EAAE,EAAEyY,QAAQ,CAAC,SAPrD1N,EAAOqtD,GAAG,EAAI,IACdrtD,EAAO26H,OAAO,CAAGxsH,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC,EAAE,EACnD55H,EAAO26H,OAAO,CAACjtH,QAAQ,CAAC,SAS3BosH,EAAyB5jH,aAAa,CAAC,SAIxClW,EAAO46H,OAAO,CAAGzsH,QAAQjoB,OAAO,CAAC4zI,EAAyB5jH,aAAa,CAAC,WAHxElW,EAAO46H,OAAO,CAAGzsH,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC55H,EAAOqtD,GAAG,CAAG,EAAE,EAChErtD,EAAO46H,OAAO,CAACltH,QAAQ,CAAC,QAIhC,EAMA1N,EAAO66H,YAAY,CAAG,SAAUC,CAAG,EAC/B,IAAI7vB,EAAQ,CAAC,CACbA,CAAAA,EAAMh2G,EAAE,CAAG6lI,EACX7vB,EAAM8vB,OAAO,CAAG/6H,EAAO/K,EAAE,CAGzB+K,EAAOg7H,WAAW,GAGlBh7H,EAAO3b,WAAW,GAGlB2b,EAAO26H,OAAO,CAACltH,WAAW,CAAC,QAC3BzN,EAAO46H,OAAO,CAACntH,WAAW,CAAC,QAG3Bw9F,EAAMgwB,QAAQ,CAACvtH,QAAQ,CAAC,QACpBu9F,EAAMh2G,EAAE,CAAG,EAAI+K,EAAOqtD,GAAG,CACzB49C,EAAMgwB,QAAQ,CAAG9sH,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC3uB,EAAMh2G,EAAE,CAAG,EAAE,EAG9Dg2G,EAAMgwB,QAAQ,CAAG9sH,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC,EAAE,EAInD3uB,EAAMh2G,EAAE,CAAG,GAAK,EAChBg2G,EAAMiwB,QAAQ,CAAG/sH,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC3uB,EAAMh2G,EAAE,CAAG,EAAE,EAI9Dg2G,EAAMiwB,QAAQ,CAAG/sH,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC55H,EAAOqtD,GAAG,CAAG,EAAE,EAChE49C,EAAMiwB,QAAQ,CAACxtH,QAAQ,CAAC,QAI5Bu9F,EAAMkwB,OAAO,CAAGhtH,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC3uB,EAAMh2G,EAAE,CAAC,EAIrDg2G,EAAMh2G,EAAE,CAAGg2G,EAAM8vB,OAAO,CACxB9vB,EAAMkwB,OAAO,CAACztH,QAAQ,CAAC,QAEvBu9F,EAAMkwB,OAAO,CAACztH,QAAQ,CAAC,QAE3BuZ,WAAW,WAEPjnB,EAAO06H,MAAM,CAACjtH,WAAW,CAAC,WACtBw9F,EAAMh2G,EAAE,CAAGg2G,EAAM8vB,OAAO,CACxB/6H,EAAO06H,MAAM,CAAChtH,QAAQ,CAAC,QAEvB1N,EAAO06H,MAAM,CAAChtH,QAAQ,CAAC,QAG3Bu9F,EAAMkwB,OAAO,CAAC1tH,WAAW,CAAC,QAC1Bw9F,EAAMkwB,OAAO,CAAC1tH,WAAW,CAAC,QAE1Bw9F,EAAMkwB,OAAO,CAACztH,QAAQ,CAAC,UAC3B,EAAG,IACHuZ,WAAW,WACHgkF,EAAMh2G,EAAE,CAAGg2G,EAAM8vB,OAAO,CACpB9vB,EAAMiwB,QAAQ,CAAC,EAAE,GAAKl7H,EAAO06H,MAAM,CAAC,EAAE,EACtC16H,EAAO06H,MAAM,CAACjtH,WAAW,CAAC,QAG1Bw9F,EAAMgwB,QAAQ,CAAC,EAAE,GAAKj7H,EAAO06H,MAAM,CAAC,EAAE,EACtC16H,EAAO06H,MAAM,CAACjtH,WAAW,CAAC,OAGtC,EAAG,IAIP,EAKAzN,EAAOo7H,SAAS,CAAG,WACfp7H,EAAO3b,WAAW,GAGd2b,EAAO/K,EAAE,CAAG,EACZ+K,EAAO/K,EAAE,GAET+K,EAAO/K,EAAE,CAAG+K,EAAOqtD,GAAG,CAAG,EAI7BrtD,EAAO06H,MAAM,CAACjtH,WAAW,CAAC,WAC1BzN,EAAO06H,MAAM,CAAChtH,QAAQ,CAAC,QAGvB1N,EAAO46H,OAAO,CAACntH,WAAW,CAAC,QAC3BzN,EAAO46H,OAAO,CAACltH,QAAQ,CAAC,WAGxB1N,EAAO26H,OAAO,CAACltH,WAAW,CAAC,QACvBmsH,CAAe,CAAC55H,EAAO/K,EAAE,CAAG,EAAE,CAC9BkZ,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC55H,EAAO/K,EAAE,CAAG,EAAE,EAAEyY,QAAQ,CAAC,QAGzDS,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC55H,EAAOqtD,GAAG,CAAG,EAAE,EAAE3/C,QAAQ,CAAC,OAElE,EAKA1N,EAAOq7H,SAAS,CAAG,WACfr7H,EAAO3b,WAAW,GAGd2b,EAAO/K,EAAE,CAAG+K,EAAOqtD,GAAG,CAAG,EACzBrtD,EAAO/K,EAAE,GAET+K,EAAO/K,EAAE,CAAG,EAIhB+K,EAAO06H,MAAM,CAACjtH,WAAW,CAAC,WAC1BzN,EAAO06H,MAAM,CAAChtH,QAAQ,CAAC,QAGvB1N,EAAO26H,OAAO,CAACltH,WAAW,CAAC,QAC3BzN,EAAO26H,OAAO,CAACjtH,QAAQ,CAAC,WAGxB1N,EAAO46H,OAAO,CAACntH,WAAW,CAAC,QACvBmsH,CAAe,CAAC55H,EAAO/K,EAAE,CAAG,EAAE,CAC9BkZ,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC55H,EAAO/K,EAAE,CAAG,EAAE,EAAEyY,QAAQ,CAAC,QAGzDS,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC,EAAE,EAAElsH,QAAQ,CAAC,OAErD,EAEA1N,EAAOs7H,YAAY,CAAG,SAAUntF,CAAM,CAAExnD,CAAK,EACzC,GAAIwnD,IAAAA,EAAOpqD,OAAO,EAAWoqD,EAAOgsF,QAAQ,EAKrC,GAAIhsF,IAAAA,EAAOpqD,OAAO,GAAUoqD,EAAOgsF,QAAQ,CAM9C,MALKn6H,CAAAA,EAAOu7H,aAAa,EACrBptF,EAAOrpD,cAAc,GAEzB6B,GAAS,OARJqZ,EAAOu7H,aAAa,EACrBptF,EAAOrpD,cAAc,GAEzB6B,GAAS,EAab,GAHAqZ,EAAO3b,WAAW,GAGdsC,GAASqZ,EAAOqtD,GAAG,CAAG,GAAK1mE,GAAS,EACpCqZ,EAAO/K,EAAE,CAAGtO,MACT,CACHqZ,EAAO65H,yBAAyB,CAACn2I,KAAK,GACtC,MACJ,CAGAsc,EAAO06H,MAAM,CAACjtH,WAAW,CAAC,WAG1BzN,EAAO26H,OAAO,CAACltH,WAAW,CAAC,QAG3BzN,EAAO46H,OAAO,CAACntH,WAAW,CAAC,QAEvBmsH,CAAe,CAAC55H,EAAO/K,EAAE,CAAG,EAAE,CAC9BkZ,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC55H,EAAO/K,EAAE,CAAG,EAAE,EAAEyY,QAAQ,CAAC,QAGzDS,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC55H,EAAOqtD,GAAG,CAAG,EAAE,EAAE3/C,QAAQ,CAAC,QAG1DksH,CAAe,CAAC55H,EAAO/K,EAAE,CAAC,EAC1BkZ,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC55H,EAAO/K,EAAE,CAAC,EAAEyY,QAAQ,CAAC,WAGrDksH,CAAe,CAAC55H,EAAO/K,EAAE,CAAG,EAAE,CAC9BkZ,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC55H,EAAO/K,EAAE,CAAG,EAAE,EAAEyY,QAAQ,CAAC,QAGzDS,QAAQjoB,OAAO,CAAC0zI,CAAe,CAAC,EAAE,EAAElsH,QAAQ,CAAC,QAGjDuZ,WAAW,WACP2yG,CAAe,CAAC55H,EAAO/K,EAAE,CAAC,CAACvR,KAAK,EACpC,EAAG,IACP,EAqBAsc,EAAOg7H,WAAW,CAAG,WACjBn/H,EAAU0C,MAAM,CAACyB,EAAOw7H,eAAe,EAGvCx7H,EAAOy7H,iBAAiB,CAAG,EAC/B,EAEAz7H,EAAO07H,gBAAgB,CAAG,WACtBj3I,SAASyiC,cAAc,CAAC,4BAA4BxiC,gBAAgB,CAAC,QAASsb,EAAOo7H,SAAS,EAC9F32I,SAASyiC,cAAc,CAAC,wBAAwBxiC,gBAAgB,CAAC,QAASsb,EAAOq7H,SAAS,CAC9F,EAKAr7H,EAAOiqB,IAAI,CAAG,WAEVjqB,EAAOqtD,GAAG,CAAGusE,EAAgBt1I,MAAM,CAEnC0b,EAAO/K,EAAE,CAAG,EAEZ+K,EAAO07H,gBAAgB,GAEnB17H,EAAOqtD,GAAG,CAAG,GACbrtD,EAAO3b,WAAW,EAI1B,EAKA2b,EAAO27H,SAAS,CAAG,WACfv+C,EAAS3vE,WAAW,CAAC,UAErBmuH,QAD+B11I,OAAO,CAAC8zI,CAAyB,CAAC,EAAE,CAACrgC,oBAAoB,CAAC,WACxErvG,MAAM,GACvByvI,EAAiCtsH,WAAW,CAAC,YAG7CzN,EAAO67H,iBAAiB,CAAG,EAE/B,CACJ,EACH,CAED3tH,KAAM,SAAUlV,CAAK,EAIjBA,EAAM4G,GAAG,CAAC,WAAY,WAClB5G,EAAMgiI,WAAW,EACrB,EACJ,CACJ,CACJ,EACH,E,SE3ZD1zI,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,oBAAqB,CACtC,WACA,aACA,YACA,WACA,UACA,OACA,mBACA,kBACA,mBACA,uBACA,SAAU4c,CAAQ,CAAEpe,CAAU,CAAEqC,CAAS,CAAEvS,CAAQ,CAAEsS,CAAO,CAAE/C,CAAI,CAAEijI,CAAgB,CAAEhjI,CAAe,CAAE4yC,CAAgB,CAAE1gD,CAAoB,EACzI,MAAO,CACH+N,SAAU,IACVpM,SCrBG,k8BDsBHC,WAAY,CACR,SACA,WACA,SAAUoT,CAAM,CAAEo9E,CAAQ,EACtB,IAAI2+C,EAA8B,WAC1B/7H,EAAOqnB,QAAQ,GACflZ,QAAQvoB,OAAO,CAACoa,EAAOqnB,QAAQ,CAACC,OAAO,CAAE,SAAUxJ,CAAI,CAAEy7G,CAAM,EAEvDz7G,EAAK0J,IAAI,EAAK1J,CAAAA,EAAK0J,IAAI,CAAC1sB,WAAW,GAAG/T,OAAO,CAAC,SAAW,IAAM+2B,EAAK0J,IAAI,CAAC1sB,WAAW,GAAG/T,OAAO,CAAC,UAAY,EAAC,EAC5GiZ,EAAOqnB,QAAQ,CAACC,OAAO,CAACiyG,EAAO,CAAC/xG,IAAI,CAAG1J,EAAK0J,IAAI,CAEhDxnB,EAAOqnB,QAAQ,CAACC,OAAO,CAACiyG,EAAO,CAAC/xG,IAAI,CAAG1uB,EAAgB6G,yBAAyB,CAAGme,EAAK0J,IAAI,GAGpGxnB,EAAOg8H,MAAM,CAAGh8H,EAAOqnB,QAAQ,CAACC,OAAO,CAE/C,EAEI20G,EAAkB,WACdj8H,EAAOqnB,QAAQ,GAEXrnB,GAAAA,EAAOqnB,QAAQ,CAACC,OAAO,CAAChjC,MAAM,CAC9B0b,EAAOk8H,YAAY,CAAG,GAEtBl8H,EAAOk8H,YAAY,CAAG,GAE1BH,IAER,EAEAzyI,EAAS,WACL2yI,GACJ,EAAG,GAGH,IAAIE,EAAyBhuH,QAAQjoB,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAClnE,aAAa,CAAC,yBACnE2jH,EAA4Bz8C,CAAQ,CAAC,EAAE,CAAClnE,aAAa,CAAC,0BAE1DlW,CAAAA,EAAOu7H,aAAa,CAAG,GACnBv7H,EAAOu7H,aAAa,EACpBY,EAAuBzuH,QAAQ,CAAC,aAKhC1N,CAAAA,EAAO4d,OAAO,CAAC3vB,KAAK,GAAKjD,EAAqBS,SAAS,CAAC,iCACxDuU,EAAO4d,OAAO,CAAC3vB,KAAK,GAAKjD,EAAqBS,SAAS,CAAC,+BAA8B,GAEtFouI,EAA0BliH,SAAS,CAAC9uB,GAAG,CAAC,qCAG5CmX,EAAOo8H,UAAU,CAAG,WAChBp8H,EAAOq8H,iBAAiB,CAAGj/C,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,WAAW,CAAC,EAAE,CAC5EpO,EAAOs8H,YAAY,CAAGl/C,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,gBACzDpO,EAAOu8H,cAAc,CAAGv8H,EAAOs8H,YAAY,CAAC,EAAE,CAC9Ct8H,EAAOw8H,wBAAwB,CAAG/3I,SAAS2pB,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,CAC7FpO,EAAO85H,wBAAwB,CAAGr1I,SAASyxB,aAAa,CAAC,yBAC7D,EAEAlW,EAAOy8H,UAAU,CAAGriI,KAAKq4C,GAAG,GAC5BzyC,EAAO08H,UAAU,CAAG,WACZtiI,KAAKq4C,GAAG,GAAKzyC,EAAOy8H,UAAU,CAAG,MAIrCz8H,EAAOo8H,UAAU,GAEbp8H,CAAyB,IAAzBA,EAAOu7H,aAAa,EACpBh9G,EAAAA,CAAOA,CAACC,UAAU,CAAC,UAAW,QAAS,qBAIvCxe,EAAOu7H,aAAa,CAAG,GACvBY,EAAuBzuH,QAAQ,CAAC,aAChCyuH,EAAuB1uH,WAAW,CAAC,aACnCzN,EAAO28H,iBAAiB,CAAG11G,WAAW,WAClCjnB,EAAOw8H,wBAAwB,CAAC3tF,KAAK,CAAC+tF,OAAO,CAAG,MACpD,EAAG,KACH58H,EAAO4N,KAAK,CAAC,mBAAoB5N,EAAOqnB,QAAQ,IAEhD9I,EAAAA,CAAOA,CAACC,UAAU,CAAC,UAAW,QAAS,oBAEvCuI,aAAa/mB,EAAO28H,iBAAiB,EAErC38H,EAAOw8H,wBAAwB,CAAC3tF,KAAK,CAAC+tF,OAAO,CAAG,QAEhD58H,EAAOu7H,aAAa,CAAG,GACvBY,EAAuB1uH,WAAW,CAAC,aACnC0uH,EAAuBzuH,QAAQ,CAAC,aAC3Bg+B,EAAiBgD,KAAK,EACvBznB,WAAW,WACPjnB,EAAO85H,wBAAwB,CAAC5jH,aAAa,CAAC,YAAYxyB,KAAK,EACnE,EAAG,MAIXsc,EAAOy8H,UAAU,CAAGriI,KAAKq4C,GAAG,GAChC,EAEAzyC,EAAO68H,aAAa,CAAG,SAAUC,CAAc,EAE3Cr4I,SAASyiC,cAAc,CAAC,4BAA4BpQ,QAAQ,CAAGgmH,EAC/Dr4I,SAASyiC,cAAc,CAAC,wBAAwBpQ,QAAQ,CAAGgmH,CAC/D,EAEA98H,EAAO+8H,eAAe,CAAG,SAAU1wG,CAAC,EAEd,IAAdA,EAAEtoC,OAAO,EAAUsoC,CAAe,IAAfA,EAAE8tG,QAAQ,EAAan6H,CAAwB,GAAxBA,EAAOu7H,aAAa,GAC9DlvG,EAAEvnC,cAAc,GAChBL,SAASyiC,cAAc,CAAC,wBAAwBxjC,KAAK,GAE7D,EAEAsc,EAAOJ,GAAG,CAAC,iBAAkB,SAAUtc,CAAK,EACxC0c,EAAO08H,UAAU,EACrB,GAEA18H,EAAOg9H,QAAQ,CAAG,WACdb,EAAuB1uH,WAAW,CAAC,aACnC0uH,EAAuB1uH,WAAW,CAAC,aACnC0uH,EAAuBzuH,QAAQ,CAAC,aAChC1N,EAAOu7H,aAAa,CAAG,EAC3B,EAEAv7H,EAAOi9H,YAAY,CAAG,SAAU9uF,CAAM,EAClCA,EAAOnqD,eAAe,GACtBgc,EAAOk9H,SAAS,EACpB,EAEAl9H,EAAOk9H,SAAS,CAAG,WACff,EAAuB1uH,WAAW,CAAC,aACnC0uH,EAAuB1uH,WAAW,CAAC,aACnC0uH,EAAuBzuH,QAAQ,CAAC,YACpC,EAGA1N,EAAOm9H,QAAQ,CAAG,SAAUC,CAAO,EAC/B9zI,EAAS,WACD0W,EAAOu7H,aAAa,EACpBv7H,EAAOk9H,SAAS,EAExB,EAAGE,IAAAA,EACP,EAEAp9H,EAAOJ,GAAG,CAAC,kBAAmB,WAC1BI,EAAOk9H,SAAS,EACpB,EACJ,EACH,CAEDhvH,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACF9sB,KAAAA,IAA3B8sB,EAAM,aAAgB,EACtB/a,EAAMmkI,QAAQ,CAACppH,EAAM,aAAgB,CAE7C,CACJ,CACJ,EACH,C,4EE7KuD,OAElDspH,UAAuBtyI,EAAAA,CAAWA,CACpCrD,YAAYsY,CAAM,CAAE,CAChB,KAAK,GAEL,IAAI,CAAC6rH,iBAAiB,CAAG,CAAC,gBAAgB,EAAE7rH,EAAOkmB,GAAG,CAAC,CAAC,CAEhE,CAWAm3G,EAAe71I,OAAO,CAAG,CAAC,SAAS,CACnCF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,iBAVS,CAC1BC,SAAU,CACN26C,OAAQ,GACZ,EACAv6C,SCpBW,woBDqBX2wI,WAAY,GACZ1wI,WAAYywI,CAChB,E,4DEnBA/1I,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,iBAAkB,CACjC,aACA,eACA,UACA,YACA,WACA,YACA,UACA,kBACA,SAAUviB,CAAU,CAAEnK,CAAY,CAAEuM,CAAO,CAAEE,CAAS,CAAExS,CAAQ,CAAEuS,CAAS,CAAE/a,CAAO,CAAEy8I,CAAe,EACjG,MAAO,CACHC,iBAAkB,cAClBC,eAAgB,KAChBC,iBAAkB,KAClB1/H,SAAU,KACV2/H,KAAM,KAEN1zG,KAAM,SAAU2zG,CAAU,EACtB,IAAM16H,EAAY,IAAI,CAACs8E,mBAAmB,GACtCq+C,EAAgB,KAoBpB,MAlBI36H,KAAAA,GACA26H,EAAgB,IAAI,CAACC,WAAW,CAAC56H,GACjC,IAAI,CAAC66H,mBAAmB,CAAC76H,GAErB26H,CAAkB,IAAlBA,GAA2BA,OAAAA,EAC3BD,EAAWtF,UAAU,CAAGuF,EAAcG,OAAO,CAACA,OAAO,CAAC15I,MAAM,CAAG,EAAI,KAAO,IAAI,CAAC25I,kBAAkB,GAEjGJ,EAAgB,IAAI,CAACK,UAAU,IAGnCL,EAAgB,IAAI,CAACK,UAAU,GAGnC,IAAI,CAACC,OAAO,GAEU,KAAlBN,GAA2BA,OAAAA,GAC3B,IAAI,CAACO,YAAY,CAACR,GAEf,IAAI,EAGfS,SAAU,SAAUj6H,CAAI,EAmBpB,OAlBIA,GACAA,CAAAA,EAAOA,EAAKtJ,WAAW,EAAC,EAiBrB,CAAC3M,CAdW,CACfmwI,KAAM9kI,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,gCAAiC,CAAE2B,MAAO,CAAE,GAC5FmxI,iBAAkB/kI,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,oCAAqC,CAAE2B,MAAO,CAAE,GAC5GoxI,aAAchlI,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,wCAAyC,CAAE2B,MAAO,CAAE,GAC5GqxI,SAAUjlI,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,oCAAqC,CAAE2B,MAAO,CAAE,GACpG8C,KAAMsJ,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,gCAAiC,CAAE2B,MAAO,CAAE,GAC5FsxI,uBAAwBllI,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,sCAAuC,CAAE2B,MAAO,CAAE,GACpHuxI,YAAanlI,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,uCAAwC,CAAE2B,MAAO,CAAE,GAC1GwxI,aAAcplI,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,wBAAyB,CAAE2B,MAAO,CAAE,GAC5FyxI,gBAAiBrlI,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,4CAC3DqzI,gBAAiBtlI,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,2CAC/D,EAEwB,CAAC2Y,EAAK,EACNA,CAAG,EAAGtJ,WAAW,EAC7C,EAEAikI,cAAe,WACX,GAAK,IAAI,CAACtB,cAAc,EAGxB,IAAIuB,EAAe,IAAI,CAACvB,cAAc,CAACO,OAAO,CAE9C,GAAIgB,EAAa16I,MAAM,CAAG,GAAK,CAAC,IAAI,CAACk7F,mBAAmB,GACpD,MAAO,EACJ,EACH,IAAMy/C,EAAsBD,CAAY,CAACA,EAAa16I,MAAM,CAAG,EAAE,CACjE,MAAO,CACH6J,MAAOqL,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,8BAA+B,CAC5EyzI,UAAW,IAAI,CAACb,QAAQ,CAACY,EAAoB76H,IAAI,CACrD,GACAA,KAAM66H,EAAoB76H,IAAI,CAC9B45E,KAAMihD,EAAoB76H,IAAI,CAC9B7P,IAAK0qI,EAAoB1qI,GAAG,CAEpC,EACJ,EAEA0pI,mBAAoB,WAChB,GAAI,WAAI,CAACR,cAAc,CAAW,CAC9B,IAAM0B,EAAc,IAAI,CAAC1B,cAAc,CAACO,OAAO,CAACx4I,IAAI,CAAC,GAAUs4B,EAAKshH,UAAU,GAAK/vI,EAAaN,OAAO,EAEvG,GAAIowI,KAAgBl4I,IAAhBk4I,EACA,OAAOA,EAAY7G,UAAU,CAIrC,OAAO,IACX,EAEA+G,qBAAsB,SAAUC,CAAa,EACzCxjI,EAAUvH,GAAG,CAAC+qI,EAAc/qI,GAAG,CACnC,EAEAgrI,aAAc,SAAU5mF,CAAG,EAEvB,IAAI2mF,EAAgB,IAAI,CAACr1G,IAAI,CAAC0uB,GAAKomF,aAAa,GAMhD,OAJA,IAAI,CAACS,iBAAiB,CAAC,CACnB7mF,IAAK2mF,CACT,GAEOA,CACX,EAEAE,kBAAmB,SAAUlgF,CAAI,EAC7B,IAAImgF,EAAQ,EAERpnG,EAAO,IAAI,CAEfx8B,EAAU0C,MAAM,CAAC85B,EAAKr6B,QAAQ,EAC1Bq6B,EAAKslG,IAAI,EACTtlG,EAAKslG,IAAI,GAGbtlG,EAAKslG,IAAI,CAAGnkI,EAAWoG,GAAG,CAAC,+BAAgC,WACvD/D,EAAU0C,MAAM,CAAC85B,EAAKr6B,QAAQ,EAC9Bq6B,EAAKslG,IAAI,EACb,GAEAtlG,EAAKr6B,QAAQ,CAAGnC,EAAU,WAClB4jI,GAdW,IAeX5jI,EAAU0C,MAAM,CAAC85B,EAAKr6B,QAAQ,EAC9Bq6B,EAAKslG,IAAI,IAEbnkI,EAAWK,UAAU,CAAC,sBAAuBylD,GAC7CmgF,GACJ,EAAG,KAEHjmI,EAAWK,UAAU,CAAC,sBAAuBylD,EACjD,EAEAogF,eAAgB,SAAUpgF,CAAI,EAC1B,IAAI,CAACl7C,IAAI,CAAGk7C,EAAKl7C,IAAI,EAAI,OACzB,IAAI,CAACg7H,UAAU,CAAG9/E,EAAK8/E,UAAU,EAAI/vI,EAAaN,OAAO,CACzD,IAAI,CAACwF,GAAG,CAAG+qD,EAAK/qD,GAAG,EAAIuH,EAAUvH,GAAG,GACpC,IAAI,CAAC+jI,UAAU,CAAGh5E,EAAKg5E,UAAU,EAAI,IACzC,EAEAqH,iBAAkB,SAAUhnF,CAAG,EAC3B,IAAIhyD,EAAQ,IAAI,CAACi5I,qBAAqB,CAACjnF,GACvC,MAAO,CAAEknF,YAAal5I,KAAAA,EAAcA,MAAOA,CAAM,CACrD,EAEAi5I,sBAAuB,SAAUjnF,CAAG,EAChC,IAAK,IAAIxxD,EAAI,EAAGA,EAAI,IAAI,CAACs2I,cAAc,CAACO,OAAO,CAAC15I,MAAM,CAAE6C,IAEpD,GAAI,IAAI,CAACs2I,cAAc,CAACO,OAAO,CAAC72I,EAAE,CAACi4I,UAAU,EAAIzmF,EAAIymF,UAAU,CAC3D,OAAOj4I,EAGf,OAAO,EACX,EAEAi3I,aAAc,SAAU9+E,CAAI,EACxB,GAAI,WAAI,CAACm+E,cAAc,CACnB,OAGJ,IAAMqC,EAAgB,IAAI,IAAI,CAACJ,cAAc,CAACpgF,GACxCugF,EAAc,IAAI,CAACF,gBAAgB,CAACG,EAErCD,CAAAA,EAAYA,WAAW,EAGxB,IAAI,CAACE,0BAA0B,CAACD,GAChC,IAAI,CAACrC,cAAc,CAACO,OAAO,CAAC6B,EAAYl5I,KAAK,CAAC,CAAGm5I,GAHjD,IAAI,CAACrC,cAAc,CAACO,OAAO,CAACj1I,IAAI,CAAC+2I,GAMrC,IAAI,CAACE,WAAW,CAAC,IAAI,CAACtC,gBAAgB,CAAE,IAAI,CAACD,cAAc,CAC/D,EAEAsC,2BAA4B,SAAUpnF,CAAG,EACrC,IAAIsnF,EAAW,IAAI,CAACL,qBAAqB,CAACjnF,EAEzB,MAAbsnF,GAAmBA,EAAW,EAAI,IAAI,CAACxC,cAAc,CAACO,OAAO,CAAC15I,MAAM,EACpE,IAAI,CAACm5I,cAAc,CAACO,OAAO,CAACh1I,MAAM,CAACi3I,EAAW,EAAG,IAAI,CAACxC,cAAc,CAACO,OAAO,CAAC15I,MAAM,CAE3F,EAEA45I,WAAY,WACR,IAAIL,EAAgB,IAAI,CAACqC,aAAa,GAOtC,OALIrC,GAAiBA,EAAc36H,SAAS,GACxC,IAAI,CAAC66H,mBAAmB,CAACF,EAAc36H,SAAS,EAChD,IAAI,CAACi9H,qBAAqB,CAACtC,EAAc36H,SAAS,GAG/C26H,CACX,EAEAsC,sBAAuB,SAAUj9H,CAAS,EACtCA,EAAYA,GAAa,KACzB,IAAIk9H,EAActkI,EAAUw1B,MAAM,GAC9B+uG,EAAgB,CAAEn9H,UAAWA,CAAU,EAE3C,IAAK,IAAIo9H,KAAcF,EACfA,EAAY/tH,cAAc,CAACiuH,IAAeA,cAAAA,GAC1CD,CAAAA,CAAa,CAACC,EAAW,CAAGF,CAAW,CAACE,EAAW,EAI3D/C,EAAgBgD,aAAa,CAAC,IAE9BzkI,EAAUw1B,MAAM,CAAC+uG,GAAe5nI,OAAO,GAEvCnP,EAAS,WACLi0I,EAAgBgD,aAAa,CAAC,GAClC,EAAG,IACP,EAEAC,cAAe,SAAUpB,CAAU,CAAEv/E,CAAM,EACvC,GAAI,WAAI,CAAC49E,cAAc,CACnB,OAGJ,IAAMuB,EAAe,IAAI,CAACvB,cAAc,CAACO,OAAO,CAC1CP,EAAiBuB,CAAY,CAACA,EAAa16I,MAAM,CAAG,EAAE,CAE5D,GAAI86I,IAAe3B,EAAe2B,UAAU,CACxC,OAGJ,IAAMqB,EAAiB,CAAE,GAAGhD,CAAc,CAAE,GAAG59E,CAAM,EAErD,IAAI,CAACu+E,YAAY,CAACqC,EACtB,EAMAC,iBAAkB,WACd,OAAO5/I,EAAQ6/I,YAAY,CAAC,GAChC,EAEAC,oBAAqB,WACjB,MAAO,CACH5C,QAAS,EAAE,CAEnB,EAEAkC,cAAe,WACX,IAAIh8I,EAAM,IAAI,CAACw8I,gBAAgB,GAC3B1C,EAAU,IAAI,CAAC4C,mBAAmB,GAGtC,OAFA,IAAI,CAACC,iBAAiB,CAAC7C,GAEhB,MAAI,CAACgC,WAAW,CAAC97I,EAAK85I,IAAW,CAAE96H,UAAWhf,EAAK85I,QAASA,CAAQ,CAC/E,EAEAgC,YAAa,SAAU97I,CAAG,CAAE48I,CAAQ,EAChC,GAAIA,EACA,GAAI,CACAA,EAAWhrF,KAAKi1E,SAAS,CAAC+V,EAC9B,CAAE,MAAOz0G,EAAG,CACRy0G,EAAW,KACXp/G,QAAQC,IAAI,CAAC,sCAAuC0K,EACxD,CAGJ,IAAIy0G,EAQA,MAAO,GAPP,GAAI,CAEA,OADAllI,EAAQY,cAAc,CAAC6B,OAAO,CAAC,IAAI,CAACm/H,gBAAgB,CAAGt5I,EAAK48I,GACrD,EACX,CAAE,MAAOz0G,EAAG,CACR,OAAO3K,QAAQC,IAAI,CAAC,iCAAkC0K,EAC1D,CAIR,EAEAw0G,kBAAmB,SAAUhD,CAAa,EACtC,IAAI,CAACJ,cAAc,CAAGI,CAC1B,EAEAE,oBAAqB,SAAU76H,CAAS,EACpC,IAAI,CAACw6H,gBAAgB,CAAGx6H,CAC5B,EAEAs8E,oBAAqB,SAAUuhD,CAAS,EACpC,IAAI79H,EAAY7T,EAAa6T,SAAS,CAOtC,MANAA,CAAAA,EAAYA,GAAwB,EAAC,GAEpB69H,GACb79H,CAAAA,EAAY,cAAgBA,CAAQ,EAGjCA,CACX,EAEA46H,YAAa,SAAU56H,CAAS,EAC5B,GAAI,CACA,IAAI86H,EAAUpiI,EAAQY,cAAc,CAACC,OAAO,CAAC,IAAI,CAAC+gI,gBAAgB,CAAGt6H,GACrE,GAAI86H,EAGA,OAFAA,EAAUloF,KAAKC,KAAK,CAACioF,GACrB,IAAI,CAAC6C,iBAAiB,CAAC7C,GAChB,CAAE96H,UAAWA,EAAW86H,QAASA,CAAQ,EAEhD,MAAO,EAEf,CAAE,MAAO3xG,EAAG,CAER,OADA3K,QAAQC,IAAI,CAAC,0CAA2C0K,GACjD,EACX,CACJ,EAEA8xG,QAAS,WAGL,IAAK,IAFD99G,EAAQ,IAAI,CAAC2gH,oCAAoC,CAAC,IAAI,CAACxD,gBAAgB,EAElEr2I,EAAI,EAAGA,EAAIk5B,EAAM/7B,MAAM,CAAE6C,IAE1Bk5B,CAAK,CAACl5B,EAAE,CAACjD,GAAG,GAAK,IAAI,CAACs5I,gBAAgB,CAAG,IAAI,CAACE,gBAAgB,EAC9D9hI,EAAQY,cAAc,CAACqD,UAAU,CAACwgB,CAAK,CAACl5B,EAAE,CAACjD,GAAG,CAG1D,EAEA+8I,mBAAoB,SAAU/9H,CAAS,EACnC,IAAI/a,EAAO,IAAI,CAAC21I,WAAW,CAAC56H,GAC5B,GAAI/a,CAAS,IAATA,EACA,OAAO,KAEP,IAAI61I,EAAU71I,EAAK61I,OAAO,CAACA,OAAO,CAClC,OAAOA,CAAO,CAACA,EAAQ15I,MAAM,CAAG,EAAE,EAI1C2e,mBAAoB,SAAUC,CAAS,EACnC,IAAIg+H,EAAkB,IAAI,CAACD,kBAAkB,CAAC/9H,GAC9C,OAAOg+H,EAAkBA,EAAgB3sI,GAAG,CAAG,EACnD,EAEAysI,qCAAsC,SAAU98I,CAAG,CAAEi9I,CAAM,EACvD,IACIC,EADAC,EAAU,EAAE,CAEZC,EAAa1lI,EAAQY,cAAc,CAGvC,IAAK4kI,KAAUE,EACPA,EAAWjvH,cAAc,CAAC+uH,IAGtBl6I,OAFmBhD,EAAK,KAElBD,IAAI,CAACm9I,IAAWA,GAAUD,GAChCE,EAAQt4I,IAAI,CAAC,CAAE7E,IAAKk9I,EAAQ59I,MAAOsyD,KAAKC,KAAK,CAACurF,EAAW7kI,OAAO,CAAC2kI,GAAS,GAKtF,OAAOC,CACX,CACJ,CACJ,EACH,C,0GC7VD/5I,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,UAAW,CAC5B,aACA,WACA,iBACA,iBACA,UACA,OACA,SAAUxB,CAAU,CAAElQ,CAAQ,CAAEwuB,CAAc,CAAEypH,CAAc,CAAEzgJ,CAAO,CAAEigD,CAAI,EACzE,MAAO,CACHp0C,SCxBG,gmDDyBHoM,SAAU,IACVukI,WAAY,GACZtkI,MAAO,CACHwoI,aAAc,IACd7yH,cAAe,IACf2V,eAAgB,IAChBm9G,cAAe,IACfC,IAAK,IACLjzI,SAAU,IACVkzI,UAAW,IACXC,SAAU,IACVhzH,WAAY,IACZswH,UAAW,GACf,EACAtyI,WAAY,CACR,SACA,SAAUoT,CAAM,EACZA,EAAOojG,uBAAuB,CAAG,kBAAoBpjG,EAAOkmB,GAAG,CAC/DlmB,EAAO8Z,MAAM,CAAG,GAChB9Z,EAAO6hI,cAAc,CAAG,EAAE,CAE1B7hI,EAAOqU,YAAY,CAAG,SAAUD,CAAM,EAClC,IAAIzsB,EAAUmwB,EAAegqH,iCAAiC,CAAC9hI,EAAO0hI,GAAG,EAEzE/5I,EAAQlE,IAAI,CAAC,SAAU0M,CAAQ,EAC3B6P,EAAOhT,eAAe,CAAGmD,EAAShI,IAAI,GAG1CR,EAAQY,OAAO,CAAC,WACZyX,EAAO4N,KAAK,CAAC,uBAAwB,CACjC8hB,QAAS1vB,EAAO0hI,GAAG,CACnBryG,eAAgBjb,EAAO2tH,aAAa,CACpCvyG,kBAAmBxvB,EAAOhT,eAAe,CACzConB,OAAQA,CACZ,EACJ,EACJ,EAEApU,EAAOgiI,iBAAiB,CAAG,WACvBhiI,EAAO8Z,MAAM,CAAG,GAChB9Z,EAAOiiI,iBAAiB,EAC5B,EAEAjiI,EAAOiiI,iBAAiB,CAAG,WACvBjiI,EAAOkiI,OAAO,CAAG,GACjB54I,EAASiV,MAAM,CAACyB,EAAOmiI,cAAc,CACzC,CACJ,EACH,CACDj0H,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,EAC1B8S,EAAMhO,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAC5DgO,EAAMopI,kBAAkB,CAAG,CAAC,GAAIC,EAAAA,CAAgBA,CAACz0C,YAAY,CAAEy0C,EAAAA,CAAgBA,CAACx0C,WAAW,CAAC,CAE5F70F,EAAM+yE,UAAU,CAAG,WACf,IAAI3hE,EAAUnjB,KAAAA,EAEd,GAAI+R,EAAM8gB,MAAM,CAAE,CACd9gB,EAAM8gB,MAAM,CAAG,GACf,MACJ,OAkBA,CAhBA9gB,EAAMmpI,cAAc,CAAG74I,EAAS,WAC5B0P,EAAMkpI,OAAO,CAAG,EACpB,EAAG,KACHlpI,EAAM8gB,MAAM,CAAG,GAGftgB,EAAWK,UAAU,CAAC,0BAA2B,CAAC,GAE1B5S,KAAAA,IAApB+R,EAAM2oI,SAAS,EACfv3H,CAAAA,EAAUpR,EAAM2oI,SAAS,EAAC,EAGH16I,KAAAA,IAAvB+R,EAAMwoI,YAAY,EAAmBxoI,EAAM0oI,GAAG,CAACp9I,MAAM,EACrD8lB,CAAAA,EAAUpR,EAAMyoI,aAAa,EAG7Br3H,KAAYnjB,IAAZmjB,IACApR,EAAM6oI,cAAc,CAAGz3H,EACvBpR,EAAMipI,iBAAiB,GAEvB34I,EAAS,WACL0P,EAAMa,UAAU,CAACb,EAAMoqG,uBAAuB,CAClD,GAEOh5F,GACAtpB,EAAQ62C,eAAe,CAAC3+B,EAAM0oI,GAAG,GACxC1oI,EAAM6oI,cAAc,CAAG,KAIhBn+H,EAFuB+1B,mBAAmB,CAACzgC,EAAM0oI,GAAG,CAAE1oI,EAAM4V,UAAU,EAE7DnrB,IAAI,CAAC,SAAU0M,CAAQ,EACnC,GAAIA,EAAShI,IAAI,CAAE,CACf,IACIm6I,EADAC,EAAkBpyI,EAAShI,IAAI,CAI/Bm6I,EADAtpI,EAAM2V,aAAa,EAAI3V,EAAM2V,aAAa,CAACrqB,MAAM,CAC/Bi+I,EAAgBrvH,KAAK,CAAC,SAAU+rF,CAAC,CAAE1mG,CAAC,EAClD,OAAOS,EAAM2V,aAAa,CAACloB,QAAQ,CAACw4G,EACxC,GAEkBsjC,EAGlBvpI,EAAMsrB,cAAc,EACpBg+G,EAAgBE,WAAW,CAACxpI,EAAMsrB,cAAc,EAGpDtrB,EAAMipI,iBAAiB,GACvBjpI,EAAM6oI,cAAc,CAAG,CAAC7oI,EAAMyoI,aAAa,CAAE3pH,EAAe2qH,iBAAiB,CAACH,EAAiBtpI,EAAM0oI,GAAG,CAACp9I,MAAM,CAAE0U,EAAMkmI,SAAS,EAAE34I,MAAM,CAACyS,EAAM0pI,eAAe,EAAE,CAC3JC,UAAU,GACVC,IAAI,CAAC,CAACt3E,EAAG2a,IAAM3a,EAAEu3E,KAAK,CAAG58D,EAAE48D,KAAK,EAEhC7pI,EAAM6oI,cAAc,EAAI7oI,IAAAA,EAAM6oI,cAAc,CAACv9I,MAAM,EACpD0U,CAAAA,EAAM6oI,cAAc,CAAG,CAACN,EAAeuB,cAAc,GAAG,CAEhE,CAEAx5I,EAAS,WACL0P,EAAMa,UAAU,CAACb,EAAMoqG,uBAAuB,CAClD,EACJ,UAER,EAEApqG,EAAM0pI,eAAe,CAAG,SAAUtuH,CAAM,EACpC,GAAIA,QAAAA,EAAO9F,IAAI,CAACxT,WAAW,GAAc,CACrC,IAAM8tC,EAAO7H,EAAKE,MAAM,GACxB,OAAO,KAA2B,IAApB2H,EAAKm6F,UAAU,EAAoB/pI,EAAMopI,kBAAkB,CAAC98H,QAAQ,CAACsjC,EAAKm6F,UAAU,CACtG,CAEA,MAAO,EACX,CACJ,CACJ,CACJ,EACH,C,kCEjKM,OAAMC,EACTt7I,YAAY4mB,CAAI,CAAEngB,CAAK,CAAEC,CAAS,CAAE2zI,CAAa,CAAEc,CAAK,CAAE7kD,CAAI,CAAE,CAC5D,IAAI,CAAC1vE,IAAI,CAAGA,EACZ,IAAI,CAACngB,KAAK,CAAGA,EACb,IAAI,CAACC,SAAS,CAAGA,EACjB,IAAI,CAAC2zI,aAAa,CAAGA,EACrB,IAAI,CAACc,KAAK,CAAGA,EACb,IAAI,CAAC7kD,IAAI,CAAGA,CAChB,CACJ,C,mKCHA,SAASilD,EAAej4I,CAAoB,EACxC,IAAI,CAACA,oBAAoB,CAAGA,CAChC,CAiCA,SAASg4I,EAAc10H,CAAI,CAAEngB,CAAK,CAAEC,CAAS,CAAE2zI,CAAa,CAAEc,CAAK,CAAE7kD,CAAI,EACrE,IAAI,CAAC1vE,IAAI,CAAGA,EACZ,IAAI,CAACngB,KAAK,CAAGA,EACb,IAAI,CAACC,SAAS,CAAGA,EACjB,IAAI,CAAC2zI,aAAa,CAAGA,EACrB,IAAI,CAACc,KAAK,CAAGA,EACb,IAAI,CAAC7kD,IAAI,CAAGA,CAChB,CA7CA12F,EAAAA,CAAUA,CAACC,OAAO,CAAC,iBAAkB07I,GACrCA,EAAez7I,OAAO,CAAG,CAAC,uBAAuB,CAMjDy7I,EAAehgJ,SAAS,CAAC6/I,cAAc,CAAG,WACtC,OAAO,IAAIE,EAAc,QAAS,IAAI,CAACh4I,oBAAoB,CAACS,SAAS,CAAC,oCAAqC,GAAI,KAAM,EAAG,KAC5H,EAEAw3I,EAAehgJ,SAAS,CAAC8oF,UAAU,CAAG,WAClC,MAAO,CACH,IAAIi3D,EAAc,OAAQ,IAAI,CAACh4I,oBAAoB,CAACS,SAAS,CAAC,+BAAgC,GAAI,aAAc,EAAGkuB,EAAAA,CAAQA,EAC3H,IAAIqpH,EAAc,OAAQ,IAAI,CAACh4I,oBAAoB,CAACS,SAAS,CAAC,+BAAgC,GAAI,aAAc,GAAIy3I,EAAAA,CAAQA,EAC5H,IAAIF,EAAc,QAAS,IAAI,CAACh4I,oBAAoB,CAACS,SAAS,CAAC,gCAAiC,GAAI,cAAe,GAAIo5B,EAAAA,CAASA,EAChI,IAAIm+G,EAAc,MAAO,IAAI,CAACh4I,oBAAoB,CAACS,SAAS,CAAC,8BAA+B,GAAI,YAAa,GAAI03I,EAAAA,CAAOA,EACxH,IAAIH,EAAc,SAAU,IAAI,CAACh4I,oBAAoB,CAACS,SAAS,CAAC,iCAAkC,GAAI,eAAgB,GAAI23I,EAAAA,CAAUA,EACpI,IAAIJ,EAAc,UAAW,IAAI,CAACh4I,oBAAoB,CAACS,SAAS,CAAC,kCAAmC,GAAI,gBAAiB,GAAI43I,EAAAA,CAAWA,EACxI,IAAIL,EAAc,YAAa,IAAI,CAACh4I,oBAAoB,CAACS,SAAS,CAAC,iCAAkC,GAAI,kBAAmB,GAAI63I,EAAAA,CAAaA,EAC7I,IAAIN,EAAc,QAAS,IAAI,CAACh4I,oBAAoB,CAACS,SAAS,CAAC,gCAAiC,GAAI,cAAe,GAAI83I,EAAAA,CAASA,EAChI,IAAIP,EAAc,SAAU,IAAI,CAACh4I,oBAAoB,CAACS,SAAS,CAAC,iCAAkC,GAAI,eAAgB,GAAI+3I,EAAAA,CAASA,EACnI,IAAIR,EAAc,MAAO,IAAI,CAACh4I,oBAAoB,CAACS,SAAS,CAAC,8BAA+B,GAAI,YAAa,GAAIg4I,EAAAA,CAAOA,EACxH,IAAIT,EAAc,YAAa,IAAI,CAACh4I,oBAAoB,CAACS,SAAS,CAAC,oCAAqC,GAAI,kBAAmB,GAAIi4I,EAAAA,CAAiBA,EACpJ,IAAIV,EAAc,cAAe,IAAI,CAACh4I,oBAAoB,CAACS,SAAS,CAAC,sCAAuC,GAAI,oBAAqB,GAAIk4I,EAAAA,CAAoBA,EAC7J,IAAI,CAACb,cAAc,GACtB,C,4DCxBLx7I,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,iBAAkB,CACjC,QACA,kBACA,KACA,iBACA,uBACA,SAAU3sB,CAAK,CAAE0J,CAAe,CAAEsC,CAAE,CAAEmmI,CAAc,CAAEv2I,CAAoB,EACtE,MAAO,CACHyuC,oBAAqB,SAAUC,CAAG,CAAE9qB,CAAU,EAC1Cxf,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAMjC,IAAM2tB,EAAchnB,EAAGuI,KAAK,GAKtBhc,EAAU06B,EAJMnyB,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,4BAN7C,CACT1G,SAAU6kC,EACV9qB,WAAYA,CAChB,EAG6F,CACzF0T,QAASF,EAAYz6B,OAAO,GAGRlE,IAAI,CACxB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOA,EAAUzF,MAAM,CAAG,MAAQyF,EAAUp6B,IAAI,GAMxD,OAFAR,EAAQ66B,YAAY,CAAGJ,EAEhBz6B,CACX,EAEA86I,kBAAmB,SAAUv0I,CAAO,CAAE01I,CAAW,CAAEC,CAAU,EACzD,GAAI,CAAC31I,GAAWA,IAAAA,EAAQ5J,MAAM,CAC1B,MAAO,EAAE,CAGb,IAAMw/I,EAAkB51I,EAAQ61I,QAAQ,GAClCrtG,EAAW1rC,EAAqBS,SAAS,CAAC,CAAC,yBAAyB,EAAE,CAACo4I,GAAc,EAAC,EAAG/oI,WAAW,IAAM,GAAG,CAAC,CAAE,CAAE1N,MAAOw2I,CAAY,GAErI1iJ,EAAOqgJ,EAAex1D,UAAU,GAAGxlF,MAAM,CAAC,SAAU6tB,CAAM,EAC5D,OAAO0vH,EAAgBt+I,IAAI,CAAC,SAAU1B,CAAM,EACxC,OAAOA,IAAWswB,EAAO9F,IAAI,EAErC,GASA,OAPAptB,EAAK0E,OAAO,CAAC,SAAUk4B,CAAI,EACvBA,EAAK1vB,SAAS,CAAGpD,EAAqBS,SAAS,CAAC,CAAC,kCAAkC,EAAEqyB,EAAKxP,IAAI,CAACxT,WAAW,GAAG,CAAC,CAAE,CAC5GsJ,KAAMsyB,EACNtpC,MAAOw2I,CACX,EACJ,GAEO1iJ,CACX,EAEA4gJ,kCAAmC,SAAUjtI,CAAQ,EACjD,OAAOzF,EAAMc,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,0CAA2C1G,EAChG,CACJ,CACJ,EACH,C,4LChEDvN,EAAAA,CAAUA,CAACgF,SAAS,CAAC,mBAAoB03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAcC,EAAAA,CAAgBA,CAAE,CAAC,UAAW,YAAa,QAAS,WAAW,G,kCCC7E,OAEnCC,UAAkBn5I,EAAAA,CAAWA,CAC/BrD,aAAc,CACV,KAAK,GACL,IAAI,CAAC2uF,QAAQ,CAAG,WAAI,CAACv4D,IAAI,CAACrT,OAAO,CAAY,IAAI,CAACqT,IAAI,CAACoF,QAAQ,CAACpoB,WAAW,GAAK,IAAI,CAACgjB,IAAI,CAACrT,OAAO,CAAC3P,WAAW,GAC7G,IAAI,CAACmjF,KAAK,CAAG,IAAI,CAACkmD,QAAQ,CAAC,IAAI,CAACrmH,IAAI,EACpC,IAAI,CAACsmH,QAAQ,CAAGA,EAAAA,CACpB,CAEAC,sBAAuB,CACnB,IAAI,CAACC,YAAY,CAAC,IAAI,CAACxmH,IAAI,CAC/B,CACJ,CAEO,IAAMymH,EAAsB,CAC/Bh4I,SAAU,CACNi4I,cAAe,IACfC,SAAU,IACVH,aAAc,IACdxmH,KAAM,IACNqmH,SAAU,GACd,EACAx3I,SC5BW,y+ED6BXC,WAAYs3I,CAChB,CAEAK,CAAAA,EAAoB/8I,OAAO,CAAG,EAAE,CAChCF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,YAAai4I,G,cEMlC,SAASG,EAAsB1kI,CAAM,CAAEo9E,CAAQ,CAAE9zF,CAAQ,CAAEkQ,CAAU,CAAEV,CAAe,CAAE3J,CAAoB,CAAE4oB,CAAsB,CAAE/sB,CAAoB,EACtJ,IAAI,CAACoyF,QAAQ,CAAGA,EAChB,IAAI,CAAC9zF,QAAQ,CAAGA,EAChB,IAAI,CAACkQ,UAAU,CAAGA,EAClB,IAAI,CAACV,eAAe,CAAGA,EACvB,IAAI,CAAC3J,oBAAoB,CAAGA,EAC5B,IAAI,CAAC4oB,sBAAsB,CAAGA,EAC9B,IAAI,CAAC/sB,oBAAoB,CAAGA,EAC5B,IAAI,CAAC25I,YAAY,CAAG3kI,EAAOJ,GAAG,CAAC,wBAAyB,IAAI,CAACglI,qBAAqB,CAACnjJ,IAAI,CAAC,IAAI,GAC5F,IAAI,CAACojJ,kBAAkB,CAAG7kI,EAAOJ,GAAG,CAAC,qBAAsB,IAAI,CAACklI,WAAW,CAACrjJ,IAAI,CAAC,IAAI,GACrF,IAAI,CAACsjJ,qBAAqB,CAAG/kI,EAAOJ,GAAG,CAAC,wBAAyB,IAAI,CAAColI,qBAAqB,CAACvjJ,IAAI,CAAC,IAAI,GACrG,IAAI,CAACwjJ,yBAAyB,CAAGv8G,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAI,CAACw8G,aAAa,CAACzjJ,IAAI,CAAC,IAAI,EAAGue,GAC3E,IAAI,CAACmlI,sBAAsB,CAAG,IAAI,CAACC,UAAU,CAAC3jJ,IAAI,CAAC,IAAI,EACvD,IAAI,CAAC4jJ,uBAAuB,CAAG,IAAI,CAACC,WAAW,CAAC7jJ,IAAI,CAAC,IAAI,EACzD,IAAI,CAAC+7B,OAAO,CAAG,EAAE,CACjB,IAAI,CAAC+nH,eAAe,CAAG,KACvB,IAAI,CAACC,QAAQ,CAAGngH,EAAAA,CAChB,KAAI,CAACogH,OAAO,CAAGA,EAAAA,CACf,KAAI,CAACp3I,WAAW,CAAGC,EAAAA,CACnB,KAAI,CAACo3I,cAAc,CAAG,CAAE,GAAGC,EAAAA,CAAmBA,CAAC13I,KAAK,CAAE23I,mBAAoB,mDAAoD,EAEzH,IAAI,CAACx6H,QAAQ,EACd,KAAI,CAACA,QAAQ,CAAG,EAAE,CAE1B,CAzBAs5H,EAAsBl9I,OAAO,CAAG,CAAC,SAAU,WAAY,WAAY,aAAc,kBAAmB,uBAAwB,yBAA0B,uBAAuB,CA0B7Kk9I,EAAsBzhJ,SAAS,CAACupI,OAAO,CAAG,WACtC,IAAI,CAACtG,UAAU,CAAG,iBAAmB7hF,KAAKmiC,MAAM,GAChD,IAAI,CAACq/D,QAAQ,CAAG,GAChB,IAAI,CAACC,aAAa,CAAG,GACrB,IAAI,CAACC,oBAAoB,CAAG,GAC5B,IAAI,CAACp9G,WAAW,CAAG,IAAI,CAACm4G,QAAQ,CAACnjE,WAAW,CAC5C,IAAI,CAACqoE,oBAAoB,CAAG,IAAI,CAACh7I,oBAAoB,CAACS,SAAS,CAAC,iCAEhE,IAAI,CAACw6I,kBAAkB,CAAG,KAA6Dh/I,IAA7D,IAAI,CAACi/I,cAAc,CAAC1gJ,IAAI,CAAC,GAAU2gJ,WAAAA,EAAKlxI,EAAE,EACpE,IAAI,CAAC+Z,OAAO,CAAG,IAAI,CAACk3H,cAAc,CAACl8I,GAAG,CAAC,CAACm8I,EAAMx/I,IACnC,EACHsO,GAAIkxI,EAAKlxI,EAAE,CACX9G,MAAOg4I,EAAK/3I,SAAS,CACrBg4I,OAAQD,EAAKnoD,IAAI,CACjBn+D,SAAU,IAAM,IAAI,CAACwmH,YAAY,CAACF,GAClCl/E,QAAStgE,IAAAA,CACb,IAGA,IAAI,CAACm6I,QAAQ,EAAI,IAAI,CAACA,QAAQ,CAAChjE,KAAK,CAACx5E,MAAM,CAAG,IAC1C,IAAI,CAACgiJ,aAAa,GAClB,IAAI,CAACC,iBAAiB,CAAC,IAAI,CAACzF,QAAQ,CAAChjE,KAAK,EAE1C,IAAI,CAACkP,QAAQ,CAAC,CACVxpF,MAAO,IAAI,CAAC8iJ,aAAa,CAAChiJ,MAAM,IAIpC,IAAI,CAACu+I,KAAK,EACV,IAAI,CAAC2D,SAAS,CAAC,IAAI,CAAC3D,KAAK,CAAE,IAAI,CAAC/B,QAAQ,CAAChjE,KAAK,EAGlD,IAAI,CAAC2oE,SAAS,CAAC,IAAI,CAAC3F,QAAQ,GAGhC,IAAI,CAAC4F,UAAU,CAAC,IAAI,CAACR,cAAc,CAAC,EAAE,CAC1C,EAEAxB,EAAsBzhJ,SAAS,CAACsjJ,iBAAiB,CAAG,SAAUlmH,CAAK,EAC/D,IAAK,IAAIl5B,EAAI,EAAGA,EAAIk5B,EAAM/7B,MAAM,CAAE6C,IAC9Bk5B,CAAK,CAACl5B,EAAE,CAAC2lI,OAAO,CAAG,IAAI,CAAC6Z,aAAa,CAACtmH,CAAK,CAACl5B,EAAE,CAEtD,EAEAu9I,EAAsBzhJ,SAAS,CAACwjJ,SAAS,CAAG,SAAU3F,CAAQ,EAC1D,IAAM8F,EAAsB,IAAI,CAACC,cAAc,CAAG,EAAI,IAAI,CAACA,cAAc,CAAG/F,EAAShjE,KAAK,CAACx5E,MAAM,CACjG,IAAI,CAAC21B,eAAe,CAAG,IAAI,CAAClC,sBAAsB,CAACmC,qBAAqB,CAAC4mH,EAAShjE,KAAK,CAAE,EAAG8oE,GAE5F,IAAI,CAACE,YAAY,CAAG,GACpB,IAAI,CAACC,aAAa,CAAG,GAErB,IAAI,CAAC9sH,eAAe,CAACkD,UAAU,CAAC2jH,EAAShjE,KAAK,EAE9C,IAAI,CAAC7jD,eAAe,CAACsD,UAAU,GAAG95B,IAAI,CAClC,UAAU+5B,CAAO,EACb,IAAI,CAACA,OAAO,CAAGA,EAEXA,EAAQl5B,MAAM,CAAG,IAAI,CAACuiJ,cAAc,EAAI,QAAI,CAACA,cAAc,EAC3D,IAAI,CAACE,aAAa,CAAG,GACrB,IAAI,CAACD,YAAY,CAAG,KAEpB,IAAI,CAAC7sH,eAAe,CAACwkB,gBAAgB,CAAC,IAAI,CAACuoG,gBAAgB,EAC3D,IAAI,CAACD,aAAa,CAAG,GAE7B,GAAEtlJ,IAAI,CAAC,IAAI,EAEnB,EAEAijJ,EAAsBzhJ,SAAS,CAACyjJ,UAAU,CAAG,SAAUP,CAAI,EACvD,IAAI,CAAC/7D,WAAW,CAAG+7D,CACvB,EAEAzB,EAAsBzhJ,SAAS,CAACojJ,YAAY,CAAG,SAAUF,CAAI,EACzD,IAAI,CAACO,UAAU,CAACP,GAChB5nH,EAAAA,CAAOA,CAACC,UAAU,CAAC,0BAA2B,sBAAuB2nH,EAAKlxI,EAAE,EAC5E,IAAI,CAACuE,UAAU,CAAC+Y,WAAW,EAC/B,EAEAmyH,EAAsBzhJ,SAAS,CAACujJ,SAAS,CAAG,SAAU3D,CAAK,CAAExiH,CAAK,EAC9D,IAAI4mH,EAAsB,IAEK,MAA3B5mH,CAAK,CAAC,EAAE,CAAC6mH,aAAa,EACtBD,CAAAA,EAAsB5mH,EAAM8mH,KAAK,EAAC,EAGxB,WAAVtE,GACAxiH,EAAM+mH,cAAc,GAGpBH,GACA5mH,EAAM4gC,OAAO,CAACgmF,EAEtB,EAEAvC,EAAsBzhJ,SAAS,CAACqiJ,WAAW,CAAG,SAAUxnH,CAAI,EACxD,GAAI,KAAyB,IAAlBA,EAAKqjD,QAAQ,CACpB,OAAOrjD,EAAKqjD,QAAQ,CAGxB,IAAMrxE,EAAS,CACXmF,GAAI6oB,EAAKtoB,EAAE,CACXqiC,EAAG,IAAI,CAACouG,kBAAkB,CAjIV,IADA,IAmIhBnpC,EAAG,IAAI,CAACmpC,kBAAkB,CAAG,EAnIb,IAoIhBoB,eAAgB,CAAC,IAAI,CAACpB,kBAAkB,EAG5C,OAAO,IAAI,CAAC92I,oBAAoB,CAACsB,gBAAgB,CAACX,EACtD,EAEA40I,EAAsBzhJ,SAAS,CAACmiJ,UAAU,CAAG,SAAUtnH,CAAI,EACnD,IAAI,CAACwoH,aAAa,GACb,IAAI,CAACK,aAAa,CAAC7oH,GAGpB,IAAI,CAACwpH,gBAAgB,CAACxpH,GAFtB,IAAI,CAACwoH,aAAa,CAACv9I,IAAI,CAAC+0B,GAK5B,IAAI,CAACkvD,QAAQ,CAAC,CACVxpF,MAAO,IAAI,CAAC8iJ,aAAa,CAAChiJ,MAAM,IAIxC,IAAI,CAACipI,QAAQ,CAAC,CACVzvG,KAAMA,CACV,EACJ,EAEA4mH,EAAsBzhJ,SAAS,CAACskJ,iBAAiB,CAAG,SAAUzpH,CAAI,EACzD,IAAI,CAAC6oH,aAAa,CAAC7oH,IACpB,IAAI,CAACwoH,aAAa,CAACv9I,IAAI,CAAC+0B,EAEhC,EAEA4mH,EAAsBzhJ,SAAS,CAACqkJ,gBAAgB,CAAG,SAAUxpH,CAAI,EAC7D,IAAK,IAAI32B,EAAI,EAAGkmE,EAAM,IAAI,CAACi5E,aAAa,CAAChiJ,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IACtD,GAAI,IAAI,CAACm/I,aAAa,CAACn/I,EAAE,CAACqO,EAAE,GAAKsoB,EAAKtoB,EAAE,CAAE,CACtC,IAAI,CAAC8wI,aAAa,CAACt9I,MAAM,CAAC7B,EAAG,GAC7B,MACJ,CAER,EAEAu9I,EAAsBzhJ,SAAS,CAAC0jJ,aAAa,CAAG,SAAUa,CAAQ,EAC9D,GAAK,IAAI,CAAClB,aAAa,EAIvB,IAAK,IAAIn/I,EAAI,EAAGkmE,EAAM,IAAI,CAACi5E,aAAa,CAAChiJ,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IACtD,GAAI,IAAI,CAACm/I,aAAa,CAACn/I,EAAE,CAACqO,EAAE,GAAKgyI,EAAShyI,EAAE,CACxC,MAAO,GAGf,MAAO,GACX,EAEAkvI,EAAsBzhJ,SAAS,CAACiiJ,aAAa,CAAG,WAC5C,GAAI,QAAI,CAAC8B,gBAAgB,CAAQ,CAC7B,IAAI,CAACS,YAAY,GACjB,MACJ,CAEA,IAAI,CAACV,aAAa,CAAG,GACrB,IAAI,CAAC3sH,yBAAyB,CAAG,IAAI,CAACpvB,oBAAoB,CAACS,SAAS,CAAC,uBAErE,IAAI,CAACwuB,eAAe,CAAC6E,mBAAmB,GAAGr7B,IAAI,CAC3C,UAAU+5B,CAAO,EACb,IAAI,CAACA,OAAO,CAAG,IAAI,CAACA,OAAO,CAACuB,MAAM,CAACvB,GAE/B,IAAI,CAACvD,eAAe,CAAC0kB,OAAO,IAC5B,KAAI,CAACmoG,YAAY,CAAG,EAAI,EAG5B,IAAI,CAACxkH,OAAO,GACZ,IAAI,CAAColH,UAAU,EACnB,GAAEjmJ,IAAI,CAAC,IAAI,EAEnB,EAEAijJ,EAAsBzhJ,SAAS,CAACwkJ,YAAY,CAAG,WAC3C,IAAI,CAACjqH,OAAO,CAAG,IAAI,CAAC+nH,eAAe,CAAG,IAAI,CAACA,eAAe,CAAG,IAAI,CAACzE,QAAQ,CAAChjE,KAAK,CAChF,IAAI,CAACgpE,YAAY,CAAG,GAEpB,IAAI,CAACxkH,OAAO,GACZ,IAAI,CAAColH,UAAU,EACnB,EAEAhD,EAAsBzhJ,SAAS,CAACq/B,OAAO,CAAG,WACtC,IAAI,CAACh5B,QAAQ,CACT,YACI,IAAI,CAACy9I,aAAa,CAAG,GACrB,IAAI,CAAC3sH,yBAAyB,CAAG,GACjC,IAAI,CAACD,oBAAoB,CAAG,IAAI,CAACnvB,oBAAoB,CAACS,SAAS,CAAC,+BAAgC,CAAE2B,MAAO,IAAI,CAACowB,OAAO,CAACl5B,MAAM,EAChI,GAAE7C,IAAI,CAAC,IAAI,EAEnB,EAEAijJ,EAAsBzhJ,SAAS,CAACykJ,UAAU,CAAG,WACzC,IAAI,CAACtqD,QAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,2BAA2B,CAAC,EAAE,CAACu5H,gBAAgB,CAACjkJ,KAAK,EACjG,EAEAghJ,EAAsBzhJ,SAAS,CAACutC,aAAa,CAAG,SAAU1S,CAAI,EAK1D,IAAI,CAACtkB,UAAU,CAACK,UAAU,CAAC,yBAA0B,CACjD9K,QAAS+uB,EAAKtoB,EAAE,CAChB0F,MAAO,aACPyQ,WAPe,CACfi8H,0BAA2B,CAAC,YAAY,CAO5C,EACJ,EAEAlD,EAAsBzhJ,SAAS,CAAC4kJ,WAAW,CAAG,WAC1C,IAAI,CAACC,eAAe,CAAC,IAAI,CAAC5hB,UAAU,CACxC,EAEAwe,EAAsBzhJ,SAAS,CAAC2hJ,qBAAqB,CAAG,SAAUthJ,CAAK,CAAE6E,CAAI,EACzE,GAAIA,GAAQ,CAACA,EAAK89H,UAAU,CAAE,CAC1B,IAAI,CAACsgB,iBAAiB,CAACp+I,EAAK21E,KAAK,EACjC,IAAI,CAAC2oE,SAAS,CAACt+I,GACf,IAAI,CAACq1B,OAAO,CAAGr1B,EAAK21E,KAAK,CAEzB,MACJ,CAEA,GAAI31E,GAAQ,IAAI,CAAC+9H,UAAU,GAAK/9H,EAAK89H,UAAU,EAAI99H,EAAK21E,KAAK,EAAI31E,EAAK21E,KAAK,CAACx5E,MAAM,CAAG,EAAG,CACpF,IAAIyjJ,EAAgB,IAAI,CAAC38H,QAAQ,CAACphB,GAAG,CAAC,SAAUwmB,CAAO,EACnD,OAAOA,EAAQ1V,WAAW,EAC9B,GAEIktI,EAAa7/I,EAAK21E,KAAK,CAU3B,GARIiqE,EAAczjJ,MAAM,CAAG,GACvB0jJ,CAAAA,EAAa7/I,EAAK21E,KAAK,CAACv3E,MAAM,CAAC,SAAUu3B,CAAI,EACzC,IAAImqH,EAAYnqH,EAAKrT,OAAO,CAAC3P,WAAW,GAAG2V,KAAK,CAAC,IAAI,CAAC,EAAE,CAExD,OAAOs3H,EAAchhJ,OAAO,CAACkhJ,GAAa,EAC9C,EAAC,EAGDD,IAAAA,EAAW1jJ,MAAM,EAAU,eAAI,CAACkgJ,aAAa,CAAe,CAC5D,IAAI,CAACY,UAAU,CAAC4C,CAAU,CAAC,EAAE,EAC7B,MACJ,CAEIA,EAAW1jJ,MAAM,CAAG,IACpB,IAAI,CAAC4jJ,UAAU,CAAGF,EAClB,IAAI,CAACG,oBAAoB,CAAC,GAC1B,IAAI,CAACC,kBAAkB,GAE/B,CACJ,EAEA1D,EAAsBzhJ,SAAS,CAACklJ,oBAAoB,CAAG,SAAUxhJ,CAAK,EAClE,IAAI,CAAC2C,QAAQ,CACT,YAC+B,aAAvB,IAAI,CAACk7I,aAAa,GAClB,IAAI,CAAC0D,UAAU,CAACvhJ,EAAM,CAACmmI,OAAO,CAAG,GACjC,IAAI,CAACwZ,aAAa,CAACrlF,OAAO,CAAC,IAAI,CAACinF,UAAU,CAACvhJ,EAAM,GAGrD,IAAI,CAAC62B,OAAO,CAACyjC,OAAO,CAAC,IAAI,CAACinF,UAAU,CAACvhJ,EAAM,EAC3C,IAAI,CAACm6I,QAAQ,CAAChjE,KAAK,CAAC7c,OAAO,CAAC,IAAI,CAACinF,UAAU,CAACvhJ,EAAM,IAI9CA,EAAQ,IAAI,CAACuhJ,UAAU,CAAC5jJ,MAAM,EAC9B,IAAI,CAAC6jJ,oBAAoB,CAACxhJ,GAG9B,IAAI,CAACqmF,QAAQ,CAAC,CACVxpF,MAAO,IAAI,CAAC8iJ,aAAa,CAAChiJ,MAAM,EAExC,GAAE7C,IAAI,CAAC,IAAI,EACX,IAER,EAEAijJ,EAAsBzhJ,SAAS,CAAC+hJ,qBAAqB,CAAG,SAAU1hJ,CAAK,CAAE6E,CAAI,EAGzE,IAAK,IAFDk4B,EAAQ,IAAI,CAACwlH,QAAQ,CAAG,IAAI,CAACroH,OAAO,CAAG,IAAI,CAACsjH,QAAQ,CAAChjE,KAAK,CAErD32E,EAAI,EAAGA,EAAIk5B,EAAM/7B,MAAM,CAAE6C,IAC9Bk5B,CAAK,CAACl5B,EAAE,CAAC2lI,OAAO,CAAG3kI,EAGvB,IAAK,IAAI3B,EAAI,EAAGA,EAAI65B,EAAM/7B,MAAM,CAAEkC,IAAK,CACnC2B,EAAO,IAAI,CAACo/I,iBAAiB,CAAClnH,CAAK,CAAC75B,EAAE,EAAI,IAAI,CAAC8gJ,gBAAgB,CAACjnH,CAAK,CAAC75B,EAAE,EAExE,IAAIg3B,EAAU,IAAI,CAAC8oH,aAAa,CAAChiJ,MAAM,CACvC,IAAI,CAAC0oF,QAAQ,CAAC,CACVxpF,MAAOg6B,CACX,EACJ,CACJ,EAEAknH,EAAsBzhJ,SAAS,CAAC6hJ,WAAW,CAAG,SAAUxhJ,CAAK,CAAE6E,CAAI,EAC/D,IAAI,CAACigJ,kBAAkB,CAACjgJ,EAC5B,EAEAu8I,EAAsBzhJ,SAAS,CAACmlJ,kBAAkB,CAAG,SAAUjgJ,CAAI,EAG/D,GAFA,IAAI,CAAC4+I,aAAa,CAAG,GAEjB,CAAC5+I,EAAM,CACP,IAAI,CAAC09I,QAAQ,CAAG,GAChB,IAAI,CAACN,eAAe,CAAG,IAAI,CAACzE,QAAQ,CAAChjE,KAAK,CAC1C,IAAI,CAACgjE,QAAQ,CAACnjE,WAAW,CAAG,IAAI,CAACh1C,WAAW,CAC5C,IAAI,CAACi8G,qBAAqB,CAAC,UAAW,IAAI,CAAC9D,QAAQ,EACnD,MACJ,CAEA,IAAI,CAAC+E,QAAQ,CAAG,GAEhB,IAAMt/I,EAAS4B,EAAK5B,MAAM,EAAI,IAAI,CAACm/I,cAAc,CAIjD,GAFA,IAAI,CAACH,eAAe,CAAG8C,CAAAA,EAAAA,EAAAA,CAAAA,EAAmBlgJ,EAAKmgJ,UAAU,CAACxtI,WAAW,GAAI,IAAI,CAACgmI,QAAQ,CAAChjE,KAAK,CAAEv3E,EAAOgiJ,QAAQ,EAEzG,IAAI,CAAChD,eAAe,CAACjhJ,MAAM,EAAI,IAAI,CAACuiJ,cAAc,CAClD,IAAI,CAACC,YAAY,CAAG,GACpB,IAAI,CAACtpH,OAAO,CAAG,IAAI,CAAC+nH,eAAe,CACnC,IAAI,CAACwB,aAAa,CAAG,OAClB,CACH,IAAI,CAACD,YAAY,CAAG,GACpB,IAAI0B,EAAkB,CAClB1qE,MAAO,IAAI,CAACynE,eAAe,EAE/B,IAAI,CAACkB,SAAS,CAAC+B,GACf,IAAI,CAAChrH,OAAO,CAAG,IAAI,CAAC+nH,eAAe,CACnC,IAAI,CAACwB,aAAa,CAAG,EACzB,CAEA,IAAI,CAACjG,QAAQ,CAACnjE,WAAW,CAAG,IAAI,CAAC3yE,oBAAoB,CAACS,SAAS,CAAClF,EAAOq/I,kBAAkB,CAAE,CAAEx4I,MAAO,IAAI,CAACm4I,eAAe,CAACjhJ,MAAM,GAC/H,IAAI,CAACg+B,OAAO,EAChB,EAEAh7B,EAAAA,CAAUA,CAACgF,SAAS,CAAC,eA9XmB,CACpCC,SAAU,CACNghI,SAAU,IACVvgD,SAAU,IACV8zD,SAAU,IACVoF,eAAgB,IAChBrD,MAAO,IACPgE,eAAgB,IAChBG,iBAAkB,IAClBxC,cAAe,IACfsD,gBAAiB,KACjBxB,cAAe,KACfl7H,SAAU,KACVq9H,iBAAkB,IACtB,EACA97I,SC/BW,iwHDgCXC,WAAY83I,CAChB,E,kCEjCO,IAAMiB,EAAsB,CAC/BloI,IAAK,CACDtP,MAAO,qBACPu6I,UAAW,gCACXH,SAAU,KACV3C,mBAAoB,wCACxB,EACA33I,MAAO,CACHs6I,SAAU,CAAC,CAAEI,OAAQ,EAAGC,YAAa,GAAU9qH,EAAK/V,KAAK,EAAG,CAC5D2gI,UAAW,kCACXv6I,MAAO,wBACPy3I,mBAAoB,0CACxB,EACAz8G,IAAK,CACDo/G,SAAU,CAAC,CAAEI,OAAQ,EAAGC,YAAa,GAAU9qH,EAAKkd,IAAI,EAAI,EAAE,EAAG,CACjE0tG,UAAW,gCACXv6I,MAAO,sBACPy3I,mBAAoB,wCACxB,CACJ,CAEAD,CAAAA,EAAoBloI,GAAG,CAAC8qI,QAAQ,CAAG,CAAC5C,EAAoB13I,KAAK,CAACs6I,QAAQ,CAAC,EAAE,CAAE5C,EAAoBx8G,GAAG,CAACo/G,QAAQ,CAAC,EAAE,CAAC,E,gBChB/G,SAASM,EAAiBv/I,CAAQ,EAC9B,MAAO,CACHyP,SAAU,IACVC,MAAO,CACHwH,QAAS,IACTsoI,eAAgB,IAChBC,iBAAkB,GACtB,EACAp8I,SAAU,oFACVuhB,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAChC,IAAIqmJ,EAAY,GAChBrmJ,EAAK8wB,QAAQ,CAAC,UAAW,CAACiF,EAAQm6F,KAC9BvpH,EAAS,KACDovB,SAAAA,GACA1f,EAAMiwI,YAAY,CAAGjwI,EAAM8vI,cAAc,CACzCE,EAAY,IACLA,IACPA,EAAY,GACZhwI,EAAMiwI,YAAY,CAAGjwI,EAAM+vI,gBAAgB,CAEnD,EACJ,EACJ,CACJ,CACJ,CA3BAzhJ,E,OAAAA,CAAUA,CAAC0T,SAAS,CAAC,mBAAoB6tI,GACzCA,EAAiBrhJ,OAAO,CAAG,CAAC,WAAW,E,wCCAvCF,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,iBAAkB,CACnC,OACA,KACA,WACA,WACA,mBACA,iBACA,kBACA,SAAUnC,CAAI,CAAEuC,CAAE,CAAE9R,CAAQ,CAAEsuB,CAAQ,CAAEkkH,CAAgB,CAAEoN,CAAc,CAAEpwI,CAAe,EACrF,MAAO,CACHC,SAAU,IACVC,MAAO,GACPrM,SAAU,GACVC,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAOrT,QAAQ,CAAG,GAElBqT,EAAOmpI,aAAa,CAAG,WAQnB,GAPwB,wBAApBvnI,EAAOjV,QAAQ,EAEfrD,EAAS,WACL6kB,QAAQjoB,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,EAAEV,QAAQ,CAAC,UACrF,EAAG,MAGH9L,EAAOo8E,IAAI,GACXh+E,EAAOopI,YAAY,CAAGxnI,EAAOo8E,IAAI,CAGjC10F,EAAS,WACL6kB,QAAQjoB,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,EAAEV,QAAQ,CAAC,UACrF,EAAG,MAGC9L,EAAOynI,MAAM,EAAE,CACfrpI,EAAOspI,aAAa,CAAGn7H,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,kBAC/D,IAAIqiH,EAAcvpI,EAAOiU,MAAM,CAACrS,EAAOynI,MAAM,CAAE,SAAUA,CAAM,EAE7C,IAAVA,IACArpI,EAAOspI,aAAa,CAAC77H,WAAW,CAAC,WAEjCnkB,EAAS,WAEL0W,EAAOspI,aAAa,CAAC77H,WAAW,CAAC,aACjC87H,GACJ,EAAG,KAEX,EACJ,CAGA3nI,EAAOrU,IAAI,EACXyS,CAAAA,EAAOwpI,YAAY,CAAG5nI,EAAOrU,IAAI,CAEzC,EAEAyS,EAAOypI,WAAW,CAAG,SAAU98I,CAAQ,EACnC,GAAIiV,EAAOo8E,IAAI,CACXrxF,EAAW,0DACR,GAAIA,EACP,OAAQA,GACJ,IAAK,WACDA,EAAW,mDACX,KACJ,KAAK,oBACDA,EAAW,6DACX,KACJ,KAAK,sBAML,QALIA,EAAW,iEACX,KACJ,KAAK,uBACDA,EAAW,iEAKnB,MAEAA,EAAW,gDAEfqT,CAAAA,EAAOrT,QAAQ,CAAGkM,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAGhT,EAC7F,EAEAqT,EAAO0pI,eAAe,CAAG,SAAUhqI,CAAW,EAC1C,IAAI/S,EAAWu8I,EAAe74I,GAAG,CAACqP,GAIlC,MAAO/X,CAFOgF,KAAa1F,IAAb0F,EAAyByO,EAAG4K,IAAI,CAACrZ,GAAYmvI,EAAiBp8H,EAAW,EAExEjc,IAAI,CAAC,SAAUqnC,CAAI,EAC9BsyD,EAASryD,KAAK,GACd,IAAIp+B,EAAWwhB,QAAQjoB,OAAO,CAAC4kC,GAE/BsyD,EAAS9xD,MAAM,CAAC3+B,GAChBirB,EAASjrB,GAAUqT,EACvB,EACJ,EAEAA,EAAO2pI,eAAe,CAAG,SAAUC,CAAS,EACxC,IAAIC,EAAkBjoI,EAAO6R,QAAQ,CAAC,WAAY,SAAUjwB,CAAK,EAC7Dwc,EAAOypI,WAAW,CAACjmJ,GACnBwc,EAAOmpI,aAAa,GACpBnpI,EAAO0pI,eAAe,CAAC1pI,EAAOrT,QAAQ,EAClCi9I,GACAC,GAER,EACJ,EAEA7pI,EAAOiqB,IAAI,CAAG,WACNroB,EAAOjV,QAAQ,CACfqT,EAAO2pI,eAAe,CAAC/nI,SAAAA,EAAOgoI,SAAS,GAEvC5pI,EAAOypI,WAAW,CAAC7nI,EAAOjV,QAAQ,EAClCqT,EAAOmpI,aAAa,GACpBnpI,EAAO0pI,eAAe,CAAC1pI,EAAOrT,QAAQ,EAE9C,EAEAqT,EAAOiqB,IAAI,EACf,EACH,CAET,EACH,C,6EC5HD3iC,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,uBAAwB,CACzC,uBACA,SAAUhQ,CAAoB,EAC1B,IAAI8+I,EAAiB,SAAU77I,CAAK,CAAE6L,CAAO,CAAEwU,CAAI,CAAE0vE,CAAI,CAAEyjC,CAAY,EACnE,IAAI,CAAC/mH,UAAU,CAAGzM,EAClB,IAAI,CAAC+L,OAAO,CAAGF,EACf,IAAI,CAACG,MAAM,CAAGqU,EACd,IAAI,CAACuC,IAAI,CAAGmtE,EACZ,IAAI,CAACnjF,aAAa,CAAGmjF,EACrB,IAAI,CAAC7jF,eAAe,CAAGsnH,CAC3B,EAEA,MAAO,CACH90H,SClBG,mnBDmBHqM,MAAO,CACH+wI,SAAU,IACV3mH,WAAY,IACZu3D,KAAM,GACV,EACA/tF,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAOhV,oBAAoB,CAAGA,EAC9B,IAAIg/I,EAAe,CACfC,gBAAiBjqI,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,gEACvDwC,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,qDACjD,EAEIy+I,EAAuB,MAEvBlqI,CAAAA,EAAOojB,UAAU,GACjB4mH,EAAe,CACXC,gBAAiBjqI,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,mEACvDwC,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,wDACjD,EAEAy+I,EAAuB,mBAG3B,IAAIC,EAAgBnqI,EAAO+pI,QAAQ,EAAIG,EACnCpwI,EAAUkG,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,kCAEpDuU,CAAAA,EAAOoqI,SAAS,CAAG,CACf,IAAIN,EAAeE,EAAaC,eAAe,CAAEnwI,EAASkG,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,8CAA+C0+I,EAAe,IAAI/vI,MAClK,IAAI0vI,EAAeE,EAAa/7I,KAAK,CAAE6L,EAASkG,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,8CAA+C0+I,EAAe,IAAI/vI,MAC3J,EAER,CAET,EACH,E,eEnDD,SAASiwI,EAAaC,CAAW,EAO7B,SAASC,EAAiBrkJ,CAAO,CAAEskJ,CAAU,CAAEC,CAAU,CAAEC,CAAQ,EAC/D,IAAI,CAACxkJ,OAAO,CAAGA,EACf,IAAI,CAACskJ,UAAU,CAAGA,GAAc,GAChC,IAAI,CAACC,UAAU,CAAGA,GAAc,GAChC,IAAI,CAACC,QAAQ,CAAGA,GAAY,IAC5B,IAAI,CAACC,SAAS,CAAG,EACjB,IAAI,CAACC,QAAQ,CAAG,GAChB,IAAI,CAACC,WAAW,CAAG,IAAIC,EAAO,EAAG,GACjC,IAAI,CAACC,aAAa,CAAG,IAAID,EAAO,EAAG,GACnC,IAAI,CAACtgC,MAAM,CAAG,CACVrsG,MAAO,KACP6sI,KAAM,KACNjoJ,IAAK,IACT,CACJ,CAkHA,OAxGAwnJ,EAAiBtnJ,SAAS,CAACgoJ,cAAc,CAAG,SAAUC,CAAO,CAAEC,CAAM,CAAEC,CAAK,CAAEC,CAAW,CAAEC,CAAa,EACpGD,EAAcA,KAAgBpkJ,IAAhBokJ,GAAmCA,EAGjD,IAAI,CAAC7gC,MAAM,CAACrsG,KAAK,CAAG,IAAI,CAACotI,mBAAmB,CAAC,IAAI,CAACL,OAAO,CAACzpJ,IAAI,CAAC,IAAI,EAAGypJ,GACtE,IAAI,CAAC1gC,MAAM,CAACznH,GAAG,CAAG,IAAI,CAACwoJ,mBAAmB,CAAC,IAAI,CAACH,KAAK,CAAC3pJ,IAAI,CAAC,IAAI,EAAG2pJ,GAClE,IAAII,EAAc,IAAI,CAACD,mBAAmB,CAAC,IAAI,CAACJ,MAAM,CAAC1pJ,IAAI,CAAC,IAAI,EAAG0pJ,GACnE,GAAIG,EAAe,CACf,IAAIG,EAAY,IAAInB,EAAYoB,cAAc,CAACF,EAAaF,EAC5D,KAAI,CAAC9gC,MAAM,CAACwgC,IAAI,CAAGS,EAAUE,OAAO,GAAGlqJ,IAAI,CAACgqJ,EAChD,MACI,IAAI,CAACjhC,MAAM,CAACwgC,IAAI,CAAGQ,EAYvB,OARA,IAAI,CAACtlJ,OAAO,CAACxB,gBAAgB,CAAC,aAAc,IAAI,CAAC8lH,MAAM,CAACrsG,KAAK,CAAE,MAC/D,IAAI,CAACjY,OAAO,CAACxB,gBAAgB,CAAC,YAAa,IAAI,CAAC8lH,MAAM,CAACwgC,IAAI,CAAE,MAC7D,IAAI,CAAC9kJ,OAAO,CAACxB,gBAAgB,CAAC,WAAY,IAAI,CAAC8lH,MAAM,CAACznH,GAAG,CAAE,MAEvDsoJ,GACAl9H,QAAQjoB,OAAO,CAAC,IAAI,CAACA,OAAO,EAAEu5B,EAAE,CAAC,UAAW,IAAI,CAACmsH,gBAAgB,CAACnqJ,IAAI,CAAC,IAAI,GAGxE,IAAI,CAAC+oH,MAAM,EAItB+/B,EAAiBtnJ,SAAS,CAAC2oJ,gBAAgB,CAAG,WAQ1C,OAPA,IAAI,CAAC1lJ,OAAO,CAACrB,mBAAmB,CAAC,aAAc,IAAI,CAAC2lH,MAAM,CAACrsG,KAAK,CAAE,MAClE,IAAI,CAACjY,OAAO,CAACrB,mBAAmB,CAAC,YAAa,IAAI,CAAC2lH,MAAM,CAACwgC,IAAI,CAAE,MAChE,IAAI,CAAC9kJ,OAAO,CAACrB,mBAAmB,CAAC,WAAY,IAAI,CAAC2lH,MAAM,CAACznH,GAAG,CAAE,MAG9D,IAAI,CAACynH,MAAM,CAACrsG,KAAK,CAAG,IAAI,CAACqsG,MAAM,CAACwgC,IAAI,CAAG,IAAI,CAACxgC,MAAM,CAACznH,GAAG,CAAG,KAElD,IAAI,EAGfwnJ,EAAiBtnJ,SAAS,CAACsoJ,mBAAmB,CAAG,SAAUM,CAAS,CAAEpjJ,CAAQ,EAC1E,OAAO,SAAU4jC,CAAC,EACd,IAAI7oC,EAAQqoJ,EAAUx/G,GAClB5jC,GACAA,EAAS4jC,EAAG7oC,EAEpB,CACJ,EAEA+mJ,EAAiBtnJ,SAAS,CAACioJ,OAAO,CAAG,SAAU7+G,CAAC,EAE5C,IAAIqiB,EAAQriB,EAAEy/G,OAAO,CAAC,EAAE,CAExB,OADA,IAAI,CAACnB,SAAS,CAAGvwI,KAAKq4C,GAAG,GAClB,IAAI,CAACo4F,WAAW,CAACpyI,OAAO,CAACi2C,EAAMq6D,OAAO,CAAEr6D,EAAMq9F,OAAO,CAChE,EAEAxB,EAAiBtnJ,SAAS,CAACkoJ,MAAM,CAAG,SAAU9+G,CAAC,EAC3C,IAAIqiB,EAAQriB,EAAEy/G,OAAO,CAAC,EAAE,CAExB,OADA,IAAI,CAAClB,QAAQ,CAAG,GACT,IAAI,CAACG,aAAa,CAACtyI,OAAO,CAACi2C,EAAMq6D,OAAO,CAAEr6D,EAAMq9F,OAAO,CAClE,EAEAxB,EAAiBtnJ,SAAS,CAACmoJ,KAAK,CAAG,SAAU/+G,CAAC,EAC1C,IAAIqgD,EAAM,IAAIo+D,EAAO,IAAI,CAACD,WAAW,CAAChzG,CAAC,CAAG,IAAI,CAAC2yG,UAAU,CAAE,IAAI,CAACK,WAAW,CAAC/tC,CAAC,CAAG,IAAI,CAAC0tC,UAAU,EAC3F79D,EAAM,IAAIm+D,EAAO,IAAI,CAACD,WAAW,CAAChzG,CAAC,CAAG,IAAI,CAAC4yG,UAAU,CAAE,IAAI,CAACI,WAAW,CAAC/tC,CAAC,CAAG,IAAI,CAAC2tC,UAAU,EAC3Fx3H,EAAS,CACL+4H,OAAQ,GACRC,OAAQ,GACRC,MAAO,GACPC,MAAO,GACPC,KAAM,IAAI,CAACvB,WAAW,CAAChvH,IAAI,GAAGwwH,QAAQ,CAAC,IAAI,CAACtB,aAAa,EACzD5sI,MAAO,IAAI,CAAC0sI,WAAW,CAAChvH,IAAI,GAC5B94B,IAAK,IAAI,CAACgoJ,aAAa,CAAClvH,IAAI,GAC5BywH,UAAWjoG,KAAKkoG,KAAK,CAAC,IAAI,CAACxB,aAAa,CAACjuC,CAAC,CAAG,IAAI,CAAC+tC,WAAW,CAAC/tC,CAAC,CAAE,IAAI,CAACiuC,aAAa,CAAClzG,CAAC,CAAG,IAAI,CAACgzG,WAAW,CAAChzG,CAAC,CAC9G,EAgBJ,OAdI,IAAI,CAAC+yG,QAAQ,EAAIxwI,KAAKq4C,GAAG,GAAK,IAAI,CAACk4F,SAAS,EAAI,IAAI,CAACD,QAAQ,GAC7Dz3H,EAAO+4H,MAAM,CAAG,IAAI,CAACQ,QAAQ,CAAC,IAAI,CAACzB,aAAa,CAAClzG,CAAC,CAAE60C,EAAI70C,CAAC,CAAE80C,EAAI90C,CAAC,EAChE5kB,EAAOg5H,MAAM,CAAG,IAAI,CAACO,QAAQ,CAAC,IAAI,CAACzB,aAAa,CAACjuC,CAAC,CAAEpwB,EAAIowB,CAAC,CAAEnwB,EAAImwB,CAAC,EAE5D7pF,EAAO+4H,MAAM,EACb/4H,CAAAA,EAAOi5H,KAAK,CAAGj5H,EAAOm5H,IAAI,CAACv0G,CAAC,CAAG,EAAI,QAAU,MAAK,EAGlD5kB,EAAOg5H,MAAM,EACbh5H,CAAAA,EAAOk5H,KAAK,CAAGl5H,EAAOm5H,IAAI,CAACtvC,CAAC,CAAG,EAAI,OAAS,IAAG,GAIvD,IAAI,CAACriD,KAAK,GACHxnC,CACX,EAEAs3H,EAAiBtnJ,SAAS,CAACupJ,QAAQ,CAAG,SAAU1qC,CAAO,CAAEp1B,CAAG,CAAEC,CAAG,EAC7D,OAAOm1B,GAAWp1B,GAAOo1B,GAAWn1B,CACxC,EAEA49D,EAAiBtnJ,SAAS,CAACw3D,KAAK,CAAG,WAM/B,OALA,IAAI,CAACkwF,SAAS,CAAG,EACjB,IAAI,CAACC,QAAQ,CAAG,GAChB,IAAI,CAACC,WAAW,CAACpyI,OAAO,CAAC,EAAG,GAC5B,IAAI,CAACsyI,aAAa,CAACtyI,OAAO,CAAC,EAAG,GAEvB,IAAI,EAGR8xI,CACX,CAOA,SAASO,EAAOjzG,CAAC,CAAEilE,CAAC,EAChB,IAAI,CAACjlE,CAAC,CAAGA,EACT,IAAI,CAACilE,CAAC,CAAGA,CACb,C,iBArJAx1G,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,mBAAoBsuH,GACvCA,EAAa7iJ,OAAO,CAAG,CAAC,cAAc,CAsJtCsjJ,EAAO7nJ,SAAS,CAACwV,OAAO,CAAG,SAAUo/B,CAAC,CAAEilE,CAAC,EAIrC,OAHA,IAAI,CAACjlE,CAAC,CAAGA,EACT,IAAI,CAACilE,CAAC,CAAGA,EAEF,IAAI,EAGfguC,EAAO7nJ,SAAS,CAACopJ,QAAQ,CAAG,SAAUx4D,CAAM,EAIxC,OAHA,IAAI,CAACh8C,CAAC,EAAIg8C,EAAOh8C,CAAC,CAClB,IAAI,CAACilE,CAAC,EAAIjpB,EAAOipB,CAAC,CAEX,IAAI,EAGfguC,EAAO7nJ,SAAS,CAAC44B,IAAI,CAAG,WACpB,OAAO,IAAIivH,EAAO,IAAI,CAACjzG,CAAC,CAAE,IAAI,CAACilE,CAAC,CACpC,E,2BC/JAx1G,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,uBAAwB,CACzC,OACA,QACA,kBACA,uBACA,YACA,WACA,mBACA,iBACA,mBACA,SAAUnC,CAAI,CAAEzJ,CAAK,CAAE0J,CAAe,CAAE9N,CAAoB,CAAE8Q,CAAS,CAAExS,CAAQ,CAAEihJ,CAAgB,CAAEkC,CAAc,CAAE/gG,CAAgB,EACjI,IAAIghG,EAAQ,SAAUxoJ,CAAG,CAAEyI,CAAQ,EAC/B,IAAI,CAACzI,GAAG,CAAGA,EACX,IAAI,CAACyI,QAAQ,CAAGkM,EAAKmU,qBAAqB,CAACrgB,EAC/C,EAEIggJ,EAAe,CACfC,aAAc,6CACdC,YAAa,4CAEb7gI,OAAQ,qCACZ,EAEA,MAAO,CACHrf,SCnCG,oODoCHoM,SAAU,IAOVnM,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAE9B5B,EAAOhV,oBAAoB,CAAGA,EAC9BgV,EAAO3R,WAAW,CAAGC,EAAAA,CACrB0R,CAAAA,EAAO8sI,oBAAoB,CAAG,EAAE,CAChC9sI,EAAO+sI,YAAY,CAAG,EACtB/sI,EAAO5b,QAAQ,CAAG,CACd4oJ,MAAO,EAAE,EAEbhtI,EAAOitI,MAAM,CAAG,CACZ,IAAIP,EAAM,UAAW5zI,EAAgB6G,yBAAyB,CAAG,oEACjE,IAAI+sI,EAAM,UAAW5zI,EAAgB6G,yBAAyB,CAAG,gEACpE,CACDK,EAAO6M,QAAQ,CAAG,CACdqgI,aAAc,GACdh/I,QAAS,CACLi/I,WAAY,WACRrxI,EAAUvH,GAAG,CAAC,oBAClB,CACJ,CACJ,EAEAyL,EAAOotI,SAAS,CAAC3pJ,IAAI,CAAC,WACduc,EAAOqtI,eAAe,CAAC/oJ,MAAM,GAC7B0b,EAAOitI,MAAM,CAACjkJ,MAAM,CAAC,EAAG,EAAG,IAAI0jJ,EAAM,YAAa5zI,EAAgB6G,yBAAyB,CAAG,6DAC9FK,EAAO8sI,oBAAoB,CAAG9sI,EAAOstI,iBAAiB,CAACttI,EAAOqtI,eAAe,EAErF,GAIArtI,EAAOs8B,SAAS,CAAG,WAIf,OAHIt8B,EAAO+sI,YAAY,CAAG/sI,EAAOitI,MAAM,CAAC3oJ,MAAM,CAAG,GAC7C0b,EAAOmsB,QAAQ,CAACnsB,EAAO+sI,YAAY,CAAG,GAEnC/sI,EAAO+sI,YAAY,EAG9B/sI,EAAOmsB,QAAQ,CAAG,SAAUxlC,CAAK,EAC7B,IAAI21B,EAAQtc,EAAOitI,MAAM,CAACtmJ,EAAM,CAC5B4mJ,EAAYvtI,EAAO+sI,YAAY,CAOnC,OANIzwH,IACAtc,EAAO+sI,YAAY,CAAGpmJ,EACtBqZ,EAAOwtI,UAAU,CAACxtI,EAAO+sI,YAAY,CAAEQ,GACvCvtI,EAAOytI,WAAW,CAACztI,EAAO+sI,YAAY,CAAEQ,IAGrCvtI,EAAO+sI,YAAY,EAG9B/sI,EAAOstI,iBAAiB,CAAG,SAAUD,CAAe,EAGhD,IAAK,IAFDtM,EAAY,EAAE,CAET55I,EAAI,EAAGC,EAAIimJ,EAAgB/oJ,MAAM,CAAE6C,EAAIC,EAAGD,IAC/C6Y,EAAO0tI,0BAA0B,CAACL,CAAe,CAAClmJ,EAAE,CAAE45I,GAG1D,OAAOA,CACX,EAEA/gI,EAAO0tI,0BAA0B,CAAG,SAAU5vH,CAAI,CAAEN,CAAO,EACvDA,EAAUA,GAAW,EAAE,CAEvB,IAAK,IAAIr2B,EAAI,EAAGC,EAAI02B,EAAK6vH,eAAe,CAACrpJ,MAAM,CAAE6C,EAAIC,EAAGD,IACpDq2B,EAAQz0B,IAAI,CAAC,CACTZ,KAAM21B,EAAK6vH,eAAe,CAACxmJ,EAAE,CAC7Bmf,OAAQwX,EAAK8vH,UAAU,GAI/B,OAAOpwH,CACX,EAEAxd,EAAOwtI,UAAU,CAAG,SAAU7mJ,CAAK,CAAEknJ,CAAS,EAC1C,IAAIC,EAAU9tI,EAAO5b,QAAQ,CAAC4oJ,KAAK,CAACrmJ,EAAM,CAG1ConJ,EAFsB3pJ,QAAQ,CAAC4oJ,KAAK,CAACa,EAAU,CAEtCpgI,WAAW,CAACk/H,EAAa3gI,MAAM,EACxC8hI,EAAQpgI,QAAQ,CAACi/H,EAAa3gI,MAAM,CACxC,EAEAhM,EAAOytI,WAAW,CAAG,SAAU9mJ,CAAK,CAAEknJ,CAAS,EAC3C,IAAIC,EAAU9tI,EAAO5b,QAAQ,CAAC4oJ,KAAK,CAACrmJ,EAAM,CACtCqnJ,EAAarnJ,EAAQknJ,EAAYlB,EAAaC,YAAY,CAAGD,EAAaE,WAAW,CAEzFiB,EAAQpgI,QAAQ,CAACsgI,GACjBvB,EAAewB,mBAAmB,CAC9BH,CAAO,CAAC,EAAE,CACV,WACIxkJ,EAAS,WACLwkJ,EAAQrgI,WAAW,CAACugI,EACxB,EAAG,GACP,EACA,GAER,EAEAhuI,EAAOkuI,iBAAiB,CAAG,WACvBluI,EAAO5b,QAAQ,CAAC4oJ,KAAK,CAAG7mJ,MAAMlD,SAAS,CAACmD,KAAK,CAAC9E,IAAI,CAAC87F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,gCACtF,IAAK,IAAIjnB,EAAI,EAAGC,EAAI4Y,EAAO5b,QAAQ,CAAC4oJ,KAAK,CAAC1oJ,MAAM,CAAE6C,EAAIC,EAAGD,IACrD6Y,EAAO5b,QAAQ,CAAC4oJ,KAAK,CAAC7lJ,EAAE,CAAGgnB,QAAQjoB,OAAO,CAAC8Z,EAAO5b,QAAQ,CAAC4oJ,KAAK,CAAC7lJ,EAAE,EAGvE,OAAO6Y,EAAO5b,QAAQ,CAAC4oJ,KAAK,EAGhChtI,EAAOmuI,UAAU,CAAG,SAAU9hH,CAAC,CAAE+hH,CAAY,EACrCA,EAAapC,MAAM,EAAI,CAACoC,EAAanC,MAAM,GACvCmC,UAAAA,EAAalC,KAAK,CAClBlsI,EAAOs8B,SAAS,GAEhBt8B,EAAOmsB,QAAQ,CAACnsB,EAAO+sI,YAAY,CAAG,GAGlD,EAEA/sI,EAAOquI,SAAS,CAAG,WACfruI,EAAOkuI,iBAAiB,GACxBluI,EAAO5b,QAAQ,CAAC4oJ,KAAK,CAAChtI,EAAO+sI,YAAY,CAAC,CAACr/H,QAAQ,CAACi/H,EAAa3gI,MAAM,CAC3E,CACJ,EACH,CAEDkC,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EAC7B23B,EAAiBgD,KAAK,EAEtB4/F,IADuB/D,EAAiBrkJ,CAAO,CAAC,EAAE,EACrC+kJ,cAAc,CAAC,KAAM,KAAMjyI,EAAMm1I,UAAU,CAAE,GAElE,CACJ,CACJ,EACH,E,+FElKD7mJ,EAAAA,CAAUA,CAACC,OAAO,CAAC,uBAAwB,CACvC,aACA,QACA,KACA,OACA,WACA,kBACA,QACA,uBACA,oBACA,iBACA,eACA,uBACA,iBACA,SAAUiS,CAAU,CAAEpK,CAAK,CAAEgM,CAAE,CAAEvC,CAAI,CAAEvP,CAAQ,CAAEwP,CAAe,CAAEiD,CAAK,CAAE/Q,CAAoB,CAAE6sB,CAAiB,CAAE68B,CAAc,CAAErlD,CAAY,CAAEF,CAAoB,CAAE+M,CAAc,EAChL,IAAIqyI,EAAuB,CAAC,EACxBC,EAA0B,CAAC,WAAY,WAAY,mBAAoB,kBAAkB,CACzFljE,EAAgB,CAAC,kBAAmB,kBAAkB,CAY1D,SAASmjE,EAAY1/I,CAAO,CAAE4pD,CAAG,CAAEv0C,CAAI,CAAE45E,CAAI,CAAE7mC,CAAY,CAAEu3F,CAAc,CAAEt3F,CAAwB,EACjG,IAAI,CAACu3F,aAAa,CAAG,CACjB5/I,QAASA,EACT4pD,IAAKA,EACLi2F,gBAAiBxqI,EACjByqI,UAAW7wD,CACf,EACA,IAAI,CAAC7mC,YAAY,CAAGA,EACpB,IAAI,CAACu3F,cAAc,CAAGA,EACtB,IAAI,CAACt3F,wBAAwB,CAAGA,CACpC,CAEA,SAAS03F,EAAmBn6G,CAAI,CAAE+E,CAAG,EACjC,IAAI,CAAC/E,IAAI,CAAGA,GAAQ,CAAC,EACrB,IAAI,CAAC+E,GAAG,CAAGA,GAAO,EAAE,CACpB,IAAI,CAACq1G,eAAe,CAAG,CAAC,CAC5B,CAEA,IAAMC,EAAwB,GACnB,IACsB,MAArB3mJ,EAAUy0B,MAAM,EAIpBr0B,GACJ,EAm4BJ,OA/3BA8lJ,EAAqBz8E,WAAW,CAAG,CAC/BC,MAAO,KACP9wB,OAAQ,KACR2X,aAAc,KACd5C,2BAA4B,KAC5BqC,QAAS,IACb,EASAk2F,EAAqBU,WAAW,CAAG,SAAUv1G,CAAG,CAAEw1G,CAAa,EAC3D,IAAIC,EAAaz1G,EAAIhyC,WAAW,GAAKvB,MACjC08D,EAAY,CACZluB,KAAM,CAAC,EACP+E,IAAK,EAAE,EAGPy1G,GACAz1G,CAAAA,EAAM,CAACA,EAAI,EAGf,IAAK,IAAIzkC,EAAe9N,EAAI,EAAGkmE,EAAM3zB,EAAIp1C,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IACtD8N,EAAKykC,CAAG,CAACvyC,EAAE,CACC,IAAI,CAACioJ,mBAAmB,CAACn6I,KAGjC4tD,EAAUluB,IAAI,CAAC1/B,EAAG,CAAG,IAAI,CAACm6I,mBAAmB,CAACn6I,GAC9C4tD,EAAUnpB,GAAG,CAAC3wC,IAAI,CAACkM,IAY3B,MAPA4tD,CAAAA,EAAYA,EAAUnpB,GAAG,CAACp1C,MAAM,CAAG,EAAIu+D,EAAY,IAAG,GAGrCqsF,CAAkB,IAAlBA,GACbrsF,CAAAA,EAAYA,EAAUluB,IAAI,CAACkuB,EAAUnpB,GAAG,CAAC,EAAE,CAAC,EAGzCmpB,CACX,EAMA0rF,EAAqBa,mBAAmB,CAAG,SAAUvlE,CAAO,EACxD,OAAO,IAAI,CAAC/X,WAAW,CAAC9b,0BAA0B,CAAC6zB,EACvD,EAEA0kE,EAAqBc,mBAAmB,CAAG,SAAUhvH,CAAK,EACtD,GAAIA,GAASA,EAAM/7B,MAAM,CAAG,EACxB,IAAK,IAAI6C,EAAI,EAAGkmE,EAAMhtC,EAAM/7B,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IACzC,IAAI,CAAC2qE,WAAW,CAACzZ,OAAO,CAACh4B,CAAK,CAACl5B,EAAE,CAG7C,EAEAonJ,EAAqBe,eAAe,CAAG,SAAUz6I,CAAQ,EACrD,OAAOzF,EAAMc,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,kCAAmC1G,GAAUpR,IAAI,CAAC,SAAU0M,CAAQ,EACjH,OAAOA,EAAShI,IAAI,EAE5B,EAEAomJ,EAAqBnwF,cAAc,CAAG,SAAUtgC,CAAI,EAChD,OAAO0wH,EAAwBznJ,OAAO,CAAC+2B,EAAKvY,QAAQ,EAAIuY,EAAKoF,QAAQ,EAAI,IAAQpF,CAAAA,EAAKrY,QAAQ,EAAIqY,EAAKrY,QAAQ,CAACnhB,MAAM,CAAG,GAAOw5B,EAAK9T,KAAK,EAAI8T,EAAK9T,KAAK,CAAC1lB,MAAM,CAAG,EACtK,EAEAiqJ,EAAqBgB,YAAY,CAAG,SAAUxgJ,CAAO,CAAEqvD,CAAc,EAEjE,IAAIzF,EAAM,IAAI,CAACs2F,WAAW,CAAClgJ,EAAS,IAChC2U,EAAWtI,EAAGuI,KAAK,GAEvB,GAAIg1C,EACAj1C,EAAS3b,OAAO,CAAC,CAAE4wD,IAAKA,EAAK5pD,QAASA,CAAQ,QAE9C,GAAIqvD,EAAgB,CAEhB,IAAIoxF,EAAiB,CAAEzgJ,QAASA,EAAS2nD,mBAAoB,OAAQznD,aAAcI,EAAaJ,YAAY,EAC5GE,EAAqB2F,0BAA0B,CAAC06I,GAAgB/rJ,IAAI,CAAC,SAAU0M,CAAQ,EAC/EA,YAAAA,EAAShI,IAAI,CAACyuD,WAAW,CACzBlzC,EAAS3b,OAAO,CAAC,CAAE4wD,IAAKxoD,EAAShI,IAAI,CAACupC,KAAK,CAAE3iC,QAASA,CAAQ,GAE9D2U,EAAS1b,MAAM,EAEvB,EACJ,MACI0b,EAAS3b,OAAO,CAAC,CAAEgH,QAASA,CAAQ,GAI5C,OAAO2U,EAAS/b,OAAO,EAG3B4mJ,EAAqBkB,YAAY,CAAG,SAAUrrI,CAAI,EAC9C,IACIsrI,EAAiB,iBACjBC,EAAY,YACZC,EAAmB,CAHL,cAGkB,CAChC5lJ,EAAM,CACF6lJ,SAAUD,EACVE,aAAcF,EACdxiH,SAAU,CAACsiH,EAAgBC,EAAU,CACrCI,gBAAiB,CAACJ,EAAU,CAC5BK,iBAAkB,CAACN,EAAe,CAClCzoF,QAAS2oF,CACb,EAEJ,OAAO5lJ,CAAG,CAACoa,EAAK,EAAIpa,EAAI,OAAU,EAGtCukJ,EAAqB0B,gBAAgB,CAAG,SAAUnyH,CAAI,CAAEh0B,CAAI,EAExD,IAAK,IADDtG,EAAQ,KACH2D,EAAI,EAAGC,EAAI0C,EAAKxF,MAAM,CAAE6C,EAAIC,IACjC5D,CAAAA,EAAQs6B,CAAI,CAACh0B,CAAI,CAAC3C,EAAE,CAAC,EADeA,KAOxC,OAAO3D,CACX,EAEA+qJ,EAAqB2B,eAAe,CAAG,SAAU58I,CAAQ,CAAE+sB,CAAK,MAAE8vH,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAc,IAAIj/E,IAChF,GAAI,CAAC/qE,MAAMmsB,OAAO,CAAC+N,IAAUA,IAAAA,EAAM/7B,MAAM,CACrC,OAAO6rJ,EAGX,IAAK,IAAMryH,KAAQuC,EACX,IAAI,CAAC+9B,cAAc,CAACtgC,GACpB,IAAI,CAACoyH,eAAe,CAACpyH,EAAKvY,QAAQ,CAAEuY,EAAKrY,QAAQ,CAAE0qI,GAEnDA,EAAYtnJ,GAAG,CAAC,IAAI,CAAConJ,gBAAgB,CAACnyH,EAAM,IAAI,CAAC2xH,YAAY,CAACn8I,KAItE,OAAO68I,CACX,EAEA5B,EAAqB6B,YAAY,CAAG,SAAUz3F,CAAG,CAAE+E,CAAY,CAAE2yF,CAAY,CAAEC,CAAgB,EAC3F,IAAIC,EAAYC,EAAcC,SAI9B,EAFI77G,QAAQ,CAAG+jB,KAAiB1xD,IAAjB0xD,EAAI/jB,QAAQ,EAAyB+jB,EAAI/jB,QAAQ,GAE5D+jB,KAAO+E,IAEP6yF,EAAa,CAAC,IAAI,CAACG,gBAAgB,CAAC/3F,IAAQA,CAAgB,GAAhBA,EAAI/jB,QAAQ,EAAa,IAAI,CAAC+7G,aAAa,CAACjzF,EAAc/E,EAAK03F,GAC3GG,EAAe,IAAI,CAACE,gBAAgB,CAAC/3F,IAAQ,IAAI,CAACi4F,UAAU,CAACj4F,GAC7D83F,EAAc,IAAI,CAACI,eAAe,CAACl4F,EAAK23F,GAEjCC,GAAcC,GAAgBC,EAI7C,EAEAlC,EAAqBuC,sBAAsB,CAAG,SAAUC,CAAe,CAAEV,CAAY,CAAEC,CAAgB,EACnG,OAAO,IAAI,CAAChB,eAAe,CAACyB,EAAgBr3G,GAAG,EAAEj2C,IAAI,CACjD,UAAUi6D,CAAY,EAClB,IAEIszF,EAFAC,EAAe,IAAInC,EAGvB,GAAI,CAACpxF,EACD,OAAO,KAGX,IAAK,IAAIv2D,EAAI,EAAGkmE,EAAM3P,EAAap5D,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IAEhD6pJ,EAAetzF,CAAY,CAACv2D,EAAE,CAC1B,IAAI,CAACipJ,YAAY,CAACW,EAAgBp8G,IAAI,CAACq8G,EAAax9G,GAAG,CAAC,CAAEw9G,EAAcX,EAAcC,KACtFW,EAAat8G,IAAI,CAACq8G,EAAax9G,GAAG,CAAC,CAAGu9G,EAAgBp8G,IAAI,CAACq8G,EAAax9G,GAAG,CAAC,CAC5Ey9G,EAAav3G,GAAG,CAAC3wC,IAAI,CAACioJ,EAAax9G,GAAG,EACtCy9G,EAAalC,eAAe,CAACiC,EAAax9G,GAAG,CAAC,CAAGw9G,EAAav9G,KAAK,SAI3E,EAAiBiG,GAAG,CAACp1C,MAAM,CAAG,GAC1B4X,EAAeE,IAAI,CAAC,UAAW,CAAC,MAAM,EAAE60I,EAAav3G,GAAG,CAACp1C,MAAM,CAAC,+BAA+B,CAAC,EACzF2sJ,GAGJ,IACX,GAAExvJ,IAAI,CAAC,IAAI,EAEnB,EAEA8sJ,EAAqB2C,eAAe,CAAG,SAAUr8I,CAAQ,EACrD,OAAOgjB,EAAkBjjB,sBAAsB,CAACC,GAAUpR,IAAI,CAAC,SAAU0tJ,CAAY,EAIjF,IAAK,IAHDC,EAAmB,EAAE,CACrBC,EAAc,KAETlqJ,EAAI,EAAGC,EAAI+pJ,EAAa7sJ,MAAM,CAAE6C,EAAIC,EAAGD,IAElB,SAAtBkqJ,CADJA,EAAcF,CAAY,CAAChqJ,EAAE,EACbssC,KAAK,EACjB29G,EAAiBroJ,IAAI,CAACsoJ,EAAY79G,GAAG,EAG7C,OAAO49G,CACX,EACJ,EAQA7C,EAAqB+C,qBAAqB,CAAG,SAAUC,CAAO,CAAExiJ,CAAO,EACnE,IAAIyiJ,EAAe,EAAE,CAOrB,OALID,GACAC,CAAAA,EAAerrJ,MAAM4rD,IAAI,CAAC,IAAI,CAACm+F,eAAe,CAACqB,EAAQruH,QAAQ,EAAIquH,EAAQhsI,QAAQ,CAAEgsI,EAAQ9rI,QAAQ,EAAI8rI,EAAQvnI,KAAK,EAAC,EAE3HwnI,EAAavwF,OAAO,CAAClyD,GAEd,IAAI,CAACkgJ,WAAW,CAACuC,EAC5B,EAUAjD,EAAqBkD,sBAAsB,CAAG,SAAU1iJ,CAAO,CAAEqvD,CAAc,CAAEiyF,CAAY,CAAEC,CAAgB,EAC3G,OAAO,IAAI,CAACoB,oBAAoB,CAAC3iJ,EAASqvD,GAAgB36D,IAAI,CAC1D,UAAU0E,CAAI,EACV,GAAI,CAACA,GAAQA,OAAAA,EAAK8iH,KAAK,CACnB,OAAO,KAGX,GAAI9iH,EAAKopJ,OAAO,CAACruH,QAAQ,GAAKxlB,EAAAA,CAAeA,CAACC,KAAK,CAACC,iBAAiB,EAAIzV,EAAKopJ,OAAO,CAACruH,QAAQ,GAAKxlB,EAAAA,CAAeA,CAACC,KAAK,CAACE,QAAQ,CAAE,CAC/H,IAAMlX,EAAQwB,EAAK8iH,KAAK,CAACvxE,GAAG,CAAC3yC,OAAO,CAACgI,EACvB,MAAVpI,GACAwB,EAAK8iH,KAAK,CAACvxE,GAAG,CAAC1wC,MAAM,CAACrC,EAAO,EAErC,QAEA,IAAIwB,EAAK8iH,KAAK,CAACvxE,GAAG,CAACp1C,MAAM,CACd,KAGJ,IAAI,CAACqtJ,wBAAwB,CAACxpJ,GAAM1E,IAAI,CAC3C,UAAU0zD,CAAY,EAClB,OAAO,IAAI,CAAC25F,sBAAsB,CAAC3oJ,EAAK8iH,KAAK,CAAEolC,EAAcC,GAAkB7sJ,IAAI,CAC/E,UAAUirJ,CAAc,EACpB,GAAI,CAAC,CAACv3F,GAAgB,CAACA,EAAay6F,SAAS,GAAK,CAAClD,EAC/C,OAAO,KAEP,IAAImD,EAAkB,KAClBz6F,EAA2B,GAO/B,OALID,IACA06F,EAAkB16F,EAAay6F,SAAS,CACxCx6F,EAA2BD,EAAaC,wBAAwB,EAG7D,IAAI,CAAC06F,iBAAiB,CAAC/iJ,EAAS5G,EAAKopJ,OAAO,CAAEM,EAAiBnD,EAAgBt3F,EAE9F,GAAE31D,IAAI,CAAC,IAAI,EAEnB,GAAEA,IAAI,CAAC,IAAI,EAEnB,GAAEA,IAAI,CAAC,IAAI,EAEnB,EAQA8sJ,EAAqBmD,oBAAoB,CAAG,SAAU3iJ,CAAO,CAAEqvD,CAAc,EACzE,OAAO,IAAI,CAACmxF,YAAY,CAACxgJ,EAASqvD,GAAgB36D,IAAI,CAClD,UAAU0E,CAAI,EAEV,GAAIA,GAAQA,EAAKwwD,GAAG,EAAI,IAAI,CAACo5F,YAAY,CAAC5pJ,EAAKwwD,GAAG,EAC9C,OAAO,KAGX,IAAIphB,EAAY,IAAI,CAAC+5G,qBAAqB,CAACnpJ,EAAKwwD,GAAG,CAAExwD,EAAK4G,OAAO,EACjE,MAAO,CACHwiJ,QAASppJ,EAAKwwD,GAAG,CACjBsyD,MAAO1zE,CACX,CACJ,GAAE91C,IAAI,CAAC,IAAI,EAEnB,EAEA8sJ,EAAqByD,iBAAiB,CAAG,SAAUC,CAAM,EACrD,IAAIhjF,EAAM,EAAE,CAEZ,IAAK,IAAI/qE,KAAO+tJ,EACZ,GAAI,EAAQ5/H,cAAc,CAACnuB,IAAS+tJ,CAAM,CAAC/tJ,EAAI,EAG/C,IAAI09C,EAAMqwG,CAAM,CAAC/tJ,EAAI,CAEjBg0C,MAAM0J,EAAIn4B,QAAQ,GAClBm4B,CAAAA,EAAIn4B,QAAQ,CAAG,EAAC,EAGpBwlD,EAAIlmE,IAAI,CAAC64C,GAGb,OAAOqtB,CACX,EAEAs/E,EAAqBuD,iBAAiB,CAAG,SAAU/iJ,CAAO,CAAE4pD,CAAG,CAAExB,CAAY,CAAEu3F,CAAc,CAAEt3F,CAAwB,EACnH,OAAO,IAAIq3F,EAAY1/I,EAAS4pD,EAAK,IAAI,CAACu5F,kBAAkB,CAACv5F,GAAM,IAAI,CAACw5F,YAAY,CAACx5F,GAAMxB,EAAcu3F,EAAgBt3F,EAC7H,EAEAm3F,EAAqB6D,sCAAsC,CAAG,SAAUC,CAAmB,CAAEC,CAAkB,EAC3GA,EAAmB54G,GAAG,CAAC8oG,WAAW,CAAC6P,EAAoB34G,GAAG,EAC1D24G,EAAoB34G,GAAG,CAAC9zC,OAAO,CAAC,SAAUqP,CAAE,EACpCq9I,EAAmB39G,IAAI,CAAC1/B,EAAG,GAC3B,OAAOq9I,EAAmB39G,IAAI,CAAC1/B,EAAG,CAAC,OAC5Bq9I,EAAmBvD,eAAe,CAAC95I,EAAG,CAErD,EACJ,EAEAs5I,EAAqBgE,qBAAqB,CAAG,SAAU5D,CAAa,CAAED,CAAc,EAChF,IAAM/5G,EAAO,IAAI,CAACq9G,iBAAiB,CAACtD,EAAe/5G,IAAI,EACjDvwB,EAAOuqI,GAAiBA,EAAch2F,GAAG,CAAGg2F,EAAch2F,GAAG,CAACz1B,QAAQ,EAAIyrH,EAAcppI,QAAQ,CAAG,GAEzG,OADArJ,EAAenZ,GAAG,CAAC,mBAAoB,CAAC,sBAAsB,EAAEqhB,EAAK,eAAe,EAAEuwB,EAAK3qC,GAAG,CAAC,GAAS2uD,EAAIz1B,QAAQ,EAAEyoD,IAAI,CAAC,KAAK,CAAC,EAC1Hv8E,EACFc,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,mBAAoB,CACrDgiD,YAAaoxF,EAAc5/I,OAAO,CAClCyuD,KAAM7oB,CACV,GACClxC,IAAI,CAAC,SAAU0M,CAAQ,EACpB,OAAOA,EAAShI,IAAI,EAAIgI,EAAShI,IAAI,CAACqqJ,OAAO,CAAGriJ,EAAShI,IAAI,CAAGiT,EAAGpT,MAAM,CAACmI,EAC9E,EACR,EAEAo+I,EAAqBkE,+BAA+B,CAAG,SAAU9D,CAAa,CAAED,CAAc,EAC1FxyI,EAAenZ,GAAG,CAAC,mBAAoB,CAAC,SAAS,EAAE4rJ,GAAiBA,EAAch2F,GAAG,CAAGg2F,EAAch2F,GAAG,CAACz1B,QAAQ,EAAIyrH,EAAcppI,QAAQ,CAAG,GAAG,CAAC,EAEnJ,IAAMm0B,EAAMg1G,EAAeh1G,GAAG,CAC1Bg5G,EAAgB,KAEpB,GAAIvsJ,MAAMmsB,OAAO,CAACq8H,EAAch2F,GAAG,CAAC3uC,KAAK,EAAG,CAExC,IAAMs3C,EAA+BC,CAAAA,EAAAA,EAAAA,CAAAA,IAErCmxF,EAAgB,IAAI9tI,EAAAA,CAAeA,CAAC+pI,EAAch2F,GAAG,CAAC3uC,KAAK,EACtDzjB,MAAM,CAACi7D,EAAAA,CAAwBA,CAAEF,EAJV,GAAO5nB,EAAIp0B,QAAQ,CAACm8C,CAAAA,EAAAA,EAAAA,CAAAA,EAAqB/7C,KAKhE1b,GAAG,CAAC,GAAQ,EAAEwL,GAAIisD,CAAAA,EAAAA,EAAAA,CAAAA,EAAqB/7C,GAAIqC,MAAOrC,EAAEsC,SAAS,GACtE,MACI0qI,EAAgBh5G,EAAI1vC,GAAG,CAAC,IACpB,IAAM2oJ,EAAajE,EAAe/5G,IAAI,CAAC1/B,EAAG,CAC1C,MAAO,CACHO,GAAIP,EACJ8S,MAAO4qI,KAAe1rJ,IAAf0rJ,EAA2BA,EAAW5qI,KAAK,CAAG,IACzD,CACJ,GAGJ,OAAO3Y,EAAMc,IAAI,CAAC,CAAC,EAAE4I,EAAgByC,YAAY,CAAC,6CAA6C,EAAEozI,EAAc5/I,OAAO,CAAC,CAAC,CAAE2jJ,GAAejvJ,IAAI,CAAC,SAAU0M,CAAQ,EAC5J,OAAOA,EAAShI,IAAI,EAAIgI,EAAShI,IAAI,CAACyqJ,YAAY,CAACtuJ,MAAM,CAAG,EAAI6L,EAAShI,IAAI,CAAGiT,EAAGpT,MAAM,CAACmI,EAC9F,EACJ,EAEAo+I,EAAqBsE,gCAAgC,CAAG,SAAUnE,CAAc,EAE5E,IAAK,IADDz5I,EAAK,GACA9N,EAAI,EAAGC,EAAIsnJ,EAAeh1G,GAAG,CAACp1C,MAAM,CAAE6C,EAAIC,EAAGD,IAAK,CACvD8N,EAAKy5I,EAAeh1G,GAAG,CAACvyC,EAAE,CAC1B,IAAIkrC,EAAU,IAAI,CAACy/B,WAAW,CAAC7wB,MAAM,CAAChsC,GAClCo9B,GAGAA,CAAAA,EAAQlqC,IAAI,CAACshB,QAAQ,CAAGilI,EAAeK,eAAe,CAAC95I,EAAG,CAAG,EAErE,CACJ,EAEAs5I,EAAqBoD,wBAAwB,CAAG,SAAUxpJ,CAAI,EAC1D,OAAO,IAAI,CAAC+oJ,eAAe,CAAC/oJ,EAAK8iH,KAAK,CAACvxE,GAAG,EAAEj2C,IAAI,CAC5C,UAAUqvJ,CAAc,EACpB,GAAIA,IAAAA,EAAexuJ,MAAM,CACrB,OAAO,KAGX,IAAI8yD,EAA2B07F,IAAAA,EAAexuJ,MAAM,EAAU6D,qBAAAA,EAAK8iH,KAAK,CAACt2E,IAAI,CAACm+G,CAAc,CAAC,EAAE,CAAC,CAAC5vH,QAAQ,CACrG6vH,EAAwBD,EAAe9oJ,GAAG,CAAC,SAAUgpJ,CAAa,EAClE,OAAO7qJ,EAAK8iH,KAAK,CAACt2E,IAAI,CAACq+G,EAAc,GAOzC,OAJID,EAAsBzuJ,MAAM,CAAG,GAC/B4X,EAAeE,IAAI,CAAC,UAAW,CAAC,MAAM,EAAE22I,EAAsBzuJ,MAAM,CAAC,yBAAyB,CAAC,EAG5F,CACH8yD,yBAA0BA,EAC1Bw6F,UAHY,IAAI9C,EAAmBiE,EAAuBD,EAI9D,CACJ,GAAErxJ,IAAI,CAAC,IAAI,EAEnB,EAEA8sJ,EAAqB0E,iBAAiB,CAAG,SAAUhgI,CAAM,CAAEigI,CAAQ,SAC/D,EAAWh8F,WAAW,CAACC,YAAY,EAAI,CAAClkC,EAAOikC,WAAW,CAACw3F,cAAc,CAC9D,IAAI,CAACyE,+BAA+B,CAAClgI,EAAOikC,WAAW,CAACy3F,aAAa,CAACE,SAAS,CAAEqE,GAAUzvJ,IAAI,CAAC,WACnG,OAAOwvB,CACX,GAEO7X,EAAG4K,IAAI,CAACiN,EAEvB,EAEAs7H,EAAqB6E,wBAAwB,CAAG,SAAUjrJ,CAAI,EAC1D,GAAKA,EAAK+uD,WAAW,CAACw3F,cAAc,CAMpC,OAFA,IAAI,CAAC2E,4BAA4B,CAAClrJ,EAAK+uD,WAAW,EAE3C,IAAI,CAACU,UAAU,CAAC,GAAOzvD,aAAAA,EAAK+uD,WAAW,CAACy3F,aAAa,CAACC,eAAe,CAAiBzmJ,EAAK+uD,WAAW,CAACy3F,aAAa,CAACE,SAAS,CACzI,EAEAN,EAAqB+E,wBAAwB,CAAG,SAAUnrJ,CAAI,EACrDA,GAIL,IAAI,CAACkrJ,4BAA4B,CAAClrJ,EAAK+uD,WAAW,CACtD,EAEAq3F,EAAqBgF,kCAAkC,CAAG,SAAUprJ,CAAI,EACpE,GAAKA,EAAK+uD,WAAW,CAACw3F,cAAc,EAIpC,IAAIx3F,EAAc/uD,EAAK+uD,WAAW,CAC9Bs8F,EAAkB,YAClB,IAAI,CAACX,gCAAgC,CAAC37F,EAAYw3F,cAAc,CACpE,GAAEjtJ,IAAI,CAAC,IAAI,EACX,OAAO,IAAI,CAACm2D,UAAU,CAAC,GAAMV,aAAAA,EAAYy3F,aAAa,CAACC,eAAe,CAAiB13F,EAAYy3F,aAAa,CAACE,SAAS,CAAE,KAAM,KAAM2E,GAC5I,EAEAjF,EAAqBkF,kCAAkC,CAAG,SAAUtrJ,CAAI,EAC/DA,GAGL,IAAI,CAACmrJ,wBAAwB,CAACnrJ,EAClC,EAOAomJ,EAAqBmF,aAAa,CAAG,SAAUx8F,CAAW,CAAEy8F,CAAuB,EAC/E,IAAIr2I,EAAW,EAAE,CACbs2I,EAAe,KACfC,EAAiB,KAyBrB,OAvBiC,OAA7B38F,EAAYC,YAAY,EAAaD,IAAAA,EAAYC,YAAY,CAACzd,GAAG,CAACp1C,MAAM,GACrC,OAA/B4yD,EAAYw3F,cAAc,EAE1B,IAAI,CAAC0D,sCAAsC,CAACl7F,EAAYC,YAAY,CAAED,EAAYw3F,cAAc,EAGpGpxI,EAASvU,IAAI,CACT,IAAI,CAACwpJ,qBAAqB,CAACr7F,EAAYy3F,aAAa,CAAEz3F,EAAYC,YAAY,EAAE1zD,IAAI,CAChF,UAAUwvB,CAAM,EACZ2gI,EAAe3gI,CACnB,GAAExxB,IAAI,CAAC,IAAI,KAKY,OAA/By1D,EAAYw3F,cAAc,EAAax3F,IAAAA,EAAYw3F,cAAc,CAACh1G,GAAG,CAACp1C,MAAM,EAC5EgZ,EAASvU,IAAI,CACT4qJ,EAAwBz8F,EAAYy3F,aAAa,CAAEz3F,EAAYw3F,cAAc,EAAEjrJ,IAAI,CAAC,SAAUwvB,CAAM,EAChG4gI,EAAiB5gI,CACrB,IAID7X,EAAGqC,GAAG,CAACH,GAAU7Z,IAAI,CACxB,YACI,MAAO,CACHyzD,YAAaA,EACb48F,eAAgBF,EAChBG,iBAAkBF,CACtB,CACJ,GAAEpyJ,IAAI,CAAC,IAAI,EAEnB,EAEA8sJ,EAAqBpwF,QAAQ,CAAG,SAAUpvD,CAAO,CAAEqvD,CAAc,CAAEiyF,CAAY,CAAEC,CAAgB,EAE7F,IAAI0D,EAAY,IAAI,CAACliF,WAAW,CAAC7wB,MAAM,CAAClyC,UACxC,GAAiBilJ,EAAU7rJ,IAAI,EACvB,IAAI,CAAC4pJ,YAAY,CAACiC,EAAU7rJ,IAAI,EACzBiT,EAAG4K,IAAI,GAIf,IAAI,CAACyrI,sBAAsB,CAAC1iJ,EAASqvD,EAAgBiyF,EAAcC,GAAkB7sJ,IAAI,CAC5F,UAAUyzD,CAAW,EACjB,GAAI,CAACA,EACD,OAAO,KAGX,GAAIA,EAAYE,wBAAwB,CAEpC,OADA,IAAI,CAACC,kCAAkC,CAAC,CAACH,EAAYy3F,aAAa,CAAC5/I,OAAO,CAAC,EACpE,KAGX,IAAIyP,EAAY,IAAI,CAAC80I,wBAAwB,CAAC7xJ,IAAI,CAAC,IAAI,EACvD,OAAO,IAAI,CAACiyJ,aAAa,CAACx8F,EAAa,IAAI,CAACq7F,qBAAqB,CAAC9wJ,IAAI,CAAC,IAAI,GAAGgC,IAAI,CAC9E,UAAUwvB,CAAM,EAEZ,OADA,IAAI,CAACogI,4BAA4B,CAACpgI,EAAOikC,WAAW,EAC7C,IAAI,CAAC+7F,iBAAiB,CAAChgI,EAAQ,IAAOxvB,IAAI,CAAC,IAAI,CAAC2vJ,wBAAwB,CAAC3xJ,IAAI,CAAC,IAAI,CAAEwxB,GAC/F,GAAExxB,IAAI,CAAC,IAAI,EACX+c,EAER,GAAE/c,IAAI,CAAC,IAAI,EAEnB,EAEA8sJ,EAAqB13F,eAAe,CAAG,SAAU9nD,CAAO,EACpD,IAAIilJ,EAAY,IAAI,CAACliF,WAAW,CAAC7wB,MAAM,CAAClyC,UAExC,GAAiBilJ,EAAU7rJ,IAAI,CAE3B,IAAQ,CAAC4pJ,YAAY,CAACiC,EAAU7rJ,IAAI,EACzBiT,EAAG4K,IAAI,GAGX,IAAI,CAACyrI,sBAAsB,CAAC1iJ,EAAS,IAAI,CAACqvD,cAAc,CAAC41F,EAAU7rJ,IAAI,EAAG,GAAM,IAAO1E,IAAI,CAC9F,UAAUyzD,CAAW,EACjB,GAAI,CAACA,EACD,OAAO,KAGX,GAAIA,EAAYE,wBAAwB,CAEpC,OADA,IAAI,CAACC,kCAAkC,CAAC,CAACH,EAAYy3F,aAAa,CAAC5/I,OAAO,CAAC,EACpEqM,EAAGpT,MAAM,CAAC,CACbovD,yBAA0BF,EAAYE,wBAAwB,GAItE,IAAI54C,EAAY,IAAI,CAACi1I,kCAAkC,CAAChyJ,IAAI,CAAC,IAAI,EACjE,OAAO,IAAI,CAACiyJ,aAAa,CAACx8F,EAAa,IAAI,CAACu7F,+BAA+B,CAAChxJ,IAAI,CAAC,IAAI,GAAGgC,IAAI,CACxF,UAAUwvB,CAAM,EAEZ,OADA,IAAI,CAACo8H,mBAAmB,CAACp8H,OAAAA,EAAOikC,WAAW,CAACC,YAAY,EAAahxD,MAAMmsB,OAAO,CAACW,EAAOikC,WAAW,CAACC,YAAY,CAACzd,GAAG,EAAIzmB,EAAOikC,WAAW,CAACC,YAAY,CAACzd,GAAG,CAAG,MACzJ,IAAI,CAACu5G,iBAAiB,CAAChgI,EAAQ,IACjCxvB,IAAI,CAAC,IAAI,CAAC8vJ,kCAAkC,CAAC9xJ,IAAI,CAAC,IAAI,CAAEwxB,IACxDxvB,IAAI,CAAC,WACF,OAAOwvB,CACX,EACR,GAAExxB,IAAI,CAAC,IAAI,EACX+c,EAER,GAAE/c,IAAI,CAAC,IAAI,GAGR2Z,EAAG4K,IAAI,EAEtB,EAEAuoI,EAAqBwD,YAAY,CAAG,SAAUp5F,CAAG,EAC7C,IAAIo5F,EAAe,GACnB,GAAIp5F,GAAOA,EAAIplB,YAAY,EAAIolB,EAAIplB,YAAY,CAACjvC,MAAM,CAClD,IAAK,IAAI6C,EAAI,EAAGA,EAAIwxD,EAAIplB,YAAY,CAACjvC,MAAM,CAAE6C,IAAK,CAC9C,IAAIitB,EAASukC,EAAIplB,YAAY,CAACpsC,EAAE,CAC5BitB,GAAUA,EAAOof,GAAG,EAAIpf,yBAAAA,EAAOof,GAAG,EAClCu+G,CAAAA,EAAe,EAAG,CAE1B,CAEJ,OAAOA,CACX,EAEAxD,EAAqB0F,aAAa,CAAG,SAAUnqJ,CAAI,EAK/C,IAAK,IAHD5F,EACAwtH,EAFAwiC,EAAe,CAAEx6G,IAAK,CAAEy6G,UAAW,EAAE,CAAEC,SAAU,EAAE,EAAIz/G,KAAM,CAAC,CAAE,EAI3DxtC,EAAI,EAAGkmE,EAAMvjE,EAAKxF,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IACxCjD,EAAM4F,CAAI,CAAC3C,EAAE,CACbuqH,CAAAA,EAAc,IAAI,CAAC09B,mBAAmB,CAAClrJ,EAAG,IAGlC,IAAI,CAACk6D,cAAc,CAACszD,GACpBwiC,EAAax6G,GAAG,CAACy6G,SAAS,CAACprJ,IAAI,CAAC7E,GAEhCgwJ,EAAax6G,GAAG,CAAC06G,QAAQ,CAACrrJ,IAAI,CAAC7E,GAGnCgwJ,EAAav/G,IAAI,CAACzwC,EAAI,CAAGwtH,GAIjC,OAAOwiC,CACX,EAEA3F,EAAqB8E,4BAA4B,CAAG,SAAUlrJ,CAAI,EACzDA,IAIL,IAAI,CAACknJ,mBAAmB,CAAClnJ,EAAKumJ,cAAc,EAAIvmJ,EAAKumJ,cAAc,CAACh1G,GAAG,CAAGvxC,EAAKumJ,cAAc,CAACh1G,GAAG,CAAG,MACpG,IAAI,CAAC21G,mBAAmB,CAAClnJ,EAAKgvD,YAAY,EAAIhvD,EAAKgvD,YAAY,CAACzd,GAAG,CAAGvxC,EAAKgvD,YAAY,CAACzd,GAAG,CAAG,MAClG,EAEA60G,EAAqBl3F,kCAAkC,CAAG,SAAU3d,CAAG,EACnE,IAAIrH,EAAU,KAEd,IAAI,CAACg9G,mBAAmB,CAAC31G,GACzB,IAAK,IAAIvyC,EAAI,EAAGC,EAAIsyC,EAAIp1C,MAAM,CAAE6C,EAAIC,EAAGD,IACnCkrC,CAAAA,EAAU,IAAI,CAACy/B,WAAW,CAAC7wB,MAAM,CAACvH,CAAG,CAACvyC,EAAE,KAGpCkrC,EAAQuC,QAAQ,CAAG,GACnBvC,EAAQlqC,IAAI,CAACysC,QAAQ,CAAG,GAGpC,EAEA25G,EAAqB8F,gBAAgB,CAAG,SAAU36G,CAAG,CAAE/E,CAAI,CAAE6iB,CAAoB,EAC7E,IAAIviD,EACAtN,EACA2V,EAAW,EAAE,CACbg3I,EAA2B,EAAE,CAEjC,GAAI56G,CAAAA,IAAOA,CAAAA,EAAIp1C,MAAM,CAAG,GA8CpB,OAAO8W,EAAG4K,IAAI,CAAC,MA7Cf,IAAK,IAAI7e,EAAI,EAAGkmE,EAAM3zB,EAAIp1C,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IACvC8N,EAAKykC,CAAG,CAACvyC,EAAE,CAEXQ,EAAU,IAAI,CAAC8pJ,sBAAsB,CAACx8I,EAAI,IAAI,CAACmpD,cAAc,CAACzpB,CAAI,CAAC1/B,EAAG,EAAG,GAAO,IAAOxR,IAAI,CACvF,UAAU8wJ,CAAQ,EACd,GAAI,CAACA,EACD,OAAO,KAGX,GAAIA,EAASn9F,wBAAwB,CAEjC,OADA,IAAI,CAACC,kCAAkC,CAAC,CAACk9F,EAAS5F,aAAa,CAAC5/I,OAAO,CAAC,EACjE,KAGX,IAAMyP,EAAYwwI,EAAsB,IAAI,CAACqE,4BAA4B,CAAC5xJ,IAAI,CAAC,IAAI,CAAE8yJ,IAErF,OAAO,IAAI,CAACb,aAAa,CAACa,EAAU,IAAI,CAAChC,qBAAqB,CAAC9wJ,IAAI,CAAC,IAAI,GAAGgC,IAAI,CAC3E,UAAUwvB,CAAM,SACZ,EAAYikC,WAAW,CAACC,YAAY,EAAKlkC,EAAOikC,WAAW,CAACw3F,cAAc,EAItEz7H,EAAO6gI,cAAc,EACrBQ,EAAyBvrJ,IAAI,CAACkqB,EAAO6gI,cAAc,EAGnD7gI,EAAO8gI,gBAAgB,EACvBO,EAAyBvrJ,IAAI,CAACkqB,EAAO8gI,gBAAgB,EAEzD,IAAI,CAACV,4BAA4B,CAACpgI,EAAOikC,WAAW,EACpDM,EAAqBzvD,OAAO,CAACkrB,EAAOikC,WAAW,EAExCjkC,EAAOikC,WAAW,EAbd,IAac,GAC3Bz1D,IAAI,CAAC,IAAI,EACX+c,EAER,GAAE/c,IAAI,CAAC,IAAI,GAGf6b,EAASvU,IAAI,CAACpB,GAElB,OAAOyT,EAAGqC,GAAG,CAACH,GAAU7Z,IAAI,CAAC,SAAU0E,CAAI,EACvC,MAAO,CAAE8uD,SAAU9uD,EAAMklJ,gBAAiBiH,CAAyB,CACvE,EAIR,EAEA/F,EAAqB7vI,sBAAsB,CAAG,SAAU3P,CAAO,EAC3D,OAAO,IAAI,CAAC+iE,WAAW,CAAClZ,YAAY,CAAC7pD,GAAWqM,EAAGpT,MAAM,GAAK,IAAI,CAACwsJ,aAAa,CAACzlJ,EACrF,EAEAw/I,EAAqBiG,aAAa,CAAG,SAAUzlJ,CAAO,EAClD,IAAIsjC,EAAU,IAAI,CAACy/B,WAAW,CAAC7wB,MAAM,CAAClyC,UAGtC,GAAiBsjC,EAAQlqC,IAAI,CAKtB,IAAI,CAACupJ,oBAAoB,CAAC3iJ,EAAS,IAAI,CAACqvD,cAAc,CAAC/rB,EAAQlqC,IAAI,GAAG1E,IAAI,CAC7E,UAAU0E,CAAI,EACV,GAAIA,OAAAA,EAAK8iH,KAAK,CACV,OAAO7vG,EAAGpT,MAAM,GAGpB,IAAMkvD,EAAc,IAAI,CAAC46F,iBAAiB,CAAC/iJ,EAAS5G,EAAKopJ,OAAO,CAAE,KAAMppJ,EAAK8iH,KAAK,EAC5EvxE,EAAM,CAACwd,EAAYy3F,aAAa,CAAC5/I,OAAO,CAAC,CAAC0lJ,cAAc,CAACv9F,EAAYw3F,cAAc,CAACh1G,GAAG,EACvFl7B,EAAYwwI,EAAsB,IAAI,CAAC33F,kCAAkC,CAAC51D,IAAI,CAAC,IAAI,CAAEi4C,IAG3F,OAAO,IAAI,CAAC64G,qBAAqB,CAACr7F,EAAYy3F,aAAa,CAAEz3F,EAAYw3F,cAAc,EAAEjrJ,IAAI,CACzF,UAAU0M,CAAQ,EACVA,0CAAAA,EAAS0wC,OAAO,CAChBrnC,EAAWK,UAAU,CAAC,iBAEtB,IAAI,CAACw9C,kCAAkC,CAAC3d,EAEhD,GAAEj4C,IAAI,CAAC,IAAI,EACX+c,EAER,GAAE/c,IAAI,CAAC,IAAI,GAzBJ2Z,EAAGpT,MAAM,EA2BxB,EAEAumJ,EAAqB52F,kBAAkB,CAAG,SAAU+8F,CAAmB,CAAEl9F,CAAoB,EACzF,IAAIm9F,EAAgB,GAChBT,EAAe,IAAI,CAACD,aAAa,CAACS,GAClC51I,EAAmB,SAAUtb,CAAK,EAC9B,MAAO,CAAC,CAACA,CACb,EAEJ,OAAO,IAAI,CAAC6wJ,gBAAgB,CAACH,EAAax6G,GAAG,CAACy6G,SAAS,CAAED,EAAav/G,IAAI,CAAE6iB,GAAsB/zD,IAAI,CAClG,UAAU0E,CAAI,EACV+T,EAAeE,IAAI,CAAC,UAAW,oCAC/B,IAAIw4I,EAAiBzsJ,GAAQ,CAAE8uD,SAAU,EAAE,CAAEo2F,gBAAiB,EAAE,EAEhE,GAAIllJ,GAAQA,EAAK8uD,QAAQ,CAAC3yD,MAAM,CAC5B,KAAK,IAAI6C,EAAI,EAAGkmE,EAAMllE,EAAK7D,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IAExC,GAAIgB,MAAAA,CAAI,CAAChB,EAAE,CAAU,CACjBwtJ,EAAgB,GAChB,KACJ,CACJ,CAKJ,OADAT,EAAe,IAAI,CAACD,aAAa,CAACS,GAC3B,IAAI,CAACL,gBAAgB,CAACH,EAAax6G,GAAG,CAAC06G,QAAQ,CAAEF,EAAav/G,IAAI,CAAE6iB,GAAsB/zD,IAAI,CAAC,SAAU0E,CAAI,EAehH,OAdA+T,EAAeE,IAAI,CAAC,UAAW,kCAC3BjU,IACAysJ,EAAe39F,QAAQ,CAAG29F,EAAe39F,QAAQ,CAACl4B,MAAM,CAAC52B,EAAK8uD,QAAQ,EACtE29F,EAAevH,eAAe,CAAGuH,EAAevH,eAAe,CAACtuH,MAAM,CAAC52B,EAAKklJ,eAAe,GAG3F,CAACsH,GAAiBxsJ,OAAAA,GAAiBA,EAAK8uD,QAAQ,CAAChV,IAAI,CAACnjC,IACtD61I,CAAAA,EAAgB,EAAG,EAGD,KAAlBA,GACAn9F,EAAqBxvD,MAAM,GAGxB4sJ,CACX,EACJ,GAAEnzJ,IAAI,CAAC,IAAI,EAEnB,EAEA8sJ,EAAqBoC,aAAa,CAAG,SAAUjzF,CAAY,CAAEm3F,CAAQ,CAAExE,CAAY,EAC/E,IAAIyE,EAAsB,CAACp3F,CAAY,CAAC,EAAE,EAAIA,CAAW,EAAG,KAAQ,CACpE,OAAO2yF,EAAe,CAAEwE,CAAAA,EAASprI,QAAQ,CAAGqrI,CAAkB,EAAKA,GAAuBD,EAASprI,QAAQ,EAG/G8kI,EAAqB4D,YAAY,CAAG,SAAUr0H,CAAI,EAC9C,MAAO,CAACA,EAAKvU,QAAQ,EAAIuU,EAAKrT,OAAO,EAAIqT,EAAK89C,eAAe,EAAI99C,EAAKoF,QAAQ,EAAI,EAAC,EAAGpoB,WAAW,EACrG,EAEAyzI,EAAqB2D,kBAAkB,CAAG,SAAUp0H,CAAI,EACpD,OAAOwtD,EAAcvkF,OAAO,CAAC+2B,EAAKoF,QAAQ,EAAI,GAAK,WAAa,OACpE,EAEAqrH,EAAqBmC,gBAAgB,CAAG,SAAU5yH,CAAI,EAClD,OAAOA,KAAkB72B,IAAlB62B,EAAKrU,QAAQ,EAAkBqU,OAAAA,EAAKrU,QAAQ,EAAayuB,MAAMpa,EAAKrU,QAAQ,CACvF,EAEA8kI,EAAqBsC,eAAe,CAAG,SAAU/yH,CAAI,CAAEwyH,CAAgB,EACnE,IACIlpE,EACA2tE,EAFAC,EAAWl3H,EAAK8nC,QAAQ,EAAI9nC,EAAK2oC,QAAQ,CAI7C,GAAI6pF,GAAoB0E,EACpB,KAAK,IAAI7tJ,EAAI,EAAGkmE,EAAM2nF,EAAS1wJ,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IAG5C,GAFAigF,EAAU4tE,CAAQ,CAAC7tJ,EAAE,CAER,CAET4tJ,EAAiB3tE,CADjBA,EAAUA,EAAQxhB,QAAQ,EAAIwhB,CAAM,EACX9iF,MAAM,CAAG,EAAKywJ,EAAiB3tE,CAAO,CAAC,EAAE,CAAIA,EACtE,IAAIn0D,EAAS,IAAI,CAACgiI,iBAAiB,CAACF,GACpC,GAAI9hI,EACA,OAAOA,CAEf,CACJ,CAGJ,MAAO,EACX,EAEAs7H,EAAqB0G,iBAAiB,CAAG,SAAU/uJ,CAAO,EACtD,IAAIq6E,EAAcr6E,EAAQqgE,WAAW,EAAIrgE,EAAQukE,WAAW,EAAI,GAEhE,MAAO8V,CADPA,EAAc,SAASt8E,IAAI,CAACs8E,EAAW,GACjBr6E,KAA2B,IAA3BA,EAAQ+9E,SAAS,EAG3CsqE,EAAqBqC,UAAU,CAAG,SAAUiE,CAAQ,EAChD,OAAO,IAAIz6I,KAAKy6I,EAAS/jI,YAAY,EAAI,IAAI1W,KAAKy6I,EAASzmF,OAAO,CACtE,EAEAmgF,EAAqB32F,UAAU,CAAG,SAAUs7F,CAAQ,CAAE9vH,CAAU,CAAEhf,CAAI,CAAEszC,CAAe,CAAEw9F,CAAY,CAAE9zJ,CAAO,EAC1G,IAAI+zJ,EAAcr8I,EAAgB6G,yBAAyB,CAAG,uBAG1DZ,EAAavF,EAAWwF,IAAI,CAAC,IAyBjC,OAxBAD,EAAW4gH,IAAI,CAAGv8F,EAAa,8CAAgD,2CAC/ErkB,EAAWq2I,UAAU,CAAGlC,EAAWloJ,EAAqBS,SAAS,CAACsT,EAAW4gH,IAAI,CAAG,oBAAsB30H,EAAqBS,SAAS,CAACsT,EAAW4gH,IAAI,CAAG,oBAC3J5gH,EAAWwvB,OAAO,CAAGvjC,EAAqBS,SAAS,CAAC,oDACpDsT,EAAWs2I,GAAG,CAAGx8I,EAAKmU,qBAAqB,CAACmoI,EAAe/xH,CAAAA,EAAa,yBAA2B,qBAAoB,GACvHrkB,EAAW47E,IAAI,CAAG3vF,EAAqBS,SAAS,CAAC,iCACjDsT,EAAWgrI,QAAQ,CAAG3lI,EAAOA,EAAKtJ,WAAW,GAAK,KAClDiE,EAAWsuI,eAAe,CAAG6H,EAC7Bn2I,EAAWu2I,eAAe,CAAG,GAEzB59F,GACA34C,EAAWw2I,gBAAgB,CAAGvqJ,EAAqBS,SAAS,CAAC,6DAC7DsT,EAAWq2I,UAAU,CAAGpqJ,EAAqBS,SAAS,CAAC,sDACvDsT,EAAW4gH,IAAI,CAAG30H,EAAqBS,SAAS,CAAC,0CACjDisD,EAAgBj0D,IAAI,CAAC,SAAU0E,CAAI,EAC/B4W,EAAWsuI,eAAe,CAAGllJ,EAAOA,EAAKklJ,eAAe,CAAG,KAC3DtuI,EAAWquI,SAAS,CAAG9jJ,EAAS,WAC5ByV,EAAWu2I,eAAe,CAAG,GAC7Bv2I,EAAWy2I,gBAAgB,CAAG,EAClC,EAAG,IACP,IAEAz2I,EAAWy2I,gBAAgB,CAAG,GAG3B,IAAI,CAACC,mBAAmB,CAAC12I,EAAYm0I,EAAU9xJ,EAC1D,EAEAmtJ,EAAqB4E,+BAA+B,CAAG,SAAU/uI,CAAI,CAAE8uI,CAAQ,EAE3E,IAAIn0I,EAAavF,EAAWwF,IAAI,CAAC,IAWjC,OAVAD,EAAW/T,oBAAoB,CAAGA,EAClC+T,EAAWq2I,UAAU,CAAGpqJ,EAAqBS,SAAS,CAAC,uCACvDsT,EAAWwvB,OAAO,CAAGvjC,EAAqBS,SAAS,CAAC,oDACpDsT,EAAWs2I,GAAG,CAAGx8I,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,2CACxFZ,EAAW47E,IAAI,CAAG3vF,EAAqBS,SAAS,CAAC,iCACjDsT,EAAWgrI,QAAQ,CAAG3lI,EAAOA,EAAKtJ,WAAW,GAAK,KAClDiE,EAAWsuI,eAAe,CAAG,KAC7BtuI,EAAWu2I,eAAe,CAAG,GAC7Bv2I,EAAWy2I,gBAAgB,CAAG,GAEvB,IAAI,CAACC,mBAAmB,CAAC12I,EAAYm0I,EAChD,EAEA3E,EAAqBkH,mBAAmB,CAAG,SAAU12I,CAAU,CAAEm0I,CAAQ,CAAE9xJ,CAAO,EAC9EszD,EAAeqC,WAAW,CAACC,IAAI,GAC/B,IAAItzC,EAAWtI,EAAGuI,KAAK,GAqBvB,OAnBA5E,EAAW3d,OAAO,CAAG,WACjBsiB,EAAS3b,OAAO,GACZ3G,GACAA,IAGA8xJ,GACAx+F,EAAeqC,WAAW,CAACmU,IAAI,GAGnCnsD,EAAWO,QAAQ,EACvB,EAEAvD,EAAMwD,QAAQ,CAAC,CACXvG,MAAO+F,EACPU,aAAc,GACdC,YAAa5G,EAAgB6G,yBAAyB,CAAG,uDAC7D,GAEO+D,EAAS/b,OAAO,EAGpB4mJ,CACX,EACH,C,2CC18B0E,OAErEmH,EACFhuJ,YAAYkU,CAAO,CAAE,CACjB,IAAI,CAAC+5I,QAAQ,CAAG/5I,EAEhB,IAAI,CAACg6I,YAAY,CAAG,IAAIxhH,GAC5B,CAOAgsB,MAAMl8D,CAAG,CAAEiE,CAAI,CAAE0tJ,CAAoB,CAAE,CACnC,IAAI,CAACD,YAAY,CAAC1iG,GAAG,CAAChvD,EAAKiE,GAC3B,IAAM2tJ,EAAgBpgG,EAAAA,CAAqBA,CAACC,GAAG,CAACogG,OAAO,CAACjgG,KAAKi1E,SAAS,CAAC5iI,GAAO0tJ,GAC9E,GAAI,CACA,IAAI,CAACF,QAAQ,CAACK,YAAY,CAAC33I,OAAO,CAACna,EAAK4xJ,EAC5C,CAAE,MAAOr0H,EAAO,CACZC,QAAQD,KAAK,CAACA,EAAMmV,OAAO,CAC/B,CACJ,CAMAwf,IAAIlyD,CAAG,CAAE,CACL,OAAO,IAAI,CAAC0xJ,YAAY,CAACx/F,GAAG,CAAClyD,IAAQ,IAAI,CAACyxJ,QAAQ,CAACK,YAAY,CAAC3jI,cAAc,CAACnuB,EACnF,CAKA4F,MAAO,CAEH,OAAO3D,MAAM4rD,IAAI,CADJ,IAAImf,IAAI,IAAIxmE,OAAOZ,IAAI,CAAC,IAAI,CAAC6rJ,QAAQ,CAACK,YAAY,KAAM,IAAI,CAACJ,YAAY,CAAC9rJ,IAAI,GAAG,EAElG,CAEAioE,OAAQ,CACJ,IAAI,CAAC6jF,YAAY,CAAC7jF,KAAK,GACvB,IAAI,CAAC4jF,QAAQ,CAACK,YAAY,CAACjkF,KAAK,EACpC,CAOA7b,SAAShyD,CAAG,CAAE2xJ,CAAoB,CAAE,CAChC,IAAM1tJ,EAAO,IAAI,CAACytJ,YAAY,CAACvlJ,GAAG,CAACnM,GACnC,GAAIiE,KAASlB,IAATkB,EACA,OAAO,IAAI,CAAC8tJ,yBAAyB,CAAC9tJ,GAG1C,IAAM2tJ,EAAgB,IAAI,CAACH,QAAQ,CAACK,YAAY,CAACv5I,OAAO,CAACvY,GAEzD,GAAI4xJ,OAAAA,EACA,GAAI,CAEA,IAAMI,EAAejjI,EADNyiC,CAAqBA,CAACC,GAAG,CAACH,OAAO,CAACsgG,EAAeD,GACpCljI,QAAQ,CAAC+iC,EAAAA,CAAqBA,CAACE,GAAG,CAACC,IAAI,EACnE,OAAOC,KAAKC,KAAK,CAACmgG,EACtB,CAAE,MAAOz0H,EAAO,CAIhB,CAGJ,OAAO,IACX,CAKAn3B,OAAOpG,CAAG,CAAE,CACR,IAAI,CAAC0xJ,YAAY,CAAC9jJ,MAAM,CAAC5N,GACzB,IAAI,CAACyxJ,QAAQ,CAACK,YAAY,CAACn2I,UAAU,CAAC3b,EAC1C,CAOA+xJ,0BAA0B9tJ,CAAI,CAAE,CAG5B,OAAO2tD,KAAKC,KAAK,CAACD,KAAKi1E,SAAS,CAAC5iI,GACrC,CACJ,CAEAutJ,EAAsBluJ,OAAO,CAAG,CAAC,UAAU,CAE3CF,EAAAA,CAAUA,CAACC,OAAO,CAAC,wBAAyBmuJ,E,iDC7FrC,OAAMS,EACTzuJ,YAAYsD,CAAoB,CAAE,CAC9B,IAAI,CAACA,oBAAoB,CAAGA,CAChC,CAEAorJ,uBAAuBhyJ,CAAQ,CAAE,CAC7B,IAAMiyJ,EAAgB,EAAE,CACxB,IAAK,IAAIlvJ,EAAI,EAAGA,EAAI/C,EAASE,MAAM,CAAE6C,IAC7B/C,CAAQ,CAAC+C,EAAE,CAACulI,MAAM,CAACpoI,MAAM,CAAG,EAC5B+xJ,EAActtJ,IAAI,IAAI,IAAI,CAACqtJ,sBAAsB,CAAChyJ,CAAQ,CAAC+C,EAAE,CAACulI,MAAM,GAC7DtoI,CAAQ,CAAC+C,EAAE,CAACwlI,SAAS,CAACroI,MAAM,CAAG,GACtC+xJ,EAActtJ,IAAI,IAAI3E,CAAQ,CAAC+C,EAAE,CAACwlI,SAAS,EAInD,OAAO0pB,CACX,CAEAC,2BAA2BC,CAAW,CAAEC,CAAgB,CAAE,CACtD,IAAMC,EAA0B,EAAE,CAClC,IAAK,IAAItvJ,EAAI,EAAGA,EAAIovJ,EAAYjyJ,MAAM,CAAE6C,IACpC,IAAK,IAAI21G,EAAI,EAAGA,EAAI05C,EAAiBlyJ,MAAM,CAAEw4G,IACzC,GAAI05C,CAAgB,CAAC15C,EAAE,CAAC2uB,QAAQ,GAAK8qB,CAAW,CAACpvJ,EAAE,CAAE,CACjDsvJ,EAAwB1tJ,IAAI,CAACytJ,CAAgB,CAAC15C,EAAE,EAChD,KACJ,CAIR,OAAO25C,CACX,CAEAC,oBAAoBjsB,CAAiB,CAAEE,CAAS,CAAEgsB,CAAY,CAAE,CAC5D,IAAI,CAACA,YAAY,CAAGA,EACpB,IAAMC,EAAwB,EAAE,CAKhC,OAJAnsB,EAAkB7kI,OAAO,CAAC,IACtB,IAAI,CAACixJ,wBAAwB,CAACC,EAAkBnsB,EAAWisB,EAC/D,GAEOA,CACX,CAEAG,uBAAuBD,CAAgB,CAAEnsB,CAAS,CAAEisB,CAAqB,CAAED,CAAY,CAAE,CAGrF,OAFA,IAAI,CAACA,YAAY,CAAGA,EACpB,IAAI,CAACE,wBAAwB,CAACC,EAAkBnsB,EAAWisB,GACpDA,CACX,CAEAI,wBAAwBC,CAAK,CAAqC,CAAC,IAApCjrJ,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAa,KAAM+C,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAU,KACpD07H,EAAoB,EAAE,CAC1B,GAAIz+H,OAAAA,EAOA,IANqB/E,KAAAA,IAAjBgwJ,EAAMvqB,MAAM,EAAkBuqB,EAAMvqB,MAAM,CAACpoI,MAAM,CAAG,GACpD2yJ,EAAMvqB,MAAM,CAAC9mI,OAAO,CAAC,IACjB6kI,EAAkB1hI,IAAI,IAAI,IAAI,CAACiuJ,uBAAuB,CAACl5H,EAAM9xB,EAAY+C,GAC7E,GAGAkoJ,KAAoBhwJ,IAApBgwJ,EAAMtqB,SAAS,EAAkBsqB,EAAMtqB,SAAS,CAACroI,MAAM,CAAG,EAAG,CAC7D,IAAM4yJ,EAAeD,EAAMtqB,SAAS,CAAClb,MAAM,CAAC,CAACkZ,EAAW7sG,KAChDA,EAAKq5H,QAAQ,EACbxsB,EAAU5hI,IAAI,CAAC,CACXkD,WAAYD,EACZ8/H,UAAWhuG,EAAKguG,SAAS,CACzB2B,cAAe3vG,EAAKguG,SAAS,CAC7B0B,WAAYypB,EAAMzpB,UAAU,EAAIxhI,EAChCK,OAAQ4qJ,EAAM5qJ,MAAM,EAAI0C,EACxB8/H,cAAe/wG,EAAK+wG,aAAa,GAIlClE,GACR,EAAE,EACLF,EAAkB1hI,IAAI,IAAImuJ,EAC9B,OAEAD,EAAMrxJ,OAAO,CAAC,IACV6kI,EAAkB1hI,IAAI,IAAI,IAAI,CAACiuJ,uBAAuB,CAACl5H,EAAMA,EAAK7xB,UAAU,CAAE6xB,EAAKrb,OAAO,EAC9F,GAGJ,OAAOgoH,CACX,CAEAosB,yBAAyBC,CAAgB,CAAEnsB,CAAS,CAAEisB,CAAqB,CAAE,CACzE,IAAMQ,EAAkBzsB,EAAUrmI,MAAM,CACxC,IAAK,IAAI6C,EAAI,EAAGA,EAAIiwJ,EAAiBjwJ,IACjC,GAAIwjI,CAAAA,KAA4B1jI,IAA5B0jI,CAAS,CAACxjI,EAAE,CAAC8E,UAAU,EAAkB0+H,CAAS,CAACxjI,EAAE,CAACqmI,UAAU,GAAKspB,EAAiBtpB,UAAU,GAEzF7C,CAAAA,KAA4B1jI,IAA5B0jI,CAAS,CAACxjI,EAAE,CAAC8E,UAAU,EAAkB0+H,CAAS,CAACxjI,EAAE,CAAC8E,UAAU,GAAK6qJ,EAAiB7qJ,UAAU,GAG3G,GAAI0+H,SAAAA,CAAS,CAACxjI,EAAE,CAAC+7B,QAAQ,EAAeynG,CAAS,CAACxjI,EAAE,CAAC8E,UAAU,GAAK6qJ,EAAiBtpB,UAAU,CAC/D,IAAI,CAAC6pB,qBAAqB,CAACP,EAAkBnsB,CAAS,CAACxjI,EAAE,CAACulI,MAAM,CAAC,EAAE,CAACC,SAAS,CAAEiqB,IAEvG,IAAI,CAACU,oBAAoB,CAAC3sB,CAAS,CAACxjI,EAAE,OAEvC,GAAIwjI,CAAS,CAACxjI,EAAE,CAACulI,MAAM,CAACpoI,MAAM,CAAG,EACV,IAAI,CAACizJ,mBAAmB,CAACT,EAAkBnsB,CAAS,CAACxjI,EAAE,CAACulI,MAAM,CAAEkqB,IAEtF,IAAI,CAACU,oBAAoB,CAAC3sB,CAAS,CAACxjI,EAAE,OAEvC,GAAIwjI,CAAS,CAACxjI,EAAE,CAACwlI,SAAS,CAACroI,MAAM,CAAG,EAAG,CAC1C,IAAMkzJ,EAAsB,IAAI,CAACH,qBAAqB,CAACP,EAAkBnsB,CAAS,CAACxjI,EAAE,CAACwlI,SAAS,CAAEiqB,EAC7FjsB,CAAAA,CAAS,CAACxjI,EAAE,CAACkF,MAAM,GAAKyqJ,EAAiBzqJ,MAAM,EAAImrJ,GACnD,IAAI,CAACF,oBAAoB,CAAC3sB,CAAS,CAACxjI,EAAE,CAE9C,EAER,CAEAowJ,oBAAoBT,CAAgB,CAAEW,CAAM,CAAEb,CAAqB,CAAE,CACjE,IAAMc,EAAeD,EAAOnzJ,MAAM,CAC9BqzJ,EAAa,GAEjB,IAAK,IAAIC,EAAa,EAAGA,EAAaF,EAAcE,IAC5CH,CAAM,CAACG,EAAW,CAAClrB,MAAM,CAACpoI,MAAM,CAAG,GACT,IAAI,CAACizJ,mBAAmB,CAACT,EAAkBW,CAAM,CAACG,EAAW,CAAClrB,MAAM,CAAEkqB,KAE5Fe,EAAa,GACb,IAAI,CAACL,oBAAoB,CAACG,CAAM,CAACG,EAAW,GAIf3wJ,KAAAA,IAAjCwwJ,CAAM,CAACG,EAAW,CAACjrB,SAAS,EAAkB8qB,CAAM,CAACG,EAAW,CAACjrB,SAAS,CAACroI,MAAM,CAAG,GAAKmzJ,CAAM,CAACG,EAAW,CAACvrJ,MAAM,GAAKyqJ,EAAiBzqJ,MAAM,EACjH,IAAI,CAACgrJ,qBAAqB,CAACP,EAAkBW,CAAM,CAACG,EAAW,CAACjrB,SAAS,CAAEiqB,KAEpGe,EAAa,GACb,IAAI,CAACL,oBAAoB,CAACG,CAAM,CAACG,EAAW,GAKxD,OAAOD,CACX,CAEAN,sBAAsBP,CAAgB,CAAE1yJ,CAAQ,CAAEwyJ,CAAqB,CAAE,CACrE,IAAMiB,EAAiBzzJ,EAASE,MAAM,CAClCqzJ,EAAa,GAEjB,IAAK,IAAIG,EAAe,EAAGA,EAAeD,EAAgBC,IACtD,GAAIhB,EAAiBhrB,SAAS,GAAK1nI,CAAQ,CAAC0zJ,EAAa,CAAChsB,SAAS,CAAE,CACjE,IAAMisB,EAAqB,CACvBjB,iBAAkBA,EAClBrrB,SAAUrnI,CAAQ,CAAC0zJ,EAAa,EAGpC,GAAI,IAAI,CAACnB,YAAY,CACjBC,EAAsB7tJ,IAAI,CAACgvJ,QAE3B,IAAK,IAAI5wJ,EAAI,EAAGA,EAAIyvJ,EAAsBtyJ,MAAM,CAAE6C,IAE1C4wJ,EAAmBjB,gBAAgB,CAAChrB,SAAS,GAAK8qB,CAAqB,CAACzvJ,EAAE,CAAC2vJ,gBAAgB,CAAChrB,SAAS,EACrGisB,EAAmBjB,gBAAgB,CAACzqJ,MAAM,GAAKuqJ,CAAqB,CAACzvJ,EAAE,CAAC2vJ,gBAAgB,CAACzqJ,MAAM,EAE/FuqJ,EAAsB5tJ,MAAM,CAAC7B,EAAG,EAK5C/C,CAAAA,CAAQ,CAAC0zJ,EAAa,CAACniB,OAAO,CAAG,IAAI,CAACghB,YAAY,CAClDgB,EAAa,EACjB,CAEJ,OAAOA,CACX,CAEAL,qBAAqBp8I,CAAK,CAAE,CACxB,IAAM88I,EAAkB,CAAsB,IAAtB,IAAI,CAACrB,YAAY,CAAY,EAAI,EAErDz7I,MAA4BjU,IAA5BiU,EAAM+8I,iBAAiB,CACvB/8I,EAAM+8I,iBAAiB,CAAG,EAE1B/8I,EAAM+8I,iBAAiB,CAAG/8I,EAAM+8I,iBAAiB,CAAGD,CAE5D,CAEAE,WAAWh9I,CAAK,CAAE,CACd,IAAK,IAAI+7I,KAAS/7I,EAAO,CACrB,GAAI+7I,EAAMgB,iBAAiB,GACvBhB,EAAMgB,iBAAiB,CAAG,EAEtBhB,EAAMtqB,SAAS,CAACroI,MAAM,CAAG,GACzB,IAAK,IAAImnI,KAAYwrB,EAAMtqB,SAAS,CAChClB,EAASkK,OAAO,CAAG,EAKV1uI,MAAAA,IAAjBgwJ,EAAMvqB,MAAM,EACZ,IAAI,CAACwrB,UAAU,CAACjB,EAAMvqB,MAAM,CAEpC,CAEA,OAAOxxH,CACX,CACJ,CAEA5T,EAAAA,CAAUA,CAACC,OAAO,CAAC,wBAAyB4uJ,GAC5CA,EAAsB3uJ,OAAO,CAAG,CAAC,uBAAuB,E,0OCnLD,OAEjD2wJ,UAA8BptJ,EAAAA,CAAWA,CAC3CrD,YAAY8R,CAAU,CAAElQ,CAAQ,CAAEwS,CAAS,CAAEkE,CAAM,CAAEhV,CAAoB,CAAEotJ,CAAgB,CAAEC,CAAqB,CAAEC,CAAoB,CAAEnpJ,CAAoB,CAAEopJ,CAAU,CAAEx3G,CAAI,CAAE,CAC9K,KAAK,GAEL,IAAI,CAAC71C,0BAA0B,CAAGA,EAAAA,CAClC,KAAI,CAAC5B,QAAQ,CAAGA,EAChB,IAAI,CAACkQ,UAAU,CAAGA,EAClB,IAAI,CAACsC,SAAS,CAAGA,EACjB,IAAI,CAACkE,MAAM,CAAGA,EACd,IAAI,CAAChV,oBAAoB,CAAGA,EAC5B,IAAI,CAACotJ,gBAAgB,CAAGA,EACxB,IAAI,CAACC,qBAAqB,CAAGA,EAC7B,IAAI,CAACC,oBAAoB,CAAGA,EAC5B,IAAI,CAACj9I,oBAAoB,CAAGlM,EAC5B,IAAI,CAACqpJ,WAAW,CAAGD,EACnB,IAAI,CAACE,YAAY,CAAG13G,EACpB,IAAI,CAAC23G,eAAe,CAAG,CAAC,SAAU,aAAa,CAC/C,IAAI,CAACC,iBAAiB,CAAG,GACzB,IAAI,CAACC,YAAY,CAAG,GACpB,IAAI,CAACC,gBAAgB,CAAG,EAAE,CAC1B,IAAI,CAACrC,gBAAgB,CAAG,EAAE,CAC1B,IAAI,CAACsC,WAAW,CAAG,KAEnB,IAAI,CAACC,UAAU,CAAG,EAAE,CACpB,IAAI,CAACC,YAAY,CAAG,GACpB,IAAI,CAACC,cAAc,CAAG,GACtB,IAAI,CAACC,uBAAuB,CAAG,GAE/B,IAAI,CAACC,SAAS,CAAG,uCACjB,IAAI,CAACC,eAAe,CAAG,CACnBC,YAAanuJ,EAAAA,CAA0BA,CAAC2+F,aAAa,CAACC,cAAc,CAACK,YAAY,CACjFmvD,WAAYpuJ,EAAAA,CAA0BA,CAAC2+F,aAAa,CAACC,cAAc,CAACM,WAAW,EAEnF,IAAI,CAACmvD,0BAA0B,CAAG,EAAE,CAEpC,IAAI,CAACC,kBAAkB,CAAG,IAAI,CAACC,iBAAiB,CAACh4J,IAAI,CAAC,IAAI,EAC1D,IAAI,CAACwJ,iBAAiB,CAAG,GACzB,IAAI,CAACK,iBAAiB,CAAG,mCACzB,IAAI,CAACouJ,sBAAsB,CAAG,wBAE9B,IAAMC,EAAY,IAAI,CAAC3uJ,oBAAoB,CAACS,SAAS,CAAC,oCAEtD,KAAI,CAACmuJ,iBAAiB,CAAG,CACrBhjH,QAAS,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,oEAC7C2Y,KAAMg9G,EAAAA,CAAaA,CACnBjzH,MAAO,IAAI,CAACnD,oBAAoB,CAACS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAMu1I,CAAU,EACxG,EAEA,IAAME,EAAsB,IAAI,CAAC7uJ,oBAAoB,CAACS,SAAS,CAAC,8CAEhE,KAAI,CAACquJ,sBAAsB,CAAG,CAC1BljH,QAAS5rC,EAAqBS,SAAS,CAAC,2DACxC2Y,KAAMg9G,EAAAA,CAAaA,CACnBjzH,MAAO,IAAI,CAACnD,oBAAoB,CAACS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAMy1I,CAAoB,EAClH,EAEA,IAAI,CAACE,WAAW,CAAG,IAAI,CAAC/uJ,oBAAoB,CAACS,SAAS,CAAC,oDAEvD,IAAI,CAACuuJ,SAAS,CAAG,CACbhuI,OAAQ,GACR/W,GAAI,SACJglJ,QAAS,GACTjrI,QAAS,CACL,CACI/gB,MAAO,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,kBAC3Cs9B,MAAO,sBACPv6B,SAAU,2BACVJ,UAAW,IAAI,CAACpD,oBAAoB,CAACS,SAAS,CAAC,qEAC/C3H,OAAQ,KACJy6B,EAAAA,CAAOA,CAACC,UAAU,CAAC,MAAO,gCAC1B,IAAI,CAAC1iB,SAAS,CAACvH,GAAG,CAAC,IAAI,CAACA,GAAG,CAC/B,CACJ,EACA,CACItG,MAAO,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,gBAC3C+C,SAAU,gCACVJ,UAAW,IAAI,CAACpD,oBAAoB,CAACS,SAAS,CAAC,mEAC/Cs9B,MAAO,uBACPjlC,OAAQ,KACJ,IAAI,CAACo2J,YAAY,GACjB,IAAI,CAACC,eAAe,CAAC,EACzB,CACJ,EACH,EAGL,IAAI,CAACC,iBAAiB,CAAG,GAEzB,IAAI,CAACC,SAAS,CAAG,CACbruI,OAAQ,GACR/W,GAAI,SACJglJ,QAAS,GACTjrI,QAAS,CACL,CACI/gB,MAAO,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,gBAC3Cs9B,MAAO,sBACPv6B,SAAU,gCACVJ,UAAW,IAAI,CAACpD,oBAAoB,CAACS,SAAS,CAAC,mEAC/C3H,OAAQ,IAAM,IAAI,CAACq2J,eAAe,CAAC,GACvC,EACA,CACIlsJ,MAAO,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,gBAC3C+C,SAAU,gCACVu6B,MAAO,uBACP36B,UAAW,IAAI,CAACpD,oBAAoB,CAACS,SAAS,CAAC,mEAC/C3H,OAAQ,IAAM,IAAI,CAACq2J,eAAe,CAAC,EACvC,EACH,EAGL,IAAI,CAACG,UAAU,CAAG,CACdtuI,OAAQ,GACR/W,GAAI,UACJglJ,QAAS,GACTjrI,QAAS,CACL,CACI/gB,MAAO,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,gBAC3Cs9B,MAAO,sBACPv6B,SAAU,iCACVJ,UAAW,IAAI,CAACpD,oBAAoB,CAACS,SAAS,CAAC,oEAC/C3H,OAAQ,IAAM,IAAI,CAACq2J,eAAe,CAAC,GACvC,EACA,CACIlsJ,MAAO,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,gBAC3Cs9B,MAAO,uBACPjlC,OAAQ,IAAI,CAACy2J,aAAa,CAAC94J,IAAI,CAAC,IAAI,EACpC+M,SAAU,yBACVJ,UAAW,IAAI,CAACpD,oBAAoB,CAACS,SAAS,CAAC,oEAC/C+uJ,YAAa,EACjB,EACH,EAGL,IAAI,CAACC,IAAI,CAAG,CAAC,IAAI,CAACT,SAAS,CAAE,IAAI,CAACK,SAAS,CAAE,IAAI,CAACC,UAAU,CAAC,CAC7D,IAAI,CAACI,YAAY,EACrB,CAEAluB,SAAU,CACF,CAACrmI,MAAMmsB,OAAO,CAAC,IAAI,CAACi4G,aAAa,GAAK,IAAI,CAACA,aAAa,CAACjmI,MAAM,CAAG,EAClE,IAAI,CAACq2J,gBAAgB,GAChBl3J,IAAI,CAAC,KACgC,IAA9B,IAAI,CAAC8mI,aAAa,CAACjmI,MAAM,GACzB,IAAI,CAACs0J,YAAY,CAAG,GACpB,IAAI,CAACgC,eAAe,IAGxB,IAAI,CAACC,qBAAqB,GAC1B,IAAI,CAAChC,gBAAgB,CAAG,IAAI,CAACR,qBAAqB,CAACjC,sBAAsB,CAAC,IAAI,CAAC7rB,aAAa,CAChG,GACCjiI,KAAK,CAAC,IACH,IAAI,CAACswJ,YAAY,CAAG,EACxB,IAEJ,IAAI,CAACkC,qBAAqB,GAC1B,IAAI,CAACjC,gBAAgB,CAAG,IAAI,CAACR,qBAAqB,CAACjC,sBAAsB,CAAC,IAAI,CAAC7rB,aAAa,EAC5F,IAAI,CAACisB,gBAAgB,CAAG,IAAI,CAAC6B,qBAAqB,CAAC3B,mBAAmB,CAAC,IAAI,CAACjsB,iBAAiB,CAAE,IAAI,CAACF,aAAa,CAAE,KAGvH,IAAI,CAACwwB,4BAA4B,CAAG,CAAC9lJ,EAAIzR,KACrC,IAAI,CAACgzJ,gBAAgB,CAAC5wJ,OAAO,CAAC,IACtB24G,EAAIktB,QAAQ,CAACG,QAAQ,GAAK32H,GAC1BspG,CAAAA,EAAIu4C,gBAAgB,CAACkE,MAAM,CAAGx3J,CAAI,CAE1C,EACJ,EAEA,IAAI,CAAC6X,oBAAoB,CAACnI,oBAAoB,CAAC+nJ,EAAAA,CAA4BA,CAAC5sD,eAAe,CAAE,IAAI,CAACt/F,OAAO,EAAEtL,IAAI,CAAC,IAE5G,GADA,IAAI,CAAC42J,SAAS,CAACJ,OAAO,CAAG9pJ,EAAShI,IAAI,CAClC,CAAC,IAAI,CAACkyJ,SAAS,CAACJ,OAAO,CAAE,CACzB,IAAMiB,EAAiB,IAAI,CAACT,IAAI,CAACxxI,SAAS,CAAC,GAAU6U,EAAK7oB,EAAE,GAAK,IAAI,CAAColJ,SAAS,CAACplJ,EAAE,EAC9EimJ,EAAiB,IACjB,IAAI,CAACT,IAAI,CAACzxJ,MAAM,CAACkyJ,EAAgB,EAEzC,CACJ,GAEA,IAAMtwB,EAAa,KAAqB3jI,IAArB,IAAI,CAAC8wH,WAAW,CAAiB,IAAI,CAAC6S,UAAU,CAAG,IAAI,CAAC7S,WAAW,CACtF,IAAI,CAACygC,WAAW,CACX2C,aAAa,CAACvwB,EAAY,IAAI,CAAC77H,OAAO,EACtCtL,IAAI,CAAC,IACF,IAAI,CAACs1J,UAAU,CAAG5oJ,EAAShI,IAAI,CAAC6B,GAAG,CAAC,IAChC,IAAMoxJ,EAAW,CAAEjtJ,MAAOg7B,EAAI+wC,KAAK,CAAExoD,UAAWyX,EAAIkyH,SAAS,CAAEx7H,SAAU,IAAK,EAI9E,OAHAu7H,EAASv7H,QAAQ,CAAG,IAChB,IAAI,CAACy7H,WAAW,CAACF,EAAU1pI,EAC/B,EACO0pI,CACX,GAEA,IAAI,CAAClC,uBAAuB,CAAG,QAAI,CAACH,UAAU,CAACz0J,MAAM,GAExDgE,KAAK,CAAC,KACH,IAAI,CAAC0wJ,YAAY,CAAG,EACxB,GACCzwJ,OAAO,CAAC,KACL,IAAI,CAAC0wJ,cAAc,CAAG,EAC1B,EACR,CAEA9pC,WAAW+G,CAAO,CAAE,CACMjvH,KAAAA,IAAlBivH,EAAQxyH,KAAK,EACb,IAAI,CAACg3J,YAAY,EAEzB,CAEArrC,YAAa,CACT,IAAI,CAACipC,oBAAoB,CAACrtB,0BAA0B,CAAC,IAAI,CAACl8H,OAAO,EACjE,IAAI,CAACupJ,oBAAoB,CAACltB,qBAAqB,CAAC,IAAI,CAACr8H,OAAO,CAChE,CAEA2rJ,cAAe,CACX,GAAI,CAAC,IAAI,CAACh3J,KAAK,CAAE,CACb,IAAI,CAAC02J,iBAAiB,CAAG,GACzB,MACJ,CACA,IAAMmB,EAAY,IAAI,CAACd,IAAI,CAACj1J,IAAI,CAAC,GAASR,EAAIgnB,MAAM,GAAG/W,EACvD,KAAI,CAACmlJ,iBAAiB,CAAGmB,GAAa,EAC1C,CAEA9B,kBAAkBnyH,CAAO,CAAE,CACvB,IAAI,CAACojG,UAAU,CAAGpjG,CACtB,CAEAszH,iBAAkB,CACd,IAAI,CAACZ,SAAS,CAAChrI,OAAO,CAAG,IAAI,CAACgrI,SAAS,CAAChrI,OAAO,CAACzoB,MAAM,CAAC,GAAYkhH,kCAAAA,EAAOj5G,QAAQ,EAClF,IAAI,CAAC8rJ,UAAU,CAACL,OAAO,CAAG,EAC9B,CAEAuB,oBAAqB,CACjB,IAAI,CAACxuE,QAAQ,CAAC,CACV/3E,GAAI,IAAI,CAAClG,OAAO,CAChB0sJ,iBAAkB,EACtB,EACJ,CAEAX,uBAAwB,CACpB,IAAK,IAAI3zJ,EAAI,EAAGA,EAAI,IAAI,CAACojI,aAAa,CAACjmI,MAAM,CAAE6C,IAC3C,GAAI,IAAI,CAACojI,aAAa,CAACpjI,EAAE,CAAC8wJ,iBAAiB,CAAE,CACzC,IAAI,CAAC1tB,aAAa,CAAG,IAAI,CAAC8tB,qBAAqB,CAACH,UAAU,CAAC,IAAI,CAAC3tB,aAAa,EAC7E,MACJ,CAER,CAEAswB,uBAAwB,CACpB,IAAI,CAACzC,gBAAgB,CAChBsD,oBAAoB,CAAC,IAAI,CAAC3sJ,OAAO,EACjCtL,IAAI,CAAC,IACF,IAAI,CAACgnI,iBAAiB,CAAGtiI,EAAKwkI,SAAS,CACvC,IAAI,CAAC4sB,0BAA0B,CAAG,IAAIpxJ,EAAKwkI,SAAS,CAAC,CACrD,IAAI,CAACjC,UAAU,CAAGviI,EAAKwzJ,UAAU,CACjC,IAAI,CAACnF,gBAAgB,CAAG,IAAI,CAAC6B,qBAAqB,CAAC3B,mBAAmB,CAAC,IAAI,CAACjsB,iBAAiB,CAAE,IAAI,CAACF,aAAa,CAAE,IACnH,IAAI,CAACO,qBAAqB,CAAG3iI,EAAKyzJ,qBAAqB,GAE1DtzJ,KAAK,CAAC,KACH,IAAI,CAACmiI,iBAAiB,CAAG,EAAE,CAC3B,IAAI,CAAC8uB,0BAA0B,CAAG,EAAE,EAEhD,CAEAoB,kBAAmB,CACf,OAAO,IAAI,CAACvC,gBAAgB,CACvByD,8BAA8B,CAAC,IAAI,CAAC9sJ,OAAO,EAC3CtL,IAAI,CAAC,IACF,IAAI,CAAC8mI,aAAa,CAAGpiI,EACrB,IAAI,CAAC2zJ,cAAc,CAAG,EAC1B,GACCxzJ,KAAK,CAAC,KACH,IAAI,CAACiiI,aAAa,CAAG,EAAE,EAEnC,CAEAwxB,kBAAkB5zJ,CAAI,CAAE3E,CAAK,CAAE,CAG3B,GAFA,IAAI,CAACgzJ,gBAAgB,CAAG,IAAI,CAAC6B,qBAAqB,CAACtB,sBAAsB,CAAC5uJ,CAAI,CAAC,EAAE,CAAE,IAAI,CAACoiI,aAAa,CAAE,IAAI,CAACisB,gBAAgB,CAAEhzJ,GAE1HA,CAAU,IAAVA,EAAgB,CAChB,IAAI,CAACinI,iBAAiB,CAAC1hI,IAAI,CAACZ,CAAI,CAAC,EAAE,EACnC,IAAM2uJ,EAAmB,IAAI,CAACN,gBAAgB,CAAChxJ,IAAI,CAAC,GAAO2C,CAAI,CAAC,EAAE,CAAC2jI,SAAS,GAAKj0F,EAAE4zF,QAAQ,CAACK,SAAS,CAE5E7kI,MAAAA,IAArB6vJ,GACAv4H,EAAAA,CAAOA,CAACC,UAAU,CAAC,MAAO,6BAA8Bs4H,EAAiBrrB,QAAQ,CAAC1jH,KAAK,CAE/F,MACIwW,EAAAA,CAAOA,CAACC,UAAU,CAAC,MAAO,gCAE1B,IAAI,CAACisG,iBAAiB,CAAG,IAAI,CAACA,iBAAiB,CAAClkI,MAAM,CAAC,GAC5C4B,CAAI,CAAC,EAAE,CAAC8D,UAAU,GAAK21C,EAAI31C,UAAU,EAAI9D,CAAI,CAAC,EAAE,CAACkE,MAAM,GAAKu1C,EAAIv1C,MAAM,EAAUlE,CAAI,CAAC,EAAE,CAACslI,aAAa,GAAK7rF,EAAI6rF,aAAa,EAI1I,IAAI,CAACzgD,QAAQ,CAAC,CACV/3E,GAAI,IAAI,CAAClG,OAAO,CAChB0sJ,iBAAkB,EACtB,EACJ,CAEAvB,cAAe,CACX,IAAI,CAAC1D,gBAAgB,CAAG,IAAI,CAAC6B,qBAAqB,CAAC/B,0BAA0B,CAAC,IAAI,CAACuC,gBAAgB,CAAE,IAAI,CAACrC,gBAAgB,CAC9H,CAEAwF,oBAAoBC,CAAY,CAAEzF,CAAgB,CAAE,CAChD,IAAK,IAAI/qB,KAAY+qB,EACjB,GAAI/qB,EAASqrB,gBAAgB,CAAChrB,SAAS,GAAKmwB,EAAanwB,SAAS,CAE9D,OADAmwB,EAAajB,MAAM,CAAGvvB,KAAqCxkI,IAArCwkI,EAASqrB,gBAAgB,CAACkE,MAAM,CAAiBvvB,EAASqrB,gBAAgB,CAACkE,MAAM,CAAG,EACnGiB,EAAajB,MAAM,CAKtCkB,0BAA0BC,CAAe,CAAE,CACvC,OAAOA,EAAgB1qC,MAAM,CAAC,CAAC2qC,EAAaH,KACTh1J,KAAAA,IAA3Bg1J,EAAatvB,SAAS,EAAkBsvB,KAAwBh1J,IAAxBg1J,EAAavvB,MAAM,EACvDuvB,CAAyB,IAAzBA,EAAatmB,OAAO,EACpBymB,EAAYrzJ,IAAI,CAAC,CACb0kI,cAAewuB,EAAanwB,SAAS,CACrCA,UAAWmwB,EAAanwB,SAAS,CACjCz/H,OAAQ,KACRmhI,WAAY,KACZ7oD,WAAY,KACZ3pC,KAAM,IAAI,CAAC+9G,UAAU,CAACxyJ,MAAM,CAAC,GAAOgkF,EAAE74D,SAAS,EAAE1nB,GAAG,CAAC,GAAOugF,EAAEp8E,KAAK,EACnE6sJ,OAAQiB,KAAwBh1J,IAAxBg1J,EAAajB,MAAM,CAAiBiB,EAAajB,MAAM,CAAG,IAAI,CAACgB,mBAAmB,CAACC,EAAc,IAAI,CAACzF,gBAAgB,CAClI,GAIuBvvJ,KAAAA,IAA3Bg1J,EAAatvB,SAAS,EAAkBsvB,EAAatvB,SAAS,CAACroI,MAAM,CAAG,GACxE83J,CAAAA,EAAcA,EAAYr9H,MAAM,CAAC,IAAI,CAACm9H,yBAAyB,CAACD,EAAatvB,SAAS,EAAC,EAG/D1lI,KAAAA,IAAxBg1J,EAAavvB,MAAM,EAAkBuvB,EAAavvB,MAAM,CAACpoI,MAAM,CAAG,GAClE83J,CAAAA,EAAcA,EAAYr9H,MAAM,CAAC,IAAI,CAACm9H,yBAAyB,CAACD,EAAavvB,MAAM,EAAC,EAGxF,IAAI,CAACgsB,eAAe,CAAC9yJ,OAAO,CAAC,IACrBq2J,EAAa5pI,cAAc,CAAC/D,IAC5B8tI,EAAYx2J,OAAO,CAAC,IACO,OAAnB6lI,CAAQ,CAACn9G,EAAK,EACdm9G,CAAAA,CAAQ,CAACn9G,EAAK,CAAG2tI,CAAY,CAAC3tI,EAAK,EAGnCm9G,CAAAA,OAAAA,EAAS9mD,UAAU,EAAa8mD,KAAAA,EAAS9mD,UAAU,GACnD8mD,CAAAA,EAAS9mD,UAAU,CAAG,SAAI,CAACimD,UAAU,CAAU,IAAI,CAACA,UAAU,CAAG,IAAI,CAACyxB,sBAAsB,CAAC5wB,EAAQ,CAE7G,EAER,GACO2wB,GACR,EAAE,CACT,CAEAd,YAAYnyH,CAAG,CAAEzX,CAAS,CAAE,CACxByX,EAAIzX,SAAS,CAAGA,EAEhB,IAAI,CAACs7D,QAAQ,CAAC,CACV/3E,GAAI,IAAI,CAAClG,OAAO,CAChB0sJ,iBAAkB,EACtB,GAEA,IAAI,CAACz7I,MAAM,CAACuS,WAAW,EAC3B,CAEA8pI,uBAAuB5wB,CAAQ,CAAE,CAC7B,IAAK,IAAMwrB,KAAS,IAAI,CAAC1sB,aAAa,CAElC,GAAIxyF,KAAU9wC,IADAgwJ,EAAMvqB,MAAM,CAAClnI,IAAI,CAAC,GAAaU,EAAQmG,MAAM,GAAKo/H,EAASp/H,MAAM,EAE3E,OAAO4qJ,EAAMhrJ,UAAU,CAKnCsuJ,eAAgB,CACZ,IAAI,CAACD,UAAU,CAACtrI,OAAO,CAAC,EAAE,CAAC/gB,KAAK,CAAG,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,0BACvE,IAAI,CAACktJ,iBAAiB,CAAG,GACzB,IAAI,CAACG,WAAW,CAAG,KAEnB,IAAM5B,EAAe,CACjBz0I,QAAS,IAAI,CAAC1T,OAAO,CACrB49H,UAAW,IAAI,CAACuvB,yBAAyB,CAAC,IAAI,CAAC3xB,aAAa,EAC5D+xB,YAAa,IAAI,CAAC/xB,aAAa,CAACvgI,GAAG,CAAC,GACzByhI,EAASx/H,UAAU,CAElC,CAEoChF,MAAAA,IAAhCiwJ,EAAaoF,WAAW,CAAC,EAAE,EAC3BpF,CAAAA,EAAaoF,WAAW,CAAG,CAAC,IAAI,CAAC1xB,UAAU,CAAC,EAG5C,IAAI,CAACF,UAAU,EAAI,SAAI,CAACA,UAAU,EAClCwsB,CAAAA,EAAayE,UAAU,CAAG,IAAI,CAACjxB,UAAU,EAG7C,IAAI,CAAC0tB,gBAAgB,CAChBmE,YAAY,CAACrF,GACbzzJ,IAAI,CAAC,IACE+4J,CAAiB,IAAjBA,EAAQr0J,IAAI,EACZ,IAAI,CAACmyJ,UAAU,CAACtrI,OAAO,CAAC,EAAE,CAAC/gB,KAAK,CAAG,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,iBACvE,IAAI,CAACktJ,iBAAiB,CAAG,GAEzB,IAAI,CAACrvJ,QAAQ,CAAC,KACV,IAAI,CAAC0jF,QAAQ,CAAC,CACV/3E,GAAI,IAAI,CAAClG,OAAO,CAChB0sJ,iBAAkB,EACtB,GACA,IAAI,CAAC3/I,SAAS,CAACvH,GAAG,CAAC,IAAI,CAACA,GAAG,CAC/B,EAAG,KAEH,IAAI,CAACiF,UAAU,CAACK,UAAU,CAAC,yBAA0B,IAAI,CAACqiJ,yBAAyB,CAAC,IAAI,CAAC3xB,aAAa,EAAG2sB,EAAaoF,WAAW,EACjI/9H,EAAAA,CAAOA,CAACC,UAAU,CAAC,MAAO,gCAE1B,IAAI,CAAC87H,UAAU,CAACtrI,OAAO,CAAC,EAAE,CAAC/gB,KAAK,CAAG,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,gBACvE,IAAI,CAACqtJ,WAAW,CAAG,IAAI,CAAC9tJ,oBAAoB,CAACS,SAAS,CAAC,4CACvD,IAAI,CAACktJ,iBAAiB,CAAG,GAEjC,GACCrwJ,KAAK,CAAC,KACH,IAAI,CAACgyJ,UAAU,CAACtrI,OAAO,CAAC,EAAE,CAAC/gB,KAAK,CAAG,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,gBACvE,IAAI,CAACqtJ,WAAW,CAAG,IAAI,CAAC9tJ,oBAAoB,CAACS,SAAS,CAAC,4CACvD,IAAI,CAACktJ,iBAAiB,CAAG,EAC7B,EACR,CAEAwB,gBAAgBtxF,CAAS,CAAE,CACvB,IAAI,CAACiwF,WAAW,CAAG,KACnB,IAAK,IAAI3xJ,EAAI,EAAGA,EAAI,IAAI,CAACszJ,IAAI,CAACn2J,MAAM,CAAE6C,IAClC,GAAI,IAAI,CAACszJ,IAAI,CAACtzJ,EAAE,CAAC6kB,MAAM,CAAE,CACY/kB,KAAAA,IAA7B,IAAI,CAACwzJ,IAAI,CAACtzJ,EAAI0hE,EAAU,EACxB,KAAI,CAAC4xF,IAAI,CAACtzJ,EAAI0hE,EAAU,CAAC78C,MAAM,CAAG,EAAG,EAEzC,MACJ,CAER,CAEAywI,aAAalB,CAAS,CAAE,CACpB,IAAK,IAAIp0J,EAAI,EAAGA,EAAI,IAAI,CAACszJ,IAAI,CAACn2J,MAAM,CAAE6C,IAClC,IAAI,CAACszJ,IAAI,CAACtzJ,EAAE,CAAC6kB,MAAM,CAAGuvI,EAAUtmJ,EAAE,GAAK,IAAI,CAACwlJ,IAAI,CAACtzJ,EAAE,CAAC8N,EAAE,CAGlE,CAoBAkjJ,EAAsB3wJ,OAAO,CAAG,CAC5B,aACA,WACA,YACA,SACA,uBACA,mBACA,wBACA,uBACA,uBACA,aACA,OACH,CACDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,wBA/BgB,CACjCK,SChdW,s6KDidXC,WAAYurJ,EACZ5rJ,SAAU,CACNk+H,kBAAmB,IACnBF,cAAe,IACfG,WAAY,IACZ37H,QAAS,IACT67H,WAAY,IACZ7S,YAAa,KACb8S,kBAAmB,IACnBC,sBAAuB,IACvBv2H,IAAK,IACLy4E,SAAU,IACVtpF,MAAO,IACX,CACJ,E,oDE5dqE,OAE/Dg5J,UAA4B3xJ,EAAAA,CAAWA,CACzCrD,aAAc,CACV,KAAK,EACT,CACJ,CAYAg1J,EAAoBl1J,OAAO,CAAG,EAAE,CAChCF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,sBAXc,CAC/BK,SCZW,8rBDaXC,WAAY8vJ,EACZnwJ,SAAU,CACNk/H,SAAU,IACVkxB,SAAU,KACVh9B,KAAM,IACV,CACJ,E,0FEfAr4H,EAAAA,CAAUA,CAACgF,SAAS,CAAC,cAAe03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAc4Y,EAAAA,CAAWA,CAAE,CAAC,iBAAkB,QAAS,QAAS,cAAe,aAAc,OAAQ,MAAO,MAAO,WAAY,WAAW,ECClI,OAEtCC,UAA8B9xJ,EAAAA,CAAWA,CAC3CrD,YAAYsY,CAAM,CAAEtG,CAAa,CAAE1O,CAAoB,CAAE,CACrD,KAAK,GAEL,IAAI,CAACgV,MAAM,CAAGA,EACd,IAAI,CAACtG,aAAa,CAAGA,EACrB,IAAI,CAAC1O,oBAAoB,CAAGA,EAC5B,IAAI,CAAC8xJ,kBAAkB,CAAG5xJ,EAAAA,CAA0BA,CAAC2+F,aAAa,CAACC,cAAc,CAACI,YAAY,CAC9F,IAAI,CAAC6yD,qBAAqB,CAAG7xJ,EAAAA,CAA0BA,CAAC2+F,aAAa,CAACC,cAAc,CAACG,eAAe,CACpG,IAAI,CAAC+yD,WAAW,CAAG,IAAI,CAACC,UAAU,CAAC,IAAI,CAACnG,gBAAgB,CAACkE,MAAM,EAC/D,IAAI,CAACkC,KAAK,CAAG,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC1xB,QAAQ,CAAC2xB,KAAK,EAC/C,IAAI,CAACC,kBAAkB,GACvB,IAAI,CAACx9H,QAAQ,CAAG,IAAI,CAACy9H,kBAAkB,CAAC77J,IAAI,CAAC,IAAI,CACrD,CAEA0tH,WAAW+G,CAAO,CAAE,CACiBjvH,KAAAA,IAA7BivH,EAAQ4gC,gBAAgB,EACxB,KAAI,CAACkG,WAAW,CAAG,IAAI,CAACC,UAAU,CAAC/mC,EAAQ4gC,gBAAgB,CAACmF,YAAY,CAACjB,MAAM,GAG1D/zJ,KAAAA,IAArBivH,EAAQuV,QAAQ,EAChB,KAAI,CAACyxB,KAAK,CAAG,IAAI,CAACC,SAAS,CAACjnC,EAAQuV,QAAQ,CAACwwB,YAAY,CAACmB,KAAK,EAEvE,CAEAE,mBAAmB5pI,CAAQ,CAAE,CACzB,IAAI,CAAC6pI,kBAAkB,CAAC,IAAI,CAAC9xB,QAAQ,CAACG,QAAQ,CAAEl4G,GAChD,IAAI,CAACspI,WAAW,CAAGtpI,EACnB,IAAI,CAAC1T,MAAM,CAACuS,WAAW,EAC3B,CAEA0qI,WAAWO,CAAM,CAAE,CACf,OAAOA,MAAAA,EAA0CA,EAAS,IAAI,CAACV,kBAAkB,CAGrFK,UAAUD,CAAK,CAAE,CACb,OAAOA,MAAAA,EAAwCA,EAAQ,IAAI,CAACO,cAAc,EAC9E,CAEAJ,oBAAqB,CACb,MAAwBp2J,IAAxB,IAAI,CAACy2J,cAAc,EAAkB,WAAI,CAACA,cAAc,GACxD,KAAI,CAACA,cAAc,CAAG,IAAI,CAACX,qBAAqB,CAExD,CAEAU,gBAAiB,QACb,OAAI,IAAI,CAAChyB,QAAQ,CAACkyB,YAAY,EAAa,KAA+B12J,IAA/B,IAAI,CAACwkI,QAAQ,CAACkyB,YAAY,CAC1D,EAAE,CAGN,IAAI,CAAClyB,QAAQ,CAACkyB,YAAY,CAAC3zJ,GAAG,CAAC,GAC3B,EACHiL,GAAI,IAAI,CAACyE,aAAa,CAACoR,IAAI,GAC3B8yI,UAAWzvJ,EAAM0vJ,QAAQ,CACzBC,QAAS3vJ,EAAM+rE,KAAK,CAACoZ,WAAW,GAChCnlF,MAAOA,EAAM4vJ,UAAU,CAACzqE,WAAW,EACvC,GAER,CACJ,CAiBAupE,EAAsBr1J,OAAO,CAAG,CAAC,SAAU,gBAAiB,uBAAuB,CACnFF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,wBAhBgB,CACjCK,SCrEW,+iBDsEXC,WAAYiwJ,EACZtwJ,SAAU,CACNuqJ,iBAAkB,IAClBrrB,SAAU,IACVh9H,SAAU,IACV8uJ,mBAAoB,IACpBG,eAAgB,KAChB/wE,IAAK,IACLD,IAAK,IACL0sE,gBAAiB,GACrB,CACJ,E,kBE/EA9xJ,E,OAAAA,CAAUA,CAACC,OAAO,CAAC,cAAe,WAC9B,IAAI,CAAC63F,iBAAiB,CAAG,CAAC,EAC1B,IAAI,CAACnC,UAAU,CAAG,CACd+gE,4BAA6B,SAAUprJ,CAAO,CAAE46D,CAAa,EACzDA,EAAc0Q,MAAM,CAAC+/E,QAAQ,CAAGrrJ,EAAQid,QAAQ,CAACrB,MAAM,CAAG5b,EAAQid,QAAQ,CAACrB,MAAM,CAACiC,KAAK,CAAC,KAAO,KAC/F+8C,EAAc0Q,MAAM,CAACzzD,OAAO,CAAG7X,aAAAA,EAAQkd,UAAU,CAACsB,YAAY,CAAkBxe,EAAQkd,UAAU,CAACtB,MAAM,CAAG,KAExG5b,OAAAA,EAAQmd,WAAW,CAACvB,MAAM,EAC1Bg/C,EAAc0Q,MAAM,CAACggF,MAAM,CAAGtrJ,EAAQmd,WAAW,CAACvB,MAAM,CAAChZ,EAAE,CAC3Dg4D,EAAc0Q,MAAM,CAACigF,WAAW,CAAG,CAC/B3oJ,GAAI5C,EAAQmd,WAAW,CAACvB,MAAM,CAAChZ,EAAE,CACjCuS,MAAOnV,EAAQmd,WAAW,CAACvB,MAAM,CAACzG,KAAK,CACvC8I,KAAMje,EAAQmd,WAAW,CAACvB,MAAM,CAACqC,IAAI,CACrCC,aAAcle,EAAQmd,WAAW,CAACvB,MAAM,CAACsC,YAAY,IAGzD08C,EAAc0Q,MAAM,CAACggF,MAAM,CAAG,KAC9B1wF,EAAc0Q,MAAM,CAACigF,WAAW,CAAG,MAGvC3wF,EAAch/C,MAAM,CAAC4vI,QAAQ,CAAGxrJ,EAAQkd,UAAU,CAACtB,MAAM,CACzDg/C,EAAch/C,MAAM,CAACusB,SAAS,CAAGnoC,EAAQod,SAAS,CAACxB,MAAM,CACzDg/C,EAAc0Q,MAAM,CAACmgF,qBAAqB,CAAGzrJ,EAAQyd,qBAAqB,CAAC7B,MAAM,CACjFg/C,EAAc0Q,MAAM,CAACljC,IAAI,CAAGpoC,EAAQqd,IAAI,CAACzB,MAAM,CAACpoB,KAAK,CAAC,GAElDwM,EAAQsd,QAAQ,CAAC1B,MAAM,EACvBg/C,EAAc0Q,MAAM,CAACogF,YAAY,CAAG,CAAC,EACrC9wF,EAAc0Q,MAAM,CAACogF,YAAY,CAACC,SAAS,CAAG3rJ,EAAQsd,QAAQ,CAAC1B,MAAM,EAErEg/C,EAAc0Q,MAAM,CAACogF,YAAY,CAAG,KAGpC1rJ,EAAQud,MAAM,CAAC3B,MAAM,EACrBg/C,EAAc0Q,MAAM,CAACsgF,aAAa,CAAG,CAAC,EACtChxF,EAAc0Q,MAAM,CAACsgF,aAAa,CAACD,SAAS,CAAG3rJ,EAAQud,MAAM,CAAC3B,MAAM,EAEpEg/C,EAAc0Q,MAAM,CAACsgF,aAAa,CAAG,IAE7C,EACAC,wBAAyB,SAAUjxF,CAAa,CAAE+6E,CAAQ,EACtDA,EAASz4H,UAAU,CAAG09C,EAAc0Q,MAAM,CAACzzD,OAAO,EAAI+iD,EAAch/C,MAAM,CAAC4vI,QAAQ,CACnF7V,EAASx4H,WAAW,CAAGy9C,KAAqCvmE,IAArCumE,EAAc0Q,MAAM,CAACigF,WAAW,CAAiB,KAAO3wF,EAAc0Q,MAAM,CAACigF,WAAW,CAC/G5V,EAASv4H,SAAS,CAAGw9C,EAAch/C,MAAM,CAACusB,SAAS,CACnDwtG,EAASt4H,IAAI,CAAGu9C,EAAc0Q,MAAM,CAACljC,IAAI,CAAC50C,KAAK,CAAC,GAChDmiJ,EAASr4H,QAAQ,CAAGs9C,EAAc0Q,MAAM,CAACogF,YAAY,CAAG9wF,EAAc0Q,MAAM,CAACogF,YAAY,CAACC,SAAS,CAAG,KACtGhW,EAASp4H,MAAM,CAAGq9C,EAAc0Q,MAAM,CAACsgF,aAAa,CAAGhxF,EAAc0Q,MAAM,CAACsgF,aAAa,CAACD,SAAS,CAAG,KACtGhW,EAAS14H,QAAQ,CAAG29C,EAAc0Q,MAAM,CAAC+/E,QAAQ,CAAGzwF,EAAc0Q,MAAM,CAAC+/E,QAAQ,CAACtyE,IAAI,CAAC,KAAO,KAC9F48D,EAASl4H,qBAAqB,CAAGm9C,EAAc0Q,MAAM,CAACmgF,qBAAqB,EAAI,EACnF,EAEAK,oBAAqB,SAAUlxF,CAAa,CAAEzpD,CAAI,EAC9CA,EAAKg4D,mBAAmB,CAAGvO,EAAc0Q,MAAM,CAACzzD,OAAO,EAAI+iD,EAAch/C,MAAM,CAAC4vI,QAAQ,CACxFr6I,EAAKi4D,qBAAqB,CACtBxO,OAAAA,EAAc0Q,MAAM,CAACigF,WAAW,CAC1B,KACA,CACI3oJ,GAAIg4D,EAAc0Q,MAAM,CAACigF,WAAW,CAAC3oJ,EAAE,CACvCuS,MAAOylD,EAAc0Q,MAAM,CAACigF,WAAW,CAACp2I,KAAK,CAC7C8I,KAAM28C,EAAc0Q,MAAM,CAACigF,WAAW,CAACttI,IAAI,CAC3CC,aAAc08C,EAAc0Q,MAAM,CAACigF,WAAW,CAACrtI,YAAY,EAEzE/M,EAAKo4D,cAAc,CAAG3O,EAAc0Q,MAAM,CAACljC,IAAI,CAAC50C,KAAK,CAAC,GACtD2d,EAAKk4D,sBAAsB,CAAGzO,EAAc0Q,MAAM,CAACogF,YAAY,CAAG9wF,EAAc0Q,MAAM,CAACogF,YAAY,CAACC,SAAS,CAAG,KAChHx6I,EAAKm4D,uBAAuB,CAAG1O,EAAc0Q,MAAM,CAACsgF,aAAa,CAAGhxF,EAAc0Q,MAAM,CAACsgF,aAAa,CAACD,SAAS,CAAG,KACnHx6I,EAAKs4D,+BAA+B,CAAG7O,EAAc0Q,MAAM,CAACmgF,qBAAqB,EAAI,EACzF,EAEAM,oBAAqB,SAAU56I,CAAI,CAAEypD,CAAa,EAC1CzpD,aAAAA,EAAK+3D,6BAA6B,CAClCtO,EAAch/C,MAAM,CAAC4vI,QAAQ,CAAGr6I,EAAKg4D,mBAAmB,CAExDvO,EAAc0Q,MAAM,CAACzzD,OAAO,CAAG1G,EAAKg4D,mBAAmB,CAE3DvO,EAAc0Q,MAAM,CAACigF,WAAW,CAAGp6I,EAAKi4D,qBAAqB,CAC7DxO,EAAc0Q,MAAM,CAACljC,IAAI,CAAGj3B,EAAKo4D,cAAc,CAAC/1E,KAAK,CAAC,GACtDonE,EAAc0Q,MAAM,CAACogF,YAAY,CAAGv6I,EAAKk4D,sBAAsB,CAAG,CAAEsiF,UAAW,IAAInkJ,KAAK2J,EAAKk4D,sBAAsB,CAAE,EAAI,KACzHzO,EAAc0Q,MAAM,CAACsgF,aAAa,CAAGz6I,EAAKm4D,uBAAuB,CAAG,CAAEqiF,UAAW,IAAInkJ,KAAK2J,EAAKm4D,uBAAuB,CAAE,EAAI,KAC5H1O,EAAc0Q,MAAM,CAACmgF,qBAAqB,CAAGt6I,EAAKs4D,+BAA+B,CAEzF,CACJ,E,kDC7EA/0E,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,aAAc,CAC/B,aACA,OACA,YACA,eACA,kBACA,oBACA,SAAUxB,CAAU,CAAEX,CAAI,CAAEgD,CAAS,CAAExM,CAAY,CAAEyJ,CAAe,CAAE8lJ,CAAiB,EACnF,MAAO,CACHjyJ,SCdG,s0CDeHoM,SAAU,IACVC,MAAO,CACH6lJ,MAAO,IACPC,MAAO,IACP/vJ,QAAS,IACTgwJ,WAAY,IACZC,aAAc,IACdC,OAAQ,GACZ,EACA/wI,KAAM,SAAUlO,CAAM,CAAE9Z,CAAO,CAAE6tB,CAAK,EA6BlC,SAASmrI,IACLN,EAAkBO,mBAAmB,CAACn/I,EAAOjR,OAAO,CAAEM,EAAaL,SAAS,EAAEvL,IAAI,CAAC,SAAU0M,CAAQ,EACjG6P,EAAOo/I,SAAS,CAAGvmJ,EAAKopH,kBAAkB,CAAC9xH,EAAShI,IAAI,CAACqrC,GAAG,EAC5DxzB,EAAOq/I,aAAa,CAAGlvJ,EAAShI,IAAI,CAACsrC,KAAK,CAC1CzzB,EAAOgrC,KAAK,CAAG,EACnB,EACJ,CAlCAhrC,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAE7DgV,EAAOiqB,IAAI,CAAG,WACoB,SAAnBjqB,EAAOjR,OAAO,EACrBiR,CAAAA,EAAOjR,OAAO,CAAGglB,EAAMhlB,OAAO,EAGlCiR,EAAOs/I,WAAW,CAAGt/I,KAAsB/Y,IAAtB+Y,EAAO++I,UAAU,EAAkB/+I,EAAO++I,UAAU,GAAK,GAAI,EAAEpsI,QAAQ,GACvF3S,EAAOg/I,YAAY,EACpBh/I,CAAAA,EAAOg/I,YAAY,CAAG,KAE1Bh/I,EAAOgrC,KAAK,CAAG,GAEXhrC,EAAOs/I,WAAW,CAClBJ,KAEAl/I,EAAOs/I,WAAW,CAAG,GACrBV,EAAkBW,kBAAkB,CAACv/I,EAAOjR,OAAO,CAAEiR,EAAOg/I,YAAY,CAAE,SAAUD,CAAU,EACtFA,GACA/+I,EAAOs/I,WAAW,CAAG,GACrBJ,KAEAl/I,EAAOs/I,WAAW,CAAG,EAE7B,GAER,EAUAt/I,EAAOJ,GAAG,CAAC,WAAY,WACdI,EAAOw/I,WAAW,EACnBZ,EAAkBjlC,WAAW,CAAC35G,EAAOjR,OAAO,CAEpD,GAEAiR,EAAOiqB,IAAI,EACf,CACJ,CACJ,EACH,C,2BErED3iC,E,OAAAA,CAAUA,CAACy0B,OAAO,CAAC,oBAAqB,CACpC,QACA,WACA,kBACA,KACA,aACA,uBACA,SAAU3sB,CAAK,CAAE9F,CAAQ,CAAEwP,CAAe,CAAEsC,CAAE,CAAE7L,CAAU,CAAEJ,CAAoB,EAC5E,IAAIswJ,EAAe,CAAC,EAqCpB,SAASV,EAAWhwJ,CAAO,MAnCNwF,EAEb6tB,EAKAz6B,EA6BJ,OApCiB4M,EAoCEuE,EAAgByC,YAAY,CAAG,sBAAwBxM,EAnC1EK,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAC7B2tB,EAAchnB,EAAGuI,KAAK,GAa1Bhc,CARIA,EAAU06B,EAJMhyB,GAAG,CAACkE,EAAK,CACzB+tB,QAASF,EAAYz6B,OAAO,CAC5BmI,OALkBA,KAAAA,CAMtB,GACsBrM,IAAI,CACtB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOA,CACX,IAEIC,YAAY,CAAGJ,EAChBz6B,CAqBX,CAiCA,MAAO,CACHw3J,oBAAqB,SAAUlqJ,CAAE,CAAEjG,CAAS,EACxC,IAAIc,EAAS,CAAEmF,GAAIA,CAAG,EAMtB,OAJI2jB,SAAS5pB,EAAW,KACpBc,CAAAA,EAAOd,SAAS,CAAGA,CAAQ,EAGxBG,EAAqBoB,mBAAmB,CAACT,EACpD,EACAivJ,WAAYA,EAEZQ,mBAAoB,SAAUtqJ,CAAE,CAAE+I,CAAQ,CAAEvV,CAAQ,EAChD,GAAIwM,KAAOhO,IAAPgO,GAAoBA,KAAAA,EACpB,OAAOxM,EAAS,IAEpBs2J,EAAW9pJ,GAAIxR,IAAI,CAAC,SAAU0M,CAAQ,EAC9BA,CAAkB,IAAlBA,EAAShI,IAAI,CACbM,EAAS,KAETA,EAAS,IACTi3J,SApDPA,EAAe3wJ,CAAO,CAAEiP,CAAQ,CAAEvV,CAAQ,EAC/C,IAAIk3J,EAAiBr2J,EAAS,WAC1By1J,EAAWhwJ,GAAStL,IAAI,CAAC,SAAU0M,CAAQ,EACvCyvJ,CAgBZ,SAAuB7wJ,CAAO,CAAE4wJ,CAAc,EAC1C,IAAIE,EAAcJ,CAAY,CAAC1wJ,EAAQ,CACvC,GAAI8wJ,KAAgB54J,IAAhB44J,EAA2B,CAC3B,IAAIl5J,EAAQk5J,EAAY94J,OAAO,CAAC44J,EAClB,MAAVh5J,GACAk5J,EAAY72J,MAAM,CAACrC,GAGvB2C,EAASiV,MAAM,CAACohJ,EACpB,CACJ,GA1B0B5wJ,EAAS4wJ,GACnBxvJ,EAAShI,IAAI,CACbM,EAAS,IAETi3J,EAAe3wJ,EAASiP,EAAUvV,EAE1C,EACJ,EAAGuV,EAE2B/W,MAAAA,IAA1Bw4J,CAAY,CAAC1wJ,EAAQ,EACrB0wJ,CAAAA,CAAY,CAAC1wJ,EAAQ,CAAG,EAAE,EAG9B0wJ,CAAY,CAAC1wJ,EAAQ,CAAChG,IAAI,CAAC42J,EAC/B,EAmC+B1qJ,EAAI+I,EAAUvV,GAErC,EACJ,EACAkxH,YAAa,SAAU5qH,CAAO,EAC1B,IAAI8wJ,EAAcJ,CAAY,CAAC1wJ,EAAQ,CACvC,GAAI8wJ,KAAgB54J,IAAhB44J,EAA2B,CAC3B,IAAK,IAAI14J,EAAI,EAAGA,EAAI04J,EAAYv7J,MAAM,CAAE6C,IACpCmC,EAASiV,MAAM,CAACshJ,CAAW,CAAC14J,EAAE,CAGlC04J,CAAAA,EAAYv7J,MAAM,CAAG,EACrB,OAAOm7J,CAAY,CAAC1wJ,EAAQ,CAEpC,EACA+wJ,4BAA6B,SAAU/wJ,CAAO,EAC1C,OAAO0wJ,CAAY,CAAC1wJ,EAAQ,CAEpC,CACJ,EACH,C,kBCtHD,SAASgxJ,EAAiBz2J,CAAQ,EAC9B,MAAO,CACHyP,SAAU,IACVC,MAAO,CACH49B,QAAS,IACTopH,MAAO,GACX,EACArzJ,SAAU,oFACVuhB,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAChCA,EAAK8wB,QAAQ,CAAC,UAAW,IACrBnqB,EAAS,KACL0P,EAAMiwI,YAAY,CAAGvwH,CACzB,EAAG1f,EAAMgnJ,KAAK,EAAI,EACtB,EACJ,CACJ,CACJ,CAnBA14J,E,OAAAA,CAAUA,CAAC0T,SAAS,CAAC,mBAAoB+kJ,GACzCA,EAAiBv4J,OAAO,CAAG,CAAC,WAAW,E,mDCDvCF,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,eAAgB,CAC/B,UACA,SAAUngB,CAAO,EAIb,IAAIqkJ,EAAUx7J,SAAS80G,aAAa,CAAC,OAErC90G,SAAS60G,eAAe,CAACI,WAAW,CAACumD,GACrCA,EAAQpxG,KAAK,CAACqxG,uBAAuB,CAAG,QACxC,IAAIC,EAAgB,qBAAsBz2J,QAAUA,UAAAA,OAAOygF,gBAAgB,CAAC81E,EAAQ,CAAC,6BAA6B,CAK9GG,EAAa,CACbC,mBAAoB,aACpBC,UAAW,KACXC,cAAe,KACfC,uBAAwB,KACxBC,YAAa,KAObC,aAAc,SAAUj7J,CAAI,EAIxB,IAHA,IAAIk7J,EAAY,GAGTl7J,IAAShB,SAASg1G,IAAI,GACzBh0G,EAAOA,EAAK0hC,UAAU,CACtBw5H,EAAYxyI,QAAQjoB,OAAO,CAACT,GAAM0kC,QAAQ,CAAC,IAAI,CAACk2H,kBAAkB,EAClE,IAAI,CAACC,SAAS,CAAG76J,GAGbk7J,KAKR,MAAOA,EAAAA,GAAY,IAAI,CAACL,SAAS,EAQrCM,UAAW,SAAU32E,CAAE,EACnB,OAAOA,EAAG42E,YAAY,CAAG52E,EAAGa,YAAY,EAQ5Cg2E,gBAAiB,SAAU72E,CAAE,CAAEr9C,CAAG,EAC9B,IAAIm0H,EAAe92E,EAAGt/C,SAAS,CAC3Bk2H,EAAe52E,EAAG42E,YAAY,CAC9B/1E,EAAeb,EAAGa,YAAY,CAIlC,GAAIi2E,IAAAA,EAAoB,CACpBn0H,EAAI9nC,cAAc,GAClBmlF,EAAGt/C,SAAS,CAAG,EAEf,MACJ,CARgBo2H,EAAe,EAW3B92E,EAAGt/C,SAAS,CAAG,EAVAk2H,EAAe/1E,EAAei2E,EAAe,GAY5D92E,CAAAA,EAAGt/C,SAAS,CAAGk2H,EAAe/1E,EAAe,EAErD,EAQAk2E,aAAc,SAAUp0H,CAAG,EAEvB,IAAI0zH,EAAY,IAAI,CAACI,YAAY,CAAC9zH,EAAIhpC,MAAM,EAG5C,GAAI08J,GAAa,IAAI,CAACM,SAAS,CAACN,GAAY,CACxC,IAAI,CAACQ,eAAe,CAACR,EAAW1zH,GAChC,MACJ,CAGI0zH,GAAa,CAAC,IAAI,CAACE,sBAAsB,GACzC,IAAI,CAACA,sBAAsB,CAAGF,EAC9B,IAAI,CAACE,sBAAsB,CAAC97J,gBAAgB,CAAC,YAAa,IAAI,CAACu8J,WAAW,CAAE,IAEpF,EAMAA,YAAa,SAAUr0H,CAAG,EACtBA,EAAI9nC,cAAc,EACtB,EAKAqpJ,WAAY,WACJ,IAAI,CAACqS,sBAAsB,GAC3B,IAAI,CAACA,sBAAsB,CAAC37J,mBAAmB,CAAC,YAAa,IAAI,CAACo8J,WAAW,CAAE,IAC/E,IAAI,CAACT,sBAAsB,CAAG,KAEtC,EAKAU,OAAQ,WACJ,IAAI,CAACX,aAAa,CAAG,IAAI,CAACS,YAAY,CAACv/J,IAAI,CAAC,IAAI,EAChD,IAAI,CAACg/J,WAAW,CAAG,IAAI,CAACtS,UAAU,CAAC1sJ,IAAI,CAAC,IAAI,EAC5Cma,EAAQlX,gBAAgB,CAAC,aAAc,IAAI,CAAC67J,aAAa,CAAE,IAC3D3kJ,EAAQlX,gBAAgB,CAAC,WAAY,IAAI,CAAC+7J,WAAW,CAAE,GAC3D,EAKAU,QAAS,WACLvlJ,EAAQ/W,mBAAmB,CAAC,aAAc,IAAI,CAAC07J,aAAa,CAAE,IAC9D3kJ,EAAQ/W,mBAAmB,CAAC,WAAY,IAAI,CAAC47J,WAAW,CAAE,GAC9D,CACJ,EAGA,MAAO,CACHW,QAAS,GAETF,OAAQ,WACAf,GAAiB,CAAC,IAAI,CAACiB,OAAO,GAC9BhB,EAAWc,MAAM,GACjB,IAAI,CAACE,OAAO,CAAG,GAEvB,EAEAD,QAAS,WACDhB,GAAiB,CAAC,IAAI,CAACiB,OAAO,GAC9BhB,EAAWe,OAAO,GAClB,IAAI,CAACC,OAAO,CAAG,GAEvB,CACJ,CACJ,EACH,E,kFC7JD95J,EAAAA,CAAUA,CAACgF,SAAS,CAChB,aACA03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAcqd,EAAAA,CAAUA,CAAE,CAAC,YAAa,UAAW,WAAY,YAAa,WAAY,WAAY,OAAQ,kBAAmB,YAAa,eAAgB,SAAU,gBAAgB,GCD1L,IAAMC,EAA6B,CAC/B/0J,SAAU,CACN8B,YAAa,IACbG,SAAU,IACVL,MAAO,IACPg0G,QAAS,IACT/zG,UAAW,IACXo0G,gBAAiB,IACjBD,WAAY,KACZF,cAAe,KACfk/C,cAAe,KACfC,KAAM,IACV,EACA70J,SClBW,4RDmBXC,WAAYm1G,EAAAA,CAChB,CAEAA,CAAAA,EAAAA,CAAsBA,CAACv6G,OAAO,CAAG,CAAC,aAAc,SAAS,CACzDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,mBAAoBg1J,GETzCh6J,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,cAAe,CAChC,KACA,WACA,UACA,kBACA,eACA,QACA,kBACA,mBACA,SAAUI,CAAE,CAAE9R,CAAQ,CAAEsS,CAAO,CAAE9C,CAAe,CAAE2oJ,CAAY,CAAE1lJ,CAAK,CAAEnb,CAAe,CAAE8gK,CAAgB,EAOpG,IAAIC,EAAe,CAAC,EAMpB,OAHIA,EAAaxqD,WAAW,CAAGhpF,QAAQjoB,OAAO,CAACzB,SAAS60G,eAAe,EAGhE,CACHvgG,SAAU,IACVukI,WAAY,GACZtkI,MAAO,IACPrM,SAAU,SAAUqM,CAAK,CAAE+a,CAAK,QAC5B,WAAQA,EAAM6tI,UAAU,CCzCzB,46BCAA,o+BF+CH,EAEAh1J,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAO6hJ,YAAY,CAAG,GACtB7hJ,EAAOgmG,QAAQ,CAAG,KAClBhmG,EAAO0hJ,gBAAgB,CAAGA,EAC1B1hJ,EAAO8hJ,WAAW,CAAG,KACrB9hJ,EAAO3R,WAAW,CAAGC,EAAAA,CACrB,CAOA0R,EAAOy+E,UAAU,CAAG,WAChB78E,EAAO6R,QAAQ,CAAC,aAAc,SAAUolF,CAAO,EAC3C74F,EAAO++G,WAAW,CAAGlmB,CACzB,GACAj3F,EAAO6R,QAAQ,CAAC,YAAa,SAAUolF,CAAO,EAC1C74F,EAAO+hJ,UAAU,CAAGlpD,CACxB,GAEA74F,EAAOgiJ,WAAW,CAAGpgJ,EAAOggJ,UAAU,CACtC5hJ,EAAOiiJ,oBAAoB,CAAGrgJ,SAAAA,EAAOqgJ,oBAAoB,CACzDjiJ,EAAOkiJ,QAAQ,CAAG,CAAC,EACnBliJ,EAAOmiJ,eAAe,CAAGvgJ,WAAAA,EAAOggJ,UAAU,CAAgB,CAAEQ,GAAI,IAAKC,IAAK,GAAI,EAAI,CAAED,GAAI,IAAKC,IAAK,GAAI,EACtGriJ,EAAOL,yBAAyB,CAAG7G,EAAgB6G,yBAAyB,CAC5EK,EAAOsiJ,YAAY,CAAG,sBAAwBtiJ,EAAOkmB,GAAG,CACxDlmB,EAAOuiJ,YAAY,CAAGviJ,EAAOsiJ,YAAY,CACzCtiJ,EAAOwiJ,cAAc,CAAG,CACpBC,YAAa,SAAUt5I,CAAQ,EAC3BnJ,EAAO++G,WAAW,CAAG51G,CACzB,EACAu5I,WAAY,SAAU1kE,CAAI,EACtBh+E,EAAO4lC,SAAS,CAAGo4C,CACvB,EACA2kE,kBAAmB,SAAUC,CAAa,EAClCA,EACA5iJ,EAAO6iJ,eAAe,CAAC,EAAE,CAACx9J,YAAY,CAAC,mBAAoBu9J,GAE3D5iJ,EAAO6iJ,eAAe,CAAC,EAAE,CAAC98J,eAAe,CAAC,mBAElD,EACA+8J,iBAAkB,SAAUC,CAAU,EAClC/iJ,EAAOuiJ,YAAY,CAAGQ,GAA0B/iJ,EAAOsiJ,YAAY,CAE3E,CACJ,EAEAtiJ,EAAOgjJ,eAAe,CAAG,WACM,OAAvBhjJ,EAAO8hJ,WAAW,GAClB9hJ,EAAO0hJ,gBAAgB,CAACh4B,UAAU,CAAC1pH,EAAO8hJ,WAAW,EACrD9hJ,EAAO8hJ,WAAW,CAAG,KAE7B,EAKA9hJ,EAAOo8H,UAAU,CAAG,WAChBp8H,EAAOijJ,YAAY,CAAG90I,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,iBAC9DlnB,EAAOkjJ,QAAQ,CAAG9lE,EAClBp9E,EAAOmjJ,wBAAwB,CAAGh1I,QAAQjoB,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,EAChHpO,EAAO6iJ,eAAe,CAAG10I,QAAQjoB,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,eAAe,CAAC,EAAE,CAClG,EAEApO,EAAOojJ,2BAA2B,CAAG,SAAU/2H,CAAC,CAAExhB,CAAO,CAAE3kB,CAAO,EAC9C,qBAAZ2kB,IACK3kB,EAAQ+O,EAAE,EACX/O,CAAAA,EAAQ+O,EAAE,CAAG,sBAAwBovC,KAAKmiC,MAAM,EAAC,EAErDxmE,EAAOwiJ,cAAc,CAACG,iBAAiB,CAACz8J,EAAQ+O,EAAE,EAE1D,EAKA+K,EAAOqjJ,mBAAmB,CAAG,WAEzBrjJ,EAAOsjJ,aAAa,CAAGtjJ,EAAOJ,GAAG,CAAC,YAAaI,EAAOY,SAAS,EAE/D6gJ,EAAaP,MAAM,GAGdlhJ,EAAOujJ,aAAa,EACrB5B,EAAaxqD,WAAW,CAAC,EAAE,CAACzyG,gBAAgB,CAAC,UAAWsb,EAAOwjJ,QAAQ,CAE/E,EAKAxjJ,EAAOyjJ,qBAAqB,CAAG,WACvBzjJ,EAAOsjJ,aAAa,EACpBtjJ,EAAOsjJ,aAAa,GAGxB7B,EAAaN,OAAO,GAEfnhJ,EAAOujJ,aAAa,EACrB5B,EAAaxqD,WAAW,CAAC,EAAE,CAACtyG,mBAAmB,CAAC,UAAWmb,EAAOwjJ,QAAQ,CAElF,EAKAxjJ,EAAOqsC,SAAS,CAAG,SAAUq3G,CAAW,EACpC,IAAIC,EAAkB3jJ,EAAO6iJ,eAAe,CAAC,EAAE,CAAC3sI,aAAa,CAAC,yBAC1D0tI,EAAmB5jJ,EAAO6iJ,eAAe,CAAC,EAAE,CAAC3sI,aAAa,CAAC,mCAG/DlW,CAAAA,EAAO6jJ,aAAa,CAAGD,EAAiB1tI,aAAa,CAAC,cAGzB,OAAzBlW,EAAO6jJ,aAAa,EACpB7jJ,CAAAA,EAAO6jJ,aAAa,CAAGjjK,EAAgBkjK,uBAAuB,CAACF,EAAgB,EAItD,OAAzB5jJ,EAAO6jJ,aAAa,EAAaF,OAAAA,GACjC3jJ,CAAAA,EAAO6jJ,aAAa,CAAGF,EAAgBztI,aAAa,CAAC,+BAA8B,EAI1D,OAAzBlW,EAAO6jJ,aAAa,EACpB7jJ,CAAAA,EAAO6jJ,aAAa,CAAG7jJ,EAAO6iJ,eAAe,CAAC,EAAE,EAIpD7iJ,EAAO6jJ,aAAa,CAACngK,KAAK,GAGtBggK,CAAAA,CAAgB,IAAhBA,GAAyB1jJ,EAAO0jJ,WAAW,EAAIA,KAAgBz8J,IAAhBy8J,CAAwB,GACvE/B,EAAaxqD,WAAW,CAACzpF,QAAQ,CAAC,eAKlC1N,EAAO6jJ,aAAa,EAAI7jJ,EAAO6iJ,eAAe,CAAC,EAAE,EAAI7iJ,WAAAA,EAAOgiJ,WAAW,EACvEhiJ,CAAAA,EAAOmjJ,wBAAwB,CAAC,EAAE,CAACx4H,SAAS,CAAG,GAG/C3qB,EAAO+jJ,oBAAoB,EAC3B/jJ,CAAAA,EAAOmjJ,wBAAwB,CAAC,EAAE,CAACx4H,SAAS,CAAG,EAEvD,EAKA3qB,EAAOwjJ,QAAQ,CAAG,SAAUn3H,CAAC,EAEP,KAAdA,EAAEtoC,OAAO,GACTsoC,EAAEroC,eAAe,GACjBgc,EAAOY,SAAS,GAExB,EAMAZ,EAAOgkJ,YAAY,CAAG,WAClB,OAAOpoJ,EAAQ08F,UAAU,CAAGqpD,EAAaxqD,WAAW,CAAC,EAAE,CAACxZ,WAAW,EAUvE39E,EAAOikJ,aAAa,CAAG,CAInB/4F,KAAM,WACElrD,EAAOgkJ,YAAY,IACnBrC,EAAaxqD,WAAW,CAACzpF,QAAQ,CAAC,yBAItCi0I,EAAaxqD,WAAW,CAACzpF,QAAQ,CAAC,iBAE9B1N,EAAOgiJ,WAAW,EAClBL,EAAaxqD,WAAW,CAACzpF,QAAQ,CAAC1N,EAAOgiJ,WAAW,CAE5D,EAKAhrG,KAAM,WACFh3C,EAAOkjJ,QAAQ,CAACz1I,WAAW,CAAC,iBAG5Bk0I,EAAaxqD,WAAW,CAAC1pF,WAAW,CAAC,iBAEjCzN,EAAOgiJ,WAAW,EAClBL,EAAaxqD,WAAW,CAAC1pF,WAAW,CAACzN,EAAOgiJ,WAAW,EAG3DL,EAAaxqD,WAAW,CAAC1pF,WAAW,CAAC,wBACzC,CACJ,EAMAzN,EAAOkkJ,SAAS,CAAG,CACfh5F,KAAM,WAEF5hE,EAASiV,MAAM,CAACyB,EAAOkiJ,QAAQ,CAACiC,IAAI,EACpC76J,EAASiV,MAAM,CAACyB,EAAOkiJ,QAAQ,CAACkC,SAAS,EACzC96J,EAASiV,MAAM,CAACyB,EAAOkiJ,QAAQ,CAACmC,UAAU,EAGtCrkJ,EAAOskJ,MAAM,EACbtkJ,EAAOskJ,MAAM,GAIjBtkJ,EAAOikJ,aAAa,CAAC/4F,IAAI,GAEzBlrD,EAAOqjJ,mBAAmB,EAC9B,EAEArsG,KAAM,WAEF1tD,EAASiV,MAAM,CAACyB,EAAOkiJ,QAAQ,CAACiC,IAAI,EACpC76J,EAASiV,MAAM,CAACyB,EAAOkiJ,QAAQ,CAACkC,SAAS,EACzC96J,EAASiV,MAAM,CAACyB,EAAOkiJ,QAAQ,CAACmC,UAAU,EAE1CrkJ,EAAOyjJ,qBAAqB,EAChC,CACJ,EAMAzjJ,EAAOukJ,MAAM,CAAG,CACZr5F,KAAM,WACF,IAAIxnD,EAAWtI,EAAGuI,KAAK,GAmBvB,OAjBA3D,EAAO8hJ,WAAW,CAAG9hJ,EAAO0hJ,gBAAgB,CAACz4B,OAAO,CAACjpH,EAAOmjJ,wBAAwB,CAAC,EAAE,CAAEnjJ,EAAOmpH,cAAc,EAE9GnpH,EAAOkjJ,QAAQ,CAACx1I,QAAQ,CAAC,iBAEzB1N,EAAOkiJ,QAAQ,CAACiC,IAAI,CAAG76J,EAAS,WAC5B0W,EAAOkiJ,QAAQ,CAACkC,SAAS,CAAG96J,EAAS,WACjC0W,EAAOkjJ,QAAQ,CAACx1I,QAAQ,CAAC,QACzB1N,EAAO6iJ,eAAe,CAACn1I,QAAQ,CAAC,cAEhC1N,EAAOkiJ,QAAQ,CAACmC,UAAU,CAAG/6J,EAAS,WAElC0W,EAAO6iJ,eAAe,CAACn1I,QAAQ,CAAC,iBAChChK,EAAS3b,OAAO,EACpB,EAAGiY,EAAOmiJ,eAAe,CAACC,EAAE,CAChC,EAAG,GACP,EAAG,IAEI1+I,EAAS/b,OAAO,EAG3BqvD,KAAM,WACF,IAAItzC,EAAWtI,EAAGuI,KAAK,GAgBvB,OAfA3D,EAAO6iJ,eAAe,CAACp1I,WAAW,CAAC,iBACnCzN,EAAO6iJ,eAAe,CAACp1I,WAAW,CAAC,cAEnCzN,EAAOkiJ,QAAQ,CAACiC,IAAI,CAAG76J,EAAS,WAC5B0W,EAAOkiJ,QAAQ,CAACkC,SAAS,CAAG96J,EAAS,WACjC0W,EAAO6iJ,eAAe,CAACn1I,QAAQ,CAAC,eAEhC1N,EAAOkiJ,QAAQ,CAACmC,UAAU,CAAG/6J,EAAS,KAClC0W,EAAOkjJ,QAAQ,CAACz1I,WAAW,CAAC,QAE5B/J,EAAS3b,OAAO,EACpB,EAAGiY,EAAOmiJ,eAAe,CAACE,GAAG,CACjC,EAAG,GACP,EAAG,IAEI3+I,EAAS/b,OAAO,CAE/B,EAMAqY,EAAOwkJ,UAAU,CAAG,CAChBt5F,KAAM,WACElrD,EAAO6lC,SAAS,EAChB7lC,EAAOqsC,SAAS,GAIhBrsC,EAAOykJ,WAAW,EAClBzkJ,EAAOykJ,WAAW,EAE1B,EAEAztG,KAAM,WAEEh3C,EAAO5e,OAAO,EACd4e,EAAO5e,OAAO,GAIlB4e,EAAOikJ,aAAa,CAACjtG,IAAI,GACzBh3C,EAAO0kJ,cAAc,CAACrhK,KAAK,CAAC2c,EAAO2kJ,mBAAmB,EACtD3kJ,EAAO6iJ,eAAe,CAACp1I,WAAW,CAAC,eAEI,YAAnC,OAAOzN,EAAO4kJ,gBAAgB,EAC9B5kJ,EAAO4kJ,gBAAgB,EAE/B,CACJ,EAKA5kJ,EAAO6kJ,SAAS,CAAG,WACf,OAAOv7J,EAAS,WACZ0W,EAAOkkJ,SAAS,CAACh5F,IAAI,GACrBlrD,EAAOukJ,MAAM,CAACr5F,IAAI,GAAGznE,IAAI,CAACuc,EAAOwkJ,UAAU,CAACt5F,IAAI,CACpD,EACJ,EAKAlrD,EAAOY,SAAS,CAAG,WAKf,OAJAZ,EAAO6hJ,YAAY,CAAG,GACtB7hJ,EAAOgjJ,eAAe,GAEtBhjJ,EAAOkkJ,SAAS,CAACltG,IAAI,GACdh3C,EAAOukJ,MAAM,CAACvtG,IAAI,GAAGvzD,IAAI,CAACuc,EAAOwkJ,UAAU,CAACxtG,IAAI,CAC3D,EAEAh3C,EAAOJ,GAAG,CAAC,WAAY,WACnBI,EAAOgjJ,eAAe,GAEjBhjJ,EAAO6hJ,YAAY,EACpB7hJ,EAAOY,SAAS,EAExB,GAKAZ,EAAOiqB,IAAI,CAAG,WACVjqB,EAAOy+E,UAAU,GACjBz+E,EAAOo8H,UAAU,GACjBp8H,EAAOwiJ,cAAc,CAACM,gBAAgB,CAAC9iJ,EAAO8kJ,WAAW,EACzD9kJ,EAAOJ,GAAG,CAAC,6BAA8BI,EAAOojJ,2BAA2B,EAC3EpjJ,EAAO+kJ,iBAAiB,CAACh9J,OAAO,CAACiY,EACrC,EAEAA,EAAOiqB,IAAI,EACf,EACH,CAET,EACH,C,+FGjaM,OAAM+6H,EACTt9J,YAAY8R,CAAU,CAAE,CACpB,IAAI,CAAC00H,WAAW,CAAG10H,EACnB,IAAI,CAACyrJ,eAAe,CAAG,EAAE,CACzB,IAAI,CAACh7H,IAAI,EACb,CAEAA,MAAO,CACH,IAAI,CAACikG,WAAW,CAACtuH,GAAG,CAAC,sBAAuB,KAGxC,IAAK,IAAMslJ,KAFXC,EAAAA,CAAcA,CAACC,KAAK,GAEO,IAAI,CAACH,eAAe,EACdh+J,KAAAA,IAAzBi+J,EAAa7sG,OAAO,EACpB6sG,EAAa7sG,OAAO,EAI5B,KAAI,CAAC4sG,eAAe,CAAG,EAAE,EAEjC,CAEAI,iBAAiBH,CAAY,CAAE,CAC3B,IAAI,CAACD,eAAe,CAACl8J,IAAI,CAACm8J,EAC9B,CAEAI,oBAAoBC,CAAQ,CAAE,CAC1B,IAAM5+J,EAAQ,IAAI,CAACs+J,eAAe,CAACh8I,SAAS,CAAC,GAAYu8I,EAAOxsJ,KAAK,CAACysJ,OAAO,GAAKF,EAEpE,MAAV5+J,GACA,IAAI,CAACs+J,eAAe,CAACj8J,MAAM,CAACrC,EAAO,EAE3C,CACJ,CAEAq+J,EAAyBx9J,OAAO,CAAG,CAAC,aAAa,CACjDF,EAAAA,CAAUA,CAACC,OAAO,CAAC,2BAA4By9J,ECnCxC,OAAMU,EACTh+J,YAAY08B,CAAgB,CAAE,CAC1B,IAAI,CAACuhI,iBAAiB,CAAGvhI,EACzB,IAAI,CAAC6F,IAAI,EACb,CAEAA,MAAO,CACH,IAAI,CAAC27H,qBAAqB,CAAGT,EAAAA,CAAcA,CAACU,gBAAgB,CAAC7lI,SAAS,CAAC,IACnE,OAAQC,GACJ,KAAK6lI,EAAAA,CAAWA,CAACC,IAAI,CACjB,IAAI,CAACJ,iBAAiB,CAACp7J,aAAa,GACpC,KAEJ,MAAKu7J,EAAAA,CAAWA,CAACE,MAAM,CACnB,IAAI,CAACL,iBAAiB,CAAC96J,cAAc,EAE7C,CACJ,EACJ,CACJ,CAEA66J,EAAuBl+J,OAAO,CAAG,CAAC,mBAAmB,CACrDF,EAAAA,CAAUA,CAACC,OAAO,CAAC,yBAA0Bm+J,G,2BCtB7Cp+J,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,cAAe,CAChC,aACA,WACA,SAAUxB,CAAU,CAAEoe,CAAQ,EAC1B,MAAO,CACH7e,SAAU,IACVC,MAAO,GAEPpM,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAOy+E,UAAU,CAAG,WAChBz+E,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,EAIjEgV,EAAOimJ,mBAAmB,CAAG,WAGzB,IAAMC,EAAgBtuI,EAFT,mBAAqB5X,EAAOylJ,OAAO,CAAG,YAAczlJ,EAAON,WAAW,CAAG,qBAEjDM,GAErCA,EAAOmmJ,cAAc,CAAC76H,MAAM,CAAC46H,EACjC,EAEAlmJ,EAAOiqB,IAAI,CAAG,WACVjqB,EAAOy+E,UAAU,GACjBz+E,EAAOimJ,mBAAmB,EAC9B,EAEAjmJ,EAAOiqB,IAAI,EACf,EACH,CAED/b,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC7tB,EAAQu5B,EAAE,CAAC,WAAY,WACnBzmB,EAAMsG,QAAQ,EAClB,EACJ,CACJ,CACJ,EACH,E,kBClCDhY,EAAAA,CAAUA,CAACqI,QAAQ,CAAC,cAAe,WAC/B,IAAI,CAACw5H,cAAc,CAAG,EAAE,CACxB,IAAI,CAACp5H,IAAI,CAAG,YACR,MAAO,CACHo5H,eAAgB,IAAI,CAACA,cAAc,CAE3C,GAAE1nI,IAAI,CAAC,IAAI,CACf,GAQA6F,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,QAAS,CACxB,aACA,KACA,WACA,kBACA,UACA,cACA,2BACA,yBACA,SAAUviB,CAAU,CAAE4B,CAAE,CAAEwc,CAAQ,CAAE9e,CAAe,CAAEhY,CAAO,CAAEslK,CAAW,CAAEC,CAAwB,EAO/F,IAAI1E,EAAe,CAAC,EAMpB,OAHIA,EAAa2E,eAAe,CAAGn4I,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,iBAGpE,CACHijG,iBAAkB,CACdC,MAAOtxH,EAAgB6G,yBAAyB,CAAG,0DACnD4mJ,iBAAkBztJ,EAAgB6G,yBAAyB,CAAG,sEAClE,EAQAkE,OAAQ,SAAUnE,CAAW,CAAEkE,CAAU,CAAEwG,CAAO,EAC9C,IAAIrL,EAAarU,OAAOkhB,MAAM,CAACpS,EAAWwF,IAAI,CAAC,IAAO4E,GAAc,CAAC,GAUrE,OARA7E,EAAW3d,OAAO,CAAG,WACiB,YAA9B,OAAOwiB,EAAWxiB,OAAO,EACzBwiB,EAAWxiB,OAAO,GAGtB2d,EAAWO,QAAQ,EACvB,EAEO,IAAI,CAACC,QAAQ,CAChB7U,OAAOkhB,MAAM,CACT,CACI5S,MAAO+F,EACPW,YAAaA,CACjB,EACA0K,GAGZ,EAKA7K,SAAU,SAAU+/C,CAAI,MAAEknG,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CAChBnuH,EAAO,IAAI,CACXouH,EAASnnG,EAAKtmD,KAAK,EAAIQ,EAAWwF,IAAI,CAAC,GAEf,MAA1BsgD,EAAKonG,gBAAgB,EACrBD,CAAAA,EAAO9B,mBAAmB,CAAGlgK,SAASijH,aAAa,EAGvD++C,EAAO1B,iBAAiB,CAAG3pJ,EAAGuI,KAAK,GACnC8iJ,EAAO/C,WAAW,CAAGpkG,KAAoBr4D,IAApBq4D,EAAK9/C,UAAU,EAAwB8/C,EAAK9/C,UAAU,CAC3EinJ,EAAO5gH,SAAS,CAAGyZ,KAAmBr4D,IAAnBq4D,EAAKzZ,SAAS,EAAwByZ,EAAKzZ,SAAS,CACvE4gH,EAAOlD,aAAa,CAAGjkG,EAAK7/C,YAAY,EAAI,GAC5CgnJ,EAAO1C,oBAAoB,CAAGzkG,EAAK+qE,kBAAkB,EAAI,GACzDo8B,EAAO3B,WAAW,CAAGxlG,EAAKqnG,UAAU,CACpCF,EAAOt9B,cAAc,CAAGi9B,EAAYj9B,cAAc,CAClDs9B,EAAOhB,OAAO,CAAGnmG,EAAKsnG,QAAQ,EAAI9lK,EAAQgqB,IAAI,GAC9C27I,EAAO/mJ,WAAW,CAAG4/C,EAAK5/C,WAAW,CACrC+mJ,EAAOt1D,SAAS,CAAGA,EAAAA,CACnBs1D,CAAAA,EAAO/B,cAAc,CAAG,IAAImC,EAAAA,CAAcA,CACtC,CACIt5J,KAAMC,EAAAA,CAAUA,CAACC,KAAK,CACtBC,aAAc,CAAC,EACfo5J,MAAO,EAAE,EAEb3B,EAAAA,CAAcA,EAGlB,IAAM4B,EAAY,CACd/tJ,MAAOytJ,EACPO,OAAQ3uH,EAAK4uH,YAAY,CAACR,GAC1BS,gBAAiBV,CAAW,IAAXA,EACjB3B,UAAW,WACP,IAAI,CAACsC,oBAAoB,CAAGhC,EAAAA,CAAcA,CAACU,gBAAgB,CAAC7lI,SAAS,CAAC,IAC9DC,IAAU6lI,EAAAA,CAAWA,CAACsB,OAAO,EAC7B,IAAI,CAAC/uG,OAAO,EAEpB,GAEAhgB,EAAKgvH,aAAa,CAACZ,EAAO1B,iBAAiB,CAACp9J,OAAO,CAAE,YACzD,EACAiZ,UAAW,WACiC,OAApCukJ,EAAAA,CAAcA,CAACmC,OAAO,CAAC,IAAI,CAACryJ,EAAE,GAC9B,IAAI,CAACojD,OAAO,GAGhBhgB,EAAKgvH,aAAa,CAACZ,EAAO1B,iBAAiB,CAACp9J,OAAO,CAAE,YACzD,EACA0kD,UAAW,SAAUq3G,CAAW,EAC5BrrH,EAAKgvH,aAAa,CAACZ,EAAO1B,iBAAiB,CAACp9J,OAAO,CAAE,YAAa+7J,EACtE,EACArrG,QAAS,WAqBL,IAAK,IAAIn0D,KApBT,IAAI,CAAC8U,KAAK,CAAC0rJ,cAAc,CAACrsG,OAAO,GACjCguG,EAAyBf,mBAAmB,CAAC,IAAI,CAACtsJ,KAAK,CAACysJ,OAAO,EAG/D,IAAI,CAACzsJ,KAAK,CAAC2rJ,mBAAmB,CAAG,KAG7B,IAAI,CAACuC,eAAe,EACpB,IAAI,CAACluJ,KAAK,CAACsG,QAAQ,GAIWrY,KAAAA,IAA9B,IAAI,CAACkgK,oBAAoB,EACzB,IAAI,CAACA,oBAAoB,CAACxxC,WAAW,GAGzC,IAAI,CAACqxC,MAAM,CAAC18J,MAAM,GAClB+tC,EAAKkvH,WAAW,CAAC,IAAI,CAACvuJ,KAAK,CAACysJ,OAAO,EAGnB,IAAI,CACEx+J,KAAAA,IAAd,IAAI,CAAC/C,EAAI,EACT,OAAO,IAAI,CAACA,EAAI,CAIhC,EASA,OAPAmiK,EAAyBhB,gBAAgB,CAAC0B,GAE1C5B,EAAAA,CAAcA,CAACqC,OAAO,CAAC,CACnB15J,SAAU24J,EAAO/B,cAAc,CAC/BH,OAAQ,IAAMwC,EAAUlC,SAAS,EACrC,GAEOkC,CACX,EAEAM,cAAe,SAAU1/J,CAAO,CAAE8/J,CAAW,CAAEnmE,CAAK,EAChD35F,EAAQlE,IAAI,CAAC,SAAU0E,CAAI,EACvBA,CAAI,CAACs/J,EAAY,CAACnmE,EACtB,EACJ,EAGAimE,YAAa,SAAU9B,CAAO,EACtBA,GAEAvC,QADyBh9J,OAAO,CAACzB,SAASyiC,cAAc,CAACu+H,IAChDn7J,MAAM,EAEvB,EAGA28J,aAAc,SAAUjuJ,CAAK,EACzB,GAAIA,EAAM0G,WAAW,CAGjB,OAFA1G,EAAMmtJ,cAAc,CAAGxE,EAAa2E,eAAe,CAE5C1uI,EAAS,iCAAiC5e,EAEjD,OAAM,MAAU,2EAExB,CACJ,CACJ,EACH,C,kBCpMD,SAAS0uJ,EAA6BtsJ,CAAE,EAEpC,IAAI,CAACusJ,wBAAwB,CAwB7B,SAAkCzjK,CAAG,EACjC,OAAO0jK,EAAmBtgI,CAAO,CAACpjC,EAAI,CAC1C,EAzBA,IAAI,CAAC0jK,kBAAkB,CAAGA,EAG1B,IAAIC,EAAa15I,QAAQ25I,QAAQ,CAAC,CAAC,OAAO,EAAEz3J,GAAG,CAAC,cAC5Ci3B,EAAU,CACNygI,eAAgB,2CAChBC,eAAgB,oDACpB,EAGJ,SAASJ,EAAmBK,CAAW,EACnC,IAAIvkJ,EAAWtI,EAAGuI,KAAK,GASvB,OARKskJ,EAGDJ,EAAWD,kBAAkB,CAACK,GAAaxkK,IAAI,CAAC,SAAU0E,CAAI,EAC1Dub,EAAS3b,OAAO,CAACI,EACrB,GAJAub,EAAS1b,MAAM,GAOZ0b,EAAS/b,OAAO,CAM/B,C,SA/BA+/J,EAA6BlgK,OAAO,CAAG,CAAC,KAAK,C,eCiBzC0gK,EAAkB/5I,QAAQpgB,MAAM,CAAC,kBAAmB,CAAC,KAAK,EAmB9D,SAASo6J,EAAqB/sJ,CAAE,CAAEgtJ,CAA4B,CAAEC,CAAc,EAC1E,IAAI,CAACC,UAAU,CAAG,KAClB,IAAI,CAACC,OAAO,CAAG,CACXR,eAAgB,IACpB,EACA,IAAI,CAACS,WAAW,CAAG,KACnB,IAAI,CAACC,SAAS,CAAG,CACbrtJ,GAAIA,EACJgtJ,6BAA8BA,EAC9BM,QAASL,EAAeK,OAAO,EAEnC,IAAI,CAACC,eAAe,CAAG,KACvB,IAAI,CAACC,eAAe,CAAG,kBACvB,IAAI,CAACC,YAAY,CAAG,eACpB,IAAI,CAACC,cAAc,CAAG,gBAC1B,CAjCAZ,EAAgB3gK,OAAO,CAAC,+BAAgCmgK,GACxDQ,EAAgB3gK,OAAO,CAAC,iBCnBxB,WACI,IAAI,CAACmhK,OAAO,CAAGA,EAAAA,EACf,KAAI,CAAC34J,IAAI,CAAG,WACR,OAAO,IAAI,CAAC24J,OAAO,CAE3B,GDeAR,EAAgB56J,MAAM,CAAC,CACnB,uBACA,SAAUy7J,CAAoB,EAC1B,IAAIC,EAAqBt/J,OAAO4D,MAAM,CAAC27J,yBAAyB,GAAK,KAErEF,EAAqBG,oBAAoB,CAAC,CAEtC,OAEAF,EACH,CACL,EACH,EAEDd,EAAgBv4J,QAAQ,CAAC,uBAnCyC,MAG9DjI,aAAc,CACV,IAAI,CAACqI,IAAI,CAAG,CACR,KACA,+BACA,iBACA,CAACqL,EAAIgtJ,EAA8BC,KAC/B,IAAMr9J,EAAuB,IAAIm9J,EAAqB/sJ,EAAIgtJ,EAA8BC,GAExF,OADAr9J,EAAqBm+J,aAAa,CAAC,IAAI,CAACC,YAAY,EAC7Cp+J,CACX,EACH,CACD,IAAI,CAACo+J,YAAY,CAAG,IACxB,CACJ,GAsCAjB,EAAqBllK,SAAS,CAAComK,iBAAiB,CAAG,QAEnDlB,EAAqBllK,SAAS,CAACwI,SAAS,CAAG,SAAUsiD,CAAM,CAAEuR,CAAI,EAC7D,OAAO,IAAI,CAACgqG,SAAS,CAAC,IAAI,CAACV,eAAe,CAAE76G,EAAQuR,EACxD,EAEA6oG,EAAqBllK,SAAS,CAACsmK,MAAM,CAAG,SAAUx7G,CAAM,CAAEuR,CAAI,EAC1D,OAAO,IAAI,CAACgqG,SAAS,CAAC,IAAI,CAACT,YAAY,CAAE96G,EAAQuR,EACrD,EAEA6oG,EAAqBllK,SAAS,CAACkhJ,QAAQ,CAAG,SAAUp2F,CAAM,CAAEuR,CAAI,EAC5D,OAAO,IAAI,CAACgqG,SAAS,CAAC,IAAI,CAACR,cAAc,CAAE/6G,EAAQuR,EACvD,EAEA6oG,EAAqBllK,SAAS,CAACumK,SAAS,CAAG,SAAUz7G,CAAM,EACvD,OAAO,IAAI,CAAC46G,eAAe,CAACc,MAAM,CAAC,IAAI,CAACb,eAAe,CAAG,IAAI,CAACD,eAAe,CAACv+I,OAAO,CAACs/I,WAAW,CAAG37G,EACzG,EAEAo6G,EAAqBllK,SAAS,CAACqmK,SAAS,CAAG,SAAUK,CAAS,CAAE57G,CAAM,CAAEuR,CAAI,EACxE,OAAO,IAAI,CAACqpG,eAAe,CAACp+E,CAAC,CAACo/E,EAAY,IAAI,CAAChB,eAAe,CAACv+I,OAAO,CAACs/I,WAAW,CAAG37G,EAAQuR,EACjG,EAEA6oG,EAAqBllK,SAAS,CAAC2mK,iBAAiB,CAAG,SAAU/rE,CAAI,CAAE8rE,CAAS,CAAEE,CAAS,CAAEC,CAAI,CAAE3yE,CAAS,EACpG,OAAO,IAAI,CAACwxE,eAAe,CAACiB,iBAAiB,CAAC/rE,EAAM8rE,EAAWE,EAAWC,EAAM3yE,EACpF,EAEAgxE,EAAqBllK,SAAS,CAACkmK,aAAa,CAAG,SAAUY,CAAe,EACpE,IAAI,CAACzB,UAAU,CAAGyB,EAAgB5F,IAAI,CACtC,IAAI,CAAC6F,SAAS,CAAGD,EAAgB5F,IAAI,CAAC6F,SAAS,CAE/C,IAAI,CAACrB,eAAe,CAAG,IAAI,CAACF,SAAS,CAACC,OAAO,CAACuB,cAAc,CACxD,CACIC,IAAKH,EAAgB5F,IAAI,CAAC6F,SAAS,CACnCG,MAAO,GACPN,UAAW,EAAE,CACbO,gBAAiB,KACjBC,iBAAkB,IAClBC,YAAa,CAAC,IAAI,CAACjB,iBAAiB,CAAC,CACrCkB,cAAe,CACXC,YAAa,GACbC,gBAAiB,GACjB9uD,OAAQ,UAAUn4G,CAAK,CAAEm4G,CAAM,CAAEuuD,CAAG,QAChC,WAAIvuD,EACO,IAAI,CAAC+uD,WAAW,CAAClnK,EAAOm4G,EAAQuuD,EAAK,IAAI,CAACS,aAAa,EAG9DhvD,YAAAA,EACO,IAAI,CAAC+uD,WAAW,CAAClnK,EAAOm4G,EAAQuuD,EAAK,IAAI,CAACU,cAAc,EAG/DjvD,aAAAA,EACO,IAAI,CAAC+uD,WAAW,CAAClnK,EAAOm4G,EAAQuuD,EAAK,IAAI,CAACW,eAAe,EAGhElvD,SAAAA,EACO,MAAQn4G,EAAQ,OAEvBm4G,MAAAA,CAAM,CAAC,EAAE,CAEF,gBADUA,EAAO35E,SAAS,CAAC,GAAGvpB,OAAO,CAAC,IAAK,KACZ,KAAOjV,EAAQ,UAGlDA,CACX,GAAE/B,IAAI,CAAC,IAAI,CACf,EACAqpK,cAAe,GACfC,cAAe,EACnB,EACA,UAAUr+F,CAAG,CAAE6d,CAAC,EAEhB,GAAE9oF,IAAI,CAAC,IAAI,GAGf,CAACsoK,EAAgB5F,IAAI,CAAE4F,EAAgBiB,QAAQ,CAAC,CAACplK,OAAO,CACpD,UAAUqlK,CAAQ,EACG,OAAbA,IACA,IAAI,CAACtC,eAAe,CAACiB,iBAAiB,CAACqB,EAASjB,SAAS,CAAE,IAAI,CAACpB,eAAe,CAAEqC,EAAS3C,UAAU,EACpG,IAAI,CAACK,eAAe,CAACiB,iBAAiB,CAACqB,EAASjB,SAAS,CAAE,IAAI,CAACnB,YAAY,CAAEoC,EAAShyH,IAAI,EAC3F,IAAI,CAAC0vH,eAAe,CAACiB,iBAAiB,CAACqB,EAASjB,SAAS,CAAE,IAAI,CAAClB,cAAc,CAAEmC,EAASn+I,MAAM,EAEvG,GAAErrB,IAAI,CAAC,IAAI,GAGf,IAAI,CAACkpK,aAAa,CAAG,CACjBO,UAAW,IAAI,CAACz/J,SAAS,CAAC,aAC1B0/J,cAAe,IAAI,CAAC1/J,SAAS,CAAC,KAClC,EAEA,IAAI,CAACm/J,cAAc,CAAG,CAClBM,UAAW,IAAI,CAACz/J,SAAS,CAAC,aAC1B0/J,cAAe,IAAI,CAAC1/J,SAAS,CAAC,MAClC,EAEA,IAAI,CAACo/J,eAAe,CAAG,CACnBK,UAAW,IAAI,CAACz/J,SAAS,CAAC,aAC1B0/J,cAAe,IAAI,CAAC1/J,SAAS,CAAC,YAClC,CACJ,EAEA08J,EAAqBllK,SAAS,CAACynK,WAAW,CAAG,SAAUlnK,CAAK,CAAEm4G,CAAM,CAAEuuD,CAAG,CAAE1B,CAAW,EAElF,OAAO,IAAI,CAAC4C,eAAe,CAAC5nK,EAAOglK,EACvC,EAEAL,EAAqBllK,SAAS,CAACmoK,eAAe,CAAG,SAAUn8F,CAAG,CAAE7kD,CAAO,EACnE,GAAI,CAACjkB,MAAMmsB,OAAO,CAAC28C,GACf,MAAM,UAAcygB,OAAOzgB,GAAO,+CAGtC,IAAIA,EAAI3qE,MAAM,CACH,GAGP2qE,IAAAA,EAAI3qE,MAAM,CACH2qE,CAAG,CAAC,EAAE,EAKb7kD,KAAsBnjB,IAAtBmjB,CAFJA,EAAUA,GAAW,CAAC,GAEV8gJ,SAAS,CACjB9gJ,EAAQ8gJ,SAAS,CAAG,IAAI,CAACz/J,SAAS,CAAC,aAEnC,IAAI,CAAC4/J,sBAAsB,CAAC,YAAajhJ,GAGzCA,KAA0BnjB,IAA1BmjB,EAAQ+gJ,aAAa,CACrB/gJ,EAAQ+gJ,aAAa,CAAG,IAAI,CAAC1/J,SAAS,CAAC,OAEvC,IAAI,CAAC4/J,sBAAsB,CAAC,gBAAiBjhJ,GAG1C6kD,EAAI7oE,KAAK,CAAC,EAAG,IAAIulF,IAAI,CAACvhE,EAAQ8gJ,SAAS,EAAI9gJ,EAAQ+gJ,aAAa,CAAGl8F,CAAG,CAACA,EAAI3qE,MAAM,CAAG,EAAE,GAGjG6jK,EAAqBllK,SAAS,CAACooK,sBAAsB,CAAG,SAAUC,CAAU,CAAElhJ,CAAO,EACjF,GAAI,iBAAOA,CAAO,CAACkhJ,EAAW,CAC1B,MAAM,UAAc57E,OAAOtlE,CAAO,CAACkhJ,EAAW,EAA1B57E,sBAA2D47E,EAAa,6BAEpG,EAEAnD,EAAqBllK,SAAS,CAACsoK,aAAa,CAAG,WAI3C,OAAO,IAAI,CAACjD,UAAU,EAG1BH,EAAqBllK,SAAS,CAACuoK,SAAS,CAAG,SAAUl9I,CAAI,CAAEnmB,CAAI,EAC3D,IAAI,CAACogK,OAAO,CAACj6I,EAAK,CAAGnmB,CACzB,EAEAggK,EAAqBllK,SAAS,CAACwoK,WAAW,CAAG,WACzC,OAAO,IAAI,CAACzB,SAAS,EAGzB7B,EAAqBllK,SAAS,CAACyoK,SAAS,CAAG,SAAUxnK,CAAG,EACpD,IAAIynK,EAAS,IAAI,CAACpD,OAAO,CAACrkK,EAAI,CAC1Bwf,EAAW,IAAI,CAAC+kJ,SAAS,CAACrtJ,EAAE,CAACuI,KAAK,GAgBtC,OAdIgoJ,EACAjoJ,EAAS3b,OAAO,CAAC4jK,GAEjB,IAAI,CAAClD,SAAS,CAACL,4BAA4B,CAACT,wBAAwB,CAACzjK,GAAKT,IAAI,CAC1E,UAAU0E,CAAI,EACV,IAAI,CAACogK,OAAO,CAACrkK,EAAI,CAAGiE,EACpBub,EAAS3b,OAAO,CAACI,EACrB,GAAE1G,IAAI,CAAC,IAAI,EACX,WACIiiB,EAAS1b,MAAM,EACnB,GAID0b,EAAS/b,OACpB,C,qHE5NAL,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,iBAAkB,CACnC,YACA,OACA,kBACA,eACA,YACA,WACA,kBACA,uBACA,SAAUc,CAAS,CAAEjD,CAAI,CAAEC,CAAe,CAAEzJ,CAAY,CAAEwM,CAAS,CAAEvS,CAAQ,CAAEvI,CAAe,CAAEiK,CAAoB,EAChH,MAAO,CACH2B,SCpBG,qhEDqBHoM,SAAU,IACVC,MAAO,CACHuL,MAAO,IACPqnJ,sBAAuB,IACvBC,aAAc,GAClB,EACAj/J,WAAY,CACR,SACA,SAAUoT,CAAM,EACZA,EAAOhV,oBAAoB,CAAGA,EAE9BgV,EAAO0iC,aAAa,CAAG,CACnBopH,aAAc9rJ,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,8BACpDsgK,UAAW,CAAC,EACZC,iBAAkB,SAAUjoJ,CAAI,EAC5B,IAAIkoJ,EAAWloJ,EAAKmoJ,QAAQ,EAAInoJ,EAAKmoJ,QAAQ,CAAC5nK,MAAM,CAAG,EACnD6nK,EAAWnsJ,EAAOqmB,UAAU,CAACjiB,IAAI,GAAKL,EAAKK,IAAI,QACnD,EAIWpE,EAAOhV,oBAAoB,CAACS,SAAS,CAHrB0gK,EACjB,sDACA,yCACyD,CAC3DC,iBAAkBroJ,EAAKuK,IAAI,GAG/B69I,EACOnsJ,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,6BAA8B,CACvE4gK,UAAWtoJ,EAAKuK,IAAI,GAGrBtO,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,+BAAgC,CACzE4gK,UAAWtoJ,EAAKuK,IAAI,EAE5B,EACAg+I,kBAAmB,SAAUvoJ,CAAI,EAC7B,OAAO/D,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,iCAAkC,CAC3E4gK,UAAWtoJ,EAAKuK,IAAI,EAE5B,EACAuxC,OAAQ,WACJ,IAAK,IAAI14D,EAAI,EAAGA,EAAI6Y,EAAOuE,KAAK,CAACjgB,MAAM,CAAE6C,IAAK,CAC1C,IAAI4c,EAAO/D,EAAOuE,KAAK,CAACpd,EAAE,CACtBw4H,EAAO3/G,EAAO0iC,aAAa,CAACspH,gBAAgB,CAACjoJ,EACjD/D,CAAAA,EAAO0iC,aAAa,CAACqpH,SAAS,CAAChoJ,EAAKK,IAAI,CAAC,CAAGu7G,CAChD,CACJ,CACJ,CACJ,EACH,CACDzxG,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAMuzJ,cAAc,CAAG,EAAE,CACzBvzJ,EAAMqvB,gBAAgB,CAAGtX,EAAAA,CAAIA,CAE7B,IAAIy7I,EAAcxzJ,EAAMuL,KAAK,CAACjgB,MAAM,CAEpC0U,EAAMyzJ,aAAa,CAAG,SAAU9lK,CAAK,EACjCqS,EAAMqtB,UAAU,CAAGrtB,EAAMuL,KAAK,CAAC5d,EAAM,CACrCqS,EAAM0pC,aAAa,CAACmd,MAAM,GAErB7mD,EAAM4yJ,qBAAqB,EAC5B9vJ,EAAUw1B,MAAM,CAAC,OAAQt4B,EAAMqtB,UAAU,CAACjiB,IAAI,EAAE3L,OAAO,GAG3DO,EAAM4U,KAAK,CAAC,gBAAiB5U,EAAMqtB,UAAU,CACjD,EAEArtB,EAAM4G,GAAG,CAAC,sBAAuB,SAAUtc,CAAK,CAAE6E,CAAI,EAClDukK,EAAoBvkK,EACxB,GAEA6Q,EAAM0zJ,mBAAmB,CAAG,SAAUC,CAAQ,EAC1CD,EAAoBC,EACxB,EAEA,IAAID,EAAsB,SAAUtoJ,CAAI,EACpC,GAAIA,MAAAA,EACA,OAAOpL,EAAMyzJ,aAAa,CAAC,GAG/B,IAAK,IAAItlK,EAAI,EAAGA,EAAI6R,EAAMuL,KAAK,CAACjgB,MAAM,CAAE6C,IAAK,CAEzC,GAAI6R,EAAMuL,KAAK,CAACpd,EAAE,CAACid,IAAI,EAAIA,EACvB,OAAOpL,EAAMyzJ,aAAa,CAACtlK,GAG/B,GAAI6R,EAAMuL,KAAK,CAACpd,EAAE,CAAC+kK,QAAQ,CACvB,KAAK,IAAIU,EAAW,EAAGA,EAAW5zJ,EAAMuL,KAAK,CAACpd,EAAE,CAAC+kK,QAAQ,CAAC5nK,MAAM,CAAEsoK,IAE9D,GAAI5zJ,EAAMuL,KAAK,CAACpd,EAAE,CAAC+kK,QAAQ,CAACU,EAAS,CAACxoJ,IAAI,EAAIA,EAG1C,OAFApL,EAAMuL,KAAK,CAACpd,EAAE,CAACmnB,IAAI,CAAGtV,EAAMuL,KAAK,CAACpd,EAAE,CAAC+kK,QAAQ,CAACU,EAAS,CAACt+I,IAAI,CAC5DtV,EAAMuL,KAAK,CAACpd,EAAE,CAACid,IAAI,CAAGpL,EAAMuL,KAAK,CAACpd,EAAE,CAAC+kK,QAAQ,CAACU,EAAS,CAACxoJ,IAAI,CACrDpL,EAAMyzJ,aAAa,CAACtlK,EAEnC,CAER,CACA,OAAO6R,EAAMyzJ,aAAa,CAAC,EAC/B,EAEII,EAAS1+I,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,EACrFy+I,EAAOprK,IAAI,CAAC,QAASuX,EAAM8zJ,sBAAsB,EAEjD9zJ,EAAM4oB,gBAAgB,CAAC,QAAS,SAAUlJ,CAAM,EAC5C,GAAIA,GAAUA,EAAOp0B,MAAM,CAAG,EAAG,CAC7B0U,EAAMuzJ,cAAc,CAAG,EAAE,CAEzB,IAAK,IAAIplK,EAAI,EAAGA,EAAIuxB,EAAOp0B,MAAM,CAAE6C,IAAK,CACpC,IAAI4c,EAAO2U,CAAM,CAACvxB,EAAE,CAEpB,GAAI4c,EAAKmoJ,QAAQ,CACb,IAAK,IAAIzqH,EAAI,EAAGA,EAAI19B,EAAKmoJ,QAAQ,CAAC5nK,MAAM,CAAEm9C,IAAK,CAC3C,IAAIsrH,EAAUhpJ,EAAKmoJ,QAAQ,CAACzqH,EAAE,CAC9BzoC,EAAMuzJ,cAAc,CAACxjK,IAAI,CAAC,CACtBulB,KAAMy+I,EAAQz+I,IAAI,CAClBlK,KAAM2oJ,EAAQ3oJ,IAAI,CAClBuhG,KAAMonD,EAAQpnD,IAAI,EAE1B,MAEA3sG,EAAMuzJ,cAAc,CAACxjK,IAAI,CAAC,CACtBulB,KAAMvK,EAAKuK,IAAI,CACflK,KAAML,EAAKK,IAAI,CACfuhG,KAAM5hG,EAAK4hG,IAAI,EAG3B,CAIA,GAFA3sG,EAAMg0J,aAAa,GAEfH,GAAU,CAAC7zJ,EAAMurG,QAAQ,CAAE,CAC3B,IAAIF,EAAUwoD,CAAM,CAAC,EAAE,CAACz+I,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAErDi2F,GACA/6G,EAAS,WACL0P,EAAMurG,QAAQ,CAAGxjH,EAAgBoC,aAAa,CAAC0pK,EAAQ1+I,QAAQjoB,OAAO,CAACm+G,EAAQnuF,aAAa,CAAC,uBAC7Fld,EAAMurG,QAAQ,CAAChgH,aAAa,EAChC,EAER,CACAyU,EAAMi0J,kBAAkB,GACxBj0J,EAAM0pC,aAAa,CAACmd,MAAM,EAC9B,CACJ,GAEA7mD,EAAMg0J,aAAa,CAAG,WAClBH,EAAOp/I,WAAW,CAAC,SAAW++I,GAC9BA,EAAcxzJ,EAAMuL,KAAK,CAACjgB,MAAM,CAChCuoK,EAAOn/I,QAAQ,CAAC,SAAW8+I,EAC/B,EAEAE,EAAoBr9J,EAAa+U,IAAI,EAErC,IAAI8oJ,EAAqBl0J,EAAM4G,GAAG,CAAC,mBAAoB,SAAUtc,CAAK,CAAE6E,CAAI,EACpEA,EACAukK,EAAoBvkK,GAEpBukK,EAAoBr9J,EAAa+U,IAAI,CAE7C,EAEApL,CAAAA,EAAMi0J,kBAAkB,CAAG,WACvBj0J,EAAMqvB,gBAAgB,GACtB,IAAM8kI,EAAY,CACd,CACIrjK,KAAM,CAACy+B,EAAAA,CAAIA,CAACC,OAAO,CAAED,EAAAA,CAAIA,CAACE,KAAK,CAAE,IAAI,CACrChgC,SAAUigC,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM1vB,EAAMo0J,eAAe,GAAIp0J,GACpD2vB,YAAa3vB,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,CAAC,UAAU,EAAEuN,EAAM6yJ,YAAY,CAAC3nK,GAAG,CAAC,CAAC,CAC3F,EACH,CAED8U,EAAMqvB,gBAAgB,CAAGC,EAAAA,CAAeA,CAACz/B,GAAG,CAACskK,EAAWn0J,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,2CACjG,EAEAuN,EAAMo0J,eAAe,CAAG,WACpBp0J,EAAM6yJ,YAAY,CAAC/nK,MAAM,GAEzB,IAAMupK,EAAWr0J,EAAMuL,KAAK,CAAC,EAAE,CAC3B8oJ,EAAS1nD,IAAI,CAEb2nD,CADsB,CAAC,EAAE,CAACp3I,aAAa,CAAC,CAAC,WAAW,EAAEm3I,EAAS1nD,IAAI,CAAC,CAAC,CAAC,EAC/DjiH,KAAK,GAGZ6pK,CADuB,CAAC,EAAE,CAAClnK,gBAAgB,CAAC,0CACrC,CAAC,EAAE,CAAC3C,KAAK,EAExB,EAEAsV,EAAM4G,GAAG,CAAC,WAAY,WAClBstJ,IACAl0J,EAAMqvB,gBAAgB,GAElBrvB,EAAMurG,QAAQ,EACdvrG,EAAMurG,QAAQ,CAAC5/G,eAAe,EAEtC,EACJ,CACJ,CACJ,EACH,C,4DEpND2C,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,eAAgB,CACjC,OACA,uBACA,kBACA,WACA,SAAUnC,CAAI,CAAE7N,CAAoB,CAAE8N,CAAe,CAAExP,CAAQ,EAC3D,MAAO,CACHqD,SCbG,qxCDcHoM,SAAU,IACVC,MAAO,CACH6R,QAAS,IACT6hE,IAAK,IACLC,IAAK,IACL6gF,gBAAiB,IACjBC,OAAQ,IACRC,cAAe,IACfC,aAAc,IACdC,cAAe,GACnB,EAEAhhK,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAE9B5B,EAAO6tJ,UAAU,CAAG,GACpB7tJ,EAAO8tJ,WAAW,CAAG,KACrB9tJ,EAAO5b,QAAQ,CAAG,CAAE2pK,WAAY,IAAK,EACrC/tJ,EAAOguJ,iBAAiB,CAAGhjK,EAAqBS,SAAS,CAAC,8CAG1DuU,EAAOiuJ,QAAQ,CAAG,WACd,IAEInwI,EAFAy4G,EAAU,GAGd,IAAK,IAAIryI,KAAO8b,EAAOytJ,MAAM,CACzB,GAAIztJ,EAAOytJ,MAAM,CAACp7I,cAAc,CAACnuB,IAGzB45B,CAFJA,EAAO9d,EAAOytJ,MAAM,CAACvpK,EAAI,GAEb45B,OAAAA,EAAKt6B,KAAK,EAAa,KAAKS,IAAI,CAAC65B,EAAKt6B,KAAK,GAE/C+yI,CAAY,GADhBA,CAAAA,EAAU,CAACr+F,MAAMpa,EAAKt6B,KAAK,GAEvB,MAKhB,OAAO+yI,CACX,EAEAv2H,EAAOkuJ,YAAY,CAAG,SAAUC,CAAK,EACjCnuJ,EAAO6tJ,UAAU,CAAG,GAGA,OAAhBM,EAAM3qK,KAAK,EAAa,WAAWS,IAAI,CAACkqK,EAAM3qK,KAAK,GACnD2qK,CAAAA,EAAM3qK,KAAK,CAAG,CAAC2qK,EAAM3qK,KAAK,EAEK,YAA/B,OAAO2qK,EAAMj6G,aAAa,EAC1Bi6G,EAAMj6G,aAAa,CAACi6G,EAAM3qK,KAAK,CAAEwc,EAAO6K,OAAO,CAEvD,EAEA7K,EAAOouJ,UAAU,CAAG,SAAUD,CAAK,EAC/BA,EAAM3qK,KAAK,CAAG,KACqB,YAA/B,OAAO2qK,EAAMj6G,aAAa,EAC1Bi6G,EAAMj6G,aAAa,CAACi6G,EAAM3qK,KAAK,CAAEwc,EAAO6K,OAAO,EAEnD7K,EAAO6tJ,UAAU,CAAG,GACpB7tJ,EAAO5b,QAAQ,CAAC2pK,UAAU,CAACrqK,KAAK,GAChCsc,EAAO4N,KAAK,CAAC,sBAAuB5N,EAAO6K,OAAO,CAAE7K,EAAOytJ,MAAM,CACrE,EAEAztJ,EAAOlT,SAAS,CAAG,WACfkT,EAAO6tJ,UAAU,CAAG,GACpB7tJ,EAAO5b,QAAQ,CAAC2pK,UAAU,CAACrqK,KAAK,GAChCsc,EAAO4N,KAAK,CAAC,sBAAuB5N,EAAO6K,OAAO,CAAE7K,EAAOytJ,MAAM,CACrE,EAEAztJ,EAAO+xD,KAAK,CAAG,WACX,IAAK,IAAI7tE,KAAO8b,EAAOytJ,MAAM,CACrBztJ,EAAOytJ,MAAM,CAACp7I,cAAc,CAACnuB,IAC7B8b,CAAAA,EAAOytJ,MAAM,CAACvpK,EAAI,CAACV,KAAK,CAAG,IAAG,CAG1C,EAEAwc,EAAOquJ,WAAW,CAAG,WACjB,OAAOruJ,EAAOytJ,MAAM,CAACnpK,MAAM,EAAIoG,OAAOZ,IAAI,CAACkW,EAAOytJ,MAAM,EAAEnpK,MAAM,EAGpE0b,EAAOsuJ,aAAa,CAAG,WACnBhlK,EAAS,WACL0W,EAAO5b,QAAQ,CAAC2pK,UAAU,CAAG3wE,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,uBAAuB,CAAC,EAAE,EAElG,EAEApO,EAAOiqB,IAAI,CAAG,WACVjqB,EAAOsuJ,aAAa,GAEftuJ,EAAO6K,OAAO,EACf7K,CAAAA,EAAO6K,OAAO,CAAG,IAAG,EAGxB7K,EAAOuuJ,MAAM,CAAGvuJ,EAAOuuJ,MAAM,EAAIvuJ,SAAAA,EAAOuuJ,MAAM,CAEtD,EACH,CAEDrgJ,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAMixB,IAAI,EACd,CACJ,CACJ,EACH,C,mFE/GM,SAASguF,EAAau2C,CAAoB,MAAEC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAU19I,EAAAA,CAAIA,CAC7D,MAAOghC,CAAAA,EAAAA,EAAAA,CAAAA,EAAKy8G,GAAsB1uI,IAAI,CAClC4uI,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,KAC8BznK,KAAAA,IAA/BunK,EAAqBhmK,KAAK,GAC1BgmK,EAAqBhmK,KAAK,GAC1BimK,IAER,GACA3sH,CAAAA,EAAAA,EAAAA,CAAAA,IAER,C,mCCnBO,IAAM5hB,EAAkB,CAC3Bw4F,QAAS,UACTi2C,MAAO,QACPxuI,UAAW,YACXG,YAAa,aACjB,C,6DCHO,IAAMV,EAAqB,ICC3B,MACHl4B,aAAc,CACV,IAAI,CAACknK,QAAQ,CAAG,IAAIC,EAAAA,CACxB,CAEAhmK,IAAIw3B,CAAK,CAAEI,CAAW,CAAE,CACpB,IAAI,CAACquI,YAAY,CAAC5uI,EAAAA,CAAeA,CAACC,SAAS,CAAEE,EAAOI,EACxD,CAEAn2B,OAAO+1B,CAAK,CAAEI,CAAW,CAAE,CACvB,IAAI,CAACquI,YAAY,CAAC5uI,EAAAA,CAAeA,CAACI,WAAW,CAAED,EAAOI,EAC1D,CAEAynB,QAAQ7nB,CAAK,CAAE,CACX,IAAI,CAACyuI,YAAY,CAAC5uI,EAAAA,CAAeA,CAACw4F,OAAO,CAAEr4F,EAC/C,CAEAoB,OAAQ,CACJ,IAAI,CAACqtI,YAAY,CAAC5uI,EAAAA,CAAeA,CAACyuI,KAAK,CAAE,EAAE,CAC/C,CAEA9uI,UAAW,CACP,OAAO,IAAI,CAAC+uI,QAAQ,CAACG,YAAY,EACrC,CAEAD,aAAa7uI,CAAK,CAAEI,CAAK,CAAuB,CAAC,IAAtBI,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CAOvB,IAAI,CAACmuI,QAAQ,CAAC98G,IAAI,CANA,CACd7xB,MAAOA,EACPQ,YAAaA,EACbJ,MAAOA,CACX,EAGJ,CACJ,C,mDChCA/4B,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,iBAAkB,WACnC,MAAO,CACHjC,SAAU,IACVpM,SCRO,yRDSPC,WAAY,CACR,SACA,SAAUoT,CAAM,EACZA,EAAOgvJ,WAAW,CAAG,GACrBhvJ,EAAOivJ,cAAc,CAAG,SAAUD,CAAW,EACzChvJ,EAAOgvJ,WAAW,CAAGA,CACzB,CACJ,EACH,CAET,G,uBEbA1nK,EAAAA,CAAUA,CAACC,OAAO,CAAC,iBAAkB,CACjC,WACA,OACA,WACA,uBACA,kBACA,SAAUqwB,CAAQ,CAAE/e,CAAI,CAAEvP,CAAQ,CAAE0B,CAAoB,CAAE8N,CAAe,EACrE,SAASo2J,EAAehpK,CAAO,CAAEkkB,CAAO,EACpC,IAAI,CAAClkB,OAAO,CAAGA,EACf,IAAI,CAACkkB,OAAO,CAAGA,CACnB,CAEA8kJ,EAAejsK,SAAS,CAACksK,WAAW,CAAG,SAAUH,CAAW,EACxDA,EAAcA,KAAgB/nK,IAAhB+nK,GAAmCA,EACjD,IAAI32H,EAAO,IAAI,CAKf,OAJA/uC,EAAS,WACL+uC,EAAKnyC,OAAO,CAAC8S,KAAK,GAAGi2J,cAAc,CAACD,EACxC,GAEO,IAAI,EAGfE,EAAejsK,SAAS,CAACmsK,YAAY,CAAG,WAMpC,OALA,IAAI,CAAChlJ,OAAO,CAAG,KACf,IAAI,CAAClkB,OAAO,CAAC8S,KAAK,GAAGsG,QAAQ,GAC7B,IAAI,CAACpZ,OAAO,CAACoE,MAAM,GACnB,IAAI,CAACpE,OAAO,CAAG,KAER,IAAI,EAGf,IAAImpK,EAAc,CACdnpK,QAASioB,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,4BAA4B,CAAC,EAAE,EACxFkhJ,UAAW,KACXpkG,KAAM,SAAU80F,CAAK,EACjB,IAAI,CAACuP,aAAa,GAElB,IAAI,CAACD,SAAS,CAAGroI,WACb,YACI,IAAI,CAAC/gC,OAAO,CAACwnB,QAAQ,CAAC,eAC1B,GAAEjsB,IAAI,CAAC,IAAI,EACXu+J,EAER,EACA/0F,iBAAkB,WACd,OAAO,IAAI,CAAC/kE,OAAO,CAACikC,QAAQ,CAAC,iBAAmB,WAAI,CAACmlI,SAAS,EAElEzvG,OAAQ,WACJ,IAAI,CAAC35D,OAAO,CAACwnB,QAAQ,CAAC,gBAC1B,EACAspC,KAAM,WACF,IAAI,CAACu4G,aAAa,GAElB,IAAI,CAACrpK,OAAO,CAACunB,WAAW,CAAC,iBACzB,IAAI,CAACvnB,OAAO,CAACunB,WAAW,CAAC,eAC7B,EACA04G,eAAgB,SAAU65B,CAAK,EAI3B,OAHA,IAAI,CAACuP,aAAa,GAClB,IAAI,CAAC1vG,MAAM,GAEJv2D,EACH,YACI,IAAI,CAAC0tD,IAAI,EACb,GAAEv1D,IAAI,CAAC,IAAI,EACXu+J,GAASvnH,EAAAA,CAAiBA,CAACC,YAAY,CAE/C,EACA62H,cAAe,WACXxoI,aAAa,IAAI,CAACuoI,SAAS,EAC3B,IAAI,CAACA,SAAS,CAAG,IACrB,CACJ,EA2HA,OAAO,GAzHc,YACjB,SAASE,IACL,IAAI,CAACC,aAAa,CAAGthJ,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,kBAC7D,IAAI,CAACwoI,aAAa,CAAG,KACrB,IAAI,CAACC,kBAAkB,CAAG,GAC9B,CAiHA,OA/GAH,EAAevsK,SAAS,CAAC2sK,YAAY,CAAG,eAExCJ,EAAevsK,SAAS,CAAC8zD,WAAW,CAAGs4G,EAUvCG,EAAevsK,SAAS,CAAC28H,oBAAoB,CAAG,SAAU5mH,CAAK,CAAE62J,CAAe,CAAEC,CAAc,CAAEC,CAAc,CAAEC,CAAQ,EACtH,IAAIC,EAAc,CACdtjK,SAAUkM,EAAKmU,qBAAqB,CAAC6iJ,GACrC7xE,KAAMnlF,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAGmwJ,GAC7EnwC,KAAMowC,CACV,EAEIG,EAAel3J,EAAMgG,IAAI,CAAC,GAC9BkxJ,CAAAA,EAAa9lJ,OAAO,CAAG6lJ,EACvBC,EAAallK,oBAAoB,CAAGA,EAEpC,IAAImlK,EAAiBv4I,EAAS,uCAAuCs4I,GACrEC,EAAe1wI,EAAE,CAAC,WAAY,WAC1BywI,EAAa5wJ,QAAQ,EACzB,IAEItG,EAAM+7F,KAAK,EAAK/7F,EAAM+7F,KAAK,CAACD,OAAO,EAAK97F,EAAM87F,OAAO,EACrD97F,EAAM4iF,MAAM,GAGhB,IAAIt4D,EAAU,IAAI4rI,EAAeiB,EAAgBF,GAMjD,OAJID,IACA,IAAI,CAAC3oC,gBAAgB,CAAC/jG,GACtB,IAAI,CAAC4nC,IAAI,IAEN5nC,CACX,EAMAksI,EAAevsK,SAAS,CAACokI,gBAAgB,CAAG,SAAU/jG,CAAO,EAMzD,OALA,IAAI,CAAC8sI,mBAAmB,GACxB,IAAI,CAACV,aAAa,CAAGpsI,EAErB,IAAI,CAACmsI,aAAa,CAACnkI,MAAM,CAAChI,EAAQp9B,OAAO,EAElC,IAAI,EAGfspK,EAAevsK,SAAS,CAACmtK,mBAAmB,CAAG,WAM3C,OALI,IAAI,CAACV,aAAa,EAAI,IAAI,CAACA,aAAa,CAACxpK,OAAO,GAChD,IAAI,CAACwpK,aAAa,CAACxpK,OAAO,CAACmqK,MAAM,GACjC,IAAI,CAACX,aAAa,CAAG,MAGlB,IAAI,EAGfF,EAAevsK,SAAS,CAACioE,IAAI,CAAG,WAG5B,OAFA,IAAI,CAACukG,aAAa,CAAC/hJ,QAAQ,CAAC,IAAI,CAACkiJ,YAAY,EAEtC,IAAI,EAOfJ,EAAevsK,SAAS,CAACkjI,cAAc,CAAG,SAAU65B,CAAK,EACrD,OAAO,IAAI,CAACsQ,cAAc,CAAC,IAAI,CAACZ,aAAa,CAACP,WAAW,CAAC1tK,IAAI,CAAC,IAAI,CAACiuK,aAAa,EAAG1P,EACxF,EAOAwP,EAAevsK,SAAS,CAACqtK,cAAc,CAAG,SAAU7nK,CAAQ,CAAEu3J,CAAK,EAC/DA,EAAQA,GAAS,IACjBv3J,IAEA,IAAI4vC,EAAO,IAAI,CACf,OAAO/uC,EAAS,WACZ+uC,EAAK2e,IAAI,EACb,EAAGgpG,EACP,EAEAwP,EAAevsK,SAAS,CAAC+zD,IAAI,CAAG,WAG5B,OAFA,IAAI,CAACy4G,aAAa,CAAChiJ,WAAW,CAAC,IAAI,CAACmiJ,YAAY,EAEzC,IAAI,EAGfJ,EAAevsK,SAAS,CAACstK,qBAAqB,CAAG,SAAUjjK,CAAM,EAE7D,OADA,IAAI,CAACsyH,oBAAoB,CAACtyH,EAAO0L,KAAK,CAAE1L,EAAOkjK,QAAQ,EAAI,KAAMljK,EAAOX,QAAQ,EAAI,KAAMW,EAAOmjK,kBAAkB,EAAI,KAAMnjK,EAAO0iK,QAAQ,EACrI1iK,EAAO3F,OAAO,CAACY,OAAO,CACzB,YACI,IAAI,CAAC49H,cAAc,CAAC74H,EAAOojK,QAAQ,EAAI,IAAI,CAACf,kBAAkB,EAAElsK,IAAI,CAChE,YACI,IAAI,CAAC2sK,mBAAmB,EAC5B,GAAE3uK,IAAI,CAAC,IAAI,EAEnB,GAAEA,IAAI,CAAC,IAAI,EAEnB,EAEO+tK,CACX,IAGJ,EACH,C,mCC1MM,SAASrqJ,EAASlQ,CAAE,EACvB,OAAO,GAAU8O,EAAK1X,MAAM,GAAK4I,CACrC,C,mCCFO,SAASwsD,EAAqB19C,CAAI,EACrC,OAAOA,KAAwB9c,IAAxB8c,EAAKiD,cAAc,CAAiBjD,EAAKiD,cAAc,CAAGjD,EAAKqC,WAC1E,C,4DCCO,SAASm7C,IACZ,MAAO0K,CAAAA,EAAAA,EAAAA,CAAAA,EAAuBxK,EAAAA,CAAoBA,CACtD,C,kCCLO,SAASwK,EAAuB0kG,CAAQ,EAC3C,IAAMC,EAAgB,IAAI1/F,IAE1B,OAAO,IACH,IAAM1tE,EAAQmtK,EAAS7yI,SACvB,CAAI8yI,EAAcx6G,GAAG,CAAC5yD,KAItBotK,EAAc/nK,GAAG,CAACrF,GACX,GACX,CACJ,C,kDCVO,SAASg+D,EAAyBz9C,CAAI,EACzC,IAAM+yC,EAAc2K,CAAAA,EAAAA,EAAAA,CAAAA,EAAqB19C,GACzC,OAAO+yC,OAAAA,GAAwBA,KAAAA,CACnC,C,2CCLO,OAAMlyC,EACTld,YAAY6c,CAAK,CAAE,CACf,IAAI,CAAC2D,MAAM,CAAG3D,CAClB,CAMA9d,UAAyB,CAAhB,kDAAGoqK,CAAW,CAAd,eAAc,CACnB,OAAO,WAAI,CAACC,aAAa,CAAC,IAAI,CAAC5oJ,MAAM,CAAE2oJ,EAAa,KACxD,CAMArrK,MAAqB,CAAhB,kDAAGqrK,CAAW,CAAd,eAAc,CACf,OAAO,IAAI,CAACC,aAAa,CAAC,IAAI,CAAC5oJ,MAAM,CAAE2oJ,EAAa,KACxD,CAMAtqK,QAAuB,CAAhB,kDAAGsqK,CAAW,CAAd,eAAc,CACjB,IAAME,EAAgB,EAAE,CAWxB,OADA,IAAI,CAACD,aAAa,CAAC,IAAI,CAAC5oJ,MAAM,CAAE,CATjB,CAACnE,EAAMQ,EAAO+B,KACP,IAAI,CAAC0qJ,eAAe,CAACH,EAAa9sJ,EAAMQ,EAAO+B,IAE7DyqJ,EAAchoK,IAAI,CAACgb,GAGhB,IAG6B,CAAE,MACnCgtJ,CACX,CAOA7rJ,YAA2B,CAAhB,kDAAG2rJ,CAAW,CAAd,eAAc,CACrB,IAAM59I,EAAS,IAAI,CAACg+I,wBAAwB,CAAC,IAAI,CAAC/oJ,MAAM,CAAE2oJ,EAAa,aAEvE,OAAI59I,EACO,KAGJA,CACX,CAEA69I,cAAcvsJ,CAAK,CAAEssJ,CAAW,CAAEvqJ,CAAM,CAAE,CACtC,IAAK,IAAMvC,KAAQQ,EAAO,CAEtB,GADW,IAAI,CAACysJ,eAAe,CAACH,EAAa9sJ,EAAMQ,EAAO+B,GAEtD,OAAOvC,EAGX,GAAIA,EAAK0B,QAAQ,CAACnhB,MAAM,CAAG,EAAG,CAC1B,IAAM2uB,EAAS,IAAI,CAAC69I,aAAa,CAAC/sJ,EAAK0B,QAAQ,CAAEorJ,EAAa9sJ,GAC9D,GAAIkP,OAAAA,EACA,OAAOA,CAEf,CACJ,CAEA,OAAO,IACX,CAEAg+I,yBAAyB1sJ,CAAK,CAAEssJ,CAAW,CAAEvqJ,CAAM,CAAE,CACjD,IAAK,IAAMvC,KAAQQ,EAAO,CAEtB,GADW,IAAI,CAACysJ,eAAe,CAACH,EAAa9sJ,EAAMQ,EAAO+B,GAEtD,MAAO,CAAEvC,KAAMA,EAAMC,QAAS,EAAE,EAGpC,GAAID,EAAK0B,QAAQ,CAACnhB,MAAM,CAAG,EAAG,CAC1B,IAAM2uB,EAAS,IAAI,CAACg+I,wBAAwB,CAACltJ,EAAK0B,QAAQ,CAAEorJ,EAAa9sJ,GACzE,GAAIkP,OAAAA,EAEA,OADAA,EAAOjP,OAAO,CAACjb,IAAI,CAACgb,GACbkP,CAEf,CACJ,CAEA,OAAO,IACX,CAEA+9I,gBAAgBH,CAAW,CAAE9sJ,CAAI,CAAEQ,CAAK,CAAE+B,CAAM,CAAE,CAC9C,IAAK,IAAM+3B,KAAcwyH,EACrB,GAAI,CAACxyH,EAAWt6B,EAAMQ,EAAO+B,GACzB,MAAO,GAIf,MAAO,EACX,CACJ,C,2CCnGO,OAAM4qJ,EACTxpK,aAAc,CACV,IAAI,CAACypK,WAAW,CAAG,EACvB,CAEAphK,MAAO,CACH,MAAO,CAAEohK,YAAa,IAAI,CAACA,WAAW,CAC1C,CACJ,CAEA7pK,EAAAA,CAAUA,CAACqI,QAAQ,CAACuhK,EAAmB5iJ,IAAI,CAAE4iJ,G,wICZtC,SAASE,EAAY5tK,CAAK,EAC7B,MAAO,8BAA8BS,IAAI,CAACT,EAC9C,C,oCCAO,IAAM6tK,EAAsC,CAACC,EAAeC,IACxDD,EAActnK,GAAG,CAAC,GACd,EACHg0F,KAAMwzE,EAAAA,CAAUA,CAACnhK,GAAG,CAACohK,EAAavuI,QAAQ,CAAEuuI,EAAahnJ,OAAO,EAChExV,GAAIw8J,EAAaj8J,EAAE,CACnBlC,SAAUm+J,EAAavuI,QAAQ,CAC/B1/B,MAAOiuK,EAAa1pJ,KAAK,CACzB5Z,MAAOojK,EAAaE,EAAavuI,QAAQ,CAC7C,I,4CCNR57B,EAAAA,CAAUA,CAACgF,SAAS,CAChB,iBACA03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAc0tB,EAAAA,CAAcA,CAAE,CAC1B,UACA,iBACA,eACA,kBACA,YACA,iBACA,YACA,WACA,KACA,YACA,SACA,UACA,QACA,QACH,G,0BCjBLpqK,EAAAA,CAAUA,CAACgF,SAAS,CAChB,wBACA03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAc2tB,CAAAA,EAAAA,EAAAA,CAAAA,EAAmBC,EAAAA,CAAYA,EAAG,CAC5C,YACA,aACA,eACA,eACA,UACA,aACA,aACA,SACA,cACA,cACA,eACH,G,iCCdLtqK,EAAAA,CAAUA,CAACgF,SAAS,CAAC,iBAAkB03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAc6tB,EAAAA,CAAKA,CAAE,CAAC,YAAa,YAAa,WAAY,KAAM,YAAa,cAAe,WAAY,OAAQ,QAAQ,G,4GCAjK,IAAMC,EAAuB9tB,CAAAA,EAAAA,EAAAA,aAAAA,EAAc+tB,EAAAA,CAAoBA,CAAE,CAAC,YAAY,EAE9EzqK,EAAAA,CAAUA,CAACgF,SAAS,CAAC,uBAAwBwlK,G,sBCUgC,OAEvEE,UAAiCjnK,EAAAA,CAAWA,CAC9CrD,YAAYsY,CAAM,CAAE1W,CAAQ,CAAE0B,CAAoB,CAAEinK,CAAkB,CAAE,CACpE,KAAK,GAEL,IAAI,CAACpjD,OAAO,CAAG7uG,EACf,IAAI,CAACzW,SAAS,CAAGD,EACjB,IAAI,CAAC4oK,aAAa,CAAGlnK,EACrB,IAAI,CAACmnK,YAAY,CAAGF,EACpB,IAAI,CAACG,YAAY,CAAG,KAEpB,IAAI,CAACC,QAAQ,CAAG,CACZ9zJ,OAAQ,CACJza,OAAQ,IAAI,CAACma,QAAQ,CACrB4wC,MAAOvgD,EAAAA,CAAWA,CAACC,QAAQ,CAC3BoxH,KAAM,IAAI,CAACuyC,aAAa,CAACzmK,SAAS,CAAC,iBACvC,EACA6lC,OAAQ,CACJ+a,UAAW,GACXimH,YAAa,CAAEC,gBAAiB,EAAGnuJ,KAAMouJ,EAAAA,CAAcA,CAACC,MAAM,CAAE34I,OAAQ,EAAM,EAC9EwuH,WAAY,IAAI,CAACA,UAAU,CAC3B35H,cAAe,CACX,CACInrB,MAAOwH,EAAqBS,SAAS,CAACk6I,EAAAA,CAAmBA,CAACloI,GAAG,CAACtP,KAAK,EACnE5H,OAAQo/I,EAAAA,CAAmBA,CAACloI,GAAG,CAC/BirI,UAAW19I,EAAqBS,SAAS,CAACk6I,EAAAA,CAAmBA,CAACloI,GAAG,CAACirI,SAAS,CAC/E,EACA,CACIllJ,MAAOwH,EAAqBS,SAAS,CAACk6I,EAAAA,CAAmBA,CAACx8G,GAAG,CAACh7B,KAAK,EACnE5H,OAAQo/I,EAAAA,CAAmBA,CAACx8G,GAAG,CAC/Bu/G,UAAW19I,EAAqBS,SAAS,CAACk6I,EAAAA,CAAmBA,CAACx8G,GAAG,CAACu/G,SAAS,CAC/E,EACA,CACIllJ,MAAOwH,EAAqBS,SAAS,CAACk6I,EAAAA,CAAmBA,CAAC13I,KAAK,CAACE,KAAK,EACrE5H,OAAQo/I,EAAAA,CAAmBA,CAAC13I,KAAK,CACjCy6I,UAAW19I,EAAqBS,SAAS,CAACk6I,EAAAA,CAAmBA,CAAC13I,KAAK,CAACy6I,SAAS,CACjF,EACH,CACDgqB,OAAQhqI,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,GAAiB,IAAI,CAAC2pI,QAAQ,CAAC/gI,MAAM,CAACg3G,UAAU,CAAGA,EAAatoI,GACnF2yJ,eAAgBjqI,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,GAAkB,IAAI,CAAC2pI,QAAQ,CAAC/gI,MAAM,CAACghI,WAAW,CAAGA,EAActyJ,GAC9F4yJ,SAAU,IAAI,CAACC,UAAU,CAACpxK,IAAI,CAAC,IAAI,EACnCqxK,kBAAmB9nK,EAAqBS,SAAS,CAAC,sBAClDsnK,kBAAmB/nK,EAAqBS,SAAS,CAAC,6BAClDunK,iBAAkBhoK,EAAqBS,SAAS,CAAC,4BACjDwnK,iBAAkBjoK,EAAqBS,SAAS,CAAC,2BACrD,CACJ,EAEA,IAAI,CAACq9I,cAAc,CAAG,IAAI,CAACopB,aAAa,CAACzmK,SAAS,CAAC,mDACnD,IAAI,CAACynK,WAAW,CAAG,IAAI,CAAChB,aAAa,CAACzmK,SAAS,CAAC,mDAChD,IAAI,CAAC0nK,YAAY,CAAG,KACpB,IAAI,CAAC1qB,gBAAgB,CAAG,GACxB,IAAI,CAAC2qB,YAAY,CAAG,SACpB,IAAI,CAACC,KAAK,CAAG,CACT,CAAEp+J,GAAI,OAAQ+oF,KAAMs1E,EAAAA,CAAQA,CAAEllK,UAAWpD,EAAqBS,SAAS,CAAC,2CAA4C,EACpH,CAAEwJ,GAAI,UAAW+oF,KAAMu1E,EAAAA,CAAQA,CAAEnlK,UAAWpD,EAAqBS,SAAS,CAAC,8CAA+C,EAC7H,CACD,IAAI,CAAC+nK,QAAQ,CAAG,CAAEttC,WAAY,qBAAsB,EACpD,IAAI,CAACutC,iBAAiB,CAAG,GACzB,IAAI,CAACC,gBAAgB,CAAG,IAAI,CAACC,iBAAiB,CAAClyK,IAAI,CAAC,IAAI,EACxD,IAAI,CAACsvB,IAAI,CAAGA,EAAAA,CAAIA,CAChB,IAAI,CAAC89F,OAAO,CAACjvG,GAAG,CAAC,wBAAyB,CAAC8gB,EAAGkzI,IAAqB,IAAI,CAACC,aAAa,CAACD,GAC1F,CAEApnC,SAAU,CACN,IAAI,CAACttE,IAAI,EACb,CAEAmwD,YAAa,CACiB,OAAtB,IAAI,CAAC+iD,YAAY,EACjB,IAAI,CAACA,YAAY,CAAC5pK,KAAK,EAE/B,CAEAsrK,QAAS,CACL,GAAI,CAAC,IAAI,CAACL,iBAAiB,CAAE,CACzB,IAAI,CAACM,MAAM,GACX,MACJ,CAEA,IAAI,CAACN,iBAAiB,CAAG,GACzB,IAAI,CAACP,WAAW,CAAG,IAAI,CAAChB,aAAa,CAACzmK,SAAS,CAAC,kDACpD,CAEAkoK,mBAAoB,CAChB,IAAI,CAACF,iBAAiB,CAAG,GACzB,IAAI,CAACP,WAAW,CAAG,IAAI,CAAChB,aAAa,CAACzmK,SAAS,CAAC,sDACpD,CAEAooK,cAAcD,CAAgB,CAAE,CAI5B,GAHA,IAAI,CAACH,iBAAiB,CAAG,GACzB,IAAI,CAACP,WAAW,CAAG,IAAI,CAAChB,aAAa,CAACzmK,SAAS,CAAC,mDAE5CmoK,IAAAA,EAAiB91F,KAAK,CAACx5E,MAAM,CAAQ,CACrCi6B,EAAAA,CAAOA,CAACC,UAAU,CAAC,oBAAqB,gBAAiB,UACzD,IAAI,CAAC+uG,QAAQ,CAACqmC,EAAiB91F,KAAK,CAAC,EAAE,EACvC,MACJ,CAEAv/C,EAAAA,CAAOA,CAACC,UAAU,CAAC,oBAAqB,gBAAiB,YACzD,IAAI,CAACw1I,WAAW,CAACJ,EAAiB91F,KAAK,CAC3C,CAEA5e,MAAO,CACH,IAAI,CAACkzG,YAAY,CAAG,IAAI,CAACD,YAAY,CAChC8B,0BAA0B,CAACnoE,EAAAA,CAAQA,CAACkB,WAAW,CAACC,kBAAkB,CAAE,EAAE,CAAE,EAAE,CAAE,IAAI,CAACinE,cAAc,CAAE,EAAE,CAAE,EAAE,CAAE,CAAC,OAAQ,SAAS,EAC3HzwK,IAAI,CAAC,IACF,IAAI,CAAC0vK,YAAY,CAAGhrK,EAChB,IAAI,CAACmgJ,UAAU,EACf,IAAI,CAACuqB,UAAU,CAAC,IAAI,CAACvqB,UAAU,CAAE,IAAI,CAAC+pB,QAAQ,CAAC/gI,MAAM,CAAC3iB,aAAa,CAAC,EAAE,CAE9E,GACCrmB,KAAK,CAAC,KACH,IAAI,CAAC6qK,YAAY,CAAG,CAAEx1F,YAAa,IAAI,CAACu0F,aAAa,CAACzmK,SAAS,CAAC,qCAAsC,CAAE2B,MAAO,CAAE,GAAI0wE,MAAO,EAAE,CAClI,GACCv1E,OAAO,CAAC,KACL,IAAI,CAACugJ,cAAc,CAAG,IAAI,CAACopB,aAAa,CAACzmK,SAAS,CAAC,iDACvD,EACR,CAEAuoK,YAAY/9C,CAAQ,CAAE,CAClB,IAAI,CAACk9C,YAAY,CAACr1F,KAAK,CAAGm4C,EAASl3F,MAAM,CAAC,IAAI,CAACo0I,YAAY,CAACr1F,KAAK,EACjE,IAAI,CAACq1F,YAAY,CAACx1F,WAAW,CAAG,IAAI,CAACu0F,aAAa,CAACzmK,SAAS,CAAC,qCAAsC,CAAE2B,MAAO,IAAI,CAAC+lK,YAAY,CAACr1F,KAAK,CAACx5E,MAAM,EAC9I,CAEAuuK,WAAWvqB,CAAU,CAAE6rB,CAAW,CAAE,CAChC,IAAMC,EAAoB9rB,EAAWt3F,IAAI,GACzC,IAAI,CAACohH,YAAY,CAAC3uK,IAAI,CAAC,KACnB,GAAI2wK,KAAAA,EAA0B,CAC1B,IAAI,CAACvlD,OAAO,CAACh1G,UAAU,CAAC,sBACxB,MACJ,CACA,IAAI,CAACtQ,SAAS,CAAC,IAAM,IAAI,CAACslH,OAAO,CAACh1G,UAAU,CAAC,qBAAsB,CAAEyuI,WAAY8rB,EAAmB7tK,OAAQ4tK,EAAY5tK,MAAM,GAClI,EACJ,CACJ,CAEAyrK,EAAyBxqK,OAAO,CAAG,CAAC,SAAU,WAAY,uBAAwB,qBAAqB,CAcvGF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,iBAZY,CAC7BC,SAAU,CACN2nK,eAAgB,IAChBH,OAAQ,IACR91J,SAAU,IACVsvH,SAAU,IACV+a,WAAY,GAChB,EACA37I,SCpKW,4mFDqKXC,WAAYolK,CAChB,EE5IqD,OAE/CqC,UAA8BtpK,EAAAA,CAAWA,CAC3CrD,YAAYsY,CAAM,CAAE5Q,CAAK,CAAE9F,CAAQ,CAAE0B,CAAoB,CAAE8N,CAAe,CAAEvJ,CAAU,CAAE,CACpF,KAAK,GAEL,IAAI,CAACs/G,OAAO,CAAG7uG,EACf,IAAI,CAACs0J,MAAM,CAAGllK,EACd,IAAI,CAAC7F,SAAS,CAAGD,EACjB,IAAI,CAAC4oK,aAAa,CAAGlnK,EACrB,IAAI,CAACsX,WAAW,CAAG/S,EACnB,IAAI,CAACglK,iBAAiB,CAAGz7J,EAAgByC,YAAY,CAAG,wCAExD,IAAI,CAACi5J,gBAAgB,CAAG,GACxB,IAAI,CAACC,UAAU,CAAG,IAAMz0J,EAAO4d,OAAO,CAAChd,SAAS,GAChD,IAAI,CAAC8zJ,UAAU,CAAG,CACdC,mBAAoB,GACpBn5G,MAAO,SAAI,CAACttC,IAAI,EAGpB,IAAI,CAAC0mJ,cAAc,CAAG,IAAI,CAAC1C,aAAa,CAACzmK,SAAS,CAAC,yBACnD,IAAI,CAACopK,iBAAiB,CAAG,GAAevhK,IAAa4vB,EAAAA,CAAQA,CAACkK,QAAQ,EAAI95B,IAAa4vB,EAAAA,CAAQA,CAACiK,IAAI,CAAG,IAAI,CAACynI,cAAc,CAAG,GAC7H,IAAI,CAACE,aAAa,CAAG,CAAC,CAAElsB,YAAa,GAAU9qH,EAAKt6B,KAAK,CAAEmlJ,OAAQ,CAAE,EAAE,CAEvE,IAAMosB,EAAe,SAAI,CAAC7mJ,IAAI,EAAW,CAAC,SAASjqB,IAAI,CAAC,IAAI,CAACiqB,IAAI,GAAK,IAAI,CAAC5L,WAAW,CAAC0yJ,gBAAgB,CAAC,IAAI,CAAC9mJ,IAAI,CAEjH,KAAI,CAACmkJ,QAAQ,CAAG,CACZ4C,aAAc,CACVhgK,GAAIq0H,CAAAA,EAAAA,EAAAA,CAAAA,IACJiN,QAAS,GAAW2+B,4FCtDmEjxK,IAAI,CDsDtDT,IAAU4tK,EAAY5tK,GAC3D2K,MAAO,IAAI,CAAC+jK,aAAa,CAACzmK,SAAS,CAAC,sDACpCojD,MAAO,sBACPsmH,UAAWzsI,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,GAAW,IAAI,CAAC0sI,eAAe,CAAC5xK,GAAQwc,GAC9Dq1J,QAAS3sI,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,GAAW,IAAI,CAAC4sI,aAAa,CAAC9xK,GAAQwc,GAC1Dxc,MAAOuxK,EAAe,IAAI,CAACzyJ,WAAW,CAACizJ,qBAAqB,CAAC,IAAI,CAACrnJ,IAAI,EAAI,IAAI,CAACA,IAAI,EAEvF3P,OAAQ,CACJ+oB,QAAS,IAAI,CAAC4qI,aAAa,CAACzmK,SAAS,CAAC,kBACtC02G,QAASz5E,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAI,CAAC+rI,UAAU,CAAEz0J,GACrC6uC,MAAOvgD,EAAAA,CAAWA,CAACC,QAAQ,EAE/BggC,QAAS,CACLjH,QAAS,IAAI,CAAC4qI,aAAa,CAACzmK,SAAS,CAAC,IAAI,CAAC+pK,SAAS,CAAG,iDAAmD,+CAC1G/mK,SAAU,GACV0zG,QAASz5E,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,IAAI,CAAC+sI,YAAY,GAAIz1J,GAC/C6uC,MAAOvgD,EAAAA,CAAWA,CAACI,SAAS,EAEhCgnK,SAAU,CACNvnK,MAAO,IAAI,CAAC+jK,aAAa,CAACzmK,SAAS,CAAC,2DACpCo0B,SAAU6I,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IACjB,IAAI,CAAC2pI,QAAQ,CAACqD,QAAQ,CAAClyK,KAAK,CAAGA,EAC/B,IAAI,CAACmyK,gBAAgB,CAAC,CAAEhB,mBAAoB,EAAK,EACrD,EAAG30J,GACHxc,MAAO,IAAI,CAACoyK,UAAU,EAE1BtrK,OAAQ,CACJg9B,QAAS,IAAI,CAAC4qI,aAAa,CAACzmK,SAAS,CAAC,kDACtC02G,QAASz5E,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,KAChB,IAAI,CAACmtI,QAAQ,GACb,IAAI,CAACpB,UAAU,EACnB,EAAGz0J,GACH6uC,MAAOvgD,EAAAA,CAAWA,CAACC,QAAQ,EAE/BunK,aAAc,CACV1nK,UAAW,IAAI,CAAC8jK,aAAa,CAACzmK,SAAS,CAAC,wDACxC6lC,OAAQ,GAAgB2mF,CAAAA,EAAAA,EAAAA,CAAAA,EAAa,IAAI,CAAC89C,iBAAiB,CAACztB,IAC5D0tB,QAASttI,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,GAAY,IAAI,CAAC2pI,QAAQ,CAACyD,YAAY,CAACzuK,WAAW,CAAG7D,EAAQwc,GACjFi2J,aAAcvtI,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,GAAU,IAAI,CAACwtI,2BAA2B,CAACp4I,GAAO9d,GAC3Em2J,WAAY,EACZC,WAAYC,EAAAA,CAA4BA,CACxCC,WAAY,IAAI,CAACpE,aAAa,CAACzmK,SAAS,CAAC,4BACzC8qK,aAAc,IAAI,CAACrE,aAAa,CAACzmK,SAAS,CAAC,yBAC3CpE,YAAa,GACbmvK,aAAc,GAClB,EACAhvB,SAAU,CACNlgH,QAAS,IAAI,CAAC4qI,aAAa,CAACzmK,SAAS,CAAC,mDACtC02G,QAASz5E,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAO,IAAI,CAAC8rI,gBAAgB,CAAG,GAAOx0J,GAC1Di2J,aAAc,GAAU,IAAI,CAACQ,uBAAuB,CAAC34I,GACrD44I,eAAgB,IAAM,IAAI,CAACC,qBAAqB,EACpD,EACAC,UAAW,CACP3hK,GAAIq0H,CAAAA,EAAAA,EAAAA,CAAAA,IACJn7H,MAAO,IAAI,CAAC+jK,aAAa,CAACzmK,SAAS,CAAC,2DACpCo0B,SAAU6I,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IACjB,IAAI,CAAC2pI,QAAQ,CAACuE,SAAS,CAACpzK,KAAK,CAAG6oC,EAAEzoC,MAAM,CAACJ,KAAK,CAC9C,IAAI,CAAC6uK,QAAQ,CAACuE,SAAS,CAACC,gBAAgB,CAAG,GAC3C,IAAI,CAAClB,gBAAgB,CAAC,CAAEhB,mBAAoB,EAAK,EACrD,EAAG30J,GACH6uC,MAAO,sBACPgoH,iBAAkB,GAClBrzK,MAAO,IAAI,CAACszK,QAAQ,CAE5B,CACJ,CAEAC,qBAAqBhoK,CAAO,CAAEuE,CAAQ,CAAErF,CAAK,CAAE,CAC3C,IAAMoF,EAAUC,IAAaoK,EAAAA,CAAeA,CAACC,KAAK,CAACs3C,IAAI,EAAI3hD,IAAaoK,EAAAA,CAAeA,CAACC,KAAK,CAACmH,QAAQ,CAChGkyJ,EAAW,IAAI,CAAC10J,WAAW,CAAC20J,aAAa,CAACloK,EAASuE,EAAUD,EAAS,IACtEkB,EAAM,IAAI,CAAC+N,WAAW,CAACizJ,qBAAqB,CAACyB,GAEnD,IAAI,CAAC1B,aAAa,CAAC/gK,GACf,UAAI,CAAC89J,QAAQ,CAACuE,SAAS,CAACpzK,KAAK,EAAW,IAAI,CAAC6uK,QAAQ,CAACuE,SAAS,CAACC,gBAAgB,IAChF,IAAI,CAACxE,QAAQ,CAACuE,SAAS,CAACpzK,KAAK,CAAGyK,EAChC,IAAI,CAACokK,QAAQ,CAACuE,SAAS,CAACC,gBAAgB,CAAG,GAEnD,CAEAX,4BAA4Bp4I,CAAI,CAAE,CAC9B,IAAI,CAACu0I,QAAQ,CAACyD,YAAY,CAACzuK,WAAW,CAAG,GACzC,IAAI,CAAC0vK,oBAAoB,CAACj5I,EAAK7oB,EAAE,CAAE6oB,EAAKxqB,QAAQ,CAAEwqB,EAAKt6B,KAAK,EAC5D,IAAI,CAAC0zK,kBAAkB,GACvB34I,EAAAA,CAAOA,CAACC,UAAU,CAAC,oBAAqB,6BAA8BV,EAAKxqB,QAAQ,CACvF,CAEAmjK,wBAAwB34I,CAAI,CAAE,CAC1B,IAAI,CAACi5I,oBAAoB,CAACj5I,EAAKtoB,EAAE,CAAEsoB,EAAKoF,QAAQ,CAAEpF,EAAK/V,KAAK,EAC5D,IAAI,CAACsqJ,QAAQ,CAAC7qB,QAAQ,CAACkvB,cAAc,GACrCn4I,EAAAA,CAAOA,CAACC,UAAU,CAAC,oBAAqB,yBAA0BV,EAAKoF,QAAQ,CACnF,CAEAuyI,cAAe,CACX,IAAM0B,EAAc,IAAI,CAAC9E,QAAQ,CAAC4C,YAAY,CAACzxK,KAAK,CAEpD,IAAI,CAACsJ,SAAS,CAAC,CACX8oK,WAAY,IAAI,CAACvD,QAAQ,CAACqD,QAAQ,CAAClyK,KAAK,CACxC0qB,KAAM,IAAI,CAACkpJ,mBAAmB,CAACD,GAC/BL,SAAU,IAAI,CAACO,cAAc,EAAI,SAAI,CAAChF,QAAQ,CAACuE,SAAS,CAACpzK,KAAK,CAAU2zK,EAAc,IAAI,CAAC9E,QAAQ,CAACuE,SAAS,CAACpzK,KAAK,GAEvH,IAAI,CAACixK,UAAU,EACnB,CAEA2C,oBAAoBlpJ,CAAI,CAAE,CACtB,GAAIkjJ,EAAYljJ,GAEZ,OADAqQ,EAAAA,CAAOA,CAACC,UAAU,CAAC,oBAAqB,eAAgB,SACjD,YAAYv6B,IAAI,CAACiqB,GAAQA,EAAO,CAAC,OAAO,EAAEA,EAAK,CAAC,CAG3D,IAAM3Y,EAAQ,IAAI,CAAC+M,WAAW,CAACg1J,mBAAmB,CAACppJ,SACnD,KAAI3Y,GACAgpB,EAAAA,CAAOA,CAACC,UAAU,CAAC,oBAAqB,eAAgB,kBACjDjpB,IAGXgpB,EAAAA,CAAOA,CAACC,UAAU,CAAC,oBAAqB,eAAgB,OACjD,gBAAgBv6B,IAAI,CAACiqB,GAAQA,EAAO,CAAC,QAAQ,EAAEA,EAAK,CAAC,EAGhEknJ,gBAAgB5xK,CAAK,CAAE,CACnB,IAAI,CAAC6uK,QAAQ,CAAC4C,YAAY,CAACzxK,KAAK,CAAGA,EACnC,IAAI,CAACmyK,gBAAgB,CAAC,CAAEn6G,MAAO,EAAM,EACzC,CAEA85G,cAAc9xK,CAAK,CAAE,CACjB,IAAI,CAAC6uK,QAAQ,CAAC4C,YAAY,CAACzxK,KAAK,CAAGA,EACnC,IAAI,CAACmyK,gBAAgB,CAAC,CAAEn6G,MAAOh4D,KAAAA,EAAcmxK,mBAAoB,EAAK,EAC1E,CAEAgB,iBAAiB4B,CAAgB,CAAE,CAC/B7sK,OAAOkhB,MAAM,CAAC,IAAI,CAAC8oJ,UAAU,CAAE6C,GAC/B,IAAI,CAAClF,QAAQ,CAAC9jI,OAAO,CAAC9/B,QAAQ,CAAG,CAAC,IAAI,CAACimK,UAAU,CAACl5G,KAAK,EAAI,CAAC,IAAI,CAACk5G,UAAU,CAACC,kBAAkB,CAGlGoB,kBAAkByB,CAAmB,CAAE,CACnC,IAAMh7H,EAAcg7H,EAAoBxmH,IAAI,GAC5C,GAAIxU,IAAAA,EAAYl4C,MAAM,CAClB,OAAOmzK,QAAQ1vK,OAAO,CAAC,EAAE,EAG7B,IAAM2vK,EAAiB,CACnBC,WAAY,IAAI,CAACzD,cAAc,CAC/B0D,WAAY,CAAC,OAAQ,SAAS,CAC9BC,wBAAyB,EACzBx7I,YAAamgB,EACbs7H,WAAYhsE,EAAAA,CAAQA,CAACkB,WAAW,CAACC,kBAAkB,EAGvD,OAAO,IAAI,CAACqnE,MAAM,CACbpkK,IAAI,CAAC,IAAI,CAACqkK,iBAAiB,CAAEmD,GAC7Bj0K,IAAI,CAAC,IAEF,IAAM8oD,EAAoB8kH,EADC9qF,EAAEp+E,IAAI,CAAC,EAAE,CAAC21E,KAAK,CAAC/+C,MAAM,CAACwnD,EAAEp+E,IAAI,CAAC,EAAE,CAAC21E,KAAK,EACiB,IAAI,CAAC+2F,iBAAiB,EACxG,MAAOxsB,CAAAA,EAAAA,EAAAA,CAAAA,EAAmB7rG,EAAa+P,EAAmB,IAAI,CAACuoH,aAAa,EAAE1uK,KAAK,CAAC,EAAG,EAC3F,GACCkC,KAAK,CAAC,KACH,MAAM,MAAU,IAAI,CAAC4pK,aAAa,CAACzmK,SAAS,CAAC,uBACjD,EACR,CAEAkrK,uBAAwB,CACpB,IAAI,CAACtE,QAAQ,CAACyD,YAAY,CAACzuK,WAAW,CAAG,GACzC,IAAI,CAACmtK,gBAAgB,CAAG,GACxB,IAAI,CAAC0C,kBAAkB,EAC3B,CAEAA,oBAAqB,CACjB,IAAI,CAAC3tK,SAAS,CAAC,IAAM9E,SAASyiC,cAAc,CAAC,IAAI,CAACmrI,QAAQ,CAAC4C,YAAY,CAAChgK,EAAE,EAAEvR,KAAK,GACrF,CACJ,CAkBA2wK,EAAsB7sK,OAAO,CAAG,CAAC,SAAU,QAAS,WAAY,uBAAwB,kBAAmB,aAAa,CACxHF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,cAjBS,CAC1BC,SAAU,CACN8qK,eAAgB,IAChBlG,YAAa,IACb+C,eAAgB,IAChBsB,UAAW,IACXI,WAAY,IACZ9oK,UAAW,IACX+oK,SAAU,IACV3nJ,KAAM,IACN4oJ,SAAU,GACd,EACAnqK,SE9OW,87HF+OXC,WAAYynK,CAChB,EGzOiC,OAE3B0D,EACFrwK,YAAY8R,CAAU,CAAEnK,CAAY,CAAE2oK,CAAkB,CAAEpvH,CAAI,CAAE7sC,CAAK,CAAEjD,CAAe,CAAE9N,CAAoB,CAAE,CAC1G,IAAI,CAACkjI,WAAW,CAAG10H,EACnB,IAAI,CAACy+J,aAAa,CAAG5oK,EACrB,IAAI,CAAC6oK,mBAAmB,CAAGF,EAC3B,IAAI,CAACh3H,KAAK,CAAG4H,EACb,IAAI,CAACvmC,MAAM,CAAGtG,EACd,IAAI,CAACmG,gBAAgB,CAAGpJ,EACxB,IAAI,CAACqJ,qBAAqB,CAAGnX,CACjC,CAEAmtK,YAAYC,CAAgB,CAAEC,CAAY,CAAE,CACxCA,EAAaC,MAAM,GACnB,IAAMC,EAAoB,IAAI1J,EAAAA,CAAOA,CAC/B2J,EAAmB,IAAI,CAACt2J,gBAAgB,CAACvC,yBAAyB,CAAG,qEACrEipC,EAAO,IAAI,CAAC5H,KAAK,CAACC,MAAM,GAExBu0H,EAAY4C,KAAAA,EAAiBlqJ,IAAI,CACjCtK,EAAa,CACfutJ,YAAa,IAAI,CAAC+G,mBAAmB,CAAC/G,WAAW,EAAIvoH,OAAAA,GAAiB,CAACA,EAAK8pE,UAAU,CACtF2kD,eAAgBe,EAAiBK,UAAU,EAAI,EAC/CvE,eAAgB,CAAC,IAAI,CAAC+D,aAAa,CAAClpK,OAAO,CAAC,CAC5CymK,UAAWA,EACXI,WAAYwC,EAAiBxC,UAAU,CACvC1nJ,KAAMkqJ,EAAiBlqJ,IAAI,CAC3B4oJ,SAAUsB,EAAiBtB,QAAQ,CACnC11K,QAAS,IAAMm3K,EAAkB1sG,QAAQ,GACzC/+D,UAAW,GAAYyrK,EAAkBzmH,IAAI,CAAC,CAAEsjC,KAAM,SAAUwgF,WAAY3iJ,EAAO2iJ,UAAU,CAAE8C,YAAazlJ,EAAO/E,IAAI,CAAEyqJ,gBAAiB1lJ,EAAO6jJ,QAAQ,GACzJjB,SAAU,IAAM0C,EAAkBzmH,IAAI,CAAC,CAAEsjC,KAAM,QAAS,GACxDnnF,MAAO,IAAI,CAACkU,qBAAqB,CAAC1W,SAAS,CAAC+pK,EAAY,+CAAiD,8CAC7G,EAKA,OAHA,IAAI,CAACnzJ,MAAM,CAACwB,MAAM,CAAC20J,EAAkB50J,EAAY,CAAE8iJ,iBAAkB,EAAM,GAC3E,IAAI,CAACx4B,WAAW,CAAC37G,WAAW,GAErBgmJ,CACX,CACJ,CAEAR,EAAcvwK,OAAO,CAAG,CAAC,aAAc,eAAgB0pK,EAAmB5iJ,IAAI,CAAE,OAAQ,QAAS,kBAAmB,uBAAuB,CAC3IhnB,EAAAA,CAAUA,CAACC,OAAO,CAAC,gBAAiBwwK,E,+EC5C7B,OAAMa,UAAqC7tK,EAAAA,CAAWA,CACzDrD,YAAYmxK,CAAwB,CAAE74J,CAAM,CAAE84J,CAAa,CAAE,CACzD,KAAK,GACL,IAAI,CAACC,sBAAsB,CAAGF,EAAyBG,eAAe,CAACv3K,IAAI,CAACo3K,GAC5E,IAAI,CAACI,cAAc,CAAG,IAClB,IAAI,CAACp5I,QAAQ,CAACr8B,GACdwc,EAAOuS,WAAW,EACtB,EAEA,IAAI,CAAC2mJ,MAAM,CAAG,CAACjmJ,EAAQkmJ,IAAsBL,EAAcX,WAAW,CAACllJ,EAAQkmJ,EACnF,CAEAhqD,YAAa,CACT,IAAI,CAACiqD,aAAa,CAAG,KAAiBnyK,IAAjB,IAAI,CAACqgC,OAAO,EAAkB,WAAI,CAACA,OAAO,CAAY,GAAK,IAAI,CAACA,OAAO,CAC5F,IAAI,CAAC+xI,iBAAiB,CAAG,KAAqBpyK,IAArB,IAAI,CAAC2zF,WAAW,CAAiB,GAAK,IAAI,CAACA,WAAW,CAEvF,CAEAg+E,EAA6BpxK,OAAO,CAAG,CAAC,2BAA4B,SAAU,gBAAgB,C,4ICTvF,OAAM8xK,UAAyCC,EAAAA,SAASA,CAC3D,OAAcC,YAAyCC,EAAAA,CAAgB,CACtDC,WACAC,CAAAA,OAA8B,aAEnChjI,CAAkC,CAAEijI,CAAyB,CAAE,CACvE,KAAK,CAACjjI,GACN,IAAI,CAAC+iI,WAAW,CAAGG,CAAAA,EAAAA,EAAAA,SAAAA,IAEnB,IAAI,CAACF,OAAO,CAAG,CACXG,WAAY,CAACC,EAAAA,CAAUA,CAAEC,EAAAA,CAAuBA,CAAEC,EAAAA,CAAgBA,CAAC,CACnEC,gBAAiBN,EAAQ1zK,OAAO,CAChCi0K,OAAQC,EAAAA,CAAsBA,CAC9Bx/E,YAAa,IAAI,CAACjkD,KAAK,CAACikD,WAAW,CACnCy/E,gBAAiB,CAAEC,OAAQ,CAAEpB,OAAQ,IAAI,CAACviI,KAAK,CAACuiI,MAAO,CAAE,EACzDqB,aAAcC,EAAAA,CAClB,CACJ,CAEOjW,QAAuB,CAC1B,MACI,WAACkW,MAAAA,CAAIjhE,UAAU,0CACX,UAACihE,MAAAA,CAAIC,YAAU,yBAAyBlhE,UAAU,6BAA6BkR,IAAK,IAAI,CAACgvD,WAAW,GACpG,UAACiB,EAAAA,CAAUA,CAAVA,CACGvsK,UAAW,IAAI,CAACuoC,KAAK,CAACvoC,SAAS,CAC/BwsK,eAAgB,IAAI,CAACjkI,KAAK,CAACikI,cAAc,CACzCvuH,UAAW,IAAI,CAAC1V,KAAK,CAAC0V,SAAS,CAC/BmtD,UAAW,CAAC,8DAA8D,EAAE,IAAI,CAAC7iE,KAAK,CAAC6iE,SAAS,EAAI,GAAG,CAAC,CACxGlyE,QAAS,IAAI,CAACqP,KAAK,CAACrP,OAAO,CAC3Bh6B,OAAQ,IAAI,CAACqsK,OAAO,CACpBnrK,SAAU,IAAI,CAACmoC,KAAK,CAACnoC,QAAQ,CAC7ButB,QAAS8+I,EAAAA,CAAgBA,CACzBh7I,SAAU,IAAI,CAAC8W,KAAK,CAAC9W,QAAQ,CAC7Bk5I,uBAAwB,IAAI,CAACpiI,KAAK,CAACoiI,sBAAsB,CACzDl3D,WAAY,IAAI,CAAC63D,WAAW,KAI5C,CACJ,C,eCjDApyK,EAAAA,CAAUA,CAACgF,SAAS,CAChB,mCACA03I,CAAAA,EAAAA,EAAAA,aAAAA,ECGyGrtG,GAErG,UAACmkI,EAAAA,CAAcA,CAAdA,CAAAA,SACG,UALyBxB,EAKxByB,CACG3sK,UAAWuoC,EAAMvoC,SAAS,CAC1BwsK,eAAgBjkI,EAAMikI,cAAc,CACpCvuH,UAAW1V,EAAM0V,SAAS,CAC1BmtD,UAAW7iE,EAAM6iE,SAAS,CAC1BlyE,QAASqP,EAAMrP,OAAO,CACtB94B,SAAUmoC,EAAMnoC,QAAQ,CACxBqxB,SAAU8W,EAAM9W,QAAQ,CACxBk5I,uBAAwBpiI,EAAMoiI,sBAAsB,CACpDn+E,YAAajkD,EAAMikD,WAAW,CAC9Bs+E,OAAQviI,EAAMuiI,MAAM,KDhB4B,CACxD,YACA,UACA,WACA,YACA,iBACA,WACA,yBACA,cACA,YACA,SACH,G,eEXE,IAAM8B,EAA4C,CACrDzuK,SAAU,CACN8/C,UAAW,IACX,GAAG4uH,EAAAA,CAA0B,EAEjCruK,WAAYgsK,EACZtqJ,KAAM,kCACN3hB,SAAUA,EAAAA,CACd,EAEArF,EAAAA,CAAUA,CAACgF,SAAS,CAAC0uK,EAA0C1sJ,IAAI,CAAE0sJ,E,aChBxC,YAAzB,OAAOtwK,OAAOkhB,MAAM,EACpBlhB,OAAO0lH,cAAc,CAAC1lH,OAAQ,SAAU,CACpClH,MAAO,SAAgBI,CAAM,CAAEs3K,CAAO,EAClC,aACA,GAAIt3K,MAAAA,EACA,MAAM,UAAc,8CAKxB,IAAK,IAFDu3K,EAAKzwK,OAAO9G,GAEP+C,EAAQ,EAAGA,EAAQ+5D,UAAUp8D,MAAM,CAAEqC,IAAS,CACnD,IAAIy0K,EAAa16G,SAAS,CAAC/5D,EAAM,CAEjC,GAAIy0K,MAAAA,EACA,IAAK,IAAIC,KAAWD,EAEZ1wK,OAAOzH,SAAS,CAACovB,cAAc,CAAC/wB,IAAI,CAAC85K,EAAYC,IACjDF,CAAAA,CAAE,CAACE,EAAQ,CAAGD,CAAU,CAACC,EAAQ,CAIjD,CACA,OAAOF,CACX,EACA7qD,SAAU,GACVgrD,aAAc,EAClB,E,iCCpBJ,SAASC,EAAYngK,CAAE,CAAEq2B,CAAkB,EACvC,IAAI,CAACr2B,EAAE,CAAGA,EACV,IAAI,CAACq2B,kBAAkB,CAAGA,CAC9B,C,SANAnqC,EAAAA,CAAUA,CAACC,OAAO,CAAC,cAAeg0K,GAClCA,EAAY/zK,OAAO,CAAG,CAAC,KAAM,qBAAqB,CAWlD+zK,EAAYt4K,SAAS,CAACu4K,sBAAsB,CAAG,SAAUzsK,CAAO,EAC5D,IAAIsjC,EAAU,IAAI,CAACZ,kBAAkB,CAACwP,MAAM,CAAClyC,GAC7C,OAAOsjC,OAAAA,EAAmB,IAAI,CAACopI,gBAAgB,CAACppI,GAAW,IAAI,CAACj3B,EAAE,CAACpT,MAAM,EAC7E,EAMAuzK,EAAYt4K,SAAS,CAACw4K,gBAAgB,CAAG,SAAUppI,CAAO,EACtD,GAAIA,EAAQlqC,IAAI,CAACysC,QAAQ,CACrB,OAAO,IAAI,CAACx5B,EAAE,CAAC4K,IAAI,CAACqsB,GAGxB,IAAIqpI,EAAmBrpI,EAAQlqC,IAAI,CAACorC,YAAY,CAAC/tC,IAAI,CAAC,SAAUqyC,CAAC,EAC7D,MAAOA,2BAAAA,EAAErE,GAAG,GAEZmoI,EAAoB,IAAI,CAACC,qBAAqB,CAACvpI,EAAQlqC,IAAI,SAE/D,KAA8B,IAA1BuzK,GAA+BC,OAAAA,EACxBtpI,EAAQgqB,gBAAgB,CAAChqB,EAAQ5vB,OAAO,EAAEhf,IAAI,CAAC,SAAU0E,CAAI,EAChE,OAAOA,EAAKmV,QAAQ,CAAC7Z,IAAI,CAAC,SAAUojI,CAAS,EAGzC,OAFAx0F,EAAQlqC,IAAI,CAAG0+H,CAAS,CAAC,EAAE,CAAC1+H,IAAI,CAACupC,KAAK,CACtCW,EAAQ2qB,iBAAiB,GAClB3qB,CACX,EACJ,GAGG,IAAI,CAACj3B,EAAE,CAAC4K,IAAI,CAACqsB,EACxB,EAMAkpI,EAAYt4K,SAAS,CAAC24K,qBAAqB,CAAG,SAAUzkI,CAAQ,EAC5D,OAAOA,EAASyuB,QAAQ,CAACpgE,IAAI,CAAC,IAAI,CAACq2K,eAAe,CAACp6K,IAAI,CAAC,IAAI,IAAM,IACtE,EAOA85K,EAAYt4K,SAAS,CAAC44K,eAAe,CAAG,SAAUz0F,CAAO,QACrD,uBACIA,EAAQ7gB,WAAW,EACnB6gB,EAAQtQ,cAAc,CAAC70B,IAAI,CAAC,SAAUpK,CAAC,EACnC,MAAOA,gBAAAA,EAAErE,GAAG,GAGT4zC,EAGPA,EAAQxhB,QAAQ,CACTwhB,EAAQxhB,QAAQ,CAACpgE,IAAI,CAAC,IAAI,CAACq2K,eAAe,CAACp6K,IAAI,CAAC,IAAI,GAGxD,IACX,C,0ICpEA6F,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,kBAAmB,CAClC,aACA,UACA,kBACA,qBACA,uBACA,QACA,SAAUviB,CAAU,CAAEoC,CAAO,CAAE9C,CAAe,CAAE24B,CAAkB,CAAEzmC,CAAoB,CAAE+Q,CAAK,EAC3F,IAAM+/J,EAAkB,EAAE,CAE1B,IAAIC,EAA0B,WAC1B,SAASA,IACL,IAAI,CAACC,cAAc,CAAG,KACtB,IAAI,CAAC15I,OAAO,CAAG,IACnB,CAkCA,OAhCAy5I,EAAwB94K,SAAS,CAACxB,IAAI,CAAG,SAAU0iI,CAAG,CAAE83C,CAAQ,CAAEC,CAAU,EAwBxE,OAvBA,IAAI,CAACF,cAAc,CAAG,UAAU3vI,CAAC,EAM7B,GALI6vI,GACA,KAAI,CAAC55I,OAAO,CAAG2E,WAAWi1I,EAAY,EAAC,EAIvC,CAACD,GAAY,CAACA,IAEd,OADA5vI,EAAEQ,WAAW,CAAGs3F,EACTA,CAEf,GAAE1iI,IAAI,CAAC,IAAI,EAEXiI,OAAOhF,gBAAgB,CAAC,eAAgB,IAAI,CAACs3K,cAAc,EACvDE,GAEAxyK,OAAOhF,gBAAgB,CACnB,UACA,YACIqiC,aAAa,IAAI,CAACzE,OAAO,CAC7B,GAAE7gC,IAAI,CAAC,IAAI,GAIZ,IAAI,EAGfs6K,EAAwB94K,SAAS,CAAC2B,MAAM,CAAG,WAEvC,OADA8E,OAAO7E,mBAAmB,CAAC,eAAgB,IAAI,CAACm3K,cAAc,EACvD,IAAI,EAGRD,CACX,IAEA,MAAO,CACH/iH,SAAU,KACVmjH,eAAgB,KAChBC,UAAW,GACXC,aAAc,KACdC,iBAAkB,GAClBC,uBAAwB,GACxBC,QAAS,KACTC,yBAA0B,KAE1BC,0BAA2B,SAAUC,CAAW,EAC5C,IAAI,CAACJ,sBAAsB,CAAGI,CAClC,EAEAC,kBAAmB,IACfd,EAAgB/yK,IAAI,CAAC6zH,EACzB,EAEAigD,qBAAsB,IAClB,IAAMl2K,EAAQm1K,EAAgB/0K,OAAO,CAAC61H,EACxB,MAAVj2H,GACAm1K,EAAgB9yK,MAAM,CAACrC,EAAO,EAEtC,EAEAm2K,iBAAkB,IACd,IAAMtnI,EAAUxqC,EAAqBS,SAAS,CAAC,CAAC,SAAS,EAAE+N,EAAWg8B,OAAO,CAAC16B,WAAW,GAAG,CAAC,EAE7F,IAAK,IAAM8hH,KAAYk/C,EACnB,GAAIl/C,EAASmgD,oBAAoB,GAC7B,OAAOngD,EAASkgD,gBAAgB,CAACtnI,UAIzC,EACW,CACHvnC,MAAOjD,EAAqBS,SAAS,CAAC,gBACtCmrC,QAAS5rC,EAAqBS,SAAS,CAAC,iBAAkB,CAAEuxK,IAAKxnI,CAAQ,GACzEynI,mBAAoBjyK,EAAqBS,SAAS,CAAC,kBACnDyxK,YAAa,EACjB,EAEO,CACHjvK,MAAOjD,EAAqBS,SAAS,CAAC,wBACtCmrC,QAAS5rC,EAAqBS,SAAS,CAAC,yBAA0B,CAAEuxK,IAAKxnI,CAAQ,GACjFynI,mBAAoBjyK,EAAqBS,SAAS,CAAC,2BACnDyxK,YAAalyK,EAAqBS,SAAS,CAAC,gCAChD,CAER,EAEA0xK,cAAe,SAAUrrH,CAAI,CAAEgwD,CAAO,CAAEs7D,CAAO,EAC3C,IAAIl2K,EAAQ,CACRm2K,YAAa,cACbC,cAAe,gBACfC,cAAe,gBACfC,cAAe,gBACfC,QAAS,OAAW,IAAM,IAAI,CAACzkH,QAAQ,CAAG,IAAK,IACnD,EAEI0kH,EAAgBx2K,EAAMm2K,WAAW,CAACp5K,IAAI,CAAC6tD,GACvC6rH,EAAkBz2K,EAAMm2K,WAAW,CAACp5K,IAAI,CAAC69G,GACzC87D,EAAgBF,GAAiBx2K,EAAMo2K,aAAa,CAACr5K,IAAI,CAAC6tD,IAAS5qD,EAAMq2K,aAAa,CAACt5K,IAAI,CAAC6tD,GAC5F+rH,EAAsB32K,EAAMs2K,aAAa,CAACv5K,IAAI,CAAC69G,GAC/Cg8D,EAAe52K,EAAMu2K,OAAO,CAACx5K,IAAI,CAAC6tD,SAEtC,CAA8B,IAA1B,IAAI,CAACisH,OAAO,CAACX,MAGR,IAAI,CAACjB,cAAc,GAChB2B,GAAgBJ,EAChB,EAAIC,IAGA,IAAI,CAACrB,gBAAgB,CAAG,GACjB,IAGRsB,GAAiBE,GAAiB,EAACD,GAAwBA,GAAuBC,CAAW,EAKhH,EAEAC,QAAS,SAAUX,CAAO,QACtB,aAAIA,EACO5jK,EAAWwkK,kBAAkB,CAAC,IAAI,CAAChlH,QAAQ,EAC3CokH,iBAAAA,EAOA3rI,EAAmBmnB,YAAY,CAAC,IAAI,CAACI,QAAQ,EANpD,CAAIvnB,EAAmBonB,qBAAqB,EACjCpnB,EAAmBonB,qBAAqB,CAACC,iCAAiC,CAAC,IAAI,CAACE,QAAQ,CAO3G,EAEAilH,iBAAkB,iBACd,CAAI,KAAI,CAAC1B,sBAAsB,EAAI,WAAI,CAACvjH,QAAQ,EAAa,CAAmB,IAAnB,IAAI,CAAC+kH,OAAO,EAAW,GAI7EjC,EAAgBpgD,KAAK,CAAC,GAAc,CAACkB,EAASmgD,oBAAoB,GAC7E,EAEAmB,qBAAsB,WAClB,OAAOpC,EAAgB75H,IAAI,CAAC,GAAc26E,EAASmgD,oBAAoB,GAC3E,EAKAoB,eAAgB,WACZ,IAAMC,EAAmBtC,EAAgBv1K,MAAM,CAAC,GAAOggF,EAAEw2F,oBAAoB,IAAI/yK,GAAG,CAAC,GAAOu8E,EAAE1wC,OAAO,EAMrG,OAJI,IAAI,CAAC0mI,sBAAsB,EAAI,CAAC,IAAI,CAACwB,OAAO,IAC5CK,EAAiBr1K,IAAI,CAAC8jG,EAAAA,CAA0BA,CAAC9zE,KAAK,EAGnDqlJ,CACX,EAEA79B,cAAe,SAAU89B,CAAO,EAC5B,IAAI,CAAClC,cAAc,CAAGkC,CAC1B,EAEAl/C,SAAU,SAAU7/D,CAAI,EAOpB,IAAK,IAAMs9D,KANXt9D,EAAKq+E,IAAI,GACT,IAAI,CAAC8+B,wBAAwB,CAAC73K,MAAM,GACpC6sC,EAAmB8qB,uBAAuB,CAAC,IAAI,CAACvD,QAAQ,EAExD,IAAI,CAACA,QAAQ,CAAG,KAEO8iH,GACnBl/C,EAASpiE,OAAO,EAGpB5+C,CAAAA,EAAQmyB,QAAQ,CAACC,IAAI,CAAG,IAAI,CAACquI,YAAY,EAG7Cr9C,gBAAiB,SAAU1/D,CAAI,EAC3B,IAAI,CAACm9G,wBAAwB,CAAC73K,MAAM,GACpC4U,EAAWK,UAAU,CAACylD,EAAK89G,OAAO,CAAE,CAAE7rC,gBAAiB,CAAEntH,KAAM,YAAa7P,IAAK,IAAI,CAAC8nK,YAAY,CAAG,EACzG,EAEAiC,KAAM,WACF9kK,EAAWg7B,WAAW,CAAG,EAC7B,EAEA+pI,gBAAiB,SAAUj/G,CAAI,CAAEs9D,CAAQ,EACrC,IAAM4hD,EAAe5hD,EAAS6hD,wBAAwB,GAChDC,EAAgBllK,EAAWwF,IAAI,EAErC0/J,CAAAA,EAAczwK,KAAK,CAAGuwK,EAAavwK,KAAK,CACxCywK,EAAc9nI,OAAO,CAAG4nI,EAAa5nI,OAAO,CAC5C8nI,EAAcxB,WAAW,CAAGsB,EAAatB,WAAW,CACpDwB,EAAcC,iBAAiB,CAAGH,EAAaG,iBAAiB,CAEhED,EAAcv/C,QAAQ,CAAG,KACrB,IAAI,CAACA,QAAQ,CAAC7/D,EAClB,EAEAo/G,EAAcJ,IAAI,CAAG,KACjB,IAAI,CAACA,IAAI,EACb,EAEAI,EAAct9K,OAAO,CAAG,KACpB,IAAI,CAACg7K,SAAS,CAAG,GACjBsC,EAAcp/J,QAAQ,EAC1B,EAEAvD,EAAMwD,QAAQ,CAAC,CACXvG,MAAO0lK,EACPh/J,YAAa,CAAC,EAAE5G,EAAgB6G,yBAAyB,CAAC,qDAAqD,CAAC,EAExH,EAEAklJ,UAAW,SAAUvlG,CAAI,EACrB,GAAI,IAAI,CAAC88G,SAAS,CACd,OAGJ,IAAMnvK,EAAgBxI,SAASijH,aAAa,CAG5C,GAFA,IAAI,CAAC00D,SAAS,CAAG,GAEbN,EAAgBx3K,MAAM,CAAG,EACzB,KAAK,IAAMs4H,KAAYk/C,EACnB,GAAIl/C,EAASmgD,oBAAoB,GAAI,CACjC,IAAI,CAACwB,eAAe,CAACj/G,EAAMs9D,GAC3B,MACJ,CACJ,CAGJ,IAAM3uH,EAAQjD,EAAqBS,SAAS,CAAC,kCACvCmrC,EAAU5rC,EAAqBS,SAAS,CAAC,0CACzCmzK,EAAsB5zK,EAAqBS,SAAS,CAAC,2BACrDozK,EAA0B7zK,EAAqBS,SAAS,CAAC,yBAE/DkD,CAAAA,EAAAA,EAAAA,CAAAA,EAAa,CACTpB,KAAMC,EAAAA,CAAUA,CAACC,KAAK,CACtBC,aAAc,CACVkpC,QAASA,CACb,EACAhpC,cAAe,CAAC8yB,EAAG5yB,KACfA,EAASzK,KAAK,CAAC4J,GACf,IAAI,CAACqxK,IAAI,GACT,IAAI,CAAClC,SAAS,CAAG,GACjB5iK,EAAW+Y,WAAW,EAC1B,EACAjmB,UAAWwyK,CAAAA,EAAAA,EAAAA,CAAAA,EAA0BC,EAAAA,CAAuBA,EAC5D9wK,MAAOA,EACPC,QAAS,CACL,CACIC,MAAOnD,EAAqBS,SAAS,CAAC,kBACtC2C,UAAWpD,EAAqBS,SAAS,CAAC,mCAC1C4C,YAAaC,EAAAA,CAAWA,CAACC,QAAQ,CACjCC,SAAU,mBACVC,SAAU,IAAM,GAChB3K,OAAQ,CAAC48B,EAAG5yB,KACR,IAAI,CAACwwK,IAAI,GACT,IAAI,CAAClC,SAAS,CAAG,GACjBtuK,EAASzK,KAAK,CAAC4J,GACfuM,EAAW+Y,WAAW,EAC1B,CACJ,EACA,CACIpkB,MAAOywK,EACPxwK,UAAWwwK,EACXvwK,YAAaC,EAAAA,CAAWA,CAACC,QAAQ,CACjCC,SAAU,qBACVC,SAAU,IAAM,GAChB3K,OAAQ,CAAC48B,EAAG5yB,KACRA,EAASzK,KAAK,CAAC4J,GACf,IAAI,CAACkyH,QAAQ,CAAC7/D,GACd,IAAI,CAAC88G,SAAS,CAAG,GACjB5iK,EAAW+Y,WAAW,EAC1B,CACJ,EACA,CACIpkB,MAAO0wK,EACPzwK,UAAWywK,EACXxwK,YAAaC,EAAAA,CAAWA,CAACI,SAAS,CAClCF,SAAU,8BACVC,SAAU,IAAM,GAChB3K,OAAQ,CAAC48B,EAAG5yB,KACRA,EAASzK,KAAK,CAAC4J,GACf,IAAI,CAAC+xH,eAAe,CAAC1/D,GACrB,IAAI,CAAC88G,SAAS,CAAG,GACjB5iK,EAAW+Y,WAAW,EAC1B,CACJ,EACH,EAET,EAEAysJ,oBAAqB,SAAUhmH,CAAQ,CAAEokH,CAAO,MAAEh3C,EAAAA,CAAAA,CAAAA,UAAAA,MAAAA,CAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CAI9C,GAHA,IAAI,CAAC+1C,cAAc,CAAG,GACtB,IAAI,CAACG,gBAAgB,CAAG,GAEpB,IAAI,CAACtjH,QAAQ,CACb,OAAO,IAAI,CAACwjH,OAAO,CAGvB,IAAI,CAACxjH,QAAQ,CAAGA,EAEhB,IAAI,CAACyjH,wBAAwB,CAAG,IAAIV,IAA0Bt6K,IAAI,CAC9DuJ,EAAqBS,SAAS,CAAC,uCAC/B,IACW,CAAwB,IAAxB,IAAI,CAAC0wK,cAAc,EAAc,CAAC,CAAC/1C,GAAW,IAAI,CAAC23C,OAAO,CAACX,EAAO,GAAM,CAAC,IAAI,CAACc,oBAAoB,IAIjH,IAAMvgC,EAAOnkI,EAAWoG,GAAG,CAAC,uBAAwB,CAACtc,EAAOwuD,EAAMgwD,KAC9D,GAAI,IAAI,CAACq6D,cAAc,CAAE,CACrB,IAAI,CAACK,OAAO,GACZ,MACJ,CAEA,IAAMyC,EAAkB,EAAE,CAK1B,IAAK,IAAMriD,KAJP,IAAI,CAAC2/C,sBAAsB,EAC3B0C,EAAgBl2K,IAAI,CAAC,CAAEw3I,cAAe,IAAI,CAAC48B,aAAa,CAACrrH,EAAMgwD,EAASs7D,GAAU8B,cAAe,EAAK,GAGnFpD,GACnBmD,EAAgBl2K,IAAI,CAAC6zH,EAASuiD,gBAAgB,CAACrtH,EAAMgwD,IAGzD,GAAI,CAACm9D,EAAgBvjD,KAAK,CAAC,GAAO7jF,EAAE0oG,aAAa,EAAG,CAChDj9I,EAAMwB,cAAc,GACpB,IAAI,CAACu3K,YAAY,CAAGvqH,EACpBt4C,EAAWg7B,WAAW,CAAG,GAErB,IAAI,CAAC8nI,gBAAgB,CACrB,IAAI,CAACt9C,eAAe,CAAC,CAAEo+C,QAASA,CAAQ,GAExC,IAAI,CAACvY,SAAS,CAAC,CAAElnB,KAAMA,EAAMy/B,QAASA,CAAQ,GAElD,MACJ,CAEI6B,EAAgBvjD,KAAK,CAAC,GAAO7jF,EAAEqnI,aAAa,GAC5C,IAAI,CAAC1C,OAAO,EAEpB,EAEA,KAAI,CAACA,OAAO,CAAG,KACX,IAAI,CAACC,wBAAwB,CAAC73K,MAAM,GACpC+4I,IACAyhC,IACA,IAAI,CAACpmH,QAAQ,CAAG,IACpB,EAEA,IAAIomH,EAAmB5lK,EAAWoG,GAAG,CAAC,gBAAiB,KACnD,IAAI,CAACu8J,cAAc,CAAG,GACtBx+B,IACAyhC,GACJ,GAEA,OAAO,IAAI,CAAC5C,OAAO,EAGvB/hH,MAAO,WACmC,OAAlC,IAAI,CAACgiH,wBAAwB,EAC7B,IAAI,CAACA,wBAAwB,CAAC73K,MAAM,GAGnB,OAAjB,IAAI,CAAC43K,OAAO,EACZ,IAAI,CAACA,OAAO,GAGhB,IAAI,CAACxjH,QAAQ,CAAG,KAChB8iH,EAAgBl2K,OAAO,CAAC,GAAO2gF,EAAE/rB,OAAO,GAC5C,CACJ,CACJ,EACH,C,0CCzYDlzD,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,iBAAkB,CACnC,OACA,kBACA,SAAUnC,CAAI,CAAEC,CAAe,EAC3B,MAAO,CACHC,SAAU,IACVmV,KAAM,SAAUlV,CAAK,CAAEixE,CAAE,CAAEl2D,CAAK,EAC5B,IAAIsrJ,EAAgBrmK,EAAMib,MAAM,CAC5B,WACI,OAAOF,EAAMurJ,SAAS,EAE1B,WACI,GAAIvrJ,EAAMurJ,SAAS,CACXvrJ,KAAAA,EAAMurJ,SAAS,CAACv4K,OAAO,CAAC,KAExBkjF,EAAGtnF,IAAI,CAAC,MAAOmW,EAAgByC,YAAY,CAAG,8BAAgCwY,EAAMurJ,SAAS,CAAG,MAAQvrJ,EAAMxmB,IAAI,CAAG,MAAQwmB,EAAMxmB,IAAI,CAAG,wBAM1I08E,EAAGtnF,IAAI,CAAC,MAAOoxB,EAAMurJ,SAAS,EACzBvrJ,EAAMwrJ,UAAU,EACjBF,QAGL,CACH,IAAIG,EAAY3mK,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,qCAAqCgT,QAAQ,GAEpIs3D,EAAGtnF,IAAI,CAAC,MAAO68K,EACnB,CACJ,EAER,CACJ,CACJ,EACH,C,2CCrCM,OAAMC,EACT/3K,YAAYg4K,CAAoB,CAAE92H,CAAI,CAAEx5C,CAAK,CAAE0J,CAAe,CAAE8C,CAAO,CAAE5Q,CAAoB,CAAE,CAC3F,IAAI,CAACytJ,YAAY,CAAG7vG,EACpB,IAAI,CAAC0rH,MAAM,CAAGllK,EACd,IAAI,CAAC8S,gBAAgB,CAAGpJ,EACxB,IAAI,CAAC6mK,qBAAqB,CAAGD,EAC7B,IAAI,CAAC/pB,QAAQ,CAAG/5I,EAChB,IAAI,CAACuG,qBAAqB,CAAGnX,CACjC,CAEA40K,QAAQC,CAA0B,CAAE,CAChC,IAAMC,EAAU,IAAI,CAACrnB,YAAY,CAACx3G,MAAM,UACxC,OAAI6+H,GAAqBA,EAAQC,mBAAmB,CAI7C,IAAI,CAACzL,MAAM,CACbjkK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC6R,gBAAgB,CAAC3G,YAAY,CAAC,0DAA0D,EAAEskK,EAA2B,CAAC,EAClIp8K,IAAI,CAAC,GAAU,EAAEyqB,KAAM8xJ,EAAI73K,IAAI,CAAC83K,gBAAgB,CAAEC,gBAAiBF,EAAI73K,IAAI,CAACg4K,eAAe,IALrF1I,QAAQ1vK,OAAO,CAAC,CAAEmmB,KAAM,GAAIgyJ,gBAAiB,EAAM,EAMlE,CAEAE,aAAa7rK,CAAG,CAAE,CACd,IAAMqiC,EAAU,IAAI,CAACz0B,qBAAqB,CAAC1W,SAAS,CAAC,yCAC/CqrK,EAAW,IAAI,CAAC30J,qBAAqB,CAAC1W,SAAS,CAAC,2CAChD40K,EAAe,IAAI,CAACl+J,qBAAqB,CAAC1W,SAAS,CAAC,gDACpD60K,EAAmB,CAAC,EAAE1pI,EAAQ,CAAC,EAAEkgI,EAAS,CAAC,CAC3CyJ,EAAmB,IAAI,CAACZ,qBAAqB,CAACa,sBAAsB,CAAC5pI,EAAS0pI,GAUpF,OAAO,IAAI,CAACX,qBAAqB,CAACS,YAAY,CAACG,EAAkB,GAAOvmF,IAAU,KAAM,KAAM,GAAI,GAAI,CATlF,CAChBjJ,KAAM,OACN3iF,UAAWiyK,EACXl+D,QAAS,KACL5jF,EAAAA,CAAOA,CAACC,UAAU,CAAC,eAAgB,QAAS,4CAC5C,IAAI,CAACm3H,QAAQ,CAAC1zH,IAAI,CAAC1tB,EAAK,SAAU,CAAE61H,MAAO,EAAK,EACpD,EACAzK,KAAMm3C,CACV,EACmH,CAAE,gCACzH,CACJ,CClBAxvK,EAAAA,CAAUA,CAACqI,QAAQ,CAAC,oCAnBpB,WACI,IAAI8wK,EAAiBhB,CACrB,KAAI,CAACiB,qBAAqB,CAAG,SAAUC,CAAiB,EACpDF,EAAiBE,CACrB,EAEA,IAAI,CAAC5wK,IAAI,CAAG,CACR,OACA,QACA,kBACA,uBACA,UACA,uBACA,SAA2CgxC,CAAI,CAAE3xC,CAAK,CAAE0J,CAAe,CAAE8nK,CAAoB,CAAEhlK,CAAO,CAAE5Q,CAAoB,EACxH,OAAO,IAAIy1K,EAAeG,EAAsB7/H,EAAM3xC,EAAO0J,EAAiB8C,EAAS5Q,EAC3F,EACH,E,0CCfL1D,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,eAAgB,CACjC,OACA,QACA,kBACA,SAAUnC,CAAI,CAAEzJ,CAAK,CAAE0J,CAAe,EAClC,MAAO,CACHnM,SCVG,qwBDWHoM,SAAU,IACVC,MAAO,CACHi0I,OAAQ,IACRnmJ,aAAc,IACd+5K,UAAW,IACXC,eAAgB,GACpB,EAEAl0K,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAO+gK,UAAU,CAAG/gK,SAAAA,EAAO8gK,cAAc,EAEhD,CAED5yJ,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EAC7B/a,EAAM6nK,SAAS,EACf36K,EAAQwnB,QAAQ,CAAC,4BAGrB1U,EAAMgoK,QAAQ,CAAG,SAAU30I,CAAC,EACxB,IAAI1lC,EAAQqS,EAAMlS,YAAY,CAC9B,OAAQulC,EAAEnoC,GAAG,EACT,IAAK,YACDyC,IACA,KACJ,KAAK,aACDA,IACA,KACJ,SACI,MACR,CAEAqS,EAAMioK,SAAS,CAACt6K,EACpB,EAEAqS,EAAMioK,SAAS,CAAG,SAAUt6K,CAAK,EAC7B,IAAMozF,EAAW11C,KAAKsoC,GAAG,CAAC3zE,EAAMi0I,MAAM,CAAC3oJ,MAAM,CAAG,EAAG,GAC/C0C,EAAWL,CAEXA,CAAAA,EAAQ,EACRK,EAAW,EACJL,EAAQozF,GACf/yF,CAAAA,EAAW+yF,CAAO,EAGlB/yF,IAAagS,EAAMlS,YAAY,GAC/BkS,EAAMlS,YAAY,CAAGE,EACrBgS,EAAM6nK,SAAS,CAAC,CAAEl6K,MAAOqS,EAAMlS,YAAY,GAEnD,CACJ,CACJ,CACJ,EACH,C,iCE9CD,SAASo6K,EAAoB9jF,CAAQ,EACjC,IAAI,CAAC+jF,SAAS,CAAG/jF,EACjB,IAAI,CAACoqB,QAAQ,CAAG,GAChB,IAAI,CAACvyG,EAAE,CAAG,IACd,CAWA,SAASmsK,EAAwBC,CAAW,EACxC,IAAI,CAACA,WAAW,CAAGA,CACvB,CAnBAH,EAAoB15K,OAAO,CAAG,CAAC,WAAW,CAQ1C05K,EAAoBj+K,SAAS,CAACupI,OAAO,CAAG,WACpC,IAAI80C,EAA0B,IAAIF,EAAwB,IAAI,CAACC,WAAW,CAAC5/K,IAAI,CAAC,IAAI,EACpF,KAAI,CAACwT,EAAE,CAAG,IAAI,CAACssK,cAAc,CAACC,iBAAiB,CAACF,EACpD,EAEAJ,EAAoBj+K,SAAS,CAACo+K,WAAW,CAAG,SAAU79K,CAAK,EACvD,IAAI,CAACgkH,QAAQ,CAAGhkH,CACpB,EAM2B,OAAvB8D,EAAAA,CAAUA,CAAC2/D,OAAO,EAClB3/D,EAAAA,CAAUA,CAACgF,SAAS,CAAC,sBAtCW,CAChCutF,QAAS,CACL0nF,eAAgB,oBACpB,EACAjkC,WAAY,GACZ3wI,SACI,4VAOJC,WAAYs0K,CAChB,E,iCCyBA,SAASO,EAAmBrkF,CAAQ,EAChC,IAAI,CAACoqB,QAAQ,CAAG,GAChB,IAAI,CAACvyG,EAAE,CAAG,KACV,IAAI,CAACksK,SAAS,CAAG/jF,CACrB,CAeA,SAASskF,EAAuBL,CAAW,CAAEM,CAAa,EACtD,IAAI,CAACN,WAAW,CAAGA,EACnB,IAAI,CAACM,aAAa,CAAGA,CACzB,CAxBAF,EAAmBj6K,OAAO,CAAG,CAAC,WAAW,CAQzCi6K,EAAmBx+K,SAAS,CAAC++G,WAAW,CAAG,WACvC,IAAI,CAACwF,QAAQ,CAAG,IAAI,CAAC+5D,cAAc,CAACK,cAAc,EACtD,EAEAH,EAAmBx+K,SAAS,CAACupI,OAAO,CAAG,WACnC,IAAIq1C,EAAyB,IAAIH,EAAuB,IAAI,CAACL,WAAW,CAAC5/K,IAAI,CAAC,IAAI,EAAG,IAAI,CAAC0/K,SAAS,CAAC37K,IAAI,CAAC,SAAS,CAAC,EAAE,CACrH,KAAI,CAACyP,EAAE,CAAG,IAAI,CAACssK,cAAc,CAACO,gBAAgB,CAACD,GAC/C,IAAI,CAACE,gBAAgB,CAAG,IAAI,CAACppJ,YAAY,CAAG,IAAI,CAACA,YAAY,CAAG,CACpE,EACA8oJ,EAAmBx+K,SAAS,CAACo+K,WAAW,CAAG,SAAU79K,CAAK,EACtD,IAAI,CAACgkH,QAAQ,CAAGhkH,CACpB,EAO2B,OAAvB8D,EAAAA,CAAUA,CAAC2/D,OAAO,EAClB3/D,EAAAA,CAAUA,CAACgF,SAAS,CAAC,qBAhEU,CAC/ButF,QAAS,CACL0nF,eAAgB,oBACpB,EACAh1K,SAAU,CACNosB,aAAc,IACdj1B,MAAO,IACPmoI,kBAAmB,GACvB,EACAyR,WAAY,CACR0kC,YAAa,cACbC,cAAe,gBACnB,EACAt1K,SACI,i/BAoBJC,WAAY60K,CAChB,E,+BCzBA,SAASS,EAAkBliK,CAAM,EAC7B,IAAI,CAACmiK,eAAe,CAAG,KACvB,IAAI,CAACC,cAAc,CAAG,KACtB,IAAI,CAACC,SAAS,CAAG,GAEjB,IAAI,CAACvnC,GAAG,CAAG96H,EAAOkmB,GAAG,CAACvT,QAAQ,EAClC,CA2CA,SAAS2vJ,EAAsBjB,CAAW,CAAEkB,CAAW,CAAEC,CAAS,EAC9D,IAAI,CAACnB,WAAW,CAAGA,EACnB,IAAI,CAACkB,WAAW,CAAGA,EACnB,IAAI,CAACC,SAAS,CAAGA,CACrB,CAvDAN,EAAkB16K,OAAO,CAAG,CAAC,SAAS,CAUtC06K,EAAkBj/K,SAAS,CAACw/K,SAAS,CAAG,WACpC,IAAIC,EAAwB,IAAIJ,EAAsB,IAAI,CAACjB,WAAW,CAAC5/K,IAAI,CAAC,IAAI,EAAG,IAAI,CAAC8gL,WAAW,CAAC9gL,IAAI,CAAC,IAAI,EAAG,IAAI,CAAC+gL,SAAS,CAAC/gL,IAAI,CAAC,IAAI,GACxI,IAAI,CAACkhL,UAAU,CAACC,eAAe,CAAC,IAAI,CAAC9nC,GAAG,CAAE4nC,EAC9C,EAEAR,EAAkBj/K,SAAS,CAACo+K,WAAW,CAAG,SAAU79K,CAAK,EACrD,IAAI,CAAC6+K,SAAS,CAAG7+K,EACjB,IAAI,CAAC2+K,eAAe,CAACd,WAAW,CAAC,IAAI,CAACgB,SAAS,EAC/C,IAAI,CAACD,cAAc,CAACf,WAAW,CAAC,IAAI,CAACgB,SAAS,CAClD,EAEAH,EAAkBj/K,SAAS,CAAC2+K,cAAc,CAAG,WACzC,OAAO,IAAI,CAACe,UAAU,CAACf,cAAc,CAAC,IAAI,CAAC9mC,GAAG,CAClD,EAEAonC,EAAkBj/K,SAAS,CAACs/K,WAAW,CAAG,WACtC,OAAO,IAAI,CAACF,SAAS,EAGzBH,EAAkBj/K,SAAS,CAACu/K,SAAS,CAAG,WACpC,OAAO,IAAI,CAACJ,cAAc,CAACT,aAAa,EAG5CO,EAAkBj/K,SAAS,CAAC6+K,gBAAgB,CAAG,SAAUe,CAAa,EAElE,OADA,IAAI,CAACT,cAAc,CAAGS,EACf,IAAI,CAAC/nC,GAAG,EAGnBonC,EAAkBj/K,SAAS,CAACu+K,iBAAiB,CAAG,SAAUsB,CAAc,EAEpE,OADA,IAAI,CAACX,eAAe,CAAGW,EAChB,IAAI,CAAChoC,GAAG,EAGnBonC,EAAkBj/K,SAAS,CAAC++G,WAAW,CAAG,WACtC,IAAI,CAAC2gE,UAAU,CAAC3gE,WAAW,CAAC,IAAI,CAAC84B,GAAG,CACxC,EAEAonC,EAAkBj/K,SAAS,CAACosH,UAAU,CAAG,WACrC,IAAI,CAACszD,UAAU,CAACI,kBAAkB,CAAC,IAAI,CAACjoC,GAAG,CAC/C,EAQ2B,OAAvBxzI,EAAAA,CAAUA,CAAC2/D,OAAO,EAClB3/D,EAAAA,CAAUA,CAACgF,SAAS,CAAC,oBAnEkB,CACvCutF,QAAS,CACL8oF,WAAY,eAChB,EACArlC,WAAY,GACZ3wI,SAAU,mBACVC,WAAYs1K,CAChB,E,yCCQA,SAASc,EAAsB5lF,CAAQ,EACnC,IAAI,CAAC+jF,SAAS,CAAG/jF,EAEjB,IAAI,CAAC6lF,WAAW,CAAG,EAAE,CAErB7lF,CAAQ,CAAC,EAAE,CAAC14F,gBAAgB,CACxB,UACA,UAAUpB,CAAK,EACPA,EAAMM,MAAM,CAAC+zB,SAAS,CAAClxB,QAAQ,CAAC,2BAChC,IAAI,CAACy8K,gBAAgB,CAAC5/K,GAE1B,IAAI,CAAC6/K,kBAAkB,CAAC7/K,EAC5B,GAAE7B,IAAI,CAAC,IAAI,EAEnB,CAhBAuhL,EAAsBx7K,OAAO,CAAG,CAAC,WAAW,CAkB5Cw7K,EAAsB//K,SAAS,CAACigL,gBAAgB,CAAG,SAAU5/K,CAAK,EAC9D,IAAI8/K,EAAW,CACX9/K,CAAc,YAAdA,EAAMY,GAAG,EACTk/K,EAAW,IAAI,CAACC,mBAAmB,CAAC//K,EAAMM,MAAM,EAETqD,KAAAA,IAAnC,IAAI,CAACg8K,WAAW,CAACG,EAAW,EAAE,EAC9B,IAAI,CAACH,WAAW,CAACG,EAAW,EAAE,CAACE,YAAY,CAACd,SAAS,GAAG9+K,KAAK,GAEjEJ,EAAMwB,cAAc,GACpBxB,EAAMuoH,wBAAwB,IACT,cAAdvoH,EAAMY,GAAG,GAChBk/K,EAAW,IAAI,CAACC,mBAAmB,CAAC//K,EAAMM,MAAM,EACTqD,KAAAA,IAAnC,IAAI,CAACg8K,WAAW,CAACG,EAAW,EAAE,EAC9B,IAAI,CAACH,WAAW,CAACG,EAAW,EAAE,CAACE,YAAY,CAACd,SAAS,GAAG9+K,KAAK,GAEjEJ,EAAMwB,cAAc,GACpBxB,EAAMuoH,wBAAwB,GAEtC,EAEAm3D,EAAsB//K,SAAS,CAACkgL,kBAAkB,CAAG,SAAU7/K,CAAK,EAC9C,SAAdA,EAAMY,GAAG,GACT,IAAI,CAAC++K,WAAW,CAAC,EAAE,CAACK,YAAY,CAACd,SAAS,GAAG9+K,KAAK,GAClDJ,EAAMwB,cAAc,IAEN,QAAdxB,EAAMY,GAAG,GACT,IAAI,CAAC++K,WAAW,CAAC,IAAI,CAACA,WAAW,CAAC3+K,MAAM,CAAG,EAAE,CAACg/K,YAAY,CAACd,SAAS,GAAG9+K,KAAK,GAC5EJ,EAAMwB,cAAc,GAE5B,EAEAk+K,EAAsB//K,SAAS,CAACogL,mBAAmB,CAAG,SAAUz/K,CAAM,EAElE,IAAK,IADD+9K,EAAgB,KACXx6K,EAAI,EAAGo8K,EAAK,IAAI,CAACN,WAAW,CAAC3+K,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAElD,GAAIw6K,CADJA,EAAgB,IAAI,CAACsB,WAAW,CAAC97K,EAAE,CAACm8K,YAAY,CAACd,SAAS,EAAC,IACrC5+K,GAAUA,EAAO6C,QAAQ,CAACk7K,GAC5C,OAAOx6K,CAGf,OAAM,MAAU,2CACpB,EAEA67K,EAAsB//K,SAAS,CAACugL,YAAY,CAAG,WAC3C,OAAO,IAAI,CAACrC,SAAS,CAAC,EAAE,CAAC96K,gBAAgB,CAAC,gEAC9C,EAEA28K,EAAsB//K,SAAS,CAAC2/K,eAAe,CAAG,SAAU3tK,CAAE,CAAEquK,CAAY,EACxE,IAAI,CAACL,WAAW,CAACl6K,IAAI,CAAC,CAClBkM,GAAIA,EACJquK,aAAcA,CAClB,GAEK,IAAI,CAACG,aAAa,EAAI,QAAI,CAACR,WAAW,CAAC3+K,MAAM,EAC9Cg/K,EAAajC,WAAW,CAAC,GAEjC,EAEA2B,EAAsB//K,SAAS,CAAC2+K,cAAc,CAAG,SAAU3sK,CAAE,EAGzD,IAAK,IAFDyuK,EAAW,GAENv8K,EAAI,EAAGo8K,EAAK,IAAI,CAACN,WAAW,CAAC3+K,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAC9C8N,IAAO,IAAI,CAACguK,WAAW,CAAC97K,EAAE,CAAC8N,EAAE,CACxB,IAAI,CAAC0uK,QAAQ,EACd,IAAI,CAACV,WAAW,CAAC97K,EAAE,CAACm8K,YAAY,CAACjC,WAAW,CAAC,KAGjDqC,EAAW,CAAC,IAAI,CAACT,WAAW,CAAC97K,EAAE,CAACm8K,YAAY,CAACf,WAAW,GACxD,IAAI,CAACU,WAAW,CAAC97K,EAAE,CAACm8K,YAAY,CAACjC,WAAW,CAACqC,IAGrD,OAAOA,CACX,EAEAV,EAAsB//K,SAAS,CAAC8/K,kBAAkB,CAAG,SAAU9tK,CAAE,CAAEquK,CAAY,EAC3E,IAAK,IAAIn8K,EAAI,EAAGo8K,EAAK,IAAI,CAACN,WAAW,CAAC3+K,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAClD,GAAI8N,IAAO,IAAI,CAACguK,WAAW,CAAC97K,EAAE,CAAC8N,EAAE,CAAE,CAC/B,IAAI,CAACguK,WAAW,CAACj6K,MAAM,CAAC7B,EAAG,GAC3B,MACJ,CAER,EAE2B,OAAvBG,EAAAA,CAAUA,CAAC2/D,OAAO,EAClB3/D,EAAAA,CAAUA,CAACgF,SAAS,CAAC,eAjHa,CAClCC,SAAU,CACNo3K,SAAU,IACVF,cAAe,GACnB,EACAnmC,WAAY,GACZ3wI,SAAU,kHAGVC,WAAYo2K,CAChB,E,4CCTA17K,E,OAAAA,CAAUA,CAACgF,SAAS,CAAC,YAAa03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAc4/B,EAAAA,CAASA,CAAE,CAAC,WAAY,UAAU,E,4CCAlFt8K,E,OAAAA,CAAUA,CAACgF,SAAS,CAAC,kBAAmB03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAc6/B,EAAAA,CAAMA,CAAE,CAAC,YAAa,UAAW,WAAY,YAAa,WAAY,WAAY,OAAQ,kBAAmB,YAAa,eAAe,E,4CCA/Lv8K,E,OAAAA,CAAUA,CAACgF,SAAS,CAAC,WAAY03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAc8/B,EAAAA,CAAQA,CAAE,CAAC,WAAY,OAAQ,QAAS,YAAa,aAAc,aAAc,WAAW,E,4CCA3Ix8K,E,OAAAA,CAAUA,CAACgF,SAAS,CAAC,yBAA0B03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAc+/B,EAAAA,CAAsBA,CAAE,CAAC,SAAU,UAAW,cAAe,SAAU,WAAW,E,4CCA/Iz8K,E,OAAAA,CAAUA,CAACgF,SAAS,CAAC,wBAAyB03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAcggC,EAAAA,CAAqBA,CAAE,CAAC,OAAQ,UAAW,YAAa,YAAY,E,4CCAhI18K,E,OAAAA,CAAUA,CAACgF,SAAS,CAAC,aAAc03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAcigC,EAAAA,CAAUA,CAAE,CAAC,OAAQ,UAAW,YAAY,E,4CCA7F38K,E,OAAAA,CAAUA,CAACgF,SAAS,CAAC,OAAQ03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAcnzH,EAAAA,CAAIA,CAAE,CAAC,OAAQ,SAAU,YAAY,E,4CCAhFvpB,E,OAAAA,CAAUA,CAACgF,SAAS,CAChB,wBACA03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAckgC,EAAAA,CAAqBA,CAAE,CAAC,YAAa,QAAS,WAAY,YAAa,iBAAkB,iBAAkB,OAAQ,eAAgB,QAAQ,E,sDCF7J58K,EAAAA,CAAUA,CAACgF,SAAS,CAAC,eAAgB03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAcmgC,EAAAA,CAAYA,CAAE,CAAC,YAAa,UAAW,WAAW,E,uDCArG78K,E,OAAAA,CAAUA,CAACgF,SAAS,CAChB,eACA03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAc2tB,CAAAA,EAAAA,EAAAA,CAAAA,EAAmByS,EAAAA,CAAYA,EAAG,CAC5C,YACA,WACA,WACA,cACA,iBACA,gBACA,eACA,oBACA,oBACA,mBACA,mBACA,YACH,E,4CCfL98K,E,OAAAA,CAAUA,CAACgF,SAAS,CAAC,SAAU03I,CAAAA,EAAAA,EAAAA,aAAAA,EAAcqgC,EAAAA,CAAMA,CAAE,CAAC,QAAS,YAAa,aAAc,aAAc,WAAW,E,mCCJ5G,SAAS37I,EAAWjgC,CAAQ,CAAEuQ,CAAK,EACtC,OAAO,sCAAI3O,EAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,CAAI,CAAJA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAMP,GALA5B,KAAY4B,GAKR2O,OAAAA,EAAM87F,OAAO,EAAa97F,OAAAA,EAAM+7F,KAAK,CAACD,OAAO,CAAW,CACxD97F,EAAM4iF,MAAM,GACZ,MACJ,CAEA5iF,EAAMspG,UAAU,EACpB,CACJ,C,6ECdO,SAASgiE,EAAuBC,CAAgB,EACnD,GAAIA,IAAAA,EAAiBC,QAAQ,CAAClgL,MAAM,CAChC,OAAOigL,EAAiBz5F,YAAY,CAGxC,IAAM25F,EAAUF,EAAiBC,QAAQ,CAAC,EAAE,CAEtC5nC,EAAU6nC,EAAQ51H,KAAK,CAAC+tF,OAAO,CAC/BjnH,EAAW8uJ,EAAQ51H,KAAK,CAACl5B,QAAQ,CAEvC8uJ,EAAQ51H,KAAK,CAAC+tF,OAAO,CAAG,GACxB6nC,EAAQ51H,KAAK,CAACl5B,QAAQ,CAAG,SACzB,IAAM+uJ,EAAgBC,WAAWx6F,iBAAiBs6F,GAASh2H,MAAM,EAIjE,OAHAg2H,EAAQ51H,KAAK,CAAC+tF,OAAO,CAAGA,EACxB6nC,EAAQ51H,KAAK,CAACl5B,QAAQ,CAAGA,EAElB+uJ,CACX,C,iBCdO,OAAME,EACTC,4BAA4BN,CAAgB,CAAEG,CAAa,CAAE,CACzD,IAAMI,EAAmB,CAAC,CAAEr2H,OAAQ,CAAE,EAAG,CAAEA,OAAQ,CAAC,EAAEi2H,EAAc,EAAE,CAAC,EAAG,CAE1EH,EAAiB11H,KAAK,CAACk2H,QAAQ,CAAG,SAOlCh3D,EALmChB,OAAO,CAAC+3D,EAAkB,CACzD93D,SAAU,IACVg4D,OAAQ,SACZ,GAEUC,QAAQ,CAAC18K,OAAO,CAAC,KACvBg8K,EAAiB11H,KAAK,CAACk2H,QAAQ,CAAG,GAClCR,EAAiB11H,KAAK,CAACJ,MAAM,CAAG,CAAC,EAAEi2H,EAAc,EAAE,CAAC,EAE5D,CAEAQ,aAAaX,CAAgB,CAAE,CAG3B,IAAK,IAAME,KAFXF,EAAiB11H,KAAK,CAACF,GAAG,CAAG,IAEP41H,EAAiBC,QAAQ,EAC3CC,EAAQ51H,KAAK,CAACopD,MAAM,CAAG,EAE/B,CAEAktE,eAAeZ,CAAgB,CAAEG,CAAa,CAAE,CAC5CH,EAAiB11H,KAAK,CAACJ,MAAM,CAAG,CAAC,EAAEi2H,EAAc,EAAE,CAAC,CAGxDU,YAAYb,CAAgB,CAAE,CAC1BA,EAAiB11H,KAAK,CAACw1G,UAAU,CAAG,GACpCkgB,EAAiB11H,KAAK,CAACk2H,QAAQ,CAAG,GAClCR,EAAiB11H,KAAK,CAACJ,MAAM,CAAG,EACpC,CAEA42H,cAAcd,CAAgB,CAAE,CAC5B,IAAMe,EAAqBn7F,iBAAiBo6F,EAAiBgB,iBAAiB,EAAEC,iBAAiB,CAC3F7vJ,EAAWw0D,iBAAiBo6F,GAAkB5uJ,QAAQ,CAI5D,GAFA4uJ,EAAiB11H,KAAK,CAACJ,MAAM,CAAG,IAE5B94B,WAAAA,EAAuB,CACvB,IAAM+uJ,EAAgBJ,EAAuBC,EAC7CA,CAAAA,EAAiB11H,KAAK,CAACF,GAAG,CAAG,CAAC,KAAK,EAAE+1H,EAAc,KAAK,EAAEY,EAAmB,CAAC,CAAC,CAGnF,IAAK,IAAMb,KAAWF,EAAiBC,QAAQ,CAC3CC,EAAQ51H,KAAK,CAACl5B,QAAQ,CAAG,WACzB8uJ,EAAQ51H,KAAK,CAACopD,MAAM,CAAG,CAAC,YAAY,EAAEqtE,EAAmB,CAAC,CAAC,CAC3Db,EAAQ51H,KAAK,CAAC65B,KAAK,CAAG,MAE9B,CAEA+8F,qBAAqBlB,CAAgB,CAAE,CACnCA,EAAiB11H,KAAK,CAACl5B,QAAQ,CAAG,UACtC,CACJ,CAEAivJ,EAAwBp9K,OAAO,CAAG,EAAE,CACpCF,EAAAA,CAAUA,CAACC,OAAO,CAAC,0BAA2Bq9K,GCrD9C,IAAMc,EAAWC,EAAAA,CAASA,EAAIC,EAAAA,CAAYA,EAAIC,EAAAA,CAE9C,OAAaC,EACTp+K,YAAYq+K,CAAa,CAAEC,CAAQ,CAAEC,CAAuB,CAAE,CAC1D,IAAI,CAACF,aAAa,CAAGA,EACrB,IAAI,CAACG,wBAAwB,CAAGD,EAChC,IAAI,CAACE,mBAAmB,CAAG,EAC3B,IAAI,CAACC,qBAAqB,CAAGJ,EAAS1iL,KAAK,CAAC,IAAI,CAAC+iL,aAAa,CAAE,IAAI,CAAE,KACtE,IAAI,CAACC,eAAe,CAAGN,EAAS1iL,KAAK,CAAC,IAAI,CAACijL,6BAA6B,CAAE,IAAI,CAAE,KAChF,IAAI,CAACC,sBAAsB,CAAG,IAClC,CAEAH,eAAgB,CACR,IAAI,CAACF,mBAAmB,CAAG,EAC3B,IAAI,CAACJ,aAAa,CAAC/uH,IAAI,GAEvB,IAAI,CAAC+uH,aAAa,CAAC76G,IAAI,EAE/B,CAEAq7G,+BAAgC,CACQ,OAAhC,IAAI,CAACC,sBAAsB,GAI/B,IAAI,CAACA,sBAAsB,CAAC33H,KAAK,CAACJ,MAAM,CAAG,IAC3C,IAAI,CAAC+3H,sBAAsB,CAAG,KAClC,CAEAC,yBAAyBlC,CAAgB,CAAEG,CAAa,CAAE,CACtD,IAAMgC,EAAkBC,SCvChBA,EAA4BzgL,CAAO,SAC/C,OAAIA,EAAQ0gL,aAAa,CACd,KAGP1gL,KAAoDe,IAApDf,EAAQ0gL,aAAa,CAAClhE,OAAO,CAACmhE,iBAAiB,CACxC3gL,EAAQ0gL,aAAa,CAGzBD,EAA4BzgL,EAAQ0gL,aAAa,CAC5D,ED6B4DrC,GAC9CuC,EAA0BvC,EAAiB11H,KAAK,CAACl5B,QAAQ,CAI/D,GAFA4uJ,EAAiB11H,KAAK,CAACl5B,QAAQ,CAAG,SAE9B+wJ,OAAAA,EACA,MAAO,GAGX,IAAMK,EAAqBL,EAAgBl4H,qBAAqB,GAAGsuD,CAAC,CAC9DkqE,EAAWzC,EAAiB/1H,qBAAqB,GAAGsuD,CAAC,CAI3D,OAFAynE,EAAiB11H,KAAK,CAACl5B,QAAQ,CAAGmxJ,EAE3BE,EAAWD,EAAqBL,EAAgB/7I,SAAS,CAAG+5I,EAAgB,CACvF,CAEAuC,gBAAgBC,CAAY,CAAE3C,CAAgB,CAAE,CAC5C,GAAIA,OAAAA,GAQJ,GAJImB,GACA,IAAI,CAACQ,wBAAwB,CAACT,oBAAoB,CAAClB,GAGnD2C,IAAiBC,EAAAA,CAAmBA,CAACC,KAAK,CAAE,CAC5C,IAAM1C,EAAgBJ,EAAuBC,GAE7C,GAAI,IAAI,CAACkC,wBAAwB,CAAClC,EAAkBG,GAAgB,CAChE,IAAI,CAAC4B,eAAe,CAAC/nK,MAAM,GAC3B,IAAI,CAACioK,sBAAsB,CAAGjC,EAE9B,IAAI,CAAC2B,wBAAwB,CAAChB,YAAY,CAACX,GAC3C,IAAI,CAAC2B,wBAAwB,CAACrB,2BAA2B,CAACN,EAAkBG,GAE5E,MACJ,CAEA,IAAI,CAACwB,wBAAwB,CAACb,aAAa,CAACd,EAChD,CAEI2C,IAAiBC,EAAAA,CAAmBA,CAACE,MAAM,EAAI,IAAI,CAACb,sBAAsB,GAAKjC,GAC/E,IAAI,CAAC+B,eAAe,CAACgB,GAAG,GAEhC,CAEAC,oBAAoBL,CAAY,CAAE,CAC1BA,IAAiBC,EAAAA,CAAmBA,CAACzuD,OAAO,EAC5C,KAAI,CAACytD,mBAAmB,EAAIe,IAAiBC,EAAAA,CAAmBA,CAACC,KAAK,CAAG,EAAI,EAAC,EAGlF,IAAI,CAAChB,qBAAqB,CAACkB,GAAG,EAClC,CAEAtO,gBAAgBkO,CAAY,CAAE3C,CAAgB,CAAE,CAC5C,IAAI,CAACgD,mBAAmB,CAACL,GAEA,OAArB3C,GAIAmB,GACA,IAAI,CAACQ,wBAAwB,CAACT,oBAAoB,CAAClB,EAE3D,CAEAiD,4BAA4BN,CAAY,CAAE3C,CAAgB,CAAE,CACxD,IAAI,CAACgD,mBAAmB,CAACL,GACzB,IAAI,CAACD,eAAe,CAACC,EAAc3C,EACvC,CACJ,CAEAuB,EAAyBt+K,OAAO,CAAG,CAAC,gBAAiB,WAAY,0BAA0B,CAC3FF,EAAAA,CAAUA,CAACC,OAAO,CAAC,2BAA4Bu+K,E,mEE7GxC,OAAM2B,UAAoD18K,EAAAA,CAAWA,CACxErD,YAAYmxK,CAAwB,CAAE74J,CAAM,CAAE84J,CAAa,CAAE,CACzD,KAAK,GACL,IAAI,CAACC,sBAAsB,CAAGF,EAAyB2O,2BAA2B,CAAC/lL,IAAI,CAACo3K,GACxF,IAAI,CAACI,cAAc,CAAG,IAClB,IAAI,CAACp5I,QAAQ,CAACr8B,GACdwc,EAAOuS,WAAW,EACtB,EAEA,IAAI,CAAC2mJ,MAAM,CAAG,CAACjmJ,EAAQkmJ,IAAsBL,EAAcX,WAAW,CAACllJ,EAAQkmJ,EACnF,CAEAhqD,YAAa,CACT,IAAI,CAACiqD,aAAa,CAAG,KAAiBnyK,IAAjB,IAAI,CAACqgC,OAAO,EAAkB,WAAI,CAACA,OAAO,CAAY,GAAK,IAAI,CAACA,OAAO,CAC5F,IAAI,CAAC+xI,iBAAiB,CAAG,KAAqBpyK,IAArB,IAAI,CAAC2zF,WAAW,CAAiB,GAAK,IAAI,CAACA,WAAW,CAEvF,CAEA6sF,EAA4CjgL,OAAO,CAAG,CAAC,2BAA4B,SAAU,gBAAgB,E,gCCtBtG,IAAMyzK,EAA6B,CACtCzhE,UAAW,KACXlyE,QAAS,KACTogJ,SAAU,IACV/uJ,aAAc,KACdxqB,MAAO,KACPw4J,WAAY,KACZ9mI,SAAU,IACV+6D,YAAa,IACjB,C,yCCPO,OAAM+sF,EACTjgL,aAAc,CACV,IAAI,CAACkgL,MAAM,CAAG,EAAE,CAChB,IAAI,CAAC9sC,GAAG,CAAG,EACf,CAEA38H,MAAMlJ,CAAE,CAAE2hC,CAAO,CAAE,CAIf,OAHA,IAAI,CAAC6jB,KAAK,GACV,IAAI,CAACqgF,GAAG,CAAG7lI,EACX,IAAI,CAACmH,IAAI,CAAC,QAASw6B,GACZ,IAAI,CAGfx6B,KAAKgI,CAAI,CAAEwyB,CAAO,CAAE,CAKhB,MAJiB,KAAb,IAAI,CAACkkG,GAAG,EACR,IAAI,CAAC8sC,MAAM,CAAC7+K,IAAI,CAAC,IAAI,CAAC8+K,gBAAgB,CAACzjK,EAAMwyB,IAG1C,IAAI,CAGf7zC,IAAIqhB,CAAI,CAAEwyB,CAAO,CAAE,OACE,KAAb,IAAI,CAACkkG,GAAG,EAAW,QAAI,CAAC8sC,MAAM,CAACtjL,MAAM,GAIzC,IAAI,CAAC8X,IAAI,CAAC,MAAOw6B,GACjB,IAAI,CAAC6jB,KAAK,IAJC,IAAI,CAQnBA,OAAQ,CAGJ,OAFA,IAAI,CAACmtH,MAAM,CAACtjL,MAAM,CAAG,EACrB,IAAI,CAACw2I,GAAG,CAAG,GACJ,IAAI,CAGfgtC,cAAe,CACX,MAAO,SAAI,CAAChtC,GAAG,CAGnB+sC,iBAAiBzjK,CAAI,CAAEwyB,CAAO,CAAE,CAC5B,MAAO,CAAExyB,KAAMA,EAAMwyB,QAASA,EAASmxI,UAAW,IAAI3tK,OAAOisE,MAAM,EAAG,CAC1E,CACJ,CAEAshG,EAAengL,OAAO,CAAG,EAAE,CAC3BF,EAAAA,CAAUA,CAACC,OAAO,CAAC,iBAAkBogL,E,0CCjDrC,IAAMhlF,EAAY,CACdqlF,WAAY,QACZC,WAAY,OAChB,ECkBA,SAASC,EAASzuK,CAAO,CAAEX,CAAe,CAAE9N,CAAoB,EAC5D,IAAI,CAACm9K,KAAK,CAAGA,EACb,IAAI,CAAC1uK,OAAO,CAAGA,EACf,IAAI,CAACX,eAAe,CAAGA,EACvB,IAAI,CAAC9N,oBAAoB,CAAGA,EAE5B,IAAI,CAACo9K,cAAc,CAVO,KAW1B,IAAI,CAACC,gBAAgB,CAAG,EAC5B,CCSA,SAASC,EAAgBtoK,CAAM,CAAEhV,CAAoB,CAAE1B,CAAQ,CAAEmQ,CAAO,EACpE,IAAI,CAAC0uK,KAAK,CAAGA,EACb,IAAI,CAACnoK,MAAM,CAAGA,EACd,IAAI,CAAChV,oBAAoB,CAAGA,EAC5B,IAAI,CAACwqK,SAAS,CAAG,GACjB,IAAI,CAAC+S,UAAU,CAAG,GAClB,IAAI,CAACC,mBAAmB,CAAG,EAAE,CAE7B,IAAI,CAAC7uK,QAAQ,CAAG,CACZrQ,SAAUA,EACVmQ,QAASA,CACb,EAEA,IAAI,CAACgvK,wBAAwB,GAC7B,IAAI,CAACC,cAAc,CAAG,IAAI,CAACC,aAAa,CAAG,IAAI,CAAC39K,oBAAoB,CAACS,SAAS,CAAC,wCAAyC,CAAEsY,KAAM,IAAI,CAAC5b,IAAI,CAACuS,UAAU,GAAM,EAC9J,C,mCDjCAwtK,EAAS1gL,OAAO,CAAG,CAAC,UAAW,kBAAmB,uBAAuB,CAWzE0gL,EAASjlL,SAAS,CAACupI,OAAO,CAAG,WACrB,IAAI,CAACpoH,IAAI,GAAK,IAAI,CAAC+jK,KAAK,CAACH,UAAU,EACnC,KAAI,CAACI,cAAc,CAfC,IAeoB,EAGnBnhL,KAAAA,IAArB,IAAI,CAACkB,IAAI,CAACygL,MAAM,EAChB,KAAI,CAACP,gBAAgB,CAAG,IAAI,CAACQ,oBAAoB,CAAC,IAAI,CAAC1gL,IAAI,CAACygL,MAAM,CAACE,YAAY,EAEvF,EAEAZ,EAASjlL,SAAS,CAAC4lL,oBAAoB,CAAG,SAAUE,CAAgB,EAChE,OAAO,IAAI,CAACjwK,eAAe,CAACyC,YAAY,CAAG,8BAAgCwtK,EAAmB,MAAQ,IAAI,CAACX,cAAc,CAAG,MAAQ,IAAI,CAACA,cAAc,CAAG,sBAC9J,EAEA9gL,EAAAA,CAAUA,CAACgF,SAAS,CAAC,WAtCI,CACrBC,SAAU,CACNm8K,eAAgB,IAChBvgL,KAAM,IACNic,KAAM,GACV,EACAzX,SEbW,8uBFcXC,WAAYs7K,CAChB,G,SCPA5gL,EAAAA,CAAUA,CAACsF,UAAU,CAAC,kBAAmB07K,GACzCA,EAAgB9gL,OAAO,CAAG,CAAC,SAAU,uBAAwB,WAAY,UAAU,CA2BnFF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,QAzBC,CAClBC,SAAU,CACNpE,KAAM,IACNg7C,YAAa,KACb6lI,YAAa,IACbC,WAAY,IACZC,OAAQ,IACRC,SAAU,IACVC,cAAe,IACfC,aAAc,IACdC,UAAW,IACXC,UAAW,IACXlzF,SAAU,IACVmzF,UAAW,KACXC,WAAY,IACZC,WAAY,IACZf,cAAe,IACf5uB,YAAa,IACb4vB,gBAAiB,KACjBxmE,gBAAiB,IACrB,EACAx2G,SEhCW,k5DFiCXC,WAAY07K,CAChB,GAqBAA,EAAgBrlL,SAAS,CAACw/K,SAAS,CAAG,WAClC,IAAI,CAACmH,SAAS,CAAG,cAAgB,IAAI,CAAC5pK,MAAM,CAACkmB,GAAG,EAGpDoiJ,EAAgBrlL,SAAS,CAACksH,UAAU,CAAG,SAAU+G,CAAO,EACpD,IAAM2zD,EAAiB3zD,KAAuBjvH,IAAvBivH,EAAQuzD,UAAU,EAAkBvzD,KAAuBjvH,IAAvBivH,EAAQwzD,UAAU,CACvEI,EAAe5zD,KAAsBjvH,IAAtBivH,EAAQozD,SAAS,EAAkBpzD,KAAsBjvH,IAAtBivH,EAAQqzD,SAAS,CACrErzD,CAAAA,KAAiBjvH,IAAjBivH,EAAQ/tH,IAAI,EAAkB+tH,KAAwBjvH,IAAxBivH,EAAQ/yE,WAAW,EAAkB0mI,GAAkBC,CAAW,GAChG,IAAI,CAACrB,wBAAwB,EAErC,EAEAH,EAAgBrlL,SAAS,CAACwlL,wBAAwB,CAAG,WACjD,IAAI,CAACD,mBAAmB,CAAG,EAAE,CAE7B,IAAIpkK,EAAO,GACX,GAAI,IAAI,CAACukK,aAAa,CAClBvkK,EAAO,IAAI,CAACpZ,oBAAoB,CAACS,SAAS,CAAC,kCAC3C,IAAI,CAACs+K,oBAAoB,CAAG,IAAI,CAAC/+K,oBAAoB,CAACS,SAAS,CAAC,8CAA+C,CAC3Gu+K,OAAQ,IAAI,CAACV,SAAS,CACtBW,MAAO,IAAI,CAACV,SAAS,OAEtB,CACHnlK,EAAO,IAAI,CAACpZ,oBAAoB,CAACS,SAAS,CAAC,wCAC3C,IAAMvH,EAAM,CAAC,gCAAgC,EAAE,KAAmB+C,IAAnB,IAAI,CAACuiL,SAAS,CAAiB,gBAAkB,GAAG,CAAC,CAEpG,IAAI,CAACO,oBAAoB,CAAG,IAAI,CAAC/+K,oBAAoB,CAACS,SAAS,CAACvH,EAAK,CACjE8lL,OAAQ,IAAI,CAACP,UAAU,CACvBQ,MAAO,IAAI,CAACP,UAAU,CACtBJ,UAAW,IAAI,CAACA,SAAS,CACzBllK,KAAM,IAAI,CAACiyE,QAAQ,CACnB6zF,WAAY,IAAI,CAACV,SAAS,EAElC,CAEI,IAAI,CAACrhL,IAAI,CAACkqI,WAAW,CAAC83C,SAAS,EAC/B,IAAI,CAAC3B,mBAAmB,CAACz/K,IAAI,CAAC,CAC1BulB,KAAM,IAAI,CAACtjB,oBAAoB,CAACS,SAAS,CAAC,2CAA4C,CAAE2Y,KAAMA,CAAK,GACnGgmK,KAAM,IAAI,CAACp/K,oBAAoB,CAACS,SAAS,CAAC,4CAA6C,CAAE2Y,KAAMA,CAAK,GACpGk/F,oBAAqB,GACrBx2G,UAAW,IAAI,CAACu9K,YAAY,CAAC5oL,IAAI,CAAC,IAAI,CAAE,IACxCu8F,KAAM,WACV,GAGA,IAAI,CAAC71F,IAAI,CAACkqI,WAAW,CAACi4C,WAAW,EACjC,IAAI,CAAC9B,mBAAmB,CAACz/K,IAAI,CAAC,CAC1BulB,KAAM,IAAI,CAACtjB,oBAAoB,CAACS,SAAS,CAAC,6CAA8C,CAAE2Y,KAAMA,CAAK,GACrGgmK,KAAM,IAAI,CAACp/K,oBAAoB,CAACS,SAAS,CAAC,8CAA+C,CAAE2Y,KAAMA,CAAK,GACtGk/F,oBAAqB,GACrB/0E,QAAS,IAAI,CAACvjC,oBAAoB,CAACS,SAAS,CAAC,iDAC7C8+K,YAAa,IAAI,CAACv/K,oBAAoB,CAACS,SAAS,CAAC,sDACjDqB,UAAW,IAAI,CAAC09K,WAAW,CAAC/oL,IAAI,CAAC,IAAI,EACrCu8F,KAAM,aACV,EAER,EAEAsqF,EAAgBrlL,SAAS,CAACwnL,eAAe,CAAG,SAAUtiL,CAAI,EACtD,IAAIuiL,EAAUv8J,QAAQ0N,IAAI,CAAC,IAAI,CAAC1zB,IAAI,EAEpC,OADAuiL,EAAQC,IAAI,CAAGxiL,EAAKsxG,IAAI,CACjB,IAAI,CAACyvE,MAAM,CAAC,CACfvwH,IAAK+xH,CACT,GAAGjnL,IAAI,CACH,YACI,IAAI,CAAC0E,IAAI,CAACyiL,OAAO,CAAGF,EAAQC,IAAI,CAChC,IAAI,CAACvB,aAAa,CAAC,CAAEp9J,OAAQ,EAAM,GACnC,IAAI,CAAC6+J,OAAO,EAChB,GAAEppL,IAAI,CAAC,IAAI,EAEnB,EAEA6mL,EAAgBrlL,SAAS,CAAConL,YAAY,CAAG,SAAUle,CAAQ,EACvD,IAAI,CAACqJ,SAAS,CAAGrJ,EACjB,IAAI,CAACid,aAAa,CAAC,CACfp9J,OAAQmgJ,CACZ,GAEA,IAAI,CAAC0e,OAAO,GACZ,IAAI,CAACpC,wBAAwB,EACjC,EAEAH,EAAgBrlL,SAAS,CAAC4nL,OAAO,CAAG,WAChC,IAAI,CAAClxK,QAAQ,CAACrQ,QAAQ,CAClB,YACI,IAAIpD,EAAUzB,SAASyxB,aAAa,CAAC,IAAM,IAAI,CAAC0zJ,SAAS,CAAG,WACxD1jL,GACAA,EAAQxC,KAAK,EAErB,GAAEjC,IAAI,CAAC,IAAI,EAEnB,EAEA6mL,EAAgBrlL,SAAS,CAAC6nL,kBAAkB,CAAG,WACtC,IAAI,CAACtV,SAAS,EAAK,IAAI,CAAC+S,UAAU,EACnC,KAAI,CAACwC,gBAAgB,CAAG,CAAC,IAAI,CAACA,gBAAgB,CAEtD,EAEAzC,EAAgBrlL,SAAS,CAACunL,WAAW,CAAG,WACpC,IAAI,CAACjC,UAAU,CAAG,GAElB,IAAI,CAACY,QAAQ,CAAC,CACVxwH,IAAK,IAAI,CAACxwD,IAAI,GACf1E,IAAI,CACH,YACI,IAAI,CAAC8kL,UAAU,CAAG,GAClB,IAAI,CAACE,wBAAwB,EACjC,GAAEhnL,IAAI,CAAC,IAAI,EAEnB,C,qDGtJA,SAASupL,IACL,MAAO,CACHjyK,SAAU,IACVpM,SClBO,o6FDmBPqM,MAAO,CACH7Q,KAAM,IACN8iL,aAAc,IACd/2D,SAAU,YACVjlH,aAAc,IACdi8K,QAAS,IACTC,gBAAiB,IACjBC,gBAAiB,IACjBhC,cAAe,IACfC,aAAc,IACdC,UAAW,IACXC,UAAW,IACXlzF,SAAU,IACVmzF,UAAW,KACX6B,mBAAoB,KACpBnoE,WAAY,KACZC,gBAAiB,KACjBmoE,cAAe,IACnB,EACAhyK,iBAAkB,GAClB1M,WAAY,yBACZyM,aAAc,KAEd6U,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAMuyK,EAAE,CAACC,UAAU,CAAG,aAAexyK,EAAMktB,GAAG,CAEtD,CACJ,CAEA,SAASulJ,EAAuBrwK,CAAE,CAAE9R,CAAQ,CAAEmQ,CAAO,CAAEzO,CAAoB,CAAEsoH,CAAmB,CAAEkD,CAAoB,CAAEqX,CAAe,EACnI,IAAI,CAACl0H,QAAQ,CAAG,CACZyB,GAAIA,EACJ9R,SAAUA,EACVmQ,QAASA,EACTzO,qBAAsBA,EACtBsoH,oBAAqBA,EACrBkD,qBAAsBA,EACtBqX,gBAAiBA,CACrB,EAEA,IAAI,CAACksB,WAAW,CAAG,GACnB,IAAI,CAAC2xB,aAAa,CAAG,GACrB,IAAI,CAACC,eAAe,CAAG,GAEvB,IAAI,CAACC,gBAAgB,CAAGv6K,EAAAA,CAAoBA,CAACmzF,gBAAgB,CAACC,mBAAmB,CACjF,IAAI,CAAConF,WAAW,CAAG,IAAI,CAAC1jL,IAAI,CAAC2jL,OAAO,CAACxnL,MAAM,CAAG,IAAI,CAACsnL,gBAAgB,CACnE,IAAI,CAACG,gBAAgB,CAAG,IAAI,CAAC5jL,IAAI,CAAC2jL,OAAO,CAACxnL,MAAM,CAAG,IAAI,CAACsnL,gBAAgB,CACxE,IAAI,CAACI,qBAAqB,CAAG,IAAI,CAAC7jL,IAAI,CAAC2jL,OAAO,CAACxnL,MAAM,CAAG,IAAI,CAACsnL,gBAAgB,CAC7E,IAAI,CAACK,yBAAyB,CAAG,IAAI,CAACtyK,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,sDAAuD,CACjI2B,MAAO,IAAI,CAAC2+K,gBAAgB,GAEhC,IAAI,CAACG,yBAAyB,CAAG,IAAI,CAACvyK,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,wDAAyD,CACnI2B,MAAO,IAAI,CAAC2+K,gBAAgB,GAGhC,IAAI,CAACI,oBAAoB,CAAG,IAAI,CAACxyK,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,0DACzE,IAAI,CAAC2gL,UAAU,CAAG,CAAC,CAAC,IAAI,CAACjkL,IAAI,CAAC6xH,YAAY,CAC1C,IAAI,CAACqyD,SAAS,EAClB,C,4CApEA/kL,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,eAAgBgwK,GACrCA,EAAaxjL,OAAO,CAAG,EAAE,CAEzBF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,yBAA0B6+K,GAChDA,EAAuBjkL,OAAO,CAAG,CAAC,KAAM,WAAY,UAAW,uBAAwB,sBAAuB,uBAAwB,kBAAkB,CAkExJikL,EAAuBxoL,SAAS,CAACksH,UAAU,CAAG,SAAU+G,CAAO,EAC7BjvH,KAAAA,IAA1BivH,EAAQo1D,aAAa,EAAkBp1D,EAAQo1D,aAAa,CAACrvB,YAAY,EACzE,IAAI,CAACqwB,YAAY,GAGjBp2D,CAAAA,KAAsBjvH,IAAtBivH,EAAQozD,SAAS,EAAkBpzD,KAAsBjvH,IAAtBivH,EAAQqzD,SAAS,EAAkBrzD,KAAsBjvH,IAAtBivH,EAAQszD,SAAS,GACvF,IAAI,CAAC6C,SAAS,EAEtB,EAEAZ,EAAuBxoL,SAAS,CAACopL,SAAS,CAAG,WACzC,IAAI,CAACtyB,WAAW,CAAG,IAAI,CAACpgJ,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,IAAI,CAAC2gL,UAAU,CAAG,oDAAsD,yDAExI,IAAI,CAACG,mBAAmB,CAAG,IAAI,CAACH,UAAU,CACpC,IAAI,CAACzyK,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,+DAAgE,CACzGu+K,OAAQ,IAAI,CAACV,SAAS,CACtBW,MAAO,IAAI,CAACV,SAAS,CACrBW,WAAY,IAAI,CAACV,SAAS,GAE9B,IAAI,CAAC7vK,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,2CAA4C,CAAEu+K,OAAQ,IAAI,CAACV,SAAS,GAEvH,IAAI,CAACkD,cAAc,CAAG,IAAI,CAACJ,UAAU,CAC/B,IAAI,CAACzyK,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,+CAC7C,IAAI,CAACkO,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,yCAA0C,CAAEu+K,OAAQ,IAAI,CAACV,SAAS,GAErH,IAAI,CAACmD,cAAc,CAAG,IAAI,CAACL,UAAU,CAC/B,IAAI,CAACzyK,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,+CAC7C,IAAI,CAACkO,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,2CAA4C,CAAEu+K,OAAQ,IAAI,CAACV,SAAS,EAC3H,EAEAmC,EAAuBxoL,SAAS,CAACqpL,YAAY,CAAG,WAC5C,IAAI,CAACV,gBAAgB,CAAG,CAAuB,IAAvB,IAAI,CAACN,aAAa,CAAY,IAAI,CAACnjL,IAAI,CAAC2jL,OAAO,CAACxnL,MAAM,CAAG+M,EAAAA,CAAoBA,CAACmzF,gBAAgB,CAACC,mBAAmB,CAC1I,IAAI,CAAConF,WAAW,CAAG,IAAI,CAAC1jL,IAAI,CAAC2jL,OAAO,CAACxnL,MAAM,CAAG,IAAI,CAACsnL,gBAAgB,CACnE,IAAI,CAACG,gBAAgB,CAAG,IAAI,CAAC5jL,IAAI,CAAC2jL,OAAO,CAACxnL,MAAM,CAAG,IAAI,CAACsnL,gBAAgB,CACxE,IAAI,CAACI,qBAAqB,CAAG,IAAI,CAAC7jL,IAAI,CAAC2jL,OAAO,CAACxnL,MAAM,CAAG,IAAI,CAACsnL,gBAAgB,CAE7E,IAAI,CAACK,yBAAyB,CAAG,IAAI,CAACtyK,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,sDAAuD,CACjI2B,MAAO,IAAI,CAAC2+K,gBAAgB,GAEhC,IAAI,CAACG,yBAAyB,CAAG,IAAI,CAACvyK,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,wDAAyD,CACnI2B,MAAO,IAAI,CAAC2+K,gBAAgB,EAEpC,EAEAN,EAAuBxoL,SAAS,CAACosH,UAAU,CAAG,WAC1C,IAAI,CAAC11G,QAAQ,CAACrQ,QAAQ,CAACiV,MAAM,CAAC,IAAI,CAACmuK,UAAU,EACzC,IAAI,CAAChB,aAAa,EAClB,IAAI,CAACtC,aAAa,CAAC,CAAE5T,UAAW,EAAM,EAE9C,EAEAiW,EAAuBxoL,SAAS,CAAC0pL,kBAAkB,CAAG,SAAU3C,CAAM,CAAEC,CAAK,CAAE2C,CAAiB,CAAEt+J,CAAI,CAAEu+J,CAAQ,EAC5G,IAAMhqI,EAAO,IAAI,CAAClpC,QAAQ,CAACF,OAAO,CAAC,cAAcozK,EAAU,YACrD9+J,EAAO,IAAI,CAACpU,QAAQ,CAACF,OAAO,CAAC,cAAcozK,SAIjD,CAFA7C,EAAS,IAAI,CAAC8C,aAAa,CAAC9C,EAAQC,GAEhC,IAAI,CAACmC,UAAU,EACR,IAAI,CAACzyK,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,8EAA+E,CAC/Hu+K,OAAQA,EACRC,MAAOA,EACP37J,KAAMA,EACNu0B,KAAMA,EACN90B,KAAMA,CACV,GAEO,IAAI,CAACpU,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,wEAAyE,CACzHu+K,OAAQA,EACRC,MAAOA,EACP2C,kBAAmBA,EACnBt+J,KAAMA,EACNu0B,KAAMA,EACN90B,KAAMA,CACV,EAER,EAEA09J,EAAuBxoL,SAAS,CAAC6pL,aAAa,CAAG,SAAU9C,CAAM,CAAEC,CAAK,EACpE,IAAI8C,EAAe/C,EAMnB,OAJI,IAAI,CAAC6B,WAAW,EAChBkB,CAAAA,EAAe9C,EAAQ,IAAI,CAAC2B,gBAAgB,CAAG5B,CAAK,EAGjD+C,EAAe,CAC1B,EAEAtB,EAAuBxoL,SAAS,CAAC+pL,YAAY,CAAG,SAAU7kL,CAAI,EAC1D,OAAO,IAAI,CAAC+iL,OAAO,CAAC,CAChBzxE,KAAMtxG,EAAKsxG,IAAI,CACfwzE,OAAQ9kL,EAAK8kL,MAAM,GAElBxpL,IAAI,CAAC,IACF,IAAIk1D,EAEAA,EADAxoD,KAAkBlJ,IAAlBkJ,EAAShI,IAAI,EAAkBgI,KAAuBlJ,IAAvBkJ,EAAShI,IAAI,CAAC+kL,IAAI,CAC3C/8K,EAAShI,IAAI,CAAC+kL,IAAI,CAAC,EAAE,CAErB/8K,KAAkBlJ,IAAlBkJ,EAAShI,IAAI,CAAiBgI,EAAShI,IAAI,CAAGgI,EAExD,IAAI,CAACg9K,WAAW,CAACx0H,GACjB,IAAI,CAAC2zH,YAAY,GACjB,IAAI,CAACzB,OAAO,EAChB,GACCviL,KAAK,CAAC,KACH,IAAI,CAACqR,QAAQ,CAAC25G,mBAAmB,CAACC,kBAAkB,CAAC,IAAI,CAAC55G,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,gDAClG,IAAI,CAAC2hL,WAAW,CAAC,GACrB,EACR,EAEA3B,EAAuBxoL,SAAS,CAACoqL,aAAa,CAAG,SAAU10H,CAAG,EAC1D,OAAO,IAAI,CAACwyH,eAAe,CAAC,CACxBxyH,IAAKA,CACT,EACJ,EAEA8yH,EAAuBxoL,SAAS,CAACqqL,eAAe,CAAG,SAAU30H,CAAG,EAC5D,OAAO,IAAI,CAACyyH,eAAe,CAAC,CACxBzyH,IAAKA,CACT,GACKl1D,IAAI,CAAC,GAEK,IAAI,CAAC8pL,kBAAkB,CAACp9K,EAAShI,IAAI,CAAGgI,EAAShI,IAAI,CAAGwwD,GAAKl1D,IAAI,CAAC,KACrE,IAAI,CAAC6oL,YAAY,EACrB,IAEHhkL,KAAK,CAAC,KACH,IAAI,CAACqR,QAAQ,CAAC25G,mBAAmB,CAACC,kBAAkB,CAAC,IAAI,CAAC55G,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,iDACtG,EACR,EAEAggL,EAAuBxoL,SAAS,CAACsqL,kBAAkB,CAAG,SAAUC,CAAU,EAEtE,GAAI,CAAC,IAAI,CAACrlL,IAAI,CAAC2jL,OAAO,EAAI,QAAI,CAAC3jL,IAAI,CAAC2jL,OAAO,CAACxnL,MAAM,CAC9C,OAAO,IAAI,CAACqV,QAAQ,CAACyB,EAAE,CAAC4K,IAAI,GAGhC,IAAM6nI,EAAY,IAAI,CAAC1lJ,IAAI,CAAC2jL,OAAO,CAACxnL,MAAM,CAAG,EAC7C,GAAI,IAAI,CAAC6D,IAAI,CAAC2jL,OAAO,CAACj+B,EAAU,CAACr4I,EAAE,GAAKg4K,EAAWh4K,EAAE,CAAE,CACnD,IAAMi4K,EAAgB5/B,EAAY,EAGlC,GAAI4/B,GAAiB,EASjB,MAAO9lL,CAPH,eAAI,CAACQ,IAAI,CAACulL,WAAW,CAEX,IAAI,CAAC/zK,QAAQ,CAACk0H,eAAe,CAAC95H,UAAU,CAAC,IAAI,CAAC5L,IAAI,CAAC2jL,OAAO,CAAC2B,EAAc,CAAChrK,OAAO,CAAE,IAAI,CAACta,IAAI,CAAC2jL,OAAO,CAAC2B,EAAc,CAACj4K,EAAE,CAAE,IAAI,CAACvG,YAAY,EAEzI,IAAI,CAAC0K,QAAQ,CAAC68G,oBAAoB,CAACvgH,kBAAkB,CAAC,IAAI,CAAC9N,IAAI,CAACsa,OAAO,CAAE,IAAI,CAACta,IAAI,CAAC2jL,OAAO,CAAC2B,EAAc,CAACj4K,EAAE,CAAE,IAAI,CAACrN,IAAI,CAACqN,EAAE,GAGzH/R,IAAI,CAAC,IACZ0M,EAAShI,IAAI,EACb,KAAI,CAACA,IAAI,CAAC2jL,OAAO,CAAC2B,EAAc,CAACp7C,WAAW,CAAGliI,EAAShI,IAAI,CAACkqI,WAAW,EAG5E,IAAI,CAAClqI,IAAI,CAAC2jL,OAAO,CAAC9iL,MAAM,CAAC6kJ,EAAW,EACxC,GAEA,IAAI,CAAC1lJ,IAAI,CAAC2jL,OAAO,CAAC9iL,MAAM,CAAC6kJ,EAAW,GACpC,IAAI,CAAC8/B,kBAAkB,EAE/B,KAAO,CACH,IAAMC,EAAkB,IAAI,CAACzlL,IAAI,CAAC2jL,OAAO,CAACtmL,IAAI,CAAC,SAAUqoL,CAAO,EAC5D,OAAOA,EAAQr4K,EAAE,GAAKg4K,EAAWh4K,EAAE,EAEfvO,MAAAA,IAApB2mL,IACAA,EAAgBv7C,WAAW,CAACi4C,WAAW,CAAG,GAC1CsD,EAAgBhD,OAAO,CAAG,IAAI,CAACjxK,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,gDAE/E,CAEA,OAAO,IAAI,CAACkO,QAAQ,CAACyB,EAAE,CAAC4K,IAAI,EAChC,EAEAylK,EAAuBxoL,SAAS,CAAC0qL,kBAAkB,CAAG,WACX,SAA5B,IAAI,CAACtC,kBAAkB,EAC9B,IAAI,CAAC1xK,QAAQ,CAACk0H,eAAe,CAAC95H,UAAU,CAAC,IAAI,CAAC5L,IAAI,CAACsa,OAAO,CAAE,IAAI,CAACta,IAAI,CAACqN,EAAE,CAAE,IAAI,CAACvG,YAAY,EAAExL,IAAI,CAAC,IACxEwD,KAAAA,IAAlBkJ,EAAShI,IAAI,EACb,IAAI,CAACkjL,kBAAkB,CAAC,CAAEljL,KAAMgI,EAAShI,IAAI,EAErD,EAER,EAEAsjL,EAAuBxoL,SAAS,CAACkqL,WAAW,CAAG,SAAUx0H,CAAG,EAExD,IAAMm1H,EAAW,IAAI,CAAC3lL,IAAI,CAAC2jL,OAAO,CAAC,IAAI,CAAC3jL,IAAI,CAAC2jL,OAAO,CAACxnL,MAAM,CAAG,EAAE,CAEhE,GAAIwpL,KAAkB,IAAlBA,EAAqB,CACrB,IAAMC,EAAkB5/J,QAAQ0N,IAAI,CAACiyJ,EACrCC,CAAAA,EAAgB17C,WAAW,CAAC83C,SAAS,CAAG,GACxC,IAAI,CAAChiL,IAAI,CAAC2jL,OAAO,CAAC,IAAI,CAAC3jL,IAAI,CAAC2jL,OAAO,CAACxnL,MAAM,CAAG,EAAE,CAAGypL,CACtD,CAEK,IAAI,CAAC/B,qBAAqB,EAC3B,KAAI,CAACD,gBAAgB,CAAG,GAI5B,IAAI,CAAC5jL,IAAI,CAAC2jL,OAAO,CAAC/iL,IAAI,CAAC4vD,GACU,IAA7B,IAAI,CAACxwD,IAAI,CAAC2jL,OAAO,CAACxnL,MAAM,EACxB,IAAI,CAACqpL,kBAAkB,EAE/B,EAEAlC,EAAuBxoL,SAAS,CAAC+qL,iBAAiB,CAAG,SAAUC,CAAmB,EAE9E,IAAI,CAACtC,eAAe,CAAGsC,EACvB,IAAI,CAAC7E,aAAa,CAAC,CACf5T,UAAWyY,CACf,EACJ,EAEAxC,EAAuBxoL,SAAS,CAACmqL,WAAW,CAAG,SAAUphK,CAAM,EAE3D,IAAI,CAAC0/J,aAAa,CAAG1/J,EACrB,IAAI,CAACo9J,aAAa,CAAC,CACf5T,UAAWxpJ,CACf,GAEA,IAAI,CAAC6+J,OAAO,EAChB,EAEAY,EAAuBxoL,SAAS,CAAC4nL,OAAO,CAAG,WACvC,IAAI,CAAC6B,UAAU,CAAG,IAAI,CAAC/yK,QAAQ,CAACrQ,QAAQ,CAAC,KACrC7E,SAASyiC,cAAc,CAAC,IAAI,CAACskJ,UAAU,EAAE9nL,KAAK,EAClD,EACJ,EAEA+nL,EAAuBxoL,SAAS,CAACirL,kBAAkB,CAAG,WAClD,IAAI,CAACrC,WAAW,CAAG,CAAC,IAAI,CAACA,WAAW,CAChC,IAAI,CAACA,WAAW,CAChB,IAAI,CAACE,gBAAgB,CAAG,IAAI,CAAC5jL,IAAI,CAAC2jL,OAAO,CAACxnL,MAAM,CAAG,IAAI,CAACsnL,gBAAgB,CAExE,IAAI,CAACG,gBAAgB,CAAG,CAEhC,C,kBEtTA,SAASoC,EAAsB7kL,CAAQ,EACnC,MAAO,CACHyP,SAAU,IACVC,MAAO,CACHo1K,OAAQ,IACRx3I,QAAS,IACTy3I,gBAAiB,IACjBruB,MAAO,GACX,EACArzJ,SAAU,oFACVuhB,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAChCqW,EAAMiwI,YAAY,CAAGjwI,SAAAA,EAAMo1K,MAAM,CAAcp1K,EAAMq1K,eAAe,CAAGr1K,EAAM49B,OAAO,CAEpFj0C,EAAK8wB,QAAQ,CAAC,SAAU,SAAUiF,CAAM,EACpCpvB,EAAS,WACL0P,EAAMiwI,YAAY,CAAGvwH,SAAAA,EAAoB1f,EAAMq1K,eAAe,CAAGr1K,EAAM49B,OAAO,EAC/E59B,EAAMgnJ,KAAK,EAAI,EACtB,EACJ,CACJ,CACJ,CAvBA14J,E,OAAAA,CAAUA,CAAC0T,SAAS,CAAC,wBAAyBmzK,GAC9CA,EAAsB3mL,OAAO,CAAG,CAAC,WAAW,E,iCCDrC,IAAM8mL,EAAwBC,E,OAAAA,CAAmBA,CAACC,0BAA0B,CAAC,CAAEC,qBAAsB,CAAC,SAAU,WAAY,WAAW,CAAEC,cAAe,CAAC,OAAO,E,0CCCvK,IAAIC,EAAuBxgK,QAAQpgB,MAAM,CAAC,iBAAkB,CAAC,KAAM,aAAa,EAChF4gL,EAAqBpnL,OAAO,CAAC,wBAAyBqnL,EAAAA,CAAqBA,EAG3ED,EAAqBrhL,MAAM,CAAC,CACxB,WACA,SAAUuhL,CAAQ,EACdA,EAASC,SAAS,CAAC,OAAQ,CACvB,YACA,wBACA,SAAsBC,CAAS,CAAEC,CAAqB,EAClD,IAAIC,EAAkBF,EAAUzvI,WAAW,CAO3C,OALAyvI,EAAUzvI,WAAW,CAAG,SAAU0O,CAAK,EAEnC,OAAOihI,EADcD,EAAsBE,QAAQ,CAAClhI,GAExD,EAEO+gI,CACX,EACH,CACL,EACH,C,kDCjBD,SAASH,IACL,IAAI,CAACO,aAAa,CAAG,OAAW,KAAOphJ,SAASqhJ,MAAM,CAAG,uBAAwB,IACrF,CARAR,EAAsBpnL,OAAO,CAAG,EAAE,CAgBlConL,EAAsB3rL,SAAS,CAACisL,QAAQ,CAAG,SAAUlhI,CAAK,EACtD,OAAOsgI,EAAAA,CAAqBA,CAACe,KAAK,CAACrhI,EACvC,EAEA4gI,EAAsB3rL,SAAS,CAACqsL,aAAa,CAAG,SAAUC,CAAG,EACzD,OAAO,IAAI,CAACJ,aAAa,CAAClrL,IAAI,CAACsrL,GAAOA,EAAM,EAChD,C,0CCXA,SAASC,IACL,MAAO,CACHz2K,SAAU,IACVpM,SChBO,+rBDiBPqM,MAAO,CACHy2K,YAAa,IACbliD,SAAU,GACd,EACAj0H,iBAAkB,GAClB1M,WAAY,kCACZyM,aAAc,IAClB,CACJ,CAIA,SAASq2K,EAAgC1vK,CAAM,CAAEo9E,CAAQ,CAAEpyF,CAAoB,EAC3EoyF,EAAS39D,EAAE,CAAC,WAAY,WACpBzf,EAAOV,QAAQ,EACnB,GAEA,IAAI,CAACtU,oBAAoB,CAAGA,CAChC,CEzBA,SAAS2kL,EAAU92K,CAAI,CAAEC,CAAe,EACpC,MAAO,CACHnM,SCZO,2/BDaPoM,SAAU,IACVC,MAAO,CACH42K,WAAY,IACZ/6K,SAAU,IACVg7K,UAAW,IACXC,gBAAiB,IACjBC,eAAgB,GACpB,EACAnjL,WAAY,sBACZyM,aAAc,KACdC,iBAAkB,EACtB,CACJ,CAEA,SAAS02K,EAAoBl0K,CAAS,CAAExS,CAAQ,CAAE8zF,CAAQ,CAAEpyF,CAAoB,EAC5E,IAAI,CAAC2O,QAAQ,CAAG,CACZo0B,SAAUjyB,EACVwmB,QAASh5B,EACT0B,qBAAsBA,CAC1B,EAEA,IAAI,CAACilL,WAAW,CAAG,GACnB,IAAI,CAACC,OAAO,CAAG,GACf,IAAI,CAACC,WAAW,CAAG/yF,CAAQ,CAAC,EAAE,CAAClnE,aAAa,CAAC,sBAC7C,IAAI,CAACk6J,iBAAiB,CAAGhzF,CAAQ,CAAC,EAAE,CAAClnE,aAAa,CAAC,0BACnD,IAAI,CAAC4nI,OAAO,CAAG,IAAI,CAACnkJ,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,sCAEvDhH,SAAS4rL,qBAAqB,CAAC,SAChC,KAAI,CAACC,WAAW,CAAG,EAAG,EAG1B,IAAI,CAACrmJ,IAAI,EACb,C,uEFxCA3iC,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,wBAAyBw0K,GAC9CA,EAAsBhoL,OAAO,CAAG,EAAE,CAElCF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,kCAAmC8iL,GACzDA,EAAgCloL,OAAO,CAAG,CAAC,SAAU,WAAY,uBAAuB,CA8BxFkoL,EAAgCzsL,SAAS,CAACstL,MAAM,CAAG,SAAUtqI,CAAU,EACnE,IAAI,CAACsnF,QAAQ,CAAC,CAAE/wB,SAAUv2D,CAAW,EACzC,E,kBErCA3+C,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,YAAa20K,GAClCA,EAAUnoL,OAAO,CAAG,CAAC,OAAQ,kBAAkB,CAE/CF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,sBAAuBojL,GAC7CA,EAAoBxoL,OAAO,CAAG,CAAC,YAAa,WAAY,WAAY,uBAAuB,CAuC3FwoL,EAAoB/sL,SAAS,CAACgnC,IAAI,CAAG,WACjC,IAAI6lD,EAAS,IAAI,CAACn2E,QAAQ,CAACo0B,QAAQ,CAAC+hD,MAAM,GACtCv7E,EAAMu7E,EAAO9tD,SAAS,CAAC,EAAG8tD,EAAO/oF,OAAO,CAAC,KAAO,EACpD,KAAI,CAACmpL,OAAO,CAAG37K,EAAM,IAAI,CAACq7K,UAAU,CAAG,IAAM,IAAI,CAAC/6K,QAAQ,CAAC,EAAE,CAC7D,IAAI,CAACo7K,WAAW,CAAG,IAAI,CAACt2K,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,2BACpE,EAEAukL,EAAoB/sL,SAAS,CAACutL,OAAO,CAAG,WACpC,IAAI,CAACL,WAAW,CAACI,MAAM,GAEvB,GAAI,CACiB9rL,SAASgsL,WAAW,CAAC,UAElC,IAAI,CAACR,WAAW,CAAG,IAAI,CAACt2K,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,gCAChE,IAAI,CAACkO,QAAQ,CAAC2oB,OAAO,CACjB,YACI,IAAI,CAAC2tJ,WAAW,CAAG,IAAI,CAACt2K,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,2BACpE,GAAEhK,IAAI,CAAC,IAAI,EACX,KAGZ,CAAE,MAAOirE,EAAK,CACVhrC,QAAQC,IAAI,CAAC,uBACjB,CACJ,EAEAquJ,EAAoB/sL,SAAS,CAACytL,SAAS,CAAG,WACtC,IAAI,CAACP,WAAW,CAACI,MAAM,EAC3B,E,mDEzDAjpL,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,aAAc,CAC/B,QACA,OACA,WACA,WACA,aACA,KACA,kBACA,eACA,QACA,oBACA,kBACA,yBACA,SAAU5L,CAAK,CAAEyJ,CAAI,CAAE+e,CAAQ,CAAEtuB,CAAQ,CAAEkQ,CAAU,CAAE4B,CAAE,CAAEtC,CAAe,CAAEopC,CAAY,CAAEnmC,CAAK,CAAE8b,CAAiB,CAAEj3B,CAAe,CAAEgqH,CAAsB,EACvJ,MAAO,CACHj+G,SCjCG,k3NDkCHoM,SAAU,IACVC,MAAO,CACHnE,SAAU,IACVgxH,QAAS,IACT28B,eAAgB,GACpB,EACA51J,WAAY,CACR,SACA,WACA,SAAUoT,CAAM,CAAEo9E,CAAQ,EACtBp9E,EAAO2wK,iBAAiB,CAAG,KAC3B3wK,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAC7DgV,EAAO8kB,kBAAkB,CAAGjsB,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,oCACnGK,EAAOklB,eAAe,CAAGrsB,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,iCAChGK,EAAOglB,uBAAuB,CAAGnsB,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,yCACxGK,EAAO4wK,qBAAqB,CAAG93K,EAAgB6G,yBAAyB,CAAG,iDAE3EK,EAAO6iB,eAAe,CAAG,EAAE,CAC3B7iB,EAAO6wK,mBAAmB,CAAG,GAC7B7wK,EAAO8wK,aAAa,CAAG,GACvB9wK,EAAO+wK,kBAAkB,CAAG,GAC5B/wK,EAAOgxK,0BAA0B,CAAG,GACpChxK,EAAOixK,eAAe,CAAG,GACzBjxK,EAAO2lC,SAAS,CAAG,GACnB3lC,EAAO3R,WAAW,CAAGC,EAAAA,CAErB0R,CAAAA,EAAO05B,GAAG,CAAG,CACTw3I,uBAAwB,mCAAqClxK,EAAOkmB,GAAG,EAG3ElmB,EAAOmxK,SAAS,CAAG,SAAU/7F,CAAI,EAC7Bp1E,EAAO2lC,SAAS,CAAGyvC,EACnBp1E,EAAOoxK,kBAAkB,CAAG,GAC5B,IAAI9rI,EAAa,GACbM,EAAY,GAEhB,OAAQwvC,GACJ,IAAK,MACD9vC,EAAatlC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,qCAC/CuU,aAAAA,EAAOulC,SAAS,EAAmBvlC,aAAAA,EAAOulC,SAAS,CACnDD,EAAatlC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,wCACvB,aAArBuU,EAAOulC,SAAS,EACvBD,CAAAA,EAAatlC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,uCAAsC,EAG7Fm6C,EAAY,eACZ,KACJ,KAAK,aACDN,EAAatlC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,4CAC/CuU,CAAAA,aAAAA,EAAOulC,SAAS,EAAmBvlC,aAAAA,EAAOulC,SAAS,EAAmBvlC,aAAAA,EAAOulC,SAAS,GACtFD,CAAAA,EAAatlC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,8CAA6C,EAGpGm6C,EAAY,uBACZ,KACJ,SACIN,EAAatlC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,wCAC/CuU,aAAAA,EAAOulC,SAAS,EAAmBvlC,aAAAA,EAAOulC,SAAS,CACnDD,EAAatlC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,2CACvB,aAArBuU,EAAOulC,SAAS,EACvBD,CAAAA,EAAatlC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,0CAAyC,EAGhGm6C,EAAY,kBACZ5lC,EAAOqlC,gBAAgB,CAAG,KAAK,CAEvC,CAEArlC,EAAOwiJ,cAAc,CAACC,WAAW,CAACn9G,GAClCtlC,EAAOwiJ,cAAc,CAACE,UAAU,CAAC98G,GAEjC,IAAM9a,EAAOlT,EAAS,CAAC;;;;;;;;;;;wBAWvB,CAAC,EAAE5X,GAGHA,EAAO2wK,iBAAiB,CAACrlJ,MAAM,CAACR,EACpC,EAEA9qB,EAAOqxK,mBAAmB,CAAG,WACzBrxK,EAAO2lC,SAAS,CAAG,sBACnB3lC,EAAOwiJ,cAAc,CAACC,WAAW,CAACziJ,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,gDAExEuU,EAAO+3G,WAAW,CAAG/3G,EAAOnL,QAAQ,CAAC,EAAE,CACvC,IAAIy8K,EAAqBtxK,IAAAA,EAAOuxK,qBAAqB,CAACjtL,MAAM,CAAS0b,EAAOuxK,qBAAqB,CAAC,EAAE,CAAG,IAEnGD,QAAAA,EACAtxK,EAAOwxK,0BAA0B,CAACF,GAElCtxK,EAAOyxK,4BAA4B,EAE3C,EAEAzxK,EAAO0xK,SAAS,CAAG,WACf,IAAI3iL,EAAUiR,EAAOnL,QAAQ,CAAC,EAAE,CAEhC,OAAOqtC,EAAayvI,eAAe,CAAC5iL,GAAStL,IAAI,CAAC,SAAUmuL,CAAiB,EAC9B,OAAvCA,EAAkBC,gBAAgB,EAClC7xK,CAAAA,EAAOqlC,gBAAgB,CAAGusI,EAAkBC,gBAAgB,EAGhE,IAAIC,EAA6BF,IAAAA,EAAkBG,qBAAqB,CAACztL,MAAM,CAC3EwtL,GACA9xK,EAAOuxK,qBAAqB,CAAGK,EAAkBG,qBAAqB,CACtE/xK,EAAOgyK,kBAAkB,CAAGhyK,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,4CAClEuU,EAAOulC,SAAS,CAAG,QACnBvlC,EAAO8wK,aAAa,CAAG,CAACgB,IAExB9xK,EAAOiyK,wBAAwB,CAACL,EAAkBM,aAAa,EAC/DlyK,EAAO8wK,aAAa,CAAG,CAAC9wK,EAAO6wK,mBAAmB,EAAI7wK,EAAOulC,SAAS,EAG1EvlC,EAAO+wK,kBAAkB,CAAG/wK,EAAOgyK,kBAAkB,CACrDhyK,EAAO8xK,0BAA0B,CAAGA,EAEpCxoL,EAAS,KACL0W,EAAOmyK,WAAW,CAAG,EACzB,EAAG,IACP,EAAGhkK,QAAQ4C,IAAI,CACnB,EAEA/Q,EAAOiyK,wBAAwB,CAAG,SAAUG,CAAiB,EAQrDA,IACIA,IAAAA,EAAkB9tL,MAAM,EAAU8tL,SAAAA,CAAiB,CAAC,EAAE,CAAClvJ,QAAQ,EAC/DljB,EAAOgyK,kBAAkB,CAAGhyK,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,+CAClEuU,EAAOulC,SAAS,CAAG,YACZ6sI,IAAAA,EAAkB9tL,MAAM,EAAU8tL,aAAAA,CAAiB,CAAC,EAAE,CAAClvJ,QAAQ,EACtEljB,EAAOgyK,kBAAkB,CAAGhyK,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,+CAClEuU,EAAOulC,SAAS,CAAG,YACZ6sI,IAAAA,EAAkB9tL,MAAM,EAC/B0b,EAAOgyK,kBAAkB,CAAGhyK,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,4CAClEuU,EAAOulC,SAAS,CAAG,SACiB,IAA7B6sI,EAAkB9tL,MAAM,GAC/B0b,EAAOgyK,kBAAkB,CAAGhyK,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,oCAClEuU,EAAO6wK,mBAAmB,CAAG,GAC7B7wK,EAAOqyK,kBAAkB,CAAG,EAAE,CAC9BryK,EAAOqyK,kBAAkB,CAACtpL,IAAI,CAACqpL,CAAiB,CAAC,EAAE,CAAC58K,EAAE,GAGlE,EAEAwK,EAAOwxK,0BAA0B,CAAG,SAAUF,CAAkB,EAC5D,IAAIgB,EAAetyK,EAAOhB,IAAI,EAC9BszK,CAAAA,EAAavjL,OAAO,CAAGiR,EAAO+3G,WAAW,CACzCu6D,EAAarjL,YAAY,CAAGqiL,EAAmB97K,EAAE,CACjD88K,EAAap8I,WAAW,CAAGo7I,EAAmB90J,QAAQ,CACtD81J,EAAaC,oBAAoB,CAAGjB,EAAmBkB,qCAAqC,CAC5FF,EAAa9oI,UAAU,CAAG,WACtBxpC,EAAOzB,MAAM,EACjB,EAEA+zK,EAAazpI,QAAQ,CAAG,SAAU4pI,CAAwB,EACtD,OAAOvwI,EAAawwI,2BAA2B,CAACD,EACpD,EAEAzyK,EAAO2wK,iBAAiB,CAAC5lJ,KAAK,GAC9B,IAAMD,EAAOlT,EAAS,CAAC;;;;;;;;;wBASvB,CAAC,EAAE06J,GAEHxnJ,EAAKrL,EAAE,CAAC,WAAY,WAChB6yJ,EAAahzK,QAAQ,GACrBgzK,EAAe,IACnB,GAGAtyK,EAAO2wK,iBAAiB,CAACrlJ,MAAM,CAACR,EACpC,EAEA9qB,EAAOyxK,4BAA4B,CAAG,WAClCzxK,EAAO2wK,iBAAiB,CAAC5lJ,KAAK,GAC9B,IAAMD,EAAOlT,EAAS,4IAA4I5X,GAGlKA,EAAO2wK,iBAAiB,CAACrlJ,MAAM,CAACR,EACpC,EAEA9qB,EAAO2yK,0BAA0B,CAAG,WAChC3yK,EAAO8wK,aAAa,CAAG,GACvB9wK,EAAO4yK,qBAAqB,CAAG,GAC/B,IAAIC,EAA6Bz1F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,CAE/Fw8F,EAAuBkoE,mBAAmB,CAACD,EAA4B,oBAAoBpvL,IAAI,CAAC,WAC5F,IAAIsvL,EAAiBnyL,EAAgBkjK,uBAAuB,CAAC+uB,EAC7D7yK,CAAAA,EAAO4yK,qBAAqB,CAAG,GAER,OAAnBG,GACAA,EAAervL,KAAK,EAE5B,EACJ,EAEAsc,EAAOzB,MAAM,CAAG,WACZyB,EAAO4d,OAAO,CAAChd,SAAS,EAC5B,EAEAZ,EAAOgzK,iBAAiB,CAAG,SAAUztI,CAAS,CAAE7U,CAAU,EACtD1wB,EAAOixK,eAAe,CAAG,GACzBjxK,EAAOoE,IAAI,CAAGmhC,EAEdA,UAAAA,EAAyBvlC,EAAO05B,GAAG,CAAG15B,EAAOnL,QAAQ,CAAKmL,EAAO05B,GAAG,CAAG15B,EAAOqyK,kBAAkB,CAE3FryK,EAAO8wK,aAAa,GACrB9wK,EAAOnL,QAAQ,CAAG67B,EACOzpC,KAAAA,IAArB+Y,EAAOulC,SAAS,EAChBvlC,CAAAA,EAAOulC,SAAS,CAAGA,CAAQ,EAE/BvlC,EAAO8wK,aAAa,CAAG,GACL,UAAdvrI,GACAvlC,CAAAA,EAAOgyK,kBAAkB,CAAGhyK,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,2CAA0C,EAGhHuU,EAAO4N,KAAK,CAAC,4BAA6B,CAAE8iB,WAAYA,EAAY6U,UAAWA,CAAU,GAEjG,EAEAvlC,EAAOizK,gBAAgB,CAAG,WACtBjzK,EAAO2lC,SAAS,CAAG,GACnB3lC,EAAO2wK,iBAAiB,CAAC5lJ,KAAK,GAC9B/qB,EAAOwiJ,cAAc,CAACC,WAAW,CAACziJ,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,iCACxEuU,EAAOwiJ,cAAc,CAACE,UAAU,CAAC,GACrC,EAEA1iJ,EAAOkzK,iBAAiB,CAAG,SAAU/kI,CAAM,CAAEhmD,CAAI,EAE1B,KADFgmD,EAAOzhB,KAAK,EAEzB1sB,EAAOgzK,iBAAiB,CAAC7qL,EAAKic,IAAI,CAAEjc,EAAK8M,EAAE,CAEnD,CACJ,EACH,CACDiZ,KAAM,SAAUlO,CAAM,CAAEo9E,CAAQ,EAC5Bp9E,EAAO2wK,iBAAiB,CAAGxiK,QAAQjoB,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,EAEpGpO,EAAO4hB,gBAAgB,CAAC,WAAY,WAC3B5hB,EAAOnL,QAAQ,CAACvQ,MAAM,CAGvBuzB,EAAkBuhB,iBAAiB,CAACp5B,EAAOnL,QAAQ,CAAC,EAAE,CAAE,IAAOpR,IAAI,CAAC,SAAU0M,CAAQ,EAClF6P,EAAO+J,KAAK,CAAG5Z,EAAShI,IAAI,CAC5B6X,EAAO0xK,SAAS,EACpB,GALA1xK,EAAOzB,MAAM,EAOrB,EACJ,CACJ,CACJ,EACH,C,mPExRDjX,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,QAAS,CAC1B,KACA,QACA,OACA,WACA,WACA,aACA,YACA,UACA,kBACA,oBACA,eACA,mBACA,gBACA,uBACA,aACA,yBACA,wBACA,qBACA,SACII,CAAE,CACFhM,CAAK,CACLyJ,CAAI,CACJ+e,CAAQ,CACRtuB,CAAQ,CACRkQ,CAAU,CACVsC,CAAS,CACTrC,CAAO,CACPX,CAAe,CACf+e,CAAiB,CACjBqqB,CAAY,CACZh2B,CAAgB,CAChBxS,CAAa,CACb1O,CAAoB,CACpBuE,CAAU,CACVq7G,CAAsB,CACtB9pE,CAAqB,CACrBqyI,CAAkB,EAGlB,MAAO,CACHxmL,SCjEG,onYDkEHoM,SAAU,IACVC,MAAO,CACHnE,SAAU,IACVguB,gBAAiB,IACjBwiB,iBAAkB,IAClBwgF,QAAS,IACTlgF,UAAW,IACXJ,UAAW,IACX6rI,mBAAoB,IACpBJ,2BAA4B,KAC5BxuB,eAAgB,KAChB3gH,gBAAiB,GACrB,EACAj1C,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAE9B5B,EAAO8mC,cAAc,CAAGjuC,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,gCAC/FK,EAAO+mC,eAAe,CAAGluC,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,iCAChGK,EAAOozK,gBAAgB,CAAGv6K,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,kCACjGK,EAAOqzK,aAAa,CAAGx6K,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,+BAC9FK,EAAOszK,iBAAiB,CAAGz6K,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,mCAClGK,EAAOy9G,YAAY,CAAG5kH,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,gCAE7Fy9E,EAAS39D,EAAE,CAAC,WAAY,WACpBzf,EAAOV,QAAQ,EACnB,EACJ,EACH,CACD4O,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAMhO,oBAAoB,CAAGA,EAC7BgO,EAAMm6K,kBAAkB,CAAGA,EAC3Bn6K,EAAM3K,WAAW,CAAGC,EAAAA,CACpB0K,CAAAA,EAAMu6K,2BAA2B,CAAG,8BAEpC,IAAM55B,EAAY3uJ,EAAqBS,SAAS,CAAC,uCACjDuN,CAAAA,EAAMooH,aAAa,CAAG,CAClBhzH,UAAWpD,EAAqBS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAMu1I,CAAU,GACnGv1I,KAAMg9G,EAAAA,CACV,EAEApoH,EAAMw6K,oBAAoB,CAAG,GACCvsL,KAAAA,IAA1B+R,EAAM6oC,eAAe,EACrB7oC,CAAAA,EAAM6oC,eAAe,CAAG,EAAE,EAE9B7oC,EAAMm5G,QAAQ,CAAG,0CACjB,IAAIshE,EAAkBtlK,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,eAAe,CAAC,EAAE,EACtFq9F,EAAuBhnH,SAAS2pB,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,CAClFslK,EAAiB,EAAE,CACvB16K,EAAMkwH,SAAS,CAAG/6G,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,eAAe,CAAC,EAAE,EACpFpV,EAAMu2C,OAAO,CAAG,EAAE,CAClBv2C,EAAM26K,UAAU,CAAG,GACnB36K,EAAM43K,qBAAqB,CAAG93K,EAAgB6G,yBAAyB,CAAG,iDAC1E3G,EAAM46K,2BAA2B,CAC7B96K,EAAgB6G,yBAAyB,CAAG,iEAChD3G,EAAMi3K,WAAW,CAAGj3K,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,4BACzDuN,EAAM66K,oBAAoB,CAAG,GAC7B76K,EAAM86K,+BAA+B,CAAG,GACxC96K,EAAM+6K,0BAA0B,CAAG,kCAAoC/6K,EAAMktB,GAAG,CAChFltB,EAAMg7K,UAAU,CAAGh7K,UAAAA,EAAMusC,SAAS,CAElC,IAAI0uI,EAAiB/tL,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CA+BlE,GA9BAw8F,EAAuBkoE,mBAAmB,CAACmB,EAAgB,oBAAoBxwL,IAAI,CAAC,WAChFuV,EAAMa,UAAU,CAAC,aACrB,GAEAb,EAAMk7K,QAAQ,CAAG,CACbC,SAAUn7K,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,kCAC/C2oL,eAAgBp7K,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,sCACrD4oL,kBAAmBr7K,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,2CAC5D,EAEA2D,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,iCAAiC9X,IAAI,CAAC,SAAU0M,CAAQ,EAC7F6I,EAAMs7K,oBAAoB,CAAGnkL,CAAkB,IAAlBA,EAAShI,IAAI,CACtC6Q,CAA+B,IAA/BA,EAAMs7K,oBAAoB,EAC1Bt7K,EAAM8oC,KAAK,CAACyyI,WAAW,CAAG,GAC1Bv7K,EAAM66K,oBAAoB,CAAG,IAE7B76K,EAAM66K,oBAAoB,CAAG,EAErC,GAEAzkL,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,mDAAmD9X,IAAI,CAC5F,SAAU0M,CAAQ,EACd6I,EAAM86K,+BAA+B,CAAG3jL,CAAkB,IAAlBA,EAAShI,IAAI,EAEzD,WACI6Q,EAAM86K,+BAA+B,CAAG,EAC5C,GA8JA96K,EAAMib,MAAM,CAAC,UAGjB,SAAwByE,CAAM,EAC1B1f,EAAMw7K,WAAW,CAIjB,EAJoC97J,GAKzB62B,EAAQtN,IAAI,CAAC,SAAU2G,CAAI,EAC9B,OAAOA,EAAK8pE,UAAU,EALlC,EAL4C,IA1JxC15G,EAAM6pB,eAAe,EAAI7pB,EAAM6pB,eAAe,CAACv+B,MAAM,CACrD0U,EAAMy7K,SAAS,CAAGz7K,EAAM6pB,eAAe,CAACooB,SAAS,CAAC,MAClDyoI,EAAiB16K,EAAM6pB,eAAe,CAACooB,SAAS,CAAC,gBAC9C,CACHjyC,EAAMy7K,SAAS,CAAGz7K,EAAMnE,QAAQ,CAEhC,IAAI6/K,EAAc17K,EAAM4G,GAAG,CAAC,uBAAwB,SAAUtc,CAAK,CAAE6E,CAAI,EACrEurL,EAAiBvrL,EACjB6Q,EAAM27K,aAAa,GACnBD,GACJ,EACJ,CAGA,GAAI17K,EAAMqsC,gBAAgB,CAAE,CACxB,IAAIuvI,EAAmB57K,EAAM6oC,eAAe,CAAC73C,GAAG,CAAC,SAAUs8E,CAAC,EACxD,MAAO,CAAE9wE,GAAI8wE,CAAE,CACnB,GACIuuG,EAAuB,CAAC/zI,EAAsBI,uBAAuB,CAAC,CAACloC,EAAMqsC,gBAAgB,CAAC,CAAEuvI,GAAkB3yI,IAAI,CAAC,SAAUR,CAAC,EAClI,OAAOA,IAAMzoC,EAAMqsC,gBAAgB,CAAC3D,SAAS,CAAClsC,EAAE,EAEpDwD,CAAAA,EAAM26K,UAAU,CAAG,QAEnB36K,EAAM87K,mBAAmB,CAAG97K,EAAMqsC,gBAAgB,CAAC0vI,OAAO,EAAI,EAAE,CAGhE5mK,QAAQvoB,OAAO,CAACoT,EAAMqsC,gBAAgB,CAAC0vI,OAAO,CAAE,SAAUC,CAAM,EAC5Dh8K,EAAMu2C,OAAO,CAACxmD,IAAI,CAAC,CACf2L,OAAQsgL,EAAOx/K,EAAE,CACjBk9G,WAAYsiE,EAAOtiE,UAAU,CAC7BxhE,QAASp4C,EAAgByC,YAAY,CAAG,8BAAgCy5K,EAAOC,cAAc,CAAG,aAChGltK,MAAOitK,EAAOE,QAAQ,CAAG,IAAMF,EAAOG,OAAO,CAC7C/lI,SAAU4lI,EAAOnlE,KAAK,CACtBjgE,mBACI,CAAE52C,EAAM6oC,eAAe,CAACp7C,QAAQ,CAACuuL,EAAOx/K,EAAE,GAAKwD,EAAMqsC,gBAAgB,CAAC3D,SAAS,CAACM,UAAU,CAACv7C,QAAQ,CAACuuL,EAAOx/K,EAAE,GAC7Gq/K,CACR,EACJ,GAEA77K,EAAMw6K,oBAAoB,CAAGx6K,EAAMu2C,OAAO,CAACtN,IAAI,CAAC,SAAUR,CAAC,EACvD,MAAO,CAACA,EAAEmO,kBAAkB,GAIhC52C,EAAMo8K,sBAAsB,CAAG,EAAE,CAEjC,IAAIhsI,EAAa,IAAIhvC,KAAKpB,EAAMqsC,gBAAgB,CAAC3D,SAAS,CAAC2zI,WAAW,CACtEr8K,CAAAA,EAAM8oC,KAAK,CAAG,CACVwzI,cAAelsI,KAAAA,EAAW7F,cAAc,GACxCgyI,UAAWnsI,KAAAA,EAAW7F,cAAc,GAAY,OAAS,OACzDiyI,WAAYpsI,KAAAA,EAAW7F,cAAc,GAAY6F,EAAahvC,KAAKq4C,GAAG,GACtE7b,QAAS59B,EAAMqsC,gBAAgB,CAAC3D,SAAS,CAACb,OAAO,EAGjD7nC,EAAMqsC,gBAAgB,CAAC3D,SAAS,CAAC+zI,qBAAqB,GACtDz8K,EAAM8oC,KAAK,CAAC4zI,gBAAgB,CAAG18K,EAAMqsC,gBAAgB,CAAC3D,SAAS,CAAC+zI,qBAAqB,CAAChvL,QAAQ,CAAC,WAC/FuS,EAAM8oC,KAAK,CAAC6zI,YAAY,CAAG38K,EAAMqsC,gBAAgB,CAAC3D,SAAS,CAAC+zI,qBAAqB,CAAChvL,QAAQ,CAAC,QAC3FuS,EAAM8oC,KAAK,CAAC8zI,SAAS,CAAG58K,EAAMqsC,gBAAgB,CAAC3D,SAAS,CAAC+zI,qBAAqB,CAAChvL,QAAQ,CAAC,UACxFuS,EAAM8oC,KAAK,CAAC+zI,gBAAgB,CAAG,QAC/B78K,EAAM8oC,KAAK,CAACg0I,WAAW,CAAG98K,UAAAA,EAAM8oC,KAAK,CAAC+zI,gBAAgB,CACtD78K,EAAM8oC,KAAK,CAACi0I,qBAAqB,CAAG/8K,EAAMqsC,gBAAgB,CAAC3D,SAAS,CAAC+zI,qBAAqB,CAAChvL,QAAQ,CAAC,aACpGuS,EAAM8oC,KAAK,CAACyyI,WAAW,CAAGv7K,EAAMqsC,gBAAgB,CAAC3D,SAAS,CAACK,aAAa,EAG5E/oC,EAAMg9K,YAAY,CAAG7nK,QAAQ0N,IAAI,CAAC7iB,EAAM8oC,KAAK,CACjD,MAEI9oC,EAAM87K,mBAAmB,CAAG,EAAE,CAC9B97K,EAAMo8K,sBAAsB,CAAG,EAAE,CAEjCp8K,EAAM8oC,KAAK,CAAG,CACV4zI,iBAAkB,GAClBC,aAAc,GACdE,iBAAkB,QAClBC,YAAa,GACbF,UAAW,GACXG,sBAAuB,GACvBT,cAAe,GACfC,UAAW,OACXC,WAAYp7K,KAAKq4C,GAAG,GACpB7b,QAAS,GACT29I,YAAa,EACjB,EAsCJ,OAlCAv7K,EAAM27K,aAAa,CAAG,WAQlB,GAPIjB,EAAeuC,WAAW,CAAC,CAAC,yBAA0B,cAAc,IACpEj9K,EAAMk9K,uBAAuB,CAAGl9K,EAAM8oC,KAAK,CAAC6zI,YAAY,CACpD38K,EAAMqsC,gBAAgB,EACtBrsC,CAAAA,EAAM8oC,KAAK,CAAC+zI,gBAAgB,CAAG78K,EAAMqsC,gBAAgB,CAAC3D,SAAS,CAAC+zI,qBAAqB,CAAChvL,QAAQ,CAAC,cAAgB,QAAU,MAAK,GAIlIuS,EAAMk9K,uBAAuB,CAAE,CAE/B,GAAIC,KAAqBlvL,GAArBkvL,EACA,IAAIA,EAAoBn9K,EAAMib,MAAM,CAAC,yBAA0B,SAAUyE,CAAM,EAC5D,SAAXA,GACA1f,CAAAA,EAAM8oC,KAAK,CAACg0I,WAAW,CAAG,EAAI,CAEtC,EAGC98K,CAAAA,EAAM8oC,KAAK,CAAC6zI,YAAY,EACzB38K,CAAAA,EAAM8oC,KAAK,CAAC+zI,gBAAgB,CAAG,MAAK,CAE5C,CAGA78K,EAAMkmI,SAAS,CAAGw0C,EAAejtL,QAAQ,CAAC,0BACpCiT,EAAckB,gBAAgB,CAAC,0BAC/BlB,EAAckB,gBAAgB,CAAC,eACrC5B,EAAMo9K,cAAc,CAAGprL,EAAqBS,SAAS,CAAC,yCAA0C,CAAEyzI,UAAWlmI,EAAMkmI,SAAS,EAChI,EAEIw0C,EAAepvL,MAAM,EACrB0U,EAAM27K,aAAa,GAGf37K,EAAMusC,SAAS,EACnB,IAAK,QACDvsC,EAAMq9K,oBAAoB,CAAG78K,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,4CACvE,KACJ,KAAK,WACDuN,EAAMq9K,oBAAoB,CAAG78K,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,+CACvE,KACJ,KAAK,WACDuN,EAAMq9K,oBAAoB,CAAG78K,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,+CACvE,KACJ,KAAK,WACDuN,EAAMq9K,oBAAoB,CAAG78K,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,+CACvE,KACJ,SACIuN,EAAMq9K,oBAAoB,CAAG78K,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,qCAC/E,CAEAuN,EAAMs9K,qBAAqB,CAAG,SAAUC,CAAkB,EAEtDv9K,EAAM8oC,KAAK,CAACwzI,aAAa,CAAG,GAExBiB,CAAuB,IAAvBA,GAEAv9K,EAAM8oC,KAAK,CAAC4zI,gBAAgB,CAAG,GAC/B18K,EAAM8oC,KAAK,CAAC6zI,YAAY,CAAG,GAC3B38K,EAAM8oC,KAAK,CAAC8zI,SAAS,CAAG,KAExB58K,EAAM8oC,KAAK,CAAC4zI,gBAAgB,CAAG,GAC/B18K,EAAM8oC,KAAK,CAAC6zI,YAAY,CAAG,GAC3B38K,EAAM8oC,KAAK,CAAC8zI,SAAS,CAAG,GAEhC,EAoBA58K,EAAMw9K,oBAAoB,CAAG,WACzBx9K,EAAMy9K,yBAAyB,CAAG,GAClCz9K,EAAMg4K,0BAA0B,CAAG,GACnCh4K,EAAM8oC,KAAK,CAACwzI,aAAa,CAAG,GAExBt8K,EAAMwpJ,cAAc,GACpBxpJ,EAAMwpJ,cAAc,CAACC,WAAW,CAACzpJ,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,sCACtEuN,EAAMwpJ,cAAc,CAACG,iBAAiB,CAAC3pJ,EAAM+6K,0BAA0B,EAE/E,EAEA/6K,EAAM6U,YAAY,CAAG,SAAUE,CAAI,EAC/B/U,EAAM8oC,KAAK,CAAC0zI,UAAU,CAAGznK,CAC7B,EAEA/U,EAAM09K,UAAU,CAAG,WACf,GAAI19K,QAAAA,EAAM2sC,SAAS,CACf3sC,EAAM26K,UAAU,CAAG,aAChB,CAEH,IAAIrwJ,EAAUnV,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,4BAA4B,CAAC,EAAE,EAC7FkV,EAAQ5V,QAAQ,CAAC,eACrB,CAEA,IAAIipK,EAAU39K,EAAMqsC,gBAAgB,CAAGrsC,EAAMqsC,gBAAgB,CAAC3D,SAAS,CAAClsC,EAAE,CAAG,KACzEX,EAAWmE,EAAMy7K,SAAS,CAC1BmC,EAAU59K,EAAM87K,mBAAmB,CAAC7pI,SAAS,CAAC,MAC9C4rI,EAAa79K,EAAMo8K,sBAAsB,CAACnqI,SAAS,CAAC,MACpDuqI,EAAa,KACjB,GAAIx8K,EAAM89K,iBAAiB,EAAI99K,EAAM+9K,kBAAkB,CACnD,IAAI7gJ,EAAcl9B,EAAM89K,iBAAiB,CAACthL,EAAE,EAAI,GAC5CygC,EAAej9B,EAAM+9K,kBAAkB,CAACvhL,EAAE,EAAI,GAGtD,SAASqxE,EAAQ94D,CAAI,EAEjB,OAAO,IAAI3T,KAAK2T,CADhBA,EAAOA,GAAQ,IAAI3T,IAAG,EACD+pC,WAAW,GAAIp2B,EAAKq2B,QAAQ,GAAIr2B,EAAKmqC,OAAO,GAAI,GAAI,GAAI,GACjF,CAEIl/C,EAAM8oC,KAAK,CAACwzI,aAAa,GACrBt8K,SAAAA,EAAM8oC,KAAK,CAACyzI,SAAS,CAErBC,CADAA,EAAa3uG,GAAQ,EACV5uB,OAAO,CAACu9H,EAAWt9H,OAAO,GAAK,GACnCl/C,UAAAA,EAAM8oC,KAAK,CAACyzI,SAAS,CAE5BC,CADAA,EAAa3uG,GAAQ,EACV20B,QAAQ,CAACg6E,EAAWpxI,QAAQ,GAAK,GACX,SAA1BprC,EAAM8oC,KAAK,CAACyzI,SAAS,EAC5BC,CAAAA,EAAa3uG,EAAQ,IAAIzsE,KAAKpB,EAAM8oC,KAAK,CAAC0zI,UAAU,EAAC,GAIvCvuL,KAAAA,IAAlB+R,EAAM6sH,OAAO,EAAkB7sH,QAAAA,EAAM2sC,SAAS,EAC9C3sC,EAAM4U,KAAK,CAAC,aAImB,KAA/B5U,EAAMs7K,oBAAoB,GAC1Bt7K,EAAM8oC,KAAK,CAACyyI,WAAW,CAAG,GAC1Bv7K,EAAM66K,oBAAoB,CAAG,IAyBjCmD,EAtBkCC,WAAW,CACzC,CACIN,QAASA,EACT9hL,SAAUA,EACV+hL,QAASA,EACTC,WAAYA,EACZ3gJ,YAAaA,EACbD,aAAcA,CAClB,EACA,CACIy/I,iBAAkB18K,EAAM8oC,KAAK,CAAC4zI,gBAAgB,CAC9CwB,YAAal+K,EAAM8oC,KAAK,CAAC6zI,YAAY,CACrCE,iBAAkB78K,EAAM8oC,KAAK,CAAC+zI,gBAAgB,CAC9CE,sBAAuB/8K,EAAM8oC,KAAK,CAACi0I,qBAAqB,CACxDP,WAAYA,EACZjB,YAAav7K,EAAM8oC,KAAK,CAACyyI,WAAW,CACpCqB,UAAW58K,EAAM8oC,KAAK,CAAC8zI,SAAS,EAEpC58K,EAAM2sC,SAAS,CACf3sC,EAAM8oC,KAAK,CAAClL,OAAO,EAGVnzC,IAAI,CAAC,WACVuV,QAAAA,EAAM2sC,SAAS,EACf8tI,EAAgB/lK,QAAQ,CAAC,mBAEzBpkB,EAAS,WACLmqL,EAAgBhmK,WAAW,CAAC,mBAC5BzU,EAAM26K,UAAU,CAAG,QACnB36K,EAAMg9K,YAAY,CAAG7nK,QAAQ0N,IAAI,CAAC7iB,EAAM8oC,KAAK,EAC7CtoC,EAAWK,UAAU,CAAC,kBAAmBhF,EAC7C,EAAG,MAGHvL,EAAS,WACLg6B,EAAQ5V,QAAQ,CAAC,kBAEjBpkB,EAAS,WAQL,GAPAg6B,EAAQ7V,WAAW,CAAC,kBACpB6V,EAAQ7V,WAAW,CAAC,gBACpBjU,EAAWK,UAAU,CAAC,kBAAmBhF,GAEzCmE,EAAMm6K,kBAAkB,CAACgE,iBAAiB,CAACn+K,EAAM2sC,SAAS,CAAE9wC,GAGxDohC,GAAgBj9B,EAAM+9K,kBAAkB,CAACK,sBAAsB,CAAE,CACjE,IAAIC,EAAgBr+K,EAAMs+K,4BAA4B,CAACziL,EAAU6+K,GAC7D2D,GACAv7K,EAAU6G,IAAI,CAACpT,EAAWqT,SAAS,CAACy0K,EAAcpiL,EAAE,CAAEoiL,EAAc/jL,QAAQ,CAAE,KAAOmF,OAAO,EAEpG,CACJ,EAAG,IACP,EAAG,IAEX,EACJ,EAOAO,EAAMs+K,4BAA4B,CAAG,SAAUziL,CAAQ,CAAEsW,CAAS,EAI9D,IAAK,IAHDpc,EAAU,GACVuE,EAAW,GAENnM,EAAI,EAAGC,EAAIyN,EAASvQ,MAAM,CAAE6C,EAAIC,EAAGD,IAIxC,GAHA4H,EAAU8F,CAAQ,CAAC1N,EAAE,CACrBmM,EAAW6X,CAAS,CAAChkB,EAAE,CAEnBoI,EAAWiU,wBAAwB,CAACzU,EAASuE,GAC7C,MAAO,CAAE2B,GAAIlG,EAASuE,SAAUA,CAAS,EAIjD,OAAO,IACX,EAEA0F,EAAMu+K,OAAO,CAAG,WACZ,GAAIv+K,WAAAA,EAAM26K,UAAU,CAChB,MAAO,GAGX,GAAI,CAAC36K,EAAM2sC,SAAS,EAAI3sC,UAAAA,EAAM2sC,SAAS,OAEnC,CAAI3sC,CAAAA,EAAMk9K,uBAAuB,EAAIl9K,UAAAA,EAAM8oC,KAAK,CAAC+zI,gBAAgB,GAAgB,CAAC78K,EAAM8oC,KAAK,CAACg0I,WAAW,GAIlG98K,EAAM87K,mBAAmB,CAACxwL,MAAM,CAAG0U,EAAMo8K,sBAAsB,CAAC9wL,MAAM,CAAG,EAGpF,GAAI0U,QAAAA,EAAM2sC,SAAS,CACf,KAAK,IAAI7nB,KAAQ9kB,EAAMg9K,YAAY,CAE/B,GAAKh9K,EAAMg9K,YAAY,CAAC3jK,cAAc,CAACyL,IAIvC,GAAIA,eAAAA,GAAyBpzB,kBAAAA,OAAOzH,SAAS,CAAC0vB,QAAQ,CAACrxB,IAAI,CAAC0X,EAAMg9K,YAAY,CAACR,UAAU,EAAuB,CAC5G,GAAIx8K,EAAMg9K,YAAY,CAACR,UAAU,CAACj9H,OAAO,KAAOv/C,EAAM8oC,KAAK,CAAC0zI,UAAU,CAACj9H,OAAO,GAC1E,MAAO,GAEP,QAER,CAEA,GAAIv/C,EAAMg9K,YAAY,CAACl4J,EAAK,GAAK9kB,EAAM8oC,KAAK,CAAChkB,EAAK,CAC9C,MAAO,GAEf,CAEJ,OAAO9kB,KAAuB/R,IAAvB+R,EAAMg9K,YAAY,EAAkBh9K,OAAAA,EAAMg9K,YAAY,EAIrC,eAApBh9K,EAAM2sC,SAAS,GACf3sC,EAAMw+K,gBAAgB,CAAG,GAEzBC,EAD6CC,sBAAsB,CAAC1+K,EAAMy7K,SAAS,CAAC,EAAE,EAC5DhxL,IAAI,CAAC,SAAU0M,CAAQ,EAC7C6I,EAAM2+K,SAAS,CAAGxnL,EAAShI,IAAI,CAC/B6Q,EAAMw+K,gBAAgB,CAAG,GACzB,IAAIxxE,EAAW9/G,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,YAAY,CAAC,EAAE,CAC5D43F,GACAA,EAAStiH,KAAK,EAEtB,IAIRsV,EAAM4+K,4BAA4B,CAAG,WACjC,IAAIC,EAAap+K,EAAQ,aACzBT,CAAAA,EAAM8+K,sBAAsB,CAAG,CAC3BC,yBAA0B/sL,EAAqBS,SAAS,CAAC,2BAA4B,CACjFo3C,KAAMg1I,EAAW7+K,EAAM+9K,kBAAkB,CAACiB,qBAAqB,CAAE,WAAY,IAC7EjqK,KAAM8pK,EAAW7+K,EAAM+9K,kBAAkB,CAACiB,qBAAqB,CAAE/wL,KAAAA,EAAW,GAChF,GACAgxL,mBAAoBjtL,EAAqBS,SAAS,CAAC,2BAA4B,CAC3Eo3C,KAAMg1I,EAAW7+K,EAAM+9K,kBAAkB,CAACmB,kBAAkB,CAAE,WAAY,IAC1EnqK,KAAM8pK,EAAW7+K,EAAM+9K,kBAAkB,CAACmB,kBAAkB,CAAEjxL,KAAAA,EAAW,GAC7E,GACAkxL,iBAAkBntL,EAAqBS,SAAS,CAAC,2BAA4B,CACzEo3C,KAAMg1I,EAAW7+K,EAAM+9K,kBAAkB,CAACx7G,gBAAgB,CAAE,WAAY,IACxExtD,KAAM8pK,EAAW7+K,EAAM+9K,kBAAkB,CAACx7G,gBAAgB,CAAEt0E,KAAAA,EAAW,GAC3E,EACJ,CACJ,EAEA+R,EAAMo/K,eAAe,CAAG,SAAUliJ,CAAW,EACzC,IAAK,IAAI/uC,EAAI,EAAGA,EAAI6R,EAAM2+K,SAAS,CAACrzL,MAAM,CAAE6C,IAExC,GAAI6R,EAAM2+K,SAAS,CAACxwL,EAAE,CAACqO,EAAE,EAAI0gC,EAAa,CACtCl9B,EAAM89K,iBAAiB,CAAG99K,EAAM2+K,SAAS,CAACxwL,EAAE,CACxC6R,IAAAA,EAAM89K,iBAAiB,CAACuB,YAAY,CAAC/zL,MAAM,EAC3C0U,EAAM+9K,kBAAkB,CAAG/9K,EAAM89K,iBAAiB,CAACuB,YAAY,CAAC,EAAE,CAClEr/K,EAAM4+K,4BAA4B,GAClCU,EAAmBt/K,EAAM+9K,kBAAkB,GAG3C/9K,EAAM+9K,kBAAkB,CAAG,KAE/B/9K,EAAM8oC,KAAK,CAACy2I,YAAY,CAAG,GAC3B9sE,EAAqB9gF,SAAS,CAAG,EACjC,IAAIq7E,EAAW9/G,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,YAAY,CAAC,EAAE,CAC5D43F,GACAA,EAAStiH,KAAK,GAElB,MACJ,CAER,EAEAsV,EAAMw/K,gBAAgB,CAAG,SAAUviJ,CAAY,EAC3C,IAAK,IAAI9uC,EAAI,EAAGA,EAAI6R,EAAM89K,iBAAiB,CAACuB,YAAY,CAAC/zL,MAAM,CAAE6C,IAC7D,GAAI6R,EAAM89K,iBAAiB,CAACuB,YAAY,CAAClxL,EAAE,CAACqO,EAAE,GAAKygC,EAAc,CAC7Dj9B,EAAM+9K,kBAAkB,CAAG/9K,EAAM89K,iBAAiB,CAACuB,YAAY,CAAClxL,EAAE,CAClE6R,EAAMy/K,mBAAmB,CAAGztL,EAAqBS,SAAS,CAAC,uCAAwC,CAC/FitL,gBAAiB1/K,EAAM+9K,kBAAkB,CAAC4B,mBAAmB,CAC7DC,iBAAkB5/K,EAAM+9K,kBAAkB,CAAC8B,kBAAkB,CAC7DzrL,MAAO4L,EAAM+9K,kBAAkB,CAAC4B,mBAAmB,GAEvD3/K,EAAM4+K,4BAA4B,GAClC5+K,EAAM8oC,KAAK,CAACy2I,YAAY,CAAG,GAE3BD,EAAmBt/K,EAAM+9K,kBAAkB,EAC3CtrE,EAAqB9gF,SAAS,CAAG,EACjC,IAAIq7E,EAAW9/G,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,YAAY,CAAC,EAAE,CAC5D43F,GACAA,EAAStiH,KAAK,GAElB,MACJ,CAER,EAIAsV,EAAM8/K,qBAAqB,CAAG,SAAU7hD,CAAO,CAAE8hD,CAAa,EAC1D,IAAI9hD,CAAAA,EAAQlwI,OAAO,CAAC,+CAAiD,EAAC,EAuBlE,OAAO8R,EAAKymC,WAAW,CAAC23F,GAtBxB,IAAI+hD,EAAa,4EAoBjB,OAnBA7qK,QAAQvoB,OAAO,CAACmzL,EAAe,SAAUE,CAAY,EAEjD,IAAI70K,EAAO60K,IAAAA,EAAaxuK,OAAO,CAASwuK,EAAaxuK,OAAO,CAAGwuK,EAAa/1J,QAAQ,CAQpF9e,EAAOA,CADPA,EAAOA,CADPA,EAAOA,CADPA,EAAOA,CADPA,EAAOA,EAAK3L,OAAO,CAAC,eAAgB,UAAS,EACjCA,OAAO,CAAC,YAAa,GAAE,EACvBA,OAAO,CAAC,mBAAoB,GAAE,EAC9BA,OAAO,CAAC,mBAAoB,GAAE,EAC9BA,OAAO,CAAC,uBAAwB,IAE5CugL,GACI,gDACA50K,EAAKtJ,WAAW,GAChB,aACAsJ,EAAK3L,OAAO,CAAC,kBAAmB,SAChC,QACR,GACQugL,GAAc,QAI9B,EAEA,IAAIV,EAAqB,SAAU/xI,CAAU,EACzC,IAAIkM,EAAM,IAAIr4C,KACdq4C,EAAIuF,QAAQ,CAAC,EAAG,EAAG,EAAG,GAEtB,IAAIkhI,EAAcp1I,EAAO2O,EAAKvmC,EAAiBquD,aAAa,CAACh0B,EAAWyxI,qBAAqB,CAAE,IAAO,QAClGkB,EAAc,GACdA,CAAAA,EAAcjyL,KAAAA,CAAQ,EAE1B,IAAIkyL,EAAWr1I,EAAO2O,EAAKvmC,EAAiBquD,aAAa,CAACh0B,EAAW2xI,kBAAkB,CAAE,IAAO,QAC5FiB,EAAW,GACXA,CAAAA,EAAWlyL,KAAAA,CAAQ,EAEvB,IAAImyL,EAAet1I,EAAO2O,EAAKvmC,EAAiBquD,aAAa,CAACh0B,EAAWg1B,gBAAgB,CAAE,IAAO,QAC9F69G,EAAe,GACfA,CAAAA,EAAenyL,KAAAA,CAAQ,EAG3B+R,EAAMqgL,aAAa,CAAG,CAClBH,YAAaA,EACbC,SAAUA,EACVC,aAAcA,CAClB,CACJ,EAgBA,SAASt1I,EAAOC,CAAK,CAAEC,CAAK,CAAEhmC,CAAQ,EAMlC+lC,EAAQ,IAAI3pC,KAAK2pC,GAEjB,IAAIE,EAAWD,CADfA,EAAQ,IAAI5pC,KAAK4pC,EAAK,EACCD,EACvB,IAAI7L,MAAM+L,GAGV,OAAQjmC,GACJ,IAAK,QACD,OAAOgmC,EAAMG,WAAW,GAAKJ,EAAMI,WAAW,EAClD,KAAK,SACD,MACI,CAACH,GAAAA,EAAMG,WAAW,GAAUH,EAAMI,QAAQ,EAAC,EAAGJ,GAAAA,EAAMG,WAAW,GAAUH,EAAMI,QAAQ,IACtFL,CAAAA,GAAAA,EAAMI,WAAW,GAAUJ,EAAMK,QAAQ,EAAC,CAEnD,KAAK,QACD,OAAOC,KAAKC,KAAK,CAACL,EAhBfM,OAiBP,KAAK,OACD,OAAOF,KAAKC,KAAK,CAACL,EAnBhBO,MAoBN,KAAK,QACD,OAAOH,KAAKC,KAAK,CAACL,EAtBfQ,KAuBP,KAAK,UACD,OAAOJ,KAAKC,KAAK,CAACL,EAzBbS,IA0BT,KAAK,UACD,OAAOL,KAAKC,KAAK,CAACL,EA5Bb,IA6BT,SACI,MACR,CACJ,CA/CAjrC,EAAMuF,MAAM,CAAG,WACXvF,EAAM4U,KAAK,CAAC,YAChB,EAEA5U,EAAMsgL,IAAI,CAAG,WACLtgL,EAAM89K,iBAAiB,CAACuB,YAAY,CAAC/zL,MAAM,CAAG,GAAK0U,EAAM+9K,kBAAkB,CAC3E/9K,EAAM+9K,kBAAkB,CAAG,KAE3B/9K,EAAM89K,iBAAiB,CAAG,KAE9BrrE,EAAqB9gF,SAAS,CAAG,CACrC,CAqCJ,CACJ,CACJ,EACH,C,kHE7qBDrjC,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,wBAAyBu+K,GAC9CA,EAAsB/xL,OAAO,CAAG,EAAE,CAElCF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,kCAAmC4sL,GACzDA,EAAgChyL,OAAO,CAAG,CAAC,SAAU,uBAAwB,kBAAmB,gBAAgB,CAEhH,IAAI6nD,EAAgB,KAEpB,SAASkqI,IACL,MAAO,CACH5sL,SCjBO,ukHDkBPoM,SAAU,IACVC,MAAO,CACHygL,aAAc,IACdvjJ,YAAa,IACbwjJ,YAAa,IACbC,cAAe,IACfrtI,YAAa,GACjB,EACA1/C,WAAY,kCACZyM,aAAc,KACdC,iBAAkB,EACtB,CACJ,CAEA,SAASkgL,EAAgCx5K,CAAM,CAAE45K,CAAsB,CAAE9gL,CAAe,CAAE+gL,CAAe,EACrGxqI,EAAgBwqI,EAEhB,IAAI,CAACltI,UAAU,CAAG,GAClB,IAAI,CAACwgF,YAAY,CAAG,GACpB,IAAI,CAAC2sD,eAAe,CAAG,GACvB,IAAI,CAACC,iBAAiB,CAAG,EAAE,CAC3B,IAAI,CAACC,WAAW,CAAGlhL,EAAgByC,YAAY,CAAG,wCAClD,IAAI,CAACvQ,oBAAoB,CAAG4uL,EAG5B,IAAI,CAACK,mBAAmB,CAACj6K,GACzB,IAAI,CAACk6K,oBAAoB,EAC7B,CE/BA,SAASC,IACL,MAAO,CACHxtL,SChBO,syDDiBPoM,SAAU,IACVC,MAAO,CACHygL,aAAc,IACdvjJ,YAAa,IACbwjJ,YAAa,IACbU,kBAAmB,IACnBC,QAAS,IACTV,cAAe,GACnB,EACA/sL,WAAY,uCACZyM,aAAc,KACdC,iBAAkB,EACtB,CACJ,CAMA,SAASghL,EAAqCt6K,CAAM,CAAE45K,CAAsB,EACxE,IAAI,CAAC5uL,oBAAoB,CAAG4uL,CAChC,CFSAJ,EAAgCv2L,SAAS,CAACg3L,mBAAmB,CAAG,SAAUj6K,CAAM,EAC5EA,EAAOJ,GAAG,CACN,oBACA,UAAUtc,CAAK,EACX,IAAI,CAACw2L,eAAe,CAAG,GACvB,IAAI,CAACI,oBAAoB,EAC7B,GAAEz4L,IAAI,CAAC,IAAI,GAGfue,EAAOJ,GAAG,CACN,kBACA,UAAUtc,CAAK,CAAE6E,CAAI,EACbA,GACA,IAAI,CAACoyL,iBAAiB,CAACpyL,GAE3B,IAAI,CAAC+xL,oBAAoB,EAC7B,GAAEz4L,IAAI,CAAC,IAAI,EAEnB,EAEA+3L,EAAgCv2L,SAAS,CAACu3L,YAAY,CAAG,WACrD,OAAOnrI,EAAc8gE,qBAAqB,CAAC,IAAI,CAACxjE,UAAU,CAAE,IAAI,CAACzW,WAAW,EAAEzyC,IAAI,CAC9E,UAAUgmD,CAAS,EACXA,GAAaA,IAAAA,EAAUnlD,MAAM,CAE7B,IAAI,CAACm2L,yBAAyB,CAAChxI,CAAS,CAAC,EAAE,GAG3C,IAAI,CAACswI,iBAAiB,CAAGtwI,EACzB,IAAI,CAAC0jF,YAAY,CAAG,GACpB,IAAI,CAACxgF,UAAU,CAAG,GAE1B,GAAElrD,IAAI,CAAC,IAAI,EACX,UAAU4G,CAAS,EACf,IAAI,CAAC0xL,iBAAiB,CAACz1L,MAAM,CAAG,EAChC,IAAI,CAAC6oI,YAAY,CACb9kI,cAAAA,EACM,IAAI,CAAC2C,oBAAoB,CAACS,SAAS,CAAC,6CACpC,IAAI,CAACT,oBAAoB,CAACS,SAAS,CAAC,uCAClD,GAAEhK,IAAI,CAAC,IAAI,EAEnB,EAEA+3L,EAAgCv2L,SAAS,CAACy3L,uBAAuB,CAAG,SAAUC,CAAO,EACjF,OAAO,IAAI,CAAClB,YAAY,CAACx3I,IAAI,CAAC,SAAU2G,CAAI,EACxC,OAAO+xI,EAAQjmL,MAAM,GAAKk0C,EAAKl0C,MAAM,EAE7C,EAEA8kL,EAAgCv2L,SAAS,CAACs3L,iBAAiB,CAAG,SAAUpyL,CAAI,EACxE,IAAI,CAACglI,YAAY,CAAG,GACpB,IAAI,CAAC4sD,iBAAiB,CAAG,EAAE,CAC3B,IAAI,CAACN,YAAY,CAAC1wL,IAAI,CAACZ,EAC3B,EAEAqxL,EAAgCv2L,SAAS,CAACw3L,yBAAyB,CAAG,SAAUtyL,CAAI,EAC3E,IAAI,CAACuyL,uBAAuB,CAACvyL,GAG9B,IAAI,CAACglI,YAAY,CAAG,IAAI,CAACniI,oBAAoB,CAACS,SAAS,CAAC,iDAFxD,IAAI,CAAC8uL,iBAAiB,CAACpyL,GAI3B,IAAI,CAACwkD,UAAU,CAAG,EACtB,EAEA6sI,EAAgCv2L,SAAS,CAAC23L,cAAc,CAAG,SAAUj0L,CAAK,EACtE,IAAI,CAAC8yL,YAAY,CAACx0I,SAAS,CAACt+C,EAChC,EAEA6yL,EAAgCv2L,SAAS,CAAC43L,cAAc,CAAG,WACvD,IAAI,CAAC1tD,YAAY,CAAG,GACpB,IAAI,CAAC2tD,eAAe,CAAChqI,KAAK,CAAG,IAAI,CAACnE,UAAU,CAC5C,IAAI,CAACA,UAAU,CAAG,GAClB,IAAI,CAACotI,iBAAiB,CAAG,EAAE,CAC3B,IAAI,CAACD,eAAe,CAAG,EAC3B,EAEAN,EAAgCv2L,SAAS,CAACi3L,oBAAoB,CAAG,WAC7D,IAAI,CAACY,eAAe,CAAG,CACnBlqI,UAAW,GACXC,WAAY,GACZC,MAAO,GACP0hE,kBAAmB,GACnBD,aAAc,GACdxhC,KAAM,EACV,CACJ,EE5HAzpF,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,6BAA8Bm/K,GACnDA,EAA2B3yL,OAAO,CAAG,EAAE,CAEvCF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,uCAAwC0tL,GAC9DA,EAAqC9yL,OAAO,CAAG,CAAC,SAAU,uBAAuB,CAoBjF8yL,EAAqCr3L,SAAS,CAAC4qB,YAAY,CAAG,SAAUE,CAAI,EACxE,IAAI,CAACssK,OAAO,CAAGtsK,CACnB,E,wBExBAzmB,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,uBAAwB+/K,GAC7CA,EAAqBvzL,OAAO,CAAG,EAAE,CAEjCF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,iCAAkCouL,GACxDA,EAA+BxzL,OAAO,CAAG,CAAC,SAAU,WAAY,aAAc,eAAgB,UAAW,uBAAwB,mBAAmB,CAGpJ,IAAIgS,EAAa,KAEbyhL,EAAmB,KAGvB,SAASC,EAAmCjsL,CAAY,CAAEinC,CAAW,CAAE0gJ,CAAO,CAAEuE,CAAM,CAAEvkJ,CAAO,EAC3F,IAAI,CAACqS,YAAY,CAAGh6C,EACpB,IAAI,CAACy+B,WAAW,CAAGwI,EACnB,IAAI,CAAC8S,OAAO,CAAG4tI,EACf,IAAI,CAAC1tI,MAAM,CAAGiyI,EACd,IAAI,CAACt6I,OAAO,CAAGjK,CACnB,CAIA,SAASmkJ,IACL,MAAO,CACHhiL,SAAU,IACVpM,SCnCO,6tCDoCPqM,MAAO,CACHjK,QAAS,IACTE,aAAc,IACdinC,YAAa,IACb2S,SAAU,IACVW,WAAY,IACZ+oI,qBAAsB,IACtBnpI,WAAY,KACZgyI,iBAAkB,KAClB3xI,UAAW,IACf,EACAnwC,iBAAkB,GAClB1M,WAAY,iCACZyM,aAAc,IAClB,CACJ,CAIA,SAAS2hL,EAA+Bh7K,CAAM,CAAEo9E,CAAQ,CAAEi+F,CAAY,CAAEC,CAAc,CAAEC,CAAO,CAAEvwL,CAAoB,CAAEwwL,CAAkB,EACrIhiL,EAAa6hL,EAEbJ,EAAmBO,EAEnB,IAAI,CAACC,YAAY,CAAG,GACpB,IAAI,CAACC,kBAAkB,CAAGT,EAAiBhoF,eAAe,CAAC,IAAI,CAAC7pD,UAAU,EAC1E,IAAI,CAACuyI,WAAW,CAAG,GACnB,IAAI,CAACplD,OAAO,CAAG,GACf,IAAI,CAACqlD,aAAa,CAAG,KACrB,IAAI,CAAC5wL,oBAAoB,CAAGA,EAC5B,IAAI,CAACqD,WAAW,CAAGC,EAAAA,CAAWA,CAE1B4pC,MAAM99B,KAAK27C,KAAK,CAAC,IAAI,CAAC3M,UAAU,IAChC,KAAI,CAACA,UAAU,CAAG,IAAG,EAGpBmyI,EAAQ5jJ,eAAe,CAAC,IAAI,CAAC8R,SAAS,GACvC,KAAI,CAACA,SAAS,CAAG,EAAE,EAGvBzpC,EAAO4hB,gBAAgB,CAAC,eAAgB,IAAI,CAACi6J,oBAAoB,CAACp6L,IAAI,CAAC,IAAI,GAC3Eue,EAAOiU,MAAM,CAAC,gBAAiB,IAAI,CAACg6I,QAAQ,CAACxsK,IAAI,CAAC,IAAI,GAEtD,IAAI,CAACq6L,YAAY,CAAG,IAAI,CAACC,OAAO,CAACt6L,IAAI,CAAC,IAAI,EAC1C,IAAI,CAACu6L,YAAY,CAAG,IAAI,CAACt6K,OAAO,CAACjgB,IAAI,CAAC,IAAI,CAC9C,CAIAu5L,EAA+B/3L,SAAS,CAAC84L,OAAO,CAAG,WAC/C,IAAInF,EAAU,IAAI,CAACntI,SAAS,CAACz/C,GAAG,CAAC,SAAU0rK,CAAQ,EAC/C,OAAOA,EAAShhK,MAAM,GAGtB+9K,EAA2B,IAAIyI,EAAmC,IAAI,CAACjsL,YAAY,CAAE,IAAI,CAACinC,WAAW,CAAE0gJ,EAAS,IAAI,CAACxtI,UAAU,CAAE,IAAI,CAACqyI,YAAY,EAEtJ,OADA,IAAI,CAACG,aAAa,CAAG,IAAI,CAAC/yI,QAAQ,CAAC,CAAEozI,WAAYxJ,CAAyB,GACnE,IAAI,CAACmJ,aAAa,CAACn4L,IAAI,CAAC,IAAI,CAACy4L,eAAe,CAACz6L,IAAI,CAAC,IAAI,EAAG,IAAI,CAAC06L,eAAe,CAAC16L,IAAI,CAAC,IAAI,EAClG,EAEAu5L,EAA+B/3L,SAAS,CAACi5L,eAAe,CAAG,SAAU/rL,CAAQ,EACzE,GAAIA,MAAAA,EAAS2sB,MAAM,CAAU,CACzB,IAAI,CAACq/J,eAAe,CAAChsL,GACrB,MACJ,CAKA,OAHA,IAAI,CAACyrL,aAAa,CAAG,KACrB,IAAI,CAACD,WAAW,CAAG,GACnBniL,EAAWK,UAAU,CAAC,kBAAmB,CAAC,IAAI,CAAC9K,OAAO,CAAC,EAChD,IAAI,CAACy6C,UAAU,CAAC,CAAEC,UAAW,IAAI,CAACA,SAAS,CAAEL,WAAY,IAAI,CAACA,UAAU,CAAEM,UAAW,EAAM,EACtG,EAEAsxI,EAA+B/3L,SAAS,CAACk5L,eAAe,CAAG,SAAUC,CAAiB,EAClF,IAAI,CAACT,WAAW,CAAG,EACvB,EAEAX,EAA+B/3L,SAAS,CAACye,OAAO,CAAG,WAM/C,OAL2B,OAAvB,IAAI,CAACk6K,aAAa,GAClB,IAAI,CAACA,aAAa,CAACp5J,YAAY,CAACz6B,OAAO,GACvC,IAAI,CAAC6zL,aAAa,CAAG,MAGlB,IAAI,CAACpyI,UAAU,CAAC,CAAEC,UAAW,KAAML,WAAY,KAAMM,UAAW,EAAK,EAChF,EAEAsxI,EAA+B/3L,SAAS,CAAC44L,oBAAoB,CAAG,SAAUnoK,CAAQ,CAAEC,CAAQ,EACpFD,GAAYC,GAAYD,EAASpvB,MAAM,GAAKqvB,EAASrvB,MAAM,EAI/D,IAAI,CAAC2pK,QAAQ,EACjB,EAEA+sB,EAA+B/3L,SAAS,CAACgrK,QAAQ,CAAG,WAChD,IAAI13B,EAAU,GACd,GAAI,QAAI,CAAC9sF,SAAS,CAACnlD,MAAM,CACrBiyI,EAAU,OACP,CACH,IAAIntF,EAAa6xI,EAAiBhoF,eAAe,CAAC,IAAI,CAAC7pD,UAAU,EAC7D,KAAI,CAACA,UAAU,GAAK,IAAI,CAACsyI,kBAAkB,EAAIT,EAAiBxoG,YAAY,CAACrpC,EAAY,IAAI,CAACsyI,kBAAkB,IAChHnlD,CAAAA,EAAU,EAAI,CAEtB,CAEA,IAAI,CAACA,OAAO,CAAGA,CACnB,C,0CEzIAjvI,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,eAAgB,CAC/B,QACA,kBACA,KACA,SAAU3sB,CAAK,CAAE0J,CAAe,CAAEsC,CAAE,EAChC,SAASw6B,EAAYrhC,CAAG,CAAEzE,CAAM,EAC5BV,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAI2tB,EAAchnB,EAAGuI,KAAK,GAKtBhc,EAAU06B,EAJMhyB,GAAG,CAACkE,EAAK,CACzB+tB,QAASF,EAAYz6B,OAAO,CAC5BmI,OAAQA,CACZ,GACsBrM,IAAI,CACtB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOA,CACX,GAGJ,OADA56B,EAAQ66B,YAAY,CAAGJ,EAChBz6B,CACX,CAEA,SAASywC,EAAa7jC,CAAG,CAAEpM,CAAI,EAC3BiH,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAI2tB,EAAchnB,EAAGuI,KAAK,GAEtBhc,EAAU06B,EADMnyB,IAAI,CAACqE,EAAKpM,EAAM,CAAEm6B,QAASF,EAAYz6B,OAAO,GAC5ClE,IAAI,CACtB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOA,CACX,GAGJ,OADA56B,EAAQ66B,YAAY,CAAGJ,EAChBz6B,CACX,CAEA,MAAO,CACHsvL,YAAa,SAAUv9I,CAAG,CAAE2iJ,CAAa,CAAE12I,CAAS,CAAE/O,CAAO,EACzD,OAAOwB,EAAat/B,EAAgByC,YAAY,CAAG,oBAAqB,CACpE,GAAGm+B,CAAG,CACN,GAAG2iJ,CAAa,CAChB92I,UAAWI,EACX/O,QAASA,CACb,EACJ,EAEAmO,YAAa,SAAUu3I,CAAkB,CAAEC,CAAU,SACjD,EACWnkJ,EAAat/B,EAAgByC,YAAY,CAAG,oCAAsC+gL,GAEtFlkJ,EAAat/B,EAAgByC,YAAY,CAAG,wBAA0B+gL,EACjF,EAEA50I,iBAAkB,SAAUz4C,CAAY,EACpC,OAAOmpC,EAAat/B,EAAgByC,YAAY,CAAG,6BAA+BtM,EACtF,EAEAyoL,uBAAwB,SAAU3oL,CAAO,EACrC,OAAO6mC,EAAY98B,EAAgByC,YAAY,CAAG,wCAA0CxM,EAChG,EAEA4iL,gBAAiB,SAAU5iL,CAAO,EAC9B,OAAO6mC,EAAY98B,EAAgByC,YAAY,CAAG,8BAAgCxM,GAAStL,IAAI,CAAC,SAAU0M,CAAQ,EAC9G,OAAOA,EAAShI,IAAI,EAAI,CAACgI,EAAShI,IAAI,CAACq0L,YAAY,CAAGrsL,EAAShI,IAAI,CAAGiT,EAAGpT,MAAM,CAACmI,EACpF,EACJ,EAEAuiL,4BAA6B,SAAU+J,CAAkC,EACrE,OAAOrkJ,EAAat/B,EAAgByC,YAAY,CAAG,oCAAqCkhL,EAC5F,EAEA3yI,UAAW,SAAUlB,CAAI,CAAE3C,CAAU,EACjC,OAAO7N,EAAat/B,EAAgByC,YAAY,CAAG,oCAAqC,CACpF7G,OAAQk0C,EACRK,aAAchD,CAClB,EACJ,EACAkD,4BAA6B,SAAUJ,CAAmB,EACtD,OAAO3Q,EAAat/B,EAAgByC,YAAY,CAAG,oCAAqCwtC,EAC5F,EAEA2zI,6BAA8B,SAAUzmJ,CAAY,EAChD,OAAO7mC,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,uDAAyD06B,EAC7G,CACJ,CACJ,EACH,C,gECzFM,OAAM0mJ,EACTj1L,aAAc,CACV,IAAI,CAACknK,QAAQ,CAAG,IAAIC,EAAAA,CACxB,CAEA+tB,yBAA0B,CACtB,OAAO,IAAI,CAAChuB,QAAQ,CAAC9uI,IAAI,CAACv5B,CAAAA,EAAAA,EAAAA,CAAAA,EAAO,GAAWu7C,EAAM19B,IAAI,GAAKy4K,EAAAA,CAAWA,CAAC3vF,UAAU,EACrF,CAEAiqF,kBAAkBxxI,CAAS,CAAE9wC,CAAQ,CAAE,CACnC,IAAI,CAAC+5J,QAAQ,CAAC98G,IAAI,CAAC,CACf1tC,KAAMuhC,EACN9wC,SAAUA,CACd,EACJ,CACJ,CAEA8nL,EAAmBn1L,OAAO,CAAG,EAAE,CAC/BF,EAAAA,CAAUA,CAACC,OAAO,CAAC,qBAAsBo1L,E,iHCbE,OAErCG,EACFp1L,YAAYsD,CAAoB,CAAE+Q,CAAK,CAAEjD,CAAe,CAAEuC,CAAoB,CAAE7B,CAAU,CAAE4B,CAAE,CAAE/L,CAAY,CAAE0tL,CAAoB,CAAE,CAChI,IAAI,CAACC,UAAU,CAAGhyL,EAClB,IAAI,CAACqX,MAAM,CAAGtG,EACd,IAAI,CAACmG,gBAAgB,CAAGpJ,EACxB,IAAI,CAAC+Q,qBAAqB,CAAGxO,EAC7B,IAAI,CAAC6yH,WAAW,CAAG10H,EACnB,IAAI,CAACwI,GAAG,CAAG5G,EACX,IAAI,CAAC68J,aAAa,CAAG5oK,EACrB,IAAI,CAAC4tL,YAAY,CAAG,IAAI7oJ,IACxB,IAAI,CAAC8oJ,aAAa,CAAG,IAAI3yE,EAAAA,CAAYA,CAAC,EAAE,EACxC,IAAI,CAAC4yE,2BAA2B,CAAG,IAAI/oJ,IACvC,IAAI,CAACgpJ,qBAAqB,CAAG,IAAI,CAACnlB,aAAa,CAAClpK,OAAO,CACvD,IAAI,CAACsuL,qBAAqB,CAAGN,EAE7BvjL,EAAWoG,GAAG,CAAC,sBAAuB,IAAM,IAAI,CAAC09K,cAAc,GACnE,CAEAt9J,UAAUjxB,CAAO,CAAEtG,CAAQ,CAAE,CACzB,IAAI,CAACy0L,aAAa,CAACz9J,EAAE,CAAC1wB,EAAStG,EACnC,CAEAktH,YAAY5mH,CAAO,CAAEtG,CAAQ,CAAE,CAC3B,IAAI,CAACy0L,aAAa,CAACjtJ,GAAG,CAAClhC,EAAStG,EACpC,CAEA80L,mBAAmBxuL,CAAO,CAAE,CACxB,IAAMyuL,EAAe,IAAI,CAACP,YAAY,CAAC5sL,GAAG,CAACtB,GAE3C,GAAIyuL,KAAiBv2L,IAAjBu2L,EACA,OAAO,IAAI,CAACx7K,GAAG,CAACja,OAAO,CAACy1L,GAG5B,GAAI,CAAC,IAAI,CAACH,qBAAqB,CAAC3kL,uBAAuB,CACnD,OAAO,IAAI,CAACsJ,GAAG,CAACja,OAAO,CAAC,MAG5B,IAAM01L,EAAkB,IAAI,CAACN,2BAA2B,CAAC9sL,GAAG,CAACtB,GAC7D,GAAI0uL,KAAoBx2L,IAApBw2L,EACA,OAAOA,EAGX,IAAMp7J,EAAU,IAAI,CAACxY,qBAAqB,CACrCvS,aAAa,CAACvI,GACdtL,IAAI,CAAC,IACF,GAAI0M,EAAShI,IAAI,CAAC7D,MAAM,CAAG,EAAG,CAC1B,IAAMo5L,EAAe,IAAI,CAACC,0BAA0B,CAACxtL,EAAShI,IAAI,CAAC,EAAE,EAErE,OADA,IAAI,CAAC80L,YAAY,CAAC/pI,GAAG,CAACnkD,EAAS2uL,GACxBA,CACX,CACA,OAAO,IACX,GACCp1L,KAAK,CAAC,KACH,IAAMs1L,EAAY,CAAC,IAAI,CAACZ,UAAU,CAACvxL,SAAS,CAAC,yCAAyC,CAEtF,OADA,IAAI,CAACoyL,uBAAuB,CAACD,GACtB,IACX,GACCr1L,OAAO,CAAC,KACL,IAAI,CAAC40L,2BAA2B,CAACrrL,MAAM,CAAC/C,EAC5C,GAIJ,OAFA,IAAI,CAACouL,2BAA2B,CAACjqI,GAAG,CAACnkD,EAASszB,GAEvCA,CACX,CAEAy7J,YAAY/uL,CAAO,CAAEoI,CAAU,CAAE4mL,CAAU,CAAE,CACzC,IAAMP,EAAe,IAAI,CAACP,YAAY,CAAC5sL,GAAG,CAACtB,GACrC8sH,EAAY,IAAI,CAACmiE,yBAAyB,CAAC7mL,EAAY4mL,UAE7D,EACI,KAAqB92L,IAAjBu2L,GAA+BA,EAAaS,YAAY,CAIrD,IAAI,CAACC,aAAa,CAACnvL,EAASyuL,EAAc3hE,GAHtC,IAAI,CAACsiE,UAAU,CAACpvL,EAAS8sH,GAMxC,CAAKkiE,GAAcP,KAAiBv2L,IAAjBu2L,GAA8BA,EAAaS,YAAY,CAC/D,IAAI,CAACG,uBAAuB,CAACrvL,EAASoI,EAAWE,QAAQ,EAAE5T,IAAI,CAAC,KACnE,IAAI,CAAC46L,eAAe,CAACtvL,EAAS8sH,GAC9B,IAAI,CAACyiE,kBAAkB,CAACvvL,EAC5B,IAGJ,IAAI,CAACsvL,eAAe,CAACtvL,EAAS8sH,GAC9B,IAAI,CAACyiE,kBAAkB,CAACvvL,GACjB,IAAI,CAACiT,GAAG,CAACja,OAAO,GAC3B,CAEA6+B,aAAa73B,CAAO,CAAEsI,CAAQ,CAAE,CAC5B,IAAMmmL,EAAe,IAAI,CAACP,YAAY,CAAC5sL,GAAG,CAACtB,UAE3C,KAAqB9H,IAAjBu2L,GAA+BA,EAAaS,YAAY,CAMrD,IAAI,CAACG,uBAAuB,CAACrvL,EAASsI,GAAU5T,IAAI,CAAC,IAAM,IAAI,CAAC66L,kBAAkB,CAACvvL,KALtF,IAAI,CAACkuL,YAAY,CAACnrL,MAAM,CAAC/C,GACzB,IAAI,CAACuvL,kBAAkB,CAACvvL,GACjB,IAAI,CAACiT,GAAG,CAACja,OAAO,GAI/B,CAEA81L,wBAAwBU,CAAQ,CAAE,CAC9B,IAAMC,EAAmB,IAAI,CAACxB,UAAU,CAACvxL,SAAS,CAAC,+BAEnD,IAAI,CAAC4W,MAAM,CAACwB,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC3B,gBAAgB,CAACvC,yBAAyB,CAAC,8EAA8E,CAAC,CAAE,CACnJ1R,MAAOuwL,EACPD,SAAUA,EACVvvK,QAAS,CACL,CACIlrB,OAAQqqB,QAAQ4C,IAAI,CACpBgY,MAAOz6B,EAAAA,CAAWA,CAACI,SAAS,CAC5BixH,KAAM,IAAI,CAACq9D,UAAU,CAACvxL,SAAS,CAAC,kCACpC,EACH,EAET,CAEA4yL,gBAAgBtvL,CAAO,CAAE8sH,CAAS,CAAE,CAChC,IAAI,CAACohE,YAAY,CAAC/pI,GAAG,CAACnkD,EAAS8sH,EACnC,CAEA4iE,iBAAiB1vL,CAAO,CAAE,CACtB,IAAMxI,EAAS,IAAI,CAAC02L,YAAY,CAAC5sL,GAAG,CAACtB,GACrC,OAAOxI,KAAWU,IAAXV,EAAuBA,EAAS,IAC3C,CAEAy3L,0BAA0B7mL,CAAU,CAAEunL,CAAY,CAAE,CAChD,IAAMn2C,EAAW,EAAE,CAQnB,OANyB,OAArBpxI,EAAWgV,KAAK,EAChBo8H,EAASx/I,IAAI,CAAC,CAAEyM,GAAI,GAAIg+B,IAAKmrJ,EAAAA,CAA+BA,CAACr1F,UAAU,CAAE71D,MAAOt8B,EAAWgV,KAAK,GAE1E,OAAtBhV,EAAWiV,MAAM,EACjBm8H,EAASx/I,IAAI,CAAC,CAAEyM,GAAI,GAAIg+B,IAAKmrJ,EAAAA,CAA+BA,CAACp1F,QAAQ,CAAE91D,MAAOt8B,EAAWiV,MAAM,GAE5F,CACHs/G,SAAU6c,EACVq2C,YAAa,CCpJX,WDoJ4C,CAC9CppL,GAAI2B,EAAWE,QAAQ,CACvB4mL,aAAcS,CAClB,CACJ,CAEAf,2BAA2BkB,CAAS,CAAE,CAClC,MAAO,CACH,GAAGA,CAAS,CACZZ,aAAc,EAClB,CACJ,CAEAE,WAAWpvL,CAAO,CAAEoI,CAAU,CAAE,CAC5B,OAAO,IAAI,CAAC0S,qBAAqB,CAC5B5S,gBAAgB,CAAClI,EAASoI,GAC1B1T,IAAI,CAAC,IACF,IAAI,CAAC46L,eAAe,CAACtvL,EAAS,IAAI,CAAC4uL,0BAA0B,CAACxtL,EAAShI,IAAI,GAC3E,IAAI,CAACm2L,kBAAkB,CAACvvL,EAC5B,GACCzG,KAAK,CAAC,KACH,IAAMs1L,EAAY,CAAC,IAAI,CAACZ,UAAU,CAACvxL,SAAS,CAAC,yCAA0C,IAAI,CAACuxL,UAAU,CAACvxL,SAAS,CAAC,uCAAuC,CAExJ,OADA,IAAI,CAACoyL,uBAAuB,CAACD,GACtB,IAAI,CAAC57K,GAAG,CAACha,MAAM,EAC1B,EACR,CAEAk2L,cAAcnvL,CAAO,CAAE+vL,CAAS,CAAEjjE,CAAS,CAAE,CACzC,IAAMkjE,EAAe,IAAI,CAACC,aAAa,CAACF,EAAWjjE,GAEnD,OAAO,IAAI,CAAChyG,qBAAqB,CAC5B3S,gBAAgB,CAACnI,EAASgwL,GAC1Bt7L,IAAI,CAAC,IACF,IAAI,CAAC46L,eAAe,CAACtvL,EAAS,IAAI,CAAC4uL,0BAA0B,CAACxtL,EAAShI,IAAI,GAC3E,IAAI,CAACm2L,kBAAkB,CAACvvL,EAC5B,GACCzG,KAAK,CAAC,KACH,IAAMs1L,EAAY,CAAC,IAAI,CAACZ,UAAU,CAACvxL,SAAS,CAAC,2CAA2C,CAExF,OADA,IAAI,CAACoyL,uBAAuB,CAACD,GACtB,IAAI,CAAC57K,GAAG,CAACha,MAAM,EAC1B,EACR,CAEAo2L,wBAAwBrvL,CAAO,CAAEsI,CAAQ,CAAE,CACvC,OAAO,IAAI,CAACwS,qBAAqB,CAC5BzS,gBAAgB,CAACrI,EAASsI,GAC1B5T,IAAI,CAAC,KACF,IAAI,CAACw5L,YAAY,CAACnrL,MAAM,CAAC/C,EAC7B,GACCzG,KAAK,CAAC,KACH,IAAMs1L,EAAY,CAAC,IAAI,CAACZ,UAAU,CAACvxL,SAAS,CAAC,2CAA4C,IAAI,CAACuxL,UAAU,CAACvxL,SAAS,CAAC,yCAAyC,CAE5J,OADA,IAAI,CAACoyL,uBAAuB,CAACD,GACtB,IAAI,CAAC57K,GAAG,CAACha,MAAM,EAC1B,EACR,CAEAg3L,cAAcC,CAAc,CAAEpjE,CAAS,CAAE,CAErC,IAAK,IAAM0sB,KADX1sB,EAAUrmH,EAAE,CAAGypL,EAAezpL,EAAE,CACTqmH,EAAU6P,QAAQ,EAAE,CACvC,IAAMwzD,EAAmBD,EAAevzD,QAAQ,CAAClmI,IAAI,CAAC,GAAO8gF,EAAE9yC,GAAG,GAAK+0G,EAAS/0G,GAAG,CAC1DvsC,MAAAA,IAArBi4L,GACA32C,CAAAA,EAAS/yI,EAAE,CAAG0pL,EAAiB1pL,EAAE,CAEzC,CACA,OAAOqmH,CACX,CAEAyiE,mBAAmBvvL,CAAO,CAAE,CACxB,IAAI,CAACmuL,aAAa,CAACptF,IAAI,CAAC/gG,EAC5B,CAEAuuL,gBAAiB,CACb,IAAM6B,EAAa,IAAI,CAAClnB,aAAa,CAAClpK,OAAO,CAC7C,GAAIowL,KAAel4L,IAAfk4L,GAA4BA,IAAe,IAAI,CAAC/B,qBAAqB,CAAE,CACvE,IAAMI,EAAe,IAAI,CAACiB,gBAAgB,CAAC,IAAI,CAACrB,qBAAqB,CAChD,QAAjBI,GAA0BA,EAAaS,YAAY,EACnD,IAAI,CAAChB,YAAY,CAACnrL,MAAM,CAAC,IAAI,CAACsrL,qBAAqB,CAE3D,CAEA,IAAI,CAACA,qBAAqB,CAAG+B,KAAel4L,IAAfk4L,EAA2B,GAAKA,CACjE,CACJ,CAEArC,EAAsBt1L,OAAO,CAAG,CAAC,uBAAwB,QAAS,kBAAmB,uBAAwB,aAAc,KAAM,eAAgB,uBAAuB,CACxKF,EAAAA,CAAUA,CAACC,OAAO,CAAC,wBAAyBu1L,E,oEEpO5Cx1L,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,oBAAqB,CACpC,OACA,kBACA,gBACA,uBACA,OACA,SAAUljB,CAAI,CAAEg1H,CAAe,CAAEn0H,CAAa,CAAE1O,CAAoB,CAAE+1C,CAAI,EACtE,MAAO,CACH54C,KAAM,CAAC,EAEP8L,YAAa,SAAUlF,CAAO,CAAEE,CAAY,CAAEilH,CAAQ,EAClD,OAAO2Z,EACF55H,WAAW,CAAClF,EAASE,EAAcilH,GACnCzwH,IAAI,CAAC,IACF,IAAI,CAAC0E,IAAI,CAAGgI,EAAShI,IAAI,GAE5BG,KAAK,CAAC,IACH,IAAI,CAACH,IAAI,CAAGs5B,EAAMt5B,IAAI,EAElC,EAEAkM,cAAe,SAAU+qL,CAAU,CAAEnwL,CAAY,CAAEilH,CAAQ,EACvD,OAAO2Z,EAAgBx5H,aAAa,CAAC+qL,EAAW38K,OAAO,CAAExT,EAAcmwL,EAAW5pL,EAAE,CAAE0+G,GAAUzwH,IAAI,CAAC,IACjG,GAAI0M,OAAAA,EAAShI,IAAI,CAEb,OADAgI,EAAShI,IAAI,CAAC2jL,OAAO,CAAGsT,EAAWtT,OAAO,CACnC37K,EAAShI,IAAI,CAExB,IAAK,IAAIhB,EAAI,EAAGA,EAAI,IAAI,CAACgB,IAAI,CAACk3L,QAAQ,CAAC/6L,MAAM,CAAE6C,IAAK,CAChD,IAAM0mL,EAAU,IAAI,CAAC1lL,IAAI,CAACk3L,QAAQ,CAACl4L,EAAE,CAIrC,GAHI0mL,EAAQr4K,EAAE,GAAK4pL,EAAW5pL,EAAE,EAC5B,IAAI,CAACrN,IAAI,CAACk3L,QAAQ,CAACr2L,MAAM,CAAC7B,EAAG,GAE7B0mL,EAAQr4K,EAAE,GAAK4pL,EAAWE,QAAQ,CAClC,IAAK,IAAI94L,EAAI,EAAGA,EAAIqnL,EAAQpoK,QAAQ,CAACnhB,MAAM,CAAEkC,IAErC2f,EADkBV,QAAQ,CAACjf,EAAE,CACvBgP,EAAE,GAAK4pL,EAAW5pL,EAAE,EAC1Bq4K,EAAQpoK,QAAQ,CAACzc,MAAM,CAACxC,EAAG,EAI3C,CACA,OAAO,IACX,EACJ,EAEA+4L,cAAe,SAAU9lF,CAAI,CAAEwzE,CAAM,CAAEtkK,CAAQ,CAAE5Z,CAAO,CAAEmlH,CAAQ,CAAEjlH,CAAY,EAC5E,IAAMmwL,EAAa,IAAI,CAACI,kBAAkB,CAAC/lF,EAAM9wF,EAAUskK,GAAUlsI,EAAK0+I,WAAW,GAAI1wL,EAASmlH,GAClG,OAAO2Z,EAAgB6xD,cAAc,CAACN,EAAYnwL,EAAcilH,GAAUzwH,IAAI,CAAC,IACpE,IAAI,CAACk8L,gBAAgB,CAACP,EAAW5pL,EAAE,CAAEikG,EAAM9wF,EAAUskK,GAAUlsI,EAAK0+I,WAAW,GAAI1wL,EAASmlH,GAE3G,EAEA0rE,cAAe,SAAUjnI,CAAG,CAAE1jD,CAAE,CAAEi/G,CAAQ,CAAEjlH,CAAY,EACpD,IAAMmwL,EAAa,IAAI,CAACS,kBAAkB,CAAClnI,EAAK1jD,EAAIi/G,GACpD,OAAO2Z,EAAgB6xD,cAAc,CAACN,EAAYnwL,EACtD,EAEA4wL,mBAAoB,SAAUlnI,CAAG,CAAEhwC,CAAQ,CAAEurG,CAAQ,EACjD,MAAO,CACHzxG,QAASk2C,EAAIl2C,OAAO,CACpBjN,GAAImjD,EAAInjD,EAAE,CACVm1K,KAAMhyH,EAAIgyH,IAAI,CACd2U,SAAU32K,EACV4wG,SAAUrF,CACd,CACJ,EAEAsrE,mBAAoB,SAAUM,CAAQ,CAAEn3K,CAAQ,CAAEo3K,CAAU,CAAEhxL,CAAO,CAAEmlH,CAAQ,EAC3E,MAAO,CACHqF,SAAUrF,GAAY,GACtBzxG,QAAS1T,GAAW,GACpB47K,KAAMmV,EAAWjnL,EAAKymC,WAAW,CAACwgJ,GAAUntK,QAAQ,GAAK,GACzDnd,GAAIkE,EAAcoR,IAAI,GACtBw0K,SAAU32K,GAAsB,GAChCq3K,WACID,MAAAA,GAAmDA,KAAAA,EAC7ClnL,EAAKymC,WAAW,CAACygJ,GAAYptK,QAAQ,GACrC3nB,EAAqBS,SAAS,CAAC,oCACzCw0L,WAAY,EAChB,CACJ,EAEAN,iBAAkB,SAAU1qL,CAAE,CAAE6qL,CAAQ,CAAEn3K,CAAQ,CAAEo3K,CAAU,CAAEhxL,CAAO,CAAEmlH,CAAQ,EAC7E,IAAM4rD,EAAU/+H,EAAKE,MAAM,GACrBi/I,EAAUpgB,OAAAA,EAEhB,MAAO,CACHplK,WAAY,GACZ23H,YAAa,CACT83C,UAAW+V,EACX5V,YAAa4V,EACbC,WAAY,EAChB,EACA5mE,SAAUrF,GAAY,GACtBzxG,QAAS1T,GAAW,GACpBqxL,YAAa,EAAE,CACfC,QAAS,GACTzV,QAASkV,EAAWjnL,EAAKymC,WAAW,CAACwgJ,GAAUntK,QAAQ,GAAK,GAC5Dm5J,QAAS,EAAE,CACXwU,QAAS,GACT9qL,GAAIP,GAAMyE,EAAcoR,IAAI,GAC5BgG,aAAc,IAAI1W,KAClB+zD,OAAQ,IAAI/zD,OAAOuY,QAAQ,GAC3B2sK,SAAU32K,GAAsB,GAChCigK,OAAQ,CACJjuJ,KACIolK,MAAAA,GAAmDA,KAAAA,EAC7ClnL,EAAKymC,WAAW,CAACygJ,GAAYptK,QAAQ,GACrC3nB,EAAqBS,SAAS,CAAC,oCACzCq9K,aAAcoX,CAAY,IAAZA,EAAmBpgB,EAAQygB,UAAU,CAACn6L,KAAK,CAAC05K,EAAQygB,UAAU,CAACx5L,OAAO,CAAC,KAAO,GAAK,EACrG,CACJ,CACJ,CACJ,CACJ,EACH,C,mECpHDO,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,kBAAmB,CAClC,uBACA,SAAU5sB,CAAoB,EAC1B,IAAI4sB,EAAU,CAAC,EACf,IAAIykK,EAA2B,IAAItvH,IA8FnC,OA5FAn1C,EAAQoyG,kBAAkB,CAAG,SAAU1lI,CAAQ,EAC3C+3L,EAAyB33L,GAAG,CAACJ,EACjC,EAEAszB,EAAQhoB,UAAU,CAAG,SAAUhF,CAAO,CAAEiF,CAAS,CAAE/E,CAAY,EAC3D,OAAOE,EAAqB4E,UAAU,CAAChF,EAASiF,EAAW/E,GAAcxL,IAAI,CAAC,IAC1E0M,EAAShI,IAAI,CAAG,IAAI,CAACs4L,UAAU,CAACtwL,EAAShI,IAAI,EACtCgI,GAEf,EAEA4rB,EAAQ9nB,WAAW,CAAG,SAAUlF,CAAO,CAAEE,CAAY,MAAEiF,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAW,GAC9D,OAAO/E,EAAqB8E,WAAW,CAAClF,EAASE,EAAciF,GAAUzQ,IAAI,CAAC,IAC1E0M,EAAShI,IAAI,CAACk3L,QAAQ,CAAGlvL,EAAShI,IAAI,CAACk3L,QAAQ,CAACr1L,GAAG,CAAC,GAAa,IAAI,CAACy2L,UAAU,CAAC5S,IAC1E19K,GAEf,EAEA4rB,EAAQ2jK,cAAc,CAAG,SAAU/mI,CAAG,CAAE1pD,CAAY,MAAEilH,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAW,GAC7D31F,EAAAA,CAAOA,CAACC,UAAU,CAAC,WAAY,mBAAoB,CAAC,QAAQ,EAAE01F,KAAAA,EAAkB,WAAa,GAAG,CAAC,CAAC,EAClG,IAAM9/G,EAAqB,CACvBqO,QAASk2C,EAAIl2C,OAAO,CACpBu9K,WAAYrnI,EAAIqnI,UAAU,CAC1BU,UAAW/nI,EAAInjD,EAAE,CACjBm1K,KAAMhyH,EAAIgyH,IAAI,CACd2U,SAAU3mI,EAAI2mI,QAAQ,CACtB/lE,SAAU5gE,EAAI4gE,QAAQ,CACtB0mE,WAAYtnI,EAAIsnI,UAAU,EAAI,EAClC,EAEA,OAAO9wL,EAAqBgF,qBAAqB,CAACC,EAAoBnF,GAAcxL,IAAI,CAAC,IACjFk1D,EAAIsnI,UAAU,EAAI/rE,KAAAA,GAClBssE,EAAyB56L,OAAO,CAAC,GAAc6C,EAASkwD,EAAIl2C,OAAO,CAAEozG,EAAAA,CAAgBA,CAACjzB,GAAG,CAAEsxB,IAExF/jH,GAEf,EAEA4rB,EAAQ1nB,aAAa,CAAG,SAAUtF,CAAO,CAAEE,CAAY,CAAE+E,CAAS,MAAEkgH,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAW,GAC3E,OAAO/kH,EAAqBkF,aAAa,CAACtF,EAASE,EAAc+E,GAAWvQ,IAAI,CAAC,IAC5D,KAAbywH,GACAssE,EAAyB56L,OAAO,CAAC,GAAc6C,EAASsG,EAAS8mH,EAAAA,CAAgBA,CAAChzB,MAAM,CAAEqxB,IAGxE,OAAlB/jH,EAAShI,IAAI,EACbgI,CAAAA,EAAShI,IAAI,CAAG,IAAI,CAACs4L,UAAU,CAACtwL,EAAShI,IAAI,GAG1CgI,GAEf,EAEA4rB,EAAQ0kK,UAAU,CAAG,SAAU5S,CAAO,EAClC,MAAO,CACHnzK,WAAYmzK,EAAQnzK,UAAU,CAC9BimL,UAAW9S,EAAQ8S,SAAS,CAC5BtuD,YAAa,CACT83C,UAAW0D,EAAQ1D,SAAS,CAC5BG,YAAauD,EAAQvD,WAAW,CAChC6V,WAAYtS,EAAQsS,UAAU,EAElC5mE,SAAUs0D,EAAQt0D,QAAQ,CAC1B92G,QAASorK,EAAQprK,OAAO,CACxBm+K,qBAAsB/S,EAAQ+S,oBAAoB,CAClDR,YAAavS,EAAQuS,WAAW,CAChCC,QAASxS,EAAQwS,OAAO,CACxBzV,QAASiD,EAAQlD,IAAI,CACrB+C,YAAaG,EAAQH,WAAW,CAChC4S,QAASzS,EAAQyS,OAAO,CACxBxU,QAAS+B,KAAqB5mL,IAArB4mL,EAAQpoK,QAAQ,CAAiBooK,EAAQpoK,QAAQ,CAACzb,GAAG,CAAC,GAAa,IAAI,CAACy2L,UAAU,CAAC5S,IAAY,KACxGr4K,GAAIq4K,EAAQr4K,EAAE,CACdsb,aAAc+8J,EAAQ/8J,YAAY,CAClC4pD,eAAgBmzG,EAAQnzG,cAAc,CACtCmmH,iBAAkBhT,EAAQgT,gBAAgB,CAC1CC,IAAKjT,EAAQiT,GAAG,CAChBC,SAAUlT,EAAQkT,QAAQ,CAC1BC,cAAenT,EAAQmT,aAAa,CACpCC,eAAgBpT,EAAQoT,cAAc,CACtCC,MAAOrT,EAAQqT,KAAK,CACpBC,OAAQtT,EAAQsT,MAAM,CACtBtyB,QAASgf,EAAQhf,OAAO,CACxBuyB,cAAevT,EAAQuT,aAAa,CACpCC,cAAexT,EAAQwT,aAAa,CACpClzH,OAAQ0/G,EAAQ1/G,MAAM,CACtBmxH,SAAUzR,EAAQyR,QAAQ,CAC1B1W,OAAQ,CACJjuJ,KAAMkzJ,EAAQmS,UAAU,CACxBlX,aAAc+E,EAAQoH,cAAc,CAE5C,CACJ,EAEOl5J,CACX,EACH,C,iCC1FD,SAAS6uJ,IACL,MAAO,CACH7xK,SAAU,IACVpM,SClBO,qgDDmBPqM,MAAO,CACH7Q,KAAM,IACN+rH,SAAU,YACVotE,eAAgB,IAChBjY,aAAc,IACdkY,aAAc,IACdC,aAAc,IACdvyL,aAAc,IACd+9E,SAAU,IACVm8F,SAAU,IACVjmE,WAAY,GAChB,EACA5pG,iBAAkB,GAClB1M,WAAY,oBACZyM,aAAc,IAClB,CACJ,CAEA,SAASooL,EAAkB5zD,CAAe,CAAE6zD,CAAiB,CAAE12L,CAAoB,CAAE+Q,CAAK,CAAEjD,CAAe,CAAEW,CAAO,EAChH,IAAI,CAACE,QAAQ,CAAG,CACZk0H,gBAAiBA,EACjB6zD,kBAAmBA,EACnB12L,qBAAsBA,EACtB+Q,MAAOA,EACPjD,gBAAiBA,EACjBW,QAAAA,CACJ,EAEA,IAAI,CAACkoL,gBAAgB,CAAG,GACxB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAACC,aAAa,CAAG72L,EAAqBS,SAAS,CAAC,mDAEpD,IAAI,CAACq2L,uBAAuB,CAAG92L,EAAqBS,SAAS,CAAC,2CAC9D,IAAI,CAACs2L,gBAAgB,CAAG/2L,EAAqBS,SAAS,CAAC,mCAC3D,C,sDA7CAnE,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,UAAW4vK,GAChCA,EAAQpjL,OAAO,CAAG,EAAE,CAEpBF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,oBAAqB60L,GAC3CA,EAAkBj6L,OAAO,CAAG,CAAC,kBAAmB,oBAAqB,uBAAwB,QAAS,kBAAmB,UAAU,CA2CnIi6L,EAAkBx+L,SAAS,CAACksH,UAAU,CAAG,SAAU+G,CAAO,EAClDA,CAAAA,KAAyBjvH,IAAzBivH,EAAQqrE,YAAY,EAAkBrrE,KAAyBjvH,IAAzBivH,EAAQsrE,YAAY,GAC1D,IAAI,CAACQ,qBAAqB,EAElC,EAEAP,EAAkBx+L,SAAS,CAACg/L,WAAW,CAAG,SAAU95L,CAAI,EACpD,IAAI,CAACA,IAAI,CAAGA,CAChB,EAEAs5L,EAAkBx+L,SAAS,CAACi/L,YAAY,CAAG,SAAUzoF,CAAI,CAAEwzE,CAAM,EAC7D,OAAO,IAAI,CAACtzK,QAAQ,CAAC+nL,iBAAiB,CAACnC,aAAa,CAAC9lF,EAAMwzE,EAAQ,IAAI,CAAC9kL,IAAI,CAACqN,EAAE,CAAE,IAAI,CAACrN,IAAI,CAACsa,OAAO,CAAE,IAAI,CAACyxG,QAAQ,CAAE,IAAI,CAACjlH,YAAY,CACxI,EAEAwyL,EAAkBx+L,SAAS,CAACkoL,eAAe,CAAG,SAAUiU,CAAU,EAC9D,OAAO,IAAI,CAACzlL,QAAQ,CAAC+nL,iBAAiB,CAAC9B,aAAa,CAACR,EAAY,IAAI,CAACj3L,IAAI,CAACqN,EAAE,CAAE,IAAI,CAAC0+G,QAAQ,CAAE,IAAI,CAACjlH,YAAY,CACnH,EAEAwyL,EAAkBx+L,SAAS,CAACmoL,eAAe,CAAG,SAAUgU,CAAU,EAC9D,OAAO,IAAI,CAACzlL,QAAQ,CAACk0H,eAAe,CAACx5H,aAAa,CAAC+qL,EAAW38K,OAAO,CAAE,IAAI,CAACxT,YAAY,CAAEmwL,EAAW5pL,EAAE,CAAE,IAAI,CAAC0+G,QAAQ,EAAEzwH,IAAI,CAAC,IACzH,IAAI,CAAC0lL,QAAQ,CAAC,CAAER,cAAe,EAAM,GAC9Bx4K,GAEf,EAEAsxL,EAAkBx+L,SAAS,CAACk/L,mBAAmB,CAAG,SAAU/C,CAAU,EAClE,OAAO,IAAI,CAACzlL,QAAQ,CAAC+nL,iBAAiB,CACjCrtL,aAAa,CAAC+qL,EAAY,IAAI,CAACnwL,YAAY,CAAE,IAAI,CAACilH,QAAQ,EAC1DzwH,IAAI,CAAC,IACF,IAAI,CAAC0E,IAAI,CAAG0lL,EACZ,IAAI,CAAC1E,QAAQ,CAAC,CAAER,cAAe,EAAK,EACxC,GACCrgL,KAAK,CAAC,KACH,IAAI,CAACqR,QAAQ,CAACoC,KAAK,CAAC8H,MAAM,CAAC,IAAI,CAAClK,QAAQ,CAACb,eAAe,CAAC6G,yBAAyB,CAAG,8BAA+B,CAChH6zG,SAAU,IAAI,CAAC75G,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,mBACvDgoH,cAAe,IAAI,CAAC95G,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,yBAC5D82C,eAAgB,IAAI,CAAC5oC,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,kDACjE,EACJ,EACR,EAEAg2L,EAAkBx+L,SAAS,CAAC+qL,iBAAiB,CAAG,SAAUoU,CAAY,EAClE,IAAI,CAACT,gBAAgB,CAAGS,EAExB,IAAI,CAACp1G,QAAQ,CAAC,CAAEq1G,kBAAmBD,EAAcE,aAAc,EAAM,EACzE,EAEAb,EAAkBx+L,SAAS,CAACs/L,kBAAkB,CAAG,SAAUX,CAAW,EAClE,IAAI,CAACA,WAAW,CAAGA,EAEnB,IAAI,CAAC50G,QAAQ,CAAC,CAAEq1G,kBAAmBT,EAAaU,aAAc,EAAM,EACxE,EAEAb,EAAkBx+L,SAAS,CAAC++L,qBAAqB,CAAG,WAChD,IAAI,CAACQ,aAAa,CAAG,IAAI,CAAC7oL,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,+DAAgE,CAC9Hu+K,OAAQ,IAAI,CAACuX,YAAY,CACzBtX,MAAO,IAAI,CAACuX,YAAY,CACxBlzK,KAAM,IAAI,CAACnmB,IAAI,CAACygL,MAAM,CAACjuJ,IAAI,CAC3BkoB,KAAM,IAAI,CAAClpC,QAAQ,CAACF,OAAO,CAAC,cAAc,IAAI,CAACtR,IAAI,CAACgmE,MAAM,CAAE,YAC5DpgD,KAAM,IAAI,CAACpU,QAAQ,CAACF,OAAO,CAAC,cAAc,IAAI,CAACtR,IAAI,CAACgmE,MAAM,CAC9D,EACJ,C,yCElHA7mE,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,uBAAwB,CACvC,QACA,kBACA,uBACA,SAAU3sB,CAAK,CAAE0J,CAAe,CAAE3J,CAAoB,EAClD,MAAO,CACHyB,YAAa,SAAUmnH,CAAW,MAAEjhE,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAc,GAAIo9D,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAW,GAO7D,OAAO/kH,EAAqByB,WAAW,CAN1B,CACT7B,QAASgpH,EACTjhE,YAAaA,EACbo9D,SAAUA,CACd,EAGJ,EAEA8G,gBAAiB,SAAUynE,CAAU,CAAE1zL,CAAO,CAAEE,CAAY,EACxD,OAAOE,EAAqB2B,iBAAiB,CAAC,CAC1C2xL,WAAYA,EACZ1zL,QAASA,EACTE,aAAcA,CAClB,EACJ,EAEAkC,YAAa,SAAUioH,CAAY,EAC/B,OAAOjqH,EAAqBgC,WAAW,CACnC,CACIC,aAAcgoH,EAAaY,YAAY,EAE3CZ,EAER,EAEApoH,qBAAsB,SAAUonH,CAAa,CAAEhnH,CAAY,CAAErC,CAAO,CAAEE,CAAY,EAC9E,OAAOE,EAAqB6B,oBAAoB,CAC5C,CACII,aAAcA,EACdrC,QAASA,EACTE,aAAcA,CAClB,EACAmpH,EAER,EAEAzmH,aAAc,SAAUynH,CAAY,EAChC,OAAOjqH,EAAqBwC,YAAY,CACpC,CACIP,aAAcgoH,EAAaY,YAAY,EAE3CZ,EAER,EAEAvnH,eAAgB,SAAU9C,CAAO,CAAE0zL,CAAU,EACzC,OAAOtzL,EAAqB0C,cAAc,CAAC,CACvC9C,QAASA,EACT0zL,WAAYA,CAChB,EACJ,EAEA5nE,SAAU,SAAU4nE,CAAU,EAC1B,OAAOrzL,EAAMiB,GAAG,CAAC,CAAC,EAAEyI,EAAgByC,YAAY,CAAC,cAAc,EAAEknL,EAAW,CAAC,CACjF,EAEAxsL,mBAAoB,SAAUlH,CAAO,CAAE2zL,CAAO,CAAED,CAAU,EACtD,OAAOtzL,EAAqB8G,kBAAkB,CAAC,CAAElH,QAASA,EAAS2zL,QAASA,EAASD,WAAYA,CAAW,EAChH,EAEA7sL,8BAA+B,SAAU+iD,CAAG,EAGxC,OAFAA,EAAIiyH,OAAO,CAAGjyH,EAAIgyH,IAAI,CAEfx7K,EAAqByG,6BAA6B,CACrD,CACI7G,QAAS4pD,EAAIl2C,OAAO,EAExBk2C,EAER,EAEA5iD,sBAAuB,SAAU4iD,CAAG,EAChC,IAAI7oD,EAAS,CACTf,QAAS4pD,EAAIl2C,OAAO,CACpBggL,WAAY9pI,EAAI2mI,QAAQ,CACxBoD,QAAS/pI,EAAInjD,EAAE,EAGnB,OAAOrG,EAAqB4G,qBAAqB,CAACjG,EACtD,CACJ,CACJ,EACH,C,mGCvFgE,OAE3D6yL,EACFj7L,YAAYsD,CAAoB,CAAEoQ,CAAE,CAAE/L,CAAY,CAAEvO,CAAO,CAAEyO,CAAU,CAAEqzL,CAAqB,CAAE,CAC5F,IAAI,CAAC53L,oBAAoB,CAAGA,EAC5B,IAAI,CAACoQ,EAAE,CAAGA,EACV,IAAI,CAACta,OAAO,CAAGA,EACf,IAAI,CAACuO,YAAY,CAAGA,EACpB,IAAI,CAACE,UAAU,CAAGA,EAClB,IAAI,CAACszL,gBAAgB,CAAG,IAAIzuJ,IAC5B,IAAI,CAACwuJ,qBAAqB,CAAGA,EAE7B,IAAI,CAACE,MAAM,CAAG,CACVt9F,aAAc,eACdu9F,cAAe,gBACfC,YAAa,cACbC,eAAgB,iBAChBC,iBAAkB,mBAClBC,eAAgB,iBAChBC,gBAAiB,iBACrB,EAEA,IAAI,CAACC,YAAY,CAAG,CAChB9+F,WAAY,aACZxN,OAAQ,QACZ,CACJ,CAEAusG,qBAAqBl/K,CAAI,CAAErV,CAAO,CAAe,CAAC,IAAd+tB,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAS,GACzC,MAAO,CACHk9F,aAAc51G,GAAQ/S,EAAAA,CAAoBA,CAACC,cAAc,CAAC8xF,OAAO,CACjEwnF,QAAS,GACT51D,SAAU,GACVvyG,QAAS1T,GAAW,GACpBqxL,YAAa,EAAE,CACfmD,kBAAmB,EAAE,CACrBp1H,OAAQ,IAAI/zD,OAAOopL,WAAW,GAC9BhuL,GAAI,uCACJ68H,YAAa,CAAC,EACdy5C,QAAS,EAAE,CACXzvD,OAAQ,CAAC,EACT10E,OAAQ7qB,EACRy8F,SAAU,IACd,CACJ,CAEAkqE,6BAA6B10L,CAAO,CAAE4iI,CAAU,CAAE,CAC9C,MAAO,CACH+xD,SAAU,CAAC,EACXrnE,OAAQ,CAAC,EACTsnE,OAAQ,EAAE,CACVpqE,SAAUoY,EAAWn8H,EAAE,CACvBwkH,aAAc3oH,EAAAA,CAAoBA,CAACC,cAAc,CAACqyF,cAAc,CAChEl5E,QAASknH,EAAWlnE,WAAW,CAC/Bm5H,MAAO,GACPnhL,QAAS1T,CACb,CACJ,CAEA80L,sBAAsB90L,CAAO,CAAEo0C,CAAW,CAAE,CACxC,IAAI2gJ,EAAS,EAAE,CAYf,OAXgD,OAA5C3gJ,EAAY4gJ,2BAA2B,EACvCD,CAAAA,EAAS3gJ,EAAY4gJ,2BAA2B,CAAC/5L,GAAG,CAAC,GAC1C,EACH+d,MAAOzb,EAAUyb,KAAK,CACtB41D,YAAarxE,EAAUqxE,WAAW,CAClCqmH,MAAO,KACPC,UAAW33L,EAAU23L,SAAS,CAC9BC,6BAA8B53L,EAAUkJ,EAAE,GAEjD,EAEE,CACHwkH,aAAc3oH,EAAAA,CAAoBA,CAACC,cAAc,CAAC+xF,SAAS,CAC3D5gF,QAAS1T,GAAW,GACpBqxL,YAAa,EAAE,CACfmD,kBAAmB,EAAE,CACrBp1H,OAAQ,IAAI/zD,OAAOopL,WAAW,GAC9BhuL,GAAI,uCACJ68H,YAAa,CAAC,EACdy5C,QAAS,EAAE,CACXzvD,OAAQ,CAAC,EACT10E,OAAQ,GACR4xE,SAAU,KACV4qE,OAAQL,EACRM,SAAUjhJ,EAAYkhJ,mBAAmB,CACzCC,MAAO,KACPC,WAAY,IAChB,CACJ,CAEAC,cAAcvkK,CAAK,CAAE,CACjB,OAAQA,GACJ,KAAK,IAAI,CAAC6iK,MAAM,CAACE,WAAW,CACxB,OAAO,IAAI,CAACh4L,oBAAoB,CAACS,SAAS,CAAC,yCAC/C,MAAK,IAAI,CAACq3L,MAAM,CAACC,aAAa,CAC1B,OAAO,IAAI,CAAC/3L,oBAAoB,CAACS,SAAS,CAAC,2CAC/C,MAAK,IAAI,CAACq3L,MAAM,CAACG,cAAc,CAC3B,OAAO,IAAI,CAACj4L,oBAAoB,CAACS,SAAS,CAAC,4CAC/C,MAAK,IAAI,CAACq3L,MAAM,CAACM,eAAe,CAC5B,OAAO,IAAI,CAACp4L,oBAAoB,CAACS,SAAS,CAAC,6CAC/C,SACI,MAAO,EACf,CACJ,CAEAg5L,sBAAsB3nK,CAAM,CAAE,CAC1B,IAAMkM,EAAa,CACfwyB,MAAO,GACP5kB,QAAS,EACb,EAOA,MALe,KAAX9Z,IACAkM,EAAWwyB,KAAK,CAAG,GACnBxyB,EAAW4N,OAAO,CAAG,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,mDAGtDu9B,CACX,CAEA07J,sBAAsBC,CAAY,CAAoC,CAAC,IAAnCC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAc,EAAE,CAAEC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAY,EAAE,CAC1D77J,EAAa,CACfwyB,MAAO,GACP5kB,QAAS,EACb,EAOA,OAL2B,IAAvBguJ,EAAYtgM,MAAM,EAAUugM,IAAAA,EAAUvgM,MAAM,EAAU,IAAI,CAAC4yF,OAAO,CAACytG,KACnE37J,EAAWwyB,KAAK,CAAG,GACnBxyB,EAAW4N,OAAO,CAAG,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,+CAGtDu9B,CACX,CAEA87J,8BAA8Bj0L,CAAQ,CAAE,CACpC,IAAM0lI,EAAU1lI,KAAoB5J,IAApB4J,EAAS8yL,MAAM,EAAkB9yL,EAAS8yL,MAAM,CAACr/L,MAAM,CAAG,GAAKuM,EAAS8yL,MAAM,CAACjoE,KAAK,CAAC,GAAO,CAAC,IAAI,CAACxkC,OAAO,CAACzQ,IAE1H,MAAO,CACHjrB,MAAO+6E,EACP3/F,QAAS2/F,EAAU,GAAK,IAAI,CAACvrI,oBAAoB,CAACS,SAAS,CAAC,sDAChE,CACJ,CAEAs5L,mBAAmBC,CAAc,CAAE,CAC/B,IAAMh8J,EAAa,CACfwyB,MAAO,GACP5kB,QAAS,EACb,EAaA,OAXI,IAAI,CAACsgD,OAAO,CAAC8tG,IACbh8J,EAAWwyB,KAAK,CAAG,GACnBxyB,EAAW4N,OAAO,CAAG,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,4CAClD,IAAI,CAACw5L,gBAAgB,EAAI,CAAC,IAAI,CAACC,sBAAsB,CAACF,IAC7Dh8J,EAAWwyB,KAAK,CAAG,GACnBxyB,EAAW4N,OAAO,CAAG,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,oDAClDu5L,EAAe1gM,MAAM,EAAI,MAChC0kC,EAAWwyB,KAAK,CAAG,GACnBxyB,EAAW4N,OAAO,CAAG,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,6CAGtDu9B,CACX,CAEAm8J,uBAAuBjvE,CAAO,CAAE,CAC5B,IAAMltF,EAAa,CACfwyB,MAAO,GACP5kB,QAAS,EACb,EAaA,OAXiBs/E,EAAQiuE,MAAM,CAACzoE,KAAK,CAAC,GAAO7jF,KAAAA,EAAEmsJ,KAAK,EAAWnsJ,OAAAA,EAAEmsJ,KAAK,GACrD9tE,CAAAA,OAAAA,EAAQouE,KAAK,EAAapuE,KAAAA,EAAQouE,KAAK,IACpDt7J,EAAWwyB,KAAK,CAAG,GACnBxyB,EAAW4N,OAAO,CAAG,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,gDAGvC,OAAlByqH,EAAQouE,KAAK,EAAapuE,EAAQouE,KAAK,CAAChgM,MAAM,EAAI,MAClD0kC,EAAWwyB,KAAK,CAAG,GACnBxyB,EAAW4N,OAAO,CAAG,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,6CAGtDu9B,CACX,CAEAo8J,gCAAgCtoK,CAAM,CAAEkoK,CAAc,CAAE,CACpD,IAAMh8J,EAAa,CACfwyB,MAAO,GACP5kB,QAAS,EACb,EAUA,MARI9Z,KAAAA,GACAkM,EAAWwyB,KAAK,CAAG,GACnBxyB,EAAW4N,OAAO,CAAG,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,gFAClDqxB,IAAW5xB,EAAAA,CAA0BA,CAAC0/F,MAAM,CAACG,QAAQ,EAAI,IAAI,CAAC7T,OAAO,CAAC8tG,KAC7Eh8J,EAAWwyB,KAAK,CAAG,GACnBxyB,EAAW4N,OAAO,CAAG,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,8EAGtDu9B,CACX,CAEAkuD,QAAQ22F,CAAO,CAAE,CACb,MAAO,CAAC,MAAM5pL,IAAI,CAAC,IAAI,CAACnD,OAAO,CAACq4F,WAAW,CAAC00F,GAChD,CAEAqX,uBAAuB1hM,CAAK,CAAE,CAC1B,IAAM6hM,EAAa1gB,WAAWnhL,SAC9B,CAAI00C,MAAMmtJ,IAGCA,GAAc,KAASA,GAAc,CAEpD,CAEAC,YAAYniJ,CAAW,CAAE,CACrB,MAAO,CACHoiJ,eAAgBpiJ,EAChBqiJ,eAAgB,GAChBC,oBAAqB,GACrB50L,SAAU,KACV60L,UAAW,IAAO,EACdlqI,MAAO,GACP5kB,QAAS,EACb,GACAzuC,KAAM,CAAC,CACX,CACJ,CAEAw9L,oBAAoB52L,CAAO,CAAEmlH,CAAQ,CAAsB,CAAC,IAArBp3F,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAS,GAAIiwG,EAAAA,UAAAA,MAAAA,CAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CAAAA,KAAAA,EAC1C64D,EAAmB,CACrBL,eAAgB,GAChBC,eAAgB,GAChBC,oBAAqB,GACrB50L,SAAU,IAAI,CAACyyL,oBAAoB,CAACv2D,EAAOh+H,EAAS+tB,GACpD4oK,UAAW,GAAc,IAAI,CAACjB,qBAAqB,CAAC5zL,EAAS82C,MAAM,EACnEx/C,KAAM,CAAC,CACX,EAKA,OAJiBlB,KAAAA,IAAbitH,GACA0xE,CAAAA,EAAiB/0L,QAAQ,CAAC0oH,QAAQ,CAAGrF,CAAO,EAGzC0xE,CACX,CAEAC,oBAAoB92L,CAAO,CAAE,CACzB,MAAO,CACHw2L,eAAgB,GAChBC,eAAgB,GAChBC,oBAAqB,GACrB50L,SAAU,IAAI,CAACyyL,oBAAoB,CAACjyL,EAAAA,CAAoBA,CAACC,cAAc,CAAC8xF,OAAO,CAAEr0F,GACjF22L,UAAW,GAAc,IAAI,CAAChB,qBAAqB,CAAC7zL,EAAS+5K,OAAO,CAAE/5K,EAASuvL,WAAW,EAC1Fj4L,KAAM,CAAC,CACX,CACJ,CAEA29L,iBAAiB/2L,CAAO,CAAE,CACtB,MAAO,CACHw2L,eAAgB,GAChBC,eAAgB,GAChBC,oBAAqB,GACrB50L,SAAU,IAAI,CAACyyL,oBAAoB,CAACjyL,EAAAA,CAAoBA,CAACC,cAAc,CAAC6xF,KAAK,CAAEp0F,GAC/E22L,UAAW,GAAc,IAAI,CAACX,kBAAkB,CAACl0L,EAAS+5K,OAAO,EACjEziL,KAAM,CACF49L,YAAa,IAAI,CAAC1C,YAAY,CAACtsG,MAAM,CAE7C,CACJ,CAEAivG,wBAAwBj3L,CAAO,CAAEtG,CAAQ,CAAE,CACvC,MAAO,CACH88L,eAAgB,GAChBC,eAAgB,GAChBC,oBAAqB,GACrB50L,SAAU,IAAI,CAACyyL,oBAAoB,CAACjyL,EAAAA,CAAoBA,CAACC,cAAc,CAAC6xF,KAAK,CAAEp0F,GAC/E22L,UAAW,GAAc,IAAI,CAACX,kBAAkB,CAACl0L,EAAS+5K,OAAO,EACjEziL,KAAM,CACF49L,YAAa,IAAI,CAAC1C,YAAY,CAAC9+F,UAAU,CACzC0hG,cAAe,CACXv4B,cAAe,EACf/gF,IAAK,IACLD,IAAK,EACLlpF,MAAO,EACPqnB,QAAS,GACT8iJ,aAAc,GACdv/J,UAAW,IAAI,CAACpD,oBAAoB,CAACS,SAAS,CAAC,uCAC/CyoD,cAAezrD,CACnB,CACJ,CACJ,CACJ,CAEAy9L,qBAAqB/iJ,CAAW,CAAEp0C,CAAO,CAAE,CACvC,MAAO,CACHw2L,eAAgB,GAChBC,eAAgB,GAChBC,oBAAqB,GACrBU,gBAAiB,GACjBt1L,SAAU,IAAI,CAACgzL,qBAAqB,CAAC90L,EAASo0C,GAC9CuiJ,UAAW,GAAc,IAAI,CAACP,sBAAsB,CAACt0L,GACrD1I,KAAM,CACFi+L,WAAYjjJ,EAAY4gJ,2BAA2B,CACnDsC,gBAAiBljJ,EAAYmjJ,kCAAkC,CAC/DC,WAAYpjJ,EAAYkhJ,mBAAmB,CAEnD,CACJ,CAEAmC,qBAAsB,CAClB,MAAO,CACHjB,eAAgB,GAChBC,eAAgB,GAChBC,oBAAqB,GACrB50L,SAAU,KACV60L,UAAW,IAAO,EACdlqI,MAAO,GACP5kB,QAAS,EACb,GACAzuC,KAAM,CAAC,CACX,CACJ,CAEAs+L,4BAA4B13L,CAAO,CAAE3C,CAAM,CAAE,CACzC,IAAMioH,EAAyB,IAAI,CAACuuE,qBAAqB,CAAC3uE,kBAAkB,CAACllH,EAAS3C,GAAQioH,sBAAsB,CAEpH,MAAO,CACHkxE,eAAgB,GAChBC,eAAgB,GAChBC,oBAAqB,GACrB50L,SALc,IAAI,CAACyyL,oBAAoB,CAACjyL,EAAAA,CAAoBA,CAACC,cAAc,CAACmyF,gBAAgB,CAAE4wB,GAM9FqxE,UAAW,IAAO,EACdlqI,MAAO,GACP5kB,QAAS,EACb,GACAzuC,KAAM,CAAC,CACX,CACJ,CAEAu+L,gBAAgBr6B,CAAS,CAAE,CACvB,OAAO,IAAI,CAACrhK,oBAAoB,CAACS,SAAS,CAAC,wCAAyC,CAAEsY,KAAMsoJ,CAAU,EAC1G,CAEAs6B,sBAAsBC,CAAU,CAAEC,CAAa,CAAE,QAC7C,OAAID,GAAuBC,OAAAA,EAChB,IAAI,CAAC77L,oBAAoB,CAACS,SAAS,CAAC,mDAAoD,CAAEq7L,OAAQF,EAAYG,OAAQF,CAAc,GAG3IA,OAAAA,EACO,IAAI,CAAC77L,oBAAoB,CAACS,SAAS,CAAC,0CAA2C,CAAEwC,MAAO44L,CAAc,GAG7GD,OAAAA,EACO,IAAI,CAAC57L,oBAAoB,CAACS,SAAS,CAAC,0CAA2C,CAAEwC,MAAO24L,CAAW,SAElH,CAEAI,sBAAsBjvE,CAAW,CAAE3rH,CAAM,CAAE66L,CAAmB,CAAE,CAC5D,IAAIj4L,EAAYi4L,CACY,QAAxBA,GACAj4L,CAAAA,EAAY,IAAI,CAACO,UAAU,CAAC23L,qBAAqB,EAAC,EAGtD,IAAMC,EAAU,IAAI,CAAC53L,UAAU,CAAC0nK,aAAa,CAACl/C,EAAa,KAAM,GAAM,GAAO/oH,EAAW,IAAI,CAACK,YAAY,CAACJ,YAAY,EAEnHm4L,EAAc,EAAE,CAQpB,OAPI,IAAI,CAAC/3L,YAAY,CAAC6T,SAAS,EAC3BkkL,EAAYr+L,IAAI,CAAC,CAAE7E,IAAK,YAAaV,MAAO,IAAI,CAAC6L,YAAY,CAAC6T,SAAS,GAE5D,OAAX9W,GACAg7L,EAAYr+L,IAAI,CAAC,CAAE7E,IAAK,SAAUV,MAAO4I,CAAO,GAG7C,IAAI,CAACmD,UAAU,CAACoB,aAAa,CAACw2L,EAASC,EAClD,CAEAC,oCAAoCpvL,CAAQ,CAAE,CAC1C,IAAI,CAAC4qL,gBAAgB,CAAC9wH,KAAK,GAC3B95D,EAASrS,OAAO,CAAC,GAAa,IAAI,CAACi9L,gBAAgB,CAAC3vI,GAAG,CAACigE,EAAQm0E,YAAY,CAAEn0E,EAAQprG,KAAK,EAC/F,CAEAw/K,uBAAuBx6D,CAAK,CAAE,CAC1B,IAAMy6D,EAAkB,IAAI,CAAC3E,gBAAgB,CAACxyL,GAAG,CAAC08H,GAClD,OAAOy6D,KAAoBvgM,IAApBugM,EAAgCA,EAAkB,IAAI,CAACx8L,oBAAoB,CAACS,SAAS,CAAC,8CAA+C,GAChJ,CAEAg8L,0BAA0B9qI,CAAK,CAAE5tD,CAAO,CAAEqV,CAAI,CAAE,CAC5C,IAAK,IAAIjd,EAAIw1D,EAAMr4D,MAAM,CAAG,EAAG6C,GAAK,EAAGA,IACnC,GAAIw1D,CAAK,CAACx1D,EAAE,CAACsb,OAAO,GAAK1T,GAAW4tD,CAAK,CAACx1D,EAAE,CAAC6yH,YAAY,GAAK51G,EAC1D,OAAOu4C,CAAK,CAACx1D,EAAE,CAIvB,OAAO,IACX,CACJ,CAEAw7L,EAAen7L,OAAO,CAAG,CAAC,uBAAwB,KAAM,eAAgB,UAAW,aAAc,wBAAwB,CACzHF,EAAAA,CAAUA,CAACC,OAAO,CAAC,iBAAkBo7L,E,4CC3YrC,SAAS+E,EAA2BtsL,CAAE,CAAEwtC,CAAI,EACxC,IAAI,CAACjvC,QAAQ,CAAG,CACZivC,KAAMA,EACNxtC,GAAIA,CACR,EAEA,IAAI,CAACusL,oBAAoB,CAAG,CAAC,sBAAuB,YAAa,uBAAwB,uBAAwB,yBAA0B,uBAAuB,C,QARtKD,EAA2BlgM,OAAO,CAAG,CAAC,KAAM,OAAO,CAWnDkgM,EAA2BzkM,SAAS,CAAC2kM,cAAc,CAAG,WAClD,IAAIh/I,EAAO,IAAI,CAACjvC,QAAQ,CAACivC,IAAI,CAAC3H,MAAM,GACpC,OAAO2H,OAAAA,EAAgBA,EAAKi/I,qBAAqB,CAAG,IACxD,EAEAH,EAA2BzkM,SAAS,CAAC6kM,uBAAuB,CAAG,WAC3D,IAAIl/I,EAAO,IAAI,CAACjvC,QAAQ,CAACivC,IAAI,CAAC3H,MAAM,UACpC,OAAI2H,GAKG9+C,OADWA,IAAI,CAAC8+C,EAAKi/I,qBAAqB,EACrC5lJ,IAAI,CACZ,UAAU/9C,CAAG,EACT,OAAO0kD,EAAKi/I,qBAAqB,CAAC3jM,EAAI,EAAI,SAAI,CAACyjM,oBAAoB,CAAC5gM,OAAO,CAAC7C,EAChF,GAAEzC,IAAI,CAAC,IAAI,EAEnB,EAEAimM,EAA2BzkM,SAAS,CAAC8kM,yBAAyB,CAAG,WAC7D,IAAIC,EAAiB,IAAI,CAACC,yBAAyB,GACnD,OACID,IAAmB32L,EAAAA,CAAoBA,CAACwzF,gBAAgB,CAACC,cAAc,EACvEkjG,IAAmB32L,EAAAA,CAAoBA,CAACwzF,gBAAgB,CAACG,YAAY,EACrEgjG,IAAmB32L,EAAAA,CAAoBA,CAACwzF,gBAAgB,CAACE,eAAe,EAIhF2iG,EAA2BzkM,SAAS,CAACglM,yBAAyB,CAAG,SAAU72L,CAAY,EACnF,IAAMw3C,EAAO,IAAI,CAACjvC,QAAQ,CAACivC,IAAI,CAAC3H,MAAM,GACtC,GAAI2H,OAAAA,GAAiBA,OAAAA,EAAKi/I,qBAAqB,EAAaj/I,KAA+B3hD,IAA/B2hD,EAAKi/I,qBAAqB,CAClF,MAAO,GAGX,OAAQz2L,GACJ,KAAKC,EAAAA,CAAoBA,CAACC,cAAc,CAACC,kBAAkB,CACvD,MAAOq3C,CAAwD,IAAxDA,EAAKi/I,qBAAqB,CAACK,wBAAwB,CAAYt/I,EAAKi/I,qBAAqB,CAACM,sBAAsB,CAAG92L,EAAAA,CAAoBA,CAACwzF,gBAAgB,CAACI,WAAW,MAC1K5zF,EAAAA,CAAoBA,CAACC,cAAc,CAACE,kBAAkB,CACvD,MAAOo3C,CAAwD,IAAxDA,EAAKi/I,qBAAqB,CAACO,wBAAwB,CAAYx/I,EAAKi/I,qBAAqB,CAACM,sBAAsB,CAAG92L,EAAAA,CAAoBA,CAACwzF,gBAAgB,CAACI,WAAW,MAC1K5zF,EAAAA,CAAoBA,CAACC,cAAc,CAACG,oBAAoB,CACzD,MAAOm3C,CAA0D,IAA1DA,EAAKi/I,qBAAqB,CAACQ,0BAA0B,CAAYz/I,EAAKi/I,qBAAqB,CAACM,sBAAsB,CAAG92L,EAAAA,CAAoBA,CAACwzF,gBAAgB,CAACI,WAAW,MAC5K5zF,EAAAA,CAAoBA,CAACC,cAAc,CAACmyF,gBAAgB,CACrD,MAAO76C,CAAwD,IAAxDA,EAAKi/I,qBAAqB,CAACS,wBAAwB,CAAYj3L,EAAAA,CAAoBA,CAACwzF,gBAAgB,CAACC,cAAc,CAAGzzF,EAAAA,CAAoBA,CAACwzF,gBAAgB,CAACI,WAAW,SAE9K,OAAOr8C,EAAKi/I,qBAAqB,CAACM,sBAAsB,CAEpE,EAEAT,EAA2BzkM,SAAS,CAACmxH,yBAAyB,CAAG,WAC7D,IAAIxrE,EAAO,IAAI,CAACjvC,QAAQ,CAACivC,IAAI,CAAC3H,MAAM,GACpC,OAAO2H,OAAAA,GAAiBA,EAAKi/I,qBAAqB,CAAGj/I,EAAKi/I,qBAAqB,CAACU,yBAAyB,CAAG,EAChH,EAEAb,EAA2BzkM,SAAS,CAACulM,wBAAwB,CAAG,SAAU1oB,CAAO,CAAEnuC,CAAU,EACzF,GAAI,CAACA,EAAW36D,gBAAgB,EAAI26D,IAAAA,EAAW36D,gBAAgB,CAAC1yE,MAAM,CAClE,MAAO,GAEX,IAAImkM,EAAU3oB,EAAQ4oB,IAAI,CAAC5tL,WAAW,GACtC,OAAO62H,EAAW36D,gBAAgB,CAAC/0B,IAAI,CAAC,SAAU8uC,CAAI,EAClD,OAAOA,EAAKj2E,WAAW,KAAO2tL,CAClC,EACJ,EAEAf,EAA2BzkM,SAAS,CAAC0lM,2BAA2B,CAAG,SAAU7oB,CAAO,EAChF,MAAO,CAAC,IAAI,CAAC8oB,0BAA0B,CAAC9oB,IAAY,IAAI,CAAC+oB,qBAAqB,CAAC/oB,EAAO,GAAMA,EAAQ+nB,qBAAqB,CAACiB,yBAAyB,EAGvJpB,EAA2BzkM,SAAS,CAAC2lM,0BAA0B,CAAG,SAAU9oB,CAAO,EAC/E,MAAOipB,CAAAA,CAAQjpB,CAAAA,GAAWA,EAAQ+nB,qBAAqB,EAAI/nB,EAAQ+nB,qBAAqB,CAACmB,mBAAmB,CAChH,EAEAtB,EAA2BzkM,SAAS,CAAC4lM,qBAAqB,CAAG,SAAU/oB,CAAO,EAC1E,MAAOipB,CAAAA,CAAQjpB,CAAAA,GAAWA,EAAQ+nB,qBAAqB,EAAI/nB,EAAQ+nB,qBAAqB,CAACoB,cAAc,CAC3G,EAEAvB,EAA2BzkM,SAAS,CAACimM,0BAA0B,CAAG,eAAUppB,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAU,KAClF,MAAOipB,CAAAA,CACHjpB,CAAAA,OAAAA,GACIA,KAAkC74K,IAAlC64K,EAAQ+nB,qBAAqB,EAC7B/nB,EAAQ+nB,qBAAqB,CAACsB,mBAAmB,EACjDrpB,EAAQ+nB,qBAAqB,CAACuB,mBAAmB,EACjDtpB,EAAQ+nB,qBAAqB,CAACwB,cAAc,CAExD,EAEA3B,EAA2BzkM,SAAS,CAACqmM,6BAA6B,CAAG,eAAUxpB,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAU,KACrF,MAAOipB,CAAAA,CAAQjpB,CAAAA,OAAAA,GAAoBA,KAAkC74K,IAAlC64K,EAAQ+nB,qBAAqB,EAAkB/nB,EAAQ+nB,qBAAqB,CAAC0B,sBAAsB,EAAIzpB,EAAQ+nB,qBAAqB,CAACwB,cAAc,CAC1L,EAEA3B,EAA2BzkM,SAAS,CAACumM,wBAAwB,CAAG,SAAU1pB,CAAO,CAAEnuC,CAAU,EACzF,MAAOo3D,CAAAA,CACHjpB,CAAAA,GACIA,EAAQ+nB,qBAAqB,EAC5B/nB,CAAAA,EAAQ+nB,qBAAqB,CAACoB,cAAc,EAAKnpB,EAAQprK,MAAM,GAAKi9H,EAAW83D,mBAAmB,EAAI3pB,EAAQ+nB,qBAAqB,CAACmB,mBAAmB,EAEpK,EAEAtB,EAA2BzkM,SAAS,CAACymM,0BAA0B,CAAG,SAAU5pB,CAAO,CAAEnuC,CAAU,SAC3F,EAAeiyD,KAAK,CACT,IAAI,CAACgF,0BAA0B,CAAC9oB,IAAY,IAAI,CAAC0oB,wBAAwB,CAAC1oB,EAASnuC,KAG1F,IAAI,CAACk3D,qBAAqB,CAAC/oB,IAIxB,IAAI,CAAC0pB,wBAAwB,CAAC1pB,EAASnuC,IAAe,IAAI,CAAC62D,wBAAwB,CAAC1oB,EAASnuC,EACxG,EAEA+1D,EAA2BzkM,SAAS,CAAC0mM,qBAAqB,CAAG,SAAU7pB,CAAO,CAAE8pB,CAAgB,CAAE7/K,CAAK,EACnG,MAAOg/K,CAAAA,CACHjpB,CAAAA,GAAW8pB,GAAqB7/K,CAAAA,EAAMywD,SAAS,GAAKslG,EAAQprK,MAAM,EAAKk1L,EAAiBC,oBAAoB,EAAID,EAAiBC,oBAAoB,CAAC9iM,OAAO,CAAC+4K,EAAQprK,MAAM,GAAK,EAAC,CAE1L,EAEAgzL,EAA2BzkM,SAAS,CAAC6mM,sCAAsC,CAAG,SAAUhqB,CAAO,EAC3F,MAAOipB,CAAAA,CAAQjpB,CAAAA,GAAWA,EAAQ+nB,qBAAqB,EAAI/nB,EAAQ+nB,qBAAqB,CAACkC,sBAAsB,CACnH,EAEArC,EAA2BzkM,SAAS,CAAC+mM,oBAAoB,CAAG,WACxD,IAAIphJ,EAAO,IAAI,CAACjvC,QAAQ,CAACivC,IAAI,CAAC3H,MAAM,GACpC,GAAI2H,OAAAA,GAAiBA,EAAKi/I,qBAAqB,CAAE,CAC7C,IAAM1kJ,EAAcyF,EAAKi/I,qBAAqB,CAC9C,MAAO,CACHzB,WAAYjjJ,EAAY4gJ,2BAA2B,CACnDsC,gBAAiBljJ,EAAYmjJ,kCAAkC,CAC/DC,WAAYpjJ,EAAYkhJ,mBAAmB,CAEnD,CACJ,EAEA/8L,EAAAA,CAAUA,CAACC,OAAO,CAAC,6BAA8BmgM,E,mDC9IjDpgM,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,mBAAoB,CACnC,QACA,UACA,kBACA,aACA,SAAU3sB,CAAK,CAAEwM,CAAO,CAAE9C,CAAe,CAAEvJ,CAAU,EACjD,IAAIwsB,EAAU,CAAC,EAYf,OAVAA,EAAQkuK,MAAM,CAAG,WACb,GAAI,CACAruL,EAAQo6I,YAAY,CAAC33I,OAAO,CAAC,mBAAoB,GAErD,CAAE,MAAOguB,EAAG,CAAC,CAGb,OADAj9B,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAC1BlF,EAAW6oC,YAAY,CAACt/B,EAAgByC,YAAY,CAAG,oBAClE,EAEOwgB,CACX,EACH,C,qEClBDz0B,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,qBAAsB,CACrC,QACA,kBACA,uBACA,uBACA,SAAU3sB,CAAK,CAAE0J,CAAe,CAAE3J,CAAoB,CAAEnE,CAAoB,EACxE,IAAM+wB,EAAU,CAAC,EACXmuK,EAAa,CACfzlM,SAAU,WACd,EACM0lM,EAAgC,CAClCC,4BAA6B,IACzB,IAAM1sK,EAASy1I,CAAY,CAAC,EAAE,CAACr1F,KAAK,CAC9B+rF,EAAYsJ,CAAY,CAAC,EAAE,CAACr1F,KAAK,CAAC9zE,GAAG,CAAC,GAAQ,EAAE,GAAGu8E,CAAC,CAAE8jH,SAAUr/L,EAAqBS,SAAS,CAAC,CAAC,0BAA0B,EAAE86E,EAAErjD,QAAQ,CAACpoB,WAAW,GAAG,CAAC,CAAE,IAExJo2G,EAASxzF,EAAOqB,MAAM,CAAC8qI,GAAWjnB,IAAI,CAAC,CAACt3E,EAAG2a,IAAO3a,EAAEx6C,YAAY,EAAIm1D,EAAEn1D,YAAY,CAAG,EAAI,IAC/F,MAAO,CACH6sD,YAAa3yE,EAAqBS,SAAS,CAAC,qCAAsC,CAAE2B,MAAO8jH,EAAO5sH,MAAM,GACxGw5E,MAAOozC,CACX,CACJ,EACAjqD,QAAS,GAAkBksG,CAAY,CAAC,EAAE,EA0C9C,OAvCAp3I,EAAQk4I,0BAA0B,CAAG,SAAUq2B,CAAW,CAAEC,CAAU,CAAEC,CAAS,CAAEC,CAAW,CAAEC,CAAkB,CAAEC,CAAmB,CAAEt/K,CAAU,CAAE/d,CAAM,EACvJ8B,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAMm2L,EAAc,CAChB9yB,WAAYwyB,EACZO,UAAWN,EACXO,SAAU3kM,MAAMmsB,OAAO,CAACk4K,GAAa,IAAI,CAACO,+BAA+B,CAACP,GAAa,KACvF7yB,WAAY8yB,EACZO,kBAAmBL,EACnBM,iBAAkBP,EAClB9yB,WAAYvsJ,CAChB,EAEM6/K,EAAiBf,CAA6B,CAACG,EAAY,EAAIH,EAA8BljI,OAAO,CAC1G,OAAO73D,EACFc,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,wCAAyCqvL,EAAat9L,GAC1F7J,IAAI,CAAC,GAAe0M,EAAShI,IAAI,CAAC7D,MAAM,CAAG,EAAI4mM,EAAe/6L,EAAShI,IAAI,EAAI,CAAE21E,MAAO,EAAE,CAAEH,YAAa,EAAG,EACrH,EAEA5hD,EAAQ7pB,oBAAoB,CAAG,WAE3B,OADA9C,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAC1BtF,EAAqB+C,oBAAoB,EACpD,EAEA6pB,EAAQovK,sBAAsB,CAAG,SAAUb,CAAW,CAAE5wJ,CAAG,CAAEpsC,CAAM,SAC/D8B,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAK1BrF,EAAMc,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,yCAJ7B,CAChBu8J,WAAYwyB,EACZc,IAAK1xJ,CACT,EACwGpsC,EAC5G,EAEAyuB,EAAQgvK,+BAA+B,CAAG,SAAU3/K,CAAQ,EACxD,OAAOA,EAASphB,GAAG,CAAC,SAAUwmB,CAAO,EACjC,IAAMhtB,EAAQ0mM,CAAU,CAAC15K,EAAQ1V,WAAW,GAAG,CAC/C,OAAOtX,KAAUyD,IAAVzD,EAAsBA,EAAQgtB,CACzC,EACJ,EAEOuL,CACX,EACH,C,+BCvEW64F,ECsBRp7G,EAAsBlQ,EAAU0W,EAAQlH,EAAiB9N,EAAsB+Q,EAAOjb,E,wKCdnC,OAEjDuqM,UAAmCtgM,EAAAA,CAAWA,CAChDrD,YAAYoU,CAAS,CAAE9Q,CAAoB,CAAE6pH,CAAwB,CAAEy2E,CAAqB,CAAEC,CAAsB,CAAE,CAClH,KAAK,GAEL,IAAI,CAACrgM,0BAA0B,CAAGA,EAAAA,CAClC,KAAI,CAAC4Q,SAAS,CAAGA,EAEjB,IAAI,CAAC+4G,wBAAwB,CAAGA,EAChC,IAAI,CAAC7pH,oBAAoB,CAAGA,EAC5B,IAAI,CAACsgM,qBAAqB,CAAGA,EAC7B,IAAI,CAACE,uBAAuB,CAAGD,EAE/B,IAAI,CAACE,aAAa,CAAG,IAAI,CAACzgM,oBAAoB,CAACS,SAAS,CAAC,mDACzD,IAAI,CAAC2tJ,eAAe,CAAG,CACnBC,YAAanuJ,EAAAA,CAA0BA,CAAC2+F,aAAa,CAACC,cAAc,CAACK,YAAY,CACjFmvD,WAAYpuJ,EAAAA,CAA0BA,CAAC2+F,aAAa,CAACC,cAAc,CAACM,WAAW,CAEvF,CAEAoiC,SAAU,CACN,IAAI,CAAC8+D,qBAAqB,CACrBI,aAAa,CAAC,IAAI,CAAC38L,OAAO,EAC1BtL,IAAI,CAAC,IACF,IAAI,CAACkoM,aAAa,CAAGx7L,CACzB,GACC7H,KAAK,CAAC,KACH,IAAI,CAACqjM,aAAa,CAAG,EACzB,EACR,CAEAC,cAAcx/L,CAAM,CAAEgK,CAAS,CAAE,CAC7B,IAAI,CAACo1L,uBAAuB,CAACK,qBAAqB,CAAC,CAAC,OAAO,EAAEz1L,EAAU,CAAC,CAAEhK,GAC1E,IAAI,CAAC0P,SAAS,CAACw1B,MAAM,CAAC,SAAUllC,GAChC,IAAI,CAACyoH,wBAAwB,CAACi3E,aAAa,EAC/C,CACJ,CAYAT,EAA2B7jM,OAAO,CAAG,CAAC,YAAa,uBAAwB,2BAA4B,wBAAyB,yBAAyB,CACzJF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,6BAXqB,CACtCC,SAAU,CACNo+H,UAAW,IACXv+H,OAAQ,IACR2C,QAAS,GACb,EACApC,SCrDW,2/DDsDXC,WAAYy+L,CAChB,G,QEjD0D,OAEpDU,UAA4BhhM,EAAAA,CAAWA,CACzCrD,YAAYsD,CAAoB,CAAEsgM,CAAqB,CAAE,CACrD,KAAK,GAEL,IAAI,CAACtgM,oBAAoB,CAAGA,EAC5B,IAAI,CAACsgM,qBAAqB,CAAGA,CACjC,CAEA9+D,SAAU,CACN,IAAI,CAAC8+D,qBAAqB,CACrBI,aAAa,CAAC,IAAI,CAAC38L,OAAO,EAC1BtL,IAAI,CAAC,IACF,IAAI,CAACkoM,aAAa,CAAGx7L,CACzB,GACC7H,KAAK,CAAC,KACH,IAAI,CAACqjM,aAAa,CAAG,EACzB,EACR,CACJ,CAWAI,EAAoBvkM,OAAO,CAAG,CAAC,uBAAwB,wBAAwB,CAC/EF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,sBAVc,CAC/BC,SAAU,CACNpE,KAAM,IACN4G,QAAS,GACb,EACApC,SCjCW,2hCDkCXC,WAAYm/L,CAChB,EEhC0C,OAEpCC,UAAmCjhM,EAAAA,CAAWA,CAChDrD,YAAYsY,CAAM,CAAEhV,CAAoB,CAAE,CACtC,KAAK,GAEL,IAAI,CAACA,oBAAoB,CAAGA,EAC5B,IAAI,CAACgV,MAAM,CAAGA,CAClB,CAEAisL,0BAA2B,CACvB,IAAI,CAACjsL,MAAM,CAAC4N,KAAK,CAAC,0BACtB,CACJ,CAWAo+K,EAA2BxkM,OAAO,CAAG,CAAC,SAAU,uBAAuB,CACvEF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,6BAVqB,CACtCC,SAAU,CACNpE,KAAM,IACN4G,QAAS,GACb,EACApC,SCvBW,4iBDwBXC,WAAYo/L,CAChB,G,sFEjBA1kM,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,iBAAkB,CACnC,OACA,kBACA,uBACA,aACA,oBACA,aACA,SAAUnC,CAAI,CAAEC,CAAe,CAAE9N,CAAoB,CAAEwO,CAAU,CAAEwjF,CAAiB,CAAEzoC,CAAU,EAC5F,MAAO,CACHx7C,SAAU,IACVpM,SClBG,utCDmBHqM,MAAO,CACHkzL,UAAW,IACXjvG,WAAY,IACZnwF,UAAW,IACXmR,SAAU,GACd,EAEArR,WAAY,CACR,SACA,SAAUoT,CAAM,EAEZA,EAAOhV,oBAAoB,CAAGA,EAC9BgV,EAAOuoI,QAAQ,CAAG,CACdt4H,KAAM,EAAE,EAGZjQ,EAAO6M,QAAQ,CAAG,CACdiyG,OAAQ,EACZ,EAGA9+G,EAAOmsL,aAAa,CAAG,WAEnB,OAAO5jD,IAAAA,EADeA,QAAQ,CACdt4H,IAAI,CAAC3rB,MAAM,EAG/B0b,EAAOzB,MAAM,CAAG,WACZyB,EAAOuoI,QAAQ,CAACt4H,IAAI,CAAC3rB,MAAM,CAAG,EAC9B0b,EAAO/B,QAAQ,EACnB,EAEA+B,EAAOosL,wBAAwB,CAAG,SAAU5+H,CAAa,EAErDxtD,EAAOuoI,QAAQ,CAACt4H,IAAI,CAAGjQ,EAAOi9E,UAAU,CAAC/e,MAAM,CAACljC,IAAI,CAAC50C,KAAK,CAAC,GAC3Ds1B,GACJ,EAEA1b,EAAOqsL,WAAW,CAAG,WACjBrsL,EAAO6M,QAAQ,CAACiyG,MAAM,CAAG,GACzB,IAAIwtE,EAAqBtsL,EAAOi9E,UAAU,CACrCqvG,GAEDA,CAAAA,CADAA,EAAqB,IAAI/3I,EAAW6iB,aAAa,CAAC,CAAC,EAAC,EACjC8G,MAAM,CAACquH,eAAe,CAAG,CAACvsL,EAAOksL,SAAS,CAAC,EAElEI,EAAmBpuH,MAAM,CAACljC,IAAI,CAAGh7B,EAAOuoI,QAAQ,CAACt4H,IAAI,CAAC7pB,KAAK,CAAC,GAC5D4Z,EAAOlT,SAAS,CAACw/L,EACrB,EAGA,IAAIE,EAAc,SAAUlpM,CAAK,EAC7BA,EAAMU,eAAe,GACrB03B,GACJ,EAEIA,EAAW,WACX,IAAIvkB,EAAa,KACb6I,EAAOmsL,aAAa,IACpBh1L,CAAAA,EAAa,CACTglB,WAAY,QACZC,YAAa,EAAE,CACf4e,KAAMh7B,EAAOuoI,QAAQ,CAACt4H,IAAI,GAGlCjQ,EAAO4N,KAAK,CAAC,kBAAmBzW,EACpC,EAGA6I,EAAOJ,GAAG,CAAC,WAAY4sL,GACvBxsL,EAAOJ,GAAG,CAAC,aAAc,SAAUtc,CAAK,CAAE6lC,CAAG,EACzCnpB,EAAOmsL,aAAa,GACpBK,EAAYlpM,EAChB,GAEA0c,EAAOJ,GAAG,CAAC,WAAY,WACfI,EAAOysL,OAAO,EACdzsL,EAAOysL,OAAO,GAElBzsL,EAAOuoI,QAAQ,CAACt4H,IAAI,CAAC3rB,MAAM,CAAG,CAClC,EACJ,EACH,CAED4pB,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAG5BqW,EAAMyzL,OAAO,CAAGzzL,EAAMib,MAAM,CAAC,aAAc,WACnCjb,EAAMikF,UAAU,GAChBjkF,EAAMozL,wBAAwB,CAACpzL,EAAMikF,UAAU,EAC/CjkF,EAAMyzL,OAAO,GAErB,EAGR,CACJ,CACJ,EACH,E,+DEpGDnlM,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,mBAAoB,CACrC,OACA,kBACA,uBACA,aACA,WACA,gBACA,oBACA,aACA,cACA,UACA,SAAUnC,CAAI,CAAEC,CAAe,CAAE9N,CAAoB,CAAEwO,CAAU,CAAElQ,CAAQ,CAAE26B,CAAa,CAAE+4D,CAAiB,CAAEzoC,CAAU,CAAEm4I,CAAW,CAAE5rM,CAAO,EAC3I,MAAO,CACHiY,SAAU,IACVpM,SC7BG,qpBD8BHqM,MAAO,CACHkzL,UAAW,IACXjvG,WAAY,IACZnwF,UAAW,IACXmR,SAAU,IACVkR,oBAAqB,IACrBD,yBAA0B,IAC1By9K,aAAc,IACdv9K,sBAAuB,GAC3B,EAEAxiB,WAAY,CACR,SACA,SAAUoT,CAAM,EAEZA,EAAOhV,oBAAoB,CAAGA,EAC9BgV,EAAOikB,aAAa,CAAG,IAAIA,EAC3BjkB,EAAO2O,aAAa,CAAG,KACvB3O,EAAO4O,UAAU,CAAG,QACpB5O,EAAO4sL,aAAa,CAAG,EAAE,CACzB5sL,EAAOwtD,aAAa,CAAG,IAAIjZ,EAAW6iB,aAAa,CAAC,CAAC,GACrDp3D,EAAOwtD,aAAa,CAAC0Q,MAAM,CAACquH,eAAe,CAAG,CAACvsL,EAAOksL,SAAS,CAAC,CAEhElsL,EAAOuoI,QAAQ,CAAG,CACdz4H,WAAY,KACZC,YAAa,KACbC,UAAW,KACXC,KAAM,EAAE,CACRJ,SAAU,KACVK,SAAU,KACVC,OAAQ,KACRE,sBAAuB,EAC3B,EAEArQ,EAAO6M,QAAQ,CAAG,CACdiyG,OAAQ,GACRsvD,OAAQ,GACRt/J,OAAQ,CACJ0E,MAAO,CACHrH,MAAOnM,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,yCAC7C+5B,UAAWxlB,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,qDACjDg6B,eAAgBzlB,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,4CACtD2gB,OAAQpM,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,0CAC9Ci6B,WAAY1lB,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,sDAClDk6B,gBAAiB3lB,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,6CACvDm6B,SAAU5lB,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,4CAChDo6B,cAAe7lB,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,2CACrDq6B,OAAQ9lB,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,0CAC9Cs6B,YAAa/lB,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,wCACvD,EACAu6B,YAAa,CAAC,CAClB,CACJ,EAEAhmB,EAAO5b,QAAQ,CAAG,CACdyoM,UAAW,IACf,EAGA7sL,EAAOosL,wBAAwB,CAAG,SAAU5+H,CAAa,EACrDxtD,EAAOwtD,aAAa,CAAGA,EACvBk/H,EAAYzvG,UAAU,CAACwhE,uBAAuB,CAACz+I,EAAOwtD,aAAa,CAAExtD,EAAOuoI,QAAQ,EAGhFvoI,EAAO5b,QAAQ,CAACyoM,SAAS,EACzB7sL,EAAO8sL,mBAAmB,EAElC,EAEA9sL,EAAOqsL,WAAW,CAAG,SAAUU,CAAe,EAC1C,IAAIT,EAAqBtsL,EAAOwtD,aAAa,CAE7Ck/H,EAAYzvG,UAAU,CAAC+gE,2BAA2B,CAAC+uC,EAAiBT,GACpEtsL,EAAOlT,SAAS,CAACw/L,EACrB,EAEAtsL,EAAO8sL,mBAAmB,CAAG,WACzB3+K,QAAQvoB,OAAO,CAACoa,EAAO5b,QAAQ,CAACyoM,SAAS,CAAE,SAAUG,CAAW,EAC5D7+K,QAAQjoB,OAAO,CAAC8mM,GAAah0L,KAAK,GAAGyhD,KAAK,EAC9C,EACJ,EAcA,IAAI/+B,EAAW,SAAU08D,CAAU,EAC/B,GAAIA,EACA,IAAImwD,EAAWvoI,EAAOuoI,QAAQ,CAC1BpxI,EAAa,CACTglB,WAAY,QACZ8hI,SAAUn9J,EAAQ62C,eAAe,CAAC33B,EAAOuoI,QAAQ,CAAC14H,QAAQ,EAAI7P,EAAOuoI,QAAQ,CAAC14H,QAAQ,CAAG,KACzFkrB,UAAW,CAACwtG,EAASv4H,SAAS,CAAC,CAC/BoM,YAAamsH,EAASz4H,UAAU,CAAG,CAACy4H,EAASz4H,UAAU,CAAC,CAAG,EAAE,CAC7DouI,OAAQ3V,OAAAA,EAASx4H,WAAW,CAAYw4H,EAASx4H,WAAW,CAACva,EAAE,CAAG,KAClEwnC,mBAAoBurG,EAASp4H,MAAM,CACnC4sB,kBAAmBwrG,EAASr4H,QAAQ,CACpC8qB,KAAMh7B,EAAOuoI,QAAQ,CAACt4H,IAAI,EAGjC9Y,GAAeA,EAAW8mJ,QAAQ,EACnCj+I,EAAO4N,KAAK,CAAC,kBAAmBzW,EAExC,EA0CA6I,EAAOJ,GAAG,CAAC,qBArEU,SAAUtc,CAAK,CAAE8uB,CAAU,CAAE7rB,CAAM,CAAE6xF,CAAU,EAChE90F,EAAMU,eAAe,GACrB,IAAIukJ,EAAWvoI,EAAOuoI,QAAQ,MAEPthJ,IADFshJ,CAAQ,CAACn2H,EAAW,EAErCm2H,CAAAA,CAAQ,CAACn2H,EAAW,CAAG7rB,EAAOioB,MAAM,EAExCkN,EAAS08D,EACb,GA8DAp4E,EAAOJ,GAAG,CAAC,mBAAoB,WAC3BI,EAAO6M,QAAQ,CAACuhK,MAAM,CAAG,EAC7B,GA1CQpuK,CAAwB,IAAxBA,EAAO2sL,YAAY,CACnB3sL,EAAO2O,aAAa,CAAG,CAAE/b,QAASoN,EAAOikB,aAAa,CAAC2Z,aAAa,EAAG,EAEvE59B,EAAOikB,aAAa,CAACgG,IAAI,GAAGxmC,IAAI,CAAC,WAC7B,IAAI6lC,EAAoBtpB,EAAOikB,aAAa,CAACsF,oBAAoB,EAEjEvpB,CAAAA,EAAO2O,aAAa,CAAG2a,CAAiB,CAACA,EAAkBzqB,kBAAkB,CAAC,KAAM,SAAS,CAC7FmB,EAAO2O,aAAa,CAAC/b,OAAO,CAACof,SAAS,CAAChC,SAAS,CAAG,KACnD,IAAIi9K,EAAYjtL,EAAOwtD,aAAa,CAAC0Q,MAAM,CAEvCp9E,EAAQ62C,eAAe,CAACs1J,EAAUhvC,QAAQ,GAC1Cj+I,CAAAA,EAAO2O,aAAa,CAAC/b,OAAO,CAAC0e,OAAO,CAACzB,QAAQ,CAAGo9K,EAAUhvC,QAAQ,CAACtyE,IAAI,CAAC,IAAG,EAG3E3rE,EAAOi9E,UAAU,EACjB3zF,EAAS,WACLoyB,EAAS,GACb,EAAG,IAEX,GAGJ1b,EAAO4sL,aAAa,CAAC7jM,IAAI,CACrB,CACIkF,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,mBAC7Cs9B,MAAO,cACPjlC,OAAQkc,EAAOqsL,WAAW,CAC1BrjK,WAAY,EAChB,EACA,CACI/6B,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,kBAC7Cs9B,MAAO,aACPjlC,OAAQkc,EAAO/B,QAAQ,CACvB+qB,WAAY,EAChB,EAYZ,EACH,CAED9a,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAGhC2G,EAAS,WACL0P,EAAM5U,QAAQ,CAACyoM,SAAS,CAAG3mM,CAAO,CAAC,EAAE,CAACG,gBAAgB,CAAC,8BACvD2S,EAAM8zL,mBAAmB,EAC7B,EAAG,KAEC9zL,EAAMikF,UAAU,EAChBjkF,EAAMozL,wBAAwB,CAACpzL,EAAMikF,UAAU,CAEvD,CACJ,CACJ,EACH,E,sEE3LD31F,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,kBAAmB,CACpC,OACA,KACA,kBACA,aACA,uBACA,aACA,WACA,oBACA,oBACA,UACA,gBACA,QACA,mBACA,qBACA,uBACA,OACA,gBACA,SACInC,CAAI,CACJuC,CAAE,CACFtC,CAAe,CACfvJ,CAAU,CACVvE,CAAoB,CACpBwO,CAAU,CACVlQ,CAAQ,CACRuuB,CAAiB,CACjBmlE,CAAiB,CACjBl8F,CAAO,CACP4Y,CAAa,CACbqC,CAAK,CACLmQ,CAAgB,CAChBulB,CAAkB,CAClBz1B,CAAoB,CACpB+kC,CAAI,CACJryB,CAAa,EAGb,MAAO,CAOH3V,SAAU,IACVpM,SClEG,6/IDmEHC,WAAY,CACR,SACA,SAAUoT,CAAM,EAEZA,EAAOhV,oBAAoB,CAAGA,EAC9BgV,EAAOktL,YAAY,CAAGnsJ,EAAK8gD,KAAK,GAChC7hF,EAAOpF,gBAAgB,CAAGlB,EAAckB,gBAAgB,CACxDoF,EAAOi9E,UAAU,CAAGj9E,EAAOi9E,UAAU,EAAI,KACzCj9E,EAAO8gB,YAAY,CAAG,EAAE,CACxB9gB,EAAO2c,cAAc,CAAG,GACxB3c,EAAO6O,SAAS,CAAG,GACnB7O,EAAOssL,kBAAkB,CAAG,KAC5BtsL,EAAOod,WAAW,CAAG,eACrBpd,EAAOsd,YAAY,CAAG,GACtBtd,EAAOolB,SAAS,CAAGC,EAAAA,CACnBrlB,CAAAA,EAAOkP,wBAAwB,CAAG,CAAClP,EAAOm/E,wBAAwB,EAAKn/E,CAAAA,OAAAA,EAAOi9E,UAAU,EAAaj9E,OAAAA,EAAOi9E,UAAU,CAAC/e,MAAM,CAACigF,WAAW,EACzIn+I,EAAOsjB,OAAO,CAAGnV,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,4BAA4B,CAAC,EAAE,EAChGpO,EAAO6M,QAAQ,CAAG,CACdsgL,SAAU,GACVC,aAAc,GACdC,YAAa,GACbC,iBAAkBz0L,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,8CACzFmN,OAAQ,CACJygL,OAAQ10L,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,oCAC/EwpB,IAAKtwB,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,uCAC5E6tL,SAAU30L,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,0CACrF,EACA8tL,WAAY,CACRF,OAAQviM,EAAqBS,SAAS,CAAC,qCACvC09B,IAAKn+B,EAAqBS,SAAS,CAAC,4CACpC+hM,SAAUxiM,EAAqBS,SAAS,CAAC,sCAC7C,CACJ,EAEAuU,EAAOy9E,WAAW,CAAG,GAErBz9E,EAAOwpC,UAAU,CAAG,SAAUgkB,CAAa,EACnCxtD,EAAOk/E,IAAI,CACXwuG,EAAalgI,GAEbxtD,EAAOvX,QAAQ,CAAC+kE,GAEpBxtD,EAAO5e,OAAO,CAAC,GACnB,EAEA4e,EAAO5e,OAAO,CAAG,SAAUslB,CAAS,EAChC,GAAI,CAACA,GAAa1G,EAAOk/E,IAAI,CAAE,CAC3Bl/E,EAAOoE,IAAI,CAAG,KACdpE,EAAO6M,QAAQ,CAACugL,YAAY,CAAG,GAC/BptL,EAAO2c,cAAc,CAAG3c,EAAO6M,QAAQ,CAACwgL,WAAW,CAAG,GACtDrtL,EAAO8gB,YAAY,CAACx8B,MAAM,CAAG,EAC7B,MACJ,CACA0b,EAAO2tL,UAAU,EACrB,EAEA3tL,EAAO4tL,cAAc,CAAG,SAAU7+L,CAAO,CAAEkG,CAAE,CAAEtO,CAAK,EAChD,IAAIu7D,EAAgBliD,EAAOhB,IAAI,CAAC,GAChCkjD,CAAAA,EAAc9gE,OAAO,CAAG,WACpB8gE,EAAc5iD,QAAQ,EAC1B,EAEA4iD,EAAcw6B,aAAa,CAAG,WAC1B18E,EAAO6M,QAAQ,CAACsgL,QAAQ,CAAG,GAE3BntL,EAAOssL,kBAAkB,CAACtjM,MAAM,CAACrC,EAAO,GACxCqZ,EAAOo/E,iBAAiB,CAACvhB,gBAAgB,CAAC70E,MAAM,CAACgX,EAAOo/E,iBAAiB,CAACvhB,gBAAgB,CAAC92E,OAAO,CAACgI,GAAU,GAE7G,IAAI8+L,EAAcp8J,EAAmBwP,MAAM,CAACjhC,EAAO/K,EAAE,EAAE9M,IAAI,CACvD6X,EAAOo/E,iBAAiB,GAAKyuG,GAC7BA,EAAYhwH,gBAAgB,CAAC70E,MAAM,CAAC6kM,EAAYhwH,gBAAgB,CAAC92E,OAAO,CAACgI,GAAU,GAGvF++L,EAAsB9tL,EAAO/K,EAAE,EAAExR,IAAI,CAAC,WAClC+V,EAAWK,UAAU,CACjB,oBACAmG,EAAO/K,EAAE,CACT,CACI84L,WAAY94L,EACZlG,QAASA,CACb,EACA,UAEJiR,EAAO6M,QAAQ,CAACsgL,QAAQ,CAAG,GAC8B,IAArDntL,EAAOo/E,iBAAiB,CAACvhB,gBAAgB,CAACv5E,MAAM,EAChD0b,EAAO2tL,UAAU,EAEzB,EACJ,EAEA5xL,EAAMwD,QAAQ,CAAC,CACXvG,MAAOkpD,EACPxiD,YAAa5G,EAAgB6G,yBAAyB,CAAG,yDAC7D,EACJ,EAEAK,EAAOwwB,aAAa,CAAG,SAAUv7B,CAAE,CAAEiG,CAAK,CAAEyQ,CAAU,EAClDzQ,EAAQ,KAAiB,IAAVA,EAAwBA,EAAQ,aAC/C1B,EAAWK,UAAU,CAAC,yBAA0B,CAC5CqB,MAAOA,EACPnM,QAASkG,EACT0W,WAAYA,CAChB,EACJ,EAEA3L,EAAO2tL,UAAU,CAAG,WAChBn0L,EAAWK,UAAU,CAAC,0BAC1B,EAEAmG,EAAOguL,qBAAqB,CAAG,SAAU/4L,CAAE,EACvC+nF,EAAkBuE,gCAAgC,CAACtsF,GAAIxR,IAAI,CAAC,SAAU0M,CAAQ,EAC1E6P,EAAO6M,QAAQ,CAACugL,YAAY,CAAG,GAE3BtsM,EAAQ62C,eAAe,CAACxnC,EAAShI,IAAI,IACrC6X,EAAOssL,kBAAkB,CAAGn8L,EAAShI,IAAI,CACzC6X,EAAOssL,kBAAkB,CAAC1mM,OAAO,CAAC,SAAU4nE,CAAa,EACrDA,EAAc4pB,IAAI,CAAG62G,EAA0BzgI,EACnD,GAER,EACJ,EAEAxtD,EAAO8+E,sBAAsB,CAAG,SAAU7B,CAAU,CAAE74E,CAAI,EAClDA,WAAAA,EACA8pL,EAAejxG,EAAWnf,KAAK,CAAC1N,uBAAuB,CAAC,MAAO6sB,IAE/Dj9E,EAAO6M,QAAQ,CAACugL,YAAY,CAAG,GAC/BptL,EAAOi9E,UAAU,CAAGA,EACpBj9E,EAAOoE,IAAI,CAAGA,EACdpE,EAAOkP,wBAAwB,CAAG,CAAClP,EAAOm/E,wBAAwB,EAAIn/E,OAAAA,EAAOi9E,UAAU,CAAC/e,MAAM,CAACigF,WAAW,CAElH,EAEAn+I,EAAOmuL,gBAAgB,CAAG,SAAU/pL,CAAI,EACpC,OAAOpE,EAAO6M,QAAQ,CAAC4gL,UAAU,CAACrpL,EAAK,EAG3CpE,EAAOouL,gBAAgB,CAAG,SAAUhqL,CAAI,EACpC,OAAOpE,EAAO6M,QAAQ,CAACC,MAAM,CAAC1I,EAAK,EAIvC,IAAIiqL,EAAkB,SAAU/qM,CAAK,CAAE6T,CAAU,EACzC6I,EAAOmP,mBAAmB,GAI9BnP,EAAOsuL,gBAAgB,CAAGn3L,EACtB7T,GACAA,EAAMU,eAAe,GAErBmT,GACAA,EAAW4jC,SAAS,CAAG,CAAC,OAAO,CAC/B/6B,EAAO6M,QAAQ,CAACwgL,WAAW,CAAG,GAC9BrtL,EAAO2c,cAAc,CAAG,GAExBqgE,EAAkB8E,oBAAoB,CAAC9hF,EAAO/K,EAAE,CAAEkC,GAAY1T,IAAI,CAAC,SAAU0M,CAAQ,EACjF6P,EAAO2c,cAAc,CAAG,GACxB3c,EAAO8gB,YAAY,CAAG3wB,EAAShI,IAAI,CAAC60B,YAAY,CAGhD,IAAK,IAAWc,EAAP32B,EAAI,EAASA,EAAI6Y,EAAO8gB,YAAY,CAACx8B,MAAM,CAAE6C,IAE9C22B,CADJA,EAAO9d,EAAO8gB,YAAY,CAAC35B,EAAE,EACpBqO,EAAE,GAAKwK,EAAO/K,EAAE,EACrB+K,EAAO8gB,YAAY,CAAC93B,MAAM,CAAC7B,EAAG,GAC9BA,MAEA22B,EAAKvpB,GAAG,CAAGhF,EAAW0uB,iBAAiB,CAACH,EAAKI,OAAO,CAAE,QACtDJ,EAAKswC,OAAO,CAAGliD,EAAiBquD,aAAa,CAACz8C,EAAKswC,OAAO,EAC1DtwC,EAAKhN,YAAY,CAAG5E,EAAiBquD,aAAa,CAACz8C,EAAKhN,YAAY,EAGhF,KAEA9Q,EAAO8gB,YAAY,CAACx8B,MAAM,CAAG,EAC7B0b,EAAO6M,QAAQ,CAACwgL,WAAW,CAAG,IAEtC,EAEArtL,EAAOJ,GAAG,CAAC,iBAAkB,SAAUtc,CAAK,CAAE6E,CAAI,EAC9CkmM,EAAgB,KAAMruL,EAAOsuL,gBAAgB,CACjD,GAEA,IAAIL,EAA4B,SAAUzgI,CAAa,EACnD,IAAIppD,EAAO,MAcX,OAbIopD,EAAcwQ,gBAAgB,CAC9B55D,EAAO,SAEPopD,CAAAA,EAAc0Q,MAAM,CAACzzD,OAAO,EAC5B+iD,EAAch/C,MAAM,CAAC4vI,QAAQ,EAC7B5wF,EAAc0Q,MAAM,CAACigF,WAAW,EAChC3wF,EAAc0Q,MAAM,CAACogF,YAAY,EACjC9wF,EAAc0Q,MAAM,CAACsgF,aAAa,EAClChxF,EAAc0Q,MAAM,CAAC+/E,QAAQ,CAAC35J,MAAM,CAAG,IAGvC8f,CAAAA,EAAO,UAAS,EAEbA,CACX,EAEI8pL,EAAiB,SAAUr5L,CAAQ,CAAE24D,CAAa,EAClDxtD,EAAOuuL,gBAAgB,CAAG/gI,EAC1B9+C,EACKvE,YAAY,CAAC,CACVyG,wBAAyB,GACzBrF,WAAY,CAACvL,EAAO/K,EAAE,CAAC,CACvBqW,qBAAsBzW,EACtB25L,aAAc,GACd/iL,cAAe,EACnB,GACChoB,IAAI,CAAC,IACa,OAAXi6B,GAIJ+wK,EAAmB/wK,EACvB,GACCp1B,KAAK,CAAC6lB,QAAQ4C,IAAI,CAC3B,EAGI29K,EAAa,WACb1uL,EAAOsjB,OAAO,CAAC5V,QAAQ,CAAC,eAC5B,EAEIihL,EAAa,WACbrlM,EAAS,WACL0W,EAAOsjB,OAAO,CAAC7V,WAAW,CAAC,iBAC3BzN,EAAOsjB,OAAO,CAAC7V,WAAW,CAAC,eAC/B,EAAGgrB,EAAAA,CAAiBA,CAACC,YAAY,CACrC,EAEI+1J,EAAqB,SAAU/wK,CAAM,EAChCA,EAAO0yC,uBAAuB,CAAC,MAAMw+H,SAAS,CAAC5uL,EAAOuuL,gBAAgB,CAACzwH,KAAK,CAAC1N,uBAAuB,CAAC,SACtGs+H,IACA1xG,EAAkB2E,gCAAgC,CAACjkE,EAAQ1d,EAAOuuL,gBAAgB,EAClFvxG,EAAkBwE,cAAc,CAACxhF,EAAOuuL,gBAAgB,EAAE9qM,IAAI,CAAC,SAAU0M,CAAQ,EAC7EqJ,EAAWK,UAAU,CAAC,0BAA2B1J,EAAShI,IAAI,CAACupC,KAAK,EACpEm9J,IACA7uL,EAAO2tL,UAAU,EACrB,IAEJ3tL,EAAOuuL,gBAAgB,CAAG,IAC9B,EAEIb,EAAe,SAAUlgI,CAAa,EACtCkhI,IACA1xG,EAAkBwE,cAAc,CAACh0B,GAAe/pE,IAAI,CAACorM,EACzD,EAEIA,EAAW,WACXr1L,EAAWK,UAAU,CAAC,oBAAqBmG,EAAO/K,EAAE,EAGpD64L,EAAsB9tL,EAAO/K,EAAE,EAC/B05L,GACJ,EAEIb,EAAwB,SAAU74L,CAAE,EACpC,IAAIyO,EAAWtI,EAAGuI,KAAK,GACnB0uB,EAAUZ,EAAmBwP,MAAM,CAAChsC,GACpCyiC,EAAOrF,2BAAAA,EAAQlqC,IAAI,CAAC+6B,QAAQ,CAAgCmP,EAAQ8pB,sBAAsB,CAAC16D,IAAI,CAAC4wC,GAAWA,EAAQ+pB,uBAAuB,CAAC36D,IAAI,CAAC4wC,GAgBpJ,OAdAZ,EAAmBolB,eAAe,CAAC5hD,EAAIo9B,EAAQlqC,IAAI,CAAC+6B,QAAQ,EAAEz/B,IAAI,CAAC,WAC/Di0C,EAAKziC,GAAIxR,IAAI,CAAC,SAAU0E,CAAI,EACxBA,EAAKmV,QAAQ,CAAC7Z,IAAI,CAAC,WACf,IAAI4uC,EAAUZ,EAAmBwP,MAAM,CAAChsC,GACpCo9B,GACAA,CAAAA,EAAQuC,QAAQ,CAAG,EAAG,EAG1BnD,EAAmB8qB,uBAAuB,CAACtnD,GAC3CyO,EAAS3b,OAAO,CAAC,GACrB,EACJ,EACJ,GAEO2b,EAAS/b,OAAO,EAI3BqY,EAAOJ,GAAG,CAAC,kBAAmByuL,EAClC,EACH,CAEDngL,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAChCuD,EAAQu5B,EAAE,CAAC,WAAY,WACnBzmB,EAAMszL,kBAAkB,CAAG,KAC3BtzL,EAAMomF,iBAAiB,CAAG,KAC1BpmF,EAAMsG,QAAQ,EAClB,GAEItG,EAAMkmF,IAAI,EAAIlmF,EAAM/D,EAAE,EACtB+D,EAAMg1L,qBAAqB,CAACh1L,EAAM/D,EAAE,CAE5C,CACJ,CACJ,EACH,E,eE9WO,EAAY,MAAK,OAAV,CACP,EAA0D,OAAM,cAAlD,CAAa,EAA+B,OAAM,SAA1B,CAAQ,EAAY,OAAM,IAAX,C,2CCErD,EAAY,MAAK,OAAV,C,iCC+RX,SAOK,EAAc,CAAoC,CAAE,CAAmB,CAAE,CAA0B,EACtG,EACF,QAAgB,EAAc,EAAW,GAEzC,GAAU,C,mFCpS+B,OAEvC65L,EACFpnM,YAAY0T,CAAE,CAAEC,CAAoB,CAAErQ,CAAoB,CAAE+Q,CAAK,CAAEjD,CAAe,CAAEi2L,CAAmB,CAAE,CACrG,IAAI,CAAC/sL,GAAG,CAAG5G,EACX,IAAI,CAACiH,MAAM,CAAGtG,EACd,IAAI,CAACmG,gBAAgB,CAAGpJ,EACxB,IAAI,CAAC9N,oBAAoB,CAAGA,EAC5B,IAAI,CAAC6e,qBAAqB,CAAGxO,EAC7B,IAAI,CAAC2zL,oBAAoB,CAAGD,EAC5B,IAAI,CAACE,cAAc,CAAG,CAClBr7I,UAAW,YACXs7I,aAAc,cAClB,EACA,IAAI,CAACC,QAAQ,CAAG,EACpB,CAEAC,uBAAwB,CACpBC,CD6KF,WAAyE,IAAd,IA+B/D,EA/B+D,2BAAc,CAAd,0BACzD,EAAY,SAAa,GACzB,EAAiB,SAAkB,GAEnC,EAA8B,SFnM+B,CAAuB,EAC1F,GAAI,MAAK,MAAM,CAAQ,CACrB,IAAM,EAAQ,CAAI,CAAC,EAAE,CAAC,GAClB,EAAQ,GACV,MAAO,CAAE,KAAM,EAAO,KAAM,IAAI,EAAG,GAehC,GAAO,iBAbD,GAa4B,EAb5B,KAaoD,EAb5C,CACjB,IAAM,EAAO,EAAQ,GAAO,MACrB,CACL,KAAM,EAAK,GAAG,CAAC,SAAC,CAAG,EAAK,QAAK,CAAC,EAAI,GAClC,KAAI,EACL,CAAC,CAEL,MAEM,CAAE,KAAM,EAAa,KAAM,IAAI,CAAE,EEoLiB,GAA3C,EAAW,OAAE,EAAI,MAA+B,CAAC,GAE3D,MAAY,MAAM,CAIpB,MAAO,QAAK,EAAE,CAAE,GAAkB,IAG9B,EAAS,IAAI,GAAU,EAkB7B,YAdI,EAEI,SAAC,CAAM,EAAK,OE1Nb,EAAK,MAAM,CAAC,SAAC,CAAM,CAAE,CAAG,CAAE,CAAC,EAAK,QAAQ,CAAC,EAAI,CAAG,CAAM,CAAC,EAAE,CAAC,CAAQ,EAAG,GF0N9B,EAEtC,GAAQ,GAUhB,MAAiD,EAE1C,SAAC,CAA2B,EAGjC,EApBE,EAsBA,WAaE,IAAK,IAZG,EAAW,EAAW,MAAhB,CAER,EAAS,MAAU,GAGrB,EAAS,EAIT,EAAuB,EAAO,WAGzB,CAAC,EACR,EApCJ,EAsCM,WACE,IAAM,EAAS,QAAK,CAAW,CAAC,EAAE,CAvC1C,GAwCY,EAAgB,GACpB,EAAO,SAAS,CACd,QACE,EACA,SAAC,CAAK,EAEJ,CAAM,CAAC,EAAE,CAAG,EACR,CAAC,IAEH,EAAgB,GAAK,KAGlB,GAGH,EAAW,IAAI,CAAC,EAAe,EAAO,KAAK,IAE/C,EACA,WACO,EAAE,GAGL,EAAW,QAAQ,EAAG,GAI7B,EAEH,EACD,EAlCM,EAAI,EAAG,EAAI,EAAQ,IAAG,EAAtB,EAmCR,EAEH,EACD,IAlED,OAEK,EAAkB,EAAO,IAAI,CDnN3B,QAAI,UAAI,EAAI,OARZ,EAQ4B,GARd,EAAI,kCAQU,KARA,EAQA,EAAK,ICmN+C,CAAQ,GCtM7E,CAACt9I,CAAAA,EAAAA,EAAAA,CAAAA,EAAK,IAAI,CAACloC,qBAAqB,CAAC3R,eAAe,IAAK,IAAI,CAAC82L,oBAAoB,CAAC39I,OAAO,GAAG,EAClGvxB,IAAI,CAACw2F,CAAAA,EAAAA,EAAAA,CAAAA,KACLt2F,SAAS,CAAC,OAAC,CAACsvK,EAAsBC,EAAa,GACtC3rL,EAAa,IAAI,CAAC4rL,0BAA0B,CAACF,EAAsBC,GACzE,IAAI,CAACltL,MAAM,CAACwB,MAAM,CAAC,IAAI,CAAC3B,gBAAgB,CAACvC,yBAAyB,CAAG,iDAAkDiE,EAC3H,EACR,CAEA5L,mBAAmBy3L,CAAgB,CAAEx3L,CAAQ,CAAEy3L,CAAS,CAAE,CACtD,IAAMC,EAAoB,EAAE,CAC5B,IAAI,CAACR,QAAQ,CAAG,GAEZM,EAAiBG,YAAY,GAAK33L,EAAS23L,YAAY,GACvDD,EAAkB5mM,IAAI,CAACgpD,CAAAA,EAAAA,EAAAA,CAAAA,EAAK,IAAI,CAACloC,qBAAqB,CAAC7R,kBAAkB,CAAC,CAAE63L,SAAU53L,EAAS23L,YAAY,IAAK9vK,IAAI,CAACmyB,CAAAA,EAAAA,EAAAA,CAAAA,EAAI,IAAMlkB,SAAS+hK,MAAM,MAC9IvxK,EAAAA,CAAOA,CAACC,UAAU,CAAC,gBAAiB,0BAA2B,yBAG/DixK,EAAiBM,YAAY,GAAK93L,EAAS83L,YAAY,GACvDJ,EAAkB5mM,IAAI,CAACkP,EAAS83L,YAAY,GAAK,IAAI,CAACd,cAAc,CAACr7I,SAAS,CAAG,IAAI,CAACo7I,oBAAoB,CAACn9I,YAAY,GAAK,IAAI,CAACm9I,oBAAoB,CAACh9I,aAAa,IACnKzzB,EAAAA,CAAOA,CAACC,UAAU,CAAC,gBAAiB,6BAA8B,uBAGtEu0B,CAAAA,EAAAA,EAAAA,CAAAA,KAAS48I,GACJ7vK,IAAI,CACD4uI,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,KACL,IAAI,CAACygC,QAAQ,CAAG,GAChBO,GACJ,IAEH1vK,SAAS,CAAC,CACPyB,MAAO,KACH,IAAI,CAACpf,MAAM,CAACwB,MAAM,CAAC,IAAI,CAAC3B,gBAAgB,CAACvC,yBAAyB,CAAG,8BAA+B,IAAI,CAACqwL,mBAAmB,GAChI,CACJ,EACR,CAEAR,2BAA2BF,CAAoB,CAAEC,CAAY,CAAE,CAC3D,IAAME,EAAmB,CACrBG,aAAcN,EAAqBnnM,IAAI,CAAC0nM,QAAQ,CAChDE,aAAcR,EAAe,IAAI,CAACN,cAAc,CAACr7I,SAAS,CAAG,IAAI,CAACq7I,cAAc,CAACC,YAAY,EAG3FtrL,EAAa,CACfqsL,UAAWX,EAAqBnnM,IAAI,CAAC+nM,iBAAiB,CACtDj4L,SAAU,CAAE,GAAGw3L,CAAgB,EAC/BU,oBAAqB,CAACjsM,EAAKV,KACvBogB,EAAW3L,QAAQ,CAAC23L,YAAY,CAAGpsM,CACvC,EACA4sM,eAAgB,IACZxsL,EAAW3L,QAAQ,CAAC83L,YAAY,CAAGvsM,CACvC,EACA+qC,QAAS,CAAC8hK,EAAiBzvL,IAAc,IAAI,CAAC5I,kBAAkB,CAACy3L,EAAkBY,EAAiBzvL,GACpG0vL,eAAgB,CACZ,CACIpsM,IAAK,IAAI,CAAC+qM,cAAc,CAACr7I,SAAS,CAClCzlD,MAAO,IAAI,CAACnD,oBAAoB,CAACS,SAAS,CAAC,kDAC/C,EACA,CACIvH,IAAK,IAAI,CAAC+qM,cAAc,CAACC,YAAY,CACrC/gM,MAAO,IAAI,CAACnD,oBAAoB,CAACS,SAAS,CAAC,iDAC/C,EACH,CACDyhI,YAAa,IAAM,IAAI,CAACiiE,QAAQ,EAGpC,OAAOvrL,CACX,CAEAosL,qBAAsB,CAClB,MAAO,CACHztJ,eAAgB,IAAI,CAACv3C,oBAAoB,CAACS,SAAS,CAAC,qCACxD,CACJ,CACJ,CE1FA,SAAS8kM,IACL,MAAO,CACH5jM,SCZO,+xBDaPoM,SAAU,IACVC,MAAO,CACHnT,SAAU,IACV2qM,YAAa,IACb9sM,MAAO,GACX,EACAkJ,WAAY,0BACZyM,aAAc,KACdC,iBAAkB,EACtB,CACJ,CAEA,SAASm3L,EAAwB33L,CAAe,EAC5C,IAAI,CAAC43L,oBAAoB,CAAG53L,EAAgB6G,yBAAyB,CAAG,6DAC5E,CEtBA,SAASgxL,IACL,IAAIC,EAAc,CACdjyD,YAAa,mBACbD,uBAAwB,8BACxBJ,KAAM,YACNuyD,aAAc,eACdC,GAAI,UACJ5vE,KAAM,YACNhxH,KAAM,YACN6gM,eAAgB,qBAChBtyD,SAAU,gBACVD,aAAc,oBACdD,iBAAkB,gBAClBO,gBAAiB,wBACrB,EAEIorD,EAAa,CACbprC,MAAO,aACP7gE,MAAO,aACPx5F,SAAU,gBACV,oBAAqB,gBACrB,eAAgB,WAChB,wBAAyB,oBACzB,uBAAwB,mBACxB,gBAAiB,YACjBusM,WAAY,kBACZngM,SAAU,yBACVogM,KAAM,YACNC,MAAO,aACPxmE,WAAY,kBACZymE,OAAQ,cACRC,UAAW,iBACXvyC,MAAO,YACX,CAOA,KAAI,CAACwyC,OAAO,CAAG,SAAUrnM,CAAG,CAAEoa,CAAI,SAC9B,GAIWpa,CAAG,CAACoa,EAAKtJ,WAAW,GAAG,EACnB,EACnB,EAMA,IAAI,CAACw2L,mBAAmB,CAAG,SAAUltL,CAAI,EACrC,OAAO,IAAI,CAACitL,OAAO,CAACT,EAAaxsL,EACrC,EAMA,IAAI,CAACmtL,kBAAkB,CAAG,SAAUntL,CAAI,EACpC,OAAO,IAAI,CAACitL,OAAO,CAACnH,EAAY9lL,EACpC,EAMA,IAAI,CAACotL,eAAe,CAAG,SAAUptL,CAAI,EAEjC,OAAO45E,IADQ,CAACszG,mBAAmB,CAACltL,IACf,IAAI,CAACmtL,kBAAkB,CAACntL,EACjD,CACJ,CCjEA,SAASqtL,EAAiB54L,CAAI,CAAEW,CAAU,CAAEV,CAAe,CAAE9N,CAAoB,EAC7E,MAAO,CACH2B,SCfO,imDDgBPoM,SAAU,IACVC,MAAO,CACHgjI,OAAQ,GACZ,EACApvI,WAAY,6BACZyM,aAAc,KACdC,iBAAkB,GAClB4U,KAAM,SAAUlV,CAAK,EACjBA,EAAM2G,yBAAyB,CAAG7G,EAAgB6G,yBAAyB,CAC3E3G,EAAMygI,eAAe,CAAG5gI,EAAKmU,qBAAqB,CAAChU,EAAM2G,yBAAyB,CAAG,gDACrF3G,EAAMhO,oBAAoB,CAAGA,EAC7BwO,EAAWmgI,YAAY,CAAG,EAC9B,CACJ,CACJ,CAEA,SAAS+3D,EAA2BpoM,CAAQ,CAAEmjJ,CAAc,CAAErvD,CAAQ,EAClE,IAAI,CAACzjF,QAAQ,CAAG,CACZ2oB,QAASh5B,EACTmjJ,eAAgBA,CACpB,EACA,IAAI,CAACvmJ,OAAO,CAAGk3F,EACf,IAAI,CAAC2vD,YAAY,CAAG,EACpB,IAAI,CAACJ,YAAY,CAAG,CAChB3gI,OAAQ,kCACZ,EAEA,IAAI,CAAC5nB,QAAQ,CAAG,CACZ4oJ,MAAO,EAAE,CAEjB,CEhCA,SAAS2kD,EAAW94L,CAAI,CAAEC,CAAe,CAAE9N,CAAoB,EAC3D,MAAO,CACH2B,SChBO,4zCDiBPoM,SAAU,IACVC,MAAO,CACHgjI,OAAQ,IACRwX,gBAAiB,GACrB,EACA5mJ,WAAY,uBACZyM,aAAc,KACdC,iBAAkB,GAElB4U,KAAM,SAAUlV,CAAK,EACjBA,EAAMhO,oBAAoB,CAAGA,CACjC,CACJ,CACJ,CAEA,SAAS4mM,EAAqB5xL,CAAM,CAAE1W,CAAQ,CAAE8zF,CAAQ,EACpD,IAAI,CAAC96D,OAAO,CAAGh5B,EACf,IAAI,CAACpD,OAAO,CAAGk3F,EACf,IAAI,CAACy0G,OAAO,CAAG,IAAI,CAACC,yBAAyB,CAACrwM,IAAI,CAAC,IAAI,EACvD,IAAI,CAAC85I,aAAa,CAAG,GACrB,IAAI,CAAC1B,yBAAyB,CAAG1rH,QAAQjoB,OAAO,CAACzB,SAASyxB,aAAa,CAAC,4BAGxElW,EAAOJ,GAAG,CAAC,iBAAkB,IAAI,CAACmyL,QAAQ,CAACtwM,IAAI,CAAC,IAAI,EACxD,CP6DAqtM,EAAoBtnM,OAAO,CAAG,CAAC,KAAM,uBAAwB,uBAAwB,QAAS,kBAAmB,sBAAsB,CACvIF,EAAAA,CAAUA,CAACC,OAAO,CAAC,sBAAuBunM,GSrG1CxnM,EAAAA,CAAUA,CAACqI,QAAQ,CAAC,wBAEpB,WACI,IAAI,CAACvL,QAAQ,CAAG,CACZ4tM,QAAS,KACTh1B,IAAK,KACLjhK,MAAO,IACX,EACA,IAAI,CAAChM,IAAI,CAAG,YACR,OAAO,IAAI,CAAC3L,QAAQ,GACtB3C,IAAI,CAAC,IAAI,CACf,G,2BCRA6F,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiB,WAClC,MAAO,CACHjC,SAAU,IACVC,MAAO,GACPrM,SCTO,qHDUX,CACJ,G,oCERArF,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,uBAAwB,CACvC,QACA,kBACA,SAAU3sB,CAAK,CAAE0J,CAAe,EAC5B,IAAIijB,EAAU,CAAC,EAOf,OALAA,EAAQk2K,OAAO,CAAG,WAEd,OADA7iM,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAC1BrF,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,sBACpD,EAEOwgB,CACX,EACH,ECbDz0B,EAAAA,CAAUA,CAACsF,UAAU,CAAC,oBAAqB,CACvC,SACA,uBACA,aACA,OACA,kBACA,SAAUoT,CAAM,CAAEkyL,CAAoB,CAAE14L,CAAU,CAAEX,CAAI,CAAEC,CAAe,EAEzE,EACH,E,SXRDxR,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiBu1L,GACtCA,EAAuB/oM,OAAO,CAAG,EAAE,CAEnCF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,0BAA2B6jM,GACjDA,EAAwBjpM,OAAO,CAAG,CAAC,kBAAkB,CAqBrDipM,EAAwBxtM,SAAS,CAACkvM,SAAS,CAAG,WAC1C,IAAI,CAAC3B,WAAW,CAAC,CAAE1yK,KAAM,IAAI,CAACj4B,QAAQ,EAC1C,EE7BAyB,EAAAA,CAAUA,CAACC,OAAO,CAAC,aAAcopM,GACjCA,EAAWnpM,OAAO,CAAG,EAAE,C,kBUSvBF,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiB,CAClC,OACA,UACA,aACA,YACA,kBACA,SACA,uBACA,WACA,aACA,mBACA,aACA,kBACA,SACInC,CAAI,CACJ+C,CAAO,CACPpC,CAAU,CACV44L,CAAS,CACTt5L,CAAe,CACfxJ,CAAM,CACN4iM,CAAoB,CACpB5oM,CAAQ,CACRqnM,CAAU,CACVjlJ,CAAgB,CAChBn8C,CAAU,CACVyoB,CAAe,EAEf,MAAO,CACHrrB,SCxCG,+oFDyCHoM,SAAU,IACVC,MAAO,GACPkV,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAMq5L,kBAAkB,CAAG,GAC3Br6K,EAAgBknC,IAAI,GAAGz7D,IAAI,CAAC,IAAOuV,EAAMq5L,kBAAkB,CAAG,CAACr6K,EAAgBS,SAAS,CAAC,oBAEzFzf,EAAMulB,OAAO,CAAGA,EAAAA,CAChBvlB,CAAAA,EAAMhO,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAC5DgO,EAAM0uH,qBAAqB,CAAGn4H,EAAWo4H,gBAAgB,CAAC,CACtD,CACIzjI,IAAK,WACLV,MAAO,kBACX,EACA,CACIU,IAAK,SACLV,MAAO,OACX,EACH,EACDwV,EAAMs5L,OAAO,CAAG/iM,EAAWo4H,gBAAgB,CAAC,CACxC,CACIzjI,IAAK,WACLV,MAAO,kBACX,EACA,CACIU,IAAK,SACLV,MAAO,MACX,EACH,EACDwV,EAAMu5L,cAAc,CAAG15L,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,0BAC9F,IAAI6yL,EAAW,CACXrlD,WAAYn0I,EAAMu5L,cAAc,CAAG,iBACnCE,cAAez5L,EAAMu5L,cAAc,CAAG,mBAC1C,EAEIG,EAAmB,CACnB,oBAAqB,yBACrB,gBAAiB,oBACrB,CACIhnJ,CAAAA,EAAiBgD,KAAK,CAY1B11C,EAAM25L,mBAAmB,CAAG,SAAU70K,CAAI,EACtC,OAAOA,EAAKrlB,OAAO,CAAC,OAAQ,KAAKA,OAAO,CAAC,MAAO,IAAIqC,WAAW,EACnE,EAEA9B,EAAMw3L,WAAW,CAAG,SAAU1yK,CAAI,EAC9B,GAAIA,EAAK/jB,MAAM,CAAC64L,UAAU,CAAC,QAAS,CAChC,IAAM9iM,EAAS,IAAIoyH,IAAIpkG,EAAK/jB,MAAM,EAAE84L,YAAY,CAChDt0K,EAAAA,CAAOA,CAACC,UAAU,CAAC,cAAe,CAAC,EAAE1uB,EAAOO,GAAG,CAAC,YAAY,eAAe,CAAC,CAChF,MACIkuB,EAAAA,CAAOA,CAACC,UAAU,CAAC,cAAe,CAAC,EAAEV,EAAK/jB,MAAM,CAAC,eAAe,CAAC,CAGjD,YAAhB+jB,EAAKm/C,MAAM,GAIfjkE,EAAM85L,WAAW,GACbh1K,EAAKi1K,UAAU,EACf/5L,EAAMg6L,OAAO,CAACl1K,EAAK/jB,MAAM,CAAE+jB,EAAKm/C,MAAM,CAAEn/C,EAAKi1K,UAAU,CAAEj1K,EAAKm1K,mBAAmB,EAEzF,EAEAj6L,EAAMg6L,OAAO,CAAG,SAAUlvM,CAAM,CAAEF,CAAM,CAAE4yC,CAAU,CAAE08J,CAAY,EAE1Dl6L,SAAAA,EAAMovB,cAAc,EAAe8qK,MAAAA,EACnCl6L,EAAMm6L,OAAO,CAAC38J,EAAY08J,EAActvM,GAExCoV,EAAMm6L,OAAO,CAAC38J,EAAY1yC,EAAQF,EAE1C,EAEAoV,EAAMm6L,OAAO,CAAG,SAAU38J,CAAU,CAAE7zB,CAAI,CAAE/e,CAAM,EAC1C4yC,EACAx9B,EAAM4U,KAAK,CAACjL,EAAM,IAGlBrZ,EAAS,WACLsS,EAAQqmB,IAAI,CAACtf,EAAM/e,EACvB,EAAG,IAEX,EAEAoV,EAAMo6L,eAAe,CAAG,SAAUC,CAAQ,EAGtC,IAAK,IAFDC,EAAe,KACf9kM,EAAW,KACNrH,EAAI,EAAGA,EAAIksM,EAAS/uM,MAAM,CAAE6C,IACjCmsM,EAAeD,CAAQ,CAAClsM,EAAE,CAC1BqH,EAAWwK,EAAM25L,mBAAmB,CAACW,EAAaC,WAAW,EAC7DD,EAAaE,cAAc,CAAGhlM,EAAW,eACzC8kM,EAAaG,aAAa,CAAGjlM,EAAW,cAExCwK,EAAM06L,mBAAmB,CAACJ,GAC1Bt6L,EAAMo6L,eAAe,CAACE,EAAa7tL,QAAQ,CAEnD,EAEAzM,EAAM06L,mBAAmB,CAAG,SAAU7tM,CAAQ,EAC1C,GAAI2sM,CAAQ,CAAC3sM,EAASgrB,IAAI,CAAC,CAAE,CACzBhrB,EAAS0hC,KAAK,CAAGirK,CAAQ,CAAC3sM,EAASgrB,IAAI,CAAC,CACxChrB,EAASgrB,IAAI,CAAG,GAChB,MACJ,CAEAhrB,EAASgrB,IAAI,CAAG6hL,CAAgB,CAAC7sM,EAASgrB,IAAI,CAAC,EAAI8/K,EAAWa,eAAe,CAAC3rM,EAASgrB,IAAI,CAC/F,EAEA,IAAI8iL,EAAuBn6L,EAAWoG,GAAG,CAAC,aAAc,SAAUtc,CAAK,CAAE6E,CAAI,EAClDlB,KAAAA,IAAnB+R,EAAMq6L,QAAQ,EACdnB,EAAqBD,OAAO,GAAGxuM,IAAI,CAAC,SAAU0M,CAAQ,EAClD6I,EAAMo6L,eAAe,CAACjjM,EAAShI,IAAI,EACnC6Q,EAAMq6L,QAAQ,CAAGljM,EAAShI,IAAI,CAC9B6Q,EAAM46L,sBAAsB,CAAG,GAE/BtqM,EAAS,WACL0P,EAAM66L,QAAQ,CAAG1lL,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,YAAY,CAAC,EAAE,EAChFpV,EAAM86L,SAAS,CAAG3lL,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,CAC1F,EACJ,EAER,GACApV,EAAM4G,GAAG,CAAC,WAAY,WAClB+zL,GACJ,EACJ,CACJ,CACJ,EACH,EE7KDrsM,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,qBAAsB,CACrC,QACA,kBACA,aACA,SAAU3sB,CAAK,CAAE0J,CAAe,CAAEvJ,CAAU,EACxC,IAAIwsB,EAAU,CAAC,EAWf,OATAA,EAAQg4K,kBAAkB,CAAG,WAEzB,OADA3kM,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAC1BrF,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,gCACpD,EAEAwgB,EAAQi4K,aAAa,CAAG,WACpB,OAAOzkM,EAAWqmC,WAAW,CAAC98B,EAAgByC,YAAY,CAAG,+BACjE,EAEOwgB,CACX,EACH,E,oCXfDz0B,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,mBAAoBy2L,GACzCA,EAAiBjqM,OAAO,CAAG,CAAC,OAAQ,aAAc,kBAAmB,uBAAuB,CAE5FF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,6BAA8B8kM,GACpDA,EAA2BlqM,OAAO,CAAG,CAAC,WAAY,iBAAkB,WAAW,CAqC/EkqM,EAA2BzuM,SAAS,CAACm4I,SAAS,CAAG,WAC7C,IAAI,CAAC64D,gBAAgB,CAAC,GAC1B,EAEAvC,EAA2BzuM,SAAS,CAACo4I,SAAS,CAAG,WAC7C,IAAI,CAAC44D,gBAAgB,CAAC,EAC1B,EAEAvC,EAA2BzuM,SAAS,CAACgxM,gBAAgB,CAAG,SAAUt+K,CAAQ,EACtE,IAAIsW,EAAW,IAAI,CAAC8gH,YAAY,CAAGp3H,CAE/BsW,CAAAA,EAAW,EACX,IAAI,CAACE,QAAQ,CAAC,IAAI,CAAC6vG,MAAM,CAAC13I,MAAM,CAAG,GAC5B2nC,GAAY,IAAI,CAAC+vG,MAAM,CAAC13I,MAAM,CACrC,IAAI,CAAC6nC,QAAQ,CAAC,GAEd,IAAI,CAACA,QAAQ,CAACF,EAEtB,EAEAylK,EAA2BzuM,SAAS,CAACkpC,QAAQ,CAAG,SAAUxlC,CAAK,EACvDA,EAAQ,EACRA,EAAQ,IAAI,CAACq1I,MAAM,CAAC13I,MAAM,CAAG,EACtBqC,GAAS,IAAI,CAACq1I,MAAM,CAAC13I,MAAM,EAClCqC,CAAAA,EAAQ,GAGZ,IAAI21B,EAAQ,IAAI,CAAC0/G,MAAM,CAACr1I,EAAM,CAC1B4mJ,EAAY,IAAI,CAACR,YAAY,CAMjC,OALIzwH,IACA,IAAI,CAACywH,YAAY,CAAGpmJ,EACpB,IAAI,CAAC6mJ,UAAU,CAAC,IAAI,CAACT,YAAY,CAAEQ,IAGhC,IAAI,CAACR,YAAY,EAG5B2kD,EAA2BzuM,SAAS,CAACuqJ,UAAU,CAAG,SAAU7mJ,CAAK,CAAEknJ,CAAS,EACxE,IAAIC,EAAU,IAAI,CAAC1pJ,QAAQ,CAAC4oJ,KAAK,CAACrmJ,EAAM,CAGxConJ,IAFmB,CAAC3pJ,QAAQ,CAAC4oJ,KAAK,CAACa,EAAU,CAEpCpgI,WAAW,CAAC,IAAI,CAACk/H,YAAY,CAAC3gI,MAAM,EAC7C8hI,EAAQpgI,QAAQ,CAAC,IAAI,CAACi/H,YAAY,CAAC3gI,MAAM,CAC7C,EAEA0lL,EAA2BzuM,SAAS,CAACirJ,iBAAiB,CAAG,WACrD,IAAI,CAAC9pJ,QAAQ,CAAC4oJ,KAAK,CAAG7mJ,MAAMlD,SAAS,CAACmD,KAAK,CAAC9E,IAAI,CAAC,IAAI,CAAC4E,OAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,6BACxF,IAAK,IAAIjnB,EAAI,EAAGC,EAAI,IAAI,CAAChD,QAAQ,CAAC4oJ,KAAK,CAAC1oJ,MAAM,CAAE6C,EAAIC,EAAGD,IACnD,IAAI,CAAC/C,QAAQ,CAAC4oJ,KAAK,CAAC7lJ,EAAE,CAAGgnB,QAAQjoB,OAAO,CAAC,IAAI,CAAC9B,QAAQ,CAAC4oJ,KAAK,CAAC7lJ,EAAE,EAGnE,OAAO,IAAI,CAAC/C,QAAQ,CAAC4oJ,KAAK,EAG9B0kD,EAA2BzuM,SAAS,CAACgnC,IAAI,CAAG,WACxC,IAAI,CAACikH,iBAAiB,GACtB,IAAI,CAAC9pJ,QAAQ,CAAC4oJ,KAAK,CAAC,IAAI,CAACD,YAAY,CAAC,CAACr/H,QAAQ,CAAC,IAAI,CAACi/H,YAAY,CAAC3gI,MAAM,CAC5E,E,SEjGA1kB,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,aAAc22L,GACnCA,EAAWnqM,OAAO,CAAG,CAAC,OAAQ,kBAAmB,uBAAuB,CAExEF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,uBAAwBglM,GAC9CA,EAAqBpqM,OAAO,CAAG,CAAC,SAAU,WAAY,WAAW,CA+BjEoqM,EAAqB3uM,SAAS,CAACixM,UAAU,CAAG,WACxC,IAAI,CAAChuM,OAAO,CAAC,EAAE,CAACxB,gBAAgB,CAAC,UAAW,IAAI,CAACmtM,OAAO,CAAE,GAC9D,EAEAD,EAAqB3uM,SAAS,CAACkxM,YAAY,CAAG,WAC1C,IAAI,CAACjuM,OAAO,CAAC,EAAE,CAACrB,mBAAmB,CAAC,UAAW,IAAI,CAACgtM,OAAO,CAC/D,EAEAD,EAAqB3uM,SAAS,CAAC8uM,QAAQ,CAAG,WACX,KAAvB,IAAI,CAACx2D,aAAa,EAClB,IAAI,CAACyB,QAAQ,EAErB,EAEA40D,EAAqB3uM,SAAS,CAAC+5I,QAAQ,CAAG,WACtCz+G,EAAAA,CAAOA,CAACC,UAAU,CAAC,uBAAwB,QAAS,oBAEpD,IAAI,CAAC01K,UAAU,GACf,IAAI,CAACE,SAAS,CAAG,GAEjB,IAAI,CAAC9xK,OAAO,CACR,YACI,IAAI+xK,EAAY5vM,SAASyxB,aAAa,CAAC,+BACnCm+K,GACAA,EAAU3wM,KAAK,EAEvB,GAAEjC,IAAI,CAAC,IAAI,EACX,GAGJ,IAAI,CAAC85I,aAAa,CAAG,EACzB,EAEAq2D,EAAqB3uM,SAAS,CAACqxM,aAAa,CAAG,WAC3C,IAAI,CAACp3D,SAAS,EAClB,EAEA00D,EAAqB3uM,SAAS,CAAC6uM,yBAAyB,CAAG,SAAUzlK,CAAC,EAC9DA,CAAAA,KAAAA,EAAEtoC,OAAO,EAAWsoC,KAAAA,EAAEtoC,OAAO,IAC7B,IAAI,CAACm5I,SAAS,GACI,KAAd7wG,EAAEtoC,OAAO,EACTsoC,EAAEroC,eAAe,GAG7B,EAEA4tM,EAAqB3uM,SAAS,CAACi6I,SAAS,CAAG,WACvC3+G,EAAAA,CAAOA,CAACC,UAAU,CAAC,uBAAwB,QAAS,qBACpD,IAAI,CAAC+8G,aAAa,CAAG,GACrB,IAAI,CAAC44D,YAAY,GACjB,IAAI,CAAC3gD,eAAe,GAEpB,IAAI,CAAClxH,OAAO,CACR,YACI,IAAI,CAAC8xK,SAAS,CAAG,EACrB,GAAE3yM,IAAI,CAAC,IAAI,EACX,EAER,E,uLUlGA6F,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,cAAe,CAChC,OACA,kBACA,SAAUnC,CAAI,CAAEC,CAAe,EAC3B,MAAO,CACHC,SAAU,IACVmV,KAAM,SAAUlV,CAAK,CAAEixE,CAAE,CAAEl2D,CAAK,EAC5Bk2D,EAAGxoF,IAAI,CAAC,QAAS,WACbuX,EAAM4U,KAAK,CAAC,cAAeq8D,EAC/B,EACJ,CACJ,CACJ,EACH,E,yECVD,SAASsqH,GAAkBn5L,CAAE,CAAEhM,CAAK,CAAE0J,CAAe,EACjD,IAAIwhD,EAEJ,MAAO,CACHk6I,WAAY,SAAUzmL,CAAI,EAGtB,OAFA3e,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC6lD,EAAgBl/C,EAAGuI,KAAK,GACjBvU,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,kCAAoCwS,EAAO,kBAAmB,CAAEuU,QAASg4B,EAAc3yD,OAAO,EAClJ,EACA4W,OAAQ,WACJ+7C,EAAcvyD,OAAO,EACzB,CACJ,CACJ,CCfAT,EAAAA,CAAUA,CAACgF,SAAS,CAChB,kBACA03I,CAAAA,EAAAA,GAAAA,aAAAA,EAAc9lE,GAAAA,CAAMA,CAAE,CAAC,WAAY,WAAY,eAAgB,mBAAoB,oBAAqB,mBAAoB,WAAY,cAAe,YAAa,YAAa,YAAY,GCoBjM52E,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,cAAe,CAChC,WACA,YACA,UACA,qBACA,kBACA,aACA,uBACA,KACA,kCACA,QACA,oBACA,mBACA,8BACA,SACI1R,CAAQ,CACRuS,CAAS,CACTD,CAAO,CACPq2J,CAAkB,CAClBn5J,CAAe,CACfU,CAAU,CACVxO,CAAoB,CACpBoQ,CAAE,CACFq5L,CAA+B,CAC/B14L,CAAK,CACL8b,CAAiB,CACjBuM,CAAgB,CAChB04F,CAA2B,EAE3B,MAAO,CACHnwH,SCxDG,i3IDyDHoM,SAAU,IACVmV,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAM07L,sBAAsB,CAAG,CAC3B52H,MAAO,EAAE,CACTH,YAAa,EACjB,EACA3kE,EAAM27L,iBAAiB,CAAG,EAAE,CAC5B37L,EAAMuS,UAAU,CAAG,EAAE,CACrBvS,EAAMs4B,MAAM,CAAG,CACXg3G,WAAY,GACZxlH,UAAW,CAAEkrB,MAAO,4BAA6B4mJ,aAAc,6BAA8BC,YAAa,mCAAoCtkB,OAAQ,4BAA6B,CACvL,EACAv3K,EAAMkS,UAAU,CAAG,GACnBlS,EAAMmS,SAAS,CAAG,EAAE,CACpBnS,EAAMoS,QAAQ,CAAG,EAAE,CACnBpS,EAAMqS,UAAU,CAAG,EAAE,CACrBrS,EAAMqR,sBAAsB,CAAG,GAC/BrR,EAAMgS,gBAAgB,CAAG,GACzBhS,EAAMiS,aAAa,CAAG,GAEtBjS,EAAM87L,iBAAiB,CAAG,EAAE,CAC5B97L,EAAM20C,eAAe,CAAG,GACxB30C,EAAM+7L,YAAY,CAAG,GACrB/7L,EAAMg8L,kBAAkB,CAAG,GAC3Bh8L,EAAMi8L,iBAAiB,CAAG,GAC1Bj8L,EAAMk8L,cAAc,CAAG,CAAC,EACxBl8L,EAAMm8L,gBAAgB,CAAGhnL,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,EAC5FpV,EAAMo8L,iBAAiB,CAAGt8L,EAAgB6G,yBAAyB,CAAG,0BACtE3G,EAAMq8L,YAAY,CAAG,EACrBr8L,EAAMs8L,YAAY,CAAGt8L,EAAMq8L,YAAY,CACvCr8L,EAAMu8L,aAAa,CAAG,GACtBv8L,EAAMw8L,WAAW,CAAG,CAAC,QAAS,OAAQ,QAAS,QAAQ,CACvDx8L,EAAMy8L,WAAW,CAAG,GACpBz8L,EAAM08L,YAAY,CAAG,KACrB18L,EAAM28L,WAAW,CAAG,GACpB38L,EAAM48L,cAAc,CAAG,EAAE,CACzB58L,EAAM68L,UAAU,CAAG,GACnB78L,EAAM4X,uBAAuB,CAAG,GAChC5X,EAAM88L,kBAAkB,CAAG,EAAE,CAC7B98L,EAAM0S,aAAa,CAAG,EAAE,CACxB1S,EAAM+8L,eAAe,CAAG,GACxB/8L,EAAM3K,WAAW,CAAGC,GAAAA,CACpB0K,CAAAA,EAAMg9L,gBAAgB,CAAG,GACzBh9L,EAAMi9L,uBAAuB,CAAG,eAEhCn5E,EAA4B98F,SAAS,CAAC,2BAA4BhnB,EAAMi9L,uBAAuB,CAAE,IACzFC,IAAcn3G,EAAAA,CAAeA,CAACC,KAAK,CAAC8M,QAAQ,EAC5C9yF,EAAMm9L,qBAAqB,EAEnC,GACAjwM,EAAQu5B,EAAE,CAAC,WAAY,IAAMq9F,EAA4BnH,WAAW,CAAC,2BAA4B38G,EAAMi9L,uBAAuB,GAE9H,IAAMG,EAAa,CAAEnhM,GAAI,SAAU+oF,KAAMq4G,GAAAA,CAAUA,CAAEjoM,UAAWpD,EAAqBS,SAAS,CAAC,6CAA8C,EACvI6qM,EAAW,CAAErhM,GAAI,OAAQ+oF,KAAMs1E,GAAAA,CAAQA,CAAEllK,UAAWpD,EAAqBS,SAAS,CAAC,2CAA4C,EAC/H8qM,EAAc,CAAEthM,GAAI,UAAW+oF,KAAMu1E,GAAAA,CAAQA,CAAEnlK,UAAWpD,EAAqBS,SAAS,CAAC,8CAA+C,CAE9IuN,CAAAA,EAAMw9L,gBAAgB,CAAG,WACrB,IAAMC,EAAcC,CAAAA,EAAAA,GAAAA,CAAAA,EAA4BjyM,SAASyxB,aAAa,CAAC,+CACvEugL,GAAa/yM,OACjB,EAEAsV,EAAM4G,GAAG,CAAC,gBAAiB,SAAUtc,CAAK,CAAE6E,CAAI,EAC5C6Q,EAAM20C,eAAe,CAAG,GACxB30C,EAAMg8L,kBAAkB,CAAG,GAC3Bh8L,EAAMi8L,iBAAiB,CAAG,GAC1Bj8L,EAAM29L,QAAQ,CAAGxuM,EAAKwuM,QAAQ,CAC9B39L,EAAMkS,UAAU,CAAG/iB,EAAK+iB,UAAU,CAClClS,EAAMqR,sBAAsB,CAAGliB,EAAKkiB,sBAAsB,CAC1DrR,EAAMgS,gBAAgB,CAAG7iB,EAAK6iB,gBAAgB,CAC9ChS,EAAMiS,aAAa,CAAG9iB,EAAK8iB,aAAa,CACxCjS,EAAMuS,UAAU,CAAGpjB,EAAKojB,UAAU,CAClCvS,EAAMwS,iBAAiB,CAAGrjB,KAA2BlB,IAA3BkB,EAAKqjB,iBAAiB,CAAiBrjB,EAAKqjB,iBAAiB,CAAG,EAAE,CAC5FxS,EAAM49L,gBAAgB,CAAGzuM,EAAKyuM,gBAAgB,CAC9C59L,EAAMmS,SAAS,CAAGhjB,EAAKgjB,SAAS,CAChCnS,EAAMoS,QAAQ,CAAGjjB,EAAKijB,QAAQ,CAC9BpS,EAAMqS,UAAU,CAAGljB,EAAKkjB,UAAU,CAClCrS,EAAMk8L,cAAc,CAAG/sM,EAAK+sM,cAAc,CAC1Cl8L,EAAM69L,mBAAmB,CAAG1uM,EAAK0uM,mBAAmB,CACpD79L,EAAM89L,YAAY,CAAG3uM,EAAK2uM,YAAY,CACtC99L,EAAM28L,WAAW,CAAG,GACpB38L,EAAM4X,uBAAuB,CAAGzoB,CAAiC,IAAjCA,EAAKyoB,uBAAuB,CAC5D5X,EAAM0S,aAAa,CAAGvjB,EAAKujB,aAAa,EAAI,EAAE,CAC9C1S,EAAM+9L,0BAA0B,CAAG5uM,EAAK4uM,0BAA0B,CAElE/9L,EAAMg+L,0BAA0B,GAEJ/vM,KAAAA,IAAxBkB,EAAK8uM,cAAc,EACnBj+L,CAAAA,EAAMi+L,cAAc,CAAG,CACnBt5H,YAAax1E,EAAK8uM,cAAc,CAAClvL,KAAK,CACtC+1D,MAAO,CAAC31E,EAAK8uM,cAAc,CAAC,GAIpCj+L,EAAMk+L,yBAAyB,GAC/Bl+L,EAAMm+L,uBAAuB,CAAC,GAE9Bn+L,EAAMo+L,mBAAmB,CAAG,GAC5Bp+L,EAAMq+L,cAAc,CAAG,GACvBr+L,EAAMykB,SAAS,CAAG,GAClBzkB,EAAM88L,kBAAkB,CAAG,CAACM,EAAYG,EAAaD,EAAS,CAE9D,IAAI5qL,EAAgB,CAAC6qL,EAAaD,EAAUF,EAAW,CAEvDp9L,EAAMgkH,UAAU,CAAG,GACf70H,EAAKwjB,UAAU,EAAIxjB,EAAKwjB,UAAU,CAACi8H,yBAAyB,GAC5D5uI,EAAMgkH,UAAU,CAAG,CAAC70H,EAAKwjB,UAAU,CAACi8H,yBAAyB,CAACnhJ,QAAQ,CAAC,UACvEuS,EAAMikH,eAAe,CAAG,CAAC90H,EAAKwjB,UAAU,CAACi8H,yBAAyB,CAACnhJ,QAAQ,CAAC,sBAG5E0B,EAAKwjB,UAAU,GACf3S,EAAM68L,UAAU,CAAG1tM,EAAKwjB,UAAU,CAACkqL,UAAU,CACzC78L,EAAM68L,UAAU,EAChB78L,CAAAA,EAAMs+L,iBAAiB,CAAG,EAAG,GAIjCt+L,EAAMkS,UAAU,GAAK4gF,GAAAA,CAAQA,CAACkB,WAAW,CAAC/F,SAAS,EACnDjuF,CAAAA,EAAM+8L,eAAe,CAAG,EAAG,EAG/B/8L,EAAMs8L,YAAY,CAAGt8L,EAAMq8L,YAAY,CAEvCr8L,EAAM8wB,cAAc,GAGpB9wB,EAAM48L,cAAc,CAAChwM,OAAO,CAAC,SAAUm4C,CAAC,EAChCA,GACAA,EAAEh2C,OAAO,CAAC,KAElB,GACAiR,EAAM48L,cAAc,CAACtxM,MAAM,CAAG,EAC9B0U,EAAM48L,cAAc,CAAC7sM,IAAI,CAACqS,EAAGuI,KAAK,GAAIvI,EAAGuI,KAAK,IAE9C,IAAM4zL,EAA2BpvM,CAAuB,IAAvBA,EAAKsjB,aAAa,CACnD,IAAI+rL,EAAmC,GACnCl6L,EAAW,EAAE,CACjBA,EAASvU,IAAI,CACTkpK,EAAmBk5B,sBAAsB,CAACnyL,EAAMkS,UAAU,CAAE/iB,EAAKmjB,oBAAoB,CAAE,CAAEgX,QAAStpB,EAAM48L,cAAc,CAAC,EAAE,CAACjuM,OAAO,GAAIlE,IAAI,CAAC,SAAU0M,CAAQ,EACxJ6I,EAAMg8L,kBAAkB,CAAG,GAC3Bh8L,EAAM87L,iBAAiB,CAAG3kM,EAAShI,IAAI,CACvC6Q,EAAM27L,iBAAiB,CAAGxmL,QAAQ0N,IAAI,CAAC1rB,EAAShI,IAAI,EAErB,IAA3B6Q,EAAMi8L,iBAAiB,EAAYj8L,CAA4B,GAA5BA,EAAMg8L,kBAAkB,EAC3Dh8L,CAAAA,EAAM20C,eAAe,CAAG,EAAI,CAEpC,IAGAxlD,EAAKsvM,iBAAiB,EACtBz+L,EAAMg9L,gBAAgB,CAAG,GACzB14L,EAASvU,IAAI,CACTkpK,EAAmB//J,oBAAoB,CAAC,CAAEowB,QAAStpB,EAAM48L,cAAc,CAAC,EAAE,CAACjuM,OAAO,GAAIlE,IAAI,CAAC,SAAU0M,CAAQ,EACzG6I,EAAMi8L,iBAAiB,CAAG,GAC1Bj8L,EAAM07L,sBAAsB,CAAGvkM,EAAShI,IAAI,CAAC,EAAE,CAGhB,IAA3B6Q,EAAMi8L,iBAAiB,EAAYj8L,CAA4B,GAA5BA,EAAMg8L,kBAAkB,EAC3Dh8L,CAAAA,EAAM20C,eAAe,CAAG,EAAI,EAGhCjiC,EAAgB,CAAC4qL,EAAS,CAC1BkB,EAAmC,EACvC,KAGJl6L,EAASvU,IAAI,CACTkpK,EACKgC,0BAA0B,CAACj7J,EAAMkS,UAAU,CAAElS,EAAMmS,SAAS,CAAEnS,EAAMoS,QAAQ,CAAEpS,EAAMuS,UAAU,CAAEvS,EAAM49L,gBAAgB,CAAE59L,EAAMwS,iBAAiB,CAAExS,EAAMqS,UAAU,CAAE,CAChKiX,QAAStpB,EAAM48L,cAAc,CAAC,EAAE,CAACjuM,OAAO,GAE3ClE,IAAI,CAAC,SAAUguK,CAAY,EACxBz4J,EAAMi8L,iBAAiB,CAAG,GAC1Bj8L,EAAM07L,sBAAsB,CAAGjjC,EAE3Bz4J,EAAM07L,sBAAsB,CAAC52H,KAAK,CAACx5E,MAAM,CAAG,GAAK0U,sBAAAA,EAAM07L,sBAAsB,CAAC/2H,WAAW,EACzF3kE,CAAAA,EAAM07L,sBAAsB,CAAC/2H,WAAW,CAAG3yE,EAAqBS,SAAS,CAAC,oCAAmC,EAGjHuN,EAAM+7L,YAAY,CAAG18K,IAEU,IAA3Brf,EAAMi8L,iBAAiB,EAAYj8L,CAA4B,GAA5BA,EAAMg8L,kBAAkB,EAC3Dh8L,CAAAA,EAAM20C,eAAe,CAAG,EAAI,EAGhC6pJ,EAAmC,GACnC,IAAME,EAAiB,CAAC,QAAS,QAAS,QAAQ,CAE9C,GAAOvsL,SAAS,EAAInS,EAAMmS,SAAS,CAAC7mB,MAAM,CAAG,GAAM0U,EAAMkS,UAAU,GAAK4gF,GAAAA,CAAQA,CAACkB,WAAW,CAAC/zE,QAAQ,EAAIjgB,EAAMkS,UAAU,GAAK4gF,GAAAA,CAAQA,CAACkB,WAAW,CAAC/F,SAAS,GAC5Jv7E,CAAAA,EAAgB,CAAC4qL,EAAS,EAG1Bt9L,EAAMoS,QAAQ,EAAIpS,IAAAA,EAAMoS,QAAQ,CAAC9mB,MAAM,GAClC0U,EAAMoS,QAAQ,CAAC3kB,QAAQ,CAAC,SAGzBuS,EAAMoS,QAAQ,CAAC62B,IAAI,CAAC,SAAU79B,CAAI,EAC9B,OAAOszL,EAAe3wM,OAAO,CAACqd,EAAKtJ,WAAW,IAAM,EACxD,IAEA08L,CAAAA,EAAmC,EAAG,EANtC9rL,EAAgB,CAAC4qL,EAAS,CAStC,IAIZl7L,EAAGqC,GAAG,CAACH,GAAU7Z,IAAI,CAAC,WAClBuV,EAAM8uI,eAAe,CAAGyvD,GAA4BC,EAAmCx+L,EAAM2+L,gBAAgB,CAAG1wM,KAAAA,EAChH+R,EAAM0S,aAAa,CAAG1S,EAAM0S,aAAa,CAACpnB,MAAM,CAAG,EAAI0U,EAAM0S,aAAa,CAAGA,EACzEvjB,EAAKqmM,YAAY,EAAIrmM,EAAKmjB,oBAAoB,EAAInjB,IAAAA,EAAKmjB,oBAAoB,CAAChnB,MAAM,EAClF0U,EAAM4+L,iCAAiC,GAGvC5+L,EAAM27L,iBAAiB,CAACrwM,MAAM,CAAG,GAAK0U,IAAAA,EAAM07L,sBAAsB,CAAC52H,KAAK,CAACx5E,MAAM,EAC/E0U,CAAAA,EAAM07L,sBAAsB,CAAC52H,KAAK,CAAG9kE,EAAM27L,iBAAiB,CAACvuM,KAAK,EAAC,EAEvE4S,EAAMo+L,mBAAmB,CAAGpsM,EAAqBS,SAAS,CAAC,4BAG3DmQ,EAAQi8L,qBAAqB,CAAC,WAC1B7+L,EAAM8+L,cAAc,CAAG5xM,CAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,sCAChDld,EAAM8+L,cAAc,CAACntK,SAAS,CAAG,CACrC,GACA3xB,EAAMw9L,gBAAgB,EAC1B,EACJ,GAEAx9L,EAAMm9L,qBAAqB,CAAG,KAC1Bn9L,EAAMo+L,mBAAmB,CAAGpsM,EAAqBS,SAAS,CAAC,CAAC,YAAY,EAAEuN,EAAM20C,eAAe,CAAG,gBAAkB,eAAe,CAAC,CACxI,EAEA30C,EAAM++L,oBAAoB,CAAG,WACzB,MAAO,CACHj6H,MAAO,EAAE,CACTH,YAAa,EACjB,CACJ,EAEA3kE,EAAMm+L,uBAAuB,CAAG,SAAU3zM,CAAK,EAC3CwV,EAAMxV,KAAK,CAAGA,CAClB,EAEAwV,EAAMg/L,cAAc,CAAG,SAAUxwD,CAAQ,EACjCxuI,WAAAA,EAAMqR,sBAAsB,EAC5BrR,EAAMo+L,mBAAmB,CAAGpsM,EAAqBS,SAAS,CAAC,oCAAqC,CAAEwC,MAAOu5I,EAASz/H,KAAK,GAEvHze,EAAS,WACL0P,EAAMi/L,iBAAiB,CAAC,CAACzwD,EAAS,EAAE/jJ,IAAI,CAAC,WACrCuV,EAAMk/L,YAAY,CAAC1wD,EACvB,EACJ,EAAG,MAEHxuI,EAAM+7L,YAAY,CAAG18K,GAE7B,EAEArf,EAAMm/L,aAAa,CAAG,WAClBn/L,EAAMi/L,iBAAiB,CAACj/L,EAAM27L,iBAAiB,EAAElxM,IAAI,CAACuV,EAAMo/L,gBAAgB,EAC5Ep/L,EAAMuZ,WAAW,EACrB,EAEAvZ,EAAMo/L,gBAAgB,CAAG,WACrB5+L,EAAWK,UAAU,CAACb,EAAMgS,gBAAgB,CAAEhS,EAAM27L,iBAAiB,EACrErrM,EAAS,WACL0P,EAAM07L,sBAAsB,CAAG17L,EAAM++L,oBAAoB,EAC7D,GACA/+L,EAAM27L,iBAAiB,CAAG,EAAE,CAC5B37L,EAAM87L,iBAAiB,CAAG,EAAE,CAC5B97L,EAAMg+L,0BAA0B,GAChCh+L,EAAM+7L,YAAY,CAAG,GACrB/7L,EAAM08L,YAAY,CAAG,KAErB18L,EAAMq/L,iBAAiB,CAAC,GAC5B,EAEAr/L,EAAMi/L,iBAAiB,CAAG,SAAUK,CAAS,EACzC,IAAI3wM,EAAU,KACd,GAAIqR,EAAM4X,uBAAuB,EAAI0nL,EAAUh0M,MAAM,CAAG,EAAG,CACvD,IAAIuQ,EAAWyjM,EAAU7mF,MAAM,CAAC,SAAU58G,CAAQ,CAAEipB,CAAI,EAIpD,OAHKA,EAAKy6K,SAAS,EACf1jM,EAAS9L,IAAI,CAAC+0B,EAAKtoB,EAAE,EAElBX,CACX,EAAG,EAAE,EAEL,GAAIA,IAAAA,EAASvQ,MAAM,CACf,OAAO8W,EAAG4K,IAAI,GAGlBre,EAAUkwB,EAAkBjjB,sBAAsB,CAACC,GAAUpR,IAAI,CAAC,SAAUi6B,CAAM,EAK9E,IAAK,IAJD86K,EAAgB,EAAE,CAClBC,EAAiB,GACjBC,EAAa,GAERvxM,EAAI,EAAGC,EAAIs2B,EAAOp5B,MAAM,CAAE6C,EAAIC,EAAGD,IAGlCuxM,iBAAAA,CAFJA,EAAah7K,CAAM,CAACv2B,EAAE,EAEPssC,KAAK,CAChB+kK,EAAczvM,IAAI,CAACuvM,CAAS,CAACnxM,EAAE,EACH,gBAArBuxM,EAAWjlK,KAAK,GACvB+kK,EAAczvM,IAAI,CAACuvM,CAAS,CAACnxM,EAAE,EAC/BsxM,EAAiB,IAIzB,GAAID,EAAcl0M,MAAM,CAAG,EAEvB,OADA0U,EAAM2/L,sBAAsB,CAACH,EAAeC,GACrCr9L,EAAGpT,MAAM,EAExB,EACJ,MACIL,EAAUyT,EAAG4K,IAAI,GAGrB,OAAOre,CACX,EAEAqR,EAAMk/L,YAAY,CAAG,SAAU1wD,CAAQ,EACnCxuI,EAAM27L,iBAAiB,CAAG,EAAE,CAC5B37L,EAAM27L,iBAAiB,CAAC5rM,IAAI,CAACy+I,GAEzBxuI,EAAM89L,YAAY,CAClB99L,EACK4/L,UAAU,CAACpxD,GACX/jJ,IAAI,CAAC,SAAU6X,CAAI,EAChBtC,EAAMo/L,gBAAgB,EAC1B,GACC9vM,KAAK,CAAC,SAAUokE,CAAG,EAChB1zD,EAAM27L,iBAAiB,CAACrwM,MAAM,CAAG,CACrC,GAEJ0U,EAAMo/L,gBAAgB,EAE9B,EAEAp/L,EAAM2/L,sBAAsB,CAAG,SAAUH,CAAa,CAAEC,CAAc,EAClE,IAAIv2I,EAAgBlpD,EAAMgG,IAAI,CAAC,IAE3B65L,EAAc7/L,EAAMkS,UAAU,GAAK4gF,GAAAA,CAAQA,CAACkB,WAAW,CAAC/zE,QAAQ,CAAG,WAAa,OAEpFipC,CAAAA,EAAcj0D,KAAK,CAAGjD,EAAqBS,SAAS,CAAC,kBAAoBotM,EAAc,6BACvF32I,EAActrB,OAAO,CAAG6hK,EAClBztM,EAAqBS,SAAS,CAAC,kBAAoBotM,EAAc,oCACjE7tM,EAAqBS,SAAS,CAAC,kBAAoBotM,EAAc,wCACvE32I,EAAcs2I,aAAa,CAAGA,EAE9Bt2I,EAAcrrB,YAAY,CAAG7rC,EAAqBS,SAAS,CAAC,+BAC5Dy2D,EAAc9gE,OAAO,CAAG,WACpB8gE,EAAc5iD,QAAQ,EAC1B,EAEAvD,EAAMwD,QAAQ,CAAC,CACXvG,MAAOkpD,EACPxiD,YAAa5G,EAAgB6G,yBAAyB,CAhBtC,oDAiBpB,EACJ,EAEA3G,EAAM2+L,gBAAgB,CAAG,IACrBn+L,EAAWK,UAAU,CAAC,yBAA0B,CAC5CqB,MAAO,cACP49L,cAAe,CACX5yE,WAAYA,CAChB,CACJ,EACJ,EAEAltH,EAAMiF,QAAQ,CAAG,WAEbzE,EAAWK,UAAU,CAACb,EAAMgS,gBAAgB,CAAEhS,EAAM87L,iBAAiB,EACrE97L,EAAM07L,sBAAsB,CAAG17L,EAAM++L,oBAAoB,GACzD/+L,EAAM27L,iBAAiB,CAAG,EAAE,CAC5B37L,EAAM87L,iBAAiB,CAAG,EAAE,CAC5B97L,EAAM+7L,YAAY,CAAG,GACrB/7L,EAAM08L,YAAY,CAAG,KACrB18L,EAAMo+L,mBAAmB,CAAG,EAChC,EAEAp+L,EAAM5X,OAAO,CAAG,SAAU20M,CAAe,EACrC/8L,EAAMiF,QAAQ,GACdjF,EAAMq/L,iBAAiB,CAACtC,EAC5B,EAEA/8L,EAAM+/L,YAAY,CAAG,KACjB//L,EAAM5X,OAAO,CAAC4X,EAAM+8L,eAAe,CACvC,EAEA/8L,EAAMq/L,iBAAiB,CAAG,SAAUtC,CAAe,EAC/C/8L,EAAMgxB,gBAAgB,GACtBhxB,EAAMggM,aAAa,CAAC,GAAOjD,EAC/B,EAEA/8L,EAAM4/L,UAAU,CAAG,SAAUpxD,CAAQ,EAEjC,OAAOitD,EAAgChxL,2BAA2B,CAAC+jI,EAAShyI,EAAE,CAAEgyI,EAAStkH,QAAQ,CAAE,IAAI56B,KAAK,CAAC,WACzG,OAAO8S,EAAGpT,MAAM,CAACw/I,EACrB,EACJ,EAEAxuI,EAAMigM,6BAA6B,CAAGjgM,EAAMiF,QAAQ,CAEpDjF,EAAM45J,QAAQ,CAAGlqI,CAAAA,EAAAA,GAAAA,CAAAA,EAAW,CAACwwK,EAAc/kC,KACvC,IAAMglC,EAAgBD,EAAaloJ,IAAI,GACvC,GAAImoJ,KAAAA,EAAsB,CACtBngM,EAAMogM,2BAA2B,GACjC,MACJ,CAEA,IAAMjiM,EAAa,CAAEmxI,WAAY6wD,CAAc,CAC3BlyM,MAAAA,IAAhBktK,GACAh9J,CAAAA,EAAW5Q,MAAM,CAAG4tK,EAAY5tK,MAAM,EAG1CiT,EAAWK,UAAU,CAAC,qBAAsB1C,EAChD,EAAG6B,GAEHA,EAAMogM,2BAA2B,CAAG,WAChCpgM,EAAMs4B,MAAM,CAACg3G,UAAU,CAAG,GAC1B9uI,EAAWK,UAAU,CAAC,qBAC1B,EAEAb,EAAM6mB,QAAQ,CAAG6I,CAAAA,EAAAA,GAAAA,CAAAA,EAAW,IACxB1vB,EAAMs4B,MAAM,CAACg3G,UAAU,CAAG4wD,CAC9B,EAAGlgM,GAEHA,EAAM25J,cAAc,CAAGjqI,CAAAA,EAAAA,GAAAA,CAAAA,EAAW,IAC9B1vB,EAAMs4B,MAAM,CAACghI,WAAW,CAAGA,CAC/B,EAAGt5J,GAEHA,EAAMg+L,0BAA0B,CAAG,KAC/Bh+L,EAAMs4B,MAAM,CAAC3iB,aAAa,CAAG,CACzB,CACInrB,MAAOwH,EAAqBS,SAAS,CAACk6I,GAAAA,CAAmBA,CAACloI,GAAG,CAACtP,KAAK,EACnE5H,OAAQo/I,GAAAA,CAAmBA,CAACloI,GAAG,CAC/BirI,UAAW19I,EAAqBS,SAAS,CAACk6I,GAAAA,CAAmBA,CAACloI,GAAG,CAACirI,SAAS,CAC/E,EACA,CACIllJ,MAAOwH,EAAqBS,SAAS,CAACk6I,GAAAA,CAAmBA,CAACx8G,GAAG,CAACh7B,KAAK,EACnE5H,OAAQo/I,GAAAA,CAAmBA,CAACx8G,GAAG,CAC/Bu/G,UAAW19I,EAAqBS,SAAS,CAACk6I,GAAAA,CAAmBA,CAACx8G,GAAG,CAACu/G,SAAS,CAC/E,EACA,CACIllJ,MAAOwH,EAAqBS,SAAS,CAACk6I,GAAAA,CAAmBA,CAAC13I,KAAK,CAACE,KAAK,EACrE5H,OAAQo/I,GAAAA,CAAmBA,CAAC13I,KAAK,CACjCy6I,UAAW19I,EAAqBS,SAAS,CAACk6I,GAAAA,CAAmBA,CAAC13I,KAAK,CAACy6I,SAAS,CACjF,EACH,CACD1vI,EAAMs4B,MAAM,CAACghI,WAAW,CAAG,CACvBC,gBAAiB,EACjBnuJ,KAAMouJ,GAAAA,CAAcA,CAACC,MAAM,CAC3B34I,OAAQ,EACZ,EACA9gB,EAAMs4B,MAAM,CAACg3G,UAAU,CAAG,EAC9B,EAEAtvI,EAAMg+L,0BAA0B,GAEhCh+L,EAAM4+L,iCAAiC,CAAG,WACtC5+L,EAAM20C,eAAe,CAAG,GAGnB30C,EAAM08L,YAAY,EAQnB18L,EAAM07L,sBAAsB,CAAG17L,EAAM08L,YAAY,CACjD18L,EAAM08L,YAAY,CAAG,KACrB18L,EAAM28L,WAAW,CAAG,KATpB38L,EAAM08L,YAAY,CAAG18L,EAAM07L,sBAAsB,CACjD17L,EAAM07L,sBAAsB,CAAG,CAC3B52H,MAAO3vD,QAAQ0N,IAAI,CAAC7iB,EAAM27L,iBAAiB,EAC3Ch3H,YAAa3yE,EAAqBS,SAAS,CAAC,2BAChD,EACAuN,EAAM28L,WAAW,CAAG,IAOxB38L,EAAMg+L,0BAA0B,GAChCx9L,EAAWK,UAAU,CAAC,sBAEtBL,EAAWK,UAAU,CAAC,wBAAyBb,EAAM07L,sBAAsB,EAE3E17L,EAAM20C,eAAe,CAAG,GACxB30C,EAAM+7L,YAAY,CAAG18K,GACzB,EAEArf,EAAMimB,SAAS,CAAG,WACdzlB,EAAWK,UAAU,CAAC,wBAAyB,IAEnB,gBAAxBb,EAAMiS,aAAa,EACnBzR,EAAWK,UAAU,CAACb,EAAMgS,gBAAgB,CAAEhS,EAAM07L,sBAAsB,CAAC52H,KAAK,EAEpF9kE,EAAM+7L,YAAY,CAAG,GACrB/7L,EAAMuZ,WAAW,EACrB,EAEAvZ,EAAMqgM,QAAQ,CAAG,WACb7/L,EAAWK,UAAU,CAAC,wBAAyB,IAEnB,gBAAxBb,EAAMiS,aAAa,EACnBzR,EAAWK,UAAU,CAACb,EAAMgS,gBAAgB,CAAEhS,EAAM27L,iBAAiB,EAEzE37L,EAAM+7L,YAAY,CAAG,GACrB/7L,EAAMuZ,WAAW,EACrB,EAEAvZ,EAAM2tI,aAAa,CAAG,SAAU1xI,CAAE,EAC9B,OAAO0xI,KAAAA,EAAc1xI,EACzB,EAEA,IAAI0xI,EAAgB,SAAUa,CAAQ,EAClC,IAAK,IAAIrgJ,EAAI,EAAGkmE,EAAMr0D,EAAM27L,iBAAiB,CAACrwM,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IAC3D,GAAI6R,EAAM27L,iBAAiB,CAACxtM,EAAE,CAACqO,EAAE,GAAKgyI,EAAShyI,EAAE,CAC7C,OAAOrO,EAGf,OAAO,EACX,EAEIkxB,EAAc,WACd,IAAK,IAAMyF,KAAQ9kB,EAAM07L,sBAAsB,CAAC52H,KAAK,CACjD,GAAI6oE,KAAAA,EAAc7oH,GACd,MAAO,GAGf,MAAO,EACX,CAMA9kB,CAAAA,EAAMwqJ,QAAQ,CAAG,WACbxqJ,EAAM5X,OAAO,CAAC,GAClB,EAEA4X,EAAM8wB,cAAc,CAAG,WAWnB1F,EAAiBx6B,QAAQ,CAAC,cAAe,CAV/B,CACN1F,IAAK,IACL6lC,OAAQ,GACRthC,SAAU,WACN,IAAM6wM,EAAkB70M,SAASyxB,aAAa,CAAC,iDAC3CojL,GACAA,EAAgB51M,KAAK,EAE7B,CACJ,EAC4C,CAChD,EAEAsV,EAAMgxB,gBAAgB,CAAG,WACrB5F,EAAiB95B,MAAM,CAAC,cAC5B,EAEA0O,EAAMssI,WAAW,CAAG,SAAUrwI,CAAE,EAC5B,OAAO6D,EAAgByC,YAAY,CAAG,yBAA2BtG,EAAK,kCAC1E,EAEA+D,EAAMk+L,yBAAyB,CAAG,WAC9Bl+L,EAAMs8L,YAAY,CAAGt8L,EAAMq8L,YAAY,CACvCr8L,EAAMugM,aAAa,CAAG,EAC1B,EAEAvgM,EAAMwgM,aAAa,CAAG,WAClBxgM,EAAMygM,YAAY,CAAG,CAACzgM,EAAMygM,YAAY,EAG5CzgM,EAAMw3B,aAAa,CAAG,SAAUv7B,CAAE,CAAEiG,CAAK,CAAEyQ,CAAU,EACjDzQ,EAAQ,KAAiB,IAAVA,EAAwBA,EAAQ,aAC/C1B,EAAWK,UAAU,CAAC,yBAA0B,CAC5CqB,MAAOA,EACPnM,QAASkG,EACT0W,WAAYA,CAChB,EACJ,EAEA3S,EAAM0gM,cAAc,CAAG,SAAUC,CAAM,EAC/BA,IACI3gM,EAAMq+L,cAAc,EAAIr+L,EAAM07L,sBAAsB,CAAC52H,KAAK,CAACx5E,MAAM,EACjE0U,EAAMykB,SAAS,CAAG,GAClBzkB,EAAMq+L,cAAc,CAAGr+L,EAAM07L,sBAAsB,CAAC52H,KAAK,CAACx5E,MAAM,EAEhE0U,EAAMq+L,cAAc,EAAI,GAGpC,EAGAr+L,EAAM4G,GAAG,CAAC,cAAe,SAAUtc,CAAK,CAAE6E,CAAI,EAC1C,IAAI21B,EAAO9kB,EAAM07L,sBAAsB,CAAC52H,KAAK,CAAC5qD,KAAK,CAAC,CAAE1d,GAAIrN,CAAI,CAAC,EAAE,CAAC8M,EAAE,EAChE6oB,CAAAA,EAAKx5B,MAAM,CAAG,GACdw5B,CAAAA,CAAI,CAAC,EAAE,CAAC87K,QAAQ,CAAG,EAAG,EAE1B5gM,EAAM6gM,OAAO,EACjB,GAEA7gM,EAAM4gM,QAAQ,CAAG,SAAU97K,CAAI,EAC3B,OAAOA,EAAKrT,OAAO,EAAKqT,CAAAA,UAAAA,EAAKrT,OAAO,CAAC3P,WAAW,IAAkBgjB,EAAK87K,QAAQ,CACnF,EAEA5gM,EAAM8gM,UAAU,CAAG,SAAUh8K,CAAI,UACzB9kB,EAAM27L,iBAAiB,CAACzhL,KAAK,CAAC,CAAE1d,GAAIsoB,EAAKtoB,EAAE,GAAIlR,MAAM,CAKjE,CACJ,CACJ,EACH,EFnpBDgD,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,oBAAqBw4K,IACxCA,GAAkB/sM,OAAO,CAAG,CAAC,KAAM,QAAS,kBAAkB,C,2BIO9DF,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,aAAc,CAC/B,WACA,OACA,oBACA,kBACA,aACA,eACA,UACA,YACA,qBACA,aACA,iBACA,uBACA,SAAU1R,CAAQ,CAAEuP,CAAI,CAAE07L,CAAiB,CAAEz7L,CAAe,CAAEU,CAAU,CAAEnK,CAAY,CAAEuM,CAAO,CAAEE,CAAS,CAAEooB,CAAkB,CAAE30B,CAAU,CAAE4sF,CAAc,CAAEnxF,CAAoB,EAC5K,MAAO,CACH+N,SAAU,IACVpM,SC3BG,skDD4BHC,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EA0E9B,SAASm4L,EAAc1tK,CAAC,EACF,KAAdA,EAAEtoC,OAAO,GACTsoC,EAAEroC,eAAe,GACjBg2M,IAER,CAEA,SAASA,EAAkB3tK,CAAC,EACxBkoK,EAAkBh2L,MAAM,GACxB07L,IAEAj6L,EAAOk6L,oBAAoB,CAACx2M,KAAK,GAE5B2oC,IACDrsB,EAAO4N,KAAK,CAAC,sBACb5N,EAAOV,QAAQ,GAEvB,CAEA,SAAS26L,IAtBLx1M,SAASI,mBAAmB,CAAC,UAAWk1M,EAAe,GAwB3D,CAkBA,SAASI,EAAsBC,CAAW,EACtCA,EAAYt8H,KAAK,CAAGu8H,SAgBMC,CAAc,EAGxC,IAAK,IAFDC,EAAiB,EAAE,CAEdpzM,EAAI,EAAGA,EAAImzM,EAAeh2M,MAAM,CAAE6C,IACvCozM,EAAiBA,EAAex7K,MAAM,CAACu7K,CAAc,CAACnzM,EAAE,CAACse,QAAQ,EAE7D60L,EAAeh2M,MAAM,CAAG,IAAM6C,GAC9B6Y,CAAAA,EAAOw6L,kBAAkB,CAAGF,CAAc,CAACnzM,EAAE,CAACszM,oBAAoB,EAI1E,OAAOF,CACX,EA5B6CH,EAAYt8H,KAAK,EAC1D99D,EAAOo6L,WAAW,CAAGp6L,EAAOo6L,WAAW,CAACr7K,MAAM,CAACq7K,EAAYt8H,KAAK,EAEhE99D,EAAOQ,OAAO,CAAG,GACjBR,EAAO06L,WAAW,CAAGN,EAAYO,WAAW,CAC5C36L,EAAO46L,eAAe,CAAGR,EAAYS,eAAe,CACpD76L,EAAOurB,QAAQ,CAAG,CAAC6uK,EAAYM,WAAW,CAErC16L,EAAO06L,WAAW,CAGnB16L,EAAO86L,UAAU,CAAG,GAFpB96L,EAAO86L,UAAU,CAAG,GAIxB96L,EAAO+6L,kBAAkB,CAAG,EAChC,CA/HA/6L,EAAOhV,oBAAoB,CAAGA,EAC9BgV,EAAOo6L,WAAW,CAAG,EAAE,CACvBp6L,EAAOg7L,WAAW,CAAG3rM,EAErB2Q,EAAOu/H,YAAY,CAAG,WAClBv/H,EAAOi7L,gBAAgB,CAAG9sL,QAAQjoB,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,EACxGpO,EAAOk7L,eAAe,CAAGz2M,SAASyiC,cAAc,CAAC,iBACjDlnB,EAAOm7L,cAAc,CAAG12M,SAASyiC,cAAc,CAAC,oBAE5ClnB,SAAAA,EAAOo7L,gBAAgB,CACvBp7L,EAAOk6L,oBAAoB,CAAGz1M,SAASyiC,cAAc,CAAC,4BACnB,QAA5BlnB,EAAOo7L,gBAAgB,EAC9Bp7L,CAAAA,EAAOk6L,oBAAoB,CAAGz1M,SAASyiC,cAAc,CAAC,kBAAiB,EAsD3EziC,SAASC,gBAAgB,CAAC,UAAWq1M,EAAe,IAjDpDxF,EAAkBC,UAAU,CAACp6L,KAAKq4C,GAAG,IAAIhvD,IAAI,CAAC,SAAU0M,CAAQ,EAC5DgqM,EAAsBhqM,EAAShI,IAAI,EA+EvCmB,EAAS,WACL,IAAI+xM,EAAcltL,QAAQjoB,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,yBAAyB,CAAC,EAAE,CAC7FitL,CAAAA,CAAW,CAAC,EAAE,EACdA,CAAW,CAAC,EAAE,CAAC33M,KAAK,EAE5B,EAlFA,EACJ,EAEAsc,EAAOs7L,OAAO,CAAG,WACbt7L,EAAOQ,OAAO,CAAG,GACjB,IAAI+6L,EAAgBv7L,EAAOo6L,WAAW,CAAC91M,MAAM,CAC7CiwM,EAAkBC,UAAU,CAACx0L,EAAOw7L,iBAAiB,IAAI/3M,IAAI,CAAC,SAAU0M,CAAQ,EAC5EgqM,EAAsBhqM,EAAShI,IAAI,EA+EvCmB,EAAS,WAELmyM,QADuBv1M,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,0BAC1D,CAhFcmtL,EAgFG,CAAC73M,KAAK,EACnC,EAhFA,EACJ,EAEAsc,EAAO07L,iBAAiB,CAAG,WACW,IAA9B17L,EAAOo6L,WAAW,CAAC91M,MAAM,EACzB0b,EAAOu/H,YAAY,EAE3B,EAEAv/H,EAAO27L,QAAQ,CAAG,WACT37L,EAAOQ,OAAO,GACfR,EAAO+6L,kBAAkB,CAAG,GAC5B/6L,EAAOs7L,OAAO,GAEtB,EAGA9hM,EAAWoG,GAAG,CAAC,wBAAyB,WACpCI,EAAOu/H,YAAY,EACvB,GAEAv/H,EAAOw7L,iBAAiB,CAAG,WACvB,OAAOx7L,EAAOw6L,kBAAkB,EAGpCx6L,EAAOg6L,iBAAiB,CAAG,WACvBA,GACJ,EAEAh6L,EAAOJ,GAAG,CAAC,oBAAqBq6L,GAChCj6L,EAAOJ,GAAG,CAAC,2BAA4Bo6L,GACvC58G,EAAS39D,EAAE,CAAC,WAAY,WACpBw6K,IACAj6L,EAAOV,QAAQ,EACnB,EA+EJ,EACH,CAED4O,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAM8hM,UAAU,CAAG,GACnB9hM,EAAM+hM,kBAAkB,CAAG,GAE3B,IAAIa,EAAe,CACfn2J,KAAM,kBACN1d,SAAU,iBACd,CACA/uB,CAAAA,EAAM6iM,WAAW,CAAG,SAAUl5L,CAAI,CAAEm5L,CAAU,EAC1C,GAAIn5L,EAAM,CACN,GAAmB,WAAfm5L,IAGIvsM,EAAW8D,OAAO,CAACsP,GAFvB,OAAOA,EAIH,IAAIsC,EAAQtC,EAAKsC,KAAK,CAAC,kCAIvB,OAHc,OAAVA,GACAtC,CAAAA,EAAOA,EAAKlK,OAAO,CAAC,8BAA+B,KAAOmjM,CAAY,CAAC32L,CAAK,CAAC,EAAE,CAACnK,WAAW,GAAG,GAE3FvL,EAAW0uB,iBAAiB,CAACtb,EAAM,KAMtD,CACJ,EAEA3J,EAAMumI,YAAY,EACtB,CACJ,CACJ,EACH,E,6GE/MM,IAAMw8D,GAA2B,CAAC71M,EAASyT,IACvC,CACH,CACI7P,KAAM,CAACy+B,EAAAA,CAAIA,CAACC,OAAO,CAAED,EAAAA,CAAIA,CAACE,KAAK,CAAE,IAAI,CACrChgC,SAAUigC,CAAAA,EAAAA,GAAAA,CAAAA,EAAW,IAAMxiC,EAAQgwB,aAAa,CAAC,wCAAwCxyB,QAASiW,EAASX,KAAK,EAChH2vB,YAAahvB,EAASqiM,gBAAgB,CAACvwM,SAAS,CAAC,iCACrD,EACH,CCPQwwM,GAA2B,CAAC/1M,EAASyT,IACvC,CACH,CACI7P,KAAM,CAACy+B,EAAAA,CAAIA,CAACC,OAAO,CAAED,EAAAA,CAAIA,CAACE,KAAK,CAAE,IAAI,CACrChgC,SAAUigC,CAAAA,EAAAA,GAAAA,CAAAA,EAAW,IAAMxiC,EAAQgwB,aAAa,CAAC,wCAAwCxyB,QAASiW,EAASX,KAAK,EAChH2vB,YAAahvB,EAASqiM,gBAAgB,CAACvwM,SAAS,CAAC,iCACrD,EACH,C,kFCLL,SAASywM,GAAkBxiM,CAAa,EACpC,IAAI,CAACyiM,SAAS,CAAG,GAEjB,IAAI,CAACC,cAAc,CAAG,WACb1iM,EAAc++C,YAAY,IAC3B,KAAI,CAAC0jJ,SAAS,CAAG,EAAG,CAE5B,EAEA,IAAI,CAACE,8BAA8B,CAAG,WAC9B,IAAI,CAACF,SAAS,EACdpuK,SAAS+hK,MAAM,GAGnB,IAAI,CAACqM,SAAS,CAAG,EACrB,CACJ,C,SAnBA70M,EAAAA,CAAUA,CAACC,OAAO,CAAC,oBAAqB20M,IACxCA,GAAkB10M,OAAO,CAAG,CAAC,gBAAgB,C,+DC0B7CF,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiB,CAClC,UACA,aACA,QACA,YACA,WACA,KACA,kBACA,qBACA,QACA,oBACA,kBACA,iBACA,mBACA,aACA,kBACA,cACA,uBACA,oBACA,kBACA,SACIY,CAAO,CACPpC,CAAU,CACVpK,CAAK,CACL0M,CAAS,CACTxS,CAAQ,CACR8R,CAAE,CACFtC,CAAe,CACf24B,CAAkB,CAClB11B,CAAK,CACLugM,CAAiB,CACjBC,CAAe,CACf7nJ,CAAc,CACd65B,CAAgB,CAChBoiH,CAAU,CACVx1L,CAAe,CACfogK,CAAW,CACXvwK,CAAoB,CACpB6sB,CAAiB,CACjBG,CAAe,EAEf,MAAO,CACHrrB,SCvEG,miJDwEHoM,SAAU,IACVC,MAAO,CACHyhF,KAAM,SACN1rF,QAAS,YACTytM,YAAa,IACbh8L,QAAS,IACTi8L,YAAa,GACjB,EAEA7vM,WAAY,CACR,SACA,SAAUoT,CAAM,EACZA,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAC7DgV,EAAO08L,UAAU,CAAG,GACpB18L,EAAO28L,qBAAqB,CAAG,GAE/B,IAAMnkL,EAAoBR,EAAgBS,SAAS,CAAC,aACpDzY,CAAAA,EAAOghB,WAAW,CAAGhhB,EAAOy6E,IAAI,CAACx5D,WAAW,EAAIzI,EAChDxY,EAAO0Z,SAAS,CAAGA,GAAAA,CAASA,CAE5B,IAAMpB,EAAuB,IAAIC,GAAAA,CAAUA,CAER,IAA/BvY,EAAOy6E,IAAI,CAAChgB,OAAO,CAACn2E,MAAM,EAAU0b,EAAOy6E,IAAI,CAACmiH,aAAa,CAACt4M,MAAM,EAAI,EACxE0b,EAAO68L,YAAY,CAAGrjM,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,iCACzDuU,EAAOy6E,IAAI,CAAChgB,OAAO,CAACn2E,MAAM,CAAG,GAAK0b,EAAOy6E,IAAI,CAACmiH,aAAa,CAACt4M,MAAM,EAAI,GAC7E0b,CAAAA,EAAO68L,YAAY,CAAGrjM,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,iCAAgC,EAGpGuU,EAAO6uD,OAAO,CAAG,SAAU9/D,CAAO,CAAE3C,CAAM,EACtC,IAAIimC,EAAUZ,EAAmBwP,MAAM,CAAClyC,GACxC,GAAI,CAACsjC,EACD,OAAO,KAGX,IAAItuB,EAAOsuB,EAAQhiC,GAAG,CAACjE,UACvB,KAAI2X,EACO,KAGJA,CACX,EAEA/D,EAAO88L,YAAY,CAAG,SAAU/4L,CAAI,QAChC,EAAI,GAAMiD,cAAc,EAAKunE,EAAiBC,iBAAiB,CAACzqE,EAAKwD,UAAU,IAKxEg1L,CAAAA,EAAgBQ,cAAc,CAACh5L,IAAUA,EAAKwD,UAAU,GAAK7J,GAAAA,CAAeA,CAAC0/C,OAAO,CAACmH,SAAS,EAAIg4I,EAAgBS,iBAAiB,CAACj5L,EAAI,CACnJ,EAEA/D,EAAOi9L,SAAS,CAAG,SAAUnmJ,CAAW,CAAE3d,CAAM,CAAEkpB,CAAW,EAGzD,MAAOlqB,CADa9F,MADJZ,EAAmBwP,MAAM,CAACohB,GACsB5wB,EAAmBypB,cAAc,CAACmH,EAAa,IAAQjnD,EAAGrT,OAAO,EAAC,EAC/GtE,IAAI,CAAC,IAAMo0B,EAAkBqhB,iBAAiB,CAAC4d,EAAa3d,IAAS5wC,OAAO,CAAC,IAAMmsD,EAAeqC,WAAW,CAACC,IAAI,GACzI,EAEKx+B,IAILoH,GAAAA,CAAkBA,CACbC,QAAQ,GACRC,IAAI,CAACC,CAAAA,EAAAA,GAAAA,CAAAA,EAAUzH,IACf0H,SAAS,CAAC,GAAahgB,EAAOghB,WAAW,CAAG/N,EAAOgN,KAAK,GAAKC,GAAAA,CAAeA,CAACC,SAAS,EAE3FngB,EAAOJ,GAAG,CAAC,WAAY,KACnB0Y,EAAqBqH,IAAI,EAC7B,GACJ,EACH,CAEDzR,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,EAC1B8S,EAAMkkM,WAAW,CAAG/uL,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,WAAW,CAAC,EAAE,EACpFpV,EAAMk7F,QAAQ,CAAG/lF,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,EACvFpV,EAAMmkM,WAAW,CAAG,IACpBnkM,EAAMokM,QAAQ,CAAG,GACjBpkM,EAAMqkM,wBAAwB,CAAG,GACjCrkM,EAAMskM,mBAAmB,CAAG,GAE5BtkM,EAAMukM,SAAS,CAAGvkM,EAAMyhF,IAAI,CAAC1yE,KAAK,CAClC/O,EAAMwkM,eAAe,CAAG,MACxBxkM,EAAMykM,WAAW,CAAG,GACpBzkM,EAAM0kM,OAAO,CAAG,UAEhB1kM,EAAM2kM,gBAAgB,CAAG,GACzB3kM,EAAM+K,IAAI,CAAG,KAEb,IAAIxP,EAAMuH,EAAUvH,GAAG,EACvByE,CAAAA,EAAM42E,QAAQ,CAAGr7E,EAAIxN,OAAO,CAAC,UAAY,GAErCiS,EAAMyhF,IAAI,CAACmjH,kBAAkB,EAC7BziM,EAAgBM,eAAe,CAACzC,EAAMjK,OAAO,EAAEtL,IAAI,CAAC,SAAU0M,CAAQ,EAC9DA,GACA6I,EAAMqkM,wBAAwB,CAAG,GACjCrkM,EAAMskM,mBAAmB,CAAG,GAC5BtkM,EAAMyhF,IAAI,CAACojH,yBAAyB,CAAG,KAGF,IAAjC7kM,EAAMyhF,IAAI,CAACmjH,kBAAkB,GACzB,mBAAOnjH,IAAI,CAACv3D,QAAQ,EAAuB3uB,EAAIxN,OAAO,CAAC,YAAc,IAAQiS,SAAAA,EAAMyhF,IAAI,CAACv3D,QAAQ,EAAe3uB,EAAIxN,OAAO,CAAC,QAAU,GAErIiS,EAAMqkM,wBAAwB,CAAG,IAEjCrkM,EAAMqkM,wBAAwB,CAAG,GACjCS,MAKoC,IAAxC9kM,EAAMyhF,IAAI,CAACojH,yBAAyB,GAChC,mBAAOpjH,IAAI,CAACv3D,QAAQ,EAAuB3uB,EAAIxN,OAAO,CAAC,YAAc,IAAQiS,SAAAA,EAAMyhF,IAAI,CAACv3D,QAAQ,EAAe3uB,EAAIxN,OAAO,CAAC,QAAU,GAErIiS,EAAMskM,mBAAmB,CAAG,GAE5BtkM,EAAMskM,mBAAmB,CAAG,IAI5C,GAGJ,IAAIQ,EAAiB,WACb9kM,EAAMwjM,WAAW,EAAIxjM,EAAMyhF,IAAI,CAACv3D,QAAQ,GAAKxlB,GAAAA,CAAeA,CAACC,KAAK,CAACC,iBAAiB,GACpF5E,EAAM+K,IAAI,CAAG/K,EAAM61D,OAAO,CAAC71D,EAAMjK,OAAO,CAAEiK,EAAMwjM,WAAW,EACvDxjM,EAAM+K,IAAI,GACV/K,EAAM+kM,aAAa,CAAGpN,EAAWa,eAAe,CAACx4L,EAAM+K,IAAI,CAACwF,QAAQ,EACpEvQ,EAAM2kM,gBAAgB,CAAG3kM,EAAM8jM,YAAY,CAAC9jM,EAAM+K,IAAI,GAGlE,EAGI45H,EAAOnkI,EAAWoG,GAAG,CAAC,uBAAwB,SAAUtc,CAAK,CAAEwuD,CAAI,CAAEgwD,CAAO,EAC5E,IAAIk8F,EAAkBlsJ,EAClBmsJ,EAAqBn8F,EAErBhwD,EAAK/qD,OAAO,CAAC,KAAO,IACpBi3M,CAAAA,EAAkBlsJ,EAAK9vB,SAAS,CAAC,EAAG8vB,EAAK/qD,OAAO,CAAC,KAAI,EAErD+6G,EAAQ/6G,OAAO,CAAC,KAAO,IACvBk3M,CAAAA,EAAqBn8F,EAAQ9/E,SAAS,CAAC,EAAG8/E,EAAQ/6G,OAAO,CAAC,KAAI,EAI9Di3M,GAAmBC,IACnBjlM,EAAM4U,KAAK,CAAC,2BACZ+vH,IAER,EAEA3kI,CAAAA,EAAMklM,WAAW,CAAG,WAChB,GAAIx0M,OAAOpG,KAAK,EAAIoG,UAAAA,OAAOpG,KAAK,CAAC8gB,IAAI,CAAc,CAC/C,IAAI65C,EAAOv0D,OAAOpG,KAAK,CAACS,OAAO,CAAG2F,OAAOpG,KAAK,CAACS,OAAO,CAAG2F,OAAOpG,KAAK,CAACopC,KAAK,CAC3E,GAAIuxB,KAAAA,GAAeA,KAAAA,EACf,MAER,CACAjlD,EAAMmlM,SAAS,EACnB,EAMAnlM,EAAMmlM,SAAS,CAAG,SAAU9xK,CAAC,EACzBrzB,EAAM0jM,UAAU,CAAG,GACnB1jM,EAAM2jM,qBAAqB,CAAG,GAE1B3jM,EAAMokM,QAAQ,EACdpkM,EAAMokM,QAAQ,CAAG,GACjBpkM,EAAMukM,SAAS,CAAGvkM,EAAMyhF,IAAI,CAAC1yE,KAAK,CAClC/O,EAAMk7F,QAAQ,CAACtvG,MAAM,CAAC,aAEtBoU,EAAMokM,QAAQ,CAAG,GACjB9zM,EAAS,WACL0P,EAAMk7F,QAAQ,CAAC,EAAE,CAACxwG,KAAK,GACvBsV,EAAMk7F,QAAQ,CAAC,EAAE,CAACq8E,MAAM,EAC5B,GAER,EAKAv3K,EAAMolM,SAAS,CAAG,WACd,GAAIplM,EAAMyhF,IAAI,CAAC1yE,KAAK,GAAK/O,EAAMukM,SAAS,EAAIvkM,KAAAA,EAAMukM,SAAS,EAU3D,OANAvkM,EAAMyhF,IAAI,CAAC1yE,KAAK,CAAG/O,EAAMukM,SAAS,CAClCvkM,EAAMokM,QAAQ,CAAG,GACjBpkM,EAAM0jM,UAAU,CAAG,GACnB1jM,EAAM2jM,qBAAqB,CAAG3xM,EAAqBS,SAAS,CAAC,+BAAgC,CAAEwC,MAAO+K,EAAMukM,SAAS,GAG7GvkM,EAAMyhF,IAAI,CAACv3D,QAAQ,EACvB,IAAK,WAEDlqB,EAAMqlM,gBAAgB,CAAC,WACnBrlM,EAAMslM,kBAAkB,CAAC7sK,EAAmBM,iBAAiB,CACjE,GACA,KACJ,KAAK,mBAED/4B,EAAMqlM,gBAAgB,CAAC,WACnBrlM,EAAMslM,kBAAkB,CAAC7sK,EAAmBonB,qBAAqB,CACrE,GACA,KACJ,KAAK,eAED7/C,EAAMqlM,gBAAgB,CAAC,WACnBrlM,EAAMslM,kBAAkB,CAAC7sK,EAAmBM,iBAAiB,CACjE,GACA,KACJ,KAAK,OAED/4B,EAAMqlM,gBAAgB,CAAC,WACnBrlM,EAAMslM,kBAAkB,CAAC7sK,EAAmBiC,iBAAiB,CACjE,EAER,CAGAtkC,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjCrF,EACKc,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,gCAAiC,CAClEkH,QAASzJ,EAAMjK,OAAO,CACtBwvM,SAAUvlM,EAAMyhF,IAAI,CAAC1yE,KAAK,GAE7BtkB,IAAI,CAAC,SAAU0M,CAAQ,EAChBA,SAAAA,EAAShI,IAAI,CACbm0M,EAAkBF,cAAc,GAEhCrgM,EAAM8H,MAAM,CAAC9H,EAAMouH,gBAAgB,CAACC,KAAK,CAAE,CACvCn8H,MAAOuL,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,uCACjDmrC,QAASp9B,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,mDACnDorC,aAAcr9B,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,aAC5D,EAER,GACR,EAKAuN,EAAMwlM,uBAAuB,CAAG,WAC5B,IAAMrnK,EAAW1F,EAAmBukB,0BAA0B,CAACh9C,EAAMjK,OAAO,EAC5E,GAAIooC,OAAAA,EAAmB,CACnB,IAAIsnK,EAAsB3oJ,KAAKi1E,SAAS,CAAC2zE,EAAiBvnK,EAAUn+B,EAAMyhF,IAAI,CAAC1yE,KAAK,GAEpF0pB,EAAmB6mB,WAAW,GAAG70D,IAAI,CAAC,SAAU0M,CAAQ,EACpD,IAAI2kD,EAGAA,EADA3kD,EAAShI,IAAI,CACHgI,EAAShI,IAAI,CAAGgI,EAAShI,IAAI,CAAG,qBAEhCgI,GAAsB,qBAGpCsuM,EAAsB/oJ,GAAAA,CAAqBA,CAACC,GAAG,CAACogG,OAAO,CAAC0oD,EAAqB3pJ,GAE7E,GAAI,CACAl5C,EAAQo6I,YAAY,CAAC33I,OAAO,CAACy2C,EAAS2pJ,EAC1C,CAAE,MAAOpyK,EAAG,CACR,MAAO,EACX,CACJ,EACJ,CACJ,EAMArzB,EAAMslM,kBAAkB,CAAG,SAAUx0I,CAAa,EAE1CA,GAAiBA,EAAcrnD,OAAO,EAAIzJ,EAAMjK,OAAO,EACvD2vM,EAAiB50I,EAAc3hE,IAAI,CAAE6Q,EAAMyhF,IAAI,CAAC1yE,KAAK,EACrD+hD,EAAcpyB,IAAI,IAElB1+B,EAAMwlM,uBAAuB,EAErC,EAEA,IAAIE,EAAmB,SAAUvnK,CAAQ,CAAElpC,CAAK,EAC5C,GAAIkpC,EAASjU,QAAQ,GAAKxlB,GAAAA,CAAeA,CAACC,KAAK,CAAC01B,IAAI,CAAE,CAClD,IAAIsrK,EAAcpjC,EAAYK,qBAAqB,CAACzkI,EAChC,QAAhBwnK,GACAA,CAAAA,EAAY52L,KAAK,CAAG9Z,CAAI,CAEhC,CAGA,OAFAkpC,EAASpvB,KAAK,CAAG9Z,EACjBkpC,EAASrmB,YAAY,CAAG,IAAI1W,KACrB+8B,CACX,CAMAn+B,CAAAA,EAAMqlM,gBAAgB,CAAG,SAAU51M,CAAQ,EAElCgpC,EAAmBgD,UAAU,CAQ9BhsC,IAPAgpC,EACKxH,IAAI,CAAC,CACFxnB,QAAS,KACTivB,MAAO,CAAExO,SAAUlqB,EAAMyhF,IAAI,CAACv3D,QAAQ,CAC1C,GACCz/B,IAAI,CAACgF,EAIlB,CACJ,CACJ,CACJ,EACH,E,SE7XDnB,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,kBAAmB,CACpC,OACA,aACA,WACA,QACA,kBACA,oBACA,SAAUnC,CAAI,CAAEW,CAAU,CAAEoe,CAAQ,CAAExoB,CAAK,CAAE0J,CAAe,CAAE+e,CAAiB,EAC3E,MAAO,CACHlrB,SCjBG,iWDkBHoM,SAAU,IACVC,MAAO,CACHyhF,KAAM,QACV,EAEA7tF,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,EAEpE,CAEDkjB,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAMmkM,WAAW,CAAG,GACxB,CACJ,CACJ,EACH,EEjCD71M,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,uBAAwB,CACvC,QACA,uBACA,SAAU3sB,CAAK,CAAEiM,CAAoB,EACjC,IAAM0gB,EAAU,CAAC,EAOjB,OALAA,EAAQ6iL,WAAW,CAAG,SAAU7vM,CAAO,EAEnC,OADAK,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAC1B4G,EAAqBjD,eAAe,CAACrJ,EAChD,EAEOgtB,CACX,EACH,E,SCdDz0B,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,gBAAiB,CAChC,QACA,kBACA,KACA,SAAU3sB,CAAK,CAAE0J,CAAe,CAAEsC,CAAE,EAiBhC,MAAO,CACHyjM,oBAAqB,SAAUC,CAAa,MAjB1BvqM,EAEd6tB,EAEAz6B,EAcA,OAlBc4M,EAkBMuE,EAAgByC,YAAY,CAAG,oBAjBvDnM,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAC7B2tB,EAAchnB,EAAGuI,KAAK,GAU1Bhc,CARIA,EAAU06B,EADMnyB,IAAI,CAACqE,EAemDuqM,EAfxC,CAAEx8K,QAASF,EAAYz6B,OAAO,GAC5ClE,IAAI,CACtB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOA,CACX,IAEIC,YAAY,CAAGJ,EAChBz6B,CAMP,CACJ,CACJ,EACH,E,uFCsBK,SAAU,GAAa,CAAgB,CAAE,CAAyC,MCA/D,EDCvB,OAD6C,mBAAyC,ECA/D,EDCV,WAAM,eAAM,EAAU,EAAU,ECAtC,SAAQ,SAAC,CAAM,CAAE,CAAU,EAChC,IAAI,EAAW,GACX,EAAsB,KACtB,EAA6C,KAC7C,EAAa,GAEX,EAAc,WAEQ,GAD1B,WAAoB,WAAW,GAAG,EACb,KACjB,EAAU,CACZ,EAAW,GAAM,IACX,EAAQ,EAAW,EACb,KAAK,EACN,IAAI,CAAC,EAAM,CAAC,GAEX,EAAW,QAAQ,EAAE,EAG/B,EAAkB,WACtB,EAAqB,KAAK,GACZ,EAAW,QAAQ,EAAE,EACnC,EAEK,SAAS,CACd,QACE,EACA,SAAC,CAAK,EACJ,EAAW,GAAK,EACJ,EACP,GACH,UAAU,EAAiB,IAAQ,SAAS,CAC1C,EAAsB,QAAyB,EAAY,EAAa,GACzE,EAGL,WACE,EAAa,GAAK,GACH,IAAsB,EAAmB,QAAW,EAAW,QAAQ,EAAE,GAG7F,EDxC2C,C,wCEmE1C,SAAU,GAAW,CAAwB,CAAE,CAAyB,EAC5E,IAAM,EAAe,SAAW,GAAqB,EAAsB,WAAQ,QAAmB,EAChG,EAAO,SAAC,CAA6B,EAAK,SAAW,KAAK,CAAC,IAAe,EAAC,OAC1E,IAAI,GAAU,CAAC,EAAU,SAAG,CAAU,EAAK,SAAU,QAAQ,CAAC,EAAa,EAAG,EAAW,EAAC,EAAO,C,gECvHnG,IAAMo3M,GAAaC,GAAAA,CAAiBA,CAAC9rK,UAAU,CAAwD,CAC1G+rK,YAAcC,GAA4BznC,QAAQ1vK,OAAO,CAAiB,CAAEk2D,KAAMihJ,EAAcpiL,MAAM,CAACnK,QAAQ,GAAIlc,QAASyoM,EAAczoM,OAAQ,GAClJ0oM,KAAMC,GAAAA,CAAWA,CACjBlU,eAAiB/6L,GAAuBA,EAASkvM,IAAI,GACrD9qM,IAAMzE,GAAWwvM,GAAAA,CAASA,CAACT,mBAAmB,CAAC/uM,EAAOf,OAAO,CACjE,GCEawwM,GAAqB,CAACxwM,EAAiBywM,EAAkCC,KAClF,IAAMC,EAAmF,CACrFzxM,MAAO0xM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,+BAC/ByC,QAAS,CACLqqG,KAAM,EAAE,CACRmR,MAAO,CACH,CACIv7G,MAAOwxM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,gCAC/B2C,UAAWuxM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,gCACnC4C,YAAaC,GAAAA,CAAWA,CAACC,QAAQ,CACjCC,SAAU,sBACVC,SAAU,IAAM,GAChB3K,OAAQ,CAAC+J,EAAQC,KACbA,EAASzK,KAAK,CAACo8M,EACnB,CACJ,EACA,CACItxM,MAAOwxM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,gCAC/B2C,UAAWuxM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,gCACnC4C,YAAaC,GAAAA,CAAWA,CAACI,SAAS,CAClCF,SAAU,sBACVC,SAAWwK,GACAA,IAAAA,EAAM2mM,MAAM,CAAC5uJ,IAAI,GAAG1sD,MAAM,EAAU2U,EAAM2mM,MAAM,CAACt7M,MAAM,CAAGu7M,GAAAA,CACrE,CACA/7M,OAAQ,CAAC+J,EAAQC,KACb,IACMgC,EAAmC,CAAEgwM,OAAQhyM,EAASmL,KAAK,CAAC2mM,MAAO,EAGzErhL,EAAAA,CAAOA,CAACC,UAAU,CAAC,oBAAqB,QAAS,qBAAsB1wB,EAASmL,KAAK,CAAC2mM,MAAM,CAACt7M,MAAM,EAEnGy6M,GAAWjvM,EAAQ,CAAEf,QAASA,CAAQ,GACjC+wB,IAAI,CACDigL,GAAU,KACV5tJ,CAAAA,EAAAA,GAAAA,CAAAA,EAAYua,GAAQszI,CAAAA,EAAAA,GAAAA,CAAAA,EAAM,KAAKlgL,IAAI,CAACuyB,CAAAA,EAAAA,GAAAA,CAAAA,EAAU,IAAM4tJ,GAAWvzI,MAC/D3sC,CAAAA,EAAAA,GAAAA,CAAAA,EAAUjyB,EAAS8hC,iBAAiB,GAEvC5P,SAAS,CAAC,CACP8xB,KAAM,IAAMhkD,EAASmpC,WAAW,CAAC,CAAEna,OAAQojL,GAAAA,CAAgBA,CAACC,QAAS,GACrE1+K,MAAO,KACH3zB,EAASmpC,WAAW,CAAC,CAAEna,OAAQojL,GAAAA,CAAgBA,CAACvxC,KAAM,GACtD7gK,EAASg5J,KAAK,CAACs5C,QAAQ,EAC3B,CACJ,GACJtyM,EAASg5J,KAAK,CAACh1G,IAAI,EACvB,CACJ,EAER,EACAxlD,UAAW,IAAM,gCAAoC7I,IAAI,CAAEsK,GAAWA,EAAOsyM,YAAY,CAC7F,EAEMC,EAAmF,CACrFryM,MAAO0xM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,+BAC/ByC,QAAS,CACLqqG,KAAM,EAAE,CACRmR,MAAO,CACH,CACIv7G,MAAOwxM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,8BAC/B2C,UAAWuxM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,oCACnC4C,YAAaC,GAAAA,CAAWA,CAACI,SAAS,CAClCF,SAAU,sBACVC,SAAWwK,GACAA,EAAM6jB,MAAM,GAAKojL,GAAAA,CAAgBA,CAACC,QAC7C,CACAr8M,OAAQ,CAAC+J,EAAQC,KACbA,EAASzK,KAAK,CAACo8M,EACnB,CACJ,EAER,EACAnzM,UAAW,IAAM,gCAA2C7I,IAAI,CAAEsK,GAAWA,EAAOwyM,mBAAmB,CAC3G,EAEA,MAAOC,CAAAA,EAAAA,GAAAA,CAAAA,EAAoC,CACvCjzM,KAAMC,GAAAA,CAAUA,CAACC,KAAK,CACtBG,cAAe,CAACC,EAAQC,KACpBA,EAASzK,KAAK,CAACo8M,EACnB,EACA/xM,aAAc,CACV8xM,aAAcA,EACdI,OAAQ,GACR9iL,OAAQ,IACZ,EACAgqI,MAAO,CAAC44C,EAASY,EACrB,EACJ,EC7FaG,GAAmBzB,GAAAA,CAAiBA,CAAC9rK,UAAU,CAA8D,CACtH+rK,YAAcC,GAA4BznC,QAAQ1vK,OAAO,CAAiB,CAAEk2D,KAAMihJ,EAAcpiL,MAAM,CAACnK,QAAQ,GAAIlc,QAASyoM,EAAczoM,OAAQ,GAClJ0oM,KAAMC,GAAAA,CAAWA,CACjBlU,eAAiB/6L,GAAuBA,EAASkvM,IAAI,GACrD9qM,IAAMzE,GAAWwvM,GAAAA,CAASA,CAACoB,yBAAyB,CAAC5wM,EAAOf,OAAO,CACvE,GCEa4xM,GAA2B,CACpC5xM,EACAywM,EACAC,KAEA,IAAMC,EAA+F,CACjGzxM,MAAO0xM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,+BAC/ByC,QAAS,CACLqqG,KAAM,EAAE,CACRmR,MAAO,CACH,CACIv7G,MAAOwxM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,gCAC/B2C,UAAWuxM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,gCACnC4C,YAAaC,GAAAA,CAAWA,CAACC,QAAQ,CACjCC,SAAU,sBACVC,SAAU,IAAM,GAChB3K,OAAQ,CAAC+J,EAAQC,KACbA,EAASzK,KAAK,CAACo8M,EACnB,CACJ,EACA,CACItxM,MAAOwxM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,gCAC/B2C,UAAWuxM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,gCACnC4C,YAAaC,GAAAA,CAAWA,CAACI,SAAS,CAClCF,SAAU,sBACVC,SAAWwK,IACP,IAAM2nM,EAAc3nM,IAAAA,EAAMqV,IAAI,CAAC0iC,IAAI,GAAG1sD,MAAM,CACtCu8M,EAAe5nM,IAAAA,EAAM63C,KAAK,CAACE,IAAI,GAAG1sD,MAAM,CACxCw8M,EAAgB7nM,IAAAA,EAAM2mM,MAAM,CAAC5uJ,IAAI,GAAG1sD,MAAM,CAC1Cy8M,EAAoB9nM,EAAM2mM,MAAM,CAACt7M,MAAM,CAAGu7M,GAAAA,CAAiBA,CAEjE,OAAOe,GAAeC,GAAgB,CAAC5nM,EAAM+nM,YAAY,EAAIF,GAAiBC,CAClF,EACAj9M,OAAQ,CAAC+J,EAAQC,KACb,IACMgC,EAAyC,CAC3C6qB,KAAM7sB,EAASmL,KAAK,CAACqV,IAAI,CACzBuhG,MAAO/hH,EAASmL,KAAK,CAAC63C,KAAK,CAC3BgvJ,OAAQhyM,EAASmL,KAAK,CAAC2mM,MAC3B,EAGArhL,EAAAA,CAAOA,CAACC,UAAU,CAAC,oBAAqB,QAAS,kBAAmB1wB,EAASmL,KAAK,CAAC2mM,MAAM,CAACt7M,MAAM,EAEhGm8M,GAAiB3wM,EAAQ,CAAEf,QAASA,CAAQ,GACvC+wB,IAAI,CACDigL,GAAU,KACV5tJ,CAAAA,EAAAA,GAAAA,CAAAA,EAAYua,GAAQszI,CAAAA,EAAAA,GAAAA,CAAAA,EAAM,KAAKlgL,IAAI,CAACuyB,CAAAA,EAAAA,GAAAA,CAAAA,EAAU,IAAM4tJ,GAAWvzI,MAC/D3sC,CAAAA,EAAAA,GAAAA,CAAAA,EAAUjyB,EAAS8hC,iBAAiB,GAEvC5P,SAAS,CAAC,CACP8xB,KAAM,KACFhkD,EAASmpC,WAAW,CAAC,CAAEna,OAAQojL,GAAAA,CAAgBA,CAACC,QAAS,EAC7D,EACA1+K,MAAO,KACH3zB,EAASmpC,WAAW,CAAC,CAAEna,OAAQojL,GAAAA,CAAgBA,CAACvxC,KAAM,GACtD7gK,EAASg5J,KAAK,CAACs5C,QAAQ,EAC3B,CACJ,GACJtyM,EAASg5J,KAAK,CAACh1G,IAAI,EACvB,CACJ,EAER,EACAxlD,UAAW,IAAM,gCAA0C7I,IAAI,CAAEsK,GAAWA,EAAOkzM,kBAAkB,CACzG,EAEMX,EAA+F,CACjGryM,MAAO0xM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,+BAC/ByC,QAAS,CACLqqG,KAAM,EAAE,CACRmR,MAAO,CACH,CACIv7G,MAAOwxM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,8BAC/B2C,UAAWuxM,GAAAA,CAAaA,CAACl0M,SAAS,CAAC,oCACnC4C,YAAaC,GAAAA,CAAWA,CAACI,SAAS,CAClCF,SAAU,sBACVC,SAAWwK,GACAA,EAAM6jB,MAAM,GAAKojL,GAAAA,CAAgBA,CAACC,QAC7C,CACAr8M,OAAQ,CAAC+J,EAAQC,KACbA,EAASzK,KAAK,CAACo8M,EACnB,CACJ,EAER,EACAnzM,UAAW,IAAM,gCAA2C7I,IAAI,CAAEsK,GAAWA,EAAOwyM,mBAAmB,CAC3G,EAEA,MAAOC,CAAAA,EAAAA,GAAAA,CAAAA,EAA0C,CAC7CjzM,KAAMC,GAAAA,CAAUA,CAACC,KAAK,CACtBG,cAAe,CAACC,EAAQC,KACpBA,EAASzK,KAAK,CAACo8M,EACnB,EACA/xM,aAAc,CACV8xM,aAAcA,EACdlxL,KAAM,GACNwiC,MAAO,GACP8uJ,OAAQ,GACR9iL,OAAQ,KACRkkL,aAAc,EAClB,EACAl6C,MAAO,CAAC44C,EAASY,EACrB,EACJ,ECpGAh5M,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,sBAAuB,CACxC,KACA,OACA,aACA,OACA,SAAUI,CAAE,CAAEvC,CAAI,CAAEW,CAAU,CAAEunC,CAAI,EAChC,MAAO,CACHp0C,SCtBG,wZDuBHoM,SAAU,IACVC,MAAO,CACHyhF,KAAM,SACN1rF,QAAS,UACb,EACAnC,WAAY,CACR,SACA,WACA,SACA,UACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,CAAEnI,CAAO,EACvCuG,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAE7DgV,EAAOrR,YAAY,CAAG,IAClB,IAAMmxK,EAAU/+H,EAAKE,MAAM,GAGrBgsI,EAASjtK,EAAOy6E,IAAI,CAAChgB,OAAO,CAAC,EAAE,CAC/BymI,EAAa,CAAC,EAAEj0B,EAAOiI,QAAQ,CAAC,CAAC,EAAEjI,EAAOkI,OAAO,CAAC,CAAC,CACnDgsB,EAAUnhM,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,sCAAuC,CACzF6iB,KAAM4yL,EACNr+J,KAAMppC,EAAQ,cAAcuG,EAAOy6E,IAAI,CAAC2mH,SAAS,CAAE,YACnDrzL,KAAMtU,EAAQ,cAAcuG,EAAOy6E,IAAI,CAAC2mH,SAAS,CAAE,WACvD,GACM5B,EAAe,CACjBvxM,MAAO+R,EAAOy6E,IAAI,CAAC1yE,KAAK,CACxBo5L,QAASA,EACT7tM,SAAU0M,EAAOy6E,IAAI,CAACv3D,QAAQ,CAC9B1S,QAASxQ,EAAOy6E,IAAI,CAAChwE,OAAO,EAG5BolB,EAAUprC,SAASijH,aAAa,CAKpC,GAJI73E,IAAYprC,SAASg1G,IAAI,EACzB5pE,CAAAA,EAAUse,EAAO5d,aAAa,EAlBfuvI,OAAAA,EAqBH,CACZy/B,GAAmBv/L,EAAOjR,OAAO,CAAEywM,EAAc3vK,GACjD,MACJ,CAEA8wK,GAAyB3gM,EAAOjR,OAAO,CAAEywM,EAAc3vK,EAC3D,CACJ,EACH,CAET,EACH,E,0CE1DDvoC,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,kBAAmB,CACpC,OACA,uBACA,kBACA,QACA,gBACA,UACA,SAAUnC,CAAI,CAAE7N,CAAoB,CAAE8N,CAAe,CAAE1J,CAAK,CAAEsK,CAAa,CAAE5Y,CAAO,EAChF,MAAO,CACH6L,SCrBG,+3HDsBHoM,SAAU,IACVC,MAAO,CACHjK,QAAS,IACT64H,aAAc,IACdxjH,KAAM,IACNq4L,YAAa,GACjB,EACA7vM,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAE9B,IAAM+3I,EAAY3uJ,EAAqBS,SAAS,CAAC,6CACjDuU,CAAAA,EAAOqhM,YAAY,CAAGr2M,EAAqBS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAMu1I,CAAU,GAC9G35I,EAAOohH,aAAa,CAAGA,GAAAA,CACvBphH,CAAAA,EAAOhV,oBAAoB,CAAGA,EAC9BgV,EAAOshM,qBAAqB,CAAGthM,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,8CACrEuU,EAAOuhM,oBAAoB,CAAG,GAC9BvhM,EAAOwhM,YAAY,CAAG,CAAC,cAAc,CACrCxhM,EAAOyhM,WAAW,CAAG,CACjB1jH,OAAQ,KACRD,MAAO,KACPiD,QAAS,IACb,EAEA/gF,EAAO+9E,MAAM,CAAG,CACZv6F,MAAO,KACPo3F,YAAa56E,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,iDACnD2C,UAAW4R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,iDACjDihF,IAAK,EACL8gF,gBAAiBxtJ,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,kDACvD/H,MAAO,GACP0gB,KAAM,QACV,EACApE,EAAO6iC,IAAI,CAAG,CACVi7C,MAAO,CACHt6F,MAAO,KACPo3F,YAAa56E,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,gDACnD2C,UAAW4R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,gDACjDihF,IAAK,EACL8gF,gBAAiBxtJ,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,iDACvD/H,MAAO,GACP0gB,KAAM,OACV,EACA28E,QAAS,CACLv9F,MAAO,KACPo3F,YAAa56E,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,kDACnD2C,UAAW4R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,kDACjDihF,IAAK,EACL8gF,gBAAiBxtJ,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,mDACvD/H,MAAO,GACP0gB,KAAM,SACV,CACJ,EAEApE,EAAO6M,QAAQ,CAAG,CACd60L,UAAW,GACXt9L,KAAM,GACNg5L,SAAU,GACVuE,oBAAqB,GACrBC,qBAAsB,GACtBC,mBAAoB72M,EAAqBS,SAAS,CAAC,yCACnDq2M,UAAW,GACXC,QAAS,GACTC,YAAa,GACbC,WAAY,GACZC,aAAc,GACdp1L,OAAQ,CACJgxE,MAAOjlF,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,gCAC9Eo+E,OAAQllF,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,gCACnF,CACJ,EACAK,EAAOmiM,wBAAwB,CAAG,GAClCniM,EAAOoiM,YAAY,CAAG,GAClBpiM,EAAOjR,OAAO,EAAIiR,CAAuB,IAAvBA,EAAOy8L,WAAW,GACpCrtM,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjCrF,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,qCAAuCyE,EAAOjR,OAAO,EAAEtL,IAAI,CAAC,SAAU0M,CAAQ,EACnH6P,EAAOoiM,YAAY,CAAGjyM,EAAShI,IAAI,GAGnB,iBAAhB6X,EAAOoE,IAAI,EACXhV,EACKiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,4CAA8CyE,EAAOjR,OAAO,EAC/FtL,IAAI,CAAC,IACF,IAAM4+M,EAAuBlyM,EAAShI,IAAI,CAC1C6X,EAAOuhM,oBAAoB,CAAGc,EAAqBpgK,IAAI,CAAC,GAAeqgK,EAAUC,QAAQ,EACzF,IAAMC,EAAwBH,EAAqBpgK,IAAI,CAAC,GAAeqgK,mBAAAA,EAAUG,iBAAiB,EAAyBH,EAAUC,QAAQ,EACvIG,EAAsBL,EAAqBpgK,IAAI,CAAC,GAAeqgK,oBAAAA,EAAUG,iBAAiB,EAA0BH,EAAUC,QAAQ,CAExI,EAACC,GAAyBE,EAC1B1iM,EAAOshM,qBAAqB,CAAGthM,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,oDAErEuU,EAAOshM,qBAAqB,CAAGthM,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,qDAE7E,GACCnD,KAAK,CAAC,KACH0X,EAAOuhM,oBAAoB,CAAG,EAClC,IAKZvhM,EAAO2iM,uBAAuB,CAAG,WAC7B,IAAM7kH,EAAQ99E,EAAO4nH,YAAY,CAAC10G,KAAK,CAAC,CAAEsgB,IAAK,eAAgB,EAAE,CAAC,EAAE,CAC9DuqD,EAAS/9E,EAAO4nH,YAAY,CAAC10G,KAAK,CAAC,CAAEsgB,IAAK,WAAY,EAAE,CAAC,EAAE,CAE3DmuK,EAAsB3hM,EAAO4nH,YAAY,CAAC10G,KAAK,CAAC,CAAEsgB,IAAK,qBAAsB,EAAE,CAAC,EAAE,CAClFouK,EAAuB5hM,EAAO4nH,YAAY,CAAC10G,KAAK,CAAC,CAAEsgB,IAAK,sBAAuB,EAAE,CAAC,EAAE,CAI1F,GAHAxzB,EAAO6M,QAAQ,CAAC80L,mBAAmB,CAAGA,KAAwB16M,IAAxB06M,GAAqCA,SAAAA,EAAoBluK,KAAK,CACpGzzB,EAAO6M,QAAQ,CAAC+0L,oBAAoB,CAAGA,KAAyB36M,IAAzB26M,GAAsCA,SAAAA,EAAqBnuK,KAAK,CAEnGsqD,GAAUA,EAAOtqD,KAAK,CAAE,CACxB,IAAMu2I,EAASrF,WAAW5mF,EAAOtqD,KAAK,CACtCzzB,CAAAA,EAAO+9E,MAAM,CAACv6F,KAAK,CAAGwmL,GAAkB,KACxChqK,EAAO6M,QAAQ,CAACi1L,SAAS,CAAG,EAChC,CAEIhkH,GAASA,EAAMrqD,KAAK,GACpBzzB,EAAO4iM,gBAAgB,CAAC9kH,EAAMrqD,KAAK,EACnCzzB,EAAO6M,QAAQ,CAACk1L,OAAO,CAAG,IAG9B/hM,EAAOyhM,WAAW,CAAC3jH,KAAK,CAAG99E,EAAO6iC,IAAI,CAACi7C,KAAK,CAACt6F,KAAK,CAClDwc,EAAOyhM,WAAW,CAAC1gH,OAAO,CAAG/gF,EAAO6iC,IAAI,CAACk+C,OAAO,CAACv9F,KAAK,CACtDwc,EAAOyhM,WAAW,CAAC1jH,MAAM,CAAG/9E,EAAO+9E,MAAM,CAACv6F,KAAK,CAC/Cwc,EAAO6iM,sBAAsB,EACjC,EAEA7iM,EAAO6iM,sBAAsB,CAAG,WAC5B7iM,EAAO6M,QAAQ,CAACo1L,UAAU,CAAGj3M,EAAqBS,SAAS,CAAC,uCAAwC,CAAE2B,MAAO4S,EAAOyhM,WAAW,CAAC3jH,KAAK,EAAI,CAAE,GAC3I99E,EAAO6M,QAAQ,CAACq1L,YAAY,CAAGl3M,EAAqBS,SAAS,CAAC,yCAA0C,CAAE2B,MAAO4S,EAAOyhM,WAAW,CAAC1gH,OAAO,EAAI,CAAE,GACjJ/gF,EAAO6M,QAAQ,CAACm1L,WAAW,CAAGh3M,EAAqBS,SAAS,CAAC,wCAAyC,CAAE2B,MAAO4S,EAAOyhM,WAAW,CAAC1jH,MAAM,EAAI,CAAE,EAClJ,EAEA/9E,EAAO8iM,UAAU,CAAG,WAChB1zM,EAAMc,IAAI,CAAC4I,EAAgByC,YAAY,CAAG,6BAA8B,CACpEkH,QAASzC,EAAOjR,OAAO,CACvBikF,MAAOhzE,EAAO6iC,IAAI,CAACi7C,KAAK,CAACt6F,KAAK,CAC9B0vF,QAASlzE,EAAO6iC,IAAI,CAACk+C,OAAO,CAACv9F,KAAK,CAClCgyF,OAAQx1E,EAAO+9E,MAAM,CAACv6F,KAAK,EAEnC,EAEAwc,EAAO4iM,gBAAgB,CAAG,SAAUG,CAAS,EACzC,IAAMC,EAAUliN,EAAQmiN,UAAU,CAACF,GAC/BhiH,EAAUiiH,EAAQjiH,OAAO,EAAI,CAE7BiiH,CAAAA,EAAQllH,KAAK,EAAIklH,EAAQjiH,OAAO,EAChC/gF,EAAO6iC,IAAI,CAACi7C,KAAK,CAACt6F,KAAK,CAAGw/M,EAAQllH,KAAK,CACvC99E,EAAO6iC,IAAI,CAACk+C,OAAO,CAACv9F,KAAK,CAAGu9F,IAE5B/gF,EAAO6iC,IAAI,CAACi7C,KAAK,CAACt6F,KAAK,CAAG,KAC1Bwc,EAAO6iC,IAAI,CAACk+C,OAAO,CAACv9F,KAAK,CAAG,KAEpC,EAOAwc,EAAOkjM,cAAc,CAAG,SAAU1/M,CAAK,CAAE2/M,CAAiB,EACtDnjM,EAAO6M,QAAQ,CAACuwL,QAAQ,CAAG55M,EAC3Bwc,EAAO6iC,IAAI,CAACi7C,KAAK,CAACp6F,KAAK,CAAG,GAC1Bsc,EAAO6iC,IAAI,CAACk+C,OAAO,CAACr9F,KAAK,CAAG,GAC5Bsc,EAAO+9E,MAAM,CAACr6F,KAAK,CAAG,GACtBsc,EAAOmiM,wBAAwB,CAAG,GAE9B3+M,CAAU,IAAVA,GACAwc,EAAO6iC,IAAI,CAACi7C,KAAK,CAACt6F,KAAK,CAAGwc,EAAOyhM,WAAW,CAAC3jH,KAAK,CAClD99E,EAAO6iC,IAAI,CAACk+C,OAAO,CAACv9F,KAAK,CAAGwc,EAAOyhM,WAAW,CAAC1gH,OAAO,CACtD/gF,EAAO+9E,MAAM,CAACv6F,KAAK,CAAGwc,EAAOyhM,WAAW,CAAC1jH,MAAM,CAC/C/9E,EAAO6iM,sBAAsB,GACzBM,GACAA,CAAAA,EAAkBz/M,KAAK,CAAG,EAAG,GAGjCsc,EAAOmiM,wBAAwB,CAAGniM,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,2CAEhF,EAEAuU,EAAOojM,cAAc,CAAG,SAAU9/M,CAAK,EACb,KAAlBA,EAAMS,OAAO,EACbic,EAAOlT,SAAS,GAEpBxJ,EAAMuoH,wBAAwB,EAClC,EACA7rG,EAAOlT,SAAS,CAAG,WAEfkT,EAAO4iM,gBAAgB,CAAC5iM,GAAAA,EAAO6iC,IAAI,CAACi7C,KAAK,CAACt6F,KAAK,CAAQwc,EAAO6iC,IAAI,CAACk+C,OAAO,CAACv9F,KAAK,EAChFwc,EAAOyhM,WAAW,CAAC3jH,KAAK,CAAG99E,EAAO6iC,IAAI,CAACi7C,KAAK,CAACt6F,KAAK,CAClDwc,EAAOyhM,WAAW,CAAC1gH,OAAO,CAAG/gF,EAAO6iC,IAAI,CAACk+C,OAAO,CAACv9F,KAAK,CACtDwc,EAAOyhM,WAAW,CAAC1jH,MAAM,CAAG/9E,EAAO+9E,MAAM,CAACv6F,KAAK,CAC/Cwc,EAAO6iM,sBAAsB,GAG7B7iM,EAAOqjM,WAAW,GAClBrjM,EAAO8iM,UAAU,GAEjB9iM,EAAO4N,KAAK,CAAC,2BAA4B,gBAAiB5N,GAAAA,EAAO6iC,IAAI,CAACi7C,KAAK,CAACt6F,KAAK,CAAQwc,EAAO6iC,IAAI,CAACk+C,OAAO,CAACv9F,KAAK,EAClHwc,EAAO4N,KAAK,CAAC,2BAA4B,YAAa5N,EAAO+9E,MAAM,CAACv6F,KAAK,EACzEwc,EAAOkjM,cAAc,CAAC,CAACljM,EAAO6M,QAAQ,CAACuwL,QAAQ,CACnD,EAEAp9L,EAAOqjM,WAAW,CAAG,WACjBrjM,EAAO6M,QAAQ,CAACk1L,OAAO,CAAG/hM,OAAAA,EAAOyhM,WAAW,CAAC3jH,KAAK,EAAa99E,OAAAA,EAAOyhM,WAAW,CAAC1gH,OAAO,CACzF/gF,EAAO6M,QAAQ,CAACi1L,SAAS,CAAG9hM,EAAOyhM,WAAW,CAAC1jH,MAAM,CAAG,GAAK/9E,OAAAA,EAAOyhM,WAAW,CAAC1jH,MAAM,CAE9F,EACH,CAED7vE,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACc,KAA3C/a,EAAMwoM,YAAY,CAACz6M,OAAO,CAACiS,EAAMoL,IAAI,IACrCpL,EAAM6T,QAAQ,CAAC60L,SAAS,CAAG,GAC3B1oM,EAAM2pM,uBAAuB,GAC7B3pM,EAAMqqM,WAAW,IAErBrqM,EAAM6T,QAAQ,CAACzI,IAAI,CAAG1K,EAAckB,gBAAgB,CAAC5B,EAAMoL,IAAI,CACnE,CACJ,CACJ,EACH,E,oCEhOD9c,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,YAAa,CAC9B,OACA,aACA,WACA,QACA,WACA,YACA,eACA,UACA,kBACA,uBACA,uBACA,wBACA,gBACA,uBACA,6BACA,kBACA,SACInC,CAAI,CACJW,CAAU,CACVoe,CAAQ,CACRxoB,CAAK,CACL9F,CAAQ,CACRwS,CAAS,CACTzM,CAAY,CACZoK,CAAO,CACPX,CAAe,CACfwqM,CAAoB,CACpBt4M,CAAoB,CACpB81C,CAAqB,CACrBilI,CAAa,CACbrG,CAAoB,CACpB31D,CAA0B,CAC1B/xF,CAAe,EAEf,MAAO,CACHrrB,SCxDG,i0FDyDHoM,SAAU,IACVnM,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAC7DgV,EAAOujM,gBAAgB,CAAG/pM,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,8BACpEuU,EAAOwjM,cAAc,CAAG9jC,EAAqBhyF,aAAa,CAACpkF,EAAU,GAErEygH,EAA2BI,qBAAqB,GAAG1mH,IAAI,CAAC,IACpD,IAAMggN,EAA2BC,EAAyBtjC,YAAY,CAAC,GAAO,IAC9EpgK,EAAOwjM,cAAc,CAACG,SAAS,CAACF,EAA0B,GAC9D,EACJ,EACH,CAEDv1L,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EAEjC/a,EAAMmpC,kBAAkB,CAAG,CAAC,EAC5BnpC,EAAM6oC,eAAe,CAAG,EAAE,CAE1B7oC,EAAM4qM,eAAe,CAAG,WACpBt6M,EAAS,WACL,IAAIu6M,EAAY39M,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAACpV,EAAM8qM,MAAM,CAAC/6K,KAAK,CAAC,CAAC,EAAE,CACpE86K,GACA7qM,CAAAA,EAAM8qM,MAAM,CAACC,SAAS,CAACp5K,SAAS,CAAGk5K,EAAUj5H,SAAS,CAE9D,EACJ,EAEA5xE,EAAM+d,YAAY,CAAG,WACjBztB,EAAS,WACL,IAAI08G,EAAW9/G,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAACpV,EAAMgrM,cAAc,CAACj7K,KAAK,CAAC,CAAC,EAAE,CAC3Ei9E,GACAA,EAAStiH,KAAK,EAEtB,EACJ,EAEAsV,EAAMojI,UAAU,CAAG,WACfpjI,EAAM6gB,mBAAmB,CAAG1L,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,CAC1G,EAEApV,EAAMixB,IAAI,CAAG,WACTjxB,EAAMojI,UAAU,GAChBpjI,EAAM8kJ,OAAO,CAAG9yJ,EAAqBS,SAAS,CAAC,iCAE/C,IAAMw4M,EAAejrM,EAAMkrM,QAAQ,CAACjjL,WAAW,EAAIjJ,EAAgBS,SAAS,CAAC,cAAgB,4CAA8C,iCAE3Izf,CAAAA,EAAMmrM,wBAAwB,CAAGn5M,EAAqBS,SAAS,CAACw4M,EAAc,CAC1EG,WAAYprM,EAAMkrM,QAAQ,CAACn8L,KAAK,CAChCs8L,aAAc5qM,EAAQ,cAAcT,EAAMkrM,QAAQ,CAAC9C,SAAS,CAAE,WAC9DkD,cAAe7qM,EAAQ,cAAcT,EAAMkrM,QAAQ,CAACK,UAAU,CAAE,WAChEC,aAAc/qM,EAAQ,cAAcT,EAAMkrM,QAAQ,CAAC9C,SAAS,CAAE,YAC9DqD,cAAehrM,EAAQ,cAAcT,EAAMkrM,QAAQ,CAACK,UAAU,CAAE,WACpE,GAEIvrM,EAAM8qM,MAAM,EACZx6M,EAAS0P,EAAM4qM,eAAe,EAG9B5qM,EAAMgrM,cAAc,EACpB16M,EAAS0P,EAAM+d,YAAY,CAEnC,EAEI1nB,EAAaN,OAAO,GAAKiK,EAAM+Q,KAAK,CAACvU,EAAE,EACvCwD,CAAAA,EAAM0rM,WAAW,CAAG,EAAI,EAG5BpB,EAAqB1E,WAAW,CAAC5lM,EAAM+Q,KAAK,CAACvU,EAAE,EAAE/R,IAAI,CAAC,SAAU0M,CAAQ,EACpE6I,EAAM6oC,eAAe,CAAG1xC,EAAShI,IAAI,CAACy0M,aAAa,CAAC5yM,GAAG,CAAC,SAAUs8E,CAAC,EAC/D,OAAOA,EAAE9wE,EAAE,GAEfsrC,EAAsBI,uBAAuB,CAACloC,EAAM+Q,KAAK,CAAC+6B,MAAM,CAAE30C,EAAShI,IAAI,CAACy0M,aAAa,EAAE5yM,GAAG,CAAC,SAAUiL,CAAE,EAC3G+D,EAAMmpC,kBAAkB,CAACltC,EAAG,CAAG,EACnC,GACA+D,EAAM2rM,aAAa,CAAGnrM,EAAWmrM,aAAa,CAC9C3rM,EAAMkrM,QAAQ,CAAG/zM,EAAShI,IAAI,CAE1B6Q,EAAM2rM,aAAa,EAAI,CAAC3rM,EAAM2rM,aAAa,CAACzlH,IAAI,GAChDlmF,EAAMkrM,QAAQ,CAACtG,kBAAkB,CAAG,GACpC5kM,EAAMkrM,QAAQ,CAACrG,yBAAyB,CAAG,IAG/C7kM,EAAMixB,IAAI,GACVjxB,EAAM4U,KAAK,CAAC,yBAA0B,GAAM,CAAC5U,EAAM8qM,MAAM,CAC7D,GAEA9qM,EAAM4G,GAAG,CAAC,2BAA4B,SAAUgtB,CAAG,CAAE1oC,CAAG,CAAEq6G,CAAG,EACzD,IAAIj/C,EAAOtmD,EAAM+Q,KAAK,CAACwpB,YAAY,CAACrgB,KAAK,CAAC,CAAEsgB,IAAKtvC,CAAI,EAAE,CAAC,EAAE,MAC7C+C,IAATq4D,EACAA,EAAK7rB,KAAK,CAAG8qE,EAEbvlG,EAAM+Q,KAAK,CAACwpB,YAAY,CAACxqC,IAAI,CAAC,CAAEyqC,IAAKtvC,EAAKuvC,MAAO8qE,CAAI,EAE7D,EACJ,CACJ,CACJ,EACH,E,iBExJM,OAAMqmG,GACTl9M,YAAY0H,CAAK,CAAED,CAAoB,CAAEnE,CAAoB,CAAElK,CAAO,CAAE,CACpE,IAAI,CAACsO,KAAK,CAAGA,EACb,IAAI,CAACiM,oBAAoB,CAAGlM,EAC5B,IAAI,CAACnE,oBAAoB,CAAGA,EAC5B,IAAI,CAAC65M,QAAQ,CAAG/jN,CACpB,CAEAgkN,eAAe/1M,CAAO,CAAEE,CAAY,CAAED,CAAS,CAAE,CAE7C,OADA,IAAI,CAACI,KAAK,CAACoF,QAAQ,CAACC,eAAe,CAAG,GAC/B,IAAI,CAAC4G,oBAAoB,CAACjJ,iBAAiB,CAACrD,EAASE,EAAcD,GAAWvL,IAAI,CAAC,IACtF,IAAIshN,EAAoB,CACpBC,WAAY70M,EAAShI,IAAI,CAAC88M,UAAU,CACpCt6E,UAAW,EAAE,CACb7tG,OAAQ3sB,EAAShI,IAAI,CAACw/C,MAAM,CAC5B8nI,YAAa,EAAE,CAGexoL,MAAAA,IAA9BkJ,EAAShI,IAAI,CAACm/C,WAAW,EAAkBn3C,OAAAA,EAAShI,IAAI,CAACm/C,WAAW,EACpEy9J,CAAAA,EAAkBt1B,WAAW,CAAGt/K,EAAShI,IAAI,CAACm/C,WAAW,CAACt9C,GAAG,CAAC,GACnD,EACH0xE,iBAAkBz1B,EAAWy1B,gBAAgB,CAC7CP,aAAcl1B,EAAWi/J,aAAa,CACtCt+J,gBAAiBX,EAAWk/J,cAAc,GAEjD,EAGL,IAAMC,EAAWj1M,KAA4BlJ,IAA5BkJ,EAAShI,IAAI,CAACwkI,SAAS,CAAiBx8H,EAAShI,IAAI,CAACwkI,SAAS,CAAGx8H,EAAShI,IAAI,CAACk9M,QAAQ,CAEzG,GAAID,OAAAA,EACA,IAAK,IAAIj+M,EAAI,EAAGA,EAAIi+M,EAAS9gN,MAAM,CAAE6C,IAAK,CACtC,IAAMskI,EAAW25E,CAAQ,CAACj+M,EAAE,CACtBjB,EAAU,IAAI,CAACo/M,WAAW,CAAC75E,EAEjB,QAAZvlI,GACA6+M,EAAkBp6E,SAAS,CAAC5hI,IAAI,CAAC,CAC7Bw8M,WAAY,IAAI,CAACC,cAAc,CAAC/5E,GAChCgC,cAAehC,KAA8BxkI,IAA9BwkI,EAASg6E,gBAAgB,CAAiBh6E,EAASg6E,gBAAgB,CAACh4E,aAAa,CAAG,KACnGj4H,GAAIrO,EACJu+M,KAAMx/M,EAAQy8E,WAAW,CACzBksD,cAAepD,EAASoD,aAAa,CACrC82E,IAAK,IACLC,IAAK,EACLC,eAAgB36M,EAAAA,CAA0BA,CAAC2+F,aAAa,CAACC,cAAc,CAACG,eAAe,CACvF+wD,OAAQvvB,KAA8BxkI,IAA9BwkI,EAASg6E,gBAAgB,CAAiBh6E,EAASg6E,gBAAgB,CAACzqD,MAAM,CAAG,KACrF8qD,eAAgB5/M,EAAQ4/M,cAAc,CACtCC,WAAY7/M,EAAQ6/M,UAAU,CAC9BhxF,SAAU0W,EAAS1W,QAAQ,CAC3B4mC,WAAYlwB,EAASkwB,UAAU,CAC/B3mC,SAAUyW,EAASzW,QAAQ,CAC3BgxF,eAAgB,IAAI,CAACC,eAAe,CAACx6E,EAAUtkI,EAAGi+M,GAClDz9J,OAAQ8jF,EAAS9jF,MAAM,CACvBu+J,YAAa,EACbC,WAAY,EACZ/oD,MAAO,IAAI,CAACgpD,SAAS,CAAClgN,GACtB6hB,MAAO,IAAI,CAAC88L,QAAQ,CAAC1rH,WAAW,CAACjzF,EAAQg0E,KAAK,CAClD,EAER,CAGJ,OAAO6qI,CACX,EACJ,CAEAsB,qBAAqB17E,CAAS,CAAE27E,CAAmB,CAAEC,CAAU,CAAE,QAC7D,EAEWA,EACA,IAAI,CAACv7M,oBAAoB,CAACS,SAAS,CAAC,oCACpCk/H,OAAAA,EACA,IAAI,CAAC3/H,oBAAoB,CAACS,SAAS,CAAC,wCACpCk/H,IAAAA,EAAUrmI,MAAM,CAChB,IAAI,CAAC0G,oBAAoB,CAACS,SAAS,CAAC,2CANpC,IAAI,CAACT,oBAAoB,CAACS,SAAS,CAAC,8CAQnD,CAEA+5M,eAAe/5E,CAAQ,CAAE,CACrB,IAAI+6E,EAAS,GAMb,OALA/6E,EAAS85E,UAAU,CAAC3/M,OAAO,CAAC,IACpB6gN,EAAMrvH,IAAI,GAAKlsF,EAAAA,CAA0BA,CAACw/F,UAAU,CAAC/sF,KAAK,CAACymF,QAAQ,EAAIqiH,EAAMrvH,IAAI,GAAKlsF,EAAAA,CAA0BA,CAACw/F,UAAU,CAAC/sF,KAAK,CAACgtF,OAAO,EACzI67G,CAAAA,EAASA,KAAAA,EAAgBC,EAAM9rL,IAAI,CAAG,CAAC,EAAE6rL,EAAO,GAAG,EAAEC,EAAM9rL,IAAI,CAAC,CAAC,CAEzE,GACO6rL,CACX,CAEAJ,UAAUlgN,CAAO,CAAE,QACf,KAA6Be,IAAzBf,EAAQy3J,YAAY,EAAkBz3J,OAAAA,EAAQy3J,YAAY,EAAaz3J,IAAAA,EAAQy3J,YAAY,CAACr5J,MAAM,CAC3F,EAAE,CAEN4B,EAAQy3J,YAAY,CAAC3zJ,GAAG,CAAC,GACrB,EACH8zJ,QAAS3vJ,EAAM+rE,KAAK,CACpB/rE,MAAOA,EAAM4vJ,UAAU,CACvBH,UAAWzvJ,EAAM0vJ,QAAQ,GAGrC,CAEAynD,YAAY75E,CAAQ,CAAE,CAClB,OAAOA,EAAS85E,UAAU,CAACjhN,MAAM,CAAG,EAAImnI,EAAS85E,UAAU,CAAC95E,EAAS85E,UAAU,CAACjhN,MAAM,CAAG,EAAE,CAACoiN,OAAO,CAAG,IAC1G,CAEAT,gBAAgBx6E,CAAQ,CAAE91G,CAAQ,CAAEwmB,CAAI,CAAE,CACtC,GAAIsvF,KAAAA,EAASkwB,UAAU,CACnB,MAAO,GAGX,GAAIhmI,EAAWwmB,EAAK73C,MAAM,CAAG,EAAG,CAC5B,IAAMqiN,EAAexqK,CAAI,CAACxmB,EAAW,EAAE,CACvC,GAAI81G,EAASkwB,UAAU,GAAKgrD,EAAahrD,UAAU,CAC/C,MAAO,EAEf,CAEA,MAAO,EACX,CACJ,CAEAipD,GAAsBp9M,OAAO,CAAG,CAAC,QAAS,uBAAwB,uBAAwB,UAAU,CACpGF,EAAAA,CAAUA,CAACC,OAAO,CAAC,wBAAyBq9M,I,iBCtHY,OAElDgC,WAAgC77M,EAAAA,CAAWA,CAC7CrD,YAAYsY,CAAM,CAAEhV,CAAoB,CAAE6pH,CAAwB,CAAEy2E,CAAqB,CAAE,CACvF,KAAK,GAEL,IAAI,CAACz8E,OAAO,CAAG7uG,EACf,IAAI,CAAC9U,0BAA0B,CAAGA,EAAAA,CAClC,KAAI,CAACF,oBAAoB,CAAGA,EAC5B,IAAI,CAAC6pH,wBAAwB,CAAGA,EAChC,IAAI,CAACy2E,qBAAqB,CAAGA,EAC7B,IAAI,CAAC1yC,YAAY,CAAG,WAAI,CAACjuB,SAAS,EAAa,IAAI,CAACA,SAAS,CAACrmI,MAAM,CAAG,EACvE,IAAI,CAAC80J,eAAe,CAAG,CACnBC,YAAanuJ,EAAAA,CAA0BA,CAAC2+F,aAAa,CAACC,cAAc,CAACK,YAAY,CACjFmvD,WAAYpuJ,EAAAA,CAA0BA,CAAC2+F,aAAa,CAACC,cAAc,CAACM,WAAW,CAEvF,CAEAoiC,SAAU,CACN,IAAI,CAACq6E,UAAU,GAEf,IAAI,CAACvb,qBAAqB,CACrBI,aAAa,CAAC,IAAI,CAAC38L,OAAO,EAC1BtL,IAAI,CAAC,IACF,IAAI,CAACkoM,aAAa,CAAGx7L,CACzB,GACC7H,KAAK,CAAC,KACH,IAAI,CAACqjM,aAAa,CAAG,EACzB,GAEJ,IAAI,CAACL,qBAAqB,CACrB0Z,UAAU,CAAC,IAAI,CAACj2M,OAAO,EACvBtL,IAAI,CAAC,IACF,IAAI,CAACuhN,UAAU,CAAG70M,CACtB,GACC7H,KAAK,CAAC,KACH,IAAI,CAAC08M,UAAU,CAAG,EACtB,GAEJ,IAAI,CAAC/9J,yBAAyB,CAAG,CAC7BC,OAAQ,IAAI,CAACl8C,oBAAoB,CAACS,SAAS,CAAC,mDAC5C67B,QAAS,IAAI,CAACt8B,oBAAoB,CAACS,SAAS,CAAC,oDAC7CquB,OAAQ,GACRqtB,SAAU,KACN,IAAI,CAACF,yBAAyB,CAACntB,MAAM,CAAG,CAAC,IAAI,CAACmtB,yBAAyB,CAACntB,MAAM,CAC9E,IAAI,CAAC+0F,OAAO,CAACt8F,WAAW,EAC5B,CACJ,CACJ,CAEA48F,YAAa,CACT,IAAI,CAAC03F,UAAU,EACnB,CAEAA,YAAa,CACc,OAAnB,IAAI,CAACl8E,SAAS,EAAa,KAAsB1jI,IAAtB,IAAI,CAAC0jI,SAAS,CAAC,EAAE,EAC5C,KAAI,CAAC7tG,MAAM,CAAG,IAAI,CAAC+3F,wBAAwB,CAACC,aAAa,CAAC,IAAI,CAAC6V,SAAS,CAAC,EAAE,CAAChjF,MAAM,CAAE,IAAI,CAACgjF,SAAS,CAAC,EAAE,CAAC5V,QAAQ,CAAE,IAAI,CAAC4V,SAAS,CAAC,EAAE,CAAC3V,QAAQ,EAElJ,CAEA8xF,oBAAoB54L,CAAI,CAAE,CACtBqQ,EAAAA,CAAOA,CAACC,UAAU,CAAC,uBAAwB,QAAS,uBACpD90B,OAAOu4B,IAAI,CAAC/T,EAAM,SACtB,CACJ,CAaA04L,GAAwBp/M,OAAO,CAAG,CAAC,SAAU,uBAAwB,2BAA4B,wBAAwB,CACzHF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,iBAZS,CAC1BC,SAAU,CACNw6M,eAAgB,IAChBC,eAAgB,IAChBr8E,UAAW,IACX57H,QAAS,GACb,EACApC,SCnFW,g8EDoFXC,WAAYg6M,EAChB,EEhFiD,OAE3CK,WAAmCl8M,EAAAA,CAAWA,CAChDrD,YAAYsD,CAAoB,CAAElK,CAAO,CAAE,CACvC,KAAK,GAEL,IAAI,CAACkK,oBAAoB,CAAGA,EAC5B,IAAI,CAAC65M,QAAQ,CAAG/jN,EAChB,IAAI,CAAComN,eAAe,CAAG,WAAI,CAACC,YAAY,EAAa,IAAI,CAACA,YAAY,CAAC7iN,MAAM,CAAG,EAE3E,IAAI,CAAC8iN,cAAc,CAGpB,IAAI,CAAClgK,MAAM,CAAG,IAAI,CAACggK,eAAe,CAAGl8M,EAAqBS,SAAS,CAAC,uCAAyC,IAAI,CAAC0hI,YAAY,CAF9H,IAAI,CAACjmF,MAAM,CAAGl8C,EAAqBS,SAAS,CAAC,yCAIrD,CACJ,CAYAw7M,GAA2Bz/M,OAAO,CAAG,CAAC,uBAAwB,UAAU,CACxEF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,oBAXY,CAC7BC,SAAU,CACN4gI,aAAc,IACdg6E,aAAc,IACdC,eAAgB,GACpB,EACAz6M,SC7BW,okDD8BXC,WAAYq6M,EAChB,EEnByD,OAEnDI,WAAuCt8M,EAAAA,CAAWA,CACpDrD,YAAY2H,CAAY,CAAEyM,CAAS,CAAEwrM,CAAqB,CAAEhvD,CAAoB,CAAE/oJ,CAAU,CAAEvE,CAAoB,CAAE+1C,CAAI,CAAEuqJ,CAAqB,CAAE,CAC7I,KAAK,GAEL,IAAI,CAACxvL,SAAS,CAAGA,EACjB,IAAI,CAACyrM,sBAAsB,CAAGjc,EAC9B,IAAI,CAACgc,qBAAqB,CAAGA,EAC7B,IAAI,CAAChvD,oBAAoB,CAAGA,EAC5B,IAAI,CAACttJ,oBAAoB,CAAGA,EAC5B,IAAI,CAACuE,UAAU,CAAGA,EAClB,IAAI,CAACi4M,gBAAgB,CAAG,GACxB,IAAI,CAACv4M,YAAY,CAAGI,EAAaJ,YAAY,CAC7C,IAAI,CAAC83M,cAAc,CAAG,GACtB,IAAI,CAACp8E,SAAS,CAAG,KACjB,IAAI,CAACq8E,cAAc,CAAG,KACtB,IAAI,CAAC54B,MAAM,CAAG,GACd,IAAI,CAACq5B,eAAe,CAAG,GACvB,IAAI,CAACC,UAAU,CAAG,GAClB,IAAI,CAACp7E,UAAU,CAAGvrF,EAAKE,MAAM,GAAGsrF,mBAAmB,CACnD,IAAI,CAAC66E,cAAc,CAAG,EAC1B,CAEA56E,SAAU,CACN,GAAI,CAAC,IAAI,CAAC85E,mBAAmB,CAAE,CAC3B,IAAI,CAACS,cAAc,CAAG,IAAI,CAACO,qBAAqB,CAACjB,oBAAoB,CAAC,IAAI,CAAC17E,SAAS,CAAE,IAAI,CAAC27E,mBAAmB,CAAE,IAChH,IAAI,CAACkB,gBAAgB,CAAG,IAAI,CAACT,cAAc,CAC3C,IAAI,CAAC34B,MAAM,CAAG,GACd,MACJ,CAEA,IAAI,CAACo5B,gBAAgB,CAAG,IAAI,CAACx8M,oBAAoB,CAACS,SAAS,CAAC,iCAC5D,IAAI,CAAC67M,qBAAqB,CACrBxC,cAAc,CAAC,IAAI,CAAC/1M,OAAO,CAAE,IAAI,CAACE,YAAY,EAC9CxL,IAAI,CAAC,GACF,IAAQ,CAAC6oI,UAAU,CACf,EAAaxvG,MAAM,GAAKpf,GAAAA,CAAeA,CAACk/E,WAAW,CAAC4I,YAAY,EAC5D,IAAI,CAACmlC,SAAS,CAAG,EAAE,CACnB,IAAI,CAACo8E,cAAc,CAAG,IAAI,CAACO,qBAAqB,CAACjB,oBAAoB,CAAC,IAAI,CAAC17E,SAAS,CAAE,GAAO,IAC7F,IAAI,CAACy8E,cAAc,CAAG,GACf,IAGPj3M,EAAS2sB,MAAM,GAAKpf,GAAAA,CAAeA,CAACgrF,aAAa,CAACC,WAAW,EAC7D,IAAI,CAACgiC,SAAS,CAAG,EAAE,CACnB,IAAI,CAACo8E,cAAc,CAAG,IAAI,CAACO,qBAAqB,CAACjB,oBAAoB,CAAC,IAAI,CAAC17E,SAAS,CAAE,IAAI,CAAC27E,mBAAmB,CAAE,IAChH,IAAI,CAACc,cAAc,CAAG,GACf,KAGX,IAAI,CAACz8E,SAAS,CAAGx6H,EAASw6H,SAAS,CAC5B,KAGX,IAAI,CAACq8E,cAAc,CAAG72M,EAASs/K,WAAW,CAC1C,IAAI,CAAC9kD,SAAS,CAAGx6H,EAASw6H,SAAS,CAC5B,IAAI,CAAC48E,sBAAsB,CAACI,MAAM,CAAC,IAAI,CAAC54M,OAAO,IAEzDtL,IAAI,CAAC,IACF,IAAMmkN,EAAkB,KAAsB3gN,IAAtB,IAAI,CAAC0jI,SAAS,CAAC,EAAE,EAAiB,IAAI,CAACA,SAAS,CAAC,EAAE,CAAChjF,MAAM,GAAKz8C,EAAAA,CAA0BA,CAAC0/F,MAAM,CAACE,QAAQ,CACjI,IAAI,CAAC28G,eAAe,CAAG,CAACG,GAAmBC,EAE3C,IAAI,CAACH,UAAU,CACX,IAAI,CAAC/8E,SAAS,CAACrmI,MAAM,CAAG,EAAI,IAAI,CAAC0G,oBAAoB,CAACS,SAAS,CAAC,sCAAwC,IAAI,CAACT,oBAAoB,CAACS,SAAS,CAAC,uCACpJ,GACCnD,KAAK,CAAC,KACH,IAAI,CAACy+M,cAAc,CAAG,IAAI,CAACO,qBAAqB,CAACjB,oBAAoB,CAAC,IAAI,CAAC17E,SAAS,CAAE,IAAI,CAAC27E,mBAAmB,CAAE,GACpH,GACC/9M,OAAO,CAAC,KACuB,KAAxB,IAAI,CAACw+M,cAAc,EACnB,KAAI,CAACA,cAAc,CAAG,IAAI,CAACO,qBAAqB,CAACjB,oBAAoB,CAAC,IAAI,CAAC17E,SAAS,CAAE,IAAI,CAAC27E,mBAAmB,CAAE,GAAK,EAGzH,IAAI,CAACkB,gBAAgB,CACjB,WAAI,CAAC78E,SAAS,EAAa,IAAI,CAACA,SAAS,CAACrmI,MAAM,CAAG,EAC7C,IAAI,CAAC0G,oBAAoB,CAACS,SAAS,CAAC,mCAAoC,CAAE2B,MAAO,IAAI,CAACu9H,SAAS,CAACrmI,MAAM,GACtG,IAAI,CAACyiN,cAAc,CAE7B,IAAI,CAAC34B,MAAM,CAAG,EAClB,EACR,CAEA05B,wBAAyB,CACrB,IAAI,CAACxvD,oBAAoB,CAAC9tB,gBAAgB,CAAC,EAAE,CAAE,GAAI,EAAE,CAAE,IAAI,CAACz7H,OAAO,CAAE,GAAI,GAAI,GAAO,IACpF,IAAI,CAACupJ,oBAAoB,CAACptB,kBAAkB,CAAC,IAAI,CAACn8H,OAAO,CAAE,IAAI,CAAC+M,SAAS,CAACvH,GAAG,IAC7E,IAAMwzM,EAAa,IAAI,CAACx4M,UAAU,CAACy4M,mBAAmB,CAAC,IAAI,CAACj5M,OAAO,EACnE,IAAI,CAAC+M,SAAS,CAACvH,GAAG,CAACwzM,EACvB,CACJ,CAWAV,GAA+B7/M,OAAO,CAAG,CAAC,eAAgB,YAAa,wBAAyB,uBAAwB,aAAc,uBAAwB,OAAQ,wBAAwB,CAC9LF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,wBAVgB,CACjCC,SAAU,CACNwC,QAAS,IACTu3M,oBAAqB,GACzB,EACA35M,SC5GW,ugCD6GXC,WAAYy6M,EAChB,GE1GA//M,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,iBAAkB,CACnC,eACA,YACA,uBACA,aACA,SAAU3L,CAAY,CAAEyM,CAAS,CAAE9Q,CAAoB,CAAEuE,CAAU,EAC/D,MAAO,CACH5C,SCXG,k1DDYHoM,SAAU,IACVC,MAAO,CACHmjC,KAAM,KACNptC,QAAS,IACb,EACAnC,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAOy+E,UAAU,CAAG,WAChBz+E,EAAO8uD,UAAU,CAAG,CAAC,WAAY,mBAAmB,CACpD9uD,EAAOhV,oBAAoB,CAAGA,EAC9BgV,EAAOjR,OAAO,CAAGiR,EAAOjR,OAAO,EAAIM,EAAaN,OAAO,EAG3DiR,EAAOioM,UAAU,CAAG,WAChBjoM,EAAOiU,MAAM,CAAC,OAAQ,WAClBjU,EAAOkoM,uBAAuB,EAClC,EACJ,EAEAloM,EAAOmoM,0BAA0B,CAAG,SAAUC,CAAQ,CAAEC,CAAQ,CAAEC,CAAS,CAAEC,CAAc,EACvF,IAAMC,EAAW,EAAE,CACblkN,EAAS8jN,EAAS3iM,QAAQ,CAACnhB,MAAM,CAEvC,GAAIA,EAAS,EACT,IAAK,IAAI6C,EAAI,EAAGA,EAAI7C,EAAQ6C,IACkC,KAAtDmhN,EAAUvhN,OAAO,CAACqhN,EAAS3iM,QAAQ,CAACte,EAAE,CAACkhN,EAAS,IAChDD,EAAS3iM,QAAQ,CAACte,EAAE,CAAC,OAAU,CAAG,GAClCqhN,EAASz/M,IAAI,CAACq/M,EAAS3iM,QAAQ,CAACte,EAAE,SAO9C,CAFAihN,EAAS3iM,QAAQ,CAAG+iM,EAEhBD,IACAC,EAASvnJ,OAAO,CAACmnJ,GACVI,GAGJ,CAACJ,EAAS,EAarBpoM,EAAOyoM,oBAAoB,CAAG,SAAUL,CAAQ,CAAE9oJ,CAAI,EAElD,IAAM+oJ,EAAW/oJ,CADjBA,EAAOA,GAAQ,CAAC,GACM+oJ,QAAQ,CACxBC,EAAYhpJ,EAAKgpJ,SAAS,CAC1BC,EAAiBjpJ,EAAKipJ,cAAc,CACpCG,EAAeppJ,EAAKopJ,YAAY,EAAI,GACpCvsK,EAAO,EAAE,CAEf,IAAK,IAAIh1C,EAAI,EAAGkmE,EAAM+6I,EAAS9jN,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IAAK,CACjD,IAAIwhN,EAAYP,CAAQ,CAACjhN,EAAE,CAE3B,GAAImhN,EAAUvhN,OAAO,CAAC4hN,CAAS,CAACN,EAAS,EAAI,GAAI,CAC7C,IAAMO,EAAkBz6L,QAAQ0N,IAAI,CAAC8sL,GACrCA,EAAY3oM,EAAOmoM,0BAA0B,CAACQ,EAAWN,EAAUC,EAAWC,GAC9EpiN,MAAMlD,SAAS,CAAC8F,IAAI,CAAC03D,KAAK,CAACtkB,EAAMwsK,GACjCxiN,MAAMlD,SAAS,CAAC8F,IAAI,CAAC03D,KAAK,CACtBtkB,EACAn8B,EAAOyoM,oBAAoB,CAACG,EAAgBnjM,QAAQ,CAAE,CAClD4iM,SAAUA,EACVC,UAAWA,EACXC,eAAgBA,CACpB,GAER,MACQG,GACAvsK,EAAKpzC,IAAI,CAAC4/M,EAGtB,CAEA,OAAOxsK,CACX,EAEAn8B,EAAO6oM,YAAY,CAAG,SAAUzkM,CAAI,EAChC,OAAOpE,EAAO8uD,UAAU,CAAC/nE,OAAO,CAACqd,GAAQ,EAC7C,EAEApE,EAAO8oM,WAAW,CAAG,SAAUhrL,CAAI,MAQ3BvpB,CAPCupB,CAAAA,EAAKirL,wBAAwB,EAC9BjrL,CAAAA,EAAKirL,wBAAwB,CAAG,kBAAiB,EAIrD,IAAMC,EAAiB,IAAIC,gBADJntM,EAAUw1B,MAAM,IAIvC,OAAQxT,EAAKirL,wBAAwB,EACjC,IAAK,yBACL,IAAK,eACDx0M,EAAMhF,EAAW25M,aAAa,CAACprL,EAAKzxB,MAAM,CAAEyxB,EAAKirL,wBAAwB,CAAE,GAAM,GAAO15M,EAAaL,SAAS,CAAEK,EAAaJ,YAAY,EACzI,KACJ,SACIsF,EAAMhF,EAAW25M,aAAa,CAC1BlpM,EAAOjR,OAAO,CACd+uB,EAAKirL,wBAAwB,CAC7B15M,KAA8BpI,IAA9BoI,EAAaJ,YAAY,CACzB,GACAI,EAAaL,SAAS,CACtBK,EAAaJ,YAAY,EAG7B+5M,EAAe91J,GAAG,CAAC,SAAUp1B,EAAKzxB,MAAM,CAEhD,CAIA,MAAOkI,CAFPA,EAAM,CAAC,CAAC,EAAEA,EAAI,CAAC,EAAEy0M,EAAer2L,QAAQ,GAAG,CAAC,GAE9B,IAClB,EAEA3S,EAAOkoM,uBAAuB,CAAG,SAAUE,CAAQ,EAC/CA,EAAWj6L,QAAQ0N,IAAI,CAACusL,GAAYpoM,EAAOm8B,IAAI,EAAI,EAAE,EACrDn8B,EAAOmpM,aAAa,CAAGnpM,EAAOyoM,oBAAoB,CAACL,EAAU,CACzDC,SAAU,WACVC,UAAWtoM,EAAO8uD,UAAU,CAC5B45I,aAAc,GACdH,eAAgB,EACpB,EACJ,EAEAvoM,EAAOiqB,IAAI,CAAG,WACVjqB,EAAOy+E,UAAU,GACjBrB,EAAS1vE,QAAQ,CAAC,yBAClB1N,EAAOioM,UAAU,EACrB,EAEAjoM,EAAOiqB,IAAI,EACf,EACH,CAET,EACH,E,kBExJD3iC,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,wBAAyB,CAC1C,OACA,KACA,QACA,aACA,eACA,WACA,kBACA,+BACA,SAAUnC,CAAI,CAAEuC,CAAE,CAAEhM,CAAK,CAAEoK,CAAU,CAAEnK,CAAY,CAAE/F,CAAQ,CAAEwP,CAAe,CAAEswM,CAA4B,EACxG,MAAO,CACHz8M,SCjBG,otEDkBHoM,SAAU,IACVC,MAAO,GAEPpM,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAOy+E,UAAU,CAAG,WAChBz+E,EAAOqpM,QAAQ,GACfrpM,EAAOspM,qBAAqB,CAAGtpM,EAAOupM,wBAAwB,GAC9DvpM,EAAOwpM,wBAAwB,CAACxpM,EAAOspM,qBAAqB,CAAC,EAAE,CAAE,IACjEtpM,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAC7DgV,EAAOjR,OAAO,CAAG6S,EAAO7S,OAAO,EAGnCiR,EAAOo8H,UAAU,CAAG,WACZp8H,EAAOypM,gBAAgB,EAAIzpM,EAAOypM,gBAAgB,CAAC,EAAE,EAGzDzpM,CAAAA,EAAOypM,gBAAgB,CAAGt7L,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,2CAA2C,CAAC,EAAE,EAC5H,EAEApO,EAAO0pM,oBAAoB,CAAG,SAAUC,CAA2B,EAC/D3pM,EAAOo8H,UAAU,GAEbutE,QAAAA,EAA4BnmN,KAAK,CAACA,KAAK,EAAemmN,CAA2C,IAA3CA,EAA4BnmN,KAAK,CAACwzD,IAAI,EAAa2yJ,eAAAA,EAA4BnmN,KAAK,CAACA,KAAK,CAChJwc,EAAOypM,gBAAgB,CAACh8L,WAAW,CAAC,YAEpCzN,EAAOypM,gBAAgB,CAAC/7L,QAAQ,CAAC,WAEzC,EAEA1N,EAAOwpM,wBAAwB,CAAG,SAAU1rL,CAAI,CAAE8rL,CAAW,EACzD5pM,EAAO2pM,2BAA2B,CAAG7rL,EACrC9d,EAAO0pM,oBAAoB,CAAC1pM,EAAO2pM,2BAA2B,EAC1C,KAAhBC,GAGJ5pM,CAAAA,EAAO6pM,oBAAoB,CAAG7pM,EAAO8pM,wBAAwB,CAAC9pM,EAAO+pM,wBAAwB,CAAE/pM,EAAO2pM,2BAA2B,EACrI,EAEA3pM,EAAOupM,wBAAwB,CAAG,WAC9B,MAAO,CACH,CACI/lN,MAAO,CAAEwzD,KAAM,GAAMxzD,MAAO,YAAa,EACzC2K,MAAOqL,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,iEACrD,EACA,CACIjI,MAAO,CAAEwzD,KAAM,GAAOxzD,MAAO,KAAM,EACnC2K,MAAOqL,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,sDACrD,EACA,CACIjI,MAAO,CAAEwzD,KAAM,GAAOxzD,MAAO,WAAY,EACzC2K,MAAOqL,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,4DACrD,EACA,CACIjI,MAAO,CAAEwzD,KAAM,GAAOxzD,MAAO,YAAa,EAC1C2K,MAAOqL,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,6DACrD,EACA,CACIjI,MAAO,CAAEwzD,KAAM,GAAOxzD,MAAO,YAAa,EAC1C2K,MAAOqL,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,6DACrD,EACA,CACIjI,MAAO,CAAEwzD,KAAM,GAAOxzD,MAAO,YAAa,EAC1C2K,MAAOqL,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,6DACrD,EACH,EAGLuU,EAAOgqM,qBAAqB,CAAG,SAAU5rM,CAAO,EAC5C4B,EAAO+pM,wBAAwB,CAAG57L,QAAQ0N,IAAI,CAAC7b,EAAO8pM,wBAAwB,CAAC1rM,IAC/E4B,EAAO6pM,oBAAoB,CAAG7pM,EAAO8pM,wBAAwB,CAAC9pM,EAAO+pM,wBAAwB,CAAE/pM,EAAO2pM,2BAA2B,CACrI,EAEA3pM,EAAO6oM,YAAY,CAAG,SAAUzkM,CAAI,EAEhC,OADApE,EAAO8uD,UAAU,CAAG,CAAC,WAAY,mBAAmB,CAC7C9uD,EAAO8uD,UAAU,CAAC/nE,OAAO,CAACqd,GAAQ,EAC7C,EAEApE,EAAOiqM,kBAAkB,CAAG,SAAU9hN,CAAI,CAAE5B,CAAM,EAC9C,IACIu3B,EADAmxC,EAAM,EAAE,CAGZ,GAAI1oE,QAAAA,EAAO/C,KAAK,CAACA,KAAK,CAClB,OAAO2E,EAAKsd,QAAQ,CAGxB,IAAK,IAAIte,EAAI,EAAGkmE,EAAMllE,EAAKsd,QAAQ,CAACnhB,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IAG7C22B,CAFJA,EAAO31B,EAAKsd,QAAQ,CAACte,EAAE,EAEdse,QAAQ,EAAIqY,EAAKrY,QAAQ,CAACnhB,MAAM,CAAG,GACxCw5B,EAAKrY,QAAQ,CAAGzF,EAAOiqM,kBAAkB,CAACnsL,EAAMv3B,GAC5Cu3B,EAAKrY,QAAQ,CAACnhB,MAAM,CAAG,IACnBw5B,IAAAA,EAAKrY,QAAQ,CAACnhB,MAAM,EAAU0b,EAAO6oM,YAAY,CAAC/qL,EAAKrY,QAAQ,CAAC,EAAE,CAACF,QAAQ,EAC3E0pD,EAAIlmE,IAAI,CAAC+0B,EAAKrY,QAAQ,CAAC,EAAE,EAEzBwpD,EAAIlmE,IAAI,CAAC+0B,KAGV,EAAuB,IAAvB,EAAQt6B,KAAK,CAACwzD,IAAI,EAAcl5B,EAAKosL,cAAc,GAAK3jN,EAAO/C,KAAK,CAACA,KAAK,EAAM+C,CAAsB,IAAtBA,EAAO/C,KAAK,CAACwzD,IAAI,EAAal5B,EAAKosL,cAAc,GAAK3jN,EAAO/C,KAAK,CAACA,KAAK,GAC/JyrE,EAAIlmE,IAAI,CAAC+0B,GAIjB,OAAOmxC,CACX,EAEAjvD,EAAO8pM,wBAAwB,CAAG,SAAU3hN,CAAI,CAAEwmB,CAAa,EAM3D,OALAxmB,EAAOgmB,QAAQ0N,IAAI,CAAC1zB,GAChBwmB,GACAxmB,CAAAA,EAAKsd,QAAQ,CAAGzF,EAAOiqM,kBAAkB,CAAC9hN,EAAMwmB,EAAa,EAG1DxmB,CACX,EAEA6X,EAAOmqM,iBAAiB,CAAG,SAAUrsL,CAAI,QAErC,CAAsB,GAAlBA,EAAKlX,SAAS,CACP,CAAEkW,OAAQ,YAAakhE,KAAM,WAAY,EACzClgE,CAAoB,IAApBA,EAAKssL,UAAU,CACf,CAAEttL,OAAQ,aAAckhE,KAAM,aAAc,EAC5ClgE,EAAKusL,QAAQ,CAAG,EAChB,CAAEvtL,OAAQ,aAAckhE,KAAM,aAAc,EAC5ClgE,IAAAA,EAAKusL,QAAQ,CACb,CAAEvtL,OAAQ,aAAckhE,KAAM,aAAc,QAE3D,EAEAh+E,EAAOsqM,uBAAuB,CAAG,SAAUniN,CAAI,EAC3CA,EAAOA,EAAK/B,KAAK,GAGjB,IAAK,IADD03B,EACK32B,EAAI,EAAGkmE,EAAMllE,EAAK7D,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IAAK,CAM7C,IAAK,IAAIu4D,KALT5hC,EAAO31B,CAAI,CAAChB,EAAE,CACJ,IAANA,GACAgB,CAAAA,CAAI,CAAChB,EAAE,CAACkjN,QAAQ,CAAG,GAGNvsL,EACb,GAAIA,EAAKzL,cAAc,CAACqtC,GAAO,CACvBA,CAAAA,UAAAA,GAAoBA,SAAAA,GAAmBA,OAAAA,CAAY,IACnD5hC,CAAI,CAAC,OAAS4hC,EAAK,CAAG5hC,CAAI,CAAC4hC,EAAK,CAAC,OAC1B5hC,CAAI,CAAC4hC,EAAK,EAErB,IAAI6qJ,EAAqBvqM,EAAOmqM,iBAAiB,CAACrsL,EAClDA,CAAAA,EAAK,cAAiB,CAAGysL,EAAmBztL,MAAM,CAClDgB,EAAK,YAAe,CAAGysL,EAAmBvsH,IAAI,CAC9ClgE,EAAK,QAAW,CAAG,aACvB,CAEAA,EAAKrY,QAAQ,CAACnhB,MAAM,CAAG,GACvBw5B,CAAAA,EAAKrY,QAAQ,CAAGzF,EAAOsqM,uBAAuB,CAACxsL,EAAKrY,QAAQ,EAEpE,CAEA,OAAOtd,CACX,EAEA6X,EAAOwqM,kBAAkB,CAAG,SAAU76H,CAAI,EACtCyN,EAAS1vE,QAAQ,CAAC,oCAEdiiE,GAAQA,EAAKxnF,IAAI,EAAI,iBAAOwnF,EAAKxnF,IAAI,CACrC6X,EAAOmtH,YAAY,CAAGx9C,EAAKxnF,IAAI,CAE/B6X,EAAOmtH,YAAY,CAAG3zH,EAAWxO,oBAAoB,CAACS,SAAS,CAAC,gDAExE,EAEAuU,EAAOqpM,QAAQ,CAAG,WACdD,EACK35H,eAAe,CAACzvE,EAAOjR,OAAO,EAAIM,EAAaN,OAAO,CAAEM,EAAaJ,YAAY,CAAEI,EAAaL,SAAS,EACzGvL,IAAI,CAACuc,EAAOgqM,qBAAqB,CAAEhqM,EAAOwqM,kBAAkB,EAC5DjiN,OAAO,CAACyX,EAAOyqM,eAAe,CACvC,EAEAzqM,EAAOyqM,eAAe,CAAG,WACrBnhN,EAAS,WACL0W,EAAO4N,KAAK,CAAC,yBAA0B,GAAM,GACjD,EAAG,GACP,EAEA5N,EAAOioM,UAAU,CAAG,WAChBjoM,EAAO0qM,eAAe,CAAG1qM,EAAOJ,GAAG,CAAC,eAAgB,SAAUtc,CAAK,CAAEyqC,CAAQ,EACrEA,EAASj+B,MAAM,CAAC1D,MAAM,EACtB4T,EAAO4N,KAAK,CAAC,qBAErB,GAEA5N,EAAOJ,GAAG,CAAC,qBAAsB,WAC7BI,EAAO2qM,YAAY,EACvB,GAEAvtH,EAAS39D,EAAE,CAAC,WAAY,WACpBzf,EAAO2qM,YAAY,EACvB,EACJ,EAEA3qM,EAAO2qM,YAAY,CAAG,WAClB3qM,EAAO0qM,eAAe,EAC1B,EAEA1qM,EAAO4qM,KAAK,CAAG,WACX5qM,EAAOy+E,UAAU,GACjBz+E,EAAOioM,UAAU,EACrB,EAEAjoM,EAAO6qM,sBAAsB,CAAG,CAC5B79F,SAAU,KACV89F,UAAW,EACXptD,eAAgB,UAChBqtD,eAAgB,GAChBx9M,KAAM,IACNy9M,aAAc,MAClB,CACJ,EACH,CAED98L,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAM4xM,KAAK,EACf,CACJ,CACJ,EACH,E,2BEhPD,SAASK,KACL,MAAO,CACHlyM,SAAU,IACVC,MAAO,CACHoR,QAAS,KACT8gM,SAAU,GACd,EACAt+M,WAAYu+M,GACZ7xM,iBAAkB,EACtB,CACJ,CAGA,SAAS6xM,GAAuB/tH,CAAQ,CAAEx7E,CAAM,EAC5C,IAAI,CAACu/J,SAAS,CAAG/jF,EACjB,IAAI,CAACguH,OAAO,CAAGxpM,EACf,IAAI,CAACwI,OAAO,CAAG,IAAI,CAACA,OAAO,EAAI,CAAEi8C,MAAO,MAAOglJ,SAAU,QAAS,EAElE,IAAI,CAACD,OAAO,CAAC33L,QAAQ,CACjB,eACA,UAAUC,CAAQ,EACG,KAAbA,GACA,IAAI,CAAC43L,aAAa,CAAC53L,EAE3B,GAAEjyB,IAAI,CAAC,IAAI,EAEnB,CC1BA,SAAS8pN,KACL,MAAO,CACHxyM,SAAU,IACVC,MAAO,CACHwyM,YAAa,GACjB,EACA5+M,WAAY6+M,GACZnyM,iBAAkB,EACtB,CACJ,CAGA,SAASmyM,GAAwBruH,CAAQ,CAAE9zF,CAAQ,CAAEsY,CAAM,EACvD,IAAI,CAACu/J,SAAS,CAAG/jF,EACjB,IAAI,CAAC7zF,SAAS,CAAGD,EACjB,IAAI,CAAC8hN,OAAO,CAAGxpM,EACf,IAAI,CAAC8pM,gBAAgB,CAAG,EAAE,CAE1B,IAAI,CAACN,OAAO,CAAC33L,QAAQ,CACjB,gBACA,UAAUC,CAAQ,EACG,KAAbA,GACA,IAAI,CAACi4L,cAAc,CAACj4L,EAE5B,GAAEjyB,IAAI,CAAC,IAAI,GAGf,IAAI,CAAC0/K,SAAS,CAAC1hJ,EAAE,CACb,WACA,YACI,IAAK,IAAIt4B,EAAI,EAAGA,EAAI,IAAI,CAACukN,gBAAgB,CAACpnN,MAAM,CAAE6C,IAC9C,IAAI,CAACoC,SAAS,CAACgV,MAAM,CAAC,IAAI,CAACmtM,gBAAgB,CAACvkN,EAAE,CAEtD,GAAE1F,IAAI,CAAC,IAAI,EAEnB,C,SDpCAwpN,GAAsBzjN,OAAO,CAAG,EAAE,CAalC2jN,GAAuB3jN,OAAO,CAAG,CAAC,WAAY,SAAS,CAgBvD2jN,GAAuBloN,SAAS,CAACqoN,aAAa,CAAG,SAAUM,CAAM,EAC7D,IAAI1lN,EAAU,IAAI,CAACi7K,SAAS,CAAC,EAAE,CAACjrJ,aAAa,CAAC,IAAM01L,GAEhD1lN,GACAA,EAAQuqD,cAAc,CAAC,IAAI,CAACrmC,OAAO,EAGvC,IAAI,CAAC8gM,QAAQ,EACjB,EAEA5jN,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,eAAgBiwM,ICvCrCM,GAAuB/jN,OAAO,CAAG,EAAE,CAYnCikN,GAAwBjkN,OAAO,CAAG,CAAC,WAAY,WAAY,SAAS,CA0BpEikN,GAAwBxoN,SAAS,CAAC0oN,cAAc,CAAG,SAAUC,CAAM,EAC/D,IAAI1lN,EAAU,IAAI,CAACi7K,SAAS,CAAC,EAAE,CAACjrJ,aAAa,CAAC,IAAM01L,GAChDC,EAAiB,4BAErB,GAAI3lN,GAAW,CAACA,EAAQyxB,SAAS,CAAClxB,QAAQ,CAAColN,GAAiB,CACxD3lN,EAAQyxB,SAAS,CAAC9uB,GAAG,CAACgjN,GACtB,IAAIC,EAAiB,IAAI,CAACviN,SAAS,CAAC,WAChCrD,EAAQyxB,SAAS,CAACrtB,MAAM,CAACuhN,EAC7B,EAAG,MAEH,IAAI,CAACH,gBAAgB,CAAC3iN,IAAI,CAAC+iN,EAC/B,CAEA,IAAI,CAACN,WAAW,EACpB,EAEAlkN,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiBuwM,I,wBCnDL,OAE3BQ,GACFrkN,YAAYsD,CAAoB,CAAEghN,CAAc,CAAElrN,CAAO,CAAE2Y,CAAO,CAAE,CAChE,IAAI,CAACwyM,QAAQ,CAAGxyM,EAChB,IAAI,CAAC0I,qBAAqB,CAAGnX,EAC7B,IAAI,CAACkhN,eAAe,CAAGF,EACvB,IAAI,CAACnH,QAAQ,CAAG/jN,EAEhB,IAAI,CAACqrN,kBAAkB,CAAG,CACtB,IAAI,CAACC,aAAa,CAAC3qN,IAAI,CAAC,IAAI,EAC5B,IAAI,CAAC4qN,UAAU,CAAC5qN,IAAI,CAAC,IAAI,EACzB,IAAI,CAAC6qN,aAAa,CAAC7qN,IAAI,CAAC,IAAI,EAC5B,IAAI,CAAC8qN,UAAU,CAAC9qN,IAAI,CAAC,IAAI,EACzB,IAAI,CAAC+qN,YAAY,CAAC/qN,IAAI,CAAC,IAAI,EAC3B,IAAI,CAACgrN,YAAY,CAAChrN,IAAI,CAAC,IAAI,EAC3B,IAAI,CAACirN,UAAU,CAACjrN,IAAI,CAAC,IAAI,EACzB,IAAI,CAACkrN,gBAAgB,CAAClrN,IAAI,CAAC,IAAI,EAC/B,IAAI,CAACmrN,gBAAgB,CAACnrN,IAAI,CAAC,IAAI,EAC/B,IAAI,CAACorN,cAAc,CAACprN,IAAI,CAAC,IAAI,EAC7B,IAAI,CAACqrN,WAAW,CAACrrN,IAAI,CAAC,IAAI,EAC1B,IAAI,CAACsrN,sBAAsB,CAACtrN,IAAI,CAAC,IAAI,EACrC,IAAI,CAACurN,oBAAoB,CAACvrN,IAAI,CAAC,IAAI,EACnC,IAAI,CAACwrN,0BAA0B,CAACxrN,IAAI,CAAC,IAAI,EACzC,IAAI,CAACyrN,eAAe,CAACzrN,IAAI,CAAC,IAAI,EAC9B,IAAI,CAAC0rN,kBAAkB,CAAC1rN,IAAI,CAAC,IAAI,EACpC,CAED,IAAI,CAAC2rN,yBAAyB,CAAG,CAAC,IAAI,CAAChB,aAAa,CAAC3qN,IAAI,CAAC,IAAI,EAAG,IAAI,CAAC4qN,UAAU,CAAC5qN,IAAI,CAAC,IAAI,EAAG,IAAI,CAAC6qN,aAAa,CAAC7qN,IAAI,CAAC,IAAI,EAAG,IAAI,CAACgrN,YAAY,CAAChrN,IAAI,CAAC,IAAI,EAAE,CAG7J4rN,eAAe1gK,CAAU,CAAE97C,CAAQ,CAAE,CACjC,IAAM8uH,EAAOhzE,EAAW7xC,WAAW,GAEnC,OAAOjK,EAAStK,MAAM,CAAC,GACZ,IAAI,CAAC4lN,kBAAkB,CAAClqK,IAAI,CAAC,GAAgB5D,EAAWxtC,EAAU8uH,IAEjF,CAEA2tF,cAAc3gK,CAAU,CAAE4gK,CAAQ,CAAE,CAChC,IAAM5tF,EAAOhzE,EAAW7xC,WAAW,GAEnC,OAAOyyM,EAAShnN,MAAM,CAAC,GACZ,IAAI,CAAC6mN,yBAAyB,CAACnrK,IAAI,CAAC,GAAgB5D,EAAWwvI,EAASluD,IAEvF,CAEA0sF,WAAWx7M,CAAQ,CAAE87C,CAAU,CAAE,CAC7B,OAAO,IAAI,CAAC6gK,aAAa,CAAC38M,EAAS+3K,MAAM,CAACjuJ,IAAI,CAAEgyB,EACpD,CAEA2/J,cAAcz7M,CAAQ,CAAE87C,CAAU,CAAE,CAChC,OAAO,IAAI,CAAC8gK,mBAAmB,CAAC58M,EAAS+5K,OAAO,CAAEj+H,EACtD,CAEA4/J,WAAW17M,CAAQ,CAAE87C,CAAU,CAAE,CAC7B,OAAO,IAAI,CAAC6gK,aAAa,CAAC38M,EAASmpH,YAAY,CAAErtE,EACrD,CAEA6/J,aAAa37M,CAAQ,CAAE87C,CAAU,CAAE,CAC/B,MAAO,gBAA8B97C,EAASmkH,QAAQ,EAAMroE,eAAAA,GAA+B,CAAC97C,EAASmkH,QAAQ,CAGjHy3F,aAAa57M,CAAQ,CAAE87C,CAAU,CAAE,CAC/B,IAAM+gK,EAAW,IAAI,CAACvrM,qBAAqB,CAAC1W,SAAS,CAAC,wCAAyC,CAC3Fo3C,KAAM,IAAI,CAACopK,QAAQ,CAAC,cAAcp7M,EAASs9D,MAAM,CAAE,YACnDpgD,KAAM,IAAI,CAACk+L,QAAQ,CAAC,cAAcp7M,EAASs9D,MAAM,CACrD,GAEIpqD,EAAO,GACPqrK,EAAS,GAab,OAXIv+K,KAAoB5J,IAApB4J,EAASwrH,MAAM,CACft4G,EAAO,CAAC,CAAC,EAAE,IAAI,CAACmoM,eAAe,CAACxlB,eAAe,CAAC71L,EAAS6J,UAAU,EAAE,CAAC,EAEpC,OAA9B7J,EAASwrH,MAAM,CAACr0G,SAAS,EACzBjE,CAAAA,EAAO,CAAC,CAAC,EAAE,IAAI,CAACmoM,eAAe,CAACxlB,eAAe,CAAC71L,EAASwrH,MAAM,CAACr0G,SAAS,EAAE,CAAC,EAE5EnX,CAAAA,OAAAA,EAASwrH,MAAM,CAAC6oF,aAAa,EAAar0M,OAAAA,EAASwrH,MAAM,CAAC8oF,cAAc,GACxE/1B,CAAAA,EAAS,CAAC,CAAC,EAAE,IAAI,CAAC88B,eAAe,CAACvlB,qBAAqB,CAAC91L,EAASwrH,MAAM,CAAC6oF,aAAa,CAAEr0M,EAASwrH,MAAM,CAAC8oF,cAAc,EAAE,CAAC,GAIzH,IAAI,CAACqI,aAAa,CAAC,CAAC,EAAEE,EAAS,EAAE3pM,EAAK,EAAEqrK,EAAO,CAAC,CAAEziI,EAC7D,CAEA+/J,WAAW77M,CAAQ,CAAE87C,CAAU,CAAE,CAE7B,OAAOghK,IADe,CAACxrM,qBAAqB,CAAC1W,SAAS,CAAC,2CAA2CglB,KAAK,CAAC,IACxF,CAAC,IAAIrW,KAAKvJ,EAASs9D,MAAM,EAAE/pB,QAAQ,GAAG,CAACtpC,WAAW,GAAGwK,QAAQ,CAACqnC,EAClF,CAEAggK,iBAAiB97M,CAAQ,CAAE87C,CAAU,CAAE,QACnC,EAAaqtE,YAAY,GAAK3oH,GAAAA,CAAoBA,CAACC,cAAc,CAACkyF,eAAe,EAS7E,GAFkB15F,CALduH,GAAAA,CAAoBA,CAACuyF,mBAAmB,CAACJ,eAAe,CAACK,kBAAkB,CAC3ExyF,GAAAA,CAAoBA,CAACuyF,mBAAmB,CAACJ,eAAe,CAACM,sBAAsB,CAC/EzyF,GAAAA,CAAoBA,CAACuyF,mBAAmB,CAACJ,eAAe,CAACO,mBAAmB,CAC5E1yF,GAAAA,CAAoBA,CAACuyF,mBAAmB,CAACJ,eAAe,CAACQ,iBAAiB,CAC7E,CACsB/hD,IAAI,CAAC,GAAS,IAAI,CAACurK,aAAa,CAAC38M,CAAQ,CAAC3M,EAAI,CAAEyoD,KAMhE,IAAI,CAAC6gK,aAAa,CAAC,IAAI,CAACrrM,qBAAqB,CAAC1W,SAAS,CAAC,iDAAkDkhD,EAFjH,CAKR,CAEAigK,iBAAiB/7M,CAAQ,CAAE87C,CAAU,CAAE,CACnC,GAAI97C,EAASmpH,YAAY,GAAK3oH,GAAAA,CAAoBA,CAACC,cAAc,CAACoyF,UAAU,CAAE,CAC1E,GAAI,IAAI,CAAC8pH,aAAa,CAAC,IAAI,CAACrrM,qBAAqB,CAAC1W,SAAS,CAAC,0DAA2DkhD,GACnH,MAAO,GAGX,IAAM5vB,EAAalsB,CAAQ,CAACQ,GAAAA,CAAoBA,CAACuyF,mBAAmB,CAAClyF,QAAQ,CAACwyF,UAAU,CAAC,CACzF,GAAI,IAAI,CAACspH,aAAa,CAACzwL,EAAY4vB,GAC/B,MAAO,EAEf,CAEA,MAAO,EACX,CAEAkgK,eAAeh8M,CAAQ,CAAE87C,CAAU,CAAE,QACjC,EAAaqtE,YAAY,GAAK3oH,GAAAA,CAAoBA,CAACC,cAAc,CAACI,QAAQ,EAE/D5H,CADOuH,GAAAA,CAAoBA,CAACuyF,mBAAmB,CAAClyF,QAAQ,CAACwyF,UAAU,CAAE7yF,GAAAA,CAAoBA,CAACuyF,mBAAmB,CAAClyF,QAAQ,CAACuyF,SAAS,CAAC,CAC5HhiD,IAAI,CAAC,GAAS,IAAI,CAACurK,aAAa,CAAC38M,CAAQ,CAAC3M,EAAI,CAAEyoD,GAGpE,CAEAmgK,YAAYj8M,CAAQ,CAAE87C,CAAU,CAAE,QAC9B,EAAaqtE,YAAY,GAAK3oH,GAAAA,CAAoBA,CAACC,cAAc,CAAC6xF,KAAK,EAGnE,GAFkB,IAAI,CAACsqH,mBAAmB,CAAC58M,EAASyzL,KAAK,CAAE33I,IAMpD,IAAI,CAAC6gK,aAAa,CAAC,IAAI,CAACrrM,qBAAqB,CAAC1W,SAAS,CAAC,6CAA8CkhD,EAF7G,CAKR,CAEAogK,uBAAuBl8M,CAAQ,CAAE87C,CAAU,CAAE,QACzC,EAAaqtE,YAAY,GAAK3oH,GAAAA,CAAoBA,CAACC,cAAc,CAACmyF,gBAAgB,EACvE,IAAI,CAAC+pH,aAAa,CAAC,IAAI,CAACrrM,qBAAqB,CAAC1W,SAAS,CAAC,+CAAgDkhD,EAGvH,CAEAqgK,qBAAqBn8M,CAAQ,CAAE87C,CAAU,CAAE,QACvC,EAAayzI,WAAW,CAAC97L,MAAM,CAAG,GACvBuM,EAASuvL,WAAW,CAACn+I,IAAI,CAAC,GAAgB,IAAI,CAACwrK,mBAAmB,CAACG,EAAW7lM,KAAK,CAAE4kC,GAGpG,CAEAsgK,2BAA2Bp8M,CAAQ,CAAE87C,CAAU,CAAE,QAC7C,EAAa42I,iBAAiB,CAACj/L,MAAM,CAAG,GAC7BuM,EAAS0yL,iBAAiB,CAACthJ,IAAI,CAAC,GAAsB,IAAI,CAACurK,aAAa,CAACr7M,EAAiB4V,KAAK,CAACtP,OAAO,CAAC,WAAY,KAAMk0C,GAGzI,CAEAugK,gBAAgBr8M,CAAQ,CAAE87C,CAAU,CAAE,QAClC,EAAaqtE,YAAY,GAAK3oH,GAAAA,CAAoBA,CAACC,cAAc,CAAC+xF,SAAS,EACvE,IAAI,IAAI,CAACmqH,aAAa,CAAC,IAAI,CAACrrM,qBAAqB,CAAC1W,SAAS,CAAC,kDAAmDkhD,IAI3G,IAAI,CAAC6gK,aAAa,CAAC38M,EAASyzL,KAAK,CAAE33I,IAInC,IAAI,CAAC6gK,aAAa,CAAC,IAAI,CAACrrM,qBAAqB,CAAC1W,SAAS,CAAC,sDAAuDkhD,IAI/G,IAAI,CAACkhK,mBAAmB,CAACh9M,EAAS0zL,UAAU,CAAE53I,KAI3C97C,EAASszL,MAAM,CAACliJ,IAAI,CAAC,IACxB,GAAI,IAAI,CAACurK,aAAa,CAACM,EAAMnwI,WAAW,CAAEhxB,GACtC,MAAO,GAEX,GAAI97C,CAAsB,IAAtBA,EAASuzL,QAAQ,CACjB,IAAI,IAAI,CAACopB,aAAa,CAACM,EAAM/lM,KAAK,CAAE4kC,GAChC,MAAO,EACX,MACG,GAAI,IAAI,CAAC6gK,aAAa,CAAC,IAAI,CAACrrM,qBAAqB,CAAC1W,SAAS,CAAC,+CAAgD,CAAEwC,MAAO6/M,EAAM/lM,KAAK,CAAEgmM,UAAWD,EAAM7pB,SAAS,GAAKt3I,GACpK,MAAO,GAEX,GAAI,IAAI,CAAC6gK,aAAa,CAAC,IAAI,CAACrrM,qBAAqB,CAAC1W,SAAS,CAAC,sCAAuC,CAAEqiN,MAAOA,EAAM9pB,KAAK,GAAKr3I,GACxH,MAAO,EAEf,EA5BA,CA+BR,CAEAy/J,cAAcv7M,CAAQ,CAAE87C,CAAU,CAAE,CAChC,IAAMqhK,EAAUn9M,EAASi7K,OAAO,CAEhC,GAAIkiC,EAAQ1pN,MAAM,CAAG,EAAG,CACpB,IAAM2pN,EAAYD,EAAQ/rK,IAAI,CAAC,IAC3B,GAAI,IAAI,CAACurK,aAAa,CAAC33M,EAAM+0K,OAAO,CAAEj+H,IAIlC,IAAI,CAAC6gK,aAAa,CAAC33M,EAAM+yK,MAAM,CAACjuJ,IAAI,CAAEgyB,IAStC+gK,IALiB,CAACvrM,qBAAqB,CAAC1W,SAAS,CAAC,wCAAyC,CAC3Fo3C,KAAM,IAAI,CAACopK,QAAQ,CAAC,cAAcp2M,EAAMs4D,MAAM,CAAE,YAChDpgD,KAAM,IAAI,CAACk+L,QAAQ,CAAC,cAAcp2M,EAAMs4D,MAAM,CAClD,GAEarzD,WAAW,GAAGwK,QAAQ,CAACqnC,GAZhC,MAAO,EAef,GAKA,OAHIshK,GAAaD,EAAQ1pN,MAAM,CAAG+M,GAAAA,CAAoBA,CAACmzF,gBAAgB,CAACC,mBAAmB,EACvF5zF,CAAAA,EAASy6K,aAAa,CAAG,EAAG,EAEzB2iC,CACX,CACA,MAAO,EACX,CAEAd,mBAAmBt8M,CAAQ,CAAE87C,CAAU,CAAE,CACrC,OACI97C,EAAS4Z,OAAO,GAAKpZ,GAAAA,CAAoBA,CAAC8yF,iBAAiB,CAACE,QAAQ,EACpE,IAAI,CAACmpH,aAAa,CAAC,IAAI,CAACrrM,qBAAqB,CAAC1W,SAAS,CAAC,CAAC,6BAA6B,EAAEoF,EAAS4Z,OAAO,CAAC,MAAM,EAAE5Z,EAASmpH,YAAY,CAAC,CAAC,EAAGrtE,EAEnJ,CAEA6gK,cAAc7tF,CAAI,CAAEhzE,CAAU,CAAE,CAC5B,OAAOgzE,OAAAA,GAAiBA,EAAK7kH,WAAW,GAAGwK,QAAQ,CAACqnC,EACxD,CAEAkhK,oBAAoB7jC,CAAM,CAAEr9H,CAAU,CAAE,CACpC,OAAOq9H,OAAAA,GAAmBA,EAAOr3J,QAAQ,GAAGrN,QAAQ,CAACqnC,EACzD,CAEA8gK,oBAAoB9tF,CAAI,CAAEhzE,CAAU,CAAE,CAElC,OAAOuhK,IADmB,CAACrJ,QAAQ,CAAC1rH,WAAW,CAACwmC,EAAKlnH,OAAO,CAAC,WAAY,MAAMqC,WAAW,GACrEwK,QAAQ,CAACqnC,EAClC,CACJ,CAEAo/J,GAAsBvkN,OAAO,CAAG,CAAC,uBAAwB,iBAAkB,UAAW,UAAU,CAChGF,EAAAA,CAAUA,CAACC,OAAO,CAAC,wBAAyBwkN,I,qCClQ5CzkN,EAAAA,CAAUA,CAACgF,SAAS,CAAC,oBAAqB03I,CAAAA,EAAAA,GAAAA,aAAAA,EAAcmqE,GAAAA,CAAiBA,CAAE,CAAC,QAAS,YAAa,aAAc,aAAc,WAAW,G,qDCElI,OAAMC,WAA2CrjN,EAAAA,CAAWA,CAC/DrD,YAAYmxK,CAAwB,CAAE74J,CAAM,CAAE84J,CAAa,CAAEu1C,CAAe,CAAE,CAC1E,KAAK,GACL,IAAI,CAACA,eAAe,CAAGA,EAEvB,IAAI,CAACt1C,sBAAsB,CAAG,CAACmO,EAAchhL,KACrCghL,IAAiBC,GAAAA,CAAmBA,CAACzuD,OAAO,GAIhDmgD,EAAyBG,eAAe,CAACkO,EAAchhL,GAEnDghL,IAAiBC,GAAAA,CAAmBA,CAACC,KAAK,CAC1C,IAAI,CAACinC,eAAe,CAACC,WAAW,CAACzlN,GAAG,CAAC3C,GAErC,IAAI,CAACmoN,eAAe,CAACC,WAAW,CAAChkN,MAAM,CAACpE,GAEhD,EAEA,IAAI,CAAC+yK,cAAc,CAAG,IAClB,IAAI,CAACp5I,QAAQ,CAACr8B,GACdwc,EAAOuS,WAAW,EACtB,EAEA,IAAI,CAAC2mJ,MAAM,CAAG,CAACjmJ,EAAQkmJ,IAAsBL,EAAcX,WAAW,CAACllJ,EAAQkmJ,EACnF,CAEAhqD,YAAa,CACT,IAAI,CAACiqD,aAAa,CAAG,KAAiBnyK,IAAjB,IAAI,CAACqgC,OAAO,EAAkB,WAAI,CAACA,OAAO,CAAY,GAAK,IAAI,CAACA,OAAO,CAC5F,IAAI,CAAC+xI,iBAAiB,CAAG,KAAqBpyK,IAArB,IAAI,CAAC2zF,WAAW,CAAiB,GAAK,IAAI,CAACA,WAAW,CAEvF,CACAwzH,GAAmC5mN,OAAO,CAAG,CAAC,2BAA4B,SAAU,gBAAgB,C,yBChC7F,IAAM+mN,GAAkD,CAC3DhiN,SAAU,CACN8/C,UAAW,IACX,GAAG4uH,GAAAA,CAA0B,EAEjCphF,QAAS,CACLw0H,gBAAiB,kBACrB,EACAzhN,WAAYwhN,GACZ9/L,KAAM,wCACN3hB,SAAUA,GAAAA,CACd,E9EOA,SAAS6hN,GAAiB/0G,CAAI,CAAEwzE,CAAM,CAAEwhC,CAAa,EACjD,IAAI,CAACh1G,IAAI,CAAGA,GAAQ,GACpB,IAAI,CAACwzE,MAAM,CAAGA,GAAU,GACxB,IAAI,CAACwhC,aAAa,CAAGA,GAAiB,EAC1C,CAIA,SAASC,KACL,MAAO,CACH31M,SAAU,IACVpM,S+EnCO,8kE/EoCPqM,MAAO,CACH21M,YAAa,IACbC,UAAW,IACXC,WAAY,IACZC,WAAY,IACZjmK,SAAU,IACV5qC,SAAU,IACVouC,UAAW,IACX0iK,aAAc,KACdtiC,eAAgB,IAChBD,eAAgB,IAChBx/F,SAAU,IACV+sE,YAAa,IACbi1D,SAAU,KACVC,YAAa,IACjB,EACA31M,iBAAkB,GAClB1M,WAAY,4BACZyM,aAAc,KACd6U,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,EAC1B8S,EAAMuyK,EAAE,CAAC2jC,MAAM,CAAChpN,CAAO,CAAC,EAAE,CAC9B,CACJ,CACJ,CAIA,SAASipN,GAA0B9zB,CAAY,CAAE+zB,CAAU,CAAElvM,CAAU,CAAEmvM,CAAQ,CAAEC,CAAiB,CAAE11B,CAAsB,CAAE21B,CAAO,CAAEC,CAAS,CAAEzuK,CAAI,EAClJvnC,EAAa6hL,EAEb/xL,EAAW4W,EACXF,EAASqvM,EACTv2M,EAAkBw2M,EAClBvzM,EAAQwzM,EACRzuN,EAAU0uN,EAEV,IAAI,CAACC,aAAa,CAAGnhN,GAAAA,CACrB,KAAI,CAACtD,oBAAoB,CAAG4uL,EAC5B,IAAI,CAAC/L,OAAO,CAAG,IAAI2gC,GACnB,IAAI,CAACltB,cAAc,CAAGvgJ,OAAAA,EAAKE,MAAM,GACjC,IAAI,CAACyuK,cAAc,CAAG,GACtB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAACvrN,QAAQ,CAAG,CACZwrN,aAAc,KACdC,YAAa,IACjB,EAEA,IAAI,CAACC,YAAY,CAAG,CAChB1rM,KAAM,SACN2rM,aAAc,mBACdC,eAAgB,oBACpB,EAEA,IAAMr2D,EAAY,IAAI,CAAC3uJ,oBAAoB,CAACS,SAAS,CAAC,oCACtD,KAAI,CAACwkN,aAAa,CAAG,CACjB7rM,KAAMm3E,GAAAA,CAAiBA,CACvBntF,UAAW,IAAI,CAACpD,oBAAoB,CAACS,SAAS,CAAC,0CAA2C,CAAE2Y,KAAMu1I,CAAU,EAChH,EAEA,IAAI,CAACu2D,uBAAuB,CAAG,wBAC/B,IAAI,CAAC3kN,sBAAsB,CAAG,oBAC9B,IAAI,CAACN,iBAAiB,CAAG,CAAC,IAAI,CAACohD,SAAS,EAAI,EAAI,GAAM,CAAC,IAAI,CAACi1I,cAAc,CAE1E,IAAI,CAAC6uB,mBAAmB,CAAGhiM,QAAQ0N,IAAI,CAAC,IAAI,CAAC8yL,WAAW,EACxD,IAAI,CAACyB,iBAAiB,CAAG,IAAI,CAACA,iBAAiB,CAAC3uN,IAAI,CAAC,IAAI,EAEzD,IAAI,CAAC4uN,YAAY,CAAG3nL,CAAAA,EAAAA,GAAAA,CAAAA,EAAW,IAAI,CAAC4nL,aAAa,CAAC7uN,IAAI,CAAC,IAAI,EAAGue,GAC9D,IAAI,CAACuwM,kBAAkB,CAAG7nL,CAAAA,EAAAA,GAAAA,CAAAA,EAAW,IAAI,CAAC8nL,mBAAmB,CAAC/uN,IAAI,CAAC,IAAI,EAAGue,GAC1E,IAAI,CAACywM,UAAU,CAAG/nL,CAAAA,EAAAA,GAAAA,CAAAA,EAAW,IAAI,CAACgoL,WAAW,CAACjvN,IAAI,CAAC,IAAI,EAAGue,EAC9D,CgFlEA,SAAS2wM,KACL,MAAO,CACH53M,SAAU,IACVpM,SC3CO,2yHD4CPqM,MAAO,CACHjK,QAAS,IACTE,aAAc,IACdilH,SAAU,KACVlnC,SAAU,IACVjjE,MAAO,IACX,EACAzQ,iBAAkB,GAClB1M,WAAY,0BACZyM,aAAc,IAClB,CACJ,CAGA,SAASu3M,GACL5wM,CAAM,CACN3Q,CAAY,CACZ/F,CAAQ,CACRkQ,CAAU,CACVoC,CAAO,CACP8lL,CAAiB,CACjB12L,CAAoB,CACpBymC,CAAkB,CAClBsP,CAAI,CACJ8vK,CAAqB,CACrBzzH,CAAQ,CACRhiF,CAAE,CACFxa,CAAe,EAEf,IAAI,CAAC+Y,QAAQ,CAAG,CACZm3M,aAAc9wM,EAAO4N,KAAK,CAACnsB,IAAI,CAACue,GAChC3Q,aAAcA,EACd/F,SAAUA,EACVkQ,WAAYA,EACZkoL,kBAAmBA,EACnB12L,qBAAsBA,EACtBymC,mBAAoBA,EACpBsP,KAAMA,EACNq8C,SAAUA,EACVhiF,GAAIA,EACJxa,gBAAiBA,CACrB,EACA,IAAI,CAAC+0J,QAAQ,CAAG/5I,EAChB,IAAI,CAACm1M,sBAAsB,CAAGF,EAC9B,IAAI,CAAC92D,WAAW,CAAG,IAAI,CAACpgJ,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,mDAChE,IAAI,CAACulN,UAAU,CAAG,GAClB,IAAI,CAACC,aAAa,CAAG,GACrB,IAAI,CAAC7Z,mBAAmB,CAAG,IAAI,CAACz9L,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,+CAExE,IAAI,CAACy3G,UAAU,CAAG,GAClB,IAAI,CAACguG,oBAAoB,CAAG,GAC5B,IAAI,CAACC,aAAa,CAAG,GACrB,IAAI,CAACC,cAAc,CAAG,GACtB,IAAI,CAACC,eAAe,CAAG,GACvB,IAAIrrF,EAAW,IACf,KAAI,CAACsrF,YAAY,CAAG,IAAI,CAAC33M,QAAQ,CAAC83B,kBAAkB,CAACwP,MAAM,CAAC,IAAI,CAAClyC,OAAO,EACxE,IAAI,CAACwiN,cAAc,CAAG,KACtB,IAAI,CAAC5kK,UAAU,CAAG,GAClB,IAAI,CAAC6kK,kBAAkB,CAAG,GAAIC,CAAAA,IAAAA,EAAK,kCACnC,IAAI,CAACC,cAAc,CAAG,KACtB,IAAI,CAACC,kBAAkB,CAAG,GAC1B,IAAI,CAACC,kBAAkB,CAAG,GAC1B,IAAI,CAACC,qBAAqB,CAAG,GAE7B,IAAI,CAACC,gBAAgB,CAAG,CACpBC,WAAY,IAAI,CAACp4M,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,4CACzDsnK,kBAAmB,IAAI,CAACp5J,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,6BAChEumN,iBAAkB,IAAI,CAACr4M,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,4BAC/Dq3B,UAAW,CACPkrB,MAAO,wBACP6mJ,YAAa,wBACbD,aAAc,wBAClB,CACJ,EAEI,KAAe3tM,IAAf,IAAI,CAAC8iB,KAAK,EAAkB,WAAI,CAACunM,YAAY,EAAa,KAAsBrqN,IAAtB,IAAI,CAACqqN,YAAY,CAC3EtrF,EAAW,IAAI,CAACsrF,YAAY,CAACnpN,IAAI,CACXlB,KAAAA,IAAf,IAAI,CAAC8iB,KAAK,EACjBi8G,CAAAA,EAAW,IAAI,CAACj8G,KAAK,EAEzB,IAAI,CAACkoM,SAAS,CAAG,CACb3+M,SAAU0yH,OAAAA,EAAoB,GAAKA,EAAS9iG,QAAQ,CACpDj1B,MAAO+3H,OAAAA,GAAqBA,KAAAA,EAASj+G,KAAK,CAAU,IAAI,CAACpO,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,mCAAqCu6H,EAASj+G,KAAK,EAGxJ,IAAI,CAACu5K,cAAc,CAAG,WAAI,CAAC3nL,QAAQ,CAAConC,IAAI,CAACE,MAAM,GAC/C,IAAI,CAACtnC,QAAQ,CAAC+nL,iBAAiB,CAACztL,WAAW,CAAC,IAAI,CAAClF,OAAO,CAAE,IAAI,CAACE,YAAY,CAAE,IAAI,CAACilH,QAAQ,EAAEzwH,IAAI,CAAC,IAAI,CAACyuN,aAAa,CAACzwN,IAAI,CAAC,IAAI,CAAE,KAE/H,IAAI,CAAC0wN,SAAS,CAAG,IAAI,CAACx4M,QAAQ,CAACH,UAAU,CAACoG,GAAG,CAAC,yBAA0B,KACpE,IAAI,CAACwyM,oBAAoB,EAC7B,GAEA,IAAI,CAACC,mBAAmB,CAAG,IACvB,IAAI,CAACz/C,QAAQ,CAACsmC,EAAaloJ,IAAI,IAC/BhxC,EAAOuS,WAAW,EACtB,EAEA,IAAI,CAAC+/L,eAAe,CAAG,IACnB,IAAI,CAAC3lK,UAAU,CAAGusJ,EAClBl5L,EAAOuS,WAAW,EACtB,CACJ,CExIA,SAASggM,KACL,MAAO,CACH5lN,SCXO,+6CDYPoM,SAAU,IACVC,MAAO,CACHjK,QAAS,WACTgb,MAAO,GACX,EACAnd,WAAY,wBACZyM,aAAc,KACdC,iBAAkB,EACtB,CACJ,CAKA,SAASk5M,GAAsBvyM,CAAW,CAAEwyM,CAAS,CAAEznN,CAAoB,CAAE0nN,CAAe,CAAEC,CAAO,EACjG,IAAI,CAACh5M,QAAQ,CAAG,CACZpT,OAAQksN,EACR1kL,SAAU9tB,EACV2yM,cAAeF,EACf15M,MAAO25M,CACX,EACA,IAAI,CAAC3nN,oBAAoB,CAAGA,EAC5B,IAAI,CAACmiI,YAAY,CAAG,GACpB,IAAI,CAAC3sH,OAAO,CAAG,GACf,IAAI,CAACqyM,QAAQ,CAAG,EAAE,CAClB,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAAC/jN,OAAO,CACtC,CEhCA,SAASgkN,GAAmB/nN,CAAoB,EAC5C,MAAO,CACH2B,SCRO,4QDSPoM,SAAU,IACVC,MAAO,CACHqD,WAAY,GAChB,EACAzP,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B5B,EAAOhV,oBAAoB,CAAGA,CAClC,EACH,CAET,CNJA1D,EAAAA,CAAUA,CAACgF,SAAS,CAACiiN,GAAgDjgM,IAAI,CAAEigM,I9EH3EjnN,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,kBAAmB0zM,IACxCA,GAAgBlnN,OAAO,CAAG,EAAE,CAE5BF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,4BAA6BuiN,IACnDA,GAA0B3nN,OAAO,CAAG,CAAC,aAAc,WAAY,WAAY,SAAU,kBAAmB,uBAAwB,QAAS,UAAW,OAAO,CAyF3J2nN,GAA0BlsN,SAAS,CAACutN,mBAAmB,CAAG,WACtD,IAAI,CAACd,cAAc,CAAG,GAClB,IAAI,CAACzhD,QAAQ,GACb,IAAI,CAAC+kD,MAAM,GAEX,IAAI,CAACtD,cAAc,CAAG,EAE9B,EAEAP,GAA0BlsN,SAAS,CAACgrK,QAAQ,CAAG,iBAE3C,CAA8C,IAA1C,IAAI,CAACglD,aAAa,CAAC,IAAI,CAACplC,OAAO,CAACp0E,IAAI,GACpC,IAAI,CAACy5G,gBAAgB,CAAC,IAAI,CAACloN,oBAAoB,CAACS,SAAS,CAAC,oDACnD,KAGP,KAAI,CAACoiL,OAAO,CAACp0E,IAAI,CAACn1G,MAAM,CAAG,OAC3B,IAAI,CAAC4uN,gBAAgB,CAAC,IAAI,CAACloN,oBAAoB,CAACS,SAAS,CAAC,4CACnD,GAIf,EAEA0jN,GAA0BlsN,SAAS,CAACgwN,aAAa,CAAG,SAAU9kD,CAAK,EAC/D,MAAO,MAAMlqK,IAAI,CAACnD,EAAQq4F,WAAW,CAACg1E,GAC1C,EAEAghD,GAA0BlsN,SAAS,CAAC+vN,MAAM,CAAG,WACzC,IAAI,CAACnqK,QAAQ,CAAC,CAAE1gD,KAAM,IAAIqmN,GAAiB,IAAI,CAAC3gC,OAAO,CAACp0E,IAAI,CAAE,IAAI,CAACo0E,OAAO,CAACZ,MAAM,CAAE,IAAI,CAACY,OAAO,CAAC4gC,aAAa,CAAE,GAC1GhrN,IAAI,CAAC,KACF,IAAI,CAACitN,WAAW,EACpB,GACCpoN,KAAK,CAAC,KACH,IAAI,CAAC4qN,gBAAgB,CAAC,IAAI,CAACloN,oBAAoB,CAACS,SAAS,CAAC,kDAC1D,IAAI,CAACikN,cAAc,CAAG,EAC1B,EACR,EAEAP,GAA0BlsN,SAAS,CAACytN,WAAW,CAAG,WAC9C,IAAI,CAAC7iC,OAAO,CAACp0E,IAAI,CAAG,GACpB,IAAI,CAACo0E,OAAO,CAACZ,MAAM,CAAG,GACtB,IAAI,CAACY,OAAO,CAAC4gC,aAAa,CAAG,GAC7B,IAAI,CAACE,WAAW,CAAG,IAAI,CAACwB,mBAAmB,CAC3C,IAAI,CAACT,cAAc,CAAG,GACtB,IAAI,CAACC,WAAW,CAAG,GAEnB,IAAI,CAACS,iBAAiB,CAAC,IACvB,IAAI,CAACnyM,QAAQ,CAAC,CAAE+N,OAAQ,EAAM,GAC9B,IAAI,CAACghE,QAAQ,CAAC,CAAEq1G,kBAAmB,GAAOC,aAAc,EAAK,EACjE,EAEA6sB,GAA0BlsN,SAAS,CAACiwN,gBAAgB,CAAG,SAAUt8K,CAAO,EACpE,IAAI73B,EAAavF,EAAWwF,IAAI,CAAC,IAWjC,OAVAD,EAAW/T,oBAAoB,CAAGA,EAClC+T,EAAWwjC,cAAc,CAAG3L,EAC5B73B,EAAWy0G,QAAQ,CAAG,IAAI,CAACxoH,oBAAoB,CAACS,SAAS,CAAC,mBAC1DsT,EAAW00G,aAAa,CAAG,IAAI,CAACzoH,oBAAoB,CAACS,SAAS,CAAC,yBAE/DsT,EAAW3d,OAAO,CAAG,WACjB2d,EAAWO,QAAQ,GACnBP,EAAa,IACjB,EAEOhD,EAAMwD,QAAQ,CAAC,CAClBvG,MAAO+F,EACPW,YAAa5G,EAAgB6G,yBAAyB,CAAG,6BAC7D,EACJ,EAEAwvM,GAA0BlsN,SAAS,CAACqrK,aAAa,CAAG,SAAUsY,CAAa,EACvE,IAAI,CAACxiL,QAAQ,CAACyrN,WAAW,CAAGjpC,EAAcx4J,sBAAsB,CAAC,cAAc,CAAC,EAAE,EAGtF+gM,GAA0BlsN,SAAS,CAACkwN,YAAY,CAAG,WAC/C,GAAK,IAAI,CAAC7xB,cAAc,CAIxB,OAAOh4L,EACH,YACQ,IAAI,CAAClF,QAAQ,CAACyrN,WAAW,EACzB,IAAI,CAACzrN,QAAQ,CAACyrN,WAAW,CAACnsN,KAAK,EAEvC,GAAEjC,IAAI,CAAC,IAAI,EAEnB,EAEA0tN,GAA0BlsN,SAAS,CAACmtN,iBAAiB,CAAG,SAAU9oL,CAAO,EACjE,IAAI,CAACqoL,WAAW,EAAIroL,KAAAA,IACpB,IAAI,CAACqoL,WAAW,CAAG,GACnB,IAAI,CAAC3iI,QAAQ,CAAC,CACVq1G,kBAAmB,GACnBC,aAAc,EAClB,IAEJ,IAAI,CAACzU,OAAO,CAACp0E,IAAI,CAAGnyE,CACxB,EAEA6nL,GAA0BlsN,SAAS,CAACisN,MAAM,CAAG,SAAUtoC,CAAa,EAChE,IAAI,CAACiH,OAAO,CAACp0E,IAAI,CAAG,IAAI,CAACk1G,WAAW,EAAI,GACxC,IAAI,CAAC9gC,OAAO,CAAC4gC,aAAa,CAAG,GAC7B,IAAI,CAACngD,aAAa,CAACsY,GACI,SAAnB,IAAI,CAACv6H,SAAS,EACd,IAAI,CAAC8mK,YAAY,EAEzB,EAEAhE,GAA0BlsN,SAAS,CAACksH,UAAU,CAAG,SAAU+G,CAAO,EACrCjvH,KAAAA,IAArBivH,EAAQ84F,QAAQ,EAChB,IAAI,CAACoE,oBAAoB,CAACl9F,EAAQ84F,QAAQ,CAACqE,aAAa,CAEhE,EAEAlE,GAA0BlsN,SAAS,CAACqtN,aAAa,CAAG,SAAU5+L,CAAS,EACnE,IAAI,CAACm8J,OAAO,CAAC4gC,aAAa,CAAG/8L,CACjC,EAEAy9L,GAA0BlsN,SAAS,CAACmwN,oBAAoB,CAAG,SAAUE,CAAgB,EAC7E,IAAI,CAACtE,QAAQ,EAAEj3F,cAAgBu7F,GAAkBv7F,aACjD,KAAI,CAAC81D,OAAO,CAAC4gC,aAAa,CAAG,EAAI,CAEzC,E,SgFnNAnnN,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiB21M,IACtCA,GAAcnpN,OAAO,CAAG,EAAE,CAE1BF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,0BAA2BgkN,IACjDA,GAAwBppN,OAAO,CAAG,CAC9B,SACA,eACA,WACA,aACA,UACA,oBACA,uBACA,qBACA,OACA,wBACA,WACA,KACA,kBACH,CA8GDopN,GAAwB3tN,SAAS,CAACosH,UAAU,CAAG,WAC3C,IAAI,CAAC8iG,SAAS,GACd,IAAI,CAACx4M,QAAQ,CAACrQ,QAAQ,CAACiV,MAAM,CAAC,IAAI,CAACgzM,cAAc,CACrD,EAEAX,GAAwB3tN,SAAS,CAACivN,aAAa,CAAG,SAAUqB,CAAa,EAErE,GADA,IAAI,CAACprN,IAAI,CAAG,IAAI,CAACwR,QAAQ,CAAC+nL,iBAAiB,CAACv5L,IAAI,CAC5C,KAAuBlB,IAAvB,IAAI,CAACkB,IAAI,CAACk3L,QAAQ,CAAgB,CAClC,IAAI,CAACm0B,gBAAgB,GACrB,IAAI,CAACpC,cAAc,CAAG,GACtB,IAAI,CAACJ,UAAU,CAAG,GAClB,MACJ,CAEA,IAAI,CAACzD,QAAQ,CAAG,IAAI,CAAC5zM,QAAQ,CAAC+nL,iBAAiB,CAACv5L,IAAI,CAACk3L,QAAQ,CAC7D,IAAI,CAACz8C,IAAI,CAAC,IAAI,CAACuuE,aAAa,EAC5B,IAAI,CAACsC,uBAAuB,CAAG,IAAI,CAAC95M,QAAQ,CAAC+nL,iBAAiB,CAACv5L,IAAI,CAACurN,wCAAwC,CAE5G,IAAI,CAACF,gBAAgB,GAErB,IAAI,CAACpB,oBAAoB,GACzB,IAAI,CAACpB,UAAU,CAAG,GAElB,IAAI,CAACr3M,QAAQ,CAACm3M,YAAY,CAAC,yBAA0B,GAAMyC,EAC/D,EAEA3C,GAAwB3tN,SAAS,CAACwnL,eAAe,CAAG,SAAU4X,CAAiB,CAAEC,CAAY,EACrFA,EACA,IAAI,CAAC4uB,oBAAoB,CAAG7uB,EAE5B,IAAI,CAACn/E,UAAU,CAAGm/E,EAGtB,IAAI,CAACr1G,QAAQ,CAAC,CACV/3E,GAAI,IAAI,CAAClG,OAAO,CAChBszL,kBAAmBA,CACvB,EACJ,EAEAuuB,GAAwB3tN,SAAS,CAACmvN,oBAAoB,CAAG,WACrD,IAAMhmN,EAAS,IAAI,CAACuN,QAAQ,CAACtK,YAAY,CAACjD,MAAM,CAKhD,GAJA,IAAI,CAACslN,cAAc,CAAG,KACtB,IAAI,CAAC9tJ,OAAO,CAAG,KACf,IAAI,CAAC+tJ,kBAAkB,CAAG,GAEtBvlN,KAAWnF,IAAXmF,GAAwB,iCAAiCnI,IAAI,CAAC,IAAI,CAACguN,SAAS,CAAC3+M,QAAQ,EAAG,CACxF,IAAI,CAACswD,OAAO,CAAG,IAAI,CAAC0tJ,YAAY,CAACjhN,GAAG,CAACjE,EAAQ,IAC7C,IAAM0qD,EAAc,IAAI,CAAC8M,OAAO,CAAC58C,cAAc,EAAI,IAAI,CAAC48C,OAAO,CAACx9C,WAAW,CAE3E,IAAI,CAACsrM,cAAc,CAAG,CAClB35F,YAAa,IAAI,CAAChpH,OAAO,CACzB3C,OAAQ0qD,EACRu1G,UAAW,IAAI,CAAC1yJ,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,iDAAkD,CACtGkoN,WAAY,IAAI,CAAC/vJ,OAAO,CAAC57C,SAAS,EAE1C,EAEI,UAAI,CAAC47C,OAAO,CAAC58C,cAAc,EAAW,WAAI,CAAC48C,OAAO,CAAC58C,cAAc,IACjE,IAAI,CAAC0qM,cAAc,CAAG,KACtB,IAAI,CAACC,kBAAkB,CAAG,IAAI,CAACh4M,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,iDAE/E,CACJ,EAMAmlN,GAAwB3tN,SAAS,CAAC2wN,eAAe,CAAG,SAAUzrN,CAAI,EAC9D,IAAM4G,EAAU5G,EAAKsmN,aAAa,CAAG,IAAI,CAACiD,cAAc,CAACtlN,MAAM,CAAG,IAAI,CAAC2C,OAAO,CAC1EqwL,EAAa,KACjB,OAAO,IAAI,CAACzlL,QAAQ,CAAC+nL,iBAAiB,CACjCnC,aAAa,CAACp3L,EAAKsxG,IAAI,CAAEtxG,EAAK8kL,MAAM,CAAE,GAAIl+K,EAAS,IAAI,CAACmlH,QAAQ,CAAE,IAAI,CAACjlH,YAAY,EACnFxL,IAAI,CAAC,IAEF27L,CADAA,EAAavR,CAAM,EACRnzK,UAAU,CAAGvS,EAAKsmN,aAAa,CAAG,IAAI,CAAC7qJ,OAAO,CAAC57C,SAAS,CAAG,IAAI,CAACiqM,SAAS,CAAChkN,KAAK,CAC1FmxL,EAAW1R,WAAW,CAAG,SACzB,IAAI,CAAC6/B,QAAQ,CAACxkN,IAAI,CAACq2L,GACnB,IAAI,CAACx8C,IAAI,CAAC,IAAI,CAACuuE,aAAa,EAC5B,IAAI,CAACD,oBAAoB,CAAG,GACrB,IAAI,CAACt+C,QAAQ,CAAC,IAAI,CAACjmH,UAAU,IAEvClpD,IAAI,CAAC,KACF,IAAI,CAAC2zM,mBAAmB,CAAG,CAAC,EAAE,IAAI,CAACz9L,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,wCAAwC,EAAE,EAAE,IAAI,CAAC2rM,mBAAmB,CAAC,CAAC,CACjJ,IAAMyc,EAAe,CAAC,uBAAuB,EAAEz0B,EAAW5pL,EAAE,CAAC,CAAC,CAQ9D,GAPA,IAAI,CAACo8M,kBAAkB,CAAGiC,EAC1B,IAAI,CAAChC,qBAAqB,CAAGgC,EAC7B,IAAI,CAAC7mI,QAAQ,CAAC,CACV/3E,GAAI,IAAI,CAAClG,OAAO,CAChBszL,kBAAmB,EACvB,GAEI,QAAI,CAACkrB,QAAQ,CAACjpN,MAAM,EAAW,IAAI,CAACipN,QAAQ,CAAC,EAAE,CAAC/3M,EAAE,GAAK4pL,EAAW5pL,EAAE,EAAI,IAAI,CAAC+3M,QAAQ,CAAC,IAAI,CAACA,QAAQ,CAACjpN,MAAM,CAAG,EAAE,CAACkR,EAAE,GAAK4pL,EAAW5pL,EAAE,CACpI,OAEJ,IAAMs+M,EAAiBrvN,SAASyiC,cAAc,CAAC2sL,GAG/Cpd,CADI,IAAI,CAAC98L,QAAQ,CAAC/Y,eAAe,CAACkjK,uBAAuB,CAACgwD,IAAmBA,EAAe59L,aAAa,CAAC,yCAAwC,EACtIxyB,KAAK,CAAC,CAAEqwN,cAAe,EAAK,EAC5C,EACR,EAEAnD,GAAwB3tN,SAAS,CAAC+wN,aAAa,CAAG,WAC9C,IAAI,CAACpC,kBAAkB,CAAG,EAC9B,EAEAhB,GAAwB3tN,SAAS,CAACgxN,gBAAgB,CAAG,WACjD,IAAI,CAACpC,qBAAqB,CAAG,EACjC,EAEAjB,GAAwB3tN,SAAS,CAACmoL,eAAe,CAAG,SAAU8oC,CAAY,CAAEvrC,CAAa,EACrF,IAAI,CAAC/V,QAAQ,CAAC,IAAI,CAACjmH,UAAU,EAAElpD,IAAI,CAAC,KAGhC,GAFA,IAAI,CAAC2zM,mBAAmB,CAAG,CAAC,EAAE,IAAI,CAACz9L,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,0CAA0C,EAAE,EAAE,IAAI,CAAC2rM,mBAAmB,CAAC,CAAC,CAE/I,CAACzuB,EACD,OAGJ,IAAIwrC,EAAgBD,IAAiB,IAAI,CAAC3G,QAAQ,CAACjpN,MAAM,CACzD,GAAI,QAAI,CAACipN,QAAQ,CAACjpN,MAAM,CAAQ,CAC5B,IAAI,CAACqV,QAAQ,CAACyjF,QAAQ,CAAC,EAAE,CAAClnE,aAAa,CAAC,mCAAmCxyB,KAAK,GAChF,MACJ,CAEA,IAAM0wN,EAAcD,EAAgB,IAAI,CAAC5G,QAAQ,CAACjpN,MAAM,CAAG,EAAI4vN,EACzDJ,EAAiBrvN,SAASyiC,cAAc,CAAC,CAAC,uBAAuB,EAAE,IAAI,CAACqmL,QAAQ,CAAC6G,EAAY,CAAC5+M,EAAE,CAAC,CAAC,EAGxGihM,CADI,IAAI,CAAC98L,QAAQ,CAAC/Y,eAAe,CAACkjK,uBAAuB,CAACgwD,IAAmBA,EAAe59L,aAAa,CAAC,yCAAwC,EACtIxyB,KAAK,EACrB,EACJ,EAEAktN,GAAwB3tN,SAAS,CAAC2vK,QAAQ,CAAG,SAAUjmH,CAAU,EAC7D,IAAI,CAACA,UAAU,CAAGA,EAClB,IAAI,CAAC0nK,sBAAsB,CAAC,IAC5B,IAAI,CAACjd,mBAAmB,CAAG,GAE3B,IAAM1zL,EAAW,IAAI,CAAC/J,QAAQ,CAACyB,EAAE,CAACuI,KAAK,GAevC,OAbA,IAAI,CAAC4tM,cAAc,CAAG,IAAI,CAAC53M,QAAQ,CAACrQ,QAAQ,CAAC,KACzC,IAAIikN,EAAW,IAAI,CAAC5zM,QAAQ,CAAC+nL,iBAAiB,CAACv5L,IAAI,CAACk3L,QAAQ,CACpC,KAApB,IAAI,CAAC1yI,UAAU,EACf4gK,CAAAA,EAAW,IAAI,CAACwD,sBAAsB,CAACzD,aAAa,CAAC,IAAI,CAAC3gK,UAAU,CAAE,IAAI,CAAC4gK,QAAQ,GAEvF,IAAI,CAACA,QAAQ,CAAGA,EAChB,IAAI,CAACyD,UAAU,CAAG,GAElB,IAAI,CAACwC,gBAAgB,GACrB,IAAI,CAACc,SAAS,CAAC,IAAI,CAAC9C,kBAAkB,EACtC9tM,EAAS3b,OAAO,EACpB,GAEO2b,EAAS/b,OAAO,EAG3BipN,GAAwB3tN,SAAS,CAAC2/I,IAAI,CAAG,SAAU2xE,CAAS,EACxD,IAAI,CAACpD,aAAa,CAAGoD,EACrB,IAAI,CAAChH,QAAQ,CAAC3qE,IAAI,CAAC,IAAI,CAACuuE,aAAa,CAAG,IAAI,CAACqD,cAAc,CAAG,IAAI,CAACC,eAAe,EAElF,IAAI,CAACpD,eAAe,CAAG,IAAI,CAACF,aAAa,CACnC,IAAI,CAACx3M,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,0CAC7C,IAAI,CAACkO,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,0CACvD,EAEAmlN,GAAwB3tN,SAAS,CAACuxN,cAAc,CAAG,SAAUlpJ,CAAC,CAAE2a,CAAC,SAC7D,EAAM9X,MAAM,CAAG8X,EAAE9X,MAAM,CACZ,GACA7C,EAAE6C,MAAM,CAAG8X,EAAE9X,MAAM,CACnB,EAEJ,CACX,EAEAyiJ,GAAwB3tN,SAAS,CAACwxN,eAAe,CAAG,SAAUnpJ,CAAC,CAAE2a,CAAC,SAC9D,EAAM9X,MAAM,CAAG8X,EAAE9X,MAAM,CACZ,GACA7C,EAAE6C,MAAM,CAAG8X,EAAE9X,MAAM,CACnB,EAEJ,CACX,EAEAyiJ,GAAwB3tN,SAAS,CAACuwN,gBAAgB,CAAG,WAC7C,KAAuBvsN,IAAvB,IAAI,CAACkB,IAAI,CAACk3L,QAAQ,EAClB,IAAI,CAAC+X,mBAAmB,CAAG,IAAI,CAACz9L,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,wCACxE,IAAI,CAAC2lN,cAAc,CAAG,GACtB,IAAI,CAACH,aAAa,CAAG,IACd,IAAI,CAAC9oN,IAAI,CAACk3L,QAAQ,CAAC/6L,MAAM,CAAG,GACnC,IAAI,CAAC8yM,mBAAmB,CAAG,IAAI,CAACz9L,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,sCACxE,IAAI,CAAC2lN,cAAc,CAAG,GACtB,IAAI,CAACH,aAAa,CAAG,KACd,IAAI,CAAC1D,QAAQ,CAACjpN,MAAM,CAAG,GAC9B,IAAI,CAAC8yM,mBAAmB,CAAG,IAAI,CAACz9L,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,wCACxE,IAAI,CAAC2lN,cAAc,CAAG,IAGtB,IAAI,CAACha,mBAAmB,CAAG,IAAI,CAACz9L,QAAQ,CAAC3O,oBAAoB,CAACS,SAAS,CAAC,6CAA8C,CAClH2B,MAAO,IAAI,CAACmgN,QAAQ,CAACjpN,MAAM,GAE/B,IAAI,CAAC2sN,aAAa,CAAG,GAE7B,EAEAL,GAAwB3tN,SAAS,CAACoxN,sBAAsB,CAAG,SAAUd,CAAa,EAC9E,IAAI,CAAC/B,kBAAkB,CAACkD,MAAM,GAC9B,IAAI,CAACxC,aAAa,CAACqB,GACnB,IAAI,CAACnC,cAAc,CAAG,EAC1B,EAEAR,GAAwB3tN,SAAS,CAACqxN,SAAS,CAAG,SAAUK,CAAW,EAC3C,OAAhBA,GAAwB,SAAI,CAAChoK,UAAU,EACvC,IAAI,CAACgpG,QAAQ,CAACkiD,qBAAqB,CAAC,KAChC8c,EAAYC,IAAI,CAAC,IAAI,CAACjoK,UAAU,CAAE,CAC9BkoK,eAAgB,GAChBC,cAAe,GACfC,mBAAoB,EACxB,EACJ,EAER,E,SExWAztN,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,cAAeu3M,IACpCA,GAAY/qN,OAAO,CAAG,EAAE,CAgBxBF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,wBAAyB4lN,IAC/CA,GAAsBhrN,OAAO,CAAG,CAAC,YAAa,UAAW,uBAAwB,gBAAiB,SAAS,CAgB3GgrN,GAAsBvvN,SAAS,CAAC6vN,gBAAgB,CAAG,SAAU79M,CAAE,EAE3D,OADA,IAAI,CAACuL,OAAO,CAAG,GACR,IAAI,CAAC7G,QAAQ,CAACi5M,aAAa,CAACr5K,gBAAgB,CAACtkC,GAAIxR,IAAI,CACxD,UAAU0M,CAAQ,EACd,GAAI,CAACA,EAAU,CACX,IAAI,CAAC6kN,OAAO,GACZ,MACJ,CAEI7kN,CAAoC,IAApCA,EAAS8kN,sBAAsB,EAE/B,IAAI,CAACpC,QAAQ,CAAG1iN,EAAS+kN,QAAQ,CACjC,IAAI,CAAC/nF,YAAY,CAAG,IACb,IAAI,CAACxzH,QAAQ,CAACo0B,QAAQ,CAACx5B,GAAG,GAAGxN,OAAO,CAAC,UAAY,KAExD,IAAI,CAAC8rN,QAAQ,CAAG,EAAE,CAClB,IAAI,CAAC1lF,YAAY,CAAG,IAAI,CAACniI,oBAAoB,CAACS,SAAS,CAAC,8CAGxD,WAAI,CAAC0hI,YAAY,EAAa,SAAI,CAACA,YAAY,CAC/C,IAAI,CAACgoF,aAAa,CAAG,IAAI,CAAChoF,YAAY,CAC/B,QAAI,CAAC0lF,QAAQ,CAACvuN,MAAM,CAC3B,IAAI,CAAC6wN,aAAa,CAAG,IAAI,CAACnqN,oBAAoB,CAACS,SAAS,CAAC,uCAEzD,IAAI,CAAC0pN,aAAa,CAAG,IAAI,CAACnqN,oBAAoB,CAACS,SAAS,CAAC,6CAG7D,IAAI,CAAC+U,OAAO,CAAG,GACf,IAAI,CAAC7G,QAAQ,CAACX,KAAK,CAAC4U,KAAK,CAAC,yBAA0B,GAAM,GAC9D,GAAEnsB,IAAI,CAAC,IAAI,EACX,IAAI,CAACuzN,OAAO,CAACvzN,IAAI,CAAC,IAAI,EAE9B,EAEA+wN,GAAsBvvN,SAAS,CAAC+xN,OAAO,CAAG,SAAU3sN,CAAS,EACzD,IAAI,CAACmY,OAAO,CAAG,GACf,IAAI,CAAC2sH,YAAY,CAAG,IAAI,CAACniI,oBAAoB,CAACS,SAAS,CAAC,8CACxD,IAAI,CAACkO,QAAQ,CAACX,KAAK,CAAC4U,KAAK,CAAC,yBAA0B,GAAM,GAC9D,EAEA4kM,GAAsBvvN,SAAS,CAACmyN,qBAAqB,CAAG,SAAUC,CAAY,CAAE1uN,CAAK,EACjF,IAAI2uN,EAAgB,IAAI,CAAC37M,QAAQ,CAACpT,MAAM,CAAC,cAAc8uN,EAAc,YACjEE,EAAgB,IAAI,CAAC57M,QAAQ,CAACpT,MAAM,CAAC,cAAc8uN,EAAc,gBAEjE1sL,EAAc,IAAI,CAAC39B,oBAAoB,CAACS,SAAS,CAAC,gDAAiD,CACnGo3C,KAAMyyK,EACNvnM,KAAMwnM,CACV,GASA,OAPI,QAAI,CAAC1C,QAAQ,CAACvuN,MAAM,CACpBqkC,GAAe,IAAM,IAAI,CAAC39B,oBAAoB,CAACS,SAAS,CAAC,wDAClD9E,IAAAA,EACPgiC,GAAe,IAAM,IAAI,CAAC39B,oBAAoB,CAACS,SAAS,CAAC,wDAClD9E,IAAU,IAAI,CAACksN,QAAQ,CAACvuN,MAAM,CAAG,GACxCqkC,CAAAA,GAAe,IAAM,IAAI,CAAC39B,oBAAoB,CAACS,SAAS,CAAC,wDAAuD,EAE7Gk9B,CACX,E,kBE9FArhC,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,qBAAsB+3M,IAC3CA,GAAmBvrN,OAAO,CAAG,CAAC,uBAAuB,C,+FEUrD,SAASguN,GAAsBxqN,CAAoB,EAC/C,IAAI,CAACA,oBAAoB,CAAGA,CAChC,CAHAwqN,GAAsBhuN,OAAO,CAAG,CAAC,uBAAuB,CAKxDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,eAbQ,CACzBC,SAAU,CACNozH,KAAM,GACV,EACAhzH,SCTW,0IDUXC,WAAY4oN,EAChB,G,2HELO,OAAMC,GACQC,OACAC,CAAAA,kBACAC,CAAAA,oBACAC,CAAAA,gBACTC,CAAAA,qBAA4C,IAAK,aAE7CC,CAAe,CAAEC,CAAqC,CAAEC,CAAsD,CAAE,CACxH,IAAI,CAACP,OAAO,CAAGK,EACf,IAAI,CAACJ,kBAAkB,CAAGK,EAC1B,IAAI,CAACH,gBAAgB,CAAGI,EACxB,IAAI,CAACL,oBAAoB,CAAGG,EAAO30D,OAAO,CAACphI,SAAS,CAAEC,GAAU,IAAI,CAACi2L,qBAAqB,CAACj2L,GAC/F,CAEOo4B,SAAgB,CACe,OAA9B,IAAI,CAACy9J,oBAAoB,EACzB,IAAI,CAACA,oBAAoB,CAACngG,WAAW,GAGzC,IAAMwgG,EAAc,IAAI,CAACT,OAAO,CAACU,WAAW,EACxB,QAAhBD,GACA,IAAI,CAACE,0BAA0B,CAACF,GAGpC,IAAI,CAACP,oBAAoB,CAACjgG,WAAW,EACzC,CAEQugG,sBAAsBj2L,CAAyB,CAAQ,CAC3D,GAAIA,EAAMxH,SAAS,CAAE,CACjB,IAAI,CAACq9L,oBAAoB,CAAG,IAAI,CAACH,kBAAkB,CAAC31L,SAAS,CAAEsH,GAAY,IAAI,CAACgvL,cAAc,CAACr2L,EAAM81L,MAAM,CAAEzuL,IAC7G,IAAI,CAACivL,wBAAwB,CAACt2L,EAAM81L,MAAM,EAC1C,MACJ,CAEkC,OAA9B,IAAI,CAACD,oBAAoB,GACzB,IAAI,CAACA,oBAAoB,CAACngG,WAAW,GACrC,IAAI,CAACmgG,oBAAoB,CAAG,KAEpC,CAEQQ,eAAeH,CAA4B,CAAE7uL,CAAe,CAAQ,CACxE,IAAMkvL,EAAmB,IAAI,CAACd,OAAO,CAACv7C,MAAM,CAACs8C,aAAa,CAACnvL,GACrDovL,EAAeP,EAAYhuN,IAAI,CAACwuN,SAAS,CAACC,MAAM,CAACJ,GACjDK,EAAgBV,EAAYhuN,IAAI,CAAC2uN,OAAO,CAACJ,GAE/CP,EAAYl9M,KAAK,CAAC89M,aAAa,CAACF,GAChCV,EAAYzyN,KAAK,EACrB,CAEQ6yN,yBAAyBJ,CAA4B,CAAQ,CACjE,IAAK,IAAMjwN,KAAW,IAAI,CAAC2vN,gBAAgB,CACf,OAApB3vN,EAAQ47G,OAAO,EACfq0G,EAAYa,EAAE,CAAC3+C,YAAY,CAACxvK,GAAG,CAAC3C,EAAQ47G,OAAO,CAG3D,CAEQu0G,2BAA2BF,CAA4B,CAAQ,CACnE,IAAK,IAAMjwN,KAAW,IAAI,CAAC2vN,gBAAgB,CACf,OAApB3vN,EAAQ47G,OAAO,EACfq0G,EAAYa,EAAE,CAAC3+C,YAAY,CAAC/tK,MAAM,CAACpE,EAAQ47G,OAAO,CAG9D,CACJ,CC/DO,IAAMm1G,GAAgC,CAACjB,EAAuCkB,IAC1EC,GAAc11N,IAAI,CAAC,KAAMu0N,EAAmBkB,GAGvD,SAASC,GAAcnB,CAAqC,CAAEkB,CAA+C,CAAEnB,CAAe,EAC1H,IAAMqB,EAA0B,IAAI3B,GAAwBM,EAAQC,EAAmBkB,GACvF,MAAO,KACHE,EAAwB/+J,OAAO,EACnC,CACJ,C,gECAO,OAAMg/J,WAA+B99C,GAAAA,SAASA,CACjD,OAAcC,YAAyCC,GAAAA,CAAgB,CACtDC,WACAC,CAAAA,OAA8B,aAEnChjI,CAAkC,CAAEijI,CAAyB,CAAE,CACvE,KAAK,CAACjjI,GACN,IAAI,CAAC+iI,WAAW,CAAGG,CAAAA,EAAAA,GAAAA,SAAAA,IAEnB,IAAI,CAACF,OAAO,CAAG,CACXG,WAAY,CACRC,GAAAA,CAAUA,CACVC,GAAAA,CAAuBA,CACvBi9C,GAA8B,IAAI,CAACtgL,KAAK,CAACq/K,iBAAiB,CAAE,IAAI,CAACr/K,KAAK,CAACugL,gBAAgB,EACvFj9C,GAAAA,CAAgBA,CACnB,CACDC,gBAAiBN,EAAQ1zK,OAAO,CAChCi0K,OAAQC,GAAAA,CAAsBA,CAC9Bx/E,YAAa,IAAI,CAACjkD,KAAK,CAACikD,WAAW,CACnCy/E,gBAAiB,CAAEC,OAAQ,CAAEpB,OAAQ,IAAI,CAACviI,KAAK,CAACuiI,MAAO,CAAE,EACzDqB,aAAcC,GAAAA,CAClB,CACJ,CAEOjW,QAAuB,CAC1B,MACI,YAACkW,MAAAA,CAAIjhE,UAAU,0CACX,WAACihE,MAAAA,CAAIC,YAAU,mCAAmClhE,UAAU,6BAA6BkR,IAAK,IAAI,CAACgvD,WAAW,GAC9G,WAACiB,GAAAA,CAAUA,CAAVA,CACGvsK,UAAW,IAAI,CAACuoC,KAAK,CAACvoC,SAAS,CAC/BwsK,eAAgB,IAAI,CAACjkI,KAAK,CAACikI,cAAc,CACzCvuH,UAAW,IAAI,CAAC1V,KAAK,CAAC0V,SAAS,CAC/BmtD,UAAW,CAAC,8DAA8D,EAAE,IAAI,CAAC7iE,KAAK,CAAC6iE,SAAS,EAAI,GAAG,CAAC,CACxGlyE,QAAS,IAAI,CAACqP,KAAK,CAACrP,OAAO,CAC3Bh6B,OAAQ,IAAI,CAACqsK,OAAO,CACpBnrK,SAAU,IAAI,CAACmoC,KAAK,CAACnoC,QAAQ,CAC7ButB,QAAS8+I,GAAAA,CAAgBA,CACzBh7I,SAAU,IAAI,CAAC8W,KAAK,CAAC9W,QAAQ,CAC7Bk5I,uBAAwB,IAAI,CAACpiI,KAAK,CAACoiI,sBAAsB,CACzDl3D,WAAY,IAAI,CAAC63D,WAAW,KAI5C,CACJ,CCnDO,IAAM49C,GAAsF3gL,GAE3F,WAACmkI,GAAAA,CAAcA,CAAdA,CAAAA,SACG,WALyBu8C,GAKxBt8C,CACG3sK,UAAWuoC,EAAMvoC,SAAS,CAC1BwsK,eAAgBjkI,EAAMikI,cAAc,CACpCvuH,UAAW1V,EAAM0V,SAAS,CAC1BmtD,UAAW7iE,EAAM6iE,SAAS,CAC1BlyE,QAASqP,EAAMrP,OAAO,CACtB94B,SAAUmoC,EAAMnoC,QAAQ,CACxBqxB,SAAU8W,EAAM9W,QAAQ,CACxBk5I,uBAAwBpiI,EAAMoiI,sBAAsB,CACpDn+E,YAAajkD,EAAMikD,WAAW,CAC9Bo7H,kBAAmBr/K,EAAMq/K,iBAAiB,CAC1CkB,iBAAkBvgL,EAAMugL,gBAAgB,CACxCh+C,OAAQviI,EAAMuiI,MAAM,K,oDCrB7B,IAAMq+C,GAAeC,GAAAA,CAAWA,CAACC,SAAS,CAA6B,YAE9EF,GAAa1uN,GAAG,CACZ,QACA6uN,CAAAA,EAAAA,GAAAA,CAAAA,EAAW,IAAM,uCAGrBH,GAAa1uN,GAAG,CACZ,QACA6uN,CAAAA,EAAAA,GAAAA,CAAAA,EAAW,IAAM,sCAGrBH,GAAa1uN,GAAG,CACZ,QACA6uN,CAAAA,EAAAA,GAAAA,CAAAA,EAAW,IAAM,sCAGrBH,GAAa1uN,GAAG,CACZ,QACA6uN,CAAAA,EAAAA,GAAAA,CAAAA,EAAW,IAAM,sC,yBCpBrB,SAAU,woCCQH,OAAMC,WAA8Bp+C,GAAAA,SAASA,CAC/Bq+C,eACAC,CAAAA,eAA4Ch+C,CAAAA,EAAAA,GAAAA,SAAAA,GAC5Ci+C,CAAAA,0BAA0E,IAAI,CAACC,oBAAoB,CAACt2N,IAAI,CAAC,IAAI,CAAE,aAEpHk1C,CAAkC,CAAE,CAC5C,KAAK,CAACA,GACN,IAAI,CAACihL,eAAe,CAAG,IAAI/oD,GAAAA,CAC/B,CAEOmpD,sBAA6B,CAChC,IAAI,CAACJ,eAAe,CAAC/rJ,QAAQ,EACjC,CAEO04F,QAAuB,CAC1B,IAAM0zD,EAAaV,GAAa9rN,SAAS,CAAC,6DAC1C,MACI,YAACysN,GAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACG,WAACZ,GAAAA,CACGlpN,UAAW,IAAI,CAACuoC,KAAK,CAACvoC,SAAS,CAC/Bi+C,UAAW,IAAI,CAAC1V,KAAK,CAAC0V,SAAS,CAC/BmtD,UAAU,gCACVlyE,QAAS,IAAI,CAACqP,KAAK,CAACrP,OAAO,CAC3B94B,SAAS,0BACTqxB,SAAU,IAAI,CAAC8W,KAAK,CAAC9W,QAAQ,CAC7Bq5I,OAAQ,IAAI,CAACviI,KAAK,CAACuiI,MAAM,CACzBt+E,YAAa,IAAI,CAACjkD,KAAK,CAACikD,WAAW,CACnCo7H,kBAAmB,IAAI,CAAC4B,eAAe,CAAC7oD,YAAY,GACpDmoD,iBAAkB,CAAC,IAAI,CAACW,cAAc,CAAC,CACvC9+C,uBAAwB,IAAI,CAACpiI,KAAK,CAACoiI,sBAAsB,GAE7D,WAAC0B,MAAAA,CAAIjhE,UAAU,4CAA4CkR,IAAK,IAAI,CAACmtG,cAAc,UAC/E,WAAC/8C,GAAAA,CAAcA,CAAdA,CAAAA,SACG,WAACq9C,GAAAA,CAAiBA,CAAjBA,CACG/pN,UAAW6pN,EACXG,gBAAgB,yCAChBC,cAAeJ,EACfh/M,MAAO,IAAI,CAAC09B,KAAK,CAAC2hL,UAAU,CAC5BriD,aAAc,IAAI,CAAC6hD,yBAAyB,CAC5CS,aAAcC,GAAAA,CAAAA,EAAAA,EAAAA,GAAAA,EAMtC,CAEQT,qBAAqBj6L,CAAkC,CAAQ,CACnE,IAAI,CAAC85L,eAAe,CAAC9lK,IAAI,CAACh0B,EAAK26L,SAAS,CAC5C,CACJ,CCxDAnxN,EAAAA,CAAUA,CAACgF,SAAS,CAAC,wBAAyB03I,CAAAA,EAAAA,GAAAA,aAAAA,EAAc2zE,GAAuB,CAAC,UAAW,YAAa,WAAY,SAAU,cAAe,YAAa,aAAc,yBAAyB,GCE9L,IAAMe,GAAmC,CAC5CnsN,SAAU,CACN8/C,UAAW,ICPfmtD,UAAW,KACXlyE,QAAS,KACTn5B,MAAO,IACP0xB,SAAU,IACV+6D,YAAa,KACb09H,WAAY,IACZ5wC,SAAU,GDEiC,EAE3C7tF,QAAS,CACLw0H,gBAAiB,kBACrB,EACAzhN,WAAYwhN,GACZ9/L,KAAM,yBACN3hB,SEhBW,6UFiBf,EAEArF,EAAAA,CAAUA,CAACgF,SAAS,CAACosN,GAAiCpqM,IAAI,CAAEoqM,GGZL,OAEjDC,WAAwC5tN,EAAAA,CAAWA,CACrDrD,YAAYsD,CAAoB,CAAEghN,CAAc,CAAE,CAC9C,KAAK,GAEL,IAAI,CAAC9gN,0BAA0B,CAAGA,EAAAA,CAClC,KAAI,CAACF,oBAAoB,CAAGA,EAC5B,IAAI,CAACghN,cAAc,CAAGA,EAEtB,IAAI,CAAC4M,eAAe,CAAG,IAAI,CAACC,kBAAkB,GAC9C,IAAI,CAACC,mBAAmB,CAAG,wBAC3B,IAAI,CAACvtN,sBAAsB,CAAG,4BAC9B,IAAI,CAACwtN,kBAAkB,CAAGzvF,CAAAA,EAAAA,GAAAA,CAAAA,IAC1B,IAAI,CAACr+H,iBAAiB,CAAG,GACzB,IAAI,CAACouK,iBAAiB,CAAG,GAEzB,IAAI,CAAC2/C,cAAc,CAAG,IAAI,CAACC,cAAc,CAACx3N,IAAI,CAAC,IAAI,CACvD,CAEAy3N,cAAe,CACX,IAAI,CAAChwC,MAAM,CAAC,CACRlgJ,WAAY,IAAI,CAACgjL,cAAc,CAAC5mB,+BAA+B,CAAC,IAAI,CAACtoK,MAAM,CAAE,IAAI,CAAC+wJ,OAAO,EACzF33D,QAAS,CAAEijG,yBAA0B,IAAI,CAACr8L,MAAM,CAAE8tJ,QAAS,IAAI,CAACiD,OAAO,CAC3E,GAEA,IAAI,CAAC+qC,eAAe,CAAG,IAAI,CAACC,kBAAkB,EAClD,CAEAA,oBAAqB,CACjB,OAAO,IAAI,CAAC/7L,MAAM,GAAK,IAAI,CAAC5xB,0BAA0B,CAAC0/F,MAAM,CAACE,QAAQ,CAChE,IAAI,CAAC9/F,oBAAoB,CAACS,SAAS,CAAC,+DACpC,IAAI,CAACT,oBAAoB,CAACS,SAAS,CAAC,gEAC9C,CAEAwtN,eAAeprC,CAAO,CAAE,CACpB,IAAI,CAACA,OAAO,CAAGA,EACf,IAAI,CAACqrC,YAAY,EACrB,CACJ,CAcAP,GAAgCnxN,OAAO,CAAG,CAAC,uBAAwB,iBAAiB,CACpFF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,yBAbiB,CAClCC,SAAU,CACNwC,QAAS,IACT8+K,QAAS,IACT/wJ,OAAQ,IACRosJ,OAAQ,IACRkwC,mBAAoB,GACxB,EACAzsN,SCxDW,imDDyDXC,WAAY+rN,EAChB,EElDkD,OAE5CU,WAAoCtuN,EAAAA,CAAWA,CACjDrD,YAAYsD,CAAoB,CAAEghN,CAAc,CAAE,CAC9C,KAAK,GAEL,IAAI,CAAChhN,oBAAoB,CAAGA,EAC5B,IAAI,CAACghN,cAAc,CAAGA,EACtB,IAAI,CAACn2F,gBAAgB,CAAGA,GAAAA,CACxB,KAAI,CAACg4D,OAAO,CAAG,IAAI,CAACh9K,QAAQ,CAAC+5K,OAAO,CAEpC,IAAI,CAAC0uC,QAAQ,CAAG,IAAI,CAACC,YAAY,GACjC,IAAI,CAACx8L,UAAU,CAAG,IAAI,CAACy8L,cAAc,EACzC,CAEArqG,WAAW+G,CAAO,CAAE,CAChB,IAAI,CAACojG,QAAQ,CAAG,IAAI,CAACC,YAAY,GACjC,IAAI,CAACx8L,UAAU,CAAG,IAAI,CAACy8L,cAAc,GACrC,IAAI,CAAC3rC,OAAO,CAAG,IAAI,CAACh9K,QAAQ,CAAC+5K,OAAO,CAEhC,IAAI,CAAC6uC,WAAW,CAACvjG,IACjB,IAAI,CAACgzD,MAAM,CAAC,CACRlgJ,WAAY,IAAI,CAACgjL,cAAc,CAAC5mB,+BAA+B,CAAC,IAAI,CAACtoK,MAAM,CAAE,IAAI,CAAC+wJ,OAAO,EACzF33D,QAAS,CAAEijG,yBAA0B,IAAI,CAACtoN,QAAQ,CAACsoN,wBAAwB,CAAEvuC,QAAS,IAAI,CAACiD,OAAO,CACtG,EAER,CAEA0rC,cAAe,CACX,OAAO,IAAI,CAAC1oN,QAAQ,CAACsoN,wBAAwB,GAAKjuN,EAAAA,CAA0BA,CAAC0/F,MAAM,CAACE,QAAQ,CAAG,wBAA0B,2BAA2B,CAGxJ0uH,gBAAiB,CACb,OAAO,IAAI,CAAC3oN,QAAQ,CAACsoN,wBAAwB,GAAKjuN,EAAAA,CAA0BA,CAAC0/F,MAAM,CAACE,QAAQ,CACtF,IAAI,CAAC9/F,oBAAoB,CAACS,SAAS,CAAC,wDACpC,IAAI,CAACT,oBAAoB,CAACS,SAAS,CAAC,2DAC9C,CAEAguN,YAAYvjG,CAAO,CAAE,CACjB,OAAOA,KAAiBjvH,IAAjBivH,EAAQ9gC,IAAI,EAAkB8gC,EAAQ9gC,IAAI,CAAC6mE,YAAY,GAAK,IAAI,CAACpmC,gBAAgB,CAAC/yB,IAAI,CAGjG42H,aAAa1wL,CAAU,CAAEktF,CAAO,CAAE,CAC9B,IAAI,CAACgzD,MAAM,CAAC,CACRlgJ,WAAYA,EACZktF,QAASA,CACb,EACJ,CACJ,CCtCA,SAASyjG,GAAmBC,CAAO,CAAEC,CAAW,CAAE/9M,CAAS,CAAEvM,CAAU,EACnE,IAAI,CAACuqN,QAAQ,CAAGF,EAChB,IAAI,CAACG,YAAY,CAAGF,EACpB,IAAI,CAACG,SAAS,CAAGl+M,EACjB,IAAI,CAACwG,WAAW,CAAG/S,CACvB,CD8CA8pN,GAA4B7xN,OAAO,CAAG,CAAC,uBAAwB,iBAAiB,CAChFF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,qBAZa,CAC9BC,SAAU,CACNsE,SAAU,IACVukF,KAAM,IACN8zF,OAAQ,IACRkwC,mBAAoB,GACxB,EACAzsN,SEjEW,muBFkEXC,WAAYysN,EAChB,GCrCAM,GAAmB12N,SAAS,CAACg3N,yBAAyB,CAAG,SAAUnqN,CAAM,CAAEoqN,CAAM,EAC7E,GAAI,IAAI,CAACJ,QAAQ,CACb,OAAO,IAAI,CAACx3M,WAAW,CAAC20J,aAAa,CAACnnK,EAAOf,OAAO,CAAE,GAAI,IAE1D,IAAI8qN,EAAc,EAAE,CACpB,IAAK,IAAI31N,KAAO,IAAI,CAAC61N,YAAY,CACT9yN,KAAAA,IAAhB6I,CAAM,CAAC5L,EAAI,EACX21N,EAAY9wN,IAAI,CAAC,CAAE7E,IAAK,IAAI,CAAC61N,YAAY,CAAC71N,EAAI,CAAEV,MAAOsM,CAAM,CAAC5L,EAAI,GAI1E,MAAO,CAACg2N,EAAS,GAAK,GAAE,EAAK,IAAI,CAAC53M,WAAW,CAAC3R,aAAa,CAAC,IAAI,CAACqpN,SAAS,CAACzlN,GAAG,GAAIslN,EAE1F,EAQAF,GAAmB12N,SAAS,CAACk3N,2BAA2B,CAAG,SAAUprN,CAAO,CAAEuE,CAAQ,CAAE8mN,CAAM,EAC1F,OAAO,IAAI,CAAC93M,WAAW,CAAC20J,aAAa,CAACloK,EAASuE,EAAU8mN,CAAW,IAAXA,EAC7D,EAEA9yN,EAAAA,CAAUA,CAACqI,QAAQ,CAAC,qBApDpB,WACI,IAAI,CAACrC,MAAM,CAAG,CACVssN,QAAS,GACTC,YAAa,IACjB,EAEA,IAAI,CAAC9pN,IAAI,CAAG,CACR,YACA,aACA,SAAU+L,CAAS,CAAEvM,CAAU,EAC3B,OAAO,IAAIoqN,GAAmB,IAAI,CAACrsN,MAAM,CAACssN,OAAO,CAAE,IAAI,CAACtsN,MAAM,CAACusN,WAAW,CAAE/9M,EAAWvM,EAC3F,EACH,EET2C,OAE1C8qN,WAAkCtvN,EAAAA,CAAWA,CAC/CrD,YAAY4yN,CAAkB,CAAEx+M,CAAS,CAAE9Q,CAAoB,CAAEuvN,CAAU,CAAE,CACzE,KAAK,GAEL,IAAI,CAAC1kG,gBAAgB,CAAGA,GAAAA,CACxB,KAAI,CAAC2kG,mBAAmB,CAAGF,EAC3B,IAAI,CAACr4M,UAAU,CAAGnG,EAClB,IAAI,CAAC9Q,oBAAoB,CAAGA,EAC5B,IAAI,CAACuvN,UAAU,CAAGA,EAElB,IAAI,CAACE,UAAU,CAAG,EACtB,CAEAtrG,YAAa,CACT,IAAK,IAAIhoH,EAAI,EAAGA,EAAI,IAAI,CAACswM,iBAAiB,CAACnzM,MAAM,CAAE6C,IAC/C,IAAI,CAACswM,iBAAiB,CAACtwM,EAAE,CAACk0E,GAAG,CAAG,IAAI,CAACm/I,mBAAmB,CAACP,yBAAyB,CAC9E,CACIx3B,WAAY,IAAI,CAACA,UAAU,CAC3B1zL,QAAS,IAAI,CAAC0oM,iBAAiB,CAACtwM,EAAE,CAACsb,OAAO,CAC1Ci4M,SAAU,IAAI,CAACtlI,IAAI,GAAK,IAAI,CAACygC,gBAAgB,CAACl3B,IAAI,EAEtD,IAAI,CAACvJ,IAAI,GAAK,IAAI,CAACygC,gBAAgB,CAACjzB,GAAG,EAGvC,IAAI,CAACxN,IAAI,GAAK,IAAI,CAACygC,gBAAgB,CAACjzB,GAAG,GACvC,IAAI,CAAC3gF,UAAU,CAAC1N,GAAG,CAAC,IAAI,CAACkjM,iBAAiB,CAACtwM,EAAE,CAACk0E,GAAG,EACjD,IAAI,CAACp9D,QAAQ,IAGjB,IAAI,CAACw8M,UAAU,CAAG,IAAI,CAACzvN,oBAAoB,CAACS,SAAS,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC2pF,IAAI,CAAC,CAAC,CAEzF,CAEAulI,eAAe5rN,CAAO,CAAE,CACpB,IAAK,IAAI5H,EAAI,EAAGA,EAAI,IAAI,CAACswM,iBAAiB,CAACnzM,MAAM,CAAE6C,IAC/C,GAAI4H,IAAY,IAAI,CAAC0oM,iBAAiB,CAACtwM,EAAE,CAACsb,OAAO,CAAE,CAC/C,IAAI,CAACg1L,iBAAiB,CAACzuM,MAAM,CAAC7B,EAAG,GACjC,KACJ,CAGJ,IAAI,CAAC+hL,MAAM,CAAC,CACR2b,UAAW,IAAI,CAAC4S,iBAAiB,EAEzC,CACJ,CAcA4iB,GAA0B7yN,OAAO,CAAG,CAAC,qBAAsB,YAAa,uBAAwB,aAAa,CAC7GF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,mBAbW,CAC5BC,SAAU,CACNk2L,WAAY,IACZgV,kBAAmB,IACnBriH,KAAM,IACN8zF,OAAQ,IACRjrK,SAAU,GACd,EACAtR,SC/DW,iyCDgEXC,WAAYytN,EAChB,G,gBE/DA,SAAU,6GCGH,IAAMO,GAA2DjkL,GAEhE,WAAC8jI,MAAAA,CAAIjhE,UAAU,sBACX,WAACqhH,GAAAA,CAAMA,CAANA,CAAOzsN,UAAWuoC,EAAMmkL,eAAe,CAAE12M,KAAMuyB,EAAMokL,YAAY,CAACC,UAAU,UACzE,WAACC,OAAAA,CAAKzhH,UAAU,sBAAsBkhE,YAAU,mCAC3C/jI,EAAMokL,YAAY,CAACh+L,UAAU,M5GVtC63F,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,QAAAA,CAAAA,WAAAA,EAAAA,OAAAA,CAAAA,UAAAA,EAAAA,QAAAA,CAAAA,W6GCL,IAAMsmG,GAA8B,CACvCC,OAAQ,UACRn9H,KAAMo9H,E,OAAAA,CACV,ECUA,SAASC,GAAyBrwN,CAAoB,EAClD,IAAI,CAACA,oBAAoB,CAAGA,CAChC,CCbA1D,EAAAA,CAAUA,CAACgF,SAAS,CAAC,mBAAoB03I,CAAAA,EAAAA,GAAAA,aAAAA,ECGU,KAC/C,IAAMs3E,EAAc/D,GAAa9rN,SAAS,CAAC,iDACrCsvN,EAAe,CACjBC,WAAYE,GACZp+L,OAAQ83F,EAAe2mG,QAAQ,CAC/Bx+L,WAAYw6L,GAAa9rN,SAAS,CAAC,8BACvC,EACA,MAAO,WAACmvN,GAAAA,CAAeG,aAAcA,EAAcD,gBAAiBQ,CAAAA,EACxE,IFDAD,GAAyB7zN,OAAO,CAAG,CAAC,uBAAuB,CAK3DF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,kBAbW,CAC5BC,SAAU,CACNsE,SAAU,GACd,EACAlE,SGTW,ycHUXC,WAAYyuN,EAChB,G,qCIRA/zN,EAAAA,CAAUA,CAACgF,SAAS,CAAC,cAAe03I,CAAAA,EAAAA,GAAAA,aAAAA,EAAcw3E,GAAAA,CAAWA,CAAE,CAAC,OAAQ,WAAW,G,QCGtC,OAEvCC,WAA+B1wN,EAAAA,CAAWA,CAC5CrD,YAAYsD,CAAoB,CAAE,CAC9B,KAAK,GAEL,IAAI,CAAC0wN,eAAe,CAAG1wN,EAAqBS,SAAS,CAAC,gDACtD,IAAI,CAACkwN,SAAS,CAAG3wN,EAAqBS,SAAS,CAAC,mCAChD,IAAI,CAACmwN,WAAW,CAAGA,GAAAA,CAAWA,CAACjpM,QAAQ,GACvC,IAAI,CAACkpM,aAAa,CAAG,2BACzB,CACJ,CCHA,SAASC,KAAwB,CDajCL,GAAuBj0N,OAAO,CAAG,CAAC,uBAAuB,CACzDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,gBATW,CAC5BC,SAAU,CACNsE,SAAU,GACd,EACAlE,SEvBW,ieFwBXC,WAAY6uN,EAChB,GCbAK,GAAqBt0N,OAAO,CAAG,EAAE,CAIjCF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,cAZO,CACxBC,SAAU,CACNsE,SAAU,GACd,EACAlE,SERW,kLFSXC,WAAYkvN,EAChB,EGLO,OAAMC,GACTr0N,YAAYmR,CAAI,CAAE7N,CAAoB,CAAE8N,CAAe,CAAE,CACrD,IAAI,CAACkjN,KAAK,CAAGnjN,EACb,IAAI,CAACqJ,gBAAgB,CAAGpJ,EACxB,IAAI,CAACqJ,qBAAqB,CAAGnX,CACjC,CAEA69K,qBAAqBozC,CAAc,CAAE,CACjC,MAAO,CAAC,EAAE,IAAI,CAAC/5M,gBAAgB,CAAC3G,YAAY,CAAC,2BAA2B,EAAE0gN,EAAe,8BAA8B,CAAC,CAG5HC,aAAa9iG,CAAY,CAAE,CACvB,IAAM+iG,EAAY,CACdluN,MAAO,GACP+vF,KAAM,GACNo+H,UAAWhjG,EAAajrD,MAAM,CAC9B8tD,OAAQ,CAAE,GAAG7C,EAAaiD,MAAM,CAAE55G,QAAS22G,EAAa32G,OAAO,CACnE,EAUA,OARI22G,EAAa3uG,OAAO,GAAKpZ,GAAAA,CAAoBA,CAAC8yF,iBAAiB,CAACC,QAAQ,EAAIg1B,EAAaY,YAAY,GAAK3oH,GAAAA,CAAoBA,CAACC,cAAc,CAACqyF,cAAc,EAC5Jw4H,EAAUluN,KAAK,CAAGmrH,EAAawvD,MAAM,CAACjuJ,IAAI,CAC1CwhM,EAAUn+H,IAAI,CAAG,IAAI,CAAC6qF,oBAAoB,CAACzvD,EAAawvD,MAAM,CAACE,YAAY,IAE3EqzC,EAAUluN,KAAK,CAAG,IAAI,CAACkU,qBAAqB,CAAC1W,SAAS,CAAC,CAAC,6BAA6B,EAAE2tH,EAAa3uG,OAAO,CAAC,MAAM,EAAE2uG,EAAaY,YAAY,CAAC,CAAC,EAC/ImiG,EAAUn+H,IAAI,CAAG,IAAI,CAACg+H,KAAK,CAAChvM,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC9K,gBAAgB,CAACvC,yBAAyB,CAAC,gBAAgB,EAAEy5G,EAAa3uG,OAAO,CAAC,IAAI,CAAC,GAG9I0xM,CACX,CACJ,CAEAJ,GAA2Bv0N,OAAO,CAAG,CAAC,OAAQ,uBAAwB,kBAAkB,CACxFF,EAAAA,CAAUA,CAACC,OAAO,CAAC,6BAA8Bw0N,GChCF,OAEzCM,WAAuBtxN,EAAAA,CAAWA,CACpCrD,YAAYskN,CAAc,CAAEz8M,CAAU,CAAE,CACpC,KAAK,GAEL,IAAI,CAAC8B,oBAAoB,CAAGA,GAAAA,CAC5B,KAAI,CAAC66M,eAAe,CAAGF,EACvB,IAAI,CAACz8M,UAAU,CAAGA,CACtB,CAEA4/G,WAAW+G,CAAO,CAAE,CACKjvH,KAAAA,IAAjBivH,EAAQ/tH,IAAI,EACZ,IAAI,CAACm0N,kBAAkB,EAE/B,CAEAA,oBAAqB,CACjB,IAAI,CAACC,UAAU,CAAG,GAClB,IAAI,CAACC,UAAU,CAAG,GAEU,OAAxB,IAAI,CAACr0N,IAAI,CAAC6f,SAAS,EAAa,IAAI,CAACy0M,cAAc,GAAK,IAAI,CAACt0N,IAAI,CAACsa,OAAO,GACzE,IAAI,CAAC+5M,UAAU,CAAG,IAAI,CAACtQ,eAAe,CAACxlB,eAAe,CAAC,IAAI,CAACv+L,IAAI,CAAC6f,SAAS,EAE5C/gB,KAAAA,IAA1B,IAAI,CAACkB,IAAI,CAACo1D,WAAW,EAAkB,WAAI,CAACp1D,IAAI,CAACo1D,WAAW,EAC5D,KAAI,CAACg/J,UAAU,CAAG,IAAI,CAACG,mBAAmB,EAAC,GAI/C,YAAI,CAACv0N,IAAI,CAAC+8M,aAAa,EAAa,WAAI,CAAC/8M,IAAI,CAACg9M,cAAc,GAC5D,KAAI,CAACwX,YAAY,CAAG,IAAI,CAACzQ,eAAe,CAACvlB,qBAAqB,CAAC,IAAI,CAACx+L,IAAI,CAAC+8M,aAAa,CAAE,IAAI,CAAC/8M,IAAI,CAACg9M,cAAc,EAExH,CAEAuX,qBAAsB,CAClB,IAAME,EAAe,IAAI,CAACz0N,IAAI,CAAC00N,WAAW,CAAG,IAAI,CAAC10N,IAAI,CAACsa,OAAO,CAAG,IAAI,CAACta,IAAI,CAACo1D,WAAW,CAClFhpD,EAAM,IAAI,CAAC23M,eAAe,CAACllB,qBAAqB,CAAC41B,EAAc,IAAI,CAACz0N,IAAI,CAACkE,MAAM,CAAE,IAAI,CAAClE,IAAI,CAAC20N,mBAAmB,EAClH,OAAO,IAAI,CAACC,0BAA0B,CAAC,IAAI,CAAC3rN,YAAY,EAAI,IAAI,CAAC7B,UAAU,CAACoB,aAAa,CAAC4D,EAAK,CAAC,CAAErQ,IAAK,UAAWV,MAAO,EAAK,EAAE,EAAI+Q,CACxI,CAEAwoN,2BAA2B3rN,CAAY,CAAE,CACrC,OAAOA,IAAiB,IAAI,CAACC,oBAAoB,CAACC,cAAc,CAACiyF,kBAAkB,CAE3F,CAYA84H,GAAe70N,OAAO,CAAG,CAAC,iBAAkB,aAAa,CACzDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,iBAXmB,CACpCC,SAAU,CACNpE,KAAM,IACNs0N,eAAgB,IAChBrrN,aAAc,GAClB,EACAzE,SCxDW,kNDyDXC,WAAYyvN,EAChB,EErDyD,OAEnDW,WAA4BjyN,EAAAA,CAAWA,CACzCrD,YAAYu1N,CAA0B,CAAEjyN,CAAoB,CAAE,CAC1D,KAAK,GAEL,IAAI,CAACiyN,0BAA0B,CAAGA,EAClC,IAAI,CAACjyN,oBAAoB,CAAGA,EAC5B,IAAI,CAACoG,YAAY,CAAG,KACpB,IAAI,CAAC8rN,aAAa,CAAG,IACzB,CAEA1wF,SAAU,CACN,IAAI,CAAC0wF,aAAa,CAAG,IAAI,CAACD,0BAA0B,CAACf,YAAY,CAAC,IAAI,CAACrrN,QAAQ,EAC/E,IAAI,CAACO,YAAY,CAAG,IAAI,CAACP,QAAQ,CAACmpH,YAAY,CAGlD7K,WAAW+G,CAAO,CAAE,CACSjvH,KAAAA,IAArBivH,EAAQrlH,QAAQ,EAAmBqlH,EAAQrlH,QAAQ,CAACw8H,aAAa,IACjE,KAAI,CAAC6vF,aAAa,CAAG,IAAI,CAACD,0BAA0B,CAACf,YAAY,CAAC,IAAI,CAACrrN,QAAQ,EAEvF,CACJ,CAWAmsN,GAAoBx1N,OAAO,CAAG,CAAC,6BAA8B,uBAAuB,CACpFF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,sBAVc,CAC/BC,SAAU,CACNsE,SAAU,IACV4rN,eAAgB,GACpB,EACA9vN,SClCW,yuBDmCXC,WAAYowN,EAChB,EEhC6C,OAEvCG,WAA+BpyN,EAAAA,CAAWA,CAC5CrD,YAAYsD,CAAoB,CAAE,CAC9B,KAAK,GAEL,IAAI,CAACA,oBAAoB,CAAGA,EAC5B,IAAI,CAACoyN,iBAAiB,CAAG,KACzB,IAAI,CAACvB,aAAa,CAAG,sBACzB,CAEArvF,SAAU,CAC2B,OAA7B,IAAI,CAAC37H,QAAQ,CAAC0zL,UAAU,EACxB,KAAI,CAAC64B,iBAAiB,CAAG,CAA2B,IAA3B,IAAI,CAACvsN,QAAQ,CAACuzL,QAAQ,CAAY,IAAI,CAACi5B,YAAY,CAAC,IAAI,CAACxsN,QAAQ,CAAC0zL,UAAU,EAAI,IAAI,CAAC1zL,QAAQ,CAAC0zL,UAAU,CAEzI,CAEA84B,aAAavP,CAAK,CAAE,CAChB,OAAOriK,OAAOqiK,EAAQ,KAAKwP,cAAc,CAACr2N,KAAAA,EAAW,CAAE4nD,MAAO,SAAU,EAC5E,CACJ,CAUAsuK,GAAuB31N,OAAO,CAAG,CAAC,uBAAuB,CACzDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,gBATS,CAC1BC,SAAU,CACNsE,SAAU,GACd,EACAlE,SC9BW,s8DD+BXC,WAAYuwN,EAChB,G,QE1B6F,OAEvFI,WAA+BxyN,EAAAA,CAAWA,CAC5CrD,YAAYsD,CAAoB,CAAEgV,CAAM,CAAEgmK,CAAQ,CAAE0hB,CAA0B,CAAE,CAC5E,KAAK,GAEL,IAAI,CAAC18L,oBAAoB,CAAGA,EAC5B,IAAI,CAAC6jH,OAAO,CAAG7uG,EACf,IAAI,CAACw9M,SAAS,CAAGx3C,EACjB,IAAI,CAACjyD,2BAA2B,CAAG2zE,EAEnC,IAAI,CAAC+1B,aAAa,CAAG,CAAE,GAAG,IAAI,CAAC5sN,QAAQ,CAC3C,CAEA27H,SAAU,CACN,IAAI,CAAC3d,OAAO,CAACjhG,KAAK,CAAC,qBAAsB,CAAE3Y,GAAI,IAAI,CAAC45G,OAAO,CAAC3oF,GAAG,CAAEw3L,mBAAoB,EAAK,GAExEz2N,KAAAA,IAAd,IAAI,CAACkB,IAAI,EACT,KAAI,CAACA,IAAI,CAAG,IAAI,CAAC4rH,2BAA2B,CAACi2E,oBAAoB,EAAC,EAGtE,IAAI,CAAC2zB,oBAAoB,CAAG,CACxBjwD,cAAe,EACf/gF,IAAK,IACLD,IAAK,EACLlpF,MAAO,EACPqnB,QAAS,GACTzc,UAAW,IAAI,CAACpD,oBAAoB,CAACS,SAAS,CAAC,uCAC/CkiK,aAAc,GACdz5G,cAAe,IACnB,EAEA,IAAI,CAAC4vI,MAAM,CAAG,IAAI,CAAC25B,aAAa,CAACt5B,MAAM,CAACn6L,GAAG,CAAC,IACxC,IAAM4zN,EAAY,IAAI,CAACJ,SAAS,CAACK,EAAE,CAAC,IAAI,CAAC3pK,aAAa,CAAE,IAAI,CAAE,KACxDj8C,EAAW,CAAC,CAAE,GAAG,IAAI,CAAC0lN,oBAAoB,EAAG,CAGnD,OAFA1lN,CAAQ,CAAC,EAAE,CAACzU,KAAK,CAAGsqN,EAAM9pB,KAAK,CAC/B/rL,CAAQ,CAAC,EAAE,CAACi8C,aAAa,CAAG0pK,EAAUt2C,GAAG,CAAC7lL,IAAI,CAACm8N,GACxC,CAAE,GAAG9P,CAAK,CAAEgQ,SAAU7lN,CAAS,CAC1C,GAEA,IAAI,CAAC8lN,eAAe,EACxB,CAEA1uG,YAAa,CACT,IAAI,CAACR,OAAO,CAACjhG,KAAK,CAAC,qBAAsB,CAAE3Y,GAAI,IAAI,CAAC45G,OAAO,CAAC3oF,GAAG,CAAEw3L,mBAAoB,EAAM,EAC/F,CAEAxpK,cAAc1wD,CAAK,CAAEw6N,CAAO,CAAE,CAE1BlQ,IADkB,CAAChqB,MAAM,CAACt+L,IAAI,CAAC,GAAOqyC,EAAEqsJ,4BAA4B,GAAK85B,GACnEh6B,KAAK,CAAGxgM,EACd,IAAI,CAACu6N,eAAe,GACpB,IAAI,CAACE,eAAe,EACxB,CAEAC,gBAAiB,CACb,IAAI,CAACD,eAAe,EACxB,CAEAF,iBAAkB,CAEd,GADA,IAAI,CAACN,aAAa,CAACl5B,UAAU,CAAG,KAC5B,CAAgC,IAAhC,IAAI,CAACk5B,aAAa,CAACr5B,QAAQ,CAC3B,IAAI,IAAI,CAACN,MAAM,CAACpoE,KAAK,CAAC,GAAO7jF,KAAAA,EAAEmsJ,KAAK,EAAWnsJ,OAAAA,EAAEmsJ,KAAK,EAAY,CAC9D,IAAMm6B,EAAkB,IAAI,CAACr6B,MAAM,CAACryE,MAAM,CAAC,CAACw4D,EAAO6jC,IACxC7jC,EAAQ,EAAOga,SAAS,CAAG,IAAO6pB,EAAM9pB,KAAK,CACrD,EACH,KAAI,CAACy5B,aAAa,CAACl5B,UAAU,CAAG45B,EAChC,IAAI,CAACf,iBAAiB,CAAG,IAAI,CAACC,YAAY,CAAC,IAAI,CAACI,aAAa,CAACl5B,UAAU,CAC5E,MACG,CACH,IAAM65B,EAAc,IAAI,CAACt6B,MAAM,CAACryE,MAAM,CAAC,CAACw4D,EAAO6jC,IACpC7jC,EAAQx+H,OAAOqiK,EAAM9pB,KAAK,EAClC,EACH,KAAI,CAACy5B,aAAa,CAACl5B,UAAU,CAAG65B,EAChC,IAAI,CAAChB,iBAAiB,CAAGgB,EAAYzrM,QAAQ,EACjD,CAEsC,OAAlC,IAAI,CAAC8qM,aAAa,CAACl5B,UAAU,EAC7B,KAAI,CAAC64B,iBAAiB,CAAG,IAAG,CAEpC,CAEAC,aAAavP,CAAK,CAAE,CAChB,OAAOriK,OAAOqiK,EAAQ,KAAKwP,cAAc,CAACr2N,KAAAA,EAAW,CAAE4nD,MAAO,SAAU,EAC5E,CAEAovK,iBAAkB,CACQh3N,KAAAA,IAAlB,IAAI,CAAC44B,QAAQ,EACb,IAAI,CAACA,QAAQ,CAAC,CACVskK,OAAQ,IAAI,CAACL,MAAM,CACnBS,WAAY,IAAI,CAACk5B,aAAa,CAACl5B,UAAU,CACzCD,MAAO,IAAI,CAACm5B,aAAa,CAACn5B,KAAK,EAG3C,CACJ,CAYAi5B,GAAuB/1N,OAAO,CAAG,CAAC,uBAAwB,SAAU,WAAY,6BAA6B,CAC7GF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,gBAXS,CAC1BC,SAAU,CACNsE,SAAU,IACV1I,KAAM,KACN03B,SAAU,GACd,EACAlzB,SC5GW,y5ED6GXC,WAAY2wN,EAChB,EExGwC,OAElCc,WAA2BtzN,EAAAA,CAAWA,CACxCrD,YAAYskN,CAAc,CAAE,CACxB,KAAK,GAEL,IAAI,CAACn2F,gBAAgB,CAAGA,GAAAA,CACxB,KAAI,CAACq2F,eAAe,CAAGF,EAEvB,IAAI,CAACsS,SAAS,CAAG,KACjB,IAAI,CAACC,gBAAgB,CAAG,IAAI,CAACN,eAAe,CAACx8N,IAAI,CAAC,IAAI,CAC1D,CAEA0tH,WAAW+G,CAAO,CAAE,CACKjvH,KAAAA,IAAjBivH,EAAQ9gC,IAAI,EAAkB8gC,EAAQ9gC,IAAI,CAAC6mE,YAAY,GAAKpmC,GAAAA,CAAgBA,CAAC/yB,IAAI,EACjF,KAAI,CAACw7H,SAAS,CAAG,CACbn6B,OAAQ,IAAI,IAAI,CAACtzL,QAAQ,CAACszL,MAAM,CAAC,CACjCI,WAAY,IAAI,CAAC1zL,QAAQ,CAAC0zL,UAAU,CACpCD,MAAO,IAAI,CAACzzL,QAAQ,CAACyzL,KAAK,EAGtC,CACA25B,gBAAgB/nG,CAAO,CAAE,CACrBxrH,OAAOkhB,MAAM,CAAC,IAAI,CAAC0yM,SAAS,CAAEpoG,GAC9B,IAAI,CAACsoG,WAAW,CAAG,IAAI,CAACtS,eAAe,CAAC/mB,sBAAsB,CAAC,IAAI,CAACm5B,SAAS,EAEzDr3N,KAAAA,IAAhB,IAAI,CAACiiL,MAAM,EACX,IAAI,CAACA,MAAM,CAAC,CACRlgJ,WAAY,IAAI,CAACw1L,WAAW,CAC5BtoG,QAAS,CAAEiuE,OAAQ,IAAI,CAACm6B,SAAS,CAACn6B,MAAM,CAAEI,WAAY,IAAI,CAAC+5B,SAAS,CAAC/5B,UAAU,CAAED,MAAO,IAAI,CAACg6B,SAAS,CAACh6B,KAAK,CAChH,EAER,CACJ,CAYA+5B,GAAmB72N,OAAO,CAAG,CAAC,iBAAiB,CAC/CF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,YAXK,CACtBC,SAAU,CACNsE,SAAU,IACVq4K,OAAQ,KACR9zF,KAAM,GACV,EACAzoF,SC/CW,4TDgDXC,WAAYyxN,EAChB,EE1CuC,OAEjCI,WAA0B1zN,EAAAA,CAAWA,CACvCrD,YAAYskN,CAAc,CAAEhhN,CAAoB,CAAE,CAC9C,KAAK,GAEL,IAAI,CAAC6qH,gBAAgB,CAAGA,GAAAA,CACxB,KAAI,CAACq2F,eAAe,CAAGF,EACvB,IAAI,CAAC/gN,iBAAiB,CAAG,GACzB,IAAI,CAAC6tN,mBAAmB,CAAG,wBAC3B,IAAI,CAACvtN,sBAAsB,CAAG,qBAC9B,IAAI,CAACmzN,gBAAgB,CAAG,GACxB,IAAI,CAACF,WAAW,CAAG,KACnB,IAAI,CAACG,gBAAgB,CAAG,IAAI,CAACC,aAAa,CAACn9N,IAAI,CAAC,IAAI,EACpD,IAAI,CAAC43K,iBAAiB,CAAG,GACzB,IAAI,CAACtf,WAAW,CAAG/uJ,EAAqBS,SAAS,CAAC,yCACtD,CAEA0jH,WAAW+G,CAAO,CAAE,CAChB,IAAM2oG,EAAa,IAAI,CAACpF,WAAW,CAACvjG,GAEhC,KAAI,CAAC4oG,yBAAyB,CAAC5oG,IAAY2oG,CAAS,IACpD,IAAI,CAACE,iBAAiB,GAEtB,IAAI,CAAC71C,MAAM,CAAC,CACRlgJ,WAAY,IAAI,CAACw1L,WAAW,CAC5BtoG,QAAS2oG,EAAa,CAAEj0C,QAAS,IAAI,CAAC8zC,gBAAgB,EAAK,IAC/D,GAER,CAEAI,0BAA0B5oG,CAAO,CAAE,CAC/B,OAAOA,KAAiBjvH,IAAjBivH,EAAQ9gC,IAAI,EAAmB8gC,CAAAA,KAAwBjvH,IAAxBivH,EAAQ0uE,WAAW,EAAkB1uE,KAAsBjvH,IAAtBivH,EAAQ2uE,SAAS,CAChG,CAEA+5B,cAAct3L,CAAO,CAAE,CACnB,IAAI,CAACo3L,gBAAgB,CAAGp3L,EACxB,IAAI,CAACy3L,iBAAiB,GAEtB,IAAI,CAAC71C,MAAM,CAAC,CACRlgJ,WAAY,IAAI,CAACw1L,WAAW,CAC5BtoG,QAAS,CAAE00D,QAAS,IAAI,CAAC8zC,gBAAgB,CAC7C,EACJ,CAEAjF,YAAYvjG,CAAO,CAAE,CACjB,OAAOA,KAAiBjvH,IAAjBivH,EAAQ9gC,IAAI,EAAkB8gC,EAAQ9gC,IAAI,CAAC6mE,YAAY,GAAK,IAAI,CAACpmC,gBAAgB,CAAC/yB,IAAI,CAGjGi8H,mBAAoB,CAChB,IAAI,CAACP,WAAW,CAAG,IAAI,CAACtS,eAAe,CAACxnB,qBAAqB,CAAC,IAAI,CAACg6B,gBAAgB,CAAE,IAAI,CAAC95B,WAAW,CAAE,IAAI,CAACC,SAAS,CACzH,CACJ,CAeA45B,GAAkBj3N,OAAO,CAAG,CAAC,iBAAkB,uBAAuB,CACtEF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,WAdM,CACvBC,SAAU,CACNshL,QAAS,IACT+W,YAAa,IACbC,UAAW,IACXzvG,KAAM,IACN8zF,OAAQ,IACRkwC,mBAAoB,GACxB,EACAzsN,SCtEW,ijBDuEXC,WAAY6xN,EAChB,G,gBErEO,IAAMO,GAAgC,CACzC7D,OAAQ,UACRn9H,KAAMihI,GAAAA,CACV,E,gBCHO,IAAMC,GAAgC,CACzC/D,OAAQ,UACRn9H,KAAMmhI,GAAAA,CACV,E,gBCHO,IAAMC,GAA+B,CACxCjE,OAAQ,UACRn9H,KAAMqhI,GAAAA,CACV,E,eCJO,IAAMC,GAAoB,CAC7B,CAAC1qG,EAAe2qG,QAAQ,CAAC,CAAE,iDAC3B,CAAC3qG,EAAe4qG,OAAO,CAAC,CAAE,gDAC1B,CAAC5qG,EAAe2mG,QAAQ,CAAC,CAAE,gDAC/B,ECJA,SAAU,6RCMH,IAAMkE,GAA+D9oL,IACxE,IAAM2kL,EAAc/D,GAAa9rN,SAAS,CAAC6zN,EAAiB,CAAC3oL,EAAMokL,YAAY,CAACj+L,MAAM,CAAC,EAEvF,MACI,YAAC29I,MAAAA,CAAIjhE,UAAU,mCACX,WAACihE,MAAAA,CAAIjhE,UAAU,iCAAiCkhE,YAAU,qCACrD/jI,EAAMuQ,MAAM,GAEjB,WAAC0zK,GAAAA,CAAeG,aAAcpkL,EAAMokL,YAAY,CAAED,gBAAiBQ,CAAAA,GAClE3kL,KAAAA,EAAM9lC,QAAQ,EAAW,WAACszK,GAAAA,CAAYA,CAAZA,CAAa78I,QAASqP,EAAM9lC,QAAQ,CAAErC,SAAS,mCAAmCgrG,UAAU,kCAAkC,GAAlC,EAGnI,ECjBAlyG,EAAAA,CAAUA,CAACgF,SAAS,CAAC,eAAgB03I,CAAAA,EAAAA,GAAAA,aAAAA,ECE+BrtG,GACzD,WAAC8oL,GAAAA,CAAiB1E,aAAcpkL,EAAMokL,YAAY,CAAElqN,SAAU8lC,EAAM9lC,QAAQ,CAAEq2C,OAAQ,WAACs0K,GAAAA,CAAWA,CAAXA,CAAY77F,KAAMhpF,EAAMglL,SAAS,KDHlE,CAAC,WAAY,YAAa,eAAe,G,uCEInG,OAAM+D,WAAuBnmD,GAAAA,SAASA,CAClCg/C,YAEUoH,CAAAA,mBAAqD,IAAI,CAACC,mBAAmB,CAACn+N,IAAI,CAAC,IAAI,CAEvFo+N,CAAAA,eAA8E,CAC3F,CAACjrG,EAAe2mG,QAAQ,CAAC,CAAE,CACvBuE,KAAM,UACN9hI,KAAMihI,GAAAA,CACV,EACA,CAACrqG,EAAe4qG,OAAO,CAAC,CAAE,CACtBM,KAAM,UACN9hI,KAAMqhI,GAAAA,CACV,EACA,CAACzqG,EAAe2qG,QAAQ,CAAC,CAAE,CACvBO,KAAM,UACN9hI,KAAMmhI,GAAAA,CACV,CACJ,CAAE,aAEUxoL,CAA2B,CAAE,CACrC,KAAK,CAACA,GAEN,IAAI,CAAC4hL,YAAY,CAAG,IAAI,CAACwH,aAAa,CAACt+N,IAAI,CAAC,IAAI,EAChD,IAAI,CAACw+B,KAAK,CAAG,CACThnB,MAAO,IAAI,CAAC09B,KAAK,CAACjpC,YACtB,CACJ,CAEO62J,QAAoB,CACvB,MACI,WAACy7D,GAAAA,CAAMA,CAANA,CAAOhqG,QAAS,IAAI,CAACr/E,KAAK,CAACvsB,OAAO,CAAEnV,GAAI,IAAI,CAAC0hC,KAAK,CAAC1hC,EAAE,CAAEgrN,QAAS,IAAI,CAACtpL,KAAK,CAACspL,OAAO,CAAEhnN,MAAO,IAAI,CAACgnB,KAAK,CAAChnB,KAAK,CAAEinN,cAAe,IAAI,CAACP,kBAAkB,CAAEpH,aAAc,IAAI,CAACA,YAAY,EAE7L,CAEQqH,oBAAoB3mN,CAAoB,CAAQ,CAChDA,EAAMs5J,eAAe,GAAK,IAAI,CAACtyI,KAAK,CAAChnB,KAAK,CAACs5J,eAAe,EAC1D,IAAI,CAAC57H,KAAK,CAACs/H,YAAY,CAAC,IAAI,CAACt/H,KAAK,CAACvsB,OAAO,CAACnR,EAAMs5J,eAAe,CAAC,EAGrE,IAAI,CAAC4tD,QAAQ,CAAC,CACVlnN,MAAOA,CACX,EACJ,CAEQ8mN,cAAcjiM,CAAmB,CAAe,CACpD,MAAOsiM,CAAAA,EAAAA,GAAAA,CAAAA,EAAW,IAAI,CAACC,4BAA4B,CAACviM,GACxD,CAEQuiM,6BAA6BviM,CAAmB,CAAqB,CACzE,IAAMkgE,EAAO,IAAI,CAAC6hI,cAAc,CAAC/hM,EAAKwiM,cAAc,CAAC,CAErD,MAAO,CACHR,KAAM9hI,EAAK8hI,IAAI,CACf9hI,KAAMA,EAAKA,IAAI,CACfx6F,MAAOs6B,EAAKt6B,KAChB,CACJ,CACJ,CC5DA8D,EAAAA,CAAUA,CAACgF,SAAS,CAAC,iBAAkB03I,CAAAA,EAAAA,GAAAA,aAAAA,EAAc2tB,CAAAA,EAAAA,GAAAA,CAAAA,EAAmB+tD,IAAiB,CAAC,eAAgB,UAAW,UAAW,eAAgB,KAAK,ECEzG,OAEtCa,WAA8Bx1N,EAAAA,CAAWA,CAC3CrD,YAAYsD,CAAoB,CAAEgV,CAAM,CAAE,CACtC,KAAK,GAEL,IAAI,CAAChV,oBAAoB,CAAGA,EAC5B,IAAI,CAACspB,cAAc,CAAG,KACtB,IAAI,CAACksM,kBAAkB,CAAG,CACtBjuD,gBAAiB,EACjBz4I,OAAQ,GACR1V,KAAMouJ,GAAAA,CAAcA,CAACC,MAAM,EAE/B,IAAI,CAACwtD,OAAO,CAAG,8BACf,IAAI,CAACQ,QAAQ,CAAG,CAAC,gBAAgB,EAAEzgN,EAAOkmB,GAAG,CAAC,CAAC,CAC/C,IAAI,CAAC80L,UAAU,CAAG55F,GAAAA,CAAaA,CAC/B,IAAMu4B,EAAY3uJ,EAAqBS,SAAS,CAAC,4CACjD,KAAI,CAAC6vN,WAAW,CAAGtwN,EAAqBS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAMu1I,CAAU,GAC3G,IAAI,CAAC9qC,OAAO,CAAG7uG,EAEf,IAAI,CAAC84M,mBAAmB,CAAG,wBAC3B,IAAI,CAACp/D,sBAAsB,CAAG,qBAC9B,IAAI,CAACzuJ,iBAAiB,CAAG,GAEzB,IAAI,CAACy1N,uBAAuB,CAAG,IAAI,CAACC,sBAAsB,CAACl/N,IAAI,CAAC,IAAI,EACpE,IAAI,CAACm/N,oBAAoB,CAAG,IAAI,CAACC,oBAAoB,CAACp/N,IAAI,CAAC,IAAI,EAC/D,IAAI,CAACs4J,WAAW,CAAG,IAAI,CAAC/uJ,oBAAoB,CAACS,SAAS,CAAC,0CACvD,IAAI,CAAC4tK,iBAAiB,CAAG,EAC7B,CAEAoJ,WAAY,CACR,IAAI,CAAC5zD,OAAO,CAACt8F,WAAW,CAAC,KACrB,IAAM7C,EAAejrB,SAASyiC,cAAc,CAAC,IAAI,CAACu5L,QAAQ,CACrC,QAAjB/wM,GACAA,EAAahsB,KAAK,EAE1B,GACA,IAAI,CAACm8B,QAAQ,CAAC,CAAE/C,OAAQ,IAAI,CAACjsB,QAAQ,CAAC82C,MAAM,EAChD,CAEAwnE,WAAW+G,CAAO,CAAE,CAChB,GAAIA,KAA4BjvH,IAA5BivH,EAAQ4qG,eAAe,EAAkB,WAAI,CAACA,eAAe,CAAW,CACxE,IAAMC,EAAsB,IAAI,CAACD,eAAe,CAAC73M,SAAS,CAAC,GAAYmL,EAAOksM,cAAc,GAAK,IAAI,CAACzvN,QAAQ,CAAC82C,MAAM,EACjHo5K,EAAsB,KACtB,IAAI,CAACzsM,cAAc,CAAG,IAAI,CAACwsM,eAAe,CAACC,EAAoB,CAC/D,IAAI,CAACP,kBAAkB,CAAG,CACtBjuD,gBAAiBwuD,EACjBjnM,OAAQ,GACR1V,KAAMouJ,GAAAA,CAAcA,CAACC,MAAM,EAGvC,CACJ,CAEAkuD,uBAAuBK,CAAc,CAAE,CACnC,IAAI,CAACnhM,QAAQ,CAAC,CAAE/C,OAAQkkM,EAAeV,cAAc,GACrD,IAAI,CAACzxG,OAAO,CAACt8F,WAAW,EAC5B,CAEAsuM,qBAAqBlhG,CAAI,CAAE,CACvB,IAAI,CAAC9/F,QAAQ,CAAC,CAAE8/F,KAAMA,CAAK,EAC/B,CACJ,CAaA4gG,GAAsB/4N,OAAO,CAAG,CAAC,uBAAwB,SAAS,CAClEF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,eAZQ,CACzBC,SAAU,CACNsE,SAAU,IACViwN,gBAAiB,IACjBjhM,SAAU,IACVu5L,mBAAoB,GACxB,EACAzsN,SC9EW,41CD+EXC,WAAY2zN,EAChB,EE5EO,OAAMU,GACTv5N,YAAY0T,CAAE,CAAEC,CAAoB,CAAE,CAClC,IAAI,CAAC2G,GAAG,CAAG5G,EACX,IAAI,CAACyO,qBAAqB,CAAGxO,EAC7B,IAAI,CAAC6lN,gBAAgB,CAAG,CAAC,CAC7B,CAEA7uN,mBAAmB06H,CAAK,CAAE,QACtB,KAAqC9lI,IAAjC,IAAI,CAACi6N,gBAAgB,CAACn0F,EAAM,CACrB,IAAI,CAAC/qH,GAAG,CAACja,OAAO,CAAC,IAAI,CAACm5N,gBAAgB,CAACn0F,EAAM,EAGjD,IAAI,CAACljH,qBAAqB,CAC5BxX,kBAAkB,CAAC,CAChB06H,MAAOA,CACX,GACCtpI,IAAI,CAAC,IACF,IAAI,CAACy9N,gBAAgB,CAACn0F,EAAM,CAAG,CAACnY,EAAe2mG,QAAQ,CAAE3mG,EAAe4qG,OAAO,CAAE5qG,EAAe2qG,QAAQ,CAAC,CAACv1N,GAAG,CAAC,IAC1G,GAAImG,KAAyClJ,IAAzCkJ,EAAShI,IAAI,CAACg5N,EAAsB,CACpC,MAAM,MAAU,CAAC,iEAAiE,EAAEA,EAAsB,CAAC,EAG/G,MAAO,CACHb,eAAgBa,EAChB39N,MAAO2M,EAAShI,IAAI,CAACg5N,EAAsB,CAEnD,GACO,IAAI,CAACD,gBAAgB,CAACn0F,EAAM,EAE/C,CAEAx6H,0BAA2B,CACvB,OAAO,IAAI,CAACsX,qBAAqB,CAACtX,wBAAwB,GAAG9O,IAAI,CAAC,GACvD0M,EAAShI,IAAI,CAE5B,CACJ,CAEA84N,GAAuBz5N,OAAO,CAAG,CAAC,KAAM,uBAAuB,CAC/DF,EAAAA,CAAUA,CAACC,OAAO,CAAC,yBAA0B05N,GChCN,OAEjCG,WAA0Br2N,EAAAA,CAAWA,CACvCrD,YAAYskN,CAAc,CAAEqV,CAAoB,CAAEC,CAAsB,CAAE,CACtE,KAAK,GAEL,IAAI,CAACzrG,gBAAgB,CAAGA,GAAAA,CACxB,KAAI,CAACq2F,eAAe,CAAGF,EACvB,IAAI,CAACuV,uBAAuB,CAAGD,EAC/B,IAAI,CAAChD,SAAS,CAAG,KACjB,IAAI,CAAC99M,OAAO,CAAG,GACf,IAAI,CAACsgN,eAAe,CAAG,KACvB,IAAI,CAACU,cAAc,CAAG,KAClB,KAA4Bv6N,IAA5B,IAAI,CAAC4J,QAAQ,CAAC4wN,SAAS,CACvB,IAAI,CAAC9F,SAAS,CAAG,IAAI,CAAC9qN,QAAQ,CAAC4wN,SAAS,CAACnuI,WAAW,GAEpD,IAAI,CAACqoI,SAAS,CAAG0F,EAAqB51N,SAAS,CAAC,wDAEpD,IAAI,CAAC8yN,gBAAgB,CAAG,IAAI,CAACN,eAAe,CAACx8N,IAAI,CAAC,IAAI,CAC1D,CAEA0tH,WAAW+G,CAAO,CAAE,CAChB,GAAIA,KAAiBjvH,IAAjBivH,EAAQ9gC,IAAI,GACanuF,KAAAA,IAArBivH,EAAQrlH,QAAQ,EAAkBqlH,EAAQ9gC,IAAI,CAAC6mE,YAAY,GAAKpmC,GAAAA,CAAgBA,CAACl3B,IAAI,EACrF,KAAI,CAAC6iI,cAAc,CAAG,IAAI,CAACE,mBAAmB,EAAC,EAG/CxrG,EAAQ9gC,IAAI,CAAC6mE,YAAY,GAAKpmC,GAAAA,CAAgBA,CAAC/yB,IAAI,EAAE,CACrD,IAAI,CAACtiF,OAAO,CAAG,GACf,IAAI,CAAC89M,SAAS,CAAG,CACbxhM,OAAQ,IAAI,CAACjsB,QAAQ,CAAC82C,MAAM,CAC5Bg4E,KAAM,IAAI,CAAC9uH,QAAQ,CAAC+5K,OAAO,EAG/B,IAAI79C,EAAQ17H,GAAAA,CAAoBA,CAACC,cAAc,CAACC,kBAAkB,CACtC,MAAxB,IAAI,CAACV,QAAQ,CAAC8wN,KAAK,CACnB50F,EAAQ17H,GAAAA,CAAoBA,CAACC,cAAc,CAACE,kBAAkB,CAC/B,MAAxB,IAAI,CAACX,QAAQ,CAAC8wN,KAAK,EAC1B50F,CAAAA,EAAQ17H,GAAAA,CAAoBA,CAACC,cAAc,CAACG,oBAAoB,EAEpE,IAAI,CAAC8vN,uBAAuB,CACvBlvN,kBAAkB,CAAC06H,GACnBtpI,IAAI,CAAC,IACF,IAAI,CAACq9N,eAAe,CAAGA,CAC3B,GACCx4N,KAAK,CAAC,KACH,IAAI,CAACw4N,eAAe,CAAG,IAC3B,GACCv4N,OAAO,CAAC,KACL,IAAI,CAACiY,OAAO,CAAG,EACnB,EACR,CAER,CAEAkhN,qBAAsB,CAClB,MAAO,CACH3kM,WAAY,IAAI,CAAClsB,QAAQ,CAAC+wN,UAAU,CACpC5G,WAAY,IAAI,CAAC6G,wBAAwB,GACzC/kM,OAAQ83F,CAAc,CAAC,IAAI,CAAC/jH,QAAQ,CAAC82C,MAAM,CAAC,CAEpD,CAEAk6K,0BAA2B,CACvB,OAAQ,IAAI,CAAChxN,QAAQ,CAAC82C,MAAM,EACxB,KAAKt2C,GAAAA,CAAoBA,CAAC6zF,eAAe,CAACC,QAAQ,CAC9C,OAAO65H,EACX,MAAK3tN,GAAAA,CAAoBA,CAAC6zF,eAAe,CAACG,QAAQ,CAC9C,OAAO65H,EACX,MAAK7tN,GAAAA,CAAoBA,CAAC6zF,eAAe,CAACE,OAAO,CACjD,QACI,OAAOg6H,EACf,CACJ,CAEAnB,gBAAgB/nG,CAAO,CAAE,CACrBxrH,OAAOkhB,MAAM,CAAC,IAAI,CAAC0yM,SAAS,CAAEpoG,GAC9B,IAAI,CAACsoG,WAAW,CAAG,IAAI,CAACtS,eAAe,CAACznB,qBAAqB,CAAC,IAAI,CAAC65B,SAAS,CAACxhM,MAAM,EAE/D71B,KAAAA,IAAhB,IAAI,CAACiiL,MAAM,EACX,IAAI,CAACA,MAAM,CAAC,CACRlgJ,WAAY,IAAI,CAACw1L,WAAW,CAC5BtoG,QAAS,CAAE00D,QAAS,IAAI,CAAC0zC,SAAS,CAAC3+F,IAAI,CAAEh4E,OAAQ,IAAI,CAAC22K,SAAS,CAACxhM,MAAM,CAC1E,EAER,CACJ,CAaAskM,GAAkB55N,OAAO,CAAG,CAAC,iBAAkB,uBAAwB,yBAAyB,CAChGF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,WAZI,CACrBC,SAAU,CACNsE,SAAU,IACVukF,KAAM,IACN8zF,OAAQ,KACRkwC,mBAAoB,GACxB,EACAzsN,SC1GW,4jBD2GXC,WAAYw0N,EAChB,G,yBE1GA,SAAU,wKCCV95N,EAAAA,CAAUA,CAACgF,SAAS,CAAC,yBAA0B03I,CAAAA,EAAAA,GAAAA,aAAAA,ECKyCrtG,IACpF,IAAMmrL,EAAcvK,GAAa9rN,SAAS,CAAC,qDAC3C,MACI,WAACg0N,GAAAA,CACG5uN,SAAU8lC,EAAM9lC,QAAQ,CACxBkqN,aAAcpkL,EAAMokL,YAAY,CAChC7zK,OACI,YAACgxK,GAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACG,WAACsD,GAAAA,CAAWA,CAAXA,CAAY77F,KAAMhpF,EAAMglL,SAAS,GAEjChlL,EAAMorL,YAAY,EACf,YAAC7J,GAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACG,WAAC+C,OAAAA,CAAKhtN,MAAO6zN,EAAaE,cAAa,YACnC,WAACnxM,GAAAA,CAAIA,CAAJA,CAAK2oF,UAAU,6CAA6C4sC,OAAQw1E,GAAAA,CAAAA,EAAAA,GAEzE,WAACX,OAAAA,CAAKzhH,UAAU,wBAAwBkhE,YAAU,kDAC7ConD,CAAAA,GAAAA,GAAAA,EAAAA,EAQjC,ED7BqF,CAAC,WAAY,YAAa,eAAgB,eAAe,EEQ5F,OAE5CG,WAAoCl3N,EAAAA,CAAWA,CACjDrD,YAAYskN,CAAc,CAAEqV,CAAoB,CAAEC,CAAsB,CAAE,CACtE,KAAK,GAEL,IAAI,CAACzrG,gBAAgB,CAAGA,GAAAA,CACxB,KAAI,CAACq2F,eAAe,CAAGF,EACvB,IAAI,CAACuV,uBAAuB,CAAGD,EAC/B,IAAI,CAAChD,SAAS,CAAG,KACjB,IAAI,CAAC99M,OAAO,CAAG,GACf,IAAI,CAACsgN,eAAe,CAAG,KACvB,IAAI,CAACU,cAAc,CAAG,KACtB,IAAI,CAAC7F,SAAS,CAAG0F,EAAqB51N,SAAS,CAAC,0DAChD,IAAI,CAAC8yN,gBAAgB,CAAG,IAAI,CAACN,eAAe,CAACx8N,IAAI,CAAC,IAAI,CAC1D,CAEA0tH,WAAW+G,CAAO,CAAE,CACKjvH,KAAAA,IAAjBivH,EAAQ9gC,IAAI,GACanuF,KAAAA,IAArBivH,EAAQrlH,QAAQ,EAAkBqlH,EAAQ9gC,IAAI,CAAC6mE,YAAY,GAAKpmC,GAAAA,CAAgBA,CAACl3B,IAAI,EACrF,KAAI,CAAC6iI,cAAc,CAAG,IAAI,CAACE,mBAAmB,EAAC,EAG/CxrG,EAAQ9gC,IAAI,CAAC6mE,YAAY,GAAKpmC,GAAAA,CAAgBA,CAAC/yB,IAAI,GACnD,IAAI,CAACtiF,OAAO,CAAG,GACf,IAAI,CAAC89M,SAAS,CAAG,CACbxhM,OAAQ,IAAI,CAACjsB,QAAQ,CAAC82C,MAAM,CAC5Bg4E,KAAM,IAAI,CAAC9uH,QAAQ,CAAC+5K,OAAO,EAG/B,IAAI,CAAC22C,uBAAuB,CACvBlvN,kBAAkB,GAClB5O,IAAI,CAAC,IACF,IAAI,CAACq9N,eAAe,CAAGA,CAC3B,GACCx4N,KAAK,CAAC,KACH,IAAI,CAACw4N,eAAe,CAAG,IAC3B,GACCv4N,OAAO,CAAC,KACL,IAAI,CAACiY,OAAO,CAAG,EACnB,IAGhB,CAEAkhN,qBAAsB,CAClB,MAAO,CACH3kM,WAAY,IAAI,CAAClsB,QAAQ,CAAC+wN,UAAU,CACpC5G,WAAY,IAAI,CAAC6G,wBAAwB,GACzC/kM,OAAQ83F,CAAc,CAAC,IAAI,CAAC/jH,QAAQ,CAAC82C,MAAM,CAAC,CAEpD,CAEAk6K,0BAA2B,CACvB,OAAQ,IAAI,CAAChxN,QAAQ,CAAC82C,MAAM,EACxB,KAAKt2C,GAAAA,CAAoBA,CAAC6zF,eAAe,CAACC,QAAQ,CAC9C,OAAO65H,EACX,MAAK3tN,GAAAA,CAAoBA,CAAC6zF,eAAe,CAACG,QAAQ,CAC9C,OAAO65H,EACX,MAAK7tN,GAAAA,CAAoBA,CAAC6zF,eAAe,CAACE,OAAO,CACjD,QACI,OAAOg6H,EACf,CACJ,CAEAnB,gBAAgB/nG,CAAO,CAAE,CACrBxrH,OAAOkhB,MAAM,CAAC,IAAI,CAAC0yM,SAAS,CAAEpoG,GAC9B,IAAI,CAACsoG,WAAW,CAAG,IAAI,CAACtS,eAAe,CAACznB,qBAAqB,CAAC,IAAI,CAAC65B,SAAS,CAACxhM,MAAM,EAE/D71B,KAAAA,IAAhB,IAAI,CAACiiL,MAAM,EACX,IAAI,CAACA,MAAM,CAAC,CACRlgJ,WAAY,IAAI,CAACw1L,WAAW,CAC5BtoG,QAAS,CAAE00D,QAAS,IAAI,CAAC0zC,SAAS,CAAC3+F,IAAI,CAAEh4E,OAAQ,IAAI,CAAC22K,SAAS,CAACxhM,MAAM,CAC1E,EAER,CACJ,CC1EA,SAASolM,GAAyBl3N,CAAoB,EAClD,IAAI,CAACmX,qBAAqB,CAAGnX,EAC7B,IAAI,CAACm3N,mBAAmB,CAAG,IAAI,CAAChgN,qBAAqB,CAAC1W,SAAS,CAAC,kDAAmD,CAAE22N,cAAe,IAAI,CAACvxN,QAAQ,CAACmpH,YAAY,EAClK,CDoFAioG,GAA4Bz6N,OAAO,CAAG,CAAC,iBAAkB,uBAAwB,yBAAyB,CAC1GF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,qBAZI,CACrBC,SAAU,CACNsE,SAAU,IACVukF,KAAM,IACN8zF,OAAQ,KACRkwC,mBAAoB,GACxB,EACAzsN,SEhGW,omBFiGXC,WAAYq1N,EAChB,GCtFAC,GAAyB16N,OAAO,CAAG,CAAC,uBAAuB,CAM3DF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,kBAdG,CACpBC,SAAU,CACNsE,SAAU,GACd,EACAlE,SERW,kCFSXC,WAAYs1N,EAChB,EGLoC,OAE9BG,WAAuBt3N,EAAAA,CAAWA,CACpCrD,YAAYsD,CAAoB,CAAEghN,CAAc,CAAE,CAC9C,KAAK,GAEL,IAAI,CAAChhN,oBAAoB,CAAGA,EAC5B,IAAI,CAACkhN,eAAe,CAAGF,EACvB,IAAI,CAACn2F,gBAAgB,CAAGA,GAAAA,CAExB,KAAI,CAACysG,UAAU,CAAG,GAClB,IAAI,CAACC,YAAY,CAAG,EACxB,CAEApzG,YAAa,CACT,IAAI,CAACqzG,gBAAgB,GACrB,IAAI,CAACF,UAAU,CAAG,IAAI,CAACG,KAAK,CAGhCC,WAAY,CACR,IAAM15L,EAAa,IAAI,CAACkjL,eAAe,CAACnnB,kBAAkB,CAAC,IAAI,CAACu9B,UAAU,EAE1E,IAAI,CAACp5C,MAAM,CAAC,CACRlgJ,WAAYA,EACZktF,QAAS,CAAEouE,MAAO,IAAI,CAACg+B,UAAU,CACrC,EACJ,CAEAE,kBAAmB,CACf,IAAI,CAACD,YAAY,CAAG,IAAI,CAACE,KAAK,CAACn+N,MAAM,CAAG,EAC5C,CACJ,CAYA+9N,GAAe76N,OAAO,CAAG,CAAC,uBAAwB,iBAAiB,CACnEF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,QAXG,CACpBC,SAAU,CACNk2N,MAAO,IACPrtI,KAAM,IACN8zF,OAAQ,GACZ,EACAv8K,SC5CW,i6BD6CXC,WAAYy1N,EAChB,EExC4C,OAEtCM,WAA8B53N,EAAAA,CAAWA,CAC3CrD,YAAYsD,CAAoB,CAAEghN,CAAc,CAAE,CAC9C,KAAK,GAEL,IAAI,CAAChhN,oBAAoB,CAAGA,EAC5B,IAAI,CAACkhN,eAAe,CAAGF,EACvB,IAAI,CAACn2F,gBAAgB,CAAGA,GAAAA,CAExB,KAAI,CAAC+sG,iBAAiB,CAAG,CACrBl1D,cAAe,EACf/gF,IAAK,IACLD,IAAK,EACLlpF,MAAO,IAAI,CAACi/N,KAAK,CACjB53M,QAAS,GACT8iJ,aAAc,GACdv/J,UAAW,IAAI,CAACpD,oBAAoB,CAACS,SAAS,CAAC,uCAC/CyoD,cAAe,IAAI,CAAC2uK,gBAAgB,CAACphO,IAAI,CAAC,IAAI,CAClD,CACJ,CAEA0tH,YAAa,CACT,IAAI,CAACyzG,iBAAiB,CAACp/N,KAAK,CAAG,IAAI,CAACi/N,KAAK,CAG7CI,iBAAiBC,CAAQ,CAAE,CACvB,IAAM95L,EAAa,IAAI,CAACkjL,eAAe,CAACnnB,kBAAkB,CAAC+9B,GAE3D,IAAI,CAAC55C,MAAM,CAAC,CACRlgJ,WAAYA,EACZktF,QAAS,CAAEouE,MAAOw+B,CAAS,CAC/B,EACJ,CACJ,CCrBA,SAASC,GAAkBvpN,CAAU,CAAExO,CAAoB,CAAE0jB,CAAa,CAAEqyB,CAAI,EAC5E,IAAI,CAAC4jG,YAAY,CAAGnrI,EAAWoG,GAAG,CAAC,wBAAyB,IAAI,CAACojN,uBAAuB,CAACvhO,IAAI,CAAC,IAAI,GAClG,IAAI,CAAC+X,UAAU,CAAGA,EAElB,IAAI,CAACxO,oBAAoB,CAAGA,EAC5B,IAAI,CAAC45L,WAAW,CAAG,IAAI,CAACA,WAAW,EAAI,EAAE,CACzC,IAAI,CAACq+B,eAAe,CAAG,KACvB,IAAI,CAACC,cAAc,CAAGx0M,EACtB,IAAI,CAACy0M,mBAAmB,CAAG,GAC3B,IAAI,CAACpiL,IAAI,CAAGA,CAChB,CCbA,SAASqiL,GAAWp4N,CAAoB,CAAEsvN,CAAkB,EACxD,IAAI,CAACtvN,oBAAoB,CAAGA,EAC5B,IAAI,CAACsvN,kBAAkB,CAAGA,EAE1B,IAAI,CAAC/lN,GAAG,CAAG,IAAI,CAAC+lN,kBAAkB,CAACH,2BAA2B,CAAC,IAAI,CAACr8L,IAAI,CAACrb,OAAO,CAAE,IAAI,CAACqb,IAAI,CAACoF,QAAQ,CAAE,IACtG,IAAI,CAACt/B,MAAM,CAAG,QAClB,CCRA,SAASy/N,GAA8B7pN,CAAU,CAAEnK,CAAY,CAAErE,CAAoB,CAAE43L,CAAqB,EACxG,IAAI,CAACppL,UAAU,CAAGA,EAClB,IAAI,CAACnK,YAAY,CAAGA,EACpB,IAAI,CAACrE,oBAAoB,CAAGA,EAC5B,IAAI,CAAC43L,qBAAqB,CAAGA,EAC7B,IAAI,CAACuvB,SAAS,CAAG,KACjB,IAAI,CAACmR,mBAAmB,CAAG,GAC3B,IAAI,CAACC,eAAe,CAAGp1M,QAAQ0N,IAAI,CAAC,IAAI,CAAC2nM,aAAa,CAC1D,CH8BAb,GAAsBn7N,OAAO,CAAG,CAAC,uBAAwB,iBAAiB,CAC1EF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,eAXU,CAC3BC,SAAU,CACNk2N,MAAO,IACPrtI,KAAM,IACN8zF,OAAQ,GACZ,EACAv8K,SIhDW,sqBJiDXC,WAAY+1N,EAChB,GChCAI,GAAkBv7N,OAAO,CAAG,CAAC,aAAc,uBAAwB,gBAAiB,OAAO,CAa3Fu7N,GAAkB9/N,SAAS,CAACupI,OAAO,CAAG,WAClC,IAAI,CAACy2F,eAAe,CAAG,IAAI,IAAI,CAACr+B,WAAW,CAAC,EAGhDm+B,GAAkB9/N,SAAS,CAACksH,UAAU,CAAG,WACrC,IAAI,CAACg0G,mBAAmB,CAAG,EAC/B,EAEAJ,GAAkB9/N,SAAS,CAACstL,MAAM,CAAG,WAC7B,IAAI,CAACxvI,IAAI,CAAC60H,UAAU,GACpB,IAAI,CAACp8J,UAAU,CAACK,UAAU,CAAC,yBAA0B,CACjDqB,MAAO,cACP8hH,WAAY,GACZC,gBAAiB,GACjB67E,cAAe,CAAC,CACpB,GAEA,IAAI,CAAC2qB,aAAa,CAAC,IAAI,CAACR,eAAe,EAAEx/N,IAAI,CAAC,IAAI,CAACigO,uBAAuB,CAACjiO,IAAI,CAAC,IAAI,EAE5F,EAEAshO,GAAkB9/N,SAAS,CAACygO,uBAAuB,CAAG,SAAUC,CAAc,EAC1E,IAAI,CAACR,mBAAmB,CAAG,GAE3B,IAAM/2E,EAAO,IAAI,CAACw3E,mBAAmB,CAAC,IAAI,CAACX,eAAe,CAAEU,GACxDv3E,CAAAA,IAAAA,EAAKzqB,KAAK,CAACr9H,MAAM,EAAU8nJ,IAAAA,EAAKliF,OAAO,CAAC5lE,MAAM,IAI9C,IAAI,CAACy8C,IAAI,CAAC60H,UAAU,IAAMxpB,EAAKzqB,KAAK,CAACr9H,MAAM,CAAG,EAC9C,IAAI,CAAC2+N,eAAe,CAAG,IAAI,CAACA,eAAe,CAAClkM,MAAM,CAACqtH,EAAKzqB,KAAK,EAE7D,IAAI,CAACshG,eAAe,CAAGU,EAG3B,IAAI,CAAC9jM,QAAQ,CAAC,CACV+kK,YAAa,IAAI,CAACq+B,eAAe,CACjCthG,MAAOyqB,EAAKzqB,KAAK,CACjBz3D,QAASkiF,EAAKliF,OAAO,GAE7B,EAEA64J,GAAkB9/N,SAAS,CAACqH,MAAM,CAAG,SAAUsjN,CAAU,EACrD,IAAM9vL,EAAO,IAAI,CAACmlM,eAAe,CAAC18N,MAAM,CAAC,SAAUu3B,CAAI,EACnD,OAAOA,EAAKrb,OAAO,GAAKmrM,EAAWnrM,OAAO,EAC5C,CAAC,EAAE,CAEL,GAAI,CAACqb,EACD,OAGJ,IAAMn3B,EAAQ,IAAI,CAACs8N,eAAe,CAACl8N,OAAO,CAAC+2B,EAE7B,MAAVn3B,IAIJ,IAAI,CAACs8N,eAAe,CAACj6N,MAAM,CAACrC,EAAO,GACnC,IAAI,CAACk5B,QAAQ,CAAC,CACV+kK,YAAa,IAAI,CAACq+B,eAAe,CACjCthG,MAAO,EAAE,CACTz3D,QAAS,CAAC0jJ,EAAW,GAE7B,EAEAmV,GAAkB9/N,SAAS,CAACwgO,aAAa,CAAG,SAAU7+B,CAAW,EAC7D,IAAM0R,EAAW,CAAErhM,GAAI,OAAQ+oF,KAAMs1E,GAAAA,CAAQA,CAAEllK,UAAW,IAAI,CAACpD,oBAAoB,CAACS,SAAS,CAAC,2CAA4C,EACpI8qM,EAAc,CAAEthM,GAAI,UAAW+oF,KAAMu1E,GAAAA,CAAQA,CAAEnlK,UAAW,IAAI,CAACpD,oBAAoB,CAACS,SAAS,CAAC,8CAA+C,EAEnJ,OAAO,IAAI,CAACy3N,cAAc,CACrB/4M,YAAY,CAAC,CACVgB,UAAW,CAAC,OAAO,CACnBM,cAAe,GACfP,WAAY,YACZQ,cAAe,CAAC4qL,EAAUC,EAAY,CACtCjrL,qBAAsBs5K,EAAY56L,GAAG,CAAC,SAAUshE,CAAC,EAC7C,OAAOA,EAAE7oD,OAAO,EAExB,GACChf,IAAI,CACD,UAAUogO,CAAS,EACf,OAAOA,EAAU75N,GAAG,CAAC,IAAI,CAAC85N,oBAAoB,CAClD,GAAEriO,IAAI,CAAC,IAAI,EAEvB,EAEAshO,GAAkB9/N,SAAS,CAAC2gO,mBAAmB,CAAG,SAAUG,CAAc,CAAEJ,CAAc,EACtF,IAAIz5J,EAAU,EAAE,CAgBhB,OAdK,IAAI,CAACnpB,IAAI,CAAC60H,UAAU,IACrB1rG,CAAAA,EAAU65J,EAAex9N,MAAM,CAAC,SAAUqnN,CAAU,EAChD,MAAO,CAAC+V,EAAe1hL,IAAI,CAAC,SAAU+hL,CAAa,EAC/C,OAAOA,EAAcvhN,OAAO,GAAKmrM,EAAWnrM,OAAO,EAE3D,EAAC,EASE,CACHk/G,MAPQgiG,EAAep9N,MAAM,CAAC,SAAUqnN,CAAU,EAClD,MAAO,CAACmW,EAAe9hL,IAAI,CAAC,SAAUgiL,CAAa,EAC/C,OAAOA,EAAcxhN,OAAO,GAAKmrM,EAAWnrM,OAAO,EAE3D,GAIIynD,QAASA,CACb,CACJ,EAEA64J,GAAkB9/N,SAAS,CAAC6gO,oBAAoB,CAAG,SAAUryD,CAAY,EACrE,MAAO,CACHhvJ,QAASgvJ,EAAaj8J,EAAE,CACxB0tB,SAAUuuI,EAAavuI,QAAQ,CAC/BzY,QAASgnJ,EAAahnJ,OAAO,CAC7B1C,MAAO0pJ,EAAa1pJ,KAAK,CAEjC,EAEAg7M,GAAkB9/N,SAAS,CAAC+/N,uBAAuB,CAAG,SAAU1/N,CAAK,CAAE6E,CAAI,EACvE,GAAIA,GAAQA,EAAK21E,KAAK,EAAI31E,EAAK21E,KAAK,CAACx5E,MAAM,CAAG,EAAG,CAC7C,IAAI4/N,EAAoB/7N,EAAK21E,KAAK,CAAC9zE,GAAG,CAAC,IAAI,CAAC85N,oBAAoB,EAChE,IAAI,CAACJ,uBAAuB,CAACQ,EACjC,CACJ,EAEAnB,GAAkB9/N,SAAS,CAACosH,UAAU,CAAG,WACrC,IAAI,CAACs1B,YAAY,EACrB,EAEAr9I,EAAAA,CAAUA,CAACgF,SAAS,CAAC,oBAvJa,CAC9BC,SAAU,CACNq4L,YAAa,IACb/kK,SAAU,GACd,EACAlzB,SIdW,u9CJeXC,WAAYm2N,EAChB,GCDAK,GAAW57N,OAAO,CAAG,CAAC,uBAAwB,qBAAqB,CASnEF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,aAlBM,CACvBC,SAAU,CACNuxB,KAAM,IACNqmM,UAAW,GACf,EACAv3N,WAAYw2N,GACZz2N,SIZW,6fJaf,GCDA02N,GAA8B77N,OAAO,CAAG,CAAC,aAAc,eAAgB,uBAAwB,wBAAwB,CAYvH67N,GAA8BpgO,SAAS,CAACupI,OAAO,CAAG,WAC9C,IAAI,CAAC43F,sBAAsB,GAE3B,IAAI,CAACjS,SAAS,CAAG,IAAI,CAAC34M,UAAU,CAACoG,GAAG,CAChC,yBACA,UAAUtc,CAAK,CAAE+G,CAAI,EACjB,IAAI,CAAC+5N,sBAAsB,EAC/B,GAAE3iO,IAAI,CAAC,IAAI,EAEnB,EAEA4hO,GAA8BpgO,SAAS,CAACosH,UAAU,CAAG,WAC1B,OAAnB,IAAI,CAAC8iG,SAAS,EACd,IAAI,CAACA,SAAS,EAEtB,EAEAkR,GAA8BpgO,SAAS,CAACohO,0BAA0B,CAAG,WACjE,IAAI,CAACf,mBAAmB,CAAG,GAGvB,KAA6Br8N,IAA7B,IAAI,CAACoI,YAAY,CAACjD,MAAM,EAAkB,IAAI,CAACm3N,eAAe,CAACxrG,WAAW,GAAK,IAAI,CAAC1oH,YAAY,CAACN,OAAO,CAEpE,OAAhC,IAAI,CAACw0N,eAAe,CAACn3N,MAAM,EAEvB,IAAI,CAACiD,YAAY,CAACjD,MAAM,GAAK,IAAI,CAACm3N,eAAe,CAACn3N,MAAM,EACxD,KAAI,CAACk3N,mBAAmB,CAAG,IAAI,CAACt4N,oBAAoB,CAACS,SAAS,CAAC,kEAAiE,EAMnI,IAAI,CAAC83N,eAAe,CAACxrG,WAAW,GAAK,IAAI,CAAC1oH,YAAY,CAACN,OAAO,EAE/D,IAAI,CAACw0N,eAAe,CAACe,eAAe,GAAK,IAAI,CAACf,eAAe,CAACxrG,WAAW,EAErE,IAAI,CAAC1oH,YAAY,CAACN,OAAO,GAAK,IAAI,CAACw0N,eAAe,CAACe,eAAe,EAClE,KAAI,CAAChB,mBAAmB,CAAG,IAAI,CAACt4N,oBAAoB,CAACS,SAAS,CAAC,kEAAiE,CAIhJ,EAEA43N,GAA8BpgO,SAAS,CAACmhO,sBAAsB,CAAG,WAC7D,IAAMG,EAAkB,IAAI,CAAC3hC,qBAAqB,CAAC3uE,kBAAkB,CAAC,IAAI,CAAC5kH,YAAY,CAACN,OAAO,CAAE,IAAI,CAACM,YAAY,CAACjD,MAAM,CACzH,KAAI,CAACo3N,aAAa,CAACnvG,sBAAsB,CAAGkwG,EAAgBlwG,sBAAsB,CAClF,IAAI,CAACC,QAAQ,CAAGiwG,EAAgBjwG,QAAQ,CACxC,IAAI,CAACkwG,sBAAsB,CAAGD,EAAgBhwG,gBAAgB,EAAIgwG,EAAgB/vG,aAAa,CAC/F,IAAI,CAACiwG,YAAY,CAAG,IAAI,CAACD,sBAAsB,EAAID,KAAAA,EAAgBlwG,sBAAsB,CAErF,IAAI,CAACowG,YAAY,CACjB,IAAI,CAACC,cAAc,CAAG,IAAI,CAAC15N,oBAAoB,CAACS,SAAS,CAAC,8DACnD84N,EAAgB/vG,aAAa,CACpC,IAAI,CAACkwG,cAAc,CAAG,IAAI,CAAC15N,oBAAoB,CAACS,SAAS,CAAC,gEAE1D,IAAI,CAACi5N,cAAc,CAAG,IAAI,CAAC15N,oBAAoB,CAACS,SAAS,CAAC,gEAE9D,IAAI,CAAC44N,0BAA0B,EACnC,EAEA/8N,EAAAA,CAAUA,CAACgF,SAAS,CAAC,uBAhFyB,CAC1CC,SAAU,CACNi3N,cAAe,GACnB,EACA52N,WAAYy2N,GACZ12N,SITW,8wBJUf,G,gBKUA,SAASg4N,GAAgB35N,CAAoB,CAAE08L,CAA0B,EACrE,IAAI,CAAC18L,oBAAoB,CAAGA,EAC5B,IAAI,CAAC45N,WAAW,CAAG,IAAI,CAACC,wBAAwB,GAChD,IAAI,CAACD,WAAW,CAACE,aAAa,CAAG,IAAI,CAACC,cAAc,GACpD,IAAI,CAACH,WAAW,CAACI,YAAY,CAAG,IAAI,CAACC,aAAa,EACtD,CCFA,SAASC,KACL,MAAO,CACHnsN,SAAU,IACVpM,SC1BO,6sCD2BPqM,MAAO,CACHnI,SAAU,IACVs0N,WAAY,IACZC,iBAAkB,IAClBv8K,SAAU,IACV5qC,SAAU,IACV4hB,SAAU,IACVwlM,eAAgB,IAChBr8L,WAAY,IACZ0mL,eAAgB,IAChB3gN,QAAS,IACT3C,OAAQ,IACRk5N,WAAY,IACZn/B,gBAAiB,GACrB,EACA7sL,iBAAkB,GAClB1M,WAAY,0BACZyM,aAAc,QACdikI,WAAY,EAChB,CACJ,CAIA,SAASioF,GAAwBj8N,CAAQ,CAAE0B,CAAoB,CAAEw6N,CAAmB,CAAE92M,CAAa,CAAEk0K,CAAqB,CAAE6iC,CAAY,CAAE/9B,CAA0B,EAChK,IAAI,CAACp+L,QAAQ,CAAGA,EAChB,IAAI,CAAC0B,oBAAoB,CAAGA,EAC5B,IAAI,CAACw6N,mBAAmB,CAAGA,EAC3B,IAAI,CAAC92M,aAAa,CAAGA,EACrB,IAAI,CAACg3M,cAAc,CAAG,GACtB,IAAI,CAAC75K,eAAe,CAAG,GACvB,IAAI,CAAC+2I,qBAAqB,CAAGA,EAC7B,IAAI,CAAC+iC,oBAAoB,CAAG,GAC5B,IAAI,CAACC,kBAAkB,CAAG,GAC1B,IAAI,CAACpC,aAAa,CAAG,KACrB,IAAI,CAACqC,aAAa,CAAGJ,EACrB,IAAI,CAACK,cAAc,CAAG,GACtB,IAAI,CAAChyG,0BAA0B,CAAG4zE,EAClC,IAAI,CAACM,cAAc,CAAG,IAAI,CAACl0E,0BAA0B,CAACm0E,yBAAyB,CAAC,IAAI,CAACp3L,QAAQ,CAACmpH,YAAY,CAC9G,CD/CA2qG,GAAgBn9N,OAAO,CAAG,CAAC,uBAAwB,6BAA6B,CAQhFm9N,GAAgB1hO,SAAS,CAACgiO,aAAa,CAAG,kBACtC,IAAQ,CAACj9B,cAAc,GAAK32L,GAAAA,CAAoBA,CAACwzF,gBAAgB,CAACG,YAAY,EAAI,IAAI,CAACgjG,cAAc,GAAK32L,GAAAA,CAAoBA,CAACwzF,gBAAgB,CAACE,eAAe,CACpJ,IAAI,CAAC6/H,WAAW,CAACnnN,GAAG,CAExB,EAAE,EAGbknN,GAAgB1hO,SAAS,CAAC8hO,cAAc,CAAG,WACvC,OAAO,IAAI,CAACH,WAAW,CAAC,IAAI,CAAC58B,cAAc,CAAC,EAAI,IAAI,CAAC48B,WAAW,CAAC39J,OAAO,EAG5E09J,GAAgB1hO,SAAS,CAAC4hO,wBAAwB,CAAG,WAEjD,IAAMkB,EAAa,IAAIC,GAAAA,CAAQA,CAAC,CAC5B73N,MAAO,IAAI,CAACnD,oBAAoB,CAACS,SAAS,CAAC,gDAC3C3H,OAAQ,IACZ,GACMmiO,EAAiB,IAAID,GAAAA,CAAQA,CAAC,CAChC73N,MAAO,IAAI,CAACnD,oBAAoB,CAACS,SAAS,CAAC,gDAC3C3H,OAAQ,IAAI,CAACoiO,iBAAiB,CAACzkO,IAAI,CAAC,IAAI,CAAE,IAC1C+M,SAAU,qBACd,GACM23N,EAAoB,IAAIH,GAAAA,CAAQA,CAAC,CACnC73N,MAAO,IAAI,CAACnD,oBAAoB,CAACS,SAAS,CAAC,mDAC3C3H,OAAQ,IAAI,CAACoiO,iBAAiB,CAACzkO,IAAI,CAAC,IAAI,CAAE,IAC1C+M,SAAU,qBACd,GAEA,MAAO,CACHy4D,QAAS8+J,EACTtoN,IAAK,CAACwoN,EAAgBE,EAAkB,CACxCC,WAAYH,EACZI,cAAeF,EACfG,YAAaL,EACbM,eAAgBJ,CACpB,CACJ,EAEAxB,GAAgB1hO,SAAS,CAACijO,iBAAiB,CAAG,SAAU9wG,CAAQ,EAC5D,IAAI,CAACoxG,MAAM,CAAC,CACRpxG,SAAUA,CACd,EACJ,EAEA9tH,EAAAA,CAAUA,CAACgF,SAAS,CAAC,kBAhEa,CAC9BC,SAAU,CACNi6N,OAAQ,IACR15N,UAAW,IACXmR,SAAU,IACVyxM,eAAgB,IAChB1nB,eAAgB,GACpB,EACAr7L,SGfW,idHgBXC,WAAY+3N,EAChB,G,0BCFAr9N,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiBkqN,IACtCA,GAAc19N,OAAO,CAAG,EAAE,CAE1BF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,0BAA2B24N,IACjDA,GAAwB/9N,OAAO,CAAG,CAAC,WAAY,uBAAwB,sBAAuB,gBAAiB,wBAAyB,eAAgB,6BAA6B,CAiDrL+9N,GAAwBtiO,SAAS,CAACksH,UAAU,CAAG,SAAU+G,CAAO,EACnCjvH,KAAAA,IAArBivH,EAAQrlH,QAAQ,EAChB,IAAI,CAAC41N,mBAAmB,GAGDx/N,KAAAA,IAAvBivH,EAAQovG,UAAU,EAClB,KAAI,CAACQ,cAAc,CAAG,IAAI,CAAC96N,oBAAoB,CAACS,SAAS,CAAC,gEAAiE,CAAEwC,MAAO,IAAI,CAAC43N,aAAa,CAACa,gBAAgB,CAAC,IAAI,CAACpB,UAAU,CAAE,EAAC,CAElM,EAEAC,GAAwBtiO,SAAS,CAACwjO,mBAAmB,CAAG,WAIpD,GAHA,IAAI,CAACd,oBAAoB,CAAG,WAAI,CAAC90N,QAAQ,CAAC0oH,QAAQ,CAClD,IAAI,CAACqsG,kBAAkB,CAAG,IAAI,CAAC/0N,QAAQ,CAACmpH,YAAY,GAAK3oH,GAAAA,CAAoBA,CAACC,cAAc,CAACoyF,UAAU,CAEnG,CAAyB,IAAzB,IAAI,CAACyiG,eAAe,CAAY,CAChC,IAAI,CAACq9B,aAAa,CAAG,CACjBmD,oBAAqB,EACzB,EACA,MACJ,CAEA,IAAI,CAACnD,aAAa,CAAG,CACjBmD,oBAAqB,IAAI,CAAChB,oBAAoB,CAC9CtxG,uBAAwB,IAAI,CAACuuE,qBAAqB,CAAC3uE,kBAAkB,CAAC,IAAI,CAACllH,OAAO,CAAE,IAAI,CAAC3C,MAAM,CAAE,IAAI,CAACyE,QAAQ,CAAC0oH,QAAQ,EAAElF,sBAAsB,CAEvJ,EAEAkxG,GAAwBtiO,SAAS,CAACstN,kBAAkB,CAAG,SAAUn7F,CAAQ,EACjE,IAAI,CAACwxG,SAAS,KACd,IAAI,CAAClB,cAAc,CAAG,GACtB,IAAI,CAAC3pC,OAAO,CAAC3mE,GAErB,EAEAmwG,GAAwBtiO,SAAS,CAAC2jO,SAAS,CAAG,kBAC1C,KAAwB3/N,IAApB,IAAI,CAAC+hC,UAAU,IAAkB,IAAI,CAACA,UAAU,CAACwyB,KAAK,GAI1D,IAAI,CAACgqK,mBAAmB,CAACjyG,kBAAkB,CAAC,IAAI,CAACvqF,UAAU,CAAC4N,OAAO,CAAE,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,gDAClG,GACX,EAEA85N,GAAwBtiO,SAAS,CAAC84L,OAAO,CAAG,SAAU3mE,CAAQ,EAC1D,IAAIyxG,EAA6B,GAEjCtoM,EAAAA,CAAOA,CAACC,UAAU,CAAC,WAAY,eAAgB,CAAC,EAAE,IAAI,CAAC3tB,QAAQ,CAACmpH,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC2rG,oBAAoB,CAAG,WAAa,GAAG,CAAC,EAE9E,KAA3C,IAAI,CAACnC,aAAa,CAACmD,mBAAmB,EAAa,SAAI,CAACnD,aAAa,CAACnvG,sBAAsB,EAC5FwyG,CAAAA,EAA6B,IAAI,CAACrD,aAAa,CAACnvG,sBAAsB,EAG1E,IAAI,CAACxjH,QAAQ,CAACmkH,QAAQ,CAAGI,EAEU,KAA/ByxG,GACA,KAAI,CAACh2N,QAAQ,CAAC4R,OAAO,CAAGokN,CAAyB,EAGrD,IAAI,CAACh+K,QAAQ,CAAC,CAAEh4C,SAAU,IAAI,CAACA,QAAQ,GAClCvI,KAAK,CAAC6lB,QAAQ4C,IAAI,EAClBxoB,OAAO,CAAC,KACL,IAAI,CAACm9N,cAAc,CAAG,EAC1B,EACR,EAEAH,GAAwBtiO,SAAS,CAACwtN,UAAU,CAAG,WAE3CqW,KADyC,IAAI,CAACj2N,QAAQ,CAAC+5K,OAAO,EAAW,IAAI,CAAC/5K,QAAQ,CAACuvL,WAAW,CAAC97L,MAAM,CAAG,EACzE,IAAI,CAACkhO,mBAAmB,CAAC9xG,iBAAiB,CAAC,IAAI,CAACn1G,MAAM,CAAC9c,IAAI,CAAC,IAAI,GAAK,IAAI,CAAC8c,MAAM,EACvH,EAEAgnN,GAAwBtiO,SAAS,CAACsb,MAAM,CAAG,WACvC,IAAI,CAACN,QAAQ,CAAC,CAAE+N,OAAQ,EAAM,EAClC,EASAu5M,GAAwBtiO,SAAS,CAAC8jO,iBAAiB,CAAG,SAAUniC,CAAW,CAAEjjE,CAAK,CAAEz3D,CAAO,EACvF,IAAI,CAACr5D,QAAQ,CAACuvL,WAAW,CAAGwE,EAG5B,IAAI,CAAC/kK,QAAQ,EACjB,E,OGvJiD,OAE3CmnM,GACFt/N,YAAY8uH,CAAoB,CAAEz1E,CAAI,CAAErnC,CAAa,CAAEb,CAAI,CAAE,CACzD,IAAI,CAAC+9G,qBAAqB,CAAGJ,EAC7B,IAAI,CAACx1E,KAAK,CAAGD,EACb,IAAI,CAACxgC,cAAc,CAAG7G,EACtB,IAAI,CAACsiN,KAAK,CAAGnjN,CACjB,CAEAouN,YAAYxtH,CAAI,CAAEwzE,CAAM,CAAEtkK,CAAQ,CAAE5Z,CAAO,CAAEmlH,CAAQ,CAAE,CACnD,IAAMgzG,EAAW,IAAI,CAAC1nC,kBAAkB,CAAC,KAAM/lF,EAAM9wF,EAAUskK,GAAU,IAAI,CAACjsI,KAAK,CAACy+I,WAAW,GAAI1wL,EAASmlH,GAC5G,OAAO,IAAI,CAAC0C,qBAAqB,CAAChhH,6BAA6B,CAACsxN,EACpE,CAEAC,YAAYxuK,CAAG,CAAE1jD,CAAE,CAAEi/G,CAAQ,CAAE,CAC3B,IAAMgzG,EAAW,IAAI,CAACrnC,kBAAkB,CAAClnI,EAAK1jD,EAAIi/G,GAClD,OAAO,IAAI,CAAC0C,qBAAqB,CAAChhH,6BAA6B,CAACsxN,EACpE,CAEA18C,YAAY7xH,CAAG,CAAE,CACb,OAAO,IAAI,CAACi+D,qBAAqB,CAAC7gH,qBAAqB,CAAC4iD,EAC5D,CAEAknI,mBAAmBlnI,CAAG,CAAEhwC,CAAQ,CAAEurG,CAAQ,CAAE,CACxC,MAAO,CACHzxG,QAASk2C,EAAIl2C,OAAO,CACpBjN,GAAImjD,EAAInjD,EAAE,CACVm1K,KAAMhyH,EAAIgyH,IAAI,CACd2U,SAAU32K,EACV4wG,SAAUrF,CACd,CACJ,CAEAsrE,mBAAmBvqL,CAAE,CAAE6qL,CAAQ,CAAEn3K,CAAQ,CAAEo3K,CAAU,CAAEhxL,CAAO,CAAEmlH,CAAQ,CAAE,CACtE,MAAO,CACHqF,SAAUrF,GAAY,GACtBzxG,QAAS1T,GAAW,GACpB47K,KAAMmV,EAAW,IAAI,CAACk8B,KAAK,CAAC18K,WAAW,CAACwgJ,GAAUntK,QAAQ,GAAK,GAC/Dnd,GAAIP,GAAM,IAAI,CAACsL,cAAc,CAACuK,IAAI,GAClCw0K,SAAU32K,GAAsB,GAChCq3K,WAAYD,EAAa,IAAI,CAACi8B,KAAK,CAAC18K,WAAW,CAACygJ,GAAYptK,QAAQ,GAAK,EAC7E,CACJ,CACJ,CCjCA,SAASytK,GAAYp1L,CAAoB,EACrC,IAAI,CAACA,oBAAoB,CAAGA,CAChC,CDiCAg8N,GAAiBx/N,OAAO,CAAG,CAAC,uBAAwB,OAAQ,gBAAiB,OAAO,CACpFF,EAAAA,CAAUA,CAACC,OAAO,CAAC,mBAAoBy/N,IEnCvC1/N,EAAAA,CAAUA,CAACqI,QAAQ,CAAC,0BAfwB,MAGxCjI,aAAc,CACV,IAAI,CAAC4F,MAAM,CAAG,CACV85N,oBAAqB,GACrBC,YAAa,EACjB,CACJ,CAEAt3N,MAAO,CACH,MAAO,CAAEzC,OAAQ,IAAI,CAACA,MAAM,CAChC,CACJ,G,QDAA8yL,GAAY54L,OAAO,CAAG,CAAC,uBAAuB,CAK9CF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,cAbO,CACxBC,SAAU,CACN8zB,MAAO,GACX,EACAzzB,WAAYwzL,GACZzzL,SEVW,2KFWf,G,iBGPyD,OAEnD26N,WAA8Bv8N,EAAAA,CAAWA,CAC3CrD,YAAYsD,CAAoB,CAAEugM,CAAsB,CAAE,CACtD,KAAK,GAEL,IAAI,CAACC,uBAAuB,CAAGD,EAC/B,IAAI,CAACg8B,UAAU,CAAGv8N,EAAqBS,SAAS,CAAC,kCACjD,IAAI,CAAC+7N,cAAc,CAAG,WAAI,CAAC32N,QAAQ,CAAC0oH,QAAQ,CAAY,CAAC,QAAQ,EAAE,IAAI,CAAC1oH,QAAQ,CAAC0oH,QAAQ,CAAC,CAAC,CAAG,EAClG,CAEAkuG,aAAc,CACV,IAAMC,EAAe,IAAI,CAAC72N,QAAQ,CAACwrH,MAAM,CAAChwH,MAAM,CAC1Cs7N,EAAgB,IAAI,CAAC92N,QAAQ,CAAC4R,OAAO,CAE3C,GAAIilN,OAAAA,GAAyBA,IAAiB,IAAI,CAACE,aAAa,CAAE,CAC9D,IAAI,CAACp8B,uBAAuB,CAACK,qBAAqB,CAAC,CAAC,OAAO,EAAE,IAAI,CAACh7L,QAAQ,CAAC0oH,QAAQ,CAAC,CAAC,CAAEmuG,GACvF,IAAI,CAACG,sBAAsB,CAAC,SAAUH,GACtC,MACJ,CAAO,GAAI,IAAI,CAAC72N,QAAQ,CAACwrH,MAAM,CAACwgG,WAAW,EAAI8K,IAAkB,IAAI,CAAC54N,OAAO,CAAE,CAC3E,IAAI,CAACy8L,uBAAuB,CAACs8B,sBAAsB,CAAC,CAAC,OAAO,EAAE,IAAI,CAACj3N,QAAQ,CAAC0oH,QAAQ,CAAC,CAAC,CAAEouG,GACxF,IAAI,CAACI,WAAW,CAACJ,GACjB,MACJ,CACA,IAAI,CAACn8B,uBAAuB,CAACw8B,WAAW,CAAC,CAAC,OAAO,EAAE,IAAI,CAACn3N,QAAQ,CAAC0oH,QAAQ,CAAC,CAAC,CAC/E,CACJ,CAcA+tG,GAAsB9/N,OAAO,CAAG,CAAC,uBAAwB,yBAAyB,CAClFF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,eAb0B,CAC3CC,SAAU,CACNsE,SAAU,IACVk3N,YAAa,IACbF,uBAAwB,IACxB94N,QAAS,IACT64N,cAAe,GACnB,EACAj7N,SCxCW,2JDyCXC,WAAY06N,EAChB,G,wCE1CO,OACqBr4N,IACpB,MAAM,MAAU,CAAC,2EAA2E,EAAEA,EAAa,CAAC,CAChH,E,gBCGJ,IAAMg5N,GAAuBC,GAClBA,EAAiBl+N,GAAG,CAAEm+N,GAClB,EACH1P,UAAW0P,EACX3kO,MAAO4kO,CAAAA,EAAAA,GAAAA,CAAAA,EAAsBD,EACjC,ICJF9lM,GAAU28K,GAAAA,CAAiBA,CAACqpB,SAAS,CAAmD,CAC1FppB,YAAcC,GAA4BznC,QAAQ1vK,OAAO,CAAiB,CAAEk2D,KAAMihJ,EAAcpiL,MAAM,CAACnK,QAAQ,GAAIlc,QAASyoM,EAAczoM,OAAQ,GAClJ0oM,KAAMC,GAAAA,CAAWA,CACjBlU,eAAgBo9B,CAAAA,EAAAA,GAAAA,CAAAA,EDKkBlP,GAC3BA,EAAmBpvN,GAAG,CAAEu+N,GACpB,EACHloM,MAAO4nM,GAAoBM,EAAYjQ,UAAU,EACjDrqN,MAAOs6N,EAAYj6M,IACvB,KCTJ/Z,IAAMzE,GAAWwvM,GAAgCxvM,EAAOb,YAAY,CACxE,GAEau5N,GAAyBv5N,GAC3BozB,GAAQ,CAAEpzB,aAAcA,CAAa,ECXzC,OAAMw5N,GACQC,gBAAuD,IAAIt0L,GAErEu0L,CAAAA,cAAc15N,CAAoB,CAAsC,CAC3E,IAAMqpN,EAAa,IAAI,CAACoQ,eAAe,CAACr4N,GAAG,CAACpB,GAE5C,OAAOqpN,KAAerxN,IAAfqxN,EAA2BlmK,CAAAA,EAAAA,GAAAA,EAAAA,EAAGkmK,GAAc,IAAI,CAACsQ,6BAA6B,CAAC35N,EAC1F,CAEO45N,iBAAiB55N,CAAoB,CAAQ,CAChD,IAAI,CAACy5N,eAAe,CAAC52N,MAAM,CAAC7C,EAChC,CAEO65N,YAAmB,CACtB,IAAI,CAACJ,eAAe,CAAC32J,KAAK,EAC9B,CAEQ62J,8BAA8B35N,CAAoB,CAAsC,CAG5F,OAAOozB,GAF+BpzB,GAEvB6wB,IAAI,CACfmyB,CAAAA,EAAAA,EAAAA,CAAAA,EAAKqmK,IACD,IAAI,CAACoQ,eAAe,CAACx1K,GAAG,CAACjkD,EAAcqpN,EAC3C,GACAx2K,CAAAA,EAAAA,GAAAA,CAAAA,IAER,CACJ,CC5BAx6C,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,2BAA4B,CAC3C,aACA,IACI,IAAMgtM,EAAsB,IAAIN,GAShC,OAPAjvN,EAAWoG,GAAG,CAAC,sBAAuB,CAACtc,EAAO0lO,EAAcC,KACxD,GAAIA,KAAkBhiO,IAAlBgiO,EAA6B,CAC7B,IAAMh6N,EAAew8C,OAAOw9K,EAAcn5N,MAAM,CAACb,YAAY,EAC7D85N,EAAoBF,gBAAgB,CAAC55N,EACzC,CACJ,GAEO85N,CACX,EACH,CCuBmC,OAE9BG,WAAiCn+N,EAAAA,CAAWA,CAC9CrD,YACIsY,CAAM,CACNvG,CAAO,CACP2jF,CAAQ,CACR/tF,CAAY,CACZC,CAAM,CACNwM,CAAS,CACT9Q,CAAoB,CACpBm+N,CAAgB,CAChB5yG,CAAmB,CACnBjD,CAAmB,CACnB81G,CAAuB,CACvB1hC,CAA0B,CAC1BskB,CAAc,CACdqd,CAAwB,CACxBptN,CAAU,CACZ,CACE,KAAK,GAEL,IAAI,CAAC4yG,OAAO,CAAG7uG,EACf,IAAI,CAACisM,QAAQ,CAAGxyM,EAChB,IAAI,CAAC0nK,SAAS,CAAG/jF,EACjB,IAAI,CAACj7E,qBAAqB,CAAGnX,EAC7B,IAAI,CAACs+N,iBAAiB,CAAGH,EACzB,IAAI,CAACI,oBAAoB,CAAGhzG,EAC5B,IAAI,CAACxC,2BAA2B,CAAG2zE,EACnC,IAAI,CAAC8hC,oBAAoB,CAAGl2G,EAC5B,IAAI,CAAC44F,eAAe,CAAGF,EACvB,IAAI,CAACyd,yBAAyB,CAAGJ,EACjC,IAAI,CAAC/mN,WAAW,CAAGrG,EAEnB,IAAI,CAACytN,qBAAqB,CAAGr4N,GAAAA,CAC7B,KAAI,CAACwkH,gBAAgB,CAAGA,GAAAA,CACxB,KAAI,CAACvmH,MAAM,CAAGA,EACd,IAAI,CAACwM,SAAS,CAAGA,EAEjB,IAAI,CAACs5E,IAAI,CAAG,IAAI,CAACygC,gBAAgB,CAACl3B,IAAI,CACtC,IAAI,CAAC6pF,mBAAmB,CAAG,EAAE,CAC7B,IAAI,CAACivB,iBAAiB,CAAG,KACzB,IAAI,CAACkyB,YAAY,CAAG,KACpB,IAAI,CAACnG,aAAa,CAAG,KACrB,IAAI,CAACoG,aAAa,CAAG,GACrB,IAAI,CAACC,YAAY,CAAG,GACpB,IAAI,CAACC,gBAAgB,CAAG,GACxB,IAAI,CAAChoC,uBAAuB,CAAG,GAC/B,IAAI,CAACioC,YAAY,CAAG,GACpB,IAAI,CAACz8N,MAAM,CAAG87N,EAAwB97N,MAAM,CAC5C,IAAI,CAAC08N,kBAAkB,CAAG,GAC1B,IAAI,CAACxL,WAAW,CAAG,KACnB,IAAI,CAAC9O,cAAc,CAAG,GACtB,IAAI,CAAC3gN,OAAO,CAAGM,EAAaN,OAAO,CACnC,IAAI,CAACk7N,gBAAgB,CAAG,GACxB,IAAI,CAACC,+BAA+B,CAAG,KACvC,IAAI,CAAC9Q,kBAAkB,CAAG+Q,CAAAA,EAAAA,GAAAA,CAAAA,EAAwBn/N,EAAqBS,SAAS,CAAC,8CAEjF,IAAI03C,EAAc,IAAI,CAAC4wE,2BAA2B,CAAC6zE,cAAc,EACjE,KAAI,CAAC7B,WAAW,CAAG5iJ,MAAAA,EAAoDA,EAAYinL,WAAW,CAAG,IAAI,CAACle,eAAe,CAAC7oB,YAAY,CAACtsG,MAAM,CAEzI,IAAI,CAACixG,cAAc,CAAG,GAEtB,IAAI,CAAC+/B,WAAW,CAAG,IACf,IAAI,CAACjsN,SAAS,CAACvH,GAAG,CAAC,IAAI,CAAC+N,WAAW,CAACM,SAAS,CAAC+kN,EAAe,KAAM,GAAM,KAAM,KAAM,KAAM,IAC/F,EAEA,IAAI,CAACE,sBAAsB,CAAG,CAACwC,EAAiBC,KAC5C,IAAI,CAACxuN,SAAS,CAACw1B,MAAM,CAAC+4L,EAAiBC,EAC3C,EAEA,IAAI,CAACC,iBAAiB,CAAGv/N,EAAqBS,SAAS,CAAC,yCAC5D,CAEA+gI,SAAU,CA2BN,GA1BA,IAAI,CAACo9F,aAAa,CAAG,IAAI,CAAC1hL,OAAO,EAAI,IAAI,CAACkxE,YAAY,CAAC0B,SAAS,CAChE,IAAI,CAAC5X,UAAU,CAAG,IAAI,CAACA,UAAU,EAAI,GACrC,IAAI,CAAC4+E,uBAAuB,CAAG,IAAI,CAAC3/K,qBAAqB,CAAC1W,SAAS,CAAC,oDACpE,IAAI,CAACq+N,gBAAgB,CAAG,IAAI,CAACU,yBAAyB,GACtD,IAAI,CAACpF,gBAAgB,CACjB,IAAI,CAAChsG,YAAY,CAACY,YAAY,GAAK,IAAI,CAAC0vG,qBAAqB,CAACp4N,cAAc,CAAC8xF,OAAO,EACpF,IAAI,CAACg2B,YAAY,CAACY,YAAY,GAAK,IAAI,CAAC0vG,qBAAqB,CAACp4N,cAAc,CAACoyF,UAAU,EACvF,IAAI,CAAC01B,YAAY,CAACY,YAAY,GAAK,IAAI,CAAC0vG,qBAAqB,CAACp4N,cAAc,CAACI,QAAQ,CACzF,IAAI,CAAC+4N,eAAe,CAAG,WAAI,CAACrxG,YAAY,CAACG,QAAQ,CACjD,IAAI,CAACmxG,aAAa,CAAG,IAAI,CAACD,eAAe,EAAI,IAAI,CAACrxG,YAAY,CAACY,YAAY,GAAK,IAAI,CAAC0vG,qBAAqB,CAACp4N,cAAc,CAACiyF,kBAAkB,CAC5I,IAAI,CAAC4iG,eAAe,CAAG,IAAI,CAACwkC,wBAAwB,CAAC,IAAI,CAACvxG,YAAY,EAEtE,IAAI,CAACwxG,iBAAiB,GACtB,IAAI,CAACC,gBAAgB,GAEhB,IAAI,CAACjB,aAAa,EACnB,IAAI,CAACnhD,wBAAwB,GAG7B,IAAI,CAACrvD,YAAY,CAACmqE,iBAAiB,CAACj/L,MAAM,CAAG,IAC7C,IAAI,CAACilO,oBAAoB,CAACpyG,aAAa,CAAC,IAAI,CAACiC,YAAY,CAAC5jH,EAAE,CAAE,IAAI,CAAC4jH,YAAY,CAACmqE,iBAAiB,EACjG,IAAI,CAACgmC,oBAAoB,CAACvpM,SAAS,CAAC,IAAI,CAACo5F,YAAY,CAAC5jH,EAAE,CAAE,IAAI,CAACs1N,qBAAqB,CAACrpO,IAAI,CAAC,IAAI,IAGlG,IAAI,CAACuoO,kBAAkB,CAAG,IAAI,CAACe,mBAAmB,GAE9C,IAAI,CAAC3xG,YAAY,CAACY,YAAY,GAAK3oH,GAAAA,CAAoBA,CAACC,cAAc,CAACI,QAAQ,CAAE,CACjF,IAAIq7H,EAAQ17H,GAAAA,CAAoBA,CAACC,cAAc,CAACC,kBAAkB,CAClC,MAA5B,IAAI,CAAC6nH,YAAY,CAACuoG,KAAK,CACvB50F,EAAQ17H,GAAAA,CAAoBA,CAACC,cAAc,CAACE,kBAAkB,CAC3B,MAA5B,IAAI,CAAC4nH,YAAY,CAACuoG,KAAK,EAC9B50F,CAAAA,EAAQ17H,GAAAA,CAAoBA,CAACC,cAAc,CAACG,oBAAoB,EAEpE,IAAI,CAACu2L,cAAc,CAAG,IAAI,CAACj0E,2BAA2B,CAACk0E,yBAAyB,CAACl7D,EACrF,MACI,IAAI,CAACi7D,cAAc,CAAG,IAAI,CAACj0E,2BAA2B,CAACk0E,yBAAyB,EAExF,CAEAxlB,WAAY,CACR,IAAI,CAACuoD,qBAAqB,CAAG78M,QAAQjoB,OAAO,CAAC,IAAI,CAACi7K,SAAS,CAAC,EAAE,CAACjrJ,aAAa,CAAC,6BACjF,CAEAi5F,WAAW+G,CAAO,CAAE,CACajvH,KAAAA,IAAzBivH,EAAQkD,YAAY,EAAmBlD,EAAQkD,YAAY,CAACiU,aAAa,IACzE,IAAI,CAACw9F,gBAAgB,GAGD5jO,KAAAA,IAApBivH,EAAQhuE,OAAO,EAAmBguE,EAAQhuE,OAAO,CAACmlF,aAAa,KAC/D,IAAI,CAACu8F,aAAa,CAAG,IAAI,CAAC1hL,OAAO,CAE5B,IAAI,CAAC0hL,aAAa,GACnB,IAAI,CAACnhD,wBAAwB,GAEO,YAAhC,OAAO,IAAI,CAACwiD,eAAe,EAC3B,IAAI,CAACA,eAAe,KAK5B/0G,CAAAA,KAAyBjvH,IAAzBivH,EAAQkD,YAAY,EAAkBlD,KAAoCjvH,IAApCivH,EAAQg1G,uBAAuB,GACrE,KAAI,CAACjB,gBAAgB,CAAG,IAAI,CAACkB,uBAAuB,EAAC,EAGrDj1G,CAAAA,KAA0BjvH,IAA1BivH,EAAQk1G,aAAa,EAAkBl1G,KAA0BjvH,IAA1BivH,EAAQm1G,aAAa,EAAkBn1G,KAA0BjvH,IAA1BivH,EAAQo1G,aAAa,GACnG,IAAI,CAACC,oBAAoB,GAG7B,IAAI,CAACC,UAAU,CAAG,IAAI,CAACC,uBAAuB,GAC9C,IAAI,CAACzB,kBAAkB,CAAG,IAAI,CAACe,mBAAmB,EACtD,CAEA17G,YAAa,CACT,IAAI,CAACk6G,oBAAoB,CAAC5zG,WAAW,CAAC,IAAI,CAACyD,YAAY,CAAC5jH,EAAE,CAAE,IAAI,CAACs1N,qBAAqB,CAACrpO,IAAI,CAAC,IAAI,GAC5F,IAAI,CAAC2zF,IAAI,GAAKygC,GAAAA,CAAgBA,CAAC/yB,IAAI,EACnC,IAAI,CAAC4oI,gBAAgB,CAAC,CAAEj9N,SAAU,EAAM,GAG5C,IAAI,CAACk9N,kCAAkC,EAC3C,CAEAziD,OAAOlgJ,CAAU,CAAEktF,CAAO,CAAE,CACR,OAAZA,IACAxrH,OAAOkhB,MAAM,CAAC,IAAI,CAAC+9M,YAAY,CAAEzzG,GACjC,IAAI,CAACrH,OAAO,CAACjhG,KAAK,CAAC,qBAAsB,CAAE3Y,GAAI,IAAI,CAAC45G,OAAO,CAAC3oF,GAAG,CAAEw3L,mBAAoB,GAAMkO,WAAY,EAAM,IAGjH,IAAI,CAAClc,cAAc,CAAG,CAAC1mL,EAAWwyB,KAAK,CACvC,IAAI,CAACgjK,WAAW,CAAGx1L,CACvB,CAEA/qB,UAAW,CACP,IAAI,CAACm3E,IAAI,GAAK,IAAI,CAACygC,gBAAgB,CAACjzB,GAAG,CAAG,IAAI,CAAClhF,OAAO,GAAK,IAAI,CAAC8nN,oBAAoB,CAAC91G,iBAAiB,CAAC,IAAI,CAAChyG,OAAO,CAACjgB,IAAI,CAAC,IAAI,EACjI,CAEA+kO,OAAOpxG,CAAQ,CAAE,CAGb,GAFA,IAAI,CAACy0G,YAAY,CAAG,GAEhB,IAAI,CAACrL,WAAW,EAAI,CAAC,IAAI,CAACA,WAAW,CAAChjK,KAAK,CAAE,CAC7C,IAAI,CAACguK,oBAAoB,CAACj2G,kBAAkB,CAAC,IAAI,CAACirG,WAAW,CAAC5nL,OAAO,CAAE,IAAI,CAACz0B,qBAAqB,CAAC1W,SAAS,CAAC,gDAC5G,IAAI,CAACo+N,YAAY,CAAG,GACpB,MACJ,CAEAtrM,EAAAA,CAAOA,CAACC,UAAU,CAAC,WAAY,gBAAiB,CAAC,EAAE,IAAI,CAAC46F,YAAY,CAACY,YAAY,CAAC,CAAC,EAAE,WAAI,CAACZ,YAAY,CAACG,QAAQ,CAAY,WAAa,GAAG,CAAC,EAC5I,IAAI,CAACowG,YAAY,CAAC30G,QAAQ,CAAGI,EAC7B,IAAI,CAACu0G,YAAY,CAAClnN,OAAO,CAAG,IAAI,CAAC+gN,aAAa,CAACmD,mBAAmB,CAAG,IAAI,CAACnD,aAAa,CAACnvG,sBAAsB,CAAG,IAAI,CAACmvG,aAAa,CAACzrG,WAAW,CAE/I,IAAI,CAACwxG,oBAAoB,CACpB9wN,OAAO,CAAC,IAAI,CAAC1J,OAAO,CAAE,IAAI,CAAC46N,YAAY,CAAE,IAAI,CAACvwG,YAAY,EAC1D31H,IAAI,CAAC,KACF,IAAI,CAACorH,OAAO,CAACjhG,KAAK,CAAC,qBAAsB,CAAE3Y,GAAI,IAAI,CAAC45G,OAAO,CAAC3oF,GAAG,CAAEw3L,mBAAoB,GAAOkO,WAAY,EAAM,GAC9G,IAAI,CAACx2I,IAAI,CAAG,IAAI,CAACygC,gBAAgB,CAACl3B,IAAI,CACtC,IAAI,CAAC+sI,gBAAgB,CAAC,CAAEj9N,SAAU,GAAOo9N,cAAe,EAAK,GAC7D,IAAI,CAAChC,YAAY,CAAG,GACpB,IAAI,CAAC8B,kCAAkC,EAC3C,GACCrjO,KAAK,CAAC,KACH,IAAI,CAACuhO,YAAY,CAAG,EACxB,EACR,CAEAiC,WAAWryH,CAAI,CAAEwzE,CAAM,CAAE,CACrB,OAAO,IAAI,CAACq8C,iBAAiB,CAACrC,WAAW,CAACxtH,EAAMwzE,EAAQ,IAAI,CAAC7zD,YAAY,CAAC5jH,EAAE,CAAE,IAAI,CAAC4jH,YAAY,CAAC32G,OAAO,CAAE,IAAI,CAAC22G,YAAY,CAACG,QAAQ,EAAE91H,IAAI,CAAC,IACtI,KAAyBwD,IAAzB,IAAI,CAAC8kO,eAAe,EAAiB,IAAI,CAACA,eAAe,CAAC,CAAE92N,GAAI,IAAI,CAACmkH,YAAY,CAAC5jH,EAAE,GAC7ErF,GAEf,CAEA67N,cAAcrzK,CAAG,CAAE,CACf,OAAO,IAAI,CAAC2wK,iBAAiB,CAACnC,WAAW,CAACxuK,EAAK,IAAI,CAACygE,YAAY,CAAC5jH,EAAE,EAAE/R,IAAI,CAAC,IACtE,KAAyBwD,IAAzB,IAAI,CAAC8kO,eAAe,EAAiB,IAAI,CAACA,eAAe,CAAC,CAAE92N,GAAI9E,EAAShI,IAAI,CAACqN,EAAE,GACzErF,GAEf,CAEA87N,cAActzK,CAAG,CAAE,CACf,OAAO,IAAI,CAAC2wK,iBAAiB,CAAC9+C,WAAW,CAAC7xH,EAC9C,CAEAouK,kBAAkBniC,CAAW,CAAE,CAC3B,IAAI,CAAC+kC,YAAY,CAACvpC,WAAW,CAAG,IAAIwE,EAAY,CAGpDsnC,gBAAgBrnC,CAAS,CAAE,CACvB,IAAI,CAAC8kC,YAAY,CAACpmC,iBAAiB,CAAG,IAAIsB,EAAU,CACpD,IAAI,CAACh2E,OAAO,CAACjhG,KAAK,CAAC,qBAAsB,CAAE3Y,GAAI,IAAI,CAAC45G,OAAO,CAAC3oF,GAAG,CAAEw3L,mBAAoB,GAAOkO,WAAY,EAAM,EAClH,CAEAd,sBAAsB50G,CAAO,CAAE,CAC3B,GAAIA,EAAQpyH,MAAM,GAAK+xH,GAAAA,CAAgBA,CAAC/yB,IAAI,EAI5C,IAAK,IAAI37F,EAAI,EAAGA,EAAI,IAAI,CAACiyH,YAAY,CAACmqE,iBAAiB,CAACj/L,MAAM,CAAE6C,IAC5D,GAAI,IAAI,CAACiyH,YAAY,CAACmqE,iBAAiB,CAACp8L,EAAE,CAACsb,OAAO,GAAKyzG,EAAQH,OAAO,CAACtzG,OAAO,CAAE,CAC5E,IAAI,CAAC22G,YAAY,CAACmqE,iBAAiB,CAACp8L,EAAE,CAAG+uH,EAAQH,OAAO,CACxD,KACJ,CAGJ,IAAK,IAAI5uH,EAAI,EAAGA,EAAI,IAAI,CAACswM,iBAAiB,CAACnzM,MAAM,CAAE6C,IAC/C,GAAI,IAAI,CAACswM,iBAAiB,CAACtwM,EAAE,CAACsb,OAAO,GAAKyzG,EAAQH,OAAO,CAACtzG,OAAO,CAAE,CAC/D,IAAI,CAACg1L,iBAAiB,CAACtwM,EAAE,CAAG+uH,EAAQH,OAAO,CAC3C,KACJ,CAGJ,IAAI,CAACm2G,eAAe,CAAC,IAAI,CAACz0B,iBAAiB,EAC/C,CAEArqB,YAAY5X,CAAS,CAAE,CACnB,IAAI,CAACu0D,YAAY,CAAGv0D,EACpB,IAAI,CAACk2D,gBAAgB,CAAC,CAAEj9N,SAAU+mK,EAAWq2D,cAAe,EAAM,GAClE,IAAI,CAACh9G,OAAO,CAACjhG,KAAK,CAAC,qBAAsB,CAAE3Y,GAAI,IAAI,CAAC45G,OAAO,CAAC3oF,GAAG,CAAEw3L,mBAAoBloD,EAAWo2D,WAAY,EAAM,EACtH,CAEAH,yBAA0B,CACtB,IAAM37N,EAAS,CACXq8N,eAAgB,IAAI,CAAC/yG,YAAY,CAACsqE,QAAQ,CAAC/oK,IAAI,CAC/C5M,KAAM,IAAI,CAACk+L,QAAQ,CAAC,cAAc,IAAI,CAAC7yF,YAAY,CAAC/qD,QAAQ,CAAE,WAC9DxrB,KAAM,IAAI,CAACopK,QAAQ,CAAC,cAAc,IAAI,CAAC7yF,YAAY,CAAC/qD,QAAQ,CAAE,WAClE,EACA,OAAO,IAAI,CAAClsD,qBAAqB,CAAC1W,SAAS,CAAC,+CAAgDqE,EAChG,CAEAs8N,qBAAsB,CAClB,OAAO,IAAI,CAAC9+N,MAAM,CAAC85N,mBAAmB,EAAI,CAAC,IAAI,CAAC2C,YAAY,EAAI,IAAI,CAAC30I,IAAI,GAAK,IAAI,CAACygC,gBAAgB,CAACl3B,IAAI,EAAI,IAAIvkF,KAAK,IAAI,CAACg/G,YAAY,CAAC/qD,QAAQ,EAAI,IAAIj0D,KAAK,IAAI,CAACg/G,YAAY,CAACjrD,MAAM,CACxL,CAEAg9J,yBAA0B,CACtB,GAAI,CAAiC,IAAjC,IAAI,CAACD,uBAAuB,CAC5B,MAAO,GAEX,IAAMmB,EAA+B,IAAI,CAACjzG,YAAY,CAACY,YAAY,GAAK,IAAI,CAAC0vG,qBAAqB,CAACp4N,cAAc,CAACqyF,cAAc,EAAI,IAAI,CAACy1B,YAAY,CAACI,sBAAsB,CACtKmsG,EAAuB,IAAI,CAACvsG,YAAY,CAACY,YAAY,GAAK,IAAI,CAAC0vG,qBAAqB,CAACp4N,cAAc,CAACqyF,cAAc,EAAI,WAAI,CAACy1B,YAAY,CAACG,QAAQ,CAEtJ,GAAI,CAAC8yG,GAAgC,CAAC1G,EAClC,MAAO,GAGX,IAAM2G,EAAwB,IAAI,CAACv4G,2BAA2B,CAACK,yBAAyB,GAElFm4G,EAAkC,IAAI,CAACnzG,YAAY,CAAC32G,OAAO,GAAK,IAAI,CAAC1T,OAAO,EAAI,CAAC,IAAI,CAACA,OAAO,CAAEu9N,EAAsB,CAAChnN,QAAQ,CAAC,IAAI,CAAC8zG,YAAY,CAACiD,MAAM,CAAC9+D,WAAW,EACnKivK,EACF,KAAiBvlO,IAAjB,IAAI,CAAC8H,OAAO,EAAkB,IAAI,CAACqqH,YAAY,CAACiD,MAAM,CAACwgG,WAAW,EAAI,IAAI,CAACzjG,YAAY,CAACY,YAAY,GAAK,IAAI,CAAC0vG,qBAAqB,CAACp4N,cAAc,CAACqyF,cAAc,CAErK,OAAO4oI,GAAmCC,CAC9C,CAEA3B,kBAAmB,CACf,IAAI,CAAClB,YAAY,CAAG,CAAE,GAAG,IAAI,CAACvwG,YAAY,EAEtC,IAAI,CAACA,YAAY,CAACmqE,iBAAiB,CAACj/L,MAAM,CAAG,GAC7C,KAAI,CAACmzM,iBAAiB,CAAG,IAAI,IAAI,CAACr+E,YAAY,CAACmqE,iBAAiB,CAAC,CAEzE,CAEAkpC,4BAA6B,CACzB,OAAQ,IAAI,CAACrzG,YAAY,CAACY,YAAY,EAClC,KAAK,IAAI,CAAC0vG,qBAAqB,CAACp4N,cAAc,CAACoyF,UAAU,CACzD,KAAK,IAAI,CAACgmI,qBAAqB,CAACp4N,cAAc,CAACI,QAAQ,CACnD,IAAI,CAACg+M,cAAc,CAAG,CAAC,IAAI,CAACxD,eAAe,CAACznB,qBAAqB,CAAC,IAAI,CAACrrE,YAAY,CAACzxE,MAAM,EAAE6T,KAAK,CACjG,KACJ,MAAK,IAAI,CAACkuK,qBAAqB,CAACp4N,cAAc,CAAC+xF,SAAS,CACpD,IAAI,CAACqsH,cAAc,CAAG,GACtB,KACJ,SACI,IAAI,CAACA,cAAc,CAAG,EAE9B,CACJ,CAEA8a,2BAA4B,CACxB,OAAO9/N,OAAOC,MAAM,CAAC,IAAI,CAAC++N,qBAAqB,CAACp4N,cAAc,EAAEvK,OAAO,CAAC,IAAI,CAACqyH,YAAY,CAACY,YAAY,EAAI,EAC9G,CAEA+wG,qBAAsB,CAClB,MAAOhiC,CAAAA,CAAQ,SAAI,CAACvgB,mBAAmB,CAAClkL,MAAM,EAAU,CAAC,IAAI,CAAC80H,YAAY,CAACszG,QAAQ,EAAI,CAAC,IAAI,CAACtzG,YAAY,CAACuzG,QAAQ,CACtH,CAEAC,qBAAsB,CAClB,OAAO,QAAI,CAACxzG,YAAY,CAACmqE,iBAAiB,CAACj/L,MAAM,EAAU,SAAI,CAAC80H,YAAY,CAACwxD,OAAO,EAAW,QAAI,CAACxxD,YAAY,CAACgnE,WAAW,CAAC97L,MAAM,CAGvIuoO,gBAAiB,CACb,IAAI,CAACtD,oBAAoB,CAACj/N,MAAM,CAAC,IAAI,CAACyE,OAAO,CAAE,IAAI,CAACqqH,YAAY,EAAE9wH,KAAK,CAAC6lB,QAAQ4C,IAAI,CACxF,CAEA+7M,0BAA2B,CAMvB,IAAI,CAAC5C,+BAA+B,CAAG,IAAI,CAACT,yBAAyB,CAACd,aAAa,CAAC,IAAI,CAACvvG,YAAY,CAACnwE,YAAY,EAAEjpB,SAAS,CALxF,CACjC8xB,KAAM,GAAgB,IAAI,CAACi7K,iCAAiC,CAACzU,EAAY,IACzE72L,MAAO,IAAM,IAAI,CAACsrM,iCAAiC,CAAC,EAAE,CAAE,GAC5D,EAGJ,CAEAA,kCAAkCzU,CAAU,CAAE0U,CAAQ,CAAE,CACpD,IAAI,CAACn+G,OAAO,CAACt8F,WAAW,CAAC,KACrB,GAAIy6M,EAAU,CACV,IAAI,CAAC5T,kBAAkB,CAAG6T,CAAAA,EAAAA,GAAAA,CAAAA,EAAsB,IAAI,CAAC9qN,qBAAqB,CAAC1W,SAAS,CAAC,4CACrF,MACJ,CAEA,IAAI,CAAC2tN,kBAAkB,CACnBd,EAAWh0N,MAAM,CAAG,EAAI4oO,CAAAA,EAAAA,GAAAA,CAAAA,EAAuB5U,GAAc2U,CAAAA,EAAAA,GAAAA,CAAAA,EAAsB,IAAI,CAAC9qN,qBAAqB,CAAC1W,SAAS,CAAC,kDAChI,EACJ,CAEAkgO,oCAAqC,CACY,OAAzC,IAAI,CAACzB,+BAA+B,GACpC,IAAI,CAACA,+BAA+B,CAACv0G,WAAW,GAChD,IAAI,CAACu0G,+BAA+B,CAAG,KAE/C,CAEAiD,cAAe,CACX,IAAI,CAACL,wBAAwB,GAC7B,IAAI,CAAClC,iBAAiB,GACtB,IAAI,CAAC6B,0BAA0B,GAC/B,IAAI,CAACr3I,IAAI,CAAG,IAAI,CAACw3I,mBAAmB,GAAK,IAAI,CAAC/2G,gBAAgB,CAACjzB,GAAG,CAAG,IAAI,CAACizB,gBAAgB,CAAC/yB,IAAI,CAC/F,IAAI,CAAC4oI,gBAAgB,CAAC,CAAEj9N,SAAU,GAAMo9N,cAAe,EAAM,EACjE,CAEAnqN,SAAU,CACD,IAAI,CAACkrN,mBAAmB,IACzB,IAAI,CAAC/9G,OAAO,CAACjhG,KAAK,CAAC,qBAAsB,CAAE3Y,GAAI,IAAI,CAAC45G,OAAO,CAAC3oF,GAAG,CAAEw3L,mBAAoB,GAAOkO,WAAY,EAAM,GAElH,IAAI,CAACD,kCAAkC,GACvC,IAAI,CAACv2I,IAAI,CAAG,IAAI,CAACygC,gBAAgB,CAACl3B,IAAI,CACtC,IAAI,CAACksI,gBAAgB,GACrB,IAAI,CAACa,gBAAgB,CAAC,CAAEj9N,SAAU,GAAOo9N,cAAe,EAAM,EAClE,CAEAuB,sBAAsBh4G,CAAQ,CAAE,CAC5B,IAAMoD,EAAkB,CAAE,GAAG,IAAI,CAACY,YAAY,CAAEpE,SAAUI,EAAUsD,QAAS,EAAK,EAClF,IAAI,CAAC6wG,oBAAoB,CAACpwG,oBAAoB,CAAC,IAAI,CAACpqH,OAAO,CAAE,IAAI,CAACqqH,YAAY,CAAEZ,GAAiBlwH,KAAK,CAAC6lB,QAAQ4C,IAAI,CACvH,CAEAs8M,wBAAyB,CACrB,GAAI,IAAI,CAACT,mBAAmB,GACxB,OAAO,IAAI,CAACzqN,qBAAqB,CAAC1W,SAAS,CAAC,+CAA+CqP,WAAW,GAG1G,OAAQ,IAAI,CAACs+G,YAAY,CAACY,YAAY,EAClC,KAAK,IAAI,CAAC0vG,qBAAqB,CAACp4N,cAAc,CAAC8xF,OAAO,CAClD,OAAO,IAAI,CAACjhF,qBAAqB,CAAC1W,SAAS,CAAC,8CAA8CqP,WAAW,EACzG,MAAK,IAAI,CAAC4uN,qBAAqB,CAACp4N,cAAc,CAAC6xF,KAAK,CAChD,OAAO,IAAI,CAAChhF,qBAAqB,CAAC1W,SAAS,CAAC,4CAA4CqP,WAAW,EACvG,MAAK,IAAI,CAAC4uN,qBAAqB,CAACp4N,cAAc,CAACqyF,cAAc,CACzD,OAAO,IAAI,CAACxhF,qBAAqB,CAAC1W,SAAS,CAAC,qDAAqDqP,WAAW,EAChH,MAAK,IAAI,CAAC4uN,qBAAqB,CAACp4N,cAAc,CAACoyF,UAAU,CACzD,KAAK,IAAI,CAACgmI,qBAAqB,CAACp4N,cAAc,CAACI,QAAQ,CACnD,OAAO,IAAI,CAACyQ,qBAAqB,CAAC1W,SAAS,CAAC,+CAA+CqP,WAAW,EAC1G,MAAK,IAAI,CAAC4uN,qBAAqB,CAACp4N,cAAc,CAAC+xF,SAAS,CACpD,OAAO,IAAI,CAAClhF,qBAAqB,CAAC1W,SAAS,CAAC,gDAAgDqP,WAAW,EAC3G,SACI,MAAO,EACf,CACJ,CAEA8vN,mBAAoB,CAChB,GAAI,IAAI,CAACF,aAAa,CAAE,CACpB,IAAI,CAAClH,aAAa,CAAG,CACjBmD,oBAAqB,GACrBtyG,uBAAwB,IAAI,CAAC+E,YAAY,CAAC32G,OAAO,CACjDs1G,YAAa,IAAI,CAACqB,YAAY,CAACiD,MAAM,CAAC9+D,WAAW,CACjDnxD,OAAQ,IAAI,CAACgtH,YAAY,CAACiD,MAAM,CAAChwH,MAAM,CACvCi4N,gBAAiB,IAAI,CAAClrG,YAAY,CAAC32G,OAAO,EAE9C,MACJ,CAEA,IAAI,CAAC+gN,aAAa,CAAG,CACjBmD,oBAAqB,GAErBtyG,uBAAwB,IAAI,CAAC+E,YAAY,CAACiD,MAAM,CAAC9+D,WAAW,GAAK,IAAI,CAAC67D,YAAY,CAAC32G,OAAO,EAAI,WAAI,CAAC22G,YAAY,CAACiD,MAAM,CAAChwH,MAAM,CAAY,GAAK,IAAI,CAAC0C,OAAO,CAC1JgpH,YAAa,IAAI,CAACqB,YAAY,CAACiD,MAAM,CAAC9+D,WAAW,CACjDnxD,OAAQ,IAAI,CAACgtH,YAAY,CAACiD,MAAM,CAAChwH,MAAM,CACvCi4N,gBAAiB,IAAI,CAAClrG,YAAY,CAAC32G,OAAO,EAI1C,IAAI,CAAC22G,YAAY,CAAC32G,OAAO,GAAK,IAAI,CAAC22G,YAAY,CAACiD,MAAM,CAAC9+D,WAAW,CAClE,IAAI,CAACimK,aAAa,CAACmD,mBAAmB,CAAG,GAGpC,IAAI,CAACvtG,YAAY,CAACiD,MAAM,CAACwgG,WAAW,EAAI,IAAI,CAAC9tN,OAAO,GAAK,IAAI,CAACqqH,YAAY,CAAC32G,OAAO,CACvF,IAAI,CAAC+gN,aAAa,CAACmD,mBAAmB,CAAG,GAGA,OAApC,IAAI,CAACvtG,YAAY,CAACiD,MAAM,CAAChwH,MAAM,EAAa,IAAI,CAAC0C,OAAO,GAAK,IAAI,CAACqqH,YAAY,CAACiD,MAAM,CAAChwH,MAAM,EACjG,KAAI,CAACm3N,aAAa,CAACmD,mBAAmB,CAAG,EAAG,CAEpD,CAEA2G,gBAAgBxpO,CAAM,CAAE,CACpB,OAAQA,GACJ,KAAK,IAAI,CAAC+xH,gBAAgB,CAAC9yB,MAAM,CAC7B,MAAO,CACH48B,KAAM,IAAI,CAACx9G,qBAAqB,CAAC1W,SAAS,CAAC,yCAC3CwC,MAAO,IAAI,CAACkU,qBAAqB,CAAC1W,SAAS,CAAC,8CAChD,CACJ,MAAK,IAAI,CAACoqH,gBAAgB,CAAC/yB,IAAI,CAC3B,MAAO,CACH68B,KAAM,IAAI,CAACx9G,qBAAqB,CAAC1W,SAAS,CAAC,2CAA4C,CAAE2Y,KAAM,IAAI,CAACipN,sBAAsB,EAAG,GAC7HE,UAAW,IAAI,CAACprN,qBAAqB,CAAC1W,SAAS,CAAC,4CAA6C,CAAE2Y,KAAM,IAAI,CAACipN,sBAAsB,EAAG,EACvI,CACJ,MAAK,IAAI,CAACx3G,gBAAgB,CAAChzB,MAAM,CAC7B,MAAO,CACH88B,KAAM,IAAI,CAACx9G,qBAAqB,CAAC1W,SAAS,CAAC,6CAA8C,CAAE2Y,KAAM,IAAI,CAACipN,sBAAsB,EAAG,GAC/HE,UAAW,IAAI,CAACprN,qBAAqB,CAAC1W,SAAS,CAAC,8CAA+C,CAAE2Y,KAAM,IAAI,CAACipN,sBAAsB,EAAG,GACrI9+L,QAAS,IAAI,CAACpsB,qBAAqB,CAAC1W,SAAS,CAAC,iDAC9C+hO,iBAAkB,IAAI,CAACrrN,qBAAqB,CAAC1W,SAAS,CAAC,qDAC3D,CACJ,MAAK,IAAI,CAACoqH,gBAAgB,CAAC7yB,MAAM,CAC7B,MAAO,CACH28B,KAAM,IAAI,CAACx9G,qBAAqB,CAAC1W,SAAS,CAAC,6CAA8C,CAAE2Y,KAAM,IAAI,CAACipN,sBAAsB,EAAG,GAC/HE,UAAW,IAAI,CAACprN,qBAAqB,CAAC1W,SAAS,CAAC,8CAA+C,CAAE2Y,KAAM,IAAI,CAACipN,sBAAsB,EAAG,GACrI9+L,QAAS,IAAI,CAACpsB,qBAAqB,CAAC1W,SAAS,CAAC,iDAC9C+hO,iBAAkB,IAAI,CAACrrN,qBAAqB,CAAC1W,SAAS,CAAC,qDAC3D,CACJ,MAAK,IAAI,CAACoqH,gBAAgB,CAAC5yB,OAAO,CAC9B,MAAO,CACH08B,KAAM,IAAI,CAACx9G,qBAAqB,CAAC1W,SAAS,CAAC,8CAA+C,CAAE2Y,KAAM,IAAI,CAACipN,sBAAsB,EAAG,GAChIE,UAAW,IAAI,CAACprN,qBAAqB,CAAC1W,SAAS,CAAC,+CAAgD,CAAE2Y,KAAM,IAAI,CAACipN,sBAAsB,EAAG,GACtI9+L,QAAS,IAAI,CAACpsB,qBAAqB,CAAC1W,SAAS,CAAC,kDAC9C+hO,iBAAkB,IAAI,CAACrrN,qBAAqB,CAAC1W,SAAS,CAAC,sDAC3D,CACR,CACJ,CAEA8/N,sBAAuB,CACnB,GAAI,KAAuBtkO,IAAvB,IAAI,CAACokO,aAAa,EAAkB,KAAuBpkO,IAAvB,IAAI,CAACmkO,aAAa,EAAkB,KAAuBnkO,IAAvB,IAAI,CAACqkO,aAAa,CAAgB,CAC1G,IAAI,CAACvhD,oBAAoB,CAAG,IAAI,CAAC5nK,qBAAqB,CAAC1W,SAAS,CAAC,uCAEjE,MACJ,CAEA,IAAI,CAACs+K,oBAAoB,CAAG,IAAI,CAAC5nK,qBAAqB,CAAC1W,SAAS,CAAC,8DAA+D,CAC5Hu+K,OAAQ,IAAI,CAACqhD,aAAa,CAC1BphD,MAAO,IAAI,CAACmhD,aAAa,CACzBlhD,WAAY,IAAI,CAACohD,aAAa,EAEtC,CAEA7iD,0BAA2B,CAKvB,GAJA,IAAI,CAAC8iD,oBAAoB,GAEzB,IAAI,CAAC/iD,mBAAmB,CAAG,EAAE,CAEzB,IAAI,CAACpvD,YAAY,CAACiZ,WAAW,CAACo7F,YAAY,CAAE,CAC5C,IAAMC,EAAc,IAAI,CAACJ,eAAe,CAAC,IAAI,CAACz3G,gBAAgB,CAAC5yB,OAAO,EAEtE,IAAI,CAACulF,mBAAmB,CAACz/K,IAAI,CAAC,CAC1BulB,KAAMo/M,EAAY/tG,IAAI,CACtBnxH,SAAU,CAAC,wBAAwB,EAAE,IAAI,CAAC4qH,YAAY,CAACY,YAAY,CAAC,CAAC,CACrEowD,KAAMsjD,EAAYH,SAAS,CAC3BjqH,oBAAqB,GACrB/0E,QAASm/L,EAAYn/L,OAAO,CAC5Bg8I,YAAamjD,EAAYF,gBAAgB,CACzC1gO,UAAW,IAAI,CAACsgO,qBAAqB,CAAC3rO,IAAI,CAAC,IAAI,CAAE,IACjDu8F,KAAM,cACV,EACJ,CAEA,GAAI,IAAI,CAACo7B,YAAY,CAACiZ,WAAW,CAACs7F,WAAW,CAAE,CAC3C,IAAMC,EAAa,IAAI,CAACN,eAAe,CAAC,IAAI,CAACz3G,gBAAgB,CAAC7yB,MAAM,EAEpE,IAAI,CAACwlF,mBAAmB,CAACz/K,IAAI,CAAC,CAC1BulB,KAAMs/M,EAAWjuG,IAAI,CACrBnxH,SAAU,CAAC,uBAAuB,EAAE,IAAI,CAAC4qH,YAAY,CAACY,YAAY,CAAC,CAAC,CACpEowD,KAAMwjD,EAAWL,SAAS,CAC1BjqH,oBAAqB,GACrB/0E,QAASq/L,EAAWr/L,OAAO,CAC3Bg8I,YAAaqjD,EAAWJ,gBAAgB,CACxC1gO,UAAW,IAAI,CAACsgO,qBAAqB,CAAC3rO,IAAI,CAAC,IAAI,CAAE,IACjDu8F,KAAM,aACV,EACJ,CAEA,GAAI,IAAI,CAACo7B,YAAY,CAACiZ,WAAW,CAAC83C,SAAS,CAAE,CACzC,IAAM0jD,EAAW,IAAI,CAACP,eAAe,CAAC,IAAI,CAACz3G,gBAAgB,CAAC/yB,IAAI,EAChE,IAAI,CAAC0lF,mBAAmB,CAACz/K,IAAI,CAAC,CAC1BulB,KAAMu/M,EAASluG,IAAI,CACnBnxH,SAAU,CAAC,qBAAqB,EAAE,IAAI,CAAC4qH,YAAY,CAACY,YAAY,CAAC,CAAC,CAClEowD,KAAMyjD,EAASN,SAAS,CACxBjqH,oBAAqB,GACrBx2G,UAAW,IAAI,CAACqgO,YAAY,CAAC1rO,IAAI,CAAC,IAAI,EACtCu8F,KAAM,WACV,EACJ,CAEA,GAAI,IAAI,CAACo7B,YAAY,CAACiZ,WAAW,CAACi4C,WAAW,CAAE,CAC3C,IAAMwjD,EAAa,IAAI,CAACR,eAAe,CAAC,IAAI,CAACz3G,gBAAgB,CAAChzB,MAAM,EAEpE,IAAI,CAAC2lF,mBAAmB,CAACz/K,IAAI,CAAC,CAC1BulB,KAAMw/M,EAAWnuG,IAAI,CACrBnxH,SAAU,CAAC,uBAAuB,EAAE,IAAI,CAAC4qH,YAAY,CAACY,YAAY,CAAC,CAAC,CACpEowD,KAAM0jD,EAAWP,SAAS,CAC1BjqH,oBAAqB,GACrB/0E,QAASu/L,EAAWv/L,OAAO,CAC3Bg8I,YAAaujD,EAAWN,gBAAgB,CACxC1gO,UAAW,IAAI,CAAC+/N,cAAc,CAACprO,IAAI,CAAC,IAAI,EACxCu8F,KAAM,aACV,EACJ,CACJ,CAEA2sI,yBAAyBvxG,CAAY,CAAE,CACnC,OAAOA,EAAaY,YAAY,GAAK,IAAI,CAAC0vG,qBAAqB,CAACp4N,cAAc,CAAC+xF,SAAS,CAEhG,CAmBA6lI,GAAyB1hO,OAAO,CAAG,CAC/B,SACA,UACA,WACA,eACA,SACA,YACA,uBACA,mBACA,sBACA,sBACA,0BACA,6BACA,iBACA,2BACA,aACH,CACDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,kBAlCa,CAC9BC,SAAU,CACN6sH,aAAc,IACdlxE,QAAS,IACTwjL,iBAAkB,IAClBxoH,WAAY,KACZ6oH,gBAAiB,KACjBd,gBAAiB,KACjBC,wBAAyB,KACzBG,cAAe,KACfD,cAAe,KACfE,cAAe,IACnB,EACA3+N,SC3lBW,qhND4lBXC,WAAYs8N,EAChB,EE7lB4C,OAEtC6E,GACFC,oBAAoB51G,CAAa,CAAE+4F,CAAa,CAAE8c,CAAQ,CAAE,CACxD,IAAMC,EAAiB,EAAE,CACzB,GAAI91G,EAAc9zH,MAAM,CAAG,EAAG,CAC1B8zH,EAAcwqB,IAAI,CAACuuE,EAAgB,IAAI,CAACqD,cAAc,CAAG,IAAI,CAACC,eAAe,EAC7E,IAAM0Z,EAAsB,CAAC,EACvB7pO,EAAS2pO,EAAW71G,EAAc9zH,MAAM,CAAG2pO,EAAW71G,EAAc9zH,MAAM,CAChF,IAAK,IAAI6C,EAAI,EAAGA,EAAI7C,EAAQ6C,IAAK,CAC7B,IAAMinO,EAAgB,IAAI,CAACC,iBAAiB,CAACj2G,CAAa,CAACjxH,EAAE,EACvDinO,KAAiBD,GACnBA,CAAAA,CAAmB,CAACC,EAAc,CAAG,EAAE,EAE3CD,CAAmB,CAACC,EAAc,CAACrlO,IAAI,CAACqvH,CAAa,CAACjxH,EAAE,CAC5D,CACA,IAAK,IAAI+iL,KAAcikD,EAAqB,CACxC,IAAM/1G,EAAgB+1G,CAAmB,CAACjkD,EAAW,CAAClgL,GAAG,CAAC,IACtDovH,EAAak1G,SAAS,CAAGpkD,EAClB9wD,IAEX80G,EAAenlO,IAAI,CAAC,CAChBmhL,WAAYA,EACZ9xD,cAAeA,CACnB,EACJ,CACJ,CACA,OAAO81G,CACX,CAEAK,mBAAmBn1G,CAAY,CAAE80G,CAAc,CAAE,CAC7C,IAAME,EAAgB,IAAI,CAACC,iBAAiB,CAACj1G,GACvC69B,EAAQi3E,EAAe1oO,IAAI,CAAC,GAAWyxJ,EAAMizB,UAAU,GAAKkkD,GAElE,GAAIn3E,KAAUhwJ,IAAVgwJ,EAAqB,CACrB,IAAMu3E,EAAoBv3E,EAAM7+B,aAAa,CAACnvG,SAAS,CAAC,GAAuBwlN,EAAkBj5N,EAAE,GAAK4jH,EAAa5jH,EAAE,EACnHg5N,EAAoB,KACpBv3E,EAAM7+B,aAAa,CAACpvH,MAAM,CAACwlO,EAAmB,GAEX,IAA/Bv3E,EAAM7+B,aAAa,CAAC9zH,MAAM,EAC1B4pO,EAAellO,MAAM,CAACklO,EAAennO,OAAO,CAACkwJ,GAAQ,GAGjE,CACJ,CAEAy3E,gBAAgBt1G,CAAY,CAAE80G,CAAc,CAAE/c,CAAa,CAAE,CACzD,IAAMid,EAAgB,IAAI,CAACC,iBAAiB,CAACj1G,GACzC69B,EAAQi3E,EAAe1oO,IAAI,CAAC,GAAWyxJ,EAAMizB,UAAU,GAAKkkD,EAClDnnO,MAAAA,IAAVgwJ,GACAA,CAAAA,EAAQ,IAAI,CAAC03E,eAAe,CAACP,EAAeF,EAAgB/c,EAAa,EAE7E,IAAI,CAACyd,sBAAsB,CAACx1G,EAAc69B,EAAOk6D,EACrD,CAEA0d,oBAAoBX,CAAc,CAAEh1G,CAAe,CAAEV,CAAe,CAAE,CAClE,IAAM41G,EAAgB,IAAI,CAACC,iBAAiB,CAAC71G,GACvCy+B,EAAQi3E,EAAe1oO,IAAI,CAAC,GAAWyxJ,EAAMizB,UAAU,GAAKkkD,GAElE,GAAIn3E,KAAUhwJ,IAAVgwJ,EAAqB,CACrB,IAAMu3E,EAAoBv3E,EAAM7+B,aAAa,CAACnvG,SAAS,CAAC,GAAuBwlN,EAAkBj5N,EAAE,GAAK0jH,EAAgB1jH,EAAE,EACtHg5N,EAAoB,IACpBv3E,EAAM7+B,aAAa,CAACpvH,MAAM,CAACwlO,EAAmB,EAAGh2G,EAEzD,CACJ,CAEA61G,kBAAkBj1G,CAAY,CAAE,CAC5B,IAAM01G,EAAa,IAAI10N,KAAKg/G,EAAajrD,MAAM,EACzC4jC,EAAO+8H,EAAW3qL,WAAW,GAC/B6tD,EAAQtiB,OAAOo/I,EAAW1qL,QAAQ,GAAK,GAE3C,OAAO2tD,EAAO,IADdC,CAAAA,EAAQA,IAAAA,EAAM1tG,MAAM,CAAS,CAAC,CAAC,EAAE0tG,EAAM,CAAC,CAAGA,CAAI,EACxCD,KACX,CAEA48H,gBAAgBzkD,CAAU,CAAEgkD,CAAc,CAAE/c,CAAa,CAAE,CACvD,IAAMl6D,EAAQ,CACVizB,WAAYA,EACZ9xD,cAAe,EAAE,EAGjB22G,EAAgB,GAChB5nO,EAAI,EACR,KAAO,CAAC4nO,GACA5nO,IAAM+mO,EAAe5pO,MAAM,EAC3B4pO,EAAenlO,IAAI,CAACkuJ,GACpB83E,EAAgB,IACT,IAAkB93E,EAAMizB,UAAU,CAAGgkD,CAAc,CAAC/mO,EAAE,CAAC+iL,UAAU,EAAM,CAACinC,GAAiBl6D,EAAMizB,UAAU,CAAGgkD,CAAc,CAAC/mO,EAAE,CAAC+iL,UAAU,IAC/IgkD,EAAellO,MAAM,CAAC7B,EAAG,EAAG8vJ,GAC5B83E,EAAgB,IAEpB5nO,IAEJ,OAAO8vJ,CACX,CAEA23E,uBAAuBx1G,CAAY,CAAEkyG,CAAa,CAAEna,CAAa,CAAE,CAC/D,IAAI6d,EAAe,GACf7nO,EAAI,EAGR,IAFAiyH,EAAak1G,SAAS,CAAGhD,EAAcphD,UAAU,CAE1C,CAAC8kD,GACA7nO,IAAMmkO,EAAclzG,aAAa,CAAC9zH,MAAM,EACxCgnO,EAAclzG,aAAa,CAACrvH,IAAI,CAACqwH,GACjC41G,EAAe,IACR,IAAkB51G,EAAajrD,MAAM,CAAGm9J,EAAclzG,aAAa,CAACjxH,EAAE,CAACgnE,MAAM,EAAM,CAACgjJ,GAAiB/3F,EAAajrD,MAAM,CAAGm9J,EAAclzG,aAAa,CAACjxH,EAAE,CAACgnE,MAAM,IACvKm9J,EAAclzG,aAAa,CAACpvH,MAAM,CAAC7B,EAAG,EAAGiyH,GACzC41G,EAAe,IAEnB7nO,GAER,CAEAqtN,eAAelpJ,CAAC,CAAE2a,CAAC,CAAE,QACjB,EAAM9X,MAAM,CAAG8X,EAAE9X,MAAM,CACZ,GACA7C,EAAE6C,MAAM,CAAG8X,EAAE9X,MAAM,CACnB,EAEJ,CACX,CAEAsmJ,gBAAgBnpJ,CAAC,CAAE2a,CAAC,CAAE,QAClB,EAAM9X,MAAM,CAAG8X,EAAE9X,MAAM,CACZ,GACA7C,EAAE6C,MAAM,CAAG8X,EAAE9X,MAAM,CACnB,EAEJ,CACX,CACJ,CAEA4/J,GAAqBvmO,OAAO,CAAG,EAAE,CACjCF,EAAAA,CAAUA,CAACC,OAAO,CAAC,uBAAwBwmO,GCnIG,OAExCkB,WAAgClkO,EAAAA,CAAWA,CAC7CrD,aAAc,CACV,KAAK,GAEL,IAAI,CAACwnO,cAAc,CAAG,EAC1B,CAEA//G,WAAW+G,CAAO,CAAE,CACSjvH,KAAAA,IAArBivH,EAAQ1Z,QAAQ,EAChB,KAAI,CAAC0yH,cAAc,CAAGh5G,EAAQ1Z,QAAQ,CAACy/C,YAAY,CAE3D,CAEAkzE,YAAYriG,CAAO,CAAE,CACjB,IAAI,CAACjtG,QAAQ,CAAC,CACVitG,QAASA,CACb,EACJ,CACJ,CAEO,IAAMsiG,GAAiB,CAC1B7iO,SAAU,CACN4B,MAAO,IACPquG,SAAU,IACV6yH,OAAQ,IACRxvM,SAAU,GACd,EACAlzB,SC/BW,8aDgCXC,WAAYqiO,EAChB,CAEAG,CAAAA,GAAe5nO,OAAO,CAAG,EAAE,CAC3BF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,iBAAkB8iO,GE/Be,OAEhDE,WAAiCvkO,EAAAA,CAAWA,CAC9CrD,YAAY2H,CAAY,CAAEmK,CAAU,CAAExO,CAAoB,CAAE,CACxD,KAAK,GAEL,IAAI,CAACitK,aAAa,CAAG5oK,EACrB,IAAI,CAAC6+H,WAAW,CAAG10H,EACnB,IAAI,CAACxO,oBAAoB,CAAGA,EAC5B,IAAI,CAACukO,mBAAmB,CAAG,KAC3B,IAAI,CAACC,iBAAiB,CAAG,GACzB,IAAI,CAACC,4BAA4B,GAEjC,IAAI,CAACC,aAAa,CAAG,CACjBtjO,OAAQ,CACJ8mD,IAAK,KACD,IAAI,CAACy8K,YAAY,GACK,IAAI,CAACC,eAAe,CAAC3tL,IAAI,CAAC,GAAoB4tL,WAAAA,EAAetpO,MAAM,EAAiBspO,EAAe/iG,OAAO,GAE5H,IAAI,CAACgjG,QAAQ,CAAC/zG,kBAAkB,CAAC,CAAEE,OAAQ,IAAI,CAACszG,mBAAmB,EAE3E,CACJ,CACJ,EAEA,IAAI,CAACQ,gBAAgB,CAAG,IAC5B,CAEAvjG,SAAU,CACN,IAAI,CAACujG,gBAAgB,CAAG,IAAI,CAAC7hG,WAAW,CAACtuH,GAAG,CAAC,yBAA0B,KACnE,IAAK,IAAM1b,KAAO,IAAI,CAAC+zK,aAAa,CAAE,CAClC,IAAM1xK,EAAS,IAAI,CAACmpO,aAAa,CAACxrO,EAAI,MAEvB+C,IAAXV,GACAA,EAAO2sD,GAAG,EAElB,CACJ,GACA,IAAI,CAACy8K,YAAY,GACjB,IAAI,CAACK,eAAe,EACxB,CAEA7gH,WAAW+G,CAAO,CAAE,CACkBjvH,KAAAA,IAA9BivH,EAAQ+5G,iBAAiB,EAAmB/5G,EAAQ+5G,iBAAiB,CAAC5iG,aAAa,IACnF,IAAI,CAAC2iG,eAAe,EAE5B,CAEA3gH,YAAa,CACqB,OAA1B,IAAI,CAAC0gH,gBAAgB,EACrB,IAAI,CAACA,gBAAgB,EAE7B,CAEAG,aAAar0G,CAAS,CAAE7vG,CAAM,CAAE,CACxB6vG,WAAAA,EACA,IAAI,CAACi0G,QAAQ,CAAC/zG,kBAAkB,CAAC,CAAEE,OAAQjwG,EAAS,IAAI,CAACujN,mBAAmB,CAAGtoO,KAAAA,CAAU,GACpE,mCAAd40H,GACP,IAAI,CAACi0G,QAAQ,CAAC/zG,kBAAkB,CAAC,CAC7BC,+BAAgChwG,CACpC,EAER,CAEAgkN,iBAAkB,CACd,IAAK,IAAMH,KAAkB,IAAI,CAACD,eAAe,CAC7CC,EAAe/iG,OAAO,CAAG,IAAI,CAACmjG,iBAAiB,CAAC3qN,QAAQ,CAACuqN,EAAetpO,MAAM,EAGlF,IAAI,CAAC4pO,oBAAoB,EAC7B,CAEA11K,OAAQ,CACJ,IAAI,CAACq1K,QAAQ,CAACt+M,WAAW,EAC7B,CAEAi+M,8BAA+B,CAC3B,IAAI,CAACG,eAAe,CAAG,CACnB,CACIzhO,MAAO,IAAI,CAACqhO,iBAAiB,CAC7BjpO,OAAQ,SACRumI,QAAS,GACTt+H,SAAU,8BACd,EACA,CACIL,MAAO,IAAI,CAACnD,oBAAoB,CAACS,SAAS,CAAC,iEAC3ClF,OAAQ,iCACRumI,QAAS,GACTt+H,SAAU,yCACd,EACH,CAGL2hO,sBAAuB,CACnB,IAAMC,EAAoB,IAAI,CAACH,iBAAiB,CAAC3rO,MAAM,CAC7B,IAAtB8rO,EACA,IAAI,CAACC,gBAAgB,CAAG,IAAI,CAACrlO,oBAAoB,CAACS,SAAS,CAAC,mDAE5D,IAAI,CAAC4kO,gBAAgB,CAAG,IAAI,CAACrlO,oBAAoB,CAACS,SAAS,CAAC,wDAAyD,CAAE2B,MAAOgjO,CAAkB,EAExJ,CAEAT,cAAe,CACX,GAAI,KAAsB1oO,IAAtB,IAAI,CAACqqN,YAAY,EAAkB,WAAI,CAACA,YAAY,CAAW,CAC/D,IAAMllN,EAAS,KAA8BnF,IAA9B,IAAI,CAACgxK,aAAa,CAAC7rK,MAAM,CAAiB,IAAI,CAAC6rK,aAAa,CAAC7rK,MAAM,CAAG,KACjF6B,EAAQ,GAGZ,GAAIqiO,CADyB5yN,GAAAA,CAAeA,CAACC,KAAK,CAACE,QAAQ,CAAEH,GAAAA,CAAeA,CAACC,KAAK,CAACC,iBAAiB,CAAEF,GAAAA,CAAeA,CAACC,KAAK,CAACmH,QAAQ,CAAC,CAC7GQ,QAAQ,CAAC,IAAI,CAACgsM,YAAY,CAACnpN,IAAI,CAAC+6B,QAAQ,EAC5D,IAAI92B,OAAAA,EAAiB,CACjB,IAAMs2D,EAAc,IAAI,CAAC4uJ,YAAY,CAACjhN,GAAG,CAACjE,EAAQ,GAC9B,QAAhBs2D,IACA,IAAI,CAAC6sK,mBAAmB,CAAG7sK,KAA+Bz7D,IAA/By7D,EAAY17C,cAAc,CAAiB07C,EAAY17C,cAAc,CAAG07C,EAAYt8C,WAAW,CAC1HnY,EAAQy0D,EAAY16C,SAAS,CAErC,OAEA,IAAI,CAACunN,mBAAmB,CAAG,IAAI,CAACje,YAAY,CAAC7uM,OAAO,CACpDxU,EAAQ,IAAI,CAACqjN,YAAY,CAACnpN,IAAI,CAAC4f,KAAK,CAGxC,IAAI,CAACynN,iBAAiB,CAAGvhO,EAEzBsiO,IAD+B,CAACX,eAAe,CAACpqO,IAAI,CAAC,GAAqBoqO,WAAAA,EAAgBrpO,MAAM,EAC7E4H,KAAK,CAAG,IAAI,CAACnD,oBAAoB,CAACS,SAAS,CAAC,qDAAsD,CAAEwC,MAAOA,CAAM,EACxI,CACJ,CACJ,CAEA,IAAMuiO,GAAkB,CACpBjkO,SAAU,CACN+kN,aAAc,IACd2e,kBAAmB,IACnBH,SAAU,GACd,EACAnjO,SC3IW,8wBD4IXC,WAAY0iO,EAChB,CAEAkB,CAAAA,GAAgBhpO,OAAO,CAAG,CAAC,eAAgB,aAAc,uBAAuB,CAChFF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,kBAAmBkkO,I,QEzIE,OAEpCC,WAAgC1lO,EAAAA,CAAWA,CAC7CrD,YAAYsY,CAAM,CAAEhV,CAAoB,CAAEqE,CAAY,CAAEmK,CAAU,CAAEi4B,CAAkB,CAAEi/L,CAA0B,CAAE,CAChH,KAAK,GAEL,IAAI,CAAC7hH,OAAO,CAAG7uG,EACf,IAAI,CAAChV,oBAAoB,CAAGA,EAC5B,IAAI,CAACitK,aAAa,CAAG5oK,EACrB,IAAI,CAACshO,WAAW,CAAGn3N,EACnB,IAAI,CAACw6G,mBAAmB,CAAGviF,EAC3B,IAAI,CAACm/L,mBAAmB,CAAGF,EAC3B,IAAI,CAACG,YAAY,CAAG,GACpB,IAAI,CAACvf,YAAY,CAAG,KACpB,IAAI,CAACwf,MAAM,CAAG9wN,EAAOkmB,GAAG,CACxB,IAAI,CAAC6qM,gBAAgB,CAAG,KACxB,IAAI,CAACC,oBAAoB,CAAG,KAC5B,IAAI,CAACC,iBAAiB,CAAG,GACzB,IAAI,CAAC5f,eAAe,CAAG,GACvB,IAAI,CAAC6f,kBAAkB,CAAG,EAC1B,IAAI,CAACpB,QAAQ,CAAG,KAChB,IAAI,CAACG,iBAAiB,CAAG,EAAE,CAE3B,IAAI,CAAC3nF,UAAU,CAAG,GAClB,IAAI,CAACwpE,gBAAgB,CAAG,CACpBC,WAAY,IAAI,CAAC/mN,oBAAoB,CAACS,SAAS,CAAC,oDAChDsnK,kBAAmB,IAAI,CAAC/nK,oBAAoB,CAACS,SAAS,CAAC,6BACvDumN,iBAAkB,IAAI,CAAChnN,oBAAoB,CAACS,SAAS,CAAC,4BACtDq3B,UAAW,CACPkrB,MAAO,wBACP6mJ,YAAa,wBACbD,aAAc,wBAClB,CACJ,EAEA,IAAI,CAACyd,mBAAmB,CAAG,IAAI,CAAC8e,YAAY,CAAC1vO,IAAI,CAAC,IAAI,EACtD,IAAI,CAAC6wN,eAAe,CAAG,IAAI,CAACzyL,QAAQ,CAACp+B,IAAI,CAAC,IAAI,CAClD,CAEA+qI,SAAU,CACsBvlI,KAAAA,IAAxB,IAAI,CAACmqO,cAAc,EACnB,KAAI,CAACA,cAAc,CAAG,EAAI,EAG9B,IAAI,CAAC9f,YAAY,CAAG,IAAI,CAACt9F,mBAAmB,CAAC/yE,MAAM,CAAC,IAAI,CAACg3H,aAAa,CAAClpK,OAAO,EAE1E,KAAsB9H,IAAtB,IAAI,CAACqqN,YAAY,EAAkB,WAAI,CAACA,YAAY,CACpD,IAAI,CAACyf,gBAAgB,CAAG,IAAI,CAACJ,WAAW,CAAC/wN,GAAG,CAAC,WAAY,CAACtc,EAAOyL,KACzD,IAAI,CAACkpK,aAAa,CAAClpK,OAAO,GAAKA,IAC/B,IAAI,CAACuiN,YAAY,CAAG,IAAI,CAACt9F,mBAAmB,CAAC/yE,MAAM,CAAC,IAAI,CAACg3H,aAAa,CAAClpK,OAAO,EAC9E,IAAI,CAACsiO,mBAAmB,GACxB,IAAI,CAACN,gBAAgB,GAE7B,GAEA,IAAI,CAACM,mBAAmB,EAEhC,CAEAliH,WAAW+G,CAAO,CAAE,CACejvH,KAAAA,IAA3BivH,EAAQk7G,cAAc,EAAkBl7G,EAAQk7G,cAAc,CAACn1E,YAAY,EAC3E,KAAI,CAAC40E,YAAY,CAAG,EAAI,EAGE5pO,KAAAA,IAA1BivH,EAAQi7F,aAAa,EACrB,KAAI,CAACE,eAAe,CAAG,IAAI,CAACF,aAAa,CACnC,IAAI,CAACnmN,oBAAoB,CAACS,SAAS,CAAC,0CACpC,IAAI,CAACT,oBAAoB,CAACS,SAAS,CAAC,0CAAyC,CAE3F,CAEA4jH,YAAa,CACqB,OAA1B,IAAI,CAAC0hH,gBAAgB,EACrB,IAAI,CAACA,gBAAgB,GAGH,OAAlB,IAAI,CAACjB,QAAQ,EACb,IAAI,CAACA,QAAQ,CAACt+M,WAAW,GAGK,OAA9B,IAAI,CAACw/M,oBAAoB,GACzB,IAAI,CAACA,oBAAoB,GACzB,IAAI,CAACJ,mBAAmB,CAACtmO,MAAM,CAAC,IAAI,CAACyE,OAAO,EAEpD,CAEAoiO,aAAaj4B,CAAY,CAAE,CACvB,IAAI,CAACtmC,QAAQ,CAAC,CAAEjmH,WAAYusJ,EAAaloJ,IAAI,EAAG,GAChD,IAAI,CAAC69D,OAAO,CAACt8F,WAAW,EAC5B,CAEAsN,SAASq5K,CAAY,CAAE,CACnB,IAAI,CAAC5wD,UAAU,CAAG4wD,EAClB,IAAI,CAACrqF,OAAO,CAACt8F,WAAW,EAC5B,CAEA++M,UAAU/c,CAAS,CAAE,CACjB,IAAI,CAACgd,MAAM,CAAC,CACRhd,UAAWA,CACf,EACJ,CAEAid,cAAe,CACX,IAAI,CAACX,YAAY,CAAG,CAAC,IAAI,CAACA,YAAY,CAG1CY,eAAgB,CACZ,IAAI,CAAC3B,QAAQ,CAACt+M,WAAW,EAC7B,CAEA6/M,qBAAsB,CAClB,IAAI,CAACvB,QAAQ,CAAG,IAAI,CAACc,mBAAmB,CAACvgO,GAAG,CAAC,IAAI,CAACtB,OAAO,EACzD,IAAI,CAACiiO,oBAAoB,CAAG,IAAI,CAAClB,QAAQ,CAAC9vM,SAAS,CAAC,IAAI,CAAC0xM,iBAAiB,CAACjwO,IAAI,CAAC,IAAI,GACpF,IAAI,CAACiwO,iBAAiB,EAC1B,CAEAA,mBAAoB,CAChB,IAAMzB,EAAoB,EAAE,CACtB,CAAE9zG,aAAAA,CAAY,CAAE,GAAGvpH,EAAS,CAAG,IAAI,CAACk9N,QAAQ,CAACl0G,eAAe,GAElElxH,OAAO0oH,OAAO,CAACxgH,GAAShN,OAAO,CAAC,OAAC,CAAC1B,EAAKV,EAAM,EAC3B,MAAVA,GAAmBA,KAAUyD,IAAVzD,GACnBysO,EAAkBlnO,IAAI,CAAC7E,EAE/B,GAEA,IAAI,CAAC+rO,iBAAiB,CAAGA,EACzB,IAAI,CAACiB,kBAAkB,CAAGjB,EAAkB3rO,MAAM,CAClD,IAAI,CAAC2sO,iBAAiB,CAAG,IAAI,CAACjmO,oBAAoB,CAACS,SAAS,CAAC,wDAAyD,CAClH2B,MAAO,IAAI,CAAC8jO,kBAAkB,EAEtC,CACJ,CAEA,IAAMS,GAAiB,CACnBplO,SAAU,CACNqmK,SAAU,IACVu+C,cAAe,IACfogB,OAAQ,IACRxiO,QAAS,IACTqiO,eAAgB,KAChBQ,iBAAkB,IAClBC,qBAAsB,GAC1B,EACAllO,SCvJW,q2EDwJXC,WAAY6jO,EAChB,CAEAkB,CAAAA,GAAenqO,OAAO,CAAG,CAAC,SAAU,uBAAwB,eAAgB,aAAc,qBAAsB,6BAA6B,CAC7IF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,iBAAkBqlO,I,iBExIK,OAEtCG,WAA8B/mO,EAAAA,CAAWA,CAC3CrD,YAAY+R,CAAO,CAAEnQ,CAAQ,CAAEsS,CAAO,CAAE5Q,CAAoB,CAAE+iO,CAAoB,CAAEgE,CAAmB,CAAErB,CAA0B,CAAE7f,CAAqB,CAAE,CACxJ,KAAK,GAEL,IAAI,CAAC5E,QAAQ,CAAGxyM,EAChB,IAAI,CAAClQ,SAAS,CAAGD,EACjB,IAAI,CAACqsJ,QAAQ,CAAG/5I,EAChB,IAAI,CAAC2tN,oBAAoB,CAAGwI,EAC5B,IAAI,CAACC,qBAAqB,CAAGjE,EAC7B,IAAI,CAAChd,sBAAsB,CAAGF,EAC9B,IAAI,CAACohB,2BAA2B,CAAGvB,EACnC,IAAI,CAAC1lO,oBAAoB,CAAGA,EAE5B,IAAI,CAACknO,eAAe,CAAG,GACvB,IAAI,CAACC,cAAc,CAAG,GACtB,IAAI,CAAC/gB,cAAc,CAAG,GACtB,IAAI,CAACggB,cAAc,CAAG,GACtB,IAAI,CAACjkG,YAAY,CAAG,GACpB,IAAI,CAACgoF,aAAa,CAAG,GACrB,IAAI,CAAC+Y,cAAc,CAAG,EAAE,CACxB,IAAI,CAAC/c,aAAa,CAAG,GACrB,IAAI,CAACihB,eAAe,CAAG,KACvB,IAAI,CAACnE,QAAQ,CAAG,EAChB,IAAI,CAACoE,gBAAgB,CAAG,EAAE,CAC1B,IAAI,CAACT,gBAAgB,CAAG,GACxB,IAAI,CAACC,oBAAoB,CAAG,GAE5B,IAAI,CAACS,gBAAgB,CAAG,GACxB,IAAI,CAAC/gB,cAAc,CAAG,KACtB,IAAI,CAACghB,WAAW,CAAGtrO,KAAAA,EAEnB,IAAI,CAACurO,iBAAiB,CAAG,GAAI/gB,CAAAA,IAAAA,EAAK,oCAClC,IAAI,CAACghB,oBAAoB,CAAG,KAC5B,IAAI,CAACC,WAAW,CAAG,GACnB,IAAI,CAACC,cAAc,CAAG,KAEtB,IAAI,CAACC,SAAS,CAAG,IAAI,CAACX,2BAA2B,CAAC5hO,GAAG,CAAC,IAAI,CAACtB,OAAO,EAClE,IAAI,CAAC8jO,YAAY,CAAG,IAAI,CAACD,SAAS,CAAC5yM,SAAS,CAAC,IAAI,CAAC8yM,eAAe,CAACrxO,IAAI,CAAC,IAAI,GAC3E,IAAI,CAACsxO,iBAAiB,CAAG,IAAI,CAACC,YAAY,CAACvxO,IAAI,CAAC,IAAI,CACxD,CAEA+qI,SAAU,CACN,IAAI,CAACymG,aAAa,GAClB,IAAI,CAACC,wBAAwB,GAC7B,IAAI,CAACd,eAAe,CAAG,CACnB/rK,MAAO,MACPglJ,SAAU,QACd,CACJ,CAEAh8F,YAAa,CACT,IAAI,CAAC9lH,SAAS,CAACgV,MAAM,CAAC,IAAI,CAACgzM,cAAc,EACzC,IAAI,CAACshB,YAAY,GACjB,IAAI,CAACtJ,oBAAoB,CAAC5zG,WAAW,CAAC,IAAI,CAAC5mH,OAAO,CAAE,IAAI,CAACgkO,iBAAiB,EAC1E,IAAI,CAACd,2BAA2B,CAAC3nO,MAAM,CAAC,IAAI,CAACyE,OAAO,CACxD,CAEAm2I,eAAgB,CACZ,IAAIiuF,EAAmB,IAAI,CAAClF,QAAQ,CACpC,IAAI,CAACA,QAAQ,CAAGkF,EAAmB,IAAI,CAACb,gBAAgB,CACxD,IAAI,CAACtE,mBAAmB,GAExB,IAAMoF,EAAiB,IAAI,CAACf,gBAAgB,CAAC/tO,MAAM,CAC/C+uO,EAAe,IAAI,CAACpF,QAAQ,CAC5BoF,GAAgBD,GAChBC,CAAAA,EAAeD,CAAa,EAGhC,IAAI,CAACje,aAAa,CAAG,IAAI,CAACnqN,oBAAoB,CAACS,SAAS,CAAC,qDAAsD,CAC3G6nO,aAAcD,EACdjmO,MAAOgmO,CACX,GAEA,IAAI,CAACz9E,QAAQ,CAACkiD,qBAAqB,CAAC,KAChCpzM,SAASyiC,cAAc,CAAC,CAAC,MAAM,EAAE,IAAI,CAACmrM,gBAAgB,CAACc,EAAiB,CAAC39N,EAAE,CAAC,CAAC,EAAE9R,KAAK,EACxF,GAEA,IAAI,CAAC4wN,SAAS,CAAC,IAAI,CAACke,iBAAiB,CACzC,CAEA5/D,SAASjmH,CAAU,CAAE,CACjB,IAAI,CAAC+lL,WAAW,CAAG/lL,EACnB,IAAI,CAACmmL,eAAe,EACxB,CAEAE,aAAa98G,CAAO,CAAE,CAGlB,OAFA,IAAI,CAACqzG,oBAAoB,CAAC5xG,qCAAqC,CAAC,IAAI,CAAC5oH,OAAO,EAEpEmnH,EAAQpyH,MAAM,EAClB,KAAK+xH,GAAAA,CAAgBA,CAACjzB,GAAG,CAAE,CACvB,IAAMh1C,EAAgB,IAAI,CAACglL,SAAS,CAACrsO,MAAM,CAAC2vH,EAAQ71F,KAAK,EACzD,GAAIutB,EAActpD,MAAM,CAAG,EAAG,CAC1B,IAAK,IAAM80H,KAAgBxrE,EACvB,IAAI,CAACokL,qBAAqB,CAACtD,eAAe,CAACt1G,EAAc,IAAI,CAAC80G,cAAc,CAAE,IAAI,CAAC/c,aAAa,EAEpG,IAAI,CAACkhB,gBAAgB,CAACtpO,IAAI,IAAI6kD,GAC9B,IAAI,CAACqgL,QAAQ,EAAIrgL,EAActpD,MAAM,CAEzC,IAAI,CAAC6tO,cAAc,CAAG,GAEO,IAAzBvkL,EAActpD,MAAM,EACpB,IAAI,CAACiF,SAAS,CAAC,KACX,IAAI,CAACgqO,mBAAmB,CAAG,CAAC,GAAG,EAAE3lL,CAAa,CAAC,EAAE,CAACp4C,EAAE,CAAC,CAAC,CACtD,IAAI,CAACg+N,kBAAkB,CAAG,CAAC,GAAG,EAAE5lL,CAAa,CAAC,EAAE,CAACp4C,EAAE,CAAC,CAAC,GAIzD,IAAI,CAAC04N,cAAc,CAAC5pO,MAAM,CAAG,GAC7B,IAAI,CAACmvO,YAAY,CAACp5G,GAAAA,CAAeA,CAAChxB,wBAAwB,EAE9D,KACJ,CACA,KAAKwsB,GAAAA,CAAgBA,CAAChzB,MAAM,CACxB,GAAI,IAAI,CAAC+vI,SAAS,CAACrsO,MAAM,CAAC,CAAC2vH,EAAQp4F,IAAI,CAAC,EAAEx5B,MAAM,CAAG,EAAG,CAClD,IAAI,CAAC0tO,qBAAqB,CAACzD,kBAAkB,CAACr4G,EAAQp4F,IAAI,CAAE,IAAI,CAACowM,cAAc,EAC/E,IAAMM,EAAoB,IAAI,CAAC6D,gBAAgB,CAACppN,SAAS,CAAC,GAAkBmwG,EAAa5jH,EAAE,GAAK0gH,EAAQp4F,IAAI,CAACtoB,EAAE,CACrF,MAAtBg5N,GACA,IAAI,CAAC6D,gBAAgB,CAACrpO,MAAM,CAACwlO,EAAmB,GAEpD,IAAI,CAACP,QAAQ,GAET,IAAI,CAACsE,WAAW,CAACj9G,SAAS,CAAChxH,MAAM,CAAG,GAAK4xH,EAAQp4F,IAAI,CAACk8F,YAAY,GAAK3oH,GAAAA,CAAoBA,CAACC,cAAc,CAACqyF,cAAc,EACzH,IAAI,CAACmvI,eAAe,EAE5B,CAEI,IAAI,CAACP,WAAW,CAACj9G,SAAS,CAAChxH,MAAM,CAAG,GACpC,IAAI,CAAC6tO,cAAc,CAAG,GACtB,IAAI,CAACsB,YAAY,CAACp5G,GAAAA,CAAeA,CAAClxB,iBAAiB,GAC5C,IAAI,CAAC+kI,cAAc,CAAC5pO,MAAM,CAAG,IACpC,IAAI,CAAC6tO,cAAc,CAAG,GACtB,IAAI,CAACsB,YAAY,CAACp5G,GAAAA,CAAeA,CAAChxB,wBAAwB,GAE9D,KAEJ,MAAKwsB,GAAAA,CAAgBA,CAAC/yB,IAAI,CAAE,CACxB,IAAI,CAACkvI,qBAAqB,CAACnD,mBAAmB,CAAC,IAAI,CAACX,cAAc,CAAEh4G,EAAQJ,OAAO,CAAEI,EAAQH,OAAO,EAEpG,IAAMy4G,EAAoB,IAAI,CAAC6D,gBAAgB,CAACppN,SAAS,CAAC,GAAkBmwG,EAAa5jH,EAAE,GAAK0gH,EAAQH,OAAO,CAACvgH,EAAE,CACxF,MAAtBg5N,GACA,KAAI,CAAC6D,gBAAgB,CAAC7D,EAAkB,CAAGt4G,EAAQH,OAAO,EAG9D,IAAI,CAACxsH,SAAS,CAAC,KACX,IAAI,CAACgqO,mBAAmB,CAAG,CAAC,GAAG,EAAEr9G,EAAQH,OAAO,CAACvgH,EAAE,CAAC,CAAC,CAEJ,IAA7C0gH,EAAQH,OAAO,CAACwtE,iBAAiB,CAACj/L,MAAM,GACxC,IAAI,CAAC8tO,eAAe,CAAC/mB,QAAQ,CAAG,SAEhC,IAAI,CAACmoB,kBAAkB,CAAG,CAAC,GAAG,EAAEt9G,EAAQH,OAAO,CAACvgH,EAAE,CAAC,CAAC,CAE5D,GAEK0gH,CAAAA,KAA4BjvH,IAA5BivH,EAAQH,OAAO,CAAC2C,OAAO,EAAkBxC,CAA4B,IAA5BA,EAAQH,OAAO,CAAC2C,OAAO,GAAe,SAAI,CAACg6G,WAAW,GAChG,IAAI,CAACD,oBAAoB,CAAG,GAAIhhB,CAAAA,IAAAA,EAAK,CAAC,IAAI,EAAEv7F,EAAQH,OAAO,CAACvgH,EAAE,CAAC,gBAAgB,CAAC,EAChF,IAAI,CAAC8+M,SAAS,CAAC,IAAI,CAACme,oBAAoB,EAGhD,CACJ,CACJ,CAEA1G,gBAAgB92N,CAAE,CAAE,CAChB,IAAI,CAACw9N,oBAAoB,CAAG,GAAIhhB,CAAAA,IAAAA,EAAK,CAAC,IAAI,EAAEx8M,EAAG,gBAAgB,CAAC,EAChE,IAAI,CAACq/M,SAAS,CAAC,IAAI,CAACme,oBAAoB,CAC5C,CAEAzE,qBAAsB,CAClB,IAAI,CAACE,cAAc,CAAG,IAAI,CAAC8D,qBAAqB,CAAChE,mBAAmB,CAAC,IAAI,CAACqE,gBAAgB,CAAE,IAAI,CAAClhB,aAAa,CAAE,IAAI,CAAC8c,QAAQ,CACjI,CAEAyF,aAAat6G,CAAY,CAAEiyG,CAAa,CAAEsI,CAAS,CAAE,CACjD,IAAMC,EAAY,CACd5pD,OAAQqhD,EAAgB,EACxBphD,MAAO0pD,EACP5zC,WAAY3mE,EAAawvD,MAAM,CAACjuJ,IAAI,CACpC2rB,UAAW8yE,EAAay6G,UAAU,CAClCttL,WAAY6yE,EAAa06G,aAAa,CACtCngB,WAAYv6F,EAAa1+G,UAAU,CACnCqT,KAAM,IAAI,CAACk+L,QAAQ,CAAC,cAAc7yF,EAAajrD,MAAM,EACrDtrB,KAAM,IAAI,CAACopK,QAAQ,CAAC,cAAc7yF,EAAajrD,MAAM,CAAE,YACvD/gE,MAAOgsH,EAAa0yD,OAAO,CAACxnL,MAAM,EAGtC,OAAO,IAAI,CAAC0G,oBAAoB,CAACS,SAAS,CAAC,oDAAqDmoO,EACpG,CAEAG,gBAAgB36G,CAAY,CAAE,CAC1B,IAAM46G,EAAa,IAAI,CAAChpO,oBAAoB,CAACS,SAAS,CAAC,+BACjDwoO,EAAiB,IAAI,CAACjpO,oBAAoB,CAACS,SAAS,CAAC,mCACrD3H,EAASs1H,EAAapE,QAAQ,CAAGi/G,EAAiBD,EAExD,OAAO,IAAI,CAAChpO,oBAAoB,CAACS,SAAS,CAAC,8CAA+C,CAAE3H,OAAQA,CAAO,EAC/G,CAEAowO,qBAAsB,CAClB,IAAI,CAACV,kBAAkB,CAAG,GAC1B,IAAI,CAACpB,eAAe,CAAC/mB,QAAQ,CAAG,QACpC,CAEAzoE,KAAK2xE,CAAS,CAAE,CACZ,IAAI,CAACpD,aAAa,CAAGoD,EACrB,IAAI,CAACyZ,mBAAmB,GAEpB,IAAI,CAACqE,gBAAgB,CAAC/tO,MAAM,CAAG,IAAI,CAAC2pO,QAAQ,EAC5C,IAAI,CAAC3Z,SAAS,CAAC,IAAI,CAACke,iBAAiB,CAE7C,CAEA2B,aAAa1lO,CAAQ,CAAE,CACnB,IAAI,CAAC2iO,cAAc,CAAG3iO,CAC1B,CAEA2lO,kBAAkBlqD,CAAU,CAAE,CAC1B,OAAO,IAAI,CAACl/K,oBAAoB,CAACS,SAAS,CAAC,gDAAiD,CACxFwrJ,MAAO,IAAI,CAACo9E,mBAAmB,CAACnqD,EACpC,EACJ,CAEAmqD,oBAAoBnqD,CAAU,CAAE,CAC5B,OAAO,IAAI,CAAC+hC,QAAQ,CAAC,cAAc,IAAI7xM,KAAK8vK,GAAa,eAC7D,CAEA4oD,iBAAkB,CACW7rO,KAAAA,IAArB,IAAI,CAACsrO,WAAW,GAChB,IAAI,CAACA,WAAW,CAAG,IAAI,CAAChJ,oBAAoB,CAACjyG,aAAa,CAAC,IAAI,CAACvoH,OAAO,EACvE,IAAI,CAACw6N,oBAAoB,CAACvpM,SAAS,CAAC,IAAI,CAACjxB,OAAO,CAAE,IAAI,CAACgkO,iBAAiB,GAG5E,IAAI,CAAC1e,sBAAsB,GAC3B,IAAI,CAACc,aAAa,CAAG,GAErB,IAAI,CAAC5D,cAAc,CAAG,IAAI,CAAChoN,SAAS,CAAC,KACjC,IAAIsH,EAAW,IAAI,IAAI,CAAC0hO,WAAW,CAACj9G,SAAS,CAAC,CAC9CzkH,EAAW,IAAI,CAAC+hO,SAAS,CAACrsO,MAAM,CAACsK,GACR,KAArB,IAAI,CAAC6hO,WAAW,EAChB7hO,CAAAA,EAAW,IAAI,CAACkgN,sBAAsB,CAAC1D,cAAc,CAAC,IAAI,CAACqlB,WAAW,CAAE7hO,EAAQ,EAEpF,IAAI,CAACwhO,gBAAgB,CAAGxhO,EACxB,IAAI,CAACm9N,mBAAmB,GAExB,IAAI,CAACkF,wBAAwB,GAC7B,IAAI,CAACoB,iBAAiB,CAAC,IAAI,CAACjC,gBAAgB,CAAC/tO,MAAM,EACnD,IAAI,CAACiwO,oBAAoB,GACzB,IAAI,CAACjgB,SAAS,CAAC,IAAI,CAACke,iBAAiB,EAErC,IAAI,CAACgC,cAAc,EACvB,EACJ,CAEAA,gBAAiB,CACb,IAAM3hN,EAAe,IAAI,CAAC+/M,SAAS,CAACh3G,eAAe,GAC/C64G,EAAmB,KAEvB,GAAI5hN,KAA4B5rB,IAA5B4rB,EAAaupG,UAAU,EAAkBvpG,KAAqC5rB,IAArC4rB,EAAaupG,UAAU,CAAClI,QAAQ,CACzEugH,EAAmB5hN,EAAaupG,UAAU,CAAClI,QAAQ,KAChD,CACH,IAAI,CAACy+G,cAAc,CAAG,KACtB,MACJ,CAEA,GAAI,IAAI,CAACA,cAAc,GAAK8B,EAAkB,CAC1C,IAAMpC,EAAmB,IAAI,CAACA,gBAAgB,CAAC,EAAE,MAExBprO,IAArBorO,GACAx6B,sBAAsB,KAClB,IAAM68B,EAAkBjwO,SAASyiC,cAAc,CAAC,CAAC,MAAM,EAAEmrM,EAAiB78N,EAAE,CAAC,CAAC,EAC1Ek/N,GACAA,EAAgBhxO,KAAK,EAE7B,GAGJ,IAAI,CAACivO,cAAc,CAAG8B,CAC1B,CACJ,CAEAxB,eAAgB,CACZ,IAAI,CAACd,cAAc,CAAG,GACtB,IAAI,CAAC9d,sBAAsB,GAE3B,IAAI,CAACke,WAAW,CAAG,IAAI,CAAChJ,oBAAoB,CAACjyG,aAAa,CAAC,IAAI,CAACvoH,OAAO,EAEnE,KAAqB9H,IAArB,IAAI,CAACsrO,WAAW,EAChB,IAAI,CAAChJ,oBAAoB,CAACvpM,SAAS,CAAC,IAAI,CAACjxB,OAAO,CAAE,IAAI,CAACgkO,iBAAiB,EACxE,IAAI,CAAC5hB,aAAa,CAAG,GAErB,IAAI,CAACwjB,kBAAkB,KAEvB,IAAI,CAAClB,YAAY,GACjB,IAAI,CAACc,oBAAoB,GAEjC,CAEAd,aAAahyM,CAAK,CAAE,CAChB,OAAQA,GACJ,KAAK44F,GAAAA,CAAeA,CAAChxB,wBAAwB,CACzC,IAAI,CAAC8jC,YAAY,CAAG,IAAI,CAACniI,oBAAoB,CAACS,SAAS,CAAC,wCACxD,IAAI,CAAC2lN,cAAc,CAAG,GACtB,KAEJ,MAAK/2F,GAAAA,CAAeA,CAAClxB,iBAAiB,CAC9B,KAAkBliG,IAAlB,IAAI,CAACitH,QAAQ,CACb,IAAI,CAACiZ,YAAY,CAAG,IAAI,CAACniI,oBAAoB,CAACS,SAAS,CAAC,qDAExD,IAAI,CAAC0hI,YAAY,CAAG,IAAI,CAACniI,oBAAoB,CAACS,SAAS,CAAC,+CAE5D,IAAI,CAAC2lN,cAAc,CAAG,GACtB,KAEJ,SACI,IAAI,CAACjkF,YAAY,CAAG,IAAI,CAACniI,oBAAoB,CAACS,SAAS,CAAC,qDAEhE,CAEA,IAAI,CAAC0pN,aAAa,CAAG,IAAI,CAAChoF,YAAY,CAG1CwnG,oBAAqB,CACjB,IAAI,CAACtC,gBAAgB,CAAG,IAAI,CAACO,SAAS,CAACrsO,MAAM,CAAC,IAAI,IAAI,CAACgsO,WAAW,CAACj9G,SAAS,CAAC,EAC7E,IAAI,CAAC04G,mBAAmB,GACxB,IAAI,CAACsG,iBAAiB,CAAC,IAAI,CAACjC,gBAAgB,CAAC/tO,MAAM,EACnD,IAAI,CAACiwO,oBAAoB,EAC7B,CAEAD,kBAAkBlB,CAAc,CAAE,CAC1B,IAAI,CAACb,WAAW,CAACj9G,SAAS,CAAChxH,MAAM,CAAG,EACpC,IAAI,CAACmvO,YAAY,CAACp5G,GAAAA,CAAeA,CAAClxB,iBAAiB,EAC5C,IAAI,CAAC+kI,cAAc,CAAC5pO,MAAM,CAAG,GACpC,IAAI,CAAC6tO,cAAc,CAAG,GACtB,IAAI,CAACsB,YAAY,CAACp5G,GAAAA,CAAeA,CAAChxB,wBAAwB,IAEtD+pI,EAAiB,IAAI,CAACnF,QAAQ,CAC9B,IAAI,CAAC9Y,aAAa,CAAG,IAAI,CAACnqN,oBAAoB,CAACS,SAAS,CAAC,sDAAuD,CAC5G2B,MAAOgmO,EACPE,aAAc,IAAI,CAACrF,QAAQ,GAG/B,IAAI,CAAC9Y,aAAa,CAAG,IAAI,CAACnqN,oBAAoB,CAACS,SAAS,CAAC,8CAA+C,CACpG2B,MAAOgmO,CACX,GAGJ,IAAI,CAACjB,cAAc,CAAG,GAE9B,CAEAoC,sBAAuB,CACnB,IAAI,CAACrC,eAAe,CAAG,EAC3B,CAEA7d,wBAAyB,CACrB,IAAI,CAACme,iBAAiB,CAAC9d,MAAM,GAC7B,IAAI,CAAC+d,oBAAoB,CAAG,KAC5B,IAAI,CAACxE,QAAQ,CAAG,IAAI,CAACqE,gBAAgB,CACrC,IAAI,CAACJ,eAAe,CAAG,GACvB,IAAI,CAAC9gB,cAAc,CAAG,EAC1B,CAEA8hB,0BAA2B,CACvB,IAAMrgN,EAAe,IAAI,CAAC+/M,SAAS,CAACh3G,eAAe,EACnD,KAAI,CAACg2G,gBAAgB,CAAG/+M,KAA4B5rB,IAA5B4rB,EAAaupG,UAAU,CAC/C,IAAI,CAACy1G,oBAAoB,CAAG,IAAI,CAACD,gBAAgB,CAAG/+M,EAAaupG,UAAU,CAACjuH,KAAK,CAAG,EACxF,CAEAmmN,UAAUK,CAAW,CAAE,CACC,OAAhBA,GAAwB,SAAI,CAAC+d,WAAW,EACxC,IAAI,CAAC/8E,QAAQ,CAACkiD,qBAAqB,CAAC,KAChC8c,EAAYC,IAAI,CAAC,IAAI,CAAC8d,WAAW,CAAE,CAC/B7d,eAAgB,GAChBC,cAAe,GACfC,mBAAoB,EACxB,EACJ,EAER,CACJ,CAYA+c,GAAsBtqO,OAAO,CAAG,CAAC,UAAW,WAAY,UAAW,uBAAwB,uBAAwB,sBAAuB,6BAA8B,wBAAwB,CAChMF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,eAXU,CAC3BC,SAAU,CACNwC,QAAS,IACTmlH,SAAU,KACVg3G,wBAAyB,IAC7B,EACAv+N,SCtZW,2rHDuZXC,WAAYklO,EAChB,EE/YoD,OAE9C8C,WAAqC7pO,EAAAA,CAAWA,CAClDrD,YAAYqqO,CAAmB,CAAE/mO,CAAoB,CAAE,CACnD,KAAK,GAEL,IAAI,CAACknO,eAAe,CAAG,GACvB,IAAI,CAAC/kG,YAAY,CAAG,GACpB,IAAI,CAACgoF,aAAa,CAAG,GAErB,IAAI,CAACoU,oBAAoB,CAAGwI,EAC5B,IAAI,CAAC/mO,oBAAoB,CAAGA,EAC5B,IAAI,CAACisH,oBAAoB,CAAG,IAAItuH,GAAAA,CACpC,CAEA6jI,SAAU,CACN,IAAI,CAAC2oF,aAAa,CAAG,IAAI,CAACnqN,oBAAoB,CAACS,SAAS,CAAC,gDAEzD,IAAMopO,EAAkC,IAAI,CAACtL,oBAAoB,CAC5DzxG,wBAAwB,CAAC,IAAI,CAAC/oH,OAAO,CAAE,IAAI,CAACmlH,QAAQ,EACpD5rH,KAAK,CAAC,IACCm5B,KAAex6B,IAAfw6B,EAAMt5B,IAAI,CACNs5B,KAAqBx6B,IAArBw6B,EAAMt5B,IAAI,CAACwmK,KAAK,CAChB,IAAI,CAAC8kE,YAAY,CAAChyM,EAAMt5B,IAAI,CAACwmK,KAAK,EAElC,IAAI,CAAC8kE,YAAY,CAAChyM,EAAMt5B,IAAI,EAGhC,IAAI,CAACsrO,YAAY,CAAChyM,EAE1B,GACCl5B,OAAO,CAAC,KACL,IAAI,CAAC2pO,eAAe,CAAG,EAC3B,GAEJ,IAAI,CAACj7G,oBAAoB,CAACpuH,GAAG,CAACgsO,EAClC,CAEAxlH,YAAa,CACT,IAAI,CAAC4H,oBAAoB,CAAChuH,QAAQ,EACtC,CAEAwqO,aAAahyM,CAAK,CAAE,CACRA,IACC44F,GAAAA,CAAeA,CAACjxB,mBAAmB,CACpC,IAAI,CAAC+jC,YAAY,CAAG,IAAI,CAACniI,oBAAoB,CAACS,SAAS,CAAC,iDAIxD,IAAI,CAAC0hI,YAAY,CAAG,IAAI,CAACniI,oBAAoB,CAACS,SAAS,CAAC,sDAIhE,IAAI,CAAC0pN,aAAa,CAAG,IAAI,CAAChoF,YAAY,CAE9C,CAYAynG,GAA6BptO,OAAO,CAAG,CAAC,sBAAuB,uBAAuB,CACtFF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,sBAXiB,CAClCC,SAAU,CACNwC,QAAS,IACTmlH,SAAU,KACVg3G,wBAAyB,IAC7B,EACAv+N,SCxEW,urBDyEXC,WAAYgoO,EAChB,G,SEhCAttO,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,iBAAkB,CACnC,OACA,aACA,WACA,YACA,eACA,kBACA,WACA,KACA,oBACA,qBACA,QACA,UACA,gBACA,qBACA,mBACA,wBACA,+BACA,oBACA,aACA,qBACA,aACA,OACA,uBACA,iBACA,SACInC,CAAI,CACJW,CAAU,CACVoe,CAAQ,CACR9b,CAAS,CACTzM,CAAY,CACZyJ,CAAe,CACfxP,CAAQ,CACR8R,CAAE,CACFyc,CAAiB,CACjBsM,CAAkB,CAClBpoB,CAAK,CACLjb,CAAO,CACPg0O,CAAa,CACbrjM,CAAkB,CAClBsjM,CAAgB,CAChBC,CAAqB,CACrB5rB,CAA4B,CAC5B9M,CAAiB,CACjB/sM,CAAU,CACVoM,CAAkB,CAClB44C,CAAU,CACVxT,CAAI,CACJ/1C,CAAoB,CACpBkR,CAAc,EAEd,MAAO,CACHvP,SC9FG,2jGD+FHoM,SAAU,IAGVnM,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAoB9B,GAnBA5B,EAAOhV,oBAAoB,CAAGA,EAC9BgV,EAAOy1L,WAAW,CAAG,GACrBz1L,EAAO+J,KAAK,CAAG,CAAC,EAChB/J,EAAOi1N,WAAW,CAAG,GACrBj1N,EAAOk1N,SAAS,CAAG,GACnBl1N,EAAO4vE,QAAQ,CAAG9zE,EAAUq5N,KAAK,CAACpuO,OAAO,CAAC,UAAY,GACtDiZ,EAAOo1N,cAAc,CAAG,IAAIJ,EAC5Bh1N,EAAOq1N,YAAY,CAAG,GACtBr1N,EAAOs1N,wBAAwB,CAAG,EAAE,CACpCt1N,EAAOu1N,sBAAsB,CAAG,EAAE,CAClCv1N,EAAO2kM,aAAa,CAAGnrM,EAAWmrM,aAAa,CAC/C3kM,EAAOw1N,uBAAuB,CAAG,GACjCx1N,EAAOqoB,gBAAgB,CAAGtX,EAAAA,CAC1B/Q,CAAAA,EAAOxW,UAAU,CAAG,KAEhBwW,EAAOy1N,eAAe,EAAIz1N,EAAOy1N,eAAe,CAAC7tF,yBAAyB,EAC1E5nI,CAAAA,EAAOs1N,wBAAwB,CAAGt1N,EAAOs1N,wBAAwB,CAACv2M,MAAM,CAAC/e,EAAOy1N,eAAe,CAAC7tF,yBAAyB,GAGzH5nI,EAAO2kM,aAAa,CAAE,CACtB,GAAI3kM,EAAO2kM,aAAa,CAAC+wB,SAAS,CAC9B,IAAK,IAAIxxO,KAAO8b,EAAO2kM,aAAa,CAAC+wB,SAAS,CACtC11N,EAAO2kM,aAAa,CAAC+wB,SAAS,CAACrjN,cAAc,CAACnuB,IAC1C,CAAC8b,EAAO2kM,aAAa,CAAC+wB,SAAS,CAACxxO,EAAI,EACpC8b,EAAOs1N,wBAAwB,CAACvsO,IAAI,CAAC7E,EAMhD8b,CAAAA,EAAO2kM,aAAa,CAACgxB,OAAO,EAC7B31N,EAAOs1N,wBAAwB,CAACvsO,IAAI,CAAC,YAE7C,CAEA,IAAIklC,EAAqB,IAAI9J,CAC7BnkB,CAAAA,EAAO41N,eAAe,CAAG,SAAUntO,CAAQ,EASvC,GAR8B,SAAnBuX,EAAOjR,OAAO,GACjBM,EAAajD,MAAM,CACnB4T,EAAOjR,OAAO,CAAGM,EAAajD,MAAM,CAEpC4T,EAAOjR,OAAO,CAAGM,EAAaN,OAAO,EAIxCiR,EAAO4vE,QAAQ,CAsBb,CAGE5vE,EAAOy1N,eAAe,EACvBz1N,CAAAA,EAAOy1N,eAAe,CAAG,CAAC,GAEzBz1N,EAAOy1N,eAAe,CAAC7tF,yBAAyB,EACjD5nI,CAAAA,EAAOy1N,eAAe,CAAC7tF,yBAAyB,CAAG,EAAE,EAEpD5nI,EAAOy1N,eAAe,CAAC7tF,yBAAyB,CAACnhJ,QAAQ,CAAC,cAC3DuZ,EAAOy1N,eAAe,CAAC7tF,yBAAyB,CAAC7+I,IAAI,CAAC,aAG1D,IAAI8sO,EAAgBh+M,EAAkB7iB,uBAAuB,CAACgL,EAAOjR,OAAO,EAe5E,OAdA8mO,EAAcpyO,IAAI,CACd,SAAU0M,CAAQ,EACVA,EAAShI,IAAI,GACb6X,EAAO81N,6BAA6B,CAAC3lO,EAAShI,IAAI,EAE9CM,GACAA,IAGZ,EACA,SAAUg5B,CAAK,EACXC,QAAQC,IAAI,CAAC,oBACjB,GAEGk0M,CACX,CAlDI,IAAI39M,EAAeL,EAAkBtkB,4BAA4B,CAACyM,EAAOjR,OAAO,EAoBhF,OAnBAmpB,EAAaz0B,IAAI,CACb,SAAU0M,CAAQ,EACVA,EAAShI,IAAI,GACb6X,EAAO+1N,iBAAiB,CAAC5lO,EAAShI,IAAI,EAElC6tO,SA+CJpuG,CAAY,EAE5B,GAAIA,EACA,KAAK,IAAIzgI,EAAI,EAAGA,EAAIygI,EAAatjI,MAAM,CAAE6C,IACrC,GAAIygI,eAAAA,CAAY,CAACzgI,EAAE,CAACqsC,GAAG,EAAqBo0F,SAAAA,CAAY,CAACzgI,EAAE,CAACssC,KAAK,CAC7D,MAAO,EAEf,CAEJ,MAAO,EACX,EAzDmCtjC,EAAShI,IAAI,CAACorC,YAAY,GACrCvzB,EAAOs1N,wBAAwB,CAACvsO,IAAI,CAAC,aAGrCN,GACAA,IAGZ,EACA,SAAUg5B,CAAK,EACXC,QAAQC,IAAI,CAAC,oBACjB,GAGGzJ,CA+Bf,EAcAlY,EAAOi2N,2BAA2B,CAAG,SAAUxmD,CAAW,CAAEymD,CAAS,EACjE,GAAI,EAASv+L,eAAe,CAAC83I,IAAiB3uL,EAAQ62C,eAAe,CAACu+L,IAmBtE,IAAK,IAfDC,EAAyB,EAAE,CAC3BC,EAAeF,EACfzsL,EAAY,EAAE,CACd4sL,EAAqB,KAGrBC,EAAuB,SAAU1sL,CAAQ,EACzC,IAAI2sL,EAAa3sL,EAASX,YAAY,GAAKotL,EAAmB7gO,EAAE,CAKhE,OAJI+gO,GACA9sL,EAAU1gD,IAAI,CAAC6gD,GAGZ,CAAC2sL,CACZ,EAESpvO,EAAI,EAAGA,EAAIsoL,EAAYnrL,MAAM,CAAE6C,IACpCsiD,EAAY,EAAE,CACd4sL,EAAqB,IAAI9hL,EAAWumB,qBAAqB,CAAC20G,CAAW,CAACtoL,EAAE,EAExEivO,EAAeA,EAAa7vO,MAAM,CAAC+vO,GAEnCD,EAAmB3tL,iBAAiB,CAAGe,EACvC0sL,EAAuBptO,IAAI,CAACstO,GAEhC,OAAOF,EACX,EAEAn2N,EAAO81N,6BAA6B,CAAG,SAAUU,CAAS,EACtD,IAAIzsN,EAAQ/J,EAAO+J,KAAK,CAExBA,EAAMhC,KAAK,CAAGyuN,EAAUzuN,KAAK,CAC7BgC,EAAMvU,EAAE,CAAGghO,EAAUhhO,EAAE,CACvBuU,EAAM0sN,YAAY,CAAGD,EAAUC,YAAY,CAC3C1sN,EAAM4zD,WAAW,CAAG64J,EAAU74J,WAAW,CACzC5zD,EAAM2sN,aAAa,CAAGF,EAAUE,aAAa,CAC7C3sN,EAAM4sN,YAAY,CAAGH,EAAUG,YAAY,CAC3C5sN,EAAMm7B,UAAU,CAAGsxL,EAAUtxL,UAAU,CACvCn7B,EAAM6sN,eAAe,CAAGJ,EAAUI,eAAe,CACjD7sN,EAAM+6B,MAAM,CAAG0xL,EAAU1xL,MAAM,EAAI,EAAE,CACrC/6B,EAAM8sN,UAAU,CAAGL,EAAUK,UAAU,CACvC9sN,EAAMixB,IAAI,CAAGw7L,EAAUx7L,IAAI,CAC3BjxB,EAAM+sN,YAAY,CAAGN,EAAUM,YAAY,CAAG,UAAYzyL,KAAKmiC,MAAM,GACrEz8D,EAAMgtN,WAAW,CAAG,GACpBhtN,EAAMmZ,QAAQ,CAAGszM,EAAUtzM,QAAQ,CACnCnZ,EAAMU,OAAO,CAAG+rN,EAAU/rN,OAAO,CAEjCzK,EAAOskB,cAAc,CAAG,CAAC,MAAM,EAGnCtkB,EAAO+1N,iBAAiB,CAAG,SAAUiB,CAAS,EAC1C,IAAIjtN,EAAQ/J,EAAO+J,KAAK,CAExBA,EAAMhC,KAAK,CAAGivN,EAAUjvN,KAAK,CAC7BgC,EAAMvU,EAAE,CAAGwhO,EAAUxhO,EAAE,CACvBuU,EAAM0sN,YAAY,CAAGO,EAAUP,YAAY,CAC3C1sN,EAAM4zD,WAAW,CAAGq5J,EAAUr5J,WAAW,CACzC5zD,EAAM2sN,aAAa,CAAGM,EAAUN,aAAa,CAC7C3sN,EAAM4sN,YAAY,CAAGK,EAAUL,YAAY,CAC3C5sN,EAAMm7B,UAAU,CAAG8xL,EAAU9xL,UAAU,CACvCn7B,EAAM6sN,eAAe,CAAGI,EAAUJ,eAAe,CACjD7sN,EAAM+6B,MAAM,CAAGkyL,EAAUlyL,MAAM,EAAI,EAAE,CACrC/6B,EAAMu9B,WAAW,CAAGtnC,EAAOi2N,2BAA2B,CAACe,EAAU1vL,WAAW,CAAE0vL,EAAUtuL,iBAAiB,EACzG3+B,EAAM8sN,UAAU,CAAGG,EAAUH,UAAU,CACvC9sN,EAAMixB,IAAI,CAAGg8L,EAAUh8L,IAAI,CAC3BjxB,EAAM+sN,YAAY,CAAGE,EAAUF,YAAY,CAAG,UAAYzyL,KAAKmiC,MAAM,GACrEz8D,EAAMgtN,WAAW,CAAG,GACpBhtN,EAAMmZ,QAAQ,CAAG8zM,EAAU9zM,QAAQ,CACnCnZ,EAAMU,OAAO,CAAGusN,EAAUvsN,OAAO,CACjCV,EAAMwpB,YAAY,CAAGyjM,EAAUzjM,YAAY,CAC3CxpB,EAAMktN,gBAAgB,CAAGD,EAAUC,gBAAgB,CACnDltN,EAAMhH,QAAQ,CAAGi0N,EAAUj0N,QAAQ,CACnCgH,EAAMmtN,mBAAmB,CAAGF,EAAUE,mBAAmB,CACzDntN,EAAMywD,SAAS,CAAGw8J,EAAUx8J,SAAS,CAErCx6D,EAAOm3N,QAAQ,CAAGr2O,EAAQ62C,eAAe,CAAC5tB,EAAMhH,QAAQ,EACxD/C,EAAOskB,cAAc,CAAG,CAAC,MAAM,CAE3Bj1B,EAAaN,OAAO,GAAKiR,EAAOjR,OAAO,GACvCiR,EAAOskB,cAAc,CAACv7B,IAAI,CAAC,QAC3BiX,EAAOskB,cAAc,CAACv7B,IAAI,CAAC,SAC3BiX,EAAOskB,cAAc,CAACv7B,IAAI,CAAC,WAG3BghB,EAAMmZ,QAAQ,GAAKxlB,GAAAA,CAAeA,CAACC,KAAK,CAACs3C,IAAI,EAAIlrC,EAAMmZ,QAAQ,GAAKxlB,GAAAA,CAAeA,CAACC,KAAK,CAACmH,QAAQ,EAClG9E,EAAOskB,cAAc,CAACv7B,IAAI,CAAC,QAG3BghB,EAAMmZ,QAAQ,GAAKxlB,GAAAA,CAAeA,CAACC,KAAK,CAAC8e,IAAI,EAC7Czc,EAAOskB,cAAc,CAACv7B,IAAI,CAAC,SAEnC,EAEA,IAAIquO,EAAe,WACf,IAAMznM,EAAgB,SAAU7hC,CAAQ,EACpCA,EAAS8hC,iBAAiB,CAAC5P,SAAS,CAAC,KACjChgB,EAAOyvB,kBAAkB,GACzBzvB,EAAOuS,WAAW,EACtB,EACJ,EAEMsd,EAAUprC,SAASyxB,aAAa,CAAC,6CAEnClW,CAA2B,WAA3BA,EAAOsvB,eAAe,CACtBziC,CAAAA,EAAAA,GAAAA,CAAAA,EAAmB7B,EAAsB2kC,EAAe,EAAG3vB,EAAOwvB,iBAAiB,CAAEK,GAC9E7vB,YAAAA,EAAOsvB,eAAe,CAC7BzgC,CAAAA,EAAAA,GAAAA,CAAAA,EAAoB7D,EAAsB2kC,EAAe,EAAGE,GAE5DjhC,CAAAA,EAAAA,GAAAA,CAAAA,EAAkB5D,EAAsB2kC,EAAe,EAAG3vB,EAAOwvB,iBAAiB,CAAEK,EAE5F,EAEIwnM,EAAa,SAAU39L,CAAG,EAC1BlgC,EAAWK,UAAU,CAAC,+BAAgC,CAAE8mB,aAAc+Y,CAAI,GAC1E15B,EAAO4N,KAAK,CAAC,0BACjB,EAEAqgB,EAAmB8B,SAAS,CAAC,eAAgB,SAAU2J,CAAG,EACtD15B,EAAOsvB,eAAe,CAAG,SACzBtvB,EAAOyvB,kBAAkB,CAAG,WACxB5X,EAAkBwW,YAAY,CAACqL,GAAKj2C,IAAI,CAAC,GAAc4zO,EAAWlnO,EAAS7C,MAAM,CAACnF,IAAI,EAC1F,EACAivO,GACJ,GAEAnpM,EAAmB8B,SAAS,CAAC,cAAe,SAAU2J,CAAG,EACrD15B,EAAOsvB,eAAe,CAAG,QACzBtvB,EAAOyvB,kBAAkB,CAAG,WACxB5X,EAAkB6W,WAAW,CAACgL,GAAKj2C,IAAI,CAAC,GAAc4zO,EAAWlnO,EAAS7C,MAAM,CAACnF,IAAI,CAAC0M,QAAQ,EAClG,EACAuiO,GACJ,GAEAnpM,EAAmB8B,SAAS,CAAC,gBAAiB,SAAU2J,CAAG,EACvD15B,EAAOsvB,eAAe,CAAG,UACzBtvB,EAAOyvB,kBAAkB,CAAG,WACxB5X,EAAkBiX,aAAa,CAAC4K,GAAKj2C,IAAI,CAAC,GAAc4zO,EAAWlnO,EAAS7C,MAAM,CAACnF,IAAI,EAC3F,EACAivO,GACJ,GAEAnpM,EAAmB8B,SAAS,CAAC,oBAAqB,SAAU2J,CAAG,EAC3D7hB,EACKqiB,cAAc,CAACR,EAAK,IACpBj2C,IAAI,CAAC,KACFm8B,GAAAA,CAAkBA,CAACt1B,MAAM,CAACovC,GAC1Bnb,EAAAA,CAAOA,CAACC,UAAU,CAAC,YAAa,SAAU,8BAC9C,GACCl2B,KAAK,CAAC6lB,QAAQ4C,IAAI,CAC3B,GAEAkd,EAAmB8B,SAAS,CAAC,kBAAmB,SAAU2J,CAAG,EACzD7hB,EACKqiB,cAAc,CAACR,EAAK,IACpBj2C,IAAI,CAAC,KACFm8B,GAAAA,CAAkBA,CAAC/2B,GAAG,CAAC6wC,GACvBnb,EAAAA,CAAOA,CAACC,UAAU,CAAC,YAAa,MAAO,4BAC3C,GACCl2B,KAAK,CAAC6lB,QAAQ4C,IAAI,CAC3B,GAEAkd,EAAmB8B,SAAS,CAAC,aAAc,SAAU2J,CAAG,EAEpDlgC,EAAWK,UAAU,CAAC,eAAgB6/B,CAAG,CAAC,EAAE,CAChD,GAEAzL,EAAmB8B,SAAS,CAAC,iBAAkB,KAC3Cv2B,EAAWK,UAAU,CAAC,yBAA0B,CAAEqB,MAAO6jF,EAAAA,CAAeA,CAACC,KAAK,CAAC4N,qBAAqB,CAAE79F,QAASiR,EAAOjR,OAAO,EACjI,GAEAiR,EAAOs3N,eAAe,CAAG,SAAUvoO,CAAO,EAClCiR,EAAO4vE,QAAQ,EAGnBmlJ,EAAiBwC,iBAAiB,CAACxoO,EAAS,IACvCtL,IAAI,CAAC,IACE8zO,GACAv3N,EAAOu1N,sBAAsB,CAACxsO,IAAI,CAC9B,IAAIi6I,GAAAA,CAAaA,CACb,iBACAh4I,EAAqBS,SAAS,CAAC,0CAC/BT,EAAqBS,SAAS,CAAC,qDAC/B,iBACA,GACA+rO,GAAAA,CAAUA,EAI1B,GACClvO,KAAK,CAAC6lB,QAAQ4C,IAAI,EAClBxoB,OAAO,CAAC,KACLyX,EAAOw1N,uBAAuB,CAAG,EACrC,EACR,EAEAx1N,EAAOy3N,YAAY,CAAG,WAClB,IAAIrzN,EACApE,EAAO+J,KAAK,CAACmZ,QAAQ,GAAKxlB,GAAAA,CAAeA,CAACC,KAAK,CAACs3C,IAAI,EAAIj1C,EAAO+J,KAAK,CAACmZ,QAAQ,GAAKxlB,GAAAA,CAAeA,CAACC,KAAK,CAACmH,QAAQ,CAC1GuK,GAAAA,CAAeA,CAACmX,UAAU,CAACvN,QAAQ,CACnC5J,GAAAA,CAAeA,CAACmX,UAAU,CAACzN,KAAK,CAC1C/Y,EAAOJ,GAAG,CAAC,uBAAwB,SAAUtc,CAAK,CAAE6qC,CAAa,EAC7DnuB,EAAOwvB,iBAAiB,CAAGrB,EAAcqB,iBAAiB,CAC1DvB,EAAmB6B,MAAM,CAAC3B,EAAckB,cAAc,CAAElB,EAAcuB,OAAO,CAAE,CAC3EtrB,KAAMA,EACNpL,MAAOgH,CACX,GACA1c,EAAMU,eAAe,EACzB,EACJ,EAEA,IAAIo4M,EAAiB,WACjBE,EAAkBF,cAAc,EACpC,CAYAp8L,CAAAA,EAAO7D,SAAS,CAAG,iBAGf,CADA6D,EAAO03N,YAAY,CATf,CAAC13N,EAAOq1N,YAAY,EACpB,CAAC9lO,EAAWqgF,QAAQ,CAAC9zE,EAAUvH,GAAG,KAClCyL,KAAAA,EAAO+J,KAAK,CAACktN,gBAAgB,CAAClwO,OAAO,CAAC,SACtCiZ,EAAO2kM,aAAa,EAAEzlH,OAAS,GAO/Bl/E,EAAO03N,YAAY,GACdx7N,EAAe4rK,YAAY,IAC5B5rK,EAAeiC,KAAK,CAAC6B,EAAO+J,KAAK,CAACmZ,QAAQ,CAAE,mBAEhDhnB,EAAeE,IAAI,CAAC,OAAQ,0BACrBT,EAAmBQ,SAAS,CAAC6D,EAAO+J,KAAK,CAACvU,EAAE,CAAEwK,EAAO+J,KAAK,CAACmZ,QAAQ,CAAE,IAAI56B,KAAK,CAAC,SAAU+T,CAAU,EACtG2D,EAAO3D,UAAU,CAAGA,CACxB,IAEOjB,EAAG4K,IAAI,EAEtB,EAEAhG,EAAOJ,GAAG,CAAC,aAAcw8L,GACzBp8L,EAAOJ,GAAG,CAAC,WAAYw8L,GACvBp8L,EAAOJ,GAAG,CAAC,2BAA4Bw8L,EAC3C,EACH,CAEDluL,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAMoL,IAAI,CAAG2P,EAAM3P,IAAI,CACvBpL,EAAM2+N,QAAQ,CAAG,CAAC3+N,EAAMjK,OAAO,CAAC,CAChCiK,EAAM4+N,aAAa,CAAG,YACtB5+N,EAAM6+N,eAAe,CAAG94I,EAAAA,CAAeA,CAACC,KAAK,CAACgN,UAAU,CACxDhzF,EAAM8+N,mBAAmB,CAAG/4I,EAAAA,CAAeA,CAACC,KAAK,CAACiN,cAAc,CAChEjzF,EAAM++N,mBAAmB,CAAGh5I,EAAAA,CAAeA,CAACC,KAAK,CAACkN,cAAc,CAChElzF,EAAMg/N,kBAAkB,CAAGj5I,EAAAA,CAAeA,CAACC,KAAK,CAACmN,aAAa,CAC9DnzF,EAAMi/N,qBAAqB,CAAGl5I,EAAAA,CAAeA,CAACC,KAAK,CAACoN,gBAAgB,CACpEpzF,EAAMk/N,2BAA2B,CAAGn5I,EAAAA,CAAeA,CAACC,KAAK,CAACqN,uBAAuB,CAKjFrzF,EAAMm/N,oBAAoB,CAAGhqN,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,EAErGpV,EAAMxP,UAAU,CAAG,CACf,CAACu1F,EAAAA,CAAeA,CAACC,KAAK,CAACiN,cAAc,CAAC,CAAEgwG,GAAyBjjM,EAAMm/N,oBAAoB,CAAC,EAAE,CAAE,CAC5Fn8B,iBAAkBhxM,EAClBgO,MAAOA,CACX,GACA,CAAC+lF,EAAAA,CAAeA,CAACC,KAAK,CAACkN,cAAc,CAAC,CAAE6vG,GAAyB/iM,EAAMm/N,oBAAoB,CAAC,EAAE,CAAE,CAC5Fn8B,iBAAkBhxM,EAClBgO,MAAOA,CACX,EACJ,EAEAA,EAAMojI,UAAU,CAAG,WACfpjI,EAAMo/N,iBAAiB,CAAGjqN,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,EAChGpV,EAAMq/N,qBAAqB,CAAGlqN,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,EACxGpV,EAAMs/N,qBAAqB,CAAGnqN,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,EACxGpV,EAAMu/N,oBAAoB,CAAGpqN,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,oBAAoB,CAAC,EAAE,EACtGpV,EAAMw/N,8BAA8B,CAAGrqN,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,8BAA8B,CAAC,EAAE,EAC1HpV,EAAMy/N,oBAAoB,CAAGtqN,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,uBAAuB,CAAC,EAAE,CAC7G,EAEApV,EAAM0/N,oBAAoB,CAAG,WACzBxyO,EAAQwnB,QAAQ,CAAC,iBACjBuZ,WAAW,WAEP,OADAjuB,EAAMojI,UAAU,GACRpjI,EAAMoL,IAAI,EACd,KAAK26E,EAAAA,CAAeA,CAACC,KAAK,CAACgN,UAAU,CACjChzF,EAAMo/N,iBAAiB,CAAC,EAAE,CAAC10O,KAAK,GAChC,KACJ,MAAKq7F,EAAAA,CAAeA,CAACC,KAAK,CAACiN,cAAc,CACrCjzF,EAAMq/N,qBAAqB,CAAC,EAAE,CAAC30O,KAAK,GACpC,KACJ,MAAKq7F,EAAAA,CAAeA,CAACC,KAAK,CAACkN,cAAc,CACrClzF,EAAMs/N,qBAAqB,CAAC,EAAE,CAAC50O,KAAK,GACpC,KACJ,MAAKq7F,EAAAA,CAAeA,CAACC,KAAK,CAACqN,uBAAuB,CAC9CrzF,EAAMw/N,8BAA8B,CAAC,EAAE,CAAC90O,KAAK,GAC7C,KACJ,MAAKq7F,EAAAA,CAAeA,CAACC,KAAK,CAACoN,gBAAgB,CACvCpzF,EAAMy/N,oBAAoB,CAAC,EAAE,CAAC/0O,KAAK,GACnC,KACJ,MAAKq7F,EAAAA,CAAeA,CAACC,KAAK,CAACmN,aAAa,CACpCnzF,EAAMu/N,oBAAoB,CAAC,EAAE,CAAC70O,KAAK,EAE3C,CACJ,EAAG,EACP,EAEAsV,EAAM2/N,UAAU,CAAG,SAAUC,CAAQ,EAC7BA,IAAa5/N,EAAMoL,IAAI,GACvBpL,EAAMoL,IAAI,CAAGw0N,EACb5/N,EAAM6/N,WAAW,GAEzB,EAEA7/N,EAAM8/N,wBAAwB,CAAG,IAC7B,GAAI9/N,OAAAA,EAAMxP,UAAU,CAChB,OAEJwP,EAAMqvB,gBAAgB,GACtB,IAAM8kI,EAAYn0J,EAAMxP,UAAU,CAACuvO,EAAQ,MACzB9xO,IAAdkmK,GACAn0J,CAAAA,EAAMqvB,gBAAgB,CAAGC,EAAAA,CAAeA,CAACz/B,GAAG,CAACskK,EAAWniK,EAAqBS,SAAS,CAAC,2CAA0C,CAEzI,EAEAuN,EAAM6/N,WAAW,CAAG,WAChB,IAAI/tM,EAAO,GACPkuM,EAAYhgO,EAAMgG,IAAI,CAAC,GAC3Bg6N,CAAAA,EAAUjvN,KAAK,CAAG/Q,EAAM+Q,KAAK,CAC7BivN,EAAUjqO,OAAO,CAAGiK,EAAMjK,OAAO,CACjCiqO,EAAU9kH,QAAQ,CAAGl7G,EAAMk7G,QAAQ,CACnC8kH,EAAU5sO,MAAM,CAAG4M,EAAM5M,MAAM,CAC/B4sO,EAAU/D,WAAW,CAAGj8N,EAAMi8N,WAAW,CACzC+D,EAAU38N,UAAU,CAAGrD,EAAMqD,UAAU,CACvC28N,EAAU7B,QAAQ,CAAGn+N,EAAMm+N,QAAQ,CACnC6B,EAAU/pO,YAAY,CAAG+J,EAAM/J,YAAY,CAE3C,IAAIwmO,EAAkBz8N,EAAMy8N,eAAe,CA0B3C,OAzBAuD,EAAUt0B,WAAW,CAAG,GACpB+wB,IACIA,EAAgBhlM,aAAa,EAC7BuoM,CAAAA,EAAUl1B,MAAM,CAAG,CACfC,UAAW79M,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,CACjE2a,MAAO0sM,EAAgBhlM,aAAa,GAIxCglM,EAAgBzxB,cAAc,EAC9Bg1B,CAAAA,EAAUh1B,cAAc,CAAG,CACvBj7K,MAAO0sM,EAAgBzxB,cAAc,GAIN,SAA5ByxB,EAAgBn0N,OAAO,EAC9B03N,CAAAA,EAAUt0B,WAAW,CAAG+wB,EAAgBn0N,OAAO,EAGnD03N,EAAUh8G,UAAU,CAAG,GACnBy4G,EAAgB7tF,yBAAyB,EACzCoxF,CAAAA,EAAUh8G,UAAU,CAAG,CAACy4G,EAAgB7tF,yBAAyB,CAACnhJ,QAAQ,CAAC,SAAQ,GAInFuS,EAAMoL,IAAI,EACd,KAAK26E,EAAAA,CAAeA,CAACC,KAAK,CAACgN,UAAU,CACjClhE,EAAO,+CACP,KACJ,MAAKi0D,EAAAA,CAAeA,CAACC,KAAK,CAACiN,cAAc,CACrCnhE,EAAO,uHACP,KACJ,MAAKi0D,EAAAA,CAAeA,CAACC,KAAK,CAACkN,cAAc,CACrCphE,EAAO,0FACP,KACJ,MAAKi0D,EAAAA,CAAeA,CAACC,KAAK,CAACqN,uBAAuB,CAC9CvhE,EAAO,sCAAwC9xB,EAAM+Q,KAAK,CAACvU,EAAE,CAAG,+BAChE,KACJ,MAAKupF,EAAAA,CAAeA,CAACC,KAAK,CAACoN,gBAAgB,CACvCthE,EAAO,2BAA6B9xB,EAAM+Q,KAAK,CAACvU,EAAE,CAAG,oBACrD,KACJ,MAAKupF,EAAAA,CAAeA,CAACC,KAAK,CAACmN,aAAa,CACpC,IAAIm6G,EAAsB,CAACttM,EAAM42E,QAAQ,CAErC02H,GAAuBttM,EAAM+Q,KAAK,CAACm7B,UAAU,CAAG,GAEhDohK,CAAAA,EAAsBttM,EAAM+Q,KAAK,CAAC+6B,MAAM,CAAC7C,IAAI,CACzC,GAAWjpC,EAAM+Q,KAAK,CAACywD,SAAS,GAAKz5B,EAAK8gD,KAAK,IAAO//C,EAAMJ,SAAS,CAACK,aAAa,EAAID,EAAMmB,SAAS,GAI9GnY,EACI,sCACA9xB,EAAM+Q,KAAK,CAACvU,EAAE,CACd,6BACA8wM,EACA,8BAEZ,CAEA,IAAI2yB,EAAerhN,EAASkT,GAAMkuM,GAClCC,EAAax5M,EAAE,CAAC,WAAY,WACxBu5M,EAAU15N,QAAQ,GAClB05N,EAAY,IAChB,GAEAhgO,EAAMm/N,oBAAoB,CAACptM,KAAK,GAEhC/xB,EAAMm/N,oBAAoB,CAAC7sM,MAAM,CAAC2tM,GAE9BjgO,CAAAA,EAAMoL,IAAI,GAAK26E,EAAAA,CAAeA,CAACC,KAAK,CAACkN,cAAc,EAAIlzF,EAAMoL,IAAI,GAAK26E,EAAAA,CAAeA,CAACC,KAAK,CAACmN,aAAa,IACzGnzF,EAAMk8N,SAAS,CAAG,GAClBl8N,EAAM0/N,oBAAoB,IAG9B1/N,EAAM8/N,wBAAwB,CAAC9/N,EAAMoL,IAAI,CAC7C,EAEApL,EAAMkgO,uBAAuB,CAAG,WAC5B9vB,EACK35H,eAAe,CAACz2E,EAAMjK,OAAO,EAC7BtL,IAAI,CACD,WACIuV,EAAMmgO,oBAAoB,CAAG,EACjC,EACA,WACIngO,EAAMmgO,oBAAoB,CAAG,EACjC,GAEH5wO,OAAO,CAAC,WACD6gN,EAA6Bx5H,QAAQ,CAAC,KACtC52E,CAAAA,EAAMmgO,oBAAoB,CAAG,EAAI,CAEzC,EACR,EACAngO,EAAMkgO,uBAAuB,GAE7BlgO,EAAMogO,iBAAiB,CAAG,SAAUC,CAAa,EAC7C,MAAO,CAACrgO,EAAMs8N,wBAAwB,CAAC7uO,QAAQ,CAAC4yO,EACpD,EAEArgO,EAAM4G,GAAG,CAAC,kBAAmB,SAAUtc,CAAK,CAAEuR,CAAQ,EAC9CA,GAAYA,EAASpO,QAAQ,CAACuS,EAAMjK,OAAO,IAC3CiK,EAAMk8N,SAAS,CAAG,GAClBl8N,EAAM48N,eAAe,GAAGnyO,IAAI,CAACuV,EAAM6/N,WAAW,EAEtD,GAEA7/N,EAAM4G,GAAG,CAAC,yBAA0B,SAAUtc,CAAK,CAAE4xO,CAAS,CAAEoE,CAAU,EACtEtgO,EAAMk8N,SAAS,CAAGA,EACdoE,GACAtgO,EAAM0/N,oBAAoB,EAElC,GAEA1/N,EAAM4G,GAAG,CAAC,2BAA4B,SAAUtc,CAAK,CAAE4mF,CAAQ,CAAE1mF,CAAK,EAClEF,EAAMU,eAAe,GAErB,IAAIu1O,EAAa9nM,EAAmBkD,IAAI,CAAC37B,EAAMjK,OAAO,CAAC,CACnDwqO,GAAcA,EAAWpxO,IAAI,EAC7B6Q,EAAMo8N,cAAc,CAACn+L,WAAW,CAACizC,EAAU1mF,EAAO+1O,EAAWpxO,IAAI,CAAE,GAAO6Q,EAAMjK,OAAO,CAE/F,GAEA7I,EAAQu5B,EAAE,CAAC,WAAY,WACnB,GAAIzmB,EAAM0+N,YAAY,CAAE,CACpB,IAAIp5N,EAAa3C,EAAmBuB,iBAAiB,CAAClE,EAAM+Q,KAAK,CAACvU,EAAE,EAChE8I,GACAA,EAAWd,eAAe,EAElC,CAEAxE,EAAMsG,QAAQ,GACdtG,EAAMqvB,gBAAgB,EAC1B,GAKArvB,EAAMixB,IAAI,MACNjxB,EAAMs+N,eAAe,CAACt+N,EAAMjK,OAAO,EACnCzF,EAAS0P,EAAMojI,UAAU,CAAE,GAC3BpjI,EAAM48N,eAAe,CAAC,WAElB/9M,EACKxkB,OAAO,CAAC2F,EAAMjK,OAAO,CAAEiK,EAAM+Q,KAAK,CAACmZ,QAAQ,EAC3Cz/B,IAAI,CAAC,SAAU0M,CAAQ,EACpB6I,EAAMi8N,WAAW,CAAG9kO,EAAShI,IAAI,CAC7B,EAAC6Q,EAAMi8N,WAAW,EAAIj8N,EAAM42E,QAAQ,GACpC52E,EAAMs8N,wBAAwB,CAACvsO,IAAI,CAACiQ,EAAM++N,mBAAmB,EAI7DjD,EAAc0E,sBAAsB,CAACxgO,EAAM+Q,KAAK,CAACmZ,QAAQ,CAAElqB,EAAM+Q,KAAK,CAACU,OAAO,GAC9Es2B,EAAK04L,mBAAmB,IACxB,CAACzgO,EAAM42E,QAAQ,EACI52E,KAAmB/R,IAAnB+R,EAAMk7G,QAAQ,EACjCl7G,EAAMs8N,wBAAwB,CAACvsO,IAAI,CAACiQ,EAAMi/N,qBAAqB,EAGnE,IAAMn4D,EAAU/+H,EAAKE,MAAM,EAEtBjoC,CAAAA,EAAMi8N,WAAW,GAClBj8N,EAAM+Q,KAAK,CAACmtN,mBAAmB,EAC/Bp3D,OAAAA,GACA9mK,KAAmB/R,IAAnB+R,EAAMk7G,QAAQ,EACb,GAASqY,mBAAmB,EAAKuzC,EAAQ45D,wBAAwB,GAElE1gO,EAAMs8N,wBAAwB,CAACvsO,IAAI,CAACiQ,EAAMg/N,kBAAkB,EAGzC/wO,KAAAA,IAAnB+R,EAAMk7G,QAAQ,EACdl7G,EAAMs8N,wBAAwB,CAACvsO,IAAI,CAACiQ,EAAM6+N,eAAe,EAG7D7+N,EAAMq8N,YAAY,CAAG9lO,EAAWiU,wBAAwB,CAACxK,EAAM+Q,KAAK,CAACvU,EAAE,CAAEwD,EAAM+Q,KAAK,CAACmZ,QAAQ,EAC7FlqB,EAAM5M,MAAM,CAAG4M,EAAMq8N,YAAY,CAAGhmO,EAAajD,MAAM,CAAG,EAC9D,GACC3I,IAAI,CAACuV,EAAMmD,SAAS,EACpB1Y,IAAI,CAACuV,EAAM6/N,WAAW,EACtBp1O,IAAI,CAACuV,EAAMy+N,YAAY,CAChC,GAER,CACJ,CACJ,EACH,EEtuBDnwO,EAAAA,CAAUA,CAACf,MAAM,CAAC,aAAc,CAC5B,WACI,OAAO,SAAUynD,CAAK,EAKlB,OAJIA,GACAA,CAAAA,EAAQA,EAAMqlC,MAAM,CAAC,GAAGC,WAAW,GAAKtlC,EAAM5nD,KAAK,CAAC,EAAC,EAGlD4nD,CACX,CACJ,EACH,E,uCCVM,OAAM2rL,GAaTjyO,YAAY62L,CAAQ,CAAE,CAClB,IAAI,CAAC1oJ,OAAO,CAAGg3D,GAAAA,CAA0BA,CAACC,OAAO,CACjD,IAAI,CAAC8sI,WAAW,CAAG,IAAI1oK,IACvB,IAAI,CAAC2oK,SAAS,CAAGt7C,CACrB,CAEAu7C,aAAa7kO,CAAE,CAAE,CACR,IAAI,CAAC2kO,WAAW,CAACxjL,GAAG,CAACnhD,IACtB,IAAI,CAAC2kO,WAAW,CAAC/wO,GAAG,CAACoM,EAE7B,CAEA8kO,gBAAgB9kO,CAAE,CAAE,CACZ,IAAI,CAAC2kO,WAAW,CAACxjL,GAAG,CAACnhD,IACrB,IAAI,CAAC2kO,WAAW,CAAC9nO,MAAM,CAACmD,EAEhC,CAEA8nK,sBAAuB,CACnB,OAAO,IAAI,CAAC68D,WAAW,CAACrsO,IAAI,CAAG,CACnC,CAEA4xK,iBAAiB66D,CAAM,CAAEC,CAAU,CAAE,CACjC,IAAMC,EAAYF,EAAOvpN,KAAK,CAAC,KACzBu4M,EAAeiR,EAAWxpN,KAAK,CAAC,KAChC0pN,EAAgB,IAAIlxB,gBAAgBixB,CAAS,CAAC,EAAE,EAChDE,EAAmB,IAAInxB,gBAAgB+f,CAAY,CAAC,EAAE,EACtDqR,EAAYH,CAAS,CAAC,EAAE,GAAKlR,CAAY,CAAC,EAAE,EAAImR,EAAc9pO,GAAG,CAAC,YAAc+pO,EAAiB/pO,GAAG,CAAC,UAE3G,OAAO,IAAI,CAAC0sK,oBAAoB,GAAK,CAAEx8B,cAAe85F,EAAWn7D,cAAe,CAACm7D,CAAU,EAAI,CAAE95F,cAAe,GAAM2+B,cAAe,CAACm7D,CAAU,CACpJ,CAEAv9D,kBAAmB,CACf,OAAO,IAAI,CAAC+8D,SAAS,CAACS,MAAM,CAGhC77D,0BAA2B,CACvB,OAAO,IAAI,CAACo7D,SAAS,CAACU,cAAc,CAGxC//K,SAAU,CACN,IAAI,CAACo/K,WAAW,CAAC7nK,KAAK,EAC1B,CAMA,OAAOyoK,gBAAgBxvO,CAAoB,CAAEyvO,CAAc,CAAE,CACzD,IAAMjlM,EAAUxqC,EAAqBS,SAAS,CAAC,CAAC,SAAS,EAAEgvO,EAAe,CAAC,EAE3E,MAAO,CACHH,OAAQ,CACJrsO,MAAOjD,EAAqBS,SAAS,CAAC,gCACtCmrC,QAAS5rC,EAAqBS,SAAS,CAAC,wCAAyC,CAAEuxK,IAAKxnI,CAAQ,GAChG0nI,YAAalyK,EAAqBS,SAAS,CAAC,iCAC5CkzK,kBAAmB3zK,EAAqBS,SAAS,CAAC,iBACtD,EACA8uO,eAAgB,CACZtsO,MAAOjD,EAAqBS,SAAS,CAAC,gCACtCmrC,QAAS5rC,EAAqBS,SAAS,CAAC,kCACxCyxK,YAAalyK,EAAqBS,SAAS,CAAC,2BAC5CkzK,kBAAmB3zK,EAAqBS,SAAS,CAAC,iBACtD,CACJ,CACJ,CACJ,C,kDCpEiD,OAE3CivO,WAAkC3vO,EAAAA,CAAWA,CAC/CrD,YAAYsD,CAAoB,CAAE2vO,CAAsB,CAAE75O,CAAO,CAAE,CAC/D,KAAK,GAEL,IAAI,CAACkK,oBAAoB,CAAGA,EAC5B,IAAI,CAAC4vO,uBAAuB,CAAGD,EAC/B,IAAI,CAAC75O,OAAO,CAAGA,EACf,IAAI,CAAC0K,kBAAkB,CAAG,IAAI,CAACR,oBAAoB,CAACS,SAAS,CAAC,iDAE9D,IAAI,CAACovO,QAAQ,CAAG,CACZ7uN,OAAQ,GACR/W,GAAI,YACJhH,MAAOjD,EAAqBS,SAAS,CAAC,6DACtCgD,SAAU,EACd,EACA,IAAI,CAAC6rJ,UAAU,CAAG,CACdtuI,OAAQ,GACR/W,GAAI,cACJhH,MAAOjD,EAAqBS,SAAS,CAAC,+DACtCgD,SAAU,EACd,EAEA,IAAI,CAACgsJ,IAAI,CAAG,CAAC,IAAI,CAACogF,QAAQ,CAAE,IAAI,CAACvgF,UAAU,CAAC,CAE5C,IAAI,CAACwgF,YAAY,CAAG,CAChBnvO,cAAe,GACfsC,MAAO,GACP0xH,KAAM,GACNnkE,MAAO,EACX,EACA,IAAI,CAACu/K,oBAAoB,CAAG,CAAE,GAAG,IAAI,CAACD,YAAY,EAClD,IAAI,CAAC5nF,QAAQ,CAAG,GAChB,IAAI,CAAC9xB,aAAa,CAAGA,GAAAA,CAAaA,CAClC,IAAMu4B,EAAY3uJ,EAAqBS,SAAS,CAAC,+CACjD,KAAI,CAAC41M,YAAY,CAAGr2M,EAAqBS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAMu1I,CAAU,GAC5G,IAAI,CAACqhF,QAAQ,CAAG,GAChB,IAAI,CAACxzB,gBAAgB,CAAG,GAExB,IAAI,CAACl8M,iBAAiB,CAAG,6BACzB,IAAI,CAACouJ,sBAAsB,CAAG,mCAC9B,IAAI,CAACzuJ,iBAAiB,CAAG,GACzB,IAAI,CAACY,qBAAqB,CAAG,IAAI,CAACR,oBAAoB,CAAC5J,IAAI,CAAC,IAAI,CACpE,CAEA4J,qBAAqBi8B,CAAO,CAAE,CAC1B,IAAI,CAACwzM,YAAY,CAACnvO,aAAa,CAAG27B,EAClC,IAAI,CAACzH,QAAQ,CAAC,IAAI,CAACo7M,uBAAuB,GAC9C,CAEAC,oBAAoB5zM,CAAO,CAAE,CACzB,IAAI,CAACwzM,YAAY,CAACn7G,IAAI,CAAGr4F,EACzB,IAAI,CAACzH,QAAQ,CAAC,IAAI,CAACo7M,uBAAuB,IAC1C,IAAI,CAACE,UAAU,EACnB,CAEAC,qBAAsB,CAClB,IAAI,CAACv7M,QAAQ,CAAC,IAAI,CAACo7M,uBAAuB,IAC1C,IAAI,CAACE,UAAU,EACnB,CAEA1+E,aAAalB,CAAS,CAAE,CACpB,IAAI,CAACd,IAAI,CAAC70J,OAAO,CAAC,GAAUZ,EAAIgnB,MAAM,CAAGhnB,EAAIiQ,EAAE,GAAKsmJ,EAAUtmJ,EAAE,CACpE,CAEAomO,kBAAmB,CACf,IAAI,CAAC5+E,YAAY,CAAC,IAAI,CAACnC,UAAU,CACrC,CAEAghF,mBAAoB,CAChB,IAAI,CAAC7+E,YAAY,CAAC,IAAI,CAACo+E,QAAQ,CACnC,CAEAU,cAAe,CACX,IAAI,CAAC/zB,gBAAgB,CAAG,IAAI,CAACx8M,oBAAoB,CAACS,SAAS,CAAC,4EAC5D,IAAI,CAACynJ,QAAQ,CAAG,GAChB,IAAI,CAAC8nF,QAAQ,CAAG,GAEhB,IAAI,CAACJ,uBAAuB,CACvBvrG,sBAAsB,CAAC,IAAI,CAACyrG,YAAY,CAAC7sO,KAAK,CAAE,IAAI,CAAC6sO,YAAY,CAACn7G,IAAI,EACtEl8H,IAAI,CAAC,IACF,IAAMmI,EAAW,CACb,CACI4J,GAAIrF,EAAShI,IAAI,CACjB0mI,cAAe,IAAI,CAACisG,YAAY,CAACnvO,aAAa,EAErD,CAED,OAAO,IAAI,CAACivO,uBAAuB,CAACvsG,WAAW,CAAC,IAAI,CAACt/H,OAAO,CAAE,IAAI,CAACqH,SAAS,CAAExK,EAClF,GACCnI,IAAI,CAAC,KACF,IAAI,CAAC+iO,MAAM,EACf,GACCl+N,KAAK,CAAC,KACH,IAAI,CAAC0yO,QAAQ,CAAG,IAAI,CAAChwO,oBAAoB,CAACS,SAAS,CAAC,0CACpD,IAAI,CAAC+7M,gBAAgB,CAAG,IAAI,CAACwzB,QAAQ,GAExCzyO,OAAO,CAAC,KACL,IAAI,CAAC2qJ,QAAQ,CAAG,EACpB,EACR,CAEAioF,YAAa,CACT,IAAI,CAACL,YAAY,CAACt/K,KAAK,CAAG,IAAI,CAACs/K,YAAY,CAAC7sO,KAAK,CAAC3J,MAAM,EAAI,GAAK,MAAML,IAAI,CAAC,IAAI,CAACnD,OAAO,CAACq4F,WAAW,CAAC,IAAI,CAAC2hJ,YAAY,CAACn7G,IAAI,GAC3H,IAAI,CAAC26B,UAAU,CAAC7rJ,QAAQ,CAAG,CAAC,IAAI,CAACqsO,YAAY,CAACt/K,KAAK,CAGvDy/K,yBAA0B,CACtB,IAAMO,EAAe,IAAI,CAACT,oBAAoB,CAAC9sO,KAAK,GAAK,IAAI,CAAC6sO,YAAY,CAAC7sO,KAAK,CAC1EwtO,EAAc,IAAI,CAACV,oBAAoB,CAACp7G,IAAI,GAAK,IAAI,CAACm7G,YAAY,CAACn7G,IAAI,CACvE+7G,EAAuB,IAAI,CAACX,oBAAoB,CAACpvO,aAAa,GAAK,IAAI,CAACmvO,YAAY,CAACnvO,aAAa,CAExG,OAAO6vO,GAAgBC,GAAeC,CAC1C,CACJ,CAaAhB,GAA0BlzO,OAAO,CAAG,CAAC,uBAAwB,yBAA0B,UAAU,CACjGF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,mBAZ8B,CAC/CC,SAAU,CACN6J,UAAW,IACXrH,QAAS,IACTy3N,OAAQ,IACR3mM,SAAU,GACd,EACAlzB,SCzIW,ujJD0IXC,WAAY8tO,EAChB,G,QE1HmF,OAE7EiB,WAA6B5wO,EAAAA,CAAWA,CAC1CrD,YAAY8R,CAAU,CAAEwG,CAAM,CAAE5E,CAAE,CAAEpQ,CAAoB,CAAE8xH,CAA2B,CAAE/gH,CAAK,CAAEjD,CAAe,CAAE4V,CAAa,CAAE6uH,CAAe,CAAEo9F,CAAsB,CAAErvG,CAAyB,CAAE,CAC9L,KAAK,GAEL,IAAI,CAAC4C,WAAW,CAAG10H,EACnB,IAAI,CAACwI,GAAG,CAAG5G,EACX,IAAI,CAACyzG,OAAO,CAAG7uG,EACf,IAAI,CAAChV,oBAAoB,CAAGA,EAC5B,IAAI,CAAC4wO,4BAA4B,CAAG9+G,EACpC,IAAI,CAAC++G,wBAAwB,CAAG,IAAIlC,GAAsCA,GAAsCa,eAAe,CAACxvO,EAAsBwO,EAAWg8B,OAAO,CAAC16B,WAAW,KACpL,IAAI,CAACoH,gBAAgB,CAAGpJ,EACxB,IAAI,CAACoqN,cAAc,CAAGx0M,EACtB,IAAI,CAACotN,gBAAgB,CAAGv+F,EACxB,IAAI,CAACq9F,uBAAuB,CAAGD,EAC/B,IAAI,CAACoB,iBAAiB,CAAGA,GAAAA,CAAiBA,CAACppN,QAAQ,GACnD,IAAI,CAACqpN,gBAAgB,CAAGA,GAAAA,CAAgBA,CAACrpN,QAAQ,GACjD,IAAI,CAACspN,YAAY,CAAG,EAAE,CACtB,IAAI,CAACC,oBAAoB,CAAG,IAAI9nM,IAChC,IAAI,CAAC+nM,eAAe,CAAG,wBACvB,IAAI,CAACC,iBAAiB,CAAG,CAAC,EAAE,IAAI,CAACrtO,OAAO,CAAC,CAAC,EAAE,IAAI,CAACmlH,QAAQ,CAAC,CAAC,CAC3D,IAAI,CAAC7xG,MAAM,CAAGtG,EACd,IAAI,CAACsgO,yBAAyB,CAAGnxO,EAAAA,CAA0BA,CAACugG,aAAa,CAACC,+BAA+B,CACzG,IAAI,CAAC4wI,4BAA4B,CAAG,GACpC,IAAI,CAACppF,QAAQ,CAAG,GAChB,IAAI,CAAC9xB,aAAa,CAAGA,GAAAA,CAAaA,CAClC,IAAMu4B,EAAY3uJ,EAAqBS,SAAS,CAAC,qCACjD,KAAI,CAAC41M,YAAY,CAAGr2M,EAAqBS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAMu1I,CAAU,GAC5G,IAAI,CAACqhF,QAAQ,CAAG,GAChB,IAAI,CAACuB,iBAAiB,CAAG,GACzB,IAAI,CAACC,oBAAoB,CAAG,GAC5B,IAAI,CAACC,oBAAoB,CAAG,KAC5B,IAAI,CAACC,iBAAiB,CAAG,IAAI,CAACC,kBAAkB,CAACl7O,IAAI,CAAC,IAAI,EAC1D,IAAI,CAACm7O,sBAAsB,CAAG,IAAI,CAACC,uBAAuB,CAACp7O,IAAI,CAAC,IAAI,EACpE,IAAI,CAACq7O,oBAAoB,CAAGxxG,EAA0BrwC,aAAa,CAAC,IAAI,CAAC8zC,aAAa,CAAE,IAAI,CAAC/zC,eAAe,CAChH,CAEAwxC,SAAU,CACN,IAAI,CAACsvG,gBAAgB,CAACl/D,iBAAiB,CAAC,IAAI,CAACi/D,wBAAwB,EACrE,IAAI,CAACD,4BAA4B,CAAC57M,SAAS,CAAC,UAAW,IAAI,CAACm8M,eAAe,CAAE,IAAM,IAAI,CAACY,gBAAgB,GAC5G,CAEA1tH,YAAa,CACyB,OAA9B,IAAI,CAACotH,oBAAoB,EACzB,IAAI,CAACA,oBAAoB,CAACj0O,KAAK,GAEnC,IAAI,CAACw0O,gBAAgB,EACzB,CAEA7tH,WAAW+G,CAAO,CAAE,CACcjvH,KAAAA,IAA1BivH,EAAQ+mH,aAAa,EAAkB,CAAC/mH,EAAQ+mH,aAAa,CAAC5vG,aAAa,IACvEnX,EAAQ+mH,aAAa,CAAChhF,YAAY,EAClC,KAAI,CAACsgF,iBAAiB,CAAG,EAAI,CAGzC,CAEA5rN,mBAAoB,CAChB,IAAI,CAACqqN,QAAQ,CAAG,GAChB,IAAI,CAACuB,iBAAiB,CAAG,GAEzB,IAAI,CAACE,oBAAoB,CAAG,IAAI,CAACvZ,cAAc,CAC1C/4M,YAAY,CAAC,CACVyG,wBAAyB,GACzBpF,kBAAmB,CAAC,IAAI,CAACmlH,eAAe,CAAC,CACzCplH,WAAY,CAAC,IAAI,CAACxc,OAAO,CAAE,IAAI,CAAC4hI,eAAe,IAAK,IAAI,CAACS,gBAAgB,CAAC,CAC1E3lH,cAAe,GACfH,qBAAsB,IAAI,IAAI,CAAC4wN,oBAAoB,CAACpyO,IAAI,GAAG,GAE9DrG,IAAI,CAAC,IACF,IAAI,CAAC44O,yBAAyB,CAC1Bl0O,EAAK7D,MAAM,CAAG,GAAK,IAAI,CAAC43O,oBAAoB,CAAC3uO,IAAI,CAAG,EAC9CrC,EAAAA,CAA0BA,CAACugG,aAAa,CAACE,sBAAsB,CAC/DzgG,EAAAA,CAA0BA,CAACugG,aAAa,CAACC,+BAA+B,CAClF,IAAI,CAACwxI,iCAAiC,CAAC/0O,GACvC,IAAI,CAACo0O,iBAAiB,CAAG,GACzB,IAAI,CAACI,kBAAkB,CAACx0O,EAAK7D,MAAM,CAAG,EAC1C,EACR,CAEA64O,sBAAuB,CACnB,IAAI,CAACX,oBAAoB,CAAG,EAChC,CAEAY,eAAgB,CACR,IAAI,CAACvB,wBAAwB,CAAC9+D,oBAAoB,GAClD,IAAI,CAACsgE,sBAAsB,GAE3B,IAAI,CAACC,cAAc,EAE3B,CAEAvkC,cAAe,CACP,IAAI,CAAC8iC,wBAAwB,CAAC9+D,oBAAoB,GAClD,IAAI,CAACsgE,sBAAsB,CAAC,IAAI,CAACE,SAAS,CAACC,WAAW,EAEtD,IAAI,CAACD,SAAS,CAACC,WAAW,EAElC,CAEApyO,oBAAoBO,CAAa,CAAmB,CAAC,IAAlBG,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAa,EACxCA,CAAe,KAAfA,EACA,IAAI,CAACwwO,4BAA4B,CAAG3wO,EAGpC8xO,IADyB,CAACvB,oBAAoB,CAAC7rO,GAAG,CAACvE,GACtC+iI,aAAa,CAAGljI,CAErC,CAEA+xO,wBAAwBtoJ,CAAI,CAAE,CAC1B,IAAI,CAACinJ,yBAAyB,CAAGjnJ,CACrC,CAEAmmJ,cAAe,CACX,IAAI,CAACroF,QAAQ,CAAG,GAChB,IAAI,CAAC8nF,QAAQ,CAAG,GAEhB,IAAIpvO,EAAW,IAAI,CAACqwO,YAAY,CAACjyO,GAAG,CAAC,IACjC,IAAM6lI,EAAe,CAAEr6H,GAAIsoB,EAAK/xB,UAAU,CAAE8iI,cAAe,EAAG,EAE9D,GAAI,IAAI,CAACwtG,yBAAyB,GAAKnxO,EAAAA,CAA0BA,CAACugG,aAAa,CAACC,+BAA+B,CAC3GmkC,EAAahB,aAAa,CAAG,IAAI,CAACytG,4BAA4B,KAC3D,CACH,IAAMmB,EAAe,IAAI,CAACvB,oBAAoB,CAAC7rO,GAAG,CAACytB,EAAK/xB,UAAU,CAClE8jI,CAAAA,EAAahB,aAAa,CAAG4uG,KAAiBx2O,IAAjBw2O,EAA6BA,EAAa5uG,aAAa,CAAG,EAC3F,CAEA,OAAOgB,CACX,GAEA,IAAI,CAAC+qG,uBAAuB,CACvBvsG,WAAW,CAAC,IAAI,CAACt/H,OAAO,CAAE,IAAI,CAACmlH,QAAQ,CAAEtoH,GACzCnI,IAAI,CAAC,KACF,IAAI,CAACo4O,wBAAwB,CAACrhL,OAAO,GACrC,IAAI,CAACu+I,YAAY,EACrB,GACCzwM,KAAK,CAAC,KACH,IAAI,CAAC0yO,QAAQ,CAAG,IAAI,CAAChwO,oBAAoB,CAACS,SAAS,CAAC,yCACxD,GACClD,OAAO,CAAC,KACL,IAAI,CAAC2qJ,QAAQ,CAAG,EACpB,EACR,CAEAgqF,kCAAkCS,CAAc,CAAE,CAE9C,GADA,IAAI,CAAC1B,YAAY,CAAG,EAAE,CAClB0B,IAAAA,EAAer5O,MAAM,CAAQ,CAC7B,IAAI,CAAC43O,oBAAoB,CAACnqK,KAAK,GAC/B,MACJ,CAEA,IAAK,IAAMhoD,KAAS4zN,EAAgB,CAChC,IAAIF,EAAe,IAAI,CAACvB,oBAAoB,CAAC7rO,GAAG,CAAC0Z,EAAMvU,EAAE,CACpCvO,MAAAA,IAAjBw2O,GACAA,CAAAA,EAAe,CACX11N,MAAOgC,EAAMhC,KAAK,CAClB8mH,cAAe,GACf9iI,WAAYge,EAAMvU,EAAE,CACpBrJ,aAAc,IAAI,CAAC+nH,QAAQ,GAInC,IAAI,CAAC+nH,YAAY,CAAClzO,IAAI,CAAC00O,GACvB,IAAI,CAACvB,oBAAoB,CAAChpL,GAAG,CAACnpC,EAAMvU,EAAE,CAAEioO,EAC5C,CACJ,CAEAd,mBAAmBzmH,CAAO,CAAE,CACpBA,EACA,IAAI,CAAC2lH,wBAAwB,CAAC/B,YAAY,CAAC,IAAI,CAACsC,iBAAiB,EAEjE,IAAI,CAACP,wBAAwB,CAAC9B,eAAe,CAAC,IAAI,CAACqC,iBAAiB,CAE5E,CAEAS,yBAA0B,CACtB,IAAI,CAAChB,wBAAwB,CAACrhL,OAAO,GACrC,IAAI,CAACu+I,YAAY,EACrB,CAEAgkC,kBAAmB,QACf,IAAQ,CAACE,aAAa,EAAI,IAAI,CAACpB,wBAAwB,CAAC9+D,oBAAoB,IACxE,IAAI,CAACsgE,sBAAsB,CAAC,IAAI,CAACE,SAAS,CAACC,WAAW,EAC/C,IAAI,CAACx7N,GAAG,CAACha,MAAM,CAAC,wCAEpB,IAAI,CAACga,GAAG,CAACja,OAAO,EAC3B,CAEAi1O,kBAAmB,CACf,IAAI,CAACpB,4BAA4B,CAACjmH,WAAW,CAAC,UAAW,IAAI,CAACwmH,eAAe,EAC7E,IAAI,CAACN,wBAAwB,CAACrhL,OAAO,GACrC,IAAI,CAACshL,gBAAgB,CAACj/D,oBAAoB,CAAC,IAAI,CAACg/D,wBAAwB,CAC5E,CAEAwB,wBAA6C,CAAC,IAAvBO,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAgB,KACnC,GAAI,CAAC,IAAI,CAAC9B,gBAAgB,CAAC1/D,SAAS,CAAE,CAClC,IAAMoC,EAAe,IAAI,CAACq9D,wBAAwB,CAACp9D,wBAAwB,GAE3E,IAAI,CAACp8J,MAAM,CAACwB,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC3B,gBAAgB,CAACvC,yBAAyB,CAAC,qDAAqD,CAAC,CAAE,CAC1H1R,MAAOuwK,EAAavwK,KAAK,CACzB2oC,QAAS4nI,EAAa5nI,OAAO,CAC7BsmI,YAAasB,EAAatB,WAAW,CACrCyB,kBAAmBH,EAAaG,iBAAiB,CACjDx/C,SAAU,KACN,IAAI,CAACm+G,cAAc,GACG,OAAlBM,GACAA,GAER,CACJ,EACJ,CACJ,CAEAN,gBAAiB,CACb,IAAI,CAACzB,wBAAwB,CAACrhL,OAAO,GACrC,IAAI,CAAC8hL,4BAA4B,CAAG,GACpC,IAAI,CAACE,oBAAoB,CAAG,GAC5B,IAAI,CAACN,oBAAoB,CAACnqK,KAAK,GAC/B,IAAI,CAACkqK,YAAY,CAAG,EAAE,CAE9B,CAiBAN,GAAqBn0O,OAAO,CAAG,CAC3B,aACA,SACA,KACA,uBACA,8BACA,QACA,kBACA,gBACA,kBACA,yBACA,4BACH,CAEDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,cA7ByB,CAC1CC,SAAU,CACN2nH,SAAU,IACVnlH,QAAS,IACTwuO,UAAW,IACXnsG,iBAAkB,IAClB6rG,cAAe,IACftsG,gBAAiB,IACjB5B,cAAe,IACf/zC,gBAAiB,GACrB,EACAruF,SC3PW,2sJD4PXC,WAAY+uO,EAChB,G,yFExPAr0O,EAAAA,CAAUA,CAACgF,SAAS,CAAC,wBAAyB03I,CAAAA,EAAAA,GAAAA,aAAAA,EAAc2tB,CAAAA,EAAAA,GAAAA,CAAAA,EAAmBksE,GAAAA,CAAqBA,EAAG,CAAC,sBAAuB,cAAe,aAAc,wBAAwB,ECG7H,OAEjDC,WAAwC/yO,EAAAA,CAAWA,CACrDrD,YAAYsD,CAAoB,CAAE,CAC9B,KAAK,GAEL,IAAI,CAACmX,qBAAqB,CAAGnX,EAC7B,IAAI,CAAC+yO,oBAAoB,CAAG,EAC5B,IAAI,CAACC,mBAAmB,CAAG,GAC3B,IAAI,CAACC,cAAc,CAAG,EAElB,IAAI,CAACC,aAAa,CAAC55O,MAAM,CAAG,GAC5B,IAAI,CAAC65O,mBAAmB,EAEhC,CAEAA,qBAAsB,CAClB,IAAMC,EAAU,IAAI,CAACF,aAAa,CAAC,EAAE,CAC/BG,EAAgB,CAAE/vN,KAAM8vN,EAAQE,iBAAiB,CAAEC,OAAQH,EAAQI,cAAc,CAAEC,OAAQL,EAAQM,MAAM,EAGzGC,EAAwBP,KAA2Bn3O,IAA3Bm3O,EAAQI,cAAc,CAAiB,WAAa,SAC5EI,EAAwB,IAAI,CAAC1uL,MAAM,GAAKkuL,EAAQS,aAAa,CAAG,OAAS,QAEzEC,EAAU,iDAAwBH,IAAwBC,GAAuB,CAEvF,IAAI,CAACZ,mBAAmB,CAAG,IAAI,CAAC77N,qBAAqB,CAAC1W,SAAS,CAACqzO,EAAST,EAC7E,CACJ,CAaAP,GAAgCt2O,OAAO,CAAG,CAAC,uBAAuB,CAElEF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,yBAboB,CACrCC,SAAU,CACNwyO,qBAAsB,IACtBb,cAAe,IACfc,oBAAqB,IACrB9uL,OAAQ,GACZ,EACAvjD,SC7CW,+6BD8CXC,WAAYkxO,EAChB,EEtC6C,OAEvCmB,WAA+Bl0O,EAAAA,CAAWA,CAC5CrD,YAAY+R,CAAO,CAAEuG,CAAM,CAAEhV,CAAoB,CAAE+1C,CAAI,CAAEjgD,CAAO,CAAE,CAC9D,KAAK,GAEL,IAAI,CAACmrN,QAAQ,CAAGxyM,EAChB,IAAI,CAACo1G,OAAO,CAAG7uG,EACf,IAAI,CAAChV,oBAAoB,CAAGA,EAC5B,IAAI,CAAClK,OAAO,CAAGA,EACf,IAAI,CAACovD,MAAM,CAAGnP,EAAK8gD,KAAK,GACxB,IAAI,CAACq9I,YAAY,CAAG,IAAI,CAACl0O,oBAAoB,CAACS,SAAS,CAAC,8CACxD,IAAI,CAAC0zO,YAAY,CAAG,KACpB,IAAI,CAACH,mBAAmB,CAAG,IAAI,CAACI,kBAAkB,CAAC39O,IAAI,CAAC,IAAI,EAC5D,IAAI,CAAC49O,gBAAgB,EACzB,CAEAlwH,WAAW+G,CAAO,CAAE,CACcjvH,KAAAA,IAA1BivH,EAAQgoH,aAAa,EAAmBhoH,EAAQgoH,aAAa,CAAC7wG,aAAa,IAC3E,IAAI,CAACgyG,gBAAgB,EAE7B,CAEAC,sCAAuC,CACnC,OAAO,IAAI,CAACpB,aAAa,CACpBt7F,IAAI,CAAC,CAACt3E,EAAG2a,IAAM,IAAI7rE,KAAK6rE,EAAEs5J,aAAa,EAAI,IAAInlO,KAAKkxD,EAAEi0K,aAAa,GACnEv1O,GAAG,CAAC,IACD,IAAM00O,EAAShtG,CAAAA,EAAAA,GAAAA,CAAAA,EAA0B,IAAI,CAAC8tG,eAAe,CAAE1hN,EAAKg0G,MAAM,EACpE0sG,EAAiB1gN,KAAAA,EAAK2hN,cAAc,CAAU/tG,CAAAA,EAAAA,GAAAA,CAAAA,EAA0B,IAAI,CAAC8tG,eAAe,CAAE1hN,EAAK2hN,cAAc,EAAIx4O,KAAAA,EAE3H,MAAO,CACHy3O,OAAQA,EACR/yO,cAAemyB,EAAK+wG,aAAa,CACjCgwG,cAAe/gN,EAAK4hN,aAAa,CACjCpB,kBAAmBxgN,EAAK6hN,iBAAiB,CACzCC,kBAAmB,IAAI,CAAC3zB,QAAQ,CAAC,cAAcnuL,EAAKyhN,aAAa,CAAE,YACnEM,kBAAmB,IAAI,CAAC5zB,QAAQ,CAAC,cAAcnuL,EAAKyhN,aAAa,CAAE,YACnEO,aAAchiN,EACd0gN,eAAgBA,CACpB,CACJ,EACR,CAEAY,mBAAmBjgG,CAAW,CAAE,CAC5B,IAAM2vE,EAAa,IAAI,CAAC9jN,oBAAoB,CAACS,SAAS,CAAC,kBACjDs0O,EAAc,IAAI,CAAC/0O,oBAAoB,CAACS,SAAS,CAAC,mBAClDiC,EAAe,CACjBgmB,SAAUg+G,CAAAA,EAAAA,GAAAA,CAAAA,EAA0B,IAAI,CAAC8tG,eAAe,CAAErgG,EAAY2gG,YAAY,CAAChuG,MAAM,EACzFkuG,qBAAsB7gG,EAAYxzI,aAAa,EAG7CswJ,EAAe9c,EAAY2gG,YAAY,CAACL,cAAc,CAEvC,KAAjBxjF,GAAuBA,OAAAA,GACvBvuJ,CAAAA,EAAauuJ,YAAY,CAAGvqB,CAAAA,EAAAA,GAAAA,CAAAA,EAA0B,IAAI,CAAC8tG,eAAe,CAAEvjF,EAAY,EAG5FttJ,CAAAA,EAAAA,GAAAA,CAAAA,EAAa,CACTV,MAAO,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,oCAC3C8B,KAAMC,GAAAA,CAAUA,CAACyyO,KAAK,CACtB3zO,UAAW,IAAM,gCAAqC7I,IAAI,CAAC,GAAYsK,EAAOmyO,0BAA0B,EACxGhyO,QAAS,CACL,CACIC,MAAO2gN,EACP1gN,UAAW0gN,EACXzgN,YAAaC,GAAAA,CAAWA,CAACC,QAAQ,CACjCC,SAAU,8BACVC,SAAU,IAAM,GAChB3K,OAAQ,CAAC48B,EAAG5yB,KACRA,EAASzK,KAAK,GACd,IAAI,CAACwrH,OAAO,CAACt8F,WAAW,EAC5B,CACJ,EACA,CACIpkB,MAAO4xO,EACP3xO,UAAW2xO,EACX1xO,YAAaC,GAAAA,CAAWA,CAACI,SAAS,CAClCF,SAAU,+BACVC,SAAU,GAAW,CAAC,MAAMxK,IAAI,CAAC,IAAI,CAACnD,OAAO,CAACq4F,WAAW,CAAClgF,EAAM+mO,oBAAoB,GACpFl8O,OAAQ,CAACmV,EAAOnL,KACZ,IAAI,CAACzC,oBAAoB,CAAC4N,EAAM+mO,oBAAoB,EACpDlyO,EAASzK,KAAK,GACd,IAAI,CAACwrH,OAAO,CAACt8F,WAAW,EAC5B,CACJ,EACH,CACD7kB,aAAcA,CAClB,GAEA,IAAI,CAACmhH,OAAO,CAACt8F,WAAW,EAC5B,CAEA8sN,kBAAmB,CACf,IAAI,CAACF,YAAY,CAAG,IAAI,CAACG,oCAAoC,GAC7D,IAAI,CAACJ,YAAY,CAAG,IAAI,CAACl0O,oBAAoB,CAACS,SAAS,CAAC,6CAA8C,CAAE2B,MAAO,IAAI,CAAC+xO,YAAY,CAAC76O,MAAM,EAC3I,CAEA+G,qBAAqBM,CAAa,CAAE,CAChC,IAAI,CAACw0O,kCAAkC,CAACx0O,EAC5C,CACJ,CAcAszO,GAAuBz3O,OAAO,CAAG,CAAC,UAAW,SAAU,uBAAwB,OAAQ,UAAU,CAEjGF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,gBAdW,CAC5BC,SAAU,CACN6zO,QAAS,IACTlC,cAAe,IACfnnG,SAAU,IACVyoG,gBAAiB,IACjBW,mCAAoC,GACxC,EACAxzO,SCvHW,omCDwHXC,WAAYqyO,EAChB,EE9G4D,OAEtDoB,WAAoCt1O,EAAAA,CAAWA,CACjDrD,YAAYsD,CAAoB,CAAE2vO,CAAsB,CAAE5+N,CAAK,CAAEjD,CAAe,CAAED,CAAI,CAAE,CACpF,KAAK,GAEL,IAAI,CAAC+hO,uBAAuB,CAAGD,EAC/B,IAAI,CAACt4N,MAAM,CAAGtG,EACd,IAAI,CAACmG,gBAAgB,CAAGpJ,EACxB,IAAI,CAACkjN,KAAK,CAAGnjN,EACb,IAAI,CAACynO,iBAAiB,CAAG,IAAI,CAACzwG,YAAY,CAAC0wG,gBAAgB,CAC3D,IAAI,CAACvE,gBAAgB,CAAGA,GAAAA,CACxB,KAAI,CAACwE,cAAc,CAAG,IAAI,CAAC3wG,YAAY,CAAC2wG,cAAc,CACtD,IAAI,CAACx1O,oBAAoB,CAAGA,EAC5B,IAAI,CAACgwN,UAAU,CAAG55F,GAAAA,CAAaA,CAC/B,IAAMu4B,EAAY3uJ,EAAqBS,SAAS,CAAC,mDACjD,KAAI,CAAC6vN,WAAW,CAAGtwN,EAAqBS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAMu1I,CAAU,GAC3G,IAAI,CAAC8mF,aAAa,CAAG,GACrB,IAAI,CAACC,oBAAoB,CAAG,IAAI,CAAC1kB,KAAK,CAAC18K,WAAW,CAAC,IAAI,CAACkhM,cAAc,CAAC70O,aAAa,EAAEgnB,QAAQ,GAC9F,IAAI,CAAC60L,gBAAgB,CAAG,IAAI,CAACx8M,oBAAoB,CAACS,SAAS,CAAC,8DAC5D,IAAI,CAACH,iBAAiB,CAAG,qCACzB,IAAI,CAACC,sBAAsB,CAAG,mCAC9B,IAAI,CAACN,iBAAiB,CAAG,GACzB,IAAI,CAACO,kBAAkB,CAAG,IAAI,CAACR,oBAAoB,CAACS,SAAS,CAAC,iDAE1D,SAAI,CAAC+0O,cAAc,CAAC70O,aAAa,CACjC,IAAI,CAACk1H,cAAc,CAAG,IAAI,CAAC71H,oBAAoB,CAACS,SAAS,CAAC,6EAE1D,IAAI,CAACo1H,cAAc,CAAG,IAAI,CAAC71H,oBAAoB,CAACS,SAAS,CAAC,8EAG9D,IAAI,CAACk1O,iCAAiC,CAAG,IAAI,CAACC,gCAAgC,CAACn/O,IAAI,CAAC,IAAI,EACxF,IAAI,CAACo/O,yBAAyB,CAAG,IAAI,CAACC,iCAAiC,CAACr/O,IAAI,CAAC,IAAI,EACjF,IAAI,CAACs/O,eAAe,CAAG,IAAI,CAACrwB,WAAW,CAACjvN,IAAI,CAAC,IAAI,EACjD,IAAI,CAACu/O,eAAe,CAAG,EAC3B,CAEA3xH,YAAa,CACT,IAAI,CAAC4xH,uBAAuB,CAAClH,eAAe,CAAC,IAAI,CAAClqG,YAAY,CAAC0wG,gBAAgB,CAAC9wG,WAAW,CAC/F,CAEAtgB,WAAW+G,CAAO,CAAE,CACSjvH,KAAAA,IAArBivH,EAAQi2C,QAAQ,GACXj2C,EAAQi2C,QAAQ,CAAClQ,YAAY,CAG1B,IAAI,CAAC+kF,eAAe,EACpB,IAAI,CAACC,uBAAuB,CAACnH,YAAY,CAAC,IAAI,CAACjqG,YAAY,CAAC0wG,gBAAgB,CAAC9wG,WAAW,EAH5F,IAAI,CAACwxG,uBAAuB,CAAClH,eAAe,CAAC,IAAI,CAAClqG,YAAY,CAAC0wG,gBAAgB,CAAC9wG,WAAW,EAOvG,CAEAmxG,iCAAiC/gL,CAAM,CAAE,CACrC,IAAMqhL,EAAsB,IAAI,CAACllB,KAAK,CAAC18K,WAAW,CAACugB,GAAQltC,QAAQ,GAC/DuuN,IAAwB,IAAI,CAACR,oBAAoB,GACjD,IAAI,CAACA,oBAAoB,CAAGQ,EACvB,IAAI,CAACD,uBAAuB,CAAClkE,oBAAoB,KAClD,IAAI,CAACkkE,uBAAuB,CAACnH,YAAY,CAAC,IAAI,CAACjqG,YAAY,CAAC0wG,gBAAgB,CAAC9wG,WAAW,EACxF,IAAI,CAACuxG,eAAe,CAAG,IAGnC,CAEAF,mCAAoC,CAChC,IAAI,CAACL,aAAa,CAAG,GACrB,IAAI,CAACj5B,gBAAgB,CAAG,GACxB,IAAI,CAAC84B,iBAAiB,CAACzxG,aAAa,CAAG,IAAI,CAAC6xG,oBAAoB,CAChE,IAAI,CAACS,6BAA6B,CAAG,GAErC,IAAI,CAACvG,uBAAuB,CACvBhrG,2BAA2B,CAAC,IAAI,CAAC0wG,iBAAiB,EAClD78O,IAAI,CAAC,KACF,IAAI,CAACw9O,uBAAuB,CAAClH,eAAe,CAAC,IAAI,CAAClqG,YAAY,CAAC0wG,gBAAgB,CAAC9wG,WAAW,EAC3F,IAAI,CAACuxG,eAAe,CAAG,GACvB,IAAI,CAACI,aAAa,EACtB,GACC94O,KAAK,CAAC,KACH,IAAI,CAACm4O,aAAa,CAAG,IAAI,CAACz1O,oBAAoB,CAACS,SAAS,CAAC,mEACzD,IAAI,CAAC+7M,gBAAgB,CAAG,IAAI,CAACi5B,aAAa,GAE7Cl4O,OAAO,CAAC,KACL,IAAI,CAAC44O,6BAA6B,CAAG,EACzC,EACR,CAEAzwB,aAAc,CACL,IAAI,CAACuwB,uBAAuB,CAAClkE,oBAAoB,GAIlD,IAAI,CAACskE,wBAAwB,IAH7B,IAAI,CAACL,eAAe,CAAG,GACvB,IAAI,CAACM,YAAY,GAIzB,CAEAD,0BAA2B,CACvB,IAAM7oE,EAAmB,CAAC,EAAE,IAAI,CAACt2J,gBAAgB,CAACvC,yBAAyB,CAAC,qDAAqD,CAAC,CAElI,IAAI,CAAC0C,MAAM,CAACwB,MAAM,CAAC20J,EAAkB,CACjCvqK,MAAO,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,gCAC3CmrC,QAAS,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,kCAC7CyxK,YAAa,IAAI,CAAClyK,oBAAoB,CAACS,SAAS,CAAC,2BACjDkzK,kBAAmB,IAAI,CAAC3zK,oBAAoB,CAACS,SAAS,CAAC,kBACvD0zH,SAAU,KACN,IAAI,CAAC8hH,uBAAuB,CAAClH,eAAe,CAAC,IAAI,CAAClqG,YAAY,CAAC0wG,gBAAgB,CAAC9wG,WAAW,EAC3F,IAAI,CAACuxG,eAAe,CAAG,GACvB,IAAI,CAACM,YAAY,EACrB,CACJ,EACJ,CACJ,CAcAjB,GAA4B74O,OAAO,CAAG,CAAC,uBAAwB,yBAA0B,QAAS,kBAAmB,OAAO,CAE5HF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,8BAdgC,CACjDC,SAAU,CACNsjI,aAAc,IACduxG,cAAe,IACfE,aAAc,IACdn1E,SAAU,IACV80E,wBAAyB,GAC7B,EACAt0O,SCnIW,4+EDoIXC,WAAYyzO,EAChB,G,gBEhIA/4O,EAAAA,CAAUA,CAACgF,SAAS,CAChB,iBACA03I,CAAAA,EAAAA,GAAAA,aAAAA,EAAc2tB,CAAAA,EAAAA,GAAAA,CAAAA,EAAmB4vE,GAAAA,CAAcA,EAAG,CAC9C,qBACA,aACA,qBACA,WACA,6BACA,sBACA,mBACA,mBACH,ECdE,OAAMC,GACT95O,YAAY8R,CAAU,CAAEsC,CAAS,CAAE,CAC/B,IAAI,CAACoyH,WAAW,CAAG10H,EACnB,IAAI,CAACyI,UAAU,CAAGnG,EAClB,IAAI,CAAC2lO,UAAU,CAAG,EAAE,CAGxB54O,IAAI64O,CAAQ,CAAE,CACV,IAAI,CAACC,SAAS,GACd,IAAI,CAACF,UAAU,CAAC14O,IAAI,CAAC24O,EACzB,CAEAC,WAAY,CACR,IAAI,CAACC,eAAe,CAAG,IAAI,CAAC1zG,WAAW,CAACtuH,GAAG,CAAC,sBAAuB,IAAI,CAACiiO,QAAQ,CAACpgP,IAAI,CAAC,IAAI,GAC1F,IAAI,CAACqgP,aAAa,CAAG,IAAI,CAAC5zG,WAAW,CAACtuH,GAAG,CAAC,oBAAqB,IAAI,CAACmiO,MAAM,CAACtgP,IAAI,CAAC,IAAI,EACxF,CAEAugP,UAAW,CACP,IAAI,CAACJ,eAAe,GACpB,IAAI,CAACE,aAAa,EACtB,CAEAD,UAAW,CACP,GAAI,IAAI,CAACJ,UAAU,CAACn9O,MAAM,CAAG,EACzB,IAAK,IAAMo9O,KAAY,IAAI,CAACD,UAAU,CAAE,CACpC,IAAMlrI,EAAM,IAAI,CAACt0F,UAAU,CAAC6tE,MAAM,EAE9B4xJ,CAAAA,EAAS99O,MAAM,GAAK2yG,GACpBmrI,EAASA,QAAQ,EAEzB,CAGJ,IAAI,CAACD,UAAU,CAACn9O,MAAM,CAAG,EACzB,IAAI,CAAC09O,QAAQ,EACjB,CAEAD,QAAS,CACL,IAAI,CAACN,UAAU,CAACn9O,MAAM,CAAG,EACzB,IAAI,CAAC09O,QAAQ,EACjB,CACJ,CAEAR,GAAoBh6O,OAAO,CAAG,CAAC,aAAc,YAAY,CACzDF,EAAAA,CAAUA,CAACC,OAAO,CAAC,sBAAuBi6O,I,eC1BwB,OAE5DS,WAAiCl3O,EAAAA,CAAWA,CAC9CrD,YACIsY,CAAM,CACNo9E,CAAQ,CACR/tF,CAAY,CACZ/F,CAAQ,CACRmQ,CAAO,CACPqC,CAAS,CACTF,CAAO,CACP/C,CAAI,CACJ8hO,CAAsB,CACtB3vO,CAAoB,CACpBuE,CAAU,CACVwxC,CAAI,CACJhlC,CAAK,CACLuvH,CAAyB,CACzBnvC,CAAc,CACd+lJ,CAAmB,CACrB,CACE,KAAK,GAEL,IAAI,CAACrzH,OAAO,CAAG7uG,EACf,IAAI,CAACmhK,SAAS,CAAG/jF,EACjB,IAAI,CAAC7zF,SAAS,CAAGD,EACjB,IAAI,CAAC2iN,QAAQ,CAAGxyM,EAChB,IAAI,CAACwI,UAAU,CAAGnG,EAClB,IAAI,CAAC65I,QAAQ,CAAG/5I,EAChB,IAAI,CAACogN,KAAK,CAAGnjN,EACb,IAAI,CAAC+hO,uBAAuB,CAAGD,EAC/B,IAAI,CAACt4N,MAAM,CAAGtG,EACd,IAAI,CAACuG,WAAW,CAAG/S,EACnB,IAAI,CAAC4yO,eAAe,CAAGhmJ,EACvB,IAAI,CAACimJ,oBAAoB,CAAGF,EAC5B,IAAI,CAACG,WAAW,CAAGhzO,EAAaN,OAAO,CAEvC,IAAI,CAAC/D,oBAAoB,CAAGA,EAE5B,IAAI,CAACs3O,mBAAmB,CAAG,CACvBnnB,OAAQ7/H,GAAAA,CAAaA,CAAC6/H,MAAM,CAC5Bn9H,KAAM,EACV,EAEA,IAAI,CAACukJ,kBAAkB,CAAG,IAAI,CAACD,mBAAmB,CAClD,IAAI,CAACE,kBAAkB,CAAG,IAAI,CAACx3O,oBAAoB,CAACS,SAAS,CAAC,sCAC9D,IAAI,CAACg3O,mBAAmB,CAAG,IAAI,CAACz3O,oBAAoB,CAACS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAM,IAAI,CAACo+N,kBAAkB,GACrI,IAAI,CAACE,qBAAqB,CAAG,GAC7B,IAAI,CAAC1zG,WAAW,CAAG,KACnB,IAAI,CAACf,YAAY,CAAG,KACpB,IAAI,CAAC00G,eAAe,CAAG,KACvB,IAAI,CAAC7H,YAAY,CAAG,KACpB,IAAI,CAAC8H,iBAAiB,CAAG,GACzB,IAAI,CAACp7B,gBAAgB,CAAG,GACxB,IAAI,CAACq7B,0BAA0B,CAAG,KAClC,IAAI,CAACC,yBAAyB,CAAG,KACjC,IAAI,CAACC,WAAW,CAAGhiM,OAAAA,EAAKE,MAAM,GAC9B,IAAI,CAAC+hM,UAAU,CAAGzzO,EAAW23L,qBAAqB,GAElD,IAAI,CAAC+7C,cAAc,CAAG,CAAC,cAAc,EAAE,IAAI,CAAC7sO,SAAS,CAAC,CAAC,CACvD,IAAI,CAAC8sO,eAAe,CAAG,CAAC,eAAe,EAAE,IAAI,CAAC9sO,SAAS,CAAC,CAAC,CAEzD,IAAI,CAAC+sO,mBAAmB,CAAGn4O,EAAqBS,SAAS,CAAC,sCAC1D,IAAI,CAAC23O,qBAAqB,CAAGp4O,EAAqBS,SAAS,CAAC,gDAC5D,IAAI,CAAC+U,OAAO,CAAG,GACf,IAAI,CAAC6iO,8BAA8B,CAAG,GACtC,IAAI,CAACC,oBAAoB,CAAG,CAAC,EAAE,IAAI,CAACt4O,oBAAoB,CAACS,SAAS,CAAC,gDAAgD,IAAI,CAAC,CACxH,IAAI,CAAC00O,kCAAkC,CAAG,IAAI,CAACoD,iCAAiC,CAAC9hP,IAAI,CAAC,IAAI,EAC1F,IAAI,CAAC+hP,kCAAkC,CAAG,IAAI,CAACC,iCAAiC,CAAChiP,IAAI,CAAC,IAAI,EAC1F,IAAI,CAACiiP,mCAAmC,CAAG,IAAI,CAACC,kCAAkC,CAACliP,IAAI,CAAC,IAAI,EAC5F,IAAI,CAACmiP,qCAAqC,CAAG,IAAI,CAACC,oCAAoC,CAACpiP,IAAI,CAAC,IAAI,EAChG,IAAI,CAACqiP,uBAAuB,CAAG,IAAI,CAACA,uBAAuB,CAACriP,IAAI,CAAC,IAAI,EACrE,IAAI,CAACsiP,gBAAgB,CAAG,IAAI,CAACA,gBAAgB,CAACtiP,IAAI,CAAC,IAAI,EACvD,IAAI,CAACuiP,gBAAgB,CAAG,IAAI,CAACA,gBAAgB,CAACviP,IAAI,CAAC,IAAI,EAEvD,IAAI,CAACwiP,mBAAmB,CAAG,CACvBzD,eAAgB,KAChBD,iBAAkB,IACtB,EAEA,IAAI,CAAC2D,0BAA0B,CAAG54G,EAClC,IAAI,CAAC64G,mCAAmC,CAAG,EAC/C,CAEA33G,SAAU,CACN,IAAI,CAAC43G,gBAAgB,EACzB,CAEAj1H,WAAW+G,CAAO,CAAE,CACUjvH,KAAAA,IAAtBivH,EAAQ9/G,SAAS,EAAmB8/G,EAAQ9/G,SAAS,CAACi3H,aAAa,IACnE,IAAI,CAAC+2G,gBAAgB,EAE7B,CAEA/0H,YAAa,CACT,IAAI,CAAC9lH,SAAS,CAACgV,MAAM,CAAC,IAAI,CAACskO,0BAA0B,EACrD,IAAI,CAACt5O,SAAS,CAACgV,MAAM,CAAC,IAAI,CAACukO,yBAAyB,CACxD,CAEA,MAAMsB,kBAAmB,CACrB,IAAI,CAAC5jO,OAAO,CAAG,GACf,IAAI,CAACyiO,cAAc,CAAG,CAAC,cAAc,EAAE,IAAI,CAAC7sO,SAAS,CAAC,CAAC,CACvD,IAAI,CAAC8sO,eAAe,CAAG,CAAC,eAAe,EAAE,IAAI,CAAC9sO,SAAS,CAAC,CAAC,CAEzD,IAAI,CAACiuO,kBAAkB,GAGvB,MAAM,IAAI,CAACC,kBAAkB,GAAG7gP,IAAI,CAAC,IAAO,IAAI,CAAC+c,OAAO,CAAG,IAI3D,IAAI,CAAC+jO,sBAAsB,EAC/B,CAQAA,wBAAyB,CAGrB,GAFA,IAAI,CAACC,mBAAmB,CAAG,GAEvB,SAAI,CAACC,gBAAgB,CACrB,IAAI,CAACD,mBAAmB,CAAG,CAAC,cAAc,EAAE,IAAI,CAACC,gBAAgB,CAAC,CAAC,CAEnEC,SADqCx9M,cAAc,CAAC,CAAC,eAAe,EAAE,IAAI,CAACu9M,gBAAgB,CAAC,CAAC,EACzE/gP,KAAK,CAAC,CAAEqwN,cAAe,EAAK,OAC7C,CACH,IAAI4wB,EAAoB,IACpB,KAAI,CAACC,cAAc,GAAKC,GAAAA,CAAeA,CAACr7I,OAAO,CAACE,aAAa,CAC7Di7I,EAAoBlgP,SAASyiC,cAAc,CAAC,IAAI,CAAC+7M,cAAc,EACxD,IAAI,CAAC2B,cAAc,GAAKC,GAAAA,CAAeA,CAACr7I,OAAO,CAACC,cAAc,EACrEk7I,CAAAA,EAAoBlgP,SAASyiC,cAAc,CAAC,IAAI,CAACg8M,eAAe,GAG1C,OAAtByB,GACAA,EAAkBjhP,KAAK,EAE/B,CAEmC,YAA/B,OAAO,IAAI,CAACohP,cAAc,EAC1B,IAAI,CAACA,cAAc,EAE3B,CAEAT,oBAAqB,CACb,IAAI,CAACU,YAAY,CACjB,IAAI,CAACv9B,gBAAgB,CAAG,IAAI,CAACx8M,oBAAoB,CAACS,SAAS,CAAC,8DAE5D,IAAI,CAAC+7M,gBAAgB,CAAG,IAAI,CAACx8M,oBAAoB,CAACS,SAAS,CAAC,2DAEpE,CAEAu5O,sBAAuB,CACnB,IAAI,CAACzC,kBAAkB,CAAG,KAC1B,IAAI,CAACG,qBAAqB,CAAG,GAC7B,IAAI,CAACD,mBAAmB,CAAG,EAC/B,CAEAp0G,aAAc,CACV,IAAI,CAAC81G,mCAAmC,CAAG,GAM3C,IAAI,CAAC38B,gBAAgB,CAAG,GACxB,IAAI,CAACw9B,oBAAoB,GAEE/9O,KAAAA,IAAvB,IAAI,CAACg+O,aAAa,EAClB,IAAI,CAACA,aAAa,GAGtB,IAAMl2G,EAAgB,IAAI,CAACC,WAAW,CAACM,QAAQ,CAAChrI,MAAM,CAChD02F,EAAkB,IAAI,CAAC2nJ,eAAe,CAACnD,eAAe,CAAClwG,QAAQ,CAAC41G,oBAAoB,CAEpF/8O,EAAO,CACTsyF,KAAM,IAAI,CAACwzC,YAAY,CAACe,WAAW,CACnCsB,UAhBc,CACdlB,gBAAiB,GAAc,IAAI,CAAC+1G,gBAAgB,CAACv5O,EACzD,EAeImD,QAAS,IAAI,CAACA,OAAO,CACrB4hI,gBAAiB,IAAI,CAACA,eAAe,CACrC5B,cAAeA,EACf/zC,gBAAiBA,CACrB,EAEA,IAAI,CAAC4/I,uBAAuB,CAACtpG,sBAAsB,CAACnpI,EACxD,CAEAm8O,oBAAqB,CAGjB,OAFA,IAAI,CAACH,mCAAmC,CAAG,GAEpC,IAAI,CAACvJ,uBAAuB,CAC9BzkO,iBAAiB,CAAC,IAAI,CAACC,SAAS,CAAE,IAAI,CAACrH,OAAO,CAAE,IAAI,CAACi0O,UAAU,EAC/Dv/O,IAAI,CAAC,IACF,IAAI,CAACurI,WAAW,CAAG7+H,EAAShI,IAAI,CAChC,IAAI,CAAC8lI,YAAY,CAAG,IAAI,CAAC2sG,uBAAuB,CAACpsG,cAAc,CAAC,IAAI,CAACp4H,SAAS,EAC9E,IAAI,CAACusO,eAAe,CAAG,IAAI,CAAC10G,YAAY,CAACe,WAAW,CAEpD,IAAI,CAACo2G,gBAAgB,GACrB,IAAI,CAAC9B,oBAAoB,CAAG,CAAC,EAAE,IAAI,CAACt4O,oBAAoB,CAACS,SAAS,CAAC,gDAAgD,EAAE,EAAE,IAAI,CAACqvO,YAAY,CAAC/rG,aAAa,CAAC,CAAC,CAAC,CACzJ,IAAI,CAAC6zG,iBAAiB,CAAGzyO,OAAAA,EAAShI,IAAI,CAAC0pI,aAAa,CAEhD,IAAI,CAAC7C,WAAW,CAACq2G,YAAY,CAC7B,IAAI,CAAC79B,gBAAgB,CAAG,IAAI,CAACx8M,oBAAoB,CAACS,SAAS,CAAC,mDAE5D,IAAI,CAAC+7M,gBAAgB,CAAG,IAAI,CAACx8M,oBAAoB,CAACS,SAAS,CAAC,gDAEpE,GACCnD,KAAK,CAAC,KACH,IAAI,CAACk/M,gBAAgB,CAAG,IAAI,CAAC27B,mBAAmB,EAE5D,CAEAM,kCAAkC5zG,CAAY,CAAE,CAC5C,IAAI,CAAC6yG,qBAAqB,CAAG,GAC7B,IAAI,CAACuB,mBAAmB,CAAG,CACvBzD,eAAgB3wG,EAChB0wG,iBAAkB,IAAI,CAACvxG,WAAW,CAACM,QAAQ,CAAC9pI,IAAI,CAAC,GAAcoG,EAAS6jI,WAAW,GAAKI,EAAaL,WAAW,CACpH,EAEA,IAAI,CAAC6zG,8BAA8B,CAAG,GAElCxzG,KAAAA,EAAalkI,aAAa,CAC1B,IAAI,CAAC23O,oBAAoB,CAAG,IAAI,CAACt4O,oBAAoB,CAACS,SAAS,CAAC,8DAEhE,IAAI,CAAC63O,oBAAoB,CAAG,IAAI,CAACt4O,oBAAoB,CAACS,SAAS,CAAC,6DAGrCxE,KAAAA,IAA3B,IAAI,CAACq+O,iBAAiB,EACtB,IAAI,CAACA,iBAAiB,CAAC,IAG3B,IAAI,CAACz2H,OAAO,CAACt8F,WAAW,EAC5B,CAEAsxN,sCAAuC,CACnC,IAAM0B,EAAkB,IAAI,CAACtB,mBAAmB,CAACzD,cAAc,CAAChxG,WAAW,CAC3E,IAAI,CAACg2G,0BAA0B,GAC/B,IAAI,CAACjD,kBAAkB,CAAG,IAAI,CAACD,mBAAmB,CAClD,IAAI,CAACI,qBAAqB,CAAG,IAAI,CAAC13O,oBAAoB,CAACS,SAAS,CAAC,gEACjE,IAAI,CAACg3O,mBAAmB,CAAG,IAAI,CAACz3O,oBAAoB,CAACS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAM,IAAI,CAACo+N,kBAAkB,GAErI,IAAI,CAAC8B,kBAAkB,GAAG7gP,IAAI,CAAC,KAC3B,IAAI,CAACgiP,uBAAuB,CAACF,EACjC,GACA,IAAI,CAAC/9B,gBAAgB,CAAG,IAAI,CAACk7B,qBAAqB,CAGtD8C,4BAA6B,CACzB,IAAI,CAACnC,8BAA8B,CAAG,GACtC,IAAI,CAACC,oBAAoB,CAAG,CAAC,EAAE,IAAI,CAACt4O,oBAAoB,CAACS,SAAS,CAAC,gDAAgD,EAAE,EAAE,IAAI,CAACqvO,YAAY,CAAC/rG,aAAa,CAAC,CAAC,CAAC,CACzJ,IAAI,CAAC2zG,qBAAqB,CAAG,GAC7B,IAAI,CAACuB,mBAAmB,CAAG,CACvBzD,eAAgB,KAChBD,iBAAkB,IACtB,EACA,IAAI,CAACU,uBAAuB,CAACzmL,OAAO,GAELvzD,KAAAA,IAA3B,IAAI,CAACq+O,iBAAiB,EACtB,IAAI,CAACA,iBAAiB,CAAC,GAE/B,CAEA3B,oCAAqC,CACjC,IAAM4B,EAAkB,IAAI,CAACtB,mBAAmB,CAACzD,cAAc,CAAChxG,WAAW,CAC3E,IAAI,CAACg2G,0BAA0B,GAC/B,IAAI,CAACC,uBAAuB,CAACF,EACjC,CAEAE,wBAAwBj2G,CAAW,CAAE,CACjC,IAAI,CAACqzG,0BAA0B,CAAG,IAAI,CAACt5O,SAAS,CAAC,KAC7C,IAAMrD,EAAUzB,SAASyiC,cAAc,CAAC,CAAC,eAAe,EAAEsoG,EAAY,CAAC,CACvD,QAAZtpI,GACAA,EAAQxC,KAAK,EAErB,EACJ,CAEAgiP,6BAA6Bl2G,CAAW,CAAE,CACtC,IAAI,CAACszG,yBAAyB,CAAG,IAAI,CAACv5O,SAAS,CAAC,KAC5C,IAAMrD,EAAUzB,SAASyiC,cAAc,CAAC,CAAC,qBAAqB,EAAEsoG,EAAY,CAAC,CAC7D,QAAZtpI,GACAA,EAAQxC,KAAK,EAErB,EACJ,CAEA6/O,kCAAkC53O,CAAa,CAAE,CAC7C,IAAI,CAACivO,uBAAuB,CAAClrG,gCAAgC,CAAC,IAAI,CAACt5H,SAAS,CAAEzK,EAClF,CAEAg6O,oBAAoB/5O,CAAQ,CAAE,CAC1B,IAAI,CAACkvO,YAAY,CAACrsO,QAAQ,CAAG,GAE7B,IAAI,CAACmsO,uBAAuB,CACvBrrG,cAAc,CAAC,IAAI,CAACxgI,OAAO,CAAE,IAAI,CAACigI,WAAW,CAAClD,SAAS,CAAElgI,EAAS4jI,WAAW,EAC7E/rI,IAAI,CAAC,IACF,IAAI,CAACq3O,YAAY,CAACrsO,QAAQ,CAAG,GAC7B,IAAMm3O,EAAkB,IAAI,CAAC52G,WAAW,CAACM,QAAQ,CAAC/oI,MAAM,CAAC,GAAUu3B,EAAK2xG,WAAW,GAAK7jI,EAAS4jI,WAAW,EAC5G,GAAIo2G,IAAAA,EAAgBthP,MAAM,CAAQ,CAC9B,IAAMuhP,EAAqBphP,SAASyiC,cAAc,CAAC,sBACxB,QAAvB2+M,GACAA,EAAmBniP,KAAK,EAEhC,KAAO,CACH,IAAMoD,EAAe,IAAI,CAACkoI,WAAW,CAACM,QAAQ,CAACrmH,SAAS,CAAC,GAAU6U,EAAK2xG,WAAW,GAAK7jI,EAAS4jI,WAAW,EAC5G,GAAI1oI,EAAe,EAAI8+O,EAAgBthP,MAAM,CAAE,CAC3C,IAAMwhP,EAAiBF,CAAe,CAACA,EAAgBthP,MAAM,CAAG,EAAE,CAACmrI,WAAW,CAC9E,IAAI,CAACg2G,uBAAuB,CAACK,EACjC,KAAO,CACH,IAAMC,EAAiBH,CAAe,CAAC9+O,EAAa,CAAC2oI,WAAW,CAChE,IAAI,CAACg2G,uBAAuB,CAACM,EACjC,CACJ,CAEA,IAAI,CAAC/2G,WAAW,CAACM,QAAQ,CAAGs2G,EACD,KAAvB52G,EAAYlyG,MAAM,GAClB,IAAI,CAACkyG,WAAW,CAACg3G,cAAc,CAAGh3G,EAAYlyG,MAAM,CACpD,IAAI,CAAC6lN,eAAe,CAACzzG,cAAc,CAAGF,EAAYlyG,MAAM,EAG5D,IAAI,CAACylN,kBAAkB,CAAG,IAAI,CAACD,mBAAmB,CAClD,IAAI,CAACG,mBAAmB,CAAG,IAAI,CAACz3O,oBAAoB,CAACS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAM,IAAI,CAACo+N,kBAAkB,GACrI,IAAI,CAACE,qBAAqB,CAAG,IAAI,CAAC13O,oBAAoB,CAACS,SAAS,CAAC,4DACjE,IAAI,CAAC+7M,gBAAgB,CAAG,IAAI,CAACx8M,oBAAoB,CAACS,SAAS,CAAC,iDAChE,GACCnD,KAAK,CAAC,KACH,IAAI,CAACi6O,kBAAkB,CAAGnhH,GAAAA,CAC1B,KAAI,CAACqhH,mBAAmB,CAAG,IAAI,CAACz3O,oBAAoB,CAACS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAM,IAAI,CAACo+N,kBAAkB,GACrI,IAAI,CAACE,qBAAqB,CAAG,IAAI,CAAC13O,oBAAoB,CAACS,SAAS,CAAC,0DACjE,IAAI,CAAC+7M,gBAAgB,CAAG,IAAI,CAACx8M,oBAAoB,CAACS,SAAS,CAAC,wDAC5D,IAAI,CAACi6O,4BAA4B,CAAC95O,EAAS4jI,WAAW,CAC1D,GACCjnI,OAAO,CAAC,KACL,IAAI,CAAC68O,gBAAgB,GACrB,IAAI,CAAC9B,oBAAoB,CAAG,CAAC,EAAE,IAAI,CAACt4O,oBAAoB,CAACS,SAAS,CAAC,gDAAgD,EAAE,EAAE,IAAI,CAACqvO,YAAY,CAAC/rG,aAAa,CAAC,CAAC,CAAC,EAErK,CAEAi1G,iBAAiBp4O,CAAQ,CAAEq6O,CAAM,CAAE3iP,CAAK,CAAE,CACtC,GAAIA,KAAU2D,IAAV3D,GAAwBA,CAAAA,EAAMszB,OAAO,GAAItzB,EAAM62I,QAAQ,EAI3D,GAAI,CAAC8rG,EAAQ,CACT,IAAMC,EAAY,IAAI,CAAC5jO,WAAW,CAACizJ,qBAAqB,CAAC3pK,EAASu6O,SAAS,EAM3E,IAAI,CAAC/D,oBAAoB,CAACv5O,GAAG,CALD,CACxBjF,OAAQsiP,EACRxE,SAAU,IAAM,IAAI,CAACS,eAAe,CAAC3hG,aAAa,CAAC,IAAI,CAAC6hG,WAAW,CAAE,CAAE/pG,WAAY,CAAEliI,UAAW,IAAI,CAAC44H,WAAW,CAAClD,SAAS,CAAEhgI,WAAYF,EAAS4jI,WAAW,CAAG,EACnK,EAGJ,CAEA,GAAIlsI,KAAU2D,IAAV3D,GACA,GAAI2iP,EAAQ,CACR,IAAMG,EAAkB,IAAI,CAACzwF,QAAQ,CAAC1zH,IAAI,GAC1CmkN,EAAgB5pO,cAAc,CAACu1D,KAAK,GACpCq0K,EAAgBr4M,QAAQ,CAAGniC,EAASu6O,SAAS,MAE7C,IAAI,CAAClkO,UAAU,CAAC1N,GAAG,CAAC,IAAI,CAAC+N,WAAW,CAAC+jO,UAAU,CAACz6O,EAASu6O,SAAS,GAClE,IAAI,CAACt3H,OAAO,CAACt8F,WAAW,IAGpC,CAEAwxN,iBAAiBn4O,CAAQ,CAAE,CACvB,IAAI,CAACo5O,oBAAoB,GACzB,IAAI,CAACb,mCAAmC,CAAG,GAC3C,IAAMmC,EAA2B,CAC7B1vM,QAAS,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,0DAC7CwC,MAAO,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,wDAC3Cs+C,kBAAmB,IAAI,CAAC/+C,oBAAoB,CAACS,SAAS,CAAC,mBACvDu+C,oBAAqB,IAAI,CAACh/C,oBAAoB,CAACS,SAAS,CAAC,iBAC7D,CAEA66O,CAAAA,EAAyBz8L,UAAU,CAAG,KAClC,IAAI,CAAC29J,gBAAgB,CAAG,IAAI,CAACx8M,oBAAoB,CAACS,SAAS,CAAC,wDAC5D,IAAI,CAACk6O,mBAAmB,CAAC/5O,EAC7B,EAEA,IAAI,CAACyW,MAAM,CAACwB,MAAM,CAAC,IAAI,CAACxB,MAAM,CAAC8nH,gBAAgB,CAACo8B,gBAAgB,CAAE+/E,GAClE,IAAI,CAACz3H,OAAO,CAACt8F,WAAW,EAC5B,CAEAuxN,yBAA0B,CACtB,IAAI,CAACkB,oBAAoB,GACzB,IAAI,CAACn2H,OAAO,CAACt8F,WAAW,EAC5B,CAEA6yN,kBAAmB,CACf,IAAMr2G,EAAgB,IAAI,CAACC,WAAW,CAACM,QAAQ,CAAChrI,MAAM,CAChD02F,EAAkB,IAAI,CAAC2nJ,eAAe,CAACnD,eAAe,CAAClwG,QAAQ,CAAC41G,oBAAoB,CAEpFpI,EAAuB,IAAI,CAACoH,0BAA0B,CAACjpJ,aAAa,CAAC8zC,EAAe/zC,GAEpFg1C,EAAqB,IAAI,CAACk0G,0BAA0B,CAAC1oJ,kBAAkB,CACzE,IAAI,CAACmnJ,eAAe,CAACzzG,cAAc,GAAKxxH,GAAAA,CAAeA,CAACmrF,eAAe,CAACG,eAAe,CACvF+lC,EACA/zC,GAGEurJ,EAAsB,IAAI,CAACrC,0BAA0B,CAACnpJ,mBAAmB,CAACC,GAC1EvsF,EAAW,IAAI,CAACsoI,QAAQ,CAE9B,IAAI,CAAC+jG,YAAY,CAAG,CAChB0L,mBAAoB,CAACD,EACrBE,mBAAoBz2G,EACpBvhI,SAAUA,EACV7C,SAAU,IAAI,CAACojI,WAAW,CAACM,QAAQ,CAACtlI,GAAG,CAAC,GAAc,IAAI,CAAC08O,YAAY,CAAC96O,IACxEmjI,cAAeA,EACf43G,2BAA4B,IAAI,CAACC,qBAAqB,CAACnlP,IAAI,CAAC,IAAI,EAChEolP,gBAAiB/J,EAAqBlmM,OAAO,CAC7CkwM,0BAA2BhK,EAAqB1uO,SAAS,CACzDm0O,mBAAoBzF,EAAqB3hJ,MAAM,EAGnD,IAAI,CAACgpJ,mCAAmC,CAAGrH,EAAqBlmM,OAAO,CAG3EuuM,iBAAiB72G,CAAW,CAAE,CAC1B,IAAI,CAACk5E,gBAAgB,CAAG,IAAI,CAACx8M,oBAAoB,CAACS,SAAS,CAAC,+CAAgD,CAAE2B,MAAOkhI,EAAYhqI,MAAM,GACvI,IAAI,CAACi+O,kBAAkB,CAAG,IAAI,CAACD,mBAAmB,CAClD,IAAI,CAACG,mBAAmB,CAAG,IAAI,CAACz3O,oBAAoB,CAACS,SAAS,CAAC,sCAAuC,CAAE2Y,KAAM,IAAI,CAACo+N,kBAAkB,GACrI,IAAI,CAACE,qBAAqB,CAAG,IAAI,CAAC13O,oBAAoB,CAACS,SAAS,CAAC,yDAEjE,IAAI,CAACujI,WAAW,CAACM,QAAQ,CAAG,IAAIhB,KAAgB,IAAI,CAACU,WAAW,CAACM,QAAQ,CAAC,CAC1E,IAAI,CAAC81G,gBAAgB,GAErB,IAAI,CAAC9B,oBAAoB,CAAG,CAAC,EAAE,IAAI,CAACt4O,oBAAoB,CAACS,SAAS,CAAC,gDAAgD,EAAE,EAAE,IAAI,CAACqvO,YAAY,CAAC/rG,aAAa,CAAC,CAAC,CAAC,CACzJ,IAAI,CAAC02G,uBAAuB,CAAC,IAAI,CAACz2G,WAAW,CAACM,QAAQ,CAAC,EAAE,CAACG,WAAW,EACrE,IAAI,CAACwxG,uBAAuB,CAACzmL,OAAO,EACxC,CAEAksL,aAAa96O,CAAQ,CAAE,CACnB,IAAIu6O,EAAY,GACZxyB,EAAa/nN,EAASmc,KAAK,CAC3Bjc,EAAaF,EAAS4J,EAAE,CAS5B,OAPI1J,OAAAA,EACAq6O,EAAY,IAAI,CAAC7jO,WAAW,CAAC20J,aAAa,CAACrrK,EAAS4J,EAAE,CAAE,KAAM,IAAI,CAACuhI,QAAQ,CAAE,CAAC,IAAI,CAACgsG,WAAW,CAAE,IAAI,CAACC,UAAU,CAAE,GAAI,KAErHl3O,EAAa,GACb6nN,EAAa,IAAI,CAAC3oN,oBAAoB,CAACS,SAAS,CAAC,gDAG9C,CACH+jI,YAAa5jI,EAAS6jI,WAAW,CACjC1gI,QAASjD,EACT6nN,WAAYA,EACZhoN,cAAeC,OAAAA,EAASijI,aAAa,CAAY,IAAI,CAACmtF,KAAK,CAAC18K,WAAW,CAAC1zC,EAASijI,aAAa,EAAEl8G,QAAQ,GAAK,GAC7GwzN,UAAWA,EACX7yO,SAAU1H,EAASs3B,QAAQ,CAC3B1S,QAAS5kB,EAAS6e,OAAO,CACzBy4N,gBAAiB,CAAC,eAAe,EAAEt3O,EAAS6jI,WAAW,CAAC,CAAC,CACzDs3G,eAAgB,CAAC,qBAAqB,EAAEn7O,EAAS6jI,WAAW,CAAC,CAAC,CAC9Du3G,eAAgB,IAAI,CAACh8O,oBAAoB,CAACS,SAAS,CAAC,8CAA+C,CAC/Fw7O,YAAa,IAAI,CAACh7B,QAAQ,CAAC,cAAcrgN,EAASwiE,OAAO,CAAE,YAC3D84K,YAAa,IAAI,CAACj7B,QAAQ,CAAC,cAAcrgN,EAASwiE,OAAO,CAAE,YAC3DumC,aAAc,IAAI,CAACs3G,QAAQ,CAAC,cAAcrgN,EAASyiE,QAAQ,CAAE,WACjE,EACJ,CACJ,CAEAu4K,uBAAwB,CACpB,IAAI,CAAC9L,YAAY,CAAC2L,kBAAkB,CAAG,IAAI,CAAC7L,uBAAuB,CAAC7qG,oBAAoB,CAAC,IAAI,CAAC35H,SAAS,CAAE,CAAC,IAAI,CAAC0kO,YAAY,CAAC2L,kBAAkB,EAC9I,IAAI,CAAC53H,OAAO,CAACt8F,WAAW,EAC5B,CACJ,CAqBA0vN,GAAyBz6O,OAAO,CAAG,CAC/B,SACA,WACA,eACA,WACA,UACA,YACA,UACA,OACA,yBACA,uBACA,aACA,OACA,QACA,4BACA,iBACA,sBACH,CACDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,kBArC6B,CAC9CC,SAAU,CACN6J,UAAW,IACX2uO,aAAc,IACdh2O,QAAS,IACT4hI,gBAAiB,IACjBoG,SAAU,IACV0tG,iBAAkB,IAClBG,eAAgB,KAChBE,eAAgB,KAChBG,cAAe,KACfK,kBAAmB,KACnBn5E,SAAU,IACV80E,wBAAyB,IAC7B,EACAt0O,SCzfW,mvGD0fXC,WAAYq1O,EAChB,EEze6F,OAEvFkF,WAAkCp8O,EAAAA,CAAWA,CAC/CrD,YAAYsD,CAAoB,CAAE+Q,CAAK,CAAE+gH,CAA2B,CAAEhkH,CAAe,CAAEsC,CAAE,CAAEmiI,CAAe,CAAE/jI,CAAU,CAAEwG,CAAM,CAAE,CAC5H,KAAK,GAEL,IAAI,CAAChV,oBAAoB,CAAGA,EAC5B,IAAI,CAACqX,MAAM,CAAGtG,EACd,IAAI,CAAC6/N,4BAA4B,CAAG9+G,EACpC,IAAI,CAACq/G,eAAe,CAAG,eACvB,IAAI,CAAC8E,uBAAuB,CAAG,IAAItH,GAC/BA,GAAsCa,eAAe,CAACxvO,EAAsBwO,EAAWg8B,OAAO,CAAC16B,WAAW,KAE9G,IAAI,CAACkH,GAAG,CAAG5G,EACX,IAAI,CAAC8yH,WAAW,CAAG10H,EACnB,IAAI,CAACq1G,OAAO,CAAG7uG,EACf,IAAI,CAAC87N,gBAAgB,CAAGv+F,EACxB,IAAI,CAACr7H,gBAAgB,CAAGpJ,EAExB,IAAMsuO,EAAkB,IAAI,CAAC12G,SAAS,CAAC02G,eAAe,EAAI,IAAI,CAAC12G,SAAS,CAACq0G,YAAY,MAC1D99O,IAAvB,IAAI,CAAC09M,aAAa,EAAkB,KAAiC19M,IAAjC,IAAI,CAAC09M,aAAa,CAAC+wB,SAAS,CAChE,IAAI,CAAC2R,mBAAmB,CAAG,IAAI,CAAC1iC,aAAa,CAAC+wB,SAAS,CAAC,eAAe,EAAI0R,EAE3E,IAAI,CAACC,mBAAmB,CAAGD,EAG/B,IAAI,CAACE,6BAA6B,CAAG,KAErC,IAAI,CAACC,OAAO,CAAG,CACXv7N,OAAQ,GACR/W,GAAI,eACJhH,MAAO,IAAI,CAACyiI,SAAS,CAAC82G,QAAQ,CAC9BvtF,QAAS,IAAI,CAACotF,mBAAmB,CACjC54O,SAAU,EACd,EACA,IAAI,CAACg5O,WAAW,CAAG,CACfz7N,OAAQ,GACR/W,GAAI,mBACJhH,MAAOjD,EAAqBS,SAAS,CAAC,mCACtCwuJ,QAAS,IAAI,CAACvpB,SAAS,CAACg3G,eAAe,CACvCj5O,SAAU,EACd,EACA,IAAI,CAACk5O,WAAW,CAAG,CACf37N,OAAQ,GACR/W,GAAI,mBACJhH,MAAOjD,EAAqBS,SAAS,CAAC,mCACtCwuJ,QAAS,IAAI,CAACvpB,SAAS,CAACk3G,eAAe,CACvCn5O,SAAU,EACd,EAEA,IAAI,CAACjF,UAAU,CAAG,CACd,CAAC,IAAI,CAACi+O,WAAW,CAACxyO,EAAE,CAAC,CAAEgnM,GAAyBx3M,SAAU,CAAEu3M,iBAAkBhxM,EAAsBgO,MAAOgH,CAAO,GAClH,CAAC,IAAI,CAAC2nO,WAAW,CAAC1yO,EAAE,CAAC,CAAE8mM,GAAyBt3M,SAAU,CAAEu3M,iBAAkBhxM,EAAsBgO,MAAOgH,CAAO,EACtH,EAEA,IAAI,CAAC4kO,cAAc,CAAG,KACgB39O,KAAAA,IAAlC,IAAI,CAACypI,SAAS,CAACk0G,cAAc,EAC7B,KAAI,CAACA,cAAc,CAAG,IAAI,CAACl0G,SAAS,CAACk0G,cAAc,EAGvD,IAAI,CAACnqF,IAAI,CAAG,CAAC,IAAI,CAAC8sF,OAAO,CAAE,IAAI,CAACE,WAAW,CAAE,IAAI,CAACE,WAAW,CAAC,CAC9D,IAAI,CAACE,mBAAmB,CAAG,GAC3B,IAAI,CAACvC,iBAAiB,CAAG,IAAI,CAACwC,gBAAgB,CAACrmP,IAAI,CAAC,IAAI,EACxD,IAAI,CAACsmP,yBAAyB,CAAG,IAAI,CAACC,0BAA0B,CAACvmP,IAAI,CAAC,IAAI,EAC1E,IAAI,CAAC4mC,gBAAgB,CAAGtX,EAAAA,CAC5B,CAEAy7G,SAAU,CACN,IAAI,CAACy7G,WAAW,GAChB,IAAI,CAACrM,4BAA4B,CAAC57M,SAAS,CAAC,UAAW,IAAI,CAACm8M,eAAe,CAAE,IAAM,IAAI,CAACY,gBAAgB,IACxG,IAAI,CAACjB,gBAAgB,CAACl/D,iBAAiB,CAAC,IAAI,CAACqkE,uBAAuB,EACpE,IAAI,CAACqG,6BAA6B,CAAG,IAAI,CAACp5G,WAAW,CAACtuH,GAAG,CAAC,yBAA0B,IAAM,IAAI,CAAC+tL,UAAU,IACzG,IAAI,CAACmuC,gBAAgB,CAAC98D,mBAAmB,CAAC,IAAI,CAACjwK,OAAO,CAC1D,CAEAsgH,YAAa,CACT,IAAI,CAACusH,4BAA4B,CAACjmH,WAAW,CAAC,UAAW,IAAI,CAACwmH,eAAe,EAC7E,IAAI,CAAC+L,qBAAqB,GAC1B,IAAI,CAACpM,gBAAgB,CAACj/D,oBAAoB,CAAC,IAAI,CAACokE,uBAAuB,EAC5B,OAAvC,IAAI,CAACqG,6BAA6B,EAClC,IAAI,CAACA,6BAA6B,GAEtC,IAAI,CAACj/M,gBAAgB,EACzB,CAEAo0H,aAAalB,CAAS,CAAE,CACpB,IAAI,CAACd,IAAI,CAAC70J,OAAO,CAAC,GAAUZ,EAAIgnB,MAAM,CAAGhnB,EAAIiQ,EAAE,GAAKsmJ,EAAUtmJ,EAAE,EAChE,IAAI,CAACkzO,qBAAqB,CAAC5sF,EAAUtmJ,EAAE,CAC3C,CAEAkzO,sBAAsBC,CAAK,CAAE,CACzB,IAAI,CAAC//M,gBAAgB,GACrB,IAAM8kI,EAAY,IAAI,CAAC3jK,UAAU,CAAC4+O,EAAM,MACtBnhP,IAAdkmK,GACA,KAAI,CAAC9kI,gBAAgB,CAAGC,EAAAA,CAAeA,CAACz/B,GAAG,CAACskK,EAAW,IAAI,CAACniK,oBAAoB,CAACS,SAAS,CAAC,2CAA0C,CAE7I,CAEAw8O,aAAc,CACV,GAAI,CAAC,IAAI,CAACv3G,SAAS,CAACg3G,eAAe,EAAI,CAAC,IAAI,CAACh3G,SAAS,CAACk3G,eAAe,EAAI,IAAI,CAACP,mBAAmB,CAAE,CAChG,IAAI,CAACQ,mBAAmB,CAAG,GAC3B,MACJ,CAEA,GAAI,IAAI,CAACn3G,SAAS,CAACg3G,eAAe,EAC1B,IAAI,CAACW,SAAS,GAAKtpJ,EAAAA,CAAeA,CAACC,KAAK,CAAC0N,gBAAgB,CAAE,CAC3D,IAAI,CAAC+vD,YAAY,CAAC,IAAI,CAACgrF,WAAW,EAClC,MACJ,CAGJ,GAAI,IAAI,CAAC/2G,SAAS,CAACk3G,eAAe,EAC1B,IAAI,CAACS,SAAS,GAAKtpJ,EAAAA,CAAeA,CAACC,KAAK,CAAC2N,gBAAgB,CAAE,CAC3D,IAAI,CAAC8vD,YAAY,CAAC,IAAI,CAACkrF,WAAW,EAClC,MACJ,CAGJ,GAAI,IAAI,CAACN,mBAAmB,EACpB,IAAI,CAACgB,SAAS,GAAKtpJ,EAAAA,CAAeA,CAACC,KAAK,CAACyN,YAAY,CAAE,CACvD,IAAI,CAACgwD,YAAY,CAAC,IAAI,CAAC8qF,OAAO,EAC9B,MACJ,CAER,CAEA55C,YAAa,CACL,IAAI,CAACszC,uBAAuB,CAAClkE,oBAAoB,GACjD,IAAI,CAACurE,sBAAsB,IAE3B,IAAI,CAACJ,qBAAqB,GAC1B,IAAI,CAAC3K,SAAS,CAACz5O,MAAM,GAE7B,CAEAi5O,kBAAmB,QACf,IAAQ,CAACkE,uBAAuB,CAAClkE,oBAAoB,IACjD,IAAI,CAACurE,sBAAsB,GACpB,IAAI,CAACtmO,GAAG,CAACha,MAAM,CAAC,yCAG3B,IAAI,CAACkgP,qBAAqB,GACnB,IAAI,CAAClmO,GAAG,CAACja,OAAO,GAC3B,CAEAugP,wBAAyB,CACrB,GAAI,CAAC,IAAI,CAACxM,gBAAgB,CAAC1/D,SAAS,CAAE,CAClC,IAAM5D,EAAmB,CAAC,EAAE,IAAI,CAACt2J,gBAAgB,CAACvC,yBAAyB,CAAC,qDAAqD,CAAC,CAElI,IAAI,CAAC0C,MAAM,CAACwB,MAAM,CAAC20J,EAAkB,CACjCvqK,MAAO,IAAI,CAACjD,oBAAoB,CAACS,SAAS,CAAC,gCAC3CmrC,QAAS,IAAI,CAAC5rC,oBAAoB,CAACS,SAAS,CAAC,kCAC7CyxK,YAAa,IAAI,CAAClyK,oBAAoB,CAACS,SAAS,CAAC,2BACjDkzK,kBAAmB,IAAI,CAAC3zK,oBAAoB,CAACS,SAAS,CAAC,kBACvD0zH,SAAU,KACN,IAAI,CAAC+oH,qBAAqB,GAC1B,IAAI,CAAC3K,SAAS,CAACz5O,MAAM,EACzB,CACJ,EACJ,CACJ,CAEAgkP,iBAAiBtyE,CAAS,CAAE,CACxB,IAAI,CAAC/a,IAAI,CAAC70J,OAAO,CAAC,GAAUZ,EAAIyJ,QAAQ,CAAG+mK,EAC/C,CAEA0yE,uBAAwB,CACpB,IAAI,CAACjH,uBAAuB,CAACzmL,OAAO,EACxC,CAEAwtL,4BAA6B,CACzB,IAAMvD,EAAmB,IAAI,CAAC/zG,SAAS,CAAC+zG,gBAAgB,CAExD,GAAIA,KAAAA,EAAyB,CACzB,IAAM8D,EAAiB9jP,SAASyiC,cAAc,CAAC,CAAC,cAAc,EAAEu9M,EAAiB,CAAC,EAC5E+D,EAAa/jP,SAASyiC,cAAc,CAAC,CAAC,EAAE,IAAI,CAACqgN,OAAO,CAACtyO,EAAE,CAAC,iBAAiB,CAAC,CAChFuzO,CAAAA,EAAW79M,SAAS,CAAG49M,EAAe39J,SAAS,CAAG49J,EAAW19J,YAAY,CAAG,EAAIy9J,EAAez9J,YAAY,CAAG,CAClH,CAEA,IAAI,CAAC85J,cAAc,CAAG,IAC1B,CACJ,CAkBAuC,GAA0B3/O,OAAO,CAAG,CAChC,uBACA,QACA,8BACA,kBACA,KACA,kBACA,aACA,SACH,CACDF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,mBA1B8B,CAC/CC,SAAU,CACN6J,UAAW,IACXrH,QAAS,IACT4hI,gBAAiB,IACjB4sG,UAAW,IACX8K,UAAW,IACX33G,UAAW,IACXusG,cAAe,IACfhuO,aAAc,KACd01M,cAAe,IACnB,EACAh4M,SCrNW,4zFDsNXC,WAAYu6O,EAChB,G,mDE5MsD,OAEhDsB,WAA8B19O,EAAAA,CAAWA,CAC3CrD,YAAYsY,CAAM,CAAEvG,CAAO,CAAEzO,CAAoB,CAAEkhB,CAAgB,CAAEw8N,CAAqB,CAAE3rD,CAAoB,CAAE,CAC9G,KAAK,GAEL,IAAI,CAACkvB,QAAQ,CAAGxyM,EAChB,IAAI,CAACo1G,OAAO,CAAG7uG,EACf,IAAI,CAAChV,oBAAoB,CAAGA,EAC5B,IAAI,CAACkhB,gBAAgB,CAAGA,EACxB,IAAI,CAACy8N,sBAAsB,CAAGD,EAC9B,IAAI,CAACE,cAAc,CAAG7rD,EAAqBrkL,uBAAuB,CAClE,IAAI,CAAC0T,MAAM,CAAG,KACd,IAAI,CAACD,KAAK,CAAG,KACb,IAAI,CAACiB,OAAO,CAAG,KACf,IAAI,CAACy7N,YAAY,CAAG,IAAI,CAAC79O,oBAAoB,CAACS,SAAS,CAAC,gCACxD,IAAI,CAACq9O,YAAY,CAAG,IAAI,CAAC99O,oBAAoB,CAACS,SAAS,CAAC,wBACxD,IAAI,CAACs9O,YAAY,CAAG,GACpB,IAAI,CAAChrD,UAAU,CAAG,GAClB,IAAI,CAACirD,SAAS,CAAG,GACjB,IAAI,CAACC,eAAe,CAAG,GACvB,IAAI,CAACC,YAAY,CAAG,GACpB,IAAI,CAACp4I,OAAO,CAAG,IAAI12F,IACvB,CAEAoyH,SAAU,CACN,IAAI,CAACm8G,sBAAsB,CAACprD,kBAAkB,CAAC,IAAI,CAACxuL,OAAO,EAAEtL,IAAI,CAAC,IAC9D,GAAI8C,OAAAA,EACA,MAGJ,KAAI,CAACyiP,SAAS,CAAGziP,EAAOiP,EAAE,CAC1B,IAAI,CAACuoL,UAAU,CAAGx3L,EAAO03L,YAAY,CACrC,IAAI,CAACirD,YAAY,CAAG,GAEpB,IAAMC,EAAY5iP,EAAOmlI,QAAQ,CAAClmI,IAAI,CAAC,GAAc+iJ,EAAS/0G,GAAG,GAAKmrJ,GAAAA,CAA+BA,CAACr1F,UAAU,EAC1G8/I,EAAa7iP,EAAOmlI,QAAQ,CAAClmI,IAAI,CAAC,GAAc+iJ,EAAS/0G,GAAG,GAAKmrJ,GAAAA,CAA+BA,CAACp1F,QAAQ,CAE/G,KAAI,CAACn9E,MAAM,CAAGg9N,KAAeniP,IAAfmiP,EAA2BA,EAAW31M,KAAK,CAAG,KAC5D,IAAI,CAACtnB,KAAK,CAAGg9N,KAAcliP,IAAdkiP,EAA0BA,EAAU11M,KAAK,CAAG,IAC7D,GAEA,IAAI,CAAC41M,gBAAgB,CAAG,IACpB,IAAI,CAACtrD,UAAU,CAAGjxD,EAClB,IAAI,CAACje,OAAO,CAACt8F,WAAW,EAC5B,EAEA,IAAI,CAAC+2N,kBAAkB,EAC3B,CAEAC,eAAex7N,CAAI,CAAE,CACjB,IAAI,CAAC5B,KAAK,CAAG4B,EACb,IAAI,CAACX,OAAO,CAAG,IAAI,CAAClB,gBAAgB,CAAC8B,OAAO,CAAC,IAAI,CAAC7B,KAAK,CAAE,MAAO,GAChE,IAAI,CAACm9N,kBAAkB,EAC3B,CAEAE,aAAaz7N,CAAI,CAAE,CACf,IAAI,CAAC3B,MAAM,CAAG2B,EACd,IAAI,CAACu7N,kBAAkB,EAC3B,CAEA93N,aAAc,CACV,IAAI,CAACpF,MAAM,CAAG,KACd,IAAI,CAACD,KAAK,CAAG,KACT,IAAI,CAAC4xK,UAAU,GACf,IAAI,CAACsrD,gBAAgB,CAAC,IACtB,IAAI,CAACtrD,UAAU,CAAG,IAGtB,IAAI,CAAC4qD,sBAAsB,CACtB/hN,YAAY,CAAC,IAAI,CAAC73B,OAAO,CAAE,IAAI,CAACi6O,SAAS,EACzCvlP,IAAI,CAAC,KACF,IAAI,CAACylP,YAAY,CAAG,EACxB,GACC5gP,KAAK,CAAC6lB,QAAQ4C,IAAI,CAC3B,CAEAu4N,oBAAqB,CACb,WAAI,CAACl9N,MAAM,EAAa,WAAI,CAACD,KAAK,CAClC,IAAI,CAAC48N,YAAY,CAAG,IAAI,CAAC/9O,oBAAoB,CAACS,SAAS,CAAC,0CAA2C,CAC/FihB,WAAY,IAAI,CAACu/L,QAAQ,CAAC,cAAc,IAAI,CAAC7/L,MAAM,CAAE,WACrDK,UAAW,IAAI,CAACw/L,QAAQ,CAAC,cAAc,IAAI,CAAC9/L,KAAK,CAAE,UACvD,GACO,WAAI,CAACA,KAAK,EAAa,WAAI,CAACC,MAAM,CACzC,IAAI,CAAC28N,YAAY,CAAG,IAAI,CAAC/9O,oBAAoB,CAACS,SAAS,CAAC,2CAA4C,CAAEihB,WAAY,IAAI,CAACu/L,QAAQ,CAAC,cAAc,IAAI,CAAC7/L,MAAM,CAAE,UAAW,GAC/J,WAAI,CAACA,MAAM,EAAa,WAAI,CAACD,KAAK,CACzC,IAAI,CAAC48N,YAAY,CAAG,IAAI,CAAC/9O,oBAAoB,CAACS,SAAS,CAAC,0CAA2C,CAAEghB,UAAW,IAAI,CAACw/L,QAAQ,CAAC,cAAc,IAAI,CAAC9/L,KAAK,CAAE,UAAW,GAC5I,OAAhB,IAAI,CAACC,MAAM,EAAa,WAAI,CAACD,KAAK,EACzC,KAAI,CAAC48N,YAAY,CAAG,IAAI,CAAC/9O,oBAAoB,CAACS,SAAS,CAAC,4CAA2C,CAE3G,CAEAqyL,aAAc,CACV,IAAI,CAACmrD,eAAe,CAAG,GACvB,IAAI,CAACH,YAAY,CAAG,IAAI,CAAC99O,oBAAoB,CAACS,SAAS,CAAC,2BAExD,IAAM0L,EAAa,CACfiV,OAAQ,IAAI,CAACA,MAAM,CACnBD,MAAO,IAAI,CAACA,KAAK,CACjB9U,SAAU,IAAI,CAAC2xO,SAAS,EAG5B,IAAI,CAACL,sBAAsB,CACtB7qD,WAAW,CAAC,IAAI,CAAC/uL,OAAO,CAAEoI,EAAY,IAAI,CAAC4mL,UAAU,EACrDt6L,IAAI,CAAC,KACmBwD,KAAAA,IAAjB,IAAI,CAACwiP,OAAO,EACZ,IAAI,CAACA,OAAO,GAGhB,IAAI,CAACP,YAAY,CAAG,EACxB,GACC5gP,KAAK,CAAC6lB,QAAQ4C,IAAI,EAClBxoB,OAAO,CAAC,KACL,IAAI,CAAC0gP,eAAe,CAAG,GACvB,IAAI,CAACH,YAAY,CAAG,IAAI,CAAC99O,oBAAoB,CAACS,SAAS,CAAC,uBAC5D,EACR,CACJ,CAEO,IAAMi+O,GAAkC,CAC3Cn9O,SAAU,CACNwC,QAAS,IACT06O,QAAS,IACb,EACA98O,SCvIW,qhFDwIXC,WAAY67O,EAChB,CAEAiB,CAAAA,GAAgCliP,OAAO,CAAG,CAAC,SAAU,UAAW,uBAAwB,mBAAoB,wBAAyB,uBAAuB,CAC5JF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,wBAAyBo9O,GExIM,OAE9CC,WAA4B5+O,EAAAA,CAAWA,CACzCrD,YAAYsD,CAAoB,CAAE,CAC9B,KAAK,GAEL,IAAI,CAACA,oBAAoB,CAAGA,EAE5B,IAAI,CAAC4+O,YAAY,CAAG,KAChB,IAAI,CAACj8C,UAAU,EACnB,CACJ,CAEAA,YAAa,CACT,IAAI,CAAC4vC,SAAS,CAACz5O,MAAM,EACzB,CACJ,CAEO,IAAM+lP,GAAgC,CACzCt9O,SAAU,CACNgxO,UAAW,IACXxuO,QAAS,GACb,EACApC,SC3BW,ylBD4BXC,WAAY+8O,EAChB,CAEAE,CAAAA,GAA8BriP,OAAO,CAAG,CAAC,uBAAuB,CAChEF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,sBAAuBu9O,I,gBE5B5CviP,EAAAA,CAAUA,CAACgF,SAAS,CAAC,sBAAuB03I,CAAAA,EAAAA,GAAAA,aAAAA,EAAc8lG,GAAAA,CAAmBA,CAAE,CAAC,kBAAmB,qBAAqB,GCgDxHxiP,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,WAAY,CAC7B,SACA,SAAU+uO,CAAM,EACZ,MAAO,CACHC,QAAS,SAAiB9jP,CAAO,CAAE6+G,CAAU,EACzC,IAAIklI,EAAOF,EAAOhlI,EAAWmlI,QAAQ,EAErC,OAAO,SAAclxO,CAAK,CAAE9S,CAAO,EAC/BA,EAAQy5H,IAAI,CAACsqH,EAAKjxO,GACtB,CACJ,CACJ,CACJ,EACH,EAED1R,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,UAAW,CAC5B,OACA,KACA,YACA,WACA,QACA,aACA,WACA,eACA,YACA,mBACA,kBACA,uBACA,qBACA,kBACA,qBACA,qBACA,qBACA,mBACA,QACA,8BACA,oBACA,qBACA,OACA,sBACA,uBACA,mBACA,mBACA,kBACA,SACInC,CAAI,CACJuC,CAAE,CACFU,CAAS,CACTxS,CAAQ,CACR8F,CAAK,CACLoK,CAAU,CACVoe,CAAQ,CACRvoB,CAAY,CACZ+iM,CAAS,CACT+3C,CAAgB,CAChBrxO,CAAe,CACf9N,CAAoB,CACpBo/O,CAAkB,CAClB7sG,CAAe,CACfjyF,CAAkB,CAClB7Z,CAAkB,CAClB44M,CAAkB,CAClBC,CAAgB,CAChBvuO,CAAK,CACL+gH,CAA2B,CAC3Bw/E,CAAiB,CACjB3gM,CAAkB,CAClBolC,CAAI,CACJ+tJ,CAAmB,CACnB3/L,CAAoB,CACpBi1B,CAAgB,CAChBs9H,CAAgB,CAChB1pI,CAAe,EAEf,MAAO,CACHjf,SAAU,IACVC,MAAO,CACHuxO,aAAc,gBACdC,qBAAsB,wBACtB5iG,0BAA2B,6BAC3B6iG,WAAY,cACZ7vL,SAAU,YACV8vL,WAAY,aAChB,EACA/9O,SCxIG,+/IDyIHC,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9Bk7G,EAA4B6tH,UAAU,CAAC,WACvC7tH,EAA4B6tH,UAAU,CAAC,4BAEvC3qO,EAAOhV,oBAAoB,CAAGA,EAC9BgV,EAAO4qO,eAAe,CAAG9xO,EAAgByC,YAAY,CAAG,qEACxDyE,EAAO6qO,kBAAkB,CAAG/xO,EAAgBgyO,mBAAmB,CAC/D9qO,EAAO+qO,mBAAmB,CAAG,GAC7B/qO,EAAOgrO,mBAAmB,CAAG,EAAE,CAC/BhrO,EAAOi5L,6BAA6B,CAAG,GACvCj5L,EAAO0hJ,gBAAgB,CAAGA,EAC1B1hJ,EAAO8hJ,WAAW,CAAG,KACrB9hJ,EAAOk7L,eAAe,CAAGz2M,SAASyiC,cAAc,CAAC,iBACjDlnB,EAAOm7L,cAAc,CAAG12M,SAASyiC,cAAc,CAAC,oBAChDlnB,EAAOirO,8BAA8B,CAAGl6N,EAAAA,CAAIA,CAE5C,IAAMm6N,EAAoBlrO,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,6BAC1D0/O,EAAuBnrO,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,gCAC7D2/O,EAAcprO,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,eAG1DuU,CAAAA,EAAOgP,OAAO,CAAG,CACbq8N,gBAAiB,KACjBl+F,WAAY,CACRrpJ,OAAQ,KACJy6B,EAAAA,CAAOA,CAACC,UAAU,CAAC,UAAW,8BAC9Bxe,EAAOsrO,kBAAkB,CAAC,cAC9B,EACAr2O,GAAI,iBACJhH,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,0BAC7CuyF,KAAM,mBACN7vF,MAAO6R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,qDAC7Cw8E,WAAYjoE,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,4CACtD,EACAuyI,QAAS,CACLl6I,OAAQ,KACJy6B,EAAAA,CAAOA,CAACC,UAAU,CAAC,UAAW,0BAC9Bxe,EAAOsrO,kBAAkB,CAAC,UAAW,GAAI,MAC7C,EACAr2O,GAAI,kBACJhH,MAAO+R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,mBAC7CuyF,KAAM,eACN7vF,MAAO6R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,mBAC7Cw8E,WAAYjoE,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,6CACtD,EACAw+L,OAAQ,IACZ,EAEAjqL,EAAOurO,kBAAkB,CAAG,EAAE,CAE9BvzN,EAAgBknC,IAAI,GAAGz7D,IAAI,CAAC,KACxBuc,EAAOwrO,iBAAiB,CAAGxzN,EAAgBS,SAAS,CAAC,mBAEjDzY,EAAOwrO,iBAAiB,CACxBxrO,EAAOurO,kBAAkB,CAACxiP,IAAI,CAC1B,CACIwkI,SAAU,KACNhvG,EAAAA,CAAOA,CAACC,UAAU,CAAC,UAAW,8BAC9B1iB,EAAUvH,GAAG,CAAC,qBACdyL,EAAOuS,WAAW,EACtB,EACAotG,KAAMwrH,EACN/8O,UAAW4R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,uDACjD+C,SAAU,8BACd,EACA,CACI++H,SAAU,KACNhvG,EAAAA,CAAOA,CAACC,UAAU,CAAC,UAAW,2BAC9BitN,CAAAA,EAAAA,EAAAA,CAAAA,EACIhnP,SAASijH,aAAa,CACtBp/E,EAAAA,CAAeA,CAACojN,kBAAkB,GAAG9oG,IAAI,CAAC,CAAC+oG,EAAQC,IAAWD,EAAOhjN,WAAW,CAACkjN,aAAa,CAACD,EAAOjjN,WAAW,IAErH3oB,EAAOuS,WAAW,EACtB,EACAotG,KAAM3/G,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,mBAC5C2C,UAAW4R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,yDACjD+C,SAAU,gCACd,EACA,CACI++H,SAAU,KACNhvG,EAAAA,CAAOA,CAACC,UAAU,CAAC,UAAW,qBAC9Bxe,EAAOiqL,MAAM,GACbjqL,EAAOuS,WAAW,EACtB,EACAotG,KAAMyrH,EACNh9O,UAAW4R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,6CACjD+C,SAAU,gCACd,IAG2B,UAA3BwR,EAAO8rO,eAAe,EACtB9rO,CAAAA,EAAOgP,OAAO,CAACq8N,eAAe,CAAG,CAC7BvnP,OAAQ,KACJy6B,EAAAA,CAAOA,CAACC,UAAU,CAAC,UAAW,4BAC9BswK,EAAoBM,qBAAqB,EAC7C,EACAn6L,GAAI,oBACJhH,MAAOi9O,EACP/8O,MAAO+8O,EACP98O,UAAW4R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,iCACjDsgP,QAASC,EAAAA,CACb,GAGJhsO,EAAOgP,OAAO,CAACi7K,MAAM,CAAG,CACpBnmM,OAAQ,KACJy6B,EAAAA,CAAOA,CAACC,UAAU,CAAC,UAAW,qBAC9Bxe,EAAOiqL,MAAM,EACjB,EACAh1L,GAAI,kBACJhH,MAAOm9O,EACPptJ,KAAM,eACN7vF,MAAOi9O,EACPh9O,UAAW4R,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,4CACrD,EAER,GAGAuU,EAAOisO,eAAe,CAAG,EAAE,CAE3BjsO,EAAOksO,aAAa,CAAG,CACnB5oN,QAAS,KACT4nC,KAAM,WACmB,OAAjB,IAAI,CAAC5nC,OAAO,EAAc,IAAI,CAACA,OAAO,CAAC,EAAE,EACzC,KAAI,CAACA,OAAO,CAAGnV,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,4BAA4B,CAAC,EAAE,GAElG,IAAI,CAACkV,OAAO,CAAC5V,QAAQ,CAAC,eAC1B,EACAmyC,OAAQ,WACJ,IAAI,CAACv8B,OAAO,CAAC5V,QAAQ,CAAC,gBAC1B,EACAspC,KAAM,WACF,IAAI,CAAC1zB,OAAO,CAAC7V,WAAW,CAAC,iBACzB,IAAI,CAAC6V,OAAO,CAAC7V,WAAW,CAAC,eAC7B,CACJ,EAEAzN,EAAOmsO,wBAAwB,CAAG,KAC9BnsO,EAAOgrO,mBAAmB,CAACplP,OAAO,CAAC,GAAkBwmP,EAAaC,mBAAmB,IACrFrsO,EAAOgrO,mBAAmB,CAAC1mP,MAAM,CAAG,CACxC,EAEA0b,EAAOssO,mBAAmB,CAAG,SAAUC,CAAO,CAAE3oP,CAAM,EAClD,IAAI4oP,EAAc,CACdC,YAAa7oP,WAAAA,EAAsBoH,EAAqBS,SAAS,CAAC,qCAAuC,EAC7G,EAEA,OAAQ8gP,GACJ,IAAK,QACD,OAAOvhP,EAAqBS,SAAS,CAAC,2CAA4C+gP,EACtF,KAAK,OACD,OAAOxhP,EAAqBS,SAAS,CAAC,0CAA2C+gP,EACrF,KAAK,OACD,OAAOxhP,EAAqBS,SAAS,CAAC,iDAAkD+gP,EAC5F,SACI,OAAOD,CACf,CACJ,EAGA,IAAIG,EAAe,CAAC,OAAQ,YAAY,CAGxC1sO,EAAO2sO,yBAAyB,CAAG,WAC/B3sO,EAAO8rO,eAAe,CAAGlqO,EAAO2qO,OAAO,CACvCvsO,EAAO4sO,QAAQ,CAAG,CAACC,IAAiB,EAGxC7sO,EAAO+zL,kBAAkB,CAAG,WACxBq2C,EAAmBr2C,kBAAkB,GAAGtwM,IAAI,CAAC,SAAU0M,CAAQ,EAC3D6P,EAAO4sO,QAAQ,CAACtoP,MAAM,CAAG,EACzB0b,EAAO4sO,QAAQ,CAAC7jP,IAAI,CAAC8jP,KAErB,IAAK,IADDC,EAAkB9sO,EAAOuqO,YAAY,CAACqC,QAAQ,CACzCzlP,EAAI,EAAGA,EAAIgJ,EAAShI,IAAI,CAAC7D,MAAM,CAAE6C,IAAK,CAC3C,IAAM22B,EAAO3tB,EAAShI,IAAI,CAAChB,EAAE,CAE7B22B,EAAKu9C,GAAG,CAAGr7D,EAAO+sO,aAAa,CAACjvN,EAAKkvN,OAAO,CAAEhtO,EAAO8rO,eAAe,CAAEhuN,EAAKu9C,GAAG,EAC9Ev9C,EAAKmvN,cAAc,CAAG,IAAM1uN,EAAAA,CAAOA,CAACC,UAAU,CAAC,UAAW,CAAC,MAAM,EAAEV,EAAKkvN,OAAO,CAAC,OAAO,CAAC,EAEzD,UAA3BhtO,EAAO8rO,eAAe,EAAgBhuN,EAAKkvN,OAAO,GAAKhtO,EAAO8rO,eAAe,EAC7E9rO,EAAO4sO,QAAQ,CAACpnP,IAAI,CAAC,IACO,SAApB+mP,EAAQS,OAAO,EACfT,CAAAA,EAAQlxK,GAAG,CAAGv9C,EAAKu9C,GAAG,CAE9B,GAGAv9C,EAAKkvN,OAAO,GAAKhtO,EAAO8rO,eAAe,CACvChuN,EAAKm/C,MAAM,CAAG,SAEdn/C,EAAKm/C,MAAM,CAAG,QAId,EAAiBrqE,OAAO,EAAI85O,KAAAA,EAAa3lP,OAAO,CAAC+2B,EAAKkvN,OAAO,EAEtDF,EAAgBl6O,OAAO,EAAIk6O,KAAAA,EAAgBl6O,OAAO,CAAC7L,OAAO,CAAC+2B,EAAKkvN,OAAO,GAC9EhtO,EAAO4sO,QAAQ,CAAC7jP,IAAI,CAAC+0B,GAFrB9d,EAAO4sO,QAAQ,CAAC7jP,IAAI,CAAC+0B,EAI7B,CACAwsN,EAAiB1nG,IAAI,CAACkqG,EAAiB9sO,EAAO4sO,QAAQ,CAAE,UAC5D,EACJ,EAEA5sO,EAAO+sO,aAAa,CAAG,SAAUR,CAAO,CAAEnkN,CAAc,CAAE7zB,CAAG,EACzD,GAAIA,KAAAA,EAAIxN,OAAO,CAAC,SACZ,GAAIqhC,IAAmBmkN,EACnBh4O,EAAMuE,EAAgByC,YAAY,CAAGhH,OAErC,OAAQg4O,GACJ,IAAK,YACDh4O,EAAM,SACN,KACJ,KAAK,QACDA,EAAMuE,EAAgByC,YAAY,CAAGhH,EACrC,KACJ,SACIA,EAAM,IAEd,EAGR,OAAOA,CACX,EAEAyL,EAAOktO,iBAAiB,CAAG,SAAUX,CAAO,EACxC,IAAIY,EAAWt0O,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,gCAEtF,OAAQ4sO,GACJ,IAAK,OACDY,GAAsB,iBACtB,KACJ,KAAK,YAeL,QAdIA,GAAsB,sBACtB,KACJ,KAAK,OACDA,GAAsB,WACtB,KACJ,KAAK,QACDA,GAAsB,YACtB,KACJ,KAAK,OACDA,GAAsB,WACtB,KACJ,KAAK,aACDA,GAAsB,gBAI9B,CAEA,OAAOA,CACX,EAGAntO,EAAOotO,cAAc,CAAG,WACpBptO,EAAOisO,eAAe,CAAG3B,EAAiB/jP,MAAM,CAACyZ,EAAOuqO,YAAY,CAAC8C,KAAK,CAAErtO,EAAOgP,OAAO,CAC9F,EAEAhP,EAAOstO,iBAAiB,CAAG,WACvBttO,EAAOuqO,YAAY,CAACrpP,IAAI,CAAC07I,OAAO,CAAG,GACnC58H,EAAOuqO,YAAY,CAACqC,QAAQ,CAAChwG,OAAO,CAAG,GACvC58H,EAAOuqO,YAAY,CAAC8C,KAAK,CAACz6O,OAAO,CAAG,CAAC,SAAS,EAGlDoN,EAAOutO,eAAe,CAAG,WACrBvtO,EAAOuqO,YAAY,CAACrpP,IAAI,CAAC0R,OAAO,CAAG,KACnCoN,EAAOuqO,YAAY,CAACqC,QAAQ,CAACh6O,OAAO,CAAG,KACvCoN,EAAOuqO,YAAY,CAAC8C,KAAK,CAACz6O,OAAO,CAAG,IACxC,EAGAoN,EAAOwtO,QAAQ,CAAG,WACdxtO,EAAOuqO,YAAY,CAACrpP,IAAI,CAAC07I,OAAO,CAAG,GACnC58H,EAAOuqO,YAAY,CAACrpP,IAAI,CAAC0R,OAAO,CAAG,KAEnCoN,EAAOuqO,YAAY,CAACqC,QAAQ,CAAChwG,OAAO,CAAG,GACvC58H,EAAOuqO,YAAY,CAACqC,QAAQ,CAACh6O,OAAO,CAAG,KAEvCoN,EAAOuqO,YAAY,CAAC8C,KAAK,CAACzwG,OAAO,CAAG,GACpC58H,EAAOuqO,YAAY,CAAC8C,KAAK,CAACz6O,OAAO,CAAG,KACpCoN,EAAOytO,UAAU,CAAG,EACxB,EAEAztO,EAAO0tO,UAAU,CAAG,SAAUC,CAAS,CAAElzL,CAAK,CAAE7R,CAAI,EAuChD,GAtCI6R,GAEAz6C,EAAOwtO,QAAQ,GAGnBxtO,EAAO4tO,iBAAiB,CAAG,KAEvBhlM,IACA5oC,EAAO46C,QAAQ,CAAGhS,EAClB5oC,EAAO6tO,UAAU,CAAGjlM,EAAKl0C,MAAM,CAC/BsL,EAAO8tO,eAAe,CAAG,CACrBC,UAAW/tO,EAAO46C,QAAQ,CAACozL,SAAS,CACpCC,SAAUjuO,EAAO46C,QAAQ,CAACu6H,OAAO,CACjC5iE,aAAcvyG,EAAO46C,QAAQ,CAACszL,WAAW,CACzCC,WACInuO,KAAAA,EAAO46C,QAAQ,CAAC2lI,UAAU,CACpBvgL,EAAO46C,QAAQ,CAAC2lI,UAAU,CAAG,mCAC7B1nL,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,qCAAqCgT,QAAQ,EAClI,EAE0B,KAAtBi2B,EAAKwlM,YAAY,EACjBpuO,CAAAA,EAAO4tO,iBAAiB,CAAGhlM,EAAKwlM,YAAY,GAIpDp2N,EAAgBknC,IAAI,GAAGz7D,IAAI,CAAC,KAEpBkqP,GACA3tO,EAAO+zL,kBAAkB,GAGzB/zL,EAAOisO,eAAe,CAAG3B,EAAiB/jP,MAAM,CAACyZ,EAAOuqO,YAAY,CAAC8C,KAAK,CAAErtO,EAAOgP,OAAO,IAE1FhP,EAAOisO,eAAe,CAAG3B,EAAiB/jP,MAAM,CAACyZ,EAAOuqO,YAAY,CAAC8C,KAAK,CAAErtO,EAAOgP,OAAO,EAC1Fs7N,EAAiB1nG,IAAI,CAAC5iI,EAAOuqO,YAAY,CAACqC,QAAQ,CAAE5sO,EAAO4sO,QAAQ,CAAE,WAE7E,GAEI5sO,EAAO46C,QAAQ,EAAI56C,EAAO46C,QAAQ,CAACyzL,UAAU,CAAE,CAC/C,IAAMv+O,EAAS,CACXmF,GAAI+K,EAAO46C,QAAQ,CAACyzL,UAAU,CAC9Bx2M,EAAG,EACHilE,EAAG,CACP,CAEA98F,CAAAA,EAAOytO,UAAU,CAAGt+O,EAAqBsB,gBAAgB,CAACX,EAC9D,CACJ,EAEA,IAAI+8O,EAAiB,WACjB,OAAQ7sO,EAAO8rO,eAAe,EAC1B,IAAK,YACD,MAAO,CACHkB,QAAS,OACT/vK,OAAQ,QACR5B,IAAK,SACL4xK,eAAgB,IAAM1uN,EAAAA,CAAOA,CAACC,UAAU,CAAC,UAAW,qBACpD8vN,aAActuO,EAAOktO,iBAAiB,CAAC,aACvCqB,aAAcvuO,EAAOktO,iBAAiB,CAAC,OAC3C,CACJ,KAAK,QACD,MAAO,CACHF,QAAS,OACT/vK,OAAQ,QACR5B,IAAKviE,EAAgByC,YAAY,CACjC0xO,eAAgB,IAAM1uN,EAAAA,CAAOA,CAACC,UAAU,CAAC,UAAW,qBACpD8vN,aAActuO,EAAOktO,iBAAiB,CAAC,aACvCqB,aAAcvuO,EAAOktO,iBAAiB,CAAC,OAC3C,CACJ,SACI,MAAO,CACHF,QAAS,OACT/vK,OAAQ,QACR5B,IAAK,KACL4xK,eAAgB,IAAM1uN,EAAAA,CAAOA,CAACC,UAAU,CAAC,UAAW,qBACpD8vN,aAActuO,EAAOktO,iBAAiB,CAAC,aACvCqB,aAAcvuO,EAAOktO,iBAAiB,CAAC,OAC3C,CACR,CACJ,CAEAltO,CAAAA,EAAOwuO,aAAa,CAAG,SAAUrmP,CAAI,EAC7BA,GAAQA,EAAKsmP,cAAc,GAC3BzuO,EAAO2sO,yBAAyB,GAC5B3sO,EAAO46C,QAAQ,EACf56C,EAAO+zL,kBAAkB,GAGrC,EAEA,IAAI26C,EAAcl1O,EAAWoG,GAAG,CAAC,aAAc,SAAUtc,CAAK,CAAE6E,CAAI,EAChE6X,EAAO2uO,iBAAiB,GACxB3uO,EAAOwuO,aAAa,CAACrmP,EACzB,GAEA6X,EAAOJ,GAAG,CAAC,WAAY,WACnB8uO,GACJ,GAEApjM,EAAmBsjM,gBAAgB,GAEnC5uO,EAAOiqL,MAAM,CAAG,WAEZ,IAAM4kD,EAActxG,EAAgB0gC,gBAAgB,GAC9Cx9H,EAAgB88F,EAAgBu/B,gBAAgB,CAAC+xE,EAAar1O,EAAWg8B,OAAO,EAEhF5xB,EAAa,CACf3V,MAAOwyC,EAAcxyC,KAAK,CAC1B2oC,QAAS6J,EAAc7J,OAAO,CAC9BqmI,mBAAoBx8H,EAAcw8H,kBAAkB,CACpDC,YAAaz8H,EAAcy8H,WAAW,CACtCyB,kBAAmBl+H,EAAck+H,iBAAiB,CAClDkwE,YAAaA,CACjB,CAEAjrO,CAAAA,EAAWo7G,eAAe,CAAG,WACpB6vH,EAGD7uO,EAAOuuB,OAAO,GAFd3qB,EAAWkrO,aAAa,EAIhC,EAEAlrO,EAAWkrO,aAAa,CAAG,WAEvB,IAAIx7O,EAAWm+B,EAAmBkD,IAAI,CAACtlC,EAAaN,OAAO,CAAC,CAAC5G,IAAI,CAAC+6B,QAAQ,CACtEywL,EAAaliL,EAAmBkD,IAAI,CAACtlC,EAAaN,OAAO,CAAC,CAAC5G,IAAI,CAAC4f,KAAK,CAEpE4rM,CAAAA,MAAAA,GAAmDA,aAAAA,EAAW74M,WAAW,EAAgB,GAC1FxH,GACAA,SAAAA,GACAA,iBAAAA,EAEA0M,EAAO+uO,eAAe,IAEtB/uO,EAAOksO,aAAa,CAAChhL,IAAI,GACzBz5B,EAAmBypB,cAAc,CAAC7rD,EAAaN,OAAO,EAAEtL,IAAI,CACxD,SAAU0E,CAAI,EACNA,GAAQA,EAAK6gC,UAAU,EAAI7gC,CAA0B,IAA1BA,EAAK6gC,UAAU,CAACwyB,KAAK,EAChDx7C,EAAOuiC,cAAc,CAAGp6C,EAAK6gC,UAAU,CAAC4N,OAAO,CAC/C52B,EAAOksO,aAAa,CAACl1L,IAAI,GACzBj7C,EAAMwD,QAAQ,CAAC,CACXvG,MAAOgH,EAAOhB,IAAI,GAClBU,YAAa,CAAC,EAAE5G,EAAgB6G,yBAAyB,CAAC,2CAA2C,CAAC,KAG1GK,EAAOksO,aAAa,CAACrsL,MAAM,GAC3Bv2D,EAAS,WACL0W,EAAOksO,aAAa,CAACl1L,IAAI,GACzBh3C,EAAOuuB,OAAO,EAClB,EAAGkK,EAAAA,CAAiBA,CAACC,YAAY,EAEzC,EACA,WACI14B,EAAOksO,aAAa,CAACl1L,IAAI,GACzBh3C,EAAOuuB,OAAO,EAClB,GAGZ,EAEA3qB,EAAWu7G,QAAQ,CAAG,WAClB1tF,EAAmB8qB,uBAAuB,CAACltD,EAAaN,OAAO,EAC/DiR,EAAOuuB,OAAO,EAClB,EAEA,IAAM7uB,EAAc69H,EAAgB2gC,oBAAoB,GAClD,CAAC,EAAEplK,EAAgB6G,yBAAyB,CAAC,qDAAqD,CAAC,CACnG,CAAC,EAAE7G,EAAgB6G,yBAAyB,CAAC,iDAAiD,CAAC,CAErGK,EAAOjE,KAAK,CAAGA,EAAM8H,MAAM,CAACnE,EAAakE,EAC7C,EAEA5D,EAAO+uO,eAAe,CAAG,WACrB,IAAI7sL,EAAgBliD,EAAOhB,IAAI,CAAC,IAC5Bo8C,EAAa3pB,EAAmBkD,IAAI,CAACtlC,EAAaN,OAAO,CAAC,CAC1DooC,EAAWikB,EAAWjzD,IAAI,CAC9B+5D,EAAc8sL,cAAc,CAAG7gO,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,sBAAsB,CAAC,EAAE,EACxG8zC,EAAc/4C,QAAQ,CAAGguB,EAASpvB,KAAK,CACvCm6C,EAAc5uD,QAAQ,CAAG6jC,EAASjU,QAAQ,CAACpoB,WAAW,GACtDonD,EAAc+sL,aAAa,CAAG93M,EAASjU,QAAQ,CAC/Cg/B,EAAcgtL,aAAa,CAAG,OAC9BhtL,EAAc3f,cAAc,CAAGviC,EAAOhV,oBAAoB,CAACS,SAAS,CAAC,kBAAoBy2D,EAAc5uD,QAAQ,CAAG,iBAElH4uD,EAAcitL,YAAY,CAAG,SAAUhmO,CAAQ,CAAE+lO,CAAa,EAC1D9zL,EAAWqE,iBAAiB,CAAC,QAASt2C,GACtCnJ,EAAOg/G,eAAe,EAC1B,EACA11H,EAAS,WACLyS,EAAMwD,QAAQ,CAAC,CACXvG,MAAOkpD,EACPxiD,YAAa5G,EAAgB6G,yBAAyB,CAAG,qEAC7D,EACJ,EACJ,EAEAK,EAAOuuB,OAAO,CAAG,WACb,OAAO5yB,EAAmB0B,oBAAoB,GACzC5Z,IAAI,CAAC0mP,EAAiBlgD,MAAM,EAC5BxmM,IAAI,CAAC,SAAU0M,CAAQ,EACpB6P,EAAO4qO,eAAe,CAAGz6O,EAAShI,IAAI,GAEzCI,OAAO,CAAC,WACLyX,EAAOstO,iBAAiB,GACxBttO,EAAOutO,eAAe,GAElBvtO,EAAOgrO,mBAAmB,CAAC1mP,MAAM,CAAG,EACpC0b,EAAOovO,cAAc,CAACpvO,EAAO04F,qBAAqB,EAC3C14F,EAAOqvO,qBAAqB,CAACllN,QAAQ,CAAC,YAC7CnqB,EAAOovO,cAAc,CAACpvO,EAAOqvO,qBAAqB,EAGtD71O,EAAWohD,QAAQ,CAAG3zD,KAAAA,EACtB85C,EAAK0Z,KAAK,GAEV3+C,EAAUwzO,OAAO,CAAG,CAAC,EACrB/xG,EAAgBgD,aAAa,CAAC,IAE1BvgI,EAAOgrO,mBAAmB,CAAC1mP,MAAM,CAAG,EACpC0b,EAAOovO,cAAc,CAACpvO,EAAO04F,qBAAqB,EAC3C14F,EAAOqvO,qBAAqB,CAACllN,QAAQ,CAAC,YAC7CnqB,EAAOovO,cAAc,CAACpvO,EAAOqvO,qBAAqB,EAItDrvO,EAAO46C,QAAQ,CAAGphD,EAAWohD,QAAQ,CAAG3zD,KAAAA,EACxC6U,EAAUwzO,OAAO,CAAG,CAAC,EACrB/xG,EAAgBgD,aAAa,CAAC,IAE1BvgI,EAAO6qO,kBAAkB,CACzB/uO,EAAU6G,IAAI,CAAC,SAEfjZ,OAAOqkC,QAAQ,CAACC,IAAI,CAAGhuB,EAAO4qO,eAAe,CAGjD5qO,EAAO6tO,UAAU,CAAG,IACxB,EACR,CACJ,EACH,CAED3/N,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC,IAAIw7N,EAAgBv2O,EAAMib,MAAM,CAAC,WAAY,WACrCjb,EAAM4hD,QAAQ,EAAI5hD,EAAM4hD,QAAQ,CAAClmD,MAAM,GACvCsE,EAAM60O,UAAU,CAAG70O,EAAM4hD,QAAQ,CAAClmD,MAAM,CACxCsE,EAAMw2O,kBAAkB,CAACx2O,EAAM4hD,QAAQ,EACvC5hD,EAAM00O,UAAU,CAAC,GAAM,IAEvB6B,IAER,EAEAv2O,CAAAA,EAAMovB,cAAc,CAAGrU,EAAMw4N,OAAO,CACpCvzO,EAAMo0O,cAAc,GAEpBp0O,EAAMy2O,OAAO,CAAGthO,QAAQjoB,OAAO,CAACzB,SAAS60G,eAAe,EACxDtgG,EAAM02O,OAAO,CAAGvhO,QAAQjoB,OAAO,CAACzB,SAASg1G,IAAI,EAC7CzgG,EAAM22O,SAAS,CAAGxhO,QAAQjoB,OAAO,CAACwD,QAClCsP,EAAM42O,gBAAgB,CAAGzhO,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,kBACzEpV,EAAM62O,gBAAgB,CAAG1hO,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,uBAEjEluB,EAAMq2O,qBAAqB,CAAGlhO,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,uBAC9EpV,EAAM0/F,qBAAqB,CAAGvqF,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,uBAC9EpV,EAAM82O,8BAA8B,CAAG3hO,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,oBAC/EluB,EAAM+2O,2BAA2B,CAAG5hO,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,sBAC5EluB,EAAMg3O,oCAAoC,CAAG7hO,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,yBACrFluB,EAAMi3O,uCAAuC,CAAG9hO,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,iBACxFluB,EAAMk3O,+BAA+B,CAAG/hO,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,+BAChFluB,EAAMm3O,0BAA0B,CAAGhiO,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,oBAC3EluB,EAAMo3O,4BAA4B,CAAGjiO,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,oCAC7EluB,EAAMq3O,2BAA2B,CAAGliO,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,qBAC5EluB,EAAMs3O,2BAA2B,CAAGniO,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,qBAC5EluB,EAAMu3O,mCAAmC,CAAGpiO,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,8BAEpF,IAAM1a,EAAc,SACdgkO,EAAgB,WAChBC,EAAc,SACdC,EAAmBviO,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,uBAAuB,CAAC,EAAE,EAC7FuiO,EAAmBxiO,QAAQjoB,OAAO,CAACzB,SAAS2pB,sBAAsB,CAAC,sBAAsB,CAAC,EAAE,CAElGpV,CAAAA,EAAM43O,MAAM,CAAG,CACX5yG,QAAS,CACL1vH,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAAC6M,OAAO,CACnCglJ,SAAU73O,EAAMgW,OAAO,CAACgvH,OAAO,CAAC/oI,EAAE,CAClC/O,QAASioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,cAAc,CAAC,EAAE,EAC5E0iO,gBAAiB,GACjBC,UAAW,EACf,EACAvpG,SAAU,CACNl5H,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAAC8M,QAAQ,CACpC5lG,QAASioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,eAAe,CAAC,EAAE,CACjF,EACAgyC,MAAO,CACH9xC,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAAC+M,WAAW,CACvC8kJ,SAAU73O,EAAMgW,OAAO,CAACm+H,UAAU,CAACl4I,EAAE,CACrC/O,QAASioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,cAAc,CAAC,EAAE,EAC5E2iO,UAAW,GACXD,gBAAiB,EACrB,EACAr2J,KAAM,CACFnsE,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAACgN,UAAU,CACtC9lG,QAASwqP,EACTK,UAAW,EACf,EACAzkD,mBAAoB,CAChBh+K,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAACC,mBAAmB,CAC/C/4F,QAASioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,gCAAgC,CAAC,EAAE,EAC9F2iO,UAAW,EACf,EACAxjC,SAAU,CACNj/L,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAACiN,cAAc,CAC1C/lG,QAASwqP,EACTK,UAAW,EACf,EACAlgP,SAAU,CACNyd,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAACkN,cAAc,CAC1ChmG,QAASwqP,EACTK,UAAW,EACf,EACAC,QAAS,CACL1iO,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAACmN,aAAa,CACzCjmG,QAASwqP,EACTK,UAAW,EACf,EACAE,WAAY,CACR3iO,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAACoN,gBAAgB,CAC5ClmG,QAASwqP,EACTK,UAAW,EACf,EACAG,iBAAkB,CACd5iO,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAACqN,uBAAuB,CACnDnmG,QAASwqP,EACTK,UAAW,EACf,EACAI,mBAAoB,CAChB7iO,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAACsN,wBAAwB,CACpDpmG,QAASioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,qCAAqC,CAAC,EAAE,EACnG2iO,UAAW,EACf,EACAK,oBAAqB,CACjB9iO,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAAC4M,iBAAiB,CAC7C1lG,QAASioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,yCAAyC,CAAC,EAAE,EACvG2iO,UAAW,EACf,EACAM,WAAY,CACR/iO,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAACuN,WAAW,CACvCrmG,QAASioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,EACtF2iO,UAAW,EACf,EACA1iH,YAAa,CACT//G,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAACwN,YAAY,CACxCtmG,QAASioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,sBAAsB,CAAC,EAAE,EACpF2iO,UAAW,EACf,EACA/hH,YAAa,CACT1gH,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAACyN,YAAY,CACxCvmG,QAASyqP,EACTI,UAAW,EACf,EACAO,gBAAiB,CACbhjO,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAAC2N,gBAAgB,CAC5CzmG,QAASyqP,EACTI,UAAW,EACf,EACAQ,gBAAiB,CACbjjO,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAAC0N,gBAAgB,CAC5CxmG,QAASyqP,EACTI,UAAW,EACf,EACAS,oBAAqB,CACjBljO,KAAMywE,EAAAA,CAAeA,CAACC,KAAK,CAAC4N,qBAAqB,CACjD1mG,QAASioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,wBAAwB,CAAC,EAAE,EACtF2iO,UAAW,EACf,CACJ,EACA/3O,EAAMy4O,iBAAiB,CAAG,CAAC,EAE3Bz4O,EAAM04O,eAAe,CAAG,WACpB,IAAMzvP,EAAS,CACXiC,IAAK,SACL6lC,OAAQ,GACRthC,SAAU,KACNq0H,EACK60H,gBAAgB,CAAC,WACjBluP,IAAI,CAAC,KACFuV,EAAMggM,aAAa,EACvB,GACC1wM,KAAK,CAAC6lB,QAAQ4C,IAAI,CAC3B,CACJ,EAEM6gO,EAAU,CAAE,GAAG3vP,CAAM,CAAEiC,IAAK,KAAM,EACxCkgC,EAAiBx6B,QAAQ,CAAC,UAAW,CAAC3H,EAAQ2vP,EAAQ,CAC1D,EAEA54O,EAAM21O,iBAAiB,CAAG,WACtBvqN,EAAiB95B,MAAM,CAAC,UAC5B,EAEA0O,EAAM64O,sBAAsB,CAAG,SAAU/tP,CAAM,EACvCA,SAAAA,EACIkV,EAAMy2O,OAAO,CAAC,EAAE,CAAC9kN,SAAS,CAAG,GAC7B3xB,EAAMy2O,OAAO,CAAC/hO,QAAQ,CAAC,sBAG3B1U,EAAMy2O,OAAO,CAAChiO,WAAW,CAAC,qBAElC,EAEAzU,EAAM84O,yBAAyB,CAAG,WAC9B1/C,CAAS,CAAC,EAAE,CAACvtM,mBAAmB,CAAC,QAASmU,EAAM+4O,uBAAuB,CAAE,GAC7E,EAEA/4O,EAAMg5O,6BAA6B,CAAG,WAClC5/C,CAAS,CAAC,EAAE,CAAC1tM,gBAAgB,CAAC,QAASsU,EAAM+4O,uBAAuB,CAAE,GAC1E,EAEA/4O,EAAM+4O,uBAAuB,CAAG,SAAU1lN,CAAC,EACvC,GAAI,CAACrzB,EAAMq2O,qBAAqB,CAAC,EAAE,CAAC5oP,QAAQ,CAAC,CAAC4lC,EAAEw8E,aAAa,EAAIx8E,CAAAA,EAAGzoC,MAAM,EAAG,CACzEoV,EAAM85L,WAAW,GACjB,IAAIm/C,EAAmBxtP,SAASyiC,cAAc,CAAC,yBACtB,QAArB+qN,GACA3oP,EAAS,WACL2oP,EAAiBvuP,KAAK,EAC1B,EAER,CACJ,EAOAsV,EAAMk5O,eAAe,CAAG,SAAUC,CAAU,CAAEC,CAAY,EAEtD,OAAQD,GACJ,IAAK,cACDn5O,EAAMq5O,UAAU,CAAGr5O,EAAMq2O,qBAAqB,CAC9Cr2O,EAAMmzO,wBAAwB,GAC9B,IAAImG,EAAS,CAACt5O,EAAMq5O,UAAU,CAACloN,QAAQ,CAAC,UACxCnxB,CAAAA,EAAMu5O,cAAc,CAAGD,EACnBA,IACAt5O,EAAMg5O,6BAA6B,GACnCh5O,EAAMiyO,8BAA8B,GACpCjyO,EAAMiyO,8BAA8B,CAAG3iN,EAAAA,CAAeA,CAACkqN,QAAQ,GAC/Dx5O,EAAM4U,KAAK,CAAC,eAEhB,KACJ,KAAK,kBACD5U,EAAMq5O,UAAU,CAAGr5O,EAAM0/F,qBAAqB,CAC9C,KACJ,SACI,MAAM,MAAU,0BACxB,CAGI1/F,EAAMq5O,UAAU,CAACloN,QAAQ,CAAC,WAC1BnxB,EAAMo2O,cAAc,CAACp2O,EAAMq5O,UAAU,EAErCr5O,EAAMy5O,aAAa,CAACz5O,EAAMq5O,UAAU,CAAED,EAE9C,EAQAp5O,EAAMy5O,aAAa,CAAG,SAAUJ,CAAU,CAAED,CAAY,EACpDp5O,EAAM62O,gBAAgB,CAACniO,QAAQ,CAAC,WAChC2kO,EAAW3kO,QAAQ,CAAC,WAEpBuZ,WAAW,WACPorN,EAAW3kO,QAAQ,CAAClB,GAEhB4lO,IACAp5O,EAAM05O,MAAM,CAAGvkO,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,QACvDluB,EAAM05O,MAAM,CAAChlO,QAAQ,CAAC,sBAE1B1U,EAAM42O,gBAAgB,CAACliO,QAAQ,CAAClB,GAChCxT,EAAM25O,YAAY,CAACN,EACvB,EAAG,IAEHr5O,EAAM64O,sBAAsB,CAAC,OAAQQ,GAGjCr5O,EAAM45O,iBAAiB,EAAIP,IAAer5O,EAAMq2O,qBAAqB,CACrEr2O,EAAMo2O,cAAc,CAACp2O,EAAM0/F,qBAAqB,EAG3C1/F,EAAM45O,iBAAiB,EAAIP,IAAer5O,EAAM0/F,qBAAqB,EAC1E1/F,EAAMo2O,cAAc,CAACp2O,EAAMq2O,qBAAqB,CAAE,IAGtDr2O,EAAM45O,iBAAiB,CAAG,EAC9B,EAOA55O,EAAMo2O,cAAc,CAAG,SAAUiD,CAAU,CAAEQ,CAAQ,EACvB,OAAtB75O,EAAM8oJ,WAAW,EAAauwF,CAAU,CAAC,EAAE,GAAKr5O,EAAM85O,YAAY,GAClE95O,EAAM0oJ,gBAAgB,CAACh4B,UAAU,CAAC1wH,EAAM8oJ,WAAW,EACnD9oJ,EAAM8oJ,WAAW,CAAG,MAGpBuwF,CAAU,CAAC,EAAE,GAAKr5O,EAAMq2O,qBAAqB,CAAC,EAAE,EAChDr2O,CAAAA,EAAMu5O,cAAc,CAAG,EAAI,EAG/Bj2C,EAAkBD,8BAA8B,GAE5Cg2C,EAAWloN,QAAQ,CAAC,wBACpBnxB,EAAMa,UAAU,CAAC,4BACjBb,EAAMiyO,8BAA8B,IAInCjyO,EAAM05O,MAAM,EACb15O,CAAAA,EAAM05O,MAAM,CAAGvkO,QAAQjoB,OAAO,CAACzB,SAASyiC,cAAc,CAAC,OAAM,EAEjEluB,EAAM05O,MAAM,CAACjlO,WAAW,CAAC,qBACzB4kO,EAAW5kO,WAAW,CAACjB,GAEvBxT,EAAM84O,yBAAyB,GAC/B94O,EAAM21O,iBAAiB,GAEvB1nN,WAAW,WACPorN,EAAW5kO,WAAW,CAAC,WAClBzU,EAAM45O,iBAAiB,GACxB55O,EAAM62O,gBAAgB,CAACpiO,WAAW,CAAC,WACnCzU,EAAM42O,gBAAgB,CAACniO,WAAW,CAACjB,IAEvCxT,EAAM64O,sBAAsB,CAAC,SAAUQ,EAC3C,EAAG,KAECA,IAAer5O,EAAMq2O,qBAAqB,EAC1Cr2O,EAAMmzO,wBAAwB,GAElCnzO,EAAM45O,iBAAiB,CAAG,GAC1B55O,EAAM+5O,kBAAkB,GAEnBF,GACD75O,EAAMg6O,eAAe,EAE7B,EAEAh6O,EAAM25O,YAAY,CAAG,SAAUN,CAAU,CAAEF,CAAU,EACjDlrN,WAAW,WACHorN,IAAer5O,EAAMq2O,qBAAqB,EAC1Cr2O,EAAMq2O,qBAAqB,CAAC,EAAE,CAAC3rP,KAAK,EAE5C,EAAG,IACP,EAEAsV,EAAMyjI,UAAU,CAAG,EACnBzjI,EAAMsyO,kBAAkB,CAAG,SAAU6G,CAAU,CAAEc,CAAU,CAAE73C,CAAgB,CAAExqE,CAAY,EAEvF,GAAIx2H,KAAKq4C,GAAG,GAAKz5C,EAAMyjI,UAAU,CAAG,IAChC,MAGJzjI,CAAAA,EAAM85O,YAAY,CAAG5sP,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,CAE/E,IAAM8kO,EAA6BhtP,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,qCAAqC,CAAC,EAAE,QAEzGpV,EAAM8oJ,WAAW,EACjB9oJ,CAAAA,EAAM8oJ,WAAW,CAAG9oJ,EAAM0oJ,gBAAgB,CAACz4B,OAAO,CAC9CjwH,EAAM85O,YAAY,CAClB,CAAC95O,EAAMkiM,eAAe,CAAEliM,EAAMmiM,cAAc,CAAC,CAC7C+3C,EAA0B,EAIlC,IAAMlnO,EAAShT,EAAM0/F,qBAAqB,CAACvuE,QAAQ,CAAC3d,GAChD2mO,EAAgBn6O,EAAMgyO,mBAAmB,CAAC1mP,MAAM,CAAG,EAOvD,GALK0nB,GACDhT,EAAM04O,eAAe,GAIrB,CAAC1lO,GAAWA,GAAUmmO,IAAen5O,EAAMgyO,mBAAmB,CAACmI,EAAc,CAAC7kO,IAAI,CAAG,CACrF,IAmBI8kO,EAAUtoN,EAnBV5vB,EAAQlC,EAAM43O,MAAM,CAAC19N,KAAK,CAAC,CAAE5E,KAAM6jO,CAAW,EAAE,CAAC,EAAE,CAqBvD,OApBIj3O,GAASA,EAAM41O,eAAe,GAC9B93O,EAAMmzO,wBAAwB,GAC9BgH,EAAgBn6O,EAAMgyO,mBAAmB,CAAC1mP,MAAM,CAAG,EACnD0U,EAAM+5O,kBAAkB,GACxB/5O,EAAMg6O,eAAe,IAGrBG,CAAAA,KAAAA,GAAwBn6O,EAAMgyO,mBAAmB,CAACmI,EAAc,CAAC7kO,IAAI,GAAK6jO,CAAS,IAEnFn5O,EAAMgyO,mBAAmB,CAACjiP,IAAI,CAAC,CAAEulB,KAAM6jO,EAAYvhH,aAAcA,EAAcy7G,oBAAqB/jN,EAAAA,CAAeA,CAACkqN,QAAQ,EAAG,GAC/Hx5O,EAAMq6O,kBAAkB,GACxBr6O,EAAMs6O,iBAAiB,CAACnB,IAE5Bn5O,EAAMu6O,kBAAkB,CACpBv6O,EAAMgyO,mBAAmB,CAAC1mP,MAAM,CAAG,EAC7B0U,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,gBACrCuN,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,iBAIvC0mP,GACJ,KAAKpzJ,EAAAA,CAAeA,CAACC,KAAK,CAAC6M,OAAO,CAE9BunJ,CADAA,EAAWp6O,EAAMgG,IAAI,CAAC,GAAI,EACjBo8L,gBAAgB,CAAGA,EAC5BtwK,EAAO,4DACP9xB,EAAM+2O,2BAA2B,CAAChlN,KAAK,GAEvC/xB,EAAM+2O,2BAA2B,CAACzkN,MAAM,CAAC1T,EAASkT,GAAMsoN,IACxDp6O,EAAM43O,MAAM,CAAC5yG,OAAO,CAAC93I,OAAO,CAAGioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,cAAc,CAAC,EAAE,EAClG,KACJ,MAAK2wE,EAAAA,CAAeA,CAACC,KAAK,CAAC+M,WAAW,CAElCqnJ,CADAA,EAAWp6O,EAAMgG,IAAI,CAAC,GAAI,EACjBw0O,kBAAkB,CAAGP,EAC9BG,EAASK,eAAe,CAAGzoP,EAAqBS,SAAS,CAAC,qDAC1Dq/B,EAAO,CAAC,oIAAoI,EAAE9xB,EAAM8yO,eAAe,CAAC,uEAAuE,CAAC,CAC5O9yO,EAAM82O,8BAA8B,CAAC/kN,KAAK,GAE1C/xB,EAAM82O,8BAA8B,CAACxkN,MAAM,CAAC1T,EAASkT,GAAMsoN,IAC3Dp6O,EAAM43O,MAAM,CAACxwL,KAAK,CAACl6D,OAAO,CAAGioB,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,cAAc,CAAC,EAAE,EAChG,KAEJ,MAAK2wE,EAAAA,CAAeA,CAACC,KAAK,CAACgN,UAAU,CACrC,KAAKjN,EAAAA,CAAeA,CAACC,KAAK,CAACiN,cAAc,CACzC,KAAKlN,EAAAA,CAAeA,CAACC,KAAK,CAACkN,cAAc,CACzC,KAAKnN,EAAAA,CAAeA,CAACC,KAAK,CAACoN,gBAAgB,CAC3C,KAAKrN,EAAAA,CAAeA,CAACC,KAAK,CAACmN,aAAa,CACxC,KAAKpN,EAAAA,CAAeA,CAACC,KAAK,CAACqN,uBAAuB,CAE9C+mJ,CADAA,EAAWp6O,EAAMgG,IAAI,CAAC,GAAI,EACjBu0O,kBAAkB,CAAGv6O,EAAMu6O,kBAAkB,CACtDH,EAAS/6C,iBAAiB,CAAGr/L,EAAMq/L,iBAAiB,CACpD+6C,EAAS3d,eAAe,CAAGz8N,EAAMy8N,eAAe,CAChD2d,EAASl/H,QAAQ,CAAGl7G,EAAM7Q,IAAI,CAAC+rH,QAAQ,CACvCk/H,EAASrkP,OAAO,CAAGiK,EAAM7Q,IAAI,CAAC4G,OAAO,CACrCqkP,EAASnkP,YAAY,CAAGI,EAAaJ,YAAY,CAEjD67B,EAAO,CAAC,+DAA+D,EAAEqnN,EAAW,qBAAqB,CAAC,CAE1Gn5O,EAAMg3O,oCAAoC,CAACjlN,KAAK,GAEhD/xB,EAAMg3O,oCAAoC,CAAC1kN,MAAM,CAAC1T,EAASkT,GAAMsoN,IAEjE,IAAIM,EAAUvlO,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,uBAAuB,CAAC,EAAE,CAC1FpV,CAAAA,EAAM43O,MAAM,CAACK,UAAU,CAAC/qP,OAAO,CAAGwtP,EAClC16O,EAAM43O,MAAM,CAACM,gBAAgB,CAAChrP,OAAO,CAAGwtP,EACxC16O,EAAM43O,MAAM,CAACI,OAAO,CAAC9qP,OAAO,CAAGwtP,EAC/B16O,EAAM43O,MAAM,CAAC//O,QAAQ,CAAC3K,OAAO,CAAGwtP,EAChC16O,EAAM43O,MAAM,CAACrjC,QAAQ,CAACrnN,OAAO,CAAGwtP,EAChC16O,EAAM43O,MAAM,CAACn2J,IAAI,CAACv0F,OAAO,CAAGwtP,EAC5B,KAEJ,MAAK30J,EAAAA,CAAeA,CAACC,KAAK,CAACC,mBAAmB,CAE1Cm0J,CADAA,EAAWp6O,EAAMgG,IAAI,CAAC,GAAI,EACjBvW,QAAQ,CAAGuQ,EAAM7Q,IAAI,CAACM,QAAQ,CACvC2qP,EAAShvO,IAAI,CAAGpL,EAAM7Q,IAAI,CAACic,IAAI,CAC/BgvO,EAASn+O,EAAE,CAAG+D,EAAM7Q,IAAI,CAAC8M,EAAE,CAC3Bm+O,EAASl0J,IAAI,CAAGlmF,EAAM7Q,IAAI,CAAC+2F,IAAI,CAC/Bk0J,EAASn2J,UAAU,CAAGjkF,EAAM7Q,IAAI,CAAC80F,UAAU,CAC3Cm2J,EAASjkO,mBAAmB,CAAGnW,EAAM7Q,IAAI,CAACgnB,mBAAmB,CAC7DikO,EAASj0J,wBAAwB,CAAGnmF,EAAM7Q,IAAI,CAACg3F,wBAAwB,CACvEi0J,EAASh0J,iBAAiB,CAAGpmF,EAAM7Q,IAAI,CAACi3F,iBAAiB,CACzDg0J,EAAShkO,qBAAqB,CAAGpW,EAAM7Q,IAAI,CAACinB,qBAAqB,CACjE0b,EACI,6HAGJ9xB,EAAMi3O,uCAAuC,CAAC3kN,MAAM,CAAC1T,EAASkT,GAAMsoN,IACpEp6O,EAAM43O,MAAM,CAACtkD,kBAAkB,CAACpmM,OAAO,CAAGioB,QAAQjoB,OAAO,CACrDA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,gCAAgC,CAAC,EAAE,EAEzE,KACJ,MAAK2wE,EAAAA,CAAeA,CAACC,KAAK,CAACsN,wBAAwB,CAE/C8mJ,CADAA,EAAWp6O,EAAMgG,IAAI,CAAC,GAAI,EACjB20O,aAAa,CAAG36O,EAAM7Q,IAAI,CAACwrP,aAAa,CACjDP,EAAS3qP,QAAQ,CAAGuQ,EAAM7Q,IAAI,CAACM,QAAQ,CACvC2qP,EAASrkP,OAAO,CAAGiK,EAAM7Q,IAAI,CAAC4G,OAAO,CACrCqkP,EAASO,aAAa,CAACtwP,KAAK,CAAG,CAC3BS,OAAQkV,EAAMggM,aAAa,CAACv3M,IAAI,CAACuX,EAAO,GAAO,IAC/C/K,MAAO+K,EAAMu6O,kBAAkB,EAKnC,IAAIK,EAAiBh8N,EAFrBkT,EACI,yJACgCsoN,GACpCp6O,EAAMk3O,+BAA+B,CAACnlN,KAAK,GAE3C/xB,EAAMk3O,+BAA+B,CAAC5kN,MAAM,CAACsoN,GAC7C56O,EAAM43O,MAAM,CAACO,kBAAkB,CAACjrP,OAAO,CAAG0tP,EAC1C,KACJ,MAAK70J,EAAAA,CAAeA,CAACC,KAAK,CAAC4M,iBAAiB,CAExCwnJ,CADAA,EAAWp6O,EAAMgG,IAAI,CAAC,GAAI,EACjB7W,IAAI,CAAG6Q,EAAM7Q,IAAI,CAACuoI,SAAS,CACpC0iH,EAASrkP,OAAO,CAAGiK,EAAM7Q,IAAI,CAAC4G,OAAO,CAQrC,IAAI6kP,EAAiBh8N,EAPrBkT,EAAO,CAAC;;;;;;gCAMR,CAAC,EACmCsoN,GACpCp6O,EAAMo3O,4BAA4B,CAACrlN,KAAK,GAExC/xB,EAAMo3O,4BAA4B,CAAC9kN,MAAM,CAACsoN,GAC1C56O,EAAM43O,MAAM,CAACQ,mBAAmB,CAAClrP,OAAO,CAAG0tP,EAC3C,KACJ,MAAK70J,EAAAA,CAAeA,CAACC,KAAK,CAACuN,WAAW,CAElC6mJ,CADAA,EAAWp6O,EAAMgG,IAAI,CAAC,GAAI,EACjBk+G,SAAS,CAAGlkH,EAAM7Q,IAAI,CAAC2wM,aAAa,CAC7Cs6C,EAASl2H,SAAS,CAAC75H,KAAK,CAAG2V,EAAMggM,aAAa,CAACv3M,IAAI,CAACuX,GAapD,IAAI46O,EAAiBh8N,EARrBkT,EACI,6BAJe9xB,CAAAA,KAA0B/R,IAA1B+R,EAAM7Q,IAAI,CAAC60H,UAAU,EAAwBhkH,EAAM7Q,IAAI,CAAC60H,UAAU,EAMjF,uBALoBhkH,CAAAA,KAA+B/R,IAA/B+R,EAAM7Q,IAAI,CAAC80H,eAAe,EAAwBjkH,EAAM7Q,IAAI,CAAC80H,eAAe,EAGhG,2GAOgCm2H,GACpCp6O,EAAMm3O,0BAA0B,CAACplN,KAAK,GAEtC/xB,EAAMm3O,0BAA0B,CAAC7kN,MAAM,CAACsoN,GACxC56O,EAAM43O,MAAM,CAACS,UAAU,CAACnrP,OAAO,CAAG0tP,EAClC,KACJ,MAAK70J,EAAAA,CAAeA,CAACC,KAAK,CAACwN,YAAY,CAEnC4mJ,CADAA,EAAWp6O,EAAMgG,IAAI,CAAC,GAAI,EACjBu+N,SAAS,CAAG,CACjBC,YAAaxkO,EAAMggM,aAAa,CAACv3M,IAAI,CAACuX,GACtC66O,iBAAkB76O,EAAM85L,WAAW,CAACrxM,IAAI,CAACuX,GACzC7K,MAAO6K,EAAMu6O,kBAAkB,EAGnCH,EAASrkP,OAAO,CAAGiK,EAAM7Q,IAAI,CAAC4G,OAAO,CACrCqkP,EAASl/H,QAAQ,CAAGl7G,EAAM7Q,IAAI,CAAC+rH,QAAQ,CACvCk/H,EAAShiH,gBAAgB,CAAGp4H,EAAM7Q,IAAI,CAACipI,gBAAgB,CACvDgiH,EAASnW,aAAa,CAAG,GACzBmW,EAASziH,eAAe,CAAG33H,EAAM7Q,IAAI,CAACwoI,eAAe,CACrDyiH,EAASp4J,eAAe,CAAGhiF,EAAM7Q,IAAI,CAAC6yF,eAAe,CACrDo4J,EAASrkH,aAAa,CAAG/1H,EAAM7Q,IAAI,CAAC4mI,aAAa,CAYjD,IAAI6kH,EAAiBh8N,EAVrBkT,EAAO,CAAC;;;;;;;;oEAQ4B,CAAC,EAEDsoN,GACpC,IAAMU,EAAmBV,EAEzBQ,EAAen0N,EAAE,CAAC,WAAY,KAC1Bq0N,EAAiBx0O,QAAQ,EAC7B,GACAtG,EAAMq3O,2BAA2B,CAACtlN,KAAK,GAEvC/xB,EAAMq3O,2BAA2B,CAAC/kN,MAAM,CAACsoN,GACzC56O,EAAM43O,MAAM,CAACviH,WAAW,CAACnoI,OAAO,CAAG0tP,EACnC56O,EAAMy4O,iBAAiB,CAACU,EAAW,CAAG2B,EACtC,KACJ,MAAK/0J,EAAAA,CAAeA,CAACC,KAAK,CAAC0N,gBAAgB,CAC3C,KAAK3N,EAAAA,CAAeA,CAACC,KAAK,CAAC2N,gBAAgB,CAC3C,KAAK5N,EAAAA,CAAeA,CAACC,KAAK,CAACyN,YAAY,CAEnC2mJ,CADAA,EAAWp6O,EAAMgG,IAAI,CAAC,GAAI,EACjBu+N,SAAS,CAAG,CACjBz5O,OAAQkV,EAAMggM,aAAa,CAACv3M,IAAI,CAACuX,GACjC7K,MAAO6K,EAAMu6O,kBAAkB,EAGnCH,EAASh9O,SAAS,CAAG4C,EAAM7Q,IAAI,CAAC+rH,QAAQ,CACxCk/H,EAAS/K,SAAS,CAAGrvO,EAAM7Q,IAAI,CAAC+S,KAAK,CACrCk4O,EAAS1iH,SAAS,CAAG13H,EAAM7Q,IAAI,CAACuoI,SAAS,CACzC0iH,EAASrkP,OAAO,CAAGiK,EAAM7Q,IAAI,CAAC4G,OAAO,CACrCqkP,EAASnkP,YAAY,CAAGI,EAAaJ,YAAY,CACjDmkP,EAASzuC,aAAa,CAAGnrM,EAAWmrM,aAAa,CACjDyuC,EAASnW,aAAa,CAAG,GACzBmW,EAASziH,eAAe,CAAG33H,EAAM7Q,IAAI,CAACwoI,eAAe,CAarD,IAAMojH,EAAqBn8N,EAX3BkT,EAAO,CAAC;;;;;;;;;mEAS2B,CAAC,EAEMsoN,GAC1Cp6O,EAAMs3O,2BAA2B,CAACvlN,KAAK,GAEvC/xB,EAAMs3O,2BAA2B,CAAChlN,MAAM,CAACyoN,GAEzC/6O,EAAM43O,MAAM,CAAC5hH,WAAW,CAAC9oI,OAAO,CAAG6tP,EACnC/6O,EAAM43O,MAAM,CAACU,eAAe,CAACprP,OAAO,CAAG6tP,EACvC/6O,EAAM43O,MAAM,CAACW,eAAe,CAACrrP,OAAO,CAAG6tP,EAEvC,IAAMC,EAAwBZ,CAC9Bp6O,CAAAA,EAAMy4O,iBAAiB,CAACU,EAAW,CAAG6B,EAEtCD,EAAmBt0N,EAAE,CAAC,WAAY,KAC9Bu0N,EAAsB10O,QAAQ,EAClC,GACA,KACJ,MAAKy/E,EAAAA,CAAeA,CAACC,KAAK,CAAC4N,qBAAqB,CAE5CwmJ,CADAA,EAAWp6O,EAAMgG,IAAI,CAAC,GAAI,EACjBjQ,OAAO,CAAGiK,EAAM7Q,IAAI,CAAC4G,OAAO,CACrCqkP,EAAS7V,SAAS,CAAG,CACjBz5O,OAAQkV,EAAMggM,aAAa,CAACv3M,IAAI,CAACuX,GACjC7K,MAAO6K,EAAMu6O,kBAAkB,EAInC,IAAMU,EAAkBr8N,EADxBkT,EAAO,qIACgCsoN,GACvCp6O,EAAMu3O,mCAAmC,CAACxlN,KAAK,GAE/C/xB,EAAMu3O,mCAAmC,CAACjlN,MAAM,CAAC2oN,GACjDj7O,EAAM43O,MAAM,CAACY,mBAAmB,CAACtrP,OAAO,CAAG+tP,EAE3C,IAAMC,EAA2Bd,CACjCp6O,CAAAA,EAAMy4O,iBAAiB,CAACU,EAAW,CAAG+B,EAEtCD,EAAgBx0N,EAAE,CAAC,WAAY,KAC3By0N,EAAyB50O,QAAQ,EACrC,EAER,CACAwrB,EAAO,KACPsoN,EAAW,KAEPpnO,EACA1iB,EAAS,WACL0P,EAAMm7O,oBAAoB,CAAChC,EAC/B,IAGAn5O,EAAMk5O,eAAe,CAAC,kBAAmB,IACzC5oP,EAAS,WACL0P,EAAMm7O,oBAAoB,CAAChC,EAC/B,IAEJn5O,EAAM25O,YAAY,CAAC35O,EAAM0/F,qBAAqB,CAAEy5I,EACpD,MACIn5O,EAAM85L,WAAW,EAErB95L,CAAAA,EAAMyjI,UAAU,CAAGriI,KAAKq4C,GAAG,EAC/B,EAEAz5C,EAAMo7O,gBAAgB,CAAG,SAAUjC,CAAU,EAGzC,IAAK,IAFDr0N,EACAh0B,EAAOY,OAAOZ,IAAI,CAACkP,EAAM43O,MAAM,EAC1BzpP,EAAI,EAAGC,EAAI0C,EAAKxF,MAAM,CAAE6C,EAAIC,EAAGD,IAGpC,GAAI22B,CAFJA,EAAO9kB,EAAM43O,MAAM,CAAC9mP,CAAI,CAAC3C,EAAE,CAAC,EAEnBmnB,IAAI,GAAK6jO,EACd,OAAOr0N,CAGnB,EAEA9kB,EAAMs6O,iBAAiB,CAAG,SAAUe,CAAe,EAC/C,IAAK,GAAI,CAACn+C,EAAWo+C,EAAW,GAAI5pP,OAAO0oH,OAAO,CAACp6G,EAAMy4O,iBAAiB,EACnD,OAAf6C,GACAA,CAAAA,EAAWrX,aAAa,CAAG/mC,IAAcm+C,CAAc,CAGnE,EAEAr7O,EAAMm7O,oBAAoB,CAAG,SAAUhC,CAAU,CAAEoC,CAAkB,EACjE,IAAIz2N,EAAO,KACLx5B,EAAS0U,EAAMgyO,mBAAmB,CAAC1mP,MAAM,CAAG,EAC9C0nB,EAAS,CAAE9lB,QAAS,IAAK,EACvB4D,EAAOY,OAAOZ,IAAI,CAACkP,EAAM43O,MAAM,EACjC4D,EAAiB,GAErB,IAAK,IAAIrtP,EAAI,EAAGC,EAAI0C,EAAKxF,MAAM,CAAE6C,EAAIC,EAAGD,IAGf,OAAjB22B,CAFJA,EAAO9kB,EAAM43O,MAAM,CAAC9mP,CAAI,CAAC3C,EAAE,CAAC,EAEnBjB,OAAO,GACR43B,EAAKxP,IAAI,GAAK6jO,GACdnmO,EAAS8R,EAETA,EAAK53B,OAAO,CAACwnB,QAAQ,CAAClB,GACtBgoO,EAAiB,GACb12N,EAAK53B,OAAO,CAACikC,QAAQ,CAACqmN,IACtB1yN,EAAK53B,OAAO,CAACunB,WAAW,CAAC+iO,GAIzBlsP,GAAU,GAAKw5B,EAAKxP,IAAI,GAAKtV,EAAMgyO,mBAAmB,CAAC1mP,EAAS,EAAE,CAACgqB,IAAI,EAAI,CAACimO,GAC5Ez2N,EAAK53B,OAAO,CAACwnB,QAAQ,CAAC+iO,IAEnB3yN,EAAK53B,OAAO,GAAK8lB,EAAO9lB,OAAO,EAAI43B,EAAK53B,OAAO,CAACikC,QAAQ,CAAC3d,KAChEsR,EAAK53B,OAAO,CAACunB,WAAW,CAACjB,GACzBsR,EAAK53B,OAAO,CAACunB,WAAW,CAACgjO,IAGzBnsP,GAAU,GAAKw5B,EAAKxP,IAAI,GAAKtV,EAAMgyO,mBAAmB,CAAC1mP,EAAS,EAAE,CAACgqB,IAAI,EACvEwP,EAAK53B,OAAO,CAACwnB,QAAQ,CAAC8iO,IAI9BgE,GACA13H,EAA4B60H,gBAAgB,CAAC,2BAA4BQ,EAEjF,EAEAn5O,EAAMy7O,iBAAiB,CAAG,SAAUtC,CAAU,EAI1C,IAAK,IAHDr0N,EACAgwJ,EAAW90K,EAAMgyO,mBAAmB,CAAC1mP,MAAM,CAAG,EAC9CwF,EAAOY,OAAOZ,IAAI,CAACkP,EAAM43O,MAAM,EAC1BzpP,EAAI,EAAGC,EAAI0C,EAAKxF,MAAM,CAAE6C,EAAIC,EAAGD,IAGhC22B,CAFJA,EAAO9kB,EAAM43O,MAAM,CAAC9mP,CAAI,CAAC3C,EAAE,CAAC,EAEnBmnB,IAAI,GAAK6jO,EACdr0N,EAAK53B,OAAO,CAACunB,WAAW,CAACjB,GAClBsR,EAAKxP,IAAI,GAAKtV,EAAMgyO,mBAAmB,CAACl9D,EAAS,CAACx/J,IAAI,EAC7DwP,EAAK53B,OAAO,CAACunB,WAAW,CAAC+iO,EAGrC,EAEAx3O,EAAM+5O,kBAAkB,CAAG,WAGvB,IAAK,IAFDj1N,EACAh0B,EAAOY,OAAOZ,IAAI,CAACkP,EAAM43O,MAAM,EAC1BzpP,EAAI,EAAGC,EAAI0C,EAAKxF,MAAM,CAAE6C,EAAIC,EAAGD,IAGf,OAAjB22B,CAFJA,EAAO9kB,EAAM43O,MAAM,CAAC9mP,CAAI,CAAC3C,EAAE,CAAC,EAEnBjB,OAAO,GACR43B,EAAK53B,OAAO,CAACikC,QAAQ,CAAC3d,GACtBsR,EAAK53B,OAAO,CAACunB,WAAW,CAACjB,GAClBsR,EAAK53B,OAAO,CAACikC,QAAQ,CAACqmN,IAC7B1yN,EAAK53B,OAAO,CAACunB,WAAW,CAAC+iO,GAGzB1yN,EAAK53B,OAAO,CAACikC,QAAQ,CAACsmN,IACtB3yN,EAAK53B,OAAO,CAACunB,WAAW,CAACgjO,GAIzC,EAEAz3O,EAAMg6O,eAAe,CAAG,WAGpB,IAAK,IAFDl1N,EACAh0B,EAAOY,OAAOZ,IAAI,CAACkP,EAAM43O,MAAM,EAC1BzpP,EAAI,EAAGC,EAAI0C,EAAKxF,MAAM,CAAE6C,EAAIC,EAAGD,IAIf,OAAjB22B,CAHJA,EAAO9kB,EAAM43O,MAAM,CAAC9mP,CAAI,CAAC3C,EAAE,CAAC,EAGnBjB,OAAO,EAAa43B,CAAmB,IAAnBA,EAAKizN,SAAS,GACI9pP,KAAAA,IAAvC+R,EAAMy4O,iBAAiB,CAAC3zN,EAAKxP,IAAI,CAAC,EAClCtV,CAAAA,EAAMy4O,iBAAiB,CAAC3zN,EAAKxP,IAAI,CAAC,CAAG,IAAG,EAG5CwP,EAAK53B,OAAO,CAACoE,MAAM,GACnBwzB,EAAK53B,OAAO,CAAG,KAG3B,EAEA8S,EAAMggM,aAAa,CAAG,SAAU07C,CAAS,CAAE3+C,CAAe,MAGlD76L,EAFJlC,EAAM0/F,qBAAqB,CAACjrF,WAAW,CAAC,oCACxC,IAAMknO,EAAmB37O,EAAMgyO,mBAAmB,CAAC52J,GAAG,GAOtD,GALyBntF,KAAAA,IAArB0tP,IACAA,EAAiBtI,mBAAmB,GACpCnxO,EAAQlC,EAAMo7O,gBAAgB,CAACO,EAAiBrmO,IAAI,GAGpDpT,KAAUjU,IAAViU,EAAqB,CACrBlC,EAAM85L,WAAW,CAACiD,GAClB,MACJ,CAEI76L,EAAM61O,SAAS,EACf71O,EAAMhV,OAAO,CAACoE,MAAM,GAExB,IAAMhG,EAAS0U,EAAMgyO,mBAAmB,CAAC1mP,MAAM,CAQ/C,GALIowP,IACA17O,EAAM7Q,IAAI,CAAG,KACb6Q,EAAMy8N,eAAe,CAAG,CAAC,GAGzBnxO,EAAS,EAAG,CACZ,IAAM00M,EAAgBhgM,EAAMgyO,mBAAmB,CAAC1mP,EAAS,EAAE,CAC3D0U,EAAMs6O,iBAAiB,CAACt6C,EAAc1qL,IAAI,EAC1CtV,EAAMm7O,oBAAoB,CAACn7C,EAAc1qL,IAAI,CAAE,IACF,YAAzC,OAAOqmO,EAAiB/jH,YAAY,EACpC+jH,EAAiB/jH,YAAY,EAErC,MACI53H,EAAM85L,WAAW,CAACiD,EAAiB4+C,EAAiB/jH,YAAY,CAExE,EAEA53H,EAAM47O,gBAAgB,CAAG,KACrB,IAAIhkH,CACA53H,CAAAA,EAAMgyO,mBAAmB,CAAC1mP,MAAM,CAAG,GACnCssI,CAAAA,EAAe53H,EAAMgyO,mBAAmB,CAAC,EAAE,CAACp6G,YAAY,EAE5D53H,EAAM85L,WAAW,CAAC,GAAMliE,EAC5B,EAEA53H,EAAM85L,WAAW,CAAG,SAAU+hD,CAAa,CAAEjkH,CAAY,EACrD53H,EAAM0/F,qBAAqB,CAACjrF,WAAW,CAAC,oCACxC,IAAI9lB,EAAUm1H,EAA4B60H,gBAAgB,CAAC,UAC3D34O,CAAAA,EAAMkgM,YAAY,CAAG,GAGrBvxM,EACKlE,IAAI,CAAC,KACFuV,EAAM87O,oBAAoB,CAACD,EAAejkH,EAC9C,GACCtoI,KAAK,CAAC,SAAUm5B,CAAK,EACQ,OAAtBzoB,EAAM8oJ,WAAW,EACjB9oJ,CAAAA,EAAM8oJ,WAAW,CAAG9oJ,EAAM0oJ,gBAAgB,CAACz4B,OAAO,CAACjwH,EAAM85O,YAAY,CAAE,CAAC95O,EAAMkiM,eAAe,CAAEliM,EAAMmiM,cAAc,CAAC,EAE5H,EACR,EAGAniM,EAAM4G,GAAG,CAAC,qBAAsB5G,EAAM85L,WAAW,EAEjD95L,EAAM87O,oBAAoB,CAAG,SAAUD,CAAa,MAAEjkH,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAe,IAC7D53H,CAAAA,EAAMigM,6BAA6B,EAAI,CAAC47C,GACxC77O,EAAMigM,6BAA6B,GAGnCjgM,EAAMu5O,cAAc,GACpBv5O,EAAMo2O,cAAc,CAACp2O,EAAMq2O,qBAAqB,EAChDr2O,EAAMu5O,cAAc,CAAG,IAEvBv5O,EAAM0/F,qBAAqB,CAACvuE,QAAQ,CAAC3d,IACrCxT,EAAMo2O,cAAc,CAACp2O,EAAM0/F,qBAAqB,EAGpD1/F,EAAM42O,gBAAgB,CAACniO,WAAW,CAACjB,GACnCxT,EAAM+5O,kBAAkB,GACxB/5O,EAAMg6O,eAAe,GACrBh6O,EAAM21O,iBAAiB,GAEK,YAAxB,OAAO/9G,GACPA,IAGkC,YAAlC,OAAO53H,EAAMgxB,gBAAgB,EAC7BhxB,EAAMgxB,gBAAgB,GAG1BhxB,EAAMmzO,wBAAwB,EAClC,EAEAnzO,EAAM+7O,aAAa,CAAG,WAClB,IAAIxgP,EAAMyE,EAAMyxO,UAAU,CAAGzxO,EAAMyxO,UAAU,CAAG,IAChD3uO,EAAU6G,IAAI,CAACpO,EACnB,EAEAyE,EAAMw2O,kBAAkB,CAAG,SAAU5mM,CAAI,EACrC5vC,EAAMuxO,YAAY,CAACrpP,IAAI,CAAC07I,OAAO,CAAG0tG,EAAiB0K,UAAU,CAACh8O,EAAMuxO,YAAY,CAACrpP,IAAI,CAAE0nD,GACvF5vC,EAAMuxO,YAAY,CAACqC,QAAQ,CAAChwG,OAAO,CAAG0tG,EAAiB0K,UAAU,CAACh8O,EAAMuxO,YAAY,CAACqC,QAAQ,CAAEhkM,EACnG,EAEA5vC,EAAMq6O,kBAAkB,CAAG,KACvB/qN,EAAAA,CAAeA,CAACz/B,GAAG,CACf,CACI,CACIiB,KAAM,CAACy+B,EAAAA,CAAIA,CAACC,OAAO,CAAE,IAAI,CACzB//B,SAAU,IACNgjP,CAAAA,EAAAA,EAAAA,CAAAA,EACIhnP,SAASijH,aAAa,CACtBp/E,EAAAA,CAAeA,CAACojN,kBAAkB,GAAG9oG,IAAI,CAAC,CAAC+oG,EAAQC,IAAWD,EAAOhjN,WAAW,CAACkjN,aAAa,CAACD,EAAOjjN,WAAW,IAEzHA,YAAa3vB,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,6BACtD,EACH,CACDuN,EAAMhO,oBAAoB,CAACS,SAAS,CAAC,2CAE7C,EAGA+N,EAAWoG,GAAG,CAAC,yBAA0B,SAAUtc,CAAK,CAAE6E,CAAI,EAkB1D,GAjBA6Q,EAAM7Q,IAAI,CAAGA,EACTA,KAAoBlB,IAApBkB,EAAKwjB,UAAU,CACf3S,EAAMy8N,eAAe,CAAGttO,EAAKwjB,UAAU,CAEvC3S,EAAMy8N,eAAe,CAAG,CAAC,EAGzBz8N,EAAM4uI,yBAAyB,EAAI5uI,EAAM4uI,yBAAyB,CAACtjJ,MAAM,GACpE0U,EAAMy8N,eAAe,CAAC7tF,yBAAyB,EAChD5uI,CAAAA,EAAMy8N,eAAe,CAAC7tF,yBAAyB,CAAG,EAAE,EAExD5uI,EAAMy8N,eAAe,CAAC7tF,yBAAyB,CAAG5uI,EAAMy8N,eAAe,CAAC7tF,yBAAyB,CAAC7oH,MAAM,CACpG/lB,EAAM4uI,yBAAyB,EAEnC5uI,EAAMy8N,eAAe,CAAC7tF,yBAAyB,CAAG5uI,EAAMy8N,eAAe,CAAC7tF,yBAAyB,CAAC7D,QAAQ,IAG1G57I,aAAAA,EAAK+S,KAAK,CAAiB,CAC3BlC,EAAMsyO,kBAAkB,CAACnjP,EAAK+S,KAAK,CAAE,KAAM,KAAM/S,EAAKyoI,YAAY,EAClE,MACJ,CAQA53H,EAAMsyO,kBAAkB,CAACnjP,EAAK+S,KAAK,CAAE,KAAM,KANtB,sCAAI7Q,EAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,CAAI,CAAJA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CACrB2O,EAAMigM,6BAA6B,GACF,YAA7B,OAAO9wM,EAAKyoI,YAAY,EACxBzoI,EAAKyoI,YAAY,CAACnwE,KAAK,CAAC,KAAMp2D,EAEtC,GAEA2O,EAAM4U,KAAK,CAAC,gBAAiBzlB,EACjC,GAEAqR,EAAWoG,GAAG,CAAC,4BAA6B,SAAUtc,CAAK,CAAE6E,CAAI,EAC7D6Q,EAAMsyO,kBAAkB,CAAC,UAAW,GAAInjP,EAC5C,GAEAqR,EAAWoG,GAAG,CAAC,0BAA2B,SAAUtc,CAAK,CAAE2vP,CAAU,EACjEj6O,EAAMsyO,kBAAkB,CAAC,cAAe2H,EAC5C,GAEAz5O,EAAWoG,GAAG,CAAC,0BAA2B,SAAUtc,CAAK,CAAE6E,CAAI,EAC3D6Q,EAAMo2O,cAAc,CAACp2O,EAAM0/F,qBAAqB,CACpD,GAEAl/F,EAAWoG,GAAG,CAAC,+BAAgC,SAAUtc,CAAK,CAAE6E,CAAI,EAChE6Q,EAAM87O,oBAAoB,CAAC97O,EAAM0/F,qBAAqB,CAC1D,GAEAl/F,EAAWoG,GAAG,CAAC,uBAAwB,WACnCkvL,EAAoBM,qBAAqB,EAC7C,GAEA51L,EAAWoG,GAAG,CAAC,sBAAuB,SAAUtc,CAAK,CAAE6E,CAAI,EACnDA,CAAS,IAATA,EACA4T,EAAMwD,QAAQ,CACV,CACIvG,MAAOA,EACP0G,YAAa5G,EAAgB6G,yBAAyB,CAAG,8CAC7D,EACA,IAGJrW,EAAS,WACLyS,EAAMwD,QAAQ,CACV,CACIvG,MAAOA,EACP0G,YAAa5G,EAAgB6G,yBAAyB,CAAG,8CAC7D,EACA,GAER,EAAG,IAEX,GAGAnG,EAAWoG,GAAG,CAAC,wBAAyB,SAAUtc,CAAK,CAAEixC,CAAY,EACjE81M,EAAmB/1M,qBAAqB,CAACC,EAC7C,GACA/6B,EAAWoG,GAAG,CAAC,yBAA0B,SAAUtc,CAAK,CAAEixC,CAAY,CAAES,CAAgB,CAAEC,CAAW,EACjGo1M,EAAmBt1M,sBAAsB,CAACR,EAAcS,EAAkBC,EAC9E,GACAz7B,EAAWoG,GAAG,CAAC,0BAA2B,WACtCyqO,EAAmBl1M,uBAAuB,EAC9C,GACA37B,EAAWoG,GAAG,CAAC,2BAA4B,WACvCyqO,EAAmBj1M,wBAAwB,EAC/C,GACA57B,EAAWoG,GAAG,CAAC,oBAAqB,WAChCyqO,EAAmBh1M,iBAAiB,EACxC,GACA77B,EAAWoG,GAAG,CAAC,+BAAgC,SAAUtc,CAAK,CAAEixC,CAAY,EACxE81M,EAAmB50M,4BAA4B,CAAClB,EACpD,GAEA/6B,EAAWoG,GAAG,CAAC,+BAAgC,SAAUtc,CAAK,CAAEixC,CAAY,EACxE81M,EAAmB30M,4BAA4B,CAACnB,EACpD,GAEAv7B,EAAM4G,GAAG,CAAC,oBAAqB,SAAUtc,CAAK,CAAEwuD,CAAI,CAAEgwD,CAAO,EACzB,KAA5B9oG,EAAM45O,iBAAiB,EACvB55O,EAAM85L,WAAW,CAAC95L,EAAM0/F,qBAAqB,CAErD,GAEA1/F,EAAM4G,GAAG,CAAC,eAAgB,SAAUtc,CAAK,CAAEs+C,CAAG,EAC1C5oC,EAAM60O,UAAU,CAAGjsM,EAAIgH,IAAI,CAACl0C,MAAM,CAClCsE,EAAMw2O,kBAAkB,CAAC5tM,EAAIgH,IAAI,CACrC,GAEA5vC,EAAM4G,GAAG,CAAC,aAAc,SAAUtc,CAAK,CAAEqqP,CAAS,CAAElzL,CAAK,CAAE7R,CAAI,EAC3D5vC,EAAM00O,UAAU,CAACC,EAAWlzL,EAAO7R,EACvC,GAEA5vC,EAAM4G,GAAG,CAAC,sBAAuB5G,EAAMq6O,kBAAkB,EAEzDr6O,EAAMw1O,aAAa,CAAC,CAAEC,eAAgB,EAAK,GAE3Cz1O,EAAMi8O,wBAAwB,CAAGp8O,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,yBAC5G,CACJ,CACJ,EACH,C,0CE1mDGu1O,EAAuB,SAAUt4G,CAAO,CAAEu4G,CAAY,CAAEviP,CAAO,CAAEiwI,CAAK,EACtE,IAAI,CAACjG,OAAO,CAAGA,EACf,IAAI,CAACu4G,YAAY,CAAGA,GAAgB,KACpC,IAAI,CAACviP,OAAO,CAAGA,GAAW,KAC1B,IAAI,CAACiwI,KAAK,CAAGA,GAAS,IAC1B,EAEAv7I,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,mBAAoB,WACnC,MAAO,CACHq5N,cAAe,SAAUx4G,CAAO,CAAEu4G,CAAY,CAAEviP,CAAO,CAAEiwI,CAAK,EAC1D,OAAO,IAAIqyG,EAAqBt4G,EAASu4G,EAAcviP,EAASiwI,EACpE,EAEAmyG,WAAY,SAAUK,CAAO,CAAEzzM,CAAG,EAC9B,GAAIyzM,OAAAA,EAAQF,YAAY,CAAW,CAG/B,IAAK,IADDxuP,EADAmD,EAAOY,OAAOZ,IAAI,CAAC83C,GAEdz6C,EAAI,EAAGC,EAAIiuP,EAAQF,YAAY,CAAC7wP,MAAM,CAAE6C,EAAIC,EAAGD,IAGpD,GAAIR,KAFJA,CAAAA,EAAQmD,EAAK/C,OAAO,CAACsuP,EAAQF,YAAY,CAAChuP,EAAE,IAExBy6C,CAAqB,IAArBA,CAAG,CAAC93C,CAAI,CAACnD,EAAM,CAAC,CAChC,MAAO,GAGf,MAAO,EACX,CACA,OAAO0uP,EAAQz4G,OAAO,EAG1Br2I,OAAQ,SAAU8uP,CAAO,CAAEzzM,CAAG,EAC1B,IAAM2jG,EAAkB,EAAE,CAE1B,GAAI8vG,OAAAA,EAAQziP,OAAO,CACf,IAAK,IAAIzL,EAAI,EAAGA,EAAIkuP,EAAQziP,OAAO,CAACtO,MAAM,CAAE6C,IAAK,CAC7C,IAAI22B,EAAOu3N,EAAQziP,OAAO,CAACzL,EAAE,MACJ,IAAdy6C,CAAG,CAAC9jB,EAAK,EAAoB8jB,OAAAA,CAAG,CAAC9jB,EAAK,EAC7CynH,EAAgBx8I,IAAI,CAAC64C,CAAG,CAAC9jB,EAAK,CAEtC,KACG,CAEH,IAAIh0B,EAAOY,OAAOZ,IAAI,CAAC83C,GACvB,IAAK,IAAIz6C,EAAI,EAAGA,EAAI2C,EAAKxF,MAAM,CAAE6C,IACR,OAAjBy6C,CAAG,CAAC93C,CAAI,CAAC3C,EAAE,CAAC,EACZo+I,EAAgBx8I,IAAI,CAAC64C,CAAG,CAAC93C,CAAI,CAAC3C,EAAE,CAAC,CAG7C,CACA,OAAOo+I,CACX,EACA3C,KAAM,SAAUyyG,CAAO,CAAEC,CAAM,CAAEprK,CAAQ,EACrC,GAAImrK,OAAAA,EAAQxyG,KAAK,CAAW,CACxB,IAAI0yG,EAAa,GACbC,EAAiB,GACjBlxP,EAASgxP,EAAOhxP,MAAM,CAAG,EAE7BgxP,EAAO1yG,IAAI,CAAC,SAAUp/I,CAAK,CAAEiyP,CAAS,EAYlC,OAXAF,EAAaF,EAAQxyG,KAAK,CAAC97I,OAAO,CAACvD,CAAK,CAAC0mF,EAAS,EAClDsrK,EAAiBH,EAAQxyG,KAAK,CAAC97I,OAAO,CAAC0uP,CAAS,CAACvrK,EAAS,EAGvC,KAAfqrK,GACAA,CAAAA,EAAajxP,CAAK,EAEC,KAAnBkxP,GACAA,CAAAA,EAAiBlxP,CAAK,EAGnBixP,EAAaC,CACxB,EACJ,CACJ,CACJ,CACJ,E,mCC5EA,SAASxvB,EAAS79N,CAAI,EAClB,IAAI,CAACgG,KAAK,CAAGhG,EAAKgG,KAAK,CACvB,IAAI,CAACunP,UAAU,CAAGvtP,EAAKutP,UAAU,CACjC,IAAI,CAAC5xP,MAAM,CAAGqE,EAAKrE,MAAM,CACzB,IAAI,CAAC0K,QAAQ,CAAGrG,EAAKqG,QAAQ,C,2CCCjC,OAAMmnP,UAAqC5qP,EAAAA,CAAWA,CAClDrD,aAAc,CACV,KAAK,EACT,CACJ,CAWAiuP,EAA6BnuP,OAAO,CAAG,EAAE,CACzCF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,+BAVuB,CACxCC,SAAU,CACNqpP,WAAY,IACZ1yI,WAAY,GAChB,EACAv2G,SChBW,uVDiBXC,WAAY+oP,CAChB,E,qDEXA,SAAS/0E,EAAqB9/K,CAAO,EACjC,MAAO,CACH0/K,uBAAwB,SAAU5pI,CAAO,CAAE0pI,CAAgB,CAAEu1E,CAAe,CAAEC,CAAc,CAAEC,CAAe,EACzG,OAAO,IAAIC,EAAqBp/M,EAAS0pI,EAAkBu1E,EAAiBC,EAAgBC,EAChG,EACA31E,aAAc,SAAUxpI,CAAO,CAAEvzC,CAAK,CAAE2pH,CAAQ,CAAElpH,CAAM,CAAE0lD,CAAU,CAAEw0C,CAAI,CAAEm9H,CAAM,CAAE7zL,CAAO,CAAE2uN,CAAe,EACxG,IAAIC,EAAY/6B,GAAUr6N,UAAAA,EAAQq1P,cAAc,CAACh7B,EAAQ,KAAmB,uCAAyC,GACrH,OAAO,IAAIi7B,EAAWx/M,EAASvzC,EAAO2pH,EAAUlpH,EAAQ0lD,EAAYw0C,EAAMm9H,EAAQ+6B,EAAW5uN,EAAS2uN,EAC1G,EACAI,2BAA4B,SAAUC,CAAQ,CAAEC,CAAiB,EAC7D,OAAO,IAAIC,EAA2BF,EAAUC,EACpD,EACA7oK,cAAe,SAAU+oK,CAAc,CAAEC,CAAyB,EAC9D,OAAO,IAAIC,EAAcF,EAAgBC,EAC7C,CACJ,CACJ,CAoBA,SAASN,EAAW9tF,CAAU,CAAEjlK,CAAK,CAAE2pH,CAAQ,CAAElpH,CAAM,CAAE0lD,CAAU,CAAEw0C,CAAI,CAAEm9H,CAAM,CAAE+6B,CAAS,CAAE5uN,CAAO,CAAE2uN,CAAe,EAClH,IAAI,CAAC3tF,UAAU,CAAGA,GAAc,GAChC,IAAI,CAACjlK,KAAK,CAAG,kBAAOA,GAAsBA,EAC1C,IAAI,CAAC2pH,QAAQ,CAAG,CAAC90E,MAAM80E,IAAaA,GAAY,EAAIA,EAAW,IAC/D,IAAI,CAAClpH,MAAM,CAAG,mBAAOA,EAAwBA,EAAS,KACtD,IAAI,CAAC0lD,UAAU,CAAG,mBAAOA,EAA4BA,EAAa,KAClE,IAAI,CAACw0C,IAAI,CAAGA,GAAQ,GACpB,IAAI,CAACm9H,MAAM,CAAGA,GAAU,GACxB,IAAI,CAAC+6B,SAAS,CAAGA,GAAa,GAC9B,IAAI,CAAC5uN,OAAO,CAAGA,GAAW,EAAE,CAC5B,IAAI,CAAC2uN,eAAe,CAAGA,GAAmB,EAC9C,CAUA,SAASD,EAAqBp/M,CAAO,CAAE0pI,CAAgB,CAAEu1E,CAAe,CAAEC,CAAc,CAAEC,CAAe,EACrG,IAAI,CAACn/M,OAAO,CAAGA,EACf,IAAI,CAAC0pI,gBAAgB,CAAGA,GAAoB1pI,EAC5C,IAAI,CAACi/M,eAAe,CAAGA,GAAmBj/M,EAC1C,IAAI,CAACk/M,cAAc,CAAGA,GAAkBl/M,EACxC,IAAI,CAACm/M,eAAe,CAAGA,GAAmB,IAC9C,CAcA,SAASS,EAA2BF,CAAQ,CAAEC,CAAiB,EAC3D,IAAI,CAACD,QAAQ,CAAGA,GAAY,EAAE,CAC9B,IAAI,CAACC,iBAAiB,CAAGA,GAAqBv8J,IAC9C,IAAI,CAAC48J,UAAU,CAAGN,EAASlwP,KAAK,CAAC,EAAG,IAAI,CAACmwP,iBAAiB,CAC9D,CA2CA,SAASI,EAAcF,CAAc,CAAEC,CAAyB,EAC5D,IAAI,CAACD,cAAc,CAAGA,EACtB,IAAI,CAACv0F,QAAQ,CAAG,EAAE,CAClB,IAAI,CAAC20F,gBAAgB,CAAG,IAAIL,EAA2B,EAAE,CAAEE,GAA6BC,EAAcD,yBAAyB,EAE/H,IAAI,CAAClsI,MAAM,CAAG,IAAID,EAAAA,CAAYA,CAAC,CAAC,mBAAmB,CACvD,C,SArIAjjH,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,uBAAwB6kJ,GAC3CA,EAAqBp5K,OAAO,CAAG,CAAC,UAAU,CAsE1C4uP,EAAWnzP,SAAS,CAACy7L,YAAY,CAAG,WAChC,OAAO,IAAI,CAAC1xE,QAAQ,EAAI,GAAK,IAAI,CAACA,QAAQ,GAAKhzB,GACnD,EAaAw8J,EAA2BvzP,SAAS,CAAC4F,GAAG,CAAG,SAAUi0B,CAAM,EACvD,IAAIg6N,EAAY,GAQhB,OAPA,IAAI,CAACR,QAAQ,CAACvtP,IAAI,CAAC+zB,GAEf,IAAI,CAAC85N,UAAU,CAACtyP,MAAM,EAAI,IAAI,CAACiyP,iBAAiB,GAChDO,EAAY,GACZ,IAAI,CAACF,UAAU,CAAC7tP,IAAI,CAAC+zB,IAGlBg6N,CACX,EAEAN,EAA2BvzP,SAAS,CAACqH,MAAM,CAAG,SAAUwyB,CAAM,EAC1D,IAAI,CAACw5N,QAAQ,CAAChsP,MAAM,CAACwyB,GACrB,IAAI,CAAC85N,UAAU,CAACtsP,MAAM,CAACwyB,EAC3B,EAEA05N,EAA2BvzP,SAAS,CAAC8zP,YAAY,CAAG,SAAUj6N,CAAM,EAChE,OAAO,IAAI,CAAC85N,UAAU,CAAC30M,IAAI,CAAC,SAAU+0M,CAAe,EACjD,OAAOA,IAAoBl6N,CAC/B,EACJ,EAKA05N,EAA2BvzP,SAAS,CAACg0P,cAAc,CAAG,WAClD,GAAI,IAAI,CAACL,UAAU,CAACtyP,MAAM,EAAI,IAAI,CAACiyP,iBAAiB,EAAI,IAAI,CAACK,UAAU,CAACtyP,MAAM,CAAG,IAAI,CAACgyP,QAAQ,CAAChyP,MAAM,CAAE,CACnG,IAAIw5B,EAAO,IAAI,CAACw4N,QAAQ,CAAC,IAAI,CAACM,UAAU,CAACtyP,MAAM,CAAC,CAEhD,OADA,IAAI,CAACsyP,UAAU,CAAC7tP,IAAI,CAAC+0B,GACdA,CACX,CAEA,OAAO,IACX,EAeA64N,EAAcD,yBAAyB,CAAG,EAE1CC,EAAc1zP,SAAS,CAAC0gN,SAAS,CAAG,SAAU7mL,CAAM,CAAE/zB,CAAI,EAStD,OARe,IAAI,CAAC8tP,gBAAgB,CAAChuP,GAAG,CAACi0B,EAAQ/zB,IAEjC,CAAC+zB,EAAO4hK,YAAY,IAChC,IAAI,CAACx8B,QAAQ,CAACn5J,IAAI,CAAC,IAAI,CAACmuP,iBAAiB,CAACp6N,IAG9C,IAAI,CAAC0tF,MAAM,CAAC1a,IAAI,CAAC,oBAEV,IAAI,EAMf6mJ,EAAc1zP,SAAS,CAACk0P,YAAY,CAAG,SAAUr6N,CAAM,EACnD,IAAI,CAAC+5N,gBAAgB,CAACvsP,MAAM,CAACwyB,GAE7B,IAAI,CAAC0tF,MAAM,CAAC1a,IAAI,CAAC,oBAEjB,IAAInpG,EAAQ,IAAI,CAACu7J,QAAQ,CAACj5I,SAAS,CAAC,SAAU6U,CAAI,EAC9C,OAAOA,EAAK55B,GAAG,GAAK44B,CACxB,EAEc,MAAVn2B,IAIJ,IAAI,CAAC8vP,cAAc,CAACl4O,MAAM,CAAC,IAAI,CAAC2jJ,QAAQ,CAACv7J,EAAM,CAACnD,KAAK,EACrD,IAAI,CAAC0+J,QAAQ,CAACl5J,MAAM,CAACrC,EAAO,GAChC,EAEAgwP,EAAc1zP,SAAS,CAACm0P,eAAe,CAAG,WAEtCd,IADmB,CAACO,gBAAgB,CAACD,UAAU,CAACxwP,KAAK,GAC5CR,OAAO,CAAC,IAAI,CAACuxP,YAAY,CAAC11P,IAAI,CAAC,IAAI,GAC5C,IAAI,CAACo1P,gBAAgB,CAACP,QAAQ,CAAChyP,MAAM,CAAG,CAC5C,EAEAqyP,EAAc1zP,SAAS,CAACo0P,WAAW,CAAG,WAClC,IAAIC,EAAiB,IAAI,CAACT,gBAAgB,CAACI,cAAc,EAElC,QAAnBK,GAA2BA,EAAe54D,YAAY,IAI1D,IAAI,CAACx8B,QAAQ,CAACn5J,IAAI,CAAC,IAAI,CAACmuP,iBAAiB,CAACI,GAC9C,EAOAX,EAAc1zP,SAAS,CAACi0P,iBAAiB,CAAG,SAAUp6N,CAAM,EACxD,IAAI6iI,EAAiB,IAAI,CAAC82F,cAAc,CAAC,IAAI,CAACjtM,UAAU,CAAC/nD,IAAI,CAAC,IAAI,CAAEq7B,GAASA,EAAOkwF,QAAQ,EAC5F,MAAO,CAAE9oH,IAAK44B,EAAQt5B,MAAOm8J,CAAe,CAChD,EAKAg3F,EAAc1zP,SAAS,CAACumD,UAAU,CAAG,SAAU1sB,CAAM,EAChB,YAA7B,OAAOA,EAAO0sB,UAAU,EACxB1sB,EAAO0sB,UAAU,GAGrB,IAAI,CAAC2tM,YAAY,CAACr6N,GAClB,IAAI,CAACu6N,WAAW,EACpB,C,iCCvMA,SAASE,IACL,MAAO,CACH5qP,SCZO,yuEDaPoM,SAAU,IACVC,MAAO,CACH2yI,QAAS,GACb,EACA/+I,WAAY,0BACZyM,aAAc,KACdC,iBAAkB,EACtB,CACJ,CAEA,SAASk+O,EAAwBxsP,CAAoB,CAAEnK,CAA2B,EAC9E,IAAI,CAACmK,oBAAoB,CAAGA,EAC5B,IAAI,CAACnK,2BAA2B,CAAGA,EACnC,IAAI,CAAC42P,sBAAsB,CAAG,IAAI,CAACC,YAAY,CAAC,IAAI,CAAC/rG,OAAO,CAACkrG,gBAAgB,CAACD,UAAU,CAACtyP,MAAM,EAE/F,IAAI,CAACqnJ,OAAO,CAACnhC,MAAM,CAAC/qF,EAAE,CAClB,mBACA,YACI,IAAI,CAACg4N,sBAAsB,CAAG,IAAI,CAACC,YAAY,CAAC,IAAI,CAAC/rG,OAAO,CAACkrG,gBAAgB,CAACD,UAAU,CAACtyP,MAAM,CACnG,GAAE7C,IAAI,CAAC,IAAI,EAEnB,CEPA,SAAS81P,EAAcjuP,CAAQ,CAAE8oM,CAAS,CAAEulD,CAAQ,CAAEj4E,CAAoB,EACtE,IAAI,CAAC0yB,SAAS,CAAGA,EACjB,IAAI,CAAC9oM,QAAQ,CAAGA,EAEhB,IAAI,CAACsuP,iBAAiB,CAAGl4E,EAAqBhyF,aAAa,CAACpkF,EAAU0wF,KACtE,IAAI,CAAC69J,aAAa,CAAGn4E,EAAqBhyF,aAAa,CAACpkF,GACxD,IAAI,CAACwuP,aAAa,CAAGp4E,EAAqBhyF,aAAa,CAACpkF,EAAU0wF,KAClE,IAAI3vF,EAAO,CAAEutP,kBAAmB,IAAI,CAACA,iBAAiB,CAAEC,cAAe,IAAI,CAACA,aAAa,CAAEC,cAAe,IAAI,CAACA,aAAa,CAE5H,KAAI,CAACvzE,gBAAgB,CAAGozE,EAAS3N,OAAO,CACpC,CAAC;;;;kBAIS,CAAC,CACX3/O,EACA,GACA,GACA,GAER,C,iBF3CA/C,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,gBAAiBu8O,GACtCA,EAAc/vP,OAAO,CAAG,EAAE,CAE1BF,EAAAA,CAAUA,CAACsF,UAAU,CAAC,0BAA2B4qP,GACjDA,EAAwBhwP,OAAO,CAAG,CAAC,uBAAwB,8BAA8B,CA4BzFgwP,EAAwBv0P,SAAS,CAACy0P,YAAY,CAAG,SAAUtqP,CAAK,SAC5D,EAAY,EACD,IAAI,CAACpC,oBAAoB,CAACS,SAAS,CAAC,oCAAqC,CAC5E2B,MAAOA,CACX,GAGG,IAAI,CAACpC,oBAAoB,CAACS,SAAS,CAAC,yCAA0C,CACjF2B,MAAOA,CACX,EACJ,EAEAoqP,EAAwBv0P,SAAS,CAAC80P,QAAQ,CAAG,SAAUz0P,CAAK,CAAEw5B,CAAM,EAC5Dx5B,EAAMS,OAAO,GAAK,IAAI,CAAClD,2BAA2B,CAACc,UAAU,CAACM,MAAM,EACpE,IAAI,CAAC0pJ,OAAO,CAACniG,UAAU,CAAC1sB,EAEhC,E,SE/CAx1B,EAAAA,CAAUA,CAACqI,QAAQ,CAAC,gBAEpB,WACI,IAAI,CAACu5H,SAAS,CAAG,KAEjB,IAAI,CAAC8uH,YAAY,CAAG,SAAU9xP,CAAO,EACjC,IAAI,CAACgjI,SAAS,CAAGhjI,CACrB,EAEA,IAAI,CAAC6J,IAAI,CAAG,CACR,aACA,WACA,YACA,uBACA,uBACA,UAAUyJ,CAAU,CAAElQ,CAAQ,CAAE8oM,CAAS,CAAE6lD,CAAoB,CAAEv4E,CAAoB,EAEjF,OAAO,IAAI63E,EAAcjuP,EAAU8oM,EADpB,IAAI6lD,EAAqBz+O,EAAY2U,QAAQjoB,OAAO,CAAC,IAAI,CAACgjI,SAAS,EAAG,IAC7Bw2C,EAC5D,GAAEj+K,IAAI,CAAC,IAAI,EACd,GAyBL81P,EAAct0P,SAAS,CAAC0gN,SAAS,CAAG,SAAU7mL,CAAM,EAEhD6uH,CADc7uH,EAAO4hK,YAAY,GAAK,IAAI,CAACk5D,iBAAiB,CAAG,IAAI,CAACC,aAAa,EACzEl0C,SAAS,CAAC7mL,EACtB,EAEAy6N,EAAct0P,SAAS,CAACi1P,eAAe,CAAG,SAAUp7N,CAAM,EACtD,IAAI,CAACg7N,aAAa,CAACn0C,SAAS,CAAC7mL,EACjC,EAEAy6N,EAAct0P,SAAS,CAACk0P,YAAY,CAAG,SAAUr6N,CAAM,EAC9CA,GAKL6uH,CADc7uH,EAAO4hK,YAAY,GAAK,IAAI,CAACk5D,iBAAiB,CAAG,IAAI,CAACC,aAAa,EACzEV,YAAY,CAACr6N,EACzB,EAEAy6N,EAAct0P,SAAS,CAACk1P,kBAAkB,CAAG,SAAUr7N,CAAM,EACpDA,GAIL,IAAI,CAACg7N,aAAa,CAACX,YAAY,CAACr6N,EACpC,EAEAy6N,EAAct0P,SAAS,CAACm1P,iBAAiB,CAAG,WACxC,IAAI,CAACR,iBAAiB,CAACR,eAAe,GACtC,IAAI,CAACS,aAAa,CAACT,eAAe,GAClC,IAAI,CAACU,aAAa,CAACV,eAAe,EACtC,EAEAG,EAAct0P,SAAS,CAAC+zD,IAAI,CAAG,WAC3B,IAAI,CAACutH,gBAAgB,CAAC,EAAE,CAAC11H,KAAK,CAAC+tF,OAAO,CAAG,MAC7C,EAEA26G,EAAct0P,SAAS,CAACioE,IAAI,CAAG,WAC3B,IAAI,CAACq5G,gBAAgB,CAAC,EAAE,CAAC11H,KAAK,CAAC+tF,OAAO,CAAG,OAC7C,EAEA26G,EAAct0P,SAAS,CAACo1P,UAAU,CAAG,WACjC,IAAIC,EAAa,IAAI,CAAClmD,SAAS,CAAC,EAAE,CAACl8K,aAAa,CAAC,cAC7CqiO,EAAc,IAAI,CAACnmD,SAAS,CAAC,EAAE,CAACl8K,aAAa,CAAC,+BAE9CoiO,EACA,IAAI,CAAC/zE,gBAAgB,CAAC,EAAE,CAAC11H,KAAK,CAACF,GAAG,CAAG2pM,EAAW9pM,qBAAqB,GAAGypD,MAAM,CAAG,KAC1EsgJ,EACP,IAAI,CAACh0E,gBAAgB,CAAC,EAAE,CAAC11H,KAAK,CAACF,GAAG,CAAG4pM,EAAY/pM,qBAAqB,GAAGypD,MAAM,CAAG,KACpC,KAAvC,IAAI,CAACssE,gBAAgB,CAAC,EAAE,CAAC11H,KAAK,CAACF,GAAG,EACzC,IAAI,CAAC6pM,aAAa,EAE1B,EAEAjB,EAAct0P,SAAS,CAACu1P,aAAa,CAAG,WACpC,IAAI,CAACj0E,gBAAgB,CAAC,EAAE,CAACx+K,eAAe,CAAC,QAC7C,EAEAwxP,EAAct0P,SAAS,CAAC8zB,YAAY,CAAG,SAAUvoB,CAAQ,EACrD,IAAMtI,EAAU,IAAI,CAACksM,SAAS,CAAC,EAAE,CAACl8K,aAAa,CAAC,CAAC,YAAY,EAAE1nB,EAAS,EAAE,CAAC,CAC3D,QAAZtI,GACAA,EAAQxC,KAAK,EAErB,C,6ECvBO,IAAM+0P,EAA2B/yE,EADvBE,CAAYA,EAAID,EAAAA,CAASA,EAAIE,EAAAA,CAC9C,CARA,MACIh9K,KAAM,CAAC,CACPyB,QAAS,CAAC,CACV+tD,SAAU,CAAC,CACf,EApFqE,MAGjE3wD,YAAYwhI,CAAS,CAAE,CACnB,IAAI,CAACwvH,UAAU,CAAGxvH,EAClB,IAAI,CAACyvH,gBAAgB,CAAG,IAAIvkN,IAE5B,IAAI,CAACwkN,kBAAkB,CAAG,IAAIC,eAAe,IAAI,CAACC,sBAAsB,CAACr3P,IAAI,CAAC,IAAI,GAClF,IAAI,CAACs3P,sBAAsB,CAAG,IAAIF,eAAe,IAAI,CAACG,yBAAyB,CAACv3P,IAAI,CAAC,IAAI,EAC7F,CAEAoH,IAAI3C,CAAO,CAAE,CACgB,IAAI,CAACyyP,gBAAgB,CAACviM,GAAG,CAAClwD,KAKhB,IAA/B,IAAI,CAACyyP,gBAAgB,CAACprP,IAAI,EAC1B,IAAI,CAACqrP,kBAAkB,CAACK,OAAO,CAAC,IAAI,CAACP,UAAU,EAGnD,IAAI,CAACC,gBAAgB,CAACzlM,GAAG,CAAChtD,EAAS,IACnC,IAAI,CAAC6yP,sBAAsB,CAACE,OAAO,CAAC/yP,GACxC,CAEAoE,OAAOpE,CAAO,CAAE,CACa,IAAI,CAACyyP,gBAAgB,CAACviM,GAAG,CAAClwD,KAKnDA,EAAQ2oD,KAAK,CAACqqM,cAAc,CAAC,OAC7B,IAAI,CAACP,gBAAgB,CAAC7mP,MAAM,CAAC5L,GAC7B,IAAI,CAAC6yP,sBAAsB,CAACI,SAAS,CAACjzP,GAEH,IAA/B,IAAI,CAACyyP,gBAAgB,CAACprP,IAAI,EAC1B,IAAI,CAACqrP,kBAAkB,CAACO,SAAS,CAAC,IAAI,CAACT,UAAU,EAGrD,IAAI,CAACM,yBAAyB,GAClC,CAEA3gM,SAAU,CACN,IAAI,CAACugM,kBAAkB,CAACQ,UAAU,GAClC,IAAI,CAACL,sBAAsB,CAACK,UAAU,EAC1C,CAEAN,uBAAuBp4N,CAAC,CAAE,CACtB,IAAK,GAAM,CAACx6B,EAASmzP,EAAgB,GAAI,IAAI,CAACV,gBAAgB,CAAE,CAG5D,GAAIW,CAAuB,GAFAnvK,CAAAA,WAAAA,iBAAiBjkF,GAASyvB,QAAQ,EAE3B,CAC9B,IAAI,CAACojO,sBAAsB,CAACI,SAAS,CAACjzP,GACtC,IAAI,CAACyyP,gBAAgB,CAACzlM,GAAG,CAAChtD,EAAS,IACnC,QACJ,CAEwB,KAApBmzP,IACA,IAAI,CAACN,sBAAsB,CAACE,OAAO,CAAC/yP,GACpC,IAAI,CAACyyP,gBAAgB,CAACzlM,GAAG,CAAChtD,EAAS,IAE3C,CAEA,IAAI,CAAC8yP,yBAAyB,EAClC,CAEAA,0BAA0Bt4N,CAAC,CAAE,CACzB,IAAI64N,EAAiB,EACrB,IAAK,GAAM,CAACrzP,EAASszP,EAAS,GAAI,IAAI,CAACb,gBAAgB,CAC9Ca,IAILtzP,EAAQ2oD,KAAK,CAACF,GAAG,CAAG,CAAC,EAAE4qM,EAAe,EAAE,CAAC,CACzCA,EAAiBrzP,EAAQumH,YAAY,CAAG8sI,EAEhD,CACJ,CC3EsE,OAEhEE,UAAkC1uP,EAAAA,CAAWA,CAC/CrD,YAAY01F,CAAQ,CAAE,CAClB,KAAK,GAEL,IAAI,CAACkxH,WAAW,CAAG,IAAImqC,EAAyBr7J,CAAQ,CAAC,EAAE,CAC/D,CAEAiyB,YAAa,CACT,IAAI,CAACi/F,WAAW,CAACj2J,OAAO,EAC5B,CACJ,CACAohM,EAA0BjyP,OAAO,CAAG,CAAC,WAAW,CAShDF,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,kBAPrB,WACI,MAAO,CACHjC,SAAU,IACVnM,WAAY6sP,CAChB,CACJ,E,0CCDAnyP,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,aAlBrB,WACI,MAAO,CACHjC,SAAU,IACV8gF,QAAS,oBACT3rE,KAAM,CAAClV,EAAO9S,EAAS6tB,EAAOs6L,KACF,OAApBA,IAIJA,EAAgBC,WAAW,CAACzlN,GAAG,CAAC3C,CAAO,CAAC,EAAE,EAE1CA,EAAQu5B,EAAE,CAAC,WAAY,KACnB4uL,EAAgBC,WAAW,CAAChkN,MAAM,CAACpE,CAAO,CAAC,EAAE,CACjD,GACJ,CACJ,CACJ,E,mDChB0C,OAEpCwzP,UAAmB3uP,EAAAA,CAAWA,CAChCrD,aAAc,CACV,KAAK,GAEL,IAAI,CAACu4B,KAAK,CAAG,CAAEhyB,MAAO,IAAI,CAACu5O,QAAQ,CAAEr7E,SAAU,GAAOjpD,WAAY,GAAOjuG,GAAI,IAAI,CAACA,EAAE,CACxF,CAEAu3H,SAAU,CACN,IAAI,CAACvsG,KAAK,CAAG,CAAEhyB,MAAO,IAAI,CAACu5O,QAAQ,CAAEr7E,SAAU,IAAI,CAACngJ,MAAM,CAAEk3F,WAAY,IAAI,CAACy2I,WAAW,CAAE1kP,GAAI,IAAI,CAACA,EAAE,EACrG,IAAI,CAAC2kP,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC55N,KAAK,EAEzB,IAAI,CAACjU,MAAM,EACX,IAAI,CAAC4tO,MAAM,CAACn9F,YAAY,CAAC,IAAI,CAACx8H,KAAK,CAE3C,CAEAkvF,WAAW+G,CAAO,CAAE,CACOjvH,KAAAA,IAAnBivH,EAAQlqG,MAAM,EAAkBkqG,EAAQlqG,MAAM,CAACiwI,YAAY,EAAI,CAAC/lC,EAAQlqG,MAAM,CAACqhH,aAAa,IAC5F,IAAI,CAACusH,MAAM,CAACn9F,YAAY,CAAC,IAAI,CAACx8H,KAAK,EAGXh5B,KAAAA,IAAxBivH,EAAQyjI,WAAW,EACnB,KAAI,CAAC15N,KAAK,CAACijF,UAAU,CAAGgT,EAAQyjI,WAAW,CAAC19F,YAAY,EAGnCh1J,KAAAA,IAArBivH,EAAQsxH,QAAQ,EAChB,KAAI,CAACvnN,KAAK,CAAChyB,KAAK,CAAG,IAAI,CAACu5O,QAAQ,CAExC,CAEAn4H,YAAa,CACT,IAAI,CAACuqI,MAAM,CAACE,SAAS,CAAC,IAAI,CAAC75N,KAAK,CACpC,CACJ,CAkBAy5N,EAAWlyP,OAAO,CAAG,EAAE,CACvBF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,aAjBK,CACtByM,SAAU,IACVukI,WAAY,GACZ3wI,SC3CW,iWD4CXC,WAAY8sP,EACZntP,SAAU,CACNyf,OAAQ,KACR2tO,YAAa,KACbnS,SAAU,IACVvyO,GAAI,GACR,EACA4kF,QAAS,CACL+/J,OAAQ,SACZ,CACJ,E,kGE/C+B,OAEzBG,UAAehvP,EAAAA,CAAWA,CAC5BrD,YAAY01F,CAAQ,CAAE9zF,CAAQ,CAAE0W,CAAM,CAAEnf,CAA2B,CAAEmK,CAAoB,CAAE,CACvF,KAAK,GAEL,IAAI,CAACm2K,SAAS,CAAG/jF,EACjB,IAAI,CAAC7zF,SAAS,CAAGD,EACjB,IAAI,CAACulH,OAAO,CAAG7uG,EACf,IAAI,CAACg6O,WAAW,CAAGn5P,EAA4Bc,UAAU,CACzD,IAAI,CAACwgB,qBAAqB,CAAGnX,EAC7B,IAAI,CAACivP,cAAc,CAAG,IAAI,CAAC94E,SAAS,CAAC,EAAE,CAACjrJ,aAAa,CAAC,yBACtD,IAAI,CAACukI,IAAI,CAAG,EAAE,CACd,IAAI,CAACz8D,IAAI,CAAGk8J,EAAAA,CACZ,KAAI,CAACC,WAAW,CAAG,EACnB,IAAI,CAACC,iBAAiB,CAAG,GACzB,IAAI,CAACC,iBAAiB,CAAG,GACzB,IAAI,CAACC,kBAAkB,CAAG,GAE1B,IAAI,CAACC,YAAY,CAAG,CAChBhiJ,KAAM,IAAI,CAACp2F,qBAAqB,CAAC1W,SAAS,CAAC,6BAC3Ci+G,MAAO,IAAI,CAACvnG,qBAAqB,CAAC1W,SAAS,CAAC,6BAChD,EAEA,IAAI,CAACiqH,QAAQ,CAAG,IAAI,CAAC8kI,0BAA0B,GAE/Cx6O,EAAOJ,GAAG,CAAC,iBAAkB,KACzB,IAAI,CAACivG,OAAO,CAACt8F,WAAW,CAAC,KACrB,IAAI,CAACkoO,kBAAkB,EAC3B,EACJ,EACJ,CAEAh4E,WAAY,CACuB,UAA3B,OAAO,IAAI,CAACi4E,UAAU,EAAiB,SAAI,CAACC,WAAW,EACvD,IAAI,CAACpxP,SAAS,CAAC,KACX,IAAI,CAACqxP,SAAS,EAClB,GAGJ,IAAI,CAAC/rI,OAAO,CAACt8F,WAAW,CAAC,KACrB,IAAI,CAACkoO,kBAAkB,GACvB,IAAI,CAACI,eAAe,EACxB,EACJ,CAEA1rI,WAAW+G,CAAO,CAAE,CACe,UAA3B,OAAO,IAAI,CAACwkI,UAAU,EAAiBxkI,KAAuBjvH,IAAvBivH,EAAQwkI,UAAU,EAAkB,SAAI,CAACC,WAAW,EAC3F,IAAI,CAACC,SAAS,EAEtB,CAEAvrI,YAAa,CACT,IAAI,CAACqG,QAAQ,CAAC0jI,UAAU,EAC5B,CAEA0B,OAAOC,CAAW,CAAE,CAChB,IAAMC,EAAS,IAAI,CAACf,cAAc,CAC5BjrO,EAAUgsO,EAAO30P,gBAAgB,CAAC,UAClC40P,EAAaD,EAAOxsM,qBAAqB,GAE/C,IAAK,IAAMi5D,KAAUz4F,EAAS,CAC1B,IAAMksO,EAAazzI,EAAOj5D,qBAAqB,GAC/C,GAAI,CAACusM,GAAeG,EAAW3iJ,IAAI,CAAG0iJ,EAAW1iJ,IAAI,EAAI2iJ,EAAWxxI,KAAK,EAAIuxI,EAAW1iJ,IAAI,CAAE,CAC1F,IAAMA,EAAOkP,IAAWz4F,CAAO,CAAC,EAAE,CAAG,CAACgsO,EAAOhwK,UAAU,CAAG3mC,KAAKC,KAAK,CAAC42M,EAAW3iJ,IAAI,CAAG0iJ,EAAW1iJ,IAAI,EACtGyiJ,EAAOG,QAAQ,CAAC,CAAE5iJ,KAAMA,CAAK,GAC7B,KACJ,CACA,GAAIwiJ,GAAeG,EAAW3iJ,IAAI,EAAI0iJ,EAAWvxI,KAAK,EAAIwxI,EAAWxxI,KAAK,CAAGuxI,EAAWvxI,KAAK,CAAE,CAC3F,IAAMnR,EAAOkP,IAAWz4F,CAAO,CAACA,EAAQ1qB,MAAM,CAAG,EAAE,CAAG02P,EAAOI,WAAW,CAAIJ,CAAAA,EAAOhwK,UAAU,CAAGgwK,EAAOr9J,WAAW,EAAIt5C,KAAKiyD,IAAI,CAAC4kJ,EAAWxxI,KAAK,CAAGuxI,EAAWvxI,KAAK,EACnKsxI,EAAOG,QAAQ,CAAC,CAAE5iJ,KAAMA,CAAK,GAC7B,KACJ,CACJ,CACJ,CAEA8iJ,WAAY,CACR,OAAO,IAAI,CAAC5gG,IAAI,CAGpBo/F,OAAOyB,CAAS,CAAE,CACd,IAAI,CAAC7gG,IAAI,CAAC1xJ,IAAI,CAACuyP,GACf,IAAI,CAACnB,WAAW,CAAG,EACnB,IAAI,CAACtrI,OAAO,CAACt8F,WAAW,CAAC,KACrB,IAAI,CAAC4nO,WAAW,GACS,IAArB,IAAI,CAACA,WAAW,EAChB,IAAI,CAACM,kBAAkB,EAE/B,EACJ,CAEAX,UAAUwB,CAAS,CAAE,CACjB,IAAM30P,EAAQ,IAAI,CAAC8zJ,IAAI,CAAC1zJ,OAAO,CAACu0P,EAClB,MAAV30P,GACA,IAAI,CAAC8zJ,IAAI,CAACzxJ,MAAM,CAACrC,EAAO,EAEhC,CAEA40P,aAAc,CACV,IAAI,CAAC9gG,IAAI,CAACn2J,MAAM,CAAG,CACvB,CAEAm4J,aAAalB,CAAS,CAAE,CACpB,IAAM50J,EAAQ,IAAI,CAAC8zJ,IAAI,CAAC1zJ,OAAO,CAACw0J,EAClB,MAAV50J,GACA,IAAI,CAAC8zJ,IAAI,CAAC70J,OAAO,CAAC,IACdZ,EAAImnK,QAAQ,CAAGnnK,IAAQu2J,CAC3B,GAGJ,IAAI,CAACigG,WAAW,CAAC,CACbjgG,UAAWA,CACf,GAEA,IAAI,CAAChyJ,SAAS,CAAC,KACX,IAAI,CAACsxP,eAAe,GAEW,KAA3B,IAAI,CAACT,iBAAiB,EAAazzP,KAAAA,IAGnC,IAAI,CAACszP,cAAc,CAACprM,KAAK,CAAC4sM,cAAc,CAAG,QAE3C,IAAI,CAACt6E,SAAS,CAAC,EAAE,CAACjrJ,aAAa,CAAC,CAAC,YAAY,EAAEqlI,EAAUtmJ,EAAE,CAAC,MAAM,CAAC,EAAEw7C,cAAc,CAAC,CAChFirM,OAAQ,SACRr1L,MAAO,QACX,GAEA,IAAI,CAAC4zL,cAAc,CAACprM,KAAK,CAAC4sM,cAAc,CAAG,SAEnD,EACJ,CAEAE,cAActvN,CAAC,CAAE,CACb,GAAIA,EAAEtoC,OAAO,GAAK,IAAI,CAACi2P,WAAW,CAAC13P,UAAU,EAAI+pC,EAAEtoC,OAAO,GAAK,IAAI,CAACi2P,WAAW,CAAC33P,SAAS,CAAE,CACvF,IAAIu5P,EAAmB,IAAI,CAACnhG,IAAI,CAACxxI,SAAS,CAAC,GAAS,CAAC,EAAEjkB,EAAIiQ,EAAE,CAAC,IAAI,CAAC,GAAKo3B,EAAEzoC,MAAM,CAACqR,EAAE,EAC/E4mP,EAAkBD,EAClB/yL,EAAYx8B,EAAEtoC,OAAO,GAAK,IAAI,CAACi2P,WAAW,CAAC13P,UAAU,CAAG,EAAI,GAEhE,IAAK,IAAI6E,EAAI,EAQT,EARgB,IAAI,CAACszJ,IAAI,CAACn2J,MAAM,GAChCs3P,CAAAA,GAAsC/yL,CAAQ,GACtB,IAAI,CAAC4xF,IAAI,CAACn2J,MAAM,EACpCs3P,CAAAA,EAAmB,GAEnBA,EAAmB,GACnBA,CAAAA,EAAmB,IAAI,CAACnhG,IAAI,CAACn2J,MAAM,CAAG,GAEtCu3P,IAAoBD,GARUz0P,IAAK,CAYvC,IAAM20P,EAAc,IAAI,CAACrhG,IAAI,CAACmhG,EAAiB,CAC/C,GAAI,CAACE,EAAY54I,UAAU,CAAE,CACzB,IAAI,CAACi+D,SAAS,CAAC,EAAE,CAACjrJ,aAAa,CAAC,CAAC,CAAC,EAAE4lO,EAAY7mP,EAAE,CAAC,IAAI,CAAC,EAAEvR,KAAK,GAC/D,KACJ,CACJ,CACJ,CACJ,CAEAk3P,WAAY,CACR,IAAI,CAACz5E,SAAS,CAAC,EAAE,CAACjrJ,aAAa,CAAC,CAAC,YAAY,EAAE,IAAI,CAACwkO,UAAU,CAAC,MAAM,CAAC,GAAGh3P,OAC7E,CAEA+2P,oBAAqB,CAIjB,IAAI,CAACL,iBAAiB,CAAG,IAAI,CAACH,cAAc,CAACmB,WAAW,CAAG,IAAI,CAACnB,cAAc,CAACt8J,WAAW,CADnE,CAE3B,CAEA68J,4BAA6B,CACzB,OAAO,IAAIuB,qBACP,IACI,IAAK,IAAMC,KAASC,EAAS,CACzB,IAAMC,EAAiBF,IAAAA,EAAMG,iBAAiB,CAC1CH,EAAMp4P,MAAM,GAAK,IAAI,CAACw4P,eAAe,EAAI,IAAI,CAAC/B,iBAAiB,GAAK6B,IACpE,IAAI,CAAC7B,iBAAiB,CAAG6B,EACzB,IAAI,CAACrtI,OAAO,CAACt8F,WAAW,IAExBypO,EAAMp4P,MAAM,GAAK,IAAI,CAACy4P,gBAAgB,EAAI,IAAI,CAAC/B,kBAAkB,GAAK4B,IACtE,IAAI,CAAC5B,kBAAkB,CAAG4B,EAC1B,IAAI,CAACrtI,OAAO,CAACt8F,WAAW,GAEhC,CACJ,EACA,CACI/J,KAAM,IAAI,CAACyxO,cAAc,CACzBqC,UAAW,CACf,EAER,CAEAzB,iBAAkB,CACd,IAAI,CAACnlI,QAAQ,CAAC0jI,UAAU,GAEpB,IAAI,CAAC3+F,IAAI,CAACn2J,MAAM,CAAG,IACnB,IAAI,CAAC83P,eAAe,CAAG,IAAI,CAACj7E,SAAS,CAAC,EAAE,CAACjrJ,aAAa,CAAC,CAAC,YAAY,EAAE,IAAI,CAACukI,IAAI,CAAC,EAAE,CAACxlJ,EAAE,CAAC,MAAM,CAAC,EAC7F,IAAI,CAAConP,gBAAgB,CAAG,IAAI,CAACl7E,SAAS,CAAC,EAAE,CAACjrJ,aAAa,CAAC,CAAC,YAAY,EAAE,IAAI,CAACukI,IAAI,CAAC,IAAI,CAACA,IAAI,CAACn2J,MAAM,CAAG,EAAE,CAAC2Q,EAAE,CAAC,MAAM,CAAC,EAEjH,IAAI,CAACygH,QAAQ,CAACujI,OAAO,CAAC,IAAI,CAACmD,eAAe,EAC1C,IAAI,CAAC1mI,QAAQ,CAACujI,OAAO,CAAC,IAAI,CAACoD,gBAAgB,EAEnD,CACJ,CAaAtC,EAAOvyP,OAAO,CAAG,CAAC,WAAY,WAAY,SAAU,8BAA+B,uBAAuB,CAC1GF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,SAZC,CAClByM,SAAU,IACVukI,WAAY,GACZ3wI,SCvNW,wtCDwNXC,WAAYmtP,EACZxtP,SAAU,CACNivP,YAAa,IACbd,WAAY,IAChB,CACJ,E,0CE1NApzP,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,aAAc,CAC7B,QACA,KACA,kBACA,SAAU3sB,CAAK,CAAEgM,CAAE,CAAEtC,CAAe,EAChC,SAAS88B,EAAYrhC,CAAG,CAAEzE,CAAM,EAC5BV,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAI2tB,EAAchnB,EAAGuI,KAAK,GAKtBhc,EAAU06B,EAJMhyB,GAAG,CAACkE,EAAK,CACzB+tB,QAASF,EAAYz6B,OAAO,CAC5BmI,OAAQA,CACZ,GACsBrM,IAAI,CACtB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOA,CACX,GAGJ,OADA56B,EAAQ66B,YAAY,CAAGJ,EAChBz6B,CACX,CAEA,SAASywC,EAAa7jC,CAAG,CAAEpM,CAAI,EAC3BiH,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAI2tB,EAAchnB,EAAGuI,KAAK,GAEtBhc,EAAU06B,EADMnyB,IAAI,CAACqE,EAAKpM,EAAM,CAAEm6B,QAASF,EAAYz6B,OAAO,GAC5ClE,IAAI,CACtB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOA,CACX,GAGJ,OADA56B,EAAQ66B,YAAY,CAAGJ,EAChBz6B,CACX,CAEA,MAAO,CACHwzJ,cAAe,SAAUvwB,CAAU,CAAE77H,CAAO,EACxC,OAAO6mC,EAAY,CAAC,EAAE98B,EAAgByC,YAAY,CAAC,iBAAiB,CAAC,CAAE,CAAEghP,gBAAiB3xH,EAAY77H,QAASA,CAAQ,EAC3H,EAEAytP,QAAS,WACL,OAAO5mN,EAAY98B,EAAgByC,YAAY,CAAG,cACtD,EAEAkhP,OAAQ,SAAU5nP,CAAQ,CAAEob,CAAI,EAK5B,OAAOmoB,EAAat/B,EAAgByC,YAAY,CAAG,aAJvC,CACR1G,SAAUA,EACVob,KAAMA,CACV,EAEJ,EAEAysO,UAAW,SAAU7nP,CAAQ,CAAEob,CAAI,EAK/B,OAAOmoB,EAAat/B,EAAgByC,YAAY,CAAG,gBAJvC,CACR1G,SAAUA,EACVob,KAAMA,CACV,EAEJ,CACJ,CACJ,EACH,C,8EC9DD3oB,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,SAAU,CAC3B,KACA,OACA,aACA,WACA,QACA,kBACA,aACA,SAAUI,CAAE,CAAEvC,CAAI,CAAEW,CAAU,CAAElQ,CAAQ,CAAE8F,CAAK,CAAE0J,CAAe,CAAEy/I,CAAU,EACxE,MAAO,CACH5rJ,SCjBG,8gCDkBHoM,SAAU,IACVC,MAAO,CACHnE,SAAU,aACVob,KAAM,SACN0sO,WAAY,cAChB,EACA/vP,WAAY,CACR,SACA,SAAUoT,CAAM,EACZA,EAAO48O,UAAU,CAAG,WAChBrkG,EAAWikG,OAAO,GAAG/4P,IAAI,CAAC,SAAU0M,CAAQ,EACxC6P,EAAO68O,gBAAgB,CAAG1sP,EAAShI,IAAI,CACvCgmB,QAAQvoB,OAAO,CAACoa,EAAO68O,gBAAgB,CAAE,SAAU1zN,CAAG,EAElDA,EAAI+nB,OAAO,CAAGp4C,EAAgB6G,yBAAyB,CAAG,iBAAoBwpB,CAAAA,CAAyB,GAAzBA,EAAI2zN,iBAAiB,CAAW,wBAA0B,SAAQ,CACpJ,EACJ,EACJ,EACA98O,EAAO48O,UAAU,GAEjB58O,EAAOhV,oBAAoB,CAAGwO,EAAWxO,oBAAoB,CAExDgV,EAAOiQ,IAAI,EACZjQ,CAAAA,EAAOiQ,IAAI,CAAG,EAAE,EAGpBjQ,EAAO+2H,QAAQ,CAAG,GACd/2H,EAAOnL,QAAQ,EAAImL,IAAAA,EAAOnL,QAAQ,CAACvQ,MAAM,GACzC8K,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjCrF,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,qCAAuCyE,EAAOnL,QAAQ,CAAC,EAAE,EAAEpR,IAAI,CAAC,SAAU0M,CAAQ,EACvH6P,EAAO+2H,QAAQ,CAAG5mI,EAAShI,IAAI,IAIvC6X,EAAOJ,GAAG,CAAC,2BAA4B,SAAUtc,CAAK,CAAE6E,CAAI,EACxD6X,EAAOy8O,MAAM,CAACt0P,EAAK4f,KAAK,CAC5B,GAEA/H,EAAOy8O,MAAM,CAAG,SAAUtzN,CAAG,EACzB,GAAKA,GAIL,IAAIjiC,EAAQ,OAAW,IAAK,KAG5B,GAAI,CAFJiiC,CAAAA,EAAMA,EAAI1wB,OAAO,CAACvR,EAAO,GAAE,GAEfiiC,EAAI7kC,MAAM,CAAG,EAAG,CAExB0b,EAAOnG,UAAU,CAAC,0BAClB,MACJ,CACA,IAAK,IAAI1S,EAAI,EAAGA,EAAI6Y,EAAOiQ,IAAI,CAAC3rB,MAAM,CAAE6C,IACpC,GAAI6Y,EAAOiQ,IAAI,CAAC9oB,EAAE,CAAC2T,WAAW,KAAOquB,EAAIruB,WAAW,GAAI,CAEpDkF,EAAOnG,UAAU,CAAC,0BAClB,MACJ,CAGJmG,EAAOiQ,IAAI,CAAClnB,IAAI,CAACogC,GACjBnpB,EAAO4N,KAAK,CAAC,WAAYub,GAIAliC,KAAAA,GAArB+Y,EAAO28O,UAAU,EACjBpkG,EAAWkkG,MAAM,CAACz8O,EAAOnL,QAAQ,CAAEmL,EAAOiQ,IAAI,EAIlDjQ,EAAOmpB,GAAG,CAAG,GAGbnpB,EAAOnG,UAAU,CAAC,0BAGlBvQ,EAAS,WACL0W,EAAOnG,UAAU,CAAC,aACtB,GACJ,EAEAmG,EAAO08O,SAAS,CAAG,SAAU/1P,CAAK,EAC9B,IAAIo2P,EAAa,CACbp2P,MAAOA,EACPwiC,IAAKnpB,EAAOiQ,IAAI,CAACtpB,EAAM,EAE3BqZ,EAAOiQ,IAAI,CAACjnB,MAAM,CAACrC,EAAO,GAC1BqZ,EAAO4N,KAAK,CAAC,aAAcmvO,GAIF91P,KAAAA,GAArB+Y,EAAO28O,UAAU,EAAiB38O,EAAOnL,QAAQ,EACjD0jJ,EAAWmkG,SAAS,CAAC18O,EAAOnL,QAAQ,CAAE,CAACkoP,EAAW5zN,GAAG,CAAC,EAI1D7/B,EAAS,WACL,IAAI0zP,EAAev4P,SAAS2pB,sBAAsB,CAAC,aAAa,CAAC,EAAE,CAC/D4uO,EACAA,EAAat5P,KAAK,GAElBsc,EAAOnG,UAAU,CAAC,aAE1B,EACJ,EAEAmG,EAAOJ,GAAG,CAAC,uBAAwB,WAC/BI,EAAOiQ,IAAI,CAAG,EAAE,GAGpBjQ,EAAOi9O,eAAe,CAAG,SAAU35P,CAAK,CAAEq8H,CAAI,EAC1C,IAAIu9H,EAAa55P,EAAMopC,KAAK,CAC5B1sB,EAAOmpB,GAAG,CAAGw2F,EACTu9H,CAAAA,KAAAA,GAAqBA,MAAAA,CAAiB,GAEtCl9O,EAAOy8O,MAAM,CAAC98H,EAEtB,CACJ,EACH,CACDzxG,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAM4G,GAAG,CAAC,gBAAiB,SAAUtc,CAAK,EACtC0V,EAAM4jP,UAAU,EACpB,EACJ,CACJ,CACJ,EACH,C,0KEnIM,OAAMO,UAA+B5jF,EAAAA,SAASA,CACjD,OAAcC,YAAyCC,EAAAA,CAAgB,CACtDC,WACAC,CAAAA,OAA8B,aAEnChjI,CAAkC,CAAEijI,CAAyB,CAAE,CACvE,KAAK,CAACjjI,GACN,IAAI,CAAC+iI,WAAW,CAAGG,CAAAA,EAAAA,EAAAA,SAAAA,IAEnB,IAAI,CAACF,OAAO,CAAG,CACXG,WAAY,CAACsjF,EAAAA,CAAcA,CAAEnjF,EAAAA,CAAgBA,CAAC,CAC9CC,gBAAiBN,EAAQ1zK,OAAO,CAChCi0K,OAAQC,EAAAA,CAAsBA,CAC9Bx/E,YAAa,IAAI,CAACjkD,KAAK,CAACikD,WAAW,CACnCy/E,gBAAiB,CAAEC,OAAQ,CAAEpB,OAAQ,IAAI,CAACviI,KAAK,CAACuiI,MAAO,CAAE,EACzDqB,aAAcC,EAAAA,CAClB,CACJ,CAEOjW,QAAuB,CAC1B,MACI,WAACkW,MAAAA,CAAIjhE,UAAU,0CACX,UAACihE,MAAAA,CAAIC,YAAU,yBAAyBlhE,UAAU,6BAA6BkR,IAAK,IAAI,CAACgvD,WAAW,GACpG,UAACiB,EAAAA,CAAUA,CAAVA,CACGvsK,UAAW,IAAI,CAACuoC,KAAK,CAACvoC,SAAS,CAC/BwsK,eAAgB,IAAI,CAACjkI,KAAK,CAACikI,cAAc,CACzCvuH,UAAW,IAAI,CAAC1V,KAAK,CAAC0V,SAAS,CAC/BmtD,UAAW,CAAC,8BAA8B,EAAE,IAAI,CAAC7iE,KAAK,CAAC6iE,SAAS,EAAI,GAAG,CAAC,CACxElyE,QAAS,IAAI,CAACqP,KAAK,CAACrP,OAAO,CAC3Bh6B,OAAQ,IAAI,CAACqsK,OAAO,CACpBnrK,SAAU,IAAI,CAACmoC,KAAK,CAACnoC,QAAQ,CAC7ButB,QAAS8+I,EAAAA,CAAgBA,CACzBh7I,SAAU,IAAI,CAAC8W,KAAK,CAAC9W,QAAQ,CAC7Bk5I,uBAAwB,IAAI,CAACpiI,KAAK,CAACoiI,sBAAsB,CACzDl3D,WAAY,IAAI,CAAC63D,WAAW,KAI5C,CACJ,C,eChDApyK,EAAAA,CAAUA,CAACgF,SAAS,CAChB,yBACA03I,CAAAA,EAAAA,EAAAA,aAAAA,ECG+FrtG,GAE3F,UAACmkI,EAAAA,CAAcA,CAAdA,CAAAA,SACG,UALyBqiF,EAKxBpiF,CACG3sK,UAAWuoC,EAAMvoC,SAAS,CAC1BwsK,eAAgBjkI,EAAMikI,cAAc,CACpCvuH,UAAW1V,EAAM0V,SAAS,CAC1BmtD,UAAW7iE,EAAM6iE,SAAS,CAC1BlyE,QAASqP,EAAMrP,OAAO,CACtB94B,SAAUmoC,EAAMnoC,QAAQ,CACxBqxB,SAAU8W,EAAM9W,QAAQ,CACxBk5I,uBAAwBpiI,EAAMoiI,sBAAsB,CACpDn+E,YAAajkD,EAAMikD,WAAW,CAC9Bs+E,OAAQviI,EAAMuiI,MAAM,KDhBkB,CAAC,YAAa,UAAW,WAAY,YAAa,iBAAkB,yBAA0B,WAAY,SAAU,cAAe,YAAY,G,yBEA9L,IAAMmkF,EAA0C,CACnD9wP,SAAU,CACN8/C,UAAW,IACX,GAAG4uH,EAAAA,CAA0B,EAEjCruK,WAAY66K,EAAAA,CAA2CA,CACvDn5J,KAAM,gCACN3hB,SCbW,iZDcf,EAEArF,EAAAA,CAAUA,CAACgF,SAAS,CAAC+wP,EAAwC/uO,IAAI,CAAE+uO,G,cEZvB,OAEtCC,UAAyBvyP,EAAAA,CAAWA,CACtCrD,aAAc,CACV,KAAK,GAEL,IAAI,CAACuD,iBAAiB,CAAG,KAAqBhE,IAArB,IAAI,CAACs2P,WAAW,EAAiB,IAAI,CAACA,WAAW,CAC1E,IAAI,CAACjyP,iBAAiB,CAAG,8BACzB,IAAI,CAACouJ,sBAAsB,CAAG,6BAC9B,IAAI,CAAC75H,QAAQ,CAAG,IAAI,CAAC29N,SAAS,CAAC/7P,IAAI,CAAC,IAAI,EACxC,IAAI,CAACwT,EAAE,CAAGq0H,CAAAA,EAAAA,EAAAA,CAAAA,IACV,IAAI,CAACq9B,UAAU,CAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC1xJ,EAAE,CAAC,CAAC,CAGxDuoP,UAAUl2N,CAAO,CAAE,CACf,IAAI,CAAC0lD,QAAQ,CAAC,CAAE1lD,QAASA,CAAQ,EACrC,CACJ,CAeAhgC,EAAAA,CAAUA,CAACgF,SAAS,CAAC,mBAbW,CAC5BK,SCxBW,4iCDyBXC,WAAY0wP,EACZ/wP,SAAU,CACN4nD,QAAS,IACT6nM,MAAO,IACPhvK,SAAU,IACVywK,mBAAoB,IACpBl/K,SAAU,KACVg/K,YAAa,IACjB,CACJ,E,iCE7BA,SAASG,IACL,IAAIC,EAAY,SAAUz3P,CAAO,CAAEgjI,CAAS,CAAE00H,CAAQ,CAAEC,CAAU,EAC9D,IAAI,CAAC33P,OAAO,CAAGA,EACf,IAAI,CAACgjI,SAAS,CAAGA,GAAa/6G,QAAQjoB,OAAO,CAACzB,SAASg1G,IAAI,EAC3D,IAAI,CAACmkJ,QAAQ,CAAGA,GAAY,KAC5B,IAAI,CAACC,UAAU,CAAGA,GAAc33P,EAChC,IAAI,CAAC4zB,MAAM,CAAG,GACd,IAAI,CAACgkO,OAAO,CAAG,IACf,IAAI,CAACl5P,MAAM,CAAG,IAClB,EA0FA,OAxFA+4P,EAAU16P,SAAS,CAAC86P,aAAa,CAAG,KACpCJ,EAAU16P,SAAS,CAAC+6P,QAAQ,CAAG,SAC/BL,EAAU16P,SAAS,CAACg7P,SAAS,CAAG,QAEhCN,EAAU16P,SAAS,CAACi7P,UAAU,CAAG,SAAUz1P,CAAQ,CAAE7D,CAAM,EACvD,IAAIu5P,EAAO,IAAI,MAGAl3P,IAAXrC,GAAwBA,CAAW,IAAXA,GACxB,IAAI,CAACsB,OAAO,CAACtB,MAAM,CAAC,IAAI,CAACq5P,SAAS,EAGtC,IAAI,CAACr5P,MAAM,CAAG,SAAUtB,CAAK,EACzB66P,EAAKC,eAAe,CAAC96P,EACzB,EAEA,IAAI,CAAC4C,OAAO,CAACzE,IAAI,CAAC,IAAI,CAACw8P,SAAS,CAAE,SAAU5xN,CAAC,EACzC8xN,EAAK5vF,MAAM,CAACliI,SAER5jC,GAA+C01P,CAAgB,IAAhBA,EAAKrkO,MAAM,EAC1DrxB,EAAS4jC,EAEjB,EACJ,EAEAsxN,EAAU16P,SAAS,CAACsrK,MAAM,CAAG,SAAUliI,CAAC,EAGhCjyB,KAAKq4C,GAAG,GAAK,IAAI,CAACqrM,OAAO,CAAG,MAC5B,IAAI,CAAChkO,MAAM,CAAG,CAAC,IAAI,CAACA,MAAM,CAEtB,CAAgB,IAAhB,IAAI,CAACA,MAAM,EACX,IAAI,CAAC5zB,OAAO,CAACwnB,QAAQ,CAAC,IAAI,CAACswO,QAAQ,EACnC,IAAI,CAACH,UAAU,CAACnwO,QAAQ,CAAC,IAAI,CAACswO,QAAQ,EAGtCt0P,OAAOhF,gBAAgB,CAAC,QAAS,IAAI,CAACE,MAAM,CAAE,IAGxB,OAAlB,IAAI,CAACg5P,QAAQ,EACb,IAAI,CAACA,QAAQ,CAACn8P,IAAI,CAAC,IAAI,CAACw8P,SAAS,CAAE,SAAU36P,CAAK,EAC9CA,EAAMU,eAAe,EACzB,IAGJ,IAAI,CAACgzD,IAAI,GAIc,OAAvB,IAAI,CAAC+mM,aAAa,EAAa,IAAI,CAACA,aAAa,GAAK,IAAI,CAACF,UAAU,EAAI,CAA+C,IAA/C,IAAI,CAACE,aAAa,CAAC5zN,QAAQ,CAAC,IAAI,CAAC6zN,QAAQ,GAClH,IAAI,CAACD,aAAa,CAACtwO,WAAW,CAAC,IAAI,CAACuwO,QAAQ,EAEhD,IAAI,CAACt2P,WAAW,CAACzE,SAAS,CAAC86P,aAAa,CAAG,IAAI,CAACF,UAAU,CAMlE,EAEAF,EAAU16P,SAAS,CAAC+zD,IAAI,CAAG,WACvB,IAAI,CAACl9B,MAAM,CAAG,GACd,IAAI,CAAC5zB,OAAO,CAACunB,WAAW,CAAC,IAAI,CAACuwO,QAAQ,EACtC,IAAI,CAACH,UAAU,CAACpwO,WAAW,CAAC,IAAI,CAACuwO,QAAQ,EACzCt0P,OAAO7E,mBAAmB,CAAC,IAAI,CAACo5P,SAAS,CAAE,IAAI,CAACr5P,MAAM,CAAE,IAGlC,OAAlB,IAAI,CAACg5P,QAAQ,EACb,IAAI,CAACA,QAAQ,CAACh5P,MAAM,CAAC,IAAI,CAACq5P,SAAS,CAE3C,EAEAN,EAAU16P,SAAS,CAACo7P,UAAU,CAAG,WAC7B,IAAIF,EAAO,IAAI,CACfl3N,WAAW,WACFk3N,EAAKj4P,OAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,YAAeioO,EAAKj4P,OAAO,CAAC,EAAE,CAACgwB,aAAa,CAAC,WAC5EioO,EAAKnnM,IAAI,EAEjB,EAAG,GACP,EAEA2mM,EAAU16P,SAAS,CAACm7P,eAAe,CAAG,SAAU/xN,CAAC,EACzC,IAAI,CAACwxN,UAAU,CAAC,EAAE,GAAKxxN,EAAEzoC,MAAM,EAAK,IAAI,CAACi6P,UAAU,CAAC,EAAE,CAACp3P,QAAQ,CAAC4lC,EAAEzoC,MAAM,GACxE,IAAI,CAACozD,IAAI,GAEb,IAAI,CAAC8mM,OAAO,CAAG1jP,KAAKq4C,GAAG,EAC3B,EAEOkrM,CACX,C,SCvGAr2P,EAAAA,CAAUA,CAACC,OAAO,CAAC,+BAAgC,WAU/C,IAAI+2P,EAAuB,SAAUh+F,CAAS,CAAEi+F,CAAS,CAAE7+H,CAAW,CAAE8+H,CAAM,CAAEC,CAAS,EACrF,IAAI,CAACn+F,SAAS,CAAGA,EACjB,IAAI,CAACi+F,SAAS,CAAGA,CAAS,CAAC,EAAE,CAC7B,IAAI,CAAC7+H,WAAW,CAAGA,CAAW,CAAC,EAAE,EAAIj7H,SAASg1G,IAAI,CAClD,IAAI,CAAC71G,MAAM,CAAG,IAAI,CAAC08J,SAAS,CAAC,EAAE,CAAC9xG,qBAAqB,GACrD,IAAI,CAACkwM,MAAM,CAAG,IAAI,CAACH,SAAS,CAAC/vM,qBAAqB,GAClD,IAAI,CAACmwM,QAAQ,CAAG,IAAI,CAACC,sBAAsB,CAAC,IAAI,CAACl/H,WAAW,CAAClxE,qBAAqB,IAClF,IAAI,CAACgwM,MAAM,CAAGA,GAAU,EACxB,IAAI,CAACK,kBAAkB,CAAG,GAG1B,IAAI,CAACJ,SAAS,CAAG,IAAI,CAACK,oBAAoB,CAACL,GAG3C,IAAI,CAACM,WAAW,CAAG,IAAI,CAACD,oBAAoB,GAE5C,IAAI,CAACE,QAAQ,CAAG,IACpB,EAqSA,OAnSAV,EAAqBr7P,SAAS,CAACg8P,uBAAuB,CAAG,CAAC,OAAQ,SAAU,QAAS,MAAM,CAE3FX,EAAqBr7P,SAAS,CAAC67P,oBAAoB,CAAG,SAAUl9M,CAAG,EAC/D,IAAIs9M,EAAc,CACdvwM,IAAK,EACL+6D,MAAO,EACPzR,OAAQ,EACRM,KAAM,CACV,EAEA,IAAK,IAAIruB,KAAYtoC,EACbA,EAAIvvB,cAAc,CAAC63D,IAAa,KAAiC,IAA1Bg1K,CAAW,CAACh1K,EAAS,EAC5Dg1K,CAAAA,CAAW,CAACh1K,EAAS,CAAGtoC,CAAG,CAACsoC,EAAS,EAI7C,OAAOg1K,CACX,EAEAZ,EAAqBr7P,SAAS,CAAC27P,sBAAsB,CAAG,SAAUO,CAAI,EAClE,MAAO,CACHxwM,IAAKwwM,EAAKxwM,GAAG,CACb+6D,MAAOy1I,EAAKz1I,KAAK,CACjBzR,OAAQknJ,EAAKlnJ,MAAM,CACnBM,KAAM4mJ,EAAK5mJ,IAAI,CACf7vB,MAAOy2K,EAAKz2K,KAAK,CACjBj6B,OAAQ0wM,EAAK1wM,MAAM,CAE3B,EAGA6vM,EAAqBr7P,SAAS,CAAC48D,MAAM,CAAG,WACpC,IAAI,CAACj8D,MAAM,CAAG,IAAI,CAAC08J,SAAS,CAAC,EAAE,CAAC9xG,qBAAqB,GACrD,IAAI,CAACkwM,MAAM,CAAG,IAAI,CAACH,SAAS,CAAC/vM,qBAAqB,GAClD,IAAImwM,EAAW,IAAI,CAACj/H,WAAW,CAAClxE,qBAAqB,GACjD4wM,EAAYT,EAASj2K,KAAK,CAAG,IAAI,CAACg3C,WAAW,CAAC/hC,WAAW,CAE7D,IAAI,CAACghK,QAAQ,CAAChwM,GAAG,CAAGgwM,EAAShwM,GAAG,CAAG,IAAI,CAAC8vM,SAAS,CAAC9vM,GAAG,CACrD,IAAI,CAACgwM,QAAQ,CAACj1I,KAAK,CAAGi1I,EAASj1I,KAAK,CAAG01I,EAAY,IAAI,CAACX,SAAS,CAAC/0I,KAAK,CACvE,IAAI,CAACi1I,QAAQ,CAAC1mJ,MAAM,CAAG0mJ,EAAS1mJ,MAAM,CAAG,IAAI,CAACwmJ,SAAS,CAAC9vM,GAAG,CAAG,IAAI,CAAC8vM,SAAS,CAACxmJ,MAAM,CACnF,IAAI,CAAC0mJ,QAAQ,CAACpmJ,IAAI,CAAGomJ,EAASpmJ,IAAI,CAAG,IAAI,CAACkmJ,SAAS,CAAClmJ,IAAI,CACxD,IAAI,CAAComJ,QAAQ,CAACj2K,KAAK,CAAGi2K,EAASj2K,KAAK,CAAG02K,EAAY,IAAI,CAACX,SAAS,CAAClmJ,IAAI,CAAG,IAAI,CAACkmJ,SAAS,CAAC/0I,KAAK,CAC7F,IAAI,CAACi1I,QAAQ,CAAClwM,MAAM,CAAGkwM,EAASlwM,MAAM,CAAG,IAAI,CAACgwM,SAAS,CAAC9vM,GAAG,CAAG,IAAI,CAAC8vM,SAAS,CAACxmJ,MAAM,CAEnF,IAAI,CAAConJ,cAAc,EACvB,EAGAf,EAAqBr7P,SAAS,CAACo8P,cAAc,CAAG,WAC5C,IAAI,CAACN,WAAW,CAACpwM,GAAG,CAAG,IAAI,CAAC+vM,MAAM,CAAC/vM,GAAG,CAAG,IAAI,CAACgwM,QAAQ,CAAChwM,GAAG,CAC1D,IAAI,CAACowM,WAAW,CAACr1I,KAAK,CAAG,IAAI,CAACi1I,QAAQ,CAACj1I,KAAK,CAAG,IAAI,CAACg1I,MAAM,CAACh1I,KAAK,CAChE,IAAI,CAACq1I,WAAW,CAAC9mJ,MAAM,CAAG,IAAI,CAAC0mJ,QAAQ,CAAC1mJ,MAAM,CAAG,IAAI,CAACymJ,MAAM,CAACzmJ,MAAM,CACnE,IAAI,CAAC8mJ,WAAW,CAACxmJ,IAAI,CAAG,IAAI,CAACmmJ,MAAM,CAACnmJ,IAAI,CAAG,IAAI,CAAComJ,QAAQ,CAACpmJ,IAAI,EAGjE+lJ,EAAqBr7P,SAAS,CAACq8P,aAAa,CAAG,SAAUC,CAAI,CAAEC,CAAS,EACpE,OAAO,IAAI,CAACT,WAAW,CAACQ,EAAK,CAAG,IAAI,CAACf,MAAM,EAAI,IAAI,CAAC56P,MAAM,CAAC47P,EAAU,EAGzElB,EAAqBr7P,SAAS,CAACw8P,WAAW,CAAG,SAAUF,CAAI,QACvD,SAAIA,GAAmBA,UAAAA,EACZ,CACH1nN,EAAG,IAAI,CAACknN,WAAW,CAACQ,EAAK,CACzBziJ,EAAG,IAAI,CAACiiJ,WAAW,CAACpwM,GAAG,CAAG,IAAI,CAACowM,WAAW,CAAC9mJ,MAAM,CAAG,IAAI,CAACymJ,MAAM,CAACjwM,MAAM,EAGnE,CACH5W,EAAG,IAAI,CAACknN,WAAW,CAACxmJ,IAAI,CAAG,IAAI,CAACwmJ,WAAW,CAACr1I,KAAK,CAAG,IAAI,CAACg1I,MAAM,CAACh2K,KAAK,CACrEo0B,EAAG,IAAI,CAACiiJ,WAAW,CAACQ,EAAK,CAGrC,EAEAjB,EAAqBr7P,SAAS,CAACy8P,mBAAmB,CAAG,SAAUH,CAAI,EAC/D,IAAII,EAAQ,CAAE9nN,EAAG,GAAIilE,EAAG,EAAG,EACvB0iJ,EAAY,IAAI,CAACI,oBAAoB,CAACL,GAW1C,MAT4C,KAAxC,IAAI,CAACD,aAAa,CAACC,EAAMC,KACrBA,UAAAA,GACAG,EAAM9nN,CAAC,CAAG,IAAI,CAAC6mN,MAAM,CAACh2K,KAAK,CAC3Bi3K,EAAM7iJ,CAAC,CAAG,IAAI,CAAC+iJ,oBAAoB,CAAC,MAAO,YAE3CF,EAAM7iJ,CAAC,CAAG,IAAI,CAAC4hJ,MAAM,CAACjwM,MAAM,CAC5BkxM,EAAM9nN,CAAC,CAAG,IAAI,CAACgoN,oBAAoB,CAAC,OAAQ,WAG7CF,CACX,EAEArB,EAAqBr7P,SAAS,CAAC68P,mBAAmB,CAAG,SAAUP,CAAI,EAC/D,IAEIQ,EAFAJ,EAAQ,CAAE9nN,EAAG,GAAIilE,EAAG,EAAG,EACvB0iJ,EAAY,IAAI,CAACI,oBAAoB,CAACL,GAEtCS,EAAW,EACXC,EAAgB,IAAI,CAACvgI,WAAW,CAAC10C,UAAU,CAoB/C,OAnBoB,IAAI,CAAC00C,WAAW,CAAC/0F,SAAS,CAG1C40N,SAAAA,GAAmBA,QAAAA,EACnBQ,EAAY,IAAI,CAACn8P,MAAM,EAEvBm8P,EAAY,IAAI,CAACrB,MAAM,CACvBsB,EAAW,GAG6B,KAAxC,IAAI,CAACV,aAAa,CAACC,EAAMC,KACrBA,UAAAA,GACAG,EAAM9nN,CAAC,CAAG,IAAI,CAAC6mN,MAAM,CAACa,EAAK,CAAGQ,EAAUr3K,KAAK,CAAGs3K,EAChDL,EAAM7iJ,CAAC,CAAG,IAAI,CAAC4hJ,MAAM,CAAC/vM,GAAG,CAAG,IAAI,CAACkxM,oBAAoB,CAAC,MAAO,YAE7DF,EAAM7iJ,CAAC,CAAG,IAAI,CAAC4hJ,MAAM,CAACa,EAAK,CAAGQ,EAAUtxM,MAAM,CAAGuxM,EACjDL,EAAM9nN,CAAC,CAAG,IAAI,CAAC6mN,MAAM,CAACnmJ,IAAI,CAAG,IAAI,CAACsnJ,oBAAoB,CAAC,OAAQ,SAAWI,IAG3EN,CACX,EAEArB,EAAqBr7P,SAAS,CAAC48P,oBAAoB,CAAG,SAAUN,CAAI,CAAEC,CAAS,EAC3E,IAAIU,EAAM,GAIV,GAHI,IAAI,CAACrB,kBAAkB,EACvB,KAAI,CAACj7P,MAAM,CAAC8kF,KAAK,CAAG,IAAI,CAACi2K,QAAQ,CAACj2K,KAAK,EAEvC,IAAI,CAACi2K,QAAQ,CAACa,EAAU,CAAG,IAAI,CAAChB,MAAM,EAAI,IAAI,CAAC56P,MAAM,CAAC47P,EAAU,CAAE,CAElEU,EAAM,IAAI,CAACxB,MAAM,CAACc,EAAU,CAAG,EAAI,IAAI,CAAC57P,MAAM,CAAC47P,EAAU,CAAG,EAC5D,IAAIv1E,EAAQ,IAAI,CAACy0E,MAAM,CAACa,EAAK,CAAG,IAAI,CAACZ,QAAQ,CAACY,EAAK,CAAGl7M,KAAKkyD,GAAG,CAAC2pJ,EAE3Dj2E,CAAAA,EAAQ,IAAI,CAAC00E,QAAQ,CAACa,EAAU,CAChCU,GAAOj2E,EAAQ,IAAI,CAAC00E,QAAQ,CAACa,EAAU,CAAG,IAAI,CAACd,MAAM,CAACc,EAAU,CACzD,IAAI,CAACd,MAAM,CAACa,EAAK,CAAGW,EAAM,GACjCA,CAAAA,EAAM,IAAI,CAACvB,QAAQ,CAACY,EAAK,CAAG,IAAI,CAACb,MAAM,CAACa,EAAK,CAErD,CACA,OAAOW,CACX,EAEA5B,EAAqBr7P,SAAS,CAAC28P,oBAAoB,CAAG,SAAUL,CAAI,EAChE,MAAOA,SAAAA,GAAmBA,UAAAA,EAAmB,QAAU,QAC3D,EAEAjB,EAAqBr7P,SAAS,CAACk9P,mBAAmB,CAAG,SAAUZ,CAAI,CAAEa,CAAW,QAC5E,CAAoB,IAAhBA,EACO,CACHvoN,EAAG0nN,SAAAA,EAAkB,QAAU,OAC/BziJ,EAAGyiJ,QAAAA,EAAiB,SAAW,KACnC,EAEO,CACH1nN,EAAG,OACHilE,EAAG,KACP,CAER,EAEAwhJ,EAAqBr7P,SAAS,CAACo9P,MAAM,CAAG,SAAUH,CAAG,CAAEI,CAAgB,CAAEC,CAAQ,CAAEzxM,CAAS,EACxF,IAAI0xM,EAAQ,CACRD,SAAUA,EAAW,KACrBzxM,UAAWA,EAAY,IAC3B,EAYA,OATA0xM,CAAK,CAACF,EAAiBzoN,CAAC,CAAC,CAAGqoN,EAAIroN,CAAC,CAAG,KACpC2oN,CAAK,CAACF,EAAiBxjJ,CAAC,CAAC,CAAGojJ,EAAIpjJ,CAAC,CAAG,KAEhC,KAAI,CAACl5G,MAAM,CAAC8kF,KAAK,CAAG63K,GAAY,IAAI,CAAC38P,MAAM,CAAC6qD,MAAM,CAAGK,CAAQ,GAC7D0xM,CAAAA,EAAMz7E,QAAQ,CAAG,QAAO,EAE5B,IAAI,CAAC07E,WAAW,GAChB,IAAI,CAACngG,SAAS,CAAC3nD,GAAG,CAAC6nJ,GAEZN,CACX,EAEA5B,EAAqBr7P,SAAS,CAACw9P,WAAW,CAAG,WACzC,IAAI,CAACngG,SAAS,CAAC,EAAE,CAACv6J,eAAe,CAAC,QACtC,EAEAu4P,EAAqBr7P,SAAS,CAACy9P,aAAa,CAAG,SAAUnB,CAAI,CAAEoB,CAAoB,EAG/E,GAFA,IAAI,CAAC9gM,MAAM,GAEP0/L,EACAqB,EAAW,IAAI,CAACnB,WAAW,CAACF,OACzB,CAGH,IAAK,IANLqB,EAIIC,EACAC,EAAU,CAAEjpN,EAAG,GAAIilE,EAAG,EAAG,EACpB31G,EAAI,EAAGC,EAAI,IAAI,CAAC63P,uBAAuB,CAAC36P,MAAM,CAAE6C,EAAIC,EAAGD,IAC5D05P,EAAc,IAAI,CAAC5B,uBAAuB,CAAC93P,EAAE,CAC7Cy5P,EAAW,IAAI,CAACnB,WAAW,CAACoB,GACxB,IAAI,CAACE,YAAY,CAACH,EAAUE,KAC5BA,EAAUF,EACVrB,EAAOsB,GAGfD,EAAWE,CACf,CACA,IAAI,CAACxgG,SAAS,CAAC3nD,GAAG,CAAC,QAASioJ,EAAS/oN,CAAC,CAAG,MACzC,IAAI,CAACmnN,QAAQ,CAAGO,CACpB,EAEAjB,EAAqBr7P,SAAS,CAAC89P,YAAY,CAAG,SAAUH,CAAQ,CAAEE,CAAO,EACrE,OAAOF,EAAS/oN,CAAC,CAAG+oN,EAAS9jJ,CAAC,CAAGgkJ,EAAQjpN,CAAC,CAAGipN,EAAQhkJ,CAAC,EAG1DwhJ,EAAqBr7P,SAAS,CAAC+9P,uBAAuB,CAAG,SAAUzB,CAAI,CAAEoB,CAAoB,EACzF,IAMIM,EACAL,EAPAC,EAAc,GACdC,EAAU,CACNvB,KAAM,GACN2B,KAAM3B,EAAO,IAAI,CAACE,WAAW,CAACF,GAAQ,CAAE1nN,EAAG,GAAIilE,EAAG,EAAG,EACrDojJ,IAAK,IACT,EAIJS,EAAuBA,KAAyB15P,IAAzB05P,EAAqCA,EAAuB,IAAI,CAACjB,mBAAmB,CAE3G,IAAK,IAAIv4P,EAAI,EAAGC,EAAI,IAAI,CAAC63P,uBAAuB,CAAC36P,MAAM,CAAE6C,EAAIC,EAAGD,IAI5D,GAAI05P,CAHJA,EAAc,IAAI,CAAC5B,uBAAuB,CAAC93P,EAAE,IAGzBo4P,IAChB0B,EAASN,EAAqBE,GAC9BD,EAAW,IAAI,CAACnB,WAAW,CAACoB,GAGxB,IAAI,CAACE,YAAY,CAACH,EAAUE,EAAQI,IAAI,IACxCJ,EAAQvB,IAAI,CAAGsB,EACfC,EAAQI,IAAI,CAAGN,EACfE,EAAQZ,GAAG,CAAGe,GAIdA,KAAAA,EAAOppN,CAAC,EAAWopN,KAAAA,EAAOnkJ,CAAC,EAAS,CACpCgkJ,EAAQvB,IAAI,CAAGsB,EACfC,EAAQI,IAAI,CAAGN,EACfE,EAAQZ,GAAG,CAAGe,EACd,IAAI,CAACjC,QAAQ,CAAG6B,EAChB,KACJ,CAGR,OAAOC,CACX,EAQAxC,EAAqBr7P,SAAS,CAACk+P,GAAG,CAAG,SAAU5B,CAAI,CAAE6B,CAAe,CAAEvC,CAAkB,EACpF,IAAI,CAACA,kBAAkB,CAAG,CAAC,CAACA,EAC5BU,EAAOA,GAAc,YAAI,CAACP,QAAQ,CAAY,IAAI,CAACA,QAAQ,CAAG,IAAI,CAACC,uBAAuB,CAAC,EAAE,EAE7F,IAAI0B,EACAP,EAAc,EAEdgB,CAAoB,aAJxBA,CAAAA,EAAkBA,GAAoC,UAAS,GAK3DT,EAAuB,IAAI,CAACb,mBAAmB,CAACr+P,IAAI,CAAC,IAAI,EACzD2+P,EAAc,IAEdO,EAAuB,IAAI,CAACjB,mBAAmB,CAACj+P,IAAI,CAAC,IAAI,EAI7D,IAAI,CAACo+D,MAAM,GAEX,IAAI+gM,EAAW,IAAI,CAACnB,WAAW,CAACF,GAC5B0B,EAASN,EAAqBpB,GAElC,GAAI0B,KAAAA,EAAOppN,CAAC,EAAWopN,KAAAA,EAAOnkJ,CAAC,CAAS,CACpC,IAAIgkJ,EAAU,IAAI,CAACE,uBAAuB,CAAC,KAAML,EAG3B,MAAlBG,EAAQZ,GAAG,CAACroN,CAAC,EAAWipN,KAAAA,EAAQZ,GAAG,CAACpjJ,CAAC,GACrC,IAAI,CAACwjD,SAAS,CAAC3nD,GAAG,CAAC,CACfjwB,MAAOo4K,EAAQI,IAAI,CAACrpN,CAAC,CAAG,IAE5B,GACA,IAAI,CAACj0C,MAAM,CAAG,IAAI,CAAC08J,SAAS,CAAC,EAAE,CAAC9xG,qBAAqB,GACrDsyM,EAAQZ,GAAG,CAAGS,EAAqBG,EAAQvB,IAAI,GAEnDA,EAAOuB,EAAQvB,IAAI,CACnB0B,EAASH,EAAQZ,GAAG,CACpBU,EAAWE,EAAQI,IAAI,CAK3B,OAFA,IAAI,CAAClC,QAAQ,CAAGO,EAChB,IAAI,CAACj/F,SAAS,CAAC5yI,QAAQ,CAAC0zO,GACjB,IAAI,CAACf,MAAM,CAACY,EAAQ,IAAI,CAACd,mBAAmB,CAACZ,EAAMa,GAAcQ,EAAS/oN,CAAC,CAAE+oN,EAAS9jJ,CAAC,CAClG,EAEOwhJ,CACX,GDjUAh3P,EAAAA,CAAUA,CAACC,OAAO,CAAC,mBAAoBm2P,GAEvCA,EAAiBl2P,OAAO,CAAG,EAAE,C,SEG7BF,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,UAAW,CAC5B,OACA,kBACA,mBACA,+BACA,uBACA,SAAUnC,CAAI,CAAEC,CAAe,CAAEuoP,CAAgB,CAAEC,CAA4B,CAAEt2P,CAAoB,EACjG,MAAO,CACH+N,SAAU,IACVnM,WAAY,CACR,SACA,WACA,SAAUoT,CAAM,CAAEo9E,CAAQ,EACtBp9E,EAAOuhP,WAAW,CAAG,WACjB,OAAO1oP,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAGK,EAAOrT,QAAQ,CACjG,EAEAqT,EAAOwhP,eAAe,CAAG,WAEW,KAA5BxhP,EAAOyhP,SAAS,CAAC3nO,MAAM,EAAa9Z,EAAO0hP,gBAAgB,CAAG1hP,EAAO2hP,mBAAmB,EACxF3hP,CAAAA,EAAO0hP,gBAAgB,EAAI1hP,EAAO2hP,mBAAmB,EAGrD,EAAE3hP,EAAO0hP,gBAAgB,CAAG,IAC5B1hP,EAAO4hP,UAAU,GAGjB5hP,EAAO0hP,gBAAgB,CAAG1hP,EAAAA,EAAO2hP,mBAAmB,CAE5D,EAEA3hP,EAAO4hP,UAAU,CAAG,WAChB,IAAI1yM,EAAOlvC,EAAO6hP,UAAU,CAAC7C,QAAQ,CACrCh/O,EAAO6hP,UAAU,CAACV,GAAG,CAACnhP,EAAOu/O,IAAI,CAAEv/O,EAAO2V,QAAQ,CAAE3V,EAAO6+O,kBAAkB,EACzE3vM,IAASlvC,EAAO6hP,UAAU,CAAC7C,QAAQ,EACnCh/O,EAAO8hP,UAAU,CAACr0O,WAAW,CAACyhC,GAElClvC,EAAO8hP,UAAU,CAACp0O,QAAQ,CAAC1N,EAAO6hP,UAAU,CAAC7C,QAAQ,EACrD,IAAI+C,EAAQ/hP,EAAO6hP,UAAU,CAAC1B,mBAAmB,CAACngP,EAAO6hP,UAAU,CAAC7C,QAAQ,CAAE,IAC9Eh/O,EAAOsrG,UAAU,CAAC3S,GAAG,CAAC,QAASopJ,EAAMlqN,CAAC,EACtC73B,EAAOsrG,UAAU,CAAC,EAAE,CAAC5nH,KAAK,EAC9B,CACJ,EACH,CAEDsV,MAAO,CACH7K,MAAO,IACPimD,IAAK,IACLznD,SAAU,YACV4yP,KAAM,QACN5pO,SAAU,YACVgpO,SAAU,YACVE,mBAAoB,IACpBmD,WAAY,KACZC,MAAO,IACX,EACAt1P,SC/DG,8sBDgEHuhB,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAChCqW,EAAMhO,oBAAoB,CAAGA,EAC7BgO,EAAMkpP,MAAM,CAAG/zO,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,0BAA0B,CAAC,EAAE,EAC9FpV,EAAMsyG,UAAU,CAAGn9F,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,EAC1FpV,EAAMkwH,SAAS,CAAG/6G,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,UAAU,CAAC,EAAE,EACjFpV,EAAM8oP,UAAU,CAAG3zO,QAAQjoB,OAAO,CAACA,CAAO,CAAC,EAAE,CAACkoB,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,EAC1FpV,EAAMumP,IAAI,CAAG58P,EAAK48P,IAAI,EAAI,OAC1BvmP,EAAMmpP,cAAc,CAAGnpP,EAAMktB,GAAG,CAEhC,IAAIk8N,EAAS14P,OAAOygF,gBAAgB,CAACnxE,EAAMkpP,MAAM,CAAC,EAAE,EAChDG,EAAuBD,KAA8Bn7P,IAA9Bm7P,EAAOE,kBAAkB,CAAiBF,EAAOE,kBAAkB,CAAC7xO,KAAK,CAAC,MAAQ,CAAC,GAAG,CAC7G8xO,EAAkBH,OAAAA,EAAOI,eAAe,CAM5C,GAHAxpP,EAAM0oP,gBAAgB,CAAG1oP,EAAM2oP,mBAAmB,CAAGY,CAAoB,IAApBA,GAA4BF,KAAAA,CAAoB,CAAC,EAAE,CAAUA,EAAqB/9P,MAAM,CAAG,EAG5I3B,aAAAA,EAAKgzB,QAAQ,CAAiB,CAC9B,IAAI8sO,EAAah+P,SAASyiC,cAAc,CAAC,kBACrCu7N,QAAAA,GAEAA,CADAA,EAAah+P,SAAS80G,aAAa,CAAC,MAAK,EAC9BtkG,EAAE,CAAG,kBAGhBwtP,EAAW/oJ,WAAW,CAAC1gG,EAAMkpP,MAAM,CAAC,EAAE,EAEtCz9P,SAASg1G,IAAI,CAACC,WAAW,CAAC+oJ,IAG1BA,EAAW/oJ,WAAW,CAAC1gG,EAAMkpP,MAAM,CAAC,EAAE,CAE9C,CAGA,IAAIt9P,EAASoU,EAAMib,MAAM,CAAC,WAAY,WAClC,IAAIyuO,EAAiB1pP,EAAM2lP,QAAQ,CACnC,IAAM3sD,EAAUvtM,SAASyiC,cAAc,CAAC,oBAClCy7N,EAAgB3wD,OAAAA,EAAmBA,EAAQvlF,YAAY,CAAG,EAMhE,GAJAzzG,EAAMyoP,SAAS,CAAG,IAAIJ,EAAiBroP,EAAM8oP,UAAU,CAAEY,EAAgB1pP,EAAMkpP,MAAM,CAAElpP,EAAMkpP,MAAM,EACnGlpP,EAAM6oP,UAAU,CAAG,IAAIP,EAA6BtoP,EAAMkpP,MAAM,CAAElpP,EAAMkwH,SAAS,CAAEw5H,EAAgB,EAAG,CAAE/zM,IAAKg0M,CAAc,GAGvH3pP,IAAAA,EAAM2oP,mBAAmB,CAAQ,CAEjC,IAAIiB,EAAqB,WACrB,IAAIC,EAAc,CACVx+F,WAAY,gBACZy+F,iBAAkB,sBAClBC,cAAe,gBACfC,YAAa,gBACjB,EACA98P,EAAUzB,SAASg1G,IAAI,CAC3B,IAAK,IAAIlvB,KAAKs4K,EACV,GAAI,KAA4B,IAArB38P,EAAQ2oD,KAAK,CAAC07B,EAAE,CACvB,OAAOs4K,CAAW,CAACt4K,EAAE,IAKjCvxE,EAAMkpP,MAAM,CAAC,EAAE,CAACx9P,gBAAgB,CAACk+P,EAAoB5pP,EAAMwoP,eAAe,CAAE,IAC5ExoP,EAAMyoP,SAAS,CAACvD,UAAU,EAC9B,MAEIllP,EAAMyoP,SAAS,CAACvD,UAAU,CAAC,WACvBllP,EAAM4oP,UAAU,EACpB,EAGA5oP,CAAAA,EAAMipP,KAAK,GACXjpP,EAAM8oP,UAAU,CAACrgQ,IAAI,CAAC,aAAc,IAChCuX,EAAMyoP,SAAS,CAAClzF,MAAM,CAACliI,GACvBrzB,EAAM4oP,UAAU,EACpB,GACA5oP,EAAM8oP,UAAU,CAACrgQ,IAAI,CAAC,aAAc,GAAOuX,EAAMyoP,SAAS,CAACzqM,IAAI,KAGnEh+C,EAAMsyG,UAAU,CAAC7pH,IAAI,CAAC,OAAQ,SAAU4qC,CAAC,EACrCrzB,EAAMyoP,SAAS,CAACzqM,IAAI,EACxB,GACApyD,GACJ,EACJ,CACJ,CACJ,EACH,C,oEElJD0C,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,qBAAsB,CACrC,UACA,WACA,mBACA,SAAUngB,CAAO,CAAEtS,CAAQ,CAAEoiD,CAAgB,EACzC,IAAIu3M,EAAiB,CAAC,EA2btB,OAzbAA,EAAeC,sBAAsB,CAAG,WACpCD,EAAeE,iBAAiB,CAAC,IAAI,CAACC,YAAY,CAAE,IAAI,CAACl9P,OAAO,CAAE,IAAI,CAACkiH,MAAM,CACjF,EAMA66I,EAAeI,qBAAqB,CAAG,SAAUh3N,CAAC,EAC9C,IAAIi3N,EAAwBL,EAAeE,iBAAiB,CAAC,IAAI,CAACC,YAAY,CAAE,IAAI,CAACl9P,OAAO,CAAE,IAAI,CAACkiH,MAAM,EAGrGgF,EAAQ/oE,KAAKsoC,GAAG,CAAC,GAAItoC,KAAKqoC,GAAG,CAAC,EAAGrgD,EAAEk3N,UAAU,EAAI,CAACl3N,EAAEm3N,MAAM,GAK1D,GAAuB74N,SAAS,CAAG,GAAKyiF,EAAQ,GAAOk2I,EAAsB34N,SAAS,EAAI24N,EAAsBG,iBAAiB,EAAIr2I,EAAQ,IAC7I/gF,EAAEvnC,cAAc,EAExB,EAEAm+P,EAAeE,iBAAiB,CAAG,SAAUC,CAAY,CAAEl9P,CAAO,CAAEkiH,CAAM,EAEtE,IAAIs7I,EAAWN,EAAa50M,qBAAqB,GAC7Ci1M,EAAoBL,EAAaviG,YAAY,CAAG6iG,EAASj1M,MAAM,CAC/D9jB,EAAYy4N,EAAaz4N,SAAS,CAStC,OAPAs4N,EAAeU,wBAAwB,CAAC,CACpCz9P,QAASA,EACTykC,UAAWA,EACXy9E,OAAQA,EACRq7I,kBAAmBA,CACvB,GAEO,CACH94N,UAAWA,EACX84N,kBAAmBA,CACvB,CACJ,EAEAR,EAAeU,wBAAwB,CAAG,SAAUrkM,CAAI,EAEpD,IAAIp5D,EAAUo5D,CADdA,EAAOA,GAAQ,CAAC,GACGp5D,OAAO,CACtBkiH,EAAS9oD,EAAK8oD,MAAM,CACpBz9E,EAAY20B,EAAK30B,SAAS,CAC1B84N,EAAoB7qO,SAAS0mC,EAAKmkM,iBAAiB,CAAE,KAAO,EAGhE,GAFsBnkM,EAAKskM,eAAe,CAErB,CACjB19P,EAAQunB,WAAW,CAAC,sCACpBvnB,EAAQunB,WAAW,CAAC,yCACpB26F,EAAO36F,WAAW,CAAC,sCACnB26F,EAAO36F,WAAW,CAAC,yCACnB,MACJ,CAEIkd,EAAY,GACZzkC,EAAQunB,WAAW,CAAC,sCACpB26F,EAAO36F,WAAW,CAAC,sCACnBvnB,EAAQwnB,QAAQ,CAAC,yCACjB06F,EAAO16F,QAAQ,CAAC,0CACTid,GAAa84N,GACpBv9P,EAAQunB,WAAW,CAAC,yCACpB26F,EAAO36F,WAAW,CAAC,yCACnBvnB,EAAQwnB,QAAQ,CAAC,sCACjB06F,EAAO16F,QAAQ,CAAC,wCAEhBxnB,EAAQwnB,QAAQ,CAAC,sCACjB06F,EAAO16F,QAAQ,CAAC,sCAChBxnB,EAAQwnB,QAAQ,CAAC,yCACjB06F,EAAO16F,QAAQ,CAAC,yCAExB,EAEAu1O,EAAe/6I,aAAa,CAAG,CAC3B27I,kBAAmB,SAAUjgQ,CAAM,EAC/B,IAAIirD,EAAQjrD,EAAOymF,YAAY,EAAI3gF,OAAOygF,gBAAgB,CAACvmF,GAC3D,MAAO,CAACg1B,SAASi2B,EAAMi1M,SAAS,CAAE,KAAO,GAAMlrO,CAAAA,SAASi2B,EAAMk1M,UAAU,CAAE,KAAO,GAAMnrO,CAAAA,SAASi2B,EAAMm1M,YAAY,CAAE,KAAO,GAAMprO,CAAAA,SAASi2B,EAAMo1M,aAAa,CAAE,KAAO,EAC1K,EACA97I,MAAO,SAAUvkH,CAAM,CAAE6qD,CAAM,CAAEvoD,CAAO,CAAEkiH,CAAM,EAC5CliH,EAAQwnB,QAAQ,CAAC,qBACjB06F,EAAO16F,QAAQ,CAAC,qBAChB9pB,EAAO+0G,GAAG,CAAC,CAAElqD,OAAQA,EAASA,EAAS,KAAO,EAAG,EACrD,EACAy1M,SAAU,SAAUtgQ,CAAM,CAAE6qD,CAAM,EAC9B7qD,EAAO+0G,GAAG,CAAC,CAAElqD,OAAQA,EAAS,IAAK,EACvC,EACA01M,cAAe,SAAUj+P,CAAO,CAAEkiH,CAAM,CAAEg8I,CAAW,CAAEC,CAAQ,CAAEC,CAAY,EACzE,IAAI31M,EAIAA,EAFA21M,EAEMC,CADoB,CAAC,EAAE,CAAC/1M,qBAAqB,GAAGypD,MAAM,CACxC,KAEd,GAGV/xG,EAAQunB,WAAW,CAAC,qBACpB26F,EAAOzP,GAAG,CAAC,CAAElqD,OAAQ,EAAG,GACxB25D,EAAOzP,GAAG,CAAC,CAAEhqD,IAAKA,CAAI,GACtBy5D,EAAO36F,WAAW,CAAC,qBACnB22O,EAAYx/P,MAAM,CAAC,UACnBw/P,EAAYx/P,MAAM,CAAC,4BACvB,EACA4/P,gBAAiB,SAAUp8I,CAAM,EAC7BA,EAAOzP,GAAG,CAAC,CAAE+Q,MAAO,EAAG,GACvBtB,EAAOzP,GAAG,CAAC,CAAEJ,KAAM,EAAG,EAC1B,CACJ,EAEA0qJ,EAAewB,WAAW,CAAG,SAAU57L,CAAS,CAAEu/C,CAAM,CAAEM,CAAY,CAAEg8I,CAAgB,CAAEJ,CAAY,MAK9F31M,EAJC21M,IAMDz7L,WAAAA,EACAla,EAAM+5D,EAAazQ,MAAM,CAAG,KACP,QAAdpvC,GACPla,CAAAA,EAAM+5D,EAAa/5D,GAAG,CAAG,IAAG,EAGhCy5D,EAAOzP,GAAG,CAAC,CAAEhqD,IAAKA,CAAI,GACtBy5D,EAAOzP,GAAG,CAAC,CAAEV,OAAQ,MAAO,GAChC,EAEAgrJ,EAAe0B,sBAAsB,CAAG,SAAUrlM,CAAI,EAClD,IAYIgpD,EACAs8I,EAbA1+P,EAAUo5D,EAAKp5D,OAAO,CACtBkiH,EAAS9oD,EAAK8oD,MAAM,CACpBi8I,EAAW/kM,EAAK+kM,QAAQ,CACxBD,EAAc9kM,EAAK8kM,WAAW,CAC9BS,EAAavlM,EAAKulM,UAAU,CAC5BP,EAAehlM,EAAKglM,YAAY,CAChCI,EAAmBplM,EAAKolM,gBAAgB,CACxCI,EAAkBxlM,EAAKwlM,eAAe,CACtCC,EAAsBD,EAAAA,GAAkBA,EAAgBt2M,qBAAqB,GAC7Ek6D,EAAe27I,CAAQ,CAAC,EAAE,CAAC71M,qBAAqB,GAChDg6D,EAAe5sG,EAAQo8F,WAAW,CAClCgtJ,EAAuB1lM,KAAmC,IAAnCA,EAAK2lM,oBAAoB,CAAc3lM,EAAK2lM,oBAAoB,CAAG5gN,KAAKC,KAAK,CAACkkE,IAAAA,GAOrGF,EADAy8I,EACmBA,EAAoBt2M,MAAM,CAAGs2M,EAAoBp2M,GAAG,CAAGk2M,EAAW5sJ,MAAM,CAAG+sJ,EAE3Ex8I,EAAeq8I,EAAW5sJ,MAAM,CAAG+sJ,EAK1D17P,EAAS,WAELpD,EAAQwnB,QAAQ,CAAC,qBACjB06F,EAAO16F,QAAQ,CAAC,qBAChBu1O,EAAewB,WAAW,CAAC,MAAOr8I,EAAQM,EAAcg8I,EAAkBJ,GAC1EO,EAAaz8I,CAAM,CAAC,EAAE,CAAC55D,qBAAqB,GAExCo2M,EADAG,EACgBF,EAAWl2M,GAAG,CAAGo2M,EAAoBp2M,GAAG,CAAGs0M,EAAe/6I,aAAa,CAAC27I,iBAAiB,CAACS,GAAgBU,EAE1GH,EAAWl2M,GAAG,CAAGq2M,EAGrC9+P,EAAQunB,WAAW,CAAC,qBACpB26F,EAAO36F,WAAW,CAAC,qBACnBw1O,EAAeU,wBAAwB,CAAC,CACpCz9P,QAASA,EACTkiH,OAAQA,EACRw7I,gBAAiB,EACrB,GAGIgB,EAAgB,GAAKt8I,EAAmB,GAEpCjkE,KAAKkyD,GAAG,CAACquJ,GAAiBvgN,KAAKkyD,GAAG,CAAC+R,IACnC26I,EAAe/6I,aAAa,CAACg8I,QAAQ,CAAC97I,EAAQy8I,EAAWp2M,MAAM,CAAG65D,GAClE26I,EAAewB,WAAW,CAAC,SAAUr8I,EAAQM,EAAcg8I,EAAkBJ,KAI7ErB,EAAe/6I,aAAa,CAACC,KAAK,CAACC,EAAQy8I,EAAWp2M,MAAM,CAAGm2M,EAAe1+P,EAASkiH,GACvF66I,EAAewB,WAAW,CAAC,MAAOr8I,EAAQM,EAAcg8I,EAAkBJ,IAI9ErB,EAAeE,iBAAiB,CAACiB,CAAW,CAAC,EAAE,CAAEl+P,EAASkiH,GACtD18D,EAAiBgD,KAAK,CACtB01M,EAAY3iQ,IAAI,CACZ,SACAwhQ,EAAeC,sBAAsB,CAACzhQ,IAAI,CAAC,CACvC2hQ,aAAcgB,CAAW,CAAC,EAAE,CAC5Bl+P,QAASA,EACTkiH,OAAQA,CACZ,KAGJg8I,EAAY3iQ,IAAI,CACZ,SACAwhQ,EAAeC,sBAAsB,CAACzhQ,IAAI,CAAC,CACvC2hQ,aAAcgB,CAAW,CAAC,EAAE,CAC5Bl+P,QAASA,EACTkiH,OAAQA,CACZ,IAGJg8I,EAAY3iQ,IAAI,CACZ,4BACAwhQ,EAAeI,qBAAqB,CAAC5hQ,IAAI,CAAC,CACtC2hQ,aAAcgB,CAAW,CAAC,EAAE,CAC5Bl+P,QAASA,EACTkiH,OAAQA,CACZ,MAKHE,EAAmB,GACxB26I,EAAe/6I,aAAa,CAACC,KAAK,CAACC,EAAQ,KAAMliH,EAASkiH,GAC1D66I,EAAewB,WAAW,CAAC,MAAOr8I,EAAQM,EAAcg8I,EAAkBJ,IAE1ErB,EAAewB,WAAW,CAAC,SAAUr8I,EAAQM,EAAcg8I,EAAkBJ,EAErF,EAxEiB54M,EAAiBw5M,OAAO,CAAG,IAAM,EAyEtD,EAEAjC,EAAekC,wBAAwB,CAAG,SAAU7lM,CAAI,EACpD,IAUI8lM,EACAC,EACAC,EAEA57I,EACAnR,EAfA8rJ,EAAW/kM,EAAK+kM,QAAQ,CACxBj8I,EAAS9oD,EAAK8oD,MAAM,CACpBy8I,EAAavlM,EAAKulM,UAAU,CAC5BrsJ,EAAc58F,EAAQ08F,UAAU,CAChCgsJ,EAAehlM,EAAKglM,YAAY,CAChCQ,EAAkBxlM,EAAKwlM,eAAe,CACtCC,EAAsBD,EAAAA,GAAkBA,EAAgBt2M,qBAAqB,GAC7E+2M,EAA4BjmM,EAAKimM,yBAAyB,CAE1D78I,EAAe27I,CAAQ,CAAC,EAAE,CAAC71M,qBAAqB,GAIhDg3M,EAAoB,CAACX,EAAWn8K,KAAK,CAAGggC,EAAahgC,KAAK,EAAI,EAI9Dq8K,GACAM,EAAyB38I,EAAanQ,IAAI,CAV9B,EAU6CwsJ,EAAoBxsJ,IAAI,CACjF6sJ,EAA0BL,EAAoBr7I,KAAK,CAAGhB,EAAagB,KAAK,CAX5D,IAaZ27I,EAAyB38I,EAAanQ,IAAI,CAb9B,EAcZ6sJ,EAA0B5sJ,EAAckQ,EAAagB,KAAK,CAd9C,GAiBhB47I,EAAuBT,EAAWtsJ,IAAI,CAjBtB,EAuBJmR,EAHR87I,EAAoBJ,EAChBd,EACIS,EACQ,CAACQ,EAA4B,EAAI/sJ,EAAcusJ,EAAoBr7I,KAAK,EAAI07I,EAvBhF,EAuBsHI,EAAoB,KAEtIJ,EAzBJ,EAyB0CI,EAAoB,KAG9D,CAACA,EAAoB,KAK7BlB,EACIc,GAlCI,EAmCAL,EACQ,CAACQ,EAA4B,EAAI/sJ,EAAcusJ,EAAoBr7I,KAAK,EApChF,EAoCgG,KAExF+7I,MAGRV,EACQ,CAACQ,EAA4B,EAAI/sJ,EAAcusJ,EAAoBr7I,KAAK,EAAI07I,EA1CpF,EA0C0H,KAElHA,EA5CR,EA4C8C,KAI9C,CAACA,EAA0B,KAEvCh9I,EAAOzP,GAAG,CAAC,CAAE+Q,MAAOA,CAAM,GAC1BtB,EAAOzP,GAAG,CAAC,CAAEJ,KAAM,MAAO,GAI1BitJ,EAAoBH,IACpBj9I,EAAOzP,GAAG,CAAC,CAAE+Q,MAAO,EAAG,GAKfnR,EAFJ8sJ,GAA0BC,EACtBP,EACO,CAACQ,EAA4B,EAAIR,EAAoBxsJ,IAAI,EA7D5D,EA6D4E,KAEzEktJ,MAOPnB,EACIS,EACO,CAACQ,EAA4B,EAAIR,EAAoBxsJ,IAAI,EAxEhE,EAwEgF,KAEzEktJ,MAGJ,CAACJ,EAAyB,KAErCj9I,EAAOzP,GAAG,CAAC,CAAEJ,KAAMA,CAAK,GACxB6P,EAAOzP,GAAG,CAAC,CAAE+Q,MAAO,MAAO,GAGvC,EAEAu5I,EAAeyC,oBAAoB,CAAG,SAAUrB,CAAQ,CAAEj8I,CAAM,EAC5D,IAAIu9I,EAAgBtB,CAAQ,CAAC,EAAE,CAAC71M,qBAAqB,GAAGk6B,KAAK,CACzDi9K,GACAv9I,EAAOzP,GAAG,CAAC,CAAEjwB,MAAOi9K,EAAgB,IAAK,EAEjD,EAEA1C,EAAe2C,cAAc,CAAG,SAAU1/P,CAAO,CAAEm+P,CAAQ,CAAEj8I,CAAM,CAAEg8I,CAAW,CAAEE,CAAY,CAAEQ,CAAe,CAAES,CAAyB,CAAEN,CAAoB,EAE5JhC,EAAe/6I,aAAa,CAACs8I,eAAe,CAACp8I,GAC7C66I,EAAe/6I,aAAa,CAACi8I,aAAa,CAACj+P,EAASkiH,EAAQg8I,EAAaC,EAAUC,GAGnF,IACII,EADAG,EAAaz8I,CAAM,CAAC,EAAE,CAAC55D,qBAAqB,GAG5C81M,GACAI,CAAAA,EAAmBJ,EAAa91M,qBAAqB,EAAC,EAI1Dy0M,EAAe0B,sBAAsB,CAAC,CAClCz+P,QAASA,EACTkiH,OAAQA,EACRi8I,SAAUA,EACVD,YAAaA,EACbS,WAAYA,EACZP,aAAcA,EACdI,iBAAkBA,EAClBI,gBAAiBA,EACjBG,qBAAsBA,CAC1B,GAEAhC,EAAekC,wBAAwB,CAAC,CACpCd,SAAUA,EACVj8I,OAAQA,EACRy8I,WAAYA,EACZP,aAAcA,EACdI,iBAAkBA,EAClBI,gBAAiBA,EACjBS,0BAA2BA,CAC/B,EACJ,EAEAtC,EAAe4C,qBAAqB,CAAG,SAAUpgQ,CAAI,EACjD,IAAIopD,EAAQnlD,OAAOygF,gBAAgB,CAAC1kF,GAGpC,MAAOqgQ,SAFSj3M,CAAAA,EAAMi3M,SAAS,EAAIj3M,EAAMk3M,eAAe,EAAIl3M,EAAMm3M,YAAY,CAGlF,EAEA/C,EAAegD,2BAA2B,CAAG,SAAUC,CAAc,CAAEX,CAAyB,EAC5F,GAAIA,KAAmC,IAAnCA,EACA,OAAOA,EAEX,GAAI75M,EAAiB0tD,EAAE,CACnB,MAAO,GAGX,KAAO,CAAC6pJ,EAAe4C,qBAAqB,CAACK,IAGzC,GAAIA,SAAAA,CAFJA,EAAiBA,EAAe/+N,UAAU,EAEvBisE,QAAQ,CACvB,OAAQ8yJ,EAAiB,GAIjC,MAAO,EACX,EAEAjD,EAAekD,gBAAgB,CAAG,SAAU3+G,CAAQ,CAAEthJ,CAAO,CAAEkgQ,CAAe,CAAEF,CAAc,SACtFE,GAAmB,CAAC5+G,IAIxB4+G,EAAkBnD,EAAeoD,2BAA2B,CAAC7+G,EAAUthJ,GACnEggQ,GAAkBA,EAAe5hQ,MAAM,CAAG,GAAK4hQ,CAAc,CAAC,EAAE,GAChEjD,EAAeqD,2BAA2B,CAACF,EAAiBF,CAAc,CAAC,EAAE,EAC7EA,EAAex4O,QAAQ,CAAC,iBANjB04O,CASf,EAEAnD,EAAeqD,2BAA2B,CAAG,SAAUhC,CAAY,CAAE4B,CAAc,EAE/E5B,EAAan9N,UAAU,CAACo/N,YAAY,CAACL,EAAgB5B,EAAakC,WAAW,CACjF,EAEAvD,EAAeoD,2BAA2B,CAAG,SAAU7+G,CAAQ,CAAEthJ,CAAO,EACpE,GAAI,CAACshJ,EACD,MAAO,GAGX,IACIv9D,EADArmF,EAASsC,EAGb,GAAI,CACA,KACI,OADGtC,GACCA,EAAOujC,UAAU,EADD,CAEhB8iD,EAAKrmF,EAAOujC,UAAU,CAAC9gC,gBAAgB,CAACmhJ,GAK5C,IAAK,IAAI3vG,EAAI,EAAGA,EAAIoyC,EAAG3lF,MAAM,CAAEuzC,IAC3B,GAAIoyC,CAAE,CAACpyC,EAAE,GAAKj0C,EACV,OAAOA,EAIfA,EAASA,EAAOujC,UAAU,CAG9B,MAAO,EACX,CAAE,MAAOkF,EAAG,CACR,MAAO,EACX,CACJ,EAEO42N,CACX,EACH,EC/bD37P,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,eAAgB,CACjC,WACA,KACA,UACA,eACA,qBACA,mBACA,SAAU1R,CAAQ,CAAE8R,CAAE,CAAEta,CAAO,CAAE2lQ,CAAY,CAAExD,CAAc,CAAEv3M,CAAgB,EAC3E,MAAO,CACH3yC,SAAU,IACVC,MAAO,GAEPpM,WAAY,CACR,SACA,WACA,SACA,SAAUoT,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,EAC9B,IAAI8kP,EAAmB,CAAC,CACxB1mP,CAAAA,EAAOmsJ,QAAQ,CAAG,GAElBnsJ,EAAO2mP,oBAAoB,CAAG,WAC1B3mP,EAAO4mP,gBAAgB,CAAGxrP,EAAGuI,KAAK,EACtC,EAEA3D,EAAOy+E,UAAU,CAAG,WAChBioK,EAAiBG,UAAU,CAAG14O,QAAQjoB,OAAO,CAACzB,SAAS60G,eAAe,EACtEt5F,EAAOskP,YAAY,CAAG,EAC1B,EAEAtkP,EAAO8mP,QAAQ,CAAG,WACd9mP,EAAO+mP,gBAAgB,CAAGnlP,EAAAA,EAAOolP,cAAc,EAAGplP,EAAOolP,cAAc,CACvEhnP,EAAOinP,iBAAiB,CAAGrlP,EAAAA,EAAOyhG,eAAe,EAAGzhG,EAAOyhG,eAAe,CAC1ErjG,EAAOknP,YAAY,CAAGtlP,KAAwB3a,IAAxB2a,EAAOslP,YAAY,CACzClnP,EAAOmnP,gBAAgB,CAAGvlP,KAA4B3a,IAA5B2a,EAAOulP,gBAAgB,CACjDnnP,EAAOilP,oBAAoB,CAAGrjP,KAAqC,IAArCA,EAAOqjP,oBAAoB,CAActgF,WAAW/iK,EAAOqjP,oBAAoB,EAAI,IACrH,EAEAjlP,EAAOo8H,UAAU,CAAG,WAChBp8H,EAAOonP,gBAAgB,CAAGj5O,QAAQjoB,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,EACnGpO,EAAOkmP,cAAc,CAAG/3O,QAAQjoB,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,EAC/FpO,EAAOqnP,mBAAmB,CAAGl5O,QAAQjoB,OAAO,CAACk3F,CAAQ,CAAC,EAAE,CAAChvE,sBAAsB,CAAC,uBAAuB,CAAC,EAAE,CAC9G,EAEApO,EAAOsnP,eAAe,CAAG,SAAUj7M,CAAS,EACpCrsC,EAAOmnP,gBAAgB,EAAInnP,EAAOunP,iBAAiB,EACnDvnP,EAAOunP,iBAAiB,CAACl7M,GAE7BrsC,EAAO4mP,gBAAgB,CAAC7+P,OAAO,EACnC,EAEAiY,EAAOwnP,cAAc,CAAG,WAChBxnP,EAAOmsJ,QAAQ,CACfnsJ,EAAOynP,aAAa,GAEhB/7M,EAAiBgD,KAAK,EAAI1uC,EAAO0nP,oBAAoB,CACrDp+P,EAAS0W,EAAO2nP,YAAY,CAAE,KAE9B3nP,EAAO2nP,YAAY,EAG/B,EAEA3nP,EAAO2nP,YAAY,CAAG,WACd3nP,EAAOmnP,gBAAgB,EAAI,CAACnnP,EAAOunP,iBAAiB,EACpDvnP,CAAAA,EAAOunP,iBAAiB,CAAGvnP,EAAO4nP,gBAAgB,EAGtD5nP,EAAO6nP,mBAAmB,GAErB7nP,EAAOmnP,gBAAgB,EACxBnnP,EAAO4nP,gBAAgB,EAE/B,EAEA5nP,EAAO4nP,gBAAgB,CAAG,SAAUv7M,CAAS,EACzCrsC,EAAOskP,YAAY,CAAGrB,EAAekD,gBAAgB,CAACnmP,EAAO8nP,cAAc,CAAE1qK,CAAQ,CAAC,EAAE,CAAEp9E,EAAOskP,YAAY,CAAEtkP,EAAOkmP,cAAc,EACpIlmP,EAAO8kP,eAAe,CAAG7B,EAAekD,gBAAgB,CAACnmP,EAAO+nP,iBAAiB,CAAE3qK,CAAQ,CAAC,EAAE,CAAEp9E,EAAO8kP,eAAe,EACtH9kP,EAAOgoP,kBAAkB,CAAG/E,EAAekD,gBAAgB,CAACnmP,EAAOioP,oBAAoB,CAAE7qK,CAAQ,CAAC,EAAE,CAAEp9E,EAAOgoP,kBAAkB,EAC/HhoP,EAAOulP,yBAAyB,CAAGtC,EAAegD,2BAA2B,CAACjmP,EAAOonP,gBAAgB,CAAC,EAAE,CAAEpnP,EAAOulP,yBAAyB,EAE1IvlP,EAAOkoP,YAAY,GACnB9qK,EAAS1vE,QAAQ,CAAC,UACd1N,EAAOskP,YAAY,EACnBtkP,EAAOkmP,cAAc,CAACx4O,QAAQ,CAAC,UAG/B1N,EAAOknP,YAAY,EACnBjE,EAAeyC,oBAAoB,CAAC1lP,EAAOonP,gBAAgB,CAAEpnP,EAAOkmP,cAAc,EAGtF,IAAIiC,EAAwB,WACxBlF,EAAe2C,cAAc,CACzBxoK,EACAp9E,EAAOonP,gBAAgB,CACvBpnP,EAAOkmP,cAAc,CACrBlmP,EAAOqnP,mBAAmB,CAC1BrnP,EAAOskP,YAAY,CACnBtkP,EAAO8kP,eAAe,CACtB9kP,EAAOulP,yBAAyB,CAChCvlP,EAAOilP,oBAAoB,EAG3B54M,CAAAA,KAAmB,IAAnBA,GAAwBA,CAAc,IAAdA,CAAiB,GACzC/iD,EAAS,WACL0W,EAAOooP,qBAAqB,CAAC9xI,KAAK,EACtC,EAER,EAEA6xI,IAEuD,IAAnDnoP,EAAO4mP,gBAAgB,CAACj/P,OAAO,CAAC0gQ,OAAO,CAACvrO,MAAM,EAC9C9c,EAAO4mP,gBAAgB,CAACj/P,OAAO,CAAClE,IAAI,CAAC,WACjC0kQ,GACJ,GAGJnoP,EAAOmsJ,QAAQ,CAAG,GAClBs6F,EAAa6B,cAAc,CAACC,KAAK,CAACvoP,EAAOynP,aAAa,CAC1D,EAEAznP,EAAOynP,aAAa,CAAG,WACnBznP,EAAOwoP,cAAc,GACrBprK,EAAS3vE,WAAW,CAAC,UACrBzN,EAAOmsJ,QAAQ,CAAG,GAClBs6F,EAAa6B,cAAc,CAACG,QAAQ,CAACzoP,EAAOynP,aAAa,EACzDznP,EAAO0oP,oBAAoB,GAEvB1oP,EAAOskP,YAAY,EACnBtkP,EAAOkmP,cAAc,CAACz4O,WAAW,CAAC,SAE1C,EAEAzN,EAAO2oP,cAAc,CAAG,SAAUziQ,CAAO,QACjCA,EAAAA,GAEIA,CAAAA,SAAAA,EAAQJ,YAAY,CAAC,oBACrBI,KAAAA,EAAQJ,YAAY,CAAC,oBACrBI,UAAAA,EAAQsoH,OAAO,CAAC1zG,WAAW,IAC3B5U,aAAAA,EAAQsoH,OAAO,CAAC1zG,WAAW,EAAgB,CAOvD,EAEAkF,EAAO4oP,iBAAiB,CAAG,WACvB5oP,EAAO0nP,oBAAoB,CAAG1nP,EAAO2oP,cAAc,CAAClkQ,SAASijH,aAAa,CAC9E,EAEA1nG,EAAO6nP,mBAAmB,CAAG,WACrB7nP,EAAO+mP,gBAAgB,EACvB/mP,EAAO6oP,KAAK,CAAC7oP,EAAO+mP,gBAAgB,CAE5C,EAEA/mP,EAAO0oP,oBAAoB,CAAG,WACtB1oP,EAAOinP,iBAAiB,EACxBjnP,EAAO6oP,KAAK,CAAC7oP,EAAOinP,iBAAiB,CAE7C,EAGAjnP,EAAO8oP,cAAc,CAAG,WACpB9oP,EAAO+oP,WAAW,CAAG/oP,EAAOonP,gBAAgB,CAAC,EAAE,CAACthQ,YAAY,CAAC,YAEzDka,EAAO+oP,WAAW,EAClB/oP,EAAO6oP,KAAK,CAAC7oP,EAAO+oP,WAAW,CAEvC,EAEA/oP,EAAOgpP,+BAA+B,CAAG,SAAU38N,CAAC,EAC5CvrC,EAAQmoQ,uBAAuB,CAAC58N,EAAG+wD,CAAQ,CAAC,EAAE,GAC9Cp9E,EAAOynP,aAAa,EAE5B,EAEAznP,EAAOkpP,sBAAsB,CAAG,WAC5B5/P,EAAS,WACL0W,EAAOynP,aAAa,GACpBznP,EAAOooP,qBAAqB,CAACe,mBAAmB,CAAC,GACrD,EAAG,IACP,EAEAnpP,EAAOopP,UAAU,CAAG,SAAU/8N,CAAC,EACT,KAAdA,EAAEtoC,OAAO,GACTsoC,EAAEroC,eAAe,GACjBgc,EAAOooP,qBAAqB,CAACiB,aAAa,GAC1CrpP,EAAOooP,qBAAqB,CAACkB,YAAY,CAACj9N,EAAGrsB,EAAOonP,gBAAgB,CAAC,EAAE,EAE/E,EAEApnP,EAAOooP,qBAAqB,CAAG,CAC3B/jQ,YAAa,SAAUklQ,CAAM,SACzB,EACWvpP,EAAOqnP,mBAAmB,CAAC,EAAE,CAACnxO,aAAa,CAAC,kBAE5ClW,EAAOqnP,mBAAmB,CAAC,EAAE,CAAChhQ,gBAAgB,CAAC,iBAE9D,EAEAijQ,aAAc,SAAUj9N,CAAC,CAAEzoC,CAAM,CAAE4lQ,CAAK,EAEhCn9N,CAAAA,CAAAA,GAAKA,IAAAA,EAAEtoC,OAAO,EAAWylQ,CAAI,GAI7B5lQ,GACAA,EAAOF,KAAK,EAEpB,EAEA+lQ,WAAY,SAAUp9N,CAAC,EAInB,OAHkB,IAAdA,EAAEtoC,OAAO,EACTsoC,EAAEvnC,cAAc,GAEbunC,EAAEzoC,MAAM,EAGnBulQ,oBAAqB,SAAUK,CAAK,EAC5BxpP,CAAAA,EAAOskP,YAAY,EAAIkF,CAAI,GAC3BlgQ,EACI,YACI,IAAI,CAACggQ,YAAY,CAAC,KAAMtpP,EAAOonP,gBAAgB,CAAC,EAAE,CACtD,GAAE3lQ,IAAI,CAAC,IAAI,EAGvB,EAEA4nQ,cAAe,WACXrpP,EAAOqnP,mBAAmB,CAACziQ,MAAM,CAAC,UAAWob,EAAO0pP,oBAAoB,EACxE1pP,EAAOynP,aAAa,GACpB,IAAI,CAAC0B,mBAAmB,EAC5B,EAEA7yI,MAAO,SAAUjqF,CAAC,EAEdrsB,EAAOqnP,mBAAmB,CAACziQ,MAAM,CAAC,UAAWob,EAAO0pP,oBAAoB,EAG9D,KAAK,IAAXr9N,GACAq6N,EAAiBG,UAAU,CAACn5O,QAAQ,CAAC,eAEzC,IAAI,CAAC47O,YAAY,CAACj9N,EAAG,IAAI,CAAChoC,WAAW,CAAC,KAEtC2b,EAAOqnP,mBAAmB,CAAC5lQ,IAAI,CAAC,UAAWue,EAAO0pP,oBAAoB,CAC1E,EAEA53M,KAAM,SAAUzlB,CAAC,EACb,IAGIslF,EAHA7P,EAAU,IAAI,CAAC2nJ,UAAU,CAACp9N,GAC1Bs9N,EAAW,IAAI,CAACtlQ,WAAW,GAC3Bk3M,EAAgBp1M,MAAMlD,SAAS,CAAC8D,OAAO,CAACzF,IAAI,CAACqoQ,EAAU7nJ,GAI3D,GAAIy5F,EAAgBouD,EAASrlQ,MAAM,CAAG,EAClCi3M,GAAiB,MACd,CAEe,IAAdlvK,EAAEtoC,OAAO,EAAWsoC,EAAE8tG,QAAQ,EAC9Bn6H,EAAOooP,qBAAqB,CAACiB,aAAa,GAE9C,MACJ,CAEA13I,EAAWg4I,CAAQ,CAACpuD,EAAc,CAClC,IAAI,CAAC+tD,YAAY,CAACj9N,EAAGslF,EACzB,EAEA3T,KAAM,SAAU3xE,CAAC,EACb,IAGIu9N,EAHA9nJ,EAAU,IAAI,CAAC2nJ,UAAU,CAACp9N,GAC1Bs9N,EAAW,IAAI,CAACtlQ,WAAW,GAC3Bk3M,EAAgBp1M,MAAMlD,SAAS,CAAC8D,OAAO,CAACzF,IAAI,CAACqoQ,EAAU7nJ,GAI3D,GAAIy5F,EAAgB,EAChBA,GAAiB,MAGhB,CACDlvK,EAAEvnC,cAAc,GAChB,IAAI,CAACwkQ,YAAY,CAACj9N,EAAGrsB,EAAOonP,gBAAgB,CAAC,EAAE,CAAE,IACjDpnP,EAAOooP,qBAAqB,CAACiB,aAAa,GAC1C,MACJ,CAEAO,EAAWD,CAAQ,CAACpuD,EAAc,CAClC,IAAI,CAAC+tD,YAAY,CAACj9N,EAAGu9N,EACzB,CACJ,EAEA5pP,EAAO0pP,oBAAoB,CAAG,SAAUr9N,CAAC,EAEjCA,KAAAA,EAAEtoC,OAAO,EAAWsoC,KAAAA,EAAEtoC,OAAO,EAAYsoC,CAAAA,IAAAA,EAAEtoC,OAAO,EAAWsoC,EAAE8tG,QAAQ,EAIlE9tG,CAAAA,KAAAA,EAAEtoC,OAAO,EAAWsoC,KAAAA,EAAEtoC,OAAO,EAAYsoC,IAAAA,EAAEtoC,OAAO,EAAUsoC,EAAE8tG,QAAQ,GAC3En6H,EAAOooP,qBAAqB,CAACpqJ,IAAI,CAAC3xE,GAJlCrsB,EAAOooP,qBAAqB,CAACt2M,IAAI,CAACzlB,EAM1C,EAEArsB,EAAO6pP,yBAAyB,CAAG,SAAUx9N,CAAC,EAEtCA,KAAAA,EAAEtoC,OAAO,EAAWsoC,KAAAA,EAAEtoC,OAAO,EAAWsoC,KAAAA,EAAEtoC,OAAO,EAAWsoC,KAAAA,EAAEtoC,OAAO,EAAYsoC,CAAAA,IAAAA,EAAEtoC,OAAO,EAAWsoC,EAAE8tG,QAAQ,EAgB1G9tG,CAAAA,KAAAA,EAAEtoC,OAAO,EAAWsoC,KAAAA,EAAEtoC,OAAO,EAAYsoC,IAAAA,EAAEtoC,OAAO,EAAUsoC,EAAE8tG,QAAQ,GACvEn6H,EAAOmsJ,QAAQ,EACfnsJ,EAAOynP,aAAa,IAjBN,IAAdp7N,EAAEtoC,OAAO,EACTsoC,EAAEvnC,cAAc,GAKfkb,EAAOmsJ,QAAQ,EACZ9/H,IAAAA,EAAEtoC,OAAO,GACTic,EAAO8oP,cAAc,GACrB9oP,EAAO2nP,YAAY,GACnB3nP,EAAOooP,qBAAqB,CAAC9xI,KAAK,CAACjqF,IAUnD,EAEArsB,EAAO8pP,cAAc,CAAG,WAChBp+M,EAAiBgD,KAAK,EACtB1uC,EAAOonP,gBAAgB,CAAC3lQ,IAAI,CAAC,aAAcue,EAAO4oP,iBAAiB,EAEvE5oP,EAAOonP,gBAAgB,CAAC3lQ,IAAI,CAAC,QAASue,EAAOwnP,cAAc,EAC3DxnP,EAAOJ,GAAG,CAAC,WAAY,WACnBI,EAAOkmP,cAAc,CAAC57P,MAAM,EAChC,GACA8yF,EAAS39D,EAAE,CAAC,WAAY,WACpBzf,EAAOkmP,cAAc,CAAC57P,MAAM,EAChC,GAEKohD,EAAiBgD,KAAK,EACvB1uC,EAAOonP,gBAAgB,CAAC3lQ,IAAI,CAAC,UAAWue,EAAO6pP,yBAAyB,CAEhF,EAEA7pP,EAAOkoP,YAAY,CAAG,WAGlB,GAFAxB,EAAiBG,UAAU,CAACplQ,IAAI,CAAC,QAASue,EAAOgpP,+BAA+B,EAChFhpP,EAAOkmP,cAAc,CAACzkQ,IAAI,CAAC,QAASue,EAAOkpP,sBAAsB,EAC7DlpP,EAAOskP,YAAY,CAAE,CACrB,IAAItkG,EAAQ,CACRt0G,CAAAA,EAAiBw5M,OAAO,EACxBllG,CAAAA,EAAQ,GAAE,EAEd12J,EAAS,WAEL,IAAIygQ,EAAgB/pP,EAAOskP,YAAY,CAAC35N,SAAS,CACjD3qB,EAAOskP,YAAY,CAAC5/P,gBAAgB,CAAC,SAAU,WACvCqlQ,IAAkB/pP,EAAOskP,YAAY,CAAC35N,SAAS,EAC/C3qB,EAAOynP,aAAa,EAE5B,EACJ,EAAGznG,EACP,CACIhgJ,EAAOgoP,kBAAkB,EACzBhoP,EAAOgoP,kBAAkB,CAACtjQ,gBAAgB,CAAC,SAAUsb,EAAOynP,aAAa,EAGxE/7M,EAAiBgD,KAAK,EACvBg4M,EAAiBG,UAAU,CAAC,EAAE,CAACniQ,gBAAgB,CAAC,UAAWsb,EAAOopP,UAAU,CAAE,GAEtF,EAEAppP,EAAOwoP,cAAc,CAAG,WACpB9B,EAAiBG,UAAU,CAACjiQ,MAAM,CAAC,QAASob,EAAOgpP,+BAA+B,EAClFhpP,EAAOkmP,cAAc,CAACthQ,MAAM,CAAC,QAASob,EAAOkpP,sBAAsB,EAC/DlpP,EAAOskP,YAAY,EACnBtkP,EAAOskP,YAAY,CAACz/P,mBAAmB,CAAC,SAAUmb,EAAOynP,aAAa,EAEtEznP,EAAOgoP,kBAAkB,EACzBhoP,EAAOgoP,kBAAkB,CAACnjQ,mBAAmB,CAAC,SAAUmb,EAAOynP,aAAa,EAG3E/7M,EAAiBgD,KAAK,EACvBg4M,EAAiBG,UAAU,CAAC,EAAE,CAAChiQ,mBAAmB,CAAC,UAAWmb,EAAOopP,UAAU,CAAE,GAEzF,EAEAppP,EAAOiqB,IAAI,CAAG,WACVjqB,EAAOy+E,UAAU,GACjBz+E,EAAO8mP,QAAQ,GACf9mP,EAAOo8H,UAAU,GACjBp8H,EAAO8pP,cAAc,EACzB,EAEA9pP,EAAOgqP,gBAAgB,CAAG,SAAUC,CAAQ,CAAE3sP,CAAQ,EAClD,IAAIoG,EAAWtI,EAAGuI,KAAK,GAGvB,GAAI/B,KAAqB3a,IAArB2a,CAAM,CAACqoP,EAAS,CAAgB,CAChC,IAAIC,EAAetoP,EAAO6R,QAAQ,CAACw2O,EAAU,SAAUvxO,CAAM,CAAEm6F,CAAM,EAC7Dn6F,IAAWm6F,IACX7yG,CAAM,CAACiqP,EAAW,OAAO,CAAGvxO,EAC5BhV,EAAS3b,OAAO,GAChBmiQ,IAER,GACA5sP,EAASvU,IAAI,CAAC2a,EAAS/b,OAAO,CAClC,MACIqY,CAAM,CAACiqP,EAAW,OAAO,CAAG,EAEpC,EAEAjqP,EAAOmqP,iBAAiB,CAAG,SAAUC,CAAS,EAI1C,IAAK,IAHDH,EACA3sP,EAAW,EAAE,CAERnW,EAAI,EAAGkmE,EAAM+8L,EAAU9lQ,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IAC7C8iQ,EAAWG,CAAS,CAACjjQ,EAAE,CAEvB6Y,EAAOgqP,gBAAgB,CAACC,EAAU3sP,UAGtC,EAAahZ,MAAM,CAAG,GACX8W,EAAGqC,GAAG,CAACH,EAItB,CACJ,EACH,CAED4Q,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACjC/a,EAAM2tP,oBAAoB,GAC1B,IAAI0D,EAA2BrxP,EAAMmxP,iBAAiB,CAAC,CAAC,aAAc,gBAAiB,mBAAmB,EAGtGE,EACAA,EAAyB5mQ,IAAI,CAAC,WAC1BuV,EAAMixB,IAAI,EACd,GAIAjxB,EAAMixB,IAAI,EAElB,CACJ,CACJ,EACH,C,iCCjcD,SAASyhB,EAAiB9vC,CAAO,EAC7B,IAAI,CAAClS,MAAM,CAAGkS,EACd,IAAI,CAAC0uP,aAAa,CAAG,KACrB,IAAI,CAACC,cAAc,CAAG,KACtB,IAAI,CAACC,IAAI,CAAG,GACZ,IAAI,CAACpxJ,EAAE,CAAG,GACV,IAAI,CAACqxJ,WAAW,CAAG,GACnB,IAAI,CAACC,OAAO,CAAG,GACf,IAAI,CAACC,GAAG,CAAG,GACX,IAAI,CAACzF,OAAO,CAAG,GACf,IAAI,CAAC0F,MAAM,CAAG,GACd,IAAI,CAACC,MAAM,CAAG,GACd,IAAI,CAACn8M,KAAK,CAAG,GACb,IAAIo8M,EAAc,CAAC,UAAW,QAAS,UAAW,aAAc,YAAa,WAAY,YAAa,aAAc,SAAS,CACzHzyN,EAAO,IAAI,CA6Bf,SAAS0yN,EAAcC,CAAM,EACzB,IAAIC,EAAYD,KAAmB/jQ,IAAnB+jQ,EAAOE,OAAO,CAAiBF,EAAOE,OAAO,CAACpwP,WAAW,GAAKkwP,EAAOG,MAAM,CAACrwP,WAAW,EACvGgwP,CAAAA,CAAW,CAACA,EAAY/jQ,OAAO,CAAC,MAAQkkQ,GAAW,CAAGA,CAC1D,CAsEA,SAASG,EAAYJ,CAAM,EACvB,IAAIK,EAAchzN,EAAK3uC,MAAM,CAAC4hQ,SAAS,CAACC,SAAS,CAACxkQ,OAAO,CAACikQ,EAAOvvN,OAAO,EAMxE,GAJsBx0C,KAAAA,IAAlB+jQ,EAAOxiI,MAAM,EACbwiI,CAAAA,EAAOxiI,MAAM,CAAG,GAGhB6iI,EAAc,GAAI,CAClB,IAAI/8O,EAAO,GACPlK,EAAO,GASX,GARI4mP,KAAmB/jQ,IAAnB+jQ,EAAOE,OAAO,EACd9mP,EAAO,UACPkK,EAAO08O,EAAOE,OAAO,CAACpwP,WAAW,KAEjCsJ,EAAO,SACPkK,EAAO08O,EAAOG,MAAM,CAACrwP,WAAW,IAEpCu9B,CAAI,CAAC/pB,EAAK,CAAG,GACT,CAAC08O,EAAOQ,aAAa,CAAE,CACvB,IAAIC,EAAkBT,EAAOvvN,OAAO,CAACn3C,MAAM,CAAG+mQ,EAAc,EACxDK,EAAgBrzN,EAAK3uC,MAAM,CAAC4hQ,SAAS,CAACC,SAAS,CAACvpO,SAAS,CAACypO,EAAiBA,EAAkBT,EAAOxiI,MAAM,CACjF,KAAzBkjI,EAAcpnQ,MAAM,EAAUonQ,MAAAA,CAAa,CAAC,EAAE,EAC9CA,CAAAA,EAAgBA,CAAa,CAAC,EAAE,EAEpCrzN,CAAI,CAACj0B,EAAO,UAAU,CAAGsnP,CAC7B,CAEA,OADAX,EAAcC,GACP,EACX,CACJ,CA/HA,IAAI,CAAC/gO,IAAI,CAAG,WACR0hO,CAgCJ,WACI,IAqGA,UAAa,oDACTtzN,EAAKuzN,OAAO,CAAG,GACfvzN,EAAK+gE,EAAE,CAAG,GACV2xJ,EAAc,CACVG,QAAS,IACb,GACO,MAEP,oCAAoCjnQ,IAAI,CAACo0C,EAAK3uC,MAAM,CAAC4hQ,SAAS,CAACC,SAAS,IACxElzN,EAAKkyN,cAAc,CAAG,KACtBlyN,EAAK+gE,EAAE,CAAG,GACV2xJ,EAAc,CACVG,QAAS,IACb,GACO,GAPX,GArFA,IAAK,IAnBDW,EAAQ,CACR,CACIX,QAAS,OACTzvN,QAAS,MACb,EACA,CACIyvN,QAAS,UACTzvN,QAAS,SACb,EACA,CACIyvN,QAAS,SACTzvN,QAAS,QACb,EACA,CACIyvN,QAAS,SACTzvN,QAAS,SACb,EACH,CAEQt0C,EAAI,EAAGA,EAAI0kQ,EAAMvnQ,MAAM,CAAE6C,IAC9B,GAAIikQ,EAAYS,CAAK,CAAC1kQ,EAAE,EACpB,MAGRkxC,CAAAA,EAAKoyN,WAAW,CAAG,GACvB,MAOQW,EAAY,CACRD,OAAQ,UACR1vN,QAAS,UAIT+sF,OAAQ,CACZ,KAmFA,iBAAiBvkI,IAAI,CAACo0C,EAAK3uC,MAAM,CAAC4hQ,SAAS,CAACC,SAAS,GAUrD,WAAWtnQ,IAAI,CAACo0C,EAAK3uC,MAAM,CAAC4hQ,SAAS,CAACQ,QAAQ,GAAKzzN,EAAK3uC,MAAM,CAAC4hQ,SAAS,CAACS,cAAc,EAAI1zN,EAAK3uC,MAAM,CAAC4hQ,SAAS,CAACS,cAAc,CAAG,KATlI1zN,EAAKsyN,GAAG,CAAG,GAEXI,EAAc,CACVI,OAAQ,KACZ,IAlKJa,WAuLA,GAAI,kBAAmB3zN,EAAK3uC,MAAM,CAAE,CAChC2uC,EAAKqW,KAAK,CAAG,GAEb,MACJ,CACA,GAAI,iBAAkBrW,EAAK3uC,MAAM,CAAE,CAC/B2uC,EAAKqW,KAAK,CAAG,GACbq8M,EAAc,CACVI,OAAQ,OACZ,GACA,MACJ,CACA9yN,EAAKqW,KAAK,CAAG,EAEjB,IApMIu9M,WAOA,IAAIC,EAAU7zN,EAAK3uC,MAAM,CAACjF,QAAQ,CAACyxB,aAAa,CAAC,QACjD/H,QAAQjoB,OAAO,CAACgmQ,GAASz+O,WAAW,CAAC,SACrC,IAAK,IAAItmB,EAAI,EAAGo8K,EAAKunF,EAAYxmQ,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAC7CgnB,QAAQjoB,OAAO,CAACgmQ,GAASx+O,QAAQ,CAACo9O,CAAW,CAAC3jQ,EAAE,CAExD,GAXA,CAoMJ,CAEAukD,EAAiBlkD,OAAO,CAAG,CAAC,UAAU,CACtCF,EAAAA,CAAUA,CAACC,OAAO,CAAC,mBAAoBmkD,E,uDCjOhC,OAAMygN,EACTzkQ,YAAY0T,CAAE,CAAEC,CAAoB,CAAE,CAClC,IAAI,CAAC2G,GAAG,CAAG5G,EACX,IAAI,CAACyO,qBAAqB,CAAGxO,EAC7B,IAAI,CAAC+wP,iBAAiB,CAAG,IAAIh4N,IAC7B,IAAI,CAACi4N,gBAAgB,CAAG,IAAIj4N,GAChC,CAEAs3J,cAAc38L,CAAO,CAAE,CACnB,OAAO,IAAI,CAACu9P,cAAc,CAACrxG,EAAAA,CAA4BA,CAAC5sD,eAAe,CAAEt/F,EAC7E,CAEA44M,OAAO54M,CAAO,CAAE,CACZ,OAAO,IAAI,CAACu9P,cAAc,CAACrxG,EAAAA,CAA4BA,CAAC7sD,OAAO,CAAEr/F,EACrE,CAEAw9P,qBAAqBx9P,CAAO,CAAE,CAC1B,OAAO,IAAI,CAACu9P,cAAc,CAACrxG,EAAAA,CAA4BA,CAAC3sD,uBAAuB,CAAEv/F,EACrF,CAEAy9P,mBAAmBz9P,CAAO,CAAE,CACxB,OAAO,IAAI,CAACu9P,cAAc,CAACrxG,EAAAA,CAA4BA,CAAC1sD,qBAAqB,CAAEx/F,EACnF,CAEAi2M,WAAWj2M,CAAO,CAAE,CAChB,OAAO,IAAI,CAACu9P,cAAc,CAACrxG,EAAAA,CAA4BA,CAACzsD,WAAW,CAAEz/F,EACzE,CAEAu9P,eAAepoQ,CAAG,CAAE6K,CAAO,CAAE,CACzB,IAAMoE,EAAa,IAAI,CAACi5P,iBAAiB,CAAC/7P,GAAG,CAACnM,GAC9C,GAAIiP,KAAelM,IAAfkM,EACA,OAAO,IAAI,CAAC6O,GAAG,CAACgE,IAAI,CAAC7S,GAGzB,IAAM+0C,EAAU,IAAI,CAACmkN,gBAAgB,CAACh8P,GAAG,CAACnM,GAC1C,GAAIgkD,KAAYjhD,IAAZihD,EACA,OAAOA,EAGX,IAAM7lB,EAAU,IAAI,CAACxY,qBAAqB,CACrC3W,oBAAoB,CAAChP,EAAK6K,GAC1BtL,IAAI,CAAC,IACF,IAAMD,EAAQ2M,EAAShI,IAAI,CAE3B,OADA,IAAI,CAACikQ,iBAAiB,CAACl5M,GAAG,CAAChvD,EAAKV,GACzBA,CACX,GACC8E,KAAK,CAAC,IACI,IAEVC,OAAO,CAAC,IAAM,IAAI,CAAC8jQ,gBAAgB,CAACv6P,MAAM,CAAC5N,IAGhD,OADA,IAAI,CAACmoQ,gBAAgB,CAACn5M,GAAG,CAAChvD,EAAKm+B,GACxBA,CACX,CACJ,CAEA8pO,EAAsB3kQ,OAAO,CAAG,CAAC,KAAM,uBAAuB,CAC9DF,EAAAA,CAAUA,CAACC,OAAO,CAAC,wBAAyB4kQ,E,gCCvD5C,SAASprN,EAAKnI,CAAO,CAAEh9B,CAAO,EAG1B,IAAI6wP,EAAa,CACb9zM,IAAK,IACT,EAsBA,SAAS1X,IACL,OAAOwrN,EAAW9zM,GAAG,CAiCzB,SAAS+zM,IACL,OAAO9zN,EAAQtkC,mBAAmB,GAAG7Q,IAAI,CAAC,SAAUq8K,CAAO,EAEvD,OADA2sF,EAAW9zM,GAAG,CAAGmnH,EACV7+H,GACX,EACJ,CAzDA,IAAI,CAACA,MAAM,CAAGA,EACd,IAAI,CAAC0rN,MAAM,CAyBX,SAAgB7sF,CAAO,EAEnB,OADA2sF,EAAW9zM,GAAG,CAAGmnH,EACV2sF,EAAW9zM,GAAG,EA1BzB,IAAI,CAACkpC,KAAK,CAoCV,WACI,OAAO4qK,OAAAA,EAAW9zM,GAAG,CAAY8zM,EAAW9zM,GAAG,CAACjkD,MAAM,CAAG,EAC7D,EArCA,IAAI,CAAC+qL,WAAW,CA0ChB,WACI,OAAOgtE,OAAAA,EAAW9zM,GAAG,CAAY8zM,EAAW9zM,GAAG,CAACq1L,SAAS,CAAG,IAAMye,EAAW9zM,GAAG,CAACw8H,OAAO,CAAG,EAC/F,EA3CA,IAAI,CAACu3E,QAAQ,CAAGA,EAChB,IAAI,CAAC7e,UAAU,CAyDf,WACI,OAAO6e,IAAWjpQ,IAAI,CAAC,SAAUq8K,CAAO,EACpC,MAAO,CAAC,CAACA,CACb,EACJ,EA5DA,IAAI,CAAClK,UAAU,CAiEf,WACI,OAAO62F,OAAAA,EAAW9zM,GAAG,EAAa8zM,EAAW9zM,GAAG,CAAC+5D,UAAU,EAjE/D,IAAI,CAACj4D,KAAK,CAwBV,WACIgyM,EAAW9zM,GAAG,CAAG,IACrB,EAzBA,IAAI,CAAC8gL,mBAAmB,CAsExB,WACI,OAAOgzB,OAAAA,EAAW9zM,GAAG,EAAa8zM,EAAW9zM,GAAG,CAACi0M,iBAAiB,EAtEtE,IAAI,CAACC,SAAS,CA4Ed,WACI,OAAOJ,EAAW9zM,GAAG,CAAC4zE,mBAAmB,EA5E7C,IAAI,CAACz4E,6BAA6B,CA+ElC,WACI,OAAO24M,OAAAA,EAAW9zM,GAAG,EAAY8zM,EAAW9zM,GAAG,CAACm0M,iBAAiB,EA/ErE,IAAI,CAACC,uBAAuB,CAqF5B,WACI,OAAON,OAAAA,EAAW9zM,GAAG,EAAY8zM,EAAW9zM,GAAG,CAACq0M,uBAAuB,CAE/E,C,SA/GA1lQ,EAAAA,CAAUA,CAACC,OAAO,CAAC,OAAQw5C,GAC3BA,EAAKv5C,OAAO,CAAG,CAAC,UAAW,UAAU,E,gBCCrC,SAASoxC,EAAQxpC,CAAK,CAAEgM,CAAE,CAAEtC,CAAe,CAAE3J,CAAoB,EAC7D,IAAI,CAACmF,mBAAmB,CAQxB,WACI,OAAOnF,EAAqBmF,mBAAmB,EACnD,EATA,IAAI,CAAC24P,gBAAgB,CAWrB,WACI,OAAO79P,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,6BAA6B9X,IAAI,CAAC,SAAU0M,CAAQ,EAEhG,MAAOA,EAAAA,EAAShI,IAAI,EAAUiT,EAAGpT,MAAM,EAC3C,EACJ,EAfA,IAAI,CAAC6xC,iBAAiB,CAiBtB,SAA2Bq5E,CAAW,CAAE1vH,CAAK,EACzC,OAAO4L,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,sCAAwC23G,EAAc,UAAY1vH,EACtH,EAlBA,IAAI,CAAC0pQ,iBAAiB,CAoBtB,WACI,OAAO99P,EAAMiB,GAAG,CAACyI,EAAgByC,YAAY,CAAG,6BACpD,CACJ,CA9BAjU,E,OAAAA,CAAUA,CAACC,OAAO,CAAC,UAAWqxC,GAC9BA,EAAQpxC,OAAO,CAAG,CAAC,QAAS,KAAM,kBAAmB,uBAAuB,E,wCCG5E,SAAS2lQ,EAAuBn5N,CAAS,EACrC,IAAI,CAACo5N,kBAAkB,CAAG,CAAC,QAAS,UAAW,WAAW,CAC1D,IAAI,CAACzrQ,UAAU,CAAG,CACd0rQ,QAAS,CACLC,OAAQ,CAAEv7M,KAAM,GAAIopH,GAAI,EAAG,EAC3BoyF,OAAQ,CAAEx7M,KAAM,GAAIopH,GAAI,GAAI,CAChC,EACAqyF,UAAW,EACX17P,OAAQ,GACR9M,IAAK,EACL/C,OAAQ,GACRwrQ,GAAI,IACJC,MAAO,GACPC,IAAK,CAAC,IAAK,IAAI,CACfriM,EAAG,GACHib,EAAG,GACH1jF,KAAM,GACNE,IAAK,GACLV,UAAW,GACXT,QAAS,GACTU,WAAY,GACZR,UAAW,GACXqzB,OAAQ,GACRE,SAAU,EACd,EAEA,IAAI,CAACu4O,MAAM,CAAG,CACVF,MAAO,OACX,EAEA,IAAI,CAACG,WAAW,CAAG,CACfC,aAAc,CAAC,IAAI,CAACnsQ,UAAU,CAACU,SAAS,CAAE,IAAI,CAACV,UAAU,CAACC,OAAO,CAAC,CAClEmsQ,eAAgB,CAAC,IAAI,CAACpsQ,UAAU,CAACU,SAAS,CAAE,IAAI,CAACV,UAAU,CAACG,SAAS,CAAC,CACtEksQ,cAAe,CAAC,IAAI,CAACrsQ,UAAU,CAACW,UAAU,CAAE,IAAI,CAACX,UAAU,CAACC,OAAO,CAAC,CACpEqsQ,gBAAiB,CAAC,IAAI,CAACtsQ,UAAU,CAACW,UAAU,CAAE,IAAI,CAACX,UAAU,CAACG,SAAS,CAAC,CACxEosQ,UAAW,EAAE,EAEjB,IAAI,CAACL,WAAW,CAACK,SAAS,CAAG,IAAI,CAACL,WAAW,CAACC,YAAY,CAAC/uO,MAAM,CAAC,IAAI,CAAC8uO,WAAW,CAACI,eAAe,EAElG,IAAI,CAACE,UAAU,CAAG,SAAU9hO,CAAC,CAAEK,CAAK,EAEhC,MAAO0hO,CADQ,IAAI,CAACP,WAAW,CAACnhO,EAAQ,SAAS,EAAI,IAAI,CAACmhO,WAAW,CAACK,SAAS,EAC/DnnQ,OAAO,CAACslC,EAAEtoC,OAAO,EAAI,EACzC,EAQA,IAAI,CAACsqQ,eAAe,CAAG,SAAUhiO,CAAC,EAC9B,OAAO,IAAI,CAAC+gO,kBAAkB,CAACrmQ,OAAO,CAACslC,EAAEjoB,IAAI,EAAI,EACrD,EAEA,IAAI,CAACkqP,UAAU,CAAG,SAAUjiO,CAAC,EACzB,OAAO,IAAI,CAACuhO,MAAM,CAACF,KAAK,GAAKrhO,EAAEnoC,GAAG,EAGtC,IAAI,CAACqqQ,UAAU,CAAG,SAAUliO,CAAC,EACzB,OAAO,EAAG8tG,QAAQ,EAAI9tG,KAAAA,EAAEtoC,OAAO,EAAasoC,UAAAA,EAAEjoB,IAAI,EAAgBioB,KAAAA,EAAEtoC,OAAO,EAG/E,IAAI,CAACyqQ,cAAc,CAAG,SAAUniO,CAAC,EAC7B,OAAOA,EAAE8tG,QAAQ,EAAI9tG,KAAAA,EAAEtoC,OAAO,EAGlC,IAAI,CAAC0qQ,aAAa,CAAG,SAAUpiO,CAAC,EAG5B,OAAOA,EAAEzV,OAAO,EAAIyV,EAAEqiO,OAAO,EAGjC,IAAI,CAACC,YAAY,CAAG,SAAUtiO,CAAC,EAC3B,OAAOA,EAAEtC,MAAM,EAAIsC,KAAAA,EAAEtoC,OAAO,EAGhC,IAAI,CAAC6qQ,SAAS,CAAG,SAAUviO,CAAC,EAGxB,OAAOA,EAAEzV,OAAO,EAAIyV,EAAEqiO,OAAO,EAAKriO,UAAAA,EAAEjoB,IAAI,EAAgBioB,KAAAA,EAAEtoC,OAAO,EAGrE,IAAI,CAAC8qQ,QAAQ,CAAG,SAAUxiO,CAAC,EACvB,OAAO,IAAI,CAAC1qC,UAAU,CAACqD,GAAG,GAAKqnC,EAAEtoC,OAAO,EAI5C,IAAI,CAAC+qQ,WAAW,CAAG,SAAUziO,CAAC,EAC1B,OAAOA,EAAEtoC,OAAO,GAAK,IAAI,CAACpC,UAAU,CAAC2pE,CAAC,EAAI,IAAI,CAACsjM,SAAS,CAACviO,EAC7D,EAEA,IAAI,CAAC0iO,qBAAqB,CAAG,SAAU1iO,CAAC,EACpC,OAAOA,EAAEtoC,OAAO,GAAK,IAAI,CAACpC,UAAU,CAAC4kF,CAAC,EAAI,IAAI,CAACqoL,SAAS,CAACviO,EAC7D,EAEA,IAAI,CAAC2iO,QAAQ,CAAG,SAAU3iO,CAAC,CAAE4iO,CAAa,CAAEC,CAAgB,EACxD,IAAIC,EAAuB,EAAE,CAE7B,GAAIF,EAAe,CACf,IAAIG,EAA0B,IAAI,CAACztQ,UAAU,CAACutQ,GAAoB,MAAM,EAAI,KACxEl7N,EAAU1hB,OAAO,CAAC88O,GAClBD,EAAuBA,EAAqBpwO,MAAM,CAACqwO,GAEnDD,EAAqBpmQ,IAAI,CAACqmQ,EAElC,CAEA,IAAIC,EAAqBF,EAAqBpoQ,OAAO,CAACslC,EAAEtoC,OAAO,EAAI,GAC/DurQ,EACI,EAAGvrQ,OAAO,EAAI,IAAI,CAACpC,UAAU,CAAC0rQ,OAAO,CAACC,MAAM,CAACv7M,IAAI,EAAI1lB,EAAEtoC,OAAO,EAAI,IAAI,CAACpC,UAAU,CAAC0rQ,OAAO,CAACC,MAAM,CAACnyF,EAAE,EAClG9uI,EAAEtoC,OAAO,EAAI,IAAI,CAACpC,UAAU,CAAC0rQ,OAAO,CAACE,MAAM,CAACx7M,IAAI,EAAI1lB,EAAEtoC,OAAO,EAAI,IAAI,CAACpC,UAAU,CAAC0rQ,OAAO,CAACE,MAAM,CAACpyF,EAAE,OAE3G,CAAI,IAAI,CAACqzF,cAAc,CAACniO,IAIjBijO,CAAAA,GAAUD,CAAiB,CACtC,EAEA,IAAI,CAACE,2BAA2B,CAAG,SAAUljO,CAAC,CAAEmjO,CAAe,EAC3D,IAAIC,EAA0B,CAAC,IAAI,CAAC9tQ,UAAU,CAACqD,GAAG,CAAE,IAAI,CAACrD,UAAU,CAACkB,IAAI,CAAE,IAAI,CAAClB,UAAU,CAACoB,GAAG,CAAC,CAC1FysQ,GACAC,CAAAA,EAA0BA,EAAwB1wO,MAAM,CAAC,CAAC,IAAI,CAACp9B,UAAU,CAAC6rQ,SAAS,CAAE,IAAI,CAAC7rQ,UAAU,CAACmQ,MAAM,CAAC,GAGhH,IAAImtB,EAAY,IAAI,CAAC6vO,WAAW,CAACziO,GAC7BqjO,EAAW,IAAI,CAACvB,UAAU,CAAC9hO,GAC3B8tG,EAAW,IAAI,CAACo0H,UAAU,CAACliO,GAC3B0iO,EAAwB,IAAI,CAACA,qBAAqB,CAAC1iO,GACnDsjO,EAAStjO,EAAEtoC,OAAO,GAAK,IAAI,CAACpC,UAAU,CAACM,MAAM,CAC7C2tQ,EAAQvjO,EAAEtoC,OAAO,GAAK,IAAI,CAACpC,UAAU,CAAC8rQ,EAAE,CACxCoC,EAAsBJ,EAAwB1oQ,OAAO,CAACslC,EAAEtoC,OAAO,EAAI,GAEvE,OAAOk7B,GAAaywO,GAAYv1H,GAAY01H,GAAuBF,GAAUC,GAASb,CAC1F,CACJ,C,SA1IAznQ,EAAAA,CAAUA,CAACC,OAAO,CAAC,8BAA+B4lQ,GAClDA,EAAuB3lQ,OAAO,CAAG,CAAC,YAAY,E,wCCD9CF,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,yBAA0B,CACzC,WACA,YACA,SAAUzyB,CAAQ,CAAE0qC,CAAS,EACzB,MAAO,CACH+4E,QAAS,SAAU3iG,CAAO,EACtB,IAAIiuB,EAAO,IAAI,CACXy3N,EAAW97N,EAAU1hB,OAAO,CAAClI,EAAQhO,IAAI,EAGzC0zP,GAAY,CAAC1lP,EAAQiI,cAAc,CAAC,gBACpCjI,CAAAA,EAAQ,WAAc,CAAG,GAG7B,IAAI2lP,EAAa,IAAI31P,KAGjB4lM,EAAQgwD,YAAY,WAEpB,IAAIvoI,EAAWwoI,CADG,IAAI71P,KAAS21P,CAAS,EACV3lP,CAAAA,KAAqBnjB,IAArBmjB,EAAQ4iG,QAAQ,CAAiB,IAAO5iG,EAAQ4iG,QAAQ,EAG7D8iJ,CAAAA,EAAWroI,EAAW,GAAKr9G,EAAQhO,IAAI,CAACgO,EAAQ8lP,WAAW,CAAC,CAACC,eAAe,CAAG1oI,EAAW,IAE/GA,CAAAA,EAAW,GAGf,IAAIra,EAAQhjG,EAAQ6iG,SAAS,CAACwa,EAC9BqoI,CAAAA,EAAW1lP,EAAQhO,IAAI,CAACgO,EAAQ8lP,WAAW,CAAC,CAACE,OAAO,CAAChjJ,GAAShjG,EAAQhO,IAAI,CAACgxG,GAG3D,GAAZqa,IACA4oI,cAAcrwD,GAGV8vD,IACI1lP,EAAQ8lP,WAAW,CAAG9lP,EAAQhO,IAAI,CAAC9X,MAAM,CAAG,GAC5C8lB,EAAQ8lP,WAAW,GACnB73N,EAAK00E,OAAO,CAAC3iG,IAEbA,EAAQ8lP,WAAW,CAAG,GAItC,EAAG9lP,EAAQ41I,KAAK,EAAI,IAEpB,OAAOggD,CACX,EAEA9yF,iBAAkB,CACdojJ,OAAQ,SAAU7oI,CAAQ,EACtB,OAAOA,EAAWA,CACtB,EACA8oI,QAAS,SAAU9oI,CAAQ,EACvB,OAAOA,EAAY,GAAIA,CAAO,CAClC,EACA+oI,UAAW,SAAU/oI,CAAQ,EACzB,OAAOA,EAAW,GAAM,EAAIA,EAAWA,EAAW,GAAK,CAAC,EAAI,EAAIA,CAAO,EAAKA,CAChF,EACAgpI,YAAa,SAAUhpI,CAAQ,EAC3B,OAAOA,EAAWA,EAAWA,CACjC,EACAipI,aAAc,SAAUjpI,CAAQ,EAC5B,MAAO,EAAEA,EAAWA,EAAWA,EAAW,CAC9C,EACAta,eAAgB,SAAUsa,CAAQ,EAC9B,OAAOA,EAAW,GAAM,EAAIA,EAAWA,EAAWA,EAAW,CAACA,EAAW,GAAM,GAAIA,EAAW,GAAM,GAAIA,EAAW,GAAK,CAC5H,CACJ,EAQAqrD,oBAAqB,SAAU5sL,CAAO,CAAEszG,CAAS,CAAEm3J,CAAe,EAM9D,OALAzqQ,EAAQyxB,SAAS,CAAC9uB,GAAG,CAAC2wG,GACtBtzG,EAAQb,YAAY,CAAC,cAAe,QAI7BiE,EAAS,WACZpD,EAAQb,YAAY,CAAC,cAAe,SACpCa,EAAQyxB,SAAS,CAACrtB,MAAM,CAACkvG,EAC7B,EANe,MAAOm3J,GAAqC,IAAlBA,EAO7C,CACJ,CACJ,EACH,C,qIC1FM,OAAMC,EACTlpQ,YAAYsR,CAAK,CAAE9U,CAAG,CAAEiK,CAAK,CAAE3K,CAAK,CAAE,CAClC,IAAI,CAACijK,MAAM,CAAGztJ,EACd,IAAI,CAAC/D,EAAE,CAAGq0H,CAAAA,EAAAA,EAAAA,CAAAA,IACV,IAAI,CAACplI,GAAG,CAAGA,EACX,IAAI,CAACiK,KAAK,CAAGA,EACb,IAAI,CAAC3K,KAAK,CAAGA,GAAS,GACtB,IAAI,CAAC+qK,MAAM,CAAG,IACV,IAAI,CAAC/qK,KAAK,CAAGspI,EACb,IAAI,CAAC25B,MAAM,CAACl0I,WAAW,EAC3B,CACJ,CACJ,C,0BCNuD,OAEjDs+O,UAAgC9lQ,EAAAA,CAAWA,CAC7CrD,YAAYsY,CAAM,CAAEhV,CAAoB,CAAEmE,CAAoB,CAAE,CAC5D,KAAK,GACL,IAAI,CAACnE,oBAAoB,CAAGA,EAC5B,IAAI,CAACuJ,GAAG,CAAGpF,EAAqBkJ,cAAc,CAAC,IAAI,CAACtJ,OAAO,EAC3D,IAAI,CAACV,WAAW,CAAGC,EAAAA,CACnB,KAAI,CAACwiQ,SAAS,CAAG,GACjB,IAAI,CAACrqG,MAAM,CAAGzmJ,EACd,IAAI,CAAC6J,qBAAqB,CAAG1a,EAC7B,IAAI,CAAC9L,KAAK,CAAG,IAAI,CAACA,KAAK,CAAC5B,IAAI,CAAC,IAAI,EACjC,IAAI,CAACsvQ,UAAU,CAAG,IAAI,CAACA,UAAU,CAACtvQ,IAAI,CAAC,IAAI,EAE3C,IAAI,CAACuvQ,aAAa,CAAG,CACjB,IAAIJ,EAAiB,IAAI,CAACnqG,MAAM,CAAE,mBAAoBz7J,EAAqBS,SAAS,CAAC,kCAAmC,IACxH,IAAImlQ,EAAiB,IAAI,CAACnqG,MAAM,CAAE,oBAAqBz7J,EAAqBS,SAAS,CAAC,oCACzF,CAED,IAAI,CAACwlQ,eAAe,CAAG,CACnB,IAAIL,EAAiB,IAAI,CAACnqG,MAAM,CAAE,aAAcz7J,EAAqBS,SAAS,CAAC,qCAAsC,IACrH,IAAImlQ,EAAiB,IAAI,CAACnqG,MAAM,CAAE,2BAA4Bz7J,EAAqBS,SAAS,CAAC,sDAChG,CAED,IAAI,CAACylQ,wBAAwB,GAE7B,IAAI,CAACC,MAAM,CAAG,CAAE/7K,KAAM,IAAI,CAAC47K,aAAa,CAAC,EAAE,CAAC9sQ,GAAG,EAC/C,IAAI,CAACktQ,QAAQ,CAAG,CAAEh8K,KAAM,IAAI,CAAC67K,eAAe,CAAC,EAAE,CAAC/sQ,GAAG,CACvD,CAEAirH,WAAW+G,CAAO,CAAE,CACgBjvH,KAAAA,IAA5BivH,EAAQm7I,eAAe,EAAmBn7I,EAAQm7I,eAAe,CAAChkI,aAAa,IAC/E,IAAI,CAAC6jI,wBAAwB,EAErC,CAEAroN,UAAW,CACP,IAAI,CAACioN,SAAS,CAAG,EACrB,CAEAztQ,OAAQ,CAC2B,YAA3B,OAAO,IAAI,CAACmmD,UAAU,GACtB,IAAI,CAACA,UAAU,GACf,IAAI,CAACi9G,MAAM,CAACl0I,WAAW,GAE/B,CAEAw+O,YAAa,CACT,IAAI,CAACD,SAAS,CAAG,GACjB,IAAI,CAACrqG,MAAM,CAACl0I,WAAW,EAC3B,CAEA2+O,0BAA2B,CACvB,IAAI,CAACI,oBAAoB,CAAG,CACxB,IAAIV,EAAiB,IAAI,CAACnqG,MAAM,CAAE,SAAU,IAAI,CAACz7J,oBAAoB,CAACS,SAAS,CAAC,uCAChF,IAAImlQ,EAAiB,IAAI,CAACnqG,MAAM,CAAE,iBAAkB,IAAI,CAACz7J,oBAAoB,CAACS,SAAS,CAAC,gDACxF,IAAImlQ,EAAiB,IAAI,CAACnqG,MAAM,CAAE,UAAW,IAAI,CAACz7J,oBAAoB,CAACS,SAAS,CAAC,kCACjF,IAAImlQ,EAAiB,IAAI,CAACnqG,MAAM,CAAE,UAAW,IAAI,CAACz7J,oBAAoB,CAACS,SAAS,CAAC,iCAAkC,IACtH,CAEG,IAAI,CAAC4lQ,eAAe,CAAC9jD,QAAQ,EAC7B,IAAI,CAAC+jD,oBAAoB,CAACvoQ,IAAI,CAAC,IAAI6nQ,EAAiB,IAAI,CAACnqG,MAAM,CAAE,WAAY,IAAI,CAACz7J,oBAAoB,CAACS,SAAS,CAAC,oCAGjH,IAAI,CAAC4lQ,eAAe,CAACxgQ,QAAQ,EAC7B,IAAI,CAACygQ,oBAAoB,CAACvoQ,IAAI,CAAC,IAAI6nQ,EAAiB,IAAI,CAACnqG,MAAM,CAAE,oBAAqB,IAAI,CAACz7J,oBAAoB,CAACS,SAAS,CAAC,mCAElI,CACJ,CAEAolQ,EAAwBrpQ,OAAO,CAAG,CAAC,SAAU,uBAAwB,uBAAuB,CAE5FF,EAAAA,CAAUA,CAACgF,SAAS,CAAC,gBAAiB,CAClCC,SAAU,CACNwC,QAAS,IACTsiQ,gBAAiB,IACjB7nN,WAAY,KACZ+nN,qBAAsB,KACtBC,YAAa,IACjB,EACA7kQ,SCxFW,q9FDyFXC,WAAYikQ,CAChB,G,2BE9EAvpQ,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,qBAAsB,CACrC,WACA,YACA,oBACA,qBACA,kBACA,aACA,QACA,uBACA,uBACA,aACA,uBACA,SAAUnE,CAAQ,CAAE9b,CAAS,CAAE+b,CAAiB,CAAEqM,CAAkB,CAAEprB,CAAe,CAAEU,CAAU,CAAEuC,CAAK,CAAE/Q,CAAoB,CAAEstJ,CAAoB,CAAE/oJ,CAAU,CAAE8L,CAAoB,EAClL,SAASo2P,IACL,IAAI,CAACC,OAAO,CAAG,CACXC,WAAY,IAAI,CAACxrH,IAAI,CAAC1kJ,IAAI,CAAC,IAAI,EAC/BmwQ,WAAY,IAAI,CAAC/1O,IAAI,CAACp6B,IAAI,CAAC,IAAI,EAC/Bw1L,YAAa,IAAI,CAACn1I,KAAK,CAACrgD,IAAI,CAAC,IAAI,EACjCowQ,UAAW,IAAI,CAAC1oO,GAAG,CAAC1nC,IAAI,CAAC,IAAI,EAC7BqwQ,aAAc,IAAI,CAACC,MAAM,CAACtwQ,IAAI,CAAC,IAAI,EACnCitC,YAAa,IAAI,CAACC,KAAK,CAACltC,IAAI,CAAC,IAAI,EACjC4sC,aAAc,IAAI,CAACv8B,MAAM,CAACrQ,IAAI,CAAC,IAAI,EACnCqtC,cAAe,IAAI,CAACC,OAAO,CAACttC,IAAI,CAAC,IAAI,EACrC+sC,cAAe,IAAI,CAACC,OAAO,CAAChtC,IAAI,CAAC,IAAI,EACrCmtC,gBAAiB,IAAI,CAACC,SAAS,CAACptC,IAAI,CAAC,IAAI,EACzCuwQ,UAAW,IAAI,CAAChoQ,GAAG,CAACvI,IAAI,CAAC,IAAI,EAC7ButC,gBAAiB,IAAI,CAACC,SAAS,CAACxtC,IAAI,CAAC,IAAI,EACzCytC,kBAAmB,IAAI,CAACC,WAAW,CAAC1tC,IAAI,CAAC,IAAI,CACjD,EACA,IAAI,CAACwwQ,aAAa,CAAG,CAAC,CAC1B,CAuKA,OAnKAR,EAAQxuQ,SAAS,CAAC6sC,MAAM,CAAG,SAAUxhB,CAAI,CAAErZ,CAAE,CAAEnF,CAAM,EACjD,IAAIrH,EAAW,IAAI,CAACipQ,OAAO,CAACpjP,EAAK,QAGjC,EAFS,iBAAOxe,EAAsB,IAAI,CAACmiQ,aAAa,CAAGniQ,EAEnC,SAAbrH,IACPA,EAASwM,EAAInF,GACN,GAGf,EAGA2hQ,EAAQxuQ,SAAS,CAAC8sC,SAAS,CAAG,SAAUmiO,CAAK,CAAEzpQ,CAAQ,EACnD,IAAI,CAACipQ,OAAO,CAACQ,EAAM,CAAGzpQ,CAC1B,EAEAgpQ,EAAQxuQ,SAAS,CAACkvQ,YAAY,CAAG,SAAUD,CAAK,EAC5C,OAAO,IAAI,CAACR,OAAO,CAACQ,EAAM,EAI9BT,EAAQxuQ,SAAS,CAACmvQ,gBAAgB,CAAG,WACjC,IAAI,CAACV,OAAO,CAAG,IACnB,EAGAD,EAAQxuQ,SAAS,CAAC6+C,KAAK,CAAG,SAAUjtC,CAAQ,CAAE/E,CAAM,EAChD,GAAIA,EAAOkJ,KAAK,CAAE,CACd,IAAIosC,EAAet1C,EAAOkJ,KAAK,CAACgG,IAAI,CAAC,GACrComC,CAAAA,EAAavwC,QAAQ,CAAGA,EAASzO,KAAK,GACtCg/C,EAAaO,SAAS,CAAG,MACzBP,EAAaitN,YAAY,CAAG,CACxBpkQ,MAAOjD,EAAqBS,SAAS,CAAC,gCACtCuyF,KAAM,OACV,EAEAjiF,EAAMwD,QAAQ,CAAC,CACXvG,MAAOosC,EACPS,UAAW,GACXnmC,YAAa5G,EAAgB6G,yBAAyB,CAAG,8CAC7D,EACJ,CACJ,EAEA8xP,EAAQxuQ,SAAS,CAACkjJ,IAAI,CAAG,SAAUtxI,CAAQ,CAAE/E,CAAM,EAC3CA,aAAAA,EAAOsU,IAAI,CACXvP,EAASjP,OAAO,CAAC,SAAUmJ,CAAO,EAC9Bm1B,EAAmB0J,QAAQ,CAAC,CAAEnrB,QAAS1T,CAAQ,EACnD,GACOe,UAAAA,EAAOsU,IAAI,CAClByT,EAAkBkhB,UAAU,CAAClkC,GACN,YAAhB/E,EAAOsU,IAAI,EAClBvP,EAASjP,OAAO,CAAC,SAAUmJ,CAAO,EAE9B+M,EAAUvH,GAAG,CAAC,UAAYxF,EAC9B,EAER,EAEA0iQ,EAAQxuQ,SAAS,CAAC44B,IAAI,CAAG,SAAU9sB,CAAO,CAAEe,CAAM,EAC9C,GAAIA,EAAOkJ,KAAK,CAAE,CACd,IAAI8sC,EAAYh2C,EAAOkJ,KAAK,CAACgG,IAAI,CAAC,GAClC8mC,CAAAA,EAAU/2C,OAAO,CAAGA,CAAO,CAAC,EAAE,CAE9BgN,EAAMwD,QAAQ,CAAC,CACXvG,MAAO8sC,EACPpmC,YAAa5G,EAAgB6G,yBAAyB,CAAG,6CAC7D,EACJ,CACJ,EAEA8xP,EAAQxuQ,SAAS,CAACkmC,GAAG,CAAG,SAAUt0B,CAAQ,CAAE/E,CAAM,EAC9C0J,EAAWK,UAAU,CAAC,yBAA0B,CAC5CqB,MAAO,aACPnM,QAAS8F,CAAQ,CAAC,EAAE,CACpB8W,WAAY,CACRrK,QAAS,GACTmvB,cAAe,iBACfuzK,eAAgB,sBACpB,CACJ,EACJ,EAEAytD,EAAQxuQ,SAAS,CAAC8uQ,MAAM,CAAG,SAAUhjQ,CAAO,CAAEe,CAAM,EAChD,GAAIA,EAAOkJ,KAAK,CAAE,CACd,IAAI+F,EAAajP,EAAOkJ,KAAK,CAACgG,IAAI,CAAC,GACnCD,CAAAA,EAAWhQ,OAAO,CAAGA,CAAO,CAAC,EAAE,CAC/BgQ,EAAW/T,oBAAoB,CAAGA,EAClC+T,EAAW3d,OAAO,CAAG,WACjB2d,EAAWO,QAAQ,EACvB,EAEAP,EAAWsyP,eAAe,CAAG,CAAE9jD,SAAU,GAAM18M,SAAU,EAAM,EAC/DwK,EAAqBjD,eAAe,CAAC2G,EAAWhQ,OAAO,EAAEtL,IAAI,CAAC,IAC1Dsb,EAAWsyP,eAAe,CAAG,CAAE9jD,SAAU,GAAM18M,SAAUmvK,EAAI73K,IAAI,CAACy1M,kBAAkB,EACpF7+L,EAAWwT,WAAW,EAC1B,GAEAxW,EAAMwD,QAAQ,CAAC,CACXvG,MAAO+F,EACPW,YAAa5G,EAAgB6G,yBAAyB,CAAG,gDAC7D,EACJ,CACJ,EAEA8xP,EAAQxuQ,SAAS,CAAC0rC,KAAK,CAAG,SAAU95B,CAAQ,CAAEikC,CAAmB,EAC7D,OAAOjhB,EAAkB6W,WAAW,CAAC75B,EAAUikC,GAAqBr1C,IAAI,CAAC,SAAU0M,CAAQ,EACvF,OAAOA,EAAShI,IAAI,CAAG0M,EAAW,EAAE,EAE5C,EAEA48P,EAAQxuQ,SAAS,CAAC6O,MAAM,CAAG,SAAU+C,CAAQ,EACzC,OAAOgjB,EAAkBwW,YAAY,CAACx5B,GAAUpR,IAAI,CAAC,SAAU0M,CAAQ,EACnE,OAAOA,EAAShI,IAAI,CAAG0M,EAAW,EAAE,EAE5C,EAEA48P,EAAQxuQ,SAAS,CAAC8rC,OAAO,CAAG,SAAUl6B,CAAQ,EAC1C,OAAOgjB,EAAkBiX,aAAa,CAACj6B,GAAUpR,IAAI,CAAC,SAAU0M,CAAQ,EACpE,OAAOA,EAAShI,IAAI,CAAG0M,EAAW,EAAE,EAE5C,EAEA48P,EAAQxuQ,SAAS,CAACwrC,OAAO,CAAG,SAAU55B,CAAQ,EAC1C,OAAOgjB,EAAkB2W,aAAa,CAAC35B,GAAUpR,IAAI,CAAC,SAAU0M,CAAQ,EACpE,OAAOA,EAAShI,IAAI,CAAG0M,EAAW,EAAE,EAE5C,EAEA48P,EAAQxuQ,SAAS,CAAC4rC,SAAS,CAAG,SAAUh6B,CAAQ,EAC5C,OAAOgjB,EAAkB+W,eAAe,CAAC/5B,GAAUpR,IAAI,CAAC,SAAU0M,CAAQ,EACtE,OAAOA,EAAShI,IAAI,CAAG0M,EAAW,EAAE,EAE5C,EAEA48P,EAAQxuQ,SAAS,CAAC+G,GAAG,CAAG,SAAU6K,CAAQ,CAAE/E,CAAM,EAC9CwoJ,EAAqB9tB,gBAAgB,CAAC,EAAE,CAAE,GAAI,EAAE,CAAE31H,CAAQ,CAAC,EAAE,CAAE,GAAI,GAAI,GAAO,IAC9EyjJ,EAAqBptB,kBAAkB,CAACr2H,CAAQ,CAAC,EAAE,CAAEiH,EAAUvH,GAAG,IAElE,IAAMwzM,EAAax4M,EAAWy4M,mBAAmB,CAACnzM,CAAQ,CAAC,EAAE,EAC7DiH,EAAUvH,GAAG,CAACwzM,EAClB,EAEA0pD,EAAQxuQ,SAAS,CAACgsC,SAAS,CAAG,SAAUp6B,CAAQ,EAC5C,OAAOgjB,EACFqiB,cAAc,CAACrlC,EAAU,IACzBpR,IAAI,CAAC,SAAU0M,CAAQ,EAEpB,OADAouB,EAAAA,CAAOA,CAACC,UAAU,CAAC,YAAa,OACzBruB,OAAAA,EAAShI,IAAI,CAAY0M,EAAW,EAAE,GAEhDvM,KAAK,CAAC,IAAM,EAAE,CACvB,EAEAmpQ,EAAQxuQ,SAAS,CAACksC,WAAW,CAAG,SAAUt6B,CAAQ,EAC9C,OAAOgjB,EACFqiB,cAAc,CAACrlC,EAAU,IACzBpR,IAAI,CAAC,SAAU0M,CAAQ,EAEpB,OADAouB,EAAAA,CAAOA,CAACC,UAAU,CAAC,YAAa,UACzBruB,OAAAA,EAAShI,IAAI,CAAY0M,EAAW,EAAE,GAEhDvM,KAAK,CAAC,IAAM,EAAE,CACvB,EAEOmpQ,CACX,EACH,C,kBCjNDnqQ,E,OAAAA,CAAUA,CAACy0B,OAAO,CAAC,kBAAmB,WAClC,MAAO,CACHpc,0BAA2BjW,OAAO4D,MAAM,CAAC27J,yBAAyB,GAClE1tJ,aAAc7R,OAAO4D,MAAM,CAACglQ,aAAa,GACzCC,UAAW7oQ,OAAO4D,MAAM,CAACglQ,aAAa,GAAK,qEAC3CE,eAAgB9oQ,OAAO4D,MAAM,CAACglQ,aAAa,GAAK,uBAChDxnB,oBAAqBphP,OAAO4D,MAAM,CAACmlQ,qBAAqB,EAC5D,CACJ,E,kBCRAnrQ,E,OAAAA,CAAUA,CAACf,MAAM,CAAC,cAAe,CAC7B,uBACA,SAAUyE,CAAoB,EAC1B,OAAO,SAAU0nQ,CAAK,EAClB,GAAIA,IAAAA,EACA,OAAO1nQ,EAAqBS,SAAS,CAAC,iCACnC,GAAI,CAACinQ,EACR,MAAO,GAKX,IAAIvrQ,EAAIk9C,KAAKC,KAAK,CAACD,KAAKsuN,GAAG,CAACD,GAASruN,KAAKsuN,GAAG,CAFrC,OAGR,MAAO,CAACD,EAAQruN,KAAKu8D,GAAG,CAHhB,KAGoBz5G,EAAC,EAAGgvF,OAAO,CAAC,GAAK,IAAMy8K,CAFtC,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAK,CAEZzrQ,EAAE,CAEnE,EACH,C,2BChBDG,E,OAAAA,CAAUA,CAAC0T,SAAS,CAAC,iBAAkB,CACnC,SACA,WACA,SAAU+uO,CAAM,CAAEnyN,CAAQ,EAEtB,SAASnxB,EAASwoE,CAAG,CAAEnxC,CAAI,CAAEugB,CAAU,EACnC,GAAIlwB,QAAQmE,OAAO,CAAC28C,GAChB,KAAK,IAAI9nE,EAAI8nE,EAAI3qE,MAAM,CAAE6C,KACrB,GAAIk3C,EAAW4wB,CAAG,CAAC9nE,EAAE,CAAE22B,GACnB,MAAO,EAEf,CAEJ,MAAO,EACX,CAyBA,SAAS+0O,EAAW75P,CAAK,CAAEvT,CAAI,CAAEsuB,CAAK,EAElC6D,EAASnyB,GAAMuT,GAGf,IAAI85P,EAAS/oB,EAAOh2N,EAAMg/O,cAAc,EACpCC,EAASF,EAAOlnP,MAAM,CACtBqnP,EAAkBlpB,EAAOh2N,EAAMk/O,eAAe,EAG9CzvQ,EAAQumP,EAAOh2N,EAAMm/O,cAAc,EAAEl6P,EAAM4kB,OAAO,EAElDygB,EAAalwB,QAAQglP,MAAM,CAwB/B,SAASpnI,EAAWqnI,CAAM,CAAEC,CAAM,EAC9Br6P,EAAM8zH,OAAO,CAAGrmI,EAAS2sQ,EAAQ5vQ,EAAO66C,EAC5C,CAxBItqB,EAAM1B,cAAc,CAAC,wBACrBgsB,CAAAA,EAAa0rM,EAAOh2N,EAAMu/O,mBAAmB,EAAEt6P,EAAM4kB,OAAO,GAIhE5kB,EAAMib,MAAM,CAAC,UAAW,SAAUP,CAAQ,CAAEC,CAAQ,EAChD,GAAID,IAAaC,GAGjB,IA7CKs7C,EAAW5wB,EA6CZyjE,EAAUgxJ,EAAO95P,EAAM4kB,OAAO,CAC9BlK,EAAa,IAAbA,EACAs/O,EAAOh6P,EAAM4kB,OAAO,EA/CnBqxC,EA+CyB6yC,EA/CdzjE,EA+C8BA,EA7C7C53C,EADLwoE,EAAM9gD,QAAQmE,OAAO,CAAC28C,GAAOA,EAAM,EAAE,CA8CMzrE,EA7ClB66C,IACrB4wB,EAAIlmE,IAAI,CA4C+BvF,GA1CpCyrE,IA4CC+jM,EAAOh6P,EAAM4kB,OAAO,CAAEtzB,SAxClB2kE,CAAG,CAAEnxC,CAAI,CAAEugB,CAAU,EACjC,GAAIlwB,QAAQmE,OAAO,CAAC28C,GAChB,KAAK,IAAI9nE,EAAI8nE,EAAI3qE,MAAM,CAAE6C,KACrB,GAAIk3C,EAAW4wB,CAAG,CAAC9nE,EAAE,CAAE22B,GAAO,CAC1BmxC,EAAIjmE,MAAM,CAAC7B,EAAG,GACd,KACJ,CACJ,CAEJ,OAAO8nE,CACX,EA8ByC6yC,EAASt+G,EAAO66C,IAG7C40N,GACAA,EAAgBj6P,GAExB,GASImV,QAAQqoB,UAAU,CAACx9B,EAAM4kB,OAAO,CAACgE,gBAAgB,EACjD5oB,EAAM4kB,OAAO,CAACgE,gBAAgB,CAAC7N,EAAMg/O,cAAc,CAAEhnI,GAErD/yH,EAAM4kB,OAAO,CAAC3J,MAAM,CAACF,EAAMg/O,cAAc,CAAEhnI,EAAY,GAE/D,CAEA,MAAO,CACHhzH,SAAU,IACVw6P,SAAU,IACVC,SAAU,GACVx6P,MAAO,GACPgxO,QAAS,SAAUypB,CAAQ,CAAEC,CAAM,EAC/B,GAAID,UAAAA,CAAQ,CAAC,EAAE,CAACjlJ,OAAO,EAAgBklJ,aAAAA,EAAOtvP,IAAI,CAC9C,MAAM,MAAU,kEAGpB,GAAI,CAACsvP,EAAOR,cAAc,CACtB,MAAM,MAAU,yCASpB,OALAO,EAASE,UAAU,CAAC,mBAGpBF,EAAS9wQ,IAAI,CAAC,WAAY,WAEnBkwQ,CACX,CACJ,CACJ,EACH,C,iBChHDvrQ,E,OAAAA,CAAUA,CAACy0B,OAAO,CAAC,uBAAwB,CACvC,WACA,SAAUnE,CAAQ,EAsFd,OArFoB,WAMhB,SAASg8O,EAAc56P,CAAK,CAAE9S,CAAO,CAAE2tQ,CAAS,EAC5C,IAAI,CAAC76P,KAAK,CAAGA,EACb,IAAI,CAAC9S,OAAO,CAAGA,EACf,IAAI,CAAC4tQ,gBAAgB,CAAG,KAEN,KAAdD,GACA,IAAI,CAAC76P,KAAK,CAAC4G,GAAG,CAAC,WAAY,IAAI,CAAC66C,KAAK,CAACh5D,IAAI,CAAC,IAAI,EAEvD,CAoEA,OA3DAmyQ,EAAc3wQ,SAAS,CAAC+mP,OAAO,CAAG,SAAUl/M,CAAI,CAAEipO,CAAW,CAAEC,CAAuB,CAAEC,CAAkC,CAAEC,CAAY,EAC/HF,GACD,IAAI,CAACG,kBAAkB,GAG3B,IAAIC,EAAa,IAAI,CAACp7P,KAAK,CAACgG,IAAI,CAAC,GAAM,IAAI,CAAChG,KAAK,EACjD,GAAI+6P,EACA,IAAK,IAAI7vQ,KAAO6vQ,EAC4B,KAApCA,EAAY1hP,cAAc,CAACnuB,IAC3BkwQ,CAAAA,CAAU,CAAClwQ,EAAI,CAAG6vQ,CAAW,CAAC7vQ,EAAI,EAK9C,IAAImwQ,EAAe,IAAI,CAACC,gBAAgB,CAACxpO,EAAMspO,EAAYF,CAAiB,IAAjBA,GAQ3D,OANID,GACAI,EAAa50O,EAAE,CAAC,WAAY,IAAI,CAAC00O,kBAAkB,CAAC1yQ,IAAI,CAAC,IAAI,GAGjE,IAAI,CAACqyQ,gBAAgB,CAAGM,EAEjBC,CACX,EAQAT,EAAc3wQ,SAAS,CAACqxQ,gBAAgB,CAAG,SAAUxpO,CAAI,CAAE9xB,CAAK,CAAE+xB,CAAK,EAC/DA,GACA,IAAI,CAAC7kC,OAAO,CAAC6kC,KAAK,GAEtB,IAAIwpO,EAAc38O,EAASkT,GAAM9xB,GAKjC,OAFA,IAAI,CAAC9S,OAAO,CAAColC,MAAM,CAACipO,GAEbA,CACX,EAEAX,EAAc3wQ,SAAS,CAACuxQ,UAAU,CAAG,SAAUtuQ,CAAO,EAClD,IAAI,CAACA,OAAO,CAAGA,CACnB,EAEA0tQ,EAAc3wQ,SAAS,CAACkxQ,kBAAkB,CAAG,WACrC,IAAI,CAACL,gBAAgB,GACrB,IAAI,CAACA,gBAAgB,CAACx0P,QAAQ,GAC9B,IAAI,CAACw0P,gBAAgB,CAAG,KAEhC,EAEAF,EAAc3wQ,SAAS,CAACw3D,KAAK,CAAG,WAC5B,IAAI,CAACzhD,KAAK,CAAG,KACb,IAAI,CAAC9S,OAAO,CAAG,IACnB,EAEO0tQ,CACX,GAGJ,EACH,C,iCCtFD,SAASa,EAAqBzgO,CAAS,EAGnC,IAAI,CAAC0gO,iBAAiB,CAOtB,SAA2BzqL,CAAE,CAAEm4K,CAAM,CAAErsM,CAAK,EACxC,IAEI4+M,EAFAC,EAAiBlrQ,OAAOygF,gBAAgB,CAACF,GACzC4qL,EAAc,CAAC,EAOnB,GAJK7gO,EAAU1hB,OAAO,CAAC8vO,IACnBA,CAAAA,EAAS,CAACA,EAAO,EAGjBwS,KAAwB,IAAxBA,EACA,IAAK,IAAIztQ,EAAI,EAAGkmE,EAAM+0L,EAAO99P,MAAM,CAAE6C,EAAIkmE,EAAKlmE,IAE1C0tQ,CAAW,CADXF,EAAYvS,CAAM,CAACj7P,EAAE,CACC,CAAGytQ,CAAc,CAACD,EAAU,CAC9C5+M,GACA8+M,CAAAA,CAAW,CAACF,EAAU,CAAGG,EAAgBD,CAAW,CAACF,EAAU,GAK3E,OAAOE,CACX,EA1BA,IAAI,CAACC,eAAe,CAAGA,EAIvB,IAAIC,EAAuB,SAwB3B,SAASD,EAAgBtxQ,CAAK,SAC1B,KAAmB,IAAfA,EACOmhL,WAAWnhL,EAAMiV,OAAO,CAACs8P,EAAsB,KAGnD,IACX,CACJ,C,SA1CAztQ,EAAAA,CAAUA,CAACC,OAAO,CAAC,uBAAwBktQ,GAC3CA,EAAqBjtQ,OAAO,CAAG,CAAC,YAAY,E,0CCE5C,IAEewtQ,EAAGtvP,EACN49B,EACAl8C,EAEAq6C,EACA8oC,EA4BAhE,EAqCAiE,EACA/D,EAgBAR,EAYApuC,EAYAkG,EAgEA6kB,EAKJl9C,EA2LA49B,EACAl8C,EACAse,EACA+7B,EAwBI6B,EACAl8C,EACAq6C,EACA8oC,EACAhE,EACAiE,EACA/D,EAgDA5uC,EAKAkG,EAoEA6kB,EAQAqjB,EAkBA3a,EAkBA5lD,EASA4gE,EAhkBR2uL,EACAA,IACWD,EAiLR3wN,KA/KKj9C,EAAKk8C,CADLA,EAAI,CAAC,GACE4xN,GAAG,CAAG,CAAC,EAEdzzN,EAAI,WAAa,EACjB8oC,EAAKnjF,EAAE+tQ,IAAI,CAAG,CACVjvL,OAAQ,SAAU5a,CAAC,EACf7pB,EAAEx+C,SAAS,CAAG,IAAI,CAClB,IAAIqjF,EAAI,IAAI7kC,EAQZ,OAPA6pB,GAAKgb,EAAE8uL,KAAK,CAAC9pM,GACbgb,EAAEj0D,cAAc,CAAC,SACZi0D,CAAAA,EAAEr8C,IAAI,CAAG,WACNq8C,EAAE+uL,MAAM,CAACprO,IAAI,CAACw2B,KAAK,CAAC,IAAI,CAAEC,UAC9B,GACJ4lB,EAAEr8C,IAAI,CAAChnC,SAAS,CAAGqjF,EACnBA,EAAE+uL,MAAM,CAAG,IAAI,CACR/uL,CACX,EACAzoB,OAAQ,WACJ,IAAIyN,EAAI,IAAI,CAAC4a,MAAM,GAEnB,OADA5a,EAAErhC,IAAI,CAACw2B,KAAK,CAAC6K,EAAG5K,WACT4K,CACX,EAEArhC,KAAM,WAAa,EACnBmrO,MAAO,SAAU9pM,CAAC,EACd,IAAK,IAAIgb,KAAKhb,EAAGA,EAAEj5C,cAAc,CAACi0D,IAAO,KAAI,CAACA,EAAE,CAAGhb,CAAC,CAACgb,EAAE,CACvDhb,CAAAA,EAAEj5C,cAAc,CAAC,aAAgB,KAAI,CAACM,QAAQ,CAAG24C,EAAE34C,QAAQ,CAC/D,EACAw0G,MAAO,WACH,OAAO,IAAI,CAACl9F,IAAI,CAAChnC,SAAS,CAACijF,MAAM,CAAC,IAAI,CAC1C,CACJ,EACAK,EAAKn/E,EAAEkuQ,SAAS,CAAG/qL,EAAErE,MAAM,CAAC,CACxBj8C,KAAM,SAAUqhC,CAAC,CAAEgb,CAAC,EAChBhb,EAAI,IAAI,CAACiqM,KAAK,CAAGjqM,GAAK,EAAE,CAExB,IAAI,CAACkqM,QAAQ,CAAGlvL,GAAK5gE,EAAI4gE,EAAI,EAAIhb,EAAEhnE,MAAM,EAE7CquB,SAAU,SAAU24C,CAAC,EACjB,MAAO,CAACA,GAAKmb,CAAAA,EAAGskD,SAAS,CAAC,IAAI,CAClC,EACAhsG,OAAQ,SAAUusC,CAAC,EACf,IAAIgb,EAAI,IAAI,CAACivL,KAAK,CACdlpO,EAAIi/B,EAAEiqM,KAAK,CACX/uQ,EAAI,IAAI,CAACgvQ,QAAQ,CAGrB,GAFAlqM,EAAIA,EAAEkqM,QAAQ,CACd,IAAI,CAACC,KAAK,GACNjvQ,EAAI,EAAG,IAAK,IAAI+R,EAAI,EAAGA,EAAI+yD,EAAG/yD,IAAK+tE,CAAC,CAAC,EAAK/tE,IAAO,EAAE,EAAI,CAAC,CAAE,CAACA,IAAM,EAAE,GAAM,GAAK,EAAS,EAAT,EAAgB,GAAE,GAAO,GAAK,CAAM/R,EAAI+R,CAAAA,EAAK,EAAf,OAC3G,GAAI,MAAQ8zB,EAAE/nC,MAAM,CAAE,IAAKiU,EAAI,EAAGA,EAAI+yD,EAAG/yD,GAAK,EAAG+tE,CAAC,CAAC,EAAK/tE,IAAO,EAAE,CAAG8zB,CAAC,CAAC9zB,IAAM,EAAE,MAC9E+tE,EAAEv9E,IAAI,CAAC03D,KAAK,CAAC6lB,EAAGj6C,GAErB,OADA,IAAI,CAACmpO,QAAQ,EAAIlqM,EACV,IAAI,EAEfmqM,MAAO,WACH,IAAInqM,EAAI,IAAI,CAACiqM,KAAK,CACdjvL,EAAI,IAAI,CAACkvL,QAAQ,CACrBlqM,CAAC,CAACgb,IAAM,EAAE,EAAI,YAAe,GAAK,EAAS,EAAT,EAClChb,EAAEhnE,MAAM,CAAG0wQ,EAAE1+J,IAAI,CAAChwB,EAAI,EAC1B,EACA6gD,MAAO,WACH,IAAI77D,EAAIif,EAAE48C,KAAK,CAAC7lI,IAAI,CAAC,IAAI,EAEzB,OADAgqE,EAAEiqM,KAAK,CAAG,IAAI,CAACA,KAAK,CAACnvQ,KAAK,CAAC,GACpBklE,CACX,EACAkb,OAAQ,SAAUlb,CAAC,EACf,IAAK,IAAIgb,EAAI,EAAE,CAAEj6C,EAAI,EAAGA,EAAIi/B,EAAGj/B,GAAK,EAAGi6C,EAAEv9E,IAAI,CAAC,YAAcisQ,EAAExuL,MAAM,GAAM,GAC1E,OAAO,IAAID,EAAEt8C,IAAI,CAACq8C,EAAGhb,EACzB,CACJ,GAEAmb,EAAK+D,CADLA,EAAKlnC,EAAEsS,GAAG,CAAG,CAAC,GACP8/M,GAAG,CAAG,CACT3qI,UAAW,SAAUz/D,CAAC,EAClB,IAAIgb,EAAIhb,EAAEiqM,KAAK,CACfjqM,EAAIA,EAAEkqM,QAAQ,CACd,IAAK,IAAInpO,EAAI,EAAE,CAAE7lC,EAAI,EAAGA,EAAI8kE,EAAG9kE,IAAK,CAChC,IAAI+R,EAAI,CAAE,CAAC/R,IAAM,EAAE,GAAM,GAAK,EAAS,EAAT,EAAgB,IAC9C6lC,EAAEtjC,IAAI,CAAC,CAACwP,IAAM,GAAGoa,QAAQ,CAAC,KAC1B0Z,EAAEtjC,IAAI,CAAC,CAACwP,GAAAA,CAAK,EAAGoa,QAAQ,CAAC,IAC7B,CACA,OAAO0Z,EAAEs/C,IAAI,CAAC,GAClB,EACA51B,MAAO,SAAUuV,CAAC,EACd,IAAK,IAAIgb,EAAIhb,EAAEhnE,MAAM,CAAE+nC,EAAI,EAAE,CAAE7lC,EAAI,EAAGA,EAAI8/E,EAAG9/E,GAAK,EAAG6lC,CAAC,CAAC7lC,IAAM,EAAE,EAAIoyB,SAAS0yC,EAAEqqM,MAAM,CAACnvQ,EAAG,GAAI,KAAQ,GAAK,EAAS,EAAT,EACzG,OAAO,IAAI+/E,EAAEt8C,IAAI,CAACoC,EAAGi6C,EAAI,EAC7B,CACJ,EACAL,EAAKuE,EAAEorL,MAAM,CAAG,CACZ7qI,UAAW,SAAUz/D,CAAC,EAClB,IAAIgb,EAAIhb,EAAEiqM,KAAK,CACfjqM,EAAIA,EAAEkqM,QAAQ,CACd,IAAK,IAAInpO,EAAI,EAAE,CAAE7lC,EAAI,EAAGA,EAAI8kE,EAAG9kE,IAAK6lC,EAAEtjC,IAAI,CAAC2mF,OAAOmmL,YAAY,CAAC,CAAE,CAACrvQ,IAAM,EAAE,GAAM,GAAK,EAAS,EAAT,EAAgB,MACrG,OAAO6lC,EAAEs/C,IAAI,CAAC,GAClB,EACA51B,MAAO,SAAUuV,CAAC,EACd,IAAK,IAAIgb,EAAIhb,EAAEhnE,MAAM,CAAE+nC,EAAI,EAAE,CAAE7lC,EAAI,EAAGA,EAAI8/E,EAAG9/E,IAAK6lC,CAAC,CAAC7lC,IAAM,EAAE,EAAI,CAAC8kE,IAAAA,EAAEo9D,UAAU,CAACliI,EAAO,GAAO,GAAK,EAAS,EAAT,EACjG,OAAO,IAAI+/E,EAAEt8C,IAAI,CAACoC,EAAGi6C,EACzB,CACJ,EACAzuC,EAAK2yC,EAAE30B,IAAI,CAAG,CACVk1E,UAAW,SAAUz/D,CAAC,EAClB,GAAI,CACA,OAAOwqM,mBAAmB7zQ,OAAOgkF,EAAE8kD,SAAS,CAACz/D,IACjD,CAAE,MAAOgb,EAAG,CACR,MAAMqoF,MAAM,uBAChB,CACJ,EACA54G,MAAO,SAAUuV,CAAC,EACd,OAAO2a,EAAElwB,KAAK,CAAC9H,SAAS8nN,mBAAmBzqM,IAC/C,CACJ,EACAvtB,EAAK32C,EAAE4uQ,sBAAsB,CAAGzrL,EAAErE,MAAM,CAAC,CACrCzrB,MAAO,WACH,IAAI,CAACw7M,KAAK,CAAG,IAAI1vL,EAAEt8C,IAAI,CACvB,IAAI,CAACisO,WAAW,CAAG,CACvB,EACAC,QAAS,SAAU7qM,CAAC,EAChB,UAAa,OAAOA,GAAMA,CAAAA,EAAIzzB,EAAEke,KAAK,CAACuV,EAAC,EACvC,IAAI,CAAC2qM,KAAK,CAACl3O,MAAM,CAACusC,GAClB,IAAI,CAAC4qM,WAAW,EAAI5qM,EAAEkqM,QAAQ,EAElCY,SAAU,SAAU9qM,CAAC,EACjB,IAAIgb,EAAI,IAAI,CAAC2vL,KAAK,CACd5pO,EAAIi6C,EAAEivL,KAAK,CACX/uQ,EAAI8/E,EAAEkvL,QAAQ,CACdj9P,EAAI,IAAI,CAAC89P,SAAS,CAClBpwL,EAAIz/E,EAAK,GAAI+R,CAAAA,EACb0tE,EAAI3a,EAAI0pM,EAAE1+J,IAAI,CAACrwB,GAAK+uL,EAAEroL,GAAG,CAAC,CAAC1G,EAAAA,CAAI,EAAK,IAAI,CAACqwL,cAAc,CAAE,GAG7D,GAFAhrM,EAAI2a,EAAI1tE,EACR/R,EAAIwuQ,EAAEtoL,GAAG,CAAC,EAAIphB,EAAG9kE,GACb8kE,EAAG,CACH,IAAK,IAAIvtB,EAAI,EAAGA,EAAIutB,EAAGvtB,GAAKxlC,EAAG,IAAI,CAACg+P,eAAe,CAAClqO,EAAG0R,GACvDA,EAAI1R,EAAErjC,MAAM,CAAC,EAAGsiE,GAChBgb,EAAEkvL,QAAQ,EAAIhvQ,CAClB,CACA,OAAO,IAAI+/E,EAAEt8C,IAAI,CAAC8T,EAAGv3C,EACzB,EACA2gI,MAAO,WACH,IAAI77D,EAAIif,EAAE48C,KAAK,CAAC7lI,IAAI,CAAC,IAAI,EAEzB,OADAgqE,EAAE2qM,KAAK,CAAG,IAAI,CAACA,KAAK,CAAC9uI,KAAK,GACnB77D,CACX,EACAgrM,eAAgB,CACpB,GACJlvQ,EAAEovQ,MAAM,CAAGz4N,EAAEmoC,MAAM,CAAC,CAChBuwL,IAAKlsL,EAAErE,MAAM,GACbj8C,KAAM,SAAUqhC,CAAC,EACb,IAAI,CAACmrM,GAAG,CAAG,IAAI,CAACA,GAAG,CAACvwL,MAAM,CAAC5a,GAC3B,IAAI,CAAC7Q,KAAK,EACd,EACAA,MAAO,WACH1c,EAAE0c,KAAK,CAACn5D,IAAI,CAAC,IAAI,EACjB,IAAI,CAACo1Q,QAAQ,EACjB,EACA72M,OAAQ,SAAUyL,CAAC,EAGf,OAFA,IAAI,CAAC6qM,OAAO,CAAC7qM,GACb,IAAI,CAAC8qM,QAAQ,GACN,IAAI,EAEfO,SAAU,SAAUrrM,CAAC,EAEjB,OADAA,GAAK,IAAI,CAAC6qM,OAAO,CAAC7qM,GACX,IAAI,CAACsrM,WAAW,EAC3B,EACAP,UAAW,GACXQ,cAAe,SAAUvrM,CAAC,EACtB,OAAO,SAAU2a,CAAC,CAAE55C,CAAC,EACjB,OAAO,IAAIi/B,EAAErhC,IAAI,CAACoC,GAAGsqO,QAAQ,CAAC1wL,EAClC,CACJ,EACA6wL,kBAAmB,SAAUxrM,CAAC,EAC1B,OAAO,SAAU2a,CAAC,CAAE55C,CAAC,EACjB,OAAO,IAAIu2B,EAAEm0M,IAAI,CAAC9sO,IAAI,CAACqhC,EAAGj/B,GAAGsqO,QAAQ,CAAC1wL,EAC1C,CACJ,CACJ,GACIrjB,EAAKtf,EAAE0zN,IAAI,CAAG,CAAC,EACZ1zN,GAIP59B,EAAIsvP,EAAEE,GAAG,CAACI,SAAS,CACvBN,EAAEp/M,GAAG,CAACqhN,MAAM,CAAG,CACXlsI,UAAW,SAAUznF,CAAC,EAClB,IAAIl8C,EAAIk8C,EAAEiyN,KAAK,CACX7vP,EAAI49B,EAAEkyN,QAAQ,CACdjrL,EAAI,IAAI,CAAC2sL,IAAI,CACjB5zN,EAAEmyN,KAAK,GACPnyN,EAAI,EAAE,CACN,IAAK,IAAIijC,EAAI,EAAGA,EAAI7gE,EAAG6gE,GAAK,EACxB,IACI,IAAIiE,EACI,CAAE,CAAE,CAACjE,IAAM,EAAE,GAAM,GAAK,EAAS,EAAT,EAAgB,GAAE,GAAM,GAC/C,CAAC,CAAE,CAAC,EAAK,IAAO,EAAE,GAAM,GAAK,CAAMA,EAAI,GAAK,EAAf,EAAsB,GAAE,GAAM,EAC3D,CAAE,CAAC,EAAK,IAAO,EAAE,GAAM,GAAK,CAAMA,EAAI,GAAK,EAAf,EAAsB,IACvDE,EAAI,EACR,EAAIA,GAAKF,EAAI,IAAOE,EAAI/gE,EACxB+gE,IAEAnjC,EAAEv6C,IAAI,CAACwhF,EAAE8I,MAAM,CAAC,IAAQ,EAAK,GAAI5M,CAAAA,EAAO,KAEhD,GAAKr/E,EAAImjF,EAAE8I,MAAM,CAAC,IAAM,KAAO/vC,EAAEh/C,MAAM,CAAG,GAAKg/C,EAAEv6C,IAAI,CAAC3B,GACtD,OAAOk8C,EAAEqoC,IAAI,CAAC,GAClB,EACA51B,MAAO,SAAUzS,CAAC,EACd,IAAIl8C,EAAIk8C,EAAEh/C,MAAM,CACZm9C,EAAI,IAAI,CAACy1N,IAAI,CACb3sL,EAAI9oC,EAAE4xC,MAAM,CAAC,GAEjB9I,CAAAA,GAA0B,IAAnBA,CAAAA,EAAIjnC,EAAEv8C,OAAO,CAACwjF,EAAC,GAAgBnjF,CAAAA,EAAImjF,CAAAA,EAC1C,IAAK,IAAIA,EAAI,EAAE,CAAEhE,EAAI,EAAGiE,EAAI,EAAGA,EAAIpjF,EAAGojF,IAClC,GAAIA,EAAI,EAAG,CACP,IAAI/D,EAAIhlC,EAAE16C,OAAO,CAACu8C,EAAE+vC,MAAM,CAAC7I,EAAI,KAAQ,EAAS,EAAT,EACnCvE,EAAIxkC,EAAE16C,OAAO,CAACu8C,EAAE+vC,MAAM,CAAC7I,MAAS,EAAI,EAAS,EAAT,CACxCD,CAAAA,CAAC,CAAChE,IAAM,EAAE,EAAI,CAACE,EAAIR,CAAAA,GAAO,GAAK,EAAS,EAAT,EAC/BM,GACJ,CACJ,OAAO7gE,EAAEm4C,MAAM,CAAC0sB,EAAGhE,EACvB,EACA2wL,KAAM,mEACV,EAEJ,SAAWlC,CAAC,EACR,SAAStvP,EAAEugE,CAAC,CAAErjB,CAAC,CAAE0I,CAAC,CAAEgb,CAAC,CAAEj6C,CAAC,CAAE7lC,CAAC,CAAE+R,CAAC,EAE1B,MAAO,CAAC,CADR0tE,EAAIA,EAAMrjB,CAAAA,EAAI0I,EAAM,CAAC1I,EAAI0jB,CAAAA,EAAMj6C,EAAI9zB,CAAAA,GACrB/R,EAAMy/E,IAAO,GAAKz/E,CAAAA,EAAOo8D,CAC3C,CACA,SAAStf,EAAE2iC,CAAC,CAAErjB,CAAC,CAAE0I,CAAC,CAAEgb,CAAC,CAAEj6C,CAAC,CAAE7lC,CAAC,CAAE+R,CAAC,EAE1B,MAAO,CAAC,CADR0tE,EAAIA,EAAMrjB,CAAAA,EAAI0jB,EAAMhb,EAAI,CAACgb,CAAAA,EAAMj6C,EAAI9zB,CAAAA,GACrB/R,EAAMy/E,IAAO,GAAKz/E,CAAAA,EAAOo8D,CAC3C,CACA,SAASx7D,EAAE6+E,CAAC,CAAErjB,CAAC,CAAE0I,CAAC,CAAEgb,CAAC,CAAEj6C,CAAC,CAAE7lC,CAAC,CAAE+R,CAAC,EAE1B,MAAO,CAAC,CADR0tE,EAAIA,EAAKrjB,CAAAA,EAAI0I,EAAIgb,CAAAA,EAAKj6C,EAAI9zB,CAAAA,GACZ/R,EAAMy/E,IAAO,GAAKz/E,CAAAA,EAAOo8D,CAC3C,CACA,SAASnhB,EAAEwkC,CAAC,CAAErjB,CAAC,CAAE0I,CAAC,CAAEgb,CAAC,CAAEj6C,CAAC,CAAE7lC,CAAC,CAAE+R,CAAC,EAE1B,MAAO,CAAC,CADR0tE,EAAIA,EAAK3a,CAAAA,EAAK1I,CAAAA,EAAI,CAAC0jB,CAAAA,CAAAA,EAAMj6C,EAAI9zB,CAAAA,GACf/R,EAAMy/E,IAAO,GAAKz/E,CAAAA,EAAOo8D,CAC3C,CACA,IAAK,IAAkB2jB,EAAIgE,EAAE2qL,GAAG,CAAE1qL,EAAIjE,EAAE+uL,SAAS,CAAE7uL,EAAIF,EAAEiwL,MAAM,CAAEjwL,EAAIgE,EAAEysL,IAAI,CAAE/wL,EAAI,EAAE,CAAEpuC,EAAI,EAAG,GAAKA,EAAGA,IAAKouC,CAAC,CAACpuC,EAAE,CAAG,YAAcm9N,EAAEz+J,GAAG,CAACy+J,EAAEmC,GAAG,CAACt/N,EAAI,IAAO,EACrJ0uC,EAAIA,EAAE6wL,GAAG,CAAG3wL,EAAEP,MAAM,CAAC,CACjBwwL,SAAU,WACN,IAAI,CAACW,KAAK,CAAG,IAAI7sL,EAAEvgD,IAAI,CAAC,CAAC,WAAY,WAAY,WAAY,WAAU,CAC3E,EACAssO,gBAAiB,SAAUx4N,CAAC,CAAE6kB,CAAC,EAC3B,IAAK,IAAI0I,EAAI,EAAG,GAAKA,EAAGA,IAAK,CACzB,IAAIgb,EAAI1jB,EAAI0I,EACRj/B,EAAI0R,CAAC,CAACuoC,EAAE,CACZvoC,CAAC,CAACuoC,EAAE,CAAG,CAAE,GAAM,EAAMj6C,IAAM,EAAC,EAAM,SAAa,CAAC,GAAM,GAAOA,IAAM,GAAM,UAC7E,CACA,IAAIi/B,EAAI,IAAI,CAAC+rM,KAAK,CAAC9B,KAAK,CACpBjvL,EAAIvoC,CAAC,CAAC6kB,EAAI,EAAE,CACZv2B,EAAI0R,CAAC,CAAC6kB,EAAI,EAAE,CACZp8D,EAAIu3C,CAAC,CAAC6kB,EAAI,EAAE,CACZrqD,EAAIwlC,CAAC,CAAC6kB,EAAI,EAAE,CACZzhC,EAAI4c,CAAC,CAAC6kB,EAAI,EAAE,CACZ2jB,EAAIxoC,CAAC,CAAC6kB,EAAI,EAAE,CACZ2nB,EAAIxsC,CAAC,CAAC6kB,EAAI,EAAE,CACZ4nB,EAAIzsC,CAAC,CAAC6kB,EAAI,EAAE,CACZ6jB,EAAI1oC,CAAC,CAAC6kB,EAAI,EAAE,CACZ+mD,EAAI5rE,CAAC,CAAC6kB,EAAI,EAAE,CACZ00M,EAAIv5N,CAAC,CAAC6kB,EAAI,GAAG,CACb20M,EAAIx5N,CAAC,CAAC6kB,EAAI,GAAG,CACboyM,EAAIj3N,CAAC,CAAC6kB,EAAI,GAAG,CACbi8C,EAAI9gE,CAAC,CAAC6kB,EAAI,GAAG,CACb40M,EAAIz5N,CAAC,CAAC6kB,EAAI,GAAG,CACb/qB,EAAIkG,CAAC,CAAC6kB,EAAI,GAAG,CACb4iE,EAAIl6D,CAAC,CAAC,EAAE,CACRgxC,EAAIhxC,CAAC,CAAC,EAAE,CACRmsM,EAAInsM,CAAC,CAAC,EAAE,CACRmf,EAAInf,CAAC,CAAC,EAAE,CACRk6D,EAAI9/G,EAAE8/G,EAAGlpB,EAAGm7J,EAAGhtL,EAAGnE,EAAG,EAAGL,CAAC,CAAC,EAAE,EAC5BwE,EAAI/kE,EAAE+kE,EAAG+6C,EAAGlpB,EAAGm7J,EAAGprO,EAAG,GAAI45C,CAAC,CAAC,EAAE,EAC7BwxL,EAAI/xP,EAAE+xP,EAAGhtL,EAAG+6C,EAAGlpB,EAAG91G,EAAG,GAAIy/E,CAAC,CAAC,EAAE,EAC7Bq2B,EAAI52F,EAAE42F,EAAGm7J,EAAGhtL,EAAG+6C,EAAGjtH,EAAG,GAAI0tE,CAAC,CAAC,EAAE,EAC7Bu/C,EAAI9/G,EAAE8/G,EAAGlpB,EAAGm7J,EAAGhtL,EAAGtpD,EAAG,EAAG8kD,CAAC,CAAC,EAAE,EAC5BwE,EAAI/kE,EAAE+kE,EAAG+6C,EAAGlpB,EAAGm7J,EAAGlxL,EAAG,GAAIN,CAAC,CAAC,EAAE,EAC7BwxL,EAAI/xP,EAAE+xP,EAAGhtL,EAAG+6C,EAAGlpB,EAAG/xB,EAAG,GAAItE,CAAC,CAAC,EAAE,EAC7Bq2B,EAAI52F,EAAE42F,EAAGm7J,EAAGhtL,EAAG+6C,EAAGh7C,EAAG,GAAIvE,CAAC,CAAC,EAAE,EAC7Bu/C,EAAI9/G,EAAE8/G,EAAGlpB,EAAGm7J,EAAGhtL,EAAGhE,EAAG,EAAGR,CAAC,CAAC,EAAE,EAC5BwE,EAAI/kE,EAAE+kE,EAAG+6C,EAAGlpB,EAAGm7J,EAAG9tJ,EAAG,GAAI1jC,CAAC,CAAC,EAAE,EAC7BwxL,EAAI/xP,EAAE+xP,EAAGhtL,EAAG+6C,EAAGlpB,EAAGg7J,EAAG,GAAIrxL,CAAC,CAAC,GAAG,EAC9Bq2B,EAAI52F,EAAE42F,EAAGm7J,EAAGhtL,EAAG+6C,EAAG+xI,EAAG,GAAItxL,CAAC,CAAC,GAAG,EAC9Bu/C,EAAI9/G,EAAE8/G,EAAGlpB,EAAGm7J,EAAGhtL,EAAGuqL,EAAG,EAAG/uL,CAAC,CAAC,GAAG,EAC7BwE,EAAI/kE,EAAE+kE,EAAG+6C,EAAGlpB,EAAGm7J,EAAG54J,EAAG,GAAI54B,CAAC,CAAC,GAAG,EAC9BwxL,EAAI/xP,EAAE+xP,EAAGhtL,EAAG+6C,EAAGlpB,EAAGk7J,EAAG,GAAIvxL,CAAC,CAAC,GAAG,EAC9Bq2B,EAAI52F,EAAE42F,EAAGm7J,EAAGhtL,EAAG+6C,EAAG3tF,EAAG,GAAIouC,CAAC,CAAC,GAAG,EAC9Bu/C,EAAIliF,EAAEkiF,EAAGlpB,EAAGm7J,EAAGhtL,EAAGp+C,EAAG,EAAG45C,CAAC,CAAC,GAAG,EAC7BwE,EAAInnC,EAAEmnC,EAAG+6C,EAAGlpB,EAAGm7J,EAAGltL,EAAG,EAAGtE,CAAC,CAAC,GAAG,EAC7BwxL,EAAIn0N,EAAEm0N,EAAGhtL,EAAG+6C,EAAGlpB,EAAGi7J,EAAG,GAAItxL,CAAC,CAAC,GAAG,EAC9Bq2B,EAAIh5D,EAAEg5D,EAAGm7J,EAAGhtL,EAAG+6C,EAAGl/C,EAAG,GAAIL,CAAC,CAAC,GAAG,EAC9Bu/C,EAAIliF,EAAEkiF,EAAGlpB,EAAGm7J,EAAGhtL,EAAGlE,EAAG,EAAGN,CAAC,CAAC,GAAG,EAC7BwE,EAAInnC,EAAEmnC,EAAG+6C,EAAGlpB,EAAGm7J,EAAGH,EAAG,EAAGrxL,CAAC,CAAC,GAAG,EAC7BwxL,EAAIn0N,EAAEm0N,EAAGhtL,EAAG+6C,EAAGlpB,EAAGzkE,EAAG,GAAIouC,CAAC,CAAC,GAAG,EAC9Bq2B,EAAIh5D,EAAEg5D,EAAGm7J,EAAGhtL,EAAG+6C,EAAGrkG,EAAG,GAAI8kD,CAAC,CAAC,GAAG,EAC9Bu/C,EAAIliF,EAAEkiF,EAAGlpB,EAAGm7J,EAAGhtL,EAAGk/B,EAAG,EAAG1jC,CAAC,CAAC,GAAG,EAC7BwE,EAAInnC,EAAEmnC,EAAG+6C,EAAGlpB,EAAGm7J,EAAGD,EAAG,EAAGvxL,CAAC,CAAC,GAAG,EAC7BwxL,EAAIn0N,EAAEm0N,EAAGhtL,EAAG+6C,EAAGlpB,EAAG/jG,EAAG,GAAI0tE,CAAC,CAAC,GAAG,EAC9Bq2B,EAAIh5D,EAAEg5D,EAAGm7J,EAAGhtL,EAAG+6C,EAAG/+C,EAAG,GAAIR,CAAC,CAAC,GAAG,EAC9Bu/C,EAAIliF,EAAEkiF,EAAGlpB,EAAGm7J,EAAGhtL,EAAGo0B,EAAG,EAAG54B,CAAC,CAAC,GAAG,EAC7BwE,EAAInnC,EAAEmnC,EAAG+6C,EAAGlpB,EAAGm7J,EAAGjxQ,EAAG,EAAGy/E,CAAC,CAAC,GAAG,EAC7BwxL,EAAIn0N,EAAEm0N,EAAGhtL,EAAG+6C,EAAGlpB,EAAG9xB,EAAG,GAAIvE,CAAC,CAAC,GAAG,EAC9Bq2B,EAAIh5D,EAAEg5D,EAAGm7J,EAAGhtL,EAAG+6C,EAAGwvI,EAAG,GAAI/uL,CAAC,CAAC,GAAG,EAC9Bu/C,EAAIp+H,EAAEo+H,EAAGlpB,EAAGm7J,EAAGhtL,EAAGlE,EAAG,EAAGN,CAAC,CAAC,GAAG,EAC7BwE,EAAIrjF,EAAEqjF,EAAG+6C,EAAGlpB,EAAGm7J,EAAGhxL,EAAG,GAAIR,CAAC,CAAC,GAAG,EAC9BwxL,EAAIrwQ,EAAEqwQ,EAAGhtL,EAAG+6C,EAAGlpB,EAAGi7J,EAAG,GAAItxL,CAAC,CAAC,GAAG,EAC9Bq2B,EAAIl1G,EAAEk1G,EAAGm7J,EAAGhtL,EAAG+6C,EAAGgyI,EAAG,GAAIvxL,CAAC,CAAC,GAAG,EAC9Bu/C,EAAIp+H,EAAEo+H,EAAGlpB,EAAGm7J,EAAGhtL,EAAGp+C,EAAG,EAAG45C,CAAC,CAAC,GAAG,EAC7BwE,EAAIrjF,EAAEqjF,EAAG+6C,EAAGlpB,EAAGm7J,EAAGt2O,EAAG,GAAI8kD,CAAC,CAAC,GAAG,EAC9BwxL,EAAIrwQ,EAAEqwQ,EAAGhtL,EAAG+6C,EAAGlpB,EAAG9xB,EAAG,GAAIvE,CAAC,CAAC,GAAG,EAC9Bq2B,EAAIl1G,EAAEk1G,EAAGm7J,EAAGhtL,EAAG+6C,EAAG8xI,EAAG,GAAIrxL,CAAC,CAAC,GAAG,EAC9Bu/C,EAAIp+H,EAAEo+H,EAAGlpB,EAAGm7J,EAAGhtL,EAAGo0B,EAAG,EAAG54B,CAAC,CAAC,GAAG,EAC7BwE,EAAIrjF,EAAEqjF,EAAG+6C,EAAGlpB,EAAGm7J,EAAGnxL,EAAG,GAAIL,CAAC,CAAC,GAAG,EAC9BwxL,EAAIrwQ,EAAEqwQ,EAAGhtL,EAAG+6C,EAAGlpB,EAAG/jG,EAAG,GAAI0tE,CAAC,CAAC,GAAG,EAC9Bq2B,EAAIl1G,EAAEk1G,EAAGm7J,EAAGhtL,EAAG+6C,EAAGj7C,EAAG,GAAItE,CAAC,CAAC,GAAG,EAC9Bu/C,EAAIp+H,EAAEo+H,EAAGlpB,EAAGm7J,EAAGhtL,EAAGk/B,EAAG,EAAG1jC,CAAC,CAAC,GAAG,EAC7BwE,EAAIrjF,EAAEqjF,EAAG+6C,EAAGlpB,EAAGm7J,EAAGzC,EAAG,GAAI/uL,CAAC,CAAC,GAAG,EAC9BwxL,EAAIrwQ,EAAEqwQ,EAAGhtL,EAAG+6C,EAAGlpB,EAAGzkE,EAAG,GAAIouC,CAAC,CAAC,GAAG,EAC9Bq2B,EAAIl1G,EAAEk1G,EAAGm7J,EAAGhtL,EAAG+6C,EAAGh/H,EAAG,GAAIy/E,CAAC,CAAC,GAAG,EAC9Bu/C,EAAI/jF,EAAE+jF,EAAGlpB,EAAGm7J,EAAGhtL,EAAGnE,EAAG,EAAGL,CAAC,CAAC,GAAG,EAC7BwE,EAAIhpC,EAAEgpC,EAAG+6C,EAAGlpB,EAAGm7J,EAAGjtL,EAAG,GAAIvE,CAAC,CAAC,GAAG,EAC9BwxL,EAAIh2N,EAAEg2N,EAAGhtL,EAAG+6C,EAAGlpB,EAAGk7J,EAAG,GAAIvxL,CAAC,CAAC,GAAG,EAC9Bq2B,EAAI76D,EAAE66D,EAAGm7J,EAAGhtL,EAAG+6C,EAAGj/C,EAAG,GAAIN,CAAC,CAAC,GAAG,EAC9Bu/C,EAAI/jF,EAAE+jF,EAAGlpB,EAAGm7J,EAAGhtL,EAAGuqL,EAAG,EAAG/uL,CAAC,CAAC,GAAG,EAC7BwE,EAAIhpC,EAAEgpC,EAAG+6C,EAAGlpB,EAAGm7J,EAAGl/P,EAAG,GAAI0tE,CAAC,CAAC,GAAG,EAC9BwxL,EAAIh2N,EAAEg2N,EAAGhtL,EAAG+6C,EAAGlpB,EAAGg7J,EAAG,GAAIrxL,CAAC,CAAC,GAAG,EAC9Bq2B,EAAI76D,EAAE66D,EAAGm7J,EAAGhtL,EAAG+6C,EAAGn5F,EAAG,GAAI45C,CAAC,CAAC,GAAG,EAC9Bu/C,EAAI/jF,EAAE+jF,EAAGlpB,EAAGm7J,EAAGhtL,EAAGhE,EAAG,EAAGR,CAAC,CAAC,GAAG,EAC7BwE,EAAIhpC,EAAEgpC,EAAG+6C,EAAGlpB,EAAGm7J,EAAG5/N,EAAG,GAAIouC,CAAC,CAAC,GAAG,EAC9BwxL,EAAIh2N,EAAEg2N,EAAGhtL,EAAG+6C,EAAGlpB,EAAG/xB,EAAG,GAAItE,CAAC,CAAC,GAAG,EAC9Bq2B,EAAI76D,EAAE66D,EAAGm7J,EAAGhtL,EAAG+6C,EAAG3mB,EAAG,GAAI54B,CAAC,CAAC,GAAG,EAC9Bu/C,EAAI/jF,EAAE+jF,EAAGlpB,EAAGm7J,EAAGhtL,EAAGtpD,EAAG,EAAG8kD,CAAC,CAAC,GAAG,EAC7BwE,EAAIhpC,EAAEgpC,EAAG+6C,EAAGlpB,EAAGm7J,EAAGF,EAAG,GAAItxL,CAAC,CAAC,GAAG,EAC9BwxL,EAAIh2N,EAAEg2N,EAAGhtL,EAAG+6C,EAAGlpB,EAAG91G,EAAG,GAAIy/E,CAAC,CAAC,GAAG,EAC9Bq2B,EAAI76D,EAAE66D,EAAGm7J,EAAGhtL,EAAG+6C,EAAG7b,EAAG,GAAI1jC,CAAC,CAAC,GAAG,CAClC3a,CAAAA,CAAC,CAAC,EAAE,CAAG,CAAE,CAAC,EAAE,CAAGk6D,EAAK,EACpBl6D,CAAC,CAAC,EAAE,CAAG,CAAE,CAAC,EAAE,CAAGgxC,EAAK,EACpBhxC,CAAC,CAAC,EAAE,CAAG,CAAE,CAAC,EAAE,CAAGmsM,EAAK,EACpBnsM,CAAC,CAAC,EAAE,CAAG,CAAE,CAAC,EAAE,CAAGmf,EAAK,CACxB,EACAmsL,YAAa,WACT,IAAI3wL,EAAI,IAAI,CAACgwL,KAAK,CACdrzM,EAAIqjB,EAAEsvL,KAAK,CACXjqM,EAAI,EAAI,IAAI,CAAC4qM,WAAW,CACxB5vL,EAAI,EAAIL,EAAEuvL,QAAQ,CACtB5yM,CAAC,CAAC0jB,IAAM,EAAE,EAAI,KAAQ,GAAMA,EAAI,GAChC,IAAIj6C,EAAI2oO,EAAE1wN,KAAK,CAACgnB,EAAI,aAOpB,IANA1I,CAAC,CAAC,CAAC,EAAM,KAAQ,GAAM,GAAK,GAAG,CAAG,CAAE,GAAM,EAAMv2B,IAAM,EAAC,EAAM,SAAa,CAAC,GAAM,GAAOA,IAAM,GAAM,WACpGu2B,CAAC,CAAC,CAAC,EAAM,KAAQ,GAAM,GAAK,GAAG,CAAG,CAAE,GAAM,EAAM0I,IAAM,EAAC,EAAM,SAAa,CAAC,GAAM,GAAOA,IAAM,GAAM,WACpG2a,EAAEuvL,QAAQ,CAAG,EAAK5yM,CAAAA,EAAEt+D,MAAM,CAAG,GAC7B,IAAI,CAAC8xQ,QAAQ,GAEbxzM,EAAIqjB,CADJA,EAAI,IAAI,CAACoxL,KAAK,EACR9B,KAAK,CACNjqM,EAAI,EAAG,EAAIA,EAAGA,IAAK,EAAK1I,CAAC,CAAC0I,EAAE,CAAI1I,CAAC,CAAC0I,EAAE,CAAG,CAAE,GAAM,EAAMgb,IAAM,EAAC,EAAM,SAAa,CAAC,GAAM,GAAOA,IAAM,GAAM,WAC9G,OAAOL,CACX,EACAkhD,MAAO,WACH,IAAIlhD,EAAIQ,EAAE0gD,KAAK,CAAC7lI,IAAI,CAAC,IAAI,EAEzB,OADA2kF,EAAEoxL,KAAK,CAAG,IAAI,CAACA,KAAK,CAAClwI,KAAK,GACnBlhD,CACX,CACJ,GACAsE,EAAE6sL,GAAG,CAAG3wL,EAAEowL,aAAa,CAACtwL,GACxBgE,EAAEmtL,OAAO,CAAGjxL,EAAEqwL,iBAAiB,CAACvwL,EACpC,EAAGliC,MAIKf,EAAI59B,CADJA,EAAIsvP,EAAEE,GAAG,EACHC,IAAI,CACV/tQ,EAAIse,EAAE4vP,SAAS,CAEf7zN,EAAK/7B,CADLA,EAAIsvP,EAAEgC,IAAI,EACHW,MAAM,CAAGr0N,EAAE4iC,MAAM,CAAC,CACrBuwL,IAAKnzN,EAAE4iC,MAAM,CAAC,CAAE0xL,QAAS,EAAGC,OAAQnyP,EAAE0xP,GAAG,CAAEU,WAAY,CAAE,GACzD7tO,KAAM,SAAUqZ,CAAC,EACb,IAAI,CAACmzN,GAAG,CAAG,IAAI,CAACA,GAAG,CAACvwL,MAAM,CAAC5iC,EAC/B,EACAy0N,QAAS,SAAUz0N,CAAC,CAAEijC,CAAC,EACnB,IAAK,IAAI7gE,EAAI,IAAI,CAAC+wP,GAAG,CAAEh1N,EAAI/7B,EAAEmyP,MAAM,CAACh6M,MAAM,GAAIooB,EAAI7+E,EAAEy2D,MAAM,GAAIm3M,EAAI/uL,EAAEsvL,KAAK,CAAEx3N,EAAIr4B,EAAEkyP,OAAO,CAAElyP,EAAIA,EAAEoyP,UAAU,CAAE9C,EAAE1wQ,MAAM,CAAGy5C,GAAK,CACxH6kB,GAAKnhB,EAAEoe,MAAM,CAAC+C,GACd,IAAIA,EAAInhB,EAAEoe,MAAM,CAACvc,GAAGqzN,QAAQ,CAACpwL,GAC7B9kC,EAAEgZ,KAAK,GACP,IAAK,IAAI6Q,EAAI,EAAGA,EAAI5lD,EAAG4lD,IAAK,EAAK7pB,EAAEk1N,QAAQ,CAAC/zM,GAAKnhB,EAAEgZ,KAAK,GACxDwrB,EAAElnD,MAAM,CAAC6jC,EACb,CAEA,OADAqjB,EAAEuvL,QAAQ,CAAG,EAAIz3N,EACVkoC,CACX,CACJ,GACJ+uL,EAAE2C,MAAM,CAAG,SAAUr0N,CAAC,CAAEl8C,CAAC,CAAEse,CAAC,EACxB,OAAO+7B,EAAEoc,MAAM,CAACn4C,GAAGqyP,OAAO,CAACz0N,EAAGl8C,EAClC,EAEJ6tQ,EAASC,GAAG,CAAC8C,MAAM,GAIP5wQ,EAAIk8C,CADJA,EAAI59B,CADJA,EAAIuvP,GACEC,GAAG,EACHC,IAAI,CACV1zN,EAAI6B,EAAEgyN,SAAS,CACf/qL,EAAIjnC,EAAE0yN,sBAAsB,CAC5BzvL,EAAI7gE,EAAEkwC,GAAG,CAACqhN,MAAM,CAChBzsL,EAAI9kE,EAAEsxP,IAAI,CAACW,MAAM,CACjBlxL,EAAKnjC,EAAE00N,MAAM,CAAGztL,EAAErE,MAAM,CAAC,CACrBuwL,IAAKrvQ,EAAE8+E,MAAM,GACb+xL,gBAAiB,SAAU5rO,CAAC,CAAEi/B,CAAC,EAC3B,OAAO,IAAI,CAACzN,MAAM,CAAC,IAAI,CAACq6M,eAAe,CAAE7rO,EAAGi/B,EAChD,EACA6sM,gBAAiB,SAAU9rO,CAAC,CAAEi/B,CAAC,EAC3B,OAAO,IAAI,CAACzN,MAAM,CAAC,IAAI,CAACu6M,eAAe,CAAE/rO,EAAGi/B,EAChD,EACArhC,KAAM,SAAUoC,CAAC,CAAEi/B,CAAC,CAAE2a,CAAC,EACnB,IAAI,CAACwwL,GAAG,CAAG,IAAI,CAACA,GAAG,CAACvwL,MAAM,CAACD,GAC3B,IAAI,CAACoyL,UAAU,CAAGhsO,EAClB,IAAI,CAACisO,IAAI,CAAGhtM,EACZ,IAAI,CAAC7Q,KAAK,EACd,EACAA,MAAO,WACH8vB,EAAE9vB,KAAK,CAACn5D,IAAI,CAAC,IAAI,EACjB,IAAI,CAACo1Q,QAAQ,EACjB,EACA6B,QAAS,SAAUlsO,CAAC,EAEhB,OADA,IAAI,CAAC8pO,OAAO,CAAC9pO,GACN,IAAI,CAAC+pO,QAAQ,EACxB,EACAO,SAAU,SAAUtqO,CAAC,EAEjB,OADAA,GAAK,IAAI,CAAC8pO,OAAO,CAAC9pO,GACX,IAAI,CAACuqO,WAAW,EAC3B,EACAgB,QAAS,EACTY,OAAQ,EACRN,gBAAiB,EACjBE,gBAAiB,EACjBvB,cAAe,SAAUxqO,CAAC,EACtB,MAAO,CACH0pH,QAAS,SAAU9vE,CAAC,CAAE1tE,CAAC,CAAE+qC,CAAC,EACtB,MAAO,CAAC,UAAa,OAAO/qC,EAAI+tE,EAAIhb,CAAAA,EAAGyqF,OAAO,CAAC1pH,EAAG45C,EAAG1tE,EAAG+qC,EAC5D,EACAkS,QAAS,SAAUywB,CAAC,CAAE1tE,CAAC,CAAE+qC,CAAC,EACtB,MAAO,CAAC,UAAa,OAAO/qC,EAAI+tE,EAAIhb,CAAAA,EAAG9V,OAAO,CAACnpB,EAAG45C,EAAG1tE,EAAG+qC,EAC5D,CACJ,CACJ,CACJ,GACJA,EAAEm1N,YAAY,CAAGhyL,EAAEP,MAAM,CAAC,CACtB0wL,YAAa,WACT,OAAO,IAAI,CAACR,QAAQ,CAAC,CAAC,EAC1B,EACAC,UAAW,CACf,GACIpwL,EAAKvgE,EAAE0vE,IAAI,CAAG,CAAC,EACfv9C,EAAI,SAAUxL,CAAC,CAAEi/B,CAAC,CAAE2a,CAAC,EACjB,IAAIK,EAAI,IAAI,CAACoyL,GAAG,CAChBpyL,EAAK,IAAI,CAACoyL,GAAG,CA1Dd1D,KAAAA,EA0DuB1uL,EAAI,IAAI,CAACqyL,UAAU,CACzC,IAAK,IAAIr1N,EAAI,EAAGA,EAAI2iC,EAAG3iC,IAAKjX,CAAC,CAACi/B,EAAIhoB,EAAE,EAAIgjC,CAAC,CAAChjC,EAAE,EAcpDvF,CAZIA,EAAI,CAACuF,EAAEs1N,eAAe,CAAGxxQ,EAAE8+E,MAAM,CAAC,CAC9B+xL,gBAAiB,SAAU5rO,CAAC,CAAEi/B,CAAC,EAC3B,OAAO,IAAI,CAACutM,SAAS,CAACh7M,MAAM,CAACxxB,EAAGi/B,EACpC,EACA6sM,gBAAiB,SAAU9rO,CAAC,CAAEi/B,CAAC,EAC3B,OAAO,IAAI,CAACwtM,SAAS,CAACj7M,MAAM,CAACxxB,EAAGi/B,EACpC,EACArhC,KAAM,SAAUoC,CAAC,CAAEi/B,CAAC,EAChB,IAAI,CAACytM,OAAO,CAAG1sO,EACf,IAAI,CAACqsO,GAAG,CAAGptM,CACf,CACJ,EAAC,EAAG4a,MAAM,IACZ2yL,SAAS,CAAG96N,EAAEmoC,MAAM,CAAC,CACnB8yL,aAAc,SAAU3sO,CAAC,CAAEi/B,CAAC,EACxB,IAAI2a,EAAI,IAAI,CAAC8yL,OAAO,CAChBzyL,EAAIL,EAAEowL,SAAS,CACnBx+N,EAAEv2C,IAAI,CAAC,IAAI,CAAE+qC,EAAGi/B,EAAGgb,GACnBL,EAAEgzL,YAAY,CAAC5sO,EAAGi/B,GAClB,IAAI,CAACqtM,UAAU,CAAGtsO,EAAEjmC,KAAK,CAACklE,EAAGA,EAAIgb,EACrC,CACJ,GACAvoC,EAAE+6N,SAAS,CAAG/6N,EAAEmoC,MAAM,CAAC,CACnB8yL,aAAc,SAAU3sO,CAAC,CAAEi/B,CAAC,EACxB,IAAI2a,EAAI,IAAI,CAAC8yL,OAAO,CAChBzyL,EAAIL,EAAEowL,SAAS,CACf/yN,EAAIjX,EAAEjmC,KAAK,CAACklE,EAAGA,EAAIgb,GACvBL,EAAEizL,YAAY,CAAC7sO,EAAGi/B,GAClBzzB,EAAEv2C,IAAI,CAAC,IAAI,CAAE+qC,EAAGi/B,EAAGgb,GACnB,IAAI,CAACqyL,UAAU,CAAGr1N,CACtB,CACJ,GACA2iC,EAAIA,EAAEkzL,GAAG,CAAGp7N,EACZA,EAAI,CAACr4B,EAAEs0F,GAAG,CAAG,CAAC,GAAGo/J,KAAK,CAAG,CACrBp/J,IAAK,SAAU1uC,CAAC,CAAE2a,CAAC,EACf,IAAK,IAAIK,EAAI,EAAIL,EAAGK,EAAIA,EAAKhb,EAAEkqM,QAAQ,CAAGlvL,EAAIhjC,EAAI,GAAM,GAAOgjC,GAAK,GAAOA,GAAK,EAAKA,EAAGl/E,EAAI,EAAE,CAAEw7D,EAAI,EAAGA,EAAI0jB,EAAG1jB,GAAK,EAAGx7D,EAAE2B,IAAI,CAACu6C,GAC7HgjC,EAAI7kC,EAAEoc,MAAM,CAACz2D,EAAGk/E,GAChBhb,EAAEvsC,MAAM,CAACunD,EACb,EACA+yL,MAAO,SAAU/tM,CAAC,EACdA,EAAEkqM,QAAQ,EAAIlqM,IAAAA,EAAEiqM,KAAK,CAAC,EAAGC,QAAQ,CAAG,IAAO,EAAE,CAErD,EACAlyN,EAAEg2N,WAAW,CAAG7yL,EAAEP,MAAM,CAAC,CACrBuwL,IAAKhwL,EAAEgwL,GAAG,CAACvwL,MAAM,CAAC,CAAEkP,KAAMnP,EAAGszL,QAASx7N,CAAE,GACxC0c,MAAO,WACHgsB,EAAEhsB,KAAK,CAACn5D,IAAI,CAAC,IAAI,EACjB,IAAIgqE,EAAI,IAAI,CAACmrM,GAAG,CACZxwL,EAAI3a,EAAEkuM,EAAE,CACRluM,EAAIA,EAAE8pB,IAAI,CAEd,GAAI,IAAI,CAACijL,UAAU,EAAI,IAAI,CAACH,eAAe,CAAE,IAAI5xL,EAAIhb,EAAE2sM,eAAe,MACjE,EAAK3sM,EAAE6sM,eAAe,CAAI,IAAI,CAAC7B,cAAc,CAAG,CACrD,KAAI,CAACmD,KAAK,CAAGnzL,EAAEhlF,IAAI,CAACgqE,EAAG,IAAI,CAAE2a,GAAKA,EAAEsvL,KAAK,CAC7C,EACAgB,gBAAiB,SAAUjrM,CAAC,CAAE2a,CAAC,EAC3B,IAAI,CAACwzL,KAAK,CAACT,YAAY,CAAC1tM,EAAG2a,EAC/B,EACA2wL,YAAa,WACT,IAAItrM,EAAI,IAAI,CAACmrM,GAAG,CAAC8C,OAAO,CAExB,GAAI,IAAI,CAAClB,UAAU,EAAI,IAAI,CAACH,eAAe,CAAE,CACzC5sM,EAAE0uC,GAAG,CAAC,IAAI,CAACi8J,KAAK,CAAE,IAAI,CAACI,SAAS,EAChC,IAAIpwL,EAAI,IAAI,CAACmwL,QAAQ,CAAC,CAAC,EAC3B,MAAO,EAAK,IAAI,CAACA,QAAQ,CAAC,CAAC,GAAK9qM,EAAE+tM,KAAK,CAACpzL,GACxC,OAAOA,CACX,EACAowL,UAAW,CACf,GACIzzM,EAAKtf,EAAEo2N,YAAY,CAAGtyQ,EAAE8+E,MAAM,CAAC,CAC3Bj8C,KAAM,SAAUqhC,CAAC,EACb,IAAI,CAAC8pM,KAAK,CAAC9pM,EACf,EACA34C,SAAU,SAAU24C,CAAC,EACjB,MAAO,CAACA,GAAK,IAAI,CAACquM,SAAS,EAAE5uI,SAAS,CAAC,IAAI,CAC/C,CACJ,GACA9kD,EAAK,CAACvgE,EAAEi2F,MAAM,CAAG,CAAC,GAAGi+J,OAAO,CAAG,CAC3B7uI,UAAW,SAAUz/D,CAAC,EAClB,IAAI2a,EAAI3a,EAAEuuM,UAAU,CAEpB,MAAO,CAACvuM,CADRA,EAAIA,EAAEwuM,IAAI,EACEr4N,EAAEoc,MAAM,CAAC,CAAC,WAAY,WAAW,EAAE9+B,MAAM,CAACusC,GAAGvsC,MAAM,CAACknD,GAAKA,CAAAA,EAAGtzD,QAAQ,CAAC4zD,EACrF,EACAxwB,MAAO,SAAUuV,CAAC,EAEd,IAAI2a,EAAI3a,CADRA,EAAIib,EAAExwB,KAAK,CAACuV,EAAC,EACHiqM,KAAK,CAEf,GAAI,YAActvL,CAAC,CAAC,EAAE,EAAI,YAAcA,CAAC,CAAC,EAAE,CAAE,CAC1C,IAAIK,EAAI7kC,EAAEoc,MAAM,CAACooB,EAAE7/E,KAAK,CAAC,EAAG,IAC5B6/E,EAAEj9E,MAAM,CAAC,EAAG,GACZsiE,EAAEkqM,QAAQ,EAAI,EAClB,CACA,OAAO5yM,EAAE/E,MAAM,CAAC,CAAEg8M,WAAYvuM,EAAGwuM,KAAMxzL,CAAE,EAC7C,CACJ,EACAhb,EAAKhoB,EAAEy2N,kBAAkB,CAAG3yQ,EAAE8+E,MAAM,CAAC,CACjCuwL,IAAKrvQ,EAAE8+E,MAAM,CAAC,CAAEy1B,OAAQ11B,CAAE,GAC1B8vE,QAAS,SAAUzqF,CAAC,CAAE2a,CAAC,CAAEK,CAAC,CAAEhjC,CAAC,EACzBA,EAAI,IAAI,CAACmzN,GAAG,CAACvwL,MAAM,CAAC5iC,GACpB,IAAIl8C,EAAIkkE,EAAE2sM,eAAe,CAAC3xL,EAAGhjC,GAG7B,OAFA2iC,EAAI7+E,EAAEuvQ,QAAQ,CAAC1wL,GACf7+E,EAAIA,EAAEqvQ,GAAG,CACF7zM,EAAE/E,MAAM,CAAC,CAAEg8M,WAAY5zL,EAAG/hF,IAAKoiF,EAAGkzL,GAAIpyQ,EAAEoyQ,EAAE,CAAEQ,UAAW1uM,EAAG8pB,KAAMhuF,EAAEguF,IAAI,CAAEmkL,QAASnyQ,EAAEmyQ,OAAO,CAAElD,UAAW/qM,EAAE+qM,SAAS,CAAEsD,UAAWr2N,EAAEq4D,MAAM,EAClJ,EACAnmD,QAAS,SAAU8V,CAAC,CAAE2a,CAAC,CAAEK,CAAC,CAAEhjC,CAAC,EAGzB,OAFAA,EAAI,IAAI,CAACmzN,GAAG,CAACvwL,MAAM,CAAC5iC,GACpB2iC,EAAI,IAAI,CAACg0L,MAAM,CAACh0L,EAAG3iC,EAAEq4D,MAAM,EACpBrwC,EAAE6sM,eAAe,CAAC7xL,EAAGhjC,GAAGqzN,QAAQ,CAAC1wL,EAAE4zL,UAAU,CACxD,EACAI,OAAQ,SAAU3uM,CAAC,CAAE2a,CAAC,EAClB,MAAO,UAAa,OAAO3a,EAAI2a,EAAElwB,KAAK,CAACuV,EAAG,IAAI,EAAIA,CACtD,CACJ,GACA5lD,EAAK,CAACA,EAAEw0P,GAAG,CAAG,CAAC,GAAGN,OAAO,CAAG,CACxBz6M,QAAS,SAAUmM,CAAC,CAAE2a,CAAC,CAAEK,CAAC,CAAEhjC,CAAC,EAKzB,OAJAA,GAAMA,CAAAA,EAAI7B,EAAE+kC,MAAM,CAAC,EAAC,EACpBlb,EAAIkf,EAAE3sB,MAAM,CAAC,CAAE+5M,QAAS3xL,EAAIK,CAAE,GAAGyxL,OAAO,CAACzsM,EAAGhoB,GAC5CgjC,EAAI7kC,EAAEoc,MAAM,CAACyN,EAAEiqM,KAAK,CAACnvQ,KAAK,CAAC6/E,GAAI,EAAIK,GACnChb,EAAEkqM,QAAQ,CAAG,EAAIvvL,EACVrjB,EAAE/E,MAAM,CAAC,CAAE35D,IAAKonE,EAAGkuM,GAAIlzL,EAAGwzL,KAAMx2N,CAAE,EAC7C,CACJ,EACAgjC,EAAKhjC,EAAE62N,mBAAmB,CAAG7uM,EAAE4a,MAAM,CAAC,CAClCuwL,IAAKnrM,EAAEmrM,GAAG,CAACvwL,MAAM,CAAC,CAAEg0L,IAAKx0P,CAAE,GAC3BqwI,QAAS,SAAU9vE,CAAC,CAAEK,CAAC,CAAEhjC,CAAC,CAAEl8C,CAAC,EAMzB,OAJAk8C,EAAIl8C,CADJA,EAAI,IAAI,CAACqvQ,GAAG,CAACvwL,MAAM,CAAC9+E,EAAC,EACf8yQ,GAAG,CAAC/6M,OAAO,CAAC7b,EAAG2iC,EAAE2xL,OAAO,CAAE3xL,EAAEuyL,MAAM,EACxCpxQ,EAAEoyQ,EAAE,CAAGl2N,EAAEk2N,EAAE,CAEXvzL,CADAA,EAAI3a,EAAEyqF,OAAO,CAACz0J,IAAI,CAAC,IAAI,CAAE2kF,EAAGK,EAAGhjC,EAAEp/C,GAAG,CAAEkD,EAAC,EACrCguQ,KAAK,CAAC9xN,GACD2iC,CACX,EACAzwB,QAAS,SAAUywB,CAAC,CAAEK,CAAC,CAAEhjC,CAAC,CAAEl8C,CAAC,EAKzB,OAJAA,EAAI,IAAI,CAACqvQ,GAAG,CAACvwL,MAAM,CAAC9+E,GACpBk/E,EAAI,IAAI,CAAC2zL,MAAM,CAAC3zL,EAAGl/E,EAAEu0G,MAAM,EAC3Br4D,EAAIl8C,EAAE8yQ,GAAG,CAAC/6M,OAAO,CAAC7b,EAAG2iC,EAAE2xL,OAAO,CAAE3xL,EAAEuyL,MAAM,CAAElyL,EAAEwzL,IAAI,EAChD1yQ,EAAEoyQ,EAAE,CAAGl2N,EAAEk2N,EAAE,CACJluM,EAAE9V,OAAO,CAACl0D,IAAI,CAAC,IAAI,CAAE2kF,EAAGK,EAAGhjC,EAAEp/C,GAAG,CAAEkD,EAC7C,CACJ,IAEZ,WACI,IAAK,IAAkBse,EAAIsvP,EAAEE,GAAG,CAACoE,WAAW,CAAEh2N,EAAI0xN,EAAEgC,IAAI,CAAE5vQ,EAAI,EAAE,CAAEq6C,EAAI,EAAE,CAAE8oC,EAAI,EAAE,CAAEhE,EAAI,EAAE,CAAEiE,EAAI,EAAE,CAAE/D,EAAI,EAAE,CAAER,EAAI,EAAE,CAAEpuC,EAAI,EAAE,CAAEkG,EAAI,EAAE,CAAE6kB,EAAI,EAAE,CAAE0I,EAAI,EAAE,CAAEgb,EAAI,EAAG,IAAMA,EAAGA,IAC9Jhb,CAAC,CAACgb,EAAE,CAAG,IAAMA,EAAIA,GAAK,EAAI,GAAM,EAAK,IACzC,IAAK,IAAIj6C,EAAI,EAAG7lC,EAAI,EAAG8/E,EAAI,EAAG,IAAMA,EAAGA,IAAK,CACxC,IAAI/tE,EAAI/R,EAAKA,GAAK,EAAMA,GAAK,EAAMA,GAAK,EAAMA,GAAK,EAC/C+R,EAAI,IAAO,EAAMA,IAAAA,EAAW,EAChCnR,CAAAA,CAAC,CAACilC,EAAE,CAAG9zB,EACPkpC,CAAC,CAAClpC,EAAE,CAAG8zB,EACP,IAAIlL,EAAImqC,CAAC,CAACj/B,EAAE,CACR+tO,EAAI9uM,CAAC,CAACnqC,EAAE,CACRk5O,EAAI/uM,CAAC,CAAC8uM,EAAE,CACRt9J,EAAI,IAAOxxC,CAAC,CAAC/yD,EAAE,CAAK,UAAWA,CACnCgyE,CAAAA,CAAC,CAACl+C,EAAE,CAAG,GAAM,GAAOywE,IAAM,EAC1Bv2B,CAAC,CAACl6C,EAAE,CAAG,GAAM,GAAOywE,IAAM,GAC1BtyB,CAAC,CAACn+C,EAAE,CAAG,GAAM,EAAMywE,IAAM,GACzBr2B,CAAC,CAACp6C,EAAE,CAAGywE,EACPA,EAAI,UAAYu9J,EAAM,MAAQD,EAAM,IAAMj5O,EAAM,UAAWkL,EAC3D45C,CAAC,CAAC1tE,EAAE,CAAG,GAAM,GAAOukG,IAAM,EAC1BjlE,CAAC,CAACt/B,EAAE,CAAG,GAAM,GAAOukG,IAAM,GAC1B/+D,CAAC,CAACxlC,EAAE,CAAG,GAAM,EAAMukG,IAAM,GACzBl6C,CAAC,CAACrqD,EAAE,CAAGukG,EACPzwE,EAAMA,CAAAA,EAAIlL,EAAImqC,CAAC,CAACA,CAAC,CAACA,CAAC,CAAC+uM,EAAIl5O,EAAE,CAAC,CAAC,CAAI36B,GAAK8kE,CAAC,CAACA,CAAC,CAAC9kE,EAAE,CAAC,EAAM6lC,EAAI7lC,EAAI,CAC9D,CACA,IAAIs4G,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,IAAK,GAAI,GAAG,CAC5Cx7D,EAAKA,EAAEqS,GAAG,CAAGjwC,EAAEwgE,MAAM,CAAC,CAClBwwL,SAAU,WACN,IAAK,IAAIprM,EAAI,IAAI,CAACgtM,IAAI,CAAEhyL,EAAIhb,EAAEiqM,KAAK,CAAEjyN,EAAIgoB,EAAEkqM,QAAQ,CAAG,EAAGlqM,EAAI,EAAM,MAAI,CAACgvM,QAAQ,CAAGh3N,EAAI,GAAK,GAAIjX,EAAK,IAAI,CAACkuO,YAAY,CAAG,EAAE,CAAG/zQ,EAAI,EAAGA,EAAI8kE,EAAG9kE,IACxI,GAAIA,EAAI88C,EAAGjX,CAAC,CAAC7lC,EAAE,CAAG8/E,CAAC,CAAC9/E,EAAE,KACjB,CACD,IAAI+R,EAAI8zB,CAAC,CAAC7lC,EAAI,EAAE,CAEhBA,EAAI88C,EACE,EAAIA,GAAK,GAAK98C,EAAI88C,GAAM/qC,CAAAA,EAAI,CAAE,CAACA,IAAM,GAAG,EAAI,GAAOnR,CAAC,CAAC,IAAO,GAAM,IAAI,EAAI,GAAOA,CAAC,CAAC,IAAO,EAAK,IAAI,EAAI,EAAKA,CAAC,CAACmR,IAAAA,EAAQ,EACWA,EAA9F,EAAE,CAACA,CAApCA,EAAI,GAAM,EAAMA,IAAM,EAAC,IAAmB,GAAG,EAAI,GAAOnR,CAAC,CAAC,IAAO,GAAM,IAAI,EAAI,GAAOA,CAAC,CAAC,IAAO,EAAK,IAAI,EAAI,EAAKA,CAAC,CAACmR,IAAAA,EAAQ,EAASumG,CAAC,CAAC,EAAKx7D,EAAK,EAAE,EAAI,GAE9JjX,CAAC,CAAC7lC,EAAE,CAAG6lC,CAAC,CAAC7lC,EAAI88C,EAAE,CAAG/qC,CACtB,CAEJ,IAAK+qC,EAAI,EADTgjC,EAAI,IAAI,CAACk0L,eAAe,CAAG,EAAE,CACjBl3N,EAAIgoB,EAAGhoB,IAAK,EAAKgoB,EAAIhoB,EAAK/qC,EAAI+qC,EAAI,EAAIjX,CAAC,CAAC7lC,EAAE,CAAG6lC,CAAC,CAAC7lC,EAAI,EAAE,CAAI8/E,CAAC,CAAChjC,EAAE,CAAG,EAAIA,GAAK,GAAK98C,EAAI+R,EAAI0tE,CAAC,CAAC7+E,CAAC,CAACmR,IAAM,GAAG,CAAC,CAAGs/B,CAAC,CAACzwC,CAAC,CAAC,IAAO,GAAM,IAAI,CAAC,CAAG22C,CAAC,CAAC32C,CAAC,CAAC,IAAO,EAAK,IAAI,CAAC,CAAGw7D,CAAC,CAACx7D,CAAC,CAACmR,IAAAA,EAAQ,CAAC,EAErL0gQ,aAAc,SAAU3tM,CAAC,CAAE2a,CAAC,EACxB,IAAI,CAACw0L,aAAa,CAACnvM,EAAG2a,EAAG,IAAI,CAACs0L,YAAY,CAAEhwL,EAAGhE,EAAGiE,EAAG/D,EAAGr/E,EAC5D,EACA8xQ,aAAc,SAAU5tM,CAAC,CAAEgb,CAAC,EACxB,IAAIhjC,EAAIgoB,CAAC,CAACgb,EAAI,EAAE,CAChBhb,CAAC,CAACgb,EAAI,EAAE,CAAGhb,CAAC,CAACgb,EAAI,EAAE,CACnBhb,CAAC,CAACgb,EAAI,EAAE,CAAGhjC,EACX,IAAI,CAACm3N,aAAa,CAACnvM,EAAGgb,EAAG,IAAI,CAACk0L,eAAe,CAAEv0L,EAAGpuC,EAAGkG,EAAG6kB,EAAGnhB,GAC3D6B,EAAIgoB,CAAC,CAACgb,EAAI,EAAE,CACZhb,CAAC,CAACgb,EAAI,EAAE,CAAGhb,CAAC,CAACgb,EAAI,EAAE,CACnBhb,CAAC,CAACgb,EAAI,EAAE,CAAGhjC,CACf,EACAm3N,cAAe,SAAUnvM,CAAC,CAAE2a,CAAC,CAAEK,CAAC,CAAEhjC,CAAC,CAAEjX,CAAC,CAAE7lC,CAAC,CAAEY,CAAC,CAAEo+H,CAAC,EAC3C,IAAK,IAAIlpB,EAAI,IAAI,CAACg+J,QAAQ,CAAE7C,EAAInsM,CAAC,CAAC2a,EAAE,CAAGK,CAAC,CAAC,EAAE,CAAEmE,EAAInf,CAAC,CAAC2a,EAAI,EAAE,CAAGK,CAAC,CAAC,EAAE,CAAE/tE,EAAI+yD,CAAC,CAAC2a,EAAI,EAAE,CAAGK,CAAC,CAAC,EAAE,CAAE1jB,EAAI0I,CAAC,CAAC2a,EAAI,EAAE,CAAGK,CAAC,CAAC,EAAE,CAAE5gE,EAAI,EAAG6gE,EAAI,EAAGA,EAAI+1B,EAAG/1B,IAC7H,IAAIxoC,EAAIuF,CAAC,CAACm0N,IAAM,GAAG,CAAGprO,CAAC,CAAC,IAAO,GAAM,IAAI,CAAG7lC,CAAC,CAAC,IAAO,EAAK,IAAI,CAAGY,CAAC,CAACw7D,IAAAA,EAAQ,CAAG0jB,CAAC,CAAC5gE,IAAI,CAChF+7B,EAAI6B,CAAC,CAACmnC,IAAM,GAAG,CAAGp+C,CAAC,CAAC,IAAO,GAAM,IAAI,CAAG7lC,CAAC,CAAC,IAAO,EAAK,IAAI,CAAGY,CAAC,CAACqwQ,IAAAA,EAAQ,CAAGnxL,CAAC,CAAC5gE,IAAI,CAChF6kE,EAAIjnC,CAAC,CAAC/qC,IAAM,GAAG,CAAG8zB,CAAC,CAAC,IAAO,GAAM,IAAI,CAAG7lC,CAAC,CAAC,IAAO,EAAK,IAAI,CAAGY,CAAC,CAACqjF,IAAAA,EAAQ,CAAGnE,CAAC,CAAC5gE,IAAI,CAChFk9C,EAAItf,CAAC,CAACsf,IAAM,GAAG,CAAGv2B,CAAC,CAAC,IAAO,GAAM,IAAI,CAAG7lC,CAAC,CAAC,IAAO,EAAK,IAAI,CAAGY,CAAC,CAACmR,IAAAA,EAAQ,CAAG+tE,CAAC,CAAC5gE,IAAI,CAChF+xP,EAAI15N,EACJ0sC,EAAIhpC,EACJlpC,EAAIgyE,EACZxsC,EAAI,CAAC,CAAE,CAAC05N,IAAM,GAAG,EAAI,GAAOjyI,CAAC,CAAC,IAAO,GAAM,IAAI,EAAI,GAAOA,CAAC,CAAC,IAAO,EAAK,IAAI,EAAI,EAAKA,CAAC,CAAC5iE,IAAAA,EAAQ,EAAI0jB,CAAC,CAAC5gE,IAAI,CACzG+7B,EAAI,CAAC,CAAE,CAACgpC,IAAM,GAAG,EAAI,GAAO+6C,CAAC,CAAC,IAAO,GAAM,IAAI,EAAI,GAAOA,CAAC,CAAC,IAAO,EAAK,IAAI,EAAI,EAAKA,CAAC,CAACiyI,IAAAA,EAAQ,EAAInxL,CAAC,CAAC5gE,IAAI,CACzG6kE,EAAI,CAAC,CAAE,CAAChyE,IAAM,GAAG,EAAI,GAAOitH,CAAC,CAAC,IAAO,GAAM,IAAI,EAAI,GAAOA,CAAC,CAAC,IAAO,EAAK,IAAI,EAAI,EAAKA,CAAC,CAAC/6C,IAAAA,EAAQ,EAAInE,CAAC,CAAC5gE,IAAI,CACzGk9C,EAAI,CAAC,CAAE,CAACA,IAAM,GAAG,EAAI,GAAO4iE,CAAC,CAAC,IAAO,GAAM,IAAI,EAAI,GAAOA,CAAC,CAAC,IAAO,EAAK,IAAI,EAAI,EAAKA,CAAC,CAACjtH,IAAAA,EAAQ,EAAI+tE,CAAC,CAAC5gE,IAAI,CACzG4lD,CAAC,CAAC2a,EAAE,CAAGloC,EACPutB,CAAC,CAAC2a,EAAI,EAAE,CAAGxkC,EACX6pB,CAAC,CAAC2a,EAAI,EAAE,CAAGsE,EACXjf,CAAC,CAAC2a,EAAI,EAAE,CAAGrjB,CACf,EACAg1M,QAAS,CACb,EACJ5C,CAvEaC,EAuEXt/M,GAAG,CAAGjwC,EAAEmxP,aAAa,CAACvzN,EAC5B,G,kBC7pBA,SAASo3N,EAAgBpxQ,CAAQ,EAG7B,IAAI,CAAChG,KAAK,CAAGq3Q,EAAkB,SAC/B,IAAI,CAAC98C,EAAE,CAAG88C,EAAkB,MAI5B,IAAIC,EAAgB,CAChBC,MAcJ,SAA4Bh9C,CAAE,CAAEjkD,CAAO,CAAE5Z,CAAK,EAC1C,IAAI,CAAC19H,OAAO,CAAG,KACf,IAAI+V,EAAO,IAAI,CACf,MAAO,CACH95B,OAAQ,WACJjV,EAASiV,MAAM,CAAC85B,EAAK/V,OAAO,CAChC,EACAglJ,IAAK,SAAUj7I,CAAC,EACZ/iC,EAASiV,MAAM,CAAC85B,EAAK/V,OAAO,EAC5B+V,EAAK/V,OAAO,CAAGh5B,EAASu0N,EAAGp8N,IAAI,CAACm4K,GAAW,IAAI,CAAEvtI,GAAI2zH,GAAS,IAClE,CACJ,CACJ,EAzBI86G,GA2BJ,SAAyBj9C,CAAE,CAAEjkD,CAAO,CAAE5Z,CAAK,EACvC,IAAI,CAAC19H,OAAO,CAAG,KACf,IAAI+V,EAAO,IAAI,CAEf,MAAO,CACH95B,OAAQ,WACJjV,EAASiV,MAAM,CAAC85B,EAAK/V,OAAO,CAChC,EACAglJ,IAAK,WACD,IAAIj9K,EAAOq2D,UACX,IAAI,CAACniD,MAAM,GACX85B,EAAK/V,OAAO,CAAGh5B,EAAS,WACpBu0N,EAAGp9J,KAAK,CAACm5G,GAAW,IAAI,CAAEvvK,EAC9B,EAAG21J,GAAS,IAChB,CACJ,CACJ,CA1CA,EAEA,SAAS26G,EAAkBv2P,CAAI,EAC3B,OAAO,SAAUy5M,CAAE,CAAEjkD,CAAO,CAAE5Z,CAAK,EAC/B,GAAI,CAAC69D,GAAM,mBAAOA,EACd,MAAM,MAAU,sEAGpB,OAAO,IAAI+8C,CAAa,CAACx2P,EAAK,CAACy5M,EAAIjkD,EAAS5Z,EAChD,CACJ,CAiCJ,CAzDA14J,E,OAAAA,CAAUA,CAACC,OAAO,CAAC,WAAYmzQ,GAC/BA,EAAgBlzQ,OAAO,CAAG,CAAC,WAAW,E,0CCItC,SAASuzQ,EAAuBC,CAAoB,EAmBhD,SAASv1J,EAAsBv/G,CAAO,CAAE+0Q,CAAO,CAAEC,CAAM,CAAEC,CAAe,EACpE,GAAI,CAACj1Q,GAAW,CAAC+0Q,EACb,OAAO,KAGX,KAAO,CAACA,EAAQ/0Q,IAAU,CAEtB,GAAIk1Q,EAAal1Q,EAASg1Q,IAAWG,SAoEjBt1J,CAAI,CAAEm1J,CAAM,CAAEC,CAAe,EACrD,GAAI,GAAqBp1J,GAASA,EAAK5+E,UAAU,CAIjD,OAAOi0O,EAAar1J,EAAK5+E,UAAU,CAAE+zO,EACzC,EA1EgEh1Q,EAASg1Q,EAAQC,GACrE,OAAO,KAIX,GAAI,CACAj1Q,EAAUA,EAAQihC,UAAU,CAC9B,MAAOkF,EAAG,CACR,OAAO,IACX,CACJ,CAEA,OAAOnmC,CACX,CAoBA,SAASk1Q,EAAar1J,CAAI,CAAEm1J,CAAM,EAC9B,GAAI,CAACn1J,EACD,MAAO,GAGX,IAAIu1J,EAAYv1J,SAAAA,EAAK3S,QAAQ,QAC7B,GAAc,CAACkoK,EACJC,SAMOx1J,CAAI,CAAEm1J,CAAM,EAC9B,IAAIM,EAAa,EACjB,IAAK,IAAIC,KAASP,EACd,GAAIA,EAAO7oP,cAAc,CAACopP,GAAQ,CAO9B,GANAD,IAGc,YAAVC,GACAP,CAAAA,CAAM,CAACO,EAAM,CAAG,CAACP,CAAM,CAACO,EAAM,EAAI,EAAC,EAAGnoL,WAAW,EAAC,EAElDmoL,EAAM11J,IAAI,CACV,OAAOA,IAAS01J,EAAM11J,IAAI,CAE9B,GAAIA,CAAI,CAAC01J,EAAM,GAAKP,CAAM,CAACO,EAAM,CAC7B,MAAO,EAEf,CAGJ,OAAOD,EAAa,CACxB,EA1B4Bz1J,EAAMm1J,GAEnBI,CAEf,CAgCA,SAAS3S,EAAeziQ,CAAO,QACvBA,EAAAA,KAAWA,EAAQJ,YAAY,EAE3BI,CAAAA,SAAAA,EAAQJ,YAAY,CAAC,oBACrBI,KAAAA,EAAQJ,YAAY,CAAC,oBACrBI,UAAAA,EAAQsoH,OAAO,CAAC1zG,WAAW,IAC3B5U,aAAAA,EAAQsoH,OAAO,CAAC1zG,WAAW,EAAgB,CAOvD,CAqBA,SAASjU,EAAiBX,CAAO,SAE7B,OAAIA,EAAQ+kF,YAAY,EAKjBp8B,WAAAA,EAD0B6lN,iBAAiB,CAACxuQ,EAAS,aAAc,IAC7Dw1Q,UAAU,CA5I3B,IAAI,CAACj2J,qBAAqB,CAAGA,EAC7B,IAAI,CAACk2J,eAAe,CAiHpB,SAAyBz1Q,CAAO,CAAEg1Q,CAAM,EACpC,OAAOz1J,EAAsBv/G,EAASyiQ,EAAgBuS,EAC1D,EAlHA,IAAI,CAACv3Q,eAAe,CAwCpB,SAASA,EAAgBuC,CAAO,CAAEigB,CAAK,EACnC,GAAIjgB,IAAYigB,EACZ,MAAO,GAEX,GAAIjgB,EAAQ01Q,aAAa,GACrB,KAAK,IAAIz0Q,EAAI,EAAGA,EAAIjB,EAAQ21Q,UAAU,CAACv3Q,MAAM,CAAE6C,IAC3C,GAAIxD,EAAgBuC,EAAQ21Q,UAAU,CAAC10Q,EAAE,CAAEgf,GACvC,MAAO,EAEf,CAEJ,MAAO,EACX,EAnDA,IAAI,CAAC21P,mBAAmB,CAuHxB,SAA6B5yI,CAAS,EAKlC,IAAI9kI,EAAW8kI,EAAU7iI,gBAAgB,CAHrC,mOAIJ,OAAOF,MAAMlD,SAAS,CAACmD,KAAK,CAAC9E,IAAI,CAAC8C,GAAUmC,MAAM,CAAC,SAAUL,CAAO,EAChE,OAAOW,EAAiBX,IAAYA,CAAqB,IAArBA,EAAQuI,QAAQ,EAE5D,EA/HA,IAAI,CAACq1J,uBAAuB,CAAG4yC,EAAAA,CAC/B,KAAI,CAAC7vM,gBAAgB,CAAGA,CAyI5B,C,SApJAS,EAAAA,CAAUA,CAACC,OAAO,CAAC,kBAAmBwzQ,GACtCA,EAAuBvzQ,OAAO,CAAG,CAAC,uBAAuB,E,+BCHzD,SAASu0Q,EAAiBzyQ,CAAQ,EAC9B,IAAI,CAACA,QAAQ,CAAGA,EAChB,IAAI,CAAC0yQ,iBAAiB,CAAG,IAC7B,CAEAD,EAAiB94Q,SAAS,CAAC4zG,qBAAqB,CAAG,SAAUolK,CAAkB,CAAEziK,CAAS,CAAE0iK,CAAa,EACjGD,GAAsBA,KAA8Bh1Q,IAA9Bg1Q,EAAmB33Q,MAAM,EAC/C23Q,CAAAA,EAAqB9tP,QAAQjoB,OAAO,CAAC+1Q,EAAkB,EAE5B,OAA3B,IAAI,CAACD,iBAAiB,GACtB,IAAI,CAACG,iBAAiB,CAACF,EAAoBziK,GACtC0iK,GACD,IAAI,CAAChnK,oBAAoB,CAAC+mK,EAAoBziK,EAAW,KAGrE,EAEAuiK,EAAiB94Q,SAAS,CAACiyG,oBAAoB,CAAG,SAAUhvG,CAAO,CAAEszG,CAAS,CAAEwmG,CAAK,EAC7E95M,GAAWA,KAAmBe,IAAnBf,EAAQ5B,MAAM,EACzB4B,CAAAA,EAAUioB,QAAQjoB,OAAO,CAACA,EAAO,EAErC,IAAI,CAAC81Q,iBAAiB,CAAG,IAAI,CAAC1yQ,QAAQ,CAClC,YACIpD,EAAQunB,WAAW,CAAC+rF,GACpBtzG,EAAQvD,IAAI,CAAC,eAAgB,IAC7B,IAAI,CAACq5Q,iBAAiB,CAAG,IAC7B,GAAEv6Q,IAAI,CAAC,IAAI,EACXu+M,EAER,EAEA+7D,EAAiB94Q,SAAS,CAACk5Q,iBAAiB,CAAG,SAAUF,CAAkB,CAAEziK,CAAS,EAClFyiK,EAAmBxuP,WAAW,CAAC+rF,GAAW9rF,QAAQ,CAAC8rF,GACnDyiK,EAAmBt5Q,IAAI,CAAC,eAAgB,GAC5C,EAEAo5Q,EAAiBv0Q,OAAO,CAAG,CAAC,WAAW,CACvCF,EAAAA,CAAUA,CAACC,OAAO,CAAC,mBAAoBw0Q,E,iBCrCvCz0Q,E,OAAAA,CAAUA,CAACC,OAAO,CAAC,eAEnB,WAGI,IAAI,CAACm/N,gBAAgB,CA+BrB,SAA0B01C,CAAU,EAChC,OAAOC,EAAiBC,cAAc,CAACr4Q,IAAI,CAACm4Q,GAAcA,EAAW3jQ,OAAO,CAAC4jQ,EAAiBC,cAAc,CAAEC,GAA4BH,CAC9I,EAhCA,IAAI,CAACI,iBAAiB,CA6DtB,SAA2BC,CAAW,EAClC,OAAOA,EAAYhkQ,OAAO,KAC9B,EA3DA,MACoB,wCACF,OAGd4jQ,EAAmB,CACnBC,eAAgB,WAChBI,uBAAwB,CACpB,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,OACT,CACJ,EAoBA,SAASH,EAAyBI,CAAI,EAClC,OAAON,EAAiBK,sBAAsB,CAACC,EAAK,EAAI,EAC5D,CAwBJ,E,YCjEA,SAASC,EAAU7sK,CAAS,CAAEtnG,CAAQ,CAAEo0Q,CAAU,CAAEjjG,CAAO,EACvD,IAEIkjG,EAFA52Q,EAAU,IAAI,EAAIzB,SAAS60G,eAAe,CAC1CqyC,EAAU,CAAC,EAKf,GADAkxH,EAAaA,GAAc,GACvB9sK,GAAc,kBAAOA,GAA0BA,aAAqBrgB,MAAK,EACzEotL,EAAgB/sK,EAAUt/E,KAAK,CAAC,UAEhC,MAAM,MAAU,sCAGpB,GAAI,mBAAOhoB,EACP,MAAM,MAAU,2CAGpB,SAASs0Q,EAAUz5Q,CAAK,EAChBs2K,EACAnxK,EAASnH,IAAI,CAACs4K,EAASt2K,GAEvBmF,EAASnH,IAAI,CAAC4E,EAAS5C,EAE/B,CAEA,IAAI6D,EACA61Q,EAAsBF,EAAcx4Q,MAAM,CAG9C,IAAK6C,EAAI,EAAGA,EAAI61Q,EAAqB71Q,IACjCjB,EAAQxB,gBAAgB,CAACo4Q,CAAa,CAAC31Q,EAAE,CAAE41Q,EAAWF,GAW1D,OAPAlxH,EAAQsxH,WAAW,CAAG,WAClB,IAAK91Q,EAAI,EAAGA,EAAI61Q,EAAqB71Q,IACjCjB,EAAQrB,mBAAmB,CAACi4Q,CAAa,CAAC31Q,EAAE,CAAE41Q,EAAWF,EAEjE,EACAlxH,EAAQ/nJ,MAAM,CAAGsC,EAEVylJ,CACX,CAEAjhJ,OAAO0lH,cAAc,CAACs2F,QAAQzjN,SAAS,CAAE,YAAa,CAClDoN,IAAK,WACD,OAAOusQ,CACX,EACAthG,aAAc,GACd4hG,UAAW,EACf,E,iBC/CA,SAASC,EAAU75Q,CAAK,EAGpB,OAFAA,EAAMwB,cAAc,GACpBxB,EAAMuoH,wBAAwB,GACvB,EACX,CAOA,SAAS6/B,EAAe/G,CAAY,CAAE2G,CAAa,EAC/C,IAAI,CAAC8xH,UAAU,CAAG,GAClB,IAAI,CAACz4H,YAAY,CAAGA,EACpB,IAAI,CAAC2G,aAAa,CAAGA,GAAiB,GAC1C,CAvBAhkJ,E,OAAAA,CAAUA,CAACC,OAAO,CAAC,cACnB,WACI,MAAO,CACHmkJ,eAAgBA,EAChByxH,UAAWA,CACf,CACJ,GAmBAzxH,EAAezoJ,SAAS,CAAC0oJ,OAAO,CAAG,SAAUt/G,CAAC,EAClB,KAApB,IAAI,CAAC+wO,UAAU,GACf,IAAI,CAACA,UAAU,CAAG,GAClB,IAAI,CAACz4H,YAAY,CAACt4G,GAClBpF,WAAW,IAAI,CAACwzB,KAAK,CAACh5D,IAAI,CAAC,IAAI,EAAG,IAAI,CAAC6pJ,aAAa,EAE5D,EAEAI,EAAezoJ,SAAS,CAACw3D,KAAK,CAAG,WAC7B,IAAI,CAAC2iN,UAAU,CAAG,EACtB,C,kBCnCA91Q,E,OAAAA,CAAUA,CAACy0B,OAAO,CAAC,qBAAsB,WACrC,MAAO,CACHo7E,YAAa,KAEbkmK,cAAe,WAKX,OAJK,IAAI,CAAClmK,WAAW,EACjB,KAAI,CAACA,WAAW,CAAGhpF,QAAQjoB,OAAO,CAACzB,SAAS60G,eAAe,GAGxD,IAAI,CAACnC,WAAW,EAG3B5rD,mBAAoB,WAChB,IAAI,CAAC8xN,aAAa,GAAG3vP,QAAQ,CAAC,cAClC,EAEAkhO,iBAAkB,WACd,IAAIv2M,EAAO,IAAI,CAKf5zC,SAASC,gBAAgB,CAAC,YAAa,WACnC2zC,EAAKglO,aAAa,GAAG5vP,WAAW,CAAC,cACrC,GAEAhpB,SAASC,gBAAgB,CAAC,UAAW,SAAU2nC,CAAC,EAExCA,CAAAA,IAAAA,EAAEtoC,OAAO,EAAUsoC,EAAEtC,MAAM,GAC3BsO,EAAKglO,aAAa,GAAG3vP,QAAQ,CAAC,cAEtC,EACJ,CACJ,CACJ,E,2BClCApmB,E,OAAAA,CAAUA,CAACy0B,OAAO,CAAC,eAAgB,CAC/B,WACA,UACA,SAAUzyB,CAAQ,CAAEsS,CAAO,EACvB,IAAI6qP,EAAe,CAAC,EAmDpB,OAjDAA,EAAamW,SAAS,CAAG,SAAUh5Q,CAAM,CAAEN,CAAK,CAAEqoJ,CAAO,EAGrD,OAFA/nJ,EAAOc,gBAAgB,CAACpB,EAAOqoJ,EAAS,IAEjC,WACH/nJ,EAAOiB,mBAAmB,CAACvB,EAAOqoJ,EAAS,GAC/C,CACJ,EAEA86G,EAAa6W,MAAM,CAAG,WAClB,IAAIjlO,EAAO,IAAI,CACf/uC,EAASiV,MAAM,CAACkoP,EAAazmD,KAAK,EAClCymD,EAAazmD,KAAK,CAAG12M,EAAS,WAC1B,IAAK,IAAInC,EAAI,EAAGA,EAAIkxC,EAAKklO,OAAO,CAACj5Q,MAAM,CAAE6C,IACrCkxC,EAAKklO,OAAO,CAACp2Q,EAAE,EAEvB,EAAG,IACP,EAEAs/P,EAAa6B,cAAc,CAAG,CAC1BiV,QAAS,EAAE,CACXC,cAAe,KAEfjV,MAAO,SAAU1qC,CAAE,EAOf,GALc,KADF,IAAI,CAAC0/C,OAAO,CAACx2Q,OAAO,CAAC82N,IAE7B,IAAI,CAAC0/C,OAAO,CAACx0Q,IAAI,CAAC80N,GAIlB,IAAI,CAAC0/C,OAAO,CAACj5Q,MAAM,CAAG,GAAK,CAAC,IAAI,CAACk5Q,aAAa,CAAE,CAChD,IAAI7xH,EAAU86G,EAAa6W,MAAM,CAAC77Q,IAAI,CAAC,IAAI,CAC3C,KAAI,CAAC+7Q,aAAa,CAAG/W,EAAamW,SAAS,CAAChhQ,EAAS,SAAU+vI,EACnE,CACJ,EAEA88G,SAAU,SAAU5qC,CAAE,EAClB,IAAIl3N,EAAQ,IAAI,CAAC42Q,OAAO,CAACx2Q,OAAO,CAAC82N,GAC7Bl3N,EAAQ,IACR,IAAI,CAAC42Q,OAAO,CAACv0Q,MAAM,CAACrC,EAAO,GAIH,IAAxB,IAAI,CAAC42Q,OAAO,CAACj5Q,MAAM,EAAU,IAAI,CAACk5Q,aAAa,GAC/C,IAAI,CAACA,aAAa,GAClB,IAAI,CAACA,aAAa,CAAG,KAE7B,CACJ,EAEO/W,CACX,EACH,C,qDC3DM,SAASgX,IACZ,MAAO,uCAAuChlQ,OAAO,CAAC,QAAS,SAAU6tE,CAAC,EACtE,IAAIC,EAAI,QAAMC,MAAM,GAAW,EAE/B,MAAOC,CADCH,MAAAA,EAAYC,EAAI,IAAY,GAC3B5zD,QAAQ,CAAC,GACtB,EACJ,CCDA,IAAI+qP,EAAmB,WACnB,SAASA,IACL,IAAI,CAACr9O,KAAK,CAAG,EAAE,CA2CnB,OAxCAq9O,EAAiBz6Q,SAAS,CAAC4F,GAAG,CAAG,SAAUi1B,CAAI,EAC3C,IAAI,CAACuC,KAAK,CAACt3B,IAAI,CAAC+0B,EACpB,EAEA4/O,EAAiBz6Q,SAAS,CAACqH,MAAM,CAAG,SAAU4/E,CAAQ,CAAE1mF,CAAK,EACzD,IAAK,IAAI2D,EAAI,EAAGC,EAAI,IAAI,CAACi5B,KAAK,CAAC/7B,MAAM,CAAQ6C,EAAIC,EAAGD,IAEhD,GAAI22B,IADO,CAACuC,KAAK,CAACl5B,EAAE,CACX+iF,EAAS,GAAK1mF,EAAO,CAC1B,IAAI,CAAC68B,KAAK,CAACl5B,EAAE,CAAG,KAChB,IAAI,CAACk5B,KAAK,CAACr3B,MAAM,CAAC7B,EAAG,GACrB,KACJ,CAER,EAEAu2Q,EAAiBz6Q,SAAS,CAAC06Q,SAAS,CAAG,WACnC,IAAI,CAACt9O,KAAK,CAAC/7B,MAAM,CAAG,CACxB,EAEAo5Q,EAAiBz6Q,SAAS,CAACwmK,MAAM,CAAG,SAAUv/E,CAAQ,CAAE1mF,CAAK,EAEzD,OAAOmD,KADK,IAAI,CAACnB,IAAI,CAAC0kF,EAAU1mF,EAEpC,EAEAk6Q,EAAiBz6Q,SAAS,CAACuC,IAAI,CAAG,SAAU0kF,CAAQ,CAAE1mF,CAAK,EACvD,IAAK,IAAkCs6B,EAA9B32B,EAAI,EAAGC,EAAI,IAAI,CAACi5B,KAAK,CAAC/7B,MAAM,CAAQ6C,EAAIC,EAAGD,IAGhD,GAAI22B,CAFJA,EAAO,IAAI,CAACuC,KAAK,CAACl5B,EAAE,CAEZ,CAAC+iF,EAAS,GAAK1mF,GAAUs6B,CAAI,CAACosD,EAAS,EAAI1mF,KAAUyD,IAAVzD,EAC/C,OAAO2D,EAGf,OAAO,EACX,EAEAu2Q,EAAiBz6Q,SAAS,CAAC26Q,eAAe,CAAG,SAAU1zL,CAAQ,CAAE1mF,CAAK,EAClE,IAAImD,EAAQ,IAAI,CAACnB,IAAI,CAAC0kF,EAAU1mF,GAChC,OAAOmD,KAAAA,EAAe,IAAI,CAAC05B,KAAK,CAAC15B,EAAM,CAAG,IAC9C,EAEO+2Q,CACX,IAEA,SAASG,EAAc5vQ,CAAK,CAAE/J,CAAG,CAAEV,CAAK,CAAEmiH,CAAI,EAC1C,IAAI,CAAC13G,KAAK,CAAGA,EACb,IAAI,CAAC/J,GAAG,CAAGA,EACX,IAAI,CAACV,KAAK,CAAGA,EACb,IAAI,CAACmiH,IAAI,CAAGA,CAChB,CAEA,SAASy6G,EAAWnyN,CAAK,CAAE/J,CAAG,CAAEV,CAAK,CAAEmiH,CAAI,CAAE3nB,CAAI,EAC7C6/K,EAAcp9M,KAAK,CAAC,IAAI,CAAEC,WAC1B,IAAI,CAACs9B,IAAI,CAAGA,CAChB,CAEA,SAAS8/K,EAAa7vQ,CAAK,CAAE/J,CAAG,CAAEV,CAAK,CAAEmiH,CAAI,CAAE7hH,CAAM,EACjD+5Q,EAAcp9M,KAAK,CAAC,IAAI,CAAEC,WAC1B,IAAI,CAAC58D,MAAM,CAAGA,CAClB,CAEAwD,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,UAAW,CAC1B,UACA,SAAUngB,CAAO,EACb,MAAO,CACHkP,KAAM2yP,EACNM,OAAQ,SAAU9oQ,CAAE,EAChB,MAAO,kEAAkEhR,IAAI,CAACgR,EAClF,EAUAkhP,eAAgB,SAAU6nB,CAAS,CAAEC,CAAW,QAK5C,CAHAA,EAAcA,GAAe,IAGzBD,gBAFJA,CAAAA,EAAYA,EAAU/4P,KAAK,CAFf,MAEsB,CAAC,EAAE,GAG1B,QAQJi5P,CAFI33L,IAHH3tD,SAASolP,EAAUrI,MAAM,CAAC,EAAG,GAAI,IAGpB8B,IAFb7+O,SAASolP,EAAUrI,MAAM,CAAC,EAAG,GAAI,IAEV1vL,IADvBrtD,SAASolP,EAAUrI,MAAM,CAAC,EAAG,GAAI,GACJ,EAAK,KAE5BsI,EAAc,QAAU,OAC1C,EAEAE,WAAY,SAAUC,CAAQ,EAC1B,IAAIj/D,EAAO,IAAIk/D,eAIf,OAHAl/D,EAAKl9K,IAAI,CAAC,OAAQm8O,EAAU,IAC5Bj/D,EAAKx/K,IAAI,GAEFw/K,MAAAA,EAAKriL,MAAM,EAGtBwhP,4BAA6B,SAAUjyO,CAAC,CAAE49C,CAAE,EAExC,IAAIrmF,EAASyoC,CADbA,EAAIA,GAAKzwB,EAAQtY,KAAK,EACPM,MAAM,OAErB,EAAKqmF,KAAOA,EAAGxjF,QAAQ,EAIhB,CAACwjF,EAAGxjF,QAAQ,CAAC7C,EACxB,EAEAqlQ,wBAAyB,SAAU58N,CAAC,EAIhC,IAAK,IAHDykF,EAGK3pH,EAAI,EAAGA,EAAIu5D,UAAUp8D,MAAM,CAAE6C,IAElC,GADA2pH,EAAWpwD,SAAS,CAACv5D,EAAE,CACnB2pH,GAAY,CAAC,IAAI,CAACwtJ,2BAA2B,CAACjyO,EAAEw8E,aAAa,EAAIx8E,EAAGykF,EAASxsH,MAAM,CAAGwsH,CAAQ,CAAC,EAAE,CAAGA,GACpG,MAAO,GAIf,MAAO,EACX,EAEA6vB,aAAc,SAAUr8I,CAAM,CAAEi6Q,CAAK,EACjCA,EAAQA,GAAS,iEAEjB,IAAK,IADDtrP,EAAS,GACJ9rB,EAAI7C,EAAQ6C,EAAI,EAAG,EAAEA,EAC1B8rB,GAAUsrP,CAAK,CAACl6N,KAAKC,KAAK,CAACD,KAAKmiC,MAAM,GAAK+3L,EAAMj6Q,MAAM,EAAE,CAE7D,OAAO2uB,CACX,EAKAkmE,YAAa,GACT,MAAIijL,EACO,GAGJh0C,CAAAA,EAAAA,EAAAA,CAAAA,EAAsBg0C,GAGjCoC,iBAAkB,SAAUv8O,CAAI,EAC5B,IAAI4kO,EAAa14O,QAAQjoB,OAAO,CAACzB,SAAS60G,eAAe,EAErDr3E,EACA4kO,EAAWp5O,WAAW,CAAC,kBAEvBo5O,EAAWn5O,QAAQ,CAAC,iBAE5B,EAGAtqB,YAAa,SAAU+iB,CAAK,CAAEG,CAAM,EAEhC,IAAK,IAAI4jE,KAAY5jE,EACbA,EAAO+L,cAAc,CAAC63D,IACtB/jE,CAAAA,CAAK,CAAC+jE,EAAS,CAAG5jE,CAAM,CAAC4jE,EAAS,CAI1C/jE,CAAAA,EAAMljB,SAAS,CAAGyH,OAAOmzD,MAAM,CAACv3C,EAAOrjB,SAAS,CACpD,EAEAi0F,QAAQ1zF,CAAK,EACT,MAAO,CAAC,MAAMS,IAAI,CAAC,IAAI,CAACk1F,WAAW,CAAC31F,GACxC,EAEAm0C,gBAAiB,SAAUn0C,CAAK,EAC5B,OAAOA,GAASA,EAAMc,MAAM,CAAG,CACnC,EAGAm6Q,iBAAkB,SAAU78N,CAAG,EAC3B,GAAI,CAACA,EACD,MAAO,GAOX,IAAK,IAJD93C,EAAOY,OAAOZ,IAAI,CAAC83C,GACnBw2C,EAAa,GACbsmL,EAAc,CAACz3Q,KAAAA,EAAW,KAAM,GAAG,CAE9BE,EAAI,EAAGC,EAAI0C,EAAKxF,MAAM,CAAE6C,EAAIC,EAAGD,IACpC,GAAIu3Q,KAAAA,EAAY33Q,OAAO,CAAC66C,CAAG,CAAC93C,CAAI,CAAC3C,EAAE,CAAC,EAAU,CAC1CixF,EAAa,GACb,KACJ,CAEJ,OAAOA,CACX,EAEAumL,iBAAkB,SAAU1wQ,CAAK,CAAE/J,CAAG,CAAEV,CAAK,CAAEw6F,CAAI,CAAE2nB,CAAI,EACrD,OAAO,IAAIy6G,EAAWnyN,EAAO/J,EAAKV,EAAOmiH,EAAM3nB,EACnD,EAEA4gL,mBAAoB,SAAU3wQ,CAAK,CAAEnK,CAAM,CAAEI,CAAG,CAAEV,CAAK,CAAEmiH,CAAI,EACzD,OAAO,IAAIm4J,EAAa7vQ,EAAO/J,EAAKV,EAAOmiH,EAAM7hH,EACrD,EAEA+6Q,uBAAwB,SAAUj9N,CAAG,CAAEk9N,CAAU,EAI7C,IAAK,IAHDn8P,EAAOm8P,EAAWruP,KAAK,CAAC,KACxBjtB,EAAQo+C,EAEHz6C,EAAI,EAAGC,EAAIub,EAAKre,MAAM,CAAE6C,EAAIC,EAAGD,IAEpC,GAAI,CADJ3D,CAAAA,EAAQA,CAAK,CAACmf,CAAI,CAACxb,EAAE,CAAC,EAElB,OAAO,KAIf,OAAO3D,CACX,EAEAu7Q,kCAAmC,SAAUC,CAAU,CAAEC,CAAU,EAC/D,OAAOD,EAAWxwN,qBAAqB,GAAGypD,MAAM,CAAGgnK,EAAWzwN,qBAAqB,GAAGypD,MAAM,EAGhGinK,qBAAsB,SAAU17Q,CAAK,EACjC,MAAOA,CAAU,IAAVA,GAAkB,UAAUS,IAAI,CAACT,EAC5C,EAEA27Q,iBAAkB,SAAU37Q,CAAK,EAC7B,OAAOA,EAAMiV,OAAO,CAAC,sCAAuC,OAChE,EAEA2mQ,iBAAkB,SAAU7qQ,CAAG,CAAE8qQ,CAAkB,EAE/C,IAAIp6P,EAAQ,OAAW,UADbo6P,EAAmBr9O,SAAS,CAAC,EAAGq9O,EAAmBt4Q,OAAO,CAAC,MAC7B,KAAKu4Q,IAAI,CAAC/qQ,GAC9CgrQ,EAAY,GAEhB,IAAIt6P,EASA,OADAs6P,EAAY,KAAKt7Q,IAAI,CAACsQ,GAAO,IAAM,IAC5BA,EAAMgrQ,EAAYF,EAPzB,IAAIG,EAAUxlC,EAAOh4M,SAAS,CAAC/c,EAAMte,KAAK,EACtC84Q,EAAW,MAAMH,IAAI,CAACE,GAAS74Q,KAAK,CAGxC,OAFA44Q,EAAY,KAAKt7Q,IAAI,CAACu7Q,GAAW,IAAM,IAEhCxlC,EAAOh4M,SAAS,CAAC,EAAG/c,EAAMte,KAAK,EAAI44Q,EAAYF,EAAqBrlC,EAAOh4M,SAAS,CAAC/c,EAAMte,KAAK,CAAG84Q,EAKlH,EAOAC,iBAAkB,SAAUC,CAAG,CAAEh1Q,CAAM,EACnC,GAAIA,IAAAA,EAAOrG,MAAM,CACb,OAAOmnD,OAAOvH,GAAG,CAIrB,IAAK,IADD07N,EAAUj1Q,CAAM,CAAC,EAAE,CACdxD,EAAI,EAAGC,EAAIuD,EAAOrG,MAAM,CAAE6C,EAAIC,EAAGD,IAClCk9C,KAAKkyD,GAAG,CAACopK,EAAMh1Q,CAAM,CAACxD,EAAE,EAAIk9C,KAAKkyD,GAAG,CAACopK,EAAMC,IAC3CA,CAAAA,EAAUj1Q,CAAM,CAACxD,EAAE,EAI3B,OAAOy4Q,CACX,EAKAC,eAAgB,WACZ,IAAIn3L,EAAQ9sE,EAAQkkQ,MAAM,CAACC,UAAU,CACjCtxN,EAAS7yC,EAAQkkQ,MAAM,CAACE,WAAW,CACnCC,EAAMrkQ,EAAQskQ,gBAAgB,CAElC,MAAO,CACHx3L,MAAOA,EACPj6B,OAAQA,EACR0xN,SAAU97N,KAAKC,KAAK,CAACokC,EAAQu3L,GAC7BG,UAAW/7N,KAAKC,KAAK,CAACmK,EAASwxN,EACnC,CACJ,EAQAI,oBAAqB,SAAUC,CAAe,CAAEC,CAAO,EAInD,IAAK,IAHD59P,EAAO49P,EAAQ9vP,KAAK,CAAC,KACrBmxB,EAAM0+N,EACN1mG,EAAU,KACLzyK,EAAI,EAAGC,EAAIub,EAAKre,MAAM,CAAE6C,EAAIC,EAAGD,IACfF,KAAAA,IAAjB26C,CAAG,CAACj/B,CAAI,CAACxb,EAAE,CAAC,GACZyyK,EAAUh4H,EACVA,EAAMA,CAAG,CAACj/B,CAAI,CAACxb,EAAE,CAAC,EAI1B,MAAO,mBAAOy6C,EAAqBA,EAAIngD,IAAI,CAACm4K,GAAW,IAC3D,EAEA4mG,gBAAiB,SAAUC,CAAG,CAAEC,CAAG,EAC/B,OAAO5qN,KAAKi1E,SAAS,CAAC01I,KAAS3qN,KAAKi1E,SAAS,CAAC21I,EAClD,EAEAC,UAAW,SAAUpiK,CAAG,EAKpB,OAHIrmE,MADJqmE,EAAMA,OAAAA,EAAe,IAAMA,IAEvBA,CAAAA,EAAM,GAAE,EAELA,CACX,EAEA0kG,WAAY,SAAU1jH,CAAY,EAC9B,IAAIzB,EAAQ,KACRiD,EAAU,KAMd,OAJK7oD,MADLqnD,EAAeolF,WAAWplF,MAEtBzB,EAAQz5C,KAAKC,KAAK,CAACi7C,EAAe,IAClCwB,EAAUxB,EAAe,IAEtB,CAAEzB,MAAOA,EAAOiD,QAASA,CAAQ,CAC5C,EAEAylC,WAAY,CAAC7pE,EAAO4hE,KAChB,IAAMqiJ,EAAU,EAAE,CAClB,IAAK,IAAIz5Q,EAAI,EAAGA,EAAIw1D,EAAMr4D,MAAM,CAAE6C,GAAKo3H,EACnCqiJ,EAAQ73Q,IAAI,CAAC4zD,EAAMv2D,KAAK,CAACe,EAAGA,EAAIo3H,IAGpC,OAAOqiJ,CACX,EAGAlD,iBAAkBA,CACtB,CACJ,EACH,C,iCC5VD,IAAMzjK,EAAO9rF,QAAQpgB,MAAM,CAAC,OAAQ,CAAC,KAAK,EAkB1C,SAAS8yQ,EAAWzxQ,CAAK,EAGrB,IAAI,CAAC0xQ,eAAe,CAqCpB,WACI,IAAI13G,EAAe,CACfjF,KAAM,KACN6G,SAAU,IACd,EAEI+1G,EAAW,QAEf,OAAOC,IACFv9Q,IAAI,CAAC,IACFs9Q,EAAWljL,EACX25H,EAAAA,CAAWA,CAACypD,kBAAkB,CAAC,SAASC,WAAW,CAACrjL,GAE7C25H,EAAAA,CAAWA,CAACt4J,IAAI,KAE1Bz7D,IAAI,CAAC,IACK09Q,EAAgBJ,GAAUt9Q,IAAI,CAAC,SAAU29Q,CAAW,QAGvD,CAFAh4G,EAAajF,IAAI,CAAGi9G,EAEhBA,UAAAA,EAAYp3G,SAAS,CAAClvJ,WAAW,IAC1BqmQ,EAAgB,SAAS19Q,IAAI,CAAC,SAAU49Q,CAAQ,EAGnD,OAFAj4G,EAAa4B,QAAQ,CAAGq2G,EAEjBj4G,CACX,GAEOA,CAEf,GAEZ,EAlEA,IAAI,CAACxB,kBAAkB,CAwEvB,SAA4B05G,CAAQ,EAChC,OAAON,IAAqBv9Q,IAAI,CAAC,SAAUo6F,CAAI,EAC3C,OAAO0jL,EAAkBD,EAAUzjL,EACvC,EACJ,EA3EA,IAAI,CAAC2jL,cAAc,CA6EnB,SAAwBC,CAAgB,EACpCC,EAAcD,CAClB,EA9EA,IAAI,CAACN,eAAe,CAAGA,EAIvB,IAAIO,EAAc,GAKlB,SAASV,IAEL,OADA5xQ,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAC1BrF,EAAMiB,GAAG,CAAC3G,OAAO4D,MAAM,CAACglQ,aAAa,GAAK,kCAAkC7uQ,IAAI,CAAC,SAAUm3D,CAAQ,EACtG,OAAOA,EAASzyD,IAAI,CAAC0nM,QAAQ,EAAI,OACrC,EACJ,CAEA,SAAS0xE,EAAkB5+P,CAAI,CAAEk7E,CAAI,CAAE8jL,CAAI,EACvC,IAAMptQ,EAAM7K,OAAO4D,MAAM,CAAC27J,yBAAyB,GAAKtmJ,EAAOk7E,EAAO,SAAW6jL,EAGjF,OADAtyQ,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GAC1BrF,EACFiB,GAAG,CAACkE,GACJ9Q,IAAI,CAAC,SAAUy9H,CAAI,EAChB,OAAOA,EAAK/4H,IAAI,GAEnBG,KAAK,CAAC,WACH,GAAIq5Q,EACA,MAAM,MAAU,kCAAoCh/P,EAAO,SAAWk7E,EAAO,aAGjF,OAAO0jL,EAAkB5+P,EAAM,QAAS,GAC5C,EACR,CAkCA,SAASw+P,EAAgBtjL,CAAI,EACzB,OAAO0jL,EAAkB,kCAAmC1jL,EAChE,CAWJ,CAtGAoc,EAAK3sG,MAAM,CAAC,CACR,uBACA,SAAUy7J,CAAoB,EAC1B,IAAIC,EAAqBt/J,OAAO4D,MAAM,CAAC27J,yBAAyB,GAAK,KAErEF,EAAqBG,oBAAoB,CAAC,CAEtC,OAEAF,EACH,CACL,EACH,EAED/uD,EAAK1yG,OAAO,CAAC,aAAcs5Q,GAC3BA,EAAWr5Q,OAAO,CAAG,CAAC,QAAQ,E,sCCfvB,OAAMo6Q,EACTl6Q,aAAc,CACV,IAAI,CAACm6Q,UAAU,CAAG,EAAE,CAQxBC,iBAAiBC,CAAQ,CAAE,CACvB,IAAI,CAACF,UAAU,CAAC94Q,IAAI,CAACg5Q,EACzB,CAUA,MAAM5iN,QAAQpwD,CAAO,CAAEooC,CAAQ,CAAE6qO,CAAgB,CAAE,CAC/C,GAAI7qO,OAAAA,GAAqB6qO,OAAAA,EACrB,OAAOA,EAGX,IAAIv1I,EAAcu1I,EAClB,IAAK,IAAMD,KAAY,IAAI,CAACF,UAAU,CAC9BE,EAASE,UAAU,CAAC9qO,EAAUs1F,IAC9BA,CAAAA,EAAc,MAAMs1I,EAASz6F,GAAG,CAACv4K,EAAS09H,EAAW,EAI7D,OAAOA,CACX,CACJ,C,SCdAnlI,EAAAA,CAAUA,CAACqI,QAAQ,CAAC,iBAvBsC,MAGtDjI,aAAc,CAAC,IAAD,MACV,KAAI,CAACm6Q,UAAU,CAAG,EAAE,CACpB,IAAI,CAACK,OAAO,CAAG,IAAIN,EACnB,IAAI,CAAC7xQ,IAAI,CAAG,sCAAIoyQ,EAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,CAAS,CAATA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAEZ,OADAA,EAAUv8Q,OAAO,CAAC,GAAc,EAAKs8Q,OAAO,CAACJ,gBAAgB,CAACC,IACvD,EAAKG,OAAO,EAEvB,IAAI,CAACnyQ,IAAI,CAACvI,OAAO,CAAG,EAAE,CAQ1B46Q,kBAAkBC,CAAa,CAAE,CAC7B,IAAI,CAACtyQ,IAAI,CAACvI,OAAO,CAACuB,IAAI,CAACs5Q,EAC3B,CACJ,E,kBCrBA/6Q,E,OAAAA,CAAUA,CAAC0T,SAAS,CAAC,cAAe,CAChC,WACA,SAAU1R,CAAQ,EACd,MAAO,CACH0P,MAAO,GACPD,SAAU,IAEVmV,KAAM,SAAUlV,CAAK,CAAE0nB,CAAC,CAAE3M,CAAK,EAC3B,GAAI/a,EAAM8wG,KAAK,CAAE,CAOb,IAAK,IAJDw4J,EAAaC,CAFJxuP,EAAMyuP,WAAW,EAAI,MAAK,EAEf/xP,KAAK,CAAC,KAC1BjtB,EAAQwV,EACR4gK,EAAU,KAELzyK,EAAI,EAAGA,EAAIm7Q,EAAWh+Q,MAAM,CAAE6C,IAInC,GAHAyyK,EAAUp2K,EAGN,CAFJA,CAAAA,EAAQA,CAAK,CAAC8+Q,CAAU,CAACn7Q,EAAE,CAAC,EAGxB,OAIRmC,EAAS9F,EAAM/B,IAAI,CAACm4K,GACxB,CACJ,CACJ,CACJ,EACH,C,iCCxBD,SAAS6oG,EAAkBhpQ,CAAO,CAAEyS,CAAgB,CAAElhB,CAAoB,EACtE,IAAI6yF,EAAO7yF,EAAqBg/J,SAAS,CACrC04G,EAAuBjpQ,EAAQ,QAQnC,SAASkpQ,EAAeC,CAAY,CAAEC,CAAc,CAAEC,CAAW,EAqB7D,OAnBIF,GAAgBC,GAAkBC,GAAeA,EAAYx+Q,MAAM,CAAG,GAAKu5F,UAAAA,GAAoBA,UAAAA,GAAoBA,UAAAA,GAAoBA,UAAAA,GACvIilL,EAAYl9Q,OAAO,CAAC,SAAU6S,CAAO,EACjC,OAAQA,GACJ,IAAK,OACDmqQ,EAAeG,SAsBVF,CAAc,CAAED,CAAY,EACjD,OAAQF,EAAqBG,EAAgB,SACzC,IAAK,SACD,OAAOG,EAAeJ,EAAc,SAAU53Q,EAAqBS,SAAS,CAAC,wCACjF,KAAK,UACD,OAAOu3Q,EAAeJ,EAAc,UAAW53Q,EAAqBS,SAAS,CAAC,wCAClF,KAAK,YACD,OAAOu3Q,EAAeJ,EAAc,YAAa53Q,EAAqBS,SAAS,CAAC,wCACpF,KAAK,WACD,OAAOu3Q,EAAeJ,EAAc,WAAY53Q,EAAqBS,SAAS,CAAC,wCACnF,KAAK,SACD,OAAOu3Q,EAAeJ,EAAc,SAAU53Q,EAAqBS,SAAS,CAAC,wCACjF,KAAK,WACD,OAAOu3Q,EAAeJ,EAAc,WAAY53Q,EAAqBS,SAAS,CAAC,wCACnF,KAAK,SACD,OAAOu3Q,EAAeJ,EAAc,SAAU53Q,EAAqBS,SAAS,CAAC,wCACrF,CACA,OAAOm3Q,CACX,EAxCmDC,EAAgBD,GAC/C,KACJ,KAAK,MACDA,EAAeK,SAuCTJ,CAAc,CAAED,CAAY,EAClD,OAAQF,EAAqBG,EAAgB,QACzC,IAAK,MACD,OAAOG,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,yCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,yCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,yCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,yCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,yCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,yCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,yCAClF,CACA,OAAOm3Q,CACX,EAzDoDC,EAAgBD,GAChD,KACJ,KAAK,OACDA,EAAeM,SAwDRL,CAAc,CAAED,CAAY,EACnD,OAAQF,EAAqBG,EAAgB,SACzC,IAAK,UACD,OAAOG,EAAeJ,EAAc,UAAW53Q,EAAqBS,SAAS,CAAC,sCAClF,KAAK,WACD,OAAOu3Q,EAAeJ,EAAc,WAAY53Q,EAAqBS,SAAS,CAAC,sCACnF,KAAK,QACD,OAAOu3Q,EAAeJ,EAAc,QAAS53Q,EAAqBS,SAAS,CAAC,sCAChF,KAAK,QACD,OAAOu3Q,EAAeJ,EAAc,QAAS53Q,EAAqBS,SAAS,CAAC,sCAChF,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,sCAC9E,KAAK,OACD,OAAOu3Q,EAAeJ,EAAc,OAAQ53Q,EAAqBS,SAAS,CAAC,sCAC/E,KAAK,OACD,OAAOu3Q,EAAeJ,EAAc,OAAQ53Q,EAAqBS,SAAS,CAAC,sCAC/E,KAAK,SACD,OAAOu3Q,EAAeJ,EAAc,SAAU53Q,EAAqBS,SAAS,CAAC,sCACjF,KAAK,YACD,OAAOu3Q,EAAeJ,EAAc,YAAa53Q,EAAqBS,SAAS,CAAC,sCACpF,KAAK,UACD,OAAOu3Q,EAAeJ,EAAc,UAAW53Q,EAAqBS,SAAS,CAAC,sCAClF,KAAK,WACD,OAAOu3Q,EAAeJ,EAAc,WAAY53Q,EAAqBS,SAAS,CAAC,sCACnF,KAAK,WACD,OAAOu3Q,EAAeJ,EAAc,WAAY53Q,EAAqBS,SAAS,CAAC,sCACvF,CACA,OAAOm3Q,CACX,EApFqDC,EAAgBD,GACjD,KACJ,KAAK,MACDA,EAAeO,SAmFPN,CAAc,CAAED,CAAY,EACpD,OAAQF,EAAqBG,EAAgB,QACzC,IAAK,MACD,OAAOG,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,uCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,uCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,uCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,uCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,uCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,uCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,uCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,uCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,uCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,uCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,uCAC9E,KAAK,MACD,OAAOu3Q,EAAeJ,EAAc,MAAO53Q,EAAqBS,SAAS,CAAC,uCAClF,CACA,OAAOm3Q,CACX,EA/GsDC,EAAgBD,EAE1D,CACJ,GAGGA,CACX,CAEA,SAASI,EAAeI,CAAM,CAAE59Q,CAAI,CAAE69Q,CAAW,EAC7C,OAAOD,EAASA,EAAO3qQ,OAAO,CAACjT,EAAM69Q,GAAeD,CACxD,CAsJA,IAAIE,EAAoB,CACpBC,aAAc,SAAUx1P,CAAI,MAvCxBy1P,EAwCA,MAtCAA,CAFAA,EAAU1hK,IATI1nG,KACHA,KAAK27C,KAAK,CAgDChoC,IA9CR,IASP/iB,EAAqBS,SAAS,CAAC,gCAAiC,CACnE2B,MAAOi3C,KAAK67D,KAAK,CAACsjK,EAAU,IAChC,GAGAA,EAbYC,KAcLz4Q,EAAqBS,SAAS,CAAC,gCAAiC,CACnE2B,MAAOi3C,KAAK67D,KAAK,CAACsjK,EAhBR,IAiBd,GAGAA,EAlBWE,MAmBJ14Q,EAAqBS,SAAS,CAAC,8BAA+B,CACjE2B,MAAOi3C,KAAK67D,KAAK,CAACsjK,EArBVC,KAsBZ,GAGAD,EAvBaG,OAwBN34Q,EAAqBS,SAAS,CAAC,6BAA8B,CAChE2B,MAAOi3C,KAAK67D,KAAK,CAACsjK,EA1BXE,MA2BX,GAGAF,EA5BYG,QA6BL34Q,EAAqBS,SAAS,CAAC,+BAAgC,CAClE2B,MAAOi3C,KAAK67D,KAAK,CAACsjK,EA/BTG,OAgCb,GAGG34Q,EAAqBS,SAAS,CAAC,8BAA+B,CACjE2B,MAAOi3C,KAAK67D,KAAK,CAACsjK,EAnCNG,QAoChB,EAOA,EACAC,SAAU,SAAU71P,CAAI,CAAE81P,CAAmB,EACzC,IAAIhhO,EAAO6/N,EAAqBx2P,EAAiBquD,aAAa,CAACxsD,EAAM81P,GAAsB,eAC3F,UAAIhhO,EACO73C,EAAqBS,SAAS,CAAC,mBAC/Bo3C,UAAAA,EACA73C,EAAqBS,SAAS,CAAC,iBAE/Bo3C,CAEf,EAEAihO,oBAAqB,SAAU/1P,CAAI,CAAE81P,CAAmB,EACpD,IAAIhhO,EAAO6/N,EAAqBx2P,EAAiBquD,aAAa,CAACxsD,EAAM81P,GAAsB,kBAC3F,aAAIhhO,EACO73C,EAAqBS,SAAS,CAAC,mBAC/Bo3C,aAAAA,EACA73C,EAAqBS,SAAS,CAAC,iBAE/Bo3C,CAEf,EAEAkhO,SAAU,SAAUh2P,CAAI,CAAE81P,CAAmB,EACzC,OAAOnB,EAAqBx2P,EAAiBquD,aAAa,CAACxsD,EAAM81P,GAAsB,OAC3F,EAEAnmE,QAAS,SAAU3vL,CAAI,CAAE81P,CAAmB,EACxC,IAAIhB,EAAiB32P,EAAiBquD,aAAa,CAACxsD,EAAM81P,GAC1D,OAAOlB,EAAeD,EAAqBG,EAAgB,oBAAqBA,EAAgB,CAAC,OAAQ,MAAM,CACnH,EAEAmB,WAAY,SAAUj2P,CAAI,CAAE81P,CAAmB,EAC3C,IAAII,EAAS/3P,EAAiBquD,aAAa,CAACxsD,EAAM81P,GAC9CpuK,EAAQvpF,EAAiBquD,aAAa,CAAC,IAAIngE,KAAQypQ,GAEvD,GAAII,EAAOjsN,QAAQ,CAAC,EAAG,EAAG,EAAG,KAAOy9C,EAAMz9C,QAAQ,CAAC,EAAG,EAAG,EAAG,GACxD,OAAO0qN,EAAqBx2P,EAAiBquD,aAAa,CAACxsD,EAAM81P,GAAsB,SAG3F,IAAIhB,EAAiB32P,EAAiBquD,aAAa,CAACxsD,EAAM81P,GAC1D,OAAOlB,EAAeD,EAAqBG,EAAgB,UAAWA,EAAgB,CAAC,MAAM,CACjG,EAEAqB,aAAc,SAAUn2P,CAAI,CAAE81P,CAAmB,EAC7C,IAAIhB,EAAiB32P,EAAiBquD,aAAa,CAACxsD,EAAM81P,GAC1D,OAAOlB,EAAeD,EAAqBG,EAAgB,gBAAiBA,EAAgB,CAAC,OAAO,CACxG,EAEAsB,aAAc,SAAUp2P,CAAI,CAAE81P,CAAmB,EAC7C,IAAIhB,EAAiB32P,EAAiBquD,aAAa,CAACxsD,EAAM81P,GAC1D,OAAOlB,EAAeD,EAAqBG,EAAgB,aAAcA,EAAgB,CAAC,OAAO,CACrG,EAEAuB,gBAAiB,SAAUr2P,CAAI,CAAE81P,CAAmB,EAChD,IAAIhB,EAAiB32P,EAAiBquD,aAAa,CAACxsD,EAAM81P,GAC1D,OAAOlB,EAAeD,EAAqBG,EAAgB,+BAAgCA,EAAgB,CAAC,OAAQ,OAAO,CAC/H,EAEAwB,8BAA+B,SAAUt2P,CAAI,CAAE81P,CAAmB,EAC9D,IAAIhB,EAAiB32P,EAAiBquD,aAAa,CAACxsD,EAAM81P,GAC1D,OAAOlB,EAAeD,EAAqBG,EAAgB,4BAA6BA,EAAgB,CAAC,OAAQ,OAAO,CAC5H,EAEA57M,QAAS,SAAUl5C,CAAI,CAAE81P,CAAmB,EACxC,IAAIhB,EAAiB32P,EAAiBquD,aAAa,CAACxsD,EAAM81P,GAC1D,OAAOlB,EAAeD,EAAqBG,EAAgB,eAAgBA,EAAgB,CAAC,MAAM,CACtG,CACJ,EAEA,OA9PA,SAAoB90P,CAAI,CAAEojP,CAAM,CAAE0S,CAAmB,EAEjD,MAAOlK,CADS2J,CAAiB,CAACnS,EAAO,EAAImS,EAAkBr8M,OAAO,EACrDl5C,EAAM81P,EAC3B,CA4PJ,C,kBAvQAv8Q,EAAAA,CAAUA,CAACf,MAAM,CAAC,aAAck8Q,GAChCA,EAAkBj7Q,OAAO,CAAG,CAAC,UAAW,mBAAoB,uBAAuB,E,wCCLnF,IAAMk7F,EAAgB,CAClB4hL,kBAAmB,EACvB,ECCA,SAASC,IAAe,C,SAExBA,EAAYthR,SAAS,CAACuhR,YAAY,CAAG,SAAU92G,CAAa,CAAEhhF,CAAG,EAC7D,IAAI+3L,EAAsB/3L,KAAQzlF,IAARylF,GAAqBA,GAAO,EAAI,GAAK,YAC/D,EAAoB,EACT,OAAW,IAAM+3L,EAAsB,wBAA0B/2G,EAAgB,QAErF,OAAW,IAAM+2G,EAAsB,UAClD,EAEAF,EAAY/8Q,OAAO,CAAG,EAAE,CACxBF,EAAAA,CAAUA,CAACC,OAAO,CAAC,cAAeg9Q,G,SCRlCG,EAAiBl9Q,OAAO,CAAG,CAAC,mBAAoB,cAAc,CAE9D,IAAIm9Q,EAAS,CAQb,SAAwBr3Q,CAAM,EAC1B,OAAOA,EAAOpG,KAAK,CAACjD,IAAI,CAACqJ,EAAOixG,GAAG,CACvC,EAEA,SAAsBjxG,CAAM,EACxB,IAAMs3Q,EAAYt3Q,EAAOs3Q,SAAS,EAAIC,EAAWP,iBAAiB,CAClE,OAAOh3Q,EAAOixG,GAAG,CAACj6G,MAAM,EAAIsgR,CAChC,EAMA,SAAoBt3Q,CAAM,EACtB,OAAOm+C,OAAOn+C,EAAOixG,GAAG,GAAKjxG,EAAOq/E,GAAG,EAL3C,SAAoBr/E,CAAM,EACtB,OAAOm+C,OAAOn+C,EAAOixG,GAAG,GAAKjxG,EAAOo/E,GAAG,EAlBwB,CAyBnE,SAASg4L,EAAiBr0K,CAAgB,CAAEy0K,CAAW,EACnD,MAAO,CACH/rQ,SAAU,IACVC,MAAO,CACH+rQ,iBAAkB,oBAClB9rQ,MAAO,WACPyzE,IAAK,OACLC,IAAK,KACLq4L,YAAa,KACbC,cAAe,KACfL,UAAW,IACf,EACA/qL,QAAS,UACT3rE,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,CAAE+lE,CAAO,EAC1C,IAAI4zE,EAAgB35I,EAAMgxP,gBAAgB,CAAGnsP,SAAS7E,EAAMgxP,gBAAgB,CAAE,IAAM,EAChFG,EAAoBhtO,MAAMl/B,EAAMC,KAAK,EAAI,GAAKD,EAAMC,KAAK,CACzDi/B,MAAMw1H,IACNA,CAAAA,EAAgB,GAGpB,IAAMy3G,EAAWjtO,MAAMl/B,EAAM0zE,GAAG,GAAK1zE,KAAAA,EAAM0zE,GAAG,CAAU,CAACsN,IAAWvuC,OAAOzyC,EAAM0zE,GAAG,EAC9E04L,EAAWltO,MAAMl/B,EAAM2zE,GAAG,GAAK3zE,KAAAA,EAAM2zE,GAAG,CAAUqN,IAAWvuC,OAAOzyC,EAAM2zE,GAAG,EAEnF,IAAIzlF,EAAQ49Q,EAAYN,YAAY,CAAC92G,EAAe10J,EAAM0zE,GAAG,EAE7DoN,EAAQG,QAAQ,CAAClxF,IAAI,CAAC,QAhDRuE,SAiDV,IAjDUA,EAiDmB,CAAEixG,IAAKA,EAAK7xB,IAAKy4L,EAAUx4L,IAAKy4L,EAAUl+Q,MAAOA,EAAO09Q,UAAW5rQ,EAAM4rQ,SAAS,GAhDpHD,EAAOjpJ,KAAK,CAAC,SAAU2pJ,CAAK,EAC/B,OAAOA,EAAM/3Q,EACjB,KA+CgBpH,EAAQq4G,GAAG,CAAC2mK,GACc,KAAtBlsQ,EAAMgsQ,WAAW,EACjB30K,EAAiBwG,qBAAqB,CAAC3wG,EAAS,iBAEpD4zF,EAAQK,aAAa,CAAC+qL,GACMj+Q,KAAAA,IAAxB+R,EAAMisQ,aAAa,EACnBjsQ,EAAMisQ,aAAa,CAAC,CAAEK,UAAWJ,CAAkB,GAEhDA,IAGXA,EAAoB3mK,EACbA,EACX,EACJ,CACJ,CACJ,CAEAj3G,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,mBAAoB0pQ,E,gCC5ElC,OAAMa,EACT79Q,YAAYoU,CAAS,CAAEzM,CAAY,CAAE,CACjC,IAAI,CAAC4S,UAAU,CAAGnG,EAClB,IAAI,CAACm8J,aAAa,CAAG5oK,EAErB,IAAI,CAAC+rH,UAAU,CAAG,IAAIlqD,IACtB,IAAI,CAACs0M,cAAc,CAAG,GACtB,IAAI,CAACC,cAAc,CAAG,GACtB,IAAI,CAACC,aAAa,CAAG,EACzB,CAEA1lP,UAAUv3B,CAAQ,CAAE,CACX,IAAI,CAAC2yH,UAAU,CAAChlE,GAAG,CAAC3tD,IACrB,IAAI,CAAC2yH,UAAU,CAACvyH,GAAG,CAACJ,GAGI,KAAxB,IAAI,CAAC+8Q,cAAc,GACf,SAAI,CAACC,cAAc,CACnB,IAAI,CAAC39C,sBAAsB,CAAC,IAAI,CAAC09C,cAAc,CAAE,IAAI,CAACC,cAAc,EAC7D,SAAI,CAACC,aAAa,CACzB,IAAI,CAAC75E,qBAAqB,CAAC,IAAI,CAAC25E,cAAc,CAAE,IAAI,CAACE,aAAa,EAElE,IAAI,CAAC19C,WAAW,CAAC,IAAI,CAACw9C,cAAc,EAGhD,CAEA7vJ,YAAYltH,CAAQ,CAAE,CAClB,IAAI,CAAC2yH,UAAU,CAACtpH,MAAM,CAACrJ,EAC3B,CAEAu/N,YAAY5xN,CAAS,CAAE,CACnB,IAAI,CAACuvQ,iBAAiB,CAACvvQ,EAC3B,CAEAy1L,sBAAsBz1L,CAAS,CAAEhK,CAAM,CAAE,CACjCA,IAAW,IAAI,CAAC6V,UAAU,CAACqvB,MAAM,GAAGllC,MAAM,CAC1C,IAAI,CAACu5Q,iBAAiB,CAACvvQ,IAEvB,IAAI,CAACovQ,cAAc,CAAGpvQ,EACtB,IAAI,CAACsvQ,aAAa,CAAGt5Q,EAE7B,CAEA07N,uBAAuB1xN,CAAS,CAAErH,CAAO,CAAE,CACnCA,IAAY,IAAI,CAACkT,UAAU,CAACqvB,MAAM,GAAGviC,OAAO,EAAI,IAAI,CAACkpK,aAAa,CAAClpK,OAAO,GAAKA,EAC/E,IAAI,CAAC42Q,iBAAiB,CAACvvQ,IAEvB,IAAI,CAACovQ,cAAc,CAAGpvQ,EACtB,IAAI,CAACqvQ,cAAc,CAAG12Q,EAE9B,CAEA42Q,kBAAkBvvQ,CAAS,CAAE,CACzB,IAAK,IAAM3N,KAAY,IAAI,CAAC2yH,UAAU,CAClC3yH,EAAS2N,EAGb,KAAI,CAACovQ,cAAc,CAAG,GACtB,IAAI,CAACE,aAAa,CAAG,GACrB,IAAI,CAACD,cAAc,CAAG,EAC1B,CACJ,CAEAF,EAAgB/9Q,OAAO,CAAG,CAAC,YAAa,eAAe,CACvDF,EAAAA,CAAUA,CAACC,OAAO,CAAC,yBAA0Bg+Q,E,iCC5D7C,SAAS94H,EAAenjJ,CAAQ,CAAEoiD,CAAgB,EAE9C,IAAI,CAACuiG,mBAAmB,CAKxB,SAA6B/nJ,CAAO,CAAEuC,CAAQ,CAAE65B,CAAO,EACnD,GAAKp8B,EAmBL,OAZAA,EAAQ2oD,KAAK,CAAC+2N,SAAS,CAAG,sBAEV,KAAK,IAAjBtjP,IAEIA,EADAopB,EAAiBm/M,MAAM,CACb,IACHn/M,EAAiBi/M,GAAG,CACjB,IAEA,KAIXrhQ,EAAS,WAEZpD,EAAQ2oD,KAAK,CAAC+2N,SAAS,CAAG,GACtBn9Q,GACAA,GAER,EAAG65B,EACP,EA/BA,IAAI,CAACujP,iBAAiB,CAiCtB,SAA2B3/Q,CAAO,EAE9B,OADAA,EAAQ2oD,KAAK,CAAC65B,KAAK,CAAG,OACfp/E,EAAS,WACZuuM,sBAAsB,WAClB3xM,EAAQ2oD,KAAK,CAAC65B,KAAK,CAAG,EAC1B,EACJ,EAAG,GACP,EAvCA,IAAI,CAACo9L,wBAAwB,CAyC7B,SAAkC5/Q,CAAO,EACrCA,EAAQ2oD,KAAK,CAACopD,MAAM,CAAG,OACvB4/F,sBAAsB,WAClB3xM,EAAQ2oD,KAAK,CAACopD,MAAM,CAAG,EAC3B,EACJ,CACJ,C,SAvDA3wG,EAAAA,CAAUA,CAACC,OAAO,CAAC,iBAAkBklJ,GAErCA,EAAejlJ,OAAO,CAAG,CAAC,WAAY,mBAAmB,E,wCCFzDF,EAAAA,CAAUA,CAACC,OAAO,CAAC,8BAA+B,CAC9C,KACA,UACA,SAAU6T,CAAE,CAAEta,CAAO,EACjB,IAAI,CAAC6Y,QAAQ,CAAG,CAAC,EAEjB,IAAI,CAACgxO,UAAU,CAAG,SAAU11O,CAAE,EAC1B,GAAIA,KAAOhO,IAAPgO,EAEA,OADA,IAAI,CAAC0E,QAAQ,CAAC1E,EAAG,CAAG,IAAInU,EAAQ48Q,gBAAgB,CACzC,IAAI,CAAC/jQ,QAAQ,CAAC1E,EAAG,EAIhC,IAAI,CAAC8wQ,aAAa,CAAG,SAAU9wQ,CAAE,EAEbhO,KAAAA,IADF,IAAI,CAAC0S,QAAQ,CAAC1E,EAAG,EAE3B,OAAO,IAAI,CAAC0E,QAAQ,CAAC1E,EAAG,EAIhC,IAAI,CAAC+wQ,aAAa,CAAG,WACjB,IAAK,IAAIz+Q,KAAW,IAAI,CAACoS,QAAQ,CACzB,IAAI,CAACA,QAAQ,CAAC0Y,cAAc,CAAC9qB,KAC7B,IAAI,CAACoS,QAAQ,CAACpS,EAAQ,CAAG,KACzB,OAAO,IAAI,CAACoS,QAAQ,CAACpS,EAAQ,CAGzC,EAEA,IAAI,CAACoqP,gBAAgB,CAAG,SAAU18O,CAAE,CAAE9M,CAAI,EAItC,IAAK,IAA4B21B,EAH7Bqe,EAAO,IAAI,CAACxiC,QAAQ,CAAC1E,EAAG,CAACorB,KAAK,CAC9B0d,EAAI3iC,EAAGuI,KAAK,GACZhc,EAAUo2C,EAAEp2C,OAAO,CACdR,EAAI,EAAGC,EAAI+0C,EAAK73C,MAAM,CAAQ6C,EAAIC,EAAGD,IAC1C22B,EAAOqe,CAAI,CAACh1C,EAAE,CACdQ,EAAUA,EAAQlE,IAAI,CAACq6B,EAAKr1B,QAAQ,EAIxC,OADAs1C,EAAEh2C,OAAO,CAACI,GACHR,CACX,EAEA,IAAI,CAACq4B,SAAS,CAAG,SAAUxF,CAAS,CAAEvlB,CAAE,CAAExM,CAAQ,EAC9C,IAAIlB,EAAU,IAAI,CAACoS,QAAQ,CAAC6gB,EAAU,MACtBvzB,IAAZM,GACAA,EAAQsB,GAAG,CAAC,CACRoM,GAAIA,EACJxM,SAAUA,CACd,EAER,EAEA,IAAI,CAACktH,WAAW,CAAG,SAAUn7F,CAAS,CAAEvlB,CAAE,EACtC,IAAI1N,EAAU,IAAI,CAACoS,QAAQ,CAAC6gB,EAAU,MACtBvzB,IAAZM,GACAA,EAAQ+C,MAAM,CAAC,KAAM2K,EAE7B,EAEA,IAAI,CAACgxQ,kBAAkB,CAAG,SAAUzrP,CAAS,EACzC,IAAIjzB,EAAU,IAAI,CAACoS,QAAQ,CAAC6gB,EAAU,MACtBvzB,IAAZM,GACAA,EAAQo2Q,SAAS,EAEzB,EAEA,IAAI,CAACuI,kBAAkB,CAAG,SAAU1rP,CAAS,CAAEvlB,CAAE,EAC7C,IAAI1N,EAAU,IAAI,CAACoS,QAAQ,CAAC6gB,EAAU,CACtC,OAAOjzB,KAAYN,IAAZM,GAAwBA,EAAQkiK,MAAM,CAAC,KAAMx0J,EACxD,CACJ,EACH,C,qGC1EGkxQ,EAAa,CACbC,sBAAuB,CAAC,IAAK,SAAU,IAAK,IAAK,KAAM,OAAQ,IAAK,OAAQ,MAAO,MAAO,QAAS,OAAQ,OAAQ,OAAQ,IAAK,SAAS,CACzIC,qBAAsB,CAAC,MAAO,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAK,CAC9FC,qBAAsB,CAAC,QAAS,OAAQ,QAAS,SAAU,OAAQ,OAAQ,QAAS,QAAS,QAAS,WAAY,OAAO,CACzHC,yBAA0B,CAEtB,UACA,SACA,uBACA,sBACA,cACA,gBACA,aACA,gBACA,WACA,aACA,UACA,SACA,UACA,OACA,eACA,aACA,iBACA,QACA,WACA,WACA,MACA,QACA,SACA,OACA,SACA,YACA,eACA,cACA,UACA,aACA,gBACA,cACA,eACA,QACA,SACA,YACA,UACA,kBACA,iBACA,uBACA,qBACA,oBACA,oBACA,mBACA,mBACA,iBACA,OACA,SACA,YACA,cACA,eACA,aACA,cACA,cACA,SACA,aACA,gBACH,ECzDL,SAASC,EAAiB5qQ,CAAO,CAAEhb,CAAe,CAAEE,CAAO,CAAEkuL,CAAqB,EAG9E,IAAI,CAACy3F,aAAa,CAsGlB,SAAuBC,CAAkB,EAErC,IAAIC,EAAM/qQ,EAAQgrQ,YAAY,GAC9B,IAAID,CAAAA,EAAIE,UAAU,CAAG,IAIrB,IAAIC,EAASC,SA8IKJ,CAAG,EAErB,IAAK,IADDG,EAAS,EAAE,CACN3/Q,EAAI,EAAGA,EAAIw/Q,EAAIE,UAAU,CAAE1/Q,IAChC2/Q,CAAM,CAAC3/Q,EAAE,CAAGw/Q,EAAIK,UAAU,CAAC7/Q,GAE/B,OAAO2/Q,CACX,EApJ8BH,GACtBM,EAAWH,IAAAA,EAAOxiR,MAAM,EAAU4iR,WA4FtC,IAAIC,EAAY,GAEhB,GAAIvrQ,EAAQgrQ,YAAY,CAAE,CACtB,IAAID,EAAM/qQ,EAAQgrQ,YAAY,GAG9B,GAAI,CAACD,EAAIS,WAAW,CAAE,CAClB,IAAIC,EAAQ5iR,SAAS6iR,WAAW,GAIhCD,EAAME,QAAQ,CAACZ,EAAIa,UAAU,CAAEb,EAAIc,YAAY,EAI/CJ,EAAMK,MAAM,CAACf,EAAIgB,SAAS,CAAEhB,EAAIiB,WAAW,EAI3CT,EAAYE,EAAMQ,SAAS,CAG3BR,EAAMh3G,MAAM,EAChB,CACJ,CAEA,OAAO82G,CACX,EAvH+DR,GACvDmB,EAAaC,SAoJDjB,CAAM,CAAEG,CAAQ,EAIhC,IAAK,IAqEqBlhK,EAvEtBshK,EADAS,EAAa,EAAE,CAGV3gR,EAAI,EAAGkmE,EAAMy5M,EAAOxiR,MAAM,CAAE6C,EAAIkmE,EAAK,EAAElmE,EAC5C2gR,CAAU,CAAC3gR,EAAE,CAAG6gR,SAkBLX,CAAK,CAAEJ,CAAQ,EAC9B,IACIgB,EACAtoJ,EAAO0nJ,EAAM10P,QAAQ,UAEzB,EAAUk1P,SAAS,CAGR,CACHK,SAAUD,CAHdA,EAAQE,EAA0Bd,EAAO,GAAK,EAG1BpyQ,EAAE,CAClB4yQ,UAAW,EACf,GAEAI,EAAQE,EAA0Bd,EAAO,IAGlC,CACHe,cAAeC,EAHiBhB,EAAO,IAGhBpyQ,EAAE,CACzBqzQ,YAAaL,EAAMhzQ,EAAE,CACrB4yQ,UAAW,GACXZ,SAAUA,EACVt0P,SAAU,WACN,MAAO,mBAAqBgtG,EAAO,iBAAmB0nJ,EAAM10P,QAAQ,GAAK,GAC7E,CACJ,EAER,EA5CkCm0P,CAAM,CAAC3/Q,EAAE,CAAE8/Q,GAKzC,IAAK9/Q,EAAIkmE,EAAM,EAAGlmE,GAAK,EAAG,EAAEA,EAEpBkgR,CADJA,EAAQP,CAAM,CAAC3/Q,EAAE,EACP0gR,SAAS,EA6DG9hK,EA5DGthH,SAASyiC,cAAc,CAAC4gP,CAAU,CAAC3gR,EAAE,CAAC+gR,QAAQ,EA6D3Eb,EAAMkB,aAAa,CAACxiK,GACpBshK,EAAM35J,QAAQ,CAAC,MA5DP86J,SA+DUnB,CAAK,CAAEthK,CAAI,EAC7BshK,EAAMmB,YAAY,CAACziK,EACvB,EAjEyBshK,EAAO5iR,SAASyiC,cAAc,CAAC4gP,CAAU,CAAC3gR,EAAE,CAACmhR,WAAW,GACrEC,SAkEWlB,CAAK,CAAEthK,CAAI,EAC9BshK,EAAMkB,aAAa,CAACxiK,EACxB,EApE0BshK,EAAO5iR,SAASyiC,cAAc,CAAC4gP,CAAU,CAAC3gR,EAAE,CAACihR,aAAa,IAIhF,OAAON,CACX,EAzKgChB,EAAQG,GAEpC,MAAO,CACHwB,gBAAiB7nR,EAAgB+6Q,eAAe,CAACmL,CAAM,CAAC,EAAE,CAAC4B,uBAAuB,EAClFhC,mBAAoBA,CAAuB,IAAvBA,EACpBoB,WAAYA,EACZa,SAAU,EACd,EACJ,EAtHA,IAAI,CAACC,gBAAgB,CAwHrB,SAA0BC,CAAQ,CAAEC,CAAe,EAC/C,GAAID,GAAY,CAACA,EAASF,QAAQ,CAAE,CAC5BE,EAASJ,eAAe,EAAII,EAASnC,kBAAkB,EACvDmC,EAASJ,eAAe,CAAC/kR,KAAK,GAGlC,IAAIokR,EAAae,EAASf,UAAU,CAChCnB,EAAM/qQ,EAAQgrQ,YAAY,GAC1BE,EAASiC,SA0BEjB,CAAU,EAO7B,IAAK,IANDhB,EAAS,EAAE,CAIXD,EAAaiB,EAAWxjR,MAAM,CAEzB6C,EAAI0/Q,EAAa,EAAG1/Q,GAAK,EAAGA,IACjC2/Q,CAAM,CAAC3/Q,EAAE,CAAG6hR,SAMEC,CAAS,EAC3B,IAAI5B,EAAQ5iR,SAAS6iR,WAAW,GAEhC,GAAI2B,EAAUpB,SAAS,CAAE,CACrB,IAAIqB,EAAWzkR,SAASyiC,cAAc,CAAC+hP,EAAUf,QAAQ,EAEzD,GAAIgB,EACAA,EAASr6N,KAAK,CAAC+tF,OAAO,CAAG,SA0KjCyqI,EAAMmB,YAAY,CAzKYU,GA0K9B7B,EAAM35J,QAAQ,CAAC,IAzKPy7J,EAAWD,QAEX,MAAM,MAAU,6DAExB,MACIE,EAAiB/B,EAAO4B,EAAUb,aAAa,CAAE,IACjDgB,EAAiB/B,EAAO4B,EAAUX,WAAW,CAAE,IAGnD,OAAOjB,CACX,EAzBiCS,CAAU,CAAC3gR,EAAE,EAG1C,OAAO2/Q,CACX,EAtCmCgB,EAGvBjB,CAAe,IAFFiB,EAAWxjR,MAAM,EAEV,CAACwkR,GAAmBhB,CAAU,CAAC,EAAE,CAACb,QAAQ,EAC9DN,EAAI0C,eAAe,GAWvBC,SAuFsB3C,CAAG,CAAEU,CAAK,EACpC,GAAIzrQ,KAA8B,IAA9BA,EAAQgrQ,YAAY,CAAa,CACjC,IAAItuE,EAAYquE,GAAO/qQ,EAAQgrQ,YAAY,GAG3C,GAAItuE,KAA0B,IAA1BA,EAAUpyH,MAAM,CAAa,CAC7B,IAAIqjM,EAAWlC,EAAMmC,UAAU,GAC/BD,EAAS77J,QAAQ,CAAC,IAClB4qF,EAAU+wE,eAAe,GACzB/wE,EAAUmxE,QAAQ,CAACF,GACnBjxE,EAAUpyH,MAAM,CAACmhM,EAAMqC,cAAc,CAAErC,EAAMsC,WAAW,CAC5D,MAIIhD,EAAI8C,QAAQ,CAACpC,EAErB,CACJ,EAnHqBV,EAAKG,CAAM,CAAC,EAAE,GAEvB8C,SAYOjD,CAAG,CAAEG,CAAM,EAC1BH,EAAI0C,eAAe,GACnB,IAAK,IAAIliR,EAAI,EAAGkmE,EAAMy5M,EAAOxiR,MAAM,CAAE6C,EAAIkmE,EAAK,EAAElmE,EAC5Cw/Q,EAAI8C,QAAQ,CAAC3C,CAAM,CAAC3/Q,EAAE,CAE9B,EAjBsBw/Q,EAAKG,GAEnB+B,EAASF,QAAQ,CAAG,EACxB,CACJ,EA1IA,IAAI,CAACkB,gBAAgB,CAgWrB,SAA0B/+O,CAAI,CAAEg/O,CAAmB,EAC/C,IAAInD,EAAKU,EACT,GAAIzrQ,EAAQgrQ,YAAY,CAGpB,IAAID,CADJA,EAAM/qQ,EAAQgrQ,YAAY,EAAC,EACnBI,UAAU,EAAIL,EAAIE,UAAU,CAAE,CAElCQ,CADAA,EAAQV,EAAIK,UAAU,CAAC,EAAC,EAClB+C,cAAc,GAKpB,IAAI9/L,EAAKxlF,SAAS80G,aAAa,CAAC,MAChCtvB,CAAAA,EAAG+/L,SAAS,CAAGh7F,EAAsBE,QAAQ,CAACpkJ,GAK9C,IAJA,IAAIm/O,EAAOxlR,SAASylR,sBAAsB,GACtCnkK,EAAO,KACPokK,EAAW,KAEPpkK,EAAO97B,EAAGmgM,UAAU,EAExBD,EAAWF,EAAKvwK,WAAW,CAACqM,GAEhC,IAAIskK,EAAYJ,EAAKG,UAAU,CAC/B/C,EAAMiD,UAAU,CAACL,GAGbE,IAEA9C,CADAA,EAAQA,EAAMmC,UAAU,EAAC,EACnBjB,aAAa,CAAC4B,GAChBL,EACAzC,EAAMkD,cAAc,CAACF,GAErBhD,EAAM35J,QAAQ,CAAC,IAEnBi5J,EAAI0C,eAAe,GACnB1C,EAAI8C,QAAQ,CAACpC,GAErB,OAEG,GAAI,CAACV,EAAMliR,SAAS6zM,SAAS,GAAKquE,YAAAA,EAAIviQ,IAAI,CAAgB,CAE7D,IAAIomQ,EAAgB7D,EAAIW,WAAW,GACnCkD,EAAc98J,QAAQ,CAAC,IACvBi5J,EAAIW,WAAW,GAAGmD,SAAS,CAAC3/O,GACxBg/O,IAEAzC,CADAA,EAAQV,EAAIW,WAAW,EAAC,EAClBoD,WAAW,CAAC,eAAgBF,GAClCnD,EAAM92F,MAAM,GAEpB,CACJ,EAjZA,IAAI,CAACo6F,aAAa,CAsBlB,SAAuBC,CAAgB,CAAEx+P,CAAM,CAAEy+P,CAAU,EAEvD,IAAIxD,EAAQ/uE,SADasuE,YAAY,GACfI,UAAU,CAAC,GAC7B0B,EAA0BrB,EAAMqB,uBAAuB,CAACvhP,UAAU,CAClEuiP,EAAiBrC,EAAMqC,cAAc,CACrCoB,EAAezD,EAAMyD,YAAY,CACjCnB,EAActC,EAAMsC,WAAW,CAC/BoB,EAAY1D,EAAM0D,SAAS,CAE3B3+P,GACmBA,EAAOi7P,KAK1BqC,IAAmBoB,EACnBD,EAAWnB,EAAgBC,EAAaoB,EAAW1D,GAEnD2D,SAmBCA,EAAa/gM,CAAE,CAAE4gM,CAAU,CAAE5qP,CAAK,EACvC,GAAI,CAAC,KAAM,KAAM,KAAK,CAACx5B,QAAQ,CAACwjF,EAAGmpB,QAAQ,EAAG,CAC1C,IAAI63K,EAAc,GAQlB,GAPKhrP,EAAMirP,aAAa,EACpBD,CAAAA,EAAcrqR,EAAgB+C,eAAe,CAACsmF,EAAIhqD,EAAMypP,cAAc,GAEtEuB,CAAAA,GAAehrP,EAAMirP,aAAa,IAClCjrP,EAAMirP,aAAa,CAAG,GACtBL,EAAW5gM,EAAIhqD,EAAM0pP,WAAW,CAAE1pP,EAAM8qP,SAAS,CAAE9qP,EAAMonP,KAAK,GAE9DzmR,EAAgB+C,eAAe,CAACsmF,EAAIhqD,EAAM6qP,YAAY,EACtD,MAAO,EAIf,KAAO,CACH,GAAI7gM,IAAOhqD,EAAMypP,cAAc,CAC3BzpP,EAAMirP,aAAa,CAAG,GACtBL,EAAW5gM,EAAIhqD,EAAM0pP,WAAW,CAAE,KAAM1pP,EAAMonP,KAAK,OAChD,GAAIp9L,IAAOhqD,EAAM6qP,YAAY,CAEhC,OADAD,EAAW5gM,EAAI,EAAGhqD,EAAM8qP,SAAS,CAAE9qP,EAAMonP,KAAK,EACvC,EACApnP,CAAAA,EAAMirP,aAAa,EAAKjhM,CAAAA,UAAAA,EAAGmpB,QAAQ,EAAgBnpB,SAAAA,EAAGmpB,QAAQ,GACrEy3K,EAAW5gM,EAAI,EAAG,KAAMhqD,EAAMonP,KAAK,EAGvC,GAAIp9L,EAAG2xL,aAAa,GAEhB,KAAK,IADDuP,EAAchlR,MAAMlD,SAAS,CAACmD,KAAK,CAAC9E,IAAI,CAAC2oF,EAAG4xL,UAAU,CAAE,GACnD10Q,EAAI,EAAGA,EAAIgkR,EAAY7mR,MAAM,CAAE6C,IAEpC,GAAI,CADS6jR,EAAaG,CAAW,CAAChkR,EAAE,CAAE0jR,EAAY5qP,GAGlD,OADA94B,EAAIgkR,EAAY7mR,MAAM,CACf,EAEf,CAER,CACA,MAAO,EACX,EAzDqBokR,EAAyBmC,EAAY,CAC9ClB,YAAaA,EACboB,UAAWA,EACXrB,eAAgBA,EAChBoB,aAAcA,EACdI,cAAe,GACf7D,MAAOA,CACX,GAER,EAhDA,IAAI,CAAC+D,cAAc,CA2ZnB,SAAwBC,CAAU,EAC9B,IAAIp2Q,EAAKo2Q,GAAcvqR,EAAQgqB,IAAI,GAC/BwtL,EAAY18L,EAAQgrQ,YAAY,GAChC0E,EAAW,CAAEntQ,MAAO,KAAMpb,IAAK,IAAK,EAExC,GAAIu1M,EAAUuuE,UAAU,CAAG,EAAG,CAC1B,IAAIQ,EAAQ/uE,EAAU0uE,UAAU,CAAC,GAC7BI,EAAcC,EAAMQ,SAAS,CAEjCyD,EAASntQ,KAAK,CAAGotQ,EAAwBt2Q,EAAIoyQ,EAAMQ,SAAS,EAC5DyD,EAASvoR,GAAG,CAAGuoR,EAASntQ,KAAK,CAC7BkpQ,EAAMiD,UAAU,CAACgB,EAASntQ,KAAK,CAACjY,OAAO,EACvCmhR,EAAMkB,aAAa,CAAC+C,EAASntQ,KAAK,CAACjY,OAAO,EAErCkhR,IACDkE,EAASvoR,GAAG,CAAGwoR,EAAwBt2Q,EAAI,IAC3CoyQ,EAAM35J,QAAQ,CAAC,IACf25J,EAAMiD,UAAU,CAACgB,EAASvoR,GAAG,CAACmD,OAAO,EACrCmhR,EAAMmB,YAAY,CAAC8C,EAASvoR,GAAG,CAACmD,OAAO,EAE/C,CAEA,OAAOolR,CACX,EAjbA,IAAI,CAACE,uBAAuB,CA8c5B,SAAiCF,CAAQ,EACjCA,EAASntQ,KAAK,EAAImtQ,EAASntQ,KAAK,CAACjY,OAAO,CAACihC,UAAU,EACnDmkP,EAASntQ,KAAK,CAACjY,OAAO,CAACihC,UAAU,CAACC,WAAW,CAACkkP,EAASntQ,KAAK,CAACjY,OAAO,EAGpEolR,EAASvoR,GAAG,EAAIuoR,EAASvoR,GAAG,CAACmD,OAAO,CAACihC,UAAU,EAC/CmkP,EAASvoR,GAAG,CAACmD,OAAO,CAACihC,UAAU,CAACC,WAAW,CAACkkP,EAASvoR,GAAG,CAACmD,OAAO,EAGpEolR,EAASntQ,KAAK,CAAG,KACjBmtQ,EAASvoR,GAAG,CAAG,IACnB,EAxdA,IAAI,CAAC0oR,kBAAkB,CAevB,WACI,OAAOC,CACX,EAhBA,IAAI,CAACC,wBAAwB,CAyd7B,SAAkCzlR,CAAO,EACrC,IAAMoyM,EAAY5uM,OAAOk9Q,YAAY,GACrC,GAAItuE,IAAAA,EAAUuuE,UAAU,CACpB,MAAO,GAGX,IAAM+E,EAAe,GAAU7lK,IAAS7/G,EAClC2lR,EAAqBvzE,EAAUkvE,UAAU,GAAKthR,GAAW,CAAC,CAACtF,EAAgB6kH,qBAAqB,CAAC6yF,EAAUkvE,UAAU,CAAEoE,EAAc,CAAE7lK,KAAM7/G,CAAQ,GACrJ4lR,EAAoBxzE,EAAUqvE,SAAS,GAAKzhR,GAAW,CAAC,CAACtF,EAAgB6kH,qBAAqB,CAAC6yF,EAAUqvE,SAAS,CAAEiE,EAAc,CAAE7lK,KAAM7/G,CAAQ,GACxJ,OAAO2lR,GAAsBC,CACjC,EA/dA,IACIC,EAAoB,qBAGpBL,EAAkB,CAClBl9J,QAAS,qBACTrmH,KAAM,0BACN6jR,QAAS,6BACb,EA2KA,SAAS5C,EAAiB/B,CAAK,CAAEa,CAAQ,CAAE+D,CAAO,EAC9C,IAAI/C,EAAWzkR,SAASyiC,cAAc,CAACghP,GAEvC,GAAIgB,EACA7B,CAAK,CAAC4E,EAAU,iBAAmB,eAAe,CAAC/C,GACnDC,EAAWD,QAEX,MAAM,MAAU,6DAExB,CAmHA,SAASf,EAA0Bd,CAAK,CAAE4E,CAAO,EAE7C,IAAIC,EAAgB7E,EAAMmC,UAAU,GACpC0C,EAAcx+J,QAAQ,CAACu+J,GAGvB,IAAI/C,EAAWzkR,SAAS80G,aAAa,CAAC,QAStC,OARA2vK,EAASj0Q,EAAE,CAVJ82Q,EAAoB,IAAM3xQ,KAAKq4C,GAAG,GAAK,IAAM3xD,EAAQgqB,IAAI,GAWhEo+P,EAASr6N,KAAK,CAACs9N,UAAU,CAAG,IAC5BjD,EAASr6N,KAAK,CAAC+tF,OAAO,CAAG,OACzBssI,EAAS1vK,SAAS,CAAG4yK,UAA8BL,EAEnD7C,EAASxvK,WAAW,CAACj1G,SAAS4nR,cAAc,CAzT3B,WA2TjBH,EAAc5B,UAAU,CAACpB,GAClBA,CACX,CAoBA,SAASC,EAAWpjK,CAAI,EACpB,MAAO,CAACA,GAAQA,EAAK5+E,UAAU,CAACC,WAAW,CAAC2+E,EAChD,CAsDA,SAASumK,EAAkBpmR,CAAO,CAAEshJ,CAAQ,EACxC,IAAI,CAACthJ,OAAO,CAAGA,EACf,IAAI,CAACshJ,QAAQ,CAAGA,CACpB,CAoCA,SAAS+jI,EAAwBt2Q,CAAE,CAAEs3Q,CAAK,EACtC,IAAIrmR,EAAUzB,SAAS80G,aAAa,CAACmyK,EAAgBl9J,OAAO,EACxDg+J,EAAed,EAAgBvjR,IAAI,CACnCq/I,EAAW,IAAMglI,EAAe,KAAOv3Q,EAAK,KAKhD,GAHA/O,EAAQmB,WAAW,CAAG,IACtBnB,EAAQb,YAAY,CAACmnR,EAAcv3Q,GAE/Bs3Q,EAAO,CACP,IAAIE,EAAkBf,EAAgBM,OAAO,CACzCU,EAAmB,OACvBllI,GAAY,IAAMilI,EAAkB,KAAOC,EAAmB,KAC9DxmR,EAAQb,YAAY,CAAConR,EAAiBC,EAC1C,CAEA,OAAO,IAAIJ,EAAkBpmR,EAASshJ,EAC1C,CA8BJ,CC7eA,SAASmlI,EAAsBp9Q,CAAU,EAGrC,IAAI,CAACq9Q,oBAAoB,CA+BzB,WACI,MAAO,CAACC,EAAwBC,EAAkBC,EAAwB,EA/B9E,IAAI,CAACC,eAAe,CAkCpB,WACI,MAAO,CAACC,EAAsBC,EAAiB,EAlCnD,IAAI,CAACC,4BAA4B,CAsDjC,SAAsCpnK,CAAI,EACH,gBAA/BA,EAAKl3D,KAAK,CAACu+N,eAAe,EAC1BrnK,CAAAA,EAAKl3D,KAAK,CAACu+N,eAAe,CAAG,EAAC,CAEtC,EAzDA,IAAI,CAACN,gBAAgB,CAAGA,EACxB,IAAI,CAACC,uBAAuB,CAAGA,EAC/B,IAAI,CAACE,oBAAoB,CAAGA,EAK5B,IAAII,EAAuB,OACvB,IACIC,CAHe,WAAY,QAAS,OAAQ,OAAO,CAGnC77J,MAAM,CAAC,SAAUzT,CAAI,CAAEuvK,CAAI,EACvC,OAAOvvK,EAAO,IAAMuvK,CACxB,GACA,0CACJ,MAIAC,EAA4B,OAC5B,mBACIC,CAHoB,UAAW,UAAU,CAGpBh8J,MAAM,CAAC,SAAUzT,CAAI,CAAEuvK,CAAI,EAC5C,OAAOvvK,EAAO,IAAMuvK,CACxB,GACA,KACJ,MAaJ,SAASV,EAAuB9mK,CAAI,EAChC,IAAIl3D,EAAQk3D,EAAKjgH,YAAY,CAAC,SAC9B,GAAI+oD,OAAAA,GAIJk3D,EAAK1gH,YAAY,CAAC,QAASwpD,EAAMp2C,OAAO,CAAC40Q,EAAsB,IAAI50Q,OAAO,CAAC+0Q,EAA2B,KAGtG,IAAK,IADDtpR,EAAM,GACDiD,EAAI,EAAGC,EAAI++Q,EAAWI,wBAAwB,CAACjiR,MAAM,CAAE6C,EAAIC,EAAGD,IACnEjD,EAAMiiR,EAAWI,wBAAwB,CAACp/Q,EAAE,CACxC4+G,EAAKl3D,KAAK,CAAC3qD,EAAI,EACf6hH,CAAAA,EAAKl3D,KAAK,CAAC3qD,EAAI,CAAG,EAAC,EAG/B,CAQA,SAAS6oR,EAAwBhnK,CAAI,EACjC,IAAI2nK,EAAW3nK,EAAKl3D,KAAK,CAAC6+N,QAAQ,CAC9B,OAAOzpR,IAAI,CAACypR,IACZ3nK,CAAAA,EAAKl3D,KAAK,CAAC6+N,QAAQ,CAAG,EAAC,CAE/B,CAEA,SAASZ,EAAiB/mK,CAAI,EACtB,gBAAgB9hH,IAAI,CAAC8hH,EAAK3S,QAAQ,GAClC2S,EAAKhgH,eAAe,CAAC,QAE7B,CAEA,SAASmnR,EAAiBnnK,CAAI,EAC1B,MAAOA,OAAAA,EAAK3S,QAAQ,CAAYu6K,EAAgB5nK,EAAMthH,SAAS80G,aAAa,CAAC,OAASwM,CAC1F,CAEA,SAASknK,EAAqBlnK,CAAI,EAC9B,GAAIA,MAAAA,EAAK3S,QAAQ,CACb,OAAO2S,EAGX,IAAI/3E,EAAO+3E,EAAKjgH,YAAY,CAAC,QAC7B,MAAO,KAAK7B,IAAI,CAAC+pC,IAAS,CAACz+B,EAAWylK,gBAAgB,CAAChnI,GAAQ2/O,EAAgB5nK,EAAMthH,SAAS80G,aAAa,CAAC,SAAWwM,CAC3H,CAEA,SAAS4nK,EAAgB5nK,CAAI,CAAE6nK,CAAO,EAClC,KAAO7nK,EAAKqkK,UAAU,EAElBwD,EAAQl0K,WAAW,CAACqM,EAAKqkK,UAAU,EAIvC,OADArkK,EAAK5+E,UAAU,CAAC0mP,YAAY,CAACD,EAAS7nK,GAC/B6nK,CACX,CACJ,C,SDxGAtmR,EAAAA,CAAUA,CAACC,OAAO,CAAC,mBAAoBi/Q,GACvCA,EAAiBh/Q,OAAO,CAAG,CAAC,UAAW,kBAAmB,UAAW,wBAAwB,C,SCA7FF,EAAAA,CAAUA,CAACC,OAAO,CAAC,wBAAyBolR,GAC5CA,EAAsBnlR,OAAO,CAAG,CAAC,aAAa,C,2CCO9CF,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,eAAgB+xP,GACnCA,EAAatmR,OAAO,CAAG,CAAC,YAAa,WAAY,mBAAoB,wBAAyB,UAAW,eAAgB,YAAa,kBAAmB,cAAe,mBAAmB,CAE3L,IASIkkD,EATAqiO,EAAY,KACZzkR,EAAW,KACXk9Q,EAAmB,KACnBmG,EAAwB,KACxB7rR,EAAU,KACVktR,EAAe,KACfh6O,EAAY,KACZpzC,EAAkB,KAClB0pJ,EAAc,KAGlB,SAASwjI,EAAaG,CAAW,CAAE/tQ,CAAU,CAAEguQ,CAAkB,CAAEC,CAAuB,CAAE3+D,CAAS,CAAE4+D,CAAc,CAAEC,CAAW,CAAEC,CAAiB,CAAEC,CAAa,CAAEC,CAAkB,EAYpL,OAXAT,EAAYE,EACZ3kR,EAAW4W,EACXsmQ,EAAmB0H,EACnBvB,EAAwBwB,EACxBrtR,EAAU0uN,EACVw+D,EAAeI,EACfp6O,EAAYq6O,EACZztR,EAAkB0tR,EAClBhkI,EAAcikI,EACd7iO,EAAmB8iO,EAEZC,CACX,CAcA,SAASA,EAAkBnvN,CAAI,EAC3BA,EAAOA,GAAQ,CAAC,EAChB,IAAI,CAACovN,UAAU,CAAGpvN,EAAKovN,UAAU,EAAI,GACrC,IAAI,CAACC,UAAU,CAAGrvN,EAAKqvN,UAAU,EAAI,GACrC,IAAI,CAACC,eAAe,CAAGtvN,EAAKsvN,eAAe,EAAI,KAC/C,IAAI,CAACt2E,SAAS,CAAG,KACjB,IAAI,CAAC10M,MAAM,CAAG07D,EAAK17D,MAAM,EAAI,KAG7B,IAAI,CAACirR,kBAAkB,CAAGvvN,EAAKuvN,kBAAkB,EAAIlC,EAAsBC,oBAAoB,GAC/F,IAAI,CAACkC,aAAa,CAAGxvN,EAAKwvN,aAAa,EAAInC,EAAsBK,eAAe,GAEhF,IAAM+B,EAAkBrkR,OAAOkhB,MAAM,CAAC,CAAC,EAAG6iQ,EAAkBO,qBAAqB,CAAE1vN,EAAK2vN,cAAc,EAAI,CAAC,EAC3G,KAAI,CAACC,UAAU,CAAG3gG,EAAAA,CAAmBA,CAAC4gG,mBAAmB,CAAC,CAAEpqK,WAAYgqK,EAAgBK,YAAY,CAAEn/P,KAAM8+P,EAAgBM,YAAY,GACxI,IAAI,CAACH,UAAU,CAACzvP,EAAE,CAAC6vP,EAAAA,CAAkBA,CAACC,aAAa,CAAEC,EAAAA,CAAgCA,EACrF,IAAI,CAACN,UAAU,CAACzvP,EAAE,CAAC6vP,EAAAA,CAAkBA,CAACC,aAAa,CAAE,IAAI,CAACE,YAAY,CAAChuR,IAAI,CAAC,IAAI,GAChF,IAAI,CAACytR,UAAU,CAACzvP,EAAE,CAAC6vP,EAAAA,CAAkBA,CAACI,cAAc,CAAE,IAAI,CAACC,kBAAkB,CAACluR,IAAI,CAAC,IAAI,EAC3F,CA5BAgtR,EAAkBO,qBAAqB,CAAG,CACtCK,aAAclJ,EAAWE,oBAAoB,CAACtnP,MAAM,CAAConP,EAAWC,qBAAqB,EACrFgJ,aAAcjJ,EAAWG,oBAAoB,CAAClgR,KAAK,GACnDwpR,YAAa,EAAE,CACfC,YAAa,EAAE,CACfC,WAAY,EAChB,EAEArB,EAAkBsB,gBAAgB,CAAG,4BACrCtB,EAAkBuB,aAAa,CAAG,uBAqBlCvB,EAAkBxrR,SAAS,CAACi+J,MAAM,CAAG,WACT,KAApB,IAAI,CAACytH,UAAU,EAAcjjO,EAAiB0tD,EAAE,EAAI1tD,KAAAA,EAAiBkgN,OAAO,GAK5E,IAAI,CAACqkB,oBAAoB,CAAG,IAAI,CAACC,aAAa,CAACzuR,IAAI,CAAC,IAAI,EACxDgD,SAASC,gBAAgB,CAAC,cAAe,IAAI,CAACurR,oBAAoB,CAAE,IAEpE,IAAI,CAACrsR,MAAM,CAACc,gBAAgB,CAAC,cAAe4lJ,EAAY6yH,SAAS,CAAE,KAGvE,IAAI,CAACgT,cAAc,CAAG,IAAI,CAACC,OAAO,CAAC3uR,IAAI,CAAC,IAAI,EAC5CgD,SAASC,gBAAgB,CAAC,QAAS,IAAI,CAACyrR,cAAc,EACtD1rR,SAASC,gBAAgB,CAAC,OAAQ,IAAI,CAAC2rR,aAAa,CACxD,EAEA5B,EAAkBxrR,SAAS,CAACk+J,OAAO,CAAG,WAC9B,IAAI,CAAC8uH,oBAAoB,EACzBxrR,SAASI,mBAAmB,CAAC,cAAe,IAAI,CAACorR,oBAAoB,CAAE,IAEvE,IAAI,CAACE,cAAc,EACnB1rR,SAASI,mBAAmB,CAAC,QAAS,IAAI,CAACsrR,cAAc,EAG7D1rR,SAASI,mBAAmB,CAAC,OAAQ,IAAI,CAACwrR,aAAa,EACvD,IAAI,CAACzsR,MAAM,CAACiB,mBAAmB,CAAC,cAAeylJ,EAAY6yH,SAAS,CACxE,EAEAsR,EAAkBxrR,SAAS,CAACqtR,aAAa,CAAG,SAAUC,CAAa,CAAE3sR,CAAM,CAAE8iR,CAAkB,EAEvF,IAAI,CAACpuE,SAAS,EACd,KAAI,CAACA,SAAS,CAACouE,kBAAkB,CAAGA,CAAiB,EAIzDF,EAAiBoC,gBAAgB,CAAC,IAAI,CAACtwE,SAAS,EAGhD,IAAIk4E,EAAsB,IAAI,CAACC,YAAY,CAACF,GAG5C/J,EAAiBqD,gBAAgB,CAAC2G,GAGlC,IAAI,CAACE,YAAY,CAAC9sR,EAAQ8iR,GACtB1yO,EAAUwC,UAAU,CAAC,IAAI,CAACo4O,eAAe,GACzC,IAAI,CAACA,eAAe,EAE5B,EAEAH,EAAkBxrR,SAAS,CAACytR,YAAY,CAAG,SAAU9sR,CAAM,CAAE8iR,CAAkB,EAE3E,IAAIjwE,EAAc,IAAI,CAACk6E,0BAA0B,EAGjD,KAAI,CAACr4E,SAAS,CAAGkuE,EAAiBC,aAAa,CAACC,GAGhDF,EAAiBqD,gBAAgB,CAACpzE,GAIlCA,CADAA,EAAchyM,SAASyiC,cAAc,CAACunP,EAAkBuB,aAAa,GACzDtsR,KAAK,GAGjB+yM,EAAYtvK,UAAU,CAACC,WAAW,CAACqvK,GAGnC+vE,EAAiBoC,gBAAgB,CAAC,IAAI,CAACtwE,SAAS,EAE5C10M,GACAA,EAAOF,KAAK,EAEpB,EAEA+qR,EAAkBxrR,SAAS,CAAC0tR,0BAA0B,CAAG,WACrD,MAAO,YAAclC,EAAkBuB,aAAa,CAA7C,qFACX,EAEAvB,EAAkBxrR,SAAS,CAACwtR,YAAY,CAAG,SAAUG,CAAS,EAC1D,IAAMC,EAA8B,OAAW,CAAC,OAAO,EAAE1K,EAAWE,oBAAoB,CAAC16L,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAE,KAE9G,IAAImlM,EAAcF,EACbn4Q,OAAO,CAAC,sBAAuB,OAC/BA,OAAO,CAACo4Q,EAA6B,QACrCp4Q,OAAO,CAAC,cAAe,WAExB42K,EAAQ,IAAI,CAAC6/F,UAAU,CAAC7/F,KAAK,CAACyhG,GAQlC,OANI,IAAI,CAACpC,UAAU,EACfr/F,CAAAA,EAAQ,IAAI,CAACq/F,UAAU,CAACr/F,EAAK,EAGjCA,EAAQ,IAAI,CAAC0hG,oBAAoB,CAAC1hG,EAGtC,EAEAo/F,EAAkBxrR,SAAS,CAAC8tR,oBAAoB,CAAG,SAAU5oR,CAAI,SAK7D,EAAagxF,WAAW,CAAChxF,GAIlBA,EAHI,EAIf,EAEAsmR,EAAkBxrR,SAAS,CAACitR,aAAa,CAAG,WACxC,IAAI,CAACc,qBAAqB,EAC9B,EAEAvC,EAAkBxrR,SAAS,CAACotR,aAAa,CAAG,SAAUhkP,CAAC,EACnDA,EAAEvnC,cAAc,EACpB,EAEA2pR,EAAkBxrR,SAAS,CAACguR,oBAAoB,CAAG,SAAU5kP,CAAC,CAAEjoB,CAAI,CAAE8sQ,CAAM,EACxE,OAAOxlO,EAAiB0tD,EAAE,CAAG1vG,OAAOynR,aAAa,CAACC,OAAO,CAACF,GAAU,CAAC7kP,EAAEw8E,aAAa,EAAIx8E,CAAAA,EAAG8kP,aAAa,CAACC,OAAO,CAAChtQ,EACrH,EAEAqqQ,EAAkBxrR,SAAS,CAACouR,iBAAiB,CAAG,SAAUhlP,CAAC,EACvD,GAAIA,UAAAA,EAAEjoB,IAAI,CAAc,CAEpBioB,EAAEvnC,cAAc,GAEhB,IAAI66H,EAAO,GACPwxJ,EAAgB,IAAI,CAACF,oBAAoB,CAAC5kP,EAAG,aAAc,QAE/D,GAAI,CACAszF,EAAOouJ,EAAUoD,EAErB,CAAE,MAAO9kP,EAAG,CAAC,CAET8kP,GAAiB,CAACxxJ,GAElBA,CAAAA,EAAOquJ,EAAatnD,gBAAgB,CAACyqD,EAAa,EAIjD1sR,SAAS4rL,qBAAqB,CAAC,cAGhC5rL,SAASgsL,WAAW,CAAC,aAAc,GAAO9wD,GAF1C6mJ,EAAiBqD,gBAAgB,CAAClqJ,GAKlC3rF,EAAUwC,UAAU,CAAC,IAAI,CAACo4O,eAAe,GACzC,IAAI,CAACA,eAAe,EAE5B,CACJ,EAEAH,EAAkBxrR,SAAS,CAACmtR,OAAO,CAAG,SAAU/jP,CAAC,EAC7C,GAAI,IAAI,CAACzoC,MAAM,GAAKyoC,EAAEzoC,MAAM,EAAK,IAAI,CAACA,MAAM,CAAC6C,QAAQ,CAAC4lC,EAAEzoC,MAAM,GAI9D,GAAI,CAAoB,IAApB,IAAI,CAAC+qR,UAAU,CACf,OAAO,IAAI,CAAC0C,iBAAiB,CAAChlP,GAGlC,GAAK,IAAI,CAACilP,wBAAwB,CAACjlP,IAI/B,GAAI,IAAI,CAACklP,4BAA4B,CAACllP,EAAE8kP,aAAa,EACjD,IAAI,CAACK,cAAc,CAAC,WAAYnlP,GAChCA,EAAEvnC,cAAc,QACb,IAAI,IAAI,CAAC2sR,+BAA+B,CAACplP,EAAE8kP,aAAa,EAI3D,OAAO,IAAI,CAACE,iBAAiB,CAAChlP,GAF9B,IAAI,CAACmlP,cAAc,CAAC,eAAgBnlP,SARxC,IAAI,CAACmlP,cAAc,CAAC,eAAgBnlP,GAa5C,EAEAoiP,EAAkBxrR,SAAS,CAACyuR,WAAW,CAAG,SAAUrlP,CAAC,EACjD,IAAIslP,EAAWtlP,EAAEzoC,MAAM,CAEnBguR,EAAgBhxR,EAAgB+6Q,eAAe,CAACgW,GAKpD,OAJsB,OAAlBC,GACAD,CAAAA,EAAWC,CAAY,EAGpBD,CACX,EAEAlD,EAAkBxrR,SAAS,CAACuuR,cAAc,CAAG,SAAUptQ,CAAI,CAAEioB,CAAC,EAC1D,IAAIslP,EAAW,IAAI,CAAC/tR,MAAM,EAAI,IAAI,CAAC8tR,WAAW,CAACrlP,GAE/C,OAAQjoB,GACJ,IAAK,eACD,IAAI,CAACytQ,yBAAyB,CAACF,GAC/B,KACJ,KAAK,WACD,IAAI,CAACG,sBAAsB,CAACzlP,EAAGslP,EAEvC,CACJ,EAEAlD,EAAkBxrR,SAAS,CAAC6uR,sBAAsB,CAAG,SAAUzlP,CAAC,CAAEslP,CAAQ,EACtE,IAAIR,EAAgB9kP,EAAE8kP,aAAa,CACnC,IAAI,CAACb,aAAa,CAACa,EAAcC,OAAO,CAAC,aAAcO,EAAU,GACrE,EAEAlD,EAAkBxrR,SAAS,CAAC4uR,yBAAyB,CAAG,SAAUF,CAAQ,EAChEjmO,EAAiB0tD,EAAE,EAAI1tD,KAAAA,EAAiBkgN,OAAO,EACjD,IAAI,CAAColB,qBAAqB,GAG9B1nR,EACI,YACI,IAAI,CAACgnR,aAAa,CAAC,IAAI,CAACyB,yBAAyB,GAAIJ,EAAU,IAC/D,IAAI,CAACK,qBAAqB,EAC9B,GAAEvwR,IAAI,CAAC,IAAI,EACX,EAER,EAEAgtR,EAAkBxrR,SAAS,CAACgvR,oBAAoB,CAAG,WAC/C,OAAOxtR,SAASyiC,cAAc,CAACunP,EAAkBsB,gBAAgB,CACrE,EAEAtB,EAAkBxrR,SAAS,CAAC+tR,qBAAqB,CAAG,WAChD,IAAI9nJ,EAAY,IAAI,CAAC+oJ,oBAAoB,GAoBzC,OAlBK/oJ,IACD,IAAI,CAACovE,SAAS,CAAGkuE,EAAiBC,aAAa,GAE/Cv9I,CADAA,EAAYzkI,SAAS80G,aAAa,CAAC,MAAK,EAC9BtkG,EAAE,CAAGw5Q,EAAkBsB,gBAAgB,CACjD7mJ,EAAU1vB,SAAS,CAAG,SACtB0vB,EAAUgpJ,eAAe,CAAG,GAC5BhpJ,EAAUr6E,KAAK,CAACl5B,QAAQ,CAAG,QAC3BuzG,EAAUr6E,KAAK,CAAC0pD,IAAI,CAAG,WACvB2wB,EAAUr6E,KAAK,CAAC65B,KAAK,CAAG,MACxBwgD,EAAUr6E,KAAK,CAACJ,MAAM,CAAG,MACzBy6E,EAAUr6E,KAAK,CAACk2H,QAAQ,CAAG,SAC3B77C,EAAUr6E,KAAK,CAACsjO,OAAO,CAAG,EAE1B1tR,SAASg1G,IAAI,CAACC,WAAW,CAACwvB,IAG9BA,EAAUxlI,KAAK,GAERwlI,CACX,EAEAulJ,EAAkBxrR,SAAS,CAAC8uR,yBAAyB,CAAG,WACpD,IAAIK,EAAc,IAAI,CAACH,oBAAoB,GACvC3qP,EAAU8qP,EAAYpI,SAAS,CAEnC,OADAoI,EAAYpI,SAAS,CAAG,GACjB1iP,CACX,EAEAmnP,EAAkBxrR,SAAS,CAAC+uR,qBAAqB,CAAG,WAChD,IAAII,EAAc,IAAI,CAACH,oBAAoB,GACvCG,GACAA,EAAYjrP,UAAU,CAACC,WAAW,CAACgrP,EAE3C,EAEA3D,EAAkBxrR,SAAS,CAACwsR,YAAY,CAAG,SAAU4C,CAAY,EAE7D,IAAK,IADDtsK,EAAOssK,EACFlrR,EAAI,EAAGC,EAAI,IAAI,CAAC0nR,aAAa,CAACxqR,MAAM,CAAE6C,EAAIC,EAAGD,IAClD4+G,EAAO,IAAI,CAAC+oK,aAAa,CAAC3nR,EAAE,CAAC4+G,GAGjC,OAAOA,CACX,EAEA0oK,EAAkBxrR,SAAS,CAAC0sR,kBAAkB,CAAG,SAAU5pK,CAAI,EAC3D,IAAK,IAAI5+G,EAAI,EAAGC,EAAI,IAAI,CAACynR,kBAAkB,CAACvqR,MAAM,CAAE6C,EAAIC,EAAGD,IACvD,IAAI,CAAC0nR,kBAAkB,CAAC1nR,EAAE,CAAC4+G,EAGI,MAA/BA,EAAKjgH,YAAY,CAAC,UAClBigH,EAAKhgH,eAAe,CAAC,QAE7B,EAEA0oR,EAAkBxrR,SAAS,CAACquR,wBAAwB,CAAG,SAAUjlP,CAAC,EAE9D,MAAO,CAAC,CADMA,CAAAA,GAAKA,EAAE8kP,aAAa,EAAI9kP,EAAE8kP,aAAa,CAACC,OAAO,EAAI/kP,EAAE8kP,aAAa,CAACmB,KAAK,CAE1F,EAEA7D,EAAkBxrR,SAAS,CAACsuR,4BAA4B,CAAG,SAAUJ,CAAa,EAC9E,OAAOhrR,MAAMlD,SAAS,CAAC8D,OAAO,CAACzF,IAAI,CAAC6vR,EAAcmB,KAAK,CAAE,aAAe,EAC5E,EAEA7D,EAAkBxrR,SAAS,CAACwuR,+BAA+B,CAAG,SAAUN,CAAa,EACjF,IAAIoB,EAA0BpsR,MAAMlD,SAAS,CAACmD,KAAK,CAAC9E,IAAI,CAAC6vR,EAAcmB,KAAK,EAC5E,OAAOC,EAAwBxrR,OAAO,CAAC,wBAA0B,IAAMwrR,EAAwBxrR,OAAO,CAAC,cAAgB,EAC3H,EAEsB,IAAI+mR,E,eC1WnB,IAAM0E,EAA+B,SAACC,CAAa,EAAbA,IAAeC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAiB3hQ,EAAAA,CAAIA,CAC7E,MAAO,CACH,OACA,aACA,UACA,UACA,eACA,mBACA,SAAUlY,CAAI,CAAEW,CAAU,CAAEoC,CAAO,CAAE9a,CAAO,CAAEgtR,CAAY,CAAEpiO,CAAgB,EACxE,MAAO,CACH3yC,SAAU,IACV8gF,QAAS,WACT3rE,KAAM,SAAUlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,CAAE+lE,CAAO,MAsBtC64L,EArBJD,EAAe3+P,EAAO7tB,CAAO,CAAC,EAAE,EAEhC,IAAM0sR,EAAe1sR,CAAO,CAAC,EAAE,CAACJ,YAAY,CAAC,SAC7CI,CAAO,CAAC,EAAE,CAACb,YAAY,CAAC,QAAS,CAAC,wBAAwB,EAAEutR,EAAa,CAAC,EAE1E,IAAIC,EAAiB,IACI,UAArB9+P,EAAMoxM,UAAU,EAChB0tD,CAAAA,EAAiB,CAAExD,aAAclJ,EAAWC,qBAAqB,GAGrE,IAAM0M,EAAc,IAAIhF,EAAa,CACjCc,gBAsGJ,WACImE,IACAC,EAAuBl5L,EAAQm5L,UAAU,CAC7C,EAxGIhE,eAAgB4D,EAChBjvR,OAAQsC,CAAO,CAAC,EAAE,GAGhBgtR,EAAWn/P,KAAgC9sB,IAAhC8sB,EAAMo/P,qBAAqB,CACtCC,EAAeF,EAAW,OAAS,4CACnCG,EAAgB,CAAC,QAAS,QAAS,mBAAoB,QAAQ,CAEjEC,EAAkB,EAStB,GANK5nO,EAAiBm/M,MAAM,EAGxBwoB,EAActqR,IAAI,CAAC,WAGlB+wF,GAIDpuC,EAAiBi/M,GAAG,ECpDxCzkQ,CAAAA,CDqD6D,CAAC,EAAE,CCrDxD2oD,KAAK,CAAC0kO,gBAAgB,CAAG,MAAK,EDwDtBz5L,EAAQM,OAAO,CAAG,WACd,IAAM52F,EAAQqV,EAAKymC,WAAW,CAACw6C,EAAQm5L,UAAU,EAAI,IAErD/sR,EAAQ4kC,IAAI,CAACtnC,EAAMmvB,QAAQ,GAC/B,EAkBA6gQ,EAAkBz/P,UAAAA,CAAK,CAAC0+P,EAAc,EAkFtC,IAAIgB,EAAiC1/P,EAAMN,QAAQ,CAACg/P,EAAe,WAC/De,EAAkBz/P,UAAAA,CAAK,CAAC0+P,EAAc,EACT,UAAzB1+P,CAAK,CAAC0+P,EAAc,GACpBvsR,EAAQzE,IAAI,CAAC,QAASiyR,GAEgBzsR,KAAAA,GAAlC+R,EAAM26Q,wBAAwB,EAC9B36Q,EAAM26Q,wBAAwB,CAAC5rR,OAAO,GAE1C0rR,IAER,GA5GA,SAASD,EAAkB7yN,CAAU,EACjC,GAAI,CAACA,EAAY,CACbz6D,CAAO,CAAC,EAAE,CAACH,eAAe,CAAC,kBACQ,YAA/BG,CAAO,CAAC,EAAE,CAAC6+G,UAAU,CAACh0B,IAAI,EAC1B7qF,CAAO,CAAC,EAAE,CAACH,eAAe,CAAC,WAE/B,MACJ,CAEmCkB,KAAAA,IAA/Bf,CAAO,CAAC,EAAE,CAAC6+G,UAAU,CAACh0B,IAAI,EAC1B7qF,CAAO,CAAC,EAAE,CAACb,YAAY,CAAC,OAAQ,WAGpCa,CAAO,CAAC,EAAE,CAACb,YAAY,CAAC,iBAAkB0uB,SAAAA,EAAMoxM,UAAU,CAC9D,CAIA,SAASyuD,EAAkBvnP,CAAC,EACC,MAArBA,EAAEzoC,MAAM,CAAC4qH,OAAO,EAChBniF,EAAEvnC,cAAc,EAExB,CAEA,SAAS+uR,EAAgBxnP,CAAC,EAClBtY,EAAMoxM,UAAU,EAAIpxM,SAAAA,EAAMoxM,UAAU,CAACrqN,WAAW,IAAiBuxB,KAAAA,EAAEtoC,OAAO,EAC1EsoC,EAAEvnC,cAAc,GAGL,SAAXunC,EAAEjoB,IAAI,EA2DN3f,SAASijH,aAAa,GAAKxhH,CAAO,CAAC,EAAE,GAIzCA,EAAQtB,MAAM,CAAC,QAASgvR,GACxB1tR,EAAQtB,MAAM,CAACwuR,EAAcS,GAC7Bf,EAAY3xH,OAAO,GACnBvlJ,EAAQgrQ,YAAY,GAAGyC,eAAe,KA9DlC6J,GAIAG,EAActsR,OAAO,CAACslC,EAAEjoB,IAAI,EAAI,KAMpCpL,EAAMspG,UAAU,CAACywK,GACjBhsP,aAAausP,GACbA,EAAkBrsP,WAAW,WACrB0rP,IAAoB74L,EAAQm5L,UAAU,EACtCD,EAAuBl5L,EAAQm5L,UAAU,EAG7CN,EAAkB74L,EAAQm5L,UAAU,EACrC,KAXP,CAcA,SAASD,EAAuBxvR,CAAK,EAKjC,GAJIwV,EAAMi+B,WAAW,EACjBj+B,EAAMi+B,WAAW,CAACljB,EAAM+/P,UAAU,CAAG//P,EAAM+/P,UAAU,CAAG//P,EAAM+lE,OAAO,CAAEt2F,GAGvEuwB,EAAMi5D,QAAQ,CAAE,CAChB,IAAMvkF,EAAW3H,EAAQu/Q,mBAAmB,CAACrnQ,EAAO+a,EAAMi5D,QAAQ,EAC5D+mM,EAAchgQ,EAAMigQ,WAAW,EAAI,GACrCvrR,GACAuQ,EAAM4iF,MAAM,CAAC,WACTnzF,EAASjF,EAAOuwR,EACpB,EAER,CACJ,CAOA,SAASL,IACLf,EAAkB74L,EAAQm5L,UAAU,CAEpC/sR,EAAQzE,IAAI,CAAC,QAASmyR,GACtB1tR,EAAQzE,IAAI,CAAC2xR,EAAcS,GAE3Bf,EAAYnE,UAAU,CAAG,GAEzBmE,EAAY3xH,OAAO,GACnB2xH,EAAY5xH,MAAM,EACtB,CA0BA,SAAS6xH,IACL,IAAIjoP,EAAO5kC,EAAQ4kC,IAAI,GAGnBA,GAASA,CAAAA,IAAAA,EAAKryB,OAAO,CAAC,QAAS,IAAInU,MAAM,EAAUwmC,SAAAA,CAAc,IACjE5kC,EAAQ6kC,KAAK,GACbD,EAAO5kC,EAAQ4kC,IAAI,IAEvBgvD,EAAQK,aAAa,CAACrvD,EAC1B,CACJ,CACJ,CACJ,EACH,C,4CExLLxjC,EAAAA,CAAUA,CAAC0T,SAAS,CAAC,kBAAmBw3Q,CAAAA,EAAAA,EAAAA,CAAAA,EAA6B,mB,kBCErE,SAASyB,IAGL,IAAI,CAACC,QAAQ,CAOb,SAAkBC,CAAQ,EACtB,OAAOA,OAAAA,GAAqB,iBAAOA,CACvC,EARA,IAAI,CAACl+L,QAAQ,CAUb,SAAkBk+L,CAAQ,EACtB,MAAO,iBAAOA,GAAyBA,aAAoBzkM,MAC/D,EAXA,IAAI,CAACp9D,OAAO,CAaZ,SAAiB6hQ,CAAQ,EACrB,OAAOA,EAASzsR,WAAW,GAAKvB,KACpC,EAdA,IAAI,CAACqwC,UAAU,CAgBf,SAAoB29O,CAAQ,EACxB,MAAO,mBAAOA,CAClB,CACJ,CA5BA7sR,E,OAAAA,CAAUA,CAACC,OAAO,CAAC,YAAa0sR,GAChCA,EAAUzsR,OAAO,CAAG,EAAE,E,wCCAtBF,EAAAA,CAAUA,CAACqI,QAAQ,CAAC,aAEpB,WACI,IAAIykR,EAAwB,EAE5B,KAAI,CAACA,qBAAqB,CAAG,SAAU5wR,CAAK,EACxC4wR,EAAwB5wR,CAC5B,EAEA,IAAI,CAACuM,IAAI,CAAG,CACR,QACA,UACA,YACA,eACA,KACA,kBACA,SAAUX,CAAK,CAAEwM,CAAO,CAAEE,CAAS,CAAEzM,CAAY,CAAE+L,CAAE,CAAEtC,CAAe,EAClE,OAAOvJ,SAKCH,CAAK,CAAEwM,CAAO,CAAEE,CAAS,CAAEzM,CAAY,CAAE+L,CAAE,CAAEtC,CAAe,CAAEs7Q,CAAqB,EAEnG,IAAIC,EAAQ,CACR31I,uBAAwB,aACxBj5F,KAAM,WACNm5F,aAAc,WACd72G,SAAU,WACVw2G,iBAAkB,WAClBC,aAAc,YACdK,gBAAiB,mBACjBC,gBAAiB,mBACjBH,YAAa,cACbzuI,KAAM,OACNouI,KAAM,OACNpd,KAAM,OACNud,SAAU,WACV27E,OAAQ,QACZ,EAEIk6D,EAAa5pR,OAAOZ,IAAI,CAACuqR,GAAOrqR,GAAG,CAAC,SAAU9F,CAAG,EACjD,OAAO,OAAW,KAAOmwR,CAAK,CAACnwR,EAAI,CAAE,IACzC,GAGA,SAASqwR,EAAmBhgR,CAAG,CAAE+Z,CAAI,EAEjC,IACIkP,EAAUt2B,OADS,SADvBonB,CAAAA,EAAOA,EAAK7V,OAAO,CAAC,OAAQ,OAAOA,OAAO,CAAC,OAAQ,MAAK,EACf,aACrB6mQ,IAAI,CAAC/qQ,GACzB,OAAOipB,OAAAA,EAAmB,GAAKs4O,mBAAmBt4O,CAAO,CAAC,EAAE,CAAC/kB,OAAO,CAAC,MAAO,KAChF,CAEA,SAAS+7Q,EAAYlhR,CAAQ,EACzB,GAAI,CAACA,EACD,OAAO+gR,EAAMj6D,MAAM,CAGvB,IAAIz3M,EAAO0xQ,CAAK,CAAC/gR,EAASwH,WAAW,GAAG,CACxC,OAAO6H,KAAc,IAAdA,EAAkBA,EAAO0xQ,EAAMj6D,MAAM,CAGhD,SAASq6D,EAAgBxlR,CAAY,SACjC,IAEWI,EAAaJ,YAAY,CACzBI,EAAaJ,YAAY,CAEzB,GAEf,CAaA,MAAO,CACHmlR,sBAAuBA,EAMvBzjR,cAAe,SAAU4D,CAAG,CAAE5J,CAAM,EAIhC,IAAK,IAHD+pR,EAAc,KAAMzwR,IAAI,CAACsQ,GAAa,IAAN,IAChCrN,EAAQ,KACRo6F,EAAQ,KACHn6F,EAAI,EAAGC,EAAIuD,EAAOrG,MAAM,CAAE6C,EAAIC,EAAGD,IACtCD,EAAQ,OAAW,SAAWyD,CAAM,CAACxD,EAAE,CAACjD,GAAG,CAAG,YAAa,KAC3Do9F,EAAQ32F,CAAM,CAACxD,EAAE,CAGboN,EADAA,OAAAA,EAAI0Q,KAAK,CAAC/d,GACJqN,EAAIkE,OAAO,CAACvR,EAAO,KAAOo6F,EAAMp9F,GAAG,CAAG,IAAMo9F,EAAM99F,KAAK,CAAG,MAE1D+Q,EAAMmgR,EAAcpzL,EAAMp9F,GAAG,CAAG,IAAMo9F,EAAM99F,KAAK,CAG3DkxR,EAAc,IAElB,OAAOngR,CACX,EACA0pB,kBAAmB,SAAU1pB,CAAG,CAAEogR,CAAc,CAAEC,CAAU,CAAE5lR,CAAS,CAAEC,CAAY,EACjF,GAAI,CAAC,IAAI,CAACmlR,qBAAqB,CAC3B,OAAO7/Q,EAGX,IAAIsgR,EAAkBJ,EAAgBxlR,GAElC6lR,EAAe,KACf9lR,EACA8lR,EAAe9lR,EAEK,GAAbA,GACP8lR,CAAAA,EAAezlR,EAAaL,SAAS,EAGzC,IAAI+lR,EAAWxgR,EACXU,EAAKs/Q,EAAmBhgR,EAAK,MAC7BnI,EAASmoR,EAAmBhgR,EAAK,UACjCw5B,EAAWwmP,EAAmBhgR,EAAK,YACnCzQ,EAAS6wR,GAAkBJ,EAAmBhgR,EAAK,UACnDsoD,EAAW03N,EAAmBhgR,EAAK,YACnCq7E,EAAW9zE,EAAU6G,IAAI,GAAG5b,OAAO,CAAC,UAAY,GAiCpD,OAhCA81D,EAAW23N,EAAY33N,GAGnB9uB,CAAAA,cAAAA,EAASjzB,WAAW,IAAsBizB,eAAAA,EAASjzB,WAAW,IAAuB85Q,CAAS,IAG1F9wR,SAAAA,EAAOgX,WAAW,IAAkB80E,EAIhCA,EACAmlM,EAAW,YAAc9/Q,GAEzB8/Q,EAAW,YAEPF,GACAE,CAAAA,EAAWA,EAAWF,EAAkB,GAAE,EAG1CC,GACAC,CAAAA,EAAWA,EAAWD,EAAe,GAAE,EAG3CC,GAAsB9/Q,GAhB1B8/Q,EAAW,KAAOl4N,EAAS/hD,WAAW,GAAK,IAAM7F,EAoBjD7I,GACA2oR,CAAAA,EAAWA,EAAW,WAAa3oR,CAAK,GAIzC2oR,CACX,EAEA/sE,oBAAqB,SAAUj5M,CAAO,EAClC,MAAO,CAAC,QAAQ,EAAEA,EAAQ,CAAC,EAG/B6mC,YAAa,SAAUrhC,CAAG,CAAEzE,CAAM,EAC9BV,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAI2tB,EAAchnB,EAAGuI,KAAK,GAKtBhc,EAAU06B,EAJMhyB,GAAG,CAACkE,EAAK,CACzB+tB,QAASF,EAAYz6B,OAAO,CAC5BmI,OAAQA,CACZ,GACsBrM,IAAI,CACtB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOnnB,EAAGpT,MAAM,CAACu6B,EACrB,GAGJ,OADA56B,EAAQ66B,YAAY,CAAGJ,EAChBz6B,CACX,EAEAywC,aAAc,SAAU7jC,CAAG,CAAEpM,CAAI,EAC7BiH,EAAMoF,QAAQ,CAACC,eAAe,CAAG,GACjC,IAAI2tB,EAAchnB,EAAGuI,KAAK,GAEtBhc,EAAU06B,EADMnyB,IAAI,CAACqE,EAAKpM,EAAM,CAAEm6B,QAASF,EAAYz6B,OAAO,GAC5ClE,IAAI,CACtB,SAAU0M,CAAQ,EACd,OAAOA,CACX,EACA,SAAUoyB,CAAS,EACf,OAAOA,CACX,GAGJ,OADA56B,EAAQ66B,YAAY,CAAGJ,EAChBz6B,CACX,EAMAggI,iBAAkB,SAAU73H,CAAM,EAC9B,OAAO,IAAI,CAACa,aAAa,CAACmI,EAAgB05P,cAAc,CAAE1iQ,EAC9D,EACAklR,gBAAiB,SAAU//Q,CAAE,CAAEhG,CAAY,EA1I3C,IAAIgmR,EA2IA,OAAOn8Q,EAAgByC,YAAY,CAAG,yBAA2BtG,EAzIrE,EAFIggR,EAA0BR,EA2IuExlR,IAxI1F,iBAAmBgmR,EAGvB,EAFP,EAuIqH,UACrH,EAWA/rE,cAAe,SAAUn6M,CAAO,CAAEkgP,CAAa,CAAEl4G,CAAQ,CAAEm+I,CAAS,CAAElmR,CAAS,CAAEC,CAAY,EACzF,IAAIsF,EAAM,GAENsgR,EAAkBJ,EAAgBxlR,GActC,GAbI4lR,GACAA,CAAAA,GAAoC,GAAE,EAItCtgR,EADA2gR,EACM,WAAanmR,EACZgoI,EACD,WAAa89I,EAAkB9lR,EAE/B,IAAMylR,EAAYvlC,GAAiB,IAAMlgP,EAI/C,YAAY9K,IAAI,CAACsQ,GAAM,CACvB,IAAIugR,EAAe,KACf9lR,EACA8lR,EAAe9lR,EAEK,GAAbA,GACP8lR,CAAAA,EAAezlR,EAAaL,SAAS,EAGrC8lR,GACAvgR,CAAAA,EAAM,WAAasgR,EAAkBC,EAAe,IAAM/lR,CAAM,CAExE,CAEA,OAAOwF,CACX,EAYAqO,UAAW,SAAU7T,CAAO,CAAEkgP,CAAa,CAAEl4G,CAAQ,CAAEm+I,CAAS,CAAElmR,CAAS,CAAEC,CAAY,CAAEkmR,CAAgB,EACvG,IAAI5gR,EAAM,IAAI,CAAC20M,aAAa,CAACn6M,EAASkgP,EAAel4G,EAAUm+I,EAAWlmR,EAAWC,GAMrF,OAJIkmR,GAAoB9lR,EAAa6T,SAAS,EAC1C3O,CAAAA,GAAO,CAAC,WAAW,EAAElF,EAAa6T,SAAS,CAAC,CAAC,EAG1C3O,CACX,EAEA0iK,cAAe,SAAUloK,CAAO,CAAEkgP,CAAa,CAAEl4G,CAAQ,CAAEm+I,CAAS,CAAElmR,CAAS,CAAEC,CAAY,CAAEkmR,CAAgB,EAC3G,MAAO,CAAC,CAAC,EAAE,IAAI,CAACvyQ,SAAS,CAAC7T,EAASkgP,EAAel4G,EAAUm+I,EAAWlmR,EAAWC,EAAckmR,GAAkB,CAAC,EAGvHC,SAAU,SAAU7gR,CAAG,EACnB,GAAIlF,EAAagmR,KAAK,CAAE,CACpB,IAAMX,EAAc,KAAMzwR,IAAI,CAACsQ,GAAa,IAAN,IACtCA,GAAO,CAAC,EAAEmgR,EAAY,MAAM,EAAErlR,EAAagmR,KAAK,CAAC,CAAC,CAGtD,OAAO9gR,CACX,EAEAlB,QAAS,SAAUkB,CAAG,EAClB,MAAO,CAAC,CAAEggR,CAAAA,EAAmBhgR,EAAK,OAASggR,EAAmBhgR,EAAK,WAAU,CACjF,EAEAuoF,SAAU,SAAUvoF,CAAG,EACnB,MAAO,aAAatQ,IAAI,CAACsQ,EAC7B,EAEAq7E,SAAU,SAAUr7E,CAAG,EACnB,MAAO,aAAatQ,IAAI,CAACsQ,EAC7B,EAEAygK,iBAAkB,SAAUzgK,CAAG,QAC3B,CAAIA,MAAAA,CAAG,CAAC,EAAE,EAAYA,KAAAA,EAAIxN,OAAO,CAAC6U,EAAQmyB,QAAQ,CAACqhJ,MAAM,CAAO,GAIzDklG,EAAWryO,IAAI,CAAC,GAAeqzO,EAAUrxR,IAAI,CAACsQ,GACzD,EAEA8K,uBAAwB,SAAUsD,CAAI,EAClC,OAAO,IAAI,CAAC4yQ,oBAAoB,CAAC5yQ,GAAQ,oBAAsB,sBACnE,EAEA4yQ,qBAAsB,SAAU5yQ,CAAI,EAChC,MAAO,CAAC,mCAAmC1e,IAAI,CAAC0e,EACpD,EAEAa,yBAA0B,SAAUzU,CAAO,CAAEuE,CAAQ,EACjD,IAAIkiR,EAAWhB,EAAYlhR,SAE3B,WAAIkiR,GAIG,OAAW,IAAMA,EAAW,IAAMzmR,GAAS9K,IAAI,CAAC6X,EAAU6G,IAAI,GACzE,EAEA0jO,WAAY,SAAU1jO,CAAI,EACtB,IAAI8yQ,EAAY9yQ,EAAK5b,OAAO,CAAC,KAC7B,OAAO0uR,KAAAA,EAAmB9yQ,EAAKvc,KAAK,CAACqvR,EAAY,GAAK9yQ,CAC1D,EAEA+yQ,wBAAyB,WACrB,OAAOrmR,EAAaL,SAAS,CAAG,cAAgBK,EAAaL,SAAS,CAAG,EAC7E,EAEAk4L,sBAAuB,WACnB,OAAO73L,EAAaL,SAAS,CAAGK,EAAaL,SAAS,CAAG,EAC7D,EAEAulR,mBAAoBA,EAEpBoB,MAAO,SAAUnyR,CAAK,EAClB,MAAO,iBAAiBS,IAAI,CAACT,EACjC,EAEA+xK,sBAAuB,SAAUhgK,CAAK,EAClC,MAAO,CAAC,EAAEw4B,SAASqhJ,MAAM,CAAC,EAAErhJ,SAAS6nP,QAAQ,CAAC,EAAErgR,EAAM,CAAC,EAG3D+hK,oBAAqB,SAAU/iK,CAAG,EAC9B,IAAMkhR,EAAYlhR,EAAIxN,OAAO,CAAC,YAC9B,KAAI0uR,GAAoBlhR,EAAInO,KAAK,CAAC,EAAGqvR,KAAe,CAAC,EAAE1nP,SAASqhJ,MAAM,CAAC,EAAErhJ,SAAS6nP,QAAQ,CAAC,CAAC,CACjF,GAGJrhR,EAAInO,KAAK,CAACqvR,EACrB,CACJ,CACJ,EAxV8BrmR,EAAOwM,EAASE,EAAWzM,EAAc+L,EAAItC,EAAiBs7Q,EACpF,EACH,E,4CCbL,SAASt/C,EAAczlO,CAAY,CAAEwoB,CAAiB,CAAE/2B,CAAO,CAAEyO,CAAU,EAGvE,IAAI,CAACgqC,gBAAgB,CA2CrB,SAA0BtkC,CAAE,EACxB,OAAO4iB,EAAkB0hB,gBAAgB,CAACtkC,GAAIxR,IAAI,CAAC,SAAU0M,CAAQ,SAEjE,GAAgBA,EAAShI,IAAI,EACrBrH,EAAQ62C,eAAe,CAACxnC,EAAShI,IAAI,CAAC+sN,QAAQ,GAC9C/kN,CAAAA,EAAShI,IAAI,CAAC+sN,QAAQ,CAAG/kN,EAAShI,IAAI,CAAC+sN,QAAQ,CAAClrN,GAAG,CAAC6rR,EAAkB,EAEnE1lR,EAAShI,IAAI,EAEjB,IACX,EACJ,EArDA,IAAI,CAAC2tR,iBAAiB,CA0EtB,SAA2B9mR,CAAS,EAEhC,GAAI,QAAQ/K,IAAI,CAAC+K,GAAY,CACzB,IAAI+mR,EAAcC,EAAgBhnR,GAElC,MAAO,CAAC,CAAE+mR,CAAAA,GAAeA,GAAe37Q,KAAKq4C,GAAG,EAAC,CACrD,CAEA,MAAO,EACX,EAlFA,IAAI,CAACwjO,2BAA2B,CAkEhC,SAAqC1hR,CAAG,EACpC,IAAI2hR,EAAW3hR,EAAIuG,WAAW,GAC9B,OAAOq7Q,EAAuBl0O,IAAI,CAAC,SAAUm0O,CAAM,EAC/C,OAAOF,KAAAA,EAASnvR,OAAO,CAACqvR,EAAOt7Q,WAAW,GAC9C,EACJ,EAtEA,IAAI,CAAC0+N,sBAAsB,CAAGA,EAC9B,IAAI,CAACw8C,eAAe,CAAGA,EACvB,IAAI,CAACK,wCAAwC,CAAGA,EAKhD,IAAIF,EAAyB,CAAC,sCAAsC,CAEhEG,EAAqB,CACrB54Q,EAAAA,CAAeA,CAACC,KAAK,CAACk1B,YAAY,CAClCn1B,EAAAA,CAAeA,CAACC,KAAK,CAACq1B,IAAI,CAC1Bt1B,EAAAA,CAAeA,CAACC,KAAK,CAAC+0B,kBAAkB,CACxCh1B,EAAAA,CAAeA,CAACC,KAAK,CAACw0D,UAAU,CAChCz0D,EAAAA,CAAeA,CAACC,KAAK,CAAC8e,IAAI,CAC1B/e,EAAAA,CAAeA,CAACC,KAAK,CAACu3C,aAAa,CACnCx3C,EAAAA,CAAeA,CAACC,KAAK,CAAC01B,IAAI,CAC1B31B,EAAAA,CAAeA,CAACC,KAAK,CAACi0B,aAAa,CACnCl0B,EAAAA,CAAeA,CAACC,KAAK,CAACE,QAAQ,CAC9BH,EAAAA,CAAeA,CAACC,KAAK,CAACC,iBAAiB,CAC1C,CAEG24Q,EAAsB,CACtB74Q,EAAAA,CAAeA,CAACkoF,SAAS,CAACC,QAAQ,CAClCnoF,EAAAA,CAAeA,CAACkoF,SAAS,CAACE,WAAW,CACrCpoF,EAAAA,CAAeA,CAACkoF,SAAS,CAACG,MAAM,CAChCroF,EAAAA,CAAeA,CAACkoF,SAAS,CAACM,UAAU,CACpCxoF,EAAAA,CAAeA,CAACkoF,SAAS,CAACS,KAAK,CAC/B3oF,EAAAA,CAAeA,CAACkoF,SAAS,CAACU,QAAQ,CAClC5oF,EAAAA,CAAeA,CAACkoF,SAAS,CAACY,kBAAkB,CAC5C9oF,EAAAA,CAAeA,CAACkoF,SAAS,CAACe,WAAW,CACrCjpF,EAAAA,CAAeA,CAACkoF,SAAS,CAACgB,aAAa,CACvClpF,EAAAA,CAAeA,CAACkoF,SAAS,CAACiB,OAAO,CACjCnpF,EAAAA,CAAeA,CAACkoF,SAAS,CAACmB,IAAI,CACjC,CAEGsvL,EAA2C,CAAC34Q,EAAAA,CAAeA,CAACC,KAAK,CAACgoF,YAAY,CAAEjoF,EAAAA,CAAeA,CAACC,KAAK,CAAC+nF,YAAY,CAAC,CAiBvH,SAASmwL,EAAmBW,CAAe,EACvC,MAAO,CACHhhR,GAAIghR,EAAgBhhR,EAAE,CACtB64D,SAAUmoN,EAAgBnoN,QAAQ,CAClCooN,WAAYD,EAAgBC,UAAU,CACtCC,eAAgBF,EAAgBE,cAAc,CAC9CxzP,SAAUszP,EAAgBtzP,QAAQ,CAClCyzP,UAAWH,EAAgBG,SAAS,CACpCt7M,IAAK9rE,EAAW0nK,aAAa,CAACu/G,EAAgBhhR,EAAE,CAAEghR,EAAgBtzP,QAAQ,CAAE,GAAM,GAAOszP,EAAgBG,SAAS,CACtH,CACJ,CAyBA,SAASX,EAAgBhnR,CAAS,EAC9B,IAAI8lR,EAAe9lR,KAAc/H,IAAd+H,EAA0BA,EAAYK,EAAaL,SAAS,QAE/E,KAAqB/H,IAAjB6tR,EACO,EAGJ9lR,GAAa,IAAQA,EAAYq1C,KAAKC,KAAK,CAAC1rB,SAASk8P,EAAc,IAAM,IACpF,CAEA,SAASt7C,EAAuBlmO,CAAQ,CAAEkd,CAAO,EAC7C,OAAO8lQ,EAAmB7vR,QAAQ,CAAC6M,IAAa,CAACijR,EAAoB9vR,QAAQ,CAAC+pB,EAClF,CAEA,SAAS6lQ,EAAyC/iR,CAAQ,CAAEkd,CAAO,QAC/D,CAAIgpN,EAAuBlmO,EAAUkd,IAG9B6lQ,EAAyC5vR,QAAQ,CAAC6M,EAC7D,CACJ,C,2BArHAhM,EAAAA,CAAUA,CAACC,OAAO,CAAC,gBAAiButO,GACpCA,EAActtO,OAAO,CAAG,CAAC,eAAgB,oBAAqB,UAAW,aAAa,E,iJCStF,SAASutO,EAAiB3lO,CAAK,CAAE0J,CAAe,CAAEvJ,CAAU,CAAEwM,CAAK,CAAE5M,CAAoB,CAAEsiC,CAAkB,CAAEr2B,CAAE,CAAEstO,CAAqB,CAAE3rD,CAAoB,YAC1J,KAAI,CAAC65F,YAAY,CAAG,SAACC,CAAU,EAAVA,IAAY5nR,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAe,KAC5C,OAAOG,EAAMiB,GAAG,CAAC,CAAC,EAAEyI,EAAgByC,YAAY,CAAC,iCAAiC,EAAEs7Q,EAAW,cAAc,EAAE5nR,EAAa,CAAC,EAAExL,IAAI,CAAC,IAChI,IAAM0E,EAAOgI,EAAShI,IAAI,CAE1B,OADAA,EAAKukI,MAAM,CAAGvkI,EAAKukI,MAAM,CAAC1iI,GAAG,CAAC,GAAW,EAAK8sR,+BAA+B,CAAC7/H,IACvE9uJ,CACX,EACJ,EAQA,IAAI,CAAC2uR,+BAA+B,CAAG,IAC/B7/H,EAAMvqB,MAAM,CAACpoI,MAAM,EACnB2yJ,EAAMvqB,MAAM,CAAC1iI,GAAG,CAAC,GAAW,IAAI,CAAC8sR,+BAA+B,CAAC7/H,IAGrEA,EAAMtqB,SAAS,CAAGsqB,EAAM8/H,YAAY,CAAC/sR,GAAG,CAAC,IACrCgtR,EAAWrhJ,OAAO,CAAGqhJ,EAAW7/H,QAAQ,CACjC6/H,IAGX,OAAO//H,EAAM8/H,YAAY,CAClB9/H,GAGX,IAAI,CAACsgF,iBAAiB,CAAG,SAACxoO,CAAO,EAAPA,IAClBkoR,EAD2BC,EAAAA,CAAAA,CAAAA,UAAAA,MAAAA,CAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CAG/B,GAAKA,EASDD,EAAiBxlP,EAAmB8oB,UAAU,CAACxrD,OAT/B,CAChB,IAAIsjC,EAAUZ,EAAmBwP,MAAM,CAAClyC,GAExC,GAAIsjC,MAAAA,EACA,OAAOj3B,EAAGrT,OAAO,CAAC,IAGtBkvR,EAAiB77Q,EAAGrT,OAAO,CAACsqC,EAChC,CAIA,OAAO4kP,EACFxzR,IAAI,CAAC,GACF,EAAI4uC,EAAQlqC,IAAI,CAAC+6B,QAAQ,GAAKxlB,EAAAA,CAAeA,CAACC,KAAK,CAACC,iBAAiB,EAIjEm/K,EAAqBpkL,oBAAoB,CAAC2M,QAAQ,CAAC+sB,EAAQlqC,IAAI,CAACgqC,WAAW,OAI3EE,EAAQlqC,IAAI,CAACsiB,OAAO,GAAK/M,EAAAA,CAAeA,CAACkoF,SAAS,CAACqB,SAAS,EAKvC5lC,IADFz8C,EAAAA,CAAeA,CAACytB,EAAQlqC,IAAI,CAAC6hB,KAAK,EACrBvjB,QAAQ,CAAC,GAAOif,EAAEyxQ,WAAW,GAAKz5Q,EAAAA,CAAeA,CAACkoF,SAAS,CAACqB,SAAS,IAQ5G3+F,KAAK,CAAC,IACI,GAEnB,EAEA,IAAI,CAAC8uR,yBAAyB,CAAG,GAGtBH,EAFmC18N,UAAU,CAACxrD,GAE/BtL,IAAI,CAAC,IACvB,IAAMW,EAAWiuC,EAAQlqC,IAAI,CAACs+D,QAAQ,QAEtC,KAAiBx/D,IAAb7C,GAIGA,EAAS69C,IAAI,CAChB,GACI/7C,EAAQukE,WAAW,GAAK4sN,EAAAA,CAAiBA,CAAC15Q,KAAK,CAAC22D,mBAAmB,EACnEpuE,EAAQukE,WAAW,GAAK4sN,EAAAA,CAAiBA,CAAC15Q,KAAK,CAACspF,SAAS,EACzD/gG,EAAQukE,WAAW,GAAK4sN,EAAAA,CAAiBA,CAAC15Q,KAAK,CAACsrF,oBAAoB,CAEhF,GAGJ,IAAI,CAACquL,uBAAuB,CAAG,CAACpnO,EAAQnhD,IAC7BK,EAAMiB,GAAG,CAAC,CAAC,EAAEyI,EAAgByC,YAAY,CAAC,0CAA0C,EAAE20C,EAAO,SAAS,EAAEnhD,EAAQ,CAAC,EAAEtL,IAAI,CAAC,GAC9G0M,EAAShI,IAAI,CAAC6B,GAAG,CAAC,IAC3B8zB,EAAK4uG,MAAM,CAAG5uG,EAAK4uG,MAAM,CAAC1iI,GAAG,CAAC,GAAW,IAAI,CAAC8sR,+BAA+B,CAAC7/H,IACvEn5H,KAMnB,IAAI,CAAC+9H,8BAA8B,CAAG,SAAC9sJ,CAAO,EAAPA,IAASE,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAe,KAC3D,OAAOG,EAAMiB,GAAG,CAAC,CAAC,EAAEyI,EAAgByC,YAAY,CAAC,gDAAgD,EAAExM,EAAQ,cAAc,EAAEE,EAAa,CAAC,EAAExL,IAAI,CAAC,GACrI0M,EAAShI,IAAI,CAAC6B,GAAG,CAAC,IACrB8zB,EAAK4uG,MAAM,CAAG5uG,EAAK4uG,MAAM,CAAC1iI,GAAG,CAAC,GAAW,EAAK8sR,+BAA+B,CAAC7/H,IACvEn5H,IAGnB,EAEA,IAAI,CAACy5P,oBAAoB,CAAG,GACjBC,EAAsBxtR,GAAG,CAAC,GACtB,EACHqC,OAAQqyO,EAAOryO,MAAM,CACrBmhI,WAAYkxG,EAAOlxG,UAAU,CAC7BC,cAAeixG,EAAO5yG,SAAS,CAC/BA,UAAW4yG,EAAO5yG,SAAS,CAC3BnnD,WAAY+5J,EAAO+4C,aAAa,EAAI/4C,EAAO/5J,UAAU,CACrDq2E,OAAQ0jF,EAAO1jF,MAAM,IAKjC,IAAI,CAACuB,YAAY,CAAG,GACThtJ,EAAW6oC,YAAY,CAAC,CAAC,EAAEt/B,EAAgByC,YAAY,CAAC,qBAAqB,CAAC,CAAEovH,GAG3F,IAAI,CAAC+sJ,sBAAsB,CAAG,SAACvwE,CAAY,CAAEwwE,CAAe,EAAfA,IAAiB3rR,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAa,KACvE,OAAOm7M,EAAa11F,MAAM,CAAC,CAAC2qC,EAAa46H,KACrC,IAAMY,EAAY,CACd5tQ,MAAO,EAAE,CACT+sQ,aAAc,EAAE,CAChB9qR,WAAY+qR,EAAW/qR,UAAU,EAAI+qR,EAAWxpJ,UAAU,CAC1DnhI,OAAQ2qR,EAAWv0Q,OAAO,EAAIu0Q,EAAW3qR,MAAM,EAG7CwrR,EAAeb,EAAW/qR,UAAU,EAAID,EAoC9C,MAlCIgrR,SAAAA,EAAW9zP,QAAQ,CACf8zP,EAAWtqJ,MAAM,CAACpoI,MAAM,CAAG,GAC3BszR,CAAAA,EAAUb,YAAY,CAAGC,EAAWtqJ,MAAM,CAAC,EAAE,CAACC,SAAS,CAAClb,MAAM,CAAC,CAACqmK,EAAMh6P,KAClE,IAAIi6P,EAAgBJ,EAAgBnyR,IAAI,CAAC,GAAYqyR,IAAiBG,EAAO/rR,UAAU,EAAI+rR,EAAOlsJ,SAAS,GAAKhuG,EAAKguG,SAAS,EAO9H,OANsB7kI,KAAAA,IAAlB8wR,GACAD,EAAK/uR,IAAI,CAAC,CACN+iI,UAAWisJ,EAAcjsJ,SAAS,CAClC+C,cAAekpJ,EAAclpJ,aAAa,GAG3CipJ,CACX,EAAG,EAAE,GAGLd,KAAsB/vR,IAAtB+vR,EAAWtqJ,MAAM,EAAkBsqJ,EAAWtqJ,MAAM,CAACpoI,MAAM,CAAG,EAC9DszR,EAAU5tQ,KAAK,CAAG,EAAK0tQ,sBAAsB,CAACV,EAAWtqJ,MAAM,CAAEirJ,EAAiBE,GAClD5wR,KAAAA,IAAzB+vR,EAAWrqJ,SAAS,EAAkBqqJ,EAAWrqJ,SAAS,CAACroI,MAAM,CAAG,GAC3EszR,CAAAA,EAAUb,YAAY,CAAGC,EAAWrqJ,SAAS,CAAClb,MAAM,CAAC,CAACqmK,EAAMh6P,KACxD,IAAMi6P,EAAgBJ,EAAgBnyR,IAAI,CAAC,GAAYqyR,IAAiBG,EAAO/rR,UAAU,EAAI+rR,EAAO3rR,MAAM,GAAK2qR,EAAW3qR,MAAM,EAAI2rR,EAAOlsJ,SAAS,GAAKhuG,EAAKguG,SAAS,EAQvK,OAPsB7kI,KAAAA,IAAlB8wR,GACAD,EAAK/uR,IAAI,CAAC,CACN+iI,UAAWisJ,EAAcjsJ,SAAS,CAClC+C,cAAekpJ,EAAclpJ,aAAa,GAI3CipJ,CACX,EAAG,EAAE,GAIT,MAAqB7wR,IAArB,EAAW+iB,KAAK,EAAkB4tQ,EAAU5tQ,KAAK,CAAC1lB,MAAM,CAAG,GAAOszR,KAA2B3wR,IAA3B2wR,EAAUb,YAAY,EAAkBa,EAAUb,YAAY,CAACzyR,MAAM,CAAG,IAC1I83J,EAAYrzJ,IAAI,CAAC6uR,GAEdx7H,CACX,EAAG,EAAE,CACT,EAEA,IAAI,CAAC67H,6BAA6B,CAAG,CAAClpR,EAASw7H,EAAe2tJ,EAAWC,EAAaC,KAClF,IAAM96Q,EAAW,EAAE,CACb6tF,EAAWjgG,EAAAA,CAA0BA,CAACggG,wBAAwB,CAACC,QAAQ,CACvEI,EAAcrgG,EAAAA,CAA0BA,CAACggG,wBAAwB,CAACK,WAAW,CAC7EF,EAAcngG,EAAAA,CAA0BA,CAACggG,wBAAwB,CAACG,WAAW,CAEnF,GAAI+sL,EAAsB9zR,MAAM,CAAG,EAAG,CAClC,IAAM+zR,EAA2B,CAC7BzpJ,mBAAoB7/H,EACpBs2M,SAAU,IAAI,CAACqyE,sBAAsB,CAACntJ,EAAe6tJ,EACzD,EAEA96Q,EAASvU,IAAI,CACT,IAAI,CAACuvR,mBAAmB,CAACD,GACpB50R,IAAI,CAAC,IAAMyH,EAAAA,CAA0BA,CAACggG,wBAAwB,CAACM,cAAc,EAC7EljG,KAAK,CAAC,IAAMijG,GAEzB,CAEA,GAAI2sL,EAAU5zR,MAAM,CAAG,EAAG,CACtB,IAAMi0R,EAAwB,CAC1B3pJ,mBAAoB7/H,EACpBs2M,SAAU,IAAI,CAACqyE,sBAAsB,CAACntJ,EAAe2tJ,EACzD,EAEA56Q,EAASvU,IAAI,CACT,IAAI,CAACyvR,gBAAgB,CAACD,GACjB90R,IAAI,CAAC,IAAMyH,EAAAA,CAA0BA,CAACggG,wBAAwB,CAACE,WAAW,EAC1E9iG,KAAK,CAAC,IAAM6iG,GAEzB,CAEA,GAAIgtL,EAAY7zR,MAAM,CAAG,EAAG,CACxB,IAAMm0R,EAA2B,CAC7B7pJ,mBAAoB7/H,EACpBs2M,SAAU,IAAI,CAACqyE,sBAAsB,CAACntJ,EAAe4tJ,EACzD,EAEA76Q,EAASvU,IAAI,CACT,IAAI,CAAC2vR,mBAAmB,CAACD,GACpBh1R,IAAI,CAAC,IAAMyH,EAAAA,CAA0BA,CAACggG,wBAAwB,CAACI,cAAc,EAC7EhjG,KAAK,CAAC,IAAM+iG,GAEzB,CAEA,OAAOjwF,EAAGqC,GAAG,CAACH,GAAU7Z,IAAI,CAAC,IACzB,IAAMk1R,EAAkB,CAACxtL,EAAUI,EAAaF,EAAY,QAE5D,EADmCppD,IAAI,CAAC,GAAS02O,EAAgBrzQ,QAAQ,CAAC6+G,IAE/D/oH,EAAGpT,MAAM,CAACu2L,GAEdA,CACX,EACJ,EAEA,IAAI,CAAC+5F,mBAAmB,CAAG,GAChBlpR,EAAMc,IAAI,CAAC,CAAC,EAAE4I,EAAgByC,YAAY,CAAC,kBAAkB,CAAC,CAAEq9Q,GAG3E,IAAI,CAACJ,gBAAgB,CAAG,GACbppR,EAAM6B,GAAG,CAAC,CAAC,EAAE6H,EAAgByC,YAAY,CAAC,eAAe,CAAC,CAAEkzH,GAGvE,IAAI,CAACiqJ,mBAAmB,CAAG,GAChBtpR,EAAM,CACToH,OAAQ,SACRjC,IAAK,CAAC,EAAEuE,EAAgByC,YAAY,CAAC,kBAAkB,CAAC,CACxDpT,KAAM0wR,EACNpiR,QAAS,CAAE,eAAgB,kBAAmB,CAClD,GAGJ,IAAI,CAACqiR,iCAAiC,CAAG,IAAI1kP,IAE7C,IAAI,CAACsnH,oBAAoB,CAAG,SAAC3sJ,CAAO,EAAPA,IAASE,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAe,KAAMD,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAY,KAC7D9K,EAAM,CAAC,EAAE6K,EAAQ,CAAC,EAAEE,EAAa,CAAC,EAAED,EAAU,CAAC,CAC/Ck5C,EAAU,EAAK4wO,iCAAiC,CAACzoR,GAAG,CAACnM,GAC3D,GAAIgkD,KAAYjhD,IAAZihD,EACA,OAAOA,EAGX,IAAM7lB,EAAUjzB,EAAMiB,GAAG,CAAC,CAAC,EAAEyI,EAAgByC,YAAY,CAAC,sCAAsC,EAAExM,EAAQ,cAAc,EAAEE,EAAa,WAAW,EAAED,EAAU,CAAC,EAAEvL,IAAI,CAAC,IAClK,IAAM0E,EAAOgI,EAAShI,IAAI,CAK1B,OAJAA,EAAKwkI,SAAS,CAAGxkI,EAAKwkI,SAAS,CAAC3iI,GAAG,CAAC,IAChCyhI,EAASx/H,UAAU,CAAGw/H,EAAS9mD,UAAU,CAClC8mD,IAEJtjI,CACX,GAIA,OAFA,EAAK2wR,iCAAiC,CAAC5lO,GAAG,CAAChvD,EAAKm+B,GAChDA,EAAQ95B,OAAO,CAAC,IAAM0+B,WAAW,EAAK6xP,iCAAiC,CAAChnR,MAAM,CAAC5N,GAAM,MAC9Em+B,CACX,EAEA,IAAI,CAAC02P,kBAAkB,CAAG,CAACC,EAAmBC,EAAgBxuJ,KAC1D,GAAIA,EAAkBnmI,MAAM,CAAG,EAC3B,KAAK,IAAI6C,EAAI,EAAGA,EAAIsjI,EAAkBnmI,MAAM,CAAE6C,IAC1C,GAAIsjI,CAAiB,CAACtjI,EAAE,CAAC2kI,SAAS,GAAKktJ,GAAqBvuJ,CAAiB,CAACtjI,EAAE,CAACkF,MAAM,GAAK4sR,EACxF,MAAO,EAEf,CAER,EAEA,IAAI,CAACC,iBAAiB,CAAG,CAACjrR,EAAOwsF,EAAM0+L,KACnCp9Q,EAAM8H,MAAM,CACR,CAAC,EAAE/K,EAAgB6G,yBAAyB,CAAC,uDAAuD,CAAC,CACrG,CACI1R,MAAOA,EACP2oC,QAAS6jD,EACT5jD,aAAcsiP,CAClB,EACA,CACI35Q,WAAY,GACZ6qH,mBAAoB,EACxB,EAER,EAEA,IAAI,CAACx3H,aAAa,CAAG,GACV1D,EAAqB0D,aAAa,CAAC1K,GAG9C,IAAI,CAACwK,wBAAwB,CAAG,CAAC5D,EAAS3C,EAAQ6C,EAAcD,IACrD05O,EACFnrD,kBAAkB,CAACxuL,GACnBtL,IAAI,CAAC,IACF,IAAM21R,EAAsB,IAAI,CAACC,uBAAuB,CAAC9yR,GAEzD,OAAO4I,EAAqBwD,wBAAwB,CAAC5D,EAAS3C,EAAQ6C,EAAcD,EADhEoqR,OAAAA,EAA+B,EAAE,CAAG,CAACA,EAAoB,CAEjF,GACC31R,IAAI,CAAC,GAAc0M,EAAShI,IAAI,EAGzC,IAAI,CAAC4K,yBAAyB,CAAG,CAAChE,EAAS3C,EAAQ6C,EAAcD,IACtD05O,EACFnrD,kBAAkB,CAACxuL,GACnBtL,IAAI,CAAC,IACF,IAAM21R,EAAsB,IAAI,CAACC,uBAAuB,CAAC9yR,GAEzD,OAAO4I,EAAqB4D,yBAAyB,CAAChE,EAAS3C,EAAQ6C,EAAcD,EADjEoqR,OAAAA,EAA+B,EAAE,CAAG,CAACA,EAAoB,CAEjF,GACC31R,IAAI,CAAC,GAAc0M,EAAShI,IAAI,EAGzC,IAAI,CAAC6K,wBAAwB,CAAG,CAACjE,EAAS3C,EAAQ6C,EAAcD,IACrD05O,EACFnrD,kBAAkB,CAACxuL,GACnBtL,IAAI,CAAC,IACF,IAAM21R,EAAsB,IAAI,CAACC,uBAAuB,CAAC9yR,GAEzD,OAAO4I,EAAqB6D,wBAAwB,CAACjE,EAAS3C,EAAQ6C,EAAcD,EADhEoqR,OAAAA,EAA+B,EAAE,CAAG,CAACA,EAAoB,CAEjF,GACC31R,IAAI,CAAC,GAAc0M,EAAShI,IAAI,EAGzC,IAAI,CAAC2K,qBAAqB,CAAG,CAAC/D,EAAS3C,EAAQ6C,EAAcD,IAClD05O,EACFnrD,kBAAkB,CAACxuL,GACnBtL,IAAI,CAAC,IACF,IAAM21R,EAAsB,IAAI,CAACC,uBAAuB,CAAC9yR,GAEzD,OAAO4I,EAAqB2D,qBAAqB,CAAC/D,EAAS3C,EAAQ6C,EAAcD,EAD7DoqR,OAAAA,EAA+B,EAAE,CAAG,CAACA,EAAoB,CAEjF,GACC31R,IAAI,CAAC,GAAc0M,EAAShI,IAAI,EAGzC,IAAI,CAACkxR,uBAAuB,CAAG,GAC3B,OAAI9yR,GAAoBA,EAAO03L,YAAY,CAIpC,KAHI13L,CAKnB,CAnWAe,EAAAA,CAAUA,CAACC,OAAO,CAAC,mBAAoBwtO,GAEvCA,EAAiBvtO,OAAO,CAAG,CAAC,QAAS,kBAAmB,aAAc,QAAS,uBAAwB,qBAAsB,KAAM,wBAAyB,uBAAuB,E,qGCLnLF,EAAAA,CAAUA,CAACy0B,OAAO,CAAC,kBAAmB,CAClC,UACA,aACA,OACA,YACA,KACA,uBACA,QACA,eACA,kBACA,qBACA,uBACA,gBACA,SAAUtiB,CAAO,CAAED,CAAU,CAAEX,CAAI,CAAEiD,CAAS,CAAEV,CAAE,CAAEpQ,CAAoB,CAAE+Q,CAAK,CAAEmmC,CAAY,CAAEppC,CAAe,CAAE24B,CAAkB,CAAEiuI,CAAoB,CAAEqG,CAAa,EACnK,MAAO,CACHuzG,qBAAsB,SAAU9rN,CAAa,EACzC,IAAI+rN,EAAe,GA0CnB,OAvCI/rN,OAAAA,EAAc0Q,MAAM,CAACigF,WAAW,EAAa3wF,KAAqCvmE,IAArCumE,EAAc0Q,MAAM,CAACigF,WAAW,CAC7Eo7H,GAAgBvuR,EAAqBS,SAAS,CAAC,+CAAgD,CAAEwC,MAAOu/D,EAAc0Q,MAAM,CAACigF,WAAW,CAACp2I,KAAK,GAG9IwxQ,GAAgB,IAAI,CAACC,mBAAmB,CAAChsN,GAIzCA,EAAc0Q,MAAM,CAAC+/E,QAAQ,EAAIzwF,EAAc0Q,MAAM,CAAC+/E,QAAQ,CAAC35J,MAAM,CAAG,GACxEi1R,CAAAA,GACIE,MACAzuR,EAAqBS,SAAS,CAAC,2CAA4C,CACvE2B,MAAOogE,EAAc0Q,MAAM,CAAC+/E,QAAQ,CAAC35J,MAAM,CAC3CurB,SAAU29C,EAAc0Q,MAAM,CAAC+/E,QAAQ,IAK/CzwF,EAAc0Q,MAAM,CAACljC,IAAI,EAAIwyB,EAAc0Q,MAAM,CAACljC,IAAI,CAAC12C,MAAM,CAAG,GAChEi1R,CAAAA,GAAgBE,MAASzuR,EAAqBS,SAAS,CAAC,yCAA0C,CAAEwkB,KAAMu9C,EAAc0Q,MAAM,CAACljC,IAAI,IAInIwyB,EAAc0Q,MAAM,CAACogF,YAAY,EACjCi7H,CAAAA,GACIE,MAASzuR,EAAqBS,SAAS,CAAC,gDAAiD,CAAEiuR,aAAcjgR,EAAQ,cAAc+zD,EAAc0Q,MAAM,CAACogF,YAAY,CAACC,SAAS,CAAE,EAAC,EAIjL/wF,EAAc0Q,MAAM,CAACsgF,aAAa,EAClC+6H,CAAAA,GACIE,MACAzuR,EAAqBS,SAAS,CAAC,iDAAkD,CAAEkuR,cAAelgR,EAAQ,cAAc+zD,EAAc0Q,MAAM,CAACsgF,aAAa,CAACD,SAAS,CAAE,EAAC,EAG3K/wF,EAAc0Q,MAAM,CAACmgF,qBAAqB,EAC1Ck7H,CAAAA,GAAgBE,MAASzuR,EAAqBS,SAAS,CAAC,iDAAgD,EAGrG8tR,CACX,EAEAC,oBAAqB,SAAUhsN,CAAa,EACxC,IAAIppD,EAAOopD,EAAc0Q,MAAM,CAACzzD,OAAO,EAAI+iD,EAAch/C,MAAM,CAAC4vI,QAAQ,CAExE,GAAI,CAACh6I,EAED,OAAOpZ,EAAqBS,SAAS,CAAC,4CAG1C,IAAImuR,EAAO,CACPj7I,YAAa3zI,EAAqBS,SAAS,CAAC,6CAC5CizI,uBAAwB1zI,EAAqBS,SAAS,CAAC,2CACvD6yI,KAAMtzI,EAAqBS,SAAS,CAAC,qCACrCyE,KAAMlF,EAAqBS,SAAS,CAAC,qCACrCgzI,SAAUzzI,EAAqBS,SAAS,CAAC,0CACzC+yI,aAAcxzI,EAAqBS,SAAS,CAAC,qCAC7C8yI,iBAAkBvzI,EAAqBS,SAAS,CAAC,yCACjD2lM,UAAWpmM,EAAqBS,SAAS,CAAC,0CAC1CulM,WAAYhmM,EAAqBS,SAAS,CAAC,2CAC3CwlM,KAAMjmM,EAAqBS,SAAS,CAAC,qCACrCi/H,WAAY1/H,EAAqBS,SAAS,CAAC,2CAC3C0lM,OAAQnmM,EAAqBS,SAAS,CAAC,uCACvCy1H,KAAMl2H,EAAqBS,SAAS,CAAC,qCACrCwyF,MAAOjzF,EAAqBS,SAAS,CAAC,sCACtCozJ,MAAO7zJ,EAAqBS,SAAS,CAAC,sCACtCqzJ,MAAO9zJ,EAAqBS,SAAS,CAAC,iCAAkC,CAAE2B,MAAO,CAAE,GACnF,eAAgBpC,EAAqBS,SAAS,CAAC,uCAAwC,CAAE2B,MAAO,CAAE,GAClGysR,UAAW7uR,EAAqBS,SAAS,CAAC,2CAC1CquR,WAAY9uR,EAAqBS,SAAS,CAAC,6CAC3CsuR,UAAW/uR,EAAqBS,SAAS,CAAC,2CAC9C,EAGA,MAAOuuR,CADS51Q,EAAOw1Q,CAAI,CAACx1Q,EAAKtJ,WAAW,GAAG,CAAG,EAAC,GAC/BsJ,CACxB,EAEA61Q,sBAAuB,SAAU9pR,CAAQ,EACrC,IAAI+xD,EAAgB1oD,EAAWwF,IAAI,CAAC,IAIpC,OAHAkjD,EAAcg4N,iBAAiB,CAAG,WAC9Bp+Q,EAAU6G,IAAI,CAAC,UAAU2uB,MAAM,CAAC,CAAEltB,KAAM,UAAW,EACvD,EACO89B,EAAaw6I,4BAA4B,CAACvsL,EAASuhC,KAAK,CAACjE,YAAY,EAAEhqC,IAAI,CAC9E,SAAU0M,CAAQ,EACd+xD,EAAc0xH,2BAA2B,CAAG96K,EAAgB6G,yBAAyB,CAAG,iEACxFuiD,EAAcmxH,aAAa,CAAGx6K,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,+BACrGuiD,EAAcnb,eAAe,CAAGluC,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,iCACvGuiD,EAAcpb,cAAc,CAAGjuC,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,gCACtGuiD,EAAckxH,gBAAgB,CAAGv6K,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,kCACxGuiD,EAAcoxH,iBAAiB,CAAGz6K,EAAKmU,qBAAqB,CAAClU,EAAgB6G,yBAAyB,CAAG,mCAEzGuiD,EAAc60H,kBAAkB,CAAG5mL,EAAShI,IAAI,CAChD+5D,EAAc60H,kBAAkB,CAACojG,gBAAgB,CAAG,GACpDj4N,EAAck4N,SAAS,CAAG,GAC1Bl4N,EAAcu2H,mBAAmB,CAAGztL,EAAqBS,SAAS,CAAC,uCAAwC,CACvGitL,gBAAiBx2H,EAAc60H,kBAAkB,CAAC4B,mBAAmB,CACrEC,iBAAkB12H,EAAc60H,kBAAkB,CAAC8B,kBAAkB,CACrEzrL,MAAO80D,EAAc60H,kBAAkB,CAAC4B,mBAAmB,GAG/Dz2H,EAAc9gE,OAAO,CAAG,WACpB8gE,EAAc5iD,QAAQ,EAC1B,EAEAvD,EAAMwD,QAAQ,CACV,CACIvG,MAAOkpD,EACPxiD,YAAa5G,EAAgB6G,yBAAyB,CAAG,wEACzDF,aAAc,EAClB,EACA,GAER,EACA,SAAUpX,CAAS,EACf,IAAIqb,EAAWtI,EAAGuI,KAAK,GAmBvB,OAjBAu+C,EAAcj0D,KAAK,CAAGjD,EAAqBS,SAAS,CAAC,uCACrDy2D,EAActrB,OAAO,CAAG5rC,EAAqBS,SAAS,CAAC,qDACvDy2D,EAAcrrB,YAAY,CAAG7rC,EAAqBS,SAAS,CAAC,mBAC5Dy2D,EAAc9gE,OAAO,CAAG,WACpBsiB,EAAS1b,MAAM,GACfk6D,EAAcg4N,iBAAiB,GAC/Bh4N,EAAc5iD,QAAQ,EAC1B,EAEAvD,EAAMwD,QAAQ,CACV,CACIvG,MAAOkpD,EACPxiD,YAAa3D,EAAMouH,gBAAgB,CAACC,KAAK,EAE7C,IAGG1mH,EAAS/b,OAAO,EAGnC,EAEAq1M,kBAAmB,SAAUj5L,CAAI,EAC7B,IAAIs2Q,EAAgB,GAEpB,OAAQt2Q,EAAKwB,QAAQ,EACjB,KAAK7H,EAAAA,CAAeA,CAACC,KAAK,CAACk1B,YAAY,CACnC,IAAIm3F,EAAYjmH,EAAKu2Q,SAAS,CAC9BD,EAAgBrwJ,GAAa,CAAEA,CAAAA,EAAUptD,WAAW,EAAIotD,EAAUntD,YAAY,GAAK94D,EAAKu2Q,SAAS,CAACC,qBAAqB,CACvH,KACJ,MAAK78Q,EAAAA,CAAeA,CAACC,KAAK,CAAC+0B,kBAAkB,CACzC2nP,EAAgBt2Q,EAAKu2Q,SAAS,EAAIv2Q,EAAKu2Q,SAAS,CAACC,qBAAqB,CACtE,KACJ,MAAK78Q,EAAAA,CAAeA,CAACmI,aAAa,CAACC,SAAS,CAC5C,KAAKpI,EAAAA,CAAeA,CAACC,KAAK,CAACw0D,UAAU,CACjCkoN,EAAgB,GAChB,KACJ,SACIA,EAAgB,EAExB,CAEA,MAAO,CAAC,CAACA,CACb,EAEAt9E,eAAgB,SAAUh5L,CAAI,EAC1B,OAAOA,EAAKwB,QAAQ,GAAK7H,EAAAA,CAAeA,CAACC,KAAK,CAACs3C,IAAI,EAAIlxC,EAAKwB,QAAQ,GAAK7H,EAAAA,CAAeA,CAACC,KAAK,CAACu3C,aAAa,EAGhHslO,oBAAqB,SAAUzrR,CAAO,CAAEjL,CAAM,CAAE22R,CAAQ,EACpD,IAAIpoP,EAAUZ,EAAmBwP,MAAM,CAAClyC,GACpCmzD,EAAgB1oD,EAAWwF,IAAI,CAAC,GACpCkjD,CAAAA,EAAcj0D,KAAK,CAAGwsR,CAAa,IAAbA,EAAoBzvR,EAAqBS,SAAS,CAAC,kBAAoBT,EAAqBS,SAAS,CAAC,mBAC5Hy2D,EAAcw4N,aAAa,CAAG1vR,EAAqBS,SAAS,CAAC,mBAC7Dy2D,EAAcy4N,YAAY,CAAG3vR,EAAqBS,SAAS,CAAC,kBAC5D4mC,KAAAA,EAAQlqC,IAAI,CAAC4f,KAAK,CAAWm6C,EAAcyxJ,UAAU,CAAGthL,EAAQlqC,IAAI,CAAC4f,KAAK,CAAKm6C,EAAcyxJ,UAAU,CAAG3oN,EAAqBS,SAAS,CAAC,6BAEzIy2D,EAAcq8H,QAAQ,CAAG,CACrBvzL,EAAqBS,SAAS,CAAC,8BAA+B,CAC1DmvR,WAAY14N,EAAcj0D,KAAK,CAC/B0lN,WAAYzxJ,EAAcyxJ,UAAU,GAE3C,CAEDzxJ,EAAclzC,OAAO,CAAG,CACpB,CACIlrB,OAAQqqB,QAAQ4C,IAAI,CACpBgY,MAAOz6B,EAAAA,CAAWA,CAACC,QAAQ,CAC3BoxH,KAAMz9D,EAAcy4N,YAAY,EAEpC,CACI72R,OAAQA,EACRilC,MAAOz6B,EAAAA,CAAWA,CAACI,SAAS,CAC5BixH,KAAMz9D,EAAcw4N,aAAa,EAExC,CAEDx4N,EAAc9gE,OAAO,CAAG,WACpB8gE,EAAc5iD,QAAQ,EAC1B,EAEAvD,EAAMwD,QAAQ,CAAC,CACXvG,MAAOkpD,EACPxiD,YAAa5G,EAAgB6G,yBAAyB,CAAG,iFACzDF,aAAc,EAClB,EACJ,EAEAo7Q,6BAA8B,SAAUluH,CAAQ,CAAEmuH,CAAS,CAAEjlH,CAAQ,CAAEqT,CAAM,EACzE,IAAMtyI,EAAU,CAAC;gEAC+B,EAAE5rC,EAAqBS,SAAS,CAAC,iCAAiC;qDAC7E,EAAET,EAAqBS,SAAS,CAAC,0CAA2C,CAAE2Y,KAAMuoJ,CAAS,GAAG;gBACrI,CAAC,CAEK4T,EAAmBb,EAAqBc,sBAAsB,CAAC5pI,EAAS,GAAI,GAAI,IAChFtP,EAAU,CACZ,CACIq4F,KAAM30H,EAAqBS,SAAS,CAAC,mCACrC02G,QAAS24K,EACT1sR,UAAWpD,EAAqBS,SAAS,CAAC,4CAA6C,CAAE2Y,KAAMuoJ,CAAS,GACxGn+J,SAAU,+BACd,EACA,CACImxH,KAAM30H,EAAqBS,SAAS,CAAC,kBACrC02G,QAAS0zD,EACTznK,UAAWpD,EAAqBS,SAAS,CAAC,2CAA4C,CAAE2Y,KAAMuoJ,CAAS,GACvGn+J,SAAU,8BACd,EACA,CACImxH,KAAM30H,EAAqBS,SAAS,CAAC,gBACrC02G,QAAS+mE,EACT96K,UAAWpD,EAAqBS,SAAS,CAAC,yCAA0C,CAAE2Y,KAAMuoJ,CAAS,GACrGn+J,SAAU,4BACd,EACH,CACKsuB,EAAS4iJ,EAAqBU,YAAY,CAACG,EAAkB,GAAOvmF,IAAU,KAAM,KAAM,KAAM,KAAM1yD,GAE5G,OADAy+I,EAAcmyE,eAAe,CAACp7N,GACvB,IAAMipJ,EAAcoyE,kBAAkB,CAACr7N,EAClD,EAEAi+P,8BAA+B,WAC3Bh1G,EAAchvJ,YAAY,CAAC,gCAC/B,EAEAikQ,2BAA4B,SAAU55R,CAAO,EACzC,IAAM6X,EAAQ,CACV49B,aAAc7rC,EAAqBS,SAAS,CAAC,cAC7CmrC,QAAS5rC,EAAqBS,SAAS,CAAC,kDACxCrK,QAASA,EACT6M,MAAOjD,EAAqBS,SAAS,CAAC,sCAC1C,EAEA,OAAOsQ,EAAM8H,MAAM,CAAC,CAAC,EAAE/K,EAAgB6G,yBAAyB,CAAC,uDAAuD,CAAC,CAAE1G,EAC/H,CACJ,CACJ,EACH,C,kBC1QD3R,E,OAAAA,CAAUA,CAACqI,QAAQ,CAAC,2BAZb,MACHjI,aAAc,CACV,IAAI,CAACqI,IAAI,CAAG,KACR,MAAM,MAAU,yBACpB,CACJ,CAEA4sH,YAAYC,CAAQ,CAAE,CAClB,IAAI,CAAC7sH,IAAI,CAAG6sH,CAChB,CACJ,E,mCCZO,IAAM0iF,EAAY,CACrB27E,qBAAsB,KAClB,MAAM,MAAU,oDACpB,CACJ,C,mCCFO,IAAM37E,EAAwB,CACjCT,oBAAqB,KACjB,MAAM,MAAU,mDACpB,EACA6B,0BAA2B,KACvB,MAAM,MAAU,yDACpB,CACJ,C,uBCTYx9K,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,WAAAA,CAAAA,cAAAA,EAAAA,IAAAA,CAAAA,OAAAA,EAAAA,WAAAA,CAAAA,cAAAA,EAAAA,UAAAA,CAAAA,yBAAAA,EAAAA,YAAAA,CAAAA,eAAAA,EAAAA,EAAAA,CAAAA,KAAAA,EAAAA,IAAAA,CAAAA,eAAAA,EAAAA,IAAAA,CAAAA,OAAAA,EAAAA,YAAAA,CAAAA,eAAAA,EAAAA,SAAAA,CAAAA,WAAAA,EAAAA,IAAAA,CAAAA,OAAAA,EAAAA,gBAAAA,CAAAA,mBAAAA,EAAAA,QAAAA,CAAAA,WAAAA,EAAAA,IAAAA,CAAAA,M,uECKL,IAAM0gJ,EAAiDjtI,IAC1D,IAAMukP,EAAW1pH,EAAAA,CAAUA,CAACnhK,GAAG,CAACsmC,EAAMrjC,QAAQ,CAAEqjC,EAAMnmB,OAAO,EAC7D,OAAO0qQ,OAAAA,EAAoB,UAACrqQ,EAAAA,CAAIA,CAAJA,CAAKu1H,OAAQ80I,EAAS90I,MAAM,CAAE05E,KAAMo7D,EAASp7D,IAAI,CAAEtmH,UAAW7iE,EAAM6iE,SAAS,GAAO,IACpH,C,sCCRY2hL,ECAAC,E,sXDAAD,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,OAAAA,CAAAA,UAAAA,EAAAA,KAAAA,CAAAA,QAAAA,EAAAA,QAAAA,CAAAA,oBAAAA,EAAAA,QAAAA,CAAAA,gBAAAA,EAAAA,KAAAA,CAAAA,QAAAA,EAAAA,KAAAA,CAAAA,QAAAA,EAAAA,GAAAA,CAAAA,eAAAA,EAAAA,YAAAA,CAAAA,wBAAAA,EAAAA,WAAAA,CAAAA,uBAAAA,EAAAA,KAAAA,CAAAA,QCAAC,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,UAAAA,CAAAA,aAAAA,EAAAA,QAAAA,CAAAA,WAAAA,EAAAA,IAAAA,CAAAA,OAAAA,EAAAA,UAAAA,CAAAA,aAAAA,EAAAA,MAAAA,CAAAA,SAAAA,EAAAA,SAAAA,CAAAA,YCIL,IAAM3wQ,EAAU,CAAE,GAAG0wQ,CAAQ,CAAE,GAAGC,CAAS,ECmC5CC,EAAe,IAAIjnP,IAAwC,CAC7D,CAAClR,EAAAA,CAAQA,CAACo4P,WAAW,CAAE,CAAEx7D,KAAM,UAAW15E,OAAQm1I,EAAAA,CAAgB,EAAE,CACpE,CAAC9wQ,EAAQ+wQ,OAAO,CAAE,CAAE17D,KAAM,UAAW15E,OAAQq1I,EAAAA,CAAY,EAAE,CAC3D,CAAChxQ,EAAQixQ,KAAK,CAAE,CAAE57D,KAAM,UAAW15E,OAAQu1I,EAAAA,CAAU,EAAE,CACvD,CAACz4P,EAAAA,CAAQA,CAAC04P,IAAI,CAAE,CAAE97D,KAAM,UAAW15E,OAAQy1I,EAAAA,CAAS,EAAE,CACtD,CAAC34P,EAAAA,CAAQA,CAACs7C,WAAW,CAAE,CAAEshJ,KAAM,UAAW15E,OAAQ01I,EAAAA,CAAgB,EAAE,CACpE,CAAC54P,EAAAA,CAAQA,CAAC64P,UAAU,CAAE,CAAEj8D,KAAM,UAAW15E,OAAQ41I,EAAAA,CAAe,EAAE,CAClE,CAAC94P,EAAAA,CAAQA,CAAC+4P,YAAY,CAAE,CAAEn8D,KAAM,UAAW15E,OAAQ81I,EAAAA,CAAiB,EAAE,CACtE,CAACh5P,EAAAA,CAAQA,CAACi5P,EAAE,CAAE,CAAEr8D,KAAM,UAAW15E,OAAQg2I,EAAAA,CAAO,EAAE,CAClD,CAAC3xQ,EAAQ4xQ,QAAQ,CAAE,CAAEv8D,KAAM,UAAW15E,OAAQk2I,EAAAA,CAAa,EAAE,CAC7D,CAAC7xQ,EAAQ8xQ,QAAQ,CAAE,CAAEz8D,KAAM,UAAW15E,OAAQo2I,EAAAA,CAAa,EAAE,CAC7D,CAAC/xQ,EAAQgyQ,UAAU,CAAE,CAAE38D,KAAM,UAAW15E,OAAQs2I,EAAAA,CAAe,EAAE,CACjE,CAACjyQ,EAAQkyQ,QAAQ,CAAE,CAAE78D,KAAM,UAAW15E,OAAQw2I,EAAAA,CAAa,EAAE,CAC7D,CAAC15P,EAAAA,CAAQA,CAAC25P,IAAI,CAAE,CAAE/8D,KAAM,UAAW15E,OAAQ02I,EAAAA,CAAS,EAAE,CACtD,CAACryQ,EAAQ8c,KAAK,CAAE,CAAEu4L,KAAM,UAAW15E,OAAQ1/F,EAAAA,CAAU,EAAE,CACvD,CAACxjB,EAAAA,CAAQA,CAAC7c,IAAI,CAAE,CAAEy5M,KAAM,UAAW15E,OAAQ22I,EAAAA,CAAS,EAAE,CACtD,CAACtyQ,EAAQuyQ,GAAG,CAAE,CAAEl9D,KAAM,UAAW15E,OAAQ62I,EAAAA,CAAQ,EAAE,CACnD,CAACxyQ,EAAQyyQ,IAAI,CAAE,CAAEp9D,KAAM,UAAW15E,OAAQ+2I,EAAAA,CAAS,EAAE,CACrD,CAACj6P,EAAAA,CAAQA,CAACk6P,SAAS,CAAE,CAAEt9D,KAAM,UAAW15E,OAAQi3I,EAAAA,CAAc,EAAE,CAChE,CAACn6P,EAAAA,CAAQA,CAACo6P,IAAI,CAAE,CAAEx9D,KAAM,UAAW15E,OAAQm3I,EAAAA,CAAS,EAAE,CACtD,CAAC9yQ,EAAQ+yQ,YAAY,CAAE,CAAE19D,KAAM,UAAW15E,OAAQq3I,EAAAA,CAAiB,EAAE,CACrE,CAAChzQ,EAAQkxI,UAAU,CAAE,CAAEmkE,KAAM,UAAW15E,OAAQs3I,EAAAA,CAAe,EAAE,CACjE,CAACjzQ,EAAQkzQ,WAAW,CAAE,CAAE79D,KAAM,UAAW15E,OAAQw3I,EAAAA,CAAgB,EAAE,CACnE,CAACnzQ,EAAQozQ,MAAM,CAAE,CAAE/9D,KAAM,UAAW15E,OAAQ03I,EAAAA,CAAW,EAAE,CACzD,CAACrzQ,EAAQszQ,KAAK,CAAE,CAAEj+D,KAAM,UAAW15E,OAAQ43I,EAAAA,CAAU,EAAE,CACvD,CAAC96P,EAAAA,CAAQA,CAAC8sH,gBAAgB,CAAE,CAAE8vE,KAAM,UAAW15E,OAAQ63I,EAAAA,CAAqB,EAAE,CAC9E,CAACxzQ,EAAQyzQ,SAAS,CAAE,CAAEp+D,KAAM,UAAW15E,OAAQ+3I,EAAAA,CAAc,EAAE,CAClE,EAEKC,EAAkB,IAAIhqP,IAAwC,CAChE,CAAC3pB,EAAQgyQ,UAAU,CAAE,CAAE38D,KAAM,UAAW15E,OAAQi4I,EAAAA,CAAuB,EAAE,CACzE,CAAC5zQ,EAAQkyQ,QAAQ,CAAE,CAAE78D,KAAM,UAAW15E,OAAQk4I,EAAAA,CAAqB,EAAE,CACrE,CAAC7zQ,EAAQyyQ,IAAI,CAAE,CAAEp9D,KAAM,UAAW15E,OAAQm4I,EAAAA,CAAiB,EAAE,CAC7D,CAAC9zQ,EAAQkxI,UAAU,CAAE,CAAEmkE,KAAM,UAAW15E,OAAQo4I,EAAAA,CAAuB,EAAE,CACzE,CAAC/zQ,EAAQozQ,MAAM,CAAE,CAAE/9D,KAAM,UAAW15E,OAAQq4I,EAAAA,CAAmB,EAAE,CACjE,CAACh0Q,EAAQyzQ,SAAS,CAAE,CAAEp+D,KAAM,UAAW15E,OAAQs4I,EAAAA,CAAsB,EAAE,CACvE,CAACx7P,EAAAA,CAAQA,CAACkK,QAAQ,CAAE,CAAE0yL,KAAM,UAAW15E,OAAQu4I,EAAAA,CAAqB,EAAE,CACtE,CAACz7P,EAAAA,CAAQA,CAACiK,IAAI,CAAE,CAAE2yL,KAAM,UAAW15E,OAAQq4I,EAAAA,CAAmB,EAAE,CACnE,EAEYjtH,EAAa,CACtBnhK,IAAK,CAACiD,EAAoBkd,KACtB,IAAMouQ,EAAUtrR,IAAa4vB,EAAAA,CAAQA,CAACiK,IAAI,EAAI75B,IAAa4vB,EAAAA,CAAQA,CAACkK,QAAQ,CAAGgxP,EAAkB/C,EAEjG,GAAI7qQ,KAAYvpB,IAAZupB,EAAuB,CACvB,IAAMquQ,EAAoBD,EAAQvuR,GAAG,CAACmgB,GACtC,GAAIquQ,KAAsB53R,IAAtB43R,EACA,OAAOA,CAEf,CACA,IAAMC,EAAqBF,EAAQvuR,GAAG,CAACiD,GACvC,OAAOwrR,KAAuB73R,IAAvB63R,EAAmCA,EAAqB,IACnE,CACJ,C,6DCzFO,IAAMn/E,EAAgB6X,EAAAA,CAAWA,CAACC,SAAS,CAA6B,cAE/E9X,EAAc92M,GAAG,CACb,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCAGrB/X,EAAc92M,GAAG,CACb,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCAGrB/X,EAAc92M,GAAG,CACb,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCAGrB/X,EAAc92M,GAAG,CACb,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,sC,mCCtBd,IAAM7X,EAAoB,G,mCCE1B,IAAMP,EAAY,CACrBy/E,eAAiBC,IACb,MAAM,MAAU,8CACpB,CACJ,C,mOCJA,QAAU,k5CCMH,OAAMC,UAAqB1lH,EAAAA,SAASA,CACvC,OAAwB2lH,gBAA0B,8BAC3C/8K,CAAAA,OACUg9K,CAAAA,cAAwBC,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,8BAC1D4zR,CAAAA,oBACAC,CAAAA,gBACTC,CAAAA,sBAA+B,aAE3B5oP,CAAyB,CAAE,CACnC,KAAK,CAACA,GACN,IAAI,CAACwrE,OAAO,CAAG,IAAI,CAACq9K,QAAQ,CAAC/9R,IAAI,CAAC,IAAI,EAEtC,IAAI,CAAC69R,gBAAgB,CAAG,CACpB,CACIthM,KAAMyhM,EAAAA,CAAQA,CACdC,WAAYT,EAAaC,eAAe,CACxC3xJ,SAAU,IAAM,IAAI,CAACoyJ,aAAa,GAClChgK,KAAMy/J,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,8BAC5C,EACA,CACIuyF,KAAM4hM,EAAAA,CAAcA,CACpBF,WAAYT,EAAaC,eAAe,CACxC3xJ,SAAU,IAAM,IAAI,CAACsyJ,qBAAqB,GAC1ClgK,KAAMy/J,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,sCAC5C,EAGJ,KAAI,CAAC4zR,oBAAoB,CAAG,CACxB,CACIrhM,KAAMrkE,EAAAA,CAAQA,CACd+lQ,WAAYT,EAAaC,eAAe,CACxC3xJ,SAAU,IAAM,IAAI,CAAC6xG,kBAAkB,GACvCz/G,KAAM,IAAI,CAACmgK,qBAAqB,EACpC,EACA,CACI9hM,KAAM+hM,EAAAA,CAAoBA,CAC1BL,WAAYT,EAAaC,eAAe,CACxC3xJ,SAAU,IAAM,IAAI,CAACyyJ,eAAe,GACpCrgK,KAAMy/J,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,gCAC5C,EAGJ,KAAI,CAAC8zR,sBAAsB,CAAG,IAAI,CAAC5oP,KAAK,CAAC/qC,QAAQ,CAACD,aACtD,CAEO44J,QAAuB,CAC1B,IAAM07H,EAAc,IAAI,CAACC,eAAe,GAClCzxR,EAAWwxR,IAAAA,EAAY37R,MAAM,CAEnC,MACI,WAACm2K,MAAAA,CAAIjhE,UAAU,oBAAoBvkG,GAAI,CAAC,cAAc,EAAE,IAAI,CAAC0hC,KAAK,CAAC/qC,QAAQ,CAAC4jI,WAAW,CAAC,CAAC,WACrF,WAACirC,MAAAA,CAAIjhE,UAAU,sCACX,WAACihE,MAAAA,CAAIjhE,UAAU,6CACV,WAAI,CAAC7iE,KAAK,CAAC/qC,QAAQ,CAAC0H,QAAQ,CACzB,UAACud,EAAAA,CAAIA,CAAJA,CAAKu1H,OAAQ41F,EAAAA,CAAgBA,CAAElc,KAAMm/D,EAAaC,eAAe,CAAE1lL,UAAU,+BAA+B,GAE7G,UAACoqE,EAAAA,CAASA,CAATA,CAAUpqE,UAAU,gCAAgClmG,SAAU,IAAI,CAACqjC,KAAK,CAAC/qC,QAAQ,CAAC0H,QAAQ,CAAEkd,QAAS,IAAI,CAACmmB,KAAK,CAAC/qC,QAAQ,CAAC4kB,OAAO,GAErI,WAACiqJ,MAAAA,CAAIjhE,UAAU,4CACV,SAAI,CAAC7iE,KAAK,CAAC/qC,QAAQ,CAACu6O,SAAS,CAC1B,UAAC1rE,MAAAA,CAAIjhE,UAAU,uDAAuDvkG,GAAI,IAAI,CAAC0hC,KAAK,CAAC/qC,QAAQ,CAACs3O,eAAe,CAAExoE,YAAU,uBAAuB5jJ,SAAU,GAAC,SACtJ,IAAI,CAAC6f,KAAK,CAAC/qC,QAAQ,CAAC+nN,UAAU,GAGnC,UAACwsE,EAAAA,CAASA,CAATA,CACG3mL,UAAU,uDACVvkG,GAAI,IAAI,CAAC0hC,KAAK,CAAC/qC,QAAQ,CAACs3O,eAAe,CACvCl1M,KAAM,IAAI,CAAC2I,KAAK,CAAC/qC,QAAQ,CAACu6O,SAAS,CACnChkI,QAAS,IAAI,CAACA,OAAO,UACpB,IAAI,CAACxrE,KAAK,CAAC/qC,QAAQ,CAAC+nN,UAAU,GAGvC,UAACsH,OAAAA,CAAKzhH,UAAU,gDAAgDkhE,YAAU,uCACrE,IAAI,CAAC/jI,KAAK,CAAC/qC,QAAQ,CAACo7O,cAAc,SAI/C,UAACvsE,MAAAA,CAAIjhE,UAAU,yDACX,UAAC4mL,EAAAA,CAAYA,CAAZA,CAAahyR,UAAW,IAAI,CAAC+wR,aAAa,CAAElqR,GAAI,IAAI,CAAC0hC,KAAK,CAAC/qC,QAAQ,CAACm7O,cAAc,CAAEs5C,cAAeJ,EAAaxxR,SAAUA,CAAAA,EAAAA,GAAAA,GAGlI,SAAI,CAACkoC,KAAK,CAAC/qC,QAAQ,CAACD,aAAa,EAC9B,UAACw4K,EAAAA,CAAYA,CAAZA,CAAa78I,QAAS,IAAI,CAACqP,KAAK,CAAC/qC,QAAQ,CAACD,aAAa,CAAE6C,SAAS,8BAA8BgrG,UAAU,kCAAkC,GAAlC,EAI3H,CAEQgmL,SAASl8R,CAAoC,CAAQ,CACzD,IAAI,CAACqzC,KAAK,CAACqtM,gBAAgB,CAAC,IAAI,CAACrtM,KAAK,CAAC/qC,QAAQ,CAAE,GAAOtI,EAC5D,CAEQq8R,eAAsB,CAC1B,IAAI,CAAChpP,KAAK,CAACqtM,gBAAgB,CAAC,IAAI,CAACrtM,KAAK,CAAC/qC,QAAQ,CAAE,GACrD,CAEQi0R,uBAA8B,CAClC,IAAI,CAAClpP,KAAK,CAACqtM,gBAAgB,CAAC,IAAI,CAACrtM,KAAK,CAAC/qC,QAAQ,CAAE,GACrD,CAEQwzO,oBAA2B,CAC/B,IAAI,CAACzoM,KAAK,CAACqoM,mBAAmB,CAAC,IAAI,CAACroM,KAAK,CAAC/qC,QAAQ,CACtD,CAEQo0R,iBAAwB,CAC5B,IAAI,CAACrpP,KAAK,CAACotM,gBAAgB,CAAC,IAAI,CAACptM,KAAK,CAAC/qC,QAAQ,CACnD,CAEQk0R,uBAAgC,CACpC,OAAOV,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,CAAC,uBAAuB,EAAE,SAAI,CAACkrC,KAAK,CAAC/qC,QAAQ,CAACD,aAAa,CAAU,OAAS,MAAM,CAAC,CAClI,CAEQu0R,iBAA4C,CAChD,IAAMI,EAAe,SAAI,CAAC3pP,KAAK,CAAC/qC,QAAQ,CAACu6O,SAAS,CAC9C85C,EAAwC,EAAE,CAe9C,OAbI,IAAI,CAACtpP,KAAK,CAAC/qC,QAAQ,CAACD,aAAa,GAAK,IAAI,CAAC4zR,sBAAsB,GACjE,IAAI,CAACF,oBAAoB,CAAC,EAAE,CAAC1/J,IAAI,CAAG,IAAI,CAACmgK,qBAAqB,GAC9D,IAAI,CAACP,sBAAsB,CAAG,IAAI,CAAC5oP,KAAK,CAAC/qC,QAAQ,CAACD,aACtD,EAEI20R,GACAL,CAAAA,EAAcA,EAAYlhQ,MAAM,CAAC,IAAI,CAACugQ,gBAAgB,GAGrD,IAAI,CAAC3oP,KAAK,CAACusE,UAAU,EACtB+8K,CAAAA,EAAcA,EAAYlhQ,MAAM,CAAC,IAAI,CAACsgQ,oBAAoB,GAGvDY,CACX,CACJ,CCzIA,QAAU,uyBCQH,IAAM1+C,EAA2D5qM,IACpE,IAAM4pP,EAAmBnB,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,qBACrD+0R,EAAsBpB,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,yBACxDg1R,EAAarB,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,wBAC/Ci1R,EAAc/pP,EAAM/qC,QAAQ,CAACtH,MAAM,CAAG,EACtC4+G,EAAavsE,EAAMusE,UAAU,EAAI,CAACw9K,EAElCC,EAAyBhqP,EAAM8vM,kBAAkB,CAAG85C,EAAmBC,EAEvEI,EAAgCjqP,EAAM8vM,kBAAkB,CAAG,GAAK,2CAEtE,MACI,WAAChsE,MAAAA,CAAIjhE,UAAU,gCACX,WAACihE,MAAAA,CAAIjhE,UAAW,CAAC,4BAA4B,EAAEknL,EAAc,GAAK,wCAAwC,CAAC,WACvG,UAACjmH,MAAAA,CAAIjhE,UAAU,wDACV7iE,EAAM6vM,kBAAkB,CACrB,UAAC1iE,EAAAA,CAAQA,CAARA,CAASpyJ,UAAWilB,EAAM8vM,kBAAkB,CAAEvjI,WAAYA,EAAYrjF,SAAU8W,EAAMgwM,0BAA0B,UAC5G45C,CAAAA,GAGL,UAACtlE,OAAAA,CAAKvgD,YAAU,uCAA+BimH,CAAAA,EAAAA,GAGvD,UAAC1lE,OAAAA,CAAK+G,cAAY,OAAOxoH,UAAU,2CAA2CkhE,YAAU,+CACpF,UAAC7pJ,EAAAA,CAAIA,CAAJA,CACG2oF,UAAW,CAAC,iCAAiC,EAAEonL,EAA8B,CAAC,CAC9Ex6I,OAAQy6I,EAAAA,CAAoBA,CAC5B/gE,KAAM58G,EA7BG,UADD,UA+BRw3D,YAAU,6BAA6B,EAA7B,MAIrBgmH,EACG/pP,EAAM/qC,QAAQ,CAAC5B,GAAG,CAAE4B,GAChB,UAACqzR,EAAAA,CAEGrzR,SAAUA,EACVs3G,WAAYvsE,EAAMusE,UAAU,CAC5B6gI,iBAAkBptM,EAAMotM,gBAAgB,CACxC/E,oBAAqBroM,EAAMqoM,mBAAmB,CAC9CgF,iBAAkBrtM,EAAMqtM,gBAAgB,EALnCp4O,EAAS4jI,WAAW,GASjC,UAACirC,MAAAA,CAAIjhE,UAAU,2CAA2CkhE,YAAU,8CAChE,UAACh1J,IAAAA,CAAAA,SAAG+6Q,CAAAA,EAAAA,GAAAA,EAKxB,C,4HC1DA,K,OAAA,GAAU,ymCCMH,OAAM5iD,UAA8BtkE,EAAAA,SAASA,CAChD,OAAwB2lH,gBAA0B,SACjCC,CAAAA,cAAwBC,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,0CAC1Dq1R,CAAAA,YAAuC,aAE5CnqP,CAAkC,CAAE,CAC5C,KAAK,CAACA,GAEN,IAAI,CAACmqP,YAAY,CAAG,CAChB,CACI9iM,KAAMrkE,EAAAA,CAAQA,CACd+lQ,WAAY7hD,EAAsBqhD,eAAe,CACjD3xJ,SAAU,IAAM,IAAI,CAAC52F,KAAK,CAACqoM,mBAAmB,CAAC,IAAI,CAACroM,KAAK,CAACwoG,WAAW,EACrExf,KAAMy/J,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,qDAC5C,EAER,CAEO84J,QAAuB,CAC1B,IAAMy3F,EAAQ,IAAI,CAAC+kC,aAAa,CAAC,KAA0C95R,IAA1C,IAAI,CAAC0vC,KAAK,CAACwoG,WAAW,CAACq/F,cAAc,EAChEpiB,EAAY,IAAI,CAAC4kE,iBAAiB,GAExC,MACI,WAACvmH,MAAAA,CAAIjhE,UAAU,8BAA8BkhE,YAAU,+BACnD,WAACD,MAAAA,CAAIjhE,UAAU,sDACX,WAACihE,MAAAA,CAAIjhE,UAAU,8CACX,UAACynL,EAAAA,CAASA,CAATA,CAAUznL,UAAU,0CAA0ChrG,SAAS,2BAA2B4tQ,WAAYpgB,CAAAA,GAC/G,UAACvhF,MAAAA,CAAIjhE,UAAU,8CAA8CkhE,YAAU,wCAClE0hD,CAAAA,GAAAA,GAIR,IAAI,CAACzlL,KAAK,CAACgqB,UAAU,EAClB,UAAC85G,MAAAA,CAAIjhE,UAAU,8DACX,UAAC4mL,EAAAA,CAAYA,CAAZA,CAAahyR,UAAW,IAAI,CAAC+wR,aAAa,CAAEzkH,YAAU,mCAAmC2lH,cAAe,IAAI,CAACS,YAAY,QAIrI,WAAI,CAACnqP,KAAK,CAACwoG,WAAW,CAACxzI,aAAa,EACjC,UAACw4K,EAAAA,CAAYA,CAAZA,CAAa3qE,UAAU,6CAA6ChrG,SAAS,mCAAmC84B,QAAS,IAAI,CAACqP,KAAK,CAACwoG,WAAW,CAACxzI,aAAa,KAI9K,CAEQo1R,cAAcG,CAAqB,CAAU,CACjD,IAAMv2R,EAAS,CACX+zO,OAAQ,IAAI,CAAC/nM,KAAK,CAACwoG,WAAW,CAACu/F,MAAM,CACrCpwN,KAAM,IAAI,CAACqoB,KAAK,CAACwoG,WAAW,CAACm/F,iBAAiB,CAC9CE,eAAgB,IAAI,CAAC7nM,KAAK,CAACwoG,WAAW,CAACq/F,cAC3C,SAEA,EACW,IAAI,CAAC7nM,KAAK,CAACwqP,qBAAqB,CACjC/B,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,8CAA+Cd,GACjFy0R,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,iDAAkDd,GAGvF,IAAI,CAACgsC,KAAK,CAACwqP,qBAAqB,CACjC/B,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,4CAA6Cd,GAC/Ey0R,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,+CAAgDd,EAC5F,CAEQq2R,mBAA4B,CAChC,OAAO5B,EAAAA,CAAuBA,CAAC3zR,SAAS,CAAC,mDAAoD,CACzFsiB,KAAM,IAAI,CAAC4oB,KAAK,CAACwoG,WAAW,CAACygG,iBAAiB,CAC9C/8L,KAAM,IAAI,CAAClM,KAAK,CAACwoG,WAAW,CAAC0gG,iBACjC,EACJ,CACJ,C,6DC1EO,IAAMu/C,EAA0B5nE,EAAAA,CAAWA,CAACC,SAAS,CAA6B,yBAEzF2nE,EAAwBv2R,GAAG,CACvB,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCAGrB0nE,EAAwBv2R,GAAG,CACvB,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCAGrB0nE,EAAwBv2R,GAAG,CACvB,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,sCAGrB0nE,EAAwBv2R,GAAG,CACvB,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,qC,4GCtBd,IAAMpY,EAAY,CACrB+rC,gBAAiB,KACb,MAAM,MAAU,+CACpB,EACA+1C,aAAc,KACV,MAAM,MAAU,4CACpB,CACJ,E,ICPYC,ECAAC,ECAAC,E,yEFAAF,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,UAAAA,CAAAA,kBAAAA,EAAAA,cAAAA,CAAAA,WAAAA,EAAAA,YAAAA,CAAAA,+BAAAA,EAAAA,MAAAA,CAAAA,2BAAAA,EAAAA,QAAAA,CAAAA,6BAAAA,EAAAA,QAAAA,CAAAA,6BAAAA,EAAAA,OAAAA,CAAAA,4BAAAA,EAAAA,MAAAA,CAAAA,2BAAAA,EAAAA,aAAAA,CAAAA,kCAAAA,EAAAA,gBAAAA,CAAAA,yBAAAA,EAAAA,qBAAAA,CAAAA,8BGEL,IAAMG,EAAsBh+R,GACxB,EACH4gB,KAAM,UACN5gB,MAAOA,CACX,GCJSi+R,EAAsBj+R,GACxB,EACH4mB,QAAS,EAAE,CACXhG,KAAM,OACN5gB,MAAOA,CACX,GCJSk+R,EAAmBvuK,GACrB,EACH/oG,QAAS+oG,EAAQ/oG,OAAO,EAAI,EAAE,CAC9BhG,KAAM,OACN5gB,MAAO2vH,EAAQ3vH,KACnB,GCLSm+R,EAAkBxuK,GACpB,EACH/uG,KAAM,UACN5gB,MAAO2vH,SAAAA,EAAQ3vH,KAAK,CAACsX,WAAW,EACpC,GCES8mR,EAAuBzxR,IAChC,IAAM0xR,EAAc,IAAIztP,IAExB,IAAK,IAAM++E,KAAWhjH,EAClB0xR,EAAY3uO,GAAG,CAACigE,EAAQ7kG,IAAI,CAAE6kG,GAGlC,IAAM2uK,EAAaD,EAAYxxR,GAAG,CAACgxR,EAAgBU,UAAU,EACvDC,EAAeH,EAAYxxR,GAAG,CAACgxR,EAAgBY,YAAY,EAC3DC,EAAiBL,EAAYxxR,GAAG,CAACgxR,EAAgBc,cAAc,EAC/DC,EAASP,EAAYxxR,GAAG,CAACgxR,EAAgBgB,MAAM,EAC/CxxR,EAAWgxR,EAAYxxR,GAAG,CAACgxR,EAAgB1E,QAAQ,EACnDpvE,EAAWs0E,EAAYxxR,GAAG,CAACgxR,EAAgBhiG,QAAQ,EACnDhoJ,EAAUwqP,EAAYxxR,GAAG,CAACgxR,EAAgBiB,OAAO,EACjDnhP,EAAS0gP,EAAYxxR,GAAG,CAACgxR,EAAgBv8O,MAAM,EAC/Cy9O,EAAgBV,EAAYxxR,GAAG,CAACgxR,EAAgBmB,aAAa,EAC7DC,EAAwBZ,EAAYxxR,GAAG,CAACgxR,EAAgBqB,qBAAqB,EAC7EC,EAAmBd,EAAYxxR,GAAG,CAACgxR,EAAgBuB,gBAAgB,EAEzE,MAAO,CACHC,WAAY,CACRzhI,QAAS0gI,KAAe76R,IAAf66R,EACTA,WAAYA,KAAe76R,IAAf66R,EAA2BH,EAAeG,GAAcN,EAAmB,GAC3F,EACAsB,SAAU,CACN1hI,QAAS,GACT8gI,eAAgBA,KAAmBj7R,IAAnBi7R,EAA+BR,EAAgBQ,GAAkBT,EAAmB,QACxG,EACA50M,QAAS,CACLu0E,QAAS,GACT4gI,aAAcA,KAAiB/6R,IAAjB+6R,EAA6BL,EAAeK,GAAgBR,EAAmB,GACjG,EACAuB,cAAe,CACX3hI,QAAS,GACTnpJ,SAAU,CACNmqR,OAAQ,CACJ9zQ,KAAM+yQ,EAAgBgB,MAAM,CAC5B7+R,MAAO4+R,KAAWn7R,IAAXm7R,EAAuBA,EAAO5+R,KAAK,CAAG,GACjD,EACAqN,SAAU,CACNyd,KAAM+yQ,EAAgB1E,QAAQ,CAC9Bn5R,MAAOqN,KAAa5J,IAAb4J,EAAyBA,EAASrN,KAAK,CAAG,GACrD,EACA+pN,SAAU,CACNj/L,KAAM+yQ,EAAgBhiG,QAAQ,CAC9B77L,MAAO+pN,KAAatmN,IAAbsmN,EAAyBA,EAAS/pN,KAAK,CAAG,GACrD,EACA6zC,QAAS,CACL/oB,KAAM+yQ,EAAgBiB,OAAO,CAC7B9+R,MAAO6zC,KAAYpwC,IAAZowC,EAAwBA,EAAQ7zC,KAAK,CAAG,GACnD,EACA29C,OAAQ,CACJ7yB,KAAM+yQ,EAAgBv8O,MAAM,CAC5BthD,MAAO29C,KAAWl6C,IAAXk6C,EAAuBA,EAAO39C,KAAK,CAAG,GACjD,EACA++R,cAAe,CACXj0Q,KAAM+yQ,EAAgBmB,aAAa,CACnCh/R,MAAO++R,KAAkBt7R,IAAlBs7R,EAA8BA,EAAc/+R,KAAK,CAAG,GAC/D,EACAi/R,sBAAuB,CACnBn0Q,KAAM+yQ,EAAgBqB,qBAAqB,CAC3Cl/R,MAAOi/R,KAA0Bx7R,IAA1Bw7R,EAAsCA,EAAsBj/R,KAAK,CAAG,QAC3E4mB,QAASq4Q,KAA0Bx7R,IAA1Bw7R,GAAuCA,KAAkCx7R,IAAlCw7R,EAAsBr4Q,OAAO,CAAiBq4Q,EAAsBr4Q,OAAO,CAAG,EAClI,EACAu4Q,iBAAkB,CACdr0Q,KAAM+yQ,EAAgBuB,gBAAgB,CACtCp/R,MAAOm/R,KAAqB17R,IAArB07R,EAAiCA,EAAiBn/R,KAAK,CAAG,IACjE4mB,QAASu4Q,KAAqB17R,IAArB07R,GAAkCA,KAA6B17R,IAA7B07R,EAAiBv4Q,OAAO,CAAiBu4Q,EAAiBv4Q,OAAO,CAAG,EACnH,CACJ,CACJ,CACJ,CACJ,EC3Ea44Q,EAAqBhkF,EAAAA,CAAiBA,CAACqpB,SAAS,CAAiB,CAC1EppB,YAAcC,GAA4BznC,QAAQ1vK,OAAO,CAAiB,CAAEk2D,KAAMihJ,EAAcpiL,MAAM,CAACnK,QAAQ,GAAIlc,QAASyoM,EAAczoM,OAAQ,GAClJ0oM,KAAMC,EAAAA,CAAWA,CACjBlU,eAAiB/6L,GAAuBm4N,CAAAA,EAAAA,EAAAA,CAAAA,EAAsEngO,GAASy5R,EAAoBz5R,IAAOgI,GAClJoE,IAAK,IAAM+qM,EAAU+rC,eAAe,EACxC,G,0CCPO,SAAS43C,EAAuBz/R,CAAU,EAC7C,OAAOA,OAAAA,GAAkB,iBAAOA,GAAsB,CAAC2C,MAAMmsB,OAAO,CAAC9uB,EACzE,CCKO,SAAS0/R,EAAeC,CAAoB,CAAElxI,CAAwD,EACzG,GAAIkxI,IAAAA,EAAU7+R,MAAM,CAChB,MAAO,CAAEyhH,KAAMksC,EAAQmxI,UAAW,GAAI98Q,OAAQ,KAAM+8Q,WAAY,EAAG,EAGvE,IAAMA,EAAqC,EAAE,CACzC/8Q,EAAc,KACdy/F,EAAYksC,EACZmxI,EAAY,GAEhB,IAAK,IAAME,KAAcH,EAAW,CAKhC,GAJA78Q,EAASy/F,EACTq9K,EAAY,GACZr9K,EAAO9+G,KAAAA,EAEH,iBAAOq8R,GAA2BL,EAAc38Q,GAChDy/F,EAAOz/F,CAAM,CAACg9Q,EAAW,CACzBD,EAAWt6R,IAAI,CAACu6R,QACb,GAAIn9R,MAAMmsB,OAAO,CAAChM,GAAS,CAC9B,GAAI28Q,EAAcK,GAAa,CAC3B,IAAMC,EAAiB74R,OAAO0oH,OAAO,CAACkwK,GAEtCF,EAAY98Q,EAAO2C,SAAS,CAAE6U,GAC1B,MAAIA,GAIGylQ,EAAe7nK,KAAK,CAAC,OAAC,CAAC8nK,EAASC,EAAU,UAAK3lQ,CAAI,CAAC0lQ,EAAQ,GAAKC,CAAS,GAEzF,MACIL,EAAY98Q,EAAOvf,OAAO,CAACu8R,GAG/BD,EAAWt6R,IAAI,CAACq6R,GAChBr9K,EAAOz/F,CAAM,CAAC88Q,EAClB,CAEA,GAAIr9K,KAAS9+G,IAAT8+G,EACA,OAAO,IAEf,CAEA,MAAO,CAAEA,KAAMA,EAAMq9K,UAAWA,EAAW98Q,OAAQA,EAAQ+8Q,WAAYA,CAAW,CACtF,CTtDY/B,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,MAAAA,CAAAA,SAAAA,EAAAA,YAAAA,CAAAA,eAAAA,EAAAA,WAAAA,CAAAA,cAAAA,EAAAA,MAAAA,CAAAA,SAAAA,EAAAA,GAAAA,CAAAA,KUQL,OAAMoC,EACD71R,MAAe,aAEXoL,CAAa,CAAE,CACvB,IAAI,CAACpL,MAAM,CAAGoL,CAClB,CAEO0qR,UAAmB,CACtB,OAAO,IAAI,CAAC91R,MAChB,CAEO+D,MAAMA,CAAyB,CAAW,CAC7C,OAAQA,EAAM+pH,EAAE,EACZ,KAAK2lK,EAAesC,GAAG,CACnB,OAAO,IAAI,CAACC,IAAI,CAACjyR,EAAM+Q,IAAI,CAAE/Q,EAAMpO,KAAK,CAC5C,MAAK89R,EAAewC,MAAM,CACtB,OAAO,IAAI,CAACC,OAAO,CAACnyR,EAAM+Q,IAAI,CAClC,MAAK2+Q,EAAe0C,MAAM,CACtB,OAAO,IAAI,CAACpuK,OAAO,CAAChkH,EAAM+Q,IAAI,CAAE/Q,EAAMpO,KAAK,CAC/C,MAAK89R,EAAe2C,YAAY,CAC5B,OAAO,IAAI,CAACC,aAAa,CAACtyR,EAAM+Q,IAAI,CAAE/Q,EAAMpO,KAAK,CACrD,MAAK89R,EAAe6C,WAAW,CAC3B,OAAO,IAAI,CAACC,YAAY,CAACxyR,EAAM+Q,IAAI,CAAE/Q,EAAMpO,KAAK,CACpD,SACI,MAAM,MAAU,CAAC,eAAe,EAAGoO,EAAc+pH,EAAE,CAAC,mBAAmB,CAAC,CAChF,CACJ,CAEQkoK,KAAKlhR,CAAe,CAAEnf,CAAU,CAAW,CAC/C,IAAMyvB,EAASiwQ,EAAevgR,EAAM,IAAI,CAAC9U,MAAM,EAE/C,GAAIolB,OAAAA,GAAmB,CAAC9sB,MAAMmsB,OAAO,CAACW,EAAO8yF,IAAI,EAC7C,MAAO,GAGX,IAAMs9K,EAAapwQ,EAAOowQ,UAAU,CAIpC,OAFAgB,IADyB,CAACC,eAAe,CAACjB,GAC7Bt6R,IAAI,CAACvF,GAEX,EACX,CAEQoyH,QAAQjzG,CAAe,CAAEnf,CAAU,CAAW,CAClD,IAAMyvB,EAASiwQ,EAAevgR,EAAM,IAAI,CAAC9U,MAAM,EAE/C,GAAIolB,OAAAA,GAAmB,CAACgwQ,EAAchwQ,EAAO8yF,IAAI,EAC7C,MAAO,GAGX,GAAI9yF,IAAAA,EAAOowQ,UAAU,CAAC/+R,MAAM,CAExB,OADA,IAAI,CAACuJ,MAAM,CAAG,CAAE,GAAG,IAAI,CAACA,MAAM,CAAE,GAAGrK,CAAM,EAClC,GAGX,IAAMsqL,EAAW76J,EAAOowQ,UAAU,CAACjvM,GAAG,GAChCiwM,EAAe,IAAI,CAACC,eAAe,CAACrxQ,EAAOowQ,UAAU,EAG3D,OAFAgB,CAAY,CAACv2G,EAAsC,CAAG,CAAE,GAAGu2G,CAAY,CAACv2G,EAAsC,CAAE,GAAGtqL,CAAM,EAElH,EACX,CAEQugS,QAAQphR,CAAe,CAAW,CACtC,IAAMsQ,EAASiwQ,EAAevgR,EAAM,IAAI,CAAC9U,MAAM,EAE/C,GAAIolB,OAAAA,GAAmB,CAAC9sB,MAAMmsB,OAAO,CAACW,EAAO3M,MAAM,EAC/C,MAAO,GAGX,IAAM+8Q,EAAapwQ,EAAOowQ,UAAU,CAC9Bv1G,EAAWu1G,EAAWjvM,GAAG,GAK/B,OAFAiwM,IADyB,CAACC,eAAe,CAACjB,GAC7Br6R,MAAM,CAAC8kL,EAAU,GAEvB,EACX,CAEQo2G,cAAcvhR,CAAe,CAAEnf,CAAU,CAAW,CACxD,IAAMyvB,EAASiwQ,EAAevgR,EAAM,IAAI,CAAC9U,MAAM,EAE/C,GAAIolB,OAAAA,GAAmB,CAAC9sB,MAAMmsB,OAAO,CAACW,EAAO3M,MAAM,EAC/C,MAAO,GAGX,IAAM+8Q,EAAapwQ,EAAOowQ,UAAU,CAC9Bv1G,EAAWu1G,EAAWjvM,GAAG,GAK/B,OAFAiwM,IADyB,CAACC,eAAe,CAACjB,GAC7Br6R,MAAM,CAAC8kL,EAAU,EAAGtqL,GAE1B,EACX,CAEQ4gS,aAAazhR,CAAe,CAAEnf,CAAU,CAAW,CACvD,IAAMyvB,EAASiwQ,EAAevgR,EAAM,IAAI,CAAC9U,MAAM,EAE/C,GAAIolB,OAAAA,GAAmB,CAAC9sB,MAAMmsB,OAAO,CAACW,EAAO3M,MAAM,EAC/C,MAAO,GAGX,IAAM+8Q,EAAapwQ,EAAOowQ,UAAU,CAC9Bv1G,EAAWu1G,EAAWjvM,GAAG,GAK/B,OAFAiwM,IADyB,CAACC,eAAe,CAACjB,GAC7Br6R,MAAM,CAAC8kL,EAAW,EAAG,EAAGtqL,GAE9B,EACX,CAEQ8gS,gBAAgBjB,CAAkC,CAAoC,CAC1F,IAAIt9K,EAAY5/G,MAAMmsB,OAAO,CAAC,IAAI,CAACzkB,MAAM,EAAI,IAAI,CAACA,MAAM,CAACzH,KAAK,GAAK,CAAE,GAAG,IAAI,CAACyH,MAAO,EAGpF,IAAK,IAAM02R,KAFX,IAAI,CAAC12R,MAAM,CAAGk4G,EAESs9K,GAAY,CAC/B,IAAM/8Q,EAASy/F,EACTviH,EAAQ8iB,CAAM,CAACi+Q,EAErBj+Q,CAAAA,CAAM,CAACi+Q,EAAS,CAAGp+R,MAAMmsB,OAAO,CAAC9uB,GAASA,EAAM4C,KAAK,GAAK,CAAE,GAAG5C,CAAM,EACrEuiH,EAAOA,CAAI,CAACw+K,EAChB,CAEA,OAAOx+K,CACX,CACJ,C,mCCxHO,OAAMy+K,EACOC,KAECC,CAAAA,WACAC,CAAAA,QAEAC,CAAAA,uBAAuD,IAAIxwP,GAC3DywP,CAAAA,wBAAwD,IAAIzwP,GAE5D0wP,CAAAA,eAAwD,CACrEC,YAAa,IAAI,CAACX,YAAY,CAAC3iS,IAAI,CAAC,IAAI,EACxC8kQ,aAAc,IAAI,CAAC29B,aAAa,CAACziS,IAAI,CAAC,IAAI,EAC1C6I,OAAQ,IAAI,CAACy5R,OAAO,CAACtiS,IAAI,CAAC,IAAI,EAC9B8uL,OAAQ,IAAI,CAACjmK,OAAO,CAAC7oB,IAAI,CAAC,IAAI,CAClC,CAEiBujS,CAAAA,eAAsC,CACnD3kQ,MAAO,IAAI,CAAC4kQ,MAAM,CAACxjS,IAAI,CAAC,IAAI,EAC5B6gR,WAAY,IAAI,CAAC4iB,WAAW,CAACzjS,IAAI,CAAC,IAAI,CAC1C,CAAE,aAEU0jS,CAA4B,CAAEjvK,CAA4C,CAAE,CACpF,IAAI,CAACwuK,WAAW,CAAGS,EACnB,IAAI,CAACR,QAAQ,CAAGzuK,EAChB,IAAI,CAACuuK,KAAK,CAAG,IAAI,CAACW,YAAY,CAAC,EAAE,CACrC,CAEQC,SAASn7M,CAAgB,CAAEvnE,CAAe,CAAO,CACrD,GAAIunE,cAAAA,GAA4BA,SAAAA,EAAqB,CAAC,IAAD,OACjD,OAAO,WAAC,kDAAG7/E,CAAI,CAAJA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAAA,OAAgB,EAAKi7R,iCAAiC,CAAC3iR,EAAK,CAACunE,EAAS,IAAI7/E,EAAK,CAC9F,QAEA,KAAsCpD,IAAlC,IAAI,CAAC+9R,cAAc,CAAC96M,EAAS,CACtB,IAAI,CAAC86M,cAAc,CAAC96M,EAAS,CAACvnE,GAGrC,KAAkC1b,IAAlC,IAAI,CAAC69R,cAAc,CAAC56M,EAAS,CACtB,IAAI,CAAC46M,cAAc,CAAC56M,EAAS,CAACzoF,IAAI,CAAC,IAAI,CAAEkhB,GAGhD,KAAyD1b,IAAzD,IAAI,CAACy9R,WAAW,CAACx6M,EAAmC,CAC7C,IAAI,CAACw6M,WAAW,CAACx6M,EAAmC,CAACzoF,IAAI,CAAC,IAAI,CAAEkhB,GAGpE,IAAI,CAACyiR,YAAY,CAAC,IAAIziR,EAAMunE,EAAS,CAChD,CAEQk7M,aAAaziR,CAAe,CAAO,CACvC,OAAO,IAAI4iR,MAAM5iR,EAAM,CACnBtS,IAAK,CAACqwB,EAAGwpD,IAAa,IAAI,CAACm7M,QAAQ,CAACn7M,EAAoBvnE,EAC5D,EACJ,CAEQsiR,OAAOtiR,CAAe,CAAmB,CAC7C,OAAO,IAAI,CAAC6iR,sCAAsC,CAAC7iR,EACvD,CAEQ2H,QAAQ3H,CAAe,CAAE6kI,CAAiC,CAAQ,CACtE,OAAO,IAAI,CAAC49I,YAAY,CAAC,IAAIziR,EAAM6kI,EAAS,CAChD,CAEQ09I,YAAYviR,CAAe,CAAmB,CAClD,OAAO,IAAI,CAAC6iR,sCAAsC,CAAC7iR,EACvD,CAEQuhR,cAAcvhR,CAAe,CAAE21L,CAAoC,CAAE5kL,CAAa,CAAoB,CAC1G,OAAO,IAAI,CAACgxQ,WAAW,CAACn+B,YAAY,CAAC,IAAI5jP,EAAM21L,EAAU,CAAE5kL,EAC/D,CAEQ0wQ,aAAazhR,CAAe,CAAE21L,CAAoC,CAAE5kL,CAAa,CAAoB,CACzG,OAAO,IAAI,CAACgxQ,WAAW,CAACK,WAAW,CAAC,IAAIpiR,EAAM21L,EAAU,CAAE5kL,EAC9D,CAEQqwQ,QAAQphR,CAAe,CAAE21L,CAAoC,CAAoB,CACrF,OAAO,IAAI,CAACosF,WAAW,CAACp6R,MAAM,CAAC,IAAIqY,EAAM21L,EAAU,CACvD,CAEQmtF,mBAAmBlB,CAAsB,CAAEmB,CAA4B,CAAW,CACtF,IAAMC,EAAmB,iBAAOpB,EAC1BqB,EAAyB,iBAAOF,SAEtC,GAAwBE,EACbrB,IAAamB,GAGnBC,IAAqBC,GACfl7R,OAAO0oH,OAAO,CAACmxK,GAAuC7oK,KAAK,CAAC,OAAC,CAACx3H,EAAKw7D,EAAK,UAAKA,IAAUgmO,CAA4C,CAACxhS,EAAI,EAIvJ,CAEQohS,kCAAkC3iR,CAAe,CAAmB,CACxE,IAAMkjR,EAAa/vO,KAAKi1E,SAAS,CAACpoH,GAC5BmjR,EAAmB,IAAI,CAAClB,sBAAsB,CAACv0R,GAAG,CAACw1R,GAEzD,GAAIC,KAAqB7+R,IAArB6+R,EACA,OAAOA,EAGX,IAAMzvK,EAAa,IAAI,CAACsuK,QAAQ,CAAC7kQ,IAAI,CACjCv5B,CAAAA,EAAAA,EAAAA,CAAAA,EAAQmsK,GACG/vJ,EAAK+4G,KAAK,CAAC,CAAC6oK,EAAU59R,IAAU,IAAI,CAAC8+R,kBAAkB,CAAClB,EAAU7xH,EAAO/vJ,IAAI,CAAChc,EAAM,IAE/FqD,CAAAA,EAAAA,EAAAA,CAAAA,EAAI,IAAM,IAAI,CAAC06R,WAAW,CAACr0R,GAAG,CAACsS,IAC/B+rJ,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,IAAM,IAAI,CAACk2H,sBAAsB,CAAC9yR,MAAM,CAAC+zR,KAItD,OADA,IAAI,CAACjB,sBAAsB,CAAC1xO,GAAG,CAAC2yO,EAAYxvK,GACrCA,CACX,CAEQmvK,uCAAuC7iR,CAAe,CAAuC,CACjG,IAAMkjR,EAAa/vO,KAAKi1E,SAAS,CAACpoH,GAC5BmjR,EAAmB,IAAI,CAACjB,uBAAuB,CAACx0R,GAAG,CAACw1R,GAE1D,GAAIC,KAAqB7+R,IAArB6+R,EACA,OAAOA,EAEX,IAAMzvK,EAAa,IAAI,CAACsuK,QAAQ,CAAC7kQ,IAAI,CACjCv5B,CAAAA,EAAAA,EAAAA,CAAAA,EAAQmsK,GAAW,IAAI,CAACqzH,mBAAmB,CAACrzH,EAAQ/vJ,IACpD+rJ,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,IAAM,IAAI,CAACm2H,uBAAuB,CAAC/yR,MAAM,CAAC+zR,KAIvD,OADA,IAAI,CAAChB,uBAAuB,CAAC3xO,GAAG,CAAC2yO,EAAYxvK,GACtCA,CACX,CAEQ0vK,oBAAoBn0R,CAA8B,CAAE+Q,CAAe,CAAW,CAKlF,MAAOqjR,CAHHp0R,EAAM+pH,EAAE,GAAK2lK,EAAe2C,YAAY,EAAIryR,EAAM+pH,EAAE,GAAK2lK,EAAe6C,WAAW,EAAIvyR,EAAM+pH,EAAE,GAAK2lK,EAAewC,MAAM,CACnHlyR,EAAM+Q,IAAI,CAACre,MAAM,CAAG,EACpBsN,EAAM+Q,IAAI,CAACre,MAAM,IACAqe,EAAKre,MAAM,EAAIqe,EAAK+4G,KAAK,CAAC,CAAC6oK,EAAU59R,IAAU,IAAI,CAAC8+R,kBAAkB,CAAClB,EAAU5hR,CAAI,CAAChc,EAAM,EAC3H,CACJ,CCnIO,MAAMs/R,EACOC,YACAjtR,CAAAA,KAECktR,CAAAA,gBACAC,CAAAA,eACAC,CAAAA,QAAsB,aAE3BptR,CAAQ,CAAE,CAClB,IAAI,CAACotR,QAAQ,CAAG,IAAI3C,EAAQzqR,GAC5B,IAAI,CAACmtR,eAAe,CAAG,IAAIv3H,EAAAA,CAC3B,KAAI,CAACq3H,YAAY,CAAG,IAAI,CAACE,eAAe,CAACr3H,YAAY,GAErD,IAAI,CAACo3H,gBAAgB,CAAG,IAAI3B,EAAmB,IAAI,CAAC8B,mBAAmB,GAAI,IAAI,CAACJ,YAAY,EAC5F,IAAI,CAACjtR,KAAK,CAAG,IAAI,CAACktR,gBAAgB,CAAC1B,KACvC,CAEOpsO,SAAgB,CACnB,IAAI,CAAC+tO,eAAe,CAACv6N,QAAQ,EACjC,CAEU06N,OAAO30R,CAA8B,CAAoB,QAG/D,IAFwB,CAACy0R,QAAQ,CAACz0R,KAAK,CAACA,IAGpC,IAAI,CAACw0R,eAAe,CAACt0O,IAAI,CAAClgD,GAEnB,IAAI,CAAC40R,uBAAuB,CAAC50R,EAAMqD,EAAE,GAGzC,IAAI,CAACwxR,8BAA8B,CAAC70R,EAC/C,CAEQ00R,qBAAwC,CAC5C,MAAO,CACHz9R,IAAK,CAAS8Z,EAAiBnf,IAAkB,IAAI,CAAC+iS,MAAM,CAAC,CAAEtxR,GAAIyxR,SAAU/qK,GAAI2lK,EAAesC,GAAG,CAAEjhR,KAAMA,EAAMnf,MAAOA,CAAM,GAC9H6M,IAAK,IAAI,CAACs2R,IAAI,CAACllS,IAAI,CAAC,IAAI,EACxBsjS,YAAa,CAASpiR,EAAiBnf,IAAkB,IAAI,CAAC+iS,MAAM,CAAC,CAAEtxR,GAAIyxR,SAAU/qK,GAAI2lK,EAAe6C,WAAW,CAAExhR,KAAMA,EAAMnf,MAAOA,CAAM,GAC9I+iQ,aAAc,CAAS5jP,EAAiBnf,IAAkB,IAAI,CAAC+iS,MAAM,CAAC,CAAEtxR,GAAIyxR,SAAU/qK,GAAI2lK,EAAe2C,YAAY,CAAEthR,KAAMA,EAAMnf,MAAOA,CAAM,GAChJ8G,OAASqY,GAAoB,IAAI,CAAC4jR,MAAM,CAAC,CAAEtxR,GAAIyxR,SAAU/qK,GAAI2lK,EAAewC,MAAM,CAAEnhR,KAAMA,CAAK,GAC/Fk9C,OAAQ,CAAkCl9C,EAAiBnf,IACvD,IAAI,CAAC+iS,MAAM,CAAC,CAAEtxR,GAAIyxR,SAAU/qK,GAAI2lK,EAAe0C,MAAM,CAAErhR,KAAMA,EAAMnf,MAAOA,CAAM,EACxF,CACJ,CAEQmjS,KAAahkR,CAAe,CAAiB,CACjD,IAAMikR,EAAc1D,EAAevgR,EAAM,IAAI,CAAC0jR,QAAQ,CAAC1C,QAAQ,IAC/D,OAAOiD,OAAAA,EAAuBA,EAAY7gL,IAAI,CAAG6gL,CACrD,CAEQC,sBAAsBlkR,CAAe,CAAEmkR,CAAiB,CAAU,CACtE,MAAO,CAAC,mBAAmB,EAAEA,EAAU,oBAAoB,EAAEhxO,KAAKi1E,SAAS,CAACpoH,GAAM,CACtF,CAEQ8jR,+BAA+B70R,CAA8B,CAAoB,CACrF,MAAO,CAAE6vB,MAAO,IAAI,CAAColQ,qBAAqB,CAACj1R,EAAM+Q,IAAI,CAAE/Q,EAAM+pH,EAAE,EAAGorK,QAASn1R,EAAMqD,EAAG,CACxF,CAEQuxR,wBAAwBO,CAAe,CAAoB,CAC/D,MAAO,CAAEtlQ,MAAO,KAAMslQ,QAASA,CAAQ,CAC3C,CACJ,CCvEO,MAAMC,UAA2Df,EAC7Dr0R,MAAMA,CAA8B,CAAoB,CAC3D,OAAO,IAAI,CAAC20R,MAAM,CAAC30R,EACvB,CACJ,CCCO,MAAMq1R,EACOC,WACAjuR,CAAAA,KACAitR,CAAAA,YAECiB,CAAAA,oBACAC,CAAAA,cACAzC,CAAAA,QAAyC,aAE9C1rR,CAAQ,CAAE,CAClB,IAAI,CAACkuR,oBAAoB,CAAG,IAAIlB,EAAcoB,gBAAgBpuR,IAC9D,IAAI,CAACiuR,WAAW,CAAG,IAAI,CAACC,oBAAoB,CAACluR,KAC7C,KAAI,CAACitR,YAAY,CAAG,IAAI,CAACiB,oBAAoB,CAACjB,YAE9C,KAAI,CAACkB,cAAc,CAAG,IAAIJ,EAAuB/tR,GACjD,IAAI,CAACA,KAAK,CAAG,IAAI,CAACmuR,cAAc,CAACnuR,KAEjC,KAAI,CAAC0rR,QAAQ,CAAG,EAAE,CAClB,IAAI,CAAC2C,8BAA8B,EACvC,CAEOC,aAAaR,CAAgB,CAAQ,CACxC,IAAMS,EAAmBT,KAAY9/R,IAAZ8/R,EAAwB,IAAI,CAACpC,QAAQ,CAAC17Q,SAAS,CAAErX,GAAUA,EAAMqD,EAAE,GAAK8xR,GAAW,IAAI,CAACpC,QAAQ,CAACrgS,MAAM,CAAG,EAEnI,GAAIkjS,KAAAA,GAIJ,IAAK,IAAIrgS,EAAI,EAAGA,GAAKqgS,EAAkBrgS,IACnC,IAAI,CAACigS,cAAc,CAACx1R,KAAK,CAAC,IAAI,CAAC+yR,QAAQ,CAACx9R,EAAE,EAG9C,IAAI,CAACw9R,QAAQ,CAAC37R,MAAM,CAAC,EAAGw+R,EAAmB,GAC/C,CAEOnvO,SAAgB,CACnB,IAAI,CAAC+uO,cAAc,CAAC/uO,OAAO,GAC3B,IAAI,CAAC8uO,oBAAoB,CAAC9uO,OAAO,EACrC,CAEOovO,YAAsB,CACzB,OAAO,IAAI,CAAC9C,QAAQ,CAACrgS,MAAM,CAAG,CAClC,CAEOojS,YAAwD,CAC3D,OAAO,IAAI,CAAC/C,QAChB,CAEQ2C,gCAAuC,CAC3C,IAAI,CAACH,oBAAoB,CAACjB,YAAY,CAAClmQ,SAAS,CAAE2nQ,GAAmB,IAAI,CAAChD,QAAQ,CAAC57R,IAAI,CAAC4+R,GAC5F,CACJ,C,cC3DO,OAAMC,UAAiCj5H,MAC1CjnK,YAAY4mB,CAAY,CAAEsoB,CAAe,CAAE,CACvC,KAAK,CAACA,GACN,IAAI,CAACtoB,IAAI,CAAGA,CAChB,CACJ,CCPYu5Q,CAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,yBAAAA,CAAAA,4BCQZ,IAAMC,EAA+B,CACjCrmQ,MAAO,GACPq9F,OAAQ,EACZ,ECTaipK,EAAuB,IDW7B,MACIC,eACCC,CAAAA,aACAC,CAAAA,SAAuD,cAEjD,CACV,IAAI,CAACA,SAAS,CAAG,KACjB,IAAI,CAACD,aAAa,CAAG,IAAIE,EAAAA,CAAeA,CAACL,GAEzC,IAAI,CAACE,eAAe,CAAG,IAAI,CAACC,aAAa,CAACl5H,YAAY,EAC1D,CAEOq5H,gBAAgBnvR,CAAqB,CAAQ,CAChD,IAAI,CAACovR,gBAAgB,GACrB,IAAI,CAACH,SAAS,CAAG,IAAIjB,EAAqBhuR,EAC9C,CAEOqvR,kBAA0D,CAC7D,GAAI,WAAI,CAACJ,SAAS,CACd,MAAM,IAAIN,EAAyBC,EAAOU,yBAAyB,CAAE,yDAGzE,OAAO,IAAI,CAACL,SAChB,CAEOM,YAAY9kH,CAAiC,CAAQ,CACxD,IAAM+kH,EAAY,IAAI,CAACR,aAAa,CAACt3H,QAAQ,GAC1BjmK,OAAO0oH,OAAO,CAACswD,GAAUzhI,IAAI,CAAC,OAAC,CAAC/9C,EAAKV,EAAM,UAAKilS,CAAS,CAACvkS,EAA4B,GAAKV,CAAK,IAInH,IAAI,CAACykS,aAAa,CAACn2O,IAAI,CAAC,CAAE,GAAG22O,CAAS,CAAE,GAAG/kH,CAAS,EACxD,CAEO3xG,OAAc,CACjB,IAAI,CAACs2N,gBAAgB,GAErB,IAAI,CAACJ,aAAa,CAACp8N,QAAQ,GAC3B,IAAI,CAACo8N,aAAa,CAAG,IAAIE,EAAAA,CAAeA,CAACL,GACzC,IAAI,CAACE,eAAe,CAAG,IAAI,CAACC,aAAa,CAACl5H,YAAY,EAC1D,CAEQs5H,kBAAyB,CACN,OAAnB,IAAI,CAACH,SAAS,GAIlB,IAAI,CAACA,SAAS,CAAC7vO,OAAO,GACtB,IAAI,CAAC6vO,SAAS,CAAG,KACrB,CACJ,CExDO,OAAMQ,EACT,OAAcC,aAAqD,CAC/D,GAAI,CACA,IAAMlkS,EAAWsjS,EAAqBO,gBAAgB,GACtD,OAAO7jS,EAASyiS,WAAW,CAACpnQ,IAAI,CAAC8oQ,CAAAA,EAAAA,EAAAA,CAAAA,EAAUnkS,EAASwU,KAAK,CAAC5I,GAAG,IACjE,CAAE,KAAM,CACJ,OAAO2yR,IAAqBljQ,IAAI,CAC5BuyB,CAAAA,EAAAA,EAAAA,CAAAA,EAAWliD,IACP43R,EAAqBK,eAAe,CAACj4R,GACrC,IAAM1L,EAAWsjS,EAAqBO,gBAAgB,GACtD,OAAO7jS,EAASyiS,WAAW,CAACpnQ,IAAI,CAAC8oQ,CAAAA,EAAAA,EAAAA,CAAAA,EAAUnkS,EAASwU,KAAK,CAAC5I,GAAG,IAAKyxC,CAAAA,EAAAA,EAAAA,CAAAA,IACtE,GAER,CACJ,CAEA,OAAc+4E,UAAuC,CACjD,OAAOktK,EAAqBC,eAChC,CAEA,OAAcj2N,OAAc,CACxBg2N,EAAqBh2N,KAAK,EAC9B,CAEA,OAAc01N,YAAsB,CAEhC,OAAOhjS,EAD+B6jS,gBAAgB,GACtCb,UAAU,EAC9B,CACJ,CChCO,IAAMoB,EAAkB7pF,EAAAA,CAAiBA,CAACqpB,SAAS,CAAU,CAChEppB,YAAcC,GAA4BznC,QAAQ1vK,OAAO,CAAiB,CAAEk2D,KAAMihJ,EAAcpiL,MAAM,CAACnK,QAAQ,GAAIlc,QAASyoM,EAAczoM,OAAQ,GAClJ0oM,KAAMC,EAAAA,CAAWA,CACjBlU,eAAiB/6L,GAAuBA,EAASwvH,IAAI,GAAGl8H,IAAI,CAAE0E,GAASA,SAAAA,EAAK2S,WAAW,IACvFvG,IAAK,IAAM+qM,EAAU8hF,YAAY,EACrC,GCFM0H,EAAiC9pF,EAAAA,CAAiBA,CAAC+pF,WAAW,CAA2C,CAC3G9pF,YAAcC,GAA4BznC,QAAQ1vK,OAAO,CAAiB,CAAEk2D,KAAMihJ,EAAcpiL,MAAM,CAACnK,QAAQ,GAAIlc,QAASyoM,EAAczoM,OAAQ,GAClJ0oM,KAAMC,EAAAA,CAAWA,CACjBlU,eAAgB,IAAMzzB,QAAQ1vK,OAAO,CAAC,IACtCwM,IAAK,IAAM+qM,EAAU+rC,eAAe,EACxC,GAEa29C,EAAwBvvL,GAC1BqvL,EAA+BG,SCZ1BA,EAAqBhwR,CAAQ,EACzC,GAAI9S,MAAMmsB,OAAO,CAACrZ,GAAQ,CACtB,IAAMiwR,EAAW,EAAE,CACnB,IAAK,IAAMprQ,KAAQ7kB,EACfiwR,EAASngS,IAAI,CAACkgS,EAAkBnrQ,IAGpC,OAAOorQ,CACX,CAEA,GAAIjwR,OAAAA,GAAkB,iBAAOA,EACzB,OAAOA,EAGX,IAAMiwR,EAAoC,CAAC,EAG3C,IAAK,GAAM,CAAChlS,EAAKV,EAAM,GAFPkH,OAAO0oH,OAAO,CAACn6G,GAI3BiwR,CAAQ,CADO,SAASjlS,IAAI,CAACC,GAAOA,CAAG,CAAC,EAAE,CAACovF,WAAW,GAAKpvF,EAAIkC,KAAK,CAAC,GAAKlC,EAC1D,CAAG+kS,EAAkBzlS,GAGzC,OAAO0lS,CACX,EDX4DzvL,GpBdhD8nL,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,UAAAA,CAAAA,wBAAAA,EAAAA,cAAAA,CAAAA,0BAAAA,EAAAA,YAAAA,CAAAA,uBAAAA,EAAAA,MAAAA,CAAAA,gCAAAA,EAAAA,QAAAA,CAAAA,kCAAAA,EAAAA,QAAAA,CAAAA,kCAAAA,EAAAA,OAAAA,CAAAA,iCAAAA,EAAAA,MAAAA,CAAAA,gCAAAA,EAAAA,aAAAA,CAAAA,uCAAAA,EAAAA,qBAAAA,CAAAA,+CAAAA,EAAAA,gBAAAA,CAAAA,0CsBMZ,IAAM4H,EAAmE,CACrE,CAAC5H,EAAkBU,YAAY,CAAC,CAAEZ,EAAgBY,YAAY,CAC9D,CAACV,EAAkBY,cAAc,CAAC,CAAEd,EAAgBc,cAAc,CAClE,CAACZ,EAAkBQ,UAAU,CAAC,CAAEV,EAAgBU,UAAU,CAC1D,CAACR,EAAkBc,MAAM,CAAC,CAAEhB,EAAgBgB,MAAM,CAClD,CAACd,EAAkB5E,QAAQ,CAAC,CAAE0E,EAAgB1E,QAAQ,CACtD,CAAC4E,EAAkBliG,QAAQ,CAAC,CAAEgiG,EAAgBhiG,QAAQ,CACtD,CAACkiG,EAAkBe,OAAO,CAAC,CAAEjB,EAAgBiB,OAAO,CACpD,CAACf,EAAkBz8O,MAAM,CAAC,CAAEu8O,EAAgBv8O,MAAM,CAClD,CAACy8O,EAAkBiB,aAAa,CAAC,CAAEnB,EAAgBmB,aAAa,CAChE,CAACjB,EAAkBmB,qBAAqB,CAAC,CAAErB,EAAgBqB,qBAAqB,CAChF,CAACnB,EAAkBqB,gBAAgB,CAAC,CAAEvB,EAAgBuB,gBAC1D,EAEawG,EAAqBC,IAC9B,IAAMC,EAAW,IAAIl1P,IAErB,IAAK,IAAMxiC,KAASy3R,EAAS,CACzB,GAAIz3R,EAAM+pH,EAAE,GAAK2lK,EAAe0C,MAAM,CAClC,SAGJ,IAAMR,EAAU5xR,EAAM+Q,IAAI,CAACgpE,IAAI,CAAC,KAChC,GAAI,CAAE63M,CAAAA,KAAW2F,CAAc,EAC3B,SAGJ,IAAM3lS,EAAQoO,EAAMpO,KAAK,CAACA,KAAK,CAC/B,GAAIA,KAAUyD,IAAVzD,GAAuBy/R,EAAcz/R,GACrC,SAGJ,IAAM8qB,EAAO66Q,CAAe,CAAC3F,EAA6B,CAC1D8F,EAASp2O,GAAG,CAAC5kC,EAAO9qB,EAA2BmvB,QAAQ,GAC3D,CAEA,OAAOxsB,MAAM4rD,IAAI,CAACu3O,EAAU,OAAC,CAACh7Q,EAAM6kG,EAAQ,GAAM,OAC9C7kG,KAAAA,EACA9qB,MAAO2vH,CACX,CAAC,EACL,E,eC3CO,IAAMo2K,EAAsBrzK,IAC/B,IAAK,IAAMw8C,KAAUx8C,EACjB33F,EAAAA,CAAOA,CAACC,UAAU,CAAC,gBAAiB,wBAAyBk0I,EAAOpkJ,IAAI,CAEhF,ECFak7Q,EAAqB,KAC9B,IAAM/kS,EAAWsjS,EAAqBO,gBAAgB,GAChDe,EAAU5kS,EAASijS,UAAU,GAC7B+B,EAAWL,EAAkBC,GAEnC,GAAII,IAAAA,EAASnlS,MAAM,CACf,OAGJyjS,EAAqBS,WAAW,CAAC,CAAE/mQ,MAAO,GAAOq9F,OAAQ,EAAK,GAE9D,IAAM4qK,EAAUL,EAAQM,EAAE,CAAC,IAC3BX,EAAqBS,GAAUzpQ,SAAS,CAAC,CACrCyB,MAAO,IAAMsmQ,EAAqBS,WAAW,CAAC,CAAE/mQ,MAAO,GAAMq9F,OAAQ,EAAM,GAC3EhtE,KAAM,KACFy3O,EAAmBE,GACnBhlS,EAAS8iS,YAAY,CAACmC,GAASz0R,IAC/B8yR,EAAqBS,WAAW,CAAC,CAAE1pK,OAAQ,EAAM,GACjD/wF,SAAS+hK,MAAM,EACnB,CACJ,EACJ,ECtBa85F,EAA8B3tC,IACvC,IAAMx3P,EAAWsjS,EAAqBO,gBAAgB,GAEtD,IAAK,GAAM,CAACpkS,EAAKV,EAAM,GAAIkH,OAAO0oH,OAAO,CAAC6oI,GAEtCx3P,EAASyiS,WAAW,CAACr6M,OAAO,CADX3oF,EACqB,CAAC27D,MAAM,CAACr8D,EAEtD,ECPaqmS,EAAiC5tC,IAC1C,IAAMx3P,EAAWsjS,EAAqBO,gBAAgB,GAEtD,IAAK,GAAM,CAACpkS,EAAKV,EAAM,GAAIkH,OAAO0oH,OAAO,CAAC6oI,GAEtCx3P,EAASyiS,WAAW,CAACrE,UAAU,CADd3+R,EACwB,CAAC27D,MAAM,CAACr8D,EAEzD,ECPasmS,EAA+B7tC,IACxC,IAAMx3P,EAAWsjS,EAAqBO,gBAAgB,GAEtD,IAAK,GAAM,CAACpkS,EAAKV,EAAM,GAAIkH,OAAO0oH,OAAO,CAAC6oI,GAEtCx3P,EAASyiS,WAAW,CAACpE,QAAQ,CADZ5+R,EACsB,CAAC27D,MAAM,CAACr8D,EAEvD,ECTaumS,EAA4B9tC,IACrC,IAAMx3P,EAAWsjS,EAAqBO,gBAAgB,GAChDrwR,EAAWxT,EAASyiS,WAAW,CAACnE,aAAa,CAAC9qR,QAAQ,CAAC5H,GAAG,GAEhE,GAAI4H,OAAAA,EAAmB,CAEnB,IAAM89G,EAAU,CADmB,GAAtB99G,CAAQ,CAACgkP,EAAQ73O,IAAI,CAAC,CAG/B5gB,MAAOy4P,EAAQz4P,KACnB,EAEAiB,EAASyiS,WAAW,CAACnE,aAAa,CAAC9qR,QAAQ,CAACgkP,EAAQ73O,IAAI,CAAC,CAACy7C,MAAM,CAACk2D,EACrE,CACJ,ECZai0K,EAAwB/tC,IACjC,IAAMx3P,EAAWsjS,EAAqBO,gBAAgB,GAEtD,GAAIrsC,EAAQ3tO,IAAI,GAAK+yQ,EAAgBqB,qBAAqB,CAAE,CACxD,IAAMuH,EAAYxlS,EAASyiS,WAAW,CAACnE,aAAa,CAAC9qR,QAAQ,CAACwqR,qBAAqB,CAACpyR,GAAG,GACvF,GAAI45R,OAAAA,EAAoB,CACpB,IAAMv2Q,EAAWu2Q,EAAU7/Q,OAAO,CAAC6xO,EAAQt1P,KAAK,CAAC,CAACzC,GAAG,CACrDO,EAASyiS,WAAW,CAACnE,aAAa,CAAC9qR,QAAQ,CAACwqR,qBAAqB,CAAC5iO,MAAM,CAAC,CAAEr8D,MAAOkwB,CAAS,EAC/F,CACJ,CAEA,GAAIuoO,EAAQ3tO,IAAI,GAAK+yQ,EAAgBuB,gBAAgB,CAAE,CACnD,IAAMsH,EAAQzlS,EAASyiS,WAAW,CAACnE,aAAa,CAAC9qR,QAAQ,CAAC0qR,gBAAgB,CAACtyR,GAAG,GAC9E,GAAI65R,OAAAA,EAAgB,CAChB,IAAMx2Q,EAAWw2Q,EAAM9/Q,OAAO,CAAC6xO,EAAQt1P,KAAK,CAAC,CAC7ClC,EAASyiS,WAAW,CAACnE,aAAa,CAAC9qR,QAAQ,CAAC0qR,gBAAgB,CAAC9iO,MAAM,CAAC,CAAEr8D,MAAOkwB,CAAS,EAC1F,CACJ,CACJ,C,oECrBYy2Q,E,wBCCZ,QAAU,qKCGH,IAAMC,EAA2CzzP,IACpD,IAAM0zP,EAAM1zP,KAAc1vC,IAAd0vC,EAAM0zP,GAAG,CAAiB1zP,EAAM0zP,GAAG,CAAG,GAC5C7wL,EAAY,CAAC,WAAW,EAAE7iE,KAAoB1vC,IAApB0vC,EAAM6iE,SAAS,CAAiB7iE,EAAM6iE,SAAS,CAAG,GAAG,CAAC,CAEtF,MACI,UAACihE,MAAAA,CAAIjhE,UAAWA,EAAAA,SACZ,UAAC67C,MAAAA,CAAIg1I,IAAKA,EAAK96G,IAAK54I,EAAM44I,GAAG,IAGzC,E,kHCVO,IAAM+6G,EAAa9yE,EAAAA,CAAWA,CAACC,SAAS,CAA6B,WAE5E6yE,EAAWzhS,GAAG,CACV,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCAGrB4yE,EAAWzhS,GAAG,CACV,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCAGrB4yE,EAAWzhS,GAAG,CACV,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCAGrB4yE,EAAWzhS,GAAG,CACV,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCCiCd,IAAM6yE,EAAkD,CAC3DzH,SAAU,CACNZ,eArC4BA,IAChC4H,CAAAA,EAAAA,EAAAA,EAAAA,EAA4B,CACxB5H,eAAgB,CACZ1+R,MAAO0+R,CACX,CACJ,EACJ,CAgCI,EACAr1M,QAAS,CACLm1M,aAhD0BA,IAC9B4H,CAAAA,EAAAA,EAAAA,EAAAA,EAA2B,CACvB5H,aAAc,CACVx+R,MAAOw+R,CACX,CACJ,EACJ,CA2CI,EACAa,WAAY,CACRf,WAnCwBA,IAC5B+H,CAAAA,EAAAA,EAAAA,EAAAA,EAA8B,CAC1B/H,WAAY,CACRt+R,MAAOs+R,CACX,CACJ,EACJ,CA8BI,EACAiB,cAAe,CACXyH,mBA9B2BC,IAC/B,IAAI/2Q,EAAW,GAGfA,GAFY+2Q,CAAAA,EAAiBxyR,QAAQ,CAACyyR,MAAM,CAAG,IAAM,EAAC,EAC1CD,CAAAA,EAAiBxyR,QAAQ,CAAC64C,KAAK,CAAG,IAAM,EAAC,EACzC25O,CAAAA,EAAiBxyR,QAAQ,CAAC0yR,IAAI,CAAG,IAAM,EAAC,EAEpDZ,CAAAA,EAAAA,EAAAA,EAAAA,EAAyB,CACrB3lR,KAAMqmR,EAAiBrmR,IAAI,CAC3B5gB,MAAOkwB,CACX,EACJ,EAqBQk3Q,oBAnBoBC,IACxBb,CAAAA,EAAAA,EAAAA,EAAAA,EAAqB,CACjB17Q,KAAMu8Q,EAAcv8Q,IAAI,CACxB3nB,MAAOkkS,EAAclkS,KACzB,EACJ,CAeI,EACAmkS,aAActB,EAAAA,EAClB,CJtEYW,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,UAAAA,CAAAA,aAAAA,EAAAA,QAAAA,CAAAA,WAAAA,EAAAA,OAAAA,CAAAA,UAAAA,EAAAA,OAAAA,CAAAA,UAAAA,EAAAA,aAAAA,CAAAA,gBKEL,IAAMY,EAAiB,IAAoBrhS,OAAOshS,UAAU,CAAC,sBAAsBv6K,OAAO,CAAG,KAAO05K,EAAKc,OAAS,CCC5GC,EAAU,CAAC/kJ,EAAmBD,EAA6BilJ,KACpE,GAAIjlJ,IAAAA,EAAe5hJ,MAAM,CACrB,OAAO6hJ,EAGX,IAAMilJ,EAAUllJ,EAAe5gI,QAAQ,CAAC6gI,GAAgBA,EAAO4kJ,IAK/D,OAJI5kJ,IAASilJ,GACTD,EAAYC,GAGTA,CACX,E,gDCdO,IAAM9rF,EAAY,CACrB+rF,WAAY,KACR,MAAM,MAAU,8CACpB,EACAC,UAAW,KACP,MAAM,MAAU,+CACpB,CACJ,E,gDCFO,IAAMC,EAAwC,CACjD,CACIvtM,KAAMwtM,EAAAA,CAAWA,CACjB,IAAI7rK,MAAO,CACP,OAAO2qK,EAAW7+R,SAAS,CAAC,mCAChC,EACA06I,KAAMgkJ,EAAKc,OACf,EACA,CACIjtM,KAAMytM,EAAAA,CAAYA,CAClB,IAAI9rK,MAAO,CACP,OAAO2qK,EAAW7+R,SAAS,CAAC,oCAChC,EACA06I,KAAMgkJ,EAAKt6F,QACf,EACA,CACI7xG,KAAM0tM,EAAAA,CAAWA,CACjB,IAAI/rK,MAAO,CACP,OAAO2qK,EAAW7+R,SAAS,CAAC,mCAChC,EACA06I,KAAMgkJ,EAAKwB,OACf,EACA,CACI3tM,KAAM4tM,EAAAA,CAAiBA,CACvB,IAAIjsK,MAAO,CACP,OAAO2qK,EAAW7+R,SAAS,CAAC,yCAChC,EACA06I,KAAMgkJ,EAAK0B,aACf,EACA,CACI7tM,KAAM8tM,EAAAA,CAAoBA,CAC1BC,UAAW,GACX,IAAIpsK,MAAO,CACP,OAAO2qK,EAAW7+R,SAAS,CAAC,sCAChC,EACA06I,KAAMgkJ,EAAK6B,UACf,EACF,C,SCxCF,QAAU,uuDCQH,IAAMC,EAA6Dt1P,IACtE,IAAMu1P,EAAiB/lJ,IACnB5nH,EAAAA,CAAOA,CAACC,UAAU,CAAC,mBAAoB,cAAe,CAAC,EAAE2nH,EAAK,cAAc,CAAC,EAC7ExvG,EAAMw1P,OAAO,CAAChmJ,EAClB,EAEMimJ,EAAkBb,EAAehlS,MAAM,CAAEkhH,GAAW9wE,EAAM08H,KAAK,CAAC/tJ,QAAQ,CAACmiG,EAAO0+B,IAAI,GACpFkmJ,EAAa11P,OAAAA,EAAMwvG,IAAI,CAAY,oCAAsC,GAE/E,MACI,UAACmmJ,QAAAA,CACG5xH,YAAU,mBACVlhE,UAAW,CAAC,qBAAqB,EAAE6yL,EAAW,CAAC,CAC/CE,aAAYjC,EAAW7+R,SAAS,CAAC,gDACjC,WAAC+gS,MAAAA,CAAAA,SAAAA,CACIJ,EAAgBpiS,GAAG,CAAEy9G,IAClB,IAAMjL,EAAWiL,EAAO0+B,IAAI,GAAKxvG,EAAMwvG,IAAI,CAAG,yCAA2C,GACnFsmJ,EAAchlL,EAAO0+B,IAAI,GAAKxvG,EAAMwvG,IAAI,CAAG,OAASl/I,KAAAA,EAE1D,MACI,WAACixN,EAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACIzwG,CAAqB,IAArBA,EAAOskL,SAAS,EACb,UAACtxH,MAAAA,CAAIjhE,UAAU,gCAAgCkhE,YAAW,CAAC,4BAA4B,EAAEjzD,EAAO0+B,IAAI,CAAC,QAAQ,CAAC,GAElH,WAAC1+B,SAAAA,CACGjO,UAAW,CAAC,6BAA6B,EAAEgD,EAAS,CAAC,CACrDk+D,YAAW,CAAC,4BAA4B,EAAEjzD,EAAO0+B,IAAI,CAAC,OAAO,CAAC,CAC9DhkC,QAAS,IAAM+pL,EAAczkL,EAAO0+B,IAAI,EACxCumJ,eAAcD,EAAAA,SAAAA,CACd,UAAC57Q,EAAAA,CAAIA,CAAJA,CAAK2oF,UAAU,6BAA6B4sC,OAAQ3+B,EAAOzpB,IAAI,GAC/DypB,EAAOkY,IAAI,MAVLlY,EAAO0+B,IAAI,CAclC,GAEA,UAACs0B,MAAAA,CAAIjhE,UAAU,+BAA+B,GAE9C,WAAC2mL,EAAAA,CAASA,CAATA,CACGzlH,YAAU,+BACVlhE,UAAU,0DACV+yL,aAAYjC,EAAW7+R,SAAS,CAAC,wCACjCuiC,KAAMsxK,EAAU+rF,UAAU,GAC1BlpL,QAAS,IAAM5jF,EAAAA,CAAOA,CAACC,UAAU,CAAC,mBAAoB,uBACtD56B,OAAO,SACP+oS,IAAI,gCACJ,UAAC97Q,EAAAA,CAAIA,CAAJA,CAAK2oF,UAAU,6BAA6B4sC,OAAQslJ,EAAAA,CAAAA,GACpDpB,EAAW7+R,SAAS,CAAC,sCAE1B,WAAC00R,EAAAA,CAASA,CAATA,CACGzlH,YAAU,8BACVlhE,UAAU,0DACV+yL,aAAYjC,EAAW7+R,SAAS,CAAC,uCACjCuiC,KAAMsxK,EAAUgsF,SAAS,GACzBnpL,QAAS,IAAM5jF,EAAAA,CAAOA,CAACC,UAAU,CAAC,mBAAoB,uCACtD56B,OAAO,SACP+oS,IAAI,gCACJ,UAAC97Q,EAAAA,CAAIA,CAAJA,CAAK2oF,UAAU,6BAA6B4sC,OAAQslJ,EAAAA,CAAAA,GACpDpB,EAAW7+R,SAAS,CAAC,yCAK1C,E,qCCvEA,QAAU,wdCIH,IAAMw/R,EAA6Ct0P,GAElD,WAACuhL,EAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACG,UAAC00E,KAAAA,CAAGpzL,UAAU,8BAAsB8wL,EAAW7+R,SAAS,CAAC,4BAA4B,GACrF,UAAC2+R,EAAAA,CAAO5wL,UAAU,sBAAsB+1E,IAAK54I,EAAMk2P,WAAW,CAAC1+C,UAAU,GAEzE,UAACy+C,KAAAA,CAAGpzL,UAAU,8BAAsB8wL,EAAW7+R,SAAS,CAAC,kCAAkC,GAC3F,UAACia,IAAAA,CAAE8zF,UAAU,uBAAuBkhE,YAAU,+BACzC/jI,EAAMk2P,WAAW,CAACC,WAAW,GAGlC,UAACF,KAAAA,CAAGpzL,UAAU,8BAAsB8wL,EAAW7+R,SAAS,CAAC,gCAAgC,GACzF,UAACia,IAAAA,CAAE8zF,UAAU,uBAAuBkhE,YAAU,8BACzC/jI,EAAMk2P,WAAW,CAACj8O,SAAS,GAGhC,UAACg8O,KAAAA,CAAGpzL,UAAU,8BAAsB8wL,EAAW7+R,SAAS,CAAC,iCAAiC,GAC1F,UAACia,IAAAA,CAAE8zF,UAAU,uBAAuBkhE,YAAU,2BACzC/jI,EAAMk2P,WAAW,CAACE,OAAO,M,0BCrBnC,IAAMC,EAAsD,CAC/D,CACI/3R,GAAI,cACJzR,MAAO,OACP,IAAI2K,OAAQ,CACR,OAAOm8R,EAAW7+R,SAAS,CAAC,uBAChC,CACJ,EACA,CACIwJ,GAAI,eACJzR,MAAO,QACP,IAAI2K,OAAQ,CACR,OAAOm8R,EAAW7+R,SAAS,CAAC,wBAChC,CACJ,EACF,CChBF,QAAU,smBCMH,IAAMkgS,EAA6Ch1P,GAElD,WAACuhL,EAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACG,UAAC00E,KAAAA,CAAGpzL,UAAU,8BAAsB8wL,EAAW7+R,SAAS,CAAC,wBAAwB,GACjF,UAACia,IAAAA,CAAE8zF,UAAU,oCAA4B8wL,EAAW7+R,SAAS,CAAC,8BAA8B,GAC5F,UAACw1R,EAAAA,CAASA,CAATA,CACGznL,UAAU,6BACV4iK,WAAYkuB,EAAW7+R,SAAS,CAAC,sBAAuB,CACpD0C,MAAOm8R,EAAW7+R,SAAS,CAAC,wDAC5ByiB,KAAMo8Q,EAAW7+R,SAAS,CAAC,qCAC/B,EAAE,GAEN,UAACgvK,MAAAA,CAAIjhE,UAAU,oCACX,UAACyzL,EAAAA,CAAUA,CAAVA,CACGzpS,MAAOmzC,EAAM1+B,QAAQ,CAAC+pR,YAAY,CAACx+R,KAAK,CAACmvB,QAAQ,GACjD0N,MAAO2sQ,EACP7+R,MAAOm8R,EAAW7+R,SAAS,CAAC,yBAC5Bo0B,SAAWr8B,GAAUmzC,EAAMzoC,OAAO,CAAC8zR,YAAY,CAACx+R,SAAAA,EAAiB,EAAP,MCtBjE0pS,EAAoD,CAC7D,CACIj4R,GAAI,oBACJzR,MAAO,QACP,IAAI2K,OAAQ,CACR,OAAOm8R,EAAW7+R,SAAS,CAAC,+BAChC,CACJ,EACA,CACIwJ,GAAI,mBACJzR,MAAO,OACP,IAAI2K,OAAQ,CACR,OAAOm8R,EAAW7+R,SAAS,CAAC,8BAChC,CACJ,EACF,CChBF,QAAU,kgBCKH,IAAM0hS,EAA8Dx2P,GAEnE,WAACuhL,EAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACG,UAAC00E,KAAAA,CAAGpzL,UAAU,kCAA0B8wL,EAAW7+R,SAAS,CAAC,+BAA+B,GAC5F,UAACia,IAAAA,CAAE8zF,UAAU,wCAAgC8wL,EAAW7+R,SAAS,CAAC,qCAAqC,GACvG,UAACgvK,MAAAA,CAAIjhE,UAAU,wCACX,UAACyzL,EAAAA,CAAUA,CAAVA,CACGzpS,MAAOmzC,EAAM1+B,QAAQ,CAAC6pR,UAAU,CAACt+R,KAAK,CAACmvB,QAAQ,GAC/C0N,MAAO6sQ,EACP/+R,MAAOm8R,EAAW7+R,SAAS,CAAC,oBAC5Bo0B,SAAWr8B,GAAUmzC,EAAMzoC,OAAO,CAAC4zR,UAAU,CAACt+R,SAAAA,EAAiB,EAAP,M,gDCf5E,QAAU,wRCMH,IAAMqsM,EAA+Cl5J,IACxD,IAAM1hC,EAAKm4R,CAAAA,EAAAA,EAAAA,KAAAA,IACLhjR,EAAUusB,EAAM1+B,QAAQ,CAACiqR,cAAc,CAAC93Q,OAAO,CAC/C,CAACnR,EAAOo0R,EAAS,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,EAAwB,CAC9ClpR,KAAMouJ,EAAAA,CAAcA,CAACC,MAAM,CAC3B34I,OAAQ,GACRy4I,gBAAiBnoJ,EAAQnB,SAAS,CAAEzlB,GAAUA,EAAMU,GAAG,GAAKyyC,EAAM1+B,QAAQ,CAACiqR,cAAc,CAAC1+R,KAAK,CACnG,GAOA,MALA+pS,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,KACb,IAAMrpS,EAAMyyC,EAAM1+B,QAAQ,CAACiqR,cAAc,CAAC93Q,OAAO,CAACnR,EAAMs5J,eAAe,CAAC,CAACruK,GAAG,CAC5EyyC,EAAMzoC,OAAO,CAACg0R,cAAc,CAACh+R,EACjC,EAAG,CAAC+U,EAAMs5J,eAAe,CAAC,EAGtB,WAAC2lD,EAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACG,UAAC00E,KAAAA,CAAGpzL,UAAU,+BAAuB8wL,EAAW7+R,SAAS,CAAC,iCAAiC,GAC3F,UAACgvK,MAAAA,CAAIjhE,UAAU,gCACX,UAACshE,EAAAA,CAAcA,CAAdA,CAAAA,SACG,UAACklD,EAAAA,CAAMA,CAANA,CAAO/mN,MAAOA,EAAOinN,cAAemtE,EAAUr3K,QAAS5rG,EAAS61M,QAAShrN,EAAIsjN,aAAci1E,EAAAA,CAAAA,EAAAA,EAAAA,GAAAA,EAKhH,E,2DC9BA,QAAU,sPCGH,IAAMC,GAA6D92P,IACtE,IAAM+2P,EAAe/2P,EAAM+2P,YAAY,CAEvC,MACI,WAACx1E,EAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACG,WAACy1E,EAAAA,CAAKA,CAACC,IAAI,YACP,UAACnzH,MAAAA,CAAIjhE,UAAU,uCAA+Bk0L,EAAaz/R,KAAK,GAChE,UAACwsK,MAAAA,CAAIjhE,UAAU,2CAAmCk0L,EAAanvN,QAAQ,MAE3E,UAACovN,EAAAA,CAAKA,CAACC,IAAI,WACP,UAACnzH,MAAAA,CAAIjhE,UAAU,iDACX,UAACsqE,EAAAA,CAAQA,CAARA,CACG11K,UAAWs/R,EAAaz/R,KAAK,CAC7ByjB,UAAWilB,EAAM+2P,YAAY,CAACz1R,QAAQ,CAAC64C,KAAK,CAC5CjxB,SAAWnO,IACPg8Q,EAAaz1R,QAAQ,CAAC64C,KAAK,CAAGp/B,EAC9BilB,EAAM6zP,kBAAkB,CAACkD,EAC7B,CAAC,EAAD,KAIZ,UAACC,EAAAA,CAAKA,CAACC,IAAI,WACP,UAACnzH,MAAAA,CAAIjhE,UAAU,iDACX,UAACsqE,EAAAA,CAAQA,CAARA,CACG11K,UAAWs/R,EAAaz/R,KAAK,CAC7ByjB,UAAWilB,EAAM+2P,YAAY,CAACz1R,QAAQ,CAACyyR,MAAM,CAC7C7qQ,SAAWnO,IACPg8Q,EAAaz1R,QAAQ,CAACyyR,MAAM,CAAGh5Q,EAC/BilB,EAAM6zP,kBAAkB,CAACkD,EAC7B,CAAC,EAAD,OAMxB,ECtCA,QAAU,gvBCOH,IAAM7B,GAAyDl1P,IAClE,IAAMk3P,EAAcvD,EAAW7+R,SAAS,CAAC,uCACnCqiS,EAAaxD,EAAW7+R,SAAS,CAAC,6CAClC,CAACsiS,EAAkBC,EAAwB,CAAGV,CAAAA,EAAAA,EAAAA,QAAAA,EAAkB,IAEhE,CAACW,EAAgBC,EAAkB,CAAGZ,CAAAA,EAAAA,EAAAA,QAAAA,EAAwB,CAChElpR,KAAMouJ,EAAAA,CAAcA,CAACC,MAAM,CAC3B34I,OAAQ,GACRy4I,gBAAiB57H,EAAMosP,aAAa,CAACoL,cAAc,CAAClE,SAAS,CAACtjS,KAClE,GAEM,CAACynS,EAAWC,EAAa,CAAGf,CAAAA,EAAAA,EAAAA,QAAAA,EAAwB,CACtDlpR,KAAMouJ,EAAAA,CAAcA,CAACC,MAAM,CAC3B34I,OAAQ,GACRy4I,gBAAiB57H,EAAMosP,aAAa,CAACoL,cAAc,CAACtrP,IAAI,CAACl8C,KAC7D,SAEA2nS,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,KACP,IAAMC,EAAM1F,CAAAA,EAAAA,EAAAA,EAAAA,IAAkB7oQ,SAAS,CAAElD,IACjCA,IAAWixQ,GACXC,EAAwBlxQ,GAE5ByxQ,EAAI54K,WAAW,EACnB,EACJ,GAuBI,WAAC64K,EAAAA,CAAQA,CAARA,CAAAA,SAAAA,CACG,WAACb,EAAAA,CAAKA,CAALA,CAAAA,SAAAA,CACG,WAACA,EAAAA,CAAKA,CAAChxP,MAAM,YACT,UAACgxP,EAAAA,CAAKA,CAACc,UAAU,WAAEnE,EAAW7+R,SAAS,CAAC,oCAAoC,GAC5E,UAACkiS,EAAAA,CAAKA,CAACc,UAAU,WACb,UAACh0H,MAAAA,CAAIjhE,UAAU,kDAA0C8wL,EAAW7+R,SAAS,CAAC,oCAAoC,EAApC,GAElF,UAACkiS,EAAAA,CAAKA,CAACc,UAAU,WACb,UAACh0H,MAAAA,CAAIjhE,UAAU,kDAA0C8wL,EAAW7+R,SAAS,CAAC,qCAAqC,EAArC,MAGtF,UAACkiS,EAAAA,CAAKA,CAAChjH,IAAI,WACNh0I,EAAMosP,aAAa,CAAC2L,oBAAoB,CAAC1kS,GAAG,CAAE0jS,GAEvC,UAACC,EAAAA,CAAKA,CAACgB,GAAG,WACN,UAAClB,GAAAA,CAAgBC,aAAcA,EAAclD,mBAAoB7zP,EAAMzoC,OAAO,CAACs8R,kBAAkB,IADrFkD,EAAaz/R,KAAK,EAIxC,GAAF,GAIR,WAACwsK,MAAAA,CAAIjhE,UAAU,qCACX,WAACihE,MAAAA,CAAAA,SAAAA,CACG,UAACA,MAAAA,CAAIjhE,UAAU,2CAAmCq0L,CAAAA,GAClD,UAACpzH,MAAAA,CAAIjhE,UAAU,iDAAyCs0L,CAAAA,GAAAA,GAG5D,WAACrzH,MAAAA,CAAIjhE,UAAU,uDACX,UAACihE,MAAAA,CAAIjhE,UAAU,8CACX,UAACwmH,EAAAA,CAAMA,CAANA,CACG/mN,MAAOg1R,EACP/tE,cArDQgpE,IAC5B,GAAIA,EAAS32H,eAAe,GAAK07H,EAAe17H,eAAe,CAAE,CAC7D,IAAMp/C,EAAU,CAAE,GAAGx8E,EAAMosP,aAAa,CAACoL,cAAc,CAAClE,SAAU,CAClE92K,CAAAA,EAAQxsH,KAAK,CAAGuiS,EAAS32H,eAAe,CACxC57H,EAAMzoC,OAAO,CAAC08R,mBAAmB,CAACz3K,EACtC,CAEA+6K,EAAkBhF,EACtB,EA8CwBlzK,QAASr/E,EAAMosP,aAAa,CAACoL,cAAc,CAAClE,SAAS,CAAC7/Q,OAAO,CAC7D61M,QAAQ,kBACR1H,aAAci1E,EAAAA,CAAAA,EAAAA,GAGtB,UAAC/yH,MAAAA,CAAIjhE,UAAU,8CACX,UAACwmH,EAAAA,CAAMA,CAANA,CACG/mN,MAAOm1R,EACPluE,cApDGgpE,IACvB,GAAIA,EAAS32H,eAAe,GAAK67H,EAAU77H,eAAe,CAAE,CACxD,IAAMp/C,EAAU,CAAE,GAAGx8E,EAAMosP,aAAa,CAACoL,cAAc,CAACtrP,IAAK,CAC7DswE,CAAAA,EAAQxsH,KAAK,CAAGuiS,EAAS32H,eAAe,CACxC57H,EAAMzoC,OAAO,CAAC08R,mBAAmB,CAACz3K,EACtC,CAEAk7K,EAAanF,EACjB,EA6CwBlzK,QAASr/E,EAAMosP,aAAa,CAACoL,cAAc,CAACtrP,IAAI,CAACz4B,OAAO,CACxD61M,QAAQ,aACR1H,aAAci1E,EAAAA,CAAAA,EAAAA,GAAAA,GAK1B,UAAC/yH,MAAAA,CAAIjhE,UAAU,8CACVu0L,GACG,UAAClzE,EAAAA,CAAMA,CAANA,CAAOzsN,UAAU,QAAQgW,KAAMm3E,EAAAA,CAAiBA,CAAjBA,SAC3B+uM,EAAW7+R,SAAS,CAAC,iDAAiD,EAAjD,QAOlD,E,SC7GO,IAAMmjS,GAAyB7L,IAClC,IAAM8L,EAAoBnkS,OAAOZ,IAAI,CAACi5R,EAAc9qR,QAAQ,EACtDy2R,EAAgD,EAAE,CAElDI,EAAwF,CAC1FC,YAAa,+CACbC,eAAgB,mDAChBC,cAAe,iDACfC,iBAAkB,qDAClBC,cAAe,iDACfC,iBAAkB,qDAClBC,aAAc,gDACdC,gBAAiB,oDACjBC,YAAa,+CACbC,eAAgB,mDAChBC,mBAAoB,uDACpBC,sBAAuB,0DAC3B,EAEAb,EAAkBjpS,OAAO,CAAE1B,IACX,0BAARA,GAAmCA,qBAAAA,GACnCwqS,EAAqB3lS,IAAI,CAAC,CACtBqb,KAAMlgB,EACN+J,MAAOq8R,EAAW7+R,SAAS,CAACqjS,CAAmB,CAAC,CAAC,EAAE/L,EAAc9qR,QAAQ,CAAC/T,EAAI,CAACoqB,IAAI,CAACmC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC3V,WAAW,GAAG,KAAK,CAAC,CAAC,EACvHyjE,SAAU+rN,EAAW7+R,SAAS,CAACqjS,CAAmB,CAAC,CAAC,EAAE/L,EAAc9qR,QAAQ,CAAC/T,EAAI,CAACoqB,IAAI,CAACmC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC3V,WAAW,GAAG,QAAQ,CAAC,CAAC,EAC7H7C,SAAU,CACNyyR,OAAQ3H,EAAc9qR,QAAQ,CAAC/T,EAAI,CAACV,KAAK,CAAC8hB,QAAQ,CAAC,KACnDwrC,MAAOiyO,EAAc9qR,QAAQ,CAAC/T,EAAI,CAACV,KAAK,CAAC8hB,QAAQ,CAAC,KAClDqlR,KAAM5H,EAAc9qR,QAAQ,CAAC/T,EAAI,CAACV,KAAK,CAAC8hB,QAAQ,CAAC,IACrD,CACJ,EAER,GAEA,IAAIqqR,EAAY,EACZC,EAAiB,EAEfn9L,EACFswL,KAAoD97R,IAApD87R,EAAc9qR,QAAQ,CAAC0qR,gBAAgB,CAACv4Q,OAAO,CACzC24Q,EAAc9qR,QAAQ,CAAC0qR,gBAAgB,CAACv4Q,OAAO,CAACpgB,GAAG,CAAC,CAACxG,EAAOmD,KACpDnD,IAAUu/R,EAAc9qR,QAAQ,CAAC0qR,gBAAgB,CAACn/R,KAAK,EACvDmsS,CAAAA,EAAYhpS,CAAI,EAGb,CACHnD,MAAQioD,CAAAA,GAAAA,OAAOjoD,GAAc,IAAM,EAAC,EAAK,CAAC,EAAEA,EAAM,GAAG,CACzD,IAEJ,EAAE,CAENqsS,EACF9M,KAAyD97R,IAAzD87R,EAAc9qR,QAAQ,CAACwqR,qBAAqB,CAACr4Q,OAAO,CAC9C24Q,EAAc9qR,QAAQ,CAACwqR,qBAAqB,CAACr4Q,OAAO,CAACpgB,GAAG,CAAC,CAAC8zB,EAAsBn3B,KACxEm3B,EAAK55B,GAAG,GAAK6+R,EAAc9qR,QAAQ,CAACwqR,qBAAqB,CAACj/R,KAAK,EAC/DosS,CAAAA,EAAiBjpS,CAAI,EAGlB,CACHnD,MAAOs6B,EAAKt6B,KAChB,IAEJ,EAAE,CAEZ,MAAO,CACH2qS,eAAgB,CACZtrP,KAAM,CACFv0B,KAAMy0Q,EAAc9qR,QAAQ,CAAC0qR,gBAAgB,CAACr0Q,IAAI,CAClDlE,QAASqoF,EACT9rG,MAAOgpS,CACX,EACA1F,UAAW,CACP37Q,KAAMy0Q,EAAc9qR,QAAQ,CAACwqR,qBAAqB,CAACn0Q,IAAI,CACvDlE,QAASylR,EACTlpS,MAAOipS,CACX,CACJ,EACAlB,qBAAsBA,CAC1B,CACJ,EC1EaoB,GAAmBn5P,IAC5B,OAAQA,EAAMwvG,IAAI,EACd,KAAKgkJ,EAAKc,OAAO,CACb,MAAO,UAACA,EAAAA,CAAQ4B,YAAal2P,EAAMk2P,WAAW,EAClD,MAAK1C,EAAKwB,OAAO,CACb,MAAO,UAACA,EAAAA,CAAQ1zR,SAAU0+B,EAAM19B,KAAK,CAAC4zE,OAAO,CAAE3+E,QAASyoC,EAAMzoC,OAAO,CAAC2+E,OAAO,EACjF,MAAKs9M,EAAK6B,UAAU,CAChB,MAAO,UAACmB,EAAAA,CAAsBl1R,SAAU0+B,EAAM19B,KAAK,CAAC4pR,UAAU,CAAE30R,QAASyoC,EAAMzoC,OAAO,CAAC20R,UAAU,EACrG,MAAKsH,EAAKt6F,QAAQ,CACd,MAAO,UAACA,EAAAA,CAAS53L,SAAU0+B,EAAM19B,KAAK,CAAC6pR,QAAQ,CAAE50R,QAASyoC,EAAMzoC,OAAO,CAAC40R,QAAQ,EACpF,MAAKqH,EAAK0B,aAAa,CACnB,MAAO,UAACA,GAAAA,CAAc9I,cAAe6L,GAAsBj4P,EAAM19B,KAAK,CAAC8pR,aAAa,EAAG70R,QAASyoC,EAAMzoC,OAAO,CAAC60R,aAAa,EAC/H,SACI,OAAO,IACf,CACJ,E,4BCpBO,IAAMgN,GAAmB,CAC5BC,EACAC,EACAxI,KAEA,GAAIuI,EAAUE,SAAS,CAAE,CACrB,IAAM7oS,EAAcijS,EAAW7+R,SAAS,CAAC,mCACzC,MAAO,CACHmrC,QAASvvC,EACTiF,UACI,UAAC03K,GAAAA,CAAqBA,CAArBA,CACG5/J,KAAM+rR,EAAAA,CAAWA,CACjB/hS,UAAWk8R,EAAW7+R,SAAS,CAAC,wCAChC67B,QAASjgC,EACTg6H,UAAW,IAAM4uK,EAAgB,CAAEC,UAAW,GAAOE,kBAAmB,EAAK,EAAE,EAG3F,CACJ,CACA,GAAIJ,EAAUK,YAAY,CAAE,CACxB,IAAMhpS,EAAcijS,EAAW7+R,SAAS,CAAC,mCACzC,MAAO,CACHmrC,QAASvvC,EACTiF,UACI,UAAC03K,GAAAA,CAAqBA,CAArBA,CACG5/J,KAAMk3E,GAAAA,CAAaA,CACnBltF,UAAWk8R,EAAW7+R,SAAS,CAAC,wCAChC67B,QAASjgC,EACTg6H,UAAW,IAAM4uK,EAAgB,CAAEI,aAAc,GAAOD,kBAAmB,EAAK,EAAE,EAG9F,CACJ,CACA,GAAIJ,EAAUI,iBAAiB,EAAI3I,EAAY,CAC3C,IAAMpgS,EAAcijS,EAAW7+R,SAAS,CAAC,qCACzC,MAAO,CACHmrC,QAASvvC,EACTiF,UAAW,UAAC23K,EAAAA,CAAUA,CAAVA,CAAW7/J,KAAMm3E,EAAAA,CAAiBA,CAAEntF,UAAWk8R,EAAW7+R,SAAS,CAAC,0CAA2C67B,QAASjgC,CAAAA,EACxI,CACJ,CAEA,MAAO,CAAEuvC,QAAS,GAAItqC,UAAW,IAAK,CAC1C,EC7CA,QAAU,yvDCQH,IAAMgkS,GAAuD35P,IAChE,IAAM45P,EAAWC,CAAAA,EAAAA,EAAAA,MAAAA,EAA2B,MACtCC,EAAaD,CAAAA,EAAAA,EAAAA,MAAAA,EAAuB,MACpCviS,EAAQq8R,EAAW7+R,SAAS,CAAC,CAAC,EAAEkrC,EAAMwvG,IAAI,CAAC,MAAM,CAAC,EAClDshJ,EAAaiB,EAAAA,EAAeA,CAACjB,UAAU,GACvCiJ,EAAmBjJ,EACnB6C,EAAW7+R,SAAS,CAAC,2CACrB6+R,EAAW7+R,SAAS,CAAC,0CAErB06I,EAAO2pJ,GAAgBn5P,GACvBwkD,EAAS40M,GAAiBp5P,EAAMq5P,SAAS,CAAEr5P,EAAMs5P,eAAe,CAAExI,GAIxE,MAFA8F,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,IAAMoD,CAAAA,EAAAA,EAAAA,CAAAA,EAA6BF,EAAW3uL,OAAO,CAAEyuL,EAASzuL,OAAO,EAAG,CAACnrE,EAAMwvG,IAAI,CAAC,EAGnG,WAACs0B,MAAAA,CAAIjhE,UAAU,8BACX,UAACihE,MAAAA,CAAIm2H,YAAU,SAASp3L,UAAU,iCAC7Bre,EAAOvkD,OAAO,GAGlBukD,OAAAA,EAAO7uF,SAAS,EAAa,UAACmuK,MAAAA,CAAIjhE,UAAU,qCAA6Bre,EAAO7uF,SAAS,GAE1F,WAAC86E,UAAAA,CAAQoyB,UAAU,6BAA6B+yL,aAAYt+R,EAAAA,SAAAA,CACxD,UAAC4iS,KAAAA,CAAG/5Q,SAAU,GAAI0iF,UAAU,2BAA2BkhE,YAAU,sBAAsBhwD,IAAK6lL,EAAAA,SACvFtiS,CAAAA,GAEL,UAACyX,IAAAA,CAAE8zF,UAAU,iCAAiCkhE,YAAU,qCACnD4vH,EAAW7+R,SAAS,CAAC,CAAC,EAAEkrC,EAAMwvG,IAAI,CAAC,YAAY,CAAC,CAAC,GAEtD,UAACs0B,MAAAA,CAAIjhE,UAAU,0BAA0BkR,IAAK+lL,EAAAA,SACzCtqJ,CAAAA,GAAAA,EAR+DxvG,EAAMwvG,IAAI,EAYlF,UAACs0B,MAAAA,CAAIjhE,UAAU,qCACX,UAAC6nD,EAAAA,CAAUA,CAAVA,CACGj9I,KAAK,SACLhW,UAAWuoC,EAAMq5P,SAAS,CAAClxK,MAAM,CAAGwrK,EAAW7+R,SAAS,CAAC,sCAAwCilS,EACjGI,OAAQn6P,EAAMq5P,SAAS,CAAClxK,MAAM,CAC9BrwH,SAAU,CAACg5R,EACXlmI,cAAc,8CACd/nD,UAAWlrG,EAAAA,CAAWA,CAACI,SAAS,CAChCyzG,QAASxrE,EAAMzoC,OAAO,CAAC48R,YAAY,CACnCt8R,SAAS,wCACR87R,EAAW7+R,SAAS,CAAC,yBAAyB,EAAzB,KAK1C,E,SCxDA,QAAU,k4CCaH,IAAMslS,GAA+Ep6P,IACxF,GAAM,CAAC1+B,EAAU+4R,EAAY,CAAG1D,CAAAA,EAAAA,EAAAA,QAAAA,EAA2C,MACrE,CAAC0C,EAAWiB,EAAa,CAAG3D,CAAAA,EAAAA,EAAAA,QAAAA,EAA6B,CAC3DxuK,OAAQ,GACRoxK,UAAW,GACXG,aAAc,GACdD,kBAAmB,EACvB,GACM,CAACpjE,EAAUkkE,EAAY,CAAG5D,CAAAA,EAAAA,EAAAA,QAAAA,EAAkB,IAC5C,CAAC6D,EAAaC,EAAe,CAAG9D,CAAAA,EAAAA,EAAAA,QAAAA,EAAiB,IACjDpnJ,EAAiBsqJ,CAAAA,EAAAA,EAAAA,MAAAA,EAAoB,EAAE,EACvC3D,EAAcl2P,EAAM06P,cAAc,GAElCC,EAAgBC,IAClB,IAAMC,EAA4B,CAACrH,EAAKc,OAAO,CAAC,CAC1CwG,EAAoB/mS,OAAOZ,IAAI,CAACynS,GAAahrS,MAAM,CAAE4sH,GAAYo+K,CAAW,CAACp+K,EAA2B,CAACiuC,OAAO,EAEtH,GAAIyrI,EAAYj3H,UAAU,CAAE,CACxB,IAAM87H,EAAMD,EAAkBxoR,SAAS,CAAE6U,GAASA,IAASqsQ,EAAK0B,aAAa,CACjE,MAAR6F,GACAD,EAAkBzoS,MAAM,CAAC0oS,EAAK,EAEtC,CAEAxrJ,EAAepkC,OAAO,CAAG0vL,EAAazyQ,MAAM,CAAC0yQ,GAC7CL,EAAe9G,EAAW7+R,SAAS,CAAC,sCACpCulS,EAAYO,GACZtB,EAAgB,CAAEG,kBAAmB,GAAMC,aAAc,GAAOH,UAAW,EAAM,EACrF,EAEMD,EAAmB0B,IACrBV,EAAcxI,GAAe,EACzB,GAAGA,CAAS,CACZ,GAAGkJ,CAAa,GAExB,EAGArD,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,KAGP,IAAMsD,EAAmBlJ,EAAAA,EAFuD,CAEvCC,WAAW,GAAG3oQ,SAAS,CAAC,CAC7DyB,MAAO,IAAMyvQ,EAAY,IACzBp/O,KAAMw/O,CACV,GACMO,EAAoBnJ,EAAAA,EAAeA,CAAC7tK,QAAQ,GAAG76F,SAAS,CAAEC,IAC5D,GAAIA,EAAM6+F,MAAM,CAAE,CACdmxK,EAAgB,CAAEnxK,OAAQ,EAAK,GAC/B,MACJ,CAEAmyK,EAAcxI,GACH,EACH3pK,OAAQ7+F,EAAM6+F,MAAM,CACpBoxK,UAAWjwQ,EAAMwB,KAAK,CACtB4uQ,aAAc,CAACpwQ,EAAMwB,KAAK,EAAIgnQ,EAAU3pK,MAAM,CAC9CsxK,kBAAmB,EACvB,GAER,GAGA,MAAO,KACH1H,EAAAA,EAAeA,CAAC32N,KAAK,GACrB6/N,EAAiBj8K,WAAW,GAC5Bk8K,EAAkBl8K,WAAW,EACjC,CACJ,GAEA,IAAMwwB,EAAO+kJ,EAAQv0P,EAAMwvG,IAAI,CAAED,EAAepkC,OAAO,CAAEnrE,EAAMw0P,WAAW,EAE1E,MACI,WAAC/jN,UAAAA,CAAQmlN,aAAYjC,EAAW7+R,SAAS,CAAC,8CACtC,UAACqmS,KAAAA,CAAGt4L,UAAU,wCAAwC1iF,SAAU,GAAI7hB,GAAG,kCAClEq1R,EAAW7+R,SAAS,CAAC,mCAAmC,GAE7D,WAACgvK,MAAAA,CAAIjhE,UAAU,2CACX,UAACihE,MAAAA,CAAIjhE,UAAU,wBAAwBo3L,YAAU,SAASl2H,YAAU,mDAC/Dy2H,CAAAA,GAGJnkE,GACG,UAACvyD,MAAAA,CAAIjhE,UAAU,iDACX,UAACyqE,EAAAA,CAAUA,CAAVA,CACG7/J,KAAM+rR,EAAAA,CAAWA,CACjB/hS,UAAWk8R,EAAW7+R,SAAS,CAAC,yCAChC67B,QAASgjQ,EAAW7+R,SAAS,CAAC,mCAAmC,EAAnC,GAKzCwM,OAAAA,GAAqB,CAAC+0N,GACnB,UAACvyD,MAAAA,CAAIjhE,UAAU,mDACX,UAACu4L,EAAAA,CAAcA,CAAdA,CAAe52E,OAAO,+BAA+B5tN,KAAK,MAAM,EAAN,GAIlE0K,OAAAA,GAAqB,CAAC+0N,GACnB,WAAC9U,EAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACG,UAAC+zE,EAAAA,CAAgB54H,MAAOntB,EAAepkC,OAAO,CAAEqkC,KAAMA,EAAMgmJ,QAASx1P,EAAMw1P,OAAO,GACjFhmJ,OAAAA,GACG,WAAC+xE,EAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACG,UAACz9C,MAAAA,CAAIjhE,UAAU,gDACX,UAACqqE,EAAAA,CAAMA,CAANA,CAAO1hE,QAASxrE,EAAM2iJ,IAAI,CAAE9/E,UAAWlrG,EAAAA,CAAWA,CAACC,QAAQ,UACvD+7R,EAAW7+R,SAAS,CAAC,kCAAkC,EAAlC,GAG9B,UAAC6kS,GAAAA,CACGr3R,MAAOhB,EACPkuI,KAAMA,EACN0mJ,YAAaA,EACb3+R,QAASq8R,EACTyF,UAAWA,EACXC,gBAAiBA,CAAAA,GAAAA,GAAAA,GAAAA,GAAAA,EASrD,E,wCCnIO,SAASnmD,GAAoBnzM,CAAgC,EAChE,IAAMq7P,EAAaxB,CAAAA,EAAAA,EAAAA,MAAAA,EAAoB/rS,SAASg1G,IAAI,EAC9Cw4L,EAAY7E,CAAAA,EAAAA,EAAAA,KAAAA,IAElB,MACI,UAAC3zH,GAAAA,CAAeA,CAACy4H,QAAQ,EAAC1uS,MAAO,CAAE0C,QAAS8rS,CAAW,WACnD,WAACG,GAAAA,CAAiBA,CAAjBA,CAAkBv0I,UAAW,aAAcv9H,MAAOsW,EAAM40M,kBAAkB,WACvE,UAAC4mD,GAAAA,CAAiBA,CAACC,OAAO,EACtBhkS,UAAWk8R,EAAW7+R,SAAS,CAAC,4CAChCwJ,GAAIg9R,EACJ,UACU,iDACVzlR,YAAY,6CACZhe,SAAU,+BACV,UAAC47R,EAAAA,CAAO5wL,UAAU,iCAAiC+1E,IAAK54I,EAAMm3M,eAAe,CAACK,UAAU,KAE5F,WAACgkD,GAAAA,CAAiBA,CAACE,KAAK,YACpB,WAAC53H,MAAAA,CAAIjhE,UAAU,8CACX,UAAC4wL,EAAAA,CAAO5wL,UAAU,wCAAwC+1E,IAAK54I,EAAMm3M,eAAe,CAACK,UAAU,GAC/F,WAAC1zE,MAAAA,CAAIjhE,UAAU,4CACX,WAACihE,MAAAA,CAAIjhE,UAAU,4CACV7iE,EAAMm3M,eAAe,CAACC,SAAS,CAAC,IAAEp3M,EAAMm3M,eAAe,CAACG,QAAQ,IAErE,UAACxzE,MAAAA,CAAIjhE,UAAU,+CAAuC7iE,EAAMm3M,eAAe,CAACv7H,YAAY,SAGhG,UAAC4/K,GAAAA,CAAiBA,CAACG,IAAI,EAAC9jS,SAAU,uBAAwB+jS,SAAUC,GAAAA,CAAYA,CAAE53H,eAAgBq3H,CAAAA,GAAAA,GAAAA,EAAAA,EAKtH,CCpCA,QAAU,wrC,kCCAH,OAAMQ,EACQC,WACTC,CAAAA,QAAkB,cAEZ,CACV,IAAI,CAACD,WAAW,CAAG,IAAIxhO,IACvB,IAAI,CAACyhO,QAAQ,CAAG,EACpB,CAEO9pS,IAAI+pS,CAAqB,CAAQ,CACpC,IAAI,CAACF,WAAW,CAAC7pS,GAAG,CAAC+pS,GACrB,IAAI,CAACC,QAAQ,EACjB,CAEO3xI,QAAe,CAClB,IAAI,CAACyxI,QAAQ,CAAG,GAChB,IAAI,CAACE,QAAQ,EACjB,CAEQA,UAAiB,CACrB,GAAK,IAAI,CAACF,QAAQ,EAIlB,IAAK,IAAMrvS,KAAS,IAAI,CAACovS,WAAW,CAChCpvS,IAGJ,IAAI,CAACovS,WAAW,CAAC3gO,KAAK,GAC1B,CACJ,CC9BO,MAAM+gO,EACFC,kBAAyB,CAC5B,CAGGC,YAAmB,CACtB,CAGGC,cAAqB,CAHR,CAObC,oBAA2B,CAC9B,CAGG10Q,YAAmB,CACtB,CAGG20Q,eAHa,CAIhB,CAER,CCxBO,IAAMC,EAA8B1pS,OCC9B60B,EAAoB,ICO1B,MACK80Q,aACAC,CAAAA,eACSC,CAAAA,eAAiC,cAEpC,CACV,IAAI,CAACF,aAAa,CAAG,IAAIP,EACzB,IAAI,CAACS,eAAe,CAAG,IAAId,EAC3B,IAAI,CAACa,eAAe,CAAG,CACnBnsG,QAAS,GACTqsG,OAAQ,CACZ,CACJ,CAEOC,UAAUC,CAA2B,CAAEC,CAA+B,CAAiB,CAG1F,OAFA,IAAI,CAACL,eAAe,CAAGK,EAEhBC,CC3BR,SAAqBr/R,CAAW,EACnC,GAAI9P,OAAAA,SAASyiC,cAAc,CAAC,iBAExB,OADAxF,QAAQD,KAAK,CAAC,oCACPg2I,QAAQzvK,MAAM,GAGzB,GAAIuM,KAAAA,EAGA,OAFA,QACQotB,IAAI,CAAC,2BACN81I,QAAQzvK,MAAM,GAGzB,IAAM6rS,EAAgBpvS,SAAS80G,aAAa,CAAC,SAC7Cs6L,CAAAA,EAAczvR,IAAI,CAAG,kBACrByvR,EAAcC,KAAK,CAAG,GACtBD,EAAclwR,KAAK,CAAG,GACtBkwR,EAActkH,GAAG,CAAG,CAAC,EAAEh7K,EAAI,SAAS,CACpCs/R,CAAAA,EAAc5+R,EAAE,CAAG,gBAEnB,IAAMtN,EAAU,IAAI8vK,QAAe,CAAC1vK,EAASC,KACzC6rS,EAAcnvS,gBAAgB,CAAC,OAAQqD,GACvC8rS,EAAcnvS,gBAAgB,CAAC,QAASsD,EAC5C,GAIA,OAFAvD,SAASsvS,IAAI,CAACr6L,WAAW,CAACm6L,GAEnBlsS,CACX,GDA2BgsS,EAAexsG,OAAO,EACpC1jM,IAAI,CAAC,KACF,IAAI,CAACuwS,aAAa,CAACN,EACvB,GACCprS,KAAK,CAAED,IACcpB,KAAAA,IAAdoB,GACAq5B,QAAQD,KAAK,CAACp5B,EAEtB,GACCE,OAAO,CAAC,KACL,IAAI,CAACgrS,eAAe,CAACryI,MAAM,EAC/B,EACR,CAEO+yI,WAAWC,CAAqB,CAAQ,CAC3C,IAAI,CAACX,eAAe,CAAC1qS,GAAG,CAAC,KAChBqrS,EAGD,IAAI,CAACb,aAAa,CAACN,gBAAgB,GAFnC,IAAI,CAACM,aAAa,CAACL,UAAU,EAIrC,EACJ,CAEOmB,oBAAoBC,CAAyC,CAAQ,CACxE,IAAK,IAAMC,KAAmBD,EAC1B,IAAI,CAACb,eAAe,CAAC1qS,GAAG,CAAC,KACrB,IAAI,CAACwqS,aAAa,CAACH,kBAAkB,CAACmB,EAAgBp/R,EAAE,CAAEo/R,EAAgB7wS,KAAK,CACnF,EAER,CAEOg7B,WAAW81Q,CAAgB,CAAExwS,CAAc,CAAEwqB,CAAa,CAAE9qB,CAAc,CAAE4wS,CAA0C,CAAQ,CACjI,IAAI,CAACb,eAAe,CAAC1qS,GAAG,CAAC,KACrB,IAAI0rS,EAA8C,CAAC,CAC1BttS,MAAAA,IAArBmtS,GAAkCA,IAAAA,EAAiB9vS,MAAM,EACzDiwS,CAAAA,EAAsB,IAAI,CAACC,wBAAwB,CAACJ,EAAgB,EAGxE,IAAI,CAACf,aAAa,CAAC70Q,UAAU,CAAC81Q,EAAUxwS,EAAQwqB,EAAM9qB,EAAO+wS,EACjE,EACJ,CAEOpB,cAAcsB,CAAmB,CAAEC,CAAmB,CAAEN,CAA0C,CAAQ,CAC7G,IAAI,CAACb,eAAe,CAAC1qS,GAAG,CAAC,KACrB,IAAI0rS,EAA8C,CAAC,CAC1BttS,MAAAA,IAArBmtS,GAAkCA,IAAAA,EAAiB9vS,MAAM,EACzDiwS,CAAAA,EAAsB,IAAI,CAACC,wBAAwB,CAACJ,EAAgB,EAIxE,IAAI,CAACf,aAAa,CAACJ,YAAY,CADRwB,KAAAA,EAAqB,oBAAsBA,GAElE,IAAI,CAACpB,aAAa,CAACF,aAAa,CAACuB,EAAaH,EAClD,EACJ,CAEQP,cAAcN,CAA2B,CAAQ,CACzBzsS,KAAAA,IAAxBmsS,EAAauB,MAAM,GAIvB,IAAI,CAACtB,aAAa,CAAGD,EAAauB,MAAM,CAACC,eAAe,CAAC,CAAC,EAAE,IAAI,CAACtB,eAAe,CAACnsG,OAAO,CAAC,UAAU,CAAC,CAAE,IAAI,CAACmsG,eAAe,CAACE,MAAM,EAGjI,IAAI,CAACH,aAAa,CAACJ,YAAY,CADRS,KAAAA,EAA6B,oBAAsBA,GAE9E,CAEQc,yBAAyBJ,CAAyC,CAA0B,CAGhG,OAAOA,EAAiB3iL,MAAM,CAAC,CAAC/rG,EAAG85O,KAC/B95O,CAAC,CAAC,CAAC,SAAS,EAAE85O,EAAUvqP,EAAE,CAAC,CAAC,CAAC,CAAGuqP,EAAUh8P,KAAK,CACxCkiB,GAJgC,CAAC,EAMhD,CACJ,C,wBEtGYpX,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,SAAAA,CAAAA,wBAAAA,EAAAA,QAAAA,CAAAA,sB,wBCAAi6B,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,OAAAA,CAAAA,UAAAA,EAAAA,SAAAA,CAAAA,YAAAA,EAAAA,UAAAA,CAAAA,aAAAA,EAAAA,SAAAA,CAAAA,YAAAA,EAAAA,KAAAA,CAAAA,QAAAA,EAAAA,MAAAA,CAAAA,SAAAA,EAAAA,GAAAA,CAAAA,MAAAA,EAAAA,KAAAA,CAAAA,IAAAA,EAAAA,wBAAAA,CAAAA,WAAAA,EAAAA,IAAAA,CAAAA,OAAAA,EAAAA,GAAAA,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,MAAAA,EAAAA,OAAAA,CAAAA,UAAAA,EAAAA,KAAAA,CAAAA,QAAAA,EAAAA,IAAAA,CAAAA,M,qGCWL,OAAMssQ,EACOrqL,MAECsqL,CAAAA,yBAIAC,CAAAA,iBACAC,CAAAA,WACAC,CAAAA,YACAC,CAAAA,YACAC,CAAAA,aAA+E,IAAI/gQ,GACnFghQ,CAAAA,wBACAC,CAAAA,iBAA6CpuS,KAAAA,CACtDquS,CAAAA,cAA0C,IAC1CC,CAAAA,8BAAqD,IAAK,aAG9DC,CAAkC,CAClCC,CAAmC,CACnCC,CAAmC,CACnCpoS,CAQC,CACH,CACE,IAAI,CAAC0nS,WAAW,CAAGQ,EACnB,IAAI,CAACP,YAAY,CAAGQ,EACpB,IAAI,CAACP,YAAY,CAAGQ,EACpB,IAAI,CAACZ,yBAAyB,CAAGxnS,EAAOqoS,wBAExC,KAAI,CAACN,gBAAgB,CAAG/nS,EAAOsoS,eAE/B,KAAI,CAACb,iBAAiB,CAAGznS,EAAOuoS,gBAChC,KAAI,CAACrrL,MAAM,CAAG,IAAI,CAACuqL,iBAAiB,CAACvqL,MACrC,KAAI,CAAC4qL,wBAAwB,CAAG,IAAI,CAACL,iBAAiB,CAACe,YAAY,CAAC91Q,SAAS,CAAE/mB,IAC3E3L,EAAO4yN,aAAa,CAACjnN,EACzB,GAEA,IAAI,CAAC88R,WAAW,CAACvjI,EAAAA,CAAcA,CAACwjI,IAAI,CAAE,IAAI,CAACC,wBAAwB,CAACx0S,IAAI,CAAC,IAAI,GAC7E,IAAI,CAACs0S,WAAW,CAACvjI,EAAAA,CAAcA,CAACC,MAAM,CAAE,IAAI,CAACyjI,gBAAgB,CAACz0S,IAAI,CAAC,IAAI,GACvE,IAAI,CAACs0S,WAAW,CAACvjI,EAAAA,CAAcA,CAAC2jI,qBAAqB,CAAE,IAAI,CAACD,gBAAgB,CAACz0S,IAAI,CAAC,IAAI,EAC1F,CAEO42D,SAAgB,CACnB,IAAI,CAAC+8O,wBAAwB,CAACz/K,WAAW,GACE,OAAvC,IAAI,CAAC4/K,6BAA6B,EAClC,IAAI,CAACA,6BAA6B,CAAC5/K,WAAW,EAEtD,CAEO1+E,YAAYh+B,CAAwB,CAAQ,CAC/C,IAAI,CAAC87R,iBAAiB,CAAC99P,WAAW,CAACh+B,GACnC,IAAI,CAACm9R,kBAAkB,CAACn9R,GACxB,IAAI,CAACq8R,aAAa,CAAGr8R,CACzB,CAEO88R,YAAYM,CAAyB,CAAE5tS,CAA4C,CAAQ,CAC9F,IAAM6tS,EAAuB,IAAI,CAACnB,YAAY,CAAC9kS,GAAG,CAACgmS,GAEnD,GAAIC,KAAyBrvS,IAAzBqvS,EAAoC,CACpC,IAAI,CAACnB,YAAY,CAACjiP,GAAG,CAACmjP,EAAW,CAAC5tS,EAAS,EAC3C,MACJ,CAEA6tS,EAAqBvtS,IAAI,CAACN,EAC9B,CAEQwtS,0BAAiC,CACrC,GAAI,WAAI,CAACjB,WAAW,CAAClzL,OAAO,EAAa,WAAI,CAACmzL,YAAY,CAACnzL,OAAO,CAC9D,OAGJ,IAAMo4D,EAAkB,IAAI,CAACg7H,YAAY,CAACpzL,OAAO,CACjD,GAAIo4D,OAAAA,EAA0B,CAC1B,IAAMq8H,EAAiB,IAAI,CAACvB,WAAW,CAAClzL,OAAO,CAAC00L,SAAS,CAAC,IAAuBC,SACjF,OAAM,MAAU,CAAC;aAAiF,EAAEF,EAAc,CAAC,CACvH,CAEA,IAAMG,EAAuBC,CAAAA,EAAAA,EAAAA,CAAAA,EACzB,IAAI,CAAC3B,WAAW,CAAClzL,OAAO,CACxB,IAAI,CAACmzL,YAAY,CAACnzL,OAAO,CACzBo4D,EACA,IAAI,CAAC46H,yBAAyB,CAAC8B,iBAAiB,CAChD,IAAI,CAAC9B,yBAAyB,CAACl3I,SAAS,EAG5C,GAAI,KAA0B32J,IAA1B,IAAI,CAACouS,gBAAgB,CAAgB,CACrC,IAAI,CAACE,6BAA6B,CAAGmB,EAChC52Q,IAAI,CACDw2F,CAAAA,EAAAA,EAAAA,CAAAA,IACArkE,CAAAA,EAAAA,EAAAA,CAAAA,EAAI,KACC,IAAI,CAACojP,gBAAgB,EAC1B,GACAhjP,CAAAA,EAAAA,EAAAA,CAAAA,EAAU,IAAMqkP,IAEnB12Q,SAAS,GAEd,MACJ,CAEA,IAAI,CAACu1Q,6BAA6B,CAAGmB,EAAqB12Q,SAAS,EACvE,CAEQk2Q,kBAAyB,CACc,OAAvC,IAAI,CAACX,6BAA6B,EAClC,IAAI,CAACA,6BAA6B,CAAC5/K,WAAW,EAEtD,CAEQygL,mBAAmBn9R,CAAwB,CAAQ,CACvD,GAAI,WAAI,CAACq8R,aAAa,EAAa,IAAI,CAACA,aAAa,CAAClxR,IAAI,GAAKnL,EAAMmL,IAAI,CACrE,OAGJ,IAAMyyR,EAAY,IAAI,CAAC1B,YAAY,CAAC9kS,GAAG,CAAC4I,EAAMmL,IAAI,EAElD,GAAIyyR,KAAc5vS,IAAd4vS,EAIJ,IAAK,IAAMC,KAAYD,EACnBC,EAAS79R,EAEjB,CACJ,C,iDCnIO,OAAM89R,EACFjB,YACAtrL,CAAAA,MAEUmvD,CAAAA,OACAq9H,CAAAA,aACAC,CAAAA,UACAjC,CAAAA,WAGTkC,CAAAA,wBAA0C,IAC1C5B,CAAAA,aAER5tS,aAAY4F,CAAsC,CAAEkoS,CAAkC,CAAE2B,CAAiC,CAAEzpS,CAA2B,CAAE,CACpJ,IAAI,CAACupS,UAAU,CAAGE,EAClB,IAAI,CAACnC,WAAW,CAAGQ,EACnB,IAAI,CAAC77H,OAAO,CAAGrsK,EACf,IAAI,CAACgoS,aAAa,CAAG5nS,EACrB,IAAI,CAACspS,aAAa,CAAG,IAAInoI,EAAAA,CACzB,KAAI,CAACinI,YAAY,CAAG,IAAI,CAACkB,aAAa,CAACjoI,YAAY,GAEnD,IAAI,CAACvkD,MAAM,CAAG,CACV1sF,KAAM,CACFqkF,QAAS,CAAC91E,EAAei9I,IAAsB,IAAI,CAAC8tH,iBAAiB,CAAC,IAAI,CAACz9H,OAAO,CAAC77I,IAAI,CAACqkF,OAAO,CAAC91E,EAAGi9I,GACvG,EACA1lL,OAAQ,CACJyzS,YAAa,IAAI,CAACC,sBAAsB,CAAC71S,IAAI,CAAC,IAAI,EAClD+C,UAAW,IAAI,CAAC+yS,oBAAoB,CAAC91S,IAAI,CAAC,IAAI,CAClD,EACAouC,QAAS,CACLsyE,QAAS,IAAI,CAACq1L,mBAAmB,CAAC/1S,IAAI,CAAC,IAAI,EAC3C+C,UAAW,IAAI,CAACizS,qBAAqB,CAACh2S,IAAI,CAAC,IAAI,EAC/Ci2S,YAAa,IAAI,CAACC,uBAAuB,CAACl2S,IAAI,CAAC,IAAI,CACvD,CACJ,CACJ,CAEOw1C,YAAYiyP,CAAuB,CAAQ,CAC9C,IAAI,CAACoM,aAAa,CAAGpM,CACzB,CAEQoO,uBAAuBjrQ,CAAa,CAAQ,CAChD,IAAI,CAAC+qQ,iBAAiB,CAAC,IAAI,CAACz9H,OAAO,CAAC/1K,MAAM,CAACyzS,WAAW,CAAChrQ,EAAG,IAAI,CAAC2oQ,WAAW,CAAE,IAAI,CAACiC,UAAU,CAAE,IAAI,CAACC,uBAAuB,EAC7H,CAEQK,qBAAqBlrQ,CAAgB,CAAEhM,CAAmB,CAAQ,CACtE,IAAMu3Q,EAAQ,IAAI,CAACj+H,OAAO,CAAC/1K,MAAM,CAACyoC,EAAEnoC,GAAG,CAAsC,EAAI,IAAI,CAACy1K,OAAO,CAAC/1K,MAAM,CAACqjE,OAAO,MAE9FhgE,IAAV2wS,IAIJvrQ,EAAEroC,eAAe,GAEuDiD,KAAAA,IAApE,IAAI,CAAC0yK,OAAO,CAAC/1K,MAAM,CAACyoC,EAAEnoC,GAAG,CAAsC,EAC/DmoC,EAAEvnC,cAAc,GAGpB,IAAI,CAACsyS,iBAAiB,CAACQ,EAAMvrQ,EAAG,IAAI,CAACipQ,aAAa,CAAEj1Q,IACxD,CAEQo3Q,sBAAsBprQ,CAAgB,CAAEhM,CAAmB,CAAQ,CACvE,IAAMu3Q,EAAQ,IAAI,CAACj+H,OAAO,CAAC9pI,OAAO,CAACxD,EAAEnoC,GAAG,CAAuC,MAEjE+C,IAAV2wS,IACAvrQ,EAAEvnC,cAAc,GAChBunC,EAAEroC,eAAe,GAEjB,IAAI,CAACozS,iBAAiB,CAACQ,EAAMvrQ,EAAG,IAAI,CAACipQ,aAAa,CAAEj1Q,IAE5D,CAEQs3Q,wBAAwBtrQ,CAAa,CAAQ,CACjD,IAAI,CAAC6qQ,uBAAuB,CAAG7qQ,EAAEzoC,MACrC,CAEQ4zS,oBAAoBnrQ,CAAa,CAAQ,CAC7CA,EAAEroC,eAAe,GAEjB,IAAI,CAACozS,iBAAiB,CAAC,IAAI,CAACz9H,OAAO,CAAC9pI,OAAO,CAACsyE,OAAO,CAAC91E,EAAG,IAAI,CAACipQ,aAAa,EAC7E,CAEQ8B,kBAAkBS,CAAsD,CAAQ,CAGpF,GAFA,IAAI,CAACX,uBAAuB,CAAG,KAE3BW,OAAAA,EACA,OAGJ,IAAM3O,EAAW,CAAE,GAAG,IAAI,CAACoM,aAAa,CAAE,GAAGuC,CAAa,EAE1D,IAAI,CAACb,aAAa,CAACllP,IAAI,CAACo3O,EAC5B,CACJ,C,wEClGO,SAAS4O,EAA0BzrQ,CAA6B,CAAEs9L,CAAsC,EAG3G,MAFiB,CAAEp3D,gBAAiB,EAAG,GAAGwlI,CAAAA,EAAAA,EAAAA,CAAAA,EAAa1rQ,EAAGs9L,EAAc,CAG5E,C,eCHO,IAAMquE,EAAwB,CACjC,CAACzvQ,EAAAA,CAAIA,CAAC0vQ,OAAO,CAAC,CCDX,SAAuCv3Q,CAAgB,CAAE40Q,CAA4C,CAAEj1Q,CAAe,EACzH,MAAO,CACHkyI,gBAAiBlyI,EAAM/7B,MAAM,CAAG,EAChCw1B,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACwjI,IACzB,CACJ,EDJI,CAACztQ,EAAAA,CAAIA,CAAC2vQ,SAAS,CAAC,CEHb,SAAqCx3Q,CAAgB,EACxD,MAAO,CACH6xI,gBAAiB,EACjBz4I,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACwjI,IACzB,CACJ,EFFI,CAACztQ,EAAAA,CAAIA,CAAC4vQ,KAAK,CAAC,CAAEL,EACd,CAACvvQ,EAAAA,CAAIA,CAAC6vQ,KAAK,CAAC,CAAEN,EACd31L,QGNG,SAA0CzhF,CAAa,CAAEipM,CAAsC,EAGlG,MAFiB,CAAEp3D,gBAAiB,EAAG,GAAG8lI,CAAAA,EAAAA,EAAAA,CAAAA,EAAoB33Q,EAAGipM,EAAc,CAGnF,CHGA,C,wBIZYn3D,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,CAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,CAAAA,EAAAA,qBAAAA,CAAAA,EAAAA,CAAAA,uB,oHCML,SAAS8lI,EAA8BjsQ,CAAgB,CAAEs9L,CAA2C,CAAEtpM,CAAe,EACxH,IAAMpnB,EAAQs/R,CAAAA,EAAAA,EAAAA,CAAAA,EAAelsQ,EAAGs9L,EAActpM,UAE9C,OAAIpnB,EACO,CACHs5J,gBAAiB,EACjBnuJ,KAAMouJ,EAAAA,CAAcA,CAACwjI,IACzB,EAGG/8R,CACX,C,cCXO,SAASu/R,EAAkCnsQ,CAAgB,CAAEs9L,CAA2C,CAAEtpM,CAAe,EAC5H,IAAMpnB,EAAQw/R,CAAAA,EAAAA,EAAAA,CAAAA,EAAmBpsQ,EAAGs9L,UAEpC,OAAI1wN,EACO,CACHs5J,gBAAiBlyI,EAAM/7B,MAAM,CAAG,EAChC8f,KAAMouJ,EAAAA,CAAcA,CAACwjI,IACzB,EAGG/8R,CACX,C,eCCO,IAAMy/R,EAA8B,CACvCC,EACAC,IAEO,EACH,CAACrwQ,EAAAA,CAAIA,CAAC0vQ,OAAO,CAAC,CAAEO,EAChB,CAACjwQ,EAAAA,CAAIA,CAAC2vQ,SAAS,CAAC,CAAEI,EAClB,CAAC/vQ,EAAAA,CAAIA,CAACswQ,GAAG,CAAC,CAAEC,EAAAA,CAAcA,CAC1B,CAACvwQ,EAAAA,CAAIA,CAACwwQ,IAAI,CAAC,CAAEC,EAAAA,CAAeA,CAC5B,CAACzwQ,EAAAA,CAAIA,CAAC4vQ,KAAK,CAAC,CAAES,EACd,CAACrwQ,EAAAA,CAAIA,CAAC0wQ,MAAM,CAAC,CAAEC,EAAAA,CAASA,CACxB,CAAC3wQ,EAAAA,CAAIA,CAAC6vQ,KAAK,CAAC,CAAEQ,EACd3xO,QAASkyO,CAAAA,EAAAA,EAAAA,CAAAA,EAAwBR,GACjCtB,YAAa+B,EAAAA,CACjB,E,kDC3BG,SAASA,EACZ/sQ,CAAa,CACbgtQ,CAAwC,CACxCC,CAAuC,CACvCC,CAA0B,EAE1B,IAAIC,EAAantQ,EAAEotQ,aAAa,QAEhC,OAAIJ,EAAiBv3L,OAAO,EAAaw3L,OAAAA,EAAgBx3L,OAAO,EAI5Du3L,EAAiBv3L,OAAO,CAACr7G,QAAQ,CAAC8yS,GAH3B,MAOQ,OAAfC,GAAuBD,OAAAA,GACvBC,CAAAA,EAAaD,CAAS,EAGHC,OAAAA,GAAwBF,EAAgBx3L,OAAO,CAACr7G,QAAQ,CAAC+yS,IASzE,KANI,CACH1/Q,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACC,MACzB,CAIR,C,kDC9BO,SAASinI,EAA8BC,CAAc,CAAErwH,CAAiB,EAC3E,MAAO,CACH/W,gBAAiB+W,EACjBxvJ,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACC,MACzB,CACJ,C,kDCNO,SAASumI,EAAgBt4Q,CAAgB,EAC5C,MAAO,CACH6xI,gBAAiB,EACjBnuJ,KAAMouJ,EAAAA,CAAcA,CAACwjI,IACzB,CACJ,C,kDCJO,SAAS8C,EAAkBp4Q,CAAgB,CAAE40Q,CAAyB,CAAEj1Q,CAAe,EAC1F,MAAO,CACHkyI,gBAAiBlyI,EAAM/7B,MAAM,CAAG,EAChC8f,KAAMouJ,EAAAA,CAAcA,CAACwjI,IACzB,CACJ,C,0DCXO,OAAM4D,EACD3U,OAAmB,EAC3B,CAAQ4U,SAAmB,CACVC,CAAAA,UAAmB,aAExBx3Q,CAAe,CAAE,CACzB,IAAI,CAACw3Q,UAAU,CAAGx3Q,CACtB,CAEOy3Q,UAA6B,CAChC,OAAO,IAAI,CAAC9U,MAChB,CAEOl8R,KAAK+0B,CAAO,CAAQ,CACD,IAAlB,IAAI,CAAC+7Q,QAAQ,EACbnwS,OAAOq9B,YAAY,CAAC,IAAI,CAAC8yQ,QAAQ,EAGrC,IAAI,CAAC5U,MAAM,CAACl8R,IAAI,CAAC+0B,GAEjB,IAAI,CAAC+7Q,QAAQ,CAAGnwS,OAAOu9B,UAAU,CAAC,KAC9B,IAAI,CAACg+P,MAAM,CAAG,EACd,KAAI,CAAC4U,QAAQ,CAAG,CACpB,EAAG,IAAI,CAACC,UAAU,CACtB,CACJ,CCvBO,MAAME,EACQC,KACAC,CAAAA,YACAC,CAAAA,KAA0B,aAE/Bh+P,CAAsB,CAAEi+P,CAA4D,CAAE,CAC9F,IAAI,CAACH,KAAK,CAAG99P,EACb,IAAI,CAAC+9P,YAAY,CAAGE,EACpB,IAAI,CAACD,KAAK,CAAG,IAAIP,EAAW,IAChC,CAEOS,SAASn2S,CAAW,CAAQ,CAC3BA,EAAII,MAAM,CAAG,GAGjB,IAAI,CAAC61S,KAAK,CAACpxS,IAAI,CAAC7E,EACpB,CAEOo2S,oBAAoBxzS,CAAoB,CAAU,CACrD,IAAMgD,EAAO,IAAI,CAACqwS,KAAK,CAACJ,QAAQ,GAEhC,GAAIjwS,EAAKxF,MAAM,CAAG,EACd,OAAO,GAGX,IAAMi2S,EAAczwS,EAAK6hF,IAAI,CAAC,IAE9B,IAAK,IAAIxkF,EAAIL,EAAe,EAAGK,EAAI,IAAI,CAAC8yS,KAAK,CAAC31S,MAAM,CAAE6C,IAClD,GAAI,IAAI,CAAC+yS,YAAY,CAAC,IAAI,CAACD,KAAK,CAAC9yS,EAAE,CAAEozS,GACjC,OAAOpzS,EAIf,IAAK,IAAIA,EAAI,EAAGA,GAAKL,EAAcK,IAC/B,GAAI,IAAI,CAAC+yS,YAAY,CAAC,IAAI,CAACD,KAAK,CAAC9yS,EAAE,CAAEozS,GACjC,OAAOpzS,EAIf,OAAO,EACX,CACJ,CCrCO,SAASgyS,EACZqB,CAAiD,EAEjD,IAAIC,EAAwD,KACxDC,EAA+B,KAEnC,MAAO,CAACruQ,EAAkBpzB,EAA2BonB,KAC7Cq6Q,CAAAA,OAAAA,GAAwBD,OAAAA,GAA6Bp6Q,IAAUq6Q,CAAU,GAEzED,CAAAA,EAAmB,IAAIT,EADvBU,EAAcr6Q,EACmDm6Q,EAAO,EAG5EC,EAAiBJ,QAAQ,CAAChuQ,EAAEnoC,GAAG,EAE/B,IAAMyC,EAAQ8zS,EAAiBH,mBAAmB,CAACrhS,EAAMs5J,eAAe,SAExE,EAAY,GACD,CACHA,gBAAiB5rK,EACjByd,KAAMouJ,EAAAA,CAAcA,CAACwjI,IACzB,EAGG,IACX,CACJ,C,kDC1BO,SAASuC,EAAkBoB,CAAiB,CAAEhwE,CAA2C,CAAEtpM,CAAuB,EACrH,IAAIs6Q,EAAehxE,EAAap3D,eAAe,QAE/C,EAAiBA,eAAe,CAAGlyI,EAAM/7B,MAAM,CAAG,GAO9CiuK,gBANAooI,GAAgB,EAOhBv2R,KAAMouJ,EAAAA,CAAcA,CAACwjI,IACzB,EANW,IAOf,C,iDCbO,SAASyC,EAAmBkB,CAAiB,CAAEhwE,CAA2C,EAC7F,IAAIgxE,EAAehxE,EAAap3D,eAAe,QAE/C,EAAiBA,eAAe,CAAG,GAO/BA,gBANAooI,GAAgB,EAOhBv2R,KAAMouJ,EAAAA,CAAcA,CAACwjI,IACzB,EANW,IAOf,C,kDCdO,SAASkD,IACZ,MAAO,CACHp/Q,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAAC2jI,qBACzB,CACJ,C,kDCJO,SAAS4B,EAAar3Q,CAA6B,CAAEipM,CAAsC,EAM9F,MALiB,CACb7vM,OAAQ,CAAC6vM,EAAa7vM,MAAM,CAC5B1V,KAAMulN,EAAa7vM,MAAM,CAAG04I,EAAAA,CAAcA,CAACC,MAAM,CAAGD,EAAAA,CAAcA,CAACwjI,IACvE,CAGJ,C,kDCPO,SAASqC,EAAoB33Q,CAAa,CAAEipM,CAAsC,EAMrF,MALiB,CACb7vM,OAAQ,CAAC6vM,EAAa7vM,MAAM,CAC5B1V,KAAMulN,EAAa7vM,MAAM,CAAG04I,EAAAA,CAAcA,CAACC,MAAM,CAAGD,EAAAA,CAAcA,CAACwjI,IACvE,CAGJ,C,mUCHO,OAAM4E,EACF9E,YACAtrL,CAAAA,MAEUmvD,CAAAA,OACAq9H,CAAAA,aAET1B,CAAAA,aAA4C,aAExChoS,CAA0C,CAAEI,CAA+B,CAAE,CACrF,IAAI,CAACisK,OAAO,CAAGrsK,EACf,IAAI,CAACgoS,aAAa,CAAG5nS,EACrB,IAAI,CAACspS,aAAa,CAAG,IAAInoI,EAAAA,CACzB,KAAI,CAACinI,YAAY,CAAG,IAAI,CAACkB,aAAa,CAACjoI,YAAY,GAEnD,IAAI,CAACvkD,MAAM,CAAG,CACV1sF,KAAM,CACFqkF,QAAS,CAAC91E,EAAei9I,EAAmBxrJ,IAAgB,IAAI,CAACs5Q,iBAAiB,CAAC,IAAI,CAACz9H,OAAO,CAAC77I,IAAI,CAACqkF,OAAO,CAAC91E,EAAGi9I,EAAWxrJ,GAC/H,EACA+R,QAAS,CACLgrQ,OAAQ,IAAI,CAACC,uBAAuB,CAACr5S,IAAI,CAAC,IAAI,EAC9Cs5S,QAAS,IAAI,CAACC,mBAAmB,CAACv5S,IAAI,CAAC,IAAI,EAC3C+C,UAAW,IAAI,CAACizS,qBAAqB,CAACh2S,IAAI,CAAC,IAAI,CACnD,CACJ,CACJ,CAEOw1C,YAAYiyP,CAA2B,CAAQ,CAClD,IAAI,CAACoM,aAAa,CAAGpM,CACzB,CAEQ4R,wBAAwBzuQ,CAAa,CAAQ,CACjD,IAAI,CAAC+qQ,iBAAiB,CAAC,IAAI,CAACz9H,OAAO,CAAC9pI,OAAO,CAACwnQ,WAAW,CAAChrQ,GAC5D,CAEQ2uQ,oBAAoB3uQ,CAAa,CAAQ,CAC7C,IAAI,CAAC+qQ,iBAAiB,CAAC,IAAI,CAACz9H,OAAO,CAAC9pI,OAAO,CAACkrQ,OAAO,CAAC1uQ,EAAG,IAAI,CAACipQ,aAAa,EAC7E,CAEQmC,sBAAsBprQ,CAAgB,CAAEhM,CAAmB,CAAQ,CACvE,IAAMu3Q,EAAQ,IAAI,CAACj+H,OAAO,CAAC9pI,OAAO,CAACxD,EAAEnoC,GAAG,CAAwC,MAElE+C,IAAV2wS,GACA,IAAI,CAACR,iBAAiB,CAACQ,EAAMvrQ,EAAG,IAAI,CAACipQ,aAAa,CAAEj1Q,GAE5D,CAEQ+2Q,kBAAkBS,CAA0D,CAAQ,CACxF,GAAIA,OAAAA,EACA,OAGJ,IAAM3O,EAAW,CAAE,GAAG,IAAI,CAACoM,aAAa,CAAE,GAAGuC,CAAa,EAE1D,IAAI,CAACb,aAAa,CAACllP,IAAI,CAACo3O,EAC5B,CACJ,C,0DCvDO,IAAM+R,EAA+B,CACxChlI,EACAE,EACAq/H,EACAC,KAEA,IAAMyF,EAAyB,CAACvB,EAAmBhwE,EAAiCtpM,KAChF41I,EAAa51I,CAAK,CAACspM,EAAap3D,eAAe,CAAC,EAEzC,CACHA,gBAAiB,EACjBz4I,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACC,MAAM,CAC3B0oI,UAAW,EACf,GAGJ,MAAO,CACHr9Q,KAAM,CACFqkF,QAAS,CAACw3L,EAAgByB,EAAoBt9Q,KAC1Cm4I,EAAan4I,GAEN,CACHy0I,gBAAiB,EACjBz4I,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACC,MAAM,CAC3B0oI,UAAW,EACf,EAER,EACAtrQ,QAAS,CACL,CAACtH,EAAAA,CAAIA,CAAC0vQ,OAAO,CAAC,CAAE,CAAC5rQ,EAAkBs9L,EAAiCtpM,IAChE,EAAU/7B,MAAM,CAAG,GACf+nC,EAAEvnC,cAAc,GAET2zS,CAAAA,EAAAA,EAAAA,CAAAA,EAAmBpsQ,EAAGs9L,IAG1B,KAEX,CAACphM,EAAAA,CAAIA,CAAC2vQ,SAAS,CAAC,CAAE,CAAC7rQ,EAAkBs9L,EAAiCtpM,IAClE,EAAU/7B,MAAM,CAAG,GACf+nC,EAAEvnC,cAAc,GAETyzS,CAAAA,EAAAA,EAAAA,CAAAA,EAAelsQ,EAAGs9L,EAActpM,IAGpC,KAEX,CAACkI,EAAAA,CAAIA,CAAC4vQ,KAAK,CAAC,CAAE,CAAC9rQ,EAAkBs9L,EAAiCtpM,IAC9D,EAAiBvG,MAAM,EAAIuG,EAAM/7B,MAAM,CAAG,GACtC+nC,EAAEvnC,cAAc,GAChBunC,EAAEroC,eAAe,GAEVk3S,EAAuB7uQ,EAAGs9L,EAActpM,IAG/CspM,EAAawxE,SAAS,CAAC72S,MAAM,EAAI6xK,GACjC9pI,EAAEvnC,cAAc,GAChBunC,EAAEroC,eAAe,GChE1B,CACHuuK,gBAAiB,EACjBz4I,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACwjI,IACzB,GDiEmB,KAEX,CAACztQ,EAAAA,CAAIA,CAAC0wQ,MAAM,CAAC,CAAE,CAAC5sQ,EAAkBs9L,IAC9B,EAAiB7vM,MAAM,EACnBuS,EAAEvnC,cAAc,GAChBunC,EAAEroC,eAAe,GAEV,CACH81B,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAAC2jI,qBACzB,GAGG,KAEX4E,QAAS,CAACpB,EAAgBhwE,IACtB,EAAiBwxE,SAAS,CAAC72S,MAAM,EAAI6xK,EAC1B,CACHr8I,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACwjI,IACzB,EAGG,KAEXqB,YAAchrQ,GACH+sQ,CAAAA,EAAAA,EAAAA,CAAAA,EAAsB/sQ,EAAGmpQ,EAAYC,EAAa,KAEjE,CACJ,CACJ,EE/FO,SAAS4F,EACZ3tS,CAA0C,CAC1CwyN,CAAiD,CACjDs1E,CAAkC,CAClCC,CAAmC,CACnCC,CAAmC,CACnCz/H,CAA+B,CAC/BE,CAAkB,EAElB,IAAMmlI,EAAqBL,EAA6BhlI,EAAcE,EAAYq/H,EAAYC,GAE9F,OAAO,IAAIZ,EAAAA,CAAYA,CAAoDW,EAAYC,EAAaC,EAAa,CAC7GG,iBAAkB,IAAI+E,EAAqBU,EAAoB5tS,GAC/DioS,yBAA0B,CACtBiB,kBAAmB2E,EAAAA,CAAsCA,CACzD39I,UAAW,YACf,EACAsiE,cAAeA,CACnB,EACJ,CCzBO,IAAMs7E,EAA8C,CACvDjpI,gBAAiB,EACjBz4I,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACC,MAAM,CAC3B0oI,UAAW,EACf,E,eCPA,QAAU,+HCIH,IAAMM,EAAqC9kQ,GAE1C,UAAC+kQ,KAAAA,CAAGliM,UAAU,6CAA6CzoB,KAAK,UAAUj6D,SAAU,GAAI7hB,GAAI0hC,EAAM1hC,EAAE,CAAE0mS,kBAAiBhlQ,EAAMilQ,OAAO,CAAElhI,YAAU,sCAC3I/jI,EAAMtW,KAAK,CAACr2B,GAAG,CAAC,CAAC8zB,EAAMn3B,KACpB,IAAMwlK,EAAWxlK,IAAUgwC,EAAM47H,eAAe,CAEhD,MAAOspI,CAAAA,EAAAA,EAAAA,YAAAA,EAAallQ,EAAMy/H,UAAU,CAACt4I,GAAO,CACxC,gBACiBquI,EACjB,2BAA4BA,EAC5B,YAAa,0BAEbl3J,GAAI,CAAC,EAAE0hC,EAAMilQ,OAAO,CAAC,CAAC,EAAEj1S,EAAM,CAAC,CAC/B,IACKA,EACLw7G,QAAU91E,GAAkBsK,EAAMwrE,OAAO,CAAC91E,EAAG1lC,EAAOm3B,GACpDizD,KAAM,QACV,EACJ,EAAE,G,mCCrBd,QAAU,6aCIH,IAAM+qN,EAA+CnlQ,GAEpD,WAAC8jI,MAAAA,CAAIjhE,UAAU,oCAAoCvkG,GAAI0hC,EAAM1hC,EAAE,CAAEylK,YAAU,oCACvE,UAAC7pJ,EAAAA,CAAIA,CAAJA,CAAKu1H,OAAQ21J,EAAAA,CAASA,CAAEviM,UAAU,+BAA+BsmH,KAAK,gCAAgC,GACvG,UAAC7E,OAAAA,CAAKzhH,UAAU,wCAAgC7iE,EAAMC,OAAO,M,eCRzE,QAAU,udCGH,IAAMolQ,EAAiDrlQ,GAEtD,WAAC8jI,MAAAA,CAAIjhE,UAAU,4CAA4CvkG,GAAI0hC,EAAM1hC,EAAE,CAAEylK,YAAU,sCAC/E,UAAC3I,EAAAA,CAAoBA,CAApBA,CAAqBv4D,UAAU,iDAAiD,GACjF,UAACyhH,OAAAA,CAAKzhH,UAAU,gDAAwC7iE,EAAMC,OAAO,M,eCH1E,IAAMqlQ,EAA+CtlQ,GAEpD,WAAC8jI,MAAAA,CAAIjhE,UAAU,oCAAoCvkG,GAAI0hC,EAAM1hC,EAAE,CAAEylK,YAAU,oCACvE,UAAC7pJ,EAAAA,CAAIA,CAAJA,CAAKu1H,OAAQ/gH,EAAAA,CAAeA,CAAEm0E,UAAU,+BAA+BsmH,KAAK,kCAAkC,GAC/G,UAAC7E,OAAAA,CAAKzhH,UAAU,wCAAgC7iE,EAAMC,OAAO,MCRzE,QAAU,2MCkBV,IAAMslQ,EAAyB,CAACv8K,EAAcw2C,EAAoBgmI,IAC9D,KAAIx8K,EACO67K,EAGP77K,EAAKr7H,MAAM,EAAI6xK,GAAcgmI,EAASr6L,OAAO,CAAEr7G,QAAQ,CAAChC,SAASijH,aAAa,EACvE,CACH6qD,gBAAiB,EACjBz4I,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACwjI,IAAI,CACzBmF,UAAWx7K,CACf,EAGG,CACH4yC,gBAAiB,EACjBz4I,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACC,MAAM,CAC3B0oI,UAAWx7K,CACf,EAGSiyC,EAAqCj7H,IAC9C,IAAMgoN,EAAWy9C,CAAAA,EAAAA,EAAAA,UAAAA,EAAW3iI,EAAAA,CAAeA,EACrC0iI,EAAW3L,CAAAA,EAAAA,EAAAA,MAAAA,EAAuB,MAClC2G,EAAY3G,CAAAA,EAAAA,EAAAA,MAAAA,EAAuB,MACnCoL,EAAUxO,CAAAA,EAAAA,EAAAA,KAAAA,IACViP,EAAajP,CAAAA,EAAAA,EAAAA,KAAAA,IACbkP,EAAgBC,CAAAA,EAAAA,EAAAA,CAAAA,EAAY1tI,EAAAA,CAAOA,EAEnC,CAAC2tI,EAAeC,EAAiB,CAAGnP,CAAAA,EAAAA,EAAAA,QAAAA,EAA4B,CAClE/6H,gBAAiB,EACjBz4I,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACC,MAAM,CAC3B0oI,UAAWxkQ,EAAMtvC,WACrB,GACM,CAACq1S,EAAYC,EAAc,CAAGrP,CAAAA,EAAAA,EAAAA,QAAAA,EAA+C,CAC/E7rQ,MAAO,KACPymB,QAAS,KACTj1B,OAAQ,EAAE,CACV6J,OAAQojL,EAAAA,CAAgBA,CAACC,QAC7B,GAEMy8F,EAAuB3jS,IACzB4jS,EAAa5lQ,WAAW,CAACh+B,GACzBwjS,EAAiBxjS,EACrB,EACM4jS,EAAeC,CAAAA,EAAAA,EAAAA,CAAAA,EAAczB,EAAoCmB,EAAeI,EAAqBT,EAAUhF,EAAWx4C,EAASz4P,OAAO,CAAEywC,EAAMs/H,YAAY,CAAEt/H,EAAMw/H,UAAU,EAEtLm4H,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,SCJa,EDKpB,IAAMzrP,EAAOlM,IAAAA,EAAM6/H,YAAY,CAASpkH,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,MAAQ4tJ,CAAAA,EAAAA,EAAAA,CAAAA,EAAMrpK,EAAM6/H,YAAY,EAErErgD,EAAemmL,EAChBx8Q,IAAI,CACDmyB,CAAAA,EAAAA,EAAAA,CAAAA,EAAI,IAAM0qP,EAAcxyE,CAAAA,EAAAA,EAAAA,CAAAA,EAAwBxzL,EAAM4/H,YAAY,KCTtD,EDUH,IAAM1zH,ECTtB,QAAQ,SAAC,CAAM,CAAE,CAAU,EAChC,IAAI,EAAW,GACX,EAAsB,KAEtB,EAA6C,KAE3C,EAAO,WAKe,GAD1B,WAAoB,WAAW,GAAG,EACb,KACjB,EAAU,CAEZ,EAAW,GAAM,IACX,EAAQ,EAAW,EACb,KAAK,EACN,IAAI,CAAC,EAAM,CAAC,EAEzB,EAEK,SAAS,CACd,QACE,EACA,SAAC,CAAQ,EAIP,WAAoB,WAAW,GAAG,EACvB,GAAK,EACJ,EAAM,EAGG,QAAyB,EAAY,EAAM,GAAI,EAAE,SAE5D,EAAiB,IAAQ,SAAS,CAAC,EAAmB,EAElE,WAGE,IAAO,EACI,QAAQ,EAAE,EAGvB,OACA,WAEE,EAAY,EAAqB,IAAI,GAG1C,IDxCW74C,CAAAA,EAAAA,EAAAA,CAAAA,EAAKs+I,GAAgBA,EAAWhkJ,MAAM,EAAIqyC,EAAMw/H,UAAU,CAAGx/H,EAAMrF,MAAM,CAACg3G,GAAcl2F,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,EAAE,GAC7FC,CAAAA,EAAAA,EAAAA,CAAAA,EAAW0qP,GACAA,EAAiBj9Q,IAAI,CACxB91B,CAAAA,EAAAA,EAAAA,CAAAA,EAAKgzS,GAAc9vE,CAAAA,EAAAA,EAAAA,CAAAA,EAAuB8vE,IAC1C7qP,CAAAA,EAAAA,EAAAA,CAAAA,EAAYua,GAAeta,CAAAA,EAAAA,EAAAA,EAAAA,EAAG66K,CAAAA,EAAAA,EAAAA,CAAAA,EAAsBvgK,EAAI91B,OAAO,OAI1E5W,SAAS,CAAC28Q,GAEf,MAAO,KACHxmL,EAAaR,WAAW,GACxB2mL,EAAczwO,QAAQ,EAC1B,CACJ,GAEAyiO,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,KACH33P,EAAMtvC,WAAW,CAAC/C,MAAM,EAAIqyC,EAAMw/H,UAAU,EAC5CmmI,EAAcxqP,IAAI,CAACnb,EAAMtvC,WAAW,CAE5C,GAEAkmS,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,KAEbqP,EADcV,EAAuBvlQ,EAAMtvC,WAAW,CAAEsvC,EAAMw/H,UAAU,CAAEgmI,IAG1EG,EAAcxqP,IAAI,CAACnb,EAAMtvC,WAAW,CACxC,EAAG,CAACsvC,EAAMtvC,WAAW,CAAC,EAEtB,IAAM41S,EAAiBT,EAAc1iR,MAAM,CAAGuiR,EAAap1S,KAAAA,EACrDi2S,EAAqBV,EAAc1iR,MAAM,EAAI4iR,EAAW5/Q,MAAM,GAAKojL,EAAAA,CAAgBA,CAACC,QAAQ,EAAIu8F,EAAWzpR,MAAM,CAAC3uB,MAAM,CAAG,EAEjI,MACI,WAACm2K,MAAAA,CAAAA,SAAAA,CACG,UAACA,MAAAA,CAAI/vD,IAAKyxL,EAAAA,SACN,UAACtqI,EAAAA,CAAKA,CAALA,CACG58J,GAAI2mS,EACJx3R,KAAK,OACLyb,SAAWwM,GAAMsK,EAAMq/H,OAAO,CAAC3pI,EAAEkE,aAAa,CAAC/sC,KAAK,EACpDgB,UAAY6nC,GAAMwwQ,EAAaryL,MAAM,CAAC36E,OAAO,CAACrrC,SAAS,CAAC6nC,EAAGqwQ,EAAWzpR,MAAM,EAAI,EAAE,EAClF8nR,QAAU1uQ,GAAMwwQ,EAAaryL,MAAM,CAAC36E,OAAO,CAACkrQ,OAAO,CAAC1uQ,GACpDwuQ,OAASxuQ,GAAMwwQ,EAAaryL,MAAM,CAAC36E,OAAO,CAACgrQ,MAAM,CAACxuQ,GAClD7oC,MAAOmzC,EAAMtvC,WAAW,CACxBuzF,YAAajkD,EAAMikD,WAAW,CAC9B7J,KAAK,WACLosN,gBAAc,UACdC,gBAAeZ,EAAc1iR,MAAM,CACnCujR,oBAAkB,OAClBC,gBAAeL,EACfM,YAAWN,EACXO,wBAAuBN,EAAqB,CAAC,EAAEtB,EAAQ,CAAC,EAAEY,EAAcjqI,eAAe,CAAC,CAAC,CAAGtrK,KAAAA,EAC5FslS,aAAY51P,EAAMvoC,SAAS,CAC3BqvS,mBAAkB,EAAuCx2S,KAAAA,EAAjBg2S,EACxCviI,YAAU,0BAA0B,EAA1B,GAIlB,UAACD,MAAAA,CAAIjhE,UAAU,8BAA8BkR,IAAKysL,EAAWtoP,MAAO6uP,CAAAA,EAAAA,EAAAA,CAAAA,EAAelB,EAAc1iR,MAAM,EAAG4gJ,YAAU,2CAC/G8hI,EAAc1iR,MAAM,EACjB,WAACo+L,EAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACIwkF,EAAW5/Q,MAAM,GAAKojL,EAAAA,CAAgBA,CAACvxC,KAAK,EAAI,UAACmtI,EAAAA,CAAUllQ,QAAS8lQ,EAAWj7Q,KAAK,CAAExsB,GAAIgoS,CAAAA,GAE1FP,EAAW5/Q,MAAM,GAAKojL,EAAAA,CAAgBA,CAACxnF,OAAO,EAAI,UAACsjL,EAAAA,CAAYplQ,QAAS8lQ,EAAWx0P,OAAO,CAAEjzC,GAAIgoS,CAAAA,GAEhGP,EAAW5/Q,MAAM,GAAKojL,EAAAA,CAAgBA,CAACC,QAAQ,EAAIu8F,EAAWzpR,MAAM,CAAC3uB,MAAM,CAAG,GAC3E,UAACm3S,EAAAA,CACGp7Q,MAAOq8Q,EAAWzpR,MAAM,CACxBmjJ,WAAYz/H,EAAMy/H,UAAU,CAC5B7D,gBAAiBiqI,EAAcjqI,eAAe,CAC9CqpI,QAASA,EACTz5L,QAAS06L,EAAaryL,MAAM,CAAC1sF,IAAI,CAACqkF,OAAO,CACzCltG,GAAIgoS,CAAAA,GAIXP,EAAW5/Q,MAAM,GAAKojL,EAAAA,CAAgBA,CAACC,QAAQ,EAAIu8F,IAAAA,EAAWzpR,MAAM,CAAC3uB,MAAM,EAAU,UAAC23S,EAAAA,CAAUrlQ,QAASD,EAAM2/H,UAAU,CAAErhK,GAAIgoS,CAAAA,GAAAA,EAAAA,GAAAA,EAMxJ,C,6DEzJO,SAAS5mI,EAA6Bv4I,CAAwC,EACjF,MACI,WAAC6/Q,KAAAA,CAAGnkM,UAAU,kDACV,UAAC3oF,EAAAA,CAAIA,CAAJA,CAAK2oF,UAAU,8CAA8C4sC,OAAQtoH,EAAKkgE,IAAI,CAACooD,MAAM,CAAE05E,KAAMhiM,EAAKkgE,IAAI,CAAC8hI,IAAI,GAC5G,UAAC7E,OAAAA,CAAKzhH,UAAU,uDAA+C17E,EAAKt6B,KAAK,GACxEs6B,KAAe72B,IAAf62B,EAAK3vB,KAAK,EAAkB2vB,EAAK3vB,KAAK,CAAC7J,MAAM,CAAG,GAAK,UAAC22N,OAAAA,CAAKzhH,UAAU,wDAAgD17E,EAAK3vB,KAAK,KAHzE2vB,EAAK7oB,EAAE,CAM1E,C,SCVA,K,OAAA,GAAU,6rD,wECDV,K,OAAA,GAAU,iDCIH,OAAM6lK,UAAuBvB,EAAAA,SAASA,CACxBqkI,SAAoC,CAAE13S,QAAS,CAAE47G,QAAS,IAAK,CAAE,CACjE42I,CAAAA,WAAwC7+E,CAAAA,EAAAA,EAAAA,SAAAA,GAElDgkI,CAAAA,mBAA0B,CAC7B,GAAI,WAAI,CAACnlD,UAAU,CAAC52I,OAAO,CACvB,OAGJ,IAAIonB,EAAyB,IAAI,CAACwvH,UAAU,CAAC52I,OAAO,CAChD57G,EAAUgjI,EAAU09C,aAAa,CAErC,KAAO1gL,OAAAA,GAAkB,CACrB,GAAIA,KAAsCe,IAAtCf,EAAQw/G,OAAO,CAACmhE,iBAAiB,CAAgB,CACjD39C,EAAYhjI,EACZ,KACJ,CAEAA,EAAUA,EAAQ0gL,aACtB,CAEA,IAAI,CAACg3H,QAAQ,CAAC13S,OAAO,CAAC47G,OAAO,CAAG57G,CACpC,CAEOq+J,QAAoB,CACvB,MACI,UAACkW,MAAAA,CAAIjhE,UAAU,iCAAiCkR,IAAK,IAAI,CAACguI,UAAU,UAChE,UAACj/E,EAAAA,CAAeA,CAACy4H,QAAQ,EAAC1uS,MAAO,IAAI,CAACo6S,QAAQ,UAAG,IAAI,CAACjnQ,KAAK,CAAC6tI,QAAQ,IAGhF,CACJ,C,uEC/BO,OAAMgqH,UAAiBj1H,EAAAA,SAASA,CAClBqkI,SAA6C,CAAE13S,QAAS2zK,CAAAA,EAAAA,EAAAA,SAAAA,GAAY,CAE9EtV,CAAAA,QAAoB,CACvB,MACI,UAACkW,MAAAA,CAAI/vD,IAAK,IAAI,CAACkzL,QAAQ,CAAC13S,OAAO,CAAEszG,UAAW,IAAI,CAAC7iE,KAAK,CAAC6iE,SAAS,UAC5D,UAACigE,EAAAA,CAAeA,CAACy4H,QAAQ,EAAC1uS,MAAO,IAAI,CAACo6S,QAAQ,UAAG,IAAI,CAACjnQ,KAAK,CAAC6tI,QAAQ,IAGhF,CACJ,C,kDCZO,IAAM/K,EAAkBqkI,CAAAA,EAAAA,EAAAA,aAAAA,EAAgC,CAC3D53S,QAAS2zK,CAAAA,EAAAA,EAAAA,SAAAA,GACb,E,4FCHA,K,OAAA,GAAU,CAAC,ynBAAsnB,CAAC,ECI3nB,IAAMxY,EAAsE1qH,QAG3E0hL,EAFJ,IAAMn1G,EAAavsE,CAAmB,IAAnBA,EAAMloC,QAAQ,EAAakoC,EAAMm6P,MAAM,CACpDiN,EAAYpnQ,EAAMm6P,MAAM,CAAG,wBAA0B,GAkB3D,OAdIz4E,EADA1hL,EAAMm6P,MAAM,CAER,WAAC54E,EAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACG,UAAC+C,OAAAA,CAAKzhH,UAAU,4CACZ,UAACu4L,EAAAA,CAAcA,CAAdA,CAAexkS,KAAK,OAAO4tN,OAAQxkL,EAAM4qH,aAAa,KAE3D,UAAC05D,OAAAA,CAAKzhH,UAAU,gCAAgCkhE,YAAU,0CACrD/jI,EAAM6tI,QAAQ,MAKX,UAACy2C,OAAAA,CAAKvgD,YAAU,wCAAgC/jI,EAAM6tI,QAAQ,GAI9E,UAAC/J,MAAAA,CAAIC,YAAU,sBAAsBlhE,UAAWukM,EAAAA,SAC5C,UAACl6H,EAAAA,CAAMA,CAANA,CACGrqE,UAAW7iE,EAAM6iE,SAAS,CAC1B2I,QAASxrE,EAAMwrE,OAAO,CACtB/zG,UAAWuoC,EAAMvoC,SAAS,CAC1BI,SAAUmoC,EAAMnoC,QAAQ,CACxBwvS,aAAc96L,EACd9+F,KAAMuyB,EAAMvyB,IAAI,UACfi0M,CAAAA,EAAAA,EAIjB,C,gGCrCA,QAAU,gsDCGH,IAAM4lF,EAAyDtnQ,GAE9D,WAACgnQ,KAAAA,CACGO,gBAAevnQ,EAAMwnQ,SAAS,CAC9B5R,aAAY51P,EAAMviB,MAAM,CAAChmB,SAAS,CAClCorG,UAAU,yBACVkhE,YAAU,qBACVv4D,QAASxrE,EAAMwrE,OAAO,CACtBltG,GAAI0hC,EAAM1hC,EAAE,CACZ87E,KAAK,qBACL,UAAClgE,EAAAA,CAAIA,CAAJA,CAAK2oF,UAAU,+BAA+BsmH,KAAMnpL,EAAMviB,MAAM,CAACsrQ,UAAU,CAAEt5I,OAAQzvG,EAAMviB,MAAM,CAAC4pE,IAAI,GACvG,UAACi9H,OAAAA,CAAKzhH,UAAU,gCAAgCkhE,YAAW,sBAAwB/jI,EAAMviB,MAAM,CAACurG,IAAI,UAC/FhpF,EAAMviB,MAAM,CAACurG,IAAI,MCZrBy+K,EAAqE,CAACnlS,EAAO6kB,EAAMwrJ,EAAW+0H,EAAQl8L,KAC/G,IAAMj+G,EAAM,CAAC,EAAEm6S,EAAO,CAAC,EAAE/0H,EAAU,CAAC,CAEpC,MACI,UAAC20H,EAAAA,CACGE,UAAW70H,IAAcrwK,EAAMs5J,eAAe,CAC9Ct9J,GAAI,CAAC,EAAEopS,EAAO,CAAC,EAAE/0H,EAAU,CAAC,CAC5Bl1J,OAAQ0J,EAERqkF,QAAU91E,IACN81E,EAAQ91E,EAAGi9I,GACXxrJ,EAAKyvG,QAAQ,EACjB,CAAC,EAJIrpI,EAOjB,E,eClBA,QAAU,qSCKH,IAAMo6S,EAAsE3nQ,IAC/E,IAAM4nQ,EAAkBnR,CAAAA,EAAAA,EAAAA,KAAAA,IAElBoR,EAAW7nQ,KAAa1vC,IAAb0vC,EAAM1hC,EAAE,CAAiB0hC,EAAM1hC,EAAE,CAAGspS,EAC/C/xR,EAAcmqB,KAAoB1vC,IAApB0vC,EAAM8nQ,SAAS,CAAiB9nQ,EAAM8nQ,SAAS,CAAG,GAChEpwS,EAAc,CAAC,WAAW,EAAEsoC,EAAM+nQ,WAAW,CAAC,CAAC,CAErD,MACI,WAACvM,EAAAA,CAAiBA,CAAjBA,CAAkBv0I,UAAW,aAAcv9H,MAAOsW,EAAM0pP,aAAa,WAClE,UAAC8R,EAAAA,CAAiBA,CAACC,OAAO,EACtBlvL,WAAYvsE,CAAmB,IAAnBA,EAAMloC,QAAQ,CAC1BwG,GAAIupS,EACJpwS,UAAWuoC,KAAoB1vC,IAApB0vC,EAAMvoC,SAAS,CAAiBuoC,EAAMvoC,SAAS,CAAG,GAC7Doe,YAAaA,EACbgtF,UAAWnrG,EACXG,SAAU,8BACTmoC,EAAM6tI,QAAQ,GAEnB,UAAC2tH,EAAAA,CAAiBA,CAACE,KAAK,WACpB,UAACF,EAAAA,CAAiBA,CAACG,IAAI,EAAoB9jS,SAAU,8BAA+B+jS,SAAU6L,EAAkBxjI,eAAgB4jI,CAAAA,EAAAA,GAAAA,EAIhJ,C,2DC5BA,K,OAAA,GAAU,6wGCEV,IAAMG,EAAgBr7S,IAClBA,EAAMwB,cAAc,GACpBxB,EAAMU,eAAe,EACzB,EAEa6/K,EAA8DltI,GAEnE,UAAC8wE,SAAAA,CACGp7D,UAAW1V,EAAM0V,SAAS,CAC1BkgP,aAAY51P,EAAMvoC,SAAS,CAC3BqvS,mBAAkB9mQ,EAAM6rE,eAAe,CACvCo8L,gBAAejoQ,EAAMqnQ,YAAY,CACjCxkM,UAAW,CAAC,WAAW,EAAE7iE,EAAM6iE,SAAS,CAAC,CAAC,CAC1CkhE,YAAW/jI,EAAMnoC,QAAQ,CACzBC,SAAUkoC,CAAmB,IAAnBA,EAAMloC,QAAQ,CACxB0zG,QAASxrE,CAAuB,IAAvBA,EAAMqnQ,YAAY,CAAYW,EAAehoQ,EAAMwrE,OAAO,CACnErrF,SAAU6f,CAAuB,IAAvBA,EAAMqnQ,YAAY,CAAY,GAAK,EAC7C55R,KAAMuyB,EAAMvyB,IAAI,UAChB,UAAC62M,OAAAA,CAAKzhH,UAAU,+BAAuB7iE,EAAM6tI,QAAQ,I,qGCpBjE,K,OAAA,GAAU,CAAC,q1EAAq1E,CAAC,ECK11E,IAAMV,EAAkEntI,IAC3E,IAAM1hC,EAAKm4R,CAAAA,EAAAA,EAAAA,KAAAA,IAEX,MACI,WAAC3yH,MAAAA,CAAIjhE,UAAU,oCACX,UAACxrD,QAAAA,CACGwrD,UAAU,4CACVp1F,KAAK,WACLnP,GAAIA,EACJqZ,KAAMqoB,EAAMroB,IAAI,CAChB9qB,MAAOmzC,EAAMnzC,KAAK,CAClBk3K,YAAU,iBACV5tC,QAASn2F,EAAMjlB,SAAS,CACxBjjB,SAAUkoC,EAAMusE,UAAU,CAC1Bs0B,SAAU7gG,EAAMsrO,UAAU,CAC1BsqB,aAAY51P,EAAMvoC,SAAS,CAC3ButS,kBAAiBhlQ,EAAMgwH,UAAU,CACjC9mI,SAAWv8B,GAAUqzC,EAAM9W,QAAQ,CAACv8B,EAAMM,MAAM,CAACkpI,OAAO,CAAC,GAG7D,WAAC3+H,QAAAA,CAAMqrG,UAAU,sBAAsBqlM,QAAS5pS,EAAIylK,YAAU,2BAC1D,UAACugD,OAAAA,CAAKzhH,UAAU,sCACZ,UAAC3oF,EAAAA,CAAIA,CAAJA,CAAKu1H,OAAQhC,EAAAA,CAAQA,CAAE5qC,UAAU,qBAAqBsmH,KAAK,oBAAoB,EAApB,GAGhE,UAAC7E,OAAAA,CAAKzhH,UAAU,2BAA2BkhE,YAAU,+BAChD/jI,EAAM6tI,QAAQ,QAKnC,C,iFCpCA,K,OAAA,GAAU,2SCKH,IAAMT,EAA2EptI,GAEhF,UAACmoQ,EAAAA,CAAiBA,CAAjBA,CAAkB53P,OAAQvQ,EAAMuQ,MAAM,CAAE63P,YAAapoQ,EAAMooQ,WAAW,CAAE53P,SAAUxQ,EAAMwQ,QAAQ,CAAErtB,OAAQ6c,EAAM7c,MAAM,UACnH,UAACmnQ,EAAAA,CAASA,CAATA,CAAUznL,UAAU,4CAA4C4iK,WAAYzlO,EAAMrP,OAAO,CAAEozI,YAAU,iCAAiC,EAAjC,E,kDCNlH,IAAMskI,EAA0C,CAC5CrvJ,UAAW,GACX71H,OAAQ,GACRqtB,SAAUp2B,E,OAAAA,CACd,EAEakuR,EAAqBnB,CAAAA,EAAAA,EAAAA,aAAAA,EAAckB,E,4DCNzC,IAAME,EAA0FvoQ,GAE/F,UAACsoQ,EAAAA,CAAkBA,CAACE,QAAQ,WACtBvlI,GACE,UAACa,MAAAA,CAAIjhE,UAAWogE,EAAQ9/I,MAAM,CAAG6c,EAAM6iE,SAAS,CAAG,CAAC,EAAE7iE,EAAM6iE,SAAS,CAAC,gCAAgC,CAAC,CAAEvkG,GAAI2kK,EAAQjqB,SAAS,CAAE+qB,YAAU,+BACrI/jI,EAAM6tI,QAAQ,I,6DCL5B,IAAM46H,EAAyFzoQ,GAE9F,UAACsoQ,EAAAA,CAAkBA,CAACE,QAAQ,WACtBvlI,GACE,UAACnyD,SAAAA,CAAOtF,QAASy3D,EAAQzyH,QAAQ,CAAEi2P,gBAAexjI,EAAQ9/I,MAAM,CAAEwjR,gBAAe1jI,EAAQjqB,SAAS,CAAEn2C,UAAW7iE,EAAM6iE,SAAS,CAAEkhE,YAAU,8BACrI/jI,EAAM6tI,QAAQ,I,gHCA5B,OAAM66H,UAA0B9lI,EAAAA,SAASA,CAC5C,OAAc58H,OAAmCyiQ,EAAAA,CAAkB,QACrDE,QAAqCJ,EAAAA,CAAmB,CAC9DK,cACSC,CAAAA,UAAmB,aAExB7oQ,CAA8B,CAAE,CACxC,KAAK,CAACA,GACN,IAAI,CAAC6oQ,UAAU,CAAGl2K,CAAAA,EAAAA,EAAAA,CAAAA,IAElB,IAAI,CAACi2K,cAAc,CAAG,CAClB5vJ,UAAW,IAAI,CAAC6vJ,UAAU,CAC1B1lR,OAAQ,GACRqtB,SAAU,IAAI,CAACs4P,OAAO,CAACh+S,IAAI,CAAC,IAAI,CACpC,CACJ,CAEO8iK,QAAoB,CAKvB,OAJI,IAAI,CAACg7I,cAAc,CAACzlR,MAAM,GAAK,IAAI,CAAC6c,KAAK,CAAC7c,MAAM,EAChD,IAAI,CAAC4lR,cAAc,GAInB,UAACT,EAAAA,CAAkBA,CAAC/M,QAAQ,EAAC1uS,MAAO,IAAI,CAAC+7S,cAAc,UACnD,UAAC9kI,MAAAA,CAAIjhE,UAAW,IAAI,CAAC7iE,KAAK,CAAC6iE,SAAS,UAAG,IAAI,CAAC7iE,KAAK,CAAC6tI,QAAQ,IAGtE,CAEQi7H,SAAgB,CACpB,IAAI,CAAC9oQ,KAAK,CAACwQ,QAAQ,CAAC,CAAC,IAAI,CAACo4P,cAAc,CAACzlR,MAAM,CACnD,CAEQ4lR,gBAAuB,CAC3B,IAAI,CAACH,cAAc,CAAG,CAClB5vJ,UAAW,IAAI,CAAC4vJ,cAAc,CAAC5vJ,SAAS,CACxC71H,OAAQ,IAAI,CAAC6c,KAAK,CAAC7c,MAAM,CACzBqtB,SAAU,IAAI,CAACo4P,cAAc,CAACp4P,QAClC,CACJ,CACJ,C,kDC/CO,IAAM43H,EAAuE,OAAC,CAAEjxK,SAAAA,CAAQ,CAAE80J,cAAAA,CAAa,CAAE,GAC5G,MAAO,UAACl9I,IAAAA,CAAEzQ,GAAI2tJ,EAAAA,SAAgB90J,EAASmL,KAAK,CAAC29B,OAAO,EACxD,C,iFCFA,K,OAAA,GAAU,uFCGV,MACQ,CAAC,CAAEu7O,QAAS,CAAE,EAAG,CAAEA,QAAS,CAAE,EAAE,GAC/B,CAAC,CAAEA,QAAS,CAAE,EAAG,CAAEA,QAAS,CAAE,EACvC,CAEMwtB,EAAwCC,GAC1CC,CAAAA,EAAAA,EAAAA,CAAAA,EAAeD,EAAiB,CAC5B5yL,SAAU,IACVg4D,OAAQ,OACR86H,SAAS,EACb,GAEEC,EAAyCH,GAC3CC,CAAAA,EAAAA,EAAAA,CAAAA,EAAeD,EAAiB,CAC5B5yL,SAAU,IACVg4D,OAAQ,OACR86H,SAAS,EACb,EAEG,OAAME,EACQC,SAAwBx7S,SAAS80G,aAAa,CAAC,MACxD2mM,CAAAA,QAAmB,EAEpBC,CAAAA,YAAmB,CACtB17S,SAASg1G,IAAI,CAACC,WAAW,CAAC,IAAI,CAACumM,QAAQ,EAAEtoR,SAAS,CAAC9uB,GAAG,CAAC,uBAEvD,IAAI,CAACo3S,QAAQ,CAACpxP,KAAK,CAACsjO,OAAO,CAAG,IAC9B,IAAI,CAAC8tB,QAAQ,CAACpxP,KAAK,CAACuxP,aAAa,CAAG,MACxC,CAEOl1O,MAAa,CACZ,IAAI,CAACg1O,OAAO,GAIhB,IAAI,CAACA,OAAO,CAAG,GAEfP,EAAkB,IAAI,CAACM,QAAQ,EAC1Bx8S,IAAI,CAAC,KACF,IAAI,CAACw8S,QAAQ,CAACpxP,KAAK,CAACuxP,aAAa,CAAG,KACxC,GACC93S,KAAK,CAACyoB,EAAAA,CAAIA,EACnB,CAEOimC,MAAa,CACX,IAAI,CAACkpP,OAAO,GAIjB,IAAI,CAACA,OAAO,CAAG,GAEfH,EAAmB,IAAI,CAACE,QAAQ,EAC3Bx8S,IAAI,CAAC,KACF,IAAI,CAACw8S,QAAQ,CAACpxP,KAAK,CAACuxP,aAAa,CAAG,MACxC,GACC93S,KAAK,CAACyoB,EAAAA,CAAIA,EACnB,CACJ,C,kCCtDO,OAAMsvR,EACOx6I,gBAECy6I,CAAAA,MACAC,CAAAA,oBAAoD,IAAIpY,EAAAA,CAAeA,CAAcriI,EAAAA,CAAWA,CAACE,MAAM,CACxH,eAAiD,IACzCw6I,CAAAA,2BAAkD,IAEzCC,CAAAA,SACAC,CAAAA,gBAAmC,aAExCC,CAAwB,CAAEr4Q,CAAiC,CAAE,CACrE,IAAI,CAACo4Q,gBAAgB,CAAGp4Q,EACxB,IAAI,CAACg4Q,MAAM,CAAG,EACd,KAAI,CAACz6I,gBAAgB,CAAG,IAAI,CAAC06I,mBAAmB,CAACxxI,YAAY,GAC7D,IAAI,CAAC0xI,SAAS,CAAGE,CACrB,CAEOC,mBAAmB3gR,CAAkB,CAAEslI,CAAgB,CAAQ,CAClE,GAAItlI,IAAU,IAAI,CAACsgR,mBAAmB,CAAC/8S,KAAK,EAAI+hK,IAAa,IAAI,CAACs7I,aAAa,EAAE/yS,SAASmH,GAI1F,OAAQgrB,GACJ,KAAK6lI,EAAAA,CAAWA,CAACsB,OAAO,CACpB,IAAI,CAAC05I,cAAc,GACnB,KACJ,MAAKh7I,EAAAA,CAAWA,CAACE,MAAM,CACnB,IAAI,CAAC+6I,aAAa,GAClB,KACJ,MAAKj7I,EAAAA,CAAWA,CAACC,IAAI,CACjB,IAAI,CAACi7I,yBAAyB,GAC9B,IAAI,CAACT,mBAAmB,CAACzuP,IAAI,CAACg0G,EAAAA,CAAWA,CAACC,IAAI,EAC9C,KACJ,SACI,MACR,CACJ,CAEOyB,QAAQhC,CAAoB,CAAQ,CACvC,GAAI,IAAI,CAAC86I,MAAM,CAACh8S,MAAM,CAAG,GAAK,WAAI,CAACu8S,aAAa,EAAa,IAAI,CAACN,mBAAmB,CAAC/8S,KAAK,GAAKsiK,EAAAA,CAAWA,CAACE,MAAM,CAAE,CAChH,IAAI,CAACi7I,WAAW,CAACz7I,GACjB,MACJ,CAEA,IAAI,CAAC86I,MAAM,CAACv3S,IAAI,CAACy8J,EACrB,CAEO8B,QAAQ45I,CAAwB,CAA2B,CAC9D,IAAMC,EAAgB,IAAI,CAACb,MAAM,CAACr3R,SAAS,CAAEu8I,GAAWA,EAAO13J,QAAQ,CAACmH,EAAE,GAAKisS,UAE/E,EAAoB,EACT,KAGJ,IAAI,CAACZ,MAAM,CAACt3S,MAAM,CAACm4S,EAAe,EAAE,CAAC,EAChD,CAEO/7I,OAAc,CACU,OAAvB,IAAI,CAACy7I,aAAa,GAClB,IAAI,CAACA,aAAa,CAAC/yS,QAAQ,CAACuqD,OAAO,GACnC,IAAI,CAACwoP,aAAa,CAAG,MAGzB,IAAI,CAACP,MAAM,CAACh8S,MAAM,CAAG,EACrB,IAAI,CAACm8S,SAAS,CAACzpP,IAAI,GAEnB,IAAI,CAACoqP,4BAA4B,GAE7B,IAAI,CAACb,mBAAmB,CAAC/8S,KAAK,GAAKsiK,EAAAA,CAAWA,CAACE,MAAM,EACrD,IAAI,CAACu6I,mBAAmB,CAACzuP,IAAI,CAACg0G,EAAAA,CAAWA,CAACE,MAAM,CAExD,CAEQ86I,gBAAuB,CACL,IAAI,CAACP,mBAAmB,CAAC/8S,KAAK,GAE9BsiK,EAAAA,CAAWA,CAACC,IAAI,GAIlC,IAAI,CAACu6I,MAAM,CAACh8S,MAAM,CAAG,GACrB,IAAI,CAACm8S,SAAS,CAACzpP,IAAI,GAGvB,IAAI,CAACupP,mBAAmB,CAACzuP,IAAI,CAACg0G,EAAAA,CAAWA,CAACsB,OAAO,EACrD,CAEQ25I,eAAsB,CAC1B,GAAI,IAAI,CAACT,MAAM,CAACh8S,MAAM,CAAG,EAAG,CACxB,IAAI,CAAC28S,WAAW,CAAC,IAAI,CAACX,MAAM,CAACn5J,KAAK,IAElC,MACJ,CAEA,IAAMk6J,EAA2B,IAAI,CAACR,aAAa,EAAE/yS,SAASuzS,aAAa5/S,KAAK,IAAI,CAACo/S,aAAa,CAAC/yS,QAAQ,GAAKijB,EAAAA,CAChH,KAAI,CAAC8vR,aAAa,CAAG,KAErB,IAAI,CAACO,4BAA4B,GAEjC,IAAI,CAACb,mBAAmB,CAACzuP,IAAI,CAACg0G,EAAAA,CAAWA,CAACE,MAAM,EAChDq7I,GACJ,CAEQJ,YAAYz7I,CAAoB,CAAQ,CAC5C,IAAI,CAACq7I,aAAa,CAAGr7I,EACrB,IAAI,CAACi7I,SAAS,CAACv1O,IAAI,GAEnB,IAAI,CAAC01O,kBAAkB,CAAC96I,EAAAA,CAAWA,CAACC,IAAI,CAAEP,EAAO13J,QAAQ,CAACmH,EAAE,EAC5DuwJ,EAAOjB,MAAM,CAACiB,EAAO13J,QAAQ,CACjC,CAEQkzS,2BAAkC,CACE,OAApC,IAAI,CAACR,0BAA0B,EAC/B,KAAI,CAACA,0BAA0B,CAAG,IAAI,CAACE,gBAAgB,CAACluD,QAAQ,EAAC,CAEzE,CAEQ4uD,8BAAqC,CACD,OAApC,IAAI,CAACZ,0BAA0B,GAC/B,IAAI,CAACA,0BAA0B,GAC/B,IAAI,CAACA,0BAA0B,CAAG,KAE1C,CACJ,CC/HA,IAAMG,EAAW,IAAIX,EACrBW,EAASR,UAAU,GAEZ,IAAMh7I,EAAkC,IAAIk7I,EAAeM,EAAUr4Q,EAAAA,CAAeA,C,sBCL1F,EACWw9H,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,OAAAA,CAAAA,UAAAA,EAAAA,MAAAA,CAAAA,SAAAA,EAAAA,IAAAA,CAAAA,M,6DCAL,SAASn3J,EAAqBrB,CAA+C,EAChF,IAAMg0S,EAAe,IAAIC,EAAAA,CAAkBA,CAAS,CAChD3zS,cAAeN,EAAOM,aAAa,CACnCF,aAAcJ,EAAOI,YAAY,CACjCH,KAAMD,EAAOC,IAAI,CACjBu5J,MAAO,CACH,CACI54J,QAAS,CACLqqG,KAAM,EAAE,CACRmR,MAAOp8G,EAAOY,OAClB,EACA5B,UAAWgB,EAAOhB,SAAS,CAC3B2B,MAAOX,EAAOW,KAClB,EAER,GAIA,OAFAqzS,EAAapiP,IAAI,CAACimG,EAAAA,CAAcA,EAEzBm8I,CACX,C,6DCpBO,SAAS9gG,EAA8BlzM,CAA8C,EACxF,IAAMg0S,EAAe,IAAIC,EAAAA,CAAkBA,CAASj0S,GAIpD,OAFAg0S,EAAapiP,IAAI,CAACimG,EAAAA,CAAcA,EAEzBm8I,CACX,C,mCCPO,SAASxiI,EAAkCxyK,CAAyC,EACvF,MAAO,IACImrK,QAAQ1vK,OAAO,CAACuE,EAE/B,C,6FCDO,OAAMk1S,EACOtb,YACA7lQ,CAAAA,KAECohR,CAAAA,qBAAuF,IAAI5yI,EAAAA,CAAiE,CACrK6yI,aAAuB,CAAE,aAErBrhR,CAAmE,CAAEshR,CAAsB,CAAE,CACrG,IAAI,CAACthR,KAAK,CAAGA,EACb,IAAI,CAAC6lQ,YAAY,CAAG,IAAI,CAACub,oBAAoB,CAAC3hR,IAAI,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAU4hR,GACjE,CAEOC,KAAKz6S,CAAS,CAAQ,CACHF,KAAAA,IAAlB,IAAI,CAACo5B,KAAK,CAACl5B,EAAE,EAAkBA,EAAI,IAAMA,IAAM,IAAI,CAACu6S,YAAY,GAChE,IAAI,CAACA,YAAY,CAAGv6S,EACpB,IAAI,CAACs6S,oBAAoB,CAAC3vP,IAAI,CAAC,IAAI,CAACzxB,KAAK,CAACl5B,EAAE,EAEpD,CAEO2qD,MAAa,CACZ,IAAI,CAAC4vP,YAAY,CAAG,IAAI,CAACrhR,KAAK,CAAC/7B,MAAM,CAAG,IACxC,IAAI,CAACo9S,YAAY,CAAG,IAAI,CAACA,YAAY,CAAG,EACxC,IAAI,CAACD,oBAAoB,CAAC3vP,IAAI,CAAC,IAAI,CAACzxB,KAAK,CAAC,IAAI,CAACqhR,YAAY,CAAC,EAEpE,CAEOthG,UAAiB,CAChB,IAAI,CAACshG,YAAY,CAAG,IACpB,IAAI,CAACA,YAAY,CAAG,IAAI,CAACA,YAAY,CAAG,EACxC,IAAI,CAACD,oBAAoB,CAAC3vP,IAAI,CAAC,IAAI,CAACzxB,KAAK,CAAC,IAAI,CAACqhR,YAAY,CAAC,EAEpE,CACJ,CC3BO,MAAM76I,EACF5tJ,KACS68R,CAAAA,YACAlmQ,CAAAA,iBACAriC,CAAAA,IACA0H,CAAAA,GAAaq0H,CAAAA,EAAAA,EAAAA,CAAAA,GACbw9B,CAAAA,KACAl5J,CAAAA,aAECi0S,CAAAA,SACAC,CAAAA,qBAAmD,IAAIjzI,EAAAA,CAA6B,CACpFkzI,WACTC,CAAAA,qBAA2C,IAAK,aAE5C10S,CAA6C,CAAE20S,CAAyB,CAAE,CAClF,IAAI,CAACJ,SAAS,CAAGI,EACjB,IAAI,CAAC10S,IAAI,CAAGD,EAAOC,IACnB,KAAI,CAAC0L,KAAK,CAAG3L,EAAOI,YAEpB,KAAI,CAACE,aAAa,CAAG,KAEQ3G,KAAAA,IAAzBqG,EAAOM,aAAa,EACpB,KAAI,CAACA,aAAa,CAAGN,EAAOM,aAChC,EAEA,IAAI,CAACkoS,YAAY,CAAG,IAAI,CAACgM,oBAAoB,CAAC/yI,YAAY,GAE1D,IAAI,CAACgzI,WAAW,CAAG,IAAIxpR,EAAAA,CACvB,KAAI,CAACqX,iBAAiB,CAAG,IAAI,CAACmyQ,WAAW,CAAChzI,YAAY,GAEtD,IAAI,CAACjI,KAAK,CAAG,IAAI06I,EAAYl0S,EAAOw5J,KAAK,CAAE,IAAI,CAACi7I,WAAW,CAC/D,CAEO9qQ,YAAYh+B,CAAsB,CAAQ,CAC7C,IAAMiwR,EAAWx+R,OAAOkhB,MAAM,CAAC,CAAC,EAAG,IAAI,CAAC3S,KAAK,CAAEA,EAE/C,KAAI,CAACA,KAAK,CAAGiwR,EACb,IAAI,CAAC4Y,oBAAoB,CAAChwP,IAAI,CAACo3O,EACnC,CAEO7lS,MAAM2gN,CAA4B,CAAQ,CAC7C,IAAI,CAACg+F,oBAAoB,CAAGh+F,GAAkB,KAE9C,IAAI,CAAC69F,SAAS,CAACjB,kBAAkB,CAAC96I,EAAAA,CAAWA,CAACsB,OAAO,CAAE,IAAI,CAACnyJ,EAAE,CAClE,CAEOojD,SAAgB,CACnB,IAAI,CAAC0pP,WAAW,CAACpiR,IAAI,GACrB,IAAI,CAACmiR,oBAAoB,CAACj2O,QAAQ,GAIlB,OAFA,IAAI,CAACg2O,SAAS,CAACv6I,OAAO,CAAC,IAAI,CAACryJ,EAAE,GAM9C,IAAI,CAAC4sS,SAAS,CAACjB,kBAAkB,CAAC96I,EAAAA,CAAWA,CAACE,MAAM,CAAE,IAAI,CAAC/wJ,EAAE,CACjE,CAEOosS,cAAqB,CACU,OAA9B,IAAI,CAACW,oBAAoB,EAAav9S,SAASg1G,IAAI,CAAChzG,QAAQ,CAAC,IAAI,CAACu7S,oBAAoB,GACtF,IAAI,CAACA,oBAAoB,CAACt+S,KAAK,EAEvC,CACJ,C,8FCvEO,IAAMw+S,EAAuC18I,IAChD28I,EAAAA,CAAiBA,CAACrwP,IAAI,CAAC0zG,EAC3B,E,cCKO,OAAM+7I,EACOzL,YAECgM,CAAAA,oBACTj0S,CAAAA,MACSu0S,CAAAA,WACTC,CAAAA,UAAqD,IAC5CN,CAAAA,WAAwB,aAE7Bz0S,CAA8C,CAAE,CACxD,IAAI,CAACO,MAAM,CAAGP,EAAOI,YACrB,KAAI,CAAC00S,WAAW,CAAG90S,EACnB,IAAI,CAACy0S,WAAW,CAAG,IAAIxpR,EAAAA,CACvB,KAAI,CAACupR,oBAAoB,CAAG,IAAIjzI,EAAAA,CAChC,KAAI,CAACinI,YAAY,CAAG,IAAI,CAACgM,oBAAoB,CAAC/yI,YAAY,EAC9D,CAEO7vG,KAAK+iP,CAAyB,CAAQ,CACzClwP,CAAAA,EAAAA,EAAAA,CAAAA,EAAK,IAAI,CAACuwP,mBAAmB,IACxBxiR,IAAI,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAU,IAAI,CAACgiR,WAAW,GAC/B/hR,SAAS,CAAEuiR,IACR,IAAMz0S,EAA6C,IAAI+4J,EAAAA,CAAcA,CAAC07I,EAAcN,EACpF,KAAI,CAACI,SAAS,CAAGv0S,EAEjBm0S,EAASz6I,OAAO,CAAC,CACb15J,SAAUA,EACVy2J,OAAQ29I,CACZ,GAEAp0S,EAASgoS,YAAY,CAACh2Q,IAAI,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAU,IAAI,CAACgiR,WAAW,GAAG/hR,SAAS,CAAC,IAAI,CAAC8hR,oBAAoB,CAC/F,EACR,CAEO7qQ,YAAYh+B,CAAsB,CAAQ,CAC7C,GAAI,WAAI,CAACopS,SAAS,CAAW,CACzB,IAAI,CAACx0S,MAAM,CAAGnD,OAAOkhB,MAAM,CAAC,CAAC,EAAG,IAAI,CAAC/d,MAAM,CAAEoL,GAC7C,IAAI,CAAC6oS,oBAAoB,CAAChwP,IAAI,CAAC,IAAI,CAACjkD,MAAM,EAC1C,MACJ,CAEA,IAAI,CAACw0S,SAAS,CAACprQ,WAAW,CAACh+B,EAC/B,CAEOo/C,SAAgB,CACnB,IAAI,CAAC0pP,WAAW,CAACpiR,IAAI,GACrB,IAAI,CAACmiR,oBAAoB,CAACj2O,QAAQ,GAEX,OAAnB,IAAI,CAACw2O,SAAS,EACd,IAAI,CAACA,SAAS,CAAChqP,OAAO,EAE9B,CAEA,MAAciqP,qBAAsE,CAChF,IAAMx7I,EAAsE,MAAM2Q,QAAQh6J,GAAG,CACzF,IAAI,CAAC2kS,WAAW,CAACt7I,KAAK,CAAC98J,GAAG,CAAC,MAAOoS,IAC9B,IAAM9P,EAAY,MAAM8P,EAAK9P,SAAS,GAEtC,MAAO,CACH,GAAG8P,CAAI,CACP9P,UAAWA,CACf,CACJ,IAGJ,MAAO,CACH,GAAG,IAAI,CAAC81S,WAAW,CACnB10S,aAAc,IAAI,CAACG,MAAM,CACzBi5J,MAAOA,CACX,CACJ,CACJ,C,wBCjFYt5J,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,KAAAA,CAAAA,QAAAA,EAAAA,MAAAA,CAAAA,SAAAA,EAAAA,KAAAA,CAAAA,O,+HCYL,IAAMg1S,EAAgC,KACzC,GAAM,CAACC,EAAcC,EAAgB,CAAGpV,CAAAA,EAAAA,EAAAA,QAAAA,EAA+C,MAmBvF,MAjBAgB,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,KACP,IAAMn4K,EAAegsL,EAAAA,CAAiBA,CACjCriR,IAAI,CACDmyB,CAAAA,EAAAA,EAAAA,CAAAA,EAAKuzG,IACDk9I,EAAgBl9I,EACpB,GACAnzG,CAAAA,EAAAA,EAAAA,CAAAA,EAAWmzG,GAAWA,EAAO51H,iBAAiB,GAEjD5P,SAAS,CAAC,KACP2iR,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACND,EAAgB,KACpB,EACJ,GAEJ,MAAO,IAAMvsL,EAAaR,WAAW,EACzC,GAEO,UAACitL,EAAAA,QAAc,WAAEH,OAAAA,GAAyB,UAACI,EAAAA,CAAMA,CAANA,CAA6B/0S,SAAU20S,CAAAA,EAA3BA,EAAaxtS,EAAE,GACjF,C,mCC9BO,IAAMktS,EAAoB,GAAItzI,C,UAAAA,CAAyC,E,gSCAvE,IAAMi0I,EAA4B,CACrCC,EACAC,EACAC,EACAC,EACAC,KAEA,GAAIJ,OAAAA,EAAUjhM,OAAO,EAAakhM,OAAAA,EAAoBlhM,OAAO,EAAamhM,OAAAA,EAAcnhM,OAAO,EAAaohM,OAAAA,EAAgBphM,OAAO,CAC/H,OAGJ,IAAMshM,EAA0BJ,EAAoBlhM,OAAO,CAACr7G,QAAQ,CAAChC,SAASijH,aAAa,GAAK,CAACy7L,EAAe79R,QAAQ,CAAC7gB,SAASijH,aAAa,EAM/I,GAJKu7L,EAAcnhM,OAAO,CAACr7G,QAAQ,CAAChC,SAASijH,aAAa,GACtDu7L,CAAAA,EAAcnhM,OAAO,CAACn3E,SAAS,CAAG,GAGlC,CAACy4Q,EAAyB,CAG1B,IAAK,IAAMl9S,KAFiB,IAAIm9S,EAAAA,CAAuBA,CAACL,EAAoBlhM,OAAO,EAG/E,GAAI,CAACqhM,EAAe79R,QAAQ,CAACpf,GAAU,CACnCA,EAAQxC,KAAK,GACb,MACJ,CAGJ,IAAM4/S,EAAeJ,EAAgBphM,OAAO,CAAC5rF,aAAa,CAAoB,wBACzD,QAAjBotR,GACAA,EAAa5/S,KAAK,EAE1B,CACJ,ECnCa6/S,EAAsB,IACxB75S,OAAOshS,UAAU,CAAC,2HAA2Hv6K,OACxJ,CCEa+yL,EAA2B,CACpCh+I,EACAt8B,EACA+5K,EACAC,EACAO,EACAC,KAEA,GAAIl+I,OAAAA,EAAO1jD,OAAO,CACd,OAGJ,IAAM6hM,EAAwBl/S,SAASijH,aAAa,CAC9Ck8L,EAAaD,OAAAA,GAAkCn+I,EAAO1jD,OAAO,CAACr7G,QAAQ,CAACk9S,GAI7E,GAFAn+I,EAAO1jD,OAAO,CAAC+iD,SAAS,GAEpB++I,EAAY,CACXD,EAAsCjgT,KAAK,GAC5C,MACJ,CAEA,IAAMmgT,EAAYp/S,SAASyiC,cAAc,CAACw8Q,GAE1C,GAAIG,OAAAA,GAIJ,GAAIN,IAAuB,CACvBM,EAAUngT,KAAK,GACf,MACJ,CAEAo/S,EAA0Bt9I,EAAQt8B,EAAW+5K,EAAeC,EAAiB,CAACO,EAAY3hM,OAAO,CAAE+hM,EAAU,EACjH,ECtCaC,EAAsB56K,GAAoCA,EAAU16E,qBAAqB,GAAGypD,MAAM,CAAG,IAAMvuG,OAAOsuG,WAAY,CCA9H+rM,EAA2B,CACpCC,UAAW,CAAC,CAAE7xB,QAAS,CAAE,EAAG,CAAEA,QAAS,CAAE,EAAE,CAC3C8xB,WAAY,CAAC,CAAE9xB,QAAS,CAAE,EAAG,CAAEA,QAAS,CAAE,EAAE,CAC5C+xB,WAAY,CACR,CAAE/xB,QAAS,EAAGrsB,UAAW,oBAAqB,EAC9C,CAAEqsB,QAAS,EAAGrsB,UAAW,mBAAoB,EAC7C,CAAEqsB,QAAS,EAAGrsB,UAAW,mBAAoB,EAC7C,CAAEqsB,QAAS,EAAGrsB,UAAW,eAAgB,EAC5C,CACDq+C,SAAU,CACN,CAAEhyB,QAAS,EAAGrsB,UAAW,iBAAkB,EAC3C,CAAEqsB,QAAS,EAAGrsB,UAAW,iBAAkB,EAC3C,CAAEqsB,QAAS,EAAGrsB,UAAW,iBAAkB,EAC3C,CAAEqsB,QAAS,EAAGrsB,UAAW,eAAgB,EAC5C,CACDs+C,YAAa,CACT,CAAEjyB,QAAS,EAAGrsB,UAAW,eAAgB,EACzC,CAAEqsB,QAAS,EAAGrsB,UAAW,mBAAoB,EAChD,CACDu+C,UAAW,CACP,CAAElyB,QAAS,EAAGrsB,UAAW,eAAgB,EACzC,CAAEqsB,QAAS,EAAGrsB,UAAW,oBAAqB,EACjD,CACDw+C,WAAY,CAACC,EAAmBC,IACrB,CAAC,CAAE/1P,OAAQ,CAAC,EAAE81P,EAAU,EAAE,CAAE,EAAG,CAAE91P,OAAQ,CAAC,EAAE+1P,EAAU,EAAE,CAAE,EAAG,CAAE/1P,OAAQ,MAAO,EACzF,ECtBSg2P,EAAkB,CAACj/I,EAA2Bk/I,IAChD7E,CAAAA,EAAAA,EAAAA,CAAAA,EAAer6I,EAAQ,CAC1Bx4C,SAAU,IACVg4D,OAAQ,gCACR86H,UAAW4E,EAAoBX,EAAyBI,QAAQ,CAAGJ,EAAyBG,UAChG,GCLSS,EAAyB,MAAOvoS,EAAmBmoS,KAC5DnoS,EAAKyyC,KAAK,CAACJ,MAAM,CAAG,GACpB,IAAMA,EAASryC,EAAKoyC,qBAAqB,GAAGC,MAC5CryC,CAAAA,EAAKyyC,KAAK,CAACJ,MAAM,CAAG,CAAC,EAAE81P,EAAU,EAAE,CAEnC,OAAM1E,CAAAA,EAAAA,EAAAA,CAAAA,EAAezjS,EAAM,CACvB4wG,SAAU,IACVg4D,OAAQ,WACR86H,UAAWiE,EAAyBO,UAAU,CAACC,EAAW91P,EAC9D,GAEA,MAAMoxP,CAAAA,EAAAA,EAAAA,CAAAA,EAAezjS,EAAM,CACvB4wG,SAAU,IACVg4D,OAAQ,UACR86H,UAAWiE,EAAyBC,SACxC,EACJ,ECdaY,EAAoB,MAAOC,EAA0CC,KAC9E,GAAID,OAAAA,EAAiB/iM,OAAO,CACxB,MAGJ+iM,CAAAA,EAAiB/iM,OAAO,CAACjzD,KAAK,CAACJ,MAAM,CAAG,GACxC,IAAM81P,EAAYM,EAAiB/iM,OAAO,CAACtzD,qBAAqB,GAAGC,MACnEo2P,CAAAA,EAAiB/iM,OAAO,CAACjzD,KAAK,CAACJ,MAAM,CAAG,CAAC,EAAE81P,EAAU,EAAE,CAEvD,OAAM1E,CAAAA,EAAAA,EAAAA,CAAAA,EAAegF,EAAiB/iM,OAAO,CAAE,CAC3CkL,SAAU,IACVg4D,OAAQ,UACR86H,UAAWiE,EAAyBE,UACxC,GAEAa,IAEA,MAAMH,EAAuBE,EAAiB/iM,OAAO,CAAEyiM,EAC3D,E,SCrBA,K,OAAA,GAAU,65ICyBV,IAAMQ,EAAoB,MACtBC,EACAC,EACAC,KAEA,MAAMN,EAAkBM,EAAa,KACjCvC,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACNsC,EAAQD,EACZ,EACJ,EACJ,EAEMG,EAAyB,CAC3Br3S,EACAi1S,EACAqC,EACAzD,KAEAx8I,EAAAA,CAAcA,CAACU,gBAAgB,CAC1B/lI,IAAI,CACDC,CAAAA,EAAAA,EAAAA,CAAAA,EAAU4hR,GACVp7S,CAAAA,EAAAA,EAAAA,CAAAA,EAAQ05B,GAAUA,IAAU6lI,EAAAA,CAAWA,CAACsB,OAAO,GAElDpnI,SAAS,CAAC,UACmB,OAAtB+iR,EAAUjhM,OAAO,GACjB,MAAM+9L,CAAAA,EAAAA,EAAAA,CAAAA,EAAekD,EAAUjhM,OAAO,CAAE,CACpCkL,SAAU,IACVg4D,OAAQ,WACR86H,UAAWsF,EAA0BrB,EAAyBK,WAAW,CAAGL,EAAyBM,SACzG,GACAv2S,EAASuqD,OAAO,GAExB,EACR,EAQO,SAASwqP,EAAAA,CAAAA,EAAAA,GAAAA,CAAY/0S,SAAU42J,CAAc,CAAmB,CAA7C,EAChB,CAACtoJ,EAAM6oS,EAAQ,CAAG3X,CAAAA,EAAAA,EAAAA,QAAAA,EAAS5oI,EAAeoC,KAAK,CAACzmI,KAAK,CAAC,EAAE,EACxD,CAACpnB,EAAOo0R,EAAS,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,EAAuB5oI,EAAezrJ,KAAK,EAE/D8pS,EAAYvS,CAAAA,EAAAA,EAAAA,MAAAA,EAA0B,MACtC6U,EAAU7U,CAAAA,EAAAA,EAAAA,MAAAA,EAAuB,MACjC8U,EAAmB9U,CAAAA,EAAAA,EAAAA,MAAAA,EAAuB,MAC1C+U,EAAqB/U,CAAAA,EAAAA,EAAAA,MAAAA,EAAuB,MAC5CgV,EAAiBhV,CAAAA,EAAAA,EAAAA,MAAAA,EAA0B,MAC3CiV,EAAmBlJ,CAAAA,EAAAA,EAAAA,CAAAA,EAAYhkR,EAAAA,CAAUA,EAEzCgqI,EAAe6qI,CAAAA,EAAAA,EAAAA,KAAAA,IACfsY,EAAyBtY,CAAAA,EAAAA,EAAAA,KAAAA,IACzBuY,EAAwBvY,CAAAA,EAAAA,EAAAA,KAAAA,IAExBwY,EAAqCl2N,OAAOmmL,YAAY,CAAC,MACzDgwC,EAAoBzpS,IAASsoJ,EAAeoC,KAAK,CAACzmI,KAAK,CAAC,EAAE,CAAG,CAAC,EAAEslR,EAAsB,CAAC,EAAED,EAAuB,CAAC,CAAGC,EAE1HrX,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,KACP,IAAI5kK,EAAa34G,EAAAA,CAAIA,CACrB,GAAIgyR,OAAAA,EAAUjhM,OAAO,EAAawjM,OAAAA,EAAiBxjM,OAAO,CACtD,OAGJ,IAAMsjM,EAA0BtB,EAAmBwB,EAAiBxjM,OAAO,EAc3E,MAZA/vD,CAAAA,EAAAA,EAAAA,CAAAA,EAAK0yP,EAAgB1B,EAAUjhM,OAAO,CAAEsjM,IACnCtlR,IAAI,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAU0lR,IACfzlR,SAAS,CAAC,KACP0pG,EAAaF,EAAAA,CAAYA,CAACC,IAAI,CAACs5K,EAAUjhM,OAAO,EAChD0hM,EAAyBT,EAAWuC,EAAkBD,EAASE,EAAoBC,EAAgBjjJ,EACvG,GAEJmC,EAAeoxI,YAAY,CAACh2Q,IAAI,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAU0lR,IAAmBzlR,SAAS,CAACqtQ,GACxE3oI,EAAeoC,KAAK,CAACo/H,YAAY,CAACpmQ,IAAI,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,EAAU0lR,IAAmBzlR,SAAS,CAAEglR,GAAYD,EAAkBC,EAASC,EAASI,IAE/HF,EAAuBzgJ,EAAgBq+I,EAAWqC,EAAyBK,GAEpE,KACH/7K,IACA+7K,EAAiB9lR,IAAI,EACzB,CACJ,GAEA4tQ,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,KACbuV,EAA0BC,EAAWuC,EAAkBD,EAASE,EAAoB,CAACC,EAAe1jM,OAAO,CAAC,CAChH,EAAG,CAAC1lG,EAAK,EAET,IAAM0pS,EAAsB,KACa,OAAjCphJ,EAAe92J,aAAa,EAC5B82J,EAAe92J,aAAa,CAACqL,EAAOyrJ,EAE5C,EAEA,MACI,WAACc,SAAAA,CACGz0E,KAAK,SACL25B,IAAKq4L,EACLvpM,UAAU,aACVmiM,kBAAiBp5I,EACjBk7I,mBAAkBoI,EAClBrhT,UAAY6nC,IACJA,EAAEnoC,GAAG,GAAKqkC,EAAAA,CAAIA,CAAC0wQ,MAAM,GACrB5sQ,EAAEroC,eAAe,GACjBqoC,EAAEvnC,cAAc,GAChBghT,IAER,YACA,UAACrrI,MAAAA,CAAIjhE,UAAU,0CACX,WAACihE,MAAAA,CACG/vD,IAAK46L,EACL9rM,UAAW,CAAC,uDAAuD,EAAEkrD,EAAen3J,IAAI,CAAC,CAAC,CAC1FmtK,YAAU,kCACV,WAACD,MAAAA,CACGjhE,UAAW,CAAC,6BAA6B,EACrCkrD,OAAAA,EAAe92J,aAAa,CAAY,oDAAsD,GACjG,CAAC,WACF,UAACm4S,EAAAA,CAAUA,CAAVA,CACG33S,UAAW43S,EAAAA,CAAUA,CAACv6S,SAAS,CAAC,gBAChCw6S,OAAQvhJ,OAAAA,EAAe92J,aAAa,CACpC4rG,UAAW0sM,EAAAA,CAAeA,CAACC,QAAQ,CACnC//J,OAAQj1C,EAAAA,CAASA,CACjB3iG,SAAS,sBACT2zG,QAAS2jM,EACTp7L,IAAK86L,CAAAA,GAGT,UAAC/qI,MAAAA,CAAIm2H,YAAU,SAASp3L,UAAU,+BAC9B,UAACs4L,KAAAA,CAAGh7Q,SAAU,GAAI7hB,GAAIstJ,EAAAA,SACjBnmJ,EAAKnO,KAAK,QAIvB,UAACwsK,MAAAA,CAAI/vD,IAAK26L,EAAS7rM,UAAU,yCACzB,UAACihE,MAAAA,CAAIjhE,UAAU,qCACX,UAACigE,EAAAA,CAAeA,CAACy4H,QAAQ,EAAC1uS,MAAO,CAAE0C,QAAS68S,CAAU,WAClD,UAAC3mS,EAAK9P,SAAS,EAACwB,SAAU42J,EAAgB9B,cAAe8iJ,CAAAA,EAAAA,EAAAA,EAAAA,GAIrE,UAACjrI,MAAAA,CAAIC,YAAU,0BAA0BlhE,UAAU,wCAC/C,UAACihE,MAAAA,CAAIjhE,UAAU,8CACX,WAACihE,MAAAA,CAAIjhE,UAAU,qCAAqCkR,IAAK66L,EAAAA,SAAAA,CACpDnpS,EAAKlO,OAAO,CAACqqG,IAAI,CAACj0G,MAAM,CAAG,GACxB,UAACm2K,MAAAA,CAAIjhE,UAAU,mEACVp9F,EAAKlO,OAAO,CAACqqG,IAAI,CAACvuG,GAAG,CAAElG,GAEhB,UAAC+/K,EAAAA,CAAMA,CAANA,CAEGx3H,UAAWvoD,EAAOuoD,SAAS,CAC3Bj+C,UAAWtK,EAAOsK,SAAS,CAC3Bo0G,gBAAiB1+G,EAAO0+G,eAAe,CACvChJ,UAAW11G,EAAOuK,WAAW,CAC7BG,SAAU1K,EAAO0K,QAAQ,CACzB2zG,QAAS,IAAMr+G,EAAOA,MAAM,CAACmV,EAAOyrJ,GACpCs5I,aAAcl6S,EAAO2K,QAAQ,CAACwK,GAAAA,SAC7BnV,EAAOqK,KAAK,EARR,CAAC,EAAErK,EAAOqK,KAAK,CAAC,EAAEiO,EAAKnO,KAAK,CAAC,CAAC,EAW7C,GAGV,UAACwsK,MAAAA,CAAIjhE,UAAU,oEACVp9F,EAAKlO,OAAO,CAACw7G,KAAK,CAAC1/G,GAAG,CAAElG,GAEjB,UAAC+/K,EAAAA,CAAMA,CAANA,CAEGx3H,UAAWvoD,EAAOuoD,SAAS,CAC3Bj+C,UAAWtK,EAAOsK,SAAS,CAC3Bo0G,gBAAiB1+G,EAAO0+G,eAAe,CACvChJ,UAAW11G,EAAOuK,WAAW,CAC7BG,SAAU1K,EAAO0K,QAAQ,CACzB2zG,QAAS,IAAMr+G,EAAOA,MAAM,CAACmV,EAAOyrJ,GACpCs5I,aAAcl6S,EAAO2K,QAAQ,CAACwK,GAAAA,SAC7BnV,EAAOqK,KAAK,EARR,CAAC,EAAErK,EAAOqK,KAAK,CAAC,EAAEiO,EAAKnO,KAAK,CAAC,CAAC,EAW7C,GAAF,YAQxB,UAACwsK,MAAAA,CAAIxlK,GAAI0wS,EAAuBnsM,UAAU,oDAAoD1iF,SAAU,GAAC,SACpG8uR,CAAAA,GAAAA,EAIjB,C,6HCxNA,K,OAAA,GAAU,wXCQH,IAAM5hI,EAAyErtI,IAClF,IAAMvoC,EAAY43S,EAAAA,CAAUA,CAACv6S,SAAS,CAAC,yBAEvC,MACI,UAACovN,EAAAA,CAAMA,CAANA,CAAOz2M,KAAMuyB,EAAMvyB,IAAI,CAAEhW,UAAWuoC,EAAMvoC,SAAS,UAChD,WAACqsK,MAAAA,CAAIjhE,UAAU,4CACX,UAACynL,EAAAA,CAASA,CAATA,CAAUznL,UAAU,kCAAkC4iK,WAAYzlO,EAAMrP,OAAO,GAChF,UAACy+Q,EAAAA,CAAUA,CAAVA,CAAW33S,UAAWA,EAAWorG,UAAW0sM,EAAAA,CAAeA,CAACC,QAAQ,CAAE//J,OAAQj1C,EAAAA,CAASA,CAAEgR,QAASxrE,EAAM0qF,SAAS,CAAE7yH,SAAS,0BAA0B,GAA1B,IAI7I,C,0KCdO,SAAS43S,EACZ1lR,CAAgB,CAChBipM,CAAgC,CAChCtpM,CAAoC,EAMpC,OAFA/L,CAF4B,CAACq1M,EAAap3D,eAAe,CAAC,CAE3ChlC,QAAQ,GAEhB,CACHglC,gBAAiB,EACjBz4I,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACC,MACzB,CACJ,CCLO,SAAS4zI,EAAyB/4S,CASxC,EACG,IAAMguS,EAAsE,CACxEx9Q,KAAM,CACFqkF,QAASu3L,EAAAA,CACb,EACA91S,OAAQ80S,CAAAA,EAAAA,EAAAA,CAAAA,EAA4BprS,EAAOqrS,eAAe,CAAEyN,GAC5Dv2Q,QAASmoQ,EAAAA,CACb,EAEM6E,EAAe,IAAIhI,EAAAA,CAAYA,CACjCvnS,EAAOkoS,UAAU,CACjBloS,EAAOmoS,WAAW,CAClBnoS,EAAOooS,WAAW,CAClB,CACIG,iBAAkB,IAAIkB,EAAAA,CAAgBA,CAACuE,EAAoBhuS,EAAOkoS,UAAU,CAAEloS,EAAOmoS,WAAW,CAAEnoS,EAAOI,YAAY,EACrHioS,yBAA0B,CACtBiB,kBAAmB0P,EAAAA,CAA0BA,CAC7C1oJ,UAAWtwJ,EAAOswJ,SACtB,EACAg4I,gBAAiB,KACkB,OAA3BtoS,EAAOi5S,OAAO,CAACzkM,OAAO,EACtBx0G,EAAOi5S,OAAO,CAACzkM,OAAO,CAACp+G,KAAK,EAEpC,EACAw8N,cAAe5yN,EAAO4yN,aAC1B,GASJ,OANA28E,EAAa9G,WAAW,CAACvjI,EAAAA,CAAcA,CAAC2jI,qBAAqB,CAAE,KACzB,OAA9B7oS,EAAOkoS,UAAU,CAAC1zL,OAAO,EACzBx0G,EAAOkoS,UAAU,CAAC1zL,OAAO,CAACp+G,KAAK,EAEvC,GAEOm5S,CACX,C,0BCzDO,IAAM2J,EAA2B1I,CAAAA,EAAAA,EAAAA,aAAAA,EAAqD72S,KAAAA,G,wBCD7F,QAAU,wUCDV,QAAU,2ECaV,IAAM0xS,EAAkB,CAAC76Q,EAA8By8Q,IAAiCz8Q,EAAK6hG,IAAI,CAAC7kH,WAAW,GAAG83L,UAAU,CAAC2nG,GAErH7sS,EAA8B,CAChC6kK,gBAAiB,EACjBz4I,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACC,MACzB,EAEa0/H,EAAgDx7P,IACzD,IAAM6+P,EAAahF,CAAAA,EAAAA,EAAAA,MAAAA,EAA0B,MACvCC,EAAaD,CAAAA,EAAAA,EAAAA,MAAAA,EAAuB,MACpC+V,EAAU/V,CAAAA,EAAAA,EAAAA,MAAAA,EAAyB,MACnC,CAACv3R,EAAOo0R,EAAS,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,EAAwB5/R,GAC5C+4S,EAAkBrK,CAAAA,EAAAA,EAAAA,UAAAA,EAAW3iI,EAAAA,CAAeA,EAC5C9pB,EAAYy9I,CAAAA,EAAAA,EAAAA,KAAAA,IAEZyP,EAAeC,CAAAA,EAAAA,EAAAA,CAAAA,EAAcuJ,EAA0B,CACzD3Q,YAAa+Q,EAAgBvgT,OAAO,CACpCuvS,YAAahF,EACb8V,QAASA,EACT74S,aAAcuL,EACd0/R,gBAAiBA,EACjBz4E,cAAemtE,EACfzvI,UAAW,eACX43I,WAAYA,CAChB,GAKA,MAHAjI,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,IAAMsP,EAAa5lQ,WAAW,CAACh+B,GAAQ,CAACA,EAAM,EAC/DytS,CAAAA,EAAAA,EAAAA,CAAAA,EAAa,IAAM7J,EAAaxkP,OAAO,IAGnC,UAACmuP,EAAyBtU,QAAQ,EAC9B1uS,MAAO,CACHyV,MAAOA,EACPuxG,OAAQqyL,EAAaryL,MAAM,CAC3BgrL,WAAYA,EACZ/E,WAAYA,EACZ9gJ,UAAWA,EACX42J,QAASA,EACTlmR,MAAOsW,EAAMtW,KACjB,WACA,UAACo6I,MAAAA,CAAIjhE,UAAU,8CAAsC7iE,EAAM6tI,QAAQ,IAG/E,CAEA2tH,CAAAA,EAAkBC,OAAO,CCxDsFz7P,IAC3G,IAAMgwQ,EAAuBvK,CAAAA,EAAAA,EAAAA,UAAAA,EAAWoK,GAExC,GAAIG,KAAyB1/S,IAAzB0/S,EACA,MAAM,MAAU,wFAGpB,GAAM,CAAE1tS,MAAAA,CAAK,CAAEuxG,OAAAA,CAAM,CAAEmlC,UAAAA,CAAS,CAAE,CAAGg3J,EAE/BzjM,EAAavsE,CAAqB,IAArBA,EAAMusE,UAAU,CAC7BppF,EAAS7gB,EAAM6gB,MAAM,EAAI,CAACopF,EAC1B1J,EAAY,CAAC,EAAE7iE,KAAoB1vC,IAApB0vC,EAAM6iE,SAAS,CAAiB7iE,EAAM6iE,SAAS,CAAG,GAAG,CAAC,EAAE1/E,GAAU6c,KAAsB1vC,IAAtB0vC,EAAMnqB,WAAW,CAAiBmqB,EAAMnqB,WAAW,CAAG,GAAG,CAAC,CAEjJ,MACI,UAACi7F,SAAAA,CACGiD,IAAKi8L,EAAqBnR,UAAU,CACpC8H,gBAAe3tJ,EACfytJ,gBAAenkS,EAAM6gB,MAAM,CAC3BqjR,gBAAe,GACf5Q,aAAY51P,EAAMvoC,SAAS,CAC3BwwS,gBAAe17L,EACfz0G,SAAUy0G,EACV1J,UAAWA,EACXkhE,YAAW/jI,EAAMnoC,QAAQ,CACzByG,GAAI0hC,EAAM1hC,EAAE,CACZmP,KAAK,SACL+9F,QAASqI,EAAO36E,OAAO,CAACsyE,OAAO,CAC/B39G,UAAY6nC,GAAMm+E,EAAO36E,OAAO,CAACrrC,SAAS,CAAC6nC,EAAGs6Q,EAAqBtmR,KAAK,EACxEq3Q,YAAaltL,EAAO36E,OAAO,CAAC6nQ,WAAW,UACtC/gQ,EAAM6tI,QAAQ,EAG3B,EDyBA2tH,EAAkBG,IAAI,CErDlB37P,IAEA,IAAMgwQ,EAAuBvK,CAAAA,EAAAA,EAAAA,UAAAA,EAAWoK,GAExC,GAAIG,KAAyB1/S,IAAzB0/S,EACA,MAAM,MAAU,wFAGpB,GAAM,CAAE1tS,MAAAA,CAAK,CAAEuxG,OAAAA,CAAM,CAAEmlC,UAAAA,CAAS,CAAE,CAAGg3J,EAErC,MACI,UAACjL,KAAAA,CACG7sP,MAAO6uP,CAAAA,EAAAA,EAAAA,CAAAA,EAAezkS,EAAM6gB,MAAM,EAClC0jR,wBAAuB,CAAC,EAAE7tJ,EAAU,CAAC,EAAE12I,EAAMs5J,eAAe,CAAC,CAAC,CAC9Dg6H,aAAY51P,EAAMvoC,SAAS,CAC3ButS,kBAAiBhlQ,EAAMikI,cAAc,CACrCphE,UAAW,CAAC,8BAA8B,EAAE7iE,KAAoB1vC,IAApB0vC,EAAM6iE,SAAS,CAAiB7iE,EAAM6iE,SAAS,CAAG,GAAG,CAAC,CAClGkhE,YAAW/jI,EAAMnoC,QAAQ,CACzByG,GAAI06I,EACJjlC,IAAKi8L,EAAqBJ,OAAO,CACjCx1N,KAAK,OACLj6D,SAAU,GACV+jR,OAAQrwL,EAAO5mH,MAAM,CAACyzS,WAAW,CACjC7yS,UAAY6nC,GAAMm+E,EAAO5mH,MAAM,CAACY,SAAS,CAAC6nC,EAAGs6Q,EAAqBtmR,KAAK,WACtEsmR,EAAqBtmR,KAAK,CAACr2B,GAAG,CAAC,CAAC8zB,EAAM32B,IAAMwvC,EAAM47P,QAAQ,CAACoU,EAAqB1tS,KAAK,CAAE6kB,EAAW32B,EAAGwoJ,EAAWnlC,EAAO36E,OAAO,CAACsyE,OAAO,EAAE,EAGrJ,EF2BAgwL,EAAkBE,KAAK,CGzDsD17P,IACzE,IAAMgwQ,EAAuBvK,CAAAA,EAAAA,EAAAA,UAAAA,EAAWoK,GAExC,GAAIG,KAAyB1/S,IAAzB0/S,EACA,MAAM,MAAU,sFAGpB,MACI,UAAClsI,MAAAA,CAAI/vD,IAAKi8L,EAAqBlW,UAAU,CAAE5hP,MAAO6uP,CAAAA,EAAAA,EAAAA,CAAAA,EAAeiJ,EAAqB1tS,KAAK,CAAC6gB,MAAM,EAAG0/E,UAAU,4CAC1G7iE,EAAM6tI,QAAQ,EAG3B,C,2DCfA,K,OAAA,GAAU,i6BCCH,IAAMguH,EAA8C,CAACv5R,EAAO6kB,EAAMwrJ,EAAW+0H,EAAQl8L,KACxF,IAAMj+G,EAAM,CAAC,EAAEm6S,EAAO,CAAC,EAAE/0H,EAAU,CAAC,CAEpC,MACI,UAACq0H,KAAAA,CACGnkM,UAAU,qBAEVzoB,KAAK,WACL97E,GAAI/Q,EACJw2K,YAAW58I,KAAkB72B,IAAlB62B,EAAKtvB,QAAQ,CAAiBsvB,EAAKtvB,QAAQ,CAAG,0BACzD+9R,aAAYzuQ,EAAK1vB,SAAS,CAC1B8vS,gBAAejlS,EAAMs5J,eAAe,GAAK+W,EACzCnnE,QAAU91E,IACN81E,EAAQ91E,EAAGi9I,GACXxrJ,EAAKyvG,QAAQ,EACjB,WACA,UAAC0tF,OAAAA,CAAKzhH,UAAU,qCAA6B17E,EAAK6hG,IAAI,IAVjDz7H,EAajB,C,6FClBO,SAASyyS,EACZiQ,CAA6B,CAC7BC,CAA4B,CAC5B3sI,CAA4B,CAC5B08H,CAAqC,CACrCh5I,CAAoB,EA+BpB,MAAOj6I,CAAAA,EAAAA,EAAAA,CAAAA,EA7BkB,KACrB,IAAM4qR,EAAM,IAAI1/H,EAAAA,CAAOA,CAEjBi4I,EAAmBlQ,EAAkB18H,EAAiBtc,GAEtDzf,EAAU4oK,CAAAA,EAAAA,EAAAA,EAAAA,EACZH,EACAC,EACA,KACIG,CAAAA,EAAAA,EAAAA,EAAAA,EAAgBJ,EAAkBC,EAAiBC,EAAiBG,cAAc,EAC7ExjT,IAAI,CAAE0E,IACH2+S,EAAiBI,MAAM,CAACL,EAAiBD,EAAkBz+S,GAC3DomS,EAAIz8O,IAAI,EACZ,GACCxpD,KAAK,CAAE+jC,IACJkiQ,EAAI9sQ,KAAK,CAAC4K,EACd,EACR,EACA,CAAE86Q,YAAa,EAAM,GAGzB,OAAO5Y,EAAIzuQ,IAAI,CACX4uI,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,KACLvwB,IACAowJ,EAAI1iO,QAAQ,EAChB,GAER,GAE+B/rC,IAAI,CAACgiB,CAAAA,EAAAA,EAAAA,CAAAA,IACxC,C,6FCtCO,IAAMslQ,EAAkCC,IACvCA,EAAUjjT,QAAQ,CAACkjT,QAAQ,CAAC76L,YAAY,CAAG46L,EAAUE,eAAe,EACpEF,CAAAA,EAAUjjT,QAAQ,CAACkjT,QAAQ,CAACz4P,KAAK,CAACC,SAAS,CAAG,CAAC,EAAEu4P,EAAUE,eAAe,CAAC,EAAE,CACjF,CACJ,ECJaC,EAAkDH,IAE3D,IAAM7C,EAAY6C,EAAUE,eAAe,CADX,QACkEF,EAAUE,eAC5GF,CAAAA,EAAUjjT,QAAQ,CAACkjT,QAAQ,CAACz4P,KAAK,CAACC,SAAS,CAAG,CAAC,EAAE01P,EAAU,EAAE,CACjE,E,eCEO,IAAMiD,EAAoC,CAACvtI,EAA8Btc,KAC5E,IAAM8pJ,EAAyB/hI,EAAAA,CAASA,EAAIE,EAAAA,CAAUA,EAAID,EAAAA,CAAYA,CAAG4hI,EAAiDJ,EAgB1H,MAAO,CACHH,eAAgB,CACZU,WARW,CACfC,CAAAA,EAAAA,EAAAA,EAAAA,EAAK,CAAEjpD,SAAUzkF,EAAiB2tI,UAAW,EAAM,GACnD1gK,CAAAA,EAAAA,EAAAA,EAAAA,EAAM,CAAEw3G,SAAUzkF,EAAiB4tI,aAAc,UAAW,GAC5Dv6S,CAAAA,EAAAA,EAAAA,EAAAA,EAAK,CAAEkzD,MAXW4mP,IAClBK,EAAuBL,GAEnBA,EAAUjjT,QAAQ,CAACkjT,QAAQ,CAACv8N,WAAW,CAAGs8N,EAAUU,cAAc,EAClEV,CAAAA,EAAUjjT,QAAQ,CAACkjT,QAAQ,CAACz4P,KAAK,CAAC0xM,QAAQ,CAAG,CAAC,EAAE8mD,EAAUU,cAAc,CAAC,EAAE,CAC/E,CACJ,EAKgCppD,SAAUzkF,CAAgB,GACzD,CAKOtc,UAAWA,EACXoqJ,SAAU,UACd,EACAd,OAAQ,CAACL,EAA8BD,EAA+Bz+S,KAClE8/S,CAAAA,EAAAA,EAAAA,CAAAA,EAAsBpB,EAAiBD,EAAkBz+S,GACzD0+S,EAAgBh4P,KAAK,CAAC66D,KAAK,CAAG,OAC9Bm9L,EAAgBh4P,KAAK,CAACopD,MAAM,CAAG,OAC/B4uM,EAAgBh4P,KAAK,CAACi3M,SAAS,CAAG,MACtC,CACJ,CACJ,EClCO,SAASoiD,EAAgCC,CAAkB,CAAEC,CAAuB,CAAEC,CAAuB,CAAEzqJ,CAAoB,EACtI,MAAO+4I,CAAAA,EAAAA,EAAAA,CAAAA,EAAyBwR,EAAOC,EAAYC,EAAYZ,EAAmC7pJ,EACtG,C,uECDO,IAAM0qJ,EAA+CC,GACjD,CAACruI,EAA8Btc,IAG3B,EACHqpJ,eAAgB,CACZU,WAJW,CAACC,CAAAA,EAAAA,EAAAA,EAAAA,EAAK,CAAEjpD,SAAUzkF,EAAiB2tI,UAAW,EAAM,GAAI1gK,CAAAA,EAAAA,EAAAA,EAAAA,EAAM,CAAEw3G,SAAUzkF,EAAiB4tI,aAAc,UAAW,GAAG,CAKlIlqJ,UAAWA,EACXoqJ,SAAU,UACd,EACAd,OAAQ,CAACL,EAA8BD,EAA+Bz+S,KAClE8/S,CAAAA,EAAAA,EAAAA,CAAAA,EAAsBpB,EAAiBD,EAAkBz+S,GACzD0+S,EAAgBh4P,KAAK,CAAC66D,KAAK,CAAG,OAC9Bm9L,EAAgBh4P,KAAK,CAACopD,MAAM,CAAG,OAC/B4uM,EAAgBh4P,KAAK,CAACi3M,SAAS,CAAG,OAEX,OAAnByiD,GACA1B,CAAAA,EAAgBh4P,KAAK,CAAC0xM,QAAQ,CAAG,CAAC,EAAEgoD,EAAe5qN,WAAW,CAAC,EAAE,CACrE,CACJ,CACJ,GCrBD,SAAS6qN,EAAoCL,CAAkB,CAAEC,CAAuB,CAAEC,CAAuB,CAAEE,CAAkC,CAAE3qJ,CAAoB,EAC9K,IAAM7hI,EAAUusR,EAA4CC,GAE5D,MAAO5R,CAAAA,EAAAA,EAAAA,CAAAA,EAAyBwR,EAAOC,EAAYC,EAAYtsR,EAAS6hI,EAC5E,C,6DCJO,IAAM29I,EAAyC,CAACrhI,EAA8Btc,IAY1E,EACHqpJ,eAAgB,CACZU,WAbW,CACfC,CAAAA,EAAAA,EAAAA,EAAAA,EAAK,CACDjpD,SAAUzkF,EACV2tI,UAAW,EACf,GACA1gK,CAAAA,EAAAA,EAAAA,EAAAA,EAAM,CACFw3G,SAAUzkF,EACV4tI,aAAc,UAClB,GACH,CAKOlqJ,UAAWA,EACXoqJ,SAAU,UACd,EACAd,OAAQ,CAACL,EAA8BD,EAA+Bz+S,KAClE8/S,CAAAA,EAAAA,EAAAA,CAAAA,EAAsBpB,EAAiBD,EAAkBz+S,GACzD0+S,EAAgBh4P,KAAK,CAAC65B,KAAK,CAAG,CAAC,EAAEk+N,EAAiBjpN,WAAW,CAAC,EAAE,CACpE,CACJ,E,4DCvBG,IAAM2oN,EAA6B,CAACpsI,EAA8Btc,IAG9D,EACHqpJ,eAAgB,CACZU,WAJW,CAACC,CAAAA,EAAAA,EAAAA,EAAAA,EAAK,CAAEjpD,SAAUzkF,EAAiB2tI,UAAW,EAAM,GAAI1gK,CAAAA,EAAAA,EAAAA,EAAAA,EAAM,CAAEw3G,SAAUzkF,EAAiB4tI,aAAc,UAAW,GAAG,CAKlIlqJ,UAAWA,EACXoqJ,SAAU,UACd,EACAd,OAAQe,EAAAA,CACZ,E,mCCZG,IAAMA,EAAwB,CAACpB,EAA8B4B,EAAgCtgT,KAChGuC,OAAOkhB,MAAM,CAACi7R,EAAgBh4P,KAAK,CAAE,CACjC0pD,KAAM,CAAC,EAAEpwG,EAAK0vC,CAAC,CAAC,EAAE,CAAC,CACnBliB,SAAU,WACVg5B,IAAK,CAAC,EAAExmD,EAAK20G,CAAC,CAAC,EAAE,CACrB,EACJ,C,yICCO,OAAM4rM,EACF5S,YACAtrL,CAAAA,MAEUmvD,CAAAA,OACAq9H,CAAAA,aACT1B,CAAAA,aAAwC,aAEpChoS,CAAoD,CAAEI,CAA2B,CAAE,CAC3F,IAAI,CAACisK,OAAO,CAAGrsK,EACf,IAAI,CAACgoS,aAAa,CAAG5nS,EACrB,IAAI,CAACspS,aAAa,CAAG,IAAInoI,EAAAA,CACzB,KAAI,CAACinI,YAAY,CAAG,IAAI,CAACkB,aAAa,CAACjoI,YAAY,GAEnD,IAAI,CAACvkD,MAAM,CAAG,CACVrI,QAAS,IAAI,CAACF,YAAY,CAACxgH,IAAI,CAAC,IAAI,EACpC+C,UAAW,IAAI,CAACmkT,cAAc,CAAClnT,IAAI,CAAC,IAAI,CAC5C,CACJ,CAEOw1C,YAAYiyP,CAAuB,CAAQ,CAC9C,IAAI,CAACoM,aAAa,CAAGpM,CACzB,CAEQyf,eAAet8Q,CAAgB,CAAEhM,CAAmB,CAAQ,CAChE,IAAMu3Q,EAAQ,IAAI,CAACj+H,OAAO,CAACttI,EAAEnoC,GAAG,CAAuC,MAEzD+C,IAAV2wS,IACAvrQ,EAAEvnC,cAAc,GAChBunC,EAAEroC,eAAe,GAEjB,IAAI,CAACozS,iBAAiB,CAACQ,EAAMvrQ,EAAG,IAAI,CAACipQ,aAAa,CAAEj1Q,IAE5D,CAEQ4hF,aAAa51E,CAAa,CAAQ,CACtCA,EAAEroC,eAAe,GAEjB,IAAI,CAACozS,iBAAiB,CAAC,IAAI,CAACz9H,OAAO,CAACx3D,OAAO,CAAC91E,EAAG,IAAI,CAACipQ,aAAa,EACrE,CAEQ8B,kBAAkBS,CAAsD,CAAQ,CACpF,GAAIA,OAAAA,EACA,OAGJ,IAAM3O,EAAW,CAAE,GAAG,IAAI,CAACoM,aAAa,CAAE,GAAGuC,CAAa,EAE1D,IAAI,CAACb,aAAa,CAACllP,IAAI,CAACo3O,EAC5B,CACJ,CCxDO,IAAM0f,EAAsC,CAC/Cr2I,gBAAiB,EACjBz4I,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACC,MACzB,E,qECEO,OAAMo2I,EACF/S,YACAtrL,CAAAA,MAEUmvD,CAAAA,OACAq9H,CAAAA,aACAC,CAAAA,UACAjC,CAAAA,WAETM,CAAAA,aACSwT,CAAAA,cAAuC,aAGpDx7S,CAAiD,CACjDkoS,CAAkC,CAClC2B,CAAiC,CACjCzpS,CAA2B,CAC3Bq7S,CAAqC,CACvC,CACE,IAAI,CAAC9R,UAAU,CAAGE,EAClB,IAAI,CAACnC,WAAW,CAAGQ,EACnB,IAAI,CAAC77H,OAAO,CAAGrsK,EACf,IAAI,CAACgoS,aAAa,CAAG5nS,EACrB,IAAI,CAACspS,aAAa,CAAG,IAAInoI,EAAAA,CACzB,KAAI,CAACinI,YAAY,CAAG,IAAI,CAACkB,aAAa,CAACjoI,YAAY,GACnD,IAAI,CAAC+5I,cAAc,CAAGC,EAEtB,IAAI,CAACv+L,MAAM,CAAG,CACV1sF,KAAM,CACFqkF,QAAS,CAACw3L,EAAgBrwH,IAAsB,IAAI,CAAC8tH,iBAAiB,CAAC9pS,EAAOwwB,IAAI,CAACqkF,OAAO,CAACw3L,EAAIrwH,GACnG,EACA1lL,OAAQ,CACJyzS,YAAa,IAAI,CAACC,sBAAsB,CAAC71S,IAAI,CAAC,IAAI,EAClD+C,UAAW,IAAI,CAAC+yS,oBAAoB,CAAC91S,IAAI,CAAC,IAAI,CAClD,CACJ,CACJ,CAEOw1C,YAAYiyP,CAAuB,CAAQ,CAC9C,IAAI,CAACoM,aAAa,CAAGpM,CACzB,CAEQoO,uBAAuBjrQ,CAAa,CAAQ,CAChD,IAAI,CAAC+qQ,iBAAiB,CAAC,IAAI,CAACz9H,OAAO,CAAC/1K,MAAM,CAACyzS,WAAW,CAAChrQ,EAAG,IAAI,CAAC2oQ,WAAW,CAAE,IAAI,CAACiC,UAAU,CAAE,IAAI,CAAC6R,cAAc,CAAChnM,OAAO,EAC5H,CAEQy1L,qBAAqBlrQ,CAAgB,CAAEhM,CAAmB,CAAQ,CACtE,IAAMu3Q,EAAQ,IAAI,CAACj+H,OAAO,CAAC/1K,MAAM,CAACyoC,EAAEnoC,GAAG,CAAsC,EAAI,IAAI,CAACy1K,OAAO,CAAC/1K,MAAM,CAACqjE,OAAO,MAE9FhgE,IAAV2wS,IAIJvrQ,EAAEroC,eAAe,GAEuDiD,KAAAA,IAApE,IAAI,CAAC0yK,OAAO,CAAC/1K,MAAM,CAACyoC,EAAEnoC,GAAG,CAAsC,EAC/DmoC,EAAEvnC,cAAc,GAGpB,IAAI,CAACsyS,iBAAiB,CAACQ,EAAMvrQ,EAAG,IAAI,CAACipQ,aAAa,CAAEj1Q,IACxD,CAEQ+2Q,kBAAkBS,CAAsD,CAAQ,CACpF,GAAIA,OAAAA,EACA,OAGJ,IAAM3O,EAAW,CAAE,GAAG,IAAI,CAACoM,aAAa,CAAE,GAAGuC,CAAa,EAE1D,IAAI,CAACb,aAAa,CAACllP,IAAI,CAACo3O,EAC5B,CACJ,C,yBCpEO,SAAS8f,EAA4B17S,CAQ3C,EACG,IAAM27S,EAAY,IACP,KAoBLC,EAAe,IAAIL,EAjByC,CAC9D/qR,KAAM,CACFqkF,QAAS8mM,CACb,EACArlT,OAAQ,CACJ,CAAC2kC,EAAAA,CAAIA,CAAC0vQ,OAAO,CAAC,CAAEgR,EAChB,CAAC1gR,EAAAA,CAAIA,CAAC2vQ,SAAS,CAAC,CAAE+Q,EAClB,CAAC1gR,EAAAA,CAAIA,CAACswQ,GAAG,CAAC,CAAEoQ,EACZ,CAAC1gR,EAAAA,CAAIA,CAACwwQ,IAAI,CAAC,CAAEkQ,EACb,CAAC1gR,EAAAA,CAAIA,CAAC4vQ,KAAK,CAAC,CAAE8Q,EACd,CAAC1gR,EAAAA,CAAIA,CAAC0wQ,MAAM,CAAC,CAAEC,EAAAA,CAASA,CACxB,CAAC3wQ,EAAAA,CAAIA,CAAC6vQ,KAAK,CAAC,CAAE6Q,EACdhiP,QAASgiP,EACT5R,YAAa+B,EAAAA,CACjB,CACJ,EAE0E9rS,EAAOkoS,UAAU,CAAEloS,EAAOmoS,WAAW,CAAEnoS,EAAOI,YAAY,CAAEJ,EAAOy7S,aAAa,EAE1J,OAAO,IAAIlU,EAAAA,CAAYA,CAAkDvnS,EAAOkoS,UAAU,CAAEloS,EAAOmoS,WAAW,CAAEnoS,EAAOooS,WAAW,CAAE,CAChIG,iBAAkBqT,EAClBvT,yBAA0B,CACtBiB,kBAAmB0P,EAAAA,CAA0BA,CAC7C1oJ,UAAW,cACf,EACAg4I,gBAAiB,KACsB,OAA/BtoS,EAAOmoS,WAAW,CAAC3zL,OAAO,EAC1Bx0G,EAAOmoS,WAAW,CAAC3zL,OAAO,CAACp+G,KAAK,EAExC,EACAw8N,cAAe5yN,EAAO4yN,aAC1B,EACJ,C,wBCvDA,QAAU,qoBCKH,IAAMipF,EAA2FxyQ,IACpG,IAAMgoN,EAAWy9C,CAAAA,EAAAA,EAAAA,UAAAA,EAAW3iI,EAAAA,CAAeA,EACrC2vI,EAAU5Y,CAAAA,EAAAA,EAAAA,MAAAA,EAAuB,MAEjCqM,EAAeC,CAAAA,EAAAA,EAAAA,CAAAA,EAAckM,EAA0B,CACzDtT,YAAa/2C,EAASz4P,OAAO,CAC7BuvS,YAAa2T,EACb17S,aAAcipC,EAAM0yQ,SAAS,CAC7B1Q,gBAAiB,IAAM,GACvBz4E,cAAevpL,EAAM2yQ,iBAAiB,CACtCP,cAAepyQ,EAAMoyQ,aAAa,CAClCvT,WAAY7+P,EAAM4yQ,SACtB,GAQA,MANAjb,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,KACPuO,EAAa5lQ,WAAW,CAACN,EAAM0yQ,SAAS,EAEjC,IAAMxM,EAAaxkP,OAAO,KAIjC,UAACoiH,MAAAA,CACGxlK,GAAI0hC,EAAM0lQ,UAAU,CACpB3xL,IAAK0+L,EACL1uI,YAAW/jI,EAAMnoC,QAAQ,CACzBsoB,SAAU,GACV+jR,OAAQgC,EAAaryL,MAAM,CAAC5mH,MAAM,CAACyzS,WAAW,CAC9C7yS,UAAY6nC,GAAMwwQ,EAAaryL,MAAM,CAAC5mH,MAAM,CAACY,SAAS,CAAC6nC,EAAG,EAAE,EAC5DmtE,UAAU,oDACT7iE,EAAM6tI,QAAQ,EAG3B,E,gDC1BO,SAASglI,EAA6Bl8S,CAS5C,EAgBG,IAAM47S,EAAe,IAAIL,EAVyC,CAC9D/qR,KAAM,CACFqkF,QAAS,CAAC7+G,EAAOgmL,KACbh8K,EAAO2oK,YAAY,CAACqT,GACbowH,CAAAA,EAAAA,EAAAA,CAAAA,EAA8Bp2S,EAAOgmL,GAEpD,EACA1lL,OAAQ80S,CAAAA,EAAAA,EAAAA,CAAAA,EAA4BprS,EAAOqrS,eAAe,CAZ/B,CAACgB,EAAmBhwE,EAAkCjpM,KACjFpzB,EAAO2oK,YAAY,CAAC0zD,EAAap3D,eAAe,EACzC2mI,CAAAA,EAAAA,EAAAA,CAAAA,KAWX,EAE0E5rS,EAAOkoS,UAAU,CAAEloS,EAAOmoS,WAAW,CAAEnoS,EAAOI,YAAY,CAAEJ,EAAOy7S,aAAa,EAE1J,OAAO,IAAIlU,EAAAA,CAAYA,CAAkDvnS,EAAOkoS,UAAU,CAAEloS,EAAOmoS,WAAW,CAAEnoS,EAAOooS,WAAW,CAAE,CAChIG,iBAAkBqT,EAClBvT,yBAA0B,CACtBiB,kBAAmB0P,EAAAA,CAA0BA,CAC7C1oJ,UAAW,cACf,EACAg4I,gBAAiB,KACsB,OAA/BtoS,EAAOmoS,WAAW,CAAC3zL,OAAO,EAC1Bx0G,EAAOmoS,WAAW,CAAC3zL,OAAO,CAACp+G,KAAK,EAExC,EACAw8N,cAAe5yN,EAAO4yN,aAC1B,EACJ,CCnDA,QAAU,gmDCQV,IAAMupF,EAAkB,CACpB/jM,EACA6sD,EACAm3I,EACArN,EACAl6L,EACAo2G,KAEA,IAAIoxF,EAAc,EAClB,OAAOjkM,EAAQ17G,GAAG,CAAC,CAACitJ,EAAOW,KACvB,IAAMgyJ,EAAU,CAAC,EAAEvN,EAAW,CAAC,EAAEzkJ,EAAW,CAAC,CACvCiyJ,EACF,UAAClM,KAAAA,CAAGnkM,UAAU,+CACV,WAACkiM,KAAAA,CAAGhhI,YAAU,qBAAqBihI,kBAAiB,CAAC,EAAEiO,EAAQ,MAAM,CAAC,CAAEpwM,UAAU,iCAAiCzoB,KAAK,kBACpH,UAAC4sN,KAAAA,CAAG5sN,KAAK,eAAwC97E,GAAI,CAAC,EAAE20S,EAAQ,MAAM,CAAC,CAAElvI,YAAU,qBAAqBlhE,UAAU,+CAC9G,UAACyhH,OAAAA,CAAKzhH,UAAU,+CAAuCy9C,EAAMhpJ,KAAK,IADzC,CAAC,EAAE27S,EAAQ,MAAM,CAAC,EAG9CE,EAAiB7yJ,EAAM52H,KAAK,CAAEspR,EAAap3I,EAAiBm3I,EAAerN,EAAYl6L,EAASo2G,GAAAA,EAAAA,EALhDqxF,GAU7D,OADAD,GAAe1yJ,EAAM52H,KAAK,CAAC/7B,MAAM,CAC1BulT,CACX,EACJ,EAEMC,EAAmB,CACrBzpR,EACAspR,EACAp3I,EACAm3I,EACArN,EACAl6L,EACAo2G,KAEA,IAAI5xN,EAAQ,EACZ,OAAO05B,EAAMr2B,GAAG,CAAE8zB,IACd,IAAMisR,EAAYJ,EAAchjT,EAEhC,OADAA,IAEI,UAACg3S,KAAAA,CACGnkM,UAAU,qCAEVvkG,GAAI,CAAC,EAAEonS,EAAW,MAAM,EAAE0N,EAAU,CAAC,CACrCC,qBAAoBD,EACpB7L,gBAAe6L,IAAcx3I,EAC7B7nD,IAAKq/L,IAAcx3I,EAAkBm3I,EAAgBziT,KAAAA,EACrDyzK,YAAU,oBACV3pF,KAAK,WACLoxB,QAAU91E,GAAM81E,EAAQ91E,EAAG09Q,GAAAA,SAC1BxxF,EAAaz6L,EAAAA,EART,CAAC,EAAEu+Q,EAAW,MAAM,EAAE0N,EAAU,CAAC,CAWlD,EACJ,EAEaE,EAAyCtzQ,IAClD,IAAMyyQ,EAAU5Y,CAAAA,EAAAA,EAAAA,MAAAA,EAAyB,MACnCkZ,EAAgBlZ,CAAAA,EAAAA,EAAAA,MAAAA,EAAsB,MACtC7xC,EAAWy9C,CAAAA,EAAAA,EAAAA,UAAAA,EAAW3iI,EAAAA,CAAeA,EAErCojI,EAAeC,CAAAA,EAAAA,EAAAA,CAAAA,EAAc0M,EAA8B,CAC7D9T,YAAa/2C,EAASz4P,OAAO,CAC7BuvS,YAAa2T,EACb17S,aAAcipC,EAAM0yQ,SAAS,CAC7B1Q,gBAAiB,CAAC76Q,EAASy8Q,IAAiCz8Q,EAAKt6B,KAAK,CAACsX,WAAW,GAAG83L,UAAU,CAAC2nG,GAChGtkI,aAAetvK,GAAkBgwC,EAAMs/H,YAAY,CAACt/H,EAAMuzQ,cAAc,CAACvjT,EAAM,EAC/Eu5N,cAAevpL,EAAM2yQ,iBAAiB,CACtCP,cAAepyQ,EAAMoyQ,aAAa,CAClCvT,WAAY7+P,EAAM4yQ,SACtB,GAwBA,MAtBA7C,CAAAA,EAAAA,EAAAA,CAAAA,EAAa,KACT7J,EAAaxkP,OAAO,EACxB,GAEAk1O,CAAAA,EAAAA,EAAAA,CAAAA,EACI,KAC4B,OAApB6b,EAAQtnM,OAAO,EAAa4nM,OAAAA,EAAc5nM,OAAO,EACjDqoM,CAAAA,EAAAA,EAAAA,CAAAA,EAAsBf,EAAQtnM,OAAO,CAAE4nM,EAAc5nM,OAAO,CAEpE,EACA,CAACnrE,EAAM0yQ,SAAS,CAAE1yQ,EAAMuzQ,cAAc,CAAEvzQ,EAAM4hL,YAAY,CAAC,CAC3D,IAGJg1E,CAAAA,EAAAA,EAAAA,CAAAA,EACI,KACIsP,EAAa5lQ,WAAW,CAACN,EAAM0yQ,SAAS,CAC5C,EACA,CAAC1yQ,EAAM0yQ,SAAS,CAAC,CACjB,IAIA,UAAC3N,KAAAA,CACGliM,UAAU,oCACVkhE,YAAU,oBACVhwD,IAAK0+L,EACLn0S,GAAI0hC,EAAM0lQ,UAAU,CACpBmB,wBAAuB,CAAC,EAAE7mQ,EAAM0lQ,UAAU,CAAC,MAAM,EAAE1lQ,EAAM0yQ,SAAS,CAAC92I,eAAe,CAAC,CAAC,CACpFopI,kBAAiBhlQ,EAAM4rH,YAAY,CACnCzrI,SAAU,GACVi6D,KAAK,OACL8pN,OAAQgC,EAAaryL,MAAM,CAAC5mH,MAAM,CAACyzS,WAAW,CAC9C7yS,UAAY6nC,GAAMwwQ,EAAaryL,MAAM,CAAC5mH,MAAM,CAACY,SAAS,CAAC6nC,EAAGsK,EAAMuzQ,cAAc,WAC7ET,EAAgB9yQ,EAAM1jB,MAAM,CAAE0jB,EAAM0yQ,SAAS,CAAC92I,eAAe,CAAEm3I,EAAe/yQ,EAAM0lQ,UAAU,CAAEQ,EAAaryL,MAAM,CAAC1sF,IAAI,CAACqkF,OAAO,CAAExrE,EAAM4hL,YAAY,CAAC,EAGlK,ECrHA,QAAU,4VCaH,IAAMJ,EAA0CxhL,IACnD,IAAMyzQ,EAAkB5Z,CAAAA,EAAAA,EAAAA,MAAAA,EAA0B,MAC5C0Z,EAAiB1Z,CAAAA,EAAAA,EAAAA,MAAAA,EAAiB,EAAE,EACpCuY,EAAgBvY,CAAAA,EAAAA,EAAAA,MAAAA,EAA2B,MAC3CjuI,EAAe6qI,CAAAA,EAAAA,EAAAA,KAAAA,IACfiP,EAAajP,CAAAA,EAAAA,EAAAA,KAAAA,IAEb,CAACic,EAAWgB,EAAa,CAAG/c,CAAAA,EAAAA,EAAAA,QAAAA,EAAmCsb,GAC/D0B,EAAyB/N,CAAAA,EAAAA,EAAAA,CAAAA,EAAYmM,EAAwB1Q,EAAAA,CAAqBA,CAAEqR,GAEpFkB,EAAmBC,IACrBF,EAAuBrzQ,WAAW,CAACuzQ,GACnCH,EAAaG,EACjB,EA0BA,MAxBAlc,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,KACP,IAAMmc,EAAoBH,EAAuBxU,YAAY,CAAC91Q,SAAS,CAACuqR,GACxE,MAAO,IAAME,EAAkB90L,WAAW,EAC9C,GAEA43K,CAAAA,EAAAA,EAAAA,CAAAA,EACI,KACI2c,EAAepoM,OAAO,CAAGnrE,OAAAA,EAAM19B,KAAK,CAACga,MAAM,CAAY0jB,EAAM19B,KAAK,CAACga,MAAM,CAACy3R,OAAO,CAAElhI,GAAcA,EAAUnpJ,KAAK,EAAI,EAAE,CAEtHkqR,EAAgB,CACZ,GAAGlB,CAAS,CACZ92I,gBAAiB,CACrB,EACJ,EACA,CAAC57H,EAAM19B,KAAK,CAACga,MAAM,CAAC,CACpB,IAGJs6Q,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,KACT8b,EAAUjlS,IAAI,GAAKouJ,EAAAA,CAAcA,CAAC2jI,qBAAqB,EAAIiU,OAAAA,EAAgBtoM,OAAO,EAClFsoM,EAAgBtoM,OAAO,CAACp+G,KAAK,EAErC,EAAG,CAAC2lT,EAAUjlS,IAAI,CAAC,EAGf,WAAC8zM,EAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACG,UAACz9C,MAAAA,CAAIC,YAAU,iDACX,UAACjzD,SAAAA,CACGjO,UAAW,CAAC,EAAE7iE,EAAMyhL,eAAe,CAAC,CAAC,EAAEixF,EAAUvvR,MAAM,CAAG,CAAC,EAAE6c,EAAMyhL,eAAe,CAAC,QAAQ,CAAC,CAAG,GAAG,CAAC,CACnG1tG,IAAK0/L,EACL7d,aAAY51P,EAAMvoC,SAAS,CAC3B6G,GAAIstJ,EACJ66I,gBAAeiM,EAAUvvR,MAAM,CAC/BwjR,gBAAe+L,EAAUvvR,MAAM,CAAGuiR,EAAap1S,KAAAA,EAC/Ck2S,gBAAc,OACdh7L,QAAU91E,IACN08Q,EAAcjnM,OAAO,CAAG,KACxBwoM,EAAuB9/L,MAAM,CAACrI,OAAO,CAAC91E,EAC1C,EACAqrQ,YAAcrrQ,GAAO08Q,EAAcjnM,OAAO,CAAGz1E,EAAEzoC,MAAM,CACrDY,UAAY6nC,GAAMi+Q,EAAuB9/L,MAAM,CAAChmH,SAAS,CAAC6nC,EAAG69Q,EAAepoM,OAAO,WAClFnrE,EAAM0hL,aAAa,KAI3BgxF,EAAUvvR,MAAM,EACb,WAAC2gJ,MAAAA,CAAIjhE,UAAU,8CAA8CkhE,YAAU,mDAClE/jI,EAAM19B,KAAK,CAAC6jB,MAAM,GAAKojL,EAAAA,CAAgBA,CAACxnF,OAAO,EAC5C,UAACywL,EAAAA,CACG36S,SAAS,wCACT6tS,WAAYA,EACZkN,UAAWa,EACXf,UAAWA,EACXC,kBAAmBiB,EACnBxB,cAAeA,EAAAA,SACf,WAAC7wF,EAAAA,QAAQA,CAARA,CAAAA,SAAAA,CACG,UAACnmD,EAAAA,CAAoBA,CAApBA,CAAqBv4D,UAAU,kCAAkC,GAClE,UAACyhH,OAAAA,CAAKvgD,YAAU,mCAAmClhE,UAAU,iDACxD7iE,EAAM19B,KAAK,CAACivC,OAAO,QAMnCvR,EAAM19B,KAAK,CAAC6jB,MAAM,GAAKojL,EAAAA,CAAgBA,CAACvxC,KAAK,EAC1C,UAACw6I,EAAAA,CACG36S,SAAS,sCACT6tS,WAAYA,EACZkN,UAAWa,EACXf,UAAWA,EACXC,kBAAmBiB,EACnBxB,cAAeA,EAAAA,SACdpyQ,EAAM19B,KAAK,CAACwoB,KAAK,GAIzBkV,EAAM19B,KAAK,CAAC6jB,MAAM,GAAKojL,EAAAA,CAAgBA,CAACC,QAAQ,EAC7C,UAAC8pG,EAAAA,CACGV,UAAWa,EACX/N,WAAYA,EACZ6N,eAAgBA,EAAepoM,OAAO,CACtCygD,aAAcA,EACd8mJ,UAAWA,EACXpzI,aAAct/H,EAAMs/H,YAAY,CAChCqzI,kBAAmBiB,EACnBhyF,aAAc5hL,EAAM4hL,YAAY,CAChCtlM,OAAQ0jB,EAAM19B,KAAK,CAACga,MAAM,CAC1B81R,cAAeA,CAAAA,GAAAA,GAAAA,EAO3C,C,yGCvHO,IAAM4B,EAA6Dh0Q,IACtE,IAAMq7P,EAAqCxB,CAAAA,EAAAA,EAAAA,MAAAA,EAAO,MAC5Coa,EAAqBrO,CAAAA,EAAAA,EAAAA,CAAAA,EAAYsO,EAAAA,CAAkBA,CAAEl0Q,EAAM6/H,YAAY,EAAI,GAcjF,MAZA83H,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,KACPsc,EAAmB17H,QAAQ,CAACv4I,EAAMylO,UAAU,CAAE41B,EAAY,IAEnD,KACH4Y,EAAmBvyP,OAAO,EAC9B,IAGJk1O,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,KACbqd,EAAmB17H,QAAQ,CAACv4I,EAAMylO,UAAU,CAAE41B,EAAY,GAC9D,EAAG,CAACr7P,EAAMylO,UAAU,CAAC,EAEd,UAACnhD,OAAAA,CAAKzhH,UAAW7iE,EAAM6iE,SAAS,CAAEkR,IAAKsnL,EAAYt3H,YAAW/jI,EAAMnoC,QAAQ,EACvF,E,eCjBO,IAAM2/M,EAAiEx3K,GAEtE,UAACmtI,EAAAA,CAAQA,CAARA,CAASpyJ,UAAWilB,EAAMjlB,SAAS,CAAEwxF,WAAYvsE,EAAMusE,UAAU,CAAE++J,WAAYtrO,EAAMsrO,UAAU,CAAEpiP,SAAU8W,EAAM9W,QAAQ,UACtH,UAAC8qR,EAAAA,CAAgBvuC,WAAYzlO,EAAMxoC,KAAK,I,wECPpD,K,OAAA,GAAU,6ECKH,IAAM81K,EAAmDttI,GAExD,UAACkkL,EAAAA,CAAMA,CAANA,CAAOz2M,KAAMuyB,EAAMvyB,IAAI,CAAEhW,UAAWuoC,EAAMvoC,SAAS,UAChD,UAAC6yR,EAAAA,CAASA,CAATA,CAAUznL,UAAU,2BAA2B4iK,WAAYzlO,EAAMrP,OAAO,CAAEryB,GAAI0hC,EAAM1hC,EAAE,I,6DCL5F,IAAMkrR,EAAgD,OAAC,CAAEnyP,KAAM88Q,CAAa,CAAEtmI,SAAAA,CAAQ,CAAE,GAAGumI,EAAM,GACpG,MAEI,UAACz/O,IAAAA,CAAG,GAAGy/O,CAAI,CAAE/8Q,KAAMg9Q,CAAAA,EAAAA,EAAAA,CAAAA,EAAkBF,GAAiBA,EAAgB7jT,KAAAA,EAAAA,SACjEu9K,CAAAA,EAGb,C,6DCRO,IAAMwhI,EAAaxuF,EAAAA,CAAWA,CAACC,SAAS,CAA6B,WAE5EuuF,EAAWn9S,GAAG,CACV,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCAErBsuF,EAAWn9S,GAAG,CACV,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCAErBsuF,EAAWn9S,GAAG,CACV,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCAErBsuF,EAAWn9S,GAAG,CACV,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,sC,4FCbd,IAAMquF,EAAakF,CAAAA,EAAAA,EAAAA,UAAAA,EAAW,SAAoBt0Q,CAAuB,CAAE+zE,CAAoC,EAClH,IAAIr8G,EAAcsoC,EAAM6iE,SAAS,GAAK0sM,EAAAA,CAAeA,CAACC,QAAQ,CAAG,CAAC,EAAExvQ,EAAM6iE,SAAS,CAAC,gBAAgB,CAAC,CAAG7iE,EAAM6iE,SAAS,CAMvH,MAJqB,KAAjB7iE,EAAMsvQ,MAAM,EACZ53S,CAAAA,GAAe,0BAAyB,EAIxC,UAACo5G,SAAAA,CACG8kL,aAAY51P,EAAMvoC,SAAS,CAC3B4zN,cAAarrL,CAAiB,IAAjBA,EAAMsvQ,MAAM,CACzBzsM,UAAWnrG,EACXqsK,YAAW/jI,EAAMnoC,QAAQ,CACzBC,SAAUkoC,CAAmB,IAAnBA,EAAMloC,QAAQ,CACxB0zG,QAASxrE,EAAMwrE,OAAO,CACtB/9F,KAAMuyB,EAAMvyB,IAAI,CAChBsmG,IAAKA,EAAAA,SACL,UAAC75F,EAAAA,CAAIA,CAAJA,CAAKu1H,OAAQzvG,EAAMyvG,MAAM,CAAE5sC,UAAU,uBAAuB,EAAvB,EAGlD,E,wBC1BY0sM,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,QAAAA,CAAAA,4BAAAA,EAAAA,QAAAA,CAAAA,0B,6DCCZ,K,OAAA,GAAU,8DCGH,IAAMr1R,EAAsCq6R,CAAAA,EAAAA,EAAAA,IAAAA,EAAiB,SAAcv0Q,CAAiB,EAC/F,IAAMw0Q,EAAY,CACdrrF,KAAMnpL,EAAMmpL,IAChB,EAEA,MAEI,UAAC7E,OAAAA,CAAK+G,cAAY,OAAOopF,wBAAyB,CAAEC,OAAQ10Q,EAAMyvG,MAAM,CAACzzH,QAAQ,EAAG,EAAG6mF,UAAW,CAAC,EAAE7iE,KAAoB1vC,IAApB0vC,EAAM6iE,SAAS,CAAiB7iE,EAAM6iE,SAAS,CAAG,GAAG,aAAa,CAAC,CAAE3qD,MAAOs8P,CAAAA,EAEzL,E,kCCXO,OAAMt6R,EACQy6R,UAAmB,aAExBC,CAAiB,CAAE,CAC3B,IAAI,CAACD,UAAU,CAAGC,CACtB,CAEO54R,UAAmB,CACtB,OAAO,IAAI,CAAC24R,UAChB,CACJ,C,mCCTO,IAAME,EAAgC,GAAI36R,C,UAAAA,CAAIA,CAAC,+F,mCCA/C,IAAM40H,EAAiB,GAAI50H,C,UAAAA,CAAIA,CAClC,gV,mCCDG,IAAM6yH,EAA2B,GAAI7yH,C,UAAAA,CAAIA,CAC5C,olC,mCCDG,IAAMkrN,EAA2B,GAAIlrN,C,UAAAA,CAAIA,CAC5C,+tB,mCCDG,IAAMwlL,EAAoB,GAAIxlL,C,UAAAA,CAAIA,CACrC,g2B,mCCDG,IAAMqpO,EAAqB,GAAIrpO,C,UAAAA,CAAIA,CACtC,kQ,mCCDG,IAAMm7N,EAAsB,GAAIn7N,C,UAAAA,CAAIA,CACvC,isD,mCCDG,IAAM4T,EAAqB,GAAI5T,C,UAAAA,CAAIA,CACtC,skB,kCCDG,IAAMqyH,EAAkB,GAAIryH,C,UAAAA,CAAIA,CACnC,+nB,mCCCG,IAAMsgF,EAAmB,GAAItgF,C,UAAAA,CAAIA,CACpC,wR,mCCHG,IAAMuyH,EAAoB,GAAIvyH,C,UAAAA,CAAIA,CACrC,ge,mCCDG,IAAM8I,EAAkB,GAAI9I,C,UAAAA,CAAIA,CACnC,oU,mCCDG,IAAMkrR,EAAmB,GAAIlrR,C,UAAAA,CAAIA,CACpC,igC,mCCDG,IAAM+I,EAAsB,GAAI/I,C,UAAAA,CAAIA,CACvC,wK,mCCDG,IAAMgwQ,EAA8B,GAAIhwQ,C,UAAAA,CAAIA,CAC/C,6N,mCCDG,IAAM8T,EAA6B,GAAI9T,C,UAAAA,CAAIA,CAC9C,oS,mCCDG,IAAMi7Q,EAA8B,GAAIj7Q,C,UAAAA,CAAIA,CAC/C,4tB,mCCDG,IAAM2mN,EAAoB,GAAI3mN,C,UAAAA,CAAIA,CACrC,6U,mCCDG,IAAM0iJ,EAAkB,GAAI1iJ,C,UAAAA,CAAIA,CACnC,y9C,mCCCG,IAAM6I,EAAmB,GAAI7I,C,UAAAA,CAAIA,CACpC,yP,mCCHG,IAAM+qM,EAAqB,GAAI/qM,C,UAAAA,CAAIA,CACtC,mzB,mCCCG,IAAMwU,EAAyB,GAAIxU,C,UAAAA,CAAIA,CAC1C,gS,mCCHG,IAAM46Q,EAAsB,GAAI56Q,C,UAAAA,CAAIA,CACvC,yuD,mCCDG,IAAMyiJ,EAAkB,GAAIziJ,C,UAAAA,CAAIA,CACnC,qnE,kCCDG,IAAM4yH,EAAiB,GAAI5yH,C,UAAAA,CAAIA,CAClC,2mB,mCCDG,IAAM+6Q,EAA2B,GAAI/6Q,C,UAAAA,CAAIA,CAC5C,ipB,mCCDG,IAAM4uQ,EAAkB,GAAI5uQ,C,UAAAA,CAAIA,CACnC,+c,mCCCG,IAAM+uQ,EAAwB,GAAI/uQ,C,UAAAA,CAAIA,CACzC,wjB,kCCHG,IAAM46R,EAA0B,GAAI56R,C,UAAAA,CAAIA,CAC3C,6b,mCCDG,IAAM2yH,EAAmB,GAAI3yH,C,UAAAA,CAAIA,CACpC,yiB,mCCDG,IAAM66Q,EAAqB,GAAI76Q,C,UAAAA,CAAIA,CACtC,2T,mCCDG,IAAM26Q,EAAqB,GAAI36Q,C,UAAAA,CAAIA,CACtC,4a,mCCDG,IAAM0yH,EAAmB,GAAI1yH,C,UAAAA,CAAIA,CACpC,uY,mCCDG,IAAMkvQ,EAA8B,GAAIlvQ,C,UAAAA,CAAIA,CAC/C,24B,mCCDG,IAAM8yH,EAA8B,GAAI9yH,C,UAAAA,CAAIA,CAC/C,wmC,mCCDG,IAAMwyH,EAAqB,GAAIxyH,C,UAAAA,CAAIA,CACtC,6gB,mCCDG,IAAM66R,EAAoB,GAAI76R,C,UAAAA,CAAIA,CACrC,yc,kCCCG,IAAM86R,EAAqB,GAAI96R,C,UAAAA,CAAIA,CACtC,mS,mCCHG,IAAMsyH,EAAiB,GAAItyH,C,UAAAA,CAAIA,CAClC,kgB,mCCDG,IAAMmrN,EAA0B,GAAInrN,C,UAAAA,CAAIA,CAC3C,mR,mCCDG,IAAMuzH,EAAkB,GAAIvzH,C,UAAAA,CAAIA,CACnC,qa,mCCDG,IAAMyyH,EAAuB,GAAIzyH,C,UAAAA,CAAIA,CACxC,+pC,mCCDG,IAAMuqM,EAAoB,GAAIvqM,C,UAAAA,CAAIA,CACrC,++B,mCCCG,IAAM+6R,EAAqB,GAAI/6R,C,UAAAA,CAAIA,CACtC,0hB,mCCHG,IAAMsuM,EAA8B,GAAItuM,C,UAAAA,CAAIA,CAC/C,ilB,mCCDG,IAAMwuM,EAA6B,GAAIxuM,C,UAAAA,CAAIA,CAC9C,qV,mCCDG,IAAMouM,EAA8B,GAAIpuM,C,UAAAA,CAAIA,CAC/C,yY,mCCDG,IAAM0qQ,EAAyB,GAAI1qQ,C,UAAAA,CAAIA,CAC1C,kV,mCCDG,IAAM4qQ,EAAqB,GAAI5qQ,C,UAAAA,CAAIA,CACtC,ie,mCCDG,IAAM8qQ,EAAmB,GAAI9qQ,C,UAAAA,CAAIA,CACpC,yqB,mCCDG,IAAMgrQ,EAAkB,GAAIhrQ,C,UAAAA,CAAIA,CACnC,qqB,mCCDG,IAAMirQ,EAAyB,GAAIjrQ,C,UAAAA,CAAIA,CAC1C,oc,mCCDG,IAAMmrQ,EAAwB,GAAInrQ,C,UAAAA,CAAIA,CACzC,ikB,mCCDG,IAAMqrQ,EAA0B,GAAIrrQ,C,UAAAA,CAAIA,CAC3C,gxC,mCCDG,IAAMurQ,EAAgB,GAAIvrQ,C,UAAAA,CAAIA,CACjC,6uB,mCCDG,IAAMyrQ,EAAsB,GAAIzrQ,C,UAAAA,CAAIA,CACvC,q3B,mCCDG,IAAM2rQ,EAAsB,GAAI3rQ,C,UAAAA,CAAIA,CACvC,2vC,mCCDG,IAAM6rQ,EAAwB,GAAI7rQ,C,UAAAA,CAAIA,CACzC,kO,mCCFG,IAAMwtQ,EAAyB,GAAIxtQ,C,UAAAA,CAAIA,CAC1C,4Z,mCCAG,IAAM+rQ,EAAsB,GAAI/rQ,C,UAAAA,CAAIA,CACvC,yN,mCCFG,IAAMytQ,EAAuB,GAAIztQ,C,UAAAA,CAAIA,CACxC,mZ,mCCAG,IAAMisQ,EAAkB,GAAIjsQ,C,UAAAA,CAAIA,CACnC,wM,mCCDG,IAAM61B,EAAmB,GAAI71B,C,UAAAA,CAAIA,CACpC,8R,mCCDG,IAAMksQ,EAAkB,GAAIlsQ,C,UAAAA,CAAIA,CACnC,+gC,mCCDG,IAAMosQ,EAAiB,GAAIpsQ,C,UAAAA,CAAIA,CAClC,0wB,mCCDG,IAAMssQ,EAAkB,GAAItsQ,C,UAAAA,CAAIA,CACnC,gf,mCCFG,IAAM0tQ,EAAmB,GAAI1tQ,C,UAAAA,CAAIA,CACpC,qqB,mCCAG,IAAMwsQ,EAAuB,GAAIxsQ,C,UAAAA,CAAIA,CACxC,4/B,mCCDG,IAAM0sQ,EAAkB,GAAI1sQ,C,UAAAA,CAAIA,CACnC,8c,kCCDG,IAAM4sQ,EAA0B,GAAI5sQ,C,UAAAA,CAAIA,CAC3C,m7B,mCCDG,IAAM6sQ,EAAwB,GAAI7sQ,C,UAAAA,CAAIA,CACzC,0f,mCCFG,IAAM2tQ,EAAyB,GAAI3tQ,C,UAAAA,CAAIA,CAC1C,+qB,mCCAG,IAAM+sQ,EAAyB,GAAI/sQ,C,UAAAA,CAAIA,CAC1C,m+B,kCCDG,IAAMitQ,EAAoB,GAAIjtQ,C,UAAAA,CAAIA,CACrC,yM,mCCFG,IAAM4tQ,EAAqB,GAAI5tQ,C,UAAAA,CAAIA,CACtC,mY,mCCAG,IAAMmtQ,EAAmB,GAAIntQ,C,UAAAA,CAAIA,CACpC,+qB,mCCFG,IAAM8tQ,EAAuB,GAAI9tQ,C,UAAAA,CAAIA,CACxC,8xC,mCCAG,IAAMotQ,EAA8B,GAAIptQ,C,UAAAA,CAAIA,CAC/C,wmC,mCCDG,IAAMstQ,EAAuB,GAAIttQ,C,UAAAA,CAAIA,CACxC,gyC,mCCFG,IAAM6tQ,EAAwB,GAAI7tQ,C,UAAAA,CAAIA,CACzC,09C,mCCAG,IAAMgU,EAAmB,GAAIhU,C,UAAAA,CAAIA,CACpC,w4B,mCCDG,IAAMkU,EAA2B,GAAIlU,C,UAAAA,CAAIA,CAC5C,g7B,mCCDG,IAAMsU,EAAwB,GAAItU,C,UAAAA,CAAIA,CACzC,wkC,mCCDG,IAAMoU,EAA8B,GAAIpU,C,UAAAA,CAAIA,CAC/C,szC,sECAG,IAAMghJ,EAAwCo5I,CAAAA,EAAAA,EAAAA,UAAAA,EAAW,SAAet0Q,CAAkB,CAAE+zE,CAAmC,EAClI,MACO,UAAC18D,QAAAA,CAAO,GAAGrX,CAAK,CAAE6iE,UAAW,CAAC,eAAe,EAAE7iE,EAAM6iE,SAAS,CAAC,CAAC,CAAEkR,IAAKA,CAAAA,EAClF,E,2DCHA,IAAMmhM,EAAY,oCACL9Z,EAA2Dp7P,IACpE,GAAI,CAACk1Q,EAAU5nT,IAAI,CAAC0yC,EAAMppC,IAAI,EAC1B,MAAM,MAAU,CAAC,qFAAqF,EAAEopC,EAAMppC,IAAI,CAAC,aAAa,CAAC,EAGrI,MACI,UAAC0tN,OAAAA,CAAKzhH,UAAU,iCAAiCkhE,YAAU,4BAA4B7rH,MAAO,CAAEJ,OAAQ9X,EAAMppC,IAAI,CAAEm7E,MAAO/xC,EAAMppC,IAAK,WAClI,UAACu+S,MAAAA,CAAItyM,UAAU,2BAA2BkhE,YAAU,sBAAsBqxI,MAAM,6BAA6BC,OAAQr1Q,EAAMwkL,MAAM,CAAE8wF,oBAAoB,WAAWC,QAAQ,uBACtK,UAACC,SAAAA,CAAO3yM,UAAU,4BAA4B4yM,GAAG,KAAKC,GAAG,KAAK9lO,EAAE,OAAOu5I,KAAK,OAAOwsF,gBAAgB,0BAA0BC,YAAY,GAAG,EAAH,IAIzJ,CAEAxa,CAAAA,EAAe12P,WAAW,CAAG,gB,2DCftB,IAAM02H,EAAuEp7H,GAE5E,UAACskL,OAAAA,CAAKzhH,UAAW,CAAC,iCAAiC,EAAE7iE,EAAM6iE,SAAS,CAAC,CAAC,CAAEkhE,YAAU,qCAC9E,UAACoxI,MAAAA,CAAItyM,UAAU,2BAA2BkhE,YAAU,sBAAsBqxI,MAAM,6BAA6BE,oBAAoB,WAAWC,QAAQ,uBAChJ,UAACC,SAAAA,CAAO3yM,UAAU,4BAA4B4yM,GAAG,KAAKC,GAAG,KAAK9lO,EAAE,OAAOu5I,KAAK,OAAOwsF,gBAAgB,0BAA0BC,YAAY,GAAG,EAAH,I,sECHlJ,IAAM1xF,EAA8DlkL,IACvE,IAAM61Q,EAAoB,CACtBC,gBAAiB91Q,EAAMvyB,IAAI,CAAC+2M,MAChC,EAEA,MACI,UAAC/zI,UAAAA,CAAQmlN,aAAY51P,EAAMvoC,SAAS,UAChC,WAACqsK,MAAAA,CAAI5rH,MAAO29P,EAAmBhzM,UAAU,aAAakhE,YAAU,mBAC5D,UAAC7pJ,EAAAA,CAAIA,CAAJA,CAAKu1H,OAAQzvG,EAAMvyB,IAAI,CAAC45E,IAAI,CAAEwb,UAAU,mBAAmBsmH,KAAMnpL,EAAMvyB,IAAI,CAAC+2M,MAAM,GACnF,UAAC1gD,MAAAA,CAAIjhE,UAAU,+BAAuB7iE,EAAM6tI,QAAQ,OAIpE,C,mCCfO,IAAM2rH,EAA2B,CACpCh1E,OAAQ,uBACRn9H,KAAM+9M,E,OAAAA,CACV,C,mCCHO,IAAMxgN,EAAiC,CAC1C4/H,OAAQ,qBACRn9H,KAAM34D,E,OAAAA,CACV,C,mCCHO,IAAMi2D,EAA6B,CACtC6/H,OAAQ,wBACRn9H,KAAM2tN,E,MAAAA,CACV,C,kCCHO,IAAMvqL,EAA6B,CACtC+5F,OAAQ,wBACRn9H,KAAM4tN,E,OAAAA,CACV,C,sGCJA,K,OAAA,GAAU,+jB,SCOH,IAAMxrB,EAAuDzpP,GAE5D,UAAC2nQ,EAAAA,CAAUA,CAAVA,CAAY,GAAG3nQ,CAAK,CAAE+nQ,YAAa,CAAC,EAAEwH,EAAAA,CAAeA,CAACC,QAAQ,CAAC,0BAA0B,CAAC,CAAE1H,UAAU,uCAAuC7gJ,UAAU,sBACpJ,UAAC/sI,EAAAA,CAAIA,CAAJA,CAAK2oF,UAAW,CAAC,sBAAsB,EAAE7iE,CAAmB,IAAnBA,EAAMloC,QAAQ,CAAY,oCAAsC,GAAG,CAAC,CAAEisK,YAAU,qBAAqBt0B,OAAQqlK,EAAAA,CAAAA,EAAAA,E,kHCVnK,K,OAAA,GAAU,+eCUH,OAAMvnI,UAA8BwoI,EAAAA,aAAaA,CACnCC,WAA2C9yI,CAAAA,EAAAA,EAAAA,SAAAA,GACpD+yI,CAAAA,eACAC,CAAAA,KALgC,IAMvB/xK,CAAAA,IAAcxR,CAAAA,EAAAA,EAAAA,CAAAA,GAEdwjL,CAAAA,cAAwB9G,EAAAA,CAAUA,CAACv6S,SAAS,CAAC,kCAAmC,aAErFkrC,CAAkC,CAAE,CAC5C,KAAK,CAACA,GACN,IAAI,CAAC1W,KAAK,CAAG,CACT0/F,KAAM,EACV,EAEA,IAAI,CAACitL,eAAe,CAAG,IAAIG,EAAAA,CAAcA,CAAC,IAAI,CAACp2Q,KAAK,CAACq2E,QAAQ,CAAEG,EAAAA,CAAcA,CACjF,CAEO0wL,mBAA0B,CAC7B,GAAI,WAAI,CAAC8O,UAAU,CAAC7qM,OAAO,CACvB,OAGJ,IAAM83D,EAAU,IAAI,CAAC+yI,UAAU,CAAC7qM,OAAO,CAACkrM,UAAU,CAAC,KAEnC,QAAZpzI,GACA,KAAI,CAACizI,IAAI,CAAGjzI,CAAM,EAGtB,IAAI,CAACqzI,gBAAgB,GACrB,IAAI,CAACL,eAAe,CAACzuS,KAAK,CAAC,IAAI,CAAC+uS,QAAQ,CAACzrT,IAAI,CAAC,IAAI,EACtD,CAEO0rT,mBAAmBC,CAAsC,CAAQ,CAChE,IAAI,CAACR,eAAe,CAAChqM,WAAW,GAC5B,KAAI,CAACjsE,KAAK,CAACppC,IAAI,GAAK6/S,EAAU7/S,IAAI,EAAI,IAAI,CAACopC,KAAK,CAACvpC,KAAK,GAAKggT,EAAUhgT,KAAK,EAAI,IAAI,CAACupC,KAAK,CAACq2E,QAAQ,GAAKogM,EAAUpgM,QAAQ,EAAI,IAAI,CAACr2E,KAAK,CAACszI,KAAK,GAAKmjI,EAAUnjI,KAAK,IAChK,IAAI,CAAC2iI,eAAe,CAACS,IAAI,GACrB,IAAI,CAAC12Q,KAAK,CAACq2E,QAAQ,GAAKogM,EAAUpgM,QAAQ,EAC1C,KAAI,CAAC4/L,eAAe,CAAG,IAAIG,EAAAA,CAAcA,CAAC,IAAI,CAACp2Q,KAAK,CAACq2E,QAAQ,CAAEG,EAAAA,CAAcA,CAAAA,EAEjF,IAAI,CAACy/L,eAAe,CAACzuS,KAAK,CAAC,IAAI,CAAC+uS,QAAQ,CAACzrT,IAAI,CAAC,IAAI,IAGtD,IAAI,CAACyrT,QAAQ,CAAC,EAEtB,CAEOl1F,sBAA6B,CAChC,IAAI,CAAC40F,eAAe,CAACS,IAAI,EAC7B,CAEO9oJ,QAAuB,CAC1B,MACI,WAACkW,MAAAA,CAAIC,YAAU,yBAAyBlhE,UAAU,6BAA6B3qD,MAAO,CAAEJ,OAAQ,IAAI,CAAC9X,KAAK,CAACppC,IAAI,CAAEm7E,MAAO,IAAI,CAAC/xC,KAAK,CAACppC,IAAK,YACpI,UAAC+/S,SAAAA,CACGr4S,GAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC6lI,GAAG,CAAC,CAAC,CACxCthC,UAAU,qCACVkR,IAAK,IAAI,CAACiiM,UAAU,CACpBpgB,aAAY,IAAI,CAAC51P,KAAK,CAACvoC,SAAS,CAChCs6E,MAAO,IAAI,CAAC/xC,KAAK,CAACppC,IAAI,CACtBkhD,OAAQ,IAAI,CAAC9X,KAAK,CAACppC,IAAI,CACvBwjF,KAAK,KAAK,GAGd,WAAC0pF,MAAAA,CAAIjhE,UAAU,2DACX,UAAC9zF,IAAAA,CAAEg1J,YAAU,sBAAsBlhE,UAAU,6CACxC,IAAI,CAACv5E,KAAK,CAAC0/F,IAAI,GAEpB,UAACj6G,IAAAA,CAAEg1J,YAAU,yBAAyBlhE,UAAU,gDAC3C,IAAI,CAACszM,aAAa,QAKvC,CAEQI,SAASK,CAAqB,CAAQ,CAC1C,IAAMC,EAAQ,IAAI,CAAC72Q,KAAK,CAACvpC,KAAK,CAAG,IAAI,CAACupC,KAAK,CAACszI,KAAK,CAAI,IACrD,IAAI,CAACk2C,QAAQ,CAAEstF,IACX,IAAMC,EAAU,IAAI,CAAC/2Q,KAAK,CAACo0K,cAAc,CAAG,CAAC,EAAE1mK,KAAK67D,KAAK,CAACqtM,EAAgBC,GAAM,CAAC,CAAC,CAAG,CAAC,EAAEnpQ,KAAK67D,KAAK,CAACqtM,EAAgB,IAAI,CAAC52Q,KAAK,CAACvpC,KAAK,EAAE,CAAC,QACtI,EAAiBuyH,IAAI,GAAK+tL,EACf,KAEJ,CACH/tL,KAAM+tL,CACV,CACJ,GAEA,IAAI,CAACT,gBAAgB,GACrB,IAAI,CAACU,eAAe,CAAC,IAAI,CAACh3Q,KAAK,CAAC+mH,cAAc,CAAE6vJ,EACpD,CAEQN,kBAAyB,CAC7B,IAAI,CAACJ,IAAI,CAACe,SAAS,CAAC,EAAG,EAAG,IAAI,CAACj3Q,KAAK,CAACppC,IAAI,CAAE,IAAI,CAACopC,KAAK,CAACppC,IAAI,EAE1D,IAAI,CAACs/S,IAAI,CAACgB,SAAS,GACnB,IAAI,CAAChB,IAAI,CAACiB,GAAG,CAAC,IAAI,CAACn3Q,KAAK,CAACppC,IAAI,CAAG,EAAG,IAAI,CAACopC,KAAK,CAACppC,IAAI,CAAG,EAAG,IAAI,CAACopC,KAAK,CAACppC,IAAI,CAAG,EAAI,IAAI,CAACopC,KAAK,CAACm0K,SAAS,CAAE,EAAGzmK,EAAAA,KAAK0pQ,EAAE,EAC9G,IAAI,CAAClB,IAAI,CAAC/hG,SAAS,CAAG,IAAI,CAACn0K,KAAK,CAACm0K,SACjC,KAAI,CAAC+hG,IAAI,CAACmB,WAAW,CAAG,IAAI,CAACr3Q,KAAK,CAACq0K,YAAY,CAC/C,IAAI,CAAC6hG,IAAI,CAACb,MAAM,EACpB,CAEQ2B,gBAAgBxyF,CAAc,CAAEoyF,CAAqB,CAAQ,CACjE,IAAMU,EAAc,IAAM5pQ,KAAK0pQ,EAAE,CAI3BG,EAAcC,EAHK,KAAI,CAACx3Q,KAAK,CAACvpC,KAAK,CAAG,IAAI,CAACupC,KAAK,CAACszI,KAAK,EAE1B,IACG5lI,KAAK0pQ,EAAE,CAAI,IAGhD,IAAI,CAAClB,IAAI,CAACgB,SAAS,GACnB,IAAI,CAAChB,IAAI,CAACiB,GAAG,CAAC,IAAI,CAACn3Q,KAAK,CAACppC,IAAI,CAAG,EAAG,IAAI,CAACopC,KAAK,CAACppC,IAAI,CAAG,EAAG,IAAI,CAACopC,KAAK,CAACppC,IAAI,CAAG,EAAI,IAAI,CAACopC,KAAK,CAACm0K,SAAS,CAAEmjG,EAHlFA,EAAcC,EAG4F,IAC5H,IAAI,CAACrB,IAAI,CAAC/hG,SAAS,CAAG,IAAI,CAACn0K,KAAK,CAACm0K,SACjC,KAAI,CAAC+hG,IAAI,CAACmB,WAAW,CAAG7yF,EACxB,IAAI,CAAC0xF,IAAI,CAACb,MAAM,EACpB,CACJ,C,4FC7HA,K,OAAA,GAAU,iGCIH,IAAM/e,EAAmDt2P,IAC5D,IAAMizQ,EAAUxc,CAAAA,EAAAA,EAAAA,KAAAA,IACVghB,EAAcz3Q,KAAsB1vC,IAAtB0vC,EAAMy3Q,WAAW,CAAiBz3Q,EAAMy3Q,WAAW,CAAGC,EAAAA,CAAWA,CAACC,QAAQ,CAE9F,MACI,UAAC7zI,MAAAA,CAAIjhE,UAAU,kBAAkBzoB,KAAK,aAAaw7M,aAAY51P,EAAMxoC,KAAK,CAAE0gD,MAAO,CAAE0/P,cAAeH,CAAY,WAC3Gz3Q,EAAMtW,KAAK,CAACr2B,GAAG,CAAE8zB,GACd,UAAC0wR,EAAAA,CAAKA,CAALA,CAEGlgS,KAAMs7R,EACNpmT,MAAOs6B,EAAKt6B,KAAK,CACjBy+Q,WAAYtrO,EAAMsrO,UAAU,CAC5B/+J,WAAYvsE,EAAMusE,UAAU,CAC5BxxF,UAAWilB,EAAMnzC,KAAK,GAAKs6B,EAAKt6B,KAAK,CACrCq8B,SAAU8W,EAAM9W,QAAQ,UACvB/B,EAAK3vB,KAAK,EAPN2vB,EAAK7oB,EAAE,IAYhC,C,wBC1BYo5S,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,QAAAA,CAAAA,SAAAA,EAAAA,UAAAA,CAAAA,K,2DCEZ,K,OAAA,GAAU,wqECEH,IAAMG,EAA4D73Q,GAEjE,WAACxoC,QAAAA,CAAMqrG,UAAU,6BACb,UAACxrD,QAAAA,CACGwrD,UAAU,mBACVp1F,KAAK,QACLkK,KAAMqoB,EAAMroB,IAAI,CAChB9qB,MAAOmzC,EAAMnzC,KAAK,CAClBk3K,YAAU,cACV5tC,QAASn2F,EAAMjlB,SAAS,CACxBjjB,SAAUkoC,EAAMusE,UAAU,CAC1Bs0B,SAAU7gG,EAAMsrO,UAAU,CAC1BpiP,SAAWv8B,GAAUqzC,EAAM9W,QAAQ,CAACv8B,EAAMM,MAAM,CAACJ,KAAK,CAAC,GAE1DmzC,EAAM6tI,QAAQ,G,2GChB3B,QAAU,wYCGH,OAAMiqI,UAAa/B,EAAAA,aAAaA,CACnChlT,YAAYivC,CAAiB,CAAE,CAC3B,KAAK,CAACA,EACV,CAEO4tH,QAAuB,CAC1B,IAAImqJ,EAAa,kBACXn2M,EAAO,IAAI,CAAC5hE,KAAK,CAAC5nB,SAAS,GAAK4/R,EAAAA,CAAaA,CAACC,IAAI,CAAG,CAAC,EAAE,IAAI,CAACj4Q,KAAK,CAACinH,SAAS,CAAC,CAAC,CAAC,CAAG,GAClFl0C,EAAQ,IAAI,CAAC/yE,KAAK,CAAC5nB,SAAS,GAAK4/R,EAAAA,CAAaA,CAACE,KAAK,CAAG,CAAC,EAAE,IAAM,IAAI,CAACl4Q,KAAK,CAACinH,SAAS,CAAC,CAAC,CAAC,CAAG,GAQhG,OANI,IAAI,CAACjnH,KAAK,CAAC5nB,SAAS,GAAK4/R,EAAAA,CAAaA,CAACC,IAAI,EAAI,IAAI,CAACj4Q,KAAK,CAACinH,SAAS,CAAG,GACtE8wJ,GAAc,yBACP,IAAI,CAAC/3Q,KAAK,CAAC5nB,SAAS,GAAK4/R,EAAAA,CAAaA,CAACE,KAAK,EAAI,IAAI,CAACl4Q,KAAK,CAACinH,SAAS,CAAG,IAC9E8wJ,CAAAA,GAAc,yBAAwB,EAItC,WAACj0I,MAAAA,CAAIjhE,UAAU,WAAWvrG,MAAO,IAAI,CAAC0oC,KAAK,CAACmnH,OAAO,CAAE4c,YAAU,8BAC3D,UAACD,MAAAA,CACGjhE,UAAU,mBACVkhE,YAAU,cACV7rH,MAAO,CACHu+N,gBAAiB,IAAI,CAACz2O,KAAK,CAACinH,SAAS,EAAI,IAAI,CAACjnH,KAAK,CAACm4Q,YAAY,CAAC,EAAE,CAAG,IAAI,CAACn4Q,KAAK,CAAC+mH,cAAc,CAAG,IAAI,CAAC/mH,KAAK,CAACwkL,MAAM,CACnH5iH,KAAMA,EACNmR,MAAOA,CACX,CAAC,GAEL,UAACuxG,OAAAA,CACGzhH,UAAWk1M,EACXh0I,YAAU,aACV7rH,MAAO,CACH0pD,KAAMA,EACNmR,MAAOA,CACX,WACC,IAAI,CAAC/yE,KAAK,CAACxoC,KAAK,KAIjC,CACJ,CC1CA,QAAU,8iBCMH,OAAMyuJ,UAAoB8vJ,EAAAA,aAAaA,CAC1C,OAAcqC,aAAyC,CACnD5zF,OAAQ,OACR1sN,SAAU,GACVivJ,eAAgB,SACpB,CAEgB40D,CAAAA,eAAiD,aAErD37K,CAAwB,CAAE,CAClC,KAAK,CAACA,GACN,IAAI,CAAC27K,eAAe,CAAG,IAAI,CAAC08F,gBAAgB,CAACvtT,IAAI,CAAC,IAAI,CAC1D,CAEO0rT,mBAAmBC,CAAsC,CAAQ,CAChEA,EAAUzgO,GAAG,GAAK,IAAI,CAACh2C,KAAK,CAACg2C,GAAG,EAAI,IAAI,CAACh2C,KAAK,CAACnzC,KAAK,CAAG,IAAI,CAACmzC,KAAK,CAACg2C,GAAG,EACrE,IAAI,CAACqiO,gBAAgB,CAAC,CAAC,IAAI,CAACr4Q,KAAK,CAACg2C,GAAG,CAAC,EAGtCygO,EAAU1gO,GAAG,GAAK,IAAI,CAAC/1C,KAAK,CAAC+1C,GAAG,EAAI,IAAI,CAAC/1C,KAAK,CAACnzC,KAAK,CAAG,IAAI,CAACmzC,KAAK,CAAC+1C,GAAG,EACrE,IAAI,CAACsiO,gBAAgB,CAAC,CAAC,IAAI,CAACr4Q,KAAK,CAAC+1C,GAAG,CAAC,CAE9C,CAEO63E,QAAuB,CAC1B,IAAM55J,EAAS,CAAC,IAAI,CAACgsC,KAAK,CAACnzC,KAAK,CAAC,CAEjC,MACI,UAACi3K,MAAAA,CAAIjhE,UAAU,8BAA8BkhE,YAAW,CAAC,aAAa,EAAE,IAAI,CAAC/jI,KAAK,CAACnzC,KAAK,CAAC,CAAC,CAAEqrD,MAAO,CAAE0qN,QAAS,CAAC,EAAE,EAAE,IAAI,CAAC5iO,KAAK,CAAC2iH,UAAU,CAAG,EAAE,EAAE,CAAE,WAC7I,UAAC21J,EAAAA,KAAKA,CAALA,CACG7yS,KAAM,IAAI,CAACu6B,KAAK,CAACv6B,IAAI,CACrBswE,IAAK,IAAI,CAAC/1C,KAAK,CAAC+1C,GAAG,CACnBC,IAAK,IAAI,CAACh2C,KAAK,CAACg2C,GAAG,CACnBl+E,SAAU,IAAI,CAACkoC,KAAK,CAACloC,QAAQ,CAC7B9D,OAAQA,EACRk1B,SAAU,IAAI,CAACyyL,eAAe,CAC9B48F,YAAcC,GACV,WAAC10I,MAAAA,CAAIi9H,YAAayX,EAAMx4Q,KAAK,CAAC+gQ,WAAW,CAAE12I,aAAcmuJ,EAAMx4Q,KAAK,CAACqqH,YAAY,CAAExnD,UAAU,mBAAmB3qD,MAAO,CAAE,GAAGsgQ,EAAMx4Q,KAAK,CAACkY,KAAM,YAC1I,UAAC4rH,MAAAA,CAAIjhE,UAAU,mCACV,IAAI,CAAC7iE,KAAK,CAACumH,KAAK,CAAClzJ,GAAG,CAAEolT,GACnB,UAACX,EAAAA,CAEG1/R,UAAWqgS,EAAKxxJ,SAAS,EAAI,GAAK+wJ,EAAAA,CAAaA,CAACC,IAAI,CAAGD,EAAAA,CAAaA,CAACE,KAAK,CAC1EjxJ,UAAWwxJ,EAAKxxJ,SAAS,CACzBE,QAASsxJ,EAAKtxJ,OAAO,CACrB3vJ,MAAOihT,EAAKjhT,KAAK,CACjBgtN,OAAQ,IAAI,CAACxkL,KAAK,CAACwkL,MAAM,CACzBz9D,eAAgB,IAAI,CAAC/mH,KAAK,CAAC+mH,cAAc,CACzCoxJ,aAAcnkT,CAAAA,EAPTykT,EAAKn6S,EAAE,KAYxB,UAACwlK,MAAAA,CACG/vD,IAAKykM,EAAMx4Q,KAAK,CAAC+zE,GAAG,CACpBlR,UAAU,0BACVkhE,YAAU,qBACV7rH,MAAO,CACHwgQ,WAAYC,CAAAA,EAAAA,EAAAA,kBAAAA,EAAmB,CAC3BC,OAAQ,CAAC,IAAI,CAAC54Q,KAAK,CAAC+mH,cAAc,CAAE,IAAI,CAAC/mH,KAAK,CAACwkL,MAAM,CAAC,CACtDxuI,IAAK,IAAI,CAACh2C,KAAK,CAACg2C,GAAG,CACnBD,IAAK,IAAI,CAAC/1C,KAAK,CAAC+1C,GAAG,CACnB/hF,OAAQA,CACZ,EACJ,WACCwkT,EAAM3qI,QAAQ,MAI3BgrI,YAAcC,GACV,UAACh1I,MAAAA,CAEI,GAAGg1I,EAAM94Q,KAAK,CACf6iE,UAAU,0BACVkhE,YAAU,qBACV7rH,MAAO,CACH,GAAG4gQ,EAAM94Q,KAAK,CAACkY,KAAK,CACpB+tF,QAAS,IAAI,CAACjmG,KAAK,CAACloC,QAAQ,CAAG,OAAS,QACxCggD,OAAQ,IAAI,CAAC9X,KAAK,CAAC0iH,WAAW,CAC9B3wE,MAAO,IAAI,CAAC/xC,KAAK,CAAC2iH,UACtB,CAAC,EAAD,IAMxB,CAEQ01J,iBAAiBrkT,CAAqB,CAAQ,CAC9C,IAAI,CAACgsC,KAAK,CAACloC,QAAQ,EAInB,mBAAO,IAAI,CAACkoC,KAAK,CAAC9W,QAAQ,EAC1B,IAAI,CAAC8W,KAAK,CAAC9W,QAAQ,CAACl1B,CAAM,CAAC,EAAE,CAErC,CACJ,C,wBCzGYgkT,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,IAAAA,CAAAA,OAAAA,EAAAA,KAAAA,CAAAA,O,gHCEZ,K,OAAA,GAAU,47BCMH,IAAMvqI,EAAuDztI,IAChE,IAAM1hC,EAAKm4R,CAAAA,EAAAA,EAAAA,KAAAA,IAMX,MACI,WAAC3yH,MAAAA,CAAIjhE,UAAW,CAAC,EAAE7iE,KAAoB1vC,IAApB0vC,EAAM6iE,SAAS,CAAiB7iE,EAAM6iE,SAAS,CAAG,GAAG,kBAAkB,CAAC,CAAEkhE,YAAU,0BACnG,UAACugD,OAAAA,CAAKzhH,UAAU,wBAAwBvkG,GAAI,CAAC,6BAA6B,EAAEA,EAAG,CAAC,UAC3E0hC,EAAMm8H,iBAAiB,GAE5B,WAACmoD,OAAAA,CAAKzhH,UAAU,wBAAwBvkG,GAAI,2BAA6BA,EAAAA,SAAAA,CACpE0hC,EAAMhoB,aAAa,CAACgoB,EAAM27H,WAAW,CAACC,eAAe,CAAC,CAAC7pB,SAAS,CAAC,IAAE/xG,EAAMm8H,iBAAiB,IAE/F,UAACktD,EAAAA,CAAMA,CAANA,CACG3zK,UAAW1V,EAAM0V,SAAS,CAC1BpzC,MAAO09B,EAAM27H,WAAW,CACxB4tD,cAAevpL,EAAMg8H,cAAc,CACnC38C,QAASr/E,EAAMhoB,aAAa,CAC5B+gS,mBAAoB,CAAC,wBAAwB,EAAEz6S,EAAG,CAAC,CACnDgrN,QAAS,CAAC,6BAA6B,EAAEhrN,EAAG,CAAC,CAC7CsjN,aAAci1E,EAAAA,CAAUA,CACxBh/R,SAAUmoC,EAAM7T,SAAS,EAAEytJ,QAAU,0BAA0B,GAEnE,UAACryG,EAAAA,CAAMA,CAANA,CACG00F,SAvBesmC,IACvBviK,EAAMi8H,QAAQ,CAACsmC,EAAcviK,EAAMhoB,aAAa,CAACgoB,EAAM27H,WAAW,CAACC,eAAe,CAAC,CACvF,EAsBY1yI,SAAU8W,EAAM9W,QAAQ,CACxBq5K,aAAcviK,EAAMuiK,YAAY,CAChCjmC,iBAAkBt8H,EAAMs8H,gBAAgB,CACxCF,kBAAmBp8H,EAAMo8H,iBAAiB,CAC1CC,iBAAkBr8H,EAAMq8H,gBAAgB,KAIxD,C,wICzCA,K,OAAA,GAAU,kzECQH,IAAM90F,EAA2CvnC,IACpD,IAAMwlQ,EAAW3L,CAAAA,EAAAA,EAAAA,MAAAA,EAAyB,MAiB1C,MACI,WAAC/1H,MAAAA,CAAIjhE,UAAW,CAAC,EAAE7iE,KAAoB1vC,IAApB0vC,EAAM6iE,SAAS,CAAiB7iE,EAAM6iE,SAAS,CAAG,GAAG,WAAW,CAAC,CAAEkhE,YAAU,uBAC5F,WAACD,MAAAA,CAAIjhE,UAAU,6CACX,UAACq4D,EAAAA,CAAKA,CAALA,CACGnnD,IAAKyxL,EACL/3R,KAAK,SACL5gB,MAAOmzC,EAAMuiK,YAAY,CACzB10M,UAtBGlB,IACXA,EAAMY,GAAG,GAAKqkC,EAAAA,CAAIA,CAAC4vQ,KAAK,GACxBxhQ,EAAMi8H,QAAQ,CAACj8H,EAAMuiK,YAAY,EACjC51M,EAAMwB,cAAc,GAE5B,EAkBgB+6B,SAAWv8B,GAAUqzC,EAAM9W,QAAQ,CAACv8B,EAAMM,MAAM,CAACJ,KAAK,EACtDo3F,YAAajkD,EAAMikD,WAAW,CAC9B2xM,aAAY51P,EAAMq8H,gBAAgB,CAClC3mH,UAAW1V,EAAM0V,SAAS,CAC1B59C,SAAUkoC,EAAMloC,QAAQ,CACxBisK,YAAW/jI,EAAM7T,SAAS,EAAEkrB,OAAS,kBAAkB,GAE1DrX,EAAMuiK,YAAY,CAAC50M,MAAM,CAAG,GACzB,UAACyhT,EAAAA,CAAUA,CAAVA,CACGvsM,UAAW0sM,EAAAA,CAAeA,CAAC33S,QAAQ,CACnC63I,OAAQj1C,EAAAA,CAASA,CACjBgR,QA3BE,KAClBxrE,EAAM9W,QAAQ,CAAC,IACf8W,EAAMi8H,QAAQ,CAAC,IACU,OAArBupI,EAASr6L,OAAO,EAChBq6L,EAASr6L,OAAO,CAACp+G,KAAK,EAE9B,EAsBoB0K,UAAWuoC,EAAMs8H,gBAAgB,CACjCxkK,SAAUkoC,EAAMloC,QAAQ,CACxBD,SAAUmoC,EAAM7T,SAAS,EAAE+xK,aAAe,kBAAkB,GAAlB,GAItD,UAACkxG,EAAAA,CAAUA,CAAVA,CACGvsM,UAAW0sM,EAAAA,CAAeA,CAAC33S,QAAQ,CACnC63I,OAAQslK,EAAAA,CAAUA,CAClBvpM,QAAS,IAAMxrE,EAAMi8H,QAAQ,CAACj8H,EAAMuiK,YAAY,EAChD9qM,UAAWuoC,EAAMo8H,iBAAiB,CAClCtkK,SAAUkoC,EAAMloC,QAAQ,CACxBD,SAAUmoC,EAAM7T,SAAS,EAAE8xK,cAAgB,mBAAmB,GAAnB,EAI3D,C,0FC9DA,K,OAAA,GAAU,04ECIH,IAAM3wD,EAA+DttG,IACxE,IAAMi1F,EAAWwhK,CAAAA,EAAAA,EAAAA,KAAAA,IACjB,MACI,WAACuiB,WAAAA,CAASn2M,UAAW,CAAC,EAAE7iE,KAAoB1vC,IAApB0vC,EAAM6iE,SAAS,CAAiB7iE,EAAM6iE,SAAS,CAAG,GAAG,sBAAsB,CAAC,CAAEkhE,YAAU,8BAC5G,UAACk1I,SAAAA,CAAOp2M,UAAU,iCAAyB7iE,EAAMxoC,KAAK,GACrDwoC,EAAM3nB,OAAO,CAAChlB,GAAG,CAAEy9G,GAEZ,WAACgzD,MAAAA,CAAoBjhE,UAAU,2CAC3B,UAACxrD,QAAAA,CACGwrD,UAAU,wBACVvkG,GAAIwyG,EAAOxyG,EAAE,CAAG22H,EAChBt9G,KAAMs9G,EACNxnH,KAAK,QACLyb,SAAU4nF,EAAO5nF,QAAQ,CACzBgwR,eAAgBpoM,EAAOxgD,OAAO,CAC9Bx4D,SAAUkoC,EAAMloC,QAAQ,GAE5B,WAACN,QAAAA,CAAM0wS,QAASp3L,EAAOxyG,EAAE,CAAG22H,EAAUpyB,UAAU,yCAC5C,UAAC3oF,EAAAA,CAAIA,CAAJA,CAAKu1H,OAAQ3+B,EAAO2+B,MAAM,GAC3B,UAAC60E,OAAAA,CAAKzhH,UAAU,wBAAwBkhE,YAAU,wCAC7CjzD,EAAOt5G,KAAK,QAbfs5G,EAAOxyG,EAAE,GAkB3B,EAGZ,C,mSC9BO,SAAS66S,IACZ,MAAO,CACHh2R,OAAQ,GACR1V,KAAMouJ,EAAAA,CAAcA,CAACwjI,IACzB,CACJ,C,0BCRA,IAAI+Z,EAA+C,K,SCCnD,K,OAAA,GAAU,qgFCgBH,OAAM/vF,UAAwCzmD,EAAAA,SAASA,CAC1D,OAAcC,YAAyCC,EAAAA,CAAgB,CAEtDu2I,iBAAiDn2I,CAAAA,EAAAA,EAAAA,SAAAA,GACjDo2I,CAAAA,eAA8Cp2I,CAAAA,EAAAA,EAAAA,SAAAA,GAC9Cq2I,CAAAA,qBAAiDr2I,CAAAA,EAAAA,EAAAA,SAAAA,GACjDs2I,CAAAA,iBAA2B7mL,CAAAA,EAAAA,EAAAA,CAAAA,GAC3B8mL,CAAAA,QAAkB9mL,CAAAA,EAAAA,EAAAA,CAAAA,GAClB+mL,CAAAA,qBACAC,CAAAA,aAA2E,aAEhF35Q,CAA0B,CAAEijI,CAAyB,CAAE,CAC/D,KAAK,CAACjjI,GAEN,IAAI,CAAC05Q,qBAAqB,CAAG,IAAI,CAACE,yBAAyB,CAAC9uT,IAAI,CAAC,IAAI,EAErE,IAAI,CAAC6uT,aAAa,CAAGE,SCbaljT,CAOzC,EACG,IAAMguS,EAAiD,CACnDx9Q,KAAM,CACFqkF,QAASu3L,EAAAA,CACb,EACA91S,OAAQ,CACJ,CAAC2kC,EAAAA,CAAIA,CAAC0vQ,OAAO,CAAC,CAAEQ,EAAAA,CAAkBA,CAClC,CAAClwQ,EAAAA,CAAIA,CAAC2vQ,SAAS,CAAC,CAAEK,EAAAA,CAAcA,CAChC,CAAChwQ,EAAAA,CAAIA,CAACswQ,GAAG,CAAC,CAAEC,EAAAA,CAAcA,CAC1B,CAACvwQ,EAAAA,CAAIA,CAACwwQ,IAAI,CAAC,CAAEC,EAAAA,CAAeA,CAC5B,CAACzwQ,EAAAA,CAAIA,CAAC4vQ,KAAK,CAAC,CAAEe,EAAAA,CAASA,CACvB,CAAC3wQ,EAAAA,CAAIA,CAAC0wQ,MAAM,CAAC,CAAEC,EAAAA,CAASA,CACxB,CAAC3wQ,EAAAA,CAAIA,CAAC6vQ,KAAK,CAAC,CAAEc,EAAAA,CAASA,CACvBjyO,QAASkyO,CAAAA,EAAAA,EAAAA,CAAAA,EAAwB7rS,EAAOqrS,eAAe,EACvDtB,YAAa+B,EAAAA,CACjB,EACAvpQ,QAAS,CACL,CAACtH,EAAAA,CAAIA,CAAC0vQ,OAAO,CAAC,CAAE6X,EAChB,CAACvnR,EAAAA,CAAIA,CAAC2vQ,SAAS,CAAC,CAAE4X,EAClB,CAACvnR,EAAAA,CAAIA,CAAC4vQ,KAAK,CAAC,CAAEJ,EAAAA,CAAYA,CAC1B,CAACxvQ,EAAAA,CAAIA,CAAC6vQ,KAAK,CAAC,CAAEL,EAAAA,CAAYA,CAC1B51L,QAASk2L,EAAAA,CACb,CACJ,EAEA,OAAO,IAAIxD,EAAAA,CAAYA,CAA4CvnS,EAAOkoS,UAAU,CAAEloS,EAAOmoS,WAAW,CAAEnoS,EAAOooS,WAAW,CAAE,CAC1HG,iBAAkB,IAAIkB,EAAAA,CAAgBA,CAACuE,EAAoBhuS,EAAOkoS,UAAU,CAAEloS,EAAOmoS,WAAW,CAAEnoS,EAAOI,YAAY,EACrHioS,yBAA0B,CACtBiB,kBAAmB2E,EAAAA,CAAsCA,CACzD39I,UAAW,YACf,EACAg4I,gBAAiB,KACsB,OAA/BtoS,EAAOmoS,WAAW,CAAC3zL,OAAO,EAC1Bx0G,EAAOmoS,WAAW,CAAC3zL,OAAO,CAACp+G,KAAK,EAExC,EACAw8N,cAAe5yN,EAAO4yN,aAC1B,EACJ,EDhCoD,CACxCw1E,YAAa97H,EAAQ1zK,OAAO,CAC5BuvS,YAAa,IAAI,CAACwa,cAAc,CAChCviT,aAAc,IAAI,CAACipC,KAAK,CAAC19B,KAAK,CAC9B0/R,gBAAiB,CAAC76Q,EAAay8Q,IAAwBz8Q,EAAKt6B,KAAK,CAACsX,WAAW,GAAG83L,UAAU,CAAC2nG,GAC3Fr6E,cAAe,IAAI,CAACvpL,KAAK,CAACupL,aAAa,CACvCs1E,WAAY,IAAI,CAACwa,gBACrB,GAEA,IAAI,CAACM,aAAa,CAACva,WAAW,CAACvjI,EAAAA,CAAcA,CAAC2jI,qBAAqB,CAAE,KAC3B,OAAlC,IAAI,CAAC6Z,gBAAgB,CAACluM,OAAO,EAC7B,IAAI,CAACkuM,gBAAgB,CAACluM,OAAO,CAACp+G,KAAK,EAE3C,EACJ,CAEOm6S,mBAA0B,CAC7B,IAAI,CAACyS,aAAa,CAACr5Q,WAAW,CAAC,IAAI,CAACN,KAAK,CAAC19B,KAAK,CACnD,CAEOk0S,mBAAmBC,CAA8B,CAAQ,CACxDA,EAAUn0S,KAAK,GAAK,IAAI,CAAC09B,KAAK,CAAC19B,KAAK,EACpC,IAAI,CAACq3S,aAAa,CAACr5Q,WAAW,CAAC,IAAI,CAACN,KAAK,CAAC19B,KAAK,EAI/C,IAAI,CAAC09B,KAAK,CAAC19B,KAAK,CAACs5J,eAAe,GAAK66I,EAAUn0S,KAAK,CAACs5J,eAAe,EACpE,WAAI,CAAC09I,cAAc,CAACnuM,OAAO,EAC3B,WAAI,CAACouM,oBAAoB,CAACpuM,OAAO,EAEjCqoM,CAAAA,EAAAA,EAAAA,CAAAA,EAAsB,IAAI,CAAC8F,cAAc,CAACnuM,OAAO,CAAE,IAAI,CAACouM,oBAAoB,CAACpuM,OAAO,CAE5F,CAEOk2G,sBAA6B,CAChC,IAAI,CAACs4F,aAAa,CAACj4P,OAAO,EAC9B,CAEOksG,QAAsB,CACzB,IAAMk8D,EAAW,KAAkBx5N,IAAlB,IAAI,CAAC0vC,KAAK,CAAC1hC,EAAE,CAAiB,IAAI,CAAC0hC,KAAK,CAAC1hC,EAAE,CAAG,IAAI,CAACk7S,gBAAgB,QACpF,EAAKxqI,CAASA,EAAI8qI,CFtEtB,OAAIV,EACOA,EAEXA,EAAwBrmT,OAAOshS,UAAU,CAAC,yCAD1C,EEoEiDv6K,OAAO,EAAKm1D,EAAAA,CAAYA,CAE7D,UAACnL,MAAAA,CAAIjhE,UAAU,sBACX,WAACihE,MAAAA,CAAIjhE,UAAU,uCACX,UAAC+2E,SAAAA,CACGt7K,GAAIwrN,EACJjnH,UAAU,4BACVntD,UAAW,IAAI,CAAC1V,KAAK,CAAC0V,SAAS,CAC/BsvP,kBAAiB,IAAI,CAAChlQ,KAAK,CAAC+4Q,kBAAkB,EAAI,CAAC,EAAE,IAAI,CAAC/4Q,KAAK,CAACspL,OAAO,CAAC,CAAC,EAAEQ,EAAS,CAAC,CACrFj9N,MAAO,IAAI,CAACmzC,KAAK,CAACq/E,OAAO,CAAC,IAAI,CAACr/E,KAAK,CAAC19B,KAAK,CAACs5J,eAAe,CAAC,CAAC/uK,KAAK,CACjEq8B,SAAU,IAAI,CAACwwR,qBAAqB,UACnC,IAAI,CAAC15Q,KAAK,CAACq/E,OAAO,CAAChsH,GAAG,CAAE8zB,GAEjB,UAAC1J,SAAAA,CAAO5wB,MAAOs6B,EAAKt6B,KAAK,UACpBs6B,EAAKt6B,KAAK,EADiBs6B,EAAKt6B,KAAK,EAIhD,GAEN,WAACikH,SAAAA,CAAOjO,UAAU,qBAAqBwoH,cAAa,GAAMlrM,SAAU,GAAC,UACjE,UAACmkM,OAAAA,CAAKzhH,UAAU,mCAA2B,IAAI,CAAC7iE,KAAK,CAAC4hL,YAAY,CAAC,IAAI,CAAC5hL,KAAK,CAACq/E,OAAO,CAAC,IAAI,CAACr/E,KAAK,CAAC19B,KAAK,CAACs5J,eAAe,CAAC,CAAC,GACxH,UAAC1hJ,EAAAA,CAAIA,CAAJA,CACG2oF,UAAW,CAAC,2BAA2B,EAAE,IAAI,CAAC7iE,KAAK,CAAC19B,KAAK,CAAC6gB,MAAM,EAAI,mCAAmC,CAAC,CACxGssH,OAAQ8zG,EAAAA,CAAAA,GAAAA,GAAAA,EAAAA,GAS5B,WAACz/E,MAAAA,CAAIjhE,UAAU,uBACX,WAACiO,SAAAA,CACGp7D,UAAW,IAAI,CAAC1V,KAAK,CAAC0V,SAAS,CAC/BmtD,UAAU,qBACVkR,IAAK,IAAI,CAACslM,gBAAgB,CAC1BrU,kBAAiB,IAAI,CAAChlQ,KAAK,CAAC+4Q,kBAAkB,EAAI,CAAC,EAAE,IAAI,CAAC/4Q,KAAK,CAACspL,OAAO,CAAC,CAAC,EAAEQ,EAAS,CAAC,CACrFxrN,GAAIwrN,EACJ28E,gBAAe,IAAI,CAACzmQ,KAAK,CAAC19B,KAAK,CAAC6gB,MAAM,CACtCwjR,gBAAe,IAAI,CAAC8S,OAAO,CAC3BjT,gBAAc,UACdziI,YAAW,IAAI,CAAC/jI,KAAK,CAACnoC,QAAQ,EAAI,iBAClC2zG,QAAS,IAAI,CAACmuM,aAAa,CAAC9lM,MAAM,CAAC36E,OAAO,CAACsyE,OAAO,CAClD39G,UAAY6nC,GAAqB,IAAI,CAACikR,aAAa,CAAC9lM,MAAM,CAAC36E,OAAO,CAACrrC,SAAS,CAAC6nC,EAAG,IAAI,CAACsK,KAAK,CAACq/E,OAAO,EAClG0hL,YAAa,IAAI,CAAC4Y,aAAa,CAAC9lM,MAAM,CAAC36E,OAAO,CAAC6nQ,WAAW,CAC1DtzR,KAAK,mBACL,UAAC62M,OAAAA,CAAKzhH,UAAU,mCAA2B,IAAI,CAAC7iE,KAAK,CAAC4hL,YAAY,CAAC,IAAI,CAAC5hL,KAAK,CAACq/E,OAAO,CAAC,IAAI,CAACr/E,KAAK,CAAC19B,KAAK,CAACs5J,eAAe,CAAC,CAAC,GACxH,UAAC1hJ,EAAAA,CAAIA,CAAJA,CAAK2oF,UAAW,CAAC,2BAA2B,EAAE,IAAI,CAAC7iE,KAAK,CAAC19B,KAAK,CAAC6gB,MAAM,EAAI,mCAAmC,CAAC,CAAEssH,OAAQ8zG,EAAAA,CAAAA,GAAAA,GAE5H,UAACz/E,MAAAA,CAAIjhE,UAAU,6BAA6B3qD,MAAO6uP,CAAAA,EAAAA,EAAAA,CAAAA,EAAe,IAAI,CAAC/mQ,KAAK,CAAC19B,KAAK,CAAC6gB,MAAM,EAAG4gJ,YAAU,iCAClG,UAACghI,KAAAA,CACGliM,UAAU,mBACVkhE,YAAU,cACVhwD,IAAK,IAAI,CAACulM,cAAc,CACxBh7S,GAAI,IAAI,CAACm7S,OAAO,CAChB5S,wBAAuB,CAAC,EAAE,IAAI,CAAC4S,OAAO,CAAC,CAAC,EAAE,IAAI,CAACz5Q,KAAK,CAAC19B,KAAK,CAACs5J,eAAe,CAAC,CAAC,CAC5EopI,kBAAiB,IAAI,CAAChlQ,KAAK,CAACspL,OAAO,CACnCnpM,SAAU,GACVi6D,KAAK,UACL8pN,OAAQ,IAAI,CAACyV,aAAa,CAAC9lM,MAAM,CAAC5mH,MAAM,CAACyzS,WAAW,CACpD7yS,UAAY6nC,IACR,IAAI,CAACikR,aAAa,CAAC9lM,MAAM,CAAC5mH,MAAM,CAACY,SAAS,CAAC6nC,EAAG,IAAI,CAACsK,KAAK,CAACq/E,OAAO,CACpE,WACC,IAAI,CAAC06L,WAAW,EAAE,EAAF,KAKrC,CAEQA,aAAkC,CACtC,OAAO,IAAI,CAAC/5Q,KAAK,CAACq/E,OAAO,CAAChsH,GAAG,CAAC,CAAC8zB,EAAMn3B,KACjC,IAAMwlK,EAAWxlK,IAAU,IAAI,CAACgwC,KAAK,CAAC19B,KAAK,CAACs5J,eAAe,CAE3D,MACI,UAACorI,KAAAA,CACGnkM,UAAU,wBAEVvkG,GAAI,CAAC,EAAE,IAAI,CAACm7S,OAAO,CAAC,CAAC,EAAEzpT,EAAM,CAAC,CAC9Bu3S,gBAAe/xI,EACfuO,YAAU,cACV3pF,KAAK,SACL25B,IAAKyhD,EAAW,IAAI,CAAC+jJ,oBAAoB,CAAGjpT,KAAAA,EAC5Ck7G,QAAU91E,GAAM,IAAI,CAACikR,aAAa,CAAC9lM,MAAM,CAAC1sF,IAAI,CAACqkF,OAAO,CAAC91E,EAAG1lC,GAAAA,SACzD,IAAI,CAACgwC,KAAK,CAAC4hL,YAAY,CAACz6L,EAAAA,EAPpBA,EAAKt6B,KAAK,CAU3B,EACJ,CAEQ+sT,0BAA0BjtT,CAAqC,CAAQ,CAC3E,IAAMgmL,EAAY,IAAI,CAAC3yI,KAAK,CAACq/E,OAAO,CAAC/sG,SAAS,CAAE6U,GAASA,EAAKt6B,KAAK,GAAKF,EAAMM,MAAM,CAACJ,KAAK,EAEtF8lL,EAAY,IACZ,IAAI,CAAC3yI,KAAK,CAACupL,aAAa,CAAC,CACrB,GAAG,IAAI,CAACvpL,KAAK,CAAC19B,KAAK,CACnBs5J,gBAAiB+W,CACrB,EAER,CACJ,C,sEE7KA,K,OAAA,GAAU,4bCEH,IAAM82C,EAA2CtiM,GACpD,WAACm9L,OAAAA,CAAKzhH,UAAU,kCACZ,UAAC3oF,EAAAA,CAAIA,CAAJA,CAAK2oF,UAAW,wBAAyB4sC,OAAQtoH,EAAKkgE,IAAI,CAAE8hI,KAAMhiM,EAAKgiM,IAAI,GAC5E,UAAC7E,OAAAA,CAAKzhH,UAAU,6BAA6BvrG,MAAO6vB,EAAKt6B,KAAK,UACzDs6B,EAAKt6B,KAAK,K,2DCNvB,K,OAAA,GAAU,8TCCH,IAAMg1N,EAA8C16L,GACvD,UAACm9L,OAAAA,CAAKzhH,UAAU,0CAA0CvrG,MAAO6vB,EAAKt6B,KAAK,CAAEk3K,YAAU,oCAClF58I,EAAKt6B,KAAK,E,2DCHnB,K,OAAA,GAAU,2PCCH,IAAMgqS,EAAmC1vQ,GAC5C,UAACm9L,OAAAA,CAAKzhH,UAAU,6BAA6BvrG,MAAO6vB,EAAKt6B,KAAK,UACzDs6B,EAAKt6B,KAAK,E,kFCEZ,IAAMioP,EAAuB,CAACvlP,EAAsBinK,KACvDx+J,CAAAA,EAAAA,EAAAA,CAAAA,EAAmC,CAC/BpB,KAAMC,EAAAA,CAAUA,CAACmjT,MAAM,CACvB1iT,MAAO+3S,EAAAA,CAAUA,CAACv6S,SAAS,CAAC,gCAC5Ba,UAAW,IAAM,gCAAmD7I,IAAI,CAAEsK,GAAWA,EAAO6iT,2BAA2B,EACvHljT,aAAc,CACVmjT,eAAgB1jJ,CACpB,EACAv/J,cAAe,CAAC8yB,EAAG5yB,KACfA,EAASzK,KAAK,CAAC6C,EACnB,EACAgI,QAAS,CACL,CACIC,MAAO63S,EAAAA,CAAUA,CAACv6S,SAAS,CAAC,iBAC5B2C,UAAW43S,EAAAA,CAAUA,CAACv6S,SAAS,CAAC,iBAChC4C,YAAaC,EAAAA,CAAWA,CAACC,QAAQ,CACjCE,SAAU,IAAM,GAChB3K,OAAQ,CAAC48B,EAAG5yB,KACRA,EAASzK,KAAK,CAAC6C,EACnB,CACJ,EAER,EACJ,C,2DC5BA,K,OAAA,GAAU,mRCEH,IAAMs1N,EAAqD7kL,GAE1D,UAAC8jI,MAAAA,CAAIjhE,UAAU,mBAAmBkhE,YAAW/jI,EAAMnoC,QAAQ,UACtDmoC,EAAMgpF,IAAI,E,4FCLvB,K,OAAA,GAAU,w6DCKH,IAAMm/K,EAAoFnoQ,IAC7F,IAAM6iE,EAAY7iE,EAAM7c,MAAM,CAAG,uCAAyC,oFACpEg3R,EAAkBn6Q,EAAMooQ,WAAW,CAAG,oCAAsC,GAElF,MACI,WAACM,EAAAA,CAAiBA,CAAjBA,CAAkB7lM,UAAW,CAAC,uBAAuB,EAAEs3M,EAAgB,CAAC,CAAE3pQ,SAAUxQ,EAAMwQ,QAAQ,CAAErtB,OAAQ6c,EAAM7c,MAAM,WACrH,WAACulR,EAAAA,CAAiBA,CAAC1iQ,MAAM,EAAC68D,UAAU,2CAChC,UAAC3oF,EAAAA,CAAIA,CAAJA,CAAK2oF,UAAWA,EAAW4sC,OAAQolK,EAAAA,CAAAA,GACpC,UAACvwF,OAAAA,CAAKzhH,UAAU,+CAAuC7iE,EAAMuQ,MAAM,MAEvE,UAACm4P,EAAAA,CAAiBA,CAACC,OAAO,EAAC9lM,UAAU,2CAAmC7iE,EAAM6tI,QAAQ,KAGlG,C,uGClBA,K,OAAA,GAAU,ssHCOH,OAAMH,UAAe9K,EAAAA,SAASA,CACjB+4C,eACCx3E,CAAAA,IAAcxR,CAAAA,EAAAA,EAAAA,CAAAA,GAAa,aAEhC3yF,CAAmB,CAAE,CAC7B,KAAK,CAACA,GACN,IAAI,CAAC27K,eAAe,CAAG,IAAI,CAACy+F,oBAAoB,CAACtvT,IAAI,CAAC,IAAI,CAC9D,CAEO8iK,QAAuB,CAC1B,MACI,WAACp2J,QAAAA,CAAMqrG,UAAU,oBAAoBqlM,QAAS,IAAI,CAAC/jK,GAAG,CAAE4/B,YAAU,yBAC9D,UAAC1sH,QAAAA,CACGwrD,UAAU,oBACVp1F,KAAK,WACLnP,GAAI,IAAI,CAAC6lI,GAAG,CACZ4/B,YAAU,eACV5tC,QAAS,IAAI,CAACn2F,KAAK,CAACjlB,SAAS,CAC7BjjB,SAAU,IAAI,CAACkoC,KAAK,CAACusE,UAAU,CAC/BrjF,SAAU,IAAI,CAACyyL,eAAe,GAElC,UAAC73C,MAAAA,CAAIjhE,UAAU,sBACX,UAACihE,MAAAA,CAAIjhE,UAAU,4BACX,UAACihE,MAAAA,CAAIjhE,UAAU,4BACX,UAAC3oF,EAAAA,CAAIA,CAAJA,CAAKu1H,OAAQhC,EAAAA,CAAQA,CAAE5qC,UAAU,uBAAuB,EAAvB,OAI9C,UAACyhH,OAAAA,CAAKzhH,UAAU,yBAAyBkhE,YAAU,6BAC9C,IAAI,CAAC/jI,KAAK,CAACxoC,KAAK,KAIjC,CAEQ4iT,qBAAqBztT,CAAoC,CAAQ,CACrE,IAAI,CAACqzC,KAAK,CAAC9W,QAAQ,CAACv8B,EAAMM,MAAM,CAACkpI,OAAO,CAC5C,CACJ,C,2DC7CA,K,OAAA,GAAU,2mECSH,IAAM6gK,EAAQjjS,OAAOkhB,MAAM,CCPuC+qB,IACrE,IAAM6iE,EAAY7iE,KAAqB1vC,IAArB0vC,EAAMq6Q,UAAU,CAAiB,YAAc,CAAC,UAAU,EAAEr6Q,EAAMq6Q,UAAU,CAAC,CAAC,CAEhG,MAAO,UAAChuO,QAAAA,CAAMw2B,UAAWA,EAAAA,SAAY7iE,EAAM6tI,QAAQ,EACvD,EDG8C,CAC1C7nI,OEV8DhG,GAE1D,UAACs6Q,QAAAA,CAAMz3M,UAAU,6BACb,UAAC03M,KAAAA,CAAAA,SAAIv6Q,EAAM6tI,QAAQ,KFQ3BmG,KGX4Dh0I,GACrD,UAACw6Q,QAAAA,CAAM33M,UAAU,2BAAmB7iE,EAAM6tI,QAAQ,GHWzDmqH,IIZ2Dh4P,GACpD,UAACu6Q,KAAAA,CAAG13M,UAAU,0BAAkB7iE,EAAM6tI,QAAQ,GJYrD4sI,UKbiEz6Q,GAC1D,UAAC06Q,KAAAA,CAAG73M,UAAU,iCAAyB7iE,EAAM6tI,QAAQ,GLa5DopH,KMd4Dj3P,GACrD,UAAC26Q,KAAAA,CAAG93M,UAAU,2BAAmB7iE,EAAM6tI,QAAQ,GNctD+sI,UOfiE56Q,GAC1D,UAAC26Q,KAAAA,CAAG93M,UAAU,kCAA0B7iE,EAAM6tI,QAAQ,GPe7DiqH,WQhBkE93P,GAC3D,UAAC06Q,KAAAA,CAAG73M,UAAU,kCAA0B7iE,EAAM6tI,QAAQ,GRgB7DgtI,gBSjBuE76Q,GAChE,UAAC06Q,KAAAA,CAAG73M,UAAU,kCAA0B7iE,EAAM6tI,QAAQ,ETiBjE,E,kCUjBO,OAAMuoI,EACD0E,UACSC,CAAAA,SACAC,CAAAA,eAETC,CAAAA,UACAC,CAAAA,QAAqE,aAEjE7kM,CAAgB,CAAE8kM,CAA8B,CAAE,CAC1D,IAAI,CAACJ,SAAS,CAAG1kM,EACjB,IAAI,CAAC2kM,eAAe,CAAGG,EAEvB,IAAI,CAACL,UAAU,CAAG,GAClB,IAAI,CAACG,UAAU,CAAG,GAElB,IAAI,CAACC,QAAQ,CAAG,IACpB,CAEO1zS,MAAM4zS,CAA0D,CAAQ,CACvE,IAAI,CAACnvM,WAAW,IAChB,IAAI,CAACyqM,IAAI,GAGb,IAAI,CAACwE,QAAQ,CAAGE,EAKhB,IAAI,CAACN,UAAU,CAAG55G,sBAAuBm6G,IACrC,IAAI,CAACJ,UAAU,CAAGI,EAClB,IAAI,CAACP,UAAU,CAAG55G,sBAAsB,IAAI,CAACo6G,YAAY,CAACxwT,IAAI,CAAC,IAAI,EACvE,EACJ,CAEO4rT,MAAa,CAChB6E,qBAAqB,IAAI,CAACT,UAAU,EAEpC,IAAI,CAACA,UAAU,CAAG,EACtB,CAEO7uM,aAAuB,CAC1B,OAAO,SAAI,CAAC6uM,UAAU,CAGlBQ,aAAaE,CAAqC,CAAQ,CAC9D,IAAM1qL,EAAWpjF,KAAKqoC,GAAG,CAAEylO,CAAAA,EAAmB,IAAI,CAACP,UAAAA,EAAc,IAAI,CAACF,SAAS,CAAE,GAC3EnE,EAAgB,IAAI,CAACoE,eAAe,CAAClqL,EAErB,QAAlB,IAAI,CAACoqL,QAAQ,EACb,IAAI,CAACA,QAAQ,CAACtE,EAAe9lL,GAG7BA,EAAW,EACX,IAAI,CAACgqL,UAAU,CAAG55G,sBAAsB,IAAI,CAACo6G,YAAY,CAACxwT,IAAI,CAAC,IAAI,GAEnE,IAAI,CAACgwT,UAAU,CAAG,EAE1B,CACJ,C,mCC7DO,SAAStkM,EAAesa,CAAgB,EAC3C,OAAOA,EAAW,GAAM,EAAIA,EAAWA,EAAWA,EAAW,EAAIpjF,KAAKu8D,GAAG,CAAC,GAAK6mB,EAAW,EAAG,GAAK,CACtG,C,0FCAA,K,OAAA,GAAU,seCMH,OAAMiqC,UAAuB6H,EAAAA,SAASA,CAClC15I,QACAr7B,CAAAA,SACAq2S,CAAAA,MAAsD,aAEjDlkQ,CAA2B,CAAE,CACrC,KAAK,CAACA,GAEN,IAAI,CAAC9W,QAAQ,CAAG,IAAI,CAAC29N,SAAS,CAAC/7P,IAAI,CAAC,IAAI,EACxC,IAAI,CAAC+C,SAAS,CAAG,IAAI,CAAC4tT,UAAU,CAAC3wT,IAAI,CAAC,IAAI,EAC1C,IAAI,CAACo5S,MAAM,CAAG,IAAI,CAACwX,OAAO,CAAC5wT,IAAI,CAAC,IAAI,EAEpC,IAAI,CAACw+B,KAAK,CAAG,CACTqyR,cAAe,GACf92P,MAAO,GACPh4D,MAAOmzC,KAAgB1vC,IAAhB0vC,EAAMnzC,KAAK,CAAiB,GAAKmzC,EAAMnzC,KAClD,CACJ,CAEO2pT,mBAAmBC,CAAyC,CAAQ,CACvE,GAAIA,EAAU5pT,KAAK,GAAK,IAAI,CAACmzC,KAAK,CAACnzC,KAAK,EAAI,IAAI,CAACmzC,KAAK,CAACnzC,KAAK,GAAK,IAAI,CAACy8B,KAAK,CAACz8B,KAAK,CAAE,CAC/E,IAAM+yI,EAAU,KAAqBtvI,IAArB,IAAI,CAAC0vC,KAAK,CAACnzC,KAAK,EAAiB,IAAI,CAACmzC,KAAK,CAAC4/F,OAAO,CAAC,IAAI,CAAC5/F,KAAK,CAACnzC,KAAK,EACpF,IAAI,CAAC28N,QAAQ,CAAC,CACV3kK,MAAO+6E,EACP/yI,MAAO,KAAqByD,IAArB,IAAI,CAAC0vC,KAAK,CAACnzC,KAAK,CAAiB,GAAK,IAAI,CAACmzC,KAAK,CAACnzC,KAC5D,EACJ,CACJ,CAEO+gK,QAAoB,CACvB,MACI,UAACv2G,QAAAA,CACGwrD,UAAW,CAAC,eAAe,EAAE,IAAI,CAAC7iE,KAAK,CAAC6iE,SAAS,CAAC,CAAC,EAAE,IAAI,CAACv5E,KAAK,CAACu7B,KAAK,CAAG,GAAK,+BAA+B,CAAC,CAC7GvmD,GAAI,IAAI,CAAC0hC,KAAK,CAAC1hC,EAAE,CACjBs3R,aAAY,IAAI,CAAC51P,KAAK,CAACvoC,SAAS,CAChCqvS,mBAAkB,IAAI,CAAC9mQ,KAAK,CAAC6rE,eAAe,CAC5Co8L,gBAAe,IAAI,CAACjoQ,KAAK,CAACloC,QAAQ,CAClCA,SAAU,IAAI,CAACkoC,KAAK,CAACloC,QAAQ,CAC7BR,MAAO,IAAI,CAAC0oC,KAAK,CAAC1oC,KAAK,CACvB4xB,SAAU,IAAI,CAACA,QAAQ,CACvBr8B,MAAO,IAAI,CAACy8B,KAAK,CAACz8B,KAAK,CACvBq3S,OAAQ,IAAI,CAACA,MAAM,CACnBr2S,UAAW,IAAI,CAACA,SAAS,CACzB+tT,eAAc,CAAC,IAAI,CAACtyR,KAAK,CAACu7B,KAAK,CAC/Bg3P,UAAW,IAAI,CAAC77Q,KAAK,CAAC67Q,SAAS,CAC/B7W,kBAAiB,IAAI,CAAChlQ,KAAK,CAACikI,cAAc,EAGtD,CAEQy3I,QAAQ/uT,CAAmC,CAAQ,CACvD,GAAI,IAAI,CAAC28B,KAAK,CAACqyR,aAAa,CAAE,CAC1B,IAAM/7K,EAAU,IAAI,CAAC5/F,KAAK,CAAC4/F,OAAO,CAACjzI,EAAMM,MAAM,CAACJ,KAAK,EACrD,IAAI,CAAC28N,QAAQ,CAAC,CAAE3kK,MAAO+6E,CAAQ,EACnC,CAE0BtvI,KAAAA,IAAtB,IAAI,CAAC0vC,KAAK,CAACkkQ,MAAM,EACjB,IAAI,CAAClkQ,KAAK,CAACkkQ,MAAM,CAACv3S,EAE1B,CAEQk6P,UAAUl6P,CAAoC,CAAQ,CAC1D,IAAI,CAAC68N,QAAQ,CAAC,CAAEmyF,cAAe,GAAM9uT,MAAOF,EAAMM,MAAM,CAACJ,KAAM,GAE/C,IAAI,CAACmzC,KAAK,CAAC4/F,OAAO,CAACjzI,EAAMM,MAAM,CAACJ,KAAK,GAGjD,IAAI,CAAC28N,QAAQ,CAAC,CAAE3kK,MAAO,EAAK,GAC5B,IAAI,CAAC7kB,KAAK,CAAC87Q,YAAY,CAACnvT,EAAMM,MAAM,CAACJ,KAAK,GAE1C,IAAI,CAACmzC,KAAK,CAAC+7Q,cAAc,CAACpvT,EAAMM,MAAM,CAACJ,KAAK,CAEpD,CAEQ4uT,WAAW9uT,CAAsC,CAAQ,CAC7D,GAAIA,EAAMY,GAAG,GAAKqkC,EAAAA,CAAIA,CAAC4vQ,KAAK,CAAE,CAC1B,IAAM5hK,EAAU,IAAI,CAAC5/F,KAAK,CAAC4/F,OAAO,CAAEjzI,EAAMM,MAAM,CAAsBJ,KAAK,EAC3E,IAAI,CAAC28N,QAAQ,CAAC,CAAE3kK,MAAO+6E,CAAQ,GAEJtvI,KAAAA,IAAvB,IAAI,CAAC0vC,KAAK,CAACg8Q,OAAO,EAClB,IAAI,CAACh8Q,KAAK,CAACg8Q,OAAO,CAACrvT,EAE3B,CACJ,CACJ,C,6DCvFO,SAASquK,EAAuC4H,CAA2B,EAE9E,OAAQ5iI,GAEA,UAACmkI,EAAAA,CAHqC,CAGrCA,CAAAA,SACG,UAACvB,EAAAA,CAAW,GAAG5iI,CAAK,IAIpC,C,mCCZO,IAAMkpQ,EAAiB,MAAO35S,EAAAA,KAAAA,GAAsB,CAAE45S,UAAAA,CAAS,CAAE96H,OAAAA,CAAM,CAAEh4D,SAAAA,CAAQ,CAAqB,GAGzG,GAF4BtjH,OAAOshS,UAAU,CAAC,oCAAoCv6K,OAAO,CAEhE,CACrB,IAAMmiM,EAA4C,CAAC,EAEnD,IAAK,IAAMC,KAAS/S,EAChBp1S,OAAOkhB,MAAM,CAACgnS,EAAaC,GAI/B,OADAnoT,OAAOkhB,MAAM,CAAC1lB,EAAQ2oD,KAAK,CAAE+jQ,GACtBn7I,QAAQ1vK,OAAO,EAC1B,CAEA,OAAO7B,EACF6mH,OAAO,CAAC+yL,EAAW,CAChB9yL,SAAUA,EACVg4D,OAAQA,EACR86C,KAAM,UACV,GACC76C,QAAQ,CAACxhL,IAAI,CAAE6nE,IACR7mE,SAASg1G,IAAI,CAAChzG,QAAQ,CAACP,KACvBolE,EAAEwnP,YAAY,GACdxnP,EAAE/sD,MAAM,GAEhB,EACR,C,iDC1BO,SAASm4L,EAA4BxtE,CAAsB,EAE9D,OAAO6pL,IAD6B1P,EAAAA,CAAuBA,CAACn6K,GAC7B5S,KAAK,EACxC,C,kDCHO,IAAMq6K,EAA+B,CAACzqS,EAA6B8kK,KACtE,GAAI9kK,OAAAA,EACA,OAGJ,IAAM8sT,EAAwBt8G,CAAAA,EAAAA,EAAAA,CAAAA,EAA4BxwM,GAC1D,OAAO8sT,OAAAA,EAAiCA,EAAsBtvT,KAAK,GAAKsnK,GAAUtnK,OACtF,C,+ECHO,OAAMuvT,EACT,OAAwBC,yBACpB,iLAEaC,CAAAA,qBAAoD,EACrE,CAAiBC,cAA6C,IAAI,CAACC,QAAQ,CAAC5xT,IAAI,CAAC,IAAI,CACpE6xT,CAAAA,gBAAkD,IAAI,CAAClB,UAAU,CAAC3wT,IAAI,CAAC,IAAI,CAC3E8xT,CAAAA,0BAAwD,IAAIn/Q,GAEtEq1F,CAAAA,KAAKP,CAAsB,CAAoD,CAAC,IAAD,EAAlDE,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAgC,KAWhE,OAVyC,IAArC,IAAI,CAAC+pL,oBAAoB,CAAC7uT,MAAM,EAChC,IAAI,CAACkvT,aAAa,GAGtB,IAAI,CAACL,oBAAoB,CAACpqT,IAAI,CAAC,CAC3BmgI,UAAWA,EACXE,UAAWA,CACf,GAEA,IAAI,CAACqqL,oBAAoB,GAClB,IAAM,IAAI,CAACC,WAAW,CAACxqL,EAClC,CAEQwqL,YAAYxqL,CAAsB,CAAQ,CAC9C,IAAMviI,EAAQ,IAAI,CAACwsT,oBAAoB,CAAClqS,SAAS,CAAE0qS,GAAcA,EAAUzqL,SAAS,GAAKA,GAEzF,GAAIviI,KAAAA,EACA,OAGJ,IAAMitT,EAAgB1qL,IAAc,IAAI,CAACiqL,oBAAoB,CAAC,IAAI,CAACA,oBAAoB,CAAC7uT,MAAM,CAAG,EAAE,CAAC4kI,SAAS,CAO7G,GANA,IAAI,CAACiqL,oBAAoB,CAACnqT,MAAM,CAACrC,EAAO,GAEnCuiI,EAAU2qL,WAAW,EACtB,IAAI,CAACN,yBAAyB,CAACzhT,MAAM,CAACo3H,GAGtC,IAAI,CAACiqL,oBAAoB,CAAC7uT,MAAM,CAAG,GAAKsvT,EAAe,CACvD,IAAI,CAACE,gCAAgC,GACrC,MACJ,CAEyC,IAArC,IAAI,CAACX,oBAAoB,CAAC7uT,MAAM,GAChC,IAAI,CAACyvT,gBAAgB,GACrB,IAAI,CAACC,6BAA6B,GAClC,IAAI,CAACT,yBAAyB,CAACxhP,KAAK,GAE5C,CAEQ+hP,kCAAyC,CAC7C,IAAM5qL,EAAY,IAAI,CAACiqL,oBAAoB,CAAC,IAAI,CAACA,oBAAoB,CAAC7uT,MAAM,CAAG,EAAE,CAAC4kI,SAAS,CACrF+qL,EAAkB,IAAI,CAACV,yBAAyB,CAACljT,GAAG,CAAC64H,GAE3D,GAAI+qL,KAAoBhtT,IAApBgtT,EAIJ,IAAK,IAAM/tT,KAAW+tT,EAClB/tT,EAAQH,eAAe,CAAC,cAEhC,CAEQiuT,+BAAsC,CAC1C,IAAK,IAAM5vT,KAAY,IAAI,CAACmvT,yBAAyB,CAAC5oT,MAAM,GACxD,IAAK,IAAMzE,KAAW9B,EAClB8B,EAAQH,eAAe,CAAC,cAGpC,CAEQytT,eAAsB,CAC1B/uT,SAASC,gBAAgB,CAAC,QAAS,IAAI,CAAC0uT,aAAa,CAAE,IAEvD3uT,SAASC,gBAAgB,CAAC,UAAW,IAAI,CAAC4uT,eAAe,CAC7D,CAEQS,kBAAyB,CAC7BtvT,SAASI,mBAAmB,CAAC,QAAS,IAAI,CAACuuT,aAAa,CAAE,IAC1D3uT,SAASI,mBAAmB,CAAC,UAAW,IAAI,CAACyuT,eAAe,CAChE,CAEQD,SAAS/vT,CAAiB,CAAQ,CACtC,IAAMqwT,EAAY,IAAI,CAACR,oBAAoB,CAAC,IAAI,CAACA,oBAAoB,CAAC7uT,MAAM,CAAG,EAAE,CAEjF,GAA4B,OAAxBqvT,EAAUvqL,SAAS,EAAauqL,EAAUvqL,SAAS,CAAC3iI,QAAQ,CAACnD,EAAMM,MAAM,GAIzE+vT,EAAUzqL,SAAS,CAACziI,QAAQ,CAACnD,EAAMM,MAAM,EAHzC,OAOJ,IAAMswT,EAAcx9G,CAAAA,EAAAA,EAAAA,CAAAA,EAA4Bi9G,EAAUzqL,SAAS,CAE/C,QAAhBgrL,GACAA,EAAYxwT,KAAK,EAEzB,CAEQ0uT,WAAW9uT,CAAoB,CAAQ,CAC3C,IAAM4lI,EAAY,IAAI,CAACiqL,oBAAoB,CAAC,IAAI,CAACA,oBAAoB,CAAC7uT,MAAM,CAAG,EAAE,CAAC4kI,SAAS,CAE3F,GAAI,CAACA,EAAUziI,QAAQ,CAACnD,EAAMM,MAAM,EAAkB,CAClDN,EAAMwB,cAAc,GACpB,IAAMovT,EAAcx9G,CAAAA,EAAAA,EAAAA,CAAAA,EAA4BxtE,EAC5B,QAAhBgrL,GACAA,EAAYxwT,KAAK,GAErB,MACJ,CAEA,GAAIJ,EAAMY,GAAG,GAAKqkC,EAAAA,CAAIA,CAAC4rR,GAAG,CACtB,OAGJ,IAAMC,EAAsB,IAAI/Q,EAAAA,CAAuBA,CAACn6K,GAExD,GAAI,CAAC5lI,EAAM62I,QAAQ,EAAI72I,EAAMM,MAAM,GAAKwwT,EAAoBllQ,IAAI,GAAI,CAChE5rD,EAAMwB,cAAc,GACpB,IAAMuvT,EAAeD,EAAoB99L,KAAK,EACzB,QAAjB+9L,GACAA,EAAa3wT,KAAK,GAEtB,MACJ,CAEA,GAAIJ,EAAM62I,QAAQ,EAAK72I,CAAAA,EAAMM,MAAM,GAAKslI,GAAa5lI,EAAMM,MAAM,GAAKwwT,EAAoB99L,KAAK,EAAC,EAAI,CAChGhzH,EAAMwB,cAAc,GACpB,IAAMwvT,EAAcF,EAAoBllQ,IAAI,EACxB,QAAhBolQ,GACAA,EAAY5wT,KAAK,GAErB,MACJ,CACJ,CAEQ+vT,sBAA6B,CAIjC,IAAMc,EAAsB,IAAI,CAACpB,oBAAoB,CAAC,IAAI,CAACA,oBAAoB,CAAC7uT,MAAM,CAAG,EAAE,CACrFkwT,EAAkB,IAAI,CAACrB,oBAAoB,CAAC,IAAI,CAACA,oBAAoB,CAAC7uT,MAAM,CAAG,EAAE,CACvF,IAAK,IAAM4B,KAAWzB,SAAS4B,gBAAgB,CAAC4sT,EAAaC,wBAAwB,EAAG,CACpF,GAAIsB,EAAgBtrL,SAAS,CAACziI,QAAQ,CAACP,GACnC,SAEJ,IAAMuuT,EAAcF,GAAqBrrL,UAAUziI,SAASP,KAAa,GAAOquT,EAAoBrrL,SAAS,CAAGzkI,SAASg1G,IAAI,CAC7HvzG,EAAQb,YAAY,CAAC,cAAe,QACpC,IAAMqvT,EAAe,IAAI,CAACnB,yBAAyB,CAACljT,GAAG,CAACokT,IAAgB,IAAIvjP,IAC5EwjP,EAAa7rT,GAAG,CAAC3C,GACjB,IAAI,CAACqtT,yBAAyB,CAACrgQ,GAAG,CAACuhQ,EAAaC,EACpD,CACJ,CACJ,CC5JO,IAAMlrL,EAA8B,IAAIypL,C,mCCHxC,SAAS0B,EAAYzuT,CAAoB,QAC5C,CACKA,EAAQ0uT,YAAY,CAAC,aAAgB1uT,CAAAA,EAAQ2uT,iBAAiB,EAAI,CAAC,QAAS,QAAS,UAAU,CAACvvS,QAAQ,CAACpf,EAAQsoH,OAAO,GAClH,EAGJtoH,EAAQ4wB,QACnB,C,mCCLA,IAAMg+R,EAA6B,CAAEl4K,QAAS,MAAO,EAE9C,SAAS8gK,EAAe5jR,CAAe,EAC1C,OAAOA,EAAS7yB,KAAAA,EAAY6tT,CAChC,C,4DCNA,IAAMC,EAAiB,IAAI3gR,IACvB4gR,EAAyB,GCD7B,SAASC,EAAqB/uT,CAAoB,EAC9C,MACOA,SAAAA,EAAQJ,YAAY,CAAC,gBAA8BI,EAA6CgvT,KAC3G,CAEA,IAAMC,EAAuC,CAAC,QAAS,SAAU,SAAU,WAE3E,CCFO,SAASC,EAA0BlvT,CAAoB,CAAEgjI,CAAsB,QAClF,EAA6B,KAAzByrL,CAAAA,EAAAA,EAAAA,CAAAA,EAAYzuT,IAIZmvT,SDH8BnvT,CAAoB,CAAEgjI,CAAsB,EAC9E,GAAI+rL,EAAqB/uT,IAAaA,CAA0C,IAA1CA,EAA6BuI,QAAQ,CACvE,MAAO,GAGX,IAAI6mT,EAAWpvT,EAAQ0gL,aAAa,CAEpC,KAAO0uI,IAAapsL,GAAaosL,OAAAA,GAAmB,CAChD,GAAIL,EAAqBK,IAIrBA,aAAoBC,qBAAuBD,EAAS7mT,QAAQ,EAAI0mT,EAAc7vS,QAAQ,CAACpf,EAAQsoH,OAAO,EAHtG,MAAO,GAOX8mM,EAAWA,EAAS1uI,aACxB,CACA,MAAO,EACX,EChB8B1gL,EAASgjI,IAI/BhjI,aAAmBsvT,kBAAoBtvT,UAAAA,EAAQke,IAAI,EAAgB,CAACqxS,SFXtCC,CAA6B,EAC/D,GAAIA,EAAY5oL,OAAO,CACnB,MAAO,GAGX,IAAM6oL,EAAkBD,EAAYjwQ,IAAI,EAAIhhD,SAASg1G,IAAI,CACnDm8M,EAAmBb,EAAe1kT,GAAG,CAACslT,IAAoB,CAAC,EAC7DE,EAAqBD,CAAgB,CAACF,EAAYpnS,IAAI,CAAC,CAE3D,GAAIunS,KAAuB5uT,IAAvB4uT,EAAkC,CAClC,IAAMC,EAAuB,CAAC,0BAA0B,EAAEC,IAAI9zT,MAAM,CAACyzT,EAAYpnS,IAAI,EAAE,UAAU,CAAC,CAC5Fk5H,EAAWkuK,OAAAA,EAAYjwQ,IAAI,CAAY,CAAC,EAAEqwQ,EAAqB,qBAAqB,CAAC,CAAG,CAAC,KAAK,EAAEA,EAAqB,CAAC,CAC5HD,EAAqBF,EAAgBz/R,aAAa,CAACsxH,GACnDouK,CAAgB,CAACF,EAAYpnS,IAAI,CAAC,CAAGunS,EACrCd,EAAe7hQ,GAAG,CAACyiQ,EAAiBC,EACxC,QAUA,IAPIZ,EAAyB,GACzBgB,eAAe,KACXjB,EAAehjP,KAAK,GACpBijP,EAAyB,EAC7B,IAGuB,OAAvBa,GAGGA,IAAuBH,CAClC,EElBkGxvT,KAIvF,CAAC+vT,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB/vT,EAC7B,CCfO,MAAMm9S,EACQ3qD,UACAw9D,CAAAA,kBAA4C,aAEjDhtL,CAAsB,CAAE,CAChC,IAAI,CAACwvH,UAAU,CAAGxvH,EAClB,IAAI,CAACgtL,kBAAkB,CAAGhtL,EAAU7iI,gBAAgB,CCV5B,qKDW5B,CAEOiwH,OAA4B,CAC/B,IAAK,IAAMpwH,KAAW,IAAI,CAACgwT,kBAAkB,CACzC,GAAId,EAA0BlvT,EAAS,IAAI,CAACwyP,UAAU,EAClD,OAAOxyP,EAIf,OAAO,IACX,CAEOgpD,MAA2B,CAC9B,IAAK,IAAI/nD,EAAI,IAAI,CAAC+uT,kBAAkB,CAAC5xT,MAAM,CAAG,EAAG6C,GAAK,EAAGA,IAAK,CAC1D,IAAMjB,EAAU,IAAI,CAACgwT,kBAAkB,CAAC/uT,EAAE,CAE1C,GAAIiuT,EAA0BlvT,EAAS,IAAI,CAACwyP,UAAU,EAClD,OAAOxyP,CAEf,CAEA,OAAO,IACX,CAEA,CAAQ,CAACwgS,OAAOyvB,QAAQ,CAAC,EAAkC,CACvD,IAAK,IAAMjwT,KAAW,IAAI,CAACgwT,kBAAkB,CACrCd,EAA0BlvT,EAAS,IAAI,CAACwyP,UAAU,GAClD,OAAMxyP,CAAM,CAGxB,CACJ,C,mCEpCO,SAAS+vT,EAAiB/vT,CAAoB,QACjD,EAAIA,CAAAA,YAAAA,EAAQsoH,OAAO,EAAkBtoH,EAAQ0gL,aAAa,YAAYwvI,kBAAiB,GAAK,CAAClwT,EAAQ0gL,aAAa,CAAC3kJ,IAAI,EAInH/7B,OAAAA,EAAQ+kF,YAAY,EAMpBm3K,WAAAA,iBAF4Bl8P,GAErBw1Q,UAAU,EAIdx1Q,IAAAA,EAAQ6kF,WAAW,EAAU7kF,IAAAA,EAAQ4kF,YAAY,C,mCCrBrD,SAASq/N,EAAsBkM,CAAwB,CAAEC,CAA8B,GACtFD,CAAAA,EAAYx1J,YAAY,EAAIw1J,EAAY5pM,YAAY,IAIpD6pM,EAAkB1rO,SAAS,CAAG0rO,EAAkBxrO,YAAY,CAAGurO,EAAY1rR,SAAS,CAAG0rR,EAAY5pM,YAAY,CAC/G4pM,EAAY1rR,SAAS,CAAG2rR,EAAkB1rO,SAAS,CAAG0rO,EAAkBxrO,YAAY,CAAGurO,EAAY5pM,YACvG,CAAW6pM,EAAkB1rO,SAAS,CAAGyrO,EAAY1rR,SAAS,EAC1D0rR,CAAAA,EAAY1rR,SAAS,CAAG2rR,EAAkB1rO,SAC9C,EACJ,C,qECHO,OAAM2rO,EACQC,mBAAiD,IAAIC,OACrDC,CAAAA,cAAkC,EACnD,CAAiBC,MAAgB,aAErBC,CAAc,CAAE,CACxB,IAAI,CAACD,MAAM,CAAGC,CAClB,CAEOC,SAAS1pJ,CAAmC,CAAExkI,CAAmB,CAAc,CAClF,IAAMmuR,EAAqB3pJ,EAAUnjK,GAAG,CAAEE,IACtC,IAAM6sT,EAAc,CAChBtuT,SAAUyB,EAASzB,QAAQ,CAC3BkgC,YAAaz+B,EAASy+B,WAAW,CACjC7+B,KAAMI,EAASJ,IAAI,CAACE,GAAG,CAAE9F,GAAQA,EAAI4W,WAAW,GACpD,EAGA,GADoB,IAAI,CAAC47S,aAAa,CAACz0Q,IAAI,CAAE+0Q,GAAqB,IAAI,CAACC,sBAAsB,CAACF,EAAYjtT,IAAI,CAAEktT,IAE5G,MAAM,MAAU,CAAC,aAAa,EAAE9sT,EAASJ,IAAI,CAAC,qBAAqB,CAAC,EAKxE,OAFA,IAAI,CAAC4sT,aAAa,CAAC3tT,IAAI,CAACguT,GACxB,IAAI,CAACP,kBAAkB,CAACtjQ,GAAG,CAAC6jQ,EAAapuR,GAClCouR,CACX,GAEA,MAAO,IAAM,IAAI,CAACG,YAAY,CAACJ,EACnC,CAEOK,YAAYrtT,CAA2B,CAAoB,CAC9D,OAAO,IAAI,CAAC4sT,aAAa,CAAClxT,IAAI,CAAE0E,GAAa,IAAI,CAAC+sT,sBAAsB,CAACntT,EAAMI,KAAc,IACjG,CAEOktT,mBAAqD,CACxD,IAAM3/J,EAAmD,CAAC,EACpD4/J,EAAkB,CACpB,CAAC9uR,EAAAA,CAAIA,CAACC,OAAO,CAAC1tB,WAAW,GAAG,CAAE,IAAI,CAAC67S,MAAM,CAAG3Q,EAAAA,CAAUA,CAACv6S,SAAS,CAAC,2BAA6Bu6S,EAAAA,CAAUA,CAACv6S,SAAS,CAAC,2BACnH,CAAC88B,EAAAA,CAAIA,CAAC0vQ,OAAO,CAACn9R,WAAW,GAAG,CAAEkrS,EAAAA,CAAUA,CAACv6S,SAAS,CAAC,4BACnD,CAAC88B,EAAAA,CAAIA,CAAC2vQ,SAAS,CAACp9R,WAAW,GAAG,CAAEkrS,EAAAA,CAAUA,CAACv6S,SAAS,CAAC,8BACrD,CAAC88B,EAAAA,CAAIA,CAAC+uR,SAAS,CAACx8S,WAAW,GAAG,CAAEkrS,EAAAA,CAAUA,CAACv6S,SAAS,CAAC,8BACrD,CAAC88B,EAAAA,CAAIA,CAACgvR,UAAU,CAACz8S,WAAW,GAAG,CAAEkrS,EAAAA,CAAUA,CAACv6S,SAAS,CAAC,8BAC1D,EAEA,IAAK,IAAMvB,KAAY,IAAI,CAACwsT,aAAa,CAAE,CACvC,IAAM/tR,EAAc,IAAI,CAAC6tR,kBAAkB,CAACnmT,GAAG,CAACnG,GAChD,GAAIy+B,KAAgB1hC,IAAhB0hC,EACA,SAGJ,IAAM6uR,EAAoC,CACtC7uR,YAAaz+B,EAASy+B,WAAW,CACjC7+B,KAAMI,EAASJ,IAAI,CAACE,GAAG,CAAE9F,IACrB,IAAMuzT,EAAiBJ,CAAe,CAACnzT,EAAI,CAC3C,OAAOuzT,KAAmBxwT,IAAnBwwT,EAA+BA,EAAiBvzT,CAC3D,EACJ,CAEIuzJ,MAAwBxwJ,IAAxBwwJ,CAAM,CAAC9uH,EAAY,CACnB8uH,CAAM,CAAC9uH,EAAY,CAAG,CAClBA,YAAaA,EACbwkI,UAAW,CAACqqJ,EAChB,EAEA//J,CAAM,CAAC9uH,EAAY,CAACwkI,SAAS,CAACpkK,IAAI,CAACyuT,EAE3C,CAEA,OAAO9sT,OAAOC,MAAM,CAAC8sJ,EACzB,CAEQy/J,aAAa/pJ,CAAmC,CAAQ,CAC5D,IAAK,IAAMjjK,KAAYijK,EAAW,CAC9B,IAAMxmK,EAAQ,IAAI,CAAC+vT,aAAa,CAAC3vT,OAAO,CAACmD,EAC3B,MAAVvD,GACA,IAAI,CAAC+vT,aAAa,CAAC1tT,MAAM,CAACrC,EAAO,EAEzC,CACJ,CAEQswT,uBAAuBntT,CAA2B,CAAEI,CAAmB,CAAW,QACtF,EAAS5F,MAAM,GAAK4F,EAASJ,IAAI,CAACxF,MAAM,EAC7B4F,EAASJ,IAAI,CAAC4xH,KAAK,CAAEx3H,GAAQ4F,EAAKwb,QAAQ,CAACphB,GAI1D,CACJ,CCnFO,MAAMwzT,EACQzX,QACA0W,CAAAA,MACAgB,CAAAA,QAAgC,EACjD,CAAiBC,sBAAwD,IAAI,CAACC,gBAAgB,CAACp2T,IAAI,CAAC,IAAI,CACvFq2T,CAAAA,aACAC,CAAAA,uBAAqC,IAAI,CAACC,iBAAiB,CAACv2T,IAAI,CAAC,IAAI,CAC9Ew2T,CAAAA,aAA8B,EAEtC,CAAiBC,WAA4B,CAAC3vR,EAAAA,CAAIA,CAAC2vQ,SAAS,CAAE3vQ,EAAAA,CAAIA,CAAC0vQ,OAAO,CAAE1vQ,EAAAA,CAAIA,CAACgvR,UAAU,CAAEhvR,EAAAA,CAAIA,CAAC+uR,SAAS,CAAC,CAACttT,GAAG,CAAE9F,GAAQA,EAAI4W,WAAW,GAAI,aAEjI5U,CAAoB,CAAE0wT,CAAc,CAAE,CAC9C,IAAI,CAAC3W,QAAQ,CAAG/5S,EAChB,IAAI,CAACywT,MAAM,CAAGC,EACd,IAAI,CAACkB,aAAa,CAAGlB,EAAQ,IAAI,CAACuB,iBAAiB,CAAC12T,IAAI,CAAC,IAAI,EAAI,IAAI,CAAC22T,cAAc,CAAC32T,IAAI,CAAC,IAAI,CAClG,CAEO42T,iBAAwB,CAC3B,IAAI,CAACpY,QAAQ,CAACv7S,gBAAgB,CAAC,UAAW,IAAI,CAACkzT,qBAAqB,EACpE,IAAI,CAAC3X,QAAQ,CAACv7S,gBAAgB,CAAC,QAAS,IAAI,CAACozT,aAAa,CAAE,IAC5DpuT,OAAOhF,gBAAgB,CAAC,OAAQ,IAAI,CAACqzT,sBAAsB,CAC/D,CAEOO,kBAAyB,CAC5B,IAAI,CAACrY,QAAQ,CAACp7S,mBAAmB,CAAC,UAAW,IAAI,CAAC+yT,qBAAqB,EACvE,IAAI,CAAC3X,QAAQ,CAACp7S,mBAAmB,CAAC,QAAS,IAAI,CAACizT,aAAa,CAAE,IAC/DpuT,OAAO7E,mBAAmB,CAAC,OAAQ,IAAI,CAACkzT,sBAAsB,CAClE,CAEOlvT,IAAIskK,CAAmC,CAAExkI,CAAmB,CAAc,CAC7E,IAAM4vR,EAAQ,IAAI,CAACC,gBAAgB,GACnC,GAAID,KAAUtxT,IAAVsxT,EACA,MAAM,MAAU,2CAGpB,OAAOA,EAAM1B,QAAQ,CAAC1pJ,EAAWxkI,EACrC,CAEO6pN,UAAuB,CAC1B,IAAM+lE,EAAQ,IAAIhC,EAAc,IAAI,CAACI,MAAM,EAG3C,OAFA,IAAI,CAACgB,OAAO,CAAC5uT,IAAI,CAACwvT,GAEX,KACH,IAAM5xT,EAAQ,IAAI,CAACgxT,OAAO,CAAC5wT,OAAO,CAACwxT,EACrB,MAAV5xT,GACA,IAAI,CAACgxT,OAAO,CAAC3uT,MAAM,CAACrC,EAAO,EAEnC,CACJ,CAEO+kP,oBAAsD,CACzD,IAAM6sE,EAAQ,IAAI,CAACC,gBAAgB,GACnC,OAAOD,KAAUtxT,IAAVsxT,EAAsB,EAAE,CAAGA,EAAMnB,iBAAiB,EAC7D,CAEQoB,kBAA8C,CAClD,OAAO,IAAI,CAACb,OAAO,CAAC,IAAI,CAACA,OAAO,CAACrzT,MAAM,CAAG,EAC9C,CAEQuzT,iBAAiBv0T,CAAoB,CAAQ,CACjD,IAAMi1T,EAAQ,IAAI,CAACC,gBAAgB,GACnC,GAAID,KAAUtxT,IAAVsxT,EACA,OAGJ,IAAMr0T,EAAM,IAAI,CAACyyT,MAAM,EAAIrzT,EAAMY,GAAG,GAAKqkC,EAAAA,CAAIA,CAACkwR,IAAI,CAAGlwR,EAAAA,CAAIA,CAACC,OAAO,CAAC1tB,WAAW,GAAKxX,EAAMY,GAAG,CAAC4W,WAAW,GAOvG,GANkB,IAAI,CAACm9S,YAAY,CAAC3yS,QAAQ,CAACphB,IAEzC,IAAI,CAAC+zT,YAAY,CAAClvT,IAAI,CAAC7E,GAIvBZ,EAAMo1T,MAAM,EAAI,IAAI,CAACT,YAAY,CAAC3zT,MAAM,EAAI,EAC5C,OAGJ,IAAM4F,EAAWquT,EAAMpB,WAAW,CAAC,IAAI,CAACc,YAAY,CACnC,QAAb/tT,IACA5G,EAAMwB,cAAc,GACpBoF,EAASzB,QAAQ,CAACnF,GAE1B,CAEQ80T,eAAe90T,CAAoB,CAAQ,CAC/C,IAAMY,EAAMZ,EAAMY,GAAG,CAAC4W,WAAW,GACjC,GAAI,IAAI,CAACm9S,YAAY,CAAC3yS,QAAQ,CAACphB,GAAM,CACjC,IAAMyC,EAAQ,IAAI,CAACsxT,YAAY,CAAClxT,OAAO,CAAC7C,GACxC,IAAI,CAAC+zT,YAAY,CAACjvT,MAAM,CAACrC,EAAO,EACpC,CACJ,CAEA,kBAI0BrD,CAAoB,CAAQ,CAClD,GAAIA,EAAMY,GAAG,GAAKqkC,EAAAA,CAAIA,CAACkwR,IAAI,CAAE,CACzB,IAAME,EAAapwR,EAAAA,CAAIA,CAACC,OAAO,CAAC1tB,WAAW,EAC3C,KAAI,CAACm9S,YAAY,CAAG,IAAI,CAACA,YAAY,CAAC1xT,MAAM,CAAErC,GACnCA,EAAII,MAAM,CAAG,GAAKJ,IAAQy0T,GAAc,CAAC,IAAI,CAACT,UAAU,CAAC5yS,QAAQ,CAACphB,IAE7E,MACJ,CAEA,IAAI,CAACk0T,cAAc,CAAC90T,EACxB,CAEQ00T,mBAA0B,CAC9B,IAAI,CAACC,YAAY,CAAC3zT,MAAM,CAAG,CAC/B,CACJ,CCtHO,IAAMs0T,EAAiC1yT,IAC1C,IAAMmsC,EAAU,IAAIqlR,EAAgBxxT,EAASolQ,UAAUC,SAAS,CAACjmP,QAAQ,CAAC,QAG1E,OAFA+sB,EAAQgmR,eAAe,GAEhBhmR,CACX,C,mCCLO,IAAM/J,EAAoCswR,CAAAA,EAAAA,E,OAAAA,CAAAA,EAA8Bn0T,SAAS60G,eAAe,C,qECChG,OAAMu/M,EACT,OAAcC,uBAAuBC,CAAiB,CAAW,CAC7D,MAAO,CAACF,EAAqBG,2BAA2B,CAACD,EAC7D,CAEA,OAAeC,4BAA4BD,CAAiB,CAAW,CACnE,OAAOF,EAAqBI,qBAAqB,CAACF,IAAcF,EAAqBK,iCAAiC,CAACH,EAC3H,CAEA,OAAeE,sBAAsBF,CAAiB,CAAW,CAC7D,OACIF,EAAqBM,aAAa,CAAC,GAAIJ,IACtCF,EAAqBO,gBAAgB,CAAC,GAAI,GAAIL,IAAeF,CAAAA,EAAqBQ,SAAS,CAACN,IAAcF,EAAqBS,qBAAqB,CAACP,EAAS,EAIvK,OAAeG,kCAAkCH,CAAiB,CAAW,QACzE,EAAyBQ,YAAY,CAACR,GAC3B,CAACF,EAAqBW,0BAA0B,CAAC,GAAI,GAAI,EAAGT,GAEhEF,EAAqBY,gBAAgB,CAACV,IAAcF,EAAqBa,yBAAyB,CAAC,GAAIX,IAAc,CAACF,EAAqBa,yBAAyB,CAAC,GAAIX,EACpL,CAEA,OAAeI,cAAcQ,CAAa,CAAEZ,CAAiB,CAAW,CAGpE,MAAOtoM,CADSsoM,EAAU9zS,KAAK,CADjB,mDAC4B,CAAC,GAAI,GAAG,CACpC,CAAC,EAAE,GAAKyqE,OAAOiqO,EACjC,CAEA,OAAeP,iBAAiBO,CAAa,CAAEC,CAAa,CAAEb,CAAiB,CAAW,CAEtF,IAAMtoM,EAAUsoM,EAAU9zS,KAAK,CADjB,+DAC4B,CAAC,GAAI,GAAI,GAAG,CACtD,OAAOwrG,CAAO,CAAC,EAAE,GAAK/gC,OAAOiqO,IAAUlpM,CAAO,CAAC,EAAE,GAAK/gC,OAAOkqO,EACjE,CAEA,OAAeP,UAAUN,CAAiB,CAAW,CAEjD,MAAOc,uBAAY51T,IAAI,CAAC80T,IAAc,CAACF,EAAqBY,gBAAgB,CAACV,EACjF,CAEA,OAAeO,sBAAsBP,CAAiB,CAAW,CAE7D,MAAO7xT,gGAAMjD,IAAI,CAAC80T,EACtB,CAEA,OAAeU,iBAAiBV,CAAiB,CAAW,CACxD,MAAO,eAAe90T,IAAI,CAAC80T,IAAc,CAACF,EAAqBiB,cAAc,CAACf,EAClF,CAEA,OAAee,eAAef,CAAiB,CAAW,CACtD,MACO,wBAAwB90T,IAAI,CAAC80T,EACxC,CAEA,OAAeW,0BAA0BC,CAAa,CAAEZ,CAAiB,CAAW,CAIhF,OAAOntD,SADkB3mP,CADX8zS,EAAU9zS,KAAK,CADf,+BAC0B,CAAC,GAAI,GAAG,CAClB,CAAC,EAAE,CAAE,KACjB00S,CACtB,CAEA,OAAeJ,aAAaR,CAAiB,CAAW,CACpD,MAAO,cAAc90T,IAAI,CAAC80T,EAC9B,CAEA,OAAeS,2BAA2BG,CAAa,CAAEC,CAAa,CAAEG,CAAa,CAAEhB,CAAiB,CAAW,CAE/G,IAAM9zS,EAAQ8zS,EAAU9zS,KAAK,CADf,2CAC0B,CAAC,GAAI,GAAI,GAAI,GAAG,CAClD+0S,EAAephS,SAAS3T,CAAK,CAAC,EAAE,CAAE,IAClCg1S,EAAerhS,SAAS3T,CAAK,CAAC,EAAE,CAAE,IAClCi1S,EAAethS,SAAS3T,CAAK,CAAC,EAAE,CAAE,WACxC,IAAqB00S,EACVK,EAAeL,EAEtBM,IAAiBL,EACVK,EAAeL,EAEnBM,GAAgBH,CAC3B,CACJ,CC/EO,MAAM57L,EACT,OAAuBg8L,WAAqB,YAAa,QAClCC,iBAA2B,mBAAoB,QAExD/pT,KAAc,CACxB,IAAM2iD,EAASC,EAAAA,CAAWA,CAAC5iD,GAAG,CAAC8tH,EAAWg8L,UAAU,EAC9CE,EAAepnQ,EAAAA,CAAWA,CAAC5iD,GAAG,CAAC8tH,EAAWi8L,gBAAgB,SAEhE,OAAIpnQ,GAIAqnQ,OAAAA,GAAyB,IAAIjgT,KAAKigT,EAAa72T,KAAK,EAAE+0D,OAAO,GAAK,KAAUn+C,KAAKq4C,GAAG,GAH7E0rE,EAAWm8L,OAAO,GAOtBtnQ,EAAOxvD,KAClB,CAEA,OAAe82T,SAAkB,CAC7B,IAAMzgN,EAAQ0gN,WCrBlB,IAAMC,EAAaC,OADGA,MAAM,CACFC,eAAe,CAAC,IAAIC,YAF1B,KAGdC,EAAU,mEAEZ/gN,EAAQ,GAEZ,IAAK,IAAI1yG,EAAI,EAAGA,EAPI,GAOaA,IAC7B0yG,GAAS+gN,CAAO,CAACJ,CAAU,CAACrzT,EAAE,CAAGyzT,EAAQt2T,MAAM,CACnD,CAEA,OAAOu1G,CACX,IDaQ,OADAskB,EAAW08L,IAAI,CAAChhN,GACTA,CACX,CAEA,OAAeghN,KAAKhhN,CAAa,CAAQ,CAErC,IAAMshF,EAAS,IAAI/gL,KAAKA,KAAKq4C,GAAG,GADnB,MAGPqoQ,EAAgC,CAClC3/H,OAAQA,EACRx4K,KAAM,IACN2wC,OAAQ,EACZ,EAEIulQ,EAAqBC,sBAAsB,CAACpvT,OAAO4hQ,SAAS,CAACC,SAAS,GACtEuvD,CAAAA,EAAc3nQ,QAAQ,CAAGC,EAAAA,CAAQA,CAAC2nQ,IACtC,EAEA,IAAMC,EAAc7/H,EAAOqI,WAAW,GACtCvwI,EAAAA,CAAWA,CAACC,GAAG,CAACirE,EAAWg8L,UAAU,CAAEtgN,EAAOihN,GAC9C7nQ,EAAAA,CAAWA,CAACC,GAAG,CAACirE,EAAWi8L,gBAAgB,CAAEY,EAAaF,EAC9D,CACJ,C,kBE/CO,SAASG,EAAwC/2T,CAAW,CAAEV,CAAU,EAC3E,GAAIU,KAAAA,GAAc,CAAC,SAASD,IAAI,CAACC,GAC7B,OAAOV,CAIX,KAAI,CADiBU,EAAImvF,MAAM,CAAC,GAAGv4E,WAAW,GAAK5W,EAAIkC,KAAK,CAAC,GAC3C,CAAG5C,CACzB,C,iBCJO,IAAM8kO,EAAsCoZ,GACvCvxO,GACGA,EAASwvH,IAAI,GAAGl8H,IAAI,CAAEk8H,GAAiB+hH,ECD3C5rL,KAAKC,KAAK,CDCoE4pE,ECD7Ds7L,I,gDCJhBC,E,YAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,GAAAA,CAAAA,MAAAA,EAAAA,IAAAA,CAAAA,OAAAA,EAAAA,IAAAA,CAAAA,OAAAA,EAAAA,GAAAA,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA,SAAAA,EAAAA,KAAAA,CAAAA,OCEL,OAAMC,EACO,CAACz0B,OAAO00B,WAAW,CAAC,CAAW,SAC/B33T,CAAAA,IACA6E,CAAAA,KACAC,CAAAA,OACAC,CAAAA,KAAkB,aAEtBb,CAA0B,CAAEa,CAAiB,CAAE,CACvD,IAAI,CAAC/E,IAAI,CAAGkE,EAAQlE,IAAI,CAAChC,IAAI,CAACkG,GAC9B,IAAI,CAACW,KAAK,CAAGX,EAAQW,KAAK,CAAC7G,IAAI,CAACkG,GAChC,IAAI,CAACY,OAAO,CAAGZ,EAAQY,OAAO,CAAC9G,IAAI,CAACkG,GACpC,IAAI,CAACa,KAAK,CAAGA,CACjB,CAEO6yT,eAAsC,CACzC,OAAO,IAAI,CAAC53T,IAAI,CAAE0M,GAAaA,EAASmrT,WAAW,GACvD,CAEOC,QAAwB,CAC3B,OAAO,IAAI,CAAC93T,IAAI,CAAE0M,GAAaA,EAASqrT,IAAI,GAChD,CAEOC,QAAwB,CAC3B,OAAO,IAAI,CAACh4T,IAAI,CAAE0M,GAAaA,EAASkvM,IAAI,GAChD,CAEOq8G,QAA0B,CAC7B,OAAO,IAAI,CAACj4T,IAAI,CAAE0M,GAAaA,EAASwvH,IAAI,GAChD,CACJ,CC3BO,MAAMg8L,EACQC,aACTC,CAAAA,QAAkB,aAEdC,CAAqC,CAAE,CAC/C,IAAI,CAACF,aAAa,CAAGE,EACrB,IAAI,CAACD,QAAQ,CAAG,EACpB,CAEOE,aAAaC,CAAkC,CAAqB,CACvE,IAAIC,EAAkBD,EACtB,IAAK,IAAME,KAAe,IAAI,CAACN,aAAa,CACxCK,EAAkBA,EAAgBx4T,IAAI,CAAE0M,GAAa,IAAI,CAACgsT,SAAS,CAAChsT,EAAU+rT,GAAel0T,GAAoB,IAAI,CAACo0T,OAAO,CAACp0T,EAAQk0T,IAG1I,OAAOD,CACX,CAEA,MAAaI,YAAYC,CAAyC,CAAyB,CACvF,IAAIC,EAAc,MAAMD,EACxB,IAAK,IAAMJ,KAAe,IAAI,CAACN,aAAa,CACxCW,EAAc,MAAM,IAAI,CAACC,QAAQ,CAACD,EAAaL,GAEnD,OAAOK,CACX,CAEO/zT,OAAc,CACjB,IAAI,CAACqzT,QAAQ,CAAG,EACpB,CAEQW,SAASh5T,CAAmB,CAAE04T,CAA6B,CAAwC,CAIvG,OAHI,IAAI,CAACL,QAAQ,EACb,IAAI,CAACY,gBAAgB,CAAC,+BAEnBP,KAAwBj1T,IAAxBi1T,EAAY75R,OAAO,CAAiB65R,EAAY75R,OAAO,CAAC7+B,GAASA,CAC5E,CAEQ24T,UAAU34T,CAAe,CAAE04T,CAA6B,CAAwC,CAIpG,OAHI,IAAI,CAACL,QAAQ,EACb,IAAI,CAACY,gBAAgB,CAAC,8BAEnBP,KAAyBj1T,IAAzBi1T,EAAY/rT,QAAQ,CAAiB+rT,EAAY/rT,QAAQ,CAAC3M,GAASA,CAC9E,CAEQ44T,QAAQ/zT,CAAkB,CAAE6zT,CAA6B,CAAwC,CAIrG,GAHI,IAAI,CAACL,QAAQ,EACb,IAAI,CAACY,gBAAgB,CAAC,8BAEtBP,KAA8Bj1T,IAA9Bi1T,EAAYQ,aAAa,CACzB,OAAOR,EAAYQ,aAAa,CAACr0T,EAErC,OAAMA,CACV,CAEQo0T,iBAAiB7lR,CAAe,CAAS,CAC7C,IAAMnV,EAAQ,MAAUmV,EAExB,OADAnV,EAAMnT,IAAI,CAAG,aACPmT,CACV,CACJ,CCrDO,MAAMk7R,EACQC,eACAC,CAAAA,iBAEjBn1T,aAAYo1T,CAA4C,CAAE,CACtD,IAAI,CAACD,iBAAiB,CAAG,EACzB,KAAI,CAACD,eAAe,CAAGD,EAAYI,qBAAqB,GAEzB91T,KAAAA,IAA3B61T,GACA,KAAI,CAACF,eAAe,CAAG,CACnB,GAAG,IAAI,CAACA,eAAe,CACvB,GAAGE,CAAsB,CACzBrmT,QAAS,IAAI,CAACumT,aAAa,CAAC,IAAI,CAACJ,eAAe,CAACnmT,OAAO,CAAEqmT,EAAuBrmT,OAAO,CAC5F,EAER,CAEA,OAAcsmT,uBAAsC,CAChD,IAAMtmT,EAAU,IAAIwmT,QAGpB,OAFAxmT,EAAQ60B,MAAM,CAAC,eAAgB,oBAExB,CACH4xR,YAAa,cACbzmT,QAASA,EACTD,OAAQ0kT,EAAWiC,GAAG,CACtB76R,QAAS,EACT/tB,IAAK,EACT,CACJ,CAEOzC,OAAOyC,CAAW,CAAE6V,CAA6B,CAAyB,CAC7E,OAAO,IAAI,CAACgzS,YAAY,CAAC,IAAI,CAACC,aAAa,CAACjzS,EAAS7V,EAAK2mT,EAAWoC,MAAM,EAC/E,CAEOjtT,IAAIkE,CAAW,CAAE6V,CAA6B,CAAyB,CAC1E,OAAO,IAAI,CAACgzS,YAAY,CAAC,IAAI,CAACC,aAAa,CAACjzS,EAAS7V,EAAK2mT,EAAWiC,GAAG,EAC5E,CAEOppB,KAAKx/R,CAAW,CAAE6V,CAA6B,CAAyB,CAC3E,OAAO,IAAI,CAACgzS,YAAY,CAAC,IAAI,CAACC,aAAa,CAACjzS,EAAS7V,EAAK2mT,EAAWqC,IAAI,EAC7E,CAEO3rT,MAAS2C,CAAW,CAAEpM,CAAO,CAAEiiB,CAA6B,CAAyB,CACxF,OAAO,IAAI,CAACozS,oBAAoB,CAAC,IAAI,CAACH,aAAa,CAACjzS,EAAS7V,EAAK2mT,EAAWuC,KAAK,EAAGt1T,EACzF,CAEO+H,KAAQqE,CAAW,CAAEpM,CAAO,CAAEiiB,CAA6B,CAAyB,CACvF,OAAO,IAAI,CAACozS,oBAAoB,CAAC,IAAI,CAACH,aAAa,CAACjzS,EAAS7V,EAAK2mT,EAAW59B,IAAI,EAAGn1R,EACxF,CAEO8I,IAAOsD,CAAW,CAAEpM,CAAO,CAAEiiB,CAA6B,CAAyB,CACtF,OAAO,IAAI,CAACozS,oBAAoB,CAAC,IAAI,CAACH,aAAa,CAACjzS,EAAS7V,EAAK2mT,EAAWwC,GAAG,EAAGv1T,EACvF,CAEOk6B,QAAQ7rB,CAAkB,CAAEjC,CAAW,CAAEpM,CAAe,CAAEiiB,CAA6B,CAAyB,CACnH,OAAO,IAAI,CAACgzS,YAAY,CAAC,IAAI,CAACC,aAAa,CAACjzS,EAAS7V,EAAKiC,GAASrO,EACvE,CAEOw1T,oBAAoBC,CAAiC,CAAQ,CAEhE,GAAIj3T,KADU,IAAI,CAACk2T,iBAAiB,CAAC5zS,SAAS,CAAEizS,GAAgB0B,EAAgB3oT,EAAE,GAAKinT,EAAYjnT,EAAE,EAEjG,MAAM,MAAU,CAAC,oBAAoB,EAAE2oT,EAAgB3oT,EAAE,CAAC,sBAAsB,CAAC,EAGrF,IAAI,CAAC4nT,iBAAiB,CAAC9zT,IAAI,CAAC60T,EAChC,CAEOC,sBAAsB5oT,CAAU,CAAQ,CAC3C,IAAMtO,EAAQ,IAAI,CAACk2T,iBAAiB,CAAC5zS,SAAS,CAAEizS,GAAgBA,EAAYjnT,EAAE,GAAKA,EACrE,MAAVtO,GACA,IAAI,CAACk2T,iBAAiB,CAAC7zT,MAAM,CAACrC,EAAO,EAE7C,CAEQ62T,qBAAqBpzS,CAAqB,CAAEjiB,CAAc,CAAyB,CACvF,IAAM21T,EAAc31T,MAAAA,GAAuC,iBAAOA,EAAoBA,EAAO2tD,KAAKi1E,SAAS,CAAC5iI,GAC5G,OAAO,IAAI,CAACi1T,YAAY,CAAChzS,EAAS0zS,EACtC,CAEQV,aAAahzS,CAAqB,CAAEjiB,CAAsB,CAAyB,CACvF,IAAMyE,EAAa,IAAImxT,gBACjBC,EAASpxT,EAAWoxT,MAAM,CAC1BC,EAAoB,IAAItC,EAAkB,IAAI,CAACkB,iBAAiB,EAClEl1T,EAAiC8vK,QAAQ1vK,OAAO,CAACqiB,EAEjD,KAAI,CAACyyS,iBAAiB,CAACv4T,MAAM,CAAG,GAChCqD,CAAAA,EAAUs2T,EAAkB5B,WAAW,CAAC10T,EAAO,EAGnD,IAAIu2T,EAAev2T,EAAQlE,IAAI,CAAE06T,IAC7B,GAAIA,EAAe77R,OAAO,CAAG,EAAG,CAC5B,IAAMA,EAAU2E,WAAW,IAAMr6B,EAAWpE,KAAK,GAAI21T,EAAe77R,OAAO,EAC3E47R,EACK31T,OAAO,CAAC,IAAMw+B,aAAazE,IAC3Bh6B,KAAK,CAAC,KACHyoB,CAAAA,EAAAA,EAAAA,CAAAA,GACJ,EACR,CAEA,OAAOqtS,MAAMD,EAAe5pT,GAAG,CAAE,CAC7BklG,KAAMtxG,EACN+0T,YAAaiB,EAAejB,WAAW,CACvCzmT,QAAS0nT,EAAe1nT,OAAO,CAC/BD,OAAQ2nT,EAAe3nT,MAAM,CAC7BwnT,OAAQA,CACZ,GAAGv6T,IAAI,CAAE0M,IACL,GAAIA,EAAS2sB,MAAM,EAAI,KAAO3sB,EAAS2sB,MAAM,EAAI,IAC7C,OAAO3sB,CAGX,OAAMA,CACV,EACJ,GAMA,OAJI,IAAI,CAAC0sT,iBAAiB,CAACv4T,MAAM,CAAG,GAChC45T,CAAAA,EAAeD,EAAkBlC,YAAY,CAACmC,EAAY,EAGvD,IAAI/C,EAAqB+C,EAAc,KAC1CD,EAAkBz1T,KAAK,GACvBoE,EAAWpE,KAAK,EACpB,EACJ,CAEQ60T,cAAcjzS,CAAwC,CAAE7V,CAAW,CAAEiC,CAAkB,CAAgB,CAC3G,IAAM+lT,EAAcnyS,GAAW,CAAE,GAAG,IAAI,CAACwyS,eAAgB,EAEzD,MAAO,CACH,GAAG,IAAI,CAACA,eAAe,CACvB,GAAGL,CAAW,CACd9lT,QAAS,IAAI,CAACumT,aAAa,CAAC,IAAI,CAACJ,eAAe,CAACnmT,OAAO,CAAE8lT,EAAY9lT,OAAO,EAC7ED,OAAQA,EACRjC,IAAKA,CACT,CACJ,CAEQyoT,cAAcqB,CAAwB,CAAEC,CAAyB,CAAW,CAChF,IAAM7nT,EAAU,IAAIwmT,QAAQoB,GAM5B,OAJwBp3T,KAAAA,IAApBq3T,GACAA,EAAgB14T,OAAO,CAAC,CAAC24G,EAAKr6G,IAAQuS,EAAQy8C,GAAG,CAAChvD,EAAKq6G,IAGpD9nG,CACX,CACJ,C,mDC3JY8nT,CAAAA,CAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,IAAAA,CAAAA,e,eCML,IAAMC,EAAoC,CAC7CvpT,GAAIq0H,CAAAA,EAAAA,EAAAA,CAAAA,IACJjnG,QAAUk6R,IACNA,EAAY9lT,OAAO,CAAC60B,MAAM,CAACizR,EAAWE,IAAI,CAAEtgM,EAAAA,CAAUA,CAAC9tH,GAAG,IACnDksT,EAEf,ECRan9G,EAA4B,GAAIu9G,C,UAAAA,CAAc,CAE3Dv9G,EAAYu+G,mBAAmB,CAACa,E,0MCEzB,OAAMx/G,EACT,OAAcqpB,UAAqC/6N,CAA6C,CAAkC,CAC9H,OAAO0xM,EAAkB0/G,yBAAyB,CAAqBpxT,EAAQ,MACnF,CAEA,OAAcqxT,aAAwCrxT,CAA6C,CAAkC,CACjI,OAAO0xM,EAAkB0/G,yBAAyB,CAAqBpxT,EAAQ,SACnF,CAEA,OAAcsxT,UAA4CtxT,CAA6C,CAAiD,CACpJ,OAAO0xM,EAAkB6/G,sBAAsB,CAACvxT,EAAQ,MAC5D,CAEA,OAAcy7R,YAA8Cz7R,CAA6C,CAAiD,CACtJ,OAAO0xM,EAAkB6/G,sBAAsB,CAACvxT,EAAQ,QAC5D,CAEA,OAAc4lC,WAA6C5lC,CAA6C,CAAiD,CACrJ,OAAO0xM,EAAkB6/G,sBAAsB,CAACvxT,EAAQ,OAC5D,CAEA,OAAcwxT,gBAA2CxxT,CAAoD,CAAkC,CAC3I,OAAQyxT,QCwBa,MDvBbj2T,EACJ,IAAMyL,EAAMjH,EAAOiH,GAAG,CAACwqT,GAEvB,MAAO/+G,CAAAA,EAAAA,EAAAA,CAAAA,EAAM,EAAG1yM,EAAO0Q,QAAQ,EAAE8hB,IAAI,CACjCk/R,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAEAl2T,CADPA,EAAmBwE,EAAO6xM,IAAI,CAAC9uM,GAAG,CAACkE,EAAG,EACd9Q,IAAI,CAAC6J,EAAO49L,cAAc,CAAGzpK,GAAUu9K,EAAkBigH,oBAAoB,CAACx9R,EAAOn0B,EAAO2xM,WAAW,KCiBtH,EDfH3xM,EAAO4xT,SAAS,CCgBjC,QAAQ,SAAC,CAAM,CAAE,CAAU,EAChC,IAAI,EAAQ,EAAE,EACP,SAAS,CACd,QAAyB,EAAY,SAAC,CAAK,EACzC,IAAM,EAAS,EAAU,EAAO,KACP,EAAW,IAAI,CAAC,GAAO,GACrC,EAAW,QAAQ,EAAE,GAEnC,IDvBWhwQ,SEuCd,CAAgF,CAChF,CAAgB,EAEhB,IAAM,EAAkB,UAAU,MAAM,EAAI,EAAE,OACvC,SAAC,CAAqB,EAC3B,SAAO,IAAI,CACT,EAAU,QAAS,SAAC,CAAC,CAAE,CAAC,EAAK,SAAU,EAAG,EAAG,EAAO,GAAE,GAAU,CCtChE,QAAQ,SAAC,CAAM,CAAE,CAAU,EAKzB,IAAI,EAAc,EAAE,CAAC,EACd,SAAS,CACd,QACE,EACA,SAAC,CAAK,EAEJ,EAAO,IAAI,CAAC,GAAO,EAGX,EAAO,MAAM,EAAI,EAAO,KAAK,EAAE,EAEzC,uBAGE,IAAoB,kBAAM,8BAAE,CAAvB,IAAM,EAAK,QACd,EAAW,IAAI,CAAC,EAAM,CACvB,kGACD,EAAW,QAAQ,EAAE,EAGvB,OACA,WAEE,EAAS,IAAK,GAGnB,GDSH,EAAgB,QAAiB,GAAe,QAAe,WAAM,WAAI,GAAU,GACpF,KF/CWw/G,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,IAAM5lK,EAAiBN,KAAK,IACrCs5C,CAAAA,EAAAA,EAAAA,CAAAA,IAER,CACJ,CAEA,OAAe+8Q,uBACXvxT,CAA6C,CAC7C6xT,CAAoC,CACS,CAC7C,MAAO,CAAC11B,EAAiBs1B,KACrB,IAAIK,EAEJ,MAAOz7S,CAAAA,EAAAA,EAAAA,CAAAA,EAA0B,IAEtBy7S,CADPA,EAAmB9xT,EAAO6xM,IAAI,CAACggH,EAAW,CAAC7xT,EAAOiH,GAAG,CAACwqT,GAAYt1B,EAAQ,EAClDhmS,IAAI,CAAC6J,EAAO49L,cAAc,CAAGzpK,GAAUu9K,EAAkBigH,oBAAoB,CAACx9R,EAAOn0B,EAAO2xM,WAAW,IAChIn/K,IAAI,CACH4uI,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,IAAM0wJ,EAAiB52T,KAAK,IACrCs5C,CAAAA,EAAAA,EAAAA,CAAAA,IAER,CACJ,CAEA,OAAe48Q,0BAAqDpxT,CAA6C,CAAEkJ,CAAwB,CAAkC,CACzK,OAAQuoT,IACJ,IAAIK,EAEJ,MAAOz7S,CAAAA,EAAAA,EAAAA,CAAAA,EAA0B,KAC7B,IAAMpP,EAAMjH,EAAOiH,GAAG,CAACwqT,GAEvB,MAAOK,CADPA,EAAmB9xT,EAAO6xM,IAAI,CAAC3oM,EAAO,CAACjC,EAAG,EAClB9Q,IAAI,CAAC6J,EAAO49L,cAAc,CAAGzpK,GAAUu9K,EAAkBigH,oBAAoB,CAACx9R,EAAOn0B,EAAO2xM,WAAW,EACnI,GAAGn/K,IAAI,CACH4uI,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,IAAM0wJ,EAAiB52T,KAAK,IACrCs5C,CAAAA,EAAAA,EAAAA,CAAAA,IAER,CACJ,CAEA,aAAqBm9Q,qBAAqBx9R,CAAuB,CAAE49R,CAAoD,CAAkB,CACrI,GAAI59R,aAAiB0oC,SACjB,MAAM,MAAMk1P,EAAO59R,EAEvB,OAAMA,CACV,CACJ,C,2DIpFO,IAAM1Q,EAAO,KAAa,E,cCC1B,OAAMuuS,EACQC,gBACTC,CAAAA,gBAAiC,IACjCC,CAAAA,SAAmB,EACnBC,CAAAA,cAA+B,IAAK,aAEhCC,CAAoB,CAAE,CAC9B,IAAI,CAACJ,gBAAgB,CAAG,IAAIK,KAAKC,YAAY,CAACF,GAC9C,IAAI,CAACG,cAAc,EACvB,CAEOC,aAAav8T,CAAa,CAAU,CACvC,OAAO,IAAI,CAAC+7T,gBAAgB,CAAC5jN,MAAM,CAACn4G,EACxC,CAEA,YAGmBA,CAAa,CAAU,CACtC,GAAI,WAAI,CAACk8T,aAAa,EAAa,IAAI,CAACA,aAAa,CAACz7T,IAAI,CAACT,GACvD,OAAO0gD,IAGX,IAAIxwB,EAAW,WAAI,CAAC8rS,eAAe,CAAYh8T,EAAMiV,OAAO,CAAC,IAAI,CAAC+mT,eAAe,CAAE,IAAMh8T,EAEzF,OAAOioD,OADP/3B,EAAWA,EAASjb,OAAO,CAAC,IAAI,CAACgnT,QAAQ,CAAE,KAE/C,CAEQK,gBAAuB,CAC3B,IAAMr+M,EAAQ,IAAI,CAAC89M,gBAAgB,CAACS,aAAa,CAAC,gBAC9CC,EAAiB,GAErB,IAAK,IAAMpvM,KAAQpP,EACf,GAAIoP,UAAAA,EAAKzsG,IAAI,EAAgB,WAAI,CAACo7S,eAAe,CAC7CS,EAAiBpvM,EAAKrtH,KAAK,CAACiV,OAAO,CAAC,MAAO,KAC3C,IAAI,CAAC+mT,eAAe,CAAG,OAAW,CAAC,EAAE,EAAES,EAAe,KAAK,EAAEA,EAAe,CAAC,CAAC,CAAE,UAC7E,GAAIpvM,YAAAA,EAAKzsG,IAAI,EAAkB,SAAI,CAACq7S,QAAQ,CAAS,CACxD,IAAI,CAACA,QAAQ,CAAG5uM,EAAKrtH,KACrB,KAAI,CAACk8T,aAAa,CAAG,OAAW,CAAC,KAAK,EAAE7uM,EAAKrtH,KAAK,CAAC,KAAK,EAAEy8T,EAAe,QAAQ,EAAEA,EAAe,EAAE,EAAEpvM,EAAKrtH,KAAK,CAAC,OAAO,EAAEqtH,EAAKrtH,KAAK,CAAC,EAAE,EAAEy8T,EAAe,EAAE,CAAC,EAC3J,KACJ,CAER,CACJ,CC3CO,IAAMC,EAA2C,CACpDH,aAAc,KACV,MAAM,MAAU,oDACpB,EACAI,YAAa,KACT,MAAM,MAAU,oDACpB,CACJ,E,cCMO,OAAMC,EACUC,QAAe,gBAE1Bd,CAAAA,gBACAe,CAAAA,iBAA2B,EAC3BC,CAAAA,UAAoB,EAAG,aAG3BC,CAAoB,CACpBh2J,EAAuB,EAAI,CAC3Bi2J,CAA2E,CAC7E,CACE,IAAI,CAACJ,QAAQ,CAAGG,EAAev2J,cAAc,CAAC,CAC1CI,iBAAkB,IAClBq2J,UAAW,GACXp2J,YAAa,GACbq2J,cAAe,GACfp2J,cAAe,CACXC,YAAaA,EACb7uD,OAAQ,CAACn4G,EAAOm4G,IACZ,KAAqB10G,IAAjBw5T,GAA8B9kN,KAAW10G,IAAX00G,EACvB8kN,EAAa,IAAI,CAACJ,QAAQ,CAACv9B,QAAQ,CAAEt/R,EAAOm4G,GAGnD,iBAAOn4G,EACAA,EAGJ,GAEXinK,gBAAiB,EACrB,EACAL,gBAAiB,KACjBP,UAAW,CAAC,EACZiB,cAAe,GACfC,cAAe,EACnB,GAEA,IAAI,CAACs1J,QAAQ,CAACp2R,IAAI,GAAG3hC,KAAK,CAACyoB,GAC3B,IAAI,CAAC6vS,eAAe,CAAG,IAAIC,EAAAA,CAAcA,CAAiB,IAAI,CAACC,qBAAqB,CAACr/T,IAAI,CAAC,IAAI,GAC9F,IAAI,CAAC89T,gBAAgB,CAAGW,CAC5B,CAEOr3T,IAAI82T,CAAoB,CAAE/iM,CAAuC,CAAQ,CAE5E,OADA,IAAI,CAACgkM,eAAe,CAAC/3T,GAAG,CAACk4T,EAAAA,CAAgBA,CAACrxO,MAAM,CAAEiwO,EAAc/iM,GACzD,IACX,CAEO6uC,aAAsB,CACzB,OAAO,IAAI,CAAC80J,SAChB,CAEOS,oBAA6B,CAChC,OAAO,IAAI,CAACV,gBAChB,CAEOr/C,mBAAmB0+C,CAAoB,CAAQ,CAGlD,OAFA,IAAI,CAACW,gBAAgB,CAAGX,EACxB,IAAI,CAACU,QAAQ,CAACj2S,OAAO,CAACkgJ,WAAW,CAAGq1J,EAC7B,IACX,CAEOz+C,YAAYy+C,CAAoB,CAAQ,CAI3C,OAHA,IAAI,CAACY,SAAS,CAAGZ,EACjB,IAAI,CAACU,QAAQ,CAACY,cAAc,CAACtB,GAAcr3T,KAAK,CAACyoB,GACjD,IAAI,CAACwuS,gBAAgB,CAAGI,KAAAA,EAAsB,IAAIL,EAAgBK,GAAgBO,EAC3E,IACX,CAEOe,eAAetB,CAAoB,CAAiB,CACvD,IAAMuB,EAAkB,IAAI,CAACz1J,WAAW,GACxC,OAAO,IAAI,CAACy1G,WAAW,CAACy+C,GACnBzgQ,IAAI,GACJ52D,KAAK,CAAEm5B,IAEJ,MADA,IAAI,CAACy/O,WAAW,CAACggD,GACXz/R,CACV,EACR,CAEOh2B,UAAUvH,CAAqB,CAAEo+Q,CAAwC,CAAU,CACtF,OAAO,IAAI,CAAC+9C,QAAQ,CAAC91O,CAAC,CAAC,CAAC,EAAEw2O,EAAAA,CAAgBA,CAACrxO,MAAM,CAAC,CAAC,EAAExrF,EAAI,CAAC,CAAE,GAAIo+Q,EACpE,CAEO6+C,gBAA6Cj9T,CAAmB,CAAEo+Q,CAA+B,CAAU,CAC9G,OAAO,IAAI,CAAC+9C,QAAQ,CAAC91O,CAAC,CAAC,CAAC,EAAEw2O,EAAAA,CAAgBA,CAACrxO,MAAM,CAAC,CAAC,EAAExrF,EAAI,CAAC,CAAE,GAAIo+Q,EACpE,CAEOpjN,MAAmE,CAAC,IAAD,EAA9DygQ,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAuB,IAAI,CAACU,QAAQ,CAACv9B,QAAQ,QACrD,IAAQ,CAACu9B,QAAQ,CAACj2S,OAAO,CAACkgJ,WAAW,GAAKq1J,EAC/B,IAAI,CAACiB,eAAe,CAAC1hQ,IAAI,CAAC,IAAI,CAACmhQ,QAAQ,CAACj2S,OAAO,CAACkgJ,WAAW,EAAY/hK,OAAO,CAAC,IAC3E,IAAI,CAACq4T,eAAe,CAAC1hQ,IAAI,CAACygQ,IAIlC,IAAI,CAACiB,eAAe,CAAC1hQ,IAAI,CAACygQ,EACrC,CAEOI,aAAav8T,CAAa,CAAU,CACvC,OAAO,IAAI,CAAC+7T,gBAAgB,CAACQ,YAAY,CAACv8T,EAC9C,CAEO28T,YAAY38T,CAAa,CAAU,CACtC,OAAO,IAAI,CAAC+7T,gBAAgB,CAACY,WAAW,CAAC38T,EAC7C,CAEQs9T,sBAAsBnB,CAAoB,CAAEh2J,CAAiB,CAAEsB,CAAwB,CAAQ,CACnG,IAAI,CAACo1J,QAAQ,CAACz2J,iBAAiB,CAAC+1J,EAAch2J,EAAWsB,EAC7D,CACJ,CCrHO,MAAMm2J,EACOZ,cACRF,CAAAA,iBAA2B,EAC3BC,CAAAA,UAAoB,EACXc,CAAAA,YAAmE,IAAIjtR,GAAM,aAElFosR,CAAoB,CAAE,CAC9B,IAAI,CAACA,cAAc,CAAGA,CAC1B,CAEOc,OAAOrsT,CAAU,CAAEi+C,CAA2C,CAAQ,CAEzE,OADA,IAAI,CAACmuQ,WAAW,CAACnuQ,GAAG,CAACj+C,EAAIi+C,GAClB,IACX,CAEOukK,UAA6CxiN,CAAU,CAAEu1J,CAAqB,CAAe,CAChG,IAAM+2J,EAAU,IAAInB,EAAW,IAAI,CAACI,cAAc,CAAEh2J,GAKpD,OAHA+2J,EAAQtgD,kBAAkB,CAAC,IAAI,CAACq/C,gBAAgB,EAAEp/C,WAAW,CAAC,IAAI,CAACq/C,SAAS,EAE5E,IAAI,CAACc,WAAW,CAACnuQ,GAAG,CAACj+C,EAAIssT,GAClBA,CACX,CAEO91J,aAAsB,CACzB,OAAO,IAAI,CAAC80J,SAChB,CAEOS,oBAA6B,CAChC,OAAO,IAAI,CAACV,gBAChB,CAEOr/C,mBAAmB0+C,CAAoB,CAAQ,CAIlD,OAHA,IAAI,CAACW,gBAAgB,CAAGX,EACxB,IAAI,CAAC0B,WAAW,CAACz7T,OAAO,CAAE27T,GAAYA,EAAQtgD,kBAAkB,CAAC0+C,IAE1D,IACX,CAEOz+C,YAAYy+C,CAAoB,CAAQ,CAI3C,OAHA,IAAI,CAACY,SAAS,CAAGZ,EACjB,IAAI,CAAC0B,WAAW,CAACz7T,OAAO,CAAE27T,GAAYA,EAAQrgD,WAAW,CAACy+C,IAEnD,IACX,CAEA,MAAazgQ,KAAKygQ,CAAqB,CAAiB,CACpD,IAAMriT,EAAiC,EAAE,CACzC,IAAI,CAAC+jT,WAAW,CAACz7T,OAAO,CAAE27T,GAAYjkT,EAASvU,IAAI,CAACw4T,EAAQriQ,IAAI,CAACygQ,KACjE,MAAMloJ,QAAQh6J,GAAG,CAACH,EACtB,CAEO2jT,eAAetB,CAAoB,CAAiB,CACvD,IAAMriT,EAAiC,EAAE,CAEzC,OADA,IAAI,CAAC+jT,WAAW,CAACz7T,OAAO,CAAE27T,GAAYjkT,EAASvU,IAAI,CAACw4T,EAAQN,cAAc,CAACtB,KACpEloJ,QAAQh6J,GAAG,CAACH,GACd7Z,IAAI,CAAC,KACF,IAAI,CAAC88T,SAAS,CAAGZ,CACrB,GACCr3T,KAAK,CAAEm5B,IAEJ,MADA,IAAI,CAACy/O,WAAW,CAAC,IAAI,CAACq/C,SAAS,EACzB9+R,CACV,EACR,CACJ,CClEO,IAAM+1L,EAA4B,IAAI4pG,EAAY14J,EAAAA,EAAOA,C,yCCJpDq4J,CAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,MAAAA,CAAAA,Q,2CCGL,OAAMF,EACQW,WAA6D,IAAIptR,GACjEqtR,CAAAA,yBAA8F,aAEnGC,CAAoF,CAAE,CAC9F,IAAI,CAACD,yBAAyB,CAAGC,CACrC,CAEO74T,IAAI8gK,CAAiB,CAAEg2J,CAAoB,CAAE/iM,CAA0B,CAAQ,CAElF+kM,IAD+B,CAACC,sBAAsB,CAACjC,GACpC52T,IAAI,CAAC,CACpB4gK,UAAWA,EACX/sC,SAAUA,CACd,EACJ,CAEO19D,KAAKygQ,CAAoB,CAAiB,CAC7C,IAAMkC,EAAe,IAAI,CAACL,UAAU,CAACnxT,GAAG,CAACsvT,UACzC,KAAqB14T,IAAjB46T,EACOpqJ,QAAQ1vK,OAAO,GAGnB,IAAI,CAAC+5T,mBAAmB,CAACnC,EAAckC,EAClD,CAEQD,uBAAuBjC,CAAoB,CAAqC,CACpF,IAAIkC,EAAe,IAAI,CAACL,UAAU,CAACnxT,GAAG,CAACsvT,GAOvC,OALqB14T,KAAAA,IAAjB46T,IACAA,EAAe,EAAE,CACjB,IAAI,CAACL,UAAU,CAACtuQ,GAAG,CAACysQ,EAAckC,IAG/BA,CACX,CAEA,MAAcC,oBAAoBnC,CAAoB,CAAEoC,CAAgD,CAAiB,CACrH,IAAMzkT,EAAWykT,EAAc/3T,GAAG,CAAEihK,GACzBA,EACFruC,QAAQ,GACRn5H,IAAI,CAAEu+T,GAAiB,IAAI,CAACP,yBAAyB,CAAC9B,EAAc10J,EAAStB,SAAS,CAAEq4J,IACxF15T,KAAK,CAAEm5B,IAEJ,MADAsgS,EAAch5T,IAAI,CAACkiK,GACbxpI,CACV,GAGRsgS,CAAAA,EAAcz9T,MAAM,CAAG,EACvB,MAAMmzK,QAAQh6J,GAAG,CAACH,EACtB,CACJ,C,mCCjDO,SAASo6M,EAAoC96F,CAAgC,EAChF,MAAO,IAAMA,IAAWn5H,IAAI,CAAE8iF,GAAMA,EAAEtf,OAAO,CACjD,C,iDCAO,OAAM1uC,UAAmBs2I,EAAAA,CAAOA,CAC3BozJ,UAAqB,EACrBC,CAAAA,cAAyB,EAE1Br2P,CAAAA,UAAiB,CACpB,IAAI,CAACo2P,SAAS,CAAG,GACjB,KAAK,CAACp2P,UACV,CAEOlsC,MAAa,CAChB,IAAI,CAACmyB,IAAI,GACT,IAAI,CAAC+Z,QAAQ,GACb,IAAI,CAACq2P,aAAa,CAAG,EACzB,CAEOC,UAAoB,CACvB,OAAO,IAAI,CAACF,SAChB,CAEOG,cAAwB,CAC3B,OAAO,IAAI,CAACF,aAChB,CACJ,C,kDCzBO,IAAM3lB,EAAc,SAAqB8lB,CAAS,EAAK,0DAAGh4T,CAAI,CAAJA,EAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAC7D,IAAMi4T,EAAW9xB,CAAAA,EAAAA,EAAAA,MAAAA,EAA+B,MAMhD,OAJyB,OAArB8xB,EAASxgN,OAAO,EAChBwgN,CAAAA,EAASxgN,OAAO,CAAG,IAAIugN,KAAah4T,EAAI,EAGrCi4T,EAASxgN,OACpB,C,kDCTO,IAAMg7L,EAAgB,SAAyCxuQ,CAAI,EAAK,0DAAGjkC,CAAI,CAAJA,EAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAC9E,IAAMi4T,EAAW9xB,CAAAA,EAAAA,EAAAA,MAAAA,EAA6B,MAM9C,OAJyB,OAArB8xB,EAASxgN,OAAO,EAChBwgN,CAAAA,EAASxgN,OAAO,CAAGxzE,KAAQjkC,EAAI,EAG5Bi4T,EAASxgN,OACpB,C,kDCRO,IAAMwsL,EAAc7lS,IACvB85T,CAAAA,EAAAA,EAAAA,SAAAA,EAAU95T,EAAU,EAAE,CAC1B,C,kDCFO,IAAMi+S,EAAgBj+S,IACzB85T,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,IACC95T,EACR,EAAE,CACT,C,kDCGO,IAAM8kS,EAAmB,SAAC9kS,CAAQ,CAAkB+5T,CAAY,EAAZA,IAA+BC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CACtF,GAAIA,EAAY,CACZ,gBACUh6T,EAAU+5T,GACpB,MACJ,CAGA,IAAME,EAAalyB,CAAAA,EAAAA,EAAAA,MAAAA,EAAO,IAG1B+xB,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACN,GAAIG,CAAuB,IAAvBA,EAAW5gN,OAAO,CAAY,CAC9B4gN,EAAW5gN,OAAO,CAAG,GACrB,MACJ,CAEAr5G,GACJ,EAAG+5T,EACP,C,mCC5BO,IAAMG,EAAiB,CAC1BC,WAAY,EAChB,C,mHCAO,IAAMC,EAAsB,CAACv/T,EAAmB0uS,KACnD,GAAI1uS,EAAMszB,OAAO,EAAItzB,EAAMorQ,OAAO,CAC9B,OAGJ,IAAM9qQ,EAASN,EAAMM,MAAM,CAC3B,GAAIA,MAAAA,EAAO4qH,OAAO,CAAU,CACxBlrH,EAAMwB,cAAc,GACpB,MACJ,CAEA,IAAIwhB,EAAS1iB,EAAOgjL,aAAa,CACjC,KAAOtgK,OAAAA,GAAmBA,IAAW0rR,EAAWlwL,OAAO,EAAE,CACrD,GAAIx7F,MAAAA,EAAOkoG,OAAO,CAAU,CACxBlrH,EAAMwB,cAAc,GACpB,MACJ,CAEAwhB,EAASA,EAAOsgK,aACpB,CACJ,E,wBCpBA,QAAU,knCCDV,QAAU,+2NCSH,IAAMjM,EAAmDhkI,IAC5D,IAAMmsR,EAAqBtyB,CAAAA,EAAAA,EAAAA,MAAAA,EAAuB,MAC5CuyB,EAAgCvyB,CAAAA,EAAAA,EAAAA,MAAAA,EAAuB,MACvDz6E,EAA2Cy6E,CAAAA,EAAAA,EAAAA,MAAAA,EAAO,MAClDwyB,EAAoB51B,CAAAA,EAAAA,EAAAA,KAAAA,IACpB61B,EAAeC,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,uBAE5C6iS,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,KACP,GAAIw0B,OAAAA,EAAmBhhN,OAAO,EAAaihN,OAAAA,EAA8BjhN,OAAO,CAC5E,MAGJi0G,CAAAA,EAAOj0G,OAAO,CAAGnrE,EAAM5a,OAAO,CAC1B+mS,EACAnsR,EAAMkrE,UAAU,CAChBkhN,EACApsR,EAAMrP,OAAO,CACbqP,EAAM9W,QAAQ,CACd8W,EAAMrpC,MAAM,CACZqpC,EAAMoiI,sBAAsB,EAGhC,IAAMn+E,EAAcuoO,EAAAA,CAAmBA,CAACC,qBAAqB,CAACzsR,EAAMrP,OAAO,EAAI,GAAKqP,EAAMrpC,MAAM,CAACstF,WAAW,CAC5GmoO,EAA8BjhN,OAAO,CAACjzD,KAAK,CAACw0Q,WAAW,CAAC,qBAAsB,CAAC,CAAC,EAAEzoO,EAAY,CAAC,CAAC,EAChGkoO,EAAmBhhN,OAAO,CAACp9G,gBAAgB,CAAC,QAAU2nC,GAAMw2R,EAAoBx2R,EAAGy2R,IAE/EnsR,EAAM0V,SAAS,EACfy2Q,EAAmBhhN,OAAO,CAACp+G,KAAK,EAExC,GAEAgjT,CAAAA,EAAAA,EAAAA,CAAAA,EAAa,KACT3wF,EAAOj0G,OAAO,EAAEzpD,SACpB,GAEAk1O,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,KACbx3E,EAAOj0G,OAAO,EAAEwhN,QAAQ3sR,EAAMrP,OAAO,CACzC,EAAG,CAACqP,EAAMrP,OAAO,CAAC,EAElB,IAAMn5B,EAAQwoC,KAAoB1vC,IAApB0vC,EAAMvoC,SAAS,CAAiB,CAAC,EAAEuoC,EAAMvoC,SAAS,CAAC,CAAC,EAAE60T,EAAa,CAAC,CAAGh8T,KAAAA,EAC/E0/J,EAAahwH,KAAyB1vC,IAAzB0vC,EAAMikI,cAAc,CAAiB,CAAC,EAAEjkI,EAAMikI,cAAc,CAAC,CAAC,EAAEooJ,EAAkB,CAAC,CAAG/7T,KAAAA,EACnGuyG,EAAY,CAAC,gDAAgD,EAAE7iE,KAAoB1vC,IAApB0vC,EAAM6iE,SAAS,CAAiB,CAAC,CAAC,EAAE7iE,EAAM6iE,SAAS,CAAC,CAAC,CAAG,GAAG,CAAC,CACjI,MACI,WAACihE,MAAAA,CAAIjhE,UAAU,+CAA+CkR,IAAKq4M,EAAAA,SAAAA,CAC/D,UAACtoJ,MAAAA,CACG8xH,aAAYp+R,EACZ4iF,KAAK,UACLwyO,iBAAgB,GAChB5nB,kBAAiBh1I,EACjBntD,UAAWA,EACX04K,gBAAiB,GACjBx3G,YAAW/jI,EAAMnoC,QAAQ,CACzBk8G,IAAKo4M,CAAAA,GAERn8J,KAAe1/J,IAAf0/J,GACG,UAACs0D,OAAAA,CAAKzhH,UAAU,wCAAwCvkG,GAAI+tT,EAAAA,SACvDC,CAAAA,GAAAA,EAKrB,C,kDCpEO,SAASlpJ,EAAWypJ,CAAyB,EAEhD,OADAA,EAAiBtiK,MAAM,GAChBnwI,EAAAA,CACX,C,sGCNO,IAAM0yS,EAAiD,CAC1D,QACA,cACA,MACA,UACA,YACA,YACA,aACA,QACA,MACA,YACA,QACF,CCPWC,EAA2B55T,IACpC,IAAM65T,EAAqC,CACvCh7R,YAAau6R,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,kCACpC0hK,UAAW,EACf,EAEA,IAAK,IAAMmnI,KAAYxqS,EAAKa,MAAM,GAC9B,IAAK,IAAMssJ,KAASq9I,EAAS78I,MAAM,CAAC9sJ,MAAM,GACtC,IAAK,IAAMi5T,KAAa3sK,EAAM4sK,UAAU,CAAE,CACtC,GAAI,iBAAOD,EAAUE,SAAS,CAAe,CACzC,GAAI,CAACC,EAAcH,EAAUE,SAAS,EAAG,CACrC,IAAME,EAAgC,CAClCl6T,KAAMm6T,EAAWL,EAAUE,SAAS,EACpCn7R,YAAai7R,EAAUz1T,KAC3B,EAEAw1T,EAASx2J,SAAS,CAACpkK,IAAI,CAACi7T,EAC5B,CAEA,QACJ,CAEAE,EACIP,EACAC,EAAUz1T,KAAK,CACfy1T,EAAUE,SAAS,CAACpZ,OAAO,CAAEoZ,GAAcA,GAEnD,CAIR,OAAOH,CACX,EAEMO,EAAwB,CAACP,EAAoCx1T,EAAe01T,KAC9E,GAAI,CAACE,EAAcF,CAAU,CAAC,EAAE,EAAG,CAC/B,IAAMG,EAAgC,CAClCl6T,KAAMm6T,EAAWJ,CAAU,CAAC,EAAE,EAC9Bl7R,YAAax6B,CACjB,EAEAw1T,EAASx2J,SAAS,CAACpkK,IAAI,CAACi7T,EAC5B,CAIA,IAAK,IAAMG,KAFXN,EAAW76T,MAAM,CAAC,EAAG,GAED66T,GAChB,GAAI,CAACE,EAAcI,GAAQ,CACvB,IAAMH,EAAgC,CAClCl6T,KAAMm6T,EAAWE,GACjBx7R,YAAau6R,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,iCAAkC,CAAE0C,MAAOA,CAAM,EACzF,EAEAw1T,EAASx2J,SAAS,CAACpkK,IAAI,CAACi7T,EAC5B,CAER,EAEMC,EAAcH,IAChB,IAAMriN,EAAQqiN,EAAUrzS,KAAK,CAAC,KACxBvmB,EAA0B,EAAE,CAElC,IAAK,IAAM2mH,KAAQpP,EACXoP,SAAAA,EAAK/1G,WAAW,GAChB5Q,EAASnB,IAAI,CAACuiQ,UAAUC,SAAS,CAACjmP,QAAQ,CAAC,OAAS49S,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,sBAAwBy3T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,uBACnHolH,UAAAA,EAAK/1G,WAAW,GACvB5Q,EAASnB,IAAI,CAACw/B,EAAAA,CAAIA,CAACE,KAAK,CAAC3tB,WAAW,IAEpC5Q,EAASnB,IAAI,CAAC8nH,EAAK/1G,WAAW,IAItC,OAAO5Q,CACX,EAEM65T,EAAiB7/T,GACZu/T,EAAwBn+S,QAAQ,CAACphB,EAAI4W,WAAW,IC5E9Cm/J,EAAoB87C,IAiB7B,IAAMquG,EAAwBxL,CAAAA,EAAAA,EAAAA,CAAAA,EAA8B7iG,EAAOsuG,aAAa,EAC1EC,EAAoBF,EAAsB5xE,QAAQ,GAaxD,OAXA4xE,EAAsBv7T,GAAG,CACrB,CACI,CACIiB,KAAM,CAACy+B,EAAAA,CAAIA,CAACC,OAAO,CAAE,IAAI,CACzB//B,SAvBcmkC,IACtB,IAAM23R,EAAiBxuG,EAAOK,WAAW,GAEzC,GAAImuG,OAAAA,EAAyB,CACzB33R,EAAI5oC,eAAe,GAEnB,IAAMwgU,EAAmDl8R,EAAAA,CAAeA,CAACojN,kBAAkB,GAAG9oG,IAAI,CAAC,CAACt3E,EAAG2a,IAC5F3a,EAAE3iC,WAAW,CAACkjN,aAAa,CAAC5lK,EAAEt9C,WAAW,GAGpD67R,EAAgBvjQ,OAAO,CAACyiQ,EAAwBa,EAAeE,aAAa,CAACC,cAAc,GAE3Fj5E,CAAAA,EAAAA,EAAAA,CAAAA,EAAqB11B,EAAOsuG,aAAa,CAAEG,EAC/C,CACJ,EAUY77R,YAAau6R,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,iCACxC,EACH,CACDy3T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,mCAGpB,KACH24T,EAAsB9L,gBAAgB,GACtCgM,GACJ,CACJ,C,uECrCO,OAAMK,EACQC,WACAC,CAAAA,SAAyB,IAAI3zP,GAAM,aAExC4zP,CAAkB,CAAE,CAC5B,IAAI,CAACF,WAAW,CAAGE,CACvB,CAEOj8T,IAAIk8T,CAAyB,CAAQ,CACpC,IAAI,CAACF,QAAQ,CAACzuQ,GAAG,CAAC2uQ,IAClB,IAAI,CAACF,QAAQ,CAAC/yT,MAAM,CAACizT,GAGrB,IAAI,CAACF,QAAQ,CAACt3T,IAAI,GAAK,IAAI,CAACq3T,WAAW,EACvC,IAAI,CAACI,wBAAwB,GAGjC,IAAI,CAACH,QAAQ,CAACh8T,GAAG,CAACk8T,EACtB,CAEOz6T,OAAOyrN,CAAe,CAAQ,CACjC,IAAI,CAAC8uG,QAAQ,CAAC/yT,MAAM,CAACikN,EACzB,CAEO3/J,IAAI2/J,CAAe,CAAW,CACjC,OAAO,IAAI,CAAC8uG,QAAQ,CAACzuQ,GAAG,CAAC2/J,EAC7B,CAEQivG,0BAAiC,CACrC,IAAMC,EAAqB,IAAI,CAACJ,QAAQ,CAAC/6T,IAAI,GAAGgoD,IAAI,GAAGtuD,KAAK,MAEjCyD,IAAvBg+T,IACAA,EAAmB9jK,OAAO,GAC1B,IAAI,CAAC0jK,QAAQ,CAAC/yT,MAAM,CAACmzT,GAE7B,CACJ,CClCO,IAAMC,EAAsB,IAAIP,EAFnBh/I,EAAAA,CAASA,EAAIC,EAAAA,CAAYA,EAAIC,EAAAA,CAAUA,CAAG,EAAI,ECI3D,OAAMs/I,EACQC,MACA1vG,CAAAA,OACA2vG,CAAAA,kBACAC,CAAAA,yBACAC,CAAAA,wBACAC,CAAAA,yBACA5vG,CAAAA,oBAET6vG,CAAAA,oBAA8B,CAC9BC,CAAAA,qBAA+B,CAAE,aAE7B3vG,CAAe,CAAE4vG,CAAmB,CAAE,CAC9C,IAAI,CAACP,MAAM,CAAGO,EACd,IAAI,CAACjwG,OAAO,CAAGK,EACf,IAAI,CAACsvG,kBAAkB,CAAG,IAAI,CAACO,aAAa,CAACnkU,IAAI,CAAC,IAAI,EACtD,IAAI,CAAC6jU,yBAAyB,CAAG,IAAI,CAACO,oBAAoB,CAACpkU,IAAI,CAAC,IAAI,EACpE,IAAI,CAAC8jU,wBAAwB,CAAG,IAAI,CAACO,mBAAmB,CAACrkU,IAAI,CAAC,IAAI,EAClE,IAAI,CAAC+jU,yBAAyB,CAAG,IAAI,CAACO,oBAAoB,CAACtkU,IAAI,CAAC,IAAI,EAEpEs0N,EAAOsuG,aAAa,CAAC3/T,gBAAgB,CAAC,QAAS,IAAI,CAAC2gU,kBAAkB,EACtEtvG,EAAOsuG,aAAa,CAAC3/T,gBAAgB,CAAC,OAAQ,IAAI,CAAC4gU,yBAAyB,EAE5E,IAAI,CAAC1vG,oBAAoB,CAAGG,EAAO30D,OAAO,CAACphI,SAAS,CAAEgmS,IAClD,GAAIA,EAAYvtS,SAAS,CAAE,CACvB,IAAI,CAACwtS,gBAAgB,CAACD,GACtB,MACJ,CACA,IAAI,CAACE,iBAAiB,EAC1B,EACJ,CAEO7tQ,SAAgB,CACnB,IAAI,CAAC+sQ,MAAM,CAAC96T,MAAM,CAAC,IAAI,CAACorN,OAAO,EAE/B3uL,aAAa,IAAI,CAAC0+R,mBAAmB,EACrC1+R,aAAa,IAAI,CAAC2+R,oBAAoB,EAEtC,IAAI,CAAChwG,OAAO,CAAC2uG,aAAa,CAACx/T,mBAAmB,CAAC,QAAS,IAAI,CAACwgU,kBAAkB,EAC/E,IAAI,CAAC3vG,OAAO,CAAC2uG,aAAa,CAACx/T,mBAAmB,CAAC,OAAQ,IAAI,CAACygU,yBAAyB,EACrF,IAAI,CAAC1vG,oBAAoB,CAACjgG,WAAW,EACzC,CAEQiwM,eAAsB,CAC1B,IAAI,CAACH,mBAAmB,CAAG/7T,OAAOu9B,UAAU,CAAC,KACzC,IAAI,CAACyuL,OAAO,CAACx0D,MAAM,GACnB,IAAI,CAACw0D,OAAO,CAAC2uG,aAAa,CAACx/T,mBAAmB,CAAC,QAAS,IAAI,CAACwgU,kBAAkB,CACnF,EAAG,EACP,CAEQQ,sBAA6B,CACE,OAA/B,IAAI,CAACnwG,OAAO,CAACU,WAAW,KACxBrvL,aAAa,IAAI,CAAC0+R,mBAAmB,EACrC,IAAI,CAACU,gBAAgB,GAE7B,CAEQF,iBAAiBhmS,CAAyB,CAAQ,CACtD,IAAM81L,EAAS91L,EAAM81L,MAAM,CAC1B,IAAI,CAACL,OAAO,CAACjxC,OAAO,CAAoBv5G,IAAI,GAE7C6qJ,EAAO98M,KAAK,CAACxU,QAAQ,CAAC2hU,IAAI,CAAC,cAAe,IAAI,CAACb,wBAAwB,EACvExvG,EAAOiB,EAAE,CAAC3+C,YAAY,CAAC54I,EAAE,CAAC,mBAAoB,IAAI,CAAC+lS,yBAAyB,EAC5E,IAAI,CAAC9vG,OAAO,CAAC2uG,aAAa,CAACx/T,mBAAmB,CAAC,OAAQ,IAAI,CAACygU,yBAAyB,CACzF,CAEQY,mBAA0B,CAC9B,IAAI,CAACxwG,OAAO,CAAC2uG,aAAa,CAAC3/T,gBAAgB,CAAC,QAAS,IAAI,CAAC2gU,kBAAkB,EAC5E,IAAI,CAAC3vG,OAAO,CAAC2uG,aAAa,CAAC3/T,gBAAgB,CAAC,OAAQ,IAAI,CAAC4gU,yBAAyB,EAElF,IAAI,CAACF,MAAM,CAAC96T,MAAM,CAAC,IAAI,CAACorN,OAAO,CACnC,CAEQywG,kBAAyB,CAC7B,IAAI,CAACT,oBAAoB,CAAGh8T,OAAOu9B,UAAU,CAAC,KAC1C,GAAI,IAAI,CAACm+R,MAAM,CAAChvQ,GAAG,CAAC,IAAI,CAACs/J,OAAO,GAAK,WAAI,CAACA,OAAO,CAACjxC,OAAO,CAAW,CAChE,IAAI,CAACixC,OAAO,CAACjxC,OAAO,CAACztH,IAAI,GACzB,MACJ,CAEA,IAAI,CAAC0+J,OAAO,CAACv0D,OAAO,EACxB,EAAG,EACP,CAEQ4kK,qBAAqBM,CAAmB,CAAEC,CAAa,CAAE9iU,CAAc,CAAQ,CACnF,GAAI,CAACA,EAAO,CACR,IAAI,CAAC2iU,gBAAgB,GACrB,MACJ,CAEAp/R,aAAa,IAAI,CAAC2+R,oBAAoB,EACT,OAAzB,IAAI,CAAChwG,OAAO,CAACjxC,OAAO,EACpB,IAAI,CAACixC,OAAO,CAACjxC,OAAO,CAACv5G,IAAI,GAEzB,IAAI,CAACk6P,MAAM,CAAChvQ,GAAG,CAAC,IAAI,CAACs/J,OAAO,GAC5B,IAAI,CAAC0vG,MAAM,CAACv8T,GAAG,CAAC,IAAI,CAAC6sN,OAAO,CAIpC,CAEQowG,qBAA4B,CAChC,IAAI,CAACV,MAAM,CAACv8T,GAAG,CAAC,IAAI,CAAC6sN,OAAO,CAChC,CACJ,CC1GO,SAAS0nC,EAAernC,CAAe,EAC1C,IAAMwwG,EAAoB,IAAIpB,EAA4BpvG,EAAQmvG,GAClE,MAAO,KACHqB,EAAkBluQ,OAAO,EAC7B,CACJ,C,iDCNO,SAAS2hH,EAAwB+7C,CAAe,EASnD,IAAMywG,EAAuBzwG,EAAO30D,OAAO,CAACthI,IAAI,CAACv5B,CAAAA,EAAAA,EAAAA,CAAAA,EAAQ05B,GAA8BA,EAAMxH,SAAS,GAAGuH,SAAS,CAR/FymS,IACQ,OAAnB1wG,EAAOtxC,OAAO,EAAagiJ,OAAAA,EAAa1wG,MAAM,EAIlDA,EAAOtxC,OAAO,CAACv5G,IAAI,EACvB,GAIA,MAAO,KACHs7P,EAAqB7wM,WAAW,EACpC,CACJ,C,iDClBY+wM,E,iJCIZ,IAAMC,EAAkB,CAAEpzD,SAAU,SAAU,EACxCqzD,EAAiB,CAAErzD,SAAU,QAAS,CAErC,OAAMszD,EACT,OAAcC,OACVve,CAAkC,CAClCwe,CAA0B,CAC1BnpK,CAAoB,CACpBsc,CAAmC,CACnCynI,CAAsB,CACtBqlB,CAAuB,CACnB,CACJ,IAAMpgB,EAAmBmgB,EAAaE,UAAU,CAAC/gU,OAAO,CAClD2gT,EAAkBkgB,EAAaG,SAAS,CAAChhU,OAAO,CAEhDy4P,EAAWzkF,GAAmBz1K,SAASg1G,IAAI,CAE7C0c,EAAoC,KAExC4wM,EAAatnS,EAAE,CAAC,gBAAiBonS,EAAwBM,gBAAgB,CAAER,GAE3EI,EAAatnS,EAAE,CACX,gBACA,CAAC2nS,EAAMd,EAAO9iU,KACV,GAAI,CAACA,EAAO,CACa,OAAjB2yH,GACAA,EAAaR,WAAW,GAG5B,MACJ,CAEA,IAAMU,EAAa2wM,EACbxe,CAAAA,EAAAA,EAAAA,CAAAA,EAAoC5B,EAAkBC,EAAiBloD,EAAU4pD,EAAgB3qJ,GACjGsqJ,CAAAA,EAAAA,EAAAA,CAAAA,EAAgCtB,EAAkBC,EAAiBloD,EAAU/gG,GAEnFznC,EAAeE,EACVv2F,IAAI,CACDw2F,CAAAA,EAAAA,EAAAA,CAAAA,IACArkE,CAAAA,EAAAA,EAAAA,CAAAA,EAAI,KACA40Q,EAAwBQ,gBAAgB,CAACN,GACzCF,EAAwBS,yBAAyB,CAACP,EAAcpoE,EACpE,GACAtsM,CAAAA,EAAAA,EAAAA,CAAAA,EAAU,IAAMgkE,GAChBpkE,CAAAA,EAAAA,EAAAA,CAAAA,EAAI,KACA40Q,EAAwBU,kBAAkB,CAACR,GAC3CF,EAAwBS,yBAAyB,CAACP,EAAcpoE,EACpE,GACA5+N,CAAAA,EAAAA,EAAAA,CAAAA,EAAU4hR,GACVjzI,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,IAAMm4J,EAAwBW,iBAAiB,CAACT,KAE5D/mS,SAAS,EAClB,EACA4mS,EAER,CAEA,OAAeO,iBAAiBv6R,CAAc,CAAE05R,CAAa,CAAE9iU,CAAc,CAAQ,CAC7EA,GAECujU,CAAAA,EADwB3gL,MACxB2gL,CAAaG,SAAS,CAAChhU,OAAO,CAAiB2oD,KAAK,CAAC6sN,UAAU,CAAG,QAAO,CAElF,CAEA,OAAe4rD,0BAA0BP,CAA0B,CAAEpoE,CAAqB,CAAQ,CAC9F,IAAM8oE,EAAeV,EAAaG,SAAS,CAAChhU,OAAO,CAEnDuhU,EAAa54Q,KAAK,CAACw0Q,WAAW,CAAC,uBAAwB,CAAC,EAAEoE,EAAa38O,YAAY,CAAC,EAAE,CAAC,EACvF28O,EAAa54Q,KAAK,CAACw0Q,WAAW,CAAC,+BAAgC,CAAC,EAAE1kE,EAAShhK,WAAW,CAAC,EAAE,CAAC,CAC9F,CAEA,OAAe6pO,kBAAkBT,CAA0B,CAAQ,CACxB9/T,KAAAA,IAAnC8/T,EAAaG,SAAS,CAAChhU,OAAO,EAAkB6gU,OAAAA,EAAaG,SAAS,CAAChhU,OAAO,EAC9E6gU,EAAaG,SAAS,CAAChhU,OAAO,CAACH,eAAe,CAAC,QAEvD,CAEA,OAAewhU,mBAAmBR,CAA0B,CAAQ,CAChE,IAAM7gU,EAAuB6gU,EAAaG,SAAS,CAAChhU,OAAO,CAC3D,GAAIA,KAAAA,EAAQ2oD,KAAK,CAACC,SAAS,CAAS,CAChC5oD,EAAQ2oD,KAAK,CAAC64Q,SAAS,CAAG,OAC1B,MACJ,CACAxhU,EAAQ2oD,KAAK,CAACqqM,cAAc,CAAC,aACjC,CAEA,OAAemuE,iBAAiBN,CAA0B,CAAQ,CAC9D,IAAMY,EAAgBZ,EAAaG,SAAS,CAAChhU,OAAO,CAAiBgwB,aAAa,CAAc,SAGhGhwB,CAF6B6gU,EAAaG,SAAS,CAAChhU,OAEpDA,CAAQ2oD,KAAK,CAAC6sN,UAAU,CAAG,GAE3BmrD,EAAwBU,kBAAkB,CAACR,GAEvCY,OAAAA,GAA0B1R,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB0R,GAG3CZ,EAAaG,SAAS,CAACxjU,KAAK,GAF5BikU,EAAajkU,KAAK,EAI1B,CACJ,C,2HCxGO,IAAMoB,EAAkBxB,IAC3BA,EAAMwB,cAAc,EACxB,E,cFFY4hU,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,IAAAA,CAAAA,OAAAA,EAAAA,KAAAA,CAAAA,QAAAA,EAAAA,WAAAA,CAAAA,cAAAA,EAAAA,SAAAA,CAAAA,YAAAA,EAAAA,OAAAA,CAAAA,UAAAA,EAAAA,KAAAA,CAAAA,QAAAA,EAAAA,SAAAA,CAAAA,YAAAA,EAAAA,OAAAA,CAAAA,UAAAA,EAAAA,QAAAA,CAAAA,WAAAA,EAAAA,UAAAA,CAAAA,YGKL,OAAMkB,EACT,OAAwBC,eAAuC,CAAEC,QAAS,EAAK,CAC9DC,CAAAA,cACAC,CAAAA,sBAAoC,IAAI,CAACC,gBAAgB,CAACxmU,IAAI,CAAC,IAAI,CACnE6xT,CAAAA,gBAAkD,IAAI,CAAClB,UAAU,CAAC3wT,IAAI,CAAC,IAAI,CAC3EymU,CAAAA,kBAAgC,IAAI,CAACC,YAAY,CAAC1mU,IAAI,CAAC,IAAI,CAC3D2mU,CAAAA,mBAAiC,IAAI,CAACC,aAAa,CAAC5mU,IAAI,CAAC,IAAI,CAC7D6mU,CAAAA,wBAAsC,IAAI,CAACC,kBAAkB,CAAC9mU,IAAI,CAAC,IAAI,CACvE+mU,CAAAA,cAA4B,IAAI,CAACC,QAAQ,CAAChnU,IAAI,CAAC,IAAI,CACnDinU,CAAAA,gBAA8B,IAAI,CAACC,UAAU,CAAClnU,IAAI,CAAC,IAAI,CACvDmnU,CAAAA,iBAA+B,IAAI,CAACC,WAAW,CAACpnU,IAAI,CAAC,IAAI,CAClEqnU,CAAAA,oBAA+B,EAEtBC,CAAAA,kBAA6C,CAC1DC,QAAS,GACTC,UAAW,GACXC,WAAY,EAChB,CAEQC,CAAAA,mBAAoC,IAAIt6J,EAAAA,CAAU,aAE9Cu6J,CAA0B,CAAE,CACpC,IAAI,CAACrB,cAAc,CAAGqB,CAC1B,CAEOC,eAAsB,CACzB,IAAI,CAACC,mBAAmB,GACxB,IAAI,CAACC,cAAc,GACnB,IAAI,CAACC,wBAAwB,EACjC,CAEOC,cAAqB,CACxB,IAAI,CAACH,mBAAmB,GACxB,IAAI,CAACC,cAAc,GAEnB,IAAI,CAACJ,kBAAkB,CAACt9P,QAAQ,GAChC,IAAI,CAACs9P,kBAAkB,CAAG,IAAIt6J,EAAAA,CAClC,CAEO66J,mBAAsC,CACzC,OAAO,IAAI,CAACP,kBAChB,CAEOQ,oBAA8B,CACjC,OAAO,IAAI,CAACb,mBAChB,CAEOc,qBAA+B,CAClC,OAAO,IAAI,CAACb,iBAAiB,CAACC,OAAO,EAAI,IAAI,CAACD,iBAAiB,CAACE,SAAS,EAAI,IAAI,CAACF,iBAAiB,CAACG,UACxG,CAEQX,oBAA2B,CAC/B,IAAI,CAACsB,sBAAsB,GAC3B,IAAI,CAACP,mBAAmB,GACxB,IAAI,CAACE,wBAAwB,GAE7B,IAAI,CAACL,kBAAkB,CAACr3Q,IAAI,EAChC,CAEQm2Q,kBAAyB,CAC7B,IAAI,CAACa,mBAAmB,CAAG,EAC/B,CAEQ1W,WAAW9uT,CAAoB,CAAQ,CACtCA,EAAMwmU,gBAAgB,CAACxmU,EAAMY,GAAG,IACjCO,SAASC,gBAAgB,CAACgiU,EAAUqD,KAAK,CAAE,IAAI,CAACvB,aAAa,CAAEZ,EAAmBC,cAAc,EAChG,IAAI,CAACE,cAAc,CAACljU,mBAAmB,CAAC6hU,EAAUsD,OAAO,CAAE,IAAI,CAAC1W,eAAe,EAC/E,IAAI,CAACyV,iBAAiB,CAACC,OAAO,CAAG,GACjC,IAAI,CAACiB,kBAAkB,GAE/B,CAEQxB,UAAiB,CACrBhkU,SAASI,mBAAmB,CAAC6hU,EAAUqD,KAAK,CAAE,IAAI,CAACvB,aAAa,EAChE,IAAI,CAACT,cAAc,CAACrjU,gBAAgB,CAACgiU,EAAUsD,OAAO,CAAE,IAAI,CAAC1W,eAAe,CAAEsU,EAAmBC,cAAc,EAC/G,IAAI,CAACkB,iBAAiB,CAACC,OAAO,CAAG,GACjC,IAAI,CAACkB,WAAW,EACpB,CAEQ/B,cAAqB,CACzB1jU,SAASC,gBAAgB,CAACgiU,EAAUyD,OAAO,CAAE,IAAI,CAACzB,eAAe,CAAEd,EAAmBC,cAAc,EACpG,IAAI,CAACE,cAAc,CAACljU,mBAAmB,CAAC6hU,EAAU0D,SAAS,CAAE,IAAI,CAAClC,iBAAiB,EACnF,IAAI,CAACa,iBAAiB,CAACE,SAAS,CAAG,GACnC,IAAI,CAACgB,kBAAkB,EAC3B,CAEQtB,YAAmB,CACvBlkU,SAASI,mBAAmB,CAAC6hU,EAAUyD,OAAO,CAAE,IAAI,CAACzB,eAAe,EACpE,IAAI,CAACX,cAAc,CAACrjU,gBAAgB,CAACgiU,EAAU0D,SAAS,CAAE,IAAI,CAAClC,iBAAiB,CAAEN,EAAmBC,cAAc,EACnH,IAAI,CAACkB,iBAAiB,CAACE,SAAS,CAAG,GACnC,IAAI,CAACiB,WAAW,EACpB,CAEQ7B,eAAsB,CAC1B5jU,SAASC,gBAAgB,CAACgiU,EAAU2D,QAAQ,CAAE,IAAI,CAACzB,gBAAgB,CAAEhB,EAAmBC,cAAc,EACtG,IAAI,CAACE,cAAc,CAACljU,mBAAmB,CAAC6hU,EAAU4D,UAAU,CAAE,IAAI,CAAClC,kBAAkB,EACrF,IAAI,CAACW,iBAAiB,CAACG,UAAU,CAAG,GACpC,IAAI,CAACe,kBAAkB,EAC3B,CAEQpB,aAAoB,CACxBpkU,SAASI,mBAAmB,CAAC6hU,EAAU2D,QAAQ,CAAE,IAAI,CAACzB,gBAAgB,EACtE,IAAI,CAACb,cAAc,CAACrjU,gBAAgB,CAACgiU,EAAU4D,UAAU,CAAE,IAAI,CAAClC,kBAAkB,CAAER,EAAmBC,cAAc,EACrH,IAAI,CAACkB,iBAAiB,CAACG,UAAU,CAAG,GACpC,IAAI,CAACgB,WAAW,EACpB,CAEQV,0BAAiC,CACrC,IAAI,CAACzB,cAAc,CAACrjU,gBAAgB,CAACgiU,EAAUsD,OAAO,CAAE,IAAI,CAAC1W,eAAe,CAAEsU,EAAmBC,cAAc,EAC/G,IAAI,CAACE,cAAc,CAACrjU,gBAAgB,CAACgiU,EAAU0D,SAAS,CAAE,IAAI,CAAClC,iBAAiB,CAAEN,EAAmBC,cAAc,EACnH,IAAI,CAACE,cAAc,CAACrjU,gBAAgB,CAACgiU,EAAU4D,UAAU,CAAE,IAAI,CAAClC,kBAAkB,CAAER,EAAmBC,cAAc,EACrH,IAAI,CAACE,cAAc,CAACrjU,gBAAgB,CAACgiU,EAAU70J,KAAK,CAAE,IAAI,CAACm2J,qBAAqB,CAAEJ,EAAmBC,cAAc,CACvH,CAEQoC,oBAA2B,CAC/B,IAAI,CAAClC,cAAc,CAACrjU,gBAAgB,CAACgiU,EAAU6D,IAAI,CAAE,IAAI,CAACjC,uBAAuB,CAAE,IACnF7jU,SAASC,gBAAgB,CAACgiU,EAAU8D,SAAS,CAAE,IAAI,CAAClC,uBAAuB,CAAE,IAC7E7jU,SAASC,gBAAgB,CAACgiU,EAAU+D,WAAW,CAAE,IAAI,CAACnC,uBAAuB,CAAE,GACnF,CAEQoC,uBAA8B,CAClC,IAAI,CAAC3C,cAAc,CAACljU,mBAAmB,CAAC6hU,EAAU6D,IAAI,CAAE,IAAI,CAACjC,uBAAuB,CAAE,IACtF7jU,SAASI,mBAAmB,CAAC6hU,EAAU8D,SAAS,CAAE,IAAI,CAAClC,uBAAuB,CAAE,IAChF7jU,SAASI,mBAAmB,CAAC6hU,EAAU+D,WAAW,CAAE,IAAI,CAACnC,uBAAuB,CAAE,GACtF,CAEQgB,qBAA4B,CAChC,IAAI,CAACvB,cAAc,CAACljU,mBAAmB,CAAC6hU,EAAUsD,OAAO,CAAE,IAAI,CAAC1W,eAAe,EAC/E,IAAI,CAACyU,cAAc,CAACljU,mBAAmB,CAAC6hU,EAAU0D,SAAS,CAAE,IAAI,CAAClC,iBAAiB,EACnF,IAAI,CAACH,cAAc,CAACljU,mBAAmB,CAAC6hU,EAAU4D,UAAU,CAAE,IAAI,CAAClC,kBAAkB,EACrF,IAAI,CAACL,cAAc,CAACljU,mBAAmB,CAAC6hU,EAAU70J,KAAK,CAAE,IAAI,CAACm2J,qBAAqB,EAEnFvjU,SAASI,mBAAmB,CAAC6hU,EAAUqD,KAAK,CAAE,IAAI,CAACvB,aAAa,CAAE,IAClE/jU,SAASI,mBAAmB,CAAC6hU,EAAUyD,OAAO,CAAE,IAAI,CAACzB,eAAe,CAAE,IACtEjkU,SAASI,mBAAmB,CAAC6hU,EAAU2D,QAAQ,CAAE,IAAI,CAACzB,gBAAgB,CAAE,IAExE,IAAI,CAAC8B,qBAAqB,EAC9B,CAEQR,aAAoB,CACnB,IAAI,CAACN,mBAAmB,KACzB,IAAI,CAACN,mBAAmB,GACxB,IAAI,CAACE,wBAAwB,GAE7B,IAAI,CAACL,kBAAkB,CAACr3Q,IAAI,GAEpC,CAEQ+3Q,wBAA+B,CACnC,IAAI,CAACd,iBAAiB,CAACC,OAAO,CAAG,GACjC,IAAI,CAACD,iBAAiB,CAACE,SAAS,CAAG,GACnC,IAAI,CAACF,iBAAiB,CAACG,UAAU,CAAG,EACxC,CAEQK,gBAAuB,CAC3B,IAAI,CAACM,sBAAsB,GAC3B,IAAI,CAACf,mBAAmB,CAAG,EAC/B,CACJ,C,cChKO,OAAM6B,EACT,OAAuBn8M,QAAkB,UACzBrwG,CAAAA,KACApb,CAAAA,GAAwB,aAE5B6nU,EAAkB,EAAK,CAAE,CACjC,IAAI,CAACzsT,KAAK,CAAGwsT,EAAcE,cAAc,GACzC,IAAI,CAAC9nU,GAAG,CAAG6nU,EAASD,EAAcE,cAAc,GAAK,IACzD,CAEA,OAAeA,gBAA8B,CACzC,IAAM3kU,EAAUzB,SAAS80G,aAAa,CAACoxN,EAAcn8M,OAAO,EAE5D,OADAtoH,EAAQ+O,EAAE,CAAGq0H,CAAAA,EAAAA,EAAAA,CAAAA,IACNpjI,CACX,CACJ,CClBO,MAAM4kU,EACQC,SACAC,CAAAA,mBACAC,CAAAA,aACTrZ,CAAAA,WAAqB,CACrBsZ,CAAAA,mBAA6B,CAAE,aAE3BC,CAAuC,CAAEC,CAA0B,CAAEC,CAAoB,CAAE,CACnG,IAAI,CAACN,SAAS,CAAGI,EACjB,IAAI,CAACH,mBAAmB,CAAGI,EAC3B,IAAI,CAACH,aAAa,CAAGI,CACzB,CAEOltT,OAAc,CACjB,IAAI,CAACyzS,UAAU,CAAGx3S,KAAKq4C,GAAG,EAC9B,CAEO46P,MAAa,CAChB,GAAI,IAAI,CAAC6d,kBAAkB,CAAG,IAAI,CAACD,aAAa,EAAI,IAAI,CAACrZ,UAAU,CAC/D,OAGJ,IAAM0Z,EAAUlxT,KAAKq4C,GAAG,GAClB84Q,EAAcD,EAAU,IAAI,CAAC1Z,UAAU,CACzC2Z,GAAe,IAAI,CAACP,mBAAmB,GAI3C,IAAI,CAACE,kBAAkB,CAAGI,EAC1B,IAAI,CAACP,SAAS,CAACQ,GACnB,CAEOhtT,QAAe,CAClB,IAAI,CAACqzS,UAAU,CAAG53N,GACtB,CACJ,CCnCO,SAASwxO,EAA6BD,CAAmB,EAE5D,IAAMn/K,EAAOm/K,EADC,IAGd,OAAOn/K,EAAO,GAAM,EAAI,CAAC,QAAQ,EAAEA,IAAAA,EAAa,EAAE,CAAC,CAAG,CAAC,QAAQ,EAAE/nG,IAAAA,KAAKC,KAAK,CAAC8nG,GAAc,CAAC,EAAE/nG,IAAAA,KAAKiyD,IAAI,CAAC81C,GAAc,EAAE,CAC3H,CCSO,MAAMq/K,EACQC,mBACAC,CAAAA,cACA5pB,CAAAA,WACA6pB,CAAAA,oBACTC,CAAAA,gBAAkD,aAE9CxH,CAA0B,CAAE,CACpC,IAAI,CAACqH,mBAAmB,CAAG,IAAI9D,EAAmBvD,GAClD,IAAI,CAACsH,cAAc,CAAGtH,EACtB,IAAI,CAACwH,gBAAgB,CAAG,KACxB,IAAI,CAAC9pB,WAAW,CAAG,IAAIxpR,EAAAA,CACvB,KAAI,CAACqzS,oBAAoB,CAAG,IAAId,EAAoB,IAAI,CAACgB,eAAe,CAACrqU,IAAI,CAAC,IAAI,EAAG,IAAK,IAC9F,CAEA,OAAesqU,cAAczoU,CAAY,CAAQ,CAC7CA,EAAMwB,cAAc,GACpBxB,EAAMU,eAAe,GACrBV,EAAMuoH,wBAAwB,EAClC,CAEOmgN,oBAA2B,CAC9B,IAAI,CAACC,iBAAiB,GAEtB,IAAI,CAACP,mBAAmB,CAACrC,aAAa,GACtC,IAAI,CAACsC,cAAc,CAACjnU,gBAAgB,CAAC,QAAS+mU,EAAgBM,aAAa,CAC/E,CAEOE,mBAA0B,CAC7B,IAAI,CAACP,mBAAmB,CAACjC,YAAY,GACrC,IAAI,CAACkC,cAAc,CAAC9mU,mBAAmB,CAAC,QAAS4mU,EAAgBM,aAAa,CAClF,CAEO7sQ,KAAKgtQ,CAA2B,CAAEC,CAA+B,CAAgC,CAGpG,OAFA,IAAI,CAACN,gBAAgB,CAAG,IAAI,CAACO,eAAe,CAACF,GAEtCn6Q,CAAAA,EAAAA,EAAAA,CAAAA,EAAK,IAAI,CAAC85Q,gBAAgB,EAAE/rS,IAAI,CACnCk/R,CAAAA,EAAAA,EAAAA,CAAAA,EAAY7oG,GAGR,IAF2B,CAACu1G,mBAAmB,CAAC9B,mBAAmB,GAGxD,IAAI,CAAC8B,mBAAmB,CAAChC,iBAAiB,GAAG5pS,IAAI,CACpDw2F,CAAAA,EAAAA,EAAAA,CAAAA,IACAtsH,CAAAA,EAAAA,EAAAA,CAAAA,EAAI,IAAMmsN,IAIX/jK,CAAAA,EAAAA,EAAAA,EAAAA,EAAG+jK,IAEd6oG,CAAAA,EAAAA,EAAAA,CAAAA,EAAY7oG,GAAgB,IAAI,CAACk2G,YAAY,CAACl2G,EAAag2G,IAC3Dl6Q,CAAAA,EAAAA,EAAAA,CAAAA,EAAI,KACA,IAAI,CAAC45Q,gBAAgB,CAAG,KACxB,IAAI,CAACI,iBAAiB,EAC1B,GACAlsS,CAAAA,EAAAA,EAAAA,CAAAA,EAAU,IAAI,CAACgiR,WAAW,EAElC,CAEO1pP,SAAgB,CACnB,IAAI,CAAC4zQ,iBAAiB,GACtB,IAAI,CAAClqB,WAAW,CAACpiR,IAAI,GACrB,IAAI,CAAC2sS,kBAAkB,GAEO,OAA1B,IAAI,CAACT,gBAAgB,EACrB,IAAI,CAACA,gBAAgB,CAChBpoU,IAAI,CAAE0yN,IACHA,EAAY99J,OAAO,GAAG/vD,KAAK,CAACyoB,EAAAA,CAAIA,EAEhC,IAAM0zJ,EAAU0xC,EAAYa,EAAE,CAAC7wE,IAAI,CAACs+B,OAAO,CAACv+K,OAAO,OAC/Cu+K,GACAA,EAAQn6K,MAAM,EAEtB,GACChC,KAAK,CAACyoB,EAAAA,CAAIA,CAEvB,CAEQq7S,gBAAgBF,CAA2B,CAA4B,CAC3E,IAAM/1G,EAAc,IAAIo2G,EAAAA,EAAeA,CAAC,IAAI,CAACZ,cAAc,CAAEO,GAG7D,OAFA/1G,EAAYq2G,OAAO,CAACrmL,IAAI,CAACsmL,gBAAgB,GAElCt2G,EAAYu2G,WAAW,GAAGjpU,IAAI,CAAC,IAAM0yN,EAChD,CAEQk2G,aAAal2G,CAA4B,CAAEg2G,CAA+B,CAA6B,CAE3G,IAAMQ,EAAsBC,SADWllN,aAAa,GAAK,IAAI,CAACikN,cAAc,CACxBkB,SChGP3jM,CAAsB,EACvE,IAAMovE,EAAY5uM,OAAOk9Q,YAAY,GAErC,GAAItuE,OAAAA,GAAsBA,IAAAA,EAAUuuE,UAAU,GCN9C,KAAIvuE,EAAUuuE,UAAU,EAIjB3gR,EAAQO,QAAQ,CAAC6xM,EAAUkvE,UAAU,GAAKthR,EAAQO,QAAQ,CAAC6xM,EAAUqvE,SAAS,CAFrF,EDKI,OAAO,KAGX,IAAMN,EAAQ/uE,EAAU0uE,UAAU,CAAC,GAE7B8lD,EAAc,IAAInC,EAAc,CAACtjD,EAAMQ,SAAS,EAItD,OEdAR,EAAMiD,UAAU,CAACyiD,EAAO5uT,KAAK,EAC7BkpQ,EAAMkB,aAAa,CAACwkD,EAAO5uT,KAAK,EAE3BkpQ,EAAMQ,SAAS,EAAIklD,OAAAA,EAAOhqU,GAAG,GAC9BskR,EAAM35J,QAAQ,CAAC,IACf25J,EAAMiD,UAAU,CAACyiD,EAAOhqU,GAAG,EAC3BskR,EAAMmB,YAAY,CAACukD,EAAOhqU,GAAG,GFQ1B+pU,CACX,EDkFiG,IAAI,CAACnB,cAAc,EAAI,KAC1GqB,EAAwB,IAAI,CAACtB,mBAAmB,CAAC/B,kBAAkB,GAEnEsD,EAAoBd,EAAY/6C,OAAO,GACzC9pP,EAAU0lS,GAAyBL,OAAAA,EAA+B,IAAI,CAAChB,cAAc,CAAC3hD,SAAS,CAAGijD,EAOtG,OALA,IAAI,CAACC,mBAAmB,GAExB,IAAI,CAACtB,oBAAoB,CAACztT,KAAK,GAC/Bg4M,EAAYa,EAAE,CAAC/sL,IAAI,GAEZksL,EAAYhuN,IAAI,CAAC8hC,IAAI,CAAC3C,GAAS7jC,IAAI,CAAC,KACvC0yN,EAAYg3G,IAAI,CAAC,SACjB,IAAI,CAACvB,oBAAoB,CAACve,IAAI,GAE9B,IAAI,CAACif,kBAAkB,GACvBn2G,EAAYq2G,OAAO,CAACrmL,IAAI,CAACinL,eAAe,GAExC,IAAMC,EAAmBlB,EAAY/6C,OAAO,GAc5C,OAbK47C,GAAyBK,IAAqBJ,IAC/C3lS,EAAU+lS,EACVl3G,EAAYmtG,OAAO,CAACh8R,IAGpB7iC,SAASijH,aAAa,GAAK,IAAI,CAACikN,cAAc,EAC9C,IAAI,CAAC2B,kBAAkB,CAAC,IAAI,CAAC3B,cAAc,CAAEx1G,GAGrB,OAAxBw2G,GACA,IAAI,CAACY,iBAAiB,CAACp3G,EAAaw2G,GAGjC,CAAEx2G,YAAaA,EAAa62G,sBAAuBA,CAAsB,CACpF,EACJ,CAEQO,kBAAkBp3G,CAA4B,CAAEw2G,CAAkC,CAAQ,CAC9Fx2G,EAAYl9M,KAAK,CAACu0T,aAAa,CAAC,CAAEC,WAAY,EAAM,EAAIC,IACpD,IAAMC,EAAcx3G,EAAYl9M,KAAK,CAAC20T,OAAO,CAACv9T,GAAG,CAACs8T,EAAoBxuT,KAAK,CAAClJ,EAAE,EAC9E,GAAI04T,OAAAA,EACA,OAGJ,IAAME,EAAYlB,OAAAA,EAAoB5pU,GAAG,CAAYozN,EAAYl9M,KAAK,CAAC20T,OAAO,CAACv9T,GAAG,CAACs8T,EAAoB5pU,GAAG,CAACkS,EAAE,EAAI,KAC3G64T,EAAgBH,EAAYI,MAAM,GAClCC,EAAcH,OAAAA,EAAqBA,EAAUI,QAAQ,GAAKhnU,KAAAA,EAC1DogR,EAAQlxD,EAAYq2G,OAAO,CAACvzT,KAAK,CAACquQ,WAAW,CAACwmD,EAAeE,GACnEN,EAAOQ,YAAY,CAAC7mD,GACpBqmD,EAAOS,YAAY,CAACR,EAAYr/S,IAAI,EAElB,OAAdu/S,GACAH,EAAOS,YAAY,CAACN,EAAUv/S,IAAI,CAE1C,EACJ,CAEQg/S,mBAAmBc,CAA4B,CAAEr4G,CAAuB,CAAQ,CACpFq4G,EAAgBj+N,aAAa,CAAC,IAAIk+N,WAAW,UAC7Ct4G,EAAOy2G,OAAO,CAACrmL,IAAI,CAACziJ,KAAK,EAC7B,CAEQwpU,qBAA4B,CAChC,IAAI,CAACvB,cAAc,CAACjnU,gBAAgB,CAAC,cAAeI,GACpD,IAAI,CAAC6mU,cAAc,CAACjnU,gBAAgB,CAAC,YAAaI,GAClD,IAAI,CAAC6mU,cAAc,CAACjnU,gBAAgB,CAAC,aAAcI,GACnD,IAAI,CAAC6mU,cAAc,CAACjnU,gBAAgB,CAAC,UAAWI,EACpD,CAEQwnU,oBAA2B,CAC/B,IAAI,CAACX,cAAc,CAAC9mU,mBAAmB,CAAC,cAAeC,GACvD,IAAI,CAAC6mU,cAAc,CAAC9mU,mBAAmB,CAAC,YAAaC,GACrD,IAAI,CAAC6mU,cAAc,CAAC9mU,mBAAmB,CAAC,aAAcC,GACtD,IAAI,CAAC6mU,cAAc,CAAC9mU,mBAAmB,CAAC,UAAWC,EACvD,CAEQgnU,gBAAgBP,CAAmB,CAAQ,CAC/ChtS,EAAAA,CAAOA,CAACC,UAAU,CAAC,aAAc,UAAWgtS,EAA6BD,GAAc,IAAI,CAACI,cAAc,CAACtlU,gBAAgB,CAAC,KAAK/B,MAAM,CAC3I,CACJ,CIlLA,IAAMgqU,EAAwC,CAC1C,IACK,SACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,MAET,EAEMC,EAAY5xD,GAAyB2xD,CAAa,CAAC3xD,EAEzD,C,aCVO,OAAM6xD,EACFxiT,MACUyiT,CAAAA,2BACAxuB,CAAAA,QACAyuB,CAAAA,KAAc,aAEnBxoU,CAAoB,CAAEyoU,CAAuC,CAAEhvM,CAAY,CAAE,CACrF,IAAI,CAACsgL,QAAQ,CAAG/5S,EAChB,IAAI,CAACuoU,2BAA2B,CAAGE,EACnC,IAAI,CAACD,KAAK,CAAG/uM,EACb,IAAMivM,EAAsB,IAAI,CAAC3uB,QAAQ,CAACv6L,OAAO,CAAC2zD,iBAClD,KAAI,CAACrtJ,MAAM,CAAG4iT,KAAwB3nU,IAAxB2nU,GAAqCA,KAAAA,CACvD,CAEO/uQ,OAAOv4B,CAAe,CAAQ,CACjC,IAAMunS,EAAavnS,KAAAA,GAAkB,WAAI,CAAC24Q,QAAQ,CAAC54S,WAAW,EAAa,SAAI,CAAC44S,QAAQ,CAAC54S,WAAW,CAE/FwnU,GAAe,IAAI,CAAC7iT,MAAM,CAGpB6iT,GAAc,IAAI,CAAC7iT,MAAM,GAChC,IAAI,CAACA,MAAM,CAAG,GACd,IAAI,CAACyiT,2BAA2B,CAAC5/Q,KAAK,CAACw0Q,WAAW,CAAC,qBAAsB,QAJzE,IAAI,CAACr3S,MAAM,CAAG,GACd,IAAI,CAACyiT,2BAA2B,CAAC5/Q,KAAK,CAACw0Q,WAAW,CAAC,qBAAsB,CAAC,CAAC,EAAE,IAAI,CAACqL,KAAK,CAAC,CAAC,CAAC,EAKlG,CACJ,C,yBCqJK,SAGI,EAAe,CAAM,CAAE,CAAM,EACpC,OAAO,IAAM,CAAC,C,yBChLT,OAAMI,EACOC,aAECC,CAAAA,eACAC,CAAAA,eAA6B,aAElC/oU,CAAoB,CAAE,KDiIpC,EACA,CCjIM,KAAI,CAAC+oU,eAAe,CAAG/oU,EACvB,IAAI,CAAC+oU,eAAe,CAACpgR,KAAK,CAAC+tF,OAAO,CAAG,OAErC,IAAI,CAACoyL,eAAe,CAAG,IAAI7mC,EAAAA,CAAeA,CAAsBhhH,EAAAA,CAAmBA,CAACE,MAAM,EAE1F,IAAI,CAAC0nJ,aAAa,CAAG,IAAI,CAACC,eAAe,CAAClvS,IAAI,ED4HpD,eAA+B,GAA2B,EAK1D,EAAa,UAAc,EAEpB,QAAQ,SAAC,CAAM,CAAE,CAAU,EAGb,IAAf,EAEA,EAAQ,GAAK,EAEV,SAAS,CACd,QAAyB,EAAY,SAAC,CAAK,EAEzC,IAAM,EAAa,EAAY,GAK3B,IAAS,CAAC,EAAY,EAAa,EAAU,IAM/C,EAAQ,GAAM,EACA,EAAW,EAGd,IAAI,CAAC,GAAO,GAG5B,IC/J0EovS,CAAAA,EAAAA,EAAAA,CAAAA,EAAK,GAChF,CAEO72Q,SAAgB,CACnB,IAAI,CAAC22Q,eAAe,CAACl9Q,IAAI,CAACq1H,EAAAA,CAAmBA,CAACE,MAAM,EACpD,IAAI,CAAC2nJ,eAAe,CAACnjQ,QAAQ,EACjC,CAEOX,MAAa,CAChB,IAAI,CAAC8jQ,eAAe,CAACl9Q,IAAI,CAACq1H,EAAAA,CAAmBA,CAACC,KAAK,EACnD,IAAI,CAAC6nJ,eAAe,CAACpgR,KAAK,CAACqqM,cAAc,CAAC,UAC9C,CAEOliM,MAAa,CAChB,IAAI,CAACg4Q,eAAe,CAACl9Q,IAAI,CAACq1H,EAAAA,CAAmBA,CAACE,MAAM,EACpD,IAAI,CAAC4nJ,eAAe,CAACpgR,KAAK,CAAC+tF,OAAO,CAAG,MACzC,CACJ,CC/BO,MAAMuyL,EACQlvB,QACThqC,CAAAA,KAAc,aAEVm5D,CAAoB,CAAElpU,CAAoB,CAAE,CACpD,IAAI,CAAC+vQ,KAAK,CAAGm5D,EACb,IAAI,CAACnvB,QAAQ,CAAG/5S,CACpB,CAEOkrR,SAAkB,CACrB,OAAO,IAAI,CAACnb,KAChB,CAEOqtD,QAAQn7T,CAAY,CAAQ,CAC/B,IAAI,CAAC8tQ,KAAK,CAAG9tQ,EAEb,IAAI,CAAC83S,QAAQ,CAACj2B,SAAS,CAAG7hR,CAC9B,CAEOkwD,SAAgB,CACnB,CAER,C,cCjBO,OAAMg3Q,EACT,OAAuB74J,aAAuB,GAAI,QAC1B84J,aAAiD,CAAEC,QAAS,GAAMzH,QAAS,EAAK,CACvF0H,CAAAA,YACAC,CAAAA,UACAjyE,CAAAA,SACA60D,CAAAA,OACAqd,CAAAA,kBACAC,CAAAA,iBACT15D,CAAAA,KAAc,aAEVm5D,CAAoB,CAAEj5G,CAA4B,CAAEt2L,CAAiC,CAAE,CAC/F,IAAI,CAACo2O,KAAK,CAAGm5D,EACb,IAAI,CAACI,YAAY,CAAGr5G,EACpB,IAAI,CAACqnC,SAAS,CAAG39N,EACjB,IAAI,CAAC4vS,UAAU,CAAG,IAAIG,EAAAA,CAASA,CAACP,EAAoB74J,YAAY,CAAE,IAAM,IAAI,CAACxC,WAAW,IACxF,IAAI,CAACq+I,OAAO,CAAG,IAAM,IAAI,CAACod,UAAU,CAACrqK,KAAK,GAC1C,IAAI,CAACsqK,kBAAkB,CAAG,IAAI5E,EAAoB,IAAI,CAAC+E,cAAc,CAACpuU,IAAI,CAAC,IAAI,CAAE,uBAAwB,IAAK,KAC9G,IAAI,CAACkuU,iBAAiB,CAAG,IAAI7E,EAAoB,IAAI,CAAC+E,cAAc,CAACpuU,IAAI,CAAC,IAAI,CAAE,uBAAwB,IAAK,KAE7G,IAAI,CAAC+tU,YAAY,CAACv2T,KAAK,CAACxU,QAAQ,CAACg7B,EAAE,CAAC,cAAe,IAAI,CAACgwS,UAAU,CAACnoJ,GAAG,EACtE7iL,SAASC,gBAAgB,CAAC,OAAQ,IAAI,CAAC2tT,OAAO,CAAEgd,EAAoBC,YAAY,CACpF,CAEOl+C,SAAkB,CACrB,OAAO,IAAI,CAACnb,KAChB,CAEOqtD,QAAQn7T,CAAY,CAAQ,CAC/B,IAAI,CAACsnU,UAAU,CAAClxT,MAAM,GACtB,IAAI,CAAC03P,KAAK,CAAG9tQ,EAEb,IAAI,CAACunU,kBAAkB,CAACvxT,KAAK,GAE7B,IAAI,CAACqxT,YAAY,CAACv2T,KAAK,CAACxU,QAAQ,CAACwrC,GAAG,CAAC,cAAe,IAAI,CAACw/R,UAAU,CAACnoJ,GAAG,EACvE,IAAI,CAACkoJ,YAAY,CAAClM,OAAO,CAACn7T,GAC1B,IAAI,CAACqnU,YAAY,CAACv2T,KAAK,CAACxU,QAAQ,CAACg7B,EAAE,CAAC,cAAe,IAAI,CAACgwS,UAAU,CAACnoJ,GAAG,EAEtE,IAAI,CAACooJ,kBAAkB,CAACriB,IAAI,EAChC,CAEOh1P,SAAgB,CACnB,IAAI,CAACo3Q,UAAU,CAACrqK,KAAK,GACrB3gK,SAASI,mBAAmB,CAAC,OAAQ,IAAI,CAACwtT,OAAO,CAAEgd,EAAoBC,YAAY,CACvF,CAEQt7J,aAAoB,CACxB,IAAI,CAAC27J,iBAAiB,CAACxxT,KAAK,GAE5B,IAAMhW,EAAO,IAAI,CAACqnU,YAAY,CAACp+C,OAAO,CAAC,CAAEpgO,KAAM,MAAO,EACtD,KAAI,CAACilN,KAAK,CAAG9tQ,EAEb,IAAI,CAACwnU,iBAAiB,CAACtiB,IAAI,GAC3B,IAAI,CAAC7vD,SAAS,CAACr1P,EACnB,CAEQ0nU,eAAej1C,CAAkB,CAAE2wC,CAAmB,CAAQ,CAClEhtS,EAAAA,CAAOA,CAACC,UAAU,CAAC,aAAco8P,EAAY4wC,EAA6BD,GAAc,IAAI,CAACiE,YAAY,CAACnL,aAAa,EAAEh+T,iBAAiB,KAAK/B,OACnJ,CACJ,CC7CO,MAAMwrU,GACOzL,aACAjjK,CAAAA,OACA2uK,CAAAA,WACA51J,CAAAA,MACTsK,CAAAA,QAAkC,IAExBgqJ,CAAAA,2BACAuB,CAAAA,oBACAC,CAAAA,YACAzyE,CAAAA,SACA0yE,CAAAA,uBACAC,CAAAA,aACAv6G,CAAAA,oBACAw6G,CAAAA,oBACAC,CAAAA,qBACAC,CAAAA,WACAC,CAAAA,gBACTC,CAAAA,YACAhB,CAAAA,aAAuC,IACvCiB,CAAAA,YAAiC,aAGrCnjU,CAAqB,CACrB8gU,CAAuC,CACvC7pJ,CAAwC,CACxCoqJ,CAAkD,CAClDx0J,CAAyB,CACzBt6I,CAAiC,CACjCk5I,CAAkG,CAClGn+E,CAAmB,CACrB,CACE,IAAI,CAACypO,aAAa,CAAG+J,EAAgBtsN,OACrC,KAAI,CAACsuN,oBAAoB,CAAG7rJ,EAC5B,IAAI,CAACkqJ,2BAA2B,CAAGE,EAA2B7sN,OAC9D,KAAI,CAACq4D,MAAM,CAAGA,EACd,IAAI,CAACg2J,aAAa,CAAG7iU,EACrB,IAAI,CAACijU,gBAAgB,CAAG31O,EAExB,IAAI,CAACo1O,oBAAoB,CAAG,IAAInhK,EAAAA,CAChC,KAAI,CAACohK,YAAY,CAAG,IAAIphK,EAAAA,CACxB,KAAI,CAACkhK,WAAW,CAAG,IAAI,CAACE,YAAY,CAAClhK,YAAY,GACjD,IAAI,CAACuhK,WAAW,CAAG,IAAI7E,EAAgB,IAAI,CAACpH,aAAa,EACzD,IAAI,CAACiM,WAAW,CAACtE,kBAAkB,GAEnC,IAAI,CAACxuE,SAAS,CAAG39N,EACjB,IAAI,CAACqwS,uBAAuB,CAAGn3J,EAC/B,IAAI,CAACs3J,qBAAqB,CAAG,IAAI,CAACK,oBAAoB,CAACjvU,IAAI,CAAC,IAAI,EAEhE,IAAM2/J,EAAU,IAAI,CAACuvK,0BAA0B,EAC/C,KAAI,CAACvvK,OAAO,CAAGA,EAAQthI,IAAI,CAAC91B,CAAAA,EAAAA,EAAAA,CAAAA,EAAI8lU,GAAOc,2BAA2B,GAClE,IAAI,CAACh7G,oBAAoB,CAAGx0D,EAAQphI,SAAS,CAAC,IAAI,CAACqwS,qBAAqB,EAExE,IAAI,CAACG,YAAY,CAAG,IAAIhC,EAAyB,IAAI,CAACnK,aAAa,CAAE,IAAI,CAACoK,2BAA2B,CAAE,IAAI,CAAC8B,gBAAgB,EAC5H,IAAI,CAACE,YAAY,CAAG,IAAItB,EAAmB,GAAI,IAAI,CAAC9K,aAAa,EAEjE,IAAI,CAACwM,QAAQ,CAACvjU,EAAO8hH,WAAW,CACpC,CAEA,OAAewhN,4BAA4B3wS,CAA8B,CAAsB,CAC3F,OAAOA,OAAAA,EAAiB,CAAE81L,OAAQ,KAAMt9L,UAAW,EAAM,EAAI,CAAEs9L,OAAQ91L,EAAMk2L,WAAW,CAAE19L,UAAW,EAAK,CAC9G,CAEOyoI,QAAe,CAClB,IAAI,CAAC8uK,oBAAoB,CAACl+Q,IAAI,CAAC,GACnC,CAEOqvG,SAAgB,CACnB,IAAI,CAACmvK,WAAW,CAACtE,kBAAkB,GACnC,IAAI,CAACgE,oBAAoB,CAACl+Q,IAAI,CAAC,GACnC,CAEOuG,SAAgB,CACO,OAAtB,IAAI,CAACm3Q,YAAY,EACjB,IAAI,CAACsB,cAAc,CAAC,IAAI,CAACtB,YAAY,EAAElnU,KAAK,CAACyoB,EAAAA,CAAIA,EAGrD,IAAI,CAACk/S,YAAY,CAACn+Q,IAAI,GACtB,IAAI,CAACm+Q,YAAY,CAACpkQ,QAAQ,GAC1B,IAAI,CAAC+pJ,oBAAoB,CAACjgG,WAAW,GACrC,IAAI,CAACq6M,oBAAoB,CAACnkQ,QAAQ,GAClC,IAAI,CAACykQ,WAAW,CAACj4Q,OAAO,EAC5B,CAEO+9J,aAAsC,CACzC,OAAO,IAAI,CAACo5G,YAChB,CAEOp+C,SAAkB,CACrB,OAAO,IAAI,CAACq/C,YAAY,CAACr/C,OAAO,EACpC,CAEOkyC,QAAQn7T,CAAY,CAAQ,CAC3BA,IAAS,IAAI,CAACipR,OAAO,IACrB,IAAI,CAACy/C,QAAQ,CAAC1oU,EAEtB,CAEQ0oU,SAAS1oU,CAAY,CAAQ,CACjC,IAAM4oU,EAAa5oU,KAAAA,EAAcA,EAAO,IAAI,CAACgyK,MAAM,CAACs8C,aAAa,CAACtuN,GAClE,IAAI,CAACsoU,YAAY,CAACnN,OAAO,CAACyN,GAC1B,IAAI,CAACP,YAAY,CAAC3wQ,MAAM,CAACkxQ,EAC7B,CAEQL,qBAAqBzwS,CAA8B,CAAQ,CAC/D,IAAI+wS,EAAc,IAAI,CAACP,YAAY,CAACr/C,OAAO,GAE3C,GAAInxP,OAAAA,EAAgB,CAChB,IAAI,CAACuvS,YAAY,CAAG,KACpB,IAAI,CAACiB,YAAY,CAAG,IAAItB,EAAmB6B,EAAa,IAAI,CAAC3M,aAAa,EAC1E,IAAI,CAACmM,YAAY,CAAG,IAAIhC,EAAyB,IAAI,CAACnK,aAAa,CAAE,IAAI,CAACoK,2BAA2B,CAAE,IAAI,CAAC8B,gBAAgB,EAC5H,MACJ,CAEA,IAAI,CAACf,YAAY,CAAGvvS,EAAMk2L,WAAW,CACjCl2L,EAAM+sS,qBAAqB,GAC3BgE,EAAc,IAAI,CAACxB,YAAY,CAACp+C,OAAO,CAAC,CAAEpgO,KAAM,MAAO,GACvD,IAAI,CAACwsM,SAAS,CAACwzE,IAGnB,IAAI,CAACR,YAAY,CAAG,IAAIrN,EAAAA,CAAmBA,CAAC,IAAI,CAACsL,2BAA2B,CAAE,IAAI,CAAC8B,gBAAgB,EACnG,IAAI,CAACE,YAAY,CAAG,IAAIpB,EAAoB2B,EAAa,IAAI,CAACxB,YAAY,CAAGyB,IACzE,IAAI,CAACT,YAAY,CAAC3wQ,MAAM,CAACoxQ,GACzB,IAAI,CAACzzE,SAAS,CAACyzE,EACnB,GAEA,IAAI,CAACzB,YAAY,CAAC0B,OAAO,CAAC7gU,GAAG,CAAC8gU,EAAAA,EAAiBA,EAAE1xS,EAAE,CAAC,sBAAuB,CAACiB,EAAY0wS,IAAgD,IAAI,CAACC,QAAQ,CAACD,IAEtJ,IAAM7oB,EAAiB,IAAI,CAACinB,YAAY,CAACx4G,EAAE,CAAC7wE,IAAI,CAACs+B,OAAO,CAACv+K,OACzD,KAAI,CAACu+K,OAAO,CAAG,IAAIqqJ,EAAevmB,GAClC,IAAMhkI,EAAmB,IAAI,CAAC6rJ,oBAAoB,CAACtuN,OAAO,CAC1D,IAAI,CAAC2iE,OAAO,CAACsqJ,aAAa,CAAC/uS,SAAS,CAAEsxS,GAAgB,IAAI,CAACpB,uBAAuB,CAACoB,EAAa/sJ,IAC/F,IAAI,CAAC6rJ,oBAAoB,CAACtuN,OAAO,CAAiBpI,WAAW,CAAC6uM,EACnE,CAEQ8oB,SAASD,CAA2C,CAAQ,CAChE,IAAMG,EAAyB,IAAI,CAAC/B,YAAY,CAAqBrnU,IAAI,CAACqpU,aAAa,CACnFp1D,EAAa,GAEbg1D,EAAUK,YAAY,CAACn/C,KAAK,CAAChtQ,QAAQ,CAAC,cACtC82P,CAAAA,EAAam1D,EAAsBG,MAAM,CAACN,EAAU9pS,OAAO,GAG5C,KAAf80O,GAAqBg1D,EAAUK,YAAY,CAACn/C,KAAK,CAAChtQ,QAAQ,CAAC,eAC3D82P,CAAAA,EClKDu1D,EDkKuDF,YAAY,CAACrgD,OAAO,CAAC,cNxJtE34Q,OAAO,CAAC,WAAY81T,GOT5B91T,OAAO,CAAC,MAAO,4BACfA,OAAO,CAAC,aAAc,UACtBA,OAAO,CAAC,sBAAuB,aAC/BA,OAAO,CAAC,MAAO,iBACfA,OAAO,CAAC,QAAS,WACjBA,OAAO,CAAC,MAAO,SD4J4E,EAGzE,KAAf2jQ,GACAg1D,CAAAA,EAAU9pS,OAAO,CAAGiqS,EAAsB36G,MAAM,CAAC,IAAI,CAACz8C,MAAM,CAACs8C,aAAa,CAAC2lD,GAAW,CAE9F,CAEQu0D,4BAAkE,CACtE,OAAO,IAAI,CAACX,oBAAoB,CAAClwS,IAAI,CACjC8oQ,CAAAA,EAAAA,EAAAA,CAAAA,EAAU,IE/Hb,QAAQ,SAAC,CAAM,CAAE,CAAU,EACpB,IAAR,EACA,EAAU,GAAM,EACb,SAAS,CACd,QAAyB,EAAY,SAAC,CAAK,EACzC,IAAM,EAAI,EAAK,EACR,EAAM,GACF,EAAW,IAAI,CAAC,CAAC,EAAG,EAAM,EAAE,EAC7B,EAAI,GAEjB,GFuHOriS,CAAAA,EAAAA,EAAAA,CAAAA,EAAO,OAAC,CAAC8sN,EAAep3D,EAAa,UAAKo3D,IAAkBp3D,CAAY,GACxE21K,CAAAA,EAAAA,EAAAA,CAAAA,EAAU,OAAC,CAAClxS,EAAGmxS,EAAoC,UAAK,IAAI,CAACC,aAAa,CAACD,EAAgB,GAC3F9xS,CAAAA,EAAAA,EAAAA,CAAAA,EAAU,IAAI,CAACkwS,YAAY,EAC3BnuR,CAAAA,EAAAA,EAAAA,CAAAA,IAER,CAEQgwR,cAAcC,CAAqB,CAAuC,QAC9E,GACI,IAAI,CAAC7B,uBAAuB,CAAC/oJ,EAAAA,CAAmBA,CAACzuD,OAAO,CAAE,IAAI,CAAC03M,oBAAoB,CAACtuN,OAAO,EAEpF,IAAI,CAACwuN,WAAW,CAACpxQ,IAAI,CAAC,IAAI,CAACixQ,aAAa,CAAE,IAAI,CAACM,YAAY,GAG/D1+Q,CAAAA,EAAAA,EAAAA,CAAAA,EAAK,IAAI,CAAC++Q,cAAc,CAAC,IAAI,CAACtB,YAAY,EAAqB/rU,IAAI,CAAC,IAAM,MACrF,CAEQqtU,eAAe/6G,CAAuB,CAAoB,CAQ9D,OAPA,IAAI,CAAC06G,YAAY,CAACp4Q,OAAO,GAExB09J,EAAOiB,EAAE,CAAC7wE,IAAI,CAACs+B,OAAO,CAACv+K,OAAO,CAAiBoE,MAAM,GACrD,IAAI,CAACm6K,OAAO,CAAoBpsH,OAAO,GACxC,IAAI,CAACosH,OAAO,CAAG,KACf,IAAI,CAAC+qJ,YAAY,CAAG,KAEbz5G,EAAO19J,OAAO,EACzB,CACJ,C,gBGrMA,IAAM25Q,GAAc,CAACC,EAAkBC,KAEnCzyH,EADgCv5M,OAAO,CACxBxB,gBAAgB,CAAC,QAAS,IAAM65B,EAAAA,CAAOA,CAACC,UAAU,CAAC,qBAAsB,QAASyzS,GACrG,EAEME,GAAgB,CAACF,EAAkBC,KAC/BA,aAAoBE,EAAAA,EAAAA,EAK1B3K,EAD8BP,SAAS,CAAChhU,OAAO,CAClCxB,gBAAgB,CAAC,QAAU2nC,IACnB,OAAbA,EAAEzoC,MAAM,EAAcyoC,OAAAA,EAAEzoC,MAAM,CAAaygE,OAAO,CAAC,WACnD9lC,EAAAA,CAAOA,CAACC,UAAU,CAAC,qBAAsB,QAASyzS,EAE1D,EACJ,EAEMI,GAAqB,CAACJ,EAAkBC,KAC1CC,GAAcF,EAAUC,GAEpBA,aAAoBE,EAAAA,EAAYA,EAAIF,EAASjL,UAAU,YAAYqL,EAAAA,EAAeA,EACjFJ,EAASjL,UAAU,CAACsL,UAAU,CAACrsU,OAAO,CAAiBxB,gBAAgB,CAAC,QAAS,IAAM65B,EAAAA,CAAOA,CAACC,UAAU,CAAC,qBAAsB,QAASyzS,GAElJ,EAEMO,GAA0Bz8G,IAC5B,GAAI,CAACA,EAAOm7G,OAAO,CAAC96Q,GAAG,CAAC,UACpB,OAGJ,IAAMq8Q,EAAS18G,EAAOm7G,OAAO,CAAC7gU,GAAG,CAAC,UAClCoiU,EAAOhzS,EAAE,CAAC,OAAQ,KACd,GAAIgzS,KAAgBxrU,IAAhBwrU,EAAOtsL,IAAI,EAAkBssL,KAA4BxrU,IAA5BwrU,EAAOtsL,IAAI,CAACusL,WAAW,CACpD,OAEJ,IAAMC,EAAwBF,EAAOtsL,IAAI,CAACusL,WAAW,CAACluJ,QAAQ,CAACluD,KAAK,CAChEq8M,aAAiCC,EAAAA,EAAqBA,EACtDD,EAAsBE,QAAQ,CAACpzS,EAAE,CAAC,UAAW,KACzClB,EAAAA,CAAOA,CAACC,UAAU,CAAC,qBAAsB,QAAS,oBACtD,EAER,EACJ,EAEMs0S,GAAiH,CACnH,gBACiBX,GACjBpjT,UAAWsjT,GACXU,KAHgE,GAIhEC,aAAcX,GACdY,oBAAqBd,GACrBe,UAAWf,GACXgB,WAAYhB,GACZzkD,SAAUykD,GACVh+Q,QAASg+Q,GACTiB,OAAQpB,GACRqB,OAAQrB,GACR13J,OAAQ03J,GACRsB,aAAcjB,GACdkB,QAASvB,GACTwB,KAAMxB,GACNyB,aAAczB,GACd0B,cAAe1B,GACf2B,UAAW3B,GACX4B,YAAa5B,GACb6B,UAAW7B,GACX8B,KAAM9B,EACV,E,gBCrEO,IAAM+B,GAA+Bh+G,IACxC,IAAIi+G,EAAqBjjT,EAAAA,CAAIA,CAoB7B,OAlBAglM,EAAO30D,OAAO,CAACphI,SAAS,CAAEymS,IACtB,GAAI,CAACA,EAAahuS,SAAS,CAAE,CACzBs9L,EAAOsuG,aAAa,CAACx/T,mBAAmB,CAAC,QAASmvU,GAClD,MACJ,CAEA,IAAM79G,EAAcswG,EAAa1wG,MAAM,CAKjCk+G,EAAW,IAAInJ,EAJIS,IACrBhtS,EAAAA,CAAOA,CAACC,UAAU,CAAC,aAAc,QAASgtS,EAA6BD,GAAcx1G,EAAOsuG,aAAa,CAACh+T,gBAAgB,CAAC,KAAK/B,MAAM,CAC1I,EAE0D,IAAM,KAChE6xN,EAAYq2G,OAAO,CAACrmL,IAAI,CAAC1hJ,QAAQ,CAACg7B,EAAE,CAAC,QAAS,IAAMw0S,EAAS91T,KAAK,GAAI,CAAEo1P,SAAU,SAAU,GAE5FygE,EAAqB,IAAMC,EAAS5mB,IAAI,GACxCt3F,EAAOsuG,aAAa,CAAC3/T,gBAAgB,CAAC,QAASsvU,EAAoB,CAAElM,QAAS,EAAK,EACvF,GAEO/2S,EAAAA,CACX,ECrBamjT,GAAkCn+G,IAC3CA,EAAO30D,OAAO,CAACphI,SAAS,CAAEymS,IACjBA,EAAahuS,SAAS,EAI3B07S,GAAuB1N,EAAa1wG,MAAM,CAC9C,GAEOhlM,EAAAA,CACX,EAEMojT,GAA0Bp+G,IAS5B,IAAMq+G,EAAmB,IAAItJ,EARLS,IACpBhtS,EAAAA,CAAOA,CAACC,UAAU,CAAC,aAAc,YAAagtS,EAA6BD,GAAcx1G,EAAO98M,KAAK,CAACxU,QAAQ,CAACmnQ,OAAO,CAC1H,EAMiE,IAAK,KAChEyoE,EAAgB,IAAIvJ,EALOS,IAC7BhtS,EAAAA,CAAOA,CAACC,UAAU,CAAC,aAAc,oBAAqBgtS,EAA6BD,GAAcx1G,EAAO98M,KAAK,CAACxU,QAAQ,CAACmnQ,OAAO,CAClI,EAGuE,IAAM,KAEvE0oE,EAAcv+G,EAAOw+G,QAAQ,CAAClkU,GAAG,CAAC,QAClCmkU,EAAcz+G,EAAOw+G,QAAQ,CAAClkU,GAAG,CAAC,QAElCokU,EAAkB,CAAElhE,SAAU,SAAU,EACxCmhE,EAAiB,CAAEnhE,SAAU,QAAS,EAGxCohE,EAAa,EACbC,EAAmB,EAEjBC,EAAgB,KACdF,IAAAA,EACAN,EAAcl2T,KAAK,GACZy2T,EARW,KAQ6Bx6T,KAAKq4C,GAAG,KACvDkiR,EAAa,EACbC,EAAmB,EACnBP,EAAc91T,MAAM,IAGxB61T,EAAiBj2T,KAAK,GACtBw2T,GACJ,EAEMG,EAAe,KACjBF,EAAmBx6T,KAAKq4C,GAAG,GACR,IAAfkiR,IACAN,EAAchnB,IAAI,GAClBsnB,EAAa,GAGjBP,EAAiB/mB,IAAI,EACzB,CAEoBpmT,MAAAA,IAAhBqtU,IACAA,EAAY70S,EAAE,CAAC,UAAWo1S,EAAeJ,GACzCH,EAAY70S,EAAE,CAAC,UAAWq1S,EAAcJ,IAGxBztU,KAAAA,IAAhButU,IACAA,EAAY/0S,EAAE,CAAC,UAAWo1S,EAAeJ,GACzCD,EAAY/0S,EAAE,CAAC,UAAWq1S,EAAcJ,GAEhD,ECNA,SAASK,GAAiBr/B,CAAmC,CAAE3/E,CAAe,CAAEr1L,CAAuB,EAqEnG,OApEAq1L,EAAO30D,OAAO,CAACphI,SAAS,CAAEgmS,IACtB,IAAIgP,EAAa,EACbC,EAAc,EACdC,EAAwC,KAE5C,GAAI,CAAClP,EAAYvtS,SAAS,EAAI,CAACutS,EAAYjwG,MAAM,CAACm7G,OAAO,CAAC96Q,GAAG,CAAC,UAC1D,OAGJ,IAAM++Q,EAAenP,EAAYjwG,MAAM,CAACm7G,OAAO,CAAC7gU,GAAG,CAAC,UAEpD21T,EAAYjwG,MAAM,CAACiB,EAAE,CAAC3+C,YAAY,CAAC54I,EAAE,CAAC,mBAAoB,KACtD,GAAI01S,EAAar7S,MAAM,EAAI,CAACksS,EAAYjwG,MAAM,CAACiB,EAAE,CAAC3+C,YAAY,CAAC+8J,SAAS,CAAE,CACtE,IACMlrS,EAAO87R,EAAYjwG,MAAM,CAACy2G,OAAO,CAACrmL,IAAI,CAACziJ,KAC7CsiU,CAAAA,EAF6D,MAE3C,CAACwG,OAAO,CAACrmL,IAAI,CAACziJ,KAAK,CAAGqtB,EAAAA,CAAIA,CAC5CokT,EAAan+Q,IAAI,GACjBgvQ,EAAYjwG,MAAM,CAACy2G,OAAO,CAACrmL,IAAI,CAACziJ,KAAK,CAAGwmC,CAC5C,CACJ,GAEAirS,EAAa11S,EAAE,CAAC,OAAQ,KACpB,IAAM41S,EAAaF,EAAahvL,IAAI,CACpC,GAAIkvL,KAAepuU,IAAfouU,EACA,OAGJ,IAAM/xS,EAAU+xS,EAAWnvU,OAAO,CAC5BovU,EAAgBhyS,EAAQiiJ,iBAE9BmwH,CAAAA,EAAY5zL,OAAO,EAAEx2E,OAAOhI,GAC5BA,EAAQsjJ,aAAa,EAAEvhL,aAAa,MAAO,OAG3C,IAAMkwU,EAAiBF,EAAWrsQ,MAElCqsQ,CAAAA,EAAWrsQ,MAAM,CAAG,CAACnxB,EAAGilE,KACpB,GAAM,CAACvE,EAAM5pD,EAAI,CAAG6mR,SA3FDtvU,CAAoB,CAAEy4P,CAAqB,CAAE82E,CAAwB,CAAEC,CAAwB,EAC9H,IAAMC,EAAeh3E,EAASnwM,qBAAqB,GAC7ConR,EAAc1vU,EAAQsoD,qBAAqB,GAC7CqnR,EAAiBJ,EACjBK,EAAiBJ,EAEID,EAAmBG,EAAYltP,KAAK,CAEtCi2K,EAAShhK,WAAW,EAInCk4O,CAHJA,EAASl3E,EAAShhK,WAAW,CAAGi4O,EAAYltP,KAE5C,EACa,GACTmtP,CAAAA,EAAS,GAIbJ,EAAmB,GACnBI,CAAAA,EAAS,GAGTH,EAAmB/2E,EAASh0N,SAAS,EACrCmrS,CAAAA,EAASn3E,EAASh0N,SACtB,EAEA,IAAMorS,EAAwBp3E,EAASh0N,SAAS,CAAGgrS,EAAalnR,MAAM,CAChEunR,EAAoBN,EAAmBE,EAAYnnR,MAAM,CAa/D,OAXIunR,EAAoBD,IAEhBJ,EAAalnR,MAAM,CAAGmnR,EAAYnnR,MAAM,CACpCunR,EAAoBr3E,EAAS99F,YAAY,EACzCi1K,CAAAA,EAASn3E,EAAS99F,YAAY,CAAG+0K,EAAYnnR,MACjD,EAEAqnR,EAASC,EAAwBH,EAAYnnR,MACjD,EAGG,CAAConR,EAAQC,EACpB,EAmD8DR,EAAe5/B,EAAY5zL,OAAO,CAAiBjqE,EAAGilE,GACpGy4N,EAAej0U,IAAI,CAAC+zU,EAAY98N,EAAM5pD,GACtCqmR,EAAarmR,EACbsmR,EAAc18N,CAClB,EAEA88N,EAAWY,cAAc,CAAG,KACxB,GAAM,CAACp+R,EAAGilE,EAAE,CAAGo5N,SAxDU1wK,CAAmB,CAAEm5F,CAAqB,CAAEw3E,CAA0B,EAC3G,IAAMR,EAAeh3E,EAASnwM,qBAAqB,GAC7C4nR,EAAa5wK,EAAOh3G,qBAAqB,GACzC6nR,EAAoBF,EAAc3nR,qBAAqB,GAK7D,MAAO,CAHM6nR,EAAkB3sN,KAAK,CAAG0sN,EAAW1tP,KAAK,CADxC,GACoDitP,EAAap9N,IAAI,CACxEl0D,KAAKkyD,GAAG,CAACo/N,EAAahnR,GAAG,CAAGgwM,EAASh0N,SAAS,CAAG0rS,EAAkBp+N,MAAM,CAFtE,IAKnB,EAgDoBq9N,EACA5/B,EAAY5zL,OAAO,CACnBkkN,EAAYjwG,MAAM,CAACiB,EAAE,CAAC7wE,IAAI,CAACs+B,OAAO,CAACv+K,OAAO,EAE9CmvU,EAAWrsQ,MAAM,CAACnxB,EAAGilE,EACzB,EAOAo4N,CAJAA,EAAiB,IAAIr8E,eAAe,KAChCw8E,EAAWrsQ,MAAM,CAACisQ,EAAaD,EACnC,EAAC,EAEc/7E,OAAO,CAACy8C,EAAY5zL,OAAO,CAC9C,GAEAqzN,EAAa11S,EAAE,CAAC,OAAQ,KACG,OAAnBy1S,IACAA,EAAe97E,UAAU,GACzB87E,EAAiB,KAEzB,EACJ,GAEOnkT,EAAAA,CACX,CAEO,IAAMulT,GAAoC5gC,GACtCq/B,GAAiBtzU,IAAI,CAAC,KAAMi0S,ECzIhC,OAAM6gC,WAA4BC,EAAAA,EAAMA,CAC3C,OAAwBC,cAAsC,CAC1DC,gBAAiB,CAAC,KAAK,CACvBC,QAAS,CAAC,QAAS,aAAc,SAAU,aAAc,YAAa,QAAQ,CAC9EC,QAAS,GACTC,UAAW,GACXC,SAAU,GACVlmP,QAAS,GACTmmP,aAAc,EAClB,CAAE,QAEsBC,cAAwC,CAC5D/9T,MAAOs9T,GAAoBU,oBAAoB,CAC/C9wL,KAAM,CACFphC,WAAY,CAAC,KAAK,CAClBz2F,KAAMq8S,EAAcn8M,OACxB,CACJ,CAAE,QAEayoN,qBAAqBC,CAAwB,CAAU,CAClE,IAAMC,EAAUD,EAAYpxU,YAAY,CAAC,MACzC,OAAOqxU,KAAYlwU,IAAZkwU,EAAwBA,EAAU,EAC7C,CAEOltS,MAAa,CAChB,IAAI,CAAC8rL,MAAM,CAAC98M,KAAK,CAACm+T,MAAM,CAACxtU,QAAQ,CAAC+gU,EAAcn8M,OAAO,CAAE+nN,GAAoBE,aAAa,EAC1F,IAAI,CAAC1gH,MAAM,CAACshH,UAAU,CAAC31L,GAAG,CAAC,UAAU41L,eAAe,CAACf,GAAoBS,aAAa,CAC1F,CACJ,CC5BO,IAAMO,GAAoD,CAC7Dp/B,EAAAA,EAAKA,CACLq/B,EAAAA,EAAUA,CACVC,EAAAA,EAASA,CACTC,EAAAA,EAASA,CACTC,EAAAA,EAAMA,CACNC,EAAAA,EAAIA,CACJC,EAAAA,EAAkBA,CAClBC,EAAAA,EAAeA,CACfvB,GACF,OCMWwB,GACT,OAAwBC,mBAAmD,CACvEC,MAAO,CACH,CACIlzN,WAAY,GACZmzN,QAAS,GACT5pT,KAAM,KACN8zO,OAAQ,EACZ,EAER,CAAE,QAEYvkM,OACVuwQ,CAAuC,CACvC7pJ,CAAwC,CACxCoqJ,CAAkD,CAClDrnS,CAAe,CACfzH,CAA8B,CAC9BvyB,CAA4B,CAGrB,CAAC,IAAD,EAFP4jU,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAgC,EAAE,CAClCn4J,EAAmG,uCAE7FmzJ,EAAe6L,GAAcI,oBAAoB,CAAC7qU,EACxD4+T,CAAAA,EAAa98M,WAAW,CAAG9nF,EAC3B4kS,EAAagF,OAAO,CAAGhF,EAAagF,OAAO,CAACnyS,MAAM,CAACw4S,GAAqBrG,GACxEhF,EAAatJ,UAAU,CAAGD,GAAAA,CAAcA,CAACC,UAAU,CAEnD,IAAMwV,EAAyBr/J,GAA0BhoJ,EAAAA,CAAIA,CACvDglM,EAAS,IAAI+5G,GACf5D,EACAkC,EACA7pJ,EACAoqJ,EACArhU,EAAO6sK,MAAM,CACbt6I,EACAu4S,EACA9qU,EAAOstF,WAAW,EAGhBy9O,EAA4B/qU,EAAOwsK,UAAU,CAAC9vK,GAAG,CAAEsuU,GAAcA,EAAUviH,EAAQzoN,IAQzF,GANA+qU,EAA0BtvU,IAAI,CAACwvU,SCtDS/U,CAAyB,CAAEl2T,CAA4B,EACnG,IAAMq0S,EAAa,IAAIppR,EAAAA,CAAUA,CAwBjC,OAtBAirS,EAAiBpiK,OAAO,CAACphI,SAAS,CAAEC,IAChC,GAAI,CAACA,EAAMxH,SAAS,CAAE,CAClBkpR,EAAW7vP,IAAI,GACf,MACJ,CAEA,IAAMy2P,EAAiBtoR,EAAM81L,MAAM,CAACiB,EAAE,CAAC7wE,IAAI,CAACs+B,OAAO,CAACv+K,OAAO,CAE3D,IAAK,IAAM6gU,KAAgB9mS,EAAM81L,MAAM,CAACiB,EAAE,CAAC7wE,IAAI,CAACs+B,OAAO,CAACpkJ,KAAK,CACrD0mS,aAAwBqL,EAAAA,EAAYA,EACpCvL,EAAwBC,MAAM,CAACve,EAAgBwe,EAAc,eAAgBz5T,EAAO4sK,eAAe,CAACp4D,OAAO,CAAE6/L,EAAY,IAIjI1hR,EAAM81L,MAAM,CAACiB,EAAE,CAAC7wE,IAAI,CAACs+B,OAAO,CAAC2hJ,IAAI,CAAC,qBAAuBx5R,IAErD,IAAMm6R,EAA6ByR,EADXpyL,MAAM,CACiBo+B,QAAQ,CAACt1H,IAAI,CAE5D23Q,EAAwBC,MAAM,CAACve,EAAgBwe,EAAc,aAAcz5T,EAAO4sK,eAAe,CAACp4D,OAAO,CAAE6/L,EAAY,GAC3H,EACJ,GAEO,KACHA,EAAWhiR,IAAI,EACnB,CACJ,ED0BuEo2L,EAAQzoN,IACvE+qU,EAA0BtvU,IAAI,ENiBlCgtN,EAAO30D,OAAO,CAACphI,SAAS,CAAEC,IACtB,GAAI,CAACA,EAAMxH,SAAS,CAChB,OAGJ,IAAMggT,EAAoBx4S,EAAM81L,MAAM,CAACzoN,MAAM,CAAC+C,GAAG,CAAC,WAAwCgwB,KAAK,CACzFq4S,EAAqBz4S,EAAM81L,MAAM,CAACiB,EAAE,CAAC7wE,IAAI,CAACs+B,OAAO,CAACpkJ,KAAK,CAE7D,IAAK,IAAIl5B,EAAI,EAAGA,EAAIsxU,EAAiBn0U,MAAM,CAAE6C,IAAK,CAC9C,IAAMwxU,EAAcD,EAAmBroU,GAAG,CAAClJ,GAE3C,GAAIwxU,aAAuBvG,EAAAA,EAAYA,EAAIuG,aAAuBC,EAAAA,CAAUA,CAAE,CAC1E,IAAMC,EAAkBJ,CAAgB,CAACtxU,EAAE,CAErC2xU,EAAqBhG,EAAmB,CAAC+F,EAAgB,CAC/D,GAAIA,sBAAAA,EAAyC,CACzCrG,GAAuBvyS,EAAM81L,MAAM,EACnC,QACJ,CAE2B9uN,KAAAA,IAAvB6xU,GACAA,EAAmBD,EAAiBF,EAE5C,CACJ,CACJ,GAEO5nT,EAAAA,CACX,GM5CQsnT,EAA0BtvU,IAAI,CAACgrU,GAAiBh+G,EAAQzoN,IACxD+qU,EAA0BtvU,IAAI,CAACmrU,GAAoBn+G,EAAQzoN,IAC3D+qU,EAA0BtvU,IAAI,CAACutU,GAAiChpU,EAAO4sK,eAAe,EAAE67C,EAAQzoN,IAE5Fu4K,EAAAA,CAAUA,EAAID,EAAAA,CAAYA,CAAE,KEsDhCmzJ,EFrDIV,EAA0BtvU,IAAI,EEqDlCgwU,EAAYhoT,EAAAA,CAAIA,CACpBglM,EAAO30D,OAAO,CAACphI,SAAS,CAAEgmS,IACtB,GAAIA,EAAYvtS,SAAS,CAAE,CACvBsgT,EAAYC,SAlHSzwB,CAA2B,EACxD,IAAM0wB,EAAiB,IAAIxiB,QAE3B,SAASz1J,EAAa19J,CAAiB,EACnC,IAAMorD,EAAQprD,EAAM41U,aAAa,CAAC,EAAE,CAC9BhzU,EAAU5C,EAAMM,MAAM,CAE5B,GAAIq1U,EAAe7iR,GAAG,CAAClwD,GAAU,CAC7B,IAAMiC,EAAO8wU,EAAe5oU,GAAG,CAACnK,GAChC6gC,aAAa5+B,EAAKgxU,UAAU,EAC5BpyS,aAAa5+B,EAAKixU,WAAW,CACjC,CAEAH,EAAe/lR,GAAG,CAAChtD,EAAS,CACxBizU,WAAY,EACZC,YAAa,EACbxuL,SAAU,GACVyuL,cAAe,GACfC,iBAAkB,CAAEzhS,EAAG6W,EAAMq6D,OAAO,CAAEjM,EAAGpuD,EAAMq9F,OAAQ,CAC3D,EACJ,CAIA,SAASkV,EAAY39J,CAAiB,EAClC,IAAMi2U,EAAYN,EAAe5oU,GAAG,CAAC/M,EAAMM,MAAM,EACjD,GAAI21U,KAActyU,IAAdsyU,EACA,OAGJ,IAAM7qR,EAAQprD,EAAM41U,aAAa,CAAC,EAAE,CAChC70R,CAAAA,KAAKkyD,GAAG,CAAC7nD,EAAMq6D,OAAO,CAAGwwN,EAAUD,gBAAgB,CAACzhS,CAAC,EATlC,IAS4DwM,KAAKkyD,GAAG,CAAC7nD,EAAMq9F,OAAO,CAAGwtL,EAAUD,gBAAgB,CAACx8N,CAAC,EATjH,EASsI,GACzJy8N,CAAAA,EAAU3uL,QAAQ,CAAG,EAAG,CAEhC,CAEA,SAASuD,EAAW7qJ,CAAiB,EACjC,IAAM4C,EAAU5C,EAAMM,MAAM,CACtB21U,EAAYN,EAAe5oU,GAAG,CAACnK,GACrC,GAAIqzU,KAActyU,IAAdsyU,GAMJ,GAFAxyS,aAAawyS,EAAUJ,UAAU,EAE7BI,EAAU3uL,QAAQ,EAAI1kJ,OAAAA,EAAQm+D,OAAO,CAAC,UAAoB,CAC1D40Q,EAAennU,MAAM,CAAC5L,GACtB,MACJ,CAEAqzU,EAAUJ,UAAU,CAAGzvU,OAAOu9B,UAAU,CAAC,KACrC/gC,EAAQiqG,aAAa,CACjB,IAAIqpO,aAAa,QAAS,CACtBC,QAAS,GACTC,WAAY,EAChB,GAER,EAAG,KACP,CAEA,SAAShiC,EAAYp0S,CAAiB,EAClC,IAAMi2U,EAAYN,EAAe5oU,GAAG,CAAC/M,EAAMM,MAAM,CAE/BqD,MAAAA,IAAdsyU,GAIAA,EAAUF,aAAa,GACvB/1U,EAAMwB,cAAc,GACpBxB,EAAMU,eAAe,GAE7B,CAEA,SAASm+G,EAAQ7+G,CAAiB,EAC9B,IAAM4C,EAAU5C,EAAMM,MAAM,CACtB21U,EAAYN,EAAe5oU,GAAG,CAACnK,GACrC,GAAIqzU,KAActyU,IAAdsyU,GAMJ,GAFAxyS,aAAawyS,EAAUJ,UAAU,EAE7BI,EAAUF,aAAa,CAAE,CACzB/1U,EAAMU,eAAe,GACrBi1U,EAAennU,MAAM,CAAC5L,GACtB,MACJ,CAEAqzU,EAAUF,aAAa,CAAG,GAE1BE,EAAUH,WAAW,CAAG1vU,OAAOu9B,UAAU,CAAC,KACtCgyS,EAAennU,MAAM,CAAC5L,EAC1B,EA9FkB,KA+FtB,CAQA,OANAqiT,EAAe7jT,gBAAgB,CAAC,aAAcs8J,EAAc,CAAE8mK,QAAS,EAAK,GAC5Evf,EAAe7jT,gBAAgB,CAAC,YAAau8J,EAAa,CAAE6mK,QAAS,EAAK,GAC1Evf,EAAe7jT,gBAAgB,CAAC,WAAYypJ,EAAY,CAAE25K,QAAS,EAAK,GACxEvf,EAAe7jT,gBAAgB,CAAC,YAAagzS,EAAa,IAC1D6Q,EAAe7jT,gBAAgB,CAAC,QAASy9G,EAAS,IAE3C,KACHomM,EAAe1jT,mBAAmB,CAAC,aAAcm8J,GACjDunJ,EAAe1jT,mBAAmB,CAAC,YAAao8J,GAChDsnJ,EAAe1jT,mBAAmB,CAAC,WAAYspJ,GAC/Co6J,EAAe1jT,mBAAmB,CAAC,YAAa6yS,EAAa,IAC7D6Q,EAAe1jT,mBAAmB,CAAC,QAASs9G,EAAS,GACzD,CACJ,EAMgD6jN,EAAYjwG,MAAM,CAACiB,EAAE,CAAC7wE,IAAI,CAACs+B,OAAO,CAACv+K,OAAO,EAC9E,MACJ,CAEA6yU,GACJ,GAEOA,GF9DH,CAMA,OAJAhjH,EAAOg6G,WAAW,CAAC/vS,SAAS,CAAC,KACzBq4S,EAA0BzyU,OAAO,CAAE+zU,GAAkBA,IACzD,GAEO5jH,CACX,CAEA,OAAeoiH,qBAAqB7qU,CAA4B,CAAiB,CAC7E,IAAMssU,EAA2B,CAC7BC,YAAa9B,GAAcC,kBAAkB,CAC7C5oN,YAAa,GACb0zK,SAAUogC,GAAAA,CAAYA,CAACz3J,WAAW,GAClCylK,QAAS,EAAE,CACXzsJ,QAAS,CACLpkJ,MAAO,EAAE,CACTy5S,uBAAwB,EAC5B,EACAC,6BAA8B,EAClC,EAEMx/J,EAAeq/J,EAAUn1J,OAAO,CAACpkJ,KAAK,CACtC6wS,EAAU,IAAIhgQ,IAEpB,IAAK,IAAM8oQ,KAAgB1sU,EAAOitK,YAAY,CAAE,CAC5C,IAAK,IAAMo+J,KAAeqB,EAOtB,IAAK,IAAMvH,KANXl4J,EAAaxxK,IAAI,CAAC4vU,EAAYrqT,IAAI,EAED,OAA7BqqT,EAAYsB,YAAY,EACxBvvU,OAAOkhB,MAAM,CAACguT,EAAWjB,EAAYsB,YAAY,EAGhCtB,EAAYzH,OAAO,EACpCA,EAAQroU,GAAG,CAAC4pU,GAIpBl4J,EAAaxxK,IAAI,CAAC,IACtB,CASA,OAPAwxK,EAAanmF,GAAG,GAChBwlP,EAAU1I,OAAO,CAAG,IAAIA,EAAQ,CAED,OAA3B5jU,EAAO+sK,eAAe,EACtB3vK,OAAOkhB,MAAM,CAACguT,EAAWtsU,EAAO+sK,eAAe,EAG5Cu/J,CACX,CACJ,C,6DGlHO,IAAM/+J,EAA0C,CAACuzJ,EAAiB7pJ,EAAkBoqJ,EAA4BrnS,EAASzH,EAAUvyB,EAAQyrK,IACvIg/J,EAAAA,CAAaA,CAACl6Q,MAAM,CAACuwQ,EAAiB7pJ,EAAkBoqJ,EAA4BrnS,EAASzH,EAAUvyB,EAAQ,CAAC4sU,EAAAA,EAASA,CAAC,CAAEnhK,E,iCCHhI,OAAMoqJ,EACDgX,OACS1L,CAAAA,2BACAC,CAAAA,KAAc,aAEnBC,CAAuC,CAAEhvM,CAAY,CAAE,CAC/D,IAAI,CAAC8uM,2BAA2B,CAAGE,EACnC,IAAI,CAACD,KAAK,CAAG/uM,EAEb,IAAMivM,EAAsBzkP,iBAAiBwkP,GAA4ByL,gBAAgB,CAAC,qBAC1F,KAAI,CAACD,OAAO,CAAGvL,KAAwB3nU,IAAxB2nU,GAAqCA,KAAAA,CACxD,CAEA,OAAcxL,sBAAsB97R,CAAe,CAAW,CAC1D,MAAOA,KAAAA,GAAkBA,kBAAAA,GAA+B,CAAC,cAAcrjC,IAAI,CAACqjC,EAChF,CAEOu4B,OAAOv4B,CAAe,CAAQ,CACjC,IAAMunS,EAAa1L,EAAoBC,qBAAqB,CAAC97R,GAC7D,GAAIunS,GAAc,CAAC,IAAI,CAACsL,OAAO,CAC3B,MAGJ,KAAI,CAACA,OAAO,CAAG,CAACtL,EAChB,IAAMwL,EAAmB,EAA2B,GAAb,IAAI,CAAC3L,KAAK,CAEjD,IAAI,CAACD,2BAA2B,CAAC5/Q,KAAK,CAACw0Q,WAAW,CAAC,qBAAsB,CAAC,CAAC,EAAEgX,EAAiB,CAAC,CAAC,CACpG,CACJ,C,wBC9BYlzJ,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CAAAA,UAAAA,CAAAA,CAAAA,EAAAA,KAAAA,CAAAA,EAAAA,CAAAA,QAAAA,CAAAA,CAAAA,EAAAA,MAAAA,CAAAA,EAAAA,CAAAA,Q,uPCkBZ,IAAMmzJ,EAA2B,IAAIC,EAAAA,CAAyBA,CAAC,CAAC,cAAe,aAAc,uBAAwB,iBAAiB,EAEhIC,EAAqB,IAAIC,EAAAA,CAAwBA,CAAC,CAACC,EAAAA,CAAoBA,CAAEJ,EAAyBK,OAAO,CAAC,EAC1GC,EAAc,IAAIC,EAAAA,CAAqBA,CAAC,CAACP,EAAyBK,OAAO,CAAC,EAEnEG,EAAkD,CAC3D7qT,KAAM,CACFq7C,EAAGyvQ,EAAAA,CAAYA,CACfC,GAAIC,EAAAA,CAAcA,CAClB9zU,EAAG8zU,EAAAA,CAAcA,CACjBt9B,GAAIs9B,EAAAA,CAAcA,CAClBC,GAAIC,EAAAA,CAAQA,CACZz1T,EAAG,CACCq/F,WAAY,CACRh8E,MAAOqyS,CAAAA,EAAAA,EAAAA,CAAAA,EAAuB1wU,OAAOC,MAAM,CAAC0wU,EAAAA,CAAgBA,EAAE1vP,IAAI,CAAC,KACvE,EACAy2K,OAAQ,IACZ,EACA3gN,EAAGw5R,EAAAA,CAAcA,CACjBK,OAAQL,EAAAA,CAAcA,CACtBjmE,EAAGimE,EAAAA,CAAcA,CACjBv/B,GAAI6/B,EAAAA,CACR,EACAC,WAAY,CACRlwQ,EAAGmwQ,EAAAA,CAAqBA,CACxBx1P,EAAGy1P,EAAAA,CAAaA,CAChBV,GAAIW,EAAAA,CAAeA,CACnBC,KAAMC,EAAAA,CAAeA,CACrBphK,IAAKqhK,EAAAA,CAAYA,CACjBC,GAAIF,EAAAA,CAAeA,CACnB/pC,GAAIkqC,EAAAA,CAAuBA,CAC3BnrC,GAAImrC,EAAAA,CAAuBA,CAC3BpvC,GAAIovC,EAAAA,CAAuBA,CAC3BC,GAAID,EAAAA,CAAuBA,CAC3BE,GAAIF,EAAAA,CAAuBA,CAC3BG,GAAIH,EAAAA,CAAuBA,CAC3Br+B,GAAIi9B,EACJl1T,EAAG80T,EACHv/G,KAAMmhH,EAAAA,CAAoBA,CAC1BC,OAAQC,EAAAA,CACZ,CACJ,ECxDaliK,EAA4C,IAAImiK,EAAAA,CAAgBA,CAACzB,EAAwB,K,kDCD/F,IAAMC,EAA+B,CACxCh2N,WAAY,CACR/2E,KAAOxqC,GAAWwnT,CAAAA,EAAAA,EAAAA,CAAAA,EAAkBxnT,GAASA,EAAQ,KACrDmpS,IAAMnpS,GAAW,8CAA8CS,IAAI,CAACT,GAASA,EAAQ,GACrFI,OAASJ,GAAWA,WAAAA,EAAqBA,EAAQ,IACrD,EACA4+P,OAAQ,IACZ,C,kCCPO,IAAM+4E,EAA2B,CACpCp2N,WAAY,KACZq9I,OAAQ,CACJ,kBACoB5+P,GAChB,qFAAyFS,IAAI,CAACT,GACnFA,EAGPA,gBAAAA,EACO,cAGPA,gBAAAA,EACO,cAGJ,EAEf,CACJ,C,mCCpBO,SAAS43U,EAAuBoB,CAAyB,EAC5D,IAAMC,EAAyB,OAAW,CAAC,OAAO,EAAED,EAAkB,aAAa,CAAC,EAC9EE,EAAsB,OAAW,CAAC,GAAG,EAAEF,EAAkB,UAAU,CAAC,CAAE,KAE5E,OAAQh5U,IACJ,GAAIi5U,EAAuBx4U,IAAI,CAACT,GAC5B,OAAOA,EAGX,IAAMm5U,EAAoBn5U,EAAMyhB,KAAK,CAACy3T,GACtC,OAAOC,OAAAA,EAA6BA,EAAkBhxP,IAAI,CAAC,IAAI36B,IAAI,GAAK,IAC5E,CACJ,C,mCCZO,IAAMuqR,EAA2B,CACpCx2N,WAAY,KACZq9I,OAAQ,CACJ,kBACoB5+P,GAAW,yBAAyBS,IAAI,CAACT,GAASA,EAAQ,EAClF,CACJ,C,4DCLO,OAAMo5U,UAAqBC,EAAAA,CAAgBA,CACpCC,MAAMC,CAAyB,CAAEzyQ,CAAmB,CAAQ,CAGlE,IAAK,IAAM0yQ,KAFQD,EAAiBE,iBAAiB,GAGjD3yQ,EAAWjlE,YAAY,CAAC23U,EAAWD,EAAiBj3U,YAAY,CAACk3U,IAGrEE,CAAAA,EAAAA,EAAAA,CAAAA,EAAoBH,EAAkBzyQ,EAC1C,CACJ,C,mCCVO,IAAMoxQ,EAAkC,GAAIkB,C,UAAAA,CAAYA,CAAC,S,qECAzD,OAAMO,UAAuBC,EAAAA,CAAoBA,CACpD,OAAeC,mBAAmBC,CAA0B,CAAEz0Q,CAA4C,CAAW,CACjH,IAAI00Q,EAAUD,CAAW,CAACz0Q,EAAU,CACpC,KAAO00Q,OAAAA,GAAkB,CACrB,GAAIA,OAAAA,EAAQnqO,QAAQ,EAAcmqO,CAAAA,EAAQ5yP,QAAQ,GAAK6yP,KAAKC,YAAY,EAAIF,EAAQ5yP,QAAQ,GAAK6yP,KAAKE,SAAAA,EAClG,MAAO,GAGXH,EAAUA,CAAO,CAAC10Q,EACtB,CAEA,MAAO,EACX,CAEU80Q,QAAQL,CAA0B,CAAEM,CAA2B,CAAW,CAChF,IAAMt3T,EAASg3T,EAAY12J,aAAa,CACxC,GAAItgK,OAAAA,EACA,MAAO,GAGX,GAAIA,SAAAA,EAAOkoG,OAAO,CACd,OAAO,IAAI,CAACqvN,gBAAgB,CAACP,EAAaM,GAG9C,GAAIt3T,OAAAA,EAAOkoG,OAAO,EAAaloG,EAAOw3T,SAAS,GAAKR,EAChD,MAAO,GAGX,GAAIh3T,IAAAA,EAAOu1P,UAAU,CAACv3Q,MAAM,EAAWgiB,CAAAA,MAAAA,EAAOkoG,OAAO,EAAYloG,OAAAA,EAAOkoG,OAAO,EAE3E,OADA8uN,EAAYj6D,WAAW,CAACu6D,EAAkBvxD,cAAc,CAAC,MAClD,GAGX,IAAM0xD,EAAWT,EAAY92E,WAAW,CACxC,GAAIu3E,OAAAA,GAAsBA,CAAAA,OAAAA,EAAS3qO,QAAQ,EAAa2qO,OAAAA,EAAS3qO,QAAQ,EACrE,MAAO,GAGX,IAAM4qO,EAAmBb,EAAeE,kBAAkB,CAACC,EAAa,mBAClEW,EAAkBd,EAAeE,kBAAkB,CAACC,EAAa,qBAEvE,EAAIU,KAAoBC,IAIpBF,OAAAA,GAAqBA,OAAAA,EAAS3qO,QAAQ,EACtCkqO,EAAYY,kBAAkB,CAAC,WAAY,KACpC,IAGJD,EACX,CAEQJ,iBAAiBP,CAA0B,CAAEM,CAA2B,CAAW,CACvF,IAAMO,EAA8B,CAACb,EAAY,CAC7Cc,EAA+Bd,EAAYc,eAAe,CAE9D,KAAOA,OAAAA,GAA6BA,CAAAA,EAAgBzzP,QAAQ,GAAK6yP,KAAKE,SAAS,EAAIW,EAAAA,CAAoBA,CAAC/4T,QAAQ,CAAC84T,EAAgBhrO,QAAQ,IACrI+qO,EAAep1U,IAAI,CAACq1U,GACpBA,EAAkBA,EAAgBA,eACtC,CAEAD,EAAe7/S,OAAO,GACtB,IAAIkoO,EAAc82E,EAAY92E,WAAW,CACzC,KAAOA,OAAAA,GAAyBA,CAAAA,EAAY77K,QAAQ,GAAK6yP,KAAKE,SAAS,EAAIl3E,OAAAA,EAAYpzJ,QAAQ,EAAairO,EAAAA,CAAoBA,CAAC/4T,QAAQ,CAACkhP,EAAYpzJ,QAAQ,IAC1J+qO,EAAep1U,IAAI,CAACy9P,GACpBA,EAAcA,EAAYA,WAC9B,CAEA,GAAI23E,IAAAA,EAAe75U,MAAM,CACrB,MAAO,GAGX,IAAMohB,EAAIk4T,EAAkBrkO,aAAa,CAAC,KAI1C,OAHA+jO,EAAYj6D,WAAW,CAAC39P,GACxBA,EAAE4lB,MAAM,IAAI6yS,GAEL,EACX,CACJ,CC/EO,IAAMxC,EAAwC,IAAIwB,C,mCCHlD,IAAMkB,EAA8C,CAAC,IAAK,OAAQ,IAAK,OAAQ,KAAM,OAAQ,IAAK,OAAQ,IAAK,IAAK,QAAS,OAAQ,SAAU,SAAU,MAAO,MAAO,OAAQ,IAAK,E,0DCGpL,OAAMC,UAA2BlB,EAAAA,CAAoBA,CAC9CO,QAAQY,CAA4B,CAAEX,CAA2B,CAAW,CAClF,GAAIW,IAAAA,EAAa1iE,UAAU,CAACv3Q,MAAM,CAC9B,MAAO,GAGX,IAAMgiB,EAASi4T,EAAap3S,UAAU,CACtC,GAAI7gB,OAAAA,EACA,MAAO,GAGX,IAAMi3T,EAAUgB,EAAa/3E,WAAW,CAEpCrgP,EAAQo4T,EAAan0D,UAAU,CAC/Bo0D,EAAkB,KAEtB,KAAOr4T,OAAAA,GAAgB,CACnB,GAAIA,EAAMwkE,QAAQ,GAAK6yP,KAAKE,SAAS,EAAIW,EAAAA,CAAoBA,CAAC/4T,QAAQ,CAACa,EAAMitF,QAAQ,EACzD,OAApBorO,GACAA,CAAAA,EAAkBZ,EAAkB1zD,sBAAsB,EAAC,EAG/Ds0D,EAAgB9kO,WAAW,CAACvzF,OACzB,CACH,GAAIq4T,OAAAA,EAA0B,CAC1B,IAAM94T,EAAI,IAAI,CAAC+4T,2BAA2B,CAACF,EAAcX,GACzDl4T,EAAEg0F,WAAW,CAAC8kO,GACdl4T,EAAOigP,YAAY,CAAC7gP,EAAG63T,GAEvBiB,EAAkB,IACtB,CAEAl4T,EAAOigP,YAAY,CAACpgP,EAAOo3T,EAC/B,CAEAp3T,EAAQo4T,EAAan0D,UACzB,CAEA,GAAIo0D,OAAAA,EAA0B,CAC1B,IAAM94T,EAAI,IAAI,CAAC+4T,2BAA2B,CAACF,EAAcX,GACzDl4T,EAAEg0F,WAAW,CAAC8kO,GACdl4T,EAAOigP,YAAY,CAAC7gP,EAAG63T,GAEvBiB,EAAkB,IACtB,CAEA,MAAO,EACX,CAEQC,4BAA4BF,CAA4B,CAAEX,CAA2B,CAAwB,CACjH,IAAMl4T,EAAIk4T,EAAkBrkO,aAAa,CAAC,KAG1C,IAAK,IAAMyjO,KAFQuB,EAAatB,iBAAiB,GAG7Cv3T,EAAErgB,YAAY,CAAC23U,EAAWuB,EAAaz4U,YAAY,CAACk3U,IAGxD,OAAOt3T,CACX,CACJ,CC3DO,IAAMo2T,EAAqC,IAAIwC,C,mCCD/C,IAAMtC,EAA0B,GAAIY,C,UAAAA,CAAYA,CAAC,I,mCCCjD,IAAMf,EAAoC,GAAIe,C,UAAAA,CAAYA,CAAC,I,sECH3D,SAAS8B,EAAmCt6U,CAAwB,EACvE,KAAOA,EAASE,MAAM,CAAG,GAAG,CACxB,IAAM4B,EAAU9B,CAAQ,CAAC,EAAE,CAC3B8B,EAAQm9Q,WAAW,IAAIn9Q,EAAQ21Q,UAAU,CAC7C,CACJ,CCFO,SAAS8iE,EAAmBC,CAAkB,CAAE7B,CAA6B,CAAEa,CAA2B,CAAEiB,CAAsB,EACrI,IAAIv4T,EAASy2T,EAAiBn2J,aAAa,CAC3C,KAAOtgK,OAAAA,GAAiB,CACpB,GAAIA,EAAOkoG,OAAO,GAAKowN,EACnB,OAGJt4T,EAASA,EAAOsgK,aACpB,CAEA83J,EAAmC3B,EAAiBpjO,oBAAoB,CAACilO,IAEnD33U,KAAAA,IAAlB43U,GACAH,EAAmC3B,EAAiBpjO,oBAAoB,CAACklO,IAG7E,IAAMC,EAAclB,EAAkBrkO,aAAa,CAACqlO,GACpD1B,CAAAA,EAAAA,EAAAA,CAAAA,EAAoBH,EAAkB+B,GACtC/B,EAAiBzxS,MAAM,CAACwzS,EAC5B,CClBO,IAAMC,EAAgD,CAAChC,EAAkBa,KAC5E,IAAMoB,EAAajC,EAAiBluR,KAAK,CAACmwR,UAAU,CACjC,KAAfA,IAIJjC,EAAiBluR,KAAK,CAACmwR,UAAU,CAAG,GCT7B,mBAAmB/6U,IAAI,CDUR+6U,IAItBL,EAAmB,SAAU5B,EAAkBa,EAAmB,KACtE,EEbaqB,EAA+C,CAAClC,EAAkBa,KAC3E,IAAMsB,EAAYnC,EAAiBluR,KAAK,CAACqwR,SAAS,CAChC,KAAdA,IAIJnC,EAAiBluR,KAAK,CAACqwR,SAAS,CAAG,GACjB,WAAdA,GAIJP,EAAmB,IAAK5B,EAAkBa,EAAmB,MACjE,ECZauB,EAAoD,CAACpC,EAAkBa,KAChF,IAAIwB,EAAsBrC,EAAiBluR,KAAK,CAACwwR,kBAAkB,CACnE,GAAID,KAAAA,GAGIA,KAFJA,CAAAA,EAAsBrC,EAAiBluR,KAAK,CAACywR,cAAc,GAU/D,GAHAvC,EAAiBluR,KAAK,CAACwwR,kBAAkB,CAAG,GAC5CtC,EAAiBluR,KAAK,CAACywR,cAAc,CAAG,GAEpCF,iBAAAA,EAAwC,CACxCT,EAAmB,IAAK5B,EAAkBa,EAAmB,UAC7D,MACJ,CAE4B,cAAxBwB,GACAT,EAAmB,IAAK5B,EAAkBa,GAElD,ECrBa2B,EAAuD,CAACxC,EAAkBa,KACnF,IAAM4B,EAAoBzC,EAAiBluR,KAAK,CAACk4D,aAAa,CAC9D,GAAIy4N,KAAAA,GAKJ,GADAzC,EAAiBluR,KAAK,CAACk4D,aAAa,CAAG,GACnCy4N,UAAAA,EAA+B,CAC/Bb,EAAmB,MAAO5B,EAAkBa,GAC5C,MACJ,CAEA,GAAI4B,QAAAA,EAA6B,CAC7Bb,EAAmB,MAAO5B,EAAkBa,GAC5C,MACJ,EACJ,CCbO,OAAM6B,UAA8BrC,EAAAA,CAAoBA,CACjDO,QAAQZ,CAA6B,CAAEa,CAA2B,CAAW,QACnF,IAAIb,EAAiBlhE,UAAU,CAACv3Q,MAAM,EAClC,IAAI,CAACo7U,mBAAmB,CAAC3C,GAClB,KAGXgC,EAA0BhC,EAAkBa,GAC5CqB,EAAyBlC,EAAkBa,GAC3CuB,EAA8BpC,EAAkBa,GAChD2B,EAAiCxC,EAAkBa,GAE5C,IAAI,CAAC+B,0BAA0B,CAAC5C,GAC3C,CAEQ2C,oBAAoB3C,CAA6B,CAAQ,CAC7D,IAAIz2T,EAASy2T,EAAiBn2J,aAAa,CACvCz1D,EAAW4rN,EACf,KAAOz2T,OAAAA,GAAmBA,SAAAA,EAAOkoG,OAAO,EAAeloG,OAAAA,EAAOkoG,OAAO,EAAaloG,IAAAA,EAAOu1P,UAAU,CAACv3Q,MAAM,EACtG6sH,EAAW7qG,EACXA,EAASA,EAAOsgK,aACpB,CAEAz1D,EAAS7mH,MAAM,EACnB,CAEQq1U,2BAA2B5C,CAA6B,CAAW,CACvE,IAAM6C,EAAc7C,EAAiBlhE,UAAU,CAACv3Q,MAAM,CAAG,EACnDu7U,EAAoBD,GAAgB7C,CAAAA,SAAAA,EAAiBvuN,OAAO,EAAeuuN,EAAiBluR,KAAK,CAACvqD,MAAM,IACxGkgL,EAAwB,EAAE,CAC5Bl+J,EAASy2T,EAAiBn2J,aAAa,CACvCk5J,EAA4BD,EAAoB,KAAO9C,EAO3D,IALI,CAAC8C,GAAqBD,IACtB7C,EAAiB15D,WAAW,IAAI05D,EAAiBlhE,UAAU,EAC3DikE,EAAY,MAGTx5T,OAAAA,GAAmBA,SAAAA,EAAOkoG,OAAO,EAAeloG,IAAAA,EAAOuoC,KAAK,CAACvqD,MAAM,EAAQ,CAC9E,IAAK,IAAM6hB,KAASG,EAAOu1P,UAAU,CAC7B11P,IAAU25T,GACVt7J,EAASz7K,IAAI,CAACod,GAItB25T,EAAYx5T,EACZA,EAASA,EAAOsgK,aACpB,CAEA,GAAIk5J,OAAAA,EACA,MAAO,GAGX,IAAMC,EAAmBD,IAAc/C,EAAmBA,EAAiBlhE,UAAU,CAAGr3F,EAGxF,OAFAs7J,EAAUz8D,WAAW,IAAI08D,GAElBF,CACX,CACJ,CC7DO,IAAMzD,EAA6C,IAAIqD,C,mCCAvD,IAAMnD,EAAoC,GAAIM,C,UAAAA,CAAYA,CAAC,I,iDCD3D,OAAM/B,UAA8BuC,EAAAA,CAAoBA,CAC1C4C,oBAA0G,aAE/GC,CAAwG,CAAE,CAClH,KAAK,GACL,IAAI,CAACD,oBAAoB,CAAGC,CAChC,CAEUtC,QAAQZ,CAA6B,CAAEa,CAA2B,CAAW,CACnF,IAAK,IAAMsC,KAAsB,IAAI,CAACF,oBAAoB,CACtDE,EAAmBnD,EAAkBa,GAGzC,MAAO,EACX,CACJ,C,uECZA,IAAMuC,EAA0D,IAAI/rS,IAAI,CACpE,CAAC,EAAGinS,EAAAA,CAAgBA,CAAC+E,OAAO,CAAC,CAC7B,CAAC,EAAG/E,EAAAA,CAAgBA,CAACgF,OAAO,CAAC,CAC7B,CAAC,EAAGhF,EAAAA,CAAgBA,CAACiF,OAAO,CAAC,CAC7B,CAAC,EAAGjF,EAAAA,CAAgBA,CAACkF,OAAO,CAAC,CAC7B,CAAC,GAAIlF,EAAAA,CAAgBA,CAACmF,QAAQ,CAAC,CAC/B,CAAC,GAAInF,EAAAA,CAAgBA,CAACoF,QAAQ,CAAC,CAC/B,CAAC,GAAIpF,EAAAA,CAAgBA,CAACqF,QAAQ,CAAC,CAC/B,CAAC,GAAIrF,EAAAA,CAAgBA,CAACsF,QAAQ,CAAC,CAC/B,CAAC,GAAItF,EAAAA,CAAgBA,CAACuF,QAAQ,CAAC,CAC/B,CAAC,GAAIvF,EAAAA,CAAgBA,CAACwF,QAAQ,CAAC,CAClC,EAEKC,EAAsC36U,MAAM4rD,IAAI,CAACouR,EAAiBr2U,IAAI,IACtEi3U,EAAiB,OAAW,CAAC,EAAEr2U,OAAOC,MAAM,CAAC0wU,EAAAA,CAAgBA,EAAE1vP,IAAI,CAAC,KAAK,CAAC,EAEnE+uP,EAA4CqC,IACrD,IAAMiE,EAAajE,EAAiBluR,KAAK,CAACmyR,UAAU,CACpD,GAAIA,KAAAA,EACA,MAGJjE,CAAAA,EAAiBluR,KAAK,CAACmyR,UAAU,CAAG,GACpC,IAAMx9U,EAAQy9U,EAAAA,CAAYA,CAACC,aAAa,CAACF,GACzC,GAAIv1R,OAAOvT,KAAK,CAAC10C,IAAUA,GAAS,EAChC,OAGJ,IAAM29U,EAAeC,CAAAA,EAAAA,EAAAA,CAAAA,EAAyB59U,EAAOs9U,EAEhC,QAAjBK,GAA0BJ,EAAe98U,IAAI,CAAC84U,EAAiBvjO,SAAS,GACxEujO,EAAiBplT,SAAS,CAAC9uB,GAAG,CAACs3U,EAAiB9vU,GAAG,CAAC8wU,GAE5D,C,6DCtCO,SAASE,EAA4Bt7N,CAAU,EAClD,IAAMz+E,EAAUy+E,EAAKu7N,SAAS,CAC9B,OAAOh6S,OAAAA,GAAqB,UAASrjC,IAAI,CAACqjC,IAAY,KAAKrjC,IAAI,CAACqjC,EAAO,CAC3E,CCEO,MAAMmzS,UAAiC2C,EAAAA,CAAoBA,CAC7C4C,oBAA0G,aAE/GC,CAAwG,CAAE,CAClH,KAAK,GACL,IAAI,CAACD,oBAAoB,CAAGC,CAChC,CAEUtC,QAAQ4D,CAAgC,CAAE3D,CAA2B,CAAW,CACtF,GAAI,IAAI,CAAC4D,eAAe,CAACD,KAIrB,IAAI,CAACE,eAAe,CAACF,IACrBA,CAAAA,EAAWv3D,SAAS,CAAG,QAAO,EAG9B,IAAI,CAAC03D,qBAAqB,CAACH,EAAY3D,IAPvC,MAAO,GAWX,IAAK,IAAMsC,KAAsB,IAAI,CAACF,oBAAoB,CACtDE,EAAmBqB,EAAY3D,GAGnC,MAAO,EACX,CAEQ6D,gBAAgBF,CAAgC,CAAW,CAC/D,OAAOA,IAAAA,EAAWI,iBAAiB,EAAU,CAACC,SChCXC,CAAe,EACtD,IAAK,IAAM97N,KAAQ87N,EACf,GAAIR,EAA4Bt7N,GAC5B,MAAO,GAIf,MAAO,EACX,EDwBiFw7N,EAAW1lE,UAAU,CAClG,CAEQ2lE,gBAAgBD,CAAgC,CAAW,CAC/D,IAAMj7T,EAASi7T,EAAW36J,aAAa,CACvC,GAAItgK,OAAAA,GAAmBA,SAAAA,EAAOkoG,OAAO,EAAeloG,EAAOu1P,UAAU,CAACv3Q,MAAM,CAAG,EAC3E,MAAO,GAGX,IAAMw9U,EAAkBP,EAAW1lE,UAAU,CAACv3Q,MAAM,CACpD,GAAIw9U,EAAkB,EAClB,MAAO,GAGX,GAAIA,IAAAA,EACA,MAAO,GAGX,IAAMC,EAAeR,EAAWI,iBAAiB,CAC3Cv3D,EAAam3D,EAAWn3D,UAAU,OACxC,CAAI23D,CAAAA,EAAe,KAAK,CAAEA,CAAAA,IAAAA,GAAsB33D,OAAAA,EAAWh3K,QAAQ,GAI5D,CAACiuO,EAA4Bj3D,EACxC,CAEQs3D,sBAAsBH,CAAgC,CAAE3D,CAA2B,CAAW,CAClG,IAAMt3T,EAASi7T,EAAW36J,aAAa,CAGvC,GAAI,CAFmCtgK,CAAAA,OAAAA,GAAmBA,OAAAA,EAAOkoG,OAAO,EAAaloG,IAAAA,EAAOq7T,iBAAiB,EAAUJ,IAAAA,EAAW1yR,KAAK,CAACvqD,MAAM,EAAUi9U,KAAAA,EAAW/nO,SAAS,EAGxK,MAAO,GAGX,IAAMyhH,EAAO2iH,EAAkBrkO,aAAa,CAAC,QAG7C,MAFA2jO,CAAAA,EAAAA,EAAAA,CAAAA,EAAoBqE,EAAYtmH,GAChCsmH,EAAWl+D,WAAW,CAACpoD,GAChB,EACX,CACJ,C,0DErEO,OAAMs/G,EACOI,OACCqH,CAAAA,uBAAqE,aAE1EC,CAAmE,CAAE,CAC7E,IAAI,CAACD,uBAAuB,CAAGC,EAC/B,IAAI,CAACtH,OAAO,CAAG,IAAI,CAACuH,QAAQ,CAACzgV,IAAI,CAAC,IAAI,CAC1C,CAEA,OAAe0gV,aAAaj8U,CAAoB,CAAEk8P,CAA6D,CAAQ,CACnH,IAAK,GAAM,CAACl+P,EAAKV,EAAM,GAAI4+P,EACmC,KAArDl8P,EAAsC2oD,KAAK,CAAC3qD,EAAI,EAChDgC,CAAAA,EAAsC2oD,KAAK,CAAC3qD,EAAI,CAAGV,CAAI,CAGpE,CAEQ0+U,SAASE,CAAkC,CAAExE,CAA2B,CAAQ,CACpF,GAAIwE,IAAAA,EAAsBvzR,KAAK,CAACvqD,MAAM,CAClC,OAGJ,IAAM+9U,EAAe,IAAI,CAACC,gBAAgB,CAACF,GAC3C,GAAIC,IAAAA,EAAa/9U,MAAM,CACnB,OAGJ,IAAMi+U,EAAe3E,EAAkBrkO,aAAa,CAAC,QAGrD,IAAK,IAAMpzF,KAFXo0T,EAA0B4H,YAAY,CAACI,EAAcF,GAEjCD,EAAsBvmE,UAAU,EAAE,CAClD,GAAI11P,OAAAA,EAAMitF,QAAQ,CACd,SAGJ,GAAIjtF,EAAMwkE,QAAQ,GAAK6yP,KAAKC,YAAY,EAAKt3T,CAAAA,SAAAA,EAAMitF,QAAQ,EAAe,CAACirO,EAAAA,CAAoBA,CAAC/4T,QAAQ,CAACa,EAAMitF,QAAQ,GAAI,CACvHmnO,EAA0B4H,YAAY,CAACh8T,EAAoCk8T,GAC3E,QACJ,CAEA,IAAMpnH,EAAOsnH,EAAa/rC,SAAS,GACnCrwR,EAAMk9P,WAAW,CAACpoD,GAClBA,EAAKvhH,WAAW,CAACvzF,EACrB,CACJ,CAEQm8T,iBAAiBF,CAAkC,CAAyD,CAEhH,IAAMI,EAAkE,EAAE,CAE1E,IAAK,IAAMC,KAAYC,EAAiB7zR,KAAK,CAGrC,IAAI,CAACmzR,uBAAuB,CAAC18T,QAAQ,CAFxBm9T,IAGbD,EAAiBz5U,IAAI,CAAC,CAAC05U,EAA0CC,EAAiB7zR,KAAK,CAH1E4zR,EAGoF,CAAC,EAI1G,OAAOD,CACX,CACJ,C,sHC7DA,IAAMG,EAAa,ICAZ,MACcC,kBACAhiB,CAAAA,eACTN,CAAAA,gBACAC,CAAAA,UAAoB,EAAG,aAEnBsiB,CAAuB,CAAEC,CAAmC,CAAE,CACtE,IAAI,CAACF,kBAAkB,CAAGE,EAC1B,IAAI,CAACxiB,gBAAgB,CAAGuiB,EACxB,IAAI,CAACjiB,eAAe,CAAG,IAAIC,EAAAA,CAAcA,CAAC9vS,EAAAA,CAAIA,EAC9C,IAAI,CAAC6vS,eAAe,CAAC/3T,GAAG,CAACk4T,EAAAA,CAAgBA,CAACrxO,MAAM,CAAE,IAAI,CAACkzP,kBAAkB,CAACjjB,YAAY,CAAE,IAAI,CAACijB,kBAAkB,CAAC1jR,IAAI,CACxH,CAEOr2D,IAAI82T,CAAoB,CAAE/iM,CAAgC,CAAQ,CAErE,OADA,IAAI,CAACgkM,eAAe,CAAC/3T,GAAG,CAACk4T,EAAAA,CAAgBA,CAACrxO,MAAM,CAAEiwO,EAAc/iM,GACzD,IACX,CAEO6uC,aAAsB,CACzB,OAAO,IAAI,CAAC80J,SAChB,CAEOS,oBAA6B,CAChC,OAAO,IAAI,CAACV,gBAChB,CAEOr/C,mBAAmB0+C,CAAoB,CAAQ,CAElD,OADA,IAAI,CAACW,gBAAgB,CAAGX,EACjB,IACX,CAEOz+C,YAAYy+C,CAAoB,CAAQ,CAE3C,OADA,IAAI,CAACY,SAAS,CAAGZ,EACV,IACX,CAEOsB,eAAetB,CAAoB,CAAiB,CACvD,IAAMuB,EAAkB,IAAI,CAACz1J,WAAW,GACxC,OAAO,IAAI,CAACy1G,WAAW,CAACy+C,GACnBzgQ,IAAI,GACJ52D,KAAK,CAAEm5B,IAEJ,MADA,IAAI,CAACy/O,WAAW,CAACggD,GACXz/R,CACV,EACR,CAEA,MAAay9B,MAA2D,CAAC,IAAD,EAAtDygQ,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAuB,IAAI,CAACY,SAAS,CAC7CwiB,EAAqC,CAAC,IAAI,CAACniB,eAAe,CAAC1hQ,IAAI,CAAC,IAAI,CAAC0jR,kBAAkB,CAACjjB,YAAY,EAAE,CAExG,IAAI,CAACW,gBAAgB,GAAKX,GAC1BojB,EAAah6U,IAAI,CAAC,IAAI,CAAC63T,eAAe,CAAC1hQ,IAAI,CAAC,IAAI,CAACohQ,gBAAgB,GAGrEyiB,EAAah6U,IAAI,CAAC,IAAI,CAAC63T,eAAe,CAAC1hQ,IAAI,CAACygQ,IAC5C,MAAMloJ,QAAQh6J,GAAG,CAACslU,EACtB,CACJ,EDxDkC,QAASC,EAAAA,EAAgBA,CAACC,SAAS,EAErE,IAAK,IAAMh4K,KAAY+3K,EAAAA,EAAgBA,CAACE,YAAY,CAChDP,EAAW95U,GAAG,CAACoiK,EAAS00J,YAAY,CAAE10J,EAAS/rG,IAAI,EAGvDs4J,EAAAA,CAAWA,CAAC8pG,MAAM,CAAC,WAAYqhB,GENxB,IAAMzf,EAAe1rG,EAAAA,CAAWA,CAACC,SAAS,CAA6B,aAE9EyrG,EAAar6T,GAAG,CACZ,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,qCAGrBwrG,EAAar6T,GAAG,CACZ,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCAGrBwrG,EAAar6T,GAAG,CACZ,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,uCAGrBwrG,EAAar6T,GAAG,CACZ,QACA6uN,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,IAAM,qC,qECrBrB,K,OAAA,GAAU,8oCCGH,IAAMvzC,EAAuDxtI,GACzD,UAACsqP,EAAAA,CAASA,CAATA,CAAUznL,UAAW,CAAC,EAAE7iE,KAAoB1vC,IAApB0vC,EAAM6iE,SAAS,CAAiB7iE,EAAM6iE,SAAS,CAAG,GAAG,uBAAuB,CAAC,CAAE4iK,WAAYzlO,EAAMrP,OAAO,CAAE94B,SAAUmoC,EAAMnoC,QAAQ,E,mCCH/J,IAAMukU,EAAqB,CAC9BzkT,KAAM,OACN2rT,aAAc,KACd/I,QAAS,CAACiS,E,OAAAA,EAAIA,CAClB,C,kDCJO,IAAMnQ,EAA6B,CACtC1kT,KAAM,eACN2rT,aAAc,KACd/I,QAAS,CAACkS,EAAAA,EAAIA,CAAEC,EAAAA,EAAcA,CAClC,C,kDCHO,IAAMjQ,EAAuB,CAChC9kT,KAAM,SACN2rT,aAAc,CACVqJ,YAAa,CACTpL,QAASxtU,OAAOC,MAAM,CAAC0wU,E,OAAAA,CAAgBA,CAC3C,CACJ,EACAnK,QAAS,CAACqS,EAAAA,EAAMA,CAAEC,EAAAA,EAAWA,CACjC,C,mCCTO,IAAMnQ,EAAuB,CAChC/kT,KAAM,SACN2rT,aAAc,KACd/I,QAAS,CAACuS,E,OAAAA,EAAMA,CACpB,C,kFCJO,OAAMC,EACQC,aACAC,CAAAA,mBAAuC,IAAI1yQ,GAC3CwkJ,CAAAA,OACTmuH,CAAAA,cAA8F9yT,EAAAA,CAAK,aAE/FglM,CAAuB,CAAE,CACjC,IAAI,CAACL,OAAO,CAAGK,EACf,IAAI,CAAC4tH,aAAa,CAAG5tH,EAAOiB,EAAE,CAAC3+C,YACnC,CAEO82I,MAAMjpT,CAAoB,CAAQ,CACrC,IAAI,CAAC09U,kBAAkB,CAAC/6U,GAAG,CAAC3C,GAC5B,IAAI,CAACy9U,aAAa,CAAC96U,GAAG,CAAC3C,EAC3B,CAEO49U,QAAQ59U,CAAoB,CAAQ,CACvC,IAAI,CAAC09U,kBAAkB,CAAC9xU,MAAM,CAAC5L,GAC/B,IAAI,CAACy9U,aAAa,CAACr5U,MAAM,CAACpE,EAC9B,CAEOoyK,QAAe,CAClB,IAAI,CAACyrK,QAAQ,GAEb,IAAI,CAACF,aAAa,CAAG,CAACvgV,EAAOo9B,EAAGsjT,EAAQrwT,KACpCrwB,EAAM+pT,IAAI,GACV/pT,EAAM2gV,MAAM,CAAGtwT,CACnB,EAEA,IAAI,CAACgwT,aAAa,CAAClkT,EAAE,CAAC,gBAAiB,IAAI,CAACokT,aAAa,EACzD,IAAI,CAACF,aAAa,CAAClkT,EAAE,CAAC,qBAAsB,IAAI,CAACokT,aAAa,CAClE,CAEOE,UAAiB,CACpB,IAAI,CAACJ,aAAa,CAAC1zS,GAAG,CAAC,gBAAiB,IAAI,CAAC4zS,aAAa,EAC1D,IAAI,CAACF,aAAa,CAAC1zS,GAAG,CAAC,qBAAsB,IAAI,CAAC4zS,aAAa,EAE/D,IAAI,CAACA,aAAa,CAAG9yT,EAAAA,CACzB,CAEO0pC,OAAc,CACjB,IAAK,IAAMv0D,KAAW,IAAI,CAAC09U,kBAAkB,CACzC,IAAI,CAACD,aAAa,CAACr5U,MAAM,CAACpE,GAG9B,IAAI,CAAC09U,kBAAkB,CAAC7xQ,KAAK,GAC7B,IAAI,CAACgyQ,QAAQ,EACjB,CAEOh1S,SAAgB,CACnB,IAAI,CAAC0rB,KAAK,GACV,IAAI,CAACi7J,OAAO,CAAC82G,OAAO,CAACrmL,IAAI,CAACziJ,KAAK,EACnC,CACJ,CCxDO,IAAMwgV,EAAsB,CAC/Bl2S,KAAM,WACN4nI,WAAY,gBAChB,CCKO,OAAMuuK,EACQzuH,OAEjBhuN,aAAYquN,CAAuB,CAAE,CACjC,IAAI,CAACL,OAAO,CAAGK,CACnB,CAEA,OAAequH,+BAA6E,CAAC,IAAD,EAA/C3rK,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAqB,EAC9D,MAAO,CACHA,WAAYA,EACZ7C,WAAY,GACZ1nJ,KAAM,GACN4oJ,SAAU,EACd,CACJ,CAEA,OAAeutK,YAAYC,CAAmB,CAAE52B,CAAe,CAAU,CACrE,OAAO42B,EAAc52B,CACzB,CACA,OAAe62B,aAAaD,CAAmB,CAAE52B,CAAe,CAAU,CACtE,OAAOA,EAAU42B,CACrB,CAEOE,YAAoC,CACvC,IAAMC,EAAiBt+U,MAAM4rD,IAAI,CAAC,IAAI,CAAC2jK,OAAO,CAACz8M,KAAK,CAACxU,QAAQ,CAAC6zM,SAAS,CAACosI,iBAAiB,IAAIpgV,MAAM,QAEnG,EAAqB,EACV6/U,EAAgBC,6BAA6B,CAACK,GAGlD,IAAI,CAACE,yBAAyB,EACzC,CAEOC,gBAAuB,CAC1B,IAAMtsI,EAAY,IAAI,CAACod,OAAO,CAACz8M,KAAK,CAACxU,QAAQ,CAAC6zM,SAAS,CACvD,GAAIA,IAAAA,EAAUuuE,UAAU,EAAU,CAACvuE,EAAUs8G,YAAY,CAACsvB,EAAoBl2S,IAAI,EAC9E,OAGJ,IAAM62S,EAAevsI,EAAUwsI,YAAY,GACrC/hV,EAAM,IAAI,CAAC2yN,OAAO,CAACz8M,KAAK,CAAC8rU,gBAAgB,CAACF,EAAa9hV,GAAG,EAC1DiiV,EAAW,IAAI,CAACtvH,OAAO,CAACz8M,KAAK,CAACquQ,WAAW,CAACvkR,GAChD,IAAI,CAAC2yN,OAAO,CAACz8M,KAAK,CAACy5J,MAAM,CAAEg7J,GAAWA,EAAOQ,YAAY,CAAC8W,GAC9D,CAEQC,YAAsCl/N,CAAO,CAAyB,CAC1E,OAAOA,EAAKm/N,EAAE,CAAC,UAAYn/N,EAAKm/N,EAAE,CAAC,aACvC,CAEQC,eAAep/N,CAAU,CAAqB,CAClD,MAAO,CAAEA,EAAKjgH,YAAY,CAACo+U,EAAoBl2S,IAAI,GAAgB,GAAI+3E,CAAsD,IAAtDA,EAAKjgH,YAAY,CAACo+U,EAAoBtuK,UAAU,EAC3H,CAEQwvK,sBAAsBzvT,CAAa,CAAe,CACtD,IAAM0vT,EAAa1vT,EAAS0vT,UAAU,CAChCC,EAAY3vT,EAAS2vT,SAAS,CAEhCC,EAAa,GACbC,EAAmB,GACnBC,EAAY,GACZC,EAAkB,SAUtB,CARmB,OAAfL,GACA,EAACE,EAAYC,EAAiB,CAAG,IAAI,CAACL,cAAc,CAACE,EAAU,EAGjD,OAAdC,GACA,EAACG,EAAWC,EAAgB,CAAG,IAAI,CAACP,cAAc,CAACG,EAAS,EAG3DC,IAAeE,GAAaD,IAAqBE,GAAoBD,KAAAA,GAC/DH,EAGPC,KAAAA,EACOF,EAGJ,IACX,CAEQM,0BAA0BrtI,CAA4B,CAAyB,CACnF,IAAMstI,EAAgBttI,EAAUutI,gBAAgB,GAChD,GAAID,OAAAA,EACA,OAAOzB,EAAgBC,6BAA6B,GAGxD,IAAI0B,EAAyBF,EAAcG,QAAQ,CACnD,GAAID,OAAAA,GAGIA,OAFJA,CAAAA,EAAY,IAAI,CAACV,qBAAqB,CAACQ,EAAa,EAGhD,OAAOzB,EAAgBC,6BAA6B,GAI5D,GAAM,CAACl2T,EAAM0nJ,EAAW,CAAG,IAAI,CAACuvK,cAAc,CAACW,GAC/C,GAAI53T,KAAAA,EACA,OAAOi2T,EAAgBC,6BAA6B,CAAC,GAGzD,IAAM4B,EAAgB,IAAI,CAACC,gBAAgB,CAACH,EAAW53T,EAAM0nJ,EAAY,kBAAmBuuK,EAAgBI,YAAY,EAClH2B,EAAc,IAAI,CAACD,gBAAgB,CAACH,EAAW53T,EAAM0nJ,EAAY,cAAeuuK,EAAgBE,WAAW,EAE7G1kN,EAAO,IAAI,CAACslN,WAAW,CAACa,GAAaA,EAAU39U,IAAI,CAAG,GACtDg+U,EAAeL,EACfM,EAAaN,EAcjB,OAZsB,OAAlBE,IACArmN,EAAOqmN,EAAcK,YAAY,CAAG1mN,EACpCwmN,EAAeH,EAAcjgO,IACjC,EAEoB,OAAhBmgO,IACAvmN,GAAQumN,EAAYG,YAAY,CAChCD,EAAaF,EAAYngO,IAC7B,EAEA,IAAI,CAACugO,YAAY,CAACH,EAAcC,GAEzB,CACH3tK,WAAY,EACZ7C,WAAYA,EACZ1nJ,KAAMA,EACN4oJ,SAAUn3C,CACd,CACJ,CAEQ4mN,uBAAuBjuI,CAA4B,CAAyB,CAChF,IAAMkuI,EAAaluI,EAAUmuI,aAAa,GAC1C,GAAID,OAAAA,EACA,OAAOrC,EAAgBC,6BAA6B,GAGxD,IAAMsC,EAAeF,EAAWzsC,QAAQ,GACpCssC,EAAe,GACfM,EAAgB,GAChBC,EAA0B,GAC1BC,EAAgB,GAEpB,IAAK,IAAM/oT,KAAQ4oT,EAAc,CAC7B,GAAM,CAACI,EAAUC,EAAe,CAAG,IAAI,CAAC5B,cAAc,CAACrnT,GAMvD,GAJI,IAAI,CAACmnT,WAAW,CAACnnT,IACjBuoT,CAAAA,GAAgBvoT,EAAK31B,IACzB,EAEI2+U,KAAAA,EAAiB,CACjB,GAAIH,KAAAA,EAAsB,CACtBE,EAAgBC,IAAaH,GAAiBI,IAAmBH,EACjE,QACJ,CAEAC,EAAgB,GAChBF,EAAgBG,EAChBF,EAA0BG,CAC9B,CACJ,CAEA,MAAO,CACHtuK,WAAY,EACZ7C,WAAYixK,GAAiBD,EAC7B14T,KAAM24T,EAAgBF,EAAgB,GACtC7vK,SAAUuvK,CACd,CACJ,CAEQ1B,2BAAmD,CACvD,IAAMrsI,EAAY,IAAI,CAACod,OAAO,CAACz8M,KAAK,CAACxU,QAAQ,CAAC6zM,SAAS,QAEvD,EAAc8uE,WAAW,CACd,IAAI,CAACu+D,yBAAyB,CAACrtI,GAGnC,IAAI,CAACiuI,sBAAsB,CAACjuI,EACvC,CAEQ2tI,iBAAiBlgO,CAAU,CAAEihO,CAAiB,CAAEpxK,CAAmB,CAAEqxK,CAA+C,CAAEC,CAAwB,CAA6B,CAC/K,IAAIC,EAAcphO,CAAI,CAACkhO,EAAa,CAChCG,EAAe,KACff,EAAe,GAEnB,KAAOc,OAAAA,GAAsB,CACzB,GAAM,CAACE,EAAUC,EAAe,CAAG,IAAI,CAACnC,cAAc,CAACgC,GACvD,GAAIE,IAAaL,GAAaM,IAAmB1xK,EAC7C,MAGA,IAAI,CAACqvK,WAAW,CAACkC,IACjBd,CAAAA,EAAea,EAASb,EAAcc,EAAYh/U,IAAI,GAG1Di/U,EAAeD,EACfA,EAAcA,CAAW,CAACF,EAC9B,QAEA,OAAIG,EACO,KAGJ,CACHf,aAAcA,EACdtgO,KAAMqhO,CACV,CACJ,CAEQd,aAAaiB,CAAe,CAAEC,CAAa,CAAQ,CACvD,IAAMrpU,EAAQ,IAAI,CAACu3M,OAAO,CAACz8M,KAAK,CAAC8rU,gBAAgB,CAACwC,EAAW,UACvDxkV,EAAM,IAAI,CAAC2yN,OAAO,CAACz8M,KAAK,CAAC8rU,gBAAgB,CAACyC,EAAS,SACnDngE,EAAQ,IAAI,CAAC3xD,OAAO,CAACz8M,KAAK,CAACquQ,WAAW,CAACnpQ,EAAOpb,GAEpD,IAAI,CAAC2yN,OAAO,CAACz8M,KAAK,CAACy5J,MAAM,CAAEg7J,GAAWA,EAAOQ,YAAY,CAAC7mD,GAC9D,CACJ,CCvNO,MAAMogE,EACOtuK,iBAECu8C,CAAAA,OACAgyH,CAAAA,gBACAC,CAAAA,YACAC,CAAAA,cAA8B,aAEnC7xH,CAAuB,CAAE8xH,CAAwB,CAAEC,CAA4B,CAAE,CACzF,IAAI,CAACpyH,OAAO,CAAGK,EACf,IAAI,CAAC4xH,YAAY,CAAGE,EACpB,IAAI,CAACD,cAAc,CAAGE,EAEtB,IAAI,CAACJ,gBAAgB,CAAG,IAAIvD,EAAgBpuH,GAC5C,IAAI,CAAC58C,iBAAiB,CAAG,IAAIuqK,EAAkB3tH,EACnD,CAEOgyH,oBAA4C,CAC/C,OAAO,IAAI,CAACL,gBAAgB,CAAClD,UAAU,EAC3C,CAEOwD,QAAQ95T,CAAY,CAAE0nJ,CAAmB,CAAQ,CACpD,IAAI,CAAC+xK,YAAY,CAACxoR,OAAO,CAACjxC,EAAM,CAAE,CAACg2T,EAAoBtuK,UAAU,CAAC,CAAEA,CAAW,GAC/E,IAAI,CAAC8xK,gBAAgB,CAAC9C,cAAc,EACxC,CAEOqD,YAAmB,CACtB,IAAI,CAACL,cAAc,CAACzoR,OAAO,GAC3B,IAAI,CAACu2J,OAAO,CAAC82G,OAAO,CAACrmL,IAAI,CAACziJ,KAAK,EACnC,CAEOwkV,WAAWvoN,CAAY,CAAQ,CAClC,IAAI,CAAC+1F,OAAO,CAACz8M,KAAK,CAACy5J,MAAM,CAAEg7J,IACvB,IAAM3nN,EAAO2nN,EAAOya,UAAU,CAACxoN,GACzB0nJ,EAAQ,IAAI,CAAC3xD,OAAO,CAACz8M,KAAK,CAAC89M,aAAa,CAAChxG,GAC/C2nN,EAAOQ,YAAY,CAAC7mD,EACxB,EACJ,CACJ,C,QCzCO,OAAM+gE,EACT,OAAcC,QAAQtyH,CAAuB,CAAQ,CACjDA,EAAO98M,KAAK,CAACm+T,MAAM,CAAClxP,MAAM,CAAC,QAAS,CAChCwwP,gBAAiB,CAACwN,EAAoBl2S,IAAI,CAAEk2S,EAAoBtuK,UAAU,CAC9E,GAEAmgD,EAAOshH,UAAU,CAAC31L,GAAG,CAAC,YAAY4mM,kBAAkB,CAAC,CACjDrvU,MAAOirU,EAAoBl2S,IAAI,CAC/Bm4G,KAAMiiM,EAAkBG,uBAC5B,GAEAxyH,EAAOshH,UAAU,CAAC31L,GAAG,CAAC,YAAY4mM,kBAAkB,CAAC,CACjDrvU,MAAOirU,EAAoBtuK,UAAU,CACrCzvB,KAAMiiM,EAAkBI,2BAC5B,GAEAzyH,EAAOshH,UAAU,CAAC31L,GAAG,CAAC,UAAU+mM,kBAAkB,CAAC,CAC/CxvU,MAAO,CACH/U,IAAKggV,EAAoBl2S,IAAI,CAC7BxqC,MAAQ0zU,GAA6BA,EAAYpxU,YAAY,CAAC,SAAW,IAC7E,EACAqgJ,KAAM,CACFphC,WAAY,OACZz2F,KAAM,GACV,CACJ,GAEAynM,EAAOshH,UAAU,CAAC31L,GAAG,CAAC,UAAU+mM,kBAAkB,CAAC,CAC/CxvU,MAAOirU,EAAoBtuK,UAAU,CACrCzvB,KAAMiiM,EAAkBM,oCAC5B,EACJ,CAEA,OAAeH,wBAAwB/kV,CAAa,CAAEmlV,CAA0B,CAAoB,CAChG,OAAOA,EAAIjb,MAAM,CAACkb,sBAAsB,CAAC,IAAK,CAAE56S,KAAMxqC,CAAM,EAChE,CAEA,OAAeglV,4BAA4B9nT,CAAS,CAAEioT,CAA0B,CAAoB,CAChG,OAAOA,EAAIjb,MAAM,CAACkb,sBAAsB,CAAC,IAAK,CAAEj8C,IAAK,sBAAuB/oS,OAAQ,QAAS,EACjG,CAEA,OAAe8kV,qCAAqCxiV,CAAoB,CAAgB,CACpF,GAAIA,MAAAA,EAAQooB,IAAI,EAAYpoB,WAAAA,EAAQJ,YAAY,CAAC,UAC7C,OAAO,KAGX,IAAMi/G,EAAa,CAAC,SAAS,CAK7B,OAJI7+G,EAAQ0uT,YAAY,CAAC,QACrB7vM,EAAWh8G,IAAI,CAAC,OAGb,CAAEg8G,WAAYA,EAAYz2F,KAAM,EAAK,CAChD,CACJ,CC7CO,MAAMu6T,UAAqBrS,EAAAA,EAAMA,CACpC,OAAuBqR,YAAsB,MAAO,QAC7BC,cAAwB,QAAS,QACjCgB,UAAoB,QACnCC,CAAAA,gBAA0B,EAE3B9+S,CAAAA,MAAa,CAChB,IAAM8rL,EAAS,IAAI,CAACA,MAAM,CAEpBizH,EAAejzH,EAAOzoN,MAAM,CAAC+C,GAAG,CAACw4U,EAAaC,SAAS,EAC7D,GAAIE,KAAiB/hV,IAAjB+hV,GAA8BA,KAAwB/hV,IAAxB+hV,EAAa9vK,MAAM,CACjD,OAGJkvK,EAAkBC,OAAO,CAACtyH,GAC1BA,EAAO98M,KAAK,CAACxU,QAAQ,CAAC6zM,SAAS,CAAC74K,EAAE,CAAC,eAAgB,IAAI,CAACwpT,iBAAiB,CAACxnV,IAAI,CAAC,IAAI,GACnFs0N,EAAO98M,KAAK,CAACxU,QAAQ,CAAC6zM,SAAS,CAAC74K,EAAE,CAAC,mBAAoB,IAAI,CAACypT,4BAA4B,CAACznV,IAAI,CAAC,IAAI,GAElG,IAAMomV,EAAc,IAAIsB,EAAAA,EAAWA,CAACpzH,GAC9B+xH,EAAgB,IAAIsB,EAAAA,EAAaA,CAACrzH,GAExCA,EAAOw+G,QAAQ,CAAC1rU,GAAG,CAACggV,EAAahB,WAAW,CAAEA,GAC9C9xH,EAAOw+G,QAAQ,CAAC1rU,GAAG,CAACggV,EAAaf,aAAa,CAAEA,GAEhDD,EAAYwB,gBAAgB,CAACxgV,GAAG,CAC5B,IAAIygV,EAAAA,EAAeA,CAAC,CAChBvkO,WAAY,CACR4nL,IAAK,sBACL/oS,OAAQ,QACZ,EACAqR,GAAIivU,EAAoBtuK,UAAU,CAClCznK,MAAO,GACPinF,KAAM,QACV,IAGJ2gI,EAAOiB,EAAE,CAACuyH,gBAAgB,CAAC1gV,GAAG,CAAC,SAAU,IAAM,IAAI,CAAC2gV,gBAAgB,CAACzzH,EAAQizH,EAAa9vK,MAAM,CAAE2uK,EAAaC,GACnH,CAEQ0B,iBAAiBzzH,CAAuB,CAAE78C,CAAmB,CAAE2uK,CAAwB,CAAEC,CAA4B,CAAc,CACvI,IAAMrgO,EAAS,IAAImxN,EAAAA,CAAUA,CAwC7B,OAtCA7iH,EAAO8tG,UAAU,CAAC3wQ,GAAG,CAAC,SAAU,CAACxyB,EAAGniB,KAChCkpG,EAAO0lN,IAAI,CAAC,WACZ5uT,GACJ,GAEAkpG,EAAOv0D,GAAG,CAAC,CACP8qC,KC3DY,qlBD4DZ7vF,MAAO+0T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,8BAC9BqyJ,QAAS,EACb,GAEAr2C,EAAOhoF,EAAE,CAAC,UAAW,KACjB,IAAMgqT,EAAgB,IAAIhC,EAAgB1xH,EAAQ8xH,EAAaC,GACzD3uK,EAAoB,IAAIuqK,EAAkB3tH,GAC1C9iM,EAASw2T,EAAc1B,kBAAkB,GAE/C7uK,EAAOjmJ,EAAQkmJ,GAAmBn5I,SAAS,CAAC,CACxC6rC,SAAU,IAAMstG,EAAkBpqI,OAAO,GACzC+iB,KAAO43R,IACH,GAAIA,WAAAA,EAAQt0P,IAAI,CAAe,CAC3Bq0P,EAAcxB,UAAU,GACxB,MACJ,CAEA,GAAI,CAACj9B,CAAAA,EAAAA,EAAAA,CAAAA,EAAkB0+B,EAAQhxK,WAAW,EACtC,OAGJ,IAAMC,EAAkB+wK,KAAAA,EAAQ/wK,eAAe,EAAW1lJ,EAAOwlJ,UAAU,EAAI,EAAIixK,EAAQhxK,WAAW,CAAGgxK,EAAQ/wK,eAAe,CAC5HA,IAAoB1lJ,EAAO6jJ,QAAQ,EACnC2yK,EAAcvB,UAAU,CAACvvK,GAG7B8wK,EAAczB,OAAO,CAAC0B,EAAQhxK,WAAW,CAAEgxK,EAAQ9zK,UAAU,CACjE,CACJ,EACJ,GAEOnuD,CACX,CAEQwhO,mBAA0B,CACD,KAAzB,IAAI,CAACF,eAAe,EACpB,IAAI,CAAChzH,MAAM,CAAC98M,KAAK,CAACy5J,MAAM,CAAEg7J,IACtBA,EAAOic,uBAAuB,CAAC,IAAI,CAACZ,eAAe,EACnD,IAAI,CAACA,eAAe,CAAG,EAC3B,GAGJ,IAAMzwI,EAAY,IAAI,CAACyd,MAAM,CAAC98M,KAAK,CAACxU,QAAQ,CAAC6zM,SAAS,CACtD,GAAI,CAACA,EAAU8uE,WAAW,CACtB,OAGJ,IAAMzxP,EAAW2iL,EAAUutI,gBAAgB,GAC3C,GAAIlwT,OAAAA,GAIJ,GAAI,IAAI,CAACi0T,qBAAqB,CAACj0T,GAAW,CACtC,IAAI,CAACk0T,kCAAkC,GACvC,MACJ,CAEI,IAAI,CAACC,mBAAmB,CAACn0T,IACzB,KAAI,CAACozT,eAAe,CAAG,IAAI,CAAChzH,MAAM,CAAC98M,KAAK,CAACy5J,MAAM,CAAEg7J,GAAWA,EAAOqc,wBAAwB,GAAE,EAErG,CAEQD,oBAAoBn0T,CAAkC,CAAW,CACrE,OAAOA,OAAAA,EAAS0vT,UAAU,EAAa1vT,EAAS0vT,UAAU,CAACzwB,YAAY,CAACsvB,EAAoBl2S,IAAI,GAAKrY,EAAS0vT,UAAU,CAACt6D,SAAS,GAAKp1P,EAAShT,IAAI,CAACgT,EAAShT,IAAI,CAACre,MAAM,CAAG,EAChL,CAEQslV,sBAAsBj0T,CAAkC,CAAW,CACvE,OAAOA,OAAAA,EAAS0vT,UAAU,EAAa1vT,EAASq0T,SAAS,EAAIr0T,OAAAA,EAAS2vT,SAAS,EAAa3vT,EAAS2vT,SAAS,CAAC1wB,YAAY,CAACsvB,EAAoBl2S,IAAI,CACxJ,CAEQ67S,oCAA2C,CAC/C,IAAI,CAAC9zH,MAAM,CAAC98M,KAAK,CAACy5J,MAAM,CAAEg7J,IACtBA,EAAOuc,wBAAwB,CAAC,YAChCvc,EAAOuc,wBAAwB,CAAC,iBACpC,EACJ,CAEQf,6BAA6BxoT,CAAY,CAAEwpT,CAA0B,CAAQ,CACjF,IAAM5xI,EAAY,IAAI,CAACyd,MAAM,CAAC98M,KAAK,CAACxU,QAAQ,CAAC6zM,SAAS,CACtD,GAAI,CAACA,EAAU8uE,WAAW,EAAI,CAAC8iE,EAAaC,aAAa,CAAC7kU,QAAQ,CAAC,YAC/D,OAGJ,IAAMqQ,EAAW2iL,EAAUutI,gBAAgB,EAC1B,QAAblwT,GAAqB,IAAI,CAACi0T,qBAAqB,CAACj0T,IAChD,IAAI,CAACk0T,kCAAkC,EAE/C,CACJ,CEjJO,IAAMvvK,EAAuB,CAChChsJ,KAAM,SACN2rT,aAAc,KACd/I,QAAS,CAAC2X,EAAa,CACvBuB,mBAAoB,CAACvB,EAAahB,WAAW,CAAEgB,EAAaf,aAAa,CAC7E,C,kDCLO,IAAMxU,EAA6B,CACtChlT,KAAM,eACN2rT,aAAc,KACd/I,QAAS,CAACkS,EAAAA,EAAIA,CAAEC,EAAAA,EAAcA,CAClC,C,iDCJO,IAAM9P,EAAwB,CACjCjlT,KAAM,UACN2rT,aAAc,KACd/I,QAAS,CAACqS,EAAAA,EAAMA,CAAEC,EAAAA,EAAWA,CACjC,C,kCCJO,IAAMhQ,EAAqB,CAC9BllT,KAAM,OACN2rT,aAAc,KACd/I,QAAS,CAAC0G,E,OAAAA,EAAIA,CAClB,C,mCCJO,IAAMnE,EAA6B,CACtCnlT,KAAM,eACN2rT,aAAc,KACd/I,QAAS,CAACmZ,E,OAAAA,EAAYA,CAC1B,C,2DCJO,OAAMC,UAA+B9T,EAAAA,EAAMA,CACvCvsS,MAAa,CAGhBwoS,IAFmB,CAAC18G,MAAM,CAACm7G,OAAO,CAAC7gU,GAAG,CAAC,qBAEhCk6U,QAAQ,CAACrnB,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,+CAAgD,CACnF,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,+CAAgD,EAChG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,qDAAsD,EACtG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,8CAA+C,EAC/F,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,oDAAqD,EACrG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,+CAAgD,EAChG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,qDAAsD,EACtG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,+CAAgD,EAChG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,qDAAsD,EACtG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,iDAAkD,EAClG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,uDAAwD,EACxG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,8CAA+C,EAC/F,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,oDAAqD,EACrG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,6CAA8C,EAC9F,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,mDAAoD,EACpG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,+CAAgD,EAChG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,qDAAsD,EACtG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,8CAA+C,EAC/F,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,oDAAqD,EACrG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,+CAAgD,EAChG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,qDAAsD,EACtG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,gDAAiD,EACjG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,sDAAuD,EACvG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,4CAA6C,EAC7F,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,kDAAmD,EACnG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,4CAA6C,EAC7F,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,kDAAmD,EACnG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,4CAA6C,EAC7F,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,kDAAmD,EACnG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,iDAAkD,EAClG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,uDAAwD,EACxG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,4CAA6C,EAC7F,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,kDAAmD,EACnG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,6CAA8C,EAC9F,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,mDAAoD,EACpG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,+CAAgD,EAChG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,qDAAsD,EACtG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,yDAA0D,EAC1G,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,6CAA8C,EAC9F,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,mDAAoD,EACpG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,iDAAkD,EAClG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,uDAAwD,EACxG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,6CAA8C,EAC9F,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,mDAAoD,EACpG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,6CAA8C,EAC9F,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,mDAAoD,EACpG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,6CAA8C,EAC9F,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,mDAAoD,EACpG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,+CAAgD,EAChG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,qDAAsD,EACzG,CACL,CACJ,CClDO,MAAMg/U,UAAsCjU,EAAAA,EAAMA,CAC9CvsS,MAAa,CAGhBwoS,IAFmB,CAAC18G,MAAM,CAACm7G,OAAO,CAAC7gU,GAAG,CAAC,qBAEhCk6U,QAAQ,CAAC,eAAgB,CAC5B,CAAEC,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,kDAAmD,EACnG,CAAE++U,UAAW,IAAKv8U,MAAOi1T,EAAAA,CAAYA,CAACz3T,SAAS,CAAC,yDAA0D,EAC7G,CACL,CACJ,CCbO,IAAMi/U,EAAkC,CAC3Cp8T,KAAM,oBACN2rT,aAAc,KACd/I,QAAS,CAACyZ,EAAAA,EAAiBA,CAAEL,EAAwBM,EAAAA,EAAsBA,CAAEC,EAAAA,EAA6BA,CAAEJ,EAChH,C,mCCNO,IAAM/W,EAA8B,CACvCplT,KAAM,gBACN2rT,aAAc,KACd/I,QAAS,CAAC4Z,E,OAAAA,EAAaA,CAC3B,C,mCCJO,IAAMjX,EAA0B,CACnCvlT,KAAM,YACN2rT,aAAc,KACd/I,QAAS,CAAC6Z,E,OAAAA,EAASA,CACvB,C,mCCJO,IAAMjX,EAAqB,CAC9BxlT,KAAM,OACN2rT,aAAc,KACd/I,QAAS,CAAC0G,E,OAAAA,EAAIA,CAClB,C,wBCPYyD,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,OAAAA,CAAAA,QAAAA,EAAAA,OAAAA,CAAAA,QAAAA,EAAAA,OAAAA,CAAAA,QAAAA,EAAAA,OAAAA,CAAAA,QAAAA,EAAAA,QAAAA,CAAAA,SAAAA,EAAAA,QAAAA,CAAAA,SAAAA,EAAAA,QAAAA,CAAAA,SAAAA,EAAAA,QAAAA,CAAAA,SAAAA,EAAAA,QAAAA,CAAAA,SAAAA,EAAAA,QAAAA,CAAAA,Q,mLCeL,IAAM7gK,EAAmD,CAC5D,CAACu4J,EAAAA,CAAIA,CAAEM,EAAAA,CAAMA,CAAEQ,EAAAA,CAASA,CAAEH,EAAAA,CAAaA,CAAC,CACxC,CAACJ,EAAAA,CAAYA,CAAEN,EAAAA,CAAYA,CAAC,CAC5B,CAACS,EAAAA,CAAYA,CAAC,CACd,CAACn5J,EAAAA,CAAMA,CAAC,CACR,CAACi5J,EAAAA,CAAOA,CAAEH,EAAAA,CAAMA,CAAC,CACjB,CAACsX,EAAAA,CAAiBA,CAAC,CACnB,CAAC5W,EAAAA,CAAIA,CAAEN,EAAAA,CAAIA,CAAC,CACd,E,gCCpBK,SAAS4N,EAAyBx9U,CAAc,CAAEypQ,CAA8B,EACnF,IAAI90J,EAAO,EACPmR,EAAQ2jJ,EAAQ/oQ,MAAM,CAAG,EACzB68U,EAAe,KAEnB,KAAO5oO,GAAQmR,GAAO,CAClB,IAAMshO,EAAS3mS,KAAKC,KAAK,CAAEi0D,CAAAA,EAAOmR,CAAI,EAAK,GACrClmH,EAAQ6pQ,CAAO,CAAC29E,EAAO,CAE7B,GAAIxnV,IAAUI,EACV,OAAOJ,EAGP29U,CAAAA,OAAAA,GAAyB98R,KAAKkyD,GAAG,CAAC3yG,EAASJ,IAAU6gD,KAAKkyD,GAAG,CAAC3yG,EAASu9U,EAAY,GACnFA,CAAAA,EAAe39U,CAAI,EAGnBA,EAAQI,EACR20G,EAAOyyO,EAAS,EAEhBthO,EAAQshO,EAAS,CAEzB,CAEA,OAAO7J,CACX,C,kDC5BO,IAAM8J,EAAkBznV,GAAgBA,CCGxC,OAAMy9U,EACT,OAAwBiK,0BAAoC,MAAO,QAC3CC,aAAuB,KAAM,QAC7BC,sBAAgC,0BAA2B,QAC3DC,SAAgE,CACpFC,GAAK9nV,GAAU+nV,CAAAA,EAAAA,EAAAA,CAAAA,EAAkB/nV,EAAQy9U,EAAaiK,yBAAyB,EAC/EnP,GAAIkP,EACJ7oL,GAAK5+J,GAAU+nV,CAAAA,EAAAA,EAAAA,CAAAA,EAAkB/nV,KAAAA,EAAey9U,EAAaiK,yBAAyB,EACtF1rO,GAAKh8G,GAAU+nV,CAAAA,EAAAA,EAAAA,CAAAA,EAAkB/nV,GAAAA,EAAcy9U,EAAaiK,yBAAyB,EACrFM,GAAKhoV,GAAU+nV,CAAAA,EAAAA,EAAAA,CAAAA,EAAkB/nV,EAAQy9U,EAAakK,YAAY,EAClEM,GAAIF,EAAAA,CAAiBA,CACrBG,IAAKT,CACT,CAAE,QAEY/J,cAAcyK,CAAgB,CAAU,CAClD,IAAM1mU,EAAQ0mU,EAAS1mU,KAAK,CAACg8T,EAAamK,qBAAqB,SAC/D,OAAInmU,EACOi/B,IAGJ+8R,EAAa2K,aAAa,CAACjnK,WAAW1/J,CAAK,CAAC,EAAE,EAAGA,CAAK,CAAC,EAAE,CACpE,CAEA,OAAe2mU,cAAcpoV,CAAa,CAAEqoV,CAAY,CAAU,CAC9D,IAAMC,EAAY7K,EAAaoK,QAAQ,CAACQ,EAAK,QAE7C,KAAkB5kV,IAAd6kV,EACO5nS,IAGJ4nS,EAAUtoV,EACrB,CACJ,C,wBCnCY8rR,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,aAAAA,CAAAA,yBAAAA,EAAAA,WAAAA,CAAAA,wBAAAA,EAAAA,cAAAA,CAAAA,yB,kDCGL,IAAME,EAA4DtpR,IAC5C,MAArBA,EAAQktG,QAAQ,EAChBqoO,EAAAA,CAAqBA,CAAC31E,SAAS,CAAC5/P,EAExC,C,sECHO,OAAM6lV,UAAwB3O,EAAAA,CAAoBA,CACpCzjK,OAAgC,aAErCrsK,CAA8B,CAAE,CACxC,KAAK,GACL,IAAI,CAACqsK,OAAO,CAAGrsK,CACnB,CAEUqwU,QAAQz3U,CAA0B,CAAW,CACnD,IAAI8nC,EAAO9nC,EAAQJ,YAAY,CAAC,SAAW,SAG3C,KAFAkoC,CAAAA,EAAO,IAAI,CAAC2rI,OAAO,CAACqyK,cAAc,CAACh+S,EAAM9nC,EAAO,GAE5B8kT,CAAAA,EAAAA,EAAAA,CAAAA,EAAkBh9Q,IAStC,IAAI,CAACi+S,eAAe,CAAC/lV,GACd,KARY,OADAA,EAAQ0gL,aAAa,EAEhC1gL,EAAQm9Q,WAAW,IAAIn9Q,EAAQ21Q,UAAU,EAGtC,GAKf,CAEQowE,gBAAgB/lV,CAA0B,CAAQ,CACtD,GAAIA,KAAAA,EAAQtC,MAAM,EAIlB,GAAIsC,WAAAA,EAAQtC,MAAM,CAAe,CAC7BsC,EAAQb,YAAY,CAAC,MAAO,uBAC5B,MACJ,CAEAa,EAAQH,eAAe,CAAC,UAC5B,CACJ,CCrCO,IAAM01U,EAA8C,IAAIsQ,EAAgBG,EAAAA,CAA2BA,C,kCCFnG,IAAMA,EAAsD,CAC/DF,eAAgB,KACZ,MAAM,MAAU,2BACpB,CACJ,C,mCCJO,IAAM/Q,EAAiC,CAC1Cl2N,WAAY,KACZq9I,OAAQ,IACZ,C,iFCHA,IAAM+pF,EAAe,OAAW,kQAAqE,CAAE,K,uBCChG,OAAMC,EACT,OAAuBC,aAAsC,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5F,CAAiBC,cAAuB,aAE5BC,CAA4B,CAAE,CACtC,IAAI,CAACD,cAAc,CAAGC,CAC1B,CAEA,OAAcC,sBAAsBC,CAAmC,CAAwB,CAC3F,IAAM9lV,EAAQylV,EAAqBC,YAAY,CAACtlV,OAAO,CAAC0lV,GACxD,OAAO,IAAIL,EAAqBzlV,EACpC,CAEO+lV,IAAIC,CAAyB,CAAQ,CACxC,GAAI,SAAI,CAACL,cAAc,CACnB,OAGJ,IAAI3lV,EAAQ,IAAI,CAAC2lV,cAAc,CAC3B1N,EAAawN,EAAqBC,YAAY,CAAC1lV,EAAM,CAEnDimV,EAAqC,EAAE,CAC7C,IAAK,IAAMC,KAAeT,EAAqBC,YAAY,CAAE,CACzD,IAAMS,EAAWH,EAAiBhzO,oBAAoB,CAACkzO,EAEnDC,CAAAA,EAASxoV,MAAM,CAAG,GAClBsoV,EAAY7jV,IAAI,CAAC5C,MAAM4rD,IAAI,CAAC+6R,GAEpC,CAEA,IAAMj/L,EAAYu+L,EAAqBC,YAAY,CAAC/nV,MAAM,CAAG,EAC7D,IAAK,IAAMwoV,KAAYF,EACnB,GAAIE,CAAQ,CAAC,EAAE,CAACt+N,OAAO,GAAKowN,GAI5B,IAAK,IAAMzqR,KAAW24R,EAClB,IAAI,CAACC,QAAQ,CAAC54R,EAASyqR,EAG3Bj4U,CAAAA,IACAi4U,EAAawN,EAAqBC,YAAY,CAAChoS,KAAKqoC,GAAG,CAAC/lF,EAAOknJ,GACnE,CACJ,CAEQk/L,SAAS54R,CAAgB,CAAE64R,CAA8B,CAAQ,CACrE,IAAMC,EAAa94R,EAAQ+4R,aAAa,CAAC3zO,aAAa,CAACyzO,GAGvD,IAAK,IAAMhQ,KADQ7oR,EAAQ8oR,iBAAiB,GAExCgQ,EAAW5nV,YAAY,CAAC23U,EAAW7oR,EAAQruD,YAAY,CAACk3U,IAG5DE,CAAAA,EAAAA,EAAAA,CAAAA,EAAoB/oR,EAAS84R,GAC7B94R,EAAQkvN,WAAW,CAAC4pE,EACxB,CACJ,CC3DA,IAAME,EAAe,oBAGRC,EAAoB,CAC7BntC,SAAUotC,SAHoB5sK,cAAc,CAAC6sK,cAAc,CAACH,EAAc,MAG/CI,eAAe,CAACJ,EAAcA,GACzDpiT,MAAO,KACHqiT,EAAkBntC,QAAQ,CAACj2B,SAAS,CAAG,EAC3C,EACAwjE,MAAQznO,IACJqnO,EAAkBntC,QAAQ,CAACvmM,WAAW,CAACqM,EAC3C,CACJ,E,cCQO,OAAMw2N,EACQ5iK,OACA8zK,CAAAA,gBACAC,CAAAA,aACAC,CAAAA,uBACAC,CAAAA,sBACAC,CAAAA,4BACTC,CAAAA,iBAAmC7S,EAAAA,CAAe,aAE9C3tU,CAA+B,CAAEygV,CAAuC,CAAE,CAClF,IAAI,CAACp0K,OAAO,CAAGrsK,EAEf,IAAI,CAACmgV,gBAAgB,CAAG,CAAEO,SAAU,CAAC,SAAS,CAAE3+D,aAAc3kR,OAAOZ,IAAI,CAAC,IAAI,CAAC6vK,OAAO,CAAC1pJ,IAAI,EAAG6/P,WAAY,EAAK,EAC/G,IAAI,CAAC49D,aAAa,CAAGK,OAAAA,EAA4B,KAAO3B,EAAqBI,qBAAqB,CAACuB,GAEnG,IAAI,CAACJ,uBAAuB,CAAG,IAAI,CAACM,YAAY,CAACxsV,IAAI,CAAC,IAAI,EAC1D,IAAI,CAACosV,4BAA4B,CAAG,IAAI,CAACK,iBAAiB,CAACzsV,IAAI,CAAC,IAAI,EACpE,IAAI,CAACmsV,sBAAsB,CAAG,IAAI,CAACO,WAAW,CAAC1sV,IAAI,CAAC,IAAI,CAC5D,CAEA,OAAe2sV,WAAWroO,CAAU,CAAmB,CACnD,OAAOA,EAAKp7B,QAAQ,GAAK6yP,KAAKC,YAClC,CAEA,MAMa4Q,CAAoB,CAAmB,CAChDC,IAAAA,OAAiB,CAACh/D,EAAAA,CAAkBA,CAACC,aAAa,CAAE,IAAI,CAACq+D,sBAAsB,EAE/E,IAAMW,EAAaD,IAAAA,QAAkB,CH/ClClyE,EAAW3jQ,OAAO,CAAC0zU,EAAc,UG+C+C,IAAI,CAACsB,gBAAgB,EAOxG,OALAa,IAAAA,cAAwB,GACxBA,IAAAA,OAAiB,CAAChqV,MAAM,CAAG,EAC3B8oV,EAAkBriT,KAAK,GACvB,IAAI,CAAC+iT,gBAAgB,CAAG7S,EAAAA,CAAcA,CAE/BsT,CACX,CAEOC,gBAAgBH,CAAoB,CAAoB,CAC3D,IAAME,EAAa,IAAI,CAACx4R,KAAK,CAACs4R,GAC9B,MAAOI,CAAAA,EAAAA,EAAAA,CAAAA,EAAyBF,EACpC,CAEO93H,cAAc43H,CAAoB,CAAU,CAC/C,OAAO,IAAI,CAACt4R,KAAK,CAACs4R,GAAcrkE,SACpC,CAEQmkE,YAAYpoO,CAAU,CAAQ,CACP,OAAvB,IAAI,CAAC2nO,aAAa,EAAanR,EAAiB6R,UAAU,CAACroO,IAC3D,IAAI,CAAC2nO,aAAa,CAAChB,GAAG,CAAC3mO,GAG3BuoO,IAAAA,UAAoB,CAACh/D,EAAAA,CAAkBA,CAACC,aAAa,EACrD++D,IAAAA,OAAiB,CAACh/D,EAAAA,CAAkBA,CAACC,aAAa,CAAE,IAAI,CAACo+D,uBAAuB,EAChFW,IAAAA,OAAiB,CAACh/D,EAAAA,CAAkBA,CAACo/D,WAAW,CAAE,IAAI,CAACb,4BAA4B,CACvF,CAEQI,aAAaloO,CAAU,CAAQ,CAGnC,GAFA,IAAI,CAAC+nO,gBAAgB,CAAG7S,EAAAA,CAAcA,CAElCl1N,EAAKp7B,QAAQ,GAAK6yP,KAAKE,SAAS,CAAE,CAC9B,IAAI,CAACiR,sBAAsB,CAAC5oO,IAC5BqnO,EAAkBI,KAAK,CAACznO,GAE5B,MACJ,CAEA,GAAI,CAACw2N,EAAiB6R,UAAU,CAACroO,GAAO,CACpCqnO,EAAkBI,KAAK,CAACznO,GACxB,MACJ,CAEA,IAAMyI,EAAUzI,EAAKyI,OAAO,CAAC1zG,WAAW,GACxC,GAAI0zG,SAAAA,EACA,OAGJ,IAAMogO,EAAc,IAAI,CAACj1K,OAAO,CAAC6hK,UAAU,CAAChtN,EAAQ,CACpD,GAAIogO,KAAgB3nV,IAAhB2nV,EAA2B,CAC3B,IAAMtkR,EAAaskR,EAAY9oF,SAAS,CAAC//I,GAEzC,GAAIz7C,IAAey7C,EAAM,CACF,OAAfz7C,GACAy7C,EAAKs9J,WAAW,CAAC/4M,GAGrB8iR,EAAkBI,KAAK,CAACznO,GACxB,MACJ,CACJ,CAEA,IAAM8oO,EAAY,IAAI,CAACl1K,OAAO,CAAC1pJ,IAAI,CAACu+F,EAAQ,CAC5C,GAAIqgO,KAAc5nV,IAAd4nV,EAAyB,CACrB9oO,EAAK81J,UAAU,CAACv3Q,MAAM,CAAG,GACzByhH,EAAKs9J,WAAW,CAACt9J,KAASA,EAAK81J,UAAU,EAG7CuxE,EAAkBI,KAAK,CAACznO,GACxB,MACJ,CAEA,IAAI,CAAC+nO,gBAAgB,CAAGe,CAC5B,CAEQX,kBAAkBhoV,CAAgB,CAAE4oV,CAAqC,CAAQ,CACrF,GAAI,WAAI,CAAChB,gBAAgB,CAAC1rF,MAAM,EAAa0sF,UAAAA,EAAU7kF,QAAQ,CAAc,CACzE6kF,EAAUC,SAAS,CAAG,IAAI,CAACC,cAAc,CAAC9oV,EAAsC,IAAI,CAAC4nV,gBAAgB,CAAC1rF,MAAM,EAC5G0sF,EAAUG,QAAQ,CAAGH,KAAAA,EAAUC,SAAS,CACxC,MACJ,CAEA,GAAI,WAAI,CAACjB,gBAAgB,CAAC/oO,UAAU,CAAW,CAC3C+pO,EAAUG,QAAQ,CAAG,GACrB,MACJ,CAEA,IAAMt4H,EAAY,IAAI,CAACm3H,gBAAgB,CAAC/oO,UAAU,CAAC+pO,EAAU7kF,QAAQ,CAAC,CACtE,GAAItzC,KAAc1vN,IAAd0vN,EAAyB,CACzBm4H,EAAUG,QAAQ,CAAG,GACrB,MACJ,CAEA,IAAMv7T,EAAWijM,EAAUm4H,EAAUC,SAAS,CAAE7oV,GAChD,GAAIwtB,OAAAA,EAAmB,CACnBo7T,EAAUG,QAAQ,CAAG,GACrB,MACJ,CAEAH,EAAUC,SAAS,CAAGr7T,CAC1B,CAEQs7T,eAAe9oV,CAAkC,CAAEgpV,CAAwB,CAAU,CACzF,IAAM9sF,EAASj8P,MAAM4rD,IAAI,CAAC7rD,EAAQ2oD,KAAK,EACnCsgS,EAAkB,GAEtB,IAAK,IAAMtgS,KAASuzM,EAAQ,CACxB,IAAMzrC,EAAYu4H,CAAW,CAACrgS,EAAM,CACpC,GAAI8nK,KAAc1vN,IAAd0vN,EACA,SAIJ,IAAMjjM,EAAWijM,EADIzwN,EAAQ2oD,KAAK,CAACA,EAAM,CACA3oD,EAAQ2oD,KAAK,CACrC,MAAbn7B,GACAy7T,CAAAA,GAAmB,CAAC,EAAEtgS,EAAM,EAAE,EAAEn7B,EAAS,CAAC,CAC9C,CACJ,CAEA,OAAOy7T,CACX,CAEQR,uBAAuB5I,CAAc,CAAW,CACpD,IAAMqJ,EAAYrJ,EAASzE,SAAS,CACpC,GAAI8N,OAAAA,EACA,MAAO,GAGX,IAAMhR,EAAkB2H,EAAS3H,eAAe,QAChD,OAAIA,GAA4BA,EAAgBzzP,QAAQ,GAAK6yP,KAAKE,SAAS,EAAIU,OAAAA,EAAgBkD,SAAS,EAIjG,QAAQr9U,IAAI,CAACmrV,IAAc,iBAAiBnrV,IAAI,CAACm6U,EAAgBkD,SAAS,CACrF,CACJ,C,kCCvLO,OAAelE,EACXt3E,UAAUi3E,CAAyB,CAAkB,CAExD,OAAOsS,IADiB,CAAC1R,OAAO,CAACZ,EAAuBA,EAAiBmQ,aAAa,EACjEnQ,EAAmB,IAC5C,CAMJ,C,kCCVO,OAAeF,EACDyS,WAAoB,aAEzB1Q,CAAkB,CAAE,CAC5B,IAAI,CAAC0Q,WAAW,CAAG1Q,CACvB,CAEO94E,UAAUi3E,CAAyB,CAAkB,CAGxD,IAAMzyQ,EAAsByyQ,EAAiBmQ,aAAa,CAAC3zO,aAAa,CAAC,IAAI,CAAC+1O,WAAW,EAEzF,OADA,IAAI,CAACxS,KAAK,CAACC,EAAuBzyQ,EAAiByyQ,EAAiBmQ,aAAa,EAC1E5iR,CACX,CAGJ,C,yFCXO,OAAMikH,EACQ5U,OACA41K,CAAAA,MAA8E,aAE3EjiV,CAAuB,CAAE,CACzC,IAAI,CAACqsK,OAAO,CAAGrsK,EACf,IAAI,CAACiiV,MAAM,CAAG,EAClB,CAEA,OAAc/gK,2BAA2BlhL,CAAoC,CAAuB,CAChG,OAAO,IAAIihL,EAAoB,CAC3B,SACWjhL,EAAOmhL,oBAAoB,EAAsB,EAAE,CAC9DohG,YAAcviR,EAAOohL,aAAa,EAAsB,EAAE,CAC1DohG,WAAY,EAEhB,EACJ,CAEA,OAAcX,oBAAoB7hR,CAAqC,CAAuB,CAC1F,OAAO,IAAIihL,EAAoB,CAC3B,aACejhL,EAAOy3G,UAAU,EAAsB,EAAE,CACxDsqK,aAAe/hR,EAAO2iB,IAAI,EAAsB,EAAE,CAClD6/P,WAAY,EAEhB,EACJ,CAEOxkP,OAAO+iT,CAAoB,CAAE/nU,CAAe,CAAQ,CACvD42T,CAAAA,EAAAA,EAAAA,CAAAA,EAAoB,IAAI,CAACvC,OAAO,CAAC0T,GAAe/nU,EACpD,CAEOq0T,QAAQ0T,CAAoB,CAAmB,CAClD,IAAK,IAAM1oO,KAAQ,IAAI,CAAC4pO,MAAM,CAC1BjB,IAAAA,OAAiB,CAAC3oO,EAAKr3F,IAAI,CAAEq3F,EAAKl9G,QAAQ,EAG9C,IAAM+mV,EAAgBlB,IAAAA,QAAkB,CAACD,EAAc,IAAI,CAAC10K,OAAO,EAInE,OAHA20K,IAAAA,cAAwB,GACxBA,IAAAA,OAAAA,CAAkBhqV,MAAM,CAAG,EAEpBkrV,CACX,CAEOC,kBAAkBpB,CAAoB,CAAoB,CAC7D,IAAMmB,EAAgB,IAAI,CAAC7U,OAAO,CAAC0T,GACnC,MAAOI,CAAAA,EAAAA,EAAAA,CAAAA,EAAyBe,EACpC,CAEOngK,MAAMg/J,CAAoB,CAAU,CACvC,OAAO,IAAI,CAAC1T,OAAO,CAAC0T,GAAcrkE,SACtC,CAEOvqP,GAAGswE,CAA6B,CAAEtnG,CAAgC,CAAQ,CAC7E,IAAI,CAAC8mV,MAAM,CAACxmV,IAAI,CAAC,CAAEN,SAAUA,EAAU6lB,KAAMyhF,CAAU,EAC3D,CACJ,C,mCCjEA,IAAM2/O,EAAqBjrV,SAASg8K,cAAc,CAACkvK,kBAAkB,CAAC,IAO/D,SAASvnH,EAAsBg0C,CAAkB,EACpD,EACmB3iK,IAAI,CAACuwK,SAAS,CAAG5N,EACpC,IAFmD,EAE9BszE,EAAmBj2O,IAAI,CAAsBpyG,WAAW,CAACoR,OAAO,CAAC,UAAW,IAGjG,OAFAi3U,EAAmBj2O,IAAI,CAACpyG,WAAW,CAAG,GAE/BA,CACX,C,mCChBO,IAAMuoV,EAAoB,2BCE3BC,EAAoBprV,SAAS80G,aAAa,CAAM,KAE/C,SAASyxM,EAAkBz2S,CAAW,EACzC,GAAIq7U,EAAkB3rV,IAAI,CAACsQ,GACvB,MAAO,EAIXs7U,CAAAA,EAAkB7hT,IAAI,CAAGz5B,EACzB,IAAMu7U,EAAgBD,EAAkB7hT,IAAI,CAE5C,OAAO4hT,EAAkB3rV,IAAI,CAAC6rV,EAClC,C,yGCTO,IAAM7uD,EAAiDtqP,IAC1D,IAAMq7P,EAAaxB,CAAAA,EAAAA,EAAAA,MAAAA,EAAuB,MACpCoa,EAAqBrO,CAAAA,EAAAA,EAAAA,CAAAA,EAAYsO,EAAAA,CAAkBA,CAAEl0Q,EAAM6/H,YAAY,EAAI,GAcjF,MAZA83H,CAAAA,EAAAA,EAAAA,CAAAA,EAAW,KACPsc,EAAmB17H,QAAQ,CAACv4I,EAAMylO,UAAU,CAAE41B,EAAY,IAEnD,KACH4Y,EAAmBvyP,OAAO,EAC9B,IAGJk1O,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,KACbqd,EAAmB17H,QAAQ,CAACv4I,EAAMylO,UAAU,CAAE41B,EAAY,GAC9D,EAAG,CAACr7P,EAAMylO,UAAU,CAAC,EAEd,UAAC3hG,MAAAA,CAAIjhE,UAAW7iE,EAAM6iE,SAAS,CAAEkR,IAAKsnL,EAAYt3H,YAAW/jI,EAAMnoC,QAAQ,CAAEyG,GAAI0hC,EAAM1hC,EAAE,EACpG,C,6DCjBO,IAAM86U,EAAiDxhK,E,OAAAA,CAAmBA,CAACC,0BAA0B,CAAC,CAAEC,qBAAsB,CAAC,SAAS,CAAEC,cAAe,CAAC,OAAQ,GACzKqhK,EAAyBtwT,EAAE,CAAC6vP,EAAAA,CAAkBA,CAACC,aAAa,CAAEC,EAAAA,CAAgCA,CCDvF,OAAMq7B,EACQ37B,WAAmC6gE,CACnCC,CAAAA,MACTC,CAAAA,iBAA2B,CAAE,aAEzBjwL,CAAa,CAAE,CACvB,IAAI,CAACgwL,MAAM,CAAGhwL,CAClB,CAEOkvB,SAASktF,CAAkB,CAAE41B,CAAkC,CAAEk+C,CAAkB,CAAQ,CAC9F,GAAIA,GAAa,QAAI,CAACF,MAAM,CAAQ,CAChC,IAAI,CAACG,SAAS,CAAC/zE,EAAY41B,GAC3B,MACJ,CACAjrQ,aAAa,IAAI,CAACkpT,gBAAgB,EAClC,IAAI,CAACA,gBAAgB,CAAGvmV,OAAOu9B,UAAU,CAAC,IAAM,IAAI,CAACkpT,SAAS,CAAC/zE,EAAY41B,GAAa,IAAI,CAACg+C,MAAM,CACvG,CAEO33R,SAAgB,CACnBtxB,aAAa,IAAI,CAACkpT,gBAAgB,CACtC,CAEQE,UAAU/zE,CAAkB,CAAE41B,CAAkC,CAAQ,CAC5E,IAAMo+C,EAAmBp+C,EAAWlwL,OAAO,QACvCsuO,IACAA,EAAiBpmE,SAAS,CAAG,GAE7B,IAAI,CAACkF,UAAU,CAAC5jP,MAAM,CAAC8wO,EAAYg0E,GAE3C,CACJ,C,mCCnCO,SAAS3B,EAAyBvoV,CAAgB,EACrD,IAAMmqV,EAAW5rV,SAASylR,sBAAsB,GAEhD,KAAOhkR,OAAAA,EAAQkkR,UAAU,EACrBimE,EAAS32O,WAAW,CAACxzG,EAAQkkR,UAAU,EAG3C,OAAOimE,CACX,C,wBCRYj9R,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,MAAAA,CAAAA,SAAAA,EAAAA,GAAAA,CAAAA,MAAAA,EAAAA,IAAAA,CAAAA,M,4CCKZ,IAAMk9R,EAAc,qBAEPr9R,EAA4B,CACrCnhD,OAASwc,IACL7pB,SAASuuD,MAAM,CAAG,CAAC,EAAE1kC,EAAK,wCAAwC,CACtE,EACAje,IAAMie,IACF,IAAMiiU,EAAa,OAAW,CAAC,EAAEjiU,EAAK,UAAU,CAAC,EAC3CkiU,EAAiB/rV,SAASuuD,MAAM,CAAC/tC,KAAK,CAACsrU,GAE7C,GAAIC,OAAAA,EACA,OAAO,KAGX,IAAMC,EAAcD,CAAc,CAAC,EAAE,CAAC//T,KAAK,CAAC,KACtCvsB,EAAMusV,CAAW,CAAC,EAAE,CACpBjtV,EAAQitV,CAAW,CAAC,EAAE,QAE5B,IAAIjtV,EAAMc,MAAM,CACL,KAGJ,CACHgqB,KAAMpqB,EACNV,MAAOA,CACX,CACJ,EACAktV,OAAQ,KACJ,IAAMC,EAAgBlsV,SAASuuD,MAAM,CAAC/tC,KAAK,CAACqrU,UAE5C,OAAIK,EACO,EACX,CAEOA,EAAc3mV,GAAG,CAAEy3C,IACtB,IAAMwtB,EAAMxtB,EAAEhxB,KAAK,CAAC,KACpB,MAAO,CACHnC,KAAM2gD,CAAG,CAAC,EAAE,CACZzrE,MAAOyrE,CAAG,CAAC,EACf,CACJ,EACJ,EACA/b,IAAK,CAAC5kC,EAAc9qB,EAAe4mB,KAC/B,IAAM0wS,EAAgB1wS,KAAYnjB,IAAZmjB,EAAwB,GAAKwmU,SC9CrBxmU,CAAuB,EACzD,IAAM0wS,EAA+B,EAAE,CAkBvC,OAhBuB7zT,KAAAA,IAAnBmjB,EAAQ+wK,MAAM,EACd2/H,EAAc/xT,IAAI,CAAC,CAAC,QAAQ,EAAEqhB,EAAQ+wK,MAAM,CAACxoI,WAAW,GAAG,CAAC,CAAC,EAG5C1rD,KAAAA,IAAjBmjB,EAAQzH,IAAI,EACZm4S,EAAc/xT,IAAI,CAAC,CAAC,KAAK,EAAEqhB,EAAQzH,IAAI,CAAC,CAAC,CAAC,EAGrB1b,KAAAA,IAArBmjB,EAAQ+oC,QAAQ,EAChB2nQ,EAAc/xT,IAAI,CAAC,CAAC,SAAS,EAAEqhB,EAAQ+oC,QAAQ,CAAC,CAAC,CAAC,EAG/BlsD,KAAAA,IAAnBmjB,EAAQkpC,MAAM,EACdwnQ,EAAc/xT,IAAI,CAAC,WAGhB+xT,EAAcnvO,IAAI,CAAC,IAC9B,ED0BiFvhE,EACzE3lB,CAAAA,SAASuuD,MAAM,CAAG,CAAC,EAAE1kC,EAAK,CAAC,EAAE9qB,EAAM,EAAE,EAAEs3T,EAAc,CACzD,CACJ,C,kDEhDO,SAAS7tF,EAAyBxrM,CAAQ,EAC7C,MAAO,CACHA,MAAOA,EACPymB,QAAS,KACTj1B,OAAQ,KACR6J,OAAQojL,EAAAA,CAAgBA,CAACvxC,KAC7B,CACJ,C,kDCPO,SAASw7D,EAA2BjiL,CAAU,EACjD,MAAO,CACHzmB,MAAO,KACPymB,QAASA,EACTj1B,OAAQ,KACR6J,OAAQojL,EAAAA,CAAgBA,CAACxnF,OAC7B,CACJ,C,kDCPO,SAASw0G,EAA0Bj6M,CAAS,EAC/C,MAAO,CACHwO,MAAO,KACPymB,QAAS,KACTj1B,OAAQA,EACR6J,OAAQojL,EAAAA,CAAgBA,CAACC,QAC7B,CACJ,C,wBCVYD,E,iBAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,QAAAA,CAAAA,WAAAA,EAAAA,OAAAA,CAAAA,UAAAA,EAAAA,KAAAA,CAAAA,O,kCCEL,OAAM0vH,EACOtoJ,GACC0oK,CAAAA,MACAa,CAAAA,SACAC,CAAAA,UACTC,CAAAA,UAAmB,aAEf/wL,CAAa,CAAEv3J,CAAoB,CAAE,CAC7C,IAAI,CAACunV,MAAM,CAAGhwL,EACd,IAAI,CAAC6wL,SAAS,CAAGpoV,EACjB,IAAI,CAACsoV,UAAU,CAAG,EAClB,IAAI,CAACD,UAAU,CAAG,IAAI,CAAC1rL,KAAK,CAAC3jK,IAAI,CAAC,IAAI,EACtC,IAAI,CAAC6lL,GAAG,CAAG,IAAI,CAAC0pK,IAAI,CAACvvV,IAAI,CAAC,IAAI,CAClC,CAEO8c,QAAe,CAClB7U,OAAOq9B,YAAY,CAAC,IAAI,CAACgqT,UAAU,EACnC,IAAI,CAACA,UAAU,CAAG,CACtB,CAEO3rL,OAAc,CACO,IAApB,IAAI,CAAC2rL,UAAU,GACf,IAAI,CAACxyU,MAAM,GACX,IAAI,CAACsyU,SAAS,GAEtB,CAEQG,MAAa,CACjB,IAAI,CAACzyU,MAAM,GACX,IAAI,CAACwyU,UAAU,CAAGrnV,OAAOu9B,UAAU,CAAC,IAAI,CAAC6pT,UAAU,CAAE,IAAI,CAACd,MAAM,CACpE,CACJ,C,kBC9BO,SAAS3nM,EAAsB6wD,CAAoB,CAAEj8G,CAA4B,CAAEg0P,CAA4C,EAClI,IAAMC,EAAeh4I,EAAap+L,WAAW,GACvCq2U,EAAiB,OAAW,CAAC,YAAY,ECJxC3tV,EAAMiV,OAAO,CAAC,sCAAuC,QDIuB,YAAY,CAAC,EAE1F24U,EAAgB,EAAE,CAClBttJ,EAAS,IAAI1vJ,IAEnB,IAAK,IAAMtW,KAAQm/D,EAAY,CAC3B,IAAI6wH,EAAQ,EACZ,IAAK,IAAMujI,KAAeJ,EAAc,CACpC,IAAMK,EAAgBD,EAAYzoM,WAAW,CAAC9qH,GAC9C,GAAI,iBAAOwzT,EAA4B,CACnCxjI,GAAgByjI,EAAYD,EAAeJ,EAAcC,GAAkBE,EAAY1oM,MAAM,CAC7F,QACJ,CACA,IAAK,IAAMggE,KAAa2oI,EACpBxjI,GAAgByjI,EAAY5oI,EAAWuoI,EAAcC,GAAkBE,EAAY1oM,MACvF,CAGAmlE,EAAQ,IACRhqB,EAAO5wI,GAAG,CAACp1B,EAAMgwL,GACjBsjI,EAAcroV,IAAI,CAAC+0B,GAE3B,CAEA,OAAOszT,EAAcxuM,IAAI,CAAC,CAACt3E,EAAG2a,IAAM69G,EAAOzzL,GAAG,CAAC41E,GAAK69G,EAAOzzL,GAAG,CAACi7D,GACnE,CAEA,SAASimR,EAAYjqT,CAAe,CAAE4pT,CAAoB,CAAEC,CAAsB,EAC9E,IAAMK,EAAYlqT,EAAQxsB,WAAW,GACrC,GAAI,CAAC02U,EAAUlsU,QAAQ,CAAC4rU,GACpB,OAAO,EAGX,IAAMO,EAAkBD,EAAUlgT,MAAM,CAAC6/S,GACnCO,EAAuBF,EAAU5+I,UAAU,CAACs+I,GAE9CS,EAAmB,CACC,MAApBF,GACAE,CAAAA,EAAmBF,EAAkB,GAAKP,EAAa5sV,MAAM,CAAG,EAAI4sV,EAAa5sV,MAAM,CAAGmtV,CAAc,EAG5G,IAAMG,EAAeV,EAAa5sV,MAAM,CAAGktV,EAAUltV,MAAM,CAE3D,OAAOstV,EAAeD,EADKD,CAAAA,EAAuBE,EAAe,EAErE,C,4DEjDA,IAAMn5U,EAAWwM,IACb,IAAM4sU,EAAaxtS,GAAAA,KAAKmiC,MAAM,GAAW,EAEzC,MAAOhjF,CADOyhB,MAAAA,EAAgB4sU,EAAaA,EAAAA,EAAmB,GACjDl/T,QAAQ,CAAC,GAC1B,EAEO,SAAS22G,IACZ,MAAO,uCAAuC7wH,OAAO,CAAC,QAASA,EACnE,C,mCCRO,IAAMktK,EAAY,WAAW1hL,IAAI,CAACyF,OAAO4hQ,SAAS,CAACC,SAAS,C,kDCI5D,IAAM1lF,EAAaylF,UAAUC,SAAS,CAACjmP,QAAQ,CAAC,SAAY,CAACsgK,EAAAA,CAAYA,EAAI0lF,UAAUC,SAAS,CAACjmP,QAAQ,CAAC,QAAU5b,OAAO4hQ,SAAS,CAACS,cAAc,CAAG,C,mCCJtJ,IAAMnmF,EAAe,cAAc3hL,IAAI,CAACo0C,KAAK3uC,MAAM,CAAC4hQ,SAAS,CAACC,SAAS,C,mCCAvE,SAAS2xE,EAAoB4U,CAAsB,CAAEC,CAAkB,EAC1E,KAAOD,OAAAA,EAAc1nE,UAAU,EAC3B2nE,EAAUr4O,WAAW,CAACo4O,EAAc1nE,UAAU,CAEtD,C,mCCHO,SAASr5P,IAAc,C,sBCE9B,E,WAAA,EAAC,gBAASrnB,CAAM,CAAEjF,CAAQ,CAAEwC,CAAS,EAAG,aACtC,GAAI,CAACyC,GAAU,CAACjF,EAAU,CACxBi9B,QAAQC,IAAI,CAAC,oDACb,MACF,CAEA,IAAIqwT,EAAWtoV,EAAO4hQ,SAAS,CAAC2mF,gBAAgB,CA+BhD,SAASC,EAAK5yR,CAAI,EAehB,GAVA,IAAI,CAAC6yR,OAAO,CACR,oBAAOt1D,MACP,oBAAOh0J,MACP,oBAAOupN,UAEL,EAAC,CAACvpN,KAAK5lI,SAAS,CAACmD,KAAK,EAAI,CAAC,CAACyiI,KAAK5lI,SAAS,CAACovV,WAAW,EAAI,CAAC,CAACxpN,KAAK5lI,SAAS,CAACqvV,QAAQ,EAKpF,IAAI,CAACH,OAAO,EAQjB,IAAI,CAACI,gBAAgB,CACjB,SAAStuV,IAAI,CAACyF,EAAO4hQ,SAAS,CAACC,SAAS,GACxC,UAAUtnQ,IAAI,CAACyF,EAAO4hQ,SAAS,CAACC,SAAS,GACzC,OAAOtnQ,IAAI,CAACyF,EAAO4hQ,SAAS,CAACC,SAAS,EAO1C,IAAI,CAACjqI,KAAK,CAAG,EAAE,CAMf,IAAI,CAAC9sH,QAAQ,CAAG,CACd+pH,UAAW,QACXC,eAAgB,GAChBF,oBAAqB,EACrBG,WAAY,GACZ+zN,kBAAmB,OACnBC,0BAA2B,IAC3BC,qBAAsB,GACtBliO,MAAO,CAAC,EACR/5G,QAAS,CAAC,EACVhC,gBAAiB,GACjBk+U,WAAY,KACZC,wBAAyB,KACzBp8U,OAAQ,YACRq8U,WAAY,MACZC,aAAc,OACdC,4BAA6B,GAC7BC,sBAAuB,GACvBpvV,OAAQ,IACRy6H,WAAY,GACZ40N,yBAA0B,KAC1BC,gBAAiB,EACjBC,mBAAoB,KACpBC,gBAAiB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAI,CAC1CC,gBAAiB,CAAC,IAAK,IAAK,IAAI,CAChCC,sBAAuB,GACvBC,WAAY,KACZC,WAAYC,CACd,EAMA,IAAI,CAACn0R,IAAI,CAAG,CAAC,EAQb,IAAI,CAACkrD,MAAM,CAAG,CAAC,EAEf,IAAIkpO,EAAI,IAAI,CAOZ,IAAI,CAACC,MAAM,CAAG,SAAUrwV,CAAK,EACvBowV,EAAEp0R,IAAI,CAACg0R,qBAAqB,EAC9BhwV,EAAMU,eAAe,GAEvBV,EAAMwB,cAAc,GACpB,IAAI2sU,EAAenuU,EAAMmuU,YAAY,CACjCA,EAAapxS,KAAK,EAAIoxS,EAAapxS,KAAK,CAAC,EAAE,EAC7CoxS,EAAapxS,KAAK,CAAC,EAAE,CAACuzT,gBAAgB,CACtCF,EAAEG,sBAAsB,CAACvwV,GAEzBowV,EAAEI,QAAQ,CAACriB,EAAanwM,KAAK,CAAEh+H,EAEnC,EAOA,IAAI,CAACywV,YAAY,CAAG,SAAUzwV,CAAK,EACjCA,EAAMwB,cAAc,EACtB,EAOA,IAAI,CAACw6D,IAAI,CAAG4yR,EAAKhsQ,MAAM,CAAC,CAAC,EAAG,IAAI,CAAC1xE,QAAQ,CAAE8qD,GAAQ,CAAC,GAEtD,CAsiBA,SAAS00R,EAASC,CAAO,CAAE/yN,CAAI,CAAEM,CAAgB,EAM/C,IAAI,CAACyyN,OAAO,CAAGA,EAMf,IAAI,CAACvhF,KAAK,CAAG,KAMb,IAAI,CAACxxI,IAAI,CAAGA,EAMZ,IAAI,CAAC5yG,IAAI,CAAG4yG,EAAKkwI,QAAQ,EAAIlwI,EAAK5yG,IAAI,CAMtC,IAAI,CAAC/gB,IAAI,CAAG2zH,EAAK3zH,IAAI,CAMrB,IAAI,CAAC2lM,YAAY,CAAGhyE,EAAKgyE,YAAY,EAAIhyE,EAAKgzN,kBAAkB,EAAI,IAAI,CAAC5lU,IAAI,CAM7E,IAAI,CAACkzG,gBAAgB,CAAIA,IAAAA,EAAiCyyN,EAAQhB,wBAAwB,CAAC/xN,GAAQM,EAMnG,IAAI,CAACjD,SAAS,CAAG,EAMjB,IAAI,CAAC41N,MAAM,CAAG,EAAE,CAMhB,IAAI,CAAClxN,MAAM,CAAG,GAMd,IAAI,CAACxhG,KAAK,CAAG,GAMb,IAAI,CAAC2yT,YAAY,CAAG,EAMpB,IAAI,CAACC,YAAY,CAAG,EAOpB,IAAI,CAACC,qBAAqB,CAAGl6U,KAAKq4C,GAAG,GAOrC,IAAI,CAAC8hS,iBAAiB,CAAG,EAOzB,IAAI,CAACC,aAAa,CAAG,EAErB,IAAI,CAAC5vN,SAAS,EAChB,CAsQA,SAAS6uN,EAAegB,CAAO,CAAEC,CAAS,CAAEC,CAAO,CAAEC,CAAQ,CAAEC,CAAK,EAClE,IAAIC,EAAgB,OAEhBL,CAAAA,EAAQvzN,IAAI,CAAC96H,KAAK,CACpB0uV,EAAiB,QACVL,EAAQvzN,IAAI,CAACoxN,QAAQ,CAC5BwC,EAAgB,WACTL,EAAQvzN,IAAI,CAACmxN,WAAW,EAC/ByC,CAAAA,EAAgB,eAElBD,EAAME,YAAY,CAACN,EAAQvzN,IAAI,CAAC4zN,EAAc,CAACJ,EAAWC,EAASC,GACrE,CAWA,SAASI,EAAUf,CAAO,CAAEQ,CAAO,CAAEjsN,CAAM,EAMzC,IAAI,CAACyrN,OAAO,CAAGA,EAMf,IAAI,CAACQ,OAAO,CAAGA,EAMf,IAAI,CAACjsN,MAAM,CAAGA,EAMd,IAAI,CAACysN,MAAM,CAAG,GAMd,IAAI,CAACv6N,OAAO,CAAG,EAMf,IAAI,CAACw6N,YAAY,CAAG,GAMpB,IAAI,CAACC,eAAe,CAAG,EAMvB,IAAI,CAACC,SAAS,CAAG,EAOjB,IAAI,CAAChnK,MAAM,CAAG,EAMd,IAAI,CAACnE,KAAK,CAAG,EAMb,IAAI,CAAC1rD,SAAS,CAAG,IAAI,CAACk2N,OAAO,CAACl2N,SAAS,CAMvC,IAAI,CAACm2N,SAAS,CAAG,IAAI,CAAClsN,MAAM,CAAG,IAAI,CAACjK,SAAS,CAM7C,IAAI,CAAC82N,QAAQ,CAAG,KAMhB,IAAI,CAACC,cAAc,CAAG,WACpB,IAAIX,EAAUtwS,KAAKqoC,GAAG,CAAC,IAAI,CAAC+nQ,OAAO,CAAClnV,IAAI,CAAE,CAAC,IAAI,CAACi7H,MAAM,CAAG,GAAK,IAAI,CAACjK,SAAS,EAM5E,OALI,IAAI,CAACk2N,OAAO,CAAClnV,IAAI,CAAGonV,EAAU,IAAI,CAACp2N,SAAS,EAAI,CAAC,IAAI,CAAC01N,OAAO,CAAC30R,IAAI,CAACk/D,cAAc,EAGnFm2N,CAAAA,EAAU,IAAI,CAACF,OAAO,CAAClnV,IAAI,EAEtBonV,CACT,EAMA,IAAI,CAACA,OAAO,CAAG,IAAI,CAACW,cAAc,GAMlC,IAAI,CAACC,GAAG,CAAG,KAEX,IAAI7B,EAAI,IAAI,CAOZ,IAAI,CAACpwV,KAAK,CAAG,SAAUA,CAAK,CAAE+G,CAAI,EAChCA,EAAOlE,MAAMlD,SAAS,CAACmD,KAAK,CAAC9E,IAAI,CAACo/D,WAClCr2D,EAAK42D,OAAO,CAACyyR,GACbA,EAAEe,OAAO,CAACe,UAAU,CAAC/0R,KAAK,CAACizR,EAAEe,OAAO,CAAEpqV,EACxC,EAKA,IAAI,CAACorV,eAAe,CAAG,SAASnyV,CAAK,EAC/BA,EAAMoyV,gBAAgB,GACxBhC,EAAEtlK,MAAM,CAAG9qL,EAAM8qL,MAAM,CACvBslK,EAAEzpK,KAAK,CAAG3mL,EAAM2mL,KAAK,EAEvBypK,EAAEpwV,KAAK,CAAC,WAAYA,EACtB,EAMA,IAAI,CAACqyV,WAAW,CAAG,SAASryV,CAAK,EAC/B,IAAIw5B,EAAS42T,EAAE52T,MAAM,CAAC,GAClBA,CAAW,UAAXA,GACF42T,EAAEpwV,KAAK,CAACw5B,EAAQ42T,EAAE98S,OAAO,IACzB88S,EAAEO,OAAO,CAAC2B,eAAe,IAChB94T,YAAAA,GACT42T,EAAEuB,MAAM,CAAG,GACXvB,EAAEpwV,KAAK,CAACw5B,EAAQ42T,EAAE98S,OAAO,IACzB88S,EAAEO,OAAO,CAAC2B,eAAe,IACflC,EAAEe,OAAO,CAACxxN,MAAM,GAG1BywN,EAAEuB,MAAM,CAAG,GACXvB,EAAE/zT,IAAI,GAEV,EAMA,IAAI,CAACk2T,WAAW,CAAG,SAASvyV,CAAK,EAC/B,IAAIw5B,EAAS42T,EAAE52T,MAAM,GACrB,GAAIA,YAAAA,GAAwBA,UAAAA,EAC1B,OAAO,IAAI,CAAC30B,IAAI,CAChBurV,EAAEpwV,KAAK,CAACw5B,EAAQ42T,EAAE98S,OAAO,IACzB88S,EAAEO,OAAO,CAAC2B,eAAe,QACpB,GAAI,CAAClC,EAAEe,OAAO,CAACxxN,MAAM,CAAE,CAC5BywN,EAAEpwV,KAAK,CAAC,QAASowV,EAAE98S,OAAO,IAC1B88S,EAAEwB,YAAY,CAAG,GACjBxB,EAAElrV,KAAK,GACPkrV,EAAEh5N,OAAO,GACT,IAAIo7N,EAAgBpC,EAAEO,OAAO,CAAC30R,IAAI,CAAC6zR,kBAAkB,QACjD2C,EACF7uT,WAAW,WACTysT,EAAE/zT,IAAI,EACR,EAAGm2T,GAEHpC,EAAE/zT,IAAI,EAEV,CACF,CACF,CA0RA,SAASo2T,EAAS5tV,CAAI,CAAEkC,CAAI,EAM1B,MALoB,YAAhB,OAAOlC,IAETkC,EAAOlE,MAAMlD,SAAS,CAACmD,KAAK,CAAC9E,IAAI,CAACo/D,WAClCv4D,EAAOA,EAAKs4D,KAAK,CAAC,KAAMp2D,EAAKjE,KAAK,CAAC,KAE9B+B,CACT,CAQA,SAAS2rS,EAAMj2E,CAAE,CAAEjkD,CAAO,EACxB3yI,WAAW42L,EAAGp8N,IAAI,CAACm4K,GAAU,EAC/B,CAUA,SAAS1zF,EAAO8vQ,CAAG,CAAEzmK,CAAG,EAQtB,OAPA0mK,EAAKv1R,UAAW,SAAS9e,CAAG,EACtBA,IAAQo0S,GACVC,EAAKr0S,EAAK,SAASp+C,CAAK,CAAEU,CAAG,EAC3B8xV,CAAG,CAAC9xV,EAAI,CAAGV,CACb,EAEJ,GACOwyV,CACT,CAUA,SAASC,EAAKr0S,CAAG,CAAEn5C,CAAQ,CAAEmxK,CAAO,MAI9B11K,EAHJ,GAAK09C,GAML,GAAI,KAAuB,IAAhBA,EAAIt9C,MAAM,CACnB,KAAKJ,EAAM,EAAGA,EAAM09C,EAAIt9C,MAAM,CAAEJ,IAC9B,GAAIuE,CAA0C,IAA1CA,EAASnH,IAAI,CAACs4K,EAASh4H,CAAG,CAAC19C,EAAI,CAAEA,GACnC,MAEJ,MAEA,IAAKA,KAAO09C,EACV,GAAIA,EAAIvvB,cAAc,CAACnuB,IAAQuE,CAA0C,IAA1CA,EAASnH,IAAI,CAACs4K,EAASh4H,CAAG,CAAC19C,EAAI,CAAEA,GAC9D,OAIR,CAn7CAguV,EAAKjvV,SAAS,CAAG,CAUfw8B,GAAI,SAAUn8B,CAAK,CAAEmF,CAAQ,EAC3BnF,EAAQA,EAAMwX,WAAW,GACpB,IAAI,CAAC0vG,MAAM,CAACn4F,cAAc,CAAC/uB,IAC9B,KAAI,CAACknH,MAAM,CAAClnH,EAAM,CAAG,EAAE,EAEzB,IAAI,CAACknH,MAAM,CAAClnH,EAAM,CAACyF,IAAI,CAACN,EAC1B,EAQAwnC,IAAK,SAAU3sC,CAAK,CAAEu6N,CAAE,MA40CLlhK,EACfh2D,CA50CErD,CAAU2D,IAAV3D,GACFA,EAAQA,EAAMwX,WAAW,GACrB+iN,IAAAA,EACE,IAAI,CAACrzG,MAAM,CAACn4F,cAAc,CAAC/uB,IA00CjCqD,CADAA,EAAQg2D,CADOA,EAv0CC,IAAI,CAAC6tD,MAAM,CAAClnH,EAAM,EAw0CpByD,OAAO,CAx0Ce82N,IAy0C5B,IACVlhK,EAAM3zD,MAAM,CAACrC,EAAO,GAv0ChB,OAAO,IAAI,CAAC6jH,MAAM,CAAClnH,EAAM,EAG3B,IAAI,CAACknH,MAAM,CAAG,CAAC,CAEnB,EAUA2iN,KAAM,SAAU7pU,CAAK,CAAE+G,CAAI,EAEzBA,EAAOlE,MAAMlD,SAAS,CAACmD,KAAK,CAAC9E,IAAI,CAACo/D,WAClCp9D,EAAQA,EAAMwX,WAAW,GACzB,IAAIhW,EAAiB,GAUrB,OATI,IAAI,CAAC0lH,MAAM,CAACn4F,cAAc,CAAC/uB,IAC7B2yV,EAAK,IAAI,CAACzrO,MAAM,CAAClnH,EAAM,CAAE,SAAUmF,CAAQ,EACzC3D,EAAiB2D,CAAwC,IAAxCA,EAASg4D,KAAK,CAAC,IAAI,CAAEp2D,EAAKjE,KAAK,CAAC,KAAiBtB,CACpE,EAAG,IAAI,EAEI,YAATxB,IACF+G,EAAK42D,OAAO,CAAC,YACbn8D,EAAiB,CAAgC,IAAhC,IAAI,CAACqoU,IAAI,CAAC1sQ,KAAK,CAAC,IAAI,CAAEp2D,IAAmBvF,GAErD,CAACA,CACV,EAMA+uV,uBAAwB,SAAUvwV,CAAK,EACrC,IAAIowV,EAAI,IAAI,CACRwC,EAAQ5yV,EAAMmuU,YAAY,CAACpxS,KAAK,CAAC/7B,MAAM,CACvCg9H,EAAQ,EAAE,CAkCd,SAAS60N,EAAgBj1N,CAAI,CAAEk1N,CAAQ,EAErCl1N,EAAKgyE,YAAY,CAAGkjJ,EAASp0T,SAAS,CAAC,GACvCs/F,EAAMv4H,IAAI,CAACm4H,GACXm1N,GACF,CACA,SAASC,EAAUzyN,CAAS,EAE1B,MADAwyN,IACMxyN,CACR,CACA,SAASwyN,IACQ,GAAX,EAAEH,GACJxC,EAAEI,QAAQ,CAACxyN,EAAOh+H,EAEtB,CA/CA2yV,EAAK3yV,EAAMmuU,YAAY,CAACpxS,KAAK,CAAE,SAAUvC,CAAI,EAC3C,IAAIk+N,EAAQl+N,EAAK81T,gBAAgB,GACjC,GAAI,CAAC53F,EAAO,CACVq6F,IACA,MACF,CACIr6F,EAAMu6F,MAAM,CAEdJ,EAAgBr4T,EAAK04T,SAAS,GAAIx6F,EAAMo6F,QAAQ,EAEhDK,SAGKA,EAAcC,CAAM,EAC3BA,EAAOC,WAAW,CAAC,SAAUvjO,CAAO,EAC9BA,EAAQ9uH,MAAM,EAChB4xV,GAAS9iO,EAAQ9uH,MAAM,CACvB2xV,EAAK7iO,EAAS,SAAS4oI,CAAK,EAC1B,GAAIA,EAAMu6F,MAAM,CAAE,CAChB,IAAIH,EAAWp6F,EAAMo6F,QAAQ,CAC7Bp6F,EAAM96H,IAAI,CAAC,SAAUA,CAAI,EACvBi1N,EAAgBj1N,EAAMk1N,EACxB,EAAGE,EACL,MAAWt6F,EAAM46F,WAAW,EAC1BH,EAAcz6F,EAAM66F,YAAY,GAEpC,GACAJ,EAAcC,IAEdL,GAEJ,EAAGC,EACL,EAtBkBt6F,EAAM66F,YAAY,GAEpC,EAoCF,EAQA5D,yBAA0B,SAAU/xN,CAAI,EACtC,IAAIt5F,EAAS,IAAI,CAAC03B,IAAI,CAAC2zR,wBAAwB,CAC/C,GAAI,mBAAOrrT,EACT,OAAOA,EAAOs5F,GAGhB,IAAIgyE,EAAehyE,EAAKgyE,YAAY,EAAIhyE,EAAKgzN,kBAAkB,EAAIhzN,EAAKkwI,QAAQ,EAAIlwI,EAAK5yG,IAAI,CAC7F,OAAO4yG,EAAK3zH,IAAI,CAAG,IAAM2lM,EAAaz6L,OAAO,CAAC,oBAAqB,GACrE,EAQAm9U,gBAAiB,SAAUkB,CAAa,EAItC,IAAI/+S,EAAQ,GACZ,GAAI,IAAI,CAACunB,IAAI,CAACyzR,2BAA2B,GACvCkD,EAAK,IAAI,CAAC30N,KAAK,CAAE,SAAUJ,CAAI,QAC7B,CAAKA,EAAK+B,MAAM,EAAI/B,EAAKizN,MAAM,CAAC7vV,MAAM,EACpC48H,YAAAA,EAAKizN,MAAM,CAAC,EAAE,CAACr3T,MAAM,IACrBokG,EAAKizN,MAAM,CAAC,EAAE,CAACx0T,IAAI,GACnBoY,EAAQ,GACD,IAEL,CAACmpF,EAAK+B,MAAM,EAAI/B,EAAKizN,MAAM,CAAC7vV,MAAM,CAAG,GACvC48H,YAAAA,EAAKizN,MAAM,CAACjzN,EAAKizN,MAAM,CAAC7vV,MAAM,CAAG,EAAE,CAACw4B,MAAM,IAC1CokG,EAAKizN,MAAM,CAACjzN,EAAKizN,MAAM,CAAC7vV,MAAM,CAAG,EAAE,CAACq7B,IAAI,GACxCoY,EAAQ,GACD,UAEX,GACIA,GACF,OAAOA,EAmBX,GAdAk+S,EAAK,IAAI,CAAC30N,KAAK,CAAE,SAAUJ,CAAI,EAU7B,GATKA,EAAK+B,MAAM,EACdgzN,EAAK/0N,EAAKizN,MAAM,CAAE,SAAUU,CAAK,EAC/B,GAAIA,YAAAA,EAAM/3T,MAAM,GAGd,OAFA+3T,EAAMl1T,IAAI,GACVoY,EAAQ,GACD,EAEX,GAEEA,EACF,MAAO,EAEX,GACIA,EACF,MAAO,GAIT,IAAIg/S,EAAc,GAalB,OAZAd,EAAK,IAAI,CAAC30N,KAAK,CAAE,SAAUJ,CAAI,EAC7B,GAAI,CAACA,EAAK69B,UAAU,GAElB,OADAg4L,EAAc,GACP,EAEX,GACKA,GAAgBD,GAEnBhjD,EAAM,WACJ,IAAI,CAACq5B,IAAI,CAAC,WACZ,EAAG,IAAI,EAEF,EACT,EAcA6pB,aAAc,SAAUC,CAAQ,CAAEL,CAAW,CAAEn4N,CAAU,CAAE1Z,CAAU,EAC/DkyO,aAAoBvwI,SACtBuwI,CAAAA,EAAW,CAACA,EAAS,EAGvBhB,EAAKgB,EAAU,SAAUC,CAAO,EAE1BA,UAAAA,EAAQ1oO,OAAO,EAAgB0oO,SAAAA,EAAQ9yU,IAAI,CAC7C4pC,EAAQkpS,GAGRlpS,CADAA,EAAQvpD,EAAS80G,aAAa,CAAC,UACzBl0G,YAAY,CAAC,OAAQ,QAE3B6gF,EAAOl4B,EAAMa,KAAK,CAAE,CAClB6sN,WAAY,SACZ/lP,SAAU,WACV+yD,MAAO,MACPj6B,OAAQ,KACV,GAEAyoS,EAAQx9O,WAAW,CAAC1rD,GAKpBkpS,EAAQxyV,gBAAgB,CAAC,QAAS,WAChCspD,EAAMy3E,KAAK,EACb,EAAG,KAEA,IAAI,CAACnmE,IAAI,CAACm/D,UAAU,EAAKA,GAC5BzwE,EAAM3oD,YAAY,CAAC,WAAY,YAE7BuxV,GACF5oS,EAAM3oD,YAAY,CAAC,kBAAmB,mBAExC4wV,EAAKlxO,EAAY,SAAUvhH,CAAK,CAAEU,CAAG,EACnC8pD,EAAM3oD,YAAY,CAACnB,EAAKV,EAC1B,GAEA,IAjCIwqD,EAiCA0lS,EAAI,IAAI,CACZ1lS,EAAMtpD,gBAAgB,CAAC,SAAU,SAAU2nC,CAAC,EACtCA,EAAEzoC,MAAM,CAACJ,KAAK,GAChBkwV,EAAEI,QAAQ,CAACznT,EAAEzoC,MAAM,CAAC09H,KAAK,CAAEj1F,GAC3BA,EAAEzoC,MAAM,CAACJ,KAAK,CAAG,GAErB,EAAG,GACL,EAAG,IAAI,CACT,EAOA2zV,WAAY,SAAUF,CAAQ,EACG,SAApBA,EAAS3yV,MAAM,EACxB2yV,CAAAA,EAAW,CAACA,EAAS,EAEvBhB,EAAKgB,EAAU,SAAUC,CAAO,EAC9BA,EAAQxyV,gBAAgB,CAAC,WAAY,IAAI,CAACqvV,YAAY,CAAE,IACxDmD,EAAQxyV,gBAAgB,CAAC,YAAa,IAAI,CAACqvV,YAAY,CAAE,IACzDmD,EAAQxyV,gBAAgB,CAAC,OAAQ,IAAI,CAACivV,MAAM,CAAE,GAChD,EAAG,IAAI,CACT,EAOAyD,aAAc,SAAUH,CAAQ,EACC,SAApBA,EAAS3yV,MAAM,EACxB2yV,CAAAA,EAAW,CAACA,EAAS,EAEvBhB,EAAKgB,EAAU,SAAUC,CAAO,EAC9BA,EAAQryV,mBAAmB,CAAC,WAAY,IAAI,CAACkvV,YAAY,EACzDmD,EAAQryV,mBAAmB,CAAC,YAAa,IAAI,CAACkvV,YAAY,EAC1DmD,EAAQryV,mBAAmB,CAAC,OAAQ,IAAI,CAAC8uV,MAAM,CACjD,EAAG,IAAI,CACT,EAQAlvN,YAAa,WACX,IAAI4yN,EAAY,GAOhB,OANApB,EAAK,IAAI,CAAC30N,KAAK,CAAE,SAAUJ,CAAI,EAC7B,GAAIA,EAAKuD,WAAW,GAElB,OADA4yN,EAAY,GACL,EAEX,GACOA,CACT,EAOAC,kBAAmB,WACjB,IAAI33E,EAAM,EACN43E,EAAS,GACTj5N,EAAsB,IAAI,CAACh/D,IAAI,CAACg/D,mBAAmB,CAavD,OAZA23N,EAAK,IAAI,CAAC30N,KAAK,CAAE,SAAUJ,CAAI,EAC7B+0N,EAAK/0N,EAAKizN,MAAM,CAAE,SAASU,CAAK,EAC9B,GAAIA,cAAAA,EAAM/3T,MAAM,IAEV6iP,EAAAA,GAAOrhJ,EAET,OADAi5N,EAAS,GACF,EAGb,EACF,GAEOA,GAAU53E,CACnB,EAMAjqQ,OAAQ,WAEN,IAAI0lG,EAAM,IAAI,CAACk8O,iBAAiB,GAChC,GAAIl8O,CAAQ,IAARA,GAIJ,IAAI,CAAC+xN,IAAI,CAAC,eAEV,IAAK,IADDqqB,EAAU,GACL73E,EAAM,EAAGA,GAAO,IAAI,CAACrgN,IAAI,CAACg/D,mBAAmB,CAAGljB,EAAKukK,IAC5D63E,EAAU,IAAI,CAAC5B,eAAe,CAAC,KAAS4B,EAErCA,GACH1jD,EAAM,WACJ,IAAI,CAACq5B,IAAI,CAAC,WACZ,EAAG,IAAI,EAEX,EAMAzoM,OAAQ,WACNuxN,EAAK,IAAI,CAAC30N,KAAK,CAAE,SAAUJ,CAAI,EACxBA,EAAK69B,UAAU,IAClB79B,EAAKwD,MAAM,EAEf,EACF,EAMA7B,MAAO,WACLozN,EAAK,IAAI,CAAC30N,KAAK,CAAE,SAAUJ,CAAI,EAC7BA,EAAK2B,KAAK,EACZ,EACF,EAMAtkH,OAAQ,WACN,IAAK,IAAIpX,EAAI,IAAI,CAACm6H,KAAK,CAACh9H,MAAM,CAAG,EAAG6C,GAAK,EAAGA,IAC1C,IAAI,CAACm6H,KAAK,CAACn6H,EAAE,CAACoX,MAAM,EAExB,EAQAkpH,SAAU,WACR,IAAIgwN,EAAY,EACZC,EAAY,EAMhB,OAJAzB,EAAK,IAAI,CAAC30N,KAAK,CAAE,SAAUJ,CAAI,EAC7Bu2N,GAAav2N,EAAKuG,QAAQ,GAAKvG,EAAK3zH,IAAI,CACxCmqV,GAAax2N,EAAK3zH,IAAI,GAEjBmqV,EAAY,EAAID,EAAYC,EAAY,CACjD,EAQAC,QAAS,SAAUz2N,CAAI,CAAE59H,CAAK,EAC5B,IAAI,CAACwwV,QAAQ,CAAC,CAAC5yN,EAAK,CAAE59H,EACxB,EAQAwwV,SAAU,SAAU8D,CAAQ,CAAEt0V,CAAK,EACjC,IAAIg+H,EAAQ,EAAE,CACd20N,EAAK2B,EAAU,SAAU12N,CAAI,EAE3B,GAAI,CAAC,CAAC8wN,GAAYA,GAAY9wN,EAAK3zH,IAAI,CAAG,IAAM,CAAE2zH,CAAAA,EAAK3zH,IAAI,CAAG,MAAS,GAAM2zH,CAAAA,MAAAA,EAAK5yG,IAAI,EAAY4yG,MAAAA,EAAKkwI,QAAQ,CAAO,EAAK,CACzH,IAAI5vI,EAAmB,IAAI,CAACyxN,wBAAwB,CAAC/xN,GACrD,GAAI,IAAI,CAAC5hE,IAAI,CAAC0zR,qBAAqB,EAAI,CAAC,IAAI,CAAC6E,uBAAuB,CAACr2N,GAAmB,CACtF,IAAIgE,EAAI,IAAIwuN,EAAS,IAAI,CAAE9yN,EAAMM,GAC7B,IAAI,CAAC2rM,IAAI,CAAC,YAAa3nM,EAAGliI,IAC5Bg+H,EAAMv4H,IAAI,CAACy8H,EAEf,CACF,CACF,EAAG,IAAI,EACH,IAAI,CAAC2nM,IAAI,CAAC,aAAc7rM,EAAOh+H,KACjC2yV,EAAK30N,EAAO,SAAUJ,CAAI,EACpB,IAAI,CAAC5hE,IAAI,CAACm/D,UAAU,EAAI,IAAI,CAAC6C,KAAK,CAACh9H,MAAM,CAAG,GAC9C,IAAI,CAACwzV,UAAU,CAAC,IAAI,CAACx2N,KAAK,CAAC,EAAE,EAE/B,IAAI,CAACA,KAAK,CAACv4H,IAAI,CAACm4H,EAClB,EAAG,IAAI,EACP,IAAI,CAACisM,IAAI,CAAC,iBAAkB7rM,EAAOh+H,GAEvC,EAQAw0V,WAAY,SAAU52N,CAAI,EACxB,IAAK,IAAI/5H,EAAI,IAAI,CAACm6H,KAAK,CAACh9H,MAAM,CAAG,EAAG6C,GAAK,EAAGA,IACtC,IAAI,CAACm6H,KAAK,CAACn6H,EAAE,GAAK+5H,IACpB,IAAI,CAACI,KAAK,CAACt4H,MAAM,CAAC7B,EAAG,GACrB+5H,EAAK14H,KAAK,GACV,IAAI,CAAC2kU,IAAI,CAAC,cAAejsM,GAG/B,EAQA22N,wBAAyB,SAAUr2N,CAAgB,EACjD,IAAIpmB,EAAM,GAMV,OALA66O,EAAK,IAAI,CAAC30N,KAAK,CAAE,SAAUJ,CAAI,EACzBA,EAAKM,gBAAgB,GAAKA,GAC5BpmB,CAAAA,EAAM8lB,CAAG,CAEb,GACO9lB,CACT,EAOA28O,QAAS,WACP,IAAIL,EAAY,EAIhB,OAHAzB,EAAK,IAAI,CAAC30N,KAAK,CAAE,SAAUJ,CAAI,EAC7Bw2N,GAAax2N,EAAK3zH,IAAI,GAEjBmqV,CACT,EAOAM,aAAc,WACZ,IAAIzqV,EAAO,EAIX,OAHA0oV,EAAK,IAAI,CAAC30N,KAAK,CAAE,SAAUJ,CAAI,EAC7B3zH,GAAQ2zH,EAAK82N,YAAY,EAC3B,GACOzqV,CACT,EAQA0qV,cAAe,WACb,IAAIC,EAAY,EACZ9D,EAAe,QAOnB,CANA6B,EAAK,IAAI,CAAC30N,KAAK,CAAE,SAAUJ,CAAI,EACxBA,EAAK+B,MAAM,EAAK/B,EAAKz/F,KAAK,GAC7By2T,GAAah3N,EAAK3zH,IAAI,CAAG2zH,EAAK82N,YAAY,GAC1C5D,GAAgBlzN,EAAKkzN,YAAY,CAErC,GACI8D,GAAa,CAAC9D,GACT3oS,OAAO0sS,iBAAiB,CAE7B,GAAe/D,EAGZ/vS,KAAKC,KAAK,CAAC4zS,EAAY9D,GAFrB,CAGX,CACF,EAuHAJ,EAAS/wV,SAAS,CAAG,CAMnBm1V,aAAc,WACZ,IAAIC,EAAWj+U,KAAKq4C,GAAG,GAAK,IAAI,CAAC6hS,qBAAqB,CACtD,GAAK+D,GAGL,IAAIC,EAAkB,IAAI,CAACrE,OAAO,CAAC30R,IAAI,CAACozR,oBAAoB,CACxD6F,EAAW,IAAI,CAACP,YAAY,EAEhC,KAAI,CAAC3D,YAAY,CAAGhwS,KAAKsoC,GAAG,CAAC,CAAC4rQ,EAAW,IAAI,CAAChE,iBAAiB,EAAI8D,EAAW,IAAM,GACpF,IAAI,CAACjE,YAAY,CAAGkE,EAAkB,IAAI,CAACjE,YAAY,CAAG,CAAC,EAAIiE,CAAc,EAAK,IAAI,CAAClE,YAAY,CACnG,IAAI,CAACG,iBAAiB,CAAGgE,EAC3B,EAUA/C,WAAY,SAAUX,CAAK,CAAEvxV,CAAK,CAAEszC,CAAO,EACzC,OAAQtzC,GACN,IAAK,WACH,GAAI8W,KAAKq4C,GAAG,GAAK,IAAI,CAAC6hS,qBAAqB,CACzC,IAAI,CAACL,OAAO,CAAC30R,IAAI,CAACmzR,yBAAyB,CAC3C,MAEF,IAAI,CAAC2F,YAAY,GACjB,IAAI,CAACnE,OAAO,CAAC9mB,IAAI,CAAC,eAAgB,IAAI,CAAE0nB,GACxC,IAAI,CAACZ,OAAO,CAAC9mB,IAAI,CAAC,YAClB,IAAI,CAACmnB,qBAAqB,CAAGl6U,KAAKq4C,GAAG,GACrC,KACF,KAAK,QACH,IAAI,CAAChxB,KAAK,CAAG,GACb,IAAI,CAACj5B,KAAK,CAAC,IACX,IAAI,CAACyrV,OAAO,CAAC9mB,IAAI,CAAC,YAAa,IAAI,CAAEv2R,EAASi+S,GAC9C,IAAI,CAACZ,OAAO,CAAC9mB,IAAI,CAAC,QAASv2R,EAAS,IAAI,CAAEi+S,GAC1C,KACF,KAAK,UACH,GAAI,IAAI,CAACpzT,KAAK,CACZ,OAEF,IAAI,CAAC22T,YAAY,GACjB,IAAI,CAACnE,OAAO,CAAC9mB,IAAI,CAAC,eAAgB,IAAI,CAAE0nB,GACxC,IAAI,CAACZ,OAAO,CAAC9mB,IAAI,CAAC,YAClB,IAAI,CAACmnB,qBAAqB,CAAGl6U,KAAKq4C,GAAG,GACjC,IAAI,CAACssG,UAAU,KACjB,IAAI,CAACs1L,YAAY,CAAG,EACpB,IAAI,CAACD,YAAY,CAAG,EACpB,IAAI,CAACH,OAAO,CAAC9mB,IAAI,CAAC,cAAe,IAAI,CAAEv2R,EAASi+S,IAElD,KACF,KAAK,QACH,IAAI,CAACZ,OAAO,CAAC9mB,IAAI,CAAC,YAAa,IAAI,CAAE0nB,EAEzC,CACF,EAMAhyN,MAAO,WACL,IAAI,CAACI,MAAM,CAAG,GACd,IAAI,CAACz6H,KAAK,EACZ,EAMAk8H,OAAQ,WACN,IAAI,CAACzB,MAAM,CAAG,GACd,IAAI,CAACgxN,OAAO,CAACv+U,MAAM,EACrB,EAMAlN,MAAO,SAAUiyD,CAAK,EACpB,IAAI,CAAC45R,YAAY,CAAG,EACpB,IAAI,CAACD,YAAY,CAAG,EACpB,IAAID,EAAS,IAAI,CAACA,MAAM,CACpB15R,GACF,KAAI,CAAC05R,MAAM,CAAG,EAAE,EAElB8B,EAAK9B,EAAQ,SAAU7tQ,CAAC,EACH,cAAfA,EAAExpD,MAAM,KACVwpD,EAAE99E,KAAK,GACP,IAAI,CAACyrV,OAAO,CAAC2B,eAAe,GAEhC,EAAG,IAAI,CACT,EAMAr3U,OAAQ,WACN,IAAI,CAAC01U,OAAO,CAAC6D,UAAU,CAAC,IAAI,CAC9B,EAMAvzN,MAAO,WACL,IAAI,CAACK,SAAS,GACd,IAAI,CAACqvN,OAAO,CAACv+U,MAAM,EACrB,EAMAkvH,UAAW,WACmC,YAAxC,OAAO,IAAI,CAACqvN,OAAO,CAAC30R,IAAI,CAACi0R,UAAU,EACrC,IAAI,CAACU,OAAO,CAAC30R,IAAI,CAACi0R,UAAU,CAAC,IAAI,EAGnC,IAAI,CAAC/qV,KAAK,CAAC,IACX,IAAI,CAACi5B,KAAK,CAAG,GAEb,IAAI,CAAC+yT,aAAa,CAAG,EACrB,IAAIt0O,EAAQ,IAAI,CAAC+zO,OAAO,CAAC30R,IAAI,CAACk/D,cAAc,CAAGn6E,KAAKiyD,IAAI,CAAGjyD,KAAKC,KAAK,CACrE,IAAI,CAACi6E,SAAS,CAAGw3N,EAAS,IAAI,CAAC9B,OAAO,CAAC30R,IAAI,CAACi/D,SAAS,CAAE,IAAI,EAI3D,IAAK,IAHD41N,EAAS9vS,KAAKsoC,GAAG,CACnBuzB,EAAM,IAAI,CAAC3yG,IAAI,CAAG,IAAI,CAACgxH,SAAS,EAAG,GAE5BiK,EAAS,EAAGA,EAAS2rN,EAAQ3rN,IACpC,IAAI,CAAC2rN,MAAM,CAACprV,IAAI,CACd,IAAIisV,EAAU,IAAI,CAACf,OAAO,CAAE,IAAI,CAAEzrN,GAGxC,EAOAf,SAAU,WACR,GAAI,IAAI,CAAChmG,KAAK,CACZ,OAAO,EAET,GAAI,QAAI,CAAC0yT,MAAM,CAAC7vV,MAAM,CAEpB,OADA,IAAI,CAACkwV,aAAa,CAAGnwS,KAAKsoC,GAAG,CAAC,IAAI,CAAC6nQ,aAAa,CAAE,IAAI,CAACL,MAAM,CAAC,EAAE,CAAC1sN,QAAQ,IAClE,IAAI,CAAC+sN,aAAa,CAG3B,IAAIgE,EAAc,EAClBvC,EAAK,IAAI,CAAC9B,MAAM,CAAE,SAAU7tQ,CAAC,EAE3BkyQ,GAAelyQ,EAAEmhD,QAAQ,GAAMnhD,CAAAA,EAAEquQ,OAAO,CAAGruQ,EAAEouQ,SAAS,CACxD,GACA,IAAI+D,EAAUD,EAAc,IAAI,CAACjrV,IAAI,CAGrC,OADA,IAAI,CAACinV,aAAa,CAAGnwS,KAAKsoC,GAAG,CAAC,IAAI,CAAC6nQ,aAAa,CAAEiE,EAAU,MAAS,EAAIA,GAClE,IAAI,CAACjE,aAAa,EAQ3B/vN,YAAa,WACX,IAAI4yN,EAAY,GAOhB,OANApB,EAAK,IAAI,CAAC9B,MAAM,CAAE,SAAUU,CAAK,EAC/B,GAAIA,cAAAA,EAAM/3T,MAAM,GAEd,OADAu6T,EAAY,GACL,EAEX,GACOA,CACT,EAOAt4L,WAAY,WACV,IAAIg4L,EAAc,GAQlB,OAPAd,EAAK,IAAI,CAAC9B,MAAM,CAAE,SAAUU,CAAK,EAC/B,IAAI/3T,EAAS+3T,EAAM/3T,MAAM,GACzB,GAAIA,YAAAA,GAAwBA,cAAAA,GAA0BA,YAAAA,GAAwB+3T,IAAAA,EAAMM,eAAe,EAAUN,IAAAA,EAAMO,SAAS,CAE1H,OADA2B,EAAc,GACP,EAEX,GACO,CAACA,CACV,EAOAiB,aAAc,WACZ,IAAIzqV,EAAO,EAIX,OAHA0oV,EAAK,IAAI,CAAC9B,MAAM,CAAE,SAAUU,CAAK,EAC/BtnV,GAAQsnV,EAAMmD,YAAY,EAC5B,GACOzqV,CACT,EAQA0qV,cAAe,WACb,GAAI,IAAI,CAACh1N,MAAM,EAAI,IAAI,CAACxhG,KAAK,CAC3B,OAAO,EAET,IAAI2rF,EAAQ,IAAI,CAAC7/G,IAAI,CAAG,IAAI,CAACyqV,YAAY,UACzC,GAAa,CAAC,IAAI,CAAC5D,YAAY,CACtB3oS,OAAO0sS,iBAAiB,CAE7B,GAAW,IAAI,CAAC/D,YAAY,CAGzB/vS,KAAKC,KAAK,CAAC8oE,EAAQ,IAAI,CAACgnO,YAAY,EAFlC,CAGX,EAOAsE,QAAS,WACP,OAAO,IAAI,CAACx3N,IAAI,CAAC98G,IAAI,EAAI,IAAI,CAAC88G,IAAI,CAAC98G,IAAI,CAACqM,KAAK,CAAC,IAAI,CAAC,EAAE,EAQvD0wG,aAAc,WACZ,OAAO,IAAI,CAAC7yG,IAAI,CAACqnP,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAACrnP,IAAI,CAACqqU,WAAW,CAAC,OAAS,GAAK,GAAG79U,WAAW,EAC/E,CACF,EAiNAk6U,EAAU/xV,SAAS,CAAG,CAKpB21V,UAAW,WACT,MAAO,CACLC,gBAAiB,IAAI,CAACrwN,MAAM,CAAG,EAC/BswN,cAAe,IAAI,CAACv6N,SAAS,CAC7Bw6N,qBAAsB,IAAI,CAACpE,OAAO,CAAG,IAAI,CAACD,SAAS,CACnDsE,cAAe,IAAI,CAACvE,OAAO,CAAClnV,IAAI,CAChCg0H,eAAgB,IAAI,CAACkzN,OAAO,CAACjzN,gBAAgB,CAC7Cy3N,aAAc,IAAI,CAACxE,OAAO,CAACnmU,IAAI,CAC/B4qU,iBAAkB,IAAI,CAACzE,OAAO,CAACvhJ,YAAY,CAC3CimJ,gBAAiB,IAAI,CAAC1E,OAAO,CAACN,MAAM,CAAC7vV,MAAM,CAE/C,EAQA80V,UAAW,SAASx1V,CAAM,CAAEkM,CAAM,SAChC,GAAIA,EAAOxL,MAAM,CACfV,GAGCA,EAAAA,EAAOmD,OAAO,CAAC,KAChBnD,GAAU,IAEVA,GAAU,IAELA,EAASkM,EAAO67E,IAAI,CAAC,KAC9B,EAOA1nF,KAAM,WAEJ,IAAI,CAACsxV,GAAG,CAAG,IAAIl3E,eACf,IAAI,CAACk3E,GAAG,CAAC7wV,gBAAgB,CAAC,OAAQ,IAAI,CAACixV,WAAW,CAAE,IACpD,IAAI,CAACJ,GAAG,CAAC7wV,gBAAgB,CAAC,QAAS,IAAI,CAACixV,WAAW,CAAE,IACrD,IAAI9C,EAAakD,EAAS,IAAI,CAAC9B,OAAO,CAAC30R,IAAI,CAACuzR,UAAU,CAAE,IAAI,CAAC4B,OAAO,CAAE,IAAI,EACtEtsV,EAAO,IAAI,CAACkxV,iBAAiB,CAACxG,EAAY,IAC9C,IAAI,CAAC0C,GAAG,CAAC51T,IAAI,CAACx3B,EAChB,EAMAmxV,mBAAoB,WAGlB,IAAI,CAAC3E,OAAO,CAAG,IAAI,CAACW,cAAc,GAElC,IAAI,CAACH,eAAe,CAAG,EACvB,IAAI,CAACx1T,IAAI,EACX,EAMAo1T,aAAc,SAAUriF,CAAK,EAC3B,IAAI,CAAC0iF,SAAS,CAAG,EACjB,IAAI,CAAC1iF,KAAK,CAAGA,EACb,IAAI,CAAC/yO,IAAI,EACX,EAOAA,KAAM,WACJ,IAAIgzT,EAAa,IAAI,CAACsB,OAAO,CAAC30R,IAAI,CAACqzR,UAAU,CACzC5/D,EAAO,IAAI,CAACkhE,OAAO,CAAC30R,IAAI,CAACk0R,UAAU,CACvC,GAAI,mBAAOb,EACT,OAAQ,IAAI,CAACwC,eAAe,EAC1B,KAAK,EACH,IAAI,CAACA,eAAe,CAAG,EACvBxC,EAAW,IAAI,EACf,MACF,MAAK,EACH,MACJ,CAEF,OAAQ,IAAI,CAACyC,SAAS,EACpB,KAAK,EACH,IAAI,CAACA,SAAS,CAAG,EACjBriE,EAAK,IAAI,CAAC0hE,OAAO,CAAE,IAAI,CAACC,SAAS,CAAE,IAAI,CAACC,OAAO,CAAE,IAAI,CAACF,OAAO,CAACvzN,IAAI,CAAC98G,IAAI,CAAE,IAAI,EAC7E,MACF,MAAK,EACH,MACJ,CACA,GAAI,IAAI,CAAC6vU,OAAO,CAAC30R,IAAI,CAAC++D,UAAU,EAAI,CAAC,IAAI,CAAC42N,MAAM,CAAE,CAChD,IAAI,CAAChxV,IAAI,GACT,MACF,CAEA,IAAI,CAACmqL,MAAM,CAAG,EACd,IAAI,CAACnE,KAAK,CAAG,EACb,IAAI,CAACirK,YAAY,CAAG,GAGpB,IAAI,CAACK,GAAG,CAAG,IAAIl3E,eACf,IAAI,CAACk3E,GAAG,CAAC7/U,MAAM,CAAChR,gBAAgB,CAAC,WAAY,IAAI,CAAC+wV,eAAe,CAAE,IACnE,IAAI,CAACF,GAAG,CAAC7wV,gBAAgB,CAAC,OAAQ,IAAI,CAACmxV,WAAW,CAAE,IACpD,IAAI,CAACN,GAAG,CAAC7wV,gBAAgB,CAAC,QAAS,IAAI,CAACmxV,WAAW,CAAE,IAErD,IAAI/C,EAAeiD,EAAS,IAAI,CAAC9B,OAAO,CAAC30R,IAAI,CAACwzR,YAAY,CAAE,IAAI,CAAC2B,OAAO,CAAE,IAAI,EAC1EtsV,EAAO,IAAI,CAACkxV,iBAAiB,CAACvG,EAAc,GAAO,IAAI,CAACmB,OAAO,CAAC30R,IAAI,CAAC9oD,MAAM,CAAE,IAAI,CAACk8P,KAAK,EACvFkgF,EAA0B,IAAI,CAACqB,OAAO,CAAC30R,IAAI,CAACszR,uBAAuB,CAChC,YAAnC,OAAOA,GACTzqV,CAAAA,EAAOyqV,EAAwB,IAAI,CAAEzqV,EAAI,EAE3C,IAAI,CAACotV,GAAG,CAAC51T,IAAI,CAACx3B,EAChB,EAMAK,MAAO,WAEL,IAAI+sV,EAAM,IAAI,CAACA,GAAG,CAClB,IAAI,CAACA,GAAG,CAAG,KACPA,GACFA,EAAI/sV,KAAK,EAEb,EAOAs0B,OAAQ,SAAUy8T,CAAM,SACtB,IAAI,IAAI,CAACnE,SAAS,CACT,UACE,IAAI,CAACF,YAAY,EAAI,QAAI,CAACC,eAAe,CAG3C,YACG,IAAI,CAACI,GAAG,CAET,IAAI,CAACA,GAAG,CAACiE,UAAU,CAAG,EAGxB,YAEP,IAAQ,CAACvF,OAAO,CAAC30R,IAAI,CAAC+zR,eAAe,CAACtsV,OAAO,CAAC,IAAI,CAACwuV,GAAG,CAACz4T,MAAM,EAAI,GAGxD,UACE,IAAI,CAACm3T,OAAO,CAAC30R,IAAI,CAAC8zR,eAAe,CAACrsV,OAAO,CAAC,IAAI,CAACwuV,GAAG,CAACz4T,MAAM,EAAI,IACpE,CAACy8T,GAAU,IAAI,CAAC7+N,OAAO,EAAI,IAAI,CAACu5N,OAAO,CAAC30R,IAAI,CAAC4zR,eAAe,CAEvD,SAIP,IAAI,CAAC1qV,KAAK,GACH,WAlBF,SAqBX,EAOAouC,QAAS,WACP,OAAO,IAAI,CAAC2+S,GAAG,CAAG,IAAI,CAACA,GAAG,CAACkE,YAAY,CAAG,EAC5C,EAOAhyN,SAAU,WACR,GAAI,IAAI,CAACytN,YAAY,CACnB,OAAO,EAET,IAAIzzS,EAAI,IAAI,CAAC3kB,MAAM,SACnB,YAAI2kB,GAAmBA,UAAAA,EACd,EACEA,YAAAA,EACF,EAEA,IAAI,CAACwoI,KAAK,CAAG,EAAI,IAAI,CAACmE,MAAM,CAAG,IAAI,CAACnE,KAAK,CAAG,CAEvD,EAOA+tK,aAAc,WACZ,IAAIzqV,EAAO,IAAI,CAAConV,OAAO,CAAG,IAAI,CAACD,SAAS,CAKxC,MAHsB,YAAlB,IAAI,CAAC53T,MAAM,IACbvvB,CAAAA,EAAO,IAAI,CAACk6H,QAAQ,GAAKl6H,CAAG,EAEvBA,CACT,EAUA8rV,kBAAmB,SAAS7iV,CAAM,CAAE+iV,CAAM,CAAEG,CAAY,CAAEl+B,CAAI,EAE5D,IAAIhrM,EAAQulO,EAAS,IAAI,CAAC9B,OAAO,CAAC30R,IAAI,CAACkxD,KAAK,CAAE,IAAI,CAACikO,OAAO,CAAE,IAAI,CAAE8E,GAClE/oO,EAAQtqC,EAAOsqC,GAAS,CAAC,EAAG,IAAI,CAACooO,SAAS,IAE1C,IAAIh1V,EAASmyV,EAAS,IAAI,CAAC9B,OAAO,CAAC30R,IAAI,CAAC17D,MAAM,CAAE,IAAI,CAAC6wV,OAAO,CAAE,IAAI,CAAE8E,GAChEpxV,EAAO,KACX,GAAIqO,QAAAA,GAAoBkjV,UAAAA,EAA0B,CAEhD,IAAI5pV,EAAS,EAAE,CACfmmV,EAAKzlO,EAAO,SAAU/pC,CAAC,CAAEluE,CAAC,EACxBzI,EAAO/G,IAAI,CAAC,CAACgtQ,mBAAmBx9P,GAAIw9P,mBAAmBtvL,GAAG,CAACkF,IAAI,CAAC,KAClE,GACA/nF,EAAS,IAAI,CAACw1V,SAAS,CAACx1V,EAAQkM,GAChC3H,EAAOqzT,GAAQ,IACjB,MAEErzT,EAAO,IAAIwxV,SACX1D,EAAKzlO,EAAO,SAAU/pC,CAAC,CAAEluE,CAAC,EACxBpQ,EAAKmjC,MAAM,CAAC/yB,EAAGkuE,EACjB,GACoB,SAAT+0O,GACPrzT,EAAKmjC,MAAM,CAAC,IAAI,CAAC2oT,OAAO,CAAC30R,IAAI,CAACkzR,iBAAiB,CAAEh3B,EAAM,IAAI,CAAC65B,QAAQ,EAAI,IAAI,CAACZ,OAAO,CAACvzN,IAAI,CAAC5yG,IAAI,EAYpG,OARA,IAAI,CAACinU,GAAG,CAACtzT,IAAI,CAACzrB,EAAQ5S,EAAQ,IAC9B,IAAI,CAAC2xV,GAAG,CAAC9gV,eAAe,CAAG,IAAI,CAACw/U,OAAO,CAAC30R,IAAI,CAAC7qD,eAAe,CAG5DwhV,EAAKF,EAAS,IAAI,CAAC9B,OAAO,CAAC30R,IAAI,CAAC7oD,OAAO,CAAE,IAAI,CAACg+U,OAAO,CAAE,IAAI,CAAE8E,GAAS,SAAU9yQ,CAAC,CAAEluE,CAAC,EAClF,IAAI,CAACg9U,GAAG,CAACqE,gBAAgB,CAACrhV,EAAGkuE,EAC/B,EAAG,IAAI,EAEAt+E,CACT,CACF,GA4BA+pV,EAAK6D,QAAQ,CAAGA,EA6BhB7D,EAAKhsQ,MAAM,CAAGA,EA8BdgsQ,EAAK+D,IAAI,CAAGA,EAMZ/D,EAAK8B,QAAQ,CAAGA,EAMhB9B,EAAK8C,SAAS,CAAGA,EAMjB9C,EAAKtmF,OAAO,CAAG,iBAEV,GAAwC,iBAAO79P,EAAO8rV,OAAO,EAKhE9rV,EAAO8rV,OAAO,CAAG3H,GAGjBxoV,EAAOwoV,IAAI,CAAGA,EAUZ4H,IAAoB,GAAF,CAAE,WAAc,OAAO5H,CAAM,GAAC,QAAhC,EAAE,CAA8B,iBAGtD,EAAG,oBAAOxoV,QAA0BA,OAAQ,oBAAOjF,UAA4BA,S,gBCxnD/E0pB,EAAAA,OAAAA,QAAQpgB,MAAM,CAAC,gBAAiB,EAAE,EACjC4B,QAAQ,CAAC,cAAe,WACvB,YAMA,KAAI,CAAC6E,QAAQ,CAAG,CAAC,EAQjB,IAAI,CAACunB,OAAO,CAAG,SAAU3R,CAAO,EAC9B,OAAO,IAAI8nU,KAAK9nU,EAClB,EAQA,IAAI,CAACogG,MAAM,CAAG,EAAE,CAShB,IAAI,CAAC/qF,EAAE,CAAG,SAAUn8B,CAAK,CAAEmF,CAAQ,EACjC,IAAI,CAAC+hH,MAAM,CAACzhH,IAAI,CAAC,CAACzF,EAAOmF,EAAS,CACpC,EAEA,IAAI,CAACsH,IAAI,CAAG,WACV,IAAI8tN,EAAK,IAAI,CAAC9hM,OAAO,CACjBvnB,EAAW,IAAI,CAACA,QAAQ,CACxBg2G,EAAS,IAAI,CAACA,MAAM,CACxB,MAAO,CACL,OAAU,SAASlrD,CAAI,EAErB,IAAI2hE,EAAO48F,EAAG1vM,QAAQ+3D,MAAM,CAAC,CAAC,EAAG1xE,EAAU8qD,IAI3C,OAHAnxC,QAAQvoB,OAAO,CAAC4kH,EAAQ,SAAUlnH,CAAK,EACrC29H,EAAKxhG,EAAE,CAACn8B,CAAK,CAAC,EAAE,CAAEA,CAAK,CAAC,EAAE,CAC5B,GACO29H,CACT,CACF,CACF,CACF,GACA9yG,QAAQpgB,MAAM,CAAC,YAAa,CAAC,gBAAgB,EAC1CnB,UAAU,CAAC,WAAY,CAAC,SAAU,SAAU,SAAU,cACvD,SAAUoT,CAAM,CAAE4B,CAAM,CAAEmoO,CAAM,CAAEgwG,CAAW,EAE3C,IAAI3vU,EAAU+D,QAAQ+3D,MAAM,CAAC,CAAC,EAAGlmE,EAAO6oP,KAAK,CAACjnP,EAAOw8G,QAAQ,GAGzD6C,EAAQjhH,EAAO6oP,KAAK,CAACjnP,EAAOo4U,UAAU,GAAKD,EAAYl8R,MAAM,CAACzzC,GAE9D6vU,EAAkB,SAASlqP,CAAS,EACtC,IAAI1lG,EAAOlE,MAAMlD,SAAS,CAACmD,KAAK,CAAC9E,IAAI,CAACo/D,WACtCr2D,EAAK88I,KAAK,GACV,IAAI7jJ,EAAQ0c,EAAOnG,UAAU,CAAC4mD,KAAK,CAACzgD,EAAQ,CAAC,SAAW+vF,EAAWkxB,EAAK,CAACliG,MAAM,CAAC10B,IAMhF,GALI,EACF,SAAW,EAAG,eAAiB,EAAG,YAAe,EAAG,UAAa,EAAG,SAAY,CAClF,EAAC,CAAC0lG,EAAU,EACV/vF,EAAOuS,WAAW,GAEhBjvB,EAAM42V,gBAAgB,CACxB,MAAO,EAEX,EAEAj5N,EAAKxhG,EAAE,CAAC,WAAYw6T,GACpBj6U,EAAOJ,GAAG,CAAC,WAAY,WACnBqhH,EAAKhxF,GAAG,CAAC,WAAYgqT,EACzB,GAEAj6U,EAAOm6U,KAAK,CAAGl5N,EAEXr/G,EAAOyQ,cAAc,CAAC,cACxB03N,EAAOnoO,EAAOw4U,QAAQ,EAAExuU,MAAM,CAAC5L,EAAQihH,GACvCjhH,EAAOJ,GAAG,CAAC,WAAY,WACrBmqO,EAAOnoO,EAAOw4U,QAAQ,EAAExuU,MAAM,CAAC5L,EACjC,GAEJ,EAAE,EACDhF,SAAS,CAAC,WAAY,CAAC,WACtB,MAAO,CACLhC,MAAO,GACPpM,WAAY,UACd,CACF,EAAE,EACJuhB,QAAQpgB,MAAM,CAAC,WAAY,CAAC,YAAY,EACvCiN,SAAS,CAAC,UAAW,CAAC,WACrB,MAAO,CACL,SAAY,KACZ,MAAS,GACT,QAAW,YACX,KAAQ,SAAShC,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACpC,IAAI6iU,EAAc7iU,EAAM1B,cAAc,CAAC,iBACnCgoU,EAAetmU,EAAM1B,cAAc,CAAC,kBACpCioU,EAAavmU,EAAM1B,cAAc,CAAC,cAAgBrZ,EAAM6vP,KAAK,CAAC90O,EAAMwmU,SAAS,EACjFvhV,EAAMmhV,KAAK,CAACnD,YAAY,CAAC9wV,EAAS0wV,EAAayD,EAAcC,EAC/D,CACF,CACF,EAAE,EACFnsU,QAAQpgB,MAAM,CAAC,kBAAmB,CAAC,YAAY,EAK5CiN,SAAS,CAAC,kBAAmB,WAC5B,MAAO,CACL,MAAS,GACT,KAAQ,SAAShC,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACpC7tB,EAAQzE,IAAI,CAAC,gBAAiB,SAAU6B,CAAK,EAC3CA,EAAMwB,cAAc,EACtB,EACF,CACF,CACF,GAKCkW,SAAS,CAAC,gBAAiB,CAAC,WAAY,SAAS1R,CAAQ,EACxD,MAAO,CACL,MAAS,GACT,KAAQ,SAAS0P,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EAEpC,IADIpsB,EACA+lQ,EAAQ,GACZxnQ,EAAQzE,IAAI,CAAC,WAAY,SAAU6B,CAAK,MAoBlCk3V,EACA/oB,EADA+oB,EAAW,GACX/oB,EAAegpB,EAAUhpB,YAAY,EAAIgpB,EAAU5xO,aAAa,CAAC4oN,YAAY,CACjFtjT,QAAQvoB,OAAO,CAAC6rU,GAAgBA,EAAan/C,KAAK,CAAE,SAAS/zK,CAAG,EAClD,UAARA,GACFi8O,CAAAA,EAAW,EAAG,CAElB,GACOA,IAvBF9sF,IACH10P,EAAM4iF,MAAM,CAAC7nE,EAAM2mU,aAAa,EAChChtF,EAAQ,IAEVpkQ,EAASiV,MAAM,CAAC5W,GAChBrE,EAAMwB,cAAc,GACtB,GACAoB,EAAQzE,IAAI,CAAC,iBAAkB,SAAU6B,CAAK,EAC5CgG,EAASiV,MAAM,CAAC5W,GAChBA,EAAU2B,EAAS,WACjB0P,EAAM6vP,KAAK,CAAC90O,EAAM4mU,aAAa,EAC/BhzV,EAAU,KACV+lQ,EAAQ,EACV,EAAG,IACL,EAWF,CACF,CACF,EAAE,EAEJv/O,QAAQpgB,MAAM,CAAC,YAAa,CAAC,YAAY,EACxCiN,SAAS,CAAC,WAAY,WACrB,MAAO,CACL,MAAS,GACT,QAAW,YACX,KAAQ,SAAShC,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EAYpC,SAASojU,IACPn+U,EAAMmhV,KAAK,CAAChD,UAAU,CAACjxV,EACzB,CAbI6tB,EAAM6mU,eAAe,CACvB5hV,EAAMib,MAAM,CAACF,EAAM6mU,eAAe,CAAE,SAAUp3V,CAAK,EAC7CA,EACF2zV,IAYJn+U,EAAMmhV,KAAK,CAAC/C,YAAY,CAAClxV,EARzB,GAEAixV,GAQJ,CACF,CACF,GAEC,SAAUhpU,CAAO,EAAG,aACnB,IAAIpgB,EAASogB,EAAQpgB,MAAM,CAAC,cAAe,CAAC,YAAY,EAgBxDogB,EAAQvoB,OAAO,CAfF,CACXs9H,YAAa,CAAC,QAAS,WAAW,CAClC23N,aAAc,CAAC,QAAQ,CACvB75N,UAAW,CAAC,QAAS,SAAS,CAC9B85N,WAAY,CAAC,SAAU,SAAS,CAChCC,eAAgB,CAAC,SAAU,SAAS,CACpCz2N,UAAW,CAAC,QAAQ,CACpB02N,YAAa,CAAC,QAAQ,CACtBn3N,UAAW,CAAC,QAAS,WAAW,CAChCo3N,YAAa,EAAE,CACfpvR,SAAU,EAAE,CACZ47D,SAAU,EAAE,CACZhmG,MAAO,CAAC,WAAY,QAAQ,EAGN,SAAUy5T,CAAS,CAAEnrP,CAAS,EACpD,IAAIzhF,EAAO,OA6BJy/B,CAAAA,EAAOslC,MAAM,CAAC,GAAGC,WAAW,GAAKvlC,EAAO3nD,KAAK,CAAC,EAAC,CA5B1C,oBAARkoB,GACFA,CAAAA,EAAO,qBAETvgB,EAAOiN,SAAS,CAACsT,EAAM,CAAC,WACtB,MAAO,CACLurE,QAAS,YACTjtF,WAAY,CAAC,SAAU,SAAU,SAAUoT,CAAM,CAAE4B,CAAM,EACvD5B,EAAOJ,GAAG,CAAC,SAAWmwF,EAAW,WAC/B,IAAIorP,EAAWh1V,MAAMlD,SAAS,CAACmD,KAAK,CAAC9E,IAAI,CAACo/D,WACtCp9D,EAAQ63V,EAASh0M,KAAK,GAE1B,GAAInnI,EAAOm6U,KAAK,GAAKgB,EAASh0M,KAAK,IAGnC,IAAI98I,EAAO,CAAC,EACZ8jB,EAAQvoB,OAAO,CAACs1V,EAAW,SAAS13V,CAAK,CAAEU,CAAG,EAC5CmG,CAAI,CAAC7G,EAAM,CAAG23V,CAAQ,CAACj3V,EAAI,GAEY,KAArC8b,EAAO6oP,KAAK,CAACjnP,CAAM,CAAC0M,EAAK,CAAEjkB,IAC7B/G,EAAMwB,cAAc,GAExB,EACF,EAAE,CAEN,EAAE,CACJ,EAKF,EAAEqpB,SAEFA,QAAQpgB,MAAM,CAAC,WAAY,CAAC,YAAY,EACvCiN,SAAS,CAAC,UAAW,CAAC,WACrB,MAAO,CACL,MAAS,GACT,QAAW,YACX,KAAQ,SAAShC,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACpC,IAAImtG,EAAOntG,EAAMqnU,OAAO,CACxBpiV,EAAMib,MAAM,CAACitG,EAAM,SAAUA,CAAI,EAC/B,GAAKA,GAGL,IAAIm6N,EAAa,IAAIC,WACrBD,EAAWE,aAAa,CAACr6N,EAAKA,IAAI,EAClCm6N,EAAWltO,MAAM,CAAG,SAAU7qH,CAAK,EACjC0V,EAAM4iF,MAAM,CAAC,WACX7nE,EAAMylH,IAAI,CAAC,MAAOl2I,EAAMM,MAAM,CAACqvB,MAAM,CACvC,EACF,EACF,EACF,CACF,CACF,EAAE,EACF9E,QAAQpgB,MAAM,CAAC,iBAAkB,CAAC,YAAY,EAC7CiN,SAAS,CAAC,gBAAiB,CAAC,WAC3B,MAAO,CACL,MAAS,GACT,QAAW,YACX,KAAQ,SAAShC,CAAK,EACpBA,EAAMwiV,SAAS,CAAGxiV,EAAMmhV,KAAK,CAAC74N,KAAK,CAEvC,CACF,EAAE,EACFnzG,QAAQpgB,MAAM,CAAC,OAAQ,CAAC,gBAAiB,YAAa,cAAe,WACnE,YAAa,iBAAkB,WAAY,kBAAkB,C,sBCtR3D0tV,EACAC,EACAC,EACAC,EACAC,EAIAC,EACAC,E,kCA0amC,IAtbnCC,EAAe,GAQfC,EAA4B,CAAC,EAO7BC,EAAsB,CAAC,EACvBC,EAA+B,EAEnC,CACIC,EAAyB,CAAC,EAC1BC,EAAiC,CAAC,EAClCC,EAAuB,EAE3B,CACA,SAASC,IACL,GAAK,CAACP,EACF,MAAM,MAAU,6EAExB,CAqEA,MAAMQ,EAEK7sV,SAAW,IAAI,CAAC8sV,eAAe,CAAC,WAChC7vV,CAAAA,WAAa,IAAI,CAAC6vV,eAAe,CAAC,aAClCzhV,CAAAA,UAAY,IAAI,CAACyhV,eAAe,CAAC,YACjCl2V,CAAAA,OAAS,IAAI,CAACk2V,eAAe,CAAC,SAAU,SAC9B,IAAI,CAACA,eAAe,CAAC,UAC/Bl1V,CAAAA,QAAU,IAAI,CAACk1V,eAAe,CAAC,UAC/BC,CAAAA,SAAW,IAAI,CAACD,eAAe,CAAC,WAAY,OACpC,IAAI,CAACA,eAAe,CAAC,QAC7B1uO,CAAAA,UAAY,IAAI,CAAC0uO,eAAe,CAAC,YAAa,WAClC,IAAI,CAACA,eAAe,CAAC,YAKxCE,CAAAA,SAAU,CAEN,OADAJ,IACOd,CACX,CAEA,cAce,CAGX,GAFAc,IAEI,KAAuB,IAAhBR,EACP,MAAM,MAAU,oHAIpB,SAASa,EAAgBv2R,CAAU,EAC/B,EACav2B,MAAM,CAACu2B,EACxB,CAGA,IAAK,IAAIl/D,EAAI,EAAGA,EAAIm1V,EAAgBh4V,MAAM,CAAE6C,IAAK,CAC7C,IAEI21G,EAFAh/E,EAAOw+T,CAAe,CAACn1V,EAAE,CACzB01V,EAAc/+T,EAAK/vB,MAAM,CAAC+uV,YAAY,CAK1C,IAAKhgP,EAAI,EAAGA,EAAI+/O,EAAYv4V,MAAM,CAAEw4G,GAAK,EAAG,CACxC,IAAI/+D,EAAI8+S,CAAW,CAAC//O,EAAE,CAClBntG,EAAWouC,CAAC,CAAC,EAAE,CACfvnC,EAASunC,CAAC,CAAC,EAAE,CACb1zC,EAAO0zC,CAAC,CAAC,EAEb,CACIk+S,EAAqB5pU,cAAc,CAAC1iB,GAQpCotV,CANIptV,cAAAA,GAA4B6G,WAAAA,EACXqlV,EAEAI,CAAoB,CAACtsV,EAC1C,CAEc,CAAC6G,EAAO,CAACiqD,KAAK,CAAC,KAAMp2D,GAG/BX,OAAOg4B,OAAO,EACdh4B,OAAOg4B,OAAO,CAACD,KAAK,CAAC,IAAM9xB,EAAW,iBAGlD,CAMA,GAAImuB,EAAK/vB,MAAM,CAACivV,aAAa,CAAE,CAC3B,IAAIC,EAAen/T,EAAK/vB,MAAM,CAACivV,aAAa,CAG5C,IAAKlgP,EAAI,EAAGA,EAAImgP,EAAa34V,MAAM,CAAEw4G,GAAK,EAAG,CACzC,IAAIogP,EAAKD,CAAY,CAACngP,EAAE,CACpBqgP,EAAYD,CAAE,CAAC,EAAE,CACjBE,EAAUF,CAAE,CAAC,EAAE,CAEnBrB,CAAe,CAACsB,EAAU,CAAC18R,KAAK,CAAC,KAAM28R,EAC3C,CACJ,CAEJ,CAGA,KAAOd,EAAgBh4V,MAAM,EAAE,CAC3B,IAAIw5B,EAAOw+T,EAAgBn1M,KAAK,EAC5BrpH,CAAAA,EAAK/vB,MAAM,CAACsvV,UAAU,EACtBlvU,QAAQvoB,OAAO,CAACk4B,EAAK/vB,MAAM,CAACsvV,UAAU,CAAET,EAEhD,CAMAR,EAAoB,CAAC,CAEzB,CAEA,kBAGkBkB,CAAkB,CAAE,KAG9BP,EAEJ,OAJAR,IAIQe,GACJ,IAAK,iBACDP,EAAiBjB,EACjB,KACJ,KAAK,gBACDiB,EAAiBhB,EACjB,KACJ,KAAK,aACDgB,EAAiBrB,EACjB,KACJ,KAAK,YACDqB,EAAiBpB,EACjB,KACJ,SACIoB,EAAiBd,CAAoB,CAACqB,EAC9C,CAEA,OAAOP,CACX,CAEA,QAIS,CAEL,OADAR,IACOX,EAAa9rT,MAAM,CAAC2wB,KAAK,CAAC,KAAMC,UAC3C,CAMApzD,QAAS,CAEL,OADAivV,IACOV,EAAgB/rT,MAAM,CAAC2wB,KAAK,CAAC,KAAMC,UAC9C,CAEA,OAGQ,CACwB,SAAjBo7R,IAKXpyV,OAAOykB,OAAO,CAAG2tU,EAOjBJ,EAAWz0V,KAAAA,EACX00V,EAAU10V,KAAAA,EAGV80V,EAAc90V,KAAAA,EACd60V,EAAe70V,KAAAA,EACfi1V,EAAiB,CAAC,EAClBC,EAA0B,EAE1B,CACAG,EAAkB,EAAE,CACpBb,EAAWx0V,KAAAA,EACX20V,EAAe30V,KAAAA,EACf40V,EAAkB50V,KAAAA,EAClBg1V,EAAuB,CAAC,EAGxBD,EAAe,GACnB,CAEA,UAMUh/K,CAAQ,CAAEugL,CAAmB,CAAE93V,CAAU,CAAE,CACjD,GACIu2V,EACA,MAAMrtL,MAAM,sCAuFhB,GApF6B,SAAlB4uL,GACPA,CAAAA,EAAgB,EAAG,EAIvBzB,EAAe3tU,QAGfutU,EAAW1+K,EACX2+K,EAAU,CAAC,EACXG,EAAa51Q,MAAM,CAACy1Q,EAASD,GAG7Bj2V,EAAOA,GAAQhB,SAAS60G,eAExB,CACA0jE,EAAI1vK,MAAM,CACN,CAAC,sBAAuB,mBAAoB,kBAAmB,mBAAoB,WAAY,YAAa,SAAUkwV,CAAuB,CAAEC,CAAoB,CAAEC,CAAmB,CAAEC,CAAoB,CAAEC,CAAY,CAAE91L,CAAa,EACvO,EACkBA,EAClBm0L,EAAuB,CACnB4B,oBAAqBL,EACrBM,iBAAkBL,EAClBM,gBAAiBL,EACjBM,iBAAkBL,EAClB9uK,SAAU+uK,CACd,EAGAzvU,QAAQ+3D,MAAM,CAACg2Q,EAAgB,CAC3BvsV,SAAU,SAAU2e,CAAS,CAAE5mB,CAAgB,EAE3C,OADAk2V,EAAQjuV,QAAQ,CAAC2e,EAAM5mB,GAChB,IACX,EACAkF,WAAY,SAAU0hB,CAAS,CAAE5mB,CAAgB,EAE7C,OADA81V,EAAmB5zV,QAAQ,CAAC0kB,EAAM5mB,GAC3B,IACX,EACAsT,UAAW,SAAUsT,CAAS,CAAE5mB,CAAgB,EAE5C,OADA+1V,EAAgBziV,SAAS,CAACsT,EAAM5mB,GACzB,IACX,EACAnB,OAAQ,SAAU+nB,CAAS,CAAE5mB,CAAgB,EAEzC,OADAg2V,EAAe9zV,QAAQ,CAAC0kB,EAAM5mB,GACvB,IACX,EACAq0B,QAAS,SAAUzN,CAAS,CAAE5mB,CAAgB,EAE1C,OADAk2V,EAAQ7hU,OAAO,CAACzN,EAAM5mB,GACf,IACX,EACAH,QAAS,SAAU+mB,CAAS,CAAE5mB,CAAgB,EAE1C,OADAk2V,EAAQr2V,OAAO,CAAC+mB,EAAM5mB,GACf,IACX,EACAg1V,SAAU,SAAUpuU,CAAS,CAAE5mB,CAAgB,EAE3C,OADAk2V,EAAQlB,QAAQ,CAACpuU,EAAM5mB,GAChB,IACX,EACAlE,MAAO,SAAU8qB,CAAS,CAAE5mB,CAAgB,EAExC,OADAk2V,EAAQp6V,KAAK,CAAC8qB,EAAM5mB,GACb,IACX,EACA4E,UAAW,SAAUgiB,CAAS,CAAE5mB,CAAgB,EAE5C,OADA+1V,EAAgBnxV,SAAS,CAACgiB,EAAM5mB,GACzB,IACX,EACAqmH,UAAW5/F,QAAQ1sB,IAAI,CAACk8V,EAAiBA,EAAgB/zV,QAAQ,CACrE,GACAukB,QAAQ+3D,MAAM,CAACy1Q,EAASO,EAE5B,EAAE,EAINl/K,EAAIsK,GAAG,CAAC,CAAC,YAAa,SAAUt9D,CAAc,EAC1C,EACeA,EACfiyO,EAAqBjyO,SAAS,CAAG4xO,CACrC,EAAE,EAGFH,EAAWz+K,EAAI1uJ,IAEf,CACI6tU,EAAwB73V,MAAM,CAAG,EAAG,CACpC,IAAK,IAAI25V,EAAK,EAAGA,EAAK9B,EAAwB73V,MAAM,CAAE25V,GAAM,EAAG,CAC3D,IAAIngU,EAAOq+T,CAAuB,CAAC8B,EAAG,CACtCvC,CAAQ,CAAC59T,EAAKogU,MAAM,CAAC,CAACpgU,EAAKxP,IAAI,CAAEwP,EAAKp2B,WAAW,CACrD,CACAy0V,EAA0B,EAC9B,CAmBA,OAhBAT,EAAS9xV,QAAQ,CAAGsyV,EAGpBJ,EAAa51V,OAAO,CAACzB,UAAUumD,KAAK,CAAC,WACjC8wS,EAAal3N,SAAS,CAACn/H,EAAM,CAACg2V,EAAS,EAEvCO,EAAe,GAGXuB,GAEAY,WA3WZ,GACIpC,EACA,MAAM,MAAU,gDAEhBA,EAAc,CAAC,EAInBQ,IAGAT,EAAa51Q,MAAM,CAAC61Q,EAAaD,GAGjCC,EAAYhuV,MAAM,CAAG,SAAUugB,CAAS,CAAE8vU,CAAa,EACnD,GAAI,KAAoB,IAAbA,SACP,EAC8B/rU,cAAc,CAAC/D,GAClC8tU,CAAiB,CAAC9tU,EAC7B,CACWwtU,EAAa/tV,MAAM,CAACugB,GAG/B,IAAI+vU,EAAWvC,EAAa/tV,MAAM,CAAC0yD,KAAK,CAAC,KAAMC,WAc/C,OAZA47R,EAAgBvzV,IAAI,CADT,CAAEulB,KAAMA,EAAMvgB,OAAQswV,CAAQ,GAEzCvC,EAAa51Q,MAAM,CAACm4Q,EAAUnC,GAO9BG,CAAyB,CAAC/tU,EAAK,CAAG,GAClC8tU,CAAiB,CAAC9tU,EAAK,CAAG+vU,EAGnBA,CAEf,EAEA30V,OAAOykB,OAAO,CAAG4tU,CAMrB,GA8TQ,GAGOJ,CACX,CAEA,gBACgB2C,CAAmB,CAAE,CACjC,OAAO,SAAqBhwU,CAAS,CAAE5mB,CAAgB,EAWnD,OAVIs0V,EACAE,CAAc,CAACoC,EAAe,CAAChwU,EAAM5mB,GAErC,EACwBqB,IAAI,CAAC,CACzB,OAAUu1V,EACV,KAAQhwU,EACR,YAAe5mB,CACnB,GAEG,IACX,CACJ,CAEJ,CAEA,IAAIg7F,EAAgB,IAAI85P,CCvbjB,OAAM+B,EACOx2V,OACAy2V,CAAAA,MACA5xV,CAAAA,UACR6xV,CAAAA,aACSC,CAAAA,YAA2C,aAEhDC,CAA4B,CAAE,CACtC,IAAI,CAACH,MAAM,CAAGG,EAAYH,MAC1B,KAAI,CAAC5xV,UAAU,CAAG+xV,EAAY/xV,UAC9B,KAAI,CAAC8xV,YAAY,CAAGC,EAAYC,WAAW,EAAI,KAC/C,IAAI,CAACH,aAAa,CAAG,GACrB,IAAI,CAAC12V,OAAO,CAAG,CAAC,KAAOqT,GACZ,IAAI,CAACyjV,kBAAkB,CAACzjV,GAEvC,CAEQyjV,mBAAmBzjV,CAAa,CAAkB,CACtD,GAAI,IAAI,CAACqjV,aAAa,CAClB,OAAOrjV,EAAG4K,IAAI,GAElB,IAAMtC,EAAWtI,EAAGuI,KAAK,GAiBzB,OAhBA,IAAI,CAAC66U,MAAM,GACN/6V,IAAI,CAAEsK,IAEH,GADAzG,EAAWsF,UAAU,CAAC,IAAI,CAACA,UAAU,CAAEmB,EAAO+wV,UAAU,EACpD,WAAI,CAACJ,YAAY,CACjB,OAAO,IAAI,CAACA,YAAY,EAGhC,GACCj7V,IAAI,CAAC,KACF,IAAI,CAACg7V,aAAa,CAAG,GACrB/6U,EAAS3b,OAAO,EACpB,GACCO,KAAK,CAAEm5B,IACJ/d,EAAS1b,MAAM,CAACy5B,EACpB,GAEG/d,EAAS/b,OACpB,CACJ,CC1CO,MAAMo3V,EACT,OAAclhS,OAAU8gS,CAA4B,CAAmB,CACnE,IAAMK,EAAiBt0V,OAAOkhB,MAAM,CAAC,CAAC,EAAG+yU,GACnCppV,EAAQ,IAAIgpV,EAAeS,GAOjC,OAL+B/3V,KAAAA,IAA3B+3V,EAAej3V,OAAO,EACtBi3V,CAAAA,EAAej3V,OAAO,CAAG,CAAC,GAG9Bi3V,EAAej3V,OAAO,CAACk3V,sBAAsB,CAAG1pV,EAAMxN,OAAO,CACtDi3V,CACX,CACJ,C,iBCRU7wU,EAsDN+wU,EAOAC,EAEAC,EA4UD11V,OArVCw1V,EAAe/wU,CAtDTA,EA2YCzkB,OAAOykB,OAAO,EArVEpgB,MAAM,CAAC,SAAU,CAAC,KAAK,EAC1B0sF,IAAI,CAAC,CAAE4kQ,eAAgB,OAAQ,GAC/B1vV,QAAQ,CAAC,QAkCjC,WACE,IAAIrC,EAAS,CACXgyV,WAAY,GACZC,YAAa,GACbC,aAAc,GACdxhD,aAAc,GACdyhD,aAAc,GACdC,YAAa,GACbC,UAAW,GACXC,SAAU,GACVC,YAAa,GACbC,iBAAkB,EACpB,EA+BA,SAASC,EAAU91F,CAAQ,CAAE+1F,CAAQ,CAAEb,CAAa,CAAEc,CAAM,EAC1D,OAAO,SAASjnV,CAAK,CAAEvT,CAAI,CAAE9C,CAAI,EAC/B,IAAIu9V,EAAgBv9V,EAAKw9V,UAAU,CAACH,IAChC1yV,CAAM,CAAC4yV,EAAc,EAAKd,EAAY35V,EAAM05V,IAAmBx8V,CAAI,CAACu9V,EAAc,EACpFlnV,EAAMib,MAAM,CAACtxB,CAAI,CAACsnQ,EAAS,CAAE,SAASm2F,CAAO,EAE3CA,EAAUH,EAAS,CAACG,EAAU,CAAC,CAACA,EAChC36V,EAAK9C,IAAI,CAACq9V,EAAUI,EACtB,EAEJ,CACF,CAfA,IAAI,CAAC9yV,MAAM,CAAG,SAAS+yV,CAAS,EAC9B/yV,EAAS6gB,EAAQ+3D,MAAM,CAAC54E,EAAQ+yV,EAClC,EAgEA,IAAI,CAACtwV,IAAI,CAAG,WACV,MAAO,CACLzC,OAAAA,GACSA,CAAM,CAACpJ,EAAI,CAEpBo8V,YAAaP,CACf,CACF,CACF,GA9IIZ,EAAgB,CAAC,SAAU,IAAK,QAAS,WAAY,SAAU,UAAW,UAAU,CAEpFC,EAAc,SAAS35V,CAAI,CAAE86V,CAAa,EAC5C,GAAIA,EAAcj7U,QAAQ,CAAC7f,CAAI,CAAC,EAAE,CAAC2tG,QAAQ,EACzC,MAAO,EAEX,EA2IA8rP,EAAalkV,SAAS,CAAC,SAAU,CAAC,QAAS,SAASwlV,CAAK,EACvD,OAAOA,EAAMF,WAAW,CAAC,SAAU,cAAe,EAAE,CAAE,GACxD,EAAE,EACDtlV,SAAS,CAAC,SAAU,CAAC,QAAS,SAASwlV,CAAK,EAC3C,OAAOA,EAAMF,WAAW,CAAC,SAAU,cAAe,EAAE,CAAE,GACxD,EAAE,EACDtlV,SAAS,CAAC,UAAW,CAAC,QAAS,SAASwlV,CAAK,EAC5C,OAAOA,EAAMF,WAAW,CAAC,UAAW,eAAgBnB,EAAe,GACrE,EAAE,EACDnkV,SAAS,CAAC,YAAa,CAAC,QAAS,SAASwlV,CAAK,EAC9C,OAAOA,EAAMF,WAAW,CAAC,YAAa,eAAgBnB,EAAe,GACvE,EAAE,EACDnkV,SAAS,CAAC,aAAc,CAAC,QAAS,SAASwlV,CAAK,EAC/C,OAAOA,EAAMF,WAAW,CAAC,aAAc,gBAAiBnB,EAAe,GACzE,EAAE,EACDnkV,SAAS,CAAC,aAAc,CAAC,QAAS,SAASwlV,CAAK,EAC/C,OAAOA,EAAMF,WAAW,CAAC,aAAc,gBAAiBnB,EAAe,GACzE,EAAE,EACDnkV,SAAS,CAAC,UAAW,CAAC,QAAS,SAASwlV,CAAK,EAE5C,SAASC,EAAiB99V,CAAI,CAAE+9V,CAAc,CAAEj7V,CAAI,CAAEk7V,CAAiB,EACrE,OAAOH,EAAMlzV,MAAM,CAACozV,IAAmB,CAACj7V,EAAK9C,IAAI,CAACA,IAAUg+V,CAAAA,GAAqB,CAACvB,EAAY35V,EAAM05V,EAAa,CACnH,CAEA,SAASyB,EAAiB7vQ,CAAI,CAAEtrF,CAAI,EAIlC,MAAO,CAACA,EAAK9C,IAAI,CAAC,SAAY8C,EAAK9C,IAAI,CAAC,UAAYouF,GAAS,CAACquQ,EAAY35V,EAAM05V,EAClF,CAWA,MAAO,CACLpmV,SAAU,IACV8gF,QAAS,UACT05K,SAAU,IACVvpB,QAAQvkP,CAAI,CAAE9C,CAAI,EAChB,IAbEyhB,EACA2sE,EAYE8vQ,GAbFz8U,EAAOzhB,EAAKyhB,IAAI,CAChB2sE,EAAOpuF,EAAKouF,IAAI,CAEb,aAAE3sE,CAAAA,GAAQ2sE,CAAG,GAAqBA,qBAAAA,EAA+B,WACjE,UAAE3sE,CAAAA,GAAQ2sE,CAAG,GAAqBA,kBAAAA,EAA4B,QAC9D,aAAkCA,gBAAAA,GAA0BA,WAAAA,EAAqB,QAAU,IAUhG,MAAO,CACL7gF,KAAK8I,CAAK,CAAEvT,CAAI,CAAE9C,CAAI,CAAEm3F,CAAO,EAC7B,IAAIgnQ,EAAgBL,EAAiB,WAAY,WAAYh7V,EAAM,IAEnE,SAASs7V,IACP,OAAOjnQ,EAAQknQ,WAAW,CAc5B,OAAQH,GACN,IAAK,QACL,IAAK,WACCD,EAAiBC,EAAOp7V,IAC1BA,EAAK9C,IAAI,CAAC,OAAQk+V,GAEhBJ,EAAiB,eAAgB,cAAeh7V,EAAM,KACxDuT,EAAMib,MAAM,CAAC8sU,EAAuBF,UAAAA,EAlB1C,SAA0BnoU,CAAM,EAG9B,IAAI0nU,EAAWz9V,EAAKa,KAAK,EAAIs2F,EAAQm5L,UAAU,CAC/CxtR,EAAK9C,IAAI,CAAC,eAAgBy9V,EAC5B,EAEA,WACE36V,EAAK9C,IAAI,CAAC,eAAgB,CAACm3F,EAAQmnQ,QAAQ,CAACnnQ,EAAQm5L,UAAU,EAChE,GAYQ6tE,GACFr7V,EAAK9C,IAAI,CAAC,WAAY,GAExB,KACF,KAAK,QAIH,GAHIi+V,EAAiBC,EAAOp7V,IAC1BA,EAAK9C,IAAI,CAAC,OAAQ,UAEhB69V,EAAMlzV,MAAM,CAAC,aAAc,CAC7B,IAAI4zV,EAAoB,CAACz7V,EAAK9C,IAAI,CAAC,kBAC9BA,CAAAA,EAAK0vB,cAAc,CAAC,QAAU1vB,EAAK0vB,cAAc,CAAC,UACnD8uU,EAAoB,CAAC17V,EAAK9C,IAAI,CAAC,kBAC9BA,CAAAA,EAAK0vB,cAAc,CAAC,QAAU1vB,EAAK0vB,cAAc,CAAC,UACnD+uU,EAAoB,CAAC37V,EAAK9C,IAAI,CAAC,iBAE/Bu+V,GACFv+V,EAAK8wB,QAAQ,CAAC,MAAO,SAAgCiF,CAAM,EACzDjzB,EAAK9C,IAAI,CAAC,gBAAiB+1B,EAC7B,GAEEyoU,GACFx+V,EAAK8wB,QAAQ,CAAC,MAAO,SAAgCiF,CAAM,EACzDjzB,EAAK9C,IAAI,CAAC,gBAAiB+1B,EAC7B,GAEE0oU,GACFpoV,EAAMib,MAAM,CAAC8sU,EAAuB,SAAgCroU,CAAM,EACxEjzB,EAAK9C,IAAI,CAAC,gBAAiB+1B,EAC7B,EAEJ,CACIooU,GACFr7V,EAAK9C,IAAI,CAAC,WAAY,EAG5B,CAEI,CAACA,EAAK0vB,cAAc,CAAC,eAAiBynE,EAAQunQ,WAAW,CAAC7pN,QAAQ,EACjEipN,EAAiB,gBAAiB,eAAgBh7V,EAAM,KAE3D9C,EAAK8wB,QAAQ,CAAC,WAAY,WACxBhuB,EAAK9C,IAAI,CAAC,gBAAiB,CAAC,CAACA,EAAK,QAAW,CAC/C,GAGE89V,EAAiB,eAAgB,cAAeh7V,EAAM,KACxDuT,EAAMib,MAAM,CAAC,WACX,OAAO6lE,EAAQwnQ,QAAQ,EACtB,SAA+B5oU,CAAM,EACtCjzB,EAAK9C,IAAI,CAAC,eAAgB,CAAC,CAAC+1B,EAC9B,EAEJ,CACF,CACF,CACF,CACF,EAAE,EACD1d,SAAS,CAAC,aAAc,CAAC,QAAS,SAASwlV,CAAK,EAC/C,OAAOA,EAAMF,WAAW,CAAC,aAAc,gBAAiBnB,EAAe,GACzE,EAAE,EACDnkV,SAAS,CAAC,aAAc,WACvB,MAAO,CACLjC,SAAU,IACV8gF,QAAS,cACT3rE,KAAKlV,CAAK,CAAEvT,CAAI,CAAE9C,CAAI,CAAE4+V,CAAU,EAC3B97V,EAAK9C,IAAI,CAAC,cACb8C,EAAK9C,IAAI,CAAC,YAAa,YAE3B,CACF,CACF,GACCqY,SAAS,CAAC,UAAU,CAAC,QAAS,SAAU,SAASwlV,CAAK,CAAEz2G,CAAM,EAC7D,MAAO,CACLhxO,SAAU,IACVixO,QAAQvkP,CAAI,CAAE9C,CAAI,EAChB,IAAIk7N,EAAKksB,EAAOpnP,EAAK6+V,OAAO,EAC5B,OAAO,SAASxoV,CAAK,CAAEvT,CAAI,CAAE9C,CAAI,EAE1By8V,EAAY35V,EAAM05V,KAEjBqB,EAAMlzV,MAAM,CAAC,qBAAuB,CAAC7H,EAAK9C,IAAI,CAAC,SACjD8C,EAAK9C,IAAI,CAAC,OAAQ,UAGhB69V,EAAMlzV,MAAM,CAAC,aAAe,CAAC7H,EAAK9C,IAAI,CAAC,aACzC8C,EAAK9C,IAAI,CAAC,WAAY,IAGpB69V,EAAMlzV,MAAM,CAAC,gBAAmB3K,EAAK8+V,SAAS,EAAK9+V,EAAK++V,UAAU,EAAK/+V,EAAKg/V,OAAO,EACrFl8V,EAAKg6B,EAAE,CAAC,UAAW,SAASn8B,CAAK,EAC/B,IAAIS,EAAUT,EAAMopC,KAAK,EAAIppC,EAAMS,OAAO,CACtCA,CAAAA,KAAAA,GAAkBA,KAAAA,CAAa,GACjCiV,EAAM4iF,MAAM,CAGd,WACEiiI,EAAG7kN,EAAO,CAAEm1C,OAAQ7qD,CAAM,EAC5B,EACF,GAGN,CACF,CACF,CACF,EAAE,EACD0X,SAAS,CAAC,aAAc,CAAC,QAAS,SAASwlV,CAAK,EAC/C,OAAO,SAASxnV,CAAK,CAAEvT,CAAI,CAAE9C,CAAI,GAC3B69V,EAAMlzV,MAAM,CAAC,aAAgB7H,EAAK9C,IAAI,CAAC,aAAgBy8V,EAAY35V,EAAM05V,IAC3E15V,EAAK9C,IAAI,CAAC,WAAY,EAE1B,CACF,EAAE,C,kBCzYF,EAAC,QAAC,CAAA+G,EAAQykB,KACV,aAmDA,IAjBImE,EACA4hQ,EACAv5N,EACA5pC,EAuBA6wU,EATAC,EAAgB1zU,EAClBpgB,MAAM,CAAC,UAAW,EAAE,EACpB0sF,IAAI,CAAC,CAAE4kQ,eAAgB,OAAQ,GAC/B1vV,QAAQ,CAAC,SAwBX,WAME,SAASmyV,EAAQx7U,CAAM,CAAEy7U,CAAK,EAC5B,OAAO5zU,EAAQ+3D,MAAM,CAACx7E,OAAOmzD,MAAM,CAACv3C,GAASy7U,EAC/C,CAPAzvU,EAAUnE,EAAQmE,OAAO,CACzB4hQ,EAAW/lQ,EAAQ+lQ,QAAQ,CAC3Bv5N,EAAYxsC,EAAQwsC,SAAS,CAC7B5pC,EAAO5C,EAAQ4C,IAAI,CAMnB,IAAIixU,EAAS,CAAC,EAgMd,SAASC,EAAWt/U,CAAI,CAAE28C,CAAI,EAC5B,IAAI4iS,EAAc5iS,EAAK6iS,oBAAoB,CAEvC/mP,EAAM,CACRgnP,aAAcz/U,EACd0/U,OAAQ1/U,CACV,EAEI7Y,EAAOsxG,EAAItxG,IAAI,CAAG,EAAE,CAqBxB,OAnBA6Y,EAAOA,EACJlK,OAAO,CAAC,WAAY,QACpBA,OAAO,CAAC,2BAA4B,SAASioB,CAAC,CAAE4hU,CAAK,CAAEp+V,CAAG,CAAEkwB,CAAM,EACjE,IAAImuU,EAAW,SAAmBnuU,OAAAA,EAAmB,IAAM,KAI3D,OAFAtqB,EAAKf,IAAI,CAAC,CAAEulB,KAAMpqB,EAAKq+V,SAAU,CAAC,CAACA,CAAS,GAC5CD,EAAQA,GAAS,GACV,GACFC,CAAAA,EAAW,GAAKD,CAAI,EACrB,MACCC,CAAAA,EAAWD,EAAQ,IACnBE,CAAAA,CAPM,SAAmBpuU,OAAAA,EAAmB,IAAM,IAAG,GAO7C,SAAW,WACnBmuU,CAAAA,GAAY,IACb,IACCA,CAAAA,GAAY,GACnB,GACC9pV,OAAO,CAAC,WAAY,QAEvB2iG,EAAIinP,MAAM,CAAG,OAAW,IAAM1/U,EAAO,IAAKu/U,EAAc,IAAM,IACvD9mP,CACT,CAjFA,IAAI,CAACp1F,IAAI,CAAG,SAASrD,CAAI,CAAEpN,CAAK,EAE9B,IAAIktV,EAAYC,SA9NCnzK,CAAG,CAAEymK,CAAG,EAC3B,GAAI1jU,EAAQi9J,GAAM,CAChBymK,EAAMA,GAAO,EAAE,CAEf,IAAK,IAAI7uV,EAAI,EAAGo8K,EAAKgM,EAAIjrL,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IACvC6uV,CAAG,CAAC7uV,EAAE,CAAGooL,CAAG,CAACpoL,EAAE,MAEZ,GAAI+sR,EAAS3kG,GAGlB,IAAK,IAAIrrL,KAFT8xV,EAAMA,GAAO,CAAC,EAEEzmK,EACU,MAAlBrrL,EAAImvF,MAAM,CAAC,IAAcnvF,MAAAA,EAAImvF,MAAM,CAAC,IACxC2iQ,CAAAA,CAAG,CAAC9xV,EAAI,CAAGqrL,CAAG,CAACrrL,EAAI,EAKzB,OAAO8xV,GAAOzmK,CAChB,EA4MgCh6K,GAa5B,GAZI4Y,EAAQw0U,WAAW,CAACF,EAAUG,cAAc,GAC9CH,CAAAA,EAAUG,cAAc,CAAG,EAAG,EAE5Bz0U,EAAQw0U,WAAW,CAACF,EAAUN,oBAAoB,GACpDM,CAAAA,EAAUN,oBAAoB,CAAG,IAAI,CAACA,oBAAoB,EAE5DH,CAAM,CAACr/U,EAAK,CAAGwL,EAAQ+3D,MAAM,CAC3Bu8Q,EACA9/U,GAAQs/U,EAAWt/U,EAAM8/U,IAIvB9/U,EAAM,CACR,IAAI8zB,EAAe,OAAK,CAAC9zB,EAAKre,MAAM,CAAG,EAAE,CACjCqe,EAAKgzP,MAAM,CAAC,EAAGhzP,EAAKre,MAAM,CAAG,GAC7Bqe,EAAO,GAEfq/U,CAAAA,CAAM,CAACvrT,EAAa,CAAGtoB,EAAQ+3D,MAAM,CACnC,CAAC28Q,WAAYlgV,CAAI,EACjBs/U,EAAWxrT,EAAcgsT,GAE7B,CAEA,OAAO,IAAI,EAYb,IAAI,CAACN,oBAAoB,CAAG,GAyD5B,IAAI,CAACW,SAAS,CAAG,SAAShzV,CAAM,EAK9B,MAJsB,UAAlB,OAAOA,GACTA,CAAAA,EAAS,CAAC+yV,WAAY/yV,CAAM,GAE9B,IAAI,CAACkW,IAAI,CAAC,KAAMlW,GACT,IAAI,EAkCb8xV,EAA8B,GAC9B,IAAI,CAACmB,yBAAyB,CAAG,SAAmC3hM,CAAO,SACzE,EAAcA,IACZwgM,EAA8BxgM,EACvB,IAAI,EAGNwgM,CACT,EAGA,IAAI,CAAC7xV,IAAI,CAAG,CAAC,aACA,YACA,eACA,KACA,YACA,mBACA,OACA,WACT,SAASyJ,CAAU,CAAEsC,CAAS,CAAEzM,CAAY,CAAE+L,CAAE,CAAE4uG,CAAS,CAAE8xB,CAAgB,CAAEjjI,CAAI,CAAEmqV,CAAQ,EAwM3F,IAEIC,EACAC,EAHAxkQ,EAAc,GAKdpvF,EAAS,CACX0yV,OAAQA,EAaRlyJ,SACEpxG,EAAc,GAEd,IAAIykQ,EAAoB,CACtBjJ,iBAAkB,GAClBp1V,eAAgB,WACd,IAAI,CAACo1V,gBAAgB,CAAG,GACxBx7P,EAAc,EAChB,CACF,EAEAllF,EAAW8oG,UAAU,CAAC,WACpB8gP,EAAaD,GACRA,EAAkBjJ,gBAAgB,EAAEmJ,GAC3C,EACF,EAeAC,aAAaC,CAAS,EACpB,GAAI,IAAI,CAACzhP,OAAO,EAAI,IAAI,CAACA,OAAO,CAAC0hP,OAAO,CACtCD,EAAYp1U,EAAQ+3D,MAAM,CAAC,CAAC,EAAG,IAAI,CAAC47B,OAAO,CAAChyG,MAAM,CAAEyzV,GACpDznV,EAAU6G,IAAI,CAAC8gV,EAAY,IAAI,CAAC3hP,OAAO,CAAC0hP,OAAO,CAACpB,YAAY,CAAEmB,IAE9DznV,EAAUw1B,MAAM,CAACiyT,QAEjB,MAAMG,EAAa,SAAU,6CAEjC,CACF,EAKA,OAHAlqV,EAAWoG,GAAG,CAAC,uBAAwBwjV,GACvC5pV,EAAWoG,GAAG,CAAC,yBAA0ByjV,GAElC/zV,EAoCP,SAAS8zV,EAAaO,CAAc,EAClC,IA6KI7zV,EAEAmV,EA/KA2+U,EAAYt0V,EAAOwyG,OAAO,CAgL9B3zF,EAAQvoB,OAAO,CAACo8V,EAAQ,SAASzsV,CAAK,CAAEoN,CAAI,EACtC,CAACsC,GAAUnV,CAAAA,EAAS+zV,SAvMApkU,CAAE,CAAElqB,CAAK,EACnC,IAAIzL,EAAOyL,EAAMzL,IAAI,CACjBgG,EAAS,CAAC,EAEd,GAAI,CAACyF,EAAM8sV,MAAM,CAAE,OAAO,KAE1B,IAAI/lP,EAAI/mG,EAAM8sV,MAAM,CAAC/iF,IAAI,CAAC7/O,GAC1B,GAAI,CAAC68E,EAAG,OAAO,KAEf,IAAK,IAAIn1G,EAAI,EAAGkmE,EAAMivC,EAAEh4G,MAAM,CAAE6C,EAAIkmE,EAAK,EAAElmE,EAAG,CAC5C,IAAIjD,EAAM4F,CAAI,CAAC3C,EAAI,EAAE,CAEjBo3G,EAAMjC,CAAC,CAACn1G,EAAE,CAEVjD,GAAOq6G,GACTzuG,CAAAA,CAAM,CAAC5L,EAAIoqB,IAAI,CAAC,CAAGiwF,CAAE,CAEzB,CACA,OAAOzuG,CACT,EAoL+CgM,EAAU6G,IAAI,GAAIpN,EAAK,GAIhE0P,CAAAA,CAHAA,EAAQ68U,EAAQvsV,EAAO,CACrBzF,OAAQqe,EAAQ+3D,MAAM,CAAC,CAAC,EAAGpqE,EAAUw1B,MAAM,GAAIxhC,GAC/Cg0V,WAAYh0V,CAAM,EAAC,EACf0zV,OAAO,CAAGjuV,CAAI,CAExB,GAhLI,CAJJ2tV,CAAAA,EAA4BD,CAD5BA,EAuLOh+U,GAAS+8U,CAAM,CAAC,KAAK,EAAIF,EAAQE,CAAM,CAAC,KAAK,CAAE,CAAClyV,OAAQ,CAAC,EAAGg0V,WAAW,CAAC,CAAC,EAvLrD,GACkBF,GAAaX,EAAcO,OAAO,GAAKI,EAAUJ,OAAO,EAC9Fr1U,EAAQglP,MAAM,CAAC8vF,EAAca,UAAU,CAAEF,EAAUE,UAAU,GAC7D,CAACb,EAAcL,cAAc,EAAI,CAAClkQ,CAAU,GAEhBklQ,CAAAA,GAAaX,CAAY,GACtDzpV,EAAWK,UAAU,CAAC,oBAAqBopV,EAAeW,GAAW1J,gBAAgB,EACnFyJ,GACFA,EAAe7+V,cAAc,EAIrC,CAEA,SAASu+V,IACP,IAAIO,EAAYt0V,EAAOwyG,OAAO,CAC1Bo4H,EAAY+oH,EAEhB,GAAIC,EACFU,EAAU9zV,MAAM,CAAGoqO,EAAUpqO,MAAM,CACnCqe,EAAQ0N,IAAI,CAAC+nU,EAAU9zV,MAAM,CAAET,GAC/BmK,EAAWK,UAAU,CAAC,eAAgB+pV,QACjC,GAAI1pH,GAAa0pH,EAAW,CACjCllQ,EAAc,GACdpvF,EAAOwyG,OAAO,CAAGo4H,EAEjB,IAAI6pH,EAAmB3oV,EAAGrT,OAAO,CAACmyO,GAElC8oH,EAASgB,4BAA4B,GAErCD,EACEtgW,IAAI,CAACwgW,GACLxgW,IAAI,CAACygW,GACLzgW,IAAI,CAAC,SAAS0gW,CAAmB,EAC/B,OAAOA,GAAuBJ,EAC5BtgW,IAAI,CAAC2gW,GACL3gW,IAAI,CAAC,SAAS4gW,CAAM,EAEdnqH,IAAc5qO,EAAOwyG,OAAO,GAC1Bo4H,IACFA,EAAUmqH,MAAM,CAAGA,EACnBl2U,EAAQ0N,IAAI,CAACq+M,EAAUpqO,MAAM,CAAET,IAEjCmK,EAAWK,UAAU,CAAC,sBAAuBqgO,EAAW0pH,GAE5D,EACJ,GAAGt7V,KAAK,CAAC,SAASm5B,CAAK,EACjBy4M,IAAc5qO,EAAOwyG,OAAO,EAC9BtoG,EAAWK,UAAU,CAAC,oBAAqBqgO,EAAW0pH,EAAWniU,EAErE,GAAGl5B,OAAO,CAAC,WAMTy6V,EAASsB,4BAA4B,CAACvzU,EACxC,EACJ,CACF,CAEA,SAASkzU,EAAmB1uV,CAAK,EAC/B,IAAIpN,EAAO,CACToN,MAAOA,EACPgvV,eAAgB,EAClB,EAEA,GAAIhvV,GACF,GAAIA,EAAMstV,UAAU,EAClB,GAAI10U,EAAQ8nE,QAAQ,CAAC1gF,EAAMstV,UAAU,EACnC16V,EAAKwa,IAAI,CAAG8gV,EAAYluV,EAAMstV,UAAU,CAAEttV,EAAMzF,MAAM,EACtD3H,EAAKmpC,MAAM,CAAG/7B,EAAMzF,MAAM,CAC1B3H,EAAKo8V,cAAc,CAAG,OACjB,CACL,IAAIC,EAAU1oV,EAAU6G,IAAI,GACxB8hV,EAAY3oV,EAAUw1B,MAAM,GAC5B0oM,EAASzkO,EAAMstV,UAAU,CAACttV,EAAMuuV,UAAU,CAAEU,EAASC,GAErDt2U,EAAQwsC,SAAS,CAACq/K,KACpB7xO,EAAKoM,GAAG,CAAGylO,EACX7xO,EAAKo8V,cAAc,CAAG,GAE1B,OACK,GAAIhvV,EAAMmvV,iBAAiB,CAChC,OAAOtpV,EACLrT,OAAO,CAACiiH,EAAUl6E,MAAM,CAACv6B,EAAMmvV,iBAAiB,GAChDjhW,IAAI,CAAC,SAASu2O,CAAM,EAMlB,OALI7rN,EAAQwsC,SAAS,CAACq/K,KACpB7xO,EAAKoM,GAAG,CAAGylO,EACX7xO,EAAKo8V,cAAc,CAAG,IAGjBp8V,CACT,GAIN,OAAOA,CACT,CAEA,SAAS+7V,EAA0B/7V,CAAI,EACrC,IAAIg8V,EAAsB,GAE1B,GAAIh8V,EAAKoN,KAAK,GAAKjG,EAAOwyG,OAAO,CAC/BqiP,EAAsB,QACjB,GAAIh8V,EAAKo8V,cAAc,CAAE,CAC9B,IAAII,EAAS7oV,EAAUvH,GAAG,GACtBylO,EAAS7xO,EAAKoM,GAAG,CAEjBylO,EACFl+N,EACEvH,GAAG,CAACylO,GACJvhO,OAAO,GAETuhO,EAASl+N,EACP6G,IAAI,CAACxa,EAAKwa,IAAI,EACd2uB,MAAM,CAACnpC,EAAKmpC,MAAM,EAClB74B,OAAO,GACPlE,GAAG,GAGHylO,IAAW2qH,GAGbR,CAAAA,EAAsB,EAAI,CAE9B,CAEA,OAAOA,CACT,CAEA,SAASC,EAAc7uV,CAAK,EAC1B,GAAIA,EAAO,CACT,IAeE5I,EACA+S,EAhBE2kV,EAASl2U,EAAQ+3D,MAAM,CAAC,CAAC,EAAG3wE,EAAMxN,OAAO,EAC7ComB,EAAQvoB,OAAO,CAACy+V,EAAQ,SAAS7gW,CAAK,CAAEU,CAAG,EACzCmgW,CAAM,CAACngW,EAAI,CAAGiqB,EAAQ8nE,QAAQ,CAACzyF,GAC3BwmH,EAAU35G,GAAG,CAAC7M,GACdwmH,EAAUl6E,MAAM,CAACtsC,EAAO,KAAM,KAAMU,EAC1C,GACA,IAAIyI,GAWFwhB,EAAQwsC,SAAS,CAAChuD,EAAW4I,EAAM5I,QAAQ,EACzCwhB,EAAQqoB,UAAU,CAAC7pC,IACrBA,CAAAA,EAAWA,EAAS4I,EAAMzF,MAAM,GAEzBqe,EAAQwsC,SAAS,CAACj7C,EAAcnK,EAAMmK,WAAW,IACtDyO,EAAQqoB,UAAU,CAAC92B,IACrBA,CAAAA,EAAcA,EAAYnK,EAAMzF,MAAM,GAEpCqe,EAAQwsC,SAAS,CAACj7C,KACpBnK,EAAMqvV,iBAAiB,CAAG/rV,EAAKgsV,OAAO,CAACnlV,GACvC/S,EAAWmvI,EAAiBp8H,KAGzB/S,GApBL,OAHIwhB,EAAQwsC,SAAS,CAAChuD,IACpB03V,CAAAA,EAAO,SAAY,CAAG13V,CAAO,EAExByO,EAAGqC,GAAG,CAAC4mV,EAChB,CACF,CA4CA,SAASZ,EAAY11S,CAAM,CAAEj+C,CAAM,EACjC,IAAImjB,EAAS,EAAE,CAYf,OAXA9E,EAAQvoB,OAAO,CAAC,CAACmoD,GAAU,IAAIt9B,KAAK,CAAC,KAAM,SAAS4kO,CAAO,CAAEluP,CAAC,EAC5D,GAAIA,IAAAA,EACF8rB,EAAOlqB,IAAI,CAACssP,OACP,CACL,IAAIyvG,EAAezvG,EAAQpwO,KAAK,CAAC,sBAC7B/gB,EAAM4gW,CAAY,CAAC,EAAE,CACzB7xU,EAAOlqB,IAAI,CAAC+G,CAAM,CAAC5L,EAAI,EACvB+uB,EAAOlqB,IAAI,CAAC+7V,CAAY,CAAC,EAAE,EAAI,IAC/B,OAAOh1V,CAAM,CAAC5L,EAAI,CAEtB,GACO+uB,EAAO04D,IAAI,CAAC,GACrB,CACF,EAAE,GA/zBN27F,GAAG,CAACy9K,GACFrB,EAAev1U,EAAQ62U,QAAQ,CAAC,WAk0BpC,SAASD,EAAiB/6O,CAAS,EAC7B43O,GAEF53O,EAAU35G,GAAG,CAAC,SAElB,CA+NA,SAAS40V,EAAc31V,CAAM,CAAE41V,CAAa,CAAEC,CAAQ,EACpD,MAAO,CACLpsV,SAAU,MACVy6P,SAAU,GACVD,SAAU,IACVj2H,WAAY,UACZpvH,KAAKlV,CAAK,CAAEokF,CAAQ,CAAEz6F,CAAI,CAAEyiW,CAAI,CAAEC,CAAW,EAI3C,IAHIC,EACAC,EACAC,EACAC,EAAgB9iW,EAAK+iW,UAAU,CAC/BC,EAAYhjW,EAAKwrH,MAAM,EAAI,GAK/B,SAASy3O,IACHJ,IACFL,EAAS5mV,MAAM,CAACinV,GAChBA,EAAyB,MAGvBF,IACFA,EAAahmV,QAAQ,GACrBgmV,EAAe,MAEbC,IAEFC,CADAA,EAAyBL,EAASU,KAAK,CAACN,EAAc,EAC/Bx+N,IAAI,CAAC,SAAS52H,CAAQ,EAC1B,KAAbA,GAAoBq1V,CAAAA,EAAyB,IAAG,CACtD,GACAD,EAAiB,KAErB,CAEA,SAAS1lS,IACP,IAAIwkS,EAAS/0V,EAAOwyG,OAAO,EAAIxyG,EAAOwyG,OAAO,CAACuiP,MAAM,CAChD13V,EAAW03V,GAAUA,EAAOyB,SAAS,CAEzC,GAAI33U,EAAQwsC,SAAS,CAAChuD,GAAW,CAC/B,IAAIymP,EAAWp6O,EAAMgG,IAAI,GACrB8iG,EAAUxyG,EAAOwyG,OAAO,CAkB5ByjP,EAVYF,EAAYjyG,EAAU,SAASjsH,CAAK,EAC9Cg+N,EAASz3F,KAAK,CAACvmI,EAAO,KAAMo+N,GAAkBnoQ,GAAU2pC,IAAI,CAAC,SAAuB52H,CAAQ,EACzE,KAAbA,GAAsBge,EAAQwsC,SAAS,CAAC8qS,IACtC,EAACA,GAAiBzsV,EAAM6vP,KAAK,CAAC48F,EAAa,GAC/CP,GAEJ,GACAU,GACF,GAIAN,CADAA,EAAexjP,EAAQ9oG,KAAK,CAAGo6O,CAAO,EACzBxlO,KAAK,CAAC,sBACnB03U,EAAaz8F,KAAK,CAAC88F,EACrB,MACEC,GAEJ,CArDA5sV,EAAM4G,GAAG,CAAC,sBAAuBigD,GACjCA,GAqDF,CACF,CACF,CAQA,SAASkmS,EAAyBnuU,CAAQ,CAAEouU,CAAW,CAAE12V,CAAM,EAC7D,MAAO,CACLyJ,SAAU,MACVw6P,SAAU,KACVrlP,KAAKlV,CAAK,CAAEokF,CAAQ,EAClB,IAAI0kB,EAAUxyG,EAAOwyG,OAAO,CACxBuiP,EAASviP,EAAQuiP,MAAM,CAE3BjnQ,EAAStyD,IAAI,CAACu5T,EAAOyB,SAAS,EAE9B,IAAI53U,EAAO0J,EAASwlE,EAAS6oQ,QAAQ,IAErC,GAAInkP,EAAQl1G,UAAU,CAAE,CACtBy3V,EAAOrkV,MAAM,CAAGhH,EAChB,IAAIpM,EAAao5V,EAAYlkP,EAAQl1G,UAAU,CAAEy3V,EAC7CviP,CAAAA,EAAQzoG,YAAY,EACtBL,CAAAA,CAAK,CAAC8oG,EAAQzoG,YAAY,CAAC,CAAGzM,CAAS,EAEzCwwF,EAASj1F,IAAI,CAAC,0BAA2ByE,GACzCwwF,EAASonF,QAAQ,GAAGr8K,IAAI,CAAC,0BAA2ByE,EACtD,CACAoM,CAAK,CAAC8oG,EAAQokP,SAAS,EAAI,WAAW,CAAG7B,EAEzCn2U,EAAKlV,EACP,CACF,CACF,CA5UA+rV,EAAiBv9V,OAAO,CAAG,CAAC,YAAY,CASxCq6V,EAAclyV,QAAQ,CAAC,eAqCvB,WACE,IAAI,CAACI,IAAI,CAAG,WAAa,MAAO,CAAC,CAAG,CACtC,GAGA8xV,EAAc7mV,SAAS,CAAC,SAAUiqV,GAClCpD,EAAc7mV,SAAS,CAAC,SAAU+qV,GAgLlCd,EAAcz9V,OAAO,CAAG,CAAC,SAAU,gBAAiB,WAAW,CA6E/Du+V,EAAyBv+V,OAAO,CAAG,CAAC,WAAY,cAAe,SAAS,CA6BxE,EAAGkC,OAAQA,OAAOykB,OAAO,C,sBC3sCvBzkB,EAAQykB,EAeN1sB,EACAykF,EACAtgF,EACA0sB,EACAqoC,EACAwrS,EACAp1U,EACAq1U,EACAC,EATAC,EAdJ,EAAC,OAAC58V,EA82BCA,OAh2BC48V,EAAkBn4U,CAdZA,EA82BCzkB,OAAOykB,OAAO,EAh2BK62U,QAAQ,CAAC,aA6oBvC72U,EAAQpgB,MAAM,CAAC,aAAc,EAAE,EAC5B4B,QAAQ,CAAC,YAzgBZ,WACE,IAAI42V,EAAsB,GACtBC,EAAa,EAEjB,KAAI,CAACz2V,IAAI,CAAG,CAAC,gBAAiB,SAAS02V,CAAa,EAKlD,OAJAF,EAAsB,GAClBC,GACFtgR,EAAOwgR,EAAeC,GAEjB,SAAS77T,CAAI,EAClB,IAAI87T,EAAM,EAAE,CAIZ,OAHAR,EAAWt7T,EAAMu7T,EAAmBO,EAAK,SAASC,CAAG,CAAEC,CAAO,EAC5D,MAAO,CAAC,WAAW7iW,IAAI,CAACwiW,EAAcI,EAAKC,GAC7C,IACOF,EAAIj7Q,IAAI,CAAC,GAClB,CACF,EAAE,CAiCF,IAAI,CAACo7Q,SAAS,CAAG,SAASA,CAAS,SACjC,EAAcA,IACZP,EAAaO,EACN,IAAI,EAEJP,CAEX,EAiDA,IAAI,CAACQ,gBAAgB,CAAG,SAAS5iW,CAAQ,EAYvC,OAXKmiW,IACCj0U,EAAQluB,IACVA,CAAAA,EAAW,CAAC6iW,aAAc7iW,CAAQ,GAGpC8iW,EAAcP,EAAaviW,EAASuiW,WAAW,EAC/CO,EAAcC,EAAc/iW,EAASgjW,gBAAgB,EACrDF,EAAcR,EAAetiW,EAASgjW,gBAAgB,EACtDF,EAAcR,EAAetiW,EAAS6iW,YAAY,GAG7C,IAAI,EAiCb,IAAI,CAACI,aAAa,CAAG,SAAStzU,CAAK,EAIjC,OAHKwyU,GACHrgR,EAAOohR,EAAYC,EAAWxzU,EAAO,KAEhC,IAAI,EAObtyB,EAAO0sB,EAAQ1sB,IAAI,CACnBykF,EAAS/3D,EAAQ+3D,MAAM,CACvBtgF,EAAUuoB,EAAQvoB,OAAO,CACzB0sB,EAAUnE,EAAQmE,OAAO,CACzBqoC,EAAYxsC,EAAQwsC,SAAS,CAC7BwrS,EAAYh4U,EAAQg4U,SAAS,CAC7Bp1U,EAAO5C,EAAQ4C,IAAI,CAEnBq1U,EAwLA,SAAwBt7T,CAAI,CAAE6gH,CAAO,EAC/B7gH,MAAAA,EACFA,EAAO,GACkB,UAAhB,OAAOA,GAChBA,CAAAA,EAAO,GAAKA,CAAG,EAGjB,IA2BMizS,EA3BFypB,EAAmBC,EAAoB38T,GAC3C,GAAI,CAAC08T,EAAkB,MAAO,GAG9B,IAAIE,EAAe,EACnB,EAAG,CACD,GAAIA,IAAAA,EACF,MAAMpB,EAAgB,SAAU,wDAElCoB,CAAAA,IAIAF,EAAmBC,EADnB38T,EAAO08T,EAAiBx9E,SAAS,CAEnC,OAASl/O,IAAS08T,EAAiBx9E,SAAS,CAE5C,QAAIjkK,EAAOyhP,EAAiBp9E,UAAU,CAC/BrkK,GAAM,CACX,OAAQA,EAAKp7B,QAAQ,EACnB,KAAK,EACHghE,EAAQxtI,KAAK,CAAC4nG,EAAK3S,QAAQ,CAACt4F,WAAW,GAAI6sV,SAgChC5zU,CAAK,EAEtB,IAAK,IADD/pB,EAAM,CAAC,EACF7C,EAAI,EAAGo8K,EAAKxvJ,EAAMzvB,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAAK,CAC9C,IAAIxE,EAAOoxB,CAAK,CAAC5sB,EAAE,CACnB6C,CAAG,CAACrH,EAAK2rB,IAAI,CAAC,CAAG3rB,EAAKa,KAAK,CAE7B,OAAOwG,CACT,EAvC6D+7G,EAAKhB,UAAU,GACpE,KACF,MAAK,EACH4mC,EAAQ4yH,KAAK,CAACx4J,EAAK1+G,WAAW,CAElC,CAGA,GAAI,CAAE02U,CAAAA,EAAWh4N,EAAKqkK,UAAU,IACR,IAAlBrkK,EAAKp7B,QAAQ,EACfghE,EAAQ5oJ,GAAG,CAACgjH,EAAK3S,QAAQ,CAACt4F,WAAW,IAGnC,CADJijU,CAAAA,EAAW6pB,EAAiB,cAAe7hP,EAAI,GAE7C,KAEE,MAFKg4N,GAEDh4N,CADJA,EAAO6hP,EAAiB,aAAc7hP,EAAI,IAC7ByhP,GACbzpB,EAAW6pB,EAAiB,cAAe7hP,GACrB,IAAlBA,EAAKp7B,QAAQ,EACfghE,EAAQ5oJ,GAAG,CAACgjH,EAAK3S,QAAQ,CAACt4F,WAAW,IAK7CirG,EAAOg4N,CACT,CAEA,KAAQh4N,EAAOyhP,EAAiBp9E,UAAU,EACxCo9E,EAAiBpgU,WAAW,CAAC2+E,EAEjC,EAhPAsgP,EA4RA,SAAgCO,CAAG,CAAEiB,CAAY,EAC/C,IAAIC,EAAuB,GACvBzlM,EAAM5gK,EAAKmlW,EAAKA,EAAI79V,IAAI,EAC5B,MAAO,CACLoV,MAAMgrB,CAAG,CAAEpV,CAAK,EACdoV,EAAMg9T,EAAUh9T,GACZ,CAAC2+T,GAAwBC,CAAe,CAAC5+T,EAAI,EAC/C2+T,CAAAA,EAAuB3+T,CAAE,EAEtB2+T,GAAwBpB,CAAuB,IAAvBA,CAAa,CAACv9T,EAAI,GAC7Ck5H,EAAI,KACJA,EAAIl5H,GACJvjC,EAAQmuB,EAAO,SAASvwB,CAAK,CAAEU,CAAG,EAChC,IAAI8jW,EAAO7B,EAAUjiW,GACjB4iW,EAAU,WAAkBkB,QAAAA,GAAoBA,eAAAA,CAC3B,MAArBV,CAAU,CAACU,EAAK,EACjBC,CAAAA,CAAmB,IAAnBA,CAAQ,CAACD,EAAK,EAAaH,EAAarkW,EAAOsjW,EAAO,IACvDzkM,EAAI,KACJA,EAAIn+J,GACJm+J,EAAI,MACJA,EAAI6lM,EAAe1kW,IACnB6+J,EAAI,KAER,GACAA,EAAI,KAER,EACAt/J,IAAIomC,CAAG,EACLA,EAAMg9T,EAAUh9T,GACX2+T,GAAwBpB,CAAuB,IAAvBA,CAAa,CAACv9T,EAAI,EAAag+T,CAAsB,IAAtBA,CAAY,CAACh+T,EAAI,GAC3Ek5H,EAAI,MACJA,EAAIl5H,GACJk5H,EAAI,MAGFl5H,GAAO2+T,GACTA,CAAAA,EAAuB,EAAI,CAE/B,EACAvpF,MAAMA,CAAK,EACJupF,GACHzlM,EAAI6lM,EAAe3pF,GAEvB,CACF,CACF,EAtUA,IAAI4pF,EAAwB,kCAG5BC,EAA0B,eAStBjB,EAAekB,EAAY,0BAI3BC,EAA8BD,EAAY,kDAE1CE,EAA+BF,EAAY,SAE3CG,EAAyBtiR,EAAO,CAAC,EACGqiR,EACAD,GAGpCG,EAAgBviR,EAAO,CAAC,EAAGoiR,EAA6BD,EAAY,wKAKpEK,EAAiBxiR,EAAO,CAAC,EAAGqiR,EAA8BF,EAAY,8JAQtE1B,EAAc0B,EAAY,0NAK1BN,EAAkBM,EAAY,gBAE9B3B,EAAgBxgR,EAAO,CAAC,EACOihR,EACAsB,EACAC,EACAF,GAG/BP,EAAWI,EAAY,yDAEvBM,EAAYN,EAAY,oTAQxBO,EAAWP,EAAY,iuCAcwD,IAE/Ef,EAAaphR,EAAO,CAAC,EACO+hR,EACAW,EACAD,GAEhC,SAASN,EAAY7mP,CAAG,CAAEqnP,CAAa,EACrC,OAAOtB,EAAW/lP,EAAI/wF,KAAK,CAAC,KAAMo4U,EACpC,CAEA,SAAStB,EAAWlnU,CAAK,CAAEwoU,CAAa,EACtC,IACI1hW,EADAy6C,EAAM,CAAC,EAEX,IAAKz6C,EAAI,EAAGA,EAAIk5B,EAAM/7B,MAAM,CAAE6C,IAC5By6C,CAAG,CAACinT,EAAgB1C,EAAU9lU,CAAK,CAACl5B,EAAE,EAAIk5B,CAAK,CAACl5B,EAAE,CAAC,CAAG,GAExD,OAAOy6C,CACT,CAEA,SAASslT,EAAc4B,CAAW,CAAEC,CAAW,EACzCA,GAAeA,EAAYzkW,MAAM,EACnC4hF,EAAO4iR,EAAavB,EAAWwB,GAEnC,CAQA,IAAItB,EAAoE,SAAU/9V,CAAM,CAAEjF,CAAQ,EAEhG,GAAIA,GAAYA,EAASg8K,cAAc,CACrCuoL,EAAgBvkW,EAASg8K,cAAc,CAACkvK,kBAAkB,CAAC,cAE3D,MAAM2W,EAAgB,UAAW,uCAEnC,IANI0C,EAMAxB,EAAmB,CAACwB,EAAc1vP,eAAe,EAAI0vP,EAAcC,kBAAkB,EAAC,EAAG/yU,aAAa,CAAC,cAI3G,CADAsxU,EAAiBx9E,SAAS,CAAG,uDACxBw9E,EAAiBtxU,aAAa,CAAC,QAKlC,CADAsxU,EAAiBx9E,SAAS,CAAG,mEACzBw9E,EAAiBtxU,aAAa,CAAC,YAyBrC,SAAuC4U,CAAI,EAGzCA,EAAO,oBAAsBA,EAC7B,GAAI,CACF,IAAI2uE,EAAO,IAAI/vG,EAAOw/V,SAAS,GAAGC,eAAe,CAACr+T,EAAM,aAAa2uE,IAAI,CAEzE,OADAA,EAAK2wK,UAAU,CAAC9/Q,MAAM,GACfmvG,CACT,CAAE,MAAOptE,EAAG,CACV,MACF,CACF,EAEA,SAA2CvB,CAAI,EAE7C,OADA08T,EAAiBx9E,SAAS,CAAGl/O,EACtB08T,CACT,EAlCA,SAAiC18T,CAAI,EAGnCA,EAAO,oBAAsBA,EAC7B,GAAI,CACFA,EAAOs+T,UAAUt+T,EACnB,CAAE,MAAOuB,EAAG,CACV,MACF,CACA,IAAIkpT,EAAM,IAAI7rV,EAAO20Q,cAAc,CACnCk3E,EAAI8T,YAAY,CAAG,WACnB9T,EAAItzT,IAAI,CAAC,MAAO,gCAAkC6I,EAAM,IACxDyqT,EAAI51T,IAAI,CAAC,MACT,IAAI85E,EAAO87O,EAAIplV,QAAQ,CAACspG,IAAI,CAE5B,OADAA,EAAK2wK,UAAU,CAAC9/Q,MAAM,GACfmvG,CACT,CAmBF,EAAG/vG,EAAQA,EAAOjF,QAAQ,EA0F1B,SAASyjW,EAAe1kW,CAAK,EAC3B,OAAOA,EACLiV,OAAO,CAAC,KAAM,SACdA,OAAO,CAAC0vV,EAAuB,SAAS3kW,CAAK,EAG3C,MAAO,KAAS,EAAC8lW,EAFF5gO,UAAU,CAAC,GAEJ,OAAU,KAAU6gO,CAAAA,EAD1B7gO,UAAU,CAAC,GACqB,OAAU,OAAW,GACvE,GACAjwH,OAAO,CAAC2vV,EAAyB,SAAS5kW,CAAK,EAC7C,MAAO,KAAOA,EAAMklI,UAAU,CAAC,GAAK,GACtC,GACAjwH,OAAO,CAAC,KAAM,QACdA,OAAO,CAAC,KAAM,OAClB,CA2DA,SAASmvV,EAAiBv/I,CAAQ,CAAEtiG,CAAI,EAEtC,IAAIg4N,EAAWh4N,CAAI,CAACsiG,EAAS,CAC7B,GAAI01H,GAAYP,KAAKv6U,SAAS,CAACwD,QAAQ,CAACnF,IAAI,CAACykH,EAAMg4N,GACjD,MAAMuoB,EAAgB,SAAU,gEAAiEvgP,EAAK0wL,SAAS,EAAI1wL,EAAKyjP,SAAS,EAEnI,OAAOzrB,CACT,CACF,GAaGtjP,IAAI,CAAC,CAAE4kQ,eAAgB,OAAQ,GAkIlClxU,EAAQpgB,MAAM,CAAC,cAAcxH,MAAM,CAAC,QAAS,CAAC,YAAa,SAASwnR,CAAS,EAC3E,IAAI07E,EAAmB,8HACnBC,EAAgB,YAEhBC,EAAcx7U,EAAQ62U,QAAQ,CAAC,SAC/BrqS,EAAYxsC,EAAQwsC,SAAS,CAC7BnkB,EAAaroB,EAAQqoB,UAAU,CAC/B09O,EAAW/lQ,EAAQ+lQ,QAAQ,CAC3Bj+L,EAAW9nE,EAAQ8nE,QAAQ,CAE/B,OAAO,SAAS0pC,CAAI,CAAE/7H,CAAM,CAAEmhH,CAAU,EACtC,GAAI4a,MAAAA,GAAgBA,KAAAA,EAAa,OAAOA,EACxC,GAAI,CAAC1pC,EAAS0pC,GAAO,MAAMgqO,EAAY,YAAa,oCAAqChqO,GAYzF,IAVA,IAKI16G,EAGA1Q,EACApN,EATAyiW,EACFpzT,EAAWuuE,GAAcA,EACzBmvK,EAASnvK,GAAc,WAAgC,OAAOA,CAAW,EACzE,WAAqC,MAAO,CAAC,CAAE,EAG7C8kP,EAAMlqO,EACN70F,EAAO,EAAE,CAGL7lB,EAAQ4kV,EAAI5kV,KAAK,CAACwkV,IAAoB,CAC5C,IAAIK,EAAY,GAEhB,GAAI7kV,KAAahe,IAAbge,CAAK,CAAC,EAAE,CAEV1Q,EADAu1V,EAAY7kV,CAAK,CAAC,EAAE,CAEpB9d,EAAI8d,EAAMte,KAAK,KACV,CACL,IAAM6hI,EAASvjH,IAAAA,EAAMte,KAAK,CAAS,EAAI,EAEvC4N,EADAu1V,EAAY7kV,CAAK,CAAC,EAAE,CAAC+c,SAAS,CAACwmG,GAE/BrhI,EAAI8d,EAAMte,KAAK,CAAG6hI,CACpB,CAEKvjH,CAAK,CAAC,EAAE,EAAKA,CAAK,CAAC,EAAE,EACxB1Q,CAAAA,EAAM,CAAC0Q,CAAK,CAAC,EAAE,CAAG,UAAY,WAAa1Q,CAAE,EAG/Cw1V,EAAQF,EAAIl0F,MAAM,CAAC,EAAGxuQ,IACtB6gV,SAaezzU,CAAG,CAAEorH,CAAI,EAExB,IADIz7H,EACA8lW,EAAiBJ,EAAar1V,GAGlC,IAAKrQ,KAFL4mC,EAAK/hC,IAAI,CAAC,OAEEihW,EACVl/T,EAAK/hC,IAAI,CAAC7E,EAAM,KAAO8lW,CAAc,CAAC9lW,EAAI,CAAG,OAG3Cy2D,EAAU/2D,IAAa,WAAYomW,GACrCl/T,EAAK/hC,IAAI,CAAC,WACAnF,EACA,MAEZknC,EAAK/hC,IAAI,CAAC,SACAwL,EAAIkE,OAAO,CAAC,KAAM,UAClB,MACVsxV,EAAQpqO,GACR70F,EAAK/hC,IAAI,CAAC,OACZ,EAhCUwL,EAAKu1V,EAAUrxV,OAAO,CAACixV,EAAe,KAC9CG,EAAMA,EAAI7nU,SAAS,CAAC76B,EAAI2iW,EAAUxlW,MAAM,CAC1C,CAEA,OADAylW,EAAQF,GACD97E,EAAUjjP,EAAK6gD,IAAI,CAAC,KAE3B,SAASo+Q,EAAQpqO,CAAI,MA7LnBinO,EA8LKjnO,GAGL70F,EAAK/hC,IAAI,EA/Lb2kU,EAFIk5B,EAAM,EAAE,CACyB71U,GAC9BwtP,KAAK,CA+Le5+I,GA9LpBinO,EAAIj7Q,IAAI,CAAC,KA+Ld,CAsBF,CACF,EAAE,C,kBC52BF,EAAC,OAAD,EAAC,OAAD,EAAC,OAAD,EAAC,QAAC,IACF,aACA,IAsUIs+Q,EAUAC,EAou6BAC,EApj7BAC,EAAsB,CACxBtoP,QAAS,IACX,EASIuoP,EAAe,CACjBC,eAAgB,CAClB,EAsCA,SAASC,EAAsBC,CAAQ,EACrC,OAAOx7F,EAASw7F,IAAaA,EAAW,CAC1C,CAgCA,SAASC,EAAO18V,CAAM,CAAE28V,CAAgB,EACtCA,EAAmBA,GAAoB/7L,MAEvC,IAAIp6J,EAAM,uCAENo2V,EAAY,OADJp2V,EAAIkE,OAAO,CAAC,IAAK,OAAS,YACJ,KAElC,OAAO,WACL,IAQImyV,EACAzjW,EATA82D,EAAOyC,SAAS,CAAC,EAAE,CACnB/zD,EAAW+zD,SAAS,CAAC,EAAE,CACvB9pB,EAAU,IAAO7oC,CAAAA,EAASA,EAAS,IAAM,IAAMkwD,EAAO,KAEtD4sS,EAAeC,GAAUpqS,UAAW,GAAG12D,GAAG,CAAC,SAAS+gW,CAAG,EACzD,OAAOC,GAAcD,EAAKV,EAAaC,cAAc,CACvD,GAsBA,IAAKnjW,GAZMwF,EAAS8L,OAAO,CAAC,WAAY,SAASwM,CAAK,EACpD,IAAIte,EAAQ,CAACse,EAAM7e,KAAK,CAAC,EAAG,WAE5B,EAAYykW,EAAavmW,MAAM,CACtBumW,CAAY,CAAClkW,EAAM,CAAC8R,OAAO,CAACkyV,EAAW,IAGzC1lV,CACT,GAEW,MAAO1Q,CAAE,EAAKxG,CAAAA,EAASA,EAAS,IAAM,IAAMkwD,EAElD92D,EAAI,EAAGyjW,EAAc,IAAKzjW,EAAI0jW,EAAavmW,MAAM,CAAE6C,IAAKyjW,EAAc,IACzEh0T,GAAWg0T,EAAc,IAAMzjW,EAAI,IAAM4uQ,mBAAmB80F,CAAY,CAAC1jW,EAAE,EAG7E,OAAO,IAAIujW,EAAiB9zT,EAC9B,CACF,CAgHA,GAAIltC,EAAOjF,QAAQ,CAACwmW,YAAY,CAC9B,MAAM,MAAU,uCAkBlB,IAAIC,EAAsB,qBAItBC,EAA0B,WAG1B94U,EAAiB3nB,OAAOzH,SAAS,CAACovB,cAAc,CAiBhD8zU,EAAY,SAASp4S,CAAM,EAAG,OAAOkoC,EAASloC,GAAUA,EAAOjzC,WAAW,GAAKizC,CAAO,EAiBtFq9S,EAAY,SAASr9S,CAAM,EAAG,OAAOkoC,EAASloC,GAAUA,EAAOulC,WAAW,GAAKvlC,CAAO,EA4BtF3nD,EAAQ,EAAE,CAACA,KAAK,CAChB4C,EAAS,EAAE,CAACA,MAAM,CAClBD,EAAO,EAAE,CAACA,IAAI,CACd4pB,EAAWjoB,OAAOzH,SAAS,CAAC0vB,QAAQ,CACpC04U,EAAiB3gW,OAAO2gW,cAAc,CACtCC,EAAWb,EAAO,MAGlBt8U,EAAUzkB,EAAOykB,OAAO,EAAKzkB,CAAAA,EAAOykB,OAAO,CAAG,CAAC,GAE/Co9U,EAAM,CAAEzpP,QAAS,CAAE,EASvB,SAAS0pP,EAAY5pT,CAAG,EAGtB,GAAIA,MAAAA,GAAe6pT,EAAS7pT,GAAM,MAAO,GAMzC,GAAItvB,EAAQsvB,IAAQq0C,EAASr0C,IAASqoT,GAAUroT,aAAeqoT,EAAS,MAAO,GAI/E,IAAI3lW,EAAS,WAAYoG,OAAOk3C,IAAQA,EAAIt9C,MAAM,CAIlD,OAAO0qQ,EAAS1qQ,IACbA,CAAAA,GAAU,GAAOA,CAAAA,EAAS,KAAMs9C,GAAOA,aAAez7C,KAAI,GAAM,mBAAOy7C,EAAI9jB,IAAI,CAEpF,CAqCA,SAASl4B,EAAQg8C,CAAG,CAAEu0Q,CAAQ,CAAEv8I,CAAO,EAGrC,GAAIh4H,GACF,GAAIpL,EAAWoL,GACb,IAAK19C,KAAO09C,EACE,cAAR19C,GAAuBA,WAAAA,GAAoBA,SAAAA,GAAkB09C,EAAIvvB,cAAc,CAACnuB,IAClFiyT,EAAS70T,IAAI,CAACs4K,EAASh4H,CAAG,CAAC19C,EAAI,CAAEA,EAAK09C,QAGrC,GAAItvB,EAAQsvB,IAAQ4pT,EAAY5pT,GAAM,CAC3C,IAVA19C,EACAI,EASIonW,EAAc,iBAAO9pT,EACzB,IAAK19C,EAAM,EAAGI,EAASs9C,EAAIt9C,MAAM,CAAEJ,EAAMI,EAAQJ,IAC3CwnW,CAAAA,GAAexnW,KAAO09C,CAAE,GAC1Bu0Q,EAAS70T,IAAI,CAACs4K,EAASh4H,CAAG,CAAC19C,EAAI,CAAEA,EAAK09C,EAG5C,MAAO,GAAIA,EAAIh8C,OAAO,EAAIg8C,EAAIh8C,OAAO,GAAKA,EACtCg8C,EAAIh8C,OAAO,CAACuwT,EAAUv8I,EAASh4H,QAC5B,GAAI+pT,EAAc/pT,GAEvB,IAAK19C,KAAO09C,EACVu0Q,EAAS70T,IAAI,CAACs4K,EAASh4H,CAAG,CAAC19C,EAAI,CAAEA,EAAK09C,QAEnC,GAAI,mBAAOA,EAAIvvB,cAAc,CAElC,IAAKnuB,KAAO09C,EACNA,EAAIvvB,cAAc,CAACnuB,IACrBiyT,EAAS70T,IAAI,CAACs4K,EAASh4H,CAAG,CAAC19C,EAAI,CAAEA,EAAK09C,QAK1C,IAAK19C,KAAO09C,EACNvvB,EAAe/wB,IAAI,CAACsgD,EAAK19C,IAC3BiyT,EAAS70T,IAAI,CAACs4K,EAASh4H,CAAG,CAAC19C,EAAI,CAAEA,EAAK09C,GAK9C,OAAOA,CACT,CAEA,SAASgqT,EAAchqT,CAAG,CAAEu0Q,CAAQ,CAAEv8I,CAAO,EAE3C,IAAK,IADD9vK,EAAOY,OAAOZ,IAAI,CAAC83C,GAAKghG,IAAI,GACvBz7I,EAAI,EAAGA,EAAI2C,EAAKxF,MAAM,CAAE6C,IAC/BgvT,EAAS70T,IAAI,CAACs4K,EAASh4H,CAAG,CAAC93C,CAAI,CAAC3C,EAAE,CAAC,CAAE2C,CAAI,CAAC3C,EAAE,EAE9C,OAAO2C,CACT,CAQA,SAAS+hW,EAAcC,CAAU,EAC/B,OAAO,SAAStoW,CAAK,CAAEU,CAAG,EAAG4nW,EAAW5nW,EAAKV,EAAO,CACtD,CAYA,SAASuoW,IACP,MAAO,EAAER,EAAIzpP,OAAO,CAStB,SAASkqP,EAAWpqT,CAAG,CAAE6oC,CAAC,EACpBA,EACF7oC,EAAIqqT,SAAS,CAAGxhR,EAEhB,OAAO7oC,EAAIqqT,SAAS,CAKxB,SAASC,EAAWlW,CAAG,CAAEmW,CAAI,CAAEriM,CAAI,EAGjC,IAAK,IAFDr/E,EAAIurQ,EAAIiW,SAAS,CAEZ9kW,EAAI,EAAGo8K,EAAK4oL,EAAK7nW,MAAM,CAAE6C,EAAIo8K,EAAI,EAAEp8K,EAAG,CAC7C,IAAIy6C,EAAMuqT,CAAI,CAAChlW,EAAE,CACjB,GAAI,EAAUy6C,IAASpL,EAAWoL,GAElC,IAAK,IADD93C,EAAOY,OAAOZ,IAAI,CAAC83C,GACdp7C,EAAI,EAAG4lW,EAAKtiW,EAAKxF,MAAM,CAAEkC,EAAI4lW,EAAI5lW,IAAK,CAC7C,IAAItC,EAAM4F,CAAI,CAACtD,EAAE,CACb+oL,EAAM3tI,CAAG,CAAC19C,EAAI,CAEd4lK,GAAQoqH,EAAS3kG,GACf/8F,EAAO+8F,GACTymK,CAAG,CAAC9xV,EAAI,CAAG,IAAIkW,KAAKm1K,EAAIs1K,OAAO,IACtBwH,EAAS98K,GAClBymK,CAAG,CAAC9xV,EAAI,CAAG,IAAIooW,OAAO/8K,GACbA,EAAIn8E,QAAQ,CACrB4iP,CAAG,CAAC9xV,EAAI,CAAGqrL,EAAIinH,SAAS,CAAC,IAChB+1D,GAAUh9K,GACnBymK,CAAG,CAAC9xV,EAAI,CAAGqrL,EAAIpoD,KAAK,GAER,cAARjjI,IACGgwR,EAAS8hE,CAAG,CAAC9xV,EAAI,GAAG8xV,CAAAA,CAAG,CAAC9xV,EAAI,CAAGouB,EAAQi9J,GAAO,EAAE,CAAG,CAAC,GACzD28K,EAAWlW,CAAG,CAAC9xV,EAAI,CAAE,CAACqrL,EAAI,CAAE,KAIhCymK,CAAG,CAAC9xV,EAAI,CAAGqrL,CAEf,CACF,CAGA,OADAy8K,EAAWhW,EAAKvrQ,GACTurQ,CACT,CAoBA,SAAS9vQ,EAAO8vQ,CAAG,EACjB,OAAOkW,EAAWlW,EAAK5vV,EAAM9E,IAAI,CAACo/D,UAAW,GAAI,GACnD,CAyCA,SAAS8rS,EAAMhrP,CAAG,EAChB,OAAO5oF,SAAS4oF,EAAK,GACvB,CAEA,IAAIirP,EAAchhT,OAAOvT,KAAK,EAAI,SAAqBynO,CAAG,EAExD,OAAOA,GAAQA,CACjB,EAGA,SAASmiF,EAAQx7U,CAAM,CAAEy7U,CAAK,EAC5B,OAAO77Q,EAAOx7E,OAAOmzD,MAAM,CAACv3C,GAASy7U,EACvC,CAkBA,SAAShxU,IAAQ,CAgCjB,SAAS27U,EAAShZ,CAAC,EAAG,OAAOA,CAAE,CAI/B,SAASiZ,EAAQnpW,CAAK,EAAG,OAAO,WAAqB,OAAOA,CAAM,CAAE,CAEpE,SAASopW,EAAkBhrT,CAAG,EAC5B,OAAOpL,EAAWoL,EAAIjvB,QAAQ,GAAKivB,EAAIjvB,QAAQ,GAAKA,CACtD,CAeA,SAASgwU,EAAYn/V,CAAK,EAAG,OAAO,KAAiB,IAAVA,CAAsB,CAejE,SAASm3D,EAAUn3D,CAAK,EAAG,OAAO,KAAiB,IAAVA,CAAsB,CAgB/D,SAAS0wR,EAAS1wR,CAAK,EAErB,OAAOA,OAAAA,GAAkB,iBAAOA,CAClC,CAQA,SAASmoW,EAAcnoW,CAAK,EAC1B,OAAOA,OAAAA,GAAkB,iBAAOA,GAAsB,CAAC6nW,EAAe7nW,EACxE,CAeA,SAASyyF,EAASzyF,CAAK,EAAG,MAAO,iBAAOA,CAAmB,CAqB3D,SAASwrQ,EAASxrQ,CAAK,EAAG,MAAO,iBAAOA,CAAmB,CAe3D,SAASgvF,EAAOhvF,CAAK,EACnB,MAAOmvB,kBAAAA,EAASrxB,IAAI,CAACkC,EACvB,CAvJAutB,EAAKvpB,OAAO,CAAG,EAAE,CAgCjBklW,EAASllW,OAAO,CAAG,EAAE,CAsIrB,IAAI8qB,EAAUnsB,MAAMmsB,OAAO,CAU3B,SAASu6U,EAAQrpW,CAAK,EAEpB,OADUmvB,EAASrxB,IAAI,CAACkC,IAEtB,IAAK,iBACL,IAAK,qBACL,IAAK,wBAFkB,MAAO,EAG9B,SAAS,OAAOA,aAAiBmrK,KACnC,CACF,CAcA,SAASn4H,EAAWhzC,CAAK,EAAG,MAAO,mBAAOA,CAAqB,CAU/D,SAAS6oW,EAAS7oW,CAAK,EACrB,MAAOmvB,oBAAAA,EAASrxB,IAAI,CAACkC,EACvB,CAUA,SAASioW,EAAS7pT,CAAG,EACnB,OAAOA,GAAOA,EAAIl4C,MAAM,GAAKk4C,CAC/B,CAGA,SAASkrT,EAAQlrT,CAAG,EAClB,OAAOA,GAAOA,EAAI0gE,UAAU,EAAI1gE,EAAI3tB,MAAM,CAmB5C,SAAS84U,EAAUvpW,CAAK,EACtB,MAAO,kBAAOA,CAChB,CAGA,SAASwpW,EAAcprT,CAAG,EACxB,OAAOA,GAAOpL,EAAWoL,EAAIn+C,IAAI,CACnC,CAGA,IAAIwpW,EAAqB,yFAUrBj8S,EAAO,SAASxtD,CAAK,EACvB,OAAOyyF,EAASzyF,GAASA,EAAMwtD,IAAI,GAAKxtD,CAC1C,EAKI0pW,GAAkB,SAASzrT,CAAC,EAC9B,OAAOA,EACJhpC,OAAO,CAAC,8BAA+B,QAEvCA,OAAO,CAAC,QAAS,QACtB,EAeA,SAAS8zV,GAAUxmP,CAAI,EACrB,MAAO,CAAC,CAAEA,CAAAA,GACPA,CAAAA,EAAK3S,QAAQ,EACV2S,EAAKrmD,IAAI,EAAIqmD,EAAKpjH,IAAI,EAAIojH,EAAKvgH,IAAI,EAC3C,CAiBA,SAAS2nW,GAAUjnW,CAAO,EACxB,OAAOigW,EAAUjgW,EAAQktG,QAAQ,EAAKltG,CAAO,CAAC,EAAE,EAAIA,CAAO,CAAC,EAAE,CAACktG,QAAQ,CACzE,CAEA,SAAS9tF,GAASq3C,CAAK,CAAE/a,CAAG,EAC1B,OAAOz7C,KAAAA,MAAMlD,SAAS,CAAC8D,OAAO,CAACzF,IAAI,CAACq7D,EAAO/a,EAC7C,CAEA,SAASwrT,GAAYzwS,CAAK,CAAEn5D,CAAK,EAC/B,IAAImD,EAAQg2D,EAAM51D,OAAO,CAACvD,GAI1B,OAHImD,GAAS,GACXg2D,EAAM3zD,MAAM,CAACrC,EAAO,GAEfA,CACT,CAmEA,SAASk1B,GAAKuqH,CAAM,CAAEinN,CAAW,CAAE7C,CAAQ,EACzC,IAAI8C,EAAc,EAAE,CAChBC,EAAY,EAAE,CAGlB,GAFA/C,EAAWD,EAAsBC,GAAYA,EAAWtmT,IAEpDmpT,EAAa,CACf,GAAIG,GA/IUx+F,EAASxrQ,EAAMc,MAAM,GAAK2oW,EAAmBhpW,IAAI,CAAC0uB,EAASrxB,IAAI,CA+I5D+rW,KA3IW,yBAAvB16U,EAASrxB,IAAI,CA2I6B+rW,GAC7C,MAAM/B,EAAS,OAAQ,yDAEzB,GAAIllN,IAAWinN,EACb,MAAM/B,EAAS,MAAO,qDAgBxB,OAZIh5U,EAAQ+6U,GACVA,EAAY/oW,MAAM,CAAG,EAErBsB,EAAQynW,EAAa,SAAS7pW,CAAK,CAAEU,CAAG,EAC1B,cAARA,GACF,OAAOmpW,CAAW,CAACnpW,EAAI,GAK7BopW,EAAYvkW,IAAI,CAACq9I,GACjBmnN,EAAUxkW,IAAI,CAACskW,GACRI,EAAYrnN,EAAQinN,EAAa7C,EAC1C,CAEA,OAAOkD,EAAYtnN,EAAQokN,GAE3B,SAASiD,EAAYrnN,CAAM,CAAEinN,CAAW,CAAE7C,CAAQ,EAEhD,GAAIA,EAAAA,EAAW,EACb,MAAO,MAET,IACItmW,EADAumF,EAAI4iR,EAAYpB,SAAS,CAE7B,GAAI35U,EAAQ8zH,GACV,IAAK,IAAIj/I,EAAI,EAAGo8K,EAAKn9B,EAAO9hJ,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAC1CkmW,EAAYtkW,IAAI,CAAC2kW,EAAYtnN,CAAM,CAACj/I,EAAE,CAAEqjW,SAErC,GAAImB,EAAcvlN,GAEvB,IAAKliJ,KAAOkiJ,EACVinN,CAAW,CAACnpW,EAAI,CAAGwpW,EAAYtnN,CAAM,CAACliJ,EAAI,CAAEsmW,QAEzC,GAAIpkN,GAAU,mBAAOA,EAAO/zH,cAAc,CAE/C,IAAKnuB,KAAOkiJ,EACNA,EAAO/zH,cAAc,CAACnuB,IACxBmpW,CAAAA,CAAW,CAACnpW,EAAI,CAAGwpW,EAAYtnN,CAAM,CAACliJ,EAAI,CAAEsmW,EAAQ,OAKxD,IAAKtmW,KAAOkiJ,EACN/zH,EAAe/wB,IAAI,CAAC8kJ,EAAQliJ,IAC9BmpW,CAAAA,CAAW,CAACnpW,EAAI,CAAGwpW,EAAYtnN,CAAM,CAACliJ,EAAI,CAAEsmW,EAAQ,EAK1D,OADAwB,EAAWqB,EAAa5iR,GACjB4iR,CACT,CAEA,SAASK,EAAYtnN,CAAM,CAAEokN,CAAQ,EAEnC,GAAI,CAACt2E,EAAS9tI,GACZ,OAAOA,EAIT,IAAIz/I,EAAQ2mW,EAAYvmW,OAAO,CAACq/I,GAChC,GAAIz/I,KAAAA,EACF,OAAO4mW,CAAS,CAAC5mW,EAAM,CAGzB,GAAI8kW,EAASrlN,IAAW0mN,EAAQ1mN,GAC9B,MAAMklN,EAAS,OACb,4EAGJ,IAAIqC,EAAe,GACfN,EAAcO,SAeFxnN,CAAM,EACtB,OAAQzzH,EAASrxB,IAAI,CAAC8kJ,IACpB,IAAK,qBACL,IAAK,sBACL,IAAK,sBACL,IAAK,wBACL,IAAK,wBACL,IAAK,sBACL,IAAK,6BACL,IAAK,uBACL,IAAK,uBACH,OAAO,IAAIA,EAAO1+I,WAAW,CAACgmW,EAAYtnN,EAAOo4G,MAAM,EAAGp4G,EAAOynN,UAAU,CAAEznN,EAAO9hJ,MAAM,CAE5F,KAAK,uBACH,OAAO8hJ,EAAOhgJ,KAAK,CAAC,EAEtB,KAAK,mBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACH,OAAO,IAAIggJ,EAAO1+I,WAAW,CAAC0+I,EAAOy+M,OAAO,GAE9C,KAAK,kBACH,IAAIiJ,EAAK,IAAIxB,OAAOlmN,EAAOA,MAAM,CAAEA,EAAOjnC,KAAK,EAE/C,OADA2uP,EAAGjgN,SAAS,CAAGzH,EAAOyH,SAAS,CACxBigN,CAET,KAAK,gBACH,OAAO,IAAI1nN,EAAO1+I,WAAW,CAAC,CAAC0+I,EAAO,CAAE,CAAChiI,KAAMgiI,EAAOhiI,IAAI,EAC9D,CAEA,GAAIoyB,EAAW4vG,EAAOowJ,SAAS,EAC7B,OAAOpwJ,EAAOowJ,SAAS,CAAC,GAE5B,EAjD6BpwJ,GAU3B,OARoBn/I,KAAAA,IAAhBomW,IACFA,EAAc/6U,EAAQ8zH,GAAU,EAAE,CAAG17I,OAAOmzD,MAAM,CAACwtS,EAAejlN,IAClEunN,EAAe,IAGjBL,EAAYvkW,IAAI,CAACq9I,GACjBmnN,EAAUxkW,IAAI,CAACskW,GAERM,EACHF,EAAYrnN,EAAQinN,EAAa7C,GACjC6C,CACN,CAqCF,CAIA,SAASU,GAAcziS,CAAC,CAAE2a,CAAC,EAAI,OAAO3a,IAAM2a,GAAM3a,GAAMA,GAAK2a,GAAMA,CAAI,CAkEvE,SAASktL,GAAO66F,CAAE,CAAEC,CAAE,EACpB,GAAID,IAAOC,EAAI,MAAO,GACtB,GAAID,OAAAA,GAAeC,OAAAA,EAAa,MAAO,GAEvC,GAAID,GAAOA,GAAMC,GAAOA,EAAI,MAAO,GACnC,IAEI3pW,EACAJ,EACAgqW,EAJAC,EAAK,OAAOH,EAKhB,GAAIG,IAJK,OAAOF,GAICE,WAAAA,GACf,GAAI77U,EAAQ07U,GAAK,CACf,GAAI,CAAC17U,EAAQ27U,GAAK,MAAO,GACzB,GAAI,CAAC3pW,EAAS0pW,EAAG1pW,MAAM,IAAM2pW,EAAG3pW,MAAM,CAAE,CACtC,IAAKJ,EAAM,EAAGA,EAAMI,EAAQJ,IAC1B,GAAI,CAACivQ,GAAO66F,CAAE,CAAC9pW,EAAI,CAAE+pW,CAAE,CAAC/pW,EAAI,EAAG,MAAO,GAExC,MAAO,EACT,CACF,KAMO,CANA,GAAIsuF,EAAOw7Q,SAChB,EAAKx7Q,EAAOy7Q,IACLF,GAAcC,EAAGz1S,OAAO,GAAI01S,EAAG11S,OAAO,IACxC,GAAI8zS,EAAS2B,SAClB,EAAK3B,EAAS4B,IACPD,EAAGr7U,QAAQ,KAAOs7U,EAAGt7U,QAAQ,GAEpC,GAAIm6U,EAAQkB,IAAOlB,EAAQmB,IAAOxC,EAASuC,IAAOvC,EAASwC,IACzD37U,EAAQ27U,IAAOz7Q,EAAOy7Q,IAAO5B,EAAS4B,GAAK,MAAO,GAEpD,IAAK/pW,KADLgqW,EAASE,KACGJ,EACV,IAAI9pW,CAAAA,MAAAA,EAAImvF,MAAM,CAAC,IAAc78C,EAAWw3T,CAAE,CAAC9pW,EAAI,IAC/C,GAAI,CAACivQ,GAAO66F,CAAE,CAAC9pW,EAAI,CAAE+pW,CAAE,CAAC/pW,EAAI,EAAG,MAAO,EACtCgqW,CAAAA,CAAM,CAAChqW,EAAI,CAAG,GAEhB,IAAKA,KAAO+pW,EACV,GAAI,CAAE/pW,CAAAA,KAAOgqW,CAAK,GACdhqW,MAAAA,EAAImvF,MAAM,CAAC,IACX14B,EAAUszS,CAAE,CAAC/pW,EAAI,GACjB,CAACsyC,EAAWy3T,CAAE,CAAC/pW,EAAI,EAAG,MAAO,GAEnC,MAAO,EACT,EAEF,MAAO,EACT,CAEA,IAAImqW,GAAM,WACR,GAAI,CAAC1zS,EAAU0zS,GAAI7tG,KAAK,EAAG,CAGzB,IAAI8tG,EAAgB5kW,EAAOjF,QAAQ,CAACyxB,aAAa,CAAC,aAClCxsB,EAAOjF,QAAQ,CAACyxB,aAAa,CAAC,iBAE9C,GAAIo4U,EAAc,CAChB,IAAIC,EAAiBD,EAAaxoW,YAAY,CAAC,WACjCwoW,EAAaxoW,YAAY,CAAC,cACxCuoW,CAAAA,GAAI7tG,KAAK,CAAG,CACVguG,aAAc,CAACD,GAAmBA,EAAejpV,QAAQ,CAAC,iBAC5D,CACF,MACE+oV,GAAI7tG,KAAK,CAAG,CACVguG,aAAcA,WAQlB,GAAI,CAGF,OADA,SAAa,IACN,EACT,CAAE,MAAOniU,EAAG,CACV,MAAO,EACT,CACF,GAdI,CAEJ,CAEA,OAAOgiU,GAAI7tG,KAAK,EAalB,SAASzhO,GAAO0vU,CAAM,CAAEC,CAAM,CAAE/nW,CAAK,EACnC,OAAO8nW,EAAO1vU,MAAM,CAAC34B,EAAM9E,IAAI,CAACotW,EAAQ/nW,GAC1C,CAEA,SAASmkW,GAAUzgW,CAAI,CAAEu0C,CAAU,EACjC,OAAOx4C,EAAM9E,IAAI,CAAC+I,EAAMu0C,GAAc,EACxC,CAoBA,SAASn9C,GAAK42C,CAAI,CAAEwlL,CAAE,EACpB,IAAI8wI,EAAYjuS,UAAUp8D,MAAM,CAAG,EAAIwmW,GAAUpqS,UAAW,GAAK,EAAE,OACnE,CAAIlqB,EAAWqnL,IAASA,aAAcyuI,OAc7BzuI,EAbA8wI,EAAUrqW,MAAM,CACnB,WACE,OAAOo8D,UAAUp8D,MAAM,CACnBu5N,EAAGp9J,KAAK,CAACpoB,EAAMtZ,GAAO4vU,EAAWjuS,UAAW,IAC5Cm9J,EAAGp9J,KAAK,CAACpoB,EAAMs2T,EACrB,EACA,WACE,OAAOjuS,UAAUp8D,MAAM,CACnBu5N,EAAGp9J,KAAK,CAACpoB,EAAMqoB,WACfm9J,EAAGv8N,IAAI,CAAC+2C,EACd,CAKR,CAGA,SAASu2T,GAAe1qW,CAAG,CAAEV,CAAK,EAChC,IAAI+6G,EAAM/6G,EAYV,MAVI,iBAAOU,GAAoBA,MAAAA,EAAImvF,MAAM,CAAC,IAAcnvF,MAAAA,EAAImvF,MAAM,CAAC,GACjEkrB,EAAMt3G,KAAAA,EACGwkW,EAASjoW,GAClB+6G,EAAM,UACG/6G,GAAUkG,EAAOjF,QAAQ,GAAKjB,EACvC+6G,EAAM,YACGuuP,EAAQtpW,IACjB+6G,CAAAA,EAAM,UAGDA,CACT,CAuCA,SAASk9M,GAAO75Q,CAAG,CAAEitT,CAAM,EACzB,IAAIlM,EAAY/gT,GAIhB,OAHKotN,EAAS6/F,IACZA,CAAAA,EAASA,EAAS,EAAI,IAAG,EAEpB/4S,KAAKi1E,SAAS,CAACnpF,EAAKgtT,GAAgBC,EAC7C,CAeA,SAASC,GAASzvJ,CAAI,EACpB,OAAOppH,EAASopH,GACVvpJ,KAAKC,KAAK,CAACspJ,GACXA,CACR,CAGA,IAAI0vJ,GAAa,KACjB,SAASC,GAAiBl1P,CAAQ,CAAEkxD,CAAQ,EAI1C,IAAIikM,EAA0B70V,KAAK27C,KAAK,CAAC,yBADzC+jD,CAAAA,EAAWA,EAASrhG,OAAO,CAACs2V,GAAY,MACwC,IAChF,OAAOtC,EAAYwC,GAA2BjkM,EAAWikM,CAC3D,CAGA,SAASC,GAAenhV,CAAI,CAAEgzE,CAAO,EAGnC,MADAhzE,CADAA,EAAO,IAAI3T,KAAK2T,EAAKwqC,OAAO,GAAE,EACzBm5C,UAAU,CAAC3jF,EAAK0jF,UAAU,GAAK1Q,GAC7BhzE,CACT,CAGA,SAASohV,GAAuBphV,CAAI,CAAE+rF,CAAQ,CAAEx7E,CAAO,EACrDA,EAAUA,EAAU,GAAK,EACzB,IAAI8wU,EAAqBrhV,EAAKmxF,iBAAiB,GAE/C,OAAOgwP,GAAenhV,EAAMuQ,EAAW+wU,CAAAA,GADDv1P,EAAUs1P,GACQA,CAAiB,EAC3E,CAMA,SAASE,GAAYppW,CAAO,EAC1BA,EAAU+jW,EAAO/jW,GAASihI,KAAK,GAAGp8F,KAAK,GACvC,IAAIwkU,EAAWtF,EAAO,eAAe3+T,MAAM,CAACplC,GAAS4kC,IAAI,GACzD,GAAI,CACF,OAAO5kC,CAAO,CAAC,EAAE,CAACykF,QAAQ,GAAK6kR,GAAiBrJ,EAAUoJ,GACtDA,EACEtqV,KAAK,CAAC,aAAa,CAAC,EAAE,CACtBxM,OAAO,CAAC,aAAc,SAASwM,CAAK,CAAEmuF,CAAQ,EAAG,MAAO,IAAM+yP,EAAU/yP,EAAU,EAC1F,CAAE,MAAO/mE,EAAG,CACV,OAAO85T,EAAUoJ,EACnB,CAEF,CAaA,SAASE,GAAsBjsW,CAAK,EAClC,GAAI,CACF,OAAOsyQ,mBAAmBtyQ,EAC5B,CAAE,MAAO6oC,EAAG,CAEZ,CACF,CAOA,SAASqjU,GAAyBptQ,CAAQ,EACxC,IAAI1gD,EAAM,CAAC,EAyBX,OAxBAh8C,EAAQ,CAAC08F,GAAY,IAAI7xE,KAAK,CAAC,KAAM,SAAS6xE,CAAQ,MAChDqtQ,EACAzrW,EACAq6G,EACAjc,IACFp+F,EAAMo+F,EAAWA,EAAS7pF,OAAO,CAAC,MAAM,OAErB,KADnBk3V,CAAAA,EAAartQ,EAASv7F,OAAO,CAAC,QAE5B7C,EAAMo+F,EAAStgE,SAAS,CAAC,EAAG2tU,GAC5BpxP,EAAMjc,EAAStgE,SAAS,CAAC2tU,EAAa,IAGpCh1S,EADJz2D,EAAMurW,GAAsBvrW,MAE1Bq6G,EAAM5jD,CAAAA,EAAU4jD,IAAOkxP,GAAsBlxP,GACxClsF,EAAe/wB,IAAI,CAACsgD,EAAK19C,GAEnBouB,EAAQsvB,CAAG,CAAC19C,EAAI,EACzB09C,CAAG,CAAC19C,EAAI,CAAC6E,IAAI,CAACw1G,GAEd38D,CAAG,CAAC19C,EAAI,CAAG,CAAC09C,CAAG,CAAC19C,EAAI,CAACq6G,EAAI,CAJzB38D,CAAG,CAAC19C,EAAI,CAAGq6G,GAQnB,GACO38D,CACT,CAEA,SAASguT,GAAWhuT,CAAG,EACrB,IAAI6/D,EAAQ,EAAE,CAYd,OAXA77G,EAAQg8C,EAAK,SAASp+C,CAAK,CAAEU,CAAG,EAC1BouB,EAAQ9uB,GACVoC,EAAQpC,EAAO,SAASqsW,CAAU,EAChCpuP,EAAM14G,IAAI,CAAC+mW,GAAe5rW,EAAK,IACnB2rW,CAAAA,CAAe,IAAfA,EAAsB,GAAK,IAAMC,GAAeD,EAAY,GAAI,EAC9E,GAEFpuP,EAAM14G,IAAI,CAAC+mW,GAAe5rW,EAAK,IACnBV,CAAAA,CAAU,IAAVA,EAAiB,GAAK,IAAMssW,GAAetsW,EAAO,GAAI,EAEpE,GACOi+G,EAAMn9G,MAAM,CAAGm9G,EAAM91B,IAAI,CAAC,KAAO,EAC1C,CAcA,SAASokR,GAAiBxxP,CAAG,EAC3B,OAAOuxP,GAAevxP,EAAK,IAChB9lG,OAAO,CAAC,QAAS,KACjBA,OAAO,CAAC,QAAS,KACjBA,OAAO,CAAC,QAAS,IAC9B,CAcA,SAASq3V,GAAevxP,CAAG,CAAEyxP,CAAe,EAC1C,OAAOj6F,mBAAmBx3J,GACf9lG,OAAO,CAAC,QAAS,KACjBA,OAAO,CAAC,QAAS,KACjBA,OAAO,CAAC,OAAQ,KAChBA,OAAO,CAAC,QAAS,KACjBA,OAAO,CAAC,QAAS,KACjBA,OAAO,CAAC,OAASu3V,EAAkB,MAAQ,IACxD,CAEA,IAAIC,GAAiB,CAAC,MAAO,WAAY,MAAO,QAAQ,CA8DpDC,GAAyBC,SA/CD1rW,CAAQ,EAClC,IAAI2rW,EAAS3rW,EAAS4rW,aAAa,CACnC,GAAI,CAACD,EACH,MAAO,GAIT,GAAI,CAAEA,CAAAA,aAAkB1mW,EAAO4mW,iBAAiB,EAAIF,aAAkB1mW,EAAO6mW,gBAAgB,EAC3F,MAAO,GAGT,IAAIxrP,EAAaqrP,EAAOrrP,UAAU,CAGlC,MAAOyrP,CAFKzrP,EAAW0rP,YAAY,CAAC,OAAQ1rP,EAAW0rP,YAAY,CAAC,QAAS1rP,EAAW0rP,YAAY,CAAC,cAAc,CAEvG/0O,KAAK,CAAC,SAAS6zD,CAAG,EAC5B,GAAI,CAACA,EACH,MAAO,GAET,GAAI,CAACA,EAAI/rL,KAAK,CACZ,MAAO,GAGT,IAAI0qB,EAAOzpB,EAAS80G,aAAa,CAAC,KAGlC,GAFArrF,EAAK8f,IAAI,CAAGuhJ,EAAI/rL,KAAK,CAEjBiB,EAASspC,QAAQ,CAACqhJ,MAAM,GAAKlhK,EAAKkhK,MAAM,CAE1C,MAAO,GAKT,OAAQlhK,EAAKwiV,QAAQ,EACnB,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACH,MAAO,EACT,SACE,MAAO,EACX,CACF,EACF,EAGgDhnW,EAAOjF,QAAQ,EA6O/D,SAASmgI,GAAU1+H,CAAO,CAAEyqW,CAAO,CAAErjW,CAAM,EACpC4mR,EAAS5mR,IAASA,CAAAA,EAAS,CAAC,GAIjCA,EAAS44E,EAHW,CAClB0qR,SAAU,EACZ,EAC+BtjW,GAC/B,IAAIujW,EAAc,WAGhB,GAAI3qW,CAFJA,EAAU+jW,EAAO/jW,EAAO,EAEZ4hK,QAAQ,GAGlB,MAAMwjM,EACF,UACA,mDACAniU,CALM,CAAQ,CAAC,EAAE,GAAKz/B,EAAOjF,QAAQ,CAAI,WAAa6qW,GAAYppW,EAAO,EAKrEuS,OAAO,CAAC,IAAI,QAAQA,OAAO,CAAC,IAAI,SAI1Ck4V,CADAA,EAAUA,GAAW,EAAE,EACf1vS,OAAO,CAAC,CAAC,WAAY,SAAS4tH,CAAQ,EAC5CA,EAASrrL,KAAK,CAAC,eAAgB0C,EACjC,EAAE,EAEEoH,EAAOwjW,gBAAgB,EAEzBH,EAAQ5nW,IAAI,CAAC,CAAC,mBAAoB,SAAS+0V,CAAgB,EACzDA,EAAiBgT,gBAAgB,CAAC,GACpC,EAAE,EAGJH,EAAQ1vS,OAAO,CAAC,MAChB,IAAI6mG,EAAWipM,GAAeJ,EAASrjW,EAAOsjW,QAAQ,EAStD,OARA9oM,EAASh4H,MAAM,CAAC,CAAC,aAAc,eAAgB,WAAY,YACxD,SAAwB92B,CAAK,CAAE9S,CAAO,CAAE8jP,CAAO,CAAEliF,CAAQ,EACxD9uJ,EAAM4iF,MAAM,CAAC,WACX11F,EAAQiC,IAAI,CAAC,YAAa2/J,GAC1BkiF,EAAQ9jP,GAAS8S,EACnB,EACF,EAAE,EAEG8uJ,CACT,EAEIkpM,EAAuB,yBACvBC,EAAqB,uBAOzB,GALIvnW,GAAUsnW,EAAqB/sW,IAAI,CAACyF,EAAO4kB,IAAI,IACjDhhB,EAAOwjW,gBAAgB,CAAG,GAC1BpnW,EAAO4kB,IAAI,CAAG5kB,EAAO4kB,IAAI,CAAC7V,OAAO,CAACu4V,EAAsB,KAGtDtnW,GAAU,CAACunW,EAAmBhtW,IAAI,CAACyF,EAAO4kB,IAAI,EAChD,OAAOuiV,GAGTnnW,CAAAA,EAAO4kB,IAAI,CAAG5kB,EAAO4kB,IAAI,CAAC7V,OAAO,CAACw4V,EAAoB,IACtD9iV,EAAQ+iV,eAAe,CAAG,SAASC,CAAY,EAI7C,OAHAvrW,EAAQurW,EAAc,SAASpjW,CAAM,EACnC4iW,EAAQ5nW,IAAI,CAACgF,EACf,GACO8iW,GACT,EAEIr6T,EAAWroB,EAAQijV,uBAAuB,GAC5CjjV,EAAQijV,uBAAuB,EAEnC,CAkCA,IAAIC,GAAoB,SACxB,SAASC,GAAWhjV,CAAI,CAAE48I,CAAS,EAEjC,OADAA,EAAYA,GAAa,IAClB58I,EAAK7V,OAAO,CAAC44V,GAAmB,SAASE,CAAM,CAAErxG,CAAG,EACzD,MAAO,CAACA,EAAMh1F,EAAY,IAAMqmM,EAAOz2V,WAAW,EACpD,EACF,CAEA,IAAI02V,GAAkB,GAqCtB,SAASC,GAAU1G,CAAG,CAAEz8U,CAAI,CAAEsxL,CAAM,EAClC,GAAI,CAACmrJ,EACH,MAAMO,EAAS,OAAQ,wBAA4Bh9U,GAAQ,IAAOsxL,GAAU,YAE9E,OAAOmrJ,CACT,CAEA,SAAS2G,GAAY3G,CAAG,CAAEz8U,CAAI,CAAEqjV,CAAqB,EAOnD,OANIA,GAAyBr/U,EAAQy4U,IACjCA,CAAAA,EAAMA,CAAG,CAACA,EAAIzmW,MAAM,CAAG,EAAE,EAG7BmtW,GAAUj7T,EAAWu0T,GAAMz8U,EAAM,uBAC5By8U,CAAAA,GAAO,iBAAOA,EAAmBA,EAAIrjW,WAAW,CAAC4mB,IAAI,EAAI,SAAW,OAAOy8U,CAAE,GAC3EA,CACT,CAOA,SAAS6G,GAAwBtjV,CAAI,CAAEsrJ,CAAO,EAC5C,GAAItrJ,mBAAAA,EACF,MAAMg9U,EAAS,UAAW,yCAA0C1xL,EAExE,CAUA,SAASk5F,GAAOlxN,CAAG,CAAEj/B,CAAI,CAAEkvV,CAAa,EACtC,GAAI,CAAClvV,EAAM,OAAOi/B,EAMlB,IAAK,IAJD19C,EADA4F,EAAO6Y,EAAK8N,KAAK,CAAC,KAElBqhV,EAAelwT,EACfyrB,EAAMvjE,EAAKxF,MAAM,CAEZ6C,EAAI,EAAGA,EAAIkmE,EAAKlmE,IACvBjD,EAAM4F,CAAI,CAAC3C,EAAE,CACTy6C,GACFA,CAAAA,EAAM,CAACkwT,EAAelwT,CAAE,CAAE,CAAC19C,EAAI,QAGnC,CAAK2tW,GAAiBr7T,EAAWoL,GACxBngD,GAAKqwW,EAAclwT,GAErBA,CACT,CAOA,SAASmwT,GAAclwB,CAAK,EAM1B,IAAK,IAFDmwB,EAFAjsP,EAAO87N,CAAK,CAAC,EAAE,CACf2F,EAAU3F,CAAK,CAACA,EAAMv9U,MAAM,CAAG,EAAE,CAG5B6C,EAAI,EAAG4+G,IAASyhO,GAAYzhO,CAAAA,EAAOA,EAAKygJ,WAAW,EAAGr/P,IACzD6qW,CAAAA,GAAcnwB,CAAK,CAAC16U,EAAE,GAAK4+G,CAAG,IAC3BisP,GACHA,CAAAA,EAAa/H,EAAO7jW,EAAM9E,IAAI,CAACugV,EAAO,EAAG16U,GAAE,EAE7C6qW,EAAWjpW,IAAI,CAACg9G,IAIpB,OAAOisP,GAAcnwB,CACvB,CAcA,SAASusB,KACP,OAAO1jW,OAAOmzD,MAAM,CAAC,KACvB,CAEA,SAASktE,GAAUvnI,CAAK,EACtB,GAAIA,MAAAA,EACF,MAAO,GAET,OAAQ,OAAOA,GACb,IAAK,SACH,KACF,KAAK,SACHA,EAAQ,GAAKA,EACb,KACF,SAIIA,EAHEopW,CAAAA,EAAkBppW,IAAW8uB,EAAQ9uB,IAAWgvF,EAAOhvF,GAGjDi4T,GAAOj4T,GAFPA,EAAMmvB,QAAQ,EAI5B,CAEA,OAAOnvB,CACT,CAIA,IAAIgsW,GAAiB,EAyarB,SAAS9M,GAAYnzK,CAAG,CAAEymK,CAAG,EAC3B,GAAI1jU,EAAQi9J,GAAM,CAChBymK,EAAMA,GAAO,EAAE,CAEf,IAAK,IAAI7uV,EAAI,EAAGo8K,EAAKgM,EAAIjrL,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IACvC6uV,CAAG,CAAC7uV,EAAE,CAAGooL,CAAG,CAACpoL,EAAE,MAEZ,GAAI+sR,EAAS3kG,GAGlB,IAAK,IAAIrrL,KAFT8xV,EAAMA,GAAO,CAAC,EAEEzmK,EACU,MAAlBrrL,EAAImvF,MAAM,CAAC,IAAcnvF,MAAAA,EAAImvF,MAAM,CAAC,IACxC2iQ,CAAAA,CAAG,CAAC9xV,EAAI,CAAGqrL,CAAG,CAACrrL,EAAI,EAKzB,OAAO8xV,GAAOzmK,CAChB,CA4BA,SAASy7K,GAAcppT,CAAG,CAAE4oT,CAAQ,EAClC,GAAI,mBAAO5oT,EACT,OAAOA,EAAIjvB,QAAQ,GAAGla,OAAO,CAAC,cAAe,IACxC,GAAIkqV,EAAY/gT,GACrB,MAAO,YACF,GAAI,iBAAOA,EAAkB,KA5BbA,EACnBqwT,EA4BF,OA7BqBrwT,EA6BEA,EA5BrBqwT,EAAO,EAAE,CAKT1H,EAuB0BC,IApB5B5oT,CAAAA,EAAMzzB,EAAQ0N,IAAI,CAAC+lB,EAAK,KAoBI4oT,EApBU,EAEjC10S,KAAKi1E,SAAS,CAACnpF,EAAK,SAAS19C,CAAG,CAAEq6G,CAAG,EAE1C,GAAI21K,EADJ31K,EAAMqwP,GAAe1qW,EAAKq6G,IACP,CAEjB,GAAI0zP,EAAK3sV,QAAQ,CAACi5F,GAAM,MAAO,MAE/B0zP,EAAKlpW,IAAI,CAACw1G,EACZ,CACA,OAAOA,CACT,EAUA,CACA,OAAO38D,CACT,CA6XAswT,GAAOC,OAAO,CAAG,QAEjB,IAAIC,GAAUF,GAAOvsC,KAAK,CAAG,CAAC,EAC1B0sC,GAAO,CAKXH,CAAAA,GAAOj8F,KAAK,CAAG,SAASlwJ,CAAI,EAE1B,OAAO,IAAI,CAAC4/M,KAAK,CAAC5/M,CAAI,CAAC,IAAI,CAACosP,OAAO,CAAC,CAAC,EAAI,CAAC,CAC5C,EAKA,IAAIG,GAAwB,YACxBC,GAAiB,QACjBC,GAAkB,CAAEC,WAAY,WAAYC,WAAY,WAAY,EACpEC,GAAelI,EAAO,UAW1B,SAASmI,GAAmBn1V,CAAG,CAAE8zV,CAAM,EACrC,OAAOA,EAAOj+Q,WAAW,EAC3B,CAMA,SAASu/Q,GAAavkV,CAAI,EACxB,OAAOA,EACJ7V,OAAO,CAAC65V,GAAuBM,GACpC,CAEA,IAAIE,GAAoB,gCACpBC,GAAc,YACdC,GAAkB,aAClBC,GAAmB,2EAOnBC,GAAU,CACZjiD,MAAO,CAAC,QAAQ,CAChBv7N,IAAK,CAAC,WAAY,QAAQ,CAC1Bw7N,GAAI,CAAC,QAAS,QAAQ,CACtBI,GAAI,CAAC,KAAM,QAAS,QAAQ,EAM9B,IAAK,IAAIptT,MAHTgvW,GAAQ/hD,KAAK,CAAG+hD,GAAQC,KAAK,CAAGD,GAAQE,QAAQ,CAAGF,GAAQG,OAAO,CAAGH,GAAQjiD,KAAK,CAClFiiD,GAAQ7hD,EAAE,CAAG6hD,GAAQ5hD,EAAE,CAEP4hD,GAEKI,EADc,CAACpvW,GAAI,CACCkC,KAAK,GAAGk4B,OAAO,GAGxD,SAASi1U,GAAiBzoU,CAAI,EAC5B,MAAO,CAACioU,GAAY9uW,IAAI,CAAC6mC,EAC3B,CAEA,SAAS0oU,GAAkBztP,CAAI,EAG7B,IAAIp7B,EAAWo7B,EAAKp7B,QAAQ,CAC5B,OAAOA,IAAAA,GAAkC,CAACA,GAAYA,IAAAA,CACxD,CASA,SAAS8oR,GAAoB3oU,CAAI,CAAE8uI,CAAO,EAKxC,IAJI85L,EACAvqU,EACAwqU,EACAC,EAGAzsW,EAFAkpV,EAAWz2K,EAAQswG,sBAAsB,GACzC23D,EAAQ,EAAE,CAGd,GAAI0xB,GAAiBzoU,GAEnB+2S,EAAM94U,IAAI,CAAC6wK,EAAQyyG,cAAc,CAACvhP,QAC7B,CAWL,IATA4oU,EAAMrjB,EAAS32O,WAAW,CAACkgE,EAAQrgE,aAAa,CAAC,QACjDpwE,EAAM,CAAC6pU,GAAgB1zF,IAAI,CAACx0O,IAAS,CAAC,GAAI,GAAG,CAAC,CAAC,EAAE,CAAChwB,WAAW,GAC7D84V,EAAY1B,GAAO2B,sBAAsB,CACvC/oU,EAAKryB,OAAO,CAACw6V,GAAkB,aAC/BnoU,EAIF3jC,EAAIwsW,CAHJA,EAAOT,EAAO,CAAC/pU,EAAI,EAAI,EAAE,EAGhB7kC,MAAM,CACR,EAAE6C,EAAI,IACXusW,EAAIh6P,WAAW,CAAChwG,EAAOjF,QAAQ,CAAC80G,aAAa,CAACo6P,CAAI,CAACxsW,EAAE,GACrDusW,EAAMA,EAAItpF,UAAU,CAGtBspF,EAAI1pF,SAAS,CAAG4pF,EAEhB/xB,EAAQ9iT,GAAO8iT,EAAO6xB,EAAI73F,UAAU,EAGpC63F,CADAA,EAAMrjB,EAASjmE,UAAU,EACrB/iR,WAAW,CAAG,EACpB,CASA,OANAgpV,EAAShpV,WAAW,CAAG,GACvBgpV,EAASrmE,SAAS,CAAG,GACrBpkR,EAAQi8U,EAAO,SAAS97N,CAAI,EAC1BsqO,EAAS32O,WAAW,CAACqM,EACvB,GAEOsqO,CACT,CA6BA,SAAS6hB,GAAOhsW,CAAO,MAKjB4tW,EAhCmBhpU,EAAM8uI,EAEzBm6L,EA0BJ,GAAI7tW,aAAmBgsW,GACrB,OAAOhsW,EAST,GAJI+vF,EAAS/vF,KACXA,EAAU8qD,EAAK9qD,GACf4tW,EAAc,IAEZ,CAAE,KAAI,YAAY5B,EAAK,EAAI,CAC7B,GAAI4B,GAAe5tW,MAAAA,EAAQmtF,MAAM,CAAC,GAChC,MAAMs/Q,GAAa,QAAS,oHAE9B,OAAO,IAAIT,GAAOhsW,EACpB,CAEI4tW,EACFE,GAAe,IAAI,EA9CElpU,EA8CgB5kC,EA1CvC,CAHA0zK,EAAUA,GAAWlwK,EAAOjF,QAAQ,CAG/BsvW,EAASjB,GAAkBxzF,IAAI,CAACx0O,IAC5B,CAAC8uI,EAAQrgE,aAAa,CAACw6P,CAAM,CAAC,EAAE,EAAE,CAGtCA,CAAAA,EAASN,GAAoB3oU,EAAM8uI,EAAO,EACtCm6L,EAAOl4F,UAAU,CAGnB,EAAE,GAmCErlO,EAAWtwC,GACpB+tW,GAAY/tW,GAEZ8tW,GAAe,IAAI,CAAE9tW,EAEzB,CAEA,SAASguW,GAAYhuW,CAAO,EAC1B,OAAOA,EAAQswS,SAAS,CAAC,GAC3B,CAEA,SAAS29D,GAAajuW,CAAO,CAAEkuW,CAAe,EACxC,CAACA,GAAmBZ,GAAkBttW,IAAU+jW,EAAOoK,SAAS,CAAC,CAACnuW,EAAQ,EAE1EA,EAAQG,gBAAgB,EAC1B4jW,EAAOoK,SAAS,CAACnuW,EAAQG,gBAAgB,CAAC,KAE9C,CAEA,SAASiuW,GAAUpuW,CAAO,CAAEke,CAAI,CAAEy5M,CAAE,CAAE4sC,CAAW,EAC/C,GAAI9vM,EAAU8vM,GAAc,MAAMkoG,GAAa,UAAW,yDAE1D,IAAI4B,EAAeC,GAAmBtuW,GAClCskH,EAAS+pP,GAAgBA,EAAa/pP,MAAM,CAC5Cs8M,EAASytC,GAAgBA,EAAaztC,MAAM,CAEhD,GAAKA,GAEL,GAAK1iT,EAOE,CAEL,IAAIqwV,EAAgB,SAASrwV,CAAI,EAC/B,IAAIswV,EAAclqP,CAAM,CAACpmG,EAAK,CAC1Bu2C,EAAUkjK,IACZuvI,GAAYsH,GAAe,EAAE,CAAE72I,GAE3BljK,EAAUkjK,IAAO62I,GAAeA,EAAYpwW,MAAM,CAAG,IACzD4B,EAAQrB,mBAAmB,CAACuf,EAAM0iT,GAClC,OAAOt8M,CAAM,CAACpmG,EAAK,CAEvB,EAEAxe,EAAQwe,EAAKqM,KAAK,CAAC,KAAM,SAASrM,CAAI,EACpCqwV,EAAcrwV,GACVouV,EAAe,CAACpuV,EAAK,EACvBqwV,EAAcjC,EAAe,CAACpuV,EAAK,CAEvC,EACF,MAzBE,IAAKA,KAAQomG,EACE,aAATpmG,GACFle,EAAQrB,mBAAmB,CAACuf,EAAM0iT,GAEpC,OAAOt8M,CAAM,CAACpmG,EAAK,CAsBzB,CAEA,SAASuwV,GAAiBzuW,CAAO,CAAEooB,CAAI,EACrC,IAAIsmV,EAAY1uW,EAAQ2uW,KAAK,CACzBN,EAAeK,GAAaxC,EAAO,CAACwC,EAAU,CAElD,GAAIL,EAAc,CAChB,GAAIjmV,EAAM,CACR,OAAOimV,EAAapsW,IAAI,CAACmmB,EAAK,CAC9B,MACF,CAEIimV,EAAaztC,MAAM,GACjBytC,EAAa/pP,MAAM,CAAClrG,QAAQ,EAC9Bi1V,EAAaztC,MAAM,CAAC,CAAC,EAAG,YAE1BwtC,GAAUpuW,IAEZ,OAAOksW,EAAO,CAACwC,EAAU,CACzB1uW,EAAQ2uW,KAAK,CAAG5tW,KAAAA,CAClB,CACF,CAGA,SAASutW,GAAmBtuW,CAAO,CAAE4uW,CAAiB,EACpD,IAAIF,EAAY1uW,EAAQ2uW,KAAK,CACzBN,EAAeK,GAAaxC,EAAO,CAACwC,EAAU,CAOlD,OALIE,GAAqB,CAACP,IACxBruW,EAAQ2uW,KAAK,CAAGD,EA1PS,EAAEvC,GA2P3BkC,EAAenC,EAAO,CAACwC,EAAU,CAAG,CAACpqP,OAAQ,CAAC,EAAGriH,KAAM,CAAC,EAAG2+T,OAAQ7/T,KAAAA,CAAS,GAGvEstW,CACT,CAGA,SAASQ,GAAW7uW,CAAO,CAAEhC,CAAG,CAAEV,CAAK,EACrC,GAAIgwW,GAAkBttW,GAAU,CAG9B,IAFIw5D,EAEAs1S,EAAiBr6S,EAAUn3D,GAC3ByxW,EAAiB,CAACD,GAAkB9wW,GAAO,CAACgwR,EAAShwR,GACrDgxW,EAAa,CAAChxW,EACdqwW,EAAeC,GAAmBtuW,EAAS,CAAC+uW,GAC5C9sW,EAAOosW,GAAgBA,EAAapsW,IAAI,CAE5C,GAAI6sW,EACF7sW,CAAI,CAAC0qW,GAAa3uW,GAAK,CAAGV,MACrB,CACL,GAAI0xW,EACF,OAAO/sW,EAEP,GAAI8sW,EAEF,OAAO9sW,GAAQA,CAAI,CAAC0qW,GAAa3uW,GAAK,CAEtC,IAAKw7D,KAAQx7D,EACXiE,CAAI,CAAC0qW,GAAanzS,GAAM,CAAGx7D,CAAG,CAACw7D,EAAK,CAK9C,CACF,CAEA,SAASy1S,GAAejvW,CAAO,CAAEshJ,CAAQ,QACvC,EAAKthJ,EAAQJ,YAAY,EAClB,CAAC,IAAOI,CAAAA,EAAQJ,YAAY,CAAC,UAAY,IAAM,KAAK2S,OAAO,CAAC,UAAW,KAAK6M,QAAQ,CAAC,IAAMkiI,EAAW,IAC/G,CAEA,SAAS4tN,GAAkBlvW,CAAO,CAAEmvW,CAAU,EAC5C,GAAIA,GAAcnvW,EAAQb,YAAY,CAAE,CACtC,IAAIiwW,EAAkB,CAAC,IAAOpvW,CAAAA,EAAQJ,YAAY,CAAC,UAAY,IAAM,KAC5C2S,OAAO,CAAC,UAAW,KACxC88V,EAAaD,EAEjB1vW,EAAQyvW,EAAW5kV,KAAK,CAAC,KAAM,SAASutO,CAAQ,EAC9CA,EAAWhtM,EAAKgtM,GAChBu3G,EAAaA,EAAW98V,OAAO,CAAC,IAAMulP,EAAW,IAAK,IACxD,GAEIu3G,IAAeD,GACjBpvW,EAAQb,YAAY,CAAC,QAAS2rD,EAAKukT,GAEvC,CACF,CAEA,SAASC,GAAetvW,CAAO,CAAEmvW,CAAU,EACzC,GAAIA,GAAcnvW,EAAQb,YAAY,CAAE,CACtC,IAAIiwW,EAAkB,CAAC,IAAOpvW,CAAAA,EAAQJ,YAAY,CAAC,UAAY,IAAM,KAC5C2S,OAAO,CAAC,UAAW,KACxC88V,EAAaD,EAEjB1vW,EAAQyvW,EAAW5kV,KAAK,CAAC,KAAM,SAASutO,CAAQ,EAC9CA,EAAWhtM,EAAKgtM,GACXu3G,EAAWjwV,QAAQ,CAAC,IAAM04O,EAAW,MACxCu3G,CAAAA,GAAcv3G,EAAW,IAE7B,GAEIu3G,IAAeD,GACjBpvW,EAAQb,YAAY,CAAC,QAAS2rD,EAAKukT,GAEvC,CACF,CAGA,SAASvB,GAAexrV,CAAI,CAAEpkB,CAAQ,EAGpC,GAAIA,GAGF,GAAIA,EAASumF,QAAQ,CACnBniE,CAAI,CAACA,EAAKlkB,MAAM,GAAG,CAAGF,MACjB,CACL,IAAIE,EAASF,EAASE,MAAM,CAG5B,GAAI,iBAAOA,GAAuBF,EAASsF,MAAM,GAAKtF,EACpD,IAAIE,EACF,IAAK,IAAI6C,EAAI,EAAGA,EAAI7C,EAAQ6C,IAC1BqhB,CAAI,CAACA,EAAKlkB,MAAM,GAAG,CAAGF,CAAQ,CAAC+C,EAAE,MAIrCqhB,CAAI,CAACA,EAAKlkB,MAAM,GAAG,CAAGF,CAE1B,EAEJ,CAGA,SAASqxW,GAAiBvvW,CAAO,CAAEooB,CAAI,EACrC,OAAOonV,GAAoBxvW,EAAS,IAAOooB,CAAAA,GAAQ,gBAAkB,aACvE,CAEA,SAASonV,GAAoBxvW,CAAO,CAAEooB,CAAI,CAAE9qB,CAAK,EA/sCxB,IAktCnB0C,EAAQykF,QAAQ,EAClBzkF,CAAAA,EAAUA,EAAQozG,eAAe,EAInC,IAFA,IAAIq8P,EAAQrjV,EAAQhE,GAAQA,EAAO,CAACA,EAAK,CAElCpoB,GAAS,CACd,IAAK,IAAIiB,EAAI,EAAGo8K,EAAKoyL,EAAMrxW,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IACzC,GAAIwzD,EAAUn3D,EAAQymW,EAAO9hW,IAAI,CAACjC,EAASyvW,CAAK,CAACxuW,EAAE,GAAI,OAAO3D,EAMhE0C,EAAUA,EAAQihC,UAAU,EAAKjhC,KAAAA,EAAQykF,QAAQ,EAAoCzkF,EAAQ0vW,IAAI,CAErG,CAEA,SAASC,GAAY3vW,CAAO,EAE1B,IADAiuW,GAAajuW,EAAS,IACfA,EAAQkkR,UAAU,EACvBlkR,EAAQkhC,WAAW,CAAClhC,EAAQkkR,UAAU,CAE1C,CAEA,SAAS0rF,GAAa5vW,CAAO,CAAE2sP,CAAQ,EAChCA,GAAUshH,GAAajuW,GAC5B,IAAIogB,EAASpgB,EAAQihC,UAAU,CAC3B7gB,GAAQA,EAAO8gB,WAAW,CAAClhC,EACjC,CAgBA,SAAS+tW,GAAYp2I,CAAE,EACrB,SAAShuL,IACPnmC,EAAOjF,QAAQ,CAACI,mBAAmB,CAAC,mBAAoBgrC,GACxDnmC,EAAO7E,mBAAmB,CAAC,OAAQgrC,GACnCguL,GACF,CAGIn0N,aAAAA,EAAOjF,QAAQ,CAAC+0V,UAAU,CAC5B9vV,EAAOu9B,UAAU,CAAC42L,IAElBn0N,EAAOjF,QAAQ,CAACC,gBAAgB,CAAC,mBAAoBmrC,GACrDnmC,EAAOhF,gBAAgB,CAAC,OAAQmrC,GAEpC,CAKA,IAAIkmU,GAAkB7D,GAAOjvW,SAAS,CAAG,CACvC+nD,MAAOipT,GACPthV,WACE,IAAInvB,EAAQ,EAAE,CAEd,OADAoC,EAAQ,IAAI,CAAE,SAASymC,CAAC,EAAI7oC,EAAMuF,IAAI,CAAC,GAAKsjC,EAAG,GACxC,IAAM7oC,EAAMmoF,IAAI,CAAC,MAAQ,GAClC,EAEAqqR,GAAGrvW,CAAK,EACJ,OAAO,GAAU,EAAKsjW,EAAO,IAAI,CAACtjW,EAAM,EAAIsjW,EAAO,IAAI,CAAC,IAAI,CAAC3lW,MAAM,CAAGqC,EAAM,CAChF,EAEArC,OAAQ,EACRyE,KAAMA,EACN65I,KAAM,EAAE,CAACA,IAAI,CACb55I,OAAQ,EAAE,CAACA,MAAM,EAQfitW,GAAe,CAAC,EACpBrwW,EAAQ,4DAA4D6qB,KAAK,CAAC,KAAM,SAASjtB,CAAK,EAC5FyyW,EAAY,CAAC9P,EAAU3iW,GAAO,CAAGA,CACnC,GACA,IAAI0yW,GAAmB,CAAC,EACxBtwW,EAAQ,mDAAmD6qB,KAAK,CAAC,KAAM,SAASjtB,CAAK,EACnF0yW,EAAgB,CAAC1yW,EAAM,CAAG,EAC5B,GACA,IAAI2yW,GAAe,CACjB,YAAe,YACf,YAAe,YACf,MAAS,MACT,MAAS,MACT,UAAa,UACb,OAAU,MACZ,EAEA,SAASC,GAAmBlwW,CAAO,CAAEooB,CAAI,EAEvC,IAAI+nV,EAAcJ,EAAY,CAAC3nV,EAAKxT,WAAW,GAAG,CAGlD,OAAOu7V,GAAeH,EAAgB,CAAC/I,GAAUjnW,GAAS,EAAImwW,CAChE,CA6OA,SAASC,GAAsBpwW,CAAO,CAAE5C,CAAK,CAAEqoJ,CAAO,EACpDA,EAAQrqJ,IAAI,CAAC4E,EAAS5C,EACxB,CAEA,SAASizW,GAA2B3yW,CAAM,CAAEN,CAAK,CAAEqoJ,CAAO,EAIxD,IAAI6qN,EAAUlzW,EAAMm2S,aAAa,CAG5B+8D,GAAYA,CAAAA,IAAY5yW,GAAWA,EAAO6C,QAAQ,CAAC+vW,EAAO,GAC7D7qN,EAAQrqJ,IAAI,CAACsC,EAAQN,EAEzB,CAoPA,SAASmzW,KACP,IAAI,CAAC1mW,IAAI,CAAG,WACV,OAAOm2E,EAAOgsR,GAAQ,CACpB/nU,SAAAA,CAAS47E,EAAMmyN,KACTnyN,EAAKpjH,IAAI,EAAEojH,CAAAA,EAAOA,CAAI,CAAC,EAAE,EACtBovP,GAAepvP,EAAMmyN,IAE9BxqT,SAAAA,CAASq4F,EAAMmyN,KACTnyN,EAAKpjH,IAAI,EAAEojH,CAAAA,EAAOA,CAAI,CAAC,EAAE,EACtByvP,GAAezvP,EAAMmyN,IAE9BzqT,YAAAA,CAAYs4F,EAAMmyN,KACZnyN,EAAKpjH,IAAI,EAAEojH,CAAAA,EAAOA,CAAI,CAAC,EAAE,EACtBqvP,GAAkBrvP,EAAMmyN,GAEnC,EACF,CACF,CAeA,SAASw+B,GAAQ90T,CAAG,CAAE+0T,CAAS,EAC7B,IAAIzyW,EAAM09C,GAAOA,EAAIqqT,SAAS,CAE9B,GAAI/nW,EAIF,MAHmB,YAAf,OAAOA,GACTA,CAAAA,EAAM09C,EAAIqqT,SAAS,EAAC,EAEf/nW,EAGT,IAAI0yW,EAAU,OAAOh1T,EAOrB,MANIg1T,aAAAA,GAA2BA,WAAAA,GAAwBh1T,OAAAA,EAC/CA,EAAIqqT,SAAS,CAAG2K,EAAU,IAAM,CAACD,GAAa5K,CAAM,IAEpD6K,EAAU,IAAMh1T,CAI1B,CA3hBAh8C,EAAQ,CACNuC,KAAM4sW,GACN8B,WAAYlC,GACZmC,QA9ZF,SAAuB/wP,CAAI,EACzB,IAAK,IAAI7hH,KAAOkuW,EAAO,CAACrsP,EAAK8uP,KAAK,CAAC,CACjC,MAAO,GAET,MAAO,EACT,EA0ZER,UAAW,SAAyBxyB,CAAK,EACvC,IAAK,IAAI16U,EAAI,EAAGo8K,EAAKs+J,EAAMv9U,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IACzCwtW,GAAiB9yB,CAAK,CAAC16U,EAAE,CAE7B,CACF,EAAG,SAAS02N,CAAE,CAAEvvM,CAAI,EAClB4jV,EAAM,CAAC5jV,EAAK,CAAGuvM,CACjB,GAEAj4N,EAAQ,CACNuC,KAAM4sW,GACNgC,cAAerB,GAEf18V,MAAAA,GAESixV,EAAO9hW,IAAI,CAACjC,EAAS,WAAawvW,GAAoBxvW,EAAQihC,UAAU,EAAIjhC,EAAS,CAAC,gBAAiB,SAAS,EAGzH8wW,aAAAA,GAES/M,EAAO9hW,IAAI,CAACjC,EAAS,kBAAoB+jW,EAAO9hW,IAAI,CAACjC,EAAS,2BAGvE0G,WAAY6oW,GAEZ3tM,SAAAA,GACS4tM,GAAoBxvW,EAAS,aAGtCytQ,WAAWztQ,CAAO,CAAEooB,CAAI,EACtBpoB,EAAQH,eAAe,CAACuoB,EAC1B,EAEA6b,SAAUgrU,GAEVx8P,IAAIzyG,CAAO,CAAEooB,CAAI,CAAE9qB,CAAK,EAGtB,GAFA8qB,EAvfOukV,GAAavkV,EAAK7V,OAAO,CAAC85V,GAAgB,SAyf7C53S,EAAUn3D,GAGZ,OAAO0C,EAAQ2oD,KAAK,CAACvgC,EAAK,CAF1BpoB,EAAQ2oD,KAAK,CAACvgC,EAAK,CAAG9qB,CAI1B,EAEAb,KAAKuD,CAAO,CAAEooB,CAAI,CAAE9qB,CAAK,EAEvB,IADI43G,EACAzwB,EAAWzkF,EAAQykF,QAAQ,CAC/B,GAAIA,IAAa6kR,IAAkB7kR,IAAAA,GAAoCA,IAAAA,GACpEzkF,EAAQJ,YAAY,EAIvB,IAAImxW,EAAiB9Q,EAAU73U,GAC3B4oV,EAAgBjB,EAAY,CAACgB,EAAe,CAEhD,IAAIt8S,EAAUn3D,GAiBZ,OANA43G,EAAMl1G,EAAQJ,YAAY,CAACwoB,GAEvB4oV,GAAiB97P,OAAAA,GACnBA,CAAAA,EAAM67P,CAAa,EAGd77P,OAAAA,EAAen0G,KAAAA,EAAYm0G,CAd9B53G,QAAAA,GAAmBA,CAAU,IAAVA,GAAmB0zW,EACxChxW,EAAQH,eAAe,CAACuoB,GAExBpoB,EAAQb,YAAY,CAACipB,EAAM4oV,EAAgBD,EAAiBzzW,GAalE,EAEAk8D,KAAKx5D,CAAO,CAAEooB,CAAI,CAAE9qB,CAAK,EACvB,IAAIm3D,EAAUn3D,GAGZ,OAAO0C,CAAO,CAACooB,EAAK,CAFpBpoB,CAAO,CAACooB,EAAK,CAAG9qB,CAIpB,EAEAm8H,KAAM,WAEJ,OADAw3O,EAAQC,GAAG,CAAG,GACPD,EAEP,SAASA,EAAQjxW,CAAO,CAAE1C,CAAK,EAC7B,GAAIm/V,EAAYn/V,GAAQ,CACtB,IAAImnF,EAAWzkF,EAAQykF,QAAQ,CAC/B,OAAO,OAAmCA,IAAa6kR,GAAkBtpW,EAAQmB,WAAW,CAAG,EACjG,CACAnB,EAAQmB,WAAW,CAAG7D,CACxB,CACF,IAEA+6G,IAAIr4G,CAAO,CAAE1C,CAAK,EAChB,GAAIm/V,EAAYn/V,GAAQ,CACtB,GAAI0C,EAAQy9K,QAAQ,EAAIwpL,WAAAA,GAAUjnW,GAAuB,CACvD,IAAI+sB,EAAS,EAAE,CAMf,OALArtB,EAAQM,EAAQkkB,OAAO,CAAE,SAASgK,CAAM,EAClCA,EAAOooF,QAAQ,EACjBvpF,EAAOlqB,IAAI,CAACqrB,EAAO5wB,KAAK,EAAI4wB,EAAOurG,IAAI,CAE3C,GACO1sG,CACT,CACA,OAAO/sB,EAAQ1C,KAAK,CAEtB0C,EAAQ1C,KAAK,CAAGA,CAClB,EAEAsnC,KAAK5kC,CAAO,CAAE1C,CAAK,EACjB,GAAIm/V,EAAYn/V,GACd,OAAO0C,EAAQ8jR,SAAS,CAE1BmqF,GAAajuW,EAAS,IACtBA,EAAQ8jR,SAAS,CAAGxmR,CACtB,EAEAunC,MAAO8qU,EACT,EAAG,SAASh4I,CAAE,CAAEvvM,CAAI,EAIlB4jV,GAAOjvW,SAAS,CAACqrB,EAAK,CAAG,SAAS+oV,CAAI,CAAEC,CAAI,EAG1C,IAFInwW,EACAjD,EACAqzW,EAAY,IAAI,CAACjzW,MAAM,CAK3B,GAAIu5N,IAAOg4I,IACNlT,EAAY,MAAIr+V,MAAM,EAAWu5N,IAAOs3I,IAAkBt3I,IAAO43I,GAAqB4B,EAAOC,GAAQ,CACxG,GAAIpjF,EAASmjF,GAAO,CAGlB,IAAKlwW,EAAI,EAAGA,EAAIowW,EAAWpwW,IACzB,GAAI02N,IAAOk3I,GAETl3I,EAAG,IAAI,CAAC12N,EAAE,CAAEkwW,QAEZ,IAAKnzW,KAAOmzW,EACVx5I,EAAG,IAAI,CAAC12N,EAAE,CAAEjD,EAAKmzW,CAAI,CAACnzW,EAAI,EAKhC,OAAO,IAAI,CAOX,IAAK,IAHDV,EAAQq6N,EAAGu5I,GAAG,CAEdhL,EAAK,EAAa5oW,GAAU6gD,KAAKqoC,GAAG,CAAC6qR,EAAW,GAAKA,EAChD/wW,EAAI,EAAGA,EAAI4lW,EAAI5lW,IAAK,CAC3B,IAAI86U,EAAYzjH,EAAG,IAAI,CAACr3N,EAAE,CAAE6wW,EAAMC,GAClC9zW,EAAQA,EAAQA,EAAQ89U,EAAYA,CACtC,CACA,OAAO99U,CAEX,CAEE,IAAK2D,EAAI,EAAGA,EAAIowW,EAAWpwW,IACzB02N,EAAG,IAAI,CAAC12N,EAAE,CAAEkwW,EAAMC,GAGpB,OAAO,IAAI,CAGjB,GA2EA1xW,EAAQ,CACNixW,WAAYlC,GAEZl1U,GAAI,SAAkBv5B,CAAO,CAAEke,CAAI,CAAEy5M,CAAE,CAAE4sC,CAAW,EAClD,GAAI9vM,EAAU8vM,GAAc,MAAMkoG,GAAa,SAAU,yEAGzD,GAAKa,GAAkBttW,IAIvB,IAnFEy+I,EAmFE4vN,EAAeC,GAAmBtuW,EAAS,IAC3CskH,EAAS+pP,EAAa/pP,MAAM,CAC5Bs8M,EAASytC,EAAaztC,MAAM,CAE3BA,GACHA,CAAAA,EAASytC,EAAaztC,MAAM,EAzChCniL,CA/CIA,EAAe,SAASrhJ,CAAK,CAAE8gB,CAAI,EAErC9gB,EAAMk0W,kBAAkB,CAAG,WACzB,OAAOl0W,EAAM42V,gBAAgB,EAG/B,IAAIud,EAAWjtP,CAAM,CAACpmG,GAAQ9gB,EAAM8gB,IAAI,CAAC,CACrCszV,EAAiBD,EAAWA,EAASnzW,MAAM,CAAG,EAElD,GAAKozW,GAEL,GAAI/U,EAAYr/V,EAAMq0W,2BAA2B,EAAG,CAClD,IAAIC,EAAmCt0W,EAAMuoH,wBAAwB,CACrEvoH,EAAMuoH,wBAAwB,CAAG,WAC/BvoH,EAAMq0W,2BAA2B,CAAG,GAEhCr0W,EAAMU,eAAe,EACvBV,EAAMU,eAAe,GAGnB4zW,GACFA,EAAiCt2W,IAAI,CAACgC,EAE1C,CACF,CAEAA,EAAMu0W,6BAA6B,CAAG,WACpC,MAAOv0W,CAAsC,IAAtCA,EAAMq0W,2BAA2B,EAI1C,IAAIG,EAAiBL,EAASM,qBAAqB,EAAIzB,GAGlDoB,EAAiB,GACpBD,CAAAA,EAAW/U,GAAY+U,EAAQ,EAGjC,IAAK,IAAItwW,EAAI,EAAGA,EAAIuwW,EAAgBvwW,IAC7B7D,EAAMu0W,6BAA6B,IACtCC,EAgDgD5xW,EAhDxB5C,EAAOm0W,CAAQ,CAACtwW,EAAE,EAGhD,GAIa1B,IAAI,CAyCqCS,EAxC/Cy+I,EAwC8D,EAqBnE,IAjBA,IAAI2tI,EAAQluQ,EAAKkB,QAAQ,CAAC,KAAOlB,EAAKqM,KAAK,CAAC,KAAO,CAACrM,EAAK,CACrDjd,EAAImrR,EAAMhuR,MAAM,CAEhB0zW,EAAa,SAAS5zV,CAAI,CAAE2zV,CAAqB,CAAEE,CAAe,EACpE,IAAIR,EAAWjtP,CAAM,CAACpmG,EAAK,CAEtBqzV,IAEHA,CADAA,EAAWjtP,CAAM,CAACpmG,EAAK,CAAG,EAAE,EACnB2zV,qBAAqB,CAAGA,EACpB,aAAT3zV,GAAwB6zV,GAC1B/xW,EAAQxB,gBAAgB,CAAC0f,EAAM0iT,IAInC2wC,EAAS1uW,IAAI,CAAC80N,EAChB,EAEO12N,KAEDqrW,EAAe,CADnBpuV,EAAOkuQ,CAAK,CAACnrR,EAAE,CACU,EACvB6wW,EAAWxF,EAAe,CAACpuV,EAAK,CAAEmyV,IAClCyB,EAAW5zV,EAAMnd,KAAAA,EAAW,KAE5B+wW,EAAW5zV,GAGjB,EAEA6rB,IAAKqkU,GAEL4D,IAAIhyW,CAAO,CAAEke,CAAI,CAAEy5M,CAAE,EAMnB33N,CALAA,EAAU+jW,EAAO/jW,EAAO,EAKhBu5B,EAAE,CAACrb,EAAM,SAAS+zV,IACxBjyW,EAAQ+pC,GAAG,CAAC7rB,EAAMy5M,GAClB33N,EAAQ+pC,GAAG,CAAC7rB,EAAM+zV,EACpB,GACAjyW,EAAQu5B,EAAE,CAACrb,EAAMy5M,EACnB,EAEAwlD,YAAYn9Q,CAAO,CAAEkyW,CAAW,EAE9B,IADIzxW,EACA2f,EAASpgB,EAAQihC,UAAU,CAC/BgtU,GAAajuW,GACbN,EAAQ,IAAIssW,GAAOkG,GAAc,SAASryP,CAAI,EACxCp/G,EACF2f,EAAOigP,YAAY,CAACxgJ,EAAMp/G,EAAM6/P,WAAW,EAE3ClgP,EAAOunQ,YAAY,CAAC9nK,EAAM7/G,GAE5BS,EAAQo/G,CACV,EACF,EAEAy+D,SAASt+K,CAAO,EACd,IAAIs+K,EAAW,EAAE,CAMjB,OALA5+K,EAAQM,EAAQ21Q,UAAU,CAAE,SAAS31Q,CAAO,EAppDxB,IAqpDdA,EAAQykF,QAAQ,EAClB65F,EAASz7K,IAAI,CAAC7C,EAElB,GACOs+K,CACT,EAEAyhL,SAAAA,GACS//V,EAAQmyW,eAAe,EAAInyW,EAAQ21Q,UAAU,EAAI,EAAE,CAG5DvwO,OAAOplC,CAAO,CAAE6/G,CAAI,EAClB,IAAIp7B,EAAWzkF,EAAQykF,QAAQ,CAC/B,GAAIA,IAAAA,GAAkCA,KAAAA,GAEtCo7B,EAAO,IAAImsP,GAAOnsP,GAElB,IAAK,IAAI5+G,EAAI,EAAGo8K,EAAKx9D,EAAKzhH,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAAK,CAC7C,IAAIgf,EAAQ4/F,CAAI,CAAC5+G,EAAE,CACnBjB,EAAQwzG,WAAW,CAACvzF,EACtB,EACF,EAEAmyV,QAAQpyW,CAAO,CAAE6/G,CAAI,EACnB,GAAI7/G,IAAAA,EAAQykF,QAAQ,CAAwB,CAC1C,IAAIhkF,EAAQT,EAAQkkR,UAAU,CAC9BxkR,EAAQ,IAAIssW,GAAOnsP,GAAO,SAAS5/F,CAAK,EACtCjgB,EAAQqgQ,YAAY,CAACpgP,EAAOxf,EAC9B,EACF,CACF,EAEAgtW,KAAKztW,CAAO,CAAEqyW,CAAQ,MAnsBMC,EACxBlyV,EADwBkyV,EAosBFvO,EAAOsO,GAAUvC,EAAE,CAAC,GAAG7uO,KAAK,EAAE,CAAC,EAAE,EAnsBvD7gH,EAASy/F,EAAK5+E,UAAU,GAG1B7gB,EAAOunQ,YAAY,CAAC2qF,EAgsBLtyW,GA7rBjBsyW,EAAQ9+P,WAAW,CA6rBFxzG,EACjB,EAEAoE,OAAQwrW,GAERzlM,OAAOnqK,CAAO,EACZ4vW,GAAa5vW,EAAS,GACxB,EAEAimB,MAAMjmB,CAAO,CAAEokE,CAAU,EACvB,IAAI3jE,EAAQT,EACRogB,EAASpgB,EAAQihC,UAAU,CAE/B,GAAI7gB,EAAQ,CACVgkD,EAAa,IAAI4nS,GAAO5nS,GAExB,IAAK,IAAInjE,EAAI,EAAGo8K,EAAKj5G,EAAWhmE,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAAK,CACnD,IAAI4+G,EAAOz7C,CAAU,CAACnjE,EAAE,CACxBmf,EAAOigP,YAAY,CAACxgJ,EAAMp/G,EAAM6/P,WAAW,EAC3C7/P,EAAQo/G,CACV,CACF,CACF,EAEAr4F,SAAU8nV,GACV/nV,YAAa2nV,GAEb7nP,YAAYrnH,CAAO,CAAEshJ,CAAQ,CAAEixN,CAAS,EAClCjxN,GACF5hJ,EAAQ4hJ,EAAS/2H,KAAK,CAAC,KAAM,SAAS+oF,CAAS,EAC7C,IAAIk/P,EAAiBD,EACjB9V,EAAY+V,IACdA,CAAAA,EAAiB,CAACvD,GAAejvW,EAASszG,EAAS,EAErD,CAACk/P,EAAiBlD,GAAiBJ,EAAgB,EAAGlvW,EAASszG,EACjE,EAEJ,EAEAlzF,OAAOpgB,CAAO,EACZ,IAAIogB,EAASpgB,EAAQihC,UAAU,CAC/B,OAAO7gB,GAAUA,KAAAA,EAAOqkE,QAAQ,CAAmCrkE,EAAS,IAC9E,EAEAwrC,KAAAA,GACS5rD,EAAQyyW,kBAAkB,CAGnCnzW,KAAAA,CAAKU,EAASshJ,IACZ,EAAY7tC,oBAAoB,CACvBzzG,EAAQyzG,oBAAoB,CAAC6tC,GAE7B,EAAE,CAIbrgB,MAAO+sO,GAEP0E,eAAe1yW,CAAO,CAAE5C,CAAK,CAAEu1W,CAAe,EAI5C,IAHIC,EACAC,EACAC,EACAjpQ,EAAYzsG,EAAM8gB,IAAI,EAAI9gB,EAC1BixW,EAAeC,GAAmBtuW,GAClCskH,EAAS+pP,GAAgBA,EAAa/pP,MAAM,CAC5CitP,EAAWjtP,GAAUA,CAAM,CAACza,EAAU,CAEtC0nQ,IAEFqB,EAAa,CACXh0W,iBAAmB,IAAI,CAACo1V,gBAAgB,CAAG,EAAM,EACjDsd,qBAAuB,MAAO,CAA0B,IAA1B,IAAI,CAACtd,gBAAgB,EACnDruO,2BAA6B,IAAI,CAAC8rP,2BAA2B,CAAG,EAAM,EACtEE,gCAAkC,MAAO,CAAqC,IAArC,IAAI,CAACF,2BAA2B,EACzE3zW,gBAAiB+sB,EACjB3M,KAAM2rF,EACNnsG,OAAQsC,CACV,EAGI5C,EAAM8gB,IAAI,EACZ00V,CAAAA,EAAa5yR,EAAO4yR,EAAYx1W,EAAK,EAIvCy1W,EAAerW,GAAY+U,GAC3BuB,EAAcH,EAAkB,CAACC,EAAW,CAAC/5U,MAAM,CAAC85U,GAAmB,CAACC,EAAW,CAEnFlzW,EAAQmzW,EAAc,SAASl7I,CAAE,EAC1Bi7I,EAAWjB,6BAA6B,IAC3Ch6I,EAAGp9J,KAAK,CAACv6D,EAAS8yW,EAEtB,GAEJ,CACF,EAAG,SAASn7I,CAAE,CAAEvvM,CAAI,EAIlB4jV,GAAOjvW,SAAS,CAACqrB,EAAK,CAAG,SAAS+oV,CAAI,CAAEC,CAAI,CAAE2B,CAAI,EAGhD,IAAK,IAFDz1W,EAEK2D,EAAI,EAAGo8K,EAAK,IAAI,CAACj/K,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IACpCw7V,EAAYn/V,GAEVm3D,EADJn3D,EAAQq6N,EAAG,IAAI,CAAC12N,EAAE,CAAEkwW,EAAMC,EAAM2B,KAG9Bz1W,CAAAA,EAAQymW,EAAOzmW,EAAK,EAGtBwwW,GAAexwW,EAAOq6N,EAAG,IAAI,CAAC12N,EAAE,CAAEkwW,EAAMC,EAAM2B,IAGlD,OAAOt+S,EAAUn3D,GAASA,EAAQ,IAAI,CAE1C,GAGA0uW,GAAOjvW,SAAS,CAACxB,IAAI,CAAGywW,GAAOjvW,SAAS,CAACw8B,EAAE,CAC3CyyU,GAAOjvW,SAAS,CAAC2B,MAAM,CAAGstW,GAAOjvW,SAAS,CAACgtC,GAAG,CAyD9C,IAAIipU,GAAQ9kU,IACR+kU,GAAgB,CAAa,WAC/B,IAAI,CAACppW,IAAI,CAAG,CAAC,WACX,OAAOmpW,EACT,EAAE,EACF,CAkEEE,GAAY,cACZC,GAAU,wBACVC,GAAe,IACfC,GAAS,uBACTC,GAAiB,mCACjBC,GAAkBhP,EAAO,aAE7B,SAASiP,GAAY77I,CAAE,EACrB,OAAOntG,SAASztH,SAAS,CAAC0vB,QAAQ,CAACrxB,IAAI,CAACu8N,EAC1C,CAEA,SAAS87I,GAAY97I,CAAE,EACrB,IAAI+7I,EAASF,GAAY77I,GAAIplN,OAAO,CAAC+gW,GAAgB,IAErD,OADWI,EAAO30V,KAAK,CAACm0V,KAAcQ,EAAO30V,KAAK,CAACo0V,GAErD,CAinBA,SAAStI,GAAe8I,CAAa,CAAEjJ,CAAQ,EAC7CA,EAAYA,CAAa,IAAbA,EACZ,IAAIkJ,EAAgB,CAAC,EACjBC,EAAiB,WACjBp3V,EAAO,EAAE,CACTq3V,EAAgB,IAAId,GAEpBe,EAAgB,CAClBprL,SAAU,CACNl/K,SAAUuqW,EAAcvqW,GACxBosB,QAASm+U,EAAcn+U,GACvBx0B,QAAS2yW,EAiFf,SAAiB5rV,CAAI,CAAE5mB,CAAW,EAChC,OAAOq0B,EAAQzN,EAAM,CAAC,YAAa,SAAS07F,CAAS,EACnD,OAAOA,EAAUmwP,WAAW,CAACzyW,EAC/B,EAAE,CACJ,GApFMlE,MAAO02W,EAsFb,SAAe5rV,CAAI,CAAEiwF,CAAG,EAAI,OAAOxiF,EAAQzN,EAAMq+U,EAAQpuP,GAAM,GAAQ,GArFjEm+O,SAAUwd,EAuFhB,SAAkB5rV,CAAI,CAAE9qB,CAAK,EAC3BouW,GAAwBtjV,EAAM,YAC9B2rV,CAAa,CAAC3rV,EAAK,CAAG9qB,EACtB42W,CAAa,CAAC9rV,EAAK,CAAG9qB,CACxB,GA1FMsrL,UA4FN,SAAmBz7D,CAAW,CAAEgnP,CAAO,EACrC,IAAIC,EAAeC,EAAiBlqW,GAAG,CAACgjH,EAAc0mP,GAClDS,EAAWF,EAAavqW,IAAI,CAEhCuqW,EAAavqW,IAAI,CAAG,WAClB,IAAI0qW,EAAeC,EAAiB5qU,MAAM,CAAC0qU,EAAUF,GACrD,OAAOI,EAAiB5qU,MAAM,CAACuqU,EAAS,KAAM,CAACtrL,UAAW0rL,CAAY,EACxE,CACF,CAnGI,CACJ,EAEIF,EAAoBN,EAAcjwP,SAAS,CAC3C2wP,EAAuBV,EAAe,SAAS5mP,CAAW,CAAEunP,CAAM,EAIhE,MAHIzsV,EAAQ8nE,QAAQ,CAAC2kR,IACnBj4V,EAAK5Z,IAAI,CAAC6xW,GAENnB,GAAgB,OAAQ,wBAAyB92V,EAAKgpE,IAAI,CAAC,QACnE,GAEAyuR,EAAgB,CAAC,EAEjBS,EACAF,EAAuBP,EAAe,SAAS/mP,CAAW,CAAEunP,CAAM,EAChE,IAAIjrW,EAAW4qW,EAAiBlqW,GAAG,CAACgjH,EAAc0mP,EAAgBa,GAClE,OAAOF,EAAiB5qU,MAAM,CAC1BngC,EAASI,IAAI,CAAEJ,EAAU1I,KAAAA,EAAWosH,EAC1C,GAEAqnP,EAAmBG,CAEvBZ,CAAAA,CAAa,CAAC,YAAcF,EAAe,CAAG,CAAEhqW,KAAM48V,EAAQkO,EAAuB,EACrFH,EAAiB/J,OAAO,CAAG4J,EAAiB5J,OAAO,CAAGvC,KACtD,IAAI0M,EAAYC,EAAYlB,GAU5B,MARAa,CADAA,EAAmBG,EAAsBxqW,GAAG,CAAC,cAC5BugW,QAAQ,CAAGA,EAC5BhrW,EAAQk1W,EAAW,SAASj9I,CAAE,EAAQA,GAAI68I,EAAiB5qU,MAAM,CAAC+tL,EAAK,GAEvE68I,EAAiBM,cAAc,CAAG,SAASC,CAAI,EAC7Cr1W,EAAQm1W,EAAYE,GAAO,SAASp9I,CAAE,EAAQA,GAAI68I,EAAiB5qU,MAAM,CAAC+tL,EAAK,EACjF,EAGO68I,EAMP,SAASR,EAAcgB,CAAQ,EAC7B,OAAO,SAASh3W,CAAG,CAAEV,CAAK,EACxB,IAAI0wR,EAAShwR,GAGX,OAAOg3W,EAASh3W,EAAKV,GAFrBoC,EAAQ1B,EAAK2nW,EAAcqP,GAI/B,CACF,CAEA,SAASvrW,EAAS2e,CAAI,CAAE6sV,CAAS,EAK/B,GAJAvJ,GAAwBtjV,EAAM,WAC1BkoB,CAAAA,EAAW2kU,IAAc7oV,EAAQ6oV,EAAS,GAC5CA,CAAAA,EAAYZ,EAAiBJ,WAAW,CAACgB,EAAS,EAEhD,CAACA,EAAUprW,IAAI,CACjB,MAAM0pW,GAAgB,OAAQ,kDAAqDnrV,GAErF,OAAQ2rV,CAAa,CAAC3rV,EAAOyrV,EAAe,CAAGoB,CACjD,CAYA,SAASp/U,EAAQzN,CAAI,CAAE8sV,CAAS,CAAEC,CAAO,EACvC,OAAO1rW,EAAS2e,EAAM,CACpBve,KAAMsrW,CAAY,IAAZA,aAVN,IAAIpoV,EAASynV,EAAiB5qU,MAAM,CAUesrU,EAVL,IAAI,EAClD,GAAIzY,EAAY1vU,GACd,MAAMwmV,GAAgB,QAAS,+DAQYnrV,GAN7C,OAAO2E,CACT,EAKkEmoV,CAClE,EACF,CA6BA,SAASL,EAAYlB,CAAa,EAChCpI,GAAU9O,EAAYkX,IAAkBvnV,EAAQunV,GAAgB,gBAAiB,gBACjF,IACIyB,EADAR,EAAY,EAAE,CA+ClB,OA7CAl1W,EAAQi0W,EAAe,SAAS9rW,CAAM,EACpC,IAAIisW,EAAc3pW,GAAG,CAACtC,IACtBisW,EAAc9mT,GAAG,CAACnlD,EAAQ,IAa1B,GAAI,CACEkoF,EAASloF,IACXutW,EAAWpR,EAAcn8V,GACzB2sW,EAAiB/J,OAAO,CAAC5iW,EAAO,CAAGutW,EACnCR,EAAYA,EAAU/7U,MAAM,CAACg8U,EAAYO,EAASld,QAAQ,GAAGr/T,MAAM,CAACu8U,EAASje,UAAU,EACvFke,EAAeD,EAASxe,YAAY,EACpCye,EAAeD,EAASte,aAAa,GAC5BxmT,EAAWzoC,GAClB+sW,EAAU/xW,IAAI,CAACwxW,EAAiBzqU,MAAM,CAAC/hC,IAChCukB,EAAQvkB,GACf+sW,EAAU/xW,IAAI,CAACwxW,EAAiBzqU,MAAM,CAAC/hC,IAEzC2jW,GAAY3jW,EAAQ,SAExB,CAAE,MAAOs+B,EAAG,CAYV,MAXI/Z,EAAQvkB,IACVA,CAAAA,EAASA,CAAM,CAACA,EAAOzJ,MAAM,CAAG,EAAE,EAEhC+nC,EAAEuK,OAAO,EAAIvK,EAAEksR,KAAK,EAAI,CAAClsR,EAAEksR,KAAK,CAACjzS,QAAQ,CAAC+mB,EAAEuK,OAAO,GAMrDvK,CAAAA,EAAIA,EAAEuK,OAAO,CAAG,KAAOvK,EAAEksR,KAAK,EAE1BkhD,GAAgB,WAAY,gDACxB1rW,EAAQs+B,EAAEksR,KAAK,EAAIlsR,EAAEuK,OAAO,EAAIvK,EAC5C,EAvCA,SAASkvU,EAAerlB,CAAK,EAG3B,IAAK/uV,EAAI,EAAGo8K,EAAK2yK,EAAM5xV,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAAK,CAC1C,IAHEA,EACAo8K,EAEEi4L,EAAatlB,CAAK,CAAC/uV,EAAE,CAGzBwI,EAFgCU,GAAG,CAACmrW,CAAU,CAAC,EAAE,CAEzC,CAACA,CAAU,CAAC,EAAE,CAAC,IAAIA,CAAU,CAAC,EAAE,CAC1C,CACF,CA+BF,GACOV,CACT,CAMA,SAASH,EAAuBh1C,CAAK,CAAE5pS,CAAO,EAE5C,SAAS0/U,EAAWpoP,CAAW,CAAEunP,CAAM,EACrC,GAAIj1C,EAAMtzS,cAAc,CAACghG,GAAc,CACrC,GAAIsyM,CAAK,CAACtyM,EAAY,GAAKymP,EACzB,MAAML,GAAgB,OAAQ,iCACpBpmP,EAAc,OAAS1wG,EAAKgpE,IAAI,CAAC,SAE7C,OAAOg6O,CAAK,CAACtyM,EAAY,CAEzB,GAAI,CAIF,OAHA1wG,EAAKs+C,OAAO,CAACoyD,GACbsyM,CAAK,CAACtyM,EAAY,CAAGymP,EACrBn0C,CAAK,CAACtyM,EAAY,CAAGt3F,EAAQs3F,EAAaunP,GACnCj1C,CAAK,CAACtyM,EAAY,CACzB,MAAO3mD,EAAK,CAIZ,MAHIi5P,CAAK,CAACtyM,EAAY,GAAKymP,GACzB,OAAOn0C,CAAK,CAACtyM,EAAY,CAErB3mD,CACR,QAAU,CACR/pD,EAAKwkI,KAAK,EACZ,CAEJ,CAGA,SAASu0N,EAAc79I,CAAE,CAAEwmI,CAAM,CAAEhxO,CAAW,EAI5C,IAAK,IAHDhpH,EAAO,EAAE,CACT7C,EAAUupW,GAAe4K,UAAU,CAAC99I,EAAI+yI,EAAUv9O,GAE7ClsH,EAAI,EAAG7C,EAASkD,EAAQlD,MAAM,CAAE6C,EAAI7C,EAAQ6C,IAAK,CACxD,IAAIjD,EAAMsD,CAAO,CAACL,EAAE,CACpB,GAAI,iBAAOjD,EACT,MAAMu1W,GAAgB,OACd,sEAAuEv1W,GAEjFmG,EAAKtB,IAAI,CAACs7V,GAAUA,EAAOhyU,cAAc,CAACnuB,GAAOmgW,CAAM,CAACngW,EAAI,CACXu3W,EAAWv3W,EAAKmvH,GACnE,CACA,OAAOhpH,CACT,CAqDA,MAAO,CACLylC,OAvCF,SAAgB+tL,CAAE,CAAExlL,CAAI,CAAEgsT,CAAM,CAAEhxO,CAAW,EACrB,UAAlB,OAAOgxO,IACThxO,EAAcgxO,EACdA,EAAS,MAGX,IAAIh6V,EAAOqxW,EAAc79I,EAAIwmI,EAAQhxO,GAKrC,GAJI/gG,EAAQurM,IACVA,CAAAA,EAAKA,CAAE,CAACA,EAAGv5N,MAAM,CAAG,EAAE,EAGpB,CAACs3W,SAxBUttU,CAAI,EACnB,GAAI,mBAAOA,EACT,MAAO,GAET,IAAIrb,EAASqb,EAAKutU,WAAW,CAM7B,OALK9O,EAAU95U,IAGbA,CAAAA,EAASqb,EAAKutU,WAAW,CAAG,6BAA6B53W,IAAI,CAACy1W,GAAYprU,GAAK,EAE1Erb,CACT,EAae4qM,GAGX,OAAOA,EAAGp9J,KAAK,CAACpoB,EAAMhuC,GAEtBA,EAAK42D,OAAO,CAAC,MACbmpS,EAAoBtoP,OAAO,CAAGzpE,EAE9B,IAAIvqC,EAAW,GAAK4iH,CAAAA,SAASztH,SAAS,CAACxB,IAAI,CAACg/D,KAAK,CAACo9J,EAAIxzN,EAAI,EAG1D,OAFA+/V,EAAoBtoP,OAAO,CAAG,KAEvBh0G,CAEX,EAgBEqsW,YAbF,SAAqB/iR,CAAI,CAAEitQ,CAAM,CAAEhxO,CAAW,EAG5C,IAAIyoP,EAAQxpV,EAAQ8kE,GAAQA,CAAI,CAACA,EAAK9yF,MAAM,CAAG,EAAE,CAAG8yF,EAChD/sF,EAAOqxW,EAActkR,EAAMitQ,EAAQhxO,GAGvC,OADAhpH,EAAK42D,OAAO,CAAC,MACN,GAAKyvD,CAAAA,SAASztH,SAAS,CAACxB,IAAI,CAACg/D,KAAK,CAACq7S,EAAMzxW,EAAI,CACtD,EAMEgG,IAAKorW,EACLM,SAAUhL,GAAe4K,UAAU,CACnCvlT,IAAAA,GACS6jT,EAAc5nV,cAAc,CAAC/D,EAAOyrV,IAAmBp0C,EAAMtzS,cAAc,CAAC/D,EAEvF,CACF,CACF,CAcA,SAAS0tV,KAEP,IAAIC,EAAuB,EAe3B,KAAI,CAACC,oBAAoB,CAAG,WAC1BD,EAAuB,EACzB,EA+IA,IAAI,CAAClsW,IAAI,CAAG,CAAC,UAAW,YAAa,aAAc,SAAS6L,CAAO,CAAEE,CAAS,CAAEtC,CAAU,EACxF,IAAI/U,EAAWmX,EAAQnX,QAAQ,CAqC/B,SAAS4oH,EAAS5nH,CAAI,EACpB,GAAIA,EAAM,CACRA,EAAKgrD,cAAc,GAEnB,IAAI+3E,EAAS2zO,WAvBf,IAAI3zO,EAASsyH,EAAOshH,OAAO,CAE3B,GAAI5lU,EAAWgyF,GACbA,EAASA,SACJ,GAAI+jO,GAAU/jO,GAAS,CAC5B,IAAI/iI,EAAO+iI,CAAM,CAAC,EAAE,CAGlBA,EADE35E,UAAAA,EADgBs7B,gBAAgB,CAAC1kF,GAC3BkwB,QAAQ,CACP,EAEAlwB,EAAK+oD,qBAAqB,GAAGypD,MAAM,MAEpC+2J,EAASxmI,IACnBA,CAAAA,EAAS,GAGX,OAAOA,CACT,IAQI,GAAIA,EAAQ,CAcV,IAAI6zO,EAAU52W,EAAK+oD,qBAAqB,GAAGG,GAAG,CAC9C/yC,EAAQu/O,QAAQ,CAAC,EAAGkhH,EAAU7zO,EAChC,CACF,MACE5sH,EAAQyxG,QAAQ,CAAC,EAAG,EAExB,CAEA,SAASytI,EAAOwhH,CAAI,MAGdC,EA/DkBpgU,EAClBlpB,EA6DJqpV,CAAAA,EAAOrmR,EAASqmR,GAAQA,EAAOttG,EAASstG,GAAQA,EAAK3pV,QAAQ,GAAK7W,EAAUwgW,IAAI,EAAC,EAOvEC,CAAAA,EAAM93W,EAASyiC,cAAc,CAACo1U,EAAI,EAAIjvP,EAASkvP,IArEnCpgU,EAwES13C,EAAS+3W,iBAAiB,CAACF,GAvEtDrpV,EAAS,KACb9sB,MAAMlD,SAAS,CAACg/C,IAAI,CAAC3gD,IAAI,CAAC66C,EAAM,SAASj2C,CAAO,EAC9C,GAAIinW,MAAAA,GAAUjnW,GAEZ,OADA+sB,EAAS/sB,EACF,EAEX,GAiEUq2W,EAhEHtpV,GAgE4Do6F,EAASkvP,GAG1D,QAATD,GAAgBjvP,EAAS,MATvBA,EAAS,KAUtB,CAgBA,OAZI4uP,GACFziW,EAAWya,MAAM,CAAC,WAA4B,OAAOnY,EAAUwgW,IAAI,EAAG,EACpE,SAA+B5jV,CAAM,CAAEm6F,CAAM,EAE3C,GAAIn6F,IAAWm6F,GAAUn6F,KAAAA,EAEzB+jV,KA31DoB34W,EAAQ44W,EAAR54W,EA21DC,WACnB0V,EAAW8oG,UAAU,CAACw4I,EACxB,EA31DJ4hH,aAAAA,CADJA,EAAMA,GAAOhzW,CAAM,EACXjF,QAAQ,CAAC+0V,UAAU,CAIzBkjB,EAAIz1U,UAAU,CAACnjC,GAGfmmW,EAAOyS,GAAKj9U,EAAE,CAAC,OAAQ37B,EAo1DhB,CACH,GAGGg3P,CACT,EAAE,CAjRJi2G,GAAe4K,UAAU,CA93BzB,SAAkB99I,CAAE,CAAE+yI,CAAQ,CAAEtiV,CAAI,MAC9B9mB,EAEA0nD,EAVA7kD,EAYJ,GAAI,mBAAOwzN,EACT,IAAI,CAAEr2N,CAAAA,EAAUq2N,EAAGr2N,OAAO,EAAG,CAE3B,GADAA,EAAU,EAAE,CACRq2N,EAAGv5N,MAAM,CAAE,CACb,GAAIssW,EAIF,MAHK36Q,EAAS3nE,IAAUA,GACtBA,CAAAA,EAAOuvM,EAAGvvM,IAAI,EAjBxB,EADIjkB,EAAOsvW,GAkBwB97I,IAhB1B,YAAc,CAACxzN,CAAI,CAAC,EAAE,EAAI,IAAIoO,OAAO,CAAC,YAAa,KAAO,IAE5D,IADP,CAeqC,EAEvBghW,GAAgB,WACpB,4EAA6EnrV,GAGjF1oB,EAAQ+2W,GADc9+I,EACP,CAAC,EAAE,CAACptM,KAAK,CAAC6oV,IAAe,SAASvO,CAAG,EAClDA,EAAItyV,OAAO,CAAC8gW,GAAQ,SAAS97V,CAAG,CAAEm/V,CAAU,CAAEtuV,CAAI,EAChD9mB,EAAQuB,IAAI,CAACulB,EACf,EACF,EACF,CACAuvM,EAAGr2N,OAAO,CAAGA,CACf,OACS8qB,EAAQurM,IACjB3uK,EAAO2uK,EAAGv5N,MAAM,CAAG,EACnBotW,GAAY7zI,CAAE,CAAC3uK,EAAK,CAAE,MACtB1nD,EAAUq2N,EAAGz3N,KAAK,CAAC,EAAG8oD,IAEtBwiT,GAAY7zI,EAAI,KAAM,IAExB,OAAOr2N,CACT,EAknCA,IAAIq1W,GAAiBpS,EAAO,YAExBqS,GAAuB,aAE3B,SAASC,GAAazxS,CAAC,CAAC2a,CAAC,SACvB,GAAWA,EACN3a,EACA2a,GACD3zD,EAAQg5C,IAAIA,CAAAA,EAAIA,EAAEqgB,IAAI,CAAC,MACvBr5D,EAAQ2zD,IAAIA,CAAAA,EAAIA,EAAE0F,IAAI,CAAC,MACpBrgB,EAAI,IAAM2a,GAHF3a,EADA2a,EADM,EAMvB,CAoCA,SAAS+2R,GAAsB5yV,CAAO,EACpC,OAAO8pQ,EAAS9pQ,GACVA,EACA,CAAC,CACT,CAEA,IAAI6yV,GAAuC,WACzC,IAAI,CAACltW,IAAI,CAAGghB,CACd,EAIImsV,GAA0C,WAC5C,IAAIC,EAAkB,IAAIjE,GACtBkE,EAAqB,EAAE,CAE3B,IAAI,CAACrtW,IAAI,CAAG,CAAC,kBAAmB,aAC3B,SAASstW,CAAe,CAAI7jW,CAAU,EACzC,MAAO,CACL4nJ,QAASrwI,EACT0O,GAAI1O,EACJkf,IAAKlf,EACLusV,IAAKvsV,EAELhoB,KAAK7C,CAAO,CAAE5C,CAAK,CAAE8mB,CAAO,CAAEmzV,CAAY,EACpCA,GACFA,IAIEnzV,CADJA,EAAUA,GAAW,CAAC,GACV2nC,IAAI,EACd7rD,EAAQyyG,GAAG,CAACvuF,EAAQ2nC,IAAI,EAEtB3nC,EAAQ+wJ,EAAE,EACZj1K,EAAQyyG,GAAG,CAACvuF,EAAQ+wJ,EAAE,EAGpB/wJ,CAAAA,EAAQsD,QAAQ,EAAItD,EAAQqD,WAAW,IA8DF5kB,EA7DHuhB,EAAQsD,QAAQ,CA6DRpjB,EA7DU8f,EAAQqD,WAAW,CAgEzE+vV,EAAeC,EAFft1W,EAAOg1W,EAAgB9sW,GAAG,CA9DCnK,IA8DY,CAAC,EAER2C,EAAK,IACrC60W,EAAiBD,EAAWt1W,EAAMmC,EAAQ,IAE1CkzW,CAAAA,GAAgBE,CAAa,IAE/BP,EAAgBjqT,GAAG,CArEUhtD,EAqEAiC,GAC7Bi1W,EAAmBr0W,IAAI,CAtEM7C,GAwEK,IAA9Bk3W,EAAmB94W,MAAM,EAC3BkV,EAAWmkW,YAAY,CAACC,KAtE1B,IA0DyC/0W,EAAKyB,EAC5CnC,EAEAq1W,EACAE,EA9DEG,EAAS,IAAIR,EAKjB,OADAQ,EAAOhyS,QAAQ,GACRgyS,CACT,CACF,EAGA,SAASJ,EAAWt1W,CAAI,CAAE+vU,CAAO,CAAE10U,CAAK,EACtC,IAAIs6W,EAAU,GAWd,OAVI5lC,GAGFtyU,EAFAsyU,EAAUjiP,EAASiiP,GAAWA,EAAQznT,KAAK,CAAC,KAClC6B,EAAQ4lT,GAAWA,EAAU,EAAE,CACxB,SAAS1+N,CAAS,EAC7BA,IACFskQ,EAAU,GACV31W,CAAI,CAACqxG,EAAU,CAAGh2G,EAEtB,GAEKs6W,CACT,CAEA,SAASF,IACPh4W,EAAQw3W,EAAoB,SAASl3W,CAAO,EAC1C,IAAIiC,EAAOg1W,EAAgB9sW,GAAG,CAACnK,GAC/B,GAAIiC,EAAM,CACR,IA/FY+vU,EAOhBt2R,EAwFQm8T,GA9FR9nR,EADgBiiP,EA+FgBhyU,EAAQvD,IAAI,CAAC,WA7F/Cu1U,CAAAA,EAAUA,EAAQznT,KAAK,CAAC,MAKtBmxB,EAAMwsT,KACVxoW,EAAQsyU,EAAS,SAAS8lC,CAAK,EAGzBA,EAAM15W,MAAM,EACds9C,CAAAA,CAAG,CAACo8T,EAAM,CAAG,EAAG,CAEpB,GACOp8T,GAiFKq8T,EAAQ,GACR9sP,EAAW,GACfvrH,EAAQuC,EAAM,SAAS20B,CAAM,CAAE08E,CAAS,EACvB,CAAC,CAACukQ,CAAQ,CAACvkQ,EAAU,GAChC18E,IACEA,EACFmhV,GAAS,CAACA,EAAM35W,MAAM,CAAG,IAAM,IAAMk1G,EAErC2X,GAAY,CAACA,EAAS7sH,MAAM,CAAG,IAAM,IAAMk1G,EAGjD,GAEA5zG,EAAQM,EAAS,SAASq2W,CAAG,EACvB0B,GACFzI,GAAe+G,EAAK0B,GAElB9sP,GACFikP,GAAkBmH,EAAKprP,EAE3B,GACAgsP,EAAgBrrW,MAAM,CAAC5L,EACzB,CACF,GACAk3W,EAAmB94W,MAAM,CAAG,CAC9B,CAmBF,EAAE,EAeA45W,GAAmB,CAAC,WAAyB,SAASrvL,CAAQ,EAChE,IAAIl/K,EAAW,IAAI,CACfwuW,EAAkB,KAClBC,EAAe,IAEnB,KAAI,CAACC,sBAAsB,CAAG3zW,OAAOmzD,MAAM,CAAC,MAyC5C,IAAI,CAACj0D,QAAQ,CAAG,SAAS0kB,CAAI,CAAEyN,CAAO,EACpC,GAAIzN,GAAQA,MAAAA,EAAK+kE,MAAM,CAAC,GACtB,MAAMwpR,GAAe,UAAW,wDAA6DvuV,GAG/F,IAAIpqB,EAAMoqB,EAAO,YACjB3e,CAAAA,EAAS0uW,sBAAsB,CAAC/vV,EAAKqnP,MAAM,CAAC,GAAG,CAAGzxQ,EAClD2qL,EAAS9yJ,OAAO,CAAC73B,EAAK63B,EACxB,EAuCA,IAAI,CAACqiV,YAAY,CAAG,SAASE,CAAQ,EAKnC,OAJyB,GAArB59S,UAAUp8D,MAAM,EAClB85W,CAAAA,EAAe5nU,EAAW8nU,GAAYA,EAAW,IAAG,EAG/CF,CACT,EAqBA,IAAI,CAACD,eAAe,CAAG,SAASI,CAAU,EACxC,GAAI79S,GAAAA,UAAUp8D,MAAM,EAClB65W,CAAAA,EAAkB,aAAuB7R,OAAUiS,EAAa,IAAG,GAG7DC,OAD2B,cAAgB1B,GAAuB,eACpD74W,IAAI,CAACk6W,EAAgBxrV,QAAQ,IAE7C,MADAwrV,EAAkB,KACZtB,GAAe,UAAW,wHAAyHC,IAI/J,OAAOqB,CACT,EAEA,IAAI,CAACpuW,IAAI,CAAG,CAAC,iBAAkB,SAAS0uW,CAAc,EACpD,SAASC,EAAUx4W,CAAO,CAAE0gL,CAAa,CAAE+3L,CAAY,EAIrD,GAAIA,EAAc,CAChB,IAAIC,EAAYC,SAhTI34W,CAAO,EACjC,IAAK,IAAIiB,EAAI,EAAGA,EAAIjB,EAAQ5B,MAAM,CAAE6C,IAAK,CACvC,IAAIo1W,EAAMr2W,CAAO,CAACiB,EAAE,CACpB,GAAIo1W,IAAAA,EAAI5xR,QAAQ,CACd,OAAO4xR,CAEX,CACF,EAyS2CoC,IAC/BC,GAAcA,EAAUz3U,UAAU,EAAKy3U,EAAUE,sBAAsB,EACzEH,CAAAA,EAAe,IAAG,CAEtB,CACIA,EACFA,EAAaxyV,KAAK,CAACjmB,GAEnB0gL,EAAc0xL,OAAO,CAACpyW,EAE1B,CAqBA,MAAO,CA8BLu5B,GAAIg/U,EAAeh/U,EAAE,CA+BrBwQ,IAAKwuU,EAAexuU,GAAG,CAkBvBqtU,IAAKmB,EAAenB,GAAG,CA+BvBl8M,QAASq9M,EAAer9M,OAAO,CAU/B7iJ,OAAOs/V,CAAM,EACPA,EAAO96W,GAAG,EACZ86W,EAAO96W,GAAG,EAEd,EA0BA2qQ,MAAAA,CAAMxnQ,EAASogB,EAAQ6F,EAAO/B,KAC5B9D,EAASA,GAAU2jV,EAAO3jV,GAC1B6F,EAAQA,GAAS89U,EAAO99U,GAExBuyV,EAAUx4W,EADVogB,EAASA,GAAU6F,EAAM7F,MAAM,GACJ6F,GACpBsyV,EAAe11W,IAAI,CAAC7C,EAAS,QAAS82W,GAAsB5yV,KA2BrE4gI,KAAAA,CAAK9kJ,EAASogB,EAAQ6F,EAAO/B,KAC3B9D,EAASA,GAAU2jV,EAAO3jV,GAC1B6F,EAAQA,GAAS89U,EAAO99U,GAExBuyV,EAAUx4W,EADVogB,EAASA,GAAU6F,EAAM7F,MAAM,GACJ6F,GACpBsyV,EAAe11W,IAAI,CAAC7C,EAAS,OAAQ82W,GAAsB5yV,KAsBpEy7U,MAAAA,CAAM3/V,EAASkkB,IACNq0V,EAAe11W,IAAI,CAAC7C,EAAS,QAAS82W,GAAsB5yV,GAAU,WAC3ElkB,EAAQoE,MAAM,EAChB,GA2BFojB,SAAAA,CAASxnB,EAASszG,EAAWpvF,KAE3BA,CADAA,EAAU4yV,GAAsB5yV,EAAO,EAC/BsD,QAAQ,CAAGqvV,GAAa3yV,EAAQ20V,QAAQ,CAAEvlQ,GAC3CilQ,EAAe11W,IAAI,CAAC7C,EAAS,WAAYkkB,IA2BlDqD,YAAAA,CAAYvnB,EAASszG,EAAWpvF,KAE9BA,CADAA,EAAU4yV,GAAsB5yV,EAAO,EAC/BqD,WAAW,CAAGsvV,GAAa3yV,EAAQqD,WAAW,CAAE+rF,GACjDilQ,EAAe11W,IAAI,CAAC7C,EAAS,cAAekkB,IA4BrD40V,SAAAA,CAAS94W,EAAS2C,EAAKyB,EAAQ8f,KAE7BA,CADAA,EAAU4yV,GAAsB5yV,EAAO,EAC/BsD,QAAQ,CAAGqvV,GAAa3yV,EAAQsD,QAAQ,CAAE7kB,GAClDuhB,EAAQqD,WAAW,CAAGsvV,GAAa3yV,EAAQqD,WAAW,CAAEnjB,GACjDm0W,EAAe11W,IAAI,CAAC7C,EAAS,WAAYkkB,IA2ClD2iG,QAAAA,CAAQ7mH,EAAS6rD,EAAMopH,EAAI3hE,EAAWpvF,KAEpCA,CADAA,EAAU4yV,GAAsB5yV,EAAO,EAC/B2nC,IAAI,CAAG3nC,EAAQ2nC,IAAI,CAAGm0B,EAAO97D,EAAQ2nC,IAAI,CAAEA,GAAQA,EAC3D3nC,EAAQ+wJ,EAAE,CAAK/wJ,EAAQ+wJ,EAAE,CAAKj1F,EAAO97D,EAAQ+wJ,EAAE,CAAEA,GAAUA,EAE3D3hE,EAAYA,GAAa,oBACzBpvF,EAAQ60V,WAAW,CAAGlC,GAAa3yV,EAAQ60V,WAAW,CAAEzlQ,GACjDilQ,EAAe11W,IAAI,CAAC7C,EAAS,UAAWkkB,GAEnD,CACF,EAAE,EACF,CAGE80V,GAAgD,WAClD,IAAI,CAACnvW,IAAI,CAAG,CAAC,QAAS,SAASovW,CAAK,EAClC,IAAIC,EAAY,EAAE,CAElB,SAASC,EAAYxhJ,CAAE,EACrBuhJ,EAAUr2W,IAAI,CAAC80N,GACXuhJ,EAAU96W,MAAM,CAAG,GACvB66W,EAAM,WACJ,IAAK,IAAIh4W,EAAI,EAAGA,EAAIi4W,EAAU96W,MAAM,CAAE6C,IACpCi4W,CAAS,CAACj4W,EAAE,GAEdi4W,EAAY,EAAE,EAElB,CAEA,OAAO,WACL,IAAIE,EAAS,GAIb,OAHAD,EAAY,WACVC,EAAS,EACX,GACO,SAAS72W,CAAQ,EAClB62W,EACF72W,IAEA42W,EAAY52W,EAEhB,CACF,CACF,EAAE,EAGA82W,GAA8C,WAChD,IAAI,CAACxvW,IAAI,CAAG,CAAC,KAAM,WAAY,oBAAqB,qBAAsB,WACrE,SAASqL,CAAE,CAAIokW,CAAQ,CAAIC,CAAiB,CAAIC,CAAkB,CAAIp2W,CAAQ,EA0CjF,SAASq2W,EAAc/J,CAAI,EACzB,IAAI,CAACgK,OAAO,CAAChK,GAEb,IAAIiK,EAAUJ,IACVK,EAAc,SAASjiJ,CAAE,EAC3Bv0N,EAASu0N,EAAI,EAAG,GAClB,CAEA,KAAI,CAACkiJ,cAAc,CAAG,EAAE,CACxB,IAAI,CAACC,KAAK,CAAG,SAASniJ,CAAE,EAClB6hJ,IACFI,EAAYjiJ,GAEZgiJ,EAAQhiJ,EAEZ,EACA,IAAI,CAACoiJ,MAAM,CAAG,CAChB,CA4FA,OAjJAN,EAAcO,KAAK,CAAG,SAASA,CAAK,CAAEz3W,CAAQ,EAC5C,IAAI9B,EAAQ,EAEZmrD,CACA,SAASA,IACP,GAAInrD,IAAUu5W,EAAM57W,MAAM,CAAE,CAC1BmE,EAAS,IACT,MACF,CAEAy3W,CAAK,CAACv5W,EAAM,CAAC,SAASwJ,CAAQ,EAC5B,GAAIA,CAAa,IAAbA,EAAoB,CACtB1H,EAAS,IACT,MACF,CACA9B,IACAmrD,GACF,EACF,IACF,EAEA6tT,EAAcliW,GAAG,CAAG,SAAS0iW,CAAO,CAAE13W,CAAQ,EAC5C,IAAI2E,EAAQ,EACR0vB,EAAS,GAKb,SAASsjV,EAAWjwW,CAAQ,EAC1B2sB,EAASA,GAAU3sB,EACf,EAAE/C,IAAU+yW,EAAQ77W,MAAM,EAC5BmE,EAASq0B,EAEb,CATAl3B,EAAQu6W,EAAS,SAAStC,CAAM,EAC9BA,EAAO92O,IAAI,CAACq5O,EACd,EAQF,EAqBAT,EAAc18W,SAAS,CAAG,CACxB28W,QAAQhK,CAAI,EACV,IAAI,CAACA,IAAI,CAAGA,GAAQ,CAAC,CACvB,EAEA7uO,KAAK82F,CAAE,EACD,QAAI,CAACoiJ,MAAM,CACbpiJ,IAEA,IAAI,CAACkiJ,cAAc,CAACh3W,IAAI,CAAC80N,EAE7B,EAEAp2F,SAAU12G,EAEVsvV,aACE,GAAI,CAAC,IAAI,CAAC14W,OAAO,CAAE,CACjB,IAAI0wC,EAAO,IAAI,CACf,IAAI,CAAC1wC,OAAO,CAAGyT,EAAG,SAASrT,CAAO,CAAEC,CAAM,EACxCqwC,EAAK0uF,IAAI,CAAC,SAASjqG,CAAM,EACnBA,CAAW,IAAXA,EACF90B,IAEAD,GAEJ,EACF,EACF,CACA,OAAO,IAAI,CAACJ,OAAO,EAGrBlE,KAAK68W,CAAc,CAAEC,CAAa,EAChC,OAAO,IAAI,CAACF,UAAU,GAAG58W,IAAI,CAAC68W,EAAgBC,EAChD,EAEA,MAAS,SAAS50N,CAAO,EACvB,OAAO,IAAI,CAAC00N,UAAU,GAAG,KAAQ,CAAC10N,EACpC,EAEA,QAAW,SAASA,CAAO,EACzB,OAAO,IAAI,CAAC00N,UAAU,GAAG,OAAU,CAAC10N,EACtC,EAEA9oB,QACM,IAAI,CAAC+yO,IAAI,CAAC/yO,KAAK,EACjB,IAAI,CAAC+yO,IAAI,CAAC/yO,KAAK,EAEnB,EAEA6B,SACM,IAAI,CAACkxO,IAAI,CAAClxO,MAAM,EAClB,IAAI,CAACkxO,IAAI,CAAClxO,MAAM,EAEpB,EAEA3hI,MACM,IAAI,CAAC6yW,IAAI,CAAC7yW,GAAG,EACf,IAAI,CAAC6yW,IAAI,CAAC7yW,GAAG,GAEf,IAAI,CAACy9W,QAAQ,CAAC,GAChB,EAEAjiW,SACM,IAAI,CAACq3V,IAAI,CAACr3V,MAAM,EAClB,IAAI,CAACq3V,IAAI,CAACr3V,MAAM,GAElB,IAAI,CAACiiW,QAAQ,CAAC,GAChB,EAEA30S,SAAS17D,CAAQ,EACf,IAAIkoC,EAAO,IAAI,CAjIC,IAkIZA,EAAK4nU,MAAM,GACb5nU,EAAK4nU,MAAM,CAlIQ,EAmInB5nU,EAAK2nU,KAAK,CAAC,WACT3nU,EAAKmoU,QAAQ,CAACrwW,EAChB,GAEJ,EAEAqwW,SAASrwW,CAAQ,EAxIO,IAyIlB,IAAI,CAAC8vW,MAAM,GACbr6W,EAAQ,IAAI,CAACm6W,cAAc,CAAE,SAASliJ,CAAE,EACtCA,EAAG1tN,EACL,GACA,IAAI,CAAC4vW,cAAc,CAACz7W,MAAM,CAAG,EAC7B,IAAI,CAAC27W,MAAM,CA9IS,EAgJxB,CACF,EAEON,CACT,EAAE,EAkBAc,GAA0B,WAC5B,IAAI,CAAC1wW,IAAI,CAAG,CAAC,QAAS,KAAM,kBAAmB,SAASovW,CAAK,CAAE/jW,CAAE,CAAEiiW,CAAe,EAEhF,OAAO,SAASn3W,CAAO,CAAEw6W,CAAc,EAKrC,IAiBIpuH,EAjBAloO,EAAUs2V,GAAkB,CAAC,CAC5Bt2V,CAAAA,EAAQu2V,UAAU,EACrBv2V,CAAAA,EAAUyR,GAAKzR,EAAO,EAMpBA,EAAQw2V,aAAa,EACvBx2V,CAAAA,EAAQ2nC,IAAI,CAAG3nC,EAAQ+wJ,EAAE,CAAG,IAAG,EAG7B/wJ,EAAQ2nC,IAAI,GACd7rD,EAAQyyG,GAAG,CAACvuF,EAAQ2nC,IAAI,EACxB3nC,EAAQ2nC,IAAI,CAAG,MAIjB,IAAI8rT,EAAS,IAAIR,EACjB,MAAO,CACLl/V,MAAOmpK,EACPvkL,IAAKukL,CACP,EAEA,SAASA,IAQP,OAPA63L,EAAM,WAWF/0V,EAAQsD,QAAQ,GAClBxnB,EAAQwnB,QAAQ,CAACtD,EAAQsD,QAAQ,EACjCtD,EAAQsD,QAAQ,CAAG,MAEjBtD,EAAQqD,WAAW,GACrBvnB,EAAQunB,WAAW,CAACrD,EAAQqD,WAAW,EACvCrD,EAAQqD,WAAW,CAAG,MAEpBrD,EAAQ+wJ,EAAE,GACZj1K,EAAQyyG,GAAG,CAACvuF,EAAQ+wJ,EAAE,EACtB/wJ,EAAQ+wJ,EAAE,CAAG,MAnBRm3E,GACHurH,EAAOhyS,QAAQ,GAEjBymL,EAAS,EACX,GACOurH,CACT,CAgBF,CACF,EAAE,EA0BJ,SAASgD,GAAQn3W,CAAM,CAAEjF,CAAQ,CAAEk0C,CAAI,CAAE6mU,CAAQ,EAC/C,IA2DIsB,EAEAC,EA7DA1oU,EAAO,IAAI,CACXtK,EAAWrkC,EAAOqkC,QAAQ,CAC1BiwG,EAAUt0I,EAAOs0I,OAAO,CACxB/2G,EAAav9B,EAAOu9B,UAAU,CAC9BF,EAAer9B,EAAOq9B,YAAY,CAClCi6U,EAAkB,CAAC,CAEvB3oU,CAAAA,EAAK4oU,MAAM,CAAG,GAEd,IAAIC,EAA0B,EAC1BC,EAA8B,EAAE,CAUpC,SAASC,EAA2BvjJ,CAAE,EACpC,GAAI,CACFA,KAAMitI,GAAUpqS,UAAW,GAC7B,QAAU,CAER,GAAIwgT,KAAAA,EACF,KAAOC,EAA4B78W,MAAM,EACvC,GAAI,CACF68W,EAA4B/sR,GAAG,IACjC,CAAE,MAAO/nD,EAAG,CACVsM,EAAKlX,KAAK,CAAC4K,EACb,CAGN,CACF,CAtBAgM,EAAKisT,4BAA4B,CAAG8c,EACpC/oU,EAAK2rT,4BAA4B,CAAG,WAAakd,GAA2B,EAiC5E7oU,EAAKgpU,+BAA+B,CAAG,SAAS54W,CAAQ,EAClDy4W,IAAAA,EACFz4W,IAEA04W,EAA4Bp4W,IAAI,CAACN,EAErC,EASA,IAAI64W,EAAiBvzU,EAASC,IAAI,CAC9BuzU,EAAc98W,EAASe,IAAI,CAAC,QAC5Bg8W,EAAkB,KAElBC,EAAkB,EAAUzjO,OAAO,CAAU,WAC/C,GAAI,CACF,OAAOA,EAAQ/9G,KAAK,CACpB,MAAOoM,EAAG,CAAO,CACrB,EAJ0Ctb,EAM1C2wV,IAsBArpU,EAAK9jC,GAAG,CAAG,SAASA,CAAG,CAAEkE,CAAO,CAAEwnB,CAAK,EAarC,GATI0iU,EAAY1iU,IACdA,CAAAA,EAAQ,IAAG,EAIT8N,IAAarkC,EAAOqkC,QAAQ,EAAEA,CAAAA,EAAWrkC,EAAOqkC,QAAQ,EACxDiwG,IAAYt0I,EAAOs0I,OAAO,EAAEA,CAAAA,EAAUt0I,EAAOs0I,OAAO,GAGpDzpI,EA4CF,OAAOitW,GAAmBzzU,EAASC,IAAI,CAACv1B,OAAO,CAAC,OAAO,KA3CvD,IAtEE9R,EAsEEg7W,EAAYZ,IAAqB9gV,EAKrC,GAAIqhV,IAAmB/sW,GAAQ,EAACirW,EAASxhO,OAAO,EAAI2jO,CAAQ,EAC1D,OAAOtpU,EAET,IAAIupU,EAAWN,GAAkBO,GAAUP,KAAoBO,GAAUttW,GA4BzE,OA3BA+sW,EAAiB/sW,EACjBwsW,EAAmB9gV,EAKfu/U,CAAAA,EAASxhO,OAAO,EAAK,GAAc2jO,KAIhCC,GACHJ,CAAAA,EAAkBjtW,CAAE,EAElBkE,GACFs1B,EAASt1B,OAAO,CAAClE,GACPqtW,EAGV7zU,EAASuuU,IAAI,CAhGZ31W,MADHA,EAAQ4N,EAAIxN,OAAO,CAAC,MACF,GAAKwN,EAAIohQ,MAAM,CAAChvQ,GA8FhConC,EAASC,IAAI,CAAGz5B,EAIdw5B,EAASC,IAAI,GAAKz5B,GACpBitW,CAAAA,EAAkBjtW,CAAE,IAdtBypI,CAAO,CAACvlI,EAAU,eAAiB,YAAY,CAACwnB,EAAO,GAAI1rB,GAC3DmtW,KAgBEF,GACFA,CAAAA,EAAkBjtW,CAAE,EAEf8jC,CASX,EAYAA,EAAKpY,KAAK,CAAG,WACX,OAAO6gV,CACT,EAEA,IAAIgB,EAAqB,EAAE,CACvBC,EAAgB,GAEpB,SAASC,IACPR,EAAkB,KAClBS,GACF,CAGA,IAAIC,EAAkB,KACtB,SAASR,IAMHvuG,GAHJ2tG,EAAcne,EADdme,EAAcW,KAC2B,KAAOX,EAGxBoB,IACtBpB,CAAAA,EAAcoB,CAAc,EAG9BA,EAAkBpB,EAClBC,EAAmBD,CACrB,CAEA,SAASmB,IACP,IAAIE,EAAuBpB,EAC3BW,IAEIJ,CAAAA,IAAmBjpU,EAAK9jC,GAAG,IAAM4tW,IAAyBrB,CAAU,IAIxEQ,EAAiBjpU,EAAK9jC,GAAG,GACzBwsW,EAAmBD,EACnBl7W,EAAQk8W,EAAoB,SAASM,CAAQ,EAC3CA,EAAS/pU,EAAK9jC,GAAG,GAAIusW,EACvB,GACF,CAuBAzoU,EAAKgqU,WAAW,CAAG,SAAS55W,CAAQ,EAgBlC,OAdKs5W,IAMCvC,EAASxhO,OAAO,EAAEisN,EAAOvgW,GAAQ+1B,EAAE,CAAC,WAAYuiV,GAEpD/X,EAAOvgW,GAAQ+1B,EAAE,CAAC,aAAcuiV,GAEhCD,EAAgB,IAGlBD,EAAmB/4W,IAAI,CAACN,GACjBA,CACT,EAQA4vC,EAAKiqU,sBAAsB,CAAG,WAC5BrY,EAAOvgW,GAAQumC,GAAG,CAAC,sBAAuB+xU,EAC5C,EAOA3pU,EAAKkqU,gBAAgB,CAAGN,EAexB5pU,EAAKmqU,QAAQ,CAAG,WACd,IAAIx0U,EAAOuzU,EAAY5+W,IAAI,CAAC,QAC5B,OAAOqrC,EAAOA,EAAKv1B,OAAO,CAAC,uBAAwB,IAAM,EAC3D,EAgBA4/B,EAAK10B,KAAK,CAAG,SAASk6M,CAAE,CAAE79D,CAAK,EAC7B,IAAIyiN,EAOJ,OANAvB,IAKAF,CAAe,CAJfyB,EAAYx7U,EAAW,WACrB,OAAO+5U,CAAe,CAACyB,EAAU,CACjCrB,EAA2BvjJ,EAC7B,EAAG79D,GAAS,GACc,CAAG,GACtByiN,CACT,EAaApqU,EAAK10B,KAAK,CAACpF,MAAM,CAAG,SAASmkW,CAAO,QAClC,EAAI1B,CAAe,CAAC0B,EAAQ,GAC1B,OAAO1B,CAAe,CAAC0B,EAAQ,CAC/B37U,EAAa27U,GACbtB,EAA2BrwV,GACpB,GAGX,CACF,CAGA,SAAS4xV,KACP,IAAI,CAAC5yW,IAAI,CAAG,CAAC,UAAW,OAAQ,WAAY,YACxC,SAAS6L,CAAO,CAAE+8B,CAAI,CAAE6mU,CAAQ,CAAEptK,CAAS,EACzC,OAAO,IAAIyuK,GAAQjlW,EAASw2L,EAAWz5J,EAAM6mU,EAC/C,EAAE,CAsFR,SAASoD,KAEP,IAAI,CAAC7yW,IAAI,CAAG,WACV,IAAI8yW,EAAS,CAAC,EAEd,SAASC,EAAaC,CAAO,CAAE34V,CAAO,EACpC,GAAI24V,KAAWF,EACb,MAAMpY,EAAO,iBAAiB,MAAO,kCAAqCsY,GAG5E,IAAIx1W,EAAO,EACPy1W,EAAQ98R,EAAO,CAAC,EAAG97D,EAAS,CAACnV,GAAI8tW,CAAO,GACxC56W,EAAOimW,KACP6U,EAAW,GAAY74V,EAAQ64V,QAAQ,EAAKx3T,OAAOy3T,SAAS,CAC5DC,EAAU/U,KACVgV,EAAW,KACXC,EAAW,KAyCf,OAAOR,CAAM,CAACE,EAAQ,CAAG,CAoBvB9xW,IAAI/M,CAAG,CAAEV,CAAK,EACZ,IAAIm/V,EAAYn/V,GAchB,OAbIy/W,EAAWx3T,OAAOy3T,SAAS,EAG7BI,EAFeH,CAAO,CAACj/W,EAAI,EAAKi/W,CAAAA,CAAO,CAACj/W,EAAI,CAAG,CAACA,IAAKA,CAAG,IAKtD,CAAEA,CAAAA,KAAOiE,CAAG,GAAIoF,IACpBpF,CAAI,CAACjE,EAAI,CAAGV,EAER+J,EAAO01W,GACT,IAAI,CAAC34W,MAAM,CAAC+4W,EAASn/W,GAAG,EAGnBV,CACT,EAaA6M,IAAInM,CAAG,EACL,GAAI++W,EAAWx3T,OAAOy3T,SAAS,CAAE,CAC/B,IAAIK,EAAWJ,CAAO,CAACj/W,EAAI,CAE3B,GAAI,CAACq/W,EAAU,OAEfD,EAAQC,EACV,CAEA,OAAOp7W,CAAI,CAACjE,EAAI,EAclBoG,OAAOpG,CAAG,EACR,GAAI++W,EAAWx3T,OAAOy3T,SAAS,CAAE,CAC/B,IAAIK,EAAWJ,CAAO,CAACj/W,EAAI,CAE3B,GAAI,CAACq/W,EAAU,OAEXA,IAAaH,GAAUA,CAAAA,EAAWG,EAAS79V,CAAC,EAC5C69V,IAAaF,GAAUA,CAAAA,EAAWE,EAAS3gT,CAAC,EAChD10C,EAAKq1V,EAAS3gT,CAAC,CAAC2gT,EAAS79V,CAAC,EAE1B,OAAOy9V,CAAO,CAACj/W,EAAI,CAGfA,KAAOiE,IAEb,OAAOA,CAAI,CAACjE,EAAI,CAChBqJ,IACF,EAWAowQ,YACEx1Q,EAAOimW,KACP7gW,EAAO,EACP41W,EAAU/U,KACVgV,EAAWC,EAAW,IACxB,EAYAhrT,UACElwD,EAAO,KACP66W,EAAQ,KACRG,EAAU,KACV,OAAON,CAAM,CAACE,EAAQ,EAoBxBtoR,KAAAA,IACSvU,EAAO,CAAC,EAAG88R,EAAO,CAACz1W,KAAMA,CAAI,EAExC,EAMA,SAAS+1W,EAAQtnH,CAAK,EAChBA,IAAUonH,IACPC,EAEMA,IAAarnH,GACtBqnH,CAAAA,EAAWrnH,EAAMp5L,CAAC,EAFlBygT,EAAWrnH,EAKb9tO,EAAK8tO,EAAMp5L,CAAC,CAAEo5L,EAAMt2O,CAAC,EACrBwI,EAAK8tO,EAAOonH,GAEZA,CADAA,EAAWpnH,CAAI,EACNp5L,CAAC,CAAG,KAEjB,CAMA,SAAS10C,EAAKs1V,CAAS,CAAEC,CAAS,EAC5BD,IAAcC,IACZD,GAAWA,CAAAA,EAAU99V,CAAC,CAAG+9V,CAAQ,EACjCA,GAAWA,CAAAA,EAAU7gT,CAAC,CAAG4gT,CAAQ,EAEzC,CACF,CAoCA,OAxBAV,EAAaroR,IAAI,CAAG,WAClB,IAAIA,EAAO,CAAC,EAIZ,OAHA70F,EAAQi9W,EAAQ,SAASl9C,CAAK,CAAEo9C,CAAO,EACrCtoR,CAAI,CAACsoR,EAAQ,CAAGp9C,EAAMlrO,IAAI,EAC5B,GACOA,CACT,EAaAqoR,EAAazyW,GAAG,CAAG,SAAS0yW,CAAO,EACjC,OAAOF,CAAM,CAACE,EAAQ,EAIjBD,CACT,CACF,CAiDA,SAASY,KACP,IAAI,CAAC3zW,IAAI,CAAG,CAAC,gBAAiB,SAAS4zW,CAAa,EAClD,OAAOA,EAAc,YACvB,EAAE,CA2/BJ,IAAIC,GAAiBnZ,EAAO,YAGxBoZ,GAAuB,IAD3B,WAAgC,EAWhC,SAASC,GAAiBj1L,CAAQ,CAAEk1L,CAAqB,EACvD,IAAIC,EAAgB,CAAC,EACjBC,EAAS,YACTC,EAA2B,oCAC3BC,EAAyB,4BACzBC,EAAuBC,SAl/NZ7iQ,CAAG,EAClB,IAEIr6G,EAFAy6C,EAAM,CAAC,EACPvhB,EAAQmhF,EAAI/wF,KAAK,CAAC,KAEtB,IAAKtpB,EAAI,EAAGA,EAAIk5B,EAAM/7B,MAAM,CAAE6C,IAC5By6C,CAAG,CAACvhB,CAAK,CAACl5B,EAAE,CAAC,CAAG,GAElB,OAAOy6C,CACT,EA0+NqC,6BAC/B0iU,EAAwB,8BAKxBC,EAA4B,0BAC5BC,EAAepW,KAEnB,SAASqW,EAAqBzrW,CAAK,CAAEwpF,CAAa,CAAEkiR,CAAY,EAC9D,IAAIC,EAAe,mCAEfp4W,EAAW6hW,KA+Bf,OA7BAxoW,EAAQoT,EAAO,SAAS4rW,CAAU,CAAEC,CAAS,EAG3C,GAAID,CAFJA,EAAaA,EAAW5zT,IAAI,EAAC,IAEXwzT,EAAc,CAC9Bj4W,CAAQ,CAACs4W,EAAU,CAAGL,CAAY,CAACI,EAAW,CAC9C,MACF,CACA,IAAI3/V,EAAQ2/V,EAAW3/V,KAAK,CAAC0/V,GAE7B,GAAI,CAAC1/V,EACH,MAAM2+V,GAAe,OACjB,oEAEAphR,EAAeqiR,EAAWD,EACzBF,EAAe,iCAChB,2BAGNn4W,CAAAA,CAAQ,CAACs4W,EAAU,CAAG,CACpBzvR,KAAMnwE,CAAK,CAAC,EAAE,CAAC,EAAE,CACjBg4E,WAAYh4E,MAAAA,CAAK,CAAC,EAAE,CACpBs9U,SAAUt9U,MAAAA,CAAK,CAAC,EAAE,CAClBglP,SAAUhlP,CAAK,CAAC,EAAE,EAAI4/V,CACxB,EACI5/V,CAAK,CAAC,EAAE,EACVu/V,CAAAA,CAAY,CAACI,EAAW,CAAGr4W,CAAQ,CAACs4W,EAAU,CAElD,GAEOt4W,CACT,CAkFA,IAAI,CAACyO,SAAS,CAAG,SAAS8pW,EAAkBx2V,CAAI,CAAEy2V,CAAgB,EAqChE,OApCAtT,GAAUnjV,EAAM,QAChBsjV,GAAwBtjV,EAAM,aAC1B2nE,EAAS3nE,IACX02V,SAxD8B12V,CAAI,EACpC,IAAIijV,EAASjjV,EAAK+kE,MAAM,CAAC,GACzB,GAAI,CAACk+Q,GAAUA,IAAWpL,EAAUoL,GAClC,MAAMqS,GAAe,SAAU,4FAA+Ft1V,GAEhI,GAAIA,IAASA,EAAK0iC,IAAI,GACpB,MAAM4yT,GAAe,SACf,yGACAt1V,EAEV,EA8C6BA,GACzBmjV,GAAUsT,EAAkB,oBACvBf,EAAc3xV,cAAc,CAAC/D,KAChC01V,CAAa,CAAC11V,EAAK,CAAG,EAAE,CACxBugK,EAAS9yJ,OAAO,CAACzN,EAAO21V,EAAQ,CAAC,YAAa,oBAC5C,SAASj6P,CAAS,CAAEi7P,CAAiB,EACnC,IAAI5iR,EAAa,EAAE,CAoBnB,OAnBAz8F,EAAQo+W,CAAa,CAAC11V,EAAK,CAAE,SAASy2V,CAAgB,CAAEp+W,CAAK,EAC3D,GAAI,CACF,IArDeqU,EACvB6+E,EAoDY7+E,EAAYgvG,EAAUl6E,MAAM,CAACi1U,GAC7BvuU,EAAWx7B,GACbA,EAAY,CAAEgvO,QAAS2iH,EAAQ3xV,EAAW,EACjC,CAACA,EAAUgvO,OAAO,EAAIhvO,EAAUkT,IAAI,EAC7ClT,CAAAA,EAAUgvO,OAAO,CAAG2iH,EAAQ3xV,EAAUkT,IAAI,GAE5ClT,EAAUu4P,QAAQ,CAAGv4P,EAAUu4P,QAAQ,EAAI,EAC3Cv4P,EAAUrU,KAAK,CAAGA,EAClBqU,EAAUsT,IAAI,CAAGtT,EAAUsT,IAAI,EAAIA,EACnCtT,EAAU6+E,OAAO,EA7DzBA,EAAU7+E,CADaA,EA8DyBA,GA7D5B6+E,OAAO,EAAK7+E,EAAUpO,UAAU,EAAIoO,EAAUsT,IAAI,CAEtE,CAACgE,EAAQunE,IAAYq6L,EAASr6L,IAChCj0F,EAAQi0F,EAAS,SAASr2F,CAAK,CAAEU,CAAG,EAClC,IAAI+gB,EAAQzhB,EAAMyhB,KAAK,CAACq/V,GACb9gX,EAAMw+B,SAAS,CAAC/c,CAAK,CAAC,EAAE,CAAC3gB,MAAM,GAC/Bu1F,CAAAA,CAAO,CAAC31F,EAAI,CAAG+gB,CAAK,CAAC,EAAE,CAAG/gB,CAAE,CACzC,GAGK21F,GAoDK7+E,EAAUjC,QAAQ,CAAGmsW,SAjDLnsW,CAAQ,CAAEuV,CAAI,EAC1C,GAAIvV,GAAY,CAAEk9E,CAAAA,EAASl9E,IAAa,SAAS9U,IAAI,CAAC8U,EAAQ,EAC5D,MAAM6qW,GAAe,cACjB,wDACA7qW,EACAuV,GAGN,OAAOvV,GAAY,IACrB,EAwCwDiC,EAAUjC,QAAQ,CAAEuV,GAC9DtT,EAAUmqW,YAAY,CAAGJ,EAAiBI,YAAY,CACtD9iR,EAAWt5F,IAAI,CAACiS,EAClB,CAAE,MAAOqxB,EAAG,CACV44U,EAAkB54U,EACpB,CACF,GACOg2D,CACT,EAAE,GAEN2hR,CAAa,CAAC11V,EAAK,CAACvlB,IAAI,CAACg8W,IAEzBn/W,EAAQ0oB,EAAMu9U,EAAciZ,IAEvB,IAAI,EA0Fb,IAAI,CAACx4W,SAAS,CAAG,SAAS84W,EAAkB92V,CAAI,CAAElE,CAAO,EACvD,GAAI,CAAC6rE,EAAS3nE,GAEZ,OADA1oB,EAAQ0oB,EAAMu9U,EAAcpqW,GAAK,IAAI,CAAE2jX,KAChC,IAAI,CAGb,IAAIx4W,EAAawd,EAAQxd,UAAU,EAAI,WAAY,EAEnD,SAASmvB,EAAQiuF,CAAS,EACxB,SAASq7P,EAAexnJ,CAAE,SACxB,EAAeA,IAAOvrM,EAAQurM,GACR,SAAS41C,CAAQ,CAAEC,CAAM,EAC3C,OAAO1pJ,EAAUl6E,MAAM,CAAC+tL,EAAI,IAAI,CAAE,CAACzgI,SAAUq2K,EAAU7xP,OAAQ8xP,CAAM,EACvE,EAEO71C,CAEX,CAEA,IAAIlxN,EAAY,EAASA,QAAQ,EAAKyd,EAAQ1K,WAAW,CAAQ0K,EAAQzd,QAAQ,CAArB,GACxD24W,EAAM,CACR14W,WAAYA,EACZyM,aAAcksW,SAg8EW34W,CAAU,CAAE44W,CAAK,EAEhD,GAAIvvR,EAASrpF,GAAa,CACxB,IAAIqY,EAAQwgW,GAAUnmG,IAAI,CAAC1yQ,GAC3B,GAAIqY,EAAO,OAAOA,CAAK,CAAC,EAAE,CAE9B,EAt8E8CmF,EAAQxd,UAAU,GAAKwd,EAAQ/Q,YAAY,EAAI,QACrF1M,SAAU04W,EAAe14W,GACzB+S,YAAa2lW,EAAej7V,EAAQ1K,WAAW,EAC/C49H,WAAYlzH,EAAQkzH,UAAU,CAC9BtkI,MAAO,CAAC,EACRM,iBAAkB8Q,EAAQ7d,QAAQ,EAAI,CAAC,EACvCwM,SAAU,IACV8gF,QAASzvE,EAAQyvE,OAAO,EAQ1B,OAJAj0F,EAAQwkB,EAAS,SAASm0F,CAAG,CAAEr6G,CAAG,EACV,MAAlBA,EAAImvF,MAAM,CAAC,IAAYiyR,CAAAA,CAAG,CAACphX,EAAI,CAAGq6G,CAAE,CAC1C,GAEO+mQ,CACT,CAmBA,OAVA1/W,EAAQwkB,EAAS,SAASm0F,CAAG,CAAEr6G,CAAG,EACV,MAAlBA,EAAImvF,MAAM,CAAC,KACbt3D,CAAO,CAAC73B,EAAI,CAAGq6G,EAEX/nE,EAAW5pC,IAAaA,CAAAA,CAAU,CAAC1I,EAAI,CAAGq6G,CAAE,EAEpD,GAEAxiF,EAAQv0B,OAAO,CAAG,CAAC,YAAY,CAExB,IAAI,CAACwT,SAAS,CAACsT,EAAMyN,EAC9B,EAuBA,IAAI,CAAC2pV,0BAA0B,CAAG,SAASrjB,CAAM,SAC/C,EAAcA,IACZ0hB,EAAsB2B,0BAA0B,CAACrjB,GAC1C,IAAI,EAEJ0hB,EAAsB2B,0BAA0B,EAE3D,EAuBA,IAAI,CAACC,2BAA2B,CAAG,SAAStjB,CAAM,SAChD,EAAcA,IACZ0hB,EAAsB4B,2BAA2B,CAACtjB,GAC3C,IAAI,EAEJ0hB,EAAsB4B,2BAA2B,EAE5D,EA6BA,IAAI7U,EAAmB,EACvB,KAAI,CAACA,gBAAgB,CAAG,SAAS1vM,CAAO,SACtC,EAAcA,IACZ0vM,EAAmB1vM,EACZ,IAAI,EAEN0vM,CACT,EA6BA,IAAI8U,EAA2B,EAC/B,KAAI,CAACA,wBAAwB,CAAG,SAASxkN,CAAO,SAC9C,EAAcA,IACZwkN,EAA2BxkN,EACpB,IAAI,EAENwkN,CACT,EAmBA,IAAIC,EAAiC,EACrC,KAAI,CAACA,8BAA8B,CAAG,SAASzkN,CAAO,SACpD,EAAcA,IACZykN,EAAiCzkN,EAC1B,IAAI,EAENykN,CACT,EAEA,IAAIC,EAAM,EAqBV,KAAI,CAACC,YAAY,CAAG,SAASviX,CAAK,SAChC,UAAcc,MAAM,EAClBwhX,EAAMtiX,EACC,IAAI,EAENsiX,CACT,EAEA,IAAIE,EAAiC,EAoBrC,KAAI,CAACC,wBAAwB,CAAG,SAASziX,CAAK,SAC5C,UAAcc,MAAM,EAClB0hX,EAAiCxiX,EAC1B,IAAI,EAENwiX,CACT,EAGA,IAAIE,EAAkC,EAoBtC,KAAI,CAACC,yBAAyB,CAAG,SAAS3iX,CAAK,SAC7C,UAAcc,MAAM,EAClB4hX,EAAkC1iX,EAC3B,IAAI,EAEN0iX,CACT,EAEA,IAAI,CAACn2W,IAAI,CAAG,CACF,YAAa,eAAgB,oBAAqB,mBAAoB,SACtE,cAAe,aAAc,OAAQ,WAAY,gBACzD,SAASi6G,CAAS,CAAIo8P,CAAY,CAAInB,CAAiB,CAAInpO,CAAgB,CAAIiuG,CAAM,CAC5Ei8G,CAAW,CAAIxsV,CAAU,CAAIX,CAAI,CAAIssV,CAAQ,CAAIsB,CAAa,EACrE,IAWI4f,EAXAC,EAAmB,MACnBC,EAAoB78W,EAAOjF,QAAQ,CAAC80G,aAAa,CAAC,OAGlD0sQ,EAA2BD,EAC3BG,EAA4BD,EAG5BH,EAAeD,EAMnB,SAASU,IACP,GAAI,CACF,GAAI,CAAE,EAAET,EAGN,MADAM,EAAiBp/W,KAAAA,EACX28W,GAAe,UAAW,mDAAoDkC,GAGtFtsW,EAAWoiF,MAAM,CAAC,WAChB,IAAK,IAAIz0F,EAAI,EAAGo8K,EAAK8iM,EAAe/hX,MAAM,CAAE6C,EAAIo8K,EAAI,EAAEp8K,EACpD,GAAI,CACFk/W,CAAc,CAACl/W,EAAE,EACnB,CAAE,MAAOklC,EAAG,CACV44U,EAAkB54U,EACpB,CAGFg6U,EAAiBp/W,KAAAA,CACnB,EACF,QAAU,CACR8+W,GACF,CACF,CAGA,SAASU,EAAWvgX,CAAO,CAAEwgX,CAAgB,EAC3C,GAAIA,EAAkB,CACpB,IACIv/W,EACAC,EACAlD,EAHA4F,EAAOY,OAAOZ,IAAI,CAAC48W,GAKvB,IAAKv/W,EAAI,EAAGC,EAAI0C,EAAKxF,MAAM,CAAE6C,EAAIC,EAAGD,IAElC,IAAI,CADJjD,EAAM4F,CAAI,CAAC3C,EAAE,CACJ,CAAGu/W,CAAgB,CAACxiX,EAAI,MAGnC,IAAI,CAACyiX,KAAK,CAAG,CAAC,CAGhB,KAAI,CAACC,SAAS,CAAG1gX,CACnB,CAyNA,SAAS2gX,EAAazpR,CAAQ,CAAEoc,CAAS,EACvC,GAAI,CACFpc,EAAS1vE,QAAQ,CAAC8rF,EACpB,CAAE,MAAOntE,EAAG,CAGZ,CACF,CA9NAo6U,EAAWxjX,SAAS,CAAG,CAgBrBk9V,WAAY2mB,GAcZC,UAAUC,CAAQ,EACZA,GAAYA,EAAS1iX,MAAM,CAAG,GAChC6gW,EAASz3U,QAAQ,CAAC,IAAI,CAACk5V,SAAS,CAAEI,EAEtC,EAaAC,aAAaD,CAAQ,EACfA,GAAYA,EAAS1iX,MAAM,CAAG,GAChC6gW,EAAS13U,WAAW,CAAC,IAAI,CAACm5V,SAAS,CAAEI,EAEzC,EAcAE,aAAa3R,CAAU,CAAE4R,CAAU,EACjC,IAAIlJ,EAAQmJ,GAAgB7R,EAAY4R,GACpClJ,GAASA,EAAM35W,MAAM,EACvB6gW,EAASz3U,QAAQ,CAAC,IAAI,CAACk5V,SAAS,CAAE3I,GAGpC,IAAI9sP,EAAWi2P,GAAgBD,EAAY5R,GACvCpkP,GAAYA,EAAS7sH,MAAM,EAC7B6gW,EAAS13U,WAAW,CAAC,IAAI,CAACm5V,SAAS,CAAEz1P,EAEzC,EAWAqoB,KAAKt1I,CAAG,CAAEV,CAAK,CAAE6jX,CAAS,CAAEp9G,CAAQ,EAOlC,IA6GoB/jQ,EAAS+jQ,EAAUzmQ,EAKrCuhH,EACAi4N,EAhHE5pO,EAHAk0Q,EAAalR,GAFN,IAAI,CAACwQ,SAAS,CAAC,EAAE,CAEc1iX,GACtCqjX,EAvrKLpR,EAAY,CAurKyBjyW,EAvrKnB,CAwrKbwxH,EAAWxxH,EAyBf,GAtBIojX,GACF,IAAI,CAACV,SAAS,CAAClnT,IAAI,CAACx7D,EAAKV,GACzBymQ,EAAWq9G,GACFC,IACT,IAAI,CAACA,EAAW,CAAG/jX,EACnBkyH,EAAW6xP,GAGb,IAAI,CAACrjX,EAAI,CAAGV,EAGRymQ,EACF,IAAI,CAAC08G,KAAK,CAACziX,EAAI,CAAG+lQ,EAElBA,CAAAA,EAAW,IAAI,CAAC08G,KAAK,CAACziX,EAAI,GAExB,KAAI,CAACyiX,KAAK,CAACziX,EAAI,CAAG+lQ,EAAWqnG,GAAWptW,EAAK,MAM7C,MAFJkvG,CAAAA,EAAW+5P,GAAU,IAAI,CAACyZ,SAAS,IAET1iX,CAAAA,SAAAA,GAAkBA,cAAAA,CAAQ,GAAkB,CAACkvG,QAAAA,GAAsBA,WAAAA,CAAa,GAAalvG,QAAAA,EAErH,IAAI,CAACA,EAAI,CAAGV,EAAQ,QAAkBA,EAAQijW,EAAcjjW,EAAOU,QAAAA,QAC9D,GAAI,CAACkvG,QAAAA,GAAsBA,WAAAA,CAAa,GAAalvG,WAAAA,GAAoBy2D,EAAUn3D,GAAQ,CAChG,IAAMgkX,EAAehkX,EAAMitB,KAAK,CAAC,KAC3Bg3V,EAAkB,EAAE,CAC1B,IAAK,IAAMC,KAAeF,EAAc,CAEpC,IAAMG,EAAWC,EAD0B52T,IAAI,GAAGv4C,OAAO,CAAC,SAAU,KAC5BgY,KAAK,CAAC,KACxCo2U,EAAMJ,EAAckhB,CAAQ,CAAC,EAAE,CAAE,IACvCF,EAAgB1+W,IAAI,CAAC,CAAC,EAAE89V,EAAI,EAAE8gB,KAAgB1gX,IAAhB0gX,CAAQ,CAAC,EAAE,CAAiB,IAAMA,CAAQ,CAAC,EAAE,CAAG,GAAG,CAAC,CACtF,CAEA,IAAM10V,EAASw0V,EAAgB97R,IAAI,CAAC,IAEpC,KAAI,CAACznF,EAAI,CAAGV,EAAQyvB,CACtB,CAEkB,KAAdo0V,IACE7jX,MAAAA,EACF,IAAI,CAACojX,SAAS,CAACjzG,UAAU,CAAC1J,GAEtBq8G,EAAiBriX,IAAI,CAACgmQ,GACxB,IAAI,CAAC28G,SAAS,CAACjkX,IAAI,CAACsnQ,EAAUzmQ,IA2DhB0C,EAzDC,IAAI,CAAC0gX,SAAS,CAAC,EAAE,CAyDT38G,EAzDWA,EAyDDzmQ,EAzDWA,EA6DpD+iX,EAAkBv8F,SAAS,CAAG,SAAW/f,EAAW,IAEhD+yE,EAAYj4N,CADZA,EAAawhQ,EAAkBn8F,UAAU,CAACrlK,UAAU,CAC9B,CAAC,EAAE,CAE7BA,EAAW8iQ,eAAe,CAAC7qC,EAAU1uT,IAAI,EACzC0uT,EAAUx5U,KAAK,CAAGA,EAClB0C,EAAQ6+G,UAAU,CAAC+iQ,YAAY,CAAC9qC,KA7D9B,IAAI+qC,EAAc,IAAI,CAACA,WAAW,CAC9BA,GACFniX,EAAQmiX,CAAW,CAACryP,EAAS,CAAE,SAASmoG,CAAE,EACxC,GAAI,CACFA,EAAGr6N,EACL,CAAE,MAAO6oC,EAAG,CACV44U,EAAkB54U,EACpB,CACF,EAEJ,EAsBA5Y,SAASvvB,CAAG,CAAE25N,CAAE,EACd,IAAI9pM,EAAQ,IAAI,CACZg0V,EAAeh0V,EAAMg0V,WAAW,EAAKh0V,CAAAA,EAAMg0V,WAAW,CAAG3Z,IAAU,EACnElwV,EAAa6pW,CAAW,CAAC7jX,EAAI,EAAK6jX,CAAAA,CAAW,CAAC7jX,EAAI,CAAG,EAAE,EAU3D,OARAga,EAAUnV,IAAI,CAAC80N,GACfrkN,EAAW8oG,UAAU,CAAC,WAChB,CAACpkG,EAAU8pW,OAAO,EAAIj0V,EAAM1B,cAAc,CAACnuB,IAAQ,CAACy+V,EAAY5uU,CAAK,CAAC7vB,EAAI,GAE5E25N,EAAG9pM,CAAK,CAAC7vB,EAAI,CAEjB,GAEO,WACLkpW,GAAYlvV,EAAW2/M,EACzB,CACF,CACF,EAyBA,IAAIoqJ,GAAc7B,EAAa6B,WAAW,GACtCC,GAAY9B,EAAa8B,SAAS,GAElCC,GAAsB,WAAyBD,OAAAA,GAC7Cxb,EACA,SAA6B//V,CAAQ,EACrC,OAAOA,EAAS8L,OAAO,CAAC,QAASwvW,IAAaxvW,OAAO,CAAC,MAAOyvW,GACnE,EAEIE,GAAkB,eAClBC,GAAuB,cAoC3B,OAlCAr+H,GAAQs+H,gBAAgB,CAAGxX,EAAmB,SAA0B1zQ,CAAQ,CAAEmrR,CAAO,EACvF,IAAIh8W,EAAW6wF,EAASj1F,IAAI,CAAC,aAAe,EAAE,CAE1CmqB,EAAQi2V,GACVh8W,EAAWA,EAASwyB,MAAM,CAACwpV,GAE3Bh8W,EAASxD,IAAI,CAACw/W,GAGhBnrR,EAASj1F,IAAI,CAAC,WAAYoE,EAC5B,EAAIwkB,EAEJi5N,GAAQw+H,iBAAiB,CAAG1X,EAAmB,SAA2B1zQ,CAAQ,EAChFypR,EAAazpR,EAAU,aACzB,EAAIrsE,EAEJi5N,GAAQy+H,cAAc,CAAG3X,EAAmB,SAAwB1zQ,CAAQ,CAAEpkF,CAAK,CAAE0vW,CAAQ,CAAEC,CAAU,EAEvGvrR,EAASj1F,IAAI,CADEugX,EAAYC,EAAa,0BAA4B,gBAAmB,SAC/D3vW,EAC1B,EAAI+X,EAEJi5N,GAAQ4+H,eAAe,CAAG9X,EAAmB,SAAyB1zQ,CAAQ,CAAEsrR,CAAQ,EACtF7B,EAAazpR,EAAUsrR,EAAW,mBAAqB,WACzD,EAAI33V,EAEJi5N,GAAQ6+H,eAAe,CAAG,SAASrmR,CAAa,CAAEqrF,CAAO,EACvD,IAAIvmJ,EAAU,GAKd,OAJIwpU,IACFxpU,EAAU,IAAOk7D,CAAAA,GAAiB,IAAM,KACpCqrF,GAASvmJ,CAAAA,GAAWumJ,EAAU,MAE7BnkL,EAAOjF,QAAQ,CAACqkX,aAAa,CAACxhV,EACvC,EAEO0iN,GAIP,SAASA,GAAQ++H,CAAa,CAAEC,CAAY,CAAEC,CAAW,CAAEC,CAAe,CACtDC,CAAsB,EAClCJ,aAAyB9e,GAG7B8e,CAAAA,EAAgB9e,EAAO8e,EAAa,EAEtC,IAAIK,EACIC,SA+FDA,EAAaC,CAAQ,CAAEN,CAAY,CAAEO,CAAY,CAAEN,CAAW,CAAEC,CAAe,CAChEC,CAAsB,EAW5C,IAAK,IATDp1V,EACAsuE,EACAmnR,EACA3tG,EACA4tG,EACAC,EACAC,EAPAC,EAAU,EAAE,CAUPziX,EAAI,EAAGA,EAAImiX,EAAShlX,MAAM,CAAE6C,IACnC4sB,EAAQ,IAAI0yV,EAOZ+C,CAAAA,EAAa,CAHbnnR,EAAawnR,GAAkBP,CAAQ,CAACniX,EAAE,CAAE,EAAE,CAAE4sB,EAAO5sB,IAAAA,EAAU8hX,EAAchiX,KAAAA,EAC/CiiX,EAAe,EAEtB5kX,MAAM,CACzBwlX,SAiVDA,EAAsBznR,CAAU,CAAE0nR,CAAW,CAAEC,CAAa,CAAEhB,CAAY,CACpDiB,CAAY,CAAEC,CAAwB,CAAEC,CAAU,CAAEC,CAAW,CAC/DjB,CAAsB,EAwBnD,IAAK,IArBDkB,EAAmB,CAAC5+T,OAAOy3T,SAAS,CACpCoH,EAAoBnB,CAHxBA,EAAyBA,GAA0B,CAAC,GAGLmB,iBAAiB,CAC5DC,EAAuBpB,EAAuBoB,oBAAoB,CAClEC,EAA2BrB,EAAuBqB,wBAAwB,CAC1EC,EAAoBtB,EAAuBsB,iBAAiB,CAC5DC,EAA4BvB,EAAuBuB,yBAAyB,CAC5EC,EAAyB,GACzBC,EAAc,GACdC,EAAgC1B,EAAuB0B,6BAA6B,CACpFC,EAAed,EAAcpD,SAAS,CAAG3c,EAAO8f,GAIhDgB,EAAmBb,EACnBc,EAAoBhC,EAEpBiC,EAAiC,GACjCC,EAAqC,GAIhC/jX,EAAI,EAAGo8K,EAAKlhF,EAAW/9F,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAAK,CAEnD,IAbE6T,EACAwnF,EACAsjQ,EAGAqlB,EAGAC,EAoDUC,EA/CRC,EAAYtwW,CADhBA,EAAYqnF,CAAU,CAACl7F,EAAE,EACCokX,OAAO,CAC7BC,EAAUxwW,EAAUywW,KAAK,CAQ7B,GALIH,GACFR,CAAAA,EAAeY,GAAU3B,EAAauB,EAAWE,EAAO,EAE1D1lB,EAAY7+V,KAAAA,EAERojX,EAAmBrvW,EAAUu4P,QAAQ,CACvC,MAmCF,GAhCA63G,CAAAA,EAAiBpwW,EAAUhC,KAAK,IAMzBgC,EAAU0E,WAAW,GACpBw0Q,EAASk3F,IAGXO,GAAkB,qBAAsBnB,GAA4BF,EAClDtvW,EAAW8vW,GAC7BN,EAA2BxvW,GAI3B2wW,GAAkB,qBAAsBnB,EAA0BxvW,EAChD8vW,IAItBR,EAAoBA,GAAqBtvW,GAG3CwnF,EAAgBxnF,EAAUsT,IAAI,CAQ1B,CAAC28V,GAAoCjwW,CAAAA,EAAUvC,OAAO,EAAKuC,CAAAA,EAAU0E,WAAW,EAAI1E,EAAUrO,QAAQ,GAClGqO,EAAUsiI,UAAU,EAAI,CAACtiI,EAAU4wW,KAAK,EAAI,CAG5C,IAAK,IAAIC,EAAgB1kX,EAAI,EAAIkkX,EAAqBhpR,CAAU,CAACwpR,IAAgB,EAC7E,GAAI,EAAoBvuO,UAAU,EAAI,CAAC+tO,EAAmBO,KAAK,EACvDP,EAAmB5yW,OAAO,EAAK4yW,CAAAA,EAAmB3rW,WAAW,EAAI2rW,EAAmB1+W,QAAQ,EAAI,CACpGu+W,EAAqC,GACrC,KACJ,CAGJD,EAAiC,EACzC,CAWA,GATI,CAACjwW,EAAU0E,WAAW,EAAI1E,EAAUpO,UAAU,GAChD29W,EAAuBA,GAAwBnc,KAC/Cud,GAAkB,IAAOnpR,EAAgB,eACrC+nR,CAAoB,CAAC/nR,EAAc,CAAExnF,EAAW8vW,GACpDP,CAAoB,CAAC/nR,EAAc,CAAGxnF,GAGxCowW,EAAiBpwW,EAAUsiI,UAAU,EAanC,GAVAqtO,EAAyB,GAKpB3vW,EAAU4wW,KAAK,GAClBD,GAAkB,eAAgBjB,EAA2B1vW,EAAW8vW,GACxEJ,EAA4B1vW,GAG1BowW,YAAAA,EACFP,EAAgC,GAChCR,EAAmBrvW,EAAUu4P,QAAQ,CACrCuyF,EAAYglB,EAGZf,EAAce,CAFdA,EAAed,EAAcpD,SAAS,CAClC3c,EAAOjgH,GAAQ6+H,eAAe,CAACrmR,EAAewnR,CAAa,CAACxnR,EAAc,EAAC,CACrD,CAAC,EAAE,CAC7B6gL,GAAY4mG,EAAcnf,GAAUhF,GAAYikB,GAWhDjkB,CAAS,CAAC,EAAE,CAACgmB,YAAY,CAAGhmB,CAAS,CAAC,EAAE,CAAC3+T,UAAU,CAEnD6jV,EAAoBe,GAAqBb,EAAoCplB,EAAWkjB,EAAcqB,EAC1EU,GAAoBA,EAAiBz8V,IAAI,CAAE,CAQzCo8V,0BAA2BA,CAC7B,OACvB,CAEL,IAAIsB,GAAQ5d,KAEZ,GAAKl6E,EAASk3F,GAEP,CAILtlB,EAAY,EAAE,CAEd,IAAImmB,GAAU7d,KACV8d,GAAc9d,KAuClB,IAAK,IAAI+d,MApCTvmX,EAAQwlX,EAAgB,SAASgB,CAAe,CAAED,CAAQ,EAExD,IAAI5pB,EAAY6pB,MAAAA,EAAgB/4R,MAAM,CAAC,EAGvC44R,CAAAA,EAAO,CAFPG,EAAkB7pB,EAAW6pB,EAAgBpqV,SAAS,CAAC,GAAKoqV,EAEpC,CAAGD,EAK3BH,EAAK,CAACG,EAAS,CAAG,KAIlBD,EAAW,CAACC,EAAS,CAAG5pB,CAC1B,GAGA38V,EAAQklX,EAAa7kB,QAAQ,GAAI,SAASlgP,CAAI,EAC5C,IAAIomQ,EAAWF,EAAO,CAACnF,GAAmB3Z,GAAUpnP,IAAO,CACvDomQ,GACFD,EAAW,CAACC,EAAS,CAAG,GACxBH,EAAK,CAACG,EAAS,CAAGH,EAAK,CAACG,EAAS,EAAI,EAAE,CACvCH,EAAK,CAACG,EAAS,CAACpjX,IAAI,CAACg9G,IAErB+/O,EAAU/8V,IAAI,CAACg9G,EAEnB,GAGAngH,EAAQsmX,GAAa,SAASG,CAAM,CAAEF,CAAQ,EAC5C,GAAI,CAACE,EACH,MAAMzI,GAAe,UAAW,mDAAoDuI,EAExF,GAEqBH,GACfA,EAAK,CAACG,GAAS,EAEjBH,CAAAA,EAAK,CAACG,GAAS,CAAGJ,GAAqBb,EAAoCc,EAAK,CAACG,GAAS,CAAEnD,EAAY,CAG9G,MArDEljB,EAAYmE,EAAOiK,GAAY6V,IAAc9jB,QAAQ,GAuDvD6kB,EAAa//U,KAAK,GAGlBigV,CAFAA,EAAoBe,GAAqBb,EAAoCplB,EAAWkjB,EAAc/hX,KAAAA,EAClGA,KAAAA,EAAW,CAAEqlX,cAAetxW,EAAUuxW,cAAc,EAAIvxW,EAAUwxW,UAAU,EAAC,EAC/DC,OAAO,CAAGT,EAC9B,EAGF,GAAIhxW,EAAUrO,QAAQ,EAWpB,GAVAi+W,EAAc,GACde,GAAkB,WAAYlB,EAAmBzvW,EAAW8vW,GAC5DL,EAAoBzvW,EAMpBowW,EAAiBjD,GAJjBiD,EAAiB,EAAYpwW,EAAUrO,QAAQ,EACzCqO,EAAUrO,QAAQ,CAACm+W,EAAcd,GACjChvW,EAAUrO,QAAQ,EAIpBqO,EAAUvC,OAAO,CAAE,CASrB,GARAsyW,EAAmB/vW,EAMnB+uW,EAAcjkB,CAJZA,EADEyN,GAAiB6X,GACP,EAAE,CAEFsB,GAAeC,GAAa3xW,EAAU4xW,iBAAiB,CAAE57T,EAAKo6T,KAErD,CAAC,EAAE,CAEtBtlB,IAAAA,EAAUxhW,MAAM,EAAUylX,IAAAA,EAAYp/R,QAAQ,CAChD,MAAMi5R,GAAe,QACjB,uEACAphR,EAAe,IAGrB6gL,GAAY4mG,EAAca,EAAcf,GAExC,IAAI8C,GAAmB,CAAClG,MAAO,CAAC,CAAC,EAO7BmG,GAAqBjD,GAAkBE,EAAa,EAAE,CAAE8C,IACxDE,GAAwB1qR,EAAWr5F,MAAM,CAAC7B,EAAI,EAAGk7F,EAAW/9F,MAAM,CAAI6C,CAAAA,EAAI,IAE1EqjX,CAAAA,GAA4BF,CAAgB,GAI9C0C,GAAmBF,GAAoBtC,EAA0BF,GAEnEjoR,EAAaA,EAAWtjE,MAAM,CAAC+tV,IAAoB/tV,MAAM,CAACguV,IAC1DE,GAAwBjD,EAAe6C,IAEvCtpM,EAAKlhF,EAAW/9F,MAAM,MAEtBwmX,EAAahgV,IAAI,CAACsgV,GAItB,GAAIpwW,EAAU0E,WAAW,CACvBkrW,EAAc,GACde,GAAkB,WAAYlB,EAAmBzvW,EAAW8vW,GAC5DL,EAAoBzvW,EAEhBA,EAAUvC,OAAO,EACnBsyW,CAAAA,EAAmB/vW,CAAQ,EAI7BwuW,GAAa0D,SA+cS7qR,CAAU,CAAEyoR,CAAY,CAAEp3G,CAAM,CACxD61G,CAAY,CAAEyB,CAAiB,CAAEb,CAAU,CAAEC,CAAW,CAAEjB,CAAsB,EAClF,IACIgE,EACAC,EAFAC,EAAY,EAAE,CAGdC,EAA4BxC,CAAY,CAAC,EAAE,CAC3CyC,EAAqBlrR,EAAW8kD,KAAK,GAErCqmO,EAAuB1rB,EAAQyrB,EAAoB,CACrD7tW,YAAa,KAAM49H,WAAY,KAAM7kI,QAAS,KAAMg1W,oBAAqBF,CAC3E,GAEI7tW,EAAc,EAAY6tW,EAAmB7tW,WAAW,EACtD6tW,EAAmB7tW,WAAW,CAACorW,EAAcp3G,GAC7C65G,EAAmB7tW,WAAW,CAEhCktW,EAAoBW,EAAmBX,iBAAiB,CA4F5D,OA1FA9B,EAAa//U,KAAK,GAElB+wG,EAAiBp8H,GACdjc,IAAI,CAAC,SAAS6jC,CAAO,EAQtB,GAFAA,EAAU6gV,GAAoB7gV,GAE1BimV,EAAmB90W,OAAO,CAAE,CAQ9B,GAFAsxW,EAAcjkB,CAJZA,EADEyN,GAAiBjsU,GACP,EAAE,CAEFolV,GAAeC,GAAaC,EAAmB57T,EAAK1pB,KAE3C,CAAC,EAAE,CAEtBw+T,IAAAA,EAAUxhW,MAAM,EAAUylX,IAAAA,EAAYp/R,QAAQ,CAChD,MAAMi5R,GAAe,QACjB,uEACA2J,EAAmBj/V,IAAI,CAAE5O,GAG/BguW,EAAoB,CAAC/G,MAAO,CAAC,CAAC,EAC9BtjG,GAAYkmG,EAAcuB,EAAcf,GACxC,IAvBEA,EACA2D,EACA5nB,EACA6nB,EAoBEb,EAAqBjD,GAAkBE,EAAa,EAAE,CAAE2D,GAExDx5F,EAASq5F,EAAmBv0W,KAAK,GAGnCg0W,GAAmBF,EAAoB,IAEzCzqR,EAAayqR,EAAmB/tV,MAAM,CAACsjE,GACvC4qR,GAAwBv5G,EAAQg6G,EAClC,MACE3D,EAAcuD,EACdxC,EAAahgV,IAAI,CAACxD,GAepB,IAZA+6D,EAAWphC,OAAO,CAACusT,GAEnBL,EAA0BrD,EAAsBznR,EAAY0nR,EAAar2G,EACrEs3G,EAAmBF,EAAcyC,EAAoBpD,EAAYC,EACjEjB,GACJvjX,EAAQ2jX,EAAc,SAASxjQ,CAAI,CAAE5+G,CAAC,EAChC4+G,IAASgkQ,GACXR,CAAAA,CAAY,CAACpiX,EAAE,CAAG2jX,CAAY,CAAC,EAAE,CAErC,GACAsC,EAA2B/D,EAAayB,CAAY,CAAC,EAAE,CAACjvG,UAAU,CAAEmvG,GAE7DqC,EAAU/oX,MAAM,EAAE,CACvB,IAAI0U,EAAQq0W,EAAUlmO,KAAK,GACvBymO,EAAyBP,EAAUlmO,KAAK,GACxC0mO,EAAkBR,EAAUlmO,KAAK,GACjC2mO,EAAoBT,EAAUlmO,KAAK,GACnC4mO,EAAWjD,CAAY,CAAC,EAAE,CAE9B,IAAI9xW,EAAMg1W,WAAW,EAErB,GAAIJ,IAA2BN,EAA2B,CACxD,IAAInG,EAAayG,EAAuBp0Q,SAAS,CAE3C2vQ,EAAuB0B,6BAA6B,EACtD0C,EAAmB90W,OAAO,EAE5Bs1W,CAAAA,EAAW7Z,GAAY6V,EAAW,EAEpC1mG,GAAYwqG,EAAiB5jB,EAAO2jB,GAAyBG,GAG7DlH,EAAa5c,EAAO8jB,GAAW5G,EACjC,CAEEwG,EADER,EAAwBc,uBAAuB,CACxBC,GAAwBl1W,EAAOm0W,EAAwB7vO,UAAU,CAAEwwO,GAEnEA,EAE3BX,EAAwBC,EAA0Bp0W,EAAO+0W,EAAUxE,EACjEoE,GACJ,CACAN,EAAY,IACd,GAAG/kX,KAAK,CAAC,SAASm5B,CAAK,EACforU,EAAQprU,IACVwjV,EAAkBxjV,EAEtB,GAEK,SAA2B0sV,CAAiB,CAAEn1W,CAAK,CAAE+sG,CAAI,CAAEqoQ,CAAW,CAAEN,CAAiB,EAC9F,IAAIH,EAAyBG,CACzB90W,CAAAA,EAAMg1W,WAAW,GACjBX,EACFA,EAAUtkX,IAAI,CAACiQ,EACA+sG,EACAqoQ,EACAT,IAEXR,EAAwBc,uBAAuB,EACjDN,CAAAA,EAAyBO,GAAwBl1W,EAAOm0W,EAAwB7vO,UAAU,CAAEwwO,EAAiB,EAE/GX,EAAwBC,EAA0Bp0W,EAAO+sG,EAAMqoQ,EAAaT,IAEhF,CACF,EA1kBsCtrR,EAAWr5F,MAAM,CAAC7B,EAAGk7F,EAAW/9F,MAAM,CAAG6C,GAAI2jX,EACzEd,EAAeC,EAAcU,GAA0BK,EAAmBb,EAAYC,EAAa,CACjGG,qBAAsBA,EACtBD,kBAAmB,IAAuBtvW,GAAcsvW,EACxDE,yBAA0BA,EAC1BC,kBAAmBA,EACnBC,0BAA2BA,CAC7B,GACJnnM,EAAKlhF,EAAW/9F,MAAM,MACjB,GAAI0W,EAAUgvO,OAAO,CAC1B,GAAI,CACFmhI,EAASnwW,EAAUgvO,OAAO,CAAC8gI,EAAcd,EAAegB,GACxD,IAAIpxM,GAAU5+J,EAAUyyW,mBAAmB,EAAIzyW,EAC3Cw7B,EAAW20U,GACbkD,GAAW,KAAM5sX,GAAKm4K,GAASuxM,GAASG,EAAWE,GAC1CL,GACTkD,GAAW5sX,GAAKm4K,GAASuxM,EAAOmD,GAAG,EAAG7sX,GAAKm4K,GAASuxM,EAAOj7W,IAAI,EAAGo7W,EAAWE,EAEjF,CAAE,MAAOn/U,EAAG,CACV44U,EAAkB54U,EAAGijU,GAAYwb,GACnC,CAGE9vW,EAAUw4P,QAAQ,GACpBg2G,GAAWh2G,QAAQ,CAAG,GACtB62G,EAAmBhmU,KAAKsoC,GAAG,CAAC09R,EAAkBrvW,EAAUu4P,QAAQ,EAGpE,CAUA,OARAi2G,GAAWxwW,KAAK,CAAGsxW,GAAqBA,CAA4B,IAA5BA,EAAkBtxW,KAAK,CAC/DwwW,GAAWyE,uBAAuB,CAAGtD,EACrCnB,GAAW+E,qBAAqB,CAAG3D,EACnCpB,GAAWlsO,UAAU,CAAG0tO,EAExB7B,EAAuB0B,6BAA6B,CAAGA,EAGhDrB,GAIP,SAAS6E,GAAWC,CAAG,CAAEp+W,CAAI,CAAEo7W,CAAS,CAAEE,CAAO,EAC3C8C,IACEhD,GAAWgD,CAAAA,EAAME,GAA2BF,EAAKhD,EAAWE,EAAO,EACvE8C,EAAIz0R,OAAO,CAAG7+E,EAAU6+E,OAAO,CAC/By0R,EAAI9rR,aAAa,CAAGA,EAChBgoR,CAAAA,IAA6BxvW,GAAaA,EAAUuxW,cAAc,GACpE+B,CAAAA,EAAMG,GAAmBH,EAAK,CAACtX,aAAc,EAAI,EAAC,EAEpDmT,EAAWphX,IAAI,CAACulX,IAEdp+W,IACEo7W,GAAWp7W,CAAAA,EAAOs+W,GAA2Bt+W,EAAMo7W,EAAWE,EAAO,EACzEt7W,EAAK2pF,OAAO,CAAG7+E,EAAU6+E,OAAO,CAChC3pF,EAAKsyF,aAAa,CAAGA,EACjBgoR,CAAAA,IAA6BxvW,GAAaA,EAAUuxW,cAAc,GACpEr8W,CAAAA,EAAOu+W,GAAmBv+W,EAAM,CAAC8mW,aAAc,EAAI,EAAC,EAEtDoT,EAAYrhX,IAAI,CAACmH,GAErB,CAEA,SAASs5W,GAAWC,CAAW,CAAEzwW,CAAK,CAAE+0W,CAAQ,CAAExE,CAAY,CAAEuE,CAAiB,EA0D/E,IAAK,IAAIx/V,KA9CLy7V,IAAgBgE,GAClBh6V,EAAQi2V,EACR5sR,EAAW4sR,EAAcpD,SAAS,EAGlC7yV,EAAQ,IAAI0yV,EADZrpR,EAAW6sQ,EAAO8jB,GACe/D,GAGnC0E,EAAkB11W,EACdwxW,EACFxT,EAAeh+V,EAAMgG,IAAI,CAAC,IACjBsrW,GACToE,CAAAA,EAAkB11W,EAAM4kB,OAAO,EAG7BkwV,IAIF9E,CADAA,EA8IF,SAAoChwW,CAAK,CAAE21W,CAAa,CAAEC,CAAmB,CAAEzC,CAAQ,EAgBrF,GAbKrf,EAAQ9zV,KACXmzW,EAAWyC,EACXA,EAAsBD,EACtBA,EAAgB31W,EAChBA,EAAQ/R,KAAAA,GAGN4jX,GACFgE,CAAAA,EAAwBC,CAAiB,EAEtCF,GACHA,CAAAA,EAAsB/D,EAAgCztR,EAAS92E,MAAM,GAAK82E,CAAO,GAE/E+uR,EAeF,OAAO2B,EAAkB90W,EAAO21W,EAAeE,EAAuBD,EAAqBG,GAV3F,IApBEF,EAoBEG,EAAmBlB,EAAkBrB,OAAO,CAACN,EAAS,CAC1D,GAAI6C,EACF,OAAOA,EAAiBh2W,EAAO21W,EAAeE,EAAuBD,EAAqBG,GACrF,GAAIpsB,EAAYqsB,GACrB,MAAMpL,GAAe,SACpB,sFAEAuI,EAAU7c,GAAYlyQ,GAK7B,CA/K0C,EAC3B6xR,iBAAiB,CAAGnB,EAEjC9E,EAAakG,YAAY,CAAG,SAAS/C,CAAQ,EAC3C,MAAO,CAAC,CAAC2B,EAAkBrB,OAAO,CAACN,EAAS,GAI5C5B,GACFuE,CAAAA,EAAqBK,SAsND/xR,CAAQ,CAAErpE,CAAK,CAAEi1V,CAAY,CAAEuB,CAAoB,CAAEvT,CAAY,CAAEh+V,CAAK,CAAEwxW,CAAwB,EAC1H,IAAIsE,EAAqB1gB,KACzB,IAAK,IAAIghB,KAAiB7E,EAAsB,CAC9C,IAAIvvW,EAAYuvW,CAAoB,CAAC6E,EAAc,CAC/C/qB,EAAS,CACXrkV,OAAQhF,IAAcwvW,GAA4BxvW,EAAUuxW,cAAc,CAAGvV,EAAeh+V,EAC5FokF,SAAUA,EACVx7E,OAAQmS,EACRsxU,YAAa2jB,CACf,EAEIp8W,EAAaoO,EAAUpO,UAAU,CAClB,MAAfA,GACFA,CAAAA,EAAamnB,CAAK,CAAC/Y,EAAUsT,IAAI,CAAC,EAGpC,IAAI+gW,EAAqBrpB,EAAYp5V,EAAYy3V,EAAQ,GAAMrpV,EAAU3B,YAAY,CAMrFy1W,CAAAA,CAAkB,CAAC9zW,EAAUsT,IAAI,CAAC,CAAG+gW,EACrCjyR,EAASj1F,IAAI,CAAC,IAAM6S,EAAUsT,IAAI,CAAG,aAAc+gW,EAAmBvhX,QAAQ,CAChF,CACA,OAAOghX,CACT,EAhP4C1xR,EAAUrpE,EAAOi1V,EAAcuB,EAAsBvT,EAAch+V,EAAOwxW,EAAwB,EAGtIA,IAEFxgI,GAAQy+H,cAAc,CAACrrR,EAAU45Q,EAAc,GAAM,CAAEyT,CAAAA,GAAsBA,CAAAA,IAAsBD,GAC/FC,IAAsBD,EAAyBiD,mBAAmB,IACtEzjI,GAAQ4+H,eAAe,CAACxrR,EAAU,IAClC45Q,EAAasY,iBAAiB,CAC1B9E,EAAyB8E,iBAAiB,CAI1CC,CAHJA,EAAmBC,GAA4Bx2W,EAAO+a,EAAOijV,EAC/BA,EAAasY,iBAAiB,CAC9B9E,EAAwB,EACjCiF,aAAa,EAChCzY,EAAap3V,GAAG,CAAC,WAAY2vW,EAAiBE,aAAa,GAK9CX,EAAoB,CACnC,IA1DE3nX,EACAo8K,EACA4nM,EACAnU,EACA0X,EACAI,EACA9F,EACA5rR,EACArpE,EACAw7V,EAiDEG,EAAsBnF,CAAoB,CAACj8V,EAAK,CAChD1hB,EAAakiX,CAAkB,CAACxgW,EAAK,CACrC/hB,EAAWmjX,EAAoBC,UAAU,CAACr2W,gBAAgB,CAE9D,GAAIssW,EAA0B,CACxBr5W,EACFK,EAAWgjX,WAAW,CACpBJ,GAA4Bd,EAAiB36V,EAAOnnB,EAAWkB,QAAQ,CAAEvB,EAAUmjX,GAErF9iX,EAAWgjX,WAAW,CAAG,CAAC,EAG5B,IAAIC,EAAmBjjX,IACnBijX,IAAqBjjX,EAAWkB,QAAQ,GAG1ClB,EAAWkB,QAAQ,CAAG+hX,EACtBzyR,EAASj1F,IAAI,CAAC,IAAMunX,EAAoBphW,IAAI,CAAG,aAAcuhW,GACzDjjX,EAAWgjX,WAAW,CAACH,aAAa,EACtC7iX,EAAWgjX,WAAW,CAACH,aAAa,GAEtC7iX,EAAWgjX,WAAW,CACpBJ,GAA4Bd,EAAiB36V,EAAOnnB,EAAWkB,QAAQ,CAAEvB,EAAUmjX,GAEzF,MACE9iX,EAAWkB,QAAQ,CAAGlB,IACtBwwF,EAASj1F,IAAI,CAAC,IAAMunX,EAAoBphW,IAAI,CAAG,aAAc1hB,EAAWkB,QAAQ,EAChFlB,EAAWgjX,WAAW,CACpBJ,GAA4Bd,EAAiB36V,EAAOnnB,EAAWkB,QAAQ,CAAEvB,EAAUmjX,EAEzF,CAuCA,IAAKvoX,EApCGojX,EAAsB,SAASmF,CAAmB,CAAEphW,CAAI,EAC9D,IAAIurE,EAAU61R,EAAoB71R,OAAO,CACrC61R,EAAoBp2W,gBAAgB,EAAI,CAACgZ,EAAQunE,IAAYq6L,EAASr6L,IACxE3T,EAAO4oS,CAAkB,CAACxgW,EAAK,CAACxgB,QAAQ,CAAEgiX,GAAexhW,EAAMurE,EAASuD,EAAU0xR,GAEtF,GAGAlpX,EAAQkpX,EAAoB,SAASliX,CAAU,EAC7C,IAAIyiX,EAAqBziX,EAAWkB,QAAQ,CAC5C,GAAI0oC,EAAW64U,EAAmBlgQ,UAAU,EAC1C,GAAI,CACFkgQ,EAAmBlgQ,UAAU,CAACviH,EAAWgjX,WAAW,CAACG,cAAc,CACrE,CAAE,MAAO1jV,EAAG,CACV44U,EAAkB54U,EACpB,CAEF,GAAImK,EAAW64U,EAAmB7iP,OAAO,EACvC,GAAI,CACF6iP,EAAmB7iP,OAAO,EAC5B,CAAE,MAAOngG,EAAG,CACV44U,EAAkB54U,EACpB,CAEEmK,EAAW64U,EAAmBW,QAAQ,IACxCtB,EAAgBz6V,MAAM,CAAC,WAAao7V,EAAmBW,QAAQ,EAAI,GACnEX,EAAmBW,QAAQ,IAEzBx5U,EAAW64U,EAAmBhgQ,UAAU,GAC1Cq/P,EAAgB9uW,GAAG,CAAC,WAAY,WAC9ByvW,EAAmBhgQ,UAAU,EAC/B,EAEJ,GAGKloH,EAAI,EAAGo8K,EAAK4mM,EAAW7lX,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAE1C8oX,GADA9E,EAAShB,CAAU,CAAChjX,EAAE,CAElBgkX,EAAOnU,YAAY,CAAGA,EAAeh+V,EACrCokF,EACArpE,EACAo3V,EAAOtxR,OAAO,EAAIi2R,GAAe3E,EAAO3oR,aAAa,CAAE2oR,EAAOtxR,OAAO,CAAEuD,EAAU0xR,GACjF9F,GAON,IAAI+F,EAAe/1W,EASnB,IARIwxW,GAA6BA,CAAAA,EAAyB79W,QAAQ,EAAI69W,OAAAA,EAAyB9qW,WAAW,GACxGqvW,CAAAA,EAAe/X,CAAW,EAExByS,GACFA,EAAYsF,EAAchB,EAASlyG,UAAU,CAAE50Q,KAAAA,EAAW6mX,GAIvD3mX,EAAIijX,EAAY9lX,MAAM,CAAG,EAAG6C,GAAK,EAAGA,IAEvC8oX,GADA9E,EAASf,CAAW,CAACjjX,EAAE,CAEnBgkX,EAAOnU,YAAY,CAAGA,EAAeh+V,EACrCokF,EACArpE,EACAo3V,EAAOtxR,OAAO,EAAIi2R,GAAe3E,EAAO3oR,aAAa,CAAE2oR,EAAOtxR,OAAO,CAAEuD,EAAU0xR,GACjF9F,GAKNpjX,EAAQkpX,EAAoB,SAASliX,CAAU,EAC7C,IAAIyiX,EAAqBziX,EAAWkB,QAAQ,CACxC0oC,EAAW64U,EAAmB5sM,SAAS,GACzC4sM,EAAmB5sM,SAAS,EAEhC,EAsCF,CACF,EA52BgCpgF,EAAYinR,CAAQ,CAACniX,EAAE,CAAE4sB,EAAOi1V,EAAcO,EAC5C,KAAM,EAAE,CAAE,EAAE,CAAEJ,GACtC,IAAG,GAESK,EAAWxwW,KAAK,EAChCgxO,GAAQ4+H,eAAe,CAAC70V,EAAM6yV,SAAS,EAGzC6C,EAAc,MAAeD,EAAWh2G,QAAQ,GAChCqI,CAAAA,EAAaytG,CAAQ,CAACniX,EAAE,CAAC00Q,UAAU,GACpCA,EAAWv3Q,MAAM,CAE1B+kX,EAAaxtG,EACV2tG,EACC,CAACA,EAAWyE,uBAAuB,EAAI,CAACzE,EAAW+E,qBAAqB,GAClE/E,EAAWlsO,UAAU,CAAI0rO,GAJnC,KAMFQ,CAAAA,GAAcC,CAAU,IAC1BG,EAAQ7gX,IAAI,CAAC5B,EAAGqiX,EAAYC,GAC5BC,EAAc,GACdC,EAAkBA,GAAmBH,GAIvCL,EAAyB,KAI3B,OAAOO,EAEP,SAAyB1wW,CAAK,CAAEswW,CAAQ,CAAEC,CAAY,CAAE2G,CAAuB,EAY7E,GAAIvG,EAAiB,CAGnB,IAdEH,EACAC,EACA1jQ,EACAquJ,EACAjtQ,EACAo8K,EACAmuH,EACAi8E,EACAwC,EAUF,IAAKhpX,EAAI,EAHTgpX,EAAiB,MADI7G,EAAShlX,MAAM,EAIxB6C,EAAIyiX,EAAQtlX,MAAM,CAAE6C,GAAK,EAEnCgpX,CAAc,CADdz+E,EAAMk4E,CAAO,CAACziX,EAAE,CACG,CAAGmiX,CAAQ,CAAC53E,EAAI,MAGrCy+E,EAAiB7G,EAGnB,IAAKniX,EAAI,EAAGo8K,EAAKqmM,EAAQtlX,MAAM,CAAE6C,EAAIo8K,GACnCx9D,EAAOoqQ,CAAc,CAACvG,CAAO,CAACziX,IAAI,CAAC,CACnCqiX,EAAaI,CAAO,CAACziX,IAAI,CACzBsiX,EAAcG,CAAO,CAACziX,IAAI,CAEtBqiX,GACEA,EAAWxwW,KAAK,EAClBo7P,EAAap7P,EAAMgG,IAAI,GACvBgrO,GAAQy+H,cAAc,CAACxe,EAAOlkP,GAAOquJ,IAErCA,EAAap7P,EAIb20W,EADEnE,EAAWyE,uBAAuB,CACXC,GACrBl1W,EAAOwwW,EAAWlsO,UAAU,CAAE4yO,GAEzB,CAAC1G,EAAW+E,qBAAqB,EAAI2B,EACrBA,EAEhB,CAACA,GAA2BlH,EACZkF,GAAwBl1W,EAAOgwW,GAG/B,KAG3BQ,EAAWC,EAAar1G,EAAYruJ,EAAMwjQ,EAAcoE,IAE/ClE,GACTA,EAAYzwW,EAAO+sG,EAAK81J,UAAU,CAAE50Q,KAAAA,EAAWipX,EAGrD,EA9DuC,IA+DzC,EA/MuBnH,EAAeC,EAAcD,EAC7BE,EAAaC,EAAiBC,GACnDn/H,GAAQ4+H,eAAe,CAACG,GACxB,IAAIp/M,EAAY,KAChB,OAAO,SAAsB3wJ,CAAK,CAAEo3W,CAAc,CAAEhmW,CAAO,EACzD,GAAI,CAAC2+V,EACH,MAAMnF,GAAe,YAAa,yCAEpCnS,GAAUz4V,EAAO,SAEbmwW,GAA0BA,EAAuBmD,aAAa,EAKhEtzW,CAAAA,EAAQA,EAAM4kB,OAAO,CAAC5e,IAAI,EAAC,EAI7B,IAqDE+mG,EAtCEsqQ,EAfAH,EAA0B9lW,CAD9BA,EAAUA,GAAW,CAAC,GACgB8lW,uBAAuB,CACzDrB,EAAwBzkW,EAAQykW,qBAAqB,CACrDD,EAAsBxkW,EAAQwkW,mBAAmB,CA+BrD,GAzBIsB,GAA2BA,EAAwBjB,iBAAiB,EACtEiB,CAAAA,EAA0BA,EAAwBjB,iBAAiB,EAGhEtlN,GACHA,CAAAA,GAwCA5jD,EAAO6gE,GAAiBA,CAAa,CAAC,EAAE,GAInCumL,kBAAAA,GAAUpnP,IAA6BpzF,EAASrxB,IAAI,CAACykH,GAAM9gG,KAAK,CAAC,OAAS,MAAQ,MA5CxB,EAS/DorW,EANE1mN,SAAAA,EAMUsgM,EACV0iB,GAAahjN,EAAWsgM,EAAO,eAAe3+T,MAAM,CAACy9U,GAAej+U,IAAI,KAEjEslV,EAGGra,GAAgB5uO,KAAK,CAAC7lI,IAAI,CAACynX,GAE3BA,EAGV8F,EACF,IAAK,IAAIyB,KAAkBzB,EACzBwB,EAAUloX,IAAI,CAAC,IAAMmoX,EAAiB,aAAczB,CAAqB,CAACyB,EAAe,CAACxiX,QAAQ,EAYtG,OARAk8O,GAAQy+H,cAAc,CAAC4H,EAAWr3W,GAE9Bo3W,GAAgBA,EAAeC,EAAWr3W,GAC1CowW,GAAiBA,EAAgBpwW,EAAOq3W,EAAWA,EAAWH,GAE7DE,GACHrH,CAAAA,EAAgBK,EAAkB,IAAG,EAEhCiH,CACT,CACF,CA6IA,SAASnC,GAAwBl1W,CAAK,CAAEgwW,CAAY,CAAEuH,CAAyB,EAC7E,SAASzC,EAAkB0C,CAAgB,CAAEC,CAAO,CAAEC,CAAW,CAAE9B,CAAmB,CAAE+B,CAAe,EAOrG,OALKH,GAEHA,CAAAA,CADAA,EAAmBx3W,EAAMgG,IAAI,CAAC,GAAO2xW,EAAe,EACnCC,aAAa,CAAG,EAAG,EAG/B5H,EAAawH,EAAkBC,EAAS,CAC7CP,wBAAyBK,EACzB1B,sBAAuB6B,EACvB9B,oBAAqBA,CACvB,EACF,CAIA,IAAIiC,EAAa/C,EAAkBrB,OAAO,CAAGre,KAC7C,IAAK,IAAI+d,KAAYnD,EAAayD,OAAO,CACnCzD,EAAayD,OAAO,CAACN,EAAS,CAChC0E,CAAU,CAAC1E,EAAS,CAAG+B,GAAwBl1W,EAAOgwW,EAAayD,OAAO,CAACN,EAAS,CAAEoE,GAEtFM,CAAU,CAAC1E,EAAS,CAAG,KAI3B,OAAO2B,CACT,CAYA,SAASjE,GAAkB9jQ,CAAI,CAAE1jB,CAAU,CAAEtuE,CAAK,CAAEk1V,CAAW,CAAEC,CAAe,EAC9E,IAikCI4H,EAjkCAnmS,EAAWo7B,EAAKp7B,QAAQ,CACxBomS,EAAWh9V,EAAM4yV,KAAK,CAK1B,OAAQh8R,GACN,KA17Nc,EA+7NZqmS,GAAa3uR,EACTykR,GAJJ1zQ,EAAW+5P,GAAUpnP,IAIa,IAAKkjQ,EAAaC,GAGpD,IAAK,IAdLjkW,EACAmuF,EACAoG,EAYS72G,EAAM2rB,EAAM2iW,EAAOC,EAAY1tX,EAAO2tX,EAAUC,EAASrrQ,EAAKhB,UAAU,CACxEv+G,EAAI,EAAG4lW,EAAKglB,GAAUA,EAAO9sX,MAAM,CAAEkC,EAAI4lW,EAAI5lW,IAAK,CACzD,IAAI6qX,EAAgB,GAChBC,EAAc,GAGlBhjW,EAAO3rB,CADPA,EAAOyuX,CAAM,CAAC5qX,EAAE,EACJ8nB,IAAI,CAChB9qB,EAAQb,EAAKa,KAAK,CAGlB0tX,EAAapK,GAAmBx4V,GAChC6iW,CAAAA,EAAW/I,GAAgBnkX,IAAI,CAACitX,EAAU,GAExC5iW,CAAAA,EAAOA,EAAK7V,OAAO,CAAC84W,GAAe,IAChC57G,MAAM,CAAC,GAAGl9P,OAAO,CAAC,QAAS,SAASwM,CAAK,CAAEssV,CAAM,EAChD,OAAOA,EAAOj+Q,WAAW,EAC3B,EAAC,EAGL,IAAIk+R,EAAoBN,EAAWjsW,KAAK,CAACojW,IACrCmJ,GAAqBC,SA40BAnjW,CAAI,EACnC,GAAI01V,EAAc3xV,cAAc,CAAC/D,GAC/B,KAAK,IAAe+zE,EAAa2nB,EAAU35G,GAAG,CAACie,EAAO21V,GAClD98W,EAAI,EAAGo8K,EAAKlhF,EAAW/9F,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAEzC,GAAI6T,CADkB,CAAC7T,EAAE,CACXuqX,YAAY,CACxB,MAAO,EAEX,CAEF,MAAO,EACT,EAv1ByDF,CAAiB,CAAC,EAAE,IACnEH,EAAgB/iW,EAChBgjW,EAAchjW,EAAKqnP,MAAM,CAAC,EAAGrnP,EAAKhqB,MAAM,CAAG,GAAK,MAChDgqB,EAAOA,EAAKqnP,MAAM,CAAC,EAAGrnP,EAAKhqB,MAAM,CAAG,IAItCysX,CAAQ,CADRE,EAAQnK,GAAmBx4V,EAAKxT,WAAW,IAC5B,CAAGwT,EACd6iW,CAAAA,GAAY,CAACp9V,EAAM1B,cAAc,CAAC4+V,EAAK,IACvCl9V,CAAK,CAACk9V,EAAM,CAAGztX,EACX4yW,GAAmBrwP,EAAMkrQ,IAC3Bl9V,CAAAA,CAAK,CAACk9V,EAAM,CAAG,EAAG,GAGxBU,SA6kC6B5rQ,CAAI,CAAE1jB,CAAU,CAAE7+F,CAAK,CAAE8qB,CAAI,CAAE6iW,CAAQ,EAC1E,IAAIS,EAAiBC,SAvBI9rQ,CAAI,CAAE+rQ,CAAkB,EACjD,GAAIA,WAAAA,EACF,OAAOj5W,EAAKk5W,IAAI,CAElB,IAAI5oV,EAAMgkU,GAAUpnP,GAGpB,GAAI+rQ,QAAAA,GAAgCA,UAAAA,EAClC,IAAI,CAAC,CAAC,MAAO,QAAS,QAAS,SAAU,QAAQ,CAACxsW,QAAQ,CAAC6jB,GACzD,OAAOtwB,EAAKm5W,YAAY,MAGrB,GAAIF,cAAAA,GACN3oV,SAAAA,GAAkB2oV,WAAAA,GAElB3oV,SAAAA,GAAkB2oV,SAAAA,EAErB,OAAOj5W,EAAKm5W,YAAY,EAMajsQ,EAAMz3F,GAEzC2jW,EAAe7N,CAAoB,CAAC91V,EAAK,EAAI6iW,EAE7CL,EAAgB1K,EAAa5iX,EAHR,CAAC2tX,EAGkCS,EAAgBK,GAG5E,GAAKnB,GAEL,GAAIxiW,aAAAA,GAAuB6+U,WAAAA,GAAUpnP,GACnC,MAAM69P,GAAe,WACjB,qEACAtU,GAAYvpP,IAGlB,GAAIw+P,EAA0BtgX,IAAI,CAACqqB,GACjC,MAAMs1V,GAAe,cACjB,4IAINvhR,EAAWt5F,IAAI,CAAC,CACdwqQ,SAAU,IACVvpB,QAAAA,IACW,EACLskI,IAAK,SAAkCt1W,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EACzD,IAAIolX,EAAeplX,EAAKolX,WAAW,EAAKplX,CAAAA,EAAKolX,WAAW,CAAG3Z,IAAU,EAGjE16U,EAAW/wB,CAAI,CAAC2rB,EAAK,CACrBoF,IAAalwB,IAIfstX,EAAgBp9V,GAAY0yV,EAAa1yV,EAAU,GAAMk+V,EAAgBK,GACzEzuX,EAAQkwB,GAKLo9V,IAKLnuX,CAAI,CAAC2rB,EAAK,CAAGwiW,EAAc93W,GAE1B+uW,CAAAA,CAAW,CAACz5V,EAAK,EAAKy5V,CAAAA,CAAW,CAACz5V,EAAK,CAAG,EAAE,GAAG05V,OAAO,CAAG,GAC1D,CAACrlX,EAAKolX,WAAW,EAAIplX,EAAKolX,WAAW,CAACz5V,EAAK,CAAC4jW,OAAO,EAAIl5W,CAAI,EACzDib,MAAM,CAAC68V,EAAe,SAAkCp9V,CAAQ,CAAEC,CAAQ,EAOpErF,UAAAA,GAAoBoF,IAAaC,EACnChxB,EAAKukX,YAAY,CAACxzV,EAAUC,GAE5BhxB,EAAK62I,IAAI,CAAClrH,EAAMoF,EAEpB,GACJ,CACF,EAEN,GACF,EAhpCoCqyF,EAAM1jB,EAAY7+F,EAAOytX,EAAOE,GAC5DH,GAAa3uR,EAAY4uR,EAAO,IAAKhI,EAAaC,EAAiBmI,EACrDC,EAChB,CASA,GAPiB,UAAbl+Q,GAAwB2S,WAAAA,EAAKjgH,YAAY,CAAC,SAG5CigH,EAAK1gH,YAAY,CAAC,eAAgB,OAIhC,CAAC8gX,EAA2B,MAMhC,GAJIjyF,EADJ16K,EAAYuM,EAAKvM,SAAS,GAGtBA,CAAAA,EAAYA,EAAU24Q,OAAO,EAE7Bl8R,EAASujB,IAAcA,KAAAA,EACzB,KAAQv0F,EAAQk/V,EAAuB7kG,IAAI,CAAC9lK,IAEtCw3Q,GAAa3uR,EADjB4uR,EAAQnK,GAAmB7hW,CAAK,CAAC,EAAE,EACC,IAAKgkW,EAAaC,IACpDn1V,CAAAA,CAAK,CAACk9V,EAAM,CAAGjgU,EAAK/rC,CAAK,CAAC,EAAE,GAE9Bu0F,EAAYA,EAAUm8J,MAAM,CAAC1wP,EAAMte,KAAK,CAAGse,CAAK,CAAC,EAAE,CAAC3gB,MAAM,EAG9D,KACF,MAAKkrW,IAm/BHshB,EAAgB1K,EAl/BwBrgQ,EAAKu7N,SAAS,CAk/BnB,MAErCj/O,EAAWt5F,IAAI,CAAC,CACdwqQ,SAAU,EACVvpB,QAAS,SAAkCooI,CAAY,EACrD,IAAIC,EAAqBD,EAAa9rW,MAAM,GACxCgsW,EAAmB,CAAC,CAACD,EAAmB/tX,MAAM,CAMlD,OAFIguX,GAAkBtoI,GAAQw+H,iBAAiB,CAAC6J,GAEzC,SAA+Br5W,CAAK,CAAE+sG,CAAI,EAC/C,IAAIz/F,EAASy/F,EAAKz/F,MAAM,GACnBgsW,GAAkBtoI,GAAQw+H,iBAAiB,CAACliW,GACjD0jO,GAAQs+H,gBAAgB,CAAChiW,EAAQwqW,EAAcyB,WAAW,EAC1Dv5W,EAAMib,MAAM,CAAC68V,EAAe,SAAkCttX,CAAK,EACjEuiH,CAAI,CAAC,EAAE,CAACu7N,SAAS,CAAG99U,CACtB,EACF,CACF,CACF,GAtgCE,KACF,MAjgOc,EAkgOZ,GAAI,CAACyiX,EAA0B,MAC/BuM,CAQN,SAAkCzsQ,CAAI,CAAE1jB,CAAU,CAAEtuE,CAAK,CAAEk1V,CAAW,CAAEC,CAAe,EAGrF,GAAI,CACF,IAAIjkW,EAAQi/V,EAAyB5kG,IAAI,CAACv5J,EAAKu7N,SAAS,EACxD,GAAIr8T,EAAO,CACT,IAAIgsW,EAAQnK,GAAmB7hW,CAAK,CAAC,EAAE,EACnC+rW,GAAa3uR,EAAY4uR,EAAO,IAAKhI,EAAaC,IACpDn1V,CAAAA,CAAK,CAACk9V,EAAM,CAAGjgU,EAAK/rC,CAAK,CAAC,EAAE,EAEhC,CACF,CAAE,MAAOonB,EAAG,CAAK,CACnB,GApB+B05E,EAAM1jB,EAAYtuE,EAAOk1V,EAAaC,EAEnE,CAGA,OADA7mR,EAAWugD,IAAI,CAAC6vO,IACTpwR,CACT,CAwBA,SAASqpR,GAAU3lQ,CAAI,CAAEulQ,CAAS,CAAEE,CAAO,EACzC,IAAI3pC,EAAQ,EAAE,CACV6wC,EAAQ,EACZ,GAAIpH,GAAavlQ,EAAK6uM,YAAY,EAAI7uM,EAAK6uM,YAAY,CAAC02D,GACtD,EAAG,CACD,GAAI,CAACvlQ,EACH,MAAM69P,GAAe,UACX,mEACA0H,EAAWE,EA5iOX,KA8iORzlQ,EAAKp7B,QAAQ,GACXo7B,EAAK6uM,YAAY,CAAC02D,IAAYoH,IAC9B3sQ,EAAK6uM,YAAY,CAAC42D,IAAUkH,KAElC7wC,EAAM94U,IAAI,CAACg9G,GACXA,EAAOA,EAAKygJ,WAAW,OAChBksH,EAAQ,EAAG,KAEpB7wC,EAAM94U,IAAI,CAACg9G,GAGb,OAAOkkP,EAAOpoB,EAChB,CAUA,SAAS2sC,GAA2BrD,CAAM,CAAEG,CAAS,CAAEE,CAAO,EAC5D,OAAO,SAA6BxyW,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,CAAE28V,CAAW,CAAE1H,CAAY,EAElF,OAAOmC,EAAOnyW,EADd9S,EAAUwlX,GAAUxlX,CAAO,CAAC,EAAE,CAAEolX,EAAWE,GACbz3V,EAAO28V,EAAa1H,EACpD,CACF,CAaA,SAAS+C,GAAqB4G,CAAK,CAAE5J,CAAa,CAAEC,CAAY,CAAEC,CAAW,CAAEC,CAAe,CAAEC,CAAsB,EACpH,IAAIyJ,SAEJ,EACS5oI,GAAQ++H,EAAeC,EAAcC,EAAaC,EAAiBC,GAExD,WAQlB,OAPKyJ,IACHA,EAAW5oI,GAAQ++H,EAAeC,EAAcC,EAAaC,EAAiBC,GAI9EJ,EAAgBC,EAAeG,EAAyB,MAEnDyJ,EAASnyT,KAAK,CAAC,IAAI,CAAEC,UAC9B,CACF,CAsjBA,SAASovT,GAAettR,CAAa,CAAE3I,CAAO,CAAEuD,CAAQ,CAAE0xR,CAAkB,EAC1E,IAAItrX,EAEJ,GAAIyyF,EAAS4D,GAAU,CACrB,IAAI50E,EAAQ40E,EAAQ50E,KAAK,CAACq/V,GACtBh2V,EAAOurE,EAAQ73D,SAAS,CAAC/c,CAAK,CAAC,EAAE,CAAC3gB,MAAM,EACxCuuX,EAAc5tW,CAAK,CAAC,EAAE,EAAIA,CAAK,CAAC,EAAE,CAClCs9U,EAAWt9U,MAAAA,CAAK,CAAC,EAAE,CAYvB,GATI4tW,OAAAA,EACFz1R,EAAWA,EAAS92E,MAAM,GAK1B9iB,EAAQA,CADRA,EAAQsrX,GAAsBA,CAAkB,CAACxgW,EAAK,GACrC9qB,EAAMsK,QAAQ,CAG7B,CAACtK,EAAO,CACV,IAAIsvX,EAAW,IAAMxkW,EAAO,aAC5B9qB,EAAQqvX,EAAcz1R,EAAS25Q,aAAa,CAAC+b,GAAY11R,EAASj1F,IAAI,CAAC2qX,EACzE,CAEA,GAAI,CAACtvX,GAAS,CAAC++V,EACb,MAAMqhB,GAAe,QACjB,iEACAt1V,EAAMk0E,EAEd,MAAO,GAAIlwE,EAAQunE,GAAU,CAC3Br2F,EAAQ,EAAE,CACV,IAAK,IAAI2D,EAAI,EAAGo8K,EAAK1pF,EAAQv1F,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAC3C3D,CAAK,CAAC2D,EAAE,CAAG2oX,GAAettR,EAAe3I,CAAO,CAAC1yF,EAAE,CAAEi2F,EAAU0xR,EAEnE,MAAW56F,EAASr6L,KAClBr2F,EAAQ,CAAC,EACToC,EAAQi0F,EAAS,SAASjtF,CAAU,CAAEs9E,CAAQ,EAC5C1mF,CAAK,CAAC0mF,EAAS,CAAG4lS,GAAettR,EAAe51F,EAAYwwF,EAAU0xR,EACxE,IAGF,OAAOtrX,GAAS,IAClB,CAoCA,SAASwpX,GAAmB3qR,CAAU,CAAE20Q,CAAY,CAAE5jH,CAAQ,EAC5D,IAAK,IAAI5sP,EAAI,EAAG4lW,EAAK/pQ,EAAW/9F,MAAM,CAAEkC,EAAI4lW,EAAI5lW,IAC9C67F,CAAU,CAAC77F,EAAE,CAAGs7V,EAAQz/P,CAAU,CAAC77F,EAAE,CAAE,CAAC+lX,eAAgBvV,EAAcwV,WAAYp5H,CAAQ,EAE9F,CAgBA,SAAS49H,GAAa+B,CAAW,CAAEzkW,CAAI,CAAEyf,CAAQ,CAAEk7U,CAAW,CAAEC,CAAe,CAAE8J,CAAa,CACxEC,CAAW,EAC/B,GAAI3kW,IAAS46V,EAAiB,OAAO,KACrC,IAAIjkW,EAAQ,KACZ,GAAI++V,EAAc3xV,cAAc,CAAC/D,GAC/B,KAAK,IAAItT,EAAWqnF,EAAa2nB,EAAU35G,GAAG,CAACie,EAAO21V,GAClD98W,EAAI,EAAGo8K,EAAKlhF,EAAW/9F,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAEzC,GADA6T,EAAYqnF,CAAU,CAACl7F,EAAE,CACrB,CAACw7V,EAAYsmB,IAAgBA,EAAcjuW,EAAUu4P,QAAQ,GAC5Dv4P,EAAUjC,QAAQ,CAACuM,QAAQ,CAACyoB,GAAW,CAI1C,GAHIilV,GACFh4W,CAAAA,EAAY8mV,EAAQ9mV,EAAW,CAACuwW,QAASyH,EAAevH,MAAOwH,CAAW,EAAC,EAEzE,CAACj4W,EAAU20W,UAAU,CAAE,CACzB,IAAIpjX,EAAWyO,EAAU20W,UAAU,CAC/BuD,SA36Dcl4W,CAAS,CAAEwnF,CAAa,EACtD,IAAIj2F,EAAW,CACbyqW,aAAc,KACd19V,iBAAkB,IACpB,EAeA,GAdI46Q,EAASl5Q,EAAUhC,KAAK,IACtBgC,CAA+B,IAA/BA,EAAU1B,gBAAgB,EAC5B/M,EAAS+M,gBAAgB,CAAGmrW,EAAqBzpW,EAAUhC,KAAK,CACfwpF,EAAe,IAChEj2F,EAASyqW,YAAY,CAAG,CAAC,GAEzBzqW,EAASyqW,YAAY,CAAGyN,EAAqBzpW,EAAUhC,KAAK,CACfwpF,EAAe,KAG5D0xL,EAASl5Q,EAAU1B,gBAAgB,GACrC/M,CAAAA,EAAS+M,gBAAgB,CACrBmrW,EAAqBzpW,EAAU1B,gBAAgB,CAAEkpF,EAAe,GAAI,EAEtEj2F,EAAS+M,gBAAgB,EAAI,CAAC0B,EAAUpO,UAAU,CAEpD,MAAMg3W,GAAe,SACf,iEACAphR,GAER,OAAOj2F,CACT,EAi5DyCyO,EAAWA,EAAUsT,IAAI,EAChD4lQ,EAAS3nR,EAASyqW,YAAY,GAChCh8V,CAAAA,EAAUs0W,iBAAiB,CAAG/iX,EAASyqW,YAAY,CAEvD,CACA+b,EAAYhqX,IAAI,CAACiS,GACjBiK,EAAQjK,CACV,CACF,CAEF,OAAOiK,CACT,CAgCA,SAASgoW,GAAwBj3B,CAAG,CAAEzmK,CAAG,EACvC,IAAI4jM,EAAU5jM,EAAIo3L,KAAK,CACnByM,EAAUp9B,EAAI2wB,KAAK,CAGvB/gX,EAAQowV,EAAK,SAASxyV,CAAK,CAAEU,CAAG,EACR,MAAlBA,EAAImvF,MAAM,CAAC,KACTk8F,CAAG,CAACrrL,EAAI,EAAIqrL,CAAG,CAACrrL,EAAI,GAAKV,IACvBA,EAAMc,MAAM,CACdd,GAAS,CAACU,UAAAA,EAAkB,IAAM,KAAOqrL,CAAG,CAACrrL,EAAI,CAEjDV,EAAQ+rL,CAAG,CAACrrL,EAAI,EAGpB8xV,EAAIx8M,IAAI,CAACt1I,EAAKV,EAAO,GAAM2vX,CAAO,CAACjvX,EAAI,EAE3C,GAGA0B,EAAQ2pL,EAAK,SAAS/rL,CAAK,CAAEU,CAAG,EAKzB8xV,EAAI3jU,cAAc,CAACnuB,IAAQA,MAAAA,EAAImvF,MAAM,CAAC,KACzC2iQ,CAAG,CAAC9xV,EAAI,CAAGV,EAEC,UAARU,GAAmBA,UAAAA,GACrBkvX,CAAAA,CAAO,CAAClvX,EAAI,CAAGivX,CAAO,CAACjvX,EAAI,EAGjC,EACF,CAoIA,SAASuuX,GAAWnnT,CAAC,CAAE2a,CAAC,EACtB,IAAImmE,EAAOnmE,EAAEstL,QAAQ,CAAGjoM,EAAEioM,QAAQ,QAClC,IAAInnH,EAAmBA,EACnB9gF,EAAEh9C,IAAI,GAAK23D,EAAE33D,IAAI,CAAS,EAAGA,IAAI,CAAG23D,EAAE33D,IAAI,CAAI,GAAK,EAChDg9C,EAAE3kE,KAAK,CAAGs/E,EAAEt/E,KAAK,CAG1B,SAASglX,GAAkB0H,CAAI,CAAEC,CAAiB,CAAEt4W,CAAS,CAAE9U,CAAO,EAEpE,SAASqtX,EAAwBC,CAAU,EACzC,OAAOA,EACJ,aAAeA,EAAa,IAC7B,EACJ,CAEA,GAAIF,EACF,MAAM1P,GAAe,WAAY,8DAC7B0P,EAAkBhlW,IAAI,CAAEilW,EAAwBD,EAAkBnO,YAAY,EAC9EnqW,EAAUsT,IAAI,CAAEilW,EAAwBv4W,EAAUmqW,YAAY,EAAGkO,EAAM/jB,GAAYppW,GAE3F,CA8BA,SAASymX,GAAavoW,CAAI,CAAEzX,CAAQ,EAElC,OADAyX,EAAO+hV,EAAU/hV,GAAQ,SAEzB,IAAK,MACL,IAAK,OACH,IAAIo0V,EAAU9uW,EAAOjF,QAAQ,CAAC80G,aAAa,CAAC,OAE5C,OADAi/P,EAAQxuF,SAAS,CAAG,IAAM5lQ,EAAO,IAAMzX,EAAW,KAAOyX,EAAO,IACzDo0V,EAAQ38F,UAAU,CAAC,EAAE,CAACA,UAAU,SAEvC,OAAOlvQ,CACT,CACF,CAyGA,SAAS02Q,GAAYkmG,CAAY,CAAEkK,CAAgB,CAAE7lG,CAAO,EAC1D,IAGIzmR,EACAo8K,EAJAmwM,EAAuBD,CAAgB,CAAC,EAAE,CAC1CE,EAAcF,EAAiBnvX,MAAM,CACrCgiB,EAASotW,EAAqBvsV,UAAU,CAI5C,GAAIoiV,EACF,KAAKpiX,EAAI,EAAGo8K,EAAKgmM,EAAajlX,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAC5C,GAAIoiX,CAAY,CAACpiX,EAAE,GAAKusX,EAAsB,CAC5CnK,CAAY,CAACpiX,IAAI,CAAGymR,EACpB,IAAK,IAAIpnR,EAAIW,EAAGysX,EAAKptX,EAAImtX,EAAc,EAC9BvnB,EAAKmd,EAAajlX,MAAM,CAC5BkC,EAAI4lW,EAAI5lW,IAAKotX,IACZA,EAAKxnB,EACPmd,CAAY,CAAC/iX,EAAE,CAAG+iX,CAAY,CAACqK,EAAG,CAElC,OAAOrK,CAAY,CAAC/iX,EAAE,CAG1B+iX,EAAajlX,MAAM,EAAIqvX,EAAc,EAKjCpK,EAAa3vM,OAAO,GAAK85M,GAC3BnK,CAAAA,EAAa3vM,OAAO,CAAGg0G,CAAM,EAE/B,KACF,CACF,CAGEtnQ,GACFA,EAAOunQ,YAAY,CAACD,EAAS8lG,GAO/B,IAAIrjC,EAAW3mV,EAAOjF,QAAQ,CAACylR,sBAAsB,GACrD,IAAK/iR,EAAI,EAAGA,EAAIwsX,EAAaxsX,IAC3BkpV,EAAS32O,WAAW,CAAC+5Q,CAAgB,CAACtsX,EAAE,EAkB1C,IAfI8iW,EAAO6M,OAAO,CAAC4c,KAIjBzpB,EAAO9hW,IAAI,CAACylR,EAASq8E,EAAO9hW,IAAI,CAACurX,IAGjCzpB,EAAOypB,GAAsBzjV,GAAG,CAAC,aAKnCg6T,EAAOoK,SAAS,CAAChkB,EAAShqV,gBAAgB,CAAC,MAGtCc,EAAI,EAAGA,EAAIwsX,EAAaxsX,IAC3B,OAAOssX,CAAgB,CAACtsX,EAAE,CAE5BssX,CAAgB,CAAC,EAAE,CAAG7lG,EACtB6lG,EAAiBnvX,MAAM,CAAG,CAC5B,CAGA,SAASmqX,GAAmB5wJ,CAAE,CAAEg2J,CAAU,EACxC,OAAO3tS,EAAO,WAAa,OAAO23I,KAAMn9J,UAAY,EAAGm9J,EAAIg2J,EAC7D,CAGA,SAAS5D,GAAa9E,CAAM,CAAEnyW,CAAK,CAAEokF,CAAQ,CAAErpE,CAAK,CAAE28V,CAAW,CAAE1H,CAAY,EAC7E,GAAI,CACFmC,EAAOnyW,EAAOokF,EAAUrpE,EAAO28V,EAAa1H,EAC9C,CAAE,MAAO38U,EAAG,CACV44U,EAAkB54U,EAAGijU,GAAYlyQ,GACnC,CACF,CAEA,SAAS02R,GAAoB7pH,CAAQ,CAAEznK,CAAa,EAClD,GAAIqjR,EACF,MAAMjC,GAAe,cACnB,4DACA35G,EAAUznK,EAEhB,CAGA,SAASgtR,GAA4Bx2W,CAAK,CAAE+a,CAAK,CAAEs5U,CAAW,CAAE9gW,CAAQ,CAAEyO,CAAS,EACjF,IAEIk7G,EAFA69P,EAAwB,EAAE,CAC1BhE,EAAiB,CAAC,EAwItB,SAASiE,EAAc9vX,CAAG,CAAE+3J,CAAY,CAAEo3D,CAAa,EACjD78K,EAAW62T,EAAYl+O,UAAU,GAAK,CAAC4+O,GAAc9xM,EAAco3D,KAEhEgzJ,IACHrtW,EAAM2kW,YAAY,CAAC6I,GACnBH,EAAiB,EAAE,EAGhBnwP,IACHA,EAAU,CAAC,EACXmwP,EAAet9W,IAAI,CAACkrX,IAGlB/9P,CAAO,CAAChyH,EAAI,EACdmvN,CAAAA,EAAgBn9F,CAAO,CAAChyH,EAAI,CAACmvN,aAAa,EAG5Cn9F,CAAO,CAAChyH,EAAI,CAAG,IAAIgwX,GAAa7gK,EAAep3D,GAEnD,CAEA,SAASg4N,IACP5mB,EAAYl+O,UAAU,CAAC+G,GAEvBA,EAAUjvH,KAAAA,CACZ,CAEA,OAhKArB,EAAQ2G,EAAU,SAA2Bq4W,CAAU,CAAEC,CAAS,EAChE,IAMIv/F,EACA6uG,EACAC,EACAC,EACAC,EAVArqH,EAAW26G,EAAW36G,QAAQ,CAC9Bs4F,EAAWqiB,EAAWriB,QAAQ,CAWlC,OAROqiB,EAAWxvR,IAAI,EAUpB,IAAK,IACEmtQ,GAAalwU,EAAe/wB,IAAI,CAACyyB,EAAOk2O,KAC3C6pH,GAAoB7pH,EAAUjvP,EAAUsT,IAAI,EAC5C++U,CAAW,CAACwX,EAAU,CAAG9wV,CAAK,CAACk2O,EAAS,CAAGhjQ,KAAAA,GAG7CqtX,EAAcvgW,EAAMN,QAAQ,CAACw2O,EAAU,SAASzmQ,CAAK,EACnD,GAAIyyF,EAASzyF,IAAUupW,EAAUvpW,GAAQ,CACvC,IAAImwB,EAAW05U,CAAW,CAACwX,EAAU,CACrCmP,EAAcnP,EAAWrhX,EAAOmwB,GAChC05U,CAAW,CAACwX,EAAU,CAAGrhX,CAC3B,CACF,GACAuwB,EAAMg0V,WAAW,CAAC99G,EAAS,CAACioH,OAAO,CAAGl5W,EAElCi9E,EADJqvL,EAAYvxP,CAAK,CAACk2O,EAAS,EAIzBojG,CAAW,CAACwX,EAAU,CAAGuB,EAAa9gG,GAAWtsQ,GACxC+zV,EAAUznF,IAGnB+nF,CAAAA,CAAW,CAACwX,EAAU,CAAGv/F,CAAQ,EAEnCyqG,CAAc,CAAClL,EAAU,CAAG,IAAIqP,GAAarQ,GAAsBxW,CAAW,CAACwX,EAAU,EACzFkP,EAAsBhrX,IAAI,CAACurX,GAC3B,KAEF,KAAK,IACH,GAAI,CAACjiW,EAAe/wB,IAAI,CAACyyB,EAAOk2O,GAAW,CACzC,GAAIs4F,EAAU,MACduxB,GAAoB7pH,EAAUjvP,EAAUsT,IAAI,EAC5CyF,CAAK,CAACk2O,EAAS,CAAGhjQ,KAAAA,CACpB,CACA,GAAIs7V,GAAY,CAACxuU,CAAK,CAACk2O,EAAS,CAAE,MAIhCoqH,EADEF,CADJA,EAAYpqI,EAAOh2N,CAAK,CAACk2O,EAAS,GACpBsqH,OAAO,CACTphH,GAEA46F,GAEZqmB,EAAYD,EAAUvoW,MAAM,EAAI,WAG9B,MADA05P,EAAY+nF,CAAW,CAACwX,EAAU,CAAGsP,EAAUn7W,GACzC4qW,GAAe,YACjB,mFACA7vV,CAAK,CAACk2O,EAAS,CAAEA,EAAUjvP,EAAUsT,IAAI,CAC/C,EACAg3P,EAAY+nF,CAAW,CAACwX,EAAU,CAAGsP,EAAUn7W,GAC/C,IAAIw7W,EAAmB,SAA0BC,CAAW,EAY1D,OAXKJ,EAAQI,EAAapnB,CAAW,CAACwX,EAAU,IAEzCwP,EAAQI,EAAanvG,GAKxB8uG,EAAUp7W,EAAOy7W,EAAcpnB,CAAW,CAACwX,EAAU,EAHrDxX,CAAW,CAACwX,EAAU,CAAG4P,GAM7BnvG,EAAYmvG,CAEd,CACAD,CAAAA,EAAiBE,SAAS,CAAG,GAE3BJ,EADE1P,EAAW3nR,UAAU,CACTjkF,EAAM4oB,gBAAgB,CAAC7N,CAAK,CAACk2O,EAAS,CAAEuqH,GAExCx7W,EAAMib,MAAM,CAAC81N,EAAOh2N,CAAK,CAACk2O,EAAS,CAAEuqH,GAAmB,KAAML,EAAUI,OAAO,EAE/FR,EAAsBhrX,IAAI,CAACurX,GAC3B,KAEF,KAAK,IACH,GAAI,CAACjiW,EAAe/wB,IAAI,CAACyyB,EAAOk2O,GAAW,CACzC,GAAIs4F,EAAU,MACduxB,GAAoB7pH,EAAUjvP,EAAUsT,IAAI,EAC5CyF,CAAK,CAACk2O,EAAS,CAAGhjQ,KAAAA,CACpB,CACA,GAAIs7V,GAAY,CAACxuU,CAAK,CAACk2O,EAAS,CAAE,MAGlC,IAAI0qH,EAAYR,CADhBA,EAAYpqI,EAAOh2N,CAAK,CAACk2O,EAAS,GACRsqH,OAAO,CAE7Bj6R,EAAe+yQ,CAAW,CAACwX,EAAU,CAAGsP,EAAUn7W,EACtD+2W,CAAAA,CAAc,CAAClL,EAAU,CAAG,IAAIqP,GAAarQ,GAAsBxW,CAAW,CAACwX,EAAU,EAEzFyP,EAAct7W,EAAMib,MAAM,CAACkgW,EAAW,SAAgCzgW,CAAQ,CAAEC,CAAQ,EACtF,GAAIA,IAAaD,EAAU,CACzB,GAAIC,IAAa2mE,GAAiBq6R,GAAaxhH,GAAOx/O,EAAU2mE,GAC9D,OAEF3mE,EAAW2mE,CACb,CACA05R,EAAcnP,EAAWnxV,EAAUC,GACnC05U,CAAW,CAACwX,EAAU,CAAGnxV,CAC3B,EAAGihW,GAEHZ,EAAsBhrX,IAAI,CAACurX,GAC3B,KAEF,KAAK,IAQH,GAPK/xB,GAAalwU,EAAe/wB,IAAI,CAACyyB,EAAOk2O,IAC3C6pH,GAAoB7pH,EAAUjvP,EAAUsT,IAAI,EAM1C6lW,CAHJA,EAAYpgW,EAAM1B,cAAc,CAAC43O,GAAYlgB,EAAOh2N,CAAK,CAACk2O,EAAS,EAAIl5O,CAAG,IAGxDA,GAAQwxU,EAAU,KAEpC8K,CAAAA,CAAW,CAACwX,EAAU,CAAG,SAASxgB,CAAM,EACtC,OAAO8vB,EAAUn7W,EAAOqrV,EAC1B,CAEJ,CACF,GA6BO,CACL0rB,eAAgBA,EAChBN,cAAesE,EAAsBzvX,MAAM,EAAI,WAC7C,IAAK,IAAI6C,EAAI,EAAGo8K,EAAKwwM,EAAsBzvX,MAAM,CAAE6C,EAAIo8K,EAAI,EAAEp8K,EAC3D4sX,CAAqB,CAAC5sX,EAAE,EAE5B,CACF,CACF,CACF,EAAE,CAGN,SAAS+sX,GAAa9zK,CAAQ,CAAEt+F,CAAO,EACrC,IAAI,CAACuxG,aAAa,CAAGjT,EACrB,IAAI,CAACnkD,YAAY,CAAGn6C,CACtB,CApmFAgiQ,GAAiBt8W,OAAO,CAAG,CAAC,WAAY,wBAAwB,CAqmFhE0sX,GAAajxX,SAAS,CAACoqI,aAAa,CAAG,WAAa,OAAO,IAAI,CAACgmF,aAAa,GAAKwwJ,EAAsB,EAGxG,IAAI0N,GAAgB,uBAChBqD,GAAuB,cAM3B,SAAS9N,GAAmBx4V,CAAI,EAC9B,OAAOA,EACJ7V,OAAO,CAAC84W,GAAe,IACvB94W,OAAO,CAACm8W,GAAsB,SAASl0V,CAAC,CAAE6wU,CAAM,CAAE/oO,CAAM,EACvD,OAAOA,EAAS+oO,EAAOj+Q,WAAW,GAAKi+Q,CACzC,EACJ,CA8DA,SAAS6V,GAAgByN,CAAI,CAAEC,CAAI,EACjC,IAAInqX,EAAS,GACToqX,EAAUF,EAAKpkW,KAAK,CAAC,OACrBukW,EAAUF,EAAKrkW,KAAK,CAAC,OAEzBwkW,EACA,IAAK,IAAI9tX,EAAI,EAAGA,EAAI4tX,EAAQzwX,MAAM,CAAE6C,IAAK,CAEvC,IAAK,IADD0yG,EAAQk7Q,CAAO,CAAC5tX,EAAE,CACbX,EAAI,EAAGA,EAAIwuX,EAAQ1wX,MAAM,CAAEkC,IAClC,GAAIqzG,IAAUm7Q,CAAO,CAACxuX,EAAE,CAAE,SAASyuX,EAErCtqX,GAAU,CAACA,EAAOrG,MAAM,CAAG,EAAI,IAAM,IAAMu1G,CAC7C,CACA,OAAOlvG,CACT,CAEA,SAAS+hX,GAAewI,CAAO,EAE7B,IAAI/tX,EAAI+tX,CADRA,EAAUjrB,EAAOirB,EAAO,EACR5wX,MAAM,CAEtB,GAAI6C,GAAK,EACP,OAAO+tX,EAGT,KAAO/tX,KAAK,CACV,IAAI4+G,EAAOmvQ,CAAO,CAAC/tX,EAAE,CACjB4+G,CAAAA,IAAAA,EAAKp7B,QAAQ,EACbo7B,EAAKp7B,QAAQ,GAAK6kR,IAAkBzpP,KAAAA,EAAKu7N,SAAS,CAACtwR,IAAI,EAAO,GAC7DhoD,EAAO1H,IAAI,CAAC4zX,EAAS/tX,EAAG,EAE/B,CACA,OAAO+tX,CACT,CAGA,IAAIC,GAAoB1qB,EAAO,eAG3Bgb,GAAY,6BAsBhB,SAAS2P,KACP,IAAI1E,EAAc,CAAC,EACf2E,EAAU,EAOd,KAAI,CAACj/T,GAAG,CAAG,SAAS9nC,CAAI,EACtB,OAAOoiW,EAAYr+V,cAAc,CAAC/D,EACpC,EAUA,IAAI,CAAC1kB,QAAQ,CAAG,SAAS0kB,CAAI,CAAE5mB,CAAW,EACxCkqW,GAAwBtjV,EAAM,cAC1B4lQ,EAAS5lQ,GACX43D,EAAOwqS,EAAapiW,GAEpBoiW,CAAW,CAACpiW,EAAK,CAAG5mB,CAExB,EAYA,IAAI,CAAC4tX,YAAY,CAAG,WAClBD,EAAU,EACZ,EAGA,IAAI,CAACtlX,IAAI,CAAG,CAAC,YAAa,UAAW,SAASi6G,CAAS,CAAEpuG,CAAO,EA6B9D,OAAO,SAAqB2iW,CAAU,CAAEla,CAAM,CAAEkxB,CAAK,CAAE/P,CAAK,EAkB1D,GALA+P,EAAQA,CAAU,IAAVA,EACJ/P,GAASvvR,EAASuvR,IACpBp/P,CAAAA,EAAao/P,CAAI,EAGfvvR,EAASsoR,GAAa,CAExB,GAAI,CADJt5V,CAAAA,EAAQs5V,EAAWt5V,KAAK,CAACwgW,GAAS,EAEhC,MAAM0P,GAAkB,UACtB,uFACkD5W,GAStD,GAPA72W,EAAcud,CAAK,CAAC,EAAE,CACtBmhG,EAAaA,GAAcnhG,CAAK,CAAC,EAAE,CAM/B,CALJs5V,CAAAA,EAAamS,EAAYr+V,cAAc,CAAC3qB,GAClCgpX,CAAW,CAAChpX,EAAY,CACxBorQ,GAAOuxF,EAAOrkV,MAAM,CAAEtY,EAAa,KAChC2tX,CAAAA,EAAUviH,GAAOl3P,EAASlU,EAAa,IAAQT,KAAAA,CAAQ,GAG9D,MAAMkuX,GAAkB,UACtB,wDAA2DztX,GAG/DgqW,GAAY6M,EAAY72W,EAAa,GACvC,CAEA,GAAI6tX,EAAO,CAWT,IA3CEznX,EAEAmX,EACAvd,EACA0+G,EA+CF,OANAt4G,EAAWpD,OAAOmzD,MAAM,CAAC23T,CAFEljW,EAAQisV,GACjCA,CAAU,CAACA,EAAWj6W,MAAM,CAAG,EAAE,CAAGi6W,CAAS,EAAGt7W,SAAS,EACX,MAE5CmjH,GACFqvQ,EAAcpxB,EAAQj+O,EAAYt4G,EAAUpG,GAAe62W,EAAWjwV,IAAI,EAGrE43D,EAAO,WACZ,IAAIjzD,EAAS+2F,EAAUl6E,MAAM,CAACyuU,EAAYzwW,EAAUu2V,EAAQ38V,GAQ5D,OAPIurB,IAAWnlB,GAAaomR,CAAAA,EAASjhQ,IAAWujB,EAAWvjB,EAAM,IAC/DnlB,EAAWmlB,EACPmzF,GAEFqvQ,EAAcpxB,EAAQj+O,EAAYt4G,EAAUpG,GAAe62W,EAAWjwV,IAAI,GAGvExgB,CACT,EAAG,CACDA,SAAUA,EACVs4G,WAAYA,CACd,EACF,CAQA,OANAt4G,EAAWk8G,EAAUmwP,WAAW,CAACoE,EAAYla,EAAQ38V,GAEjD0+G,GACFqvQ,EAAcpxB,EAAQj+O,EAAYt4G,EAAUpG,GAAe62W,EAAWjwV,IAAI,EAGrExgB,CACT,EAEA,SAAS2nX,EAAcpxB,CAAM,CAAEj+O,CAAU,CAAEt4G,CAAQ,CAAEwgB,CAAI,EACvD,GAAI,CAAE+1U,CAAAA,GAAUnwE,EAASmwE,EAAOrkV,MAAM,GACpC,MAAMyqV,EAAO,eAAe,QAC1B,mFACAn8U,EAAM83F,EAGVi+O,CAAAA,EAAOrkV,MAAM,CAAComG,EAAW,CAAGt4G,CAC9B,CACF,EAAE,CA8BJ,SAAS4nX,KACP,IAAI,CAAC3lX,IAAI,CAAG,CAAC,UAAW,SAASrG,CAAM,EACrC,OAAOugW,EAAOvgW,EAAOjF,QAAQ,CAC/B,EAAE,CASJ,SAASkxX,KACP,IAAI,CAAC5lX,IAAI,CAAG,CAAC,YAAa,aAAc,SAASqiM,CAAS,CAAE54L,CAAU,EACpE,IAAIo8W,EAAMxjL,CAAS,CAAC,EAAE,CAClB6zG,EAAS2vE,GAAOA,EAAI3vE,MAAM,CAQ9B,SAAS4vE,IACP5vE,EAAS2vE,EAAI3vE,MAAM,CAGrB,OAVA7zG,EAAU3yK,EAAE,CAAC,mBAAoBo2V,GAEjCr8W,EAAWoG,GAAG,CAAC,WAAY,WACzBwyL,EAAUniK,GAAG,CAAC,mBAAoB4lV,EACpC,GAMO,WACL,OAAO5vE,CACT,CACF,EAAE,CAgDJ,SAAS6vE,KACP,IAAI,CAAC/lX,IAAI,CAAG,CAAC,OAAQ,SAAS4oC,CAAI,EAChC,OAAO,SAASo9U,CAAS,CAAEC,CAAK,EAC9Br9U,EAAKlX,KAAK,IAAIi/B,UAChB,CACF,EAAE,CAIJ,IAAIu1T,GAAqC,WACvC,IAAI,CAAClmX,IAAI,CAAG,CAAC,YAAa,SAASqiM,CAAS,EAC1C,OAAO,SAAS8kJ,CAAO,EAgBrB,OAPIA,EACE,CAACA,EAAQvsQ,QAAQ,EAAIusQ,aAAmB+S,GAC1C/S,CAAAA,EAAUA,CAAO,CAAC,EAAE,EAGtBA,EAAU9kJ,CAAS,CAAC,EAAE,CAAC34F,IAAI,CAEtBy9O,EAAQnsQ,WAAW,CAAG,CAC/B,CACF,EAAE,EAIAmrS,GAAmB,mBACnBC,GAAgC,CAAC,eAAgBD,GAAmB,gBAAgB,EACpFE,GAAa,gBACbC,GAAY,CACd,IAAK,KACL,IAAK,IACP,EACIC,GAAyB,cACzBC,GAAc9rB,EAAO,SAEzB,SAAS+rB,GAAe/vS,CAAC,SACvB,EAAaA,GACJ+L,EAAO/L,GAAKA,EAAE+8G,WAAW,GAAKi4H,GAAOh1O,GAEvCA,CACT,CAIA,SAASgwS,KAiBP,IAAI,CAAC1mX,IAAI,CAAG,WACV,OAAO,SAA2BD,CAAM,EACtC,GAAI,CAACA,EAAQ,MAAO,GACpB,IAAI2xG,EAAQ,EAAE,CAYd,OAXAmqP,EAAc97V,EAAQ,SAAStM,CAAK,CAAEU,CAAG,EACzB,OAAVV,GAAkBm/V,EAAYn/V,IAAUgzC,EAAWhzC,KACnD8uB,EAAQ9uB,GACVoC,EAAQpC,EAAO,SAASijF,CAAC,EACvBg7B,EAAM14G,IAAI,CAAC+mW,GAAe5rW,GAAQ,IAAM4rW,GAAe0mB,GAAe/vS,IACxE,GAEAg7B,EAAM14G,IAAI,CAAC+mW,GAAe5rW,GAAO,IAAM4rW,GAAe0mB,GAAehzX,KAEzE,GAEOi+G,EAAM91B,IAAI,CAAC,IACpB,CACF,CACF,CAGA,SAAS+qS,KA6CP,IAAI,CAAC3mX,IAAI,CAAG,WACV,OAAO,SAAmCD,CAAM,EAC9C,GAAI,CAACA,EAAQ,MAAO,GACpB,IAAI2xG,EAAQ,EAAE,CAEd,OADAk1Q,SAGSA,EAAUC,CAAW,CAAEC,CAAM,CAAEC,CAAQ,EAC1B,OAAhBF,GAAwBj0B,EAAYi0B,KACpCtkW,EAAQskW,GACVhxX,EAAQgxX,EAAa,SAASpzX,CAAK,CAAEmD,CAAK,EACxCgwX,EAAUnzX,EAAOqzX,EAAS,IAAO3iG,CAAAA,EAAS1wR,GAASmD,EAAQ,IAAM,IACnE,GACSutR,EAAS0iG,IAAgB,CAACpkS,EAAOokS,GAC1ChrB,EAAcgrB,EAAa,SAASpzX,CAAK,CAAEU,CAAG,EAC5CyyX,EAAUnzX,EAAOqzX,EACZC,CAAAA,EAAW,GAAK,KACjB5yX,EACC4yX,CAAAA,EAAW,GAAK,KACvB,GAEAr1Q,EAAM14G,IAAI,CAAC+mW,GAAe+mB,GAAU,IAAM/mB,GAAe0mB,GAAeI,KAE5E,EAnBU9mX,EAAQ,GAAI,IACf2xG,EAAM91B,IAAI,CAAC,IAmBpB,CACF,CACF,CAEA,SAASorS,GAA6B5uX,CAAI,CAAEsO,CAAO,EACjD,GAAIw/E,EAAS9tF,GAAO,CAElB,IAAI6uX,EAAW7uX,EAAKsQ,OAAO,CAAC69W,GAAwB,IAAItlU,IAAI,GAE5D,GAAIgmU,EAAU,CACZ,IAqBEC,EArBE9uP,EAAc1xH,EAAQ,gBACtBygX,EAAqB/uP,GAAgBA,IAAAA,EAAYphI,OAAO,CAACmvX,IAE7D,GAAIgB,GAmBCD,CADHA,EAAYz1Q,EAAIv8F,KAAK,CAACmxW,MACNC,EAAS,CAACY,CAAS,CAAC,EAAE,CAAC,CAAChzX,IAAI,CAnBT+yX,GACnC,GAAI,CACF7uX,EAAO2mW,GAASkoB,EAClB,CAAE,MAAO3qV,EAAG,CACV,GAAI,CAAC6qV,EACH,OAAO/uX,CAET,OAAMouX,GAAY,UAAW,wEACPpuX,EAAMkkC,EAC9B,CAEJ,CACF,CAEA,OAAOlkC,CACT,CAaA,SAASgvX,GAAa1gX,CAAO,EAC3B,IACItP,EADA4sW,EAAS3F,KAGb,SAASgpB,EAAalzX,CAAG,CAAEq6G,CAAG,EACxBr6G,GACF6vW,CAAAA,CAAM,CAAC7vW,EAAI,CAAG6vW,CAAM,CAAC7vW,EAAI,CAAG6vW,CAAM,CAAC7vW,EAAI,CAAG,KAAOq6G,EAAMA,CAAE,CAE7D,CAaA,OAXItoB,EAASx/E,GACX7Q,EAAQ6Q,EAAQga,KAAK,CAAC,MAAO,SAAS4mW,CAAI,EACxClwX,EAAIkwX,EAAKtwX,OAAO,CAAC,KACjBqwX,EAAajxB,EAAUn1S,EAAKqmU,EAAK1hH,MAAM,CAAC,EAAGxuQ,KAAM6pD,EAAKqmU,EAAK1hH,MAAM,CAACxuQ,EAAI,IACxE,GACS+sR,EAASz9Q,IAClB7Q,EAAQ6Q,EAAS,SAAS6gX,CAAS,CAAEC,CAAS,EAC5CH,EAAajxB,EAAUoxB,GAAYvmU,EAAKsmU,GAC1C,GAGKvjB,CACT,CAeA,SAASyjB,GAAc/gX,CAAO,EAC5B,IAAIghX,EAEJ,OAAO,SAASnpW,CAAI,EAGlB,GAFKmpW,GAAYA,CAAAA,EAAcN,GAAa1gX,EAAO,EAE/C6X,EAAM,CACR,IAAI9qB,EAAQi0X,CAAU,CAACtxB,EAAU73U,GAAM,CAIvC,OAHcrnB,KAAAA,IAAVzD,GACFA,CAAAA,EAAQ,IAAG,EAENA,CACT,CAEA,OAAOi0X,CACT,CACF,CAcA,SAASC,GAAcvvX,CAAI,CAAEsO,CAAO,CAAEqmB,CAAM,CAAE66V,CAAG,SAC/C,EAAeA,GACNA,EAAIxvX,EAAMsO,EAASqmB,IAG5Bl3B,EAAQ+xX,EAAK,SAAS95J,CAAE,EACtB11N,EAAO01N,EAAG11N,EAAMsO,EAASqmB,EAC3B,GAEO30B,EACT,CAGA,SAASyvX,GAAU96V,CAAM,EACvB,OAAO,KAAOA,GAAUA,EAAS,GACnC,CAWA,SAAS+6V,KAsDP,IAAIrjX,EAAW,IAAI,CAACA,QAAQ,CAAG,CAE7BsjX,kBAAmB,CAACf,GAA6B,CAGjDgB,iBAAkB,CAAC,SAASz0U,CAAC,EAC3B,OAAO4wO,EAAS5wO,IAr5UU,kBAAvB3wB,EAASrxB,IAAI,CAq5UcgiD,IA34UJ,kBAAvB3wB,EAASrxB,IAAI,CA24U4BgiD,IAh5UlB,sBAAvB3wB,EAASrxB,IAAI,CAg5U8CgiD,GAAKm4Q,GAAOn4Q,GAAKA,CACjF,EAAE,CAGF7sC,QAAS,CACPuhX,OAAQ,CACN,OAAU,mCACZ,EACA9nX,KAAQwyV,GAAYyzB,IACpBllX,IAAQyxV,GAAYyzB,IACpBvkX,MAAQ8wV,GAAYyzB,GACtB,EAEA8B,eAAgB,aAChBC,eAAgB,eAEhBC,gBAAiB,uBAEjBC,mBAAoB,UACtB,EAEIC,EAAgB,EAoBpB,KAAI,CAACA,aAAa,CAAG,SAAS70X,CAAK,SACjC,EAAcA,IACZ60X,EAAgB,CAAC,CAAC70X,EACX,IAAI,EAEN60X,CACT,EAeA,IAAIC,EAAuB,IAAI,CAACx8D,YAAY,CAAG,EAAE,CA0C7Cy8D,EAAyB,IAAI,CAACA,sBAAsB,CAAG,EAAE,CAE7D,IAAI,CAACxoX,IAAI,CAAG,CAAC,WAAY,eAAgB,iBAAkB,gBAAiB,aAAc,KAAM,YAAa,OACzG,SAASizV,CAAQ,CAAEw1B,CAAY,CAAEC,CAAc,CAAE9U,CAAa,CAAEnqW,CAAU,CAAE4B,CAAE,CAAE4uG,CAAS,CAAEnxG,CAAI,EAEjG,IA4iSE6/W,EA5iSEC,EAAehV,EAAc,QAKjCnvW,CAAAA,EAAS2jX,eAAe,CAAGliS,EAASzhF,EAAS2jX,eAAe,EAC1DnuQ,EAAU35G,GAAG,CAACmE,EAAS2jX,eAAe,EAAI3jX,EAAS2jX,eAAe,CAOpE,IAAIS,EAAuB,EAAE,CAE7BhzX,EAAQ0yX,EAAsB,SAASO,CAAkB,EACvDD,EAAqB33T,OAAO,CAACg1B,EAAS4iS,GAChC7uQ,EAAU35G,GAAG,CAACwoX,GAAsB7uQ,EAAUl6E,MAAM,CAAC+oV,GAC7D,GAKA,IAAIC,GAqhSFJ,EAA0B,CAACK,GAAU,CAACh6V,MAAM,CAACi6V,EAAsBhvX,GAAG,CAACivX,KAYpE,SAA4BC,CAAU,EAC3C,IAAIC,EAAYF,GAAWC,GAC3B,OAAOR,EAAwBz2U,IAAI,CAACm3U,GAAkB33X,IAAI,CAAC,KAAM03X,GACnE,GAn+QE,SAAS/pX,EAAMiqX,CAAa,EAE1B,GAAI,CAACnlG,EAASmlG,GACZ,MAAM5uB,EAAO,SAAS,SAAU,+DAAgE4uB,GAGlG,GAAI,CAACpjS,EAASp9E,EAAKgsV,OAAO,CAACw0B,EAAc9kX,GAAG,GAC1C,MAAMk2V,EAAO,SAAS,SAAU,2FAA4F4uB,EAAc9kX,GAAG,EAG/I,IAAIjH,EAAS44E,EAAO,CAClB1vE,OAAQ,MACRuhX,iBAAkBvjX,EAASujX,gBAAgB,CAC3CD,kBAAmBtjX,EAASsjX,iBAAiB,CAC7CK,gBAAiB3jX,EAAS2jX,eAAe,CACzCC,mBAAoB5jX,EAAS4jX,kBAAkB,EAC9CiB,EAEH/rX,CAAAA,EAAOmJ,OAAO,CAAG6iX,SAgEKhsX,CAAM,EAC1B,IAnBiCA,EAC7B20K,EACAs3M,EAmBAC,EACAC,EACAC,EAJAC,EAAanlX,EAASiC,OAAO,CAC7BmjX,EAAa1zS,EAAO,CAAC,EAAG54E,EAAOmJ,OAAO,EAK1CkjX,EAAazzS,EAAO,CAAC,EAAGyzS,EAAW3B,MAAM,CAAE2B,CAAU,CAACxzB,EAAU74V,EAAOkJ,MAAM,EAAE,EAG/EqjX,EACA,IAAKL,KAAiBG,EAAY,CAGhC,IAAKD,KAFLD,EAAyBtzB,EAAUqzB,GAEbI,EACpB,GAAIzzB,EAAUuzB,KAAmBD,EAC/B,SAASI,CAIbD,CAAAA,CAAU,CAACJ,EAAc,CAAGG,CAAU,CAACH,EAAc,CAIvD,OA1CiClsX,EA0CGo1V,GAAYp1V,GAxC5CisX,EAAmB,CAAC,EAExB3zX,EAsCwBg0X,EAtCP,SAASE,CAAQ,CAAE5yU,CAAM,EACpC1Q,EAAWsjV,GAEQ,MADrB73M,CAAAA,EAAgB63M,EAASxsX,EAAM,GAE7BisX,CAAAA,CAAgB,CAACryU,EAAO,CAAG+6H,CAAY,EAGzCs3M,CAAgB,CAACryU,EAAO,CAAG4yU,CAE/B,GAEOP,CA4BT,EAzF8BF,GAC9B/rX,EAAOkJ,MAAM,CAAG40V,EAAU99V,EAAOkJ,MAAM,EACvClJ,EAAO6qX,eAAe,CAAGliS,EAAS3oF,EAAO6qX,eAAe,EACpDnuQ,EAAU35G,GAAG,CAAC/C,EAAO6qX,eAAe,EAAI7qX,EAAO6qX,eAAe,CAElEn1B,EAASgB,4BAA4B,GAErC,IAAI+1B,EAAsB,EAAE,CACxBC,EAAuB,EAAE,CACzBryX,EAAUyT,EAAGrT,OAAO,CAACuF,GAiBzB,OAdA1H,EAAQgzX,EAAsB,SAAS18D,CAAW,EAC5CA,CAAAA,EAAY75R,OAAO,EAAI65R,EAAY+9D,YAAY,GACjDF,EAAoB94T,OAAO,CAACi7P,EAAY75R,OAAO,CAAE65R,EAAY+9D,YAAY,EAEvE/9D,CAAAA,EAAY/rT,QAAQ,EAAI+rT,EAAYQ,aAAa,GACnDs9D,EAAqBjxX,IAAI,CAACmzT,EAAY/rT,QAAQ,CAAE+rT,EAAYQ,aAAa,CAE7E,GAGA/0T,EAAUA,CADVA,EAAUuyX,EAAkBvyX,EAASoyX,EAAmB,EACtCt2X,IAAI,CAqEtB,SAAuB6J,CAAM,EAC3B,IAAImJ,EAAUnJ,EAAOmJ,OAAO,CACxB0jX,EAAUzC,GAAcpqX,EAAOnF,IAAI,CAAEqvX,GAAc/gX,GAAUxP,KAAAA,EAAWqG,EAAOyqX,gBAAgB,EAgBnG,OAbIp1B,EAAYw3B,IACdv0X,EAAQ6Q,EAAS,SAASjT,CAAK,CAAE0jD,CAAM,EACX,iBAAtBi/S,EAAUj/S,IACZ,OAAOzwC,CAAO,CAACywC,EAAO,GAKxBy7S,EAAYr1V,EAAOmH,eAAe,GAAK,CAACkuV,EAAYnuV,EAASC,eAAe,GAC9EnH,CAAAA,EAAOmH,eAAe,CAAGD,EAASC,eAAe,EAI5C2lX,CAgMX,SAAiB9sX,CAAM,CAAE6sX,CAAO,EAC9B,IA0JgB5lX,EAAK8lX,EAxJjB10D,EACA20D,EAHA52W,EAAWtI,EAAGuI,KAAK,GACnBhc,EAAU+b,EAAS/b,OAAO,CAG1BiyX,EAAatsX,EAAOmJ,OAAO,CAC3B8jX,EAAUp0B,UAAAA,EAAU74V,EAAOkJ,MAAM,EACjCjC,EAAMjH,EAAOiH,GAAG,CAoDpB,GAlDIgmX,EAGFhmX,EAAMsE,EAAKmU,qBAAqB,CAACzY,GACvB0hF,EAAS1hF,IAEnBA,CAAAA,EAAMsE,EAAKgsV,OAAO,CAACtwV,EAAG,EA4IRA,EAzIDA,EA0IX8lX,CADiBA,EAzID/sX,EAAO6qX,eAAe,CAAC7qX,EAAOwC,MAAM,GA0InCxL,MAAM,CAAG,GAC5BiQ,CAAAA,GAAO,CAAC,EAAM+Q,QAAQ,CAAC,KAAc,IAAN,GAAM,EAAO+0W,CAAe,EA3I7D9lX,EA6IOA,EA3IHgmX,GAEFhmX,CAAAA,EAAMimX,SA4I0BjmX,CAAG,CAAEkmX,CAAK,EAC5C,IAAIh5Q,EAAQltG,EAAIkc,KAAK,CAAC,KACtB,GAAIgxF,EAAMn9G,MAAM,CAAG,EAEjB,MAAMiyX,GAAY,WAAY,+CAAgDhiX,GAiBhF,OAdA3O,EADa8pW,GAAcjuP,CAAK,CAAC,EAAE,EACnB,SAASj+G,CAAK,CAAEU,CAAG,EACjC,GAAIV,kBAAAA,EAEF,MAAM+yX,GAAY,WAAY,6CAA8ChiX,GAE9E,GAAIrQ,IAAQu2X,EAEV,MAAMlE,GAAY,WAAY,sDAAuDkE,EAAOlmX,EAEhG,GAGAA,GAAO,CAAC,EAAM+Q,QAAQ,CAAC,KAAc,IAAN,GAAM,EAAOm1W,EAAQ,gBAGtD,EAlKqClmX,EAAKjH,EAAO8qX,kBAAkB,GAGjEhpX,EAAMsrX,eAAe,CAAC3xX,IAAI,CAACuE,GAC3B3F,EAAQlE,IAAI,CAACk3X,EAAkBA,GAE1BrtX,CAAAA,EAAOq4T,KAAK,EAAInxT,EAASmxT,KAAK,GAAKr4T,CAAiB,IAAjBA,EAAOq4T,KAAK,EAC/Cr4T,CAAAA,QAAAA,EAAOkJ,MAAM,EAAclJ,UAAAA,EAAOkJ,MAAM,GAC3CmvT,CAAAA,EAAQzxC,EAAS5mR,EAAOq4T,KAAK,EAAIr4T,EAAOq4T,KAAK,CACvCzxC,EAA2B1/Q,EAAUmxT,KAAK,EACtBnxT,EAAUmxT,KAAK,CACjCgzD,CAAW,EAGjBhzD,IAEEhrQ,EADJ2/T,EAAa30D,EAAMt1T,GAAG,CAACkE,IAEjBy4V,EAAcstB,GAEhBA,EAAW72X,IAAI,CAACm3X,EAA0BA,GAGtCtoW,EAAQgoW,GACVO,EAAeP,CAAU,CAAC,EAAE,CAAEA,CAAU,CAAC,EAAE,CAAE53B,GAAY43B,CAAU,CAAC,EAAE,EAAGA,CAAU,CAAC,EAAE,CAAEA,CAAU,CAAC,EAAE,EAErGO,EAAeP,EAAY,IAAK,CAAC,EAAG,KAAM,YAK9C30D,EAAM10T,GAAG,CAACsD,EAAK5M,IAOfg7V,EAAY23B,GAAa,CAC3B,IAAIQ,EAAYhC,EAAmBxrX,EAAOiH,GAAG,EACvCkkX,GAAgB,CAACnrX,EAAO2qX,cAAc,EAAIzjX,EAASyjX,cAAc,CAAC,CAClEhxX,KAAAA,EACF6zX,GACFlB,CAAAA,CAAU,CAAEtsX,EAAO4qX,cAAc,EAAI1jX,EAAS0jX,cAAc,CAAE,CAAG4C,CAAQ,EAG3EtC,EAAalrX,EAAOkJ,MAAM,CAAEjC,EAAK4lX,EAqCnC,SAAcr9V,CAAM,CAAE3sB,CAAQ,CAAE4qX,CAAa,CAAEh+V,CAAU,CAAEi+V,CAAS,EAUlE,SAASC,IACPJ,EAAe1qX,EAAU2sB,EAAQi+V,EAAeh+V,EAAYi+V,EAC9D,CAXIr1D,IACEiyD,GAAU96V,GACZ6oS,EAAM10T,GAAG,CAACsD,EAAK,CAACuoB,EAAQ3sB,EAAUgnX,GAAa4D,GAAgBh+V,EAAYi+V,EAAU,EAGrFr1D,EAAMr7T,MAAM,CAACiK,IAQb8jX,EACF7+W,EAAW+Y,WAAW,CAAC0oW,IAEvBA,IACKzhX,EAAWs7F,OAAO,EAAEt7F,EAAWoiF,MAAM,GAE9C,EAzDkDg+R,EAAYtsX,EAAOg1B,OAAO,CACtEh1B,EAAOmH,eAAe,CAAEnH,EAAO+7V,YAAY,CAC3C6xB,EAAoB5tX,EAAO6tX,aAAa,EACxCD,EAAoB5tX,EAAO8tX,mBAAmB,EACpD,CAEA,OAAOzzX,EAEP,SAASuzX,EAAoBC,CAAa,EACxC,GAAIA,EAAe,CACjB,IAAIE,EAAgB,CAAC,EAgBrB,OAfAz1X,EAAQu1X,EAAe,SAASx2O,CAAY,CAAEzgJ,CAAG,EAC/Cm3X,CAAa,CAACn3X,EAAI,CAAG,SAASZ,CAAK,EAC7B+0X,EACF7+W,EAAW+Y,WAAW,CAAC+oW,GACd9hX,EAAWs7F,OAAO,CAC3BwmR,IAEA9hX,EAAWoiF,MAAM,CAAC0/R,GAGpB,SAASA,IACP32O,EAAarhJ,EACf,CACF,CACF,GACO+3X,CACT,CACF,CAmCA,SAASR,EAAe1qX,CAAQ,CAAE2sB,CAAM,CAAErmB,CAAO,CAAEsmB,CAAU,CAAEi+V,CAAS,EAItE,CAACpD,GAFD96V,EAASA,GAAU,GAAKA,EAAS,GAEZpZ,EAAS3b,OAAO,CAAG2b,EAAS1b,MAAM,EAAE,CACvDG,KAAMgI,EACN2sB,OAAQA,EACRrmB,QAAS+gX,GAAc/gX,GACvBnJ,OAAQA,EACRyvB,WAAYA,EACZi+V,UAAWA,CACb,EACF,CAEA,SAASJ,EAAyB3nW,CAAM,EACtC4nW,EAAe5nW,EAAO9qB,IAAI,CAAE8qB,EAAO6J,MAAM,CAAE4lU,GAAYzvU,EAAOxc,OAAO,IAAKwc,EAAO8J,UAAU,CAAE9J,EAAO+nW,SAAS,CAC/G,CAEA,SAASL,IACP,IAAIjpF,EAAMtiS,EAAMsrX,eAAe,CAAC3zX,OAAO,CAACuG,EAC5B,MAARokS,GAAYtiS,EAAMsrX,eAAe,CAAC1xX,MAAM,CAAC0oS,EAAK,EACpD,CACF,GAxVmBpkS,EAAQ6sX,GAAS12X,IAAI,CAACq0X,EAAmBA,EAC1D,GAtFAnwX,EAAUA,CADVA,EAAUuyX,EAAkBvyX,EAASqyX,EAAoB,EACvCzxX,OAAO,CAkBzB,WACEy6V,EAASsB,4BAA4B,CAACvzU,EACxC,GAfA,SAASmpW,EAAkBvyX,CAAO,CAAEm0T,CAAY,EAC9C,IAAK,IAAI30T,EAAI,EAAGo8K,EAAKu4I,EAAax3T,MAAM,CAAE6C,EAAIo8K,GAAK,CACjD,IAAIg4M,EAASz/D,CAAY,CAAC30T,IAAI,CAC1Bq0X,EAAW1/D,CAAY,CAAC30T,IAAI,CAEhCQ,EAAUA,EAAQlE,IAAI,CAAC83X,EAAQC,EACjC,CAIA,OAFA1/D,EAAax3T,MAAM,CAAG,EAEfqD,CACT,CAwEA,SAASmwX,EAAkB3nX,CAAQ,EAEjC,IAAIsrX,EAAOv1S,EAAO,CAAC,EAAG/1E,GAGtB,OAFAsrX,EAAKtzX,IAAI,CAAGuvX,GAAcvnX,EAAShI,IAAI,CAAEgI,EAASsG,OAAO,CAAEtG,EAAS2sB,MAAM,CAChDxvB,EAAOwqX,iBAAiB,EAC3C,GAAW3nX,EAAS2sB,MAAM,EAC7B2+V,EACArgX,EAAGpT,MAAM,CAACyzX,EAChB,CACF,CAkJA,OAhJArsX,EAAMsrX,eAAe,CAAG,EAAE,CAsF1BgB,SA6D4B/lB,CAAK,EAC/B/vW,EAAQ86D,UAAW,SAASpyC,CAAI,EAC9Blf,CAAK,CAACkf,EAAK,CAAG,SAAS/Z,CAAG,CAAEjH,CAAM,EAChC,OAAO8B,EAAM82E,EAAO,CAAC,EAAG54E,GAAU,CAAC,EAAG,CACpCkJ,OAAQ8X,EACR/Z,IAAKA,CACP,GACF,CACF,EACF,EAtEmB,MAAO,SAAU,OAAQ,SA2C5ConX,SA8BoCrtW,CAAI,EACtC1oB,EAAQ86D,UAAW,SAASpyC,CAAI,EAC9Blf,CAAK,CAACkf,EAAK,CAAG,SAAS/Z,CAAG,CAAEpM,CAAI,CAAEmF,CAAM,EACtC,OAAO8B,EAAM82E,EAAO,CAAC,EAAG54E,GAAU,CAAC,EAAG,CACpCkJ,OAAQ8X,EACR/Z,IAAKA,EACLpM,KAAMA,CACR,GACF,CACF,EACF,EAxC2B,OAAQ,MAAO,SAY1CiH,EAAMoF,QAAQ,CAAGA,EAGVpF,CA2NT,EAAE,CA0BJ,SAASwsX,KACP,IAAI,CAAC7rX,IAAI,CAAG,WACV,OAAO,WACL,OAAO,IAAIrG,EAAO20Q,cAAc,CAEpC,CACF,CAoBA,SAASw9G,KACP,IAAI,CAAC9rX,IAAI,CAAG,CAAC,WAAY,kBAAmB,YAAa,cAAe,SAASizV,CAAQ,CAAE84B,CAAe,CAAE1pL,CAAS,CAAE2pL,CAAW,MAKpFC,EAA0BC,EAJtE,OAI4CD,EAJIh5B,EAASr/U,KAAK,CAIQs4W,EAJW7pL,CAAS,CAAC,EAAE,CAMxF,SAAS57L,CAAM,CAAEjC,CAAG,CAAErE,CAAI,CAAEzH,CAAQ,CAAEgO,CAAO,CAAE6rB,CAAO,CAAE7tB,CAAe,CAAE40V,CAAY,CAAE8xB,CAAa,CAAEC,CAAmB,EAG9H,GAFA7mX,EAAMA,GAAOyuV,EAASzuV,GAAG,GAErB4xV,UAAAA,EAAU3vV,GACZ,IAkIcjC,EAAmBwyH,EAM/BqpO,EAEA3nW,EA1IEyzX,EAAe5rP,EAAU6rP,cAAc,CAAC5nX,GACxC6nX,GAiIU7nX,EAjIWA,EAiIQwyH,EAjIW,SAASjqG,CAAM,CAAE6iG,CAAI,EAE/D,IAAIxvH,EAAW,SAAoBmgI,EAAU+rP,WAAW,CAACH,GACzDI,EAAgB7zX,EAAUq0B,EAAQ3sB,EAAU,GAAIwvH,EAAM,YACtD2Q,EAAUisP,cAAc,CAACL,EAC3B,EA6HF3nX,EAAMA,EAAIkE,OAAO,CAAC,gBAlIcyjX,GAuI5B9rB,EAAS6rB,EAAY1iR,aAAa,CAAC,UAEnC9wG,EAAW,KACf2nW,EAAOhsV,IAAI,CAAG,kBACdgsV,EAAO7gL,GAAG,CAAGh7K,EACb67V,EAAOt8D,KAAK,CAAG,GAEfrrS,EAAW,SAASnF,CAAK,EACvB8sW,EAAOvrW,mBAAmB,CAAC,OAAQ4D,GACnC2nW,EAAOvrW,mBAAmB,CAAC,QAAS4D,GACpCwzX,EAAYxiR,IAAI,CAACryE,WAAW,CAACgpU,GAC7BA,EAAS,KACT,IAAItzU,EAAS,GACT6iG,EAAO,UAEPr8H,IACiB,SAAfA,EAAM8gB,IAAI,EAAgBksH,EAAUksP,SAAS,CAvJrBN,IAwJ1B54X,CAAAA,EAAQ,CAAE8gB,KAAM,OAAQ,GAE1Bu7G,EAAOr8H,EAAM8gB,IAAI,CACjB0Y,EAASx5B,UAAAA,EAAM8gB,IAAI,CAAe,IAAM,KAGtC2iH,GACFA,EAAKjqG,EAAQ6iG,EAEjB,EAEAywO,EAAO1rW,gBAAgB,CAAC,OAAQ+D,GAChC2nW,EAAO1rW,gBAAgB,CAAC,QAAS+D,GACjCwzX,EAAYxiR,IAAI,CAACC,WAAW,CAAC02P,GACtB3nW,OAhKA,CAEL,IAAI8sV,EAAMknC,EAAUjmX,EAAQjC,GACxBmoX,EAAmB,GA6DvB,GA3DAnnC,EAAItzT,IAAI,CAACzrB,EAAQjC,EAAK,IACtB3O,EAAQ6Q,EAAS,SAASjT,CAAK,CAAEU,CAAG,EAC9By2D,EAAUn3D,IACV+xV,EAAIqE,gBAAgB,CAAC11V,EAAKV,EAEhC,GAEA+xV,EAAIpnO,MAAM,CAAG,WACX,IAAIpxF,EAAaw4T,EAAIx4T,UAAU,EAAI,GAC/B5sB,EAAW,aAAeolV,EAAOA,EAAIplV,QAAQ,CAAGolV,EAAIkE,YAAY,CAChE38T,EAASy4T,EAAIz4T,MAAM,CAKR,IAAXA,GACFA,CAAAA,EAAS3sB,EAAW,IAAM8oX,SAAAA,GAAW1kX,GAAKm8V,QAAQ,CAAc,IAAM,GAGxE4rB,EAAgB7zX,EACZq0B,EACA3sB,EACAolV,EAAIonC,qBAAqB,GACzB5/V,EACA,WACN,EAkBAw4T,EAAIqnC,OAAO,CAhBQ,WAGjBN,EAAgB7zX,EAAU,GAAI,KAAM,KAAM,GAAI,QAChD,EAaA8sV,EAAIsnC,SAAS,CAPQ,WAGnBP,EAAgB7zX,EAAU,GAAI,KAAM,KAAM,GAAI,UAChD,EAIA8sV,EAAIunC,OAAO,CAZU,WACnBR,EAAgB7zX,EAAU,GAAI,KAAM,KAAM,GAAIi0X,EAAmB,UAAY,QAC/E,EAYA92X,EAAQu1X,EAAe,SAAS33X,CAAK,CAAEU,CAAG,EACxCqxV,EAAI7wV,gBAAgB,CAACR,EAAKV,EAC5B,GAEAoC,EAAQw1X,EAAqB,SAAS53X,CAAK,CAAEU,CAAG,EAC9CqxV,EAAI7/U,MAAM,CAAChR,gBAAgB,CAACR,EAAKV,EACnC,GAEIiR,GACF8gV,CAAAA,EAAI9gV,eAAe,CAAG,EAAG,EAGvB40V,EACF,GAAI,CACF9T,EAAI8T,YAAY,CAAGA,CACrB,CAAE,MAAOh9T,EAAG,CAQV,GAAIg9T,SAAAA,EACF,MAAMh9T,CAEV,CAGFkpT,EAAI51T,IAAI,CAACgjU,EAAYzyV,GAAQ,KAAOA,EACtC,CAUA,GAAIoyB,EAAU,EACZ,IAAImgV,EAAYuZ,EAAc,WAC5Be,EAAe,UACjB,EAAGz6V,QACM0qU,EAAc1qU,IACvBA,EAAQ7+B,IAAI,CAAC,WACXs5X,EAAepiU,EAAUr4B,EAAQ06V,WAAW,EAAI,UAAY,QAC9D,GAGF,SAASD,EAAen9K,CAAM,EAC5B88K,EAAmB98K,YAAAA,EACfw8K,GACFA,IAEE7mC,GACFA,EAAI/sV,KAAK,EAEb,CAEA,SAAS8zX,EAAgB7zX,CAAQ,CAAEq0B,CAAM,CAAE3sB,CAAQ,CAAE4qX,CAAa,CAAEh+V,CAAU,CAAEi+V,CAAS,EAEnFrgU,EAAU8nT,IACZuZ,EAAcz9W,MAAM,CAACkkW,GAEvB2Z,EAAY7mC,EAAM,KAElB9sV,EAASq0B,EAAQ3sB,EAAU4qX,EAAeh+V,EAAYi+V,EACxD,CACF,CAzIA,EAAE,CAqLJ,IAAIiC,GAAqB9uW,EAAQ8uW,kBAAkB,CAAGxyB,EAAO,gBAwD7D,SAASyyB,KACP,IAAIjV,EAAc,KACdC,EAAY,IAWhB,KAAI,CAACD,WAAW,CAAG,SAASzkX,CAAK,SAC/B,GACEykX,EAAczkX,EACP,IAAI,EAEJykX,CAEX,EAWA,IAAI,CAACC,SAAS,CAAG,SAAS1kX,CAAK,SAC7B,GACE0kX,EAAY1kX,EACL,IAAI,EAEJ0kX,CAEX,EAGA,IAAI,CAACn4W,IAAI,CAAG,CAAC,SAAU,oBAAqB,OAAQ,SAASg6O,CAAM,CAAEk7H,CAAiB,CAAEpsW,CAAI,EAC1F,IAAIskX,EAAoBlV,EAAY3jX,MAAM,CACtC84X,EAAkBlV,EAAU5jX,MAAM,CAClC+4X,EAAqB,OAAWpV,EAAYxvW,OAAO,CAAC,KAAMxW,GAAS,KACnEq7X,EAAmB,OAAWpV,EAAUzvW,OAAO,CAAC,KAAMxW,GAAS,KAEnE,SAASA,EAAOs7X,CAAE,EAChB,MAAO,SAAWA,CACpB,CAEA,SAASC,EAAa79P,CAAI,EACxB,OAAOA,EAAKlnH,OAAO,CAAC4kX,EAAoBpV,GACtCxvW,OAAO,CAAC6kX,EAAkBpV,EAC9B,CAGA,SAASuV,EAAsBzkX,CAAK,CAAEopW,CAAQ,CAAEsb,CAAc,CAAEC,CAAc,EAC5E,IAAInhN,EAAUxjK,EAAMib,MAAM,CAAC,SAAkCjb,CAAK,EAEhE,OADAwjK,IACOmhN,EAAe3kX,EACxB,EAAGopW,EAAUsb,GACb,OAAOlhN,CACT,CAwHA,SAAS4pM,EAAazmP,CAAI,CAAEi+P,CAAkB,CAAEhM,CAAc,CAAEK,CAAY,EAE1E,GAAI,CAACtyP,EAAKr7H,MAAM,EAAI,CAACq7H,EAAKr6G,QAAQ,CAAC2iW,GAAc,CAE/C,GAAI,CAAC2V,EAAoB,CACvB,IAFED,EAYF/+U,EACAN,EAKAu/U,CAdAF,CADAA,CAAAA,EAAiBhxB,EADG6wB,EAAa79P,GACK,EACvBk+P,GAAG,CAAGl+P,EACrBg+P,EAAepL,WAAW,CAAG,EAAE,CAC/BoL,EAAeG,eAAe,CAAGL,CACnC,CACA,OAAOE,CACT,CAEA1L,EAAe,CAAC,CAACA,EAWjB,IARA,IAAItrX,EAAQ,EACR4rX,EAAc,EAAE,CAChBwL,EAAW,EAAE,CACbC,EAAar+P,EAAKr7H,MAAM,CAExBy6B,EAAS,EAAE,CACXk/V,EAAsB,EAAE,CAErBt3X,EAAQq3X,GACb,GAAI,KAAEp/U,CAAAA,EAAa+gF,EAAK54H,OAAO,CAACkhX,EAAathX,EAAK,GAC5C,KAAC23C,CAAAA,EAAWqhF,EAAK54H,OAAO,CAACmhX,EAAWtpU,EAAau+U,EAAiB,EAClEx2X,IAAUi4C,GACZ7f,EAAOh2B,IAAI,CAACy0X,EAAa79P,EAAK39F,SAAS,CAACr7B,EAAOi4C,KAEjDi/U,EAAMl+P,EAAK39F,SAAS,CAAC4c,EAAau+U,EAAmB7+U,GACrDi0U,EAAYxpX,IAAI,CAAC80X,GACjBE,EAASh1X,IAAI,CAACghP,EAAO8zI,EAAKK,IAC1Bv3X,EAAQ23C,EAAW8+U,EACnBa,EAAoBl1X,IAAI,CAACg2B,EAAOz6B,MAAM,EACtCy6B,EAAOh2B,IAAI,CAAC,QACP,CAEDpC,IAAUq3X,GACZj/V,EAAOh2B,IAAI,CAACy0X,EAAa79P,EAAK39F,SAAS,CAACr7B,KAE1C,KACF,CAaF,GAJIirX,GAAkB7yV,EAAOz6B,MAAM,CAAG,GAClC24X,GAAmBkB,aAAa,CAACx+P,GAGjC,CAACi+P,GAAsBrL,EAAYjuX,MAAM,CAAE,CAC7C,IAAIyzQ,EAAU,SAASptQ,CAAM,EAC3B,IAAK,IAAIxD,EAAI,EAAGo8K,EAAKgvM,EAAYjuX,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAAK,CACpD,GAAI8qX,GAAgBtvB,EAAYh4V,CAAM,CAACxD,EAAE,EAAG,MAC5C43B,CAAAA,CAAM,CAACk/V,CAAmB,CAAC92X,EAAE,CAAC,CAAGwD,CAAM,CAACxD,EAAE,CAE5C,OAAO43B,EAAO4sD,IAAI,CAAC,GACrB,EAEIglF,EAAW,SAASntK,CAAK,EAC3B,OAAOouX,EACL/4W,EAAKulX,UAAU,CAACxM,EAAgBpuX,GAChCqV,EAAKgsV,OAAO,CAACrhW,EACjB,EAEA,OAAO0iF,EAAO,SAAyB0zF,CAAO,EAC1C,IAAIzyK,EAAI,EACJo8K,EAAKgvM,EAAYjuX,MAAM,CACvBqG,EAAS,MAAU44K,GAEvB,GAAI,CACF,KAAOp8K,EAAIo8K,EAAIp8K,IACbwD,CAAM,CAACxD,EAAE,CAAG42X,CAAQ,CAAC52X,EAAE,CAACyyK,GAG1B,OAAOm+F,EAAQptQ,EACjB,CAAE,MAAO+hE,EAAK,CACZu4S,EAAkBgY,GAAmBoB,MAAM,CAAC1+P,EAAMjzD,GACpD,CAEF,EAAG,CAEHmxT,IAAKl+P,EACL4yP,YAAaA,EACbuL,gBAAgB9kX,CAAK,CAAEopW,CAAQ,EAC7B,IAAI98F,EACJ,OAAOtsQ,EAAMslX,WAAW,CAACP,EAAuB,SAA8BpzX,CAAM,CAAE4zX,CAAS,EAC7F,IAAIC,EAAYzmH,EAAQptQ,GACxBy3W,EAAS9gX,IAAI,CAAC,IAAI,CAAEk9X,EAAW7zX,IAAW4zX,EAAYj5G,EAAYk5G,EAAWxlX,GAC7EssQ,EAAYk5G,CACd,EACF,CACF,EACF,CAEA,SAASN,EAA0B16X,CAAK,EACtC,GAAI,CAEF,OADAA,EAAQmtK,EAASntK,GACVyuX,GAAgB,CAACt3T,EAAUn3D,GAASA,EAAQunI,GAAUvnI,EAC/D,CAAE,MAAOkpE,EAAK,CACZu4S,EAAkBgY,GAAmBoB,MAAM,CAAC1+P,EAAMjzD,GACpD,CACF,CACF,CAkCA,OApBA05S,EAAa6B,WAAW,CAAG,WACzB,OAAOA,CACT,EAcA7B,EAAa8B,SAAS,CAAG,WACvB,OAAOA,CACT,EAEO9B,CACT,EAAE,CAMJ,SAASqY,KACP,IAAI,CAAC1uX,IAAI,CAAG,CAAC,aAAc,UAAW,KAAM,MAAO,WAC9C,SAASyJ,CAAU,CAAIoC,CAAO,CAAIR,CAAE,CAAIsjX,CAAG,CAAI17B,CAAQ,EAC1D,IAAI27B,EAAY,CAAC,EAiIjB,SAAS3gX,EAAS6/M,CAAE,CAAE79D,CAAK,CAAE5yJ,CAAK,CAAEwxX,CAAW,EAC7C,IAAIC,EAAYn+T,UAAUp8D,MAAM,CAAG,EAC/B+F,EAAOw0X,EAAY/zB,GAAUpqS,UAAW,GAAK,EAAE,CAC/CsvM,EAAcp0P,EAAQo0P,WAAW,CACjCK,EAAgBz0P,EAAQy0P,aAAa,CACrCyuH,EAAY,EACZC,EAAapkU,EAAUikU,IAAgB,CAACA,EACxCl7W,EAAW,CAACq7W,EAAYL,EAAMtjX,CAAC,EAAGuI,KAAK,GACvChc,EAAU+b,EAAS/b,OAAO,CAwB9B,OAtBAyF,EAAQutD,EAAUvtD,GAASA,EAAQ,EAEnCzF,EAAQq3X,YAAY,CAAGhvH,EAAY,WAC7B+uH,EACF/7B,EAASr/U,KAAK,CAAClb,GAEf+Q,EAAW8oG,UAAU,CAAC75G,GAExBib,EAASs6C,MAAM,CAAC8gU,KAEZ1xX,EAAQ,GAAK0xX,GAAa1xX,IAC5BsW,EAAS3b,OAAO,CAAC+2X,GACjBzuH,EAAc1oQ,EAAQq3X,YAAY,EAClC,OAAOL,CAAS,CAACh3X,EAAQq3X,YAAY,CAAC,EAGnCD,GAAWvlX,EAAWoiF,MAAM,EAEnC,EAAGokE,GAEH2+N,CAAS,CAACh3X,EAAQq3X,YAAY,CAAC,CAAGt7W,EAE3B/b,EAEP,SAASc,IACFo2X,EAGHhhK,KAAMxzN,GAFNwzN,EAAGihK,EAIP,CACF,CAyBA,OAZA9gX,EAASO,MAAM,CAAG,SAAS5W,CAAO,QAChC,EAAIA,GAAWA,EAAQq3X,YAAY,IAAIL,IAErCM,GAAsBN,CAAS,CAACh3X,EAAQq3X,YAAY,CAAC,CAACr3X,OAAO,EAC7Dg3X,CAAS,CAACh3X,EAAQq3X,YAAY,CAAC,CAACh3X,MAAM,CAAC,YACvC4T,EAAQy0P,aAAa,CAAC1oQ,EAAQq3X,YAAY,EAC1C,OAAOL,CAAS,CAACh3X,EAAQq3X,YAAY,CAAC,CAC/B,GAGX,EAEOhhX,CACT,EAAE,CA3kBJi/W,GAAmBkB,aAAa,CAAG,SAASx+P,CAAI,EAC9C,MAAMs9P,GAAmB,WACrB,yMAEwDt9P,EAC9D,EAEAs9P,GAAmBoB,MAAM,CAAG,SAAS1+P,CAAI,CAAEjzD,CAAG,EAC5C,OAAOuwT,GAAmB,SAAU,8BAAgCt9P,EAAMjzD,EAAI/5C,QAAQ,GACxF,EA+kBA,IAAIusW,GAAuC,WACzC,IAAI,CAACnvX,IAAI,CAAG,WACV,IAAIugI,EAAYniH,EAAQmiH,SAAS,CAC7B6uP,EAAc,CAAC,EAWnB,MAAO,CAULhD,eAAe5nX,CAAG,EAChB,IAnBE9L,EAmBE22X,EAAa,IAAM,CAAC9uP,EAAU+uP,SAAS,EAAC,EAAG1sW,QAAQ,CAAC,IACpDupW,EAAe,qBAAuBkD,EACtC32X,GAjBNA,CAJIA,EAAW,SAASN,CAAI,EAC1BM,EAASN,IAAI,CAAGA,EAChBM,EAAS62X,MAAM,CAAG,EACpB,GACSrqX,EAAE,CAiBqBmqX,EAhBzB32X,GAkBL,OADA02X,CAAW,CAACjD,EAAa,CAAG5rP,CAAS,CAAC8uP,EAAW,CAAG32X,EAC7CyzX,CACT,EAUAM,UAAAA,GACS2C,CAAW,CAACjD,EAAa,CAACoD,MAAM,CAWzCjD,YAAAA,GACS8C,CAAW,CAACjD,EAAa,CAAC/zX,IAAI,CAUvCo0X,eAAeL,CAAY,EACzB,IAAIzzX,EAAW02X,CAAW,CAACjD,EAAa,QACjC5rP,CAAS,CAAC7nI,EAASwM,EAAE,CAAC,CAAC,OACvBkqX,CAAW,CAACjD,EAAa,CAEpC,CACF,CACF,EAgBIqD,GAAa,iCACbC,GAAgB,CAAC,KAAQ,GAAI,MAAS,IAAK,IAAO,EAAE,EACpDC,GAAkBh1B,EAAO,aAS7B,SAASi1B,GAAW/8W,CAAI,EAItB,IAHA,IAAIg9W,EAAWh9W,EAAK8N,KAAK,CAAC,KACtBtpB,EAAIw4X,EAASr7X,MAAM,CAEhB6C,KAELw4X,CAAQ,CAACx4X,EAAE,CAAG4oW,GAAiB4vB,CAAQ,CAACx4X,EAAE,CAACsR,OAAO,CAAC,OAAQ,MAG7D,OAAOknX,EAASh0S,IAAI,CAAC,IACvB,CAiBA,SAASi0S,GAAiBC,CAAW,CAAEC,CAAW,EAChD,IAAI3G,EAAYF,GAAW4G,EAE3BC,CAAAA,EAAYC,UAAU,CAAG5G,EAAUzoB,QAAQ,CAC3CovB,EAAYE,MAAM,CAAG7G,EAAU8G,QAAQ,CACvCH,EAAYI,MAAM,CAAG1zB,EAAM2sB,EAAUgH,IAAI,GAAKX,EAAa,CAACrG,EAAUzoB,QAAQ,CAAC,EAAI,IACrF,CAEA,IAAI0vB,GAAqB,gBACzB,SAASC,GAAY9rX,CAAG,CAAEurX,CAAW,CAAEQ,CAAS,EAE9C,GAAIF,GAAmBn8X,IAAI,CAACsQ,GAC1B,MAAMkrX,GAAgB,UAAW,qBAAsBlrX,GAGzD,IAAIgsX,EAAYhsX,MAAAA,EAAI8+E,MAAM,CAAC,GACvBktS,GACFhsX,CAAAA,EAAM,IAAMA,CAAE,EAEhB,IAAI0Q,EAAQg0W,GAAW1kX,GACnBoO,EAAO49W,GAAYt7W,MAAAA,EAAM2wQ,QAAQ,CAACviM,MAAM,CAAC,GAAapuE,EAAM2wQ,QAAQ,CAAC5zP,SAAS,CAAC,GAAK/c,EAAM2wQ,QAAQ,CACtGkqG,EAAYU,MAAM,CAAGC,SApCH99W,CAAI,CAAE29W,CAAS,EAIjC,IAHA,IAAIX,EAAWh9W,EAAK8N,KAAK,CAAC,KACtBtpB,EAAIw4X,EAASr7X,MAAM,CAEhB6C,KACLw4X,CAAQ,CAACx4X,EAAE,CAAG2uQ,mBAAmB6pH,CAAQ,CAACx4X,EAAE,EACxCm5X,GAEFX,CAAAA,CAAQ,CAACx4X,EAAE,CAAGw4X,CAAQ,CAACx4X,EAAE,CAACsR,OAAO,CAAC,MAAO,QAI7C,OAAOknX,EAASh0S,IAAI,CAAC,IACvB,EAuBkChpE,EAAM29W,GACtCR,EAAYY,QAAQ,CAAGhxB,GAAczqV,EAAMqsB,MAAM,EACjDwuV,EAAYa,MAAM,CAAG7qH,mBAAmB7wP,EAAMq3V,IAAI,EAG9CwjB,EAAYU,MAAM,EAAIV,MAAAA,EAAYU,MAAM,CAACntS,MAAM,CAAC,IAClDysS,CAAAA,EAAYU,MAAM,CAAG,IAAMV,EAAYU,MAAM,CAEjD,CAEA,SAAS5tL,GAAWpxF,CAAG,CAAElwE,CAAM,EAC7B,OAAOkwE,EAAIp7G,KAAK,CAAC,EAAGkrC,EAAOhtC,MAAM,IAAMgtC,CACzC,CASA,SAASsvV,GAAaC,CAAI,CAAEtsX,CAAG,EAC7B,GAAIq+L,GAAWr+L,EAAKssX,GAClB,OAAOtsX,EAAIohQ,MAAM,CAACkrH,EAAKv8X,MAAM,CAEjC,CAGA,SAASu9W,GAAUttW,CAAG,EACpB,IAAI5N,EAAQ4N,EAAIxN,OAAO,CAAC,KACxB,OAAOJ,KAAAA,EAAe4N,EAAMA,EAAIohQ,MAAM,CAAC,EAAGhvQ,EAC5C,CAEA,SAASm6X,GAAcvsX,CAAG,EACxB,OAAOA,EAAIkE,OAAO,CAAC,WAAY,KACjC,CAsBA,SAASsoX,GAAiBC,CAAO,CAAEC,CAAa,CAAEC,CAAU,EAC1D,IAAI,CAACC,OAAO,CAAG,GACfD,EAAaA,GAAc,GAC3BtB,GAAiBoB,EAAS,IAAI,EAQ9B,IAAI,CAACI,OAAO,CAAG,SAAS7sX,CAAG,EACzB,IAAI8sX,EAAUT,GAAaK,EAAe1sX,GAC1C,GAAI,CAAC0hF,EAASorS,GACZ,MAAM5B,GAAgB,WAAY,gDAAiDlrX,EAC/E0sX,GAGNZ,GAAYgB,EAAS,IAAI,CAAE,IAEtB,IAAI,CAACb,MAAM,EACd,KAAI,CAACA,MAAM,CAAG,KAGhB,IAAI,CAACc,SAAS,EAChB,EAMA,IAAI,CAACA,SAAS,CAAG,WACf,IAAIhwV,EAASs+T,GAAW,IAAI,CAAC8wB,QAAQ,EACjCpkB,EAAO,IAAI,CAACqkB,MAAM,CAAG,IAAM5wB,GAAiB,IAAI,CAAC4wB,MAAM,EAAI,EAE/D,KAAI,CAACxrJ,KAAK,CAAGuqJ,GAAW,IAAI,CAACc,MAAM,EAAKlvV,CAAAA,EAAS,IAAMA,EAAS,IAAMgrU,EACtE,IAAI,CAACilB,QAAQ,CAAGN,EAAgB,IAAI,CAAC9rJ,KAAK,CAACwgC,MAAM,CAAC,GAElD,IAAI,CAAC6rH,sBAAsB,CAAG,EAChC,EAEA,IAAI,CAACC,cAAc,CAAG,SAASltX,CAAG,CAAEmtX,CAAO,MAOrCC,EACAC,EACAC,SARJ,GAAeH,MAAAA,CAAO,CAAC,EAAE,EAGvB,IAAI,CAACplB,IAAI,CAAColB,EAAQt7X,KAAK,CAAC,IACjB,KAOLu0D,EAAUgnU,EAASf,GAAaI,EAASzsX,KAC3CqtX,EAAaD,EAEXE,EADEX,GAAcvmU,EAAUgnU,EAASf,GAAaM,EAAYS,IAC7CV,EAAiBL,CAAAA,GAAa,IAAKe,IAAWA,CAAK,EAEnDX,EAAUY,GAElBjnU,EAAUgnU,EAASf,GAAaK,EAAe1sX,IACxDstX,EAAeZ,EAAgBU,EACtBV,IAAkB1sX,EAAM,KACjCstX,CAAAA,EAAeZ,CAAY,EAEzBY,GACF,IAAI,CAACT,OAAO,CAACS,GAER,CAAC,CAACA,EACX,CACF,CAaA,SAASC,GAAoBd,CAAO,CAAEC,CAAa,CAAEc,CAAU,EAE7DnC,GAAiBoB,EAAS,IAAI,EAQ9B,IAAI,CAACI,OAAO,CAAG,SAAS7sX,CAAG,EACzB,IA6CgCoO,EAAMpO,EAAKssX,EAOrCmB,EAFAC,EAjDFC,EADAC,EAAiBvB,GAAaI,EAASzsX,IAAQqsX,GAAaK,EAAe1sX,EAG3E,CAACouV,EAAYw/B,IAAmBA,MAAAA,EAAe9uS,MAAM,CAAC,GAcpD,IAAI,CAAC8tS,OAAO,CACde,EAAiBC,GAEjBD,EAAiB,GACbv/B,EAAYw/B,KACdnB,EAAUzsX,EACQ,IAAI,CAAEkE,OAAO,KAf/BkqV,EADJu/B,EAAiBtB,GAAamB,EAAYI,KAGxCD,CAAAA,EAAiBC,CAAa,EAkBlC9B,GAAY6B,EAAgB,IAAI,CAAE,IAElC,IAAI,CAAC1B,MAAM,EAeqB79W,EAfK,IAAI,CAAC69W,MAAM,CAoB1CyB,EAAqB,kBAUzB,CALIrvL,GAVgCr+L,EAfY2tX,EAePrB,EAfuBG,IA0B9DzsX,CAAAA,EAAMA,EAAIkE,OAAO,CAACooX,EAAM,KAItBoB,EAAmB3iH,IAAI,CAAC/qQ,IACnBoO,EAIFq/W,CADPA,EAAwBC,EAAmB3iH,IAAI,CAAC38P,EAAI,EACrBq/W,CAAqB,CAAC,EAAE,CAAGr/W,GAjC5D,IAAI,CAAC2+W,SAAS,EAmChB,EAMA,IAAI,CAACA,SAAS,CAAG,WACf,IAAIhwV,EAASs+T,GAAW,IAAI,CAAC8wB,QAAQ,EACjCpkB,EAAO,IAAI,CAACqkB,MAAM,CAAG,IAAM5wB,GAAiB,IAAI,CAAC4wB,MAAM,EAAI,EAE/D,KAAI,CAACxrJ,KAAK,CAAGuqJ,GAAW,IAAI,CAACc,MAAM,EAAKlvV,CAAAA,EAAS,IAAMA,EAAS,IAAMgrU,EACtE,IAAI,CAACilB,QAAQ,CAAGP,EAAW,KAAI,CAAC7rJ,KAAK,CAAG4sJ,EAAa,IAAI,CAAC5sJ,KAAK,CAAG,IAElE,IAAI,CAACqsJ,sBAAsB,CAAG,EAChC,EAEA,IAAI,CAACC,cAAc,CAAG,SAASltX,CAAG,CAAEmtX,CAAO,SACzC,GAAcV,KAAanf,GAAUttW,KACnC,IAAI,CAAC6sX,OAAO,CAAC7sX,GACN,GAGX,CACF,CAaA,SAAS6tX,GAA2BpB,CAAO,CAAEC,CAAa,CAAEc,CAAU,EACpE,IAAI,CAACZ,OAAO,CAAG,GACfW,GAAoBrhU,KAAK,CAAC,IAAI,CAAEC,WAEhC,IAAI,CAAC+gU,cAAc,CAAG,SAASltX,CAAG,CAAEmtX,CAAO,MAQrCG,EACAF,SARJ,GAAeD,MAAAA,CAAO,CAAC,EAAE,EAGvB,IAAI,CAACplB,IAAI,CAAColB,EAAQt7X,KAAK,CAAC,IACjB,KAML46X,IAAYnf,GAAUttW,GACxBstX,EAAettX,EACLotX,CAAAA,EAASf,GAAaK,EAAe1sX,EAAG,EAClDstX,EAAeb,EAAUe,EAAaJ,EAC7BV,IAAkB1sX,EAAM,KACjCstX,CAAAA,EAAeZ,CAAY,EAEzBY,GACF,IAAI,CAACT,OAAO,CAACS,GAER,CAAC,CAACA,EACX,EAEA,IAAI,CAACP,SAAS,CAAG,WACf,IAAIhwV,EAASs+T,GAAW,IAAI,CAAC8wB,QAAQ,EACjCpkB,EAAO,IAAI,CAACqkB,MAAM,CAAG,IAAM5wB,GAAiB,IAAI,CAAC4wB,MAAM,EAAI,EAE/D,KAAI,CAACxrJ,KAAK,CAAGuqJ,GAAW,IAAI,CAACc,MAAM,EAAKlvV,CAAAA,EAAS,IAAMA,EAAS,IAAMgrU,EAEtE,IAAI,CAACilB,QAAQ,CAAGP,EAAUe,EAAa,IAAI,CAAC5sJ,KAAK,CAEjD,IAAI,CAACqsJ,sBAAsB,CAAG,EAChC,CAEF,CAGA,IAAIa,GAAoB,CAMtBd,SAAS,GAMTJ,QAAS,GAMTmB,UAAW,GAqBXxyS,OAAQyyS,GAAe,YAuBvBhuX,IAAIA,CAAG,EACL,GAAIouV,EAAYpuV,GACd,OAAO,IAAI,CAAC4gO,KAAK,CAGnB,IAAIlwN,EAAQs6W,GAAWjgH,IAAI,CAAC/qQ,GAK5B,MAJI0Q,CAAAA,CAAK,CAAC,EAAE,EAAI1Q,KAAAA,CAAQ,GAAI,IAAI,CAACoO,IAAI,CAACmzP,mBAAmB7wP,CAAK,CAAC,EAAE,GAC7DA,CAAAA,CAAK,CAAC,EAAE,EAAIA,CAAK,CAAC,EAAE,EAAI1Q,KAAAA,CAAQ,GAAI,IAAI,CAAC+8B,MAAM,CAACrsB,CAAK,CAAC,EAAE,EAAI,IAChE,IAAI,CAACq3V,IAAI,CAACr3V,CAAK,CAAC,EAAE,EAAI,IAEf,IAAI,EAqBbyrV,SAAU6xB,GAAe,cA4BzB3sB,KAAM2sB,GAAe,UAoBrBpC,KAAMoC,GAAe,UA0BrB5/W,KAAM6/W,GAAqB,SAAU,SAAS7/W,CAAI,EAEhD,MAAOA,MAAAA,CADPA,EAAOA,OAAAA,EAAgBA,EAAKgQ,QAAQ,GAAK,IAC7B0gE,MAAM,CAAC,GAAa1wE,EAAO,IAAMA,CAC/C,GA+CA2uB,OAAOA,CAAM,CAAEmxV,CAAU,EACvB,OAAQ/hU,UAAUp8D,MAAM,EACtB,KAAK,EACH,OAAO,IAAI,CAACo8X,QAAQ,MACjB,EACH,GAAIzqS,EAAS3kD,IAAW09N,EAAS19N,GAC/BA,EAASA,EAAO3e,QAAQ,GACxB,IAAI,CAAC+tW,QAAQ,CAAGhxB,GAAcp+T,QACzB,GAAI4iP,EAAS5iP,GAGlB1rC,EAFA0rC,EAASzV,GAAKyV,EAAQ,CAAC,GAEP,SAAS9tC,CAAK,CAAEU,CAAG,EACpB,MAATV,GAAe,OAAO8tC,CAAM,CAACptC,EAAI,GAGvC,IAAI,CAACw8X,QAAQ,CAAGpvV,OAEhB,MAAMmuV,GAAgB,WAClB,sFAEN,KACF,SACM98B,EAAY8/B,IAAeA,OAAAA,EAC7B,OAAO,IAAI,CAAC/B,QAAQ,CAACpvV,EAAO,CAE5B,IAAI,CAACovV,QAAQ,CAACpvV,EAAO,CAAGmxV,CAE9B,CAGA,OADA,IAAI,CAACnB,SAAS,GACP,IAAI,EAwBbhlB,KAAMkmB,GAAqB,SAAU,SAASlmB,CAAI,EAChD,OAAOA,OAAAA,EAAgBA,EAAK3pV,QAAQ,GAAK,EAC3C,GAUAla,UAEE,OADA,IAAI,CAAC6pX,SAAS,CAAG,GACV,IAAI,CAEf,EA2CA,SAASC,GAAer4S,CAAQ,EAC9B,OAAoB,WAClB,OAAO,IAAI,CAACA,EAAS,CAEzB,CAGA,SAASs4S,GAAqBt4S,CAAQ,CAAEyoQ,CAAU,EAChD,OAAoB,SAASnvV,CAAK,SAChC,EAAgBA,GACP,IAAI,CAAC0mF,EAAS,EAGvB,IAAI,CAACA,EAAS,CAAGyoQ,EAAWnvV,GAC5B,IAAI,CAAC89X,SAAS,GAEP,IAAI,EAEf,CAqCA,SAASoB,KACP,IAAIX,EAAa,IAEbzB,EAAY,CACdl/N,QAAS,GACTuhO,YAAa,GACbC,aAAc,EAChB,CAUA,KAAI,CAACb,UAAU,CAAG,SAASlL,CAAM,SAC/B,EAAcA,IACZkL,EAAalL,EACN,IAAI,EAEJkL,CAEX,EAyBA,IAAI,CAACzB,SAAS,CAAG,SAASlrS,CAAI,SAC5B,EAAcA,IACZkrS,EAAUl/N,OAAO,CAAGhsE,EACb,IAAI,EACF8+L,EAAS9+L,IAEd23Q,EAAU33Q,EAAKgsE,OAAO,GACxBk/N,CAAAA,EAAUl/N,OAAO,CAAGhsE,EAAKgsE,OAAO,EAG9B2rM,EAAU33Q,EAAKutS,WAAW,GAC5BrC,CAAAA,EAAUqC,WAAW,CAAGvtS,EAAKutS,WAAW,EAGtC51B,CAAAA,EAAU33Q,EAAKwtS,YAAY,GAAK3sS,EAASb,EAAKwtS,YAAY,IAC5DtC,CAAAA,EAAUsC,YAAY,CAAGxtS,EAAKwtS,YAAY,EAGrC,IAAI,EAEJtC,CAEX,EAyCA,IAAI,CAACvwX,IAAI,CAAG,CAAC,aAAc,WAAY,WAAY,eAAgB,UAC/D,SAASyJ,CAAU,CAAEwpV,CAAQ,CAAEwc,CAAQ,CAAE+J,CAAY,CAAE3tW,CAAO,EAK5D,IAzvBWrH,EAqvBPuH,EACA+mX,EAMA7B,EAHAxe,EAAWxf,EAASwf,QAAQ,GAE5BsgB,EAAa9/B,EAASzuV,GAAG,GAG7B,GAAI+rX,EAAUl/N,OAAO,CAAE,CACrB,GAAI,CAACohN,GAAY8d,EAAUqC,WAAW,CACpC,MAAMlD,GAAgB,SACpB,gEAEJuB,EAAU+B,EA7vBP/gW,SAAS,CAAC,EAAGztB,EAAIxN,OAAO,CAAC,IAAKwN,EAAIxN,OAAO,CAAC,MAAQ,IA6vBjBy7W,CAAAA,GAAY,KAChDqgB,EAAerjB,EAASxhO,OAAO,CAAG+iP,GAAmBqB,EACvD,MACEpB,EAAUnf,GAAUihB,GACpBD,EAAef,GAEjB,IAAIb,EAxwBH1sX,CADUA,EAywBmBysX,GAxwBzBrrH,MAAM,CAAC,EAAGksG,GAAUttW,GAAKokV,WAAW,CAAC,KAAO,GA2wBjD78U,CADAA,EAAY,IAAI+mX,EAAa7B,EAASC,EAAe,IAAMc,EAAU,EAC3DN,cAAc,CAACqB,EAAYA,GAErChnX,EAAUusP,OAAO,CAAG26F,EAAS/iU,KAAK,GAElC,IAAI+iW,EAAoB,4BAExB,SAASC,EAA0B1uX,CAAG,CAAEkE,CAAO,CAAEwnB,CAAK,EACpD,IAAI0kU,EAAS7oV,EAAUvH,GAAG,GACtB2uX,EAAWpnX,EAAUusP,OAAO,CAChC,GAAI,CACF26F,EAASzuV,GAAG,CAACA,EAAKkE,EAASwnB,GAK3BnkB,EAAUusP,OAAO,CAAG26F,EAAS/iU,KAAK,EACpC,CAAE,MAAOoM,EAAG,CAKV,MAHAvwB,EAAUvH,GAAG,CAACowV,GACd7oV,EAAUusP,OAAO,CAAG66H,EAEd72V,CACR,CACF,CAEAk9U,EAAa9pV,EAAE,CAAC,QAAS,SAASn8B,CAAK,EACrC,IAAIs/X,EAAetC,EAAUsC,YAAY,CAIzC,GAAI,IAAiBt/X,EAAMszB,OAAO,GAAItzB,EAAMorQ,OAAO,GAAIprQ,EAAM62I,QAAQ,EAAI72I,IAAAA,EAAMopC,KAAK,EAAUppC,IAAAA,EAAMmkH,MAAM,EAK1G,IAHA,IAAI80P,EAAMtS,EAAO3mW,EAAMM,MAAM,EAGtBupW,MAAAA,GAAUoP,CAAG,CAAC,EAAE,GAErB,GAAIA,CAAG,CAAC,EAAE,GAAKgN,CAAY,CAAC,EAAE,EAAI,CAAC,CAAChN,EAAMA,EAAIj2V,MAAM,EAAC,CAAE,CAAC,EAAE,CAAE,OAG9D,IAAI2vE,CAAAA,EAAS2sS,IAAiBjgC,EAAY4Z,EAAI55W,IAAI,CAACigY,GAAa,GAEhE,IAAIO,EAAU5mB,EAAI78S,IAAI,CAAC,QAGnBgiU,EAAUnlB,EAAI55W,IAAI,CAAC,SAAW45W,EAAI55W,IAAI,CAAC,cAEvCuxR,EAASivG,IAAYA,+BAAAA,EAAQxwW,QAAQ,IAGvCwwW,CAAAA,EAAUlK,GAAWkK,EAAQhR,OAAO,EAAEnkV,IAAI,GAIxCg1V,EAAkB/+X,IAAI,CAACk/X,IAEvBA,GAAW,CAAC5mB,EAAI55W,IAAI,CAAC,WAAa,CAACW,EAAMk0W,kBAAkB,IACzD17V,EAAU2lX,cAAc,CAAC0B,EAASzB,KAIpCp+X,EAAMwB,cAAc,GAEhBgX,EAAUg0E,MAAM,KAAOkzQ,EAASzuV,GAAG,KACrCiF,EAAWoiF,MAAM,GAEjBhgF,EAAQuS,OAAO,CAAC,2BAA2B,CAAG,MAItD,GAII2yW,GAAchlX,EAAUg0E,MAAM,MAAQgxS,GAAcgC,IACtD9/B,EAASzuV,GAAG,CAACuH,EAAUg0E,MAAM,GAAI,IAGnC,IAAIszS,EAAe,GAkFnB,OA/EApgC,EAASqf,WAAW,CAAC,SAASroI,CAAM,CAAEt2D,CAAQ,EAE5C,GAAI,CAACkvB,GAAWonC,EAAQinJ,GAAgB,CAEtCrlX,EAAQmyB,QAAQ,CAACC,IAAI,CAAGgsM,EACxB,MACF,CAEAxgO,EAAW8oG,UAAU,CAAC,WACpB,IAEI43O,EAFAyK,EAAS7oV,EAAUg0E,MAAM,GACzBozS,EAAWpnX,EAAUusP,OAAO,CAEhCruB,EAAS8mJ,GAAc9mJ,GACvBl+N,EAAUslX,OAAO,CAACpnJ,GAClBl+N,EAAUusP,OAAO,CAAG3kF,EAEpBw2K,EAAmB1gV,EAAWK,UAAU,CAAC,uBAAwBmgO,EAAQ2qH,EACrEjhL,EAAUw/M,GAAUhpC,gBAAgB,CAIpCp+U,EAAUg0E,MAAM,KAAOkqJ,IAEvBkgH,GACFp+U,EAAUslX,OAAO,CAACz8B,GAClB7oV,EAAUusP,OAAO,CAAG66H,EACpBD,EAA0Bt+B,EAAQ,GAAOu+B,KAEzCE,EAAe,GACfC,EAAoB1+B,EAAQu+B,IAEhC,GACK1pX,EAAWs7F,OAAO,EAAEt7F,EAAWqgM,OAAO,EAC7C,GAGArgM,EAAWya,MAAM,CAAC,WAChB,GAAImvW,GAAgBtnX,EAAU0lX,sBAAsB,CAAE,CACpD1lX,EAAU0lX,sBAAsB,CAAG,GAEnC,IAAI78B,EAASm8B,GAAc99B,EAASzuV,GAAG,IACnCylO,EAAS8mJ,GAAchlX,EAAUg0E,MAAM,IACvCozS,EAAWlgC,EAAS/iU,KAAK,GACzBqjW,EAAiBxnX,EAAUwmX,SAAS,CACpCiB,EAAoB5+B,IAAW3qH,GAChCl+N,EAAUqlX,OAAO,EAAI3hB,EAASxhO,OAAO,EAAIklP,IAAapnX,EAAUusP,OAAO,CAEtE+6H,CAAAA,GAAgBG,CAAgB,IAClCH,EAAe,GAEf5pX,EAAW8oG,UAAU,CAAC,WACpB,IAAI03H,EAASl+N,EAAUg0E,MAAM,GACzBoqQ,EAAmB1gV,EAAWK,UAAU,CAAC,uBAAwBmgO,EAAQ2qH,EACzE7oV,EAAUusP,OAAO,CAAE66H,GAAUhpC,gBAAgB,CAI7Cp+U,EAAUg0E,MAAM,KAAOkqJ,IAEvBkgH,GACFp+U,EAAUslX,OAAO,CAACz8B,GAClB7oV,EAAUusP,OAAO,CAAG66H,IAEhBK,GACFN,EAA0BjpJ,EAAQspJ,EACRJ,IAAapnX,EAAUusP,OAAO,CAAG,KAAOvsP,EAAUusP,OAAO,EAErFg7H,EAAoB1+B,EAAQu+B,IAEhC,GAEJ,CAEApnX,EAAUwmX,SAAS,CAAG,EAIxB,GAEOxmX,EAEP,SAASunX,EAAoB1+B,CAAM,CAAEu+B,CAAQ,EAC3C1pX,EAAWK,UAAU,CAAC,yBAA0BiC,EAAUg0E,MAAM,GAAI60Q,EAClE7oV,EAAUusP,OAAO,CAAE66H,EACvB,CACF,EAAE,CA0DR,SAASM,KACP,IAAIr5N,EAAQ,GACR9xH,EAAO,IAAI,CASf,IAAI,CAACorV,YAAY,CAAG,SAASC,CAAI,SAC/B,EAAcA,IACZv5N,EAAQu5N,EACD,IAAI,EAEJv5N,CAEX,EAEA,IAAI,CAACp6J,IAAI,CAAG,CAAC,UAAW,SAAS6L,CAAO,EAQtC,IA+CQiiN,EA/CJ8lK,EAAmB,WAAW1/X,IAAI,CAAC2X,EAAQ0vP,SAAS,EAAI1vP,EAAQ0vP,SAAS,CAACC,SAAS,EAEvF,MAAO,CAQLoH,IAAKixH,EAAW,OAShBnpS,KAAMmpS,EAAW,QASjBjiW,KAAMiiW,EAAW,QASjBniW,MAAOmiW,EAAW,SASlBz5N,KAAK,EACC0zD,EAAK+lK,EAAW,SAEb,WACDz5N,GACF0zD,EAAGp9J,KAAK,CAACpoB,EAAMqoB,UAEnB,EAEJ,EAeA,SAASkjU,EAAWx/W,CAAI,EACtB,IAAIsd,EAAU9lB,EAAQ8lB,OAAO,EAAI,CAAC,EAC9BmiW,EAAQniW,CAAO,CAACtd,EAAK,EAAIsd,EAAQixO,GAAG,EAAI5hP,EAE5C,OAAO,WACL,IAAI1mB,EAAO,EAAE,CAIb,OAHAzE,EAAQ86D,UAAW,SAASqqS,CAAG,MAnBdA,EAoBf1gW,EAAKtB,IAAI,EAnBT8jW,EADe9B,EAoBOA,KAlBpBA,EAAIxyC,KAAK,EAAIorE,EACf54B,EAAM,EAAKn0T,OAAO,EAAI,CAACm0T,EAAIxyC,KAAK,CAACjzS,QAAQ,CAACylV,EAAIn0T,OAAO,EAC/C,UAAYm0T,EAAIn0T,OAAO,CAAG,KAAOm0T,EAAIxyC,KAAK,CAC1CwyC,EAAIxyC,KAAK,CACNwyC,EAAI+4B,SAAS,EACtB/4B,CAAAA,EAAMA,EAAIn0T,OAAO,CAAG,KAAOm0T,EAAI+4B,SAAS,CAAG,IAAM/4B,EAAIssB,IAAI,GAGtDtsB,GAWL,GACO84B,EAAMpjU,KAAK,CAAC/+B,EAASr3B,EAC9B,CACF,CACF,EAAE,CAvjBJzE,EAAQ,CAACw8X,GAA4BN,GAAqBf,GAAiB,CAAE,SAASvkW,CAAQ,EAC5FA,EAASv5B,SAAS,CAAGyH,OAAOmzD,MAAM,CAACwkU,IAoBnC7lW,EAASv5B,SAAS,CAACg9B,KAAK,CAAG,SAASA,CAAK,EACvC,GAAI,CAACygC,UAAUp8D,MAAM,CACnB,OAAO,IAAI,CAAC+jQ,OAAO,CAGrB,GAAI7rO,IAAaukW,IAAoB,CAAC,IAAI,CAACI,OAAO,CAChD,MAAM1B,GAAgB,UAAW,+GASnC,OAHA,IAAI,CAACp3H,OAAO,CAAGs6F,EAAY1iU,GAAS,KAAOA,EAC3C,IAAI,CAACuhW,sBAAsB,CAAG,GAEvB,IAAI,CAEf,GAgiBA,IAAIuC,GAAet5B,EAAO,UAEtBu5B,GAAgB,CAAC,EAAEt8X,WAAW,CAACzE,SAAS,CAAC4hW,OAAO,CAiBpD,SAASo/B,GAAe31W,CAAI,EAe1B,OAAOA,EAAO,EAChB,CAGA,IAAI41W,GAAY91B,KAChBxoW,EAAQ,gDAAgD6qB,KAAK,CAAC,KAAM,SAASuvO,CAAQ,EAAIkkI,EAAS,CAAClkI,EAAS,CAAG,EAAM,GACrH,IAAImkI,GAAS,CAAC,EAAI,KAAM,EAAI,KAAM,EAAI,KAAM,EAAI,IAAM,EAAI,KAAM,IAAK,IAAM,IAAI,GAAG,EAS9EC,GAAQ,SAAeh6W,CAAO,EAChC,IAAI,CAACA,OAAO,CAAGA,CACjB,CAEAg6W,CAAAA,GAAMnhY,SAAS,CAAG,CAChByE,YAAa08X,GAEbC,IAAI1kQ,CAAI,EAKN,IAJA,IAAI,CAACA,IAAI,CAAGA,EACZ,IAAI,CAACh5H,KAAK,CAAG,EACb,IAAI,CAAC29X,MAAM,CAAG,EAAE,CAET,IAAI,CAAC39X,KAAK,CAAG,IAAI,CAACg5H,IAAI,CAACr7H,MAAM,EAAE,CACpC,IAAIi5X,EAAK,IAAI,CAAC59P,IAAI,CAACtsC,MAAM,CAAC,IAAI,CAAC1sF,KAAK,EACpC,GAAI42X,MAAAA,GAAcA,MAAAA,EAChB,IAAI,CAACgH,UAAU,CAAChH,QACX,GAAI,IAAI,CAACvuH,QAAQ,CAACuuH,IAAOA,MAAAA,GAAc,IAAI,CAACvuH,QAAQ,CAAC,IAAI,CAACw1H,IAAI,IACnE,IAAI,CAACC,UAAU,QACV,GAAI,IAAI,CAACC,iBAAiB,CAAC,IAAI,CAACC,aAAa,IAClD,IAAI,CAACC,SAAS,QACT,GAAI,IAAI,CAAC1/C,EAAE,CAACq4C,EAAI,eACrB,IAAI,CAAC+G,MAAM,CAACv7X,IAAI,CAAC,CAACpC,MAAO,IAAI,CAACA,KAAK,CAAEg5H,KAAM49P,CAAE,GAC7C,IAAI,CAAC52X,KAAK,QACL,GAAI,IAAI,CAACk+X,YAAY,CAACtH,GAC3B,IAAI,CAAC52X,KAAK,OACL,CACL,IAAIm+X,EAAMvH,EAAK,IAAI,CAACiH,IAAI,GACpBO,EAAMD,EAAM,IAAI,CAACN,IAAI,CAAC,GACtBQ,EAAMd,EAAS,CAAC3G,EAAG,CACnB0H,EAAMf,EAAS,CAACY,EAAI,CACpBI,EAAMhB,EAAS,CAACa,EAAI,CACxB,GAAIC,GAAOC,GAAOC,EAAK,CACrB,IAAIrrR,EAAQqrR,EAAMH,EAAOE,EAAMH,EAAMvH,EACrC,IAAI,CAAC+G,MAAM,CAACv7X,IAAI,CAAC,CAACpC,MAAO,IAAI,CAACA,KAAK,CAAEg5H,KAAM9lB,EAAOmmJ,SAAU,EAAI,GAChE,IAAI,CAACr5P,KAAK,EAAIkzG,EAAMv1G,MAAM,MAE1B,IAAI,CAAC27M,UAAU,CAAC,6BAA8B,IAAI,CAACt5M,KAAK,CAAE,IAAI,CAACA,KAAK,CAAG,EAE3E,CACF,CACA,OAAO,IAAI,CAAC29X,MAAM,EAGpBp/C,GAAAA,CAAGq4C,EAAIh/G,IACEA,EAAMj5P,QAAQ,CAACi4W,GAGxBiH,KAAKr9X,CAAC,EACJ,IAAIw4Q,EAAMx4Q,GAAK,EACf,OAAO,IAAK,CAACR,KAAK,CAAGg5Q,EAAM,IAAI,CAAChgJ,IAAI,CAACr7H,MAAM,EAAI,IAAI,CAACq7H,IAAI,CAACtsC,MAAM,CAAC,IAAI,CAAC1sF,KAAK,CAAGg5Q,EAC/E,EAEA3Q,SAAAA,GACS,KAAQuuH,GAAMA,GAAM,KAAQ,iBAAOA,EAG5CsH,aAAAA,GAEUtH,MAAAA,GAAcA,OAAAA,GAAeA,MAAAA,GAC7BA,OAAAA,GAAeA,OAAAA,GAAeA,MAAAA,EAGxCmH,kBAAkBnH,CAAE,EAClB,OAAO,IAAI,CAACnzW,OAAO,CAACs6W,iBAAiB,CACjC,IAAI,CAACt6W,OAAO,CAACs6W,iBAAiB,CAACnH,EAAI,IAAI,CAAC4H,WAAW,CAAC5H,IACpD,IAAI,CAAC6H,sBAAsB,CAAC7H,EAClC,EAEA6H,uBAAAA,GACU,KAAO7H,GAAMA,GAAM,KACnB,KAAOA,GAAMA,GAAM,KACnB,MAAQA,GAAMA,MAAAA,EAGxB8H,qBAAqB9H,CAAE,EACrB,OAAO,IAAI,CAACnzW,OAAO,CAACi7W,oBAAoB,CACpC,IAAI,CAACj7W,OAAO,CAACi7W,oBAAoB,CAAC9H,EAAI,IAAI,CAAC4H,WAAW,CAAC5H,IACvD,IAAI,CAAC+H,yBAAyB,CAAC/H,EACrC,EAEA+H,0BAA0B/H,CAAE,CAAEgI,CAAE,EAC9B,OAAO,IAAI,CAACH,sBAAsB,CAAC7H,EAAIgI,IAAO,IAAI,CAACv2H,QAAQ,CAACuuH,EAC9D,EAEA4H,YAAAA,GACE,IAAI5H,EAAGj5X,MAAM,CAAei5X,EAAG70P,UAAU,CAAC,GAEnC,CAAC60P,EAAG70P,UAAU,CAAC,IAAM,EAAC,EAAK60P,EAAG70P,UAAU,CAAC,GAAK,UAGvDi8P,gBACE,IAAIpH,EAAK,IAAI,CAAC59P,IAAI,CAACtsC,MAAM,CAAC,IAAI,CAAC1sF,KAAK,EAChC69X,EAAO,IAAI,CAACA,IAAI,GACpB,GAAI,CAACA,EACH,OAAOjH,EAET,IAAIiI,EAAMjI,EAAG70P,UAAU,CAAC,GACpB+8P,EAAMjB,EAAK97P,UAAU,CAAC,UAC1B,GAAW,OAAU88P,GAAO,OAAUC,GAAO,OAAUA,GAAO,MACrDlI,EAAKiH,EAEPjH,CACT,EAEAmI,cAAcnI,CAAE,EACd,MAAQA,MAAAA,GAAcA,MAAAA,GAAc,IAAI,CAACvuH,QAAQ,CAACuuH,EACpD,EAEAt9K,WAAWx+K,CAAK,CAAEtjB,CAAK,CAAEpb,CAAG,EAK1B,MAJAA,EAAMA,GAAO,IAAI,CAAC4D,KAAK,CAIjBo9X,GAAa,SAAU,qDACzBtiW,EAJUk5B,EAAUx8C,GACd,KAAOA,EAAS,IAAM,IAAI,CAACxX,KAAK,CAAG,KAAO,IAAI,CAACg5H,IAAI,CAAC39F,SAAS,CAAC7jB,EAAOpb,GAAO,IAC5E,IAAMA,EAEG,IAAI,CAAC48H,IAAI,CAC9B,EAEA8kQ,aAGE,IAFA,IAAIz6M,EAAS,GACT7rK,EAAQ,IAAI,CAACxX,KAAK,CACf,IAAI,CAACA,KAAK,CAAG,IAAI,CAACg5H,IAAI,CAACr7H,MAAM,EAAE,CACpC,IAAIi5X,EAAKp3B,EAAU,IAAI,CAACxmO,IAAI,CAACtsC,MAAM,CAAC,IAAI,CAAC1sF,KAAK,GAC9C,GAAI42X,MAAAA,GAAc,IAAI,CAACvuH,QAAQ,CAACuuH,GAC9BvzM,GAAUuzM,MACL,CACL,IAAIoI,EAAS,IAAI,CAACnB,IAAI,GACtB,GAAIjH,MAAAA,GAAc,IAAI,CAACmI,aAAa,CAACC,GACnC37M,GAAUuzM,OACL,GAAI,IAAI,CAACmI,aAAa,CAACnI,IAC1BoI,GAAU,IAAI,CAAC32H,QAAQ,CAAC22H,IACxB37M,MAAAA,EAAO32F,MAAM,CAAC22F,EAAO1lL,MAAM,CAAG,GAChC0lL,GAAUuzM,OACL,GAAI,KAAI,CAACmI,aAAa,CAACnI,IACzB,GAAY,IAAI,CAACvuH,QAAQ,CAAC22H,IAC3B37M,MAAAA,EAAO32F,MAAM,CAAC22F,EAAO1lL,MAAM,CAAG,GAGhC,WAFA,IAAI,CAAC27M,UAAU,CAAC,mBAIpB,CACA,IAAI,CAACt5M,KAAK,EACZ,CACA,IAAI,CAAC29X,MAAM,CAACv7X,IAAI,CAAC,CACfpC,MAAOwX,EACPwhH,KAAMqqD,EACN0yK,SAAU,GACVl5V,MAAOioD,OAAOu+H,EAChB,EACF,EAEA46M,YACE,IAAIzmX,EAAQ,IAAI,CAACxX,KAAK,CAEtB,IADA,IAAI,CAACA,KAAK,EAAI,IAAI,CAACg+X,aAAa,GAAGrgY,MAAM,CAClC,IAAI,CAACqC,KAAK,CAAG,IAAI,CAACg5H,IAAI,CAACr7H,MAAM,EAAE,CACpC,IAAIi5X,EAAK,IAAI,CAACoH,aAAa,GAC3B,GAAI,CAAC,IAAI,CAACU,oBAAoB,CAAC9H,GAC7B,KAEF,KAAI,CAAC52X,KAAK,EAAI42X,EAAGj5X,MAAM,CAEzB,IAAI,CAACggY,MAAM,CAACv7X,IAAI,CAAC,CACfpC,MAAOwX,EACPwhH,KAAM,IAAI,CAACA,IAAI,CAACv5H,KAAK,CAAC+X,EAAO,IAAI,CAACxX,KAAK,EACvCy/G,WAAY,EACd,EACF,EAEAm+Q,WAAWqB,CAAK,EACd,IAAIznX,EAAQ,IAAI,CAACxX,KAAK,CACtB,IAAI,CAACA,KAAK,GAIV,IAHA,IAAIonD,EAAS,GACT83U,EAAYD,EACZ3jY,EAAS,GACN,IAAI,CAAC0E,KAAK,CAAG,IAAI,CAACg5H,IAAI,CAACr7H,MAAM,EAAE,CACpC,IAAIi5X,EAAK,IAAI,CAAC59P,IAAI,CAACtsC,MAAM,CAAC,IAAI,CAAC1sF,KAAK,EAEpC,GADAk/X,GAAatI,EACTt7X,EAAQ,CACV,GAAIs7X,MAAAA,EAAY,CACd,IAAIuI,EAAM,IAAI,CAACnmQ,IAAI,CAAC39F,SAAS,CAAC,IAAI,CAACr7B,KAAK,CAAG,EAAG,IAAI,CAACA,KAAK,CAAG,GACtDm/X,EAAI7gX,KAAK,CAAC,gBACb,IAAI,CAACg7L,UAAU,CAAC,8BAAgC6lL,EAAM,KAExD,IAAI,CAACn/X,KAAK,EAAI,EACdonD,GAAU2hC,OAAOmmL,YAAY,CAACj9O,SAASktW,EAAK,IAC9C,MAEE/3U,GAAmBg4U,EADH,CAACxI,EAAG,EACMA,EAE5Bt7X,EAAS,EACX,MAAO,GAAIs7X,OAAAA,EACTt7X,EAAS,QACJ,GAAIs7X,IAAOqI,EAAO,CACvB,IAAI,CAACj/X,KAAK,GACV,IAAI,CAAC29X,MAAM,CAACv7X,IAAI,CAAC,CACfpC,MAAOwX,EACPwhH,KAAMkmQ,EACNnpC,SAAU,GACVl5V,MAAOuqD,CACT,GACA,MACF,MACEA,GAAUwvU,CAEZ,KAAI,CAAC52X,KAAK,EACZ,CACA,IAAI,CAACs5M,UAAU,CAAC,qBAAsB9hM,EACxC,CACF,EAEA,IAAI6nX,GAAM,SAAaC,CAAK,CAAE77W,CAAO,EACnC,IAAI,CAAC67W,KAAK,CAAGA,EACb,IAAI,CAAC77W,OAAO,CAAGA,CACjB,EAgVA,SAAS87W,GAAUz/S,CAAC,CAAEnjC,CAAC,EACrB,OAAO,KAAa,IAANmjC,EAAoBA,EAAInjC,CACxC,CAEA,SAAS6iV,GAAO/+X,CAAC,CAAEm/E,CAAC,SAClB,KAAiB,IAANn/E,EAA0Bm/E,EACjC,KAAa,IAANA,EAA0Bn/E,EAC9BA,EAAIm/E,CACb,CAoCA,SAAS6/S,GAAgCC,CAAG,CAAE5sX,CAAO,CAAE6sX,CAAY,EAKjE,IAJIC,EACAC,EACAC,EAEAC,EAAYL,EAAIM,MAAM,CAAGA,SA9Bf5gR,CAAI,CAAEugR,CAAY,EAChC,OAAQvgR,EAAK3hG,IAAI,EAEf,KAAK4hX,GAAIY,gBAAgB,CACvB,GAAI7gR,EAAK8gR,QAAQ,CACf,MAAO,GAET,KAGF,MAAKb,GAAIc,eAAe,CACtB,OAfgB,CAkBlB,MAAKd,GAAIe,gBAAgB,CACvB,MAAOhhR,MAAAA,EAAKi6I,QAAQ,EAnBJ,CAsBlB,MAAKgmI,GAAIgB,cAAc,CACrB,MAAO,EACX,CAEA,OAAO,SAAeV,EAzBF,EAyBoCA,CAC1D,EAOsCD,EAAKC,GAEzC,OAAQD,EAAIjiX,IAAI,EAChB,KAAK4hX,GAAIiB,OAAO,CACdV,EAAe,GACf3gY,EAAQygY,EAAI5sR,IAAI,CAAE,SAASwwI,CAAI,EAC7Bm8I,GAAgCn8I,EAAKs0H,UAAU,CAAE9kW,EAASitX,GAC1DH,EAAeA,GAAgBt8I,EAAKs0H,UAAU,CAAC7hB,QAAQ,GAEzD2pC,EAAI3pC,QAAQ,CAAG6pC,EACf,KACF,MAAKP,GAAIkB,OAAO,CACdb,EAAI3pC,QAAQ,CAAG,GACf2pC,EAAIc,OAAO,CAAG,EAAE,CAChB,KACF,MAAKnB,GAAIc,eAAe,CACtBV,GAAgCC,EAAIv1Q,QAAQ,CAAEr3G,EAASitX,GACvDL,EAAI3pC,QAAQ,CAAG2pC,EAAIv1Q,QAAQ,CAAC4rO,QAAQ,CACpC2pC,EAAIc,OAAO,CAAGd,EAAIv1Q,QAAQ,CAACq2Q,OAAO,CAClC,KACF,MAAKnB,GAAIe,gBAAgB,CACvBX,GAAgCC,EAAI9tR,IAAI,CAAE9+F,EAASitX,GACnDN,GAAgCC,EAAI38Q,KAAK,CAAEjwG,EAASitX,GACpDL,EAAI3pC,QAAQ,CAAG2pC,EAAI9tR,IAAI,CAACmkP,QAAQ,EAAI2pC,EAAI38Q,KAAK,CAACgzO,QAAQ,CACtD2pC,EAAIc,OAAO,CAAGd,EAAI9tR,IAAI,CAAC4uR,OAAO,CAACpoW,MAAM,CAACsnW,EAAI38Q,KAAK,CAACy9Q,OAAO,EACvD,KACF,MAAKnB,GAAIoB,iBAAiB,CACxBhB,GAAgCC,EAAI9tR,IAAI,CAAE9+F,EAASitX,GACnDN,GAAgCC,EAAI38Q,KAAK,CAAEjwG,EAASitX,GACpDL,EAAI3pC,QAAQ,CAAG2pC,EAAI9tR,IAAI,CAACmkP,QAAQ,EAAI2pC,EAAI38Q,KAAK,CAACgzO,QAAQ,CACtD2pC,EAAIc,OAAO,CAAGd,EAAI3pC,QAAQ,CAAG,EAAE,CAAG,CAAC2pC,EAAI,CACvC,KACF,MAAKL,GAAIqB,qBAAqB,CAC5BjB,GAAgCC,EAAIpiY,IAAI,CAAEwV,EAASitX,GACnDN,GAAgCC,EAAIiB,SAAS,CAAE7tX,EAASitX,GACxDN,GAAgCC,EAAIkB,UAAU,CAAE9tX,EAASitX,GACzDL,EAAI3pC,QAAQ,CAAG2pC,EAAIpiY,IAAI,CAACy4V,QAAQ,EAAI2pC,EAAIiB,SAAS,CAAC5qC,QAAQ,EAAI2pC,EAAIkB,UAAU,CAAC7qC,QAAQ,CACrF2pC,EAAIc,OAAO,CAAGd,EAAI3pC,QAAQ,CAAG,EAAE,CAAG,CAAC2pC,EAAI,CACvC,KACF,MAAKL,GAAIwB,UAAU,CACjBnB,EAAI3pC,QAAQ,CAAG,GACf2pC,EAAIc,OAAO,CAAG,CAACd,EAAI,CACnB,KACF,MAAKL,GAAIY,gBAAgB,CACvBR,GAAgCC,EAAIp0O,MAAM,CAAEx4I,EAASitX,GACjDL,EAAIQ,QAAQ,EACdT,GAAgCC,EAAIn8S,QAAQ,CAAEzwE,EAASitX,GAEzDL,EAAI3pC,QAAQ,CAAG2pC,EAAIp0O,MAAM,CAACyqM,QAAQ,EAAK,EAAC2pC,EAAIQ,QAAQ,EAAIR,EAAIn8S,QAAQ,CAACwyQ,QAAQ,EAC7E2pC,EAAIc,OAAO,CAAGd,EAAI3pC,QAAQ,CAAG,EAAE,CAAG,CAAC2pC,EAAI,CACvC,KACF,MAAKL,GAAIgB,cAAc,CAErBT,EADAE,EAAoBJ,EAAAA,EAAI9/X,MAAM,EAzFzB,CAACs3N,EAyFgDwoK,EAAIoB,MAAM,CAACn5W,IAAI,EAzF5DomW,SAAS,CA2FlB8R,EAAc,EAAE,CAChB5gY,EAAQygY,EAAI3lU,SAAS,CAAE,SAASupL,CAAI,EAClCm8I,GAAgCn8I,EAAMxwO,EAASitX,GAC/CH,EAAeA,GAAgBt8I,EAAKyyG,QAAQ,CAC5C8pC,EAAYz9X,IAAI,IAAIkhP,EAAKk9I,OAAO,CAClC,GACAd,EAAI3pC,QAAQ,CAAG6pC,EACfF,EAAIc,OAAO,CAAGV,EAAoBD,EAAc,CAACH,EAAI,CACrD,KACF,MAAKL,GAAI0B,oBAAoB,CAC3BtB,GAAgCC,EAAI9tR,IAAI,CAAE9+F,EAASitX,GACnDN,GAAgCC,EAAI38Q,KAAK,CAAEjwG,EAASitX,GACpDL,EAAI3pC,QAAQ,CAAG2pC,EAAI9tR,IAAI,CAACmkP,QAAQ,EAAI2pC,EAAI38Q,KAAK,CAACgzO,QAAQ,CACtD2pC,EAAIc,OAAO,CAAG,CAACd,EAAI,CACnB,KACF,MAAKL,GAAI2B,eAAe,CACtBpB,EAAe,GACfC,EAAc,EAAE,CAChB5gY,EAAQygY,EAAIjiY,QAAQ,CAAE,SAAS6lP,CAAI,EACjCm8I,GAAgCn8I,EAAMxwO,EAASitX,GAC/CH,EAAeA,GAAgBt8I,EAAKyyG,QAAQ,CAC5C8pC,EAAYz9X,IAAI,IAAIkhP,EAAKk9I,OAAO,CAClC,GACAd,EAAI3pC,QAAQ,CAAG6pC,EACfF,EAAIc,OAAO,CAAGX,EACd,KACF,MAAKR,GAAI4B,gBAAgB,CACvBrB,EAAe,GACfC,EAAc,EAAE,CAChB5gY,EAAQygY,EAAI/jH,UAAU,CAAE,SAASp4L,CAAQ,EACvCk8S,GAAgCl8S,EAAS1mF,KAAK,CAAEiW,EAASitX,GACzDH,EAAeA,GAAgBr8S,EAAS1mF,KAAK,CAACk5V,QAAQ,CACtD8pC,EAAYz9X,IAAI,IAAImhF,EAAS1mF,KAAK,CAAC2jY,OAAO,EACtCj9S,EAAS28S,QAAQ,GAEnBT,GAAgCl8S,EAAShmF,GAAG,CAAEuV,EAA0B,IACxE8sX,EAAeA,GAAgBr8S,EAAShmF,GAAG,CAACw4V,QAAQ,CACpD8pC,EAAYz9X,IAAI,IAAImhF,EAAShmF,GAAG,CAACijY,OAAO,EAE5C,GACAd,EAAI3pC,QAAQ,CAAG6pC,EACfF,EAAIc,OAAO,CAAGX,EACd,KACF,MAAKR,GAAI6B,cAAc,CAIvB,KAAK7B,GAAI8B,gBAAgB,CAHvBzB,EAAI3pC,QAAQ,CAAG,GACf2pC,EAAIc,OAAO,CAAG,EAAE,CAOpB,CAEA,SAASY,GAAUtuR,CAAI,EACrB,GAAIA,IAAAA,EAAKn1G,MAAM,EACf,IAAI0jY,EAAiBvuR,CAAI,CAAC,EAAE,CAAC8kQ,UAAU,CACnC0pB,EAAYD,EAAeb,OAAO,QACtC,IAAIc,EAAU3jY,MAAM,CAAe2jY,EAC5BA,CAAS,CAAC,EAAE,GAAKD,EAAiBC,EAAYhhY,KAAAA,EACvD,CAEA,SAASihY,GAAa7B,CAAG,EACvB,OAAOA,EAAIjiX,IAAI,GAAK4hX,GAAIwB,UAAU,EAAInB,EAAIjiX,IAAI,GAAK4hX,GAAIY,gBAAgB,CAGzE,SAASuB,GAAc9B,CAAG,EACxB,GAAIA,IAAAA,EAAI5sR,IAAI,CAACn1G,MAAM,EAAU4jY,GAAa7B,EAAI5sR,IAAI,CAAC,EAAE,CAAC8kQ,UAAU,EAC9D,MAAO,CAACn6V,KAAM4hX,GAAI0B,oBAAoB,CAAEnvR,KAAM8tR,EAAI5sR,IAAI,CAAC,EAAE,CAAC8kQ,UAAU,CAAE70P,MAAO,CAACtlG,KAAM4hX,GAAIoC,gBAAgB,EAAGpoI,SAAU,GAAG,CAE5H,CAcA,SAASqoI,GAAY5uX,CAAO,EAC1B,IAAI,CAACA,OAAO,CAAGA,CACjB,CAqdA,SAAS6uX,GAAe7uX,CAAO,EAC7B,IAAI,CAACA,OAAO,CAAGA,CACjB,CAuXA,SAAS8uX,GAAOtC,CAAK,CAAExsX,CAAO,CAAE2Q,CAAO,EACrC,IAAI,CAACi8W,GAAG,CAAG,IAAIL,GAAIC,EAAO77W,GAC1B,IAAI,CAACo+W,WAAW,CAAGp+W,EAAQikV,GAAG,CAAG,IAAIi6B,GAAe7uX,GACnB,IAAI4uX,GAAY5uX,EACnD,CA6BA,SAASgvX,GAAWjlY,CAAK,EACvB,OAAOgzC,EAAWhzC,EAAMqhW,OAAO,EAAIrhW,EAAMqhW,OAAO,GAAKm/B,GAAc1iY,IAAI,CAACkC,EAC1E,CAsDA,SAASklY,KACP,IAOIC,EACAC,EARAjjE,EAAQyoC,KACRy6B,EAAW,CACb,KAAQ,GACR,MAAS,GACT,KAAQ,KACR,UAAa5hY,KAAAA,CACf,CAeA,KAAI,CAAC6hY,UAAU,CAAG,SAASC,CAAW,CAAEC,CAAY,EAClDH,CAAQ,CAACE,EAAY,CAAGC,CAC1B,EA0BA,IAAI,CAACC,gBAAgB,CAAG,SAASC,CAAe,CAAEC,CAAkB,EAGlE,OAFAR,EAAaO,EACbN,EAAgBO,EACT,IAAI,EAGb,IAAI,CAACp5X,IAAI,CAAG,CAAC,UAAW,SAAS0J,CAAO,EAEtC,IAAI2vX,EAAgB,CACd/6B,IAFaA,KAAMG,YAAY,CAG/Bq6B,SAAUhtW,GAAKgtW,GACfnE,kBAAmBluV,EAAWmyV,IAAeA,EAC7CtD,qBAAsB7uV,EAAWoyV,IAAkBA,CACrD,EAEJ,OADA7+I,EAAOs/I,QAAQ,CAsCf,SAAkBxL,CAAG,EAGnB,OAAO1jN,IADUouN,GADL,IAAInE,GAAMgF,GACS3vX,EAAS2vX,GAC1BE,MAAM,CAACzL,GAAKwI,GAAG,EAxCxBt8I,EAEP,SAASA,EAAO8zI,CAAG,CAAE0L,CAAa,EAIhC,OAAQ,OAAO1L,GACb,IAAK,SAMH,GAAI,CAFJ2L,CAAAA,EAAmB7jE,CAAK,CAFxB8jE,EADA5L,EAAMA,EAAI7sU,IAAI,GAGoB,EAEX,CACrB,IAXFw4U,EACAC,CAaMD,CADJA,CAAAA,EAAmBrvN,IADFouN,GADL,IAAInE,GAAMgF,GACS3vX,EAAS2vX,GACdrzU,KAAK,CAAC8nU,EAAG,EACdnhC,QAAQ,CAC3B8sC,EAAiB1L,eAAe,CAAGL,EAC1B+L,EAAiBE,OAAO,CACjCF,EAAiB1L,eAAe,CAAG0L,EAAiBjV,OAAO,CACvDoV,EAA8BC,EACzBJ,EAAiBK,MAAM,EAChCL,CAAAA,EAAiB1L,eAAe,CAAGgM,CAAkB,EAEvDnkE,CAAK,CAAC8jE,EAAS,CAAGD,CACpB,CACA,OAAOO,EAAeP,EAAkBD,EAE1C,KAAK,WACH,OAAOQ,EAAelM,EAAK0L,EAE7B,SACE,OAAOQ,EAAeh5W,EAAMw4W,EAChC,CACF,CAQA,SAASS,EAA0Bt2W,CAAQ,CAAEu2W,CAAe,CAAEC,CAAqB,SAEjF,MAAIx2W,GAAoBu2W,MAAAA,EACfv2W,IAAau2W,EAGlB,kBAAOv2W,GAOL,gBAFJA,CAAAA,EAAW+0W,GAAW/0W,EAAQ,KAEOw2W,CAPf,GAiBjBx2W,CAAAA,IAAau2W,GAAoBv2W,GAAaA,GAAYu2W,GAAoBA,CAAc,CACrG,CAEA,SAASH,EAAoB9wX,CAAK,CAAEopW,CAAQ,CAAEsb,CAAc,CAAE8L,CAAgB,CAAEW,CAAqB,EACnG,IACIC,EADAC,EAAmBb,EAAiBK,MAAM,CAG9C,GAAIQ,IAAAA,EAAiB/lY,MAAM,CAAQ,CACjC,IAAIgmY,EAAkBN,EAEtB,OADAK,EAAmBA,CAAgB,CAAC,EAAE,CAC/BrxX,EAAMib,MAAM,CAAC,SAA8Bjb,CAAK,EACrD,IAAIuxX,EAAgBF,EAAiBrxX,GAKrC,OAJKgxX,EAA0BO,EAAeD,EAAiBD,EAAiB1D,MAAM,IACpFyD,EAAaZ,EAAiBxwX,EAAO/R,KAAAA,EAAWA,KAAAA,EAAW,CAACsjY,EAAc,EAC1ED,EAAkBC,GAAiB9B,GAAW8B,IAEzCH,CACT,EAAGhoB,EAAUsb,EAAgByM,EAC/B,CAIA,IAAK,IAFDK,EAAwB,EAAE,CAC1BC,EAAiB,EAAE,CACdtjY,EAAI,EAAGo8K,EAAK8mN,EAAiB/lY,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IACpDqjY,CAAqB,CAACrjY,EAAE,CAAG6iY,EAC3BS,CAAc,CAACtjY,EAAE,CAAG,KAGtB,OAAO6R,EAAMib,MAAM,CAAC,SAA+Bjb,CAAK,EAGtD,IAAK,IAFD8kW,EAAU,GAEL32W,EAAI,EAAGo8K,EAAK8mN,EAAiB/lY,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAAK,CACzD,IAAIojY,EAAgBF,CAAgB,CAACljY,EAAE,CAAC6R,GACpC8kW,CAAAA,GAAYA,CAAAA,EAAU,CAACksB,EAA0BO,EAAeC,CAAqB,CAACrjY,EAAE,CAAEkjY,CAAgB,CAACljY,EAAE,CAACw/X,MAAM,EAAC,IACvH8D,CAAc,CAACtjY,EAAE,CAAGojY,EACpBC,CAAqB,CAACrjY,EAAE,CAAGojY,GAAiB9B,GAAW8B,GAE3D,CAMA,OAJIzsB,GACFssB,CAAAA,EAAaZ,EAAiBxwX,EAAO/R,KAAAA,EAAWA,KAAAA,EAAWwjY,EAAc,EAGpEL,CACT,EAAGhoB,EAAUsb,EAAgByM,EAC/B,CAEA,SAASP,EAAqB5wX,CAAK,CAAEopW,CAAQ,CAAEsb,CAAc,CAAE8L,CAAgB,CAAEW,CAAqB,MAChG3tN,EACA8oG,EAMJ,OAJE9oG,EADEgtN,EAAiBK,MAAM,CACfC,EAAoB9wX,EAAO0xX,EAAiBhN,EAAgB8L,EAAkBW,GAE9EnxX,EAAMib,MAAM,CAIxB,SAAsBjb,CAAK,EACzB,OAAOwwX,EAAiBxwX,EAC1B,EANuC0xX,EAAiBhN,GAOxD,SAASgN,EAAgBlnY,CAAK,CAAEmnY,CAAG,CAAE3xX,CAAK,EACxCssQ,EAAY9hR,EACRgzC,EAAW4rU,IACbA,EAAS5+W,EAAOmnY,EAAK3xX,GAEnB2hD,EAAUn3D,IACZwV,EAAM2kW,YAAY,CAAC,WACbhjT,EAAU2qN,IACZ9oG,GAEJ,EAEJ,CACF,CAEA,SAASmtN,EAA4B3wX,CAAK,CAAEopW,CAAQ,CAAEsb,CAAc,CAAE8L,CAAgB,MAChFhtN,EACA8oG,EAeJ,OAdA9oG,EAAUxjK,EAAMib,MAAM,CAAC,SAAsBjb,CAAK,EAChD,OAAOwwX,EAAiBxwX,EAC1B,EAAG,SAAyBxV,CAAK,CAAEmnY,CAAG,CAAE3xX,CAAK,EAC3CssQ,EAAY9hR,EACRgzC,EAAW4rU,IACbA,EAAS5+W,EAAOmnY,EAAK3xX,GAEnB4xX,EAAapnY,IACfwV,EAAM2kW,YAAY,CAAC,WACbitB,EAAatlH,IAAY9oG,GAC/B,EAEJ,EAAGkhN,GAIH,SAASkN,EAAapnY,CAAK,EACzB,IAAIqnY,EAAa,GAIjB,OAHAjlY,EAAQpC,EAAO,SAAS+6G,CAAG,EACpB5jD,EAAU4jD,IAAMssR,CAAAA,EAAa,EAAI,CACxC,GACOA,CACT,CACF,CAEA,SAASpN,EAAsBzkX,CAAK,CAAEopW,CAAQ,CAAEsb,CAAc,CAAE8L,CAAgB,EAC9E,IAAIhtN,EAAUxjK,EAAMib,MAAM,CAAC,SAAuBjb,CAAK,EAErD,OADAwjK,IACOgtN,EAAiBxwX,EAC1B,EAAGopW,EAAUsb,GACb,OAAOlhN,CACT,CAEA,SAASutN,EAAeP,CAAgB,CAAED,CAAa,EACrD,GAAI,CAACA,EAAe,OAAOC,EAC3B,IAAIsB,EAAgBtB,EAAiB1L,eAAe,CAChDiN,EAAY,GAMZltK,EAAKmtK,IAHarB,GAClBmB,IAAkBlB,EAEE,SAAsC5wX,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAEzF,OAAON,EADKwB,GAAalB,EAASA,CAAM,CAAC,EAAE,CAAGL,EAAiBxwX,EAAOqrV,EAAQz4U,EAAQi+W,GAC1D7wX,EAAOqrV,EACrC,EAAI,SAAsCrrV,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EACrE,IAAIrmY,EAAQgmY,EAAiBxwX,EAAOqrV,EAAQz4U,EAAQi+W,GAChD52W,EAASs2W,EAAc/lY,EAAOwV,EAAOqrV,GAGzC,OAAO1pS,EAAUn3D,GAASyvB,EAASzvB,CACrC,EAwBA,OArBAunY,EAAY,CAACvB,EAAiBK,MAAM,CAChCiB,GAAiBA,IAAkBhB,GACrCjsK,EAAGigK,eAAe,CAAGgN,EACrBjtK,EAAGgsK,MAAM,CAAGL,EAAiBK,MAAM,EACzBN,EAAc7U,SAAS,GAEjC72J,EAAGigK,eAAe,CAAGgM,EACrBjsK,EAAGgsK,MAAM,CAAGL,EAAiBK,MAAM,CAAGL,EAAiBK,MAAM,CAAG,CAACL,EAAiB,EAGhF3rK,EAAGgsK,MAAM,EACXhsK,CAAAA,EAAGgsK,MAAM,CAAGhsK,EAAGgsK,MAAM,CAAC7/X,GAAG,CAAC,SAASqiC,CAAC,SAG9B,IAAIA,EAAEs6V,MAAM,CACH,SAAoBllV,CAAC,EAAI,OAAOpV,EAAEoV,EAAI,EAExCpV,CACT,EAAC,EAGAwxL,CACT,CACF,EAAE,CAoOJ,SAASotK,KACP,IAAIC,EAA6B,EACjC,KAAI,CAACn7X,IAAI,CAAG,CAAC,aAAc,oBAAqB,SAASyJ,CAAU,CAAEyrW,CAAiB,EACpF,OAAOkmB,GAAS,SAAS1iY,CAAQ,EAC/B+Q,EAAW8oG,UAAU,CAAC75G,EACxB,EAAGw8W,EAAmBimB,EACxB,EAAE,CAeF,IAAI,CAACA,0BAA0B,CAAG,SAAS1nY,CAAK,SAC9C,EAAcA,IACZ0nY,EAA6B1nY,EACtB,IAAI,EAEJ0nY,CAEX,CACF,CAGA,SAASE,KACP,IAAIF,EAA6B,EACjC,KAAI,CAACn7X,IAAI,CAAG,CAAC,WAAY,oBAAqB,SAASizV,CAAQ,CAAEiiB,CAAiB,EAChF,OAAOkmB,GAAS,SAAS1iY,CAAQ,EAC/Bu6V,EAASr/U,KAAK,CAAClb,EACjB,EAAGw8W,EAAmBimB,EACxB,EAAE,CAEF,IAAI,CAACA,0BAA0B,CAAG,SAAS1nY,CAAK,SAC9C,EAAcA,IACZ0nY,EAA6B1nY,EACtB,IAAI,EAEJ0nY,CAEX,CACF,CAYA,SAASC,GAASE,CAAQ,CAAEC,CAAgB,CAAEJ,CAA0B,EACtE,IAAIK,EAAW9gC,EAAO,KAAM+gC,WACxBC,EAAY,EACZC,EAAa,EAAE,CAYnB,SAAS/nX,IACP,OAAO,IAAIgoX,CACb,CAEA,SAASA,IACP,IAAIhkY,EAAU,IAAI,CAACA,OAAO,CAAG,IAAI8vK,CAEjC,KAAI,CAAC1vK,OAAO,CAAG,SAASw2G,CAAG,EAAIs8Q,EAAelzX,EAAS42G,EAAM,EAC7D,IAAI,CAACv2G,MAAM,CAAG,SAAS43M,CAAM,EAAIgsL,EAAcjkY,EAASi4M,EAAS,EACjE,IAAI,CAAC5hJ,MAAM,CAAG,SAASypE,CAAQ,EAAIokQ,EAAclkY,EAAS8/H,EAAW,CACvE,CAGA,SAASgwC,IACP,IAAI,CAAC4wF,OAAO,CAAG,CAAEvrO,OAAQ,CAAE,CAC7B,CAkEA,SAASgvW,IAEP,KAAO,CAACL,GAAaC,EAAWpnY,MAAM,EAAE,CACtC,IAAIynY,EAAUL,EAAWvkP,KAAK,GAC9B,GAwSI,CAAClnH,EAAM+rW,GAAG,CAxSyB,CA2S3C/rW,EAAM+rW,GAAG,CAAG,GAzSN,IAAI7+P,EAAe,iCAAmC69N,GAAc+gC,EAAQvoY,KAAK,EAC7EqpW,EAAQk/B,EAAQvoY,KAAK,EACvB8nY,EAAiBS,EAAQvoY,KAAK,CAAE2pI,GAEhCm+P,EAAiBn+P,EAErB,CACF,CACF,CAEA,SAAS8+P,EAAqBhsW,CAAK,GAC7BirW,GAA+BjrW,EAAMioB,OAAO,EAAIjoB,IAAAA,EAAMnD,MAAM,EA2RzDmD,EAAM+rW,GAAG,GA1RI,IAAdP,GAAmBC,IAAAA,EAAWpnY,MAAM,EACtC+mY,EAASS,GAEXJ,EAAW3iY,IAAI,CAACk3B,KAEdA,EAAMisW,gBAAgB,EAAKjsW,EAAMioB,OAAO,GAC5CjoB,EAAMisW,gBAAgB,CAAG,GACzB,EAAET,EACFJ,EAAS,YAAac,SA/DFlsW,CAAK,EAKzBioB,EAAUjoB,EAAMioB,OAAO,CACvBjoB,EAAMisW,gBAAgB,CAAG,GACzBjsW,EAAMioB,OAAO,CAAGjhD,KAAAA,EAChB,GAAI,CACF,IAAK,IARH42N,EACAl2N,EACAugD,EAMO/gD,EAAI,EAAGo8K,EAAKr7H,EAAQ5jD,MAAM,CAAE6C,EAAIo8K,EAAI,EAAEp8K,EAAG,CA2UtD84B,EAAM+rW,GAAG,CAAG,GAzUNrkY,EAAUugD,CAAO,CAAC/gD,EAAE,CAAC,EAAE,CACvB02N,EAAK31K,CAAO,CAAC/gD,EAAE,CAAC84B,EAAMnD,MAAM,CAAC,CAC7B,GAAI,CACE0Z,EAAWqnL,GACbg9J,EAAelzX,EAASk2N,EAAG59L,EAAMz8B,KAAK,GAC7By8B,IAAAA,EAAMnD,MAAM,CACrB+9V,EAAelzX,EAASs4B,EAAMz8B,KAAK,EAEnCooY,EAAcjkY,EAASs4B,EAAMz8B,KAAK,CAEtC,CAAE,MAAO6oC,EAAG,CACVu/V,EAAcjkY,EAAS0kC,GAEnBA,GAAKA,CAA+B,IAA/BA,EAAE+/V,wBAAwB,EACjCd,EAAiBj/V,EAErB,CACF,CACF,QAAU,CACR,EAAEo/V,EACEP,GAA8BO,IAAAA,GAChCJ,EAASS,EAEb,CACF,EA4BqC7rW,EAAQ,GAC7C,CAEA,SAAS46V,EAAelzX,CAAO,CAAE42G,CAAG,EAC9B52G,EAAQ0gQ,OAAO,CAACvrO,MAAM,GACtByhF,IAAQ52G,EACV0kY,EAAS1kY,EAAS4jY,EAChB,SACA,qEACAhtR,IAEF+tR,SAKKA,EAAU3kY,CAAO,CAAE42G,CAAG,EAE7B,IADI96G,EACAsjI,EAAO,GACX,GAAI,CACEmtJ,CAAAA,EAAS31K,IAAQ/nE,EAAW+nE,EAAG,GAAG96G,CAAAA,EAAO86G,EAAI96G,IAAI,EACjD+yC,EAAW/yC,IACbkE,EAAQ0gQ,OAAO,CAACvrO,MAAM,CAAG,GACzBr5B,EAAKnC,IAAI,CAACi9G,EAUd,SAAmBA,CAAG,EAChBwoB,IACJA,EAAO,GACPulQ,EAAU3kY,EAAS42G,GACrB,EAd8BguR,EAoB9B,SAAkB9kQ,CAAQ,EACxBokQ,EAAclkY,EAAS8/H,EACzB,KApBI9/H,EAAQ0gQ,OAAO,CAAC7kQ,KAAK,CAAG+6G,EACxB52G,EAAQ0gQ,OAAO,CAACvrO,MAAM,CAAG,EACzBmvW,EAAqBtkY,EAAQ0gQ,OAAO,EAExC,CAAE,MAAOh8N,EAAG,CACVkgW,EAASlgW,EACX,CAOA,SAASkgW,EAAShuR,CAAG,EACfwoB,IACJA,EAAO,GACPslQ,EAAS1kY,EAAS42G,GACpB,CAIF,EAnCc52G,EAAS42G,GAGvB,CAkCA,SAASqtR,EAAcjkY,CAAO,CAAEi4M,CAAM,EAChCj4M,EAAQ0gQ,OAAO,CAACvrO,MAAM,EAC1BuvW,EAAS1kY,EAASi4M,EACpB,CAEA,SAASysL,EAAS1kY,CAAO,CAAEi4M,CAAM,EAC/Bj4M,EAAQ0gQ,OAAO,CAAC7kQ,KAAK,CAAGo8M,EACxBj4M,EAAQ0gQ,OAAO,CAACvrO,MAAM,CAAG,EACzBmvW,EAAqBtkY,EAAQ0gQ,OAAO,CACtC,CAEA,SAASwjI,EAAclkY,CAAO,CAAE8/H,CAAQ,EACtC,IAAI6I,EAAY3oI,EAAQ0gQ,OAAO,CAACngN,OAAO,CAEnC,EAASmgN,OAAO,CAACvrO,MAAM,EAAI,GAAMwzG,GAAaA,EAAUhsI,MAAM,EAChE+mY,EAAS,WAGP,IAAK,IAFD5iY,EACAwqB,EACK9rB,EAAI,EAAGo8K,EAAKjzC,EAAUhsI,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAAK,CAClD8rB,EAASq9G,CAAS,CAACnpI,EAAE,CAAC,EAAE,CACxBsB,EAAW6nI,CAAS,CAACnpI,EAAE,CAAC,EAAE,CAC1B,GAAI,CACF0kY,EAAc54W,EAAQujB,EAAW/tC,GAAYA,EAASg/H,GAAYA,EACpE,CAAE,MAAOp7F,EAAG,CACVi/V,EAAiBj/V,EACnB,CACF,CACF,EAEJ,CAsCA,SAASrkC,EAAO43M,CAAM,EACpB,IAAI3sL,EAAS,IAAIwkJ,EAEjB,OADAm0N,EAAc34W,EAAQ2sL,GACf3sL,CACT,CAEA,SAASu5W,EAAehpY,CAAK,CAAEo5H,CAAQ,CAAEn0H,CAAQ,EAC/C,IAAIgkY,EAAiB,KACrB,GAAI,CACEj2V,EAAW/tC,IAAWgkY,CAAAA,EAAiBhkY,GAAS,CACtD,CAAE,MAAO4jC,EAAG,CACV,OAAOrkC,EAAOqkC,EAChB,QACA,EAAkBogW,GACTA,EAAehpY,IAAI,CAAC,WACzB,OAAOm5H,EAASp5H,EAClB,EAAGwE,GAEI40H,EAASp5H,EAEpB,CAoBA,SAASwiB,EAAKxiB,CAAK,CAAEiF,CAAQ,CAAEikY,CAAO,CAAEC,CAAY,EAClD,IAAI15W,EAAS,IAAIwkJ,EAEjB,OADAojN,EAAe5nW,EAAQzvB,GAChByvB,EAAOxvB,IAAI,CAACgF,EAAUikY,EAASC,EACxC,CAzPAzmT,EAAOuxF,EAAQx0K,SAAS,CAAE,CACxBQ,KAAKmpY,CAAW,CAAEC,CAAU,CAAEF,CAAY,EACxC,GAAIhqC,EAAYiqC,IAAgBjqC,EAAYkqC,IAAelqC,EAAYgqC,GACrE,OAAO,IAAI,CAEb,IAAI15W,EAAS,IAAIwkJ,EAMjB,OAJA,IAAI,CAAC4wF,OAAO,CAACngN,OAAO,CAAG,IAAI,CAACmgN,OAAO,CAACngN,OAAO,EAAI,EAAE,CACjD,IAAI,CAACmgN,OAAO,CAACngN,OAAO,CAACn/C,IAAI,CAAC,CAACkqB,EAAQ25W,EAAaC,EAAYF,EAAa,EACrE,IAAI,CAACtkI,OAAO,CAACvrO,MAAM,CAAG,GAAGmvW,EAAqB,IAAI,CAAC5jI,OAAO,EAEvDp1O,CACT,EAEA,MAAS,SAASxqB,CAAQ,EACxB,OAAO,IAAI,CAAChF,IAAI,CAAC,KAAMgF,EACzB,EAEA,QAAW,SAASA,CAAQ,CAAEkkY,CAAY,EACxC,OAAO,IAAI,CAAClpY,IAAI,CAAC,SAASD,CAAK,EAC7B,OAAOgpY,EAAehpY,EAAOuE,EAASU,EACxC,EAAG,SAASg5B,CAAK,EACf,OAAO+qW,EAAe/qW,EAAOz5B,EAAQS,EACvC,EAAGkkY,EACL,CACF,GAgPA,IAAI5kY,EAAUie,EAgEd,SAAS8mX,EAAGlwQ,CAAQ,EAClB,GAAI,CAACpmF,EAAWomF,GACd,MAAM2uQ,EAAS,UAAW,iCAAoC3uQ,GAGhE,IAAIj1H,EAAU,IAAI8vK,EAYlB,OAFA76C,EARA,SAAmBp5H,CAAK,EACtBq3X,EAAelzX,EAASnE,EAC1B,EAEA,SAAkBo8M,CAAM,EACtBgsL,EAAcjkY,EAASi4M,EACzB,GAIOj4M,CACT,CAaA,OATAmlY,EAAG7pY,SAAS,CAAGw0K,EAAQx0K,SAAS,CAEhC6pY,EAAGnpX,KAAK,CAAGA,EACXmpX,EAAG9kY,MAAM,CAAGA,EACZ8kY,EAAG9mX,IAAI,CAAGA,EACV8mX,EAAG/kY,OAAO,CAAGA,EACb+kY,EAAGrvX,GAAG,CA1EN,SAAaH,CAAQ,EACnB,IAAI2V,EAAS,IAAIwkJ,EACbs1N,EAAU,EACVvvW,EAAUlL,EAAQhV,GAAY,EAAE,CAAG,CAAC,EAgBxC,OAdA1X,EAAQ0X,EAAU,SAAS3V,CAAO,CAAEzD,CAAG,EACrC6oY,IACA/mX,EAAKre,GAASlE,IAAI,CAAC,SAASD,CAAK,EAC/Bg6B,CAAO,CAACt5B,EAAI,CAAGV,EACT,EAAEupY,GAAUlS,EAAe5nW,EAAQuK,EAC3C,EAAG,SAASoiL,CAAM,EAChBgsL,EAAc34W,EAAQ2sL,EACxB,EACF,GAEgB,IAAZmtL,GACFlS,EAAe5nW,EAAQuK,GAGlBvK,CACT,EAuDA65W,EAAGx6U,IAAI,CAvCP,SAAch1C,CAAQ,EACpB,IAAIoG,EAAWC,IAMf,OAJA/d,EAAQ0X,EAAU,SAAS3V,CAAO,EAChCqe,EAAKre,GAASlE,IAAI,CAACigB,EAAS3b,OAAO,CAAE2b,EAAS1b,MAAM,CACtD,GAEO0b,EAAS/b,OAAO,EAkClBmlY,CACT,CAQA,SAAS7N,GAAsBlhV,CAAC,EAF9B9d,EAG6BooO,OAAO,CAH9B2jI,GAAG,CAAG,EAId,CAIA,SAASgB,KACP,IAAI,CAACj9X,IAAI,CAAG,CAAC,UAAW,WAAY,SAAS6L,CAAO,CAAEtS,CAAQ,EAC5D,IAAIuuM,EAAwBj8L,EAAQi8L,qBAAqB,EAC7Bj8L,EAAQqxX,2BAA2B,CAE3D/6E,EAAuBt2S,EAAQs2S,oBAAoB,EAC5Bt2S,EAAQsxX,0BAA0B,EAClCtxX,EAAQuxX,iCAAiC,CAEhEC,EAAe,CAAC,CAACv1L,EACjBw1L,EAAMD,EACN,SAASvvK,CAAE,EACT,IAAI5oN,EAAK4iM,EAAsBgmB,GAC/B,OAAO,WACLq0F,EAAqBj9S,EACvB,CACF,EACA,SAAS4oN,CAAE,EACT,IAAI7d,EAAQ12M,EAASu0N,EAAI,MAAO,IAChC,OAAO,WACLv0N,EAASiV,MAAM,CAACyhM,EAClB,CACF,EAIJ,OAFAqtL,EAAIC,SAAS,CAAGF,EAETC,CACT,EAAE,CAyEJ,SAASE,KACP,IAAIznB,EAAM,GACN0nB,EAAmB/iC,EAAO,cAC1BgjC,EAAiB,KACjBC,EAAe,IAEnB,KAAI,CAACC,SAAS,CAAG,SAASnqY,CAAK,EAI7B,OAHIk9D,UAAUp8D,MAAM,EAClBwhX,CAAAA,EAAMtiX,CAAI,EAELsiX,CACT,EAiBA,IAAI,CAAC/1W,IAAI,CAAG,CAAC,oBAAqB,SAAU,WACxC,SAASk1W,CAAiB,CAAEl7H,CAAM,CAAEi5G,CAAQ,EAE9C,SAAS4qC,EAAkBz/U,CAAM,EAC7BA,EAAOm3S,YAAY,CAAC0oB,WAAW,CAAG,EACtC,CAsDA,SAAS6f,IACP,IAAI,CAAC3nW,GAAG,CAAG6lU,IACX,IAAI,CAACj3P,OAAO,CAAG,IAAI,CAACl3E,OAAO,CAAG,IAAI,CAACkwW,UAAU,CAC9B,IAAI,CAACC,aAAa,CAAG,IAAI,CAACC,aAAa,CACvC,IAAI,CAACC,WAAW,CAAG,IAAI,CAACC,WAAW,CAAG,KACrD,IAAI,CAACn5R,KAAK,CAAG,IAAI,CACjB,IAAI,CAACi5Q,WAAW,CAAG,GACnB,IAAI,CAACmgB,WAAW,CAAG,GACnB,IAAI,CAACC,WAAW,CAAG,CAAC,EACpB,IAAI,CAACC,eAAe,CAAG,CAAC,EACxB,IAAI,CAACC,eAAe,CAAG,EACvB,IAAI,CAAChf,iBAAiB,CAAG,IAC3B,CA0BAue,EAAM5qY,SAAS,CAAG,CAChByE,YAAammY,EA8Bb7uX,KAAKuvX,CAAO,CAAEjoX,CAAM,EAClB,IAAIH,EA+BJ,OA7BAG,EAASA,GAAU,IAAI,CAEnBioX,EAEFpoX,CADAA,EAAQ,IAAI0nX,CAAI,EACV94R,KAAK,CAAG,IAAI,CAACA,KAAK,EAInB,IAAI,CAACy5R,YAAY,EACpB,KAAI,CAACA,YAAY,CAAGC,SA3JCnoX,CAAM,EACnC,SAASooX,IACP,IAAI,CAACZ,UAAU,CAAG,IAAI,CAACC,aAAa,CAChC,IAAI,CAACE,WAAW,CAAG,IAAI,CAACC,WAAW,CAAG,KAC1C,IAAI,CAACE,WAAW,CAAG,CAAC,EACpB,IAAI,CAACC,eAAe,CAAG,CAAC,EACxB,IAAI,CAACC,eAAe,CAAG,EACvB,IAAI,CAACpoW,GAAG,CAAG6lU,IACX,IAAI,CAACyiC,YAAY,CAAG,KACpB,IAAI,CAACL,WAAW,CAAG,EACrB,CAEA,OADAO,EAAWzrY,SAAS,CAAGqjB,EAChBooX,CACT,EA8IoD,IAAI,GAEhDvoX,EAAQ,IAAI,IAAI,CAACqoX,YAAY,EAE/BroX,EAAMyX,OAAO,CAAGtX,EAChBH,EAAM6nX,aAAa,CAAG1nX,EAAO4nX,WAAW,CACpC5nX,EAAO2nX,WAAW,EACpB3nX,EAAO4nX,WAAW,CAACH,aAAa,CAAG5nX,EACnCG,EAAO4nX,WAAW,CAAG/nX,GAErBG,EAAO2nX,WAAW,CAAG3nX,EAAO4nX,WAAW,CAAG/nX,EAQxCooX,CAAAA,GAAWjoX,IAAW,IAAI,GAAEH,EAAMvG,GAAG,CAAC,WAAYguX,GAE/CznX,CACT,EAwHA8N,OAAO06W,CAAQ,CAAEvsB,CAAQ,CAAEsb,CAAc,CAAEyM,CAAqB,EAC9D,IAAI95X,EAAM05O,EAAO4kJ,GACb9wK,EAAKrnL,EAAW4rU,GAAYA,EAAWrxV,EAE3C,GAAI1gB,EAAIytX,eAAe,CACrB,OAAOztX,EAAIytX,eAAe,CAAC,IAAI,CAAEjgK,EAAI6/J,EAAgBrtX,EAAKs+X,GAE5D,IAAI31X,EAAQ,IAAI,CACZ2jD,EAAQ3jD,EAAM80X,UAAU,CAExBrhM,EAAU,CACZoxB,GAAIA,EACJ3uK,KAAM0/U,EACNv+X,IAAKA,EACLwtX,IAAKsM,GAAyBwE,EAC9B34B,GAAI,CAAC,CAAC0nB,CACR,EAcA,OAZA+P,EAAiB,KAEZ9wU,GAEHA,CAAAA,CADAA,EAAQ3jD,EAAM80X,UAAU,CAAG,EAAE,EACvBe,kBAAkB,CAAG,EAAC,EAI9BlyU,EAAMsE,OAAO,CAACwrI,GACd9vI,EAAMkyU,kBAAkB,GACxBC,EAAuB,IAAI,CAAE,GAEtB,WACL,IAAInoY,EAAQymW,GAAYzwS,EAAO8vI,GAC3B9lM,GAAS,IACXmoY,EAAuB91X,EAAO,IAC1BrS,EAAQg2D,EAAMkyU,kBAAkB,EAClClyU,EAAMkyU,kBAAkB,IAG5BpB,EAAiB,IACnB,CACF,EA4DAnP,YAAYyQ,CAAgB,CAAE3sB,CAAQ,EACpC,IAAImc,EAAY,MAAUwQ,EAAiBzqY,MAAM,EAC7C0qY,EAAY,MAAUD,EAAiBzqY,MAAM,EAC7C2qY,EAAgB,EAAE,CAClB52V,EAAO,IAAI,CACX62V,EAA0B,GAC1BC,EAAW,GAEf,GAAI,CAACJ,EAAiBzqY,MAAM,CAAE,CAE5B,IAAI8qY,EAAa,GAIjB,OAHA/2V,EAAKiqE,UAAU,CAAC,WACV8sR,GAAYhtB,EAAS4sB,EAAWA,EAAW32V,EACjD,GACO,WACL+2V,EAAa,EACf,CACF,CAEA,GAAIL,IAAAA,EAAiBzqY,MAAM,CAEzB,OAAO,IAAI,CAAC2vB,MAAM,CAAC86W,CAAgB,CAAC,EAAE,CAAE,SAA0BvrY,CAAK,CAAEmwB,CAAQ,CAAE3a,CAAK,EACtFg2X,CAAS,CAAC,EAAE,CAAGxrY,EACf+6X,CAAS,CAAC,EAAE,CAAG5qW,EACfyuV,EAAS4sB,EAAW,IAAWr7W,EAAYq7W,EAAYzQ,EAAWvlX,EACpE,GAeF,SAASq2X,IACPH,EAA0B,GAEtBC,GACFA,EAAW,GACX/sB,EAAS4sB,EAAWA,EAAW32V,IAE/B+pU,EAAS4sB,EAAWzQ,EAAWlmV,EAEnC,CAEA,OAvBAzyC,EAAQmpY,EAAkB,SAAS9kJ,CAAI,CAAE9iP,CAAC,EACxC,IAAImoY,EAAYj3V,EAAKpkB,MAAM,CAACg2N,EAAM,SAA6BzmP,CAAK,CAAEmwB,CAAQ,EAC5Eq7W,CAAS,CAAC7nY,EAAE,CAAG3D,EACf+6X,CAAS,CAACp3X,EAAE,CAAGwsB,EACVu7W,IACHA,EAA0B,GAC1B72V,EAAKiqE,UAAU,CAAC+sR,GAEpB,GACAJ,EAAclmY,IAAI,CAACumY,EACrB,GAaO,WACL,KAAOL,EAAc3qY,MAAM,EACzB2qY,EAAc9nP,KAAK,IAEvB,CACF,EA0DAvlH,iBAAiBggB,CAAG,CAAEwgU,CAAQ,EAC5BmtB,EAA4B7a,SAAS,CAAG,GAExC,IAEIhhW,EAGAC,EAEA67W,EAPAn3V,EAAO,IAAI,CASXo3V,EAAqBrtB,EAAS99W,MAAM,CAAG,EACvCorY,EAAiB,EACjBC,EAAiB5lJ,EAAOnoM,EAAK2tV,GAC7BK,EAAgB,EAAE,CAClBC,EAAiB,CAAC,EAClBC,EAAU,GACVC,EAAY,EAEhB,SAASR,EAA4BvrD,CAAM,EASzC,IAAI2e,EARJjvU,EAAWswT,IAUX,GAAK9vD,EAASxgQ,IAKP,GAAI83U,EAAY93U,GAAW,CAC5BC,IAAai8W,IAGfG,EAAYp8W,CADZA,EAAWi8W,CAAY,EACFtrY,MAAM,CAAG,EAC9BorY,KAGFpjW,EAAY5Y,EAASpvB,MAAM,CAEvByrY,IAAczjW,IAEhBojW,IACA/7W,EAASrvB,MAAM,CAAGyrY,EAAYzjW,GAGhC,IAAK,IA9BHA,EACApoC,EAEA6xH,EACAD,EA0BO3uH,EAAI,EAAGA,EAAImlC,EAAWnlC,IAC7B2uH,EAAUniG,CAAQ,CAACxsB,EAAE,CACrB4uH,EAAUriG,CAAQ,CAACvsB,EAAE,CAGX,GAAa2uH,GAAaC,GAAYA,GAC/BD,IAAYC,IAC3B25Q,IACA/7W,CAAQ,CAACxsB,EAAE,CAAG4uH,EAGpB,KAAO,CASL,IAAK7xH,KARDyvB,IAAak8W,IAEfl8W,EAAWk8W,EAAiB,CAAC,EAC7BE,EAAY,EACZL,KAGFpjW,EAAY,EACA5Y,EACNrB,EAAe/wB,IAAI,CAACoyB,EAAUxvB,KAChCooC,IACAypF,EAAUriG,CAAQ,CAACxvB,EAAI,CACvB4xH,EAAUniG,CAAQ,CAACzvB,EAAI,CAEnBA,KAAOyvB,EAEC,GAAamiG,GAAaC,GAAYA,GAC/BD,IAAYC,IAC3B25Q,IACA/7W,CAAQ,CAACzvB,EAAI,CAAG6xH,IAGlBg6Q,IACAp8W,CAAQ,CAACzvB,EAAI,CAAG6xH,EAChB25Q,MAIN,GAAIK,EAAYzjW,EAGd,IAAKpoC,KADLwrY,IACY/7W,EACLtB,EAAe/wB,IAAI,CAACoyB,EAAUxvB,KACjC6rY,IACA,OAAOp8W,CAAQ,CAACzvB,EAAI,CAI5B,OAtEMyvB,IAAaD,IACfC,EAAWD,EACXg8W,KAqEJ,OAAOA,EACT,CA+BA,OAAO,IAAI,CAACz7W,MAAM,CAAC07W,EA7BnB,WASE,GARIG,GACFA,EAAU,GACV1tB,EAAS1uV,EAAUA,EAAU2kB,IAE7B+pU,EAAS1uV,EAAU87W,EAAcn3V,GAI/Bo3V,GACF,GAAKv7G,EAASxgQ,IAGP,GAAI83U,EAAY93U,GAAW,CAChC87W,EAAe,MAAU97W,EAASpvB,MAAM,EACxC,IAAK,IAAI6C,EAAI,EAAGA,EAAIusB,EAASpvB,MAAM,CAAE6C,IACnCqoY,CAAY,CAACroY,EAAE,CAAGusB,CAAQ,CAACvsB,EAAE,MAI/B,IAAK,IAAIjD,KADTsrY,EAAe,CAAC,EACA97W,EACVrB,EAAe/wB,IAAI,CAACoyB,EAAUxvB,IAChCsrY,CAAAA,CAAY,CAACtrY,EAAI,CAAGwvB,CAAQ,CAACxvB,EAAI,OAVrCsrY,EAAe97W,EAerB,EAGF,EAqDAmmL,UAQE,IAPIm2L,EACAxsY,EACA0rD,EAGA+gV,EACAC,EAEAp+U,EACAgwD,EAGAquR,EACAC,EANAC,EAAMvqB,EAINwqB,EAAW,EAAE,CAIjBC,EAAW,WAEXvtC,EAASuf,gBAAgB,GAErB,IAAI,GAAK/oW,GAAck0X,OAAAA,IAGzB1qC,EAASr/U,KAAK,CAACpF,MAAM,CAACmvX,GACtB8C,KAGF/C,EAAiB,KAEjB,EAAG,CACDyC,EAAQ,GACRpuR,EApBW,IAAI,CAyBf,IAAK,IAAI2uR,EAAqB,EAAGA,EAAqBC,EAAWpsY,MAAM,CAAEmsY,IAAsB,CAC7F,GAAI,CAGF5yK,GADKuyK,CADLA,EAAYM,CAAU,CAACD,EAAmB,EAC3B5yK,EAAE,EACduyK,EAAUp3X,KAAK,CAAEo3X,EAAU/rC,MAAM,CACtC,CAAE,MAAOh4T,EAAG,CACV44U,EAAkB54U,EACpB,CACAohW,EAAiB,IACnB,CACAiD,EAAWpsY,MAAM,CAAG,EAEpBqsY,EACA,EAAG,CACD,GAAKV,EAAW,CAACnuR,EAAQqsR,WAAW,EAAIrsR,EAAQgsR,UAAU,CAGxD,IADAmC,EAASpB,kBAAkB,CAAGoB,EAAS3rY,MAAM,CACtC2rY,EAASpB,kBAAkB,IAChC,GAAI,CAIF,GAHAmB,EAAQC,CAAQ,CAACA,EAASpB,kBAAkB,CAAC,EAK3C,GAAI,CAACrrY,EAAQ6M,CADP2/X,EAAAA,EAAM3/X,GAAG,EACEyxG,EAAO,IAAQ5yD,CAAAA,EAAO8gV,EAAM9gV,IAAI,GAC3C8gV,CAAAA,EAAMh6B,EAAE,CACJ7iG,GAAO3vQ,EAAO0rD,GACbu9S,EAAYjpW,IAAUipW,EAAYv9S,EAAI,EAe1C,IAAI8gV,IAAUvC,EAAgB,CAGnCyC,EAAQ,GACR,MAAMS,CACR,OAnBET,EAAQ,GACRzC,EAAiBuC,EACjBA,EAAM9gV,IAAI,CAAG8gV,EAAMh6B,EAAE,CAAGn6U,GAAKr4B,EAAO,MAAQA,EAE5Cq6N,GADKmyK,EAAMnyK,EAAE,EACVr6N,EAAQ,IAAUorY,EAAgBprY,EAAQ0rD,EAAO4yD,GAChDuuR,EAAM,IAEHC,CAAQ,CADbH,EAAS,EAAIE,EACQ,EAAEC,CAAAA,CAAQ,CAACH,EAAO,CAAG,EAAE,EAC5CG,CAAQ,CAACH,EAAO,CAACpnY,IAAI,CAAC,CACpBo7H,IAAK3tF,EAAWw5V,EAAMnS,GAAG,EAAI,OAAUmS,CAAAA,EAAMnS,GAAG,CAACvvW,IAAI,EAAI0hX,EAAMnS,GAAG,CAAClrW,QAAQ,EAAC,EAAKq9W,EAAMnS,GAAG,CAC1FnlW,OAAQl1B,EACRqvH,OAAQ3jE,CACV,IASR,CAAE,MAAO7iB,EAAG,CACV44U,EAAkB54U,EACpB,CASJ,GAAI,CAAEylB,CAAAA,EAAQ,CAAEgwD,EAAQqsR,WAAW,EAAIrsR,EAAQwsR,eAAe,EAAIxsR,EAAQmsR,WAAW,EAChFnsR,IAtFI,IAAI,EAsFcA,EAAQisR,aAAa,EAC9C,KAAOjsR,IAvFA,IAAI,EAuFkB,CAAEhwD,CAAAA,EAAOgwD,EAAQisR,aAAa,GACzDjsR,EAAUA,EAAQlkF,OAAO,OAGrBkkF,EAAUhwD,EAAO,GAIvB,CAACo+U,GAASQ,EAAWpsY,MAAM,GAAK,CAAE+rY,IAEpC,MADAO,IACMpD,EAAiB,SACnB,4FAEA1nB,EAAKwqB,EAGb,OAASJ,GAASQ,EAAWpsY,MAAM,CAEnCssY,IAAAA,IAGOC,EAA0B1zB,EAAgB74W,MAAM,EACrD,GAAI,CACF64W,CAAe,CAAC0zB,IAA0B,EAC5C,CAAE,MAAOxkW,EAAG,CACV44U,EAAkB54U,EACpB,CAEF8wU,EAAgB74W,MAAM,CAAGusY,EAA0B,EAInD7tC,EAASuf,gBAAgB,EAC3B,EA6CAuuB,WACE,IAAI,CAAC3C,WAAW,CAAG,EACrB,EA2BA4C,eACE,OAAO,IAAI,CAAC5C,WAAW,EAazB6C,UACE,IAAI,CAAC7C,WAAW,CAAG,EACrB,EAoCA7uX,WAEE,IAAI,IAAI,CAAC0uW,WAAW,EACpB,IAAI1nW,EAAS,IAAI,CAACsX,OAAO,CAWzB,IAAK,IAAImyE,KATT,IAAI,CAACl2F,UAAU,CAAC,YAChB,IAAI,CAACm0W,WAAW,CAAG,GAEf,IAAI,GAAKx0W,GAEXwpV,EAASsf,sBAAsB,GAGjCwsB,EAAuB,IAAI,CAAE,CAAC,IAAI,CAACR,eAAe,EAC5B,IAAI,CAACD,eAAe,CACxC4C,EAAuB,IAAI,CAAE,IAAI,CAAC5C,eAAe,CAACt+R,EAAU,CAAEA,GAK5DzpF,GAAUA,EAAO2nX,WAAW,GAAK,IAAI,EAAE3nX,CAAAA,EAAO2nX,WAAW,CAAG,IAAI,CAACF,aAAa,EAC9EznX,GAAUA,EAAO4nX,WAAW,GAAK,IAAI,EAAE5nX,CAAAA,EAAO4nX,WAAW,CAAG,IAAI,CAACF,aAAa,EAC9E,IAAI,CAACA,aAAa,EAAE,KAAI,CAACA,aAAa,CAACD,aAAa,CAAG,IAAI,CAACA,aAAa,EACzE,IAAI,CAACA,aAAa,EAAE,KAAI,CAACA,aAAa,CAACC,aAAa,CAAG,IAAI,CAACA,aAAa,EAG7E,IAAI,CAAC1uX,QAAQ,CAAG,IAAI,CAACu6L,OAAO,CAAG,IAAI,CAACj+G,MAAM,CAAG,IAAI,CAAC0mB,UAAU,CAAG,IAAI,CAAC/vF,WAAW,CAAGxB,EAClF,IAAI,CAACnR,GAAG,CAAG,IAAI,CAACqU,MAAM,CAAG,IAAI,CAACqqW,WAAW,CAAG,WAAa,OAAOvtW,CAAM,EACtE,IAAI,CAACq9W,WAAW,CAAG,CAAC,EAGpB,IAAI,CAACL,aAAa,CAAG,KA77BvB/tX,IA87BmB,CA97BZ4d,OAAO,CAAG5d,IA87BE,CA97BK+tX,aAAa,CAAG/tX,IA87BrB,CA97B4BguX,aAAa,CAAGhuX,IA87B5C,CA97BmDiuX,WAAW,CAC7EjuX,IA67Be,CA77BRkuX,WAAW,CAAGluX,IA67BN,CA77Ba+0F,KAAK,CAAG/0F,IA67BrB,CA77B4B8tX,UAAU,CAAG,KA87B5D,EA8BAjlI,MAAM5e,CAAI,CAAEo6G,CAAM,EAChB,OAAOt6G,EAAOE,GAAM,IAAI,CAAEo6G,EAC5B,EAgCA/hP,WAAW2nI,CAAI,CAAEo6G,CAAM,EAGhB7qV,EAAWs7F,OAAO,EAAK47R,EAAWpsY,MAAM,EAC3C0+V,EAASr/U,KAAK,CAAC,WACT+sX,EAAWpsY,MAAM,EACnBkV,EAAWqgM,OAAO,EAEtB,GAGF62L,EAAW3nY,IAAI,CAAC,CAACiQ,MAAO,IAAI,CAAE6kN,GAAIksB,EAAOE,GAAOo6G,OAAQA,CAAM,EAChE,EAEAsZ,aAAa9/I,CAAE,EACbs/I,EAAgBp0W,IAAI,CAAC80N,EACvB,EA8CAjiI,OAAOquJ,CAAI,EACT,GAAI,CACFsmJ,EAAW,UACX,GAAI,CACF,OAAO,IAAI,CAAC1nI,KAAK,CAAC5e,EACpB,QAAU,CACR2mJ,GACF,CACF,CAAE,MAAOvkW,EAAG,CACV44U,EAAkB54U,EACpB,QAAU,CACR,GAAI,CACF7yB,EAAWqgM,OAAO,EACpB,CAAE,MAAOxtK,EAAG,CAGV,MAFA44U,EAAkB54U,GAEZA,CACR,CACF,CACF,EAmBA9Z,YAAY03N,CAAI,EACd,IAAIjxO,EAAQ,IAAI,CACZixO,GACFinJ,EAAgBnoY,IAAI,CAKtB,WACEiQ,EAAM6vP,KAAK,CAAC5e,EACd,GALAA,EAAOF,EAAOE,GAqRK,OAAjByjJ,GACFA,CAAAA,EAAe1qC,EAASr/U,KAAK,CAAC,WAC5BnK,EAAWoiF,MAAM,CAAC40S,EACpB,EAAC,CAlRH,EA6BA5wX,IAAI0O,CAAI,CAAE8zV,CAAQ,EAChB,IAAI+uB,EAAiB,IAAI,CAAC/C,WAAW,CAAC9/W,EAAK,CACtC6iX,GACH,KAAI,CAAC/C,WAAW,CAAC9/W,EAAK,CAAG6iX,EAAiB,EAAE,EAE9CA,EAAepoY,IAAI,CAACq5W,GAEpB,IAAItgQ,EAAU,IAAI,CAClB,GACOA,EAAQusR,eAAe,CAAC//W,EAAK,EAChCwzF,CAAAA,EAAQusR,eAAe,CAAC//W,EAAK,CAAG,GAElCwzF,EAAQusR,eAAe,CAAC//W,EAAK,SACrBwzF,EAAUA,EAAQlkF,OAAO,CAEnC,IAAIya,EAAO,IAAI,CACf,OAAO,WACL,IAAI+4V,EAAkBD,EAAepqY,OAAO,CAACq7W,EACrB,MAApBgvB,IAIF,OAAOD,CAAc,CAACC,EAAgB,CACtCH,EAAuB54V,EAAM,EAAG/pB,GAEpC,CACF,EAyBAV,MAAMU,CAAI,CAAEjkB,CAAI,EACd,IACI8mY,EAeAhqY,EACA7C,EAjBAymC,EAAQ,EAAE,CAEV/xB,EAAQ,IAAI,CACZhV,EAAkB,GAElBV,EAAQ,CACVgrB,KAAMA,EACNqwG,YAAa3lH,EACbhV,kBAAmBA,EAAkB,EAAK,EAC1Cc,iBACExB,EAAM42V,gBAAgB,CAAG,EAC3B,EACAA,iBAAkB,EACpB,EAEIm3C,EAAetyW,GAAO,CAACz7B,EAAM,CAAEo9D,UAAW,GAI9C,EAAG,CAGD,IAAKv5D,EAAI,EAFTgqY,EAAiBn4X,EAAMo1X,WAAW,CAAC9/W,EAAK,EAAIyc,EAC5CznC,EAAMgiW,YAAY,CAAGtsV,EACT1U,EAAS6sY,EAAe7sY,MAAM,CAAE6C,EAAI7C,EAAQ6C,IAAK,CAG3D,GAAI,CAACgqY,CAAc,CAAChqY,EAAE,CAAE,CACtBgqY,EAAenoY,MAAM,CAAC7B,EAAG,GACzBA,IACA7C,IACA,QACF,CACA,GAAI,CAEF6sY,CAAc,CAAChqY,EAAE,CAACs5D,KAAK,CAAC,KAAM4wU,EAChC,CAAE,MAAOhlW,EAAG,CACV44U,EAAkB54U,EACpB,CACF,CAEA,GAAIroC,EACF,MAGFgV,EAAQA,EAAM4kB,OAAO,OACd5kB,EAET1V,OAAAA,EAAMgiW,YAAY,CAAG,KAEdhiW,CACT,EAwBAuW,WAAWyU,CAAI,CAAEjkB,CAAI,EAEnB,IAeI6T,EACA/W,EACA7C,EAjBAw9G,EADS,IAAI,CAEbhwD,EAFS,IAAI,CAIbxuD,EAAQ,CACVgrB,KAAMA,EACNqwG,YANW,IAAI,CAOf75H,iBACExB,EAAM42V,gBAAgB,CAAG,EAC3B,EACAA,iBAAkB,EACpB,EAEA,GAAI,CAACt2V,IAbY,CAaLyqY,eAAe,CAAC//W,EAAK,CAAE,OAAOhrB,EAQ1C,IANA,IAAI+tY,EAAetyW,GAAO,CAACz7B,EAAM,CAAEo9D,UAAW,GAMtCohD,EAAUhwD,GAAO,CAGvB,IAAK3qD,EAAI,EAFT7D,EAAMgiW,YAAY,CAAGxjP,EAETx9G,EAAS4Z,CADrBA,EAAY4jG,EAAQssR,WAAW,CAAC9/W,EAAK,EAAI,EAAE,EACZhqB,MAAM,CAAE6C,EAAI7C,EAAQ6C,IAAK,CAEtD,GAAI,CAAC+W,CAAS,CAAC/W,EAAE,CAAE,CACjB+W,EAAUlV,MAAM,CAAC7B,EAAG,GACpBA,IACA7C,IACA,QACF,CAEA,GAAI,CACF4Z,CAAS,CAAC/W,EAAE,CAACs5D,KAAK,CAAC,KAAM4wU,EAC3B,CAAE,MAAOhlW,EAAG,CACV44U,EAAkB54U,EACpB,CACF,CAOA,GAAI,CAAEylB,CAAAA,EAAQ,EAASu8U,eAAe,CAAC//W,EAAK,EAAIwzF,EAAQmsR,WAAW,EAC9DnsR,IA9CM,IAAI,EA8CYA,EAAQisR,aAAa,EAC9C,KAAOjsR,IA/CE,IAAI,EA+CgB,CAAEhwD,CAAAA,EAAOgwD,EAAQisR,aAAa,GACzDjsR,EAAUA,EAAQlkF,OAAO,CAM/B,OADAt6B,EAAMgiW,YAAY,CAAG,KACdhiW,CACT,CACF,EAEA,IAAIkW,EAAa,IAAIq0X,EAGjB6C,EAAal3X,EAAW83X,YAAY,CAAG,EAAE,CACzCn0B,EAAkB3jW,EAAW+3X,iBAAiB,CAAG,EAAE,CACnDL,EAAkB13X,EAAWg4X,iBAAiB,CAAG,EAAE,CAEnDX,EAA0B,EAE9B,OAAOr3X,EAGP,SAAS+2X,EAAWkB,CAAK,EACvB,GAAIj4X,EAAWs7F,OAAO,CACpB,MAAM04R,EAAiB,SAAU,0BAA2Bh0X,EAAWs7F,OAAO,CAGhFt7F,CAAAA,EAAWs7F,OAAO,CAAG28R,CACvB,CAEA,SAASb,IACPp3X,EAAWs7F,OAAO,CAAG,IACvB,CAEA,SAASg6R,EAAuBhtR,CAAO,CAAE10G,CAAK,EAC5C,GACE00G,EAAQwsR,eAAe,EAAIlhY,QACnB00G,EAAUA,EAAQlkF,OAAO,CAAG,CAGxC,SAASqzW,EAAuBnvR,CAAO,CAAE10G,CAAK,CAAEkhB,CAAI,EAClD,GACEwzF,EAAQusR,eAAe,CAAC//W,EAAK,EAAIlhB,EAEK,IAAlC00G,EAAQusR,eAAe,CAAC//W,EAAK,EAC/B,OAAOwzF,EAAQusR,eAAe,CAAC//W,EAAK,OAE9BwzF,EAAUA,EAAQlkF,OAAO,CAAG,CAOxC,SAASgxW,IAAgB,CAEzB,SAAS4B,IACP,KAAOU,EAAgB5sY,MAAM,EAC3B,GAAI,CACF4sY,EAAgB/pP,KAAK,IACvB,CAAE,MAAO96G,EAAG,CACV44U,EAAkB54U,EACpB,CAEFqhW,EAAe,IACjB,CASF,EAAE,CAyBJ,SAASgE,KACP,IAAIhsB,EAA6B,sCAC7BC,EAA8B,4CAkBlC,KAAI,CAACD,0BAA0B,CAAG,SAASrjB,CAAM,SAC/C,EAAcA,IACZqjB,EAA6BrjB,EACtB,IAAI,EAENqjB,CACT,EAmBA,IAAI,CAACC,2BAA2B,CAAG,SAAStjB,CAAM,SAChD,EAAcA,IACZsjB,EAA8BtjB,EACvB,IAAI,EAENsjB,CACT,EAEA,IAAI,CAAC51W,IAAI,CAAG,WACV,OAAO,SAAqB82V,CAAG,CAAEC,CAAO,EACtC,IACI6qC,EADAzqY,EAAQ4/V,EAAU6e,EAA8BD,QAGpD,KADAisB,CAAAA,EAAgB1Y,GAAWpyB,GAAOA,EAAI71S,IAAI,IAAIhjB,IAAI,GACrB2jW,EAAc1sX,KAAK,CAAC/d,GAG1C2/V,EAFE,UAAY8qC,CAGvB,CACF,CACF,CAj/HA3L,GAAIiB,OAAO,CAAG,UACdjB,GAAI4L,mBAAmB,CAAG,sBAC1B5L,GAAI0B,oBAAoB,CAAG,uBAC3B1B,GAAIqB,qBAAqB,CAAG,wBAC5BrB,GAAIoB,iBAAiB,CAAG,oBACxBpB,GAAIe,gBAAgB,CAAG,mBACvBf,GAAIc,eAAe,CAAG,kBACtBd,GAAIgB,cAAc,CAAG,iBACrBhB,GAAIY,gBAAgB,CAAG,mBACvBZ,GAAIwB,UAAU,CAAG,aACjBxB,GAAIkB,OAAO,CAAG,UACdlB,GAAI2B,eAAe,CAAG,kBACtB3B,GAAI6L,QAAQ,CAAG,WACf7L,GAAI4B,gBAAgB,CAAG,mBACvB5B,GAAI6B,cAAc,CAAG,iBACrB7B,GAAI8B,gBAAgB,CAAG,mBAGvB9B,GAAIoC,gBAAgB,CAAG,mBAEvBpC,GAAI/iY,SAAS,CAAG,CACdojY,IAAI1mQ,CAAI,EACN,IAAI,CAACA,IAAI,CAAGA,EACZ,IAAI,CAAC2kQ,MAAM,CAAG,IAAI,CAAC2B,KAAK,CAAC5B,GAAG,CAAC1kQ,GAE7B,IAAIn8H,EAAQ,IAAI,CAACsuY,OAAO,GAMxB,OAJ2B,IAAvB,IAAI,CAACxN,MAAM,CAAChgY,MAAM,EACpB,IAAI,CAAC27M,UAAU,CAAC,yBAA0B,IAAI,CAACqkL,MAAM,CAAC,EAAE,EAGnD9gY,CACT,EAEAsuY,UAEE,IADA,IAAIr4R,EAAO,EAAE,GAIX,GAFI,IAAI,CAAC6qR,MAAM,CAAChgY,MAAM,CAAG,GAAK,CAAC,IAAI,CAACkgY,IAAI,CAAC,IAAK,IAAK,IAAK,MACtD/qR,EAAK1wG,IAAI,CAAC,IAAI,CAACgpY,mBAAmB,IAChC,CAAC,IAAI,CAACC,MAAM,CAAC,KACf,MAAO,CAAE5tX,KAAM4hX,GAAIiB,OAAO,CAAExtR,KAAMA,CAAI,CAG5C,EAEAs4R,sBACE,MAAO,CAAE3tX,KAAM4hX,GAAI4L,mBAAmB,CAAErzB,WAAY,IAAI,CAAC0zB,WAAW,EAAG,CACzE,EAEAA,cAEE,IADA,IAAI15R,EAAO,IAAI,CAACgmQ,UAAU,GACnB,IAAI,CAACyzB,MAAM,CAAC,MACjBz5R,EAAO,IAAI,CAAChyG,MAAM,CAACgyG,GAErB,OAAOA,CACT,EAEAgmQ,aACE,OAAO,IAAI,CAACh4T,UAAU,EACxB,EAEAA,aACE,IAAItzB,EAAS,IAAI,CAACi/W,OAAO,GACzB,GAAI,IAAI,CAACF,MAAM,CAAC,KAAM,CACpB,GAAI,CAAC9J,GAAaj1W,GAChB,MAAM8wW,GAAa,OAAQ,6CAG7B9wW,EAAS,CAAE7O,KAAM4hX,GAAI0B,oBAAoB,CAAEnvR,KAAMtlF,EAAQy2F,MAAO,IAAI,CAACnjE,UAAU,GAAIy5M,SAAU,GAAG,CAClG,CACA,OAAO/sO,CACT,EAEAi/W,UACE,IACI5K,EACAC,EAFAtjY,EAAO,IAAI,CAACkuY,SAAS,UAGzB,IAAQ,CAACH,MAAM,CAAC,OACd1K,EAAY,IAAI,CAAC/oB,UAAU,GACvB,IAAI,CAAC6zB,OAAO,CAAC,OACf7K,EAAa,IAAI,CAAChpB,UAAU,GACrB,CAAEn6V,KAAM4hX,GAAIqB,qBAAqB,CAAEpjY,KAAMA,EAAMqjY,UAAWA,EAAWC,WAAYA,CAAU,GAG/FtjY,CACT,EAEAkuY,YAEE,IADA,IAAI55R,EAAO,IAAI,CAAC85R,UAAU,GACnB,IAAI,CAACL,MAAM,CAAC,OACjBz5R,EAAO,CAAEn0F,KAAM4hX,GAAIoB,iBAAiB,CAAEpnI,SAAU,KAAMznJ,KAAMA,EAAMmR,MAAO,IAAI,CAAC2oR,UAAU,EAAG,EAE7F,OAAO95R,CACT,EAEA85R,aAEE,IADA,IAAI95R,EAAO,IAAI,CAAC+5R,QAAQ,GACjB,IAAI,CAACN,MAAM,CAAC,OACjBz5R,EAAO,CAAEn0F,KAAM4hX,GAAIoB,iBAAiB,CAAEpnI,SAAU,KAAMznJ,KAAMA,EAAMmR,MAAO,IAAI,CAAC4oR,QAAQ,EAAE,EAE1F,OAAO/5R,CACT,EAEA+5R,WAGE,IAFA,IACIz4R,EADAtB,EAAO,IAAI,CAACg6R,UAAU,GAElB14R,EAAQ,IAAI,CAACm4R,MAAM,CAAC,KAAK,KAAK,MAAM,QAC1Cz5R,EAAO,CAAEn0F,KAAM4hX,GAAIe,gBAAgB,CAAE/mI,SAAUnmJ,EAAM8lB,IAAI,CAAEpnB,KAAMA,EAAMmR,MAAO,IAAI,CAAC6oR,UAAU,EAAG,EAElG,OAAOh6R,CACT,EAEAg6R,aAGE,IAFA,IACI14R,EADAtB,EAAO,IAAI,CAACi6R,QAAQ,GAEhB34R,EAAQ,IAAI,CAACm4R,MAAM,CAAC,IAAK,IAAK,KAAM,OAC1Cz5R,EAAO,CAAEn0F,KAAM4hX,GAAIe,gBAAgB,CAAE/mI,SAAUnmJ,EAAM8lB,IAAI,CAAEpnB,KAAMA,EAAMmR,MAAO,IAAI,CAAC8oR,QAAQ,EAAG,EAEhG,OAAOj6R,CACT,EAEAi6R,WAGE,IAFA,IACI34R,EADAtB,EAAO,IAAI,CAACk6R,cAAc,GAEtB54R,EAAQ,IAAI,CAACm4R,MAAM,CAAC,IAAI,MAC9Bz5R,EAAO,CAAEn0F,KAAM4hX,GAAIe,gBAAgB,CAAE/mI,SAAUnmJ,EAAM8lB,IAAI,CAAEpnB,KAAMA,EAAMmR,MAAO,IAAI,CAAC+oR,cAAc,EAAG,EAEtG,OAAOl6R,CACT,EAEAk6R,iBAGE,IAFA,IACI54R,EADAtB,EAAO,IAAI,CAACm6R,KAAK,GAEb74R,EAAQ,IAAI,CAACm4R,MAAM,CAAC,IAAI,IAAI,MAClCz5R,EAAO,CAAEn0F,KAAM4hX,GAAIe,gBAAgB,CAAE/mI,SAAUnmJ,EAAM8lB,IAAI,CAAEpnB,KAAMA,EAAMmR,MAAO,IAAI,CAACgpR,KAAK,EAAG,EAE7F,OAAOn6R,CACT,EAEAm6R,QACE,IAAI74R,QACJ,CAAKA,EAAQ,IAAI,CAACm4R,MAAM,CAAC,IAAK,IAAK,MAC1B,CAAE5tX,KAAM4hX,GAAIc,eAAe,CAAE9mI,SAAUnmJ,EAAM8lB,IAAI,CAAEk3P,OAAQ,GAAM/lQ,SAAU,IAAI,CAAC4hR,KAAK,EAAG,EAExF,IAAI,CAACphX,OAAO,EAEvB,EAEAA,cACMA,EAoBAwgC,EACJ,IApBI,IAAI,CAACkgV,MAAM,CAAC,MACd1gX,EAAU,IAAI,CAAC2gX,WAAW,GAC1B,IAAI,CAACG,OAAO,CAAC,MACJ,IAAI,CAACJ,MAAM,CAAC,KACrB1gX,EAAU,IAAI,CAACqhX,gBAAgB,GACtB,IAAI,CAACX,MAAM,CAAC,KACrB1gX,EAAU,IAAI,CAAC2gI,MAAM,GACZ,IAAI,CAAC2gP,eAAe,CAACvgX,cAAc,CAAC,IAAI,CAACmyW,IAAI,GAAG7kQ,IAAI,EAC7DruG,EAAUuK,GAAK,IAAI,CAAC+2W,eAAe,CAAC,IAAI,CAACR,OAAO,GAAGzyQ,IAAI,CAAC,EAC/C,IAAI,CAACv1G,OAAO,CAACy+W,QAAQ,CAACx2W,cAAc,CAAC,IAAI,CAACmyW,IAAI,GAAG7kQ,IAAI,EAC9DruG,EAAU,CAAElN,KAAM4hX,GAAIkB,OAAO,CAAE1jY,MAAO,IAAI,CAAC4mB,OAAO,CAACy+W,QAAQ,CAAC,IAAI,CAACuJ,OAAO,GAAGzyQ,IAAI,CAAC,EACvE,IAAI,CAAC6kQ,IAAI,GAAGp+Q,UAAU,CAC/B90F,EAAU,IAAI,CAAC80F,UAAU,GAChB,IAAI,CAACo+Q,IAAI,GAAG9nC,QAAQ,CAC7BprU,EAAU,IAAI,CAACorU,QAAQ,GAEvB,IAAI,CAACz8I,UAAU,CAAC,2BAA4B,IAAI,CAACukL,IAAI,IAI/C1yU,EAAO,IAAI,CAACkgV,MAAM,CAAC,IAAK,IAAK,MAC/BlgV,MAAAA,EAAK6tE,IAAI,EACXruG,EAAU,CAAClN,KAAM4hX,GAAIgB,cAAc,CAAES,OAAQn2W,EAASovC,UAAW,IAAI,CAACmyU,cAAc,EAAG,EACvF,IAAI,CAACT,OAAO,CAAC,MACJtgV,MAAAA,EAAK6tE,IAAI,EAClBruG,EAAU,CAAElN,KAAM4hX,GAAIY,gBAAgB,CAAE30O,OAAQ3gI,EAAS44D,SAAU,IAAI,CAACq0R,UAAU,GAAIsoB,SAAU,EAAK,EACrG,IAAI,CAACuL,OAAO,CAAC,MACJtgV,MAAAA,EAAK6tE,IAAI,CAClBruG,EAAU,CAAElN,KAAM4hX,GAAIY,gBAAgB,CAAE30O,OAAQ3gI,EAAS44D,SAAU,IAAI,CAACk8B,UAAU,GAAIygR,SAAU,EAAM,EAEtG,IAAI,CAAC5mL,UAAU,CAAC,cAGpB,OAAO3uL,CACT,EAEA/qB,OAAOusY,CAAc,EAInB,IAHA,IAAIzoY,EAAO,CAACyoY,EAAe,CACvB7/W,EAAS,CAAC7O,KAAM4hX,GAAIgB,cAAc,CAAES,OAAQ,IAAI,CAACrhR,UAAU,GAAI1lD,UAAWr2D,EAAM9D,OAAQ,EAAI,EAEzF,IAAI,CAACyrY,MAAM,CAAC,MACjB3nY,EAAKtB,IAAI,CAAC,IAAI,CAACw1W,UAAU,IAG3B,OAAOtrV,CACT,EAEA4/W,iBACE,IAAIxoY,EAAO,EAAE,CACb,GAAI,UAAI,CAAC0oY,SAAS,GAAGpzQ,IAAI,CACvB,GACEt1H,EAAKtB,IAAI,CAAC,IAAI,CAACkpY,WAAW,UACnB,IAAI,CAACD,MAAM,CAAC,KAAM,OAEtB3nY,CACT,EAEA+7G,aACE,IAAIvM,EAAQ,IAAI,CAACu4R,OAAO,GAIxB,OAHKv4R,EAAMuM,UAAU,EACnB,IAAI,CAAC65F,UAAU,CAAC,4BAA6BpmG,GAExC,CAAEz1F,KAAM4hX,GAAIwB,UAAU,CAAEl5W,KAAMurF,EAAM8lB,IAAI,CACjD,EAEA+8N,WAEE,MAAO,CAAEt4U,KAAM4hX,GAAIkB,OAAO,CAAE1jY,MAAO,IAAI,CAAC4uY,OAAO,GAAG5uY,KAAK,CACzD,EAEAmvY,mBACE,IAAIvuY,EAAW,EAAE,CACjB,GAAI,UAAI,CAAC2uY,SAAS,GAAGpzQ,IAAI,CACvB,EAAG,CACD,GAAI,IAAI,CAAC6kQ,IAAI,CAAC,KAEZ,MAEFpgY,EAAS2E,IAAI,CAAC,IAAI,CAACw1W,UAAU,GAC/B,OAAS,IAAI,CAACyzB,MAAM,CAAC,KAAM,OAE7B,IAAI,CAACI,OAAO,CAAC,KAEN,CAAEhuX,KAAM4hX,GAAI2B,eAAe,CAAEvjY,SAAUA,CAAS,CACzD,EAEA6tJ,SACE,IACI/nE,EADAo4L,EAAa,EAAE,CAEnB,GAAI,UAAI,CAACywH,SAAS,GAAGpzQ,IAAI,CACvB,EAAG,CACD,GAAI,IAAI,CAAC6kQ,IAAI,CAAC,KAEZ,MAEFt6S,EAAW,CAAC9lE,KAAM4hX,GAAI6L,QAAQ,CAAEmB,KAAM,MAAM,EACxC,IAAI,CAACxO,IAAI,GAAG9nC,QAAQ,EACtBxyQ,EAAShmF,GAAG,CAAG,IAAI,CAACw4V,QAAQ,GAC5BxyQ,EAAS28S,QAAQ,CAAG,GACpB,IAAI,CAACuL,OAAO,CAAC,KACbloT,EAAS1mF,KAAK,CAAG,IAAI,CAAC+6W,UAAU,IACvB,IAAI,CAACimB,IAAI,GAAGp+Q,UAAU,EAC/Bl8B,EAAShmF,GAAG,CAAG,IAAI,CAACkiH,UAAU,GAC9Bl8B,EAAS28S,QAAQ,CAAG,GAChB,IAAI,CAACrC,IAAI,CAAC,MACZ,IAAI,CAAC4N,OAAO,CAAC,KACbloT,EAAS1mF,KAAK,CAAG,IAAI,CAAC+6W,UAAU,IAEhCr0R,EAAS1mF,KAAK,CAAG0mF,EAAShmF,GAAG,EAEtB,IAAI,CAACsgY,IAAI,CAAC,MACnB,IAAI,CAAC4N,OAAO,CAAC,KACbloT,EAAShmF,GAAG,CAAG,IAAI,CAACq6W,UAAU,GAC9B,IAAI,CAAC6zB,OAAO,CAAC,KACbloT,EAAS28S,QAAQ,CAAG,GACpB,IAAI,CAACuL,OAAO,CAAC,KACbloT,EAAS1mF,KAAK,CAAG,IAAI,CAAC+6W,UAAU,IAEhC,IAAI,CAACt+J,UAAU,CAAC,cAAe,IAAI,CAACukL,IAAI,IAE1CliH,EAAWv5Q,IAAI,CAACmhF,EAClB,OAAS,IAAI,CAAC8nT,MAAM,CAAC,KAAM,OAE7B,IAAI,CAACI,OAAO,CAAC,KAEN,CAAChuX,KAAM4hX,GAAI4B,gBAAgB,CAAEtlH,WAAYA,CAAW,CAC7D,EAEAriE,WAAW97E,CAAG,CAAEtqB,CAAK,EACnB,MAAMkqR,GAAa,SACf,yFACElqR,EAAM8lB,IAAI,CAAEwE,EAAMtqB,EAAMlzG,KAAK,CAAG,EAAI,IAAI,CAACg5H,IAAI,CAAE,IAAI,CAACA,IAAI,CAAC39F,SAAS,CAAC63E,EAAMlzG,KAAK,EACtF,EAEAyrY,QAAQa,CAAE,EACR,GAAI,QAAI,CAAC3O,MAAM,CAAChgY,MAAM,CACpB,MAAMy/X,GAAa,OAAQ,oCAAqC,IAAI,CAACpkQ,IAAI,EAG3E,IAAI9lB,EAAQ,IAAI,CAACm4R,MAAM,CAACiB,GAIxB,OAHKp5R,GACH,IAAI,CAAComG,UAAU,CAAC,6BAA+BgzL,EAAK,IAAK,IAAI,CAACzO,IAAI,IAE7D3qR,CACT,EAEAk5R,YACE,GAAI,QAAI,CAACzO,MAAM,CAAChgY,MAAM,CACpB,MAAMy/X,GAAa,OAAQ,oCAAqC,IAAI,CAACpkQ,IAAI,EAE3E,OAAO,IAAI,CAAC2kQ,MAAM,CAAC,EAAE,EAGvBE,KAAKyO,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,EACjB,OAAO,IAAI,CAACC,SAAS,CAAC,EAAGJ,EAAIC,EAAIC,EAAIC,EACvC,EAEAC,UAAUlsY,CAAC,CAAE8rY,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,EACzB,GAAI,IAAI,CAAC9O,MAAM,CAAChgY,MAAM,CAAG6C,EAAG,CAC1B,IAAI0yG,EAAQ,IAAI,CAACyqR,MAAM,CAACn9X,EAAE,CACtBojF,EAAIsvB,EAAM8lB,IAAI,CAClB,GAAIp1C,IAAM0oT,GAAM1oT,IAAM2oT,GAAM3oT,IAAM4oT,GAAM5oT,IAAM6oT,GACzC,CAACH,GAAM,CAACC,GAAM,CAACC,GAAM,CAACC,EACzB,OAAOv5R,CAEX,CACA,MAAO,EACT,EAEAm4R,OAAOiB,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,EACnB,IAAIv5R,EAAQ,IAAI,CAAC2qR,IAAI,CAACyO,EAAIC,EAAIC,EAAIC,SAClC,EAAIv5R,IACF,IAAI,CAACyqR,MAAM,CAACn9O,KAAK,GACVttC,EAGX,EAEA+4R,gBAAiB,CACf,KAAQ,CAACxuX,KAAM4hX,GAAI6B,cAAc,EACjC,QAAW,CAACzjX,KAAM4hX,GAAI8B,gBAAgB,CACxC,CACF,EAiMAO,GAAYplY,SAAS,CAAG,CACtB+mP,QAAQq8I,CAAG,EACT,IAUIiN,EAVAj7V,EAAO,IAAI,CACf,IAAI,CAACpY,KAAK,CAAG,CACXszW,OAAQ,EACR3gY,QAAS,CAAC,EACVirN,GAAI,CAAC21K,KAAM,EAAE,CAAE/5R,KAAM,EAAE,CAAEg6R,IAAK,CAAC,CAAC,EAChC7nX,OAAQ,CAAC4nX,KAAM,EAAE,CAAE/5R,KAAM,EAAE,CAAEg6R,IAAK,CAAC,CAAC,EACpC5J,OAAQ,EAAE,EAEZzD,GAAgCC,EAAKhuV,EAAK5+B,OAAO,EACjD,IAAIsoV,EAAQ,GAGZ,GADA,IAAI,CAACzlU,KAAK,CAAG,SACRg3W,EAAanL,GAAc9B,GAAO,CACrC,IAAI,CAACpmW,KAAK,CAACyzW,SAAS,CAAG,SACvB,IAAIzgX,EAAS,IAAI,CAACsgX,MAAM,GACxB,IAAI,CAACI,OAAO,CAACL,EAAYrgX,GACzB,IAAI,CAAC2gX,OAAO,CAAC3gX,GACb8uU,EAAQ,aAAe,IAAI,CAAC8xC,gBAAgB,CAAC,SAAU,QACzD,CACA,IAAI1M,EAAUY,GAAU1B,EAAI5sR,IAAI,CAChCphE,CAAAA,EAAK/b,KAAK,CAAG,SACb12B,EAAQuhY,EAAS,SAAS6I,CAAK,CAAE9rY,CAAG,EAClC,IAAI4vY,EAAQ,KAAO5vY,CACnBm0C,CAAAA,EAAKpY,KAAK,CAAC6zW,EAAM,CAAG,CAACN,KAAM,EAAE,CAAE/5R,KAAM,EAAE,CAAEg6R,IAAK,CAAC,CAAC,EAChDp7V,EAAKpY,KAAK,CAACyzW,SAAS,CAAGI,EACvB,IAAIC,EAAS17V,EAAKk7V,MAAM,GACxBl7V,EAAKs7V,OAAO,CAAC3D,EAAO+D,GACpB17V,EAAKu7V,OAAO,CAACG,GACb17V,EAAKpY,KAAK,CAAC4pW,MAAM,CAAC9gY,IAAI,CAAC,CAACulB,KAAMwlX,EAAOnN,OAAQqJ,EAAMrJ,MAAM,GACzDqJ,EAAMgE,OAAO,CAAG9vY,CAClB,GACA,IAAI,CAAC+7B,KAAK,CAACyzW,SAAS,CAAG,KACvB,IAAI,CAACp3W,KAAK,CAAG,OACb,IAAI,CAACq3W,OAAO,CAACtN,GAYb,IAAIxoK,EAAK,SAAc,UACnB,iBACA,YACA,OAXF,IAAM,IAAI,CAACo2K,GAAG,CAAG,IAAM,IAAI,CAACC,MAAM,CAAG,OACrC,IAAI,CAACC,YAAY,GACjB,UAAY,IAAI,CAACN,gBAAgB,CAAC,KAAM,WACxC9xC,EACA,IAAI,CAACqyC,QAAQ,GACb,cAQI,IAAI,CAAC36X,OAAO,CACZwqX,GACAiC,GACAC,IAEN,OADA,IAAI,CAAClmW,KAAK,CAAG,IAAI,CAAC3D,KAAK,CAAGr1B,KAAAA,EACnB42N,CACT,EAEAo2K,IAAK,MAELC,OAAQ,SAERE,WACE,IAAInhX,EAAS,EAAE,CACX42W,EAAS,IAAI,CAAC5pW,KAAK,CAAC4pW,MAAM,CAC1BxxV,EAAO,IAAI,CAUf,OATAzyC,EAAQikY,EAAQ,SAAS77U,CAAK,EAC5B/6B,EAAOlqB,IAAI,CAAC,OAASilD,EAAM1/B,IAAI,CAAG,IAAM+pB,EAAKw7V,gBAAgB,CAAC7lV,EAAM1/B,IAAI,CAAE,MACtE0/B,EAAM24U,MAAM,EACd1zW,EAAOlqB,IAAI,CAACilD,EAAM1/B,IAAI,CAAE,WAAawnC,KAAKi1E,SAAS,CAAC/8E,EAAM24U,MAAM,EAAI,IAExE,GACIkD,EAAOvlY,MAAM,EACf2uB,EAAOlqB,IAAI,CAAC,cAAgB8gY,EAAO7/X,GAAG,CAAC,SAAS7C,CAAC,EAAI,OAAOA,EAAEmnB,IAAI,GAAKq9D,IAAI,CAAC,KAAO,MAE9E14D,EAAO04D,IAAI,CAAC,GACrB,EAEAkoT,iBAAiBvlX,CAAI,CAAExe,CAAM,EAC3B,MAAO,YAAcA,EAAS,KAC1B,IAAI,CAACukY,UAAU,CAAC/lX,GAChB,IAAI,CAACmrF,IAAI,CAACnrF,GACV,IACN,EAEA6lX,eACE,IAAI1yR,EAAQ,EAAE,CACVppE,EAAO,IAAI,OAIf,CAHAzyC,EAAQ,IAAI,CAACq6B,KAAK,CAACrtB,OAAO,CAAE,SAASqC,CAAE,CAAE1O,CAAM,EAC7Ck7G,EAAM14G,IAAI,CAACkM,EAAK,YAAcojC,EAAKp2C,MAAM,CAACsE,GAAU,IACtD,GACIk7G,EAAMn9G,MAAM,EAAS,OAASm9G,EAAM91B,IAAI,CAAC,KAAO,IAC7C,EACT,EAEA0oT,WAAWjtT,CAAO,EAChB,OAAO,IAAI,CAACnnD,KAAK,CAACmnD,EAAQ,CAACosT,IAAI,CAAClvY,MAAM,CAAG,OAAS,IAAI,CAAC27B,KAAK,CAACmnD,EAAQ,CAACosT,IAAI,CAAC7nT,IAAI,CAAC,KAAO,IAAM,EAC/F,EAEA8tB,KAAKryB,CAAO,EACV,OAAO,IAAI,CAACnnD,KAAK,CAACmnD,EAAQ,CAACqyB,IAAI,CAAC9tB,IAAI,CAAC,GACvC,EAEAgoT,QAAQtN,CAAG,CAAE0N,CAAM,CAAEO,CAAM,CAAEC,CAAW,CAAE12U,CAAM,CAAE22U,CAAgB,EAGhE,IAFIj8R,EACAmR,EAEAr/G,EACAk0W,EACAsoB,EAHAxuV,EAAO,IAAI,CAKf,GADAk8V,EAAcA,GAAexjX,EACzB,CAACyjX,GAAoB75U,EAAU0rU,EAAI2N,OAAO,EAAG,CAC/CD,EAASA,GAAU,IAAI,CAACR,MAAM,GAC9B,IAAI,CAACkB,GAAG,CAAC,IACP,IAAI,CAACC,UAAU,CAACX,EAAQ,IAAI,CAACY,cAAc,CAAC,IAAKtO,EAAI2N,OAAO,GAC5D,IAAI,CAACY,WAAW,CAACvO,EAAK0N,EAAQO,EAAQC,EAAa12U,EAAQ,KAE7D,MACF,CACA,OAAQwoU,EAAIjiX,IAAI,EAChB,KAAK4hX,GAAIiB,OAAO,CACdrhY,EAAQygY,EAAI5sR,IAAI,CAAE,SAAS8kQ,CAAU,CAAEr+G,CAAG,EACxC7nN,EAAKs7V,OAAO,CAACp1B,EAAWA,UAAU,CAAEt3W,KAAAA,EAAWA,KAAAA,EAAW,SAASgjP,CAAI,EAAIvgI,EAAQugI,CAAM,GACrFiW,IAAQmmI,EAAI5sR,IAAI,CAACn1G,MAAM,CAAG,EAC5B+zC,EAAKypE,OAAO,GAAGrI,IAAI,CAAC1wG,IAAI,CAAC2gH,EAAO,KAEhCrxE,EAAKu7V,OAAO,CAAClqR,EAEjB,GACA,KACF,MAAKs8Q,GAAIkB,OAAO,CACd3oB,EAAa,IAAI,CAACt8W,MAAM,CAACokY,EAAI7iY,KAAK,EAClC,IAAI,CAACooB,MAAM,CAACmoX,EAAQx1B,GACpBg2B,EAAYR,GAAUx1B,GACtB,KACF,MAAKynB,GAAIc,eAAe,CACtB,IAAI,CAAC6M,OAAO,CAACtN,EAAIv1Q,QAAQ,CAAE7pH,KAAAA,EAAWA,KAAAA,EAAW,SAASgjP,CAAI,EAAIvgI,EAAQugI,CAAM,GAChFs0H,EAAa8nB,EAAIrmI,QAAQ,CAAG,IAAM,IAAI,CAACkmI,SAAS,CAACx8Q,EAAO,GAAK,IAC7D,IAAI,CAAC99F,MAAM,CAACmoX,EAAQx1B,GACpBg2B,EAAYh2B,GACZ,KACF,MAAKynB,GAAIe,gBAAgB,CACvB,IAAI,CAAC4M,OAAO,CAACtN,EAAI9tR,IAAI,CAAEtxG,KAAAA,EAAWA,KAAAA,EAAW,SAASgjP,CAAI,EAAI1xI,EAAO0xI,CAAM,GAC3E,IAAI,CAAC0pJ,OAAO,CAACtN,EAAI38Q,KAAK,CAAEziH,KAAAA,EAAWA,KAAAA,EAAW,SAASgjP,CAAI,EAAIvgI,EAAQugI,CAAM,GAE3Es0H,EADE8nB,MAAAA,EAAIrmI,QAAQ,CACD,IAAI,CAAC60I,IAAI,CAACt8R,EAAMmR,GACpB28Q,MAAAA,EAAIrmI,QAAQ,CACR,IAAI,CAACkmI,SAAS,CAAC3tR,EAAM,GAAK8tR,EAAIrmI,QAAQ,CAAG,IAAI,CAACkmI,SAAS,CAACx8Q,EAAO,GAE/D,IAAMnR,EAAO,IAAM8tR,EAAIrmI,QAAQ,CAAG,IAAMt2I,EAAQ,IAE/D,IAAI,CAAC99F,MAAM,CAACmoX,EAAQx1B,GACpBg2B,EAAYh2B,GACZ,KACF,MAAKynB,GAAIoB,iBAAiB,CACxB2M,EAASA,GAAU,IAAI,CAACR,MAAM,GAC9Bl7V,EAAKs7V,OAAO,CAACtN,EAAI9tR,IAAI,CAAEw7R,GACvB17V,EAAKo8V,GAAG,CAACpO,OAAAA,EAAIrmI,QAAQ,CAAY+zI,EAAS17V,EAAKy8V,GAAG,CAACf,GAAS17V,EAAKu8V,WAAW,CAACvO,EAAI38Q,KAAK,CAAEqqR,IACxFQ,EAAYR,GACZ,KACF,MAAK/N,GAAIqB,qBAAqB,CAC5B0M,EAASA,GAAU,IAAI,CAACR,MAAM,GAC9Bl7V,EAAKs7V,OAAO,CAACtN,EAAIpiY,IAAI,CAAE8vY,GACvB17V,EAAKo8V,GAAG,CAACV,EAAQ17V,EAAKu8V,WAAW,CAACvO,EAAIiB,SAAS,CAAEyM,GAAS17V,EAAKu8V,WAAW,CAACvO,EAAIkB,UAAU,CAAEwM,IAC3FQ,EAAYR,GACZ,KACF,MAAK/N,GAAIwB,UAAU,CACjBuM,EAASA,GAAU,IAAI,CAACR,MAAM,GAC1Be,IACFA,EAAO16N,OAAO,CAAGvhI,WAAAA,EAAK/b,KAAK,CAAgB,IAAM,IAAI,CAAC1Q,MAAM,CAAC,IAAI,CAAC2nX,MAAM,GAAI,IAAI,CAACwB,iBAAiB,CAAC,IAAK1O,EAAI/3W,IAAI,EAAI,QACpHgmX,EAAOzN,QAAQ,CAAG,GAClByN,EAAOhmX,IAAI,CAAG+3W,EAAI/3W,IAAI,EAExB+pB,EAAKo8V,GAAG,CAACp8V,WAAAA,EAAK/b,KAAK,EAAiB+b,EAAKy8V,GAAG,CAACz8V,EAAK08V,iBAAiB,CAAC,IAAK1O,EAAI/3W,IAAI,GAC/E,WACE+pB,EAAKo8V,GAAG,CAACp8V,WAAAA,EAAK/b,KAAK,EAAiB,IAAK,WACnCuhC,GAAUA,IAAAA,GACZxlB,EAAKo8V,GAAG,CACNp8V,EAAK28V,MAAM,CAAC38V,EAAK48V,iBAAiB,CAAC,IAAK5O,EAAI/3W,IAAI,GAChD+pB,EAAKq8V,UAAU,CAACr8V,EAAK48V,iBAAiB,CAAC,IAAK5O,EAAI/3W,IAAI,EAAG,OAE3D+pB,EAAKzsB,MAAM,CAACmoX,EAAQ17V,EAAK48V,iBAAiB,CAAC,IAAK5O,EAAI/3W,IAAI,EAC1D,EACF,EAAGylX,GAAU17V,EAAKq8V,UAAU,CAACX,EAAQ17V,EAAK48V,iBAAiB,CAAC,IAAK5O,EAAI/3W,IAAI,IAE3EimX,EAAYR,GACZ,KACF,MAAK/N,GAAIY,gBAAgB,CACvBruR,EAAO+7R,GAAWA,CAAAA,EAAO16N,OAAO,CAAG,IAAI,CAAC25N,MAAM,EAAC,GAAM,IAAI,CAACA,MAAM,GAChEQ,EAASA,GAAU,IAAI,CAACR,MAAM,GAC9Bl7V,EAAKs7V,OAAO,CAACtN,EAAIp0O,MAAM,CAAE15C,EAAMtxG,KAAAA,EAAW,WACxCoxC,EAAKo8V,GAAG,CAACp8V,EAAK68V,OAAO,CAAC38R,GAAO,WACvB8tR,EAAIQ,QAAQ,EACdn9Q,EAAQrxE,EAAKk7V,MAAM,GACnBl7V,EAAKs7V,OAAO,CAACtN,EAAIn8S,QAAQ,CAAEw/B,GAC3BrxE,EAAK4rV,cAAc,CAACv6Q,GAChB7rD,GAAUA,IAAAA,GACZxlB,EAAKo8V,GAAG,CAACp8V,EAAKy8V,GAAG,CAACz8V,EAAKs8V,cAAc,CAACp8R,EAAMmR,IAASrxE,EAAKq8V,UAAU,CAACr8V,EAAKs8V,cAAc,CAACp8R,EAAMmR,GAAQ,OAEzG60P,EAAalmU,EAAKs8V,cAAc,CAACp8R,EAAMmR,GACvCrxE,EAAKzsB,MAAM,CAACmoX,EAAQx1B,GAChB+1B,IACFA,EAAOzN,QAAQ,CAAG,GAClByN,EAAOhmX,IAAI,CAAGo7F,KAGZ7rD,GAAUA,IAAAA,GACZxlB,EAAKo8V,GAAG,CAACp8V,EAAK28V,MAAM,CAAC38V,EAAK48V,iBAAiB,CAAC18R,EAAM8tR,EAAIn8S,QAAQ,CAAC57D,IAAI,GAAI+pB,EAAKq8V,UAAU,CAACr8V,EAAK48V,iBAAiB,CAAC18R,EAAM8tR,EAAIn8S,QAAQ,CAAC57D,IAAI,EAAG,OAE1IiwV,EAAalmU,EAAK48V,iBAAiB,CAAC18R,EAAM8tR,EAAIn8S,QAAQ,CAAC57D,IAAI,EAC3D+pB,EAAKzsB,MAAM,CAACmoX,EAAQx1B,GAChB+1B,IACFA,EAAOzN,QAAQ,CAAG,GAClByN,EAAOhmX,IAAI,CAAG+3W,EAAIn8S,QAAQ,CAAC57D,IAAI,EAGrC,EAAG,WACD+pB,EAAKzsB,MAAM,CAACmoX,EAAQ,YACtB,GACAQ,EAAYR,EACd,EAAG,CAAC,CAACl2U,GACL,KACF,MAAKmoU,GAAIgB,cAAc,CACrB+M,EAASA,GAAU,IAAI,CAACR,MAAM,GAC1BlN,EAAI9/X,MAAM,EACZmjH,EAAQrxE,EAAK9xC,MAAM,CAAC8/X,EAAIoB,MAAM,CAACn5W,IAAI,EACnCjkB,EAAO,EAAE,CACTzE,EAAQygY,EAAI3lU,SAAS,CAAE,SAASupL,CAAI,EAClC,IAAIn5H,EAAWz4E,EAAKk7V,MAAM,GAC1Bl7V,EAAKs7V,OAAO,CAAC1pJ,EAAMn5H,GACnBzmH,EAAKtB,IAAI,CAAC+nH,EACZ,GACAytP,EAAa70P,EAAQ,IAAMr/G,EAAKshF,IAAI,CAAC,KAAO,IAC5CtzC,EAAKzsB,MAAM,CAACmoX,EAAQx1B,GACpBg2B,EAAYR,KAEZrqR,EAAQrxE,EAAKk7V,MAAM,GACnBh7R,EAAO,CAAC,EACRluG,EAAO,EAAE,CACTguC,EAAKs7V,OAAO,CAACtN,EAAIoB,MAAM,CAAE/9Q,EAAOnR,EAAM,WACpClgE,EAAKo8V,GAAG,CAACp8V,EAAK68V,OAAO,CAACxrR,GAAQ,WAC5B9jH,EAAQygY,EAAI3lU,SAAS,CAAE,SAASupL,CAAI,EAClC5xM,EAAKs7V,OAAO,CAAC1pJ,EAAMo8I,EAAI3pC,QAAQ,CAAGz1V,KAAAA,EAAYoxC,EAAKk7V,MAAM,GAAItsY,KAAAA,EAAW,SAAS6pH,CAAQ,EACvFzmH,EAAKtB,IAAI,CAAC+nH,EACZ,EACF,GAEEytP,EADEhmQ,EAAKjqF,IAAI,CACE+pB,EAAK88V,MAAM,CAAC58R,EAAKqhE,OAAO,CAAErhE,EAAKjqF,IAAI,CAAEiqF,EAAKsuR,QAAQ,EAAI,IAAMx8X,EAAKshF,IAAI,CAAC,KAAO,IAE7E+9B,EAAQ,IAAMr/G,EAAKshF,IAAI,CAAC,KAAO,IAE9CtzC,EAAKzsB,MAAM,CAACmoX,EAAQx1B,EACtB,EAAG,WACDlmU,EAAKzsB,MAAM,CAACmoX,EAAQ,YACtB,GACAQ,EAAYR,EACd,IAEF,KACF,MAAK/N,GAAI0B,oBAAoB,CAC3Bh+Q,EAAQ,IAAI,CAAC6pR,MAAM,GACnBh7R,EAAO,CAAC,EACR,IAAI,CAACo7R,OAAO,CAACtN,EAAI9tR,IAAI,CAAEtxG,KAAAA,EAAWsxG,EAAM,WACtClgE,EAAKo8V,GAAG,CAACp8V,EAAK68V,OAAO,CAAC38R,EAAKqhE,OAAO,EAAG,WACnCvhI,EAAKs7V,OAAO,CAACtN,EAAI38Q,KAAK,CAAEA,GACxB60P,EAAalmU,EAAK88V,MAAM,CAAC58R,EAAKqhE,OAAO,CAAErhE,EAAKjqF,IAAI,CAAEiqF,EAAKsuR,QAAQ,EAAIR,EAAIrmI,QAAQ,CAAGt2I,EAClFrxE,EAAKzsB,MAAM,CAACmoX,EAAQx1B,GACpBg2B,EAAYR,GAAUx1B,EACxB,EACF,EAAG,GACH,KACF,MAAKynB,GAAI2B,eAAe,CACtBt9X,EAAO,EAAE,CACTzE,EAAQygY,EAAIjiY,QAAQ,CAAE,SAAS6lP,CAAI,EACjC5xM,EAAKs7V,OAAO,CAAC1pJ,EAAMo8I,EAAI3pC,QAAQ,CAAGz1V,KAAAA,EAAYoxC,EAAKk7V,MAAM,GAAItsY,KAAAA,EAAW,SAAS6pH,CAAQ,EACvFzmH,EAAKtB,IAAI,CAAC+nH,EACZ,EACF,GACAytP,EAAa,IAAMl0W,EAAKshF,IAAI,CAAC,KAAO,IACpC,IAAI,CAAC//D,MAAM,CAACmoX,EAAQx1B,GACpBg2B,EAAYR,GAAUx1B,GACtB,KACF,MAAKynB,GAAI4B,gBAAgB,CACvBv9X,EAAO,EAAE,CACTw8X,EAAW,GACXjhY,EAAQygY,EAAI/jH,UAAU,CAAE,SAASp4L,CAAQ,EACnCA,EAAS28S,QAAQ,EACnBA,CAAAA,EAAW,EAAG,CAElB,GACIA,GACFkN,EAASA,GAAU,IAAI,CAACR,MAAM,GAC9B,IAAI,CAAC3nX,MAAM,CAACmoX,EAAQ,MACpBnuY,EAAQygY,EAAI/jH,UAAU,CAAE,SAASp4L,CAAQ,EACnCA,EAAS28S,QAAQ,EACnBtuR,EAAOlgE,EAAKk7V,MAAM,GAClBl7V,EAAKs7V,OAAO,CAACzpT,EAAShmF,GAAG,CAAEq0G,IAE3BA,EAAOruB,EAAShmF,GAAG,CAACkgB,IAAI,GAAK4hX,GAAIwB,UAAU,CAChCt9S,EAAShmF,GAAG,CAACoqB,IAAI,CAChB,GAAK47D,EAAShmF,GAAG,CAACV,KAAK,CAErCkmH,EAAQrxE,EAAKk7V,MAAM,GACnBl7V,EAAKs7V,OAAO,CAACzpT,EAAS1mF,KAAK,CAAEkmH,GAC7BrxE,EAAKzsB,MAAM,CAACysB,EAAK88V,MAAM,CAACpB,EAAQx7R,EAAMruB,EAAS28S,QAAQ,EAAGn9Q,EAC5D,KAEA9jH,EAAQygY,EAAI/jH,UAAU,CAAE,SAASp4L,CAAQ,EACvC7xC,EAAKs7V,OAAO,CAACzpT,EAAS1mF,KAAK,CAAE6iY,EAAI3pC,QAAQ,CAAGz1V,KAAAA,EAAYoxC,EAAKk7V,MAAM,GAAItsY,KAAAA,EAAW,SAASgjP,CAAI,EAC7F5/O,EAAKtB,IAAI,CAACsvC,EAAKp2C,MAAM,CACjBioF,EAAShmF,GAAG,CAACkgB,IAAI,GAAK4hX,GAAIwB,UAAU,CAAGt9S,EAAShmF,GAAG,CAACoqB,IAAI,CACrD,GAAK47D,EAAShmF,GAAG,CAACV,KAAK,EAC1B,IAAMymP,EACZ,EACF,GACAs0H,EAAa,IAAMl0W,EAAKshF,IAAI,CAAC,KAAO,IACpC,IAAI,CAAC//D,MAAM,CAACmoX,EAAQx1B,IAEtBg2B,EAAYR,GAAUx1B,GACtB,KACF,MAAKynB,GAAI6B,cAAc,CACrB,IAAI,CAACj8W,MAAM,CAACmoX,EAAQ,KACpBQ,EAAYR,GAAU,KACtB,KACF,MAAK/N,GAAI8B,gBAAgB,CACvB,IAAI,CAACl8W,MAAM,CAACmoX,EAAQ,KACpBQ,EAAYR,GAAU,KACtB,KACF,MAAK/N,GAAIoC,gBAAgB,CACvB,IAAI,CAACx8W,MAAM,CAACmoX,EAAQ,KACpBQ,EAAYR,GAAU,IAExB,CACF,EAEAgB,kBAAkB7uY,CAAO,CAAEgkF,CAAQ,EACjC,IAAIhmF,EAAMgC,EAAU,IAAMgkF,EACtBupT,EAAM,IAAI,CAAC3xR,OAAO,GAAG2xR,GAAG,CAI5B,OAHKA,EAAIphX,cAAc,CAACnuB,IACtBuvY,CAAAA,CAAG,CAACvvY,EAAI,CAAG,IAAI,CAACqvY,MAAM,CAAC,GAAOrtY,EAAU,MAAQ,IAAI,CAACjE,MAAM,CAACioF,GAAY,OAAShkF,EAAU,MAEtFutY,CAAG,CAACvvY,EAAI,EAGjB0nB,OAAO3W,CAAE,CAAEzR,CAAK,EACd,GAAKyR,EAEL,OADA,IAAI,CAAC6sG,OAAO,GAAGrI,IAAI,CAAC1wG,IAAI,CAACkM,EAAI,IAAKzR,EAAO,KAClCyR,CACT,EAEA1O,OAAO6rB,CAAU,EAIf,OAHK,IAAI,CAAC6N,KAAK,CAACrtB,OAAO,CAACyf,cAAc,CAACD,IACrC,KAAI,CAAC6N,KAAK,CAACrtB,OAAO,CAACwf,EAAW,CAAG,IAAI,CAACmhX,MAAM,CAAC,GAAI,EAE5C,IAAI,CAACtzW,KAAK,CAACrtB,OAAO,CAACwf,EAAW,EAGvC8zW,UAAUjxX,CAAE,CAAE+pS,CAAY,EACxB,MAAO,aAAe/pS,EAAK,IAAM,IAAI,CAAChT,MAAM,CAAC+8S,GAAgB,GAC/D,EAEA61F,KAAAA,CAAKt8R,EAAMmR,IACF,QAAUnR,EAAO,IAAMmR,EAAQ,IAGxCkqR,QAAQ3+X,CAAE,EACR,IAAI,CAAC6sG,OAAO,GAAGrI,IAAI,CAAC1wG,IAAI,CAAC,UAAWkM,EAAI,IAC1C,EAEAw/X,IAAIxwY,CAAI,CAAEqjY,CAAS,CAAEC,CAAU,EAC7B,GAAItjY,CAAS,IAATA,EACFqjY,QACK,CACL,IAAI7tR,EAAO,IAAI,CAACqI,OAAO,GAAGrI,IAAI,CAC9BA,EAAK1wG,IAAI,CAAC,MAAO9E,EAAM,MACvBqjY,IACA7tR,EAAK1wG,IAAI,CAAC,KACNw+X,IACF9tR,EAAK1wG,IAAI,CAAC,SACVw+X,IACA9tR,EAAK1wG,IAAI,CAAC,KAEd,CACF,EAEA+rY,IAAAA,GACS,KAAOv2B,EAAa,IAG7By2B,OAAAA,GACSz2B,EAAa,SAGtB22B,QAAAA,GACS32B,EAAa,SAGtB02B,kBAAkB18R,CAAI,CAAEmR,CAAK,QAG3B,6BAAoBzlH,IAAI,CAACylH,GAChBnR,EAAO,IAAMmR,EAEbnR,EAAQ,KAAOmR,EAAMjxG,OAAO,CAJb,kBAIiC,IAAI,CAAC28X,cAAc,EAAI,IAElF,EAEAT,eAAAA,CAAep8R,EAAMmR,IACZnR,EAAO,IAAMmR,EAAQ,IAG9ByrR,OAAO58R,CAAI,CAAEmR,CAAK,CAAEm9Q,CAAQ,SAC1B,EAAqB,IAAI,CAAC8N,cAAc,CAACp8R,EAAMmR,GACxC,IAAI,CAACurR,iBAAiB,CAAC18R,EAAMmR,EACtC,EAEAu6Q,eAAenmW,CAAI,EACjB,IAAI,CAAClS,MAAM,CAACkS,EAAM,kBAAoBA,EAAO,IAC/C,EAEA82W,YAAYvO,CAAG,CAAE0N,CAAM,CAAEO,CAAM,CAAEC,CAAW,CAAE12U,CAAM,CAAE22U,CAAgB,EACpE,IAAIn8V,EAAO,IAAI,CACf,OAAO,WACLA,EAAKs7V,OAAO,CAACtN,EAAK0N,EAAQO,EAAQC,EAAa12U,EAAQ22U,EACzD,CACF,EAEAE,WAAWz/X,CAAE,CAAEzR,CAAK,EAClB,IAAI60C,EAAO,IAAI,CACf,OAAO,WACLA,EAAKzsB,MAAM,CAAC3W,EAAIzR,EAClB,CACF,EAEA6xY,kBAAmB,iBAEnBD,eAAAA,GACS,MAAQ,CAAC,OAAS9uT,EAAEoiD,UAAU,CAAC,GAAG/1G,QAAQ,CAAC,GAAE,EAAGvsB,KAAK,CAAC,IAG/DnE,OAAOuB,CAAK,EACV,GAAIyyF,EAASzyF,GAAQ,MAAO,IAAOA,EAAMiV,OAAO,CAAC,IAAI,CAAC48X,iBAAiB,CAAE,IAAI,CAACD,cAAc,EAAI,IAChG,GAAIpmI,EAASxrQ,GAAQ,OAAOA,EAAMmvB,QAAQ,GAC1C,GAAInvB,CAAU,IAAVA,EAAgB,MAAO,OAC3B,GAAIA,CAAU,IAAVA,EAAiB,MAAO,QAC5B,GAAIA,OAAAA,EAAgB,MAAO,OAC3B,GAAI,KAAiB,IAAVA,EAAuB,MAAO,WAEzC,OAAMugY,GAAa,MAAO,aAC5B,EAEAwP,OAAOrkE,CAAI,CAAEjlS,CAAI,EACf,IAAIh1B,EAAK,IAAO,IAAI,CAACgrB,KAAK,CAACszW,MAAM,GAIjC,OAHKrkE,GACH,IAAI,CAACptN,OAAO,GAAG0xR,IAAI,CAACzqY,IAAI,CAACkM,EAAMg1B,CAAAA,EAAO,IAAMA,EAAO,KAE9Ch1B,CACT,EAEA6sG,UACE,OAAO,IAAI,CAAC7hF,KAAK,CAAC,IAAI,CAACA,KAAK,CAACyzW,SAAS,CAAC,CAE3C,EAOApL,GAAerlY,SAAS,CAAG,CACzB+mP,QAAQq8I,CAAG,EACT,IAEIiN,EACA1nX,EAKAi+W,EARAxxV,EAAO,IAAI,CACf+tV,GAAgCC,EAAKhuV,EAAK5+B,OAAO,EAG5C65X,CAAAA,EAAanL,GAAc9B,EAAG,GACjCz6W,CAAAA,EAAS,IAAI,CAAC+nX,OAAO,CAACL,EAAU,EAElC,IAAInM,EAAUY,GAAU1B,EAAI5sR,IAAI,EAE5B0tR,IACF0C,EAAS,EAAE,CACXjkY,EAAQuhY,EAAS,SAAS6I,CAAK,CAAE9rY,CAAG,EAClC,IAAI8pD,EAAQ3V,EAAKs7V,OAAO,CAAC3D,EACzBhiV,CAAAA,EAAM24U,MAAM,CAAGqJ,EAAMrJ,MAAM,CAC3BqJ,EAAMhiV,KAAK,CAAGA,EACd67U,EAAO9gY,IAAI,CAACilD,GACZgiV,EAAMgE,OAAO,CAAG9vY,CAClB,IAEF,IAAIquX,EAAc,EAAE,CACpB3sX,EAAQygY,EAAI5sR,IAAI,CAAE,SAAS8kQ,CAAU,EACnCgU,EAAYxpX,IAAI,CAACsvC,EAAKs7V,OAAO,CAACp1B,EAAWA,UAAU,EACrD,GACA,IAAI1gJ,EAAKwoK,IAAAA,EAAI5sR,IAAI,CAACn1G,MAAM,CAASysB,EACxBs1W,IAAAA,EAAI5sR,IAAI,CAACn1G,MAAM,CAASiuX,CAAW,CAAC,EAAE,CACtC,SAASv5W,CAAK,CAAEqrV,CAAM,EACpB,IAAI/+E,EAIJ,OAHA1/Q,EAAQ2sX,EAAa,SAASsL,CAAG,EAC/Bv4G,EAAYu4G,EAAI7kX,EAAOqrV,EACzB,GACO/+E,CACT,EAST,OARI15P,GACFiyM,CAAAA,EAAGjyM,MAAM,CAAG,SAAS5S,CAAK,CAAExV,CAAK,CAAE6gW,CAAM,EACvC,OAAOz4U,EAAO5S,EAAOqrV,EAAQ7gW,EAC/B,GAEEqmY,GACFhsK,CAAAA,EAAGgsK,MAAM,CAAGA,CAAK,EAEZhsK,CACT,EAEA81K,QAAQtN,CAAG,CAAEzsN,CAAO,CAAE/7G,CAAM,EAG1B,IAFI06C,EACAmR,EAEAr/G,EADAguC,EAAO,IAAI,CAEf,GAAIguV,EAAIr4U,KAAK,CACX,OAAO,IAAI,CAAC67U,MAAM,CAACxD,EAAIr4U,KAAK,CAAEq4U,EAAI2N,OAAO,EAE3C,OAAQ3N,EAAIjiX,IAAI,EAChB,KAAK4hX,GAAIkB,OAAO,CACd,OAAO,IAAI,CAAC1jY,KAAK,CAAC6iY,EAAI7iY,KAAK,CAAEo2K,EAC/B,MAAKosN,GAAIc,eAAe,CAEtB,OADAp9Q,EAAQ,IAAI,CAACiqR,OAAO,CAACtN,EAAIv1Q,QAAQ,EAC1B,IAAI,CAAC,QAAUu1Q,EAAIrmI,QAAQ,CAAC,CAACt2I,EAAOkwD,EAC7C,MAAKosN,GAAIe,gBAAgB,CAIzB,KAAKf,GAAIoB,iBAAiB,CADxB,OAFA7uR,EAAO,IAAI,CAACo7R,OAAO,CAACtN,EAAI9tR,IAAI,EAC5BmR,EAAQ,IAAI,CAACiqR,OAAO,CAACtN,EAAI38Q,KAAK,EACvB,IAAI,CAAC,SAAW28Q,EAAIrmI,QAAQ,CAAC,CAACznJ,EAAMmR,EAAOkwD,EAKpD,MAAKosN,GAAIqB,qBAAqB,CAC5B,OAAO,IAAI,CAAC,YAAY,CACtB,IAAI,CAACsM,OAAO,CAACtN,EAAIpiY,IAAI,EACrB,IAAI,CAAC0vY,OAAO,CAACtN,EAAIiB,SAAS,EAC1B,IAAI,CAACqM,OAAO,CAACtN,EAAIkB,UAAU,EAC3B3tN,EAEJ,MAAKosN,GAAIwB,UAAU,CACjB,OAAOnvV,EAAK+tE,UAAU,CAACigR,EAAI/3W,IAAI,CAAEsrJ,EAAS/7G,EAC5C,MAAKmoU,GAAIY,gBAAgB,CAMvB,OALAruR,EAAO,IAAI,CAACo7R,OAAO,CAACtN,EAAIp0O,MAAM,CAAE,GAAO,CAAC,CAACp0F,GACpCwoU,EAAIQ,QAAQ,EACfn9Q,CAAAA,EAAQ28Q,EAAIn8S,QAAQ,CAAC57D,IAAI,EAEvB+3W,EAAIQ,QAAQ,EAAEn9Q,CAAAA,EAAQ,IAAI,CAACiqR,OAAO,CAACtN,EAAIn8S,QAAQ,GAC5Cm8S,EAAIQ,QAAQ,CACjB,IAAI,CAAC8N,cAAc,CAACp8R,EAAMmR,EAAOkwD,EAAS/7G,GAC1C,IAAI,CAACo3U,iBAAiB,CAAC18R,EAAMmR,EAAOkwD,EAAS/7G,EACjD,MAAKmoU,GAAIgB,cAAc,CAOrB,OANA38X,EAAO,EAAE,CACTzE,EAAQygY,EAAI3lU,SAAS,CAAE,SAASupL,CAAI,EAClC5/O,EAAKtB,IAAI,CAACsvC,EAAKs7V,OAAO,CAAC1pJ,GACzB,GACIo8I,EAAI9/X,MAAM,EAAEmjH,CAAAA,EAAQ,IAAI,CAACjwG,OAAO,CAAC4sX,EAAIoB,MAAM,CAACn5W,IAAI,GAC/C+3W,EAAI9/X,MAAM,EAAEmjH,CAAAA,EAAQ,IAAI,CAACiqR,OAAO,CAACtN,EAAIoB,MAAM,CAAE,GAAI,EAC/CpB,EAAI9/X,MAAM,CACf,SAASyS,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAEpC,IAAK,IADDl/X,EAAS,EAAE,CACNxD,EAAI,EAAGA,EAAIkD,EAAK/F,MAAM,CAAE,EAAE6C,EACjCwD,EAAO5B,IAAI,CAACsB,CAAI,CAAClD,EAAE,CAAC6R,EAAOqrV,EAAQz4U,EAAQi+W,IAF7C,IAIIrmY,EAAQkmH,KAAS/+G,GACrB,OAAOivK,EAAU,CAACA,QAAS3yK,KAAAA,EAAWqnB,KAAMrnB,KAAAA,EAAWzD,MAAOA,CAAK,EAAIA,CACzE,EACA,SAASwV,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EACpC,IACIrmY,EADA8xY,EAAM5rR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAEvC,GAAIyL,MAAAA,EAAI9xY,KAAK,CAAU,CAErB,IAAK,IADDmH,EAAS,EAAE,CACNxD,EAAI,EAAGA,EAAIkD,EAAK/F,MAAM,CAAE,EAAE6C,EACjCwD,EAAO5B,IAAI,CAACsB,CAAI,CAAClD,EAAE,CAAC6R,EAAOqrV,EAAQz4U,EAAQi+W,IAE7CrmY,EAAQ8xY,EAAI9xY,KAAK,CAACi9D,KAAK,CAAC60U,EAAI17N,OAAO,CAAEjvK,EACvC,CACA,OAAOivK,EAAU,CAACp2K,MAAOA,CAAK,EAAIA,CACpC,CACJ,MAAKwiY,GAAI0B,oBAAoB,CAG3B,OAFAnvR,EAAO,IAAI,CAACo7R,OAAO,CAACtN,EAAI9tR,IAAI,CAAE,GAAM,GACpCmR,EAAQ,IAAI,CAACiqR,OAAO,CAACtN,EAAI38Q,KAAK,EACvB,SAAS1wG,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI0L,EAAMh9R,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,GAClCyL,EAAM5rR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAEvC,OADA0L,EAAI37N,OAAO,CAAC27N,EAAIjnX,IAAI,CAAC,CAAGgnX,EACjB17N,EAAU,CAACp2K,MAAO8xY,CAAG,EAAIA,CAClC,CACF,MAAKtP,GAAI2B,eAAe,CAKtB,OAJAt9X,EAAO,EAAE,CACTzE,EAAQygY,EAAIjiY,QAAQ,CAAE,SAAS6lP,CAAI,EACjC5/O,EAAKtB,IAAI,CAACsvC,EAAKs7V,OAAO,CAAC1pJ,GACzB,GACO,SAASjxO,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAE3C,IAAK,IADDrmY,EAAQ,EAAE,CACL2D,EAAI,EAAGA,EAAIkD,EAAK/F,MAAM,CAAE,EAAE6C,EACjC3D,EAAMuF,IAAI,CAACsB,CAAI,CAAClD,EAAE,CAAC6R,EAAOqrV,EAAQz4U,EAAQi+W,IAE5C,OAAOjwN,EAAU,CAACp2K,MAAOA,CAAK,EAAIA,CACpC,CACF,MAAKwiY,GAAI4B,gBAAgB,CAiBvB,OAhBAv9X,EAAO,EAAE,CACTzE,EAAQygY,EAAI/jH,UAAU,CAAE,SAASp4L,CAAQ,EACnCA,EAAS28S,QAAQ,CACnBx8X,EAAKtB,IAAI,CAAC,CAAC7E,IAAKm0C,EAAKs7V,OAAO,CAACzpT,EAAShmF,GAAG,EAC9B2iY,SAAU,GACVrjY,MAAO60C,EAAKs7V,OAAO,CAACzpT,EAAS1mF,KAAK,CAC7C,GAEA6G,EAAKtB,IAAI,CAAC,CAAC7E,IAAKgmF,EAAShmF,GAAG,CAACkgB,IAAI,GAAK4hX,GAAIwB,UAAU,CACpCt9S,EAAShmF,GAAG,CAACoqB,IAAI,CAChB,GAAK47D,EAAShmF,GAAG,CAACV,KAAK,CAC7BqjY,SAAU,GACVrjY,MAAO60C,EAAKs7V,OAAO,CAACzpT,EAAS1mF,KAAK,CAC7C,EAEJ,GACO,SAASwV,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAE3C,IAAK,IADDrmY,EAAQ,CAAC,EACJ2D,EAAI,EAAGA,EAAIkD,EAAK/F,MAAM,CAAE,EAAE6C,EAC7BkD,CAAI,CAAClD,EAAE,CAAC0/X,QAAQ,CAClBrjY,CAAK,CAAC6G,CAAI,CAAClD,EAAE,CAACjD,GAAG,CAAC8U,EAAOqrV,EAAQz4U,EAAQi+W,GAAQ,CAAGx/X,CAAI,CAAClD,EAAE,CAAC3D,KAAK,CAACwV,EAAOqrV,EAAQz4U,EAAQi+W,GAEzFrmY,CAAK,CAAC6G,CAAI,CAAClD,EAAE,CAACjD,GAAG,CAAC,CAAGmG,CAAI,CAAClD,EAAE,CAAC3D,KAAK,CAACwV,EAAOqrV,EAAQz4U,EAAQi+W,GAG9D,OAAOjwN,EAAU,CAACp2K,MAAOA,CAAK,EAAIA,CACpC,CACF,MAAKwiY,GAAI6B,cAAc,CACrB,OAAO,SAAS7uX,CAAK,EACnB,OAAO4gK,EAAU,CAACp2K,MAAOwV,CAAK,EAAIA,CACpC,CACF,MAAKgtX,GAAI8B,gBAAgB,CACvB,OAAO,SAAS9uX,CAAK,CAAEqrV,CAAM,EAC3B,OAAOzqL,EAAU,CAACp2K,MAAO6gW,CAAM,EAAIA,CACrC,CACF,MAAK2hC,GAAIoC,gBAAgB,CACvB,OAAO,SAASpvX,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,EACnC,OAAOguJ,EAAU,CAACp2K,MAAOooB,CAAM,EAAIA,CACrC,CACF,CACF,EAEA,SAAU,SAASklG,CAAQ,CAAE8oD,CAAO,EAClC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAMj6O,EAAS93G,EAAOqrV,EAAQz4U,EAAQi+W,GAM1C,OAJE9+B,EADEpwS,EAAUowS,GACN,CAACA,EAED,EAEDnxL,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,SAAU,SAASj6O,CAAQ,CAAE8oD,CAAO,EAClC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAMj6O,EAAS93G,EAAOqrV,EAAQz4U,EAAQi+W,GAM1C,OAJE9+B,EADEpwS,EAAUowS,GACN,CAACA,EAED,GAEDnxL,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,SAAU,SAASj6O,CAAQ,CAAE8oD,CAAO,EAClC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAM,CAACj6O,EAAS93G,EAAOqrV,EAAQz4U,EAAQi+W,GAC3C,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,UAAW,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACtC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAG3C,IAAI9+B,EAAMo7B,GAFA5tR,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,GAC5BngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,IAEvC,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,UAAW,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACtC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI0L,EAAMh9R,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,GAClCyL,EAAM5rR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GACnC9+B,EAAM,CAACpwS,EAAU46U,GAAOA,EAAM,GAAM56U,CAAAA,EAAU26U,GAAOA,EAAM,GAC/D,OAAO17N,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,UAAW,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACtC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAMxyP,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,GAAUngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAC7E,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,UAAW,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACtC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAMxyP,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,GAAUngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAC7E,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,UAAW,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACtC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAMxyP,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,GAAUngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAC7E,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,YAAa,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACxC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAMxyP,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,KAAYngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAC/E,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,YAAa,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACxC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAMxyP,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,KAAYngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAC/E,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,WAAY,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACvC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAE3C,IAAI9+B,EAAMxyP,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,IAAWngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAC9E,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,WAAY,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACvC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAE3C,IAAI9+B,EAAMxyP,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,IAAWngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAC9E,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,UAAW,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACtC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAMxyP,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,GAAUngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAC7E,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,UAAW,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACtC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAMxyP,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,GAAUngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAC7E,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,WAAY,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACvC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAMxyP,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,IAAWngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAC9E,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,WAAY,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACvC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAMxyP,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,IAAWngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAC9E,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,WAAY,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACvC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAMxyP,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,IAAWngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAC9E,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,WAAY,SAASxyP,CAAI,CAAEmR,CAAK,CAAEkwD,CAAO,EACvC,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAMxyP,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,IAAWngR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,GAC9E,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACA,YAAa,SAAS9mW,CAAI,CAAEqjY,CAAS,CAAEC,CAAU,CAAE3tN,CAAO,EACxD,OAAO,SAAS5gK,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI9+B,EAAM9mW,EAAK+U,EAAOqrV,EAAQz4U,EAAQi+W,GAAUvC,EAAUtuX,EAAOqrV,EAAQz4U,EAAQi+W,GAAUtC,EAAWvuX,EAAOqrV,EAAQz4U,EAAQi+W,GAC7H,OAAOjwN,EAAU,CAACp2K,MAAOunW,CAAG,EAAIA,CAClC,CACF,EACAvnW,MAAAA,CAAMA,EAAOo2K,IACJ,WAAa,OAAOA,EAAU,CAACA,QAAS3yK,KAAAA,EAAWqnB,KAAMrnB,KAAAA,EAAWzD,MAAOA,CAAK,EAAIA,CAAO,EAEpG4iH,WAAAA,CAAW93F,EAAMsrJ,EAAS/7G,IACjB,SAAS7kD,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAIhJ,EAAOx8B,GAAW/1U,KAAQ+1U,EAAUA,EAASrrV,EAC7C6kD,GAAUA,IAAAA,GAAgBgjU,GAAQA,MAAAA,CAAI,CAACvyW,EAAK,EAC9CuyW,CAAAA,CAAI,CAACvyW,EAAK,CAAG,CAAC,GAEhB,IAAI9qB,EAAQq9X,EAAOA,CAAI,CAACvyW,EAAK,CAAGrnB,KAAAA,SAChC,EACS,CAAC2yK,QAASinN,EAAMvyW,KAAMA,EAAM9qB,MAAOA,CAAK,EAExCA,CAEX,EAEFmxY,eAAAA,CAAep8R,EAAMmR,EAAOkwD,EAAS/7G,IAC5B,SAAS7kD,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IACIyL,EACA9xY,EAFA+xY,EAAMh9R,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,SAatC,CAVW,MAAP0L,IAEFD,EAAMrR,GADNqR,EAAM5rR,EAAM1wG,EAAOqrV,EAAQz4U,EAAQi+W,IAE/BhsU,GAAUA,IAAAA,GACR03U,GAAO,CAAEA,CAAG,CAACD,EAAI,EACnBC,CAAAA,CAAG,CAACD,EAAI,CAAG,CAAC,GAGhB9xY,EAAQ+xY,CAAG,CAACD,EAAI,EAEd17N,GACK,CAACA,QAAS27N,EAAKjnX,KAAMgnX,EAAK9xY,MAAOA,CAAK,EAEtCA,CAEX,EAEFyxY,kBAAAA,CAAkB18R,EAAMmR,EAAOkwD,EAAS/7G,IAC/B,SAAS7kD,CAAK,CAAEqrV,CAAM,CAAEz4U,CAAM,CAAEi+W,CAAM,EAC3C,IAAI0L,EAAMh9R,EAAKv/F,EAAOqrV,EAAQz4U,EAAQi+W,GAClChsU,GAAUA,IAAAA,GACR03U,GAAOA,MAAAA,CAAG,CAAC7rR,EAAM,EACnB6rR,CAAAA,CAAG,CAAC7rR,EAAM,CAAG,CAAC,GAGlB,IAAIlmH,EAAQ+xY,MAAAA,EAAcA,CAAG,CAAC7rR,EAAM,CAAGziH,KAAAA,SACvC,EACS,CAAC2yK,QAAS27N,EAAKjnX,KAAMo7F,EAAOlmH,MAAOA,CAAK,EAExCA,CAEX,EAEFqmY,OAAAA,CAAO77U,EAAOgmV,IACL,SAASh7X,CAAK,CAAExV,CAAK,CAAE6gW,CAAM,CAAEwlC,CAAM,SAC1C,EAAmBA,CAAM,CAACmK,EAAQ,CAC3BhmV,EAAMh1C,EAAOxV,EAAO6gW,EAC7B,CAEJ,EAWAkkC,GAAOtlY,SAAS,CAAG,CACjByE,YAAa6gY,GAEbxyU,MAAM4pE,CAAI,EACR,IAt2Be0mQ,EAs2BXA,EAAM,IAAI,CAACiD,MAAM,CAAC3pQ,GAClBk+F,EAAK,IAAI,CAAC2qK,WAAW,CAACx+I,OAAO,CAACq8I,EAAIA,GAAG,EAIzC,OAHAxoK,EAAG02J,OAAO,CAv2BL8R,IAAAA,CADUA,EAw2BQA,EAAIA,GAAG,EAv2BrB5sR,IAAI,CAACn1G,MAAM,EAClB+hY,IAAAA,EAAI5sR,IAAI,CAACn1G,MAAM,EACf+hY,CAAAA,EAAI5sR,IAAI,CAAC,EAAE,CAAC8kQ,UAAU,CAACn6V,IAAI,GAAK4hX,GAAIkB,OAAO,EAC3Cb,EAAI5sR,IAAI,CAAC,EAAE,CAAC8kQ,UAAU,CAACn6V,IAAI,GAAK4hX,GAAI2B,eAAe,EACnDtB,EAAI5sR,IAAI,CAAC,EAAE,CAAC8kQ,UAAU,CAACn6V,IAAI,GAAK4hX,GAAI4B,gBAAgB,EAo2BtD/pK,EAAG6+H,QAAQ,CAh2BN2pC,EAg2BwBA,GAAG,CAh2BvB3pC,QAAQ,CAi2BjB7+H,EAAG6rK,OAAO,CAAGrD,EAAIqD,OAAO,CACjB7rK,CACT,EAEAyrK,OAAOzL,CAAG,EACR,IAAI6L,EAAU,GAOd,MAJsB,MAAlB7L,CAFJA,EAAMA,EAAI7sU,IAAI,EAAC,EAEPqiC,MAAM,CAAC,IAAcwqS,MAAAA,EAAIxqS,MAAM,CAAC,KACtCq2S,EAAU,GACV7L,EAAMA,EAAI77V,SAAS,CAAC,IAEf,CACLqkW,IAAK,IAAI,CAACA,GAAG,CAACA,GAAG,CAACxI,GAClB6L,QAASA,CACX,CACF,CACF,EAyoFA,IAAI8L,GAAa/qC,EAAO,QAEpBgrC,GAAe,CAEjB1jB,KAAM,OAGNh8D,IAAK,MAIL7zL,IAAK,MAIL8vP,aAAc,cAGd0jB,GAAI,IACN,EAIIC,GAA8B,YAElC,SAASC,GAAatnX,CAAI,EACxB,OAAOA,EACJ7V,OAAO,CAACk9X,GAA6B/iC,GAC1C,CA8BA,SAASijC,GAAeC,CAAQ,EAC9B,IAAIC,EAAmB,EAAE,CAMzB,OALIp7U,EAAUm7U,IACZlwY,EAAQkwY,EAAU,SAASt7F,CAAO,EAChCu7F,EAAiBhtY,IAAI,CAACitY,SAhCLx7F,CAAO,EAC5B,GAAIA,SAAAA,EACF,OAAOA,EACF,GAAIvkN,EAASukN,GAAU,CAK5B,GAAIA,EAAQl1R,QAAQ,CAAC,OACnB,MAAMkwX,GAAW,SACb,uDAAwDh7F,GAK9D,OAAO,OAAW,IAHlBA,CAAAA,EAAU0yD,GAAgB1yD,GACZ/hS,OAAO,CAAC,YAAa,MACrBA,OAAO,CAAC,QAAS,eACG,IACpC,CAAO,GAAI4zV,EAAS7xD,GAIlB,OAAO,OAAW,IAAMA,EAAQp0J,MAAM,CAAG,IAEzC,OAAMovP,GAAW,WACb,iEAER,EAO0Ch7F,GACtC,GAEKu7F,CACT,CA6FA,SAASE,KACP,IAAI,CAACR,YAAY,CAAGA,GAGpB,IAAIvsO,EAAuB,CAAC,OAAO,CAE/BgtO,EAAuB,EAAE,CA0B7B,IAAI,CAAChtO,oBAAoB,CAAG,SAAS1lK,CAAK,EAIxC,OAHIk9D,UAAUp8D,MAAM,EAClB4kK,CAAAA,EAAuB2sO,GAAeryY,EAAK,EAEtC0lK,CACT,EA2BA,IAAI,CAACgtO,oBAAoB,CAAG,SAAS1yY,CAAK,EAIxC,OAHIk9D,UAAUp8D,MAAM,EAClB4xY,CAAAA,EAAuBL,GAAeryY,EAAK,EAEtC0yY,CACT,EAEA,IAAI,CAACnmY,IAAI,CAAG,CAAC,YAAa,SAASi6G,CAAS,EAC1C,IAAImsR,EAAgB,SAAuBrrW,CAAI,EAC7C,MAAM0qW,GAAW,SAAU,uDAC7B,EAOA,SAASY,EAAS57F,CAAO,CAAE2+E,CAAS,QAClC,SAAI3+E,EAi3CD4+E,GAh3CsBD,EAg3CQJ,IA72CxB,CAAC,CAACv+E,EAAQl7B,IAAI,CAAC65G,EAAUnrV,IAAI,CAExC,CA0BA,SAASqoW,EAAmBlhI,CAAI,EAC9B,IAAImhI,EAAa,SAAgCC,CAAY,EAC3D,IAAI,CAACC,oBAAoB,CAAG,WAC1B,OAAOD,CACT,CACF,EAUA,OATIphI,GACFmhI,CAAAA,EAAWrzY,SAAS,CAAG,IAAIkyQ,CAAG,EAEhCmhI,EAAWrzY,SAAS,CAAC4hW,OAAO,CAAG,WAC7B,OAAO,IAAI,CAAC2xC,oBAAoB,EAClC,EACAF,EAAWrzY,SAAS,CAAC0vB,QAAQ,CAAG,WAC9B,OAAO,IAAI,CAAC6jX,oBAAoB,GAAG7jX,QAAQ,EAC7C,EACO2jX,CACT,CAtDItsR,EAAU5zD,GAAG,CAAC,cAChB+/U,CAAAA,EAAgBnsR,EAAU35G,GAAG,CAAC,cAuDhC,IAAIomY,EAAyBJ,IACzBK,EAAS,CAAC,SAEdA,CAAM,CAACjB,GAAa1jB,IAAI,CAAC,CAAGskB,EAAmBI,GAC/CC,CAAM,CAACjB,GAAa1/E,GAAG,CAAC,CAAGsgF,EAAmBI,GAC9CC,CAAM,CAACjB,GAAavzQ,GAAG,CAAC,CAAGm0Q,EAAmBI,GAC9CC,CAAM,CAACjB,GAAaC,EAAE,CAAC,CAAGW,EAAmBI,GAC7CC,CAAM,CAACjB,GAAazjB,YAAY,CAAC,CAAGqkB,EAAmBK,CAAM,CAACjB,GAAavzQ,GAAG,CAAC,EA4HxE,CAAEy0Q,QAlGT,SAAiBvyX,CAAI,CAAEmyX,CAAY,EACjC,IAAIK,EAAeF,EAAOrkX,cAAc,CAACjO,GAAQsyX,CAAM,CAACtyX,EAAK,CAAG,KAChE,GAAI,CAACwyX,EACH,MAAMpB,GAAW,WACb,0EACApxX,EAAMmyX,GAEZ,GAAIA,OAAAA,GAAyB5zC,EAAY4zC,IAAiBA,KAAAA,EACxD,OAAOA,EAIT,GAAI,iBAAOA,EACT,MAAMf,GAAW,QACb,sFACApxX,GAEN,OAAO,IAAIwyX,EAAYL,EACzB,EAiFSnY,WAhCT,SAAoBh6W,CAAI,CAAEyyX,CAAY,EACpC,GAAIA,OAAAA,GAAyBl0C,EAAYk0C,IAAiBA,KAAAA,EACxD,OAAOA,EAET,IAAInvY,EAAegvY,EAAOrkX,cAAc,CAACjO,GAAQsyX,CAAM,CAACtyX,EAAK,CAAG,KAGhE,GAAI1c,GAAemvY,aAAwBnvY,EACzC,OAAOmvY,EAAaL,oBAAoB,GAM1C,GAAIpyX,IAASqxX,GAAazjB,YAAY,CAAE,CAEtC,GAAI8kB,SA9J8BviY,CAAG,EACvC,IACIpN,EACAy7D,EAFAu2T,EAAYF,GAAW1kX,EAAIoe,QAAQ,IAGnCokX,EAAU,GAEd,IAAK5vY,EAAI,EAAGy7D,EAAIsmG,EAAqB5kK,MAAM,CAAE6C,EAAIy7D,EAAGz7D,IAClD,GAAIivY,EAASltO,CAAoB,CAAC/hK,EAAE,CAAEgyX,GAAY,CAChD4d,EAAU,GACV,KACF,CAEF,GAAIA,EAEF,KAAK5vY,EAAI,EAAGy7D,EAAIszU,EAAqB5xY,MAAM,CAAE6C,EAAIy7D,EAAGz7D,IAClD,GAAIivY,EAASF,CAAoB,CAAC/uY,EAAE,CAAEgyX,GAAY,CAChD4d,EAAU,GACV,KACF,CACF,CAEF,OAAOA,CACT,EAwIqCF,GAC/B,OAAOA,CAEP,OAAMrB,GAAW,WACb,kFACAqB,EAAalkX,QAAQ,GAE7B,CAAO,GAAIvO,IAASqxX,GAAa1jB,IAAI,CAEnC,OAAOokB,EAAcU,EAGvB,OAAMrB,GAAW,SAAU,uDAC7B,EAIS3wC,QA9DT,SAAiBgyC,CAAY,SAC3B,aAA4BJ,EACnBI,EAAaL,oBAAoB,GAEjCK,CAEX,CAwD0B,CAC5B,EAAE,CA8SJ,SAASG,KACP,IAAI51O,EAAU,EAad,KAAI,CAACA,OAAO,CAAG,SAAS59J,CAAK,EAI3B,OAHIk9D,UAAUp8D,MAAM,EAClB88J,CAAAA,EAAU,CAAC,CAAC59J,CAAI,EAEX49J,CACT,EAiDA,IAAI,CAACrxJ,IAAI,CAAG,CAAC,SAAU,eAAgB,SACzBg6O,CAAM,CAAIktJ,CAAY,EAClC,IAAIC,EAAMx0C,GAAY+yC,GAatByB,CAAAA,EAAIz+W,SAAS,CAAG,WACd,OAAO2oI,CACT,EACA81O,EAAIP,OAAO,CAAGM,EAAaN,OAAO,CAClCO,EAAI9Y,UAAU,CAAG6Y,EAAa7Y,UAAU,CACxC8Y,EAAIryC,OAAO,CAAGoyC,EAAapyC,OAAO,CAE7BzjM,IACH81O,EAAIP,OAAO,CAAGO,EAAI9Y,UAAU,CAAG,SAASh6W,CAAI,CAAE5gB,CAAK,EAAI,OAAOA,CAAO,EACrE0zY,EAAIryC,OAAO,CAAG6H,GAsBhBwqC,EAAIC,OAAO,CAAG,SAAoB/yX,CAAI,CAAE6lO,CAAI,EAC1C,IAAI8pH,EAAShqH,EAAOE,UACpB,EAAWsqI,OAAO,EAAIxgB,EAAOrX,QAAQ,CAC5BqX,EAEAhqH,EAAOE,EAAM,SAASzmP,CAAK,EAChC,OAAO0zY,EAAI9Y,UAAU,CAACh6W,EAAM5gB,EAC9B,EAEJ,EA+PA,IAAIuyD,EAAQmhV,EAAIC,OAAO,CAEnB/Y,EAAa8Y,EAAI9Y,UAAU,CAC3BuY,EAAUO,EAAIP,OAAO,CAezB,OAbA/wY,EAAQ6vY,GAAc,SAAS2B,CAAS,CAAE9oX,CAAI,EAC5C,IAAI+oX,EAAQlxC,EAAU73U,EACtB4oX,CAAAA,CAAG,CAACtB,GAAa,YAAcyB,GAAO,CAAG,SAASptJ,CAAI,EACpD,OAAOl0L,EAAMqhV,EAAWntJ,EAC1B,EACAitJ,CAAG,CAACtB,GAAa,eAAiByB,GAAO,CAAG,SAAS7zY,CAAK,EACxD,OAAO46X,EAAWgZ,EAAW5zY,EAC/B,EACA0zY,CAAG,CAACtB,GAAa,YAAcyB,GAAO,CAAG,SAAS7zY,CAAK,EACrD,OAAOmzY,EAAQS,EAAW5zY,EAC5B,CACF,GAEO0zY,CACT,EAAE,CAqBJ,SAASI,KACP,IAAI,CAACvnY,IAAI,CAAG,CAAC,UAAW,YAAa,SAAS6L,CAAO,CAAEw2L,CAAS,EAC9D,IAAImlM,EAAe,CAAC,EAgBhBC,EAAsB,CALtB,EAHG57X,CAAAA,EAAQ67X,EAAE,EAAI77X,EAAQ67X,EAAE,CAACl/H,OAAO,GAInC38P,EAAQgvP,MAAM,EACbhvP,CAAAA,EAAQgvP,MAAM,CAAC5tF,GAAG,EAAIphK,EAAQgvP,MAAM,CAAC5tF,GAAG,CAAC06N,OAAO,EAC7C,CAAC97X,EAAQgvP,MAAM,CAAC5tF,GAAG,EAAIphK,EAAQgvP,MAAM,CAAC8sI,OAAO,EAAI97X,EAAQgvP,MAAM,CAAC8sI,OAAO,CAACziY,EAAE,IAEhC2G,EAAQoiI,OAAO,EAAIpiI,EAAQoiI,OAAO,CAAC25P,SAAS,CAE1FjtI,EACF8hG,EAAM,CAAC,gBAAgBltF,IAAI,CAAC6mF,EAAU,CAACvqV,EAAQ0vP,SAAS,EAAI,CAAC,GAAGC,SAAS,IAAM,EAAE,CAAC,CAAC,EAAE,EAEnFqsI,EAAQ,SAAS3zY,IAAI,CAAC,CAAC2X,EAAQ0vP,SAAS,EAAI,CAAC,GAAGC,SAAS,EACzD9mQ,EAAW2tM,CAAS,CAAC,EAAE,EAAI,CAAC,EAC5BylM,EAAYpzY,EAASg1G,IAAI,EAAIh1G,EAASg1G,IAAI,CAAC5qD,KAAK,CAChDg0M,EAAc,GACdi1I,EAAa,GAUjB,OARID,IAGFh1I,EAAc,CAAC,CAAE,gBAAgBg1I,GAAa,qBAAsBA,CAAQ,EAC5EC,EAAa,CAAC,CAAE,eAAeD,GAAa,oBAAqBA,CAAQ,GAIpE,CASL75P,QAAS,CAAC,CAAEw5P,CAAAA,GAAuB,CAAE9sI,CAAAA,EAAU,IAAM,CAACktI,CAAI,EAC1DG,SAASz0Y,CAAK,EACZ,GAAIq/V,EAAY40C,CAAY,CAACj0Y,EAAM,EAAG,CACpC,IAAI00Y,EAASvzY,EAAS80G,aAAa,CAAC,MACpCg+R,CAAAA,CAAY,CAACj0Y,EAAM,CAAG,KAAOA,KAAS00Y,CACxC,CAEA,OAAOT,CAAY,CAACj0Y,EAAM,EAE5B+qW,IAAKA,KACLxrG,YAAaA,EACbi1I,WAAYA,EACZptI,QAASA,CACX,CACF,EAAE,CAIJ,IAAIutI,GAAyBxtC,EAAO,YAapC,SAASytC,KAEP,IAAI37E,CAeJ,KAAI,CAACA,WAAW,CAAG,SAASh+M,CAAG,SAC7B,GACEg+M,EAAch+M,EACP,IAAI,EAENg+M,CACT,EA8BA,IAAI,CAACxsT,IAAI,CAAG,CAAC,oBAAqB,iBAAkB,QAAS,KAAM,OACjE,SAASk1W,CAAiB,CAAE/7N,CAAc,CAAE95I,CAAK,CAAEgM,CAAE,CAAEvC,CAAI,EAEzD,SAASs/X,EAAgBC,CAAG,CAAEC,CAAkB,EAC9CF,EAAgBG,oBAAoB,GAOhC,EAACriT,EAASmiT,IAAQz1C,EAAYz5M,EAAe74I,GAAG,CAAC+nY,GAAI,GACvDA,CAAAA,EAAMv/X,EAAKmU,qBAAqB,CAACorX,EAAG,EAGtC,IAAItgB,EAAoB1oX,EAAMoF,QAAQ,EAAIpF,EAAMoF,QAAQ,CAACsjX,iBAAiB,CAU1E,OARIxlW,EAAQwlW,GACVA,EAAoBA,EAAkBvxX,MAAM,CAAC,SAASqoV,CAAW,EAC/D,OAAOA,IAAgBmoC,EACzB,GACSe,IAAsBf,IAC/Be,CAAAA,EAAoB,IAAG,EAGlB1oX,EAAMiB,GAAG,CAAC+nY,EAAKlyT,EAAO,CACzBy/O,MAAOz8K,EACP4uO,kBAAmBA,CACrB,EAAGv7D,IACFh0T,OAAO,CAAC,WACP4vY,EAAgBG,oBAAoB,EACtC,GACC70Y,IAAI,CAAC,SAAS0M,CAAQ,EAErB,OADA+4I,EAAej4I,GAAG,CAACmnY,EAAKjoY,EAAShI,IAAI,EAC9BgI,EAAShI,IAAI,EAGxB,SAAqBszX,CAAI,EASvB,OARK4c,GAKHpzB,EAJAwW,EAAOwc,GAAuB,SAC1B,sDACAG,EAAK3c,EAAK3+V,MAAM,CAAE2+V,EAAK1+V,UAAU,GAKhC3hB,EAAGpT,MAAM,CAACyzX,EACnB,EACF,CAIA,OAFA0c,EAAgBG,oBAAoB,CAAG,EAEhCH,CACT,EACD,CAKH,SAASI,KACP,IAAI,CAACxoY,IAAI,CAAG,CAAC,aAAc,WAAY,YAClC,SAASyJ,CAAU,CAAIwpV,CAAQ,CAAIlnV,CAAS,EAS/C,IAAI08X,EAAc,CAAC,EAoGnB,OAtFAA,EAAYC,YAAY,CAAG,SAASvyY,CAAO,CAAEq4W,CAAU,CAAEm6B,CAAc,EACrE,IAAInsY,EAAWrG,EAAQkoB,sBAAsB,CAAC,cAC1CqiG,EAAU,EAAE,CAkBhB,OAjBA7qH,EAAQ2G,EAAU,SAASg8W,CAAO,EAChC,IAAIowB,EAAcxqX,EAAQjoB,OAAO,CAACqiX,GAASpgX,IAAI,CAAC,YAC5CwwY,GACF/yY,EAAQ+yY,EAAa,SAASC,CAAW,EACnCF,EAEEl+F,OADqB,UAAY0yD,GAAgBqR,GAAc,eACvDt6W,IAAI,CAAC20Y,IACfnoR,EAAQ1nH,IAAI,CAACw/W,GAGXqwB,EAAYtzX,QAAQ,CAACi5V,IACvB9tP,EAAQ1nH,IAAI,CAACw/W,EAGnB,EAEJ,GACO93P,CACT,EAcA+nR,EAAYK,UAAU,CAAG,SAAS3yY,CAAO,CAAEq4W,CAAU,CAAEm6B,CAAc,EAEnE,IAAK,IADDI,EAAW,CAAC,MAAO,WAAY,QAAQ,CAClCpzX,EAAI,EAAGA,EAAIozX,EAASx0Y,MAAM,CAAE,EAAEohB,EAAG,CACxC,IAAIqzX,EAAkBL,EAAiB,IAAM,KACzClxP,EAAW,IAAMsxP,CAAQ,CAACpzX,EAAE,CAAG,QAAUqzX,EAAkB,IAAMx6B,EAAa,KAC9En6W,EAAW8B,EAAQG,gBAAgB,CAACmhJ,GACxC,GAAIpjJ,EAASE,MAAM,CACjB,OAAOF,CAEX,CACF,EASAo0Y,EAAYQ,WAAW,CAAG,WACxB,OAAOl9X,EAAUvH,GAAG,EACtB,EAWAikY,EAAYS,WAAW,CAAG,SAAS1kY,CAAG,EAChCA,IAAQuH,EAAUvH,GAAG,KACvBuH,EAAUvH,GAAG,CAACA,GACdiF,EAAWqgM,OAAO,GAEtB,EAUA2+L,EAAYU,UAAU,CAAG,SAASzwY,CAAQ,EACxCu6V,EAASqe,+BAA+B,CAAC54W,EAC3C,EAEO+vY,CACT,EAAE,CAKJ,SAASW,KACP,IAAI,CAACppY,IAAI,CAAG,CAAC,aAAc,WAAY,KAAM,MAAO,oBAC/C,SAASyJ,CAAU,CAAIwpV,CAAQ,CAAI5nV,CAAE,CAAIsjX,CAAG,CAAIzZ,CAAiB,EAEpE,IAAIm0B,EAAY,CAAC,EAgCjB,SAAS92W,EAAQu7L,CAAE,CAAE79D,CAAK,CAAE4+N,CAAW,EAChCpoV,EAAWqnL,KACd+gK,EAAc5+N,EACdA,EAAQ69D,EACRA,EAAK9sM,GAGP,IAII0xV,EAJAp4W,EAAOygW,GAAUpqS,UAAW,GAC5Bq+T,EAAapkU,EAAUikU,IAAgB,CAACA,EACxCl7W,EAAW,CAACq7W,EAAYL,EAAMtjX,CAAC,EAAGuI,KAAK,GACvChc,EAAU+b,EAAS/b,OAAO,CAmB9B,OAhBA86W,EAAYzf,EAASr/U,KAAK,CAAC,WACzB,GAAI,CACFD,EAAS3b,OAAO,CAAC81N,KAAMxzN,GACzB,CAAE,MAAOgiC,EAAG,CACV3oB,EAAS1b,MAAM,CAACqkC,GAChB44U,EAAkB54U,EACpB,QAAU,CACR,OAAO+sW,CAAS,CAACzxY,EAAQq1X,WAAW,CAAC,CAGlC+B,GAAWvlX,EAAWoiF,MAAM,EACnC,EAAGokE,GAEHr4J,EAAQq1X,WAAW,CAAGva,EACtB22B,CAAS,CAAC32B,EAAU,CAAG/+V,EAEhB/b,CACT,CA0BA,OAXA26B,EAAQ/jB,MAAM,CAAG,SAAS5W,CAAO,QAC/B,EAAIA,GAAWA,EAAQq1X,WAAW,IAAIoc,IAEpCna,GAAsBma,CAAS,CAACzxY,EAAQq1X,WAAW,CAAC,CAACr1X,OAAO,EAC5DyxY,CAAS,CAACzxY,EAAQq1X,WAAW,CAAC,CAACh1X,MAAM,CAAC,YACtC,OAAOoxY,CAAS,CAACzxY,EAAQq1X,WAAW,CAAC,CAC9Bh6B,EAASr/U,KAAK,CAACpF,MAAM,CAAC5W,EAAQq1X,WAAW,EAGpD,EAEO16V,CACT,EAAE,CAUJ,IAAI+2W,GAAiB3vY,EAAOjF,QAAQ,CAAC80G,aAAa,CAAC,KAC/Cw/Q,GAAYE,GAAWvvX,EAAOqkC,QAAQ,CAACC,IAAI,EAiD/C,SAASirV,GAAW1kX,CAAG,SACrB,EAAcA,IAGd8kY,GAAeh0Y,YAAY,CAAC,OADjBkP,GAIJ,CACLy5B,KAAMqrW,GAAerrW,IAAI,CACzB0iU,SAAU2oC,GAAe3oC,QAAQ,CAAG2oC,GAAe3oC,QAAQ,CAACj4V,OAAO,CAAC,KAAM,IAAM,GAChFm9V,KAAMyjC,GAAezjC,IAAI,CACzBtkU,OAAQ+nW,GAAe/nW,MAAM,CAAG+nW,GAAe/nW,MAAM,CAAC74B,OAAO,CAAC,MAAO,IAAM,GAC3E6jW,KAAM+8B,GAAe/8B,IAAI,CAAG+8B,GAAe/8B,IAAI,CAAC7jW,OAAO,CAAC,KAAM,IAAM,GACpEwnX,SAAUoZ,GAAepZ,QAAQ,CACjCE,KAAMkZ,GAAelZ,IAAI,CACzBvqG,SAAU,SAAgBA,QAAQ,CAACviM,MAAM,CAAC,GACtCgmT,GAAezjH,QAAQ,CACvB,IAAMyjH,GAAezjH,QAAQ,GAhBRrhR,CAkB7B,CAoDA,SAAS6kX,GAAkBkgB,CAAI,CAAEC,CAAI,EAInC,OAHAD,EAAOrgB,GAAWqgB,GAClBC,EAAOtgB,GAAWsgB,GAEVD,EAAK5oC,QAAQ,GAAK6oC,EAAK7oC,QAAQ,EAC/B4oC,EAAK1jC,IAAI,GAAK2jC,EAAK3jC,IAAI,CA8CjC,SAAS4jC,KACP,IAAI,CAACzpY,IAAI,CAAG48V,EAAQjjW,EACtB,CAYA,SAAS+vY,GAAernM,CAAS,EAC/B,IAAI6pL,EAAc7pL,CAAS,CAAC,EAAE,EAAI,CAAC,EAC/BsnM,EAAc,CAAC,EACfC,EAAmB,GAUvB,SAASC,EAAuBp4R,CAAG,EACjC,GAAI,CACF,OAAOs0J,mBAAmBt0J,EAC5B,CAAE,MAAOn1E,EAAG,CACV,OAAOm1E,CACT,CACF,CAEA,OAAO,WAML,IALIq4R,EACA7mV,EACA7rD,EACAR,EACA2nB,EACAwrX,EAAsBC,SAtBL9d,CAAW,EAChC,GAAI,CACF,OAAOA,EAAYjpU,MAAM,EAAI,EAC/B,CAAE,MAAO3mB,EAAG,CACV,MAAO,EACT,CACF,EAgB0C4vV,GAExC,GAAI6d,IAAwBH,EAK1B,IAAKxyY,EAAI,EAHT0yY,EAAcF,CADdA,EAAmBG,CAAkB,EACNrpX,KAAK,CAAC,MACrCipX,EAAc,CAAC,EAEHvyY,EAAI0yY,EAAYv1Y,MAAM,CAAE6C,IAElCR,CAAAA,EAAQqsD,CADRA,EAAS6mV,CAAW,CAAC1yY,EAAE,EACRJ,OAAO,CAAC,MACX,GAKN47V,EAAY+2C,CAAW,CAJ3BprX,EAAOsrX,EAAuB5mV,EAAOhxB,SAAS,CAAC,EAAGr7B,IAIjB,GAC/B+yY,CAAAA,CAAW,CAACprX,EAAK,CAAGsrX,EAAuB5mV,EAAOhxB,SAAS,CAACr7B,EAAQ,GAAE,EAK9E,OAAO+yY,CACT,CACF,CAKA,SAASM,KACP,IAAI,CAACjqY,IAAI,CAAG0pY,EACd,CA8GA,SAASQ,GAAgBprN,CAAQ,EAC/B,IAAIqrN,EAAS,SAkBb,SAAStwY,EAAS0kB,CAAI,CAAEyN,CAAO,EAC7B,IAAIm4P,EAAS5lQ,GAOX,OAAOugK,EAAS9yJ,OAAO,CAACzN,EAAO4rX,EAAQn+W,GANvC,IAAInpB,EAAU,CAAC,EAIf,OAHAhN,EAAQ0oB,EAAM,SAAS/nB,CAAM,CAAErC,CAAG,EAChC0O,CAAO,CAAC1O,EAAI,CAAG0F,EAAS1F,EAAKqC,EAC/B,GACOqM,CAIX,CACA,IAAI,CAAChJ,QAAQ,CAAGA,EAEhB,IAAI,CAACmG,IAAI,CAAG,CAAC,YAAa,SAASi6G,CAAS,EAC1C,OAAO,SAAS17F,CAAI,EAClB,OAAO07F,EAAU35G,GAAG,CAACie,EAAO4rX,EAC9B,CACF,EAAE,CAgBFtwY,EAAS,WAAYuwY,IACrBvwY,EAAS,OAAQ6oB,IACjB7oB,EAAS,SAAUwwY,IACnBxwY,EAAS,OAAQywY,IACjBzwY,EAAS,UAAW0wY,IACpB1wY,EAAS,YAAa2wY,IACtB3wY,EAAS,SAAU4wY,IACnB5wY,EAAS,UAAW6wY,IACpB7wY,EAAS,YAAa8wY,GACxB,CA4IA,SAASN,KACP,OAAO,SAASz9U,CAAK,CAAE4hT,CAAU,CAAElgU,CAAU,CAAEs8V,CAAc,MAWvDC,EACAC,EAwB+Bx8V,EAAYs8V,EAAgBE,EAC7DC,EApCF,GAAI,CAACtvC,EAAY7uS,GAAQ,CACvB,GAAIA,MAAAA,EACF,OAAOA,CAEP,OAAM8tS,EAAO,UAAU,WAAY,mCAAoC9tS,EAE3E,CAOA,OALAg+U,EAAiBA,GAAkB,IACdI,GAAiBx8B,IAKpC,IAAK,WACHq8B,EAAcr8B,EACd,KACF,KAAK,UACL,IAAK,OACL,IAAK,SACL,IAAK,SACHs8B,EAAsB,EAExB,KAAK,SAY4Bx8V,EAXaA,EAWDs8V,EAXaA,EAWGE,EAXaA,EAY1EC,EAAwB5mH,EAZUqqF,IAYeo8B,KAZfp8B,EAelClgU,CAAe,IAAfA,EACFA,EAAa80N,GACH38N,EAAW6H,IACrBA,CAAAA,EAAa,SAAS28V,CAAM,CAAEC,CAAQ,QACpC,CAAIt4C,EAAYq4C,KAIZ,UAAsBC,OAAAA,EAEjBD,IAAWC,GAEhB/mH,CAAAA,EAAS+mH,IAAc/mH,EAAS8mH,IAAW,CAACpuC,EAAkBouC,EAAM,IAKxEA,EAAS70C,EAAU,GAAK60C,GACxBC,EAAW90C,EAAU,GAAK80C,GACnBD,EAAO11X,QAAQ,CAAC21X,IACzB,GAnCIL,EAsCQ,SAAS98W,CAAI,SACzB,GAA6B,CAACo2P,EAASp2P,GAC9Bo9W,GAAYp9W,EAAMygV,CAAU,CAACo8B,EAAe,CAAEt8V,EAAYs8V,EAAgB,IAE5EO,GAAYp9W,EA1CiBygV,EA0CClgU,EAAYs8V,EAAgBE,EACnE,EA1CM,KACF,SACE,OAAOl+U,CACX,CAEA,OAAOx2D,MAAMlD,SAAS,CAACsD,MAAM,CAACjF,IAAI,CAACq7D,EAAOi+U,EAC5C,CACF,CAwCA,SAASM,GAAYF,CAAM,CAAEC,CAAQ,CAAE58V,CAAU,CAAEs8V,CAAc,CAAEE,CAAmB,CAAEM,CAAoB,EAC1G,IAeQj3Y,EAfJk3Y,EAAaL,GAAiBC,GAC9BK,EAAeN,GAAiBE,GAEpC,GAAI,cAAgCA,MAAAA,EAAS5nT,MAAM,CAAC,GAClD,MAAO,CAAC6nT,GAAYF,EAAQC,EAASj5W,SAAS,CAAC,GAAIqc,EAAYs8V,EAAgBE,GAC1E,GAAIvoX,EAAQ0oX,GAGjB,OAAOA,EAAO/4V,IAAI,CAAC,SAASnkB,CAAI,EAC9B,OAAOo9W,GAAYp9W,EAAMm9W,EAAU58V,EAAYs8V,EAAgBE,EACjE,GAGF,OAAQO,GACN,IAAK,SAEH,GAAIP,EAAqB,CACvB,IAAK32Y,KAAO82Y,EAGV,GAAI92Y,EAAImvF,MAAM,EAAKnvF,MAAAA,EAAImvF,MAAM,CAAC,IAC1B6nT,GAAYF,CAAM,CAAC92Y,EAAI,CAAE+2Y,EAAU58V,EAAYs8V,EAAgB,IACjE,MAAO,GAGX,MAAOQ,CAAAA,GAA+BD,GAAYF,EAAQC,EAAU58V,EAAYs8V,EAAgB,GAClG,CAAO,GAAIU,WAAAA,EAeT,OAAOh9V,EAAW28V,EAAQC,GAd1B,IAAK/2Y,KAAO+2Y,EAAU,CACpB,IAAIK,EAAcL,CAAQ,CAAC/2Y,EAAI,CAC/B,IAAIsyC,CAAAA,EAAW8kW,IAAgB34C,EAAY24C,EAAW,GAItD,IAAIC,EAAmBr3Y,IAAQy2Y,EAE/B,GAAI,CAACO,GADWK,EAAmBP,EAASA,CAAM,CAAC92Y,EAAI,CAC3Bo3Y,EAAaj9V,EAAYs8V,EAAgBY,EAAkBA,GACrF,MAAO,GAEX,CACA,MAAO,EAIX,KAAK,WACH,MAAO,EACT,SACE,OAAOl9V,EAAW28V,EAAQC,EAC9B,CACF,CAGA,SAASF,GAAiBx8R,CAAG,EAC3B,OAAO,SAAiB,OAAS,OAAOA,CAC1C,CA4DA,SAAS47R,GAAeqB,CAAO,EAC7B,IAAIC,EAAUD,EAAQE,cAAc,CACpC,OAAO,SAASC,CAAM,CAAEC,CAAc,CAAEC,CAAY,EAC9Cl5C,EAAYi5C,IACdA,CAAAA,EAAiBH,EAAQK,YAAY,EAGnCn5C,EAAYk5C,IACdA,CAAAA,EAAeJ,EAAQM,QAAQ,CAAC,EAAE,CAACC,OAAO,EAI5C,IAAIC,EAAmB,EAAoC,UAAlB,gBAGzC,GAAIN,MAAAA,EACF,OAAOA,EAGT,IAAMO,EAAkBn8E,GAAa47E,EAAQF,EAAQM,QAAQ,CAAC,EAAE,CAAEN,EAAQU,SAAS,CAAEV,EAAQW,WAAW,CAAEP,GAE1G,OAAOK,EAAgB52X,QAAQ,CAAC,KAAY42X,EAAgBzjY,OAAO,CAACwjY,EAAkBL,GAAkBM,CAC1G,CACF,CAyDA,SAAS1B,GAAagB,CAAO,EAC3B,IAAIC,EAAUD,EAAQE,cAAc,CACpC,OAAO,SAAS1xN,CAAM,CAAE6xN,CAAY,EAGlC,OAAO,QACD7xN,EACA+1I,GAAa/1I,EAAQyxN,EAAQM,QAAQ,CAAC,EAAE,CAAEN,EAAQU,SAAS,CAAEV,EAAQW,WAAW,CACnEP,EACrB,CACF,CAqJA,SAAS97E,GAAa/1I,CAAM,CAAEqyN,CAAO,CAAEC,CAAQ,CAAEC,CAAU,CAAEV,CAAY,EACvE,GAAI,CAAE5lT,CAAAA,EAAS+zF,IAAWglF,EAAShlF,EAAM,GAAM9xI,MAAM8xI,GAAS,MAAO,GAErE,IAIIwyN,EAJAC,EAAa,CAACC,SAAS1yN,GACvB2yN,EAAS,GACTC,EAASv4V,KAAKkyD,GAAG,CAACyzE,GAAU,GAC5B6yN,EAAgB,GAGpB,GAAIJ,EACFI,EAAgB,QACX,EAGLC,SAzFiBN,CAAY,CAAEX,CAAY,CAAEkB,CAAO,CAAEf,CAAO,EAC7D,IAAI1sI,EAASktI,EAAal5V,CAAC,CACvB05V,EAAc1tI,EAAOhrQ,MAAM,CAAGk4Y,EAAar1Y,CAAC,CAM5C81Y,EAAUpB,CAHdA,EAAe,EAAaA,GAAiBx3V,KAAKqoC,GAAG,CAACroC,KAAKsoC,GAAG,CAACowT,EAASC,GAAchB,GAAW,CAACH,CAAW,EAGhFW,EAAar1Y,CAAC,CACvC+1Y,EAAQ5tI,CAAM,CAAC2tI,EAAQ,CAE3B,GAAIA,EAAU,EAAG,CAEf3tI,EAAOtmQ,MAAM,CAACq7C,KAAKsoC,GAAG,CAAC6vT,EAAar1Y,CAAC,CAAE81Y,IAGvC,IAAK,IAAIz2Y,EAAIy2Y,EAASz2Y,EAAI8oQ,EAAOhrQ,MAAM,CAAEkC,IACvC8oQ,CAAM,CAAC9oQ,EAAE,CAAG,CAEhB,KAAO,CAELw2Y,EAAc34V,KAAKsoC,GAAG,CAAC,EAAGqwT,GAC1BR,EAAar1Y,CAAC,CAAG,EACjBmoQ,EAAOhrQ,MAAM,CAAG+/C,KAAKsoC,GAAG,CAAC,EAAGswT,EAAUpB,EAAe,GACrDvsI,CAAM,CAAC,EAAE,CAAG,EACZ,IAAK,IAAInoQ,EAAI,EAAGA,EAAI81Y,EAAS91Y,IAAKmoQ,CAAM,CAACnoQ,EAAE,CAAG,CAChD,CAEA,GAAI+1Y,GAAS,GACX,GAAID,EAAU,EAAI,EAAG,CACnB,IAAK,IAAI1kY,EAAI,EAAGA,EAAI0kY,EAAS1kY,IAC3B+2P,EAAOruM,OAAO,CAAC,GACfu7U,EAAar1Y,CAAC,GAEhBmoQ,EAAOruM,OAAO,CAAC,GACfu7U,EAAar1Y,CAAC,EAChB,MACEmoQ,CAAM,CAAC2tI,EAAU,EAAE,GAKvB,KAAOD,EAAc34V,KAAKsoC,GAAG,CAAC,EAAGkvT,GAAemB,IAAe1tI,EAAOvmQ,IAAI,CAAC,GAI3E,IAAIo0Y,EAAQ7tI,EAAO8tI,WAAW,CAAC,SAASD,CAAK,CAAE75V,CAAC,CAAEn8C,CAAC,CAAEmoQ,CAAM,EAGzD,OAFAhsN,GAAQ65V,EACR7tI,CAAM,CAACnoQ,EAAE,CAAGm8C,EAAI,GACTe,KAAKC,KAAK,CAAChB,EAAI,GACxB,EAAG,GACC65V,IACF7tI,EAAOruM,OAAO,CAACk8U,GACfX,EAAar1Y,CAAC,GAEpB,EAgCIq1Y,EAAezmV,SAlJJ6mV,CAAM,EACnB,IACIttI,EACA+tI,EACAl2Y,EACAX,EACA82Y,EALAC,EAAW,EAwBf,IAhBKF,CAAAA,EAAwBT,EAAO71Y,OAAO,CA1K3B,IA0KuC,EAAK,IAC1D61Y,CAAAA,EAASA,EAAOnkY,OAAO,CA3KT,IA2KuB,KAInC,CAACtR,EAAIy1Y,EAAOtrW,MAAM,CAAC,KAAI,EAAK,GAE1B+rW,EAAwB,GAAGA,CAAAA,EAAwBl2Y,CAAAA,EACvDk2Y,GAAyB,CAACT,EAAOx2Y,KAAK,CAACe,EAAI,GAC3Cy1Y,EAASA,EAAO56W,SAAS,CAAC,EAAG76B,IACpBk2Y,EAAwB,GAEjCA,CAAAA,EAAwBT,EAAOt4Y,MAAM,EAIlC6C,EAAI,EAAGy1Y,MAAAA,EAAOvpT,MAAM,CAAClsF,GAAkBA,KAE5C,GAAIA,IAAOm2Y,CAAAA,EAAQV,EAAOt4Y,MAAM,EAE9BgrQ,EAAS,CAAC,EAAE,CACZ+tI,EAAwB,MACnB,CAGL,IADAC,IACOV,MAAAA,EAAOvpT,MAAM,CAACiqT,IAAsBA,IAM3C,IAHAD,GAAyBl2Y,EACzBmoQ,EAAS,EAAE,CAEN9oQ,EAAI,EAAGW,GAAKm2Y,EAAOn2Y,IAAKX,IAC3B8oQ,CAAM,CAAC9oQ,EAAE,CAAG,CAACo2Y,EAAOvpT,MAAM,CAAClsF,EAE/B,CASA,OANIk2Y,EAhNW,KAiNb/tI,EAASA,EAAOtmQ,MAAM,CAAC,EAAGw0Y,IAC1BD,EAAWF,EAAwB,EACnCA,EAAwB,GAGnB,CAAE/5V,EAAGgsN,EAAQjjO,EAAGkxW,EAAUp2Y,EAAGk2Y,CAAsB,CAC5D,EA6FyBT,GAEKf,EAAcQ,EAAQU,OAAO,CAAEV,EAAQL,OAAO,EAExE,IAAI1sI,EAASktI,EAAal5V,CAAC,CACvBm6V,EAAajB,EAAar1Y,CAAC,CAC3Bo2Y,EAAWf,EAAanwW,CAAC,CACzBqxW,EAAW,EAAE,CAIjB,IAHAf,EAASrtI,EAAO79I,MAAM,CAAC,SAASkrR,CAAM,CAAEr5V,CAAC,EAAI,OAAOq5V,GAAU,CAACr5V,CAAG,EAAG,IAG9Dm6V,EAAa,GAClBnuI,EAAOruM,OAAO,CAAC,GACfw8U,GAIEA,CAAAA,EAAa,EACfC,EAAWpuI,EAAOtmQ,MAAM,CAACy0Y,EAAYnuI,EAAOhrQ,MAAM,GAElDo5Y,EAAWpuI,EACXA,EAAS,CAAC,EAAE,EAId,IAAI73G,EAAS,EAAE,CAIf,IAHI63G,EAAOhrQ,MAAM,EAAI+3Y,EAAQsB,MAAM,EACjClmP,EAAOx2F,OAAO,CAACquM,EAAOtmQ,MAAM,CAAC,CAACqzY,EAAQsB,MAAM,CAAEruI,EAAOhrQ,MAAM,EAAEqnF,IAAI,CAAC,KAE7D2jL,EAAOhrQ,MAAM,CAAG+3Y,EAAQuB,KAAK,EAClCnmP,EAAOx2F,OAAO,CAACquM,EAAOtmQ,MAAM,CAAC,CAACqzY,EAAQuB,KAAK,CAAEtuI,EAAOhrQ,MAAM,EAAEqnF,IAAI,CAAC,IAE/D2jL,CAAAA,EAAOhrQ,MAAM,EACfmzJ,EAAOx2F,OAAO,CAACquM,EAAO3jL,IAAI,CAAC,KAE7BkxT,EAAgBplP,EAAO9rE,IAAI,CAAC2wT,GAGxBoB,EAASp5Y,MAAM,EACjBu4Y,CAAAA,GAAiBN,EAAamB,EAAS/xT,IAAI,CAAC,KAG1C4xT,GACFV,CAAAA,GAAiB,KAAOU,CAAO,CAEnC,QACA,EAAa,GAAK,CAACZ,EACVN,EAAQwB,MAAM,CAAGhB,EAAgBR,EAAQyB,MAAM,CAE/CzB,EAAQ0B,MAAM,CAAGlB,EAAgBR,EAAQ2B,MAAM,CAI1D,SAASC,GAAUt+H,CAAG,CAAErQ,CAAM,CAAEt+M,CAAI,CAAEktV,CAAO,EAC3C,IAAIC,EAAM,GAUV,IATIx+H,CAAAA,EAAM,GAAMu+H,GAAWv+H,GAAO,KAC5Bu+H,EACFv+H,EAAM,CAACA,EAAM,GAEbA,EAAM,CAACA,EACPw+H,EAAM,MAGVx+H,EAAM,GAAKA,EACJA,EAAIr7Q,MAAM,CAAGgrQ,GAAQqQ,EAAMy+H,IAAYz+H,EAI9C,OAHI3uN,GACF2uN,CAAAA,EAAMA,EAAIhK,MAAM,CAACgK,EAAIr7Q,MAAM,CAAGgrQ,EAAM,EAE/B6uI,EAAMx+H,CACf,CAGA,SAAS0+H,GAAW/vX,CAAI,CAAE/gB,CAAI,CAAEi7H,CAAM,CAAEx3E,CAAI,CAAEktV,CAAO,EAEnD,OADA11Q,EAASA,GAAU,EACZ,SAASz6G,CAAI,EAClB,IAAIvqB,EAAQuqB,CAAI,CAAC,MAAQO,EAAK,GAK9B,MAJIk6G,CAAAA,EAAS,GAAKhlI,EAAQ,CAACglI,CAAK,GAC9BhlI,CAAAA,GAASglI,CAAK,EAEF,IAAVhlI,GAAeglI,MAAAA,GAAgBhlI,CAAAA,EAAQ,EAAC,EACrCy6Y,GAAUz6Y,EAAO+J,EAAMyjD,EAAMktV,EACtC,CACF,CAEA,SAASI,GAAchwX,CAAI,CAAEiwX,CAAS,CAAEC,CAAU,EAChD,OAAO,SAASzwX,CAAI,CAAE0tX,CAAO,EAC3B,IAAIj4Y,EAAQuqB,CAAI,CAAC,MAAQO,EAAK,GAI9B,OAAOmtX,CAAO,CAFJrwC,EAAUqzC,CADFD,EAAa,aAAe,IAAOD,CAAAA,EAAY,QAAU,IAC1CjwX,GAEd,CAAC9qB,EAAM,CAE9B,CAYA,SAASk7Y,GAAuB3sS,CAAI,EAEhC,IAAI4sS,EAAmB,IAAKvkY,KAAK23F,EAAM,EAAG,GAAIoL,MAAM,GAGpD,OAAO,IAAI/iG,KAAK23F,EAAM,EAAG,CAAC,GAAqB,EAAK,EAAI,EAAC,EAAK4sS,EAClE,CAQA,SAASC,GAAWrxY,CAAI,EACrB,OAAO,SAASwgB,CAAI,EAClB,IAAI8wX,EAAaH,GAAuB3wX,EAAKo2B,WAAW,IAKxD,OAAO85V,GAFM,EAAI55V,KAAK67D,KAAK,CAACksC,CADjB,CATL,IAAIhyI,KAAK0kY,EAAS36V,WAAW,GAAI26V,EAAS16V,QAAQ,GAEvD06V,EAAS5mV,OAAO,GAAM,GAAI4mV,EAAS3hS,MAAM,EAAC,GAOnB,CAAC0hS,CAAS,EACC,QAEVtxY,EAC3B,CACH,CAMA,SAASwxY,GAAUhxX,CAAI,CAAE0tX,CAAO,EAC9B,OAAO1tX,GAAAA,EAAKo2B,WAAW,GAAUs3V,EAAQuD,IAAI,CAAC,EAAE,CAAGvD,EAAQuD,IAAI,CAAC,EAAE,CAz3BpEvF,GAAejyY,OAAO,CAAG,CAAC,YAAY,CAiHtCyyY,GAAgBzyY,OAAO,CAAG,CAAC,WAAW,CAsYtC2yY,GAAe3yY,OAAO,CAAG,CAAC,UAAU,CAgFpCgzY,GAAahzY,OAAO,CAAG,CAAC,UAAU,CAyTlC,IAAIy3Y,GAAe,CACjBp/R,KAAMw+R,GAAW,WAAY,EAAG,EAAG,GAAO,IACxCz+R,GAAIy+R,GAAW,WAAY,EAAG,EAAG,GAAM,IACtCvhS,EAAGuhS,GAAW,WAAY,EAAG,EAAG,GAAO,IAC1Ca,KAAMZ,GAAc,SACnBa,IAAKb,GAAc,QAAS,IAC3Bt+R,GAAIq+R,GAAW,QAAS,EAAG,GAC1Bt/R,EAAGs/R,GAAW,QAAS,EAAG,GAC7Be,KAAMd,GAAc,QAAS,GAAO,IAClCl/R,GAAIi/R,GAAW,OAAQ,GACtB/6V,EAAG+6V,GAAW,OAAQ,GACvBt+R,GAAIs+R,GAAW,QAAS,GACvBv/R,EAAGu/R,GAAW,QAAS,GACxBv+R,GAAIu+R,GAAW,QAAS,EAAG,KAC1B5zT,EAAG4zT,GAAW,QAAS,EAAG,KAC3B7+R,GAAI6+R,GAAW,UAAW,GACzB/hS,EAAG+hS,GAAW,UAAW,GAC1Bp+R,GAAIo+R,GAAW,UAAW,GACzB58V,EAAG48V,GAAW,UAAW,GAG3BgB,IAAKhB,GAAW,eAAgB,GACjCiB,KAAMhB,GAAc,OACnBiB,IAAKjB,GAAc,MAAO,IACxBhzU,EApCL,SAAoBv9C,CAAI,CAAE0tX,CAAO,EAC/B,OAAO1tX,GAAAA,EAAKyjF,QAAQ,GAAUiqS,EAAQ+D,KAAK,CAAC,EAAE,CAAG/D,EAAQ+D,KAAK,CAAC,EAAE,EAoC9Dl/R,EAxEL,SAAwBvyF,CAAI,CAAE0tX,CAAO,CAAEjzQ,CAAM,EAC3C,IAAIi3Q,EAAO,GAAKj3Q,EAMhB,MAHAk3Q,CAFiB,GAAS,EAAK,IAAM,IAEvBzB,CAAAA,GAAU55V,IAAI,CAACo7V,EAAO,EAAI,QAAU,OAAO,CAACA,EAAO,IAAK,GACxDxB,GAAU55V,KAAKkyD,GAAG,CAACkpS,EAAO,IAAK,EAAC,CAGhD,EAiEIE,GAAIf,GAAW,GACdp0T,EAAGo0T,GAAW,GACdvkI,EAAG0kI,GACHa,GAAIb,GACJc,IAAKd,GACLe,KAnCL,SAAuB/xX,CAAI,CAAE0tX,CAAO,EAClC,OAAO1tX,GAAAA,EAAKo2B,WAAW,GAAUs3V,EAAQsE,QAAQ,CAAC,EAAE,CAAGtE,EAAQsE,QAAQ,CAAC,EAAE,CAmC5E,EAEIC,GAAqB,gGACrBC,GAAgB,UAmGpB,SAASxtX,GAAW+oX,CAAO,EAGzB,IAAI0E,EAAgB,uGA2BpB,OAAO,SAASnyX,CAAI,CAAE4tF,CAAM,CAAE7B,CAAQ,EACpC,IAEI+jH,EACA54M,EAHA06G,EAAO,GACPle,EAAQ,EAAE,CAcd,GAVA9F,EAASA,GAAU,aACnBA,EAAS6/R,EAAQ2E,gBAAgB,CAACxkS,EAAO,EAAIA,EACzC1lB,EAASloE,IACXA,CAAAA,EAAOkyX,GAAch8Y,IAAI,CAAC8pB,GAAQy+U,EAAMz+U,GAAQqyX,SAlC1BryV,CAAM,EAC9B,IAAI9oC,EACJ,GAAKA,EAAQ8oC,EAAO9oC,KAAK,CAACi7X,GAAiB,CACzC,IAAInyX,EAAO,IAAI3T,KAAK,GAChBimY,EAAS,EACTC,EAAS,EACTC,EAAat7X,CAAK,CAAC,EAAE,CAAG8I,EAAKyyX,cAAc,CAAGzyX,EAAKutF,WAAW,CAC9DmlS,EAAax7X,CAAK,CAAC,EAAE,CAAG8I,EAAK2yX,WAAW,CAAG3yX,EAAKiqC,QAAQ,CAExD/yC,CAAK,CAAC,EAAE,GACVo7X,EAAS7zC,EAAMvnV,CAAK,CAAC,EAAE,CAAGA,CAAK,CAAC,GAAG,EACnCq7X,EAAQ9zC,EAAMvnV,CAAK,CAAC,EAAE,CAAGA,CAAK,CAAC,GAAG,GAEpCs7X,EAAWj/Y,IAAI,CAACysB,EAAMy+U,EAAMvnV,CAAK,CAAC,EAAE,EAAGunV,EAAMvnV,CAAK,CAAC,EAAE,EAAI,EAAGunV,EAAMvnV,CAAK,CAAC,EAAE,GAC1E,IAAIwlE,EAAI+hR,EAAMvnV,CAAK,CAAC,EAAE,EAAI,GAAKo7X,EAC3B/jS,EAAIkwP,EAAMvnV,CAAK,CAAC,EAAE,EAAI,GAAKq7X,EAC3B7+V,EAAI+qT,EAAMvnV,CAAK,CAAC,EAAE,EAAI,GACtB07X,EAAKt8V,KAAK67D,KAAK,CAACykE,IAAAA,WAAW,KAAQ1/J,CAAAA,CAAK,CAAC,EAAE,EAAI,KAEnD,OADAw7X,EAAWn/Y,IAAI,CAACysB,EAAM08D,EAAG6xB,EAAG76D,EAAGk/V,GACxB5yX,CACT,CACA,OAAOggC,CACT,EAYqEhgC,EAAI,EAGnEihP,EAASjhP,IACXA,CAAAA,EAAO,IAAI3T,KAAK2T,EAAI,EAGlB,CAACykE,EAAOzkE,IAAS,CAAC2uX,SAAS3uX,EAAKwqC,OAAO,IACzC,OAAOxqC,EAGT,KAAO4tF,GACL12F,CAAAA,EAAQ+6X,GAAmB1gI,IAAI,CAAC3jK,EAAM,EAGpCA,EAAS8F,CADTA,EAAQ1iF,GAAO0iF,EAAOx8F,EAAO,EAAC,EACfmvE,GAAG,IAElBqtB,EAAM14G,IAAI,CAAC4yG,GACXA,EAAS,MAIb,IAAIyzP,EAAqBrhV,EAAKmxF,iBAAiB,GAW/C,OAVIpF,IACFs1P,EAAqBJ,GAAiBl1P,EAAUs1P,GAChDrhV,EAAOohV,GAAuBphV,EAAM+rF,EAAU,KAEhDl0G,EAAQ67G,EAAO,SAASj+G,CAAK,EAC3Bq6N,EAAKohL,EAAY,CAACz7Y,EAAM,CACxBm8H,GAAQk+F,EAAKA,EAAG9vM,EAAMytX,EAAQ2E,gBAAgB,CAAE/wC,GACnC5rW,OAAAA,EAAmB,IAAOA,EAAMiV,OAAO,CAAC,WAAY,IAAIA,OAAO,CAAC,MAAO,IACtF,GAEOknH,CACT,CACF,CAkCA,SAAS06Q,KACP,OAAO,SAASpoP,CAAM,CAAE2uP,CAAO,EAI7B,OAHIj+C,EAAYi+C,IACZA,CAAAA,EAAU,GAEPnlF,GAAOxpK,EAAQ2uP,EACxB,CACF,CApHAnuX,GAAWjrB,OAAO,CAAG,CAAC,UAAU,CAkIhC,IAAI+yY,GAAkB5tC,EAAQxG,GA2B1Bu0C,GAAkB/tC,EAAQvB,GAsG9B,SAASkvC,KACP,OAAO,SAAStsV,CAAK,CAAEytN,CAAK,CAAEolI,CAAK,SAMjC,EAJEplI,EADEp3N,KAAKkyD,GAAG,CAAC9qD,OAAOgwN,MAAYzhL,IACtBvuC,OAAOgwN,GAEP+wF,EAAM/wF,IAEeztN,GAE3BghN,EAAShhN,IAAQA,CAAAA,EAAQA,EAAMr7B,QAAQ,EAAC,EACvC64U,EAAYx9S,KAGjB6yV,EAAQ,CADRA,EAAQ,CAAEA,GAAS3oW,MAAM2oW,GAAU,EAAIr0C,EAAMq0C,EAAK,EACjC,EAAKx8V,KAAKsoC,GAAG,CAAC,EAAG3+B,EAAM1pD,MAAM,CAAGu8Y,GAASA,EAEtDplI,GAAS,GACJqlI,GAAQ9yV,EAAO6yV,EAAOA,EAAQplI,GAErC,IAAIolI,EACKC,GAAQ9yV,EAAOytN,EAAOztN,EAAM1pD,MAAM,EAElCw8Y,GAAQ9yV,EAAO3J,KAAKsoC,GAAG,CAAC,EAAGk0T,EAAQplI,GAAQolI,GAXtB7yV,CAclC,CACF,CAEA,SAAS8yV,GAAQ9yV,CAAK,CAAE6yV,CAAK,CAAE99Y,CAAG,SAChC,EAAairD,GAAeA,EAAM5nD,KAAK,CAACy6Y,EAAO99Y,GAExCqD,EAAM9E,IAAI,CAAC0sD,EAAO6yV,EAAO99Y,EAClC,CA6iBA,SAAS03Y,GAAc1wJ,CAAM,EAC3B,OAAO,SAASptL,CAAK,CAAEokV,CAAa,CAAEzjX,CAAY,CAAE0jX,CAAS,EAE3D,GAAIrkV,MAAAA,EAAe,OAAOA,EAC1B,GAAI,CAAC6uS,EAAY7uS,GACf,MAAM8tS,EAAO,WAAW,WAAY,mCAAoC9tS,GAGrErqC,EAAQyuX,IAAkBA,CAAAA,EAAgB,CAACA,EAAc,EACjC,IAAzBA,EAAcz8Y,MAAM,EAAUy8Y,CAAAA,EAAgB,CAAC,IAAI,EAEvD,IAAIE,EA0CGC,EAAel3Y,GAAG,CAAC,SAASm3Y,CAAS,EAC1C,IAAIC,EAAa,EACb/wY,EAAMq8V,EAEV,GAAIl2T,EAAW2qW,GACb9wY,EAAM8wY,OACD,GAAIlrT,EAASkrT,KACbA,CAAAA,MAAAA,EAAU9tT,MAAM,CAAC,IAAc8tT,MAAAA,EAAU9tT,MAAM,CAAC,EAAO,IAC1D+tT,EAAaD,MAAAA,EAAU9tT,MAAM,CAAC,GAAa,GAAK,EAChD8tT,EAAYA,EAAUn/W,SAAS,CAAC,IAE9Bm/W,KAAAA,GAEE9wY,CADJA,EAAM05O,EAAOo3J,EAAS,EACdzkD,QAAQ,EAAE,CAChB,IAAIx4V,EAAMmM,IACVA,EAAM,SAAS7M,CAAK,EAAI,OAAOA,CAAK,CAACU,EAAI,CAC3C,CAGJ,MAAO,CAACmM,IAAKA,EAAK+wY,WAAYA,CAAU,CAC1C,GA5DIA,EAAa9jX,EAAe,GAAK,EAGjC+2V,EAAU79U,EAAWwqW,GAAaA,EAAYK,EAK9CC,EAAgBn7Y,MAAMlD,SAAS,CAAC+G,GAAG,CAAC1I,IAAI,CAACq7D,EAM7C,SAA6Bn5D,CAAK,CAAEmD,CAAK,EAIvC,MAAO,CACLnD,MAAOA,EACP+9Y,WAAY,CAAC/9Y,MAAOmD,EAAOyd,KAAM,SAAUzd,MAAOA,CAAK,EACvD66Y,gBAAiBP,EAAWj3Y,GAAG,CAAC,SAASm3Y,CAAS,MAoE7B39Y,EAfNA,EAgBf4gB,EApEE,OAoEFA,EAAO,OADc5gB,EAnEM29Y,EAAU9wY,GAAG,CAAC7M,IAqEzCA,OAAAA,GACF4gB,EAAO,SACP5gB,EAAQ,QACU,WAAT4gB,IAlBPoyB,EAAWhzC,CAFIA,EAqBGA,GAnBDqhW,OAAO,GAEtB6G,EADJloW,EAAQA,EAAMqhW,OAAO,KAInB+H,EAAkBppW,IAEhBkoW,EADJloW,EAAQA,EAAMmvB,QAAQ,IAatBnvB,EAjB+BA,GAmB1B,CAACA,MAAOA,EAAO4gB,KAAMA,EAAMzd,MA3EmBA,CA2EP,CA1E1C,EACF,CACF,GAbA,OAHA26Y,EAAc1+P,IAAI,CAkBlB,SAAsB6+P,CAAE,CAAEC,CAAE,EAC1B,IAAK,IAAIv6Y,EAAI,EAAGo8K,EAAK09N,EAAW38Y,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAAK,CACnD,IAAI8rB,EAASohW,EAAQotB,EAAGD,eAAe,CAACr6Y,EAAE,CAAEu6Y,EAAGF,eAAe,CAACr6Y,EAAE,EACjE,GAAI8rB,EACF,OAAOA,EAASguX,CAAU,CAAC95Y,EAAE,CAACi6Y,UAAU,CAAGA,CAE/C,CAEA,MAAO,CAAC/sB,EAAQotB,EAAGF,UAAU,CAAEG,EAAGH,UAAU,GAAKF,EAAeI,EAAGF,UAAU,CAAEG,EAAGH,UAAU,GAAKH,CACnG,GA1BAzkV,EAAQ2kV,EAAct3Y,GAAG,CAAC,SAAS8zB,CAAI,EAAI,OAAOA,EAAKt6B,KAAK,EA2B9D,EA0BA,SAASkoW,EAAYloW,CAAK,EACxB,OAAQ,OAAOA,GACb,IAAK,SACL,IAAK,UACL,IAAK,SACH,MAAO,EACT,SACE,MAAO,EACX,CACF,CA4BA,SAAS69Y,EAAeI,CAAE,CAAEC,CAAE,EAC5B,IAAIzuX,EAAS,EACT0uX,EAAQF,EAAGr9X,IAAI,CACfw9X,EAAQF,EAAGt9X,IAAI,CAEnB,GAAIu9X,IAAUC,EAAO,CACnB,IAAIrjK,EAASkjK,EAAGj+Y,KAAK,CACjBi7O,EAASijK,EAAGl+Y,KAAK,CAEP,WAAVm+Y,GAEFpjK,EAASA,EAAOzjO,WAAW,GAC3B2jO,EAASA,EAAO3jO,WAAW,IACR,WAAV6mY,IAGLztH,EAAS31C,IAASA,CAAAA,EAASkjK,EAAG96Y,KAAK,EACnCutR,EAASz1C,IAASA,CAAAA,EAASijK,EAAG/6Y,KAAK,GAGrC43O,IAAWE,GACbxrN,CAAAA,EAASsrN,EAASE,EAAS,GAAK,EAEpC,MACExrN,EAAS0uX,EAAQC,EAAQ,GAAK,EAGhC,OAAO3uX,CACT,CACF,CAGA,SAAS4uX,GAAY7mY,CAAS,EAO5B,OANIw7B,EAAWx7B,IACbA,CAAAA,EAAY,CACVkT,KAAMlT,CACR,GAEFA,EAAUjC,QAAQ,CAAGiC,EAAUjC,QAAQ,EAAI,KACpC4zV,EAAQ3xV,EACjB,CA1JAy/X,GAAcjzY,OAAO,CAAG,CAAC,SAAS,CAwKlC,IAAIs6Y,GAAsBn1C,EAAQ,CAChC5zV,SAAU,IACVixO,QAAQ9jP,CAAO,CAAEvD,CAAI,EACnB,GAAI,CAACA,EAAKqrC,IAAI,EAAI,CAACrrC,EAAKo/Y,SAAS,CAC/B,OAAO,SAAS/oY,CAAK,CAAE9S,CAAO,EAE5B,GAAIA,MAAAA,CAAO,CAAC,EAAE,CAACktG,QAAQ,CAACt4F,WAAW,IAGnC,IAAIkzB,EAAOrb,+BAAAA,EAASrxB,IAAI,CAAC4E,EAAQw5D,IAAI,CAAC,SAC3B,aAAe,OAC1Bx5D,EAAQu5B,EAAE,CAAC,QAAS,SAASn8B,CAAK,EAE3B4C,EAAQvD,IAAI,CAACqrC,IAChB1qC,EAAMwB,cAAc,EAExB,GACF,CAEJ,CACF,GAyVIk9Y,GAA6B,CAAC,EAGlCp8Y,EAAQqwW,GAAc,SAAS5tJ,CAAQ,CAAE4hD,CAAQ,EAE/C,GAAI5hD,aAAAA,GAQJ,IAAI45L,EAAan7B,GAAmB,MAAQ78G,GACxCkhH,EAAS+2B,CAEI,aAAb75L,GACF8iK,CAAAA,EAAS,SAASnyW,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAEhCA,EAAKm3F,OAAO,GAAKn3F,CAAI,CAACs/Y,EAAW,EACnCC,EAAclpY,EAAO9S,EAASvD,EAElC,GAGFq/Y,EAA0B,CAACC,EAAW,CAAG,WACvC,MAAO,CACLlpY,SAAU,IACVw6P,SAAU,IACVrlP,KAAMi9V,CACR,CACF,EAxBA,SAAS+2B,EAAclpY,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EACzCqW,EAAMib,MAAM,CAACtxB,CAAI,CAACs/Y,EAAW,CAAE,SAAkCz+Y,CAAK,EACpEb,EAAK62I,IAAI,CAACywH,EAAU,CAAC,CAACzmQ,EACxB,EACF,CAqBF,GAGAoC,EAAQuwW,GAAc,SAASgsC,CAAQ,CAAEC,CAAM,EAC7CJ,EAA0B,CAACI,EAAO,CAAG,WACnC,MAAO,CACL7uI,SAAU,IACVrlP,KAAKlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAGvB,GAAIy/Y,cAAAA,GAA0Bz/Y,MAAAA,EAAK0/Y,SAAS,CAAChvT,MAAM,CAAC,GAAY,CAC9D,IAAIpuE,EAAQtiB,EAAK0/Y,SAAS,CAACp9X,KAAK,CAACimV,GACjC,GAAIjmV,EAAO,CACTtiB,EAAK62I,IAAI,CAAC,YAAa,IAAI8yN,OAAOrnV,CAAK,CAAC,EAAE,CAAEA,CAAK,CAAC,EAAE,GACpD,MACF,CACF,CAEAjM,EAAMib,MAAM,CAACtxB,CAAI,CAACy/Y,EAAO,CAAE,SAAgC5+Y,CAAK,EAC9Db,EAAK62I,IAAI,CAAC4oQ,EAAQ5+Y,EACpB,EACF,CACF,CACF,CACF,GAGAoC,EAAQ,CAAC,MAAO,SAAU,OAAO,CAAE,SAASqkQ,CAAQ,EAClD,IAAIg4I,EAAan7B,GAAmB,MAAQ78G,EAC5C+3I,CAAAA,EAA0B,CAACC,EAAW,CAAG,WACvC,MAAO,CACL1uI,SAAU,GACVrlP,KAAKlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAEvB,IAAI2rB,EAAO27O,CAEM,UAAbA,GACAt3O,+BAAAA,EAASrxB,IAAI,CAAC4E,EAAQw5D,IAAI,CAAC,WAC7BpxC,EAAO,YACP3rB,EAAKgkX,KAAK,CAACr4V,EAAK,CAAG,cAIrB3rB,EAAK8wB,QAAQ,CAACwuX,EAAY,SAASz+Y,CAAK,EACtC,GAAI,CAACA,EAAO,CACO,SAAbymQ,GACFtnQ,EAAK62I,IAAI,CAAClrH,EAAM,MAElB,MACF,CAEA3rB,EAAK62I,IAAI,CAAClrH,EAAM9qB,EAClB,EACF,CACF,CACF,CACF,GAKA,IAAI8+Y,GAAe,CACjBC,YAAaxxX,EACbyxX,gBAWF,SAA+BC,CAAO,CAAEn0X,CAAI,EAC1Cm0X,EAAQC,KAAK,CAAGp0X,CAClB,EAZEq0X,eAAgB5xX,EAChB6xX,aAAc7xX,EACd8xX,UAAW9xX,EACX+xX,aAAc/xX,EACdgyX,cAAehyX,CACjB,EAEIiyX,GAAgB,aAChBC,GAAkB,eAwDtB,SAASC,GAAe9lT,CAAQ,CAAEx7E,CAAM,CAAE5B,CAAM,CAAEmlV,CAAQ,CAAEihB,CAAY,EACtE,IAAI,CAAC+8B,UAAU,CAAG,EAAE,CAGpB,IAAI,CAACC,MAAM,CAAG,CAAC,EACf,IAAI,CAACC,SAAS,CAAG,CAAC,EAClB,IAAI,CAACC,QAAQ,CAAGr8Y,KAAAA,EAChB,IAAI,CAACy7Y,KAAK,CAAGt8B,EAAaxkW,EAAO0M,IAAI,EAAI1M,EAAO2hY,MAAM,EAAI,IAAIvjY,GAC9D,IAAI,CAACwjY,MAAM,CAAG,GACd,IAAI,CAACC,SAAS,CAAG,GACjB,IAAI,CAACC,MAAM,CAAG,GACd,IAAI,CAACpiD,QAAQ,CAAG,GAChB,IAAI,CAACqiD,UAAU,CAAG,GAClB,IAAI,CAACC,YAAY,CAAGtB,GAEpB,IAAI,CAAC17B,SAAS,CAAGxpR,EACjB,IAAI,CAACymT,SAAS,CAAG1+C,EAEjB2+C,GAAc,IAAI,CACpB,CApBAZ,GAAe17Y,OAAO,CAAG,CAAC,WAAY,SAAU,SAAU,WAAY,eAAe,CAsBrF07Y,GAAejgZ,SAAS,CAAG,CAYzB8gZ,qBACEn+Y,EAAQ,IAAI,CAACu9Y,UAAU,CAAE,SAASV,CAAO,EACvCA,EAAQsB,kBAAkB,EAC5B,EACF,EAaAC,mBACEp+Y,EAAQ,IAAI,CAACu9Y,UAAU,CAAE,SAASV,CAAO,EACvCA,EAAQuB,gBAAgB,EAC1B,EACF,EAuBAzB,YAAYE,CAAO,EAGjB7wC,GAAwB6wC,EAAQC,KAAK,CAAE,SACvC,IAAI,CAACS,UAAU,CAACp6Y,IAAI,CAAC05Y,GAEjBA,EAAQC,KAAK,EACf,KAAI,CAACD,EAAQC,KAAK,CAAC,CAAGD,CAAM,EAG9BA,EAAQmB,YAAY,CAAG,IAAI,EAI7BpB,gBAAgBC,CAAO,CAAEwB,CAAO,EAC9B,IAAIC,EAAUzB,EAAQC,KAAK,CAEvB,IAAI,CAACwB,EAAQ,GAAKzB,GACpB,OAAO,IAAI,CAACyB,EAAQ,CAEtB,IAAI,CAACD,EAAQ,CAAGxB,EAChBA,EAAQC,KAAK,CAAGuB,CAClB,EAkBAtB,eAAeF,CAAO,EAChBA,EAAQC,KAAK,EAAI,IAAI,CAACD,EAAQC,KAAK,CAAC,GAAKD,GAC3C,OAAO,IAAI,CAACA,EAAQC,KAAK,CAAC,CAE5B98Y,EAAQ,IAAI,CAAC09Y,QAAQ,CAAE,SAAS9/Y,CAAK,CAAE8qB,CAAI,EAEzC,IAAI,CAACs0X,YAAY,CAACt0X,EAAM,KAAMm0X,EAChC,EAAG,IAAI,EACP78Y,EAAQ,IAAI,CAACw9Y,MAAM,CAAE,SAAS5/Y,CAAK,CAAE8qB,CAAI,EAEvC,IAAI,CAACs0X,YAAY,CAACt0X,EAAM,KAAMm0X,EAChC,EAAG,IAAI,EACP78Y,EAAQ,IAAI,CAACy9Y,SAAS,CAAE,SAAS7/Y,CAAK,CAAE8qB,CAAI,EAE1C,IAAI,CAACs0X,YAAY,CAACt0X,EAAM,KAAMm0X,EAChC,EAAG,IAAI,EAEPr1C,GAAY,IAAI,CAAC+1C,UAAU,CAAEV,GAC7BA,EAAQmB,YAAY,CAAGtB,EACzB,EAYAO,YACE,IAAI,CAACgB,SAAS,CAACp2X,WAAW,CAAC,IAAI,CAACm5V,SAAS,CAAEu9B,IAC3C,IAAI,CAACN,SAAS,CAACn2X,QAAQ,CAAC,IAAI,CAACk5V,SAAS,CAAEw9B,IACxC,IAAI,CAACZ,MAAM,CAAG,GACd,IAAI,CAACC,SAAS,CAAG,GACjB,IAAI,CAACG,YAAY,CAACf,SAAS,EAC7B,EAkBAC,eACE,IAAI,CAACe,SAAS,CAAC7kC,QAAQ,CAAC,IAAI,CAAC4H,SAAS,CAAEu9B,GAAgBC,GAAc,IAAMnB,IAC5E,IAAI,CAACO,MAAM,CAAG,GACd,IAAI,CAACC,SAAS,CAAG,GACjB,IAAI,CAACE,UAAU,CAAG,GAClB/9Y,EAAQ,IAAI,CAACu9Y,UAAU,CAAE,SAASV,CAAO,EACvCA,EAAQK,YAAY,EACtB,EACF,EAeAuB,gBACEz+Y,EAAQ,IAAI,CAACu9Y,UAAU,CAAE,SAASV,CAAO,EACvCA,EAAQ4B,aAAa,EACvB,EACF,EASAtB,gBACE,IAAI,CAACc,SAAS,CAACn2X,QAAQ,CAAC,IAAI,CAACk5V,SAAS,CAAEq8B,IACxC,IAAI,CAACU,UAAU,CAAG,GAClB,IAAI,CAACC,YAAY,CAACb,aAAa,EACjC,CACF,EA0BAuB,GAAqB,CACnBC,MAAOrB,GACPhwV,IAAI++F,CAAM,CAAE/nE,CAAQ,CAAEt9E,CAAU,EAC9B,IAAIuvC,EAAO81G,CAAM,CAAC/nE,EAAS,CACtB/tC,EAIW,KADFA,EAAKp1C,OAAO,CAAC6F,IAEvBuvC,EAAKpzC,IAAI,CAAC6D,GAJZqlJ,CAAM,CAAC/nE,EAAS,CAAG,CAACt9E,EAAW,EAQnC43Y,MAAMvyP,CAAM,CAAE/nE,CAAQ,CAAEt9E,CAAU,EAChC,IAAIuvC,EAAO81G,CAAM,CAAC/nE,EAAS,CACtB/tC,IAGLixT,GAAYjxT,EAAMvvC,GACE,IAAhBuvC,EAAK73C,MAAM,EACb,OAAO2tJ,CAAM,CAAC/nE,EAAS,CAE3B,CACF,GAkKA,IAAIu6T,GAAuB,SAASC,CAAQ,EAC1C,MAAO,CAAC,WAAY,SAAU,SAASp7Y,CAAQ,CAAEygP,CAAM,EAqErD,MApEoB,CAClBz7N,KAAM,OACNvV,SAAU2rY,EAAW,MAAQ,IAC7B7qT,QAAS,CAAC,OAAQ,UAAU,CAC5BjtF,WAAYs2Y,GACZl5J,QAAS,SAAuB26J,CAAW,CAAEhiZ,CAAI,EAE/CgiZ,EAAYj3X,QAAQ,CAACy2X,IAAgBz2X,QAAQ,CAACk3X,IAE9C,IAAIC,EAAWliZ,EAAK2rB,IAAI,CAAG,OAAUo2X,EAAAA,KAAY/hZ,EAAK4gZ,MAAM,EAAG,SAE/D,MAAO,CACLj1B,IAAK,SAAuBt1W,CAAK,CAAE2rY,CAAW,CAAEhiZ,CAAI,CAAEmiZ,CAAK,EACzD,IAAIl4Y,EAAak4Y,CAAK,CAAC,EAAE,CAGzB,GAAI,CAAE,YAAYniZ,CAAG,EAAI,CAOvB,IAAIoiZ,EAAuB,SAASzhZ,CAAK,EACvC0V,EAAM4iF,MAAM,CAAC,WACXhvF,EAAWo3Y,gBAAgB,GAC3Bp3Y,EAAWm2Y,aAAa,EAC1B,GAEAz/Y,EAAMwB,cAAc,EACtB,EAEA6/Y,CAAW,CAAC,EAAE,CAACjgZ,gBAAgB,CAAC,SAAUqgZ,GAI1CJ,EAAYllX,EAAE,CAAC,WAAY,WACzBn2B,EAAS,WACPq7Y,CAAW,CAAC,EAAE,CAAC9/Y,mBAAmB,CAAC,SAAUkgZ,EAC/C,EAAG,EAAG,GACR,EACF,CAGAC,CADqBF,CAAK,CAAC,EAAE,EAAIl4Y,EAAWg3Y,YAAY,EACzCrB,WAAW,CAAC31Y,GAE3B,IAAIomQ,EAAS6xI,EAAWI,EAAUr4Y,EAAW81Y,KAAK,EAAI3xX,EAElD8zX,IACF7xI,EAAOh6P,EAAOpM,GACdjK,EAAK8wB,QAAQ,CAACoxX,EAAU,SAASnxX,CAAQ,EACnC9mB,EAAW81Y,KAAK,GAAKhvX,IACzBs/O,EAAOh6P,EAAO/R,KAAAA,GACd2F,EAAWg3Y,YAAY,CAACpB,eAAe,CAAC51Y,EAAY8mB,GAEpDs/O,CADAA,EAASiyI,EAAUr4Y,EAAW81Y,KAAK,GAC5B1pY,EAAOpM,GAChB,IAEF+3Y,EAAYllX,EAAE,CAAC,WAAY,WACzB7yB,EAAWg3Y,YAAY,CAACjB,cAAc,CAAC/1Y,GACvComQ,EAAOh6P,EAAO/R,KAAAA,GACdi/E,EAAOt5E,EAAY01Y,GACrB,EACF,CACF,CACF,CACF,EAIA,SAAS2C,EAAU1mC,CAAU,QAC3B,KAAIA,EAEKx0H,EAAO,YAAYn+N,MAAM,CAE3Bm+N,EAAOw0H,GAAY3yV,MAAM,EAAImF,CACtC,CACF,EAAE,EAGAm0X,GAAgBT,KAChBU,GAAkBV,GAAqB,IAK3C,SAASX,GAAch2Y,CAAQ,EAC7BA,EAASs3Y,YAAY,CAAG,CAAC,EACzBt3Y,EAASs3Y,YAAY,CAACC,GAAc,CAAG,CAAEv3Y,CAAAA,EAASs3Y,YAAY,CAACR,GAAY,CAAG92Y,EAAS84W,SAAS,CAACz8U,QAAQ,CAACy6W,GAAW,CACvH,CACA,SAASN,GAAqB1qO,CAAO,EACnC,IAAI2qO,EAAQ3qO,EAAQ2qO,KAAK,CACrBrxV,EAAM0mH,EAAQ1mH,GAAG,CACjBsxV,EAAQ5qO,EAAQ4qO,KAAK,CAkEzB,SAASc,EAAkBlgD,CAAI,CAAE5rP,CAAS,CAAE+rS,CAAW,EACjDA,GAAe,CAACngD,EAAKggD,YAAY,CAAC5rS,EAAU,EAC9C4rP,EAAKy+C,SAAS,CAACn2X,QAAQ,CAAC03U,EAAKwhB,SAAS,CAAEptQ,GACxC4rP,EAAKggD,YAAY,CAAC5rS,EAAU,CAAG,IACtB,CAAC+rS,GAAengD,EAAKggD,YAAY,CAAC5rS,EAAU,GACrD4rP,EAAKy+C,SAAS,CAACp2X,WAAW,CAAC23U,EAAKwhB,SAAS,CAAEptQ,GAC3C4rP,EAAKggD,YAAY,CAAC5rS,EAAU,CAAG,GAEnC,CAEA,SAASgsS,EAAoBpgD,CAAI,CAAEqgD,CAAkB,CAAElvQ,CAAO,EAG5D+uQ,EAAkBlgD,EAAMw/C,GAFxBa,CAAAA,EAAqBA,EAAqB,IAAMn0C,GAAWm0C,EAAoB,KAAO,IAE5BlvQ,CAAY,IAAZA,GAC1D+uQ,EAAkBlgD,EAAMigD,GAAgBI,EAAoBlvQ,CAAY,IAAZA,EAC9D,CA/EAguQ,EAAMthZ,SAAS,CAAC2/Y,YAAY,CAAG,SAAS6C,CAAkB,CAAExlX,CAAK,CAAErzB,CAAU,MAiCvE84Y,EAesBp3X,EAOGA,EAtDzBq0U,EAAY1iU,IAgDXmlU,IA/Cc,CA8CO92U,EA9CL,WA+CN,EACb82U,CAAAA,IAhDiB,CAgDZ92U,EAAK,CAAG,CAAC,GAEhB4kC,EAAIkyS,IAlDe,CAkDV92U,EAAK,CAlDmBm3X,EAAoB74Y,KAsDjDw4V,IApDkB,CAmDO92U,EAnDL,WAoDV,EACZk2X,EAAMp/C,IArDc,CAqDT92U,EAAK,CArDkBm3X,EAAoB74Y,GAuDpD+4Y,GAAcvgD,IAvDI,CAuDC92U,EAAK,GAC1B82U,CAAAA,IAxDoB,CAwDf92U,EAAK,CAAGrnB,KAAAA,CAAQ,GAtDlB8lW,EAAU9sU,GAITA,GACFukX,EAAM,IAAI,CAACpB,MAAM,CAAEqC,EAAoB74Y,GACvCsmD,EAAI,IAAI,CAACmwV,SAAS,CAAEoC,EAAoB74Y,KAExCsmD,EAAI,IAAI,CAACkwV,MAAM,CAAEqC,EAAoB74Y,GACrC43Y,EAAM,IAAI,CAACnB,SAAS,CAAEoC,EAAoB74Y,KAR5C43Y,EAAM,IAAI,CAACpB,MAAM,CAAEqC,EAAoB74Y,GACvC43Y,EAAM,IAAI,CAACnB,SAAS,CAAEoC,EAAoB74Y,IAUxC,IAAI,CAAC02Y,QAAQ,EACfgC,EAAkB,IAAI,CAAEtC,GAAe,IACvC,IAAI,CAACU,MAAM,CAAG,IAAI,CAACpiD,QAAQ,CAAGr6V,KAAAA,EAC9Bu+Y,EAAoB,IAAI,CAAE,GAAI,QAE9BF,EAAkB,IAAI,CAAEtC,GAAe,IACvC,IAAI,CAACU,MAAM,CAAGiC,GAAc,IAAI,CAACvC,MAAM,EACvC,IAAI,CAAC9hD,QAAQ,CAAG,CAAC,IAAI,CAACoiD,MAAM,CAC5B8B,EAAoB,IAAI,CAAE,GAAI,IAAI,CAAC9B,MAAM,GASzCgC,EADE,IAAI,CAACpC,QAAQ,EAAI,IAAI,CAACA,QAAQ,CAACmC,EAAmB,CACpCx+Y,KAAAA,GACP,IAAI,CAACm8Y,MAAM,CAACqC,EAAmB,KAE/B,IAAI,CAACpC,SAAS,CAACoC,EAAmB,EAG3B,MAGlBD,EAAoB,IAAI,CAAEC,EAAoBC,GAC9C,IAAI,CAAC9B,YAAY,CAAChB,YAAY,CAAC6C,EAAoBC,EAAe,IAAI,CACxE,CAkCF,CAEA,SAASC,GAAc/jW,CAAG,EACxB,GAAIA,EACF,KAAK,IAAI8d,KAAQ9d,EACf,GAAIA,EAAIvvB,cAAc,CAACqtC,GACrB,MAAO,EAEX,CAEF,MAAO,EACT,CAYA,IAAIkmV,GAAkB,gFAElBC,GAAe,6LACfC,GAAgB,mDAChBC,GAAc,6BACdC,GAAuB,iEACvBC,GAAc,qBACdC,GAAe,oBACfC,GAAc,0CAElB,IAAMC,GAAY,IAChB,GAAI,CAEF,OADA,IAAIlkR,IAAI1+H,GACD,EACT,CAAE,MAAOi+B,EAAO,CACd,MAAO,EACT,CACF,EAGA,IAAI4kX,GAA2Bj4C,KAC/BxoW,EAAQ,sCAAsC6qB,KAAK,CAAC,KAAM,SAASrM,CAAI,EACrEiiY,EAAwB,CAACjiY,EAAK,CAAG,EACnC,GAEA,IAAI+nE,GAAY,CAgGd,KA2lCF,SAAuBnzE,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEyiW,CAAI,CAAEoa,CAAQ,CAAExc,CAAQ,EACnEsjD,GAActtY,EAAO9S,EAASvD,EAAMyiW,EAAMoa,EAAUxc,GACpDujD,GAAqBnhD,EACvB,EAx/BE,KAAQohD,GAAoB,OAAQT,GAC7BU,GAAiBV,GAAa,CAAC,OAAQ,KAAM,KAAK,EAClD,cAoGP,iBAAkBS,GAAoB,gBAAiBR,GACnDS,GAAiBT,GAAsB,CAAC,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,MAAM,EACpF,2BAqGJ,KAAQQ,GAAoB,OAAQL,GAChCM,GAAiBN,GAAa,CAAC,KAAM,KAAM,KAAM,MAAM,EACxD,gBAsGH,KAAQK,GAAoB,OAAQP,GA6xBtC,SAAoBS,CAAO,CAAEC,CAAY,EACvC,GAAIn0T,EAAOk0T,GACT,OAAOA,EAGT,GAAIzwT,EAASywT,GAAU,CACrBT,GAAYp4P,SAAS,CAAG,EACxB,IAAIpsC,EAAQwkS,GAAY3mI,IAAI,CAAConI,GAC7B,GAAIjlS,EAAO,CACT,IAAI1P,EAAO,CAAC0P,CAAK,CAAC,EAAE,CAChBhG,EAAO,CAACgG,CAAK,CAAC,EAAE,CAChB3jB,EAAQ,EACRiD,EAAU,EACVq8C,EAAU,EACVwpQ,EAAe,EACf/H,EAAaH,GAAuB3sS,GAUxC,OAPI40S,IACF7oT,EAAQ6oT,EAAan1S,QAAQ,GAC7BzQ,EAAU4lT,EAAal1S,UAAU,GACjC2rC,EAAUupQ,EAAa5tS,UAAU,GACjC6tS,EAAeD,EAAaE,eAAe,IAGtC,IAAIzsY,KAAK23F,EAAM,EAAG8sS,EAAW3mV,OAAO,GAT7B,CAACujD,EAAO,GAAK,EAS8B3d,EAAOiD,EAASq8C,EAASwpQ,EACpF,CACF,CAEA,OAAO1iW,GACT,EA3zB+D,YAuG7D,MAASsiW,GAAoB,QAASN,GACnCO,GAAiBP,GAAc,CAAC,OAAQ,KAAK,EAC7C,WAuHH,OAy0BF,SAAyBltY,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEyiW,CAAI,CAAEoa,CAAQ,CAAExc,CAAQ,MAKjE8jD,EACAC,EA2BEC,EAhCNC,GAAgBjuY,EAAO9S,EAASvD,EAAMyiW,GACtC8hD,GAAsB9hD,GACtBkhD,GAActtY,EAAO9S,EAASvD,EAAMyiW,EAAMoa,EAAUxc,GAKhDroS,CAAAA,EAAUh4D,EAAK+pF,GAAG,GAAK/pF,EAAKwkZ,KAAK,IACnC/hD,EAAK/D,WAAW,CAAC30Q,GAAG,CAAG,SAASlpF,CAAK,EACnC,OAAO4hW,EAAKnE,QAAQ,CAACz9V,IAAUm/V,EAAYmkD,IAAWtjZ,GAASsjZ,CACjE,EAEAnkZ,EAAK8wB,QAAQ,CAAC,MAAO,SAAS8qF,CAAG,EAC/BuoS,EAASM,GAAmB7oS,GAE5B6mP,EAAKiiD,SAAS,EAChB,IAGE1sV,CAAAA,EAAUh4D,EAAKgqF,GAAG,GAAKhqF,EAAK2kZ,KAAK,IACnCliD,EAAK/D,WAAW,CAAC10Q,GAAG,CAAG,SAASnpF,CAAK,EACnC,OAAO4hW,EAAKnE,QAAQ,CAACz9V,IAAUm/V,EAAYokD,IAAWvjZ,GAASujZ,CACjE,EAEApkZ,EAAK8wB,QAAQ,CAAC,MAAO,SAAS8qF,CAAG,EAC/BwoS,EAASK,GAAmB7oS,GAE5B6mP,EAAKiiD,SAAS,EAChB,IAGE1sV,CAAAA,EAAUh4D,EAAKyZ,IAAI,GAAKzZ,EAAK4kZ,MAAM,IAErCniD,EAAK/D,WAAW,CAACjlV,IAAI,CAAG,SAASorY,CAAU,CAAEC,CAAS,EACpD,OAAOriD,EAAKnE,QAAQ,CAACwmD,IAAc9kD,EAAYqkD,IACxCU,GAAeD,EAAWX,GAAU,EAAGE,EAChD,EAEArkZ,EAAK8wB,QAAQ,CAAC,OAAQ,SAAS8qF,CAAG,EAChCyoS,EAAUI,GAAmB7oS,GAE7B6mP,EAAKiiD,SAAS,EAChB,GAEJ,EAnxBE,IA25BF,SAAsBruY,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEyiW,CAAI,CAAEoa,CAAQ,CAAExc,CAAQ,EAGlEsjD,GAActtY,EAAO9S,EAASvD,EAAMyiW,EAAMoa,EAAUxc,GACpDujD,GAAqBnhD,GAErBA,EAAKuiD,YAAY,CAAG,MACpBviD,EAAK/D,WAAW,CAAC9sV,GAAG,CAAG,SAASizY,CAAU,CAAEC,CAAS,EACnD,IAAIjkZ,EAAQgkZ,GAAcC,EAC1B,OAAOriD,EAAKnE,QAAQ,CAACz9V,IAAU4iZ,GAAU5iZ,EAC3C,CACF,EAp0BE,MAs0BF,SAAwBwV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEyiW,CAAI,CAAEoa,CAAQ,CAAExc,CAAQ,EAGpEsjD,GAActtY,EAAO9S,EAASvD,EAAMyiW,EAAMoa,EAAUxc,GACpDujD,GAAqBnhD,GAErBA,EAAKuiD,YAAY,CAAG,QACpBviD,EAAK/D,WAAW,CAACvwS,KAAK,CAAG,SAAS02V,CAAU,CAAEC,CAAS,EACrD,IAAIjkZ,EAAQgkZ,GAAcC,EAC1B,OAAOriD,EAAKnE,QAAQ,CAACz9V,IAAUqiZ,GAAa5hZ,IAAI,CAACT,EACnD,CACF,EAjvBE,MAmvBF,SAAwBwV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEyiW,CAAI,EAChD,IAAIwiD,EAAS,CAACjlZ,EAAKklZ,MAAM,EAAI72V,UAAAA,EAAKruD,EAAKklZ,MAAM,EAEzCllD,EAAYhgW,EAAK2rB,IAAI,GACvBpoB,EAAQvD,IAAI,CAAC,OAAQopW,KAcvB7lW,EAAQu5B,EAAE,CAAC,QAXI,SAASqoX,CAAE,EACxB,IAAItkZ,CACA0C,CAAAA,CAAO,CAAC,EAAE,CAAC4mI,OAAO,GACpBtpI,EAAQb,EAAKa,KAAK,CACdokZ,GACFpkZ,CAAAA,EAAQwtD,EAAKxtD,EAAK,EAEpB4hW,EAAKjrQ,aAAa,CAAC32F,EAAOskZ,GAAMA,EAAG1jY,IAAI,EAE3C,GAIAghV,EAAKhrQ,OAAO,CAAG,WACb,IAAI52F,EAAQb,EAAKa,KAAK,CAClBokZ,GACFpkZ,CAAAA,EAAQwtD,EAAKxtD,EAAK,EAEpB0C,CAAO,CAAC,EAAE,CAAC4mI,OAAO,CAAItpI,IAAU4hW,EAAKnyE,UAAU,EAGjDtwR,EAAK8wB,QAAQ,CAAC,QAAS2xU,EAAKhrQ,OAAO,CACrC,EA7pBE,MAgeF,SAAwBphF,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEyiW,CAAI,CAAEoa,CAAQ,CAAExc,CAAQ,EACpEikD,GAAgBjuY,EAAO9S,EAASvD,EAAMyiW,GACtC8hD,GAAsB9hD,GACtBkhD,GAActtY,EAAO9S,EAASvD,EAAMyiW,EAAMoa,EAAUxc,GAEpD,IAAI+kD,EAAgB3iD,EAAK4iD,qBAAqB,EAAI9hZ,UAAAA,CAAO,CAAC,EAAE,CAACke,IAAI,CAC7D0iY,EAASiB,EAAgB,EAAI9gZ,KAAAA,EAC7B8/Y,EAASgB,EAAgB,IAAM9gZ,KAAAA,EAC/B+/Y,EAAUe,EAAgB,EAAI9gZ,KAAAA,EAC9B06D,EAAWz7D,CAAO,CAAC,EAAE,CAACy7D,QAAQ,CAC9BsmV,EAAattV,EAAUh4D,EAAK+pF,GAAG,EAC/Bw7T,EAAavtV,EAAUh4D,EAAKgqF,GAAG,EAC/Bw7T,EAAcxtV,EAAUh4D,EAAKyZ,IAAI,EAEjCgsY,EAAiBhjD,EAAKhrQ,OAAO,CAoDjC,SAASiuT,EAA2BC,CAAY,CAAEC,CAAQ,EAIxDriZ,EAAQvD,IAAI,CAAC2lZ,EAAc3lZ,CAAI,CAAC2lZ,EAAa,EAC7C3lZ,EAAK8wB,QAAQ,CAAC60X,EAAcC,EAC9B,CAxDAnjD,EAAKhrQ,OAAO,CAAG2tT,GAAiBptV,EAAUgH,EAAS6mV,cAAc,GAAK7tV,EAAUgH,EAAS8mV,aAAa,EAGpG,WACEL,IACAhjD,EAAKjrQ,aAAa,CAACj0F,EAAQq4G,GAAG,GAChC,EACA6pS,EAEEH,IACF7iD,EAAK/D,WAAW,CAAC30Q,GAAG,CAAGq7T,EAErB,WAA8B,MAAO,EAAM,EAE3C,SAAsBP,CAAU,CAAEC,CAAS,EACzC,OAAOriD,EAAKnE,QAAQ,CAACwmD,IAAc9kD,EAAYmkD,IAAWW,GAAaX,CACzE,EAEFuB,EAA2B,MAwC7B,SAAmB9pS,CAAG,EAGpB,GAFAuoS,EAASM,GAAmB7oS,IAExBkuP,EAAYrH,EAAKpE,WAAW,GAIhC,GAAI+mD,EAAe,CACjB,IAAIW,EAAQxiZ,EAAQq4G,GAAG,GAEnBuoS,EAAS4B,IACXA,EAAQ5B,EACR5gZ,EAAQq4G,GAAG,CAACmqS,IAEdtjD,EAAKjrQ,aAAa,CAACuuT,EACrB,MAEEtjD,EAAKiiD,SAAS,GAElB,IAxDIa,IACF9iD,EAAK/D,WAAW,CAAC10Q,GAAG,CAAGo7T,EAErB,WAA8B,MAAO,EAAM,EAE3C,SAAsBP,CAAU,CAAEC,CAAS,EACzC,OAAOriD,EAAKnE,QAAQ,CAACwmD,IAAc9kD,EAAYokD,IAAWU,GAAaV,CACzE,EAEFsB,EAA2B,MAiD7B,SAAmB9pS,CAAG,EAGpB,GAFAwoS,EAASK,GAAmB7oS,IAExBkuP,EAAYrH,EAAKpE,WAAW,GAIhC,GAAI+mD,EAAe,CACjB,IAAIW,EAAQxiZ,EAAQq4G,GAAG,GAEnBwoS,EAAS2B,IACXxiZ,EAAQq4G,GAAG,CAACwoS,GAEZ2B,EAAQ3B,EAASD,EAASA,EAASC,GAErC3hD,EAAKjrQ,aAAa,CAACuuT,EACrB,MAEEtjD,EAAKiiD,SAAS,GAElB,IAlEIc,IACF/iD,EAAK/D,WAAW,CAACjlV,IAAI,CAAG2rY,EACtB,WAIE,MAAO,CAACpmV,EAASgnV,YAAY,EAG/B,SAAuBnB,CAAU,CAAEC,CAAS,EAC1C,OAAOriD,EAAKnE,QAAQ,CAACwmD,IAAc9kD,EAAYqkD,IACxCU,GAAeD,EAAWX,GAAU,EAAGE,EAChD,EAEFqB,EAA2B,OAsD7B,SAAoB9pS,CAAG,EACrByoS,EAAUI,GAAmB7oS,GAEzBkuP,EAAYrH,EAAKpE,WAAW,IAK5B+mD,GAAiB3iD,EAAKnyE,UAAU,GAAK/sR,EAAQq4G,GAAG,GAClD6mP,EAAKjrQ,aAAa,CAACj0F,EAAQq4G,GAAG,IAG9B6mP,EAAKiiD,SAAS,GAElB,GACF,EA3iBE,SAmnBF,SAA2BruY,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEyiW,CAAI,CAAEoa,CAAQ,CAAExc,CAAQ,CAAEvpV,CAAO,CAAEswO,CAAM,EACxF,IAAI6+J,EAAYC,GAAkB9+J,EAAQ/wO,EAAO,cAAerW,EAAKmmZ,WAAW,CAAE,IAC9EC,EAAaF,GAAkB9+J,EAAQ/wO,EAAO,eAAgBrW,EAAKqmZ,YAAY,CAAE,IAMrF9iZ,EAAQu5B,EAAE,CAAC,QAJI,SAASqoX,CAAE,EACxB1iD,EAAKjrQ,aAAa,CAACj0F,CAAO,CAAC,EAAE,CAAC4mI,OAAO,CAAEg7Q,GAAMA,EAAG1jY,IAAI,CACtD,GAIAghV,EAAKhrQ,OAAO,CAAG,WACbl0F,CAAO,CAAC,EAAE,CAAC4mI,OAAO,CAAGs4N,EAAKnyE,UAAU,EAMtCmyE,EAAKnE,QAAQ,CAAG,SAASz9V,CAAK,EAC5B,MAAOA,CAAU,IAAVA,CACT,EAEA4hW,EAAK6jD,WAAW,CAAClgZ,IAAI,CAAC,SAASvF,CAAK,EAClC,OAAO2vQ,GAAO3vQ,EAAOolZ,EACvB,GAEAxjD,EAAKnrQ,QAAQ,CAAClxF,IAAI,CAAC,SAASvF,CAAK,EAC/B,OAAOA,EAAQolZ,EAAYG,CAC7B,EACF,EA7oBE,OAAUh4X,EACV,OAAUA,EACV,OAAUA,EACV,MAASA,EACT,KAAQA,CACV,EAEA,SAASw1X,GAAqBnhD,CAAI,EAChCA,EAAK6jD,WAAW,CAAClgZ,IAAI,CAAC,SAASvF,CAAK,EAClC,OAAO4hW,EAAKnE,QAAQ,CAACz9V,GAASA,EAAQA,EAAMmvB,QAAQ,EACtD,EACF,CAOA,SAAS2zX,GAActtY,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEyiW,CAAI,CAAEoa,CAAQ,CAAExc,CAAQ,EACnE,IA2BI1gU,EA3BAle,EAAO+hV,EAAUjgW,CAAO,CAAC,EAAE,CAACke,IAAI,EAKpC,GAAI,CAACo7V,EAAS90G,OAAO,CAAE,CACrB,IAAIw+I,EAAY,GAEhBhjZ,EAAQu5B,EAAE,CAAC,mBAAoB,WAC7BypX,EAAY,EACd,GAEAhjZ,EAAQu5B,EAAE,CAAC,oBAAqB,SAASqoX,CAAE,EAIrCnlD,CAAAA,EAAYmlD,EAAG3/Y,IAAI,GAAK2/Y,KAAAA,EAAG3/Y,IAAI,GACjC+gZ,CAAAA,EAAY,EAAI,CAEpB,GAEAhjZ,EAAQu5B,EAAE,CAAC,iBAAkB,WAC3BypX,EAAY,GACZ9mC,GACF,EACF,CAIA,IAAIA,EAAW,SAAS0lC,CAAE,EAKxB,GAJIxlX,IACF0gU,EAASr/U,KAAK,CAACpF,MAAM,CAAC+jB,GACtBA,EAAU,OAER4mX,GACJ,IAAI1lZ,EAAQ0C,EAAQq4G,GAAG,GACnBj7G,EAAQwkZ,GAAMA,EAAG1jY,IAAI,CAKZ,aAATA,GAAwB,EAAMyjY,MAAM,EAAIllZ,UAAAA,EAAKklZ,MAAM,EACrDrkZ,CAAAA,EAAQwtD,EAAKxtD,EAAK,EAMhB4hW,CAAAA,EAAKnyE,UAAU,GAAKzvR,GAAUA,KAAAA,GAAgB4hW,EAAK4iD,qBAAqB,GAC1E5iD,EAAKjrQ,aAAa,CAAC32F,EAAOF,GAE9B,EAEA4C,EAAQu5B,EAAE,CAAC,QAAS2iV,GAGpBl8W,EAAQu5B,EAAE,CAAC,SAAU2iV,GAMjBikC,EAAwB,CAACjiY,EAAK,EAAIghV,EAAK4iD,qBAAqB,EAAI5jY,IAASzhB,EAAKyhB,IAAI,EACpFle,EAAQu5B,EAAE,CAtwCkB,0BAswCuB,SAASqoX,CAAE,EAC5D,GAAI,CAACxlX,EAAS,CACZ,IAAIq/B,EAAW,IAAI,CAACwpS,EAAwB,CACxCg+C,EAAexnV,EAASynV,QAAQ,CAChCC,EAAmB1nV,EAAS2nV,YAAY,CAC5ChnX,EAAU0gU,EAASr/U,KAAK,CAAC,WACvB2e,EAAU,KACNq/B,CAAAA,EAASynV,QAAQ,GAAKD,GAAgBxnV,EAAS2nV,YAAY,GAAKD,CAAe,GACjFjnC,EAAS0lC,EAEb,EACF,CACF,GAGF1iD,EAAKhrQ,OAAO,CAAG,WAEb,IAAI52F,EAAQ4hW,EAAKnE,QAAQ,CAACmE,EAAKnyE,UAAU,EAAI,GAAKmyE,EAAKnyE,UAAU,CAC7D/sR,EAAQq4G,GAAG,KAAO/6G,GACpB0C,EAAQq4G,GAAG,CAAC/6G,EAEhB,CACF,CAkCA,SAASijZ,GAAiBpkD,CAAM,CAAErxG,CAAO,EACvC,OAAO,SAASu4J,CAAG,CAAEx7X,CAAI,MACnB0zF,EACAz3G,EAEJ,GAAIwoF,EAAO+2T,GACT,OAAOA,EAGT,GAAItzT,EAASszT,GAAM,CAOjB,GAHsB,MAAlBA,EAAIl2T,MAAM,CAAC,IAAck2T,MAAAA,EAAIl2T,MAAM,CAACk2T,EAAIjlZ,MAAM,CAAG,IACnDilZ,CAAAA,EAAMA,EAAIvnX,SAAS,CAAC,EAAGunX,EAAIjlZ,MAAM,CAAG,EAAC,EAEnCshZ,GAAgB3hZ,IAAI,CAACslZ,GACvB,OAAO,IAAInvY,KAAKmvY,GAKlB,GAHAlnD,EAAOx0M,SAAS,CAAG,EACnBpsC,EAAQ4gP,EAAO/iF,IAAI,CAACiqI,GAuBlB,OApBA9nS,EAAM0lC,KAAK,GAETn9I,EADE+jB,EACI,CACJ8xF,KAAM9xF,EAAKo2B,WAAW,GACtB67D,GAAIjyF,EAAKq2B,QAAQ,GAAK,EACtBg7D,GAAIrxF,EAAKmqC,OAAO,GAChB6nD,GAAIhyF,EAAKyjF,QAAQ,GACjBgO,GAAIzxF,EAAK0jF,UAAU,GACnBwO,GAAIlyF,EAAKgrF,UAAU,GACnBsmS,IAAKtxX,EAAK84X,eAAe,GAAK,GAChC,EAEM,CAAEhnS,KAAM,KAAMG,GAAI,EAAGZ,GAAI,EAAGW,GAAI,EAAGP,GAAI,EAAGS,GAAI,EAAGo/R,IAAK,CAAE,EAGhEz5Y,EAAQ67G,EAAO,SAASoP,CAAI,CAAElqH,CAAK,EAC7BA,EAAQqqP,EAAQ1sP,MAAM,EACxB0F,CAAAA,CAAG,CAACgnP,CAAO,CAACrqP,EAAM,CAAC,CAAG,CAACkqH,CAAG,CAE9B,GACO,IAAIz2G,KAAKpQ,EAAI61G,IAAI,CAAE71G,EAAIg2G,EAAE,CAAG,EAAGh2G,EAAIo1G,EAAE,CAAEp1G,EAAI+1G,EAAE,CAAE/1G,EAAIw1G,EAAE,CAAEx1G,EAAIi2G,EAAE,EAAI,EAAGj2G,IAAAA,EAAIq1Y,GAAG,EAAW,EAEjG,CAEA,OAAOn7V,GACT,CACF,CAEA,SAASsiW,GAAoBpiY,CAAI,CAAEi+U,CAAM,CAAE7tP,CAAS,CAAEmH,CAAM,EAC1D,OAAO,SAA8B3iG,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEyiW,CAAI,CAAEoa,CAAQ,CAAExc,CAAQ,CAAEvpV,CAAO,MAGtF+vY,EACAC,EAmCE3C,EAWAC,EAUN,SAAS2C,EAAYlmZ,CAAK,EAExB,OAAOA,GAAS,CAAEA,CAAAA,EAAM+0D,OAAO,EAAI/0D,EAAM+0D,OAAO,KAAO/0D,EAAM+0D,OAAO,EAAC,CACvE,CAEA,SAASoxV,EAAuBprS,CAAG,EACjC,OAAO5jD,EAAU4jD,IAAQ,CAAC/rB,EAAO+rB,GAAOqrS,EAAmCrrS,IAAQt3G,KAAAA,EAAYs3G,CACjG,CAEA,SAASqrS,EAAmCpmZ,CAAK,CAAEgmZ,CAAY,EAC7D,IAAI1vS,EAAWsrP,EAAKykD,QAAQ,CAACC,SAAS,CAAC,YAEnCL,GAAoBA,IAAqB3vS,GAG3C0vS,CAAAA,EAAet6C,GAAes6C,EAAcx6C,GAAiBy6C,GAAiB,EAGhF,IAAIM,EAAav1S,EAAUhxG,EAAOgmZ,GAKlC,MAHI,CAACtxW,MAAM6xW,IAAejwS,GACxBiwS,CAAAA,EAAa56C,GAAuB46C,EAAYjwS,EAAQ,EAEnDiwS,CACT,CAnFA9C,GAAgBjuY,EAAO9S,EAASvD,EAAMyiW,GACtCkhD,GAActtY,EAAO9S,EAASvD,EAAMyiW,EAAMoa,EAAUxc,GAIpDoC,EAAKuiD,YAAY,CAAGvjY,EACpBghV,EAAKnrQ,QAAQ,CAAClxF,IAAI,CAAC,SAASvF,CAAK,SAC/B,EAASy9V,QAAQ,CAACz9V,GAAe,KAE7B6+V,EAAOp+V,IAAI,CAACT,GAIPomZ,EAAmCpmZ,EAAOgmZ,SAGrD,GAEApkD,EAAK6jD,WAAW,CAAClgZ,IAAI,CAAC,SAASvF,CAAK,EAClC,GAAIA,GAAS,CAACgvF,EAAOhvF,GACnB,MAAMwmZ,GAAc,UAAW,8BAA+BxmZ,GAEhE,IAAIkmZ,EAAYlmZ,GAWd,OAFAgmZ,EAAe,KACfC,EAAmB,KACZ,GAVPD,EAAehmZ,EACf,IAAIs2G,EAAWsrP,EAAKykD,QAAQ,CAACC,SAAS,CAAC,YAKvC,OAJIhwS,IACF2vS,EAAmB3vS,EACnB0vS,EAAer6C,GAAuBq6C,EAAc1vS,EAAU,KAEzDrgG,EAAQ,QAAQjW,EAAOm4G,EAAQ7B,EAM1C,GAEIn/C,CAAAA,EAAUh4D,EAAK+pF,GAAG,GAAK/pF,EAAKwkZ,KAAK,IAEnC/hD,EAAK/D,WAAW,CAAC30Q,GAAG,CAAG,SAASlpF,CAAK,EACnC,MAAO,CAACkmZ,EAAYlmZ,IAAUm/V,EAAYmkD,IAAWtyS,EAAUhxG,IAAUsjZ,CAC3E,EACAnkZ,EAAK8wB,QAAQ,CAAC,MAAO,SAAS8qF,CAAG,EAC/BuoS,EAAS6C,EAAuBprS,GAChC6mP,EAAKiiD,SAAS,EAChB,IAGE1sV,CAAAA,EAAUh4D,EAAKgqF,GAAG,GAAKhqF,EAAK2kZ,KAAK,IAEnCliD,EAAK/D,WAAW,CAAC10Q,GAAG,CAAG,SAASnpF,CAAK,EACnC,MAAO,CAACkmZ,EAAYlmZ,IAAUm/V,EAAYokD,IAAWvyS,EAAUhxG,IAAUujZ,CAC3E,EACApkZ,EAAK8wB,QAAQ,CAAC,MAAO,SAAS8qF,CAAG,EAC/BwoS,EAAS4C,EAAuBprS,GAChC6mP,EAAKiiD,SAAS,EAChB,GA4BJ,CACF,CAEA,SAASJ,GAAgBjuY,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEyiW,CAAI,EACjD,IAAIr/O,EAAO7/G,CAAO,CAAC,EAAE,CACEk/V,CAAAA,EAAK4iD,qBAAqB,CAAG9zH,EAASnuK,EAAKpkD,QAAQ,IAExEyjS,EAAKnrQ,QAAQ,CAAClxF,IAAI,CAAC,SAASvF,CAAK,EAC/B,IAAIm+D,EAAWz7D,EAAQw5D,IAAI,CAACyrS,IAA4B,CAAC,EACzD,OAAOxpS,EAASynV,QAAQ,EAAIznV,EAAS2nV,YAAY,CAAGriZ,KAAAA,EAAYzD,CAClE,EAEJ,CAEA,SAAS0jZ,GAAsB9hD,CAAI,EACjCA,EAAKuiD,YAAY,CAAG,SACpBviD,EAAKnrQ,QAAQ,CAAClxF,IAAI,CAAC,SAASvF,CAAK,SAC/B,EAASy9V,QAAQ,CAACz9V,GAAoB,KAClCsiZ,GAAc7hZ,IAAI,CAACT,GAAemhL,WAAWnhL,SAEnD,GAEA4hW,EAAK6jD,WAAW,CAAClgZ,IAAI,CAAC,SAASvF,CAAK,EAClC,GAAI,CAAC4hW,EAAKnE,QAAQ,CAACz9V,GAAQ,CACzB,GAAI,CAACwrQ,EAASxrQ,GACZ,MAAMwmZ,GAAc,SAAU,gCAAiCxmZ,GAEjEA,EAAQA,EAAMmvB,QAAQ,EACxB,CACA,OAAOnvB,CACT,EACF,CAEA,SAAS4jZ,GAAmB7oS,CAAG,EAI7B,OAHI5jD,EAAU4jD,IAAQ,CAACywJ,EAASzwJ,IAC9BA,CAAAA,EAAMomE,WAAWpmE,EAAG,EAEf,EAAaA,GAAat3G,KAAAA,EAANs3G,CAC7B,CAUA,SAAS0rS,GAActqI,CAAG,EACxB,IAAIuqI,EAAYvqI,EAAIhtP,QAAQ,GACxBw3X,EAAqBD,EAAUnjZ,OAAO,CAAC,KAE3C,GAAIojZ,KAAAA,EAA2B,CAC7B,GAAI,GAAKxqI,GAAOA,EAAM,EAAG,CAEvB,IAAI16P,EAAQ,WAAWq6P,IAAI,CAAC4qI,GAE5B,GAAIjlY,EACF,OAAOwmC,OAAOxmC,CAAK,CAAC,EAAE,CAE1B,CAEA,OAAO,CACT,CAEA,OAAOilY,EAAU5lZ,MAAM,CAAG6lZ,EAAqB,CACjD,CAEA,SAASzC,GAAeD,CAAS,CAAE2C,CAAQ,CAAEhuY,CAAI,EAG/C,IA/BuBujQ,EAAAA,EAAAA,EA+BnBn8Q,EAAQioD,OAAOg8V,GAEf4C,EAAoB,CA5BhB1qI,GALeA,EAiCkBn8Q,EA5B3B,IAAOm8Q,EA6BjB2qI,EAAuB,CA7BnB3qI,GALeA,EAkCqByqI,EA7B9B,IAAOzqI,EA8BjB4qI,EAAmB,CA9Bf5qI,GALeA,EAmCiBvjQ,EA9B1B,IAAOujQ,EAkCrB,GAAI0qI,GAAqBC,GAAwBC,EAAkB,CAMjE,IAAIC,EAAanmW,KAAKu8D,GAAG,CAAC,GADPv8D,KAAKsoC,GAAG,CAJP09T,EAAoBJ,GAAczmZ,GAAS,EACxC8mZ,EAAuBL,GAAcG,GAAY,EACrDG,EAAmBN,GAAc7tY,GAAQ,IAK5D5Y,GAAgBgnZ,EAChBJ,GAAsBI,EACtBpuY,GAAcouY,EAEVH,GAAmB7mZ,CAAAA,EAAQ6gD,KAAK67D,KAAK,CAAC18G,EAAK,EAC3C8mZ,GAAsBF,CAAAA,EAAW/lW,KAAK67D,KAAK,CAACkqS,EAAQ,EACpDG,GAAkBnuY,CAAAA,EAAOioC,KAAK67D,KAAK,CAAC9jG,EAAI,CAC9C,CAEA,MAAO,CAAC5Y,EAAQ4mZ,CAAO,EAAKhuY,GAAS,CACvC,CAgPA,SAASysY,GAAkB9+J,CAAM,CAAEnwE,CAAO,CAAEtrJ,CAAI,CAAEiwV,CAAU,CAAEvzM,CAAQ,EACpE,IAAIy/O,EACJ,GAAI9vV,EAAU4jT,GAAa,CAEzB,GAAI,CAACksC,CADLA,EAAU1gK,EAAOw0H,EAAU,EACd7hB,QAAQ,CACnB,MAAMstD,GAAc,YAAa,yDACM17X,EAAMiwV,GAE/C,OAAOksC,EAAQ7wO,EACjB,CACA,OAAO5O,CACT,CA8MA,IAAI0/O,GAAiB,CAAC,WAAY,WAAY,UAAW,SACrD,SAAS1nD,CAAQ,CAAEwc,CAAQ,CAAE/lW,CAAO,CAAEswO,CAAM,EAC9C,MAAO,CACLhxO,SAAU,IACV8gF,QAAS,CAAC,WAAW,CACrB3rE,KAAM,CACJogW,IAAIt1W,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEmiZ,CAAK,EACzBA,CAAK,CAAC,EAAE,EACV,CAAC34T,EAAS,CAACg6Q,EAAUxjW,EAAKyhB,IAAI,EAAE,EAAI+nE,GAAUwzC,IAAI,EAAE3mH,EAAO9S,EAASvD,EAAMmiZ,CAAK,CAAC,EAAE,CAAEtlC,EAChCxc,EAAUvpV,EAASswO,EAE3E,CACF,CACF,CACF,EAAE,CAIE4gK,GAAwB,qBA0DxBC,GAAmB,WAOrB,SAASC,EAAmB3kZ,CAAO,CAAEvD,CAAI,CAAEa,CAAK,EAC9C,IAAI8kN,EAAY3tJ,EAAUn3D,GAASA,EAAQ,KAC3C0C,EAAQw5D,IAAI,CAAC,QAAS4oJ,GACtB3lN,EAAK62I,IAAI,CAAC,QAASh2I,EACrB,CAEA,MAAO,CACLuV,SAAU,IACVw6P,SAAU,IACVvpB,QAAAA,CAAQouJ,EAAK0S,IACX,GAA0B7mZ,IAAI,CAAC6mZ,EAAQC,OAAO,EACrC,SAA6B/xY,CAAK,CAAEujW,CAAG,CAAE55W,CAAI,EAClD,IAAIa,EAAQwV,EAAM6vP,KAAK,CAAClmQ,EAAKooZ,OAAO,EACpCF,EAAmBtuC,EAAK55W,EAAMa,EAChC,EAEO,SAAqBwV,CAAK,CAAEujW,CAAG,CAAE55W,CAAI,EAC1CqW,EAAMib,MAAM,CAACtxB,EAAKooZ,OAAO,CAAE,SAA0BvnZ,CAAK,EACxDqnZ,EAAmBtuC,EAAK55W,EAAMa,EAChC,EACF,CAGN,CACF,EAsDIwnZ,GAAkB,CAAC,WAAY,SAASpzX,CAAQ,EAClD,MAAO,CACL7e,SAAU,KACVixO,QAAS,SAAuBihK,CAAe,EAE7C,OADArzX,EAAS4wV,iBAAiB,CAACyiC,GACpB,SAAoBjyY,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAC7Ci1B,EAAS0wV,gBAAgB,CAACpiX,EAASvD,EAAKuoZ,MAAM,EAC9ChlZ,EAAUA,CAAO,CAAC,EAAE,CACpB8S,EAAMib,MAAM,CAACtxB,EAAKuoZ,MAAM,CAAE,SAA2B1nZ,CAAK,EACxD0C,EAAQmB,WAAW,CAAG0jI,GAAUvnI,EAClC,EACF,CACF,CACF,CACF,EAAE,CAsDE2nZ,GAA0B,CAAC,eAAgB,WAAY,SAAS/kC,CAAY,CAAExuV,CAAQ,EACxF,MAAO,CACLoyN,QAAS,SAA+BihK,CAAe,EAErD,OADArzX,EAAS4wV,iBAAiB,CAACyiC,GACpB,SAA4BjyY,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EACrD,IAAImuX,EAAgB1K,EAAalgX,EAAQvD,IAAI,CAACA,EAAKgkX,KAAK,CAACykC,cAAc,GACvExzX,EAAS0wV,gBAAgB,CAACpiX,EAAS4qX,EAAcyB,WAAW,EAC5DrsX,EAAUA,CAAO,CAAC,EAAE,CACpBvD,EAAK8wB,QAAQ,CAAC,iBAAkB,SAASjwB,CAAK,EAC5C0C,EAAQmB,WAAW,CAAGs7V,EAAYn/V,GAAS,GAAKA,CAClD,EACF,CACF,CACF,CACF,EAAE,CAkDE6nZ,GAAsB,CAAC,OAAQ,SAAU,WAAY,SAASxyY,CAAI,CAAEkxO,CAAM,CAAEnyN,CAAQ,EACtF,MAAO,CACL7e,SAAU,IACVixO,QAAS,SAA2BypB,CAAQ,CAAEC,CAAM,EAClD,IAAI43I,EAAmBvhK,EAAO2pB,EAAO63I,UAAU,EAC3CC,EAAkBzhK,EAAO2pB,EAAO63I,UAAU,CAAE,SAAoBhtS,CAAG,EAErE,OAAO1lG,EAAKgsV,OAAO,CAACtmP,EACtB,GAGA,OAFA3mF,EAAS4wV,iBAAiB,CAAC/0G,GAEpB,SAAwBz6P,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EACjDi1B,EAAS0wV,gBAAgB,CAACpiX,EAASvD,EAAK4oZ,UAAU,EAElDvyY,EAAMib,MAAM,CAACu3X,EAAiB,WAE5B,IAAIhoZ,EAAQ8nZ,EAAiBtyY,GAC7B9S,EAAQ4kC,IAAI,CAACjyB,EAAK4yY,cAAc,CAACjoZ,IAAU,GAC7C,EACF,CACF,CACF,CACF,EAAE,CAuEEkoZ,GAAoB/+C,EAAQ,CAC9B5zV,SAAU,IACV8gF,QAAS,UACT3rE,KAAKlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEyiW,CAAI,EAC7BA,EAAKumD,oBAAoB,CAAC5iZ,IAAI,CAAC,WAC7BiQ,EAAM6vP,KAAK,CAAClmQ,EAAKipZ,QAAQ,CAC3B,EACF,CACF,GASA,SAASC,GAAev9X,CAAI,CAAEk5H,CAAQ,MAEhCskQ,EAEJ,OAHAx9X,EAAO,UAAYA,EAGZ,CAAC,SAAU,SAASy7N,CAAM,EAC/B,MAAO,CACLhxO,SAAU,KACVmV,KAAKlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EACvB,IASIopZ,EATAxtC,EAAa57W,CAAI,CAAC2rB,EAAK,CAAC0iC,IAAI,GAC5Bg7V,EAAY,QAAY34T,MAAM,CAAC,IAAgBkrR,MAAAA,EAAWlrR,MAAM,CAAC,GAGjE44T,EAAkBliK,EAAOw0H,EADNytC,EAAYE,EAAcC,GAI7CC,EAAclmZ,EAAQiC,IAAI,CAAC,gBAC3BkkZ,EAAY,GA+ChB,SAASC,EAAkBC,CAAU,CAAEn/Y,CAAK,EAC1C,IAAIo/Y,EAAkB,EAAE,CAWxB,OATA5mZ,EAAQ2mZ,EAAY,SAAS/yS,CAAS,EAChCpsG,CAAAA,EAAQ,GAAKg/Y,CAAW,CAAC5yS,EAAU,IACrC4yS,CAAW,CAAC5yS,EAAU,CAAG,CAAC4yS,CAAW,CAAC5yS,EAAU,EAAI,GAAKpsG,EACrDg/Y,CAAW,CAAC5yS,EAAU,GAAK,CAAEpsG,CAAAA,EAAQ,IACvCo/Y,EAAgBzjZ,IAAI,CAACywG,GAG3B,GAEOgzS,EAAgB7gU,IAAI,CAAC,IAC9B,CAuBA,SAAS8gU,EAAmBC,CAAc,EACxC,GAAIL,IAAc7kQ,EAAU,KAlDxBmlQ,EACAC,EAEAC,EACAC,EAEAC,EACAC,EAJAH,EAAgBI,EAHhBN,EAAgBl8X,EAmDJs7X,GAlDZa,EAAgBn8X,EAkDYi8X,IA/C5BI,EAAaG,EAAgBL,EAAeD,GAE5CI,EAAiBT,EAAkBO,EAAe,IAClDG,EAAcV,EAAkBQ,EAAY,GAEhDnqZ,EAAKokX,SAAS,CAACimC,GACfrqZ,EAAKskX,YAAY,CAAC8lC,EA0ClB,CAEAhB,EAAiBW,CACnB,CAtFKN,IAGHA,EAAch+C,KACdloW,EAAQiC,IAAI,CAAC,eAAgBikZ,IAGlB,YAAT99X,IACGw9X,GACHA,CAAAA,EAAuB/hK,EAAO,SAAU,SAAmBxwG,CAAM,EAE/D,OAAOA,EAAAA,CACT,EAAC,EAGHvgI,EAAMib,MAAM,CAAC63X,EA4Cf,SAAiCoB,CAAS,MAvCtBC,EAKGA,CAsCjBD,CAAAA,IAAc1lQ,GA1ClB2lQ,EAAcb,EAAkB77X,EADd08X,EA4CLpB,GA3CuC,GACpDppZ,EAAKokX,SAAS,CAAComC,KAIfA,EAAcb,EAAkB77X,EADX08X,EAyCLpB,GAxCoC,IACpDppZ,EAAKskX,YAAY,CAACkmC,IA0ClBd,EAAYa,CACd,IApDAl0Y,EAAMib,MAAM,CAACg4X,EAxBKD,EA8ElB,SAAmCoB,CAAa,EAC9C,IAAIV,EAAiBP,EAAciB,GAE/BV,IAAmBX,GACrBU,EAAmBC,EAEvB,EApF0DD,EAwBfT,EAqE7C,CACF,CACF,EAAE,CAGF,SAASiB,EAAgBl4B,CAAO,CAAEC,CAAO,EACvC,GAAI,CAACD,GAAW,CAACA,EAAQzwX,MAAM,CAAE,MAAO,EAAE,CAC1C,GAAI,CAAC0wX,GAAW,CAACA,EAAQ1wX,MAAM,CAAE,OAAOywX,EAExC,IAAIpqX,EAAS,EAAE,CAEfsqX,EACA,IAAK,IAAI9tX,EAAI,EAAGA,EAAI4tX,EAAQzwX,MAAM,CAAE6C,IAAK,CAEvC,IAAK,IADD0yG,EAAQk7Q,CAAO,CAAC5tX,EAAE,CACbX,EAAI,EAAGA,EAAIwuX,EAAQ1wX,MAAM,CAAEkC,IAClC,GAAIqzG,IAAUm7Q,CAAO,CAACxuX,EAAE,CAAE,SAASyuX,EAErCtqX,EAAO5B,IAAI,CAAC8wG,EACd,CAEA,OAAOlvG,CACT,CAEA,SAAS8lB,EAAM08X,CAAW,EACxB,OAAOA,GAAeA,EAAY18X,KAAK,CAAC,IAC1C,CAEA,SAAS07X,EAAckB,CAAU,EAC/B,IAAIF,EAAcE,EAUlB,OARI/6X,EAAQ+6X,GACVF,EAAcE,EAAWrjZ,GAAG,CAACmiZ,GAAexgU,IAAI,CAAC,KACxCuoM,EAASm5H,IAClBF,CAAAA,EAAcziZ,OAAOZ,IAAI,CAACujZ,GACxB9mZ,MAAM,CAAC,SAASrC,CAAG,EAAI,OAAOmpZ,CAAU,CAACnpZ,EAAI,GAC7CynF,IAAI,CAAC,MAGFwhU,CACT,CAEA,SAASjB,EAAYmB,CAAU,EAC7B,IAAIC,EAAYD,EAEhB,GAAI/6X,EAAQ+6X,GACVC,EAAYD,EAAWrjZ,GAAG,CAACkiZ,QACtB,GAAIh4H,EAASm5H,GAAa,CAC/B,IAAIE,EAAe,GAEnBD,EAAY5iZ,OAAOZ,IAAI,CAACujZ,GAAY9mZ,MAAM,CAAC,SAASrC,CAAG,EACrD,IAAIV,EAAQ6pZ,CAAU,CAACnpZ,EAAI,CAM3B,MAJI,CAACqpZ,GAAgB5qD,EAAYn/V,IAC/B+pZ,CAAAA,EAAe,EAAG,EAGb/pZ,CACT,GAEI+pZ,GAGFD,EAAUvkZ,IAAI,CAAC9B,KAAAA,EAEnB,CAEA,OAAOqmZ,CACT,CACF,CA0LA,IAAIE,GAAmB3B,GAAe,GAAI,IA8GtC4B,GAAsB5B,GAAe,MAAO,GA8G5C6B,GAAuB7B,GAAe,OAAQ,GAuD9C8B,GAAmB9L,GAAY,CACjC73J,QAAQ9jP,CAAO,CAAEvD,CAAI,EACnBA,EAAK62I,IAAI,CAAC,UAAWvyI,KAAAA,GACrBf,EAAQunB,WAAW,CAAC,WACtB,CACF,GAuOImgY,GAAwB,CAAC,WAC3B,MAAO,CACL70Y,SAAU,IACVC,MAAO,GACPpM,WAAY,IACZ2mQ,SAAU,GACZ,CACF,EAAE,CA0PEs6I,GAAoB,CAAC,EAKrBC,GAAmB,CACrB,KAAQ,GACR,MAAS,EACX,EACAloZ,EACE,8IAA8I6qB,KAAK,CAAC,KACpJ,SAASs/E,CAAS,EAChB,IAAIvN,EAAgBskR,GAAmB,MAAQ/2Q,EAC/C89S,CAAAA,EAAiB,CAACrrT,EAAc,CAAG,CAAC,SAAU,aAAc,SAASunJ,CAAM,CAAEvwO,CAAU,EACrF,MAAO,CACLT,SAAU,IACVixO,QAAQ5sJ,CAAQ,CAAEz6F,CAAI,EAKpB,IAAIk7N,EAAKksB,EAAOpnP,CAAI,CAAC6/F,EAAc,EACnC,OAAO,SAAwBxpF,CAAK,CAAE9S,CAAO,EAC3CA,EAAQu5B,EAAE,CAACswE,EAAW,SAASzsG,CAAK,EAClC,IAAImF,EAAW,WACbo1N,EAAG7kN,EAAO,CAACm1C,OAAQ7qD,CAAK,EAC1B,CACIwqZ,CAAAA,EAAgB,CAAC/9S,EAAU,EAAIv2F,EAAWs7F,OAAO,CACnD97F,EAAMspG,UAAU,CAAC75G,GAEjBuQ,EAAM4iF,MAAM,CAACnzF,EAEjB,EACF,CACF,CACF,CACF,EAAE,GA2fN,IAAIslZ,GAAgB,CAAC,WAAY,WAAY,SAAS5oD,CAAQ,CAAEvtU,CAAQ,EACtE,MAAO,CACL85V,aAAc,GACdp0O,WAAY,UACZi2H,SAAU,IACVC,SAAU,GACVz6P,SAAU,IACV6yW,MAAO,GACP19V,KAAKlO,CAAM,CAAEo9E,CAAQ,CAAEupR,CAAK,CAAEvhB,CAAI,CAAEC,CAAW,MACzCh/R,EACA+tM,EACA45I,EACJhuY,EAAOiU,MAAM,CAAC0yV,EAAMsnC,IAAI,CAAE,SAAyBzqZ,CAAK,EAElDA,EACG4wQ,GACHixF,EAAY,SAASl+N,CAAK,CAAEisH,CAAQ,EAClCghB,EAAahhB,EACbjsH,CAAK,CAACA,EAAM7iI,MAAM,GAAG,CAAGszB,EAASixV,eAAe,CAAC,WAAYlC,EAAMsnC,IAAI,EAIvE5nV,EAAQ,CACN8gE,MAAOA,CACT,EACAg+N,EAASz3F,KAAK,CAACvmI,EAAO/pC,EAAS92E,MAAM,GAAI82E,EAC3C,IAGE4wT,IACFA,EAAiB1jZ,MAAM,GACvB0jZ,EAAmB,MAEjB55I,IACFA,EAAW90P,QAAQ,GACnB80P,EAAa,MAEX/tM,IACF2nV,EAAmBj8C,GAAc1rS,EAAM8gE,KAAK,EAC5Cg+N,EAASU,KAAK,CAACmoD,GAAkBjnR,IAAI,CAAC,SAAS52H,CAAQ,EACpC,KAAbA,GAAoB69Y,CAAAA,EAAmB,IAAG,CAChD,GACA3nV,EAAQ,MAGd,EACF,CACF,CACF,EAAE,CAoLE6nV,GAAqB,CAAC,mBAAoB,gBAAiB,WAC7C,SAASpyQ,CAAgB,CAAIopN,CAAa,CAAIC,CAAQ,EACtE,MAAO,CACLpsV,SAAU,MACVw6P,SAAU,IACVC,SAAU,GACVl2H,WAAY,UACZ1wI,WAAYuhB,EAAQ4C,IAAI,CACxBi5N,QAAQ9jP,CAAO,CAAEvD,CAAI,EACnB,IAAIwrZ,EAASxrZ,EAAKyrZ,SAAS,EAAIzrZ,EAAK4sL,GAAG,CACnCo2K,EAAYhjW,EAAKwrH,MAAM,EAAI,GAC3Bs3O,EAAgB9iW,EAAK+iW,UAAU,CAEnC,OAAO,SAAS1sV,CAAK,CAAEokF,CAAQ,CAAEupR,CAAK,CAAEvhB,CAAI,CAAEC,CAAW,EACvD,IACIC,EACA+oD,EACA9oD,EAHA+oD,EAAgB,EAKhBC,EAA4B,WAC1BF,IACFA,EAAgB/jZ,MAAM,GACtB+jZ,EAAkB,MAEhB/oD,IACFA,EAAahmV,QAAQ,GACrBgmV,EAAe,MAEbC,IACFJ,EAASU,KAAK,CAACN,GAAgBx+N,IAAI,CAAC,SAAS52H,CAAQ,EAClC,KAAbA,GAAoBk+Y,CAAAA,EAAkB,IAAG,CAC/C,GACAA,EAAkB9oD,EAClBA,EAAiB,KAErB,EAEAvsV,EAAMib,MAAM,CAACk6X,EAAQ,SAA8B5+N,CAAG,EACpD,IAAIi/N,EAAiB,SAASr+Y,CAAQ,EACnB,KAAbA,GAAsBwqD,EAAU8qS,IACjC,EAACA,GAAiBzsV,EAAM6vP,KAAK,CAAC48F,EAAa,GAC1CP,GAEN,EACIupD,EAAe,EAAEH,EAEjB/+N,GAGFzzC,EAAiByzC,EAAK,IAAM9rL,IAAI,CAAC,SAAS0M,CAAQ,EAChD,IAAI6I,EAAMg1W,WAAW,EAEjBygC,IAAiBH,GACrB,IAAIl7J,EAAWp6O,EAAMgG,IAAI,EACzBomV,CAAAA,EAAKz4V,QAAQ,CAAGwD,EAQhB,IAAIg3H,EAAQk+N,EAAYjyG,EAAU,SAASjsH,CAAK,EAC9ConR,IACAppD,EAASz3F,KAAK,CAACvmI,EAAO,KAAM/pC,GAAU2pC,IAAI,CAACynR,EAC7C,GAEAlpD,EAAelyG,EACfmyG,EAAiBp+N,EAEjBm+N,EAAa13U,KAAK,CAAC,wBAAyB2hK,GAC5Cv2K,EAAM6vP,KAAK,CAAC88F,GACd,EAAG,WACG3sV,EAAMg1W,WAAW,EAEjBygC,IAAiBH,IACnBC,IACAv1Y,EAAM4U,KAAK,CAAC,uBAAwB2hK,GAExC,GACAv2K,EAAM4U,KAAK,CAAC,2BAA4B2hK,KAExCg/N,IACAnpD,EAAKz4V,QAAQ,CAAG,KAEpB,EACF,CACF,CACF,CACF,EAAE,CAOE+hZ,GAAgC,CAAC,WACnC,SAAS92X,CAAQ,EACf,MAAO,CACL7e,SAAU,MACVw6P,SAAU,KACV15K,QAAS,YACT3rE,KAAKlV,CAAK,CAAEokF,CAAQ,CAAEupR,CAAK,CAAEvhB,CAAI,EAC/B,GAAIzyU,EAASrxB,IAAI,CAAC87F,CAAQ,CAAC,EAAE,EAAEn4E,KAAK,CAAC,OAAQ,CAI3Cm4E,EAASryD,KAAK,GACdnT,EAAS67U,GAAoBrO,EAAKz4V,QAAQ,CAAEjD,EAAOjF,QAAQ,EAAEo3Q,UAAU,EAAE7iQ,EACrE,SAA+BmuH,CAAK,EACtC/pC,EAAS9xD,MAAM,CAAC67F,EAClB,EAAG,CAACynP,oBAAqBxxR,CAAQ,GACjC,MACF,CAEAA,EAAStyD,IAAI,CAACs6T,EAAKz4V,QAAQ,EAC3BirB,EAASwlE,EAAS6oQ,QAAQ,IAAIjtV,EAChC,CACF,CACF,EAAE,CAkEA21Y,GAAkB9M,GAAY,CAChCtuI,SAAU,IACVvpB,QAAAA,IACS,EACLskI,IAAIt1W,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,EACvB/a,EAAM6vP,KAAK,CAAC90O,EAAM66X,MAAM,CAC1B,CACF,EAEJ,GA6FIC,GAAkB,WACpB,MAAO,CACL91Y,SAAU,IACVw6P,SAAU,IACV15K,QAAS,UACT3rE,KAAKlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEyiW,CAAI,EAC7B,IAAI0pD,EAASnsZ,EAAKmsZ,MAAM,EAAI,KACxBC,EAAapsZ,UAAAA,EAAKklZ,MAAM,CACxB38O,EAAY6jP,EAAa/9V,EAAK89V,GAAUA,EAiB5C1pD,EAAKnrQ,QAAQ,CAAClxF,IAAI,CAfN,SAAS0+Y,CAAS,EAE5B,IAAI9kD,EAAY8kD,IAEhB,IAAItrW,EAAO,EAAE,CAQb,OANIsrW,GACF7hZ,EAAQ6hZ,EAAUh3X,KAAK,CAACy6I,GAAY,SAAS1nK,CAAK,EAC5CA,GAAO24C,EAAKpzC,IAAI,CAACgmZ,EAAa/9V,EAAKxtD,GAASA,EAClD,GAGK24C,EACT,GAGAipT,EAAK6jD,WAAW,CAAClgZ,IAAI,CAAC,SAASvF,CAAK,EAClC,GAAI8uB,EAAQ9uB,GACV,OAAOA,EAAMmoF,IAAI,CAACmjU,EAItB,GAGA1pD,EAAKnE,QAAQ,CAAG,SAASz9V,CAAK,EAC5B,MAAO,CAACA,GAAS,CAACA,EAAMc,MAAM,CAElC,CACF,CACF,EAgBIsgZ,GAAc,WAEdS,GAAgB,aAChBlB,GAAiB,cACjBC,GAAc,WACd4K,GAAkB,eAClBC,GAAgB,aAChBC,GAAc,WACdC,GAAkB,eAElBnF,GAAgBv/C,EAAO,WAqO3B,SAAS2kD,GAAkBpvY,CAAM,CAAEilW,CAAiB,CAAE0B,CAAK,CAAEvpR,CAAQ,CAAE2sJ,CAAM,CAAEo7G,CAAQ,CAAE77V,CAAQ,CAAE8R,CAAE,CAAEgrW,CAAY,EACjH,IAAI,CAACnzF,UAAU,CAAGxnO,OAAOvH,GAAG,CAC5B,IAAI,CAAC88S,WAAW,CAAGv1S,OAAOvH,GAAG,CAC7B,IAAI,CAACmrW,eAAe,CAAGpoZ,KAAAA,EACvB,IAAI,CAACo6V,WAAW,CAAG,CAAC,EACpB,IAAI,CAACiuD,gBAAgB,CAAG,CAAC,EACzB,IAAI,CAACr1T,QAAQ,CAAG,EAAE,CAClB,IAAI,CAACgvT,WAAW,CAAG,EAAE,CACrB,IAAI,CAAC0C,oBAAoB,CAAG,EAAE,CAC9B,IAAI,CAAC4D,UAAU,CAAG,GAClB,IAAI,CAACC,QAAQ,CAAG,GAChB,IAAI,CAAC/L,SAAS,CAAG,GACjB,IAAI,CAACD,MAAM,CAAG,GACd,IAAI,CAACE,MAAM,CAAG,GACd,IAAI,CAACpiD,QAAQ,CAAG,GAChB,IAAI,CAAC8hD,MAAM,CAAG,CAAC,EACf,IAAI,CAACC,SAAS,CAAG,CAAC,EAClB,IAAI,CAACC,QAAQ,CAAGr8Y,KAAAA,EAChB,IAAI,CAACy7Y,KAAK,CAAGt8B,EAAaO,EAAMr4V,IAAI,EAAI,GAAI,IAAOtO,GACnD,IAAI,CAAC4jY,YAAY,CAAGtB,GACpB,IAAI,CAACuH,QAAQ,CAAG1/C,EAChB,IAAI,CAACslD,cAAc,CAAG,GAEtB,IAAI,CAACC,oBAAoB,CAAG,IAAI,CAACA,oBAAoB,CAACjuZ,IAAI,CAAC,IAAI,EAE/D,IAAI,CAACkuZ,eAAe,CAAG5lK,EAAO48H,EAAM7sR,OAAO,EAC3C,IAAI,CAAC81T,qBAAqB,CAAG,IAAI,CAACD,eAAe,CAAC/jY,MAAM,CACxD,IAAI,CAACikY,YAAY,CAAG,IAAI,CAACF,eAAe,CACxC,IAAI,CAACG,YAAY,CAAG,IAAI,CAACF,qBAAqB,CAC9C,IAAI,CAACG,iBAAiB,CAAG,KACzB,IAAI,CAACC,aAAa,CAAG/oZ,KAAAA,EAErB,IAAI,CAACgpZ,wBAAwB,CAAG,EAIhCvlZ,OAAO0lH,cAAc,CAAC,IAAI,CAAE,UAAW,CAAC5sH,MAAOwc,CAAM,GACrD,IAAI,CAACkwY,MAAM,CAAGvpC,EACd,IAAI,CAACC,SAAS,CAAGxpR,EACjB,IAAI,CAACymT,SAAS,CAAG1+C,EACjB,IAAI,CAACgrD,SAAS,CAAG7mZ,EACjB,IAAI,CAAC83X,OAAO,CAAGr3I,EACf,IAAI,CAAC20I,GAAG,CAAGtjX,EACX,IAAI,CAACg1Y,kBAAkB,CAAGnrC,EAE1B6+B,GAAc,IAAI,EAClBuM,SA4vByBjrD,CAAI,EAS7BA,EAAK8sB,OAAO,CAACj+V,MAAM,CAAC,SAAsBjb,CAAK,EAC7C,IAAIwuY,EAAapiD,EAAKyqD,YAAY,CAAC72Y,GAanC,OARIwuY,IAAepiD,EAAKpE,WAAW,EAGhCoE,CAAAA,EAAKpE,WAAW,EAAKoE,EAAKpE,WAAW,EAAIwmD,GAAeA,CAAS,GAElEpiD,EAAKkrD,eAAe,CAAC9I,GAGhBA,CACT,EACF,EArxBoB,IAAI,CACxB,CAhDA4H,GAAkB5nZ,OAAO,CAAG,CAAC,SAAU,oBAAqB,SAAU,WAAY,SAAU,WAAY,WAAY,KAAM,eAAe,CAkDzI4nZ,GAAkBnsZ,SAAS,CAAG,CAC5BstZ,sBACE,GAAI,IAAI,CAAC1G,QAAQ,CAACC,SAAS,CAAC,gBAAiB,CAC3C,IAAI0G,EAAoB,IAAI,CAACpvB,OAAO,CAAC,IAAI,CAAC8uB,MAAM,CAACp2T,OAAO,CAAG,MACvD22T,EAAoB,IAAI,CAACrvB,OAAO,CAAC,IAAI,CAAC8uB,MAAM,CAACp2T,OAAO,CAAG,SAE3D,KAAI,CAAC+1T,YAAY,CAAG,SAAS7vY,CAAM,EACjC,IAAIwnY,EAAa,IAAI,CAACmI,eAAe,CAAC3vY,GAItC,OAHIw2B,EAAWgxW,IACbA,CAAAA,EAAagJ,EAAkBxwY,EAAM,EAEhCwnY,CACT,EACA,IAAI,CAACsI,YAAY,CAAG,SAAS9vY,CAAM,CAAE0T,CAAQ,EACvC8iB,EAAW,IAAI,CAACm5W,eAAe,CAAC3vY,IAClCywY,EAAkBzwY,EAAQ,CAAC0wY,KAAMh9X,CAAQ,GAEzC,IAAI,CAACk8X,qBAAqB,CAAC5vY,EAAQ0T,EAEvC,CACF,MAAO,GAAI,CAAC,IAAI,CAACi8X,eAAe,CAAC/jY,MAAM,CACrC,MAAMo+X,GAAc,YAAa,mDAC7B,IAAI,CAACkG,MAAM,CAACp2T,OAAO,CAAEw1Q,GAAY,IAAI,CAACsX,SAAS,EAEvD,EAuBAxsR,QAASrpE,EAoBTkwU,SAAAA,GAES0B,EAAYn/V,IAAUA,KAAAA,GAAgBA,OAAAA,GAAkBA,GAAUA,EAG3EmtZ,qBAAqBntZ,CAAK,EACpB,IAAI,CAACy9V,QAAQ,CAACz9V,IAChB,IAAI,CAACqgZ,SAAS,CAACp2X,WAAW,CAAC,IAAI,CAACm5V,SAAS,CAAEuoC,IAC3C,IAAI,CAACtL,SAAS,CAACn2X,QAAQ,CAAC,IAAI,CAACk5V,SAAS,CAAEsoC,MAExC,IAAI,CAACrL,SAAS,CAACp2X,WAAW,CAAC,IAAI,CAACm5V,SAAS,CAAEsoC,IAC3C,IAAI,CAACrL,SAAS,CAACn2X,QAAQ,CAAC,IAAI,CAACk5V,SAAS,CAAEuoC,IAE5C,EAaArM,eACE,IAAI,CAACU,MAAM,CAAG,GACd,IAAI,CAACC,SAAS,CAAG,GACjB,IAAI,CAACI,SAAS,CAACp2X,WAAW,CAAC,IAAI,CAACm5V,SAAS,CAAEw9B,IAC3C,IAAI,CAACP,SAAS,CAACn2X,QAAQ,CAAC,IAAI,CAACk5V,SAAS,CAAEu9B,GAC1C,EAaAtB,YACE,IAAI,CAACW,MAAM,CAAG,GACd,IAAI,CAACC,SAAS,CAAG,GACjB,IAAI,CAACI,SAAS,CAACp2X,WAAW,CAAC,IAAI,CAACm5V,SAAS,CAAEu9B,IAC3C,IAAI,CAACN,SAAS,CAACn2X,QAAQ,CAAC,IAAI,CAACk5V,SAAS,CAAEw9B,IACxC,IAAI,CAACR,YAAY,CAACf,SAAS,EAC7B,EAcAwB,gBACE,IAAI,CAACmL,QAAQ,CAAG,GAChB,IAAI,CAACD,UAAU,CAAG,GAClB,IAAI,CAAC1L,SAAS,CAAC7kC,QAAQ,CAAC,IAAI,CAAC4H,SAAS,CAAEooC,GAAiBC,GAC3D,EAaA2B,cACE,IAAI,CAACpB,QAAQ,CAAG,GAChB,IAAI,CAACD,UAAU,CAAG,GAClB,IAAI,CAAC1L,SAAS,CAAC7kC,QAAQ,CAAC,IAAI,CAAC4H,SAAS,CAAEqoC,GAAeD,GACzD,EA2FAjL,qBACE,IAAI,CAACoM,SAAS,CAAC5xY,MAAM,CAAC,IAAI,CAACwxY,iBAAiB,EAC5C,IAAI,CAAC98H,UAAU,CAAG,IAAI,CAAC49H,wBAAwB,CAC/C,IAAI,CAACz2T,OAAO,EACd,EAcAitT,YAEE,IAAI56C,EAAY,IAAI,CAACzL,WAAW,GAIhC,IAAIymD,EAAY,IAAI,CAACoJ,wBAAwB,CAKzCrJ,EAAa,IAAI,CAAC6H,eAAe,CAEjCyB,EAAY,IAAI,CAACpN,MAAM,CACvBqN,EAAiB,IAAI,CAAC/vD,WAAW,CAEjCgwD,EAAe,IAAI,CAACnH,QAAQ,CAACC,SAAS,CAAC,gBAEvC3rJ,EAAO,IAAI,CACf,IAAI,CAAC8yJ,eAAe,CAACzJ,EAAYC,EAAW,SAAS1vQ,CAAQ,EAGtDi5Q,GAAgBF,IAAc/4Q,IAKjComH,EAAK6iG,WAAW,CAAGjpN,EAAWyvQ,EAAavgZ,KAAAA,EAEvCk3P,EAAK6iG,WAAW,GAAK+vD,GACvB5yJ,EAAK+yJ,mBAAmB,GAG9B,GACF,EAEAD,gBAAgBzJ,CAAU,CAAEC,CAAS,CAAE0J,CAAY,EACjD,IAAI,CAAClB,wBAAwB,GAC7B,IAeMmB,EAoBAC,EAgBAC,EACAv5Q,EApDFw5Q,EAAuB,IAAI,CAACtB,wBAAwB,CACpD9xJ,EAAO,IAAI,CAGf,GAWMizJ,EAAWjzJ,EAAKwpJ,YAAY,EAAI,QACpC,GAAgBxpJ,EAAK6xJ,aAAa,GAChCwB,EAAYJ,EAAU,cAEjBjzJ,EAAK6xJ,aAAa,GACrBpqZ,EAAQu4P,EAAKkjG,WAAW,CAAE,SAAS56Q,CAAC,CAAEn4D,CAAI,EACxCkjY,EAAYljY,EAAM,KACpB,GACA1oB,EAAQu4P,EAAKmxJ,gBAAgB,CAAE,SAAS7oU,CAAC,CAAEn4D,CAAI,EAC7CkjY,EAAYljY,EAAM,KACpB,IAGFkjY,EAAYJ,EAAUjzJ,EAAK6xJ,aAAa,GACjC7xJ,EAAK6xJ,aAAa,KAMvBqB,EAAsB,GAC1BzrZ,EAAQu4P,EAAKkjG,WAAW,CAAE,SAAS37J,CAAS,CAAEp3K,CAAI,EAChD,IAAI2E,EAAS81K,CAAAA,CAAQrD,EAAU8hN,EAAYC,GAC3C4J,EAAsBA,GAAuBp+X,EAC7Cu+X,EAAYljY,EAAM2E,EACpB,IACKo+X,IACHzrZ,EAAQu4P,EAAKmxJ,gBAAgB,CAAE,SAAS7oU,CAAC,CAAEn4D,CAAI,EAC7CkjY,EAAYljY,EAAM,KACpB,OAxCuB,CACzBmjY,EAAe,IACf,MACF,CAqEA,SAASD,EAAYljY,CAAI,CAAEioH,CAAO,EAC5Bg7Q,IAAyBpzJ,EAAK8xJ,wBAAwB,EACxD9xJ,EAAKykJ,YAAY,CAACt0X,EAAMioH,EAE5B,CAEA,SAASk7Q,EAAe15Q,CAAQ,EAC1Bw5Q,IAAyBpzJ,EAAK8xJ,wBAAwB,EAExDkB,EAAap5Q,EAEjB,CApCMu5Q,EAAoB,EAAE,CACtBv5Q,EAAW,GACfnyI,EAAQu4P,EAAKmxJ,gBAAgB,CAAE,SAAS5pN,CAAS,CAAEp3K,CAAI,EACrD,IAAI3mB,EAAU+9L,EAAU8hN,EAAYC,GACpC,GAAI,CAACz6C,EAAcrlW,GACjB,MAAMqiZ,GAAc,YAClB,6EAAgFriZ,GAEpF6pZ,EAAYljY,EAAMrnB,KAAAA,GAClBqqZ,EAAkBvoZ,IAAI,CAACpB,EAAQlE,IAAI,CAAC,WAClC+tZ,EAAYljY,EAAM,GACpB,EAAG,WACDypH,EAAW,GACXy5Q,EAAYljY,EAAM,GACpB,GACF,GACKgjY,EAAkBhtZ,MAAM,CAG3B65P,EAAKugI,GAAG,CAACjhX,GAAG,CAAC6zY,GAAmB7tZ,IAAI,CAAC,WACnCguZ,EAAe15Q,EACjB,EAAGhnH,GAJH0gY,EAAe,GAoBrB,EAaAzN,mBACE,IAAIyD,EAAY,IAAI,CAACx0H,UAAU,CAE/B,IAAI,CAACk9H,SAAS,CAAC5xY,MAAM,CAAC,IAAI,CAACwxY,iBAAiB,EAKxC,KAAI,CAACc,wBAAwB,GAAKpJ,GAAcA,KAAAA,GAAqB,IAAI,CAACO,qBAAqB,IAGnG,IAAI,CAAC2I,oBAAoB,CAAClJ,GAC1B,IAAI,CAACoJ,wBAAwB,CAAGpJ,EAG5B,IAAI,CAAChE,SAAS,EAChB,IAAI,CAACZ,SAAS,GAEhB,IAAI,CAAC6O,kBAAkB,GACzB,EAEAA,qBAEE,IAAIlK,EADY,IAAI,CAACqJ,wBAAwB,CAEzC1yJ,EAAO,IAAI,CAIf,GAFA,IAAI,CAAC6xJ,aAAa,CAAGrtD,CAAAA,EAAY6kD,IAAcvgZ,KAAAA,EAE3C,IAAI,CAAC+oZ,aAAa,CACpB,KAAK,IAAI7oZ,EAAI,EAAGA,EAAI,IAAI,CAAC8yF,QAAQ,CAAC31F,MAAM,CAAE6C,IAExC,GAAIw7V,EADJ6kD,EAAa,IAAI,CAACvtT,QAAQ,CAAC9yF,EAAE,CAACqgZ,IACD,CAC3B,IAAI,CAACwI,aAAa,CAAG,GACrB,KACF,CACF,CAEEvjD,EAAY,IAAI,CAACzL,WAAW,GAE9B,KAAI,CAACA,WAAW,CAAG,IAAI,CAAC6uD,YAAY,CAAC,IAAI,CAAC39B,OAAO,GAEnD,IAAI6+B,EAAiB,IAAI,CAAC/vD,WAAW,CACjCgwD,EAAe,IAAI,CAACnH,QAAQ,CAACC,SAAS,CAAC,gBAqB3C,SAAS6H,IACHxzJ,EAAK6iG,WAAW,GAAK+vD,GACvB5yJ,EAAK+yJ,mBAAmB,EAE5B,CAxBA,IAAI,CAAC7B,eAAe,CAAG7H,EAEnBwJ,IACF,IAAI,CAAChwD,WAAW,CAAGwmD,EACnBmK,KAKF,IAAI,CAACV,eAAe,CAACzJ,EAAY,IAAI,CAACqJ,wBAAwB,CAAE,SAAS94Q,CAAQ,EAC1Ei5Q,IAKH7yJ,EAAK6iG,WAAW,CAAGjpN,EAAWyvQ,EAAavgZ,KAAAA,EAC3C0qZ,IAEJ,EAOF,EAEAT,sBACE,IAAI,CAACpB,YAAY,CAAC,IAAI,CAAC59B,OAAO,CAAE,IAAI,CAAClxB,WAAW,EAChDp7V,EAAQ,IAAI,CAAC+lZ,oBAAoB,CAAE,SAASvpC,CAAQ,EAClD,GAAI,CACFA,GACF,CAAE,MAAO/1U,EAAG,CAEV,IAAI,CAAC+jX,kBAAkB,CAAC/jX,EAC1B,CACF,EAAG,IAAI,CACT,EAqDA8tD,cAAc32F,CAAK,CAAEqsC,CAAO,EAC1B,IAAI,CAACojP,UAAU,CAAGzvR,EACd,IAAI,CAACqmZ,QAAQ,CAACC,SAAS,CAAC,oBAC1B,IAAI,CAAC8H,yBAAyB,CAAC/hX,EAEnC,EAEA+hX,0BAA0B/hX,CAAO,EAC/B,IAAIgiX,EAAgB,IAAI,CAAChI,QAAQ,CAACC,SAAS,CAAC,YAExC96I,EAAS6iJ,CAAa,CAAChiX,EAAQ,EACjCgiX,EAAgBA,CAAa,CAAChiX,EAAQ,CAC7Bm/N,EAAS6iJ,EAAc,OAAU,GAC1CA,CAAAA,EAAgBA,EAAc,OAAU,EAG1C,IAAI,CAAC1B,SAAS,CAAC5xY,MAAM,CAAC,IAAI,CAACwxY,iBAAiB,EAC5C,IAAI5xJ,EAAO,IAAI,CACX0zJ,EAAgB,EAClB,IAAI,CAAC9B,iBAAiB,CAAG,IAAI,CAACI,SAAS,CAAC,WACtChyJ,EAAK6lJ,gBAAgB,EACvB,EAAG6N,GACM,IAAI,CAAC3/B,OAAO,CAACn9Q,KAAK,CAACD,OAAO,CACnC,IAAI,CAACkvS,gBAAgB,GAErB,IAAI,CAAC9xB,OAAO,CAACt2R,MAAM,CAAC,WAClBuiK,EAAK6lJ,gBAAgB,EACvB,EAEJ,EA+BA8N,sBAAsB1nY,CAAO,EAC3B,IAAI,CAACy/X,QAAQ,CAAG,IAAI,CAACA,QAAQ,CAACkI,WAAW,CAAC3nY,GAC1C,IAAI,CAAC4nY,mBAAmB,EAC1B,EAiHAC,qBACE,IAAIxK,EAAY,IAAI,CAACyK,QAAQ,EAEzB,KAAI,CAACj/H,UAAU,GAAKw0H,IACtB,IAAI,CAACkJ,oBAAoB,CAAClJ,GAC1B,IAAI,CAACx0H,UAAU,CAAG,IAAI,CAAC49H,wBAAwB,CAAGpJ,EAClD,IAAI,CAACrtT,OAAO,GAEZ,IAAI,CAAC62T,eAAe,CAAC,IAAI,CAACjwD,WAAW,CAAE,IAAI,CAAC/tE,UAAU,CAAEliQ,GAE5D,EAKAmhY,WAKE,IAJA,IAAIj1X,EAAa,IAAI,CAACgsX,WAAW,CAC7Bv3G,EAAMz0Q,EAAW34B,MAAM,CAEvBmjZ,EAAY,IAAI,CAACzmD,WAAW,CACzBtvD,KACL+1G,EAAYxqX,CAAU,CAACy0Q,EAAI,CAAC+1G,GAG9B,OAAOA,CACT,EAKA6I,gBAAgB9I,CAAU,EACxB,IAAI,CAACxmD,WAAW,CAAG,IAAI,CAACquD,eAAe,CAAG7H,EAC1C,IAAI,CAACwI,aAAa,CAAG/oZ,KAAAA,EACrB,IAAI,CAACgrZ,kBAAkB,EACzB,EAEAD,sBACM,IAAI,CAACvC,cAAc,EACrB,IAAI,CAAC7oC,SAAS,CAAC32U,GAAG,CAAC,IAAI,CAACw/W,cAAc,CAAE,IAAI,CAACC,oBAAoB,EAGnE,IAAI,CAACD,cAAc,CAAG,IAAI,CAAC5F,QAAQ,CAACC,SAAS,CAAC,YAC1C,IAAI,CAAC2F,cAAc,EACrB,IAAI,CAAC7oC,SAAS,CAACnnV,EAAE,CAAC,IAAI,CAACgwX,cAAc,CAAE,IAAI,CAACC,oBAAoB,CAEpE,EAEAA,qBAAqB5H,CAAE,EACrB,IAAI,CAAC8J,yBAAyB,CAAC9J,GAAMA,EAAG1jY,IAAI,CAC9C,CACF,EAmDAkgY,GAAqB,CACnBC,MAAO6K,GACPl8V,IAAI++F,CAAM,CAAE/nE,CAAQ,EAClB+nE,CAAM,CAAC/nE,EAAS,CAAG,EACrB,EACAs6T,MAAMvyP,CAAM,CAAE/nE,CAAQ,EACpB,OAAO+nE,CAAM,CAAC/nE,EAAS,CAE3B,GA+LA,IAAIioU,GAAmB,CAAC,aAAc,SAAS34Y,CAAU,EACvD,MAAO,CACLT,SAAU,IACV8gF,QAAS,CAAC,UAAW,SAAU,mBAAmB,CAClDjtF,WAAYwiZ,GAIZ77I,SAAU,EACVvpB,QAAS,SAAwB9jP,CAAO,EAItC,OAFAA,EAAQwnB,QAAQ,CAACy2X,IAAgBz2X,QAAQ,CAACshY,IAAiBthY,QAAQ,CAACk3X,IAE7D,CACLt2B,IAAK,SAAwBt1W,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEmiZ,CAAK,EACtD,IAAIsN,EAAYtN,CAAK,CAAC,EAAE,CACpBuN,EAAWvN,CAAK,CAAC,EAAE,EAAIsN,EAAUxO,YAAY,CAC7C0O,EAAcxN,CAAK,CAAC,EAAE,CAEtBwN,GACFF,CAAAA,EAAUvI,QAAQ,CAAGyI,EAAYzI,QAAQ,EAG3CuI,EAAU7B,mBAAmB,GAG7B8B,EAAS9P,WAAW,CAAC6P,GAErBzvZ,EAAK8wB,QAAQ,CAAC,OAAQ,SAASC,CAAQ,EACjC0+X,EAAU1P,KAAK,GAAKhvX,GACtB0+X,EAAUxO,YAAY,CAACpB,eAAe,CAAC4P,EAAW1+X,EAEtD,GAEA1a,EAAM4G,GAAG,CAAC,WAAY,WACpBwyY,EAAUxO,YAAY,CAACjB,cAAc,CAACyP,EACxC,EACF,EACAliZ,KAAM,SAAyB8I,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEmiZ,CAAK,EACxD,IAAIsN,EAAYtN,CAAK,CAAC,EAAE,CAGxB,SAASyN,IACPH,EAAUxB,WAAW,EACvB,CAJAwB,EAAUJ,mBAAmB,GAM7B9rZ,EAAQu5B,EAAE,CAAC,OAAQ,WACb2yX,EAAU5C,QAAQ,GAElBh2Y,EAAWs7F,OAAO,CACpB97F,EAAMspG,UAAU,CAACiwS,GAEjBv5Y,EAAM4iF,MAAM,CAAC22T,GAEjB,EACF,CACF,CACF,CACF,CACF,EAAE,CAKEC,GAAiB,wBAQrB,SAASC,GAAaroY,CAAO,EAC3B,IAAI,CAACsoY,SAAS,CAAGtoY,CACnB,CAEAqoY,GAAaxvZ,SAAS,CAAG,CAUvB6mZ,UAAUx7X,CAAI,EACZ,OAAO,IAAI,CAACokY,SAAS,CAACpkY,EAAK,EAS7ByjY,YAAY3nY,CAAO,EACjB,IAAIuoY,EAAa,GAuCjB,OAjCA/sZ,EAHAwkB,EAAU87D,EAAO,CAAC,EAAG97D,GAGQ,SAASgK,CAAM,CAAElwB,CAAG,EAC3CkwB,aAAAA,EACElwB,MAAAA,EACFyuZ,EAAa,IAEbvoY,CAAO,CAAClmB,EAAI,CAAG,IAAI,CAACwuZ,SAAS,CAACxuZ,EAAI,CAEtB,aAARA,GACFkmB,CAAAA,EAAQwoY,eAAe,CAAG,IAAI,CAACF,SAAS,CAACE,eAAe,GAIhD,aAAR1uZ,IAGFkmB,EAAQwoY,eAAe,CAAG,GAC1BxoY,CAAO,CAAClmB,EAAI,CAAG8sD,EAAK58B,EAAO3b,OAAO,CAAC+5Y,GAAgB,WAEjD,OADApoY,EAAQwoY,eAAe,CAAG,GACnB,GACT,IAGN,EAAG,IAAI,EAEHD,IAEF,OAAOvoY,CAAO,CAAC,IAAI,CACnB5V,GAAS4V,EAAS,IAAI,CAACsoY,SAAS,GAIlCl+Y,GAAS4V,EAAS+/U,EAAoBuoD,SAAS,EAExC,IAAID,GAAaroY,EAC1B,CACF,EAGA+/U,EAAsB,IAAIsoD,GAAa,CACrCI,SAAU,GACVD,gBAAiB,GACjB5sO,SAAU,EACV8sO,aAAc,GACd9B,aAAc,GACdl3S,SAAU,IACZ,GAkRA,IAAIi5S,GAA0B,WAE5B,SAASC,EAAyBpxY,CAAM,CAAE5B,CAAM,EAC9C,IAAI,CAACizY,OAAO,CAAGrxY,EACf,IAAI,CAACswW,OAAO,CAAGlyW,CACjB,CAUA,OAdAgzY,EAAyBxrZ,OAAO,CAAG,CAAC,SAAU,SAAS,CAKvDwrZ,EAAyB/vZ,SAAS,CAAG,CACnCupI,UACE,IAAI0mR,EAAgB,IAAI,CAACC,UAAU,CAAG,IAAI,CAACA,UAAU,CAACtJ,QAAQ,CAAG1/C,EAC7DipD,EAAyB,IAAI,CAAClhC,OAAO,CAACrpH,KAAK,CAAC,IAAI,CAACoqJ,OAAO,CAACI,cAAc,CAE3E,KAAI,CAACxJ,QAAQ,CAAGqJ,EAAcnB,WAAW,CAACqB,EAC5C,CACF,EAEO,CACLr6Y,SAAU,IAEVw6P,SAAU,GACV15K,QAAS,CAACs5T,WAAY,mBAAmB,EACzC75Y,iBAAkB,GAClB1M,WAAYomZ,CACd,CACF,EAIA,SAASx+Y,GAASwhV,CAAG,CAAEzmK,CAAG,EACxB3pL,EAAQ2pL,EAAK,SAAS/rL,CAAK,CAAEU,CAAG,EACzBy2D,EAAUq7R,CAAG,CAAC9xV,EAAI,GACrB8xV,CAAAA,CAAG,CAAC9xV,EAAI,CAAGV,CAAI,CAEnB,EACF,CAkCA,IAAI8vZ,GAAyBzR,GAAY,CAAEruI,SAAU,GAAMD,SAAU,GAAK,GAOtEggJ,GAAkB9oD,EAAO,aAuOzB+oD,GAAoB,sOAapBC,GAAqB,CAAC,WAAY,YAAa,SAAU,SAAS77X,CAAQ,CAAEw6K,CAAS,CAAE23C,CAAM,EA+J/F,IAAI2pK,EAAiBhqZ,EAAOjF,QAAQ,CAAC80G,aAAa,CAAC,UAE/Co6S,EAAmBjqZ,EAAOjF,QAAQ,CAAC80G,aAAa,CAAC,YAiSrD,MAAO,CACLxgG,SAAU,IACVy6P,SAAU,GACV35K,QAAS,CAAC,SAAU,UAAU,CAC9B3rE,KAAM,CACJogW,IAAK,SAA0Bt1W,CAAK,CAAE46Y,CAAa,CAAEjxZ,CAAI,CAAEmiZ,CAAK,EAI9DA,CAAK,CAAC,EAAE,CAAC+O,cAAc,CAAG9iY,CAC5B,EACA7gB,KA1SJ,SAA2B8I,CAAK,CAAE46Y,CAAa,CAAEjxZ,CAAI,CAAEmiZ,CAAK,EAQ1D,IAAK,IAgBD16X,EAtBA0pY,EAAahP,CAAK,CAAC,EAAE,CACrBiP,EAAcjP,CAAK,CAAC,EAAE,CACtBnhO,EAAWhhL,EAAKghL,QAAQ,CAInBx8K,EAAI,EAAGq9K,EAAWovO,EAAcpvO,QAAQ,GAAIjB,EAAKiB,EAASlgL,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IACjF,GAAIq9K,KAAAA,CAAQ,CAACr9K,EAAE,CAAC3D,KAAK,CAAS,CAC5BswZ,EAAWE,cAAc,CAAG,GAC5BF,EAAWG,WAAW,CAAGzvO,EAASwxL,EAAE,CAAC7uW,GACrC,KACF,CAIFysZ,EAAc7oX,KAAK,GAEnB,IAAImpX,EAAsB,CAAC,CAACJ,EAAWG,WAAW,CAGlDE,EAD2BT,EAAel9G,SAAS,CAAC,KACtCj4L,GAAG,CAAC,KAGlB,IAAI61S,EAAYC,SA3LcC,CAAU,CAAEV,CAAa,CAAE56Y,CAAK,EAE9D,IAAIiM,EAAQqvY,EAAWrvY,KAAK,CAACuuY,IAC7B,GAAI,CAAEvuY,EACJ,MAAMsuY,GAAgB,OACpB,2HAGAe,EAAYhlD,GAAYskD,IAM5B,IAAIW,EAAYtvY,CAAK,CAAC,EAAE,EAAIA,CAAK,CAAC,EAAE,CAEhC4kE,EAAU5kE,CAAK,CAAC,EAAE,CAGlBuvY,EAAW,OAAOvwZ,IAAI,CAACghB,CAAK,CAAC,EAAE,GAAKA,CAAK,CAAC,EAAE,CAE5CwvY,EAAUxvY,CAAK,CAAC,EAAE,CAElB0nV,EAAU5iH,EAAO9kO,CAAK,CAAC,EAAE,CAAGA,CAAK,CAAC,EAAE,CAAGsvY,GAEvCG,EAAcC,GADW5qK,EAAOyqK,IACJ7nD,EAC5BioD,EAAYH,GAAW1qK,EAAO0qK,GAK9BI,EAAoBJ,EACE,SAASjxZ,CAAK,CAAE6gW,CAAM,EAAI,OAAOuwD,EAAU57Y,EAAOqrV,EAAS,EAC3D,SAAwB7gW,CAAK,EAAI,OAAOkzW,GAAQlzW,EAAQ,EAC9EsxZ,EAAkB,SAAStxZ,CAAK,CAAEU,CAAG,EACvC,OAAO2wZ,EAAkBrxZ,EAAOuxZ,EAAUvxZ,EAAOU,GACnD,EAEI8wZ,EAAYjrK,EAAO9kO,CAAK,CAAC,EAAE,EAAIA,CAAK,CAAC,EAAE,EACvCgwY,EAAYlrK,EAAO9kO,CAAK,CAAC,EAAE,EAAI,IAC/BiwY,EAAgBnrK,EAAO9kO,CAAK,CAAC,EAAE,EAAI,IACnCkwY,EAAWprK,EAAO9kO,CAAK,CAAC,EAAE,EAE1Bo/U,EAAS,CAAC,EACV0wD,EAAYlrU,EAAU,SAASrmF,CAAK,CAAEU,CAAG,EAG3C,OAFAmgW,CAAM,CAACx6Q,EAAQ,CAAG3lF,EAClBmgW,CAAM,CAACkwD,EAAU,CAAG/wZ,EACb6gW,CACT,EAAI,SAAS7gW,CAAK,EAEhB,OADA6gW,CAAM,CAACkwD,EAAU,CAAG/wZ,EACb6gW,CACT,EAGA,SAAS+wD,EAAOC,CAAW,CAAE5N,CAAS,CAAEt5Y,CAAK,CAAE8oJ,CAAK,CAAExoJ,CAAQ,EAC5D,IAAI,CAAC4mZ,WAAW,CAAGA,EACnB,IAAI,CAAC5N,SAAS,CAAGA,EACjB,IAAI,CAACt5Y,KAAK,CAAGA,EACb,IAAI,CAAC8oJ,KAAK,CAAGA,EACb,IAAI,CAACxoJ,QAAQ,CAAGA,CAClB,CAEA,SAAS6mZ,EAAoBC,CAAY,EACvC,IAAIC,EAEJ,GAAI,CAAC3rU,GAAW2hR,EAAY+pD,GAC1BC,EAAmBD,OAInB,IAAK,IAAIE,KADTD,EAAmB,EAAE,CACDD,EACdA,EAAaljY,cAAc,CAACojY,IAAYA,MAAAA,EAAQpiU,MAAM,CAAC,IACzDmiU,EAAiBzsZ,IAAI,CAAC0sZ,GAI5B,OAAOD,CACT,CAEA,MAAO,CACLf,QAASA,EACTK,gBAAiBA,EACjBY,cAAe3rK,EAAOorK,EAAU,SAASI,CAAY,EASnD,IAAK,IALDI,EAAe,EAAE,CAGjBH,EAAmBF,EAFvBC,EAAeA,GAAgB,EAAE,EAG7BK,EAAqBJ,EAAiBlxZ,MAAM,CACvCqC,EAAQ,EAAGA,EAAQivZ,EAAoBjvZ,IAAS,CACvD,IAAIzC,EAAM,IAAkBsxZ,EAAoB7uZ,EAAQ6uZ,CAAgB,CAAC7uZ,EAAM,CAC3EnD,EAAQ+xZ,CAAY,CAACrxZ,EAAI,CAEzBmgW,EAAS0wD,EAAUvxZ,EAAOU,GAC1BmxZ,EAAcR,EAAkBrxZ,EAAO6gW,GAI3C,GAHAsxD,EAAa5sZ,IAAI,CAACssZ,GAGdpwY,CAAK,CAAC,EAAE,EAAIA,CAAK,CAAC,EAAE,CAAE,CACxB,IAAI9W,EAAQ6mZ,EAAUh8Y,EAAOqrV,GAC7BsxD,EAAa5sZ,IAAI,CAACoF,EACpB,CAGA,GAAI8W,CAAK,CAAC,EAAE,CAAE,CACZ,IAAI4wY,EAAcX,EAAcl8Y,EAAOqrV,GACvCsxD,EAAa5sZ,IAAI,CAAC8sZ,EACpB,CACF,CACA,OAAOF,CACT,GAEA5pU,aAWE,IAAK,IATD+pU,EAAc,EAAE,CAChBC,EAAiB,CAAC,EAIlBR,EAAeJ,EAASn8Y,IAAU,EAAE,CACpCw8Y,EAAmBF,EAAoBC,GACvCK,EAAqBJ,EAAiBlxZ,MAAM,CAEvCqC,EAAQ,EAAGA,EAAQivZ,EAAoBjvZ,IAAS,CACvD,IAAIzC,EAAM,IAAkBsxZ,EAAoB7uZ,EAAQ6uZ,CAAgB,CAAC7uZ,EAAM,CAE3E09V,EAAS0wD,EADDQ,CAAY,CAACrxZ,EAAI,CACCA,GAC1BujZ,EAAYiN,EAAY17Y,EAAOqrV,GAC/BgxD,EAAcR,EAAkBpN,EAAWpjD,GAI3C2xD,EAAa,IAAIZ,EAAOC,EAAa5N,EAH7BuN,EAAUh8Y,EAAOqrV,GACjB4wD,EAAUj8Y,EAAOqrV,GACd6wD,EAAcl8Y,EAAOqrV,IAGpCyxD,EAAY/sZ,IAAI,CAACitZ,GACjBD,CAAc,CAACV,EAAY,CAAGW,CAChC,CAEA,MAAO,CACL31X,MAAOy1X,EACPC,eAAgBA,EAChBE,uBAAAA,GACSF,CAAc,CAACjB,EAAgBtxZ,GAAO,CAE/C0yZ,uBAAAA,GAGSzB,EAAU54X,GAAKzH,EAAOqzX,SAAS,EAAIrzX,EAAOqzX,SAAS,CAGhE,CACF,CACF,EAiCyC9kZ,EAAKyxZ,SAAS,CAAER,EAAe56Y,GAIlEm9Y,EAAe/jN,CAAS,CAAC,EAAE,CAAC83E,sBAAsB,GA4JtD,SAASksI,EAAiBhiY,CAAM,CAAE9N,CAAM,EACtC,IAAI+vY,EAAgB3C,EAAel9G,SAAS,CAAC,IAC7ClwR,EAAOozF,WAAW,CAAC28S,GAcnBjiY,EAAOluB,OAAO,CAbcmwZ,EAc5BnwZ,EAAQuI,QAAQ,CAAG2lB,EAAO3lB,QAAQ,CAO9B2lB,EAAOjmB,KAAK,GAAKjI,EAAQiI,KAAK,GAChCjI,EAAQiI,KAAK,CAAGimB,EAAOjmB,KAAK,CAC5BjI,EAAQmB,WAAW,CAAG+sB,EAAOjmB,KAAK,EAEpCjI,EAAQ1C,KAAK,CAAG4wB,EAAOihY,WAAW,CAtBpC,SAASiB,EAA2B7O,CAAS,EAC3C,IAAIrzX,EAAShK,EAAQ6rY,sBAAsB,CAACxO,GACxCvhZ,EAAUkuB,GAAUA,EAAOluB,OAAO,CAItC,OAFIA,GAAW,CAACA,EAAQs2G,QAAQ,EAAEt2G,CAAAA,EAAQs2G,QAAQ,CAAG,EAAG,EAEjDpoF,CACT,CAtKA0/X,EAAWyC,0BAA0B,CAAG,SAASh4S,CAAG,EAClD,MAAO,GACT,EAGKolE,GAwDHmwO,EAAW0C,UAAU,CAAG,SAAgC7rZ,CAAM,EAE5D,GAAKyf,GAIL,IAAIqsY,EAAkB9rZ,GAAUA,EAAOX,GAAG,CAACssZ,IAA+B,EAAE,CAE5ElsY,EAAQiW,KAAK,CAACz6B,OAAO,CAAC,SAASwuB,CAAM,EAC/BA,EAAOluB,OAAO,CAACs2G,QAAQ,EAAI,CAACl3F,GAASmxY,EAAiBriY,IACxDA,CAAAA,EAAOluB,OAAO,CAACs2G,QAAQ,CAAG,EAAI,CAElC,GACF,EAGAs3S,EAAW4C,SAAS,CAAG,WACrB,IAAIC,EAAiB/C,EAAcr1S,GAAG,IAAM,EAAE,CAC1Cq4S,EAAa,EAAE,CAOnB,OALAhxZ,EAAQ+wZ,EAAgB,SAASnzZ,CAAK,EACpC,IAAI4wB,EAAShK,EAAQ2rY,cAAc,CAACvyZ,EAAM,CACtC4wB,GAAU,CAACA,EAAO3lB,QAAQ,EAAEmoZ,EAAW7tZ,IAAI,CAACqhB,EAAQ8rY,sBAAsB,CAAC9hY,GACjF,GAEOwiY,CACT,EAIIxC,EAAUK,OAAO,EAEnBz7Y,EAAM4oB,gBAAgB,CAAC,WACrB,GAAItP,EAAQyhY,EAAY9gI,UAAU,EAChC,OAAO8gI,EAAY9gI,UAAU,CAACjpR,GAAG,CAAC,SAASxG,CAAK,EAC9C,OAAO4wZ,EAAUU,eAAe,CAACtxZ,EACnC,EAEJ,EAAG,WACDuwZ,EAAY35T,OAAO,EACrB,KA9FF05T,EAAW0C,UAAU,CAAG,SAA6BhzZ,CAAK,EAExD,GAAK4mB,GAEL,IAAIkK,EAAiBs/X,CAAa,CAAC,EAAE,CAACxpY,OAAO,CAACwpY,CAAa,CAAC,EAAE,CAACiD,aAAa,CAAC,CACzEziY,EAAShK,EAAQ6rY,sBAAsB,CAACzyZ,GAIxC8wB,GAAgBA,EAAevuB,eAAe,CAAC,YAE/CquB,GAMEw/X,CAAa,CAAC,EAAE,CAACpwZ,KAAK,GAAK4wB,EAAOihY,WAAW,GAC/CvB,EAAWgD,mBAAmB,GAE9BlD,CAAa,CAAC,EAAE,CAACpwZ,KAAK,CAAG4wB,EAAOihY,WAAW,CAC3CjhY,EAAOluB,OAAO,CAACs2G,QAAQ,CAAG,IAG5BpoF,EAAOluB,OAAO,CAACb,YAAY,CAAC,WAAY,aAExCyuZ,EAAWiD,0BAA0B,CAACvzZ,GAE1C,EAEAswZ,EAAW4C,SAAS,CAAG,WAErB,IAAIpiY,EAAiBlK,EAAQ2rY,cAAc,CAACnC,EAAcr1S,GAAG,GAAG,QAEhE,GAAsB,CAACjqF,EAAe7lB,QAAQ,EAC5CqlZ,EAAWkD,mBAAmB,GAC9BlD,EAAWgD,mBAAmB,GACvB1sY,EAAQ8rY,sBAAsB,CAAC5hY,IAEjC,IACT,EAKI8/X,EAAUK,OAAO,EACnBz7Y,EAAMib,MAAM,CACV,WAAa,OAAOmgY,EAAUU,eAAe,CAACf,EAAY9gI,UAAU,CAAG,EACvE,WAAa8gI,EAAY35T,OAAO,EAAI,IAmDtC85T,IAGFt8X,EAASk8X,EAAWG,WAAW,EAAEj7Y,GAEjC46Y,EAAct7C,OAAO,CAACw7C,EAAWG,WAAW,EAExCH,IAAAA,EAAWG,WAAW,CAAC,EAAE,CAACtpU,QAAQ,EAGpCmpU,EAAWE,cAAc,CAAG,GAK5BF,EAAWD,cAAc,CAAG,SAASoD,CAAW,CAAEC,CAAQ,EACjC,KAAnBA,EAAS34S,GAAG,KACdu1S,EAAWE,cAAc,CAAG,GAC5BF,EAAWG,WAAW,CAAGiD,EACzBpD,EAAWG,WAAW,CAACxmY,WAAW,CAAC,YAEnCsmY,EAAY35T,OAAO,GAEnB88T,EAASz3X,EAAE,CAAC,WAAY,WACtB,IAAI03X,EAAgBrD,EAAWsD,sBAAsB,EAErDtD,CAAAA,EAAWE,cAAc,CAAG,GAC5BF,EAAWG,WAAW,CAAGhtZ,KAAAA,EAErBkwZ,GAAepD,EAAY35T,OAAO,EACxC,GAEJ,GAKA05T,EAAWG,WAAW,CAACxmY,WAAW,CAAC,aAMvCzU,EAAM4oB,gBAAgB,CAACwyX,EAAUsB,aAAa,CAmC9C,WACE,IAAIriM,EAAgBjpM,GAAW0pY,EAAW4C,SAAS,GAOnD,GAAItsY,EAEF,IAAK,IAAIjjB,EAAIijB,EAAQiW,KAAK,CAAC/7B,MAAM,CAAG,EAAG6C,GAAK,EAAGA,IAAK,CAClD,IAAIitB,EAAShK,EAAQiW,KAAK,CAACl5B,EAAE,CACzBwzD,EAAUvmC,EAAO6iI,KAAK,EACxB6+M,GAAa1hV,EAAOluB,OAAO,CAACihC,UAAU,EAEtC2uU,GAAa1hV,EAAOluB,OAAO,CAE/B,CAGFkkB,EAAUgqY,EAAUroU,UAAU,GAE9B,IAAIsrU,EAAkB,CAAC,EAsCvB,GApCAjtY,EAAQiW,KAAK,CAACz6B,OAAO,CAAC,SAAmBwuB,CAAM,EAC7C,IAAIkjY,EAEA38V,EAAUvmC,EAAO6iI,KAAK,GAIxBqgQ,CAAAA,EAAeD,CAAe,CAACjjY,EAAO6iI,KAAK,CAAC,IAI1CqgQ,EAAe3D,EAAiBn9G,SAAS,CAAC,IAC1C2/G,EAAaz8S,WAAW,CAAC49S,GAIzBA,EAAanpZ,KAAK,CAAGimB,OAAAA,EAAO6iI,KAAK,CAAY,OAAS7iI,EAAO6iI,KAAK,CAGlEogQ,CAAe,CAACjjY,EAAO6iI,KAAK,CAAC,CAAGqgQ,GAGlClB,EAAiBhiY,EAAQkjY,IAKzBlB,EAAiBhiY,EAAQ+hY,EAE7B,GAEAvC,CAAa,CAAC,EAAE,CAACl6S,WAAW,CAACy8S,GAE7BpC,EAAY35T,OAAO,GAGf,CAAC25T,EAAY9yD,QAAQ,CAAC5tI,GAAgB,CACxC,IAAIoiC,EAAYq+J,EAAW4C,SAAS,GAEhCa,CAAAA,EAD2B9C,OAAO,EAAI9wO,EACpBwvF,GAAO9/C,EAAeoiC,GAAapiC,IAAkBoiC,CAAQ,IACjFs+J,EAAY55T,aAAa,CAACs7J,GAC1Bs+J,EAAY35T,OAAO,GAEvB,CACF,EACJ,CAcI,CACF,CACF,EAAE,CAkLEo9T,GAAuB,CAAC,UAAW,eAAgB,OAAQ,SAAShc,CAAO,CAAEp1B,CAAY,CAAEztU,CAAI,EACjG,IAAI8+W,EAAQ,MACRC,EAAU,qBAEd,MAAO,CACLxpY,KAAKlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EACvB,IAYIg1Z,EAZAC,EAAYj1Z,EAAKyK,KAAK,CAG1ByqZ,EAAUl1Z,EAAKgkX,KAAK,CAAC3gW,IAAI,EAAI9f,EAAQvD,IAAI,CAACA,EAAKgkX,KAAK,CAAC3gW,IAAI,EAErDwiH,EAAS7lI,EAAK6lI,MAAM,EAAI,EACxBsvR,EAAQ9+Y,EAAM6vP,KAAK,CAACgvJ,IAAY,CAAC,EACjCE,EAAc,CAAC,EAGfC,EAAmB/vC,EAFQA,WAAW,GAEL2vC,EAAY,IAAMpvR,EADvC49O,EAAa8B,SAAS,GAElC+vC,EAAe9pY,EAAQ4C,IAAI,CA2C/B,SAASmnY,EAAkBxqG,CAAO,EAChCxnT,EAAQy5H,IAAI,CAAC+tL,GAAW,GAC1B,CA1CA9nT,EAAQjD,EAAM,SAAS47W,CAAU,CAAE9rF,CAAa,EAC9C,IAAI0lI,EAAWT,EAAQp4I,IAAI,CAACmT,GACxB0lI,GAEFL,CAAAA,CAAK,CADS,CAACK,CAAQ,CAAC,EAAE,CAAG,IAAM,IAAMhyD,EAAUgyD,CAAQ,CAAC,EAAE,EAChD,CAAGjyZ,EAAQvD,IAAI,CAACA,EAAKgkX,KAAK,CAACl0F,EAAc,EAE3D,GACA7sR,EAAQkyZ,EAAO,SAASv5C,CAAU,CAAEr6W,CAAG,EACrC6zZ,CAAW,CAAC7zZ,EAAI,CAAGkiX,EAAa7H,EAAW9lW,OAAO,CAACg/Y,EAAOO,GAE5D,GAEAh/Y,EAAMib,MAAM,CAAC2jY,EAAW,SAAgCl/X,CAAM,EAC5D,IAAItrB,EAAQu3K,WAAWjsJ,GACnB0/X,EAAa3rD,EAAYr/V,GAU7B,GARKgrZ,GAAgBhrZ,KAAS0qZ,GAG5B1qZ,CAAAA,EAAQouY,EAAQ6c,SAAS,CAACjrZ,EAAQo7H,EAAM,EAKtC,IAAWmvR,GAAc,CAAES,CAAAA,GAAc3rD,EAAYkrD,EAAS,EAAI,CACpEM,IACA,IAAIK,EAAYP,CAAW,CAAC3qZ,EAAM,CAC9Bu1V,EAAY21D,IACA,MAAV5/X,GACFigB,EAAKwxH,KAAK,CAAC,qCAAwC/8J,EAAQ,QAAWyqZ,GAExEI,EAAelnY,EACfmnY,KAEAD,EAAej/Y,EAAMib,MAAM,CAACqkY,EAAWJ,GAEzCP,EAAYvqZ,CACd,CACF,EAKF,CACF,CACF,EAAE,CAibEmrZ,GAAoB,CAAC,SAAU,WAAY,WAAY,SAASxuK,CAAM,CAAEo7G,CAAQ,CAAEvtU,CAAQ,EAC5F,IAAI4gY,EAAa,eACbC,EAAiBhuD,EAAO,YAExBiuD,EAAc,SAAS1/Y,CAAK,CAAErS,CAAK,CAAEgyZ,CAAe,CAAEn1Z,CAAK,CAAEo1Z,CAAa,CAAE10Z,CAAG,CAAE20Z,CAAW,EAE9F7/Y,CAAK,CAAC2/Y,EAAgB,CAAGn1Z,EACrBo1Z,GAAe5/Y,CAAAA,CAAK,CAAC4/Y,EAAc,CAAG10Z,CAAE,EAC5C8U,EAAMugI,MAAM,CAAG5yI,EACfqS,EAAM8/Y,MAAM,CAAInyZ,IAAAA,EAChBqS,EAAM8wG,KAAK,CAAInjH,IAAWkyZ,EAAc,EACxC7/Y,EAAM+/Y,OAAO,CAAG,CAAE//Y,CAAAA,EAAM8/Y,MAAM,EAAI9/Y,EAAM8wG,KAAK,EAE7C9wG,EAAMggZ,IAAI,CAAG,CAAEhgZ,CAAAA,EAAMigZ,KAAK,CAAG,CAACtyZ,EAAAA,CAAQ,GAAO,EAC/C,EAWA,MAAO,CACLoS,SAAU,IACV24W,aAAc,GACdp0O,WAAY,UACZi2H,SAAU,IACVC,SAAU,GACVo4G,MAAO,GACP5hI,QAAS,SAAyB5sJ,CAAQ,CAAEupR,CAAK,EAC/C,IA8BIuyC,EACAC,EACAC,EACAC,EAjCA96C,EAAaoI,EAAM2yC,QAAQ,CAC3BC,EAAqB3hY,EAASixV,eAAe,CAAC,eAAgBtK,GAE9Dt5V,EAAQs5V,EAAWt5V,KAAK,CAAC,8FAE7B,GAAI,CAACA,EACH,MAAMwzY,EAAe,OAAQ,yFACzBl6C,GAGN,IAAIg3B,EAAMtwX,CAAK,CAAC,EAAE,CACdqwX,EAAMrwX,CAAK,CAAC,EAAE,CACdu0Y,EAAUv0Y,CAAK,CAAC,EAAE,CAClBw0Y,EAAax0Y,CAAK,CAAC,EAAE,CAIzB,GAAI,CAFJA,CAAAA,EAAQswX,EAAItwX,KAAK,CAAC,sDAAqD,EAGrE,MAAMwzY,EAAe,SAAU,gHAC3BljB,GAEN,IAAIojB,EAAkB1zY,CAAK,CAAC,EAAE,EAAIA,CAAK,CAAC,EAAE,CACtC2zY,EAAgB3zY,CAAK,CAAC,EAAE,CAE5B,GAAIu0Y,GAAY,EAAC,6BAA6Bv1Z,IAAI,CAACu1Z,IAC/C,4FAA4Fv1Z,IAAI,CAACu1Z,EAAO,EAC1G,MAAMf,EAAe,WAAY,yFAC/Be,GAOJ,IAAIE,EAAe,CAACxzX,IAAKwwU,EAAO,EAahC,OAXI+iD,EACFP,EAAmBnvK,EAAO0vK,IAE1BL,EAAmB,SAASl1Z,CAAG,CAAEV,CAAK,EACpC,OAAOkzW,GAAQlzW,EACjB,EACA61Z,EAAiB,SAASn1Z,CAAG,EAC3B,OAAOA,CACT,GAGK,SAAsB8b,CAAM,CAAEo9E,CAAQ,CAAEupR,CAAK,CAAEvhB,CAAI,CAAEC,CAAW,EAEjE6zD,GACFC,CAAAA,EAAiB,SAASj1Z,CAAG,CAAEV,CAAK,CAAEmD,CAAK,EAKzC,OAHIiyZ,GAAec,CAAAA,CAAY,CAACd,EAAc,CAAG10Z,CAAE,EACnDw1Z,CAAY,CAACf,EAAgB,CAAGn1Z,EAChCk2Z,EAAangR,MAAM,CAAG5yI,EACfuyZ,EAAiBl5Y,EAAQ05Y,EAClC,GAWF,IAAIC,EAAevrD,KAGnBpuV,EAAO4hB,gBAAgB,CAAC0zW,EAAK,SAAwBr4S,CAAU,EAM7D,IAzFmB52B,EAoFf1/D,EACArC,EAMAy5U,EAMA67E,EACA11Z,EAGAV,EAEAq2Z,EACAC,EACAC,EAGA1zV,EAEA2zV,EACAvmC,EAtBAwmC,EAAe78T,CAAQ,CAAC,EAAE,CAM1B88T,EAAe9rD,KAsBnB,GAJIorD,GACFx5Y,CAAAA,CAAM,CAACw5Y,EAAQ,CAAGv8T,CAAS,EAGzBuuQ,EAAYvuQ,GACd88T,EAAiB98T,EACjB68T,EAAcX,GAAkBC,OAKhC,IAAK,IAAI3D,KAHTqE,EAAcX,GAAkBE,EAEhCU,EAAiB,EAAE,CACC98T,EACd5qE,EAAe/wB,IAAI,CAAC27F,EAAYw4T,IAAYA,MAAAA,EAAQpiU,MAAM,CAAC,IAC7D0mU,EAAehxZ,IAAI,CAAC0sZ,GAS1B,IAAK9uZ,EAAQ,EAHbqzZ,EAAiB,MADjBJ,EAAmBG,EAAez1Z,MAAM,EAIxBqC,EAAQizZ,EAAkBjzZ,IAIxC,GAHAzC,EAAM,IAAgB61Z,EAAkBpzZ,EAAQozZ,CAAc,CAACpzZ,EAAM,CACrEnD,EAAQy5F,CAAU,CAAC/4F,EAAI,CAEnBy1Z,CAAY,CADhBE,EAAYC,EAAY51Z,EAAKV,EAAOmD,GACT,CAEzB0/D,EAAQszV,CAAY,CAACE,EAAU,CAAC,OACzBF,CAAY,CAACE,EAAU,CAC9BK,CAAY,CAACL,EAAU,CAAGxzV,EAC1B2zV,CAAc,CAACrzZ,EAAM,CAAG0/D,OACnB,GAAI6zV,CAAY,CAACL,EAAU,CAKhC,MAHAj0Z,EAAQo0Z,EAAgB,SAAS3zV,CAAK,EAChCA,GAASA,EAAMrtD,KAAK,EAAE2gZ,CAAAA,CAAY,CAACtzV,EAAMpxD,EAAE,CAAC,CAAGoxD,CAAI,CACzD,GACMoyV,EAAe,QACjB,sJACAl6C,EAAYs7C,EAAWr2Z,QAG3Bw2Z,CAAc,CAACrzZ,EAAM,CAAG,CAACsO,GAAI4kZ,EAAW7gZ,MAAO/R,KAAAA,EAAWkgI,MAAOlgI,KAAAA,CAAS,EAC1EizZ,CAAY,CAACL,EAAU,CAAG,GAK9B,IAAK,IAAIM,KAAYR,EAAc,CAIjC,GAFAlmC,EAAmB1hB,GAAc1rS,CADjCA,EAAQszV,CAAY,CAACQ,EAAS,EACShzR,KAAK,EAC5Cg+N,EAASU,KAAK,CAAC4tB,GACXA,CAAgB,CAAC,EAAE,CAACtsV,UAAU,CAGhC,IAAKxgC,EAAQ,EAAGrC,EAASmvX,EAAiBnvX,MAAM,CAAEqC,EAAQrC,EAAQqC,IAChE8sX,CAAgB,CAAC9sX,EAAM,CAAC6xZ,EAAW,CAAG,GAG1CnyV,EAAMrtD,KAAK,CAACsG,QAAQ,EACtB,CAGA,IAAK3Y,EAAQ,EAAGA,EAAQizZ,EAAkBjzZ,IAKxC,GAJAzC,EAAM,IAAgB61Z,EAAkBpzZ,EAAQozZ,CAAc,CAACpzZ,EAAM,CACrEnD,EAAQy5F,CAAU,CAAC/4F,EAAI,CAGnBmiE,CAFJA,EAAQ2zV,CAAc,CAACrzZ,EAAM,EAEnBqS,KAAK,CAAE,CAIf+kU,EAAWk8E,EAGX,GACEl8E,EAAWA,EAASv3E,WAAW,OACxBu3E,GAAYA,CAAQ,CAACy6E,EAAW,CAEzC,EAnMGrxR,KAAK,CAAC,EAAE,GAmMkB42M,GAE3BonB,EAASn6M,IAAI,CAAC+mN,GAAc1rS,EAAM8gE,KAAK,EAAG,KAAM8yR,GAElDA,EAnMH5zV,CADkBA,EAoMYA,GAnMxB8gE,KAAK,CAAC9gE,EAAM8gE,KAAK,CAAC7iI,MAAM,CAAG,EAAE,CAoMhCo0Z,EAAYryV,EAAMrtD,KAAK,CAAErS,EAAOgyZ,EAAiBn1Z,EAAOo1Z,EAAe10Z,EAAK01Z,EAC9E,MAEEv0D,EAAY,SAA4Bl+N,CAAK,CAAEnuH,CAAK,EAClDqtD,EAAMrtD,KAAK,CAAGA,EAEd,IAAIwuU,EAAU+xE,EAAmB/iH,SAAS,CAAC,GAC3CrvK,CAAAA,CAAK,CAACA,EAAM7iI,MAAM,GAAG,CAAGkjV,EAExB2d,EAASz3F,KAAK,CAACvmI,EAAO,KAAM8yR,GAC5BA,EAAezyE,EAIfnhR,EAAM8gE,KAAK,CAAGA,EACd+yR,CAAY,CAAC7zV,EAAMpxD,EAAE,CAAC,CAAGoxD,EACzBqyV,EAAYryV,EAAMrtD,KAAK,CAAErS,EAAOgyZ,EAAiBn1Z,EAAOo1Z,EAAe10Z,EAAK01Z,EAC9E,GAGJD,EAAeO,CACjB,EACF,CACF,CACF,CACF,EAAE,CAGEE,GAAgB,UAChBC,GAA4B,kBAwM5BC,GAAkB,CAAC,WAAY,SAASn1D,CAAQ,EAClD,MAAO,CACLpsV,SAAU,IACV24W,aAAc,GACdxjW,KAAKlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EACvBqW,EAAMib,MAAM,CAACtxB,EAAK43Z,MAAM,CAAE,SAA2B/2Z,CAAK,EAKxD2hW,CAAQ,CAAC3hW,EAAQ,cAAgB,WAAW,CAAC0C,EAASk0Z,GAAe,CACnEn7C,YAAao7C,EACf,EACF,EACF,CACF,CACF,EAAE,CA0MEG,GAAkB,CAAC,WAAY,SAASr1D,CAAQ,EAClD,MAAO,CACLpsV,SAAU,IACV24W,aAAc,GACdxjW,KAAKlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EACvBqW,EAAMib,MAAM,CAACtxB,EAAK0mJ,MAAM,CAAE,SAA2B7lJ,CAAK,EAGxD2hW,CAAQ,CAAC3hW,EAAQ,WAAa,cAAc,CAAC0C,EAAQk0Z,GAAe,CAClEn7C,YAAao7C,EACf,EACF,EACF,CACF,CACF,EAAE,CAsDEI,GAAmB5Y,GAAY,SAAS7oY,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAC9DqW,EAAMib,MAAM,CAACtxB,EAAK+3Z,OAAO,CAAE,SAA4BC,CAAS,CAAEC,CAAS,EACrEA,GAAcD,IAAcC,GAC9Bh1Z,EAAQg1Z,EAAW,SAASr8S,CAAG,CAAE1vD,CAAK,EAAI3oD,EAAQyyG,GAAG,CAAC9pD,EAAO,GAAI,GAE/D8rW,GAAWz0Z,EAAQyyG,GAAG,CAACgiT,EAC7B,EAAG,GACL,GA4IIE,GAAoB,CAAC,WAAY,WAAY,SAAS11D,CAAQ,CAAEvtU,CAAQ,EAC1E,MAAO,CACLiiE,QAAS,WAGTjtF,WAAY,CAAC,SAAU,WACtB,IAAI,CAACkuZ,KAAK,CAAG,CAAC,CACf,EAAE,CACF5sY,KAAKlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEo4Z,CAAkB,EAC3C,IAAIh7D,EAAYp9V,EAAKq4Z,QAAQ,EAAIr4Z,EAAK88B,EAAE,CACpCw7X,EAAsB,EAAE,CACxBC,EAAmB,EAAE,CACrBC,EAA0B,EAAE,CAC5BC,EAAiB,EAAE,CAEnBC,EAAgB,SAAS1+V,CAAK,CAAEh2D,CAAK,EACrC,OAAO,SAASwJ,CAAQ,EACL,KAAbA,GAAoBwsD,EAAM3zD,MAAM,CAACrC,EAAO,EAC9C,CACJ,EAEAqS,EAAMib,MAAM,CAAC8rU,EAAW,SAA6Bv8V,CAAK,EAKxD,KAAO23Z,EAAwB72Z,MAAM,EACnC6gW,EAAS5mV,MAAM,CAAC48Y,EAAwB/mU,GAAG,IAG7C,IAAKjtF,EAAI,EAAGo8K,EAAK63O,EAAe92Z,MAAM,CAAE6C,EAAIo8K,EAAI,EAAEp8K,EAAG,CACnD,IATEA,EACAo8K,EAQE/mE,EAAWu1P,GAAcmpD,CAAgB,CAAC/zZ,EAAE,CAACggI,KAAK,EACtDi0R,CAAc,CAACj0Z,EAAE,CAACmY,QAAQ,GAE1Bu+V,CADas9C,CAAuB,CAACh0Z,EAAE,CAAGg+V,EAASU,KAAK,CAACrpP,EAAQ,EAC1DuqB,IAAI,CAACs0R,EAAcF,EAAyBh0Z,GACrD,CAEA+zZ,EAAiB52Z,MAAM,CAAG,EAC1B82Z,EAAe92Z,MAAM,CAAG,EAEnB22Z,CAAAA,EAAsBF,EAAmBD,KAAK,CAAC,IAAMt3Z,EAAM,EAAIu3Z,EAAmBD,KAAK,CAAC,IAAI,GAC/Fl1Z,EAAQq1Z,EAAqB,SAASK,CAAkB,EACtDA,EAAmBh+Q,UAAU,CAAC,SAASi+Q,CAAW,CAAEC,CAAa,EAC/DJ,EAAeryZ,IAAI,CAACyyZ,GACpB,IAAIC,EAASH,EAAmBp1Z,OAAO,CACvCq1Z,CAAW,CAACA,EAAYj3Z,MAAM,GAAG,CAAGszB,EAASixV,eAAe,CAAC,oBAG7DqyC,EAAiBnyZ,IAAI,CAFT,CAAEo+H,MAAOo0R,CAAY,GAGjCp2D,EAASz3F,KAAK,CAAC6tJ,EAAaE,EAAOn1Y,MAAM,GAAIm1Y,EAC/C,EACF,EAEJ,EACF,CACF,CACF,EAAE,CAEEC,GAAwB7Z,GAAY,CACtCvkQ,WAAY,UACZi2H,SAAU,KACV15K,QAAS,YACT63R,aAAc,GACdxjW,KAAKlV,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,CAAEqxU,CAAI,CAAEC,CAAW,EAO3Cz/V,EALYmuB,EAAM4nY,YAAY,CAAClrY,KAAK,CAACsD,EAAM6nY,qBAAqB,EAAEh5Q,IAAI,GAAGr8I,MAAM,CAE7E,SAASL,CAAO,CAAES,CAAK,CAAEg2D,CAAK,EAAI,OAAOA,CAAK,CAACh2D,EAAQ,EAAE,GAAKT,CAAS,GAG1D,SAAS21Z,CAAQ,EAC9Bz2D,EAAK01D,KAAK,CAAC,IAAMe,EAAS,CAAIz2D,EAAK01D,KAAK,CAAC,IAAMe,EAAS,EAAI,EAAE,CAC9Dz2D,EAAK01D,KAAK,CAAC,IAAMe,EAAS,CAAC9yZ,IAAI,CAAC,CAAEu0I,WAAY+nN,EAAan/V,QAASA,CAAQ,EAC9E,EACF,CACF,GAEI41Z,GAA2Bja,GAAY,CACzCvkQ,WAAY,UACZi2H,SAAU,KACV15K,QAAS,YACT63R,aAAc,GACdxjW,KAAKlV,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEyiW,CAAI,CAAEC,CAAW,EAC1CD,EAAK01D,KAAK,CAAC,IAAI,CAAI11D,EAAK01D,KAAK,CAAC,IAAI,EAAI,EAAE,CACxC11D,EAAK01D,KAAK,CAAC,IAAI,CAAC/xZ,IAAI,CAAC,CAAEu0I,WAAY+nN,EAAan/V,QAASA,CAAQ,EAClE,CACH,GAiKI61Z,GAAqBtxD,EAAO,gBAC5BuxD,GAAwB,CAAC,WAAY,SAASpkY,CAAQ,EACxD,MAAO,CACL7e,SAAU,MACVixO,QAAS,SAA6BypB,CAAQ,EAG5C,IAAIwoJ,EAAiBrkY,EAAS67O,EAASwyF,QAAQ,IAG/C,OAFAxyF,EAAS1oO,KAAK,GAEP,SAA8B/qB,CAAM,CAAEo9E,CAAQ,CAAEx7E,CAAM,CAAEhV,CAAU,CAAEy4V,CAAW,EAEpF,GAAI,CAACA,EACH,MAAM02D,GAAmB,SACzB,8HAGAzsD,GAAYlyQ,GAKVx7E,CAAAA,EAAOs6Y,YAAY,GAAKt6Y,EAAO+kW,KAAK,CAACu1C,YAAY,EACnDt6Y,CAAAA,EAAOs6Y,YAAY,CAAG,IAExB,IAAI/vC,EAAWvqW,EAAOs6Y,YAAY,EAAIt6Y,EAAOu6Y,gBAAgB,CAqB7D,SAASC,IAGPH,EAAej8Y,EAAQ,SAASmnH,CAAK,EACnC/pC,EAAS9xD,MAAM,CAAC67F,EAClB,EACF,CAxBAk+N,EAOA,SAAmCl+N,CAAK,CAAEqpP,CAAgB,EACpDrpP,EAAM7iI,MAAM,EAAI+3Z,SAkBCx6E,CAAK,EAC1B,IAAK,IAAI16U,EAAI,EAAGo8K,EAAKs+J,EAAMv9U,MAAM,CAAE6C,EAAIo8K,EAAIp8K,IAAK,CAC9C,IAAI4+G,EAAO87N,CAAK,CAAC16U,EAAE,CACnB,GAAI4+G,EAAKp7B,QAAQ,GAAK6kR,IAAkBzpP,EAAKu7N,SAAS,CAACtwR,IAAI,GACzD,MAAO,EAEX,CACF,EAzBoCm2E,GAChC/pC,EAAS9xD,MAAM,CAAC67F,IAEhBi1R,IAGA5rC,EAAiBlxW,QAAQ,GAE7B,EAhBuC,KAAM6sW,GAGzCA,GAAY,CAAC9mB,EAAY6pB,YAAY,CAAC/C,IACxCiwC,GA8BJ,CACF,CACF,CACF,EAAE,CAoCEE,GAAkB,CAAC,iBAAkB,SAASpzQ,CAAc,EAC9D,MAAO,CACLnwI,SAAU,IACVy6P,SAAU,GACVxpB,QAAQ9jP,CAAO,CAAEvD,CAAI,EACnB,GAAIA,qBAAAA,EAAKyhB,IAAI,CAAyB,CACpC,IAAI1E,EAAc/c,EAAKsS,EAAE,CACrB0qH,EAAOz5H,CAAO,CAAC,EAAE,CAACy5H,IAAI,CAE1BupB,EAAej4I,GAAG,CAACyO,EAAaigH,EAClC,CACF,CACF,CACF,EAAE,CAKE48R,GAAwB,CAAEpiU,cAAeppE,EAAMqpE,QAASrpE,CAAK,EAEjE,SAASyrY,GAAwBtF,CAAQ,CAAE1zZ,CAAK,EAC9C0zZ,EAASx3V,IAAI,CAAC,WAAYl8D,GAQ1B0zZ,EAASv0Z,IAAI,CAAC,WAAYa,EAC5B,CAyIA,IAAIi5Z,GACI,CAAC,WAAY,SAAuB,SAASr/T,CAAQ,CAAEp9E,CAAM,EAC3D,IAAIq4B,EAAO,IAAI,CACXqkX,EAAa,IAAIxjD,EAErB7gU,CAAAA,EAAK09W,cAAc,CAAG,CAAC,EAGvB19W,EAAK07W,WAAW,CAAGwI,GACnBlkX,EAAKsrI,QAAQ,CAAG,GAShBtrI,EAAK87W,aAAa,CAAGlqD,EAAOvgW,EAAOjF,QAAQ,CAAC80G,aAAa,CAAC,WAS1DlhE,EAAK27W,cAAc,CAAG,GACtB37W,EAAK47W,WAAW,CAAGhtZ,KAAAA,EAEnBoxC,EAAKskX,mBAAmB,CAAG,SAASp+S,CAAG,EACrC,IAAIq+S,EAAavkX,EAAKk+W,0BAA0B,CAACh4S,GACjDlmE,EAAK87W,aAAa,CAAC51S,GAAG,CAACq+S,GACvBx/T,EAASk7Q,OAAO,CAACjgU,EAAK87W,aAAa,EACnCqI,GAAwBnkX,EAAK87W,aAAa,CAAE,IAC5C/2T,EAASmhB,GAAG,CAACq+S,EACf,EAEAvkX,EAAKwkX,mBAAmB,CAAG,SAASt+S,CAAG,EACrC,IAAIq+S,EAAavkX,EAAKk+W,0BAA0B,CAACh4S,GACjDlmE,EAAK87W,aAAa,CAAC51S,GAAG,CAACq+S,GACvBJ,GAAwBnkX,EAAK87W,aAAa,CAAE,IAC5C/2T,EAASmhB,GAAG,CAACq+S,EACf,EAEAvkX,EAAKk+W,0BAA0B,CAAG,SAASh4S,CAAG,EAC5C,MAAO,KAAOm4P,GAAQn4P,GAAO,IAC/B,EAEAlmE,EAAKy+W,mBAAmB,CAAG,WACrBz+W,EAAK87W,aAAa,CAAC7tY,MAAM,IAAI+xB,EAAK87W,aAAa,CAAC7pZ,MAAM,EAC5D,EAEA+tC,EAAKykX,iBAAiB,CAAG,WACnBzkX,EAAK47W,WAAW,GAClB72T,EAASmhB,GAAG,CAAC,IACbi+S,GAAwBnkX,EAAK47W,WAAW,CAAE,IAE9C,EAEA57W,EAAK2+W,mBAAmB,CAAG,WACrB3+W,EAAK27W,cAAc,EACrBwI,GAAwBnkX,EAAK47W,WAAW,CAAE,GAE9C,EAEAj0Y,EAAOJ,GAAG,CAAC,WAAY,WAErBy4B,EAAKskX,mBAAmB,CAAG5rY,CAC7B,GAIAsnB,EAAKq+W,SAAS,CAAG,WACf,IAAIn4S,EAAMnhB,EAASmhB,GAAG,GAElBw+S,EAAUx+S,KAAOlmE,EAAK09W,cAAc,CAAG19W,EAAK09W,cAAc,CAACx3S,EAAI,CAAGA,SAEtE,EAASy+S,SAAS,CAACD,GACVA,EAGF,IACT,EAKA1kX,EAAKm+W,UAAU,CAAG,SAA0BhzZ,CAAK,EAG/C,IAAIy5Z,EAA0B7/T,CAAQ,CAAC,EAAE,CAAChzE,OAAO,CAACgzE,CAAQ,CAAC,EAAE,CAACy5T,aAAa,CAAC,CAG5E,GAFIoG,GAAyBT,GAAwBvyD,EAAOgzD,GAA0B,IAElF5kX,EAAK2kX,SAAS,CAACx5Z,GAAQ,CACzB60C,EAAKy+W,mBAAmB,GAExB,IAAIoG,EAAYxmD,GAAQlzW,GACxB45F,EAASmhB,GAAG,CAAC2+S,KAAa7kX,EAAK09W,cAAc,CAAGmH,EAAY15Z,GAG5D,IAAI8wB,EAAiB8oE,CAAQ,CAAC,EAAE,CAAChzE,OAAO,CAACgzE,CAAQ,CAAC,EAAE,CAACy5T,aAAa,CAAC,CACnE2F,GAAwBvyD,EAAO31U,GAAiB,GAClD,MACE+jB,EAAK0+W,0BAA0B,CAACvzZ,EAEpC,EAIA60C,EAAK8kX,SAAS,CAAG,SAAS35Z,CAAK,CAAE0C,CAAO,EAEtC,GAAIA,IAAAA,CAAO,CAAC,EAAE,CAACykF,QAAQ,EAEvBinR,GAAwBpuW,EAAO,kBACjB,KAAVA,IACF60C,EAAK27W,cAAc,CAAG,GACtB37W,EAAK47W,WAAW,CAAG/tZ,GAErB,IAAIkH,EAAQsvZ,EAAWrsZ,GAAG,CAAC7M,IAAU,EACrCk5Z,EAAWxpW,GAAG,CAAC1vD,EAAO4J,EAAQ,GAG9BgwZ,IACF,EAGA/kX,EAAKglX,YAAY,CAAG,SAAS75Z,CAAK,EAChC,IAAI4J,EAAQsvZ,EAAWrsZ,GAAG,CAAC7M,GACvB4J,IACEA,IAAAA,GACFsvZ,EAAW5qZ,MAAM,CAACtO,GACJ,KAAVA,IACF60C,EAAK27W,cAAc,CAAG,GACtB37W,EAAK47W,WAAW,CAAGhtZ,KAAAA,IAGrBy1Z,EAAWxpW,GAAG,CAAC1vD,EAAO4J,EAAQ,GAGpC,EAGAirC,EAAK2kX,SAAS,CAAG,SAASx5Z,CAAK,EAC7B,MAAO,CAAC,CAACk5Z,EAAWrsZ,GAAG,CAAC7M,EAC1B,EAYA60C,EAAKilX,eAAe,CAAG,WACrB,OAAOjlX,EAAK27W,cAAc,EAa5B37W,EAAKklX,wBAAwB,CAAG,WAE9B,OAAOngU,CAAQ,CAAC,EAAE,CAAChzE,OAAO,CAAC,EAAE,GAAKiuB,EAAK87W,aAAa,CAAC,EAAE,EAazD97W,EAAK++W,sBAAsB,CAAG,WAC5B,OAAO/+W,EAAK27W,cAAc,EAAI52T,CAAQ,CAAC,EAAE,CAAChzE,OAAO,CAACgzE,CAAQ,CAAC,EAAE,CAACy5T,aAAa,CAAC,GAAKx+W,EAAK47W,WAAW,CAAC,EAAE,EAGtG57W,EAAK0+W,0BAA0B,CAAG,SAASvzZ,CAAK,EAC1CA,MAAAA,GAAiB60C,EAAK47W,WAAW,EACnC57W,EAAKy+W,mBAAmB,GACxBz+W,EAAKykX,iBAAiB,IACbzkX,EAAK87W,aAAa,CAAC7tY,MAAM,GAAGhiB,MAAM,CAC3C+zC,EAAKwkX,mBAAmB,CAACr5Z,GAEzB60C,EAAKskX,mBAAmB,CAACn5Z,EAE7B,EAEA,IAAIg6Z,EAAkB,GACtB,SAASJ,IACHI,IACJA,EAAkB,GAClBx9Y,EAAO29V,YAAY,CAAC,WAClB6/C,EAAkB,GAClBnlX,EAAK07W,WAAW,CAAC35T,OAAO,EAC1B,GACF,CAEA,IAAIqjU,EAAkB,GACtB,SAASC,EAAwBC,CAAW,EACtCF,IAEJA,EAAkB,GAElBz9Y,EAAO29V,YAAY,CAAC,YACd39V,EAAOguW,WAAW,GAEtByvC,EAAkB,GAClBplX,EAAK07W,WAAW,CAAC55T,aAAa,CAAC9hD,EAAKq+W,SAAS,IACzCiH,GAAatlX,EAAK07W,WAAW,CAAC35T,OAAO,GAC3C,GACF,CAGA/hD,EAAKw7W,cAAc,CAAG,SAASoD,CAAW,CAAEZ,CAAa,CAAEuH,CAAW,CAAEC,CAAkB,CAAEC,CAAiB,EAE3G,GAAIF,EAAYj3C,KAAK,CAACokC,OAAO,CAAE,CAI7B,IAFIl4R,EAEAqqS,EAAYh5W,IAChB05W,EAAYnqY,QAAQ,CAAC,QAAS,SAAqCiF,CAAM,EAGvE,IADIqlY,EACAC,EAAqB3H,EAAc32V,IAAI,CAAC,YAExC/E,EAAUuiW,KACZ7kX,EAAKglX,YAAY,CAACxqS,GAClB,OAAOx6E,EAAK09W,cAAc,CAACmH,EAAU,CACrCa,EAAU,IAGZb,EAAYxmD,GAAQh+U,GACpBm6F,EAASn6F,EACT2f,EAAK09W,cAAc,CAACmH,EAAU,CAAGxkY,EACjC2f,EAAK8kX,SAAS,CAACzkY,EAAQ29X,GAIvBA,EAAc1zZ,IAAI,CAAC,QAASu6Z,GAExBa,GAAWC,GACbN,GAGJ,EACF,MAAWG,EAETD,EAAYnqY,QAAQ,CAAC,QAAS,SAAqCiF,CAAM,EAEvE2f,EAAKq+W,SAAS,GAGd,IADIqH,EACAC,EAAqB3H,EAAc32V,IAAI,CAAC,YAExC/E,EAAUk4D,KACZx6E,EAAKglX,YAAY,CAACxqS,GAClBkrS,EAAU,IAEZlrS,EAASn6F,EACT2f,EAAK8kX,SAAS,CAACzkY,EAAQ29X,GAEnB0H,GAAWC,GACbN,GAEJ,GACSI,EAET7G,EAAYhjY,MAAM,CAAC6pY,EAAmB,SAAgCplY,CAAM,CAAEm6F,CAAM,EAClF+qS,EAAYpkR,IAAI,CAAC,QAAS9gH,GAC1B,IAAIslY,EAAqB3H,EAAc32V,IAAI,CAAC,YACxCmzD,IAAWn6F,GACb2f,EAAKglX,YAAY,CAACxqS,GAEpBx6E,EAAK8kX,SAAS,CAACzkY,EAAQ29X,GAEnBxjS,GAAUmrS,GACZN,GAEJ,GAGArlX,EAAK8kX,SAAS,CAACS,EAAYp6Z,KAAK,CAAE6yZ,GAIpCuH,EAAYnqY,QAAQ,CAAC,WAAY,SAASiF,CAAM,EAK1CA,CAAAA,SAAAA,GAAqBA,GAAU29X,EAAc32V,IAAI,CAAC,eAChDrnB,EAAKsrI,QAAQ,CACf+5O,EAAwB,KAExBrlX,EAAK07W,WAAW,CAAC55T,aAAa,CAAC,MAC/B9hD,EAAK07W,WAAW,CAAC35T,OAAO,IAG9B,GAEAi8T,EAAc52X,EAAE,CAAC,WAAY,WAC3B,IAAIw8H,EAAe5jH,EAAKq+W,SAAS,GAC7BuH,EAAcL,EAAYp6Z,KAAK,CAEnC60C,EAAKglX,YAAY,CAACY,GAClBb,IAEI/kX,CAAAA,EAAKsrI,QAAQ,EAAI1nB,GAAgBA,EAAa32I,QAAQ,CAAC24Y,IACvDhiQ,IAAiBgiQ,CAAU,GAI7BP,EAAwB,GAE5B,EACF,CACF,EAAE,CA+QNQ,GAAkB,WAEpB,MAAO,CACLnlZ,SAAU,IACV8gF,QAAS,CAAC,SAAU,WAAW,CAC/BjtF,WAAY6vZ,GACZlpJ,SAAU,EACVrlP,KAAM,CACJogW,IAKJ,SAAuBt1W,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,CAAEmiZ,CAAK,EAE9C,IAAIgP,EAAahP,CAAK,CAAC,EAAE,CACrBiP,EAAcjP,CAAK,CAAC,EAAE,CAI1B,GAAI,CAACiP,EAAa,CAChBD,EAAWD,cAAc,CAAG9iY,EAC5B,MACF,CAmBA,GAhBA+iY,EAAWC,WAAW,CAAGA,EAKzB7tZ,EAAQu5B,EAAE,CAAC,SAAU,WACnBq0X,EAAWgD,mBAAmB,GAC9B99Y,EAAM4iF,MAAM,CAAC,WACXm4T,EAAY55T,aAAa,CAAC25T,EAAW4C,SAAS,GAChD,EACF,GAMI/zZ,EAAKghL,QAAQ,CAAE,CACjBmwO,EAAWnwO,QAAQ,CAAG,GAGtBmwO,EAAW4C,SAAS,CAAG,WACrB,IAAI/5V,EAAQ,EAAE,CAOd,OANA/2D,EAAQM,EAAQV,IAAI,CAAC,UAAW,SAAS4uB,CAAM,EAC7C,GAAIA,EAAOooF,QAAQ,EAAI,CAACpoF,EAAO3lB,QAAQ,CAAE,CACvC,IAAI8vG,EAAMnqF,EAAO5wB,KAAK,CACtBm5D,EAAM5zD,IAAI,CAACw1G,KAAOu1S,EAAWiC,cAAc,CAAGjC,EAAWiC,cAAc,CAACx3S,EAAI,CAAGA,EACjF,CACF,GACO5hD,CACT,EAGAm3V,EAAW0C,UAAU,CAAG,SAA4BhzZ,CAAK,EACvDoC,EAAQM,EAAQV,IAAI,CAAC,UAAW,SAAS4uB,CAAM,EAC7C,IAAI+pY,EAAmB,CAAC,CAAC36Z,GAAU8hB,CAAAA,GAAS9hB,EAAO4wB,EAAO5wB,KAAK,GAC5B8hB,GAAS9hB,EAAOswZ,EAAWiC,cAAc,CAAC3hY,EAAO5wB,KAAK,CAAC,GAUtF26Z,IAToB/pY,EAAOooF,QAAQ,EAUrCggT,GAAwBvyD,EAAO71U,GAAS+pY,EAG5C,EACF,EAMA,IAFIC,EAEAC,EAAcn6W,IAClBlrC,EAAMib,MAAM,CAAC,WACPoqY,IAAgBtK,EAAY9gI,UAAU,EAAK9f,GAAOirJ,EAAUrK,EAAY9gI,UAAU,IACpFmrI,EAAW17D,GAAYqxD,EAAY9gI,UAAU,EAC7C8gI,EAAY35T,OAAO,IAErBikU,EAActK,EAAY9gI,UAAU,GAKtC8gI,EAAY9yD,QAAQ,CAAG,SAASz9V,CAAK,EACnC,MAAO,CAACA,GAASA,IAAAA,EAAMc,MAAM,CAEjC,CACF,EAxFE4L,KA0FF,SAAwB8I,CAAK,CAAE9S,CAAO,CAAE6tB,CAAK,CAAE+wX,CAAK,EAElD,IAAIiP,EAAcjP,CAAK,CAAC,EAAE,CAC1B,GAAKiP,GAEL,IAAID,EAAahP,CAAK,CAAC,EAAE,CAOzBiP,EAAY35T,OAAO,CAAG,WACpB05T,EAAW0C,UAAU,CAACzC,EAAY9gI,UAAU,CAC9C,EACF,CAxGA,CACF,CAwGF,EAMIqrI,GAAkB,CAAC,eAAgB,SAASl4C,CAAY,EAC1D,MAAO,CACLrtW,SAAU,IACVw6P,SAAU,IACVvpB,QAAQ9jP,CAAO,CAAEvD,CAAI,MACfk7Z,EACAC,EAgBJ,OAdInjW,EAAUh4D,EAAKooZ,OAAO,IAEfpwV,EAAUh4D,EAAKa,KAAK,EAE7Bq6Z,EAAqBz3C,EAAazjX,EAAKa,KAAK,CAAE,IAI9Cs6Z,CAAAA,EAAoB13C,EAAalgX,EAAQy5H,IAAI,GAAI,GAAI,GAEnDh9H,EAAK62I,IAAI,CAAC,QAAStzI,EAAQy5H,IAAI,KAI5B,SAAS3mH,CAAK,CAAE9S,CAAO,CAAEvD,CAAI,EAGlC,IAAI47Z,EAAiB,oBAEjBj4Y,EAASpgB,EAAQogB,MAAM,GAEvBwtY,EAAaxtY,EAAOne,IAAI,CAACo2Z,IAC3Bj4Y,EAAOA,MAAM,GAAGne,IAAI,CAACo2Z,GAEnBzK,GACFA,EAAWD,cAAc,CAAC76Y,EAAO9S,EAASvD,EAAMk7Z,EAAoBC,EAExE,CACF,CACF,CACF,EAAE,CAiEEU,GAAoB,WACtB,MAAO,CACLzlZ,SAAU,IACV8gF,QAAS,WACT3rE,KAAKlV,CAAK,CAAEujW,CAAG,CAAE55W,CAAI,CAAEyiW,CAAI,EACpBA,IACLziW,EAAK60I,QAAQ,CAAG,GAEhB4tN,EAAK/D,WAAW,CAAC7pN,QAAQ,CAAG,SAASgwQ,CAAU,CAAEC,CAAS,EACxD,MAAO,CAAC9kZ,EAAK60I,QAAQ,EAAI,CAAC4tN,EAAKnE,QAAQ,CAACwmD,EAC1C,EAEA9kZ,EAAK8wB,QAAQ,CAAC,WAAY,WACxB2xU,EAAKiiD,SAAS,EAChB,GACF,CACF,CACF,EAmFIoX,GAAmB,WACrB,MAAO,CACL1lZ,SAAU,IACV8gF,QAAS,WACT3rE,KAAKlV,CAAK,CAAEujW,CAAG,CAAE55W,CAAI,CAAEyiW,CAAI,EACzB,GAAKA,GAGL,IADI/C,EACAq8D,EAAa/7Z,EAAK0/Y,SAAS,EAAI1/Y,EAAK05Y,OAAO,CAC/C15Y,EAAK8wB,QAAQ,CAAC,UAAW,SAASvsB,CAAK,EAKrC,GAJI+uF,EAAS/uF,IAAUA,EAAM5C,MAAM,CAAG,GACpC4C,CAAAA,EAAQ,OAAW,IAAMA,EAAQ,MAG/BA,GAAS,CAACA,EAAMjD,IAAI,CACtB,MAAMwmW,EAAO,aAAa,WACxB,wDAAyDi0D,EACzDx3Z,EAAOooW,GAAYiN,IAGvBla,EAASn7V,GAASD,KAAAA,EAClBm+V,EAAKiiD,SAAS,EAChB,GAEAjiD,EAAK/D,WAAW,CAACg7C,OAAO,CAAG,SAASmL,CAAU,CAAEC,CAAS,EAEvD,OAAOriD,EAAKnE,QAAQ,CAACwmD,IAAc9kD,EAAYN,IAAWA,EAAOp+V,IAAI,CAACwjZ,EACxE,EACF,CACF,CACF,EAyEIkX,GAAqB,WACvB,MAAO,CACL5lZ,SAAU,IACV8gF,QAAS,WACT3rE,KAAKlV,CAAK,CAAEujW,CAAG,CAAE55W,CAAI,CAAEyiW,CAAI,EACzB,GAAKA,GAEL,IAAIw5D,EAAY,GAChBj8Z,EAAK8wB,QAAQ,CAAC,YAAa,SAASjwB,CAAK,EACvC,IAAIq7Z,EAASryD,EAAMhpW,GACnBo7Z,EAAYnyD,EAAYoyD,GAAU,GAAKA,EACvCz5D,EAAKiiD,SAAS,EAChB,GACAjiD,EAAK/D,WAAW,CAACu9D,SAAS,CAAG,SAASpX,CAAU,CAAEC,CAAS,EACzD,OAAO,EAAa,GAAMriD,EAAKnE,QAAQ,CAACwmD,IAAeA,EAAUnjZ,MAAM,EAAIs6Z,CAC7E,EACF,CACF,CACF,EAuEIE,GAAqB,WACvB,MAAO,CACL/lZ,SAAU,IACV8gF,QAAS,WACT3rE,KAAKlV,CAAK,CAAEujW,CAAG,CAAE55W,CAAI,CAAEyiW,CAAI,EACzB,GAAKA,GAEL,IAAI25D,EAAY,EAChBp8Z,EAAK8wB,QAAQ,CAAC,YAAa,SAASjwB,CAAK,EACvCu7Z,EAAYvyD,EAAMhpW,IAAU,EAC5B4hW,EAAKiiD,SAAS,EAChB,GACAjiD,EAAK/D,WAAW,CAAC09D,SAAS,CAAG,SAASvX,CAAU,CAAEC,CAAS,EACzD,OAAOriD,EAAKnE,QAAQ,CAACwmD,IAAcA,EAAUnjZ,MAAM,EAAIy6Z,CACzD,EACF,CACF,CACF,EACA,GAAIr1Z,EAAOykB,OAAO,CAACy2G,SAAS,CAAE,CAExBl7H,EAAOg4B,OAAO,EAChBA,QAAQixO,GAAG,CAAC,oDAEd,MACF,CA/2/BM6+F,KAIJvH,EAASiI,GACT/jV,EAAQjoB,OAAO,CAAG+jW,EAElBuH,GAAkB,IAqtBlBtrR,EA0p+BiB/3D,EA1p+BD,CACd,oBA9nFJ,SAA6B7gB,CAAM,EACjC,IAAI4mR,EAAS5mR,GAKX,OAAO+8V,EAJH1vS,EAAUrtD,EAAOg9V,cAAc,GACjCD,CAAAA,EAAaC,cAAc,CAAGC,EAAsBj9V,EAAOg9V,cAAc,EAAIh9V,EAAOg9V,cAAc,CAAGpmT,GAAE,CAK7G,EAunFI,UAAa0gF,GACb,KAAQ/oG,GACR,YAAe6mU,GACf,OAAUx8Q,EACV,MA/lEJ,SAAe8vQ,CAAG,EAChB,OAAOkW,EAAWlW,EAAK5vV,EAAM9E,IAAI,CAACo/D,UAAW,GAAI,GACnD,EA8lEI,OAAUyyM,GACV,QAAW82F,EACX,QAAWrkW,EACX,SAAYmrW,GACZ,KAAQhgV,EACR,KAAQtvB,GACR,OAAUg6T,GACV,SAAYqzC,GACZ,SAAYpC,EACZ,YAAe/J,EACf,UAAahoS,EACb,SAAYs7B,EACZ,WAAcz/C,EACd,SAAY09O,EACZ,SAAYllB,EACZ,UAAau9F,GACb,QAAWj6U,EACX,SAAY+5U,EACZ,OAAU75Q,EACV,UAAa2zQ,EACb,UAAaiF,EACb,UAAa,CAACi0B,UAAW,CAAC,EAC1B,eA9wBJ,SAAwBjR,CAAW,EACjC,IAAItmN,EAAW35I,EAAQjoB,OAAO,CAACkoX,GAAatmN,QAAQ,GACpD,GAAI,CAACA,EACH,MAAMwjM,EAAS,OACb,4DAEJ,OAAOxjM,EAASz3J,GAAG,CAAC,gBACtB,EAwwBI,oBA5xBJ,WACE3G,EAAO4kB,IAAI,CAAG,wBAA0B5kB,EAAO4kB,IAAI,CACnD5kB,EAAOqkC,QAAQ,CAAC+hK,MAAM,EACxB,EA0xBI,2CAjuBJ,WACEoiK,GAAO2B,sBAAsB,CAAG,EAClC,EAguBI,SAAYpJ,EACZ,MAAS4D,GACT,mBAAsB0B,GACtB,iBAAoBD,GACpB,YAAe/kO,GACf,sBAAyBq/N,CAC3B,GAIAF,CAFAA,EAAgB80D,SA/lBSt1Z,CAAM,EAE/B,IAAI+vW,EAAkBhP,EAAO,aACzBa,EAAWb,EAAO,MAEtB,SAASw0D,EAAOr9W,CAAG,CAAEtzB,CAAI,CAAEyN,CAAO,EAChC,OAAO6lB,CAAG,CAACtzB,EAAK,EAAKszB,CAAAA,CAAG,CAACtzB,EAAK,CAAGyN,GAAQ,CAC3C,CAEA,IAAI5N,EAAU8wY,EAAOv1Z,EAAQ,UAAWgB,QAKxC,OAFAyjB,EAAQ62U,QAAQ,CAAG72U,EAAQ62U,QAAQ,EAAIyF,EAEhCw0D,EAAO9wY,EAAS,SAAU,WAE/B,IAAIwiV,EAAU,CAAC,EAqDf,OAAO,SAAgBriV,CAAI,CAAE8vU,CAAQ,CAAE8gE,CAAQ,EAE7C,IAAIzkU,EAAO,CAAC,EAYZ,OAJAm3Q,SANuCtjV,CAAI,CAAEsrJ,CAAO,EAClD,GAAItrJ,mBAAAA,EACF,MAAMg9U,EAAS,UAAW,yCAA0C1xL,EAExE,EAEwBtrJ,EAAM,UAC1B8vU,GAAYuS,EAAQt+U,cAAc,CAAC/D,IACrCqiV,CAAAA,CAAO,CAACriV,EAAK,CAAG,IAAG,EAEd2wY,EAAOtuD,EAASriV,EAAM,WAC3B,GAAI,CAAC8vU,EACH,MAAMqb,EAAgB,QAAS,sLAEwBnrV,GAIzD,IAAIuuU,EAAc,EAAE,CAGhBI,EAAe,EAAE,CAGjB6d,EAAY,EAAE,CAEdxtW,EAAS6xZ,EAAY,YAAa,SAAU,OAAQliE,GAGpDmiE,EAAiB,CAEnBtiE,aAAcD,EACdG,cAAeC,EACfI,WAAYyd,EAgCZrgR,KAAKj3F,CAAK,EACR,GAAIm3D,EAAUn3D,GAAQ,CACpB,GAAI,CAAC0wR,EAAS1wR,GAAQ,MAAM8nW,EAAS,OAAQ,mCAAsC,SAEnF,OADA7wQ,EAAOj3F,EACA,IAAI,CAEb,OAAOi3F,CACT,EAWA2jQ,SAAUA,EAUV9vU,KAAMA,EAaN3e,SAAU0vZ,EAA4B,WAAY,YAWlDtjY,QAASsjY,EAA4B,WAAY,WAWjD93Z,QAAS83Z,EAA4B,WAAY,WAWjD77Z,MAAO27Z,EAAY,WAAY,SAY/BziE,SAAUyiE,EAAY,WAAY,WAAY,WAY9CrwO,UAAWuwO,EAA4B,WAAY,YAAapiE,GAkChElvO,UAAWsxS,EAA4B,mBAAoB,YAkB3D94Z,OAAQ84Z,EAA4B,kBAAmB,YAYvDzyZ,WAAYyyZ,EAA4B,sBAAuB,YAa/DrkZ,UAAWqkZ,EAA4B,mBAAoB,aAa3D/yZ,UAAW+yZ,EAA4B,mBAAoB,aAmB3D/xZ,OAAQA,EAYRg6K,IAAIjhH,CAAK,EAEP,OADAy0S,EAAU/xW,IAAI,CAACs9D,GACR,IAAI,CAEf,EAMA,OAJI64V,GACF5xZ,EAAO4xZ,GAGFE,EAQP,SAASD,EAAYxvZ,CAAQ,CAAE6G,CAAM,CAAE8oZ,CAAY,CAAEppE,CAAK,EAExD,OADKA,GAAOA,CAAAA,EAAQ2G,CAAU,EACvB,WAEL,OADA3G,CAAK,CAACopE,GAAgB,OAAO,CAAC,CAAC3vZ,EAAU6G,EAAQkqD,UAAU,EACpD0+V,CACT,CACF,CAOA,SAASC,EAA4B1vZ,CAAQ,CAAE6G,CAAM,CAAE0/U,CAAK,EAE1D,OADKA,GAAOA,CAAAA,EAAQ2G,CAAU,EACvB,SAAS0iE,CAAU,CAAEC,CAAe,EAGzC,OAFIA,GAAmBhpX,EAAWgpX,IAAkBA,CAAAA,EAAgBr6C,YAAY,CAAG72V,CAAG,EACtF4nU,EAAMntV,IAAI,CAAC,CAAC4G,EAAU6G,EAAQkqD,UAAU,EACjC0+V,CACT,CACF,CACF,EACF,CACF,EAEF,EA+MoC11Z,EAAAA,EAEpB,KAAM,CAAC,WAAW,CAAE,CAAC,WACjC,SAAkBmlL,CAAQ,EAExBA,EAASl/K,QAAQ,CAAC,CAChB82V,cAAeirC,EACjB,GACA7iN,EAASl/K,QAAQ,CAAC,WAAYm0W,IAC5B9oW,SAAS,CAAC,CACNswD,EAAGw2U,GACH9zV,MAAO08V,GACP+U,SAAU/U,GACVjlW,KAAMy/V,GACN90C,OAAQksD,GACR/rO,OAAQ2tO,GACR9pY,OAAQkqY,GACRpT,OAAQF,GACRO,WAAYF,GACZD,eAAgBD,GAChBuU,QAASlS,GACTmS,YAAajS,GACbkS,WAAYnS,GACZoS,QAASlS,GACTmS,aAAclS,GACdrK,OAAQ4B,GACR97P,OAAQmxQ,GACRvM,KAAMF,GACNK,UAAWF,GACXU,OAAQD,GACRoR,cAAezM,GACf0M,YAAaxI,GACb8B,SAAUf,GACVgC,OAAQD,GACRI,QAASD,GACTO,SAAUH,GACVc,aAAcD,GACduE,gBAAiBnE,GACjB1H,UAAWX,GACXyI,aAAcF,GACdliU,QAASq4T,GACTrD,OAAQD,GACRjD,SAAUF,GACVrP,QAASoiB,GACTpc,UAAWoc,GACXjnR,SAAUgnR,GACV0B,WAAY1B,GACZO,UAAWD,GACXqB,YAAarB,GACbF,UAAWD,GACXyB,YAAazB,GACb5T,QAASH,GACTyI,eAAgBN,EACpB,GACA/3Y,SAAS,CAAC,CACRozY,UAAWM,EACb,GACA1zY,SAAS,CAACgnY,IACVhnY,SAAS,CAAC6yY,IACZh/N,EAASl/K,QAAQ,CAAC,CAChBu1V,cAAe8W,GACf7W,SAAU+Y,GACVmiD,YAAa5/C,GACb6/C,YAAarjD,GACbwB,eAAgBvB,GAChBG,gBAAiBkC,GACjBE,kBAAmBP,GACnBlc,SAAU2f,GACVgB,cAAef,GACf5c,YAAaovB,GACbhjL,UAAWsjL,GACXhW,mBAAoBiW,GACpB1Q,kBAAmB6Q,GACnBr8W,QAASwgY,GACTsmB,cAAetqC,GACf7P,aAAc8W,GACdrhX,UAAW4iX,GACXrvX,MAAOyoX,GACP2oC,qBAAsB/pC,GACtBgqC,2BAA4B/pC,GAC5B8B,aAAcqD,GACdE,YAAaH,GACbE,gBAAiBoD,GACjBpjX,UAAW4mX,GACX/pV,KAAM6qV,GACNz5I,OAAQ2+I,GACRlvX,WAAY+zX,GACZnyX,GAAI6vX,GACJvM,IAAK0M,GACLvyX,KAAMm+X,GACNC,aAAchB,GACdz2B,SAAU83B,GACVpuP,eAAgBw6N,GAChB5nO,iBAAkBo8P,GAClBwoB,cAAenoB,GACfjvY,SAAU6vY,GACVv9X,QAAS49X,GACTr6B,MAAO6tB,GACP2zB,SAAUlqD,GACVmqD,MAAOznD,GACPsf,eAAgBuhB,EAClB,EACF,EACD,EACAv/S,IAAI,CAAC,CAAE4kQ,eAAgB,OAAQ,GA4g+BlClxU,EAAQpgB,MAAM,CAAC,WAAY,EAAE,CAAE,CAAC,WAAY,SAAS8gL,CAAQ,EAC7D,IAAIgyO,EAAkB,CAAeC,IAAK,MAA6CC,MAAO,OAAO,EAmBrGlyO,EAASrrL,KAAK,CAAC,UAAW,CACxB,iBAAoB,CAClB,MAAS,CACP,KACA,KACD,CACD,IAAO,CACL,SACA,SACA,UACA,YACA,WACA,SACA,WACD,CACD,SAAY,CACV,gBACA,cACD,CACD,KAAQ,CACN,KACA,KACD,CACD,eAAkB,EAClB,MAAS,CACP,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,WACD,CACD,SAAY,CACV,MACA,MACA,MACA,MACA,MACA,MACA,MACD,CACD,WAAc,CACZ,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACD,CACD,gBAAmB,CACjB,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,WACD,CACD,aAAgB,CACd,EACA,EACD,CACD,SAAY,kBACZ,SAAY,YACZ,OAAU,qBACV,WAAc,WACd,WAAc,YACd,MAAS,gBACT,UAAa,SACb,UAAa,QACf,EACA,eAAkB,CAChB,aAAgB,IAChB,YAAe,IACf,UAAa,IACb,SAAY,CACV,CACE,MAAS,EACT,OAAU,EACV,QAAW,EACX,QAAW,EACX,OAAU,EACV,OAAU,IACV,OAAU,GACV,OAAU,GACV,OAAU,EACZ,EACA,CACE,MAAS,EACT,OAAU,EACV,QAAW,EACX,QAAW,EACX,OAAU,EACV,OAAU,KACV,OAAU,GACV,OAAU,IACV,OAAU,EACZ,EACD,EAEH,GAAM,QACN,SAAY,QACZ,UAAa,SAASo/D,CAAC,CAAEo+V,CAAa,EAAK,IAzIxBp+V,EAEfz7D,EAKAs/E,EAMAo6S,EA4H2DogC,GAhI3Dh6Z,KAAAA,KAFAw/E,EAkIyEu6U,IA/H3Ev6U,CAAAA,EAAIpiC,KAAKqoC,GAAG,CAPP,KADHvlF,EAAIy7D,CADRA,EAwI0EA,EAxIlE,IACE77D,OAAO,CAAC,MACC,EAAI67D,EAAEt+D,MAAM,CAAG6C,EAAI,EAOP,EAAC,EAG5B05X,EAAOx8U,KAAKu8D,GAAG,CAAC,GAAIn6B,GAEjB,CAACA,EAAGA,EAAG++C,EADN,CAAC,EAAKq7P,EAAQ,GAAKA,CACT,UA0H4E,GAA3Cj+T,CAAAA,EAAAA,CAAI,GAAqDq+V,GAAAA,EAAGx6U,CAAC,CAAmBo6U,EAAgBC,GAAG,CAAaD,EAAgBE,KAAK,CAC1L,EACA,EAAE,EACF5yY,EAAQjoB,OAAO,CAACzB,SAASsvS,IAAI,EAAEukE,OAAO,CACpC,4OAOArO,EAAO,MACLi3D,SA5tgCiBh7Z,CAAO,CAAE0+H,CAAS,EAGrC,IAFIu8R,EACApzZ,EACAT,EAAS,CAAC,EAoBd,GAjBA1H,EAAQqqW,GAAgB,SAAS4mB,CAAM,EACrC,IAAIvoW,EAAOuoW,EAAS,KAEhB,EAACsqC,GAAcj7Z,EAAQ0uT,YAAY,EAAI1uT,EAAQ0uT,YAAY,CAACtmS,KAC9D6yY,EAAaj7Z,EACb6H,EAAS7H,EAAQJ,YAAY,CAACwoB,GAElC,GACA1oB,EAAQqqW,GAAgB,SAAS4mB,CAAM,EACrC,IACIoR,EADA35W,EAAOuoW,EAAS,KAGhB,EAACsqC,GAAel5B,CAAAA,EAAY/hY,EAAQgwB,aAAa,CAAC,IAAM5H,EAAK7V,OAAO,CAAC,IAAK,OAAS,QACrF0oZ,EAAal5B,EACbl6X,EAASk6X,EAAUniY,YAAY,CAACwoB,GAEpC,GACI6yY,EAAY,CACd,GAAI,CAACjxD,GAAwB,CAC3BxmW,EAAOg4B,OAAO,CAACD,KAAK,CAAC,8HAErB,MACF,CACAn0B,EAAOsjW,QAAQ,CAAGwwD,OAAAA,SAzOEl7Z,CAAO,CAAEk8Y,CAAM,EAGrC,IAFIz/Y,EACAwE,EACAo8K,EAAK0sL,GAAe3rW,MAAM,CAC9B,IAAK6C,EAAI,EAAGA,EAAIo8K,EAAI,EAAEp8K,EAEpB,GADAxE,EAAOstW,EAAc,CAAC9oW,EAAE,CAAGi7Y,EACvBnsT,EAAStzF,EAAOuD,EAAQJ,YAAY,CAACnD,IACvC,OAAOA,EAGX,OAAO,IACT,EA8NqCw+Z,EAAY,aAC7Cv8R,EAAUu8R,EAAYpzZ,EAAS,CAACA,EAAO,CAAG,EAAE,CAAET,EAChD,CACF,EA4rgCgB5D,EAAOjF,QAAQ,CAAEmgI,GAC/B,EAEF,GAAGl7H,O,kCCx9jCI,OAAMqB,EACXrD,aAAc,CACyC,OAAjDgC,OAAOykB,OAAO,CAACkzY,qBAAqB,CAACv/S,OAAO,EAC9Cp3G,OAAOkhB,MAAM,CAAC,IAAI,CAAEliB,OAAOykB,OAAO,CAACkzY,qBAAqB,CAACv/S,OAAO,CAEpE,CACF,C,4CCdA,IAAMw/S,EAAa,EAAE,CACd,SAASC,EAAUC,CAAU,EACN,IAAtBF,EAAWh9Z,MAAM,EACjBoF,OAAOssT,cAAc,CAAC,KAClB,IAAMyrG,EAAeh9Z,SAAS80G,aAAa,CAAC,SAC5CkoT,EAAap8Z,YAAY,CAAC,OAAQ,YAElCo8Z,EAAa/nT,WAAW,CAACj1G,SAAS4nR,cAAc,CAACi1I,EAAW31U,IAAI,CAAC,MAEjElnF,SAASsvS,IAAI,CAACr6L,WAAW,CAAC+nT,GAC1BH,EAAWh9Z,MAAM,CAAG,CACxB,GAGJg9Z,EAAWv4Z,IAAI,CAACy4Z,EACpB,C,2/BCdA,eACA,WACA,WACA,WACA,UAyDG,gBA5CH,CADG,SAED,CAAiC,CACjC,CAA2C,CAC3C,CAA0B,EAInB,OALP,qBACA,iBAA0B,EAMnB,CACL,SAAU,EAAU,CALR,GACR,EAAM,SAAS,EAAI,OAAO,IAAI,CAAC,EAAM,SAAS,GAC/C,EAAE,EAGqB,GAAG,CAAC,UAAC,EAAI,OAAC,EAAG,IAAJ,IACnC,WAAU,KAAG,WAAU,CAAK,EAAW,iBAQrC,WAAoB,CAA0B,EAAyB,IAAvB,+BAAuB,CAAvB,4BAAhD,EACE,cAAO,KAMR,EAPmB,QAAQ,CAAR,EAA0B,EAJ9C,WAAW,CAAY,GAEf,OAAK,CAAgB,KAAI,EACzB,aAAa,CAAe,WAAM,SAAK,KAAM,CAAC,MAAM,CAAC,gBAAC,EAAK,KAAK,EAAK,KAAK,CAAM,EAAK,aAAoB,GAAK,IAG/G,aAAa,CAAG,GACrB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,MAAM,CAAE,IAAK,CAC3C,IAAM,EAAO,CAAW,CAAC,EAAE,GACtB,aAAa,CAAC,EAAK,CAAG,CAAa,CAAC,EAAE,SAE/C,CAiBF,OAhCuD,OAepD,OAdD,eAAW,gBAAW,KAAtB,WACE,MAAO,EACT,EADa,gCACZ,EAaD,gBAAM,CAAN,WACM,IAAI,CAAC,WAAW,GAGD,OAAf,IAAI,CAAC,KAAK,EACZ,KAAI,CAAC,KAAK,CAAG,iBAAW,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAC,CAE3C,eAAU,IAAI,CAAC,aAAa,EAAC,EAE/B,gCAAoB,CAApB,WACE,IAAI,CAAC,WAAW,CAAG,GACA,OAAf,IAAI,CAAC,KAAK,GACZ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAE,IAChB,CAAC,KAAK,CAAG,KAAI,EAGvB,CAAC,EAhCsD,SAAW,MAgChE,CACH,C,iEC9DH,GAAM,CACJpuS,QAAAA,CAAO,CACPsuS,eAAAA,CAAc,CACdC,SAAAA,CAAQ,CACRt2D,eAAAA,CAAc,CACdu2D,yBAAAA,CAAAA,CACD,CAAGl3Z,OAEA,CAAE4tK,OAAAA,CAAM,CAAEupP,KAAAA,CAAI,CAAEhkW,OAAAA,CAAAA,CAAQ,CAAGnzD,OAC3B,CAAE+1D,MAAAA,CAAK,CAAEqhW,UAAAA,CAAAA,CAAW,CAAG,oBAAOC,SAA2BA,QAExDzpP,GACHA,CAAAA,EAAS,SAAUzgI,CAAC,EAAE,OACbA,CAAC,GAIPgqX,GACHA,CAAAA,EAAO,SAAUhqX,CAAC,EAAE,OACXA,CAAC,GAIP4oB,GACHA,CAAAA,EAAQ,SAAUuhW,CAAG,CAAEC,CAAS,CAAE53Z,CAAI,EACpC,OAAO23Z,EAAIvhW,KAAK,CAACwhW,EAAW53Z,EAAK,GAIhCy3Z,GACHA,CAAAA,EAAY,SAAUI,CAAI,CAAE73Z,CAAI,EAAE,OACzB,IAAI63Z,KAAQ73Z,EAAK,GAI5B,IAAM83Z,EAAeC,EAAQj8Z,MAAMlD,SAAS,CAAC2C,OAAO,EAE9Cy8Z,EAAWD,EAAQj8Z,MAAMlD,SAAS,CAACmxF,GAAG,EACtCkuU,EAAYF,EAAQj8Z,MAAMlD,SAAS,CAAC8F,IAAI,EAGxCw5Z,EAAoBH,EAAQ1yU,OAAOzsF,SAAS,CAAC6X,WAAW,EACxD0nZ,EAAiBJ,EAAQ1yU,OAAOzsF,SAAS,CAAC0vB,QAAQ,EAClD8vY,EAAcL,EAAQ1yU,OAAOzsF,SAAS,CAACgiB,KAAK,EAC5Cy9Y,EAAgBN,EAAQ1yU,OAAOzsF,SAAS,CAACwV,OAAO,EAChDkqZ,EAAgBP,EAAQ1yU,OAAOzsF,SAAS,CAAC8D,OAAO,EAChD67Z,EAAaR,EAAQ1yU,OAAOzsF,SAAS,CAAC+tD,IAAI,EAE1C6xW,EAAuBT,EAAQ13Z,OAAOzH,SAAS,CAACovB,cAAc,EAE9DywY,EAAaV,EAAQ91D,OAAOrpW,SAAS,CAACgB,IAAI,EAE1C8+Z,GAkBez0X,EAlBek9V,UAmB3B,mBAAAw3B,EAAAtiW,UAAAp8D,MAAA,CAAI+F,EAAIlE,MAAA68Z,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ54Z,CAAI,CAAA44Z,EAAAviW,CAAAA,SAAA,CAAAuiW,EAAA,QAAKnB,EAAUxzX,EAAMjkC,EAAK,GAX3C,SAAS+3Z,EAAQ9zX,CAAI,EAAE,OACd,SAAC40X,CAAO,MAAAC,IAAAA,EAAAziW,UAAAp8D,MAAA,CAAK+F,EAAI,MAAA84Z,EAAAA,EAAAA,EAAA,KAAA7qJ,EAAA,EAAAA,EAAA6qJ,EAAA7qJ,IAAJjuQ,CAAI,CAAAiuQ,EAAA53M,EAAAA,CAAAA,SAAA,CAAA43M,EAAA,QAAK73M,EAAMnyB,EAAM40X,EAAS74Z,EAAK,EAqBzD,SAAS+4Z,EAASlwW,CAAG,CAAEyJ,CAAK,EAAyC,IAAvC0mW,EAAiB3iW,UAAAp8D,MAAA,IAAAo8D,KAAAz5D,IAAAy5D,SAAA,IAAAA,SAAA,IAAG6hW,EAC5Cb,GAIFA,EAAexuW,EAAK,MAAK,IAGvB9rD,EAAIu1D,EAAMr4D,MAAM,CACpB,KAAO8C,KAAK,CACV,IAAIlB,EAAUy2D,CAAK,CAACv1D,EAAE,CAAC,GACnB,iBAAOlB,EAAsB,CAC/B,IAAMo9Z,EAAYD,EAAkBn9Z,GAChCo9Z,IAAcp9Z,IAEXy7Z,EAAShlW,IACZA,CAAAA,CAAK,CAACv1D,EAAE,CAAGk8Z,CAAQ,EAAC,EAGZA,EAAS,CAEvB,CAEG,CAACp9Z,EAAQ,CAAG,EACjB,CADqB,OAGdgtD,CAAG,CA2BZ,SAASi0E,EAAM8qB,CAAM,EAAE,IACfsxQ,EAAY1lW,EAAO,MAAM,IAE1B,GAAM,CAACqsB,EAAU1mF,EAAM,GAAI4vH,EAAQ6+B,GACd4wQ,EAAqB5wQ,EAAQ/nE,KAG/C/jF,MAAMmsB,OAAO,CAAC9uB,GAChB+/Z,CAAS,CAACr5U,EAAS,CAAGs5U,SA1BV7mW,CAAK,EAAE,IACpB,IAAIh2D,EAAQ,EAAGA,EAAQg2D,EAAMr4D,MAAM,CAAEqC,IAChBk8Z,EAAqBlmW,EAAOh2D,IAGlDg2D,CAAAA,CAAK,CAACh2D,EAAM,CAAG,IAAG,EAEtB,OAEOg2D,CAAK,EAiB2Bn5D,GAEjCA,GACA,iBAAOA,GACPA,EAAMkE,WAAW,GAAKgD,OAEtB64Z,CAAS,CAACr5U,EAAS,CAAGi9C,EAAM3jI,GAE5B+/Z,CAAS,CAACr5U,EAAS,CAAG1mF,GAG5B,OAEO+/Z,CAAS,CAUlB,SAASE,EAAaxxQ,CAAM,CAAEvyF,CAAI,EAAE,KAC3BuyF,OAAAA,GAAiB,CACtB,IAAMyxQ,EAAO9B,EAAyB3vQ,EAAQvyF,GAAM,GAEhDgkW,EAAM,CACR,GAAIA,EAAKrzZ,GAAG,CACV,OAAO+xZ,EAAQsB,EAAKrzZ,GAAG,EAAC,GAGtB,mBAAOqzZ,EAAKlga,KAAK,CACnB,OAAO4+Z,EAAQsB,EAAKlga,KAAK,CAAC,CAI9ByuJ,EAASo5M,EAAep5M,EAAO,CAKjC,OALiC,WAGR,OAChB,IAAI,CAIf,CADsB,ICzLTnnH,EAAOwtI,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,UACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,MACD,EAGYwzI,EAAMxzI,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,QACD,EAEYqrP,EAAarrP,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,eACD,EAMYsrP,EAAgBtrP,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,MACD,EAEYurP,EAASvrP,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,cACD,EAIYwrP,EAAmBxrP,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,OACD,EAEY34C,EAAO24C,EAAO,CAAC,QAAQ,ECrRvBxtI,EAAOwtI,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,QACA,OACD,EAEYwzI,EAAMxzI,EAAO,CACxB,gBACA,aACA,WACA,qBACA,YACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,WACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,YACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,QACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,cACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,aACD,EAEYurP,EAASvrP,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,eACA,cACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,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AS,aACTvpR,MAAO,CACH,qBACpB,EAEY,CACIupR,QAAS,qBACTvpR,MAAO,CACH,6BACpB,EAEY,CACIupR,QAAS,oBACTvpR,MAAO,CACH,4BACpB,EAEA,EAEI,CACIg+Q,OAAQ,SACRlwS,MAAO,SACPspJ,OAAQ,CACJ,CACImyJ,QAAS,oBACTvpR,MAAO,CACH,sBACA,gBACA,mBACA,sBACpB,EAEY,CACIupR,QAAS,eACTvpR,MAAO,CACH,eACA,kBACA,2BACpB,EAEY,CACIupR,QAAS,qBACTvpR,MAAO,CACH,qBACA,yBACA,4BACA,qBACA,oBACA,oBACpB,EAEY,CACIupR,QAAS,yBACTvpR,MAAO,CACH,yBACA,oBACA,0BACpB,EAEY,CACIupR,QAAS,6BACTvpR,MAAO,CACH,qCACpB,EAEA,EAEI,CACIg+Q,OAAQ,SACRlwS,MAAO,SACPspJ,OAAQ,CACJ,CACImyJ,QAAS,cACTvpR,MAAO,CACH,CACIg+Q,OAAQ,OACRlwS,MAAO,OACPspJ,OAAQ,CACJ,CACImyJ,QAAS,cACTvpR,MAAO,CACH,eACA,iBACA,oBACA,wBACA,sBACA,oBACA,eACpC,EAE4B,CACIupR,QAAS,mBACTvpR,MAAO,CACH,2BACpC,EAEA,EAEoB,CACIg+Q,OAAQ,OACRlwS,MAAO,OACPspJ,OAAQ,CACJ,CACImyJ,QAAS,iBACTvpR,MAAO,CACH,mBACA,qBACpC,EAE4B,CACIupR,QAAS,aACTvpR,MAAO,CACH,oBACA,8BACpC,EAE4B,CACIupR,QAAS,YACTvpR,MAAO,CACH,oBACpC,EAEA,EAEoB,kBACpB,EAEY,CACIupR,QAAS,OACTvpR,MAAO,CACH,uBACA,uBACA,yBACA,mBACpB,EAEY,CACIupR,QAAS,SACTvpR,MAAO,CACH,oBACA,iBACA,kBACpB,EAEY,CACIupR,QAAS,aACTvpR,MAAO,CACH,qBACpB,EAEY,CACIupR,QAAS,eACTvpR,MAAO,CACH,uBACpB,EAEA,EAEI,CACIg+Q,OAAQ,QACRlwS,MAAO,QACPspJ,OAAQ,CACJ,CACImyJ,QAAS,UACTvpR,MAAO,CACH,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A,CAAiB,CAAEC,kBAAAA,CAAiB,CAAE,CAAGl/gB,EAGjDg7mB,GAFmB98F,EAAc34M,MAAM,CAEN05M,EAAmBC,EADhChB,EAAchnN,MAAM,CAACqkN,aAAa,CAACv7gB,EAAK21B,IAAI,EACmB,EACrF,CACL,CCpIL,OACW,CAEH,CACI7kB,MAAO,YACPktI,KAAM,KAClB,EACQ,CACIltI,MAAO,YACPktI,KAAM,GAClB,EACQ,CACIltI,MAAO,aACPktI,KAAM,YAClB,EACQ,CACIltI,MAAO,WACPktI,KAAM,IAClB,EACQ,CACIltI,MAAO,YACPktI,KAAM,KAClB,EACQ,CACIltI,MAAO,UACPktI,KAAM,KAClB,EACQ,CACIltI,MAAO,QACPktI,KAAM,OAClB,EACQ,CACIltI,MAAO,WACPktI,KAAM,IAClB,EACQ,CACIltI,MAAO,YACPktI,KAAM,IAClB,EACQ,CACIltI,MAAO,YACPktI,KAAM,IAClB,EACQ,CACIltI,MAAO,mBACPktI,KAAM,UAClB,EACQ,CACIltI,MAAO,cACPktI,KAAM,KAClB,EACQ,CACIltI,MAAO,UACPktI,KAAM,SAClB,EACQ,CACIltI,MAAO,UACPktI,KAAM,YAClB,EACQ,CACIltI,MAAO,aACPktI,KAAM,KAClB,EACQ,CACIltI,MAAO,cACPktI,KAAM,KAClB,EAEQ,CACIltI,MAAO,QACPktI,KAAM,IACNk+d,YAAa,CACThoF,eAAgB,QAChC,CACA,EACQ,CACIpjhB,MAAO,iBACPktI,KAAM,aACNk+d,YAAa,CACThoF,eAAgB,YAChC,CACA,EACQ,CACIpjhB,MAAO,YACPktI,KAAM,QACNk+d,YAAa,CACTzoF,WAAY,SACZhlN,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,YACPktI,KAAM,QACNk+d,YAAa,CACT1tS,QAAS,YACTC,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,YACPktI,KAAM,QACNk+d,YAAa,CACT1tS,QAAS,YACTC,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,YACPktI,KAAM,QACNk+d,YAAa,CACT1tS,QAAS,YACTC,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,cACPktI,KAAM,UACNk+d,YAAa,CACT1tS,QAAS,YACT6kN,cAAe,QACf5kN,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,eACPktI,KAAM,WACNk+d,YAAa,CACT1tS,QAAS,YACT6kN,cAAe,MACf5kN,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,UACPktI,KAAM,MACNk+d,YAAa,CACT1tS,QAAS,eACTC,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACT1tS,QAAS,CAAC,YAAa,YAAa,YAAY,CAChD/lP,QAAS,EACzB,CACA,EAEQ,CACI33E,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACT1tS,QAAS,SACTglN,eAAgB,aAChB/qc,QAAS,GACTgmP,QAAS,EACzB,CACA,EAEQ,CACI39T,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACT1tS,QAAS,SACTglN,eAAgB,aAChB/qc,QAAS,GACTgmP,QAAS,EACzB,CACA,EAEQ,CACI39T,MAAO,aACPktI,KAAM,SACNk+d,YAAa,CACThoF,eAAgB,aAChBzlN,QAAS,EACzB,CACA,EAEQ,CACI39T,MAAO,iBACPktI,KAAM,aACNk+d,YAAa,CACT1tS,QAAS,aACT6kN,cAAe,QACf5kN,QAAS,EACzB,CACA,EAEQ,CACI39T,MAAO,cACPktI,KAAM,UACNk+d,YAAa,CACThoF,eAAgB,aAChBzlN,QAAS,EACzB,CACA,EAEQ,CACI39T,MAAO,YACPktI,KAAM,QACNk+d,YAAa,CACThoF,eAAgB,aAChBzlN,QAAS,EACzB,CACA,EAEQ,CACI39T,MAAO,WACPktI,KAAM,OACNk+d,YAAa,CACThoF,eAAgB,aAChBzlN,QAAS,EACzB,CACA,EAEQ,CACI39T,MAAO,cACPktI,KAAM,UACNk+d,YAAa,CACThoF,eAAgB,aAChBzlN,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,cACPktI,KAAM,UACNk+d,YAAa,CACT7oF,cAAe,CACX,SACA,SACA,SACA,SACA,SACA,SACA,QACH,CACD7kN,QAAS,cACTC,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,UACPktI,KAAM,MACNm+d,mBAAoB,mBACpBD,YAAa,CACThoF,eAAgB,YAChC,CACA,EAEQ,CACIpjhB,MAAO,eACPktI,KAAM,WACNk+d,YAAa,CACThoF,eAAgB,aAChBzlN,QAAS,EACzB,CACA,EAEQ,CACI39T,MAAO,aACPktI,KAAM,SACNk+d,YAAa,CACT1tS,QAAS,eACT6kN,cAAe,OAC/B,CACA,EAEQ,CACIvihB,MAAO,aACPktI,KAAM,SACNk+d,YAAa,CACThoF,eAAgB,aAChBzlN,QAAS,EACzB,CACA,EAEQ,CACI39T,MAAO,aACPktI,KAAM,SACNk+d,YAAa,CACThoF,eAAgB,aAChBzlN,QAAS,EACzB,CACA,EAEQ,CACI39T,MAAO,WACPktI,KAAM,OACNk+d,YAAa,CACThoF,eAAgB,aAChBzlN,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,aACPktI,KAAM,SACNk+d,YAAa,CACT1tS,QAAS,CAAC,QAAS,aAAa,CAChC6kN,cAAe,CACX,YACA,QACA,SACA,SACA,SACA,SACA,SACA,SACH,CACD5kN,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACThoF,eAAgB,QAChC,CACA,EACQ,CACIpjhB,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACThoF,eAAgB,QAChC,CACA,EACQ,CACIpjhB,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACThoF,eAAgB,QAChC,CACA,EACQ,CACIpjhB,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACThoF,eAAgB,QAChC,CACA,EACQ,CACIpjhB,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACThoF,eAAgB,QAChC,CACA,EACQ,CACIpjhB,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACThoF,eAAgB,QAChC,CACA,EACQ,CACIpjhB,MAAO,YACPormB,YAAa,CACTzoF,WAAY,aACZJ,cAAe,CAAC,YAAa,SAAS,CACtC5kN,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,UACPktI,KAAM,MACNk+d,YAAa,CACThoF,eAAgB,WAChC,CACA,EACQ,CACIpjhB,MAAO,WACPktI,KAAM,OACNk+d,YAAa,CACThoF,eAAgB,WAChC,CACA,EACQ,CACIpjhB,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACThoF,eAAgB,WAChC,CACA,EACQ,CACIpjhB,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACThoF,eAAgB,WAChC,CACA,EAEQ,CACIpjhB,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACT1tS,QAAS,YACT6kN,cAAe,QACf5kN,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,UACPktI,KAAM,MACNk+d,YAAa,CACThoF,eAAgB,QAChC,CACA,EACQ,CACIpjhB,MAAO,cACPktI,KAAM,UACNk+d,YAAa,CACThoF,eAAgB,aAChBzlN,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,cACPktI,KAAM,UACNk+d,YAAa,CACThoF,eAAgB,aAChBzlN,QAAS,EACzB,CACA,EAEQ,CACI39T,MAAO,UACPktI,KAAM,MACNk+d,YAAa,CACThoF,eAAgB,aAChBzlN,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,YACPktI,KAAM,MACNk+d,YAAa,CACT7oF,cAAe,CAAC,SAAU,SAAS,CACnC7kN,QAAS,QACzB,CACA,EACQ,CACI19T,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACTzoF,WAAY,aACZJ,cAAe,CAAC,SAAU,SAAU,YAAY,CAChD5kN,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACT7oF,cAAe,SACf5kN,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,SACPktI,KAAM,KACNk+d,YAAa,CACT7oF,cAAe,SACf5kN,QAAS,EACzB,CACA,EACQ,CACI39T,MAAO,aACPktI,KAAM,SACNk+d,YAAa,CACThoF,eAAgB,aAChBzlN,QAAS,EACzB,CACA,EACK,IACO,CAEJ,CACI39T,MAAO,m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","sources":["webpack://@pjs/plus/../../../../../../library-packages/analytics/src/enums/CustomDimension.ts","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/collapsible/styles/collapsible.css","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/icon-button/styles/icon-button.css","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/input/styles/input.css","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/loading-spinner/styles/loading-spinner.css","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/notice/styles/notice.css","webpack://@pjs/plus/../../library-packages/core-ui/dist/public-utilities.css","webpack://@pjs/plus/../../library-packages/rich-text/dist/styles/attached-editor.css","webpack://@pjs/plus/../../library-packages/rich-text/dist/styles/persistent-editor.css","webpack://@pjs/plus/../../library-packages/rich-text/dist/styles/utilities.css","webpack://@pjs/plus/../../library-packages/theming/dist/theme.css","webpack://@pjs/plus/../../deprecated/p-comp/persistentCompactRichTextEditor/persistent-compact-rich-text-editor.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/a11y/services/a11yMenuFactory.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/abortablePromises/AbortablePromiseChain.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/abortablePromises/AbortablePromiseSet.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/abortablePromises/PromiseAbortController.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/abortablePromises/MakeAbortable.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/accessKeys/accessKey.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/addEvidence/evidenceJustification/evidenceJustification.component.js","webpack://@pjs/plus/../../deprecated/p-comp/addEvidence/evidenceJustification/evidence-justification.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetActionDialogs/launchDeleteDialog.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetActionDialogs/launchPurgeDialog.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetActionDialogs/launchRestoreDialog.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetContext/assetContext.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetEndpointService/assetEndpoint.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetFiltering/assetFilteringConfig.provider.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetListItem/assetListItem.directive.js","webpack://@pjs/plus/../../deprecated/p-comp/assetListItem/templates/asset-list-item.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetLocking/services/assetLockingAPI.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetLocking/services/assetLockingHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetLocking/directives/assetLockedWarning/assetLockedWarning.controller.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetLocking/directives/assetLockedWarning/assetLockedWarning.directive.js","webpack://@pjs/plus/../../deprecated/p-comp/assetLocking/directives/assetLockedWarning/templates/asset-locked-on-add-warning.html","webpack://@pjs/plus/../../deprecated/p-comp/assetLocking/directives/assetLockedWarning/templates/asset-locked-warning.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetLocking/services/assetLockingNotification.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetPageHandler/procurePageResponse.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/errorWithData/errorWithData.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetPageHandler/workbookResponsePageHandler.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetPageHandler/mapPageTreeToProcurePageModel.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetPageHandler/mapPageViewModelToPageUpdate.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetPageHandler/portfolioPageHandler.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetPageHandler/assetPageHandler.factory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetSelector/assetSelector.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/dateToggle/dateToggle.js","webpack://@pjs/plus/../../deprecated/p-comp/dateToggle/templates/date-toggle.html","webpack://@pjs/plus/../../deprecated/p-comp/assetStore/templates/advanced-search.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetStore/directives/advancedSearchContent.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/comboBox/directives/comboBox.js","webpack://@pjs/plus/../../deprecated/p-comp/comboBox/templates/combo-box.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/a11y/services/a11yGridFactory.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetStore/directives/searchResults.js","webpack://@pjs/plus/../../deprecated/p-comp/assetStore/templates/search-results.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/takeACopy/services/copyService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/takeACopy/directives/takeACopy.js","webpack://@pjs/plus/../../deprecated/p-comp/takeACopy/templates/take-a-copy.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetStore/directives/assetStore.js","webpack://@pjs/plus/../../deprecated/p-comp/assetStore/templates/asset-store.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetCreation/CreatePortfolio.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetPageHandler/mapAssetToPageModel.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetCreation/CreatePage.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetCreation/CreateCollection.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetCreation/CreateActivityLog.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetCreation/CreateBlog.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetCreation/CreatePost.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetCreation/CreateTemplateResource.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetCreation/CreateWorkbookResource.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetStore/services/assetCreateService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetStore/services/assetDtoHelperFactory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetStore/services/assetStoreService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetStore/services/filterFactory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetStore/services/paginatedSearch.factory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetStore/services/useResourceService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetViews/sidebar/shares/deletableShare.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetViews/sidebar/shares/shares.js","webpack://@pjs/plus/../../deprecated/p-comp/assetViews/sidebar/shares/templates/base.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetViews/sidebar/submissionInfoView/submissionInfoView.directive.js","webpack://@pjs/plus/../../deprecated/p-comp/assetViews/sidebar/submissionInfoView/templates/submission-info-view-titled.html","webpack://@pjs/plus/../../deprecated/p-comp/assetViews/sidebar/submissionInfoView/templates/submission-info-view.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetViews/sidebar/submissions/submissions.js","webpack://@pjs/plus/../../deprecated/p-comp/assetViews/sidebar/submissions/templates/submissions.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetsWithLinks/directives/assetsWithLinks.js","webpack://@pjs/plus/../../deprecated/p-comp/assetsWithLinks/templates/assets-with-links.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/autoFocus/autoFocus.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/autocomplete/autoComplete.js","webpack://@pjs/plus/../../deprecated/p-comp/autocomplete/auto-complete.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/autocomplete/contactAutoComplete/contactAutoComplete.js","webpack://@pjs/plus/../../deprecated/p-comp/autocomplete/contactAutoComplete/contact-auto-complete.html","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/argsOrArgArray.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-block/src/features/embed-consent-manager/ApiConsentManager.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/observable/race.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-block/src/features/embed-consent-manager/CookieConsentManager.ts","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builderBlocks/blockEmbed/embedConsent/embedConsent.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/builderToolbar/toolbar-tools/components/dropDownOption.component.js","webpack://@pjs/plus/../../deprecated/p-comp/builder/builderToolbar/toolbar-tools/components/dropdown-option-component.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/builderToolbar/toolbar-tools/components/radioButtonOption.component.js","webpack://@pjs/plus/../../deprecated/p-comp/builder/builderToolbar/toolbar-tools/components/radio-button-option-component.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/dataManager/dataManagerService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pageModelSearch/helpers/WithoutDuplicatePageResponsesFactory.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/dataManager/dtoFactory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/dataManager/helperService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/genericBlockInputOptionsList/services/blockInputOptionsHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/pageReuse/pageReuse.directive.js","webpack://@pjs/plus/../../deprecated/p-comp/builder/pageReuse/templates/page-reuse.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/pageReuse/services/pageReuseFactory.factory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/progressTracking/assetProgressTracking/services/assetProgressTrackingService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/tables/services/tableConfig.factory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/tables/services/tableDataHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/tables/services/tableDtoHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/characterLimit.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/textSectionInput/textSectionInput.js","webpack://@pjs/plus/../../deprecated/p-comp/builder/textSectionInput/text-section-input.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/capabilityCriteriaService/capabilityCriteriaService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/clickAndDisable/directives/clickAndDisable.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/collaborationLoader/collaborationLoaderAPI.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/collaborationLoader/collaborationLoader.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/collections/directives/collection.js","webpack://@pjs/plus/../../deprecated/p-comp/collections/templates/collection.lazy.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/collections/services/collectionService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/conditionalAttributeModule/conditionalAttribute.module.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/conditionalAttributeModule/directiveAttributeFactory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/action.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/assessment.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/asset.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/element.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/feedbackErrors.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/filterCriteriaTypes.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/focus.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/inputLimits.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/mapToStandards.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/pageError.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/panel.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/redirectBlockingPurposes.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/selector.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/shareTypes.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/status.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/statusPermissions.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/store.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/styleOptions.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/tableDataTypes.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/timeout.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/customEvent.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/datePicker/datePicker.js","webpack://@pjs/plus/../../deprecated/p-comp/datePicker/templates/date-picker.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/datePicker/datePickerHelper.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/detachedToolbarRef/detachedToolbarRef.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/detachedToolbarRef/detachedToolbarRefContext.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/dialogAction/dialogAction.component.js","webpack://@pjs/plus/../../deprecated/p-comp/dialogAction/dialog-action.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/inlineConfirm/inlineConfirm.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/inlineDecision/inlineDecision.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/dropdownWrapper/dropdownWrapper.component.js","webpack://@pjs/plus/../../deprecated/p-comp/inlineConfirm/templates/inline-confirm.html","webpack://@pjs/plus/../../deprecated/p-comp/inlineDecision/inline-decision.html","webpack://@pjs/plus/../../deprecated/p-comp/dropdownWrapper/dropdown-wrapper.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/dropdown/dropdown.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/dynamicStatusServiceLoader/dynamicStatusServiceLoader.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/elementCreatedMarker/elementCreatedMarker.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/eventEmitter/eventEmitter.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/expandable/expandable.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/abortablePromises/NoOpAbortable.const.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/extendSearch/directives/extendSearch.js","webpack://@pjs/plus/../../deprecated/p-comp/extendSearch/templates/extend-search.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/extendSearch/services/searchService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/extensions/arrayExtensions.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/externalContact/externalContact.js","webpack://@pjs/plus/../../deprecated/p-comp/externalContact/templates/external-contact.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/featureSettings/FeatureSettings.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedbackInput/directives/FeedbackInputHelper.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedbackLeftOnChoice/feedbackLeftOn.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/approvalStatus/approvalStatus.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/approvalStatus/approval-status.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/releaseStatus/releaseStatus.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/releaseStatus/release-status.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/observer/observableList.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/observables/To$AbortablePromise.factory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackDataService/feedbackDataService.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackFilterer/feedbackFilterer.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/filterer.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackFilterer/feedbackFiltererCollection.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackSidebarServiceProvider/feedbackSidebarService.provider.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/fileUpload/directives/fileUpload.js","webpack://@pjs/plus/../../deprecated/p-comp/fileUpload/templates/file-upload.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/fileUpload/services/fileUploadService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/focusTrap/focusTrap.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/ElementInfoButton/elementInfoButton.js","webpack://@pjs/plus/../../deprecated/p-comp/formComponents/ElementInfoButton/templates/element-info-button.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/StandardsElement/standardsInformation.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/StandardsSelection/StandardsSelectionCheckboxGroup/standardsSelectionCheckboxGroup.component.js","webpack://@pjs/plus/../../deprecated/p-comp/formComponents/StandardsSelection/StandardsSelectionCheckboxGroup/templates/standards-selection-checkbox-group.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/StandardsSelection/StandardsSelectionSidebar/standardsSelectionSidebarAccordion.component.js","webpack://@pjs/plus/../../deprecated/p-comp/formComponents/StandardsSelection/StandardsSelectionSidebar/templates/standards-selection-sidebar-accordion.component.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/StandardsSelection/StandardsSelectionSidebar/standardsSelectionSidebar.js","webpack://@pjs/plus/../../deprecated/p-comp/formComponents/StandardsSelection/StandardsSelectionSidebar/templates/standards-selection-sidebar.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/formElementInfo/formElementInfoService.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/formElementInfo/formElementInfoSidebar.provider.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/mapCapabilityValueToLabel/mapCapabilityValueToLabel.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/feedbackBlockTypes.const.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/services/formComponentsHelper.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/wordCountInfoBar/wordCountHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/heading/heading.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/slidingBanner/slidingBanner.js","webpack://@pjs/plus/../../deprecated/p-comp/slidingBanner/templates/sliding-banner.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/helpBannerWrapper/helpBannerWrapper.js","webpack://@pjs/plus/../../deprecated/p-comp/helpBannerWrapper/templates/help-banner-wrapper.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/helpExpandable/helpExpandable.component.js","webpack://@pjs/plus/../../deprecated/p-comp/helpExpandable/help-expandable.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/history/services/historyService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/iWantTo/directives/iWantTo.js","webpack://@pjs/plus/../../deprecated/p-comp/iWantTo/templates/i-want-to.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/iWantTo/directives/iWantToOption.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/iWantTo/services/iWantToHandler.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/iWantTo/services/iWantToService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/segmentedControl.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/itemSelector/assetItem/assetItem.js","webpack://@pjs/plus/../../deprecated/p-comp/itemSelector/assetItem/asset-item.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/itemSelector/itemSelector.component.js","webpack://@pjs/plus/../../deprecated/p-comp/itemSelector/item-selector.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/itemSelector/itemSelectorFilters.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/loadingAnnouncer/loadingAnnouncer.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/loadingSpinner/loadingSpinner.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/exampleRecoveredList/exampleRecoveredList.js","webpack://@pjs/plus/../../deprecated/p-comp/exampleRecoveredList/templates/example-recovered-list.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/touchMoveHandler.factory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/recoveredAssetsGuide/recoveredAssetsGuide.js","webpack://@pjs/plus/../../deprecated/p-comp/recoveredAssetsGuide/templates/recovered-assets-guide.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/localChanges/services/localChangesResolver.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/localStorage/persistentObjectStore.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/mapToStandards/mapToStandards.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/mapToStandards/mapToStandardsWrapper/mapToStandardsWrapper.component.js","webpack://@pjs/plus/../../deprecated/p-comp/mapToStandards/mapToStandardsWrapper/map-to-standards-wrapper.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/mapToStandards/mapToStandardsWrapper/standardsRatingInfo/standardsRatingInfo.component.js","webpack://@pjs/plus/../../deprecated/p-comp/mapToStandards/mapToStandardsWrapper/standardsRatingInfo/standards-rating-info.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/rangeSlider.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/mapToStandards/mapToStandardsWrapper/standardsRatingSlider/standardsRatingSlider.component.js","webpack://@pjs/plus/../../deprecated/p-comp/mapToStandards/mapToStandardsWrapper/standardsRatingSlider/standards-rating-slider.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/mappers/assetMapper.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/mediaAsset/directives/mediaAsset.js","webpack://@pjs/plus/../../deprecated/p-comp/mediaAsset/templates/media-asset.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/mediaAsset/services/mediaAssetService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/messageAnnouncer/messageAnnouncer.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/bounceFix.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/busyButtonComponent.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/dialogAction/busyDialogAction.component.js","webpack://@pjs/plus/../../deprecated/p-comp/dialogAction/busy-dialog-action.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/modal/directives/modalDialog.js","webpack://@pjs/plus/../../deprecated/p-comp/modal/templates/pop-up.lazy.html","webpack://@pjs/plus/../../deprecated/p-comp/modal/templates/slide-from-top.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/modal/services/dialogRouteChangeService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/modal/services/dialogAccessKeyService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/modal/directives/modalFacade.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/modal/services/modal.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/multiLanguageService/services/multiLanguageContentProvider.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/multiLanguageService/multiLanguageService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/multiLanguageService/services/pebbleI18next.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/navigationMenu/navigationMenu.js","webpack://@pjs/plus/../../deprecated/p-comp/navigationMenu/navigation-menu.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/numberPicker/numberPicker.js","webpack://@pjs/plus/../../deprecated/p-comp/numberPicker/templates/number-picker.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/observables/From$Promise.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/observer/favourites/FavouriteStates.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/observer/favourites/FavouritesObserver.const.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/observer/favourites/FavouritesObserver.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/overlay/directives/spinnerOverlay.js","webpack://@pjs/plus/../../deprecated/p-comp/overlay/templates/spinner-overlay.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/overlay/services/overlayFactory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pageModelSearch/helpers/ByPageId.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pageModelSearch/helpers/DeterminePageAssetId.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pageModelSearch/helpers/WithoutDuplicatePageAssetIdsFactory.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pageModelSearch/helpers/WithoutDuplicateValues.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pageModelSearch/helpers/WithoutEmptyPageAssetIds.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pageModelSearch/pageModelSearch.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pebbleEditorPlugins/linkerPlugin/LinkerGlobalConfig.provider.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/IsEmailLike.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pebbleEditorPlugins/linkerPlugin/mapSelectorItemsToAutoCompleteItems.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/validatedInput.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/autocomplete.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/input.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/StyledLoadingSpinner.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pebbleEditorPlugins/linkerPlugin/LinkerSelector.component.js","webpack://@pjs/plus/../../deprecated/p-comp/pebbleEditorPlugins/linkerPlugin/templates/linker-selector.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pebbleEditorPlugins/linkerPlugin/LinkerModal.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/IsWebAddressLike.function.js","webpack://@pjs/plus/../../deprecated/p-comp/pebbleEditorPlugins/linkerPlugin/templates/linker-modal.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pebbleEditorPlugins/linkerPlugin/LinkerService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/reactEditorAdapter/ReactEditorAdapterController.js","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/persistent-compact-multi-line-editor/PersistentCompactMultiLineEditor.component.tsx","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/persistentCompactMultiLineEditor.js","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/persistent-compact-multi-line-editor/PersistentCompactMultiLineEditorWithBoundary.component.tsx","webpack://@pjs/plus/../../../../../../deprecated/p-comp/persistentCompactRichTextEditor/peristentCompactRichTextEditor.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/polyfills/polyfills.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/post/services/post.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/preventRedirect/preventRedirect.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/profileImage/profileImg.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/programWorkspace/programWorkspaceStatusLink.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/programWorkspace/programWorkspaceStatusLink.provider.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/progressDots/progressDots.js","webpack://@pjs/plus/../../deprecated/p-comp/progressDots/templates/progress-dots.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pui/src/accordion/accordion-content.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pui/src/accordion/accordion-header.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pui/src/accordion/accordion-panel.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pui/src/accordion/accordion.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/assetIcon.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/buttonComponent.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/checkbox.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/collapsibleInformation.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/dismissableHtmlNotice.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/htmlNotice.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/icon.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/progressVisualisation.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/richTextView.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/scopedSearch.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/switch.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/utilities/WithDigest.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/reactEditorAdapter/GetEditorToolbarHeight.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/reactEditorAdapter/ToolbarLayoutController.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/reactEditorAdapter/ActiveToolbarCoordinator.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/getClosestDropdownContainer.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/reactEditorAdapter/FloatingToolbarReactEditorAdapterController.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/reactEditorAdapter/ReactEditorAdapterBindings.const.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/recoveryLogger/recoveryLogger.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/size.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/userInfo/userInfo.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/reply/reply.js","webpack://@pjs/plus/../../deprecated/p-comp/userInfo/user-info.html","webpack://@pjs/plus/../../deprecated/p-comp/reply/reply.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/reply/replyWrapper/replyWrapper.js","webpack://@pjs/plus/../../deprecated/p-comp/reply/replyWrapper/reply-wrapper.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/screenReaderAnnouncer/screenReaderAnnouncer.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/security/NgHtmlStringSanitiser.const.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/security/pebbleSecurity.module.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/security/pebbleSecurity.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/share/directives/shareSelectSubmission.directive.js","webpack://@pjs/plus/../../deprecated/p-comp/share/templates/share-select-submission.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/share/directives/shareLink.js","webpack://@pjs/plus/../../deprecated/p-comp/share/templates/share-link.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/shareStart/directives/shareStart.js","webpack://@pjs/plus/../../deprecated/p-comp/shareStart/templates/share-start.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/share/directives/share.js","webpack://@pjs/plus/../../deprecated/p-comp/share/templates/share.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/externalFromWorkspace/externalFromWorkspace.js","webpack://@pjs/plus/../../deprecated/p-comp/externalFromWorkspace/templates/external-from-workspace.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/externalFromWorkspace/externalFromWorkspaceShare.js","webpack://@pjs/plus/../../deprecated/p-comp/externalFromWorkspace/templates/external-from-workspace-share.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/share/directives/shareSelectExternals.directive.js","webpack://@pjs/plus/../../deprecated/p-comp/share/templates/share-select-externals.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/share/services/shareService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/share/services/shareStatusService.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetFilteringService/assetFiltering.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/filterTypes.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetComments/commentsDataModel.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetComments/commentsService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetComments/directives/comment.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/assetInfoPanel/assetComments/templates/comment.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetFeedback/assetFeedbackService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetFeedback/helpers/FeedbackHelper.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetFeedback/helpers/SubmissionPermissionHelper.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/logOut/services/spaLogOutService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/selector/services/spaSelectorService.js","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/approvals/enums/ApprovalStatus.ts","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetComments/directives/commentInputBox.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/workbook/standardsOverview/sidebarElementsView/sidebarElementViewSection/sidebarElementsViewSection.component.js","webpack://@pjs/plus/../../deprecated/p-comp/workbook/standardsOverview/sidebarElementsView/sidebarElementViewSection/sidebar-elements-view-section.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/workbook/standardsOverview/sidebarElementsView/sidebarElementsView.component.js","webpack://@pjs/plus/../../deprecated/p-comp/workbook/standardsOverview/sidebarElementsView/sidebar-elements-view.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/workbook/standardsOverview/sidebarElementsView/sidebarElementsViewWrapper/sidebarElementsViewWrapper.component.js","webpack://@pjs/plus/../../deprecated/p-comp/workbook/standardsOverview/sidebarElementsView/sidebarElementsViewWrapper/sidebar-elements-view-wrapper.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/collections/criteria/directives/criteriaTagger.js","webpack://@pjs/plus/../../deprecated/p-comp/collections/criteria/templates/criteria-tagger.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/collections/criteria/directives/criteriaAdvanced.js","webpack://@pjs/plus/../../deprecated/p-comp/collections/criteria/templates/criteria-advanced.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/collections/criteria/directives/criteriaManager.js","webpack://@pjs/plus/../../deprecated/p-comp/collections/criteria/templates/criteria-manager.html","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/observable/combineLatest.ts","webpack://@pjs/plus/../../../../../../deprecated/p-comp/userSettings/services/UserSettingsService.js","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/createObject.ts","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/actionMenu/directives/spaActionItem.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/actionMenu/views/spa-action-item.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/iconHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/slidingBannerNew/slidingBannerNew.js","webpack://@pjs/plus/../../deprecated/p-comp/slidingBannerNew/templates/sliding-banner-new.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/helpBanner/helpBanner.directive.js","webpack://@pjs/plus/../../deprecated/p-comp/helpBanner/templates/help-banner.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/a11y/providers/a11yContainers.provider.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/spaAssetStore/directives/spaAssetStore.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/spaAssetStore/views/spa-asset-store.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/actionMenu/services/spaActionMenuService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/actionMenu/controllers/spaActionMenuCtrl.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/actionMenu/directives/spaActionMenu.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/actionMenu/views/spa-action-menu.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/spaMenuServices/productMenuService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/imgFallback/imgFallback.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/history/services/spaHistoryService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/searchComponent.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/selector/directives/spaSelector.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/selector/views/spa-selector.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/history/directives/spaHistory.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/history/views/spa-history.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedbackList/getFeedbackListShortcuts.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetComments/getCommentsListShortcuts.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/services/pageReloadService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetBaseInfo/assetBaseInfo.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/assetInfoPanel/assetBaseInfo/templates/asset-base-info.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/institutionInfo/institutionInfo.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/assetInfoPanel/institutionInfo/templates/base.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetInfo/assetBaseInfoService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/reportInappropriate/services/reportService.js","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/auditTime.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/audit.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/observable/throwError.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-core/src/features/report-dialog/functions/SendReport.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-core/src/features/report-dialog/functions/LaunchReportDialog.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-core/src/features/report-dialog/functions/SendPublicReport.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-core/src/features/report-dialog/functions/LaunchPublicReportDialog.function.ts","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/reportInappropriate/directives/reportInappropriate.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/assetInfoPanel/reportInappropriate/templates/reportInappropriate.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/activityLogs/directives/activityLogInfo.js","webpack://@pjs/plus/../../deprecated/p-comp/activityLogs/templates/activity-log-info.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetInfo/assetInfo.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/assetInfoPanel/assetInfo/templates/asset-info.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetViews/sidebar/mapping/sidebarMapping.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetViews/sidebar/mapping/sidebarMapping.js","webpack://@pjs/plus/../../deprecated/p-comp/assetViews/sidebar/mapping/templates/sidebar-mapping.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetViews/sidebar/mapping/capabilityMapping/capabilityMapping.component.js","webpack://@pjs/plus/../../deprecated/p-comp/assetViews/sidebar/mapping/capabilityMapping/capability-mapping.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetViews/sidebar/mapping/sidebarMappingWrapper.component.js","webpack://@pjs/plus/../../deprecated/p-comp/assetViews/sidebar/mapping/templates/sidebar-mapping-wrapper.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/navigation/navigationList/navigationList.js","webpack://@pjs/plus/../../deprecated/p-comp/builder/navigation/navigationList/templates/navigation-list.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/builder/progressTracking/assetProgressTracking/assetProgressTracking.js","webpack://@pjs/plus/../../deprecated/p-comp/builder/progressTracking/assetProgressTracking/templates/asset-progress-tracking.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/scrollToItem.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/highlightItem.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackSearchService/feedbackSearchService.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/htmlLabelCheckbox.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/reactEditorAdapter/StickyReactEditorAdapterController.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/persistentCompactRichTextEditor/stickyPersistentCompactRichTextEditor.component.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/assetInfoPanel/assetComments/templates/comment-input-box.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetComments/assetComments.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/assetInfoPanel/assetComments/templates/asset-comments.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/versioning/versionList/versionList.directive.js","webpack://@pjs/plus/../../deprecated/p-comp/versioning/versionList/templates/version-list.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetLockedMessage/assetLockedMessage.directive.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/assetInfoPanel/assetLockedMessage/assetLockedMessage.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/feedbackText/feedbackText.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/feedbackText/feedback-text.html","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/insert-at-caret/ContentInsertionHandler.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/insert-at-caret/InsertAtCaret.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/content-injection-editor/ContentInjectionEditor.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/content-injection-editor/ContentInjectionEditorWithBoundary.component.tsx","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/i18n/FeedbackI18n.const.ts","webpack://@pjs/plus/../../feature-packages/feedback/dist/features/feedback-statements/feedback-comment-editor/styles/feedback-comment-editor.css","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/feedback-statements/feedback-comment-editor/FeedbackCommentEditor.component.tsx","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/feedbackCommentEditor.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedbackCommentsEditor/feedbackCommentsEditor.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/reactEditorAdapter/FeedbackCommentEditorAdapterBindings.const.js","webpack://@pjs/plus/../../deprecated/p-comp/feedbackCommentsEditor/feedbackCommentsEditor.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/approvalCollectionItem/approvalCollectionItem.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/approvalCollectionItem/approval-collection-item.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/approvalCollection/approvalCollection.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackUrlService/feedbackUrlService.service.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/approvalCollection/approval-collection.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/feedbackTemplate/feedbackTemplate.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/feedbackTemplate/feedback-template.html","webpack://@pjs/plus/../../feature-packages/feedback/dist/features/feedback-notice/styles/feedback-notice.css","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/feedback-notice/FeedbackNotice.component.tsx","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/verification-view/consts/VerifiedNotice.const.ts","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/similarityScore/similarityScore.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/verificationView.js","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/verification-view/VerificationView.component.tsx","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/similarityScore/similarity-score.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/StaticLabel.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/assessorField/assessorField.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/certificate/certificate.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/assessorField/assessor-field.html","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/certificate/certificate.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackInfoWrapper/feedbackInfoWrapper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/feedbackLeftOn/feedbackLeftOn.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/feedbackLeftOn/feedback-left-on.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackInfoWrapper/feedbackInfoWrapper.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackInfoWrapper/feedback-info-wrapper.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/scorecard/scorecardView/scorecardView.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/scorecard/scorecardView/scorecard-view.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/scorecard/scorecardEdit/scorecardEdit.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/scorecard/scorecardEdit/scorecard-edit.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/scorecard/scorecard.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/scorecard/scorecard.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/feedback/feedback.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/feedback/feedback.html","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/approvals/consts/ApprovalPositive.const.ts","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/approvals/consts/ApprovalNegative.const.ts","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/approvals/consts/ApprovalNeutral.const.ts","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/approvals/consts/ApprovalMap.ts","webpack://@pjs/plus/../../feature-packages/feedback/dist/features/approvals/approval-view-base/styles/approval-view-base.css","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/approvals/approval-view-base/ApprovalViewBase.component.tsx","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/approvalView.js","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/approvals/approval-view/ApprovalView.component.tsx","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/approvals/approval-select/ApprovalSelect.component.tsx","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/approvalSelect.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/approval/approvalEdit/approvalEdit.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/approval/approvalEdit/approval-edit.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/approvalOptions/approvalOptions.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/approval/approval.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/approval/approval.html","webpack://@pjs/plus/../../feature-packages/feedback/dist/features/approvals/capability-approval-view/styles/capability-approval-view.css","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/capabilityApprovalView.js","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/approvals/capability-approval-view/CapabilityApprovalView.component.tsx","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/capabilityApproval/capabilityApproval.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/default/default.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/capabilityApproval/capability-approval.html","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/default/default.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/grade/grade.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/grade/grade.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackComponents/gradeNumeric/gradeNumeric.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/manageAttachments/manageAttachments.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/attachments/attachment/attachment.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedbackLeftOnChoice/feedbackLeftOnChoice.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackComponents/gradeNumeric/grade-numeric.html","webpack://@pjs/plus/../../deprecated/p-comp/manageAttachments/manage-attachments.html","webpack://@pjs/plus/../../deprecated/p-comp/attachments/attachment/attachment.html","webpack://@pjs/plus/../../deprecated/p-comp/feedbackLeftOnChoice/templates/feedback-left-on-choice.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedbackRelease/feedbackRelease.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedbackInput/directives/feedbackInput.directive.js","webpack://@pjs/plus/../../deprecated/p-comp/feedbackInput/templates/feedback-input.html","webpack://@pjs/plus/../../deprecated/p-comp/feedbackRelease/templates/feedback-release.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/reply/replyDataService/replyDataService.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/attachments/attachments.component.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackSettingsProvider/feedbackSettings.provider.js","webpack://@pjs/plus/../../deprecated/p-comp/attachments/attachments.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/jumpToButton/jumpToButton.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/jumpToButton/jump-to-button.html","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/ApiConfig.ts","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/mappers/feedbackStatementsMapper/feedbackStatementsMapper.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/feedback-statements/functions/getFeedbackStatementsRequest.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/feedback/src/features/feedback-statements/statement-collection/StatementCollection.ts","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedbackStatements/statementCollectionCache.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackWrapper/feedbackWrapper.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedback/feedbackWrapper/feedback-wrapper.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedback/feedbackGroupService/feedbackGroupService.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedbackFilters/filterCheckbox/filterCheckbox.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedbackFilters/filterCheckbox/filter-checkbox.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedbackFilters/feedbackFilters.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedbackFilters/feedback-filters.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedbackSearch/feedbackSearch.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedbackSearch/feedback-search.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedbackList/feedbackList.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedbackList/feedback-list.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/feedbackListWrapper/feedbackListWrapper.component.js","webpack://@pjs/plus/../../deprecated/p-comp/feedbackListWrapper/feedback-list-wrapper.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetInfoPanel/assetInfoPanel.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/assetInfoPanel/templates/asset-info-panel.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/capitalize.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/preventRedirect/resolvers/unsavedChangesPreventRedirectResolver.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/addEvidence/textOnlyEvidence/textOnlyEvidence.component.js","webpack://@pjs/plus/../../deprecated/p-comp/addEvidence/textOnlyEvidence/text-only-evidence.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/addEvidence/addEvidence.component.js","webpack://@pjs/plus/../../deprecated/p-comp/addEvidence/add-evidence.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/capabilityHistoryItem.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/formElementInfo/answerHistory/answerHistoryAccordion/answerHistoryAccordion.component.js","webpack://@pjs/plus/../../deprecated/p-comp/formComponents/formElementInfo/answerHistory/answerHistoryAccordion/answer-history-accordion.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/formElementInfo/answerHistory/answerHistory.component.js","webpack://@pjs/plus/../../deprecated/p-comp/formComponents/formElementInfo/answerHistory/answer-history.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/formElementInfo/evidence/evidenceJustificationEditor.component.js","webpack://@pjs/plus/../../deprecated/p-comp/formComponents/formElementInfo/evidence/evidence-justification-editor.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/answerEvidence.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/history/services/routeChangeModifier.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/formComponents/formElementInfo/formElementInfo.component.js","webpack://@pjs/plus/../../deprecated/p-comp/formComponents/formElementInfo/form-element-info.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/elementInfoPanel/elementInfoPanel.component.js","webpack://@pjs/plus/../../deprecated/p-comp/elementInfoPanel/element-info-panel.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/assetFiltering/assetFilteringContent/assetFilteringContent.js","webpack://@pjs/plus/../../deprecated/p-comp/assetFiltering/assetFilteringContent/asset-filtering-content.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/assetFilteringPanel/assetFilteringPanel.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/assetFilteringPanel/asset-filtering-panel.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/accountMenuDropdown.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/spaMenu.js","webpack://@pjs/plus/../../deprecated/p-comp/spaMenu/spa-menu.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/spaMenu/spaMenuServices/spaDisplayHelper.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/splitButton/menuItem.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/standardsNavigationalButtons/standardsNavigationalButtons.component.js","webpack://@pjs/plus/../../deprecated/p-comp/standardsNavigationalButtons/standards-navigational-buttons.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/statusToolbar/factories/statusToolbar.factory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/statusToolbar/directives/statusToolbar/statusToolbar.directive.js","webpack://@pjs/plus/../../deprecated/p-comp/statusToolbar/directives/statusToolbar/templates/status-toolbar.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/statusToolbar/services/statusToolbar.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/stickyElementCoordinator/StickyElementCoordinator.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/stickyElementCoordinator/stickyContainer.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/stickyElementCoordinator/stickyItem.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/tabContent/tabContent.component.js","webpack://@pjs/plus/../../deprecated/p-comp/tabContent/tab-content.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/tabSet/tabSet.component.js","webpack://@pjs/plus/../../deprecated/p-comp/tabSet/tab-set.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/tagger/services/tagService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/tagger/tagger.js","webpack://@pjs/plus/../../deprecated/p-comp/tagger/templates/tagger.html","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/compact-multi-line-editor/CompactMultiLineEditor.component.tsx","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/compactMultiLineEditor.js","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/compact-multi-line-editor/CompactMultiLineEditorWithBoundary.component.tsx","webpack://@pjs/plus/../../../../../../deprecated/p-comp/compactFloatingRichTextEditor/compactFloatingRichTextEditor.component.js","webpack://@pjs/plus/../../deprecated/p-comp/compactFloatingRichTextEditor/compact-floating-rich-text-editor.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/titledTextEditor/titledTextEditor.component.js","webpack://@pjs/plus/../../deprecated/p-comp/titledTextEditor/titled-text-editor.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/clickableService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/relationalPositioningService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/tooltip/tooltip.js","webpack://@pjs/plus/../../deprecated/p-comp/tooltip/templates/tooltip.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/uberDropdown/uberDropdownHelper.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/uberDropdown/uberDropdown.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/userAgent/userAgent.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/userStatusPermissionsService/userStatusPermissions.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/user/user.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/user/userAPI.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/accessibilityKeyEventHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/animationHelperService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/exportOptions/ExportOptionItem.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/exportOptions/exportOptions.js","webpack://@pjs/plus/../../deprecated/p-comp/exportOptions/templates/export-options.html","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/assetActionService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/baseUrlsFactory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/bytesToSize.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/checklistModel.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/compileHelper.factory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/computedStyle.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/dataEncryptionService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/debounce.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/domSearchHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/errorHighlighter.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/escapeHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/eventHandler.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/eventHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/focusStyleProvider.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/globalEvents.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/createGuidString.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/helpers.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/i18nHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/migrators/migratorRunner.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/migrators/migratorRunner.provider.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/onRepeatEnd.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/pebbleDate.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/dataTypes.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/regexHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/restrictDecimals.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/scrollToElement.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/shameOnBrowser.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/subscriptionServiceProvider.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/htmlInput.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/copyPaste/selection.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/copyPaste/nodeAttributeModifier.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/copyPaste/paste.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/text-editable/TextEditableDirectiveFactory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/ApplyIosCaretNotAppearingOnTapFix.function.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/text-editable/contenteditable.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/typeCheck.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/urlService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/versioning/services/versionHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/workbook/service/standards.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/workbook/service/workbookService.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/workbook/standardsOverview/standardsOverview.provider.js","webpack://@pjs/plus/../../../../../../feature-packages/asset-block/src/ApiConfig.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-core/src/ApiConfig.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-core/src/enums/MainType.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-core/src/features/asset-icon/AssetIcon.component.tsx","webpack://@pjs/plus/../../../../../../feature-packages/asset-core/src/enums/FileType.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-core/src/enums/FormType.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-core/src/enums/SubType.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-core/src/features/asset-icon/AssetIcons.const.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-core/src/features/i18n/AssetCoreI18n.const.ts","webpack://@pjs/plus/../../../../../../feature-packages/asset-core/src/features/report-dialog/consts/ReportReasonLimit.const.ts","webpack://@pjs/plus/../../../../../../feature-packages/files/src/ApiConfig.ts","webpack://@pjs/plus/../../feature-packages/form-response-element/dist/features/answer-evidence/styles/evidence-item.css","webpack://@pjs/plus/../../../../../../feature-packages/form-response-element/src/features/answer-evidence/EvidenceItem.component.tsx","webpack://@pjs/plus/../../feature-packages/form-response-element/dist/features/answer-evidence/styles/answer-evidence.css","webpack://@pjs/plus/../../../../../../feature-packages/form-response-element/src/features/answer-evidence/AnswerEvidence.component.tsx","webpack://@pjs/plus/../../feature-packages/form-response-element/dist/features/capability-history/styles/capability-history.css","webpack://@pjs/plus/../../../../../../feature-packages/form-response-element/src/features/capability-history/CapabilityHistoryItem.component.tsx","webpack://@pjs/plus/../../../../../../feature-packages/form-response-element/src/features/i18n/FormResponseElementI18n.const.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/ApiConfig.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/enums/BackendSettings.ts","webpack://@pjs/plus/../../../../../../library-packages/storage/src/enums/PatchOperation.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/enums/SettingPatchPaths.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/mappers/functions/DefaultBoolSetting.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/mappers/functions/DefaultListSetting.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/mappers/functions/FromListOptions.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/mappers/functions/FromStringBool.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/mappers/SettingsModelMapper.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/functions/GetAccountSettings.function.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/is-plain-object/IsPlainObject.function.ts","webpack://@pjs/plus/../../../../../../library-packages/storage/src/features/traverse-object/TraverseObject.function.ts","webpack://@pjs/plus/../../../../../../library-packages/storage/src/features/patcher/Patcher.ts","webpack://@pjs/plus/../../../../../../library-packages/storage/src/features/proxy/Proxy.ts","webpack://@pjs/plus/../../../../../../library-packages/storage/src/features/model-document/ModelDocument.ts","webpack://@pjs/plus/../../../../../../library-packages/storage/src/features/patchable-model-document/PatchableModelDocument.ts","webpack://@pjs/plus/../../../../../../library-packages/storage/src/features/tracked-model-document/TrackedModelDocument.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/errors/AccountSettingsException.tsx","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/enums/Errors.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/stores/AccountSettingsStore.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/stores/AccountSettingsStore.const.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/AccountSettings.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/functions/GetDigestStatus.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/functions/PatchAccountSettings.function.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/features/from-camel-to-pascal/FromCamelToPascal.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/mappers/RequestBodyMapper.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/functions/TrackSaveAnalytics.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/effects/SaveSettings.effect.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/effects/UpdatePrivacySetting.effect.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/effects/UpdateAssessmentSetting.effect.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/effects/UpdateLanguageSetting.effect.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/effects/UpdateNotifications.effect.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-domain/src/features/account-settings/effects/UpdateDigestSettings.effect.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/account-settings/enums/View.ts","webpack://@pjs/plus/../../feature-packages/user/user-ui/dist/features/avatar/styles/avatar.css","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/avatar/Avatar.component.tsx","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/i18n/UserUiI18n.const.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/actions/AccountSettingsActions.const.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/account-settings/functions/GetDefaultView.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/account-settings/functions/GetView.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/ApiConfig.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/account-settings/consts/SidebarButtons.const.ts","webpack://@pjs/plus/../../feature-packages/user/user-ui/dist/features/account-settings/styles/settings-sidebar.css","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/account-settings/SettingsSidebar.component.tsx","webpack://@pjs/plus/../../feature-packages/user/user-ui/dist/features/profile/styles/profile.css","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/profile/Profile.component.tsx","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/privacy/consts/EmbedConsentRadioGroupItems.const.ts","webpack://@pjs/plus/../../feature-packages/user/user-ui/dist/features/privacy/styles/privacy.css","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/privacy/Privacy.component.tsx","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/assessment-preferences/consts/PageSavingRadioGroupItems.const.ts","webpack://@pjs/plus/../../feature-packages/user/user-ui/dist/features/assessment-preferences/styles/assessment-preferences.css","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/assessment-preferences/AssessmentPreferences.component.tsx","webpack://@pjs/plus/../../feature-packages/user/user-ui/dist/features/language/styles/language.css","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/language/Language.component.tsx","webpack://@pjs/plus/../../feature-packages/user/user-ui/dist/features/notifications/styles/notification-row.css","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/notifications/NotificationRow.component.tsx","webpack://@pjs/plus/../../feature-packages/user/user-ui/dist/features/notifications/styles/notifications.css","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/notifications/Notifications.component.tsx","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/notifications/utils/GetNotificationValues.function.ts","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/account-settings/functions/MapSettingViews.function.tsx","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/account-settings/functions/MapSettingNotice.function.tsx","webpack://@pjs/plus/../../feature-packages/user/user-ui/dist/features/account-settings/styles/settings-view.css","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/account-settings/SettingsView.component.tsx","webpack://@pjs/plus/../../feature-packages/user/user-ui/dist/features/account-settings/styles/account-settings-dashboard.css","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/account-settings/AccountSettingsDashboard.component.tsx","webpack://@pjs/plus/../../../../../../feature-packages/user/user-ui/src/features/account-menu-dropdown/AccountMenuDropdown.component.tsx","webpack://@pjs/plus/../../feature-packages/user/user-ui/dist/features/account-menu-dropdown/styles/account-menu-dropdown.css","webpack://@pjs/plus/../../../../../../library-packages/analytics/src/features/execution-queue/ExecutionQueue.ts","webpack://@pjs/plus/../../../../../../library-packages/analytics/src/features/tracker/NoopClient.ts","webpack://@pjs/plus/../../../../../../library-packages/analytics/src/features/matomo/consts/MatomoGlobal.const.ts","webpack://@pjs/plus/../../../../../../library-packages/analytics/src/features/tracker/Tracker.const.ts","webpack://@pjs/plus/../../../../../../library-packages/analytics/src/features/matomo/MatomoTracker.ts","webpack://@pjs/plus/../../../../../../library-packages/analytics/src/features/matomo/functions/SetupMatomo.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/enums/ButtonClass.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/enums/Keys.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/floating-menu/FloatingMenu.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/menu-event-adapter/MenuEventAdapter.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/ToggleIsOpenAndResetIndex.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/menu-event-adapter/consts/MenuRoleTriggerEvents.const.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/SetOpenedAndSelectLastItem.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/SetOpenedAndSelectFirstItem.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/ToggleIsOpenAndResetIndexOnClick.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/menu-event-adapter/enums/AriaMenuStatus.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/SelectNextItemWithWrapping.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/SelectPreviousItemWithWrapping.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/menu-event-adapter/factories/MenuRoleTargetEventsFactory.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/CloseIfFocusIsOutside.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/SelectClickedItemAndSetClosed.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/SelectFirstItem.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/SelectLastItem.function.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/timed-array/TimedArray.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/printable-character-matcher/PrintableCharacterMatcher.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/SelectMatchedItem.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/SelectNextItem.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/SelectPreviousItem.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/SetClosed.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/ToggleIsOpen.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/ToggleIsOpenOnClick.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/menu-event-adapter/ComboboxEventAdapter.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/menu-event-adapter/factories/ComboBoxAdapterPresetFactory.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/SetOpenedAndResetIndex.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/floating-menu/factories/FloatingAutoCompleteMenuFactory.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/floating-menu/consts/InitialComboBoxAriaModel.ts","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/auto-complete/styles/resolved-menu.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/auto-complete/menus/ResolvedMenu.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/auto-complete/styles/menu-with-text-and-icon.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/auto-complete/menus/ErrorMenu.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/auto-complete/styles/pending-menu.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/auto-complete/menus/PendingMenu.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/auto-complete/menus/EmptyMenu.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/auto-complete/styles/auto-complete.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/auto-complete/AutoComplete.component.tsx","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/debounce.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/auto-complete/render-options/icon-with-text/IconWithTextAutoCompleteItem.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/auto-complete/render-options/icon-with-text/styles/icon-with-text-auto-complete-item.css","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/boundary-bridge/styles/boundary-bridge.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/boundary-bridge/BoundaryBridge.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/boundary/Boundary.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/boundary/Boundary.context.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/busy-button/styles/busy-button.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/busy-button/BusyButton.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/button-menu/styles/button-menu-row.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/button-menu/ButtonMenuRow.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-panel-menu/renderOptions/IconTextMenuItem.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/button-menu/styles/button-menu.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/button-menu/ButtonMenu.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/button/styles/button.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/button/Button.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/checkbox/styles/checkbox.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/checkbox/Checkbox.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/collapsible-information/styles/collapsible-information.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/collapsible-information/CollapsibleInformation.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/collapsible/Collapsible.context.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/collapsible/CollapsibleContent.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/collapsible/CollapsibleHeader.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/collapsible/CollapsibleManual.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-components/SimpleTextDialogContent.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/dialog-backdrop/styles/dialog-backdrop.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-backdrop/DialogBackdrop.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-director/DialogDirector.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-director/DialogDirector.const.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-director/enums/DialogState.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-factories/LaunchDialog.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-factories/LaunchMultiStepDialog.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-factories/WithStaticDialogComponent.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-instance/DialogSteps.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-instance/DialogInstance.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-view/ReactDialogRenderer.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-instance/LazyDialogInstance.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-instance/enums/DialogSize.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-view/DialogView.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog-view/DialogViewSubject.const.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog/functions/FocusFirstElementInDialog.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog/utils/IsSmallScreenDevice.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog/utils/HandleInitialDialogFocus.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog/utils/IsBottomPositioned.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog/consts/DialogAnimationKeyFrames.const.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog/utils/AnimateDialogIn.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog/utils/AnimateNewDialogStepIn.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog/functions/AnimateStepChange.ts","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/dialog/styles/dialog.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dialog/Dialog.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/dismissable-html-notice/styles/dismissable-html-notice.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/dismissable-html-notice/DismissableHtmlNotice.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/ConfirmButtonMenuActionAndSetClosed.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/floating-menu/factories/FloatingPanelMenuFactory.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-panel-menu/FloatingPanelMenu.context.ts","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/floating-panel-menu/styles/floating-panel-menu-content.css","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/floating-panel-menu/styles/floating-panel-menu.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-panel-menu/FloatingPanelMenu.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-panel-menu/FloatingPanelMenuTrigger.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-panel-menu/FloatingPanelMenuContent.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-panel-menu/FloatingPanelMenuPanel.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/floating-panel-menu/renderOptions/styles/text-menu-item.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-panel-menu/renderOptions/TextMenuItem.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-positioner/CreateFloatingPositioner.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-positioner/factories/utilities/ApplyFloatingHeightRestriction.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-positioner/factories/utilities/ApplyFloatingHeightRestrictionForMobileDevices.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-positioner/factories/ToolbarDropdownPositioningFactory.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-positioner/CreateToolbarDropdownPositioner.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-positioner/factories/CreateToolbarOverflowMenuPositioningFactory.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-positioner/CreateToolbarOverflowMenuPositioner.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-positioner/factories/DropdownMatchedWidthPositioningFactory.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-positioner/factories/DropdownPositioningFactory.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/floating-positioner/factories/utilities/FloatingElementStyler.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/menu-event-adapter/TriggerEventAdapter.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/floating-menu/consts/InitialMenuAriaModel.const.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/menu-event-adapter/GroupedItemsMenuEventAdapter.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/floating-menu/factories/FloatingEmptyMenuFactory.ts","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/grouped-item-picker/styles/grouped-item-picker-empty-dropdown.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/grouped-item-picker/menus/EmptyGroupedItemsMenu.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/floating-menu/factories/FloatingMenuPickerFactory.ts","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/grouped-item-picker/styles/grouped-item-picker-menu-dropdown.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/grouped-item-picker/menus/GroupedItemsMenu.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/grouped-item-picker/styles/grouped-item-picker.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/grouped-item-picker/GroupedItemPicker.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/parse-inline-html/ParseInlineHtml.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/html-label-checkbox/HtmlLabelCheckbox.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/html-notice/styles/html-notice.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/html-notice/HtmlNotice.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/hyperlink/Hyperlink.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/i18n/CoreUiI18n.const.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon-button/IconButton.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon-button/enums/IconButtonClass.ts","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/icon/styles/icon.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/Icon.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/Icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/AccordionIndicator.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Add.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/AddFavourites.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/AssetEvidence.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Banner.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Chevron.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/CogWheel.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Comment.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Copy.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Cross.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Delete.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Edit.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Error.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Evidence.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/EvidenceComplete.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/FeedbackComment.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/FeedbackTemplate.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Filter.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Grid.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Heart.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/History.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Information.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Language.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/List.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Map.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Notifications.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Open.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/OpenNewTab.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/OverflowMenu.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Print.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Privacy.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Profile.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Purge.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/RemoveAttachment.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/RemoveFavourites.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Restore.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Search.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Success.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Tag.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/TextEvidence.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Tick.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Unarchive.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Verify.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/Warning.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/approval/ApprovalNegative.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/approval/ApprovalNeutral.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/approval/ApprovalPositive.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/ActivityLog.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Archive.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Audio.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Blog.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/CallingCard.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Collection.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Conversation.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Cv.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Database.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Document.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Experience.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/ExperienceResource.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Feedback.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/FeedbackResource.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/File.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Image.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Page.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Pdf.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Plan.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/PlanResource.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Portfolio.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Post.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Presentation.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Reflection.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/ReflectionResource.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Spreadsheet.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Talent.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/TalentResource.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Video.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/WorkbookResource.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/WorkbookResponse.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/Worksheet.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/asset-types/WorksheetResource.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/sharing/Share.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/sharing/ShareToPeople.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/sharing/ShareToWeb.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/icon/icons/sharing/ShareToWorkspace.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/input/Input.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/loading-spinner/LoadingSpinner.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/loading-spinner/StyledLoadingSpinner.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/notice/Notice.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/notice/consts/ErrorNotice.const.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/notice/consts/InformationNotice.const.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/notice/consts/SuccessNotice.const.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/notice/consts/WarningNotice.const.ts","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/overflow-menu/styles/overflow-menu.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/overflow-menu/OverflowMenu.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/progress-visualisation/styles/progress-visualisation.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/progress-visualisation/ProgressVisualisation.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/radio-group/styles/radio-group.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/radio-group/RadioGroup.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/radio-group/enums/Orientation.ts","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/radio/styles/radio.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/radio/Radio.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/range-slider/styles/tick.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/range-slider/tick/Tick.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/range-slider/styles/range-slider.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/range-slider/RangeSlider.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/range-slider/enums/TickAlignment.ts","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/search/styles/scoped-search.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/search/ScopedSearch.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/search/styles/search.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/search/Search.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/segmented-control/styles/segmented-control.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/segmented-control/SegmentedControl.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/reducers/SetOpened.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/select/getSmallScreenMediaQuery.function.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/select/styles/select.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/select/Select.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/aria-roles/menus/floating-menu/factories/FloatingListBoxFactory.ts","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/select/options/icon-option/styles/icon-option.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/select/options/icon-option/IconOption.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/select/options/line-clamped-text-option/styles/line-clamped-text-option.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/select/options/line-clamped-text-option/LineClampedTextOption.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/select/options/text-option/styles/text-option.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/select/options/text-option/TextOption.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/shortcut-viewer/functions/LaunchShortcutViewer.function.ts","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/static-label/styles/static-label.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/static-label/StaticLabel.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/styled-collapsible/styles/styled-collapsible.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/styled-collapsible/StyledCollapsible.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/switch/styles/switch.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/switch/Switch.component.tsx","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/table/styles/table.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/table/const/Table.const.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/table/Table.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/table/TableHeader.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/table/TableBody.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/table/TableRow.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/table/TableRowHeader.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/table/TableCell.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/table/TableEmptyCell.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/table/TableHeaderCell.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/table/TableEmptyHeaderCell.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/timed-animation/TimedAnimation.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/timed-animation/easings/easeInOutCubic.ts","webpack://@pjs/plus/../../library-packages/core-ui/dist/features/validated-input/styles/validated-input.css","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/validated-input/ValidatedInput.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/features/with-boundary-bridge/WithBoundaryBridge.tsx","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/animate-element/AnimateElement.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/find-first-interactive-element/FindFirstInteractiveElement.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/focus-first-interactive-element/FocusFirstInteractiveElement.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/focus-trapper/FocusTrapper.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/focus-trapper/FocusTrapper.const.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/get-tab-index/GetTabIndex.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/hide-when-closed/hideWhenClosed.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/find-first-interactive-element/IsRadioButtonTabbable.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/find-first-interactive-element/WithinDisablingParent.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/find-first-interactive-element/IsValidTabBoundaryElement.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/interactive-elements-list/InteractiveElementsList.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/find-first-interactive-element/TabbableSelector.const.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/is-visually-hidden/IsVisuallyHidden.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/scroll-to-aria-active-descendant/scrollToElementInList.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/shortcut-manager/ShortcutStack.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/shortcut-manager/ShortcutManager.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/shortcut-manager/CreateShortcutManagerInstance.function.ts","webpack://@pjs/plus/../../../../../../library-packages/core-ui/src/utils/shortcut-manager/ShortcutManager.const.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/features/cookie-same-site-helper/CookieSameSiteHelper.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/features/csrf-cookie/CsrfCookie.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/csrf-token/GenerateCsrfToken.function.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/features/from-pascal-to-camel/PascalCaseToCamelCaseReviver.function.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/features/from-pascal-to-camel/FromPascalToCamel.function.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/features/from-pascal-to-camel/CamelCaseModifier.function.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/enums/HttpMethod.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/features/abortable-http-request/AbortableHttpRequest.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/features/interceptor-runner/InterceptorRunner.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/features/http-service/HttpService.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/enums/HttpHeader.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/features/http-interceptors/CsrfInterceptor.const.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/features/http-service/httpService.const.ts","webpack://@pjs/plus/../../../../../../library-packages/http/src/features/web-request-factory/WebRequestFactory.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/takeWhile.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/last.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/takeLast.ts","webpack://@pjs/plus/../../../../../../library-packages/i18n/src/utils/noop.ts","webpack://@pjs/plus/../../../../../../library-packages/i18n/src/components/number-formatter/NumberFormatter.ts","webpack://@pjs/plus/../../../../../../library-packages/i18n/src/components/number-formatter/InvalidNumberFormatter.ts","webpack://@pjs/plus/../../../../../../library-packages/i18n/src/components/i18n-set/I18nSet.ts","webpack://@pjs/plus/../../../../../../library-packages/i18n/src/components/i18n-manager/I18nManager.ts","webpack://@pjs/plus/../../../../../../library-packages/i18n/src/components/i18n-manager/I18nManager.const.ts","webpack://@pjs/plus/../../../../../../library-packages/i18n/src/components/i18n-set/enums/I18nSetNamespace.ts","webpack://@pjs/plus/../../../../../../library-packages/i18n/src/components/resource-loader/ResourceLoader.ts","webpack://@pjs/plus/../../../../../../library-packages/i18n/src/utils/withImport.function.ts","webpack://@pjs/plus/../../../../../../library-packages/observables/src/features/kill-signal/KillSignal.ts","webpack://@pjs/plus/../../../../../../library-packages/react-utilities/src/features/custom-hooks/UseClassRef.hook.ts","webpack://@pjs/plus/../../../../../../library-packages/react-utilities/src/features/custom-hooks/UseFactoryRef.hook.ts","webpack://@pjs/plus/../../../../../../library-packages/react-utilities/src/features/custom-hooks/UseOnMount.hook.ts","webpack://@pjs/plus/../../../../../../library-packages/react-utilities/src/features/custom-hooks/UseOnUnMount.hook.ts","webpack://@pjs/plus/../../../../../../library-packages/react-utilities/src/features/custom-hooks/UseOnValueChange.hook.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/RichTextConfig.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/utils/block-hyperlink-click/BlockHyperlinkClick.function.ts","webpack://@pjs/plus/../../library-packages/rich-text/dist/features/base-editor/styles/base-editor.css","webpack://@pjs/plus/../../library-packages/rich-text/dist/features/base-editor/styles/ckeditor-overrides.css","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/base-editor/BaseEditor.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/auto-enable/AutoEnable.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/display-shortcuts/ShortcutKeysExcludeList.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/display-shortcuts/functions/MapEditorKeysToShortcuts.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/display-shortcuts/functions/DisplayShortcuts.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-cache/EditorCache.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-cache/editorCacheInstance.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/limit-instances/LimitedInstancesCoordinator.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/limit-instances/LimitInstances.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/persistent-editor-toolbar/PersistentEditorToolbar.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-interactions/enums/EventType.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/replace-dropdown-positioning-logic/CkePanelPositionHandler.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/prevent-default/PreventDefault.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-interactions/InteractionTracker.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/pp-marker-range/PpMarkerRange.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/utils/slow-process-reporter/SlowProcessReporter.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/utils/slow-process-reporter/GenerateElapsedTimeEventName.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-adapter/CKEditorAdapter.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/insert-marker-within-container-selection/InsertMarkerWithinContainerSelection.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/is-selection-within-container/IsSelectionWithinContainer.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/insert-marker-around-range/InsertMarkerAroundRange.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/utils/convert-plain-text-to-html/ConvertToHtmlSafeChars.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor/DefaultEditorPlaceholder.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor/ToolbarDisplay.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor/ElementDataHandler.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor/CKEditorDataHandler.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor/Editor.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/utils/convert-plain-text-to-html/ConvertPlainTextToSemanticHtml.function.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/pairwise.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/track-toolbar-items/TrackToolbarItems.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/slow-paste-logging/SlowPasteLogging.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/slow-undo-redo-logging/SlowUndoRedoLogging.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/reposition-dialog/RepositionDialog.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-plugins/pp-marker-range-plugin/PpMarkerRangePlugin.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-factories/consts/BaseCkEditorPlugins.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-factories/EditorFactory.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/replace-dropdown-positioning-logic/ReplaceDropdownPositioningLogic.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/behaviours/handle-ios-blocking-clicks/HandleIosBlockingClicks.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-factories/MultiLineFactory.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor/CKEditorPlaceholder.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor/enums/ToolbarDisplayState.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/full-configs/CompactMultiLineConfig.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/CompactMultiLineParser.const..ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/tag-configs/AnchorConfig.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/tag-configs/OlConfig.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/tag-configs/ProcessCssClassFactory.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/tag-configs/UlConfig.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/BasicTagSwap.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/BoldTransform.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/inline/Cke5BrMutation.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/Cke5BrTransform.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/CommonInlineTagNames.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/blocks/DivCleanupMutation.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/DivTransform.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/HeadingToBlockTransform.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/ItalicTransform.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/utils/replace-collection-with-children/ReplaceCollectionItemsWithChildren.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/utils/semantic-inline-tag-swap/SemanticInlineSwap.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/inline/InlineFontWeightConverter.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/utils/is-font-weight-bold/IsFontWeightBold.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/inline/InlineFontStyleConverter.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/inline/InlineTextDecorationConverter.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/inline/InlineVerticalAlignmentConverter.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/inline/InlineCleanupMutation.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/SpanCleanupTransform.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/StrikeTransform.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/blocks/AttributeOnlyMutation.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/blocks/BlockIndentConverter.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/utils/do-nodes-directly-contain-text/DoesNodeDirectlyContainText.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/blocks/ParagraphCleanupMutation.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/utils/do-nodes-directly-contain-text/DoNodesDirectlyContainText.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/html-parsers/transforms/blocks/StylesToChildrenConverter.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/i18n/CkeI18nSet.effect.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/i18n/CkeI18nSet.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/i18n/RichTextI18n.const.ts","webpack://@pjs/plus/../../library-packages/rich-text/dist/styles/rich-text-font-styles.css","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/rich-text-view/RichTextView.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/Bold.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/BulletedList.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/Indent.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/Italic.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-plugins/linker/FocusTrackerProxy.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-plugins/linker/constants/LinkModelAttributes.const.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-plugins/linker/LinkerSelection.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-plugins/linker/LinkerProcessor.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-plugins/linker/LinkerModelSchema.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-plugins/linker/LinkerPlugin.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-plugins/linker/Linker.icon.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/Linker.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/NumberedList.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/Outdent.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/Redo.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/RemoveFormat.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-plugins/special-characters/SpecialCharactersGreek.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/editor-plugins/special-characters/SpecialCharactersMathExtended.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/SpecialCharacters.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/StrikeThrough.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/Underline.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/Undo.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/enums/IndentBlockClass.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/features/toolbar-items/presets/Compact.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/utils/get-closest-numerical-match/GetClosestNumericalMatch.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/utils/pass-through/PassThrough.function.ts","webpack://@pjs/plus/../../../../../../library-packages/rich-text/src/utils/rem-converter/RemConverter.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/enums/HtmlSanitiserEvent.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/anchor-transform/GlobalAnchorSanitiseEventHandler.function.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/anchor-transform/AnchorTransform.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/anchor-transform/GlobalAnchorTransform.const.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/anchor-transform/GlobalAnchorTransformConfig.const.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/html-string-parser/EmptyTagConfig.const.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/utilities/cleanupWhitespaceInHtmlString.function.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/html-string-parser/SemanticHeadingFixer.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/html-string-parser/DomPurifyDumpster.const.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/html-string-parser/HtmlStringParser.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/html-string-parser/SandboxedTagMutation.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/html-string-parser/SandboxedTagSwap.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/html-string-sanitiser/HtmlStringSanitiser.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/html-string-to-plain-text/HtmlStringToPlainText.function.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/is-safe-url-protocol/ProtocolWhitelist.const.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/is-safe-url-protocol/IsSafeUrlProtocol.function.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/parse-html/ParseHtml.component.tsx","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/html-string-sanitiser/BasicHtmlStringSanitiser.const.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/features/parse-html/ParseHtmlSanitiser.ts","webpack://@pjs/plus/../../../../../../library-packages/security/src/utilities/ConvertElementToFragment.function.ts","webpack://@pjs/plus/../../../../../../library-packages/storage/src/enums/SameSite.ts","webpack://@pjs/plus/../../../../../../library-packages/storage/src/features/cookie-store/CookieStore.ts","webpack://@pjs/plus/../../../../../../library-packages/storage/src/features/cookie-store/functions/CookieOptionsToString.function.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/async-model/createAsyncModelError.function.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/async-model/createAsyncModelPending.function.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/async-model/createAsyncModelResult.function.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/async-model/enums/AsyncModelStatus.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/debouncer/Debouncer.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/get-best-text-matches/GetBestTextMatches.function.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/make-string-regex-safe/MakeStringRegexSafe.function.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/guid/CreateGuid.function.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/is-android/isAndroid.constant.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/is-ipad/isIpadLike.constant.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/is-iphone-like/isIphoneLike.constant.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/move-element-children/MoveElementChildren.function.ts","webpack://@pjs/plus/../../../../../../library-packages/utilities/src/features/noop/Noop.function.ts","webpack://@pjs/plus/../../../../../../node_modules/@flowjs/flow.js/src/flow.js","webpack://@pjs/plus/../../../../../../node_modules/@flowjs/ng-flow/dist/ng-flow.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/amd/src/angularAmd/angularAmd.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/amd/src/pebbleAmdRoute/pebbleAmdRoute.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/amd/src/pebbleAmdRoute/pebbleAmdRouteFactory.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/angular-aria/angular-aria.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/angular-route/angular-route.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/angular-sanitize/angular-sanitize.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/angular/angular.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/angular/ngComponent.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/react2angular/index.tsx","webpack://@pjs/plus/../../../../../../node_modules/dompurify/src/utils.js","webpack://@pjs/plus/../../../../../../node_modules/dompurify/src/tags.js","webpack://@pjs/plus/../../../../../../node_modules/dompurify/src/attrs.js","webpack://@pjs/plus/../../../../../../node_modules/dompurify/src/regexp.js","webpack://@pjs/plus/../../../../../../node_modules/dompurify/src/purify.js","webpack://@pjs/plus/../../../../../../node_modules/enquire.js/dist/enquire.js","webpack://@pjs/plus/../../../../../../node_modules/keysy-peasy/src/classes/KeasyPeasyError.ts","webpack://@pjs/plus/../../../../../../node_modules/keysy-peasy/src/classes/Shortcuts.ts","webpack://@pjs/plus/../../../../../../node_modules/keysy-peasy/src/index.ts","webpack://@pjs/plus/../../../../../../node_modules/lodash.frompairs/index.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_DataView.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_Hash.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_ListCache.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_Map.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_MapCache.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_Promise.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_Set.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_SetCache.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_Stack.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_Symbol.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_Uint8Array.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_WeakMap.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_apply.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_arrayFilter.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_arrayLikeKeys.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_arrayMap.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_arrayPush.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_arraySome.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_assignValue.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_assocIndexOf.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseAssignValue.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseEach.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseFor.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseForOwn.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseGet.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseGetAllKeys.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseGetTag.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseHasIn.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseIsArguments.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseIsEqual.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseIsEqualDeep.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseIsMatch.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseIsNative.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseIsTypedArray.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseIteratee.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseKeys.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseMatches.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseMatchesProperty.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseProperty.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_basePropertyDeep.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseRest.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseSetToString.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseSome.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseTimes.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseToString.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_baseUnary.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_cacheHas.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_castPath.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_copyObject.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_coreJsData.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_createAssigner.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_createBaseEach.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_createBaseFor.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_defineProperty.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_equalArrays.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_equalByTag.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_equalObjects.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_freeGlobal.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_getAllKeys.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_getMapData.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_getMatchData.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_getNative.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_getRawTag.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_getSymbols.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_getTag.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_getValue.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_hasPath.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_hashClear.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_hashDelete.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_hashGet.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_hashHas.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_hashSet.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_isIndex.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_isIterateeCall.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_isKey.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_isKeyable.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_isMasked.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_isPrototype.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_isStrictComparable.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_listCacheClear.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_listCacheDelete.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_listCacheGet.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_listCacheHas.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_listCacheSet.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_mapCacheClear.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_mapCacheDelete.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_mapCacheGet.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_mapCacheHas.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_mapCacheSet.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_mapToArray.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_matchesStrictComparable.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_memoizeCapped.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_nativeCreate.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_nativeKeys.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_nodeUtil.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_objectToString.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_overArg.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_overRest.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_root.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_setCacheAdd.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_setCacheHas.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_setToArray.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_setToString.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_shortOut.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_stackClear.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_stackDelete.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_stackGet.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_stackHas.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_stackSet.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_stringToPath.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_toKey.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/_toSource.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/assign.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/constant.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/eq.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/get.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/hasIn.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/identity.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/isArguments.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/isArray.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/isArrayLike.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/isBuffer.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/isFunction.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/isLength.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/isObject.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/isObjectLike.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/isSymbol.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/isTypedArray.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/keys.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/mapValues.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/memoize.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/property.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/some.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/stubArray.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/stubFalse.js","webpack://@pjs/plus/../../../../../../node_modules/lodash/toString.js","webpack://@pjs/plus/../../../../../../node_modules/mark.js/dist/mark.min.js","webpack://@pjs/plus/../../../../../../node_modules/ngcomponent/index.ts","webpack://@pjs/plus/../../../../../../node_modules/react-dom/cjs/react-dom.production.min.js","webpack://@pjs/plus/../../../../../../node_modules/react-dom/client.js","webpack://@pjs/plus/../../../../../../node_modules/react-dom/index.js","webpack://@pjs/plus/../../../../../../node_modules/react-range/lib/Range.js","webpack://@pjs/plus/../../../../../../node_modules/react-range/lib/index.js","webpack://@pjs/plus/../../../../../../node_modules/react-range/lib/types.js","webpack://@pjs/plus/../../../../../../node_modules/react-range/lib/utils.js","webpack://@pjs/plus/../../../../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://@pjs/plus/../../../../../../node_modules/react/cjs/react.production.min.js","webpack://@pjs/plus/../../../../../../node_modules/react/index.js","webpack://@pjs/plus/../../../../../../node_modules/react/jsx-runtime.js","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/BehaviorSubject.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/Observable.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/pipe.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/ReplaySubject.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/Subject.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/NotificationFactories.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/Subscriber.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/Subscription.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/config.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/observable/defer.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/observable/empty.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/observeOn.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/subscribeOn.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/observable/from.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduled/scheduled.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduled/scheduleArray.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduled/schedulePromise.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/observable/innerFrom.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/observable/merge.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/observable/of.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/observable/timer.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/isDate.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/catchError.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/concatMap.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/exhaustMap.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/filter.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/finalize.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/first.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/take.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/map.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/mergeAll.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/mergeMap.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/mergeInternals.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/share.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/skip.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/observable/concat.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/concatAll.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/startWith.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/switchMap.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/takeUntil.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/tap.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/operators/throwIfEmpty.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduler/Action.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduler/intervalProvider.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduler/AsyncAction.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/Scheduler.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduler/async.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/symbol/iterator.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/symbol/observable.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/EmptyError.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/args.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/arrRemove.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/createErrorClass.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/errorContext.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/executeSchedule.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/identity.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/isArrayLike.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/isAsyncIterable.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/isFunction.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/isInteropObservable.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/isIterable.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/isPromise.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/isReadableStreamLike.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/isScheduler.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/lift.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/noop.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/reportUnhandledError.ts","webpack://@pjs/plus/../../../../../../node_modules/rxjs/src/internal/util/throwUnobservableError.ts","webpack://@pjs/plus/../../../../../../node_modules/scheduler/cjs/scheduler.production.min.js","webpack://@pjs/plus/../../../../../../node_modules/scheduler/index.js","webpack://@pjs/plus/../../../../../../node_modules/tocca/Tocca.js","webpack://@pjs/plus/external window \"\"","webpack://@pjs/plus/../../node_modules/core-js/internals/a-callable.js","webpack://@pjs/plus/../../node_modules/core-js/internals/a-possible-prototype.js","webpack://@pjs/plus/../../node_modules/core-js/internals/an-instance.js","webpack://@pjs/plus/../../node_modules/core-js/internals/an-object.js","webpack://@pjs/plus/../../node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://@pjs/plus/../../node_modules/core-js/internals/array-buffer-view-core.js","webpack://@pjs/plus/../../node_modules/core-js/internals/array-includes.js","webpack://@pjs/plus/../../node_modules/core-js/internals/array-set-length.js","webpack://@pjs/plus/../../node_modules/core-js/internals/array-slice.js","webpack://@pjs/plus/../../node_modules/core-js/internals/array-with.js","webpack://@pjs/plus/../../node_modules/core-js/internals/classof-raw.js","webpack://@pjs/plus/../../node_modules/core-js/internals/classof.js","webpack://@pjs/plus/../../node_modules/core-js/internals/copy-constructor-properties.js","webpack://@pjs/plus/../../node_modules/core-js/internals/correct-prototype-getter.js","webpack://@pjs/plus/../../node_modules/core-js/internals/create-non-enumerable-property.js","webpack://@pjs/plus/../../node_modules/core-js/internals/create-property-descriptor.js","webpack://@pjs/plus/../../node_modules/core-js/internals/create-property.js","webpack://@pjs/plus/../../node_modules/core-js/internals/define-built-in-accessor.js","webpack://@pjs/plus/../../node_modules/core-js/internals/define-built-in.js","webpack://@pjs/plus/../../node_modules/core-js/internals/define-global-property.js","webpack://@pjs/plus/../../node_modules/core-js/internals/descriptors.js","webpack://@pjs/plus/../../node_modules/core-js/internals/detach-transferable.js","webpack://@pjs/plus/../../node_modules/core-js/internals/document-create-element.js","webpack://@pjs/plus/../../node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://@pjs/plus/../../node_modules/core-js/internals/dom-exception-constants.js","webpack://@pjs/plus/../../node_modules/core-js/internals/engine-is-browser.js","webpack://@pjs/plus/../../node_modules/core-js/internals/engine-is-bun.js","webpack://@pjs/plus/../../node_modules/core-js/internals/engine-is-deno.js","webpack://@pjs/plus/../../node_modules/core-js/internals/engine-is-ios.js","webpack://@pjs/plus/../../node_modules/core-js/internals/engine-is-node.js","webpack://@pjs/plus/../../node_modules/core-js/internals/engine-user-agent.js","webpack://@pjs/plus/../../node_modules/core-js/internals/engine-v8-version.js","webpack://@pjs/plus/../../node_modules/core-js/internals/enum-bug-keys.js","webpack://@pjs/plus/../../node_modules/core-js/internals/error-stack-clear.js","webpack://@pjs/plus/../../node_modules/core-js/internals/error-stack-installable.js","webpack://@pjs/plus/../../node_modules/core-js/internals/export.js","webpack://@pjs/plus/../../node_modules/core-js/internals/fails.js","webpack://@pjs/plus/../../node_modules/core-js/internals/function-apply.js","webpack://@pjs/plus/../../node_modules/core-js/internals/function-bind-context.js","webpack://@pjs/plus/../../node_modules/core-js/internals/function-bind-native.js","webpack://@pjs/plus/../../node_modules/core-js/internals/function-call.js","webpack://@pjs/plus/../../node_modules/core-js/internals/function-name.js","webpack://@pjs/plus/../../node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://@pjs/plus/../../node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://@pjs/plus/../../node_modules/core-js/internals/function-uncurry-this.js","webpack://@pjs/plus/../../node_modules/core-js/internals/get-built-in.js","webpack://@pjs/plus/../../node_modules/core-js/internals/get-iterator-method.js","webpack://@pjs/plus/../../node_modules/core-js/internals/get-iterator.js","webpack://@pjs/plus/../../node_modules/core-js/internals/get-method.js","webpack://@pjs/plus/../../node_modules/core-js/internals/global.js","webpack://@pjs/plus/../../node_modules/core-js/internals/has-own-property.js","webpack://@pjs/plus/../../node_modules/core-js/internals/hidden-keys.js","webpack://@pjs/plus/../../node_modules/core-js/internals/html.js","webpack://@pjs/plus/../../node_modules/core-js/internals/ie8-dom-define.js","webpack://@pjs/plus/../../node_modules/core-js/internals/indexed-object.js","webpack://@pjs/plus/../../node_modules/core-js/internals/inherit-if-required.js","webpack://@pjs/plus/../../node_modules/core-js/internals/inspect-source.js","webpack://@pjs/plus/../../node_modules/core-js/internals/internal-state.js","webpack://@pjs/plus/../../node_modules/core-js/internals/is-array-iterator-method.js","webpack://@pjs/plus/../../node_modules/core-js/internals/is-array.js","webpack://@pjs/plus/../../node_modules/core-js/internals/is-big-int-array.js","webpack://@pjs/plus/../../node_modules/core-js/internals/is-callable.js","webpack://@pjs/plus/../../node_modules/core-js/internals/is-constructor.js","webpack://@pjs/plus/../../node_modules/core-js/internals/is-forced.js","webpack://@pjs/plus/../../node_modules/core-js/internals/is-null-or-undefined.js","webpack://@pjs/plus/../../node_modules/core-js/internals/is-object.js","webpack://@pjs/plus/../../node_modules/core-js/internals/is-possible-prototype.js","webpack://@pjs/plus/../../node_modules/core-js/internals/is-pure.js","webpack://@pjs/plus/../../node_modules/core-js/internals/is-symbol.js","webpack://@pjs/plus/../../node_modules/core-js/internals/iterate-simple.js","webpack://@pjs/plus/../../node_modules/core-js/internals/iterate.js","webpack://@pjs/plus/../../node_modules/core-js/internals/iterator-close.js","webpack://@pjs/plus/../../node_modules/core-js/internals/iterators.js","webpack://@pjs/plus/../../node_modules/core-js/internals/length-of-array-like.js","webpack://@pjs/plus/../../node_modules/core-js/internals/make-built-in.js","webpack://@pjs/plus/../../node_modules/core-js/internals/map-helpers.js","webpack://@pjs/plus/../../node_modules/core-js/internals/math-trunc.js","webpack://@pjs/plus/../../node_modules/core-js/internals/normalize-string-argument.js","webpack://@pjs/plus/../../node_modules/core-js/internals/object-define-property.js","webpack://@pjs/plus/../../node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://@pjs/plus/../../node_modules/core-js/internals/object-get-own-property-names.js","webpack://@pjs/plus/../../node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://@pjs/plus/../../node_modules/core-js/internals/object-get-prototype-of.js","webpack://@pjs/plus/../../node_modules/core-js/internals/object-is-prototype-of.js","webpack://@pjs/plus/../../node_modules/core-js/internals/object-keys-internal.js","webpack://@pjs/plus/../../node_modules/core-js/internals/object-property-is-enumerable.js","webpack://@pjs/plus/../../node_modules/core-js/internals/object-set-prototype-of.js","webpack://@pjs/plus/../../node_modules/core-js/internals/ordinary-to-primitive.js","webpack://@pjs/plus/../../node_modules/core-js/internals/own-keys.js","webpack://@pjs/plus/../../node_modules/core-js/internals/regexp-flags.js","webpack://@pjs/plus/../../node_modules/core-js/internals/regexp-get-flags.js","webpack://@pjs/plus/../../node_modules/core-js/internals/require-object-coercible.js","webpack://@pjs/plus/../../node_modules/core-js/internals/schedulers-fix.js","webpack://@pjs/plus/../../node_modules/core-js/internals/set-helpers.js","webpack://@pjs/plus/../../node_modules/core-js/internals/set-iterate.js","webpack://@pjs/plus/../../node_modules/core-js/internals/shared-key.js","webpack://@pjs/plus/../../node_modules/core-js/internals/shared-store.js","webpack://@pjs/plus/../../node_modules/core-js/internals/shared.js","webpack://@pjs/plus/../../node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack://@pjs/plus/../../node_modules/core-js/internals/symbol-constructor-detection.js","webpack://@pjs/plus/../../node_modules/core-js/internals/task.js","webpack://@pjs/plus/../../node_modules/core-js/internals/to-absolute-index.js","webpack://@pjs/plus/../../node_modules/core-js/internals/to-big-int.js","webpack://@pjs/plus/../../node_modules/core-js/internals/to-indexed-object.js","webpack://@pjs/plus/../../node_modules/core-js/internals/to-integer-or-infinity.js","webpack://@pjs/plus/../../node_modules/core-js/internals/to-length.js","webpack://@pjs/plus/../../node_modules/core-js/internals/to-object.js","webpack://@pjs/plus/../../node_modules/core-js/internals/to-primitive.js","webpack://@pjs/plus/../../node_modules/core-js/internals/to-property-key.js","webpack://@pjs/plus/../../node_modules/core-js/internals/to-string-tag-support.js","webpack://@pjs/plus/../../node_modules/core-js/internals/to-string.js","webpack://@pjs/plus/../../node_modules/core-js/internals/try-node-require.js","webpack://@pjs/plus/../../node_modules/core-js/internals/try-to-string.js","webpack://@pjs/plus/../../node_modules/core-js/internals/uid.js","webpack://@pjs/plus/../../node_modules/core-js/internals/use-symbol-as-uid.js","webpack://@pjs/plus/../../node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://@pjs/plus/../../node_modules/core-js/internals/validate-arguments-length.js","webpack://@pjs/plus/../../node_modules/core-js/internals/weak-map-basic-detection.js","webpack://@pjs/plus/../../node_modules/core-js/internals/well-known-symbol.js","webpack://@pjs/plus/../../node_modules/core-js/modules/es.array.push.js","webpack://@pjs/plus/../../node_modules/core-js/modules/es.typed-array.with.js","webpack://@pjs/plus/../../node_modules/core-js/modules/web.clear-immediate.js","webpack://@pjs/plus/../../node_modules/core-js/modules/web.dom-exception.stack.js","webpack://@pjs/plus/../../node_modules/core-js/modules/web.immediate.js","webpack://@pjs/plus/../../node_modules/core-js/modules/web.set-immediate.js","webpack://@pjs/plus/../../node_modules/core-js/modules/web.structured-clone.js","webpack://@pjs/plus/../../node_modules/core-js/modules/web.url-search-params.delete.js","webpack://@pjs/plus/../../node_modules/core-js/modules/web.url-search-params.has.js","webpack://@pjs/plus/../../node_modules/core-js/modules/web.url-search-params.size.js","webpack://@pjs/plus/../../../../../../library-packages/theming/src/features/convert-pixel-to-rem/ConvertPixelToRem.function.ts","webpack://@pjs/plus/../../../../../../library-packages/theming/src/consts/FontSizeRemDivision.const.ts","webpack://@pjs/plus/../../../../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://@pjs/plus/../../../../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://@pjs/plus/../../../../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack://@pjs/plus/../../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/global.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_isMasked.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_shortOut.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_memoizeCapped.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_basePropertyOf.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_createCompounder.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/colorgrid/colorgridview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/color-parse/index.mjs","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/color-convert/conversions.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/color-convert/route.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/env.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/fastdiff.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/diff.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/spy.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/eventinfo.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/uid.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/priorities.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/inserttopriorityarray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/ckeditorerror.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/version.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/emittermixin.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_freeGlobal.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_root.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_Symbol.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_getRawTag.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_objectToString.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseGetTag.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isObjectLike.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isSymbol.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isArray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseToString.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_trimmedEndIndex.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseTrim.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isObject.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/toNumber.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/identity.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isFunction.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_coreJsData.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_toSource.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseIsNative.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_getNative.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_getValue.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_WeakMap.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseCreate.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_copyArray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_defineProperty.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_setToString.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseSetToString.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/constant.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_isIndex.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseAssignValue.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/eq.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_assignValue.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_copyObject.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_overRest.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isLength.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isArrayLike.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_createAssigner.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseRest.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_isIterateeCall.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_apply.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_isPrototype.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseIsArguments.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isArguments.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isBuffer.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/stubFalse.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseIsTypedArray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseUnary.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_nodeUtil.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isTypedArray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_arrayLikeKeys.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseTimes.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_overArg.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_nativeKeys.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseKeys.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/keys.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseKeysIn.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/keysIn.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_nativeKeysIn.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/assignIn.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_isKey.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_nativeCreate.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_hashGet.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_hashHas.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_Hash.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_assocIndexOf.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_hashClear.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_hashDelete.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_hashSet.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_listCacheDelete.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_ListCache.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_listCacheClear.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_listCacheGet.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_listCacheHas.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_listCacheSet.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_Map.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_getMapData.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_isKeyable.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_MapCache.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/memoize.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_mapCacheClear.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_mapCacheDelete.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_mapCacheGet.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_mapCacheHas.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_mapCacheSet.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_stringToPath.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/toString.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_arrayMap.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_castPath.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_toKey.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseGet.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/get.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_arrayPush.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_getPrototype.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isPlainObject.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseSlice.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_hasUnicode.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_unicodeToArray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/upperFirst.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_createCaseFirst.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_stringToArray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_castSlice.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_asciiToArray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_deburrLetter.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/deburr.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_asciiWords.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_hasUnicodeWord.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_unicodeWords.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_Stack.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_stackClear.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_stackDelete.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_stackGet.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_stackHas.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_stackSet.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_cloneBuffer.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/stubArray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_getSymbols.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_arrayFilter.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_getSymbolsIn.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseGetAllKeys.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_getAllKeys.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_getAllKeysIn.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_DataView.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_Promise.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_Set.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_getTag.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_initCloneArray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_Uint8Array.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_cloneArrayBuffer.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_cloneRegExp.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_cloneSymbol.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_cloneTypedArray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_initCloneObject.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isMap.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseIsMap.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isSet.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseIsSet.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseClone.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseAssignIn.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_copySymbolsIn.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseAssign.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_copySymbols.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_initCloneByTag.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_cloneDataView.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_arrayEach.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/cloneDeep.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/cloneDeepWith.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_SetCache.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_equalArrays.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_arraySome.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_cacheHas.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_mapToArray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_setToArray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_setCacheAdd.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_setCacheHas.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_equalByTag.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_equalObjects.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseIsEqualDeep.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseIsEqual.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_matchesStrictComparable.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseHasIn.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseFor.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_createBaseFor.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/now.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/debounce.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_assignMergeValue.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_safeGet.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseMerge.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseMergeDeep.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isArrayLikeObject.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/toPlainObject.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/mergeWith.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/escapeRegExp.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isString.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isElement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/merge.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/startCase.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/words.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_arrayReduce.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/throttle.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/observablemixin.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/count.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/comparearrays.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/isiterable.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/createelement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/config.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/isnode.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/iswindow.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/emittermixin.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/getborderwidths.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/getrangefrommouseevent.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/istext.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/isrange.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/getpositionedancestor.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/rect.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/resizeobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/setdatainelement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/indexof.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/insertat.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/iscomment.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/isvalidattributename.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/isvisible.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/position.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/remove.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/scroll.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/keyboard.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/language.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/toarray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/translation-service.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/locale.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/collection.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/first.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/focustracker.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/keystrokehandler.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/tomap.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/objecttomap.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/splicearray.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/delay.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/unicode.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-core/src/plugin.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-core/src/command.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-core/src/multicommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-core/src/plugincollection.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-core/src/context.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/build-scripts/rollup-plugins/injectCss.runtime.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/placeholder.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/typecheckable.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/node.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/clone.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/text.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/textproxy.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/matcher.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/stylesmap.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/unset.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseUnset.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_parent.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/last.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/set.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseSet.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/element.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/containerelement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/editableelement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/rooteditableelement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/treewalker.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/position.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/range.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/selection.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/documentselection.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/bubblingeventinfo.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/bubblingemittermixin.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/document.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/attributeelement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/emptyelement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/uielement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/rawelement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/documentfragment.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/downcastwriter.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/filler.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/renderer.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/domconverter.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/getancestors.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/observer.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/domeventdata.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/domeventobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/keyobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/fakeselectionobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/mutationobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isEqualWith.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/focusobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/selectionobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/compositionobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/datatransfer.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/inputobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/arrowkeysobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/tabobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/view.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/typecheckable.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/node.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/nodelist.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/text.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/textproxy.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/element.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/treewalker.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/position.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/range.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/mapper.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/modelconsumable.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/downcastdispatcher.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/selection.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/liverange.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/documentselection.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/conversionhelpers.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/downcasthelpers.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/utils/autoparagraphing.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/upcasthelpers.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/utils/selection-post-fixer.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/controller/editingcontroller.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/viewconsumable.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/schema.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/upcastdispatcher.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/dataprocessor/basichtmlwriter.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/dataprocessor/htmldataprocessor.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/controller/datacontroller.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/conversion.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/operation.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/moveoperation.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/insertoperation.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/splitoperation.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/mergeoperation.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/markeroperation.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/attributeoperation.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/isEqual.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/nooperation.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/renameoperation.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/rootattributeoperation.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/rootoperation.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/operationfactory.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/transform.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/liveposition.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/batch.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/differ.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/history.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/rootelement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/document.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/markercollection.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/detachoperation.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/documentfragment.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/writer.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/utils/deletecontent.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/utils/getselectedcontent.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/utils/insertcontent.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/model.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/utils/insertobject.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/utils/modifyselection.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/mouseobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/upcastwriter.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/styles/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/styles/background.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/styles/margin.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-watchdog/src/watchdog.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-watchdog/src/utils/getsubnodes.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-watchdog/src/utils/areconnectedthroughproperties.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-watchdog/src/editorwatchdog.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-watchdog/src/contextwatchdog.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-core/src/commandcollection.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-core/src/editingkeystrokehandler.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-core/src/accessibility.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-core/src/editor/editor.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-core/src/editor/utils/elementapimixin.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-core/src/index.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-core/src/editor/utils/securesourceelement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/viewcollection.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/template.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/view.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/bindings/clickoutsidehandler.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/bindings/addkeyboardhandlingforgrid.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/icon/iconview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/button/buttonlabelview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/button/buttonview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/formheader/formheaderview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/focuscycler.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/bindings/draggableviewmixin.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dialog/dialogactionsview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dialog/dialogcontentview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dialog/dialogview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/tounit.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dialog/dialog.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/button/listitembuttonview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenulistitembuttonview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/label/labelview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/editorui/bodycollection.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/button/switchbuttonview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/button/filedialogbuttonview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/collapsible/collapsibleview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/colorgrid/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/colorgrid/colortileview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/color-name/index.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/color-convert/index.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/colorpicker/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/labeledfield/labeledfieldview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/input/inputbase.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/input/inputview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/inputtext/inputtextview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/inputnumber/inputnumberview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/dropdownpanelview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/dropdownview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/button/dropdownbuttonview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/menu/dropdownmenubuttonview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/list/listitemview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/list/listseparatorview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/list/listitemgroupview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/list/listview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/menu/dropdownmenulistview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/menu/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/menu/dropdownmenubehaviors.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/panel/balloon/balloonpanelview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/menu/dropdownmenunestedmenupanelview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/menu/dropdownmenunestedmenuview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/toolbar/toolbarseparatorview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/toolbar/toolbarlinebreakview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/toolbar/normalizetoolbarconfig.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/toolbar/toolbarview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/bindings/preventdefault.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/button/splitbuttonview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/labeledfield/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/vanilla-colorful/src/lib/utils/math.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/vanilla-colorful/src/lib/utils/convert.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/vanilla-colorful/src/lib/utils/compare.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/vanilla-colorful/src/lib/utils/dom.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/vanilla-colorful/src/lib/components/slider.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/vanilla-colorful/src/lib/components/hue.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/vanilla-colorful/src/lib/components/saturation.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/vanilla-colorful/src/lib/components/color-picker.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/vanilla-colorful/src/lib/styles/color-picker.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/vanilla-colorful/src/lib/styles/hue.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/vanilla-colorful/src/lib/styles/saturation.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/vanilla-colorful/src/lib/entrypoints/hex.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/colorpicker/colorpickerview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/colorselector/documentcolorcollection.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/colorselector/colorgridsfragmentview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/colorselector/colorpickerfragmentview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/colorselector/colorselectorview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/componentfactory.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/tooltipmanager.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/editorui/poweredby.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/verifylicense.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/arialiveannouncer.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenulistitemview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/menubar/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/editorui/editorui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/editorui/editoruiview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/editableui/editableuiview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/editableui/inline/inlineeditableuiview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/model.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/search/text/searchtextqueryview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/search/searchinfoview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/search/searchresultsview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/search/text/searchtextview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/autocomplete/autocompleteview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenubuttonview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenupanelview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenuview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenulistview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenulistitemfiledialogbuttonview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-editor-decoupled/src/decouplededitorui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-editor-decoupled/src/decouplededitoruiview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-editor-decoupled/src/decouplededitor.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/getdatafromelement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-link/src/utils/manualdecorator.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-special-characters/src/ui/specialcharactersview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/attributecommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/bold/boldediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/bold/boldui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/bold.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-typing/src/utils/changebuffer.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-typing/src/inserttextcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-typing/src/inserttextobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-typing/src/input.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-typing/src/deletecommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-typing/src/deleteobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-typing/src/delete.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-typing/src/typing.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-typing/src/utils/findattributerange.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/italic/italicediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/italic/italicui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/italic.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/strikethrough/strikethroughediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/strikethrough/strikethroughui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/strikethrough.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/subscript/subscriptediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/subscript/subscriptui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/subscript.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/superscript/superscriptediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/superscript/superscriptui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/superscript.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/underline/underlineediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/underline/underlineui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/underline.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-enter/src/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-enter/src/entercommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-enter/src/enterobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-enter/src/enter.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-enter/src/shiftentercommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-enter/src/shiftenter.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-select-all/src/selectallcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-select-all/src/selectallediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-select-all/src/selectallui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-select-all/src/selectall.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/clipboardobserver.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/utils/viewtoplaintext.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/clipboardmarkersutils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/mapValues.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseForOwn.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseIteratee.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseMatchesProperty.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_isStrictComparable.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseMatches.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseProperty.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/hasIn.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_hasPath.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_getMatchData.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_baseIsMatch.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/property.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/lodash-es/_basePropertyDeep.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/clipboardpipeline.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/utils/normalizeclipboarddata.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/utils/plaintexttohtml.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-widget/src/highlightstack.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-widget/src/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-widget/src/widgettypearound/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-widget/src/widgettypearound/widgettypearound.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-widget/src/verticalnavigation.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-widget/src/widget.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/lineview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/dragdroptarget.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/dragdropblocktoolbar.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/dragdrop.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/pasteplaintext.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/clipboard.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paragraph/src/paragraphcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paragraph/src/insertparagraphcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paragraph/src/paragraph.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-heading/src/headingcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-heading/src/headingediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-heading/src/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-heading/src/headingui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-heading/src/heading.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-indent/src/indentediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-indent/src/indentui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-indent/src/indent.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-indent/src/indentblockcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-indent/src/indentcommandbehavior/indentusingoffset.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-indent/src/indentcommandbehavior/indentusingclasses.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-indent/src/indentblock.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list/utils/listwalker.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list/utils/model.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list/listindentcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list/listcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list/listmergecommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list/listsplitcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list/listutils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list/utils/view.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list/utils/postfixers.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list/converters.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list/listediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list/listui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/list.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/listproperties/liststartcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/listproperties/utils/style.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/listproperties/liststylecommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/listproperties/listreversedcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/listproperties/converters.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/listproperties/listpropertiesutils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/listproperties/utils/config.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/listproperties/listpropertiesediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/listproperties/ui/listpropertiesview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/listproperties/listpropertiesui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-list/src/listproperties.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/list.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/normalizers/mswordnormalizer.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/image.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removemsattributes.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/br.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/normalizers/googledocsnormalizer.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removeboldwrapper.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/normalizers/googlesheetsnormalizer.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removegooglesheetstag.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removexmlns.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removeinvalidtablewidth.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removestyleblock.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/space.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/pastefromoffice.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/parse.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-alignment/src/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-alignment/src/alignmentcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-alignment/src/alignmentediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-alignment/src/alignmentui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-alignment/src/alignment.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontfamily/fontfamilycommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontfamily/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontfamily/fontfamilyediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontfamily/fontfamilyui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontfamily.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontsize/fontsizecommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontsize/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontsize/fontsizeediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontsize/fontsizeui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontsize.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontcolor/fontcolorcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontcolor/fontcolorediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/ui/colorui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontcolor/fontcolorui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontcolor.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-font/src/font.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-remove-format/src/removeformatui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-remove-format/src/removeformatcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-remove-format/src/removeformatediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-remove-format/src/removeformat.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/converters.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/schemadefinitions.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/dataschema.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/datafilter.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/integrations/codeblock.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/integrations/dualcontent.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/integrations/heading.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/integrations/integrationutils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/integrations/image.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/integrations/mediaembed.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/integrations/script.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/integrations/table.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/integrations/style.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/integrations/list.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/integrations/customelement.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-html-support/src/generalhtmlsupport.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-undo/src/basecommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-undo/src/undocommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-undo/src/redocommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-undo/src/undoediting.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-undo/src/undoui.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-undo/src/undo.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-link/src/utils/automaticdecorators.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-link/src/utils.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-link/src/linkcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-link/src/unlinkcommand.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-special-characters/src/ui/charactergridview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-special-characters/src/ui/characterinfoview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-special-characters/src/ui/specialcharacterscategoriesview.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-special-characters/src/specialcharacters.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-special-characters/src/specialcharactersmathematical.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/node_modules/@ckeditor/ckeditor5-special-characters/src/specialcharacterslatin.js","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/src/features/i18n/CkeI18nResource.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/src/features/i18n/CkeI18nResources.const.ts","webpack://@pjs/plus/../../../../../../node_modules/@pebblepad/ckeditor/src/index.ts","webpack://@pjs/plus/../../../../../../node_modules/i18next/dist/esm/i18next.js","webpack://@pjs/plus/../../../../../../node_modules/tslib/tslib.es6.mjs","webpack://@pjs/plus/webpack/bootstrap","webpack://@pjs/plus/webpack/runtime/compat get default export","webpack://@pjs/plus/webpack/runtime/create fake namespace object","webpack://@pjs/plus/webpack/runtime/define property getters","webpack://@pjs/plus/webpack/runtime/ensure chunk","webpack://@pjs/plus/webpack/runtime/get javascript chunk filename","webpack://@pjs/plus/webpack/runtime/global","webpack://@pjs/plus/webpack/runtime/hasOwnProperty shorthand","webpack://@pjs/plus/webpack/runtime/make namespace object","webpack://@pjs/plus/webpack/runtime/node module decorator","webpack://@pjs/plus/webpack/runtime/import chunk loading","webpack://@pjs/plus/app/scripts/services/standardsOverview.service.js","webpack://@pjs/plus/app/scripts/services/feedbackSidebar.service.js","webpack://@pjs/plus/app/scripts/services/formElementInfoSidebar.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/abortablePromises/AbortableHttp.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/migrators/evidenceMigrator.js","webpack://@pjs/plus/app/scripts/constants/ewcStatuses.constants.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/redactIdsFromString.js","webpack://@pjs/plus/app/scripts/links/assetLink.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/exceptionReporter.factory.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/redactUrl.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/cssLoader.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pebbleRoutingModule/routeRejectionReason.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/utilities/assetBuilderHelper.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pebbleRoutingModule/pebbleRouting.module.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/constants/authenticated401Reasons.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pebbleHttpModule/pebbleHttp.module.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/links/pebbleLinks.module.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/pebbleHtml/pebbleHtml.module.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/uberAriaModule/uberAria.module.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/skipToContentLink/skipToContentLink.directive.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/angular-inview/require-angular-inview.js","webpack://@pjs/plus/app/scripts/features/builder/userStatus/userStatus.service.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/analytics/TrackFraming.effect.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/react2angular/dialogView.js","webpack://@pjs/plus/app/scripts/configs/api/AssetBlock.js","webpack://@pjs/plus/app/scripts/configs/api/AssetCore.js","webpack://@pjs/plus/app/scripts/configs/api/Files.js","webpack://@pjs/plus/app/scripts/configs/api/UserDomain.js","webpack://@pjs/plus/app/scripts/configs/api/UserUi.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/featureSettings/FeatureSettingsResolver.const.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/user/UserResolver.const.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/rollback/RollbackWarning.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/rollback/RollbackInterceptor.js","webpack://@pjs/plus/../../../../../../deprecated/p-comp/rollback/RollbackInterceptorProvider.js","webpack://@pjs/plus/app/scripts/app.js"],"sourcesContent":["export enum CustomDimension {\r\n Organisation = 1,\r\n EWCStatus = 3,\r\n AppName = 4\r\n}\r\n","import { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-collapsible__hidden-content{display:none}`);","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`:root{--cui-icon-button-height:var(--icon-size-default);--cui-icon-button-width:var(--icon-size-default)}.cui-icon-button{--cui-icon-button-padding:.94rem;--cui-button-layout-border-focus-gap:.2rem;--cui-button-layout-border-focus-thickness:var(--layout-border-thickness-standout);--cui-button-layout-border-focus-offset:calc((var(--cui-button-layout-border-focus-thickness) + var(--layout-border-thickness-default) + var(--cui-button-layout-border-focus-gap))*-1);box-sizing:content-box;cursor:pointer;padding:var(--cui-icon-button-padding);width:var(--icon-size-content);height:var(--icon-size-content);border-radius:0;outline:none;position:relative}.cui-icon-button--hidden{visibility:hidden;width:0}.cui-icon-button__icon{height:var(--cui-icon-button-height);width:var(--cui-icon-button-width)}.cui-icon-button--outlined{background-color:var(--colour-action-outlined-background-default);fill:var(--colour-action-outlined-text-default);border:var(--layout-border-thickness-default)solid var(--colour-action-outlined-border-default)}.cui-icon-button--outlined:hover,.cui-icon-button--outlined:active{background-color:var(--colour-action-outlined-background-hover);fill:var(--colour-action-outlined-text-hover)}.cui-icon-button--outlined:focus{background-color:var(--colour-action-outlined-background-focused)}.cui-icon-button--outlined:focus:after{content:\"\";z-index:1;top:calc(var(--layout-border-thickness-standout)*-1);bottom:calc(var(--layout-border-thickness-standout)*-1);left:calc(var(--layout-border-thickness-standout)*-1);right:calc(var(--layout-border-thickness-standout)*-1);border:var(--layout-border-thickness-standout)solid var(--colour-action-outlined-border-focused);border-radius:0;position:absolute}.cui-icon-button--outlined:disabled{background-color:var(--colour-action-outlined-background-disabled);fill:var(--colour-action-outlined-text-disabled);cursor:default}.cui-icon-button-circular{border:var(--layout-border-thickness-standout)solid transparent;padding:var(--layout-padding-action-icon);cursor:pointer;box-sizing:border-box;transition:background-color .15s,border-color .15s;transition-timing-function:var(--effect-transition-ease-in-default);background:0 0;border-radius:50%;outline:none;justify-content:center;display:flex}.cui-icon-button-circular:hover{background-color:var(--colour-action-outlined-background-hover)}.cui-icon-button-circular:not([disabled]):focus{border-color:var(--colour-action-outlined-border-focused);background-color:var(--colour-action-outlined-background-focused)}.cui-icon-button-circular:disabled{cursor:default;background:0 0}.cui-icon-button-circular:disabled:hover{background:0 0}`);","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-base-input{color:var(--colour-input-text-default);background:var(--colour-input-background-default);border:var(--layout-border-thickness-default)solid var(--colour-input-border-default);font-size:var(--font-size-body);line-height:var(--font-line-height-input);height:calc(var(--font-size-body)*var(--font-line-height-input));padding:var(--layout-padding-form-element);width:calc(100% - ((var(--layout-padding-form-element) + var(--layout-border-thickness-default))*2));border-radius:0;outline:none;transition:border .25s ease-in}.cui-base-input:focus{outline:var(--layout-border-thickness-standout)solid var(--colour-action-outlined-border-focused);outline-offset:calc(var(--layout-border-thickness-default)*-1);z-index:var(--layer-level-1)}.cui-base-input:disabled{color:var(--colour-input-text-disabled);background:var(--colour-input-background-disabled);border-color:var(--colour-input-border-disabled);cursor:default}`);","import { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-loading-spinner__container{display:inline-block}.cui-loading-spinner__svg{height:100%}.cui-loading-spinner__ball{animation-name:loading-spinner-animation,none;animation-duration:.75s,0s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal,normal;animation-play-state:running,running;animation-delay:0s,0s;animation-fill-mode:both;animation-timeline:auto,auto}@keyframes loading-spinner-animation{0%{transform-origin:50%;transform:rotate(0)translate(0,0)}50%{transform-origin:50%;transform:rotate(180deg)translate(0,0)}to{transform-origin:50%;transform:rotate(360deg)translate(0,0)}}`);","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`:root{--cui-notice-layout-width:100%}.cui-notice{width:var(--cui-notice-layout-width);box-sizing:border-box;padding:var(--layout-padding-nested-content);padding-left:calc(var(--layout-padding-nested-content) - var(--layout-border-thickness-highlight));border:var(--layout-border-thickness-default)solid var(--colour-border);border-left:var(--layout-border-thickness-highlight)solid var(--colour-highlight-info);background:var(--colour-background);line-height:var(--font-line-height-body);align-items:flex-start;display:inline-flex;position:relative}.cui-notice__content{overflow-wrap:break-word;margin-left:var(--layout-margin-between-text-content);flex:100%;min-width:0}.cui-notice__icon{width:var(--icon-size-content);height:var(--icon-size-content);flex:none}.cui-notice__icon:empty{display:none}`);","import { injectCss } from \"../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-util-hide-element{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}`);","import { injectCss } from \"../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.rt-attached-editor__text-area.ck-focused{border-top-color:#0000}.rt-attached-editor__container{position:relative}`);","import { injectCss } from \"../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.rt-base-editor__text-area.rt-persistent-editor__text-area{--base-editor-top-border-thickness:0}`);","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.util-sticky-editor-toolbar{z-index:calc(var(--layer-context-sticky) + var(--layer-level-2));position:sticky;top:0}.util-normalise-toolbar-position{margin-bottom:-1px}`);","import { injectCss } from \"../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`:root{--palette-primary-900:#161616;--palette-primary-800:#383a42;--palette-primary-700:#474d55;--palette-primary-600:#595e69;--palette-primary-500:#6a7480;--palette-primary-400:#89929a;--palette-primary-300:#9ca5a6;--palette-primary-200:#edeeee;--palette-primary-100:#f9f9f9;--palette-secondary-700:#005a8d;--palette-secondary-600:#07b;--palette-secondary-500:#0096f1;--palette-secondary-400:#c7e6ff;--palette-secondary-300:#dbf1ff;--palette-secondary-200:#eef9ff;--palette-secondary-100:#f5fafe;--palette-success-700:#00633b;--palette-success-600:#008540;--palette-success-500:#00a751;--palette-success-400:#c7ffe1;--palette-success-300:#dbffe7;--palette-success-200:#ebfff1;--palette-success-100:#f5fffa;--palette-warning-700:#9c300f;--palette-warning-600:#d04010;--palette-warning-500:#f06700;--palette-warning-400:#fbdbd0;--palette-warning-300:#fde9e3;--palette-warning-200:#fef8f6;--palette-warning-100:#fffbf9;--palette-danger-700:maroon;--palette-danger-600:#b40000;--palette-danger-500:#f10000;--palette-danger-400:#ffc7c7;--palette-danger-300:#ffdbdb;--palette-danger-200:#fee;--palette-danger-100:#fff5f5;--palette-surface:#fff;--palette-selection:#c7e6ff;--colour-border:var(--palette-primary-400);--colour-border-subtle:var(--palette-primary-200);--colour-background:var(--palette-surface);--colour-section-divider:var(--palette-primary-400);--colour-text-on-accent:var(--palette-surface);--colour-success:var(--palette-success-600);--colour-warning:var(--palette-warning-600);--colour-danger:var(--palette-danger-600);--colour-info:var(--palette-secondary-600);--colour-static-label-background:var(--palette-primary-800);--colour-content-reveal-overlay:var(--palette-primary-100);--colour-action-contained-background-default:var(--palette-secondary-600);--colour-action-contained-background-focused:var(--palette-secondary-600);--colour-action-contained-background-hover:var(--palette-secondary-700);--colour-action-contained-background-disabled:var(--palette-secondary-400);--colour-action-contained-text-default:var(--palette-surface);--colour-action-contained-text-focused:var(--palette-surface);--colour-action-contained-text-hover:var(--palette-surface);--colour-action-contained-text-disabled:var(--palette-surface);--colour-action-contained-border-default:var(--palette-secondary-600);--colour-action-contained-border-focused:var(--palette-secondary-600);--colour-action-contained-border-hover:var(--palette-secondary-700);--colour-action-contained-border-disabled:var(--palette-secondary-400);--colour-action-outlined-background-default:var(--palette-surface);--colour-action-outlined-background-focused:var(--palette-secondary-100);--colour-action-outlined-background-hover:var(--palette-secondary-100);--colour-action-outlined-background-disabled:var(--palette-surface);--colour-action-outlined-text-default:var(--palette-secondary-600);--colour-action-outlined-text-focused:var(--palette-primary-400);--colour-action-outlined-text-hover:var(--palette-secondary-600);--colour-action-outlined-text-disabled:var(--palette-primary-400);--colour-action-outlined-border-default:var(--palette-primary-400);--colour-action-outlined-border-focused:var(--palette-secondary-600);--colour-action-outlined-border-hover:var(--palette-primary-400);--colour-action-outlined-border-disabled:var(--palette-primary-400);--colour-action-menu-active:var(--palette-secondary-300);--colour-highlight-active:var(--palette-secondary-600);--colour-highlight-success:var(--palette-success-600);--colour-highlight-warning:var(--palette-warning-600);--colour-highlight-danger:var(--palette-danger-600);--colour-highlight-info:var(--palette-secondary-600);--colour-icon-fill-success:var(--palette-primary-400);--colour-icon-fill-warning:var(--palette-warning-600);--colour-icon-fill-danger:var(--palette-danger-600);--colour-icon-fill-info:var(--palette-secondary-600);--colour-icon-fill-disabled:var(--palette-primary-400);--colour-icon-fill-on-accent:var(--palette-surface);--colour-title:var(--palette-primary-400);--colour-body-text:var(--palette-primary-900);--colour-supporting-text:var(--palette-primary-500);--colour-link:var(--palette-secondary-600);--colour-link-visited:var(--palette-secondary-600);--colour-input-background-default:var(--palette-surface);--colour-input-background-active:var(--palette-surface);--colour-input-background-focused:var(--palette-surface);--colour-input-background-disabled:var(--palette-primary-100);--colour-input-text-default:var(--palette-primary-900);--colour-input-text-disabled:var(--palette-primary-500);--colour-input-border-default:var(--palette-primary-400);--colour-input-border-active:var(--palette-primary-400);--colour-input-border-focused:var(--palette-secondary-600);--colour-input-border-disabled:var(--palette-primary-200);--colour-progress:var(--palette-primary-400);--colour-highlighted-region-background:var(--palette-secondary-100);--colour-highlighted-region-background-default:var(--palette-secondary-200);--colour-selection-text:var(--palette-primary-900);--colour-selection-background:var(--palette-selection);--icon-size-default:1.5rem;--icon-size-asset:3rem;--icon-size-emphasis:3rem;--icon-size-content:2.4rem;--icon-size-expand-indicator:1.2rem;--layout-action-accessible-min-height:4.4rem;--layout-input-multi-line-min-height:7.14rem;--layout-margin-between-buttons:1.5rem;--layout-margin-between-content:1.5rem;--layout-margin-between-text-content:1rem;--layout-margin-between-content-sections:2.5rem;--layout-margin-icon:.8rem;--layout-list-indent:2rem;--layout-padding-action-container:1.5rem;--layout-padding-blockquote:1.5rem;--layout-padding-chip:1.1rem;--layout-padding-content-container:2.5rem;--layout-padding-form-container:1rem;--layout-padding-form-element:1.3rem;--layout-padding-nested-content:1.5rem;--layout-padding-menu-option:1rem;--layout-padding-action-icon:1.3rem;--layout-border-thickness-default:.1rem;--layout-border-thickness-standout:.2rem;--layout-border-thickness-highlight:.5rem;--font-family-default:\"Open Sans\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;--font-size-default-percentage:62.5%;--font-size-body:1.4rem;--font-size-h1:3.2rem;--font-size-h2:2.4rem;--font-size-h3:1.8rem;--font-size-h4:1.6rem;--font-size-h5:var(--font-size-body);--font-size-caption:var(--font-size-body);--font-size-button:var(--font-size-body);--font-size-meta:1.2rem;--font-line-height-heading:1.5;--font-line-height-body:1.7;--font-line-height-input:1.2;--font-weight-regular:400;--font-weight-action:600;--font-weight-semi-bold:600;--font-weight-bold:700;--effect-elevation-overlay:0 3px 5px 0 #89929a33,0 1px 18px 0 #89929a1f,0 6px 10px 0 #89929a24;--effect-elevation-inline:0 1px 8px 0 #89929a33,0 3px 3px 0 #89929a1f,0 3px 4px 0 #89929a24;--effect-elevation-action:0 1px 3px 0 #89929a33,0 2px 1px 0 #89929a1f,0 1px 1px 0 #89929a24;--effect-border-radius-content:3px;--effect-border-radius-action:3px;--effect-transition-ease-in-default:cubic-bezier(.55,.055,.675,.19);--effect-transition-ease-out-default:cubic-bezier(.215,.61,.355,1);--layer-context-overlay:40;--layer-context-dropdown:30;--layer-context-fixed:20;--layer-context-sticky:10;--layer-level-1:1;--layer-level-2:2;--layer-level-3:3;--layer-level-4:4;--layer-level-5:5;--layer-level-6:6}`);","export default ` `;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/domSearchHelper.service\";\r\nimport \"../../utilities/accessibilityKeyEventHelper.service\";\r\nimport \"../../utilities/helpers\";\r\nimport \"../../extensions/arrayExtensions\";\r\n\r\nangularAMD.service(\"A11yMenuFactory\", A11yMenuService);\r\nA11yMenuService.$inject = [\"domSearchHelper\", \"accessibilityKeyEventHelper\", \"helpers\"];\r\n\r\nfunction A11yMenuService(domSearchHelper, accessibilityKeyEventHelper, helpers) {\r\n function A11yMenuFactory(domSearchHelper, accessibilityKeyEventHelper) {\r\n this.domSearchHelper = domSearchHelper;\r\n this.accessibilityKeyEventHelper = accessibilityKeyEventHelper;\r\n }\r\n\r\n A11yMenuFactory.prototype.createMenu = function (menuButton, menu, onClose) {\r\n return new RoleMenu(menuButton, menu, this.domSearchHelper, this.accessibilityKeyEventHelper, onClose);\r\n };\r\n\r\n A11yMenuFactory.prototype.createMenubar = function (menu, menuAccessor) {\r\n return new RoleMenubar(menu, menuAccessor, this.domSearchHelper, this.accessibilityKeyEventHelper);\r\n };\r\n\r\n /**\r\n * @param {JqLite} menuButton - Angular Element\r\n * @param {JqLite} menu\r\n * @param {DomSearchHelper} domSearchHelper\r\n * @param {AccessibilityKeyHelper} accessibilityKeyHelper\r\n * @param {Function} onClose\r\n * @constructor\r\n */\r\n function RoleMenu(menuButton, menu, domSearchHelper, accessibilityKeyHelper, onClose) {\r\n RoleMenuBase.call(this, menu, menuButton, domSearchHelper, accessibilityKeyHelper);\r\n this.onClose = onClose;\r\n this.onFocusHandler = this.onAnyFocus.bind(this);\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.upArrow] = this.focusPreviousItem.bind(this);\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.downArrow] = this.focusNextItem.bind(this);\r\n this.closeKeyMap = {};\r\n this.closeKeyMap[this.accessibilityKeyHelper.keyCodeMap.escape] = this.closeWithFocus.bind(this);\r\n }\r\n\r\n helpers.extendClass(RoleMenu, RoleMenuBase);\r\n\r\n RoleMenu.prototype.close = function (event) {\r\n this.onClose(event);\r\n };\r\n\r\n RoleMenu.prototype.closeWithFocus = function (event) {\r\n this.setTabIndex(this.menuAccessor[0], this.menuAccessorTabIndex);\r\n var value = this.onClose(event);\r\n\r\n if (value && typeof value.then === \"function\") {\r\n value.then(\r\n function () {\r\n this.menuAccessor[0].focus();\r\n }.bind(this)\r\n );\r\n } else {\r\n this.menuAccessor[0].focus();\r\n }\r\n };\r\n\r\n RoleMenu.prototype.onAnyFocus = function (event) {\r\n if (this.domSearchHelper.elementContains(this.menuAccessor[0], event.target)) {\r\n this.setTabIndex(this.menuAccessor[0], this.menuAccessorTabIndex);\r\n } else if (!this.domSearchHelper.elementContains(this.menu[0], event.target)) {\r\n this.close(event);\r\n\r\n if (!this.subMenu) {\r\n //Sub menu will be closed so no need to enforce tabindex correction, parents will handle it\r\n this.setTabIndex(this.menuAccessor[0], this.menuAccessorTabIndex);\r\n }\r\n }\r\n };\r\n\r\n RoleMenu.prototype.onKeyUp = function (event) {\r\n var action = this.closeKeyMap[event.keyCode];\r\n\r\n if (action) {\r\n event.stopPropagation();\r\n action(event);\r\n return;\r\n }\r\n\r\n action = this.focusKeyMap[event.keyCode];\r\n\r\n if (action === void 0 && /[a-z]/i.test(event.key)) {\r\n action = this.focusItemByAlphaNumeric.bind(this);\r\n }\r\n\r\n if (action) {\r\n var elements = this.getElements();\r\n\r\n if (elements.length === 0) {\r\n this.close(event);\r\n return;\r\n }\r\n\r\n event.stopPropagation();\r\n action(event, elements);\r\n }\r\n };\r\n\r\n RoleMenu.prototype.configureMenu = function () {\r\n if (!this.configured) {\r\n this.menuAccessor.attr(\"tabindex\", \"-1\");\r\n this.menu.bind(\"keyup\", this.onKeyUp.bind(this));\r\n this.menu.bind(\"keydown\", this.onKeyDown.bind(this));\r\n document.addEventListener(\"focus\", this.onFocusHandler, true);\r\n this.configured = true;\r\n }\r\n };\r\n\r\n RoleMenu.prototype.unconfigureMenu = function () {\r\n if (this.configured) {\r\n this.menu.unbind(\"keyup\");\r\n this.menu.unbind(\"keydown\");\r\n\r\n if (!this.subMenu) {\r\n this.setTabIndex(this.menuAccessor[0], this.menuAccessorTabIndex);\r\n }\r\n document.removeEventListener(\"focus\", this.onFocusHandler, true);\r\n this.configured = false;\r\n }\r\n };\r\n\r\n RoleMenu.prototype.onKeyDown = function (event) {\r\n var action = this.focusKeyMap[event.keyCode];\r\n if (action) {\r\n event.preventDefault();\r\n }\r\n\r\n var tabKeyPressed = event.keyCode === this.accessibilityKeyHelper.keyCodeMap.tab;\r\n if (tabKeyPressed) {\r\n this.close(event);\r\n RoleMenuBase.prototype.onKeyDown.call(this, null, tabKeyPressed);\r\n }\r\n };\r\n\r\n function RoleMenubar(menu, menuAccessor, domSearchHelper, accessibilityKeyHelper) {\r\n RoleMenuBase.call(this, menu, menuAccessor, domSearchHelper, accessibilityKeyHelper);\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.leftArrow] = this.focusPreviousItem.bind(this);\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.rightArrow] = this.focusNextItem.bind(this);\r\n this.resetFakeRovingTabIndexHandler = this.resetFakeRovingTabIndex.bind(this);\r\n }\r\n\r\n helpers.extendClass(RoleMenubar, RoleMenuBase);\r\n\r\n RoleMenubar.prototype.onKeyUp = function (event) {\r\n var action = this.focusKeyMap[event.keyCode];\r\n\r\n if (action === void 0 && /[a-z]/i.test(event.key)) {\r\n action = this.focusItemByAlphaNumeric.bind(this);\r\n }\r\n\r\n if (action) {\r\n event.stopPropagation();\r\n var listElems = this.getElements();\r\n var actionedElem = action(event, listElems);\r\n\r\n if (actionedElem) {\r\n var eventMenuItem = this.findEventMenuItem(listElems, event.target);\r\n\r\n if (actionedElem !== eventMenuItem) {\r\n eventMenuItem.setAttribute(\"tabindex\", \"-1\");\r\n this.setTabIndex(actionedElem, this.menuAccessorTabIndex);\r\n }\r\n }\r\n }\r\n };\r\n\r\n RoleMenubar.prototype.findEventMenuItem = function (listElements, targetElement) {\r\n return listElements.find(\r\n function (elem) {\r\n return this.domSearchHelper.elementContains(elem, targetElement);\r\n }.bind(this)\r\n );\r\n };\r\n\r\n RoleMenubar.prototype.configureMenu = function () {\r\n if (!this.configured) {\r\n this.menuAccessor.bind(\r\n \"focus\",\r\n function () {\r\n document.addEventListener(\"focus\", this.resetFakeRovingTabIndexHandler, true);\r\n }.bind(this)\r\n );\r\n\r\n this.menu.bind(\"keyup\", this.onKeyUp.bind(this));\r\n this.configured = true;\r\n }\r\n };\r\n\r\n RoleMenubar.prototype.resetFakeRovingTabIndex = function (event) {\r\n if (!this.menuOrAccessorContainsElement(event.target)) {\r\n var menuItems = this.getElements();\r\n\r\n menuItems.forEach(\r\n function (menuItem) {\r\n if (menuItem !== this.menuAccessor[0] && menuItem.getAttribute(\"tabindex\") !== \"-1\") {\r\n menuItem.setAttribute(\"tabindex\", \"-1\");\r\n }\r\n }.bind(this)\r\n );\r\n\r\n this.setTabIndex(this.menuAccessor[0], this.menuAccessorTabIndex);\r\n document.removeEventListener(\"focus\", this.resetFakeRovingTabIndexHandler, true);\r\n }\r\n };\r\n\r\n RoleMenubar.prototype.unconfigureMenu = function () {\r\n if (this.configured) {\r\n this.menu.unbind(\"keyup\");\r\n this.menuAccessor.unbind(\"focus\");\r\n document.removeEventListener(\"focus\", this.resetFakeRovingTabIndexHandler, true);\r\n this.configured = false;\r\n }\r\n };\r\n\r\n function RoleMenuBase(menu, menuAccessor, domSearchHelper, accessibilityKeyHelper) {\r\n this.menu = menu;\r\n this.accessibilityKeyHelper = accessibilityKeyHelper;\r\n this.domSearchHelper = domSearchHelper;\r\n this.configured = false;\r\n this.menuAccessor = menuAccessor;\r\n this.menuAccessorTabIndex = this.menuAccessor.attr(\"tabindex\");\r\n this.subMenu = this.menuAccessor.attr(\"role\") === \"menuitem\";\r\n this.focusKeyMap = {};\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.home] = this.focusFirstItem.bind(this);\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.end] = this.focusLastItem.bind(this);\r\n }\r\n\r\n RoleMenuBase.prototype.setTabIndex = function (elem, value) {\r\n if (value) {\r\n elem.setAttribute(\"tabindex\", value);\r\n } else {\r\n elem.removeAttribute(\"tabindex\");\r\n }\r\n };\r\n\r\n RoleMenuBase.prototype.onKeyDown = function (event, keyCodeChecked) {\r\n if (keyCodeChecked || event.keyCode === this.accessibilityKeyHelper.keyCodeMap.tab) {\r\n this.focusAccessor();\r\n }\r\n };\r\n\r\n RoleMenuBase.prototype.menuOrAccessorContainsElement = function (element) {\r\n return this.domSearchHelper.elementContains(this.menu[0], element) || this.domSearchHelper.elementContains(this.menuAccessor[0], element);\r\n };\r\n\r\n RoleMenuBase.prototype.getElements = function () {\r\n var menuItems = Array.prototype.slice.call(this.menu[0].querySelectorAll('[role=\"menuitem\"]'), 0);\r\n var subMenus = this.menu[0].querySelectorAll('[role=\"menu\"]');\r\n\r\n return menuItems.filter(function (menuItem) {\r\n for (var j = 0; j < subMenus.length; j++) {\r\n if (subMenus[j].contains(menuItem)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n });\r\n };\r\n\r\n RoleMenuBase.prototype.focusAccessor = function () {\r\n this.menuAccessor[0].focus();\r\n };\r\n\r\n RoleMenuBase.prototype.focusNextItem = function (event, elements) {\r\n return this.focusElementByIncrementalIndex(elements, event, 1);\r\n };\r\n\r\n RoleMenuBase.prototype.focusPreviousItem = function (event, elements) {\r\n return this.focusElementByIncrementalIndex(elements, event, -1);\r\n };\r\n\r\n RoleMenuBase.prototype.focusElementByIncrementalIndex = function (elements, event, index) {\r\n var visibleElements = elements.filter(\r\n function (element) {\r\n return this.domSearchHelper.elementIsVisible(element);\r\n }.bind(this)\r\n );\r\n\r\n var currentIndex = visibleElements.indexOf(event.target);\r\n\r\n if (currentIndex === -1) {\r\n return this.focusFirstItem(event, visibleElements);\r\n }\r\n\r\n var newIndex = currentIndex + index;\r\n\r\n if (newIndex < 0) {\r\n return this.focusLastItem(null, visibleElements);\r\n } else if (newIndex >= visibleElements.length) {\r\n return this.focusFirstItem(null, visibleElements);\r\n } else {\r\n visibleElements[newIndex].focus();\r\n return visibleElements[newIndex];\r\n }\r\n };\r\n\r\n RoleMenuBase.prototype.focusFirstItem = function (event, elements) {\r\n if (elements === undefined || elements[0] === undefined) {\r\n return;\r\n }\r\n elements[0].focus();\r\n return elements[0];\r\n };\r\n\r\n RoleMenuBase.prototype.focusLastItem = function (event, elements) {\r\n elements[elements.length - 1].focus();\r\n return elements[elements.length - 1];\r\n };\r\n\r\n RoleMenuBase.prototype.focusItemByAlphaNumeric = function (event, elements) {\r\n var currentIndex = elements.indexOf(event.target);\r\n\r\n if (currentIndex === -1) {\r\n currentIndex = 0;\r\n }\r\n\r\n var regex = new RegExp(\"^[^a-z]*\" + event.key, \"i\");\r\n\r\n for (var i = currentIndex + 1, l = elements.length; i < l; i++) {\r\n if (regex.test(elements[i].textContent)) {\r\n elements[i].focus();\r\n return elements[i];\r\n }\r\n }\r\n\r\n if (currentIndex !== 0) {\r\n for (var i = 0; i < currentIndex; i++) {\r\n if (regex.test(elements[i].textContent)) {\r\n elements[i].focus();\r\n return elements[i];\r\n }\r\n }\r\n }\r\n };\r\n\r\n return new A11yMenuFactory(domSearchHelper, accessibilityKeyEventHelper);\r\n}\r\n","/**\r\n * @typedef AbortablePromiseLike\r\n * @template T\r\n * @template R\r\n * @property { (onResolve: (value: T) => R, onReject: (error: unknown) => R) => AbortablePromiseLike } then\r\n * @property { (onReject: (error: unknown) => R) => AbortablePromiseLike } catch\r\n * @property { (onComplete: () => void) => AbortablePromiseLike } finally\r\n * @property { () => void } [abort]\r\n */\r\n\r\nexport class AbortablePromiseChain {\r\n constructor(promise, aborter) {\r\n this._promise = promise;\r\n this._aborter = aborter;\r\n }\r\n\r\n then(resolve, reject) {\r\n const onResolve = typeof resolve === \"function\" ? (data) => this._onCompletion(resolve, data) : null;\r\n const onReject = typeof reject === \"function\" ? (rejection) => this._onCompletion(reject, rejection) : null;\r\n\r\n return new AbortablePromiseChain(this._promise.then(onResolve, onReject), this._aborter);\r\n }\r\n\r\n catch(reject) {\r\n return new AbortablePromiseChain(\r\n this._promise.catch((rejection) => this._onCompletion(reject, rejection)),\r\n this._aborter\r\n );\r\n }\r\n\r\n finally(resolve) {\r\n return new AbortablePromiseChain(\r\n this._promise.finally((data) => this._onCompletion(resolve, data)),\r\n this._aborter\r\n );\r\n }\r\n\r\n abort() {\r\n this._aborter.abort();\r\n }\r\n\r\n _onCompletion(callback, data) {\r\n if (this._aborter.isAborted()) {\r\n return;\r\n }\r\n\r\n return callback(data);\r\n }\r\n}\r\n","export class AbortablePromiseSet {\r\n constructor() {\r\n this._promises = [];\r\n }\r\n\r\n add(abortablePromise) {\r\n this._promises.push(abortablePromise);\r\n\r\n abortablePromise.finally(() => {\r\n const index = this._promises.indexOf(abortablePromise);\r\n if (index !== -1) {\r\n this._promises.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n abortAll() {\r\n for (let abortablePromise of this._promises) {\r\n if (abortablePromise.abort !== undefined) {\r\n abortablePromise.abort();\r\n }\r\n }\r\n\r\n this._promises.length = 0;\r\n }\r\n}\r\n","export class PromiseAbortController {\r\n constructor() {\r\n this._isAborted = false;\r\n }\r\n\r\n abort() {\r\n this._isAborted = true;\r\n }\r\n\r\n isAborted() {\r\n return this._isAborted;\r\n }\r\n}\r\n","import { AbortablePromiseChain } from \"./AbortablePromiseChain\";\r\nimport { PromiseAbortController } from \"./PromiseAbortController\";\r\n\r\n/**\r\n * @param {Promise>} promise\r\n * @return {AbortablePromiseChain}\r\n */\r\nexport function makeAbortable(promise) {\r\n return new AbortablePromiseChain(promise, new PromiseAbortController());\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { Shortcuts } from \"keysy-peasy\";\r\n\r\nclass AccessKeyService {\r\n constructor($timeout) {\r\n this._$timeout = $timeout;\r\n this._shortcuts = new Shortcuts(window);\r\n this._pausedShortcuts = null;\r\n }\r\n\r\n register(contextId, keys) {\r\n const keysCloned = keys.map((shortcut) => {\r\n const shortcutClone = { ...shortcut };\r\n\r\n shortcutClone.callback = (...callbackArgs) => {\r\n // using $timeout here to make sure that the digest cycle is triggered\r\n this._$timeout(() => {\r\n shortcut.callback(...callbackArgs);\r\n });\r\n };\r\n\r\n return shortcutClone;\r\n });\r\n\r\n return this._shortcuts.register(contextId, keysCloned);\r\n }\r\n\r\n getHandlers(...args) {\r\n return this._shortcuts.getHandlers(...args);\r\n }\r\n\r\n remove(...args) {\r\n if (this._pausedShortcuts !== null) {\r\n for (const contextId of args) {\r\n if (this._pausedShortcuts[contextId] !== undefined) {\r\n delete this._pausedShortcuts[contextId];\r\n }\r\n }\r\n }\r\n\r\n return this._shortcuts.remove(...args);\r\n }\r\n\r\n pauseHandlers() {\r\n if (this._pausedShortcuts !== null) {\r\n return;\r\n }\r\n\r\n const allShortcuts = this._shortcuts.getHandlers();\r\n const shortcutsByContext = {};\r\n\r\n Object.values(allShortcuts).forEach((shortcut) => {\r\n const contextsShortcuts = shortcutsByContext[shortcut.contextId] === undefined ? [] : shortcutsByContext[shortcut.contextId];\r\n contextsShortcuts.push(shortcut);\r\n shortcutsByContext[shortcut.contextId] = contextsShortcuts;\r\n this._shortcuts.remove(shortcut.contextId);\r\n });\r\n\r\n this._pausedShortcuts = shortcutsByContext;\r\n }\r\n\r\n resumeHandlers() {\r\n if (this._pausedShortcuts === null) {\r\n return;\r\n }\r\n\r\n Object.keys(this._pausedShortcuts).forEach((contextId) => {\r\n this._shortcuts.register(contextId, this._pausedShortcuts[contextId]);\r\n });\r\n\r\n this._pausedShortcuts = null;\r\n }\r\n}\r\n\r\nAccessKeyService.$inject = [\"$timeout\"];\r\nangularAMD.service(\"accessKeyService\", AccessKeyService);\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { MAP_TO_STANDARDS_CONSTANTS } from \"../../constants/mapToStandards.constants\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../titledTextEditor/titledTextEditor.component\";\r\nimport \"../../persistentCompactRichTextEditor/peristentCompactRichTextEditor.component\";\r\nimport template from \"./evidence-justification.html\";\r\n\r\nclass EvidenceJustification extends NgComponent {\r\n constructor(multiLanguageService) {\r\n super();\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n this.richTextAutoFocus = true;\r\n this.MAP_TO_STANDARDS_CONSTANTS = MAP_TO_STANDARDS_CONSTANTS;\r\n this.singleJustification = \"\";\r\n this.updateJustification = this._updateJustification.bind(this);\r\n this.richTextClassName = \"evidence-justification__justification\";\r\n this.richTextEditorDataHook = \"justification-single-textbox\";\r\n this.justificationLabel = this.multiLanguageService.getString(\"labels.evidence.evidence_justification_editor\");\r\n }\r\n\r\n updateTitledJustification(justification, evidence) {\r\n this.onJustificationChange({\r\n evidenceId: evidence.EvidenceId,\r\n assetRefId: evidence.AssetRefId,\r\n capabilityId: evidence.CapabilityId,\r\n pageId: evidence.PageId,\r\n justification: justification\r\n });\r\n }\r\n\r\n _updateJustification(justification) {\r\n this.singleJustification = justification;\r\n\r\n this.onJustificationChange({\r\n justification: justification\r\n });\r\n }\r\n}\r\n\r\nexport const evidenceJustificationDefinition = {\r\n bindings: {\r\n evidence: \"<\",\r\n justificationMode: \"<\",\r\n onJustificationModeChange: \"&\",\r\n justifyAllText: \"<\",\r\n onJustificationChange: \"&\"\r\n },\r\n template: template,\r\n controller: EvidenceJustification\r\n};\r\n\r\nEvidenceJustification.$inject = [\"multiLanguageService\"];\r\nangularAMD.component(\"evidenceJustification\", evidenceJustificationDefinition);\r\n","export default `
1\" data-hook=\"evidence-justification-methods\">
`;","import { ButtonClass, DialogSize, launchDialog } from \"@pjs/core-ui\";\r\n\r\nexport const launchDeleteDialog = (multiLanguageService, onConfirm, numItems, hasLinkedAssets, cachedTrigger) => {\r\n let dialogTitle;\r\n let dialogDescription = multiLanguageService.getString(\"asset_store.confirmations.dialogs.delete_description\", { count: numItems });\r\n\r\n if (hasLinkedAssets) {\r\n let linkedWarning = multiLanguageService.getString(\"asset_store.confirmations.item_warning\", { count: numItems });\r\n dialogDescription = `${linkedWarning}

${dialogDescription}`;\r\n dialogTitle = multiLanguageService.getString(\"asset_store.confirmations.dialogs.delete_linked_title\", { count: numItems });\r\n } else {\r\n dialogTitle = multiLanguageService.getString(\"asset_store.confirmations.dialogs.delete_title\", { count: numItems });\r\n }\r\n\r\n const config = {\r\n size: DialogSize.Small,\r\n initialModel: { htmlContent: dialogDescription },\r\n dismissAction: (_model, instance) => {\r\n instance.close(cachedTrigger);\r\n },\r\n component: () => import(\"@pjs/core-ui\").then((module) => module.SimpleHtmlDialogContent),\r\n title: dialogTitle,\r\n actions: [\r\n {\r\n label: multiLanguageService.getString(\"buttons.cancel\"),\r\n ariaLabel: multiLanguageService.getString(\"buttons.cancel\"),\r\n buttonClass: ButtonClass.Outlined,\r\n dataHook: \"modal-cancel-button\",\r\n disabled: () => false,\r\n action: (_model, instance) => {\r\n instance.close(cachedTrigger);\r\n }\r\n },\r\n {\r\n label: multiLanguageService.getString(\"asset_store.confirmations.dialogs.delete\"),\r\n ariaLabel: multiLanguageService.getString(\"asset_store.confirmations.dialogs.delete\"),\r\n buttonClass: ButtonClass.Contained,\r\n dataHook: \"asset-action-modal-confirm\",\r\n disabled: () => false,\r\n action: (_model, instance) => {\r\n instance.close();\r\n onConfirm(instance);\r\n }\r\n }\r\n ]\r\n };\r\n\r\n launchDialog(config);\r\n};\r\n","import { ButtonClass, DialogSize, launchDialog } from \"@pjs/core-ui\";\r\n\r\nexport const launchPurgeDialog = (multiLanguageService, onConfirm, numItems, hasLinkedAssets, cachedTrigger) => {\r\n let dialogTitle;\r\n let dialogDescription;\r\n\r\n if (hasLinkedAssets) {\r\n dialogDescription = multiLanguageService.getString(\"asset_store.confirmations.dialogs.purge_linked_description\", { count: numItems });\r\n dialogTitle = multiLanguageService.getString(\"asset_store.confirmations.dialogs.purge_linked_title\", { count: numItems });\r\n } else {\r\n dialogTitle = multiLanguageService.getString(\"asset_store.confirmations.dialogs.purge_title\", { count: numItems });\r\n dialogDescription = multiLanguageService.getString(\"asset_store.confirmations.dialogs.purge_description\", { count: numItems });\r\n }\r\n\r\n const config = {\r\n size: DialogSize.Small,\r\n initialModel: { htmlContent: dialogDescription },\r\n dismissAction: (_model, instance) => {\r\n instance.close(cachedTrigger);\r\n },\r\n component: () => import(\"@pjs/core-ui\").then((module) => module.SimpleHtmlDialogContent),\r\n title: dialogTitle,\r\n actions: [\r\n {\r\n label: multiLanguageService.getString(\"buttons.cancel\"),\r\n ariaLabel: multiLanguageService.getString(\"buttons.cancel\"),\r\n buttonClass: ButtonClass.Outlined,\r\n dataHook: \"modal-cancel-button\",\r\n disabled: () => false,\r\n action: (_model, instance) => {\r\n instance.close(cachedTrigger);\r\n }\r\n },\r\n {\r\n label: multiLanguageService.getString(\"asset_store.confirmations.dialogs.delete_permanently\"),\r\n ariaLabel: multiLanguageService.getString(\"asset_store.confirmations.dialogs.delete_permanently\"),\r\n buttonClass: ButtonClass.Contained,\r\n dataHook: \"asset-action-modal-confirm\",\r\n disabled: () => false,\r\n action: (_model, instance) => {\r\n instance.close();\r\n onConfirm(instance);\r\n }\r\n }\r\n ]\r\n };\r\n\r\n launchDialog(config);\r\n};\r\n","import { ButtonClass, DialogSize, launchDialog } from \"@pjs/core-ui\";\r\n\r\nexport const launchRestoreDialog = (multiLanguageService, onConfirm, numItems, cachedTrigger) => {\r\n const dialogTitle = multiLanguageService.getString(\"asset_store.confirmations.dialogs.restore_title\", { count: numItems });\r\n const dialogDescription = multiLanguageService.getString(\"asset_store.confirmations.dialogs.restore_description\", { count: numItems });\r\n\r\n const config = {\r\n size: DialogSize.Small,\r\n initialModel: { htmlContent: dialogDescription },\r\n dismissAction: (_model, instance) => {\r\n instance.close(cachedTrigger);\r\n },\r\n component: () => import(\"@pjs/core-ui\").then((module) => module.SimpleHtmlDialogContent),\r\n title: dialogTitle,\r\n actions: [\r\n {\r\n label: multiLanguageService.getString(\"buttons.cancel\"),\r\n ariaLabel: multiLanguageService.getString(\"buttons.cancel\"),\r\n buttonClass: ButtonClass.Outlined,\r\n dataHook: \"modal-cancel-button\",\r\n disabled: () => false,\r\n action: (_model, instance) => {\r\n instance.close(cachedTrigger);\r\n }\r\n },\r\n {\r\n label: multiLanguageService.getString(\"asset_store.confirmations.dialogs.restore\"),\r\n ariaLabel: multiLanguageService.getString(\"asset_store.confirmations.dialogs.restore\"),\r\n buttonClass: ButtonClass.Contained,\r\n dataHook: \"asset-action-modal-confirm\",\r\n disabled: () => false,\r\n action: (_model, instance) => {\r\n instance.close();\r\n onConfirm(instance);\r\n }\r\n }\r\n ]\r\n };\r\n\r\n launchDialog(config);\r\n};\r\n","export class AssetContext {\r\n constructor(assetId, timeslice = \"0\", submissionId = \"\") {\r\n this.assetId = assetId;\r\n this.timeslice = timeslice;\r\n this.submissionId = submissionId;\r\n }\r\n\r\n cloneForLinkedAsset(assetId) {\r\n return new AssetContext(assetId, this.timeslice, this.submissionId);\r\n }\r\n}\r\n","\"use strict\";\r\nimport { ASSESSMENT_CONSTANTS } from \"../constants/assessment.constants\"; // todo: check if any problem with this?. If so where should that feedbacktype logic go?\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/urlService\";\r\n\r\nangularAMD.provider(\"AssetEndpointService\", AssetEndpointServiceProvider);\r\nfunction AssetEndpointServiceProvider() {\r\n this.endPoints = null;\r\n this.extraParams = null;\r\n\r\n this.setEndPoints = function (endPoints) {\r\n this.endPoints = endPoints;\r\n }.bind(this);\r\n\r\n this.setExtraParameters = function (params) {\r\n this.extraParams = params;\r\n }.bind(this);\r\n\r\n this.$get = [\r\n \"$http\",\r\n \"$routeParams\",\r\n \"$route\",\r\n \"urlService\",\r\n function ($http, $routeParams, $route, urlService) {\r\n return new AssetEndpointService($http, $routeParams, $route, urlService, this.endPoints, this.extraParams);\r\n }.bind(this)\r\n ];\r\n}\r\n\r\nfunction AssetEndpointService($http, $routeParams, $route, urlService, endPoints, extraParams) {\r\n this.httpRequester = $http;\r\n this.$route = $route;\r\n this.$routeParams = $routeParams;\r\n this.endPoints = endPoints;\r\n this.extraParams = extraParams;\r\n this.urlService = urlService;\r\n}\r\n\r\n/***\r\n * Check permission for an asset\r\n * @param {Object} params\r\n * @returns {Promise}\r\n */\r\nAssetEndpointService.prototype.doIHavePermission = function (params) {\r\n params = this.mapExtraParameters(params);\r\n return this.httpRequester.post(this.endPoints.doIHavePermission, null, { params: params }).then(function (response) {\r\n return response.data;\r\n });\r\n};\r\n\r\n/***\r\n * Check the permission for a submission and the current user\r\n * @param {Object} params\r\n * @returns {Promise}\r\n */\r\nAssetEndpointService.prototype.checkSubmissionPermission = function (params) {\r\n return this.httpRequester\r\n .get(this.replaceRouteValuesWithParams(this.endPoints.checkSubmissionPermission, this.mapExtraParameters(params)), null)\r\n .then(function (response) {\r\n return response.data;\r\n });\r\n};\r\n\r\n/***\r\n * Get file stream link\r\n * @param {Object} params\r\n * @returns {Promise} - Resolves with {Object}\r\n */\r\nAssetEndpointService.prototype.getDirectStreamLink = function (params) {\r\n params = this.mapExtraParameters(params);\r\n return this.httpRequester.get(this.endPoints.getDirectStreamLink, { params: params }).then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\n/***\r\n * Get media stream information\r\n * @param {Object} params\r\n * @returns {Promise}\r\n */\r\nAssetEndpointService.prototype.transmitImage = function (params) {\r\n return this.httpRequester.get(this.endPoints.transmitImage, { params: params }).then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\n/***\r\n * @param {Object} params\r\n * @returns {string}\r\n */\r\nAssetEndpointService.prototype.transmitImageUrl = function (params) {\r\n params = this.mapExtraParameters(params);\r\n\r\n const keys = Object.keys(params);\r\n const paramArray = [];\r\n\r\n for (let i = 0; i < keys.length; i++) {\r\n const key = keys[i];\r\n if (key !== void 0 && params[key] !== void 0) {\r\n paramArray.push({ key: key, value: params[key] });\r\n }\r\n }\r\n\r\n return this.urlService.addParameters(this.endPoints.transmitImage, paramArray);\r\n};\r\n\r\n/***\r\n * @param {Object} params\r\n * @returns {string}\r\n */\r\nAssetEndpointService.prototype.getFeedback = function (params) {\r\n return this.httpRequester.get(this.replaceRouteValuesWithParams(this.endPoints.feedback, this.mapExtraParameters(params)), null).then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getSingleFeedback = function (params) {\r\n return this.httpRequester\r\n .get(this.replaceRouteValuesWithParams(this.endPoints.feedbackWithId, this.mapExtraParameters(params)), null)\r\n .then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.saveMultipleFeedback = function (params, feedback) {\r\n return this.httpRequester\r\n .put(this.replaceRouteValuesWithParams(this.endPoints.feedbackWithType, this.mapExtraParameters(params)), feedback)\r\n .then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.addFeedback = function (params, feedback) {\r\n if (\r\n params.feedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL_LEVEL_ONE ||\r\n params.feedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL_LEVEL_TWO ||\r\n params.feedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL_LEVEL_THREE\r\n ) {\r\n params.feedbackType = ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL;\r\n }\r\n return this.httpRequester\r\n .post(this.replaceRouteValuesWithParams(this.endPoints.feedbackWithType, this.mapExtraParameters(params)), feedback)\r\n .then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.editFeedback = function (params, feedback) {\r\n return this.httpRequester\r\n .patch(this.replaceRouteValuesWithParams(this.endPoints.feedbackWithType, this.mapExtraParameters(params)), feedback)\r\n .then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.deleteFeedback = function (params) {\r\n return this.httpRequester\r\n .delete(this.replaceRouteValuesWithParams(this.endPoints.feedbackWithId, this.mapExtraParameters(params)), null)\r\n .then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getAssessorPage = function (params) {\r\n return this.httpRequester\r\n .get(this.replaceRouteValuesWithParams(this.endPoints.assessorPage, this.mapExtraParameters(params)), null)\r\n .then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getAnswerHistory = function (params) {\r\n return this.httpRequester\r\n .get(this.replaceRouteValuesWithParams(this.endPoints.getAnswerHistory, this.mapExtraParameters(params)), null)\r\n .then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\n/***\r\n * @returns {string}\r\n */\r\nAssetEndpointService.prototype.getFeedbackTemplates = function () {\r\n return this.httpRequester\r\n .get(this.replaceRouteValuesWithParams(this.endPoints.feedbackTemplate, this.mapExtraParameters([])), null)\r\n .then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getMappingDetails = function (assetId, submissionId, timeslice) {\r\n const params = {\r\n assetId: assetId,\r\n submissionId: submissionId,\r\n timeslice: timeslice !== undefined ? timeslice : 0\r\n };\r\n\r\n return this.httpRequester\r\n .get(this.replaceRouteValuesWithParams(this.endPoints.getMappingDetails, this.mapExtraParameters(params)), null)\r\n .then((response) => {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getApprovalOptions = function (params) {\r\n return this.httpRequester\r\n .get(this.replaceRouteValuesWithParams(this.endPoints.approvalStatusTexts, this.mapExtraParameters(params)), null)\r\n .then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getApprovalLevelSettings = function () {\r\n return this.httpRequester\r\n .get(this.replaceRouteValuesWithParams(this.endPoints.approvalSettings, this.mapExtraParameters([])), null)\r\n .then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.saveApproval = function (params, feedback) {\r\n return this.httpRequester\r\n .post(this.replaceRouteValuesWithParams(this.endPoints.feedbackWithType, this.mapExtraParameters(params)), feedback)\r\n .then((response) => {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getPageVerificationSetting = function (params) {\r\n return this.httpRequester\r\n .get(this.replaceRouteValuesWithParams(this.endPoints.getPageVerificationSetting, this.mapExtraParameters(params)))\r\n .then((response) => {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getStandardsOverviewData = function (assetId, pageId, submissionId, timeslice, filters) {\r\n return this.httpRequester.post(\r\n this.replaceRouteValuesWithParams(this.endPoints.getStandardsOverviewData, {\r\n assetId: assetId,\r\n pageId: pageId,\r\n submissionId: submissionId,\r\n timeslice: timeslice\r\n }),\r\n filters\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.removeMapping = function (data) {\r\n return this.httpRequester.delete(this.replaceRouteValuesWithParams(this.endPoints.removeMapping, this.mapExtraParameters(data)), null).then((response) => {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getAssessmentOverview = function (assetId, pageId, submissionId, timeslice, filters) {\r\n return this.httpRequester.post(\r\n this.replaceRouteValuesWithParams(this.endPoints.getAssessmentOverview, {\r\n assetId: assetId,\r\n pageId: pageId,\r\n submissionId: submissionId,\r\n timeslice: timeslice\r\n }),\r\n filters\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.getStandardsPageOverviews = function (assetId, pageId, submissionId, timeslice, filters) {\r\n return this.httpRequester.post(\r\n this.replaceRouteValuesWithParams(this.endPoints.getStandardsPageOverviews, {\r\n assetId: assetId,\r\n pageId: pageId,\r\n submissionId: submissionId,\r\n timeslice: timeslice\r\n }),\r\n filters\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.getStandardsElementsData = function (assetId, responseId, submissionId, timeslice, filters) {\r\n return this.httpRequester.post(\r\n this.replaceRouteValuesWithParams(this.endPoints.getStandardsElementsData, {\r\n assetId: assetId,\r\n responseId: responseId,\r\n submissionId: submissionId,\r\n timeslice: timeslice\r\n }),\r\n filters\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.getCreatorPermission = function (permission, assetId) {\r\n return this.httpRequester.get(this.replaceRouteValuesWithParams(this.endPoints.getCreatorPermission, { permission: permission, assetId: assetId }), null);\r\n};\r\n\r\nAssetEndpointService.prototype.getCurrentProgress = function (assetId, submissionId, timeslice) {\r\n return this.httpRequester\r\n .get(this.replaceRouteValuesWithParams(this.endPoints.getCurrentProgress, { assetId: assetId, submissionId: submissionId, timeslice: timeslice }), null)\r\n .then((response) => {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.isAsset = function (assetId, mainType) {\r\n return this.httpRequester\r\n .get(this.replaceRouteValuesWithParams(this.endPoints.isAsset, { assetId: assetId, mainType: mainType }), null)\r\n .then((response) => {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getAssetWithAvailableActions = function (assetId) {\r\n return this.httpRequester\r\n .get(this.replaceRouteValuesWithParams(this.endPoints.getAssetWithAvailableActions, { assetId: assetId }), null)\r\n .then((response) => {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getWorkflowState = function (assetId, templateId, submissionId) {\r\n return this.httpRequester\r\n .get(this.replaceRouteValuesWithParams(this.endPoints.getWorkflowState, { assetId: assetId, templateId: templateId, submissionId: submissionId }), null)\r\n .then((response) => {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.updateWorkflowState = function (assetId, templateId, target, actionType, submissionId) {\r\n return this.httpRequester\r\n .get(\r\n this.replaceRouteValuesWithParams(this.endPoints.updateWorkflowState, {\r\n assetId: assetId,\r\n templateId: templateId,\r\n target: target,\r\n actionType: actionType,\r\n submissionId: submissionId\r\n }),\r\n null\r\n )\r\n .then((response) => {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.addWorkflowAdditionalInfo = function (assetId, postData, submissionId) {\r\n return this.httpRequester.post(\r\n this.replaceRouteValuesWithParams(this.endPoints.addWorkflowAdditionalInfo, { assetId: assetId, submissionId: submissionId }),\r\n postData\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.removeWorkflowAdditionalInfo = function (assetId, postData, submissionId) {\r\n return this.httpRequester.post(\r\n this.replaceRouteValuesWithParams(this.endPoints.removeWorkflowAdditionalInfo, { assetId: assetId, submissionId: submissionId }),\r\n postData\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.getComment = function (assetId, commentId, submissionId) {\r\n return this.httpRequester.get(\r\n this.replaceRouteValuesWithParams(this.endPoints.getComment, { assetId: assetId, commentId: commentId, submissionId: submissionId }),\r\n null\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.getComments = function (assetId, submissionId, answerId) {\r\n return this.httpRequester.get(\r\n this.replaceRouteValuesWithParams(this.endPoints.getComments, { assetId: assetId, submissionId: submissionId, answerId: answerId }),\r\n null\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.addNewOrUpdateComment = function (saveCommentRequest, submissionId) {\r\n return this.httpRequester.post(this.replaceRouteValuesWithParams(this.endPoints.addNewOrUpdateComment, { submissionId: submissionId }), saveCommentRequest);\r\n};\r\n\r\nAssetEndpointService.prototype.deleteComment = function (assetId, submissionId, commentId) {\r\n return this.httpRequester.delete(\r\n this.replaceRouteValuesWithParams(this.endPoints.deleteComment, { assetId: assetId, submissionId: submissionId, commentId: commentId }),\r\n null\r\n );\r\n};\r\n\r\n/***\r\n * @returns {Object}\r\n */\r\nAssetEndpointService.prototype.getLoggedInUserData = function (submissionId, timeslice) {\r\n const params = {\r\n submissionId: submissionId,\r\n timeslice: timeslice !== undefined ? timeslice : 0\r\n };\r\n\r\n const url =\r\n this.endPoints.getLoggedInUserData.indexOf(\"submissionId\") > -1\r\n ? this.replaceRouteValuesWithParams(this.endPoints.getLoggedInUserData, this.mapExtraParameters(params))\r\n : this.endPoints.getLoggedInUserData;\r\n this.httpRequester.defaults.withCredentials = true;\r\n return this.httpRequester.get(url, null).then(function (response) {\r\n return response.data && response.data.UserId ? response.data : null;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getSharedMenuLoggedInUserData = function () {\r\n return this.httpRequester.get(this.endPoints.getSharedMenuLoggedInUserData).then(function (response) {\r\n return response.data;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getEditStatusForAssets = function (assetIds) {\r\n const params = this.mapExtraParameters({});\r\n return this.httpRequester.post(this.endPoints.getEditStatusForAssets, assetIds, { params: params }).then(function (response) {\r\n return response;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.getAssetAndCheckPermission = function (params) {\r\n params = this.mapExtraParameters(params);\r\n return this.httpRequester.get(this.endPoints.getAssetAndCheckPermission, { params: params });\r\n};\r\n\r\nAssetEndpointService.prototype.getBuilder = function (params) {\r\n params = this.mapExtraParameters(params);\r\n return this.httpRequester.get(this.endPoints.getBuilder, { params: params });\r\n};\r\n\r\nAssetEndpointService.prototype.getPublicAssetReference = function (id) {\r\n const params = this.mapExtraParameters({ assetId: id });\r\n return this.httpRequester.get(this.endPoints.getPublicAssetReference, { params: params });\r\n};\r\n\r\nAssetEndpointService.prototype.createFeedbackTemplateResponse = function (params) {\r\n return this.httpRequester.post(this.replaceRouteValuesWithParams(this.endPoints.feedbackTemplateWithId, this.mapExtraParameters(params)), null);\r\n};\r\n\r\nAssetEndpointService.prototype.saveOrUpdate = function (params) {\r\n params = this.mapExtraParameters(params);\r\n return this.httpRequester.post(this.endPoints.saveOrUpdate, params);\r\n};\r\n\r\nAssetEndpointService.prototype.movePortfolioPage = function (assetId, pageMoveData) {\r\n const route = this.replaceRouteValuesWithParams(this.endPoints.movePortfolioPage, { assetId: assetId, pageId: pageMoveData.Id });\r\n return this.httpRequester.post(route, pageMoveData);\r\n};\r\n\r\nAssetEndpointService.prototype.getUploadUrl = function () {\r\n return this.replaceRouteValuesWithParams(this.endPoints.upload, this.mapExtraParameters({}));\r\n};\r\n\r\nAssetEndpointService.prototype.saveUpload = function (data, params) {\r\n const url = this.replaceRouteValuesWithParams(this.endPoints.saveUpload, this.mapExtraParameters(params));\r\n return this.httpRequester.post(url, data);\r\n};\r\n\r\nAssetEndpointService.prototype.addNewOrUpdateReplyToFeedback = function (params, reply) {\r\n return this.httpRequester.post(this.replaceRouteValuesWithParams(this.endPoints.feedbackReply, this.mapExtraParameters(params)), reply);\r\n};\r\n\r\nAssetEndpointService.prototype.deleteReplyToFeedback = function (params) {\r\n return this.httpRequester.delete(this.replaceRouteValuesWithParams(this.endPoints.feedbackReplyWithId, this.mapExtraParameters(params)), null);\r\n};\r\n\r\nAssetEndpointService.prototype.getReplyToFeedback = function (params) {\r\n return this.httpRequester.get(this.replaceRouteValuesWithParams(this.endPoints.feedbackReplyWithId, this.mapExtraParameters(params)), null);\r\n};\r\n\r\nAssetEndpointService.prototype.convertAssetIdsToBlogPostViewModels = function (params) {\r\n return this.httpRequester.post(\r\n this.replaceRouteValuesWithParams(this.endPoints.convertAssetIdsToBlogPostViewModels, this.mapExtraParameters(params)),\r\n params\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.getElementDetails = function (assetId, elementId, timeslice) {\r\n return this.httpRequester.get(\r\n this.replaceRouteValuesWithParams(\r\n this.endPoints.getElementDetails,\r\n this.mapExtraParameters({ assetId: assetId, elementId: elementId, timeslice: timeslice !== \"\" ? timeslice : 0 })\r\n )\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.addEvidenceMapFromResponse = function (params) {\r\n return this.httpRequester.put(this.replaceRouteValuesWithParams(this.endPoints.addEvidenceMapFromResponse, this.mapExtraParameters(params)), params);\r\n};\r\n\r\nAssetEndpointService.prototype.addTextOnlyEvidence = function (params) {\r\n return this.httpRequester.post(this.replaceRouteValuesWithParams(this.endPoints.addTextOnlyEvidence, this.mapExtraParameters(params)), params);\r\n};\r\n\r\nAssetEndpointService.prototype.removeEvidenceMapFromResponse = function (data) {\r\n return this.httpRequester({\r\n method: \"DELETE\",\r\n url: this.endPoints.removeEvidenceMapFromResponse,\r\n data: data,\r\n headers: { \"Content-type\": \"application/json\" }\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.updateEvidenceJustificationFromResponse = function (data) {\r\n return this.httpRequester.post(this.endPoints.updateEvidenceJustificationFromResponse, data);\r\n};\r\n\r\nAssetEndpointService.prototype.getImageAltText = function (assetId) {\r\n return this.httpRequester.get(this.replaceRouteValuesWithParams(this.endPoints.getImageAltText, { assetId: assetId }));\r\n};\r\n\r\nAssetEndpointService.prototype.grantEmbeddedConsent = function () {\r\n return this.httpRequester.put(this.endPoints.consentToEmbeddedContent);\r\n};\r\n\r\nAssetEndpointService.prototype.revokeEmbeddedConsent = function () {\r\n return this.httpRequester.delete(this.endPoints.consentToEmbeddedContent);\r\n};\r\n\r\nAssetEndpointService.prototype.getFeaturesState = function () {\r\n return this.httpRequester.get(this.endPoints.getFeaturesEnabled);\r\n};\r\n\r\nAssetEndpointService.prototype.createDataFilter = function (assetId, filter) {\r\n return this.httpRequester.post(this.replaceRouteValuesWithParams(this.endPoints.createDataFilter, this.mapExtraParameters({ assetId: assetId })), filter);\r\n};\r\n\r\nAssetEndpointService.prototype.updateDataFilter = function (assetId, filterData) {\r\n return this.httpRequester.put(\r\n this.replaceRouteValuesWithParams(this.endPoints.updateDataFilter, this.mapExtraParameters({ assetId: assetId })),\r\n filterData\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.removeDataFilter = function (assetId, filterId) {\r\n return this.httpRequester.delete(\r\n this.replaceRouteValuesWithParams(this.endPoints.removeDataFilter, this.mapExtraParameters({ assetId: assetId, filterId: filterId }))\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.getDataFilter = function (assetId) {\r\n return this.httpRequester.get(this.replaceRouteValuesWithParams(this.endPoints.getDataFilter, this.mapExtraParameters({ assetId: assetId })));\r\n};\r\n\r\nAssetEndpointService.prototype.procureWorkbookResponsePage = function (data, params) {\r\n const url = this.replaceRouteValuesWithParams(this.endPoints.procureWorkbookResponsePage, this.mapExtraParameters(params));\r\n return this.httpRequester.post(url, data).then((response) => response.data);\r\n};\r\n\r\nAssetEndpointService.prototype.updateWorkbookResponsePage = function (assetId, pageId, pageUpdate) {\r\n const url = this.replaceRouteValuesWithParams(this.endPoints.modifyWorkbookResponsePage, this.mapExtraParameters({ assetId: assetId, pageId: pageId }));\r\n return this.httpRequester.put(url, pageUpdate).then((response) => response.data);\r\n};\r\n\r\nAssetEndpointService.prototype.removeWorkbookResponsePage = function (assetId, pageId) {\r\n return this.httpRequester.delete(\r\n this.replaceRouteValuesWithParams(this.endPoints.modifyWorkbookResponsePage, this.mapExtraParameters({ assetId: assetId, pageId: pageId }))\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.updatePortfolioPage = function (assetId, pageId, pageUpdate) {\r\n const url = this.replaceRouteValuesWithParams(this.endPoints.modifyPortfolioPage, this.mapExtraParameters({ assetId: assetId, pageId: pageId }));\r\n return this.httpRequester.put(url, pageUpdate).then((response) => response.data);\r\n};\r\n\r\nAssetEndpointService.prototype.removePortfolioPage = function (assetId, pageId) {\r\n return this.httpRequester.delete(\r\n this.replaceRouteValuesWithParams(this.endPoints.modifyPortfolioPage, this.mapExtraParameters({ assetId: assetId, pageId: pageId }))\r\n );\r\n};\r\n\r\nAssetEndpointService.prototype.convertPortfolioPage = function (assetId, pageId) {\r\n return this.httpRequester\r\n .post(this.replaceRouteValuesWithParams(this.endPoints.convertPortfolioPage, this.mapExtraParameters({ assetId: assetId, pageId: pageId })))\r\n .then((response) => {\r\n return response.data;\r\n });\r\n};\r\n\r\nAssetEndpointService.prototype.updateUserSettings = function (settings) {\r\n return this.httpRequester.post(this.endPoints.updateUserSettings, settings);\r\n};\r\n\r\nAssetEndpointService.prototype.getUserSettings = function () {\r\n return this.httpRequester.get(this.endPoints.getUserSettings);\r\n};\r\n\r\nAssetEndpointService.prototype.isLockedByAnother = function (assetId) {\r\n return this.httpRequester.get(this.replaceRouteValuesWithParams(this.endPoints.isLockedByAnother, { assetId: assetId }));\r\n};\r\n\r\nAssetEndpointService.prototype.getBasicDetails = function (assetId) {\r\n return this.httpRequester.get(this.replaceRouteValuesWithParams(this.endPoints.getBasicDetails, { assetId: assetId }));\r\n};\r\n\r\nAssetEndpointService.prototype.exportToPdfUrl = function (assetId) {\r\n return this.replaceRouteValuesWithParams(this.endPoints.exportToPdf, this.mapExtraParameters({ assetId: assetId }));\r\n};\r\n\r\n/***\r\n * Adds additional parameters to a query string as defined in app.js\r\n * @param {Object} params\r\n * @returns {Object} params\r\n */\r\nAssetEndpointService.prototype.mapExtraParameters = function (params) {\r\n if (!this.extraParams) {\r\n return params;\r\n }\r\n\r\n const keys = Object.keys(this.extraParams);\r\n for (let k = 0; k < keys.length; k++) {\r\n const key = keys[k];\r\n for (let i = 0; i < this.extraParams[key].length; i++) {\r\n let extraParam = this.extraParams[key][i];\r\n if (params[extraParam] === void 0) {\r\n params[extraParam] = this.$routeParams[extraParam];\r\n }\r\n }\r\n }\r\n\r\n return params;\r\n};\r\n\r\n/***\r\n * Replace {{replaceable}} terms in a route with values from a parameter object\r\n * @param {string} route - the URL with replaceable terms encased in double braces {{ }}\r\n * @param {Object} params - Object with parameter values, keys should match replaceable terms\r\n * @returns {string} route - API URL\r\n */\r\nAssetEndpointService.prototype.replaceRouteValuesWithParams = function (route, params) {\r\n let keys = Object.keys(params);\r\n\r\n for (let i = 0; i < keys.length; i++) {\r\n let key = keys[i];\r\n\r\n if (route.indexOf(\"{{\" + key + \"}}\") !== -1) {\r\n route = route.replace(\"{{\" + key + \"}}\", params[key]);\r\n }\r\n }\r\n\r\n return route;\r\n};\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nexport class AssetFilteringConfig {\r\n constructor() {\r\n this.config = {\r\n enablePersistentFilters: true,\r\n disableWhenInFolders: []\r\n };\r\n }\r\n\r\n $get() {\r\n return this.config;\r\n }\r\n}\r\n\r\nangularAMD.provider(\"assetFilteringConfig\", AssetFilteringConfig);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../builder/dataManager/helperService\";\r\nimport template from \"./templates/asset-list-item.html\";\r\n\r\nangularAMD.directive(\"assetListItem\", AssetListItem);\r\nAssetListItem.$inject = [\"$sce\", \"baseUrlsFactory\"];\r\n\r\nangularAMD.controller(\"AssetListItemController\", AssetListItemController);\r\nAssetListItemController.$inject = [\"$rootScope\", \"$filter\", \"multiLanguageService\", \"helperService\"];\r\n\r\nfunction AssetListItem($sce, baseUrlsFactory) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n model: \"=\",\r\n url: \"@\",\r\n listItemIndex: \"=\",\r\n listCount: \"=\",\r\n disableInfoButton: \"=\"\r\n },\r\n controller: \"AssetListItemController\",\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n };\r\n}\r\n\r\nfunction AssetListItemController($rootScope, $filter, multiLanguageService, helperService) {\r\n this.services = {\r\n broadcast: $rootScope.$broadcast.bind($rootScope),\r\n helperService: helperService\r\n };\r\n\r\n this.subText = multiLanguageService.getString(\"asset_summary.action_by_name_on_date\", {\r\n Action: this.model.SubText,\r\n Author: this.model.Author,\r\n Time: $filter(\"pebbleDate\")(this.model.HistoryDateTime, \"timeOnly\"),\r\n Date: $filter(\"pebbleDate\")(this.model.HistoryDateTime, \"withoutDay\")\r\n });\r\n\r\n this.countIndexText = multiLanguageService.getString(\"asset_summary.link_item_count_text\", {\r\n LinkNumber: this.listItemIndex + 1,\r\n Total: this.listCount\r\n });\r\n\r\n this.linkAriaLabel = multiLanguageService.getString(\"asset_summary.open_asset_link_aria\", {\r\n LinkItemCount: this.listItemIndex >= 0 ? this.countIndexText : \"\",\r\n AssetTitle: this.model.AssetTitle,\r\n AssetType: this.services.helperService.friendlyMainType(this.model.AssetMainType),\r\n Action: this.model.SubText.toLowerCase(),\r\n Author: this.model.Author,\r\n Time: $filter(\"pebbleDate\")(this.model.HistoryDateTime, \"timeOnly\"),\r\n Date: $filter(\"pebbleDate\")(this.model.HistoryDateTime, \"withoutDay\")\r\n });\r\n\r\n this.infoButtonAriaLabel = multiLanguageService.getString(\"asset_summary.asset_info_link_aria\", {\r\n AssetTitle: this.model.AssetTitle,\r\n AssetType: this.services.helperService.friendlyMainType(this.model.AssetMainType)\r\n });\r\n}\r\n\r\nAssetListItemController.prototype.openAssetInfoPanel = function (assetId) {\r\n this.services.broadcast(\"openRightHandSidePanel\", {\r\n panel: \"asset-info\",\r\n assetId: assetId\r\n });\r\n};\r\n","export default `
{{::vm.model.AssetTitle}}

{{::vm.subText}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../assetEndpointService/assetEndpoint.service\";\r\n\r\nangularAMD.service(\"AssetLockingAPI\", AssetLockingAPI);\r\nAssetLockingAPI.$inject = [\"$http\", \"$q\", \"baseUrlsFactory\", \"AssetEndpointService\"];\r\n\r\nfunction AssetLockingAPI($http, $q, baseUrlsFactory, assetEndpointService) {\r\n //Public API\r\n //=============================================================================================================\r\n this.lock = lock;\r\n this.unlock = unlock;\r\n this.lockedByAnother = lockedByAnother;\r\n this.keepLockAlive = keepLockAlive;\r\n\r\n //Private methods\r\n //=============================================================================================================\r\n /**\r\n * @param {string} assetId\r\n * @returns {Promise} - Rejected if HTTP fails\r\n */\r\n function lock(assetId) {\r\n return $http.get(baseUrlsFactory.api_base_url + \"Locking/RequestLock?assetId=\" + assetId).then(function (response) {\r\n return response.data;\r\n });\r\n }\r\n\r\n /**\r\n * @param {string} assetId\r\n * @returns {Promise} - Rejected if HTTP fails\r\n */\r\n function unlock(assetId) {\r\n return $http.get(baseUrlsFactory.api_base_url + \"Locking/ReleaseLock?assetId=\" + assetId).then(function (response) {\r\n return response.data;\r\n });\r\n }\r\n\r\n /**\r\n * @param assetId\r\n * @returns {Promise} - Rejected if HTTP fails\r\n */\r\n function lockedByAnother(assetId) {\r\n return assetEndpointService.isLockedByAnother(assetId).then(function (response) {\r\n return response.data;\r\n });\r\n }\r\n\r\n /**\r\n * @param {string} assetId\r\n * @returns {Promise} - Rejected if HTTP fails\r\n */\r\n function keepLockAlive(assetId) {\r\n return $http.get(baseUrlsFactory.api_base_url + \"Locking/KeepLockAlive?assetId=\" + assetId).then(function (response) {\r\n return response.data;\r\n });\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSET_CONSTANTS } from \"../../constants/asset.constants\";\r\nimport \"./assetLockingAPI.service\";\r\nimport \"../../modal/services/modal\";\r\nimport \"../../localChanges/services/localChangesResolver\";\r\nimport \"../../utilities/urlService\";\r\nimport \"../../recoveryLogger/recoveryLogger\";\r\n\r\nangularAMD.service(\"AssetLockingHelper\", AssetLockingHelper);\r\nAssetLockingHelper.$inject = [\r\n \"$rootScope\",\r\n \"$q\",\r\n \"$window\",\r\n \"$interval\",\r\n \"$location\",\r\n \"AssetLockingAPI\",\r\n \"modal\",\r\n \"baseUrlsFactory\",\r\n \"multiLanguageService\",\r\n \"helperService\",\r\n \"localChangesResolver\",\r\n \"urlService\",\r\n \"recoveryLogger\"\r\n];\r\n\r\nfunction AssetLockingHelper(\r\n $rootScope,\r\n $q,\r\n $window,\r\n $interval,\r\n $location,\r\n AssetLockingAPI,\r\n modal,\r\n baseUrlsFactory,\r\n multiLanguageService,\r\n helperService,\r\n localChangesResolver,\r\n UrlService,\r\n recoveryLogger\r\n) {\r\n //Public API\r\n //==============================================================================================================\r\n this.lock = lock;\r\n this.unlock = unlock;\r\n this.keepLockAlive = keepLockAlive;\r\n this.lockedByAnother = lockedByAnother;\r\n this.setupLock = setupLock;\r\n this.createActiveLock = createActiveLock;\r\n this.getActiveLockById = getActiveLockById;\r\n this.hasPreexisitingLockError = hasPreexisitingLockError;\r\n this.removePreexisitingLockError = removePreexisitingLockError;\r\n this.removeActiveLock = removeActiveLock;\r\n this.cancelAllActiveLocks = cancelAllActiveLocks;\r\n\r\n //Private Variables\r\n //==============================================================================================================\r\n var activeLocks = [];\r\n var preexistingLockErrors = [];\r\n var preexistingLockTypes = [ASSET_CONSTANTS.TYPES.WORKBOOK_RESPONSE, ASSET_CONSTANTS.TYPES.WEBFOLIO];\r\n var intervalTime = 180000; //Poll every 3 minutes\r\n\r\n //Private Classes\r\n //==============================================================================================================\r\n /**\r\n * @param {string} id\r\n * @param {string} sessionKey\r\n * @param {Boolean} originallyLockedAsset\r\n * @param {interval} interval\r\n * @param {Function=} onCancel\r\n * @constructor\r\n */\r\n function ActiveLock(id, sessionKey, originallyLockedAsset, interval, onCancel) {\r\n this.id = id;\r\n this.sessionKey = sessionKey;\r\n this.interval = interval;\r\n this.onCancel = onCancel;\r\n this.listeners = {\r\n start: null,\r\n success: null\r\n };\r\n\r\n $window.sessionStorage.setItem(this.sessionKey, originallyLockedAsset);\r\n }\r\n\r\n ActiveLock.prototype.removeLockOnRedirect = function () {\r\n //On Route start register $routeChangeSuccess listener - Prevents issue when removeLockOnRedirect is called while a Route is currently resolving.\r\n this.listeners.start = $rootScope.$on(\r\n \"$routeChangeStart\",\r\n function () {\r\n //Remove listener\r\n this.listeners.start();\r\n this.listeners.start = null;\r\n\r\n //On successful redirect from Asset (after PreventRedirect checks have been approved)\r\n this.listeners.success = $rootScope.$on(\r\n \"$routeChangeSuccess\",\r\n function () {\r\n //Remove listener\r\n this.listeners.success();\r\n\r\n this.cancelAndUnlock();\r\n }.bind(this)\r\n );\r\n }.bind(this)\r\n );\r\n\r\n return this;\r\n };\r\n\r\n ActiveLock.prototype.cancel = function () {\r\n if (this.listeners.start !== null) {\r\n this.listeners.start();\r\n this.listeners.start = null;\r\n }\r\n\r\n if (this.listeners.success !== null) {\r\n this.listeners.success();\r\n this.listeners.success = null;\r\n }\r\n\r\n //Cancel interval\r\n $interval.cancel(this.interval);\r\n this.interval = null;\r\n\r\n if (this.onCancel !== void 0) {\r\n this.onCancel(this.id);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n ActiveLock.prototype.cancelAndUnlock = function () {\r\n this.cancel();\r\n $window.sessionStorage.removeItem(this.sessionKey);\r\n return unlock(this.id);\r\n };\r\n\r\n //Private Methods\r\n //==============================================================================================================\r\n /**\r\n * @param {string} assetId\r\n * @returns {Promise} - Rejected if no lock data or HTTP fails\r\n */\r\n function lock(assetId) {\r\n return AssetLockingAPI.lock(assetId).then(function (data) {\r\n return data ? data : $q.reject();\r\n });\r\n }\r\n\r\n /**\r\n * @param {string} assetId\r\n * @returns {Promise} - Rejected if HTTP request fails\r\n */\r\n function unlock(assetId) {\r\n var activeLock = getActiveLockById(assetId);\r\n if (activeLock) {\r\n activeLock.cancel();\r\n }\r\n return AssetLockingAPI.unlock(assetId);\r\n }\r\n\r\n /**\r\n * If locked, get lock info and display Modal, else resolve with true;\r\n * @param {string} assetId\r\n * @returns {Promise}\r\n */\r\n function lockedByAnother(assetId) {\r\n return AssetLockingAPI.lockedByAnother(assetId);\r\n }\r\n\r\n /**\r\n * @param {string} assetId\r\n * @param {string} mainType\r\n * @returns {Promise} - Resolved on lock success, Rejected on lock failure.\r\n */\r\n function setupLock(assetId, mainType) {\r\n recoveryLogger.step(\"lock\", `Locking asset - ${mainType}`);\r\n return lock(assetId).then(function (lockedInfo) {\r\n //Asset Locked!\r\n var originallyLockedAsset = false;\r\n var originalLocker = $window.sessionStorage.getItem(createSessionKey(assetId)); //null|\"false\"|\"true\"\r\n\r\n if (!lockedInfo) {\r\n return $q.reject();\r\n } else if (lockedInfo.LockGranted === false) {\r\n return $q.reject(lockedInfo);\r\n } else if (lockedInfo.IsPreexistingLock && originalLocker !== \"true\") {\r\n //If we get a IsPreexistingLock issue and we are the original locking tab, ignore.\r\n var registeredError = registerPreexistingLockError(assetId, mainType);\r\n //If we have successfully registered the error (not already registered) and the user has not been into edit mode (originalLocker would be \"false\"), bail!\r\n if (registeredError && originalLocker === null) {\r\n return $q.reject(lockedInfo);\r\n }\r\n } else {\r\n originallyLockedAsset = true;\r\n removePreexisitingLockError(assetId);\r\n }\r\n\r\n return createActiveLock(assetId, mainType, originallyLockedAsset);\r\n });\r\n }\r\n\r\n /**\r\n * @param {string} assetId\r\n * @param {string} mainType\r\n * @returns {Promise} - Resolved on Locked success / continuation. Rejected on lock failure and recovery.\r\n */\r\n function keepLockAlive(assetId, mainType) {\r\n //Get current state of lock.\r\n return AssetLockingAPI.keepLockAlive(assetId).then(function (success) {\r\n //If lock kept, continue!\r\n if (success === true) {\r\n return success;\r\n }\r\n\r\n //Create handler for lock failure.\r\n var onFailure = function () {\r\n return onLockLost(assetId, mainType).then($q.reject);\r\n };\r\n\r\n //Attempt to re-lock. If the user disconnected and reconnected they may have lost the lock.\r\n return lock(assetId).then(function (lockedInfo) {\r\n if (!lockedInfo.LockGranted) {\r\n //Lock failed. Handle failure then reject the chain\r\n return onFailure();\r\n }\r\n }, onFailure);\r\n });\r\n }\r\n\r\n /**\r\n * @param {string} assetId\r\n * @param {string} mainType\r\n * @returns {Promise}\r\n */\r\n function onLockLost(assetId, mainType) {\r\n //Check for a current Interval, cancel if exists - interval no longer needed.\r\n var activeLock = getActiveLockById(assetId);\r\n if (activeLock !== null) {\r\n activeLock.cancel();\r\n }\r\n\r\n recoveryLogger.step(\"lock\", `Asset lock lost - ${mainType}`);\r\n return localChangesResolver.forceRecoveryIfUnsaved(assetId).then(launchLostActiveLockModal.bind(null, true, mainType), launchLostActiveLockModal.bind(null, false, mainType));\r\n }\r\n\r\n /**\r\n * @param {String} assetId\r\n * @param {String} type\r\n * @return {Boolean}\r\n */\r\n function registerPreexistingLockError(assetId, type) {\r\n if (!preexistingLockTypes.contains(type)) {\r\n return false;\r\n }\r\n\r\n var hasError = preexistingLockErrors.contains(assetId);\r\n if (hasError) {\r\n return false;\r\n }\r\n\r\n preexistingLockErrors.push(assetId);\r\n return true;\r\n }\r\n\r\n /**\r\n * @param assetId\r\n * * @return {Boolean}\r\n */\r\n function hasPreexisitingLockError(assetId) {\r\n return preexistingLockErrors.contains(assetId);\r\n }\r\n\r\n /**\r\n * @param {String} assetId\r\n */\r\n function removePreexisitingLockError(assetId) {\r\n preexistingLockErrors.remove(assetId);\r\n }\r\n\r\n function createSessionKey(assetId) {\r\n return \"original-locker-\" + assetId;\r\n }\r\n\r\n /**\r\n * Once a lock has been established call this method to allow semi-automated updates and removal of lock.\r\n * @param {string} assetId\r\n * @param {string} mainType\r\n * @param {Boolean} originallyLockedAsset\r\n * @returns {ActiveLock}\r\n */\r\n function createActiveLock(assetId, mainType, originallyLockedAsset) {\r\n var interval = $interval(keepLockAlive.bind(null, assetId, mainType), intervalTime);\r\n var sessionKey = createSessionKey(assetId);\r\n var activeLock = new ActiveLock(assetId, sessionKey, originallyLockedAsset, interval, removeActiveLock);\r\n\r\n activeLock.removeLockOnRedirect();\r\n activeLocks.push(activeLock);\r\n\r\n return activeLock;\r\n }\r\n\r\n /**\r\n * @param {string} assetId\r\n * @returns {ActiveLock|null}\r\n */\r\n function getActiveLockById(assetId) {\r\n var index = activeLocks.findInNestedObject(\"id\", assetId);\r\n return index !== -1 ? activeLocks[index] : null;\r\n }\r\n\r\n /**\r\n * @returns {Promise}\r\n */\r\n function cancelAllActiveLocks() {\r\n var promises = [];\r\n\r\n //Duplicate array to ensure no issues with indexes when items get removed.\r\n activeLocks.slice().forEach(function (lock) {\r\n promises.push(lock.cancelAndUnlock());\r\n });\r\n\r\n return $q.all(promises);\r\n }\r\n\r\n /**\r\n * @param {string} assetId\r\n * @returns {Boolean} - Success or failure of removal.\r\n */\r\n function removeActiveLock(assetId) {\r\n var index = activeLocks.findInNestedObject(\"id\", assetId);\r\n\r\n if (index !== -1) {\r\n activeLocks.splice(index, 1);\r\n removePreexisitingLockError(assetId);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * @param {Boolean} hasRecoveredData\r\n * @param {string} mainType\r\n */\r\n function launchLostActiveLockModal(hasRecoveredData, mainType) {\r\n var modalScope = $rootScope.$new(true);\r\n\r\n modalScope.multiLanguageService = multiLanguageService;\r\n modalScope.hasRecoveredData = hasRecoveredData;\r\n modalScope.i18nLocked = {\r\n lost_lock: helperService.isResourceBuilder(mainType)\r\n ? multiLanguageService.getString(\"locking.lost_lock_on_resource.lost_lock\")\r\n : multiLanguageService.getString(\"locking.lost_lock_on_asset.lost_lock\"),\r\n try_again_later: helperService.isResourceBuilder(mainType)\r\n ? multiLanguageService.getString(\"locking.lost_lock_on_resource.try_again_later\")\r\n : multiLanguageService.getString(\"locking.lost_lock_on_asset.try_again_later\")\r\n };\r\n modalScope.onClose = function () {\r\n //If there was unsaved data, it has been recovered. Forcefully allow redirect.\r\n $location.url(UrlService.createStoreRedirectUrl($location.url()));\r\n modalScope.$destroy();\r\n };\r\n\r\n return modal.newModal({\r\n scope: modalScope,\r\n focusStyle: false,\r\n disableClose: true,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"assetLocking/templates/asset-lock-lost-modal.lazy.html\"\r\n });\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../services/assetLockingHelper.service\";\r\nimport \"../../../utilities/urlService\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../history/services/historyService\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../builder/dataManager/helperService\";\r\n\r\nangularAMD.controller(\"AssetLockedWarningController\", AssetLockedWarningController);\r\nAssetLockedWarningController.$inject = [\r\n \"$scope\",\r\n \"$location\",\r\n \"$timeout\",\r\n \"$routeParams\",\r\n \"AssetLockingHelper\",\r\n \"urlService\",\r\n \"multiLanguageService\",\r\n \"historyService\",\r\n \"baseUrlsFactory\",\r\n \"helperService\"\r\n];\r\n\r\n//Injectors\r\nvar $location = null,\r\n $timeout = null,\r\n $routeParams = null,\r\n AssetLockingHelper = null,\r\n UrlService = null,\r\n HistoryService = null;\r\n\r\nfunction AssetLockedWarningController($scope, _$location_, _$timeout_, _$routeParams_, _AssetLockingHelper_, _UrlService_, multiLanguageService, _HistoryService_, baseUrlsFactory, helperService) {\r\n AssetLockingHelper = _AssetLockingHelper_;\r\n UrlService = _UrlService_;\r\n $location = _$location_;\r\n $timeout = _$timeout_;\r\n $routeParams = _$routeParams_;\r\n HistoryService = _HistoryService_;\r\n\r\n this._helperService = helperService;\r\n this.assetId = $scope.assetId;\r\n this.mainType = $scope.mainType;\r\n this.multiLanguageService = multiLanguageService;\r\n this.loading = false;\r\n this.stillInUse = false;\r\n this.lockedByUser = $scope.lockedByUser;\r\n this.lockedAsset = $scope.lockedAsset;\r\n this.hideModal = $scope.hideModal.bind($scope);\r\n this.onSuccess = $scope.onSuccess;\r\n this.onRedirect = $scope.onRedirect;\r\n this.lockedDetailsTemplate = baseUrlsFactory.shared_component_base_url + \"assetLocking/directives/assetLockedWarning/templates/lock-details.lazy.html\";\r\n\r\n const isAsset = !this._helperService.isResourceBuilder(this.mainType);\r\n const lockedHeadingKey = isAsset ? \"locking.locked_asset.locked_heading\" : \"locking.locked_resource.locked_heading\";\r\n const currentlyEditingKey = isAsset ? \"locking.locked_asset.currently_editing\" : \"locking.locked_resource.currently_editing\";\r\n\r\n this.lockedHeading = this.multiLanguageService.getString(lockedHeadingKey);\r\n this.currentlyEditing = this.multiLanguageService.getString(currentlyEditingKey);\r\n\r\n $scope.lockedByUser = null;\r\n $scope.lockedAsset = null;\r\n $scope.onSuccess = null;\r\n $scope.onRedirect = null;\r\n this.defineWarningLockDetails();\r\n $scope.$on(\"$destroy\", this.onDestroy.bind(this));\r\n\r\n this.cancelAndRedirect = this._cancelAndRedirect.bind(this);\r\n this.preview = this._preview.bind(this);\r\n this.tryAgain = this._tryAgain.bind(this);\r\n this.cancel = this._cancel.bind(this);\r\n}\r\n\r\nAssetLockedWarningController.prototype.defineWarningLockDetails = function () {\r\n this.current_lock_reason = this.lockedAsset && this.assetId !== this.lockedAsset.AssetId;\r\n};\r\n\r\nAssetLockedWarningController.prototype.goToViewer = function () {\r\n this.onRedirect();\r\n return $location.path(UrlService.createUrl(this.assetId, null, true));\r\n};\r\n\r\nAssetLockedWarningController.prototype._tryAgain = function () {\r\n this.loading = true;\r\n\r\n //Try to lock asset!\r\n return AssetLockingHelper.setupLock(this.assetId, this.mainType).then(\r\n function () {\r\n this.hideModal();\r\n this.onSuccess();\r\n }.bind(this),\r\n function (lockedInfo) {\r\n if (lockedInfo && lockedInfo.LockGranted === false) {\r\n this.updateLockedInfo(lockedInfo);\r\n }\r\n\r\n return this.updateSpinnerState(true);\r\n }.bind(this)\r\n );\r\n};\r\n\r\n/**\r\n * @param {Object} lockedInfo\r\n */\r\nAssetLockedWarningController.prototype.updateLockedInfo = function (lockedInfo) {\r\n if (this.lockedByUser.UserId !== lockedInfo.LockedBy.UserId) {\r\n this.lockedByUser = lockedInfo.LockedBy;\r\n }\r\n\r\n if (this.lockedAsset.AssetId !== lockedInfo.LockOriginatedOnAsset.AssetId) {\r\n this.lockedAsset = lockedInfo.LockOriginatedOnAsset;\r\n this.defineWarningLockDetails();\r\n }\r\n};\r\n\r\n/**\r\n * @param {boolean} stillInUse\r\n * @returns {Promise} - $timeout promise.\r\n */\r\nAssetLockedWarningController.prototype.updateSpinnerState = function (stillInUse) {\r\n return $timeout(\r\n function () {\r\n this.loading = false;\r\n this.stillInUse = stillInUse;\r\n }.bind(this),\r\n 1500\r\n );\r\n};\r\n\r\nAssetLockedWarningController.prototype._cancelAndRedirect = function () {\r\n $location.url(HistoryService.getLastHistoryPath($routeParams.historyId) || UrlService.createStoreRedirectUrl($location.path()));\r\n this.onRedirect();\r\n return this.hideModal();\r\n};\r\n\r\nAssetLockedWarningController.prototype._cancel = function () {\r\n this.onRedirect();\r\n return this.hideModal();\r\n};\r\n\r\nAssetLockedWarningController.prototype._preview = function () {\r\n this.goToViewer();\r\n this._cancel();\r\n};\r\n\r\nAssetLockedWarningController.prototype.onDestroy = function () {\r\n this.hideModal = null;\r\n};\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./assetLockedWarning.controller\";\r\nimport \"../../../profileImage/profileImg\";\r\nimport onAddWarningTemplate from \"./templates/asset-locked-on-add-warning.html\";\r\nimport warningTemplate from \"./templates/asset-locked-warning.html\";\r\n\r\nangularAMD.directive(\"assetLockedWarning\", AssetLockedWarning);\r\nAssetLockedWarning.$inject = [\"$sce\", \"baseUrlsFactory\"];\r\n\r\nfunction AssetLockedWarning() {\r\n return {\r\n template: function ($scope, $attrs) {\r\n return $attrs.addingAsset === \"true\" ? onAddWarningTemplate : warningTemplate;\r\n },\r\n restrict: \"E\",\r\n scope: true,\r\n controller: \"AssetLockedWarningController\",\r\n controllerAs: \"vm\"\r\n };\r\n}\r\n","export default `

{{::vm.multiLanguageService.getString('locking.locked_asset.currently_editing_add_warning')}}

`;","export default `

{{::vm.currentlyEditing}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./assetLockingHelper.service\";\r\nimport \"../directives/assetLockedWarning/assetLockedWarning.directive\";\r\nimport \"../../utilities/urlService\";\r\nimport \"../../builder/dataManager/helperService\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../recoveryLogger/recoveryLogger\";\r\n\r\nAssetLockingNotificationService.$inject = [\"$q\", \"$location\", \"baseUrlsFactory\", \"multiLanguageService\", \"AssetLockingHelper\", \"modal\", \"urlService\", \"helperService\", \"recoveryLogger\"];\r\nfunction AssetLockingNotificationService($q, $location, baseUrlsFactory, multiLanguageService, assetLockingHelper, modal, urlService, helperService, recoveryLogger) {\r\n this._$q = $q;\r\n this._$location = $location;\r\n this._baseUrlsFactory = baseUrlsFactory;\r\n this._multiLanguageService = multiLanguageService;\r\n this._assetLockingHelper = assetLockingHelper;\r\n this._modal = modal;\r\n this._urlService = urlService;\r\n this._helperService = helperService;\r\n this._recoveryLogger = recoveryLogger;\r\n}\r\n\r\n/**\r\n * Setups lock and displays error modal on failure.\r\n * @param {string} assetId\r\n * @param {string} mainType\r\n * @param {string} url\r\n * @returns {Promise} - Resolved on lock success, Rejected on lock failure.\r\n */\r\nAssetLockingNotificationService.prototype.setupLockWithModal = function (assetId, mainType, url) {\r\n this._recoveryLogger.start(mainType, \"Pre-Asset builder load\");\r\n return this._assetLockingHelper.setupLock(assetId, mainType, url).then(\r\n function (resolvedData) {\r\n return resolvedData;\r\n },\r\n function (lockedInfo) {\r\n if (lockedInfo) {\r\n if (lockedInfo.LockGranted && lockedInfo.IsPreexistingLock) {\r\n //Asset has been opened by the same user already. Redirect to viewer to allow message / notification prompts to handle the issue.\r\n var redirect = this._urlService.createUrl(assetId, \"\", true);\r\n this._$location.path(redirect).replace();\r\n return this._$q.reject();\r\n } else if (lockedInfo.RequestedLockAssetId) {\r\n var modalTemplate = \"assetLocking/directives/assetLockedWarning/templates/asset-locked-warning-modal.lazy.html\";\r\n return this._launchLockedModal(assetId, mainType, lockedInfo, modalTemplate).then(\r\n function () {\r\n if (!this._urlService.checkIfOnBuilderForAsset(assetId, mainType)) {\r\n this._$location.path(this._urlService.createUrl(assetId, mainType));\r\n }\r\n }.bind(this)\r\n );\r\n }\r\n }\r\n return this._$q.reject();\r\n }.bind(this)\r\n );\r\n};\r\n\r\n/**\r\n * Setups lock and displays error modal on failure.\r\n * @param {string} assetId\r\n * @param {string} mainType\r\n * @param {string} url\r\n * @returns {Promise} - Resolved on lock success, Rejected on lock failure.\r\n */\r\nAssetLockingNotificationService.prototype.setupLockWithModalForAdding = function (assetId, mainType, url) {\r\n this._recoveryLogger.step(\"lock\", `Added lock for ${mainType} being added to another asset`);\r\n return this._assetLockingHelper.setupLock(assetId, mainType, url).then(\r\n function (resolvedData) {\r\n return resolvedData;\r\n },\r\n function (lockedInfo) {\r\n if (lockedInfo && lockedInfo.RequestedLockAssetId) {\r\n var modalTemplate = \"assetLocking/directives/assetLockedWarning/templates/asset-locked-on-add-warning-modal.lazy.html\";\r\n return this._launchLockedModal(assetId, mainType, lockedInfo, modalTemplate);\r\n }\r\n return this._$q.reject();\r\n }.bind(this)\r\n );\r\n};\r\n\r\n/**\r\n * @param {string} assetId\r\n * @param {string} mainType\r\n * @param {Object} lockedInfo - Requires LockedBy and LockOriginatedOnAsset properties\r\n * @param {string} templateUrl - the location of the template for the modal\r\n * @returns {Promise}\r\n */\r\nAssetLockingNotificationService.prototype._launchLockedModal = function (assetId, mainType, lockedInfo, templateUrl) {\r\n var isAsset = !this._helperService.isResourceBuilder(mainType);\r\n var deferred = this._$q.defer();\r\n var i18nTitleKey = isAsset ? \"locking.locked_asset.heading\" : \"locking.locked_resource.heading\";\r\n\r\n var modalProps = {\r\n assetId: assetId,\r\n isAsset: isAsset,\r\n lockedAsset: lockedInfo.LockOriginatedOnAsset,\r\n lockedByUser: lockedInfo.LockedBy,\r\n mainType: mainType,\r\n multiLanguageService: this._multiLanguageService,\r\n onRedirect: deferred.reject,\r\n onSuccess: deferred.resolve.bind(null, { id: assetId, mainType: mainType }),\r\n title: this._multiLanguageService.getString(i18nTitleKey)\r\n };\r\n\r\n this._modal.launch(this._baseUrlsFactory.shared_component_base_url + templateUrl, modalProps, {\r\n focusStyle: false,\r\n disableClose: true\r\n });\r\n\r\n return deferred.promise;\r\n};\r\n\r\nangularAMD.service(\"assetLockingNotificationService\", AssetLockingNotificationService);\r\n\r\nexport { AssetLockingNotificationService as assetLockingNotificationService };\r\n","export class ProcurePageResponse {\r\n constructor(page, parents, outdatedResponseId) {\r\n this.page = page;\r\n this.parents = parents;\r\n this.outdatedResponseId = outdatedResponseId;\r\n }\r\n}\r\n","export class ErrorWithData {\r\n constructor(errorType, data) {\r\n this.type = errorType;\r\n this.data = data;\r\n }\r\n}\r\n","import { PageModelSearch } from \"../pageModelSearch/pageModelSearch\";\r\nimport { byPageId } from \"../pageModelSearch/helpers/ByPageId.function\";\r\nimport { PAGE_ERROR } from \"../constants/pageError.constants\";\r\nimport { ASSET_CONSTANTS } from \"../constants/asset.constants\";\r\nimport { mapPageTreeToProcurePageModel } from \"./mapPageTreeToProcurePageModel.function\";\r\nimport { ProcurePageResponse } from \"./procurePageResponse\";\r\nimport { ErrorWithData } from \"../errorWithData/errorWithData\";\r\n\r\nexport class WorkbookResponsePageHandler {\r\n constructor(assetContext, pages, $q, requester) {\r\n this._assetContext = assetContext;\r\n this._$q = $q;\r\n this._requester = requester;\r\n this._pageSearch = new PageModelSearch(pages);\r\n this._containerAssetTypes = [ASSET_CONSTANTS.TYPES.WEBFOLIO, ASSET_CONSTANTS.TYPES.WORKBOOK_RESPONSE, ASSET_CONSTANTS.TYPES.WORKBOOK];\r\n }\r\n\r\n /**\r\n * Gets the latest response for page.\r\n * Returns an object with the page's PageDto, the page's parents PageDtos and the id of the previous response.\r\n * The previous response id (`outdatedResponseId`) can be used to deal with concurrency scenarios which may result in a lose of work.\r\n * For example a placeholder page response could of been changed in another tab.\r\n * @param {string} pageId\r\n * @param {boolean} canCreate\r\n * @return {IPromise<{ outdatedResponseId: string, page: PageDto, parents: Array}>}\r\n */\r\n procurePageById(pageId, canCreate) {\r\n const match = this._pageSearch.tracedFind(byPageId(pageId));\r\n\r\n if (match === null) {\r\n return this._$q.reject(PAGE_ERROR.NOT_FOUND);\r\n }\r\n\r\n if (this._containerAssetTypes.includes(match.page.PageType)) {\r\n const firstPage = new PageModelSearch(match.page.Children).find((p) => p.PageType !== ASSET_CONSTANTS.TYPES.WORKBOOK);\r\n return this._$q.reject(new ErrorWithData(PAGE_ERROR.PAGE_IS_CONTAINER, firstPage));\r\n }\r\n\r\n return this.procurePage(match.page, match.parents, canCreate);\r\n }\r\n\r\n procurePage(page, parents, canCreate) {\r\n if (page.PageType === ASSET_CONSTANTS.SPECIAL_TYPES.APPLICANT || page.PageType === ASSET_CONSTANTS.SPECIAL_TYPES.STANDARDS_OVERVIEW) {\r\n return this._$q.when({ page: page, parents: parents, outdatedResponseId: \"\" });\r\n }\r\n\r\n const pageRequest = mapPageTreeToProcurePageModel(page, parents, this._assetContext.assetId);\r\n return this._requester.procurePage(pageRequest, { ...this._assetContext, canCreate: canCreate, pageId: page.PageId }).then((updates) => this._updatePageTreeResponses(page, parents, updates));\r\n }\r\n\r\n /**\r\n * Updates the page's ProgressTrackingComplete property\r\n * Returns an object with the page's PageDto\r\n * @param {string} pageId\r\n * @param {boolean} completed\r\n * @return {Promise}\r\n */\r\n updatePageCompleteStatusById(pageId, completed) {\r\n return this._updatePageById(pageId, { Completed: completed }).then((page) => {\r\n page.ProgressTrackingComplete = completed;\r\n return page;\r\n });\r\n }\r\n\r\n updatePageResponseById(pageId, responseId) {\r\n return this._updatePageById(pageId, { Id: pageId, ResponseId: responseId }).then((page) => {\r\n page.UserResponseId = responseId;\r\n page.ProgressTrackingComplete = false;\r\n return page;\r\n });\r\n }\r\n\r\n removePageById(pageId) {\r\n const match = this._pageSearch.tracedFind(byPageId(pageId));\r\n\r\n if (match === null) {\r\n return this._$q.reject(PAGE_ERROR.NOT_FOUND);\r\n }\r\n\r\n return this._removePage(match.page, match.parents);\r\n }\r\n\r\n _removePage(page, parents) {\r\n return this._requester.removePage(this._determineContainerId(parents), page.PageId).then(() => {\r\n page.UserResponseId = \"\";\r\n page.ProgressTrackingComplete = false;\r\n return page;\r\n });\r\n }\r\n\r\n _updatePageTreeResponses(page, parents, updates) {\r\n for (const parentUpdate of updates.Parents) {\r\n const parent = parents.find(byPageId(parentUpdate.Id));\r\n if (parent !== undefined) {\r\n parent.PageFolder = parentUpdate.FolderName;\r\n parent.UserResponseId = parentUpdate.ResponseId;\r\n }\r\n }\r\n\r\n page.PageFolder = updates.Page.FolderName;\r\n const currentResponseId = page.UserResponseId;\r\n if (currentResponseId !== updates.Page.ResponseId) {\r\n page.UserResponseId = updates.Page.ResponseId;\r\n return new ProcurePageResponse(page, parents, currentResponseId);\r\n }\r\n\r\n return new ProcurePageResponse(page, parents, \"\");\r\n }\r\n\r\n _determineContainerId(parents) {\r\n return parents.length > 0 ? parents[0].UserResponseId : this._assetContext.assetId;\r\n }\r\n\r\n _updatePageById(pageId, updates) {\r\n const match = this._pageSearch.tracedFind(byPageId(pageId));\r\n\r\n if (match === null) {\r\n return this._$q.reject(PAGE_ERROR.NOT_FOUND);\r\n }\r\n\r\n return this._updatePage(match.page, match.parents, updates);\r\n }\r\n\r\n _updatePage(page, parents, updates) {\r\n const pageUpdate = { ResponseId: page.UserResponseId, ...updates };\r\n\r\n return this._requester.updatePage(this._determineContainerId(parents), page.PageId, pageUpdate).then(() => {\r\n return page;\r\n });\r\n }\r\n}\r\n","export function mapPageTreeToProcurePageModel(page, parents, assetId) {\r\n let child = { AssetRefId: page.PageAssetId, PageId: page.PageId, Page: null };\r\n\r\n for (const parent of parents) {\r\n child = { AssetRefId: parent.PageAssetId, PageId: parent.PageId, Page: child };\r\n }\r\n\r\n return { AssetRefId: assetId, Page: child };\r\n}\r\n","export function mapPageViewModelToPageUpdate(pageViewModel) {\r\n return {\r\n ContentId: pageViewModel.PageAssetId,\r\n Title: pageViewModel.PageTitle\r\n };\r\n}\r\n","import { PageModelSearch } from \"../pageModelSearch/pageModelSearch\";\r\nimport { byPageId } from \"../pageModelSearch/helpers/ByPageId.function\";\r\nimport { PAGE_ERROR } from \"../constants/pageError.constants\";\r\nimport { ASSET_CONSTANTS } from \"../constants/asset.constants\";\r\nimport { WorkbookResponsePageHandler } from \"./workbookResponsePageHandler\";\r\nimport { ProcurePageResponse } from \"./procurePageResponse\";\r\nimport { mapPageViewModelToPageUpdate } from \"./mapPageViewModelToPageUpdate.function\";\r\n\r\nexport class PortfolioPageHandler {\r\n constructor(assetContext, pages, $q, requester) {\r\n this._assetContext = assetContext;\r\n this._$q = $q;\r\n this._pages = pages;\r\n this._pageSearch = new PageModelSearch(pages);\r\n this._requester = requester;\r\n }\r\n\r\n procurePageById(pageId, canCreate) {\r\n const match = this._pageSearch.tracedFind(byPageId(pageId));\r\n\r\n if (match === null) {\r\n return this._$q.reject(PAGE_ERROR.NOT_FOUND);\r\n }\r\n\r\n if (match.page.PageWithinWorkbook) {\r\n const workbookMatch = this._convertMatchToWorkbookMatch(match);\r\n const workbookPageHandler = this._getWorkbookHandler(workbookMatch.root);\r\n return workbookPageHandler.procurePage(workbookMatch.page, workbookMatch.parents, canCreate).then((pageUpdate) => {\r\n pageUpdate.parents.push(workbookMatch.root);\r\n return pageUpdate;\r\n });\r\n }\r\n\r\n return this._$q.when(new ProcurePageResponse(match.page, match.parents, \"\"));\r\n }\r\n\r\n addPage(pageViewModel) {\r\n return this._requester.updatePortfolioPage(this._assetContext.assetId, pageViewModel.PageAssetId, mapPageViewModelToPageUpdate(pageViewModel)).then(() => {\r\n this._pages.push(pageViewModel);\r\n return pageViewModel;\r\n });\r\n }\r\n\r\n addNestedPage(pageViewModel, parentId) {\r\n const match = this._pageSearch.tracedFind(byPageId(parentId));\r\n if (match === null || match.page.PageWithinWorkbook || match.page.PageType === ASSET_CONSTANTS.TYPES.WORKBOOK) {\r\n return this._$q.reject(PAGE_ERROR.INVALID_PARENT);\r\n }\r\n\r\n const parent = match.page;\r\n return this._requester.updatePortfolioPage(parent.PageAssetId, pageViewModel.PageAssetId, mapPageViewModelToPageUpdate(pageViewModel)).then(() => {\r\n parent.Children.push(pageViewModel);\r\n return pageViewModel;\r\n });\r\n }\r\n\r\n removePageById(pageId) {\r\n const match = this._pageSearch.tracedFind(byPageId(pageId));\r\n\r\n if (match === null) {\r\n return this._$q.reject(PAGE_ERROR.NOT_FOUND);\r\n }\r\n\r\n if (match.page.PageWithinWorkbook) {\r\n return this._$q.reject(PAGE_ERROR.NOT_ALLOWED);\r\n }\r\n\r\n let pageToRemove = match.page;\r\n let parentToRemoveFrom = { PageAssetId: this._assetContext.assetId, Children: this._pages };\r\n for (let parent of match.parents) {\r\n if (parent.Children.length > 1) {\r\n parentToRemoveFrom = parent;\r\n break;\r\n }\r\n pageToRemove = parent;\r\n }\r\n\r\n if (parentToRemoveFrom.Children.length === 1) {\r\n return this._$q.reject(PAGE_ERROR.LAST_PAGE);\r\n }\r\n\r\n return this._requester.removePortfolioPage(parentToRemoveFrom.PageAssetId, pageToRemove.PageAssetId).then(() => {\r\n const pages = parentToRemoveFrom.Children;\r\n const index = pages.findIndex(byPageId(pageToRemove.PageId));\r\n if (index !== -1) {\r\n pages.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n updatePageTitle(pageId, newTitle) {\r\n const match = this._pageSearch.tracedFind(byPageId(pageId));\r\n\r\n if (match === null) {\r\n return this._$q.reject(PAGE_ERROR.NOT_FOUND);\r\n }\r\n\r\n if (match.page.PageWithinWorkbook) {\r\n return this._$q.reject(PAGE_ERROR.NOT_ALLOWED);\r\n }\r\n\r\n return this._requester.updatePortfolioPage(this._determineContainerId(match.parents), match.page.PageId, { Title: newTitle }).then(() => {\r\n match.page.PageTitle = newTitle;\r\n });\r\n }\r\n\r\n updatePageResponseById(pageId, responseId) {\r\n const match = this._pageSearch.tracedFind(byPageId(pageId));\r\n\r\n if (match === null) {\r\n return this._$q.reject(PAGE_ERROR.NOT_FOUND);\r\n }\r\n\r\n if (!match.page.PageWithinWorkbook) {\r\n return this._$q.reject(PAGE_ERROR.NOT_ALLOWED);\r\n }\r\n\r\n const workbookMatch = this._convertMatchToWorkbookMatch(match);\r\n const workbookPageHandler = this._getWorkbookHandler(workbookMatch.root);\r\n return workbookPageHandler.updatePageResponseById(workbookMatch.page.PageId, responseId);\r\n }\r\n\r\n removePageResponseById(pageId) {\r\n const match = this._pageSearch.tracedFind(byPageId(pageId));\r\n\r\n if (match === null) {\r\n return this._$q.reject(PAGE_ERROR.NOT_FOUND);\r\n }\r\n\r\n if (!match.page.PageWithinWorkbook) {\r\n return this._$q.reject(PAGE_ERROR.NOT_ALLOWED);\r\n }\r\n\r\n const workbookMatch = this._convertMatchToWorkbookMatch(match);\r\n const workbookPageHandler = this._getWorkbookHandler(workbookMatch.root);\r\n return workbookPageHandler.removePageById(workbookMatch.page.PageId);\r\n }\r\n\r\n convertPage(pageId) {\r\n const match = this._pageSearch.tracedFind(byPageId(pageId));\r\n\r\n if (match === null) {\r\n return this._$q.reject(PAGE_ERROR.NOT_FOUND);\r\n }\r\n\r\n if (match.page.PageWithinWorkbook) {\r\n return this._$q.reject(PAGE_ERROR.NOT_ALLOWED);\r\n }\r\n\r\n return this._requester.convertPage(this._determineContainerId(match.parents), pageId).then((pageInfo) => {\r\n const pages = match.parents.length > 0 ? match.parents[0].Children : this._pages;\r\n const index = pages.findIndex(byPageId(match.page.PageId));\r\n\r\n if (index > -1) {\r\n pages[index] = {\r\n PageAssetId: pageInfo.ContentId,\r\n PageId: pageInfo.Id,\r\n PageTitle: pageInfo.Title,\r\n PageType: \"Webfolio\",\r\n PageIcon: \"webfolio\",\r\n Children: [match.page],\r\n PageFolder: \"Invisible\",\r\n PageNavigationEditable: true,\r\n Revision: 0\r\n };\r\n\r\n return pages[index];\r\n }\r\n\r\n throw new Error(\"No page has been found, something has gone seriously wrong, we shouldn't be in this state\");\r\n });\r\n }\r\n\r\n _determineContainerId(parents) {\r\n return parents.length > 0 ? parents[0].PageAssetId : this._assetContext.assetId;\r\n }\r\n\r\n _convertMatchToWorkbookMatch(pageMatch) {\r\n for (let i = 0; i < pageMatch.parents.length; i++) {\r\n const parent = pageMatch.parents[i];\r\n if (!parent.PageWithinWorkbook && parent.PageType === ASSET_CONSTANTS.TYPES.WORKBOOK) {\r\n return {\r\n page: pageMatch.page,\r\n parents: pageMatch.parents.slice(0, i),\r\n root: parent\r\n };\r\n }\r\n }\r\n\r\n throw new Error(\"Invalid parents provided! At least one parent must be a Workbook PageViewModel\");\r\n }\r\n\r\n _getWorkbookHandler(workbookPage) {\r\n const parentContext = this._assetContext.cloneForLinkedAsset(workbookPage.PageAssetId);\r\n return new WorkbookResponsePageHandler(parentContext, workbookPage.Children, this._$q, this._requester);\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { WorkbookResponsePageHandler } from \"./workbookResponsePageHandler\";\r\nimport { PortfolioPageHandler } from \"./portfolioPageHandler\";\r\n\r\nexport class AssetPageHandlerFactory {\r\n constructor($q, assetEndpointService) {\r\n this._$q = $q;\r\n this._assetEndpointService = assetEndpointService;\r\n }\r\n\r\n createWorkbookResponseHandler(asset, assetContext) {\r\n return new WorkbookResponsePageHandler(assetContext, asset.Pages, this._$q, {\r\n procurePage: this._assetEndpointService.procureWorkbookResponsePage.bind(this._assetEndpointService),\r\n removePage: this._assetEndpointService.removeWorkbookResponsePage.bind(this._assetEndpointService),\r\n updatePage: this._assetEndpointService.updateWorkbookResponsePage.bind(this._assetEndpointService)\r\n });\r\n }\r\n\r\n createPortfolioPageHandler(asset, assetContext) {\r\n return new PortfolioPageHandler(assetContext, asset.Pages, this._$q, {\r\n procurePage: this._assetEndpointService.procureWorkbookResponsePage.bind(this._assetEndpointService),\r\n removePage: this._assetEndpointService.removeWorkbookResponsePage.bind(this._assetEndpointService),\r\n removePortfolioPage: this._assetEndpointService.removePortfolioPage.bind(this._assetEndpointService),\r\n updatePage: this._assetEndpointService.updateWorkbookResponsePage.bind(this._assetEndpointService),\r\n updatePortfolioPage: this._assetEndpointService.updatePortfolioPage.bind(this._assetEndpointService),\r\n convertPage: this._assetEndpointService.convertPortfolioPage.bind(this._assetEndpointService)\r\n });\r\n }\r\n}\r\n\r\nAssetPageHandlerFactory.$inject = [\"$q\", \"AssetEndpointService\"];\r\nangularAMD.service(\"assetPageHandlerFactory\", AssetPageHandlerFactory);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSET_CONSTANTS } from \"../constants/asset.constants\";\r\nimport { makeAbortable } from \"../abortablePromises/MakeAbortable.function\";\r\nimport \"../utilities/helpers\";\r\nimport \"../assetEndpointService/assetEndpoint.service\";\r\n\r\nAssetSelector.$inject = [\"$rootScope\", \"$q\", \"helpers\", \"AssetEndpointService\"];\r\nfunction AssetSelector($rootScope, $q, helpers, AssetEndpointService) {\r\n this.$rootScope = $rootScope;\r\n this.$q = $q;\r\n this.helpers = helpers;\r\n this.assetEndpointService = AssetEndpointService;\r\n}\r\n\r\nAssetSelector.prototype.selectAssets = function (options) {\r\n options.singleOrMultipleSelect = \"Multiple\";\r\n return this._select(options);\r\n};\r\n\r\nAssetSelector.prototype.selectAsset = function (options) {\r\n options.singleOrMultipleSelect = \"Single\";\r\n return this._select(options).then(function (data) {\r\n return data && data[0] ? data[0] : null;\r\n });\r\n};\r\n\r\nAssetSelector.prototype.selectMediaAsset = function (options) {\r\n return this.selectAsset(options).then((data) => {\r\n if (data === null || data.SubType !== ASSET_CONSTANTS.CATEGORIES.IMAGE) {\r\n return data;\r\n }\r\n\r\n return this.assetEndpointService\r\n .getImageAltText(data.Id)\r\n .then((response) => {\r\n data.AltText = response.data;\r\n return data;\r\n })\r\n .catch((error) => {\r\n data.AltText = null;\r\n return data;\r\n });\r\n });\r\n};\r\n\r\nAssetSelector.prototype._select = function (options) {\r\n //When you are hacky and you know it.\r\n const deferred = this.$q.defer();\r\n const eventId = this.helpers.guid();\r\n const selectorOptions = {\r\n panel: \"selector\",\r\n broadcastCommand: eventId,\r\n broadcastType: \"onlyOnDone\",\r\n singleOrMultipleSelect: \"Single\",\r\n selectType: \"AssetStore\",\r\n mainTypes: [],\r\n subTypes: [],\r\n ownerships: [\"ByMe\", \"WithMe\"],\r\n currentlySelectedIds: [],\r\n excludeIds: [],\r\n excludeChildrenOf: [],\r\n includeUpload: false,\r\n selectorViews: [],\r\n actionData: undefined\r\n };\r\n\r\n Object.assign(selectorOptions, options);\r\n this.$rootScope.$broadcast(\"openRightHandSidePanel\", selectorOptions);\r\n\r\n const unregisterEvent = this.$rootScope.$on(\r\n eventId,\r\n function (event, data) {\r\n unregisterEvent();\r\n deferred.resolve(data || null);\r\n }.bind(this)\r\n );\r\n\r\n const abortablePromise = makeAbortable(deferred.promise);\r\n const selectPromise = {\r\n then(onResolve, onReject) {\r\n return abortablePromise.then(onResolve, onReject);\r\n },\r\n catch(onReject) {\r\n return abortablePromise.catch(onReject);\r\n },\r\n finally(onFinally) {\r\n return abortablePromise.finally(onFinally);\r\n },\r\n abort() {\r\n if (unregisterEvent !== null) {\r\n unregisterEvent();\r\n }\r\n abortablePromise.abort();\r\n }\r\n };\r\n\r\n return selectPromise;\r\n};\r\n\r\nangularAMD.service(\"assetSelector\", AssetSelector);\r\nexport { AssetSelector as assetSelector };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../datePicker/datePicker\";\r\nimport \"../datePicker/datePickerHelper\";\r\nimport template from \"./templates/date-toggle.html\";\r\n\r\nvar ToggleOption = function (active, element, clearKeys) {\r\n this.active = active || false;\r\n this.element = element || null;\r\n this.clearKeys = clearKeys || null;\r\n};\r\n\r\nangularAMD.directive(\"dateToggle\", [\r\n \"$sce\",\r\n \"baseUrlsFactory\",\r\n \"multiLanguageService\",\r\n \"$timeout\",\r\n \"datePickerHelper\",\r\n function ($sce, baseUrlsFactory, multiLanguageService, $timeout, datePickerHelper) {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n scope: {\r\n after: \"=\",\r\n before: \"=\",\r\n dateLabels: \"=\", //Object - {after: 'After', before: 'Before'}\r\n optionLabels: \"=\", //Optional - {after: 'Modified After', before: 'Modified Before', range: 'Date Range'}\r\n singleSelection: \"@\"\r\n },\r\n\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n //Initialise variables ---------------------------------------------------------------------------------\r\n var activeClass = \"active\";\r\n $scope.multiLanguageService = multiLanguageService;\r\n\r\n $scope.dateAfter = \"after\";\r\n $scope.dateBefore = \"before\";\r\n $scope.toggles = {\r\n after: new ToggleOption(false, null, [\"before\"]),\r\n before: new ToggleOption(false, null, [\"after\"]),\r\n both: new ToggleOption(false)\r\n };\r\n $scope.viewData = {\r\n images: {\r\n beforeDate: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"dateToggle/images/beforeDate.svg\"),\r\n afterDate: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"dateToggle/images/afterDate.svg\"),\r\n dateRange: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"dateToggle/images/dateRange.svg\")\r\n }\r\n };\r\n $scope.lastToggle = null;\r\n $scope.minDate = null;\r\n\r\n //Functions --------------------------------------------------------------------------------------------\r\n $scope.toggleDateSelection = function (toggleObj) {\r\n //Clear values based off keys.\r\n if (toggleObj.clearKeys) {\r\n $timeout(function () {\r\n clearDateValuesFromKeys(toggleObj.clearKeys);\r\n });\r\n } else {\r\n $timeout(function () {\r\n updateAllDates();\r\n });\r\n }\r\n\r\n if ($scope.lastToggle) {\r\n //Reset last toggle\r\n $scope.lastToggle.active = false;\r\n $scope.lastToggle.element.removeClass(activeClass);\r\n }\r\n\r\n //Make toggle active.\r\n toggleObj.active = true;\r\n toggleObj.element.addClass(activeClass);\r\n $scope.lastToggle = toggleObj;\r\n };\r\n\r\n //Private Functions ------------------------------------------------------------------------------------\r\n var clearDateValuesFromKeys = function (keys) {\r\n for (var i = 0, l = keys.length, key; i < l; i++) {\r\n //Clear date value\r\n key = keys[i];\r\n if ($scope[key] !== undefined) {\r\n $scope[key] = null;\r\n }\r\n }\r\n $scope.minDate = null;\r\n updateAllDates();\r\n };\r\n\r\n var clearDates = function () {\r\n $scope.after = null;\r\n $scope.before = null;\r\n $scope.minDate = null;\r\n dateUpdated($scope.dateAfter, $scope.after);\r\n dateUpdated($scope.dateBefore, $scope.before);\r\n };\r\n\r\n var dateUpdated = function (type, value) {\r\n $scope.$emit(\"datesUpdated\", [\r\n {\r\n type: type,\r\n value: value\r\n }\r\n ]);\r\n };\r\n\r\n var updateAllDates = function () {\r\n $scope.$emit(\"datesUpdated\", [\r\n { type: $scope.dateAfter, value: $scope.after },\r\n { type: $scope.dateBefore, value: $scope.before }\r\n ]);\r\n };\r\n\r\n var onDateChange = function (event, type, value) {\r\n if (event) {\r\n event.stopPropagation();\r\n }\r\n dateUpdated(type, value);\r\n };\r\n\r\n //EVENTS -----------------------------------------------------------------------------------------------\r\n $scope.$on(\"calendarCleared\" + $scope.dateAfter, function (event, value) {\r\n $scope.minDate = $scope.after = null;\r\n onDateChange(event, $scope.dateAfter, value);\r\n });\r\n $scope.$on(\"calendarCleared\" + $scope.dateBefore, function (event, value) {\r\n $scope.before = null;\r\n onDateChange(event, $scope.dateBefore, value);\r\n });\r\n\r\n $scope.afterUpdate = function (date) {\r\n $scope.after = date;\r\n $scope.minDate = datePickerHelper.dateAdd($scope.after, \"day\", 1);\r\n if ($scope.after !== null) {\r\n onDateChange(null, $scope.dateAfter, $scope.after);\r\n }\r\n };\r\n\r\n $scope.beforeUpdate = function (date) {\r\n $scope.before = date;\r\n if ($scope.before !== null) {\r\n onDateChange(null, $scope.dateBefore, $scope.before);\r\n }\r\n };\r\n }\r\n ],\r\n\r\n link: function (scope, element, attr) {\r\n //Get Elements\r\n scope.toggles.after.element = angular.element(element[0].getElementsByClassName(\"date-toggle__after\")[0]);\r\n scope.toggles.before.element = angular.element(element[0].getElementsByClassName(\"date-toggle__before\")[0]);\r\n scope.toggles.both.element = angular.element(element[0].getElementsByClassName(\"date-toggle__both\")[0]);\r\n\r\n $timeout(function () {\r\n if (scope.after && scope.before) {\r\n scope.toggleDateSelection(scope.toggles.both);\r\n } else if (scope.after) {\r\n scope.minDate = scope.after;\r\n scope.toggleDateSelection(scope.toggles.after);\r\n } else if (scope.before) {\r\n scope.toggleDateSelection(scope.toggles.before);\r\n }\r\n scope.$emit(\"dateToggleLoaded\", true);\r\n }, 250);\r\n\r\n scope.$on(\"$destroy\", function () {\r\n scope.after = null;\r\n scope.before = null;\r\n scope.minDate = null;\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
{{::dateLabels.after}}
{{::multiLanguageService.getString('labels.to')}}
{{::dateLabels.before}}
`;","export default `
({{::multiLanguageService.getString('asset_store.headings.deactivated_by_responses_to')}})
= 10 && !inSidebar}\" data-hook=\"type-options\">
= 10 ? [1,-1] : [1])\">
= 10\n ? ((filterOptions.primary.assetTypes.length + ((filterOptions.primary.assetTypes.length % 2) * i)) / 2) * i\n : filterOptions.primary.assetTypes.length)\n track by $index\">
({{::searchType === STORE_CONSTANTS.SEARCH_TYPE.RESOURCE ? multiLanguageService.getString('asset_store.headings.deactivated_by_resource') : multiLanguageService.getString('asset_store.headings.deactivated_by_asset')}})

{{::multiLanguageService.getString('collections.labels.sort_by', { sortBy: multiLanguageService.getString('asset_summary.last_modified'), time: (filters.responsesTo.Filter.LastModified | pebbleDate: \"timeOnly\"), date: (filters.responsesTo.Filter.LastModified | pebbleDate) })}}

{{::multiLanguageService.getString('collections.criteria.search_enabled.disabled_text')}}
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ButtonClass } from \"@pjs/core-ui\";\r\nimport { STORE_CONSTANTS } from \"../../constants/store.constants\";\r\nimport \"../../tagger/tagger\";\r\nimport \"../../datePicker/datePickerHelper\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"../../dateToggle/dateToggle\";\r\nimport \"../../dropdown/dropdown\";\r\nimport \"../../assetSelector/assetSelector.service\";\r\nimport \"../../react2angular/buttonComponent\";\r\nimport \"../../react2angular/switch\";\r\nimport template from \"../templates/advanced-search.html\";\r\n\r\nvar CustomFilter = function (name, filter, type) {\r\n this.DisplayName = name;\r\n this.Filter = filter ?? null;\r\n this.FilterType = type;\r\n};\r\n\r\nangularAMD.directive(\"advancedSearchContent\", [\r\n \"multiLanguageService\",\r\n \"datePickerHelper\",\r\n \"assetSelector\",\r\n \"$timeout\",\r\n function (multiLanguageService, datePickerHelper, assetSelector, $timeout) {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n scope: {\r\n filterOptions: \"=\",\r\n searchType: \"@\",\r\n inSidebar: \"=\",\r\n labels: \"=\",\r\n alignment: \"@\", //Left or Right, default of centre\r\n buttons: \"=\", //Expects an array of button objects: [{ title: 'My Button Title', class: 'btn-success', action: function(){}, validation: true}]\r\n defaults: \"=\", //Default values to load and set.\r\n showIncludeHiddenOption: \"=\",\r\n disableResponsesToFilter: \" {\r\n $scope.filters.responsesTo.Filter = filter;\r\n const subType = $scope.filters.responsesTo.FilterType.split(\".\")[1];\r\n $scope.$emit(\"searchFilterChange\", subType, $scope.filters.responsesTo, $scope.validateFilters());\r\n };\r\n\r\n $scope.openAssetSelector = function () {\r\n assetSelector\r\n .selectAsset({\r\n requiresWritePermission: true,\r\n selectType: \"ResourceCentre\",\r\n mainTypes: [\"Form\"]\r\n })\r\n .then((data) => {\r\n if (data === null) {\r\n return;\r\n }\r\n\r\n const filter = {\r\n Title: data.Title,\r\n Icon: data.Icon,\r\n Id: data.Id,\r\n LastModified: data.LastModified\r\n };\r\n updateResponsesToFilter(filter);\r\n })\r\n .catch(angular.noop);\r\n };\r\n\r\n $scope.removeResponsesToFilter = function () {\r\n updateResponsesToFilter(null);\r\n };\r\n\r\n $scope.addFilter = function (filter, overrideType) {\r\n var originalType = filter.FilterType;\r\n if (overrideType) {\r\n if (!filter.OriginalType) {\r\n filter.OriginalType = filter.FilterType;\r\n }\r\n\r\n filter.FilterType = overrideType;\r\n }\r\n\r\n var subType = filter.FilterType.split(\".\")[1];\r\n var property = $scope.filters[subType];\r\n if (property !== undefined) {\r\n //If the filter did not originally have a FilterType, then it is a default (reset required!)\r\n $scope.filters[subType] = originalType ? filter : new CustomFilter(null, null, $scope.filters[subType].FilterType);\r\n $scope.$emit(\"searchFilterChange\", subType, $scope.filters[subType], $scope.validateFilters());\r\n }\r\n };\r\n\r\n $scope.addKeywordsFilter = function (keywords) {\r\n $scope.filters.keywords.Filter = $scope.filterOptions.primary.keywords;\r\n $scope.validateFilters();\r\n $scope.$emit(\"searchFilterChange\", $scope.filters.keywords.FilterType.split(\".\")[1], $scope.filters.keywords, $scope.validateFilters());\r\n };\r\n\r\n $scope.includeHiddenClicked = function () {\r\n if (!$scope.filters.includeHidden.Filter) {\r\n $scope.resetFilter($scope.filters.includeHidden);\r\n }\r\n };\r\n\r\n $scope.toggleCriteriaSearch = (isChecked) => {\r\n $scope.filters.enableSearchByDefault.Filter = isChecked;\r\n $scope.validateFilters();\r\n };\r\n\r\n $scope.resetFilter = function (filter) {\r\n if (filter.DisplayName) {\r\n filter.Filter = null;\r\n } else {\r\n filter = null;\r\n }\r\n };\r\n\r\n $scope.getDisplayNameIfValid = function (filter) {\r\n return filter && filter.Filter ? filter.DisplayName : null;\r\n };\r\n\r\n $scope.setValuesFromDefaults = function () {\r\n var filters = $scope.filters,\r\n defaults = $scope.defaults,\r\n assetTypeFilter,\r\n ownershipFilter;\r\n\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (defaults.assetTypes && (assetTypeFilter = getFilterFromValue($scope.filterOptions.primary.assetTypes, defaults.assetTypes))) {\r\n filters.assetTypes = assetTypeFilter;\r\n }\r\n\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (defaults.ownership && $scope.filterOptions.secondary.ownership && (ownershipFilter = getFilterFromValue($scope.filterOptions.secondary.ownership, defaults.ownership))) {\r\n filters.ownership = ownershipFilter;\r\n }\r\n\r\n $scope.showKeywordField = defaults.keywords;\r\n filters.keywords.Filter = defaults.keywords;\r\n filters.responsesTo.Filter = defaults.responsesTo;\r\n filters.tags.Filter = defaults.tags || [];\r\n filters.dateFrom.Filter = defaults.dateFrom || null;\r\n filters.dateTo.Filter = defaults.dateTo || null;\r\n filters.includeHidden = defaults.includeHidden;\r\n filters.enableSearchByDefault.Filter = defaults.enableSearchByDefault;\r\n\r\n if ($scope.allowSearchDefaulting === true) {\r\n $scope.searchDefaultDisabled = !validateEnableSearchCriteria();\r\n }\r\n $scope.validateFilters();\r\n };\r\n\r\n $scope.validateFilters = function () {\r\n if ($scope.allowSearchDefaulting === true) {\r\n const isSearchDefaultDisabled = $scope.searchDefaultDisabled;\r\n $scope.searchDefaultDisabled = !validateEnableSearchCriteria();\r\n\r\n if (isSearchDefaultDisabled !== $scope.searchDefaultDisabled) {\r\n $scope.filters[\"enableSearchByDefault\"].Filter = !$scope.searchDefaultDisabled;\r\n }\r\n }\r\n\r\n $scope.filtersValid = false;\r\n for (const filterName in $scope.filters) {\r\n if (filterName !== \"enableSearchByDefault\" && $scope.filters.hasOwnProperty(filterName)) {\r\n const filter = $scope.filters[filterName];\r\n if (filter?.Filter !== undefined && filter.Filter !== null && (!Array.isArray(filter.Filter) || filter.Filter.length > 0)) {\r\n $scope.filtersValid = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n $scope.$applyAsync();\r\n return $scope.filtersValid;\r\n };\r\n\r\n $scope.updateDateDisplayName = function (dateFilter, baseName) {\r\n if (dateFilter.Filter) {\r\n dateFilter.DisplayName = baseName + \" \" + datePickerHelper.toString(dateFilter.Filter);\r\n }\r\n };\r\n\r\n //PRIVATE FUNCTIONS ------------------------------------------------------------------------------------\r\n var setActiveFilter = function (filter, activeFilter) {\r\n filter.DisplayName = activeFilter.DisplayName;\r\n filter.Filter = activeFilter.Filter;\r\n\r\n if (!filter.FilterType) {\r\n filter.FilterType = activeFilter.FilterType;\r\n }\r\n };\r\n\r\n var getFilterFromType = function (filterType) {\r\n var filter;\r\n for (var filterName in $scope.filters) {\r\n if ($scope.filters.hasOwnProperty(filterName)) {\r\n filter = $scope.filters[filterName];\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (filter && (filter.FilterType === filterType || (filter = $scope.filters[filterType.split(\".\")[1]]))) {\r\n return filter;\r\n }\r\n }\r\n }\r\n };\r\n\r\n var getFilterFromValue = function (filtersObj, value) {\r\n var result = filtersObj.where({ Filter: value });\r\n return result[0] || null;\r\n };\r\n\r\n var onTagUpdate = function (event) {\r\n event.stopPropagation();\r\n $scope.validateFilters();\r\n $scope.$emit(\"searchFilterChange\", $scope.filters.tags.FilterType.split(\".\")[1], $scope.filters.tags, $scope.validateFilters());\r\n };\r\n\r\n const validateEnableSearchCriteria = () => {\r\n const tagsFilter = $scope.filters[\"tags\"];\r\n const responsesToFilter = $scope.filters[\"responsesTo\"];\r\n const isTagFilterValid = tagsFilter?.Filter?.length !== undefined && tagsFilter.Filter.length > 0;\r\n const hasResourceSelected = responsesToFilter?.Filter !== undefined && responsesToFilter.Filter !== null;\r\n return isTagFilterValid || hasResourceSelected;\r\n };\r\n\r\n //EVENTS -----------------------------------------------------------------------------------------------\r\n $scope.$on(\"tagAdded\", onTagUpdate);\r\n $scope.$on(\"tagRemoved\", onTagUpdate);\r\n $scope.$on(\"setActiveFilter\", function (event, activeFilter) {\r\n var filter = getFilterFromType(activeFilter.FilterType);\r\n if (filter) {\r\n setActiveFilter(filter, activeFilter);\r\n }\r\n });\r\n $scope.$on(\"datesUpdated\", function (event, dates) {\r\n event.stopPropagation();\r\n var dateFilter, baseName, date;\r\n for (var i = 0, l = dates.length; i < l; i++) {\r\n date = dates[i];\r\n if (date.type === \"after\") {\r\n dateFilter = $scope.filters.dateFrom;\r\n baseName = $scope.labels.dates.after;\r\n } else {\r\n dateFilter = $scope.filters.dateTo;\r\n baseName = $scope.labels.dates.before;\r\n }\r\n dateFilter.Filter = date.value;\r\n $scope.updateDateDisplayName(dateFilter, baseName);\r\n $scope.$emit(\"searchFilterChange\", dateFilter.FilterType.split(\".\")[1], dateFilter, i === l - 1 ? $scope.validateFilters() : false);\r\n }\r\n });\r\n\r\n $scope.$on(\"removeFilter\", function (event, filterType) {\r\n var filter = getFilterFromType(filterType);\r\n if (filter) {\r\n $scope.resetFilter(filter);\r\n }\r\n });\r\n\r\n $scope.$on(\"$destroy\", function () {\r\n $scope.filters.tags.Filter.length = null;\r\n });\r\n\r\n $attrs.$observe(\"searchType\", function (newValue, oldValue) {\r\n $scope.displayAssetAndResponseFilters = newValue.indexOf(STORE_CONSTANTS.SEARCH_TYPE.EXTERNAL) === -1;\r\n });\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n if (attrs.defaults) {\r\n $timeout(function () {\r\n scope.setValuesFromDefaults();\r\n });\r\n }\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../dropdown/dropdown\";\r\nimport template from \"../templates/combo-box.html\";\r\n\r\nangularAMD.directive(\"comboBox\", function () {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n replace: true,\r\n link: function (scope, element, attrs) {\r\n scope.selectedName = \"\";\r\n\r\n scope.$watch(attrs.options, function (newOptions) {\r\n scope.options = newOptions;\r\n\r\n for (var i = 0; i < scope.options.length; i++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.options[i].type != undefined && scope.options[i].type != scope.selectedName) {\r\n scope.selectedName = scope.options[i].type;\r\n scope.options.splice(i, 0, { name: scope.selectedName, type: \"selectedName\" });\r\n }\r\n }\r\n\r\n if (scope.selectedValue) {\r\n angular.forEach(newOptions, function (option) {\r\n // tslint:disable-next-line:triple-equals\r\n if (option.value == scope.selectedValue) {\r\n scope.selectedName = option.name;\r\n }\r\n });\r\n } else {\r\n //if no filter, set to first in list\r\n scope.selectOption(newOptions[0]);\r\n }\r\n });\r\n\r\n scope.$on(\"setComboBoxValue\", function (event, value) {\r\n for (var i = 0; i < scope.options.length; i++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.options[i].value == value) {\r\n scope.selectOption(scope.options[i]);\r\n }\r\n }\r\n });\r\n\r\n scope.selectOption = function (selectedOption) {\r\n scope.selectedName = selectedOption.name;\r\n scope.selectedValue = selectedOption.value;\r\n };\r\n }\r\n };\r\n});\r\n","export default `

{{option.name}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.service(\"A11yGridFactory\", A11yGridFactory);\r\nA11yGridFactory.$inject = [\"domSearchHelper\", \"accessibilityKeyEventHelper\"];\r\n\r\nfunction A11yGridFactory(domSearchHelper, accessibilityKeyEventHelper) {\r\n this.domSearchHelper = domSearchHelper;\r\n this.accessibilityKeyEventHelper = accessibilityKeyEventHelper;\r\n}\r\n\r\nA11yGridFactory.prototype.createGrid = function (rowContainer, firstRow, gridSelector) {\r\n return new RoleGrid(rowContainer, firstRow, gridSelector, this.domSearchHelper, this.accessibilityKeyEventHelper);\r\n};\r\n\r\nfunction RoleGrid(rowContainer, firstRow, gridSelector, domSearchHelper, accessibilityKeyHelper) {\r\n this.domSearchHelper = domSearchHelper;\r\n this.accessibilityKeyHelper = accessibilityKeyHelper;\r\n this.gridSelector = gridSelector;\r\n this.gridCellSelector = this.gridSelector ? this.gridSelector : '[role=\"gridcell\"]';\r\n this.rowSelector = '[role=\"row\"]';\r\n\r\n this.row = firstRow;\r\n this.rowContainer = rowContainer;\r\n\r\n this.focusKeyMap = {};\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.leftArrow] = this.focusItemLeft.bind(this);\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.rightArrow] = this.focusItemRight.bind(this);\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.upArrow] = this.focusItemUp.bind(this);\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.downArrow] = this.focusItemDown.bind(this);\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.pageUp] = this.focusFiveRowsUp.bind(this);\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.pageDown] = this.focusFiveRowsDown.bind(this);\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.home] = this.focusFirst.bind(this);\r\n this.focusKeyMap[this.accessibilityKeyHelper.keyCodeMap.end] = this.focusLast.bind(this);\r\n}\r\n\r\nRoleGrid.prototype.getSiblingRow = function (position) {\r\n var rows = Array.prototype.slice.call(this.rowContainer[0].querySelectorAll(this.rowSelector), 0);\r\n if (rows.length === 0) {\r\n return null;\r\n }\r\n\r\n var foundIndex = rows.indexOf(this.row[0]);\r\n\r\n if (foundIndex === -1) {\r\n return null;\r\n }\r\n\r\n var newIndex = foundIndex + position;\r\n\r\n if (newIndex >= rows.length) {\r\n return rows[rows.length - 1];\r\n } else if (newIndex < 0) {\r\n return rows[0];\r\n } else {\r\n return rows[newIndex];\r\n }\r\n};\r\n\r\nRoleGrid.prototype.addKeyEvents = function () {\r\n this.rowContainer.bind(\"keydown\", this.onKeyDown.bind(this));\r\n};\r\n\r\nRoleGrid.prototype.removeKeyEvents = function () {\r\n this.rowContainer.unbind(\"keydown\");\r\n};\r\n\r\nRoleGrid.prototype.updateRow = function () {\r\n this.updateRowByElement(this.rowContainer[0].querySelector(this.rowSelector));\r\n};\r\n\r\nRoleGrid.prototype.updateRowByElement = function (element) {\r\n this.row[0] = element;\r\n};\r\n\r\nRoleGrid.prototype.focusOnRow = function (rowIndex) {\r\n var rows = this.rowContainer[0].querySelectorAll(this.rowSelector);\r\n\r\n if (rowIndex >= rows.length) {\r\n return;\r\n }\r\n\r\n this.row[0] = rows[rowIndex];\r\n this.currentGridCells = this.getCells(this.row[0]);\r\n\r\n if (this.currentGridCells.length > 0) {\r\n this.currentGridCells[0].focus();\r\n }\r\n};\r\n\r\nRoleGrid.prototype.getCells = function (rowElement) {\r\n var cells = rowElement.querySelectorAll(this.gridCellSelector);\r\n var visibleCells = [];\r\n\r\n for (var i = 0; i < cells.length; i++) {\r\n if (this.domSearchHelper.elementIsVisible(cells[i])) {\r\n visibleCells.push(cells[i]);\r\n }\r\n }\r\n\r\n return visibleCells;\r\n};\r\n\r\nRoleGrid.prototype.onKeyDown = function (event) {\r\n this.currentRow = this.row[0];\r\n this.currentGridCells = this.getCells(this.currentRow);\r\n\r\n var currentIndex = Array.prototype.indexOf.call(this.currentGridCells, event.target);\r\n var action = this.focusKeyMap[event.keyCode];\r\n\r\n if (action) {\r\n event.preventDefault();\r\n var elements = this.currentGridCells;\r\n var ctrlPressed = event.ctrlKey;\r\n var focusedElement = action(event, elements, currentIndex, ctrlPressed);\r\n if (focusedElement) {\r\n event.target.tabIndex = -1;\r\n focusedElement.tabIndex = 0;\r\n }\r\n }\r\n};\r\n\r\nRoleGrid.prototype.focusItemRight = function (event, elements, currentIndex) {\r\n if (currentIndex === elements.length - 1) {\r\n var thisRow = this.row[0];\r\n this.setNextRow(1);\r\n\r\n if (thisRow !== this.nextRow) {\r\n return this.focusElement(this.getNextGridCells(), 0);\r\n }\r\n } else {\r\n return this.focusElement(elements, currentIndex + 1);\r\n }\r\n};\r\n\r\nRoleGrid.prototype.focusItemLeft = function (event, elements, currentIndex) {\r\n if (currentIndex === 0) {\r\n var thisRow = this.row[0];\r\n this.setNextRow(-1);\r\n\r\n if (thisRow !== this.nextRow) {\r\n var gridCells = this.getNextGridCells();\r\n return this.focusElement(gridCells, gridCells.length - 1);\r\n }\r\n } else {\r\n return this.focusElement(elements, currentIndex - 1);\r\n }\r\n};\r\n\r\nRoleGrid.prototype.focusItemDown = function (event) {\r\n this.setNextRow(1);\r\n\r\n var nextElements = this.getNextGridCells();\r\n return this.nextFocus(event, nextElements);\r\n};\r\n\r\nRoleGrid.prototype.focusItemUp = function (event) {\r\n this.setNextRow(-1);\r\n\r\n var nextElements = this.getNextGridCells();\r\n return this.nextFocus(event, nextElements);\r\n};\r\n\r\nRoleGrid.prototype.focusFiveRowsDown = function (event) {\r\n this.setNextRow(5);\r\n\r\n var nextElements = this.getNextGridCells();\r\n return this.nextFocus(event, nextElements);\r\n};\r\n\r\nRoleGrid.prototype.focusFiveRowsUp = function (event) {\r\n this.setNextRow(-5);\r\n\r\n var nextElements = this.getNextGridCells();\r\n return this.nextFocus(event, nextElements);\r\n};\r\n\r\nRoleGrid.prototype.focusFirstRowAndCell = function () {\r\n var rows = this.rowContainer[0].querySelectorAll(this.rowSelector);\r\n this.setNextRow(-rows.length);\r\n\r\n var nextElements = this.getNextGridCells();\r\n return this.focusElement(nextElements, 0);\r\n};\r\n\r\nRoleGrid.prototype.focusFirst = function (event, elements, currentIndex, ctrlPressed) {\r\n if (ctrlPressed) {\r\n var focusElement = this.focusFirstRowAndCell();\r\n return focusElement;\r\n }\r\n\r\n return this.focusElement(elements, 0);\r\n};\r\n\r\nRoleGrid.prototype.focusLastRowAndCell = function () {\r\n var rows = this.rowContainer[0].querySelectorAll(this.rowSelector);\r\n this.setNextRow(rows.length - 1);\r\n\r\n var nextElements = this.getNextGridCells();\r\n return this.focusElement(nextElements, nextElements.length - 1);\r\n};\r\n\r\nRoleGrid.prototype.focusLast = function (event, elements, currentIndex, ctrlPressed) {\r\n if (ctrlPressed) {\r\n var focusElement = this.focusLastRowAndCell();\r\n return focusElement;\r\n }\r\n\r\n return this.focusElement(elements, elements.length - 1);\r\n};\r\n\r\nRoleGrid.prototype.setNextRow = function (position) {\r\n this.nextRow = this.getSiblingRow(position);\r\n\r\n if (this.nextRow === null) {\r\n return;\r\n }\r\n\r\n this.row[0] = this.nextRow;\r\n};\r\n\r\nRoleGrid.prototype.getNextGridCells = function () {\r\n this.nextGridCells = this.getCells(this.nextRow);\r\n return this.nextGridCells;\r\n};\r\n\r\nRoleGrid.prototype.nextFocus = function (event, elements) {\r\n if (this.nextGridCells.length < this.currentGridCells.length || this.nextGridCells.length > this.currentGridCells.length) {\r\n return this.focusFirstOrAround(event);\r\n } else {\r\n var currentIndex = Array.prototype.indexOf.call(this.currentGridCells, event.target);\r\n return this.focusElement(elements, currentIndex);\r\n }\r\n};\r\n\r\nRoleGrid.prototype.focusFirstOrAround = function (event) {\r\n for (var i = 0; i < this.nextGridCells.length; i++) {\r\n if (this.nextGridCells[i].classList.value === event.target.classList.value) {\r\n this.nextGridCells[i].focus();\r\n return this.nextGridCells[i];\r\n }\r\n }\r\n\r\n return this.nextGridCells[0].focus();\r\n};\r\n\r\nRoleGrid.prototype.focusElement = function (elements, index) {\r\n elements[index].focus();\r\n return elements[index];\r\n};\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { STORE_CONSTANTS } from \"../../constants/store.constants\";\r\nimport { heartIcon, editIcon, evidenceIcon } from \"@pjs/core-ui\";\r\nimport { KillSignal, takeUntil } from \"@pjs/observables\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { FavouriteStates } from \"../../observer/favourites/FavouriteStates\";\r\nimport { favouritesObserver } from \"../../observer/favourites/FavouritesObserver.const\";\r\nimport \"../../featureSettings/FeatureSettings\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../services/paginatedSearch.factory\";\r\nimport \"../../expandable/expandable\";\r\nimport \"../services/assetStoreService\";\r\nimport \"../../react2angular/icon\";\r\nimport \"../../iWantTo/directives/iWantTo\";\r\nimport \"../../utilities/pebbleDate\";\r\nimport \"../../utilities/checklistModel\";\r\nimport \"../../assetViews/sidebar/shares/shares\";\r\nimport \"../../assetViews/sidebar/submissions/submissions\";\r\nimport \"../../iWantTo/services/iWantToService\";\r\nimport \"../../mediaAsset/directives/mediaAsset\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"../../utilities/urlService\";\r\nimport \"../../utilities/accessibilityKeyEventHelper.service\";\r\nimport \"../../screenReaderAnnouncer/screenReaderAnnouncer.directive\";\r\nimport \"../../a11y/services/a11yGridFactory.service\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../react2angular/assetIcon\";\r\nimport \"../../heading/heading.component\";\r\nimport template from \"../templates/search-results.html\";\r\n\r\nangularAMD.directive(\"searchResults\", [\r\n \"$sce\",\r\n \"$timeout\",\r\n \"$q\",\r\n \"$compile\",\r\n \"$rootScope\",\r\n \"$routeParams\",\r\n \"$location\",\r\n \"$filter\",\r\n \"assetStoreService\",\r\n \"baseUrlsFactory\",\r\n \"iWantToService\",\r\n \"urlService\",\r\n \"accessibilityKeyEventHelper\",\r\n \"A11yGridFactory\",\r\n \"PaginatedSearchFactory\",\r\n \"multiLanguageService\",\r\n \"featureSettings\",\r\n function (\r\n $sce,\r\n $timeout,\r\n $q,\r\n $compile,\r\n $rootScope,\r\n $routeParams,\r\n $location,\r\n $filter,\r\n assetStoreService,\r\n baseUrlsFactory,\r\n iWantToService,\r\n urlService,\r\n accessibilityKeyEventHelper,\r\n A11yGridFactory,\r\n PaginatedSearchFactory,\r\n multiLanguageService,\r\n featureSettings\r\n ) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: true,\r\n link: function (scope, element, attrs) {\r\n var searchPromise;\r\n var assetPromise;\r\n var pageSize = scope.resultLimit;\r\n var allSelected = false;\r\n var lastSelected = null;\r\n var select_all_el = angular.element(element[0].getElementsByClassName(\"select-all-check\")[0]);\r\n const killFavouritesSignal = new KillSignal();\r\n const favouritesEnabled = featureSettings.isEnabled(\"Favourites\");\r\n\r\n attrs.$observe(\"headingLevel\", function (newVal) {\r\n scope.headingLevel = parseInt(newVal, 10);\r\n });\r\n\r\n const setSearchState = (searchType) => {\r\n const searchingAssets = searchType === STORE_CONSTANTS.SEARCH_TYPE.ASSET;\r\n scope.searchingResources = searchType === STORE_CONSTANTS.SEARCH_TYPE.RESOURCE;\r\n scope.searchingFavourites = searchType === STORE_CONSTANTS.SEARCH_TYPE.FAVOURITE;\r\n const searchingDeleted = searchType === STORE_CONSTANTS.SEARCH_TYPE.DELETED;\r\n\r\n scope.onInternalStoreWithAssets = searchingAssets || scope.searchingFavourites || searchingDeleted;\r\n scope.onInternalStoreWithResources = scope.searchingResources || scope.searchingFavourites || searchingDeleted;\r\n scope.onInternalMixedStore = scope.searchingFavourites || searchingDeleted;\r\n\r\n scope.allowFavourites = !searchingDeleted && favouritesEnabled;\r\n };\r\n\r\n scope.heartIcon = heartIcon;\r\n scope.editIcon = editIcon;\r\n scope.evidenceIcon = evidenceIcon;\r\n scope.tooltip_boundary_el = angular.element(element[0].getElementsByClassName(\"search-results-items-holder\")[0]);\r\n scope.isOpen = false;\r\n scope.roleGrid = null;\r\n\r\n var searchResults = [];\r\n scope.searchResults = [];\r\n scope.paginatedSearch = PaginatedSearchFactory.createPaginatedSearch(searchResults, 0, pageSize || 50);\r\n scope.loadedResultsMessage = \"\";\r\n scope.loadingMoreResultsMessage = \"\";\r\n scope.multiLanguageService = multiLanguageService;\r\n scope.primarySortingBy; //used to determine which dates to display when sorting\r\n scope.STORE_CONSTANTS = STORE_CONSTANTS;\r\n setSearchState(attrs[\"searchType\"]);\r\n\r\n var getSearchName = function (selectedSearchName, count) {\r\n //Get external services name\r\n if (selectedSearchName.indexOf(STORE_CONSTANTS.SEARCH_TYPE.EXTERNAL) !== -1) {\r\n var serviceId = selectedSearchName.split(\"_\")[1];\r\n for (var i = 0; i < scope.externalServices.length; i++) {\r\n var service = scope.externalServices[i];\r\n if (service.ServiceId === serviceId) {\r\n return service.Name;\r\n }\r\n }\r\n }\r\n\r\n // Change dictionary if matching an asset type reserved word search\r\n if (scope.searchType.toLowerCase().indexOf(\"assettype\") > -1) {\r\n var splits = scope.searchType.split(\"_\");\r\n selectedSearchName = splits[1];\r\n selectedSearchName = selectedSearchName.replace(\"/\", \"\").replace(\" \", \"_\");\r\n return $rootScope.multiLanguageService.getString(\"pebble_terms.asset_types.\" + selectedSearchName.toLowerCase(), { count: count });\r\n } else {\r\n return $rootScope.multiLanguageService.getString(\"asset_store.search_names.\" + scope.searchType.toLowerCase(), { count: count });\r\n }\r\n };\r\n\r\n scope._getResultsDescription = (searchObject, numOfResults, searchName) => {\r\n if (searchObject.isDefaultSearch) {\r\n return multiLanguageService.getString(`asset_store.headings.${scope.searchingExternal ? `last_modified_external_store_results` : \"last_modified_results\"}`, {\r\n count: numOfResults,\r\n storeName: searchName\r\n });\r\n }\r\n\r\n return multiLanguageService.getString(`asset_store.headings.${scope.searchingExternal ? \"external_service_search_match\" : \"search_match\"}`, {\r\n count: numOfResults,\r\n storeName: searchName\r\n });\r\n };\r\n\r\n scope._setStorePageHeading = (searchType, searchObject, numOfResults, searchName) => {\r\n scope.loaded_message = scope._getResultsDescription(searchObject, numOfResults, searchName);\r\n if (!searchObject.isDefaultSearch) {\r\n scope.storePageHeading = multiLanguageService.getString(\"asset_store.accessibility.search_results\");\r\n return;\r\n }\r\n if (scope.searchingExternal) {\r\n scope.storePageHeading = multiLanguageService.getString(\"asset_store.accessibility.external_store_page_results_heading\", { externalSystem: searchName });\r\n return;\r\n }\r\n scope.storePageHeading = getSearchName(searchType, 0);\r\n };\r\n\r\n scope._setSidePanelResultsHeadings = (searchType, searchObject, numOfResults, searchName) => {\r\n scope.sidebarResultsHeading = scope._getResultsDescription(searchObject, numOfResults, searchName);\r\n scope.loaded_message = scope.sidebarResultsHeading;\r\n };\r\n\r\n scope.doSearch = (function () {\r\n if (!scope.viewData) {\r\n return;\r\n }\r\n scope.errorStatus = \"\";\r\n scope.searchType = attrs[\"searchType\"];\r\n setSearchState(scope.searchType);\r\n\r\n var directiveViewData = angular.copy(scope.viewData);\r\n\r\n scope.searchingMultipleSources = scope.factory.getCurrentStage() === \"all\";\r\n if (scope.allowMultiSelect === undefined) {\r\n scope.allowMultiSelect = true;\r\n }\r\n if (scope.searchingMultipleSources) {\r\n scope.allowMultiSelect = false;\r\n }\r\n\r\n scope.searchNameMainStore = getSearchName(scope.searchType, 0).toLowerCase();\r\n // If a reserved word is matched or an external service is searched\r\n if (scope.searchType.indexOf(\"_\") > -1) {\r\n var splits = scope.searchType.split(\"_\");\r\n directiveViewData.SearchType = \"Asset\";\r\n\r\n // If asset type search then remove the keywords and add the MainType filter\r\n if (scope.searchType.toLowerCase().indexOf(\"assettype\") > -1) {\r\n directiveViewData.TypeFilters = [splits[1]];\r\n directiveViewData.SearchTerms = \"\";\r\n scope.viewData.SearchTerms = \"\";\r\n if (scope.stage === \"standard-filtering\" || scope.stage === \"advanced-filtering\") {\r\n scope.addFilter({\r\n DisplayName: getSearchName(scope.searchType, 0),\r\n Filter: splits[1],\r\n FilterType: \"primary.assettype\"\r\n });\r\n }\r\n } else if (scope.searchType.toLowerCase().indexOf(STORE_CONSTANTS.SEARCH_TYPE.EXTERNAL) > -1) {\r\n // Set the correct location when searching external services\r\n scope.searchingExternal = true;\r\n for (var i = 0; i < scope.externalServices.length; i++) {\r\n var externalService = scope.externalServices[i];\r\n if (externalService.ServiceId.toLowerCase() === splits[1].toLowerCase()) {\r\n directiveViewData.Location = externalService.ServiceId;\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n // Default to a normal search\r\n directiveViewData.SearchType = scope.searchType;\r\n\r\n if (scope.searchType.toLowerCase() === STORE_CONSTANTS.SEARCH_TYPE.FILE) {\r\n directiveViewData.SearchType = STORE_CONSTANTS.SEARCH_TYPE.ASSET;\r\n directiveViewData.TypeFilters = [\"File\"];\r\n }\r\n }\r\n\r\n scope.searchTick = false;\r\n scope.searchComplete = false;\r\n searchPromise = assetStoreService.doNewSearch(directiveViewData, !scope.isSidebar);\r\n\r\n searchPromise.then(function (response) {\r\n if (scope.isOpen) {\r\n scope.isOpen = false;\r\n return;\r\n }\r\n\r\n if (response.status !== 200) {\r\n scope.errorStatus = response.statusText;\r\n scope.searchTick = false;\r\n scope.searchComplete = true;\r\n assetStoreService.cancel(searchPromise);\r\n return;\r\n }\r\n if (response.data) {\r\n searchResults = response.data.TitleResults;\r\n var formatters = [];\r\n // Configure urls for each asset\r\n if (scope.searchType !== STORE_CONSTANTS.SEARCH_TYPE.RESOURCE) {\r\n formatters.push(scope.addUrlToItem);\r\n }\r\n\r\n if (formatters.length) {\r\n for (var i = 0, l = searchResults.length, j = 0, k = formatters.length; i < l; i++) {\r\n for (j = 0; j < k; j++) {\r\n formatters[j](searchResults[i]);\r\n }\r\n }\r\n }\r\n\r\n scope.paginatedSearch.setResults($filter(\"orderBy\")(searchResults, [scope.primarySort, scope.secondarySort], scope.reverseOrder));\r\n scope.paginatedSearch.getResults().then(function (results) {\r\n scope.searchResults = results;\r\n scope.allLoaded = results.length === 0 || results.length === searchResults.length;\r\n scope.searchComplete = true;\r\n scope.searchName = getSearchName(scope.searchType, scope.searchResults.length);\r\n scope.loaded_message = multiLanguageService.getString(\"asset_store.accessibility.asset_store.loaded\", { assets: scope.searchResults.length });\r\n\r\n const searchName = scope.searchingExternal ? scope.searchName : scope.searchName.toLowerCase();\r\n if (results.length === 0) {\r\n scope.loaded_message = multiLanguageService.getString(`asset_store.headings.${scope.searchingExternal ? \"no_files_found_on\" : \"no_n_match_your_search\"}`, {\r\n search_name: searchName\r\n });\r\n return;\r\n }\r\n if (scope.isSidebar) {\r\n scope._setSidePanelResultsHeadings(scope.searchType, directiveViewData, scope.searchResults.length, searchName);\r\n return;\r\n }\r\n\r\n scope._setStorePageHeading(scope.searchType, directiveViewData, scope.searchResults.length, searchName);\r\n });\r\n }\r\n\r\n if (scope.roleGrid === null) {\r\n $timeout(function () {\r\n scope.rows = angular.element(element[0].getElementsByClassName(\"rows\"));\r\n scope.row = angular.element(scope.rows[0].querySelector('[role=\"row\"]'));\r\n scope.roleGrid = A11yGridFactory.createGrid(scope.rows, scope.row, \"[data-grid-item]\");\r\n scope.roleGrid.addKeyEvents();\r\n });\r\n }\r\n });\r\n // Nasty update to the parent but I needed it to tweak filters\r\n scope.$parent.searchType = scope.searchType;\r\n })();\r\n\r\n scope.getDisplayNameFromId = function (item, userID) {\r\n for (var i = 0; i < item.Owners.length; i++) {\r\n if (item.Owners[i] !== null && item.Owners[i].Id === userID) {\r\n return item.Owners[i].DisplayName;\r\n }\r\n }\r\n\r\n return item.Owners.length === 0 ? \"\" : item.Owners[0].DisplayName;\r\n };\r\n\r\n scope.addUrlToItem = function (item) {\r\n item.url = item.Id !== $routeParams.assetId ? urlService.configureAssetUrl(item.OpenUrl) : \"\";\r\n };\r\n\r\n scope.setOrderByColumn = function (orderByOption) {\r\n scope.isOpen = false;\r\n if (scope.orderByColumn !== orderByOption.value || scope.reverseOrder !== orderByOption.reverse) {\r\n if (scope.orderByColumn !== undefined) {\r\n tracker.trackEvent(\"Asset Store\", \"Click Order by\", orderByOption.name);\r\n }\r\n\r\n scope.orderByColumn = orderByOption.value;\r\n scope.selectedOrderByTitle = multiLanguageService.getString(\"asset_store.order_by.order_by\", { option: orderByOption.title });\r\n scope.reverseOrder = orderByOption.reverse;\r\n\r\n var results = $filter(\"orderBy\")(scope.paginatedSearch.getAllStoredResults(), [scope.primarySort, scope.secondarySort], scope.reverseOrder);\r\n scope.paginatedSearch.setResults(results, scope.searchResults.length);\r\n scope.paginatedSearch.getResults().then(function (results) {\r\n scope.searchResults = results;\r\n if (scope.roleGrid) {\r\n scope.roleGrid.updateRow();\r\n }\r\n });\r\n }\r\n };\r\n\r\n scope.showOrderByOption = function (option) {\r\n if (scope.searchType.indexOf(STORE_CONSTANTS.SEARCH_TYPE.RESOURCE) > -1) {\r\n if (option.value[0] === \"CommentCount\" || option.value[0] === \"FeedbackCount\" || option.value[0] === \"SubmissionCount\") {\r\n return false;\r\n }\r\n }\r\n\r\n if (scope.searchType.indexOf(STORE_CONSTANTS.SEARCH_TYPE.EXTERNAL) > -1) {\r\n if (option.value[0] !== \"Title\" && option.value[0] !== \"Created\" && option.value[0] !== \"LastModified\") {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n scope.primarySort = function (item) {\r\n scope.primarySortingBy = scope.orderByColumn[0];\r\n return item[scope.orderByColumn[0]];\r\n };\r\n scope.secondarySort = function (item) {\r\n return item[scope.orderByColumn[1]];\r\n };\r\n\r\n scope.showMoreResults = function () {\r\n if (scope.loadingMore) {\r\n return;\r\n }\r\n\r\n scope.loadingMore = true;\r\n scope.loadingMoreResultsMessage = multiLanguageService.getString(\"search.a11y.loading\");\r\n $timeout(function () {\r\n scope.paginatedSearch.getNextSetOfResults().then(function (results) {\r\n var currentIndex = scope.searchResults.length;\r\n scope.searchResults = scope.searchResults.concat(results);\r\n\r\n $timeout(function () {\r\n scope.roleGrid.focusOnRow(currentIndex);\r\n scope.allLoaded = results.length === 0 || results.length < scope.paginatedSearch.getPageLength();\r\n scope.loadingMore = false;\r\n scope.loadedResultsMessage = multiLanguageService.getString(\"search.a11y.available_result\", { count: scope.searchResults.length });\r\n scope.loadingMoreResultsMessage = \"\";\r\n });\r\n });\r\n });\r\n };\r\n\r\n scope.selectAll = function () {\r\n allSelected = !allSelected;\r\n lastSelected = null;\r\n\r\n angular.forEach(scope.searchResults, function (result, key) {\r\n var index = scope.selectedArray.indexOf(result.Id);\r\n if (index === -1 && allSelected) {\r\n scope.selectedArray.push(result.Id);\r\n } else if (index > -1 && !allSelected) {\r\n scope.selectedArray.splice(index, 1);\r\n }\r\n });\r\n };\r\n\r\n scope.setActionBarVisibility = function () {\r\n scope.$parent.showToolbar = scope.selectedArray.length > 0;\r\n };\r\n\r\n scope.getResourceOptionsButtonAriaLabel = function (title) {\r\n return multiLanguageService.getString(\"asset_store.accessibility.open_resource_options\", { ResourceTitle: title });\r\n };\r\n\r\n scope.openResourceOptions = function () {\r\n if (scope.roleGrid) {\r\n scope.roleGrid.removeKeyEvents();\r\n }\r\n };\r\n\r\n scope.postResourceOptionsDropdownClose = function () {\r\n if (scope.roleGrid) {\r\n scope.roleGrid.addKeyEvents();\r\n }\r\n };\r\n\r\n element.on(\"$destroy\", function () {\r\n assetStoreService.cancel(searchPromise);\r\n assetStoreService.cancel(assetPromise);\r\n scope.searchResults.length = 0;\r\n watchSelected();\r\n scope.$destroy();\r\n if (scope.roleGrid) {\r\n scope.roleGrid.removeKeyEvents();\r\n }\r\n\r\n killFavouritesSignal.send();\r\n });\r\n\r\n favouritesObserver\r\n .onChange()\r\n .pipe(takeUntil(killFavouritesSignal))\r\n .subscribe((result) => {\r\n if (result.state === FavouriteStates.Favourite) {\r\n updateFavouriteIndicator(result.items, true);\r\n return;\r\n }\r\n\r\n if (result.state === FavouriteStates.Unfavourite) {\r\n if (scope.searchType === STORE_CONSTANTS.SEARCH_TYPE.FAVOURITE) {\r\n removeFromSearchResults(result.items).then(() => {\r\n focusFirstRow(result.fromSidebar);\r\n });\r\n } else {\r\n updateFavouriteIndicator(result.items, false);\r\n }\r\n }\r\n });\r\n\r\n scope.$on(\"removeFromSearchResultsEvent\", (_, args) => {\r\n removeFromSearchResults(args.removedArray).then(() => {\r\n focusFirstRow(args.fromSidebar);\r\n });\r\n });\r\n\r\n const removeFromSearchResults = (itemsToRemove) => {\r\n return scope.paginatedSearch\r\n .removeFromStoredResults((searchResult) => {\r\n return itemsToRemove.includes(searchResult.Id);\r\n })\r\n .getResults(0)\r\n .then((results) => {\r\n if (scope.selectedArray === itemsToRemove) {\r\n scope.selectedArray.length = 0;\r\n } else {\r\n scope.selectedArray.removeMany(itemsToRemove, true);\r\n }\r\n\r\n scope.searchResults = results;\r\n\r\n if (itemsToRemove.length === 0) {\r\n scope.setActionBarVisibility();\r\n }\r\n });\r\n };\r\n\r\n const focusFirstRow = (fromSidebar = false) => {\r\n if (scope.roleGrid && scope.isSidebar === fromSidebar && scope.searchResults.length > 0) {\r\n scope.$applyAsync(() => {\r\n scope.roleGrid.focusOnRow(0);\r\n });\r\n }\r\n };\r\n\r\n const updateFavouriteIndicator = (items, isFavourite) => {\r\n scope.searchResults.forEach((searchResult) => {\r\n if (items.includes(searchResult.Id)) {\r\n searchResult.IsFavourite = isFavourite;\r\n }\r\n });\r\n };\r\n\r\n scope.$on(\"unarchiveSearchResultsEvent\", function (event, args) {\r\n unarchiveSearchResultsEvent(args);\r\n });\r\n var unarchiveSearchResultsEvent = function (args) {\r\n for (var i = 0; i < scope.searchResults.length; i++) {\r\n for (var z = 0; z < args.assetArray.length; z++) {\r\n if (scope.searchResults[i].Id === args.assetArray[z]) {\r\n args.assetArray.splice(z, 1);\r\n scope.searchResults[i].AssetStatus = \"Current\";\r\n i--;\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n\r\n scope.$on(\"shareSuccessful\", function (event, args) {\r\n updateAssets(args);\r\n });\r\n\r\n //If editing tags via Asset Store don't reload the asset, else reload.\r\n var updateSearchResult = function (index, asset) {\r\n var currentAsset = scope.searchResults[index],\r\n tagsAreEqual = asset.Tags ? currentAsset.Tags.isEqualTo(asset.Tags) : false;\r\n\r\n //Check to see if tags are different or have been updated via an AssetStore\r\n if (tagsAreEqual === false) {\r\n currentAsset.Tags = asset.Tags;\r\n tagsAreEqual = true;\r\n }\r\n\r\n // Check to see if there are any basic differences\r\n if (currentAsset.Id === asset.Id && (currentAsset.Title !== asset.Title || !tagsAreEqual)) {\r\n // Replace searchResult with new asset data\r\n currentAsset = asset;\r\n\r\n // Update with new info\r\n updateAssets([asset.Id]);\r\n }\r\n };\r\n\r\n var updateAssets = function (assetIds) {\r\n var updatedAssets = assetStoreService.getSpecificAssetSearchResults(assetIds);\r\n updatedAssets.then(\r\n function (response) {\r\n for (var i = 0; i < scope.searchResults.length; i++) {\r\n for (var z = 0; z < response.data.length; z++) {\r\n if (scope.searchResults[i].Id === response.data[z].Id) {\r\n response.data[z].url = urlService.configureAssetUrl(response.data[z].OpenUrl);\r\n scope.searchResults[i] = response.data[z];\r\n response.data.splice(z, 1);\r\n i--;\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n function (error) {\r\n console.warn(`Error loading updated assets: ${error}`);\r\n }\r\n );\r\n\r\n if (scope.roleGrid) {\r\n scope.roleGrid.updateRow();\r\n }\r\n };\r\n\r\n var watchSelected = scope.$watchCollection(\"selectedArray\", function () {\r\n scope.setActionBarVisibility();\r\n scope.$parent.updateSelectedAssetType(scope.selectedArray, scope.searchResults);\r\n });\r\n\r\n scope.setOrderByColumn(scope.orderByOptions[0]); // Modified date - newest first\r\n scope.$on(\"editResource\", function (event, data) {\r\n for (var i = 0, searchResult, url; i < scope.searchResults.length; i++) {\r\n searchResult = scope.searchResults[i];\r\n if (data === searchResult.Id && searchResult.EditUrl) {\r\n url = urlService.configureAssetUrl(searchResult.EditUrl).substring(1);\r\n //Check to handle current non-V5 builder types (Workbook)\r\n if (url.indexOf(\"viewer\") === -1) {\r\n $location.url(url);\r\n } else {\r\n window.open(searchResult.EditUrl, \"_blank\");\r\n }\r\n }\r\n }\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","export default ` 0\" class-name=\"::'screen-reader-only'\">

{{::multiLanguageService.getString('asset_store.headings.searching_for', {SearchName: searchNameMainStore})}}

{{::multiLanguageService.getString('asset_store.headings.searching_for_files', {SearchName: searchNameMainStore})}}

{{errorStatus}}

0\">
0\">

{{item.Title}} {{item.MainType}}

\"\"

{{::multiLanguageService.getString('asset_store.labels.search_results.deleted_label')}}

{{item.OpenUrl.indexOf('action=View') >= 0 ? multiLanguageService.getString('asset_store.accessibility.asset_store.open_view') : multiLanguageService.getString('asset_store.accessibility.asset_store.open_edit', {Item: item.MainType})}}

{{::multiLanguageService.getString('asset_store.labels.search_results.new_label')}}

{{::multiLanguageService.getString('asset_summary.username', {UserName: item.Username})}}

{{::multiLanguageService.getString('asset_store.accessibility.asset_store.favourite_item')}} {{::multiLanguageService.getString('asset_summary.single_use')}} {{::multiLanguageService.getString('asset_summary.task')}} {{::multiLanguageService.getString('asset_summary.auto_submit')}} {{::multiLanguageService.getString('asset_summary.workspace', {Workspace: item.AutoSubmitTo})}} {{::multiLanguageService.getString('asset_summary.pebbleTemplate')}} {{::multiLanguageService.getString('asset_summary.created_by_name_at_on', {Name: getDisplayNameFromId(item, item.CreatedBy), Time: (item.Created | pebbleDate: 'timeOnly'), Date: (item.Created | pebbleDate)})}} {{::multiLanguageService.getString('asset_summary.modified_by_name_at_on', {Name: getDisplayNameFromId(item, item.LastModifiedBy), Time: (item.LastModified | pebbleDate: 'timeOnly'), Date: (item.LastModified | pebbleDate)})}} {{::multiLanguageService.getString('asset_summary.shared_by_name', {Name: item.Owners[0].DisplayName})}} {{::multiLanguageService.getString('asset_summary.collaboration_with_n_people', {Number: item.Owners.length - 1, count: item.Owners.length - 1})}}


`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\n\r\nangularAMD.factory(\"copyService\", [\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"$q\",\r\n function ($http, baseUrlsFactory, $q) {\r\n function promisedPost(url, data) {\r\n $http.defaults.withCredentials = true;\r\n var httpTimeout = $q.defer();\r\n var request = $http.post(url, data, { timeout: httpTimeout.promise });\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n promise._httpTimeout = httpTimeout;\r\n return promise;\r\n }\r\n\r\n return {\r\n takeACopy: function (copyRequest) {\r\n return promisedPost(baseUrlsFactory.api_base_url + \"Asset/TakeACopy\", copyRequest);\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ButtonClass } from \"@pjs/core-ui\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"../../expandable/expandable\";\r\nimport \"../services/copyService\";\r\nimport \"../../assetsWithLinks/directives/assetsWithLinks\";\r\nimport \"../../react2angular/buttonComponent\";\r\nimport \"../../react2angular/checkbox\";\r\nimport template from \"../templates/take-a-copy.html\";\r\n\r\nangularAMD.directive(\"takeACopy\", [\r\n \"$q\",\r\n \"$sce\",\r\n \"$rootScope\",\r\n \"baseUrlsFactory\",\r\n \"copyService\",\r\n \"$timeout\",\r\n function ($q, $sce, $rootScope, baseUrlsFactory, copyService, $timeout) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n assetId: \"=assetId\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n $scope.copyData = {\r\n copyLinked: false\r\n };\r\n $scope.toggleCopyLinked = (isChecked) => {\r\n $scope.copyData.copyLinked = isChecked;\r\n $scope.$applyAsync();\r\n };\r\n $scope.assetsWithLinks = [];\r\n $scope.dataHooks = {\r\n copyButton: \"modal-take-a-copy-btn\",\r\n cancelButton: \"modal-cancel-btn\"\r\n };\r\n }\r\n ],\r\n link: function (scope, element, attrs) {\r\n scope.buttonClass = ButtonClass;\r\n\r\n const setModalText = () => {\r\n switch ((scope.asset[0] || scope.asset).MainType.toLowerCase()) {\r\n case \"form\":\r\n scope.linked_message = $rootScope.multiLanguageService.getString(\"take_a_copy.labels.linked_message_resource\");\r\n scope.isResource = true;\r\n break;\r\n case \"workbook\":\r\n scope.linked_message = $rootScope.multiLanguageService.getString(\"take_a_copy.labels.linked_message_resource\");\r\n scope.isResource = true;\r\n break;\r\n default:\r\n scope.linked_message = $rootScope.multiLanguageService.getString(\"take_a_copy.labels.linked_message_asset\");\r\n scope.isResource = false;\r\n }\r\n };\r\n\r\n const removeAssetWithLinksListener = scope.$watchCollection(\"assetsWithLinks\", function (newValue) {\r\n if (newValue.length > 0) {\r\n scope.asset = newValue[0];\r\n scope.copyData.title = scope.multiLanguageService.getString(\"take_a_copy.labels.copy\", { title: angular.copy(scope.asset.Title) });\r\n scope.copyData.copyLinked = true;\r\n setModalText();\r\n }\r\n });\r\n\r\n const overlay = angular.element(document.getElementsByClassName(\"builder-canvas-dark-layer\")[0]);\r\n scope.sendCopyRequest = function () {\r\n const copyRequest = {\r\n AssetId: scope.asset.Id,\r\n Title: scope.copyData.title,\r\n NewTags: [],\r\n CopyExistingTags: true,\r\n CopyLinkedItems: scope.asset.Links.length ? scope.copyData.copyLinked : false,\r\n TagLinkedAssets: true\r\n };\r\n\r\n // Start animation for saving.\r\n overlay.addClass(\"show-overlay\");\r\n\r\n const copyPromise = copyService.takeACopy(copyRequest);\r\n copyPromise.then(function (response) {\r\n if (response.data && response.data.error) {\r\n overlay.removeClass(\"copy-complete\");\r\n overlay.removeClass(\"show-overlay\");\r\n } else if (response.status === 200) {\r\n $timeout(function () {\r\n scope.copyCompleted(true);\r\n }, 1000);\r\n }\r\n\r\n scope.$emit(\"copySuccessful\", scope.asset.Id);\r\n scope.$parent.hideModal();\r\n });\r\n };\r\n\r\n scope.copyCompleted = function (queued) {\r\n scope.$emit(\"copySuccessful\", scope.asset.Id);\r\n let timeoutLimit;\r\n // Used for asset updates.\r\n if (queued) {\r\n timeoutLimit = 3000;\r\n overlay.addClass(\"copy-request-queued\");\r\n } else {\r\n timeoutLimit = 1500;\r\n overlay.addClass(\"copy-complete\");\r\n }\r\n // Remove overlay from saving animation\r\n $timeout(function () {\r\n // Finish up the saving animation\r\n if (queued) {\r\n overlay.removeClass(\"copy-request-queued\");\r\n } else {\r\n overlay.removeClass(\"copy-complete\");\r\n }\r\n overlay.removeClass(\"show-overlay\");\r\n }, timeoutLimit);\r\n };\r\n\r\n scope.cancel = function () {\r\n scope.$parent.hideModal();\r\n };\r\n\r\n scope.$on(\"$destroy\", function () {\r\n removeAssetWithLinksListener();\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{::multiLanguageService.getString(\"take_a_copy.labels.copy_this_item\")}}

{{::multiLanguageService.getString(\"take_a_copy.labels.linked_items\")}}

{{::linked_message}}

{{::multiLanguageService.getString(\"take_a_copy.labels.settings_warning_title\")}}

{{::multiLanguageService.getString(\"take_a_copy.labels.settings_warning\")}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { STORE_CONSTANTS } from \"../../constants/store.constants\";\r\nimport {\r\n commentIcon,\r\n feedbackCommentIcon,\r\n informationIcon,\r\n shareToWebIcon,\r\n shareToPeopleIcon,\r\n shareToWorkspaceIcon,\r\n shareIcon,\r\n shortcutManager,\r\n Keys\r\n} from \"@pjs/core-ui\";\r\nimport { favouritesObserver } from \"../../observer/favourites/FavouritesObserver.const\";\r\nimport { launchDeleteDialog } from \"../../assetActionDialogs/launchDeleteDialog\";\r\nimport { launchRestoreDialog } from \"../../assetActionDialogs/launchRestoreDialog\";\r\nimport { launchPurgeDialog } from \"../../assetActionDialogs/launchPurgeDialog\";\r\nimport { withDigest } from \"../../react2angular/utilities/WithDigest.function\";\r\nimport \"../../react2angular/icon\";\r\nimport \"../../dropdown/dropdown\";\r\nimport \"../services/assetStoreService\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../comboBox/directives/comboBox\";\r\nimport \"../../expandable/expandable\";\r\nimport \"../../datePicker/datePicker\";\r\nimport \"./searchResults\";\r\nimport \"../services/filterFactory\";\r\nimport \"../../datePicker/datePickerHelper\";\r\nimport \"../../shareStart/directives/shareStart\";\r\nimport \"../../share/directives/share\";\r\nimport \"../../modal/directives/modalDialog\";\r\nimport \"../services/useResourceService\";\r\nimport \"../../takeACopy/directives/takeACopy\";\r\nimport \"../../tagger/tagger\";\r\nimport \"../../utilities/assetActionService\";\r\nimport \"../../modal/services/modal\";\r\nimport \"./advancedSearchContent\";\r\nimport \"../../a11y/services/a11yGridFactory.service\";\r\nimport \"../../accessKeys/accessKey.service\";\r\nimport \"../../heading/heading.component\";\r\nimport template from \"../templates/asset-store.html\";\r\n\r\nangularAMD.directive(\"assetStore\", [\r\n \"$sce\",\r\n \"$timeout\",\r\n \"$rootScope\",\r\n \"$compile\",\r\n \"assetStoreService\",\r\n \"baseUrlsFactory\",\r\n \"filterFactory\",\r\n \"datePickerHelper\",\r\n \"$routeParams\",\r\n \"$location\",\r\n \"useResourceService\",\r\n \"assetActionService\",\r\n \"modal\",\r\n \"multiLanguageService\",\r\n \"A11yGridFactory\",\r\n \"accessKeyService\",\r\n function (\r\n $sce,\r\n $timeout,\r\n $rootScope,\r\n $compile,\r\n assetStoreService,\r\n baseUrlsFactory,\r\n filterFactory,\r\n datePickerHelper,\r\n $routeParams,\r\n $location,\r\n useResourceService,\r\n assetActionService,\r\n modal,\r\n multiLanguageService,\r\n A11yGridFactory,\r\n accessKeyService\r\n ) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n $scope.STORE_CONSTANTS = STORE_CONSTANTS;\r\n $scope.defaultExcludeOptions = [\"Tag\", \"Export\"];\r\n $scope.excludeOptions = $scope.defaultExcludeOptions.slice(); //Copy Defaults - Mutable array.\r\n $scope.selectedAssetType = \"\";\r\n // SVG Images\r\n $scope.imageComments = commentIcon;\r\n $scope.imageFeedback = feedbackCommentIcon;\r\n $scope.imageShare = shareIcon;\r\n $scope.imageShareToPeople = shareToPeopleIcon;\r\n $scope.imageShareForAssessment = shareToWorkspaceIcon;\r\n $scope.imageShareToWeb = shareToWebIcon;\r\n $scope.imageInfo = informationIcon;\r\n // PNG Images\r\n $scope.tickUrl = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/asset/tick.png\");\r\n $scope.advancedSearchLabels = {\r\n dates: {\r\n after: multiLanguageService.getString(\"date_picker.from\"),\r\n ariaAfter: multiLanguageService.getString(\"advanced_search_content.aria.created_after_filter\"),\r\n ariaClearAfter: multiLanguageService.getString(\"advanced_search_content.aria.clear_after\"),\r\n before: multiLanguageService.getString(\"date_picker.to\"),\r\n ariaBefore: multiLanguageService.getString(\"advanced_search_content.aria.created_before_filter\"),\r\n ariaClearBefore: multiLanguageService.getString(\"advanced_search_content.aria.clear_before\"),\r\n ariaFrom: multiLanguageService.getString(\"advanced_search_content.aria.from_filter\"),\r\n ariaClearFrom: multiLanguageService.getString(\"advanced_search_content.aria.clear_from\"),\r\n ariaTo: multiLanguageService.getString(\"advanced_search_content.aria.to_filter\"),\r\n ariaClearTo: multiLanguageService.getString(\"advanced_search_content.aria.clear_to\")\r\n },\r\n dateOptions: {}\r\n };\r\n $scope.multiLanguageService = multiLanguageService;\r\n\r\n $scope.resourceFilterDropdownButtonId = `${$scope.$id}-asset-store-resource-filter-dropdown-button`;\r\n $scope.resourceFilterDropdownLabelId = `${$scope.$id}-asset-store-resource-filter-dropdown-label`;\r\n $scope.resourceFilterDropdownLabellbedBy = `${$scope.resourceFilterDropdownLabelId} ${$scope.resourceFilterDropdownButtonId}`;\r\n\r\n if (!$scope.activePage) {\r\n $scope.activePage = {};\r\n }\r\n\r\n //Advanced Search --------------------------------------------------------------------------------------\r\n $scope.onAdvanceSearch = function (filters) {\r\n $scope.applyFilters(filters);\r\n $scope.stage = $scope.factory.getCurrentStage();\r\n\r\n if ($scope.activePage.type === STORE_CONSTANTS.STORE_TYPE.RESOURCE && $scope.activeResourceButton !== filters.assetTypes.DisplayName) {\r\n $scope.toggleResourceFilterBtns();\r\n }\r\n\r\n $scope.doSearch($scope.chosenSearch.id);\r\n };\r\n\r\n $scope.applyFilters = function (filters) {\r\n var filter;\r\n\r\n for (var key in filters) {\r\n if (filters.hasOwnProperty(key)) {\r\n filter = filters[key];\r\n\r\n if (filter && filter.Filter && (!filter.Filter.length || filter.Filter.length > 0)) {\r\n $scope.addFilter(filter, filter.FilterType, Array.isArray(filter.Filter));\r\n } else {\r\n $scope.removeFilter(filter);\r\n }\r\n }\r\n }\r\n };\r\n }\r\n ],\r\n link: function (scope, element, attrs) {\r\n //used to make sure that the side bar open readout only happens the first time the sidebar is opened.\r\n\r\n attrs.$observe(\"headingLevel\", function (newVal) {\r\n scope.headingLevel = parseInt(newVal, 10);\r\n scope.searchResultsHeadingLevel = scope.headingLevel + 1;\r\n });\r\n\r\n attrs.$observe(\"storeLabel\", function (newVal) {\r\n scope.storeLabel = newVal;\r\n });\r\n\r\n clearTimeout(scope.accessibility_timer);\r\n scope.accessibility_timer = setTimeout(function () {\r\n var child = document.getElementById(\"accessibility-readout-node\");\r\n if (parent) {\r\n var parent = child.parentNode;\r\n parent.removeChild(child);\r\n }\r\n }, 1500);\r\n\r\n scope.helpData = {\r\n content: [\r\n {\r\n Image: \"\",\r\n Text: baseUrlsFactory.shared_component_base_url + \"assetStore/templates/help/asset-store-help-slide-1.lazy.html\",\r\n BackgroundColour: \"#FFF\",\r\n Order: 1\r\n },\r\n {\r\n Image: \"\",\r\n Text: baseUrlsFactory.shared_component_base_url + \"assetStore/templates/help/asset-store-help-slide-2.lazy.html\",\r\n BackgroundColour: \"#FFF\",\r\n Order: 2\r\n },\r\n {\r\n Image: \"\",\r\n Text: baseUrlsFactory.shared_component_base_url + \"assetStore/templates/help/asset-store-help-slide-3.lazy.html\",\r\n BackgroundColour: \"#FFF\",\r\n Order: 3\r\n },\r\n {\r\n Image: \"\",\r\n Text: baseUrlsFactory.shared_component_base_url + \"assetStore/templates/help/asset-store-help-slide-4.lazy.html\",\r\n BackgroundColour: \"#FFF\",\r\n Order: 4\r\n },\r\n {\r\n Image: \"\",\r\n Text: baseUrlsFactory.shared_component_base_url + \"assetStore/templates/help/asset-store-help-slide-5.lazy.html\",\r\n BackgroundColour: \"#FFF\",\r\n Order: 5\r\n },\r\n {\r\n Image: \"\",\r\n Text: baseUrlsFactory.shared_component_base_url + \"assetStore/templates/help/asset-store-help-slide-6.lazy.html\",\r\n BackgroundColour: \"#FFF\",\r\n Order: 6\r\n }\r\n ],\r\n type: \"banner\"\r\n };\r\n\r\n scope.resourceButtonFilters = {\r\n custom: {\r\n Icon: \"generic-template\",\r\n DisplayName: multiLanguageService.getString(\"asset_store.buttons.resourceButtonFiltersCustom\"),\r\n Filter: \"CustomTemplates\",\r\n FilterType: \"primary.assetTypes\",\r\n Visible: false\r\n },\r\n pebble: {\r\n Icon: \"generic-template\",\r\n DisplayName: multiLanguageService.getString(\"asset_store.buttons.resourceButtonFiltersPebble\"),\r\n Filter: \"PebbleTemplates\",\r\n FilterType: \"primary.assetTypes\",\r\n Visible: false\r\n },\r\n workbook: {\r\n Icon: \"workbook-reversed\",\r\n DisplayName: multiLanguageService.getString(\"asset_store.buttons.resourceButtonFiltersWorkbook\"),\r\n Filter: \"WorkBook\",\r\n FilterType: \"primary.assetTypes\",\r\n Visible: false\r\n }\r\n };\r\n\r\n var actionPromise;\r\n\r\n // Cached elements\r\n var search_results_list_el = angular.element(element[0].querySelector(\"#search-results-list\"));\r\n var narrow_your_search_el = angular.element(element[0].querySelector(\"#search-filter-advanced-bar\"));\r\n var scroller_el = element[0].querySelector(\".scroller\");\r\n\r\n // Init scope variables\r\n scope.loading = true;\r\n\r\n scope.currentProduct = attrs[\"currentProduct\"];\r\n\r\n scope.isSidebar = attrs[\"sidebarMode\"] !== undefined;\r\n\r\n scope._removeShortcuts = shortcutManager.add(\r\n [\r\n {\r\n keys: [Keys.Control, Keys.Shift, \"k\"],\r\n callback: withDigest(() => element[0].querySelector(\"[data-hook='search-input-store']\").focus(), scope),\r\n description: scope.multiLanguageService.getString(\"shortcuts.start_keyword_search\")\r\n }\r\n ],\r\n scope.multiLanguageService.getString(\"shortcuts.group_descriptions.navigation\")\r\n );\r\n\r\n scope.allowMultiSelect = attrs[\"allowMultiSelect\"] === undefined || attrs[\"allowMultiSelect\"] === \"true\";\r\n scope.selectOnly = attrs[\"selectOnly\"] === \"true\";\r\n\r\n scope.comboBoxClass = scope.isSidebar ? \"combo-box\" : \"combo-box-light\";\r\n scope.orderByOptions = [\r\n {\r\n title: multiLanguageService.getString(\"asset_store.order_by.last_modified_desc\"),\r\n value: [\"LastModified\", \"Title\"],\r\n reverse: true,\r\n name: \"Modified date (newest first)\"\r\n },\r\n {\r\n title: multiLanguageService.getString(\"asset_store.order_by.last_modified_asc\"),\r\n value: [\"LastModified\", \"Title\"],\r\n reverse: false,\r\n name: \"Modified date (oldest first)\"\r\n },\r\n {\r\n title: multiLanguageService.getString(\"asset_store.order_by.created_date_desc\"),\r\n value: [\"Created\", \"Title\"],\r\n reverse: true,\r\n name: \"Created date (newest first)\"\r\n },\r\n {\r\n title: multiLanguageService.getString(\"asset_store.order_by.created_date_asc\"),\r\n value: [\"Created\", \"Title\"],\r\n reverse: false,\r\n name: \"Created date (oldest first)\"\r\n },\r\n {\r\n title: multiLanguageService.getString(\"asset_store.order_by.title_asc\"),\r\n value: [\"Title\", \"Created\"],\r\n reverse: false,\r\n name: \"Title (A - Z)\"\r\n },\r\n {\r\n title: multiLanguageService.getString(\"asset_store.order_by.title_desc\"),\r\n value: [\"Title\", \"Created\"],\r\n reverse: true,\r\n name: \"Title (Z - A)\"\r\n },\r\n {\r\n title: multiLanguageService.getString(\"asset_store.order_by.comments\"),\r\n value: [\"CommentCount\", \"Title\"],\r\n reverse: true,\r\n name: \"No. of comments\"\r\n },\r\n {\r\n title: multiLanguageService.getString(\"asset_store.order_by.feedback\"),\r\n value: [\"FeedbackCount\", \"Title\"],\r\n reverse: true,\r\n name: \"No. of feedback items\"\r\n },\r\n {\r\n title: multiLanguageService.getString(\"asset_store.order_by.shares\"),\r\n value: [\"ShareCount\", \"ShareStatus\"],\r\n reverse: true,\r\n name: \"No. of shares\"\r\n },\r\n {\r\n title: multiLanguageService.getString(\"asset_store.order_by.submissions\"),\r\n value: [\"SubmissionCount\", \"Title\"],\r\n reverse: true,\r\n name: \"No. of submissions\"\r\n },\r\n {\r\n title: multiLanguageService.getString(\"asset_store.order_by.share_to_web\"),\r\n value: [\"PublicShare\", \"ShareStatus\"],\r\n reverse: true,\r\n name: \"Shared to web\"\r\n }\r\n ];\r\n\r\n scope.searchButtons = [\r\n {\r\n title: multiLanguageService.getString(\"asset_store.buttons.search_now\"),\r\n class: \"btn-success wide\",\r\n action: scope.onAdvanceSearch,\r\n validation: false\r\n }\r\n ];\r\n\r\n var resetSearchFilters = function () {\r\n scope.showResults = false;\r\n scope.showToolbar = false;\r\n scope.selectedArray = [];\r\n scope.resultLimit = 5;\r\n scope.tag = \"\"; // tag text box\r\n scope.includeHidden = false;\r\n scope.filterDates = {\r\n // from and to dates\r\n dateFrom: null,\r\n dateTo: null\r\n };\r\n scope.secondaryFilters = {\r\n // object to map the view to\r\n tags: []\r\n };\r\n\r\n scope.availableSearches = scope.factory.getAvailableSearches();\r\n scope.externalServices = scope.factory.getExternalServices();\r\n scope.stage = scope.factory.getCurrentStage();\r\n scope.viewData = {};\r\n\r\n scope.chosenSearch = scope.availableSearches[0];\r\n\r\n scope.loading = false;\r\n scope.tagUpdate = false;\r\n };\r\n\r\n scope.factory = new filterFactory();\r\n\r\n scope.adjustLocalsForFilters = function () {\r\n scope.filters = scope.factory.getAppliedFilters(true);\r\n scope.filterCount = scope.filters.length;\r\n scope.filterCountText = scope.multiLanguageService.getString(\"asset_store.accessibility.asset_store.number_of_applied_filters\", {\r\n count: scope.filterCount\r\n });\r\n };\r\n\r\n scope.adjustLocalsForFilters();\r\n\r\n // Init scope arrays\r\n scope.selectedArray = [];\r\n\r\n scope.bindAccessKeys = function () {\r\n const q = {\r\n key: \"q\",\r\n altKey: true,\r\n callback: function () {\r\n document.getElementsByClassName(\"asset-store-action-bar\")[0].focus();\r\n }\r\n };\r\n\r\n accessKeyService.register(\"assetStore\", [q]);\r\n };\r\n\r\n scope.unbindAccessKeys = function () {\r\n accessKeyService.remove(\"assetStore\");\r\n };\r\n\r\n scope.factory.init().then(function () {\r\n resetSearchFilters();\r\n scope.bindAccessKeys();\r\n scope.$emit(\"storeInitialised\", scope.externalServices);\r\n // You can start searching straight away\r\n // tslint:disable-next-line:triple-equals\r\n if (attrs[\"startingSearchType\"] != undefined) {\r\n scope.searchType = attrs[\"startingSearchType\"];\r\n scope.doSearch(scope.searchType);\r\n // Also observe the attribute for further changes\r\n attrs.$observe(\"startingSearchType\", function (newVal) {\r\n var temp = scope.viewData.SearchTerms;\r\n resetSearchFilters();\r\n scope.viewData.SearchTerms = temp;\r\n // Remove all filters\r\n for (var i = 0; i < scope.factory.getAppliedFilters().length; i++) {\r\n scope.factory.removeFilter(i);\r\n }\r\n scope.adjustLocalsForFilters();\r\n // Close expanded filter panels\r\n if (narrow_your_search_el.hasClass(\"expanded\")) {\r\n scope.close_on_demand = true;\r\n }\r\n scope.changeStage(\"standard-filtering\");\r\n scope.doSearch(newVal);\r\n });\r\n }\r\n\r\n if (scope.factory.getAssetStoreLoggedInUser()) {\r\n //open the help because the user is new and hasn't closed it yet.\r\n scope.$broadcast(\"openHelpBanner\");\r\n }\r\n\r\n if (scope.factory.getUseHiddenFolder()) {\r\n scope.showIncludeHiddenOption = true;\r\n }\r\n });\r\n\r\n scope.advancedSearchClick = function () {\r\n scope.$broadcast(\"resetTagsList\");\r\n scope.showSecondaryFilters = !scope.showSecondaryFilters;\r\n toggleAdvancedFiltersIcon();\r\n if (scope.showSecondaryFilters) {\r\n scroller_el.scrollTop = 0;\r\n }\r\n };\r\n\r\n var toggleAdvancedFiltersIcon = function () {\r\n var advanced_filters_btn_icon_el = angular.element(element[0].querySelector(\"#advanced-search-btn-icon\"));\r\n if (scope.showSecondaryFilters) {\r\n //it's open\r\n if (!advanced_filters_btn_icon_el.hasClass(\"icon-thin-arrow-up\")) {\r\n advanced_filters_btn_icon_el.addClass(\"icon-thin-arrow-up\");\r\n }\r\n } else {\r\n if (advanced_filters_btn_icon_el.hasClass(\"icon-thin-arrow-up\")) {\r\n advanced_filters_btn_icon_el.removeClass(\"icon-thin-arrow-up\");\r\n }\r\n }\r\n };\r\n\r\n scope.doSearch = function (searchId) {\r\n //Reset mutable array back to default on new search.\r\n scope.excludeOptions = scope.defaultExcludeOptions.slice();\r\n scope.showSecondaryFilters = false;\r\n toggleAdvancedFiltersIcon();\r\n\r\n // Reset results in view\r\n var html = \"\";\r\n search_results_list_el.empty();\r\n scope.didYouWant = scope.factory.resetDidYouWant();\r\n\r\n // Set length to 0 to make sure all references to the array are reset correctly (different to setting it to new array!!)\r\n scope.selectedArray.length = 0;\r\n scope.showToolbar = false;\r\n\r\n if (!searchId) {\r\n searchId = STORE_CONSTANTS.SEARCH_TYPE.DEFAULT;\r\n }\r\n searchId = searchId.toLowerCase();\r\n\r\n // Check to see if search terms contain reserved words (eg. blog, webfolio)\r\n scope.factory.checkReservedWordList(scope.viewData.SearchTerms, searchId);\r\n\r\n //Check for did you mean phrase.\r\n scope.didYouWant = scope.factory.getDidYouWant();\r\n // Get the available searches again\r\n scope.availableSearches = scope.factory.getAvailableSearches();\r\n\r\n // Find selected search object from available searches\r\n for (var i = 0; i < scope.availableSearches.length; i++) {\r\n if (scope.availableSearches[i].id === searchId) {\r\n scope.chosenSearch = angular.copy(scope.availableSearches[i]);\r\n\r\n if (!scope.isSidebar) {\r\n scope.chosenSearch.id = searchId;\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n // Apply filters to the selected search\r\n scope.viewData = scope.factory.convertFiltersToSearchData(scope.chosenSearch, scope.viewData.SearchTerms, scope.isSidebar);\r\n // then clean up tags\r\n scope.$broadcast(\"clearTagsFromFilters\");\r\n\r\n // If searching everything or all external services then group the results\r\n if (searchId === STORE_CONSTANTS.SEARCH_TYPE.DEFAULT || (searchId === STORE_CONSTANTS.SEARCH_TYPE.EXTERNAL && scope.isSidebar)) {\r\n scope.changeStage(\"all\");\r\n } else {\r\n // If you have chosen a preset search\r\n if (scope.stage === \"default\") {\r\n scope.changeStage(\"standard-filtering\");\r\n }\r\n }\r\n\r\n // Build each group of search results\r\n scope.resultLimit = 5;\r\n\r\n if (searchId === STORE_CONSTANTS.SEARCH_TYPE.DEFAULT && !scope.viewData.TypeFilters) {\r\n for (i = 0; i < scope.availableSearches.length; i++) {\r\n var type = scope.availableSearches[i].id;\r\n if (type.toLowerCase() !== STORE_CONSTANTS.SEARCH_TYPE.DEFAULT && type.toLowerCase() !== STORE_CONSTANTS.SEARCH_TYPE.EXTERNAL) {\r\n html =\r\n html +\r\n '';\r\n }\r\n }\r\n } else {\r\n // Show a single list of results\r\n scope.resultLimit = 100;\r\n html = html + \"\";\r\n }\r\n\r\n scope.showResults = true;\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n search_results_list_el.append($compile(html)(scope));\r\n };\r\n\r\n scope.showMore = function (searchId) {\r\n scope.changeStage(\"standard-filtering\");\r\n\r\n // If external then add the filter before loading the search\r\n if (searchId.toLowerCase().indexOf(STORE_CONSTANTS.SEARCH_TYPE.EXTERNAL) !== -1) {\r\n scope.addExternalServiceFilter(searchId);\r\n }\r\n\r\n scope.doSearch(searchId);\r\n };\r\n\r\n scope.addExternalServiceFilter = function (searchId) {\r\n for (var i = 0; i < scope.availableSearches.length; i++) {\r\n if (scope.availableSearches[i].id === STORE_CONSTANTS.SEARCH_TYPE.EXTERNAL) {\r\n scope.chosenSearch = scope.availableSearches[i];\r\n }\r\n }\r\n\r\n var splits = searchId.split(\"_\");\r\n // Set the correct location based on the searchType\r\n for (i = 0; i < scope.externalServices.length; i++) {\r\n var externalService = scope.externalServices[i];\r\n if (externalService.ServiceId.toLowerCase() === splits[1].toLowerCase()) {\r\n scope.addFilter({\r\n DisplayName: externalService.Name,\r\n Filter: externalService.ServiceId,\r\n FilterType: \"location\"\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n\r\n scope.addFilter = function (filter, overrideType, isArray) {\r\n scope.factory.addFilter(filter, overrideType, isArray);\r\n scope.adjustLocalsForFilters();\r\n scope.stage = scope.factory.getCurrentStage();\r\n\r\n $timeout(function () {\r\n var first_filter_el = element[0].querySelector(\".applied-filter-wrapper\");\r\n if (first_filter_el) {\r\n first_filter_el.focus();\r\n }\r\n }, 0);\r\n };\r\n\r\n scope.addFilterAndRunSearch = function (filter, type) {\r\n scope.addFilter(filter, type);\r\n\r\n if (narrow_your_search_el.hasClass(\"expanded\")) {\r\n scope.close_on_demand = true;\r\n }\r\n scope.$broadcast(\"setActiveFilter\", filter);\r\n\r\n return scope.doSearch(scope.chosenSearch.id);\r\n };\r\n\r\n scope.runDidYouWantSearch = function (filter, type) {\r\n scope.clearSearchTerms();\r\n scope.addFilterAndRunSearch(filter, type);\r\n };\r\n\r\n var setupCheckboxFilters = function () {\r\n // Remove it so it can be added if needed\r\n removeStoredFilter(\"secondary.includeHidden\");\r\n\r\n if (scope.includeHidden) {\r\n scope.addSecondaryFilter({\r\n DisplayName: multiLanguageService.getString(\"asset_store.labels.show_hidden_items\"),\r\n Filter: scope.includeHidden,\r\n FilterType: \"secondary.includeHidden\"\r\n });\r\n }\r\n };\r\n\r\n scope.removeFilter = function (filter) {\r\n removeStoredFilter(filter.FilterType, false, filter.Filter);\r\n };\r\n // Called from the page when clicking to remove a filter\r\n scope.removeVisibleFilter = function (filter) {\r\n removeStoredFilter(filter.type, true, filter.value);\r\n };\r\n\r\n // Remove applied and stored filters\r\n var removeStoredFilter = function (filterType, doSearch, filterValue) {\r\n // Remove from the APPLIED filters\r\n var appliedFilters = scope.factory.getAppliedFilters();\r\n for (var i = 0; i < appliedFilters.length; i++) {\r\n if (appliedFilters[i].type.indexOf(filterType) !== -1 && (filterValue === null || appliedFilters[i].value === filterValue)) {\r\n scope.factory.removeFilter(i);\r\n scope.$broadcast(\"removeFilter\", filterType, filterValue);\r\n\r\n if (scope.isSidebar && filterType === \"location\") {\r\n scope.chosenSearch = scope.availableSearches[0];\r\n }\r\n break;\r\n }\r\n }\r\n scope.adjustLocalsForFilters();\r\n\r\n if (doSearch) {\r\n if (narrow_your_search_el.hasClass(\"expanded\")) {\r\n scope.close_on_demand = true;\r\n }\r\n if (scope.factory.getAppliedFilters().length > 0) {\r\n // tslint:disable-next-line:triple-equals\r\n return scope.viewData.Location == undefined\r\n ? scope.doSearch(scope.chosenSearch.id)\r\n : scope.doSearch(scope.chosenSearch.id + \"_\" + scope.viewData.Location);\r\n } else {\r\n // Ensure asset type dropdown is reset\r\n //scope.viewData.SelectedMainType = undefined;\r\n // go back to the everything search\r\n if (scope.isSidebar) {\r\n return scope.doSearch(scope.availableSearches[0].id);\r\n }\r\n\r\n return scope.doSearch(scope.chosenSearch.id);\r\n }\r\n }\r\n };\r\n\r\n scope.clearSearchTerms = function () {\r\n scope.viewData.SearchTerms = \"\";\r\n scope.doSearch(scope.chosenSearch ? scope.chosenSearch.id : STORE_CONSTANTS.SEARCH_TYPE.DEFAULT);\r\n document.getElementById(\"search-input\").focus();\r\n };\r\n\r\n scope.changeStage = function (newStage) {\r\n var oldStage = scope.stage;\r\n\r\n scope.stage = scope.factory.setStage(newStage);\r\n scope.showSecondaryFilters = scope.stage === \"advanced-filtering\";\r\n\r\n // Resetting search\r\n // tslint:disable-next-line:triple-equals\r\n if (oldStage !== \"default\" && oldStage != newStage && (newStage === \"default\" || newStage === \"all\")) {\r\n if (scope.viewData !== null && scope.viewData !== undefined) {\r\n // if you press the back button just after trying to load store this errors\r\n\r\n var temp = scope.viewData.SearchTerms;\r\n resetSearchFilters();\r\n\r\n // If not a full reset then keep the search terms\r\n if (newStage !== \"default\") {\r\n scope.viewData.SearchTerms = temp;\r\n }\r\n\r\n if (scope.stage === \"default\") {\r\n scope.chosenSearch = scope.availableSearches[0];\r\n }\r\n }\r\n }\r\n };\r\n\r\n scope.setActionBarVisibility = function () {\r\n scope.showToolbar = scope.selectedArray.length > 0;\r\n };\r\n\r\n scope.deselectAll = function (e, assetIds) {\r\n if (typeof assetIds === \"string\") {\r\n var index;\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((index = scope.selectedArray.indexOf(assetIds)) !== -1) {\r\n scope.selectedArray.splice(index, 1);\r\n }\r\n } else {\r\n var newLength = scope.selectedArray.length,\r\n currentVal = \"\",\r\n temp = \"\",\r\n foundIndex = 0;\r\n\r\n //Deselect only duplicates\r\n for (var i = 0, l = assetIds.length; i < l; i++) {\r\n currentVal = assetIds[i];\r\n\r\n //Better for garbage collector than splicing every iteration or creating a 'clean' array\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((foundIndex = scope.selectedArray.indexOf(currentVal)) !== -1) {\r\n temp = scope.selectedArray[--newLength];\r\n scope.selectedArray[newLength] = currentVal;\r\n scope.selectedArray[foundIndex] = temp;\r\n }\r\n }\r\n scope.selectedArray.length = newLength;\r\n }\r\n };\r\n\r\n // While the Auto complete is not done do this:\r\n scope.searchTermsOnKeyDown = function (key_event) {\r\n var keyPressed = key_event.which;\r\n switch (keyPressed) {\r\n case 13: // return pressed\r\n cancelDefaultAction(key_event);\r\n scope.doSearch(scope.chosenSearch ? scope.chosenSearch.id : STORE_CONSTANTS.SEARCH_TYPE.DEFAULT);\r\n break;\r\n }\r\n };\r\n\r\n var cancelDefaultAction = function (e) {\r\n // this function cancels the default behaviour of a normal keypress\r\n var evt = e ? e : window.event;\r\n if (evt.preventDefault) {\r\n evt.preventDefault();\r\n }\r\n evt.returnValue = false;\r\n return false;\r\n };\r\n\r\n scope.hasOptions = function (item) {\r\n var allowedOptionsOnAssetTypes = [\"Form\", \"WorkBook\"];\r\n return allowedOptionsOnAssetTypes.indexOf(item.MainType) > -1 && (!!item.EditUrl || /Collaborate/.test(item.ShareStatus));\r\n };\r\n\r\n scope.goToBuilder = function (assetId, type) {\r\n var typeToLocation = { Form: \"template\", WorkBook: \"workbook\" };\r\n $location.url(\"/builder/\" + typeToLocation[type] + \"/\" + assetId);\r\n };\r\n\r\n scope.editResource = function (item) {\r\n scope.goToBuilder(item.Id, item.MainType);\r\n };\r\n\r\n scope.openResource = function (item) {\r\n var details = {\r\n AssetId: item.Id,\r\n AutoSubmit: item.AutoSubmit,\r\n AssignmentId: item.AssignmentId,\r\n WorkspaceId: item.WorkspaceId,\r\n AutoSubmitTo: item.AutoSubmitTo\r\n };\r\n\r\n useResourceService.checkUse(details);\r\n };\r\n\r\n scope.selectResource = function (item) {\r\n const requestId = $routeParams.requestId;\r\n if (requestId !== undefined) {\r\n window.location.href = `${baseUrlsFactory.api_base_url}SharedMenu/OpenIdForwarder?requestId=${requestId}&resourceId=${item.Id}`;\r\n }\r\n };\r\n\r\n ////********************\r\n //// I WANT TO FUNCTIONS\r\n ////********************\r\n\r\n var assetActionHandler = new assetActionService();\r\n\r\n var removeIWantToListener = scope.$on(\"executeIWantToOption\", function (event, iWantTo_event) {\r\n if (!assetActions) {\r\n var assetActions = {\r\n deleteAssets: { name: \"delete\", func: assetActionHandler.delete, confirm: true },\r\n archiveAssets: { name: \"archive\", func: assetActionHandler.archive, confirm: true },\r\n purgeAssets: { name: \"purge\", func: assetActionHandler.purge, confirm: true },\r\n unarchiveAssets: { name: \"unhide\", func: assetActionHandler.unarchive, confirm: true },\r\n restoreAssets: { name: \"restore\", func: assetActionHandler.restore, confirm: true },\r\n favouriteAssets: {\r\n name: \"favourite\",\r\n func: (assetIds) => {\r\n return assetActionHandler.favourite(assetIds).then((response) => {\r\n if (response.length < 1) {\r\n return;\r\n }\r\n\r\n favouritesObserver.add(response, scope.isSidebar);\r\n scope.deselectAll(null, response);\r\n });\r\n },\r\n confirm: false\r\n },\r\n unfavouriteAssets: {\r\n name: \"unfavourite\",\r\n func: (assetIds) => {\r\n return assetActionHandler.unfavourite(assetIds).then((response) => {\r\n if (response.length < 1) {\r\n return;\r\n }\r\n\r\n favouritesObserver.remove(response, scope.isSidebar);\r\n\r\n if (scope.chosenSearch.id !== STORE_CONSTANTS.SEARCH_TYPE.FAVOURITE) {\r\n scope.deselectAll(null, response);\r\n }\r\n });\r\n },\r\n confirm: false\r\n }\r\n };\r\n }\r\n scope.assetAction = assetActions[iWantTo_event.broadcast_name];\r\n if (scope.assetAction) {\r\n scope.assetActionName = assetActions[iWantTo_event.broadcast_name].name;\r\n scope.plural = scope.selectedArray.length > 1;\r\n scope.has_linked_assets = iWantTo_event.has_linked_assets;\r\n\r\n scope.confirmAssetAction = function () {\r\n function removeFromSearch(removedIds) {\r\n if (\r\n iWantTo_event.broadcast_name === \"purgeAssets\" ||\r\n iWantTo_event.broadcast_name === \"restoreAssets\" ||\r\n iWantTo_event.broadcast_name === \"deleteAssets\" ||\r\n (iWantTo_event.broadcast_name === \"archiveAssets\" && !scope.includeHidden)\r\n ) {\r\n $rootScope.$broadcast(\"removeFromSearchResultsEvent\", { removedArray: removedIds, fromSidebar: scope.isSidebar });\r\n }\r\n }\r\n\r\n function unarchiveResults(assetIds) {\r\n if (iWantTo_event.broadcast_name === \"unarchiveAssets\") {\r\n scope.$broadcast(\"unarchiveSearchResultsEvent\", { assetArray: assetIds });\r\n }\r\n }\r\n\r\n assetActions[iWantTo_event.broadcast_name].func(iWantTo_event.for_ids).then(function (response) {\r\n removeFromSearch(response);\r\n unarchiveResults(response);\r\n });\r\n };\r\n\r\n if (scope.assetAction.confirm) {\r\n const onDialogClose = function (instance) {\r\n instance.destroyObservable.subscribe(() => {\r\n scope.confirmAssetAction();\r\n scope.$applyAsync();\r\n });\r\n };\r\n\r\n const trigger = document.querySelector(\"[data-hook='store-action-bar'] [data-hook='iWantTo-btn']\");\r\n\r\n if (scope.assetActionName === \"delete\") {\r\n launchDeleteDialog(multiLanguageService, onDialogClose, scope.selectedArray.length, scope.has_linked_assets, trigger);\r\n } else if (scope.assetActionName === \"restore\") {\r\n launchRestoreDialog(multiLanguageService, onDialogClose, scope.selectedArray.length, trigger);\r\n } else {\r\n launchPurgeDialog(multiLanguageService, onDialogClose, scope.selectedArray.length, scope.has_linked_assets, trigger);\r\n }\r\n } else {\r\n scope.confirmAssetAction();\r\n }\r\n } else {\r\n assetActionHandler.invoke(iWantTo_event.broadcast_name, iWantTo_event.for_ids, {\r\n type: scope.searchType,\r\n scope: scope\r\n });\r\n scope.deselectAll(null, scope.selectedArray);\r\n }\r\n });\r\n\r\n assetActionHandler.addAction(\"editAssets\", function (assetIds) {\r\n //Broadcast to searchresult so we can open\r\n scope.$broadcast(\"editResource\", assetIds[0]);\r\n scope.deselectAll(null, assetIds);\r\n });\r\n\r\n element.on(\"$destroy\", function () {\r\n scope._removeShortcuts();\r\n scope.unbindAccessKeys();\r\n assetStoreService.cancel(actionPromise);\r\n scope.changeStage(\"default\");\r\n removeIWantToListener();\r\n scope.selectedArray.length = 0;\r\n resetSearchFilters();\r\n if (chosenSearchWatch) {\r\n chosenSearchWatch();\r\n }\r\n off();\r\n scope.$destroy();\r\n });\r\n\r\n scope.$on(\"fileUploadSuccessful\", function () {\r\n scope.factory.init().then(function () {\r\n $timeout(function () {\r\n scope.availableSearches = scope.factory.getAvailableSearches();\r\n // Find selected search object from available searches\r\n if (scope.activePage.type === STORE_CONSTANTS.STORE_TYPE.ASSET) {\r\n for (var i = 0; i < scope.availableSearches.length; i++) {\r\n if (scope.availableSearches[i].id === STORE_CONSTANTS.SEARCH_TYPE.ASSET) {\r\n scope.chosenSearch = scope.availableSearches[i];\r\n break;\r\n }\r\n }\r\n }\r\n }, 0);\r\n });\r\n if (scope.activePage.type === STORE_CONSTANTS.STORE_TYPE.ASSET) {\r\n scope.doSearch(STORE_CONSTANTS.SEARCH_TYPE.ASSET);\r\n }\r\n });\r\n\r\n scope.getExternalServiceLogo = function (logoName) {\r\n return $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/asset/\" + logoName + \".png\");\r\n };\r\n\r\n scope.toggleHelpBanner = function () {\r\n scope.$broadcast(\"toggleHelpBanner\");\r\n };\r\n\r\n scope.uploadFile = function () {\r\n modal.newModal(\r\n {\r\n scope: scope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"fileUpload/templates/modal-wrapper.lazy.html\"\r\n },\r\n true\r\n );\r\n tracker.trackEvent(\"Asset store\", \"Click\", \"Upload button\");\r\n };\r\n\r\n scope.$on(\"shareSuccessful\", scope.deselectAll);\r\n scope.$on(\"copySuccessful\", scope.deselectAll);\r\n\r\n scope.getClickedIcon = function (event, asset) {\r\n var panel = event.currentTarget.getAttribute(\"data-panelSection\");\r\n if (panel) {\r\n scope.openInfoPanel(asset.Id, panel, { jumpToSection: event.currentTarget.getAttribute(\"data-panelAction\") });\r\n }\r\n };\r\n\r\n scope.openInfoPanel = function (id, panel, actionData) {\r\n panel = typeof panel !== \"undefined\" ? panel : \"asset-info\";\r\n $rootScope.$broadcast(\"openRightHandSidePanel\", {\r\n panel: panel,\r\n assetId: id,\r\n actionData: actionData\r\n });\r\n };\r\n\r\n scope.updateSelectedAssetType = function (selectedArray, searchResults) {\r\n if (selectedArray.length === 1) {\r\n var selectedId = selectedArray[0];\r\n var assetItem = searchResults.find(function (item) {\r\n return item.Id === selectedId;\r\n });\r\n\r\n scope.selectedAssetType = assetItem ? assetItem.MainType : \"\";\r\n updateEditExcludeOption(assetItem.ResultType === STORE_CONSTANTS.RESULT_TYPE.RESOURCE);\r\n } else {\r\n scope.selectedAssetType = \"\";\r\n updateEditExcludeOption(false);\r\n }\r\n };\r\n\r\n scope.activeResourceButton = multiLanguageService.getString(\"asset_store.buttons.activeResourceButton\");\r\n scope.toggleResourceFilterBtns = function (buttonType) {\r\n const custom_btn_el = angular.element(element[0].querySelector(\"#custom-btn\"));\r\n const pebble_templates_btn_el = angular.element(element[0].querySelector(\"#pebble-templates-btn\"));\r\n const workbooks_btn_el = angular.element(element[0].querySelector(\"#workbooks-btn\"));\r\n scope.resourcesToggleButtonPressed = \"\";\r\n\r\n if (pebble_templates_btn_el.hasClass(\"toggled\") && buttonType === \"PebbleTemplates\") {\r\n removeStoredFilter(\"primary.assetTypes\", true, \"PebbleTemplates\");\r\n } else if (workbooks_btn_el.hasClass(\"toggled\") && buttonType === \"WorkBook\") {\r\n removeStoredFilter(\"primary.assetTypes\", true, \"WorkBook\");\r\n } else if (custom_btn_el.hasClass(\"toggled\") && buttonType === \"CustomTemplates\") {\r\n removeStoredFilter(\"primary.assetTypes\", true, \"CustomTemplates\");\r\n }\r\n\r\n if (custom_btn_el.hasClass(\"toggled\")) {\r\n scope.activeResourceButton = multiLanguageService.getString(\"asset_store.buttons.activeResourceButton\");\r\n custom_btn_el.removeClass(\"toggled\");\r\n } else if (buttonType === \"CustomTemplates\") {\r\n scope.activeResourceButton = scope.resourceButtonFilters.custom.DisplayName;\r\n custom_btn_el.addClass(\"toggled\");\r\n }\r\n\r\n if (pebble_templates_btn_el.hasClass(\"toggled\")) {\r\n scope.activeResourceButton = multiLanguageService.getString(\"asset_store.buttons.activeResourceButton\");\r\n pebble_templates_btn_el.removeClass(\"toggled\");\r\n } else if (buttonType === \"PebbleTemplates\") {\r\n scope.activeResourceButton = scope.resourceButtonFilters.pebble.DisplayName;\r\n pebble_templates_btn_el.addClass(\"toggled\");\r\n }\r\n\r\n if (workbooks_btn_el.hasClass(\"toggled\")) {\r\n scope.activeResourceButton = multiLanguageService.getString(\"asset_store.buttons.activeResourceButton\");\r\n workbooks_btn_el.removeClass(\"toggled\");\r\n } else if (buttonType === \"WorkBook\") {\r\n scope.activeResourceButton = scope.resourceButtonFilters.workbook.DisplayName;\r\n workbooks_btn_el.addClass(\"toggled\");\r\n }\r\n\r\n if (custom_btn_el.hasClass(\"toggled\") || pebble_templates_btn_el.hasClass(\"toggled\") || workbooks_btn_el.hasClass(\"toggled\")) {\r\n scope.resourcesToggleButtonPressed = buttonType;\r\n tracker.trackEvent(\"Resource store\", \"Click\", `${buttonType} filter button`);\r\n }\r\n };\r\n\r\n if ($routeParams.filter) {\r\n var chosenSearchWatch = scope.$watch(\"chosenSearch\", function (chosen) {\r\n // tslint:disable-next-line:triple-equals\r\n if (chosen != undefined) {\r\n var filterObj = scope.resourceButtonFilters[$routeParams.filter.toLowerCase()];\r\n if (filterObj && scope.activePage.type === STORE_CONSTANTS.STORE_TYPE.RESOURCE) {\r\n scope.addFilterAndRunSearch(filterObj);\r\n scope.toggleResourceFilterBtns(filterObj.Filter);\r\n }\r\n chosenSearchWatch();\r\n }\r\n });\r\n }\r\n\r\n var off = $rootScope.$on(\"$locationChangeStart\", function () {\r\n $location.search(\"filter\", null);\r\n off();\r\n });\r\n\r\n const updateEditExcludeOption = (allowEdit) => {\r\n var index = scope.excludeOptions.indexOf(\"Edit\");\r\n if (!allowEdit && index === -1) {\r\n scope.excludeOptions.push(\"Edit\");\r\n } else if (allowEdit && index !== -1) {\r\n scope.excludeOptions.splice(index, 1);\r\n }\r\n };\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
{{::multiLanguageService.getString('asset_store.buttons.aria.resource_filter_dropdown')}}

{{multiLanguageService.getString('asset_store.headings.selected_item', {count: selectedArray.length})}}

`;","import { ASSET_CONSTANTS } from \"../constants/asset.constants\";\r\nimport { mapAssetToPortfolioPageModel } from \"../assetPageHandler/mapAssetToPageModel.function\";\r\n\r\n/**\r\n * @param {object} dataManagerService\r\n * @param {object} multiLanguageService\r\n * @returns {PromiseLike<{ assetId: string, manager: object, pageId: string}>}\r\n */\r\nexport function createPortfolio(dataManagerService, multiLanguageService) {\r\n return dataManagerService\r\n .init({\r\n AssetId: null,\r\n Asset: { AddDefaultBannerSection: true, MainType: ASSET_CONSTANTS.TYPES.WEBFOLIO_PAGE }\r\n })\r\n .then(() => {\r\n const pageManager = dataManagerService.pageManagerObject;\r\n const pageModel = mapAssetToPortfolioPageModel(pageManager.data, pageManager.AssetId);\r\n pageModel.PageTitle = multiLanguageService.getString(\"labels.navigation.new_page\");\r\n\r\n return dataManagerService.init({ AssetId: null, Asset: { MainType: ASSET_CONSTANTS.TYPES.WEBFOLIO, Pages: [pageModel] } }).then(() => {\r\n const manager = dataManagerService.webfolioManagerObject;\r\n return { assetId: manager.AssetId, manager: manager, pageId: pageModel.PageId };\r\n });\r\n });\r\n}\r\n","export function mapAssetToPortfolioPageModel(assetViewModel, assetId) {\r\n return {\r\n Children: Array.isArray(assetViewModel.Pages) ? assetViewModel.Pages : [],\r\n IsLockedOrParentLocked: assetViewModel.Locked,\r\n PageAssetId: assetId,\r\n PageIcon: assetViewModel.MainType.toLowerCase(),\r\n PageId: assetId,\r\n PageFolder: assetViewModel.AssetFolder,\r\n PageNavigationEditable: true,\r\n /**\r\n * @deprecated PagePosition should not used by any rendering or update logic\r\n */\r\n PagePosition: -1,\r\n PageTitle: assetViewModel.Title,\r\n PageType: assetViewModel.MainType,\r\n Revision: assetViewModel.Revision\r\n };\r\n}\r\n","import { ASSET_CONSTANTS } from \"../constants/asset.constants\";\r\n\r\n/**\r\n * @param {object} dataManagerService\r\n * @param {object=} defaultAssetProperties\r\n * @returns {PromiseLike<{ assetId: string, manager: object }>}\r\n */\r\nexport function createPage(dataManagerService, defaultAssetProperties = {}) {\r\n return dataManagerService\r\n .init({\r\n AssetId: null,\r\n Asset: {\r\n MainType: ASSET_CONSTANTS.TYPES.WEBFOLIO_PAGE,\r\n AddDefaultBannerSection: true,\r\n ...defaultAssetProperties\r\n }\r\n })\r\n .then(() => {\r\n const manager = dataManagerService.pageManagerObject;\r\n return { assetId: manager.AssetId, manager: manager };\r\n });\r\n}\r\n","import { ASSET_CONSTANTS } from \"../constants/asset.constants\";\r\n\r\n/**\r\n * @param {object} dataManagerService\r\n * @param {object=} defaultAssetProperties\r\n * @returns {PromiseLike<{ assetId: string, manager: object }>}\r\n */\r\n\r\nexport function createCollection(dataManagerService, defaultAssetProperties = {}) {\r\n return dataManagerService\r\n .init({\r\n AssetId: null,\r\n Asset: {\r\n MainType: ASSET_CONSTANTS.TYPES.COLLECTION_WRAPPER,\r\n ...defaultAssetProperties\r\n }\r\n })\r\n .then(() => {\r\n const manager = dataManagerService.collectionWrapperManagerObject;\r\n return { assetId: manager.AssetId, manager: manager };\r\n });\r\n}\r\n","import { ASSET_CONSTANTS } from \"../constants/asset.constants\";\r\n\r\n/**\r\n * @param {object} dataManagerService\r\n * @param {object=} defaultAssetProperties\r\n * @returns {PromiseLike<{ assetId: string, manager: object }>}\r\n */\r\nexport function createActivityLog(dataManagerService, defaultAssetProperties = {}) {\r\n return dataManagerService\r\n .init({\r\n AssetId: null,\r\n Asset: {\r\n MainType: ASSET_CONSTANTS.TYPES.ACTIVITY_LOG,\r\n ...defaultAssetProperties\r\n }\r\n })\r\n .then(() => {\r\n const manager = dataManagerService.activityLogManagerObject;\r\n return { assetId: manager.AssetId, manager: manager };\r\n });\r\n}\r\n","import { ASSET_CONSTANTS } from \"../constants/asset.constants\";\r\n\r\n/**\r\n * @param {object} dataManagerService\r\n * @param {object=} defaultAssetProperties\r\n * @returns {PromiseLike<{ assetId: string, manager: object }>}\r\n */\r\nexport function createBlog(dataManagerService, defaultAssetProperties = {}) {\r\n return dataManagerService\r\n .init({\r\n AssetId: null,\r\n Asset: {\r\n MainType: ASSET_CONSTANTS.TYPES.BLOG,\r\n ...defaultAssetProperties\r\n }\r\n })\r\n .then(() => {\r\n const manager = dataManagerService.blogManagerObject;\r\n return { assetId: manager.AssetId, manager: manager };\r\n });\r\n}\r\n","import { ASSET_CONSTANTS } from \"../constants/asset.constants\";\r\n\r\n/**\r\n * @param {object} dataManagerService\r\n * @param {string=} linkedAsset\r\n * @param {string=} backgroundAssetId\r\n * @returns {PromiseLike<{ assetId: string, manager: object }>}\r\n */\r\nexport function createPost(dataManagerService, linkedAsset = \"\", backgroundAssetId = \"\") {\r\n const assetOptions = linkedAsset === \"\" ? [] : [{ Key: \"AddTo\", Value: linkedAsset }];\r\n\r\n return dataManagerService\r\n .init({\r\n AssetId: null,\r\n Asset: {\r\n MainType: ASSET_CONSTANTS.TYPES.POST,\r\n AddDefaultBannerSection: true,\r\n BackgroundAssetId: backgroundAssetId,\r\n AssetOptions: assetOptions\r\n }\r\n })\r\n .then(() => {\r\n const manager = dataManagerService.postManagerObject;\r\n return { assetId: manager.AssetId, manager: manager };\r\n });\r\n}\r\n","import { ASSET_CONSTANTS } from \"../constants/asset.constants\";\r\n\r\n/**\r\n * @param {object} dataManagerService\r\n * @returns {PromiseLike<{ assetId: string, manager: object }>}\r\n */\r\nexport function createTemplateResource(dataManagerService) {\r\n return dataManagerService\r\n .init({\r\n AssetId: null,\r\n Asset: { MainType: ASSET_CONSTANTS.TYPES.TEMPLATE_BUILDER, AddDefaultBannerSection: true }\r\n })\r\n .then(() => {\r\n const manager = dataManagerService.templateBuilderManagerObject;\r\n return { assetId: manager.AssetId, manager: manager };\r\n });\r\n}\r\n","/**\r\n * @param {object} dataManagerService\r\n * @returns {PromiseLike<{ assetId: string, manager: object }>}\r\n */\r\nexport function createWorkbookResource(dataManagerService) {\r\n return dataManagerService\r\n .init({\r\n AssetId: null,\r\n Asset: { MainType: \"WorkbookBuilder\" }\r\n })\r\n .then(() => {\r\n const manager = dataManagerService.workbookBuilderManagerObject;\r\n return { assetId: manager.AssetId, manager: manager };\r\n });\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSET_CONSTANTS } from \"../../constants/asset.constants\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../builder/dataManager/dataManagerService\";\r\nimport \"../../modal/services/modal\";\r\nimport \"./useResourceService\";\r\nimport \"../../utilities/urlService\";\r\nimport \"../../utilities/typeCheck.service\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport { createPortfolio } from \"../../assetCreation/CreatePortfolio.function\";\r\nimport { createPage } from \"../../assetCreation/CreatePage.function\";\r\nimport { createCollection } from \"../../assetCreation/CreateCollection.function\";\r\nimport { createActivityLog } from \"../../assetCreation/CreateActivityLog.function\";\r\nimport { createBlog } from \"../../assetCreation/CreateBlog.function\";\r\nimport { createPost } from \"../../assetCreation/CreatePost.function\";\r\nimport { createTemplateResource } from \"../../assetCreation/CreateTemplateResource.function\";\r\nimport { createWorkbookResource } from \"../../assetCreation/CreateWorkbookResource.function\";\r\n\r\nangularAMD.factory(\"assetCreateService\", [\r\n \"baseUrlsFactory\",\r\n \"dataManagerService\",\r\n \"$location\",\r\n \"$rootScope\",\r\n \"$q\",\r\n \"modal\",\r\n \"useResourceService\",\r\n \"urlService\",\r\n \"typeCheck\",\r\n function (baseUrlsFactory, dataManagerService, $location, $rootScope, $q, modal, useResourceService, urlService, typeCheck) {\r\n const withManager = (callback) => callback.bind(null, dataManagerService);\r\n const withManagerAndMultiLang = (callback) => callback.bind(null, dataManagerService, $rootScope.multiLanguageService);\r\n\r\n return {\r\n _allowedRedirectAppName: [\"Plus\", \"Admissions\"],\r\n _assetTypeCreators: new Map([\r\n [ASSET_CONSTANTS.TYPES.WEBFOLIO, withManagerAndMultiLang(createPortfolio)],\r\n [ASSET_CONSTANTS.TYPES.WEBFOLIO_PAGE, withManager(createPage)],\r\n [ASSET_CONSTANTS.TYPES.COLLECTION_WRAPPER, withManager(createCollection)],\r\n [ASSET_CONSTANTS.TYPES.ACTIVITY_LOG, withManager(createActivityLog)],\r\n [ASSET_CONSTANTS.TYPES.BLOG, withManager(createBlog)],\r\n [ASSET_CONSTANTS.TYPES.POST, withManager(createPost)],\r\n [ASSET_CONSTANTS.TYPES.TEMPLATE_BUILDER, withManager(createTemplateResource)],\r\n [ASSET_CONSTANTS.TYPES.WORKBOOK_BUILDER, withManager(createWorkbookResource)]\r\n ]),\r\n\r\n createAndGoToWebfolio: function (forceHistory) {\r\n $rootScope.appIsLoaded = false;\r\n\r\n createPortfolio(dataManagerService, $rootScope.multiLanguageService)\r\n .then((assetDetails) => {\r\n dataManagerService.primary_id = assetDetails.assetId;\r\n setTimeout(function () {\r\n dataManagerService.dtos[assetDetails.assetId].is_saved = true;\r\n }, 700);\r\n\r\n var historyPath = $location.path(\"webfolio/\" + assetDetails.assetId).search({ pageId: assetDetails.pageId });\r\n\r\n if (!forceHistory) {\r\n historyPath.replace();\r\n }\r\n })\r\n .catch(this._errorHandler.bind(this, ASSET_CONSTANTS.TYPES.WEBFOLIO));\r\n },\r\n\r\n createAndGoToFolioPage: function (forceHistory, onBeforeRedirect, keepHistory, defaultAssetProperties) {\r\n this._createThenGoToAsset(createPage, ASSET_CONSTANTS.TYPES.WEBFOLIO_PAGE, onBeforeRedirect, keepHistory, true, defaultAssetProperties);\r\n },\r\n\r\n createAndGoToCollection: function (onBeforeRedirect, keepHistory, defaultAssetProperties) {\r\n this._createThenGoToAsset(createCollection, ASSET_CONSTANTS.TYPES.COLLECTION_WRAPPER, onBeforeRedirect, keepHistory, true, defaultAssetProperties);\r\n },\r\n\r\n createAndGoToActivityLog: function (onBeforeRedirect, keepHistory, defaultAssetProperties) {\r\n this._createThenGoToAsset(createActivityLog, ASSET_CONSTANTS.TYPES.ACTIVITY_LOG, onBeforeRedirect, keepHistory, true, defaultAssetProperties);\r\n },\r\n\r\n createAndGoToBlog: function (onBeforeRedirect, keepHistory, defaultAssetProperties) {\r\n this._createThenGoToAsset(createBlog, ASSET_CONSTANTS.TYPES.BLOG, onBeforeRedirect, keepHistory, true, defaultAssetProperties);\r\n },\r\n\r\n /**\r\n * Create a post:\r\n * Used on Add Post button on blog\r\n *\r\n * AddToId is the id of the blog the post should be\r\n * automatically be adding to.\r\n * @param addToId\r\n * @param backgroundAssetId\r\n * @param historyId\r\n */\r\n createAndGoToPost: function (addToId, backgroundAssetId, historyId) {\r\n $rootScope.appIsLoaded = false;\r\n\r\n createPost(dataManagerService, addToId, backgroundAssetId)\r\n .then((assetDetails) => {\r\n if ($rootScope.appName !== \"Plus\") {\r\n window.location.href = baseUrlsFactory.api_base_url + \"SharedMenu/Forwarder?location=PlusHTML5&action=Edit&mainType=post&id=\" + assetDetails.assetId;\r\n return;\r\n }\r\n\r\n const searchParams = historyId ? { historyId: historyId } : \"\";\r\n $location.path(\"post/\" + assetDetails.assetId).search(searchParams);\r\n })\r\n .catch(this._errorHandler.bind(this, ASSET_CONSTANTS.TYPES.POST));\r\n },\r\n\r\n createAndGoToTemplateBuilder: function (forceHistory) {\r\n this._createThenGoToAsset(createTemplateResource, ASSET_CONSTANTS.TYPES.TEMPLATE_BUILDER, null, false, forceHistory);\r\n },\r\n\r\n createAndGoToWorkbookBuilder: function (forceHistory) {\r\n this._createThenGoToAsset(createWorkbookResource, ASSET_CONSTANTS.TYPES.WORKBOOK_BUILDER, null, false, forceHistory);\r\n },\r\n\r\n createAndGoToActivityExperience: function (details) {\r\n urlService.promisedGet(baseUrlsFactory.api_base_url + \"Search/GetGenericTemplate\", { purpose: \"Activity\" }).then(function (response) {\r\n const templateDetails = {\r\n AssetId: response.data,\r\n AddToId: details.addToId,\r\n AutoSubmit: details.autoSubmit,\r\n AssignmentId: details.assignmentId,\r\n WorkspaceId: details.workspaceId,\r\n AutoSubmitTo: details.autoSubmitTo\r\n };\r\n useResourceService.checkUse(templateDetails);\r\n });\r\n },\r\n\r\n createAssetFromUrl: function (mainType) {\r\n const createAsset = this._assetTypeCreators.get(mainType);\r\n if (createAsset === undefined) {\r\n return $q.reject(`\"Cannot create asset. The provided type ${mainType} cannot be handled.`);\r\n }\r\n\r\n return createAsset().then((assetDetails) => urlService.createUrl(assetDetails.assetId, assetDetails.manager.data.MainType));\r\n },\r\n\r\n /**\r\n * @private\r\n * @param {function} assetCreator\r\n * @param {string} errorType\r\n * @param {function=} onBeforeRedirect\r\n * @param {boolean=} keepHistory\r\n * @param {boolean=} forceHistory\r\n * @param {object=} defaultAssetProperties\r\n */\r\n _createThenGoToAsset: function (assetCreator, errorType, onBeforeRedirect, keepHistory, forceHistory, defaultAssetProperties) {\r\n $rootScope.appIsLoaded = false;\r\n assetCreator(dataManagerService, defaultAssetProperties)\r\n .then((assetDetails) => this._onCreateSuccess(assetDetails, onBeforeRedirect, keepHistory, forceHistory))\r\n .catch(this._errorHandler.bind(this, errorType));\r\n },\r\n\r\n /**\r\n * @private\r\n * @param {{ assetId: string, manager: object}} assetDetails\r\n * @param {function=} callback\r\n * @param {boolean=} keepHistory\r\n * @param {boolean=} forceHistory\r\n */\r\n _onCreateSuccess: function (assetDetails, callback, keepHistory, forceHistory = true) {\r\n const assetId = assetDetails.assetId;\r\n const mainType = assetDetails.manager.data.MainType;\r\n dataManagerService.primary_id = assetDetails.assetId;\r\n\r\n // used by inline placeholder asset creation\r\n // please check assetManipulation.service.js for more info.\r\n if (typeCheck.isFunction(callback)) {\r\n callback(assetDetails.manager);\r\n }\r\n\r\n if (!this._allowedRedirectAppName.contains($rootScope.appName)) {\r\n window.location.href = baseUrlsFactory.api_base_url + \"SharedMenu/Forwarder?location=PlusHTML5&action=Edit&mainType=\" + mainType + \"&id=\" + assetId;\r\n return;\r\n }\r\n\r\n const redirectPath = $location.path(urlService.createUrl(assetId, mainType));\r\n redirectPath.search(\"pageId\", null);\r\n\r\n if (keepHistory !== true) {\r\n redirectPath.search(\"\");\r\n }\r\n\r\n if (!forceHistory) {\r\n redirectPath.replace();\r\n }\r\n },\r\n\r\n _errorHandler: function (type) {\r\n $rootScope.appIsLoaded = true;\r\n\r\n const i18nType = $rootScope.multiLanguageService.getString(`types.main_types.${type.toLowerCase()}`);\r\n const props = {\r\n title: $rootScope.multiLanguageService.getString(\"portfolioAndFoliopages.unable_to_continue\"),\r\n message: $rootScope.multiLanguageService.getString(\"portfolioAndFoliopages.unable_to_create\", { type: i18nType }),\r\n button_label: $rootScope.multiLanguageService.getString(\"portfolioAndFoliopages.okay\")\r\n };\r\n\r\n modal.launch(baseUrlsFactory.shared_component_base_url + \"modalDialogComponent/templates/generic-pop-up.lazy.html\", props);\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../builder/dataManager/dataManagerService\";\r\nimport \"../../collections/directives/collection\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"../../utilities/helpers\";\r\nimport \"../../utilities/urlService\";\r\nimport { TIMEOUT_CONSTANTS } from \"../../constants/timeout.constants\";\r\n\r\nangularAMD.factory(\"assetDtoHelperFactory\", [\r\n \"$rootScope\",\r\n \"$location\",\r\n \"$timeout\",\r\n \"$window\",\r\n \"baseUrlsFactory\",\r\n \"$q\",\r\n \"dataManagerService\",\r\n \"helpers\",\r\n \"urlService\",\r\n function ($rootScope, $location, $timeout, $window, baseUrlsFactory, $q, dataManagerService, helpers, urlService) {\r\n var AssetDtoHelper = (function () {\r\n function AssetDtoHelper(overlay_el) {\r\n this.overlay = overlay_el;\r\n }\r\n\r\n AssetDtoHelper.prototype.assetOptionsKeys = [\"BackgroundImageAssetId\", \"SubTitle\", \"SortOrder\", \"ReverseOrder\", \"CpdTimeInMins\", \"CpdPoints\"];\r\n\r\n AssetDtoHelper.prototype.updateModel = function (modelKey, newValue, assetDto, hasLocalStorage, assetId) {\r\n var keys = modelKey.split(\".\"),\r\n key = keys[keys.length - 1],\r\n updated = false;\r\n\r\n if (this.assetOptionsKeys.contains(key)) {\r\n updated = this.updateAssetOption(assetDto, key, newValue, true);\r\n } else if (assetDto.hasOwnProperty(key)) {\r\n assetDto[key] = newValue;\r\n updated = true;\r\n }\r\n\r\n if (hasLocalStorage && updated && assetId) {\r\n assetDto.LastModified = new Date();\r\n var localData = dataManagerService.dtos[assetId];\r\n localData.reviseData();\r\n localData.updateDtoModel(assetDto);\r\n localData.save();\r\n }\r\n };\r\n\r\n AssetDtoHelper.prototype.updateAssetOption = function (assetDto, key, value) {\r\n var option = assetDto.AssetOptions.where({ Key: key });\r\n if (helpers.isNotEmptyArray(option)) {\r\n if (option[0].Value !== value) {\r\n option[0].Value = value;\r\n return true;\r\n }\r\n } else {\r\n assetDto.AssetOptions.push({\r\n Key: key,\r\n Value: value\r\n });\r\n\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n AssetDtoHelper.prototype.removeAssetOption = function (assetDto, key) {\r\n assetDto.AssetOptions = assetDto.AssetOptions.filter((x) => x.Key !== key);\r\n };\r\n\r\n AssetDtoHelper.prototype.getAssetOptionValue = function (assetDto, key) {\r\n var found = assetDto.AssetOptions.where({ Key: key })[0];\r\n return found ? found.Value : \"\";\r\n };\r\n\r\n AssetDtoHelper.prototype.saveAsset = function (assetDto) {\r\n var self = this;\r\n this.showSavingDialog();\r\n // check revision number hasn't been set to NaN\r\n if (isNaN(assetDto.Revision)) {\r\n assetDto.Revision = -1;\r\n }\r\n var savePromise = urlService.promisedPost(baseUrlsFactory.api_base_url + \"AssetDto/saveOrUpdate\", { model: assetDto });\r\n return savePromise.then(self.hideSavingDialog);\r\n };\r\n\r\n AssetDtoHelper.prototype.postSaveActions = function (postSaveAction, assetId) {\r\n switch (postSaveAction.type) {\r\n case \"urlChange\":\r\n $window.location.href = postSaveAction.url;\r\n break;\r\n case \"preview\":\r\n $location.path(\"/viewer/\" + assetId);\r\n break;\r\n case \"callback\":\r\n postSaveAction.callback();\r\n }\r\n };\r\n\r\n AssetDtoHelper.prototype.showSavingDialog = function () {\r\n this.overlay.addClass(\"show-overlay\");\r\n };\r\n\r\n AssetDtoHelper.prototype.hideSavingDialog = function () {\r\n var self = this;\r\n return $timeout(function () {\r\n self.overlay.removeClass(\"show-overlay\");\r\n }, TIMEOUT_CONSTANTS.SAVE_OVERLAY);\r\n };\r\n\r\n return AssetDtoHelper;\r\n })();\r\n\r\n return AssetDtoHelper;\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../utilities/urlService\";\r\nimport \"../../user/userAPI.service\";\r\nimport \"../../assetEndpointService/assetEndpoint.service\";\r\n\r\nangularAMD.factory(\"assetStoreService\", [\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"$q\",\r\n \"$log\",\r\n \"$window\",\r\n \"$location\",\r\n \"urlService\",\r\n \"UserAPI\",\r\n \"AssetEndpointService\",\r\n function ($http, baseUrlsFactory, $q, $log, $window, $location, urlService, UserAPI, AssetEndpointService) {\r\n return {\r\n doNewSearch: function (searchObject, fullSearch) {\r\n var action = fullSearch ? \"Search/FullSearch\" : \"Search\";\r\n return urlService.promisedPost(baseUrlsFactory.api_base_url + action, searchObject);\r\n },\r\n\r\n archiveAssets: function (assetIds) {\r\n return urlService.promisedPost(baseUrlsFactory.api_base_url + \"Asset/ArchiveAssets\", assetIds);\r\n },\r\n\r\n deleteAssets: function (assetIds) {\r\n return urlService.promisedPost(baseUrlsFactory.api_base_url + \"Asset/DeleteAssets\", assetIds);\r\n },\r\n\r\n purgeAssets: function (assetIds, ignoreDeletedFolder) {\r\n var data = {\r\n assetIds: assetIds,\r\n ignoreDeletedFolder: ignoreDeletedFolder\r\n };\r\n return urlService.promisedPost(baseUrlsFactory.api_base_url + \"Asset/PurgeAssets\", data);\r\n },\r\n\r\n unarchiveAssets: function (assetIds) {\r\n return urlService.promisedPost(baseUrlsFactory.api_base_url + \"Asset/UnarchiveAssets\", assetIds);\r\n },\r\n\r\n restoreAssets: function (assetIds) {\r\n return urlService.promisedPost(baseUrlsFactory.api_base_url + \"Asset/RestoreAssets\", assetIds);\r\n },\r\n\r\n openAssets: function (assetIds) {\r\n // get urls for all assets\r\n var requestedAssets = angular.copy(assetIds);\r\n urlService.promisedPost(baseUrlsFactory.api_base_url + \"Asset/GetAssetUrls\", requestedAssets).then(function (response) {\r\n var urls = response.data;\r\n // configure them all\r\n angular.forEach(urls, function (url) {\r\n url = urlService.configureAssetUrl(url);\r\n if (urls.length === 1) {\r\n url = url.replace(\"#/\", \"\");\r\n $location.path(url);\r\n } else {\r\n // open each one\r\n $window.open(url, \"_blank\");\r\n }\r\n });\r\n });\r\n },\r\n\r\n changeAssetFolder: function (assetId, folder) {\r\n var queryStringParams = \"?assetId=\" + assetId + \"&destinationFolder=\" + folder;\r\n return $http.post(baseUrlsFactory.api_base_url + \"Asset/ChangeAssetFolder\" + queryStringParams).then(function (response) {\r\n return response ? response.data : $q.reject();\r\n });\r\n },\r\n\r\n getAssetWithLinks: function (id, removeFeedback, isCopying) {\r\n return urlService.promisedGet(baseUrlsFactory.api_base_url + \"Asset/GetAssetWithLinks\", {\r\n id: id,\r\n removeFeedback: removeFeedback || false,\r\n isCopying: isCopying || false\r\n });\r\n },\r\n\r\n getAssetWithAvailableActions: function (assetId) {\r\n return AssetEndpointService.getAssetWithAvailableActions(assetId);\r\n },\r\n\r\n isAsset: function (id, mainType) {\r\n return AssetEndpointService.isAsset(id, mainType);\r\n },\r\n\r\n getPublicAssetReference: function (id) {\r\n return AssetEndpointService.getPublicAssetReference(id);\r\n },\r\n\r\n getAssetVersions: function (id) {\r\n return urlService.promisedGet(baseUrlsFactory.api_base_url + \"AssetSidebar/PreviousVersions\", {\r\n assetId: id\r\n });\r\n },\r\n getAssetReference: function (id) {\r\n return urlService.promisedPost(baseUrlsFactory.api_base_url + \"Asset/GetAssetReference?assetId=\" + id);\r\n },\r\n\r\n getAvailableActions: function (ids) {\r\n return urlService.promisedPost(baseUrlsFactory.api_base_url + \"Asset/GetAvailableActions\", ids);\r\n },\r\n\r\n getSpecificAssetSearchResults: function (ids) {\r\n return urlService.promisedPost(baseUrlsFactory.api_base_url + \"Search/GetSpecificAssets\", ids);\r\n },\r\n\r\n cancel: function (promise) {\r\n // If the promise does not contain a hook into the deferred timeout,\r\n // the simply ignore the cancel request.\r\n if (promise && promise._httpTimeout && promise._httpTimeout.resolve) {\r\n promise._httpTimeout.resolve();\r\n }\r\n },\r\n\r\n initSearch: function () {\r\n return urlService.promisedGet(baseUrlsFactory.api_base_url + \"Search/InitialiseSearch\");\r\n },\r\n\r\n stopShowingAssetStoreHelpForLoggedInUser: function () {\r\n return UserAPI.changeUserSetting(\"HideAssetStoreHelp\", \"true\");\r\n },\r\n\r\n getAssetAndCheckPermission: function (params, workbookBuilderMode) {\r\n return workbookBuilderMode ? AssetEndpointService.getBuilder(params) : AssetEndpointService.getAssetAndCheckPermission(params);\r\n },\r\n\r\n getAssetInUseStats: function (assetIds) {\r\n return urlService.promisedPost(baseUrlsFactory.api_base_url + \"AssetDto/GetAssetInUseStats/\", assetIds);\r\n },\r\n\r\n getEditStatusForAssets: function (assetIds) {\r\n return AssetEndpointService.getEditStatusForAssets(assetIds).then(function (response) {\r\n return response ? response.data : $q.reject();\r\n });\r\n },\r\n\r\n getEditStatusForAsset: function (assetId) {\r\n return this.getEditStatusForAssets([assetId]).then(function (data) {\r\n return data && data[0].Value ? data[0].Value : null;\r\n });\r\n },\r\n\r\n getFolderLocationForAsset: function (assetId) {\r\n return $http.get(baseUrlsFactory.api_base_url + \"Asset/WhatFolderIsAssetIn?assetId=\" + assetId).then(function (response) {\r\n return response.data;\r\n });\r\n },\r\n\r\n favouriteAsset: function (assetIds, addFavourite) {\r\n return $http.post(baseUrlsFactory.api_base_url + \"Asset/Favourites\", { assetIds: assetIds, isFavourite: addFavourite });\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { STORE_CONSTANTS } from \"../../constants/store.constants\";\r\nimport \"../../featureSettings/FeatureSettings\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"./assetStoreService\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\n\r\nvar AssetFilter = function (name, filter, type, header, icon) {\r\n this.DisplayName = name;\r\n this.Filter = filter || null;\r\n this.FilterType = type;\r\n this.Header = header || null;\r\n this.Icon = icon || null;\r\n};\r\n\r\nangularAMD.factory(\"filterFactory\", [\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"$q\",\r\n \"assetStoreService\",\r\n \"multiLanguageService\",\r\n \"featureSettings\",\r\n function ($http, baseUrlsFactory, $q, assetStoreService, multiLanguageService, featureSettings) {\r\n return function () {\r\n var AssetStoreLoggedInUser;\r\n var ExternalServices;\r\n var AssetTypesList;\r\n var ResourceTypesList;\r\n var CombinedTypesList;\r\n var UseHiddenFolder;\r\n var AvailableSearches = [];\r\n var AppliedFilters = [];\r\n var Stages = [\"default\", \"all\", \"standard-filtering\", \"advanced-filtering\"];\r\n var CurrentStage = Stages[0];\r\n var EmptySearchData = {\r\n SearchType: \"Everything\",\r\n SearchTerms: \"\",\r\n Location: \"Default\",\r\n Ownership: \"\",\r\n TypeFilters: [],\r\n Tags: [],\r\n DateFrom: null,\r\n DateTo: null\r\n };\r\n var excludeFilters = [STORE_CONSTANTS.SEARCH_TYPE.DEFAULT];\r\n var didYouWant;\r\n\r\n // Internal functions\r\n var createAvailableSearch = function (id, displayName, visible) {\r\n var availableSearch = {\r\n id: id,\r\n displayName: displayName,\r\n visible: visible,\r\n filters: {\r\n global: {\r\n keyword: true\r\n }\r\n }\r\n };\r\n switch (id) {\r\n case STORE_CONSTANTS.SEARCH_TYPE.ASSET:\r\n availableSearch.filters.primary = {\r\n assetTypes: AssetTypesList\r\n };\r\n availableSearch.filters.secondary = {\r\n ownership: [\r\n { name: \"All\", value: \"\" },\r\n { name: \"Created by me\", value: \"ByMe\" },\r\n { name: \"Shared with me\", value: \"ForMe\" },\r\n { name: \"Collaboration\", value: \"WithMe\" }\r\n ],\r\n dates: [],\r\n tags: true,\r\n includeHidden: true,\r\n excludeKeywords: true\r\n };\r\n break;\r\n case STORE_CONSTANTS.SEARCH_TYPE.RESOURCE:\r\n availableSearch.filters.primary = {\r\n assetTypes: ResourceTypesList\r\n };\r\n availableSearch.filters.secondary = {\r\n ownership: [\r\n { name: \"All\", value: \"\" },\r\n { name: \"Created by me\", value: \"ByMe\" },\r\n { name: \"Shared with me\", value: \"ForMe\" },\r\n { name: \"Collaboration\", value: \"WithMe\" }\r\n ],\r\n dates: [],\r\n tags: true,\r\n includeHidden: true,\r\n excludeKeywords: true\r\n };\r\n break;\r\n case STORE_CONSTANTS.SEARCH_TYPE.FAVOURITE:\r\n availableSearch.filters.primary = {\r\n assetTypes: CombinedTypesList\r\n };\r\n availableSearch.filters.secondary = {\r\n ownership: [\r\n { name: \"All\", value: \"\" },\r\n { name: \"Created by me\", value: \"ByMe\" },\r\n { name: \"Shared with me\", value: \"ForMe\" },\r\n { name: \"Collaboration\", value: \"WithMe\" }\r\n ],\r\n dates: [],\r\n tags: true,\r\n includeHidden: true,\r\n excludeKeywords: true\r\n };\r\n break;\r\n case STORE_CONSTANTS.SEARCH_TYPE.FILE:\r\n availableSearch.filters.primary = {\r\n assetTypes: AssetTypesList\r\n };\r\n availableSearch.filters.secondary = {\r\n ownership: [\r\n { name: \"All\", value: \"\" },\r\n { name: \"Created by me\", value: \"ByMe\" },\r\n { name: \"Shared with me\", value: \"ForMe\" },\r\n { name: \"Collaboration\", value: \"WithMe\" }\r\n ],\r\n dates: [],\r\n tags: true,\r\n includeHidden: true,\r\n excludeKeywords: true\r\n };\r\n break;\r\n case STORE_CONSTANTS.SEARCH_TYPE.EXTERNAL:\r\n availableSearch.filters.primary = {\r\n dates: []\r\n };\r\n break;\r\n case \"contact\":\r\n availableSearch.filters.primary = {\r\n rolodex: [\"a\", \"b\", \"c\", \"...\"]\r\n };\r\n break;\r\n case STORE_CONSTANTS.SEARCH_TYPE.DELETED:\r\n availableSearch.filters.primary = {\r\n assetTypes: CombinedTypesList\r\n };\r\n availableSearch.filters.secondary = {\r\n ownership: [\r\n { name: \"All\", value: \"\" },\r\n { name: \"Created by me\", value: \"ByMe\" },\r\n { name: \"Shared with me\", value: \"ForMe\" },\r\n { name: \"Collaboration\", value: \"WithMe\" }\r\n ],\r\n dates: [],\r\n tags: true,\r\n includeHidden: true,\r\n excludeKeywords: true\r\n };\r\n break;\r\n }\r\n AvailableSearches.push(availableSearch);\r\n };\r\n\r\n function isDefaultSearchData(searchData) {\r\n if (searchData.SearchTerms !== undefined && searchData.SearchTerms !== \"\") {\r\n return false;\r\n }\r\n\r\n const keys = Object.keys(searchData);\r\n if (keys.length > 2) {\r\n return false;\r\n }\r\n\r\n return keys.length === 2 ? Object.values(STORE_CONSTANTS.SEARCH_TYPE).includes(searchData.SearchType) : true;\r\n }\r\n\r\n this.init = function () {\r\n var self = this;\r\n var initPromise = assetStoreService.initSearch();\r\n initPromise.then(function (response) {\r\n // Get available external services such as Google Drive, OneDrive etc\r\n ExternalServices = response.data.ExternalServices;\r\n\r\n // Remove default PebblePad store\r\n for (var i = 0; i < ExternalServices.length; i++) {\r\n if (ExternalServices[i].ServiceId === \"Default\") {\r\n ExternalServices.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n // Populate list of asset main/sub types\r\n AssetTypesList = response.data.AssetMenu;\r\n ResourceTypesList = response.data.ResourceMenu;\r\n CombinedTypesList = response.data.CombinedMenu;\r\n\r\n // Create all search types\r\n AvailableSearches.splice(0, AvailableSearches.length);\r\n createAvailableSearch(STORE_CONSTANTS.SEARCH_TYPE.DEFAULT, \"Everything\", false);\r\n createAvailableSearch(STORE_CONSTANTS.SEARCH_TYPE.ASSET, \"Assets\", true);\r\n createAvailableSearch(STORE_CONSTANTS.SEARCH_TYPE.RESOURCE, \"Resources\", true);\r\n\r\n if (featureSettings.isEnabled(\"Favourites\")) {\r\n createAvailableSearch(STORE_CONSTANTS.SEARCH_TYPE.FAVOURITE, \"Favourites\", true);\r\n }\r\n\r\n createAvailableSearch(STORE_CONSTANTS.SEARCH_TYPE.FILE, \"Files\", true);\r\n createAvailableSearch(STORE_CONSTANTS.SEARCH_TYPE.DELETED, \"Deleted\", false);\r\n self.removeFilterTypes(AssetTypesList);\r\n\r\n if (ExternalServices && ExternalServices.length) {\r\n for (var i = 0; i < ExternalServices.length; i++) {\r\n var service = ExternalServices[i];\r\n createAvailableSearch(`${STORE_CONSTANTS.SEARCH_TYPE.EXTERNAL}_${service.ServiceId}`, service.Name, true);\r\n }\r\n }\r\n AssetStoreLoggedInUser = response.data.LoggedInUser.ShowAssetStoreHelp;\r\n UseHiddenFolder = response.data.UseHiddenFolder;\r\n });\r\n\r\n return initPromise;\r\n };\r\n\r\n this.removeFilterTypes = function (list) {\r\n for (var i = 0, l = list.length, filter; i < l; i++) {\r\n filter = list[i];\r\n if (excludeFilters.indexOf(filter.Filter) !== -1) {\r\n filter.Filter = null;\r\n }\r\n }\r\n };\r\n\r\n this.initSearchData = function () {\r\n return angular.copy(EmptySearchData);\r\n };\r\n\r\n this.getCurrentStage = function () {\r\n return CurrentStage;\r\n };\r\n\r\n this.setStage = function (stage) {\r\n var stageIndex = Stages.indexOf(stage);\r\n if (stageIndex === -1) {\r\n return CurrentStage;\r\n }\r\n CurrentStage = Stages[stageIndex];\r\n\r\n return CurrentStage;\r\n };\r\n\r\n this.nextStage = function () {\r\n var stageIndex = Stages.indexOf(CurrentStage);\r\n if (stageIndex > -1 && Stages.length > stageIndex + 1) {\r\n CurrentStage = Stages[stageIndex + 1];\r\n }\r\n return CurrentStage;\r\n };\r\n\r\n this.previousStage = function () {\r\n var stageIndex = Stages.indexOf(CurrentStage);\r\n if (stageIndex > 0) {\r\n CurrentStage = Stages[stageIndex - 1];\r\n }\r\n return CurrentStage;\r\n };\r\n\r\n this.checkReservedWordList = function (searchTerms, searchId) {\r\n var typesList;\r\n switch (searchId) {\r\n case STORE_CONSTANTS.SEARCH_TYPE.ASSET:\r\n typesList = AssetTypesList;\r\n break;\r\n case STORE_CONSTANTS.SEARCH_TYPE.RESOURCE:\r\n typesList = ResourceTypesList;\r\n break;\r\n default:\r\n typesList = CombinedTypesList;\r\n break;\r\n }\r\n // Clear existing reserved word match from available search types\r\n for (var i = 0; i < AvailableSearches.length; i++) {\r\n if (AvailableSearches[i].id.toLowerCase().indexOf(\"assettype\") > -1) {\r\n // assettype search found so remove\r\n AvailableSearches.splice(i, 1);\r\n }\r\n }\r\n\r\n // If empty keyword then clear existing reserved word search and return\r\n if (!searchTerms) {\r\n return;\r\n }\r\n\r\n // Only checking on first word\r\n var wordToCheck = searchTerms.split(\" \")[0].toLowerCase();\r\n\r\n // Check for match against the available Maintypes and Subtypes\r\n for (i = 0; i < typesList.length; i++) {\r\n var assetTypeFilter = typesList[i];\r\n // tslint:disable-next-line:triple-equals\r\n if (assetTypeFilter.Header == true || assetTypeFilter.Filter === null) {\r\n continue;\r\n }\r\n\r\n var strCheck = assetTypeFilter.Filter.toLowerCase();\r\n strCheck = strCheck.replace(\"document/\", \"\");\r\n // if keyword matches a reserved word\r\n if (strCheck.indexOf(wordToCheck) > -1 || assetTypeFilter.DisplayName.toLowerCase().indexOf(wordToCheck) > -1) {\r\n // Check if already one search level deep\r\n if (Stages.indexOf(CurrentStage) > 1) {\r\n didYouWant = angular.copy(assetTypeFilter);\r\n return;\r\n } else {\r\n // We are doing an everything search so add the new search results group\r\n createAvailableSearch(\"assettype_\" + assetTypeFilter.Filter, assetTypeFilter.Filter, false);\r\n return;\r\n }\r\n }\r\n }\r\n };\r\n\r\n this.convertFiltersToSearchData = function (availableSearch, searchTerms, isSidebar) {\r\n var viewData = {\r\n SearchTerms: searchTerms\r\n };\r\n\r\n if (availableSearch.id !== STORE_CONSTANTS.SEARCH_TYPE.DEFAULT && availableSearch.id.indexOf(STORE_CONSTANTS.SEARCH_TYPE.EXTERNAL) === -1) {\r\n this.addFilter({\r\n DisplayName: availableSearch.displayName,\r\n Filter: availableSearch.id,\r\n FilterType: \"searchType\",\r\n Visible: isSidebar\r\n });\r\n }\r\n\r\n angular.forEach(AppliedFilters, function (filter) {\r\n switch (filter.type) {\r\n case \"searchType\":\r\n viewData.SearchType = filter.value;\r\n break;\r\n case \"location\":\r\n // todo: override search type when searching external\r\n //searchToRun = 'asset';\r\n viewData.Location = filter.value;\r\n break;\r\n case \"primary.assetTypes\":\r\n viewData.TypeFilters = [filter.value];\r\n viewData.SelectedMainType = filter.name;\r\n break;\r\n case \"secondary.ownership\":\r\n viewData.Ownership = [filter.value];\r\n viewData.SelectedOwnership = filter.name;\r\n break;\r\n case \"secondary.tags\":\r\n if (!viewData.Tags) {\r\n viewData.Tags = [];\r\n }\r\n if (viewData.Tags.indexOf(filter.value) === -1) {\r\n viewData.Tags.push(filter.value);\r\n }\r\n break;\r\n case \"secondary.dateFrom\":\r\n viewData.LastModifiedAfter = filter.value;\r\n break;\r\n case \"secondary.dateTo\":\r\n case \"secondary.dateTo\":\r\n viewData.LastModifiedBefore = filter.value;\r\n break;\r\n case \"secondary.includeHidden\":\r\n viewData.ShowHidden = filter.value;\r\n break;\r\n case \"secondary.excludeKeywords\":\r\n viewData.ExcludeKeywords = filter.value;\r\n break;\r\n }\r\n });\r\n\r\n viewData.isDefaultSearch = isDefaultSearchData(viewData);\r\n\r\n return viewData;\r\n };\r\n\r\n this.getAppliedFilters = function (checkVisibility) {\r\n if (!checkVisibility) {\r\n return AppliedFilters.slice(0);\r\n }\r\n var visibleFilters = [],\r\n filter;\r\n for (var i = 0; i < AppliedFilters.length; i++) {\r\n filter = AppliedFilters[i];\r\n if (filter.visible) {\r\n visibleFilters.push(filter);\r\n }\r\n }\r\n return visibleFilters;\r\n };\r\n\r\n this.addFilter = function (filter, overrideType, isArray) {\r\n if (overrideType) {\r\n filter.FilterType = overrideType;\r\n }\r\n\r\n var filters = isArray ? this.createFiltersFromFilter(filter) : [filter];\r\n\r\n var safeToPush = true,\r\n j = 0,\r\n subFilter,\r\n temp;\r\n\r\n for (var i = 0, l = filters.length; i < l; i++) {\r\n subFilter = filters[i];\r\n\r\n for (j = 0; j < AppliedFilters.length; j++) {\r\n temp = AppliedFilters[j];\r\n\r\n // If the filter cannot be an array and it already exists then replace it\r\n if (!isArray) {\r\n // tslint:disable-next-line:triple-equals\r\n if (temp.type == subFilter.FilterType && temp.value != subFilter.Filter) {\r\n AppliedFilters.splice(j, 1);\r\n }\r\n }\r\n\r\n // If filter value already exists then leave it\r\n // tslint:disable-next-line:triple-equals\r\n if (temp.value == subFilter.Filter) {\r\n safeToPush = false;\r\n break;\r\n }\r\n }\r\n if (safeToPush) {\r\n AppliedFilters.push({\r\n name: subFilter.DisplayName,\r\n value: subFilter.Filter,\r\n type: filter.FilterType,\r\n // tslint:disable-next-line:triple-equals\r\n visible: filter.Visible == undefined || filter.Visible == true\r\n });\r\n }\r\n }\r\n\r\n return AppliedFilters;\r\n };\r\n\r\n this.removeFilter = function (index) {\r\n var filterRemoved = AppliedFilters[index];\r\n // Clear all child filters if global level is removed\r\n if (filterRemoved.type === \"searchType\") {\r\n AppliedFilters = [];\r\n } else {\r\n AppliedFilters.splice(index, 1);\r\n }\r\n // If primary filter is removed return to primary search stage\r\n /*if (filterRemoved.type.indexOf(\"primary\") != -1) {\r\n this.previousStage();\r\n }*/\r\n return AppliedFilters;\r\n };\r\n\r\n this.getAvailableSearches = function () {\r\n return AvailableSearches;\r\n };\r\n\r\n this.getExternalServices = function () {\r\n return ExternalServices;\r\n };\r\n\r\n this.getAssetTypesList = function () {\r\n return AssetTypesList;\r\n };\r\n\r\n this.getDidYouWant = function () {\r\n return didYouWant;\r\n };\r\n\r\n this.resetDidYouWant = function () {\r\n didYouWant = {};\r\n return didYouWant;\r\n };\r\n\r\n this.getAssetStoreLoggedInUser = function () {\r\n return AssetStoreLoggedInUser;\r\n };\r\n\r\n this.getUseHiddenFolder = function () {\r\n return UseHiddenFolder;\r\n };\r\n\r\n this.createFiltersFromFilter = function (filter) {\r\n var filters = [],\r\n item;\r\n for (var i = 0, l = filter.Filter.length; i < l; i++) {\r\n item = filter.Filter[i];\r\n filters.push({\r\n DisplayName: filter.DisplayName + \" \" + item,\r\n Filter: item,\r\n FilterType: filter.FilterType\r\n });\r\n }\r\n\r\n return filters;\r\n };\r\n\r\n this.getAllFilters = function () {\r\n return {\r\n global: {\r\n keyword: true\r\n },\r\n primary: {\r\n responsesTo: null,\r\n assetTypes: [\r\n {\r\n DisplayName: multiLanguageService.getString(\"asset_store.filters.everything\"),\r\n Filter: null,\r\n FilterType: \"\",\r\n Icon: \"asset-store\",\r\n Header: true\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.activitylog\", { count: 1 }),\r\n Filter: \"ActivityLog\",\r\n FilterType: \"MainType\",\r\n Icon: \"activitylog\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.blog\", { count: 1 }),\r\n Filter: \"Blog\",\r\n FilterType: \"MainType\",\r\n Icon: \"blog\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.collection\", { count: 1 }),\r\n Filter: \"AssetCollectionWrapper\",\r\n FilterType: \"MainType\",\r\n Icon: \"assetcollectionwrapper\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.webfoliopage\", { count: 1 }),\r\n Filter: \"WebfolioPage\",\r\n FilterType: \"MainType\",\r\n Icon: \"webfoliopage\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.webfolio\", { count: 1 }),\r\n Filter: \"Webfolio\",\r\n FilterType: \"MainType\",\r\n Icon: \"webfolio\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.post\", { count: 1 }),\r\n Filter: \"Post\",\r\n FilterType: \"MainType\",\r\n Icon: \"post\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.workbookresponse\", { count: 1 }),\r\n Filter: \"WorkBookResponse\",\r\n FilterType: \"MainType\",\r\n Icon: \"workbookresponse\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.worksheet\", { count: 1 }),\r\n Filter: \"Worksheet\",\r\n FilterType: \"SubType\",\r\n Icon: \"worksheet\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.experience\", { count: 1 }),\r\n Filter: \"Experience\",\r\n FilterType: \"SubType\",\r\n Icon: \"experience\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.plan\", { count: 1 }),\r\n Filter: \"Plan\",\r\n FilterType: \"SubType\",\r\n Icon: \"plan\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.reflection\", { count: 1 }),\r\n Filter: \"Reflection\",\r\n FilterType: \"SubType\",\r\n Icon: \"reflection\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.talent\", { count: 1 }),\r\n Filter: \"Talent\",\r\n FilterType: \"SubType\",\r\n Icon: \"talent\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.file\", { count: 1 }),\r\n Filter: \"File\",\r\n FilterType: \"MainType\",\r\n Icon: \"file\",\r\n Header: true\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.audio\", { count: 1 }),\r\n Filter: \"Audio\",\r\n FilterType: \"Category\",\r\n Icon: \"audio\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.image\", { count: 1 }),\r\n Filter: \"Image\",\r\n FilterType: \"Category\",\r\n Icon: \"image\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.documentpdf\", { count: 1 }),\r\n Filter: \"Document/PDF\",\r\n FilterType: \"SubType\",\r\n Icon: \"pdf\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.video\", { count: 1 }),\r\n Filter: \"Video\",\r\n FilterType: \"Category\",\r\n Icon: \"video\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_types.written\"),\r\n Filter: \"Documents\",\r\n FilterType: \"Category\",\r\n Icon: \"documents\",\r\n Header: false\r\n },\r\n {\r\n DisplayName: multiLanguageService.getString(\"pebble_terms.asset_categories.other_files\"),\r\n Filter: \"OtherFiles\",\r\n FilterType: \"Category\",\r\n Icon: \"other\",\r\n Header: false\r\n }\r\n ]\r\n },\r\n secondary: {\r\n dates: [],\r\n excludeKeywords: true,\r\n includeHidden: true,\r\n ownership: null,\r\n tags: true\r\n }\r\n };\r\n };\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.factory(\"PaginatedSearchFactory\", PaginatedSearchFactory);\r\nPaginatedSearchFactory.$inject = [\"$q\"];\r\n\r\nfunction PaginatedSearchFactory($q) {\r\n return {\r\n createPaginatedSearch: function (results, index, pageLength) {\r\n return new PaginatedSearch($q, results, index, pageLength);\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * @param {$q} q\r\n * @param {Array|null} results\r\n * @param {Number} index\r\n * @param {Number=} pageLength\r\n * @constructor\r\n */\r\nfunction PaginatedSearch(q, results, index, pageLength) {\r\n this._q = q;\r\n this._results = results || [];\r\n this._index = !isNaN(index) && typeof index === \"number\" && index < this._results.length - 1 ? index : 0;\r\n this._pageLength = !isNaN(pageLength) && typeof index === \"number\" ? pageLength : 50;\r\n}\r\n\r\n/**\r\n * @param {Array} results\r\n * @param {=number>} preloadedIndex\r\n */\r\nPaginatedSearch.prototype.setResults = function (results, preloadedIndex = 0) {\r\n this._results = results;\r\n this._index = preloadedIndex;\r\n};\r\n\r\n/**\r\n * @return {Array}\r\n */\r\nPaginatedSearch.prototype.getAllStoredResults = function () {\r\n return this._results;\r\n};\r\n\r\n/**\r\n * @param {Function} comparator\r\n * @return {Number}\r\n */\r\nPaginatedSearch.prototype.removeFromStoredResults = function (comparator) {\r\n for (var i = 0; i < this._results.length; i++) {\r\n if (comparator(this._results[i])) {\r\n this._results.splice(i, 1);\r\n\r\n if (this._index !== 0 && i <= this._index) {\r\n this._index--;\r\n }\r\n i--;\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @return {Number}\r\n */\r\nPaginatedSearch.prototype.getPageLength = function () {\r\n return this._pageLength;\r\n};\r\n\r\n/**\r\n * @return {Promise} - Resolves with {Array}\r\n */\r\nPaginatedSearch.prototype.getResults = function () {\r\n const endIndex = this._index > 0 ? this._index : this._pageLength;\r\n\r\n return this._loadResults(0, endIndex).then((newResults) => {\r\n this._index = newResults.length;\r\n return newResults;\r\n });\r\n};\r\n\r\n/**\r\n * @return {Promise} - Resolves with {Array}\r\n */\r\nPaginatedSearch.prototype.getNextSetOfResults = function () {\r\n return this._loadResults(this._index, this._index + this._pageLength).then((newResults) => {\r\n this._index += newResults.length;\r\n return newResults;\r\n });\r\n};\r\n\r\n/**\r\n * @param {Number} newPageLength\r\n */\r\nPaginatedSearch.prototype.updatePageLength = function (newPageLength) {\r\n this._pageLength = newPageLength;\r\n};\r\n\r\n/**\r\n * @returns {boolean}\r\n */\r\nPaginatedSearch.prototype.isAtEnd = function () {\r\n return this._index >= this._results.length;\r\n};\r\n\r\n/**\r\n * @returns {Promise} - Resolves with {Array}\r\n * @private\r\n */\r\nPaginatedSearch.prototype._loadResults = function (startIndex, endIndex) {\r\n if (endIndex <= this._results.length) {\r\n return this._q.when(this._results.slice(startIndex, endIndex));\r\n }\r\n\r\n if (startIndex > this._results.length - 1) {\r\n return this._q.when([]);\r\n }\r\n\r\n return this._q.when(this._results.slice(startIndex, this._results.length));\r\n};\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../modal/services/modal\";\r\nimport \"../../utilities/pebbleDate\";\r\n\r\nangularAMD.factory(\"useResourceService\", [\r\n \"$q\",\r\n \"$http\",\r\n \"$routeParams\",\r\n \"baseUrlsFactory\",\r\n \"$location\",\r\n \"$rootScope\",\r\n \"$compile\",\r\n \"$route\",\r\n \"$window\",\r\n \"$sce\",\r\n \"modal\",\r\n function ($q, $http, $routeParams, baseUrlsFactory, $location, $rootScope, $compile, $route, $window, $sce, modal) {\r\n var cachedIsResourceUsed = {};\r\n\r\n return {\r\n clearUrlParams: function () {\r\n $location.search(\"type\", null);\r\n $location.search(\"pageId\", null);\r\n },\r\n\r\n redirect: function (url) {\r\n $window.location.href = url;\r\n },\r\n\r\n isResourceInUse: function (assetId, ignoreCache) {\r\n if (!ignoreCache && cachedIsResourceUsed[assetId] !== undefined) {\r\n return $q.when(cachedIsResourceUsed[assetId]);\r\n } else {\r\n return $http.get(baseUrlsFactory.api_base_url + \"CheckUse/IsResourceInUse?assetId=\" + assetId).then(function (response) {\r\n cachedIsResourceUsed[assetId] = response.data;\r\n return response.data;\r\n });\r\n }\r\n },\r\n\r\n //informs the user that there single use asset is in the deleted folder\r\n informUser: function (informType, message) {\r\n var self = this;\r\n var modalScope = $rootScope.$new(true),\r\n deferred = $q.defer();\r\n modalScope.openDeletedAssetStore = function () {\r\n self.clearUrlParams();\r\n $location.path(\"/store\").search(\"type\", \"deleted\");\r\n modalScope.redirected = true;\r\n };\r\n modalScope.openAssetStore = function () {\r\n self.clearUrlParams();\r\n $location.path(\"/store\").search(\"type\", \"asset\");\r\n modalScope.redirected = true;\r\n };\r\n\r\n modalScope.onClose = function () {\r\n deferred.resolve(modalScope.redirected);\r\n modalScope.$destroy();\r\n };\r\n\r\n modalScope.informType = informType;\r\n\r\n modalScope.message = $sce.trustAsHtml(message);\r\n\r\n modal.newModal({\r\n scope: modalScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"assetStore/templates/single-use-inform-user-message.lazy.html\"\r\n });\r\n\r\n return deferred.promise;\r\n },\r\n\r\n //gives the user multiple assets to open or a new responce\r\n multipleRedirect: function (data, modalScope, ignoreHistory) {\r\n var self = this,\r\n deferred = $q.defer();\r\n\r\n modalScope.imageShareForAssessment = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/shareForAssessment.svg\");\r\n modalScope.allowNew = data.AllowNew;\r\n modalScope.allowNewRedirect = data.AllowNewRedirect;\r\n modalScope.allowNewRedirectRelative = data.AllowNewRedirectRelative;\r\n modalScope.assetsInDeletedStore = data.AssetsInDeletedStore;\r\n modalScope.assetsInEditableStore = data.AssetsInEditableStore;\r\n modalScope.ignoreHistory = ignoreHistory;\r\n\r\n if (data.AssetsInEditableStore && data.AssetsInEditableStore.length > 0) {\r\n modalScope.isWorkbook = /workbook/i.test(data.AssetsInEditableStore[0].Icon);\r\n } else if (data.AssetsInDeletedStore && data.AssetsInDeletedStore.length > 0) {\r\n modalScope.isWorkbook = /workbook/i.test(data.AssetsInDeletedStore[0].Icon);\r\n } else {\r\n modalScope.isWorkbook = false; // shouldn't happen\r\n }\r\n\r\n modalScope.redirectToUrl = function (url, relativeRedirect, ignoreHistory) {\r\n if ($rootScope.appName === \"Plus\") {\r\n $location.url(ignoreHistory ? relativeRedirect : modalScope.addHistoryId(relativeRedirect));\r\n } else {\r\n $window.location.href = ignoreHistory ? url : modalScope.addHistoryId(url);\r\n }\r\n modalScope.redirected = true;\r\n };\r\n\r\n modalScope.redirectToItemUrl = function (url, relativeRedirect, ignoreHistory) {\r\n modalScope.redirectToUrl(url, relativeRedirect, ignoreHistory);\r\n };\r\n\r\n modalScope.redirectToCreateNew = function () {\r\n modalScope.redirectToUrl(data.AllowNewRedirect, data.AllowNewRedirectRelative, ignoreHistory);\r\n };\r\n\r\n modalScope.openDeletedAssetStore = function () {\r\n self.clearUrlParams();\r\n $location.path(\"/store\").search(\"type\", \"deleted\");\r\n modalScope.redirected = true;\r\n };\r\n\r\n modalScope.onClose = function () {\r\n deferred.resolve(modalScope.redirected);\r\n modalScope.$destroy();\r\n };\r\n\r\n modalScope.addHistoryId = function (url) {\r\n const historyId = $routeParams.historyId ? $routeParams.historyId : \"\";\r\n if (historyId === \"\") {\r\n return url;\r\n }\r\n\r\n if (url.indexOf(\"historyId\") < 0) {\r\n url = url + (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + \"historyId=\" + historyId;\r\n }\r\n\r\n return url;\r\n };\r\n\r\n modal.newModal({\r\n scope: modalScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"assetStore/templates/multiple-redirects.lazy.html\"\r\n });\r\n\r\n return deferred.promise;\r\n },\r\n\r\n //show an error message to the user\r\n error: function (message) {\r\n var modalScope = $rootScope.$new(true);\r\n modalScope.modal_message = message;\r\n\r\n modal.newModal({\r\n scope: modalScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"assetStore/templates/single-use-error-message.lazy.html\"\r\n });\r\n },\r\n\r\n forwardUser: function (data, ignoreHistory) {\r\n var self = this;\r\n switch (data.Action) {\r\n case \"Redirect\":\r\n if ($rootScope.appName === \"Plus\" || $rootScope.appName === \"Admissions\") {\r\n var historyId = $routeParams.historyId ? $routeParams.historyId : \"\";\r\n // tslint:disable-next-line:triple-equals\r\n if (historyId != \"\" && !ignoreHistory) {\r\n if (data.RelativeRedirectIfInPlus.indexOf(\"?\") > 0) {\r\n data.RelativeRedirectIfInPlus = data.RelativeRedirectIfInPlus + \"&historyId=\" + historyId;\r\n } else {\r\n data.RelativeRedirectIfInPlus = data.RelativeRedirectIfInPlus + \"?historyId=\" + historyId;\r\n }\r\n }\r\n $location.url(data.RelativeRedirectIfInPlus);\r\n } else {\r\n self.redirect(data.Redirect);\r\n }\r\n break;\r\n case \"InformUser\":\r\n case \"InformUserDeletedStore\":\r\n case \"InformUserAssetStore\":\r\n $rootScope.appIsLoaded = true;\r\n return self.informUser(data.Action, data.Message);\r\n break;\r\n case \"MultipleRedirect\":\r\n var modalScope = $rootScope.$new(true);\r\n $rootScope.appIsLoaded = true;\r\n return self.multipleRedirect(data, modalScope);\r\n break;\r\n case \"Error\":\r\n self.error(data.Message);\r\n $rootScope.appIsLoaded = true;\r\n return $q.reject();\r\n break;\r\n default:\r\n //code block\r\n }\r\n return $q.when(true);\r\n },\r\n\r\n checkUse: function (details, ignoreHistory) {\r\n $rootScope.appIsLoaded = false;\r\n\r\n var self = this;\r\n $http.defaults.withCredentials = true;\r\n return $http\r\n .post(baseUrlsFactory.api_base_url + \"CheckUse/CheckUse\", details)\r\n .then(function (response) {\r\n return self.forwardUser(response.data, ignoreHistory);\r\n })\r\n .catch(angular.noop);\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../user/user.service\";\r\n\r\nDeletableShareService.$inject = [\"User\"];\r\nfunction DeletableShareService(User) {\r\n this._user = User.getDto();\r\n}\r\n\r\nDeletableShareService.prototype.getNonDeletableShareIds = function (shares, collaborators) {\r\n if (this._user === null) {\r\n return [];\r\n }\r\n\r\n var collabAcceptedByIds = collaborators.filter(this._otherCollaborators.bind(this)).map(this._extractId.bind(this));\r\n\r\n var shareIds = shares.filter(this._acceptedCollaborativeShares.bind(this, collabAcceptedByIds)).map(function (s) {\r\n return s.ShareInfo.Id;\r\n });\r\n\r\n return shareIds;\r\n};\r\n\r\nDeletableShareService.prototype._otherCollaborators = function (collaborator) {\r\n return collaborator.Id !== this._user.UserId;\r\n};\r\n\r\nDeletableShareService.prototype._extractId = function (obj) {\r\n return obj.Id;\r\n};\r\n\r\nDeletableShareService.prototype._acceptedCollaborativeShares = function (collaboratorIds, share) {\r\n return (\r\n share.ShareInfo.Collaborative &&\r\n share.ShareInfo.SharedWith.some(\r\n function (s) {\r\n return collaboratorIds.includes(s) || s === this._user.UserId;\r\n }.bind(this)\r\n )\r\n );\r\n};\r\n\r\nangularAMD.service(\"DeletableShareService\", DeletableShareService);\r\n\r\nexport { DeletableShareService };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../extensions/arrayExtensions\";\r\nimport \"../../../share/services/shareService\";\r\nimport \"../../../modal/services/modal\";\r\nimport \"../../../utilities/pebbleDate\";\r\nimport template from \"./templates/base.html\";\r\n\r\nangularAMD.directive(\"sidebarShares\", [\r\n \"$http\",\r\n \"$sce\",\r\n \"$rootScope\",\r\n \"$compile\",\r\n \"$filter\",\r\n \"baseUrlsFactory\",\r\n \"shareService\",\r\n \"modal\",\r\n function ($http, $sce, $rootScope, $compile, $filter, baseUrlsFactory, shareService, modal) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n asset: \"=\",\r\n nonDeletableShares: \"<\",\r\n collaboratorIds: \"<\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n // SVG Images\r\n $scope.shareToWeb = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/shareToWeb.svg\");\r\n $scope.shareToPeople = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/shareToPeople.svg\");\r\n\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n $scope.confirmMessage = $scope.multiLanguageService.getString(\"sidebar.shares.confirm_delete\");\r\n $scope.shareLimit = 5;\r\n $scope.disableCopy = false;\r\n var shareToDelete;\r\n\r\n $scope.componentLang = {\r\n takeACopy: $scope.multiLanguageService.getString(\"sidebar.shares.take_copy\"),\r\n sharedWithWeb: function (shareDate) {\r\n var time = $filter(\"pebbleDate\")(shareDate, \"timeOnly\");\r\n var date = $filter(\"pebbleDate\")(shareDate);\r\n\r\n return $scope.multiLanguageService.getString(\"sidebar.shares.shared_with_web\", {\r\n time: time,\r\n date: date\r\n });\r\n },\r\n sharedWithPersons: function (shareDate, shareCount) {\r\n var time = $filter(\"pebbleDate\")(shareDate, \"timeOnly\");\r\n var date = $filter(\"pebbleDate\")(shareDate);\r\n\r\n return $scope.multiLanguageService.getString(\"sidebar.shares.shared_with_n_person\", {\r\n count: shareCount,\r\n time: time,\r\n date: date\r\n });\r\n }\r\n };\r\n\r\n $scope.getHeader = function (shares) {\r\n if (!shares.length) {\r\n return $scope.multiLanguageService.getString(\"sidebar.shares.no_shares\");\r\n }\r\n\r\n if (shares[0].IsMyShare) {\r\n return $scope.multiLanguageService.getString(\"sidebar.shares.shares_count\", {\r\n count: shares.length\r\n });\r\n }\r\n\r\n return $scope.multiLanguageService.getString(\"sidebar.shares.shared_by\");\r\n };\r\n\r\n $scope.checkForPermission = function (permissions, perms) {\r\n for (var i = 0; i < perms.length; i++) {\r\n if (permissions.contains(perms[i])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n $scope.checkForExpiryDate = function (date) {\r\n var d = new Date(date);\r\n return d.getUTCFullYear() < 2100;\r\n };\r\n\r\n $scope.showExpiryInfo = function (date) {\r\n var days = $scope.getExpiryDateDays(date);\r\n return days <= 30 && days > -1;\r\n };\r\n\r\n $scope.showExpiryWarning = function (date) {\r\n var days = $scope.getExpiryDateDays(date);\r\n return days <= 30 && days > 7;\r\n };\r\n\r\n $scope.showExpiryDanger = function (date) {\r\n var days = $scope.getExpiryDateDays(date);\r\n return days <= 7 && days > -1;\r\n };\r\n\r\n $scope.showExpired = function (date) {\r\n var days = $scope.getExpiryDateDays(date);\r\n return days < 0;\r\n };\r\n\r\n $scope.getExpiryDateDays = function (date) {\r\n var d = new Date(date);\r\n var now = new Date();\r\n return mydiff(now, d, \"days\");\r\n };\r\n\r\n $scope.getExpiryMessage = function (date) {\r\n var days = $scope.getExpiryDateDays(date);\r\n\r\n if (days > 0) {\r\n return $scope.multiLanguageService.getString(\"sidebar.shares.days\", { count: days });\r\n } else {\r\n return $scope.multiLanguageService.getString(\"sidebar.shares.today\");\r\n }\r\n };\r\n\r\n $scope.getProfileImage = function (id) {\r\n return baseUrlsFactory.api_base_url + \"File/TransmitProfilePic?id=\" + id + \"&x=32&y=32\";\r\n };\r\n\r\n $scope.showAllShares = function () {\r\n $scope.shareLimit = $scope.asset.Shares.length;\r\n };\r\n\r\n $scope.deleteShare = function (share) {\r\n shareToDelete = share;\r\n\r\n modal.newModal(\r\n {\r\n scope: $scope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"assetViews/sidebar/shares/templates/confirmmessage.lazy.html\"\r\n },\r\n true\r\n );\r\n };\r\n\r\n $scope.doDeleteShare = function () {\r\n // if it is a web share it uses the AssetPublishedDto id\r\n shareService.deleteShare(shareToDelete.ShareInfo.Id, !shareToDelete.ShareInfo.SharedWith.length);\r\n $scope.asset.Shares.removeOne($scope.asset.Shares.indexOf(shareToDelete));\r\n $scope.asset.ShareCount = $scope.asset.Shares.length;\r\n shareToDelete = null;\r\n };\r\n\r\n $scope.editShare = function (assetId, share, collaboratorIds) {\r\n var sharingScope = $scope.$new(true);\r\n sharingScope.assetIds = [assetId];\r\n sharingScope.collaboratorIds = collaboratorIds;\r\n sharingScope.changingExisting = angular.copy(share); // Any changes can be cancelled so make it a copy so the original isn't changed\r\n sharingScope.modalTitle = $scope.multiLanguageService.getString(\"sharing.header.edit_share\");\r\n sharingScope.shareType = getShareType(share.AssetReference.MainType);\r\n if (share.ShareInfo.SharedWith.length) {\r\n sharingScope.shareMode = \"users\";\r\n sharingScope.modalIcon = \"share-to-people\";\r\n } else {\r\n sharingScope.shareMode = \"web\";\r\n sharingScope.modalTitle = $scope.multiLanguageService.getString(\"sharing.header.edit_web_share\");\r\n sharingScope.modalIcon = \"share-to-web\";\r\n }\r\n\r\n modal.newModal({\r\n scope: sharingScope,\r\n autofocus: false,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"share/templates/modal-wrapper.lazy.html\"\r\n });\r\n };\r\n\r\n function getShareType(mainType) {\r\n var typeDictionary = {\r\n workbook: \"workbook\",\r\n form: \"template\"\r\n };\r\n\r\n return typeDictionary[mainType.toLowerCase()] || \"asset\";\r\n }\r\n\r\n // I would like to see this available as a toolkit function somewhere\r\n function mydiff(date1, date2, interval) {\r\n var second = 1000,\r\n minute = second * 60,\r\n hour = minute * 60,\r\n day = hour * 24,\r\n week = day * 7;\r\n date1 = new Date(date1);\r\n date2 = new Date(date2);\r\n var timediff = date2 - date1;\r\n if (isNaN(timediff)) {\r\n return NaN;\r\n }\r\n switch (interval) {\r\n case \"years\":\r\n return date2.getFullYear() - date1.getFullYear();\r\n case \"months\":\r\n return date2.getFullYear() * 12 + date2.getMonth() - (date1.getFullYear() * 12 + date1.getMonth());\r\n case \"weeks\":\r\n return Math.floor(timediff / week);\r\n case \"days\":\r\n return Math.floor(timediff / day);\r\n case \"hours\":\r\n return Math.floor(timediff / hour);\r\n case \"minutes\":\r\n return Math.floor(timediff / minute);\r\n case \"seconds\":\r\n return Math.floor(timediff / second);\r\n default:\r\n return undefined;\r\n }\r\n }\r\n\r\n $scope.takeACopy = function (assetId) {\r\n var copyScope = $scope.$new(true);\r\n $scope.assetId = assetId; //Used to reenable the take a copy button once successfully copied.\r\n copyScope.assetId = assetId;\r\n\r\n modal.newModal({\r\n scope: copyScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"takeACopy/templates/modal-wrapper.lazy.html\"\r\n });\r\n };\r\n\r\n $scope.$on(\"copySuccessful\", function (event, data) {\r\n // tslint:disable-next-line:triple-equals\r\n if (data == $scope.assetId) {\r\n $scope.disableCopy = true;\r\n\r\n $scope.componentLang.takeACopy = $scope.multiLanguageService.getString(\"sidebar.shares.copy_successful\");\r\n }\r\n });\r\n }\r\n ]\r\n };\r\n }\r\n]);\r\n","export default `

{{::getHeader(asset.Shares)}}

{{::componentLang.sharedWithWeb(share.ShareInfo.SharedOn)}} {{::multiLanguageService.getString('sidebar.shares.expires')}} {{ getExpiryMessage(share.ShareInfo.SharedUntil) }} {{ getExpiryMessage(share.ShareInfo.SharedUntil) }} {{::multiLanguageService.getString('sidebar.shares.expired')}}

{{::multiLanguageService.getString('sidebar.shares.expires')}} {{ getExpiryMessage(share.ShareInfo.SharedUntil) }} {{ getExpiryMessage(share.ShareInfo.SharedUntil) }} {{::multiLanguageService.getString('sidebar.shares.expired')}}

\"\"

{{ share.Sharer.Forename }} {{ share.Sharer.Surname }}
{{::multiLanguageService.getString('sidebar.shares.shared_on_date', {date: (share.ShareInfo.SharedOn | pebbleDate)})}}

{{::multiLanguageService.getString('sidebar.shares.comment_permission')}}

{{::multiLanguageService.getString('sidebar.shares.copy_permission')}}

{{::multiLanguageService.getString('sidebar.shares.access_expires', {date: (share.ShareInfo.SharedUntil | pebbleDate)})}} ({{ getExpiryMessage(share.ShareInfo.SharedUntil) }}) ({{ getExpiryMessage(share.ShareInfo.SharedUntil) }})
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport template from \"./templates/submission-info-view.html\";\r\nimport titledTemplate from \"./templates/submission-info-view-titled.html\";\r\n\r\nangularAMD.directive(\"submissionInfoView\", SubmissionInfoView);\r\nSubmissionInfoView.$inject = [\"$sce\", \"baseUrlsFactory\"];\r\n\r\nangularAMD.controller(\"SubmissionInfoViewController\", SubmissionInfoViewController);\r\nSubmissionInfoViewController.$inject = [\"$sce\", \"baseUrlsFactory\", \"multiLanguageService\"];\r\n\r\n//Directive\r\n//------------------------------------------------------------------------------------------------------------------\r\nfunction SubmissionInfoView($sce, baseUrlsFactory) {\r\n return {\r\n restrict: \"E\",\r\n template: function (element, attrs) {\r\n return attrs.titledTemplate ? titledTemplate : template;\r\n },\r\n scope: {\r\n submission: \"=\", //Object | null\r\n largeIcon: \"=\" //true | false\r\n },\r\n bindToController: true,\r\n controller: \"SubmissionInfoViewController\",\r\n controllerAs: \"vm\"\r\n };\r\n}\r\n\r\n//Controller\r\n//------------------------------------------------------------------------------------------------------------------\r\nfunction SubmissionInfoViewController($sce, baseUrlsFactory, multiLanguageService) {\r\n var iconPrefix = this.getIconSize(this.largeIcon);\r\n\r\n this.images = {\r\n workspace: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/workspace\" + iconPrefix + \".svg\"),\r\n assignment: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/assignment\" + iconPrefix + \".svg\")\r\n };\r\n\r\n this.isAssignment = this.checkIfAssignment(this.submission);\r\n this.imageIcon = this.getImageIcon();\r\n this.multiLanguageService = multiLanguageService;\r\n}\r\n\r\n//Instance Methods\r\n//--------------------------------------------------------------------------------------------------------------\r\nSubmissionInfoViewController.prototype.checkIfAssignment = function (submission) {\r\n //If the SubLocation Name is 'Assigment #1', then presume it is just a Workspace, rather than specific assignment. - Yuck!\r\n return submission.SubLocationName && !/^assignment\\s#1$/i.test(submission.SubLocationName);\r\n};\r\n\r\nSubmissionInfoViewController.prototype.getImageIcon = function () {\r\n return this.isAssignment ? this.images.assignment : this.images.workspace;\r\n};\r\n\r\nSubmissionInfoViewController.prototype.getIconSize = function (useLargeIcon) {\r\n return useLargeIcon ? \"48\" : \"\";\r\n};\r\n","export default `
\"\"

{{vm.submission.LocationName}}

{{vm.submission.SubLocationName}}

{{::vm.multiLanguageService.getString('sidebar.submissions.shared_on', {time: (vm.submission.SubmittedOn | pebbleDate: \"timeOnly\"), date: (vm.submission.SubmittedOn | pebbleDate)})}}

`;","export default `
{{::vm.multiLanguageService.getString('sidebar.submissions.workspace')}}

{{vm.submission.LocationName}}

{{::vm.multiLanguageService.getString('sidebar.submissions.assignment')}}

{{vm.submission.SubLocationName}}

{{::vm.multiLanguageService.getString('sidebar.submissions.shared_on', {time: (vm.submission.SubmittedOn | pebbleDate: \"timeOnly\"), date: (vm.submission.SubmittedOn | pebbleDate)})}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../extensions/arrayExtensions\";\r\nimport \"../../../share/services/shareService\";\r\nimport \"../../../modal/services/modal\";\r\nimport \"../submissionInfoView/submissionInfoView.directive\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../assetsWithLinks/directives/assetsWithLinks\";\r\nimport \"../../../share/directives/shareSelectExternals.directive\";\r\nimport \"../../../utilities/pebbleDate\";\r\nimport \"../../../react2angular/collapsibleInformation\";\r\nimport template from \"./templates/submissions.html\";\r\nimport { tracker } from \"@pjs/analytics\";\r\n\r\nangularAMD.directive(\"sidebarSubmissions\", [\r\n \"$http\",\r\n \"$sce\",\r\n \"$rootScope\",\r\n \"$compile\",\r\n \"$window\",\r\n \"baseUrlsFactory\",\r\n \"shareService\",\r\n \"modal\",\r\n \"multiLanguageService\",\r\n function ($http, $sce, $rootScope, $compile, $window, baseUrlsFactory, shareService, modal, multiLanguageService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n asset: \"=\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n // SVG Images\r\n $scope.imageWorkspace = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/workspace48.svg\");\r\n $scope.imageAssignment = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/assignment48.svg\");\r\n\r\n $scope.multiLanguageService = multiLanguageService;\r\n\r\n $scope.confirmMessage = $scope.multiLanguageService.getString(\"sidebar.submissions.about_to_ask_remove_submission_message\");\r\n\r\n $scope.shareLimit = 5;\r\n var submissionToRemove;\r\n $scope.expandedAssessorListState = {};\r\n\r\n $scope.workspaceSharingInfoProps = {\r\n header: $scope.multiLanguageService.getString(\"sidebar.submissions.workspace_sharing_info.header\"),\r\n content: $scope.multiLanguageService.getString(\"sidebar.submissions.workspace_sharing_info.content\"),\r\n isOpen: false,\r\n onToggle: () => {\r\n $scope.workspaceSharingInfoProps.isOpen = !$scope.workspaceSharingInfoProps.isOpen;\r\n $scope.$applyAsync();\r\n }\r\n };\r\n\r\n $scope.toggleAssessorListView = function (id) {\r\n $scope.expandedAssessorListState[id] = !$scope.expandedAssessorListState[id];\r\n };\r\n $scope.showAllSubmissions = function () {\r\n $scope.shareLimit = $scope.asset.Submissions.length;\r\n };\r\n\r\n $scope.requestRemoval = function (submission) {\r\n submissionToRemove = submission;\r\n\r\n modal.newModal(\r\n {\r\n scope: $scope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"assetViews/sidebar/submissions/templates/confirmmessage.lazy.html\"\r\n },\r\n true\r\n );\r\n };\r\n\r\n $scope.doRequestRemoval = function () {\r\n shareService.removeSubmission(submissionToRemove.Id);\r\n $scope.asset.Submissions[$scope.asset.Submissions.indexOf(submissionToRemove)].Status = \"removal_requested\";\r\n submissionToRemove = null;\r\n };\r\n\r\n var statusMap = {\r\n accepted: \"success\",\r\n submitted: \"success\",\r\n moved: \"neutral\",\r\n removal_requested: \"neutral\",\r\n rejected: \"danger\",\r\n pending: \"neutral\"\r\n };\r\n\r\n var statusLang = {\r\n accepted: $scope.multiLanguageService.getString(\"sidebar.submissions.accepted\"),\r\n submitted: $scope.multiLanguageService.getString(\"sidebar.submissions.submitted\"),\r\n moved: $scope.multiLanguageService.getString(\"sidebar.submissions.moved\"),\r\n removal_requested: $scope.multiLanguageService.getString(\"sidebar.submissions.removal_requested\"),\r\n rejected: $scope.multiLanguageService.getString(\"sidebar.submissions.rejected\"),\r\n pending: $scope.multiLanguageService.getString(\"sidebar.submissions.pending\"),\r\n removedbyowner: $scope.multiLanguageService.getString(\"sidebar.submissions.removedbyowner\"),\r\n removedbytutor: $scope.multiLanguageService.getString(\"sidebar.submissions.removedbytutor\")\r\n };\r\n\r\n $scope.getStatusClass = function (status) {\r\n if (!status || !statusMap[status.toLowerCase()]) {\r\n return \"danger\";\r\n }\r\n return statusMap[status.toLowerCase()];\r\n };\r\n\r\n $scope.getStatusText = function (status) {\r\n if (statusLang[status.toLowerCase()] !== void 0) {\r\n return statusLang[status.toLowerCase()];\r\n }\r\n\r\n return $scope.multiLanguageService.getString(\"sidebar.submissions.unknown\");\r\n };\r\n\r\n $scope.removeLocalAssessor = function (submission, assessorIndex) {\r\n submission.ExternalAssessors.removeOne(assessorIndex);\r\n };\r\n $scope.editExternal = function (user, submission) {\r\n var modalScope = $scope.$new(true);\r\n modalScope.modalTitle = $scope.multiLanguageService.getString(\"sharing.header.share_with_external_assessor\");\r\n modalScope.modalIcon = \"share-to-people\";\r\n modalScope.multiLanguageService = $scope.multiLanguageService;\r\n modalScope.assetId = $scope.asset.Id;\r\n modalScope.submissionId = submission.Id;\r\n modalScope.workspaceId = submission.Location;\r\n\r\n modalScope.onSubmit = function (externalAssessorShare) {\r\n var externalShareUpdate = {\r\n UserId: externalAssessorShare.UserIds[0],\r\n SubmissionId: externalAssessorShare.SubmissionId,\r\n WorkspaceId: externalAssessorShare.WorkspaceId,\r\n Expiry: externalAssessorShare.Expiry\r\n };\r\n\r\n return shareService.updateExternalAssessorShare(externalShareUpdate);\r\n };\r\n\r\n modalScope.expiryDate = user.ExpiryDate ? new Date(user.ExpiryDate) : null;\r\n modalScope.users = [user];\r\n\r\n modalScope.onClose = function () {\r\n modalScope.$destroy();\r\n };\r\n\r\n var shareModal = modal.newModal({\r\n scope: modalScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"share/templates/external-assessor-modal.lazy.html\"\r\n });\r\n\r\n modalScope.onComplete = function (externals, expiryDate, cancelled) {\r\n if (!cancelled) {\r\n user.ExpiryDate = expiryDate;\r\n }\r\n\r\n shareModal.hideModal();\r\n };\r\n };\r\n\r\n $scope.removeAssessor = function (assessor, submission, assessorIndex) {\r\n var modalScope = $scope.$new(true);\r\n modalScope.on_okay_fn = function () {\r\n shareService.removeSLA(assessor.UserId, submission.Id).then(function () {\r\n $scope.removeLocalAssessor(submission, assessorIndex);\r\n });\r\n };\r\n\r\n modalScope.title = $scope.multiLanguageService.getString(\"sharing.header.remove_external_share\");\r\n modalScope.message = $scope.multiLanguageService.getString(\"sharing.labels.remove_external_share\");\r\n modalScope.okay_button_label = $scope.multiLanguageService.getString(\"buttons.delete\");\r\n modalScope.cancel_button_label = $scope.multiLanguageService.getString(\"buttons.cancel\");\r\n\r\n modalScope.onClose = function () {\r\n modalScope.$destroy();\r\n };\r\n\r\n modal.newModal({\r\n scope: modalScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"modalDialogComponent/templates/generic-pop-up-with-buttons.lazy.html\"\r\n });\r\n };\r\n\r\n $scope.showRemovalButton = function (submission) {\r\n return submission && submission.Status.toLowerCase() === \"accepted\" && submission.PreventUserFromRequestingSubmissionRemoval !== true;\r\n };\r\n\r\n $scope.isDefaultAssignment = function (submission) {\r\n return submission.SubLocationName && submission.SubLocationName.indexOf(\"Assignment #1\") > -1;\r\n };\r\n\r\n $scope.triggerRequestRemoval = function (e, submission) {\r\n if (e.keyCode === 13 || e.keyCode === 32) {\r\n $scope.requestRemoval(submission);\r\n }\r\n };\r\n\r\n $scope.goToSubmissionLink = function (link) {\r\n tracker.trackEvent(\"Workspaces shared to\", \"Click\", \"Go to assessor view\");\r\n $window.open(link, \"_blank\");\r\n };\r\n }\r\n ],\r\n link: function (scope, element, attrs) {\r\n //console.log(scope.asset.Submissions[0]);\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{::multiLanguageService.getString('sidebar.submissions.header')}}

0\">
{{externalAssessor.Name}}

{{externalAssessor.Email}}

{{::multiLanguageService.getString('sharing.labels.share_expires')}} {{externalAssessor.ExpiryDate | pebbleDate}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../assetStore/services/assetStoreService\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"../../expandable/expandable\";\r\nimport \"../../utilities/pebbleDate\";\r\nimport \"../../react2angular/assetIcon\";\r\nimport template from \"../templates/assets-with-links.html\";\r\n\r\n/**\r\n * Usage:\r\n * - assetIds: Array\r\n * OR\r\n * usage: - assets: Array\r\n */\r\nangularAMD.directive(\"assetsWithLinks\", [\r\n \"$http\",\r\n \"$sce\",\r\n \"$compile\",\r\n \"$timeout\",\r\n \"$rootScope\",\r\n \"baseUrlsFactory\",\r\n \"assetStoreService\",\r\n function ($http, $sce, $compile, $timeout, $rootScope, baseUrlsFactory, assetStoreService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n assetIds: \"=\",\r\n assets: \"=\",\r\n removeFeedback: \"=\",\r\n isCopying: \"=\",\r\n giveAssetsTo: \"=\",\r\n resourceShare: \"=\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n $scope.removeAsset = function (asset) {\r\n $scope._assets.removeOne($scope.assets.indexOf(asset));\r\n if ($scope.assets) {\r\n $scope.assets.removeOne($scope.assets.indexOf(asset));\r\n }\r\n if ($scope.giveAssetsTo) {\r\n $scope.giveAssetsTo.removeOne($scope.assets.indexOf(asset));\r\n }\r\n if ($scope.assetIds) {\r\n $scope.assetIds.removeOne($scope.assets.indexOf(asset.Id));\r\n }\r\n };\r\n $scope.hideLinked = false;\r\n if ($scope.resourceShare) {\r\n $scope.hideLinked = true;\r\n }\r\n\r\n $scope.changeAria = function () {\r\n var assetWithLinksBlock = angular.element(document.getElementsByClassName(\"asset-links\"));\r\n var addAriaExpanded = angular.element(document.getElementsByClassName(\"add-aria-expanded\"));\r\n\r\n assetWithLinksBlock.hasClass(\"expanded\") ? addAriaExpanded[0].setAttribute(\"aria-expanded\", \"true\") : addAriaExpanded[0].setAttribute(\"aria-expanded\", \"false\");\r\n };\r\n }\r\n ],\r\n link: function ($scope) {\r\n $scope.setShareTitleText = function (MainType) {\r\n // tslint:disable-next-line:triple-equals\r\n if ($scope.resourceShare == true) {\r\n if (MainType === \"Form\") {\r\n $scope.shareTitleText = angular.copy($scope.multiLanguageService.getString(\"sharing.labels.share_as_template\"));\r\n } else if (MainType === \"WorkBook\") {\r\n $scope.shareTitleText = angular.copy($scope.multiLanguageService.getString(\"sharing.labels.share_as_workbook\"));\r\n } else {\r\n $scope.shareTitleText = angular.copy($scope.multiLanguageService.getString(\"sharing.labels.share_as_asset\"));\r\n }\r\n }\r\n };\r\n\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n if ($scope.assets && $scope.assets.length) {\r\n $scope._assets = $scope.assets;\r\n $scope.setShareTitleText($scope._assets[0].MainType);\r\n $scope.ready = true;\r\n } else {\r\n $scope._assets = [];\r\n assetStoreService\r\n .getAssetWithLinks($scope.assetIds[0], $scope.removeFeedback || false, $scope.isCopying || false)\r\n .then(\r\n function (response) {\r\n $scope._assets[0] = response.data;\r\n if ($scope.giveAssetsTo !== undefined) {\r\n $scope.giveAssetsTo = $scope._assets;\r\n }\r\n $scope.setShareTitleText($scope._assets[0].MainType);\r\n $scope.ready = true;\r\n // Tell the share modal what the asset type(s) are\r\n $scope.$emit(\"updateAssetMainTypes\", $scope._assets.selectOne(\"MainType\"));\r\n },\r\n function (httpError) {\r\n // timed out\r\n // tslint:disable-next-line:triple-equals\r\n if (httpError.status == 408) {\r\n $scope.tooManyLinks = true;\r\n } else {\r\n console.error(\"Error getting asset links!\", httpError);\r\n }\r\n }\r\n )\r\n .finally(function () {\r\n $scope.ready = true;\r\n });\r\n }\r\n\r\n var removeSelectShareMainTypeListener = $rootScope.$on(\"selectShareMainTypeOption\", function (event, data) {\r\n if ($scope.assetIds[0] === data.selectedId[0]) {\r\n $scope.selectedShareOption = !$scope.selectedShareOption;\r\n } else {\r\n $scope.selectedShareOption = false;\r\n }\r\n $scope.hideLinked = false;\r\n });\r\n\r\n $scope.$on(\"$destroy\", function () {\r\n removeSelectShareMainTypeListener();\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
{{::multiLanguageService.getString(\"sharing.labels.too_many_links\")}}

{{ shareTitleText }}

{{asset.Title}}

1\" class=\"sub-title asset-details__paragraph\"> {{::multiLanguageService.getString('sharing.labels.created_by_and_when_collab', { numberOfCollabs: (asset.Authors.length), time: (asset.Created | pebbleDate: \"timeOnly\"), date: (asset.Created | pebbleDate) })}}

{{::multiLanguageService.getString('sharing.labels.created_by_and_when', { name: (asset.Authors[0].Forename + ' ' + asset.Authors[0].Surname), time: (asset.Created | pebbleDate: \"timeOnly\"), date: (asset.Created | pebbleDate) })}}

1\" ng-click=\"removeAsset(asset)\" tabindex=\"0\" role=\"button\">

Deleted

1\" class=\"sub-title asset-details__paragraph\"> {{::multiLanguageService.getString('sharing.labels.created_by_and_when_collab', { numberOfCollabs: (item.Authors.length), time: (item.Created | pebbleDate: \"timeOnly\"), date: (item.Created | pebbleDate) })}}

{{::multiLanguageService.getString('sharing.labels.created_by_and_when', { name: (item.Authors[0].Forename + ' ' + item.Authors[0].Surname), time: (item.Created | pebbleDate: \"timeOnly\"), date: (item.Created | pebbleDate) })}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/focusStyleProvider\";\r\n\r\nangularAMD.directive(\"autoFocus\", AutoFocus);\r\nAutoFocus.$inject = [\"$timeout\", \"focusStyleProvider\"];\r\n\r\nfunction AutoFocus($timeout, focusStyleProvider) {\r\n return {\r\n restrict: \"A\",\r\n link: function (scope, element, attrs) {\r\n attrs.$observe(\"autoFocus\", function (newValue) {\r\n if (newValue === \"true\") {\r\n //Default to 300 seconds to facilitate animations\r\n var delay = !isNaN(attrs.autoFocusDelay) ? Number(attrs.autoFocusDelay) : 300;\r\n $timeout(\r\n function () {\r\n focusStyleProvider.addFocusStyleClass();\r\n element[0].focus();\r\n },\r\n delay,\r\n false\r\n );\r\n }\r\n });\r\n }\r\n };\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../dropdown/dropdown\";\r\nimport \"../loadingSpinner/loadingSpinner\";\r\nimport \"../builder/dataManager/helperService\";\r\nimport \"../userAgent/userAgent.service\";\r\nimport template from \"./auto-complete.html\";\r\n\r\nangularAMD.directive(\"autoComplete\", [\r\n \"$sce\",\r\n \"baseUrlsFactory\",\r\n \"$timeout\",\r\n \"$rootScope\",\r\n \"helperService\",\r\n \"UserAgentService\",\r\n function ($sce, baseUrlsFactory, $timeout, $rootScope, helperService, UserAgentService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n startingItems: \"=startingItems\", // use if you have a static list of items\r\n autoCompleteActions: \"=autoCompleteActions\", // actions to be added to the end of the autocomplete list\r\n placeholderText: \"@placeholderText\", // when autocomplete field is empty display this text inside\r\n getItemsAction: \"=getItemsAction\", // broadcast id that will be used to request new items\r\n returnItemsAction: \"=returnItemsAction\", // when new items have been found this id is the broadcast which will catch them\r\n selectionAction: \"=selectionAction\", // where to send a selection result too, default too \"autoCompleteItemSelected\"\r\n inputTitle: \"@inputTitle\", // Title for the input field of the auto complete\r\n openInputLength: \"@openInputLength\", // Set length of search text used to trigger auto complete\r\n extraKeyUpFunction: \"&extraKeyUpFunction\", // extra keyup function, this will pass out $event and the current input\r\n noAutoCompleteItemsMessage: \"@noAutoCompleteItemsMessage\",\r\n autoFocus: \"=\",\r\n describedBy: \"@\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n $scope.autoCompleteItems = [];\r\n $scope.search_spinner = false;\r\n $scope.currentAutoComplete = -1;\r\n $scope.currentAction = -1;\r\n $scope.searchText = \"\";\r\n $scope.showAutoComplete = false;\r\n }\r\n ],\r\n link: function (scope, element, attrs) {\r\n // tslint:disable-next-line:triple-equals\r\n scope.open_input_length = scope.openInputLength != undefined ? scope.openInputLength : 3;\r\n\r\n scope.$watch(\"startingItems\", function (items) {\r\n // tslint:disable-next-line:triple-equals\r\n if (items != undefined) {\r\n scope.autoCompleteItems = angular.copy(scope.startingItems);\r\n }\r\n });\r\n\r\n var results_holder_el = angular.element(element[0].getElementsByClassName(\"results-holder\"))[0];\r\n var actionHolder = element[0].getElementsByClassName(\"actions-holder\")[0];\r\n var autoCompleteSearch = element[0].getElementsByClassName(\"auto-complete-search\")[0];\r\n\r\n if (scope.describedBy) {\r\n autoCompleteSearch.setAttribute(\"aria-describedby\", scope.describedBy);\r\n }\r\n\r\n var focusInput = function () {\r\n if (autoCompleteSearch) {\r\n autoCompleteSearch.focus();\r\n }\r\n };\r\n\r\n if (scope.autoFocus) {\r\n focusInput();\r\n }\r\n\r\n scope.$on(\"focusInput\", function (event) {\r\n focusInput();\r\n });\r\n\r\n scope.handleSelection = function (item) {\r\n scope.searchText = \"\";\r\n scope.showAutoComplete = false;\r\n // tslint:disable-next-line:triple-equals\r\n if (item != undefined) {\r\n // if a broadcast id has been specified then use that, otherwise use the default\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.selectionAction !== null && scope.selectionAction !== undefined && scope.selectionAction != \"\") {\r\n scope.$emit(scope.selectionAction, item);\r\n } else {\r\n scope.$emit(\"autoCompleteItemSelected\", item);\r\n }\r\n }\r\n };\r\n\r\n scope.handleActionSelection = function (item) {\r\n const currentSearch = scope.searchText;\r\n scope.searchText = \"\";\r\n scope.showAutoComplete = false;\r\n // tslint:disable-next-line:triple-equals\r\n if (item != undefined) {\r\n $timeout.cancel(scope.searchTimeout);\r\n scope.$emit(item.ActionFunction, item, currentSearch);\r\n focusInput();\r\n }\r\n };\r\n\r\n scope.onAutoCompleteKeyDown = function (keyEvent) {\r\n scope.hideAutoComplete = false;\r\n var keyPressed = keyEvent.which;\r\n switch (keyPressed) {\r\n case 27: // cancel pressed\r\n scope.showAutoComplete = false; // hide autocomplete\r\n break;\r\n case 9:\r\n case 16:\r\n case 17:\r\n case 18:\r\n break;\r\n default:\r\n focusInput();\r\n break;\r\n }\r\n };\r\n\r\n scope.onAutoCompleteEnter = function (keyEvent, index) {\r\n scope.hideAutoComplete = false;\r\n var keyPressed = keyEvent.which;\r\n switch (keyPressed) {\r\n case 13: // return pressed\r\n cancelDefaultAction(keyEvent);\r\n scope.selectorSpinner = true;\r\n scope.handleSelection(scope.filteredItems[index]); // do the same as mouse click\r\n scope.showAutoComplete = false;\r\n focusInput();\r\n break;\r\n case 9:\r\n case 16:\r\n case 17:\r\n case 18:\r\n break;\r\n default:\r\n focusInput();\r\n break;\r\n }\r\n };\r\n\r\n scope.openAutoComplete = function () {\r\n if (scope.searchText.length >= scope.open_input_length) {\r\n scope.showAutoComplete = false;\r\n $timeout(function () {\r\n scope.showAutoComplete = true;\r\n });\r\n }\r\n };\r\n\r\n function cancelDefaultAction(e) {\r\n // this function cancels the default behaviour of a normal keypress\r\n var evt = e ? e : window.event;\r\n if (evt.preventDefault) {\r\n evt.preventDefault();\r\n }\r\n evt.returnValue = false;\r\n return false;\r\n }\r\n\r\n scope.highlight = function (string, input) {\r\n if (!input) {\r\n return $sce.trustAsHtml(input);\r\n }\r\n\r\n return $sce.trustAsHtml(unescape(escape(string).replace(new RegExp(escape(input), \"gi\"), '$&')));\r\n };\r\n\r\n scope.searchTextKeyUp = function ($event) {\r\n var input = scope.searchText;\r\n scope.bindModel = scope.searchText;\r\n scope.showAutoComplete = input.length >= scope.open_input_length;\r\n if (input.length >= scope.open_input_length) {\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.getItemsAction != undefined) {\r\n scope.search_spinner = true;\r\n $timeout.cancel(scope.searchTimeout);\r\n scope.searchTimeout = $timeout(function () {\r\n $rootScope.$broadcast(scope.getItemsAction, { searchText: scope.searchText });\r\n }, 1000);\r\n } else {\r\n scope.correctHeightAfterChange();\r\n }\r\n }\r\n scope.lastInputLength = angular.copy(input.length);\r\n\r\n if (attrs.extraKeyUpFunction) {\r\n scope.extraKeyUpFunction()($event, input);\r\n }\r\n };\r\n\r\n // if we can expect some new items via broadcast then set up the on\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.returnItemsAction != undefined) {\r\n scope.$on(scope.returnItemsAction, function (event, data) {\r\n scope.autoCompleteItems = data;\r\n scope.search_spinner = false;\r\n scope.correctHeightAfterChange();\r\n });\r\n }\r\n\r\n scope.correctHeightAfterChange = function () {\r\n if (!scope.autoCompleteActions) {\r\n return;\r\n }\r\n\r\n var actionHeight;\r\n $timeout(function () {\r\n if (actionHolder) {\r\n actionHeight = actionHolder.getBoundingClientRect().height * scope.autoCompleteActions.length;\r\n //365 to allow for the padding.\r\n var height = 365;\r\n\r\n if (UserAgentService.touch) {\r\n height = height - element[0].querySelector(\".auto-complete-holder\").getBoundingClientRect().top;\r\n }\r\n\r\n var newHolderHeight = height - actionHeight;\r\n results_holder_el.style.maxHeight = newHolderHeight + \"px\";\r\n }\r\n });\r\n };\r\n\r\n scope.stopCloseOnBlur = function () {\r\n scope.preventClose = true;\r\n };\r\n\r\n scope.closeOnBlur = function (last) {\r\n scope.preventClose = false;\r\n if (last) {\r\n $timeout(function () {\r\n if (!scope.preventClose) {\r\n scope.showAutoComplete = false;\r\n scope.preventClose = false;\r\n }\r\n }, 200);\r\n }\r\n };\r\n\r\n scope.$on(\"clearAutoCompleteInput\", function () {\r\n scope.showAutoComplete = false;\r\n scope.searchText = \"\";\r\n });\r\n }\r\n };\r\n }\r\n]);\r\nangularAMD.filter(\"autoCompleteFilter\", function () {\r\n return function (data, input) {\r\n if (!data) {\r\n return null;\r\n }\r\n\r\n if (!input) {\r\n return null;\r\n }\r\n\r\n var dataArray = [];\r\n input = input.toLowerCase();\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n var item = data[i];\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if ((item.Title != null && item.Title.toLowerCase().indexOf(input) !== -1) || (item.SubTitle != null && item.SubTitle.toLowerCase().indexOf(input) !== -1)) {\r\n dataArray.push(item);\r\n }\r\n }\r\n\r\n return dataArray;\r\n };\r\n});\r\n","export default `
\"\"


= open_input_length && $parent.filteredItems.length == 0 && $parent.autoCompleteItems.length > 0\">{{::multiLanguageService.getString('auto_complete.labels.no_matches')}}
= open_input_length && $parent.filteredItems.length == 0 && ($parent.autoCompleteItems.length == 0 && $parent.returnItemsAction == undefined)\">{{noAutoCompleteItemsMessage}}
= 100\" class=\"many-results\">{{::multiLanguageService.getString('auto_complete.labels.too_many_results')}}
0 && showAutoComplete\" data-hook=\"auto-complete-action-item\">

{{::item.Title}}

{{::item.SubTitle}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../loadingSpinner/loadingSpinner\";\r\nimport \"../../builder/dataManager/helperService\";\r\nimport \"../autoComplete\";\r\nimport \"../../externalContact/externalContact\";\r\nimport \"../../extendSearch/directives/extendSearch\";\r\nimport \"../../extendSearch/services/searchService\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport template from \"./contact-auto-complete.html\";\r\n\r\nangularAMD.directive(\"contactAutoComplete\", [\r\n \"$rootScope\",\r\n \"$timeout\",\r\n \"helperService\",\r\n \"searchService\",\r\n function ($rootScope, $timeout, helperService, searchService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n selectedUsers: \"=selectedUsers\",\r\n sharees: \"=sharees\",\r\n selectedContacts: \"=selectedContacts\",\r\n inputTitle: \"@inputTitle\",\r\n autoFocus: \"=\",\r\n describedBy: \"@\"\r\n },\r\n link: function (scope, element, attrs) {\r\n searchService.getContacts().then(function (response) {\r\n scope.userContacts = response.data;\r\n });\r\n\r\n scope.auto_complete_broadcast_id = helperService.guid();\r\n scope.multiLanguageService = $rootScope.multiLanguageService;\r\n\r\n scope.$on(scope.auto_complete_broadcast_id + \"autoCompleteItemSelected\", function (event, data) {\r\n data.canRemoveFromShare = true;\r\n scope.pushContact(data);\r\n scope.focusAutoCompleteInput();\r\n });\r\n\r\n scope.pushContact = function (data) {\r\n if (scope.selectedContacts.indexOf(data.ContactId) === -1) {\r\n scope.sharees.push(data);\r\n scope.selectedContacts.push(data.ContactId);\r\n }\r\n };\r\n\r\n scope.removeUser = function (index) {\r\n var user = scope.sharees[index];\r\n if (user && user.ContactId !== null && user.ContactId !== undefined) {\r\n scope.removeContact(user, index);\r\n return;\r\n }\r\n\r\n var userId = scope.sharees[index].UserId;\r\n var selectedUserIndex = scope.selectedUsers.findIndex(function (item) {\r\n return item.Id === userId;\r\n });\r\n\r\n if (selectedUserIndex !== -1) {\r\n scope.selectedUsers.splice(selectedUserIndex, 1);\r\n }\r\n scope.sharees.splice(index, 1);\r\n scope.$broadcast(\"focusInput\");\r\n };\r\n\r\n scope.removeContact = function (user, index) {\r\n const contactId = scope.sharees[index].ContactId;\r\n scope.selectedContacts.remove(contactId);\r\n scope.sharees.splice(index, 1);\r\n };\r\n\r\n ////////////////////////////////////////////////////\r\n //Listener for opening the add external contact form\r\n scope.$on(\"showAddContactForm\", function (event, data) {\r\n // tslint:disable-next-line:triple-equals\r\n if (data != null) {\r\n scope.addExternalContactData = data;\r\n }\r\n scope.showAddContactForm();\r\n });\r\n\r\n ////////////////////////////////////////////////////\r\n //Listener for closing the add external contact form\r\n scope.$on(\"closeExternalForm\", function (event) {\r\n scope.showAddContact = false;\r\n });\r\n\r\n scope.showAddContactForm = function () {\r\n scope.showAddContact = true;\r\n scope.showExtendSearch = false;\r\n\r\n $timeout(() => {\r\n element[0].scrollIntoView();\r\n document.getElementById(\"externalContactFirstName\").focus();\r\n });\r\n };\r\n\r\n /////////////////////////////////////////////\r\n //Listener for opening the extend search form\r\n scope.$on(\"showExtendSearchForm\", function (event, data, input) {\r\n scope.showExtendSearchForm(input);\r\n });\r\n\r\n /////////////////////////////////////////////\r\n //Listener for closing the extend search form\r\n scope.$on(\"closeExtendSearchForm\", function (event, data) {\r\n scope.showExtendSearch = false;\r\n });\r\n\r\n scope.showExtendSearchForm = function (input) {\r\n scope.extendSearchData = {\r\n firstName: \"\",\r\n secondName: \"\",\r\n email: \"\"\r\n };\r\n\r\n const trimmedInput = input.trim().replace(/\\s{2,}/g, \"\");\r\n const spaceMatch = trimmedInput.match(/^([^\\s]+)\\s(.+?)$/);\r\n\r\n if (spaceMatch !== null) {\r\n scope.extendSearchData.firstName = spaceMatch[1];\r\n scope.extendSearchData.secondName = spaceMatch[2];\r\n } else if (trimmedInput.includes(\"@\")) {\r\n scope.extendSearchData.email = trimmedInput;\r\n } else {\r\n scope.extendSearchData.firstName = trimmedInput;\r\n }\r\n\r\n scope.showExtendSearch = true;\r\n scope.showAddContact = false;\r\n };\r\n\r\n scope.$on(\"newContactAdded\", function (event, data) {\r\n if (!scope.sharees.contains(data) && !scope.selectedContacts.contains(data.ContactId)) {\r\n data.canRemoveFromShare = true;\r\n scope.sharees.push(data);\r\n scope.selectedContacts.push(data.ContactId || data.UserId);\r\n }\r\n\r\n scope.focusAutoCompleteInput();\r\n });\r\n\r\n scope.actions = [\r\n {\r\n Title: scope.multiLanguageService.getString(\"extend_search.headers.search\"),\r\n ActionFunction: \"showExtendSearchForm\",\r\n IconUrl: \"icon-extend-search\"\r\n }\r\n ];\r\n\r\n scope.$watch(\"showExtendSearch\", function (showExtendSearch) {\r\n // tslint:disable-next-line:triple-equals\r\n if (showExtendSearch == true) {\r\n $timeout(function () {\r\n element[0].scrollIntoView();\r\n document.getElementById(\"extendSearchFirstName\").focus();\r\n });\r\n }\r\n });\r\n\r\n scope.focusAutoCompleteInput = function () {\r\n const autoCompleteInput = element[0].querySelector(\"[data-hook='auto-complete-input']\");\r\n if (autoCompleteInput !== null) {\r\n autoCompleteInput.focus();\r\n }\r\n };\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
\"\"

{{user.Title}}

({{::multiLanguageService.getString('sharing.collaboration.external_user_flag')}})

{{::multiLanguageService.getString('applications.applicants.email', {email: user.SubTitle})}}

`;",null,"import { noop } from \"@pjs/utilities\";\r\nimport { Observable, ReplaySubject, switchMap, tap, from, defer, share, race, catchError, of } from \"@pjs/observables\";\r\nimport { IEmbedConsentManager } from \"./interfaces/IEmbedConsentManager\";\r\n\r\nexport class ApiConsentManager implements IEmbedConsentManager {\r\n public readonly consent: Observable;\r\n\r\n private readonly _hasConsentSubject: ReplaySubject = new ReplaySubject(1);\r\n private readonly _makeRequestForConsentState: () => Promise;\r\n private readonly _makeRequestToSetConsentState: (state: boolean) => Promise;\r\n\r\n constructor(makeRequestForConsentState: () => Promise, makeRequestToSetConsentState: (state: boolean) => Promise) {\r\n this._makeRequestForConsentState = makeRequestForConsentState;\r\n this._makeRequestToSetConsentState = makeRequestToSetConsentState;\r\n\r\n this.consent = this._createHasConsentObservable();\r\n }\r\n\r\n public grantConsent(): Observable {\r\n this._hasConsentSubject.next(true);\r\n return from(this._makeRequestToSetConsentState(true).then(noop));\r\n }\r\n\r\n public revokeConsent(): Observable {\r\n return from(this._makeRequestToSetConsentState(false).then(noop)).pipe(tap(() => this._hasConsentSubject.next(false)));\r\n }\r\n\r\n private _createHasConsentObservable(): Observable {\r\n const getInititalConsentState = defer(() => this._makeRequestForConsentState()).pipe(\r\n catchError(() => of(false)),\r\n share(),\r\n switchMap((value) => {\r\n this._hasConsentSubject.next(value);\r\n return this._hasConsentSubject;\r\n })\r\n );\r\n\r\n return race(this._hasConsentSubject, getInititalConsentState);\r\n }\r\n}\r\n",null,"import { cookieStore } from \"@pjs/storage\";\r\nimport { Observable, of, ReplaySubject, share, defer, tap, takeUntil, merge } from \"@pjs/observables\";\r\nimport { SameSite } from \"@pjs/storage\";\r\nimport { IEmbedConsentManager } from \"./interfaces/IEmbedConsentManager\";\r\n\r\nexport class CookieConsentManager implements IEmbedConsentManager {\r\n public readonly consent: Observable;\r\n\r\n private readonly _hasConsentSubject: ReplaySubject = new ReplaySubject(1);\r\n private readonly _cookieName: string = \"__PP_Embed_content_consent\";\r\n\r\n constructor() {\r\n this.consent = this._createHasConsentObservable();\r\n }\r\n\r\n public grantConsent(): Observable {\r\n this._hasConsentSubject.next(true);\r\n\r\n const now = new Date();\r\n this._writeCookie(this._cookieName, now.toUTCString());\r\n\r\n return of();\r\n }\r\n\r\n public revokeConsent(): Observable {\r\n this._hasConsentSubject.next(false);\r\n\r\n this._deleteCookie();\r\n\r\n return of();\r\n }\r\n\r\n private _createHasConsentObservable(): Observable {\r\n const getCookie = defer(() => of(this._readCookie() === null ? false : true)).pipe(\r\n share(),\r\n tap((value) => this._hasConsentSubject.next(value)),\r\n takeUntil(this._hasConsentSubject)\r\n );\r\n\r\n return merge(this._hasConsentSubject, getCookie);\r\n }\r\n\r\n private _readCookie(): string | null {\r\n const cookie = cookieStore.get(this._cookieName);\r\n\r\n if (cookie === null) {\r\n return null;\r\n }\r\n\r\n return cookie.value;\r\n }\r\n\r\n private _writeCookie(key: string, value: string): void {\r\n cookieStore.set(key, value, {\r\n sameSite: SameSite.Strict,\r\n secure: true\r\n });\r\n }\r\n\r\n private _deleteCookie(): void {\r\n cookieStore.delete(this._cookieName);\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ApiConsentManager, CookieConsentManager } from \"@pjs/asset-block\";\r\nimport \"../../../user/user.service\";\r\nimport \"../../../assetEndpointService/assetEndpoint.service\";\r\n\r\nclass EmbedConsentService {\r\n constructor(_$q_, User, assetEndpointService) {\r\n this._$q = _$q_;\r\n this._user = User;\r\n this._assetEndpointService = assetEndpointService;\r\n this._apiConsentManager = new ApiConsentManager(\r\n () => this._getConsent(),\r\n (consented) => this._setConsent(consented)\r\n );\r\n this._cookieConsentManager = new CookieConsentManager();\r\n }\r\n\r\n _getConsent() {\r\n return this._$q.resolve(this._user.hasConsentedToEmbeddedContent());\r\n }\r\n\r\n _setConsent(consented) {\r\n if (consented) {\r\n return this._assetEndpointService.grantEmbeddedConsent();\r\n } else {\r\n return this._assetEndpointService.revokeEmbeddedConsent();\r\n }\r\n }\r\n\r\n _getConsentManager() {\r\n if (this._user.getDto() === null) {\r\n return this._cookieConsentManager;\r\n }\r\n\r\n return this._apiConsentManager;\r\n }\r\n\r\n grantConsent() {\r\n return this._getConsentManager().grantConsent();\r\n }\r\n\r\n revokeConsent() {\r\n return this._getConsentManager().revokeConsent();\r\n }\r\n\r\n consent() {\r\n return this._getConsentManager().consent;\r\n }\r\n}\r\n\r\nEmbedConsentService.$inject = [\"$q\", \"User\", \"AssetEndpointService\"];\r\nangularAMD.service(\"embedConsentService\", EmbedConsentService);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./dropdown-option-component.html\";\r\n\r\nvar ComponentObject = {\r\n bindings: {\r\n onValueChange: \"&\",\r\n heading: \"<\",\r\n tip: \"<\",\r\n value: \"<\",\r\n key: \"<\",\r\n options: \"<\"\r\n },\r\n controller: DropDownOptionComponent,\r\n template: template\r\n};\r\n\r\n// tslint:disable-next-line:no-empty\r\nfunction DropDownOptionComponent() {}\r\n\r\nDropDownOptionComponent.prototype.changeOption = function () {\r\n this.onValueChange({ key: this.key, value: this.value });\r\n};\r\n\r\nangularAMD.component(\"dropDownOptionComponent\", ComponentObject);\r\n\r\nexport { ComponentObject as dropDownOptionComponent };\r\n","export default `

{{::$ctrl.heading}}

{{::$ctrl.tip}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./radio-button-option-component.html\";\r\n\r\nvar ComponentObject = {\r\n bindings: {\r\n onValueChange: \"&\",\r\n heading: \"<\",\r\n tip: \"<\",\r\n value: \"<\",\r\n key: \"<\",\r\n options: \"<\"\r\n },\r\n controller: RadioButtonComponent,\r\n template: template\r\n};\r\n\r\n// tslint:disable-next-line:no-empty\r\nfunction RadioButtonComponent() {}\r\n\r\nRadioButtonComponent.prototype.radioButtonChange = function () {\r\n this.onValueChange({ key: this.key, value: this.value });\r\n};\r\nangularAMD.component(\"radioButtonOptionComponent\", ComponentObject);\r\n\r\nexport { ComponentObject as radioButtonOptionComponent };\r\n","export default `

{{::$ctrl.heading}}

{{::$ctrl.tip}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { dataEncryptionService } from \"../../utilities/dataEncryptionService\";\r\nimport { ASSET_CONSTANTS } from \"../../constants/asset.constants\";\r\nimport { PAGE_ERROR } from \"../../constants/pageError.constants\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"./dtoFactory\";\r\nimport \"./helperService\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../formComponents/services/formComponentsHelper\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"../../utilities/urlService\";\r\nimport \"../../utilities/helpers\";\r\nimport \"../../modal/services/modal\";\r\nimport \"../../localChanges/services/localChangesResolver\";\r\nimport \"../tables/services/tableDtoHelper.service\";\r\nimport \"../../assetLocking/services/assetLockingHelper.service\";\r\nimport \"../../overlay/services/overlayFactory\";\r\nimport \"../../assetEndpointService/assetEndpoint.service\";\r\nimport \"../../recoveryLogger/recoveryLogger\";\r\nimport \"../../localStorage/persistentObjectStore.service\";\r\nimport \"../../utilities/migrators/migratorRunner.provider\";\r\nimport \"../../assetPageHandler/assetPageHandler.factory\";\r\nimport \"../../assetStore/services/assetStoreService\";\r\nimport { PageModelSearch } from \"../../pageModelSearch/pageModelSearch\";\r\nimport { AssetContext } from \"../../assetContext/assetContext\";\r\nimport { byPageId } from \"../../pageModelSearch/helpers/ByPageId.function\";\r\nimport { determinePageAssetId } from \"../../pageModelSearch/helpers/DeterminePageAssetId.function\";\r\nimport { withoutDuplicatePageResponsesFactory } from \"../../pageModelSearch/helpers/WithoutDuplicatePageResponsesFactory.function\";\r\nimport { withoutDuplicatePageAssetIdsFactory } from \"../../pageModelSearch/helpers/WithoutDuplicatePageAssetIdsFactory.function\";\r\nimport { withoutEmptyPageAssetIds } from \"../../pageModelSearch/helpers/WithoutEmptyPageAssetIds.function\";\r\n\r\nangularAMD.factory(\"dataManagerService\", [\r\n \"$http\",\r\n \"$q\",\r\n \"$rootScope\",\r\n \"$location\",\r\n \"$interval\",\r\n \"$routeParams\",\r\n \"$filter\",\r\n \"$timeout\",\r\n \"baseUrlsFactory\",\r\n \"dtoFactory\",\r\n \"helperService\",\r\n \"multiLanguageService\",\r\n \"formComponentsHelper\",\r\n \"urlService\",\r\n \"helpers\",\r\n \"modal\",\r\n \"localChangesResolver\",\r\n \"tableDtoHelper\",\r\n \"AssetLockingHelper\",\r\n \"overlayFactory\",\r\n \"AssetEndpointService\",\r\n \"recoveryLogger\",\r\n \"persistentObjectStore\",\r\n \"migratorRunner\",\r\n \"assetPageHandlerFactory\",\r\n \"assetStoreService\",\r\n function (\r\n $http,\r\n $q,\r\n $rootScope,\r\n $location,\r\n $interval,\r\n $routeParams,\r\n $filter,\r\n $timeout,\r\n baseUrlsFactory,\r\n dtoFactory,\r\n helperService,\r\n multiLanguageService,\r\n formComponentsHelper,\r\n urlService,\r\n helpers,\r\n modal,\r\n localChangesResolver,\r\n tableDtoHelper,\r\n AssetLockingHelper,\r\n overlayFactory,\r\n AssetEndpointService,\r\n recoveryLogger,\r\n persistentObjectStore,\r\n migratorRunner,\r\n assetPageHandlerFactory,\r\n assetStoreService\r\n ) {\r\n var user_id = null,\r\n DTO_TYPES = {\r\n ACTIVITY_LOG: \"ActivityLog\",\r\n BLOG: \"Blog\",\r\n COLLECTION_WRAPPER: \"AssetCollectionWrapper\",\r\n CV: \"CV\",\r\n FORM: \"Form\",\r\n FORM_RESPONSE: \"FormResponse\",\r\n POST: \"Post\",\r\n WEBFOLIO: \"Webfolio\",\r\n WEBFOLIO_PAGE: \"WebfolioPage\",\r\n WORKBOOK: \"WorkBook\",\r\n WORKBOOK_RESPONSE: \"WorkBookResponse\",\r\n TEMPLATE_BUILDER: \"TemplateBuilder\",\r\n WORKBOOK_BUILDER: \"WorkbookBuilder\"\r\n };\r\n /********************************************\r\n * Service\r\n ********************************************/\r\n\r\n var dataManagerService = {\r\n dtos: [],\r\n current_navigation: undefined,\r\n current_page: undefined,\r\n primary_id: undefined,\r\n poll: undefined,\r\n recordAssetViewPromise: undefined,\r\n current_canvas_builder_manager: undefined,\r\n\r\n decrypt: function (data, return_string) {\r\n var result = data;\r\n\r\n try {\r\n result = dataEncryptionService.AES.decrypt(result, user_id); // decrypt data\r\n\r\n result = result.toString(dataEncryptionService.enc.Utf8); // get final object from decrypted object\r\n if (return_string) {\r\n return result;\r\n } else {\r\n return JSON.parse(result); // parse string into JSON\r\n }\r\n // tslint:disable-next-line:no-empty\r\n } catch (error) {}\r\n },\r\n\r\n /**\r\n * @param {string} localStorageReference\r\n * @return {null | Object}\r\n */\r\n loadFromPersistentObjStore: function (localStorageReference) {\r\n return persistentObjectStore.retrieve(localStorageReference, user_id);\r\n },\r\n\r\n isAssetInStorage: function (assetId) {\r\n return persistentObjectStore.has(assetId);\r\n },\r\n\r\n /**\r\n * @param {boolean=} returnOnlyKeys\r\n * @return {Array | Object}\r\n */\r\n getAllLocalStorageData: function (returnOnlyKeys = false) {\r\n const data = returnOnlyKeys ? [] : {};\r\n\r\n for (const storage_key of persistentObjectStore.keys()) {\r\n if (returnOnlyKeys) {\r\n data.push(storage_key);\r\n } else {\r\n data[storage_key] = persistentObjectStore.retrieve(storage_key, user_id);\r\n }\r\n }\r\n\r\n return data;\r\n },\r\n\r\n fetchAllDtos: function (ids) {\r\n var key,\r\n promise,\r\n promises = [],\r\n all_local_storage_objs = dataManagerService.getAllLocalStorageData();\r\n\r\n // by default we fetch all\r\n if (ids === undefined || ids === null || ids.length < 1) {\r\n for (key in all_local_storage_objs) {\r\n var params = {\r\n assetId: key,\r\n permissionRequired: \"View\"\r\n };\r\n promise = AssetEndpointService.getAssetAndCheckPermission(params);\r\n promises.push(promise);\r\n }\r\n } else {\r\n // only fetch the ids specified\r\n for (key in all_local_storage_objs) {\r\n for (var i = 0; i < ids.length; i++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (key == ids[i]) {\r\n var params = {\r\n assetId: key,\r\n permissionRequired: \"View\"\r\n };\r\n promise = AssetEndpointService.getAssetAndCheckPermission(params);\r\n promises.push(promise);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return $q.all(promises);\r\n },\r\n\r\n cacheAllDtos: function (ids) {\r\n var i,\r\n promise,\r\n promises = [],\r\n deferred = $q.defer();\r\n\r\n dataManagerService.fetchAllDtos(ids).then(function (data) {\r\n for (i = 0; i < data.length; i++) {\r\n if (data[i].data.MessageType === \"Success\") {\r\n promise = dataManagerService.init(data[i].data);\r\n promises.push(promise);\r\n }\r\n }\r\n\r\n deferred.resolve({ promises: $q.all(promises) });\r\n });\r\n\r\n return deferred.promise;\r\n },\r\n\r\n /**\r\n * Method to check we still have a lock (or can reacquire a lock) before saving\r\n * @param {string} assetId - well take a wild guess\r\n * @param {string} mainType - used by modals to say whether its an asset or resource in the messages\r\n * @param {string} pageAssetId\r\n * @returns {Promise}\r\n */\r\n checkBeforeSave: function (assetId, mainType, pageAssetId) {\r\n var onFailure = function () {\r\n overlayFactory.saveOverlay.hide();\r\n return $q.reject();\r\n };\r\n\r\n var self = this;\r\n //Check for active user Lock (Collaboration)\r\n recoveryLogger.step(\"save\", `Saving root ${mainType}`);\r\n return AssetLockingHelper.keepLockAlive(assetId, mainType).then(function () {\r\n return localChangesResolver.checkBeforeSave(assetId).then(\r\n function (resolved) {\r\n //If we have done a recovery via any locked asset permission checks, broadcast an event to let Controllers handle it\r\n if (resolved && resolved.recoveryDto.lockedAssets) {\r\n $rootScope.$broadcast(\"pageAssetRecoveredDuringSave\", assetId);\r\n }\r\n },\r\n function (rejection) {\r\n if (rejection && rejection.standaloneLockedResponse) {\r\n localChangesResolver.cleanupLocalStorageAndResetManager([assetId]);\r\n $location.path(urlService.createUrl(assetId, \"\", true));\r\n }\r\n onFailure();\r\n }\r\n );\r\n }, onFailure);\r\n },\r\n\r\n cleanUpRecoverOutdatedLocalStorageItems: function () {\r\n $rootScope.recoveryInProgress = true;\r\n\r\n recoveryLogger.start(\"n/a\", \"App load cleanup\");\r\n const startRecoveryPromise = $q.defer();\r\n const allLocalStorageData = this.getAllLocalStorageData(true);\r\n const recoveryPromise = localChangesResolver.checkAndRecoverAll(allLocalStorageData, startRecoveryPromise);\r\n\r\n startRecoveryPromise.promise.then(\r\n () => {\r\n localChangesResolver.notifyUser(false, false, null, recoveryPromise, null, null).then(function () {\r\n $rootScope.recoveryInProgress = false;\r\n });\r\n },\r\n () => {\r\n recoveryPromise.then(function () {\r\n $rootScope.recoveryInProgress = false;\r\n });\r\n }\r\n );\r\n\r\n recoveryPromise.catch(() => ($rootScope.recoveryInProgress = false));\r\n },\r\n\r\n cleanUpOutdatedStorageItems: function () {\r\n var key,\r\n all_local_storage_objs = dataManagerService.getAllLocalStorageData(),\r\n decrypted_dto,\r\n decrypted_dto_date;\r\n\r\n // deprecation date is 2 weeks back in time from\r\n var deprecation_date = new Date();\r\n deprecation_date.setHours(0, 0, 0, 0);\r\n deprecation_date.setDate(deprecation_date.getDate() - 7);\r\n\r\n for (key in all_local_storage_objs) {\r\n if (all_local_storage_objs.hasOwnProperty(key)) {\r\n decrypted_dto = all_local_storage_objs[key];\r\n // tslint:disable-next-line:triple-equals\r\n if (decrypted_dto && decrypted_dto.LocalStorageExpiryDate && decrypted_dto.is_saved && decrypted_dto.is_saved != false) {\r\n decrypted_dto_date = new Date(decrypted_dto.LocalStorageExpiryDate); // get local storage date\r\n if (!(decrypted_dto_date > deprecation_date)) {\r\n // compare last modified against deprecation date\r\n this.destroy(key); // remove item if it is deprecated\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n getUserData: function () {\r\n var deferred = $q.defer();\r\n\r\n if (user_id) {\r\n deferred.resolve(user_id);\r\n return deferred.promise;\r\n } else {\r\n $http.defaults.withCredentials = true;\r\n return $http.get(baseUrlsFactory.api_base_url + \"SharedMenu/GetLoggedInUserId?ticks=\" + new Date().getTime());\r\n }\r\n },\r\n\r\n cleanUpLocalStorage: function () {\r\n if (helperService.isNotInAsset()) {\r\n this.getUserData().then(\r\n function (response) {\r\n user_id = response.data ? response.data : \"pebblelocalstorage\";\r\n // self.cleanUpOutdatedStorageItems();\r\n this.cleanUpRecoverOutdatedLocalStorageItems();\r\n }.bind(this)\r\n );\r\n }\r\n },\r\n\r\n validateBeforeSave: function (dto) {\r\n if (\r\n dataManagerService.current_navigation === dto.AssetId ||\r\n (!dataManagerService.current_navigation && dataManagerService.current_page === dto.AssetId)\r\n ) {\r\n dto.data.AssetFolder = \"Main\";\r\n }\r\n },\r\n\r\n /**\r\n * @param {string} key\r\n * @returns {void}\r\n */\r\n destroy: function (key) {\r\n persistentObjectStore.remove(key);\r\n },\r\n\r\n checkIfSaved: function (key) {\r\n if (dataManagerService.dtos[key] && dataManagerService.dtos[key].data) {\r\n if (dataManagerService.dtos[key].data.MainType === \"WorkBookResponse\") {\r\n return dataManagerService.workbookManagerObject.checkForIsSavedAnywhereInWorkbook(key);\r\n } else {\r\n return dataManagerService.dtos[key].is_saved;\r\n }\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n setCurrentData: function (asset_id, page_id) {\r\n if (!asset_id) {\r\n return;\r\n }\r\n\r\n var asset_data, asset_main_type, page_data;\r\n\r\n asset_data = dataManagerService.dtos[asset_id];\r\n asset_main_type = asset_data.data ? asset_data.data.MainType : null;\r\n\r\n switch (asset_main_type) {\r\n case \"Webfolio\":\r\n dataManagerService.init({ AssetId: asset_id, Asset: asset_data.data }); // webfolio page\r\n\r\n page_data = dataManagerService.dtos[page_id];\r\n if (page_data) {\r\n dataManagerService.init({ AssetId: page_id, Asset: page_data.data });\r\n }\r\n break;\r\n case \"Form\":\r\n case \"FormResponse\":\r\n case \"WebfolioPage\":\r\n case \"Post\":\r\n case \"AssetCollectionWrapper\":\r\n case \"ActivityLog\":\r\n dataManagerService.init({ AssetId: asset_id, Asset: asset_data.data });\r\n break;\r\n case \"WorkBookResponse\":\r\n dataManagerService.init({ AssetId: asset_id, Asset: asset_data.data }).then(function () {\r\n var page = dataManagerService.workbookManagerObject.findWorkbookPage(page_id, dataManagerService.workbookManagerObject.data.Pages);\r\n\r\n if (page.UserResponseId) {\r\n page_data = dataManagerService.dtos[page.UserResponseId];\r\n\r\n if (page_data) {\r\n dataManagerService.init({ AssetId: page.UserResponseId, Asset: page_data.data });\r\n }\r\n }\r\n });\r\n break;\r\n default:\r\n throw new Error(\"Oh oh! I don't know [\" + asset_main_type + \"] type of MainType.\");\r\n }\r\n },\r\n\r\n save: function (asset_id, page_id) {\r\n var unsaved_dtos = [],\r\n dto_key,\r\n i,\r\n data_to_send,\r\n promise,\r\n promises = [],\r\n self = this,\r\n deferred = $q.defer();\r\n\r\n // leave this in\r\n console.warn(\"WARNING, DEFAULT SAVE BEING USED, MAINTYPE SPECIFIC METHOD SHOULD BE USED\");\r\n\r\n // when fetch all dtos is done\r\n var ids = [];\r\n ids.push(asset_id);\r\n dataManagerService.cacheAllDtos(ids).then(function (data) {\r\n // when caching is done\r\n data.promises.then(function () {\r\n self.setCurrentData(asset_id, page_id);\r\n\r\n for (dto_key in dataManagerService.dtos) {\r\n if (dataManagerService.dtos.hasOwnProperty(dto_key)) {\r\n if (dataManagerService.dtos[dto_key].is_saved === false) {\r\n dataManagerService.validateBeforeSave(dataManagerService.dtos[dto_key]);\r\n unsaved_dtos.push(dataManagerService.dtos[dto_key]);\r\n }\r\n }\r\n }\r\n\r\n for (i = 0; i < unsaved_dtos.length; i++) {\r\n // check revision number hasn't been set to NaN\r\n if (isNaN(unsaved_dtos[i].data.Revision)) {\r\n unsaved_dtos[i].data.Revision = -1;\r\n }\r\n data_to_send = { model: unsaved_dtos[i].data };\r\n $http.defaults.withCredentials = true;\r\n promise = AssetEndpointService.saveOrUpdate(data_to_send);\r\n promises.push(promise.then(updateBaseVersion));\r\n }\r\n\r\n deferred.resolve({ promises: $q.all(promises) });\r\n });\r\n });\r\n\r\n return deferred.promise;\r\n },\r\n\r\n init: function (data, not_main) {\r\n var self = this;\r\n var deferred = $q.defer();\r\n switch (data.Asset.MainType) {\r\n case DTO_TYPES.ACTIVITY_LOG:\r\n new ActivityLogManager(data, deferred, not_main);\r\n break;\r\n case DTO_TYPES.BLOG:\r\n new BlogManager(data, deferred, not_main);\r\n break;\r\n case DTO_TYPES.COLLECTION_WRAPPER:\r\n new CollectionWrapperManager(data, deferred, not_main);\r\n break;\r\n case DTO_TYPES.CV:\r\n new CvManager(data, deferred, not_main);\r\n break;\r\n case DTO_TYPES.FORM:\r\n case DTO_TYPES.FORM_RESPONSE:\r\n new FormManager(data, deferred, not_main);\r\n break;\r\n case DTO_TYPES.POST:\r\n self.current_canvas_builder_manager = data.Asset.MainType;\r\n new PostManager(data, deferred, not_main);\r\n break;\r\n case DTO_TYPES.WEBFOLIO:\r\n new WebfolioManager(data, deferred, not_main);\r\n break;\r\n case DTO_TYPES.WEBFOLIO_PAGE:\r\n self.current_canvas_builder_manager = data.Asset.MainType;\r\n new PageManager(data, deferred, not_main);\r\n break;\r\n case DTO_TYPES.WORKBOOK:\r\n case DTO_TYPES.WORKBOOK_RESPONSE:\r\n new WorkbookManager(data, deferred, not_main);\r\n break;\r\n case DTO_TYPES.TEMPLATE_BUILDER:\r\n self.current_canvas_builder_manager = data.Asset.MainType;\r\n new TemplateBuilderManager(data, deferred, not_main);\r\n break;\r\n case DTO_TYPES.WORKBOOK_BUILDER:\r\n self.current_canvas_builder_manager = data.Asset.MainType;\r\n new WorkbookBuilderManager(data, deferred, not_main);\r\n break;\r\n default:\r\n throw new Error(\"Oh oh! I don't know [\" + data.Asset.MainType + \"] type of DTO. Can you check what type of DTO you trying to create?\");\r\n }\r\n\r\n return deferred.promise;\r\n },\r\n\r\n cancelPromise: function (promise) {\r\n // If the promise does not contain a hook into the deferred timeout,\r\n // the simply ignore the cancel request.\r\n if (promise && promise._httpTimeout && promise._httpTimeout.resolve) {\r\n promise._httpTimeout.resolve();\r\n }\r\n },\r\n\r\n getDto: function (assetId) {\r\n if (assetId && dataManagerService.dtos) {\r\n return dataManagerService.dtos[assetId];\r\n }\r\n\r\n return null;\r\n },\r\n\r\n waitForDto: function (assetId) {\r\n var deferred = $q.defer();\r\n var dto = this.getDto(assetId);\r\n if (dto) {\r\n deferred.resolve(dto);\r\n } else {\r\n //get Asset Ref\r\n //Check type\r\n var cleanUp = $rootScope.$on(\r\n \"dtoAdded\",\r\n function () {\r\n var dto = this.getDto(assetId);\r\n if (dto) {\r\n deferred.resolve(dto);\r\n cleanUp();\r\n }\r\n }.bind(this)\r\n );\r\n }\r\n return deferred.promise;\r\n },\r\n\r\n reset: function () {\r\n dataManagerService.dtos = [];\r\n dataManagerService.current_navigation = undefined;\r\n dataManagerService.current_page = undefined;\r\n dataManagerService.primary_id = undefined;\r\n\r\n $interval.cancel(dataManagerService.poll);\r\n dataManagerService.poll = undefined;\r\n dataManagerService.cancelPromise(dataManagerService.recordAssetViewPromise);\r\n },\r\n\r\n recordAssetView: function (asset_id) {\r\n if (!asset_id) {\r\n if (angular.isDefined(dataManagerService.poll)) {\r\n $interval.cancel(dataManagerService.poll);\r\n dataManagerService.poll = undefined;\r\n }\r\n return;\r\n }\r\n dataManagerService.primary_id = asset_id;\r\n dataManagerService.recordAssetViewPromise = urlService\r\n .promisedGet(baseUrlsFactory.api_base_url + \"AssetDto/RecordAssetView?assetId=\" + dataManagerService.primary_id)\r\n .then(function (response) {\r\n if (response.data && $rootScope.userData) {\r\n // Check to see if there is another user currently viewing\r\n if (response.data.UserId !== $rootScope.userData.UserId) {\r\n // if so, broadcast the user to workflow bar\r\n $rootScope.$broadcast(\"lock_workflow_bar\", response.data);\r\n } else if (!dataManagerService.poll) {\r\n // if not, regularly poll to keep the asset view record alive\r\n dataManagerService.poll = $interval(\r\n function () {\r\n dataManagerService.recordAssetView(dataManagerService.primary_id);\r\n },\r\n 120000,\r\n 360\r\n ); // every 2 minutes for up to 12 hours\r\n }\r\n }\r\n });\r\n },\r\n\r\n getDataManagerObject: function (mainType) {\r\n switch (mainType) {\r\n case DTO_TYPES.ACTIVITY_LOG:\r\n return dataManagerService.activityLogManagerObject;\r\n break;\r\n case DTO_TYPES.BLOG:\r\n return dataManagerService.blogManagerObject;\r\n break;\r\n case DTO_TYPES.COLLECTION_WRAPPER:\r\n return dataManagerService.collectionWrapperManagerObject;\r\n break;\r\n case DTO_TYPES.CV:\r\n return dataManagerService.cvManagerObject;\r\n break;\r\n case DTO_TYPES.FORM:\r\n case DTO_TYPES.FORM_RESPONSE:\r\n return dataManagerService.formManagerObject;\r\n break;\r\n case DTO_TYPES.WEBFOLIO:\r\n return dataManagerService.webfolioManagerObject;\r\n break;\r\n case DTO_TYPES.WEBFOLIO_PAGE:\r\n return dataManagerService.pageManagerObject;\r\n break;\r\n case DTO_TYPES.WORKBOOK:\r\n case DTO_TYPES.WORKBOOK_RESPONSE:\r\n return dataManagerService.workbookManagerObject;\r\n break;\r\n case DTO_TYPES.POST:\r\n return dataManagerService.postManagerObject;\r\n break;\r\n case DTO_TYPES.TEMPLATE_BUILDER:\r\n return dataManagerService.templateBuilderManagerObject;\r\n break;\r\n case DTO_TYPES.WORKBOOK_BUILDER:\r\n return dataManagerService.workbookBuilderManagerObject;\r\n break;\r\n default:\r\n return dataManagerService.pageManagerObject;\r\n break;\r\n }\r\n },\r\n\r\n _showProgressResetModal: function (modalLang = {}) {\r\n const deferred = $q.defer();\r\n const modalProps = {\r\n title: multiLanguageService.getString(\"labels.canvas.progress_auto_reset_title\"),\r\n message: multiLanguageService.getString(\"labels.canvas.progress_auto_reset_message_on_exit\"),\r\n button_label: multiLanguageService.getString(\"labels.canvas.progress_auto_reset_button\"),\r\n ...modalLang,\r\n onClose: () => {\r\n recoveryLogger.step(\"save\", \"Saving via Mandatory Progress\");\r\n deferred.resolve();\r\n }\r\n };\r\n\r\n modal.launch(baseUrlsFactory.shared_component_base_url + \"modalDialogComponent/templates/generic-pop-up.lazy.html\", modalProps);\r\n\r\n return deferred.promise;\r\n },\r\n\r\n saveViaAssetId: function (assetId, forceSave) {\r\n var promise = null,\r\n managerObj = dataManagerService.dtos[assetId],\r\n mainType = managerObj.data.MainType;\r\n\r\n // in case asset was saved, do not run save method\r\n if (\r\n !forceSave &&\r\n ((mainType !== \"WorkBookResponse\" && managerObj.is_saved === true && managerObj.data.is_saved === true) ||\r\n (mainType === \"WorkBookResponse\" && managerObj.checkForIsSavedAnywhereInWorkbook(assetId)))\r\n ) {\r\n return $q.when();\r\n }\r\n\r\n switch (mainType) {\r\n case \"Webfolio\":\r\n promise = managerObj.saveWebfolioToServer(assetId);\r\n break;\r\n case \"WorkBook\":\r\n case \"WorkBookResponse\":\r\n // check workbook is valid first\r\n var validationObj = managerObj.validateWorkbook();\r\n // tslint:disable-next-line:triple-equals\r\n if (validationObj && validationObj.validation && validationObj.validation.valid == false) {\r\n var que = $q.defer();\r\n promise = que.promise;\r\n que.resolve(validationObj);\r\n return promise;\r\n }\r\n\r\n // its possible that a completed mandatory page has now become invalid... if so we will inform the user but carry on the promise chain\r\n promise = managerObj.checkMandatoryBeforeSave(assetId, { forceMainFolder: true }).then((data) => {\r\n return data.serverResponses;\r\n });\r\n break;\r\n case \"WorkbookBuilder\":\r\n promise = managerObj.saveWorkbookBuilderToServer(assetId);\r\n break;\r\n case \"WebfolioPage\":\r\n promise = managerObj.saveFoliopageToServer(assetId);\r\n break;\r\n case \"Form\":\r\n case \"FormResponse\":\r\n // validate first\r\n var form = managerObj.data;\r\n if (form) {\r\n var formValidationObj = formComponentsHelper.formValidation(form, false, \"\");\r\n\r\n //update form in local storage\r\n if (!formValidationObj.valid) {\r\n var qu = $q.defer();\r\n promise = qu.promise;\r\n qu.resolve({ validation: formValidationObj });\r\n return promise;\r\n }\r\n }\r\n\r\n // its possible that a completed mandatory page has now become invalid... if so we will inform the user but carry on the promise chain\r\n promise = managerObj.checkMandatoryBeforeSave(assetId);\r\n break;\r\n case \"TemplateBuilder\":\r\n promise = managerObj.saveTemplateBuilderToServer(assetId, false);\r\n break;\r\n case \"AssetCollectionWrapper\":\r\n case \"AssetCollection\":\r\n promise = managerObj.saveCollectionToServer(assetId);\r\n break;\r\n case \"ActivityLog\":\r\n promise = managerObj.saveActivityLogToServer(assetId, true);\r\n break;\r\n case \"Post\":\r\n promise = managerObj.savePostToServer(assetId);\r\n break;\r\n case \"Blog\":\r\n promise = managerObj.saveBlogToServer(assetId);\r\n break;\r\n default:\r\n var q = $q.defer();\r\n promise = q.promise;\r\n q.resolve();\r\n break;\r\n }\r\n\r\n return promise.then(\r\n function (data) {\r\n if (data && data.promises) {\r\n var result = null;\r\n return data.promises.then(\r\n function (data) {\r\n if (data && data.length > 0) {\r\n for (var i = 0; i < data.length; i++) {\r\n result = data[i];\r\n if (result.status !== 200 || result.data.MessageType === \"Error\") {\r\n return $q.reject(result);\r\n } else {\r\n this.cleanupStorageOfAssetId(result.data.AssetId);\r\n var tempDto = dataManagerService.dtos[result.data.AssetId];\r\n if (tempDto !== null && tempDto !== undefined) {\r\n tempDto.is_saved = true;\r\n if (tempDto.data) {\r\n tempDto.data.is_saved = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return data;\r\n }.bind(this)\r\n );\r\n } else {\r\n return $q.when();\r\n }\r\n }.bind(this)\r\n );\r\n },\r\n\r\n /**\r\n * This is used to tell the builderCanvas what asset type your in\r\n * Types currently have builderCanvas:\r\n * - FolioPage\r\n * - Post\r\n */\r\n getDataManagerForBuilderCanvas: function () {\r\n switch (dataManagerService.current_canvas_builder_manager) {\r\n case DTO_TYPES.POST:\r\n return dataManagerService.postManagerObject;\r\n case DTO_TYPES.WEBFOLIO_PAGE:\r\n return dataManagerService.pageManagerObject;\r\n case DTO_TYPES.TEMPLATE_BUILDER:\r\n return dataManagerService.templateBuilderManagerObject;\r\n case DTO_TYPES.WORKBOOK_BUILDER:\r\n return dataManagerService.workbookBuilderManagerObject;\r\n default:\r\n // don't throw an error here, this will sometimes get called because forms uses blockBehaviour on its hint fields\r\n //throw new Error(\"Oh oh! The type [\" + dataManagerService.current_canvas_builder_manager + \"] was not recognised!\");\r\n return undefined;\r\n }\r\n },\r\n\r\n /**\r\n * function to be used any time you need an array of Ids from an array of objects which have Ids\r\n * returns a new array\r\n * extracts the ids of the objects in passed array\r\n */\r\n createArrayOfAssetIds: function (array) {\r\n var assetIds = [];\r\n for (var i = 0; i < array.length; i++) {\r\n assetIds.push(array[i].Id);\r\n }\r\n return assetIds;\r\n },\r\n\r\n cleanupSpecificStorage: function (maintype) {\r\n console.warn(\"Incorrect clean up specific local storage called with type \" + maintype);\r\n },\r\n\r\n cleanupStorage: function () {\r\n console.warn(\"Incorrect clean up local storage called\");\r\n },\r\n\r\n cleanupStorageOfAssetId: function (assetId) {\r\n if (assetId !== null && assetId !== undefined) {\r\n let assetFromStorage = persistentObjectStore.retrieve(assetId, user_id);\r\n\r\n if (assetFromStorage === null) {\r\n // can't find it in local storage, could be a parent with only child changes\r\n var dto = dataManagerService.dtos[assetId];\r\n if (dto !== null && dto !== undefined) {\r\n assetFromStorage = dto.data;\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (assetFromStorage != false && assetFromStorage !== undefined && assetFromStorage !== null) {\r\n var manager = dataManagerService.dtos[assetId];\r\n\r\n if (manager) {\r\n switch (assetFromStorage.MainType) {\r\n case \"Webfolio\":\r\n case \"WebfolioPage\":\r\n case \"Form\":\r\n case \"FormResponse\":\r\n case \"AssetCollectionWrapper\":\r\n case \"AssetCollection\":\r\n case \"ActivityLog\":\r\n case \"Post\":\r\n case \"Blog\":\r\n case \"TemplateBuilder\":\r\n // tslint:disable-next-line:triple-equals\r\n if (manager.removeFromStorage && manager.AssetId == assetId) {\r\n manager.removeFromStorage();\r\n }\r\n break;\r\n case \"WorkBook\":\r\n case \"WorkBookResponse\":\r\n // tslint:disable-next-line:triple-equals\r\n if (manager.AssetId == assetId) {\r\n manager.removeWorkbookFromStorage();\r\n }\r\n break;\r\n case \"WorkbookBuilder\":\r\n manager.removeWorkbookBuilderFromStorage();\r\n break;\r\n }\r\n }\r\n\r\n // make sure at least main is destroyed (should have been done already)\r\n persistentObjectStore.remove(assetId);\r\n }\r\n }\r\n },\r\n\r\n saveOrphanedAsset(assetId) {\r\n if (!persistentObjectStore.has(assetId)) {\r\n return assetStoreService.changeAssetFolder(assetId, ASSET_CONSTANTS.FOLDERS.MAIN);\r\n }\r\n\r\n const onSaveFail = () => $http.post(`${baseUrlsFactory.api_base_url}AssetDto/Recover`, { MainAssetId: assetId, Dtos: [assetModel] });\r\n const assetModel = this.loadFromPersistentObjStore(assetId);\r\n assetModel.AssetFolder = ASSET_CONSTANTS.FOLDERS.MAIN;\r\n\r\n return $http\r\n .post(`${baseUrlsFactory.api_base_url}AssetDto/GetRevisionInformation`, [assetId])\r\n .then((response) => {\r\n const revisionData = response.data[0];\r\n if (revisionData !== undefined && assetModel.Revision <= revisionData.Value) {\r\n return $q.reject();\r\n }\r\n\r\n return AssetEndpointService.saveOrUpdate({ model: assetModel });\r\n })\r\n .then((response) => {\r\n if (response.data.Asset === null) {\r\n return onSaveFail();\r\n }\r\n })\r\n .catch(onSaveFail)\r\n .finally(() => persistentObjectStore.remove(assetId));\r\n }\r\n };\r\n\r\n /**\r\n * Data Manager code has generic methods for all data manager types\r\n * @param dto\r\n * @param deferred\r\n * @param not_main\r\n * @constructor\r\n */\r\n var DataManager = function (dto, deferred, not_main) {\r\n this.deferred = deferred;\r\n this.data = \"\";\r\n this.AssetId = dto.AssetId;\r\n this.is_saved = true;\r\n this.not_main = not_main || false;\r\n var self = this;\r\n this.getUserData().then(\r\n function (response) {\r\n // User is NOT always logged in so we fall back to a random string here\r\n if (response.data !== null && response.data !== undefined) {\r\n user_id = response.data ? response.data : \"pebblelocalstorage\";\r\n } else {\r\n user_id = response ? response : \"pebblelocalstorage\";\r\n }\r\n\r\n var promise = null;\r\n if (dto.IsPreviousVersion) {\r\n self.data = dtoFactory.create(dto.Asset);\r\n self.buildData(true);\r\n promise = $q.when();\r\n } else {\r\n promise = self.validateData(dto.Asset);\r\n }\r\n\r\n promise.then(function () {\r\n self.deferred.notify({ code: 0 });\r\n });\r\n },\r\n function () {\r\n self.deferred.reject({ error_code: 0 });\r\n }\r\n );\r\n };\r\n\r\n DataManager.prototype = {\r\n getUserData: function () {\r\n var deferred = $q.defer();\r\n\r\n if (user_id) {\r\n deferred.resolve(user_id);\r\n return deferred.promise;\r\n } else {\r\n return $http.get(baseUrlsFactory.api_base_url + \"SharedMenu/GetLoggedInUserId?ticks=\" + new Date().getTime());\r\n }\r\n },\r\n\r\n validateData: function (dto) {\r\n var self = this,\r\n deferred = $q.defer();\r\n\r\n recoveryLogger.step(\"load\", `DataManagerService init | ${dto && dto.MainType}`);\r\n this.data = dtoFactory.create(dto); // current data\r\n\r\n if (dto.Id) {\r\n // data is stored on the server\r\n localChangesResolver.checkDto(this.AssetId, localChangesResolver.hasNestedItems(this.data), false, true).then(function () {\r\n self.buildData().then(() => {\r\n self.data.BaseVersion = dto.Revision;\r\n deferred.resolve();\r\n });\r\n });\r\n } else {\r\n // data is brand new, then need to store it on server to get real ID\r\n // check revision number hasn't been set to NaN\r\n if (isNaN(this.data.Revision)) {\r\n this.data.Revision = -1;\r\n }\r\n var data_to_send = { model: this.data };\r\n\r\n $http.defaults.withCredentials = true;\r\n AssetEndpointService.saveOrUpdate(data_to_send).then(function (response) {\r\n if (response.data.AssetId !== null) {\r\n self.AssetId = response.data.AssetId;\r\n self.data = dtoFactory.create(response.data.Asset); // current data\r\n self.buildData();\r\n self.data.BaseVersion = response.data.Asset.Revision;\r\n } else {\r\n self.deferred.reject({ Message: response.data.Message, MessageType: response.data.MessageType });\r\n }\r\n });\r\n }\r\n\r\n return deferred.promise;\r\n },\r\n\r\n checkForNestedRevisionChange: function (local_storage_pages, from_server_pages) {\r\n if (local_storage_pages !== null && local_storage_pages !== undefined) {\r\n for (var i = 0, ilen = local_storage_pages.length; i < ilen; i++) {\r\n var local_page = local_storage_pages[i];\r\n\r\n var server_page = null;\r\n if (from_server_pages !== null && from_server_pages !== undefined) {\r\n for (var j = 0, jlen = from_server_pages.length; j < jlen; j++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (from_server_pages[j].PageId == local_page.PageId) {\r\n server_page = from_server_pages[j];\r\n }\r\n }\r\n }\r\n\r\n if (local_page.PageType === \"WorkBook\" || local_page.PageType === \"WorkBookResponse\") {\r\n // tslint:disable-next-line:triple-equals\r\n if (server_page != null) {\r\n if (server_page.NestedWorkbookRevision > local_page.NestedWorkbookRevision) {\r\n return true; // means we've found the nav has been updated do return true\r\n }\r\n\r\n // if this workbook hasn't got a higher revision number we still need to check if its children do\r\n var childrenResult = this.checkForNestedRevisionChange(local_page.Children, server_page.Children);\r\n if (childrenResult === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false; // means use local storage data\r\n },\r\n\r\n buildData: function (isVersioned) {\r\n let promise = $q.when();\r\n\r\n if (!this.not_main) {\r\n this.local_storage_reference = this.AssetId;\r\n var data_from_local_storage = this.load();\r\n data_from_local_storage = data_from_local_storage ? dtoFactory.create(data_from_local_storage) : false; // data from local storage\r\n\r\n /* tslint:disable:triple-equals */\r\n if (\r\n !isVersioned &&\r\n data_from_local_storage != false &&\r\n (data_from_local_storage.Revision > this.data.Revision ||\r\n (this.data.MainType === \"WorkBookResponse\" &&\r\n this.checkForNestedRevisionChange(data_from_local_storage.Pages, this.data.Pages) == false))\r\n ) {\r\n /* tslint:enable:triple-equals */\r\n // save current new data\r\n promise = migratorRunner.execute(this.AssetId, this.data, data_from_local_storage || null).then((migratedData) => {\r\n this.data = migratedData;\r\n this.is_saved = migratedData.is_saved;\r\n this.data.is_saved = migratedData.is_saved;\r\n if (this.is_saved === undefined || this.is_saved === null) {\r\n this.is_saved = false;\r\n this.data.is_saved = false;\r\n }\r\n this.local_storage_reference = this.AssetId;\r\n if (!this.is_saved) {\r\n this.save();\r\n }\r\n });\r\n } else {\r\n // else saving server item into local storage... add is_saved = true flag\r\n this.is_saved = true;\r\n this.data.is_saved = true;\r\n }\r\n // ... else server loading\r\n promise.then(() => {\r\n this.completeDataProcess();\r\n $rootScope.$broadcast(\"dtoAdded\", this.AssetId);\r\n });\r\n }\r\n\r\n return promise.then(() => {\r\n this.deferred.resolve({ AssetId: this.AssetId, Asset: this.data });\r\n });\r\n },\r\n\r\n reviseData: function (opts) {\r\n opts = opts || {};\r\n var onlyIsSavedFlag = opts.onlyIsSavedFlag || false;\r\n\r\n if (onlyIsSavedFlag) {\r\n this.data.is_saved = false;\r\n this.is_saved = false;\r\n return;\r\n }\r\n\r\n if (this.is_saved) {\r\n this.data.Revision++;\r\n this.data.is_saved = false;\r\n this.is_saved = false;\r\n }\r\n\r\n $rootScope.$broadcast(\"onReviseData\", this.AssetId);\r\n var expiryDate = new Date();\r\n expiryDate.setDate(expiryDate.getDate() + 7);\r\n this.data.LocalStorageExpiryDate = expiryDate;\r\n\r\n this.data.LastModified = new Date();\r\n },\r\n\r\n hasBeenSaved: function () {\r\n return this.data && this.data.Revision !== 0 && this.is_saved === true;\r\n },\r\n\r\n removeFromStorage: function () {\r\n persistentObjectStore.remove(this.local_storage_reference);\r\n },\r\n\r\n updateDtoProperty: function (prop, value) {\r\n if (this.managerType === \"templateBuilderManagerObject\" && $location.path().indexOf(\"builder/workbook\") > -1 && prop === \"SubType\") {\r\n var page = dataManagerService.workbookBuilderManagerObject.getItemByPropValue(\"ContentId\", this.AssetId, \"WorkBook\");\r\n dataManagerService.workbookBuilderManagerObject.update(page.PageId, { PageIcon: helperService.getWorkbookPageIcon(value) });\r\n }\r\n\r\n if (this.rootManagerId) {\r\n dataManagerService.dtos[this.rootManagerId].onChildUpdate();\r\n }\r\n\r\n if (this.data.hasOwnProperty(prop)) {\r\n this.data[prop] = value;\r\n this.reviseData();\r\n\r\n if (this.save()) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n updateDtoModel: function (newDto) {\r\n this.data = newDto;\r\n },\r\n\r\n save: function (key, data) {\r\n let storageKey = this.local_storage_reference;\r\n let storageData = this.data;\r\n if (key && data) {\r\n storageKey = key;\r\n storageData = data;\r\n }\r\n\r\n persistentObjectStore.store(storageKey, storageData, user_id);\r\n return true;\r\n },\r\n\r\n /**\r\n * @returns {boolean|Object}\r\n */\r\n load: function () {\r\n const result = persistentObjectStore.retrieve(this.local_storage_reference, user_id);\r\n if (result === null) {\r\n return false;\r\n }\r\n return result;\r\n },\r\n\r\n /**\r\n * @param {string} localStorageReference\r\n * @returns {Object|boolean}\r\n */\r\n loadSpecific: function (localStorageReference) {\r\n let result = persistentObjectStore.retrieve(localStorageReference, user_id);\r\n if (result === null) {\r\n result = false;\r\n }\r\n return result;\r\n },\r\n\r\n updateParentSavedFlagIfExists: function () {\r\n // Warning: THIS IS ALMOST COPY OF CODE FROM PageManager #future-refactor\r\n var isWebfolio = $location.path().indexOf(\"webfolio\") > -1,\r\n manager = dataManagerService.webfolioManagerObject;\r\n\r\n if (isWebfolio && manager && (manager.get(this.AssetId) !== -1 || manager.getByResponseId(this.AssetId) !== null)) {\r\n dataManagerService.webfolioManagerObject.reviseData();\r\n dataManagerService.webfolioManagerObject.save();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * WebfolioManager class\r\n * @param dto\r\n * @constructor\r\n */\r\n var WebfolioManager = function (dto) {\r\n DataManager.apply(this, arguments); // extend from DataManager class\r\n\r\n this.completeDataProcess = function () {\r\n dataManagerService.current_navigation = this.AssetId;\r\n dataManagerService.dtos[this.local_storage_reference] = this; // add to the local storage data list\r\n dataManagerService.webfolioManagerObject = this;\r\n };\r\n\r\n this.procurePage = (pageId, assetContext, isEditable) => {\r\n const procurePagePromise = assetPageHandlerFactory\r\n .createPortfolioPageHandler(this.data, assetContext)\r\n .procurePageById(pageId, isEditable)\r\n .then((result) => {\r\n if (result.outdatedResponseId === \"\" || !isEditable) {\r\n return result.page;\r\n }\r\n\r\n return dataManagerService.saveOrphanedAsset(result.outdatedResponseId).then(\r\n () => result.page,\r\n () => result.page\r\n );\r\n });\r\n\r\n if (isEditable) {\r\n procurePagePromise.catch((rejection) => handleProcurePageError(rejection, this.AssetId, pageId, this));\r\n }\r\n\r\n return procurePagePromise;\r\n };\r\n\r\n this.getAllIds = function (startingId) {\r\n const assetId = typeof startingId === \"string\" && startingId !== \"\" ? startingId : dataManagerService.primary_id;\r\n const pages = dataManagerService.dtos[assetId].data.Pages;\r\n\r\n const ids = this._getResponseIds(pages, false);\r\n ids.unshift(assetId);\r\n\r\n return ids;\r\n };\r\n\r\n this.getUnsavedPageAssetIds = function (pages) {\r\n return this._getResponseIds(pages, true).filter((id) => persistentObjectStore.has(id));\r\n };\r\n\r\n this._getResponseIds = function (pages, ignoreNestedWebfolios) {\r\n const pageTypeFilter = ignoreNestedWebfolios ? \"Webfolio\" : \"\";\r\n const pageSearch = new PageModelSearch(pages);\r\n\r\n const ignorePageType = (page) => page.PageType !== pageTypeFilter;\r\n const withoutDuplicatePageAssetIds = withoutDuplicatePageAssetIdsFactory();\r\n return pageSearch.filter(withoutEmptyPageAssetIds, withoutDuplicatePageAssetIds, ignorePageType).map(determinePageAssetId);\r\n };\r\n\r\n // Warning (MOIST): Code below (from here till 'this.saveWebfolioToServer' method) is partial duplication\r\n // of code from 'workbookCtrl' & 'builderViewerCtrl' files in Plus project. Although, code below is cleaner\r\n // and based on promises so keep this in mind when big save refactor will happen.\r\n // #future-refactor #big-save-refactor\r\n this.validatePages = function (pages) {\r\n const validity = { pageId: \"\", validation: { valid: true } };\r\n const supportedPageTypes = [ASSET_CONSTANTS.TYPES.FORM_RESPONSE, ASSET_CONSTANTS.TYPES.FORM];\r\n\r\n const pageSearch = new PageModelSearch(pages);\r\n pageSearch.find((page) => {\r\n const assetId = determinePageAssetId(page);\r\n if (assetId === \"\" || !supportedPageTypes.includes(page.PageType)) {\r\n return false;\r\n }\r\n\r\n const assetDto = this.loadSpecific(assetId);\r\n if (!assetDto) {\r\n return false;\r\n }\r\n\r\n const validation = formComponentsHelper.formValidation(assetDto, true, page.PageTitle);\r\n if (validation.valid) {\r\n return false;\r\n }\r\n\r\n validity.pageId = assetId;\r\n validity.validation = validation;\r\n return true;\r\n });\r\n\r\n return validity;\r\n };\r\n\r\n this.onRenderingCompleted = function () {\r\n var unbindRenderingCompleted = $rootScope.$on(\r\n \"rendering_completed\",\r\n function () {\r\n $timeout(this.showValidationErrorsOnCurrentForm);\r\n unbindRenderingCompleted(); // unbind after event listener is fired\r\n }.bind(this)\r\n );\r\n };\r\n\r\n this.goToInvalidPage = function (pageId) {\r\n // trigger 'invalid elements highlighter' when form on the redirected page is ready\r\n this.onRenderingCompleted();\r\n\r\n // redirect to the page that failed validation\r\n $location.search(\"pageId\", pageId);\r\n };\r\n\r\n this.showValidationErrorsOnCurrentForm = function () {\r\n $rootScope.$broadcast(\"showValidationErrorsOnCurrentForm\", {});\r\n };\r\n\r\n this.onValidationFail = function (validationObj) {\r\n // show user error modal\r\n var isolatedScope = $rootScope.$new(true),\r\n templateName = validationObj.pageId === $location.search().pageId ? \"invalid-current-page\" : \"invalid-page\";\r\n isolatedScope.showValidationErrorsOnCurrentForm = this.showValidationErrorsOnCurrentForm;\r\n isolatedScope.goToInvalidPage = this.goToInvalidPage.bind(this, validationObj.pageId);\r\n isolatedScope.confirmMessage = validationObj.validation.message;\r\n modal.newModal({\r\n scope: isolatedScope,\r\n templateUrl: \"scripts/features/workbook/templates/\" + templateName + \".lazy.html\"\r\n });\r\n };\r\n\r\n this.onValidationSuccess = function (rootAssetId) {\r\n const promises = [];\r\n const managerId = typeof rootAssetId === \"string\" && rootAssetId !== \"\" ? rootAssetId : dataManagerService.primary_id;\r\n const pages = dataManagerService.dtos[managerId].data.Pages;\r\n const assetIdsToSave = this.getUnsavedPageAssetIds(pages);\r\n assetIdsToSave.unshift(rootAssetId);\r\n\r\n for (const assetId of assetIdsToSave) {\r\n const assetFromStorage = this.loadSpecific(assetId);\r\n\r\n if (assetFromStorage !== false && assetFromStorage !== undefined && assetFromStorage !== null) {\r\n // then we have an asset to save\r\n // check revision number hasn't been set to NaN\r\n if (isNaN(assetFromStorage.Revision)) {\r\n assetFromStorage.Revision = -1;\r\n }\r\n\r\n // only save pages with is_saved false... as they are the only ones to have changed\r\n recoveryLogger.step(\"save\", \"Saving Webfolio\");\r\n $http.defaults.withCredentials = true;\r\n const savePromise = AssetEndpointService.saveOrUpdate({ model: assetFromStorage })\r\n .then(updateBaseVersion)\r\n .then(cleanupStorageAfterSave);\r\n\r\n promises.push(savePromise);\r\n }\r\n }\r\n\r\n return promises;\r\n };\r\n\r\n this.saveWebfolioToServer = function (asset_id, saveToFolder = \"Main\") {\r\n var deferred = $q.defer();\r\n\r\n if (this.data.AssetFolder === \"Invisible\") {\r\n this.data.AssetFolder = saveToFolder;\r\n }\r\n\r\n this.reviseData();\r\n this.save();\r\n\r\n // check if need to validate an asset first\r\n var validationObj = this.validatePages(this.data.Pages);\r\n\r\n if (validationObj.validation.valid) {\r\n //Do not like, blame locking, a non-event / signalR based system and a naff Saving tree!\r\n var currentPage = this.get($routeParams.pageId, false);\r\n var pageAssetId = currentPage.UserResponseId !== void 0 ? currentPage.UserResponseId : currentPage.PageAssetId;\r\n dataManagerService.checkBeforeSave(asset_id, \"Webfolio\", pageAssetId).then(\r\n function () {\r\n const promises = this.onValidationSuccess(asset_id, true);\r\n deferred.resolve({ promises: $q.all(promises) });\r\n }.bind(this)\r\n );\r\n } else {\r\n deferred.reject();\r\n this.onValidationFail(validationObj);\r\n }\r\n\r\n return deferred.promise;\r\n };\r\n // gets first page horizontally\r\n this.getTopLevelInitialPageFromArray = function (array) {\r\n array = array || this.data.Pages;\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i].PageType !== \"Webfolio\" && array[i].PageType !== \"WorkBook\") {\r\n return array[i];\r\n }\r\n }\r\n\r\n for (var n = 0; n < array.length; n++) {\r\n if (array[n].Children.length > 0) {\r\n var foundData = this.getTopLevelInitialPageFromArray(array[n].Children);\r\n if (foundData) {\r\n return foundData;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n // gets first page vertically\r\n this.getFirstPage = function (targetedPages) {\r\n const pages = Array.isArray(targetedPages) ? targetedPages : this.data.Pages;\r\n const pageSearch = new PageModelSearch(pages);\r\n\r\n return pageSearch.find((p) => p.PageType !== ASSET_CONSTANTS.TYPES.WEBFOLIO && p.PageType !== ASSET_CONSTANTS.TYPES.WORKBOOK);\r\n };\r\n\r\n this.getIdsTrace = function (id, targetedPages) {\r\n const pages = Array.isArray(targetedPages) ? targetedPages : this.data.Pages;\r\n const match = new PageModelSearch(pages).tracedFind(byPageId(id));\r\n\r\n if (match === null) {\r\n return [];\r\n }\r\n\r\n const trace = match.parents.map((p) => p.PageId);\r\n trace.unshift(id);\r\n\r\n return trace;\r\n };\r\n\r\n /**\r\n * WARNING: Dangerously obscure code ahead.\r\n * Can return -1 (page not found), a PageViewModel, or { isRootLevel: boolean, page: PageViewModel, parents: { parent: PageViewModel, rootParent: PageViewModel } | Array }\r\n * Omitting `getParent` or passing it in as false, will result in a return value of -1 or a PageViewModel\r\n * If `getParent` is true and the page is not found, will result in -1.\r\n * If `getParent` is true and the page is at the root, will result in:\r\n * { isRootLevel: true, page: PageViewModel, parents: Array }\r\n * If `getParent` is true and the page's direct parent is at the root, will result in:\r\n * { isRootLevel: true, page: PageViewModel, parents: { parent: Parent's PageViewModel, rootParent: Parent's PageViewModel } }\r\n * If `getParent` is true and the page's direct parent is not at the root, will result in:\r\n * { isRootLevel: true, page: PageViewModel, parents: { parent: Parent's PageViewModel, rootParent: Root Parent's PageViewModel } }\r\n */\r\n this.get = function (id, getParent, targetedPages) {\r\n const pages = Array.isArray(targetedPages) ? targetedPages : this.data.Pages;\r\n const pageSearch = new PageModelSearch(pages);\r\n\r\n if (!getParent) {\r\n const match = pageSearch.find(byPageId(id));\r\n return match !== null ? match : -1;\r\n }\r\n\r\n const match = pageSearch.tracedFind(byPageId(id));\r\n if (match === null) {\r\n return -1;\r\n }\r\n\r\n const isPageOrParentRootLevel = match.parents.length <= 1;\r\n const parents = match.parents.length > 0 ? { parent: match.parents[0], rootParent: match.parents[match.parents.length - 1] } : pages;\r\n\r\n return {\r\n isRootLevel: isPageOrParentRootLevel,\r\n page: match.page,\r\n parents: parents\r\n };\r\n };\r\n\r\n this.getByResponseId = function (id) {\r\n return new PageModelSearch(this.data.Pages).find((p) => p.UserResponseId === id);\r\n };\r\n\r\n this.isRootLevel = function (id, targetedPages) {\r\n const pages = Array.isArray(targetedPages) ? targetedPages : this.data.Pages;\r\n return pages.some(byPageId(id));\r\n };\r\n\r\n this.removeFromStorage = function () {\r\n var itemsToRemoveFromStorage = [];\r\n itemsToRemoveFromStorage.push(this.local_storage_reference); // get portfolio navigation id\r\n itemsToRemoveFromStorage = this.getAllIds(this.local_storage_reference);\r\n\r\n for (var n = 0; n < itemsToRemoveFromStorage.length; n++) {\r\n persistentObjectStore.remove(itemsToRemoveFromStorage[n]); // remove each thing from local storage\r\n }\r\n };\r\n\r\n this.isPageTopLevel = function (id) {\r\n return this.isRootLevel(id);\r\n };\r\n\r\n this.add = function (dto) {\r\n return this._beforePageResponseUpdate().then(() => {\r\n const pageHandler = assetPageHandlerFactory.createPortfolioPageHandler(this.data, new AssetContext(this.AssetId));\r\n return pageHandler.addPage(this._normaliseNewPageModel(dto)).then((p) => p.PageId);\r\n });\r\n };\r\n\r\n this.addNested = function (dto, parentId) {\r\n return this._beforePageResponseUpdate().then(() => {\r\n const pageHandler = assetPageHandlerFactory.createPortfolioPageHandler(this.data, new AssetContext(this.AssetId));\r\n return pageHandler.addNestedPage(this._normaliseNewPageModel(dto), parentId).then((p) => p.PageId);\r\n });\r\n };\r\n\r\n this._normaliseNewPageModel = function (pageDto) {\r\n const pageViewModel = dtoFactory.create(pageDto);\r\n if (pageViewModel.PageTitle === \"\") {\r\n pageViewModel.PageTitle = multiLanguageService.getString(\"labels.navigation.new_page\");\r\n }\r\n return pageViewModel;\r\n };\r\n\r\n this.updatePageTitle = function (id, title) {\r\n const pageHandler = assetPageHandlerFactory.createPortfolioPageHandler(this.data, new AssetContext(this.AssetId));\r\n return pageHandler.updatePageTitle(id, title).then(() => {\r\n if (!this.is_saved) {\r\n this.save();\r\n }\r\n });\r\n };\r\n\r\n this.findClosestPage = function (originalIndex, array, isRootLevelPage) {\r\n var closestIndex = originalIndex;\r\n var closestIndexTemp;\r\n var initialPage;\r\n var canContainChildren = [\"webfolio\", \"workbook\", \"workbookresponse\"];\r\n\r\n if (array.length === 1) {\r\n return false;\r\n }\r\n\r\n closestIndexTemp = closestIndex - 1;\r\n while (closestIndexTemp >= 0) {\r\n if (canContainChildren.indexOf(array[closestIndexTemp].PageType.toLowerCase()) < 0) {\r\n return array[closestIndexTemp];\r\n } else if (isRootLevelPage) {\r\n initialPage = this.getTopLevelInitialPageFromArray(array[closestIndexTemp].Children);\r\n if (initialPage) {\r\n return initialPage;\r\n }\r\n }\r\n closestIndexTemp--;\r\n }\r\n\r\n closestIndexTemp = closestIndex + 1;\r\n while (closestIndexTemp < array.length) {\r\n if (canContainChildren.indexOf(array[closestIndexTemp].PageType.toLowerCase()) < 0) {\r\n return array[closestIndexTemp];\r\n } else if (isRootLevelPage) {\r\n initialPage = this.getTopLevelInitialPageFromArray(array[closestIndexTemp].Children);\r\n if (initialPage) {\r\n return initialPage;\r\n }\r\n }\r\n closestIndexTemp++;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n this.findClosest = function (id) {\r\n var foundData = this.get(id, true);\r\n var parentId = foundData.parents.parent ? foundData.parents.parent.PageId : null;\r\n var isRootLevelPage = !parentId,\r\n originalIndex,\r\n closest;\r\n\r\n foundData.parents = foundData.parents.parent ? foundData.parents.parent.Children : foundData.parents;\r\n\r\n // get current (page that going to be removed) page index in data array\r\n originalIndex = foundData.parents.indexOf(foundData.page);\r\n\r\n // find closest to originalIndex page\r\n closest = this.findClosestPage(originalIndex, foundData.parents, isRootLevelPage);\r\n\r\n // if page can't be found in local array, then take parent array.\r\n if (!closest && parentId) {\r\n return this.findClosest(parentId);\r\n }\r\n\r\n return closest;\r\n };\r\n\r\n this.remove = function (id) {\r\n return this._beforePageResponseUpdate().then(() => {\r\n const pageHandler = assetPageHandlerFactory.createPortfolioPageHandler(this.data, new AssetContext(this.AssetId));\r\n return pageHandler.removePageById(id);\r\n });\r\n };\r\n\r\n this.getNestedParent = function (pageId, pages) {\r\n let parent = null;\r\n for (let i = 0, l = pages.length, page; i < l; i++) {\r\n page = pages[i];\r\n\r\n parent = page.Children.findInNestedObject(\"PageId\", pageId) !== -1 ? page : this.getNestedParent(pageId, page.Children);\r\n if (parent) {\r\n break;\r\n }\r\n }\r\n\r\n return parent;\r\n };\r\n\r\n this._beforePageResponseUpdate = () => {\r\n const action = this.is_saved ? $q.resolve() : this.saveWebfolioToServer(this.AssetId, this.data.AssetFolder);\r\n\r\n return action.then(() => {\r\n if (this.data.BaseVersion === 0 && this.data.AssetFolder === ASSET_CONSTANTS.FOLDERS.INVISIBLE) {\r\n this.reviseData({ onlyIsSavedFlag: true });\r\n }\r\n });\r\n };\r\n\r\n this.updatePageResponse = (pageId, responseId) => {\r\n return this._beforePageResponseUpdate().then(() => {\r\n const pageHandler = assetPageHandlerFactory.createPortfolioPageHandler(this.data, new AssetContext(this.AssetId));\r\n return pageHandler.updatePageResponseById(pageId, responseId);\r\n });\r\n };\r\n\r\n this.removePageResponse = (pageId) => {\r\n return this._beforePageResponseUpdate().then(() => {\r\n const pageHandler = assetPageHandlerFactory.createPortfolioPageHandler(this.data, new AssetContext(this.AssetId));\r\n return pageHandler.removePageResponseById(pageId);\r\n });\r\n };\r\n\r\n this.convertPage = (pageId) => {\r\n return this._beforePageResponseUpdate().then(() => {\r\n const pageHandler = assetPageHandlerFactory.createPortfolioPageHandler(this.data, new AssetContext(this.AssetId));\r\n return pageHandler.convertPage(pageId);\r\n });\r\n };\r\n\r\n /**\r\n * @param {{PageId: string}} pageToMove\r\n * @param {string | null} beforePageId\r\n * @param {Array<{PageId: string}>} siblings\r\n * @returns boolean\r\n */\r\n this._movePage = (pageToMove, beforePageId, siblings) => {\r\n const match = new PageModelSearch(this.data.Pages).tracedFind(byPageId(pageToMove.PageId));\r\n if (match === null) {\r\n return false;\r\n }\r\n\r\n const parentList = match.parents.length > 0 ? match.parents[0].Children : this.data.Pages;\r\n const index = parentList.indexOf(match.page);\r\n parentList.splice(index, 1);\r\n\r\n const hasPageMovedToEnd = beforePageId === null;\r\n const newPagesIndex = hasPageMovedToEnd ? siblings.length : siblings.findIndex(byPageId(beforePageId));\r\n siblings.splice(newPagesIndex, 0, pageToMove);\r\n return true;\r\n };\r\n\r\n /**\r\n @param {{pageToMoveId: string, beforePageId: null | string, afterPageId: null | string}} pageMoveData\r\n @return {Promise}\r\n */\r\n this.savePageMoveToServer = function (pageMoveData) {\r\n const pageToMove = this.get(pageMoveData.pageToMoveId, true, this.data.Pages);\r\n if (pageToMove === -1) {\r\n return $q.reject(new Error(\"Could not find page to move\"));\r\n }\r\n if (!this._canRemovePage(pageToMove)) {\r\n return $q.reject(new Error(\"Page can not be moved\"));\r\n }\r\n\r\n let directParentId = \"\";\r\n let siblings = null;\r\n if (Array.isArray(pageToMove.parents)) {\r\n directParentId = this.AssetId;\r\n siblings = pageToMove.parents;\r\n } else {\r\n directParentId = pageToMove.parents.parent.PageAssetId;\r\n siblings = pageToMove.parents.parent.Children;\r\n }\r\n\r\n const endpointMoveData = { Id: pageMoveData.pageToMoveId };\r\n if (pageMoveData.beforePageId !== null) {\r\n endpointMoveData.Before = pageMoveData.beforePageId;\r\n }\r\n if (pageMoveData.afterPageId !== null) {\r\n endpointMoveData.After = pageMoveData.afterPageId;\r\n }\r\n\r\n return AssetEndpointService.movePortfolioPage(directParentId, endpointMoveData).then(() => {\r\n const result = this._movePage(pageToMove.page, pageMoveData.beforePageId, siblings);\r\n if (!result) {\r\n throw new Error(\"Unexpected error when moving page locally\");\r\n }\r\n });\r\n };\r\n\r\n this._canRemovePage = function (data) {\r\n if (data && data.parents && !data.parents.rootParent && !data.parents.parent) {\r\n if (data.parents.length === 1) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n };\r\n\r\n var BuilderManager = (function () {\r\n helpers.extendClass(BuilderManager, DataManager);\r\n\r\n function BuilderManager(dto, managerType) {\r\n this.managerType = managerType || null;\r\n this.blockDefaultSize = \"\";\r\n DataManager.apply(this, arguments);\r\n }\r\n\r\n BuilderManager.prototype.cascadeBlockSettingsFromAsset = function () {\r\n for (var i = 0; i < this.data.Sections.length; i++) {\r\n var current_row_section = this.data.Sections[i];\r\n for (var j = 0; j < current_row_section.Sections.length; j++) {\r\n var current_block = current_row_section.Sections[j];\r\n helperService.cascadeBlockSettingsFromAsset(current_block, this.data);\r\n }\r\n }\r\n //update local\r\n this.reviseData();\r\n this.save();\r\n $rootScope.$broadcast(\"updateBlockData\");\r\n };\r\n\r\n BuilderManager.prototype.completeDataProcess = function () {\r\n dataManagerService.current_page = this.AssetId;\r\n dataManagerService.dtos[this.local_storage_reference] = this; // add to the local storage data list\r\n dataManagerService[this.managerType] = this;\r\n };\r\n\r\n BuilderManager.prototype.get = function (ids) {\r\n if (this.data && this.data.Sections && ids) {\r\n return this.getFromRows(ids, this.data.Sections);\r\n }\r\n return -1;\r\n };\r\n\r\n BuilderManager.prototype.getFromRows = function (ids, rows) {\r\n if (rows && ids) {\r\n for (var i = 0; i < rows.length; i++) {\r\n if (ids.RowSectionId && rows[i].Id === ids.RowSectionId) {\r\n var current_row_section = rows[i];\r\n if (ids.BlockId) {\r\n for (var j = 0; j < current_row_section.Sections.length; j++) {\r\n if (current_row_section.Sections[j].Id === ids.BlockId) {\r\n var block = current_row_section.Sections[j].ContentSection\r\n ? current_row_section.Sections[j].ContentSection\r\n : current_row_section.Sections[j];\r\n return {\r\n RowSection: current_row_section,\r\n Block: block,\r\n BlockWrapper: current_row_section.Sections[j].ContentSection ? current_row_section.Sections[j] : null\r\n };\r\n }\r\n\r\n if (current_row_section.Sections[j].SectionType === \"BuilderFormBasicContainer\") {\r\n // check to see if this is a container element, if so check the children\r\n var nested_return = this.getFromRows(ids, current_row_section.Sections[j].Elements);\r\n // tslint:disable-next-line:triple-equals\r\n if (nested_return != -1) {\r\n return nested_return;\r\n }\r\n }\r\n }\r\n } else {\r\n return { RowSection: current_row_section, Block: null, BlockWrapper: null };\r\n }\r\n } else {\r\n // although the row id is incorrect the row could be a child of this row if it has any \"BuilderFormBasicContainer\" sections within\r\n var parent_row = rows[i];\r\n for (var x = 0; x < parent_row.Sections.length; x++) {\r\n if (parent_row.Sections[x].SectionType === \"BuilderFormBasicContainer\") {\r\n var row_nested_return = this.getFromRows(ids, parent_row.Sections[x].Elements);\r\n // tslint:disable-next-line:triple-equals\r\n if (row_nested_return != -1) {\r\n return row_nested_return;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return -1;\r\n };\r\n\r\n BuilderManager.prototype.updateDtoTitle = function (data, title) {\r\n data.Title = title;\r\n this.reviseData();\r\n };\r\n\r\n BuilderManager.prototype.getRowIndex = function (id) {\r\n return this.data.Sections.map(function (x) {\r\n return x.Id;\r\n }).indexOf(id);\r\n };\r\n\r\n function defaultBlockHandler(blockDto) {\r\n replaceIdsRecursive(blockDto, [\"Id\"]);\r\n }\r\n\r\n var specialMethods = {\r\n GenericBuilderTable: tableDtoHelper.duplicateTable,\r\n default: defaultBlockHandler\r\n };\r\n\r\n BuilderManager.prototype.duplicateSection = function (sectionDto, blockId, checkStandardWidths) {\r\n var duplicatedSection = angular.copy(sectionDto),\r\n targetId = duplicatedSection.Id;\r\n duplicatedSection.Id = helperService.guid();\r\n\r\n //Reset section to only contain 1 block.\r\n if (duplicatedSection.Sections.length > 1) {\r\n duplicatedSection.SectionIsFull = false;\r\n var index = duplicatedSection.Sections.findInNestedObject(\"Id\", blockId);\r\n\r\n if (index !== -1) {\r\n var block = duplicatedSection.Sections[index];\r\n duplicatedSection.Sections.length = 0;\r\n duplicatedSection.Sections.push(block);\r\n\r\n helperService.resetSectionSize(duplicatedSection, block.SectionType, checkStandardWidths);\r\n duplicatedSection.SectionDuplicated = true;\r\n }\r\n }\r\n\r\n var blockDto = duplicatedSection.Sections[0];\r\n (specialMethods[blockDto.SectionType] || specialMethods[\"default\"])(blockDto);\r\n var newBlockId = blockDto.Id;\r\n\r\n this.insertRowAtPosition(targetId, duplicatedSection, \"bottom\");\r\n this.reviseData();\r\n this.save();\r\n\r\n this.updateParent(true);\r\n\r\n return { RowSectionId: duplicatedSection.Id, BlockId: newBlockId };\r\n };\r\n\r\n BuilderManager.prototype.insertRowAtPosition = function (targetId, sectionDto, position) {\r\n var rowIndex;\r\n\r\n if (targetId) {\r\n if (position === \"top\") {\r\n rowIndex = this.getRowIndex(targetId);\r\n this.data.Sections.splice(rowIndex, 0, sectionDto);\r\n } else if (position === \"bottom\") {\r\n rowIndex = this.getRowIndex(targetId);\r\n this.data.Sections.splice(rowIndex + 1, 0, sectionDto);\r\n }\r\n } else {\r\n this.data.Sections.push(sectionDto);\r\n }\r\n };\r\n\r\n BuilderManager.prototype.addNew = function (dto, row_section_id, position) {\r\n var row_index,\r\n target_row_item = this.get({ RowSectionId: row_section_id }).RowSection; // all blocks wrappers with rowSection DTO\r\n\r\n if (this.managerType === \"templateBuilderManagerObject\") {\r\n // work out size of new section... banners for example default to large\r\n var row_item = new dtoFactory.BuilderFormElementRowDto(\r\n helperService.getDefaultRowSize(dto.MainType, this.blockDefaultSize),\r\n helperService.getDefaultRowBackgroundColour(dto.MainType),\r\n helperService.setSectionIsFull(dto.MainType),\r\n helperService.getDefaultBlockWidth(dto.MainType)\r\n ); // all blocks wrappers with rowSection DTO\r\n } else {\r\n // work out size of new section... banners for example default to large\r\n var row_item = new dtoFactory.RowSectionDto(\r\n helperService.getDefaultRowSize(dto.MainType, this.blockDefaultSize),\r\n helperService.getDefaultRowBackgroundColour(dto.MainType),\r\n helperService.setSectionIsFull(dto.MainType),\r\n helperService.getDefaultBlockWidth(dto.MainType)\r\n ); // all blocks wrappers with rowSection DTO\r\n }\r\n\r\n var item = dtoFactory.create(dto); // create actual block DTO\r\n if (this.managerType === \"templateBuilderManagerObject\") {\r\n helperService.cascadeBlockSettingsFromAsset(item, this.data);\r\n }\r\n row_item.Sections.push(item); // add block to the row section\r\n this.insertRowAtPosition(target_row_item ? target_row_item.Id : null, row_item, position);\r\n\r\n return { RowSectionId: row_item.Id, BlockId: item.Id };\r\n };\r\n\r\n BuilderManager.prototype.addToRow = function (dto, row_section_id, position) {\r\n var item;\r\n var row_item = this.get({ RowSectionId: row_section_id }).RowSection; // all blocks wrappers with rowSection DTO\r\n item = dto.MainType !== undefined ? dtoFactory.create(dto) : dto; // create actual block DTO\r\n\r\n if (position === \"left\") {\r\n row_item.Sections.unshift(item);\r\n } else if (position === \"right\") {\r\n row_item.Sections.push(item); // add block to the row section\r\n }\r\n\r\n row_item.SectionIsFull = true;\r\n\r\n return { RowSectionId: row_item.Id, BlockId: item.Id };\r\n };\r\n\r\n BuilderManager.prototype.add = function (dto, row_section_id, position) {\r\n var ids;\r\n // add new dto\r\n if ([\"top\", \"bottom\", undefined].indexOf(position) > -1) {\r\n ids = this.addNew(dto, row_section_id, position);\r\n }\r\n // add to existing row section dto\r\n else if ([\"left\", \"right\"].indexOf(position) > -1) {\r\n ids = this.addToRow(dto, row_section_id, position);\r\n }\r\n\r\n this.reviseData();\r\n this.updateParent(true);\r\n\r\n $rootScope.$broadcast(\"adding-block-to-builder\");\r\n\r\n if (this.save()) {\r\n return ids;\r\n } else {\r\n return ids;\r\n }\r\n };\r\n\r\n // tslint:disable-next-line:no-empty\r\n BuilderManager.prototype.updateParent = function () {}; //Exists to ensure that any Class which inherits BuilderManager and does not have its own updateParent Method, runs without error\r\n\r\n BuilderManager.prototype.isMoveProhibited = function (row_id, direction) {\r\n var location_index;\r\n\r\n if (direction === \"top\") {\r\n location_index = this.getRowIndex(row_id) - 1;\r\n if (location_index === -1) {\r\n return true;\r\n }\r\n return this.data.Sections[location_index].SectionUneditable;\r\n }\r\n };\r\n\r\n BuilderManager.prototype.moveTo = function (ids, position, row_id) {\r\n var location_index,\r\n items = angular.copy(this.get(ids)); // item that will be rearranged\r\n\r\n if (!row_id) {\r\n location_index = this.getRowIndex(ids.RowSectionId);\r\n }\r\n\r\n this.remove(ids);\r\n\r\n if ([\"top\", \"bottom\"].indexOf(position) > -1) {\r\n if (row_id) {\r\n location_index = this.getRowIndex(row_id);\r\n }\r\n\r\n if (position === \"top\" && !row_id) {\r\n location_index -= 1;\r\n }\r\n\r\n if (position === \"bottom\") {\r\n location_index += 1;\r\n }\r\n\r\n // move just block to new location + create new section dto for this block\r\n if (items.RowSection.Sections.length > 1 && row_id) {\r\n if (this.managerType === \"templateBuilderManagerObject\") {\r\n // work out size of new section... banners for example default to large\r\n var row_item = new dtoFactory.BuilderFormElementRowDto(\r\n helperService.getDefaultRowSize(items.Block.SectionType),\r\n helperService.getDefaultRowBackgroundColour(items.Block.SectionType),\r\n helperService.setSectionIsFull(items.Block.MainType),\r\n helperService.getDefaultBlockWidth(items.Block.MainType)\r\n ); // all blocks wrappers with rowSection DTO\r\n } else {\r\n //here is where we use helper for default size and background color for the row\r\n var row_item = new dtoFactory.RowSectionDto(\r\n helperService.getDefaultRowSize(items.Block.SectionType),\r\n helperService.getDefaultRowBackgroundColour(items.Block.SectionType),\r\n false,\r\n helperService.getDefaultBlockWidth(items.Block.MainType)\r\n ); // create new section for dragged block\r\n }\r\n\r\n row_item.Sections.push(items.Block);\r\n this.data.Sections.splice(location_index, 0, row_item);\r\n ids = { RowSectionId: row_item.Id, BlockId: items.Block.Id };\r\n }\r\n // move entire section\r\n else {\r\n this.data.Sections.splice(location_index, 0, items.RowSection);\r\n }\r\n } else {\r\n ids = this.addToRow(items.Block, row_id, position);\r\n }\r\n\r\n this.reviseData();\r\n this.updateParent(true);\r\n\r\n // If saved then return IDs, else revert all changes\r\n if (this.save()) {\r\n return ids;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n BuilderManager.prototype.remove = function (ids) {\r\n var result = false;\r\n\r\n for (var i = 0; i < this.data.Sections.length; i++) {\r\n if (this.data.Sections[i].Id === ids[\"RowSectionId\"]) {\r\n if (this.data.Sections[i].Sections.length === 1 || !ids[\"BlockId\"]) {\r\n this.data.Sections.splice(i, 1);\r\n } else {\r\n var current_section = this.data.Sections[i];\r\n for (var j = 0; j < current_section.Sections.length; j++) {\r\n if (current_section.Sections[j].Id === ids[\"BlockId\"]) {\r\n current_section.Sections.splice(j, 1);\r\n current_section.SectionIsFull = false;\r\n }\r\n }\r\n }\r\n result = true;\r\n }\r\n }\r\n\r\n this.reviseData();\r\n this.updateParent(true);\r\n\r\n return result && this.save();\r\n };\r\n\r\n BuilderManager.prototype.removeFromStorage = function () {\r\n persistentObjectStore.remove(this.local_storage_reference);\r\n };\r\n\r\n BuilderManager.prototype.update = function (ids, obj, row_section_obj, only_styles, block_wrapper) {\r\n var dtos = this.get(ids);\r\n var item_row = dtos.RowSection; // get row\r\n var item_block = dtos.Block; // get block\r\n var item_block_wrapper = dtos.BlockWrapper;\r\n\r\n var original_block = angular.copy(item_block); // backup object\r\n var original_row = angular.copy(item_row); // backup object\r\n var currentRevisionNumber = this.data.Revision;\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (item_row != null && item_block != null) {\r\n only_styles ? helperService.updateObject(item_block.StyleOptions, obj.StyleOptions) : helperService.updateObject(item_block, obj);\r\n only_styles\r\n ? helperService.updateObject(item_row.StyleOptions, row_section_obj.StyleOptions)\r\n : helperService.updateObject(item_row, row_section_obj);\r\n if (item_block_wrapper) {\r\n helperService.updateObject(item_block_wrapper, block_wrapper);\r\n }\r\n\r\n this.reviseData();\r\n\r\n if (this.save()) {\r\n return true;\r\n } else {\r\n only_styles\r\n ? helperService.updateObject(item_block.StyleOptions, original_block.StyleOptions)\r\n : helperService.updateObject(item_block, original_block);\r\n only_styles\r\n ? helperService.updateObject(item_row.StyleOptions, original_row.StyleOptions)\r\n : helperService.updateObject(item_row, original_row);\r\n this.data.Revision = currentRevisionNumber;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n BuilderManager.prototype.saveToServer = function (asset_id) {\r\n var promises = [],\r\n deferred = $q.defer(),\r\n managerObject = this;\r\n\r\n // if this is in the invisible folder it means its just been created....\r\n //...and therefore on first save we need to change it to main folder\r\n if (managerObject.data.AssetFolder === \"Invisible\") {\r\n managerObject.data.AssetFolder = \"Main\";\r\n }\r\n\r\n this.reviseData();\r\n managerObject.save();\r\n\r\n // find all pages to save\r\n var assetIdsToSave = [];\r\n assetIdsToSave.push(asset_id);\r\n\r\n dataManagerService.checkBeforeSave(asset_id, managerObject.data.MainType).then(\r\n function () {\r\n for (var i = 0; i < assetIdsToSave.length; i++) {\r\n var assetFromStorage = this.loadSpecific(assetIdsToSave[i]);\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (assetFromStorage != false && assetFromStorage !== undefined && assetFromStorage !== null) {\r\n // then we have an asset to save\r\n\r\n // check revision number hasn't been set to NaN\r\n if (isNaN(assetFromStorage.Revision)) {\r\n assetFromStorage.Revision = -1;\r\n }\r\n\r\n // only save pages with is_saved false... as they are the only ones to have changed\r\n recoveryLogger.step(\"save\", `Saving ${managerObject.data.MainType}`);\r\n $http.defaults.withCredentials = true;\r\n var promise = AssetEndpointService.saveOrUpdate({ model: assetFromStorage });\r\n promises.push(promise.then(updateBaseVersion));\r\n }\r\n }\r\n\r\n deferred.resolve({ promises: $q.all(promises) });\r\n }.bind(this)\r\n );\r\n\r\n return deferred.promise;\r\n };\r\n\r\n return BuilderManager;\r\n })();\r\n\r\n /**\r\n * PageManager class\r\n * @param dto\r\n * @constructor\r\n */\r\n var PageManager = function (dto) {\r\n BuilderManager.apply(this, arguments); //Extend BuilderManager.\r\n this._parent = BuilderManager;\r\n this.managerType = \"pageManagerObject\";\r\n\r\n this.updateWebfolioSavedFlagIfExists = function () {\r\n this.updateParentSavedFlagIfExists();\r\n };\r\n\r\n this.moveTo = function (ids, position, row_id) {\r\n var returnedIds = this._parent.prototype.moveTo.call(this, ids, position, row_id);\r\n this.updateWebfolioSavedFlagIfExists();\r\n return returnedIds;\r\n };\r\n\r\n this.remove = function (ids) {\r\n var removed = this._parent.prototype.remove.call(this, ids);\r\n this.updateWebfolioSavedFlagIfExists();\r\n return removed;\r\n };\r\n\r\n this.update = function (ids, obj, row_section_obj, only_styles) {\r\n var updated = this._parent.prototype.update.call(this, ids, obj, row_section_obj, only_styles);\r\n this.updateWebfolioSavedFlagIfExists();\r\n return updated;\r\n };\r\n\r\n this.updateParent = function () {\r\n this.updateWebfolioSavedFlagIfExists(true);\r\n };\r\n\r\n this.saveFoliopageToServer = function (asset_id) {\r\n return this.saveToServer(asset_id);\r\n };\r\n };\r\n\r\n /**\r\n * PostManager class\r\n * @param dto\r\n * @constructor\r\n */\r\n var PostManager = function (dto) {\r\n BuilderManager.apply(this, arguments); //Extend BuilderManager.\r\n this._parent = BuilderManager;\r\n this.managerType = \"postManagerObject\";\r\n\r\n this.updateDtoModel = function (dto) {\r\n this.data = dto;\r\n this.is_saved = false;\r\n\r\n return false;\r\n };\r\n\r\n this.moveTo = function (ids, position, row_id) {\r\n return this._parent.prototype.moveTo.call(this, ids, position, row_id);\r\n };\r\n\r\n this.remove = function (ids) {\r\n return this._parent.prototype.remove.call(this, ids);\r\n };\r\n\r\n this.update = function (ids, obj, row_section_obj, only_styles) {\r\n return this._parent.prototype.update.call(this, ids, obj, row_section_obj, only_styles);\r\n };\r\n\r\n this.savePostToServer = function (asset_id) {\r\n return this.saveToServer(asset_id);\r\n };\r\n };\r\n\r\n /**\r\n * FormManager class\r\n * @param dto\r\n * @constructor\r\n */\r\n var FormManager = function (dto) {\r\n DataManager.apply(this, arguments); // extend from DataManager class\r\n\r\n //Get method for content sections in forms\r\n this.get = function (ids) {\r\n var elements = this.data.Elements;\r\n for (var i = 0; i < elements.length; i++) {\r\n var element = elements[i];\r\n if (element.Id === ids.RowSectionId) {\r\n var block = element.Response !== null ? element.Response : element.Builder;\r\n if (block && block.Id === ids.BlockId) {\r\n return {\r\n RowSection: element,\r\n Block: block\r\n };\r\n }\r\n }\r\n }\r\n\r\n return -1;\r\n };\r\n\r\n this.completeDataProcess = function () {\r\n dataManagerService.current_page = this.AssetId;\r\n dataManagerService.dtos[this.local_storage_reference] = this; // add to the local storage data list\r\n dataManagerService.formManagerObject = this;\r\n };\r\n\r\n this.updateWorkbookDto = function () {\r\n /* DON'T DO ANYTHING HERE, WORKBOOK SHOULD ONLY SAVE IF ITS ACTUALLY BEEN CHANGED*/\r\n };\r\n\r\n this.update = function (newElement, forceIsSavedToUpdate) {\r\n // make sure we have data to work with\r\n $rootScope.justBeenSigned = newElement.ElementType === \"FormSignatureElement\";\r\n const updateIsSaved = forceIsSavedToUpdate !== false;\r\n const matchedIndex = this.data.Elements.findIndex((element) => element.Id === newElement.Id);\r\n\r\n if (matchedIndex === -1) {\r\n throw new Error(\"Matching element not found\");\r\n }\r\n\r\n if (newElement.ElementType !== \"FormSignatureElement\") {\r\n const signatureElements = this.data.Elements.filter(\r\n (element) => element.ElementType === \"FormSignatureElement\" && !element.EditedSinceSigned\r\n );\r\n\r\n for (const signatureElement of signatureElements) {\r\n signatureElement.EditedSinceSigned = true;\r\n $rootScope.$broadcast(\"warningDigitalSignature\" + signatureElement.Id);\r\n }\r\n }\r\n\r\n this.data.Elements[matchedIndex] = newElement;\r\n\r\n if (updateIsSaved) {\r\n this.reviseData();\r\n this.save();\r\n this.updateParentSavedFlagIfExists();\r\n }\r\n\r\n return newElement;\r\n };\r\n\r\n this.checkMandatoryBeforeSave = function (assetId) {\r\n const mandatoryFormObj = this._mandatoryProgressFormCheck();\r\n let promise = null;\r\n if (mandatoryFormObj.invalidPages.length > 0) {\r\n const wasOverlayVisible = overlayFactory.saveOverlay.isOverlayVisible();\r\n overlayFactory.saveOverlay.hide();\r\n promise = dataManagerService._showProgressResetModal().then(() => {\r\n if (wasOverlayVisible) {\r\n overlayFactory.saveOverlay.show();\r\n }\r\n });\r\n }\r\n\r\n return $q.when(promise).then(() => {\r\n return this.saveTemplateToServer(assetId);\r\n });\r\n };\r\n\r\n this._mandatoryProgressFormCheck = function () {\r\n var returnObject = { invalidPages: [] };\r\n\r\n var form = this.loadSpecific(this.AssetId);\r\n if (form && form.Elements) {\r\n // check mandatory field to see if they still pass\r\n var pageFailed = false,\r\n mandatoryObj = null;\r\n for (var a = 0; a < form.Elements.length; a++) {\r\n mandatoryObj = formComponentsHelper.checkIfMandatoryForCompletionValid(form.Elements[a]);\r\n if (mandatoryObj.valid === false) {\r\n pageFailed = true;\r\n break;\r\n }\r\n }\r\n\r\n // if its failed mandatory checks then update progress tracking completed to false\r\n if (pageFailed) {\r\n returnObject.invalidPages.push(this.AssetId); // add to list of valid pages\r\n form.ProgressTrackingComplete = false;\r\n this.reviseData();\r\n this.save();\r\n }\r\n }\r\n\r\n return returnObject;\r\n };\r\n\r\n this.saveTemplateToServer = function (asset_id, doNotChangeFolder) {\r\n var promises = [];\r\n var deferred = $q.defer();\r\n\r\n // if this is in the invisible folder it means its just been created....\r\n //...and therefore on first save we need to change it to main folder\r\n // tslint:disable-next-line:triple-equals\r\n if (doNotChangeFolder === null || doNotChangeFolder === undefined || doNotChangeFolder == false) {\r\n if (this.data.AssetFolder === \"Invisible\") {\r\n this.data.AssetFolder = \"Main\";\r\n }\r\n }\r\n\r\n // make sure main object saves\r\n this.reviseData();\r\n this.save();\r\n\r\n // go through list of asset ids (in forms case its just the one) get it from local storage and save\r\n var assetIdsToSave = [];\r\n assetIdsToSave.push(asset_id);\r\n\r\n dataManagerService.checkBeforeSave(asset_id, \"FormResponse\").then(\r\n function () {\r\n for (var i = 0; i < assetIdsToSave.length; i++) {\r\n var assetFromStorage = this.loadSpecific(assetIdsToSave[i]);\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (assetFromStorage != false && assetFromStorage !== undefined && assetFromStorage !== null) {\r\n // then we have an asset to save\r\n\r\n // check revision number hasn't been set to NaN\r\n if (isNaN(assetFromStorage.Revision)) {\r\n assetFromStorage.Revision = -1;\r\n }\r\n\r\n // only save pages with is_saved false... as they are the only ones to have changed\r\n recoveryLogger.step(\"save\", \"Saving FormResponse\");\r\n $http.defaults.withCredentials = true;\r\n var promise = AssetEndpointService.saveOrUpdate({ model: assetFromStorage });\r\n promises.push(promise.then(updateBaseVersion));\r\n\r\n // ensure that the just saved items last modified date is set back into the past so any serverside items will override it\r\n }\r\n }\r\n\r\n deferred.resolve({ promises: $q.all(promises) });\r\n }.bind(this)\r\n );\r\n\r\n return deferred.promise;\r\n };\r\n };\r\n\r\n /**\r\n * Workbook manager\r\n **/\r\n var WorkbookManager = function (dto) {\r\n DataManager.apply(this, arguments); // extend from DataManager class\r\n this.managerType = \"workbookManagerObject\";\r\n\r\n this.completeDataProcess = function () {\r\n dataManagerService.dtos[this.local_storage_reference] = this; // add to the local storage data list\r\n dataManagerService[this.managerType] = this;\r\n };\r\n\r\n this.procurePage = (pageId, assetContext, isEditable) => {\r\n const procurePagePromise = assetPageHandlerFactory\r\n .createWorkbookResponseHandler(this.data, assetContext)\r\n .procurePageById(pageId, isEditable)\r\n .then((result) => {\r\n if (result.outdatedResponseId === \"\" || !isEditable) {\r\n return result.page;\r\n }\r\n\r\n return dataManagerService.saveOrphanedAsset(result.outdatedResponseId).then(\r\n () => result.page,\r\n () => result.page\r\n );\r\n });\r\n\r\n if (isEditable) {\r\n procurePagePromise.catch((rejection) => handleProcurePageError(rejection, this.AssetId, pageId, this));\r\n }\r\n\r\n return procurePagePromise;\r\n };\r\n\r\n this.getIdsTrace = function (id) {\r\n const match = new PageModelSearch(this.data.Pages).tracedFind(byPageId(id));\r\n if (match === null) {\r\n return [];\r\n }\r\n\r\n const trace = match.parents.map((p) => p.PageId);\r\n trace.unshift(id);\r\n return trace;\r\n };\r\n\r\n /**\r\n * WARNING: Dangerously obscure code ahead.\r\n * Can return -1 (page not found), a PageViewModel, or { isRootLevel: boolean, page: PageViewModel, parents: { parent: PageViewModel, rootParent: PageViewModel } | Array }\r\n * Omitting `getParent` or passing it in as false, will result in a return value of -1 or a PageViewModel\r\n * If `getParent` is true and the page is not found, will result in -1.\r\n * If `getParent` is true and the page is at the root, will result in:\r\n * { isRootLevel: true, page: PageViewModel, parents: Array }\r\n * If `getParent` is true and the page's direct parent is at the root, will result in:\r\n * { isRootLevel: true, page: PageViewModel, parents: { parent: Parent's PageViewModel, rootParent: Parent's PageViewModel } }\r\n * If `getParent` is true and the page's direct parent is not at the root, will result in:\r\n * { isRootLevel: true, page: PageViewModel, parents: { parent: Parent's PageViewModel, rootParent: Root Parent's PageViewModel } }\r\n */\r\n this.get = function (id, getParent, targetedPages) {\r\n const pages = Array.isArray(targetedPages) ? targetedPages : this.data.Pages;\r\n const pageSearch = new PageModelSearch(pages);\r\n\r\n if (!getParent) {\r\n const match = pageSearch.find(byPageId(id));\r\n return match !== null ? match : -1;\r\n }\r\n\r\n const match = pageSearch.tracedFind(byPageId(id));\r\n if (match === null) {\r\n return -1;\r\n }\r\n\r\n const isPageOrParentRootLevel = match.parents.length <= 1;\r\n const parents = match.parents.length > 0 ? { parent: match.parents[0], rootParent: match.parents[match.parents.length - 1] } : pages;\r\n\r\n return {\r\n isRootLevel: isPageOrParentRootLevel,\r\n page: match.page,\r\n parents: parents\r\n };\r\n };\r\n\r\n this.isRootLevel = function (id, targetedPages) {\r\n const pages = Array.isArray(targetedPages) ? targetedPages : this.data.Pages;\r\n return pages.some(byPageId(id));\r\n };\r\n\r\n this.findWorkbookPage = function (pageToFindId, workbookPages) {\r\n if (workbookPages === null || pageToFindId === null) {\r\n return null;\r\n }\r\n\r\n return new PageModelSearch(workbookPages).find(byPageId(pageToFindId));\r\n };\r\n\r\n this.findFirstWorkbookPage = function (workbookPages) {\r\n if (workbookPages === null) {\r\n return null;\r\n }\r\n\r\n return new PageModelSearch(workbookPages).find((p) => p.PageType !== ASSET_CONSTANTS.TYPES.WORKBOOK);\r\n };\r\n\r\n this.updatePageResponse = (pageId, responseId) => {\r\n return this._beforePageResponseUpdate().then(() => {\r\n const pageHandler = assetPageHandlerFactory.createWorkbookResponseHandler(this.data, new AssetContext(this.AssetId));\r\n return pageHandler.updatePageResponseById(pageId, responseId);\r\n });\r\n };\r\n\r\n this.updatePageCompleteStatusById = (pageId, complete) => {\r\n return this._beforePageResponseUpdate().then(() => {\r\n const pageHandler = assetPageHandlerFactory.createWorkbookResponseHandler(this.data, new AssetContext(this.AssetId));\r\n return pageHandler.updatePageCompleteStatusById(pageId, complete);\r\n });\r\n };\r\n\r\n this.removePageResponse = (pageId) => {\r\n return this._beforePageResponseUpdate().then(() => {\r\n const pageHandler = assetPageHandlerFactory.createWorkbookResponseHandler(this.data, new AssetContext(this.AssetId));\r\n return pageHandler.removePageById(pageId);\r\n });\r\n };\r\n\r\n this._beforePageResponseUpdate = () => {\r\n const isSaved = this.is_saved && this.checkForIsSavedAnywhereInWorkbook(this.AssetId);\r\n return !isSaved ? this.saveWorkbookToServer(this.AssetId, false, null, true) : $q.resolve();\r\n };\r\n\r\n this.getUnsavedPageAssetIds = function (workbookPages) {\r\n return this.findAllUserFilledInPageIds(workbookPages).filter((id) => persistentObjectStore.has(id));\r\n };\r\n\r\n this.findAllUserFilledInPageIds = function (workbookPages) {\r\n if (workbookPages === null || workbookPages === undefined) {\r\n return [];\r\n }\r\n\r\n const ignoreNestedWorkbooks = (p) => p.PageType !== ASSET_CONSTANTS.TYPES.WORKBOOK;\r\n const withoutDuplicatePageResponses = withoutDuplicatePageResponsesFactory();\r\n return new PageModelSearch(workbookPages)\r\n .filter(withoutEmptyPageAssetIds, withoutDuplicatePageResponses, ignoreNestedWorkbooks)\r\n .map((p) => p.UserResponseId);\r\n };\r\n\r\n this.update = function (pageId, obj) {\r\n var nav_page_item;\r\n\r\n if (pageId) {\r\n nav_page_item = this.get(pageId); // get block\r\n } else {\r\n nav_page_item = this.data; // update property on main DTO\r\n }\r\n\r\n var original_item = angular.copy(nav_page_item); // backup object\r\n var currentRevision = this.data.Revision;\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (nav_page_item != null) {\r\n helperService.updateObject(nav_page_item, obj);\r\n this.reviseData();\r\n\r\n if (this.save()) {\r\n return true;\r\n } else {\r\n helperService.updateObject(nav_page_item, original_item);\r\n this.data.Revision = currentRevision;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n this.saveWorkbookToServer = function (asset_id, save_workbook_only, forceLocalSaveOnPagesArr, force_main_folder) {\r\n var workbookManagerObj = this,\r\n promises = [],\r\n deferred = $q.defer();\r\n\r\n if (save_workbook_only === null || save_workbook_only === undefined) {\r\n save_workbook_only = false;\r\n }\r\n\r\n if (forceLocalSaveOnPagesArr === null || forceLocalSaveOnPagesArr === undefined) {\r\n forceLocalSaveOnPagesArr = [];\r\n }\r\n\r\n if (force_main_folder === null || force_main_folder === undefined) {\r\n force_main_folder = false;\r\n }\r\n\r\n // if this is in the invisible folder it means its just been created....\r\n //...and therefore on first save we need to change it to main folder\r\n var autosubmit = false;\r\n // tslint:disable-next-line:triple-equals\r\n if ((force_main_folder || save_workbook_only != true) && workbookManagerObj.data.AssetFolder === \"Invisible\") {\r\n workbookManagerObj.data.AssetFolder = \"Main\";\r\n autosubmit = true;\r\n }\r\n\r\n this.reviseData();\r\n workbookManagerObj.save();\r\n\r\n var assetIdsToSave = [];\r\n var currentPage = this.get($routeParams.pageId, false); //Have to find the page id to check for locking...Do not like, blame locking!\r\n var pageAssetId = currentPage.UserResponseId !== void 0 ? currentPage.UserResponseId : currentPage.PageAssetId;\r\n\r\n // find all pages to save\r\n // tslint:disable-next-line:triple-equals\r\n if (save_workbook_only == false) {\r\n assetIdsToSave = this.getUnsavedPageAssetIds(workbookManagerObj.data.Pages);\r\n }\r\n // add main workbooks id\r\n assetIdsToSave.push(asset_id);\r\n\r\n dataManagerService\r\n .checkBeforeSave(asset_id, \"Webfolio\", pageAssetId)\r\n .then(() => {\r\n // get current workbook/pages revisions from server\r\n for (var i = 0; i < assetIdsToSave.length; i++) {\r\n var assetFromStorage = this.loadSpecific(assetIdsToSave[i]);\r\n\r\n // tslint:disable:triple-equals\r\n if (\r\n assetFromStorage != false &&\r\n assetFromStorage !== undefined &&\r\n assetFromStorage !== null &&\r\n assetFromStorage.is_saved === false\r\n ) {\r\n // tslint:enable:triple-equals\r\n $http.defaults.withCredentials = true;\r\n\r\n // check revision number hasn't been set to NaN\r\n if (isNaN(assetFromStorage.Revision)) {\r\n assetFromStorage.Revision = -1;\r\n }\r\n recoveryLogger.step(\"save\", \"Saving WorkbookResponse\");\r\n var promise = AssetEndpointService.saveOrUpdate({ model: assetFromStorage });\r\n promise.then(function (response) {\r\n var tempDto = dataManagerService.dtos[response.data.AssetId];\r\n if (tempDto !== null && tempDto !== undefined) {\r\n tempDto.is_saved = true;\r\n tempDto.data.is_saved = true;\r\n tempDto.data.BaseVersion = response.data.Asset.Revision;\r\n if (tempDto.data.Revision < response.data.Asset.Revision) {\r\n tempDto.data.Revision = response.data.Asset.Revision;\r\n }\r\n }\r\n\r\n // if this is the main asset then check for any autosubmit asset options we need to remove\r\n // tslint:disable-next-line:triple-equals\r\n if (asset_id == response.data.AssetId) {\r\n if (workbookManagerObj !== null && workbookManagerObj !== undefined) {\r\n workbookManagerObj.is_saved = true;\r\n if (workbookManagerObj.data !== null && workbookManagerObj.data !== undefined) {\r\n workbookManagerObj.data.is_saved = true;\r\n\r\n if (autosubmit) {\r\n if (\r\n workbookManagerObj.data.AssetOptions !== null &&\r\n workbookManagerObj.data.AssetOptions !== undefined &&\r\n workbookManagerObj.data.AssetOptions.length > 0\r\n ) {\r\n for (var k = 0; k < workbookManagerObj.data.AssetOptions.length; k++) {\r\n if (\r\n workbookManagerObj.data.AssetOptions[k].Key === \"AutoSubmitted\" &&\r\n workbookManagerObj.data.AssetOptions[k].Value === \"false\"\r\n ) {\r\n workbookManagerObj.data.AssetOptions[k].Value = \"true\";\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (autosubmit) {\r\n // ONLY ATTEMPT TO REMOVE AUTOSUBMIT IF USER HAS SAVED.... IF THIS FLAG IS TRUE THEY DIDN@T\r\n if (tempDto !== null && tempDto !== undefined) {\r\n if (\r\n tempDto.data.AssetOptions !== null &&\r\n tempDto.data.AssetOptions !== undefined &&\r\n tempDto.data.AssetOptions.length > 0\r\n ) {\r\n for (var j = 0; j < tempDto.data.AssetOptions.length; j++) {\r\n if (\r\n tempDto.data.AssetOptions[j].Key === \"AutoSubmitted\" &&\r\n tempDto.data.AssetOptions[j].Value === \"false\"\r\n ) {\r\n tempDto.data.AssetOptions[j].Value = \"true\";\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n dataManagerService.destroy(response.data.AssetId); // remove item\r\n }, angular.noop);\r\n\r\n promises.push(promise);\r\n } else {\r\n dataManagerService.destroy(assetIdsToSave[i]); // remove item\r\n }\r\n }\r\n\r\n deferred.resolve({ promises: $q.all(promises) });\r\n })\r\n .catch((err) => {\r\n deferred.reject(err);\r\n });\r\n\r\n $rootScope.$broadcast(\"savingWorkbook\", this.AssetId, deferred.promise);\r\n return deferred.promise;\r\n };\r\n\r\n this.removeWorkbookFromStorage = function () {\r\n var asset_id = this.local_storage_reference;\r\n if (!this.data || this.data.Pages.length <= 0) {\r\n return;\r\n }\r\n // find all pages to remove\r\n var assetIdsToRemove = this.findAllUserFilledInPageIds(this.data.Pages);\r\n assetIdsToRemove.push(asset_id);\r\n angular.forEach(assetIdsToRemove, function (key) {\r\n dataManagerService.destroy(key); // remove item\r\n });\r\n };\r\n\r\n this.validateWorkbook = function () {\r\n var validationObj = this.validatePages(this.data.Pages);\r\n return validationObj;\r\n };\r\n\r\n this.validatePages = function (page_array) {\r\n for (var i = 0; i < page_array.length; i++) {\r\n var page = page_array[i];\r\n if (page.PageType === \"Form\") {\r\n // tslint:disable-next-line:triple-equals\r\n if (page.UserResponseId != null) {\r\n const form = persistentObjectStore.retrieve(page.UserResponseId, user_id);\r\n if (form !== null) {\r\n var formValidationObj = formComponentsHelper.formValidation(form, true, page.PageTitle);\r\n //update form in local storage\r\n this.save(page.UserResponseId, form);\r\n\r\n if (!formValidationObj.valid) {\r\n return { pageId: page.PageId, validation: formValidationObj };\r\n }\r\n }\r\n }\r\n } else if (page.PageType === \"WorkBook\" || page.PageType === \"WorkBookResponse\") {\r\n return this.validatePages(page.Children);\r\n }\r\n }\r\n return { pageId: \"\", validation: { valid: true } };\r\n };\r\n\r\n this.checkMandatoryBeforeSave = function (assetId, options = {}) {\r\n const mandatoryObj = this._mandatoryProgressWorkbookCheck();\r\n let promise = null;\r\n\r\n if (mandatoryObj.invalidPages.length > 0) {\r\n const wasOverlayVisible = overlayFactory.saveOverlay.isOverlayVisible();\r\n overlayFactory.saveOverlay.hide();\r\n promise = dataManagerService._showProgressResetModal(options.modalLanguage).then(() => {\r\n if (wasOverlayVisible) {\r\n overlayFactory.saveOverlay.show();\r\n }\r\n const pageHandler = assetPageHandlerFactory.createWorkbookResponseHandler(this.data, new AssetContext(assetId));\r\n const promises = mandatoryObj.invalidPages.map((pageId) => {\r\n return pageHandler.updatePageCompleteStatusById(pageId, false);\r\n });\r\n return $q.all(promises);\r\n });\r\n }\r\n\r\n return $q\r\n .when(promise)\r\n .then(() => {\r\n return this.saveWorkbookToServer(assetId, false, null, options.forceMainFolder || false);\r\n })\r\n .then((serverResponses) => {\r\n return {\r\n serverResponses: serverResponses,\r\n mandatoryFieldsResult: mandatoryObj\r\n };\r\n });\r\n };\r\n\r\n this._mandatoryProgressWorkbookCheck = function () {\r\n // The purpose of this method is to check any modified pages to see if...\r\n // a) They are a template page\r\n // b) They are set to completed (progress tracking)\r\n // c) if they are set to completed then check the user hasn't invalidated any mandatory fields since setting it to complete\r\n // d) if they have invalidated then set that page to incomplete and report which pages have been altered\r\n // NOTE: must check the progress tracking information stored on the workbook response NOT the fields stored on the forms themselves...\r\n // ... The ones on the forms themselves are only used when using progress tracking without workbooks (i.e. current only collections)\r\n return this._checkMandatoryProgressOnPages(this.data.Pages);\r\n };\r\n\r\n this._checkMandatoryProgressOnPages = function (page_array) {\r\n var returnObject = { invalidPages: [] },\r\n form = null,\r\n pageFailed = false,\r\n mandatoryObj = null,\r\n page = null;\r\n\r\n for (var i = 0; i < page_array.length; i++) {\r\n page = page_array[i];\r\n if (page.PageType === \"Form\") {\r\n // tslint:disable-next-line:triple-equals\r\n if (page.UserResponseId != null && page.ProgressTrackingEnabled === true && page.ProgressTrackingComplete === true) {\r\n form = this.loadSpecific(page.UserResponseId);\r\n if (form && form.Elements) {\r\n // check mandatory field to see if they still pass\r\n for (var a = 0; a < form.Elements.length; a++) {\r\n mandatoryObj = formComponentsHelper.checkIfMandatoryForCompletionValid(form.Elements[a]);\r\n if (mandatoryObj.valid === false) {\r\n pageFailed = true;\r\n break;\r\n }\r\n }\r\n\r\n // if its failed mandatory checks then update progress tracking completed to false\r\n if (pageFailed) {\r\n returnObject.invalidPages.push(page.PageId); // add to list of valid pages\r\n page.ProgressTrackingComplete = false;\r\n dataManagerService.workbookManagerObject.reviseData();\r\n dataManagerService.workbookManagerObject.save();\r\n }\r\n }\r\n }\r\n } else if (page.PageType === \"WorkBook\" || page.PageType === \"WorkBookResponse\") {\r\n var childResult = this._checkMandatoryProgressOnPages(page.Children);\r\n // add result to main results if any\r\n for (var j = 0; j < childResult.invalidPages.length; j++) {\r\n returnObject.invalidPages.push(childResult.invalidPages[j]); // add to list of valid pages\r\n }\r\n }\r\n }\r\n return returnObject;\r\n };\r\n\r\n this.checkForIsSavedAnywhereInWorkbook = function (primary_workbook_asset_id) {\r\n var assetIdsToCheck = [];\r\n\r\n // attempt to get ids from local storage, if nothing there attempt from scope data\r\n var assetFromStorage = this.loadSpecific(primary_workbook_asset_id);\r\n // tslint:disable:triple-equals\r\n if (\r\n assetFromStorage != false &&\r\n assetFromStorage !== undefined &&\r\n assetFromStorage !== null &&\r\n assetFromStorage.Pages !== null &&\r\n assetFromStorage.Pages !== undefined\r\n ) {\r\n // tslint:enable:triple-equals\r\n assetIdsToCheck = this.findAllUserFilledInPageIds(assetFromStorage.Pages);\r\n // tslint:disable-next-line:triple-equals\r\n } else if (dataManagerService.workbookManagerObject && dataManagerService.workbookManagerObject.AssetId == primary_workbook_asset_id) {\r\n assetIdsToCheck = this.findAllUserFilledInPageIds(dataManagerService.workbookManagerObject.data.Pages);\r\n }\r\n\r\n // add main workbooks id\r\n assetIdsToCheck.push(primary_workbook_asset_id);\r\n\r\n // loop through all ids in local storage and check the is_saved flags\r\n var is_saved = true;\r\n\r\n for (var i = 0, len = assetIdsToCheck.length; i < len; i++) {\r\n var asset = this.loadSpecific(assetIdsToCheck[i]);\r\n // tslint:disable-next-line:triple-equals\r\n if (asset != false && asset !== undefined && asset !== null) {\r\n // tslint:disable-next-line:triple-equals\r\n if (asset.is_saved != true) {\r\n is_saved = false;\r\n i = len; // exit loop, already found a false for this workbook\r\n }\r\n }\r\n }\r\n\r\n return is_saved;\r\n };\r\n };\r\n\r\n /**\r\n * CollectionWrapperManager class\r\n * @param dto\r\n * @constructor\r\n */\r\n var CollectionWrapperManager = function (dto) {\r\n DataManager.apply(this, arguments); // extend from DataManager class\r\n\r\n this.completeDataProcess = function () {\r\n dataManagerService.dtos[this.local_storage_reference] = this; // add to the local storage data list\r\n dataManagerService.collectionWrapperManagerObject = this;\r\n };\r\n\r\n this.getBanner = function () {\r\n return dataManagerService.collectionWrapperManagerObject.data.BannerSection;\r\n };\r\n\r\n this.updateDtoModel = function (collectionDto) {\r\n this.updateParentSavedFlagIfExists();\r\n this.data = collectionDto;\r\n this.reviseData();\r\n\r\n return false;\r\n };\r\n\r\n this.saveCollectionToServer = function (asset_id) {\r\n var promises = [];\r\n var deferred = $q.defer();\r\n // if this is in the invisible folder it means its just been created....\r\n //...and therefore on first save we need to change it to main folder\r\n if (this.data.AssetFolder === \"Invisible\") {\r\n this.data.AssetFolder = \"Main\";\r\n }\r\n\r\n this.reviseData();\r\n this.save();\r\n\r\n dataManagerService.checkBeforeSave(asset_id, \"AssetCollectionWrapper\").then(\r\n function () {\r\n // make sure main object saves\r\n var assetFromStorage = this.loadSpecific(asset_id);\r\n // tslint:disable-next-line:triple-equals\r\n if (assetFromStorage != false && assetFromStorage !== undefined && assetFromStorage !== null) {\r\n // then we have an asset to save\r\n\r\n // check revision number hasn't been set to NaN\r\n if (isNaN(assetFromStorage.Revision)) {\r\n assetFromStorage.Revision = -1;\r\n }\r\n\r\n // only save pages with is_saved false... as they are the only ones to have changed\r\n recoveryLogger.step(\"save\", \"Saving AssetCollectionWrapper\");\r\n $http.defaults.withCredentials = true;\r\n var promise = AssetEndpointService.saveOrUpdate({ model: assetFromStorage });\r\n promises.push(promise.then(updateBaseVersion));\r\n }\r\n\r\n deferred.resolve({ promises: $q.all(promises) });\r\n }.bind(this)\r\n );\r\n\r\n return deferred.promise;\r\n };\r\n };\r\n\r\n /**\r\n * ActivityLogManager class\r\n * @param dto\r\n * @constructor\r\n */\r\n var ActivityLogManager = function (dto) {\r\n DataManager.apply(this, arguments); // extend from DataManager class\r\n\r\n this.completeDataProcess = function () {\r\n dataManagerService.dtos[this.local_storage_reference] = this; // add to the local storage data list\r\n dataManagerService.activityLogManagerObject = this;\r\n };\r\n\r\n this.getBanner = function () {\r\n return dataManagerService.activityLogManagerObject.data.BannerSection;\r\n };\r\n\r\n this.updateDtoModel = function (activityLogDto) {\r\n this.updateParentSavedFlagIfExists();\r\n this.data = activityLogDto;\r\n this.reviseData();\r\n\r\n return false;\r\n };\r\n\r\n this.saveActivityLogToServer = function (asset_id, saveToMain) {\r\n var promises = [];\r\n var deferred = $q.defer();\r\n\r\n if (saveToMain && this.data.AssetFolder === \"Invisible\") {\r\n this.data.AssetFolder = \"Main\";\r\n }\r\n\r\n // make sure main object saves\r\n this.reviseData();\r\n this.save();\r\n\r\n dataManagerService.checkBeforeSave(asset_id, \"ActivityLog\").then(\r\n function () {\r\n var assetFromStorage = this.loadSpecific(asset_id);\r\n // tslint:disable-next-line:triple-equals\r\n if (assetFromStorage != false && assetFromStorage !== undefined && assetFromStorage !== null) {\r\n // then we have an asset to save\r\n\r\n // check revision number hasn't been set to NaN\r\n if (isNaN(assetFromStorage.Revision)) {\r\n assetFromStorage.Revision = -1;\r\n }\r\n\r\n // only save pages with is_saved false... as they are the only ones to have changed\r\n recoveryLogger.step(\"save\", \"Saving ActivityLog\");\r\n $http.defaults.withCredentials = true;\r\n var promise = AssetEndpointService.saveOrUpdate({ model: assetFromStorage });\r\n promises.push(promise.then(updateBaseVersion));\r\n }\r\n\r\n deferred.resolve({ promises: $q.all(promises) });\r\n }.bind(this)\r\n );\r\n\r\n return deferred.promise;\r\n };\r\n };\r\n\r\n /**\r\n * BlogManager class\r\n * @param dto\r\n * @constructor\r\n */\r\n var BlogManager = function (dto) {\r\n DataManager.apply(this, arguments); // extend from DataManager class\r\n\r\n this.completeDataProcess = function () {\r\n dataManagerService.current_navigation = this.AssetId;\r\n dataManagerService.dtos[this.local_storage_reference] = this; // add to the local storage data list\r\n dataManagerService.blogManagerObject = this;\r\n };\r\n\r\n this.getBanner = function () {\r\n return dataManagerService.blogManagerObject.data.BannerSection;\r\n };\r\n\r\n this.updateDtoModel = function (blogDto, ignoreRevision) {\r\n this.updateParentSavedFlagIfExists();\r\n this.data = blogDto;\r\n if (!ignoreRevision) {\r\n this.reviseData();\r\n }\r\n\r\n return this.save();\r\n };\r\n\r\n this.createArrayOfAssetPostIds = function (array, extraItem) {\r\n var assetIds = [];\r\n if (extraItem) {\r\n assetIds.push(extraItem);\r\n }\r\n for (var i = 0; i < array.length; i++) {\r\n assetIds.push(array[i].PostId);\r\n }\r\n return assetIds;\r\n };\r\n\r\n this.convertPostViewDto = function (postViewDto) {\r\n var basicDto = {\r\n Id: postViewDto.Id,\r\n PostId: postViewDto.PostId,\r\n Private: postViewDto.Private,\r\n Posted: postViewDto.Posted,\r\n Created: postViewDto.Created,\r\n Modified: postViewDto.Modified,\r\n PosterId: postViewDto.PosterId\r\n };\r\n return basicDto;\r\n };\r\n\r\n this.saveBlogToServer = function (asset_id) {\r\n var promises = [];\r\n var deferred = $q.defer();\r\n\r\n // if this is in the invisible folder it means its just been created....\r\n //...and therefore on first save we need to change it to main folder\r\n if (this.data.AssetFolder === \"Invisible\") {\r\n this.data.AssetFolder = \"Main\";\r\n }\r\n\r\n if (this.data.AssetFolder === \"Deleted\") {\r\n deferred.reject();\r\n return deferred.promise;\r\n }\r\n\r\n // make sure main object saves\r\n this.reviseData();\r\n this.save();\r\n\r\n dataManagerService.checkBeforeSave(asset_id, \"Blog\").then(\r\n function () {\r\n var assetFromStorage = this.loadSpecific(asset_id);\r\n // tslint:disable-next-line:triple-equals\r\n if (assetFromStorage != false && assetFromStorage !== undefined && assetFromStorage !== null) {\r\n // then we have an asset to save\r\n\r\n // check revision number hasn't been set to NaN\r\n if (isNaN(assetFromStorage.Revision)) {\r\n assetFromStorage.Revision = -1;\r\n }\r\n\r\n // only save pages with is_saved false... as they are the only ones to have changed\r\n recoveryLogger.step(\"save\", \"Saving Blog\");\r\n $http.defaults.withCredentials = true;\r\n var promise = AssetEndpointService.saveOrUpdate({ model: assetFromStorage });\r\n promises.push(promise.then(updateBaseVersion));\r\n }\r\n\r\n deferred.resolve({ promises: $q.all(promises) });\r\n }.bind(this)\r\n );\r\n\r\n return deferred.promise;\r\n };\r\n\r\n this.updatePostPrivate = function (post_id, bool) {\r\n var array = this.data.Posts;\r\n for (var i = 0; i < array.length; i++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (array[i].PostId == post_id) {\r\n array[i].Private = bool;\r\n }\r\n }\r\n this.reviseData();\r\n\r\n return this.save();\r\n };\r\n\r\n this.removePost = function (post_id, bool) {\r\n var array = this.data.Posts;\r\n for (var i = 0; i < array.length; i++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (array[i].PostId == post_id) {\r\n array.splice(i, 1);\r\n }\r\n }\r\n this.reviseData();\r\n\r\n return this.save();\r\n };\r\n };\r\n\r\n /**\r\n * CvManager class\r\n * @param dto\r\n * @constructor\r\n */\r\n var CvManager = function (dto) {\r\n DataManager.apply(this, arguments); // extend from DataManager class\r\n\r\n this.completeDataProcess = function () {\r\n dataManagerService.dtos[this.local_storage_reference] = this; // add to the local storage data list\r\n dataManagerService.cvManagerObject = this;\r\n };\r\n\r\n this.getBanner = function () {\r\n return dataManagerService.cvManagerObject.data.BannerSection;\r\n };\r\n\r\n this.updateDtoModel = function (cvDto) {\r\n this.data = cvDto;\r\n this.reviseData();\r\n\r\n return false;\r\n };\r\n };\r\n\r\n /**\r\n * TemplateManager class\r\n * @param dto\r\n * @constructor\r\n */\r\n var TemplateBuilderManager = function (dto) {\r\n BuilderManager.apply(this, arguments); //Extend BuilderManager.\r\n this._parent = BuilderManager;\r\n this.managerType = \"templateBuilderManagerObject\";\r\n this.blockDefaultSize = \"medium\";\r\n this.rootManagerId = null;\r\n\r\n this.getBanner = function () {\r\n return dataManagerService[this.managerType].data.BannerSection;\r\n };\r\n\r\n this.updateDtoModel = function (dto) {\r\n this.data = dto;\r\n this.is_saved = false;\r\n this.updateParent(true);\r\n return false;\r\n };\r\n\r\n this.update = function (ids, obj, row_section_obj, only_styles, block_wrapper) {\r\n var updated = this._parent.prototype.update.call(this, ids, obj, row_section_obj, only_styles, block_wrapper);\r\n this.updateParent(updated);\r\n return updated;\r\n };\r\n\r\n this.updateParent = function (updated) {\r\n if (this.rootManagerId && updated) {\r\n dataManagerService.dtos[this.rootManagerId].onChildUpdate();\r\n }\r\n };\r\n\r\n this.saveTemplateBuilderToServer = function (asset_id, doNotChangeFolder) {\r\n var promises = [];\r\n var deferred = $q.defer();\r\n\r\n // if this is in the invisible folder it means its just been created....\r\n //...and therefore on first save we need to change it to main folder\r\n // tslint:disable-next-line:triple-equals\r\n if (doNotChangeFolder === null || doNotChangeFolder === undefined || doNotChangeFolder == false) {\r\n if (this.data.AssetFolder === \"Invisible\") {\r\n this.data.AssetFolder = \"Main\";\r\n }\r\n }\r\n\r\n // make sure main object saves\r\n this.reviseData();\r\n this.save();\r\n\r\n // go through list of asset ids (in forms case its just the one) get it from local storage and save\r\n var assetIdsToSave = [];\r\n assetIdsToSave.push(asset_id);\r\n\r\n dataManagerService.checkBeforeSave(asset_id, \"TemplateBuilder\").then(\r\n function () {\r\n for (var i = 0; i < assetIdsToSave.length; i++) {\r\n var assetFromStorage = this.loadSpecific(assetIdsToSave[i]);\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (assetFromStorage != false && assetFromStorage !== undefined && assetFromStorage !== null) {\r\n // then we have an asset to save\r\n\r\n // check revision number hasn't been set to NaN\r\n if (isNaN(assetFromStorage.Revision)) {\r\n assetFromStorage.Revision = -1;\r\n }\r\n\r\n // only save pages with is_saved false... as they are the only ones to have changed\r\n recoveryLogger.step(\"save\", \"Saving Form\");\r\n $http.defaults.withCredentials = true;\r\n var promise = AssetEndpointService.saveOrUpdate({ model: assetFromStorage });\r\n promises.push(promise.then(updateBaseVersion));\r\n\r\n // ensure that the just saved items last modified date is set back into the past so any serverside items will override it\r\n }\r\n }\r\n\r\n deferred.resolve({ promises: $q.all(promises) });\r\n }.bind(this)\r\n );\r\n\r\n return deferred.promise;\r\n };\r\n };\r\n\r\n var WorkbookBuilderManager = function (dto) {\r\n WorkbookManager.apply(this, arguments);\r\n this._parent = BuilderManager;\r\n this.managerType = \"workbookBuilderManagerObject\";\r\n\r\n this.completeDataProcess = function () {\r\n dataManagerService.dtos[this.local_storage_reference] = this;\r\n dataManagerService[this.managerType] = this;\r\n };\r\n\r\n this.updateDtoModel = function (dto) {\r\n this.data = dto;\r\n this.is_saved = false;\r\n\r\n return false;\r\n };\r\n\r\n this.onChildUpdate = function () {\r\n this.reviseData();\r\n this.save();\r\n };\r\n\r\n this.isRootLevel = function (id, pages) {\r\n pages = pages || this.data.Pages;\r\n return pages.some(byPageId(id));\r\n };\r\n\r\n this.getNestedParent = function (pageId, pages) {\r\n var parent = null;\r\n for (var i = 0, l = pages.length, page; i < l; i++) {\r\n page = pages[i];\r\n\r\n parent = page.Children.findInNestedObject(\"PageId\", pageId) !== -1 ? page : this.getNestedParent(pageId, page.Children);\r\n if (parent) {\r\n break;\r\n }\r\n }\r\n\r\n return parent;\r\n };\r\n\r\n this.getPage = function (pageId, pages, parentType) {\r\n var pageFound = pages.findInNestedObjectsRecursively(\"PageId\", pageId, \"Children\", \"PageType\", parentType);\r\n return pageFound !== undefined ? pageFound : null;\r\n };\r\n\r\n this.getItemByPropValue = function (prop, value, parentType, arr) {\r\n arr = arr || this.data.Pages;\r\n return arr.findInNestedObjectsRecursively(prop, value, \"Children\", \"PageType\", parentType);\r\n };\r\n\r\n this.getFirstPage = function (pages, parentPageType) {\r\n var firstPage = null;\r\n for (var i = 0, l = pages.length, page; i < l; i++) {\r\n page = pages[i];\r\n firstPage = page.PageType === parentPageType ? this.getFirstPage(page.Children, parentPageType) : page;\r\n\r\n if (firstPage) {\r\n break;\r\n }\r\n }\r\n\r\n return firstPage;\r\n };\r\n\r\n this.normalizeToWorkbookPageDtoArray = function (array) {\r\n var result = [];\r\n var pages = array.slice();\r\n\r\n for (var i = 0; i < pages.length; i++) {\r\n var page = pages[i];\r\n if (page.PageAssetId) {\r\n page.ContentId = page.PageAssetId;\r\n delete page.PageAssetId;\r\n }\r\n result.push(page);\r\n }\r\n\r\n return result;\r\n };\r\n\r\n this.addStandardsOverview = function () {\r\n const dto = {\r\n PageTitle: multiLanguageService.getString(\"labels.builder.standards_overview.title\"),\r\n PageType: ASSET_CONSTANTS.SPECIAL_TYPES.STANDARDS_OVERVIEW,\r\n PageIcon: \"standardsoverview\"\r\n };\r\n\r\n const item = new dtoFactory.FormPageDto(dto);\r\n\r\n this.data.Pages.unshift(item);\r\n };\r\n\r\n this.addPlaceholder = function (dto, nestId) {\r\n var parent;\r\n var deferred = $q.defer();\r\n var item = new dtoFactory.FormPageDto(dto);\r\n // tslint:disable-next-line:triple-equals\r\n if (item.PageTitle == \"\" || item.PageTitle === undefined || item.PageTitle === null) {\r\n switch (item.PageType) {\r\n case \"WebfolioPage\":\r\n item.PageTitle = multiLanguageService.getString(\"labels.navigation.new_page_placeholder\");\r\n break;\r\n case \"Blog\":\r\n item.PageTitle = multiLanguageService.getString(\"labels.navigation.new_blog_placeholder\");\r\n break;\r\n case \"AssetCollectionWrapper\":\r\n item.PageTitle = multiLanguageService.getString(\"labels.navigation.new_collection_placeholder\");\r\n break;\r\n case \"ActivityLog\":\r\n item.PageTitle = multiLanguageService.getString(\"labels.navigation.new_log_placeholder\");\r\n break;\r\n default:\r\n item.PageTitle = multiLanguageService.getString(\"labels.navigation.new_page\");\r\n break;\r\n }\r\n }\r\n if (nestId) {\r\n parent = this.get(nestId);\r\n item.PagePosition = parent.Children.length;\r\n parent.Children.push(item);\r\n } else {\r\n this.data.Pages.push(item);\r\n }\r\n\r\n var currentRevision = this.data.Revision;\r\n\r\n this.reviseData();\r\n\r\n if (this.save()) {\r\n deferred.resolve(item.PageId);\r\n } else {\r\n this.data.Revision = currentRevision;\r\n if (nestId !== undefined) {\r\n parent.Children.splice(parent.Children.length - 1, 1);\r\n } else {\r\n this.data.Pages.splice(this.data.Pages.length - 1, 1);\r\n }\r\n deferred.reject();\r\n }\r\n\r\n return deferred.promise;\r\n };\r\n\r\n // TODO: (abstract later) This is copy from WebfolioManager\r\n this.getTopLevelInitialPageFromArray = function (array) {\r\n array = array || this.data.Pages;\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i].PageType !== \"Webfolio\" && array[i].PageType !== \"WorkBook\") {\r\n return array[i];\r\n }\r\n }\r\n\r\n for (var n = 0; n < array.length; n++) {\r\n if (array[n].Children.length > 0) {\r\n var foundData = this.getTopLevelInitialPageFromArray(array[n].Children);\r\n if (foundData) {\r\n return foundData;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n // TODO: (abstract later) This is copy from WebfolioManager\r\n this.add = function (dto, skipRevision) {\r\n var deferred = $q.defer();\r\n var item = dtoFactory.create(dto);\r\n item.PagePosition = this.data.Pages.length;\r\n this.data.Pages.push(item);\r\n // tslint:disable-next-line:triple-equals\r\n if (item.PageTitle == \"\" || item.PageTitle === undefined || item.PageTitle === null) {\r\n item.PageTitle = multiLanguageService.getString(\"labels.navigation.new_page\");\r\n }\r\n\r\n var currentRevision = this.data.Revision;\r\n\r\n // If saved then return IDs, else revert all changes\r\n if (!skipRevision) {\r\n this.reviseData();\r\n }\r\n if (this.save()) {\r\n //return item.PageId;\r\n deferred.resolve(item.PageId);\r\n } else {\r\n this.data.Revision = currentRevision;\r\n this.data.Pages.splice(this.data.Pages.length - 1, 1);\r\n //return null;\r\n deferred.reject();\r\n }\r\n\r\n return deferred.promise;\r\n };\r\n\r\n // TODO: (abstract later) This is copy from WebfolioManager\r\n var pushPageIdsIntoArray = function (arrayToLoop, arrayToPushInto, check_types) {\r\n for (var i = 0; i < arrayToLoop.length; i++) {\r\n if (check_types) {\r\n if (arrayToLoop[i].PageType.toLowerCase() !== \"workbook\") {\r\n arrayToPushInto.push(arrayToLoop[i].PageAssetId);\r\n }\r\n } else {\r\n arrayToPushInto.push(arrayToLoop[i].PageAssetId);\r\n }\r\n if (arrayToLoop[i].Children.length > 0) {\r\n pushPageIdsIntoArray(arrayToLoop[i].Children, arrayToPushInto, check_types);\r\n }\r\n }\r\n };\r\n\r\n this.getExcludeIds = function () {\r\n var allWorkbooks = $filter(\"filter\")(this.data.Pages, { PageType: \"WorkBook\" });\r\n return allWorkbooks.getValuesFromNestedKeys(\"ContentId\");\r\n };\r\n\r\n // TODO: (abstract later) This is copy from WebfolioManager\r\n this.getAllIds = function (startingId, check_types) {\r\n var array = [];\r\n // tslint:disable-next-line:triple-equals\r\n if (startingId === undefined || startingId === null || startingId == \"\") {\r\n startingId = dataManagerService.primary_id;\r\n }\r\n array.push(startingId);\r\n pushPageIdsIntoArray(dataManagerService.dtos[startingId].data.Pages, array, check_types);\r\n return array;\r\n };\r\n\r\n // TODO: (abstract later) This is copy from WebfolioManager\r\n this.addNested = function (dto, parentId) {\r\n var deferred = $q.defer();\r\n var item = dtoFactory.create(dto);\r\n var parent = this.get(parentId);\r\n item.PagePosition = parent.Children.length;\r\n parent.Children.push(item);\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (item.PageTitle == \"\" || item.PageTitle === undefined || item.PageTitle === null) {\r\n item.PageTitle = multiLanguageService.getString(\"labels.navigation.new_page\");\r\n }\r\n\r\n var currentRevision = this.data.Revision;\r\n\r\n // If saved then return IDs, else revert all changes\r\n this.reviseData();\r\n if (this.save()) {\r\n deferred.resolve(item.PageId);\r\n } else {\r\n this.data.Revision = currentRevision;\r\n parent.Children.splice(parent.Children.length - 1, 1);\r\n deferred.reject();\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n this.basicRemove = function (id, array) {\r\n var list = array.slice(),\r\n foundItem = this.get(id);\r\n\r\n list.splice(list.indexOf(foundItem), 1); // delete page\r\n\r\n return list;\r\n };\r\n\r\n this.remove = function (id) {\r\n const deferred = $q.defer();\r\n const foundItem = this.get(id, true);\r\n const dataToRemoveFrom = foundItem.parents.parent ? foundItem.parents.parent.Children : foundItem.parents;\r\n const itemToRemove = foundItem.page;\r\n\r\n // remove if true\r\n if (helpers.isNotEmptyArray(dataToRemoveFrom) && itemToRemove) {\r\n if (dataToRemoveFrom.length === 1 && foundItem.parents.parent) {\r\n return this.remove(foundItem.parents.parent.PageId);\r\n } else {\r\n dataToRemoveFrom.splice(dataToRemoveFrom.indexOf(itemToRemove), 1); // delete page\r\n }\r\n } else {\r\n deferred.reject(PAGE_ERROR.NO_PAGES);\r\n }\r\n\r\n this.reviseData();\r\n if (this.save()) {\r\n deferred.resolve();\r\n } else {\r\n deferred.reject();\r\n }\r\n\r\n return deferred.promise;\r\n };\r\n\r\n // TODO: (abstract later) This is copy from WebfolioManager\r\n this.findClosestPage = function (originalIndex, array, isRootLevelPage) {\r\n var closestIndex = originalIndex;\r\n var closestIndexTemp;\r\n var initialPage;\r\n var canContainChildren = [\"webfolio\", \"workbook\", \"workbookresponse\"];\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (array.length == 1) {\r\n return false;\r\n }\r\n\r\n closestIndexTemp = closestIndex - 1;\r\n while (closestIndexTemp >= 0) {\r\n if (canContainChildren.indexOf(array[closestIndexTemp].PageType.toLowerCase()) < 0) {\r\n return array[closestIndexTemp];\r\n } else if (isRootLevelPage) {\r\n initialPage = this.getTopLevelInitialPageFromArray(array[closestIndexTemp].Children);\r\n if (initialPage) {\r\n return initialPage;\r\n }\r\n }\r\n closestIndexTemp--;\r\n }\r\n\r\n closestIndexTemp = closestIndex + 1;\r\n while (closestIndexTemp < array.length) {\r\n if (canContainChildren.indexOf(array[closestIndexTemp].PageType.toLowerCase()) < 0) {\r\n return array[closestIndexTemp];\r\n } else if (isRootLevelPage) {\r\n initialPage = this.getTopLevelInitialPageFromArray(array[closestIndexTemp].Children);\r\n if (initialPage) {\r\n return initialPage;\r\n }\r\n }\r\n closestIndexTemp++;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n // TODO: (abstract later) This is copy from WebfolioManager\r\n this.findClosest = function (id) {\r\n var foundData = this.get(id, true);\r\n\r\n if (foundData === -1) {\r\n return foundData;\r\n }\r\n\r\n var parentId = foundData.parents.parent ? foundData.parents.parent.PageId : null;\r\n var isRootLevelPage = !parentId,\r\n originalIndex,\r\n closest;\r\n\r\n foundData.parents = foundData.parents.parent ? foundData.parents.parent.Children : foundData.parents;\r\n\r\n // get current (page that going to be removed) page index in data array\r\n originalIndex = foundData.parents.indexOf(foundData.page);\r\n\r\n // find closest to originalIndex page\r\n closest = this.findClosestPage(originalIndex, foundData.parents, isRootLevelPage);\r\n\r\n // if page can't be found in local array, then take parent array.\r\n if (!closest && parentId) {\r\n return this.findClosest(parentId);\r\n }\r\n\r\n return closest;\r\n };\r\n\r\n // TODO: (abstract later) This is copy from WebfolioManager\r\n function recursiveFindById(id, array, getParent, checkRootLevelOnly, originalObjs) {\r\n var searchableArray = [];\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i].PageId === id) {\r\n return getParent ? { parents: originalObjs || array, page: array[i] } : array[i];\r\n } else if (array[i].Children && array[i].Children.length > 0) {\r\n searchableArray.push(array[i]);\r\n }\r\n\r\n if (i === array.length - 1 && !checkRootLevelOnly) {\r\n for (var n = 0; n < searchableArray.length; n++) {\r\n var recursiveData = recursiveFindById(id, searchableArray[n].Children, getParent, false, {\r\n parent: searchableArray[n],\r\n rootParent: (originalObjs && originalObjs.rootParent) || searchableArray[n]\r\n });\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (recursiveData && recursiveData != -1) {\r\n return recursiveData;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n // TODO: (abstract later) This is copy from WebfolioManager\r\n this.recursiveGetIdsTrace = function (opts) {\r\n var searchableArray = [];\r\n var id = opts.id;\r\n var array = opts.array || [];\r\n var idsTrace = opts.idsTrace || [];\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i].PageId === id) {\r\n idsTrace.unshift(array[i].PageId);\r\n break;\r\n } else if (array[i].Children && array[i].Children.length > 0) {\r\n searchableArray.push(array[i]);\r\n }\r\n\r\n if (i === array.length - 1) {\r\n for (var n = 0; n < searchableArray.length; n++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (recursiveFindById(id, searchableArray[n].Children) != -1) {\r\n idsTrace.unshift(searchableArray[n].PageId);\r\n\r\n this.recursiveGetIdsTrace({\r\n id: id,\r\n array: searchableArray[n].Children,\r\n idsTrace: idsTrace\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n return idsTrace;\r\n };\r\n\r\n // TODO: (abstract later) This is copy from WebfolioManager\r\n this.get = function (id, get_parent, array) {\r\n array = array || this.data.Pages;\r\n\r\n var foundData = recursiveFindById(id, array, get_parent);\r\n\r\n if (foundData === -1) {\r\n return null;\r\n }\r\n\r\n if (foundData.parents && foundData.parents.parent) {\r\n foundData.isRootLevel = this.isRootLevel(foundData.parents.parent.PageId, array);\r\n }\r\n\r\n return foundData;\r\n };\r\n\r\n // TODO: (abstract later) This is copy from WebfolioManager\r\n this.update = function (id, obj) {\r\n var nav_page_item;\r\n\r\n if (id) {\r\n nav_page_item = this.get(id); // get block\r\n } else {\r\n nav_page_item = this.data; // update property on main DTO\r\n }\r\n\r\n var original_item = angular.copy(nav_page_item); // backup object\r\n var currentRevision = this.data.Revision;\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (nav_page_item != null) {\r\n helperService.updateObject(nav_page_item, obj);\r\n\r\n this.reviseData();\r\n\r\n if (this.save()) {\r\n return true;\r\n } else {\r\n helperService.updateObject(nav_page_item, original_item);\r\n this.data.Revision = currentRevision;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n this.updatePageTitle = function (id, newTitle) {\r\n const didUpdate = this.update(id, { PageTitle: newTitle });\r\n return didUpdate ? $q.resolve() : $q.reject();\r\n };\r\n\r\n this.findWorkbookPage = function (pageToFindId, workbookPages) {\r\n // tslint:disable-next-line:triple-equals\r\n if (workbookPages != null && pageToFindId != null) {\r\n for (var i = 0; i < workbookPages.length; i++) {\r\n if (workbookPages[i].PageId === pageToFindId) {\r\n return workbookPages[i];\r\n }\r\n\r\n if (workbookPages[i].PageType === \"WorkBook\" || workbookPages[i].PageType === \"WorkBookResponse\") {\r\n var nestedResult = this.findWorkbookPage(pageToFindId, workbookPages[i].Children);\r\n // tslint:disable-next-line:triple-equals\r\n if (nestedResult != null) {\r\n i = workbookPages.length; // ensure the loop stops\r\n return nestedResult;\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n //Returns a flat array of all pages within the Workbook\r\n this.getAllPages = function (pages, foundPages) {\r\n for (var i = 0, l = pages.length, page; i < l; i++) {\r\n page = pages[i];\r\n foundPages.push(page);\r\n\r\n if (page.Children.length !== 0) {\r\n this.getAllPages(page.Children, foundPages);\r\n }\r\n }\r\n return foundPages;\r\n };\r\n\r\n this.getAllContentIds = function (pages) {\r\n const ids = new Set();\r\n this.getAllPages(pages, []).forEach((page) => {\r\n if (!ids.has(page.ContentId)) {\r\n ids.add(page.ContentId);\r\n }\r\n });\r\n\r\n return Array.from(ids);\r\n };\r\n\r\n this.getIdsTrace = function (id, array) {\r\n return this.recursiveGetIdsTrace({\r\n id: id,\r\n array: array || this.data.Pages\r\n });\r\n };\r\n\r\n this.removeWorkbookBuilderFromStorage = function () {\r\n var asset_id = this.local_storage_reference;\r\n var foundPages = [];\r\n if (!this.data || this.data.Pages.length <= 0) {\r\n return;\r\n }\r\n // find all pages to remove\r\n var assetIdsToRemove = this.getAllPages(this.data.Pages, foundPages);\r\n assetIdsToRemove.push(asset_id);\r\n angular.forEach(foundPages, function (page) {\r\n dataManagerService.destroy(page.ContentId); // remove item\r\n });\r\n };\r\n\r\n //TODO: Saving.\r\n this.saveWorkbookBuilderToServer = function (assetId) {\r\n if (this.data.AssetFolder === \"Invisible\") {\r\n this.data.AssetFolder = \"Main\";\r\n }\r\n\r\n this.reviseData();\r\n this.save();\r\n\r\n var self = this,\r\n deferred = $q.defer();\r\n\r\n dataManagerService.checkBeforeSave(assetId, \"WorkbookBuilder\").then(\r\n function () {\r\n //Save pages\r\n var promises = this.savePages();\r\n\r\n // check revision number hasn't been set to NaN\r\n if (isNaN(self.data.Revision)) {\r\n self.data.Revision = -1;\r\n }\r\n\r\n //Save workbook and any of its pages without a DataManager\r\n recoveryLogger.step(\"save\", \"Saving Workbook\");\r\n const promise = AssetEndpointService.saveOrUpdate({ model: self.data });\r\n promises.push(promise.then(updateBaseVersion));\r\n\r\n deferred.resolve({ promises: $q.all(promises) });\r\n }.bind(this)\r\n );\r\n return deferred.promise;\r\n };\r\n\r\n this.savePages = function () {\r\n const promises = [];\r\n const contentIds = this.getAllContentIds(this.data.Pages);\r\n\r\n for (let shortId of contentIds) {\r\n const manager = dataManagerService.dtos[shortId];\r\n\r\n //Manually save page in workbook where it has a DataManager (e.g. TemplateBuilder)\r\n if (manager && manager.is_saved === false) {\r\n this.reviseData();\r\n this.save(shortId, manager.data);\r\n\r\n // check revision number hasn't been set to NaN\r\n if (isNaN(manager.data.Revision)) {\r\n manager.data.Revision = -1;\r\n }\r\n\r\n $http.defaults.withCredentials = true;\r\n const promise = AssetEndpointService.saveOrUpdate({ model: manager.data });\r\n promises.push(promise.then(updateBaseVersion));\r\n }\r\n }\r\n\r\n return promises;\r\n };\r\n\r\n /**\r\n @param {{pageToMoveId: string, beforePageId: null | string}} pageMoveData\r\n @return {boolean}\r\n */\r\n this.movePage = (pageMoveData) => {\r\n const pageToMoveDetails = this.get(pageMoveData.pageToMoveId, true, this.data.Pages);\r\n if (pageToMoveDetails === null) {\r\n return false;\r\n }\r\n\r\n const removeResult = this.remove(pageMoveData.pageToMoveId, false);\r\n\r\n if (!removeResult) {\r\n return false;\r\n }\r\n\r\n const siblings = Array.isArray(pageToMoveDetails.parents) ? pageToMoveDetails.parents : pageToMoveDetails.parents.parent.Children;\r\n\r\n const hasPageMovedToEnd = pageMoveData.beforePageId === null;\r\n const newPagesIndex = hasPageMovedToEnd ? siblings.length : siblings.findIndex(byPageId(pageMoveData.beforePageId));\r\n siblings.splice(newPagesIndex, 0, pageToMoveDetails.page);\r\n\r\n this.reviseData();\r\n this.save();\r\n\r\n return true;\r\n };\r\n };\r\n\r\n /**\r\n * -------------------------------------------------------\r\n * Helpers\r\n * -------------------------------------------------------\r\n */\r\n var replaceIdsRecursive = function (obj, specialKeys) {\r\n var keys = Object.keys(obj),\r\n key = \"\",\r\n item = null;\r\n for (var i = 0, l = keys.length; i < l; i++) {\r\n key = keys[i];\r\n if (obj.hasOwnProperty(key) && obj[key]) {\r\n if (specialKeys.indexOf(key) !== -1) {\r\n obj[key] = helperService.guid();\r\n } else {\r\n item = obj[key];\r\n checkForNestedMutable(item, function (nestedItem) {\r\n replaceIdsRecursive(nestedItem, specialKeys);\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n var checkForNestedMutable = function (item, callback) {\r\n if (item.constructor === Object) {\r\n callback(item);\r\n } else if (item.constructor === Array) {\r\n item.forEach(function (nestedValue) {\r\n if (nestedValue) {\r\n checkForNestedMutable(nestedValue, callback);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const updateBaseVersion = function (response) {\r\n if (response.data !== undefined) {\r\n const manager = dataManagerService.getDto(response.data.AssetId);\r\n if (manager !== null && manager !== undefined) {\r\n manager.data.BaseVersion = response.data.Asset.Revision;\r\n }\r\n }\r\n return response;\r\n };\r\n\r\n const cleanupStorageAfterSave = (response) => {\r\n if (response.data.MessageType === \"Success\") {\r\n dataManagerService.destroy(response.data.AssetId);\r\n }\r\n\r\n return response;\r\n };\r\n\r\n const handleProcurePageError = (rejection, containerAssetId, pageId, pagedManager) => {\r\n if (rejection.status === 404) {\r\n const page = pagedManager.get(pageId);\r\n\r\n if (page !== -1) {\r\n const forwardRejection = () => $q.reject(rejection);\r\n return dataManagerService\r\n .saveOrphanedAsset(determinePageAssetId(page))\r\n .then(() => dataManagerService.saveViaAssetId(containerAssetId))\r\n .then(forwardRejection, forwardRejection);\r\n }\r\n }\r\n\r\n return $q.reject(rejection);\r\n };\r\n\r\n helpers.extendClass(WebfolioManager, DataManager);\r\n helpers.extendClass(WorkbookManager, DataManager);\r\n helpers.extendClass(FormManager, DataManager);\r\n helpers.extendClass(CollectionWrapperManager, DataManager);\r\n helpers.extendClass(CvManager, DataManager);\r\n helpers.extendClass(ActivityLogManager, DataManager);\r\n helpers.extendClass(BlogManager, DataManager);\r\n helpers.extendClass(WorkbookBuilderManager, WorkbookManager);\r\n\r\n helpers.extendClass(PageManager, BuilderManager);\r\n helpers.extendClass(TemplateBuilderManager, BuilderManager);\r\n helpers.extendClass(PostManager, BuilderManager);\r\n\r\n localChangesResolver.dataService.loadFromPersistentObjStore = dataManagerService.loadFromPersistentObjStore.bind(dataManagerService);\r\n localChangesResolver.dataService.destroy = dataManagerService.destroy.bind(dataManagerService);\r\n localChangesResolver.dataService.decrypt = dataManagerService.decrypt.bind(dataManagerService);\r\n localChangesResolver.dataService.clear = dataManagerService.cleanupStorageOfAssetId.bind(dataManagerService);\r\n localChangesResolver.dataService.getDto = dataManagerService.getDto;\r\n localChangesResolver.dataService.checkIfSaved = dataManagerService.checkIfSaved;\r\n return dataManagerService;\r\n }\r\n]);\r\n","import { withoutDuplicateValues } from \"./WithoutDuplicateValues.function\";\r\n\r\nexport function withoutDuplicatePageResponsesFactory() {\r\n return withoutDuplicateValues((page) => page.UserResponseId);\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport { STYLE_OPTIONS } from \"../../constants/styleOptions.constants\";\r\nimport \"./helperService\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../tables/services/tableDataHelper.service\";\r\nimport \"../tables/services/tableConfig.factory\";\r\nimport \"../tables/services/tableDtoHelper.service\";\r\nimport \"../genericBlockInputOptionsList/services/blockInputOptionsHelper.service\";\r\n\r\nangularAMD.factory(\"dtoFactory\", [\r\n \"$sce\",\r\n \"helperService\",\r\n \"baseUrlsFactory\",\r\n \"multiLanguageService\",\r\n \"tableDataHelper\",\r\n \"tableConfig\",\r\n \"tableDtoHelper\",\r\n \"BlockInputOptionsHelper\",\r\n function ($sce, helperService, baseUrlsFactory, multiLanguageService, tableDataHelper, tableConfig, tableDtoHelper, BlockInputOptionsHelper) {\r\n /**\r\n * List of DTO types\r\n * @type {{WEBFOLIO_PAGE: string, TXT_BLOCK: string, MEDIA_BLOCK: string}}\r\n */\r\n var DTO_TYPES = {\r\n ACTIVITY_LOG: \"ActivityLog\",\r\n BLOG: \"Blog\",\r\n COLLECTION: \"AssetCollection\",\r\n COLLECTION_WRAPPER: \"AssetCollectionWrapper\",\r\n CV: \"CV\",\r\n FORM: \"Form\",\r\n FORM_RESPONSE: \"FormResponse\",\r\n POST: \"Post\",\r\n WEBFOLIO: \"Webfolio\",\r\n WEBFOLIO_PAGE: \"WebfolioPage\",\r\n WORKBOOK_RESPONSE: \"WorkBookResponse\",\r\n WORKBOOK_PAGE: \"WorkBookPageResponse\",\r\n TEMPLATE_BUILDER: \"TemplateBuilder\",\r\n WORKBOOK_BUILDER: \"WorkbookBuilder\",\r\n WORKBOOK: \"WorkBook\",\r\n\r\n TXT_BLOCK: \"block-text\",\r\n IMAGE_BLOCK: \"block-image\",\r\n VIDEO_BLOCK: \"block-video\",\r\n AUDIO_BLOCK: \"block-audio\",\r\n HERO_BLOCK: \"block-hero\",\r\n EMBED_BLOCK: \"block-embed\",\r\n EMBED_USER_BLOCK: \"block-embed-user\",\r\n QUOTE_BLOCK: \"block-quote\",\r\n BADGE_BLOCK: \"block-badge\",\r\n\r\n CONTENT_SECTION: \"block-content-section\",\r\n SINGLE_LINE_BLOCK: \"block-single-line\",\r\n MULTI_LINE_BLOCK: \"block-multi-line\",\r\n TITLE_SINGLE_LINE_BLOCK: \"block-title-single-line\",\r\n RADIO_BUTTON_BLOCK: \"block-radio-button\",\r\n CHECKBOX_BLOCK: \"block-checkbox\",\r\n BINARY_BLOCK: \"block-binary\",\r\n DROP_DOWN_BLOCK: \"block-drop-down\",\r\n\r\n GENERIC_TABLE_BLOCK: \"block-generic-table\",\r\n\r\n DATE_PICKER_BLOCK: \"block-date-picker\",\r\n DATE_DIGITAL_SIGNATURE: \"block-digital-signature\",\r\n MEDIA_PICKER_BLOCK: \"block-media-picker\",\r\n DYNAMIC_ELEMENT: \"block-dynamic-element\",\r\n UNKNOWN_ELEMENT: \"block-unknown\",\r\n NUMERIC_BLOCK: \"block-numeric\",\r\n LIKERT_BLOCK: \"block-likert\",\r\n EVIDENCE_BLOCK: \"block-capability-evidence\",\r\n\r\n HINT_TEXT_BLOCK: \"block-hint-text\",\r\n HINT_IMAGE_BLOCK: \"block-hint-image\",\r\n HINT_VIDEO_BLOCK: \"block-hint-video\",\r\n HINT_AUDIO_BLOCK: \"block-hint-audio\",\r\n\r\n CAPABILITY_RATING: \"block-rating-capability\",\r\n HORIZONTAL_RULE_BLOCK: \"block-horizontal-rule\",\r\n CAPABILITY_RADIO_BUTTON_BLOCK: \"block-capability-radio-button\",\r\n CAPABILITY_BINARY: \"block-binary-capability\",\r\n\r\n STANDARDS_SELECTION: \"block-standards-selection\",\r\n STANDARD_BLOCK: \"block-standard\"\r\n };\r\n\r\n /**\r\n * List of section types\r\n * @type {{rowSection: string, blockText: string, blockMedia: string, blockQuote: string, blockHero: string}}\r\n */\r\n var SECTION_TYPES = {\r\n rowSection: \"ContentSectionRow\",\r\n BuilderFormElementRow: \"BuilderFormElementRow\",\r\n blockText: \"ContentSectionText\",\r\n blockMedia: \"ContentSectionMedia\",\r\n blockQuote: \"ContentSectionQuote\",\r\n blockHero: \"ContentSectionHero\",\r\n blockEmbed: \"ContentSectionEmbed\",\r\n \"block-embed\": \"ContentSectionEmbed\",\r\n BuilderHintEmbed: \"BuilderHintEmbed\",\r\n BuilderUserEmbed: \"BuilderEmbed\",\r\n blockBadge: \"ContentSectionBadge\",\r\n ContentSection: \"BuilderContentSection\",\r\n BuilderSingleLineTextBox: \"BuilderSingleLineTextBox\",\r\n BuilderMultiLineTextBox: \"BuilderMultiLineTextBox\",\r\n BuilderOptionsListRadioButtons: \"BuilderOptionsList-RadioButtons\",\r\n BuilderBinaryAnswerInput: \"BuilderBinaryAnswerInput\",\r\n BuilderTitleSingleLineTextBox: \"BuilderTitleSingleLineTextBox\",\r\n BuilderOptionsListCheckboxes: \"BuilderOptionsList-Checkboxes\",\r\n BuilderOptionsListDropDown: \"BuilderOptionsList-DropDown\",\r\n GenericBuilderTable: \"GenericBuilderTable\",\r\n BuilderDatePickerInput: \"BuilderDatePickerInput\",\r\n BuilderFormSignatureElement: \"BuilderFormSignatureElement\",\r\n BuilderFormUserMediaPicker: \"BuilderFormUserMediaPicker\",\r\n BuilderDynamicElement: \"BuilderDynamicElement\",\r\n BuilderRangeInputStandard: \"BuilderRangeInput-Standard\",\r\n BuilderRangeInputLikert: \"BuilderRangeInput-Likert\",\r\n BuilderCapabilityEvidenceOnly: \"BuilderCapabilityEvidenceOnly\",\r\n BuilderHintText: \"BuilderHintText\",\r\n BuilderHintImage: \"BuilderHintImage\",\r\n \"BuilderCapabilityRangeInput-Standard\": \"BuilderCapabilityRangeInput-Standard\",\r\n BuilderHintVideo: \"BuilderHintVideo\",\r\n BuilderHintAudio: \"BuilderHintAudio\",\r\n BuilderHorizontalRule: \"BuilderHorizontalRule\",\r\n \"BuilderCapabilityOptionList-RadioButtons\": \"BuilderCapabilityOptionList-RadioButtons\",\r\n BuilderCapabilityBinaryAnswerInput: \"BuilderCapabilityBinaryAnswerInput\",\r\n BuilderUnknown: \"BuilderUnknown\",\r\n BuilderFormBasicContainer: \"BuilderFormBasicContainer\",\r\n BuilderStandards: \"BuilderStandards\",\r\n BuilderStandardsSelection: \"BuilderStandardsSelection\"\r\n };\r\n\r\n var MEDIA_TYPES = {\r\n \"block-image\": \"image\",\r\n \"block-video\": \"video\",\r\n \"block-audio\": \"audio\"\r\n };\r\n\r\n /**\r\n * Base section DTO constructor\r\n * @param dto\r\n * @constructor\r\n */\r\n var SectionDtoClass = function (dto) {\r\n this.Id = helperService.guid();\r\n this.OrderNo = 0;\r\n this.SectionType = SECTION_TYPES[dto.SectionType];\r\n this.SectionOptions = [];\r\n this.StyleOptions = [];\r\n this.AllowSideBySide = dto.AllowSideBySide || false;\r\n this.EditAvailableFor = dto.EditAvailableFor || [];\r\n };\r\n\r\n var AssetDtoBase = function (dto) {\r\n this.Id = dto.Id || helperService.guid();\r\n this.Title = dto.Title || \"\";\r\n this.Description = dto.Description || \"\";\r\n this.MainType = dto.MainType || \"\";\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || null;\r\n this.Authors = dto.Authors || [];\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || null;\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\";\r\n this.Revision = dto.Revision || 0;\r\n this.Locked = dto.Locked || false;\r\n };\r\n\r\n var dtoFactory = {\r\n /**\r\n * @param dto\r\n * @returns {*}\r\n */\r\n create: function (dto) {\r\n // All block names, that we pass via dto are simple strings that match block directive name.\r\n // This doesn't work with table because we have 'block-generic-table' block, which has other\r\n // table types. That's why in blockListFactory we have something like this strings like:\r\n // 'block-generic-table__BuilderSingleCells'. So everything after '__' is considered as\r\n // block sub type.\r\n if (dto && dto.MainType) {\r\n var subType,\r\n mainTypeSplit = dto.MainType.split(\"__\");\r\n dto.MainType = mainTypeSplit[0];\r\n subType = mainTypeSplit[1];\r\n }\r\n\r\n switch (dto.MainType) {\r\n case DTO_TYPES.ACTIVITY_LOG:\r\n return new this.ActivityLogDto(dto);\r\n case DTO_TYPES.BLOG:\r\n return new this.BlogDto(dto);\r\n case DTO_TYPES.COLLECTION:\r\n return new this.CollectionDto(dto);\r\n case DTO_TYPES.COLLECTION_WRAPPER:\r\n return new this.CollectionWrapperDto(dto);\r\n case DTO_TYPES.CV:\r\n return new this.CvDto(dto);\r\n case DTO_TYPES.FORM:\r\n return new this.FormDto(dto);\r\n case DTO_TYPES.FORM_RESPONSE:\r\n return new this.FormResponseDto(dto);\r\n case DTO_TYPES.POST:\r\n return new this.PostDto(dto);\r\n case DTO_TYPES.WEBFOLIO:\r\n return new this.WebfolioDto(dto);\r\n case DTO_TYPES.WEBFOLIO_PAGE:\r\n return new this.WebfolioPageDto(dto);\r\n case DTO_TYPES.WORKBOOK_PAGE:\r\n return new this.WorkbookPageDto(dto);\r\n case DTO_TYPES.WORKBOOK_RESPONSE:\r\n return new this.WorkbookResponseDto(dto);\r\n case DTO_TYPES.TEMPLATE_BUILDER:\r\n return new this.TemplateBuilderDto(dto);\r\n case DTO_TYPES.WORKBOOK_BUILDER:\r\n case DTO_TYPES.WORKBOOK:\r\n return new this.WorkbookBuilderDto(dto);\r\n case DTO_TYPES.TXT_BLOCK:\r\n return new this.TxtBlockDto(dto);\r\n case DTO_TYPES.IMAGE_BLOCK:\r\n return new this.MediaBlockDto(dto);\r\n case DTO_TYPES.VIDEO_BLOCK:\r\n return new this.MediaBlockDto(dto);\r\n case DTO_TYPES.AUDIO_BLOCK:\r\n return new this.MediaBlockDto(dto);\r\n case DTO_TYPES.HERO_BLOCK:\r\n return new this.HeroBlockDto(dto);\r\n case DTO_TYPES.EMBED_BLOCK:\r\n return new this.EmbedBlockDto(dto, subType, true);\r\n case DTO_TYPES.EMBED_USER_BLOCK:\r\n return new this.EmbedBlockDto(dto, subType, false);\r\n case DTO_TYPES.QUOTE_BLOCK:\r\n return new this.QuoteBlockDto(dto);\r\n case DTO_TYPES.BADGE_BLOCK:\r\n return new this.BadgeBlockDto();\r\n case DTO_TYPES.SINGLE_LINE_BLOCK:\r\n return new this.SingleLineBlockDto(dto);\r\n case DTO_TYPES.MULTI_LINE_BLOCK:\r\n return new this.MultiLineBlockDto(dto);\r\n case DTO_TYPES.RADIO_BUTTON_BLOCK:\r\n return new this.RadioButtonBlockDto(dto);\r\n case DTO_TYPES.CHECKBOX_BLOCK:\r\n return new this.CheckboxBlockDto(dto);\r\n case DTO_TYPES.DROP_DOWN_BLOCK:\r\n return new this.DropDownBlockDto(dto);\r\n case DTO_TYPES.DATE_PICKER_BLOCK:\r\n return new this.DatePickerBlockDto(dto);\r\n case DTO_TYPES.DATE_DIGITAL_SIGNATURE:\r\n return new this.DigitalSignatureBlockDto(dto);\r\n case DTO_TYPES.MEDIA_PICKER_BLOCK:\r\n return new this.MediaPickerBlockDto(dto);\r\n case DTO_TYPES.TITLE_SINGLE_LINE_BLOCK:\r\n return new this.TitleSingleLineBlockDto(dto);\r\n case DTO_TYPES.BINARY_BLOCK:\r\n return new this.BinaryBlockDto(dto);\r\n case DTO_TYPES.GENERIC_TABLE_BLOCK:\r\n return this.GenericTableBlock(subType);\r\n case DTO_TYPES.NUMERIC_BLOCK:\r\n return new this.NumericBlockDto(dto);\r\n case DTO_TYPES.LIKERT_BLOCK:\r\n return new this.LikertBlockDto(dto);\r\n case DTO_TYPES.EVIDENCE_BLOCK:\r\n return new this.EvidenceBlockDto(dto);\r\n case DTO_TYPES.HINT_IMAGE_BLOCK:\r\n return new this.HintImageBlockDto(dto);\r\n case DTO_TYPES.HINT_VIDEO_BLOCK:\r\n return new this.HintVideoBlockDto(dto);\r\n case DTO_TYPES.HINT_AUDIO_BLOCK:\r\n return new this.HintAudioBlockDto(dto);\r\n case DTO_TYPES.HINT_TEXT_BLOCK:\r\n return new this.HintTextBlockDto(dto);\r\n case DTO_TYPES.CAPABILITY_RATING:\r\n return new this.CapabilityRatingBlockDto(dto);\r\n case DTO_TYPES.HORIZONTAL_RULE_BLOCK:\r\n return new this.HorizontalRuleBlockDto();\r\n case DTO_TYPES.CAPABILITY_RADIO_BUTTON_BLOCK:\r\n return new this.CapabilityRadioBlockDto(dto);\r\n case DTO_TYPES.CAPABILITY_BINARY:\r\n return new this.CapabilityBinaryBlockDto(dto);\r\n case DTO_TYPES.DYNAMIC_ELEMENT:\r\n return new this.DynamicElementBlockDto();\r\n case DTO_TYPES.STANDARD_BLOCK:\r\n return new this.StandardBlockDto();\r\n case DTO_TYPES.STANDARDS_SELECTION:\r\n return new this.StandardsSelectionElementDto(dto);\r\n case DTO_TYPES.CONTENT_SECTION:\r\n return new this.ContentSectionBlockDto(dto);\r\n default:\r\n if (dto.ContentId !== undefined) {\r\n return new this.FormPageDto(dto);\r\n } else if (dto.PageAssetId !== undefined) {\r\n return new this.PageDto(dto);\r\n } else {\r\n throw new Error(\"Oh oh! I don't know [\" + dto.MainType + \"] type of DTO. You can check type that you pass against types in 'dtoFactory'.\");\r\n }\r\n }\r\n },\r\n\r\n templateCategories: [\r\n { Key: \"\", Label: multiLanguageService.getString(\"labels.toolbar.select_a_category\") },\r\n { Key: \"Plan\", Label: multiLanguageService.getString(\"labels.toolbar.plan\") },\r\n { Key: \"Experience\", Label: multiLanguageService.getString(\"labels.toolbar.experience\") },\r\n { Key: \"Reflection\", Label: multiLanguageService.getString(\"labels.toolbar.reflection\") },\r\n { Key: \"Talent\", Label: multiLanguageService.getString(\"labels.toolbar.talent\") },\r\n { Key: \"Worksheet\", Label: multiLanguageService.getString(\"labels.toolbar.worksheet\") },\r\n { Key: \"Feedback\", Label: multiLanguageService.getString(\"labels.toolbar.feedback\") }\r\n ],\r\n\r\n getTemplateCategories: function () {\r\n return this.templateCategories.slice();\r\n },\r\n\r\n getWorkbookTemplateCategories: function () {\r\n var categories = this.templateCategories.slice(),\r\n exclude = [\"\", \"Feedback\"];\r\n\r\n return categories.filter(function (item) {\r\n return exclude.indexOf(item.Key) === -1;\r\n });\r\n },\r\n\r\n /**\r\n * workbooks and responses\r\n */\r\n WorkbookResponseDto: function (dto) {\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || undefined;\r\n this.Authors = dto.Authors || [];\r\n this.Id = dto.Id || helperService.guid();\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || undefined;\r\n this.MainType = \"WorkBookResponse\";\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.Title = dto.Title || \"\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\"; // if nested into webfolio then \"Invisible\"\r\n this.WorkbookId = dto.WorkbookId;\r\n this.Pages = dto.Pages || [];\r\n this.Revision = dto.Revision || 0;\r\n this.BaseVersion = dto.BaseVersion || this.Revision;\r\n this.SubType = dto.WorkbookSubType;\r\n },\r\n\r\n AssessorSubmissionDto: function (dto) {\r\n this.Id = dto.Id || \"\";\r\n this.AtlasId = dto.AtlasId || \"\";\r\n this.SubmittedBy = dto.SubmittedBy || \"\";\r\n this.SubmittedOn = dto.SubmittedOn ? new Date(dto.SubmittedOn) : null;\r\n this.AssetId = dto.AssetId || \"\";\r\n this.Location = dto.Location || \"\";\r\n this.SubLocation = dto.SubLocation || \"\";\r\n this.LocationName = dto.LocationName || \"\";\r\n this.SubLocationName = dto.SubLocationName || \"\";\r\n this.LocationDescription = dto.LocationDescription || \"\";\r\n this.Url = dto.Url || \"\";\r\n this.Status = dto.Status || \"\";\r\n this.SubmittedFrom = dto.SubmittedFrom || \"\";\r\n this.RevisionDeadline = dto.RevisionDeadline ? new Date(dto.RevisionDeadline) : null;\r\n this.ServiceId = dto.ServiceId || \"\";\r\n this.LocationStatus = dto.LocationStatus || \"\";\r\n this.SelectedAssessorsEnabled = dto.SelectedAssessorsEnabled === true;\r\n this.ExternalAssessors = [];\r\n this.PreventUserFromRequestingSubmissionRemoval = dto.PreventUserFromRequestingSubmissionRemoval === true;\r\n this.LinkToSubmission = dto.LinkToSubmission;\r\n },\r\n\r\n WorkbookPageDto: function (dto) {\r\n this.UserResponseId = dto.UserResponseId;\r\n this.PageAssetId = dto.PageAssetId;\r\n this.PageId = dto.PageId;\r\n this.PagePosition = dto.PagePosition;\r\n this.PageTitle = dto.PageTitle;\r\n this.PageType = dto.PageType;\r\n this.Children = dto.Children || [];\r\n this.Revision = dto.Revision || 0;\r\n },\r\n\r\n /**\r\n * forms and responses\r\n */\r\n FormDto: function (dto) {\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || undefined;\r\n this.Authors = dto.Authors || [];\r\n this.Id = dto.Id || helperService.guid();\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || undefined;\r\n this.MainType = \"Form\";\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.Title = dto.Title || \"\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\"; // if nested into webfolio then \"Invisible\"\r\n this.Revision = dto.Revision || 0;\r\n this.BaseVersion = dto.BaseVersion || this.Revision;\r\n this.TemplateId = dto.TemplateId;\r\n this.TemplateSubType = dto.TemplateSubType;\r\n this.Elements = dto.Elements || [];\r\n },\r\n\r\n FormResponseDto: function (dto) {\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || undefined;\r\n this.Authors = dto.Authors || [];\r\n this.Id = dto.Id || helperService.guid();\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || undefined;\r\n this.MainType = \"FormResponse\";\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.Title = dto.Title || \"\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\"; // if nested into webfolio then \"Invisible\"\r\n this.Revision = dto.Revision || 0;\r\n this.BaseVersion = dto.BaseVersion || this.Revision;\r\n this.TemplateId = dto.TemplateId;\r\n this.TemplateSubType = dto.TemplateSubType;\r\n this.Elements = dto.Elements || [];\r\n this.ProgressTrackingEnabled = dto.ProgressTrackingEnabled || false; // if progress tracking was enabled on the FormDto\r\n this.ProgressTrackingComplete = dto.ProgressTrackingComplete || false;\r\n\r\n this.user_selected_me = dto.user_selected_me || false; // only used during revision decisions\r\n },\r\n\r\n /**\r\n *\r\n * @param dto\r\n * @constructor\r\n */\r\n WebfolioDto: function (dto) {\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || undefined;\r\n this.Authors = dto.Authors || [];\r\n this.Id = dto.Id || helperService.guid();\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || undefined;\r\n this.MainType = \"Webfolio\";\r\n this.Pages = dto.Pages || [];\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.Title = dto.Title || \"\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\"; // if nested into webfolio then \"Invisible\"\r\n this.Revision = dto.Revision || 0;\r\n this.BaseVersion = dto.BaseVersion || this.Revision;\r\n },\r\n\r\n PageDto: function (dto) {\r\n // TODO: remove GUID();\r\n var guid = helperService.guid();\r\n this.PageAssetId = dto.PageAssetId || guid;\r\n this.PageId = dto.PageId || guid;\r\n this.PagePosition = dto.PagePosition || 0;\r\n this.PageTitle = dto.PageTitle || \"\";\r\n this.PageType = dto.PageType || \"WebfolioPage\";\r\n this.PageIcon = this.PageType === \"Webfolio\" ? \"webfolio\" : dto.PageIcon || \"webfoliopage\";\r\n this.Children = dto.Children || [];\r\n this.PageFolder = dto.PageFolder || \"Invisible\";\r\n this.PageNavigationEditable = true;\r\n this.Revision = dto.Revision || 0;\r\n this.IsLockedOrParentLocked = dto.IsLockedOrParentLocked;\r\n },\r\n\r\n FormPageDto: function (dto) {\r\n var guid = helperService.guid();\r\n this.Children = dto.Children || [];\r\n this.CollectionCategoryOrAssetType = dto.CollectionCategoryOrAssetType || \"\";\r\n this.CollectionAssetType = dto.CollectionAssetType || \"\";\r\n this.CollectionResponsesTo = dto.CollectionResponsesTo || null;\r\n this.CollectionCreatedAfter = dto.CollectionCreatedAfter || null;\r\n this.CollectionCreatedBefore = dto.CollectionCreatedBefore || null;\r\n this.CollectionTags = dto.CollectionTags || [];\r\n this.CollectionUserCreated = dto.CollectionUserCreated || false;\r\n this.CollectionEnableSearchByDefault = dto.CollectionEnableSearchByDefault || false;\r\n this.ContentId = dto.ContentId || \"\";\r\n this.HintForUser = dto.HintForUser || \"\";\r\n this.InstructionForUser = dto.InstructionForUser || \"\";\r\n this.OrderNo = dto.OrderNo || 0;\r\n this.PageIcon = dto.PageIcon ? helperService.getWorkbookPageIcon(dto.PageIcon, true) : \"worksheet-reversed\";\r\n this.PageId = dto.PageId || guid;\r\n this.PageReleaseOnVerifiedPageId = dto.PageReleaseOnVerifiedPageId || \"\";\r\n this.PageReleaseShowFrom = dto.PageReleaseShowFrom || null;\r\n this.PageReleaseType = dto.PageReleaseType || \"AlwaysShow\";\r\n this.PageNavigationEditable = true;\r\n this.PageTitle = dto.PageTitle || \"\";\r\n this.PageType = dto.PageType || \"Form\";\r\n this.PageFolder = dto.PageFolder || \"Invisible\";\r\n this.PageDescription = dto.PageDescription || \"\";\r\n this.TargetHours = dto.TargetHours || 0;\r\n this.TargetPoints = dto.TargetPoints || 0;\r\n this.TrackingDisabledForThisPage = dto.TrackingDisabledForThisPage || false;\r\n this.MinsPtsContributionDisabled = dto.MinsPtsContributionDisabled || false;\r\n this.LockOnVerification = dto.LockOnVerification === true;\r\n },\r\n\r\n PostDto: function (dto) {\r\n this.Id = dto.Id || helperService.guid();\r\n this.Title = dto.Title || \"\";\r\n this.MainType = \"Post\";\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || undefined;\r\n this.Authors = dto.Authors || [];\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || undefined;\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\"; // \"Invisible\" if PageDTO was created\r\n this.Revision = dto.Revision || 0;\r\n this.BaseVersion = dto.BaseVersion || this.Revision;\r\n\r\n // add a banner section\r\n var bannerImage = \"Pebbles.jpg\";\r\n var subTitle = \"\";\r\n\r\n // Add text block\r\n if (dto.hasOwnProperty(\"AddDefaultBannerSection\") && dto.AddDefaultBannerSection === true) {\r\n // change it straight to false so that if the dto gets past this method again nothing will be overwritten\r\n dto.AddDefaultBannerSection = false;\r\n\r\n this.Sections = [\r\n {\r\n Id: helperService.guid(),\r\n OrderNo: 0,\r\n SectionType: \"ContentSectionRow\",\r\n SectionOptions: [{ Key: \"editable\", Value: false }],\r\n SectionIsFull: true,\r\n AllowSideBySide: false,\r\n SectionUneditable: true,\r\n StyleOptions: [\r\n { Key: \"background-color\", Value: \"transparent\", Target: \"section\" },\r\n { Key: \"width\", Value: \"section-large\", Target: \"container\" },\r\n { Key: \"block-width\", Value: 100, Target: \"container\" }\r\n ],\r\n Sections: [\r\n {\r\n Id: helperService.guid(),\r\n OrderNo: 0,\r\n SectionType: \"ContentSectionHero\",\r\n SectionOptions: [\r\n { Key: \"titleBanner\", Value: true },\r\n { Key: \"editable\", Value: false }\r\n ],\r\n StyleOptions: [\r\n { Key: \"banner-block-height\", Value: \"full\" },\r\n { Key: \"image-position\", Value: \"center center\" },\r\n { Key: \"hero-template\", Value: \"text-below\" },\r\n { Key: \"horizontal-rule\", Value: false },\r\n { Key: \"include-subtitle\", Value: false }\r\n ],\r\n HeroType: \"\",\r\n BackgroundImageAssetId: dto.BackgroundAssetId || bannerImage,\r\n BackgroundImageTitle: \"\",\r\n SectionUneditable: true,\r\n Title: dto.Title || \"\",\r\n SubTitle: subTitle,\r\n LineDivider: false,\r\n ShowButton: false,\r\n ButtonName: \"\",\r\n ButtonType: \"\",\r\n ButtonActionOrUrl: \"\"\r\n }\r\n ]\r\n },\r\n {\r\n Id: helperService.guid(),\r\n OrderNo: 1,\r\n SectionType: \"ContentSectionRow\",\r\n SectionOptions: [],\r\n SectionIsFull: false,\r\n StyleOptions: [\r\n { Key: \"background-color\", Value: \"transparent\", Target: \"section\" },\r\n { Key: \"width\", Value: \"section-small\", Target: \"container\" },\r\n { Key: \"block-width\", Value: 100, Target: \"container\" }\r\n ],\r\n Sections: [\r\n {\r\n ButtonActionOrUrl: \"\",\r\n ButtonName: \"\",\r\n ButtonPosition: \"\",\r\n ButtonType: \"\",\r\n Id: helperService.guid(),\r\n LineDivider: false,\r\n OrderNo: 1,\r\n SectionOptions: [{ Key: \"FirstPostTextBlock\", Value: true }],\r\n SectionType: \"ContentSectionText\",\r\n StyleOptions: [\r\n { Key: \"include-title\", Value: false },\r\n { Key: \"text-columns\", Value: 1 }\r\n ],\r\n Title: \"\",\r\n Text: \"\"\r\n }\r\n ]\r\n }\r\n ];\r\n } else {\r\n this.Sections = dto.Sections || [];\r\n }\r\n },\r\n\r\n /**\r\n *\r\n * @param dto\r\n * @constructor\r\n */\r\n WebfolioPageDto: function (dto) {\r\n this.Id = dto.Id || helperService.guid();\r\n this.Title = dto.Title || \"\";\r\n this.MainType = \"WebfolioPage\";\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || undefined;\r\n this.Authors = dto.Authors || [];\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || undefined;\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\"; // \"Invisible\" if PageDTO was created\r\n this.Revision = dto.Revision || 0;\r\n this.BaseVersion = dto.BaseVersion || this.Revision;\r\n\r\n // decide whether or not to add a default banner\r\n // tslint:disable-next-line:triple-equals\r\n if (dto.hasOwnProperty(\"AddDefaultBannerSection\") && dto.AddDefaultBannerSection !== undefined && dto.AddDefaultBannerSection !== null && dto.AddDefaultBannerSection == true) {\r\n // change it straight to false so that if the dto gets past this method again nothing will be overwritten\r\n dto.AddDefaultBannerSection = false;\r\n\r\n // add a default row with a default banner\r\n this.Sections = [\r\n {\r\n Id: helperService.guid(),\r\n OrderNo: 0,\r\n SectionType: \"ContentSectionRow\",\r\n SectionOptions: [],\r\n SectionIsFull: true,\r\n StyleOptions: [\r\n { Key: \"background-color\", Value: \"transparent\", Target: \"section\" },\r\n { Key: \"width\", Value: \"section-large\", Target: \"container\" },\r\n { Key: \"block-width\", Value: 100, Target: \"container\" }\r\n ],\r\n Sections: [\r\n {\r\n Id: helperService.guid(),\r\n OrderNo: 0,\r\n SectionType: \"ContentSectionHero\",\r\n SectionOptions: [],\r\n StyleOptions: [\r\n { Key: \"banner-block-height\", Value: \"full\" },\r\n { Key: \"image-position\", Value: \"center center\" },\r\n { Key: \"hero-template\", Value: \"default\" },\r\n { Key: \"horizontal-rule\", Value: false },\r\n { Key: \"include-subtitle\", Value: true }\r\n ],\r\n HeroType: \"\",\r\n BackgroundImageAssetId: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"builder/blockHero/defaultImages/Pebbles.jpg\"),\r\n BackgroundImageTitle: \"\",\r\n Title: \"\",\r\n SubTitle: \"\",\r\n LineDivider: false,\r\n ShowButton: false,\r\n ButtonName: \"\",\r\n ButtonType: \"\",\r\n ButtonActionOrUrl: \"\"\r\n }\r\n ]\r\n }\r\n ];\r\n } else {\r\n this.Sections = dto.Sections || [];\r\n }\r\n },\r\n\r\n // COLLECTIONS\r\n CollectionWrapperDto: function (dto) {\r\n //this.Items = dto.Items;\r\n //this.AssetCollections = dto.AssetCollections;\r\n\r\n this.Id = dto.Id || helperService.guid();\r\n this.Title = dto.Title || \"\";\r\n this.Description = dto.Description || \"\";\r\n this.MainType = \"AssetCollectionWrapper\";\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || undefined;\r\n this.Authors = dto.Authors || [];\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || undefined;\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\"; // \"Invisible\" if PageDTO was created\r\n this.Revision = dto.Revision || 0;\r\n this.BaseVersion = dto.BaseVersion || this.Revision;\r\n\r\n this.ProgressTrackingTarget = dto.ProgressTrackingTarget || 0;\r\n this.AssetCollections = dto.AssetCollections || [];\r\n this.Items = dto.Items || [];\r\n\r\n // add a banner section\r\n var bannerImage = \"Pebbles.jpg\";\r\n var subTitle = \"\";\r\n if (this.AssetOptions.length) {\r\n for (var i = 0; i < this.AssetOptions.length; i++) {\r\n var option = this.AssetOptions[i];\r\n if (option.Key === \"BackgroundImageAssetId\") {\r\n bannerImage = option.Value;\r\n }\r\n if (option.Key === \"SubTitle\") {\r\n subTitle = option.Value;\r\n }\r\n }\r\n } else {\r\n this.AssetOptions.push({ Key: \"BackgroundImageAssetId\", Value: bannerImage });\r\n }\r\n },\r\n\r\n CollectionDto: function (dto) {\r\n this.Id = dto.Id || helperService.guid();\r\n this.Title = dto.Title || \"\";\r\n this.Description = dto.Description || \"\";\r\n this.MainType = \"AssetCollection\";\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || undefined;\r\n this.Authors = dto.Authors || [];\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || undefined;\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\"; // \"Invisible\" for collectiondtos\r\n this.Revision = dto.Revision || 0;\r\n this.BaseVersion = dto.BaseVersion || this.Revision;\r\n\r\n this.StaticCollection = dto.StaticCollection || false;\r\n this.StaticCollectionAssetIds = dto.StaticCollectionAssetIds || [];\r\n this.Filter = dto.Filter || {};\r\n this.Search = dto.Search || {};\r\n this.NotActive = false; // Override old ones so they are always saved as active.\r\n },\r\n\r\n // ACTIVITY LOG\r\n ActivityLogDto: function (dto) {\r\n this.Id = dto.Id || helperService.guid();\r\n this.Title = dto.Title || \"\";\r\n this.Description = dto.Description || \"\";\r\n this.MainType = \"ActivityLog\";\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || undefined;\r\n this.Authors = dto.Authors || [];\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || undefined;\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\"; // \"Invisible\" if PageDTO was created\r\n this.Revision = dto.Revision || 0;\r\n this.BaseVersion = dto.BaseVersion || this.Revision;\r\n\r\n this.TargetHours = dto.TargetHours;\r\n this.TargetPoints = dto.TargetPoints;\r\n this.AssetCollections = dto.AssetCollections || [];\r\n this.Items = dto.Items || [];\r\n\r\n // add a banner section\r\n var bannerImage = \"Pebbles.jpg\";\r\n var subTitle = \"\";\r\n if (this.AssetOptions.length) {\r\n for (var i = 0; i < this.AssetOptions.length; i++) {\r\n var option = this.AssetOptions[i];\r\n if (option.Key === \"BackgroundImageAssetId\") {\r\n bannerImage = option.Value;\r\n }\r\n if (option.Key === \"SubTitle\") {\r\n subTitle = option.Value;\r\n }\r\n }\r\n } else {\r\n this.AssetOptions.push({ Key: \"BackgroundImageAssetId\", Value: bannerImage });\r\n }\r\n },\r\n\r\n /**\r\n * Constructor for BlogDto\r\n * @param dto\r\n * @constructor\r\n */\r\n BlogDto: function (dto) {\r\n this.Id = dto.Id || helperService.guid();\r\n this.Title = dto.Title || \"\";\r\n this.Description = dto.Description || \"\";\r\n this.MainType = \"Blog\";\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || undefined;\r\n this.Authors = dto.Authors || [];\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || undefined;\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\"; // \"Invisible\" for blog dtos\r\n this.Revision = dto.Revision || 0;\r\n this.BaseVersion = dto.BaseVersion || this.Revision;\r\n\r\n this.DefaultSortOrder = dto.DefaultSortOrder || \"descending\";\r\n this.DefaultOrderBy = dto.DefaultOrderBy || \"posted\";\r\n this.Posts = dto.Posts || [];\r\n this.DateFilters = dto.DateFilters || [];\r\n\r\n // add a banner section\r\n var bannerImage = \"Pebbles.jpg\";\r\n var subTitle = \"\";\r\n\r\n if (this.AssetOptions.length) {\r\n for (var i = 0; i < this.AssetOptions.length; i++) {\r\n var option = this.AssetOptions[i];\r\n if (option.Key === \"BackgroundImageAssetId\") {\r\n bannerImage = option.Value;\r\n }\r\n if (option.Key === \"SubTitle\") {\r\n subTitle = option.Value;\r\n }\r\n }\r\n } else {\r\n this.AssetOptions.push({ Key: \"BackgroundImageAssetId\", Value: bannerImage });\r\n }\r\n\r\n this.BannerSection = {\r\n RowSection: {\r\n Id: helperService.guid(),\r\n OrderNo: 0,\r\n SectionType: \"ContentSectionRow\",\r\n SectionOptions: [],\r\n SectionIsFull: true,\r\n StyleOptions: [\r\n { Key: \"background-color\", Value: \"transparent\", Target: \"section\" },\r\n { Key: \"width\", Value: \"section-large\", Target: \"container\" },\r\n { Key: \"block-width\", Value: 100, Target: \"container\" }\r\n ]\r\n },\r\n Block: {\r\n Id: helperService.guid(),\r\n OrderNo: 0,\r\n SectionType: \"ContentSectionHero\",\r\n SectionOptions: [],\r\n StyleOptions: [\r\n { Key: \"hero-template\", Value: \"default\" },\r\n { Key: \"horizontal-rule\", Value: false },\r\n { Key: \"include-subtitle\", Value: true }\r\n ],\r\n HeroType: \"\",\r\n BackgroundImageAssetId: bannerImage,\r\n BackgroundImageTitle: \"\",\r\n Title: dto.Title || \"\",\r\n SubTitle: subTitle,\r\n LineDivider: false,\r\n ShowButton: false,\r\n ButtonName: \"\",\r\n ButtonType: \"\",\r\n ButtonActionOrUrl: \"\"\r\n }\r\n };\r\n },\r\n\r\n CvDto: function (dto) {\r\n this.Id = dto.Id || helperService.guid();\r\n this.Title = dto.Title || \"\";\r\n this.Description = dto.Description || \"\";\r\n this.MainType = \"CV\";\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || undefined;\r\n this.Authors = dto.Authors || [];\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || undefined;\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\"; // \"Invisible\" if PageDTO was created\r\n this.Revision = dto.Revision || 0;\r\n\r\n this.CallingCard = dto.CallingCard;\r\n this.AssetCollections = dto.AssetCollections || [];\r\n this.Items = dto.Items || [];\r\n\r\n // add a banner section\r\n var bannerImage = \"Pebbles.jpg\";\r\n var subTitle = \"\";\r\n if (this.AssetOptions.length) {\r\n for (var i = 0; i < this.AssetOptions.length; i++) {\r\n var option = this.AssetOptions[i];\r\n if (option.Key === \"BackgroundImageAssetId\") {\r\n bannerImage = option.Value;\r\n }\r\n if (option.Key === \"SubTitle\") {\r\n subTitle = option.Value;\r\n }\r\n }\r\n }\r\n\r\n this.BannerSection = {\r\n RowSection: {\r\n Id: helperService.guid(),\r\n OrderNo: 0,\r\n SectionType: \"ContentSectionRow\",\r\n SectionOptions: [],\r\n SectionIsFull: true,\r\n StyleOptions: [\r\n { Key: \"background-color\", Value: \"transparent\", Target: \"section\" },\r\n { Key: \"width\", Value: \"section-large\", Target: \"container\" },\r\n { Key: \"block-width\", Value: 100, Target: \"container\" }\r\n ]\r\n },\r\n Block: {\r\n Id: helperService.guid(),\r\n OrderNo: 0,\r\n SectionType: \"ContentSectionHero\",\r\n SectionOptions: [],\r\n StyleOptions: [\r\n { Key: \"hero-template\", Value: \"no-text\" },\r\n { Key: \"horizontal-rule\", Value: false }\r\n ],\r\n HeroType: \"\",\r\n BackgroundImageAssetId: bannerImage,\r\n BackgroundImageTitle: \"\",\r\n Title: dto.Title || \"\",\r\n SubTitle: subTitle,\r\n LineDivider: false,\r\n ShowButton: false,\r\n ButtonName: \"\",\r\n ButtonType: \"\",\r\n ButtonActionOrUrl: \"\"\r\n }\r\n };\r\n },\r\n\r\n TemplateBuilderDto: function (dto) {\r\n this.Id = dto.Id || helperService.guid();\r\n this.Title = dto.Title || \"\";\r\n this.MainType = \"TemplateBuilder\";\r\n this.SubType = dto.SubType || null;\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || undefined;\r\n this.Authors = dto.Authors || [];\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || undefined;\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\";\r\n this.CascadeTags = dto.CascadeTags || false;\r\n this.Locked = dto.Locked || false;\r\n this.Usage = dto.Usage || \"true\";\r\n this.IsTask = dto.IsTask || false;\r\n this.PromptMax = dto.PromptMax || 0;\r\n this.PreferenceIncludeHintWhenAssetIsViewed =\r\n dto.PreferenceIncludeHintWhenAssetIsViewed === undefined || dto.PreferenceIncludeHintWhenAssetIsViewed === null ? true : dto.PreferenceIncludeHintWhenAssetIsViewed;\r\n this.PreferenceShowEmptyFieldWhenAnAssetIsViewed =\r\n dto.PreferenceShowEmptyFieldWhenAnAssetIsViewed === undefined || dto.PreferenceShowEmptyFieldWhenAnAssetIsViewed === null ? true : dto.PreferenceShowEmptyFieldWhenAnAssetIsViewed;\r\n this.PreferenceUseInFieldHintsWherePossible =\r\n dto.PreferenceUseInFieldHintsWherePossible === undefined || dto.PreferenceUseInFieldHintsWherePossible === null ? true : dto.PreferenceUseInFieldHintsWherePossible;\r\n this.Revision = dto.Revision || 0;\r\n this.BaseVersion = dto.BaseVersion || this.Revision;\r\n this.AllowUserToChangeBanner = dto.AllowUserToChangeBanner === undefined || dto.AllowUserToChangeBanner === null ? true : dto.AllowUserToChangeBanner;\r\n this.EnableProgressTracking = dto.EnableProgressTracking || false;\r\n this.PebbleFormPurpose = dto.PebbleFormPurpose;\r\n this.FormLanguage = dto.FormLanguage;\r\n\r\n // decide whether or not to add a default banner\r\n if (dto.hasOwnProperty(\"AddDefaultBannerSection\") && dto.AddDefaultBannerSection !== undefined && dto.AddDefaultBannerSection !== null && dto.AddDefaultBannerSection === true) {\r\n // change it straight to false so that if the dto gets past this method again nothing will be overwritten\r\n dto.AddDefaultBannerSection = false;\r\n\r\n this.Sections = dto.Sections || [\r\n {\r\n Id: helperService.guid(),\r\n OrderNo: 0,\r\n SectionType: \"BuilderFormElementRow\",\r\n StyleOptions: [\r\n { Key: \"background-color\", Value: \"transparent\", Target: \"section\" },\r\n { Key: \"width\", Value: \"section-large\", Target: \"container\" },\r\n { Key: \"block-width\", Value: 100, Target: \"container\" }\r\n ],\r\n Sections: [\r\n {\r\n Id: helperService.guid(),\r\n OrderNo: 0,\r\n SectionOptions: [],\r\n SectionType: \"BuilderContentSection\",\r\n ContentSectionType: \"ContentSectionHero\",\r\n FilledInByRespondant: true,\r\n SectionIsFull: true,\r\n ContentSection: {\r\n Id: helperService.guid(),\r\n SectionType: \"ContentSectionHero\",\r\n OrderNo: 0,\r\n ImageAssetId: \"\",\r\n BackgroundImageAssetId: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"builder/blockHero/defaultImages/Pebbles.jpg\"),\r\n SectionOptions: [{ Key: \"HeroBannerDefaultImage\", Value: \"Pebbles.jpg\" }],\r\n StyleOptions: [\r\n { Key: \"block-width\", Value: 100, Target: \"container\" },\r\n { Key: \"banner-block-height\", Value: \"thin\" },\r\n { Key: \"image-position\", Value: \"center center\" },\r\n { Key: \"hero-template\", Value: \"no-text\" },\r\n { Key: \"horizontal-rule\", Value: false },\r\n { Key: \"include-subtitle\", Value: true }\r\n ]\r\n },\r\n StyleOptions: [\r\n { Key: \"width\", Value: \"section-large\", Target: \"container\" },\r\n { Key: \"block-width\", Value: 100, Target: \"container\" }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n Id: helperService.guid(),\r\n OrderNo: 1,\r\n SectionType: \"BuilderFormElementRow\",\r\n StyleOptions: [\r\n { Key: \"background-color\", Value: \"transparent\", Target: \"section\" },\r\n { Key: \"width\", Value: \"medium\", Target: \"container\" },\r\n { Key: \"block-width\", Value: 100, Target: \"container\" }\r\n ],\r\n Sections: [\r\n {\r\n Id: helperService.guid(),\r\n OrderNo: 1,\r\n SectionOptions: [],\r\n SectionType: \"BuilderTitleSingleLineTextBox\",\r\n ElementLabel: multiLanguageService.getString(\"labels.builder.save_as\"),\r\n ElementHint: \"\",\r\n StyleOptions: [\r\n { Key: \"element-purpose-title-required\", Value: true },\r\n { Key: \"prescribed-title\", Value: false }\r\n ]\r\n }\r\n ]\r\n }\r\n ];\r\n } else {\r\n this.Sections = dto.Sections || [\r\n {\r\n Id: helperService.guid(),\r\n OrderNo: 1,\r\n SectionType: \"BuilderFormElementRow\",\r\n StyleOptions: [\r\n { Key: \"background-color\", Value: \"transparent\", Target: \"section\" },\r\n { Key: \"width\", Value: \"medium\", Target: \"container\" },\r\n { Key: \"block-width\", Value: 100, Target: \"container\" }\r\n ],\r\n Sections: [\r\n {\r\n Id: helperService.guid(),\r\n OrderNo: 1,\r\n SectionOptions: [],\r\n SectionType: \"BuilderTitleSingleLineTextBox\",\r\n ElementLabel: multiLanguageService.getString(\"labels.builder.save_as\"),\r\n ElementHint: \"\",\r\n StyleOptions: [\r\n { Key: \"element-purpose-title-required\", Value: true },\r\n { Key: \"prescribed-title\", Value: false }\r\n ]\r\n }\r\n ]\r\n }\r\n ];\r\n }\r\n },\r\n\r\n WorkbookBuilderDto: function (dto) {\r\n this.Id = dto.Id || helperService.guid();\r\n this.Title = dto.Title || \"\";\r\n this.Description = dto.Description || \"\";\r\n this.MainType = \"WorkbookBuilder\";\r\n this.SubType = dto.SubType || null;\r\n this.Created = helperService.normalizeDate(dto.Created) || new Date();\r\n this.CreatedBy = dto.CreatedBy || undefined;\r\n this.Authors = dto.Authors || [];\r\n this.LastModified = helperService.normalizeDate(dto.LastModified) || new Date();\r\n this.LastModifiedBy = dto.LastModifiedBy || undefined;\r\n this.AssetOptions = dto.AssetOptions || [];\r\n this.StorageServiceId = dto.StorageServiceId || \"Default\";\r\n this.AssetFolder = dto.AssetFolder || \"Invisible\";\r\n this.Pages = dto.Pages || [];\r\n this.CascadeTags = dto.CascadeTags || false;\r\n this.Locked = dto.Locked || false;\r\n this.Usage = dto.Usage || \"true\";\r\n this.IsTask = dto.IsTask || false;\r\n this.PromptMax = dto.PromptMax || 0;\r\n this.AddProgressTracking = dto.AddProgressTracking || false;\r\n this.Revision = dto.Revision || 0;\r\n this.BaseVersion = dto.BaseVersion || this.Revision;\r\n this.AutoSumWorkbookCpdValues = !!dto.AutoSumWorkbookCpdValues;\r\n this.WorkbookPurpose = dto.WorkbookPurpose;\r\n this.WorkbookLanguage = dto.WorkbookLanguage;\r\n },\r\n\r\n /**\r\n * Constructor for Text block object\r\n * @constructor\r\n */\r\n TxtBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"blockText\" }]);\r\n\r\n // local\r\n this.Text = \"\";\r\n this.Title = \"\";\r\n this.ButtonPosition = \"\";\r\n this.ButtonName = \"\";\r\n this.ButtonType = \"\";\r\n this.ButtonActionOrUrl = \"\";\r\n //this.ShowSectionTitle = false;\r\n this.LineDivider = false;\r\n //this.ShowButton = false;\r\n\r\n this.StyleOptions = [\r\n { Key: \"include-title\", Value: false },\r\n { Key: \"text-columns\", Value: 1 }\r\n //{Key: \"line-divider\", Value: false},\r\n //{Key: \"include-button\", Value: false}\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Media block object\r\n * @constructor\r\n */\r\n MediaBlockDto: function (dto) {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"blockMedia\" }]);\r\n\r\n // local\r\n this.MediaAssetId = \"\";\r\n this.MediaType = MEDIA_TYPES[dto.MainType];\r\n this.MediaTitle = \"\";\r\n this.Title = \"\";\r\n this.FitToBox = false;\r\n this.ShowCaption = false;\r\n this.Caption = \"\";\r\n this.ExternalMedia = false;\r\n this.AltText = null;\r\n\r\n this.StyleOptions = [\r\n { Key: \"include-title\", Value: false },\r\n { Key: \"include-caption\", Value: false }\r\n ];\r\n\r\n if (MEDIA_TYPES[dto.MainType] === \"video\") {\r\n this.StyleOptions.push({ Key: \"video-controls\", Value: \"\" });\r\n } else if (MEDIA_TYPES[dto.MainType] === \"audio\") {\r\n this.StyleOptions.push({ Key: \"audio-controls\", Value: \"\" });\r\n } else if (MEDIA_TYPES[dto.MainType] === \"image\") {\r\n this.StyleOptions.push({ Key: \"image-click-state\", Value: \"Empty,\" });\r\n }\r\n },\r\n\r\n /**\r\n * Constructor for Media block object\r\n * @constructor\r\n */\r\n HeroBlockDto: function (dto) {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"blockHero\" }]);\r\n\r\n // local\r\n this.HeroType = \"\";\r\n this.BackgroundImageAssetId = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"builder/blockHero/defaultImages/Pebbles.jpg\");\r\n this.BackgroundImageTitle = \"\";\r\n this.Title = \"\";\r\n this.SubTitle = \"\";\r\n this.LineDivider = false;\r\n this.ShowButton = false;\r\n this.ButtonName = \"\";\r\n this.ButtonType = \"\";\r\n this.ButtonActionOrUrl = \"\";\r\n\r\n var defaultStyleOptions = [\r\n { Key: \"block-width\", Value: 100, Target: \"container\" },\r\n { Key: \"banner-block-height\", Value: \"full\" },\r\n { Key: \"image-position\", Value: \"center center\" },\r\n { Key: \"hero-template\", Value: \"default\" },\r\n { Key: \"horizontal-rule\", Value: false },\r\n { Key: \"include-subtitle\", Value: true }\r\n ];\r\n\r\n this.StyleOptions = dto && dto.StyleOptions ? dto.StyleOptions.uniquePropertyConcat(defaultStyleOptions, \"Key\") : defaultStyleOptions;\r\n },\r\n\r\n /**\r\n * Constructor for Embed block object\r\n * @constructor\r\n */\r\n EmbedBlockDto: function (dto, subType, allowSideBySide) {\r\n var sectionType = subType ? subType : dto.MainType;\r\n\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: sectionType, AllowSideBySide: allowSideBySide }]);\r\n\r\n // local\r\n this.EmbedUrl = \"\";\r\n this.ServiceName = \"\";\r\n this.CompletableInResponse = false;\r\n this.StyleOptions = [];\r\n this.DisplayProperties = {};\r\n\r\n switch (subType) {\r\n case \"BuilderUserEmbed\":\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n this.CompletableInResponse = true;\r\n break;\r\n case \"BuilderHintEmbed\":\r\n this.StyleOptions = [{ Key: STYLE_OPTIONS.SHOW_HINT_BLOCK_WHEN_VIEWING, Value: true }];\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n break;\r\n default:\r\n this.StyleOptions = [{ Key: STYLE_OPTIONS.INCLUDE_TITLE, Value: false }];\r\n this.Title = \"\";\r\n break;\r\n }\r\n },\r\n\r\n /**\r\n * Constructor for Quote block object\r\n * @constructor\r\n */\r\n QuoteBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"blockQuote\" }]);\r\n\r\n // local\r\n this.Quote = \"\";\r\n this.Citation = \"\";\r\n\r\n this.StyleOptions = [{ Key: \"include-citation\", Value: true }];\r\n },\r\n\r\n /**\r\n * Constructor for Badge block object\r\n * @constructor\r\n */\r\n BadgeBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"blockBadge\" }]);\r\n\r\n // local\r\n this.Title = \"\";\r\n this.BadgeAssetId = \"\";\r\n this.CriteriaUrl = \"\";\r\n this.Description = \"\";\r\n this.Created = \"\";\r\n this.ImageUrl = \"\";\r\n this.IssuerContact = \"\";\r\n this.IssuerName = \"\";\r\n this.IssuerOrg = \"\";\r\n this.IssuerUrl = \"\";\r\n this.StyleOptions = [];\r\n },\r\n\r\n ContentSectionBlockDto: function (dto) {\r\n SectionDtoClass.apply(this, [{ SectionType: \"ContentSection\" }]);\r\n this.SectionIsFull = true;\r\n this.FilledInByRespondant = true;\r\n\r\n var overrides = {\r\n \"block-hero\": {\r\n styleOptions: [\r\n { Key: \"banner-block-height\", Value: \"thin\" },\r\n { Key: \"hero-template\", Value: \"no-text\" }\r\n ]\r\n }\r\n };\r\n\r\n var blockOverrides = overrides[dto.ChildType];\r\n this.ContentSection = dtoFactory.create({\r\n MainType: dto.ChildType,\r\n StyleOptions: blockOverrides !== void 0 ? blockOverrides.styleOptions : []\r\n });\r\n this.ContentSectionType = this.ContentSection.SectionType;\r\n this.StyleOptions = [\r\n { Key: \"width\", Value: \"section-large\", Target: \"container\" },\r\n { Key: \"block-width\", Value: 100, Target: \"container\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Single Line Text block object\r\n * @constructor\r\n */\r\n SingleLineBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderSingleLineTextBox\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.StyleOptions = [\r\n { Key: STYLE_OPTIONS.INFIELD_HINT, Value: false },\r\n { Key: STYLE_OPTIONS.ADD_EVIDENCE_COMPONENT, Value: false },\r\n { Key: STYLE_OPTIONS.SHOW_HINT_WHEN_VIEWING, Value: true },\r\n { Key: STYLE_OPTIONS.SHOW_EMPTY_FIELD_WHEN_VIEWING, Value: true },\r\n { Key: STYLE_OPTIONS.PRIVACY_STATE, Value: \"Normal\" },\r\n { Key: STYLE_OPTIONS.MANDATORY_FOR_PROGRESS, Value: false },\r\n { Key: STYLE_OPTIONS.CUSTOM_ASSESSOR_FIELD_LABEL, Value: \"\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Multi Line Text block object\r\n * @constructor\r\n */\r\n MultiLineBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderMultiLineTextBox\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n this.MaxWords = 0;\r\n this.MinWords = 0;\r\n\r\n this.StyleOptions = [\r\n { Key: STYLE_OPTIONS.WORD_COUNT_ENABLED, Value: false },\r\n { Key: STYLE_OPTIONS.INFIELD_HINT, Value: false },\r\n { Key: STYLE_OPTIONS.ADD_EVIDENCE_COMPONENT, Value: false },\r\n { Key: STYLE_OPTIONS.SHOW_HINT_WHEN_VIEWING, Value: true },\r\n { Key: STYLE_OPTIONS.SHOW_EMPTY_FIELD_WHEN_VIEWING, Value: true },\r\n { Key: STYLE_OPTIONS.PRIVACY_STATE, Value: \"Normal\" },\r\n { Key: STYLE_OPTIONS.MANDATORY_FOR_PROGRESS, Value: false },\r\n { Key: STYLE_OPTIONS.CUSTOM_ASSESSOR_FIELD_LABEL, Value: \"\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Radio button block object\r\n * @constructor\r\n */\r\n RadioButtonBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderOptionsListRadioButtons\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n this.WrapAt = BlockInputOptionsHelper.getInlineOptions().default;\r\n\r\n this.Radios = [\r\n {\r\n Key: helperService.guid(),\r\n Value: \"\"\r\n },\r\n {\r\n Key: helperService.guid(),\r\n Value: \"\"\r\n },\r\n {\r\n Key: helperService.guid(),\r\n Value: \"\"\r\n }\r\n ];\r\n\r\n this.StyleOptions = [\r\n { Key: \"display-horizontal\", Value: false },\r\n { Key: \"hide-unselected-options\", Value: false },\r\n { Key: \"add-evidence-component\", Value: false },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"privacy-state\", Value: \"Normal\" },\r\n { Key: \"mandatory-for-progress\", Value: false },\r\n { Key: STYLE_OPTIONS.CUSTOM_ASSESSOR_FIELD_LABEL, Value: \"\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Checkbox block object\r\n * @constructor\r\n */\r\n CheckboxBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderOptionsListCheckboxes\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n this.WrapAt = BlockInputOptionsHelper.getInlineOptions().default;\r\n this.Checkboxes = [\r\n {\r\n Key: helperService.guid(),\r\n Value: \"\"\r\n },\r\n {\r\n Key: helperService.guid(),\r\n Value: \"\"\r\n },\r\n {\r\n Key: helperService.guid(),\r\n Value: \"\"\r\n }\r\n ];\r\n\r\n this.StyleOptions = [\r\n { Key: \"display-horizontal\", Value: false },\r\n { Key: \"hide-unselected-options\", Value: false },\r\n { Key: \"add-evidence-component\", Value: false },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"privacy-state\", Value: \"Normal\" },\r\n { Key: \"mandatory-for-progress\", Value: false },\r\n { Key: STYLE_OPTIONS.CUSTOM_ASSESSOR_FIELD_LABEL, Value: \"\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Drop down block object\r\n * @constructor\r\n */\r\n DropDownBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderOptionsListDropDown\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.Dropdown = [\r\n {\r\n Key: helperService.guid(),\r\n Value: \"\"\r\n },\r\n {\r\n Key: helperService.guid(),\r\n Value: \"\"\r\n },\r\n {\r\n Key: helperService.guid(),\r\n Value: \"\"\r\n }\r\n ];\r\n\r\n this.StyleOptions = [\r\n { Key: \"hide-unselected-options\", Value: false },\r\n { Key: \"add-evidence-component\", Value: false },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"privacy-state\", Value: \"Normal\" },\r\n { Key: \"mandatory-for-progress\", Value: false },\r\n { Key: STYLE_OPTIONS.CUSTOM_ASSESSOR_FIELD_LABEL, Value: \"\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Date picker block object\r\n * @constructor\r\n */\r\n DatePickerBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderDatePickerInput\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.StyleOptions = [\r\n { Key: \"include-time\", Value: false },\r\n { Key: \"add-evidence-component\", Value: false },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"privacy-state\", Value: \"Normal\" },\r\n { Key: \"mandatory-for-progress\", Value: false },\r\n { Key: STYLE_OPTIONS.CUSTOM_ASSESSOR_FIELD_LABEL, Value: \"\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for digital signature block object\r\n * @constructor\r\n */\r\n DigitalSignatureBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderFormSignatureElement\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.StyleOptions = [\r\n { Key: \"signatory-options\", Value: \"\" },\r\n { Key: \"blank-or-warn-on-edit\", Value: \"warn\" },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for media picker block object\r\n * @constructor\r\n */\r\n MediaPickerBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderFormUserMediaPicker\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n this.AltText = null;\r\n\r\n this.StyleOptions = [\r\n { Key: \"media-picker-types\", Value: \"image,video,audio,document\" },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"mandatory-for-progress\", Value: false }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for dynamic element block object\r\n * @constructor\r\n */\r\n DynamicElementBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderDynamicElement\", AllowSideBySide: true }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.StyleOptions = [];\r\n },\r\n\r\n /**\r\n * Constructor for standard element block object\r\n * @constructor\r\n */\r\n StandardBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderStandards\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n this.ElementInfo = \"\";\r\n\r\n this.StyleOptions = [];\r\n },\r\n\r\n /**\r\n * Constructor for TITLE Single Line Text block object\r\n * @constructor\r\n */\r\n TitleSingleLineBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderTitleSingleLineTextBox\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.StyleOptions = [\r\n { Key: \"element-purpose-title-required\", Value: true },\r\n { Key: \"prescribed-title\", Value: false }\r\n ];\r\n },\r\n\r\n HorizontalRuleBlockDto: function () {\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderHorizontalRule\" }]);\r\n this.StyleOptions = [{ Key: \"show-horizontal-line-on-preview\", Value: true }];\r\n },\r\n\r\n /**\r\n * Constructor for Binary block object\r\n * @constructor\r\n */\r\n BinaryBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderBinaryAnswerInput\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.NegativeLabel = \"\";\r\n this.PositiveLabel = \"\";\r\n\r\n this.StyleOptions = [\r\n { Key: \"add-evidence-component\", Value: false },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"privacy-state\", Value: \"Normal\" },\r\n { Key: \"mandatory-for-progress\", Value: false },\r\n { Key: STYLE_OPTIONS.CUSTOM_ASSESSOR_FIELD_LABEL, Value: \"\" }\r\n ];\r\n },\r\n\r\n GenericTableBlock: function (tableType) {\r\n switch (tableType) {\r\n case tableConfig.type.builder.table.columnsOnly:\r\n return new this.FixedRowBlockDto(tableType);\r\n case tableConfig.type.builder.table.rowsOnly:\r\n return new this.TableBasicRowBlockDto(tableType);\r\n case tableConfig.type.builder.table.rowsAndColumns:\r\n return new this.TableBasicColRowBlockDto(tableType);\r\n case tableConfig.type.builder.table.singleCell:\r\n return new this.SingleCellsBlockDto(tableType);\r\n case tableConfig.type.builder.rubric.rowsAndColumns:\r\n return new this.BuilderRubricContainer(tableType);\r\n default:\r\n throw new Error('Unknown table type \"' + tableType + '\"!');\r\n }\r\n },\r\n\r\n FixedRowBlockDto: function (tableType) {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: SECTION_TYPES.GenericBuilderTable }]);\r\n\r\n var tableSize = tableConfig.configs.defaultTableSize[tableType],\r\n builderToolbarValue = tableSize - 1,\r\n newDto = tableDtoHelper.generateNewDto({\r\n calculateColWidth: tableDataHelper.calculateColWidth,\r\n guid: helperService.guid,\r\n tableType: tableType,\r\n tableSize: tableSize\r\n });\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.TableType = tableType;\r\n this.Rows = newDto.Rows;\r\n this.Columns = newDto.Cols;\r\n\r\n this.StyleOptions = [\r\n { Key: \"number-of-cols-and-rows\", Value: tableSize + \",\" + builderToolbarValue, Target: \"section\" },\r\n { Key: \"repeating-rows\", Value: \"FixedRows\", Target: \"section\" },\r\n { Key: \"add-evidence-component\", Value: \"false\", Target: \"section\" },\r\n { Key: \"show-hint-when-viewing\", Value: \"true\", Target: \"section\" },\r\n { Key: \"show-empty-field-when-viewing\", Value: \"true\", Target: \"section\" },\r\n { Key: \"privacy-state-without-assessor\", Value: \"Normal\", Target: \"section\" },\r\n { Key: \"mandatory-for-progress\", Value: false },\r\n { Key: STYLE_OPTIONS.CUSTOM_ASSESSOR_FIELD_LABEL, Value: \"\" }\r\n ];\r\n },\r\n\r\n SingleCellsBlockDto: function (tableType) {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: SECTION_TYPES.GenericBuilderTable }]);\r\n\r\n var tableSize = tableConfig.configs.defaultTableSize[tableType],\r\n newDto = tableDtoHelper.generateNewDto({\r\n guid: helperService.guid,\r\n tableType: tableType,\r\n tableSize: tableSize\r\n });\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.TableType = tableType;\r\n this.Cells = newDto;\r\n\r\n this.StyleOptions = [\r\n { Key: \"number-of-cells\", Value: tableSize, Target: \"section\" },\r\n { Key: \"number-of-cells-per-row\", Value: \"2\", Target: \"section\" },\r\n { Key: \"add-evidence-component\", Value: \"false\", Target: \"section\" },\r\n { Key: \"show-hint-when-viewing\", Value: \"true\", Target: \"section\" },\r\n { Key: \"show-empty-field-when-viewing\", Value: \"true\", Target: \"section\" },\r\n { Key: \"privacy-state-without-assessor\", Value: \"Normal\", Target: \"section\" },\r\n { Key: \"mandatory-for-progress\", Value: false }\r\n ];\r\n },\r\n\r\n TableBasicRowBlockDto: function (tableType) {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: SECTION_TYPES.GenericBuilderTable }]);\r\n\r\n var tableSize = tableConfig.configs.defaultTableSize[tableType],\r\n builderToolbarValue = tableSize - 1,\r\n newDto = tableDtoHelper.generateNewDto({\r\n calculateColWidth: tableDataHelper.calculateColWidth,\r\n guid: helperService.guid,\r\n tableType: tableType,\r\n tableSize: tableSize\r\n });\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.TableType = tableType;\r\n this.Rows = newDto.Rows;\r\n this.Columns = newDto.Cols;\r\n\r\n this.StyleOptions = [\r\n { Key: \"number-of-cols-and-rows\", Value: builderToolbarValue + \",\" + builderToolbarValue },\r\n { Key: \"add-evidence-component\", Value: false },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"privacy-state-without-assessor\", Value: \"Normal\" },\r\n { Key: \"mandatory-for-progress\", Value: false }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Table Col and Row headers block object\r\n * @constructor\r\n */\r\n TableBasicColRowBlockDto: function (tableType) {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: SECTION_TYPES.GenericBuilderTable }]);\r\n\r\n var tableSize = tableConfig.configs.defaultTableSize[tableType],\r\n builderToolbarValue = tableSize - 1,\r\n newDto = tableDtoHelper.generateNewDto({\r\n calculateColWidth: tableDataHelper.calculateColWidth,\r\n guid: helperService.guid,\r\n tableType: tableType,\r\n tableSize: tableSize\r\n });\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.TableType = tableType;\r\n this.Rows = newDto.Rows;\r\n this.Columns = newDto.Cols;\r\n\r\n this.StyleOptions = [\r\n { Key: \"number-of-cols-and-rows\", Value: builderToolbarValue + \",\" + builderToolbarValue },\r\n { Key: \"add-evidence-component\", Value: false },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"privacy-state-without-assessor\", Value: \"Normal\" },\r\n { Key: \"mandatory-for-progress\", Value: false }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Table Col and Row headers block object\r\n * @constructor\r\n */\r\n BuilderRubricContainer: function (tableType) {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: SECTION_TYPES.GenericBuilderTable }]);\r\n\r\n var tableSize = tableConfig.configs.defaultTableSize[tableType],\r\n builderToolbarValue = tableSize - 1,\r\n newDto = tableDtoHelper.generateNewDto({\r\n calculateColWidth: tableDataHelper.calculateColWidth,\r\n guid: helperService.guid,\r\n tableType: tableType,\r\n tableSize: tableSize\r\n });\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.TableType = tableType;\r\n this.Rows = newDto.Rows;\r\n this.Columns = newDto.Cols;\r\n\r\n this.StyleOptions = [\r\n { Key: \"number-of-cols-and-rows\", Value: builderToolbarValue + \",\" + builderToolbarValue },\r\n { Key: \"add-evidence-component\", Value: false },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"privacy-state\", Value: \"Normal\" },\r\n { Key: \"mandatory-for-progress\", Value: false },\r\n { Key: STYLE_OPTIONS.CUSTOM_ASSESSOR_FIELD_LABEL, Value: \"\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Numeric block object\r\n * @constructor\r\n */\r\n\r\n LikertBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderRangeInputLikert\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.NegativeLabel = \"\";\r\n this.PositiveLabel = \"\";\r\n\r\n this.StyleOptions = [\r\n { Key: \"likert-increment\", Value: \"4\" },\r\n { Key: \"add-evidence-component\", Value: false },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"privacy-state\", Value: \"Normal\" },\r\n { Key: \"mandatory-for-progress\", Value: false },\r\n { Key: STYLE_OPTIONS.CUSTOM_ASSESSOR_FIELD_LABEL, Value: \"\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Numeric block object\r\n * @constructor\r\n */\r\n NumericBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderRangeInputStandard\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n this.NegativeLabel = \"\";\r\n this.PositiveLabel = \"\";\r\n\r\n this.StyleOptions = [\r\n { Key: \"numeric-range\", Value: \"1,4\" },\r\n { Key: \"add-evidence-component\", Value: false },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"privacy-state\", Value: \"Normal\" },\r\n { Key: \"mandatory-for-progress\", Value: false },\r\n { Key: STYLE_OPTIONS.CUSTOM_ASSESSOR_FIELD_LABEL, Value: \"\" }\r\n ];\r\n },\r\n\r\n EvidenceBlockDto: function () {\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderCapabilityEvidenceOnly\" }]);\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n\r\n this.StyleOptions = [\r\n { Key: \"show-hint-when-viewing\", Value: \"true\", Target: \"section\" },\r\n { Key: \"show-empty-field-when-viewing\", Value: \"true\", Target: \"section\" },\r\n { Key: \"privacy-state-private-only\", Value: false, Target: \"section\" },\r\n { Key: \"mandatory-for-progress\", Value: false },\r\n { Key: STYLE_OPTIONS.CAPABILITY_EVIDENCE_AMOUNT, Value: \"0\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Numeric block object\r\n * @constructor\r\n */\r\n CapabilityRatingBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderCapabilityRangeInput-Standard\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n this.NegativeLabel = \"\";\r\n this.PositiveLabel = \"\";\r\n\r\n this.StyleOptions = [\r\n { Key: \"numeric-range\", Value: \"1,5\" },\r\n { Key: \"allow-answer-to-be-changed-and-justified\", Value: true },\r\n { Key: \"prompt-to-add-justification-on-first-choice\", Value: true },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"privacy-state-private-only\", Value: false },\r\n { Key: \"mandatory-for-progress\", Value: false },\r\n { Key: STYLE_OPTIONS.CAPABILITY_EVIDENCE_AMOUNT, Value: \"0\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Hint Image block object\r\n * @constructor\r\n */\r\n HintImageBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderHintImage\", AllowSideBySide: true }]);\r\n\r\n // local\r\n this.MediaAssetId = \"\";\r\n this.Caption = \"\";\r\n this.AltText = null;\r\n\r\n this.StyleOptions = [\r\n { Key: \"caption-as-rollover\", Value: false },\r\n { Key: \"image-click-state\", Value: \"Empty,\" },\r\n { Key: \"show-hint-block-when-viewing\", Value: true }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Hint Video block object\r\n * @constructor\r\n */\r\n HintVideoBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderHintVideo\", AllowSideBySide: true }]);\r\n\r\n // local\r\n this.MediaAssetId = \"\";\r\n this.Caption = \"\";\r\n\r\n this.StyleOptions = [\r\n { Key: \"caption-as-rollover\", Value: false },\r\n { Key: \"video-controls\", Value: \"\" },\r\n { Key: \"show-hint-block-when-viewing\", Value: true }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Hint Audio block object\r\n * @constructor\r\n */\r\n\r\n HintAudioBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderHintAudio\", AllowSideBySide: true }]);\r\n\r\n // local\r\n this.MediaAssetId = \"\";\r\n this.Caption = \"\";\r\n\r\n this.StyleOptions = [\r\n { Key: \"caption-as-rollover\", Value: false },\r\n { Key: \"audio-controls\", Value: \"\" },\r\n { Key: \"show-hint-block-when-viewing\", Value: true }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Hint Text block object\r\n * @constructor\r\n */\r\n HintTextBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderHintText\", AllowSideBySide: true }]);\r\n\r\n // local\r\n this.Text = \"\";\r\n this.StyleOptions = [{ Key: \"show-hint-block-when-viewing\", Value: true }];\r\n },\r\n\r\n CapabilityRadioBlockDto: function () {\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderCapabilityOptionList-RadioButtons\" }]);\r\n\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n this.WrapAt = BlockInputOptionsHelper.getInlineOptions().default;\r\n this.Radios = [\r\n {\r\n Key: helperService.guid(),\r\n Value: \"\"\r\n },\r\n {\r\n Key: helperService.guid(),\r\n Value: \"\"\r\n },\r\n {\r\n Key: helperService.guid(),\r\n Value: \"\"\r\n }\r\n ];\r\n\r\n this.StyleOptions = [\r\n { Key: \"display-horizontal\", Value: false },\r\n { Key: \"hide-unselected-options\", Value: false },\r\n { Key: \"allow-answer-to-be-changed-and-justified\", Value: true },\r\n { Key: \"prompt-to-add-justification-on-first-choice\", Value: true },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"privacy-state-private-only\", Value: false, Target: \"section\" },\r\n { Key: \"mandatory-for-progress\", Value: false },\r\n { Key: STYLE_OPTIONS.CAPABILITY_EVIDENCE_AMOUNT, Value: \"0\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Numeric block object\r\n * @constructor\r\n */\r\n CapabilityBinaryBlockDto: function () {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderCapabilityBinaryAnswerInput\" }]);\r\n\r\n // local\r\n this.ElementLabel = \"\";\r\n this.ElementHint = \"\";\r\n this.NegativeLabel = \"\";\r\n this.PositiveLabel = \"\";\r\n\r\n this.StyleOptions = [\r\n { Key: \"allow-answer-to-be-changed-and-justified\", Value: true },\r\n { Key: \"prompt-to-add-justification-on-first-choice\", Value: true },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true },\r\n { Key: \"privacy-state-private-only\", Value: false },\r\n { Key: \"mandatory-for-progress\", Value: false },\r\n { Key: STYLE_OPTIONS.CAPABILITY_EVIDENCE_AMOUNT, Value: \"0\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Row section object\r\n * Row section always exists around block object or 2 block objects\r\n *\r\n * size param is either \"section-small\" or \"section-large\"\r\n *\r\n * @constructor\r\n */\r\n RowSectionDto: function (size, row_background_colour, SectionIsFull, default_width) {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"rowSection\", blockProperties: false }]);\r\n\r\n this.SectionIsFull = SectionIsFull || false;\r\n this.Sections = [];\r\n this.StyleOptions = [\r\n {\r\n Key: \"background-color\",\r\n // tslint:disable-next-line:triple-equals\r\n Value: row_background_colour != undefined ? row_background_colour : \"transparent\",\r\n Target: \"section\"\r\n },\r\n { Key: \"width\", Value: size, Target: \"container\" },\r\n { Key: \"block-width\", Value: default_width || 75, Target: \"container\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for BuilderFormElementRow section object\r\n * Row section always exists around block object or 2 block objects\r\n *\r\n * size param is either \"section-small\" or \"section-large\"\r\n *\r\n * @constructor\r\n */\r\n BuilderFormElementRowDto: function (size, row_background_colour, SectionIsFull, default_width) {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderFormElementRow\", blockProperties: false }]);\r\n\r\n this.SectionIsFull = SectionIsFull || false;\r\n this.Sections = [];\r\n this.SectionUneditable = false;\r\n this.StyleOptions = [\r\n { Key: \"width\", Value: size, Target: \"container\" },\r\n { Key: \"block-width\", Value: default_width || 75, Target: \"container\" }\r\n ];\r\n },\r\n\r\n /**\r\n * Constructor for Standards Selection block object\r\n * @constructor\r\n */\r\n StandardsSelectionElementDto: function (dto) {\r\n // extended\r\n SectionDtoClass.apply(this, [{ SectionType: \"BuilderStandardsSelection\" }]);\r\n\r\n // local\r\n this.ElementLabel = dto.ElementLabel || \"\";\r\n this.ElementHint = dto.ElementHint || \"\";\r\n this.ButtonText = dto.ButtonText || \"\";\r\n this.WorkBookId = dto.WorkBookId || \"\";\r\n this.WorkBookTitle = dto.WorkBookTitle || \"\";\r\n\r\n this.StyleOptions = [\r\n { Key: \"standards-selection-button-text\", Value: this.ButtonText },\r\n { Key: \"show-hint-when-viewing\", Value: true },\r\n { Key: \"show-empty-field-when-viewing\", Value: true }\r\n ];\r\n }\r\n };\r\n\r\n return dtoFactory;\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../tables/services/tableConfig.factory\";\r\nimport \"../../detachedToolbarRef/detachedToolbarRefContext.directive\";\r\nimport \"../../detachedToolbarRef/detachedToolbarRef.directive\";\r\n\r\nangularAMD.factory(\"helperService\", [\r\n \"$q\",\r\n \"$location\",\r\n \"multiLanguageService\",\r\n \"tableConfig\",\r\n function ($q, $location, multiLanguageService, tableConfig) {\r\n return {\r\n convertToDirectiveName: function (dto) {\r\n var BlockTypes = {\r\n ContentSectionRow: \"rowSection\",\r\n ContentSectionText: \"block-text\",\r\n ContentSectionMedia: function () {\r\n var directive_name;\r\n switch (dto.MediaType) {\r\n case \"image\":\r\n directive_name = \"block-image\";\r\n break;\r\n case \"video\":\r\n directive_name = \"block-video\";\r\n break;\r\n case \"audio\":\r\n directive_name = \"block-audio\";\r\n break;\r\n default:\r\n directive_name = \"block-unknown\";\r\n }\r\n return directive_name;\r\n },\r\n BuilderContentSection: \"block-content-section\",\r\n ContentSectionQuote: \"block-quote\",\r\n ContentSectionBadge: \"block-badge\",\r\n ContentSectionHero: \"block-hero\",\r\n ContentSectionEmbed: \"block-embed\",\r\n BuilderHintEmbed: \"block-embed\",\r\n BuilderEmbed: \"block-embed-user\",\r\n BuilderHeroBanner: \"block-hero\",\r\n BuilderSingleLineTextBox: \"block-single-line\",\r\n BuilderMultiLineTextBox: \"block-multi-line\",\r\n \"BuilderOptionsList-RadioButtons\": \"block-radio-button\",\r\n BuilderBinaryAnswerInput: \"block-binary\",\r\n BuilderTitleSingleLineTextBox: \"block-title-single-line\",\r\n \"BuilderOptionsList-Checkboxes\": \"block-checkbox\",\r\n \"BuilderOptionsList-DropDown\": \"block-drop-down\",\r\n \"BuilderFormTableContainer-RowHeadingsNoColumnHeadings\": \"block-table-basic-row\",\r\n \"BuilderFormTableContainer-FixedRows\": \"block-fixed-row\",\r\n \"BuilderFormTableContainer-RepeatingRows\": \"block-fixed-row\", //repeating uses the same template builder directive as fixed rows,\r\n BuilderSingleCells: \"block-single-cells\",\r\n \"BuilderFormTableContainer-RowHeadings\": \"block-table-basic-col-row\",\r\n BuilderDatePickerInput: \"block-date-picker\",\r\n BuilderFormSignatureElement: \"block-digital-signature\",\r\n BuilderFormUserMediaPicker: \"block-media-picker\",\r\n BuilderDynamicElement: \"block-dynamic-element\",\r\n GenericBuilderTable: \"block-generic-table\",\r\n \"BuilderRangeInput-Standard\": \"block-numeric\",\r\n \"BuilderRangeInput-Numeric\": \"block-numeric\",\r\n \"BuilderRangeInput-Likert\": \"block-likert\",\r\n BuilderCapabilityEvidenceOnly: \"block-capability-evidence\",\r\n BuilderHintImage: \"block-hint-image\",\r\n BuilderHintVideo: \"block-hint-video\",\r\n BuilderHintAudio: \"block-hint-audio\",\r\n BuilderHintText: \"block-hint-text\",\r\n \"BuilderCapabilityRangeInput-Standard\": \"block-rating-capability\",\r\n BuilderHorizontalRule: \"block-horizontal-rule\",\r\n \"BuilderCapabilityOptionList-RadioButtons\": \"block-capability-radio-button\",\r\n BuilderCapabilityBinaryAnswerInput: \"block-binary-capability\",\r\n BuilderUnknown: \"block-unknown\",\r\n BuilderFormBasicContainer: \"block-container\",\r\n BuilderStandardsSelection: \"block-standards-selection\",\r\n BuilderStandards: \"block-standard\"\r\n };\r\n\r\n if (dto.SectionType && dto.SectionType === \"ContentSectionMedia\") {\r\n return BlockTypes[dto.SectionType]();\r\n } else {\r\n return BlockTypes[dto.SectionType];\r\n }\r\n },\r\n\r\n getWorkbookPageIcon: function (value, ignorePostfix) {\r\n var postfix = \"-reversed\";\r\n if (ignorePostfix || (value && value.indexOf(postfix) > -1)) {\r\n postfix = \"\";\r\n }\r\n return (value + postfix || \"\").toLowerCase();\r\n },\r\n\r\n updateObject: function (obj_out, obj_in) {\r\n if (!obj_out || !obj_in) {\r\n return;\r\n }\r\n\r\n // In this case obj will be treated as ARRAY\r\n if (obj_out.constructor === Array && obj_in.constructor === Array) {\r\n var matchedObj;\r\n\r\n for (var i = 0; i < obj_out.length; i++) {\r\n matchedObj = this.getMatchOnKey(obj_in, obj_out[i]);\r\n\r\n if (matchedObj) {\r\n obj_out[i] = matchedObj;\r\n }\r\n }\r\n }\r\n // In this case obj will be treated as OBJECTS\r\n else {\r\n for (var prop in obj_out) {\r\n if (obj_in.hasOwnProperty(prop)) {\r\n obj_out[prop] = obj_in[prop];\r\n }\r\n }\r\n }\r\n },\r\n\r\n getMatchOnKey: function (a, b) {\r\n for (var i = 0; i < a.length; i++) {\r\n if (a[i].Key === b.Key) {\r\n return a[i];\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n extend: function (ChildClass, ParentClass) {\r\n ChildClass.prototype = ParentClass.prototype;\r\n ChildClass.prototype.constructor = ChildClass;\r\n },\r\n\r\n /**\r\n * Create json string from key and value and then converts it to JSON\r\n * @param key\r\n * @param value\r\n * @returns {*}\r\n */\r\n toJSON: function (key, value) {\r\n var json_string = '{\"' + key + '\": \"' + value + '\"}';\r\n return JSON.parse(json_string);\r\n },\r\n\r\n guid: function () {\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\r\n var r = (Math.random() * 16) | 0,\r\n v = c === \"x\" ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n },\r\n\r\n getBlockDefaultOptions: function (data, amountOfItems, itemObject) {\r\n if (data && data.length === 0) {\r\n amountOfItems = amountOfItems || 3;\r\n var dataArray = new Array(amountOfItems);\r\n for (var i = 0, len = dataArray.length; i < len; i++) {\r\n dataArray[i] = itemObject || { Key: this.guid(), Value: \"\" };\r\n }\r\n\r\n return dataArray;\r\n }\r\n\r\n return data;\r\n },\r\n\r\n normalizeDate: function (date) {\r\n if (!date) {\r\n return;\r\n }\r\n\r\n if (typeof date === \"string\") {\r\n if (date.indexOf(\"Z\") === -1) {\r\n date += \"Z\";\r\n }\r\n }\r\n\r\n var newDate = new Date(date);\r\n if (isNaN(newDate.getTime())) {\r\n return undefined;\r\n }\r\n\r\n return newDate;\r\n },\r\n\r\n getPreCompiledTemplateType: function (opts) {\r\n if (opts.row) {\r\n if (opts.view_mode) {\r\n return \"section_body_view_mode\";\r\n } else if (opts.builder_mode) {\r\n if (opts.data.SectionUneditable) {\r\n if (opts.no_drop_area === true) {\r\n return \"section_body_template_builder_mode_non_editable_no_drop_area\";\r\n } else {\r\n return \"section_body_template_builder_mode_non_editable\";\r\n }\r\n } else {\r\n for (var i = 0; i < opts.data.Sections.length; i++) {\r\n if (opts.data.Sections[i].SectionType === \"BuilderContentSection\") {\r\n return \"section_body_large_template_builder_mode\";\r\n }\r\n }\r\n return \"section_body_template_builder_mode\";\r\n }\r\n } else if (opts.data.SectionUneditable) {\r\n return \"section_body_non_editable\";\r\n } else {\r\n return \"section_body\";\r\n }\r\n } else {\r\n if (opts.view_mode) {\r\n return \"block_view_mode\";\r\n } else if (opts.builder_mode) {\r\n if (opts.block_uneditable === true && opts.data !== \"block-title-single-line\") {\r\n return \"block_template_builder_mode_no_drag_no_delete\";\r\n } else if (opts.data === \"block-title-single-line\") {\r\n return \"block_template_builder_mode_no_delete\";\r\n } else if (opts.data === \"block-hint-image\" || opts.data === \"block-hint-text\" || opts.data === \"block-hint-video\" || opts.data === \"block-hint-audio\") {\r\n return \"block\";\r\n } else {\r\n return \"block_template_builder_mode\";\r\n }\r\n } else if (opts.block_uneditable === true) {\r\n return \"block_template_builder_mode_no_drag_no_delete\";\r\n } else {\r\n return \"block\";\r\n }\r\n }\r\n },\r\n\r\n getPreCompiledString: function (opts) {\r\n return {\r\n section:\r\n '
' +\r\n '' +\r\n '
' +\r\n '
' +\r\n \"<\" +\r\n opts.embed_data +\r\n \" block-base>\" +\r\n '' +\r\n \"
\" +\r\n \"
\" +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '' +\r\n \"
\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\",\r\n\r\n section_body_non_editable:\r\n '
' +\r\n \"
\" +\r\n '
' +\r\n '
' +\r\n '
' +\r\n \"
\" +\r\n \"
\" +\r\n \"
\" +\r\n '
' +\r\n \"
\" +\r\n \"
\",\r\n\r\n section_body:\r\n '
' +\r\n '' +\r\n '
' +\r\n \"
\" +\r\n \"
\" +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '' +\r\n \"
\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\",\r\n\r\n section_body_large:\r\n '
' +\r\n '' +\r\n '
' +\r\n \"
\" +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '' +\r\n \"
\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\",\r\n\r\n section_body_large_template_builder_mode:\r\n '
' +\r\n \"
\" +\r\n '' +\r\n '
' +\r\n \"
\" +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '' +\r\n \"
\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\",\r\n\r\n section_body_template_builder_mode:\r\n '
' +\r\n \"
\" +\r\n '' +\r\n '
' +\r\n \"
\" +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '' +\r\n \"
\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\",\r\n\r\n section_body_template_builder_mode_non_editable:\r\n '
' +\r\n \"
\" +\r\n '' +\r\n '
' +\r\n \"
\" +\r\n '
' +\r\n '
' +\r\n '
' +\r\n \"
\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\",\r\n\r\n section_body_template_builder_mode_non_editable_no_drop_area:\r\n '
' +\r\n \"
\" +\r\n '
' +\r\n \"
\" +\r\n '
' +\r\n '
' +\r\n '
' +\r\n \"
\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\",\r\n\r\n section_view_mode:\r\n '
' +\r\n '
' +\r\n '
' +\r\n \"<\" +\r\n opts.embed_data +\r\n \" block-base\" +\r\n \">\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\",\r\n\r\n section_body_view_mode: '
' + '
' + \"
\" + \"
\",\r\n\r\n section_body_large_view_mode: '
' + '
' + \"
\" + \"
\",\r\n\r\n // IF YOU CHANGE THE BLOCK MAKE SURE YOU CHECK THE VIEW MODE BLOCK ONLY\r\n block:\r\n '
' +\r\n \"<\" +\r\n opts.embed_data +\r\n \" block-base\" +\r\n \">\" +\r\n '' +\r\n \"\" +\r\n \"
\",\r\n\r\n // IF YOU CHANGE THE BLOCK MAKE SURE YOU CHECK THE VIEW MODE BLOCK ONLY\r\n block_no_drag:\r\n '
' +\r\n \"<\" +\r\n opts.embed_data +\r\n \" block-base\" +\r\n \">\" +\r\n '' +\r\n \"\" +\r\n \"
\",\r\n\r\n block_template_builder_mode:\r\n '
' +\r\n \"<\" +\r\n opts.embed_data +\r\n \" block-base\" +\r\n \">\" +\r\n '' +\r\n \"
\",\r\n\r\n block_template_builder_mode_no_drag:\r\n '
' +\r\n \"<\" +\r\n opts.embed_data +\r\n \" block-base\" +\r\n \">\" +\r\n '' +\r\n \"
\",\r\n\r\n block_template_builder_mode_no_drag_no_delete:\r\n '
' +\r\n \"<\" +\r\n opts.embed_data +\r\n \" block-base\" +\r\n \">\" +\r\n \"
\",\r\n\r\n block_template_builder_mode_no_delete:\r\n '
' +\r\n \"<\" +\r\n opts.embed_data +\r\n \" block-base\" +\r\n \">\" +\r\n \"
\",\r\n\r\n block_view_mode:\r\n '
' +\r\n \"<\" +\r\n opts.embed_data +\r\n \" block-base\" +\r\n \">\" +\r\n \"
\"\r\n }[opts.template_type];\r\n },\r\n\r\n allowedProperties: {\r\n width: function (section_type, section_is_full) {\r\n if (section_is_full) {\r\n return -1;\r\n } else {\r\n return [\"ContentSectionText\", \"ContentSectionMedia\", \"ContentSectionQuote\", \"ContentSectionEmbed\", \"ContentSectionGallery\", \"ContentSectionBadge\"].indexOf(section_type);\r\n }\r\n },\r\n \"background-color\": function (section_type) {\r\n return [\r\n \"ContentSectionRow\",\r\n \"ContentSectionText\",\r\n \"ContentSectionMedia\",\r\n \"ContentSectionQuote\",\r\n \"ContentSectionHero\",\r\n \"ContentSectionEmbed\",\r\n \"ContentSectionGallery\",\r\n \"ContentSectionBadge\"\r\n ].indexOf(section_type);\r\n },\r\n \"block-width\": function (section_type) {\r\n return [\r\n \"BuilderContentSection\",\r\n \"ContentSection\",\r\n \"ContentSectionRow\",\r\n \"ContentSectionText\",\r\n \"ContentSectionMedia\",\r\n \"ContentSectionQuote\",\r\n \"ContentSectionHero\",\r\n \"ContentSectionEmbed\",\r\n \"ContentSectionGallery\",\r\n \"ContentSectionBadge\"\r\n ].indexOf(section_type);\r\n },\r\n \"element-purpose-title-required\": function (section_type) {\r\n return [].indexOf(section_type);\r\n }\r\n },\r\n\r\n shouldItHasThisProperty: function (section_type, style_option, section_is_full) {\r\n return this.allowedProperties[style_option](section_type, section_is_full) > -1;\r\n },\r\n\r\n resetSectionSize: function (sectionDto, blockType, checkStandardWidthTypes) {\r\n var blockWidth = sectionDto.StyleOptions.where({ Key: \"block-width\" })[0],\r\n rowSize = sectionDto.StyleOptions.where({ Key: \"width\" })[0];\r\n\r\n //Temp solution until Hint Image Block behaviour can be normalised, currently they jump between 100 and 75 in width. Brad has logged a task to deal with this.\r\n var forceStandardWidthTypes = [\"BuilderHintImage\", \"block-hint-image\"],\r\n standardWidth = 75;\r\n\r\n blockWidth.Value = checkStandardWidthTypes && forceStandardWidthTypes.indexOf(blockType) !== -1 ? standardWidth : this.getDefaultBlockWidth(blockType);\r\n if (rowSize) {\r\n rowSize.Value = this.getDefaultRowSize(blockType);\r\n }\r\n\r\n return sectionDto;\r\n },\r\n\r\n getDefaultRowSize: function (block_type, defaultSize) {\r\n switch (block_type) {\r\n case \"block-hero\":\r\n case \"block-quote\":\r\n case \"ContentSectionQuote\":\r\n case \"ContentSectionHero\":\r\n case \"BuilderContentSection\":\r\n case \"block-content-section\":\r\n case \"ContentSection\":\r\n return \"section-large\";\r\n break;\r\n\r\n default:\r\n return defaultSize === \"medium\" ? \"section-medium\" : \"section-small\";\r\n }\r\n },\r\n\r\n getDefaultBlockWidth: function (block_type) {\r\n return 100;\r\n },\r\n\r\n getDefaultRowBackgroundColour: function (block_type) {\r\n switch (block_type) {\r\n case \"block-quote\":\r\n case \"ContentSectionQuote\":\r\n return \"#3b3c3d\";\r\n default:\r\n return \"transparent\";\r\n }\r\n },\r\n\r\n setSectionIsFull: function (block_type) {\r\n var alwaysSectionIsFull = [\r\n \"block-hero\",\r\n \"BuilderSingleLineTextBox\",\r\n \"block-single-line\",\r\n \"BuilderMultiLineTextBox\",\r\n \"block-multi-line\",\r\n \"BuilderOptionsList-RadioButtons\",\r\n \"block-radio-button\",\r\n \"BuilderBinaryAnswerInput\",\r\n \"block-binary\",\r\n \"BuilderOptionsList-Checkboxes\",\r\n \"block-checkbox\",\r\n \"block-drop-down\",\r\n \"BuilderOptionsList-DropDown\",\r\n \"block-drop-down\",\r\n \"BuilderRangeInput-Standard\",\r\n \"block-numeric\",\r\n \"BuilderRangeInput-Likert\",\r\n \"block-likert\",\r\n \"BuilderCapabilityEvidenceOnly\",\r\n \"block-capability-evidence\",\r\n \"BuilderCapabilityRangeInput-Standard\",\r\n \"block-rating-capability\",\r\n \"BuilderCapabilityOptionList-RadioButtons\",\r\n \"block-capability-radio-button\",\r\n \"block-horizontal-rule\",\r\n \"block-generic-table__BuilderRubricContainer\",\r\n \"GenericBuilderTable\",\r\n \"block-generic-table\",\r\n \"BuilderCapabilityBinaryAnswerInput\",\r\n \"block-binary-capability\",\r\n \"BuilderFormUserMediaPicker\",\r\n \"block-media-picker\"\r\n ];\r\n\r\n return alwaysSectionIsFull.indexOf(block_type) > -1;\r\n },\r\n\r\n setColorBasedOnBackgroundColor: function (background_color, item) {\r\n var colorItem = this.getItemFromKey(\"color\", item.StyleOptions);\r\n if (colorItem === undefined) {\r\n colorItem = { Key: \"color\", Value: \"#ffffff\" };\r\n item.StyleOptions.push(colorItem);\r\n }\r\n if (background_color === \"transparent\") {\r\n colorItem.Value = \"#202020\";\r\n } else {\r\n colorItem.Value = \"#ffffff\";\r\n }\r\n },\r\n\r\n getValueFromKey: function (key, array) {\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i].Key === key) {\r\n return array[i].Value;\r\n }\r\n }\r\n return null;\r\n },\r\n\r\n getItemFromKey: function (key, array) {\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i].Key === key) {\r\n return array[i];\r\n }\r\n }\r\n return null;\r\n },\r\n\r\n removeItemByKeyValue: function (array, value, keyName) {\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i][keyName] === value) {\r\n array.splice(i, 1);\r\n break;\r\n }\r\n }\r\n },\r\n\r\n removeBlankCategory: function (subType, array) {\r\n if (subType !== \"\") {\r\n this.removeItemByKeyValue(array, \"\", \"Key\");\r\n }\r\n },\r\n\r\n isVisible: function (element) {\r\n \"use strict\";\r\n\r\n /**\r\n * Checks if a DOM element is visible. Takes into\r\n * consideration its parents and overflow.\r\n *\r\n * @param (el) the DOM element to check if is visible\r\n *\r\n * These params are optional that are sent in recursively,\r\n * you typically won't use these:\r\n *\r\n * @param (t) Top corner position number\r\n * @param (r) Right corner position number\r\n * @param (b) Bottom corner position number\r\n * @param (l) Left corner position number\r\n * @param (w) Element width number\r\n * @param (h) Element height number\r\n */\r\n function _isVisible(el, t, r, b, l, w, h) {\r\n var p = el.parentNode,\r\n VISIBLE_PADDING = 2;\r\n\r\n if (!_elementInDocument(el)) {\r\n return false;\r\n }\r\n\r\n if ([null, undefined].indexOf(el.getAttribute(\"block-base\")) === -1) {\r\n return true;\r\n }\r\n\r\n //-- Return true for document node\r\n if (9 === p.nodeType) {\r\n return true;\r\n }\r\n\r\n //-- Return false if our element is invisible\r\n if (\r\n //'0' === _getStyle(el, 'opacity') ||\r\n \"none\" === _getStyle(el, \"display\") ||\r\n \"hidden\" === _getStyle(el, \"visibility\")\r\n ) {\r\n return false;\r\n }\r\n\r\n if (\"undefined\" === typeof t || \"undefined\" === typeof r || \"undefined\" === typeof b || \"undefined\" === typeof l || \"undefined\" === typeof w || \"undefined\" === typeof h) {\r\n t = el.offsetTop;\r\n l = el.offsetLeft;\r\n b = t + el.offsetHeight;\r\n r = l + el.offsetWidth;\r\n w = el.offsetWidth;\r\n h = el.offsetHeight;\r\n }\r\n //-- If we have a parent, let's continue:\r\n if (p) {\r\n //-- Check if the parent can hide its children.\r\n if (\"hidden\" === _getStyle(p, \"overflow\") || \"scroll\" === _getStyle(p, \"overflow\")) {\r\n //-- Only check if the offset is different for the parent\r\n if (\r\n //-- If the target element is to the right of the parent elm\r\n l + VISIBLE_PADDING > p.offsetWidth + p.scrollLeft ||\r\n //-- If the target element is to the left of the parent elm\r\n l + w - VISIBLE_PADDING < p.scrollLeft ||\r\n //-- If the target element is under the parent elm\r\n t + VISIBLE_PADDING > p.offsetHeight + p.scrollTop ||\r\n //-- If the target element is above the parent elm\r\n t + h - VISIBLE_PADDING < p.scrollTop\r\n ) {\r\n //-- Our target element is out of bounds:\r\n return false;\r\n }\r\n }\r\n //-- Add the offset parent's left/top coords to our element's offset:\r\n if (el.offsetParent === p) {\r\n l += p.offsetLeft;\r\n t += p.offsetTop;\r\n }\r\n //-- Let's recursively check upwards:\r\n return _isVisible(p, t, r, b, l, w, h);\r\n }\r\n return true;\r\n }\r\n\r\n //-- Cross browser method to get style properties:\r\n function _getStyle(el, property) {\r\n if (window.getComputedStyle) {\r\n return document.defaultView.getComputedStyle(el, null)[property];\r\n }\r\n if (el.currentStyle) {\r\n return el.currentStyle[property];\r\n }\r\n }\r\n\r\n function _elementInDocument(element) {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n while ((element = element.parentNode)) {\r\n if (element === document) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n return _isVisible(element);\r\n },\r\n\r\n friendlyMainType: function (_mainType_) {\r\n var returnString = \"\";\r\n\r\n if (typeof _mainType_ !== \"string\") {\r\n return _mainType_;\r\n }\r\n\r\n returnString = multiLanguageService.getString(\"types.main_types.\" + _mainType_.toLowerCase())\r\n ? multiLanguageService.getString(\"types.main_types.\" + _mainType_.toLowerCase())\r\n : _mainType_;\r\n\r\n return returnString.toLowerCase();\r\n },\r\n\r\n cascadeBlockSettingsFromAsset: function (blockDto, assetDto) {\r\n switch (blockDto.SectionType) {\r\n case \"BuilderSingleLineTextBox\":\r\n case \"BuilderMultiLineTextBox\":\r\n this.getItemFromKey(\"show-empty-field-when-viewing\", blockDto.StyleOptions).Value = assetDto.PreferenceShowEmptyFieldWhenAnAssetIsViewed;\r\n this.getItemFromKey(\"infield-hint\", blockDto.StyleOptions).Value = assetDto.PreferenceUseInFieldHintsWherePossible;\r\n this.getItemFromKey(\"show-hint-when-viewing\", blockDto.StyleOptions).Value = assetDto.PreferenceIncludeHintWhenAssetIsViewed;\r\n break;\r\n case \"BuilderOptionsList-RadioButtons\":\r\n case \"BuilderOptionsList-Checkboxes\":\r\n case \"BuilderFormTableContainer-RowHeadingsNoColumnHeadings\":\r\n case \"BuilderFormTableContainer-RowHeadings\":\r\n case \"BuilderFormTableContainer-FixedRow\":\r\n case \"BuilderFormTableContainer-SingleCells\":\r\n case \"BuilderOptionsList-DropDown\":\r\n case \"BuilderRangeInput-Standard\":\r\n case \"BuilderRangeInput-Likert\":\r\n case \"BuilderCapabilityEvidenceOnly\":\r\n case \"BuilderCapabilityOptionList-RadioButtons\":\r\n case \"BuilderBinaryAnswerInput\":\r\n case \"BuilderCapabilityRangeInput-Standard\":\r\n case \"BuilderCapabilityBinaryAnswerInput\":\r\n case \"BuilderFormSignatureElement\":\r\n case \"BuilderFormUserMediaPicker\":\r\n case \"BuilderDatePickerInput\":\r\n this.getItemFromKey(\"show-empty-field-when-viewing\", blockDto.StyleOptions).Value = assetDto.PreferenceShowEmptyFieldWhenAnAssetIsViewed;\r\n this.getItemFromKey(\"show-hint-when-viewing\", blockDto.StyleOptions).Value = assetDto.PreferenceIncludeHintWhenAssetIsViewed;\r\n break;\r\n }\r\n },\r\n\r\n canBlocksBeInSameRow: function (obj) {\r\n //we are only stopping block from being next to each other in builderMode at present\r\n if (obj.builderMode) {\r\n // check if both dragging and drop target blocks allow be side by side (in the same row)\r\n return obj.allowSideBySide && obj.data.allowSideBySide;\r\n } else {\r\n return true;\r\n }\r\n },\r\n\r\n isResourceBuilder: function (type) {\r\n var resourceTypes = [\"WorkbookBuilder\", \"TemplateBuilder\"];\r\n return resourceTypes.indexOf(type) !== -1;\r\n },\r\n\r\n checkIsSaved: function () {\r\n if (this.checkIsSavedFn) {\r\n return this.checkIsSavedFn();\r\n } else {\r\n return $q.when();\r\n }\r\n },\r\n\r\n checkIsSavedFn: null,\r\n\r\n notAllowedRoute: [\"webfolio\", \"foliopage\", \"template\", \"workbook\", \"collection\", \"activitylog\", \"post\", \"blog\", \"builder\", \"file\", \"viewer\", \"public\"],\r\n\r\n generateNotAllowedRouteRegex: function () {\r\n var regex = \"(\" + this.notAllowedRoute.join(\"|\") + \")\";\r\n return new RegExp(regex, \"g\");\r\n },\r\n\r\n isNotInAsset: function () {\r\n var regex = this.generateNotAllowedRouteRegex();\r\n return !regex.test($location.path());\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../dataManager/helperService\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\n\r\nangularAMD.service(\"BlockInputOptionsHelper\", BlockInputOptionsHelper);\r\nBlockInputOptionsHelper.$inject = [\"helperService\", \"multiLanguageService\"];\r\n\r\nfunction BlockInputOptionsHelper(helperService, multiLanguageService) {\r\n //Public API\r\n //=============================================================================================================\r\n this.getConfig = getConfig;\r\n this.getModelKeyFromType = getModelKeyFromType;\r\n this.getOptions = getOptions;\r\n this.setOptions = setOptions;\r\n this.getInputType = getInputType;\r\n this.getStyleKeys = getStyleKeys;\r\n this.createOptionDto = createOptionDto;\r\n this.validAmountOfItemsPerRow = validAmountOfItemsPerRow;\r\n this.getDefaultNumberOfOptions = getDefaultNumberOfOptions;\r\n this.getInlineOptions = getInlineOptions;\r\n\r\n //Private Variables\r\n //=============================================================================================================\r\n var defaultNumberOfOptions = 3; //Number of options that a newly created Block should contain\r\n\r\n var inlineOptionsConfig = {\r\n //Display horizontal config options - min, max, default\r\n min: 1,\r\n max: 6,\r\n default: 3\r\n };\r\n\r\n var typeConfigs = {\r\n \"BuilderOptionsList-Checkboxes\": {\r\n modelKey: \"Checkboxes\",\r\n inputType: \"checkbox\",\r\n styleKeys: {\r\n privacy: \"privacy-state\"\r\n },\r\n forceEvidence: false,\r\n labels: {\r\n add: multiLanguageService.getString(\"labels.builder.add_checkbox_button\")\r\n }\r\n },\r\n\r\n \"BuilderOptionsList-RadioButtons\": {\r\n modelKey: \"Radios\",\r\n inputType: \"radio\",\r\n styleKeys: {\r\n privacy: \"privacy-state\"\r\n },\r\n forceEvidence: false,\r\n labels: {\r\n add: multiLanguageService.getString(\"labels.builder.add_radio_btn_button\")\r\n }\r\n },\r\n \"BuilderCapabilityOptionList-RadioButtons\": {\r\n modelKey: \"Radios\",\r\n inputType: \"radio\",\r\n styleKeys: {\r\n privacy: \"privacy-state-private-only\"\r\n },\r\n forceEvidence: true,\r\n labels: {\r\n add: multiLanguageService.getString(\"labels.builder.add_radio_btn_button\")\r\n }\r\n }\r\n };\r\n\r\n //Private methods\r\n //=============================================================================================================\r\n /**\r\n * @param {string} type\r\n * @returns {Object|null}\r\n */\r\n function getConfig(type) {\r\n return typeConfigs[type] || null;\r\n }\r\n\r\n /**\r\n * @param {string} type\r\n * @returns {string}\r\n */\r\n function getModelKeyFromType(type) {\r\n var typeObj = typeConfigs[type];\r\n return typeObj !== void 0 ? typeObj.modelKey : \"\";\r\n }\r\n\r\n /**\r\n * @param {Object} dto\r\n * @returns {Object|null}\r\n */\r\n function getOptions(dto) {\r\n var modelKey = getModelKeyFromType(dto.SectionType);\r\n return dto[modelKey] || null;\r\n }\r\n\r\n /**\r\n * @param {Object} dto\r\n * @param {Object[]} options\r\n */\r\n function setOptions(dto, options) {\r\n var modelKey = getModelKeyFromType(dto.SectionType);\r\n dto[modelKey] = options || [];\r\n }\r\n\r\n /**\r\n * @param {string} type\r\n * @returns {*}\r\n */\r\n function getInputType(type) {\r\n var typeObj = typeConfigs[type];\r\n return typeObj !== void 0 ? typeObj.inputType : \"\";\r\n }\r\n\r\n /**\r\n * @param {string} type\r\n * @returns {Object|null}\r\n */\r\n function getStyleKeys(type) {\r\n var typeObj = typeConfigs[type];\r\n return typeObj !== void 0 ? typeObj.styleKeys : null;\r\n }\r\n\r\n /**\r\n * @returns {{Key: string, Value: string}}\r\n */\r\n function createOptionDto() {\r\n return {\r\n Key: helperService.guid(),\r\n Value: \"\"\r\n };\r\n }\r\n\r\n /**\r\n * @param {number} itemsPerRow\r\n * @returns {Boolean}\r\n */\r\n function validAmountOfItemsPerRow(itemsPerRow) {\r\n return itemsPerRow >= inlineOptionsConfig.min && itemsPerRow <= inlineOptionsConfig.max;\r\n }\r\n\r\n /**\r\n * @returns {number}\r\n */\r\n function getDefaultNumberOfOptions() {\r\n return defaultNumberOfOptions;\r\n }\r\n\r\n /**\r\n * @returns {{min: number, max: number, default: number}}\r\n */\r\n function getInlineOptions() {\r\n return inlineOptionsConfig;\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../dataManager/dataManagerService\";\r\nimport \"./services/pageReuseFactory.factory\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport template from \"./templates/page-reuse.html\";\r\n\r\nangularAMD.directive(\"pageReuse\", PageReuse);\r\nPageReuse.$inject = [];\r\n\r\nangularAMD.controller(\"PageReuseController\", PageReuseController);\r\nPageReuseController.$inject = [\"$scope\", \"$q\", \"PageReuseFactory\", \"multiLanguageService\"];\r\n\r\nfunction PageReuse() {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n rootAssetId: \"@\",\r\n label: \"@\",\r\n page: \"=\",\r\n onUpdate: \"&\"\r\n },\r\n controller: PageReuseController,\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n };\r\n}\r\n\r\nfunction PageReuseController($scope, $q, pageReuseFactory, multiLanguageService) {\r\n this.services = {\r\n $q: $q,\r\n pageReuseFactory: pageReuseFactory\r\n };\r\n\r\n this.pageReuseHandler = null;\r\n this.visibleInStore = false;\r\n this.updating = false;\r\n this.multiLanguageService = multiLanguageService;\r\n this.updatingMessage = this.multiLanguageService.getString(\"builder.toolbar.page_reuse.updating\");\r\n this.error = \"\";\r\n\r\n $scope.$watch(\"vm.page\", this.onPageUpdate.bind(this));\r\n}\r\n\r\nPageReuseController.prototype.onPageUpdate = function (newPage, oldPage) {\r\n if (newPage) {\r\n this.pageReuseHandler = this.services.pageReuseFactory.createHandler(this.rootAssetId, this.page);\r\n this.visibleInStore = this.pageReuseHandler.isPageVisible();\r\n }\r\n};\r\n\r\nPageReuseController.prototype.onChange = function () {\r\n this.error = \"\";\r\n this.updating = true;\r\n\r\n return this.updatePageVisibility(this.visibleInStore).finally(\r\n function () {\r\n this.updating = false;\r\n }.bind(this)\r\n );\r\n};\r\n\r\nPageReuseController.prototype.updatePageVisibility = function (visibleInStore) {\r\n var newFolder = this.pageReuseHandler.getFolderFromState(visibleInStore);\r\n var errorHandler = this.onUpdateError.bind(this, visibleInStore);\r\n return this.pageReuseHandler.checkIfMoveIsPossible(newFolder).then(\r\n function (valid) {\r\n if (valid) {\r\n var params = { assetId: this.pageReuseHandler.getAssetIdForPage(), folder: newFolder, rootAssetId: this.rootAssetId };\r\n this.pageReuseHandler.updateFolder(newFolder);\r\n return this.onUpdate(params).then(this.onUpdateSuccess.bind(this, visibleInStore), errorHandler);\r\n } else {\r\n return this.onUpdateError(visibleInStore, { deleted: true });\r\n }\r\n }.bind(this),\r\n errorHandler\r\n );\r\n};\r\n\r\nPageReuseController.prototype.onUpdateSuccess = function (visibleInStore) {\r\n this.visibleInStore = visibleInStore;\r\n};\r\n\r\nPageReuseController.prototype.onUpdateError = function (visibleInStore, rejection) {\r\n //Reset back to old folder!\r\n var visibilityState = !visibleInStore;\r\n this.pageReuseHandler.updateFolder(this.pageReuseHandler.getFolderFromState(visibilityState));\r\n this.visibleInStore = visibilityState;\r\n this.error =\r\n rejection && rejection.deleted ? this.multiLanguageService.getString(\"builder.toolbar.page_reuse.error_deleted\") : this.multiLanguageService.getString(\"builder.toolbar.page_reuse.error\");\r\n};\r\n","export default `
{{::vm.updatingMessage}}

{{vm.error}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSET_CONSTANTS } from \"../../../constants/asset.constants\";\r\nimport \"../../dataManager/dataManagerService\";\r\nimport \"../../../assetStore/services/assetStoreService\";\r\n\r\nangularAMD.service(\"PageReuseFactory\", PageReuseFactory);\r\nPageReuseFactory.$inject = [\"dataManagerService\", \"assetStoreService\"];\r\n\r\nfunction PageReuseFactory(dataManagerService, assetStoreService) {\r\n this.isSupportedFolder = function (pageFolder) {\r\n return PageReuseHandler.supportedFolders.contains(pageFolder);\r\n };\r\n\r\n this.createHandler = function (rootAssetId, page) {\r\n return new PageReuseHandler(rootAssetId, page, dataManagerService, assetStoreService.getFolderLocationForAsset);\r\n };\r\n}\r\n\r\n/**\r\n * @param {String} rootAssetId\r\n * @param {Object} page\r\n * @param {Object} dataManager\r\n * @param {Function} getFolderLocationForAsset\r\n * @constructor\r\n */\r\nfunction PageReuseHandler(rootAssetId, page, dataManager, getFolderLocationForAsset) {\r\n this.rootAssetId = rootAssetId;\r\n this.page = page;\r\n this.dataManager = dataManager;\r\n this.getFolderLocationForAsset = getFolderLocationForAsset;\r\n this.manager = this.dataManager.getDto(rootAssetId);\r\n\r\n var pageKeys = ASSET_CONSTANTS.PAGE_KEYS;\r\n this.pageAssetIdKeys = [pageKeys.USER_RESPONSE_ID, pageKeys.CONTENT_ID, pageKeys.PAGE_ASSET_ID]; //Order is important!\r\n}\r\n\r\nPageReuseHandler.supportedFolders = [ASSET_CONSTANTS.FOLDERS.MAIN, ASSET_CONSTANTS.FOLDERS.INVISIBLE];\r\n\r\n/**\r\n * @param {Boolean} visible\r\n * @returns {String}\r\n */\r\nPageReuseHandler.prototype.getFolderFromState = function (visible) {\r\n return visible ? ASSET_CONSTANTS.FOLDERS.MAIN : ASSET_CONSTANTS.FOLDERS.INVISIBLE;\r\n};\r\n\r\n/**\r\n * @returns {Object|null}\r\n */\r\nPageReuseHandler.prototype.getManagerForPage = function () {\r\n var pageAssetId = this.getAssetIdForPage();\r\n\r\n var manager = this.dataManager.getDto(pageAssetId);\r\n return manager || null;\r\n};\r\n\r\nPageReuseHandler.prototype.getAssetIdForPage = function () {\r\n var page = this.page;\r\n var assetIdKey = this.pageAssetIdKeys.find(function (key) {\r\n return !!page[key];\r\n });\r\n\r\n return page[assetIdKey];\r\n};\r\n\r\n/**\r\n * @param {String} newFolder\r\n */\r\nPageReuseHandler.prototype.updateFolder = function (newFolder) {\r\n this.updateFolderForPageDto(newFolder);\r\n this.updateFolderForPageAsset(newFolder);\r\n};\r\n\r\n/**\r\n * @param {String} newFolder\r\n */\r\nPageReuseHandler.prototype.updateFolderForPageDto = function (newFolder) {\r\n this.page.PageFolder = newFolder;\r\n\r\n //If the manager for the root parent exists has unsaved changes, we need commit the PageDto Folder change into localstorage!\r\n if (!this.dataManager.checkIfSaved(this.manager.AssetId)) {\r\n this.manager.reviseData();\r\n this.manager.save();\r\n }\r\n};\r\n\r\n/**\r\n * @param {String} newFolder\r\n */\r\nPageReuseHandler.prototype.updateFolderForPageAsset = function (newFolder) {\r\n //If assetDto exists in memory for page, update it to keep it in sync.\r\n var managerForPage = this.getManagerForPage();\r\n //If the manager for the page exists in active Memory, we need commit the PageDto Folder change into localstorage!\r\n if (managerForPage) {\r\n managerForPage.data.Title = this.page.PageTitle;\r\n managerForPage.data.AssetFolder = newFolder;\r\n\r\n managerForPage.reviseData();\r\n managerForPage.save();\r\n }\r\n};\r\n\r\n/**\r\n * @param {Boolean} visibleInStore\r\n * @returns {Boolean}\r\n */\r\nPageReuseHandler.prototype.inFolderForVisibility = function (visibleInStore) {\r\n return this.page.PageFolder === this.getFolderFromState(visibleInStore);\r\n};\r\n\r\n/**\r\n * @param {String} newFolder\r\n * @returns {Promise} - Resolves with Boolean\r\n */\r\nPageReuseHandler.prototype.checkIfMoveIsPossible = function (newFolder) {\r\n return this.getFolderLocationForAsset(this.getAssetIdForPage()).then(\r\n function (currentPageFolder) {\r\n return currentPageFolder !== ASSET_CONSTANTS.FOLDERS.DELETED && PageReuseHandler.supportedFolders.contains(newFolder);\r\n }.bind(this)\r\n );\r\n};\r\n\r\n/**\r\n * @returns {Boolean}\r\n */\r\nPageReuseHandler.prototype.isPageVisible = function () {\r\n return this.page.PageFolder === ASSET_CONSTANTS.FOLDERS.MAIN;\r\n};\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../../assetEndpointService/assetEndpoint.service\";\r\n\r\nangularAMD.factory(\"assetProgressTrackingService\", [\r\n \"$q\",\r\n \"$http\",\r\n \"$location\",\r\n \"AssetEndpointService\",\r\n function ($q, $http, $location, AssetEndpointService) {\r\n return {\r\n getProgressData: function (assetId, submissionId, timeslice) {\r\n var deferred = $q.defer();\r\n\r\n // reject if assetId is missing\r\n if (!assetId) {\r\n deferred.reject();\r\n } else {\r\n $http.defaults.withCredentials = true;\r\n AssetEndpointService.getCurrentProgress(assetId, submissionId, timeslice).then(\r\n function (success) {\r\n if (success && success.data && !(typeof success.data === \"string\" || success.data instanceof String)) {\r\n deferred.resolve(success.data);\r\n } else {\r\n deferred.reject(success);\r\n }\r\n },\r\n function (fail) {\r\n deferred.reject(fail);\r\n }\r\n );\r\n }\r\n\r\n return deferred.promise;\r\n },\r\n\r\n isPublic: function (ignoreViewer) {\r\n return $location.absUrl().indexOf(\"#/public/\") > -1 || (!ignoreViewer && $location.absUrl().indexOf(\"#/viewer/\") > -1);\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.service(\"tableConfig\", factory());\r\n\r\nfunction factory() {\r\n function TableConfig() {\r\n // Table Configs\r\n var configs = {\r\n maxColumn: 10,\r\n minColumn: 1,\r\n minRow: 1,\r\n maxRow: 100,\r\n minCell: 1,\r\n maxCell: 100,\r\n minCellWidth: 8,\r\n widthIncrement: 5,\r\n defaultTableSize: {\r\n \"BuilderFormTableContainer-FixedRows\": 3,\r\n \"BuilderFormTableContainer-RepeatingRows\": 3,\r\n \"BuilderFormTableContainer-RowHeadingsNoColumnHeadings\": 3,\r\n \"BuilderFormTableContainer-RowHeadings\": 3,\r\n BuilderSingleCells: 4,\r\n BuilderRubricContainer: 4\r\n }\r\n };\r\n\r\n // Public API\r\n // =============================================================================================================\r\n this.configs = configs;\r\n this.type = {\r\n builder: {\r\n table: {\r\n columnsOnly: \"BuilderFormTableContainer-FixedRows\",\r\n columnsOnlyRepeating: \"BuilderFormTableContainer-RepeatingRows\",\r\n rowsOnly: \"BuilderFormTableContainer-RowHeadingsNoColumnHeadings\",\r\n rowsAndColumns: \"BuilderFormTableContainer-RowHeadings\",\r\n singleCell: \"BuilderSingleCells\"\r\n },\r\n rubric: {\r\n rowsAndColumns: \"BuilderRubricContainer\"\r\n }\r\n },\r\n fillerViewer: {\r\n table: {\r\n columnsOnly: \"FormTableContainer-FixedRows\",\r\n columnsOnlyRepeating: \"FormTableContainer-RepeatingRows\",\r\n rowsOnly: \"FormTableContainer-RowHeadingsNoColumnHeadings\",\r\n rowsAndColumns: \"FormTableContainer-RowHeadings\",\r\n singleCell: \"ElementCells\",\r\n repeatingContainer: \"RepeatingContainer\"\r\n },\r\n rubric: {\r\n rowsAndColumns: \"RubricContainer\"\r\n }\r\n }\r\n };\r\n\r\n this.checkLimit = {\r\n isMax: isLimit(\"max\"),\r\n isMin: isLimit(\"min\")\r\n };\r\n\r\n // Private methods\r\n // =============================================================================================================\r\n var self = this;\r\n\r\n function isLimit(limitType) {\r\n return function (role, tableType, data) {\r\n var limitValue; // if undefined, then it means 'infinite' (no limit)\r\n var valueToCheck = data[role + \"s\"].length;\r\n switch (tableType) {\r\n case self.type.builder.table.columnsOnly:\r\n case self.type.builder.table.rowsOnly:\r\n case self.type.builder.table.columnsOnlyRepeating:\r\n limitValue = configs[limitType + role];\r\n break;\r\n case self.type.builder.table.rowsAndColumns:\r\n case self.type.builder.rubric.rowsAndColumns:\r\n limitValue = configs[limitType + role] + 1;\r\n break;\r\n case self.type.builder.table.singleCell:\r\n limitValue = configs[limitType + \"Cell\"];\r\n break;\r\n }\r\n\r\n if (!limitValue) {\r\n return false;\r\n }\r\n\r\n if (limitType === \"max\") {\r\n return valueToCheck >= limitValue;\r\n } else if (limitType === \"min\") {\r\n return valueToCheck <= limitValue;\r\n }\r\n };\r\n }\r\n }\r\n\r\n return TableConfig;\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { TABLE_DATA_TYPES } from \"../../../constants/tableDataTypes.constants\";\r\nimport \"../../../utilities/helpers\";\r\nimport \"./tableConfig.factory\";\r\nimport \"../../../datePicker/datePickerHelper\";\r\nimport \"../../../utilities/typeCheck.service\";\r\n\r\nangularAMD.service(\"tableDataHelper\", TableDataHelper);\r\nTableDataHelper.$inject = [\"$window\", \"helpers\", \"tableConfig\", \"datePickerHelper\", \"typeCheck\"];\r\n\r\nfunction TableDataHelper($window, helpers, tableConfig, datePickerHelper, typeCheck) {\r\n // Public API\r\n // =============================================================================================================\r\n this.getCellRole = getCellRole;\r\n this.convertTableDimensions = convertTableDimensions;\r\n this.getTableDimensions = getTableDimensions;\r\n this.getCellCount = getCellCount;\r\n this.findAndUpdateCellData = findAndUpdateCellData;\r\n this.calculateColWidth = calculateColWidth;\r\n this.capitalizeFirstLetter = capitalizeFirstLetter;\r\n this.getNewCell = getNewCell;\r\n this.generateNewCell = generateNewCell;\r\n this.generateNewRow = generateNewRow;\r\n this.getNewRow = getNewRow;\r\n this.getIndex = getIndex;\r\n this.extractIndex = extractIndex;\r\n this.putAtPosition = putAtPosition;\r\n this.removeAtPosition = removeAtPosition;\r\n this.updateColumnsWidth = updateColumnsWidth;\r\n this.getNewCol = getNewCol;\r\n this.formatCellId = formatCellId;\r\n this.resetData = resetData;\r\n this.getCellRoleForNonBuilder = getCellRoleForNonBuilder;\r\n this.getCellRoleByMode = getCellRoleByMode;\r\n this.findCellById = findCellById;\r\n\r\n // Private Properties\r\n // =============================================================================================================\r\n var resetStockValues = {\r\n cell: {\r\n Label: \"\",\r\n Points: 0,\r\n IsSelected: false\r\n },\r\n col: {\r\n Width: 0\r\n }\r\n };\r\n\r\n // Private methods\r\n // =============================================================================================================\r\n function getCellRole(tableType, cellId, data) {\r\n var cellRole;\r\n\r\n switch (tableType) {\r\n case tableConfig.type.builder.table.columnsOnly:\r\n case tableConfig.type.builder.table.columnsOnlyRepeating:\r\n cellRole = \"column\";\r\n break;\r\n case tableConfig.type.builder.table.rowsOnly:\r\n cellRole = \"row\";\r\n break;\r\n case tableConfig.type.builder.table.rowsAndColumns:\r\n case tableConfig.type.builder.rubric.rowsAndColumns:\r\n var firstColumnId = getFirstId(\"column\", data),\r\n firstRowId = getFirstId(\"row\", data);\r\n\r\n if (cellId.indexOf(firstRowId) > -1) {\r\n cellRole = \"column\";\r\n } else if (cellId.indexOf(firstColumnId) > -1) {\r\n cellRole = \"row\";\r\n }\r\n break;\r\n case tableConfig.type.builder.table.singleCell:\r\n cellRole = \"cell\";\r\n break;\r\n }\r\n\r\n return cellRole;\r\n }\r\n\r\n function getCellRoleForNonBuilder(tableType, cellId, tableData) {\r\n return getCellRole(\"Builder\" + tableType, cellId, tableData);\r\n }\r\n\r\n function getCellRoleByMode(tableData, cellId, mode) {\r\n return mode === TABLE_DATA_TYPES.MODES.BUILDER ? getCellRole(tableData.TableType, cellId, tableData) : getCellRoleForNonBuilder(tableData.TableType, cellId, tableData);\r\n }\r\n\r\n function convertTableDimensions(stringTableDimensions) {\r\n var splitValue = stringTableDimensions.toString().split(\",\");\r\n\r\n if (splitValue.length === 1) {\r\n return {\r\n cells: splitValue[0]\r\n };\r\n } else {\r\n return {\r\n cols: splitValue[0],\r\n rows: splitValue[1]\r\n };\r\n }\r\n }\r\n\r\n function getTableDimensions(data) {\r\n return {\r\n cols:\r\n data.Columns.length + _checkForHeaderInTableDimensions(data.Columns[0].ColumnType, data.TableType) + _checkForTotalInTableDimensions(data.Columns[data.Columns.length - 1].ColumnType),\r\n rows: data.Rows.length + _checkForHeaderInTableDimensions(data.Rows[0].RowType, data.TableType) + _checkForTotalInTableDimensions(data.Rows[data.Rows.length - 1].RowType)\r\n };\r\n }\r\n\r\n function _checkForHeaderInTableDimensions(rowOrColumnType, tableType) {\r\n if (rowOrColumnType === TABLE_DATA_TYPES.CELLS.HEADER || tableType === tableConfig.type.builder.rubric.rowsAndColumns || tableType === tableConfig.type.fillerViewer.rubric.rowsAndColumns) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n\r\n function _checkForTotalInTableDimensions(rowOrColumnType) {\r\n if (rowOrColumnType === TABLE_DATA_TYPES.CELLS.TOTAL) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n\r\n function getCellCount(data) {\r\n return data.Cells.length;\r\n }\r\n\r\n function cleanupDateString(data) {\r\n return typeCheck.isString(data) ? data.replace(/\"/g, \"\") : data;\r\n }\r\n\r\n function isSameDateValue(date1, date2) {\r\n date1 = new Date(cleanupDateString(date1));\r\n date2 = new Date(cleanupDateString(date2));\r\n\r\n if (datePickerHelper.isDate(date1) && datePickerHelper.isDate(date2)) {\r\n return datePickerHelper.compareDates(date1, date2);\r\n } else {\r\n return date1 === date2;\r\n }\r\n }\r\n\r\n function findAndUpdateCellData(cellId, inputElementData, data) {\r\n var cell = findCellById(cellId, data);\r\n\r\n if (cell) {\r\n // handle date picker cell\r\n if (inputElementData.propertyName === \"DateAnswer\") {\r\n if (inputElementData.valueIsTouched === \"false\") {\r\n var valueIsDifferent = !isSameDateValue(cell[inputElementData.propertyName], inputElementData.originalValue || null);\r\n if (valueIsDifferent) {\r\n inputElementData.setValueIsTouched();\r\n }\r\n\r\n return valueIsDifferent;\r\n } else {\r\n return true;\r\n }\r\n } else if (inputElementData.propertyName === \"NumericAnswer\" || inputElementData.propertyName === \"Hours\" || inputElementData.propertyName === \"Minutes\") {\r\n cell[inputElementData.propertyName] = inputElementData.content;\r\n return true;\r\n } else if (inputElementData.propertyName === TABLE_DATA_TYPES.CELLS.TOTAL) {\r\n cell.NumericAnswer = inputElementData.newNumeric || 0;\r\n cell.Hours = inputElementData.newHours || 0;\r\n cell.Minutes = inputElementData.newMinutes || 0;\r\n return true;\r\n } else if (cell[inputElementData.propertyName] !== inputElementData.content) {\r\n cell[inputElementData.propertyName] = inputElementData.content;\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function calculateColWidth(colAmount) {\r\n return +(100 / colAmount).toFixed(2);\r\n }\r\n\r\n function capitalizeFirstLetter(string) {\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n }\r\n\r\n function findCellById(cellId, data) {\r\n var items = data.Rows || [{ Cells: data.Cells }];\r\n\r\n if (items && items.length > 0 && items[0].Cells) {\r\n for (var cells, i = 0, len = items.length; i < len; i++) {\r\n cells = items[i].Cells;\r\n\r\n for (var j = 0, cellsLen = cells.length; j < cellsLen; j++) {\r\n if (cells[j].Id === cellId) {\r\n return cells[j];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function resetData(itemType, originalObj, overwrites) {\r\n var resetObj = angular.copy(originalObj),\r\n prop,\r\n resetValues = resetStockValues[itemType];\r\n\r\n if (resetObj) {\r\n if (resetValues) {\r\n for (prop in resetValues) {\r\n if (resetValues.hasOwnProperty(prop) && resetObj.hasOwnProperty(prop)) {\r\n resetObj[prop] = resetValues[prop];\r\n }\r\n }\r\n }\r\n\r\n for (prop in overwrites) {\r\n if (overwrites.hasOwnProperty(prop) && resetObj.hasOwnProperty(prop)) {\r\n resetObj[prop] = overwrites[prop];\r\n }\r\n }\r\n }\r\n\r\n return resetObj;\r\n }\r\n\r\n function formatCellId(columnId, rowId) {\r\n return columnId + \"_\" + rowId;\r\n }\r\n\r\n function generateNewRow(cols, origRow, overwrites, intercept) {\r\n var newRow = { RowId: helpers.guid(), Cells: [], RowType: origRow.RowType || TABLE_DATA_TYPES.CELLS.STRING },\r\n origRowList = origRow.Cells,\r\n origRowCell,\r\n col;\r\n\r\n if (!overwrites) {\r\n overwrites = {};\r\n }\r\n\r\n for (var i = 0, len = origRowList.length; i < len; i++) {\r\n origRowCell = origRowList[i];\r\n col = cols[i];\r\n\r\n if (intercept) {\r\n origRowCell = intercept(origRowCell);\r\n }\r\n overwrites.Id = formatCellId(col.Id, newRow.RowId);\r\n\r\n newRow.Cells.push(resetData(\"cell\", origRowCell, overwrites));\r\n }\r\n\r\n return newRow;\r\n }\r\n\r\n function generateNewCell(origCell, isEmpty) {\r\n var overwrite = { Id: helpers.guid() };\r\n if (isEmpty) {\r\n overwrite.Type = TABLE_DATA_TYPES.CELLS.STRING;\r\n }\r\n\r\n return resetData(\"cell\", origCell, overwrite);\r\n }\r\n\r\n function putAtPosition(array, index, data) {\r\n if (index === void 0 || index >= array.length) {\r\n // if no index provided, then add item to the end\r\n array.push(data);\r\n } else {\r\n array.splice(index, 0, data);\r\n }\r\n }\r\n\r\n function removeAtPosition(array, index) {\r\n if (index === void 0 || index >= array.length) {\r\n // if no index provided, then remove the last item in the array.\r\n array.pop();\r\n } else {\r\n array.splice(index, 1);\r\n }\r\n }\r\n\r\n function extractIndex(type, index) {\r\n if (index === void 0) {\r\n return void 0;\r\n }\r\n\r\n return index[type] !== void 0 ? index[type] : index;\r\n }\r\n\r\n function getNewCell(data, index) {\r\n var newCell,\r\n originalIndex = extractIndex(\"original\", index);\r\n\r\n originalIndex = originalIndex === void 0 ? data.Cells.length - 1 : originalIndex; // use last index in case none has been provided\r\n newCell = generateNewCell(data.Cells[originalIndex]);\r\n\r\n return newCell;\r\n }\r\n\r\n function getNewRow(data, index) {\r\n var newRow,\r\n originalIndex = extractIndex(\"original\", index);\r\n\r\n originalIndex = originalIndex || data.Rows.length - 1; // use last index in case none has been provided\r\n\r\n if (data.Rows[originalIndex].RowType === TABLE_DATA_TYPES.CELLS.TOTAL) {\r\n // never attempt to copy a total row\r\n originalIndex = originalIndex - 1;\r\n }\r\n\r\n newRow = generateNewRow(data.Columns, data.Rows[originalIndex]);\r\n\r\n return {\r\n row: newRow,\r\n cols: data.Columns\r\n };\r\n }\r\n\r\n function getFirstId(vector, data) {\r\n var id;\r\n if (data && data.Columns && data.Rows) {\r\n switch (vector) {\r\n case \"column\":\r\n id = data.Columns[0].Id;\r\n break;\r\n case \"row\":\r\n id = data.Rows[0].RowId;\r\n break;\r\n }\r\n }\r\n\r\n return id;\r\n }\r\n\r\n function getIndex(vector, opts, data) {\r\n if (!opts || (!opts.cellId && !opts.rowId)) {\r\n // in case cellId not valid or not passed in at all, return undefined\r\n return;\r\n }\r\n\r\n let list = null;\r\n // get correct list\r\n switch (vector) {\r\n case \"column\":\r\n list = data.Columns;\r\n break;\r\n case \"row\":\r\n list = data.Rows;\r\n break;\r\n case \"cell\":\r\n list = data.Cells;\r\n break;\r\n }\r\n\r\n if (!list || list.length < 1) {\r\n // in case list is not valid, return undefined\r\n return;\r\n }\r\n\r\n // iterate through the list and try to find index of given cellId\r\n for (let i = 0; i < list.length; i++) {\r\n let listItem = list[i];\r\n\r\n if (opts.rowId) {\r\n if (listItem.RowId === opts.rowId) {\r\n return i;\r\n }\r\n } else {\r\n if (listItem.Id === void 0) {\r\n listItem = listItem.Cells[0];\r\n }\r\n\r\n // if ID is found, then return index\r\n if (opts.cellId.indexOf(listItem.Id) > -1) {\r\n if (opts.position && opts.position === \"after\") {\r\n return {\r\n original: i,\r\n position: i + 1\r\n };\r\n }\r\n return i;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function updateColumnsWidth(cols) {\r\n var n = 0,\r\n colsLen = cols.length,\r\n newWidth = calculateColWidth(colsLen);\r\n\r\n for (; n < colsLen; n++) {\r\n cols[n].Width = newWidth;\r\n }\r\n }\r\n\r\n function getNewCol(data, index) {\r\n var cols = data.Columns,\r\n rows = data.Rows,\r\n originalIndex = extractIndex(\"original\", index),\r\n positionIndex = extractIndex(\"position\", index),\r\n cells,\r\n originalCell,\r\n originalCol,\r\n newCell,\r\n newId = helpers.guid(),\r\n newCol,\r\n row;\r\n\r\n originalIndex = originalIndex === void 0 ? cols.length - 1 : originalIndex;\r\n positionIndex = positionIndex === void 0 ? cols.length : positionIndex;\r\n\r\n if (data.Columns[originalIndex].ColumnType === TABLE_DATA_TYPES.CELLS.TOTAL) {\r\n // never attempt to copy a total column\r\n originalIndex = originalIndex - 1;\r\n positionIndex = positionIndex - 1;\r\n }\r\n\r\n originalCol = cols[originalIndex];\r\n\r\n for (var i = 0, rowsLen = rows.length; i < rowsLen; i++) {\r\n row = rows[i];\r\n cells = row.Cells;\r\n originalCell = cells[originalIndex];\r\n newCell = resetData(\"cell\", originalCell, { Id: formatCellId(newId, row.RowId) });\r\n putAtPosition(cells, positionIndex, newCell);\r\n }\r\n\r\n newCol = resetData(\"col\", originalCol, {\r\n Id: newId\r\n });\r\n\r\n putAtPosition(cols, positionIndex, newCol);\r\n\r\n return data;\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { TABLE_DATA_TYPES } from \"../../../constants/tableDataTypes.constants\";\r\nimport \"./tableConfig.factory\";\r\nimport \"./tableDataHelper.service\";\r\nimport \"../../dataManager/helperService\";\r\nimport \"../../../utilities/helpers\";\r\nimport \"../../../utilities/typeCheck.service\";\r\n\r\nangularAMD.service(\"tableDtoHelper\", TableDtoHelper);\r\nTableDtoHelper.$inject = [\"tableConfig\", \"tableDataHelper\", \"helperService\", \"helpers\", \"typeCheck\"];\r\n\r\nfunction TableDtoHelper(tableConfig, tableDataHelper, helperService, helpers, typeCheck) {\r\n // Public API\r\n // =============================================================================================================\r\n this.generateNewDto = generateNewDto;\r\n this.isRubric = isRubric;\r\n this.duplicateTable = duplicateTable;\r\n this.isNotEmpty = isNotEmpty;\r\n\r\n // Private properties\r\n // =============================================================================================================\r\n var presets = {\r\n labels: {\r\n columnHeaders: [],\r\n rowHeaders: []\r\n }\r\n };\r\n\r\n // Private methods\r\n // =============================================================================================================\r\n var propertyMethods = {\r\n IsHeader: function (tableType, params) {\r\n switch (tableType) {\r\n case tableConfig.type.builder.table.columnsOnly:\r\n return params.r === 0;\r\n case tableConfig.type.builder.table.rowsOnly:\r\n return params.c === 0;\r\n case tableConfig.type.builder.table.singleCell:\r\n return;\r\n case tableConfig.type.builder.table.rowsAndColumns:\r\n case tableConfig.type.builder.rubric.rowsAndColumns:\r\n return params.r === 0 || params.c === 0;\r\n }\r\n },\r\n Label: function (tableType, params) {\r\n return \"\";\r\n },\r\n Points: function (tableType, params) {\r\n return 0;\r\n },\r\n ShowPoints: function (tableType, params) {\r\n switch (tableType) {\r\n case tableConfig.type.builder.table.columnsOnly:\r\n case tableConfig.type.builder.table.rowsOnly:\r\n case tableConfig.type.builder.table.rowsAndColumns:\r\n case tableConfig.type.builder.table.singleCell:\r\n return false;\r\n case tableConfig.type.builder.rubric.rowsAndColumns:\r\n return params.r === 0 && params.c !== 0;\r\n }\r\n },\r\n IsSelectable: function (tableType, params) {\r\n return false;\r\n },\r\n IsSelected: function (tableType, params) {\r\n return false;\r\n },\r\n Type: function (tableType, params) {\r\n switch (tableType) {\r\n case tableConfig.type.builder.table.columnsOnly:\r\n return TABLE_DATA_TYPES.CELLS.STRING;\r\n case tableConfig.type.builder.table.rowsOnly:\r\n return TABLE_DATA_TYPES.CELLS.STRING;\r\n case tableConfig.type.builder.table.rowsAndColumns:\r\n return params.r === 0 && params.c === 0 ? TABLE_DATA_TYPES.CELLS.DUMMY : TABLE_DATA_TYPES.CELLS.STRING;\r\n case tableConfig.type.builder.table.singleCell:\r\n return;\r\n case tableConfig.type.builder.rubric.rowsAndColumns:\r\n if ((params.r === 0 && params.c !== 0) || (params.r !== 0 && params.c === 0)) {\r\n return TABLE_DATA_TYPES.CELLS.HEADER;\r\n }\r\n return params.r === 0 && params.c === 0 ? TABLE_DATA_TYPES.CELLS.DUMMY : TABLE_DATA_TYPES.CELLS.STRING;\r\n }\r\n },\r\n default: function () {\r\n throw new Error(\"Unknown property requested.\");\r\n }\r\n };\r\n\r\n function cellPropertyRules(tableType, property, params) {\r\n return (propertyMethods[property] || propertyMethods[\"default\"])(tableType, params);\r\n }\r\n\r\n function generateNewDto(opts) {\r\n if (!opts) {\r\n throw new Error(\"None of options provided. Can't generate new DTO.\");\r\n }\r\n var calculateColWidth = opts.calculateColWidth || false,\r\n guid = opts.guid || false,\r\n tableSize = opts.tableSize || tableConfig.configs.defaultTableSize,\r\n tableType = opts.tableType || false,\r\n tableRowsCount = tableType === tableConfig.type.builder.table.rowsOnly ? tableSize - 1 : tableSize,\r\n newDto = {},\r\n Rows = [],\r\n Cols = [],\r\n Cells = [],\r\n cell,\r\n colWidth = calculateColWidth ? calculateColWidth(tableSize) : false,\r\n i = 0,\r\n r = 0,\r\n c,\r\n cl = 0,\r\n rowId,\r\n colIds = [];\r\n\r\n if (tableType === tableConfig.type.builder.table.singleCell) {\r\n while (cl < tableSize) {\r\n cell = {\r\n Id: guid(),\r\n IsHeader: true,\r\n Label: \"\",\r\n Points: 0,\r\n ShowPoints: false,\r\n IsSelectable: false,\r\n IsSelected: false,\r\n Type: TABLE_DATA_TYPES.CELLS.STRING\r\n };\r\n Cells.push(cell);\r\n\r\n cl++;\r\n }\r\n\r\n return Cells;\r\n }\r\n\r\n while (i < tableSize) {\r\n var currentId = guid();\r\n\r\n colIds.push(currentId);\r\n Cols.push({\r\n Id: currentId,\r\n Width: colWidth,\r\n ColumnType: TABLE_DATA_TYPES.CELLS.STRING\r\n });\r\n\r\n i++;\r\n }\r\n\r\n while (r < tableRowsCount) {\r\n rowId = guid();\r\n var row = { RowId: rowId, Cells: [], RowType: TABLE_DATA_TYPES.CELLS.STRING };\r\n\r\n c = 0;\r\n while (c < tableSize) {\r\n cell = {\r\n Id: colIds[c] + \"_\" + rowId,\r\n IsHeader: cellPropertyRules(tableType, \"IsHeader\", { r: r, c: c }),\r\n Label: cellPropertyRules(tableType, \"Label\", { r: r, c: c }),\r\n Points: cellPropertyRules(tableType, \"Points\", { r: r, c: c }),\r\n ShowPoints: cellPropertyRules(tableType, \"ShowPoints\", { r: r, c: c }),\r\n IsSelectable: cellPropertyRules(tableType, \"IsSelectable\", { r: r, c: c }),\r\n IsSelected: cellPropertyRules(tableType, \"IsSelected\", { r: r, c: c }),\r\n Type: cellPropertyRules(tableType, \"Type\", { r: r, c: c })\r\n };\r\n\r\n row.Cells.push(cell);\r\n c++;\r\n }\r\n\r\n Rows.push(row);\r\n r++;\r\n }\r\n\r\n if (tableType === tableConfig.type.builder.table.rowsOnly || tableType === tableConfig.type.builder.table.rowsAndColumns) {\r\n Cols[0].ColumnType = TABLE_DATA_TYPES.CELLS.HEADER;\r\n }\r\n\r\n if (\r\n tableType === tableConfig.type.builder.table.columnsOnly ||\r\n tableType === tableConfig.type.builder.table.rowsAndColumns ||\r\n tableType === tableConfig.type.builder.table.columnsOnlyRepeating\r\n ) {\r\n Rows[0].RowType = TABLE_DATA_TYPES.CELLS.HEADER;\r\n }\r\n\r\n newDto.Rows = Rows;\r\n newDto.Cols = Cols;\r\n\r\n return newDto;\r\n }\r\n\r\n function isRubric(tableType) {\r\n var rubrics = tableConfig.type.builder.rubric;\r\n\r\n for (var rubric in rubrics) {\r\n if (rubrics.hasOwnProperty(rubric)) {\r\n return rubrics[rubric] === tableType;\r\n }\r\n }\r\n }\r\n\r\n function duplicateTable(dto) {\r\n dto.Id = helperService.guid(); // update dto Id\r\n\r\n if (dto.TableType === tableConfig.type.builder.table.singleCell) {\r\n updateIds(dto, { dataKey: \"Cells\" }); // update cells ids\r\n } else {\r\n updateIds(dto, { dataKey: \"Columns\" }); // update columns ids\r\n updateIds(dto, { dataKey: \"Rows\", idKey: \"RowId\" }); // update rows id and cells id\r\n }\r\n }\r\n\r\n function updateIds(dto, opts) {\r\n opts = opts || {};\r\n const dataKey = opts.dataKey || false;\r\n const idKey = opts.idKey || \"Id\";\r\n const loopData = dto[dataKey];\r\n\r\n for (let i = 0; i < loopData.length; i++) {\r\n let iterationItem = loopData[i];\r\n let newId = helperService.guid();\r\n iterationItem[idKey] = newId;\r\n\r\n if (dataKey === \"Rows\") {\r\n let columnsData = dto.Columns;\r\n let subItems = iterationItem.Cells;\r\n\r\n for (let n = 0; n < subItems.length; n++) {\r\n subItems[n].Id = tableDataHelper.formatCellId(columnsData[n].Id, newId);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function isNotEmpty(dto) {\r\n switch (dto.TableType) {\r\n case tableConfig.type.fillerViewer.table.columnsOnly:\r\n case tableConfig.type.fillerViewer.table.columnsOnlyRepeating:\r\n case tableConfig.type.fillerViewer.table.rowsOnly:\r\n case tableConfig.type.fillerViewer.table.rowsAndColumns:\r\n case tableConfig.type.fillerViewer.table.singleCell:\r\n case tableConfig.type.fillerViewer.table.repeatingContainer:\r\n case tableConfig.type.fillerViewer.rubric.rowsAndColumns:\r\n return checkIfNotEmpty(dto);\r\n default:\r\n return true;\r\n }\r\n }\r\n\r\n function cellIsNotEmpty(cell) {\r\n var isSingleCell = cell.UserAnswer !== void 0;\r\n var regularCell = !isSingleCell && !cell.IsSelectable && !cell.IsHeader && helpers.htmlToPlain(cell.Label).trim().length > 0;\r\n var rubricCell = !isSingleCell && cell.IsSelectable && cell.IsSelected;\r\n var singleCell = cell.UserAnswer !== void 0 && helpers.htmlToPlain(cell.UserAnswer).trim().length > 0;\r\n var dateCell = !cell.IsHeader && TABLE_DATA_TYPES.CELLS.DATE && cell.DateAnswer;\r\n var numericCell = !cell.IsHeader && TABLE_DATA_TYPES.CELLS.NUMERIC && cell.NumericAnswer !== null && !isNaN(cell.NumericAnswer);\r\n var timeCell = !cell.IsHeader && TABLE_DATA_TYPES.CELLS.TIME && ((cell.Hours !== null && !isNaN(cell.Hours)) || (cell.Minutes !== null && !isNaN(cell.Minutes)));\r\n\r\n return regularCell || rubricCell || singleCell || dateCell || numericCell || timeCell;\r\n }\r\n\r\n function checkIfNotEmpty(dto) {\r\n var rowsNotEmpty = false,\r\n cellsNotEmpty = false;\r\n\r\n loopThroughData(dto, \"Rows\", function (loopItem) {\r\n loopThroughData(loopItem.Cells, null, function (iterationItem) {\r\n rowsNotEmpty = cellIsNotEmpty(iterationItem);\r\n return rowsNotEmpty;\r\n });\r\n\r\n return rowsNotEmpty;\r\n });\r\n\r\n loopThroughData(dto, \"Cells\", function (iterationItem) {\r\n cellsNotEmpty = cellIsNotEmpty(iterationItem);\r\n return cellsNotEmpty;\r\n });\r\n\r\n return rowsNotEmpty || cellsNotEmpty;\r\n }\r\n\r\n function loopThroughData(data, dataKey, callback) {\r\n const loopData = dataKey ? data[dataKey] : data;\r\n\r\n if (loopData && loopData.length > 0) {\r\n for (let i = 0; i < loopData.length; i++) {\r\n const iterationItem = loopData[i];\r\n if (typeCheck.isFunction(callback)) {\r\n const output = callback(iterationItem);\r\n\r\n if (output) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./helpers\";\r\n\r\nCharacterLimit.$inject = [\"helpers\"];\r\n\r\nfunction CharacterLimit(helpers) {\r\n return {\r\n restrict: \"A\",\r\n scope: {\r\n model: \"=ngModel\",\r\n max: \"@?\"\r\n },\r\n require: \"ngModel\",\r\n link: function (scope, element, attrs, ngModel) {\r\n const maxLimit = isNaN(scope.max) || scope.max === \"\" ? Infinity : Number(scope.max);\r\n\r\n element.on(\"keydown\", (event) => {\r\n if (event.key !== undefined && event.key.length === 1 && event.ctrlKey === false) {\r\n if (element[0].textContent.length >= maxLimit) {\r\n event.preventDefault();\r\n }\r\n }\r\n });\r\n\r\n ngModel.$parsers.push((value) => {\r\n const cleanValue = helpers.htmlToPlain(value);\r\n\r\n if (cleanValue.length > maxLimit) {\r\n if (scope.model.length !== maxLimit) {\r\n const newValue = cleanValue.slice(0, maxLimit);\r\n ngModel.$setViewValue(newValue);\r\n ngModel.$render();\r\n return newValue;\r\n }\r\n\r\n ngModel.$setViewValue(scope.model);\r\n ngModel.$render();\r\n return scope.model;\r\n }\r\n\r\n return cleanValue;\r\n });\r\n }\r\n };\r\n}\r\n\r\nangularAMD.directive(\"characterLimit\", CharacterLimit);\r\nexport { CharacterLimit as characterLimit };\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/characterLimit.directive\";\r\nimport \"../../utilities/text-editable/contenteditable\";\r\nimport \"../../utilities/helpers\";\r\nimport \"../../autoFocus/autoFocus.directive\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport template from \"./text-section-input.html\";\r\n\r\nclass TextSectionInput extends NgComponent {\r\n constructor(helpers, multiLanguageService) {\r\n super();\r\n\r\n this.helpers = helpers;\r\n this.multiLanguageService = multiLanguageService;\r\n this.value = this.initialValue;\r\n this.checkInputLimit(this.value);\r\n }\r\n\r\n updateModel() {\r\n const newValue = this.helpers.htmlToPlain(this.value);\r\n this.checkInputLimit(newValue);\r\n this.onValueChange({ value: newValue });\r\n }\r\n\r\n checkInputLimit(value) {\r\n if (this.inputLimit === undefined || this.inputLimit === \"\") {\r\n this.info = \"\";\r\n } else if (value !== null && value.length >= this.inputLimit) {\r\n this.info = this.multiLanguageService.getString(\"accessibility.text_section_input.reached_limit\", { value: this.inputLimit });\r\n } else {\r\n this.info = this.multiLanguageService.getString(\"accessibility.text_section_input.character_limit\", { value: this.inputLimit });\r\n }\r\n }\r\n}\r\n\r\nexport const textSectionInputDefinition = {\r\n bindings: {\r\n header: \"@\",\r\n hint: \"@\",\r\n placeholder: \"@?\",\r\n inputLimit: \"@?\",\r\n initialValue: \"<\",\r\n focus: \"<\",\r\n onValueChange: \"&\"\r\n },\r\n template: template,\r\n controller: TextSectionInput\r\n};\r\n\r\ntextSectionInputDefinition.$inject = [\"helpers\", \"multiLanguageService\"];\r\nangularAMD.component(\"textSectionInput\", textSectionInputDefinition);\r\n","export default `

{{$ctrl.header}}

{{$ctrl.hint}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { informationNotice, successNotice } from \"@pjs/core-ui\";\r\nimport \"../featureSettings/FeatureSettings\";\r\n\r\nexport class CapabilityCriteriaService {\r\n constructor(featureSettings, multiLanguageService) {\r\n this._featureEnabled = featureSettings.isEnabled(\"CapabilityEvidenceCriteria\");\r\n this._multiLanguageService = multiLanguageService;\r\n }\r\n\r\n isCriteriaAvailable(evidenceMinimum) {\r\n return this._featureEnabled && evidenceMinimum > 0;\r\n }\r\n\r\n getRenderData(evidenceAmount, evidenceMinimum) {\r\n if (!this.isCriteriaAvailable(evidenceMinimum)) {\r\n return {\r\n ariaLabel: \"\",\r\n notice: null,\r\n message: \"\"\r\n };\r\n }\r\n\r\n const meetsCriteria = evidenceAmount >= evidenceMinimum;\r\n const message = this._multiLanguageService.getString(meetsCriteria ? \"sidebar.capability_criteria.meets_criteria\" : \"sidebar.capability_criteria.does_not_meet_criteria\", {\r\n count: evidenceMinimum\r\n });\r\n\r\n const evidenceText = this._multiLanguageService.getString(\"accessibility.notice.type.evidence\");\r\n const ariaLabel = this._multiLanguageService.getString(`accessibility.notice.labels.${meetsCriteria ? \"success\" : \"information\"}`, { type: evidenceText });\r\n\r\n return {\r\n ariaLabel: ariaLabel,\r\n notice: meetsCriteria ? successNotice : informationNotice,\r\n message: message\r\n };\r\n }\r\n\r\n getBlockIsComplete(markedAsComplete, evidenceAmount, evidenceMinimum) {\r\n if (!this.isCriteriaAvailable(evidenceMinimum)) {\r\n return markedAsComplete;\r\n }\r\n\r\n return evidenceAmount >= evidenceMinimum;\r\n }\r\n}\r\n\r\nCapabilityCriteriaService.$inject = [\"featureSettings\", \"multiLanguageService\"];\r\nangularAMD.service(\"capabilityCriteriaService\", CapabilityCriteriaService);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nClickAndDisable.$inject = [\"$compile\"];\r\nfunction ClickAndDisable() {\r\n return {\r\n restrict: \"A\",\r\n scope: {\r\n clickAndDisable: \"&\"\r\n },\r\n link: function (scope, element) {\r\n element.addClass(\"click-and-disable\");\r\n element.on(\"click\", function () {\r\n scope.$apply(function () {\r\n var prm = scope.clickAndDisable();\r\n if (prm) {\r\n element.prop(\"disabled\", true);\r\n prm.then(function () {\r\n _unblock(element);\r\n }).catch(function () {\r\n _unblock(element);\r\n });\r\n } else if (console && console.error) {\r\n console.error(\"clickAndDisable directive expects callback to return a promise\");\r\n }\r\n });\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction _unblock(element) {\r\n element.prop(\"disabled\", false);\r\n}\r\n\r\nangularAMD.directive(\"clickAndDisable\", ClickAndDisable);\r\nexport { ClickAndDisable };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../assetStore/services/assetStoreService\";\r\n\r\nangularAMD.service(\"CollaborationLoaderAPI\", CollaborationLoaderAPI);\r\nCollaborationLoaderAPI.$inject = [\"$http\", \"baseUrlsFactory\", \"assetStoreService\"];\r\n\r\nfunction CollaborationLoaderAPI($http, baseUrlsFactory, assetStoreService) {\r\n //Public API\r\n //=============================================================================================================\r\n this.collabStatus = collabStatus;\r\n this.acceptCollab = acceptCollab;\r\n\r\n //Private methods\r\n //=============================================================================================================\r\n\r\n function collabStatus(assetId) {\r\n return assetStoreService.getEditStatusForAsset(assetId);\r\n }\r\n\r\n function acceptCollab(assetId) {\r\n return $http.get(baseUrlsFactory.api_base_url + \"Share/AcceptCollaboration?assetId=\" + assetId);\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSET_CONSTANTS } from \"../constants/asset.constants\";\r\nimport \"../builder/dataManager/helperService\";\r\nimport \"../utilities/urlService\";\r\nimport \"../modal/services/modal\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"./collaborationLoaderAPI.service\";\r\nimport \"../history/services/historyService\";\r\nimport \"../assetStore/services/assetStoreService\";\r\n\r\nangularAMD.service(\"CollaborationLoaderService\", CollaborationLoaderService);\r\nCollaborationLoaderService.$inject = [\r\n \"$rootScope\",\r\n \"$q\",\r\n \"$location\",\r\n \"$routeParams\",\r\n \"helperService\",\r\n \"urlService\",\r\n \"modal\",\r\n \"baseUrlsFactory\",\r\n \"multiLanguageService\",\r\n \"CollaborationLoaderAPI\",\r\n \"historyService\",\r\n \"assetStoreService\"\r\n];\r\n\r\nfunction CollaborationLoaderService(\r\n $rootScope,\r\n $q,\r\n $location,\r\n $routeParams,\r\n helperService,\r\n urlService,\r\n modal,\r\n baseUrlsFactory,\r\n multiLanguageService,\r\n CollaborationLoaderAPI,\r\n historyService,\r\n assetStoreService\r\n) {\r\n //Public API\r\n //=============================================================================================================\r\n this.resolveCollaboration = resolveCollaboration;\r\n this.showAcceptCollabModal = showAcceptCollabModal;\r\n this.declineAndRedirect = declineAndRedirect;\r\n this.checkAssetForCollaboration = checkAssetForCollaboration;\r\n\r\n //Private methods\r\n //=============================================================================================================\r\n var collaborationModal;\r\n\r\n function resolveCollaboration(collabStatus, assetId, mainType, url) {\r\n var deferred = $q.defer();\r\n\r\n if (collabStatus === ASSET_CONSTANTS.PERMISSIONS.COLLABORATE) {\r\n if (isResource(mainType) || !urlService.isViewer(url)) {\r\n // Show accept collab modal straight away. Either we're trying to access a\r\n // resource or an asset directly.\r\n showAcceptCollabModal(assetId, deferred.resolve, declineAndRedirect);\r\n } else {\r\n // Don't show modal until edit button is clicked in viewer\r\n deferred.resolve(collabStatus);\r\n }\r\n } else {\r\n deferred.resolve();\r\n }\r\n\r\n return deferred.promise;\r\n }\r\n\r\n function checkAssetForCollaboration(assetId) {\r\n return assetStoreService.getEditStatusForAsset(assetId).then(function (status) {\r\n return status === ASSET_CONSTANTS.PERMISSIONS.COLLABORATE;\r\n });\r\n }\r\n\r\n function declineAndRedirect() {\r\n $location.url(historyService.getLastHistoryPath($routeParams.historyId) || urlService.createStoreRedirectUrl($location.path()));\r\n collaborationModal.hideModal();\r\n return $q.reject();\r\n }\r\n\r\n function showAcceptCollabModal(assetId, onAccept, onDecline) {\r\n var modalScope = $rootScope.$new();\r\n modalScope.title = multiLanguageService.getString(\"asset_store.accept_collaboration_modal.title\");\r\n modalScope.message = multiLanguageService.getString(\"asset_store.accept_collaboration_modal.message\");\r\n modalScope.decline = onDecline;\r\n modalScope.confirmAction = function () {\r\n // Send req to server to accept asset\r\n CollaborationLoaderAPI.acceptCollab(assetId).then(function (response) {\r\n // tslint:disable-next-line:triple-equals\r\n if (response.status == 202) {\r\n onAccept();\r\n }\r\n }, onDecline);\r\n };\r\n\r\n modalScope.onClose = function () {\r\n modalScope.$destroy();\r\n };\r\n\r\n collaborationModal = modal.newModal({\r\n scope: modalScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"collaborationLoader/accept-collaboration-modal.lazy.html\",\r\n disableClose: true\r\n });\r\n }\r\n\r\n function isResource(type) {\r\n return helperService.isResourceBuilder(type);\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSET_CONSTANTS } from \"../../constants/asset.constants\";\r\nimport { PANEL_CONSTANTS } from \"../../constants/panel.constants\";\r\nimport { informationIcon } from \"@pjs/core-ui\";\r\nimport \"../../utilities/urlService\";\r\nimport \"../../loadingSpinner/loadingSpinner\";\r\nimport \"../services/collectionService\";\r\nimport \"../../history/services/historyService\";\r\nimport \"../../datePicker/datePickerHelper\";\r\nimport \"../../utilities/pebbleDate\";\r\nimport template from \"../templates/collection.lazy.html\";\r\n\r\nangularAMD.directive(\"collection\", [\r\n \"$sce\",\r\n \"$rootScope\",\r\n \"$http\",\r\n \"$timeout\",\r\n \"$routeParams\",\r\n \"baseUrlsFactory\",\r\n \"urlService\",\r\n \"collectionService\",\r\n \"historyService\",\r\n \"datePickerHelper\",\r\n function ($sce, $rootScope, $http, $timeout, $routeParams, baseUrlsFactory, urlService, collectionService, historyService, datePickerHelper) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n asset_id: \"=assetId\",\r\n collection: \"=asset\",\r\n view_mode: \"=viewMode\",\r\n is_workbook_page: \"=isWorkbookPage\",\r\n show_hours_and_points: \"=showHoursAndPoints\"\r\n },\r\n\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.asset = null;\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n $scope.reverseOrder = true;\r\n $scope.searchResult = [];\r\n $scope.showHeader = true; // could be set to false when opened via the assetViewer\r\n $scope.showHoursAndPoints = $scope.show_hours_and_points !== undefined && $scope.show_hours_and_points;\r\n $scope.versionedMode = !!$routeParams.timeslice;\r\n $scope.imageInfo = informationIcon;\r\n\r\n $scope.collection_wrapper = angular.element(document.getElementsByClassName(\"collection-wrapper-container\")[0]);\r\n\r\n $scope.blankTarget = false;\r\n\r\n $scope.addMainAreaStyles = function () {\r\n if ($scope.collection_wrapper[0] && $scope.collection_wrapper[0].clientWidth < 699 && $scope.collection_wrapper[0].clientWidth > 560) {\r\n $scope.collection_wrapper.addClass(\"sidebar-open\");\r\n $scope.collection_wrapper.removeClass(\"sidebar-open__560\");\r\n } else if ($scope.collection_wrapper[0] && $scope.collection_wrapper[0].clientWidth < 560) {\r\n $scope.collection_wrapper.addClass(\"sidebar-open__560\");\r\n $scope.collection_wrapper.removeClass(\"sidebar-open\");\r\n } else {\r\n $scope.collection_wrapper.removeClass(\"sidebar-open\");\r\n $scope.collection_wrapper.removeClass(\"sidebar-open__560\");\r\n }\r\n };\r\n\r\n $scope.splitAreasListener = $rootScope.$on(\"splitAreaSizes\", $scope.addMainAreaStyles);\r\n\r\n $scope.viewData = {\r\n lang: {\r\n friendlyMainType: $scope.showHoursAndPoints\r\n ? $scope.multiLanguageService.getString(\"collections.headers.assets_in_this_activity_log\")\r\n : $scope.multiLanguageService.getString(\"collections.headers.assets_in_this_collection\")\r\n },\r\n images: {\r\n hours: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"collections/images/hours.svg\"),\r\n points: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"collections/images/points.svg\")\r\n }\r\n };\r\n\r\n // ***************\r\n // ORDERING STUFF\r\n $scope.orderByOptions = [\r\n {\r\n title: $scope.multiLanguageService.getString(\"collections.order_by.last_modified_desc\"),\r\n value: [\"LastModified\", \"Title\"],\r\n reverse: true,\r\n icon: \"calendar\"\r\n },\r\n {\r\n title: $scope.multiLanguageService.getString(\"collections.order_by.last_modified_asc\"),\r\n value: [\"LastModified\", \"Title\"],\r\n reverse: false,\r\n icon: \"calendar\"\r\n },\r\n {\r\n title: $scope.multiLanguageService.getString(\"collections.order_by.created_date_desc\"),\r\n value: [\"Created\", \"Title\"],\r\n reverse: true,\r\n icon: \"calendar\"\r\n },\r\n {\r\n title: $scope.multiLanguageService.getString(\"collections.order_by.created_date_asc\"),\r\n value: [\"Created\", \"Title\"],\r\n reverse: false,\r\n icon: \"calendar\"\r\n },\r\n {\r\n title: $scope.multiLanguageService.getString(\"collections.order_by.title_asc\"),\r\n value: [\"Title\", \"Created\"],\r\n reverse: false,\r\n icon: \"title\"\r\n },\r\n {\r\n title: $scope.multiLanguageService.getString(\"collections.order_by.title_desc\"),\r\n value: [\"Title\", \"Created\"],\r\n reverse: true,\r\n icon: \"title\"\r\n }\r\n ];\r\n if ($scope.showHoursAndPoints) {\r\n $scope.orderByOptions.push(\r\n {\r\n title: $scope.multiLanguageService.getString(\"collections.order_by.hours_asc\"),\r\n value: [\"Hours\", \"Minutes\"],\r\n reverse: false,\r\n image: $scope.viewData.images.hours\r\n },\r\n {\r\n title: $scope.multiLanguageService.getString(\"collections.order_by.hours_desc\"),\r\n value: [\"Hours\", \"Minutes\"],\r\n reverse: true,\r\n image: $scope.viewData.images.hours\r\n },\r\n {\r\n title: $scope.multiLanguageService.getString(\"collections.order_by.points_asc\"),\r\n value: [\"Points\", \"Title\"],\r\n reverse: false,\r\n image: $scope.viewData.images.points\r\n },\r\n {\r\n title: $scope.multiLanguageService.getString(\"collections.order_by.points_desc\"),\r\n value: [\"Points\", \"Title\"],\r\n reverse: true,\r\n image: $scope.viewData.images.points\r\n }\r\n );\r\n }\r\n\r\n //V3 sorting lookup table\r\n var legacySortOrderDict = {\r\n OldestFirst: \"Created\"\r\n };\r\n\r\n var initOrdering = function () {\r\n if ($scope.asset.AssetOptions.length) {\r\n var assetOptionSortOrder = $scope.asset.AssetOptions.where({ Key: \"SortOrder\" })[0];\r\n var assetOptionReverseOrder = $scope.asset.AssetOptions.where({ Key: \"ReverseOrder\" })[0];\r\n\r\n //Check for V3 order options\r\n if (!assetOptionSortOrder) {\r\n assetOptionSortOrder = $scope.asset.AssetOptions.where({ Key: \"sortOrder\" })[0];\r\n if (assetOptionSortOrder && assetOptionSortOrder.Value) {\r\n assetOptionSortOrder.Value = legacySortOrderDict[assetOptionSortOrder.Value];\r\n }\r\n }\r\n\r\n if (assetOptionReverseOrder) {\r\n /* tslint:disable:triple-equals */\r\n assetOptionReverseOrder.Value = !!(\r\n (typeof assetOptionReverseOrder.Value === \"string\" && assetOptionReverseOrder.Value.toLowerCase() === \"true\") ||\r\n assetOptionReverseOrder.Value == true\r\n );\r\n /* tslint:enable:triple-equals */\r\n } else {\r\n assetOptionReverseOrder = { Value: false };\r\n }\r\n if (assetOptionSortOrder) {\r\n var orderVal = assetOptionSortOrder.Value;\r\n if (orderVal === \"Alphabetically\") {\r\n orderVal = \"Title\";\r\n }\r\n var orderByColumn = $scope.orderByOptions[0];\r\n for (var i = 0; i < $scope.orderByOptions.length; i++) {\r\n // tslint:disable-next-line:triple-equals\r\n if ($scope.orderByOptions[i].value[0] == orderVal && $scope.orderByOptions[i].reverse == assetOptionReverseOrder.Value) {\r\n orderByColumn = $scope.orderByOptions[i];\r\n break;\r\n }\r\n }\r\n $scope.setOrderByColumn(orderByColumn);\r\n }\r\n }\r\n if (!$scope.orderByColumn) {\r\n $scope.setOrderByColumn($scope.orderByOptions[0], true);\r\n }\r\n };\r\n\r\n $scope.setOrderByColumn = function (orderByOption, preventEmit) {\r\n if ($scope.orderByColumn !== orderByOption.value || $scope.reverseOrder !== orderByOption.reverse) {\r\n $scope.orderByColumn = orderByOption.value;\r\n $scope.selectedOrderByTitle = orderByOption.title;\r\n $scope.reverseOrder = orderByOption.reverse;\r\n\r\n if (!preventEmit) {\r\n $scope.$emit(\"collectionOrderChanged\", orderByOption);\r\n }\r\n }\r\n };\r\n $scope.primarySort = function (item) {\r\n $scope.primarySortingBy = $scope.orderByColumn[0];\r\n return item[$scope.orderByColumn[0]];\r\n };\r\n $scope.secondarySort = function (item) {\r\n return item[$scope.orderByColumn[1]];\r\n };\r\n // *************\r\n\r\n $scope.presetData = function (forceReload) {\r\n $scope.searchComplete = false;\r\n var promise = null;\r\n if (!$scope.collection || forceReload) {\r\n var params = [\r\n { key: \"assetId\", value: $scope.asset_id },\r\n { key: \"permissionRequired\", value: ASSET_CONSTANTS.PERMISSIONS.VIEW },\r\n { key: \"submissionId\", value: $routeParams.submissionId }\r\n ];\r\n promise = collectionService.getCollection(params).then(function (response) {\r\n $scope.asset = response.data.Asset;\r\n return $timeout(setupCollection);\r\n });\r\n } else {\r\n $scope.asset = $scope.collection;\r\n promise = $timeout(setupCollection);\r\n }\r\n\r\n promise.then(function () {\r\n $scope.$emit(\"collectionListLoaded\", true);\r\n });\r\n };\r\n\r\n $scope.editCollectionCriteria = function () {\r\n $rootScope.$broadcast(\"openRightHandSidePanel\", {\r\n panel: PANEL_CONSTANTS.PANEL.COLLECTION_CRITERIA,\r\n id: $scope.asset_id,\r\n edit: true,\r\n allowCriteriaResponsesTo: false,\r\n collectionWrapper: $scope.asset,\r\n callback: angular.noop\r\n });\r\n };\r\n\r\n var setupCollection = function () {\r\n if ($scope.showHoursAndPoints) {\r\n $scope.totalPoints = 0;\r\n $scope.totalHours = 0;\r\n $scope.totalMinutes = 0;\r\n }\r\n // Configure url, hours and points for each asset\r\n $scope.asset.Items.forEach(function (item) {\r\n item.Created = datePickerHelper.normalizeDate(item.Created);\r\n item.LastModified = datePickerHelper.normalizeDate(item.LastModified);\r\n var url = urlService.configureAssetUrl(item.OpenUrl, $scope.view_mode ? \"view\" : undefined, null, null, $routeParams.submissionId);\r\n var historyId = historyService.getCurrentHistoryId();\r\n item.url = urlService.addParameters(url, [{ key: \"historyId\", value: historyId }]);\r\n addHoursAndPointsToAsset(item);\r\n });\r\n\r\n calculateTotalHoursAndPoints();\r\n $scope.searchResult = $scope.asset.Items;\r\n initOrdering();\r\n refreshMultilangStrings();\r\n\r\n $scope.searchComplete = true;\r\n };\r\n\r\n var refreshMultilangStrings = function () {\r\n $scope.viewData.lang.there_are = $scope.multiLanguageService.getString(\"collections.headers.n_there_are\", {\r\n count: $scope.searchResult.length,\r\n mainType: $scope.viewData.lang.friendlyMainType\r\n });\r\n\r\n $scope.viewData.lang.chosen_criteria = $scope.multiLanguageService.getString(\"collections.headers.chosen_criteria\", {\r\n mainType: $scope.viewData.lang.friendlyMainType,\r\n searches: $scope.multiLanguageService.getString(\"collections.headers.chosen_criteria_searches\", { count: $scope.asset.AssetCollections.length }),\r\n assets: $scope.multiLanguageService.getString(\"collections.headers.chosen_criteria_assets\", { count: $scope.searchResult.length })\r\n });\r\n\r\n $scope.viewData.lang.hours_total = $scope.multiLanguageService.getString(\"collections.labels.hours\", { count: $scope.totalHours });\r\n $scope.viewData.lang.mins_total = $scope.multiLanguageService.getString(\"collections.labels.minutes\", { count: $scope.totalMinutes });\r\n $scope.viewData.lang.hours_mins_total = $scope.multiLanguageService.getString(\"collections.labels.hours_and_mins_mobile\", {\r\n hours: $scope.totalHoursText,\r\n mins: $scope.totalMinutesText\r\n });\r\n $scope.viewData.lang.points_total = $scope.multiLanguageService.getString(\"collections.labels.points\", { count: $scope.totalPoints });\r\n\r\n $scope.viewData.lang.hours_remaining = $scope.multiLanguageService.getString(\"collections.labels.hours\", { count: $scope.remainingHours });\r\n $scope.viewData.lang.mins_remaining = $scope.multiLanguageService.getString(\"collections.labels.minutes\", { count: $scope.remainingMinutes });\r\n $scope.viewData.lang.hours_mins_remaining = $scope.multiLanguageService.getString(\"collections.labels.hours_and_mins_mobile\", {\r\n hours: $scope.remainingHoursText,\r\n mins: $scope.remainingMinutesText\r\n });\r\n $scope.viewData.lang.points_remaining = $scope.multiLanguageService.getString(\"collections.labels.points\", { count: $scope.remainingPoints });\r\n };\r\n\r\n var addHoursAndPointsToAsset = function (item) {\r\n if ($scope.showHoursAndPoints && item.AssetOptions) {\r\n var minutes = item.AssetOptions.where({ Key: \"CpdTimeInMins\" })[0];\r\n if (!minutes || !minutes.Value) {\r\n minutes = { Value: 0 };\r\n }\r\n\r\n var points = item.AssetOptions.where({ Key: \"CpdPoints\" })[0];\r\n if (!points || !points.Value) {\r\n points = { Value: 0 };\r\n }\r\n\r\n item.Points = parseInt(points.Value, 10);\r\n item.Hours = Math.floor(minutes.Value / 60); // for ordering\r\n item.HoursText = item.Hours.toString().length === 1 ? \"0\" + item.Hours : item.Hours; // for display\r\n item.Minutes = minutes.Value % 60; // for ordering\r\n item.MinutesText = item.Minutes.toString().length === 1 ? \"0\" + item.Minutes : item.Minutes; // for display\r\n\r\n $scope.totalPoints += parseInt(item.Points, 10);\r\n $scope.totalMinutes += parseInt(minutes.Value, 10);\r\n }\r\n };\r\n\r\n var calculateTotalHoursAndPoints = function () {\r\n // tslint:disable-next-line:triple-equals\r\n if ($scope.asset.TargetHours == 0 && $scope.asset.TargetPoints == 0) {\r\n $scope.asset = $scope.collection;\r\n }\r\n\r\n $scope.actualTotalMinutes = $scope.totalMinutes;\r\n $scope.totalHours = Math.floor($scope.totalMinutes / 60);\r\n $scope.totalMinutes = $scope.totalMinutes % 60;\r\n $scope.totalHoursText = $scope.totalHours.toString().length === 1 ? \"0\" + $scope.totalHours : $scope.totalHours; // for display\r\n $scope.totalMinutesText = $scope.totalMinutes.toString().length === 1 ? \"0\" + $scope.totalMinutes : $scope.totalMinutes; // for display\r\n $scope.remainingHours = Math.max(0, Math.floor($scope.asset.TargetHours - $scope.actualTotalMinutes / 60));\r\n $scope.remainingMinutes = $scope.actualTotalMinutes > $scope.asset.TargetHours * 60 || $scope.actualTotalMinutes % 60 === 0 ? 0 : 60 - ($scope.actualTotalMinutes % 60);\r\n $scope.remainingHoursText = $scope.remainingHours.toString().length === 1 ? \"0\" + $scope.remainingHours : $scope.remainingHours; // for display\r\n $scope.remainingMinutesText = $scope.remainingMinutes.toString().length === 1 ? \"0\" + $scope.remainingMinutes : $scope.remainingMinutes; // for display\r\n $scope.remainingPoints = Math.max(0, $scope.asset.TargetPoints - $scope.totalPoints);\r\n\r\n $scope.hoursClass = \"negative\";\r\n if ($scope.actualTotalMinutes > 0) {\r\n $scope.hoursClass = $scope.actualTotalMinutes >= $scope.asset.TargetHours * 60 ? \"positive\" : \"neutral\";\r\n }\r\n $scope.pointsClass = \"negative\";\r\n if ($scope.totalPoints > 0) {\r\n $scope.pointsClass = $scope.totalPoints >= $scope.asset.TargetPoints ? \"positive\" : \"neutral\";\r\n }\r\n\r\n $rootScope.$broadcast(\"updatedLogTotals\", {\r\n remainingHours: $scope.remainingHours,\r\n remainingMinutes: $scope.remainingMinutes,\r\n remainingPoints: $scope.remainingPoints,\r\n totalHours: $scope.totalHours,\r\n totalMinutes: $scope.totalMinutes,\r\n totalPoints: $scope.totalPoints\r\n });\r\n\r\n refreshMultilangStrings();\r\n };\r\n\r\n if (!$scope.openInfoPanel) {\r\n $scope.openInfoPanel = function (id, panel, actionData) {\r\n panel = typeof panel !== \"undefined\" ? panel : \"asset-info\";\r\n $rootScope.$broadcast(\"openRightHandSidePanel\", {\r\n panel: panel,\r\n assetId: id,\r\n actionData: actionData\r\n });\r\n };\r\n }\r\n\r\n $scope.$on(\"collectionListReload\", () => $scope.presetData(true));\r\n\r\n const onUserAssetStoreUpdate = (data) => {\r\n if ($scope.asset !== null && $scope.asset.Items.some((a) => a.Id === data.Id)) {\r\n $scope.presetData(true);\r\n return;\r\n }\r\n\r\n collectionService.getCriteriaFromCollectionWrapper($scope.asset_id).then((response) => {\r\n if (Array.isArray(response.data)) {\r\n refreshIfTagInUse(data, response.data);\r\n }\r\n });\r\n };\r\n\r\n const refreshIfTagInUse = (updatedAsset, listOfCriteria) => {\r\n const matchesCriteria = listOfCriteria.some((c) => c.Search !== null && c.Search.Tags !== null && c.Search.Tags.containsAny(updatedAsset.Tags));\r\n if (matchesCriteria) {\r\n $scope.presetData(true);\r\n }\r\n };\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n /**\r\n * Auto-run on start\r\n */\r\n element.on(\"$destroy\", function () {\r\n scope.$destroy();\r\n scope.splitAreasListener();\r\n });\r\n\r\n scope.init = (function () {\r\n //scope.cacheElems();\r\n $timeout(function () {\r\n scope.presetData();\r\n scope.addMainAreaStyles();\r\n }, 1000);\r\n\r\n // todo: focus on first element\r\n })();\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{ viewData.lang.there_are }}

0}\">

{{multiLanguageService.getString('collections.criteria.n_adding_results', { count: searchResult.length })}}

{{::multiLanguageService.getString('collections.criteria.auto_update')}}

{{ viewData.lang.chosen_criteria }}

0\">

{{::multiLanguageService.getString('collections.labels.sort_by', { sortBy: multiLanguageService.getString('asset_summary.created'), time: (item.Created | pebbleDate: \"timeOnly\"), date: (item.Created | pebbleDate) })}} {{::multiLanguageService.getString('collections.labels.sort_by', { sortBy: multiLanguageService.getString('asset_summary.last_modified'), time: (item.LastModified | pebbleDate: \"timeOnly\"), date: (item.LastModified | pebbleDate) })}}

0 || item.Minutes > 0\"> \"\"

0\">{{ ::multiLanguageService.getString('collections.labels.hours', { count: item.Hours }) }}

0\">{{ ::multiLanguageService.getString('collections.labels.minutes', { count: item.Minutes }) }}

{{ ::multiLanguageService.getString('collections.labels.hours_and_mins_mobile', { hours: item.HoursText, mins: item.MinutesText }) }}

0\"> \"\"

{{ ::multiLanguageService.getString('collections.labels.points', { count: item.Points })}}

{{ ::item.Points }}

0 || item.Minutes > 0\"> \"\"

0\">{{ ::multiLanguageService.getString('collections.labels.hours', { count: item.Hours }) }}

0\">{{ ::multiLanguageService.getString('collections.labels.minutes', { count: item.Minutes }) }}

{{ ::multiLanguageService.getString('collections.labels.hours_and_mins_mobile', { hours: item.HoursText, mins: item.MinutesText }) }}

0\"> \"\"

{{ ::multiLanguageService.getString('collections.labels.points', { count: item.Points })}}

{{ ::item.Points }}


{{::multiLanguageService.getString('collections.labels.total')}}

\"\"

{{ viewData.lang.hours_total }}

{{ viewData.lang.mins_total }}

{{ viewData.lang.hours_mins_total }}

\"\"

{{ ::multiLanguageService.getString('collections.labels.points', { count: totalPoints }) }}

{{ totalPoints }}

\"\"

{{ viewData.lang.hours_total }}

{{ viewData.lang.mins_total }}

{{ viewData.lang.hours_mins_total }}

\"\"

{{ viewData.lang.points_total }}

{{ totalPoints }}


{{::multiLanguageService.getString('collections.labels.remaining')}}

0\"> \"\"

{{ viewData.lang.hours_remaining }}

{{ viewData.lang.mins_remaining }}

{{ viewData.lang.hours_mins_remaining }}

0\"> \"\"

{{ viewData.lang.points_remaining }}

{{ remainingPoints }}

0\"> \"\"

{{ viewData.lang.hours_remaining }}

{{ viewData.lang.mins_remaining }}

{{ viewData.lang.hours_mins_remaining }}

0\"> \"\"

{{ viewData.lang.points_remaining }}

{{ remainingPoints }}


`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../utilities/urlService\";\r\nimport \"../../builder/dataManager/dtoFactory\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"../../user/user.service\";\r\nimport \"../../assetEndpointService/assetEndpoint.service\";\r\n\r\nangularAMD.factory(\"collectionService\", [\r\n \"$http\",\r\n \"$routeParams\",\r\n \"baseUrlsFactory\",\r\n \"urlService\",\r\n \"dtoFactory\",\r\n \"User\",\r\n \"AssetEndpointService\",\r\n function ($http, $routeParams, baseUrlsFactory, urlService, dtoFactory, User, AssetEndpointService) {\r\n return {\r\n getCollection: function (paramsList) {\r\n var params = {};\r\n\r\n paramsList.forEach(function (param) {\r\n params[param.key] = param.value;\r\n });\r\n if ($routeParams.timeslice && params.timeslice === undefined) {\r\n params.timeslice = $routeParams.timeslice;\r\n }\r\n\r\n return AssetEndpointService.getAssetAndCheckPermission(params);\r\n },\r\n\r\n getCriteriaFromCollectionWrapper: function (id) {\r\n var params = [{ key: \"assetId\", value: id }];\r\n if ($routeParams.timeslice) {\r\n params.push({ key: \"timeslice\", value: $routeParams.timeslice });\r\n }\r\n\r\n if ($routeParams.submissionId) {\r\n params.push({ key: \"submissionId\", value: $routeParams.submissionId });\r\n }\r\n return $http.get(urlService.addParameters(baseUrlsFactory.api_base_url + \"Collection/GetCollectionCriteria\", params));\r\n },\r\n\r\n saveCollection: function (data) {\r\n if (data) {\r\n // possible user hasn't activited collection yet\r\n if (data.Revision && isNaN(data.Revision)) {\r\n data.Revision = -1;\r\n }\r\n return urlService.promisedPost(baseUrlsFactory.api_base_url + \"assetDto/saveOrUpdate\", { model: data });\r\n }\r\n\r\n return undefined;\r\n },\r\n\r\n appendManualCriteriaToCollectionDto(assets, collectionDto) {\r\n const existingAssets = collectionDto.StaticCollectionAssetIds ?? [];\r\n const collection = this.addManualCriteriaToCollectionDto(assets, collectionDto);\r\n collection.StaticCollectionAssetIds = collection.StaticCollectionAssetIds.concat(existingAssets);\r\n return collection;\r\n },\r\n\r\n addManualCriteriaToCollectionDto: function (assets, collectionDto) {\r\n var ids = assets.getValuesFromNestedKeys(\"Id\");\r\n if (collectionDto) {\r\n collectionDto.StaticCollectionAssetIds = ids;\r\n } else {\r\n collectionDto = this.createNewManualCollectionDto(ids);\r\n }\r\n return collectionDto;\r\n },\r\n\r\n createNewManualCollectionDto: function (ids) {\r\n return dtoFactory.create({\r\n MainType: \"AssetCollection\",\r\n StaticCollection: true,\r\n StaticCollectionAssetIds: ids || [],\r\n CreatedBy: User.getId()\r\n });\r\n },\r\n\r\n getCollectionResults: function (assetId, searchObject) {\r\n const params = [{ key: \"assetId\", value: assetId }];\r\n const url = urlService.addParameters(baseUrlsFactory.api_base_url + \"Collection/GetCollectionResults\", params);\r\n return urlService.promisedPost(url, searchObject);\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { directiveAttributeFactory } from \"./directiveAttributeFactory\";\r\n\r\n//Module setup\r\n//=============================================================================================================\r\nvar conditionalAttributeModule = angular.module(\"conditionalAttribute\", [\"ng\"]);\r\n\r\n//Directive setup\r\n//=============================================================================================================\r\nvar directives = [\r\n { key: \"conditionalTarget\", value: \"target\" },\r\n { key: \"conditionalPlaceholder\", value: \"placeholder\" },\r\n { key: \"conditionalId\", value: \"id\" },\r\n { key: \"conditionalTabindex\", value: \"tabindex\" }\r\n];\r\n\r\ndirectiveAttributeFactory.create(conditionalAttributeModule, directives);\r\n\r\nexport { conditionalAttributeModule as conditionalAttribute };\r\n","//Directive Factory - Create directives from a list of key values.\r\n//=============================================================================================================\r\n/**\r\n * @constructor\r\n */\r\n// tslint:disable-next-line:no-empty\r\nfunction DirectiveAttributeFactory(directiveMap) {}\r\n\r\n/**\r\n * @param {NgModule} ngModule\r\n * @param {Array<{key: string, value: string}>} directives\r\n */\r\nDirectiveAttributeFactory.prototype.createDirectives = function (ngModule, directives) {\r\n directives.forEach(\r\n function (keyValue) {\r\n ngModule.directive(keyValue.key, this.createDirective.bind(this, keyValue.key, keyValue.value));\r\n }.bind(this)\r\n );\r\n};\r\n\r\nDirectiveAttributeFactory.prototype.createDirective = function (directiveName, ariaAttributeName) {\r\n return {\r\n restrict: \"A\",\r\n link: function (scope, element, attrs) {\r\n attrs.$observe(directiveName, function (newValue) {\r\n if (newValue) {\r\n element[0].setAttribute(ariaAttributeName, newValue);\r\n } else {\r\n element[0].removeAttribute(ariaAttributeName);\r\n }\r\n });\r\n }\r\n };\r\n};\r\n\r\nconst _moduleExport = {\r\n /**\r\n * @param {NgModule} ngModule\r\n * @param {Array<{key: string, value: string}>} directives\r\n * @return {DirectiveAttributeFactory}\r\n */\r\n create: function (ngModule, directives) {\r\n var factory = new DirectiveAttributeFactory();\r\n factory.createDirectives(ngModule, directives);\r\n return factory;\r\n }\r\n};\r\nexport { _moduleExport as directiveAttributeFactory };\r\n","var constants = {\r\n ADD: \"add\",\r\n DELETE: \"delete\",\r\n EDIT: \"edit\",\r\n CANCEL: \"cancel\",\r\n VIEW: \"view\",\r\n RECALL: \"recall\",\r\n RELEASE: \"release\"\r\n};\r\n\r\nexport { constants as ACTION_CONSTANTS };\r\n","var constants = {\r\n FEEDBACK_TYPES: {\r\n FEEDBACKTEMPLATE: \"FeedbackTemplate\",\r\n GRADE: \"Grade\",\r\n COMMENT: \"Comment\",\r\n SCORECARD: \"Scorecard\",\r\n CERTIFICATE: \"Certificate\",\r\n APPROVAL: \"Approval\",\r\n APPROVALCOLLECTION: \"ApprovalCollection\",\r\n SIMILARITYSCORE: \"SimilarityScore\",\r\n PAGEVERIFICATION: \"PageVerification\",\r\n CAPABILITY: \"Capability\",\r\n ASSESSOR_FIELD: \"AssessorField\",\r\n APPROVAL_LEVEL_ONE: \"ApprovalLevelOne\",\r\n APPROVAL_LEVEL_TWO: \"ApprovalLevelTwo\",\r\n APPROVAL_LEVEL_THREE: \"ApprovalLevelThree\"\r\n },\r\n FEEDBACK_PROPERTIES: {\r\n SIMILARITYSCORE: {\r\n INTERNETSIMILARITY: \"InternetSimilarity\",\r\n PUBLICATIONSSIMILARITY: \"PublicationsSimilarity\",\r\n DOCUMENTSSIMILARITY: \"DocumentsSimilarity\",\r\n OVERALLSIMILARITY: \"OverallSimilarity\"\r\n },\r\n APPROVAL: {\r\n LEVELTEXT: \"LevelText\",\r\n STATUSTEXT: \"StatusText\"\r\n }\r\n },\r\n FEEDBACK_SUBTYPES: {\r\n STANDARD: \"Standard\",\r\n TURNITIN: \"Turnitin\"\r\n },\r\n FEEDBACK_FORMATS: {\r\n GRADE: {\r\n PERCENTAGE: \"Percentage\",\r\n STRING: \"String\"\r\n }\r\n },\r\n FEEDBACK_REPLIES: {\r\n DEFAULT_SHOW_AMOUNT: 2\r\n },\r\n RELEASE_STATES: {\r\n RELEASED: \"Released\",\r\n UNRELEASED: \"Unreleased\"\r\n },\r\n RELEASE_SETTINGS: {\r\n ALWAYS_RELEASE: \"AlwaysRelease\",\r\n DEFAULT_RELEASE: \"DefaultRelease\",\r\n DEFAULT_HOLD: \"DefaultHold\",\r\n ALWAYS_HOLD: \"AlwaysHold\"\r\n },\r\n APPROVAL_STATES: {\r\n POSITIVE: \"Positive\",\r\n NEUTRAL: \"Neutral\",\r\n NEGATIVE: \"Negative\"\r\n }\r\n};\r\n\r\nexport { constants as ASSESSMENT_CONSTANTS };\r\n","const constants = {\r\n PERMISSIONS: {\r\n VIEW: \"View\",\r\n WRITE: \"Write\",\r\n COLLABORATE: \"Collaborate\",\r\n LINK: \"Link\",\r\n NOPERMISSION: \"NoPermission\"\r\n },\r\n FOLDERS: {\r\n MAIN: \"Main\",\r\n INVISIBLE: \"Invisible\",\r\n DELETED: \"Deleted\",\r\n NOT_IN_USERS: \"NotInUsersFolders\"\r\n },\r\n PAGE_KEYS: {\r\n CONTENT_ID: \"ContentId\",\r\n PAGE_ASSET_ID: \"PageAssetId\",\r\n USER_RESPONSE_ID: \"UserResponseId\"\r\n },\r\n TYPES: {\r\n ACTIVITY_LOG: \"ActivityLog\",\r\n BLOG: \"Blog\",\r\n CALLING_CARD: \"CallingCard\",\r\n COLLECTION: \"AssetCollection\",\r\n COLLECTION_WRAPPER: \"AssetCollectionWrapper\",\r\n CONVERSATION: \"Conversation\",\r\n CV: \"CV\",\r\n FILE: \"File\",\r\n FORM: \"Form\",\r\n FORM_RESPONSE: \"FormResponse\",\r\n POST: \"Post\",\r\n TEMPLATE_BUILDER: \"TemplateBuilder\",\r\n WEBFOLIO: \"Webfolio\",\r\n WEBFOLIO_PAGE: \"WebfolioPage\",\r\n WORKBOOK: \"WorkBook\",\r\n WORKBOOK_BUILDER: \"WorkbookBuilder\",\r\n WORKBOOK_RESPONSE: \"WorkBookResponse\"\r\n },\r\n SUB_TYPES: {\r\n ACCOLADE: \"Professional/AboutMeAccolade\",\r\n AFFILIATION: \"Professional/AboutMeAffiliation\",\r\n BELIEF: \"Personal/AboutMeBelief\",\r\n DATABASE: \"Document/Database\",\r\n DOCUMENT: \"Document\",\r\n EMPLOYMENT: \"Professional/AboutMeEmployment\",\r\n EXPERIENCE: \"Experience\",\r\n FEEDBACK: \"Feedback\",\r\n HOBBY: \"Personal/AboutMeHobby\",\r\n LANGUAGE: \"Academic/AboutMeLanguage\",\r\n PDF: \"Document/PDF\",\r\n PERSONAL_STATEMENT: \"Personal/AboutMePersonalStatement\",\r\n PLAN: \"Plan\",\r\n PRESENTATION: \"Document/Presentation\",\r\n PUBLICATION: \"Academic/AboutMePublication\",\r\n QUALIFICATION: \"Academic/AboutMeQualification\",\r\n REFEREE: \"Professional/AboutMeReferee\",\r\n REFLECTION: \"Reflection\",\r\n ROLE: \"Professional/AboutMeRole\",\r\n SPREADSHEET: \"Document/Spreadsheet\",\r\n STANDARDS: \"Standards\",\r\n TALENT: \"Talent\",\r\n TEXT: \"Document/Text\",\r\n WORKSHEET: \"Worksheet\"\r\n },\r\n FILE: {\r\n TYPES: {\r\n IMAGE: \"image\",\r\n VIDEO: \"video\",\r\n AUDIO: \"audio\",\r\n PDF: \"application/pdf\"\r\n }\r\n },\r\n CATEGORIES: {\r\n POSTS: \"Posts\",\r\n RECORDS: \"Records\",\r\n DESIGNS: \"Designs\",\r\n DOCUMENTS: \"Documents\",\r\n MEDIA: \"Media\",\r\n CV: \"Cv\",\r\n OTHER_FILES: \"OtherFiles\",\r\n IMAGE: \"Image\",\r\n VIDEO: \"Video\",\r\n AUDIO: \"Audio\"\r\n },\r\n SPECIAL_TYPES: {\r\n APPLICANT: \"Applicant\",\r\n STANDARDS_OVERVIEW: \"StandardsOverview\"\r\n },\r\n PRIVACY_STATES: {\r\n CONFIDENTIAL: \"Confidential\",\r\n PRIVATE: \"Private\",\r\n ASSESSOR: \"Assessor\",\r\n SPECIFIC_ASSESSORS: \"SpecificAssessors\",\r\n ASSESSOR_FEEDBACK: \"AssessorFeedback\",\r\n DEFAULT: \"Normal\"\r\n },\r\n ALL_PRIVACY_STATES: [\"Confidential\", \"Private\", \"Assessor\", \"SpecificAssessors\"],\r\n WORKSPACE_ASSESSOR_ROLES: {\r\n INTERNAL_LIST: [\"Tutor\", \"LeadTutor\", \"Moderator\"],\r\n LEAD_TUTOR: \"Lead Tutor\",\r\n TUTOR: \"Tutor\",\r\n MODERATOR: \"Moderator\",\r\n EXTERNAL: \"External\",\r\n ALL: [\"Tutor\", \"LeadTutor\", \"Moderator\", \"External\"]\r\n },\r\n ASSET_OPTIONS: {\r\n IS_MAPPABLE: \"IsMappable\",\r\n CASCADE_BANNER_ID: \"cascadeBannerId\"\r\n },\r\n EVIDENCE_STATES: {\r\n NOT_EVIDENCED: \"NotEvidenced\",\r\n PARTIALLY_EVIDENCED: \"PartiallyEvidenced\",\r\n FULLY_EVIDENCED: \"FullyEvidenced\"\r\n }\r\n};\r\n\r\nexport { constants as ASSET_CONSTANTS };\r\n","const constants = {\r\n TYPES: {\r\n STANDARDS: \"Standards\",\r\n FORM_BASIC_CONTAINER: \"FormBasicContainer\",\r\n STANDARDS_SELECTION: \"StandardsSelection\"\r\n }\r\n};\r\n\r\nexport { constants as ELEMENT_CONSTANTS };\r\n","const _moduleExport = {\r\n UNKNOWN: \"unknown\",\r\n NO_FEEDBACK_ERROR: \"no_feedback_error\",\r\n NO_PERMISSION_ERROR: \"no_permission_error\",\r\n NO_SEARCH_FEEDBACK_ERROR: \"no_search_feedback_error\"\r\n};\r\nexport { _moduleExport as FEEDBACK_ERRORS };\r\n","const constants = {\r\n START_DATE: \"StartDate\",\r\n END_DATE: \"EndDate\"\r\n};\r\nexport { constants as FILTER_CRITERIA_TYPES_CONSTANTS };\r\n","const constants = {\r\n SIDEBAR: {\r\n EVIDENCE_TITLE: \"EvidenceTitle\",\r\n HISTORY_TITLE: \"HistoryTitle\"\r\n }\r\n};\r\n\r\nexport { constants as FOCUS_CONSTANTS };\r\n","const constants = {\r\n ALT_TEXT: {\r\n LIMIT: 100\r\n }\r\n};\r\n\r\nexport { constants as INPUT_LIMIT_CONSTANTS };\r\n","const constants = {\r\n RATING_SLIDER: {\r\n DEFAULT_VALUES: {\r\n MIN: 0,\r\n MAX: 100,\r\n PROGRESS_COLOUR: \"#0566A9\",\r\n RATING_VALUE: 0,\r\n THUMB_HEIGHT: 25,\r\n THUMB_WIDTH: 25,\r\n STEP: 1,\r\n RATING_TYPES: {\r\n SLIDER: \"Slider\",\r\n NONE: \"None\"\r\n }\r\n },\r\n AGGREGATE_COLOUR: \"#6010A7\"\r\n },\r\n BREADCRUMB: {\r\n TYPES: {\r\n MAPPING: \"Mapping\",\r\n STANDARD: \"Standard\"\r\n }\r\n },\r\n STATUS: {\r\n PENDING: \"Pending\",\r\n APPROVED: \"Approved\",\r\n REJECTED: \"Rejected\"\r\n },\r\n ERROR: {\r\n FEEDBACK: \"feedback\",\r\n APPROVAL: \"approval\",\r\n SAVE: \"save\"\r\n },\r\n CAPABILTY_SAVE_RESPONSES: {\r\n ADD_FAIL: \"add_failed\",\r\n ADD_SUCCESS: \"add_success\",\r\n REMOVE_FAIL: \"remove_failed\",\r\n REMOVE_SUCCESS: \"remove_success\",\r\n UPDATE_FAIL: \"update_fail\",\r\n UPDATE_SUCCESS: \"update_success\"\r\n },\r\n EVIDENCE_MODE: {\r\n ONE_JUSTIFICATION_FOR_ALL_ITEMS: \"single\",\r\n JUSTIFICATION_PER_ITEM: \"multiple\"\r\n }\r\n};\r\n\r\nexport { constants as MAP_TO_STANDARDS_CONSTANTS };\r\n","export const PAGE_ERROR = {\r\n INVALID_PARENT: \"INVALID_PARENT\",\r\n NO_PAGES: \"NO_PAGES\",\r\n NOT_ALLOWED: \"NOT_ALLOWED\",\r\n NOT_FOUND: \"NOT_FOUND\",\r\n LAST_PAGE: \"LAST_PAGE\",\r\n PAGE_IS_CONTAINER: \"PAGE_IS_CONTAINER\"\r\n};\r\n","const constants = {\r\n PANEL: {\r\n ELEMENTS_OVERVIEW: \"standards-elements-overview\",\r\n HISTORY: \"history\",\r\n SELECTOR: \"selector\",\r\n ASSET_STORE: \"asset-store\",\r\n ASSET_INFO: \"asset-info\",\r\n COLLECTION_CRITERIA: \"collection-criteria\",\r\n ASSET_COMMENTS: \"asset-comments\",\r\n ASSET_FEEDBACK: \"asset-feedback\",\r\n ASSET_MAPPING: \"asset-mapping\",\r\n ASSET_VERSIONING: \"asset-versioning\",\r\n ASSET_PROGRESS_TRACKING: \"asset-progress-tracking\",\r\n STANDARDS_SELECTOR_PANEL: \"standards-selector-panel\",\r\n FILE_UPLOAD: \"file-upload\",\r\n ADD_EVIDENCE: \"add-evidence\",\r\n ELEMENT_INFO: \"element-info\",\r\n ELEMENT_COMMENTS: \"element-comments\",\r\n ELEMENT_FEEDBACK: \"element-feedback\",\r\n ASSET_FILTERING_PANEL: \"asset-filtering-panel\"\r\n }\r\n};\r\n\r\nexport { constants as PANEL_CONSTANTS };\r\n","export const REDIRECT_BLOCKING_PURPOSES = {\r\n APPROVAL: \"Approval\",\r\n ASSET: \"Asset\",\r\n COMMENT: \"Comment\",\r\n GENERIC: \"Generic\",\r\n FEEDBACK: \"Feedback\",\r\n MAPPING: \"Mapping\",\r\n ACCOUNT_SETTINGS: \"Account settings\"\r\n};\r\n","export const SELECTOR = {\r\n SELECT_TYPE: {\r\n ASSET: \"AssetStore\",\r\n RESOURCE: \"ResourceCentre\",\r\n ASSET_AND_RESOURCE: \"AssetStoreAndResourceCentre\",\r\n STANDARDS: \"Standards\",\r\n MAIN: \"MainStore\"\r\n }\r\n};\r\n","const constants = {\r\n ASSESSMENT: \"assessment\",\r\n WEB: \"web\",\r\n USERS: \"users\"\r\n};\r\nexport { constants as SHARE_TYPES };\r\n","const constants = {\r\n EMPTY_STATUS: \"\",\r\n STATUS_ONEANDTWO: \"CompleteInductionInExternal\",\r\n STATUS_THREE: \"CompleteInductionInPebblePad\",\r\n STATUS_FOUR: \"CompleteInductionInPebblePadReadOnly\",\r\n STATUS_FIVE: \"NoInduction\",\r\n STATUS_SIX: \"CompleteStandardsInductionInPebblePad\",\r\n STATUS_SEVEN: \"CompleteStandardsInductionInPebblePadReadOnly\",\r\n STATUS_EIGHT: \"NoInductionExperienceAndStandardsWorkBook\",\r\n STATUS_NINE: \"ReadOnlyInductionExperienceAndStandardsWorkBook\",\r\n STATUS_TEN: \"CompleteStandardsInductionInPebblePad2019\",\r\n STATUS_ELEVEN: \"CompleteStandardsInductionInPebblePadReadOnly2019\",\r\n STATUS_TWELVE: \"CompleteStandardsInductionInPebblePad2020\",\r\n STATUS_THIRTEEN: \"CompleteStandardsInductionInPebblePadReadOnly2020\",\r\n STATUS_FOURTEEN: \"CompleteStandardsInductionInPebblePad2022\",\r\n STATUS_FIFTEEN: \"CompleteStandardsInductionInPebblePadReadOnly2022\"\r\n};\r\n\r\nexport { constants as STATUS_CONSTANTS };\r\n","const constants = {\r\n CAN_MAP: \"CanAddOrEditMapping\",\r\n CAN_SELF_ASSESS: \"CanSelfAssess\",\r\n CAN_VIEW_PROGRESS_CHART: \"CanViewProgressChart\",\r\n CAN_VIEW_PENDING_LIST: \"CanViewPendingList\",\r\n CAN_APPROVE: \"CanApprove\"\r\n};\r\n\r\nexport { constants as STATUS_PERMISSIONS_CONSTANTS };\r\n","const constants = {\r\n RESULT_TYPE: {\r\n RESOURCE: \"Resource\",\r\n ASSET: \"Asset\"\r\n },\r\n STORE_TYPE: {\r\n ASSET: \"asset\",\r\n RESOURCE: \"resource\",\r\n FAVOURITE: \"favourite\",\r\n DELETED: \"deleted\",\r\n EXTERNAL: \"external\"\r\n },\r\n SEARCH_TYPE: {\r\n DEFAULT: \"asset-store\",\r\n ASSET: \"asset\",\r\n RESOURCE: \"resource\",\r\n FAVOURITE: \"favourite\",\r\n FILE: \"file\",\r\n DELETED: \"deleted\",\r\n EXTERNAL: \"external\"\r\n }\r\n};\r\n\r\nexport { constants as STORE_CONSTANTS };\r\n","const styleOptionKeys = {\r\n WORD_COUNT_ENABLED: \"word-count-enabled\",\r\n INCLUDE_TITLE: \"include-title\",\r\n INFIELD_HINT: \"infield-hint\",\r\n ADD_EVIDENCE_COMPONENT: \"add-evidence-component\",\r\n SHOW_HINT_WHEN_VIEWING: \"show-hint-when-viewing\",\r\n SHOW_EMPTY_FIELD_WHEN_VIEWING: \"show-empty-field-when-viewing\",\r\n SHOW_HINT_BLOCK_WHEN_VIEWING: \"show-hint-block-when-viewing\",\r\n PRIVACY_STATE: \"privacy-state\",\r\n MANDATORY_FOR_PROGRESS: \"mandatory-for-progress\",\r\n CUSTOM_ASSESSOR_FIELD_LABEL: \"custom-assessor-field-label\",\r\n CAPABILITY_EVIDENCE_AMOUNT: \"capabilityEvidenceAmount\"\r\n};\r\n\r\nexport { styleOptionKeys as STYLE_OPTIONS };\r\n","var date = \"date\";\r\nvar numeric = \"numeric\";\r\nvar pbString = \"string\";\r\nvar time = \"time\";\r\n\r\nvar constants = {\r\n MAX_DATA_TYPES: 2,\r\n CELLS: {\r\n DATE: date,\r\n DUMMY: \"dummy\",\r\n EDITABLE: \"editable\",\r\n EMPTY: \"empty\",\r\n STRING: pbString,\r\n NUMERIC: numeric,\r\n TOTAL: \"total\",\r\n TIME: time,\r\n HEADER: \"header\",\r\n ALL_SELECTABLE: [\r\n // Any new dropdown items need to go in here as well\r\n date,\r\n numeric,\r\n pbString,\r\n time\r\n ],\r\n ALL_AUTOSUM: [numeric, time],\r\n OPTIONS: {\r\n NUMERIC: {\r\n MAX_DECIMALS: 13\r\n }\r\n }\r\n },\r\n CLASSES: {\r\n DATE: \"icon-calendar table-el__icon-calendar\",\r\n NUMERIC: \"icon-one-two-three table-el__icon-one-two-three\",\r\n STRING: \"icon-title table-el__icon-title\",\r\n TIME: \"icon-timer table-el__icon-timer\"\r\n },\r\n BUILDER_TABLES: {\r\n ROW_HEADINGS: \"BuilderFormTableContainer-RowHeadings\",\r\n FIXED_ROWS: \"BuilderFormTableContainer-FixedRows\",\r\n ROWS_ONLY: \"BuilderFormTableContainer-RowHeadingsNoColumnHeadings\",\r\n RUBRIC: \"BuilderRubricContainer\",\r\n GENERIC: \"GenericBuilderTable\"\r\n },\r\n RUBRIC_CONTAINER: \"RubricContainer\",\r\n AUTO_SUM_BUILDER_TABLES: [\"BuilderFormTableContainer-RowHeadings\", \"BuilderFormTableContainer-FixedRows\", \"BuilderFormTableContainer-RowHeadingsNoColumnHeadings\"],\r\n AUTO_SUM_FORM_CONTAINERS: [\"FormTableContainer-FixedRows\", \"FormTableContainer-RowHeadings\", \"FormTableContainer-RowHeadingsNoColumnHeadings\"],\r\n MODES: {\r\n BUILDER: \"builder\",\r\n VIEWER: \"viewer\",\r\n FILLER: \"filler\"\r\n }\r\n};\r\n\r\nexport { constants as TABLE_DATA_TYPES };\r\n","const constants = {\r\n SAVE_OVERLAY: 750\r\n};\r\n\r\nexport { constants as TIMEOUT_CONSTANTS };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.service(\"customEvent\", CustomEventClass);\r\n\r\nfunction CustomEventClass() {\r\n // Public API\r\n // =============================================================================================================\r\n this.emit = emit;\r\n\r\n // Private methods\r\n // =============================================================================================================\r\n function emit(target, eventName, opts) {\r\n var customEvt = document.createEvent(\"Event\");\r\n customEvt.initEvent(eventName, true, true);\r\n\r\n customEvt.preventDefault = function () {\r\n // https://www.w3.org/Bugs/Public/show_bug.cgi?id=14638 - if we don't cancel it, we'll snap back\r\n }.bind(this);\r\n\r\n target.dispatchEvent(customEvt);\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { crossIcon } from \"@pjs/core-ui\";\r\nimport enquire from \"enquire.js/dist/enquire\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"./datePickerHelper\";\r\nimport \"../utilities/customEvent.service\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../userAgent/userAgent.service\";\r\nimport \"../utilities/errorHighlighter.service\";\r\nimport \"../utilities/helpers\";\r\nimport \"../utilities/typeCheck.service\";\r\nimport \"../utilities/pebbleDate\";\r\nimport \"../react2angular/icon\";\r\nimport datePickerTemplate from \"./templates/date-picker.html\";\r\n\r\nangularAMD.directive(\"datePicker\", [\r\n \"$sce\",\r\n \"$rootScope\",\r\n \"$timeout\",\r\n \"baseUrlsFactory\",\r\n \"datePickerHelper\",\r\n \"customEvent\",\r\n \"multiLanguageService\",\r\n \"typeCheck\",\r\n \"UserAgentService\",\r\n \"errorHighlighter\",\r\n function ($sce, $rootScope, $timeout, baseUrlsFactory, datePickerHelper, customEvent, multiLanguageService, typeCheck, UserAgentService, errorHighlighter) {\r\n // Get spa menu height\r\n // get it done before outside return\r\n // because in this case it will be triggered only once. (performance reason)\r\n var spa_menu_el = document.getElementById(\"spa-menu-wrapper\");\r\n var spa_menu_height = spa_menu_el ? spa_menu_el.offsetHeight : 0;\r\n enquire.register(\"screen and (max-width: 460px)\", {\r\n match: function () {\r\n spa_menu_height = spa_menu_el ? spa_menu_el.offsetHeight : 0;\r\n },\r\n unmatch: function () {\r\n spa_menu_height = spa_menu_el ? spa_menu_el.offsetHeight : 0;\r\n }\r\n });\r\n\r\n var current_selected_calendar, last_selected_calendar;\r\n\r\n return {\r\n scope: {\r\n bindTo: \"<\",\r\n presetDate: \"=presetDate\",\r\n minDate: \"=minDate\",\r\n maxDate: \"=maxDate\",\r\n label: \"@label\",\r\n alternativeAriaLabel: \"@alternativeAriaLabel\",\r\n clearDateAriaLabel: \"@\",\r\n onUpdate: \"&\",\r\n endOfDay: \"=endOfDay\",\r\n compact: \"= 0) {\r\n time_increment = parsed_increment;\r\n }\r\n }\r\n\r\n $scope.time_increment = time_increment;\r\n\r\n // minimum time for dropdown menu\r\n min_time.setHours(0, time_increment, 0, 0);\r\n\r\n // maximum time for dropdown menu\r\n max_time.setHours(23, 59, 0, 0);\r\n\r\n return getOptions(min_time, max_time, time_increment);\r\n };\r\n\r\n var options = {\r\n year: null,\r\n month: null,\r\n date: null,\r\n\r\n default_date: null,\r\n isRTL: false,\r\n\r\n // how many months are visible\r\n number_of_months: 1,\r\n\r\n first_day: 1,\r\n min_date: null,\r\n max_date: null,\r\n year_range: 100,\r\n show_week_number: false,\r\n timeOptions: false\r\n };\r\n\r\n $scope.equalizeDateWithPicker = function (new_date) {\r\n if ($scope.time_dropdown_options) {\r\n var closest_minute = datePickerHelper.findClosestMinute($scope.time_dropdown_options, new_date.getMinutes(), new_date.getHours());\r\n new_date.setMinutes(closest_minute);\r\n new_date.setSeconds(0);\r\n }\r\n\r\n return new_date;\r\n };\r\n\r\n $scope.config = function (opts) {\r\n var new_date = new Date();\r\n\r\n // if onlyFuture flag is set then make min date equals to today\r\n if ($scope.onlyFuture) {\r\n opts.min_date = datePickerHelper.setToStartOfDay(new_date);\r\n }\r\n\r\n $timeout(function () {\r\n opts.date = $scope.equalizeDateWithPicker(new_date);\r\n }, 0);\r\n\r\n return opts;\r\n };\r\n\r\n $scope.checkForCalendarOffset = function () {\r\n var cur_elem = $element[0];\r\n\r\n do {\r\n cur_elem = cur_elem.parentNode;\r\n if (!cur_elem) {\r\n break;\r\n }\r\n } while (cur_elem.nodeName !== \"FORM-CANVAS\");\r\n\r\n return cur_elem !== null;\r\n };\r\n\r\n $scope.init = function () {\r\n /**\r\n * date format guidelines: https://en.wikipedia.org/wiki/Date_format_by_country\r\n * Order of the basic components:\r\n * B - Big-endian (year, month, day), e.g. 1996-04-22\r\n * L - Little-endian (day, month, year), e.g. 22.04.96 or 22/04/96 or 22 April 1996\r\n * M - Middle-endian (month, day, year), e.g. 04/22/96 or April 22, 1996\r\n */\r\n $scope.date_format = \"L\";\r\n $scope.multiLanguageService = multiLanguageService;\r\n $scope.onlyFuture = $attrs.onlyFuture !== undefined;\r\n $scope.watch_bind_to = $attrs.watchBindTo !== undefined;\r\n $scope.time_dropdown_options = $attrs.time === \"\" || $attrs.time === \"true\" ? buildTimeDropdownOptions() : false;\r\n $scope.icon = $attrs.icon === \"\";\r\n $scope.time_position = $attrs.timePosition === \"\" || $attrs.timePosition === undefined ? \"\" : $attrs.timePosition;\r\n $scope.blank_date = $attrs.blankDate !== undefined;\r\n $scope.ignore_spa_menu = $attrs.ignoreSpaMenu !== undefined;\r\n\r\n options.timeOptions = !!$scope.time_dropdown_options;\r\n $scope.opts = $scope.config(options);\r\n $scope.calendar_has_offset = $scope.checkForCalendarOffset();\r\n };\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n var enter_event = \"click\",\r\n start_enter_event = \"mousedown\";\r\n\r\n scope.toggleCalendar = function () {\r\n if (scope.is_open) {\r\n scope.hideCalendar();\r\n } else {\r\n scope.showCalendar();\r\n }\r\n };\r\n\r\n scope.setDate = function (date) {\r\n var originally_passed_date = date;\r\n\r\n if (!date && !scope.blank_date) {\r\n return;\r\n }\r\n if (typeof date === \"string\") {\r\n date = new Date(Date.parseDate(date, scope.date_format));\r\n }\r\n\r\n if (!datePickerHelper.isDate(date) && !scope.blank_date) {\r\n return;\r\n } else if (!datePickerHelper.isDate(date) && scope.blank_date) {\r\n date = null;\r\n }\r\n\r\n if (!date) {\r\n date = new Date();\r\n }\r\n\r\n var min = scope.opts.min_date,\r\n max = scope.opts.max_date;\r\n\r\n if (datePickerHelper.isDate(min) && date <= min) {\r\n date = min;\r\n if (scope.time_dropdown_options) {\r\n date = scope.getNearestTime(date, 1);\r\n }\r\n } else if (datePickerHelper.isDate(max) && date >= max) {\r\n date = max;\r\n if (scope.time_dropdown_options) {\r\n date = scope.getNearestTime(date, -1);\r\n }\r\n }\r\n\r\n date.setMilliseconds(0); // do this for data that came from watcher\r\n scope.opts.date = new Date(date.getTime());\r\n scope.opts.year = scope.opts.date.getFullYear();\r\n scope.opts.month = scope.opts.date.getMonth();\r\n\r\n var modifiedDate = scope.blank_date && !originally_passed_date ? originally_passed_date : date;\r\n if (datePickerHelper.isDate(originally_passed_date)) {\r\n if (scope.bindTo || scope.bindTo === null) {\r\n if (scope.time_dropdown_options !== false) {\r\n if (scope.opts.date) {\r\n var closestMinute = datePickerHelper.findClosestMinute(scope.time_dropdown_options, scope.opts.date.getMinutes(), scope.opts.date.getHours());\r\n scope.opts.date.setMinutes(closestMinute);\r\n }\r\n\r\n modifiedDate = scope.opts.date;\r\n } else {\r\n modifiedDate = scope.endOfDay ? datePickerHelper.setToEndOfDay(scope.opts.date) : datePickerHelper.setToStartOfDay(scope.opts.date);\r\n }\r\n\r\n /**\r\n * Normalise the date to the nearest 30mins (only options available for time)\r\n * Check if normalised date is the same as the bindTo date.\r\n * If not, normalised date takes priority to make sure correct time is stored in data.\r\n */\r\n var new_date = new Date(scope.equalizeDateWithPicker(modifiedDate));\r\n if (String(new_date) !== String(scope.bindTo)) {\r\n modifiedDate = new_date;\r\n }\r\n\r\n if (!scope.$$phase && !scope.$root.$$phase) {\r\n scope.$apply();\r\n }\r\n }\r\n }\r\n\r\n // update dropdown with time\r\n if (scope.time_dropdown_options !== false) {\r\n scope.unbindTimeDropdownEvents();\r\n scope.updateTimeDropdown(modifiedDate);\r\n }\r\n\r\n element[0].classList.remove(\"date-picker--invalid\");\r\n errorHighlighter.removeInvalidStyling(scope.input_el, \"decline-shake\", 0);\r\n scope.updateInputField(modifiedDate);\r\n scope.goToDate();\r\n\r\n return modifiedDate;\r\n };\r\n\r\n scope.clearDatePressed = (event) => {\r\n scope.clearDate();\r\n event.stopPropagation();\r\n };\r\n\r\n scope.clearDate = function () {\r\n scope.onUpdate({ date: null });\r\n var id = scope.label || \"\";\r\n scope.$emit(\"calendarCleared\" + id, null);\r\n triggerDatePickerUpdateEvent();\r\n };\r\n\r\n function triggerDatePickerUpdateEvent() {\r\n $timeout(function () {\r\n customEvent.emit(scope.input_el[0], \"date-picker-update\");\r\n });\r\n }\r\n\r\n scope.goToDate = function () {\r\n if (!datePickerHelper.isDate(scope.opts.date) && !scope.blank_date) {\r\n return;\r\n }\r\n\r\n scope.adjustCalendars();\r\n };\r\n\r\n scope.goToToday = function () {\r\n var today = new Date();\r\n scope.opts.month = today.getMonth();\r\n scope.opts.year = today.getFullYear();\r\n scope.adjustCalendars();\r\n };\r\n\r\n scope.goToMonth = function (month) {\r\n if (!isNaN(month)) {\r\n scope.opts.month = parseInt(month, 10);\r\n scope.adjustCalendars();\r\n }\r\n };\r\n\r\n scope.goToYear = function (year) {\r\n if (year && typeCheck.isString(year)) {\r\n scope.opts.year = parseInt(year, 10);\r\n scope.adjustCalendars();\r\n }\r\n };\r\n\r\n scope.prevMonth = function () {\r\n scope.opts.month--;\r\n scope.adjustCalendars();\r\n };\r\n scope.nextMonth = function () {\r\n scope.opts.month++;\r\n scope.adjustCalendars();\r\n };\r\n\r\n scope.adjustCalendars = function () {\r\n scope.adjustCalendar();\r\n var html = datePickerHelper.renderCalendar(scope.opts);\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n scope.calendar_el.html(html);\r\n bindTableEvents();\r\n };\r\n\r\n scope.adjustTimeDropdown = function (originally_passed_date) {\r\n var html = datePickerHelper.renderTimeDropdown(originally_passed_date, scope.time_dropdown_options, scope.opts.min_date);\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n scope.time_select_el.html(html);\r\n\r\n if (originally_passed_date) {\r\n scope.time_select_el[0].removeAttribute(\"disabled\");\r\n } else {\r\n scope.time_select_el[0].setAttribute(\"disabled\", \"\");\r\n }\r\n\r\n scope.bindTimeDropdownEvents();\r\n };\r\n\r\n scope.adjustCalendar = function () {\r\n if (scope.opts.month < 0) {\r\n scope.opts.year -= Math.ceil(Math.abs(scope.opts.month) / 12);\r\n scope.opts.month += 12;\r\n }\r\n if (scope.opts.month > 11) {\r\n scope.opts.year += Math.floor(Math.abs(scope.opts.month) / 12);\r\n scope.opts.month -= 12;\r\n }\r\n };\r\n\r\n scope.showCalendar = function () {\r\n if (!scope.is_open) {\r\n // core\r\n current_selected_calendar = scope.calendar_el;\r\n $rootScope.$broadcast(\"triggerDatePicker\");\r\n scope.is_open = true;\r\n\r\n scope.calendar_el.addClass(\"show\");\r\n\r\n // events\r\n bindCalendarEvents();\r\n\r\n // other\r\n scope.locateCalendar();\r\n last_selected_calendar = scope.calendar_el;\r\n }\r\n };\r\n\r\n scope.hideCalendar = function () {\r\n if (scope.is_open) {\r\n element[0].classList.remove(\"date-picker--input-focused\");\r\n // core\r\n scope.is_open = false;\r\n scope.keep_open = false;\r\n scope.calendar_el.removeClass(\"show\");\r\n\r\n // events\r\n unbindCalendarEvents();\r\n\r\n // other\r\n last_selected_calendar = scope.calendar_el; // save current calendar as last selected\r\n var id = scope.label || \"\";\r\n scope.$emit(\"calendarClosed\" + id);\r\n }\r\n };\r\n\r\n /**\r\n * @param {Date} date\r\n * @param {Number} sign (1 or -1)\r\n * @returns {Date}\r\n */\r\n scope.getNearestTime = function (date, sign) {\r\n return new Date(date.getTime() + scope.time_increment * sign * 60000);\r\n };\r\n\r\n scope.onChange = function (e) {\r\n element[0].classList.remove(\"date-picker--invalid\");\r\n var date;\r\n //Validate that the target value is not an empty value or a string containing only whitespace chars\r\n if (e.target.value && /\\S+/.test(e.target.value)) {\r\n if (datePickerHelper.toString(scope.bindTo) === e.target.value) {\r\n return;\r\n }\r\n try {\r\n date = new Date(Date.parseDate(e.target.value, scope.date_format));\r\n if (isNaN(date)) {\r\n throw new Error();\r\n }\r\n } catch (err) {\r\n errorHighlighter.highlightInvalidInput(e.target, \"decline-shake\", true);\r\n element[0].classList.add(\"date-picker--invalid\");\r\n return;\r\n }\r\n } else {\r\n scope.clearDate();\r\n scope.$apply();\r\n }\r\n\r\n const modifiedDate = scope.setDate(date);\r\n scope.onUpdateDate(modifiedDate);\r\n };\r\n\r\n var onEnterEvent = function (e) {\r\n var target = angular.element(e.target || e.srcElement),\r\n pEl = target[0];\r\n\r\n if (!target[0]) {\r\n return;\r\n }\r\n\r\n do {\r\n if (angular.element(pEl).hasClass(\"calendar\")) {\r\n return;\r\n }\r\n // tslint:disable-next-line:no-conditional-assignment\r\n } while ((pEl = pEl.parentNode));\r\n\r\n if (target[0] !== scope.input_el[0]) {\r\n scope.hideCalendar();\r\n }\r\n };\r\n\r\n var onStartEnterEvent = function (e) {\r\n var target = angular.element(e.target || e.srcElement);\r\n\r\n if (!target[0]) {\r\n return;\r\n }\r\n\r\n if (!target.hasClass(\"is-disabled\")) {\r\n if (target.hasClass(\"picker-btn\") && !target.hasClass(\"is-empty\")) {\r\n if (scope.time_dropdown_options) {\r\n var temp_date = new Date(parseInt(scope.time_select_el[0].value, 10));\r\n if (!datePickerHelper.isDate(temp_date)) {\r\n temp_date = new Date();\r\n }\r\n\r\n const modifiedDate = scope.setDate(\r\n new Date(\r\n target[0].getAttribute(\"data-picker-year\"),\r\n target[0].getAttribute(\"data-picker-month\"),\r\n target[0].getAttribute(\"data-picker-day\"),\r\n temp_date.getHours(),\r\n temp_date.getMinutes()\r\n )\r\n );\r\n\r\n scope.onUpdateDate(modifiedDate);\r\n triggerDatePickerUpdateEvent();\r\n } else {\r\n const modifiedDate = scope.setDate(\r\n new Date(target[0].getAttribute(\"data-picker-year\"), target[0].getAttribute(\"data-picker-month\"), target[0].getAttribute(\"data-picker-day\"))\r\n );\r\n scope.onUpdateDate(modifiedDate);\r\n triggerDatePickerUpdateEvent();\r\n }\r\n scope.hideCalendar();\r\n return;\r\n } else if (target.hasClass(\"picker-prev\")) {\r\n scope.prevMonth();\r\n } else if (target.hasClass(\"picker-next\")) {\r\n scope.nextMonth();\r\n } else if (target.hasClass(\"picker-today\")) {\r\n scope.goToToday();\r\n }\r\n }\r\n\r\n if (!target.hasClass(\"picker-select\")) {\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n } else {\r\n e.returnValue = false;\r\n return false;\r\n }\r\n } else {\r\n scope.keep_open = true;\r\n }\r\n };\r\n\r\n var bindCalendarEvents = function () {\r\n scope.document_el[0].addEventListener(enter_event, onEnterEvent, true);\r\n scope.calendar_el.bind(start_enter_event, onStartEnterEvent);\r\n\r\n // stop propagation\r\n scope.calendar_el.bind(enter_event, function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n scope.input_el.bind(\"keydown\", function (e) {\r\n if (e.keyCode === 13 || e.keyCode === 32) {\r\n e.stopPropagation();\r\n }\r\n });\r\n\r\n scope.input_el.bind(\"keyup\", scope.triggerChange);\r\n scope.input_el.bind(\"change\", scope.onChange);\r\n\r\n bindTableEvents();\r\n\r\n // hide calendar on blur on input field\r\n scope.input_el.bind(\"blur\", function () {\r\n setTimeout(function () {\r\n if (!scope.keep_open) {\r\n scope.hideCalendar();\r\n }\r\n\r\n scope.keep_open = false;\r\n }, 50);\r\n });\r\n };\r\n\r\n var bindTableEvents = function () {\r\n scope.select_elems = angular.element(scope.calendar_el[0].getElementsByClassName(\"picker-select\"));\r\n\r\n scope.select_elems.bind(\"change\", function (event) {\r\n var target = angular.element(event.target || event.srcElement);\r\n\r\n if (target.hasClass(\"picker-select-month\")) {\r\n scope.goToMonth(target[0].value);\r\n } else if (target.hasClass(\"picker-select-year\")) {\r\n scope.goToYear(target[0].value);\r\n }\r\n });\r\n };\r\n\r\n scope.bindTimeDropdownEvents = function () {\r\n scope.time_select_el.bind(\"change\", function (e) {\r\n var temp_date = new Date(parseInt(e.target.value, 10)),\r\n date = angular.copy(scope.bindTo);\r\n date.setHours(temp_date.getHours());\r\n date.setMinutes(temp_date.getMinutes());\r\n\r\n const modifiedDate = scope.setDate(date);\r\n scope.onUpdateDate(modifiedDate);\r\n });\r\n };\r\n\r\n scope.unbindTimeDropdownEvents = function () {\r\n scope.time_select_el.unbind(\"change\");\r\n };\r\n\r\n var unbindTableEvents = function () {\r\n if (scope.select_elems) {\r\n scope.select_elems.unbind(\"change\");\r\n }\r\n };\r\n\r\n var unbindCalendarEvents = function () {\r\n scope.document_el[0].removeEventListener(enter_event, onEnterEvent, true);\r\n scope.calendar_el.unbind(start_enter_event, onStartEnterEvent);\r\n scope.calendar_el.unbind(enter_event);\r\n scope.input_el.unbind(\"blur\");\r\n scope.input_el.unbind(\"change\");\r\n scope.input_el.unbind(\"keydown\");\r\n scope.input_el.unbind(\"keyup\");\r\n\r\n unbindTableEvents();\r\n };\r\n\r\n scope.$on(\"triggerDatePicker\", function () {\r\n // tslint:disable-next-line:triple-equals\r\n if (last_selected_calendar == scope.calendar_el && last_selected_calendar != current_selected_calendar && scope.is_open) {\r\n scope.hideCalendar();\r\n }\r\n });\r\n\r\n // unbind not needed event listener on destroy\r\n scope.$on(\"$destroy\", function () {\r\n unbindCalendarEvents();\r\n scope.destroyCalendarElement();\r\n });\r\n\r\n scope.destroyCalendarElement = function () {\r\n if (scope.calendar_el && scope.calendar_el[0]) {\r\n scope.calendar_el.remove();\r\n }\r\n };\r\n\r\n scope.$on(\"$routeChangeStart\", function () {\r\n if (scope.is_open) {\r\n scope.hideCalendar();\r\n unbindCalendarEvents();\r\n }\r\n });\r\n\r\n scope.updateTimeDropdown = function (originally_passed_date) {\r\n if (datePickerHelper.isDate(originally_passed_date)) {\r\n scope.equalizeDateWithPicker(originally_passed_date);\r\n }\r\n $timeout(function () {\r\n scope.adjustTimeDropdown(originally_passed_date);\r\n });\r\n };\r\n\r\n scope.updateInputField = function (date) {\r\n scope.input_el[0].value = date ? datePickerHelper.toString(date) : \"\";\r\n };\r\n\r\n scope.onUpdateDate = function (date) {\r\n if (scope.onUpdate && date !== undefined && scope.bindTo_init_run === false) {\r\n scope.onUpdate({ date: date });\r\n }\r\n };\r\n\r\n scope.onUpdateMinDate = function (date) {\r\n if (scope.onUpdate && date !== undefined && scope.minDate_init_run === false) {\r\n scope.onUpdate({ date: date });\r\n }\r\n };\r\n\r\n scope.onUpdateMaxDate = function (date) {\r\n if (scope.onUpdate && date !== undefined && scope.maxDate_init_run === false) {\r\n scope.onUpdate({ date: date });\r\n }\r\n };\r\n\r\n scope.locateCalendar = function () {\r\n scope.input_el_data = scope.input_el[0].getBoundingClientRect();\r\n scope.calendar_el_data = scope.calendar_el[0].getBoundingClientRect();\r\n\r\n const focusRingOffset = 1;\r\n const distance_to_bottom = window.innerHeight - scope.input_el_data.bottom - scope.calendar_el_data.height;\r\n const distance_to_top = scope.input_el_data.top - spa_menu_height;\r\n let distance_top = scope.input_el_data.bottom - spa_menu_height + (window.pageYOffset || scope.document_el[0].scrollTop || 0);\r\n let distance_left = window.innerWidth <= 340 ? 0 : scope.input_el_data.left;\r\n\r\n if (distance_to_bottom <= 5 && distance_to_top > scope.calendar_el_data.height) {\r\n distance_top = scope.input_el_data.top - spa_menu_height + (window.pageYOffset || scope.document_el[0].scrollTop || 0) - scope.calendar_el_data.height;\r\n distance_top = distance_top - focusRingOffset;\r\n } else {\r\n distance_top = distance_top + focusRingOffset;\r\n }\r\n\r\n var windowWidth = window.innerWidth,\r\n calendarWidth = scope.calendar_el[0].clientWidth,\r\n calendarOffsetX = distance_left + calendarWidth;\r\n\r\n //Correct position if the calendar is off screen on the right side.\r\n if (calendarOffsetX > windowWidth) {\r\n distance_left += windowWidth - calendarOffsetX;\r\n }\r\n\r\n // fix for IE and when used in sidebar\r\n if (\r\n scope.ignore_spa_menu ||\r\n (scope.document_el.hasClass(\"ie\") && scope.document_el.hasClass(\"modal-enabled\")) ||\r\n (scope.right_panel_holder_el.hasClass(\"active\") && scope.document_el.hasClass(\"plus\")) ||\r\n scope.calendar_has_offset\r\n ) {\r\n distance_top += spa_menu_height;\r\n }\r\n\r\n scope.calendar_el.css({\r\n top: distance_top + \"px\",\r\n left: distance_left + \"px\"\r\n });\r\n };\r\n\r\n var bindToWatch = function (new_val, old_val) {\r\n if (datePickerHelper.isDate(new_val) && new_val.getSeconds() !== 0) {\r\n new_val = scope.equalizeDateWithPicker(new_val);\r\n }\r\n\r\n const modifiedDate = scope.setDate(new_val);\r\n scope.onUpdateDate(modifiedDate);\r\n };\r\n\r\n var minDateWatch = function (new_val, old_val) {\r\n if ((new_val !== undefined && old_val === undefined && !scope.blank_date) || new_val === old_val) {\r\n return;\r\n }\r\n\r\n if (datePickerHelper.isDate(new_val)) {\r\n new_val = scope.equalizeDateWithPicker(new_val);\r\n }\r\n scope.opts.min_date = new_val;\r\n let modifiedDate = null;\r\n\r\n if (scope.blank_date && scope.bindTo === null) {\r\n modifiedDate = scope.setDate(null);\r\n } else {\r\n modifiedDate = scope.setDate(scope.opts.date);\r\n }\r\n\r\n scope.onUpdateMinDate(modifiedDate);\r\n };\r\n\r\n var maxDateWatch = function (new_val, old_val) {\r\n if (new_val !== undefined && old_val === undefined && !scope.blank_date) {\r\n return;\r\n }\r\n scope.opts.max_date = new_val;\r\n let modifiedDate = null;\r\n\r\n if (scope.blank_date && scope.bindTo === null) {\r\n modifiedDate = scope.setDate(null);\r\n } else {\r\n modifiedDate = scope.setDate(scope.opts.date);\r\n }\r\n\r\n scope.onUpdateMaxDate(modifiedDate);\r\n };\r\n\r\n var watchFn = function (new_val, old_val, callback, init_run) {\r\n if (new_val === old_val && !init_run) {\r\n return;\r\n }\r\n\r\n if (new_val !== null) {\r\n new_val = datePickerHelper.normalizeDate(new_val);\r\n }\r\n\r\n old_val = datePickerHelper.normalizeDate(old_val);\r\n\r\n if (!datePickerHelper.compareDates(new_val, old_val) || init_run) {\r\n callback(new_val, old_val);\r\n }\r\n };\r\n\r\n scope.triggerChange = function (e) {\r\n if (UserAgentService.ie && e.keyCode === 13) {\r\n scope.onChange(e);\r\n }\r\n };\r\n\r\n scope.initVisuals = function () {\r\n scope.document_el = angular.element(document.documentElement);\r\n scope.right_panel_holder_el = angular.element(document.getElementsByClassName(\"right-panel-holder\")[0]);\r\n var calendar_el = document.createElement(\"div\");\r\n calendar_el.className = \"calendar\";\r\n // tslint:disable-next-line:no-unsafe-dom-insert-calls\r\n document.body.appendChild(calendar_el);\r\n scope.calendar_el = angular.element(calendar_el);\r\n scope.input_el = angular.element(element[0].getElementsByTagName(\"input\")[0]);\r\n scope.time_select_el = scope.time_dropdown_options !== false ? angular.element(element[0].getElementsByClassName(\"picker-select-time\")[0]) : undefined;\r\n\r\n const modifiedDate = scope.setDate(scope.opts.date);\r\n scope.onUpdateDate(modifiedDate);\r\n\r\n // show calendar on click on input field\r\n scope.input_el.bind(enter_event, function (event) {\r\n event.stopPropagation();\r\n scope.showCalendar();\r\n });\r\n\r\n // show calendar on focus on input field\r\n scope.input_el.bind(\"focus\", function () {\r\n scope.keep_open = false;\r\n scope.showCalendar();\r\n element[0].classList.add(\"date-picker--input-focused\");\r\n });\r\n\r\n scope.minDate_init_run = true;\r\n scope.maxDate_init_run = true;\r\n\r\n scope.bindToWatch = scope.$watch(\"bindTo\", function (new_val, old_val) {\r\n watchFn(new_val, old_val, bindToWatch, scope.bindTo_init_run);\r\n scope.bindTo_init_run = false;\r\n });\r\n\r\n if (attrs.endOfDay !== undefined) {\r\n scope.$watch(\"endOfDay\", function (new_val, old_val) {\r\n if (new_val !== old_val) {\r\n const modifiedDate = scope.setDate(scope.bindTo);\r\n scope.onUpdateDate(modifiedDate);\r\n }\r\n });\r\n }\r\n\r\n if (attrs.minDate !== undefined) {\r\n scope.minDateWatch = scope.$watch(\"minDate\", function (new_val, old_val) {\r\n watchFn(new_val, old_val, minDateWatch, scope.minDate_init_run);\r\n scope.minDate_init_run = false;\r\n });\r\n }\r\n\r\n if (attrs.maxDate !== undefined) {\r\n scope.maxDateWatch = scope.$watch(\"maxDate\", function (new_val, old_val) {\r\n watchFn(new_val, old_val, maxDateWatch, scope.maxDate_init_run);\r\n scope.maxDate_init_run = false;\r\n });\r\n }\r\n };\r\n\r\n // stop binding to non-empty object because it can overwrite existing sensitive data\r\n if (!datePickerHelper.isEmptyObject(scope.bindTo)) {\r\n throw new Error(\"'bindTo' object is not empty. You can't bind to non-empty object. Try different object or add key to your current bindTo object like so: bindTo='obj.date'\");\r\n } else {\r\n scope.bindTo_init_run = true;\r\n scope.init();\r\n scope.initVisuals();\r\n }\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
{{label}}
{{::multiLanguageService.getString('date_picker.aria.date_format_instructions')}}
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\n\r\nangularAMD.factory(\"datePickerHelper\", [\r\n \"multiLanguageService\",\r\n function (multiLanguageService) {\r\n var datePickerHelper = {\r\n // internationalization\r\n i18n: {\r\n previous_month: multiLanguageService.getString(\"builder.datePicker.previous_month\"),\r\n next_month: multiLanguageService.getString(\"builder.datePicker.next_month\"),\r\n today: multiLanguageService.getString(\"builder.datePicker.today\"),\r\n months: [\r\n { full: multiLanguageService.getString(\"builder.datePicker.months.jan.full\"), short: multiLanguageService.getString(\"builder.datePicker.months.jan.short\") },\r\n { full: multiLanguageService.getString(\"builder.datePicker.months.feb.full\"), short: multiLanguageService.getString(\"builder.datePicker.months.feb.short\") },\r\n { full: multiLanguageService.getString(\"builder.datePicker.months.mar.full\"), short: multiLanguageService.getString(\"builder.datePicker.months.mar.short\") },\r\n { full: multiLanguageService.getString(\"builder.datePicker.months.apr.full\"), short: multiLanguageService.getString(\"builder.datePicker.months.apr.short\") },\r\n { full: multiLanguageService.getString(\"builder.datePicker.months.may.full\"), short: multiLanguageService.getString(\"builder.datePicker.months.may.short\") },\r\n { full: multiLanguageService.getString(\"builder.datePicker.months.jun.full\"), short: multiLanguageService.getString(\"builder.datePicker.months.jun.short\") },\r\n { full: multiLanguageService.getString(\"builder.datePicker.months.jul.full\"), short: multiLanguageService.getString(\"builder.datePicker.months.jul.short\") },\r\n { full: multiLanguageService.getString(\"builder.datePicker.months.aug.full\"), short: multiLanguageService.getString(\"builder.datePicker.months.aug.short\") },\r\n { full: multiLanguageService.getString(\"builder.datePicker.months.sep.full\"), short: multiLanguageService.getString(\"builder.datePicker.months.sep.short\") },\r\n { full: multiLanguageService.getString(\"builder.datePicker.months.oct.full\"), short: multiLanguageService.getString(\"builder.datePicker.months.oct.short\") },\r\n { full: multiLanguageService.getString(\"builder.datePicker.months.nov.full\"), short: multiLanguageService.getString(\"builder.datePicker.months.nov.short\") },\r\n { full: multiLanguageService.getString(\"builder.datePicker.months.dec.full\"), short: multiLanguageService.getString(\"builder.datePicker.months.dec.short\") }\r\n ],\r\n weekdays: [\r\n {\r\n full: multiLanguageService.getString(\"builder.datePicker.weekdays.mon.full\"),\r\n short: multiLanguageService.getString(\"builder.datePicker.weekdays.mon.short\"),\r\n tiny: multiLanguageService.getString(\"builder.datePicker.weekdays.mon.tiny\")\r\n },\r\n {\r\n full: multiLanguageService.getString(\"builder.datePicker.weekdays.tue.full\"),\r\n short: multiLanguageService.getString(\"builder.datePicker.weekdays.tue.short\"),\r\n tiny: multiLanguageService.getString(\"builder.datePicker.weekdays.tue.tiny\")\r\n },\r\n {\r\n full: multiLanguageService.getString(\"builder.datePicker.weekdays.wed.full\"),\r\n short: multiLanguageService.getString(\"builder.datePicker.weekdays.wed.short\"),\r\n tiny: multiLanguageService.getString(\"builder.datePicker.weekdays.wed.tiny\")\r\n },\r\n {\r\n full: multiLanguageService.getString(\"builder.datePicker.weekdays.thu.full\"),\r\n short: multiLanguageService.getString(\"builder.datePicker.weekdays.thu.short\"),\r\n tiny: multiLanguageService.getString(\"builder.datePicker.weekdays.thu.tiny\")\r\n },\r\n {\r\n full: multiLanguageService.getString(\"builder.datePicker.weekdays.fri.full\"),\r\n short: multiLanguageService.getString(\"builder.datePicker.weekdays.fri.short\"),\r\n tiny: multiLanguageService.getString(\"builder.datePicker.weekdays.fri.tiny\")\r\n },\r\n {\r\n full: multiLanguageService.getString(\"builder.datePicker.weekdays.sat.full\"),\r\n short: multiLanguageService.getString(\"builder.datePicker.weekdays.sat.short\"),\r\n tiny: multiLanguageService.getString(\"builder.datePicker.weekdays.sat.tiny\")\r\n },\r\n {\r\n full: multiLanguageService.getString(\"builder.datePicker.weekdays.sun.full\"),\r\n short: multiLanguageService.getString(\"builder.datePicker.weekdays.sun.short\"),\r\n tiny: multiLanguageService.getString(\"builder.datePicker.weekdays.sun.tiny\")\r\n }\r\n ],\r\n no_time_label: multiLanguageService.getString(\"builder.datePicker.no_time_label\")\r\n },\r\n\r\n isRTL: false,\r\n\r\n // show week numbers at head of row\r\n showWeekNumber: false,\r\n\r\n // first day of week (0: Sunday, 1: Monday etc)\r\n firstDay: 1,\r\n\r\n // number of years either side, or array of upper/lower range\r\n yearRange: 10,\r\n\r\n // used internally (don't config outside)\r\n min_year: 0,\r\n max_year: 9999,\r\n min_month: undefined,\r\n max_month: undefined,\r\n\r\n /**\r\n * Function to detect whether object is empty or not\r\n * @param obj\r\n * @returns {boolean}\r\n */\r\n isEmptyObject: function (obj) {\r\n if (typeof obj === \"object\") {\r\n for (var i in obj) {\r\n if (obj.hasOwnProperty(i)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } else {\r\n return true;\r\n }\r\n },\r\n\r\n isArray: function (obj) {\r\n return /Array/.test(Object.prototype.toString.call(obj));\r\n },\r\n\r\n /**\r\n * Checks if object is date\r\n * @param obj\r\n * @returns {boolean}\r\n */\r\n isDate: function (obj) {\r\n return /Date/.test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());\r\n },\r\n\r\n compareDates: function (a, b) {\r\n // weak date comparison (use setToStartOfDay(date) to ensure correct result)\r\n return this.isDate(a) && this.isDate(b) ? a.getTime() === b.getTime() : false;\r\n },\r\n\r\n isLeapYear: function (year) {\r\n // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951\r\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\r\n },\r\n\r\n getDaysInMonth: function (year, month) {\r\n return [31, this.isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\r\n },\r\n\r\n setToStartOfDay: function (date) {\r\n if (this.isDate(date)) {\r\n date.setHours(0, 0, 0, 0);\r\n }\r\n return date;\r\n },\r\n\r\n setToEndOfDay: function (date) {\r\n if (this.isDate(date)) {\r\n date.setHours(23, 59, 0, 0);\r\n }\r\n return date;\r\n },\r\n\r\n dateAdd: function (date, interval, units) {\r\n var ret = new Date(date); //don't change original date\r\n var addMethods = {\r\n year: function () {\r\n ret.setFullYear(ret.getFullYear() + units);\r\n },\r\n quarter: function () {\r\n ret.setMonth(ret.getMonth() + 3 * units);\r\n },\r\n month: function () {\r\n ret.setMonth(ret.getMonth() + units);\r\n },\r\n week: function () {\r\n ret.setDate(ret.getDate() + 7 * units);\r\n },\r\n day: function () {\r\n ret.setDate(ret.getDate() + units);\r\n },\r\n hour: function () {\r\n ret.setTime(ret.getTime() + units * 3600000);\r\n },\r\n minute: function () {\r\n ret.setTime(ret.getTime() + units * 60000);\r\n },\r\n second: function () {\r\n ret.setTime(ret.getTime() + units * 1000);\r\n },\r\n default: function () {\r\n ret = undefined;\r\n }\r\n };\r\n (addMethods[interval] || addMethods[\"default\"])();\r\n return ret;\r\n },\r\n\r\n /**\r\n * return a formatted string of the current selection\r\n */\r\n toString: function (date) {\r\n return !this.isDate(date) ? \"\" : date.format(\"ddd dd-mmm-yyyy\");\r\n },\r\n\r\n toUTC: function (date) {\r\n return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());\r\n },\r\n\r\n normalizeDate: function (date, convertToUTC) {\r\n if (!date) {\r\n return;\r\n }\r\n\r\n if (typeof date === \"string\" && date.indexOf(\"T\") < 0) {\r\n if (date.indexOf(\"Z\") === -1) {\r\n date += \"Z\";\r\n }\r\n }\r\n\r\n return convertToUTC === true ? this.toUTC(new Date(date)) : new Date(date);\r\n },\r\n\r\n // TODO: REFACTOR LATER: performance is bad\r\n findClosestMinute: function (array, minutes, hours) {\r\n var i,\r\n minDiff = 60,\r\n ans,\r\n tempDate,\r\n tempDateMin;\r\n\r\n for (i = 0; i < array.length; i++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (hours != 23 && i === array.length - 1) {\r\n // when it's not close to midnight and last item in array force use previous item in the array for comparison\r\n tempDate = new Date(array[array.length - 2].value);\r\n tempDateMin = tempDate.getMinutes();\r\n } else {\r\n tempDate = new Date(array[i].value);\r\n tempDateMin = tempDate.getMinutes();\r\n }\r\n\r\n var m = Math.abs(minutes - tempDateMin);\r\n\r\n if (m < minDiff && tempDate.getHours() <= hours) {\r\n minDiff = m;\r\n ans = new Date(array[i].value).getMinutes();\r\n }\r\n }\r\n\r\n return ans;\r\n },\r\n\r\n /**\r\n * TODO: Add disabled time when use min/max date\r\n * @param date\r\n * @param time_opts\r\n * @param minDate\r\n * @returns {string}\r\n */\r\n renderTimeDropdown: function (date, time_opts, minDate) {\r\n var arr = [],\r\n i,\r\n self = this,\r\n selected,\r\n option_date,\r\n disabled;\r\n\r\n if (!date) {\r\n arr.push('\");\r\n } else {\r\n var adjustedDate = date;\r\n var tempOrigDate = date;\r\n for (i = 0; i < time_opts.length; i++) {\r\n option_date = new Date(time_opts[i].value);\r\n if (adjustedDate && minDate) {\r\n var today = new Date();\r\n tempOrigDate = new Date(date.getFullYear(), date.getMonth(), date.getDate(), option_date.getHours(), option_date.getMinutes(), 0);\r\n var tempMinDate = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate(), minDate.getHours(), minDate.getMinutes(), 0);\r\n\r\n if (adjustedDate.getFullYear() === tempMinDate.getFullYear() && adjustedDate.getMonth() === tempMinDate.getMonth() && adjustedDate.getDate() === tempMinDate.getDate()) {\r\n disabled = tempOrigDate <= tempMinDate ? \"disabled\" : \"\";\r\n }\r\n\r\n if (this.compareDates(adjustedDate, tempMinDate)) {\r\n adjustedDate = this.dateAdd(new Date(date), \"minute\", 30);\r\n }\r\n }\r\n\r\n /* tslint:disable:triple-equals */\r\n selected =\r\n option_date.getHours() == adjustedDate.getHours() && option_date.getMinutes() == self.findClosestMinute(time_opts, adjustedDate.getMinutes(), adjustedDate.getHours())\r\n ? \"selected\"\r\n : \"\";\r\n /* tslint:enable:triple-equals */\r\n\r\n arr.push('\");\r\n }\r\n }\r\n\r\n return arr.join(\"\");\r\n },\r\n\r\n renderCalendar: function (opts) {\r\n var self = this,\r\n min_year = opts.min_year,\r\n max_year = opts.max_year,\r\n min_month = self.min_month,\r\n max_month = self.max_month,\r\n html = \"\";\r\n\r\n if (this._y <= min_year) {\r\n this.y = min_year;\r\n if (!isNaN(min_month) && this._m < min_month) {\r\n this._m = min_month;\r\n }\r\n }\r\n\r\n if (this._y >= max_year) {\r\n this._y = max_year;\r\n\r\n if (!isNaN(max_month) && this._m > max_month) {\r\n this._m = max_month;\r\n }\r\n }\r\n\r\n for (var c = 0; c < opts.number_of_months; c++) {\r\n html += self.renderNavigationSection(opts) + self.renderSwitcherSection(opts) + self.renderMonth(opts);\r\n }\r\n\r\n return html;\r\n },\r\n\r\n renderMonth: function (opts) {\r\n var self = this,\r\n now = new Date(),\r\n days = self.getDaysInMonth(opts.year, opts.month),\r\n before = new Date(opts.year, opts.month, 1).getDay(),\r\n current_date = angular.copy(opts.date),\r\n data = [],\r\n row = [];\r\n\r\n now = self.setToStartOfDay(now);\r\n\r\n if (opts.first_day > 0) {\r\n before -= opts.first_day;\r\n if (before < 0) {\r\n before += 7;\r\n }\r\n }\r\n\r\n var cells = days + before,\r\n after = cells;\r\n\r\n while (after > 7) {\r\n after -= 7;\r\n }\r\n cells += 7 - after;\r\n\r\n for (var i = 0, r = 0; i < cells; i++) {\r\n var day = new Date(opts.year, opts.month, 1 + (i - before), opts.date.getHours(), opts.date.getMinutes()),\r\n day_start = new Date(opts.year, opts.month, 1 + (i - before)),\r\n minComparison = new Date(day_start);\r\n\r\n if (opts.timeOptions) {\r\n minComparison.setHours(23);\r\n minComparison.setMinutes(59);\r\n minComparison.setSeconds(59);\r\n }\r\n\r\n var is_disabled = (opts.min_date && minComparison < opts.min_date) || (opts.max_date && day_start > opts.max_date),\r\n is_selected = self.isDate(current_date) ? self.compareDates(day, current_date) : false,\r\n is_today = self.compareDates(day_start, now),\r\n is_empty = i < before || i >= days + before;\r\n\r\n row.push(self.renderDay(1 + (i - before), opts.month, opts.year, is_selected, is_today, is_disabled, is_empty));\r\n\r\n if (++r === 7) {\r\n if (self.showWeekNumber) {\r\n row.unshift(self.renderWeek(i - before, opts.month, opts.year));\r\n }\r\n data.push(self.renderWeek(row, opts.isRTL));\r\n row = [];\r\n r = 0;\r\n }\r\n }\r\n\r\n return self.renderTable(opts, data);\r\n },\r\n\r\n renderNavigationSection: function (opts) {\r\n var self = this,\r\n html = '
',\r\n isMinYear = opts.year === opts.min_year,\r\n isMaxYear = opts.year === opts.max_year,\r\n prev = true,\r\n next = true;\r\n\r\n if (isMinYear && (opts.month === 0 || self.min_month >= opts.month)) {\r\n prev = false;\r\n }\r\n\r\n if (isMaxYear && (opts.month === 11 || self.max_month <= opts.month)) {\r\n next = false;\r\n }\r\n\r\n html += '';\r\n html += '
\";\r\n html += '';\r\n html += \"
\";\r\n\r\n return html;\r\n },\r\n\r\n renderSwitcherSection: function (opts) {\r\n let arr = [];\r\n let i = 0;\r\n let j = 0;\r\n let html = '
';\r\n let month_html = \"\";\r\n let year_html = \"\";\r\n const self = this;\r\n\r\n // get month ' + arr.join(\"\") + \"
\";\r\n\r\n if (self.isArray(opts.year_range)) {\r\n i = opts.year_range[0];\r\n j = opts.year_range[1] + 1;\r\n } else {\r\n i = opts.year - opts.year_range;\r\n j = 1 + opts.year + opts.year_range;\r\n }\r\n\r\n // get year ' + arr.join(\"\") + \"\";\r\n\r\n html += month_html + year_html;\r\n\r\n return html + \"\";\r\n },\r\n\r\n renderWeek: function (days) {\r\n return \"\" + (this.isRTL ? days.reverse() : days).join(\"\") + \"\";\r\n },\r\n\r\n renderDayName: function (day, abbr) {\r\n return abbr ? this.i18n.weekdays[day].tiny : this.i18n.weekdays[day].full;\r\n },\r\n\r\n renderDay: function (d, m, y, is_selected, is_today, is_disabled, is_empty) {\r\n if (is_empty) {\r\n return '';\r\n }\r\n\r\n var arr = [];\r\n\r\n if (is_disabled) {\r\n arr.push(\"is-disabled\");\r\n }\r\n if (is_today) {\r\n arr.push(\"is-today\");\r\n }\r\n if (is_selected) {\r\n arr.push(\"is-selected\");\r\n }\r\n\r\n return (\r\n '' +\r\n '\"\r\n );\r\n },\r\n\r\n renderHead: function (opts) {\r\n var i,\r\n self = this,\r\n arr = [];\r\n\r\n if (opts.showWeekNumber) {\r\n arr.push(\"\");\r\n }\r\n\r\n for (i = 0; i < 7; i++) {\r\n arr.push('' + self.renderDayName(i, true) + \"\");\r\n }\r\n\r\n return \"\" + (opts.isRTL ? arr.reverse() : arr).join(\"\") + \"\";\r\n },\r\n renderBody: function (rows) {\r\n return \"\" + rows.join(\"\") + \"\";\r\n },\r\n\r\n renderTable: function (opts, data) {\r\n return '' + this.renderHead(opts) + this.renderBody(data) + \"
\";\r\n }\r\n };\r\n\r\n /*\r\n * Date Format 1.2.3\r\n * (c) 2007-2009 Steven Levithan \r\n * MIT license\r\n *\r\n * Includes enhancements by Scott Trenda \r\n * and Kris Kowal \r\n *\r\n * Accepts a date, a mask, or a date and a mask.\r\n * Returns a formatted version of the given date.\r\n * The date defaults to the current date/time.\r\n * The mask defaults to dateFormat.masks.default.\r\n */\r\n var dateFormat = (function () {\r\n var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\\1?|[LloSZ]|\"[^\"]*\"|'[^']*'/g,\r\n timezone = /\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g,\r\n timezoneClip = /[^-+\\dA-Z]/g,\r\n pad = function (val, len) {\r\n val = String(val);\r\n len = len || 2;\r\n while (val.length < len) {\r\n val = \"0\" + val;\r\n }\r\n return val;\r\n };\r\n\r\n // Regexes and supporting functions are cached through closure\r\n return function (date, mask, utc) {\r\n var dF = dateFormat;\r\n\r\n // You can't provide utc if you skip other args (use the \"UTC:\" mask prefix)\r\n if (arguments.length === 1 && Object.prototype.toString.call(date) === \"[object String]\" && !/\\d/.test(date)) {\r\n mask = date;\r\n date = undefined;\r\n }\r\n\r\n // Passing date through Date applies Date.parse, if necessary\r\n date = date ? new Date(date) : new Date();\r\n if (isNaN(date)) {\r\n throw SyntaxError(\"invalid date\");\r\n }\r\n\r\n mask = String(dF.masks[mask] || mask || dF.masks[\"default\"]);\r\n\r\n // Allow setting the utc argument via the mask\r\n if (mask.slice(0, 4) === \"UTC:\") {\r\n mask = mask.slice(4);\r\n utc = true;\r\n }\r\n\r\n var _ = utc ? \"getUTC\" : \"get\",\r\n d = date[_ + \"Date\"](),\r\n D = date[_ + \"Day\"](),\r\n m = date[_ + \"Month\"](),\r\n y = date[_ + \"FullYear\"](),\r\n H = date[_ + \"Hours\"](),\r\n M = date[_ + \"Minutes\"](),\r\n s = date[_ + \"Seconds\"](),\r\n L = date[_ + \"Milliseconds\"](),\r\n o = utc ? 0 : date.getTimezoneOffset(),\r\n flags = {\r\n d: d,\r\n dd: pad(d),\r\n // tslint:disable-next-line:triple-equals\r\n ddd: dF.i18n.dayNames[D != 0 ? D - 1 : 6].short,\r\n // tslint:disable-next-line:triple-equals\r\n dddd: dF.i18n.dayNames[D != 0 ? D - 1 : 6].full,\r\n m: m + 1,\r\n mm: pad(m + 1),\r\n mmm: dF.i18n.monthNames[m].short,\r\n mmmm: dF.i18n.monthNames[m].full,\r\n yy: String(y).slice(2),\r\n yyyy: y,\r\n h: H % 12 || 12,\r\n hh: pad(H % 12 || 12),\r\n H: H,\r\n HH: pad(H),\r\n M: M,\r\n MM: pad(M),\r\n s: s,\r\n ss: pad(s),\r\n l: pad(L, 3),\r\n L: pad(L > 99 ? Math.round(L / 10) : L),\r\n t: H < 12 ? \"a\" : \"p\",\r\n tt: H < 12 ? \"am\" : \"pm\",\r\n T: H < 12 ? \"A\" : \"P\",\r\n TT: H < 12 ? \"AM\" : \"PM\",\r\n Z: utc ? \"UTC\" : (String(date).match(timezone) || [\"\"]).pop().replace(timezoneClip, \"\"),\r\n o: (o > 0 ? \"-\" : \"+\") + pad(Math.floor(Math.abs(o) / 60) * 100 + (Math.abs(o) % 60), 4),\r\n // tslint:disable-next-line:triple-equals\r\n S: [\"th\", \"st\", \"nd\", \"rd\"][d % 10 > 3 ? 0 : (((d % 100) - (d % 10) != 10) * d) % 10]\r\n };\r\n\r\n return mask.replace(token, function ($0) {\r\n return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);\r\n });\r\n };\r\n })();\r\n\r\n // Some common format strings\r\n dateFormat.masks = {\r\n default: \"ddd mmm dd yyyy HH:MM:ss\",\r\n shortDate: \"m/d/yy\",\r\n mediumDate: \"mmm d, yyyy\",\r\n longDate: \"mmmm d, yyyy\",\r\n fullDate: \"dddd, mmmm d, yyyy\",\r\n shortTime: \"h:MM TT\",\r\n mediumTime: \"h:MM:ss TT\",\r\n longTime: \"h:MM:ss TT Z\",\r\n isoDate: \"yyyy-mm-dd\",\r\n isoTime: \"HH:MM:ss\",\r\n isoDateTime: \"yyyy-mm-dd'T'HH:MM:ss\",\r\n isoUtcDateTime: \"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\"\r\n };\r\n\r\n // Internationalization strings\r\n dateFormat.i18n = {\r\n dayNames: datePickerHelper.i18n.weekdays,\r\n monthNames: datePickerHelper.i18n.months\r\n };\r\n\r\n // For convenience...\r\n Date.prototype.format = function (mask, utc) {\r\n return dateFormat(this, mask, utc);\r\n };\r\n\r\n Date.parseDate = function (str, format) {\r\n var date_regex = /[-\\/.\\s]/g,\r\n parts = str.split(date_regex),\r\n date;\r\n\r\n // new Date(year, month [, day [, hours[, minutes[, seconds[, ms]]]]])\r\n switch (format) {\r\n case \"B\":\r\n //String format is year/month/day\r\n date = new Date(convertPartialYear(parts[0]), parts[1] - 1, parts[2]); // Note: months are 0-based\r\n break;\r\n case \"M\":\r\n //String format is month/day/year\r\n date = new Date(convertPartialYear(parts[2]), parts[0] - 1, parts[1]); // Note: months are 0-based\r\n break;\r\n default:\r\n // String format is day/month/year\r\n date = new Date(convertPartialYear(parts[2]), parts[1] - 1, parts[0]); // Note: months are 0-based\r\n }\r\n\r\n return date;\r\n };\r\n\r\n /**\r\n * Merge the year value to the current century / millennium. Conversion examples:\r\n * 1 (01/10/1) converts to 01/10/2001\r\n * 01 (01/10/01) converts to 01/10/2001\r\n * 11 (01/10/11) converts to 01/10/2011\r\n * 011 (01/10/011) converts to 01/10/2011\r\n * 2011 (01/10/2011) converts to 01/10/2011\r\n * Given the current year is 10003, the year stripped from 01/10/1 would convert to 01/10/10001, if getFullYear supported a year greater than 9999\r\n * @param {string} year\r\n * @returns {string}\r\n */\r\n function convertPartialYear(year) {\r\n var fullYear = new Date().getFullYear();\r\n var yearLength = year.length;\r\n\r\n if (yearLength < fullYear.toString().length) {\r\n if (parseInt(year, 10) > 49 && fullYear % 100 < 50) {\r\n fullYear -= 100;\r\n }\r\n\r\n return ((fullYear / Math.pow(10, yearLength === 1 ? 2 : yearLength)) << 0).toString() + year;\r\n }\r\n\r\n return year;\r\n }\r\n\r\n return datePickerHelper;\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./detachedToolbarRefContext.directive\";\r\n\r\nconst detachedToolbarRef = () => {\r\n return {\r\n require: \"^detachedToolbarRefContext\",\r\n scope: true,\r\n restrict: \"A\",\r\n link: function (scope, element, attrs, detachedToolbarRefController) {\r\n detachedToolbarRefController.setToolbarElement(element[0]);\r\n element.on(\"$destroy\", () => {\r\n detachedToolbarRefController.setToolbarElement(null);\r\n });\r\n }\r\n };\r\n};\r\n\r\nangularAMD.directive(\"detachedToolbarRef\", detachedToolbarRef);\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nexport class DetachedToolbarRefController extends NgComponent {\r\n constructor() {\r\n super();\r\n\r\n this.toolbarRef = { current: null };\r\n }\r\n\r\n setToolbarElement(value) {\r\n this.toolbarRef.current = value;\r\n }\r\n}\r\n\r\nexport function detachedToolbarRefController() {\r\n return {\r\n restrict: \"A\",\r\n scope: false,\r\n controller: DetachedToolbarRefController\r\n };\r\n}\r\n\r\nangularAMD.directive(\"detachedToolbarRefContext\", detachedToolbarRefController);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport \"../react2angular/buttonComponent\";\r\nimport template from \"./dialog-action.html\";\r\n\r\nexport class DialogActionController extends NgComponent {\r\n constructor($rootScope, $scope) {\r\n super();\r\n\r\n this.$rootScope = $rootScope;\r\n this.$scope = $scope;\r\n\r\n this.handleClick = this._handleClick.bind(this);\r\n }\r\n\r\n _handleAction() {\r\n this.onClick();\r\n }\r\n\r\n _handleAsyncAction() {\r\n const result = this.onClick();\r\n if (typeof result.then === \"function\") {\r\n this.disabled = true;\r\n result.finally(() => {\r\n this.disabled = false;\r\n });\r\n }\r\n }\r\n\r\n _handleClick() {\r\n try {\r\n if (this.isAsyncAction) {\r\n this._handleAsyncAction();\r\n } else {\r\n this._handleAction();\r\n }\r\n\r\n if (this.$scope.$$phase === null && this.$scope.$root.$$phase === null) {\r\n this.$scope.$apply();\r\n } else {\r\n this.$scope.$evalAsync();\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n\r\n if (this.hideDialog) {\r\n this.$scope.$parent.hideModal();\r\n }\r\n }\r\n}\r\n\r\nconst dialogActionDefinition = {\r\n bindings: {\r\n buttonClass: \"<\",\r\n dataHook: \"@\",\r\n label: \"@\",\r\n onClick: \"&\",\r\n disabled: \" `;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./templates/inline-confirm.html\";\r\nimport \"../autoFocus/autoFocus.directive\";\r\n\r\nvar inlineConfirmDefinition = {\r\n bindings: {\r\n option: \"<\",\r\n onConfirm: \"&\",\r\n onUpdate: \"&\",\r\n active: \" {\r\n this.isAnimating = false;\r\n }, 300);\r\n\r\n this.onUpdate({ option: this.option, confirming: true });\r\n};\r\n\r\nInlineConfirm.prototype.confirmAction = function () {\r\n this.active = false;\r\n this.isAnimating = false;\r\n this.onUpdate({ option: this.option, confirming: false });\r\n this.onConfirm();\r\n};\r\n\r\nangularAMD.component(\"inlineConfirm\", inlineConfirmDefinition);\r\n\r\nexport { inlineConfirmDefinition as inlineConfirm };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./inline-decision.html\";\r\n\r\nvar inlineDecisionDefinition = {\r\n bindings: {\r\n positiveChoice: \"@\",\r\n negativeChoice: \"@\",\r\n confirmation: \"@\",\r\n data: \"<\",\r\n onPositiveSelect: \"&\",\r\n onNegativeSelect: \"&\"\r\n },\r\n template: template,\r\n controller: InlineDecision\r\n};\r\n\r\nInlineDecision.$inject = [\"multiLanguageService\"];\r\nfunction InlineDecision(multiLanguageService) {\r\n this.cancelLabel = multiLanguageService.getString(\"buttons.cancel\");\r\n this.displayingConfirmation = false;\r\n}\r\n\r\nInlineDecision.prototype.onUpdate = function (confirming) {\r\n this.displayingConfirmation = confirming;\r\n};\r\n\r\nInlineDecision.prototype.positiveConfirm = function () {\r\n this.onPositiveSelect({ data: this.data });\r\n};\r\n\r\nInlineDecision.prototype.negativeConfirm = function () {\r\n this.onNegativeSelect({ data: this.data });\r\n this.displayingConfirmation = false;\r\n};\r\n\r\nangularAMD.component(\"inlineDecision\", inlineDecisionDefinition);\r\n\r\nexport { inlineDecisionDefinition as inlineDecision };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../inlineConfirm/inlineConfirm.component\";\r\nimport \"../inlineDecision/inlineDecision.component\";\r\nimport template from \"./dropdown-wrapper.html\";\r\n\r\nvar dropdownWrapperDefinition = {\r\n bindings: {\r\n icon: \"@\",\r\n options: \"<\",\r\n customClass: \"@\",\r\n onOptionSelect: \"&\",\r\n dropdownLabel: \"<\",\r\n isDisabled: \" {{::$ctrl.option.name}}
`;","export default ` `;","export default `
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../a11y/services/a11yMenuFactory.service\";\r\nimport \"../utilities/accessibilityKeyEventHelper.service\";\r\nimport \"../userAgent/userAgent.service\";\r\n\r\nangularAMD.directive(\"findLast\", function () {\r\n return {\r\n scope: true,\r\n\r\n link: function (scope) {\r\n if (scope.$last && scope.init) {\r\n scope.init();\r\n }\r\n }\r\n };\r\n});\r\n\r\nangularAMD.directive(\"dropdown\", Dropdown);\r\nDropdown.$inject = [\"$rootScope\", \"$window\", \"$timeout\", \"A11yMenuFactory\", \"accessibilityKeyEventHelper\", \"domSearchHelper\", \"UserAgentService\"];\r\n\r\nfunction Dropdown($rootScope, $window, $timeout, a11yMenuFactory, accessibilityKeyHelper, domSearchHelper, UserAgentService) {\r\n var recent_dropdown = 0;\r\n\r\n return {\r\n restrict: \"A\",\r\n scope: true,\r\n\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.document_el = angular.element(document);\r\n $scope.header_el = angular.element($element[0].getElementsByClassName(\"header\")[0]);\r\n $scope.list_el = angular.element($element[0].getElementsByClassName(\"list\")[0]);\r\n $scope.has_template = $scope.header_el.hasClass(\"template\");\r\n $scope.roleMenu = null;\r\n\r\n var limitationBox = $attrs.limitationBox;\r\n if (limitationBox !== undefined && limitationBox !== \"\") {\r\n $scope.limitation_box = angular.element(document.querySelector(limitationBox));\r\n } else if (document.getElementById(\"app-container\")) {\r\n $scope.limitation_box = angular.element(document.getElementById(\"app-container\"));\r\n } else {\r\n $scope.limitation_box = angular.element(document.body);\r\n }\r\n\r\n // applies all events for core dropdown functionality\r\n $scope.addListenerToLastItemList = function (last_element) {\r\n last_element.bind(\"blur\", function () {\r\n $scope.collapseDropdownOnBlur();\r\n });\r\n };\r\n\r\n $scope.unsetParentActiveIndicator = function () {\r\n if ($scope.indicate_parent) {\r\n $scope.indicate_parent.removeClass(\"dropdown-is-active\");\r\n }\r\n\r\n if ($scope.header_el[0].attributes[\"aria-expanded\"] !== undefined) {\r\n $scope.header_el[0].setAttribute(\"aria-expanded\", false);\r\n }\r\n };\r\n\r\n $scope.setParentActiveIndicator = function () {\r\n if ($scope.indicate_parent) {\r\n $scope.indicate_parent.addClass(\"dropdown-is-active\");\r\n }\r\n\r\n if ($scope.header_el[0].attributes[\"aria-expanded\"] !== undefined) {\r\n $scope.header_el[0].setAttribute(\"aria-expanded\", true);\r\n }\r\n };\r\n\r\n $scope.setFocusOnCurrentTab = function () {\r\n if ($scope.focus_on_open_first) {\r\n $scope.focus_on_open_first.focus();\r\n }\r\n\r\n if ($scope.focus_on_open_second) {\r\n $scope.focus_on_open_second.focus();\r\n }\r\n };\r\n\r\n $scope.reset = function (className) {\r\n if ($scope.is_open) {\r\n $scope.collapseDropdown();\r\n }\r\n //Reset init_open to allow the stored base height to be recalculated.\r\n $scope.init_open = true;\r\n $scope.triggerCloseOnAnyListItemClick(className);\r\n };\r\n\r\n $scope.onAttachMenu = function (event) {\r\n if ($scope.roleMenu === null) {\r\n $scope.roleMenu = a11yMenuFactory.createMenu($scope.header_el, $scope.list_el, function (event) {\r\n const isTooltipPresent = domSearchHelper.getElementFromDomTree(event.target, (targetElement) => targetElement !== null && targetElement.dataset.hook === \"tooltip\");\r\n\r\n if (isTooltipPresent === null) {\r\n $scope.roleMenu.unconfigureMenu();\r\n return $timeout($scope.collapseDropdown);\r\n }\r\n });\r\n }\r\n\r\n $scope.roleMenu.configureMenu();\r\n var menuItems = $scope.roleMenu.getElements();\r\n\r\n if (menuItems.length > 0) {\r\n $scope.roleMenu.focusFirstItem(null, menuItems);\r\n }\r\n\r\n $scope.verticalDropdownAlign($scope.header_el, $scope.list_el);\r\n };\r\n\r\n // after click on any link or button or element that matches the class name inside dropdown list, it closes the dropdown.\r\n $scope.triggerCloseOnAnyListItemClick = function () {\r\n var isClickableElem = function (elem) {\r\n return elem.nodeName === \"A\" || (elem.nodeName === \"BUTTON\" && elem.getAttribute(\"ignore-dropdown-bind\") === null) || elem.classList.contains($scope.triggerCloseElemClassName);\r\n };\r\n\r\n $scope.list_el.bind(\"click\", function (event) {\r\n if (domSearchHelper.getElementFromDomTree(event.target, isClickableElem, { node: $scope.list_el })) {\r\n $scope.collapseDropdown();\r\n\r\n $timeout(function () {\r\n $scope.focus_el.focus();\r\n });\r\n }\r\n });\r\n };\r\n\r\n $scope.collapseDropdownOnBlur = function () {\r\n setTimeout(function () {\r\n if (!$element[0].querySelector(\":active\") && !$element[0].querySelector(\":focus\")) {\r\n $scope.collapseDropdown();\r\n }\r\n }, 50);\r\n };\r\n\r\n $scope.collapseDropdown = function () {\r\n $scope.is_open = false;\r\n $scope.document_el.unbind($scope.dropdown_event, $scope.documentEventHandler);\r\n $scope.list_el.unbind($scope.dropdown_event);\r\n $element.removeClass(\"active\");\r\n $scope.ariaExpanded($element, false);\r\n $scope.unsetParentActiveIndicator();\r\n\r\n if ($scope.roleMenu !== null) {\r\n $scope.roleMenu.unconfigureMenu();\r\n }\r\n\r\n if ($scope.onDropdownClose && $scope[$scope.onDropdownClose]) {\r\n $scope[$scope.onDropdownClose]($scope.identifier); //Shared Scope Callback\r\n }\r\n };\r\n\r\n $scope.configureTriggerCloseElem = function (elemClassName) {\r\n $scope.triggerCloseElemClassName = elemClassName;\r\n };\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n scope.is_open = false;\r\n scope.align_left = attrs.alignLeft !== undefined;\r\n scope.align_to_pointer = attrs.alignToPointer || false;\r\n scope.indicate_parent = attrs.indicateParent || false ? angular.element(document.querySelector(attrs.indicateParent)) : null;\r\n scope.focus_on_open_first = attrs.focusOnOpenFirst || false ? element[0].querySelector(attrs.focusOnOpenFirst) : null;\r\n scope.focus_on_open_second = attrs.focusOnOpenSecond || false ? element[0].querySelector(attrs.focusOnOpenSecond) : null;\r\n scope.identifier = attrs.identifier || null;\r\n\r\n attrs.$observe(\"identifier\", function () {\r\n if (attrs.identifier !== scope.identifier) {\r\n scope.identifier = attrs.identifier || null;\r\n }\r\n });\r\n\r\n scope.onDropdownClose = attrs.onDropdownClose;\r\n scope.init_open = true;\r\n scope.clickBound = false;\r\n scope.verticalAlign = attrs.verticalAlign !== undefined;\r\n\r\n if (UserAgentService.touch) {\r\n scope.dropdown_event = \"tap\";\r\n } else {\r\n scope.dropdown_event = \"click\";\r\n }\r\n\r\n if (attrs.dropdownAttachMenuEvent) {\r\n scope.$on(attrs.dropdownAttachMenuEvent, scope.onAttachMenu);\r\n }\r\n\r\n scope.initDropdown = function () {\r\n if (attrs.disableClick === undefined) {\r\n scope.clickable_el = angular.element(scope.header_el[0].getElementsByClassName(\"clickable\"));\r\n\r\n // toggle dropdown clicking on dropdown header\r\n if (scope.clickable_el[0]) {\r\n scope.clickable_el.unbind(scope.dropdown_event);\r\n scope.bindActivationToElem(scope.clickable_el);\r\n scope.clickable_el.bound = true;\r\n } else {\r\n scope.bindActivationToElem(scope.header_el);\r\n }\r\n } else {\r\n scope.header_el.bind(scope.dropdown_event, function (e) {\r\n e.stopPropagation();\r\n });\r\n }\r\n };\r\n\r\n scope.bindActivationToElem = function (angularElem) {\r\n angularElem.bind(scope.dropdown_event, function (e) {\r\n scope.toggleDropDown(e);\r\n });\r\n\r\n if (attrs.dropdownSubMenu) {\r\n angularElem.bind(\"keyup\", function (e) {\r\n if (e.keyCode === accessibilityKeyHelper.keyCodeMap.downArrow) {\r\n scope.toggleDropDown(e);\r\n }\r\n });\r\n }\r\n };\r\n\r\n // kick start automatically only when there is no template\r\n if (!scope.has_template) {\r\n scope.initDropdown();\r\n }\r\n\r\n scope.ariaExpanded = function (element, expanded) {\r\n var button = angular.element(element[0].getElementsByTagName(\"button\")[0]);\r\n\r\n if (button) {\r\n button.attr(\"aria-expanded\", expanded);\r\n }\r\n };\r\n\r\n scope.toggleDropDown = function (e) {\r\n scope.is_open = !scope.is_open; // toggle dropdown state\r\n\r\n // center buttons when open\r\n if (scope.is_open) {\r\n scope.triggerCloseOnAnyListItemClick();\r\n scope.focus_el = document.activeElement;\r\n element.addClass(\"active\");\r\n scope.ariaExpanded(element, true);\r\n scope.setParentActiveIndicator();\r\n scope.setFocusOnCurrentTab();\r\n\r\n if (scope.align_to_pointer) {\r\n scope.alignToPointerDropdownList(e);\r\n } else {\r\n scope.centerDropdownList();\r\n }\r\n\r\n scope.verticalDropdownAlign(element, scope.list_el);\r\n\r\n // prevent collapsing dropdown when clicking inside dropdown list\r\n scope.list_el.bind(scope.dropdown_event, function (e) {\r\n if (e) {\r\n e.stopPropagation();\r\n }\r\n });\r\n\r\n // collapse dropdown when user clicks around dropdown\r\n scope.documentEventHandler = function (event) {\r\n const isTooltipPresent = domSearchHelper.getElementFromDomTree(event.target, (targetElement) => targetElement !== null && targetElement.dataset.hook === \"tooltip\");\r\n\r\n if (isTooltipPresent === null) {\r\n $timeout(scope.collapseDropdown);\r\n }\r\n };\r\n scope.document_el.bind(scope.dropdown_event, scope.documentEventHandler);\r\n\r\n if (attrs.dropdownAttachMenu) {\r\n scope.onAttachMenu();\r\n }\r\n } else {\r\n scope.collapseDropdown();\r\n }\r\n\r\n // in case any other dropdown was opened before, remove class from it\r\n // tslint:disable-next-line:triple-equals\r\n if (recent_dropdown && recent_dropdown != 0 && recent_dropdown != element) {\r\n if (recent_dropdown.hasClass(\"active\")) {\r\n if (recent_dropdown.scope && recent_dropdown.scope() && recent_dropdown.scope().collapseDropdown) {\r\n recent_dropdown.scope().collapseDropdown();\r\n }\r\n }\r\n }\r\n\r\n recent_dropdown = element; // make current element make last\r\n\r\n if (e) {\r\n e.stopPropagation();\r\n }\r\n };\r\n\r\n // unbind not needed event listener on destroy\r\n scope.$on(\"$destroy\", function () {\r\n scope.document_el.unbind(scope.dropdown_event, scope.collapseDropdown);\r\n scope.list_el.unbind(scope.dropdown_event);\r\n\r\n if (scope.roleMenu !== null) {\r\n scope.roleMenu.unconfigureMenu();\r\n scope.roleMenu.onClose = null;\r\n }\r\n\r\n dropDownCloseEvent();\r\n });\r\n\r\n element.on(\"$destroy\", function () {\r\n scope.$destroy();\r\n });\r\n\r\n scope.setListElHeight = function () {\r\n scope.list_el_height = scope.list_el_data.height + scope.distance_to_bottom - 5;\r\n scope.list_el.css({ height: scope.list_el_height + \"px\" });\r\n };\r\n\r\n scope.adjustOptions = {\r\n toTop: function (element) {\r\n element.addClass(\"inverted\");\r\n },\r\n reset: function (element) {\r\n element.removeClass(\"inverted\");\r\n }\r\n };\r\n\r\n scope.verticalDropdownAlign = function (element, bodyEl) {\r\n // don't run vertical align in case it's not set\r\n if (!scope.verticalAlign) {\r\n return;\r\n }\r\n\r\n // reset any previously added adjustments\r\n scope.adjustOptions.reset(element);\r\n\r\n var targetRect = bodyEl[0].getBoundingClientRect(),\r\n windowHeight = $window.innerHeight,\r\n limitationBoxData,\r\n extraBottomRoom,\r\n distanceToBottom;\r\n\r\n // measure against limitation box\r\n if (scope.limitation_box && scope.limitation_box[0]) {\r\n limitationBoxData = scope.limitation_box[0].getBoundingClientRect();\r\n distanceToBottom = limitationBoxData.bottom - targetRect.bottom - 8; // 8 is a extra fixed gap\r\n } else {\r\n //measure against window\r\n extraBottomRoom = Math.floor(windowHeight * 0.07);\r\n // get distance from bottom\r\n distanceToBottom = windowHeight - targetRect.bottom - extraBottomRoom;\r\n }\r\n\r\n if (distanceToBottom < 0) {\r\n scope.adjustOptions.toTop(element);\r\n }\r\n };\r\n\r\n scope.alignToPointerDropdownList = function (e) {\r\n var headerElRect = scope.header_el[0].getBoundingClientRect(),\r\n listElRect = scope.list_el[0].getBoundingClientRect(),\r\n pointerXPos = UserAgentService.touch ? e.originalEvent.changedTouches[0].clientX : e.pageX || e.clientX,\r\n listMiddlePoint = headerElRect.left + listElRect.width / 2,\r\n listOffset = 0;\r\n\r\n // place on the left\r\n if (pointerXPos <= listMiddlePoint) {\r\n scope.list_el.css({ left: \"\" });\r\n }\r\n // place in the middle of cursor coords\r\n else {\r\n listOffset = pointerXPos - listMiddlePoint;\r\n scope.list_el.css({ left: listOffset + \"px\" });\r\n }\r\n };\r\n\r\n scope.centerDropdownList = function () {\r\n if (scope.init_open || scope.list_el[0].offsetHeight !== scope.original_list_el_height) {\r\n scope.original_list_el_height = scope.list_el[0].getBoundingClientRect().height; // save original height of list for future use\r\n scope.init_open = false;\r\n }\r\n\r\n scope.list_el.css({ height: \"\" });\r\n scope.list_el_data = scope.list_el[0].getBoundingClientRect(); // list dimensions data\r\n scope.limitation_box_data = scope.limitation_box[0].getBoundingClientRect(); // app wrapper dimensions data\r\n scope.header_el_width = scope.header_el[0].offsetWidth; // header width\r\n scope.list_el_width = scope.list_el_data.width; // list width\r\n scope.list_el_height = scope.list_el_data.height;\r\n scope.distance_to_left = scope.list_el_data.left - scope.limitation_box_data.left; // find distance to left\r\n scope.distance_to_bottom = window.innerHeight - scope.list_el_data.bottom;\r\n\r\n // find side offset only on initial run\r\n if (!scope.side_offset) {\r\n scope.side_offset = (scope.list_el_width - scope.header_el_width) / 2; // find side offsets\r\n scope.distance_to_right = scope.limitation_box_data.right - (scope.list_el_data.right + scope.side_offset); // find distance to right\r\n } else {\r\n scope.distance_to_right = scope.limitation_box_data.right - scope.list_el_data.right; // find distance to right\r\n }\r\n\r\n // handle if list is offset offset on the right side\r\n if (scope.distance_to_right < 0) {\r\n scope.list_el.css({ \"margin-left\": \"\" });\r\n scope.list_el.css({ left: \"\" });\r\n scope.list_el.css({ right: \"0\" });\r\n }\r\n\r\n if (scope.distance_to_left < 0) {\r\n scope.list_el.css({ \"margin-left\": \"-\" + Math.A });\r\n scope.list_el.css({ left: \"0\" });\r\n scope.list_el.css({ right: \"\" });\r\n }\r\n\r\n // set height of dropdown list if it doesn't fit screen vertically\r\n if (!scope.verticalAlign) {\r\n if (scope.distance_to_bottom < 5) {\r\n scope.setListElHeight();\r\n } else {\r\n if (scope.distance_to_bottom > scope.original_list_el_height + 5 - scope.list_el_height + 5) {\r\n scope.list_el.css({ height: \"\" });\r\n } else {\r\n scope.setListElHeight();\r\n }\r\n }\r\n }\r\n\r\n // horizontal align\r\n // don't align dropdown list element if it didn't change\r\n if (Math.round(scope.list_el_width) !== Math.round(scope.list_el_width_prev_value) && !scope.align_left) {\r\n // if list is wider than header then add negative margin to the list to center it.\r\n if (scope.list_el_width > scope.header_el_width) {\r\n if (scope.distance_to_right > 0 && scope.distance_to_left > (scope.list_el_width - scope.header_el_width) / 2) {\r\n scope.list_el.css({ \"margin-left\": \"-\" + scope.list_el_width / 2 + \"px\" });\r\n scope.list_el.css({ left: \"50%\" });\r\n scope.list_el.css({ right: \"\" });\r\n }\r\n } else {\r\n // reset all styles in case list fits normally\r\n scope.list_el.css({ \"margin-left\": \"\" });\r\n scope.list_el.css({ left: \"\" });\r\n scope.list_el.css({ right: \"\" });\r\n }\r\n\r\n // save last changed value of list element width\r\n scope.list_el_width_prev_value = scope.list_el_width;\r\n }\r\n };\r\n\r\n if (attrs.isOpen !== undefined) {\r\n // start watcher for \"is-open\"\r\n attrs.$observe(\"isOpen\", function (current_state) {\r\n // tslint:disable-next-line:triple-equals\r\n if (JSON.parse(current_state) == true) {\r\n scope.toggleDropDown();\r\n } else {\r\n scope.collapseDropdown();\r\n }\r\n });\r\n }\r\n\r\n var dropDownCloseEvent = $rootScope.$on(\"onDropdownClose\", function () {\r\n scope.collapseDropdown();\r\n });\r\n }\r\n };\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nclass DynamicStatusServiceLoader {\r\n constructor($injector) {\r\n this._injector = $injector;\r\n }\r\n\r\n getPrexistingLockService() {\r\n return import(\"../statusToolbar/services/preexistingLockStatus.service\").then(() => {\r\n return this._injector.get(\"PreexistingLockStatusService\");\r\n });\r\n }\r\n\r\n getAssetLockedService() {\r\n return import(\"../statusToolbar/services/assetLockedStatus.service\").then(() => {\r\n return this._injector.get(\"AssetLockedStatusService\");\r\n });\r\n }\r\n\r\n getRecoveredAssetHelperService() {\r\n return import(\"../recoveredAsset/services/RecoveredAssetHelper.service\").then(() => {\r\n return this._injector.get(\"recoveredAssetHelperService\");\r\n });\r\n }\r\n}\r\n\r\nDynamicStatusServiceLoader.$inject = [\"$injector\"];\r\nangularAMD.service(\"DynamicStatusServiceLoader\", DynamicStatusServiceLoader);\r\n\r\nexport { DynamicStatusServiceLoader };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.directive(\"elementCreatedMarker\", ElementCreatedMarker);\r\nElementCreatedMarker.$inject = [];\r\n\r\nfunction ElementCreatedMarker() {\r\n return {\r\n restrict: \"A\",\r\n link: function (scope, element, attrs) {\r\n scope.$emit(\"elementCreatedMarkerExists\", attrs.elementCreatedMarker, element[0]);\r\n }\r\n };\r\n}\r\n","/**\r\n * @param {Array} events\r\n * @constructor\r\n */\r\nfunction EventEmitter(events) {\r\n this._eventMap = new Map(events.map((e) => [e, []]));\r\n}\r\n\r\n/**\r\n * Register listener for event\r\n * @param {String} eventName\r\n * @param {Function} callback\r\n */\r\nEventEmitter.prototype.on = function (eventName, callback) {\r\n let events = this._eventMap.get(eventName);\r\n if (events === undefined) {\r\n events = [];\r\n this._eventMap.set(eventName, events);\r\n }\r\n\r\n events.push(callback);\r\n};\r\n\r\nEventEmitter.prototype.off = function (eventName, callback) {\r\n const events = this._eventMap.get(eventName);\r\n if (events === undefined) {\r\n return;\r\n }\r\n\r\n const index = events.findIndex((ref) => ref === callback);\r\n if (index !== -1) {\r\n events.splice(index, 1);\r\n }\r\n\r\n if (events.length === 0) {\r\n this._eventMap.delete(eventName);\r\n }\r\n};\r\n\r\n/**\r\n * Emit an event\r\n * @param {String} eventName\r\n * @param {any=} value\r\n */\r\nEventEmitter.prototype.emit = function (eventName, value) {\r\n const events = this._eventMap.get(eventName);\r\n if (events === undefined) {\r\n return;\r\n }\r\n\r\n events.forEach((callback) => callback(value));\r\n};\r\n\r\n/**\r\n * Remove events\r\n * @param {Array} events : [\"event\", \"anotherEvent\"]\r\n */\r\nEventEmitter.prototype.removeEvents = function (events) {\r\n events.forEach((eventName) => this._eventMap.delete(eventName));\r\n};\r\n\r\nexport { EventEmitter };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport enquire from \"enquire.js/dist/enquire\";\r\nimport \"../utilities/animationHelperService\";\r\nimport \"../utilities/helpers\";\r\n\r\nangularAMD.directive(\"expandable\", [\r\n \"$timeout\",\r\n \"$rootScope\",\r\n \"animationHelperService\",\r\n \"helpers\",\r\n function ($timeout, $rootScope, animationHelperService, helpers) {\r\n // Get spa menu height\r\n // get it done before outside return\r\n // because in this case it will be triggered only once. (performance reason)\r\n var spa_menu_el = document.getElementById(\"spa-menu-wrapper\");\r\n var spa_menu_height = spa_menu_el ? spa_menu_el.offsetHeight : 0;\r\n enquire.register(\"screen and (max-width: 460px)\", {\r\n match: function () {\r\n spa_menu_height = spa_menu_el ? spa_menu_el.offsetHeight : 0;\r\n },\r\n unmatch: function () {\r\n spa_menu_height = spa_menu_el ? spa_menu_el.offsetHeight : 0;\r\n }\r\n });\r\n\r\n var previous_elem = {};\r\n var current_elem = {};\r\n\r\n return {\r\n restrict: \"A\",\r\n scope: {\r\n closeOnDemand: \"=\"\r\n },\r\n link: function (scope, element, attrs) {\r\n // isolated namespace\r\n var local = {};\r\n\r\n // decide if we need to force a tab index on the header or not (Default false)\r\n if (attrs.noheadertabindex === \"true\") {\r\n scope.no_header_tab_index = true;\r\n } else {\r\n scope.no_header_tab_index = false;\r\n }\r\n\r\n // array css attrs that need to listen for end of their transitions\r\n scope.cssPropertyNames = [\"height\", \"min-height\"];\r\n\r\n // find all needed elements in the DOM\r\n scope.cacheNeededData = function () {\r\n local.header_el = angular.element(element[0].getElementsByClassName(\"header\")[0]);\r\n local.clickable_el = angular.element(element[0].getElementsByClassName(\"clickable\")[0]);\r\n local.content_el = angular.element(element[0].getElementsByClassName(\"content\")[0]);\r\n local.inner_el = angular.element(local.content_el[0].getElementsByClassName(\"inner\")[0]);\r\n if (attrs.inModal) {\r\n scope.modal_dialog_wrapper = document.getElementsByClassName(\"modal-dialog__wrapper\")[0];\r\n }\r\n };\r\n\r\n // this removes event click from links and ng-click within \"clickable\" area,\r\n // so links behave as normal\r\n scope.setNormalLinksBehaviour = function () {\r\n // find all tags and make them clickable and selectable with the keyboard\r\n var all_links = angular.element(local.clickable_el[0].getElementsByTagName(\"a\"));\r\n all_links.bind(local.user_event + \" keydown\", function (event) {\r\n event.stopImmediatePropagation();\r\n });\r\n\r\n // find all [ng-click] and make them clickable and selectable with the keyboard\r\n var all_ng_clicks = angular.element(local.clickable_el[0].querySelectorAll(\"[ng-click]\"));\r\n all_ng_clicks.bind(local.user_event + \" keydown\", function (event) {\r\n event.stopImmediatePropagation();\r\n });\r\n\r\n // find all not no-expands and make them clickable and selectable with the keyboard\r\n var no_expands = angular.element(local.clickable_el[0].getElementsByClassName(\"no-expand\"));\r\n no_expands.bind(local.user_event + \" keydown\", function (event) {\r\n event.stopImmediatePropagation();\r\n });\r\n\r\n // For the navigation reorder modal\r\n // stops the expandable toggle when clicking an ng-click element in the header element\r\n if (attrs.reorderpages === \"true\") {\r\n var all_ng_clicks_in_header = angular.element(local.header_el[0].querySelectorAll(\"[ng-click]\"));\r\n all_ng_clicks_in_header.bind(local.user_event + \" keydown\", function (event) {\r\n event.stopImmediatePropagation();\r\n });\r\n }\r\n };\r\n\r\n // event listeners for all transitions end\r\n scope.listenForTheEndOfTransitions = function () {\r\n local.content_el[0].addEventListener(\"transitionend\", scope.detectTheEnd, false);\r\n local.content_el[0].addEventListener(\"webkitTransitionEnd\", scope.detectTheEnd, false);\r\n local.content_el[0].addEventListener(\"mozTransitionEnd\", scope.detectTheEnd, false);\r\n local.content_el[0].addEventListener(\"msTransitionEnd\", scope.detectTheEnd, false);\r\n local.content_el[0].addEventListener(\"oTransitionEnd\", scope.detectTheEnd, false);\r\n };\r\n\r\n // after element finished expanding, set height and min-height.\r\n scope.detectTheEnd = function (e) {\r\n if (local.expanding === true && scope.cssPropertyNames.indexOf(e.propertyName) > -1) {\r\n $timeout(function () {\r\n scope.setElementHeight(\"auto\");\r\n element.removeClass(\"trigger-animation\"); // trigger all animations within expandable\r\n scope.scrollIntoView();\r\n }, 25);\r\n }\r\n };\r\n\r\n scope.scrollIntoView = function () {\r\n var client_height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n var element_height = element[0].offsetHeight;\r\n var current_scroll_top = document.all ? document.scrollTop : window.pageYOffset;\r\n if (attrs.inModal) {\r\n current_scroll_top = scope.modal_dialog_wrapper.scrollTop;\r\n }\r\n var current_scroll_left = document.all ? document.scrollLeft : window.pageXOffset;\r\n var elem_rect, elem_to_top;\r\n\r\n // if inner fits the screen, then try to scroll into the view\r\n if (element_height < client_height - spa_menu_height) {\r\n elem_rect = element[0].getBoundingClientRect();\r\n var elem_to_bottom = client_height - elem_rect.height - elem_rect.top - 10;\r\n\r\n if (elem_rect.top < spa_menu_height) {\r\n elem_to_top = spa_menu_height - elem_rect.top + 10;\r\n\r\n animationHelperService.animate({\r\n duration: 300,\r\n timing_fn: animationHelperService.timing_functions.easeInOutCubic,\r\n step: function (delta) {\r\n window.scrollTo(current_scroll_left, current_scroll_top - elem_to_top * delta);\r\n }\r\n });\r\n }\r\n\r\n if (elem_to_bottom < 0) {\r\n animationHelperService.animate({\r\n duration: 300,\r\n timing_fn: animationHelperService.timing_functions.easeInOutCubic,\r\n step: function (delta) {\r\n if (attrs.inModal) {\r\n scope.modal_dialog_wrapper.scrollTop = current_scroll_top + Math.abs(elem_to_bottom) * delta;\r\n } else {\r\n window.scrollTo(current_scroll_left, current_scroll_top + Math.abs(elem_to_bottom) * delta);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n // if inner doesn't fit the screen, then try to scroll into the view to the top of the element\r\n else {\r\n elem_rect = element[0].getBoundingClientRect();\r\n // distance of element from top (minus spa menu, minus 10px to give more air)\r\n elem_to_top = elem_rect.top - spa_menu_height - 10;\r\n\r\n animationHelperService.animate({\r\n duration: 300,\r\n timing_fn: animationHelperService.timing_functions.easeInOutCubic,\r\n step: function (delta) {\r\n if (attrs.inModal) {\r\n scope.modal_dialog_wrapper.scrollTop = current_scroll_top + Math.abs(elem_to_bottom) * delta;\r\n } else {\r\n window.scrollTo(current_scroll_left, current_scroll_top + elem_to_top * delta);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n scope.completeTransition = function (action) {\r\n // need to wait 25ms to make below code execute asynchronous\r\n $timeout(function () {\r\n // touch devices fix\r\n // should toggle expanded after height was set\r\n local.content_el.removeClass(\"disable-transitions\");\r\n\r\n if (action === \"expand\") {\r\n // do this on expanding (if state changed through $watch)\r\n element.addClass(\"expanded\");\r\n } else if (action === \"collapse\") {\r\n // do this on collapsing (if state changed through $watch)\r\n element.removeClass(\"expanded\");\r\n } else {\r\n // when user toggle expandable manually, do this\r\n element.toggleClass(\"expanded\");\r\n }\r\n }, 25);\r\n };\r\n\r\n scope.setElementHeight = function (height_type) {\r\n switch (height_type) {\r\n case \"auto\":\r\n local.content_el.addClass(\"disable-transitions\"); // need this to prevent container \"jumps\" on some touch devices\r\n local.content_el.css({ height: \"auto\" });\r\n break;\r\n\r\n case \"as content\":\r\n var inner_el_height = local.inner_el[0].offsetHeight;\r\n\r\n if (inner_el_height > 0) {\r\n local.content_el.css({ height: inner_el_height + \"px\" });\r\n } else {\r\n scope.setElementHeight(\"auto\");\r\n }\r\n break;\r\n\r\n case \"zero\":\r\n local.content_el.css({ height: \"0px\" });\r\n break;\r\n\r\n default:\r\n //console.log(\"wrong height parameter!\");\r\n }\r\n };\r\n\r\n // run on collapse\r\n scope.collapse = function () {\r\n local.expanding = false;\r\n\r\n if (local.one_a_time) {\r\n local.triggerExpandableListener();\r\n }\r\n\r\n // magic hack (i.e. asynchronous execution) for smooth transition\r\n // honestly, it gives a moment for code to set height of container,\r\n // be a fixed number, so transition will know from where to start\r\n $timeout(function () {\r\n // here code sets the ending point of transition\r\n // so you get transition FROM[\"container current height\"] -> TO[\"zero height\"]\r\n scope.setElementHeight(\"zero\");\r\n }, 50);\r\n };\r\n\r\n // run on expand\r\n scope.expand = function () {\r\n local.expanding = true;\r\n\r\n if (local.one_a_time) {\r\n local.triggerExpandableListener = scope.$on(\"triggerExpandable\", function () {\r\n // tslint:disable-next-line:triple-equals\r\n if (previous_elem[local.one_a_time] == element[0] && previous_elem[local.one_a_time] != current_elem[local.one_a_time] && local.expanding) {\r\n scope.toggleExpandable();\r\n }\r\n });\r\n\r\n // make current element as last entered\r\n previous_elem[local.one_a_time] = element[0];\r\n }\r\n };\r\n\r\n scope.toggleExpandable = function () {\r\n // meet requirement of flag \"animation = false\" on the directive element\r\n if (attrs.animation === \"false\") {\r\n // make container equals to auto,\r\n // so all transitions fails to appear\r\n scope.setElementHeight(\"auto\");\r\n element.toggleClass(\"expanded\");\r\n }\r\n // default behaviour\r\n else {\r\n // set min height equals to height of content\r\n scope.setElementHeight(\"as content\");\r\n scope.completeTransition();\r\n }\r\n\r\n // do on collapse\r\n if (local.expanding) {\r\n scope.collapse();\r\n }\r\n // do on expand\r\n else {\r\n scope.expand();\r\n }\r\n\r\n scope.toggleAriaExpanded(local.expanding);\r\n };\r\n\r\n scope.collapseOnEvent = function () {\r\n var event_name = attrs.collapseOnEvent;\r\n\r\n if (event_name) {\r\n scope.$on(event_name, function () {\r\n element.removeClass(\"expanded\");\r\n scope.collapse();\r\n });\r\n }\r\n };\r\n\r\n scope.toggleAriaExpanded = function (expanded) {\r\n local.clickable_el[0].setAttribute(\"aria-expanded\", expanded.toString());\r\n };\r\n\r\n // initialise expandable element\r\n scope.init = function () {\r\n scope.onload = true;\r\n\r\n local.one_a_time = attrs.oneATime ? attrs.oneATime : false;\r\n\r\n scope.collapseOnEvent();\r\n\r\n // initialise all items required for expandable\r\n scope.cacheNeededData();\r\n\r\n if (!local.inner_el[0].id) {\r\n local.inner_el[0].id = helpers.guid();\r\n }\r\n\r\n if (!local.clickable_el[0].getAttribute(\"aria-controls\")) {\r\n local.clickable_el[0].setAttribute(\"aria-controls\", local.inner_el[0].id);\r\n }\r\n\r\n // force tab index on header unless requested not too by an attribute\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.no_header_tab_index != true) {\r\n local.header_el[0].setAttribute(\"tabindex\", 0);\r\n }\r\n\r\n // *** This was causing problems when the expandable was used on a modal. Default to \"click\" instead.\r\n /*// define event type for touch or not touch devices\r\n if (UserAgentService.touch) {\r\n local.user_event = \"tap\";\r\n } else {\r\n local.user_event = \"click\";\r\n }*/\r\n local.user_event = \"click\";\r\n\r\n // add cursor pointer to the clickable element\r\n local.clickable_el.css(\"cursor\", \"pointer\");\r\n\r\n // stop immediate event propagation when user click on links within expandable clickable area\r\n $timeout(function () {\r\n scope.setNormalLinksBehaviour();\r\n });\r\n\r\n // start all listeners for transition end\r\n scope.listenForTheEndOfTransitions();\r\n\r\n // if attribute \"start-open\" exists then add $watcher on it\r\n // this allow to have \"start-open\" attr as optional on html tags\r\n if (attrs.startOpen !== undefined) {\r\n // start watcher for \"start-open\"\r\n scope.unbindStartOpenObserve = attrs.$observe(\"startOpen\", function (current_state) {\r\n if (!current_state) {\r\n current_state = false;\r\n } else {\r\n current_state = JSON.parse(current_state);\r\n }\r\n\r\n // expand element if it is set to \"start-open = true\"\r\n // tslint:disable-next-line:triple-equals\r\n if (current_state == true) {\r\n // indicator for animation action (expanding/collapsing)\r\n scope.expand();\r\n\r\n // if first time loaded, then make it open without transition (performance optimisation)\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.onload == true) {\r\n element.addClass(\"expanded\");\r\n scope.setElementHeight(\"auto\");\r\n } else {\r\n // set min height equals to height of content\r\n scope.setElementHeight(\"as content\");\r\n scope.completeTransition(\"expand\");\r\n }\r\n }\r\n // when \"start-open = false\" collapse expandable\r\n else {\r\n if (scope.onload !== true) {\r\n // set height equals to height of content\r\n scope.setElementHeight(\"as content\");\r\n scope.completeTransition(\"collapse\");\r\n // execute default function on collapse\r\n scope.collapse();\r\n }\r\n }\r\n\r\n scope.onload = false; // initial load can be just once, that's why need to change this to false\r\n });\r\n }\r\n\r\n // if attribute \"close-on-demand\" exists then add $watcher on it\r\n // this allow you to trigger a close from code if needed\r\n if (attrs.closeOnDemand !== undefined) {\r\n scope.unbindCloseOnDemandWatcher = scope.$watch(\"closeOnDemand\", function (current_state) {\r\n if (current_state === true) {\r\n scope.toggleExpandable();\r\n scope.closeOnDemand = false;\r\n }\r\n });\r\n }\r\n\r\n // makes sure that the on-focus highlight is removed when you click away from the focused item\r\n local.header_el.bind(\"blur\", function () {\r\n local.header_el.removeClass(\"on-focus\");\r\n });\r\n\r\n // makes sure we don't add the on-focus highlight if we are focusing on a link within the container\r\n // checking for keyCode 9 - tab\r\n local.header_el.bind(\"keyup\", function (e) {\r\n if (e.target.tagName === \"DIV\" && e.keyCode === 9) {\r\n local.header_el.addClass(\"on-focus\");\r\n }\r\n });\r\n\r\n // ensures that the on-focus highlight is removed if we tab (keyCode 9)off the item\r\n local.header_el.bind(\"keydown\", function (e) {\r\n if (e.keyCode === 9) {\r\n local.header_el.removeClass(\"on-focus\");\r\n }\r\n\r\n // stops the enter(13) and spacebar(32) keys opening everything inside the main header through propagation.\r\n if (e.keyCode === 13 || e.keyCode === 32) {\r\n e.preventDefault();\r\n scope.toggleExpandable();\r\n }\r\n });\r\n\r\n // delay to give time compiler to do the job and then trigger smooth transition\r\n local.make_delay = true;\r\n\r\n // add event listener to clickable element\r\n local.clickable_el.bind(local.user_event, function () {\r\n current_elem[local.one_a_time] = element[0];\r\n $rootScope.$broadcast(\"triggerExpandable\");\r\n\r\n if (local.make_delay) {\r\n $timeout(function () {\r\n scope.toggleExpandable();\r\n local.make_delay = false;\r\n }, 150);\r\n } else {\r\n scope.toggleExpandable();\r\n }\r\n });\r\n };\r\n\r\n scope.unregisterExpandable = function () {\r\n if (local.content_el !== undefined) {\r\n local.content_el[0].removeEventListener(\"transitionend\", scope.detectTheEnd, false);\r\n local.content_el[0].removeEventListener(\"webkitTransitionEnd\", scope.detectTheEnd, false);\r\n local.content_el[0].removeEventListener(\"mozTransitionEnd\", scope.detectTheEnd, false);\r\n local.content_el[0].removeEventListener(\"msTransitionEnd\", scope.detectTheEnd, false);\r\n local.content_el[0].removeEventListener(\"oTransitionEnd\", scope.detectTheEnd, false);\r\n }\r\n\r\n local.expanding = false;\r\n scope.onload = false;\r\n local.clickable_el.unbind(local.user_event);\r\n scope.collapse();\r\n\r\n if (scope.unbindCloseOnDemandWatcher !== undefined) {\r\n scope.unbindCloseOnDemandWatcher();\r\n }\r\n\r\n if (scope.unbindStartOpenObserve !== undefined) {\r\n scope.unbindStartOpenObserve();\r\n }\r\n };\r\n\r\n // if directive used statically (i.e. without \"ng-include\" or any dynamic templates)\r\n // then start expandable automatically after directive is ready\r\n // otherwise use [ng-init=\"init()\"] to start expandable from dynamically rendered layout\r\n let prevValue;\r\n attrs.$observe(\"expandable\", (newVal) => {\r\n if (prevValue === \"true\") {\r\n if (newVal === \"\" || newVal === undefined || newVal === \"false\") {\r\n scope.unregisterExpandable();\r\n return;\r\n }\r\n }\r\n if (newVal !== \"false\") {\r\n if (element[0].getElementsByClassName(\"header\")[0]) {\r\n $timeout(function () {\r\n scope.init();\r\n });\r\n }\r\n }\r\n prevValue = newVal;\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","export const noOpAbortable = {\r\n abort: () => {\r\n /* noop */\r\n }\r\n};\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { makeAbortable } from \"../../abortablePromises/MakeAbortable.function\";\r\nimport { noOpAbortable } from \"../../abortablePromises/NoOpAbortable.const\";\r\nimport \"../services/searchService\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../loadingSpinner/loadingSpinner\";\r\nimport template from \"../templates/extend-search.html\";\r\n\r\nclass ExtendSearchController extends NgComponent {\r\n constructor($scope, $attrs, searchService, multiLanguageService) {\r\n super();\r\n this._$scope = $scope;\r\n this._searchService = searchService;\r\n this.multiLanguageService = multiLanguageService;\r\n this._activeSearchRequest = noOpAbortable;\r\n this._resetSearch();\r\n $attrs.$observe(\"emailOnly\", (emailOnly) => (this.emailOnlySearch = emailOnly));\r\n }\r\n\r\n $onChanges() {\r\n this._activeSearchRequest.abort();\r\n this._resetSearch();\r\n this.extendSearchData = { ...this.initialData };\r\n }\r\n\r\n $onDestroy() {\r\n this._activeSearchRequest.abort();\r\n }\r\n\r\n searchUsers() {\r\n this.searchSpinner = true;\r\n this.searchResults = null;\r\n\r\n this._activeSearchRequest.abort();\r\n this._activeSearchRequest = makeAbortable(this._searchService.searchUsers(this.extendSearchData)).then((response) => {\r\n this.searchResults = response.data;\r\n this.searchSpinner = false;\r\n });\r\n }\r\n\r\n createContactFromSearchResult(user) {\r\n const requestObj = {\r\n FirstName: user.FullName.split(\" \")[0],\r\n SecondName: user.FullName.split(\" \")[1],\r\n Email: user.Email,\r\n Username: user.Username\r\n };\r\n\r\n this._searchService.createContactFromSearchResult(requestObj).then((response) => {\r\n response.data.UserId = user.UserId;\r\n response.data.OrganisationId = user.OrganisationId;\r\n response.data.OrganisationName = user.OrganisationName;\r\n response.data.RoleName = user.RoleName || \"\";\r\n response.data.SubTitle = user.Email || \"\";\r\n response.data.Email = user.Email || \"\";\r\n response.data.Username = user.Username;\r\n\r\n this._$scope.$emit(\"newContactAdded\", response.data);\r\n this.closeForm();\r\n });\r\n }\r\n\r\n closeForm() {\r\n this._resetSearch();\r\n this._$scope.$emit(\"closeExtendSearchForm\");\r\n }\r\n\r\n _resetSearch() {\r\n this.extendSearchData = {\r\n firstName: \"\",\r\n secondName: \"\",\r\n email: \"\"\r\n };\r\n\r\n this.searchResults = null;\r\n this.emailOnlySearch = false;\r\n this.searchSpinner = false;\r\n }\r\n}\r\n\r\nExtendSearchController.$inject = [\"$scope\", \"$attrs\", \"searchService\", \"multiLanguageService\"];\r\n\r\nangularAMD.component(\"extendSearch\", {\r\n bindings: {\r\n initialData: \"

{{::$ctrl.multiLanguageService.getString('extend_search.headers.search')}}

{{::$ctrl.multiLanguageService.getString('extend_search.description')}}

{{::$ctrl.multiLanguageService.getString('extend_search.labels.showing_count_matches', { count: $ctrl.searchResults.length })}}

{{::$ctrl.multiLanguageService.getString('extend_search.no_matches')}}

0\">
\"\"

{{::result.Title}}

{{::result.SubTitle}}


`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\n\r\nangularAMD.factory(\"searchService\", [\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"$q\",\r\n function ($http, baseUrlsFactory, $q) {\r\n function promisedGet(url, params) {\r\n $http.defaults.withCredentials = true;\r\n var httpTimeout = $q.defer();\r\n var request = $http.get(url, {\r\n timeout: httpTimeout.promise,\r\n params: params\r\n });\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n promise._httpTimeout = httpTimeout;\r\n return promise;\r\n }\r\n\r\n function promisedPost(url, data) {\r\n $http.defaults.withCredentials = true;\r\n var httpTimeout = $q.defer();\r\n var request = $http.post(url, data, { timeout: httpTimeout.promise });\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n promise._httpTimeout = httpTimeout;\r\n return promise;\r\n }\r\n\r\n return {\r\n getContacts: function () {\r\n return promisedGet(baseUrlsFactory.api_base_url + \"FindUser/GetContactsForUser\");\r\n },\r\n\r\n searchUsers: function (requestObj) {\r\n return promisedPost(baseUrlsFactory.api_base_url + \"FindUser/ExtendSearch\", requestObj);\r\n },\r\n\r\n createContactFromSearchResult: function (requestObj) {\r\n return promisedPost(baseUrlsFactory.api_base_url + \"FindUser/AddNewContactByUsername\", requestObj);\r\n },\r\n\r\n getExternalsFromATLAS: function (searchText, workspaceId) {\r\n return $http.post(baseUrlsFactory.api_base_url + \"FindUser/GetExternalsFromATLAS\", { Email: searchText, WorkspaceId: workspaceId }).then(function (response) {\r\n if (response.data) {\r\n return response.data.length ? response.data : $q.reject(\"noResults\");\r\n } else {\r\n return $q.reject();\r\n }\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","/**\r\n * Returns a boolean indicating whether the item is within this array\r\n * @param item Item to add to the Array\r\n */\r\nObject.defineProperty(Array.prototype, \"contains\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (item, startIndex) {\r\n return this.indexOf(item, startIndex || 0) !== -1;\r\n }\r\n});\r\n\r\n/**\r\n * Returns a boolean indicating whether any of the items is within this array\r\n * @param item Item to add to the Array\r\n */\r\nObject.defineProperty(Array.prototype, \"containsAny\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (b) {\r\n return this.some(function (el) {\r\n return b.indexOf(el) !== -1;\r\n });\r\n }\r\n});\r\n\r\n/**\r\n * Adds an item to the array while it does not already exist in it\r\n * @param item Item to add to this Array\r\n */\r\nObject.defineProperty(Array.prototype, \"safePush\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (item) {\r\n if (!this.contains(item)) {\r\n this.push(item);\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Adds many items to the array\r\n * @param item Item to add to this Array\r\n */\r\nObject.defineProperty(Array.prototype, \"pushMany\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (items, safePush) {\r\n for (var i in items) {\r\n this[safePush ? \"safePush\" : \"push\"](items[i]);\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Returns a new list with a sub set of the items within this Array,\r\n * where the item matches all of the queryObject members in member name and value,\r\n * or gets a true return from query method when given it\r\n * Example: [{name: 'Dave'}, {name: 'Bob'}].where({name: 'Dave'});\r\n * @param query\r\n * @returns {Array} New subset array of query results\r\n */\r\nObject.defineProperty(Object.prototype, \"where\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (query) {\r\n var result = [];\r\n for (var item in this) {\r\n if (!this.hasOwnProperty(item)) {\r\n continue;\r\n }\r\n var matches = true;\r\n if (query instanceof Function) {\r\n matches = query(this[item], item);\r\n } else {\r\n for (var qItem in query) {\r\n if (!query.hasOwnProperty(qItem)) {\r\n continue;\r\n }\r\n // tslint:disable-next-line:triple-equals\r\n if (this[item][qItem] != query[qItem]) {\r\n matches = false;\r\n break;\r\n }\r\n }\r\n }\r\n // tslint:disable-next-line:triple-equals\r\n if (matches == null) {\r\n matches = true;\r\n }\r\n if (matches) {\r\n result.push(this[item]);\r\n }\r\n }\r\n return result;\r\n }\r\n});\r\n\r\nObject.defineProperty(Object.prototype, \"forEachMember\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (query, func) {\r\n for (var item in this) {\r\n if (!this.hasOwnProperty(item)) {\r\n continue;\r\n }\r\n\r\n var target = null;\r\n if (query) {\r\n if (query instanceof Function) {\r\n target = query(this[item], item);\r\n } else if (typeof query === typeof \"\" || query instanceof String) {\r\n target = this[item][query];\r\n }\r\n }\r\n target = target || this[item];\r\n func(target);\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Flattens arrays (or targeted nested arrays) into a single array\r\n * @param query Function returning member to iteratively collate (given an element)\r\n * @param query String identifying member to iteratively collate\r\n * @Returns {Array}\r\n */\r\nObject.defineProperty(Object.prototype, \"selectMany\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (query) {\r\n var result = [];\r\n this.forEachMember(query, function (item) {\r\n for (var part in item) {\r\n if (item.hasOwnProperty(part)) {\r\n result.push(item[part]);\r\n }\r\n }\r\n });\r\n return result;\r\n }\r\n});\r\n\r\n/**\r\n * Collates a new array out of targeted member of each element in the object\r\n * @param query Function returning member to collate (given an element)\r\n * @param query String identifying member to collate\r\n * @returns {Array}\r\n */\r\nObject.defineProperty(Object.prototype, \"selectOne\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (query) {\r\n var result = [];\r\n this.forEachMember(query, function (item) {\r\n result.push(item);\r\n });\r\n return result;\r\n }\r\n});\r\n\r\n/**\r\n * Returns a new list with a sub set of the items within this Array,\r\n * where the items are only uniquely listed once\r\n */\r\nObject.defineProperty(Array.prototype, \"distinct\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function () {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n result.safePush(this[i]);\r\n }\r\n\r\n return result;\r\n }\r\n});\r\n\r\n/**\r\n * Returns a new list with all of the items within this Array\r\n */\r\nObject.defineProperty(Array.prototype, \"clone\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function () {\r\n return this.slice();\r\n }\r\n});\r\n\r\n/**\r\n * Removes an n-amount of items from an Array.\r\n */\r\nObject.defineProperty(Array.prototype, \"remove\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function () {\r\n var argument = null,\r\n foundIndex = -1;\r\n\r\n for (var i = 0, l = arguments.length; i < l; i++) {\r\n argument = arguments[i];\r\n foundIndex = this.indexOf(argument);\r\n\r\n if (foundIndex !== -1) {\r\n this.splice(foundIndex, 1);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n});\r\n\r\n/**\r\n * Removes a single element from the array\r\n */\r\nObject.defineProperty(Array.prototype, \"removeOne\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (i, findIndex) {\r\n if (findIndex) {\r\n i = this.indexOf(i);\r\n }\r\n\r\n if (i !== -1) {\r\n this.splice(i, 1);\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Removes a multiple elements from the array\r\n */\r\nObject.defineProperty(Array.prototype, \"removeMany\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (array, findIndex) {\r\n var item = null,\r\n index = -1;\r\n for (var i = 0, l = array.length; i < l; i++) {\r\n item = array[i];\r\n if (findIndex === true) {\r\n index = this.indexOf(item);\r\n }\r\n\r\n if (index !== -1) {\r\n this.splice(index, 1);\r\n }\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Returns the indexes of all occurrences\r\n */\r\nObject.defineProperty(Array.prototype, \"indexesOf\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (item) {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n if (this[i] === item) {\r\n result.push(i);\r\n }\r\n }\r\n return result;\r\n }\r\n});\r\n\r\n/**\r\n * Returns all keys in the array\r\n */\r\nObject.defineProperty(Array.prototype, \"keysArray\", {\r\n enumerable: false,\r\n get: function () {\r\n var keys = [],\r\n i = 0;\r\n // tslint:disable-next-line:no-empty\r\n for (keys[i++] in this) {\r\n }\r\n return keys;\r\n }\r\n});\r\n\r\n/**\r\n * Given method returns true for all elements in the array\r\n */\r\nObject.defineProperty(Array.prototype, \"all\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (func) {\r\n var result = true;\r\n for (var i = 0; i < this.length; i++) {\r\n result = result && func(this[i]);\r\n }\r\n return result;\r\n }\r\n});\r\n\r\n/**\r\n * Check if two arrays contain exactly the same values - does not work with multi-dimensional arrays.\r\n */\r\nObject.defineProperty(Array.prototype, \"isEqualTo\", {\r\n enumerable: false,\r\n value: function (contains) {\r\n var isEqual = false;\r\n if (this.length === contains.length) {\r\n isEqual = true;\r\n\r\n for (var i = 0, l = contains.length; i < l; i++) {\r\n if (this.indexOf(contains[i]) === -1) {\r\n isEqual = false;\r\n break;\r\n }\r\n }\r\n }\r\n return isEqual;\r\n }\r\n});\r\n\r\n/**\r\n * Concat two arrays and ensure no duplicates are added. Considerably faster than doing concat() then distinct().\r\n */\r\nObject.defineProperty(Array.prototype, \"distinctConcat\", {\r\n enumerable: false,\r\n /**\r\n * @param {Array} arrayToMerge\r\n * @returns {Array}\r\n */\r\n value: function (arrayToMerge) {\r\n var mergedResult = this.slice(),\r\n item;\r\n for (var i = 0, l = arrayToMerge.length; i < l; i++) {\r\n item = arrayToMerge[i];\r\n if (mergedResult.indexOf(item) === -1) {\r\n mergedResult.push(item);\r\n }\r\n }\r\n return mergedResult;\r\n }\r\n});\r\n\r\n/**\r\n * Join two arrays which contain objects where values of a selected property are unique\r\n */\r\nObject.defineProperty(Array.prototype, \"uniquePropertyConcat\", {\r\n enumerable: false,\r\n /**\r\n * @param {Array} arrayToMerge\r\n * @param {string} property - Object property key\r\n * @returns {Array}\r\n */\r\n value: function (arrayToMerge, property) {\r\n const merged = [];\r\n const values = [];\r\n\r\n //Cache the properties\r\n for (let i = 0; i < this.length; i++) {\r\n let item = this[i];\r\n merged.push(item);\r\n values.push(item[property]);\r\n }\r\n\r\n //Check if the value of a property exists in the other array\r\n for (let i = 0; i < arrayToMerge.length; i++) {\r\n let item = arrayToMerge[i];\r\n\r\n //If the value is unique add to the merged array\r\n if (values.indexOf(item[property]) === -1) {\r\n merged.push(item);\r\n }\r\n }\r\n\r\n return merged;\r\n }\r\n});\r\n\r\n/**\r\n * Removes items from an array where they are found in a compared array.\r\n */\r\nObject.defineProperty(Array.prototype, \"removeItems\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (toRemove) {\r\n var item, index;\r\n for (var i = 0, l = toRemove.length; i < l; i++) {\r\n item = toRemove[i];\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((index = this.indexOf(item)) !== -1) {\r\n this.splice(index, 1);\r\n }\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Removes items from an array where they are found in a compared array.\r\n */\r\nObject.defineProperty(Array.prototype, \"removeItemsByObjectKey\", {\r\n enumerable: false,\r\n writable: true,\r\n /**\r\n * @param {Array} toRemove\r\n * @param {string} keyName\r\n * @returns {Array}\r\n */\r\n value: function (toRemove, keyName) {\r\n var item,\r\n resultArr = [],\r\n isInArray;\r\n\r\n for (var i = 0, l = this.length; i < l; i++) {\r\n isInArray = false;\r\n item = this[i];\r\n for (var j = 0, len = toRemove.length; j < len; j++) {\r\n if (toRemove[j].hasOwnProperty(keyName) && item.hasOwnProperty(keyName) && toRemove[j][keyName] === item[keyName]) {\r\n isInArray = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!isInArray) {\r\n resultArr.push(item);\r\n }\r\n }\r\n\r\n return resultArr;\r\n }\r\n});\r\n\r\n/**\r\n * Checks if a property on an object inside of an array exists.\r\n */\r\nObject.defineProperty(Array.prototype, \"findInNestedObject\", {\r\n enumerable: false,\r\n writable: true,\r\n /**\r\n * @param {string} property\r\n * @param value\r\n * @returns {number} - Found = > 0, Not found = -1\r\n */\r\n value: function (property, value) {\r\n var item;\r\n for (var i = 0, l = this.length; i < l; i++) {\r\n item = this[i];\r\n if (item[property] === value) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n});\r\n\r\nObject.defineProperty(Array.prototype, \"findInNestedObjectsRecursively\", {\r\n enumerable: false,\r\n writable: true,\r\n /**\r\n * @param {string} property\r\n * @param value\r\n * @param {string} nestedArrayKey\r\n * @param {string} typeKey\r\n * @param nestedType\r\n * @returns {Object|null}\r\n */\r\n value: function (property, value, nestedArrayKey, typeKey, nestedType) {\r\n var match = null;\r\n for (var i = 0, l = this.length, item; i < l; i++) {\r\n item = this[i];\r\n if (item[property] === value) {\r\n match = item;\r\n break;\r\n } else if (!typeKey || item[typeKey] === nestedType) {\r\n match = item[nestedArrayKey].findInNestedObjectsRecursively(property, value, nestedArrayKey, typeKey, nestedType);\r\n if (match) {\r\n break;\r\n }\r\n }\r\n }\r\n return match;\r\n }\r\n});\r\n\r\n/**\r\n * Returns an array of values based off keys found within a nested object\r\n */\r\nObject.defineProperty(Array.prototype, \"getValuesFromNestedKeys\", {\r\n enumerable: false,\r\n writable: true,\r\n /**\r\n * @param {string} property\r\n * @returns {Array}\r\n */\r\n value: function (property) {\r\n var found = [],\r\n item;\r\n for (var i = 0, l = this.length; i < l; i++) {\r\n item = this[i];\r\n if (item[property] !== undefined) {\r\n found.push(item[property]);\r\n }\r\n }\r\n return found;\r\n }\r\n});\r\n\r\n/**\r\n * Returns the sum of the values in an array\r\n */\r\nObject.defineProperty(Array.prototype, \"sumValues\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function () {\r\n return this.reduce(function (prev, current) {\r\n return parseInt(current, 10) + prev;\r\n }, 0);\r\n }\r\n});\r\n\r\n/**\r\n * Randomises the order of an array\r\n */\r\nObject.defineProperty(Array.prototype, \"randomiseOrder\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function () {\r\n for (var i = this.length - 1; i > 0; i--) {\r\n var j = Math.floor(Math.random() * (i + 1));\r\n var temp = this[i];\r\n this[i] = this[j];\r\n this[j] = temp;\r\n }\r\n\r\n return this;\r\n }\r\n});\r\n\r\n/**\r\n * Gets the next item from the array, looping back to the beginning if it reaches the end\r\n */\r\nObject.defineProperty(Array.prototype, \"getNextItem\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (currentItem) {\r\n var nextItem = this[0];\r\n var currentPos = this.indexOf(currentItem);\r\n\r\n if (currentPos + 1 < this.length) {\r\n nextItem = this[currentPos + 1];\r\n }\r\n\r\n return nextItem;\r\n }\r\n});\r\n\r\n//Polyfills!\r\n//------------------------------------------------------------------------------------------------------------------\r\nif (!Array.prototype.findIndex) {\r\n /**\r\n * Returns the index of the first element which satisfies a passed testing function.\r\n * Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex\r\n * Support for ES6 version: >= Chrome 45, >= FF 25, Edge, >= Opera 32, >= Safari 7.1 - NO IE support\r\n */\r\n Object.defineProperty(Array.prototype, \"findIndex\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (evaluator) {\r\n for (var i = 0, l = this.length; i < l; i++) {\r\n if (evaluator(this[i], i, this)) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n });\r\n}\r\n\r\nif (!Array.prototype.find) {\r\n /**\r\n * Returns the value of the first element which satisfies a passed testing function.\r\n * Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\r\n * Support for ES6 version: >= Chrome 45, >= FF 25, >= Edge 12, >= Opera 32, >= Safari 7.1 - NO IE support\r\n */\r\n Object.defineProperty(Array.prototype, \"find\", {\r\n enumerable: false,\r\n writable: true,\r\n value: function (evaluator) {\r\n //In keeping with the full version, if no value is found 'undefined' is returned. :/\r\n return this[this.findIndex(evaluator)];\r\n }\r\n });\r\n}\r\n\r\nif (!Array.prototype.includes) {\r\n Object.defineProperty(Array.prototype, \"includes\", {\r\n enumerable: false,\r\n writable: true,\r\n value: Array.prototype.contains\r\n });\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../clickAndDisable/directives/clickAndDisable.directive\";\r\nimport template from \"./templates/external-contact.html\";\r\n\r\nangularAMD.directive(\"externalContact\", [\r\n \"$sce\",\r\n \"$rootScope\",\r\n \"baseUrlsFactory\",\r\n \"$http\",\r\n function ($sce, $rootScope, baseUrlsFactory, $http) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n externalUserData: \"=\",\r\n showOrg: \"=\",\r\n showRole: \"=\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n //create-contact-or-external=\"external\"\r\n $scope.contact_or_external = $attrs.createContactOrExternal === \"external\" ? \"external\" : \"contact\";\r\n }\r\n ],\r\n link: function (scope, element, attrs) {\r\n scope.multiLanguageService = $rootScope.multiLanguageService;\r\n scope.helpLink = \"#/learningCentre?type=privacyAndSharingInDepth\";\r\n var email_confirmation_el = document.getElementById(\"externalContactConfirmationEmail\");\r\n scope.externalUserData = {};\r\n scope.showEmailError = false;\r\n\r\n scope.saveContact = function () {\r\n if (\r\n !scope.externalUserData.firstName ||\r\n !scope.externalUserData.secondName ||\r\n (scope.showOrg && !scope.externalUserData.organisation) ||\r\n (scope.showRole && !scope.externalUserData.role) ||\r\n !scope.externalUserData.email ||\r\n !scope.externalUserData.emailConfirmation\r\n ) {\r\n return;\r\n }\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.externalUserData.firstName != \"\" && scope.externalUserData.secondName != \"\" && scope.externalUserData.email != \"\") {\r\n if (!/.+@.+\\..+/.test(scope.externalUserData.email)) {\r\n scope.showEmailInvalid = true;\r\n return;\r\n }\r\n scope.showEmailInvalid = false;\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.externalUserData.email == scope.externalUserData.emailConfirmation) {\r\n if (scope.contact_or_external === \"external\") {\r\n return $http.post(baseUrlsFactory.api_base_url + \"FindUser/CreateExternalUser\", scope.externalUserData).then(function (response) {\r\n response.data.IsExternal = true;\r\n scope.$emit(\"newContactAdded\", response.data);\r\n scope.closeExternalForm();\r\n });\r\n } else {\r\n return $http.post(baseUrlsFactory.api_base_url + \"FindUser/CreateContactUser\", scope.externalUserData).then(function (response) {\r\n response.data.IsExternal = false;\r\n scope.$emit(\"newContactAdded\", response.data);\r\n scope.closeExternalForm();\r\n });\r\n }\r\n } else {\r\n if (scope.externalUserData.emailConfirmation) {\r\n //if emailConfirmation is not undefined(is undefined when it doesn't meet requirements) leave 'email have to match' message and focus field the field for the user.\r\n scope.showEmailError = true;\r\n if (email_confirmation_el) {\r\n email_confirmation_el.focus();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n scope.closeExternalForm = function () {\r\n scope.$emit(\"closeExternalForm\", {});\r\n //clear out form\r\n setupExternalUserData();\r\n };\r\n\r\n scope.$watchCollection(\"externalUserData\", function (newVal, oldVal) {\r\n scope.showEmailError = true;\r\n scope.showEmailInvalid = false;\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (newVal.emailConfirmation == \"\" || newVal.emailConfirmation == undefined) {\r\n scope.showEmailError = false;\r\n // tslint:disable-next-line:triple-equals\r\n } else if (newVal.email == undefined || newVal.email == \"\") {\r\n scope.showEmailError = false;\r\n } else {\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.externalUserData.email != undefined) {\r\n if (scope.externalUserData.email.indexOf(newVal.emailConfirmation) > -1) {\r\n //check from start to end to make sure that the match is from index 0 and not just a string match within the email text\r\n var validMatch = true;\r\n for (var i = 0; i < newVal.emailConfirmation.length; i++) {\r\n if (newVal.emailConfirmation.substring(i, 1) !== scope.externalUserData.email.substring(i, 1)) {\r\n validMatch = false;\r\n break;\r\n }\r\n }\r\n if (validMatch) {\r\n scope.showEmailError = false;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n var setupExternalUserData = function () {\r\n scope.externalUserData.firstName = \"\";\r\n scope.externalUserData.secondName = \"\";\r\n scope.externalUserData.email = \"\";\r\n scope.externalUserData.emailConfirmation = \"\";\r\n scope.externalUserData.organisation = \"\";\r\n scope.externalUserData.role = \"\";\r\n };\r\n\r\n setupExternalUserData();\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
{{::multiLanguageService.getString('external_contact.error')}}
{{::multiLanguageService.getString('external_contact.invalid')}}
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../assetEndpointService/assetEndpoint.service\";\r\n\r\nexport class FeatureSettings {\r\n constructor(assetEndpointService) {\r\n this._assetEndpointService = assetEndpointService;\r\n this._settings = new Map();\r\n this._activeRequest = null;\r\n }\r\n\r\n isEnabled(settingName) {\r\n const setting = this._settings.get(settingName);\r\n return setting !== undefined && setting;\r\n }\r\n\r\n load() {\r\n if (this._activeRequest !== null) {\r\n return this._activeRequest;\r\n }\r\n\r\n this._activeRequest = this._assetEndpointService.getFeaturesState().then((response) => {\r\n this._settings.clear();\r\n Object.entries(response.data).forEach(([k, v]) => this._settings.set(k, v));\r\n this._activeRequest = null;\r\n });\r\n\r\n return this._activeRequest;\r\n }\r\n}\r\n\r\nFeatureSettings.serviceName = \"featureSettings\";\r\n\r\nFeatureSettings.$inject = [\"AssetEndpointService\"];\r\nangularAMD.service(FeatureSettings.serviceName, FeatureSettings);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../modal/services/modal\";\r\nimport \"../../utilities/helpers\";\r\n\r\nFeedbackInputHelper.$inject = [\"$rootScope\", \"multiLanguageService\", \"modal\", \"baseUrlsFactory\", \"helpers\"];\r\n\r\nfunction FeedbackInputHelper($rootScope, multiLanguageService, modal, baseUrlsFactory, helpers) {\r\n this.$rootScope = $rootScope;\r\n this.multiLanguageService = multiLanguageService;\r\n this.baseUrlsFactory = baseUrlsFactory;\r\n this.helpers = helpers;\r\n this.modal = modal;\r\n}\r\n\r\nFeedbackInputHelper.prototype.launchInvalidModal = function (message, title) {\r\n const templateUrl = `${this.baseUrlsFactory.shared_component_base_url}spaMenu/okmessage.lazy.html`;\r\n const modalProps = {\r\n title: title,\r\n confirmMessage: message,\r\n okButton: this.multiLanguageService.getString(\"buttons.confirm\"),\r\n okButtonTitle: this.multiLanguageService.getString(\"buttons.generic.popup\")\r\n };\r\n\r\n return this.modal.launch(templateUrl, modalProps);\r\n};\r\n\r\nFeedbackInputHelper.prototype.launchCancelModal = function (cancelFn) {\r\n const templateUrl = `${this.baseUrlsFactory.shared_component_base_url}modalDialogComponent/templates/generic-pop-up-with-buttons.lazy.html`;\r\n const modalProps = {\r\n title: this.multiLanguageService.getString(\"sidebar.asset_feedback.labels.discard_changes_label\"),\r\n message: this.multiLanguageService.getString(\"sidebar.asset_feedback.messages.discard_draft_feedback_message\"),\r\n okay_button_label: this.multiLanguageService.getString(\"buttons.back_feedback\"),\r\n cancel_button_label: this.multiLanguageService.getString(\"buttons.exit_without_saving\"),\r\n on_okay_fn: () => {\r\n return;\r\n },\r\n on_cancel_fn: () => {\r\n cancelFn();\r\n }\r\n };\r\n\r\n return this.modal.launch(templateUrl, modalProps);\r\n};\r\n\r\nangularAMD.service(\"FeedbackInputHelper\", FeedbackInputHelper);\r\nexport { FeedbackInputHelper };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSET_CONSTANTS } from \"../constants/asset.constants\";\r\nimport \"../spaMenu/assetInfoPanel/assetFeedback/helpers/SubmissionPermissionHelper\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../builder/dataManager/dataManagerService\";\r\n\r\nexport class FeedbackLeftOnService {\r\n constructor(submissionPermissionHelper, multiLanguageService, dataManagerService) {\r\n this._submissionPermissionHelper = submissionPermissionHelper;\r\n this._multiLanguageService = multiLanguageService;\r\n this._dataManagerService = dataManagerService;\r\n this._containerAssetTypes = [ASSET_CONSTANTS.TYPES.WEBFOLIO, ASSET_CONSTANTS.TYPES.WORKBOOK_RESPONSE, ASSET_CONSTANTS.TYPES.WORKBOOK];\r\n }\r\n\r\n getLeftOnAssetInfo(assetId, pageId = null, anchorId = null) {\r\n const manager = this._dataManagerService.getDto(assetId);\r\n const isSubmissionAsset = assetId === this._submissionPermissionHelper.getSubmissionsMainAssetId();\r\n\r\n if ((isSubmissionAsset && pageId === null) || manager === null || manager === undefined) {\r\n return {\r\n leaveFeedbackOnAssetId: \"\",\r\n pageName: \"\",\r\n isContainerAsset: false,\r\n isLinkedAsset: false\r\n };\r\n }\r\n\r\n const isStandaloneAsset = !this._containerAssetTypes.includes(manager.data.MainType);\r\n if (!isSubmissionAsset && pageId === null && (anchorId === null || isStandaloneAsset)) {\r\n return this._getInfoForLinkedAsset(assetId, manager);\r\n }\r\n\r\n const currentPage = manager.get(pageId, false);\r\n return this._getInfoForPage(currentPage, !isStandaloneAsset, !isSubmissionAsset);\r\n }\r\n\r\n _getInfoForLinkedAsset(assetId, manager) {\r\n const linkedTitle = manager && manager.data && manager.data.Title ? manager.data.Title : this._multiLanguageService.getString(\"sidebar.asset_feedback.left_on_choice.linked_asset\");\r\n return {\r\n leaveFeedbackOnAssetId: assetId,\r\n pageName: linkedTitle,\r\n isContainerAsset: false,\r\n isLinkedAsset: true\r\n };\r\n }\r\n\r\n _getInfoForPage(page, isContainerAsset, isLinkedAsset) {\r\n return {\r\n leaveFeedbackOnAssetId: page.UserResponseId || page.PageAssetId,\r\n pageName: page.PageTitle || this._multiLanguageService.getString(\"sidebar.asset_feedback.left_on_choice.linked_asset\"),\r\n isContainerAsset: isContainerAsset,\r\n isLinkedAsset: isLinkedAsset\r\n };\r\n }\r\n}\r\n\r\nFeedbackLeftOnService.$inject = [\"SubmissionPermissionHelper\", \"multiLanguageService\", \"dataManagerService\"];\r\nangularAMD.service(\"feedbackLeftOnService\", FeedbackLeftOnService);\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./approval-status.html\";\r\n\r\nclass ApprovalStatus extends NgComponent {\r\n constructor(standardsOverviewService) {\r\n super();\r\n\r\n this.status = standardsOverviewService.getStatusInfo(this.item.Status, this.item.Recalled, this.item.Released);\r\n }\r\n}\r\n\r\nexport const approvalStatusDefinition = {\r\n bindings: {\r\n item: \"<\"\r\n },\r\n template: template,\r\n controller: ApprovalStatus\r\n};\r\n\r\nApprovalStatus.$inject = [\"standardsOverviewService\"];\r\nangularAMD.component(\"approvalStatus\", approvalStatusDefinition);\r\n","export default `

{{::$ctrl.status.text}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport template from \"./release-status.html\";\r\n\r\nvar releaseStatusDefinition = {\r\n bindings: {\r\n released: \"<\"\r\n },\r\n template: template,\r\n controller: ReleaseStatus\r\n};\r\n\r\nReleaseStatus.$inject = [\"multiLanguageService\"];\r\nfunction ReleaseStatus(multiLanguageService) {\r\n this._multiLanguageService = multiLanguageService;\r\n this.feedbackReleasedText = this._multiLanguageService.getString(\"sidebar.asset_feedback.released\");\r\n this.feedbackUnreleasedText = this._multiLanguageService.getString(\"sidebar.asset_feedback.feedback_unreleased\");\r\n}\r\n\r\nangularAMD.component(\"releaseStatus\", releaseStatusDefinition);\r\nexport { releaseStatusDefinition as releaseStatus };\r\n","export default `
{{::$ctrl.feedbackUnreleasedText}}
{{::$ctrl.feedbackReleasedText}}
`;","import { ACTION_CONSTANTS } from \"../constants/action.constants\";\r\n\r\nclass ObservableList {\r\n constructor(listArray, comparator = this._defaultComparator) {\r\n this._subscriptions = [];\r\n this.listArray = listArray;\r\n this._comparator = comparator;\r\n }\r\n\r\n subscribe(observer) {\r\n this._subscriptions.push(observer);\r\n }\r\n\r\n unsubscribe(observer) {\r\n for (let i = 0; i < this._subscriptions.length; i++) {\r\n if (this._subscriptions[i] === observer) {\r\n this._subscriptions.splice(i, 1);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n add(...items) {\r\n this.listArray.push(...items);\r\n this._update({ action: ACTION_CONSTANTS.ADD, items: items });\r\n }\r\n\r\n remove(item) {\r\n for (let i = 0; i < this.listArray.length; i++) {\r\n if (this._comparator(this.listArray[i], item)) {\r\n this.listArray.splice(i, 1);\r\n this._update({ action: ACTION_CONSTANTS.DELETE, item: item });\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n replace(oldItem, newItem) {\r\n for (let i = 0; i < this.listArray.length; i++) {\r\n if (this._comparator(this.listArray[i], oldItem)) {\r\n this.listArray.splice(i, 1, newItem);\r\n this._update({\r\n action: ACTION_CONSTANTS.EDIT,\r\n oldItem: oldItem,\r\n newItem: newItem\r\n });\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n merge(dataSet) {\r\n const newItems = dataSet.filter((item) => !this.listArray.some((listItem) => this._comparator(listItem, item)));\r\n this.add(...newItems);\r\n }\r\n\r\n _update(changes) {\r\n this._subscriptions.forEach((subscription) => {\r\n subscription(changes);\r\n });\r\n }\r\n\r\n _defaultComparator(a, b) {\r\n return a === b;\r\n }\r\n}\r\n\r\nexport { ObservableList };\r\n","import { first } from \"@pjs/observables\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { AbortablePromiseChain } from \"../abortablePromises/AbortablePromiseChain\";\r\n/**\r\n * @callback to$AbortablePromise\r\n * @template T\r\n * @param {Observable} observable\r\n * @return AbortablePromiseLike\r\n */\r\n\r\n/**\r\n * @param $q\r\n * @return to$AbortablePromise\r\n */\r\nfunction to$AbortablePromiseFactory($q) {\r\n return (observable) => {\r\n const deferred = $q.defer();\r\n const subscription = observable.pipe(first()).subscribe({\r\n next: deferred.resolve,\r\n error: deferred.reject\r\n });\r\n\r\n return new AbortablePromiseChain(deferred.promise, {\r\n _isAborted: false,\r\n abort() {\r\n this._isAborted = true;\r\n subscription.unsubscribe();\r\n },\r\n isAborted() {\r\n return this._isAborted;\r\n }\r\n });\r\n };\r\n}\r\n\r\nto$AbortablePromiseFactory.$inject = [\"$q\"];\r\nangularAMD.factory(\"to$AbortablePromise\", to$AbortablePromiseFactory);\r\n","import { ASSESSMENT_CONSTANTS } from \"../../constants/assessment.constants\";\r\nimport { FEEDBACK_ERRORS } from \"../../constants/feedbackErrors.constants\";\r\nimport { ObservableList } from \"../../observer/observableList\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { AbortablePromiseSet } from \"../../abortablePromises/AbortablePromiseSet\";\r\nimport { from$Promise } from \"../../observables/From$Promise.function\";\r\nimport \"../../observables/To$AbortablePromise.factory\";\r\nimport \"../../spaMenu/assetInfoPanel/assetFeedback/assetFeedbackService\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../modal/services/modal\";\r\n\r\nclass FeedbackDataService {\r\n constructor($timeout, $q, assetFeedbackService, multiLanguageService, modal, baseUrlsFactory, to$AbortablePromise) {\r\n this.feedbackInstructions = new Map();\r\n this.mostRecentFlags = [true, undefined];\r\n\r\n this._$q = $q;\r\n this._$timeout = $timeout;\r\n this._assetFeedbackService = assetFeedbackService;\r\n this._multiLanguageService = multiLanguageService;\r\n this._modal = modal;\r\n this._baseUrlsFactory = baseUrlsFactory;\r\n this._to$AbortablePromise = to$AbortablePromise;\r\n\r\n this._observables = {};\r\n this._pendingGetAllRequests = new Map();\r\n this._maxRetries = 30;\r\n this._abortablePromiseSet = new AbortablePromiseSet();\r\n this._pollingTimeouts = [];\r\n }\r\n\r\n setObservable(assetId, list) {\r\n return (this._observables[assetId] = new ObservableList(list, (a, b) => a.Id === b.Id));\r\n }\r\n\r\n setFeedbackInstructions(assetId, instructions) {\r\n this.feedbackInstructions.set(assetId, instructions);\r\n }\r\n\r\n getObservable(assetId) {\r\n return this._observables[assetId];\r\n }\r\n\r\n getFeedbackInstructions(assetId) {\r\n let feedbackInstructions = this.feedbackInstructions.get(assetId);\r\n return feedbackInstructions !== undefined && feedbackInstructions !== \"\" ? feedbackInstructions : \"\";\r\n }\r\n\r\n getObservableAsync(assetId) {\r\n if (this._observables[assetId] !== undefined) {\r\n return this._$q.when(this._observables[assetId]);\r\n }\r\n\r\n return this._assetFeedbackService.getFeedback(assetId, \"\").then((response) => {\r\n if (response.data.FeedbackInstructions !== null && response.data.FeedbackInstructions !== \"\") {\r\n this.setFeedbackInstructions(assetId, response.data.FeedbackInstructions);\r\n }\r\n this.setObservable(assetId, response.data.FeedbackItems);\r\n return this._observables[assetId];\r\n });\r\n }\r\n\r\n updateMostRecentFlagsForBlockFeedback(assetId) {\r\n if (this._canObserve(assetId)) {\r\n this._calculateMostRecentFlags(this._observables[assetId].listArray);\r\n }\r\n }\r\n\r\n createOrUpdateObservable(mainAssetId, anchorId = \"\") {\r\n if (this._pendingGetAllRequests.has(mainAssetId)) {\r\n return this._to$AbortablePromise(this._pendingGetAllRequests.get(mainAssetId));\r\n }\r\n\r\n const abortableStream = from$Promise(\r\n this._assetFeedbackService\r\n .getFeedback(mainAssetId, \"\", anchorId)\r\n .then((response) => this._updateFeedbackData(mainAssetId, response.data.FeedbackItems, response.data.FeedbackInstructions)),\r\n () => this._pendingGetAllRequests.delete(mainAssetId)\r\n );\r\n\r\n this._pendingGetAllRequests.set(mainAssetId, abortableStream);\r\n return this._to$AbortablePromise(abortableStream);\r\n }\r\n\r\n createOrUpdateObservableFromPage(mainAssetId, pageAssetId) {\r\n if (this._pendingGetAllRequests.has(mainAssetId)) {\r\n return this._to$AbortablePromise(this._pendingGetAllRequests.get(mainAssetId));\r\n }\r\n\r\n return this._assetFeedbackService.getFeedback(mainAssetId, pageAssetId, \"\").then((response) => {\r\n this._updateFeedbackData(mainAssetId, response.data.FeedbackItems, null);\r\n });\r\n }\r\n\r\n _updateFeedbackData(assetId, feedbackItems, feedbackInstructions) {\r\n const observableList = this.getObservable(assetId);\r\n\r\n if (feedbackInstructions !== null && feedbackInstructions !== \"\") {\r\n this.setFeedbackInstructions(assetId, feedbackInstructions);\r\n }\r\n\r\n if (observableList === undefined) {\r\n const modifiedFeedback = this._calculateMostRecentFlags(feedbackItems);\r\n this.setObservable(assetId, modifiedFeedback);\r\n\r\n return;\r\n }\r\n\r\n const combinedDataSet = observableList.listArray.concat(feedbackItems);\r\n const modifiedFeedback = this._calculateMostRecentFlags(combinedDataSet);\r\n observableList.merge(modifiedFeedback);\r\n }\r\n\r\n subscribe(assetId, observer) {\r\n if (this._canObserve(assetId)) {\r\n this._observables[assetId].subscribe(observer);\r\n }\r\n }\r\n\r\n unsubscribe(assetId, observer) {\r\n if (this._canObserve(assetId)) {\r\n this._observables[assetId].unsubscribe(observer);\r\n }\r\n }\r\n\r\n add(assetId, submissionId, newFeedbackItem) {\r\n const deferred = this._$q.defer();\r\n if (this._canObserve(assetId)) {\r\n this._assetFeedbackService\r\n .addFeedback(newFeedbackItem)\r\n .then((response) => {\r\n const feedbackData = response.data;\r\n feedbackData.Pending = true;\r\n this._observables[assetId].add(feedbackData);\r\n this._pollReleasedStatus(assetId, feedbackData, submissionId, 0);\r\n deferred.resolve();\r\n })\r\n .catch((error) => {\r\n this.evaluateError(error, \"save\");\r\n deferred.reject();\r\n });\r\n } else {\r\n deferred.reject();\r\n }\r\n\r\n return deferred.promise;\r\n }\r\n\r\n saveMultiple(assetId, submissionId, newFeedbackItems, pageId, feedbackType) {\r\n if (!this._canObserve(assetId)) {\r\n return this._$q.reject();\r\n }\r\n\r\n return this._assetFeedbackService\r\n .saveMultipleFeedback(newFeedbackItems, feedbackType, assetId, submissionId)\r\n .then((response) => {\r\n this._addOrUpdateFeedback(assetId, submissionId, newFeedbackItems, response.data, pageId);\r\n })\r\n .catch((error) => {\r\n if (error.data !== undefined && error.data !== null && error.data.Failures !== undefined && error.data.Successes !== undefined) {\r\n this._addOrUpdateFeedback(assetId, submissionId, newFeedbackItems, error.data.Successes, pageId);\r\n this.evaluateError(error, \"save_partial\");\r\n return this._$q.reject(error);\r\n } else {\r\n this.evaluateError(error, \"save\");\r\n return this._$q.reject();\r\n }\r\n });\r\n }\r\n\r\n remove(assetId, item) {\r\n const deferred = this._$q.defer();\r\n if (this._canObserve(assetId)) {\r\n const newFeedbackItem = { ...item, Pending: true };\r\n this._observables[assetId].replace(item, newFeedbackItem);\r\n\r\n this._assetFeedbackService\r\n .deleteFeedback(item.AssetId, item.Id)\r\n .then(() => {\r\n this._observables[assetId].remove(newFeedbackItem);\r\n deferred.resolve();\r\n })\r\n .catch((error) => {\r\n this._observables[assetId].replace(newFeedbackItem, item);\r\n this.evaluateError(error, \"delete\");\r\n });\r\n } else {\r\n deferred.reject();\r\n }\r\n\r\n return deferred.promise;\r\n }\r\n\r\n replace(assetId, newFeedbackItem, oldFeedbackItem) {\r\n const deferred = this._$q.defer();\r\n if (this._canObserve(assetId)) {\r\n this._assetFeedbackService\r\n .editFeedback(newFeedbackItem)\r\n .then((response) => {\r\n const feedbackData = response.data;\r\n feedbackData.Pending = true;\r\n\r\n this._observables[assetId].replace(oldFeedbackItem, feedbackData);\r\n this._pollReleasedStatus(assetId, feedbackData, oldFeedbackItem.SubmissionId, 0);\r\n deferred.resolve();\r\n })\r\n .catch((error) => {\r\n this.evaluateError(error, \"update\");\r\n deferred.reject();\r\n });\r\n } else {\r\n deferred.reject();\r\n }\r\n\r\n return deferred.promise;\r\n }\r\n\r\n updateReleasedStatus(assetId, feedbackItem, newFeedbackItem) {\r\n if (this._canObserve(assetId)) {\r\n this._observables[assetId].replace(feedbackItem, newFeedbackItem);\r\n return this._assetFeedbackService\r\n .editFeedback(newFeedbackItem)\r\n .then((response) => {\r\n newFeedbackItem.Pending = true;\r\n this._pollReleasedStatus(assetId, newFeedbackItem, feedbackItem.SubmissionId, 0);\r\n })\r\n .catch((error) => {\r\n this.evaluateError(error, \"released_status\");\r\n this._observables[assetId].replace(newFeedbackItem, feedbackItem);\r\n return this._$q.reject();\r\n });\r\n }\r\n return this._$q.reject();\r\n }\r\n\r\n /**\r\n * Method looks for first matching feedbackItem with a `MostRecentForElementId:true`.\r\n * If no match found it returns undefined\r\n * @param assetId {string}\r\n * @param anchorId {string}\r\n * @param excludeRecalled {boolean}\r\n * @param [pageAssetId] {string|null}\r\n * @returns {undefined|FeedbackItem}\r\n */\r\n getMostRecentElementFeedback(assetId, anchorId, excludeRecalled, pageAssetId = null) {\r\n if (this._canObserve(assetId)) {\r\n const observable = this._observables[assetId];\r\n\r\n return observable.listArray.find((feedback) => {\r\n if (feedback.AnchorId === anchorId && feedback.AssetId === pageAssetId && !(excludeRecalled && feedback.Recalled) && this.mostRecentFlags.contains(feedback.MostRecentForElementId)) {\r\n return feedback;\r\n }\r\n });\r\n }\r\n\r\n return;\r\n }\r\n\r\n getElementFeedback(assetId, anchorId, pageAssetId) {\r\n if (this._canObserve(assetId)) {\r\n const observable = this._observables[assetId];\r\n\r\n return observable.listArray.filter((feedback) => feedback.AnchorId === anchorId && feedback.AssetId === pageAssetId);\r\n }\r\n return [];\r\n }\r\n\r\n clearFeedbackInstructions() {\r\n this.feedbackInstructions.clear();\r\n }\r\n\r\n stopPolling() {\r\n this._abortablePromiseSet.abortAll();\r\n\r\n for (const timeout of this._pollingTimeouts) {\r\n this._$timeout.cancel(timeout);\r\n }\r\n this._pollingTimeouts.length = 0;\r\n }\r\n\r\n _addOrUpdateFeedback(assetId, submissionId, newFeedbackItems, feedbackData, pageId) {\r\n const newAnchorIds = newFeedbackItems.reduce((result, feedback) => {\r\n if (feedback.Id === undefined) {\r\n result.push(feedback.AnchorId);\r\n }\r\n return result;\r\n }, []);\r\n\r\n for (const feedback of feedbackData) {\r\n feedback.Pending = true;\r\n\r\n if (newAnchorIds.includes(feedback.AnchorId)) {\r\n this._observables[assetId].add(feedback);\r\n } else {\r\n const oldFeedbackItem = this.getMostRecentElementFeedback(assetId, feedback.AnchorId, false, pageId);\r\n this._observables[assetId].replace(oldFeedbackItem, feedback);\r\n }\r\n this._pollReleasedStatus(assetId, feedback, submissionId, 0);\r\n }\r\n }\r\n\r\n _calculateMostRecentFlags(feedbackItems) {\r\n feedbackItems.forEach((feedbackItem) => {\r\n let mostRecent = false;\r\n const assetId = feedbackItem.AssetId;\r\n\r\n if (feedbackItem.AnchorId !== null) {\r\n mostRecent = this._isFeedbackMostRecent(feedbackItems, feedbackItem, assetId);\r\n }\r\n\r\n feedbackItem.MostRecentForElementId = mostRecent;\r\n });\r\n\r\n const capabilityApprovals = feedbackItems.filter((feedbackItem) => feedbackItem.FeedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.CAPABILITY);\r\n capabilityApprovals.forEach((feedbackItem) => {\r\n feedbackItem.MostRecentApproval = this._isFeedbackMostRecent(capabilityApprovals, feedbackItem, feedbackItem.AssetId);\r\n });\r\n\r\n return feedbackItems;\r\n }\r\n\r\n _isFeedbackMostRecent(feedbackItems, feedbackItem, assetId) {\r\n return !feedbackItems.some((subFeedbackItem) => {\r\n return (\r\n feedbackItem.Id !== subFeedbackItem.Id && feedbackItem.AnchorId === subFeedbackItem.AnchorId && assetId === subFeedbackItem.AssetId && feedbackItem.Modified < subFeedbackItem.Modified\r\n );\r\n });\r\n }\r\n\r\n evaluateError(error, error_type) {\r\n let errorText = \"\";\r\n if (error.data !== undefined && error.data !== null) {\r\n if (error.data === FEEDBACK_ERRORS.NO_PERMISSION_ERROR) {\r\n errorText = this._multiLanguageService.getString(\"sidebar.asset_feedback.messages.no_permission\");\r\n } else if (error.data.Message !== undefined) {\r\n errorText = error.data.Message;\r\n }\r\n }\r\n if (errorText === \"\") {\r\n errorText = this._multiLanguageService.getString(`sidebar.asset_feedback.http_error_${error_type}`);\r\n }\r\n\r\n this._launchHttpErrorModal(\r\n this._multiLanguageService.getString(\"sidebar.asset_feedback.generic_http_error_message\", { error: errorText }),\r\n this._multiLanguageService.getString(\"sidebar.asset_feedback.generic_http_error_title\")\r\n );\r\n }\r\n\r\n _finalisePendingItem(assetId, pendingItem, fullFeedback) {\r\n this._observables[assetId].replace(pendingItem, fullFeedback);\r\n }\r\n\r\n _pollReleasedStatus(assetId, feedbackItem, submissionId, retries) {\r\n const pollingTimeOut = this._$timeout(() => {\r\n const getStatePromise = this._assetFeedbackService\r\n .getState(feedbackItem.Id)\r\n .then((response) => {\r\n retries++;\r\n if ((feedbackItem.Released || feedbackItem.Releasing) === (response.data === ASSESSMENT_CONSTANTS.RELEASE_STATES.RELEASED)) {\r\n const getFeedbackByIdPromise = this._assetFeedbackService\r\n .getFeedbackById(feedbackItem.Id, assetId, submissionId)\r\n .then((response) => {\r\n this._finalisePendingItem(assetId, feedbackItem, response.data);\r\n })\r\n .catch((error) => {\r\n this.evaluateError(error, \"retrieve_id\");\r\n });\r\n\r\n this._abortablePromiseSet.add(getFeedbackByIdPromise);\r\n } else if (retries < this._maxRetries) {\r\n this._pollReleasedStatus(assetId, feedbackItem, submissionId, retries);\r\n }\r\n })\r\n .catch((error) => {\r\n this.evaluateError(error, \"retrieve_state\");\r\n });\r\n\r\n this._abortablePromiseSet.add(getStatePromise);\r\n const index = this._pollingTimeouts.indexOf(pollingTimeOut);\r\n if (index !== -1) {\r\n this._pollingTimeouts.splice(this._pollingTimeouts.indexOf(pollingTimeOut), 1);\r\n }\r\n }, 1000);\r\n\r\n this._pollingTimeouts.push(pollingTimeOut);\r\n }\r\n\r\n _canObserve(assetId) {\r\n return this._observables[assetId] !== undefined;\r\n }\r\n\r\n _launchHttpErrorModal(message, title) {\r\n const templateUrl = this._baseUrlsFactory.shared_component_base_url + \"spaMenu/okmessage.lazy.html\";\r\n const modalProps = {\r\n title: title,\r\n confirmMessage: message,\r\n multiLanguageService: this._multiLanguageService,\r\n okButton: this._multiLanguageService.getString(\"buttons.confirm\"),\r\n okButtonTitle: this._multiLanguageService.getString(\"buttons.generic.popup\"),\r\n onClose: angular.noop\r\n };\r\n\r\n return this._modal.launch(templateUrl, modalProps);\r\n }\r\n}\r\n\r\nFeedbackDataService.$inject = [\"$timeout\", \"$q\", \"assetFeedbackService\", \"multiLanguageService\", \"modal\", \"baseUrlsFactory\", \"to$AbortablePromise\"];\r\nangularAMD.service(\"feedbackDataService\", FeedbackDataService);\r\n","import { ASSESSMENT_CONSTANTS } from \"../../constants/assessment.constants\";\r\nimport { FILTERER_CONSTANTS } from \"../../constants/filterer.constants\";\r\n\r\nclass FeedbackFilterer {\r\n constructor() {\r\n this._activeFilter = this._getDefaultFilter();\r\n this._callbacks = new Set();\r\n\r\n this._filterOperations = [this._forElement.bind(this), this._leftOn.bind(this), this._excludeTypes.bind(this), this._showMostRecentPerAssessorField.bind(this)];\r\n }\r\n\r\n subscribe(callback) {\r\n this._callbacks.add(callback);\r\n return () => {\r\n this._callbacks.delete(callback);\r\n };\r\n }\r\n\r\n filter(data) {\r\n if (Object.keys(this._activeFilter).length === 0) {\r\n return data;\r\n }\r\n return data.filter((feedback) => this._filterOperations.every((op) => op(feedback)));\r\n }\r\n\r\n getActiveFilter() {\r\n return this._activeFilter;\r\n }\r\n\r\n setActiveFilter(newFilter) {\r\n this._activeFilter = newFilter;\r\n this._updateSubscribers(FILTERER_CONSTANTS.EVENTS.SET);\r\n }\r\n\r\n updateActiveFilter(newFilter) {\r\n this._activeFilter = { ...this._activeFilter, ...newFilter };\r\n this._updateSubscribers(FILTERER_CONSTANTS.EVENTS.UPDATE);\r\n }\r\n\r\n resetFilter() {\r\n this._activeFilter = this._getDefaultFilter();\r\n this._updateSubscribers(FILTERER_CONSTANTS.EVENTS.RESET);\r\n }\r\n\r\n _updateSubscribers(action) {\r\n for (const callback of this._callbacks) {\r\n callback(action);\r\n }\r\n }\r\n\r\n _getDefaultFilter() {\r\n return {\r\n showMostRecentPerAssessorField: false\r\n };\r\n }\r\n\r\n _leftOn(feedback) {\r\n if (this._activeFilter.leftOn === undefined) {\r\n return true;\r\n }\r\n\r\n return this._activeFilter.leftOn === feedback.AssetId;\r\n }\r\n\r\n _excludeTypes(feedback) {\r\n const excludeList = this._activeFilter.excludeTypes !== undefined ? this._activeFilter.excludeTypes : [];\r\n return !excludeList.includes(feedback.FeedbackType);\r\n }\r\n\r\n _showMostRecentPerAssessorField(feedback) {\r\n if (this._activeFilter.showMostRecentPerAssessorField === undefined) {\r\n return true;\r\n }\r\n\r\n if (this._activeFilter.forElement !== undefined) {\r\n return true;\r\n }\r\n\r\n if (this._activeFilter.showMostRecentPerAssessorField) {\r\n return feedback.FeedbackType !== ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.ASSESSOR_FIELD || feedback.MostRecentForElementId;\r\n }\r\n\r\n return feedback.FeedbackType !== ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.ASSESSOR_FIELD;\r\n }\r\n\r\n _forElement(feedback) {\r\n if (this._activeFilter.forElement === undefined) {\r\n return true;\r\n }\r\n\r\n return feedback.AnchorId !== null && feedback.LeftOn !== null && feedback.AnchorId === this._activeFilter.forElement.anchorId && feedback.AssetId === this._activeFilter.forElement.assetId;\r\n }\r\n}\r\n\r\nexport { FeedbackFilterer };\r\n","const constants = {\r\n EVENTS: {\r\n SET: \"set\",\r\n RESET: \"reset\",\r\n UPDATE: \"update\"\r\n }\r\n};\r\nexport { constants as FILTERER_CONSTANTS };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { FeedbackFilterer } from \"../feedbackFilterer/feedbackFilterer\";\r\n\r\nexport class FeedbackFiltererCollection {\r\n constructor() {\r\n this._filterers = new Map();\r\n }\r\n\r\n get(id) {\r\n let filtererWrapper = this._filterers.get(id);\r\n if (filtererWrapper === undefined) {\r\n filtererWrapper = {\r\n Filterer: new FeedbackFilterer(),\r\n UsageCount: 0\r\n };\r\n this._filterers.set(id, filtererWrapper);\r\n }\r\n filtererWrapper.UsageCount++;\r\n return filtererWrapper.Filterer;\r\n }\r\n\r\n remove(id) {\r\n const filtererWrapper = this._filterers.get(id);\r\n if (filtererWrapper !== undefined) {\r\n filtererWrapper.UsageCount--;\r\n if (filtererWrapper.UsageCount <= 0) {\r\n this._filterers.delete(id);\r\n }\r\n }\r\n }\r\n}\r\n\r\nFeedbackFiltererCollection.$inject = [];\r\nangularAMD.service(\"feedbackFiltererCollection\", FeedbackFiltererCollection);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nexport class FeedbackSidebarServiceProvider {\r\n constructor() {\r\n this.$get = () => {\r\n throw new Error(\"Missing implementation\");\r\n };\r\n }\r\n\r\n setResolver(resolver) {\r\n this.$get = resolver;\r\n }\r\n}\r\n\r\nangularAMD.provider(\"feedbackSidebarService\", FeedbackSidebarServiceProvider);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { CsrfCookie } from \"@pjs/http\";\r\nimport { ButtonClass, warningNotice } from \"@pjs/core-ui\";\r\nimport { INPUT_LIMIT_CONSTANTS } from \"../../constants/inputLimits.constants\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../services/fileUploadService\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"../../utilities/bytesToSize\";\r\nimport \"../../modal/services/modal\";\r\nimport \"../../utilities/subscriptionServiceProvider\";\r\nimport \"../../overlay/services/overlayFactory\";\r\nimport \"../../userAgent/userAgent.service\";\r\nimport \"../../utilities/urlService\";\r\nimport \"../../utilities/helpers\";\r\nimport \"../../clickAndDisable/directives/clickAndDisable.directive\";\r\nimport \"../../builder/textSectionInput/textSectionInput\";\r\nimport \"../../react2angular/dismissableHtmlNotice\";\r\nimport template from \"../templates/file-upload.html\";\r\n\r\n/**\r\n * usage: \r\n */\r\nangularAMD.directive(\"fileUpload\", [\r\n \"$q\",\r\n \"$http\",\r\n \"$sce\",\r\n \"$compile\",\r\n \"$timeout\",\r\n \"$rootScope\",\r\n \"baseUrlsFactory\",\r\n \"fileUploadService\",\r\n \"modal\",\r\n \"subscriptionServiceProvider\",\r\n \"overlayFactory\",\r\n \"multiLanguageService\",\r\n \"UserAgentService\",\r\n \"urlService\",\r\n \"helpers\",\r\n function (\r\n $q,\r\n $http,\r\n $sce,\r\n $compile,\r\n $timeout,\r\n $rootScope,\r\n baseUrlsFactory,\r\n fileUploadService,\r\n modal,\r\n subscriptionServiceProvider,\r\n overlayFactory,\r\n multiLanguageService,\r\n UserAgentService,\r\n urlService,\r\n helpers\r\n ) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n changeExisting: \"@\",\r\n showTagger: \"@\",\r\n showDescription: \"@\",\r\n panelInfo: \"=\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.multiLanguageService = multiLanguageService;\r\n $scope.isChangingExisting = $attrs.changeExisting !== undefined;\r\n $scope.isPanelMode = $scope.panelInfo !== undefined;\r\n $scope.uploadUrl = fileUploadService.getUploadUrl();\r\n $scope.imageDragFile = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/file/fileDrag.svg\");\r\n $scope.imageDropFile = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/file/file.svg\");\r\n $scope.imageSelectFile = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/file/selectFile.svg\");\r\n $scope.imageWarning = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/general/warning48.svg\");\r\n $scope.numberOfFiles = null;\r\n $scope.tags = [];\r\n $scope.onCloseModalActive = false;\r\n $scope.errorUploadStatuses = [\"overSingle\", \"overQuota\"];\r\n $scope.INPUT_LIMIT_CONSTANTS = INPUT_LIMIT_CONSTANTS;\r\n $scope.noExtensionError = null;\r\n $scope.buttonClass = ButtonClass;\r\n\r\n $scope.getHeaders = function (flowFile, flowChunk) {\r\n var headers = {};\r\n var csrfToken = CsrfCookie.get();\r\n if (csrfToken !== \"\") {\r\n headers[\"X-CSRF-Token\"] = csrfToken;\r\n }\r\n return headers;\r\n };\r\n\r\n $scope.flowInit = {\r\n target: $scope.uploadUrl,\r\n testChunks: false,\r\n withCredentials: true,\r\n simultaneousUploads: 1,\r\n chunkSize: 3 * 1024 * 1024,\r\n forceChunkSize: true,\r\n singleFile: $scope.isChangingExisting,\r\n headers: $scope.getHeaders\r\n };\r\n\r\n $scope.addTagToFileDetails = function (e, tag) {\r\n $scope.tags = e.targetScope.tags;\r\n };\r\n\r\n $scope.removeTagFromFileDetails = function (e, tag) {\r\n $scope.tags = e.targetScope.tags;\r\n };\r\n\r\n $scope.onSpaMenuClose = function () {\r\n if ($scope.numberOfFiles && $scope.numberOfFiles > 0 && !$scope.onCloseModalActive) {\r\n $scope.onCloseModalActive = true;\r\n\r\n var isolatedScope = $scope.$new(true);\r\n var saving = false;\r\n isolatedScope.modal_title = $scope.multiLanguageService.getString(\"labels.pop_ups.close_without_saving_file\");\r\n isolatedScope.modal_message = $scope.multiLanguageService.getString(\"file_uploads.h3.unfinished_upload\");\r\n isolatedScope.saveAndContinue = function () {\r\n saving = true;\r\n $scope\r\n .saveFile()\r\n .then(function () {\r\n $rootScope.$broadcast(\"forceCloseRightHandSidePanel\");\r\n subscriptionServiceProvider.unsubscribe(\"spaMenu\", $scope.subscriptionId);\r\n })\r\n // tslint:disable-next-line:no-empty\r\n .catch(() => {});\r\n };\r\n isolatedScope.continue = function () {\r\n $rootScope.$broadcast(\"forceCloseRightHandSidePanel\");\r\n };\r\n\r\n isolatedScope.onClose = function () {\r\n if (!saving) {\r\n subscriptionServiceProvider.unsubscribe(\"spaMenu\", $scope.subscriptionId);\r\n }\r\n\r\n $scope.onCloseModalActive = false;\r\n isolatedScope.$destroy();\r\n };\r\n\r\n modal.newModal({\r\n scope: isolatedScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"fileUpload/templates/file-in-progress.lazy.html\"\r\n });\r\n\r\n return $q.reject(\"File has not been saved\");\r\n }\r\n };\r\n\r\n // Default show attributes to true if not set\r\n $scope.show_tagger = $attrs.showTagger === undefined || $attrs.showTagger === \"true\";\r\n $scope.show_description = $attrs.showDescription === undefined || $attrs.showDescription === \"true\";\r\n\r\n if ($scope.isPanelMode) {\r\n $scope.subscriptionId = \"fileUploadInProgress\";\r\n subscriptionServiceProvider.subscribe(\"spaMenu\", $scope.subscriptionId, $scope.onSpaMenuClose);\r\n }\r\n }\r\n ],\r\n link: function (scope, element, attrs) {\r\n scope.type = \"\";\r\n scope.hasFile = false;\r\n\r\n scope.getDescribedByText = function () {\r\n scope.describedByText = scope.hasFile\r\n ? scope.multiLanguageService.getString(\"file_uploads.accessibility.confirming_uploads\")\r\n : scope.multiLanguageService.getString(\"file_uploads.accessibility.selecting_uploads\");\r\n };\r\n\r\n scope.getDescribedByText();\r\n\r\n scope.helpLink = \"#/learningCentre?type=uploading\";\r\n scope.tooltipMessage = scope.multiLanguageService.getString(\"tips.tags.adding_tags.content\");\r\n //Container for tooltip\r\n scope.boundary_el = angular.element(element[0].getElementsByClassName(\"file-upload\")[0]);\r\n\r\n var template = \"withUploadingText\",\r\n icon = \"fileUpload/images/save-tick.svg\",\r\n text = scope.multiLanguageService.getString(\"overlays.upload_successful\");\r\n var overlay = overlayFactory.createSpinnerOverlay($rootScope, template, icon, text);\r\n\r\n if (UserAgentService.touch) {\r\n scope.isTouchDevice = true;\r\n }\r\n\r\n var fileQuotasPromise;\r\n\r\n fileQuotasPromise = fileUploadService.getFileQuotas();\r\n\r\n fileQuotasPromise\r\n .then(function (response) {\r\n //scope.startingFileQuota is a way of tracking if the quota is already exceeded at the start of uploading a file.\r\n //This could happen if a persons quota is reduced by admin after they have already uploaded a load of item.\r\n\r\n scope.startingFileQuota = response.data.quotaRemaining;\r\n scope.fileQuotas = response.data;\r\n\r\n if (scope.startingFileQuota < 0) {\r\n scope.overStartQuota = -1 * scope.startingFileQuota;\r\n }\r\n })\r\n .finally(() => {\r\n scope.isReady = true;\r\n scope.hasFile = false;\r\n });\r\n\r\n var saveUploadPromise;\r\n\r\n // cached elements\r\n var file_drop_el = angular.element(element[0].querySelector(\"#file-drop-area\"));\r\n var file_click_el = angular.element(element[0].querySelector(\"#file-click-area\"));\r\n var upload_title_el = document.getElementById(\"uploadTitleField\");\r\n\r\n scope.fileProcessed = false;\r\n scope.titleLength = 255;\r\n scope.saveObjects = [];\r\n scope.fileObject = { title: \"\", description: \"\", altText: null };\r\n scope.saveButtonText = scope.multiLanguageService.getString(\"buttons.confirm_upload\");\r\n\r\n scope.updateAltTextValue = (value) => {\r\n scope.fileObject.altText = value;\r\n };\r\n\r\n scope.$on(\"tagAdded\", scope.addTagToFileDetails);\r\n scope.$on(\"tagRemoved\", scope.removeTagFromFileDetails);\r\n\r\n scope.resetHasFile = () => (scope.hasFile = false);\r\n\r\n scope.fileAdded = function (flow, file) {\r\n if (!file.getExtension() && !scope.hasFile) {\r\n scope.noExtensionError = {\r\n type: warningNotice,\r\n label: scope.multiLanguageService.getString(\"accessibility.notice.labels.warning\", { type: scope.multiLanguageService.getString(\"accessibility.notice.type.file_upload\") }),\r\n content: scope.multiLanguageService.getString(\"file_uploads.extension_error\"),\r\n onDismiss: () => {\r\n scope.noExtensionError = null;\r\n scope.$applyAsync();\r\n }\r\n };\r\n\r\n return false;\r\n }\r\n\r\n scope.noExtensionError = null;\r\n if (flow.files.length === 0) {\r\n scope.fileObject.title = file.name;\r\n }\r\n\r\n for (var i = 0, flowFile; i < flow.files.length; i++) {\r\n flowFile = flow.files[i];\r\n //If the File has the same id and lastModified date, File is the same, don't add again.\r\n if (flowFile.flowIdentifier === file.uniqueIdentifier && file.file.lastModified && flowFile.file.lastModified === file.file.lastModified) {\r\n return false;\r\n }\r\n }\r\n\r\n file.flowIdentifier = file.uniqueIdentifier;\r\n file.uniqueIdentifier = newGuid();\r\n file.added = Date.now();\r\n\r\n setupThumbnail(file);\r\n scope.hasFile = true;\r\n scope.getDescribedByText();\r\n };\r\n\r\n // Work out whether to show a thumbnail preview or not\r\n var setupThumbnail = function (file) {\r\n var type = file.file.type;\r\n $timeout(function () {\r\n if (type.indexOf(\"video\") > -1) {\r\n var video_player = element[0].querySelector(\"video\");\r\n var canPlay = video_player.canPlayType(type);\r\n scope.type = \"Video\";\r\n if (canPlay !== \"\") {\r\n file.thumbnailUrl = $sce.trustAsResourceUrl(URL.createObjectURL(file.file));\r\n }\r\n } else if (type.indexOf(\"audio\") > -1) {\r\n var audio_player = element[0].querySelector(\"audio\");\r\n var canPlay = audio_player.canPlayType(type);\r\n scope.type = \"Audio\";\r\n if (canPlay !== \"\") {\r\n file.thumbnailUrl = $sce.trustAsResourceUrl(URL.createObjectURL(file.file));\r\n }\r\n } else if (type.indexOf(\"image\") > -1) {\r\n scope.type = \"Image\";\r\n\r\n // only load thumbnail if less than 10Mb and of browser accepted type\r\n var maxMb = 10;\r\n if (\r\n file.file.size < maxMb * 1024 * 1024 &&\r\n (type.indexOf(\"bmp\") > -1 || type.indexOf(\"gif\") > -1 || type.indexOf(\"jpeg\") > -1 || type.indexOf(\"jpg\") > -1 || type.indexOf(\"png\") > -1)\r\n ) {\r\n file.thumbnailUrl = \"flow-img\";\r\n }\r\n }\r\n }, 0);\r\n };\r\n\r\n scope.onFileSubmitted = function (fileArray, flow) {\r\n for (var i = 0; i < fileArray.length; i++) {\r\n scope.checkQuotas(flow, fileArray[i]);\r\n }\r\n\r\n flow.upload();\r\n if (scope.allFilesProcessed(flow)) {\r\n scope.onFilesCompleted(flow);\r\n }\r\n };\r\n\r\n scope.checkQuotas = function (flow, file) {\r\n file.uploadStatus = \"\";\r\n\r\n var quotaRemaining = scope.fileQuotas.quotaRemaining;\r\n\r\n if (file.size > scope.fileQuotas.maxSingleFileSize) {\r\n file.pause();\r\n file.uploadStatus = \"overSingle\";\r\n }\r\n\r\n //putting this here still allows the uploadStatus to be set to overSingle, if the new file is over the single file size limit.\r\n if (scope.fileQuotas.setQuota === 0 && file.uploadStatus !== \"overSingle\") {\r\n //This catches if there is no quota and makes sure the the overQuota message is never shown in these instances.\r\n return true;\r\n }\r\n\r\n if (quotaRemaining - file.size > 0) {\r\n if (file.uploadStatus !== \"overSingle\") {\r\n quotaRemaining -= file.size;\r\n scope.fileQuotas.quotaRemaining = quotaRemaining;\r\n return true;\r\n }\r\n // tslint:disable-next-line:triple-equals\r\n } else if (quotaRemaining != 0) {\r\n if (file.uploadStatus !== \"overSingle\") {\r\n file.uploadStatus = \"overQuota\";\r\n }\r\n file.pause();\r\n }\r\n // tslint:disable-next-line:triple-equals\r\n if (quotaRemaining != 0) {\r\n scope.updateQuotaRemaining(flow);\r\n }\r\n };\r\n\r\n scope.updateQuotaRemaining = function (flow) {\r\n //This makes sure that the quotaRemaining isn't set to a negative number in the case of no quota being set.\r\n //This results in the inability to restart uploads if they are paused or re-upload a previously canceled upload.\r\n if (scope.fileQuotas.setQuota === 0) {\r\n //shouldn't need to set it to 0 it should already be set but it can't hurt.\r\n scope.fileQuotas.quotaRemaining = 0;\r\n return;\r\n }\r\n\r\n var runningFileSizeTotal = 0;\r\n for (var i = 0; i < flow.files.length; i++) {\r\n if (flow.files[i].paused === false) {\r\n runningFileSizeTotal += flow.files[i].size;\r\n }\r\n }\r\n\r\n scope.fileQuotas.quotaRemaining = scope.startingFileQuota - runningFileSizeTotal;\r\n };\r\n\r\n scope.fileSuccess = function (flow, file, message) {\r\n message = JSON.parse(message);\r\n if (!file.error) {\r\n file.complete = true;\r\n\r\n var fileExtention = file.name.split(\".\");\r\n scope.numberOfFiles = flow.files.length;\r\n scope.saveObjects.push({\r\n ticketId: file.uniqueIdentifier,\r\n title: file.name,\r\n description: file.description,\r\n flowFile: file,\r\n icon: fileUploadService.getCorrectFileIcon(fileExtention.pop()),\r\n altText: null\r\n });\r\n if (upload_title_el) {\r\n //time out is needed to allow the dom to render so we can focus the title field.\r\n $timeout(function () {\r\n if (!scope.changeExisting) {\r\n upload_title_el.focus();\r\n }\r\n }, 0);\r\n }\r\n\r\n if (scope.isChangingExisting) {\r\n scope.$emit(\"sendGiveTicketTo\", file);\r\n }\r\n }\r\n\r\n if (scope.allFilesProcessed(flow)) {\r\n scope.onFilesCompleted(flow);\r\n }\r\n };\r\n\r\n var handleErrorResponse = function (file, response) {\r\n scope.saveObjects.forEach((saveObject, index) => {\r\n if (saveObject.flowFile.flowIdentifier === file.flowIdentifier) {\r\n scope.saveObjects.splice(index, 1);\r\n }\r\n });\r\n\r\n if (response.error.includes(\"flow_filename_error\")) {\r\n // Flow.JS when reading files changes the / character in filenames to a colon.\r\n // Changed back to a / here. Mac and Windows make sure files cannot be named with a colon.\r\n // Changed back here to get the original character back.\r\n const invalidCharacters = response.error.replace(\"flow_filename_error\", \"\");\r\n file.invalidCharacters = invalidCharacters.replace(\":\", \"/\");\r\n file.name = file.name.replace(\":\", \"/\");\r\n scope.fileObject.title = file.name.replace(\":\", \"/\");\r\n file.uploadStatus = \"filenameError\";\r\n return;\r\n }\r\n\r\n if (response && response.error && response.correspondenceId) {\r\n file.handledError = {\r\n type: response.error,\r\n correspondenceId: response.correspondenceId\r\n };\r\n } else {\r\n file.unhandledError = true;\r\n }\r\n fileUploadService.cancelUpload(file.uniqueIdentifier);\r\n };\r\n\r\n scope.fileError = function (flow, file, message) {\r\n message = JSON.parse(message);\r\n handleErrorResponse(file, message);\r\n if (scope.allFilesProcessed(flow)) {\r\n scope.onFilesCompleted(flow);\r\n }\r\n };\r\n\r\n scope.onFilesCompleted = function (flow) {\r\n var successful = [];\r\n var errored = [];\r\n\r\n for (var i = 0; i < flow.files.length; i++) {\r\n if (flow.files[i].complete) {\r\n successful.push(flow.files[i]);\r\n } else {\r\n errored.push(flow.files[i]);\r\n }\r\n }\r\n\r\n if (errored.length === 0 && successful.length > 0) {\r\n scope.filesProcessedMessage = scope.multiLanguageService.getString(\"file_uploads.accessibility.finished_uploading_successful\");\r\n return;\r\n }\r\n\r\n if (errored.length > 0 && successful.length > 0) {\r\n scope.filesProcessedMessage = scope.multiLanguageService.getString(\"file_uploads.accessibility.finished_uploading_some_failed\");\r\n } else {\r\n scope.filesProcessedMessage = scope.multiLanguageService.getString(\"file_uploads.accessibility.finished_uploading_all_failed\");\r\n }\r\n\r\n scope.filesProcessedMessage += errored.reduce(function (accumulatedValue, file) {\r\n return accumulatedValue + scope.getA11yErrorMessageForFile(file);\r\n }, \"\");\r\n };\r\n\r\n scope.getA11yErrorMessageForFile = function (file) {\r\n var msg = \"\";\r\n if (file.uploadStatus === \"overSingle\") {\r\n msg = scope.multiLanguageService.getString(\"file_uploads.accessibility.warning_exceeds_max_size\");\r\n } else if (file.uploadStatus === \"overQuota\") {\r\n msg = scope.multiLanguageService.getString(\"file_uploads.accessibility.warning_exceeds_storage_space\");\r\n } else if (file.cancelledMidway) {\r\n msg = scope.multiLanguageService.getString(\"file_uploads.accessibility.warning_canceled\");\r\n } else if (file.uploadStatus === \"filenameError\") {\r\n msg = scope.multiLanguageService.getString(\"file_uploads.accessibility.warning_filename\", { invalidCharacters: file.invalidCharacters });\r\n } else {\r\n msg = scope.multiLanguageService.getString(\"file_uploads.accessibility.warning_failed\");\r\n }\r\n\r\n return file.name + msg;\r\n };\r\n\r\n scope.allFilesProcessed = function (flow) {\r\n scope.filesProcessed = flow.files.every(function (file) {\r\n return file.complete || file.error || scope.errorUploadStatuses.contains(file.uploadStatus);\r\n });\r\n\r\n return scope.filesProcessed;\r\n };\r\n\r\n scope.fileRetry = function (flow, file) {\r\n file.handledError = null;\r\n file.unhandledError = null;\r\n file.uniqueIdentifier = newGuid();\r\n file.retry();\r\n scope.checkQuotas(flow, file);\r\n };\r\n\r\n scope.fileCancel = function (flow, file) {\r\n file.cancelledMidway = !file.complete;\r\n fileUploadService.cancelUpload(file.uniqueIdentifier);\r\n\r\n if (file.isUploading()) {\r\n file.pause();\r\n }\r\n\r\n for (var i = 0; i < flow.files.length; i++) {\r\n if (flow.files[i].paused === true) {\r\n // tslint:disable-next-line:triple-equals\r\n if (flow.files[i] != file && !flow.files[i].cancelledMidway) {\r\n if (scope.checkQuotas(flow, flow.files[i])) {\r\n flow.files[i].resume();\r\n flow.files[i].uploadStatus = undefined;\r\n }\r\n }\r\n }\r\n }\r\n\r\n file.uploadStatus = undefined;\r\n scope.numberOfFiles = flow.files.length;\r\n if (scope.allFilesProcessed(flow)) {\r\n scope.onFilesCompleted(flow);\r\n }\r\n };\r\n\r\n scope.fileRestart = function (flow, file) {\r\n file.uniqueIdentifier = newGuid();\r\n file.bootstrap();\r\n file.resume();\r\n file.complete = false;\r\n file.cancelledMidway = false;\r\n file.uploadStatus = undefined;\r\n scope.checkQuotas(flow, file);\r\n };\r\n\r\n scope.fileRemove = function (flow, file) {\r\n if (!file.error) {\r\n scope.saveObjects.removeOne(scope.saveObjects.selectOne(\"flowFile\").indexesOf(file));\r\n }\r\n\r\n file.cancel();\r\n if (!file.unhandledError && !file.handledError) {\r\n var fileCancelPromise = fileUploadService.cancelUpload(file.uniqueIdentifier);\r\n fileCancelPromise.then(function (response) {\r\n scope.updateQuotaRemaining(flow);\r\n for (var i = 0; i < flow.files.length; i++) {\r\n if (flow.files[i].paused === true) {\r\n // tslint:disable-next-line:triple-equals\r\n if (!flow.files[i].cancelledMidway && flow.files[i] != file) {\r\n if (scope.checkQuotas(flow, flow.files[i])) {\r\n flow.files[i].resume();\r\n flow.files[i].uploadStatus = undefined;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n if (scope.isChangingExisting) {\r\n scope.$emit(\"sendGiveTicketTo\", null);\r\n }\r\n\r\n if (scope.$parent.focusOnFirstElement) {\r\n scope.$parent.focusOnFirstElement();\r\n }\r\n scope.hasFile = flow.files.length > 0;\r\n scope.numberOfFiles = flow.files.length;\r\n\r\n scope.getDescribedByText();\r\n\r\n if (scope.allFilesProcessed(flow)) {\r\n scope.onFilesCompleted(flow);\r\n }\r\n };\r\n\r\n var processed = [];\r\n scope.fileChange = function (flow, file) {\r\n var changeStarted = Date.now(),\r\n lastFlowLength = flow.files.length,\r\n input = file_click_el[0].querySelector(\"input[type='file']\");\r\n\r\n var onFileChanged = function (e) {\r\n if (processed.indexOf(changeStarted) !== -1) {\r\n return;\r\n }\r\n\r\n input.removeEventListener(\"change\", onFileChanged);\r\n processed.push(changeStarted);\r\n // IE runs event listeners twice\r\n var flowLength = flow.files.length,\r\n numberOfDuplicates = 0;\r\n\r\n if (!scope.isChangingExisting) {\r\n //Find duplicates\r\n flow.files.forEach(function (f) {\r\n if (f.flowIdentifier === file.flowIdentifier && file.file.lastModified && f.file.lastModified === file.file.lastModified) {\r\n numberOfDuplicates++;\r\n }\r\n });\r\n\r\n if (numberOfDuplicates >= 1 && lastFlowLength === flowLength) {\r\n return;\r\n }\r\n\r\n //Replace old file with the newest file added.\r\n flow.files[flow.files.indexOf(file)] = flow.files[flowLength - 1];\r\n flow.files.pop();\r\n\r\n //Remove the old file.\r\n scope.saveObjects.removeOne(scope.saveObjects.findInNestedObject(\"ticketId\", file.uniqueIdentifier));\r\n scope.fileCancel(flow, file);\r\n scope.fileRemove(flow, file);\r\n }\r\n\r\n input.removeEventListener(\"change\", onFileChanged);\r\n processed.push(changeStarted);\r\n\r\n //If we are dealing with a single file upload.\r\n if (flow.files.length === 1) {\r\n //if the title is still the same name as the old filename\r\n if (file.name === scope.fileObject.title) {\r\n //update it to the new filename\r\n scope.fileObject.title = flow.files[0].name;\r\n }\r\n }\r\n };\r\n\r\n input.addEventListener(\"change\", onFileChanged);\r\n file_click_el[0].click();\r\n };\r\n\r\n scope.dropFile = function (fileReady) {\r\n scope.fileReady = fileReady;\r\n if (fileReady) {\r\n file_drop_el.addClass(\"drop\");\r\n } else {\r\n file_drop_el.removeClass(\"drop\");\r\n }\r\n };\r\n\r\n // Creates a ticketId for tracking the file chunks with the backend\r\n var newGuid = function () {\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\r\n var r = (Math.random() * 16) | 0,\r\n v = c === \"x\" ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n };\r\n\r\n var hideOnComplete = function () {\r\n if (attrs.noModal === undefined) {\r\n scope.$parent.hideModal();\r\n }\r\n };\r\n\r\n scope.emitSelectorData = function (savedResponses) {\r\n const items = savedResponses.map((assetRef) => {\r\n return {\r\n Id: assetRef.Id,\r\n Title: assetRef.Title,\r\n SubType: assetRef.SubType,\r\n MainType: assetRef.MainType,\r\n Icon: assetRef.Icon,\r\n Tags: assetRef.Tags\r\n };\r\n });\r\n\r\n const data = { Items: items, SelectorId: scope.panelInfo.selectorId };\r\n\r\n if (scope.panelInfo.close !== undefined) {\r\n scope.panelInfo.close();\r\n }\r\n\r\n $rootScope.$broadcast(\"updateItemsInSelector\", data);\r\n return overlayFactory.updateThenHide(1000);\r\n };\r\n\r\n scope.canSave = function (flow) {\r\n return flow !== undefined && scope.saveObjects.length && flow.files.length && scope.saveObjects.length === flow.files.length;\r\n };\r\n\r\n scope.batchedSaveFile = function (saveObjects) {\r\n if (saveObjects.length === 0) {\r\n return $q.when([]);\r\n }\r\n\r\n const batches = helpers.chunkArray(saveObjects, 6);\r\n const batchIterator = batches.values();\r\n const result = [];\r\n const saveBatch = (batch) => $q.all(batch.map(scope.commitFileSave));\r\n const onBatchSave = (responses) => {\r\n result.push(...responses);\r\n const nextBatch = batchIterator.next();\r\n if (nextBatch.done) {\r\n return;\r\n }\r\n\r\n return saveBatch(nextBatch.value).then(onBatchSave);\r\n };\r\n\r\n return saveBatch(batchIterator.next().value)\r\n .then(onBatchSave)\r\n .then(() => result);\r\n };\r\n\r\n scope.commitFileSave = function (saveObject) {\r\n return fileUploadService\r\n .sendSaveFile(saveObject)\r\n .then((data) => {\r\n return {\r\n Id: data.assetRef.Id,\r\n MainType: data.assetRef.MainType,\r\n SubType: data.assetRef.SubType,\r\n TicketId: saveObject.ticketId,\r\n Title: saveObject.title,\r\n Icon: saveObject.icon,\r\n Tags: saveObject.tags\r\n };\r\n })\r\n .catch((response) => {\r\n handleErrorResponse(saveObject.flowFile, response);\r\n return null;\r\n });\r\n };\r\n\r\n scope.saveFile = function () {\r\n // need to use a clone of the save objects as the\r\n // save objects list MAY be edited during this iteration\r\n const saveObjectsClone = scope.saveObjects.clone();\r\n\r\n // Set the upload information if only one file is being processed\r\n if (saveObjectsClone.length === 1) {\r\n saveObjectsClone[0].title = scope.fileObject.title;\r\n saveObjectsClone[0].description = scope.fileObject.description;\r\n\r\n if (saveObjectsClone[0].flowFile.file.type.indexOf(\"image\") > -1) {\r\n saveObjectsClone[0].altText = scope.fileObject.altText;\r\n }\r\n }\r\n\r\n for (let i = 0, l = saveObjectsClone.length; i < l; i++) {\r\n let currentClone = saveObjectsClone[i];\r\n\r\n if (scope.tags.length !== 0) {\r\n currentClone.tags = scope.tags;\r\n }\r\n if (currentClone.description === undefined) {\r\n currentClone.description = \"\";\r\n }\r\n }\r\n\r\n overlayFactory.setActiveOverlay(overlay);\r\n overlayFactory.show();\r\n\r\n return scope.batchedSaveFile(saveObjectsClone).then((responses) => {\r\n const containsFailedFiles = responses.some((response) => response === null);\r\n if (containsFailedFiles) {\r\n overlayFactory.hide(1000);\r\n return $q.reject();\r\n }\r\n\r\n scope.numberOfFiles = 0;\r\n $rootScope.$broadcast(\"fileUploadSuccessful\");\r\n return $timeout(() => {\r\n if (scope.isPanelMode) {\r\n return scope.emitSelectorData(responses);\r\n } else {\r\n hideOnComplete();\r\n return overlayFactory.updateThenHide(1000);\r\n }\r\n }, 1000);\r\n });\r\n };\r\n\r\n scope.close = function () {\r\n scope.$emit(\"hideModal\");\r\n };\r\n\r\n scope.checkTitleContent = function () {\r\n if (scope.fileObject.title === undefined || scope.fileObject.title === \"\") {\r\n //this will need to be changed to refer to the originalSaveObjectTitle when editing a file upload\r\n scope.fileObject.title = scope.saveObjects[0].title;\r\n }\r\n };\r\n\r\n scope.triggerFlowBtnClick = function (e) {\r\n //added because the enter keypress wasn't triggering off the click on the browser for file flow-btn.\r\n if (e.keyCode === 13) {\r\n file_click_el[0].click();\r\n }\r\n };\r\n\r\n scope.calcProgress = function (file) {\r\n var progress = file.progress();\r\n return (progress >= 0 ? progress : 0) * 100;\r\n };\r\n\r\n element.on(\"$destroy\", function () {\r\n scope.$destroy();\r\n });\r\n\r\n scope.$on(\"$destroy\", function () {\r\n subscriptionServiceProvider.unsubscribe(\"spaMenu\", scope.subscriptionId);\r\n });\r\n\r\n scope.termsAndConditionsURL = urlService.getForwardingUrl([\r\n {\r\n key: \"location\",\r\n value: \"PebblePadWebsite\"\r\n },\r\n {\r\n key: \"action\",\r\n value: \"Terms\"\r\n }\r\n ]);\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

\"\"

{{::multiLanguageService.getString('file_uploads.h3.drag_file')}}

\"\"

{{::multiLanguageService.getString('file_uploads.h3.drop_now')}}

\"\"

{{::multiLanguageService.getString('file_uploads.h3.or_choose_file')}}

{{::multiLanguageService.getString('file_uploads.h3.choose_file')}}


\"\"

{{::multiLanguageService.getString('file_uploads.p.over_start_quota_msg', { amount: (overStartQuota | bytesToSize) })}}

{{::multiLanguageService.getString('file_uploads.p.trouble_msg')}}

{{::multiLanguageService.getString('file_uploads.p.check_our_file_guide')}} {{file.handledError.correspondenceId}}
-1\" alt=\"{{$flow.files.length === 1 ? fileObject.altText : ''}}\">
{{::multiLanguageService.getString('file_uploads.labels.file_name')}} {{file.name}}
{{::multiLanguageService.getString('file_uploads.labels.file_size')}} {{file.size | bytesToSize}}

{{file.name}}

{{file.size | bytesToSize}}

{{::multiLanguageService.getString('file_uploads.h4.uploading')}}

{{::multiLanguageService.getString('file_uploads.h4.upload_successful')}}

\"\"

{{::multiLanguageService.getString('file_uploads.p.single_file_quota_msg', { amount: (fileQuotas.maxSingleFileSize | bytesToSize) })}}

{{::multiLanguageService.getString('file_uploads.p.trouble_msg')}}

{{::multiLanguageService.getString('file_uploads.p.check_our_file_guide')}} {{file.handledError.correspondenceId}}
\"\"

{{::multiLanguageService.getString('file_uploads.p.over_quota_msg' , { amountFree: (fileQuotas.quotaRemaining | bytesToSize), fileSize: (file.size | bytesToSize), freeUp: (file.size-fileQuotas.quotaRemaining | bytesToSize)})}}

{{::multiLanguageService.getString('file_uploads.p.trouble_msg')}}

{{::multiLanguageService.getString('file_uploads.p.check_our_file_guide')}} {{file.handledError.correspondenceId}}
\"\"

{{multiLanguageService.getString('file_uploads.p.invalid_characters', { invalidCharacters: file.invalidCharacters })}}

{{::multiLanguageService.getString('file_uploads.p.trouble_msg')}}

{{::multiLanguageService.getString('file_uploads.p.check_our_file_guide')}}
\"\"

{{::multiLanguageService.getString('file_uploads.p.file_cancel_msg')}}

{{::multiLanguageService.getString('file_uploads.p.trouble_msg')}}

{{::multiLanguageService.getString('file_uploads.p.check_our_file_guide')}}
\"\"

{{::multiLanguageService.getString('file_uploads.error')}}

{{::multiLanguageService.getString('file_uploads.contact_with_cid')}}

{{file.handledError.correspondenceId}}

{{::multiLanguageService.getString('file_uploads.hints.description')}}

-1\">

{{::multiLanguageService.getString('file_uploads.labels.quality_warning')}}

{{::multiLanguageService.getString('file_uploads.labels.disclaimer')}}

{{::multiLanguageService.getString('file_uploads.labels.terms_conditions')}}
1\">

{{::multiLanguageService.getString('file_uploads.labels.multiple_file_names')}}


{{::multiLanguageService.getString('file_uploads.labels.quality_warning')}}

{{::multiLanguageService.getString('file_uploads.labels.disclaimer')}}

{{::multiLanguageService.getString('file_uploads.labels.terms_conditions')}}
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../assetEndpointService/assetEndpoint.service\";\r\n\r\nangularAMD.factory(\"fileUploadService\", [\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"$q\",\r\n \"AssetEndpointService\",\r\n function ($http, baseUrlsFactory, $q, AssetEndpointService) {\r\n return {\r\n getUploadUrl: function () {\r\n return AssetEndpointService.getUploadUrl();\r\n },\r\n\r\n sendSaveFile: function (saveObject) {\r\n var body = {\r\n title: saveObject.title,\r\n description: saveObject.description,\r\n altText: saveObject.altText,\r\n ticketId: saveObject.ticketId,\r\n tags: saveObject.tags,\r\n folder: saveObject.folder,\r\n assetOptions: saveObject.assetOptions\r\n };\r\n return AssetEndpointService.saveUpload(body, { returnRef: true }).then(function (response) {\r\n if (!response.data || response.data.error) {\r\n return $q.reject(response);\r\n }\r\n return {\r\n assetRef: response.data,\r\n ticketId: saveObject.ticketId\r\n };\r\n });\r\n },\r\n\r\n cancelUpload: function (ticketId) {\r\n $http.defaults.withCredentials = true;\r\n\r\n var request = $http.post(baseUrlsFactory.api_base_url + \"upload/cancel\", {\r\n ticketId: ticketId\r\n });\r\n\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n return promise;\r\n },\r\n\r\n getFileQuotas: function () {\r\n $http.defaults.withCredentials = true;\r\n\r\n var request = $http.get(baseUrlsFactory.api_base_url + \"upload/quota\", {});\r\n\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n return promise;\r\n },\r\n\r\n saveUpdatedFile: function (saveObject) {\r\n $http.defaults.withCredentials = true;\r\n\r\n var request = $http.post(baseUrlsFactory.api_base_url + \"upload/save\", {\r\n title: saveObject.title,\r\n description: saveObject.description,\r\n altText: saveObject.altText,\r\n assetId: saveObject.assetId,\r\n ticketId: saveObject.ticketId\r\n });\r\n\r\n var promise = request.then(\r\n function (response) {\r\n if (response && response.status) {\r\n return response;\r\n } else {\r\n return $q.reject();\r\n }\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n return promise;\r\n },\r\n\r\n //This service is for when we add in checking for restricted file types on the selector upload. I.e. restricting upload to just images if you are replacing an image.\r\n getAllowedFileTypes: function (mainType) {\r\n var checkType = mainType.toLowerCase();\r\n switch (checkType) {\r\n case \"presentation\":\r\n return [\"odp\", \"ppt\", \"pptx\"];\r\n case \"spreadsheet\":\r\n return [\"csv\", \"ods\", \"sxc\", \"xls\", \"xlsx\"];\r\n case \"document\":\r\n return [\"doc\", \"docx\", \"odt\", \"pdf\", \"txt\"];\r\n case \"image\":\r\n return [\"ai\", \"bmp\", \"dxf\", \"eps\", \"gif\", \"jpg\", \"jpeg\", \"png\", \"svg\"];\r\n case \"audio\":\r\n return [\"mp3\", \"ogg\", \"wav\", \"wma\", \"m4a\"];\r\n case \"video\":\r\n return [\"avi\", \"mp4\", \"mpg\", \"mpeg\", \"mkv\", \"mov\", \"wmv\"];\r\n case \"archive\":\r\n return [\"zip\"];\r\n default:\r\n return;\r\n }\r\n },\r\n\r\n getCorrectFileIcon: function (subType) {\r\n var checkSubType = subType.toLowerCase();\r\n if ([\"odp\", \"ppt\", \"pptx\"].indexOf(checkSubType) > -1) {\r\n return \"presentation\";\r\n } else if ([\"csv\", \"ods\", \"sxc\", \"xls\", \"xlsx\"].indexOf(checkSubType) > -1) {\r\n return \"spreadsheet\";\r\n } else if ([\"doc\", \"docx\", \"odt\", \"txt\"].indexOf(checkSubType) > -1) {\r\n return \"text\";\r\n } else if (checkSubType === \"pdf\") {\r\n return \"pdf\";\r\n } else if ([\"ai\", \"bmp\", \"dxf\", \"eps\", \"gif\", \"jpg\", \"jpeg\", \"png\", \"svg\"].indexOf(checkSubType) > -1) {\r\n return \"image\";\r\n } else if ([\"mp3\", \"ogg\", \"wav\", \"wma\", \"m4a\"].indexOf(checkSubType) > -1) {\r\n return \"audio\";\r\n } else if ([\"avi\", \"mp4\", \"mpg\", \"mpeg\", \"mkv\", \"mov\", \"wmv\"].indexOf(checkSubType) > -1) {\r\n return \"video\";\r\n } else if (checkSubType === \"zip\") {\r\n return \"archive\";\r\n } else {\r\n return \"file\";\r\n }\r\n },\r\n\r\n base64ToBlob: function (b64Data, contentType, sliceSize) {\r\n if (!sliceSize) {\r\n sliceSize = 512;\r\n }\r\n\r\n var byteCharacters = window.atob(b64Data);\r\n var byteArrays = [];\r\n\r\n for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n var slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n var byteNumbers = new Array(slice.length);\r\n for (var i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n var byteArray = new Uint8Array(byteNumbers);\r\n\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n return new Blob(byteArrays, { type: contentType });\r\n },\r\n\r\n getBase64FromDataUri: function (data) {\r\n return data.substring(data.indexOf(\",\") + 1);\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { focusTrapper } from \"@pjs/core-ui\";\r\nimport { createGuid } from \"@pjs/utilities\";\r\n\r\nexport class FocusTrapService {\r\n constructor() {\r\n this._traps = new Map();\r\n }\r\n\r\n addTrap(container, ariaContainers, exclusion) {\r\n const trapId = createGuid();\r\n this._hideContainers(ariaContainers);\r\n\r\n this._traps.set(trapId, {\r\n remove: focusTrapper.trap(container, exclusion),\r\n ariaContainers: ariaContainers\r\n });\r\n\r\n return trapId;\r\n }\r\n\r\n removeTrap(trapId) {\r\n if (!this._traps.has(trapId)) {\r\n return;\r\n }\r\n\r\n const trap = this._traps.get(trapId);\r\n this._traps.delete(trapId);\r\n trap.remove();\r\n\r\n for (const ariaContainer of trap.ariaContainers) {\r\n if (this._shouldShowContainer(ariaContainer)) {\r\n ariaContainer.removeAttribute(\"aria-hidden\");\r\n }\r\n }\r\n }\r\n\r\n _hideContainers(ariaContainers) {\r\n for (const ariaContainer of ariaContainers) {\r\n ariaContainer.setAttribute(\"aria-hidden\", \"true\");\r\n }\r\n }\r\n\r\n _shouldShowContainer(ariaContainer) {\r\n if (this._traps.size === 0) {\r\n return true;\r\n }\r\n\r\n for (const trap of this._traps.values()) {\r\n if (trap.ariaContainers.includes(ariaContainer)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\nFocusTrapService.$inject = [];\r\nangularAMD.service(\"focusTrapService\", FocusTrapService);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../modal/services/modal\";\r\nimport template from \"./templates/element-info-button.html\";\r\n\r\n// -- Directive\r\n\r\nangularAMD.directive(\"elementInfoButton\", ElementInfoButton);\r\nElementInfoButton.$inject = [];\r\nfunction ElementInfoButton() {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n controller: \"ElementInfoButton\",\r\n controllerAs: \"vm\",\r\n bindToController: true,\r\n scope: {\r\n small: \"=\",\r\n elementTitle: \"@\",\r\n extraInfo: \"@\"\r\n }\r\n };\r\n}\r\n\r\n// -- Controller\r\n\r\nangularAMD.controller(\"ElementInfoButton\", ElementInfoButtonController);\r\nElementInfoButtonController.$inject = [\"$scope\", \"modal\", \"multiLanguageService\"];\r\nfunction ElementInfoButtonController($scope, modal, multiLanguageService) {\r\n this.modal = modal;\r\n this.$scope = $scope;\r\n this.multiLanguageService = multiLanguageService;\r\n\r\n $scope.$on(\r\n \"$destroy\",\r\n function () {\r\n delete this.$scope;\r\n }.bind(this)\r\n );\r\n}\r\n\r\nElementInfoButtonController.prototype.openModal = function () {\r\n var modalScope = this.$scope.$new(true);\r\n modalScope.title = this.elementTitle;\r\n modalScope.message = this.extraInfo;\r\n modalScope.button_label = this.multiLanguageService.getString(\"asset_store.help.close\");\r\n this.modal.newModal({\r\n scope: modalScope,\r\n templateUrl: this.modal.genericTemplates.popup,\r\n focusStyle: false,\r\n disableFocusScroll: true\r\n });\r\n\r\n modalScope.onClose = function () {\r\n modalScope.$destroy();\r\n };\r\n};\r\n","export default ` `;","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nexport class StandardsInformation {\r\n constructor($window) {\r\n this.standardsData = {};\r\n this.$window = $window;\r\n }\r\n\r\n setStandardsData(selectedStandards, reflection, standards, assetId, workbookId, mainAssetId, hasActiveApproval, preventMappingChanges) {\r\n this.standardsData[assetId] = {\r\n selectedStandards: selectedStandards,\r\n reflection: reflection,\r\n standardsData: standards,\r\n assetId: assetId,\r\n workbookId: workbookId,\r\n mainAssetId: mainAssetId,\r\n hasActiveApproval: hasActiveApproval,\r\n preventMappingChanges: preventMappingChanges\r\n };\r\n\r\n this.$window.sessionStorage.setItem(`standardsInformation-${assetId}`, JSON.stringify(this.standardsData[assetId]));\r\n }\r\n\r\n getStandardsData(assetId) {\r\n if (this.standardsData[assetId] !== undefined) {\r\n return this.standardsData[assetId];\r\n } else {\r\n return JSON.parse(this.$window.sessionStorage.getItem(`standardsInformation-${assetId}`));\r\n }\r\n }\r\n\r\n removeStorageStandardsData(assetId) {\r\n if (this.standardsData[assetId] !== undefined) {\r\n delete this.standardsData[assetId];\r\n }\r\n this.$window.sessionStorage.removeItem(`standardsInformation-${assetId}`);\r\n }\r\n\r\n setNavigationalUrl(assetId, url) {\r\n this.$window.sessionStorage.setItem(`mappingHistory-${assetId}`, url);\r\n }\r\n\r\n getNavigationalUrl(assetId) {\r\n return this.$window.sessionStorage.getItem(`mappingHistory-${assetId}`);\r\n }\r\n\r\n removeNavigationalUrl(assetId) {\r\n this.$window.sessionStorage.removeItem(`mappingHistory-${assetId}`);\r\n }\r\n}\r\n\r\nStandardsInformation.$inject = [\"$window\"];\r\nangularAMD.service(\"standardsInformation\", StandardsInformation);\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./templates/standards-selection-checkbox-group.html\";\r\n\r\nimport \"../../../capabilityCriteriaService/capabilityCriteriaService\";\r\n\r\nclass StandardsSelectionCheckboxGroupComponent extends NgComponent {\r\n constructor(capabilityCriteriaService) {\r\n super();\r\n\r\n this.capabilityCriteriaService = capabilityCriteriaService;\r\n this.capabilityInfoByUniqueId = {};\r\n\r\n this.standards.forEach((standard) => {\r\n const showCriteria = this.capabilityCriteriaService.isCriteriaAvailable(standard.Criteria.MinimumEvidenceRequirement);\r\n\r\n this.capabilityInfoByUniqueId[standard.uniqueId] = {\r\n showCriteria: showCriteria,\r\n ariaDescribedById: showCriteria ? `${standard.ElementId}${standard.uniqueId}_criteria` : \"\"\r\n };\r\n });\r\n }\r\n\r\n setChecked(event, pageFormId, pageId, formElementId, assetRefId) {\r\n this.onChecked({ event, pageFormId, pageId, formElementId, assetRefId });\r\n }\r\n}\r\n\r\nexport const StandardsSelectionCheckboxGroup = {\r\n bindings: {\r\n onChecked: \"&\",\r\n pageFormId: \"<\",\r\n pageId: \"<\",\r\n standards: \"<\",\r\n assetRefId: \"<\"\r\n },\r\n template: template,\r\n controller: StandardsSelectionCheckboxGroupComponent\r\n};\r\n\r\nStandardsSelectionCheckboxGroup.$inject = [\"capabilityCriteriaService\"];\r\nangularAMD.component(\"standardsSelectionCheckboxGroup\", StandardsSelectionCheckboxGroup);\r\n","export default `
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSET_CONSTANTS } from \"../../../constants/asset.constants\";\r\nimport \"../../../pui/src/accordion/accordion.component\";\r\nimport \"../../../pui/src/accordion/accordion-content.component\";\r\nimport \"../../../pui/src/accordion/accordion-header.component\";\r\nimport \"../../../pui/src/accordion/accordion-panel.component\";\r\nimport \"../../../builder/dataManager/helperService\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../StandardsSelectionCheckboxGroup/standardsSelectionCheckboxGroup.component\";\r\nimport template from \"./templates/standards-selection-sidebar-accordion.component.html\";\r\n\r\nvar standardsSelectionSidebarAccordionDefinition = {\r\n bindings: {\r\n standardsData: \"<\",\r\n level: \"<\",\r\n headerLevel: \"<\",\r\n updateStandard: \"&\",\r\n pageId: \"<\",\r\n assetRefId: \"<\",\r\n pageFormId: \"<\"\r\n },\r\n template: template,\r\n controller: StandardsSelectionSidebarAccordion\r\n};\r\n\r\nStandardsSelectionSidebarAccordion.$inject = [\"helperService\", \"multiLanguageService\", \"User\"];\r\n\r\nfunction StandardsSelectionSidebarAccordion(helperService, multiLanguageService, userService) {\r\n this.helperService = helperService;\r\n this.multiLanguageService = multiLanguageService;\r\n this.mmlEnabled = userService.getDto().EnableMapMyLearning;\r\n this.ASSET_CONSTANTS = ASSET_CONSTANTS;\r\n // Very sorry old sports, turns out it's hard to find the PageId when super deep in recursion\r\n // Easy to find it when returning actions\r\n // This just helps us uniquely key them so that we don't end up with duplicate ids across branches\r\n // due to ElementId not being totally unique\r\n}\r\n\r\nStandardsSelectionSidebarAccordion.prototype.$onInit = function () {\r\n this.standardsData.forEach((data) => {\r\n // Only workbook pages and MML forms contain standards at this level. Nested workbooks are dealt with in child accordion components.\r\n const workingData = data.MainType === this.ASSET_CONSTANTS.TYPES.FORM && data.Groups !== undefined && data.Groups.length === 1 ? data.Groups[0] : data;\r\n\r\n if (workingData.Standards !== undefined) {\r\n workingData.Standards.forEach((standard) => {\r\n standard.uniqueId = this.helperService.guid();\r\n });\r\n }\r\n });\r\n};\r\n\r\n/**\r\n * Using a variety of nested documents rather than key relationships makes it hard to work with this recursively\r\n * This method deals with that by collecting all of the required standards data as the callbacks trigger up the accordion tree\r\n *\r\n *\r\n * @param pageFormId These are the actual values that are passed up the accordion tree\r\n * @param pageId\r\n * @param formElementId\r\n * @param value\r\n * @param assetRefId\r\n */\r\nStandardsSelectionSidebarAccordion.prototype.updateChildStandard = function (pageFormId, pageId, formElementId, value, assetRefId) {\r\n this.updateStandard({\r\n value: value,\r\n pageFormId: pageFormId,\r\n pageId: pageId,\r\n formElementId: formElementId,\r\n assetRefId: assetRefId\r\n });\r\n};\r\n/**\r\n * ng-click handler for when the user changes the checkbox value\r\n * @param event\r\n * @param pageFormId\r\n * @param pageId\r\n * @param formElementId\r\n * @param assetRefId\r\n */\r\nStandardsSelectionSidebarAccordion.prototype.setChecked = function (event, pageFormId, pageId, formElementId, assetRefId) {\r\n this.updateStandard({\r\n value: event.target.checked,\r\n pageFormId: pageFormId,\r\n pageId: pageId,\r\n formElementId: formElementId,\r\n assetRefId: assetRefId\r\n });\r\n};\r\n\r\nangularAMD.component(\"standardsSelectionSidebarAccordionComponent\", standardsSelectionSidebarAccordionDefinition);\r\n\r\nexport { standardsSelectionSidebarAccordionDefinition as standardsSelectionSidebarAccordionComponent };\r\n","export default ` {{::panel.Title}} {{panel.StandardsSelected}} {{::panel.Description}}
{{::$ctrl.multiLanguageService.getString(\"sidebar.standards_selection.no_capability_elements\")}} {{::$ctrl.multiLanguageService.getString(\"sidebar.standards_selection.no_standards_elements\")}}
0\">
0\" asset-ref-id=\"::panel.AssetRefId || $ctrl.assetRefId || panel.PageFormId\"> 0\" page-form-id=\"::panel.PageFormId || $ctrl.pageFormId\" page-id=\"::panel.PageId\" asset-ref-id=\"::panel.AssetRefId || $ctrl.assetRefId || panel.PageFormId\">
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./templates/standards-selection-sidebar.html\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"./standardsSelectionSidebarAccordion.component\";\r\n\r\nclass StandardsSelectionSidebar extends NgComponent {\r\n constructor(multiLanguageService) {\r\n super();\r\n\r\n this._multiLanguageService = multiLanguageService;\r\n this.showLoading = true;\r\n this.errorMessage = null;\r\n }\r\n\r\n $onInit() {\r\n this.right_panel_holder_el = angular.element(document.getElementsByClassName(\"right-panel-holder\"));\r\n this.right_panel_holder_el.addClass(\"right-panel-holder__width-larger\");\r\n\r\n if (this.standardsData !== undefined && this.standardsData.length > 0) {\r\n this.onStandardsLoaded();\r\n }\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.standardsData !== undefined && !changes.standardsData.isFirstChange()) {\r\n this.onStandardsLoaded();\r\n }\r\n }\r\n\r\n onStandardsLoaded() {\r\n this.showLoading = false;\r\n if (this.standardsData.length === 0) {\r\n this.errorMessage = this._multiLanguageService.getString(\"sidebar.standards_selection.no_standards\");\r\n }\r\n }\r\n\r\n toggleStandard(pageFormId, pageId, formElementId, value, assetRefId) {\r\n this.onSelect({\r\n data: [\r\n {\r\n PageFormId: pageFormId,\r\n PageId: pageId,\r\n ElementId: formElementId,\r\n FormElementId: formElementId,\r\n AssetRefId: assetRefId\r\n }\r\n ],\r\n value: value\r\n });\r\n }\r\n}\r\n\r\nexport const standardsSelectionSidebar = {\r\n bindings: {\r\n standardsData: \"<\",\r\n onSelect: \"&\",\r\n ariaLabelHook: \"<\"\r\n },\r\n template: template,\r\n controller: StandardsSelectionSidebar\r\n};\r\n\r\nStandardsSelectionSidebar.$inject = [\"multiLanguageService\"];\r\nangularAMD.component(\"standardsSelectionSidebar\", standardsSelectionSidebar);\r\n","export default `
{{$ctrl.errorMessage}}
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { PANEL_CONSTANTS } from \"../../constants/panel.constants\";\r\nimport { ASSET_CONSTANTS } from \"../../constants/asset.constants\";\r\nimport { ACTION_CONSTANTS } from \"../../constants/action.constants\";\r\nimport \"./formElementInfoSidebar.provider\";\r\nimport \"../../feedback/feedbackSidebarServiceProvider/feedbackSidebarService.provider\";\r\nimport \"../../assetEndpointService/assetEndpoint.service\";\r\nimport \"../../builder/dataManager/dataManagerService\";\r\nimport \"../../spaMenu/assetInfoPanel/assetComments/commentsService\";\r\n\r\nexport class FormElementInfoService {\r\n constructor(formElementInfoSidebarService, $rootScope, AssetEndpointService, baseUrlsFactory, dataManagerService, commentsService, feedbackSidebarService) {\r\n this._formElementInfoSidebarService = formElementInfoSidebarService;\r\n this._feedbackSidebarService = feedbackSidebarService;\r\n this._elementData = new Map();\r\n this._$rootScope = $rootScope;\r\n this._assetEndpointService = AssetEndpointService;\r\n this._baseUrlsFactory = baseUrlsFactory;\r\n this._dataManagerService = dataManagerService;\r\n\r\n commentsService.addCommentListener(this._updateCommentCount.bind(this));\r\n }\r\n\r\n getElementDetails(elementId, assetId, timeslice = \"\") {\r\n return this._assetEndpointService.getElementDetails(assetId, elementId, timeslice);\r\n }\r\n\r\n addEvidence(responseId, elementId, newEvidence) {\r\n const elementData = this.getElementData(elementId);\r\n const saveObj = {\r\n ResponseAssetRefId: responseId,\r\n FormElementId: elementId,\r\n EvidenceMappings: newEvidence.map((evidence) => {\r\n return {\r\n EvidenceAssetRefId: evidence.Id,\r\n EvidenceJustification: evidence.Justification\r\n };\r\n })\r\n };\r\n\r\n return this._assetEndpointService.addEvidenceMapFromResponse(saveObj).then((response) => {\r\n const evidenceCount = elementData.elementInfo.evidence.length > 0 ? elementData.elementInfo.evidence[0].EvidenceItems.length : 0;\r\n const latestEvidenceList = evidenceCount > 0 ? [...elementData.elementInfo.evidence[0].EvidenceItems, ...response.data] : response.data;\r\n\r\n let status = \"\";\r\n if (latestEvidenceList.length > 0 && elementData.elementInfo.evidenceStatus === ASSET_CONSTANTS.EVIDENCE_STATES.NOT_EVIDENCED) {\r\n status = ASSET_CONSTANTS.EVIDENCE_STATES.PARTIALLY_EVIDENCED;\r\n }\r\n\r\n const manager = this._dataManagerService.getDto(responseId);\r\n elementData.onUpdateEvidence(latestEvidenceList, status, !manager.is_saved);\r\n\r\n if (elementData.onEvidenceAdded !== undefined) {\r\n elementData.onEvidenceAdded(response.data);\r\n }\r\n\r\n return latestEvidenceList;\r\n });\r\n }\r\n\r\n createTextOnlyEvidence(title, text) {\r\n const saveObj = {\r\n Title: title,\r\n Evidence: text\r\n };\r\n return this._assetEndpointService.addTextOnlyEvidence(saveObj);\r\n }\r\n\r\n removeEvidence(responseId, elementId, aggregateId) {\r\n return this._assetEndpointService.removeEvidenceMapFromResponse({ AggregateId: aggregateId }).then(() => {\r\n const elementData = this.getElementData(elementId);\r\n const latestEvidenceList = elementData.elementInfo.evidence[0].EvidenceItems.filter((evidence) => evidence.AggregateId !== aggregateId);\r\n\r\n let status = \"\";\r\n if (latestEvidenceList.length === 0 && elementData.elementInfo.evidenceStatus !== ASSET_CONSTANTS.EVIDENCE_STATES.NOT_EVIDENCED) {\r\n status = ASSET_CONSTANTS.EVIDENCE_STATES.NOT_EVIDENCED;\r\n }\r\n\r\n const manager = this._dataManagerService.getDto(responseId);\r\n elementData.onUpdateEvidence(latestEvidenceList, status, !manager.is_saved);\r\n\r\n return { evidence: latestEvidenceList, status: status };\r\n });\r\n }\r\n\r\n updateAnswerHistoryJustification(elementId, justification) {\r\n const elementData = this._elementData.get(elementId);\r\n elementData.onUpdateHistoryJustification(justification);\r\n }\r\n\r\n updateEvidenceJustification(evidenceItem) {\r\n const updateObj = {\r\n AggregateId: evidenceItem.AggregateId,\r\n Justification: evidenceItem.Justification\r\n };\r\n return this._assetEndpointService.updateEvidenceJustificationFromResponse(updateObj);\r\n }\r\n\r\n updateEvidenceStatus(elementId, evidenceIsComplete) {\r\n const elementData = this._elementData.get(elementId);\r\n elementData.onUpdateEvidence(null, evidenceIsComplete ? ASSET_CONSTANTS.EVIDENCE_STATES.FULLY_EVIDENCED : ASSET_CONSTANTS.EVIDENCE_STATES.PARTIALLY_EVIDENCED, true);\r\n\r\n return evidenceIsComplete;\r\n }\r\n\r\n _updateCommentCount(responseId, action, elementId) {\r\n const elementData = this.getElementData(elementId);\r\n if (elementData === undefined) {\r\n return;\r\n }\r\n\r\n const currentCount = elementData.elementInfo.totalComments;\r\n const newCount = action === ACTION_CONSTANTS.ADD ? currentCount + 1 : currentCount - 1;\r\n const manager = this._dataManagerService.getDto(responseId);\r\n elementData.onUpdateCommentCount(newCount, !manager.is_saved);\r\n }\r\n\r\n getElementData(elementId) {\r\n return this._elementData.get(elementId);\r\n }\r\n\r\n _setElementData(elementInfo, callbacks) {\r\n this._elementData.set(elementInfo.id, { elementInfo: elementInfo, ...callbacks });\r\n }\r\n\r\n _updateElementCallbacks(elementInfo, callbacks) {\r\n let elementData = this._elementData.get(elementInfo.id);\r\n elementData = { ...elementData, ...callbacks };\r\n this._elementData.set(elementInfo.id, elementData);\r\n }\r\n\r\n openElementInfoSidebar(data) {\r\n this._setElementData(data.info, data.callbacks);\r\n this._formElementInfoSidebarService.displayElementInfo(data.info.id, data.panelData, data.assetId, data.topLevelAssetId, data.onPanelClose);\r\n }\r\n\r\n openBlockFeedbackSidebar(data) {\r\n this._setElementData(data.info, data.callbacks);\r\n this._feedbackSidebarService.displayBlockFeedback(data.info.id, data.panelData, data.assetId, data.topLevelAssetId, data.onPanelClose);\r\n }\r\n\r\n openApprovalFeedbackSidebar(data) {\r\n this._setElementData(data.info, data.callbacks);\r\n this._feedbackSidebarService.displayApprovalFeedback(data.info.id, data.panelData, data.assetId, data.topLevelAssetId, data.onPanelClose);\r\n }\r\n\r\n openElementCommentsSidebar(data) {\r\n this._setElementData(data.info, data.callbacks);\r\n this._formElementInfoSidebarService.displayElementCommentsSidebar(data.assetId, data.info.id, data.panelData, data.topLevelAssetId, data.onPanelClose);\r\n }\r\n\r\n _openAddEvidenceSidebarAfterSave(data) {\r\n if (this._elementData.has(data.info.id)) {\r\n this._updateElementCallbacks(data.info, data.callbacks);\r\n } else {\r\n this._setElementData(data.info, data.callbacks);\r\n }\r\n\r\n const evidenceAssetIds = [];\r\n if (data.info.evidence !== undefined && data.info.evidence.length > 0) {\r\n data.info.evidence.forEach((evidence) => {\r\n evidence.EvidenceItems.forEach((evidenceItem) => {\r\n evidenceAssetIds.push(evidenceItem.Id);\r\n });\r\n });\r\n }\r\n\r\n const dataToBroadcast = {\r\n panel: PANEL_CONSTANTS.PANEL.ADD_EVIDENCE,\r\n assetId: data.assetId,\r\n anchorId: data.info.id,\r\n evidenceAssetIds: evidenceAssetIds,\r\n topLevelAssetId: data.topLevelAssetId,\r\n evidenceCount: data.evidenceCount,\r\n evidenceMinimum: data.evidenceMinimum\r\n };\r\n\r\n this._$rootScope.$broadcast(\"openRightHandSidePanel\", dataToBroadcast);\r\n }\r\n\r\n openAddEvidenceSidebar(data) {\r\n this._$rootScope.$broadcast(\"checkIsSavedFromIWantTo\", {\r\n afterSaveAction: { type: \"method\", method: this._openAddEvidenceSidebarAfterSave.bind(this, data) },\r\n forceSaveOfFormIfZeroRevision: true\r\n });\r\n }\r\n\r\n clearElementData(elementId) {\r\n this._elementData.delete(elementId);\r\n }\r\n}\r\n\r\nFormElementInfoService.$inject = [\"formElementInfoSidebarService\", \"$rootScope\", \"AssetEndpointService\", \"baseUrlsFactory\", \"dataManagerService\", \"commentsService\", \"feedbackSidebarService\"];\r\n\r\nangularAMD.service(\"formElementInfoService\", FormElementInfoService);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nexport class FormElementInfoSidebarProvider {\r\n constructor() {\r\n this.$get = () => {\r\n throw new Error(\"Missing implementation\");\r\n };\r\n }\r\n\r\n setResolver(resolver) {\r\n this.$get = resolver;\r\n }\r\n}\r\n\r\nangularAMD.provider(\"formElementInfoSidebarService\", FormElementInfoSidebarProvider);\r\n","export const mapCapabilityValueToLabel = (elementDto, value) => {\r\n if (elementDto.ElementType === \"CapabilityBinaryAnswerInput\") {\r\n if (value === \"high\") {\r\n return elementDto.PositiveLabel;\r\n } else if (value === \"low\") {\r\n return elementDto.NegativeLabel;\r\n } else {\r\n if (elementDto.Capability.AnswerHistory[0]) {\r\n if (elementDto.Capability.AnswerHistory[0].Answer === \"high\") {\r\n return elementDto.PositiveLabel;\r\n } else if (elementDto.Capability.AnswerHistory[0].Answer === \"low\") {\r\n return elementDto.NegativeLabel;\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n } else if (elementDto.ElementType === \"CapabilityOptionList-RadioButtons\") {\r\n if (typeof value === \"string\") {\r\n for (var i = 0; i < elementDto.Options.length; i++) {\r\n if (value === elementDto.Options[i].Id) {\r\n return elementDto.Options[i].Label;\r\n }\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n } else {\r\n return value;\r\n }\r\n};\r\n","const blockTypes = [\r\n \"SingleLineTextBox\",\r\n \"FormContentEmbedElement\",\r\n \"MultiLineTextBox\",\r\n \"OptionsList-RadioButtons\",\r\n \"OptionsList-Checkboxes\",\r\n \"OptionsList-DropDown\",\r\n \"DatePickerInput\",\r\n \"BinaryAnswerInput\",\r\n \"RangeInput-Likert\",\r\n \"RangeInput-Standard\",\r\n \"GenericTable\",\r\n \"CapabilityRangeInput-Standard\",\r\n \"CapabilityBinaryAnswerInput\",\r\n \"CapabilityOptionList-RadioButtons\",\r\n \"CapabilityEvidenceOnly\"\r\n];\r\n\r\nexport { blockTypes as FEEDBACK_BLOCK_TYPES };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../builder/tables/services/tableDtoHelper.service\";\r\nimport \"../wordCountInfoBar/wordCountHelper.service\";\r\nimport \"../../utilities/helpers\";\r\nimport { FEEDBACK_BLOCK_TYPES } from \"../../constants/feedbackBlockTypes.const\";\r\n\r\nangularAMD.factory(\"formComponentsHelper\", [\r\n \"multiLanguageService\",\r\n \"$rootScope\",\r\n \"tableDtoHelper\",\r\n \"wordCountHelper\",\r\n \"helpers\",\r\n function (multiLanguageService, $rootScope, tableDtoHelper, wordCountHelper, helpers) {\r\n var formComponentsHelper = {\r\n hasInvalidDigitalSignature: false,\r\n wordCountPreventsSave: false\r\n };\r\n\r\n formComponentsHelper.canElementSupportFeedback = function (element) {\r\n return !element.Permissions.AssessorField && !(element.ElementType === \"SingleLineTextBox\" && element.ElementPurpose === \"Title\") && FEEDBACK_BLOCK_TYPES.includes(element.ElementType);\r\n };\r\n\r\n formComponentsHelper._isPublicElement = function (obj) {\r\n return !obj.element.Permissions.Private && !obj.element.Permissions.Confidential && !obj.element.Permissions.AssessorField;\r\n };\r\n\r\n formComponentsHelper._displayPrivate = function (obj) {\r\n return obj.element.Permissions.Private && obj.user_is_an_owner;\r\n };\r\n\r\n formComponentsHelper._displayConfidential = function (obj) {\r\n return obj.element.Permissions.Confidential && (obj.assessor_viewing || obj.user_is_an_owner);\r\n };\r\n\r\n formComponentsHelper._displayAssessorField = function (obj) {\r\n return obj.element.Permissions.AssessorField;\r\n };\r\n\r\n formComponentsHelper.shouldElementDisplayAtAll = function (obj) {\r\n var hasPermission = this._isPublicElement(obj) || this._displayPrivate(obj) || this._displayConfidential(obj) || this._displayAssessorField(obj);\r\n if (!hasPermission) {\r\n return false;\r\n }\r\n\r\n if (this._displayAssessorField(obj) && obj.assessor_viewing) {\r\n return true;\r\n }\r\n\r\n return obj.view_mode ? this.shouldElementDisplayViewMode(obj) : this.shouldElementDisplayEditMode(obj);\r\n };\r\n\r\n formComponentsHelper.shouldElementDisplayEditMode = function (obj) {\r\n return !obj.view_mode;\r\n };\r\n\r\n formComponentsHelper.shouldElementDisplayViewMode = function (obj) {\r\n // if api field then its always view mode\r\n if (obj.element.Permissions.ApiField) {\r\n return true;\r\n }\r\n\r\n if (obj.element.Permissions.AssessorField && obj.assessor_viewing) {\r\n return true;\r\n }\r\n\r\n // check you are in view mode and it is not an assessor viewing an assessor field\r\n if (obj.view_mode) {\r\n // if you are always allowed to see it even when empty then return true\r\n if (obj.element.ShowElementInViewModeWhenEmpty) {\r\n return true;\r\n } else {\r\n // check if this element has an answer, if so return true, else return false\r\n switch (obj.element.ElementType) {\r\n /***********************************************************************************************/\r\n /***********************************************************************************************/\r\n /****************************** USER EDITABLE FIELDS *************************************/\r\n /***********************************************************************************************/\r\n /***********************************************************************************************/\r\n case \"SingleLineTextBox\":\r\n case \"MultiLineTextBox\":\r\n return formComponentsHelper.hasTextFieldBeenFilledIn(obj.element) || formComponentsHelper.checkForEvidence(obj.element);\r\n case \"DatePickerInput\":\r\n return formComponentsHelper.hasDateFieldBeenFilledIn(obj.element) || formComponentsHelper.checkForEvidence(obj.element);\r\n case \"OptionsList-RadioButtons\":\r\n case \"OptionsList-DropDown\":\r\n case \"CapabilityOptionList-RadioButtons\":\r\n return formComponentsHelper.hasOptionsListBeenFilledIn(obj.element) || formComponentsHelper.checkForEvidence(obj.element);\r\n case \"CapabilityBinaryAnswerInput\":\r\n case \"BinaryAnswerInput\":\r\n case \"RangeInput-Likert\":\r\n case \"RangeInput-Standard\":\r\n case \"CapabilityRangeInput-Standard\":\r\n return formComponentsHelper.hasUserSelectionBeenSelected(obj.element) || formComponentsHelper.checkForEvidence(obj.element);\r\n case \"OptionsList-Checkboxes\":\r\n return formComponentsHelper.hasAnyCheckboxBeenChecked(obj.element) || formComponentsHelper.checkForEvidence(obj.element);\r\n case \"CapabilityEvidenceOnly\":\r\n return formComponentsHelper.checkForEvidence(obj.element);\r\n case \"FormUserMediaPicker\":\r\n return formComponentsHelper.hasUserSelectedMedia(obj.element);\r\n case \"GenericTable\":\r\n return tableDtoHelper.isNotEmpty(obj.element);\r\n case \"UserDetails\":\r\n return formComponentsHelper.hasUserDetailsBeenSelected(obj.element);\r\n case \"FormSignatureElement\":\r\n return formComponentsHelper.hasItBeenSigned(obj.element);\r\n /***********************************************************************************************/\r\n /***********************************************************************************************/\r\n /************************************** ROWS *********************************************/\r\n /***********************************************************************************************/\r\n /***********************************************************************************************/\r\n case \"FormElementCells\":\r\n var showRow = false;\r\n // if any of the sub elements are going to show then show the row\r\n for (var a = 0; a < obj.element.Contents.length; a++) {\r\n var subElement = obj.element.Contents[a];\r\n\r\n var permissions = {\r\n element: subElement,\r\n view_mode: obj.view_mode,\r\n assessor_viewing: obj.assessor_viewing,\r\n user_is_an_owner: obj.user_is_an_owner\r\n };\r\n\r\n if (formComponentsHelper.shouldElementDisplayViewMode(permissions) && formComponentsHelper.hasElementBeenFilledIn(subElement)) {\r\n showRow = true;\r\n }\r\n }\r\n return showRow;\r\n /***********************************************************************************************/\r\n /***********************************************************************************************/\r\n /************************************** HINTS ********************************************/\r\n /***********************************************************************************************/\r\n /***********************************************************************************************/\r\n case \"HorizontalRule\":\r\n return obj.element.DisplayInViewMode; // show depending on this var\r\n case \"FormStaticTextElement-TextSection\":\r\n case \"FormStaticTextElement-CenteredMedia\":\r\n case \"FormStaticTextElement-MediaAndTextSection\":\r\n var mediaIdShown = true;\r\n var hintShown = true;\r\n var allowedToShow = false;\r\n\r\n if (obj.element.StaticMediaId === \"\") {\r\n mediaIdShown = false;\r\n }\r\n if (obj.element.StaticHint === \"\") {\r\n hintShown = false;\r\n }\r\n\r\n if (obj.element.ShowElementHintInViewMode === true && (mediaIdShown === true || hintShown === true)) {\r\n allowedToShow = true;\r\n }\r\n\r\n return allowedToShow; // show depending on this var\r\n case \"FormContentEmbedElement\":\r\n return obj.element.ShowElementHintInViewMode; // show depending on this var\r\n default:\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n formComponentsHelper.checkForEvidence = function (element) {\r\n if (element.Evidence.EvidenceAllowed) {\r\n if (element.Evidence.Evidence[0]) {\r\n // tslint:disable-next-line:triple-equals\r\n if ((element.Evidence.Evidence[0] && element.Evidence.Evidence[0].Justification != \"\") || (element.Evidence.Evidence[0] && element.Evidence.Evidence[0].EvidenceItems.length > 0)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n formComponentsHelper.checkIfMandatoryForCompletionValid = function (element) {\r\n if (element) {\r\n switch (element.ElementType) {\r\n case \"FormElementCells\":\r\n return formComponentsHelper.performRowMandatoryCheck(element);\r\n break;\r\n case \"MultiLineTextBox\":\r\n return formComponentsHelper.performMultilineMandatoryCheck(element);\r\n break;\r\n case \"CapabilityBinaryAnswerInput\":\r\n case \"BinaryAnswerInput\":\r\n case \"DatePickerInput\":\r\n case \"FormUserMediaPicker\":\r\n case \"RangeInput-Likert\":\r\n case \"RangeInput-Standard\":\r\n case \"CapabilityRangeInput-Standard\":\r\n case \"CapabilityOptionList-RadioButtons\":\r\n case \"OptionsList-RadioButtons\":\r\n case \"OptionsList-DropDown\":\r\n case \"OptionsList-Checkboxes\":\r\n case \"SingleLineTextBox\":\r\n case \"UserDetails\":\r\n case \"CapabilityEvidenceOnly\":\r\n return formComponentsHelper.performBasicNotEmptyMandatoryCheck(element);\r\n break;\r\n case \"GenericTable\":\r\n return formComponentsHelper.performTableMandatoryCheck(element);\r\n break;\r\n case \"FormContentEmbedElement\":\r\n case \"FormBranchingContainer\":\r\n case \"StandardsSelection\":\r\n case \"StandardsElement\":\r\n case \"HorizontalRule\":\r\n case \"FormStaticTextElement-TextSection\":\r\n case \"FormStaticTextElement-CenteredMedia\":\r\n case \"FormStaticTextElement-MediaAndTextSection\":\r\n case \"FormSignatureElement\":\r\n default:\r\n // these elements mandatory is not possible\r\n return { valid: true, type: \"checkNotPossible\" };\r\n break;\r\n }\r\n }\r\n\r\n return { valid: true, type: \"NotAnElement\" };\r\n };\r\n\r\n formComponentsHelper.performBasicNotEmptyMandatoryCheck = function (element) {\r\n // if mandatory is turned off immediately exit with a positive result\r\n if (element.MandatoryForProgress === false) {\r\n return { valid: true, type: \"checkNotEnabled\" };\r\n }\r\n // if mandatory is enabled do a basic check to see if element is filled in\r\n return formComponentsHelper.hasElementBeenFilledIn(element) ? { valid: true, type: \"checkEnabledButAllValid\" } : { valid: false, type: \"emptyField\" };\r\n };\r\n\r\n formComponentsHelper.performMultilineMandatoryCheck = function (element) {\r\n // if mandatory is turned off immediately exit with a positive result\r\n if (element.MandatoryForProgress === false) {\r\n return { valid: true, type: \"checkNotEnabled\" };\r\n }\r\n\r\n // if enabled check to see word count conditions are met\r\n if (element.WordCountEnabled === true) {\r\n // get word count\r\n var wordCount = wordCountHelper.getWordCount(element.AnswerText);\r\n if (wordCountHelper.wordCountIsInvalid(wordCount, element.MinWords, element.MaxWords)) {\r\n return { valid: false, type: \"wordCountFailed\" };\r\n }\r\n }\r\n\r\n // check to see if element is filled in\r\n return formComponentsHelper.hasElementBeenFilledIn(element) ? { valid: true, type: \"checkEnabledButAllValid\" } : { valid: false, type: \"emptyField\" };\r\n };\r\n\r\n formComponentsHelper.performTableMandatoryCheck = function (element) {\r\n if (element.MandatoryForProgress === false) {\r\n return { valid: true, type: \"checkNotEnabled\" };\r\n }\r\n\r\n return { valid: tableDtoHelper.isNotEmpty(element), type: \"emptyField\" };\r\n };\r\n\r\n formComponentsHelper.performRowMandatoryCheck = function (element) {\r\n // check if mandatory is enabled on any children\r\n var anyChildMandatory = false;\r\n for (var a = 0; a < element.Contents.length; a++) {\r\n if (element.Contents[a].MandatoryForProgress === true) {\r\n anyChildMandatory = true;\r\n }\r\n }\r\n\r\n // if mandatory is turned off immediately exit with a positive result\r\n if (anyChildMandatory === false) {\r\n return { valid: true, type: \"checkNotEnabled\" };\r\n }\r\n\r\n // go through the children to see if any of them are invalid.\r\n var childMandatory = null;\r\n for (var b = 0; b < element.Contents.length; b++) {\r\n childMandatory = formComponentsHelper.checkIfMandatoryForCompletionValid(element.Contents[b]);\r\n if (childMandatory && childMandatory.valid === false) {\r\n // if any child turns out to be false then immediately return it as it means the whole row is invalid\r\n return childMandatory;\r\n }\r\n }\r\n\r\n // if the code gets to this point then all children are valid so return positive\r\n return { valid: true, type: \"checkEnabledButAllValid\" };\r\n };\r\n\r\n formComponentsHelper.hasElementBeenFilledIn = function (element) {\r\n // THIS FUNCTION SHOULD ONLY HAVE USER EDITABLE ELEMENTS IN IT\r\n if (element) {\r\n switch (element.ElementType) {\r\n case \"SingleLineTextBox\":\r\n case \"MultiLineTextBox\":\r\n return formComponentsHelper.hasTextFieldBeenFilledIn(element);\r\n break;\r\n case \"DatePickerInput\":\r\n return formComponentsHelper.hasDateFieldBeenFilledIn(element);\r\n break;\r\n case \"OptionsList-RadioButtons\":\r\n case \"OptionsList-DropDown\":\r\n case \"CapabilityOptionList-RadioButtons\":\r\n return formComponentsHelper.hasOptionsListBeenFilledIn(element);\r\n break;\r\n case \"CapabilityBinaryAnswerInput\":\r\n case \"BinaryAnswerInput\":\r\n case \"RangeInput-Likert\":\r\n case \"RangeInput-Standard\":\r\n case \"CapabilityRangeInput-Standard\":\r\n return formComponentsHelper.hasUserSelectionBeenSelected(element);\r\n break;\r\n case \"OptionsList-Checkboxes\":\r\n return formComponentsHelper.hasAnyCheckboxBeenChecked(element);\r\n break;\r\n case \"CapabilityEvidenceOnly\":\r\n return formComponentsHelper.checkForEvidence(element);\r\n break;\r\n case \"FormUserMediaPicker\":\r\n return formComponentsHelper.hasUserSelectedMedia(element);\r\n break;\r\n case \"GenericTable\":\r\n return tableDtoHelper.isNotEmpty(element);\r\n break;\r\n case \"UserDetails\":\r\n return formComponentsHelper.hasUserDetailsBeenSelected(element);\r\n break;\r\n case \"FormSignatureElement\":\r\n return formComponentsHelper.hasItBeenSigned(element);\r\n break;\r\n case \"FormElementCells\":\r\n return formComponentsHelper.haveRowsChildrenBeenFilledIn(element);\r\n break;\r\n }\r\n }\r\n\r\n return true; // if not in the switch statement then it should not be a user editable field\r\n };\r\n\r\n formComponentsHelper.hasTextFieldBeenFilledIn = function (element) {\r\n // if the user has written in the answer text return true\r\n // tslint:disable-next-line:triple-equals\r\n return element.AnswerText !== undefined && element.AnswerText !== null && !helpers.isEmpty(element.AnswerText);\r\n };\r\n\r\n formComponentsHelper.hasDateFieldBeenFilledIn = function (element) {\r\n return (element.StartDateTime !== undefined && element.StartDateTime !== null) || (element.EndDateTime !== undefined && element.EndDateTime !== null);\r\n };\r\n\r\n formComponentsHelper.hasOptionsListBeenFilledIn = function (element) {\r\n // if the user has selected a radio button or dropdown then return true\r\n // tslint:disable-next-line:triple-equals\r\n return element.UsersAnswer !== undefined && element.UsersAnswer !== null && element.UsersAnswer != \"\";\r\n };\r\n\r\n formComponentsHelper.hasUserSelectionBeenSelected = function (element) {\r\n // if the user has selected a radio button or dropdown then return true\r\n // tslint:disable-next-line:triple-equals\r\n return element.UserSelection !== undefined && element.UserSelection !== null && element.UserSelection != \"\";\r\n };\r\n\r\n formComponentsHelper.hasAnyCheckboxBeenChecked = function (element) {\r\n // if the user has select any of the checkbox then straight away return true\r\n if (element.Options !== null && element.Options !== undefined) {\r\n for (var i = 0; i < element.Options.length; i++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (element.Options[i].Checked === \"true\" || element.Options[i].Checked == true) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n formComponentsHelper.hasUserSelectedMedia = function (element) {\r\n return !!element.UserSelectedMediaId; // !! to stop it returning just the actual media id and turn it into a bool\r\n };\r\n\r\n formComponentsHelper.hasUserDetailsBeenSelected = function (element) {\r\n return element.Users && element.Users.length > 0;\r\n };\r\n\r\n formComponentsHelper.hasItBeenSigned = function (element) {\r\n return !!element.Signature; // !! to stop it returning just the actual media id and turn it into a bool\r\n };\r\n\r\n formComponentsHelper.haveRowsChildrenBeenFilledIn = function (element) {\r\n var childrenValid = true;\r\n for (var a = 0; a < element.Contents.length; a++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (formComponentsHelper.hasElementBeenFilledIn(element.Contents[a]) == false) {\r\n childrenValid = false;\r\n }\r\n }\r\n return childrenValid;\r\n };\r\n\r\n formComponentsHelper.shouldElementDisplayGreyedOutAssessorMode = function (obj) {\r\n if (!obj.assessor_viewing && obj.element.Permissions.AssessorField) {\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n formComponentsHelper.countWords = function (htmlText) {\r\n var text = helpers.htmlToPlain(htmlText);\r\n\r\n // Count all space/tab/enter\r\n var s = text ? text.split(/ |\\.\\S/) : 0;\r\n return s ? s.length : \"\";\r\n };\r\n\r\n formComponentsHelper.formValidation = function (form, workbook_mode, page_title) {\r\n var _isValid_ = true,\r\n _errorMessage_ = \"\";\r\n for (var i = 0; i < form.Elements.length; i++) {\r\n var element = form.Elements[i];\r\n switch (element.ElementType) {\r\n case \"SingleLineTextBox\":\r\n if (element.ElementPurpose === multiLanguageService.getString(\"labels.selector.title\")) {\r\n if (workbook_mode === true) {\r\n if (\r\n element.AnswerText === undefined ||\r\n element.AnswerText === null ||\r\n element.AnswerText === \"\" ||\r\n element.AnswerText === multiLanguageService.getString(\"buttons.block_provider.no_title\")\r\n ) {\r\n element.AnswerText = page_title;\r\n }\r\n } else {\r\n if (element.AnswerText !== undefined && element.AnswerText !== null && element.AnswerText !== \"\") {\r\n element.isValid = true;\r\n } else {\r\n element.isValid = false;\r\n if (_isValid_) {\r\n _errorMessage_ = multiLanguageService.getString(\"labels.canvas.no_title\");\r\n }\r\n _isValid_ = false;\r\n }\r\n }\r\n }\r\n break;\r\n case \"MultiLineTextBox\":\r\n if (element.AnswerText && element.MaxWords > 0 && formComponentsHelper.wordCountPreventsSave === true) {\r\n // get word count\r\n var wordCount = this.countWords(element.AnswerText);\r\n // compare wordcount to MaxWords setting\r\n if (wordCount > element.MaxWords) {\r\n element.isValid = false;\r\n if (_isValid_) {\r\n _errorMessage_ = multiLanguageService.getString(\"labels.canvas.too_many_words\") + element.MaxWords.toString();\r\n }\r\n _isValid_ = false;\r\n } else {\r\n element.isValid = true;\r\n }\r\n }\r\n break;\r\n case \"FormStaticTextElement-TextSection\":\r\n break;\r\n case \"HorizontalRule\":\r\n break;\r\n case \"OptionsList-Checkboxes\":\r\n break;\r\n case \"OptionsList-RadioButtons\":\r\n break;\r\n case \"DatePickerInput\":\r\n // tslint:disable-next-line:triple-equals\r\n if (element.AddEndDate == true && element.StartDateTime != null && element.EndDateTime == null && element.Ongoing == false) {\r\n element.isValid = false;\r\n if (_isValid_) {\r\n _errorMessage_ = multiLanguageService.getString(\"labels.canvas.no_end_date\");\r\n }\r\n _isValid_ = false;\r\n // tslint:disable-next-line:triple-equals\r\n } else if (element.AddEndDate == true && element.StartDateTime == null && element.EndDateTime != null && element.Ongoing == false) {\r\n element.isValid = false;\r\n if (_isValid_) {\r\n _errorMessage_ = multiLanguageService.getString(\"labels.canvas.no_start_date\");\r\n }\r\n _isValid_ = false;\r\n } else {\r\n element.isValid = true;\r\n }\r\n break;\r\n case \"OptionsList-DropDown\":\r\n break;\r\n case \"UserDetails\":\r\n break;\r\n case \"FormStaticTextElement-MediaAndTextSection\":\r\n break;\r\n case \"FormStaticTextElement-CenteredMedia\":\r\n break;\r\n case \"FormUserMediaPicker\":\r\n break;\r\n case \"CapabilityRangeInput-Standard\":\r\n case \"CapabilityBinaryAnswerInput\":\r\n case \"CapabilityOptionList-RadioButtons\":\r\n if (element.currentlyJustifying) {\r\n element.isValid = false;\r\n if (_isValid_) {\r\n _errorMessage_ = multiLanguageService.getString(\"capability_justification.unable_to_save_due_to_justification\");\r\n }\r\n _isValid_ = false;\r\n } else {\r\n element.isValid = true;\r\n }\r\n break;\r\n case \"FormElementCells\":\r\n break;\r\n case \"FormSignatureElement\":\r\n // tslint:disable-next-line:triple-equals\r\n const justBeenSigned = $rootScope.justBeenSigned == false;\r\n if (justBeenSigned && element.Signature && (element.SignatureBase64 || element.Signature.SignatureId || element.Signature.SignatureBase64) && !form.is_saved) {\r\n element.EditedSinceSigned = true;\r\n if (element.BlankWhenEdited) {\r\n $rootScope.$broadcast(\"removeDigitalSignature\" + element.Id);\r\n } else {\r\n $rootScope.$broadcast(\"warningDigitalSignature\" + element.Id);\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (!_isValid_) {\r\n break;\r\n }\r\n }\r\n return { form: form, valid: _isValid_, message: _errorMessage_ };\r\n };\r\n\r\n formComponentsHelper.updateDigitalSignaturesState = function (elementDto, viewMode) {\r\n if (elementDto.Signature && (elementDto.Signature.SignatureId || elementDto.SignatureBase64)) {\r\n if (!$rootScope.signatureWarnings) {\r\n //#future-refactor Digital Signatures in general.\r\n $rootScope.signatureWarnings = {\r\n warning: 0,\r\n blank: 0,\r\n disableresign: 0\r\n };\r\n }\r\n\r\n if (!viewMode) {\r\n if (elementDto.BlankWhenEdited === true) {\r\n //Don't ask me...\r\n $rootScope.signatureWarnings.blank++;\r\n\r\n if (elementDto.DisableResigning) {\r\n $rootScope.signatureWarnings.disableresign++;\r\n }\r\n } else if (elementDto.EditedSinceSigned !== true) {\r\n $rootScope.signatureWarnings.warning++;\r\n }\r\n }\r\n }\r\n };\r\n\r\n formComponentsHelper.validateComponent = function (componentScope) {\r\n if (componentScope.hasOwnProperty(\"checkIfValid\")) {\r\n return componentScope.checkIfValid();\r\n //FIXME: Keep hacky old API in working order. Replace once all components have been upgraded\r\n } else if (componentScope.element.required) {\r\n return componentScope.element.required.valid ? true : componentScope.element.required.errorMessage;\r\n }\r\n };\r\n\r\n formComponentsHelper.validateActiveElements = function (componentScopes, resetState) {\r\n var componentScope = null,\r\n validationResponse = \"\",\r\n errorMessage = \"\";\r\n\r\n if (resetState) {\r\n this.hasInvalidDigitalSignature = false; //Reset state before checking validation\r\n }\r\n\r\n //Run through all componentScope and call checkIfValid to get components to check validation and display any issues.\r\n for (var i = 0, l = componentScopes.length; i < l; i++) {\r\n componentScope = componentScopes[i];\r\n\r\n if (componentScope.element.ElementType === \"FormSignatureElement\") {\r\n //Funky state updates for Digital Signatures.\r\n // tslint:disable-next-line:triple-equals\r\n if ($rootScope.verifyBeforeSaving == true) {\r\n $rootScope.verifyBeforeSaving = false;\r\n\r\n validationResponse = this.validateComponent(componentScope);\r\n if (validationResponse !== true && errorMessage === \"\") {\r\n errorMessage = validationResponse;\r\n }\r\n $rootScope.verifyBeforeSaving = true;\r\n }\r\n\r\n this.updateDigitalSignaturesState(componentScope.element, componentScope.view_mode);\r\n\r\n if (componentScope.disableDefaultInvalidModal && !this.hasInvalidDigitalSignature) {\r\n this.hasInvalidDigitalSignature = componentScope.disableDefaultInvalidModal;\r\n }\r\n } else {\r\n validationResponse = this.validateComponent(componentScope);\r\n if (validationResponse !== true && errorMessage === \"\") {\r\n errorMessage = validationResponse;\r\n }\r\n }\r\n }\r\n\r\n return {\r\n allValid: errorMessage === \"\",\r\n message: errorMessage\r\n };\r\n };\r\n\r\n /**\r\n * @param {Object} elementDto\r\n * @param {Boolean} hasWritePermission\r\n * @param {Boolean} isAssessor\r\n * @param {Boolean} viewMode\r\n * @param {string} formResponseId\r\n * @param {string} observableId\r\n * @param {string|null} pageId\r\n * @param {string} templateId\r\n * @param {string} workbookId\r\n * @param {Boolean} inFeedbackTemplateMode\r\n * @param {string} timeslice\r\n * @returns {Object}\r\n */\r\n formComponentsHelper.createElementInfoObject = function (\r\n elementDto,\r\n hasWritePermission,\r\n isAssessor,\r\n viewMode,\r\n formResponseId,\r\n observableId,\r\n pageId,\r\n templateId,\r\n workbookId,\r\n inFeedbackTemplateMode,\r\n timeslice,\r\n anchorInfo\r\n ) {\r\n return {\r\n element: elementDto || null,\r\n view_mode: viewMode,\r\n user_is_an_owner: hasWritePermission,\r\n assessor_viewing: isAssessor,\r\n formResponseId: formResponseId,\r\n observableId: observableId,\r\n pageId: pageId,\r\n workbookId: workbookId,\r\n templateId: templateId,\r\n inFeedbackTemplateMode: inFeedbackTemplateMode,\r\n timeslice: timeslice || null,\r\n anchorInfo: anchorInfo !== undefined ? anchorInfo : null\r\n };\r\n };\r\n\r\n formComponentsHelper.setCustomDtoValues = function (dto) {\r\n dto.isValid = dto.isValid !== undefined ? dto.isValid : true;\r\n\r\n dto.required = {\r\n valid: dto.isValid,\r\n type: \"\"\r\n };\r\n\r\n dto.mandatoryField = {\r\n valid: !dto.MandatoryForProgress,\r\n type: \"\",\r\n displayError: false\r\n };\r\n\r\n return dto;\r\n };\r\n\r\n return formComponentsHelper;\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/typeCheck.service\";\r\n\r\nangularAMD.service(\"wordCountHelper\", WordCountHelper);\r\nWordCountHelper.$inject = [\"typeCheck\", \"helpers\"];\r\n\r\nfunction WordCountHelper(typeCheck, helpers) {\r\n // Public API\r\n // =============================================================================================================\r\n this.wordCountIsInvalid = wordCountIsInvalid;\r\n this.getWordCount = getWordCount;\r\n\r\n // Private variables\r\n var newLineTags = [\"div\", \"p\", \"br\", \"li\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"];\r\n var wordMatch = /(https?:\\/\\/[a-z\\d.\\/\\-#?=&%]+)|([\\w.-]+@[\\w.]+)|(\\w)+['\\-(]*\\w*/g;\r\n\r\n // Private methods\r\n // =============================================================================================================\r\n function wordCountIsInvalid(wordCount, minWords, maxWords) {\r\n if (maxWords === 0) {\r\n return wordCount < minWords;\r\n } else {\r\n return wordCount < minWords || wordCount > maxWords;\r\n }\r\n }\r\n\r\n function secureWhiteSpace(content) {\r\n var regex,\r\n regexStr = \"\";\r\n\r\n for (var i = 0, l = newLineTags.length; i < l; i++) {\r\n regexStr = \"<\" + newLineTags[i] + \">\";\r\n regex = new RegExp(regexStr, \"g\");\r\n content = content.replace(regex, \"\\n\" + regexStr);\r\n }\r\n\r\n return content;\r\n }\r\n\r\n function countWords(content) {\r\n content = content.match(wordMatch);\r\n if (content !== null) {\r\n return content.length;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function getWordCount(content) {\r\n if (!content) {\r\n return 0;\r\n }\r\n\r\n content = secureWhiteSpace(content);\r\n return countWords(helpers.htmlToPlain(content));\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\n\r\nclass HeadingComponent extends NgComponent {\r\n constructor() {\r\n super();\r\n }\r\n\r\n $onChanges() {\r\n this.headingMarkup = `${this.content}`;\r\n }\r\n}\r\n\r\nexport const headingDefinition = {\r\n bindings: {\r\n level: \"<\",\r\n content: \"<\",\r\n className: \"<\"\r\n },\r\n template: `
`,\r\n controller: HeadingComponent\r\n};\r\n\r\nHeadingComponent.$inject = [];\r\nangularAMD.component(\"heading\", headingDefinition);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport template from \"./templates/sliding-banner.html\";\r\n\r\nangularAMD.directive(\"findLastSlide\", function () {\r\n return {\r\n scope: true,\r\n\r\n link: function (scope) {\r\n if (scope.$last) {\r\n scope.init();\r\n }\r\n }\r\n };\r\n});\r\nangularAMD.directive(\"lazyImgLoader\", function () {\r\n return {\r\n scope: true,\r\n\r\n link: function (scope, element, attrs) {\r\n // watch lazy-img-loader attribute, when it's empty or when it's ready unwatch it\r\n var unbindAttrWatch = scope.$watch(attrs.lazyImgLoader, function (response) {\r\n // if response not null, then do further processing\r\n if (response) {\r\n var unbindScopeWatch = scope.$watch(\"id\", function (current_id) {\r\n // tslint:disable-next-line:triple-equals\r\n if (current_id == scope.$index) {\r\n attrs.$set(\"src\", response);\r\n unbindScopeWatch();\r\n unbindAttrWatch();\r\n }\r\n });\r\n }\r\n // unwatch this attribute because img already loaded at the start\r\n else {\r\n unbindAttrWatch();\r\n }\r\n });\r\n }\r\n };\r\n});\r\nangularAMD.directive(\"slidingBanner\", [\r\n \"$compile\",\r\n \"$rootScope\",\r\n \"$interval\",\r\n \"$timeout\",\r\n \"$window\",\r\n \"$sce\",\r\n \"baseUrlsFactory\",\r\n \"multiLanguageService\",\r\n function ($compile, $rootScope, $interval, $timeout, $window, $sce, baseUrlsFactory, multiLanguageService) {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n function ($scope, $element) {\r\n $scope.multiLanguageService = multiLanguageService;\r\n $scope.shared_component_base_url = baseUrlsFactory.shared_component_base_url;\r\n $scope.helpIconsFolder = $sce.getTrustedResourceUrl($scope.shared_component_base_url + \"builder/helpBannerTemplates/workbook/images/\");\r\n\r\n // Delay between slides (default 20-30 seconds)\r\n $scope.delay_between_slides = 20000;\r\n\r\n // $scope.bannerData = function () {\r\n // helpBannerFactory.getBannerSlidesData().success(function (data) {\r\n // $scope.slides = data;\r\n // $rootScope.banner_ready = true;\r\n // });\r\n // }();\r\n\r\n $rootScope.banner_ready = true;\r\n\r\n // Cache elements need by banner\r\n var banner_slide_el = $element[0].getElementsByClassName(\"banner-slide\");\r\n $scope.help_banner_toggle_btn_el = document.getElementsByClassName(\"help-banner-toggle-btn\")[0];\r\n var sliding_banner_holder_el = $element[0].querySelector(\".sliding-banner-holder\");\r\n var wrapped_sliding_banner_holder_el = angular.element(sliding_banner_holder_el);\r\n var banner_video_container_el = angular.element(document.getElementById(\"banner-video-container\"));\r\n\r\n $scope.checkWidth = function () {\r\n if (\r\n $scope.$parent.title === multiLanguageService.getString(\"page_titles.workbook_builder\") ||\r\n $scope.$parent.title === multiLanguageService.getString(\"page_titles.template_builder\")\r\n ) {\r\n var sliding_banner_full_width = wrapped_sliding_banner_holder_el.addClass(\"full-width\");\r\n }\r\n };\r\n\r\n $scope.checkWidth();\r\n\r\n $scope.tabToCloseButton = function (e) {\r\n if (e.keyCode === 9 && e.shiftKey === false) {\r\n e.preventDefault();\r\n document.getElementById(\"helpBannerToggleBtn\").focus();\r\n }\r\n };\r\n\r\n $scope.getVideoUrl = function (videoNumber) {\r\n var helpVideo = videoNumber - 1;\r\n return $scope.helpData.content[helpVideo].video_source;\r\n };\r\n\r\n $scope.startPlayVideo = function (e) {\r\n var target = e.target;\r\n var parentContainer = target.parentNode.parentNode;\r\n var videoApi = parentContainer.getElementsByTagName(\"video\")[0];\r\n videoApi.play();\r\n target.parentNode.removeChild(target);\r\n };\r\n\r\n /**\r\n * Get base elements to trigger banner\r\n */\r\n $scope.getElements = function () {\r\n // if initial run then make first element as current\r\n\r\n if (!sliding_banner_holder_el.querySelector(\".current\")) {\r\n $scope.cur_el = angular.element(banner_slide_el[0]);\r\n $scope.cur_el.addClass(\"current\");\r\n } else {\r\n $scope.cur_el = angular.element(sliding_banner_holder_el.querySelector(\".current\"));\r\n }\r\n\r\n // if initial run then make second element as next\r\n if (!sliding_banner_holder_el.querySelector(\".next\")) {\r\n if ($scope.len >= 2) {\r\n $scope.next_el = angular.element(banner_slide_el[1]);\r\n $scope.next_el.addClass(\"next\");\r\n }\r\n } else {\r\n // Specifically looking for next within the help, previously it was looking in the whole dom and picking up an element from a date field with a next class.\r\n $scope.next_el = angular.element(sliding_banner_holder_el.querySelector(\".next\"));\r\n angular.element(banner_slide_el[$scope.id + 1]).addClass(\"next\");\r\n }\r\n\r\n // if initial run then make zero element as prev\r\n if (!sliding_banner_holder_el.querySelector(\".prev\")) {\r\n $scope.prev_el = angular.element(banner_slide_el[$scope.len - 1]);\r\n $scope.prev_el.addClass(\"prev\");\r\n } else {\r\n $scope.prev_el = angular.element(sliding_banner_holder_el.querySelector(\".prev\"));\r\n }\r\n };\r\n\r\n /**\r\n * Slides to exact slide by demand\r\n * @param _id\r\n */\r\n $scope.slideToExact = function (_id) {\r\n var local = {};\r\n local.id = _id;\r\n local.last_id = $scope.id;\r\n\r\n // stop slider from sliding after click\r\n $scope.pauseSlider();\r\n\r\n // update elements' variables\r\n $scope.getElements();\r\n\r\n // clear classes from current \"next\" and \"prev\" elements\r\n $scope.next_el.removeClass(\"next\");\r\n $scope.prev_el.removeClass(\"prev\");\r\n\r\n // if slider isn't last then add to next slide class \"next\"\r\n local._next_el.addClass(\"next\");\r\n if (local.id + 1 < $scope.len) {\r\n local._next_el = angular.element(banner_slide_el[local.id + 1]);\r\n } else {\r\n // add class \"next\" to first slide\r\n local._next_el = angular.element(banner_slide_el[0]);\r\n }\r\n\r\n // if slider isn't first then add to previous slide class \"prev\"\r\n if (local.id - 1 >= 0) {\r\n local._prev_el = angular.element(banner_slide_el[local.id - 1]);\r\n local._prev_el.addClass(\"prev\");\r\n } else {\r\n // add class \"next\" to first slide\r\n local._prev_el = angular.element(banner_slide_el[$scope.len - 1]);\r\n local._prev_el.addClass(\"prev\");\r\n }\r\n\r\n // save clicked item as current element\r\n local._cur_el = angular.element(banner_slide_el[local.id]);\r\n\r\n // make previously current element as \"next\" or \"prev\" depending on\r\n // which bullet point user clicked\r\n if (local.id > local.last_id) {\r\n local._cur_el.addClass(\"next\");\r\n } else {\r\n local._cur_el.addClass(\"prev\");\r\n }\r\n setTimeout(function () {\r\n // remove current class from previously\r\n $scope.cur_el.removeClass(\"current\");\r\n if (local.id > local.last_id) {\r\n $scope.cur_el.addClass(\"prev\");\r\n } else {\r\n $scope.cur_el.addClass(\"next\");\r\n }\r\n\r\n local._cur_el.removeClass(\"next\");\r\n local._cur_el.removeClass(\"prev\");\r\n\r\n local._cur_el.addClass(\"current\");\r\n }, 25);\r\n setTimeout(function () {\r\n if (local.id > local.last_id) {\r\n if (local._prev_el[0] !== $scope.cur_el[0]) {\r\n $scope.cur_el.removeClass(\"prev\");\r\n }\r\n } else {\r\n if (local._next_el[0] !== $scope.cur_el[0]) {\r\n $scope.cur_el.removeClass(\"next\");\r\n }\r\n }\r\n }, 400);\r\n\r\n // start slider again\r\n //$scope.startSlider();\r\n };\r\n\r\n /**\r\n * Slides to previous slide\r\n */\r\n $scope.prevSlide = function () {\r\n $scope.getElements();\r\n\r\n // if id become maximum, then drop it to 0\r\n if ($scope.id > 0) {\r\n $scope.id--;\r\n } else {\r\n $scope.id = $scope.len - 1;\r\n }\r\n\r\n // make current slide as next\r\n $scope.cur_el.removeClass(\"current\");\r\n $scope.cur_el.addClass(\"next\");\r\n\r\n // make previous slide as current\r\n $scope.prev_el.removeClass(\"prev\");\r\n $scope.prev_el.addClass(\"current\");\r\n\r\n // find previous slide and add class to it\r\n $scope.next_el.removeClass(\"next\");\r\n if (banner_slide_el[$scope.id - 1]) {\r\n angular.element(banner_slide_el[$scope.id - 1]).addClass(\"prev\");\r\n } else {\r\n // if you reached first slide, then previous slide will be last slide in array\r\n angular.element(banner_slide_el[$scope.len - 1]).addClass(\"prev\");\r\n }\r\n };\r\n\r\n /**\r\n * Slides to previous slide\r\n */\r\n $scope.nextSlide = function () {\r\n $scope.getElements();\r\n\r\n // if id become maximum, then drop it to 0\r\n if ($scope.id < $scope.len - 1) {\r\n $scope.id++;\r\n } else {\r\n $scope.id = 0;\r\n }\r\n\r\n // make current slide as previous\r\n $scope.cur_el.removeClass(\"current\");\r\n $scope.cur_el.addClass(\"prev\");\r\n\r\n // make next slide as current\r\n $scope.next_el.removeClass(\"next\");\r\n $scope.next_el.addClass(\"current\");\r\n\r\n // make prev slide as next\r\n $scope.prev_el.removeClass(\"prev\");\r\n if (banner_slide_el[$scope.id + 1]) {\r\n angular.element(banner_slide_el[$scope.id + 1]).addClass(\"next\");\r\n } else {\r\n // in case you reached last slide, then next will be first in array\r\n angular.element(banner_slide_el[0]).addClass(\"next\");\r\n }\r\n };\r\n\r\n $scope.slideToIndex = function ($event, index) {\r\n if ($event.keyCode === 9 && !$event.shiftKey) {\r\n if (!$scope.helpMinimised) {\r\n $event.preventDefault();\r\n }\r\n index += 1;\r\n } else if ($event.keyCode === 9 && $event.shiftKey) {\r\n if (!$scope.helpMinimised) {\r\n $event.preventDefault();\r\n }\r\n index -= 1;\r\n } else {\r\n return;\r\n }\r\n\r\n $scope.getElements();\r\n\r\n // if id become maximum, then drop it to 0\r\n if (index <= $scope.len - 1 && index >= 0) {\r\n $scope.id = index;\r\n } else {\r\n $scope.help_banner_toggle_btn_el.focus();\r\n return;\r\n }\r\n\r\n // make current slide as previous\r\n $scope.cur_el.removeClass(\"current\");\r\n\r\n // make next slide as current\r\n $scope.next_el.removeClass(\"next\");\r\n\r\n // make prev slide as next\r\n $scope.prev_el.removeClass(\"prev\");\r\n\r\n if (banner_slide_el[$scope.id - 1]) {\r\n angular.element(banner_slide_el[$scope.id - 1]).addClass(\"prev\");\r\n } else {\r\n // if you reached first slide, then previous slide will be last slide in array\r\n angular.element(banner_slide_el[$scope.len - 1]).addClass(\"prev\");\r\n }\r\n\r\n if (banner_slide_el[$scope.id]) {\r\n angular.element(banner_slide_el[$scope.id]).addClass(\"current\");\r\n }\r\n\r\n if (banner_slide_el[$scope.id + 1]) {\r\n angular.element(banner_slide_el[$scope.id + 1]).addClass(\"next\");\r\n } else {\r\n // in case you reached last slide, then next will be first in array\r\n angular.element(banner_slide_el[0]).addClass(\"next\");\r\n }\r\n\r\n setTimeout(function () {\r\n banner_slide_el[$scope.id].focus();\r\n }, 500);\r\n };\r\n\r\n /**\r\n * Starts slider timer that repeat animation every N seconds\r\n\r\n $scope.startSlider = function () {\r\n // start slider ONLY if it was paused/stopped\r\n if (!$scope.is_slider_started && !$scope.force_slider_stop) {\r\n $scope.slider_interval = $interval(function () {\r\n $scope.nextSlide();\r\n }, $scope.delay_between_slides);\r\n }\r\n\r\n // change current slider state to running\r\n $scope.is_slider_started = true;\r\n };*/\r\n\r\n /**\r\n * Pauses slider\r\n * Actually, it stops the timer completely and cleans the memory\r\n */\r\n $scope.pauseSlider = function () {\r\n $interval.cancel($scope.slider_interval);\r\n\r\n // change current slider state to paused/stopper\r\n $scope.is_slider_started = false;\r\n };\r\n\r\n $scope.bindSliderEvents = function () {\r\n document.getElementById(\"slidingBannerPreviousBtn\").addEventListener(\"click\", $scope.prevSlide);\r\n document.getElementById(\"slidingBannerNextBtn\").addEventListener(\"click\", $scope.nextSlide);\r\n };\r\n\r\n /**\r\n * Initialize banner after DOM and ng-repeat are ready\r\n */\r\n $scope.init = function () {\r\n // total number of slides in a banner\r\n $scope.len = banner_slide_el.length;\r\n // get initial id for first slide\r\n $scope.id = 0;\r\n\r\n $scope.bindSliderEvents();\r\n\r\n if ($scope.len > 0) {\r\n $scope.getElements();\r\n\r\n // $scope.startSlider();\r\n }\r\n };\r\n\r\n /**\r\n * Stops video, removes video iframe,show slides again\r\n */\r\n $scope.stopVideo = function () {\r\n $element.removeClass(\"active\");\r\n var all_iframe_elems = angular.element(banner_video_container_el[0].getElementsByTagName(\"iframe\"));\r\n all_iframe_elems.remove();\r\n wrapped_sliding_banner_holder_el.removeClass(\"inactive\");\r\n\r\n // resume banner\r\n $scope.force_slider_stop = false;\r\n //$scope.startSlider();\r\n };\r\n }\r\n ],\r\n\r\n link: function (scope) {\r\n /**\r\n * Stops banner and removes it when application view is changed\r\n */\r\n scope.$on(\"$destroy\", function () {\r\n scope.pauseSlider();\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
\"{{slide.Text}}\"
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport \"../slidingBanner/slidingBanner\";\r\nimport \"../userAgent/userAgent.service\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport template from \"./templates/help-banner-wrapper.html\";\r\n\r\nangularAMD.directive(\"helpBannerWrapper\", [\r\n \"$compile\",\r\n \"$rootScope\",\r\n \"$interval\",\r\n \"$timeout\",\r\n \"$window\",\r\n \"$sce\",\r\n \"$templateRequest\",\r\n \"baseUrlsFactory\",\r\n \"UserAgentService\",\r\n \"multiLanguageService\",\r\n function ($compile, $rootScope, $interval, $timeout, $window, $sce, $templateRequest, baseUrlsFactory, UserAgentService, multiLanguageService) {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n function ($scope, $element) {\r\n var populateTemplateHtmlStrings = function () {\r\n if ($scope.helpData) {\r\n angular.forEach($scope.helpData.content, function (item, $index) {\r\n // possible for data to come through with or without the shared component url at the start, so check\r\n if (item.Text && (item.Text.toLowerCase().indexOf(\"http:\") > -1 || item.Text.toLowerCase().indexOf(\"https:\") > -1)) {\r\n $scope.helpData.content[$index].Text = item.Text;\r\n } else {\r\n $scope.helpData.content[$index].Text = baseUrlsFactory.shared_component_base_url + item.Text;\r\n }\r\n });\r\n $scope.slides = $scope.helpData.content;\r\n }\r\n };\r\n\r\n var processHelpData = function () {\r\n if ($scope.helpData) {\r\n // tslint:disable-next-line:triple-equals\r\n if ($scope.helpData.content.length == 1) {\r\n $scope.bannerStatic = true;\r\n } else {\r\n $scope.bannerStatic = false;\r\n }\r\n populateTemplateHtmlStrings();\r\n }\r\n };\r\n // Make sure help data has time to be set before building the pages\r\n $timeout(function () {\r\n processHelpData();\r\n }, 0);\r\n\r\n // Cache elements need by banner\r\n var help_banner_wrapper_el = angular.element($element[0].querySelector(\"#help-banner-wrapper\"));\r\n var help_banner_toggle_btn_el = $element[0].querySelector(\".help-banner-toggle-btn\");\r\n\r\n $scope.helpMinimised = true;\r\n if ($scope.helpMinimised) {\r\n help_banner_wrapper_el.addClass(\"minimised\");\r\n }\r\n\r\n //Make help banner stretch full width of page when toolbar is open\r\n if (\r\n $scope.$parent.title === multiLanguageService.getString(\"page_titles.workbook_builder\") ||\r\n $scope.$parent.title === multiLanguageService.getString(\"page_titles.template_builder\")\r\n ) {\r\n help_banner_toggle_btn_el.classList.add(\"help-banner-toggle-btn-full-width\");\r\n }\r\n\r\n $scope.cacheElems = function () {\r\n $scope.prev_slide_btn_el = $element[0].getElementsByClassName(\"btn-prev\")[0];\r\n $scope.slides_elems = $element[0].getElementsByClassName(\"banner-slide\");\r\n $scope.first_slide_el = $scope.slides_elems[0];\r\n $scope.banner_slides_wrapper_el = document.getElementsByClassName(\"banner-slides-wrapper\")[0];\r\n $scope.sliding_banner_holder_el = document.querySelector(\".sliding-banner-holder\");\r\n };\r\n\r\n $scope.lastOpened = Date.now();\r\n $scope.showMeHelp = function () {\r\n if (Date.now() - $scope.lastOpened < 550) {\r\n return;\r\n }\r\n\r\n $scope.cacheElems();\r\n\r\n if ($scope.helpMinimised === false) {\r\n tracker.trackEvent(\"Builder\", \"Click\", \"Close Help banner\");\r\n // shrink\r\n // get rid of the tab indexes\r\n\r\n $scope.helpMinimised = true;\r\n help_banner_wrapper_el.addClass(\"minimised\");\r\n help_banner_wrapper_el.removeClass(\"maximised\");\r\n $scope.hide_help_timeout = setTimeout(function () {\r\n $scope.banner_slides_wrapper_el.style.display = \"none\";\r\n }, 500);\r\n $scope.$emit(\"helpBannerClosed\", $scope.helpData);\r\n } else {\r\n tracker.trackEvent(\"Builder\", \"Click\", \"Open Help banner\");\r\n // grow\r\n clearTimeout($scope.hide_help_timeout);\r\n // add the tab indexes\r\n $scope.banner_slides_wrapper_el.style.display = \"block\";\r\n\r\n $scope.helpMinimised = false;\r\n help_banner_wrapper_el.removeClass(\"minimised\");\r\n help_banner_wrapper_el.addClass(\"maximised\");\r\n if (!UserAgentService.touch) {\r\n setTimeout(function () {\r\n $scope.sliding_banner_holder_el.querySelector(\".current\").focus();\r\n }, 500);\r\n }\r\n }\r\n\r\n $scope.lastOpened = Date.now();\r\n };\r\n\r\n $scope.setTabIndexes = function (tabIndexString) {\r\n // dirty but angular method wouldn't work for some reason\r\n document.getElementById(\"slidingBannerPreviousBtn\").tabIndex = tabIndexString;\r\n document.getElementById(\"slidingBannerNextBtn\").tabIndex = tabIndexString;\r\n };\r\n\r\n $scope.tabToNextButton = function (e) {\r\n // tslint:disable-next-line:triple-equals\r\n if (e.keyCode === 9 && e.shiftKey === true && $scope.helpMinimised == false) {\r\n e.preventDefault();\r\n document.getElementById(\"slidingBannerNextBtn\").focus();\r\n }\r\n };\r\n\r\n $scope.$on(\"openHelpBanner\", function (event) {\r\n $scope.showMeHelp();\r\n });\r\n\r\n $scope.openHelp = function () {\r\n help_banner_wrapper_el.removeClass(\"collapsed\");\r\n help_banner_wrapper_el.removeClass(\"minimised\");\r\n help_banner_wrapper_el.addClass(\"maximised\");\r\n $scope.helpMinimised = false;\r\n };\r\n\r\n $scope.closeHelpBtn = function ($event) {\r\n $event.stopPropagation(); //added to prevent it reopening on the banner click event under the close button.\r\n $scope.closeHelp();\r\n };\r\n\r\n $scope.closeHelp = function () {\r\n help_banner_wrapper_el.removeClass(\"maximised\");\r\n help_banner_wrapper_el.removeClass(\"minimised\");\r\n help_banner_wrapper_el.addClass(\"collapsed\");\r\n };\r\n\r\n // Hide automatically after X seconds\r\n $scope.autoHide = function (seconds) {\r\n $timeout(function () {\r\n if ($scope.helpMinimised) {\r\n $scope.closeHelp();\r\n }\r\n }, seconds * 1000);\r\n };\r\n\r\n $scope.$on(\"closeHelpBanner\", function () {\r\n $scope.closeHelp();\r\n });\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n if (attrs[\"autoHideDelay\"] !== undefined) {\r\n scope.autoHide(attrs[\"autoHideDelay\"]);\r\n }\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./help-expandable.html\";\r\nimport \"../pui/src/accordion/accordion.component\";\r\nimport \"../pui/src/accordion/accordion-content.component\";\r\nimport \"../pui/src/accordion/accordion-header.component\";\r\nimport \"../pui/src/accordion/accordion-panel.component\";\r\n\r\nclass HelpExpandable extends NgComponent {\r\n constructor($scope) {\r\n super();\r\n\r\n this.ariaDescribedById = `help-expandable-${$scope.$id}`;\r\n }\r\n}\r\n\r\nexport const helpExpandable = {\r\n bindings: {\r\n header: \"<\"\r\n },\r\n template: template,\r\n transclude: true,\r\n controller: HelpExpandable\r\n};\r\n\r\nHelpExpandable.$inject = [\"$scope\"];\r\nangularAMD.component(\"helpExpandable\", helpExpandable);\r\n","export default `
{{::$ctrl.header}}
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/helpers\";\r\nimport \"../../preventRedirect/preventRedirect\";\r\n\r\nangularAMD.factory(\"historyService\", [\r\n \"$rootScope\",\r\n \"$routeParams\",\r\n \"$window\",\r\n \"$location\",\r\n \"$timeout\",\r\n \"$interval\",\r\n \"helpers\",\r\n \"preventRedirect\",\r\n function ($rootScope, $routeParams, $window, $location, $timeout, $interval, helpers, preventRedirect) {\r\n return {\r\n historyKeyPrefix: \"history-id:\",\r\n currentHistory: null,\r\n currentHistoryId: null,\r\n interval: null,\r\n $off: null,\r\n\r\n init: function (historyDto) {\r\n const historyId = this.getCurrentHistoryId();\r\n let historyObject = null;\r\n\r\n if (historyId !== \"\") {\r\n historyObject = this.loadHistory(historyId);\r\n this.setCurrentHistoryId(historyId);\r\n\r\n if (historyObject !== false && historyObject !== null) {\r\n historyDto.anchorInfo = historyObject.history.history.length < 2 ? null : this.getAssetAnchorInfo();\r\n } else {\r\n historyObject = this.newHistory();\r\n }\r\n } else {\r\n historyObject = this.newHistory();\r\n }\r\n\r\n this.cleanup();\r\n\r\n if (historyObject !== false && historyObject !== null) {\r\n this.addToHistory(historyDto);\r\n }\r\n return this;\r\n },\r\n\r\n getLabel: function (type) {\r\n if (type) {\r\n type = type.toLowerCase();\r\n }\r\n\r\n const dictionary = {\r\n blog: $rootScope.multiLanguageService.getString(\"pebble_terms.asset_types.blog\", { count: 1 }),\r\n workbookresponse: $rootScope.multiLanguageService.getString(\"pebble_terms.asset_types.workbook\", { count: 1 }),\r\n webfoliopage: $rootScope.multiLanguageService.getString(\"pebble_terms.asset_types.webfoliopage\", { count: 1 }),\r\n webfolio: $rootScope.multiLanguageService.getString(\"pebble_terms.asset_types.webfolio\", { count: 1 }),\r\n post: $rootScope.multiLanguageService.getString(\"pebble_terms.asset_types.post\", { count: 1 }),\r\n assetcollectionwrapper: $rootScope.multiLanguageService.getString(\"pebble_terms.asset_types.collection\", { count: 1 }),\r\n activitylog: $rootScope.multiLanguageService.getString(\"pebble_terms.asset_types.activitylog\", { count: 1 }),\r\n formresponse: $rootScope.multiLanguageService.getString(\"pebble_terms.template\", { count: 1 }),\r\n templatebuilder: $rootScope.multiLanguageService.getString(\"pebble_terms.asset_types.templatebuilder\"),\r\n workbookbuilder: $rootScope.multiLanguageService.getString(\"pebble_terms.asset_types.workbookbuilder\")\r\n };\r\n\r\n const label = dictionary[type];\r\n return (label ? label : type).toLowerCase();\r\n },\r\n\r\n getBackButton: function () {\r\n if (!this.currentHistory) {\r\n return;\r\n }\r\n var historyArray = this.currentHistory.history;\r\n\r\n if (historyArray.length < 2 || !this.getCurrentHistoryId()) {\r\n return false;\r\n } else {\r\n const previousHistoryItem = historyArray[historyArray.length - 2];\r\n return {\r\n label: $rootScope.multiLanguageService.getString(\"labels.history_back_to_type\", {\r\n assetType: this.getLabel(previousHistoryItem.type)\r\n }),\r\n type: previousHistoryItem.type,\r\n icon: previousHistoryItem.type,\r\n url: previousHistoryItem.url\r\n };\r\n }\r\n },\r\n\r\n getAssetAnchorInfo: function () {\r\n if (this.currentHistory !== null) {\r\n const historyItem = this.currentHistory.history.find((item) => item.routeParam === $routeParams.assetId);\r\n\r\n if (historyItem !== undefined) {\r\n return historyItem.anchorInfo;\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n getDefaultBackAction: function (backButtonDto) {\r\n $location.url(backButtonDto.url);\r\n },\r\n\r\n setupHistory: function (dto) {\r\n // Initialise and return back button data if exists\r\n var backButtonDto = this.init(dto).getBackButton();\r\n\r\n this.triggerBackButton({\r\n dto: backButtonDto\r\n });\r\n\r\n return backButtonDto;\r\n },\r\n\r\n triggerBackButton: function (opts) {\r\n var loops = 0,\r\n maximumLoops = 3,\r\n self = this;\r\n\r\n $interval.cancel(self.interval);\r\n if (self.$off) {\r\n self.$off();\r\n }\r\n\r\n self.$off = $rootScope.$on(\"response-trigger-back-button\", function () {\r\n $interval.cancel(self.interval);\r\n self.$off();\r\n });\r\n\r\n self.interval = $interval(function () {\r\n if (loops >= maximumLoops) {\r\n $interval.cancel(self.interval);\r\n self.$off();\r\n }\r\n $rootScope.$broadcast(\"trigger-back-button\", opts);\r\n loops++;\r\n }, 500);\r\n\r\n $rootScope.$broadcast(\"trigger-back-button\", opts);\r\n },\r\n\r\n historyItemDto: function (opts) {\r\n this.type = opts.type || \"none\";\r\n this.routeParam = opts.routeParam || $routeParams.assetId;\r\n this.url = opts.url || $location.url();\r\n this.anchorInfo = opts.anchorInfo || null;\r\n },\r\n\r\n checkIfDuplicate: function (dto) {\r\n var index = this.getIndexOfHistoryItem(dto);\r\n return { isDuplicate: index !== -1, index: index };\r\n },\r\n\r\n getIndexOfHistoryItem: function (dto) {\r\n for (var i = 0; i < this.currentHistory.history.length; i++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (this.currentHistory.history[i].routeParam == dto.routeParam) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n },\r\n\r\n addToHistory: function (opts) {\r\n if (this.currentHistory === null) {\r\n return;\r\n }\r\n\r\n const newHistoryDto = new this.historyItemDto(opts);\r\n const isDuplicate = this.checkIfDuplicate(newHistoryDto);\r\n\r\n if (!isDuplicate.isDuplicate) {\r\n this.currentHistory.history.push(newHistoryDto);\r\n } else {\r\n this.removeFollowingHistoryFrom(newHistoryDto);\r\n this.currentHistory.history[isDuplicate.index] = newHistoryDto;\r\n }\r\n\r\n this.saveHistory(this.currentHistoryId, this.currentHistory);\r\n },\r\n\r\n removeFollowingHistoryFrom: function (dto) {\r\n var dtoIndex = this.getIndexOfHistoryItem(dto);\r\n\r\n if (dtoIndex !== -1 && dtoIndex + 1 < this.currentHistory.history.length) {\r\n this.currentHistory.history.splice(dtoIndex + 1, this.currentHistory.history.length);\r\n }\r\n },\r\n\r\n newHistory: function () {\r\n var historyObject = this.createHistory();\r\n\r\n if (historyObject && historyObject.historyId) {\r\n this.setCurrentHistoryId(historyObject.historyId);\r\n this.updateHistoryUrlParam(historyObject.historyId);\r\n }\r\n\r\n return historyObject;\r\n },\r\n\r\n updateHistoryUrlParam: function (historyId) {\r\n historyId = historyId || null;\r\n var searchItems = $location.search();\r\n var replaceObject = { historyId: historyId };\r\n\r\n for (var searchItem in searchItems) {\r\n if (searchItems.hasOwnProperty(searchItem) && searchItem !== \"historyId\") {\r\n replaceObject[searchItem] = searchItems[searchItem];\r\n }\r\n }\r\n\r\n preventRedirect.allowRedirect(true);\r\n\r\n $location.search(replaceObject).replace();\r\n\r\n $timeout(function () {\r\n preventRedirect.allowRedirect(false);\r\n }, 300);\r\n },\r\n\r\n updateHistory: function (routeParam, update) {\r\n if (this.currentHistory === null) {\r\n return;\r\n }\r\n\r\n const historyArray = this.currentHistory.history;\r\n const currentHistory = historyArray[historyArray.length - 1];\r\n\r\n if (routeParam !== currentHistory.routeParam) {\r\n return;\r\n }\r\n\r\n const updatedHistory = { ...currentHistory, ...update };\r\n\r\n this.addToHistory(updatedHistory);\r\n },\r\n\r\n /**\r\n * need this so, encoded historyIds nearly never overwrite each other\r\n * @returns {*}\r\n */\r\n createHistoryKey: function () {\r\n return helpers.randomString(10);\r\n },\r\n\r\n createHistoryObject: function () {\r\n return {\r\n history: []\r\n };\r\n },\r\n\r\n createHistory: function () {\r\n var key = this.createHistoryKey();\r\n var history = this.createHistoryObject();\r\n this.setCurrentHistory(history);\r\n\r\n return this.saveHistory(key, history) ? { historyId: key, history: history } : false;\r\n },\r\n\r\n saveHistory: function (key, itemData) {\r\n if (itemData) {\r\n try {\r\n itemData = JSON.stringify(itemData);\r\n } catch (e) {\r\n itemData = null;\r\n console.warn(\"[Local storage] Can't save because:\", e);\r\n }\r\n }\r\n\r\n if (itemData) {\r\n try {\r\n $window.sessionStorage.setItem(this.historyKeyPrefix + key, itemData);\r\n return true;\r\n } catch (e) {\r\n return console.warn(\"[Local storage] Cant's save e:\", e);\r\n }\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n setCurrentHistory: function (historyObject) {\r\n this.currentHistory = historyObject;\r\n },\r\n\r\n setCurrentHistoryId: function (historyId) {\r\n this.currentHistoryId = historyId;\r\n },\r\n\r\n getCurrentHistoryId: function (formatted) {\r\n var historyId = $routeParams.historyId;\r\n historyId = historyId ? historyId : \"\";\r\n\r\n if (historyId && formatted) {\r\n historyId = \"?historyId=\" + historyId;\r\n }\r\n\r\n return historyId;\r\n },\r\n\r\n loadHistory: function (historyId) {\r\n try {\r\n var history = $window.sessionStorage.getItem(this.historyKeyPrefix + historyId);\r\n if (history) {\r\n history = JSON.parse(history);\r\n this.setCurrentHistory(history);\r\n return { historyId: historyId, history: history };\r\n } else {\r\n return false;\r\n }\r\n } catch (e) {\r\n console.warn(\"[Local storage] Can't get item because:\", e);\r\n return false;\r\n }\r\n },\r\n\r\n cleanup: function () {\r\n var items = this.getAllHistoryItemsFromSessionStorage(this.historyKeyPrefix);\r\n\r\n for (var i = 0; i < items.length; i++) {\r\n // if found item is not current, then remove it\r\n if (items[i].key !== this.historyKeyPrefix + this.currentHistoryId) {\r\n $window.sessionStorage.removeItem(items[i].key);\r\n }\r\n }\r\n },\r\n\r\n getLastHistoryItem: function (historyId) {\r\n var data = this.loadHistory(historyId);\r\n if (data === false) {\r\n return null;\r\n } else {\r\n var history = data.history.history;\r\n return history[history.length - 1];\r\n }\r\n },\r\n\r\n getLastHistoryPath: function (historyId) {\r\n var lastHistoryItem = this.getLastHistoryItem(historyId);\r\n return lastHistoryItem ? lastHistoryItem.url : \"\";\r\n },\r\n\r\n getAllHistoryItemsFromSessionStorage: function (key, except) {\r\n var itemArr = [];\r\n var objKey,\r\n storageObj = $window.sessionStorage;\r\n\r\n // Loop through localStorage and remove all items that match passed in 'key'\r\n for (objKey in storageObj) {\r\n if (storageObj.hasOwnProperty(objKey)) {\r\n var regex = new RegExp(key, \"g\");\r\n // tslint:disable-next-line:triple-equals\r\n if (regex.test(objKey) && objKey != except) {\r\n itemArr.push({ key: objKey, value: JSON.parse(storageObj.getItem(objKey)) });\r\n }\r\n }\r\n }\r\n\r\n return itemArr;\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { STATUS_CONSTANTS } from \"../../constants/status.constants\";\r\nimport \"../../dropdown/dropdown\";\r\nimport \"../services/iWantToService\";\r\nimport \"../services/iWantToHandler\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"../../utilities/helpers\";\r\nimport \"../../user/user.service\";\r\nimport \"../../react2angular/icon\";\r\nimport template from \"../templates/i-want-to.html\";\r\n\r\n/**\r\n * Example usage:\r\n * \r\n */\r\nangularAMD.directive(\"iWantTo\", [\r\n \"$rootScope\",\r\n \"$timeout\",\r\n \"iWantToService\",\r\n \"iWantToHandler\",\r\n \"helpers\",\r\n \"User\",\r\n function ($rootScope, $timeout, iWantToService, iWantToHandler, helpers, User) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n transclude: true,\r\n scope: {\r\n fetchOptions: \"@\",\r\n filterOptions: \"=\",\r\n excludeOptions: \"=\",\r\n extendOptions: \"=\",\r\n for: \"=\",\r\n disabled: \"<\",\r\n fetchFrom: \"=\",\r\n inverted: \"@\",\r\n searchType: \"@\",\r\n assetType: \"@\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n $scope.dropdownAttachMenuEvent = \"attachA11yMenu-\" + $scope.$id;\r\n $scope.isOpen = false;\r\n $scope.iWantToOptions = [];\r\n\r\n $scope.selectOption = function (option) {\r\n var promise = iWantToService.doAnyAssetsHaveLinksToTheseAssets($scope.for);\r\n\r\n promise.then(function (response) {\r\n $scope.hasLinkedAssets = response.data;\r\n });\r\n\r\n promise.finally(function () {\r\n $scope.$emit(\"executeIWantToOption\", {\r\n for_ids: $scope.for,\r\n broadcast_name: option.broadcastName,\r\n has_linked_assets: $scope.hasLinkedAssets,\r\n option: option\r\n });\r\n });\r\n };\r\n\r\n $scope.postDropdownClose = function () {\r\n $scope.isOpen = false;\r\n $scope.resetWorkingState();\r\n };\r\n\r\n $scope.resetWorkingState = function () {\r\n $scope.working = false;\r\n $timeout.cancel($scope.workingTimeout);\r\n };\r\n }\r\n ],\r\n link: function (scope, element) {\r\n scope.multiLanguageService = $rootScope.multiLanguageService;\r\n scope.iWantToMapStatuses = [\"\", STATUS_CONSTANTS.STATUS_EIGHT, STATUS_CONSTANTS.STATUS_NINE];\r\n\r\n scope.getOptions = function () {\r\n var options = undefined;\r\n\r\n if (scope.isOpen) {\r\n scope.isOpen = false;\r\n return;\r\n }\r\n\r\n scope.workingTimeout = $timeout(function () {\r\n scope.working = true;\r\n }, 500);\r\n scope.isOpen = true;\r\n\r\n //Need this after the return above to stop it saving everytime the iwantto button is opened or closed.\r\n $rootScope.$broadcast(\"checkIsSavedFromIWantTo\", {});\r\n\r\n if (scope.fetchFrom !== undefined) {\r\n options = scope.fetchFrom();\r\n }\r\n\r\n if (scope.fetchOptions === undefined || !scope.for.length) {\r\n options = scope.extendOptions;\r\n }\r\n\r\n if (options !== undefined) {\r\n scope.iWantToOptions = options;\r\n scope.resetWorkingState();\r\n\r\n $timeout(function () {\r\n scope.$broadcast(scope.dropdownAttachMenuEvent);\r\n });\r\n\r\n return options;\r\n } else if (helpers.isNotEmptyArray(scope.for)) {\r\n scope.iWantToOptions = null;\r\n // Get for/as asset\r\n var deferred = iWantToService.getAvailableActions(scope.for, scope.searchType);\r\n\r\n return deferred.then(function (response) {\r\n if (response.data) {\r\n var responseOptions = response.data;\r\n var filteredOptions;\r\n\r\n if (scope.filterOptions && scope.filterOptions.length) {\r\n filteredOptions = responseOptions.where(function (o, k) {\r\n return scope.filterOptions.contains(o);\r\n });\r\n } else {\r\n filteredOptions = responseOptions;\r\n }\r\n\r\n if (scope.excludeOptions) {\r\n filteredOptions.removeItems(scope.excludeOptions);\r\n }\r\n\r\n scope.resetWorkingState();\r\n scope.iWantToOptions = [scope.extendOptions, iWantToService.getAssetMenuItems(filteredOptions, scope.for.length, scope.assetType).filter(scope.optionAvailable)]\r\n .selectMany()\r\n .sort((a, b) => a.order - b.order);\r\n\r\n if (!scope.iWantToOptions || scope.iWantToOptions.length === 0) {\r\n scope.iWantToOptions = [iWantToHandler.getEmptyOption()];\r\n }\r\n }\r\n\r\n $timeout(function () {\r\n scope.$broadcast(scope.dropdownAttachMenuEvent);\r\n });\r\n });\r\n }\r\n };\r\n\r\n scope.optionAvailable = function (option) {\r\n if (option.name.toLowerCase() === \"map\") {\r\n const user = User.getDto();\r\n return typeof user.UserStatus === \"undefined\" || scope.iWantToMapStatuses.includes(user.UserStatus);\r\n }\r\n\r\n return true;\r\n };\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
`;","export class IWantToOption {\r\n constructor(name, label, ariaLabel, broadcastName, order, icon) {\r\n this.name = name;\r\n this.label = label;\r\n this.ariaLabel = ariaLabel;\r\n this.broadcastName = broadcastName;\r\n this.order = order;\r\n this.icon = icon;\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { addFavouritesIcon, copyIcon, deleteIcon, editIcon, mapIcon, printIcon, purgeIcon, removeFavouritesIcon, restoreIcon, shareIcon, tagIcon, unarchiveIcon } from \"@pjs/core-ui\";\r\n\r\nangularAMD.service(\"iWantToHandler\", IWantToHandler);\r\nIWantToHandler.$inject = [\"multiLanguageService\"];\r\n\r\nfunction IWantToHandler(multiLanguageService) {\r\n this.multiLanguageService = multiLanguageService;\r\n}\r\n\r\nIWantToHandler.prototype.getEmptyOption = function () {\r\n return new IWantToOption(\"Empty\", this.multiLanguageService.getString(\"buttons.iWantToHandler.noOptions\"), \"\", null, 0, null);\r\n};\r\n\r\nIWantToHandler.prototype.getOptions = function () {\r\n return [\r\n new IWantToOption(\"Edit\", this.multiLanguageService.getString(\"buttons.iWantToHandler.edit\"), \"\", \"editAssets\", 1, editIcon),\r\n new IWantToOption(\"Copy\", this.multiLanguageService.getString(\"buttons.iWantToHandler.copy\"), \"\", \"copyAssets\", 10, copyIcon),\r\n new IWantToOption(\"Share\", this.multiLanguageService.getString(\"buttons.iWantToHandler.share\"), \"\", \"shareAssets\", 15, shareIcon),\r\n new IWantToOption(\"Tag\", this.multiLanguageService.getString(\"buttons.iWantToHandler.tag\"), \"\", \"tagAssets\", 20, tagIcon),\r\n new IWantToOption(\"Delete\", this.multiLanguageService.getString(\"buttons.iWantToHandler.delete\"), \"\", \"deleteAssets\", 25, deleteIcon),\r\n new IWantToOption(\"Restore\", this.multiLanguageService.getString(\"buttons.iWantToHandler.restore\"), \"\", \"restoreAssets\", 30, restoreIcon),\r\n new IWantToOption(\"Unarchive\", this.multiLanguageService.getString(\"buttons.iWantToHandler.unhide\"), \"\", \"unarchiveAssets\", 32, unarchiveIcon),\r\n new IWantToOption(\"Purge\", this.multiLanguageService.getString(\"buttons.iWantToHandler.purge\"), \"\", \"purgeAssets\", 35, purgeIcon),\r\n new IWantToOption(\"Export\", this.multiLanguageService.getString(\"buttons.iWantToHandler.export\"), \"\", \"exportAssets\", 80, printIcon),\r\n new IWantToOption(\"Map\", this.multiLanguageService.getString(\"buttons.iWantToHandler.map\"), \"\", \"mapAssets\", 85, mapIcon),\r\n new IWantToOption(\"Favourite\", this.multiLanguageService.getString(\"buttons.iWantToHandler.favourite\"), \"\", \"favouriteAssets\", 12, addFavouritesIcon),\r\n new IWantToOption(\"Unfavourite\", this.multiLanguageService.getString(\"buttons.iWantToHandler.unfavourite\"), \"\", \"unfavouriteAssets\", 12, removeFavouritesIcon),\r\n this.getEmptyOption()\r\n ];\r\n};\r\n\r\n/**\r\n * @param {String} name\r\n * @param {String} label\r\n * @param {String} ariaLabel\r\n * @param {String} broadcastName\r\n * @param {Number} order\r\n * @param {IIcon} icon\r\n * @constructor\r\n */\r\nfunction IWantToOption(name, label, ariaLabel, broadcastName, order, icon) {\r\n this.name = name;\r\n this.label = label;\r\n this.ariaLabel = ariaLabel;\r\n this.broadcastName = broadcastName;\r\n this.order = order;\r\n this.icon = icon;\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./iWantToHandler\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\n\r\nangularAMD.factory(\"iWantToService\", [\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"$q\",\r\n \"iWantToHandler\",\r\n \"multiLanguageService\",\r\n function ($http, baseUrlsFactory, $q, iWantToHandler, multiLanguageService) {\r\n return {\r\n getAvailableActions: function (ids, searchType) {\r\n $http.defaults.withCredentials = true;\r\n const data = {\r\n assetIds: ids,\r\n searchType: searchType\r\n };\r\n\r\n const httpTimeout = $q.defer();\r\n const request = $http.post(baseUrlsFactory.api_base_url + \"Asset/GetAvailableActions\", data, {\r\n timeout: httpTimeout.promise\r\n });\r\n\r\n const promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError.status + \" : \" + httpError.data;\r\n }\r\n );\r\n\r\n promise._httpTimeout = httpTimeout;\r\n\r\n return promise;\r\n },\r\n\r\n getAssetMenuItems: function (actions, amountItems, activeType) {\r\n if (!actions || actions.length === 0) {\r\n return [];\r\n }\r\n\r\n const distinctActions = actions.distinct();\r\n const i18nType = multiLanguageService.getString(`pebble_terms.asset_types.${(activeType || \"\").toLowerCase() || \"\"}`, { count: amountItems });\r\n\r\n const menu = iWantToHandler.getOptions().filter(function (option) {\r\n return distinctActions.find(function (action) {\r\n return action === option.name;\r\n });\r\n });\r\n\r\n menu.forEach(function (item) {\r\n item.ariaLabel = multiLanguageService.getString(`buttons.i_want_to_extended_labels.${item.name.toLowerCase()}`, {\r\n type: i18nType,\r\n count: amountItems\r\n });\r\n });\r\n\r\n return menu;\r\n },\r\n\r\n doAnyAssetsHaveLinksToTheseAssets: function (assetIds) {\r\n return $http.post(baseUrlsFactory.api_base_url + \"Asset/DoAnyAssetsHaveLinksToTheseAssets\", assetIds);\r\n }\r\n };\r\n }\r\n]);\r\n","import { SegmentedControl } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"segmentedControl\", react2angular(SegmentedControl, [\"buttons\", \"className\", \"label\", \"disabled\"]));\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { tickIcon } from \"@pjs/core-ui\";\r\nimport \"../../react2angular/assetIcon\";\r\nimport \"../../react2angular/icon\";\r\nimport template from \"./asset-item.html\";\r\n\r\nclass AssetItem extends NgComponent {\r\n constructor() {\r\n super();\r\n this.itemType = this.item.SubType === null ? this.item.MainType.toLowerCase() : this.item.SubType.toLowerCase();\r\n this.image = this.getImage(this.item);\r\n this.tickIcon = tickIcon;\r\n }\r\n\r\n _triggerOnSelectItem() {\r\n this.onSelectItem(this.item);\r\n }\r\n}\r\n\r\nexport const assetItemDefinition = {\r\n bindings: {\r\n mainSelection: \"<\",\r\n viewType: \"<\",\r\n onSelectItem: \"<\",\r\n item: \"<\",\r\n getImage: \"<\"\r\n },\r\n template: template,\r\n controller: AssetItem\r\n};\r\n\r\nassetItemDefinition.$inject = [];\r\nangularAMD.component(\"assetItem\", assetItemDefinition);\r\n","export default `
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { getBestTextMatches } from \"@pjs/utilities\";\r\nimport { informationIcon, addIcon, ButtonClass } from \"@pjs/core-ui\";\r\nimport { withDigest } from \"../react2angular/utilities/WithDigest.function\";\r\nimport \"../assetEndpointService/assetEndpoint.service\";\r\nimport \"../assetStore/services/paginatedSearch.factory\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../extensions/arrayExtensions\";\r\nimport \"../react2angular/icon\";\r\nimport \"../react2angular/buttonComponent\";\r\nimport \"../react2angular/segmentedControl\";\r\nimport \"./assetItem/assetItem\";\r\nimport template from \"./item-selector.html\";\r\nimport { itemSelectorFilters } from \"./itemSelectorFilters\";\r\n\r\nconst ItemSelectorComponentDefinition = {\r\n bindings: {\r\n onSelect: \"&\",\r\n onUpdate: \"&\",\r\n itemData: \"<\",\r\n availableViews: \"<\",\r\n order: \"@\",\r\n startingAmount: \"<\",\r\n paginationAmount: \"<\",\r\n mainSelection: \"<\",\r\n onRequestUpload: \" view.id === \"banner\") !== undefined;\r\n this.buttons = this.availableViews.map((view, index) => {\r\n return {\r\n id: view.id,\r\n label: view.ariaLabel,\r\n source: view.icon,\r\n onChange: () => this.onToggleView(view),\r\n default: index === 0\r\n };\r\n });\r\n\r\n if (this.itemData && this.itemData.Items.length > 0) {\r\n if (this.itemsSelected) {\r\n this.showSelectedItems(this.itemData.Items);\r\n\r\n this.onUpdate({\r\n value: this.itemsSelected.length\r\n });\r\n }\r\n\r\n if (this.order) {\r\n this._setOrder(this.order, this.itemData.Items);\r\n }\r\n\r\n this.paginated(this.itemData);\r\n }\r\n\r\n this.toggleView(this.availableViews[0]);\r\n};\r\n\r\nItemSelectorComponent.prototype.showSelectedItems = function (items) {\r\n for (var i = 0; i < items.length; i++) {\r\n items[i].checked = this.checkSelected(items[i]);\r\n }\r\n};\r\n\r\nItemSelectorComponent.prototype.paginated = function (itemData) {\r\n const defaultAmountToLoad = this.startingAmount > 0 ? this.startingAmount : itemData.Items.length;\r\n this.paginatedSearch = this.PaginatedSearchFactory.createPaginatedSearch(itemData.Items, 0, defaultAmountToLoad);\r\n\r\n this.showLoadMore = true;\r\n this.resultsLoaded = false;\r\n\r\n this.paginatedSearch.setResults(itemData.Items);\r\n\r\n this.paginatedSearch.getResults().then(\r\n function (results) {\r\n this.results = results;\r\n\r\n if (results.length < this.startingAmount || this.startingAmount === 0) {\r\n this.resultsLoaded = false;\r\n this.showLoadMore = false;\r\n } else {\r\n this.paginatedSearch.updatePageLength(this.paginationAmount);\r\n this.resultsLoaded = true;\r\n }\r\n }.bind(this)\r\n );\r\n};\r\n\r\nItemSelectorComponent.prototype.toggleView = function (view) {\r\n this.defaultView = view;\r\n};\r\n\r\nItemSelectorComponent.prototype.onToggleView = function (view) {\r\n this.toggleView(view);\r\n tracker.trackEvent(\"Asset/Resource Selector\", \"Toggle display mode\", view.id);\r\n this.$rootScope.$applyAsync();\r\n};\r\n\r\nItemSelectorComponent.prototype._setOrder = function (order, items) {\r\n var institutionalBanner = null;\r\n\r\n if (items[0].Institutional === true) {\r\n institutionalBanner = items.shift();\r\n }\r\n\r\n if (order === \"random\") {\r\n items.randomiseOrder();\r\n }\r\n\r\n if (institutionalBanner) {\r\n items.unshift(institutionalBanner);\r\n }\r\n};\r\n\r\nItemSelectorComponent.prototype.getImageUrl = function (item) {\r\n if (typeof item.ImageUrl !== \"undefined\") {\r\n return item.ImageUrl;\r\n }\r\n\r\n const params = {\r\n id: item.Id,\r\n x: this.viewsIncludeBanner ? bannerItemWidth : galleryItemSize,\r\n y: this.viewsIncludeBanner ? 0 : galleryItemSize,\r\n shortSideScale: !this.viewsIncludeBanner\r\n };\r\n\r\n return this.AssetEndpointService.transmitImageUrl(params);\r\n};\r\n\r\nItemSelectorComponent.prototype.selectItem = function (item) {\r\n if (this.itemsSelected) {\r\n if (!this.checkSelected(item)) {\r\n this.itemsSelected.push(item);\r\n } else {\r\n this.forceOutItemList(item);\r\n }\r\n\r\n this.onUpdate({\r\n value: this.itemsSelected.length\r\n });\r\n }\r\n\r\n this.onSelect({\r\n item: item\r\n });\r\n};\r\n\r\nItemSelectorComponent.prototype.forceIntoItemList = function (item) {\r\n if (!this.checkSelected(item)) {\r\n this.itemsSelected.push(item);\r\n }\r\n};\r\n\r\nItemSelectorComponent.prototype.forceOutItemList = function (item) {\r\n for (var i = 0, len = this.itemsSelected.length; i < len; i++) {\r\n if (this.itemsSelected[i].Id === item.Id) {\r\n this.itemsSelected.splice(i, 1);\r\n return;\r\n }\r\n }\r\n};\r\n\r\nItemSelectorComponent.prototype.checkSelected = function (selector) {\r\n if (!this.itemsSelected) {\r\n return;\r\n }\r\n\r\n for (var i = 0, len = this.itemsSelected.length; i < len; i++) {\r\n if (this.itemsSelected[i].Id === selector.Id) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n\r\nItemSelectorComponent.prototype.loadMoreItems = function () {\r\n if (this.paginationAmount === 0) {\r\n this.loadAllItems();\r\n return;\r\n }\r\n\r\n this.resultsLoaded = true;\r\n this.loadingMoreResultsMessage = this.multiLanguageService.getString(\"search.a11y.loading\");\r\n\r\n this.paginatedSearch.getNextSetOfResults().then(\r\n function (results) {\r\n this.results = this.results.concat(results);\r\n\r\n if (this.paginatedSearch.isAtEnd()) {\r\n this.showLoadMore = false;\r\n }\r\n\r\n this.timeout();\r\n this.forceFocus();\r\n }.bind(this)\r\n );\r\n};\r\n\r\nItemSelectorComponent.prototype.loadAllItems = function () {\r\n this.results = this.filteredResults ? this.filteredResults : this.itemData.Items;\r\n this.showLoadMore = false;\r\n\r\n this.timeout();\r\n this.forceFocus();\r\n};\r\n\r\nItemSelectorComponent.prototype.timeout = function () {\r\n this.$timeout(\r\n function () {\r\n this.resultsLoaded = false;\r\n this.loadingMoreResultsMessage = \"\";\r\n this.loadedResultsMessage = this.multiLanguageService.getString(\"search.a11y.available_result\", { count: this.results.length });\r\n }.bind(this)\r\n );\r\n};\r\n\r\nItemSelectorComponent.prototype.forceFocus = function () {\r\n this.$element[0].getElementsByClassName(\"item-selector__container\")[0].lastElementChild.focus();\r\n};\r\n\r\nItemSelectorComponent.prototype.openInfoPanel = function (item) {\r\n const actionData = {\r\n excludeAssetFunctionality: [\"i-want-to\"]\r\n };\r\n\r\n this.$rootScope.$broadcast(\"openRightHandSidePanel\", {\r\n assetId: item.Id,\r\n panel: \"asset-info\",\r\n actionData: actionData\r\n });\r\n};\r\n\r\nItemSelectorComponent.prototype.uploadItems = function () {\r\n this.onRequestUpload(this.selectorId);\r\n};\r\n\r\nItemSelectorComponent.prototype.updateItemsInSelector = function (event, data) {\r\n if (data && !data.SelectorId) {\r\n this.showSelectedItems(data.Items);\r\n this.paginated(data);\r\n this.results = data.Items;\r\n\r\n return;\r\n }\r\n\r\n if (data && this.selectorId === data.SelectorId && data.Items && data.Items.length > 0) {\r\n var lowerCaseSubs = this.subTypes.map(function (subType) {\r\n return subType.toLowerCase();\r\n });\r\n\r\n var itemsToAdd = data.Items;\r\n\r\n if (lowerCaseSubs.length > 0) {\r\n itemsToAdd = data.Items.filter(function (item) {\r\n var subPrefix = item.SubType.toLowerCase().split(\"/\")[0];\r\n\r\n return lowerCaseSubs.indexOf(subPrefix) > -1;\r\n });\r\n }\r\n\r\n if (itemsToAdd.length === 1 && this.mainSelection === \"Single\") {\r\n this.selectItem(itemsToAdd[0]);\r\n return;\r\n }\r\n\r\n if (itemsToAdd.length > 0) {\r\n this.ItemsToAdd = itemsToAdd;\r\n this.addNewItemToSelector(0);\r\n this.filterItemSelector();\r\n }\r\n }\r\n};\r\n\r\nItemSelectorComponent.prototype.addNewItemToSelector = function (index) {\r\n this.$timeout(\r\n function () {\r\n if (this.mainSelection === \"Multiple\") {\r\n this.ItemsToAdd[index].checked = true;\r\n this.itemsSelected.unshift(this.ItemsToAdd[index]);\r\n }\r\n\r\n this.results.unshift(this.ItemsToAdd[index]);\r\n this.itemData.Items.unshift(this.ItemsToAdd[index]);\r\n\r\n index++;\r\n\r\n if (index < this.ItemsToAdd.length) {\r\n this.addNewItemToSelector(index);\r\n }\r\n\r\n this.onUpdate({\r\n value: this.itemsSelected.length\r\n });\r\n }.bind(this),\r\n 1000\r\n );\r\n};\r\n\r\nItemSelectorComponent.prototype.selectAllItemSelector = function (event, data) {\r\n var items = this.filtered ? this.results : this.itemData.Items;\r\n\r\n for (var i = 0; i < items.length; i++) {\r\n items[i].checked = data;\r\n }\r\n\r\n for (var j = 0; j < items.length; j++) {\r\n data ? this.forceIntoItemList(items[j]) : this.forceOutItemList(items[j]);\r\n\r\n var results = this.itemsSelected.length;\r\n this.onUpdate({\r\n value: results\r\n });\r\n }\r\n};\r\n\r\nItemSelectorComponent.prototype.filterEvent = function (event, data) {\r\n this.filterItemSelector(data);\r\n};\r\n\r\nItemSelectorComponent.prototype.filterItemSelector = function (data) {\r\n this.resultsLoaded = false;\r\n\r\n if (!data) {\r\n this.filtered = false;\r\n this.filteredResults = this.itemData.Items;\r\n this.itemData.Description = this.description;\r\n this.updateItemsInSelector(\"refresh\", this.itemData);\r\n return;\r\n }\r\n\r\n this.filtered = true;\r\n\r\n const filter = data.filter ?? this._defaultFilter;\r\n\r\n this.filteredResults = getBestTextMatches(data.searchTerm.toLowerCase(), this.itemData.Items, filter.criteria);\r\n\r\n if (this.filteredResults.length <= this.startingAmount) {\r\n this.showLoadMore = false;\r\n this.results = this.filteredResults;\r\n this.resultsLoaded = true;\r\n } else {\r\n this.showLoadMore = true;\r\n var defaultFiltered = {\r\n Items: this.filteredResults\r\n };\r\n this.paginated(defaultFiltered);\r\n this.results = this.filteredResults;\r\n this.resultsLoaded = true;\r\n }\r\n\r\n this.itemData.Description = this.multiLanguageService.getString(filter.resultsDescription, { count: this.filteredResults.length });\r\n this.timeout();\r\n};\r\n\r\nangularAMD.component(\"itemSelector\", ItemSelectorComponentDefinition);\r\n\r\nexport { ItemSelectorComponentDefinition as itemSelector };\r\n","export default `

{{$ctrl.multiLanguageService.getString('search.a11y.available_result', {count: $ctrl.results.length})}}

0 && $ctrl.availableViews.length > 1 ? '' : 'item-selector__header--large-padding'\" class=\"item-selector__header\" role=\"region\" aria-labelledby=\"{{$ctrl.results.length === 0 ? 'item-selector__no-results-' + $id : ''}}\">

{{$ctrl.itemData.Description}}

0 && $ctrl.availableViews.length > 1\">

{{::$ctrl.multiLanguageService.getString('search.no_results_suggestions')}}

  • {{::$ctrl.multiLanguageService.getString('search.no_results_list.keywords')}}
  • {{::$ctrl.multiLanguageService.getString('search.no_results_list.search_terms')}}
`;","export const itemSelectorFilters = {\r\n all: {\r\n label: \"search.filters.all\",\r\n fullLabel: \"search.filters.all_full_label\",\r\n criteria: null,\r\n resultsDescription: \"search.filters.all_results_description\"\r\n },\r\n title: {\r\n criteria: [{ weight: 1, getProperty: (item) => item.Title }],\r\n fullLabel: \"search.filters.title_full_label\",\r\n label: \"search.filters.titles\",\r\n resultsDescription: \"search.filters.title_results_description\"\r\n },\r\n tag: {\r\n criteria: [{ weight: 1, getProperty: (item) => item.Tags ?? [] }],\r\n fullLabel: \"search.filters.tag_full_label\",\r\n label: \"search.filters.tags\",\r\n resultsDescription: \"search.filters.tag_results_description\"\r\n }\r\n};\r\n\r\nitemSelectorFilters.all.criteria = [itemSelectorFilters.title.criteria[0], itemSelectorFilters.tag.criteria[0]];\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.directive(\"loadingAnnouncer\", LoadingAnnouncer);\r\nLoadingAnnouncer.$inject = [\"$timeout\"];\r\n\r\nfunction LoadingAnnouncer($timeout) {\r\n return {\r\n restrict: \"E\",\r\n scope: {\r\n loading: \"@\",\r\n loadingMessage: \"=\",\r\n completedMessage: \"=\"\r\n },\r\n template: '

',\r\n link: function (scope, element, attr) {\r\n let isLoading = false;\r\n attr.$observe(\"loading\", (newVal, oldVal) => {\r\n $timeout(() => {\r\n if (newVal === \"true\") {\r\n scope.announcement = scope.loadingMessage;\r\n isLoading = true;\r\n } else if (isLoading) {\r\n isLoading = false;\r\n scope.announcement = scope.completedMessage;\r\n }\r\n });\r\n });\r\n }\r\n };\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/baseUrlsFactory\";\r\n\r\nangularAMD.directive(\"loadingSpinner\", [\r\n \"$sce\",\r\n \"$q\",\r\n \"$timeout\",\r\n \"$compile\",\r\n \"$templateRequest\",\r\n \"$templateCache\",\r\n \"baseUrlsFactory\",\r\n function ($sce, $q, $timeout, $compile, $templateRequest, $templateCache, baseUrlsFactory) {\r\n return {\r\n restrict: \"E\",\r\n scope: true,\r\n template: \"\",\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.template = \"\";\r\n\r\n $scope.onTemplateSet = function () {\r\n if ($attrs.template === \"withPlusIconAndText\") {\r\n // set timeout. if app is loading too long, then show message for user \"Still working\"\r\n $timeout(function () {\r\n angular.element($element[0].getElementsByClassName(\"still-working\")[0]).addClass(\"enabled\");\r\n }, 5500);\r\n }\r\n\r\n if ($attrs.icon) {\r\n $scope.spinner_icon = $attrs.icon;\r\n\r\n // set timeout. if app is loading too long, then show message for user \"Still working\"\r\n $timeout(function () {\r\n angular.element($element[0].getElementsByClassName(\"still-working\")[0]).addClass(\"enabled\");\r\n }, 5500);\r\n\r\n // make delay on removing the class when app is ready\r\n if ($attrs.ngHide) {\r\n $scope.app_container = angular.element(document.getElementById(\"app-container\"));\r\n var unbindWatch = $scope.$watch($attrs.ngHide, function (ngHide) {\r\n // tslint:disable-next-line:triple-equals\r\n if (ngHide == true) {\r\n $scope.app_container.removeClass(\"loading\");\r\n\r\n $timeout(function () {\r\n // remove class from app container to prevent app transition when ng-view is changing\r\n $scope.app_container.removeClass(\"init-show\");\r\n unbindWatch();\r\n }, 800);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if ($attrs.size) {\r\n $scope.spinner_size = $attrs.size;\r\n }\r\n };\r\n\r\n $scope.setTemplate = function (template) {\r\n if ($attrs.icon) {\r\n template = \"loadingSpinner/views/app-loading-spinner.lazy.html\";\r\n } else if (template) {\r\n switch (template) {\r\n case \"withText\":\r\n template = \"loadingSpinner/views/with-text-spinner.lazy.html\";\r\n break;\r\n case \"withUploadingText\":\r\n template = \"loadingSpinner/views/with-uploading-text-spinner.lazy.html\";\r\n break;\r\n case \"withPlusIconAndText\":\r\n template = \"loadingSpinner/views/with-plus-icon-and-text-spinner.lazy.html\";\r\n break;\r\n case \"withATLASIconAndText\":\r\n template = \"loadingSpinner/views/with-atlas-icon-and-text-spinner.lazy.html\";\r\n break;\r\n default:\r\n template = \"loadingSpinner/views/with-plus-icon-and-text-spinner.lazy.html\";\r\n break;\r\n }\r\n } else {\r\n template = \"loadingSpinner/views/loading-spinner.lazy.html\";\r\n }\r\n $scope.template = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + template);\r\n };\r\n\r\n $scope.compileTemplate = function (templateUrl) {\r\n var template = $templateCache.get(templateUrl);\r\n // console.log(\"LOADING-SPINNER\", templateUrl, template);\r\n var promise = template !== undefined ? $q.when(template) : $templateRequest(templateUrl);\r\n\r\n return promise.then(function (html) {\r\n $element.empty();\r\n var template = angular.element(html);\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n $element.append(template);\r\n $compile(template)($scope);\r\n });\r\n };\r\n\r\n $scope.observeTemplate = function (singleUse) {\r\n var templateObserve = $attrs.$observe(\"template\", function (value) {\r\n $scope.setTemplate(value);\r\n $scope.onTemplateSet();\r\n $scope.compileTemplate($scope.template);\r\n if (singleUse) {\r\n templateObserve();\r\n }\r\n });\r\n };\r\n\r\n $scope.init = function () {\r\n if ($attrs.template) {\r\n $scope.observeTemplate($attrs.singleUse === \"true\");\r\n } else {\r\n $scope.setTemplate($attrs.template);\r\n $scope.onTemplateSet();\r\n $scope.compileTemplate($scope.template);\r\n }\r\n };\r\n\r\n $scope.init();\r\n }\r\n ]\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../assetListItem/assetListItem.directive\";\r\nimport template from \"./templates/example-recovered-list.html\";\r\n\r\nangularAMD.directive(\"exampleRecoveredList\", [\r\n \"multiLanguageService\",\r\n function (multiLanguageService) {\r\n var AssetStoreItem = function (title, subText, name, icon, lastModified) {\r\n this.AssetTitle = title;\r\n this.SubText = subText;\r\n this.Author = name;\r\n this.Icon = icon;\r\n this.AssetMainType = icon;\r\n this.HistoryDateTime = lastModified;\r\n };\r\n\r\n return {\r\n template: template,\r\n scope: {\r\n iconType: \"@\",\r\n isResource: \"@\",\r\n hint: \"@\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.multiLanguageService = multiLanguageService;\r\n var listItemText = {\r\n recovered_title: $scope.multiLanguageService.getString(\"workbook.revision_modals.example_list.assets.recovered_title\"),\r\n title: $scope.multiLanguageService.getString(\"workbook.revision_modals.example_list.assets.title\")\r\n };\r\n var defaultType = \"webfoliopage\";\r\n var defaultRecoveredType = \"blog\";\r\n\r\n if ($scope.isResource) {\r\n listItemText = {\r\n recovered_title: $scope.multiLanguageService.getString(\"workbook.revision_modals.example_list.resources.recovered_title\"),\r\n title: $scope.multiLanguageService.getString(\"workbook.revision_modals.example_list.resources.title\")\r\n };\r\n defaultType = \"reflection-reversed\";\r\n defaultRecoveredType = \"talent-reversed\";\r\n }\r\n\r\n var recoveredType = $scope.iconType || defaultRecoveredType;\r\n var subText = $scope.multiLanguageService.getString(\"asset_summary.headings.modified\");\r\n\r\n $scope.dummyList = [\r\n new AssetStoreItem(listItemText.recovered_title, subText, $scope.multiLanguageService.getString(\"workbook.revision_modals.example_list.name\"), recoveredType, new Date()),\r\n new AssetStoreItem(listItemText.title, subText, $scope.multiLanguageService.getString(\"workbook.revision_modals.example_list.name\"), recoveredType, new Date())\r\n ];\r\n }\r\n ]\r\n };\r\n }\r\n]);\r\n","export default `

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./eventHelper.service\";\r\n\r\nangularAMD.factory(\"TouchMoveHandler\", TouchHandler);\r\nTouchHandler.$inject = [\"EventHelper\"];\r\n\r\nfunction TouchHandler(EventHelper) {\r\n /**\r\n * @param {Element} element - HTML element (not Angular.element).\r\n * @param {Number} threshold - Minimum amount of pixels to move to be valid\r\n * @param {Number} timespan - Max amount of time (ms) which the move must occur in\r\n * @constructor\r\n */\r\n function TouchMoveHandler(element, thresholdX, thresholdY, timespan) {\r\n this.element = element;\r\n this.thresholdX = thresholdX || 70;\r\n this.thresholdY = thresholdY || 70;\r\n this.timespan = timespan || 500;\r\n this.startTime = 0;\r\n this.isMoving = false;\r\n this.startVector = new Vector(0, 0);\r\n this.currentVector = new Vector(0, 0);\r\n this.events = {\r\n start: null,\r\n move: null,\r\n end: null\r\n };\r\n }\r\n\r\n /**\r\n * @param {Function} [onStart] - Params returned: event, startVector\r\n * @param {Function} [onMove] - Params returned: event, currentVector\r\n * @param {Function} [onEnd] - Params returned: event\r\n * @param {Boolean} [autoCleanup]\r\n * @param {Number} [throttleSpeed] -Throttle moveevent logic\r\n * @returns Object\r\n */\r\n TouchMoveHandler.prototype.registerEvents = function (onStart, onMove, onEnd, autoCleanup, throttleSpeed) {\r\n autoCleanup = autoCleanup === undefined ? true : autoCleanup;\r\n\r\n //Hold references to event functions to allow them to be unregistered.\r\n this.events.start = this.createEventResponse(this.onStart.bind(this), onStart);\r\n this.events.end = this.createEventResponse(this.onEnd.bind(this), onEnd);\r\n var moveHandler = this.createEventResponse(this.onMove.bind(this), onMove);\r\n if (throttleSpeed) {\r\n var throttler = new EventHelper.EventThrottler(moveHandler, throttleSpeed);\r\n this.events.move = throttler.handler().bind(throttler);\r\n } else {\r\n this.events.move = moveHandler;\r\n }\r\n\r\n //Bind events\r\n this.element.addEventListener(\"touchstart\", this.events.start, null);\r\n this.element.addEventListener(\"touchmove\", this.events.move, null);\r\n this.element.addEventListener(\"touchend\", this.events.end, null);\r\n\r\n if (autoCleanup) {\r\n angular.element(this.element).on(\"destroy\", this.deregisterEvents.bind(this));\r\n }\r\n\r\n return this.events;\r\n };\r\n\r\n //Deregister grammatically correct! :O\r\n TouchMoveHandler.prototype.deregisterEvents = function () {\r\n this.element.removeEventListener(\"touchstart\", this.events.start, null);\r\n this.element.removeEventListener(\"touchmove\", this.events.move, null);\r\n this.element.removeEventListener(\"touchend\", this.events.end, null);\r\n\r\n //Clear references\r\n this.events.start = this.events.move = this.events.end = null;\r\n\r\n return this;\r\n };\r\n\r\n TouchMoveHandler.prototype.createEventResponse = function (responder, callback) {\r\n return function (e) {\r\n var value = responder(e);\r\n if (callback) {\r\n callback(e, value);\r\n }\r\n };\r\n };\r\n\r\n TouchMoveHandler.prototype.onStart = function (e) {\r\n //For now we only care about single touch. Could extend this later on.\r\n var touch = e.touches[0];\r\n this.startTime = Date.now();\r\n return this.startVector.replace(touch.clientX, touch.clientY);\r\n };\r\n\r\n TouchMoveHandler.prototype.onMove = function (e) {\r\n var touch = e.touches[0];\r\n this.isMoving = true;\r\n return this.currentVector.replace(touch.clientX, touch.clientY);\r\n };\r\n\r\n TouchMoveHandler.prototype.onEnd = function (e) {\r\n var min = new Vector(this.startVector.x - this.thresholdX, this.startVector.y - this.thresholdX),\r\n max = new Vector(this.startVector.x + this.thresholdY, this.startVector.y + this.thresholdY),\r\n result = {\r\n validX: false,\r\n validY: false,\r\n xAxis: \"\",\r\n yAxis: \"\",\r\n diff: this.startVector.copy().subtract(this.currentVector),\r\n start: this.startVector.copy(),\r\n end: this.currentVector.copy(),\r\n dragAngle: Math.atan2(this.currentVector.y - this.startVector.y, this.currentVector.x - this.startVector.x)\r\n };\r\n\r\n if (this.isMoving && Date.now() - this.startTime <= this.timespan) {\r\n result.validX = this.testAxis(this.currentVector.x, min.x, max.x);\r\n result.validY = this.testAxis(this.currentVector.y, min.y, max.y);\r\n\r\n if (result.validX) {\r\n result.xAxis = result.diff.x > 0 ? \"right\" : \"left\";\r\n }\r\n\r\n if (result.validY) {\r\n result.yAxis = result.diff.y > 0 ? \"down\" : \"up\";\r\n }\r\n }\r\n\r\n this.reset();\r\n return result;\r\n };\r\n\r\n TouchMoveHandler.prototype.testAxis = function (current, min, max) {\r\n return current <= min || current >= max;\r\n };\r\n\r\n TouchMoveHandler.prototype.reset = function () {\r\n this.startTime = 0;\r\n this.isMoving = false;\r\n this.startVector.replace(0, 0);\r\n this.currentVector.replace(0, 0);\r\n\r\n return this;\r\n };\r\n\r\n return TouchMoveHandler;\r\n}\r\n\r\n/**\r\n * @param {Number} x\r\n * @param {Number} y\r\n * @constructor\r\n */\r\nfunction Vector(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n}\r\n\r\nVector.prototype.replace = function (x, y) {\r\n this.x = x;\r\n this.y = y;\r\n\r\n return this;\r\n};\r\n\r\nVector.prototype.subtract = function (vector) {\r\n this.x -= vector.x;\r\n this.y -= vector.y;\r\n\r\n return this;\r\n};\r\n\r\nVector.prototype.copy = function () {\r\n return new Vector(this.x, this.y);\r\n};\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ButtonClass } from \"@pjs/core-ui\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../progressDots/progressDots\";\r\nimport \"../utilities/touchMoveHandler.factory\";\r\nimport \"../utilities/shameOnBrowser\";\r\nimport \"../utilities/onRepeatEnd\";\r\nimport \"../userAgent/userAgent.service\";\r\nimport template from \"./templates/recovered-assets-guide.html\";\r\n\r\nangularAMD.directive(\"recoveredAssetsGuide\", [\r\n \"$sce\",\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"multiLanguageService\",\r\n \"$location\",\r\n \"$timeout\",\r\n \"TouchMoveHandler\",\r\n \"shameOnBrowser\",\r\n \"UserAgentService\",\r\n function ($sce, $http, baseUrlsFactory, multiLanguageService, $location, $timeout, TouchMoveHandler, shameOnBrowser, UserAgentService) {\r\n var Stage = function (key, template) {\r\n this.key = key;\r\n this.template = $sce.getTrustedResourceUrl(template);\r\n };\r\n\r\n var styleClasses = {\r\n animateRight: \"recovered-asset-guide__pane--animate-right\",\r\n animateLeft: \"recovered-asset-guide__pane--animate-left\",\r\n changingState: \"recovered-asset-guide__pane--hidden\",\r\n active: \"recovered-asset-guide__pane--active\"\r\n };\r\n\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n /**\r\n * Expects:\r\n * onFinish - function\r\n * recoveredData - Object | Array\r\n */\r\n\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n //Variables --------------------------------------------------------------------------------------------\r\n $scope.multiLanguageService = multiLanguageService;\r\n $scope.buttonClass = ButtonClass;\r\n $scope.recoveredSubmissions = [];\r\n $scope.currentStage = 0;\r\n $scope.elements = {\r\n panes: []\r\n };\r\n $scope.stages = [\r\n new Stage(\"initial\", baseUrlsFactory.shared_component_base_url + \"recoveredAssetsGuide/templates/recovered-initial-stage.lazy.html\"),\r\n new Stage(\"compare\", baseUrlsFactory.shared_component_base_url + \"recoveredAssetsGuide/templates/recovered-stage-one.lazy.html\")\r\n ];\r\n $scope.viewData = {\r\n hasConfirmed: false,\r\n actions: {\r\n assetStore: function () {\r\n $location.url(\"/store?type=asset\");\r\n }\r\n }\r\n };\r\n\r\n $scope.dateReady.then(function () {\r\n if ($scope.submittedAssets.length) {\r\n $scope.stages.splice(1, 0, new Stage(\"submitted\", baseUrlsFactory.shared_component_base_url + \"recoveredAssetsGuide/templates/submitted-stage.lazy.html\"));\r\n $scope.recoveredSubmissions = $scope.formatSubmissions($scope.submittedAssets);\r\n }\r\n });\r\n\r\n //Methods ----------------------------------------------------------------------------------------------\r\n // TODO: Move 'Stage' logic and transitions to service or directive! #future-refactor #code-cleanup\r\n $scope.nextStage = function () {\r\n if ($scope.currentStage < $scope.stages.length - 1) {\r\n $scope.setStage($scope.currentStage + 1);\r\n }\r\n return $scope.currentStage;\r\n };\r\n\r\n $scope.setStage = function (index) {\r\n var stage = $scope.stages[index],\r\n lastStage = $scope.currentStage;\r\n if (stage) {\r\n $scope.currentStage = index;\r\n $scope.updateView($scope.currentStage, lastStage);\r\n $scope.animatePane($scope.currentStage, lastStage);\r\n }\r\n\r\n return $scope.currentStage;\r\n };\r\n\r\n $scope.formatSubmissions = function (submittedAssets) {\r\n var formatted = [];\r\n\r\n for (var i = 0, l = submittedAssets.length; i < l; i++) {\r\n $scope.getRecoveredAssetsFromItem(submittedAssets[i], formatted);\r\n }\r\n\r\n return formatted;\r\n };\r\n\r\n $scope.getRecoveredAssetsFromItem = function (item, results) {\r\n results = results || [];\r\n\r\n for (var i = 0, l = item.RecoveredAssets.length; i < l; i++) {\r\n results.push({\r\n data: item.RecoveredAssets[i],\r\n parent: item.MainParent\r\n });\r\n }\r\n\r\n return results;\r\n };\r\n\r\n $scope.updateView = function (index, lastIndex) {\r\n var newPane = $scope.elements.panes[index],\r\n lastPane = $scope.elements.panes[lastIndex];\r\n\r\n lastPane.removeClass(styleClasses.active);\r\n newPane.addClass(styleClasses.active);\r\n };\r\n\r\n $scope.animatePane = function (index, lastIndex) {\r\n var newPane = $scope.elements.panes[index],\r\n styleClass = index > lastIndex ? styleClasses.animateRight : styleClasses.animateLeft;\r\n\r\n newPane.addClass(styleClass);\r\n shameOnBrowser.forceElementRepaint(\r\n newPane[0],\r\n function () {\r\n $timeout(function () {\r\n newPane.removeClass(styleClass);\r\n }, 10);\r\n },\r\n 10\r\n );\r\n };\r\n\r\n $scope.cachePaneElements = function () {\r\n $scope.elements.panes = Array.prototype.slice.call($element[0].getElementsByClassName(\"recovered-asset-guide__pane\"));\r\n for (var i = 0, l = $scope.elements.panes.length; i < l; i++) {\r\n $scope.elements.panes[i] = angular.element($scope.elements.panes[i]);\r\n }\r\n\r\n return $scope.elements.panes;\r\n };\r\n\r\n $scope.onTouchEnd = function (e, touchResults) {\r\n if (touchResults.validX && !touchResults.validY) {\r\n if (touchResults.xAxis === \"right\") {\r\n $scope.nextStage();\r\n } else {\r\n $scope.setStage($scope.currentStage - 1);\r\n }\r\n }\r\n };\r\n\r\n $scope.initPanes = function () {\r\n $scope.cachePaneElements();\r\n $scope.elements.panes[$scope.currentStage].addClass(styleClasses.active);\r\n };\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n if (UserAgentService.touch) {\r\n var touchHandler = new TouchMoveHandler(element[0]);\r\n touchHandler.registerEvents(null, null, scope.onTouchEnd, true);\r\n }\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../modal/services/modal\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../exampleRecoveredList/exampleRecoveredList\";\r\nimport \"../../recoveredAssetsGuide/recoveredAssetsGuide\";\r\nimport \"../../assetStore/services/assetStoreService\";\r\nimport \"../../overlay/services/overlayFactory\";\r\nimport \"../../assetEndpointService/assetEndpoint.service\";\r\nimport \"../../recoveryLogger/recoveryLogger\";\r\nimport { ASSET_CONSTANTS } from \"../../constants/asset.constants\";\r\nimport { PageModelSearch } from \"../../pageModelSearch/pageModelSearch\";\r\nimport { determinePageAssetId } from \"../../pageModelSearch/helpers/DeterminePageAssetId.function\";\r\nimport { withoutDuplicatePageAssetIdsFactory } from \"../../pageModelSearch/helpers/WithoutDuplicatePageAssetIdsFactory.function\";\r\nimport { withoutEmptyPageAssetIds } from \"../../pageModelSearch/helpers/WithoutEmptyPageAssetIds.function\";\r\n\r\nangularAMD.service(\"localChangesResolver\", [\r\n \"$rootScope\",\r\n \"$http\",\r\n \"$q\",\r\n \"$sce\",\r\n \"$timeout\",\r\n \"baseUrlsFactory\",\r\n \"modal\",\r\n \"multiLanguageService\",\r\n \"assetStoreService\",\r\n \"overlayFactory\",\r\n \"$routeParams\",\r\n \"AssetEndpointService\",\r\n \"recoveryLogger\",\r\n function ($rootScope, $http, $q, $sce, $timeout, baseUrlsFactory, modal, multiLanguageService, assetStoreService, overlayFactory, $routeParams, AssetEndpointService, recoveryLogger) {\r\n var LocalChangesResolver = {};\r\n var typesThatHasNestedItems = [\"Webfolio\", \"WorkBook\", \"WorkBookResponse\", \"WorkbookBuilder\"];\r\n var resourceTypes = [\"WorkbookBuilder\", \"TemplateBuilder\"];\r\n var recoverNotLoggedIn = \"Can't recover, you are not logged in.\";\r\n /**\r\n * @param {string} assetId\r\n * @param {Object} dto\r\n * @param {string} type\r\n * @param {string} icon\r\n * @param {OutdatedDataHolder} lockedAssets\r\n * @param {OutdatedDataHolder} outdatedAssets\r\n * @param {Boolean} standaloneLockedResponse\r\n * @constructor\r\n */\r\n function RecoveryDto(assetId, dto, type, icon, lockedAssets, outdatedAssets, standaloneLockedResponse) {\r\n this.mainAssetInfo = {\r\n assetId: assetId,\r\n dto: dto,\r\n assetGlobalType: type,\r\n assetIcon: icon\r\n };\r\n this.lockedAssets = lockedAssets;\r\n this.outdatedAssets = outdatedAssets;\r\n this.standaloneLockedResponse = standaloneLockedResponse;\r\n }\r\n\r\n function OutdatedDataHolder(dtos, ids) {\r\n this.dtos = dtos || {};\r\n this.ids = ids || [];\r\n this.serverRevisions = {};\r\n }\r\n\r\n const whenNotLoggedOutError = (callback) => {\r\n return (rejection) => {\r\n if (rejection.status === 401) {\r\n return;\r\n }\r\n\r\n callback();\r\n };\r\n };\r\n\r\n //Can't inject DataManagerService through the usual way, as we get a Circular reference. Instead we create an 'API' - Could do a direct reference, but that seems lest tidy in this circumstance\r\n LocalChangesResolver.dataService = {\r\n clear: null,\r\n getDto: null,\r\n checkIfSaved: null,\r\n loadFromPersistentObjStore: null,\r\n destroy: null\r\n };\r\n\r\n /**\r\n * Pass string or array of ids to get local storage dtos in case any have been found.\r\n *\r\n * @param {string|string[]} ids\r\n * @param {boolean=} returnOnlyDto - default value: false. Set 'true' to get only first item.\r\n * @returns {{dtos: {}, ids: Array}}\r\n */\r\n LocalChangesResolver.getLocalDto = function (ids, returnOnlyDto) {\r\n var idsIsArray = ids.constructor !== Array;\r\n var foundData = {\r\n dtos: {},\r\n ids: []\r\n };\r\n\r\n if (idsIsArray) {\r\n ids = [ids];\r\n }\r\n\r\n for (var id, localItem, i = 0, len = ids.length; i < len; i++) {\r\n id = ids[i];\r\n localItem = this.getLocalStorageItem(id);\r\n\r\n if (localItem) {\r\n foundData.dtos[id] = this.getLocalStorageItem(id);\r\n foundData.ids.push(id);\r\n }\r\n }\r\n\r\n // make the whole object null in case there found 0 local items\r\n foundData = foundData.ids.length > 0 ? foundData : null;\r\n\r\n // return only first dto in case returnOnlyDto is set to true\r\n if (foundData && returnOnlyDto === true) {\r\n foundData = foundData.dtos[foundData.ids[0]];\r\n }\r\n\r\n return foundData;\r\n };\r\n\r\n /**\r\n * @param {string} keyName\r\n * @returns {{}|null}\r\n */\r\n LocalChangesResolver.getLocalStorageItem = function (keyName) {\r\n return this.dataService.loadFromPersistentObjStore(keyName);\r\n };\r\n\r\n LocalChangesResolver.cleanupLocalStorage = function (items) {\r\n if (items && items.length > 0) {\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n this.dataService.destroy(items[i]);\r\n }\r\n }\r\n };\r\n\r\n LocalChangesResolver.getRevisionData = function (assetIds) {\r\n return $http.post(baseUrlsFactory.api_base_url + \"AssetDto/GetRevisionInformation\", assetIds).then(function (response) {\r\n return response.data;\r\n });\r\n };\r\n\r\n LocalChangesResolver.hasNestedItems = function (item) {\r\n return typesThatHasNestedItems.indexOf(item.PageType || item.MainType) > -1 && ((item.Children && item.Children.length > 0) || (item.Pages && item.Pages.length > 0));\r\n };\r\n\r\n LocalChangesResolver.getMainAsset = function (assetId, hasNestedItems) {\r\n // try and get dto from local storage\r\n var dto = this.getLocalDto(assetId, true),\r\n deferred = $q.defer();\r\n\r\n if (dto) {\r\n deferred.resolve({ dto: dto, assetId: assetId });\r\n } else {\r\n if (hasNestedItems) {\r\n // dto is not in local storage but we need to check children so get asset from server and check child ids\r\n var responseParams = { assetId: assetId, permissionRequired: \"View\", submissionId: $routeParams.submissionId };\r\n AssetEndpointService.getAssetAndCheckPermission(responseParams).then(function (response) {\r\n if (response.data.MessageType === \"Success\") {\r\n deferred.resolve({ dto: response.data.Asset, assetId: assetId });\r\n } else {\r\n deferred.reject();\r\n }\r\n });\r\n } else {\r\n deferred.resolve({ assetId: assetId });\r\n }\r\n }\r\n\r\n return deferred.promise;\r\n };\r\n\r\n LocalChangesResolver.getIdKeyName = function (type) {\r\n var pageAssetId = \"PageAssetId\",\r\n userResponseId = \"UserResponseId\",\r\n contentId = \"ContentId\",\r\n genericPagesKeys = [pageAssetId],\r\n map = {\r\n Webfolio: genericPagesKeys,\r\n WebfolioPage: genericPagesKeys,\r\n WorkBook: [userResponseId, contentId],\r\n WorkbookBuilder: [contentId],\r\n WorkBookResponse: [userResponseId],\r\n default: genericPagesKeys\r\n };\r\n\r\n return map[type] || map[\"default\"];\r\n };\r\n\r\n LocalChangesResolver.getValueFromKeys = function (item, keys) {\r\n var value = null;\r\n for (var i = 0, l = keys.length; i < l; i++) {\r\n value = item[keys[i]];\r\n if (value) {\r\n break;\r\n }\r\n }\r\n\r\n return value;\r\n };\r\n\r\n LocalChangesResolver.getAllNestedIds = function (mainType, items, existingIds = new Set()) {\r\n if (!Array.isArray(items) || items.length === 0) {\r\n return existingIds;\r\n }\r\n\r\n for (const item of items) {\r\n if (this.hasNestedItems(item)) {\r\n this.getAllNestedIds(item.PageType, item.Children, existingIds);\r\n } else {\r\n existingIds.add(this.getValueFromKeys(item, this.getIdKeyName(mainType)));\r\n }\r\n }\r\n\r\n return existingIds;\r\n };\r\n\r\n LocalChangesResolver.validateItem = function (dto, revisionData, checkForSave, checkTableLegacy) {\r\n var isOutdated, isDeprecated, hasOldTable;\r\n\r\n dto.is_saved = dto.is_saved === undefined ? false : dto.is_saved;\r\n\r\n if (dto && revisionData) {\r\n // tslint:disable-next-line:triple-equals\r\n isOutdated = !this.itemIsDeprecated(dto) && dto.is_saved == false && this.checkRevision(revisionData, dto, checkForSave); // Local Asset out of date\r\n isDeprecated = this.itemIsDeprecated(dto) && this.checkDates(dto); // Local Asset out of date and created before 1604 Release\r\n hasOldTable = this.itemHasOldTable(dto, checkTableLegacy);\r\n\r\n return isOutdated || isDeprecated || hasOldTable;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n LocalChangesResolver.revisionCheckAssetList = function (itemsToValidate, checkForSave, checkTableLegacy) {\r\n return this.getRevisionData(itemsToValidate.ids).then(\r\n function (revisionData) {\r\n var outdatedData = new OutdatedDataHolder();\r\n\r\n var revisionItem;\r\n if (!revisionData) {\r\n return null;\r\n }\r\n\r\n for (var i = 0, len = revisionData.length; i < len; i++) {\r\n // if item is outdated, then add it to the 'outdatedData' object\r\n revisionItem = revisionData[i];\r\n if (this.validateItem(itemsToValidate.dtos[revisionItem.Key], revisionItem, checkForSave, checkTableLegacy)) {\r\n outdatedData.dtos[revisionItem.Key] = itemsToValidate.dtos[revisionItem.Key];\r\n outdatedData.ids.push(revisionItem.Key);\r\n outdatedData.serverRevisions[revisionItem.Key] = revisionItem.Value;\r\n }\r\n }\r\n\r\n if (outdatedData.ids.length > 0) {\r\n recoveryLogger.step(\"recover\", `Found ${outdatedData.ids.length} old revision assets to recover`);\r\n return outdatedData;\r\n }\r\n\r\n return null;\r\n }.bind(this)\r\n );\r\n };\r\n\r\n LocalChangesResolver.lockCheckAssets = function (assetIds) {\r\n return assetStoreService.getEditStatusForAssets(assetIds).then(function (keyValueDtos) {\r\n var viewOnlyAssetIds = [];\r\n var keyValueDto = null;\r\n\r\n for (var i = 0, l = keyValueDtos.length; i < l; i++) {\r\n keyValueDto = keyValueDtos[i];\r\n if (keyValueDto.Value === \"View\") {\r\n viewOnlyAssetIds.push(keyValueDto.Key);\r\n }\r\n }\r\n return viewOnlyAssetIds;\r\n });\r\n };\r\n\r\n /**\r\n * Given an assetDto and assetId, works through the asset and any children it may have, checking if they exist in localStorage.\r\n * @param {Object} mainDto\r\n * @param {string} assetId\r\n * @returns {{dtos: Object, ids: Array}}\r\n */\r\n LocalChangesResolver.getLocalAssetsFromDto = function (mainDto, assetId) {\r\n let allNestedIds = [];\r\n\r\n if (mainDto) {\r\n allNestedIds = Array.from(this.getAllNestedIds(mainDto.MainType || mainDto.PageType, mainDto.Children || mainDto.Pages));\r\n }\r\n allNestedIds.unshift(assetId);\r\n\r\n return this.getLocalDto(allNestedIds);\r\n };\r\n\r\n /**\r\n * @param {string} assetId\r\n * @param {Boolean} hasNestedItems\r\n * @param {Boolean} checkForSave\r\n * @param {Boolean} checkTableLegacy\r\n * @returns {Promise}\r\n * Resolves with RecoveryDto\r\n */\r\n LocalChangesResolver.getAssetsWithConflicts = function (assetId, hasNestedItems, checkForSave, checkTableLegacy) {\r\n return this.getLocalAssetsFromId(assetId, hasNestedItems).then(\r\n function (data) {\r\n if (!data || data.local === null) {\r\n return null;\r\n }\r\n\r\n if (data.mainDto.MainType === ASSET_CONSTANTS.TYPES.WORKBOOK_RESPONSE || data.mainDto.MainType === ASSET_CONSTANTS.TYPES.WEBFOLIO) {\r\n const index = data.local.ids.indexOf(assetId);\r\n if (index !== -1) {\r\n data.local.ids.splice(index, 1);\r\n }\r\n }\r\n\r\n if (data.local.ids.length === 0) {\r\n return null;\r\n }\r\n\r\n return this.getLockedAssetsToRecover(data).then(\r\n function (lockedAssets) {\r\n return this.revisionCheckAssetList(data.local, checkForSave, checkTableLegacy).then(\r\n function (outdatedAssets) {\r\n if ((!lockedAssets || !lockedAssets.toRecover) && !outdatedAssets) {\r\n return null;\r\n } else {\r\n var lockedToRecover = null;\r\n var standaloneLockedResponse = false;\r\n\r\n if (lockedAssets) {\r\n lockedToRecover = lockedAssets.toRecover;\r\n standaloneLockedResponse = lockedAssets.standaloneLockedResponse;\r\n }\r\n\r\n return this.createRecoveryDto(assetId, data.mainDto, lockedToRecover, outdatedAssets, standaloneLockedResponse);\r\n }\r\n }.bind(this)\r\n );\r\n }.bind(this)\r\n );\r\n }.bind(this)\r\n );\r\n };\r\n\r\n /**\r\n * Give an asset Id, it gets the Full Asset, then works through the asset and any children it may have, checking if they exist in localStorage.\r\n * @param {string} assetId\r\n * @param {Boolean} hasNestedItems\r\n * @returns {{mainDto: Object, local: {dtos: Object, ids: Array}}} | null}\r\n */\r\n LocalChangesResolver.getLocalAssetsFromId = function (assetId, hasNestedItems) {\r\n return this.getMainAsset(assetId, hasNestedItems).then(\r\n function (data) {\r\n // if this is a dummy asset used by the workbook/template builder then never recover it\r\n if (data && data.dto && this.isDummyAsset(data.dto)) {\r\n return null;\r\n }\r\n\r\n var localData = this.getLocalAssetsFromDto(data.dto, data.assetId);\r\n return {\r\n mainDto: data.dto,\r\n local: localData\r\n };\r\n }.bind(this)\r\n );\r\n };\r\n\r\n LocalChangesResolver.dtosObjectToArray = function (object) {\r\n var arr = [];\r\n\r\n for (var key in object) {\r\n if (!object.hasOwnProperty(key) || !object[key]) {\r\n continue;\r\n }\r\n var obj = object[key];\r\n\r\n if (isNaN(obj.Revision)) {\r\n obj.Revision = -1;\r\n }\r\n\r\n arr.push(obj);\r\n }\r\n\r\n return arr;\r\n };\r\n\r\n LocalChangesResolver.createRecoveryDto = function (assetId, dto, lockedAssets, outdatedAssets, standaloneLockedResponse) {\r\n return new RecoveryDto(assetId, dto, this.getAssetGlobalType(dto), this.getAssetIcon(dto), lockedAssets, outdatedAssets, standaloneLockedResponse);\r\n };\r\n\r\n LocalChangesResolver.removeDuplicatesFromOutdatedDataHolder = function (searchingDataHolder, changingDataHolder) {\r\n changingDataHolder.ids.removeItems(searchingDataHolder.ids);\r\n searchingDataHolder.ids.forEach(function (id) {\r\n if (changingDataHolder.dtos[id]) {\r\n delete changingDataHolder.dtos[id];\r\n delete changingDataHolder.serverRevisions[id];\r\n }\r\n });\r\n };\r\n\r\n LocalChangesResolver.recoverOutdatedAssets = function (mainAssetInfo, outdatedAssets) {\r\n const dtos = this.dtosObjectToArray(outdatedAssets.dtos);\r\n const type = mainAssetInfo && mainAssetInfo.dto ? mainAssetInfo.dto.MainType || mainAssetInfo.PageType : \"\";\r\n recoveryLogger.end(\"Recovery by load\", `Recovery | Main type: ${type} | Item types: ${dtos.map((dto) => dto.MainType).join(\",\")}`);\r\n return $http\r\n .post(baseUrlsFactory.api_base_url + \"AssetDto/Recover\", {\r\n MainAssetId: mainAssetInfo.assetId,\r\n Dtos: dtos\r\n })\r\n .then(function (response) {\r\n return response.data && response.data.Success ? response.data : $q.reject(response);\r\n });\r\n };\r\n\r\n LocalChangesResolver.recoverOutdatedAssetsBeforeSave = function (mainAssetInfo, outdatedAssets) {\r\n recoveryLogger.end(\"Recovery by save\", `Recovery ${mainAssetInfo && mainAssetInfo.dto ? mainAssetInfo.dto.MainType || mainAssetInfo.PageType : \"\"}`);\r\n\r\n const ids = outdatedAssets.ids;\r\n let idsWithTitles = null;\r\n\r\n if (Array.isArray(mainAssetInfo.dto.Pages)) {\r\n const matchOutdatedAssets = (p) => ids.includes(determinePageAssetId(p));\r\n const withoutDuplicatePageAssetIds = withoutDuplicatePageAssetIdsFactory();\r\n\r\n idsWithTitles = new PageModelSearch(mainAssetInfo.dto.Pages)\r\n .filter(withoutEmptyPageAssetIds, withoutDuplicatePageAssetIds, matchOutdatedAssets)\r\n .map((p) => ({ Id: determinePageAssetId(p), Title: p.PageTitle }));\r\n } else {\r\n idsWithTitles = ids.map((id) => {\r\n const localModel = outdatedAssets.dtos[id];\r\n return {\r\n Id: id,\r\n Title: localModel !== undefined ? localModel.Title : null\r\n };\r\n });\r\n }\r\n\r\n return $http.post(`${baseUrlsFactory.api_base_url}AssetDto/RecoverAssetsByServerBackup?assetId=${mainAssetInfo.assetId}`, idsWithTitles).then(function (response) {\r\n return response.data && response.data.RecoveredIds.length > 0 ? response.data : $q.reject(response);\r\n });\r\n };\r\n\r\n LocalChangesResolver.updateRevisionOfActiveDtosOnSave = function (outdatedAssets) {\r\n var id = \"\";\r\n for (var i = 0, l = outdatedAssets.ids.length; i < l; i++) {\r\n id = outdatedAssets.ids[i];\r\n var manager = this.dataService.getDto(id);\r\n if (manager) {\r\n // +1 as checkRevision() on save uses > not >=.\r\n // Meaning if latest Revision is 10, then we save, server is now 11, when we make a local change it will be 11, thus failing checkRevision() on Save\r\n manager.data.Revision = outdatedAssets.serverRevisions[id] + 1;\r\n }\r\n }\r\n };\r\n\r\n LocalChangesResolver.getLockedAssetsToRecover = function (data) {\r\n return this.lockCheckAssets(data.local.ids).then(\r\n function (lockedAssetIds) {\r\n if (lockedAssetIds.length === 0) {\r\n return null;\r\n }\r\n\r\n var standaloneLockedResponse = lockedAssetIds.length === 1 && data.local.dtos[lockedAssetIds[0]].MainType === \"WorkBookResponse\";\r\n var lockedAssetsToRecover = lockedAssetIds.map(function (lockedAssetId) {\r\n return data.local.dtos[lockedAssetId];\r\n });\r\n\r\n if (lockedAssetsToRecover.length > 0) {\r\n recoveryLogger.step(\"recover\", `Found ${lockedAssetsToRecover.length} locked assets to recover`);\r\n }\r\n var toRecover = new OutdatedDataHolder(lockedAssetsToRecover, lockedAssetIds);\r\n return {\r\n standaloneLockedResponse: standaloneLockedResponse,\r\n toRecover: toRecover\r\n };\r\n }.bind(this)\r\n );\r\n };\r\n\r\n LocalChangesResolver.onRecoverySuccess = function (result, isSaving) {\r\n if (result.recoveryDto.lockedAssets && !result.recoveryDto.outdatedAssets) {\r\n return this.notifyUserOfLockedAssetRecovery(result.recoveryDto.mainAssetInfo.assetIcon, isSaving).then(function () {\r\n return result;\r\n });\r\n } else {\r\n return $q.when(result);\r\n }\r\n };\r\n\r\n LocalChangesResolver.onRevisionRecoverSuccess = function (data) {\r\n if (!data.recoveryDto.outdatedAssets) {\r\n return;\r\n }\r\n\r\n this.cleanupLocalStorageOnResolve(data.recoveryDto);\r\n // show modal\r\n return this.notifyUser(false, data.recoveryDto.mainAssetInfo.assetGlobalType === \"resource\", data.recoveryDto.mainAssetInfo.assetIcon);\r\n };\r\n\r\n LocalChangesResolver.onRevisionRecoverFailure = function (data) {\r\n if (!data) {\r\n return;\r\n }\r\n\r\n this.cleanupLocalStorageOnResolve(data.recoveryDto);\r\n };\r\n\r\n LocalChangesResolver.onRevisionRecoverBeforeSaveSuccess = function (data) {\r\n if (!data.recoveryDto.outdatedAssets) {\r\n return;\r\n }\r\n\r\n var recoveryDto = data.recoveryDto;\r\n var onCloseCallback = function () {\r\n this.updateRevisionOfActiveDtosOnSave(recoveryDto.outdatedAssets);\r\n }.bind(this);\r\n return this.notifyUser(true, recoveryDto.mainAssetInfo.assetGlobalType === \"resource\", recoveryDto.mainAssetInfo.assetIcon, null, null, onCloseCallback);\r\n };\r\n\r\n LocalChangesResolver.onRevisionRecoverBeforeSaveFailure = function (data) {\r\n if (!data) {\r\n return;\r\n }\r\n this.onRevisionRecoverFailure(data);\r\n };\r\n\r\n /**\r\n * @param {RecoveryDto} recoveryDto\r\n * @param {Function} revisionRecoveryAPICall\r\n * @returns {Promise} - Resolves with {{recoveryDto: recoveryDto, lockedResponse: Object|null, revisionResponse: Object|null}}\r\n */\r\n LocalChangesResolver.runRecoveries = function (recoveryDto, revisionRecoveryAPICall) {\r\n var promises = [];\r\n var lockedResult = null;\r\n var revisionResult = null;\r\n\r\n if (recoveryDto.lockedAssets !== null && recoveryDto.lockedAssets.ids.length !== 0) {\r\n if (recoveryDto.outdatedAssets !== null) {\r\n //Remove any ids which are in both the locked and revision objects\r\n this.removeDuplicatesFromOutdatedDataHolder(recoveryDto.lockedAssets, recoveryDto.outdatedAssets);\r\n }\r\n\r\n promises.push(\r\n this.recoverOutdatedAssets(recoveryDto.mainAssetInfo, recoveryDto.lockedAssets).then(\r\n function (result) {\r\n lockedResult = result;\r\n }.bind(this)\r\n )\r\n );\r\n }\r\n\r\n if (recoveryDto.outdatedAssets !== null && recoveryDto.outdatedAssets.ids.length !== 0) {\r\n promises.push(\r\n revisionRecoveryAPICall(recoveryDto.mainAssetInfo, recoveryDto.outdatedAssets).then(function (result) {\r\n revisionResult = result;\r\n })\r\n );\r\n }\r\n\r\n return $q.all(promises).then(\r\n function () {\r\n return {\r\n recoveryDto: recoveryDto,\r\n lockedResponse: lockedResult,\r\n revisionResponse: revisionResult\r\n };\r\n }.bind(this)\r\n );\r\n };\r\n\r\n LocalChangesResolver.checkDto = function (assetId, hasNestedItems, checkForSave, checkTableLegacy) {\r\n // if this is a dummy asset used by the workbook/template builder then never recover it\r\n var activeDto = this.dataService.getDto(assetId);\r\n if (activeDto && activeDto.data) {\r\n if (this.isDummyAsset(activeDto.data)) {\r\n return $q.when();\r\n }\r\n }\r\n\r\n return this.getAssetsWithConflicts(assetId, hasNestedItems, checkForSave, checkTableLegacy).then(\r\n function (recoveryDto) {\r\n if (!recoveryDto) {\r\n return null;\r\n }\r\n\r\n if (recoveryDto.standaloneLockedResponse) {\r\n this.cleanupLocalStorageAndResetManager([recoveryDto.mainAssetInfo.assetId]);\r\n return null;\r\n }\r\n\r\n var onFailure = this.onRevisionRecoverFailure.bind(this);\r\n return this.runRecoveries(recoveryDto, this.recoverOutdatedAssets.bind(this)).then(\r\n function (result) {\r\n this.cleanupLocalStorageOnResolve(result.recoveryDto);\r\n return this.onRecoverySuccess(result, false).then(this.onRevisionRecoverSuccess.bind(this, result));\r\n }.bind(this),\r\n onFailure\r\n );\r\n }.bind(this)\r\n );\r\n };\r\n\r\n LocalChangesResolver.checkBeforeSave = function (assetId) {\r\n var activeDto = this.dataService.getDto(assetId);\r\n\r\n if (activeDto && activeDto.data) {\r\n // if this is a dummy asset used by the workbook/template builder then never recover it\r\n if (this.isDummyAsset(activeDto.data)) {\r\n return $q.when();\r\n }\r\n\r\n return this.getAssetsWithConflicts(assetId, this.hasNestedItems(activeDto.data), true, false).then(\r\n function (recoveryDto) {\r\n if (!recoveryDto) {\r\n return null;\r\n }\r\n\r\n if (recoveryDto.standaloneLockedResponse) {\r\n this.cleanupLocalStorageAndResetManager([recoveryDto.mainAssetInfo.assetId]);\r\n return $q.reject({\r\n standaloneLockedResponse: recoveryDto.standaloneLockedResponse\r\n });\r\n }\r\n\r\n var onFailure = this.onRevisionRecoverBeforeSaveFailure.bind(this);\r\n return this.runRecoveries(recoveryDto, this.recoverOutdatedAssetsBeforeSave.bind(this)).then(\r\n function (result) {\r\n this.cleanupLocalStorage(result.recoveryDto.lockedAssets !== null && Array.isArray(result.recoveryDto.lockedAssets.ids) ? result.recoveryDto.lockedAssets.ids : null);\r\n return this.onRecoverySuccess(result, true)\r\n .then(this.onRevisionRecoverBeforeSaveSuccess.bind(this, result))\r\n .then(function () {\r\n return result;\r\n });\r\n }.bind(this),\r\n onFailure\r\n );\r\n }.bind(this)\r\n );\r\n } else {\r\n return $q.when();\r\n }\r\n };\r\n\r\n LocalChangesResolver.isDummyAsset = function (dto) {\r\n var isDummyAsset = false;\r\n if (dto && dto.AssetOptions && dto.AssetOptions.length) {\r\n for (var i = 0; i < dto.AssetOptions.length; i++) {\r\n var option = dto.AssetOptions[i];\r\n if (option && option.Key && option.Key === \"dummyAssetForBuilder\") {\r\n isDummyAsset = true;\r\n }\r\n }\r\n }\r\n return isDummyAsset;\r\n };\r\n\r\n LocalChangesResolver.getOnlyAssets = function (keys) {\r\n var allAssetData = { ids: { hasNested: [], noNested: [] }, dtos: {} },\r\n key,\r\n currentItem;\r\n\r\n for (var i = 0, len = keys.length; i < len; i++) {\r\n key = keys[i];\r\n currentItem = this.getLocalStorageItem(key);\r\n\r\n if (currentItem) {\r\n if (this.hasNestedItems(currentItem)) {\r\n allAssetData.ids.hasNested.push(key);\r\n } else {\r\n allAssetData.ids.noNested.push(key);\r\n }\r\n\r\n allAssetData.dtos[key] = currentItem;\r\n }\r\n }\r\n\r\n return allAssetData;\r\n };\r\n\r\n LocalChangesResolver.cleanupLocalStorageOnResolve = function (data) {\r\n if (!data) {\r\n return;\r\n }\r\n\r\n this.cleanupLocalStorage(data.outdatedAssets && data.outdatedAssets.ids ? data.outdatedAssets.ids : null);\r\n this.cleanupLocalStorage(data.lockedAssets && data.lockedAssets.ids ? data.lockedAssets.ids : null);\r\n };\r\n\r\n LocalChangesResolver.cleanupLocalStorageAndResetManager = function (ids) {\r\n var manager = null;\r\n\r\n this.cleanupLocalStorage(ids);\r\n for (var i = 0, l = ids.length; i < l; i++) {\r\n manager = this.dataService.getDto(ids[i]);\r\n\r\n if (manager) {\r\n manager.is_saved = true;\r\n manager.data.is_saved = true;\r\n }\r\n }\r\n };\r\n\r\n LocalChangesResolver.recoverAllAssets = function (ids, dtos, startRecoveryPromise) {\r\n var id,\r\n promise,\r\n promises = [],\r\n recoveredSubmittedAssets = [];\r\n\r\n if (ids && ids.length > 0) {\r\n for (var i = 0, len = ids.length; i < len; i++) {\r\n id = ids[i];\r\n\r\n promise = this.getAssetsWithConflicts(id, this.hasNestedItems(dtos[id]), false, false).then(\r\n function (recovery) {\r\n if (!recovery) {\r\n return null;\r\n }\r\n\r\n if (recovery.standaloneLockedResponse) {\r\n this.cleanupLocalStorageAndResetManager([recovery.mainAssetInfo.assetId]);\r\n return null;\r\n }\r\n\r\n const onFailure = whenNotLoggedOutError(this.cleanupLocalStorageOnResolve.bind(this, recovery));\r\n\r\n return this.runRecoveries(recovery, this.recoverOutdatedAssets.bind(this)).then(\r\n function (result) {\r\n if (!result.recoveryDto.lockedAssets && !result.recoveryDto.outdatedAssets) {\r\n return null;\r\n }\r\n\r\n if (result.lockedResponse) {\r\n recoveredSubmittedAssets.push(result.lockedResponse);\r\n }\r\n\r\n if (result.revisionResponse) {\r\n recoveredSubmittedAssets.push(result.revisionResponse);\r\n }\r\n this.cleanupLocalStorageOnResolve(result.recoveryDto);\r\n startRecoveryPromise.resolve(result.recoveryDto);\r\n\r\n return result.recoveryDto;\r\n }.bind(this),\r\n onFailure\r\n );\r\n }.bind(this)\r\n );\r\n\r\n promises.push(promise);\r\n }\r\n return $q.all(promises).then(function (data) {\r\n return { resolved: data, submittedAssets: recoveredSubmittedAssets };\r\n });\r\n } else {\r\n return $q.when(null);\r\n }\r\n };\r\n\r\n LocalChangesResolver.forceRecoveryIfUnsaved = function (assetId) {\r\n return this.dataService.checkIfSaved(assetId) ? $q.reject() : this.forceRecovery(assetId);\r\n };\r\n\r\n LocalChangesResolver.forceRecovery = function (assetId) {\r\n var manager = this.dataService.getDto(assetId);\r\n\r\n //If manager doesn't exist bail!\r\n if (!manager || !manager.data) {\r\n return $q.reject();\r\n }\r\n\r\n //Get local storage items which could be linked with the asset. Skip validation (revision checking).\r\n return this.getLocalAssetsFromId(assetId, this.hasNestedItems(manager.data)).then(\r\n function (data) {\r\n if (data.local === null) {\r\n return $q.reject();\r\n }\r\n\r\n const recoveryDto = this.createRecoveryDto(assetId, data.mainDto, null, data.local);\r\n const ids = [recoveryDto.mainAssetInfo.assetId].distinctConcat(recoveryDto.outdatedAssets.ids);\r\n const onFailure = whenNotLoggedOutError(this.cleanupLocalStorageAndResetManager.bind(this, ids));\r\n\r\n //Call to server to initiate recovery.\r\n return this.recoverOutdatedAssets(recoveryDto.mainAssetInfo, recoveryDto.outdatedAssets).then(\r\n function (response) {\r\n if (response.Message === recoverNotLoggedIn) {\r\n $rootScope.$broadcast(\"allowRedirect\");\r\n } else {\r\n this.cleanupLocalStorageAndResetManager(ids);\r\n }\r\n }.bind(this),\r\n onFailure\r\n );\r\n }.bind(this)\r\n );\r\n };\r\n\r\n LocalChangesResolver.checkAndRecoverAll = function (allLocalStorageKeys, startRecoveryPromise) {\r\n var needToRecover = false;\r\n var allAssetData = this.getOnlyAssets(allLocalStorageKeys),\r\n hasRecoveredData = function (value) {\r\n return !!value;\r\n };\r\n\r\n return this.recoverAllAssets(allAssetData.ids.hasNested, allAssetData.dtos, startRecoveryPromise).then(\r\n function (data) {\r\n recoveryLogger.step(\"recover\", \"App load recovery check - nested\");\r\n var recoveredItems = data || { resolved: [], submittedAssets: [] };\r\n // check if any asset is ready for recovery\r\n if (data && data.resolved.length) {\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (data[i] != null) {\r\n needToRecover = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // check all assets without nested items\r\n allAssetData = this.getOnlyAssets(allLocalStorageKeys);\r\n return this.recoverAllAssets(allAssetData.ids.noNested, allAssetData.dtos, startRecoveryPromise).then(function (data) {\r\n recoveryLogger.step(\"recover\", \"App load recovery check - root\");\r\n if (data) {\r\n recoveredItems.resolved = recoveredItems.resolved.concat(data.resolved);\r\n recoveredItems.submittedAssets = recoveredItems.submittedAssets.concat(data.submittedAssets);\r\n }\r\n\r\n if (!needToRecover && data !== null && data.resolved.some(hasRecoveredData)) {\r\n needToRecover = true;\r\n }\r\n\r\n if (needToRecover === false) {\r\n startRecoveryPromise.reject();\r\n }\r\n\r\n return recoveredItems;\r\n });\r\n }.bind(this)\r\n );\r\n };\r\n\r\n LocalChangesResolver.checkRevision = function (revisionData, localDto, checkForSave) {\r\n var latestSavedRevision = (revisionData[0] || revisionData)[\"Value\"];\r\n return checkForSave ? !(localDto.Revision > latestSavedRevision) : latestSavedRevision >= localDto.Revision;\r\n };\r\n\r\n LocalChangesResolver.getAssetIcon = function (item) {\r\n return (item.PageIcon || item.SubType || item.TemplateSubType || item.MainType || \"\").toLowerCase();\r\n };\r\n\r\n LocalChangesResolver.getAssetGlobalType = function (item) {\r\n return resourceTypes.indexOf(item.MainType) > -1 ? \"resource\" : \"asset\";\r\n };\r\n\r\n LocalChangesResolver.itemIsDeprecated = function (item) {\r\n return item.Revision === undefined || item.Revision === null || isNaN(item.Revision);\r\n };\r\n\r\n LocalChangesResolver.itemHasOldTable = function (item, checkTableLegacy) {\r\n var sections = item.Sections || item.Elements,\r\n section,\r\n sectionContent;\r\n\r\n if (checkTableLegacy && sections) {\r\n for (var i = 0, len = sections.length; i < len; i++) {\r\n section = sections[i];\r\n\r\n if (section) {\r\n section = section.Sections || section;\r\n sectionContent = section.length > 0 ? (sectionContent = section[0]) : section;\r\n var result = this.elementIsOldTable(sectionContent);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n LocalChangesResolver.elementIsOldTable = function (element) {\r\n var sectionType = element.SectionType || element.ElementType || \"\";\r\n sectionType = /table/i.test(sectionType);\r\n return sectionType && element.TableType === void 0;\r\n };\r\n\r\n LocalChangesResolver.checkDates = function (localDto) {\r\n return new Date(localDto.LastModified) > new Date(localDto.Created);\r\n };\r\n\r\n LocalChangesResolver.notifyUser = function (isSaving, isResource, type, recoveryPromise, responseData, onClose) {\r\n var imgLocation = baseUrlsFactory.shared_component_base_url + \"localChanges/images/\";\r\n\r\n //Add values to modal scope;\r\n var modalScope = $rootScope.$new(true);\r\n modalScope.text = isResource ? \"workbook.revision_modals.recovered_resource\" : \"workbook.revision_modals.recovered_asset\";\r\n modalScope.subHeading = isSaving ? multiLanguageService.getString(modalScope.text + \".save_subHeading\") : multiLanguageService.getString(modalScope.text + \".load_subHeading\");\r\n modalScope.confirm = multiLanguageService.getString(\"workbook.revision_modals.confirm_recovered_asset\");\r\n modalScope.img = $sce.getTrustedResourceUrl(imgLocation + (isResource ? \"recovered-resource.jpg\" : \"recovered-asset.jpg\"));\r\n modalScope.hint = multiLanguageService.getString(\"workbook.revision_modals.hint\");\r\n modalScope.iconType = type ? type.toLowerCase() : null;\r\n modalScope.submittedAssets = responseData;\r\n modalScope.showMultiStaged = false;\r\n\r\n if (recoveryPromise) {\r\n modalScope.onLoadingHeading = multiLanguageService.getString(\"workbook.revision_modals.recovered_all.on_loading_heading\");\r\n modalScope.subHeading = multiLanguageService.getString(\"workbook.revision_modals.recovered_all.sub_heading\");\r\n modalScope.text = multiLanguageService.getString(\"workbook.revision_modals.recovered_all\");\r\n recoveryPromise.then(function (data) {\r\n modalScope.submittedAssets = data ? data.submittedAssets : null;\r\n modalScope.dateReady = $timeout(function () {\r\n modalScope.showMultiStaged = true;\r\n modalScope.showFinalMessage = true;\r\n }, 500);\r\n });\r\n } else {\r\n modalScope.showFinalMessage = true;\r\n }\r\n\r\n return this.launchRecoveryModal(modalScope, isSaving, onClose);\r\n };\r\n\r\n LocalChangesResolver.notifyUserOfLockedAssetRecovery = function (type, isSaving) {\r\n //Add values to scope;\r\n var modalScope = $rootScope.$new(true);\r\n modalScope.multiLanguageService = multiLanguageService;\r\n modalScope.subHeading = multiLanguageService.getString(\"workbook.locked_recovery.subHeading\");\r\n modalScope.confirm = multiLanguageService.getString(\"workbook.revision_modals.confirm_recovered_asset\");\r\n modalScope.img = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"localChanges/images/recovered-asset.jpg\");\r\n modalScope.hint = multiLanguageService.getString(\"workbook.revision_modals.hint\");\r\n modalScope.iconType = type ? type.toLowerCase() : null;\r\n modalScope.submittedAssets = null;\r\n modalScope.showMultiStaged = false;\r\n modalScope.showFinalMessage = true;\r\n\r\n return this.launchRecoveryModal(modalScope, isSaving);\r\n };\r\n\r\n LocalChangesResolver.launchRecoveryModal = function (modalScope, isSaving, onClose) {\r\n overlayFactory.saveOverlay.hide();\r\n var deferred = $q.defer();\r\n\r\n modalScope.onClose = function () {\r\n deferred.resolve();\r\n if (onClose) {\r\n onClose();\r\n }\r\n\r\n if (isSaving) {\r\n overlayFactory.saveOverlay.show();\r\n }\r\n\r\n modalScope.$destroy();\r\n };\r\n\r\n modal.newModal({\r\n scope: modalScope,\r\n disableClose: true,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"localChanges/templates/local-changes-export.lazy.html\"\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n return LocalChangesResolver;\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { dataEncryptionService } from \"../utilities/dataEncryptionService\";\r\n\r\nclass PersistentObjectStore {\r\n constructor($window) {\r\n this._$window = $window;\r\n /** @type {Map} */\r\n this._memoryStore = new Map();\r\n }\r\n\r\n /**\r\n * @param {string} key\r\n * @param {{}} data\r\n * @param {string} encryptionPassphrase\r\n */\r\n store(key, data, encryptionPassphrase) {\r\n this._memoryStore.set(key, data);\r\n const encryptedData = dataEncryptionService.AES.encrypt(JSON.stringify(data), encryptionPassphrase);\r\n try {\r\n this._$window.localStorage.setItem(key, encryptedData);\r\n } catch (error) {\r\n console.error(error.message);\r\n }\r\n }\r\n\r\n /**\r\n * @param {string} key\r\n * @return {boolean}\r\n */\r\n has(key) {\r\n return this._memoryStore.has(key) || this._$window.localStorage.hasOwnProperty(key);\r\n }\r\n\r\n /**\r\n * @returns {Array}\r\n */\r\n keys() {\r\n const keys = new Set([...Object.keys(this._$window.localStorage), ...this._memoryStore.keys()]);\r\n return Array.from(keys);\r\n }\r\n\r\n clear() {\r\n this._memoryStore.clear();\r\n this._$window.localStorage.clear();\r\n }\r\n\r\n /**\r\n * @param {string} key\r\n * @param {string} encryptionPassphrase\r\n * @returns {null|{}}\r\n */\r\n retrieve(key, encryptionPassphrase) {\r\n const data = this._memoryStore.get(key);\r\n if (data !== undefined) {\r\n return this._normaliseMemoryReference(data);\r\n }\r\n\r\n const encryptedData = this._$window.localStorage.getItem(key);\r\n\r\n if (encryptedData !== null) {\r\n try {\r\n const result = dataEncryptionService.AES.decrypt(encryptedData, encryptionPassphrase);\r\n const dataAsString = result.toString(dataEncryptionService.enc.Utf8);\r\n return JSON.parse(dataAsString);\r\n } catch (error) {\r\n // Swallowing error silently as legacy uses of previous code try and retrieve all local storage keys\r\n // including keys which don't have json so they outputting this to console will cause alot of noise\r\n return null;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * @param {string} key\r\n */\r\n remove(key) {\r\n this._memoryStore.delete(key);\r\n this._$window.localStorage.removeItem(key);\r\n }\r\n\r\n /**\r\n * @param {{}} data\r\n * @returns {{}}\r\n * @private\r\n */\r\n _normaliseMemoryReference(data) {\r\n // Normalize memory reference so that it'll match local storage value\r\n // eg, Dates will be iso strings etc\r\n return JSON.parse(JSON.stringify(data));\r\n }\r\n}\r\n\r\nPersistentObjectStore.$inject = [\"$window\"];\r\n\r\nangularAMD.service(\"persistentObjectStore\", PersistentObjectStore);\r\n\r\nexport { PersistentObjectStore as persistentObjectStore };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\n\r\nexport class MapToStandardsService {\r\n constructor(multiLanguageService) {\r\n this.multiLanguageService = multiLanguageService;\r\n }\r\n\r\n createAllElementsArray(elements) {\r\n const elementsArray = [];\r\n for (let i = 0; i < elements.length; i++) {\r\n if (elements[i].Groups.length > 0) {\r\n elementsArray.push(...this.createAllElementsArray(elements[i].Groups));\r\n } else if (elements[i].Standards.length > 0) {\r\n elementsArray.push(...elements[i].Standards);\r\n }\r\n }\r\n\r\n return elementsArray;\r\n }\r\n\r\n getOrderedMatchedStandards(allElements, matchedStandards) {\r\n const orderedMatchedStandards = [];\r\n for (let i = 0; i < allElements.length; i++) {\r\n for (let y = 0; y < matchedStandards.length; y++) {\r\n if (matchedStandards[y].standard === allElements[i]) {\r\n orderedMatchedStandards.push(matchedStandards[y]);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return orderedMatchedStandards;\r\n }\r\n\r\n getMatchedStandards(selectedStandards, standards, checkedValue) {\r\n this.checkedValue = checkedValue;\r\n const matchedStandardsArray = [];\r\n selectedStandards.forEach((selectedStandard) => {\r\n this._processSelectedStandard(selectedStandard, standards, matchedStandardsArray);\r\n });\r\n\r\n return matchedStandardsArray;\r\n }\r\n\r\n updateMatchedStandards(selectedStandard, standards, matchedStandardsArray, checkedValue) {\r\n this.checkedValue = checkedValue;\r\n this._processSelectedStandard(selectedStandard, standards, matchedStandardsArray);\r\n return matchedStandardsArray;\r\n }\r\n\r\n getSelectedCapabilities(group, assetRefId = null, assetId = null) {\r\n let selectedStandards = [];\r\n if (assetRefId !== null) {\r\n if (group.Groups !== undefined && group.Groups.length > 0) {\r\n group.Groups.forEach((item) => {\r\n selectedStandards.push(...this.getSelectedCapabilities(item, assetRefId, assetId));\r\n });\r\n }\r\n\r\n if (group.Standards !== undefined && group.Standards.length > 0) {\r\n const newStandards = group.Standards.reduce((standards, item) => {\r\n if (item.IsMapped) {\r\n standards.push({\r\n AssetRefId: assetRefId,\r\n ElementId: item.ElementId,\r\n FormElementId: item.ElementId,\r\n PageFormId: group.PageFormId || assetRefId,\r\n PageId: group.PageId || assetId,\r\n Justification: item.Justification\r\n });\r\n }\r\n\r\n return standards;\r\n }, []);\r\n selectedStandards.push(...newStandards);\r\n }\r\n } else {\r\n group.forEach((item) => {\r\n selectedStandards.push(...this.getSelectedCapabilities(item, item.AssetRefId, item.AssetId));\r\n });\r\n }\r\n\r\n return selectedStandards;\r\n }\r\n\r\n _processSelectedStandard(selectedStandard, standards, matchedStandardsArray) {\r\n const standardsLength = standards.length;\r\n for (let i = 0; i < standardsLength; i++) {\r\n if (standards[i].AssetRefId === undefined && standards[i].PageFormId !== selectedStandard.PageFormId) {\r\n continue;\r\n } else if (standards[i].AssetRefId !== undefined && standards[i].AssetRefId !== selectedStandard.AssetRefId) {\r\n continue;\r\n }\r\n if (standards[i].MainType === \"Form\" && standards[i].AssetRefId === selectedStandard.PageFormId) {\r\n const matchFoundInElement = this._matchFoundInElements(selectedStandard, standards[i].Groups[0].Standards, matchedStandardsArray);\r\n if (matchFoundInElement) {\r\n this._changeSelectedCount(standards[i]);\r\n }\r\n } else if (standards[i].Groups.length > 0) {\r\n const matchFoundInGroup = this._matchFoundInGroups(selectedStandard, standards[i].Groups, matchedStandardsArray);\r\n if (matchFoundInGroup) {\r\n this._changeSelectedCount(standards[i]);\r\n }\r\n } else if (standards[i].Standards.length > 0) {\r\n const matchFoundInElement = this._matchFoundInElements(selectedStandard, standards[i].Standards, matchedStandardsArray);\r\n if (standards[i].PageId === selectedStandard.PageId && matchFoundInElement) {\r\n this._changeSelectedCount(standards[i]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n _matchFoundInGroups(selectedStandard, groups, matchedStandardsArray) {\r\n const groupsLength = groups.length;\r\n let matchFound = false;\r\n\r\n for (let groupIndex = 0; groupIndex < groupsLength; groupIndex++) {\r\n if (groups[groupIndex].Groups.length > 0) {\r\n const matchFoundInGroup = this._matchFoundInGroups(selectedStandard, groups[groupIndex].Groups, matchedStandardsArray);\r\n if (matchFoundInGroup) {\r\n matchFound = true;\r\n this._changeSelectedCount(groups[groupIndex]);\r\n }\r\n }\r\n\r\n if (groups[groupIndex].Standards !== undefined && groups[groupIndex].Standards.length > 0 && groups[groupIndex].PageId === selectedStandard.PageId) {\r\n const matchFoundInElements = this._matchFoundInElements(selectedStandard, groups[groupIndex].Standards, matchedStandardsArray);\r\n if (matchFoundInElements) {\r\n matchFound = true;\r\n this._changeSelectedCount(groups[groupIndex]);\r\n }\r\n }\r\n }\r\n\r\n return matchFound;\r\n }\r\n\r\n _matchFoundInElements(selectedStandard, elements, matchedStandardsArray) {\r\n const elementsLength = elements.length;\r\n let matchFound = false;\r\n\r\n for (let elementIndex = 0; elementIndex < elementsLength; elementIndex++) {\r\n if (selectedStandard.ElementId === elements[elementIndex].ElementId) {\r\n const mapToStandardModel = {\r\n selectedStandard: selectedStandard,\r\n standard: elements[elementIndex]\r\n };\r\n\r\n if (this.checkedValue) {\r\n matchedStandardsArray.push(mapToStandardModel);\r\n } else {\r\n for (let i = 0; i < matchedStandardsArray.length; i++) {\r\n if (\r\n mapToStandardModel.selectedStandard.ElementId === matchedStandardsArray[i].selectedStandard.ElementId &&\r\n mapToStandardModel.selectedStandard.PageId === matchedStandardsArray[i].selectedStandard.PageId\r\n ) {\r\n matchedStandardsArray.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n elements[elementIndex].Checked = this.checkedValue;\r\n matchFound = true;\r\n }\r\n }\r\n return matchFound;\r\n }\r\n\r\n _changeSelectedCount(panel) {\r\n const incrementAmount = this.checkedValue === true ? 1 : -1;\r\n\r\n if (panel.StandardsSelected === undefined) {\r\n panel.StandardsSelected = 1;\r\n } else {\r\n panel.StandardsSelected = panel.StandardsSelected + incrementAmount;\r\n }\r\n }\r\n\r\n resetCount(panel) {\r\n for (let group of panel) {\r\n if (group.StandardsSelected) {\r\n group.StandardsSelected = 0;\r\n\r\n if (group.Standards.length > 0) {\r\n for (let standard of group.Standards) {\r\n standard.Checked = false;\r\n }\r\n }\r\n }\r\n\r\n if (group.Groups !== undefined) {\r\n this.resetCount(group.Groups);\r\n }\r\n }\r\n\r\n return panel;\r\n }\r\n}\r\n\r\nangularAMD.service(\"mapToStandardsService\", MapToStandardsService);\r\nMapToStandardsService.$inject = [\"multiLanguageService\"];\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { warningNotice } from \"@pjs/core-ui\";\r\nimport { STATUS_PERMISSIONS_CONSTANTS } from \"../../constants/statusPermissions.constants\";\r\nimport { MAP_TO_STANDARDS_CONSTANTS } from \"../../constants/mapToStandards.constants\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport \"../../formComponents/StandardsSelection/StandardsSelectionSidebar/standardsSelectionSidebar\";\r\nimport \"../../persistentCompactRichTextEditor/peristentCompactRichTextEditor.component\";\r\nimport \"../../standardsNavigationalButtons/standardsNavigationalButtons.component\";\r\nimport \"./standardsRatingSlider/standardsRatingSlider.component\";\r\nimport \"./standardsRatingInfo/standardsRatingInfo.component\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../workbook/service/standards.service\";\r\nimport \"../../tabSet/tabSet.component\";\r\nimport \"../mapToStandards.service\";\r\nimport \"../../formComponents/StandardsElement/standardsInformation.service\";\r\nimport \"../../assetEndpointService/assetEndpoint.service\";\r\nimport \"../../user/user.service\";\r\nimport \"../../tagger/services/tagService\";\r\nimport \"../../react2angular/checkbox\";\r\nimport \"../../react2angular/htmlNotice\";\r\nimport \"../../loadingSpinner/loadingSpinner\";\r\nimport template from \"./map-to-standards-wrapper.html\";\r\n\r\nclass MapToStandardsWrapper extends NgComponent {\r\n constructor($rootScope, $timeout, $location, $scope, multiLanguageService, standardsService, mapToStandardsService, standardsInformation, AssetEndpointService, tagService, User) {\r\n super();\r\n\r\n this.MAP_TO_STANDARDS_CONSTANTS = MAP_TO_STANDARDS_CONSTANTS;\r\n this.$timeout = $timeout;\r\n this.$rootScope = $rootScope;\r\n this.$location = $location;\r\n this.$scope = $scope;\r\n this.multiLanguageService = multiLanguageService;\r\n this.standardsService = standardsService;\r\n this.mapToStandardsService = mapToStandardsService;\r\n this.standardsInformation = standardsInformation;\r\n this.assetEndpointService = AssetEndpointService;\r\n this._tagService = tagService;\r\n this._userService = User;\r\n this._neededKeyNames = [\"PageId\", \"PageFormId\"];\r\n this.isStandardsSaving = false;\r\n this.hasStandards = true;\r\n this.allElementsArray = [];\r\n this.matchedStandards = [];\r\n this.savingError = null;\r\n\r\n this.courseTags = [];\r\n this.showTagError = false;\r\n this.showTagLoading = true;\r\n this.showCourseTagsSelection = false;\r\n\r\n this.mappingId = \"map-to-standards-wrapper__intro-text\";\r\n this.thumbDimensions = {\r\n thumbHeight: MAP_TO_STANDARDS_CONSTANTS.RATING_SLIDER.DEFAULT_VALUES.THUMB_HEIGHT,\r\n thumbWidth: MAP_TO_STANDARDS_CONSTANTS.RATING_SLIDER.DEFAULT_VALUES.THUMB_WIDTH\r\n };\r\n this._originalSelectedStandards = [];\r\n\r\n this.onReflectionChange = this._updateReflection.bind(this);\r\n this.richTextAutoFocus = true;\r\n this.richTextClassName = \"standards-justification__textbox\";\r\n this.richTextEditorDatahook = \"justification-textbox\";\r\n\r\n const labelType = this.multiLanguageService.getString(\"accessibility.notice.type.mapping\");\r\n\r\n this.errorNotification = {\r\n message: this.multiLanguageService.getString(\"accessibility.spa_menu.map_to_standards_course_tags.course_error\"),\r\n type: warningNotice,\r\n label: this.multiLanguageService.getString(\"accessibility.notice.labels.warning\", { type: labelType })\r\n };\r\n\r\n const reApprovalLabelType = this.multiLanguageService.getString(\"accessibility.notice.type.asset_re_approval\");\r\n\r\n this.reApprovalNotification = {\r\n message: multiLanguageService.getString(\"accessibility.spa_menu.map_to_standards_re_approval_msg\"),\r\n type: warningNotice,\r\n label: this.multiLanguageService.getString(\"accessibility.notice.labels.warning\", { type: reApprovalLabelType })\r\n };\r\n\r\n this.editorLabel = this.multiLanguageService.getString(\"sidebar.standards_selection.justification_editor\");\r\n\r\n this.selectTab = {\r\n active: true,\r\n id: \"select\",\r\n canView: true,\r\n buttons: [\r\n {\r\n title: this.multiLanguageService.getString(\"buttons.cancel\"),\r\n class: \"mix-button-outlined\",\r\n dataHook: \"mapping-standards-cancel\",\r\n ariaLabel: this.multiLanguageService.getString(\"accessibility.spa_menu.map_to_standards_nav_buttons.select.cancel\"),\r\n action: () => {\r\n tracker.trackEvent(\"EWC\", \"Cancel mapping for standards\");\r\n this.$location.url(this.url);\r\n }\r\n },\r\n {\r\n title: this.multiLanguageService.getString(\"buttons.next\"),\r\n dataHook: \"mapping-standards-select-next\",\r\n ariaLabel: this.multiLanguageService.getString(\"accessibility.spa_menu.map_to_standards_nav_buttons.select.next\"),\r\n class: \"mix-button-contained\",\r\n action: () => {\r\n this.sortElements();\r\n this.changeDirection(1);\r\n }\r\n }\r\n ]\r\n };\r\n\r\n this.initialFocusedTab = \"\";\r\n\r\n this.assessTab = {\r\n active: false,\r\n id: \"assess\",\r\n canView: true,\r\n buttons: [\r\n {\r\n title: this.multiLanguageService.getString(\"buttons.back\"),\r\n class: \"mix-button-outlined\",\r\n dataHook: \"mapping-standards-assess-back\",\r\n ariaLabel: this.multiLanguageService.getString(\"accessibility.spa_menu.map_to_standards_nav_buttons.assess.back\"),\r\n action: () => this.changeDirection(-1)\r\n },\r\n {\r\n title: this.multiLanguageService.getString(\"buttons.next\"),\r\n dataHook: \"mapping-standards-assess-next\",\r\n class: \"mix-button-contained\",\r\n ariaLabel: this.multiLanguageService.getString(\"accessibility.spa_menu.map_to_standards_nav_buttons.assess.next\"),\r\n action: () => this.changeDirection(1)\r\n }\r\n ]\r\n };\r\n\r\n this.justifyTab = {\r\n active: false,\r\n id: \"justify\",\r\n canView: true,\r\n buttons: [\r\n {\r\n title: this.multiLanguageService.getString(\"buttons.back\"),\r\n class: \"mix-button-outlined\",\r\n dataHook: \"mapping-standards-justify-back\",\r\n ariaLabel: this.multiLanguageService.getString(\"accessibility.spa_menu.map_to_standards_nav_buttons.justify.back\"),\r\n action: () => this.changeDirection(-1)\r\n },\r\n {\r\n title: this.multiLanguageService.getString(\"buttons.save\"),\r\n class: \"mix-button-contained\",\r\n action: this.saveStandards.bind(this),\r\n dataHook: \"mapping-standards-save\",\r\n ariaLabel: this.multiLanguageService.getString(\"accessibility.spa_menu.map_to_standards_nav_buttons.justify.save\"),\r\n isActionBtn: true\r\n }\r\n ]\r\n };\r\n\r\n this.tabs = [this.selectTab, this.assessTab, this.justifyTab];\r\n this._setFocusTab();\r\n }\r\n\r\n $onInit() {\r\n if (!Array.isArray(this.standardsData) || this.standardsData.length < 1) {\r\n this._getAllStandards()\r\n .then(() => {\r\n if (this.standardsData.length === 0) {\r\n this.hasStandards = false;\r\n this._preventMapping();\r\n }\r\n\r\n this._getStandardsForAsset();\r\n this.allElementsArray = this.mapToStandardsService.createAllElementsArray(this.standardsData);\r\n })\r\n .catch((error) => {\r\n this.hasStandards = false;\r\n });\r\n } else {\r\n this._updateStandardsCount();\r\n this.allElementsArray = this.mapToStandardsService.createAllElementsArray(this.standardsData);\r\n this.matchedStandards = this.mapToStandardsService.getMatchedStandards(this.selectedStandards, this.standardsData, true);\r\n }\r\n\r\n this.ratingSliderCallbackFunction = (id, value) => {\r\n this.matchedStandards.forEach((val) => {\r\n if (val.standard.uniqueId === id) {\r\n val.selectedStandard.Rating = value;\r\n }\r\n });\r\n };\r\n\r\n this.assetEndpointService.getCreatorPermission(STATUS_PERMISSIONS_CONSTANTS.CAN_SELF_ASSESS, this.assetId).then((response) => {\r\n this.assessTab.canView = response.data;\r\n if (!this.assessTab.canView) {\r\n const assessTabIndex = this.tabs.findIndex((item) => item.id === this.assessTab.id);\r\n if (assessTabIndex > -1) {\r\n this.tabs.splice(assessTabIndex, 1);\r\n }\r\n }\r\n });\r\n\r\n const workbookId = this.mainAssetId === undefined ? this.workbookId : this.mainAssetId;\r\n this._tagService\r\n .getCourseTags(workbookId, this.assetId)\r\n .then((response) => {\r\n this.courseTags = response.data.map((tag) => {\r\n const tagModel = { label: tag.Label, isChecked: tag.IsChecked, onChange: null };\r\n tagModel.onChange = (isChecked) => {\r\n this.onTagSelect(tagModel, isChecked);\r\n };\r\n return tagModel;\r\n });\r\n\r\n this.showCourseTagsSelection = this.courseTags.length !== 0;\r\n })\r\n .catch(() => {\r\n this.showTagError = true;\r\n })\r\n .finally(() => {\r\n this.showTagLoading = false;\r\n });\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.focus !== undefined) {\r\n this._setFocusTab();\r\n }\r\n }\r\n\r\n $onDestroy() {\r\n this.standardsInformation.removeStorageStandardsData(this.assetId);\r\n this.standardsInformation.removeNavigationalUrl(this.assetId);\r\n }\r\n\r\n _setFocusTab() {\r\n if (!this.focus) {\r\n this.initialFocusedTab = \"\";\r\n return;\r\n }\r\n const activeTab = this.tabs.find((tab) => tab.active)?.id;\r\n this.initialFocusedTab = activeTab ?? \"\";\r\n }\r\n\r\n _updateReflection(content) {\r\n this.reflection = content;\r\n }\r\n\r\n _preventMapping() {\r\n this.selectTab.buttons = this.selectTab.buttons.filter((button) => button.dataHook !== \"mapping-standards-select-next\");\r\n this.justifyTab.canView = false;\r\n }\r\n\r\n onReflectionUpdate() {\r\n this.onUpdate({\r\n id: this.assetId,\r\n updateInProgress: true\r\n });\r\n }\r\n\r\n _updateStandardsCount() {\r\n for (let i = 0; i < this.standardsData.length; i++) {\r\n if (this.standardsData[i].StandardsSelected) {\r\n this.standardsData = this.mapToStandardsService.resetCount(this.standardsData);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n _getStandardsForAsset() {\r\n this.standardsService\r\n .getStandardsForAsset(this.assetId)\r\n .then((data) => {\r\n this.selectedStandards = data.Standards;\r\n this._originalSelectedStandards = [...data.Standards];\r\n this.reflection = data.Reflection;\r\n this.matchedStandards = this.mapToStandardsService.getMatchedStandards(this.selectedStandards, this.standardsData, true);\r\n this.preventMappingChanges = data.PreventMappingChanges;\r\n })\r\n .catch(() => {\r\n this.selectedStandards = [];\r\n this._originalSelectedStandards = [];\r\n });\r\n }\r\n\r\n _getAllStandards() {\r\n return this.standardsService\r\n .getAllStandardsWorkbooksForOrg(this.assetId)\r\n .then((data) => {\r\n this.standardsData = data;\r\n this.isFormResponse = false;\r\n })\r\n .catch(() => {\r\n this.standardsData = [];\r\n });\r\n }\r\n\r\n onStandardsSelect(data, value) {\r\n this.matchedStandards = this.mapToStandardsService.updateMatchedStandards(data[0], this.standardsData, this.matchedStandards, value);\r\n\r\n if (value === true) {\r\n this.selectedStandards.push(data[0]);\r\n const selectedStandard = this.matchedStandards.find((x) => data[0].ElementId === x.standard.ElementId);\r\n\r\n if (selectedStandard !== undefined) {\r\n tracker.trackEvent(\"EWC\", \"Select element for mapping\", selectedStandard.standard.Title);\r\n }\r\n } else {\r\n tracker.trackEvent(\"EWC\", \"Deselect element for mapping\");\r\n\r\n this.selectedStandards = this.selectedStandards.filter((obj) => {\r\n return data[0].AssetRefId !== obj.AssetRefId || data[0].PageId !== obj.PageId ? true : data[0].FormElementId !== obj.FormElementId;\r\n });\r\n }\r\n\r\n this.onUpdate({\r\n id: this.assetId,\r\n updateInProgress: true\r\n });\r\n }\r\n\r\n sortElements() {\r\n this.matchedStandards = this.mapToStandardsService.getOrderedMatchedStandards(this.allElementsArray, this.matchedStandards);\r\n }\r\n\r\n _recoverRatingValue(currentValue, matchedStandards) {\r\n for (let standard of matchedStandards) {\r\n if (standard.selectedStandard.ElementId === currentValue.ElementId) {\r\n currentValue.Rating = standard.selectedStandard.Rating !== undefined ? standard.selectedStandard.Rating : 0;\r\n return currentValue.Rating;\r\n }\r\n }\r\n }\r\n\r\n _getSelectedStandardsList(standardsPanels) {\r\n return standardsPanels.reduce((accumulator, currentValue) => {\r\n if (currentValue.Standards === undefined && currentValue.Groups === undefined) {\r\n if (currentValue.Checked === true) {\r\n accumulator.push({\r\n FormElementId: currentValue.ElementId,\r\n ElementId: currentValue.ElementId,\r\n PageId: null,\r\n PageFormId: null,\r\n WorkBookId: null,\r\n Tags: this.courseTags.filter((t) => t.isChecked).map((t) => t.label),\r\n Rating: currentValue.Rating !== undefined ? currentValue.Rating : this._recoverRatingValue(currentValue, this.matchedStandards)\r\n });\r\n }\r\n }\r\n\r\n if (currentValue.Standards !== undefined && currentValue.Standards.length > 0) {\r\n accumulator = accumulator.concat(this._getSelectedStandardsList(currentValue.Standards));\r\n }\r\n\r\n if (currentValue.Groups !== undefined && currentValue.Groups.length > 0) {\r\n accumulator = accumulator.concat(this._getSelectedStandardsList(currentValue.Groups));\r\n }\r\n\r\n this._neededKeyNames.forEach((name) => {\r\n if (currentValue.hasOwnProperty(name)) {\r\n accumulator.forEach((standard) => {\r\n if (standard[name] === null) {\r\n standard[name] = currentValue[name];\r\n }\r\n\r\n if (standard.WorkBookId === null || standard.WorkBookId === \"\") {\r\n standard.WorkBookId = this.workbookId !== \"\" ? this.workbookId : this._getStandardWorkbookId(standard);\r\n }\r\n });\r\n }\r\n });\r\n return accumulator;\r\n }, []);\r\n }\r\n\r\n onTagSelect(tag, isChecked) {\r\n tag.isChecked = isChecked;\r\n\r\n this.onUpdate({\r\n id: this.assetId,\r\n updateInProgress: true\r\n });\r\n\r\n this.$scope.$applyAsync();\r\n }\r\n\r\n _getStandardWorkbookId(standard) {\r\n for (const group of this.standardsData) {\r\n const found = group.Groups.find((element) => element.PageId === standard.PageId);\r\n if (found !== undefined) {\r\n return group.AssetRefId;\r\n }\r\n }\r\n }\r\n\r\n saveStandards() {\r\n this.justifyTab.buttons[1].title = this.multiLanguageService.getString(\"loading_spinner.saving\");\r\n this.isStandardsSaving = true;\r\n this.savingError = null;\r\n\r\n const newStandards = {\r\n AssetId: this.assetId,\r\n Standards: this._getSelectedStandardsList(this.standardsData),\r\n WorkbookIds: this.standardsData.map((standard) => {\r\n return standard.AssetRefId;\r\n })\r\n };\r\n\r\n if (newStandards.WorkbookIds[0] === undefined) {\r\n newStandards.WorkbookIds = [this.workbookId];\r\n }\r\n\r\n if (this.reflection && this.reflection !== \"\") {\r\n newStandards.Reflection = this.reflection;\r\n }\r\n\r\n this.standardsService\r\n .setStandards(newStandards)\r\n .then((outcome) => {\r\n if (outcome.data === true) {\r\n this.justifyTab.buttons[1].title = this.multiLanguageService.getString(\"buttons.saved\");\r\n this.isStandardsSaving = false;\r\n\r\n this.$timeout(() => {\r\n this.onUpdate({\r\n id: this.assetId,\r\n updateInProgress: false\r\n });\r\n this.$location.url(this.url);\r\n }, 1000);\r\n\r\n this.$rootScope.$broadcast(\"updateStandardsElement\", this._getSelectedStandardsList(this.standardsData), newStandards.WorkbookIds);\r\n tracker.trackEvent(\"EWC\", \"Save mapping for standards\");\r\n } else {\r\n this.justifyTab.buttons[1].title = this.multiLanguageService.getString(\"buttons.save\");\r\n this.savingError = this.multiLanguageService.getString(\"sidebar.standards_selection.error_saving\");\r\n this.isStandardsSaving = false;\r\n }\r\n })\r\n .catch(() => {\r\n this.justifyTab.buttons[1].title = this.multiLanguageService.getString(\"buttons.save\");\r\n this.savingError = this.multiLanguageService.getString(\"sidebar.standards_selection.error_saving\");\r\n this.isStandardsSaving = false;\r\n });\r\n }\r\n\r\n changeDirection(direction) {\r\n this.savingError = null;\r\n for (let i = 0; i < this.tabs.length; i++) {\r\n if (this.tabs[i].active) {\r\n if (this.tabs[i + direction] !== undefined) {\r\n this.tabs[i + direction].active = true;\r\n }\r\n return;\r\n }\r\n }\r\n }\r\n\r\n setActiveTab(activeTab) {\r\n for (let i = 0; i < this.tabs.length; i++) {\r\n this.tabs[i].active = activeTab.id === this.tabs[i].id;\r\n }\r\n }\r\n}\r\n\r\nexport const mapToStandardsWrapper = {\r\n template: template,\r\n controller: MapToStandardsWrapper,\r\n bindings: {\r\n selectedStandards: \"<\",\r\n standardsData: \"<\",\r\n reflection: \"<\",\r\n assetId: \"<\",\r\n workbookId: \"<\",\r\n mainAssetId: \"

{{::$ctrl.multiLanguageService.getString('accessibility.spa_menu.map_to_standards_course_tags.course_title')}}

{{::$ctrl.multiLanguageService.getString('accessibility.spa_menu.map_to_standards_course_tags.course_intro')}}

{{ ::$ctrl.multiLanguageService.getString('accessibility.spa_menu.map_to_standards_intro_texts.select') }}

{{ ::$ctrl.multiLanguageService.getString('accessibility.spa_menu.map_to_standards_intro_texts.assess.header_text') }}

{{ ::$ctrl.multiLanguageService.getString('accessibility.spa_menu.map_to_standards_intro_texts.assess.sub_text') }}

{{::$ctrl.multiLanguageService.getString('sidebar.standards_selection.no_selected_standards')}}

{{ ::$ctrl.multiLanguageService.getString('accessibility.spa_menu.map_to_standards_intro_texts.justify') }}

{{$ctrl.savingError}}

`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./standards-rating-info.html\";\r\nimport \"../../../formComponents/ElementInfoButton/elementInfoButton\";\r\n\r\nclass StandardsRatingInfo extends NgComponent {\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\nexport const standardsRatingInfo = {\r\n template: template,\r\n controller: StandardsRatingInfo,\r\n bindings: {\r\n standard: \"<\",\r\n showText: \"

{{ ::$ctrl.standard.Title }}

{{ ::$ctrl.standard.Breadcrumb }}
{{ ::$ctrl.text }}
`;","import { RangeSlider } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"rangeSlider\", react2angular(RangeSlider, [\"progressColour\", \"ticks\", \"value\", \"thumbHeight\", \"thumbWidth\", \"step\", \"min\", \"max\", \"disabled\", \"onChange\"]));\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { MAP_TO_STANDARDS_CONSTANTS } from \"../../../constants/mapToStandards.constants\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./standards-rating-slider.html\";\r\nimport \"../../../builder/dataManager/helperService\";\r\nimport \"../../../react2angular/rangeSlider\";\r\n\r\nclass StandardsRatingSlider extends NgComponent {\r\n constructor($scope, helperService, multiLanguageService) {\r\n super();\r\n\r\n this.$scope = $scope;\r\n this.helperService = helperService;\r\n this.multiLanguageService = multiLanguageService;\r\n this.defaultRatingValue = MAP_TO_STANDARDS_CONSTANTS.RATING_SLIDER.DEFAULT_VALUES.RATING_VALUE;\r\n this.defaultProgressColour = MAP_TO_STANDARDS_CONSTANTS.RATING_SLIDER.DEFAULT_VALUES.PROGRESS_COLOUR;\r\n this.ratingValue = this._setRating(this.selectedStandard.Rating);\r\n this.ticks = this._setTicks(this.standard.Ticks);\r\n this._setProgressColour();\r\n this.onChange = this._updateRatingValue.bind(this);\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.selectedStandard !== undefined) {\r\n this.ratingValue = this._setRating(changes.selectedStandard.currentValue.Rating);\r\n }\r\n\r\n if (changes.standard !== undefined) {\r\n this.ticks = this._setTicks(changes.standard.currentValue.Ticks);\r\n }\r\n }\r\n\r\n _updateRatingValue(newValue) {\r\n this.updateRatingValues(this.standard.uniqueId, newValue);\r\n this.ratingValue = newValue;\r\n this.$scope.$applyAsync();\r\n }\r\n\r\n _setRating(rating) {\r\n return rating !== undefined && rating !== null ? rating : this.defaultRatingValue;\r\n }\r\n\r\n _setTicks(ticks) {\r\n return ticks !== undefined && ticks !== null ? ticks : this._generateTicks();\r\n }\r\n\r\n _setProgressColour() {\r\n if (this.progressColour === undefined || this.progressColour === null) {\r\n this.progressColour = this.defaultProgressColour;\r\n }\r\n }\r\n\r\n _generateTicks() {\r\n if (this.standard.RatingLabels === null || this.standard.RatingLabels === undefined) {\r\n return [];\r\n }\r\n\r\n return this.standard.RatingLabels.map((label) => {\r\n return {\r\n id: this.helperService.guid(),\r\n placement: label.Position,\r\n tooltip: label.Label.toUpperCase(),\r\n label: label.ShortLabel.toUpperCase()\r\n };\r\n });\r\n }\r\n}\r\n\r\nexport const standardsRatingSlider = {\r\n template: template,\r\n controller: StandardsRatingSlider,\r\n bindings: {\r\n selectedStandard: \"<\",\r\n standard: \"<\",\r\n disabled: \"<\",\r\n updateRatingValues: \"<\",\r\n progressColour: \"

{{::$ctrl.multiLanguageService.getString('plus_sidebar.a11y.assessment_level_count', {count: $ctrl.ratingValue})}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.service(\"assetMapper\", function () {\r\n this.collectionWrapper = {};\r\n this.collection = {\r\n advancedFiltersToCollection: function (filters, collectionDto) {\r\n collectionDto.Search.Keywords = filters.keywords.Filter ? filters.keywords.Filter.split(\" \") : null;\r\n collectionDto.Search.SubType = filters.assetTypes.OriginalType !== \"Category\" ? filters.assetTypes.Filter : null;\r\n\r\n if (filters.responsesTo.Filter !== null) {\r\n collectionDto.Search.FormId = filters.responsesTo.Filter.Id;\r\n collectionDto.Search.ResponsesTo = {\r\n Id: filters.responsesTo.Filter.Id,\r\n Title: filters.responsesTo.Filter.Title,\r\n Icon: filters.responsesTo.Filter.Icon,\r\n LastModified: filters.responsesTo.Filter.LastModified\r\n };\r\n } else {\r\n collectionDto.Search.FormId = null;\r\n collectionDto.Search.ResponsesTo = null;\r\n }\r\n\r\n collectionDto.Filter.Category = filters.assetTypes.Filter;\r\n collectionDto.Filter.Ownership = filters.ownership.Filter;\r\n collectionDto.Search.EnableSearchByDefault = filters.enableSearchByDefault.Filter;\r\n collectionDto.Search.Tags = filters.tags.Filter.slice(0);\r\n\r\n if (filters.dateFrom.Filter) {\r\n collectionDto.Search.CreatedAfter = {};\r\n collectionDto.Search.CreatedAfter.DateValue = filters.dateFrom.Filter;\r\n } else {\r\n collectionDto.Search.CreatedAfter = null;\r\n }\r\n\r\n if (filters.dateTo.Filter) {\r\n collectionDto.Search.CreatedBefore = {};\r\n collectionDto.Search.CreatedBefore.DateValue = filters.dateTo.Filter;\r\n } else {\r\n collectionDto.Search.CreatedBefore = null;\r\n }\r\n },\r\n collectionDtoToCriteria: function (collectionDto, criteria) {\r\n criteria.assetTypes = collectionDto.Search.SubType || collectionDto.Filter.Category;\r\n criteria.responsesTo = collectionDto.Search.ResponsesTo === undefined ? null : collectionDto.Search.ResponsesTo;\r\n criteria.ownership = collectionDto.Filter.Ownership;\r\n criteria.tags = collectionDto.Search.Tags.slice(0);\r\n criteria.dateFrom = collectionDto.Search.CreatedAfter ? collectionDto.Search.CreatedAfter.DateValue : null;\r\n criteria.dateTo = collectionDto.Search.CreatedBefore ? collectionDto.Search.CreatedBefore.DateValue : null;\r\n criteria.keywords = collectionDto.Search.Keywords ? collectionDto.Search.Keywords.join(\" \") : null;\r\n criteria.enableSearchByDefault = collectionDto.Search.EnableSearchByDefault ?? false;\r\n },\r\n\r\n collectionDtoToPage: function (collectionDto, page) {\r\n page.CollectionAssetType = collectionDto.Search.SubType || collectionDto.Filter.Category;\r\n page.CollectionResponsesTo =\r\n collectionDto.Search.ResponsesTo === null\r\n ? null\r\n : {\r\n Id: collectionDto.Search.ResponsesTo.Id,\r\n Title: collectionDto.Search.ResponsesTo.Title,\r\n Icon: collectionDto.Search.ResponsesTo.Icon,\r\n LastModified: collectionDto.Search.ResponsesTo.LastModified\r\n };\r\n page.CollectionTags = collectionDto.Search.Tags.slice(0);\r\n page.CollectionCreatedAfter = collectionDto.Search.CreatedAfter ? collectionDto.Search.CreatedAfter.DateValue : null;\r\n page.CollectionCreatedBefore = collectionDto.Search.CreatedBefore ? collectionDto.Search.CreatedBefore.DateValue : null;\r\n page.CollectionEnableSearchByDefault = collectionDto.Search.EnableSearchByDefault ?? false;\r\n },\r\n\r\n collectionPageToDto: function (page, collectionDto) {\r\n if (page.CollectionCategoryOrAssetType === \"Category\") {\r\n collectionDto.Filter.Category = page.CollectionAssetType;\r\n } else {\r\n collectionDto.Search.SubType = page.CollectionAssetType;\r\n }\r\n collectionDto.Search.ResponsesTo = page.CollectionResponsesTo;\r\n collectionDto.Search.Tags = page.CollectionTags.slice(0);\r\n collectionDto.Search.CreatedAfter = page.CollectionCreatedAfter ? { DateValue: new Date(page.CollectionCreatedAfter) } : null;\r\n collectionDto.Search.CreatedBefore = page.CollectionCreatedBefore ? { DateValue: new Date(page.CollectionCreatedBefore) } : null;\r\n collectionDto.Search.EnableSearchByDefault = page.CollectionEnableSearchByDefault;\r\n }\r\n };\r\n});\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../services/mediaAssetService\";\r\nimport template from \"../templates/media-asset.html\";\r\n\r\nangularAMD.directive(\"mediaAsset\", [\r\n \"$rootScope\",\r\n \"$sce\",\r\n \"$interval\",\r\n \"$routeParams\",\r\n \"baseUrlsFactory\",\r\n \"mediaAssetService\",\r\n function ($rootScope, $sce, $interval, $routeParams, baseUrlsFactory, mediaAssetService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n video: \"@\",\r\n audio: \"@\",\r\n assetId: \"=\",\r\n isComplete: \"@\",\r\n pollInterval: \"@\",\r\n margin: \"@\"\r\n },\r\n link: function ($scope, element, attrs) {\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n\r\n $scope.init = function () {\r\n if (typeof $scope.assetId === \"undefined\") {\r\n $scope.assetId = attrs.assetId;\r\n }\r\n\r\n $scope._isComplete = $scope.isComplete !== undefined && $scope.isComplete !== false.toString();\r\n if (!$scope.pollInterval) {\r\n $scope.pollInterval = 2000;\r\n }\r\n $scope.ready = false;\r\n\r\n if ($scope._isComplete) {\r\n getStreamUrl();\r\n } else {\r\n $scope._isComplete = true; //Don't show the transcoding message until after the first response.\r\n mediaAssetService.pollUploadComplete($scope.assetId, $scope.pollInterval, function (isComplete) {\r\n if (isComplete) {\r\n $scope._isComplete = true;\r\n getStreamUrl();\r\n } else {\r\n $scope._isComplete = false;\r\n }\r\n });\r\n }\r\n };\r\n\r\n function getStreamUrl() {\r\n mediaAssetService.getDirectFileStream($scope.assetId, $routeParams.timeslice).then(function (response) {\r\n $scope.sourceUrl = $sce.trustAsResourceUrl(response.data.Key);\r\n $scope.sourceSubType = response.data.Value;\r\n $scope.ready = true;\r\n });\r\n }\r\n\r\n $scope.$on(\"$destroy\", function () {\r\n if (!$scope._isUploaded) {\r\n mediaAssetService.stopPolling($scope.assetId);\r\n }\r\n });\r\n\r\n $scope.init();\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{multiLanguageService.getString('media_asset.bad_codex.video.cant_be_played')}}

{{multiLanguageService.getString('media_asset.bad_codex.video.external_source')}}

{{multiLanguageService.getString('media_asset.bad_codex.audio.cant_be_played')}}

{{multiLanguageService.getString('media_asset.bad_codex.audio.external_source')}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.factory(\"mediaAssetService\", [\r\n \"$http\",\r\n \"$timeout\",\r\n \"baseUrlsFactory\",\r\n \"$q\",\r\n \"urlService\",\r\n \"AssetEndpointService\",\r\n function ($http, $timeout, baseUrlsFactory, $q, urlService, AssetEndpointService) {\r\n var timeoutStore = {};\r\n\r\n function promisedGet(url, params) {\r\n $http.defaults.withCredentials = true;\r\n var httpTimeout = $q.defer();\r\n var request = $http.get(url, {\r\n timeout: httpTimeout.promise,\r\n params: params\r\n });\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n promise._httpTimeout = httpTimeout;\r\n return promise;\r\n }\r\n\r\n function promisedPost(url, data) {\r\n $http.defaults.withCredentials = true;\r\n var httpTimeout = $q.defer();\r\n var request = $http.post(url, data, { timeout: httpTimeout.promise });\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n promise._httpTimeout = httpTimeout;\r\n return promise;\r\n }\r\n\r\n function isComplete(assetId) {\r\n return promisedGet(baseUrlsFactory.api_base_url + \"File/IsComplete?id=\" + assetId);\r\n }\r\n\r\n function pollIsComplete(assetId, interval, callback) {\r\n var timeoutPromise = $timeout(function () {\r\n isComplete(assetId).then(function (response) {\r\n removeTimeout(assetId, timeoutPromise);\r\n if (response.data) {\r\n callback(true);\r\n } else {\r\n pollIsComplete(assetId, interval, callback);\r\n }\r\n });\r\n }, interval);\r\n\r\n if (timeoutStore[assetId] === undefined) {\r\n timeoutStore[assetId] = [];\r\n }\r\n\r\n timeoutStore[assetId].push(timeoutPromise);\r\n }\r\n\r\n function removeTimeout(assetId, timeoutPromise) {\r\n var timeoutList = timeoutStore[assetId];\r\n if (timeoutList !== undefined) {\r\n var index = timeoutList.indexOf(timeoutPromise);\r\n if (index !== -1) {\r\n timeoutList.splice(index);\r\n }\r\n\r\n $timeout.cancel(timeoutPromise);\r\n }\r\n }\r\n\r\n return {\r\n getDirectFileStream: function (id, timeslice) {\r\n var params = { id: id };\r\n\r\n if (parseInt(timeslice, 10)) {\r\n params.timeslice = timeslice;\r\n }\r\n\r\n return AssetEndpointService.getDirectStreamLink(params);\r\n },\r\n isComplete: isComplete,\r\n\r\n pollUploadComplete: function (id, interval, callback) {\r\n if (id === undefined || id === \"\") {\r\n return callback(true);\r\n }\r\n isComplete(id).then(function (response) {\r\n if (response.data === true) {\r\n callback(true);\r\n } else {\r\n callback(false);\r\n pollIsComplete(id, interval, callback);\r\n }\r\n });\r\n },\r\n stopPolling: function (assetId) {\r\n var timeoutList = timeoutStore[assetId];\r\n if (timeoutList !== undefined) {\r\n for (var i = 0; i < timeoutList.length; i++) {\r\n $timeout.cancel(timeoutList[i]);\r\n }\r\n\r\n timeoutList.length = 0;\r\n delete timeoutStore[assetId];\r\n }\r\n },\r\n getActiveTimeoutsForAssetId: function (assetId) {\r\n return timeoutStore[assetId];\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.directive(\"messageAnnouncer\", MessageAnnouncer);\r\nMessageAnnouncer.$inject = [\"$timeout\"];\r\n\r\nfunction MessageAnnouncer($timeout) {\r\n return {\r\n restrict: \"E\",\r\n scope: {\r\n message: \"@\",\r\n delay: \"@\"\r\n },\r\n template: '

',\r\n link: function (scope, element, attr) {\r\n attr.$observe(\"message\", (newVal) => {\r\n $timeout(() => {\r\n scope.announcement = newVal;\r\n }, scope.delay || 0);\r\n });\r\n }\r\n };\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.factory(\"bounceFixTwo\", [\r\n \"$window\",\r\n function ($window) {\r\n // Enable by default if the browser supports -webkit-overflow-scrolling\r\n // Test this by setting the property with JavaScript on an element that exists in the DOM\r\n // Then, see if the property is reflected in the computed style\r\n var testDiv = document.createElement(\"div\");\r\n // tslint:disable-next-line:no-unsafe-dom-insert-calls\r\n document.documentElement.appendChild(testDiv);\r\n testDiv.style.WebkitOverflowScrolling = \"touch\";\r\n var scrollSupport = \"getComputedStyle\" in window && window.getComputedStyle(testDiv)[\"-webkit-overflow-scrolling\"] === \"touch\";\r\n\r\n /**\r\n * Main functionality\r\n */\r\n var _bounceFix = {\r\n bounceFixClassName: \"bounce-fix\",\r\n target_el: null,\r\n start_handler: null,\r\n move_handler_target_el: null,\r\n end_handler: null,\r\n\r\n /**\r\n * Goes up in the DOM tree until finds right element.\r\n * @param elem\r\n * @returns {*}\r\n */\r\n findTargetEl: function (elem) {\r\n var has_class = false;\r\n\r\n // Loop through the DOM to find element with bounce fix class\r\n while (elem !== document.body) {\r\n elem = elem.parentNode;\r\n has_class = angular.element(elem).hasClass(this.bounceFixClassName);\r\n this.target_el = elem;\r\n\r\n // If element is found, then our job is done\r\n if (has_class) {\r\n break;\r\n }\r\n }\r\n\r\n return has_class ? this.target_el : false;\r\n },\r\n\r\n /**\r\n * Determine if the element should scroll\r\n * @param el\r\n * @returns {boolean}\r\n */\r\n canScroll: function (el) {\r\n return el.scrollHeight > el.offsetHeight;\r\n },\r\n\r\n /**\r\n * Fixing bouncing by setting scroll position to 1px off the top/bottom edges\r\n * @param el\r\n * @param evt\r\n */\r\n preventBouncing: function (el, evt) {\r\n var curScrollPos = el.scrollTop,\r\n scrollHeight = el.scrollHeight,\r\n offsetHeight = el.offsetHeight,\r\n is_at_top = curScrollPos < 1,\r\n is_at_bottom = scrollHeight - offsetHeight < curScrollPos + 1;\r\n\r\n if (curScrollPos === 1) {\r\n evt.preventDefault();\r\n el.scrollTop = 2;\r\n\r\n return;\r\n }\r\n\r\n if (is_at_top) {\r\n el.scrollTop = 1;\r\n } else if (is_at_bottom) {\r\n el.scrollTop = scrollHeight - offsetHeight - 1;\r\n }\r\n },\r\n\r\n /**\r\n * 1. Finds target\r\n * 2. Check target and scrolling availability\r\n * 3. Runs bouncing fix\r\n * @param evt\r\n */\r\n onTouchStart: function (evt) {\r\n // Find & cache target element.\r\n var target_el = this.findTargetEl(evt.target);\r\n\r\n // Prevent bouncing when there is scroll and target element exists\r\n if (target_el && this.canScroll(target_el)) {\r\n this.preventBouncing(target_el, evt);\r\n return;\r\n }\r\n\r\n // In case it doesn't have scrolling disable scrolling on touchmove\r\n if (target_el && !this.move_handler_target_el) {\r\n this.move_handler_target_el = target_el;\r\n this.move_handler_target_el.addEventListener(\"touchmove\", this.onTouchMove, false);\r\n }\r\n },\r\n\r\n /**\r\n * Disable scrolling\r\n * @param evt\r\n */\r\n onTouchMove: function (evt) {\r\n evt.preventDefault();\r\n },\r\n\r\n /**\r\n * Clear after user finished scrolling\r\n */\r\n onTouchEnd: function () {\r\n if (this.move_handler_target_el) {\r\n this.move_handler_target_el.removeEventListener(\"touchmove\", this.onTouchMove, false);\r\n this.move_handler_target_el = null;\r\n }\r\n },\r\n\r\n /**\r\n * Adds events to make bounce fix working\r\n */\r\n enable: function () {\r\n this.start_handler = this.onTouchStart.bind(this);\r\n this.end_handler = this.onTouchEnd.bind(this);\r\n $window.addEventListener(\"touchstart\", this.start_handler, false);\r\n $window.addEventListener(\"touchend\", this.end_handler, false);\r\n },\r\n\r\n /**\r\n * Removes events responsible for bounce fix\r\n */\r\n disable: function () {\r\n $window.removeEventListener(\"touchstart\", this.start_handler, false);\r\n $window.removeEventListener(\"touchend\", this.end_handler, false);\r\n }\r\n };\r\n\r\n // Public API\r\n return {\r\n enabled: false,\r\n\r\n enable: function () {\r\n if (scrollSupport && !this.enabled) {\r\n _bounceFix.enable();\r\n this.enabled = true;\r\n }\r\n },\r\n\r\n disable: function () {\r\n if (scrollSupport && !this.enabled) {\r\n _bounceFix.disable();\r\n this.enabled = false;\r\n }\r\n }\r\n };\r\n }\r\n]);\r\n","import { BusyButton } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\r\n \"busyButton\",\r\n react2angular(BusyButton, [\"className\", \"onClick\", \"children\", \"ariaLabel\", \"disabled\", \"dataHook\", \"type\", \"ariaDescribedBy\", \"autoFocus\", \"ariaDisabled\", \"isBusy\", \"spinnerColour\"])\r\n);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { DialogActionController } from \"./dialogAction.component\";\r\nimport template from \"./busy-dialog-action.html\";\r\nimport \"../react2angular/busyButtonComponent\";\r\n\r\nconst busyDialogActionDefinition = {\r\n bindings: {\r\n buttonClass: \"<\",\r\n dataHook: \"@\",\r\n label: \"@\",\r\n onClick: \"&\",\r\n ariaLabel: \"<\",\r\n ariaDescribedBy: \"@\",\r\n hideDialog: \" `;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ButtonClass } from \"@pjs/core-ui\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../utilities/bounceFix\";\r\nimport \"../../utilities/domSearchHelper.service\";\r\nimport \"../../accessKeys/accessKey.service\";\r\nimport \"../../stickyElementCoordinator/stickyContainer.directive\";\r\nimport \"../../stickyElementCoordinator/stickyItem.directive\";\r\nimport \"../../focusTrap/focusTrap.service\";\r\nimport \"../../dialogAction/dialogAction.component\";\r\nimport \"../../dialogAction/busyDialogAction.component\";\r\nimport popupTemplate from \"../templates/pop-up.lazy.html\";\r\nimport slideTopTemplate from \"../templates/slide-from-top.html\";\r\n\r\nangularAMD.directive(\"modalDialog\", [\r\n \"$q\",\r\n \"$timeout\",\r\n \"$window\",\r\n \"baseUrlsFactory\",\r\n \"bounceFixTwo\",\r\n \"modal\",\r\n \"domSearchHelper\",\r\n \"focusTrapService\",\r\n function ($q, $timeout, $window, baseUrlsFactory, bounceFixTwo, modal, domSearchHelper, focusTrapService) {\r\n /**\r\n * Create and fill in global_scope\r\n *\r\n * @global_scope - set global elements once for all modal dialogs (optimization reason)\r\n * @function - fill the scope with global data\r\n */\r\n var global_scope = {};\r\n (function () {\r\n // cache HTML element to add global classes\r\n global_scope.document_el = angular.element(document.documentElement);\r\n })();\r\n\r\n return {\r\n restrict: \"E\",\r\n transclude: true,\r\n scope: \"=\",\r\n template: function (scope, attrs) {\r\n switch (attrs.modalStyle) {\r\n case \"pop-up\":\r\n return popupTemplate;\r\n default:\r\n return slideTopTemplate;\r\n }\r\n },\r\n\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope._modalHiding = false;\r\n $scope.focus_el = null;\r\n $scope.focusTrapService = focusTrapService;\r\n $scope.focusTrapId = null;\r\n $scope.buttonClass = ButtonClass;\r\n // ----------------------------------\r\n // Generic component methods\r\n // ----------------------------------\r\n /**\r\n * Make aliases for attribute data\r\n * Initialise variables\r\n */\r\n $scope.presetData = function () {\r\n $attrs.$observe(\"modalTitle\", function (new_val) {\r\n $scope.modal_title = new_val;\r\n });\r\n $attrs.$observe(\"modalIcon\", function (new_val) {\r\n $scope.modal_icon = new_val;\r\n });\r\n\r\n $scope.modal_style = $attrs.modalStyle;\r\n $scope.applyScrollContainer = $attrs.applyScrollContainer === \"true\";\r\n $scope.timeouts = {};\r\n $scope.animationTiming = $attrs.modalStyle === \"pop-up\" ? { in: 260, out: 150 } : { in: 230, out: 230 };\r\n $scope.shared_component_base_url = baseUrlsFactory.shared_component_base_url;\r\n $scope.modalTitleId = \"modal-dialog-title-\" + $scope.$id;\r\n $scope.labelledById = $scope.modalTitleId;\r\n $scope.modalInterface = {\r\n updateTitle: function (newTitle) {\r\n $scope.modal_title = newTitle;\r\n },\r\n updateIcon: function (icon) {\r\n $scope.modalIcon = icon;\r\n },\r\n updateDescribedBy: function (describedById) {\r\n if (describedById) {\r\n $scope.modal_dialog_el[0].setAttribute(\"aria-describedby\", describedById);\r\n } else {\r\n $scope.modal_dialog_el[0].removeAttribute(\"aria-describedby\");\r\n }\r\n },\r\n updateLabelledBy: function (labelledId) {\r\n $scope.labelledById = labelledId ? labelledId : $scope.modalTitleId;\r\n }\r\n };\r\n };\r\n\r\n $scope.removeFocusTrap = function () {\r\n if ($scope.focusTrapId !== null) {\r\n $scope.focusTrapService.removeTrap($scope.focusTrapId);\r\n $scope.focusTrapId = null;\r\n }\r\n };\r\n\r\n /**\r\n * Prepare all elements that required by the directive\r\n */\r\n $scope.cacheElems = function () {\r\n $scope.modal_holder = angular.element(document.getElementById(\"modal-holder\"));\r\n $scope.modal_el = $element;\r\n $scope.modal_dialog__wrapper_el = angular.element($element[0].getElementsByClassName(\"modal-dialog__wrapper\")[0]);\r\n $scope.modal_dialog_el = angular.element($element[0].getElementsByClassName(\"modal-dialog\")[0]);\r\n };\r\n\r\n $scope.onDescribedByElementCreated = function (e, eventId, element) {\r\n if (eventId === \"modalDescribedBy\") {\r\n if (!element.id) {\r\n element.id = \"modal-described-by-\" + Math.random();\r\n }\r\n $scope.modalInterface.updateDescribedBy(element.id);\r\n }\r\n };\r\n\r\n /**\r\n * Add all required event listeners\r\n */\r\n $scope.bindInterfaceEvents = function () {\r\n // hide modal by $broadcast\r\n $scope.$offHideModal = $scope.$on(\"hideModal\", $scope.hideModal);\r\n\r\n bounceFixTwo.enable();\r\n\r\n // hide modal on escape key\r\n if (!$scope.disable_close) {\r\n global_scope.document_el[0].addEventListener(\"keydown\", $scope.onEscKey);\r\n }\r\n };\r\n\r\n /**\r\n * Remove all previously created event listeners\r\n */\r\n $scope.unbindInterfaceEvents = function () {\r\n if ($scope.$offHideModal) {\r\n $scope.$offHideModal();\r\n }\r\n\r\n bounceFixTwo.disable();\r\n\r\n if (!$scope.disable_close) {\r\n global_scope.document_el[0].removeEventListener(\"keydown\", $scope.onEscKey);\r\n }\r\n };\r\n\r\n /**\r\n * Method to find element to focus first when modal is rendered\r\n */\r\n $scope.autoFocus = function (focus_style) {\r\n var modal_header_el = $scope.modal_dialog_el[0].querySelector(\".modal-dialog__header\");\r\n var modal_content_el = $scope.modal_dialog_el[0].querySelector(\".modal-dialog__content-container\");\r\n\r\n // find element that define as autofocus by developer\r\n $scope.auto_focus_el = modal_content_el.querySelector(\".autofocus\");\r\n\r\n // if can't find autofocus element\r\n if ($scope.auto_focus_el === null) {\r\n $scope.auto_focus_el = domSearchHelper.getFirstTabbableElement(modal_content_el);\r\n }\r\n\r\n // if nothing found, then focus on close button\r\n if ($scope.auto_focus_el === null && modal_header_el !== null) {\r\n $scope.auto_focus_el = modal_header_el.querySelector(\".modal-dialog__header__close\");\r\n }\r\n\r\n // if nothing found, then focus in modal dialog\r\n if ($scope.auto_focus_el === null) {\r\n $scope.auto_focus_el = $scope.modal_dialog_el[0];\r\n }\r\n\r\n // focus in found element\r\n $scope.auto_focus_el.focus();\r\n\r\n // apply focus-style only if developer set it to do so\r\n if (focus_style === true || ($scope.focus_style && focus_style === undefined)) {\r\n global_scope.document_el.addClass(\"focus-style\");\r\n }\r\n\r\n // scroll to top in case autofocus element is entire modal dialog\r\n // tslint:disable-next-line:triple-equals\r\n if ($scope.auto_focus_el == $scope.modal_dialog_el[0] && $scope.modal_style === \"pop-up\") {\r\n $scope.modal_dialog__wrapper_el[0].scrollTop = 0;\r\n }\r\n\r\n if ($scope.disable_focus_scroll) {\r\n $scope.modal_dialog__wrapper_el[0].scrollTop = 0;\r\n }\r\n };\r\n\r\n /**\r\n * Hides modal when escape key is pressed\r\n */\r\n $scope.onEscKey = function (e) {\r\n // detect 'esc' key not any other\r\n if (e.keyCode === 27) {\r\n e.stopPropagation();\r\n $scope.hideModal();\r\n }\r\n };\r\n\r\n /**\r\n * Checks if page has vertical scrollbar\r\n * @returns {boolean}\r\n */\r\n $scope.hasScrollbar = function () {\r\n return $window.innerWidth > global_scope.document_el[0].clientWidth;\r\n };\r\n\r\n // ----------------------------------\r\n // Modal dialog methods\r\n // ----------------------------------\r\n /**\r\n * Object contains functions with classes that should be applied before or after rendering\r\n * @type {{show: Function, hide: Function}}\r\n */\r\n $scope.toggleClasses = {\r\n /**\r\n * Add global classes before modal appears\r\n */\r\n show: function () {\r\n if ($scope.hasScrollbar()) {\r\n global_scope.document_el.addClass(\"scrollbar-shuffle-fix\");\r\n }\r\n\r\n // add class to html when modal is open\r\n global_scope.document_el.addClass(\"modal-enabled\");\r\n\r\n if ($scope.modal_style) {\r\n global_scope.document_el.addClass($scope.modal_style);\r\n }\r\n },\r\n\r\n /**\r\n * Remove global classes after modal is gone\r\n */\r\n hide: function () {\r\n $scope.modal_el.removeClass(\"display-block\");\r\n\r\n // remove all modal classes when it's hidden\r\n global_scope.document_el.removeClass(\"modal-enabled\");\r\n\r\n if ($scope.modal_style) {\r\n global_scope.document_el.removeClass($scope.modal_style);\r\n }\r\n\r\n global_scope.document_el.removeClass(\"scrollbar-shuffle-fix\");\r\n }\r\n };\r\n\r\n /**\r\n * All the actions that should happen BEFORE modal appear on the screen\r\n * @type {{show: Function, hide: Function}}\r\n */\r\n $scope.preRender = {\r\n show: function () {\r\n // clear out all timeout left from previous rendering\r\n $timeout.cancel($scope.timeouts.main);\r\n $timeout.cancel($scope.timeouts.rendering);\r\n $timeout.cancel($scope.timeouts.transition);\r\n\r\n // call additional function\r\n if ($scope.onOpen) {\r\n $scope.onOpen();\r\n }\r\n\r\n // add all necessary classes\r\n $scope.toggleClasses.show();\r\n // bind all events\r\n $scope.bindInterfaceEvents();\r\n },\r\n\r\n hide: function () {\r\n // clear out all timeout left from previous rendering\r\n $timeout.cancel($scope.timeouts.main);\r\n $timeout.cancel($scope.timeouts.rendering);\r\n $timeout.cancel($scope.timeouts.transition);\r\n // unbind all existing events\r\n $scope.unbindInterfaceEvents();\r\n }\r\n };\r\n\r\n /**\r\n * All the actions needed to make modal appear on the screen\r\n * @type {{show: Function, hide: Function}}\r\n */\r\n $scope.render = {\r\n show: function () {\r\n var deferred = $q.defer();\r\n\r\n $scope.focusTrapId = $scope.focusTrapService.addTrap($scope.modal_dialog__wrapper_el[0], $scope.ariaContainers);\r\n\r\n $scope.modal_el.addClass(\"display-block\");\r\n\r\n $scope.timeouts.main = $timeout(function () {\r\n $scope.timeouts.rendering = $timeout(function () {\r\n $scope.modal_el.addClass(\"show\");\r\n $scope.modal_dialog_el.addClass(\"animate-in\");\r\n\r\n $scope.timeouts.transition = $timeout(function () {\r\n // cancel all transitions in case they are not finished on slow machines\r\n $scope.modal_dialog_el.addClass(\"no-transition\");\r\n deferred.resolve();\r\n }, $scope.animationTiming.in);\r\n }, 10);\r\n }, 10);\r\n\r\n return deferred.promise;\r\n },\r\n\r\n hide: function () {\r\n var deferred = $q.defer();\r\n $scope.modal_dialog_el.removeClass(\"no-transition\");\r\n $scope.modal_dialog_el.removeClass(\"animate-in\");\r\n\r\n $scope.timeouts.main = $timeout(function () {\r\n $scope.timeouts.rendering = $timeout(function () {\r\n $scope.modal_dialog_el.addClass(\"animate-out\");\r\n\r\n $scope.timeouts.transition = $timeout(() => {\r\n $scope.modal_el.removeClass(\"show\");\r\n\r\n deferred.resolve();\r\n }, $scope.animationTiming.out);\r\n }, 10);\r\n }, 10);\r\n\r\n return deferred.promise;\r\n }\r\n };\r\n\r\n /**\r\n * All the action that happen after modal rendering is ended\r\n * @type {{show: Function, hide: Function}}\r\n */\r\n $scope.postRender = {\r\n show: function () {\r\n if ($scope.autofocus) {\r\n $scope.autoFocus();\r\n }\r\n\r\n // call additional function\r\n if ($scope.onAfterOpen) {\r\n $scope.onAfterOpen();\r\n }\r\n },\r\n\r\n hide: function () {\r\n // call additional function\r\n if ($scope.onClose) {\r\n $scope.onClose();\r\n }\r\n\r\n // remove all additional modal dialog component classes\r\n $scope.toggleClasses.hide();\r\n $scope.dialogInstance.close($scope.focusOnCloseElement);\r\n $scope.modal_dialog_el.removeClass(\"animate-out\");\r\n\r\n if (typeof $scope.onCloseCompleted === \"function\") {\r\n $scope.onCloseCompleted();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Call to show modal\r\n */\r\n $scope.showModal = function () {\r\n return $timeout(function () {\r\n $scope.preRender.show();\r\n $scope.render.show().then($scope.postRender.show);\r\n });\r\n };\r\n\r\n /**\r\n * Call to hide modal\r\n */\r\n $scope.hideModal = function () {\r\n $scope._modalHiding = true;\r\n $scope.removeFocusTrap();\r\n\r\n $scope.preRender.hide();\r\n return $scope.render.hide().then($scope.postRender.hide);\r\n };\r\n\r\n $scope.$on(\"$destroy\", function () {\r\n $scope.removeFocusTrap();\r\n\r\n if (!$scope._modalHiding) {\r\n $scope.hideModal();\r\n }\r\n });\r\n\r\n /**\r\n * Initialise modal directive\r\n */\r\n $scope.init = function () {\r\n $scope.presetData();\r\n $scope.cacheElems();\r\n $scope.modalInterface.updateLabelledBy($scope.labelled_by);\r\n $scope.$on(\"elementCreatedMarkerExists\", $scope.onDescribedByElementCreated);\r\n $scope.on_ready_deferred.resolve($scope); // resolve promise once modal is ready\r\n };\r\n\r\n $scope.init();\r\n }\r\n ]\r\n };\r\n }\r\n]);\r\n","export default `

{{modal_title}}

`;","export default `

{{modal_title}}

`;","import { dialogDirector } from \"@pjs/core-ui\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nexport class DialogRouteChangeService {\r\n constructor($rootScope) {\r\n this._$rootScope = $rootScope;\r\n this._trackedDialogs = [];\r\n this.init();\r\n }\r\n\r\n init() {\r\n this._$rootScope.$on(\"$routeChangeSuccess\", () => {\r\n dialogDirector.flush();\r\n\r\n for (const dialogObject of this._trackedDialogs) {\r\n if (dialogObject.destroy !== undefined) {\r\n dialogObject.destroy();\r\n }\r\n }\r\n\r\n this._trackedDialogs = [];\r\n });\r\n }\r\n\r\n addTrackedDialog(dialogObject) {\r\n this._trackedDialogs.push(dialogObject);\r\n }\r\n\r\n removeTrackedDialog(dialogId) {\r\n const index = this._trackedDialogs.findIndex((dialog) => dialog.scope.modalId === dialogId);\r\n\r\n if (index !== -1) {\r\n this._trackedDialogs.splice(index, 1);\r\n }\r\n }\r\n}\r\n\r\nDialogRouteChangeService.$inject = [\"$rootScope\"];\r\nangularAMD.service(\"dialogRouteChangeService\", DialogRouteChangeService);\r\n","import { dialogDirector, DialogState } from \"@pjs/core-ui\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nexport class DialogAccessKeyService {\r\n constructor(accessKeyService) {\r\n this._accessKeyService = accessKeyService;\r\n this.init();\r\n }\r\n\r\n init() {\r\n this._directorSubscription = dialogDirector.applicationState.subscribe((state) => {\r\n switch (state) {\r\n case DialogState.OPEN:\r\n this._accessKeyService.pauseHandlers();\r\n break;\r\n\r\n case DialogState.CLOSED:\r\n this._accessKeyService.resumeHandlers();\r\n break;\r\n }\r\n });\r\n }\r\n}\r\n\r\nDialogAccessKeyService.$inject = [\"accessKeyService\"];\r\nangularAMD.service(\"dialogAccessKeyService\", DialogAccessKeyService);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./modalDialog\";\r\n\r\nangularAMD.directive(\"modalFacade\", [\r\n \"$rootScope\",\r\n \"$compile\",\r\n function ($rootScope, $compile) {\r\n return {\r\n restrict: \"E\",\r\n scope: true,\r\n\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.presetData = function () {\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n };\r\n\r\n // append compiled modal to the DOM\r\n $scope.appendCompiledModal = function () {\r\n const html = '\";\r\n\r\n const compiled_elem = $compile(html)($scope);\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n $scope.compile_target.append(compiled_elem);\r\n };\r\n\r\n $scope.init = function () {\r\n $scope.presetData();\r\n $scope.appendCompiledModal();\r\n };\r\n\r\n $scope.init();\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n element.on(\"$destroy\", function () {\r\n scope.$destroy();\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { DialogInstance, DialogSize, DialogState, dialogDirector, crossIcon } from \"@pjs/core-ui\";\r\nimport \"./dialogRouteChangeService\";\r\nimport \"./dialogAccessKeyService\";\r\nimport \"../../elementCreatedMarker/elementCreatedMarker.directive\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../directives/modalDialog\";\r\nimport \"../directives/modalFacade\";\r\nimport \"../../utilities/helpers\";\r\nimport \"../../react2angular/icon\";\r\n\r\nangularAMD.provider(\"modalConfig\", function () {\r\n this.ariaContainers = [];\r\n this.$get = function () {\r\n return {\r\n ariaContainers: this.ariaContainers\r\n };\r\n }.bind(this);\r\n});\r\n\r\n/**\r\n * This file currently imports the dialogRouteChangeHandler\r\n * Once all modals have been migrated to react, if this file is no longer needed\r\n * this import will need to be moved to ensure it continues to provide its functionality\r\n */\r\n\r\nangularAMD.factory(\"modal\", [\r\n \"$rootScope\",\r\n \"$q\",\r\n \"$compile\",\r\n \"baseUrlsFactory\",\r\n \"helpers\",\r\n \"modalConfig\",\r\n \"dialogRouteChangeService\",\r\n \"dialogAccessKeyService\",\r\n function ($rootScope, $q, $compile, baseUrlsFactory, helpers, modalConfig, dialogRouteChangeService) {\r\n /**\r\n * Create and fill in global_scope\r\n *\r\n * @global_scope - set global elements once for all modal dialogs (optimization reason)\r\n * @function - fill the scope with global data\r\n */\r\n var global_scope = {};\r\n (function () {\r\n // cache HTML element to add global classes\r\n global_scope.modal_holder_el = angular.element(document.getElementById(\"modal-holder\"));\r\n })();\r\n\r\n return {\r\n genericTemplates: {\r\n popup: baseUrlsFactory.shared_component_base_url + \"modalDialogComponent/templates/generic-pop-up.lazy.html\",\r\n popupWithButtons: baseUrlsFactory.shared_component_base_url + \"modalDialogComponent/templates/generic-pop-up-with-buttons.lazy.html\"\r\n },\r\n\r\n /**\r\n * @param {string} templateUrl\r\n * @param {object=} modalProps\r\n * @param {object=} options\r\n * @return {object}\r\n */\r\n launch: function (templateUrl, modalProps, options) {\r\n var modalScope = Object.assign($rootScope.$new(true), modalProps || {});\r\n\r\n modalScope.onClose = function () {\r\n if (typeof modalProps.onClose === \"function\") {\r\n modalProps.onClose();\r\n }\r\n\r\n modalScope.$destroy();\r\n };\r\n\r\n return this.newModal(\r\n Object.assign(\r\n {\r\n scope: modalScope,\r\n templateUrl: templateUrl\r\n },\r\n options\r\n )\r\n );\r\n },\r\n\r\n /**\r\n * @deprecated - Use modal.launch as that handles scope creation and destruction\r\n */\r\n newModal: function (opts, unsafe = false) {\r\n const self = this;\r\n const _scope = opts.scope || $rootScope.$new(true);\r\n\r\n if (opts.autoRestoreFocus !== false) {\r\n _scope.focusOnCloseElement = document.activeElement;\r\n }\r\n\r\n _scope.on_ready_deferred = $q.defer();\r\n _scope.focus_style = opts.focusStyle === undefined ? true : opts.focusStyle;\r\n _scope.autofocus = opts.autofocus === undefined ? true : opts.autofocus;\r\n _scope.disable_close = opts.disableClose || false;\r\n _scope.disable_focus_scroll = opts.disableFocusScroll || false;\r\n _scope.labelled_by = opts.labelledBy;\r\n _scope.ariaContainers = modalConfig.ariaContainers;\r\n _scope.modalId = opts.modal_id || helpers.guid();\r\n _scope.templateUrl = opts.templateUrl;\r\n _scope.crossIcon = crossIcon;\r\n _scope.dialogInstance = new DialogInstance(\r\n {\r\n size: DialogSize.Small,\r\n initialModel: {},\r\n steps: []\r\n },\r\n dialogDirector\r\n );\r\n\r\n const dialogObj = {\r\n scope: _scope,\r\n facade: self.compileModal(_scope),\r\n canDestroyScope: unsafe !== true,\r\n showModal: function () {\r\n this.directorSubscription = dialogDirector.applicationState.subscribe((state) => {\r\n if (state === DialogState.CLOSING) {\r\n this.destroy();\r\n }\r\n });\r\n\r\n self.bindApiMethod(_scope.on_ready_deferred.promise, \"showModal\");\r\n },\r\n hideModal: function () {\r\n if (dialogDirector.dequeue(this.id) !== null) {\r\n this.destroy();\r\n }\r\n\r\n self.bindApiMethod(_scope.on_ready_deferred.promise, \"hideModal\");\r\n },\r\n autoFocus: function (focus_style) {\r\n self.bindApiMethod(_scope.on_ready_deferred.promise, \"autoFocus\", focus_style);\r\n },\r\n destroy: function () {\r\n this.scope.dialogInstance.destroy();\r\n dialogRouteChangeService.removeTrackedDialog(this.scope.modalId);\r\n\r\n // clear the focus element from scope for the cases of persistent scopes\r\n this.scope.focusOnCloseElement = null;\r\n\r\n // If safe to do so manually call $destroy on scope to prevent memory leaks\r\n if (this.canDestroyScope) {\r\n this.scope.$destroy();\r\n }\r\n\r\n // If showModal has set up a subscription, call unsubscribe\r\n if (this.directorSubscription !== undefined) {\r\n this.directorSubscription.unsubscribe();\r\n }\r\n\r\n this.facade.remove();\r\n self.removeModal(this.scope.modalId);\r\n\r\n // clean up after modal is destroyed\r\n for (let key in this) {\r\n if (this[key] !== undefined) {\r\n delete this[key];\r\n }\r\n }\r\n }\r\n };\r\n\r\n dialogRouteChangeService.addTrackedDialog(dialogObj);\r\n\r\n dialogDirector.enqueue({\r\n instance: _scope.dialogInstance,\r\n render: () => dialogObj.showModal()\r\n });\r\n\r\n return dialogObj;\r\n },\r\n\r\n bindApiMethod: function (promise, method_name, param) {\r\n promise.then(function (data) {\r\n data[method_name](param);\r\n });\r\n },\r\n\r\n // cleans out the DOM from previously existed modals\r\n removeModal: function (modalId) {\r\n if (modalId) {\r\n const modal_el = angular.element(document.getElementById(modalId));\r\n modal_el.remove();\r\n }\r\n },\r\n\r\n // append compiled modal to the DOM\r\n compileModal: function (scope) {\r\n if (scope.templateUrl) {\r\n scope.compile_target = global_scope.modal_holder_el;\r\n // appends element to the DOM (pre defined element)\r\n return $compile(\"\")(scope);\r\n } else {\r\n throw new Error(\"Modal templateUrl is empty or null. Please check your modal templateUrl.\");\r\n }\r\n }\r\n };\r\n }\r\n]);\r\n","import \"../../utilities/i18nHelper.service\";\r\n\r\nMultiLanguageContentProvider.$inject = [\"$q\"];\r\n\r\nfunction MultiLanguageContentProvider($q) {\r\n //=== Public API ===============================================================================================\r\n this.getLanguageContentViaKey = getLanguageContentViaKey;\r\n this.getLanguageContent = getLanguageContent;\r\n\r\n //=== Private Properties =======================================================================================\r\n var i18nHelper = angular.injector([\"i18n\"]).get(\"i18nHelper\"),\r\n content = {\r\n learningCentre: \"learningCentre/languages/learningCentre-\",\r\n customMessages: \"homeDash/customMessages/languages/custom-messages-\"\r\n };\r\n\r\n //=== Private Methods ==========================================================================================\r\n function getLanguageContent(contentPath) {\r\n var deferred = $q.defer();\r\n if (!contentPath) {\r\n deferred.reject();\r\n } else {\r\n i18nHelper.getLanguageContent(contentPath).then(function (data) {\r\n deferred.resolve(data);\r\n });\r\n }\r\n\r\n return deferred.promise;\r\n }\r\n\r\n function getLanguageContentViaKey(key) {\r\n return getLanguageContent(content[key]);\r\n }\r\n}\r\n\r\nexport { MultiLanguageContentProvider };\r\n","import { MultiLanguageContentProvider } from \"./services/multiLanguageContentProvider.service\";\r\nimport { I18NextServiceProvider } from \"./services/pebbleI18next\";\r\n\r\nclass MultiLanguageServiceProvider {\r\n constructor() {\r\n this.$get = [\r\n \"$q\",\r\n \"MultiLanguageContentProvider\",\r\n \"I18NextService\",\r\n ($q, multiLanguageContentProvider, i18NextService) => {\r\n const multiLanguageService = new MultiLanguageService($q, multiLanguageContentProvider, i18NextService);\r\n multiLanguageService.setDictionary(this.dictionaries);\r\n return multiLanguageService;\r\n }\r\n ];\r\n this.dictionaries = null;\r\n }\r\n}\r\n\r\nvar multiLangModule = angular.module(\"multiLangModule\", [\"ng\"]);\r\nmultiLangModule.service(\"MultiLanguageContentProvider\", MultiLanguageContentProvider);\r\nmultiLangModule.service(\"I18NextService\", I18NextServiceProvider);\r\nmultiLangModule.config([\r\n \"$sceDelegateProvider\",\r\n function ($sceDelegateProvider) {\r\n var whiteListUrlShared = window.config.getSharedComponentBaseUrl() + \"**\";\r\n\r\n $sceDelegateProvider.resourceUrlWhitelist([\r\n // Allow same origin resource loads.\r\n \"self\",\r\n // Allow loading from our assets domain. Notice the difference between * and **.\r\n whiteListUrlShared\r\n ]);\r\n }\r\n]);\r\n\r\nmultiLangModule.provider(\"multiLanguageService\", MultiLanguageServiceProvider);\r\n\r\nfunction MultiLanguageService($q, multiLanguageContentProvider, i18NextService) {\r\n this.dictionary = null;\r\n this.subsets = {\r\n learningCentre: null\r\n };\r\n this.listOptions = null;\r\n this._services = {\r\n $q: $q,\r\n multiLanguageContentProvider: multiLanguageContentProvider,\r\n i18next: i18NextService.i18next\r\n };\r\n this._i18nDictionary = null;\r\n this.stringNamespace = \"stringResources\";\r\n this.urlNamespace = \"urlResources\";\r\n this.imageNamespace = \"imageResources\";\r\n}\r\n\r\nMultiLanguageService.prototype.defaultDictionary = \"en-GB\";\r\n\r\nMultiLanguageService.prototype.getString = function (string, opts) {\r\n return this._getValue(this.stringNamespace, string, opts);\r\n};\r\n\r\nMultiLanguageService.prototype.getUrl = function (string, opts) {\r\n return this._getValue(this.urlNamespace, string, opts);\r\n};\r\n\r\nMultiLanguageService.prototype.getImage = function (string, opts) {\r\n return this._getValue(this.imageNamespace, string, opts);\r\n};\r\n\r\nMultiLanguageService.prototype.keyExists = function (string) {\r\n return this._i18nDictionary.exists(this.stringNamespace + this._i18nDictionary.options.nsSeparator + string);\r\n};\r\n\r\nMultiLanguageService.prototype._getValue = function (namespace, string, opts) {\r\n return this._i18nDictionary.t(namespace + this._i18nDictionary.options.nsSeparator + string, opts);\r\n};\r\n\r\nMultiLanguageService.prototype.addResourceBundle = function (lang, namespace, resources, deep, overwrite) {\r\n return this._i18nDictionary.addResourceBundle(lang, namespace, resources, deep, overwrite);\r\n};\r\n\r\nMultiLanguageService.prototype.setDictionary = function (newDictionaries) {\r\n this.dictionary = newDictionaries.main;\r\n this.lang_attr = newDictionaries.main.lang_attr;\r\n\r\n this._i18nDictionary = this._services.i18next.createInstance(\r\n {\r\n lng: newDictionaries.main.lang_attr,\r\n debug: false,\r\n resources: [],\r\n pluralSeparator: \"__\",\r\n contextSeparator: \"^\",\r\n fallbackLng: [this.defaultDictionary],\r\n interpolation: {\r\n escapeValue: false,\r\n skipOnVariables: false,\r\n format: function (value, format, lng) {\r\n if (format === \"listor\") {\r\n return this.handleLists(value, format, lng, this.listOptionsOr);\r\n }\r\n\r\n if (format === \"listand\") {\r\n return this.handleLists(value, format, lng, this.listOptionsAnd);\r\n }\r\n\r\n if (format === \"listnone\") {\r\n return this.handleLists(value, format, lng, this.listOptionsNone);\r\n }\r\n\r\n if (format === \"bold\") {\r\n return \"\" + value + \"\";\r\n }\r\n if (format[0] === \".\") {\r\n var classNames = format.substring(1).replace(\".\", \" \");\r\n return '' + value + \"\";\r\n }\r\n\r\n return value;\r\n }.bind(this)\r\n },\r\n returnDetails: false,\r\n returnObjects: false\r\n },\r\n function (err, t) {\r\n // Ready\r\n }.bind(this)\r\n );\r\n\r\n [newDictionaries.main, newDictionaries.fallback].forEach(\r\n function (resource) {\r\n if (resource !== null) {\r\n this._i18nDictionary.addResourceBundle(resource.lang_attr, this.stringNamespace, resource.dictionary);\r\n this._i18nDictionary.addResourceBundle(resource.lang_attr, this.urlNamespace, resource.urls);\r\n this._i18nDictionary.addResourceBundle(resource.lang_attr, this.imageNamespace, resource.images);\r\n }\r\n }.bind(this)\r\n );\r\n\r\n this.listOptionsOr = {\r\n separator: this.getString(\"delimiter\"),\r\n lastSeparator: this.getString(\"or\")\r\n };\r\n\r\n this.listOptionsAnd = {\r\n separator: this.getString(\"delimiter\"),\r\n lastSeparator: this.getString(\"and\")\r\n };\r\n\r\n this.listOptionsNone = {\r\n separator: this.getString(\"delimiter\"),\r\n lastSeparator: this.getString(\"delimiter\")\r\n };\r\n};\r\n\r\nMultiLanguageService.prototype.handleLists = function (value, format, lng, listOptions) {\r\n // TODO Improve upon this sometime\r\n return this.arrayToSentence(value, listOptions);\r\n};\r\n\r\nMultiLanguageService.prototype.arrayToSentence = function (arr, options) {\r\n if (!Array.isArray(arr)) {\r\n throw new TypeError(String(arr) + \" is not an array. Expected an array.\");\r\n }\r\n\r\n if (arr.length === 0) {\r\n return \"\";\r\n }\r\n\r\n if (arr.length === 1) {\r\n return arr[0];\r\n }\r\n\r\n options = options || {};\r\n\r\n if (options.separator === undefined) {\r\n options.separator = this.getString(\"delimiter\");\r\n } else {\r\n this.validateOptionIsString(\"separator\", options);\r\n }\r\n\r\n if (options.lastSeparator === undefined) {\r\n options.lastSeparator = this.getString(\"and\");\r\n } else {\r\n this.validateOptionIsString(\"lastSeparator\", options);\r\n }\r\n\r\n return arr.slice(0, -1).join(options.separator) + options.lastSeparator + arr[arr.length - 1];\r\n};\r\n\r\nMultiLanguageService.prototype.validateOptionIsString = function (optionName, options) {\r\n if (typeof options[optionName] !== \"string\") {\r\n throw new TypeError(String(options[optionName]) + \" is not a string. \" + \"`\" + optionName + \"` option must be a string.\");\r\n }\r\n};\r\n\r\nMultiLanguageService.prototype.getDictionary = function () {\r\n //This is here to make sure we don't break the system\r\n // this.dictionary.getString = this.getString.bind(this);\r\n\r\n return this.dictionary;\r\n};\r\n\r\nMultiLanguageService.prototype.setSubset = function (name, data) {\r\n this.subsets[name] = data;\r\n};\r\n\r\nMultiLanguageService.prototype.getLanguage = function () {\r\n return this.lang_attr;\r\n};\r\n\r\nMultiLanguageService.prototype.getSubset = function (key) {\r\n var subset = this.subsets[key],\r\n deferred = this._services.$q.defer();\r\n\r\n if (subset) {\r\n deferred.resolve(subset);\r\n } else {\r\n this._services.multiLanguageContentProvider.getLanguageContentViaKey(key).then(\r\n function (data) {\r\n this.subsets[key] = data;\r\n deferred.resolve(data);\r\n }.bind(this),\r\n function () {\r\n deferred.reject();\r\n }\r\n );\r\n }\r\n\r\n return deferred.promise;\r\n};\r\n","import i18next from \"i18next\";\r\n\r\nfunction I18NextServiceProvider() {\r\n this.i18next = i18next;\r\n this.$get = function () {\r\n return this.i18next;\r\n };\r\n}\r\n\r\nexport { I18NextServiceProvider };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { Keys, shortcutManager } from \"@pjs/core-ui\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../a11y/services/a11yMenuFactory.service\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport template from \"./navigation-menu.html\";\r\nimport { noop } from \"@pjs/utilities\";\r\nimport { withDigest } from \"../react2angular/utilities/WithDigest.function\";\r\n\r\nangularAMD.directive(\"navigationMenu\", [\r\n \"$location\",\r\n \"$sce\",\r\n \"baseUrlsFactory\",\r\n \"$routeParams\",\r\n \"$interval\",\r\n \"$timeout\",\r\n \"A11yMenuFactory\",\r\n \"multiLanguageService\",\r\n function ($location, $sce, baseUrlsFactory, $routeParams, $interval, $timeout, A11yMenuFactory, multiLanguageService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n pages: \"=\", //List of pages to display and navigate with\r\n preventLocationSearch: \"=\", //Prevent navigation menu from using location.search\r\n mShortcutKey: \"=\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n $scope.multiLanguageService = multiLanguageService;\r\n\r\n $scope.componentLang = {\r\n navAriaLabel: $scope.multiLanguageService.getString(\"navigation_menu.aria_label\"),\r\n pageArias: {},\r\n navItemAriaLabel: function (page) {\r\n var isNested = page.subpages && page.subpages.length > 1;\r\n var isActive = $scope.activePage.type === page.type;\r\n if (isNested) {\r\n var dictionaryLookup = isActive\r\n ? \"asset_store.navigation.external_stores_current_page\"\r\n : \"asset_store.navigation.external_stores\";\r\n return $scope.multiLanguageService.getString(dictionaryLookup, {\r\n currentStoreName: page.name\r\n });\r\n }\r\n if (isActive) {\r\n return $scope.multiLanguageService.getString(\"navigation_menu.active_tab\", {\r\n pageTitle: page.name\r\n });\r\n }\r\n return $scope.multiLanguageService.getString(\"navigation_menu.inactive_tab\", {\r\n pageTitle: page.name\r\n });\r\n },\r\n viewItemAriaLabel: function (page) {\r\n return $scope.multiLanguageService.getString(\"asset_store.accessibility.view\", {\r\n pageTitle: page.name\r\n });\r\n },\r\n update: function () {\r\n for (var i = 0; i < $scope.pages.length; i++) {\r\n var page = $scope.pages[i];\r\n var text = $scope.componentLang.navItemAriaLabel(page);\r\n $scope.componentLang.pageArias[page.type] = text;\r\n }\r\n }\r\n };\r\n }\r\n ],\r\n link: function (scope, element, attrs) {\r\n scope.flattenedPages = [];\r\n scope._removeShortcuts = noop;\r\n\r\n var pagesLength = scope.pages.length;\r\n\r\n scope.setActivePage = function (index) {\r\n scope.activePage = scope.pages[index];\r\n scope.componentLang.update();\r\n\r\n if (!scope.preventLocationSearch) {\r\n $location.search(\"type\", scope.activePage.type).replace();\r\n }\r\n\r\n scope.$emit(\"setActivePage\", scope.activePage);\r\n };\r\n\r\n scope.$on(\"setActivePageByType\", function (event, data) {\r\n setActivePageByType(data);\r\n });\r\n\r\n scope.setActivePageByType = function (pageType) {\r\n setActivePageByType(pageType);\r\n };\r\n\r\n var setActivePageByType = function (type) {\r\n if (type === null || type === undefined) {\r\n return scope.setActivePage(0);\r\n }\r\n\r\n for (var i = 0; i < scope.pages.length; i++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.pages[i].type == type) {\r\n return scope.setActivePage(i);\r\n }\r\n\r\n if (scope.pages[i].subpages) {\r\n for (var subIndex = 0; subIndex < scope.pages[i].subpages.length; subIndex++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.pages[i].subpages[subIndex].type == type) {\r\n scope.pages[i].name = scope.pages[i].subpages[subIndex].name;\r\n scope.pages[i].type = scope.pages[i].subpages[subIndex].type;\r\n return scope.setActivePage(i);\r\n }\r\n }\r\n }\r\n }\r\n return scope.setActivePage(0);\r\n };\r\n\r\n var nav_el = angular.element(element[0].getElementsByClassName(\"store-navigation\")[0]);\r\n nav_el.bind(\"focus\", scope.addRoleMenuKeyBindings);\r\n\r\n scope.$watchCollection(\"pages\", function (newVal) {\r\n if (newVal && newVal.length > 0) {\r\n scope.flattenedPages = [];\r\n\r\n for (var i = 0; i < newVal.length; i++) {\r\n var page = newVal[i];\r\n\r\n if (page.subpages) {\r\n for (var s = 0; s < page.subpages.length; s++) {\r\n var subpage = page.subpages[s];\r\n scope.flattenedPages.push({\r\n name: subpage.name,\r\n type: subpage.type,\r\n hook: subpage.hook\r\n });\r\n }\r\n } else {\r\n scope.flattenedPages.push({\r\n name: page.name,\r\n type: page.type,\r\n hook: page.hook\r\n });\r\n }\r\n }\r\n\r\n scope.addItemsClass();\r\n\r\n if (nav_el && !scope.roleMenu) {\r\n var list_el = nav_el[0].getElementsByClassName(\"list\")[0];\r\n\r\n if (list_el) {\r\n $timeout(function () {\r\n scope.roleMenu = A11yMenuFactory.createMenubar(nav_el, angular.element(list_el.querySelector('[role=\"menuitem\"]')));\r\n scope.roleMenu.configureMenu();\r\n });\r\n }\r\n }\r\n scope._registerShortcuts();\r\n scope.componentLang.update();\r\n }\r\n });\r\n\r\n scope.addItemsClass = function () {\r\n nav_el.removeClass(\"items-\" + pagesLength);\r\n pagesLength = scope.pages.length;\r\n nav_el.addClass(\"items-\" + pagesLength);\r\n };\r\n\r\n setActivePageByType($routeParams.type);\r\n\r\n var removeUpdateActive = scope.$on(\"updateActivePage\", function (event, data) {\r\n if (data) {\r\n setActivePageByType(data);\r\n } else {\r\n setActivePageByType($routeParams.type);\r\n }\r\n });\r\n\r\n scope._registerShortcuts = function () {\r\n scope._removeShortcuts();\r\n const shortcuts = [\r\n {\r\n keys: [Keys.Control, Keys.Shift, \"m\"],\r\n callback: withDigest(() => scope._shortcutAction(), scope),\r\n description: scope.multiLanguageService.getString(`shortcuts.${scope.mShortcutKey.key}`)\r\n }\r\n ];\r\n\r\n scope._removeShortcuts = shortcutManager.add(shortcuts, scope.multiLanguageService.getString(\"shortcuts.group_descriptions.navigation\"));\r\n };\r\n\r\n scope._shortcutAction = function () {\r\n scope.mShortcutKey.action();\r\n\r\n const firstTab = scope.pages[0];\r\n if (firstTab.hook) {\r\n const navTab = element[0].querySelector(`[data-hook=${firstTab.hook}]`);\r\n navTab.focus();\r\n } else {\r\n const navTabs = element[0].querySelectorAll(`[data-hook=\"store-navigation-item-btn\"]`);\r\n navTabs[0].focus();\r\n }\r\n };\r\n\r\n scope.$on(\"$destroy\", function () {\r\n removeUpdateActive();\r\n scope._removeShortcuts();\r\n\r\n if (scope.roleMenu) {\r\n scope.roleMenu.unconfigureMenu();\r\n }\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","export default ` `;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../autoFocus/autoFocus.directive\";\r\nimport template from \"./templates/number-picker.html\";\r\n\r\nangularAMD.directive(\"numberPicker\", [\r\n \"$sce\",\r\n \"multiLanguageService\",\r\n \"baseUrlsFactory\",\r\n \"$timeout\",\r\n function ($sce, multiLanguageService, baseUrlsFactory, $timeout) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n eventId: \"@\",\r\n min: \"@\",\r\n max: \"@\",\r\n cancelAriaLabel: \"@\",\r\n fields: \"=\", //Array of objects {value: null, min: null, max: null, placeholder: 'Bob'} or Object of Objects,\r\n decimalPlaces: \"<\",\r\n hideClearBtn: \"=\",\r\n optionalClass: \"@\"\r\n },\r\n\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n //Variables --------------------------------------------------------------------------------------------\r\n $scope.hasChanged = false;\r\n $scope.inputFields = null;\r\n $scope.elements = { firstInput: null };\r\n $scope.defaultCancelAria = multiLanguageService.getString(\"accessibility.buttons.cancel_number_picker\");\r\n //Functions --------------------------------------------------------------------------------------------\r\n //Although the input type is number, we run extra validation in case the browser does not support that type or the type gets changed\r\n $scope.validate = function () {\r\n var isValid = false; //False until prove true!\r\n\r\n var item;\r\n for (var key in $scope.fields) {\r\n if ($scope.fields.hasOwnProperty(key)) {\r\n item = $scope.fields[key];\r\n //Test is there is input and the input is not full of whitespace\r\n if (item && item.value !== null && /\\S/.test(item.value)) {\r\n isValid = !isNaN(item.value);\r\n if (isValid === false) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return isValid;\r\n };\r\n\r\n $scope.updatedValue = function (field) {\r\n $scope.hasChanged = true;\r\n // If a number was input, change from string to number ie '3' becomes 3 so that arithmetic still works for that input\r\n // Otherwise, leave the input as-is and allow restrictDecimals to validate it\r\n if (field.value !== null && /^[0-9]+$/.test(field.value)) {\r\n field.value = +field.value;\r\n }\r\n if (typeof field.onValueChange === \"function\") {\r\n field.onValueChange(field.value, $scope.eventId);\r\n }\r\n };\r\n\r\n $scope.clearValue = function (field) {\r\n field.value = null;\r\n if (typeof field.onValueChange === \"function\") {\r\n field.onValueChange(field.value, $scope.eventId);\r\n }\r\n $scope.hasChanged = false;\r\n $scope.elements.firstInput.focus();\r\n $scope.$emit(\"numberPickerUpdated\", $scope.eventId, $scope.fields);\r\n };\r\n\r\n $scope.onConfirm = function () {\r\n $scope.hasChanged = false;\r\n $scope.elements.firstInput.focus();\r\n $scope.$emit(\"numberPickerUpdated\", $scope.eventId, $scope.fields);\r\n };\r\n\r\n $scope.clear = function () {\r\n for (var key in $scope.fields) {\r\n if ($scope.fields.hasOwnProperty(key)) {\r\n $scope.fields[key].value = null;\r\n }\r\n }\r\n };\r\n\r\n $scope.checkLength = function () {\r\n return $scope.fields.length || Object.keys($scope.fields).length;\r\n };\r\n\r\n $scope.cacheElements = function () {\r\n $timeout(function () {\r\n $scope.elements.firstInput = $element[0].getElementsByClassName(\"number-picker__input\")[0];\r\n });\r\n };\r\n\r\n $scope.init = function () {\r\n $scope.cacheElements();\r\n\r\n if (!$scope.eventId) {\r\n $scope.eventId = null;\r\n }\r\n\r\n $scope.toggle = $scope.toggle && $scope.toggle === \"true\";\r\n };\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n scope.init();\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
`;","import { finalise, from, share } from \"@pjs/observables\";\r\nimport { noop } from \"@pjs/utilities\";\r\n\r\n/**\r\n * @template T\r\n * @param { AbortablePromiseLike } abortablePromiseLike\r\n * @param { () => void } [onAbort]\r\n * @return { Observable }\r\n */\r\nexport function from$Promise(abortablePromiseLike, onAbort = noop) {\r\n return from(abortablePromiseLike).pipe(\r\n finalise(() => {\r\n if (abortablePromiseLike.abort !== undefined) {\r\n abortablePromiseLike.abort();\r\n onAbort();\r\n }\r\n }),\r\n share()\r\n );\r\n}\r\n","export const FavouriteStates = {\r\n Pending: \"pending\",\r\n Error: \"error\",\r\n Favourite: \"favourite\",\r\n Unfavourite: \"unfavourite\"\r\n};\r\n","import { FavouritesObserver } from \"./FavouritesObserver\";\r\n\r\nexport const favouritesObserver = new FavouritesObserver();\r\n","import { FavouriteStates } from \"./FavouriteStates\";\r\nimport { Subject } from \"@pjs/observables\";\r\n\r\nexport class FavouritesObserver {\r\n constructor() {\r\n this._subject = new Subject();\r\n }\r\n\r\n add(items, fromSidebar) {\r\n this._updateState(FavouriteStates.Favourite, items, fromSidebar);\r\n }\r\n\r\n remove(items, fromSidebar) {\r\n this._updateState(FavouriteStates.Unfavourite, items, fromSidebar);\r\n }\r\n\r\n pending(items) {\r\n this._updateState(FavouriteStates.Pending, items);\r\n }\r\n\r\n error() {\r\n this._updateState(FavouriteStates.Error, []);\r\n }\r\n\r\n onChange() {\r\n return this._subject.asObservable();\r\n }\r\n\r\n _updateState(state, items, fromSidebar = false) {\r\n const stateInfo = {\r\n state: state,\r\n fromSidebar: fromSidebar,\r\n items: items\r\n };\r\n\r\n this._subject.next(stateInfo);\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../loadingSpinner/loadingSpinner\";\r\nimport template from \"../templates/spinner-overlay.html\";\r\n\r\nangularAMD.directive(\"spinnerOverlay\", function () {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n $scope.hideSpinner = false;\r\n $scope.displaySpinner = function (hideSpinner) {\r\n $scope.hideSpinner = hideSpinner;\r\n };\r\n }\r\n ]\r\n };\r\n});\r\n","export default `
\"\"
{{options.text}}
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../directives/spinnerOverlay\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport { TIMEOUT_CONSTANTS } from \"../../constants/timeout.constants\";\r\n\r\nangularAMD.service(\"overlayFactory\", [\r\n \"$compile\",\r\n \"$sce\",\r\n \"$timeout\",\r\n \"multiLanguageService\",\r\n \"baseUrlsFactory\",\r\n function ($compile, $sce, $timeout, multiLanguageService, baseUrlsFactory) {\r\n function SpinnerOverlay(element, options) {\r\n this.element = element;\r\n this.options = options;\r\n }\r\n\r\n SpinnerOverlay.prototype.updateStage = function (hideSpinner) {\r\n hideSpinner = hideSpinner === undefined ? true : hideSpinner;\r\n var self = this;\r\n $timeout(function () {\r\n self.element.scope().displaySpinner(hideSpinner);\r\n });\r\n\r\n return this;\r\n };\r\n\r\n SpinnerOverlay.prototype.selfDestruct = function () {\r\n this.options = null;\r\n this.element.scope().$destroy();\r\n this.element.remove();\r\n this.element = null;\r\n\r\n return this;\r\n };\r\n\r\n var SaveOverlay = {\r\n element: angular.element(document.getElementsByClassName(\"builder-canvas-dark-layer\")[0]),\r\n showTimer: null,\r\n show: function (delay) {\r\n this._clearTimeout();\r\n\r\n this.showTimer = setTimeout(\r\n function () {\r\n this.element.addClass(\"show-overlay\");\r\n }.bind(this),\r\n delay\r\n );\r\n },\r\n isOverlayVisible: function () {\r\n return this.element.hasClass(\"show-overlay\") || this.showTimer !== null;\r\n },\r\n update: function () {\r\n this.element.addClass(\"save-complete\");\r\n },\r\n hide: function () {\r\n this._clearTimeout();\r\n\r\n this.element.removeClass(\"save-complete\");\r\n this.element.removeClass(\"show-overlay\");\r\n },\r\n updateThenHide: function (delay) {\r\n this._clearTimeout();\r\n this.update();\r\n\r\n return $timeout(\r\n function () {\r\n this.hide();\r\n }.bind(this),\r\n delay || TIMEOUT_CONSTANTS.SAVE_OVERLAY\r\n );\r\n },\r\n _clearTimeout: function () {\r\n clearTimeout(this.showTimer);\r\n this.showTimer = null;\r\n }\r\n };\r\n\r\n var OverlayManager = (function () {\r\n function OverlayManager() {\r\n this.overlayHolder = angular.element(document.getElementById(\"overlayHolder\"));\r\n this.activeOverlay = null;\r\n this.defaultHideTimerMs = 1000;\r\n }\r\n\r\n OverlayManager.prototype.displayClass = \"show-overlay\";\r\n\r\n OverlayManager.prototype.saveOverlay = SaveOverlay;\r\n\r\n /**\r\n * @param {Scope} scope\r\n * @param {String} spinnerTemplate - Relative Template Path\r\n * @param {String} onCompleteIcon - Relative Image Path\r\n * @param {String} onCompleteText\r\n * @param {Boolean} autoShow\r\n * @returns {OverlayManager}\r\n */\r\n OverlayManager.prototype.createSpinnerOverlay = function (scope, spinnerTemplate, onCompleteIcon, onCompleteText, autoShow) {\r\n var overlayOpts = {\r\n template: $sce.getTrustedResourceUrl(spinnerTemplate),\r\n icon: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + onCompleteIcon),\r\n text: onCompleteText\r\n };\r\n\r\n var spinnerScope = scope.$new(true);\r\n spinnerScope.options = overlayOpts;\r\n spinnerScope.multiLanguageService = multiLanguageService;\r\n\r\n var spinnerElement = $compile(\"\")(spinnerScope);\r\n spinnerElement.on(\"$destroy\", function () {\r\n spinnerScope.$destroy();\r\n });\r\n\r\n if (scope.$root && !scope.$root.$$phase && !scope.$$phase) {\r\n scope.$apply();\r\n }\r\n\r\n var overlay = new SpinnerOverlay(spinnerElement, overlayOpts);\r\n\r\n if (autoShow) {\r\n this.setActiveOverlay(overlay);\r\n this.show();\r\n }\r\n return overlay;\r\n };\r\n\r\n /**\r\n * @param {Object} overlay - Interface: {element: Angular Element, updateStage: Function }. Heck we could pass a modal in :P\r\n * @returns {OverlayManager}\r\n */\r\n OverlayManager.prototype.setActiveOverlay = function (overlay) {\r\n this.detachActiveOverlay();\r\n this.activeOverlay = overlay;\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n this.overlayHolder.append(overlay.element);\r\n\r\n return this;\r\n };\r\n\r\n OverlayManager.prototype.detachActiveOverlay = function () {\r\n if (this.activeOverlay && this.activeOverlay.element) {\r\n this.activeOverlay.element.detach();\r\n this.activeOverlay = null;\r\n }\r\n\r\n return this;\r\n };\r\n\r\n OverlayManager.prototype.show = function () {\r\n this.overlayHolder.addClass(this.displayClass);\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * @param {Number} delay\r\n * @returns Promise\r\n */\r\n OverlayManager.prototype.updateThenHide = function (delay) {\r\n return this.actionThenHide(this.activeOverlay.updateStage.bind(this.activeOverlay), delay);\r\n };\r\n\r\n /**\r\n * @param {Function} callback\r\n * @param {Number} delay\r\n * @returns Promise\r\n */\r\n OverlayManager.prototype.actionThenHide = function (callback, delay) {\r\n delay = delay || 1000;\r\n callback();\r\n\r\n var self = this;\r\n return $timeout(function () {\r\n self.hide();\r\n }, delay);\r\n };\r\n\r\n OverlayManager.prototype.hide = function () {\r\n this.overlayHolder.removeClass(this.displayClass);\r\n\r\n return this;\r\n };\r\n\r\n OverlayManager.prototype.createPromisedOverlay = function (config) {\r\n this.createSpinnerOverlay(config.scope, config.iconText || null, config.template || null, config.successMessageText || null, config.autoShow);\r\n return config.promise.finally(\r\n function () {\r\n this.updateThenHide(config.hideInMs || this.defaultHideTimerMs).then(\r\n function () {\r\n this.detachActiveOverlay();\r\n }.bind(this)\r\n );\r\n }.bind(this)\r\n );\r\n };\r\n\r\n return OverlayManager;\r\n })();\r\n\r\n return new OverlayManager();\r\n }\r\n]);\r\n","export function byPageId(id) {\r\n return (page) => page.PageId === id;\r\n}\r\n","export function determinePageAssetId(page) {\r\n return page.UserResponseId !== undefined ? page.UserResponseId : page.PageAssetId;\r\n}\r\n","import { determinePageAssetId } from \"./DeterminePageAssetId.function\";\r\nimport { withoutDuplicateValues } from \"./WithoutDuplicateValues.function\";\r\n\r\nexport function withoutDuplicatePageAssetIdsFactory() {\r\n return withoutDuplicateValues(determinePageAssetId);\r\n}\r\n","export function withoutDuplicateValues(getValue) {\r\n const trackedValues = new Set();\r\n\r\n return (item) => {\r\n const value = getValue(item);\r\n if (trackedValues.has(value)) {\r\n return false;\r\n }\r\n\r\n trackedValues.add(value);\r\n return true;\r\n };\r\n}\r\n","import { determinePageAssetId } from \"./DeterminePageAssetId.function\";\r\n\r\nexport function withoutEmptyPageAssetIds(page) {\r\n const pageAssetId = determinePageAssetId(page);\r\n return pageAssetId !== null && pageAssetId !== \"\";\r\n}\r\n","export class PageModelSearch {\r\n constructor(pages) {\r\n this._pages = pages;\r\n }\r\n\r\n /**\r\n * @param {...function(PageViewModel):boolean} comparators\r\n * @return {boolean}\r\n */\r\n contains(...comparators) {\r\n return this._traverseTree(this._pages, comparators, null) !== null;\r\n }\r\n\r\n /**\r\n * @param {...function(PageViewModel):boolean} comparators\r\n * @return {PageViewModel | null}\r\n */\r\n find(...comparators) {\r\n return this._traverseTree(this._pages, comparators, null);\r\n }\r\n\r\n /**\r\n * @param {...function(PageViewModel):boolean} comparators\r\n * @return {Array>}}\r\n */\r\n filter(...comparators) {\r\n const matchingPages = [];\r\n const filter = (page, pages, parent) => {\r\n const pageMatch = this._runComparators(comparators, page, pages, parent);\r\n if (pageMatch) {\r\n matchingPages.push(page);\r\n }\r\n\r\n return false;\r\n };\r\n\r\n this._traverseTree(this._pages, [filter], null);\r\n return matchingPages;\r\n }\r\n\r\n /**\r\n * Searches for a matching page and returns the found page along with a list of its parents (0 index being closest parent, last index being furthest parent)\r\n * @param {...function(PageViewModel):boolean} comparators\r\n * @return {{page: PageViewModel, parents: Array} | null}\r\n */\r\n tracedFind(...comparators) {\r\n const result = this._traverseTreeWithTracing(this._pages, comparators, null);\r\n\r\n if (result === null) {\r\n return null;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n _traverseTree(pages, comparators, parent) {\r\n for (const page of pages) {\r\n let bail = this._runComparators(comparators, page, pages, parent);\r\n if (bail) {\r\n return page;\r\n }\r\n\r\n if (page.Children.length > 0) {\r\n const result = this._traverseTree(page.Children, comparators, page);\r\n if (result !== null) {\r\n return result;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _traverseTreeWithTracing(pages, comparators, parent) {\r\n for (const page of pages) {\r\n let bail = this._runComparators(comparators, page, pages, parent);\r\n if (bail) {\r\n return { page: page, parents: [] };\r\n }\r\n\r\n if (page.Children.length > 0) {\r\n const result = this._traverseTreeWithTracing(page.Children, comparators, page);\r\n if (result !== null) {\r\n result.parents.push(page);\r\n return result;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _runComparators(comparators, page, pages, parent) {\r\n for (const comparator of comparators) {\r\n if (!comparator(page, pages, parent)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nexport class LinkerGlobalConfig {\r\n constructor() {\r\n this.allowAssets = true;\r\n }\r\n\r\n $get() {\r\n return { allowAssets: this.allowAssets };\r\n }\r\n}\r\n\r\nangularAMD.provider(LinkerGlobalConfig.name, LinkerGlobalConfig);\r\n","export function isEmailLike(value) {\r\n return /^[^@]+@[^.@]+\\.[^.@]+[^@]*$/.test(value);\r\n}\r\n","import { assetIcons } from \"@pjs/asset-core\";\r\n\r\nexport const mapSelectorItemsToAutoCompleteItems = (selectorItems, getTypeLabel) => {\r\n return selectorItems.map((selectorItem) => {\r\n return {\r\n icon: assetIcons.get(selectorItem.MainType, selectorItem.SubType),\r\n id: selectorItem.Id,\r\n mainType: selectorItem.MainType,\r\n value: selectorItem.Title,\r\n label: getTypeLabel(selectorItem.MainType)\r\n };\r\n });\r\n};\r\n","import { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { ValidatedInput } from \"@pjs/core-ui\";\r\n\r\nangularAMD.component(\r\n \"validatedInput\",\r\n react2angular(ValidatedInput, [\r\n \"isValid\",\r\n \"onInvalidInput\",\r\n \"onValidInput\",\r\n \"ariaDescribedBy\",\r\n \"ariaLabel\",\r\n \"ariaLabelledBy\",\r\n \"className\",\r\n \"disabled\",\r\n \"id\",\r\n \"inputMode\",\r\n \"onBlur\",\r\n \"onEnter\",\r\n \"title\",\r\n \"value\"\r\n ])\r\n);\r\n","import { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { AutoComplete, WithBoundaryBridge } from \"@pjs/core-ui\";\r\n\r\nangularAMD.component(\r\n \"autoCompleteComponent\",\r\n react2angular(WithBoundaryBridge(AutoComplete), [\r\n \"ariaLabel\",\r\n \"emptyLabel\",\r\n \"loadingLabel\",\r\n \"onItemSelect\",\r\n \"onInput\",\r\n \"openLength\",\r\n \"renderItem\",\r\n \"search\",\r\n \"textContent\",\r\n \"placeholder\",\r\n \"debounceTime\"\r\n ])\r\n);\r\n","import { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { Input } from \"@pjs/core-ui\";\r\n\r\nangularAMD.component(\"inputComponent\", react2angular(Input, [\"autoFocus\", \"className\", \"disabled\", \"id\", \"inputMode\", \"placeholder\", \"onChange\", \"type\", \"value\"]));\r\n","import { StyledLoadingSpinner } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nconst styledLoadingSpinner = react2angular(StyledLoadingSpinner, [\"className\"]);\r\n\r\nangularAMD.component(\"styledLoadingSpinner\", styledLoadingSpinner);\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { ButtonClass, listIcon, gridIcon, AriaMenuStatus } from \"@pjs/core-ui\";\r\nimport { noop } from \"@pjs/utilities\";\r\nimport { SELECTOR } from \"../../constants/selector.constants\";\r\nimport { withDigest } from \"../../react2angular/utilities/WithDigest.function\";\r\nimport \"../../spaMenu/selector/services/spaSelectorService\";\r\nimport \"../../react2angular/buttonComponent\";\r\nimport \"../../react2angular/input\";\r\nimport \"../../react2angular/scopedSearch\";\r\nimport \"../../fileUpload/directives/fileUpload\";\r\nimport \"../../itemSelector/itemSelector.component\";\r\nimport \"../../react2angular/StyledLoadingSpinner\";\r\nimport \"../../stickyElementCoordinator/stickyItem.directive\";\r\nimport template from \"./templates/linker-selector.html\";\r\nimport { itemSelectorFilters } from \"../../itemSelector/itemSelectorFilters\";\r\n\r\nclass LinkerSelectorController extends NgComponent {\r\n constructor($scope, $timeout, multiLanguageService, spaSelectorService) {\r\n super();\r\n\r\n this._$scope = $scope;\r\n this._$timeout = $timeout;\r\n this.multiLanguage = multiLanguageService;\r\n this._selectorApi = spaSelectorService;\r\n this._dataRequest = null;\r\n\r\n this.controls = {\r\n cancel: {\r\n action: this.onCancel,\r\n style: ButtonClass.Outlined,\r\n text: this.multiLanguage.getString(\"buttons.cancel\")\r\n },\r\n search: {\r\n autoFocus: true,\r\n filterModel: { activeItemIndex: 0, type: AriaMenuStatus.Closed, isOpen: false },\r\n searchTerm: this.searchTerm,\r\n filterOptions: [\r\n {\r\n value: multiLanguageService.getString(itemSelectorFilters.all.label),\r\n filter: itemSelectorFilters.all,\r\n fullLabel: multiLanguageService.getString(itemSelectorFilters.all.fullLabel)\r\n },\r\n {\r\n value: multiLanguageService.getString(itemSelectorFilters.tag.label),\r\n filter: itemSelectorFilters.tag,\r\n fullLabel: multiLanguageService.getString(itemSelectorFilters.tag.fullLabel)\r\n },\r\n {\r\n value: multiLanguageService.getString(itemSelectorFilters.title.label),\r\n filter: itemSelectorFilters.title,\r\n fullLabel: multiLanguageService.getString(itemSelectorFilters.title.fullLabel)\r\n }\r\n ],\r\n change: withDigest((searchTerm) => (this.controls.search.searchTerm = searchTerm), $scope),\r\n onFilterChange: withDigest((filterModel) => (this.controls.search.filterModel = filterModel), $scope),\r\n onSearch: this._runSearch.bind(this),\r\n scopedSearchLabel: multiLanguageService.getString(\"search.a11y.select\"),\r\n searchButtonLabel: multiLanguageService.getString(\"search.a11y.search_button\"),\r\n searchInputLabel: multiLanguageService.getString(\"search.a11y.search_input\"),\r\n clearSearchLabel: multiLanguageService.getString(\"search.a11y.clear_search\")\r\n }\r\n };\r\n\r\n this.loadingMessage = this.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.a11y_loading\");\r\n this.goBackLabel = this.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.back_to_link\");\r\n this.selectorData = null;\r\n this.disableExtraInfo = true;\r\n this.selectorMode = \"Single\";\r\n this.views = [\r\n { id: \"list\", icon: listIcon, ariaLabel: multiLanguageService.getString(\"accessibility.spa_menu.selector.listView\") },\r\n { id: \"gallery\", icon: gridIcon, ariaLabel: multiLanguageService.getString(\"accessibility.spa_menu.selector.galleryView\") }\r\n ];\r\n this.uploader = { selectorId: \"link-modal-selector\" };\r\n this.fileUploadEnabled = false;\r\n this.enableFileUpload = this._enableFileUpload.bind(this);\r\n this.noop = noop;\r\n this._$scope.$on(\"updateItemsInSelector\", (_, fileUploadResult) => this._onFileUpload(fileUploadResult));\r\n }\r\n\r\n $onInit() {\r\n this.load();\r\n }\r\n\r\n $onDestroy() {\r\n if (this._dataRequest !== null) {\r\n this._dataRequest.abort();\r\n }\r\n }\r\n\r\n goBack() {\r\n if (!this.fileUploadEnabled) {\r\n this.onBack();\r\n return;\r\n }\r\n\r\n this.fileUploadEnabled = false;\r\n this.goBackLabel = this.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.back_to_link\");\r\n }\r\n\r\n _enableFileUpload() {\r\n this.fileUploadEnabled = true;\r\n this.goBackLabel = this.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.back_to_selector\");\r\n }\r\n\r\n _onFileUpload(fileUploadResult) {\r\n this.fileUploadEnabled = false;\r\n this.goBackLabel = this.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.back_to_link\");\r\n\r\n if (fileUploadResult.Items.length === 1) {\r\n tracker.trackEvent(\"CKE5 Linker modal\", \"Uploaded file\", `Single`);\r\n this.onSelect(fileUploadResult.Items[0]);\r\n return;\r\n }\r\n\r\n tracker.trackEvent(\"CKE5 Linker modal\", \"Uploaded file\", `Multiple`);\r\n this._updateData(fileUploadResult.Items);\r\n }\r\n\r\n load() {\r\n this._dataRequest = this._selectorApi\r\n .getDefaultItemsForSelector(SELECTOR.SELECT_TYPE.ASSET_AND_RESOURCE, [], [], this.excludedAssets, [], [], [\"ByMe\", \"WithMe\"])\r\n .then((data) => {\r\n this.selectorData = data;\r\n if (this.searchTerm) {\r\n this._runSearch(this.searchTerm, this.controls.search.filterOptions[0]);\r\n }\r\n })\r\n .catch(() => {\r\n this.selectorData = { Description: this.multiLanguage.getString(\"labels.selector.asset_and_resource\", { count: 0 }), Items: [] };\r\n })\r\n .finally(() => {\r\n this.loadingMessage = this.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.a11y_loaded\");\r\n });\r\n }\r\n\r\n _updateData(newItems) {\r\n this.selectorData.Items = newItems.concat(this.selectorData.Items);\r\n this.selectorData.Description = this.multiLanguage.getString(\"labels.selector.asset_and_resource\", { count: this.selectorData.Items.length });\r\n }\r\n\r\n _runSearch(searchTerm, searchScope) {\r\n const trimmedSearchTerm = searchTerm.trim();\r\n this._dataRequest.then(() => {\r\n if (trimmedSearchTerm === \"\") {\r\n this._$scope.$broadcast(\"filterItemSelector\");\r\n return;\r\n }\r\n this._$timeout(() => this._$scope.$broadcast(\"filterItemSelector\", { searchTerm: trimmedSearchTerm, filter: searchScope.filter }));\r\n });\r\n }\r\n}\r\n\r\nLinkerSelectorController.$inject = [\"$scope\", \"$timeout\", \"multiLanguageService\", \"spaSelectorService\"];\r\n\r\nconst linkerSelectorDefinition = {\r\n bindings: {\r\n excludedAssets: \"<\",\r\n onBack: \"<\",\r\n onCancel: \"<\",\r\n onSelect: \"<\",\r\n searchTerm: \"<\"\r\n },\r\n template: template,\r\n controller: LinkerSelectorController\r\n};\r\n\r\nangularAMD.component(\"linkerSelector\", linkerSelectorDefinition);\r\n","export default `

{{::$ctrl.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.selector_heading\")}}

{{::$ctrl.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.loading\")}}

`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { getBestTextMatches } from \"@pjs/utilities\";\r\nimport { IconWithTextAutoCompleteItem, ButtonClass } from \"@pjs/core-ui\";\r\nimport { createGuid } from \"@pjs/utilities\";\r\nimport { MainType } from \"@pjs/asset-core\";\r\nimport { SELECTOR } from \"../../constants/selector.constants\";\r\nimport { ASSET_CONSTANTS } from \"../../constants/asset.constants\";\r\nimport { isWebAddressLike } from \"../../utilities/IsWebAddressLike.function\";\r\nimport { isEmailLike } from \"../../utilities/IsEmailLike.function\";\r\nimport { from$Promise } from \"../../observables/From$Promise.function\";\r\nimport { withDigest } from \"../../react2angular/utilities/WithDigest.function\";\r\nimport { mapSelectorItemsToAutoCompleteItems } from \"./mapSelectorItemsToAutoCompleteItems\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../react2angular/checkbox\";\r\nimport \"../../react2angular/validatedInput\";\r\nimport \"../../react2angular/autocomplete\";\r\nimport \"../../react2angular/buttonComponent\";\r\nimport \"../../utilities/debounce.service\";\r\nimport \"../../react2angular/input\";\r\nimport \"../../fileUpload/directives/fileUpload\";\r\nimport \"../../itemSelector/itemSelector.component\";\r\nimport \"../../spaMenu/selector/services/spaSelectorService\";\r\nimport \"../../utilities/urlService\";\r\nimport \"./LinkerSelector.component\";\r\nimport template from \"./templates/linker-modal.html\";\r\n\r\nclass LinkerModalController extends NgComponent {\r\n constructor($scope, $http, $timeout, multiLanguageService, baseUrlsFactory, urlService) {\r\n super();\r\n\r\n this._$scope = $scope;\r\n this._$http = $http;\r\n this._$timeout = $timeout;\r\n this.multiLanguage = multiLanguageService;\r\n this._urlService = urlService;\r\n this._selectorEndpoint = baseUrlsFactory.api_base_url + \"SharedMenu/GetDefaultItemsForSelector\";\r\n\r\n this.isSelectingAsset = false;\r\n this.closeModal = () => $scope.$parent.hideModal();\r\n this._formState = {\r\n hasUserMadeChanges: false,\r\n valid: this.link !== \"\"\r\n };\r\n\r\n this._resourceLabel = this.multiLanguage.getString(\"pebble_terms.resource\");\r\n this._getResourceLabel = (mainType) => (mainType === MainType.WorkBook || mainType === MainType.Form ? this._resourceLabel : \"\");\r\n this._searchFields = [{ getProperty: (item) => item.value, weight: 1 }];\r\n\r\n const isAssetRoute = this.link !== \"\" && !/^http/i.test(this.link) && this._urlService.isSupportedRoute(this.link);\r\n\r\n this.controls = {\r\n addressInput: {\r\n id: createGuid(),\r\n isValid: (value) => isWebAddressLike(value) || isEmailLike(value),\r\n label: this.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.link_aria_label\"),\r\n style: \"linker-modal__input\",\r\n onInvalid: withDigest((value) => this._setInvalidLink(value), $scope),\r\n onValid: withDigest((value) => this._setValidLink(value), $scope),\r\n value: isAssetRoute ? this._urlService.convertRouteToFullUrl(this.link) : this.link\r\n },\r\n cancel: {\r\n content: this.multiLanguage.getString(\"buttons.cancel\"),\r\n onClick: withDigest(this.closeModal, $scope),\r\n style: ButtonClass.Outlined\r\n },\r\n confirm: {\r\n content: this.multiLanguage.getString(this.isEditing ? \"pebble_editor.plugins.linker.modal.update_link\" : \"pebble_editor.plugins.linker.modal.add_link\"),\r\n disabled: true,\r\n onClick: withDigest(() => this._confirmLink(), $scope),\r\n style: ButtonClass.Contained\r\n },\r\n external: {\r\n label: this.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.open_link_in_new_tab\"),\r\n onChange: withDigest((value) => {\r\n this.controls.external.value = value;\r\n this._updateFormState({ hasUserMadeChanges: true });\r\n }, $scope),\r\n value: this.isExternal\r\n },\r\n remove: {\r\n content: this.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.remove_link\"),\r\n onClick: withDigest(() => {\r\n this.onRemove();\r\n this.closeModal();\r\n }, $scope),\r\n style: ButtonClass.Outlined\r\n },\r\n autoComplete: {\r\n ariaLabel: this.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.search_aria_label\"),\r\n search: (searchTerm) => from$Promise(this._getSearchResults(searchTerm)),\r\n onInput: withDigest((value) => (this.controls.autoComplete.textContent = value), $scope),\r\n onItemSelect: withDigest((item) => this._updateLinkFromAutoComplete(item), $scope),\r\n openLength: 2,\r\n renderItem: IconWithTextAutoCompleteItem,\r\n emptyLabel: this.multiLanguage.getString(\"auto_complete.no_results\"),\r\n loadingLabel: this.multiLanguage.getString(\"auto_complete.loading\"),\r\n textContent: \"\",\r\n debounceTime: 400\r\n },\r\n selector: {\r\n content: this.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.more_options\"),\r\n onClick: withDigest(() => (this.isSelectingAsset = true), $scope),\r\n onItemSelect: (item) => this._updateLinkFromSelector(item),\r\n onSelectorBack: () => this._cancelSelectingAsset()\r\n },\r\n textInput: {\r\n id: createGuid(),\r\n label: this.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.link_text_aria_label\"),\r\n onChange: withDigest((e) => {\r\n this.controls.textInput.value = e.target.value;\r\n this.controls.textInput.usingPresetTitle = false;\r\n this._updateFormState({ hasUserMadeChanges: true });\r\n }, $scope),\r\n style: \"linker-modal__input\",\r\n usingPresetTitle: false,\r\n value: this.linkText\r\n }\r\n };\r\n }\r\n\r\n _updateLinkFromAsset(assetId, mainType, title) {\r\n const isAsset = mainType !== ASSET_CONSTANTS.TYPES.FORM && mainType !== ASSET_CONSTANTS.TYPES.WORKBOOK;\r\n const routeUrl = this._urlService.createHashUrl(assetId, mainType, isAsset, false);\r\n const url = this._urlService.convertRouteToFullUrl(routeUrl);\r\n\r\n this._setValidLink(url);\r\n if (this.controls.textInput.value === \"\" || this.controls.textInput.usingPresetTitle) {\r\n this.controls.textInput.value = title;\r\n this.controls.textInput.usingPresetTitle = true;\r\n }\r\n }\r\n\r\n _updateLinkFromAutoComplete(item) {\r\n this.controls.autoComplete.textContent = \"\";\r\n this._updateLinkFromAsset(item.id, item.mainType, item.value);\r\n this._focusAddressField();\r\n tracker.trackEvent(\"CKE5 Linker modal\", \"Selected from quick-search\", item.mainType);\r\n }\r\n\r\n _updateLinkFromSelector(item) {\r\n this._updateLinkFromAsset(item.Id, item.MainType, item.Title);\r\n this.controls.selector.onSelectorBack();\r\n tracker.trackEvent(\"CKE5 Linker modal\", \"Selected from selector\", item.MainType);\r\n }\r\n\r\n _confirmLink() {\r\n const enteredLink = this.controls.addressInput.value;\r\n\r\n this.onConfirm({\r\n isExternal: this.controls.external.value,\r\n link: this._normaliseFinalLink(enteredLink),\r\n linkText: this.allowTextField && this.controls.textInput.value === \"\" ? enteredLink : this.controls.textInput.value\r\n });\r\n this.closeModal();\r\n }\r\n\r\n _normaliseFinalLink(link) {\r\n if (isEmailLike(link)) {\r\n tracker.trackEvent(\"CKE5 Linker modal\", \"Confirm link\", \"Email\");\r\n return /^mailto:/i.test(link) ? link : `mailto:${link}`;\r\n }\r\n\r\n const route = this._urlService.getRouteFromFullUrl(link);\r\n if (route !== \"\") {\r\n tracker.trackEvent(\"CKE5 Linker modal\", \"Confirm link\", \"Asset/resource\");\r\n return route;\r\n }\r\n\r\n tracker.trackEvent(\"CKE5 Linker modal\", \"Confirm link\", \"Url\");\r\n return /^https?:\\/\\//i.test(link) ? link : `https://${link}`;\r\n }\r\n\r\n _setInvalidLink(value) {\r\n this.controls.addressInput.value = value;\r\n this._updateFormState({ valid: false });\r\n }\r\n\r\n _setValidLink(value) {\r\n this.controls.addressInput.value = value;\r\n this._updateFormState({ valid: value !== \"\", hasUserMadeChanges: true });\r\n }\r\n\r\n _updateFormState(partialFormState) {\r\n Object.assign(this._formState, partialFormState);\r\n this.controls.confirm.disabled = !this._formState.valid || !this._formState.hasUserMadeChanges;\r\n }\r\n\r\n _getSearchResults(originalSearchTerms) {\r\n const searchTerms = originalSearchTerms.trim();\r\n if (searchTerms.length === 0) {\r\n return Promise.resolve([]);\r\n }\r\n\r\n const selectorConfig = {\r\n ExcludeIds: this.excludedAssets,\r\n Ownerships: [\"ByMe\", \"WithMe\"],\r\n RequestedAmountPerStore: 8,\r\n SearchTerms: searchTerms,\r\n SelectType: SELECTOR.SELECT_TYPE.ASSET_AND_RESOURCE\r\n };\r\n\r\n return this._$http\r\n .post(this._selectorEndpoint, selectorConfig)\r\n .then((r) => {\r\n const assetsAndResources = r.data[0].Items.concat(r.data[1].Items);\r\n const autoCompleteItems = mapSelectorItemsToAutoCompleteItems(assetsAndResources, this._getResourceLabel);\r\n return getBestTextMatches(searchTerms, autoCompleteItems, this._searchFields).slice(0, 8);\r\n })\r\n .catch(() => {\r\n throw new Error(this.multiLanguage.getString(\"auto_complete.error\"));\r\n });\r\n }\r\n\r\n _cancelSelectingAsset() {\r\n this.controls.autoComplete.textContent = \"\";\r\n this.isSelectingAsset = false;\r\n this._focusAddressField();\r\n }\r\n\r\n _focusAddressField() {\r\n this._$timeout(() => document.getElementById(this.controls.addressInput.id).focus());\r\n }\r\n}\r\n\r\nconst linkerModalDefinition = {\r\n bindings: {\r\n allowTextField: \"<\",\r\n allowAssets: \"<\",\r\n excludedAssets: \"<\",\r\n isEditing: \"<\",\r\n isExternal: \"<\",\r\n onConfirm: \"<\",\r\n onRemove: \"<\",\r\n link: \"<\",\r\n linkText: \"<\"\r\n },\r\n template: template,\r\n controller: LinkerModalController\r\n};\r\n\r\nLinkerModalController.$inject = [\"$scope\", \"$http\", \"$timeout\", \"multiLanguageService\", \"baseUrlsFactory\", \"urlService\"];\r\nangularAMD.component(\"linkerModal\", linkerModalDefinition);\r\n","export function isWebAddressLike(value) {\r\n return /^(https?:\\/\\/)?[\\p{L}\\p{N}][\\p{L}\\p{N}-]*(\\.[\\p{L}\\p{N}-]+)*\\.[a-z0-9]+($|\\/|:\\d+|\\?|#)/iu.test(value);\r\n}\r\n","export default `

{{::$ctrl.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.enter_link\")}}

{{::$ctrl.multiLanguage.getString(\"pebble_editor.plugins.linker.modal.link_asset_or_resource\")}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { Subject } from \"@pjs/observables\";\r\nimport { LinkerGlobalConfig } from \"./LinkerGlobalConfig.provider\";\r\nimport \"../../user/user.service\";\r\nimport \"../../modal/services/modal\";\r\nimport \"../../assetSelector/assetSelector.service\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"./LinkerModal.component\";\r\n\r\nclass LinkerService {\r\n constructor($rootScope, $routeParams, linkerGlobalConfig, user, modal, baseUrlsFactory, multiLanguageService) {\r\n this._$rootScope = $rootScope;\r\n this._$routeParams = $routeParams;\r\n this._linkerGlobalConfig = linkerGlobalConfig;\r\n this._user = user;\r\n this._modal = modal;\r\n this._baseUrlsFactory = baseUrlsFactory;\r\n this._multiLanguageService = multiLanguageService;\r\n }\r\n\r\n createModal(selectionDetails, focusTracker) {\r\n focusTracker.freeze();\r\n const linkChangeSubject = new Subject();\r\n const modalTemplateUrl = this._baseUrlsFactory.shared_component_base_url + \"pebbleEditorPlugins/linkerPlugin/templates/linker-dialog.lazy.html\";\r\n const user = this._user.getDto();\r\n\r\n const isEditing = selectionDetails.link !== \"\";\r\n const modalProps = {\r\n allowAssets: this._linkerGlobalConfig.allowAssets && user !== null && !user.IsExternal,\r\n allowTextField: selectionDetails.blockCount <= 1,\r\n excludedAssets: [this._$routeParams.assetId],\r\n isEditing: isEditing,\r\n isExternal: selectionDetails.isExternal,\r\n link: selectionDetails.link,\r\n linkText: selectionDetails.linkText,\r\n onClose: () => linkChangeSubject.complete(),\r\n onConfirm: (result) => linkChangeSubject.next({ mode: \"insert\", isExternal: result.isExternal, updatedLink: result.link, updatedLinkText: result.linkText }),\r\n onRemove: () => linkChangeSubject.next({ mode: \"remove\" }),\r\n title: this._multiLanguageService.getString(isEditing ? \"pebble_editor.plugins.linker.modal.edit_link\" : \"pebble_editor.plugins.linker.modal.add_link\")\r\n };\r\n\r\n this._modal.launch(modalTemplateUrl, modalProps, { autoRestoreFocus: false });\r\n this._$rootScope.$applyAsync();\r\n\r\n return linkChangeSubject;\r\n }\r\n}\r\n\r\nLinkerService.$inject = [\"$rootScope\", \"$routeParams\", LinkerGlobalConfig.name, \"User\", \"modal\", \"baseUrlsFactory\", \"multiLanguageService\"];\r\nangularAMD.service(\"linkerService\", LinkerService);\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport \"../utilities/debounce.service.js\";\r\nimport \"./ActiveToolbarCoordinator.service\";\r\nimport \"../pebbleEditorPlugins/linkerPlugin/LinkerService\";\r\n\r\nexport class ReactEditorAdapterController extends NgComponent {\r\n constructor(activeToolbarCoordinator, $scope, linkerService) {\r\n super();\r\n this.onToolbarDisplayChange = activeToolbarCoordinator.onToolbarToggle.bind(activeToolbarCoordinator);\r\n this.onEditorChange = (value) => {\r\n this.onChange(value);\r\n $scope.$applyAsync();\r\n };\r\n\r\n this.onLink = (result, focusTrackerProxy) => linkerService.createModal(result, focusTrackerProxy);\r\n }\r\n\r\n $onChanges() {\r\n this.editorContent = this.content === undefined || this.content === null ? \"\" : this.content;\r\n this.editorPlaceholder = this.placeholder === undefined ? \"\" : this.placeholder;\r\n }\r\n}\r\n\r\nReactEditorAdapterController.$inject = [\"ActiveToolbarCoordinator\", \"$scope\", \"linkerService\"];\r\n","import { Component, Context, createRef, ReactElement, RefObject } from \"react\";\r\nimport { BoundaryContext, IBoundaryContext } from \"@pjs/core-ui\";\r\nimport { BaseEditor } from \"../base-editor/BaseEditor.component\";\r\nimport { IEditorFactoryConfig } from \"../editor-factories/interfaces/IEditorFactoryConfig\";\r\nimport { multiLineFactory } from \"../editor-factories/MultiLineFactory.function\";\r\nimport { compactMultiLineParser } from \"../html-parsers/CompactMultiLineParser.const.\";\r\nimport { compactToolbarPreset } from \"../toolbar-items/presets/Compact\";\r\nimport { autoEnable } from \"../behaviours/auto-enable/AutoEnable.function\";\r\nimport { persistentEditorToolbar } from \"../behaviours/persistent-editor-toolbar/PersistentEditorToolbar.function\";\r\nimport { displayShortcuts } from \"../behaviours/display-shortcuts/functions/DisplayShortcuts.function\";\r\nimport { CompactMultiLineEditorProps } from \"../compact-multi-line-editor/types/CompactMultiLineEditorProps\";\r\nimport \"../../styles/attached-editor.css\";\r\nimport \"../../styles/persistent-editor.css\";\r\n\r\nexport class PersistentCompactMultiLineEditor extends Component {\r\n public static contextType: Context = BoundaryContext;\r\n private readonly _toolbarRef: RefObject;\r\n private readonly _config: IEditorFactoryConfig;\r\n\r\n constructor(props: CompactMultiLineEditorProps, context: IBoundaryContext) {\r\n super(props);\r\n this._toolbarRef = createRef();\r\n\r\n this._config = {\r\n behaviours: [autoEnable, persistentEditorToolbar, displayShortcuts],\r\n boundaryElement: context.element,\r\n parser: compactMultiLineParser,\r\n placeholder: this.props.placeholder,\r\n pluginOverrides: { linker: { onLink: this.props.onLink } },\r\n toolbarItems: compactToolbarPreset\r\n };\r\n }\r\n\r\n public render(): ReactElement {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import { PersistentCompactMultiLineEditorWithBoundary } from \"@pjs/rich-text\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\r\n \"persistentCompactMultiLineEditor\",\r\n react2angular(PersistentCompactMultiLineEditorWithBoundary, [\r\n \"className\",\r\n \"content\",\r\n \"dataHook\",\r\n \"ariaLabel\",\r\n \"ariaLabelledBy\",\r\n \"onChange\",\r\n \"onToolbarDisplayChange\",\r\n \"placeholder\",\r\n \"autoFocus\",\r\n \"onLink\"\r\n ])\r\n);\r\n","import { ComponentType, FunctionComponent } from \"react\";\r\nimport { BoundaryBridge } from \"@pjs/core-ui\";\r\nimport { WithLabelAndLabelledBy } from \"../../types/WithLabelAndLabelledBy\";\r\nimport { CompactMultiLineEditorProps } from \"../compact-multi-line-editor/types/CompactMultiLineEditorProps\";\r\nimport { PersistentCompactMultiLineEditor } from \"./PersistentCompactMultiLineEditor.component\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst EditorWithLabelAndLabelledBy = PersistentCompactMultiLineEditor as ComponentType>;\r\n\r\nexport const PersistentCompactMultiLineEditorWithBoundary: FunctionComponent = (props) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { reactEditorAdapterBindings } from \"../reactEditorAdapter/ReactEditorAdapterBindings.const\";\r\nimport { ReactEditorAdapterController } from \"../reactEditorAdapter/ReactEditorAdapterController\";\r\nimport \"../react2angular/persistentCompactMultiLineEditor\";\r\nimport template from \"./persistent-compact-rich-text-editor.html\";\r\n\r\nexport const persistentCompactRichTextEditorDefinition = {\r\n bindings: {\r\n autoFocus: \"<\",\r\n ...reactEditorAdapterBindings\r\n },\r\n controller: ReactEditorAdapterController,\r\n name: \"persistentCompactRichTextEditor\",\r\n template: template\r\n};\r\n\r\nangularAMD.component(persistentCompactRichTextEditorDefinition.name, persistentCompactRichTextEditorDefinition);\r\n","if (typeof Object.assign !== \"function\") {\r\n Object.defineProperty(Object, \"assign\", {\r\n value: function assign(target, varArgs) {\r\n \"use strict\";\r\n if (target === null || target === undefined) {\r\n throw new TypeError(\"Cannot convert undefined or null to object\");\r\n }\r\n\r\n var to = Object(target);\r\n\r\n for (var index = 1; index < arguments.length; index++) {\r\n var nextSource = arguments[index];\r\n\r\n if (nextSource !== null && nextSource !== undefined) {\r\n for (var nextKey in nextSource) {\r\n // Avoid bugs when hasOwnProperty is shadowed\r\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n return to;\r\n },\r\n writable: true,\r\n configurable: true\r\n });\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\n\r\nangularAMD.service(\"PostService\", PostService);\r\nPostService.$inject = [\"$q\", \"dataManagerService\"];\r\n\r\nfunction PostService($q, dataManagerService) {\r\n this.$q = $q;\r\n this.dataManagerService = dataManagerService;\r\n}\r\n\r\n/**\r\n * @param {String} assetId\r\n * @return {Promise.|null}\r\n */\r\nPostService.prototype.updateLegacyPostFromId = function (assetId) {\r\n var manager = this.dataManagerService.getDto(assetId);\r\n return manager !== null ? this.updateLegacyPost(manager) : this.$q.reject();\r\n};\r\n\r\n/**\r\n * @param {Object} manager\r\n * @return {Promise.}\r\n */\r\nPostService.prototype.updateLegacyPost = function (manager) {\r\n if (manager.data.is_saved) {\r\n return this.$q.when(manager);\r\n }\r\n\r\n var imageAssetOption = manager.data.AssetOptions.find(function (x) {\r\n return x.Key === \"BackgroundImageAssetId\";\r\n });\r\n var postBannerSection = this.getTitleBannerSection(manager.data);\r\n\r\n if (imageAssetOption !== void 0 && postBannerSection === null) {\r\n return manager.savePostToServer(manager.AssetId).then(function (data) {\r\n return data.promises.then(function (responses) {\r\n manager.data = responses[0].data.Asset;\r\n manager.removeFromStorage();\r\n return manager;\r\n });\r\n });\r\n }\r\n\r\n return this.$q.when(manager);\r\n};\r\n\r\n/**\r\n * @param {Object} assetDto\r\n * @return {Object || null}\r\n */\r\nPostService.prototype.getTitleBannerSection = function (assetDto) {\r\n return assetDto.Sections.find(this._findPostBanner.bind(this)) || null;\r\n};\r\n\r\n/**\r\n * @param {Object} section\r\n * @return {Object}\r\n * @private\r\n */\r\nPostService.prototype._findPostBanner = function (section) {\r\n if (\r\n section.SectionType === \"ContentSectionHero\" &&\r\n section.SectionOptions.some(function (x) {\r\n return x.Key === \"titleBanner\";\r\n })\r\n ) {\r\n return section;\r\n }\r\n\r\n if (section.Sections) {\r\n return section.Sections.find(this._findPostBanner.bind(this));\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport { PostService };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ButtonClass, SimpleTextDialogContent, DialogSize, launchDialog, withStaticDialogComponent } from \"@pjs/core-ui\";\r\nimport \"../builder/dataManager/dataManagerService\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../modal/services/modal\";\r\nimport { REDIRECT_BLOCKING_PURPOSES } from \"../constants/redirectBlockingPurposes.constants\";\r\n\r\nangularAMD.factory(\"preventRedirect\", [\r\n \"$rootScope\",\r\n \"$window\",\r\n \"baseUrlsFactory\",\r\n \"dataManagerService\",\r\n \"multiLanguageService\",\r\n \"modal\",\r\n function ($rootScope, $window, baseUrlsFactory, dataManagerService, multiLanguageService, modal) {\r\n const customResolvers = [];\r\n\r\n var WindowNavigationHandler = (function () {\r\n function WindowNavigationHandler() {\r\n this.onWindowUnload = null;\r\n this.timeout = null;\r\n }\r\n\r\n WindowNavigationHandler.prototype.bind = function (msg, onPrompt, postPrompt) {\r\n this.onWindowUnload = function (e) {\r\n if (postPrompt) {\r\n this.timeout = setTimeout(postPrompt, 0); //Async, will not run until the main thread can resume (Browser modal blocks thread).\r\n }\r\n\r\n //If there is a onPrompt callback and it returns true, DONT return a value.\r\n if (!onPrompt || !onPrompt()) {\r\n e.returnValue = msg; //Support for odd versions of Chrome.\r\n return msg;\r\n }\r\n }.bind(this);\r\n\r\n window.addEventListener(\"beforeunload\", this.onWindowUnload);\r\n if (postPrompt) {\r\n //Don't care about removing 'unload' listener. If that fires Browser is removing everything about the current page.\r\n window.addEventListener(\r\n \"unload \",\r\n function () {\r\n clearTimeout(this.timeout);\r\n }.bind(this)\r\n );\r\n }\r\n\r\n return this;\r\n };\r\n\r\n WindowNavigationHandler.prototype.unbind = function () {\r\n window.removeEventListener(\"beforeunload\", this.onWindowUnload);\r\n return this;\r\n };\r\n\r\n return WindowNavigationHandler;\r\n })();\r\n\r\n return {\r\n asset_id: null,\r\n allow_redirect: null,\r\n doesExist: false,\r\n redirectNext: null,\r\n saveThenRedirect: false,\r\n checkForUnsavedChanges: true,\r\n unwatch: null,\r\n _windowNavigationHandler: null,\r\n\r\n setCheckForUnsavedChanges: function (shouldCheck) {\r\n this.checkForUnsavedChanges = shouldCheck;\r\n },\r\n\r\n addCustomResolver: (resolver) => {\r\n customResolvers.push(resolver);\r\n },\r\n\r\n removeCustomResolver: (resolver) => {\r\n const index = customResolvers.indexOf(resolver);\r\n if (index !== -1) {\r\n customResolvers.splice(index, 1);\r\n }\r\n },\r\n\r\n getLogoutMessage: (can_log_out) => {\r\n const appName = multiLanguageService.getString(`app_name.${$rootScope.appName.toLowerCase()}`);\r\n\r\n for (const resolver of customResolvers) {\r\n if (resolver.redirectionIsBlocked()) {\r\n return resolver.getLogoutMessage(appName);\r\n }\r\n }\r\n\r\n if (can_log_out) {\r\n return {\r\n title: multiLanguageService.getString(\"logout.title\"),\r\n message: multiLanguageService.getString(\"logout.message\", { app: appName }),\r\n saveAndContinueBtn: multiLanguageService.getString(\"buttons.logout\"),\r\n continueBtn: \"\"\r\n };\r\n } else {\r\n return {\r\n title: multiLanguageService.getString(\"logout.title_no_save\"),\r\n message: multiLanguageService.getString(\"logout.message_no_save\", { app: appName }),\r\n saveAndContinueBtn: multiLanguageService.getString(\"buttons.save_and_logout\"),\r\n continueBtn: multiLanguageService.getString(\"buttons.logout_without_saving\")\r\n };\r\n }\r\n },\r\n\r\n canGoNextPage: function (next, current, saveEvt) {\r\n var regex = {\r\n find_viewer: /(\\/viewer)/i,\r\n find_webfolio: /(\\/webfolio)/i,\r\n find_workbook: /(\\/workbook)/i,\r\n find_template: /(\\/template)/i,\r\n find_id: new RegExp(\"(\" + this.asset_id + \")\", \"g\")\r\n };\r\n\r\n var goingToViewer = regex.find_viewer.test(next);\r\n var goingFromViewer = regex.find_viewer.test(current);\r\n var next_is_valid = goingToViewer || regex.find_webfolio.test(next) || regex.find_workbook.test(next);\r\n var current_is_template = regex.find_template.test(current);\r\n var is_same_page = regex.find_id.test(next);\r\n\r\n if (this.isSaved(saveEvt) === true) {\r\n return true;\r\n } else {\r\n if (!this.allow_redirect) {\r\n if (is_same_page && goingToViewer) {\r\n if (goingFromViewer) {\r\n return true;\r\n } else {\r\n this.saveThenRedirect = true;\r\n return false;\r\n }\r\n }\r\n return next_is_valid && is_same_page && (!current_is_template || (current_is_template && is_same_page));\r\n } else {\r\n return true;\r\n }\r\n }\r\n },\r\n\r\n isSaved: function (saveEvt) {\r\n if (saveEvt === \"saveFile\") {\r\n return $rootScope.checkIfFileIsSaved(this.asset_id);\r\n } else if (saveEvt === \"saveWorkbook\") {\r\n if (dataManagerService.workbookManagerObject) {\r\n return dataManagerService.workbookManagerObject.checkForIsSavedAnywhereInWorkbook(this.asset_id);\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return dataManagerService.checkIfSaved(this.asset_id);\r\n }\r\n },\r\n\r\n checkIfCanLogOut: function () {\r\n if (this.checkForUnsavedChanges && this.asset_id !== null && this.isSaved() === false) {\r\n return false;\r\n }\r\n\r\n return customResolvers.every((resolver) => !resolver.redirectionIsBlocked());\r\n },\r\n\r\n resolversAreBlocking: function () {\r\n return customResolvers.some((resolver) => resolver.redirectionIsBlocked());\r\n },\r\n\r\n /**\r\n * @return {Array}\r\n */\r\n whatIsBlocking: function () {\r\n const blockingPurposes = customResolvers.filter((r) => r.redirectionIsBlocked()).map((r) => r.purpose);\r\n\r\n if (this.checkForUnsavedChanges && !this.isSaved()) {\r\n blockingPurposes.push(REDIRECT_BLOCKING_PURPOSES.ASSET);\r\n }\r\n\r\n return blockingPurposes;\r\n },\r\n\r\n allowRedirect: function (boolean) {\r\n this.allow_redirect = boolean;\r\n },\r\n\r\n continue: function (opts) {\r\n opts.$off();\r\n this._windowNavigationHandler.unbind();\r\n dataManagerService.cleanupStorageOfAssetId(this.asset_id);\r\n\r\n this.asset_id = null;\r\n\r\n for (const resolver of customResolvers) {\r\n resolver.cleanUp();\r\n }\r\n\r\n $window.location.href = this.redirectNext;\r\n },\r\n\r\n saveAndContinue: function (opts) {\r\n this._windowNavigationHandler.unbind();\r\n $rootScope.$broadcast(opts.saveEvt, { afterSaveAction: { type: \"urlChange\", url: this.redirectNext } });\r\n },\r\n\r\n stay: function () {\r\n $rootScope.appIsLoaded = true; // some redirects start the spinner off... on cancel show the page\r\n },\r\n\r\n showLegacyModal: function (opts, resolver) {\r\n const modalContent = resolver.getLocationChangeMessage();\r\n const isolate_scope = $rootScope.$new();\r\n\r\n isolate_scope.title = modalContent.title;\r\n isolate_scope.message = modalContent.message;\r\n isolate_scope.continueBtn = modalContent.continueBtn;\r\n isolate_scope.cancelRedirectBtn = modalContent.cancelRedirectBtn;\r\n\r\n isolate_scope.continue = () => {\r\n this.continue(opts);\r\n };\r\n\r\n isolate_scope.stay = () => {\r\n this.stay();\r\n };\r\n\r\n isolate_scope.onClose = () => {\r\n this.doesExist = false;\r\n isolate_scope.$destroy();\r\n };\r\n\r\n modal.newModal({\r\n scope: isolate_scope,\r\n templateUrl: `${baseUrlsFactory.shared_component_base_url}preventRedirect/templates/warning-modal-alt.lazy.html`\r\n });\r\n },\r\n\r\n showModal: function (opts) {\r\n if (this.doesExist) {\r\n return;\r\n }\r\n\r\n const cachedTrigger = document.activeElement;\r\n this.doesExist = true;\r\n\r\n if (customResolvers.length > 0) {\r\n for (const resolver of customResolvers) {\r\n if (resolver.redirectionIsBlocked()) {\r\n this.showLegacyModal(opts, resolver);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n const title = multiLanguageService.getString(\"labels.pop_ups.unsaved_changes\");\r\n const message = multiLanguageService.getString(\"labels.pop_ups.unsaved_changes_message\");\r\n const continueButtonLabel = multiLanguageService.getString(\"buttons.discard_changes\");\r\n const saveAndContinueBtnLabel = multiLanguageService.getString(\"buttons.save_and_exit\");\r\n\r\n launchDialog({\r\n size: DialogSize.Small,\r\n initialModel: {\r\n message: message\r\n },\r\n dismissAction: (_, instance) => {\r\n instance.close(cachedTrigger);\r\n this.stay();\r\n this.doesExist = false;\r\n $rootScope.$applyAsync();\r\n },\r\n component: withStaticDialogComponent(SimpleTextDialogContent),\r\n title: title,\r\n actions: [\r\n {\r\n label: multiLanguageService.getString(\"buttons.cancel\"),\r\n ariaLabel: multiLanguageService.getString(\"buttons.titles.cancel_and_close\"),\r\n buttonClass: ButtonClass.Outlined,\r\n dataHook: \"modal-cancel-btn\",\r\n disabled: () => false,\r\n action: (_, instance) => {\r\n this.stay();\r\n this.doesExist = false;\r\n instance.close(cachedTrigger);\r\n $rootScope.$applyAsync();\r\n }\r\n },\r\n {\r\n label: continueButtonLabel,\r\n ariaLabel: continueButtonLabel,\r\n buttonClass: ButtonClass.Outlined,\r\n dataHook: \"modal-continue-btn\",\r\n disabled: () => false,\r\n action: (_, instance) => {\r\n instance.close(cachedTrigger);\r\n this.continue(opts);\r\n this.doesExist = false;\r\n $rootScope.$applyAsync();\r\n }\r\n },\r\n {\r\n label: saveAndContinueBtnLabel,\r\n ariaLabel: saveAndContinueBtnLabel,\r\n buttonClass: ButtonClass.Contained,\r\n dataHook: \"modal-save-and-continue-btn\",\r\n disabled: () => false,\r\n action: (_, instance) => {\r\n instance.close(cachedTrigger);\r\n this.saveAndContinue(opts);\r\n this.doesExist = false;\r\n $rootScope.$applyAsync();\r\n }\r\n }\r\n ]\r\n });\r\n },\r\n\r\n watchLocationChange: function (asset_id, saveEvt, canSave = true) {\r\n this.allow_redirect = false;\r\n this.saveThenRedirect = false;\r\n\r\n if (this.asset_id) {\r\n return this.unwatch;\r\n }\r\n\r\n this.asset_id = asset_id;\r\n\r\n this._windowNavigationHandler = new WindowNavigationHandler().bind(\r\n multiLanguageService.getString(\"exit_without_saving.browser_message\"),\r\n () => {\r\n return this.allow_redirect === true || ((!canSave || this.isSaved(saveEvt)) && !this.resolversAreBlocking());\r\n }\r\n );\r\n\r\n const $off = $rootScope.$on(\"$locationChangeStart\", (event, next, current) => {\r\n if (this.allow_redirect) {\r\n this.unwatch();\r\n return;\r\n }\r\n\r\n const resolverResults = [];\r\n if (this.checkForUnsavedChanges) {\r\n resolverResults.push({ allowRedirect: this.canGoNextPage(next, current, saveEvt), removeWatcher: true });\r\n }\r\n\r\n for (const resolver of customResolvers) {\r\n resolverResults.push(resolver.onLocationChange(next, current));\r\n }\r\n\r\n if (!resolverResults.every((x) => x.allowRedirect)) {\r\n event.preventDefault();\r\n this.redirectNext = next;\r\n $rootScope.appIsLoaded = true;\r\n\r\n if (this.saveThenRedirect) {\r\n this.saveAndContinue({ saveEvt: saveEvt });\r\n } else {\r\n this.showModal({ $off: $off, saveEvt: saveEvt });\r\n }\r\n return;\r\n }\r\n\r\n if (resolverResults.every((x) => x.removeWatcher)) {\r\n this.unwatch();\r\n }\r\n });\r\n\r\n this.unwatch = () => {\r\n this._windowNavigationHandler.unbind();\r\n $off();\r\n allowRedirectOff();\r\n this.asset_id = null;\r\n };\r\n\r\n var allowRedirectOff = $rootScope.$on(\"allowRedirect\", () => {\r\n this.allow_redirect = true;\r\n $off();\r\n allowRedirectOff();\r\n });\r\n\r\n return this.unwatch;\r\n },\r\n\r\n reset: function () {\r\n if (this._windowNavigationHandler !== null) {\r\n this._windowNavigationHandler.unbind();\r\n }\r\n\r\n if (this.unwatch !== null) {\r\n this.unwatch();\r\n }\r\n\r\n this.asset_id = null;\r\n customResolvers.forEach((r) => r.cleanUp());\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/baseUrlsFactory\";\r\n\r\nangularAMD.directive(\"profileImgComp\", [\r\n \"$sce\",\r\n \"baseUrlsFactory\",\r\n function ($sce, baseUrlsFactory) {\r\n return {\r\n restrict: \"A\",\r\n link: function (scope, el, attrs) {\r\n var unbindWatcher = scope.$watch(\r\n function () {\r\n return attrs.profileId;\r\n },\r\n function () {\r\n if (attrs.profileId) {\r\n if (attrs.profileId.indexOf(\"=\") === -1) {\r\n // tslint:disable-next-line:no-unsafe-src-attribute\r\n el.attr(\"src\", baseUrlsFactory.api_base_url + \"file/TransmitProfilePic?id=\" + attrs.profileId + \"&x=\" + attrs.size + \"&y=\" + attrs.size + \"&shortSideScale=True\");\r\n if (!attrs.keepactive) {\r\n unbindWatcher();\r\n }\r\n } else {\r\n // tslint:disable-next-line:no-unsafe-src-attribute\r\n el.attr(\"src\", attrs.profileId);\r\n if (!attrs.keepactive) {\r\n unbindWatcher();\r\n }\r\n }\r\n } else {\r\n var urlString = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"profileImage/image/no_profile.svg\").toString();\r\n // tslint:disable-next-line:no-unsafe-src-attribute\r\n el.attr(\"src\", urlString);\r\n }\r\n }\r\n );\r\n }\r\n };\r\n }\r\n]);\r\n","import { tracker } from \"@pjs/analytics\";\r\n\r\nexport class ProgramWorkspaceStatusLinkService {\r\n constructor(statusToolbarFactory, user, $http, baseUrlsFactory, $window, multiLanguageService) {\r\n this._userService = user;\r\n this._$http = $http;\r\n this._baseUrlsFactory = baseUrlsFactory;\r\n this._statusToolbarFactory = statusToolbarFactory;\r\n this._$window = $window;\r\n this._multiLanguageService = multiLanguageService;\r\n }\r\n\r\n getLink(templateResponseAssetRefId) {\r\n const userDto = this._userService.getDto();\r\n if (userDto === null || !userDto.EnableProgramReport) {\r\n return Promise.resolve({ link: \"\", reportAvailable: false });\r\n }\r\n\r\n return this._$http\r\n .get(`${this._baseUrlsFactory.api_base_url}Program/CheckIsProgramTemplateInAtlas?templateResponseRef=${templateResponseAssetRefId}`)\r\n .then((rsp) => ({ link: rsp.data.ProgramReportUrl, reportAvailable: rsp.data.ReportAvailable }));\r\n }\r\n\r\n createStatus(url) {\r\n const message = this._multiLanguageService.getString(\"program_workspace_status_link.message\");\r\n const linkText = this._multiLanguageService.getString(\"program_workspace_status_link.link_text\");\r\n const linkAriaText = this._multiLanguageService.getString(\"program_workspace_status_link.link_aria_text\");\r\n const a11yNotification = `${message} ${linkText}`;\r\n const statusDictionary = this._statusToolbarFactory.createStatusDictionary(message, a11yNotification);\r\n const linkOptions = {\r\n role: \"link\",\r\n ariaLabel: linkAriaText,\r\n onClick: () => {\r\n tracker.trackEvent(\"Asset viewer\", \"Click\", \"Program workspace feedback template link\");\r\n this._$window.open(url, \"_blank\", { popup: true });\r\n },\r\n text: linkText\r\n };\r\n return this._statusToolbarFactory.createStatus(statusDictionary, false, Infinity, null, null, \"\", \"\", [linkOptions], \"program-workspace-status-link\");\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ProgramWorkspaceStatusLinkService } from \"./programWorkspaceStatusLink.service\";\r\n\r\nfunction programWorkspaceStatusLinkProvider() {\r\n let implementation = ProgramWorkspaceStatusLinkService;\r\n this.replaceImplementation = function (newImplementation) {\r\n implementation = newImplementation;\r\n };\r\n\r\n this.$get = [\r\n \"User\",\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"StatusToolbarFactory\",\r\n \"$window\",\r\n \"multiLanguageService\",\r\n function programWorkspaceStatusLinkFactory(User, $http, baseUrlsFactory, StatusToolbarFactory, $window, multiLanguageService) {\r\n return new implementation(StatusToolbarFactory, User, $http, baseUrlsFactory, $window, multiLanguageService);\r\n }\r\n ];\r\n}\r\n\r\nangularAMD.provider(\"programWorkspaceStatusLinkService\", programWorkspaceStatusLinkProvider);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport template from \"./templates/progress-dots.html\";\r\n\r\nangularAMD.directive(\"progressDots\", [\r\n \"$sce\",\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n function ($sce, $http, baseUrlsFactory) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n stages: \"=\",\r\n currentIndex: \"=\",\r\n goToStage: \"&\",\r\n showIndicators: \"@\"\r\n },\r\n\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.indicators = $scope.showIndicators === \"true\";\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n if (scope.goToStage) {\r\n element.addClass(\"progress-dots--clickable\");\r\n }\r\n\r\n scope.allyTabs = function (e) {\r\n let index = scope.currentIndex;\r\n switch (e.key) {\r\n case \"ArrowLeft\":\r\n index--;\r\n break;\r\n case \"ArrowRight\":\r\n index++;\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n scope.moveStage(index);\r\n };\r\n\r\n scope.moveStage = function (index) {\r\n const maxLimit = Math.max(scope.stages.length - 1, 0);\r\n let newIndex = index;\r\n\r\n if (index < 0) {\r\n newIndex = 0;\r\n } else if (index > maxLimit) {\r\n newIndex = maxLimit;\r\n }\r\n\r\n if (newIndex !== scope.currentIndex) {\r\n scope.currentIndex = newIndex;\r\n scope.goToStage({ index: scope.currentIndex });\r\n }\r\n };\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
`;","\"use strict\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nvar puiAccordionContentDefinition = {\r\n require: {\r\n accordionPanel: \"^puiAccordionPanel\"\r\n },\r\n transclude: true,\r\n template:\r\n '
\\\r\n \\\r\n
',\r\n controller: PuiAccordionContent\r\n};\r\n\r\nPuiAccordionContent.$inject = [\"$element\"];\r\n\r\nfunction PuiAccordionContent($element) {\r\n this._$element = $element;\r\n this.expanded = false;\r\n this.id = null;\r\n}\r\n\r\nPuiAccordionContent.prototype.$onInit = function () {\r\n var accordionContentManager = new AccordionContentManager(this.setExpanded.bind(this));\r\n this.id = this.accordionPanel.setContentManager(accordionContentManager);\r\n};\r\n\r\nPuiAccordionContent.prototype.setExpanded = function (value) {\r\n this.expanded = value;\r\n};\r\n\r\nfunction AccordionContentManager(setExpanded) {\r\n this.setExpanded = setExpanded;\r\n}\r\n\r\nif (angularAMD.default !== null) {\r\n angularAMD.component(\"puiAccordionContent\", puiAccordionContentDefinition);\r\n}\r\n\r\nexport { puiAccordionContentDefinition };\r\n","\"use strict\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nvar puiAccordionHeaderDefinition = {\r\n require: {\r\n accordionPanel: \"^puiAccordionPanel\"\r\n },\r\n bindings: {\r\n headingLevel: \"<\",\r\n focus: \"<\",\r\n ariaDescribedById: \"@\"\r\n },\r\n transclude: {\r\n headerTitle: \"headerTitle\",\r\n headerContent: \"?headerContent\"\r\n },\r\n template:\r\n '
\\n' +\r\n ' \\n\" +\r\n \"
\",\r\n controller: PuiAccordionHeader\r\n};\r\n\r\nPuiAccordionHeader.$inject = [\"$element\"];\r\n\r\nfunction PuiAccordionHeader($element) {\r\n this.expanded = false;\r\n this.id = null;\r\n this._$element = $element;\r\n}\r\n\r\nPuiAccordionHeader.prototype.handleClick = function () {\r\n this.expanded = this.accordionPanel.toggleExpanded();\r\n};\r\n\r\nPuiAccordionHeader.prototype.$onInit = function () {\r\n var accordionHeaderManager = new AccordionHeaderManager(this.setExpanded.bind(this), this._$element.find(\"button\")[0]);\r\n this.id = this.accordionPanel.setHeaderManager(accordionHeaderManager);\r\n this.safeHeadingLevel = this.headingLevel ? this.headingLevel : 3;\r\n};\r\nPuiAccordionHeader.prototype.setExpanded = function (value) {\r\n this.expanded = value;\r\n};\r\n\r\nfunction AccordionHeaderManager(setExpanded, buttonElement) {\r\n this.setExpanded = setExpanded;\r\n this.buttonElement = buttonElement;\r\n}\r\n\r\nif (angularAMD.default !== null) {\r\n angularAMD.component(\"puiAccordionHeader\", puiAccordionHeaderDefinition);\r\n}\r\nexport { puiAccordionHeaderDefinition };\r\n","\"use strict\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nvar puiAccordionPanelComponentDefinition = {\r\n require: {\r\n _accordion: \"^puiAccordion\"\r\n },\r\n transclude: true,\r\n template: \"\",\r\n controller: PuiAccordionPanel\r\n};\r\n\r\nPuiAccordionPanel.$inject = [\"$scope\"];\r\n\r\nfunction PuiAccordionPanel($scope) {\r\n this._contentManager = null;\r\n this._headerManager = null;\r\n this._expanded = false;\r\n //TODO remove $scope.$id usage when PUI is moved to its own project repo and we can cleanly handle helpers\r\n this._id = $scope.$id.toString();\r\n}\r\n\r\nPuiAccordionPanel.prototype.$postLink = function () {\r\n var accordionPanelManager = new AccordionPanelManager(this.setExpanded.bind(this), this.getExpanded.bind(this), this.getButton.bind(this));\r\n this._accordion.setPanelManager(this._id, accordionPanelManager);\r\n};\r\n\r\nPuiAccordionPanel.prototype.setExpanded = function (value) {\r\n this._expanded = value;\r\n this._contentManager.setExpanded(this._expanded);\r\n this._headerManager.setExpanded(this._expanded);\r\n};\r\n\r\nPuiAccordionPanel.prototype.toggleExpanded = function () {\r\n return this._accordion.toggleExpanded(this._id);\r\n};\r\n\r\nPuiAccordionPanel.prototype.getExpanded = function () {\r\n return this._expanded;\r\n};\r\n\r\nPuiAccordionPanel.prototype.getButton = function () {\r\n return this._headerManager.buttonElement;\r\n};\r\n\r\nPuiAccordionPanel.prototype.setHeaderManager = function (headerManager) {\r\n this._headerManager = headerManager;\r\n return this._id;\r\n};\r\n\r\nPuiAccordionPanel.prototype.setContentManager = function (contentManager) {\r\n this._contentManager = contentManager;\r\n return this._id;\r\n};\r\n\r\nPuiAccordionPanel.prototype.handleClick = function () {\r\n this._accordion.handleClick(this._id);\r\n};\r\n\r\nPuiAccordionPanel.prototype.$onDestroy = function () {\r\n this._accordion.removePanelManager(this._id);\r\n};\r\n\r\nfunction AccordionPanelManager(setExpanded, getExpanded, getButton) {\r\n this.setExpanded = setExpanded;\r\n this.getExpanded = getExpanded;\r\n this.getButton = getButton;\r\n}\r\n\r\nif (angularAMD.default !== null) {\r\n angularAMD.component(\"puiAccordionPanel\", puiAccordionPanelComponentDefinition);\r\n}\r\n\r\nexport { puiAccordionPanelComponentDefinition };\r\n","\"use strict\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nvar puiAccordionComponentDefinition = {\r\n bindings: {\r\n multiple: \"<\",\r\n defaultClosed: \"<\"\r\n },\r\n transclude: true,\r\n template: '
\\\r\n \\\r\n
',\r\n controller: PuiAccordionComponent\r\n};\r\n\r\nPuiAccordionComponent.$inject = [\"$element\"];\r\n\r\nfunction PuiAccordionComponent($element) {\r\n this._$element = $element;\r\n\r\n this._accordions = [];\r\n\r\n $element[0].addEventListener(\r\n \"keydown\",\r\n function (event) {\r\n if (event.target.classList.contains(\"pui-accordion__trigger\")) {\r\n this._handleArrowKeys(event);\r\n }\r\n this._handleHomeEndKeys(event);\r\n }.bind(this)\r\n );\r\n}\r\n\r\nPuiAccordionComponent.prototype._handleArrowKeys = function (event) {\r\n var arrowPos = 0;\r\n if (event.key === \"ArrowUp\") {\r\n arrowPos = this._findButtonPosition(event.target);\r\n\r\n if (this._accordions[arrowPos - 1] !== undefined) {\r\n this._accordions[arrowPos - 1].panelManager.getButton().focus();\r\n }\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n } else if (event.key === \"ArrowDown\") {\r\n arrowPos = this._findButtonPosition(event.target);\r\n if (this._accordions[arrowPos + 1] !== undefined) {\r\n this._accordions[arrowPos + 1].panelManager.getButton().focus();\r\n }\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n};\r\n\r\nPuiAccordionComponent.prototype._handleHomeEndKeys = function (event) {\r\n if (event.key === \"Home\") {\r\n this._accordions[0].panelManager.getButton().focus();\r\n event.preventDefault();\r\n }\r\n if (event.key === \"End\") {\r\n this._accordions[this._accordions.length - 1].panelManager.getButton().focus();\r\n event.preventDefault();\r\n }\r\n};\r\n\r\nPuiAccordionComponent.prototype._findButtonPosition = function (target) {\r\n var buttonElement = null;\r\n for (var i = 0, ii = this._accordions.length; i < ii; i++) {\r\n buttonElement = this._accordions[i].panelManager.getButton();\r\n if (buttonElement === target || target.contains(buttonElement)) {\r\n return i;\r\n }\r\n }\r\n throw new Error(\"Could not find Accordion button position\");\r\n};\r\n\r\nPuiAccordionComponent.prototype._getTriggers = function () {\r\n return this._$element[0].querySelectorAll(\"dl > ng-transclude > pui-accordion-panel:not(> pui-accordion)\");\r\n};\r\n\r\nPuiAccordionComponent.prototype.setPanelManager = function (id, panelManager) {\r\n this._accordions.push({\r\n id: id,\r\n panelManager: panelManager\r\n });\r\n\r\n if (!this.defaultClosed && this._accordions.length === 1) {\r\n panelManager.setExpanded(true);\r\n }\r\n};\r\n\r\nPuiAccordionComponent.prototype.toggleExpanded = function (id) {\r\n var newState = false;\r\n\r\n for (var i = 0, ii = this._accordions.length; i < ii; i++) {\r\n if (id !== this._accordions[i].id) {\r\n if (!this.multiple) {\r\n this._accordions[i].panelManager.setExpanded(false);\r\n }\r\n } else {\r\n newState = !this._accordions[i].panelManager.getExpanded();\r\n this._accordions[i].panelManager.setExpanded(newState);\r\n }\r\n }\r\n return newState;\r\n};\r\n\r\nPuiAccordionComponent.prototype.removePanelManager = function (id, panelManager) {\r\n for (var i = 0, ii = this._accordions.length; i < ii; i++) {\r\n if (id === this._accordions[i].id) {\r\n this._accordions.splice(i, 1);\r\n return;\r\n }\r\n }\r\n};\r\n\r\nif (angularAMD.default !== null) {\r\n angularAMD.component(\"puiAccordion\", puiAccordionComponentDefinition);\r\n}\r\n\r\nexport { puiAccordionComponentDefinition };\r\n","import { AssetIcon } from \"@pjs/asset-core\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"assetIcon\", react2angular(AssetIcon, [\"mainType\", \"subType\"]));\r\n","import { Button } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"buttonComponent\", react2angular(Button, [\"className\", \"onClick\", \"children\", \"ariaLabel\", \"disabled\", \"dataHook\", \"type\", \"ariaDescribedBy\", \"autoFocus\", \"ariaDisabled\"]));\r\n","import { Checkbox } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"checkbox\", react2angular(Checkbox, [\"children\", \"name\", \"value\", \"isChecked\", \"isDisabled\", \"isRequired\", \"onChange\"]));\r\n","import { CollapsibleInformation } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"collapsibleInformation\", react2angular(CollapsibleInformation, [\"header\", \"content\", \"isContained\", \"isOpen\", \"onToggle\"]));\r\n","import { DismissableHtmlNotice } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"dismissableHtmlNotice\", react2angular(DismissableHtmlNotice, [\"type\", \"content\", \"onDismiss\", \"ariaLabel\"]));\r\n","import { HtmlNotice } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"htmlNotice\", react2angular(HtmlNotice, [\"type\", \"content\", \"ariaLabel\"]));\r\n","import { Icon } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"icon\", react2angular(Icon, [\"fill\", \"source\", \"className\"]));\r\n","import { ProgressVisualisation } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\r\n \"progressVisualisation\",\r\n react2angular(ProgressVisualisation, [\"ariaLabel\", \"count\", \"duration\", \"lineWidth\", \"progressColour\", \"showPercentage\", \"size\", \"strokeColour\", \"total\"])\r\n);\r\n","import { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { RichTextView } from \"@pjs/rich-text\";\r\n\r\nangularAMD.component(\"richTextView\", react2angular(RichTextView, [\"className\", \"content\", \"dataHook\"]));\r\n","import { ScopedSearch, WithBoundaryBridge } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\r\n \"scopedSearch\",\r\n react2angular(WithBoundaryBridge(ScopedSearch), [\r\n \"autoFocus\",\r\n \"onSearch\",\r\n \"onChange\",\r\n \"filterModel\",\r\n \"onFilterChange\",\r\n \"filterOptions\",\r\n \"searchString\",\r\n \"scopedSearchLabel\",\r\n \"searchButtonLabel\",\r\n \"searchInputLabel\",\r\n \"clearSearchLabel\",\r\n \"dataHooks\"\r\n ])\r\n);\r\n","import { Switch } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"switch\", react2angular(Switch, [\"label\", \"isChecked\", \"isDisabled\", \"isRequired\", \"onChange\"]));\r\n","export function withDigest(callback, scope) {\r\n return (...args) => {\r\n callback(...args);\r\n /**\r\n * Safety check for quirky React integrations.\r\n * $apply should normally be safe, however if a component triggered a callback from a lifecycle event within a digest (did mount, did update), then 💥\r\n */\r\n if (scope.$$phase === null && scope.$root.$$phase === null) {\r\n scope.$apply();\r\n return;\r\n }\r\n\r\n scope.$evalAsync();\r\n };\r\n}\r\n","export function getEditorToolbarHeight(toolbarContainer) {\r\n if (toolbarContainer.children.length === 0) {\r\n return toolbarContainer.offsetHeight;\r\n }\r\n\r\n const toolbar = toolbarContainer.children[0];\r\n\r\n const display = toolbar.style.display;\r\n const position = toolbar.style.position;\r\n\r\n toolbar.style.display = \"\";\r\n toolbar.style.position = \"static\";\r\n const toolbarHeight = parseFloat(getComputedStyle(toolbar).height);\r\n toolbar.style.display = display;\r\n toolbar.style.position = position;\r\n\r\n return toolbarHeight;\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { getEditorToolbarHeight } from \"./GetEditorToolbarHeight.function\";\r\n\r\nexport class ToolbarLayoutController {\r\n displayToolbarWithAnimation(toolbarContainer, toolbarHeight) {\r\n const toolbarAnimation = [{ height: 0 }, { height: `${toolbarHeight}px` }];\r\n\r\n toolbarContainer.style.overflow = \"hidden\";\r\n\r\n const animation = toolbarContainer.animate(toolbarAnimation, {\r\n duration: 125,\r\n easing: \"ease-in\"\r\n });\r\n\r\n animation.finished.finally(() => {\r\n toolbarContainer.style.overflow = \"\";\r\n toolbarContainer.style.height = `${toolbarHeight}px`;\r\n });\r\n }\r\n\r\n hideFloating(toolbarContainer) {\r\n toolbarContainer.style.top = \"0\";\r\n\r\n for (const toolbar of toolbarContainer.children) {\r\n toolbar.style.bottom = \"\";\r\n }\r\n }\r\n\r\n displayToolbar(toolbarContainer, toolbarHeight) {\r\n toolbarContainer.style.height = `${toolbarHeight}px`;\r\n }\r\n\r\n hideToolbar(toolbarContainer) {\r\n toolbarContainer.style.transition = \"\";\r\n toolbarContainer.style.overflow = \"\";\r\n toolbarContainer.style.height = \"\";\r\n }\r\n\r\n applyFloating(toolbarContainer) {\r\n const toolbarBorderWidth = getComputedStyle(toolbarContainer.firstElementChild).borderBottomWidth;\r\n const position = getComputedStyle(toolbarContainer).position;\r\n\r\n toolbarContainer.style.height = \"0\";\r\n\r\n if (position === \"sticky\") {\r\n const toolbarHeight = getEditorToolbarHeight(toolbarContainer);\r\n toolbarContainer.style.top = `calc(${toolbarHeight}px - ${toolbarBorderWidth})`;\r\n }\r\n\r\n for (const toolbar of toolbarContainer.children) {\r\n toolbar.style.position = \"absolute\";\r\n toolbar.style.bottom = `calc(100% - ${toolbarBorderWidth})`;\r\n toolbar.style.width = \"100%\";\r\n }\r\n }\r\n\r\n removePositionSticky(toolbarContainer) {\r\n toolbarContainer.style.position = \"relative\";\r\n }\r\n}\r\n\r\nToolbarLayoutController.$inject = [];\r\nangularAMD.service(\"ToolbarLayoutController\", ToolbarLayoutController);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ToolbarDisplayState } from \"@pjs/rich-text\";\r\nimport { isAndroid, isIphoneLike, isIpadLike } from \"@pjs/utilities\";\r\nimport \"../utilities/debounce.service.js\";\r\nimport \"../statusToolbar/services/statusToolbar.service\";\r\nimport \"./ToolbarLayoutController\";\r\nimport { getClosestDropdownContainer } from \"../utilities/getClosestDropdownContainer.function\";\r\nimport { getEditorToolbarHeight } from \"./GetEditorToolbarHeight.function\";\r\n\r\nconst isMobile = isAndroid || isIphoneLike || isIpadLike;\r\n\r\nexport class ActiveToolbarCoordinator {\r\n constructor(statusToolbar, debounce, toolbarLayoutController) {\r\n this.statusToolbar = statusToolbar;\r\n this._toolbarLayoutController = toolbarLayoutController;\r\n this._activeToolbarCount = 0;\r\n this.debouncedStatusToggle = debounce.event(this._toggleStatus, this, 100);\r\n this._hiddenDebounce = debounce.event(this._hideAnimatedToolbarContainer, this, 250);\r\n this._activeAnimatedToolbar = null;\r\n }\r\n\r\n _toggleStatus() {\r\n if (this._activeToolbarCount > 0) {\r\n this.statusToolbar.hide();\r\n } else {\r\n this.statusToolbar.show();\r\n }\r\n }\r\n\r\n _hideAnimatedToolbarContainer() {\r\n if (this._activeAnimatedToolbar === null) {\r\n return;\r\n }\r\n\r\n this._activeAnimatedToolbar.style.height = \"0\";\r\n this._activeAnimatedToolbar = null;\r\n }\r\n\r\n _willToolbarExceedBounds(toolbarContainer, toolbarHeight) {\r\n const closestDropdown = getClosestDropdownContainer(toolbarContainer);\r\n const previousToolbarPosition = toolbarContainer.style.position;\r\n\r\n toolbarContainer.style.position = \"static\";\r\n\r\n if (closestDropdown === null) {\r\n return false;\r\n }\r\n\r\n const dropdownContainerY = closestDropdown.getBoundingClientRect().y;\r\n const toolbarY = toolbarContainer.getBoundingClientRect().y;\r\n\r\n toolbarContainer.style.position = previousToolbarPosition;\r\n\r\n return toolbarY - dropdownContainerY + closestDropdown.scrollTop - toolbarHeight < 0;\r\n }\r\n\r\n _manageFloating(displayState, toolbarContainer) {\r\n if (toolbarContainer === null) {\r\n return;\r\n }\r\n\r\n if (isMobile) {\r\n this._toolbarLayoutController.removePositionSticky(toolbarContainer);\r\n }\r\n\r\n if (displayState === ToolbarDisplayState.Shown) {\r\n const toolbarHeight = getEditorToolbarHeight(toolbarContainer);\r\n\r\n if (this._willToolbarExceedBounds(toolbarContainer, toolbarHeight)) {\r\n this._hiddenDebounce.cancel();\r\n this._activeAnimatedToolbar = toolbarContainer;\r\n\r\n this._toolbarLayoutController.hideFloating(toolbarContainer);\r\n this._toolbarLayoutController.displayToolbarWithAnimation(toolbarContainer, toolbarHeight);\r\n\r\n return;\r\n }\r\n\r\n this._toolbarLayoutController.applyFloating(toolbarContainer);\r\n }\r\n\r\n if (displayState === ToolbarDisplayState.Hidden && this._activeAnimatedToolbar === toolbarContainer) {\r\n this._hiddenDebounce.run();\r\n }\r\n }\r\n\r\n _handleToolbarCount(displayState) {\r\n if (displayState !== ToolbarDisplayState.Pending) {\r\n this._activeToolbarCount += displayState === ToolbarDisplayState.Shown ? 1 : -1;\r\n }\r\n\r\n this.debouncedStatusToggle.run();\r\n }\r\n\r\n onToolbarToggle(displayState, toolbarContainer) {\r\n this._handleToolbarCount(displayState);\r\n\r\n if (toolbarContainer === null) {\r\n return;\r\n }\r\n\r\n if (isMobile) {\r\n this._toolbarLayoutController.removePositionSticky(toolbarContainer);\r\n }\r\n }\r\n\r\n onToolbarToggleWithFloating(displayState, toolbarContainer) {\r\n this._handleToolbarCount(displayState);\r\n this._manageFloating(displayState, toolbarContainer);\r\n }\r\n}\r\n\r\nActiveToolbarCoordinator.$inject = [\"StatusToolbar\", \"debounce\", \"ToolbarLayoutController\"];\r\nangularAMD.service(\"ActiveToolbarCoordinator\", ActiveToolbarCoordinator);\r\n","export function getClosestDropdownContainer(element) {\r\n if (element.parentElement === null) {\r\n return null;\r\n }\r\n\r\n if (element.parentElement.dataset.dropdownContainer !== undefined) {\r\n return element.parentElement;\r\n }\r\n\r\n return getClosestDropdownContainer(element.parentElement);\r\n}\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport \"./ActiveToolbarCoordinator.service\";\r\nimport \"../pebbleEditorPlugins/linkerPlugin/LinkerService\";\r\n\r\nexport class FloatingToolbarReactEditorAdapterController extends NgComponent {\r\n constructor(activeToolbarCoordinator, $scope, linkerService) {\r\n super();\r\n this.onToolbarDisplayChange = activeToolbarCoordinator.onToolbarToggleWithFloating.bind(activeToolbarCoordinator);\r\n this.onEditorChange = (value) => {\r\n this.onChange(value);\r\n $scope.$applyAsync();\r\n };\r\n\r\n this.onLink = (result, focusTrackerProxy) => linkerService.createModal(result, focusTrackerProxy);\r\n }\r\n\r\n $onChanges() {\r\n this.editorContent = this.content === undefined || this.content === null ? \"\" : this.content;\r\n this.editorPlaceholder = this.placeholder === undefined ? \"\" : this.placeholder;\r\n }\r\n}\r\n\r\nFloatingToolbarReactEditorAdapterController.$inject = [\"ActiveToolbarCoordinator\", \"$scope\", \"linkerService\"];\r\n","export const reactEditorAdapterBindings = {\r\n className: \"

{{::$ctrl.data.Poster.Name}}

{{::$ctrl.multiLanguageService.getString('sidebar.asset_feedback.labels.left_at', { time: ($ctrl.data.Posted | pebbleDate : 'timeOnly'), date: ($ctrl.data.Posted | pebbleDate)})}} {{::$ctrl.additionalInfo}}

`;","export default `

{{::$ctrl._services.multiLanguageService.getString('sidebar.asset_feedback.labels.left_at', { time: ($ctrl.date | pebbleDate : 'timeOnly'), date: ($ctrl.date | pebbleDate)})}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSESSMENT_CONSTANTS } from \"../../constants/assessment.constants\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../spaMenu/assetInfoPanel/assetFeedback/assetFeedbackService\";\r\nimport \"../../feedbackInput/directives/FeedbackInputHelper\";\r\nimport \"../../spaMenu/assetInfoPanel/assetComments/commentsService\";\r\nimport \"../../reply/reply\";\r\nimport template from \"./reply-wrapper.html\";\r\n\r\nangularAMD.directive(\"replyWrapper\", ReplyWrapper);\r\nReplyWrapper.$inject = [];\r\n\r\nangularAMD.controller(\"ReplyWrapperController\", ReplyWrapperController);\r\nReplyWrapperController.$inject = [\"$q\", \"$timeout\", \"$filter\", \"multiLanguageService\", \"FeedbackInputHelper\", \"assetFeedbackService\", \"commentsService\"];\r\n\r\nfunction ReplyWrapper() {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n scope: {\r\n data: \"<\",\r\n convertDates: \"@\",\r\n anchorId: \"=anchorId\",\r\n submissionId: \"<\",\r\n onReply: \"&\", //Expects to be called with {body: String, author: String}\r\n onCommentUpdate: \"&\", //Expects to be called with {dto: Object}\r\n onCommentDelete: \"&\", //Expects to be called with {dto: Object}\r\n onStateChange: \"&\", //{isEditing: Boolean}\r\n summaryAsset: \"=\",\r\n itemIndex: \"<\",\r\n itemCount: \"<\",\r\n itemType: \"<\",\r\n itemGroup: \" this.hideRepliesAfter;\r\n this.beginRepliesFrom = this.data.Replies.length - this.hideRepliesAfter;\r\n this.showEarlierRepliesBtn = this.data.Replies.length > this.hideRepliesAfter;\r\n this.viewEarlierRepliesBtnText = this.services.multiLanguageService.getString(\"sidebar.asset_feedback.buttons.view_earlier_replies\", {\r\n count: this.beginRepliesFrom\r\n });\r\n this.viewEarlierRepliesBtnAria = this.services.multiLanguageService.getString(\"sidebar.asset_feedback.aria.view_earlier_replies_aria\", {\r\n count: this.beginRepliesFrom\r\n });\r\n\r\n this.disabledReplyToolTip = this.services.multiLanguageService.getString(\"sidebar.asset_feedback.messages.edit_in_progress_reply\");\r\n this.isFeedback = !!this.data.FeedbackType;\r\n this.setLabels();\r\n}\r\n\r\nReplyWrapperController.prototype.$onChanges = function (changes) {\r\n if (changes.expandReplies !== undefined && changes.expandReplies.currentValue) {\r\n this.updateCounts();\r\n }\r\n\r\n if (changes.itemIndex !== undefined || changes.itemCount !== undefined || changes.itemGroup !== undefined) {\r\n this.setLabels();\r\n }\r\n};\r\n\r\nReplyWrapperController.prototype.setLabels = function () {\r\n this.editorLabel = this.services.multiLanguageService.getString(this.isFeedback ? \"sidebar.asset_feedback.aria.feedback_reply_editor\" : \"labels.form_element_toolbar.a11y.comment_reply_editor\");\r\n\r\n this.a11yReplyButtonText = this.isFeedback\r\n ? this.services.multiLanguageService.getString(\"sidebar.asset_comments.reply_to_feedback_n_of_n_in_the_group\", {\r\n number: this.itemIndex,\r\n total: this.itemCount,\r\n groupValue: this.itemGroup\r\n })\r\n : this.services.multiLanguageService.getString(\"sidebar.asset_comments.post_a_reply_to_n\", { number: this.itemIndex });\r\n\r\n this.a11yCancelText = this.isFeedback\r\n ? this.services.multiLanguageService.getString(\"sidebar.asset_feedback.aria.cancel_reply_to\")\r\n : this.services.multiLanguageService.getString(\"sidebar.asset_comments.cancel_reply_to\", { number: this.itemIndex });\r\n\r\n this.a11ySubmitText = this.isFeedback\r\n ? this.services.multiLanguageService.getString(\"sidebar.asset_feedback.aria.post_a_reply_to\")\r\n : this.services.multiLanguageService.getString(\"sidebar.asset_comments.post_a_reply_to_n\", { number: this.itemIndex });\r\n};\r\n\r\nReplyWrapperController.prototype.updateCounts = function () {\r\n this.hideRepliesAfter = this.expandReplies === true ? this.data.Replies.length : ASSESSMENT_CONSTANTS.FEEDBACK_REPLIES.DEFAULT_SHOW_AMOUNT;\r\n this.hideReplies = this.data.Replies.length > this.hideRepliesAfter;\r\n this.beginRepliesFrom = this.data.Replies.length - this.hideRepliesAfter;\r\n this.showEarlierRepliesBtn = this.data.Replies.length > this.hideRepliesAfter;\r\n\r\n this.viewEarlierRepliesBtnText = this.services.multiLanguageService.getString(\"sidebar.asset_feedback.buttons.view_earlier_replies\", {\r\n count: this.beginRepliesFrom\r\n });\r\n this.viewEarlierRepliesBtnAria = this.services.multiLanguageService.getString(\"sidebar.asset_feedback.aria.view_earlier_replies_aria\", {\r\n count: this.beginRepliesFrom\r\n });\r\n};\r\n\r\nReplyWrapperController.prototype.$onDestroy = function () {\r\n this.services.$timeout.cancel(this.focusTimer);\r\n if (this.addingComment) {\r\n this.onStateChange({ isEditing: false });\r\n }\r\n};\r\n\r\nReplyWrapperController.prototype.getRegionAriaLabel = function (number, total, mainCommentNumber, name, dateTime) {\r\n const time = this.services.$filter(\"pebbleDate\")(dateTime, \"timeOnly\");\r\n const date = this.services.$filter(\"pebbleDate\")(dateTime);\r\n\r\n number = this.getReplyIndex(number, total);\r\n\r\n if (this.isFeedback) {\r\n return this.services.multiLanguageService.getString(\"sidebar.asset_feedback.aria.reply_n_of_total_on_feedback_made_by_name_at_on\", {\r\n number: number,\r\n total: total,\r\n name: name,\r\n time: time,\r\n date: date\r\n });\r\n } else {\r\n return this.services.multiLanguageService.getString(\"sidebar.asset_comments.reply_n_of_total_on_comment_made_by_name_at_on\", {\r\n number: number,\r\n total: total,\r\n mainCommentNumber: mainCommentNumber,\r\n name: name,\r\n time: time,\r\n date: date\r\n });\r\n }\r\n};\r\n\r\nReplyWrapperController.prototype.getReplyIndex = function (number, total) {\r\n let returnNumber = number;\r\n\r\n if (this.hideReplies) {\r\n returnNumber = total - this.hideRepliesAfter + number;\r\n }\r\n\r\n return returnNumber + 1;\r\n};\r\n\r\nReplyWrapperController.prototype.onCommentAdd = function (data) {\r\n return this.onReply({\r\n body: data.body,\r\n author: data.author\r\n })\r\n .then((response) => {\r\n let dto; // multiple return types depending on from plus/atlas and whether feedback/comments\r\n if (response.data !== undefined && response.data.Data !== undefined) {\r\n dto = response.data.Data[0];\r\n } else {\r\n dto = response.data !== undefined ? response.data : response;\r\n }\r\n this.addNewChild(dto);\r\n this.updateCounts();\r\n this.refocus();\r\n })\r\n .catch(() => {\r\n this.services.FeedbackInputHelper.launchInvalidModal(this.services.multiLanguageService.getString(\"sidebar.asset_comments.unable_to_save_reply\"));\r\n this.toggleReply(false);\r\n });\r\n};\r\n\r\nReplyWrapperController.prototype.onCommentEdit = function (dto) {\r\n return this.onCommentUpdate({\r\n dto: dto\r\n });\r\n};\r\n\r\nReplyWrapperController.prototype.onCommentRemove = function (dto) {\r\n return this.onCommentDelete({\r\n dto: dto\r\n })\r\n .then((response) => {\r\n // if response.data is null it means it was properly deleted, pass the dto so the next method has the id to delete with\r\n return this.updateDeletedReply(response.data ? response.data : dto).then(() => {\r\n this.updateCounts();\r\n });\r\n })\r\n .catch(() => {\r\n this.services.FeedbackInputHelper.launchInvalidModal(this.services.multiLanguageService.getString(\"sidebar.asset_comments.unable_to_delete_reply\"));\r\n });\r\n};\r\n\r\nReplyWrapperController.prototype.updateDeletedReply = function (deletedDto) {\r\n // if it is the last item in the array when remove it completely, otherwise update it text to say it has been deleted...\r\n if (!this.data.Replies || this.data.Replies.length === 0) {\r\n return this.services.$q.when();\r\n }\r\n\r\n const lastIndex = this.data.Replies.length - 1;\r\n if (this.data.Replies[lastIndex].Id === deletedDto.Id) {\r\n const previousIndex = lastIndex - 1;\r\n\r\n // update the item before the deleted item (if there is one)\r\n if (previousIndex >= 0) {\r\n let promise = null;\r\n if (this.data.CommentType === \"Normal\") {\r\n // could either be a feedback comment or a normal comment\r\n promise = this.services.commentsService.getComment(this.data.Replies[previousIndex].AssetId, this.data.Replies[previousIndex].Id, this.submissionId);\r\n } else {\r\n promise = this.services.assetFeedbackService.getReplyToFeedback(this.data.AssetId, this.data.Replies[previousIndex].Id, this.data.Id);\r\n }\r\n\r\n return promise.then((response) => {\r\n if (response.data) {\r\n this.data.Replies[previousIndex].Permissions = response.data.Permissions;\r\n }\r\n\r\n this.data.Replies.splice(lastIndex, 1);\r\n });\r\n } else {\r\n this.data.Replies.splice(lastIndex, 1);\r\n this._updateMainComment();\r\n }\r\n } else {\r\n const commentToUpdate = this.data.Replies.find(function (comment) {\r\n return comment.Id === deletedDto.Id;\r\n });\r\n if (commentToUpdate !== undefined) {\r\n commentToUpdate.Permissions.AllowDelete = false;\r\n commentToUpdate.Comment = this.services.multiLanguageService.getString(\"sidebar.asset_feedback.this_has_been_deleted\");\r\n }\r\n }\r\n\r\n return this.services.$q.when();\r\n};\r\n\r\nReplyWrapperController.prototype._updateMainComment = function () {\r\n if (typeof this.refreshCommentData !== \"undefined\") {\r\n this.services.commentsService.getComment(this.data.AssetId, this.data.Id, this.submissionId).then((response) => {\r\n if (response.data !== undefined) {\r\n this.refreshCommentData({ data: response.data });\r\n }\r\n });\r\n }\r\n};\r\n\r\nReplyWrapperController.prototype.addNewChild = function (dto) {\r\n //Only allowed to edit the last comment / feedback. When adding a new one, we have to change the state of the previous item.\r\n const lastItem = this.data.Replies[this.data.Replies.length - 1];\r\n\r\n if (lastItem !== void 0) {\r\n const updatedLastItem = angular.copy(lastItem);\r\n updatedLastItem.Permissions.AllowEdit = false;\r\n this.data.Replies[this.data.Replies.length - 1] = updatedLastItem;\r\n }\r\n\r\n if (!this.showEarlierRepliesBtn) {\r\n this.beginRepliesFrom = 0;\r\n }\r\n\r\n //Add newly created Dto to the Data.\r\n this.data.Replies.push(dto);\r\n if (this.data.Replies.length === 1) {\r\n this._updateMainComment();\r\n }\r\n};\r\n\r\nReplyWrapperController.prototype.toggleReplyOption = function (anotherEditorActive) {\r\n //If a reply component indicates it is currently active, then hide the reply option.\r\n this.hideReplyOption = anotherEditorActive;\r\n this.onStateChange({\r\n isEditing: anotherEditorActive\r\n });\r\n};\r\n\r\nReplyWrapperController.prototype.toggleReply = function (active) {\r\n //Set the addingComment state. addingComment is used in the view to control a CSS class which hides edit buttons for reply components (performance solution / hack)\r\n this.addingComment = active;\r\n this.onStateChange({\r\n isEditing: active\r\n });\r\n\r\n this.refocus();\r\n};\r\n\r\nReplyWrapperController.prototype.refocus = function () {\r\n this.focusTimer = this.services.$timeout(() => {\r\n document.getElementById(this.replyBtnId).focus();\r\n });\r\n};\r\n\r\nReplyWrapperController.prototype.viewEarlierReplies = function () {\r\n this.hideReplies = !this.hideReplies;\r\n if (this.hideReplies) {\r\n this.beginRepliesFrom = this.data.Replies.length - this.hideRepliesAfter;\r\n } else {\r\n this.beginRepliesFrom = 0;\r\n }\r\n};\r\n","export default `
0\" ng-class=\"{'reply-section__holder--hide-edit-option': vm.addingComment}\">

0\" class=\"comment__omission-before\">{{::vm.services.multiLanguageService.getString('sidebar.asset_comments.number_omitted_before', {number: replyData.OmissionBefore})}}

0\" class=\"comment__omission-after pt--tiny\">{{::vm.services.multiLanguageService.getString('sidebar.asset_comments.number_omitted_after', {number: replyData.OmissionAfter})}}
`;","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.directive(\"screenReaderAnnouncer\", ScreenReaderAnnouncer);\r\nScreenReaderAnnouncer.$inject = [\"$timeout\"];\r\n\r\nfunction ScreenReaderAnnouncer($timeout) {\r\n return {\r\n restrict: \"E\",\r\n scope: {\r\n loaded: \"@\",\r\n message: \"=\",\r\n postLoadMessage: \"=\",\r\n delay: \"@\"\r\n },\r\n template: '

',\r\n link: function (scope, element, attr) {\r\n scope.announcement = scope.loaded === \"true\" ? scope.postLoadMessage : scope.message;\r\n //loaded could change value after link setup, create a watch to ensure correct message gets displayed from state.\r\n attr.$observe(\"loaded\", function (newVal) {\r\n $timeout(function () {\r\n scope.announcement = newVal === \"true\" ? scope.postLoadMessage : scope.message;\r\n }, scope.delay || 0);\r\n });\r\n }\r\n };\r\n}\r\n","import { HtmlStringSanitiser } from \"@pjs/security\";\r\n\r\nexport const ngHtmlStringSanitiser = HtmlStringSanitiser.createFromExtendedDefaults({ additionalAttributes: [\"target\", \"controls\", \"autoplay\"], forbiddenTags: [\"form\"] });\r\n","import { PebbleSecurityService } from \"./pebbleSecurity.service\";\r\nimport \"@pebblepad/angular-sanitize\";\r\n\r\nvar pebbleSecurityModule = angular.module(\"pebbleSecurity\", [\"ng\", \"ngSanitize\"]);\r\npebbleSecurityModule.service(\"PebbleSecurityService\", PebbleSecurityService);\r\n\r\n//Secure decorators for angular services/directives/filters\r\npebbleSecurityModule.config([\r\n \"$provide\",\r\n function ($provide) {\r\n $provide.decorator(\"$sce\", [\r\n \"$delegate\",\r\n \"PebbleSecurityService\",\r\n function sceDecorator($delegate, pebbleSecurityService) {\r\n var trustAsHtmlOrig = $delegate.trustAsHtml;\r\n\r\n $delegate.trustAsHtml = function (input) {\r\n var sanitisedInput = pebbleSecurityService.sanitise(input);\r\n return trustAsHtmlOrig(sanitisedInput);\r\n };\r\n\r\n return $delegate;\r\n }\r\n ]);\r\n }\r\n]);\r\n","import { ngHtmlStringSanitiser } from \"./NgHtmlStringSanitiser.const\";\r\n\r\nPebbleSecurityService.$inject = [];\r\n\r\n/**\r\n * Provides helper methods for a secure PebblePad\r\n * @constructor\r\n */\r\nfunction PebbleSecurityService() {\r\n this._safeSrcRegex = new RegExp(\"^(\" + location.origin + \"|.|..|data:image)/.*\", \"i\");\r\n}\r\n\r\n/**\r\n * Sanitise the given string, removing any potentially dangerous HTML.\r\n * Do NOT use this method to sanitise strings intended as values for\r\n * attributes (especially 'src' or 'href').\r\n * @param {String} input The html string\r\n */\r\nPebbleSecurityService.prototype.sanitise = function (input) {\r\n return ngHtmlStringSanitiser.clean(input);\r\n};\r\n\r\nPebbleSecurityService.prototype.sanitiseSauce = function (src) {\r\n return this._safeSrcRegex.test(src) ? src : \"\";\r\n};\r\n\r\nexport { PebbleSecurityService };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../assetViews/sidebar/submissionInfoView/submissionInfoView.directive\";\r\nimport template from \"../templates/share-select-submission.html\";\r\n\r\nangularAMD.directive(\"shareSelectSubmission\", ShareSelectSubmission);\r\nShareSelectSubmission.$inject = [];\r\n\r\nangularAMD.controller(\"ShareSelectSubmissionController\", ShareSelectSubmissionController);\r\nShareSelectSubmissionController.$inject = [\"$scope\", \"$element\", \"multiLanguageService\"];\r\n\r\n//Directive\r\n//------------------------------------------------------------------------------------------------------------------\r\nfunction ShareSelectSubmission() {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n scope: {\r\n submissions: \"=\", //Object | null\r\n onSelect: \"&\"\r\n },\r\n bindToController: true,\r\n controller: \"ShareSelectSubmissionController\",\r\n controllerAs: \"vm\"\r\n };\r\n}\r\n\r\n//Controller\r\n//------------------------------------------------------------------------------------------------------------------\r\nfunction ShareSelectSubmissionController($scope, $element, multiLanguageService) {\r\n $element.on(\"$destroy\", function () {\r\n $scope.$destroy();\r\n });\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n}\r\n\r\n//Instance Methods\r\n//--------------------------------------------------------------------------------------------------------------\r\nShareSelectSubmissionController.prototype.select = function (submission) {\r\n this.onSelect({ selected: submission });\r\n};\r\n","export default `

{{::vm.multiLanguageService.getString('sharing.labels.select_a_submission_heading')}}

{{::vm.multiLanguageService.getString('sharing.labels.select_a_submission_description')}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport template from \"../templates/share-link.html\";\r\n\r\nangularAMD.directive(\"shareLink\", ShareLink);\r\nShareLink.$inject = [\"$sce\", \"baseUrlsFactory\"];\r\n\r\nangularAMD.controller(\"ShareLinkController\", ShareLinkController);\r\nShareLinkController.$inject = [\"$location\", \"$timeout\", \"$element\", \"multiLanguageService\"];\r\n\r\nfunction ShareLink($sce, baseUrlsFactory) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n viewerType: \"@\",\r\n assetIds: \"=\",\r\n linkTitle: \"@\",\r\n linkDescription: \"@\",\r\n hideNewTabLink: \"@\"\r\n },\r\n controller: \"ShareLinkController\",\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n };\r\n}\r\n\r\nfunction ShareLinkController($location, $timeout, $element, multiLanguageService) {\r\n this.services = {\r\n location: $location,\r\n timeout: $timeout,\r\n multiLanguageService: multiLanguageService\r\n };\r\n\r\n this.copyBtnText = \"\";\r\n this.webLink = \"\";\r\n this.web_link_el = $element[0].querySelector(\"#web-link-text-box\");\r\n this.tooltipBoundaryEl = $element[0].querySelector(\".share-link__container\");\r\n this.tooltip = this.services.multiLanguageService.getString(\"tips.sharing.keyboard_copy.content\");\r\n\r\n if (!document.queryCommandSupported(\"copy\")) {\r\n this.hideCopyUrl = true;\r\n }\r\n\r\n this.init();\r\n}\r\n\r\nShareLinkController.prototype.init = function () {\r\n var absUrl = this.services.location.absUrl();\r\n var url = absUrl.substring(0, absUrl.indexOf(\"#\") + 2);\r\n this.webLink = url + this.viewerType + \"/\" + this.assetIds[0];\r\n this.copyBtnText = this.services.multiLanguageService.getString(\"sharing.buttons.copy_url\");\r\n};\r\n\r\nShareLinkController.prototype.copyUrl = function () {\r\n this.web_link_el.select();\r\n\r\n try {\r\n var successful = document.execCommand(\"copy\");\r\n if (successful) {\r\n this.copyBtnText = this.services.multiLanguageService.getString(\"sharing.buttons.copy_success\");\r\n this.services.timeout(\r\n function () {\r\n this.copyBtnText = this.services.multiLanguageService.getString(\"sharing.buttons.copy_url\");\r\n }.bind(this),\r\n 2000\r\n );\r\n }\r\n } catch (err) {\r\n console.warn(\"Oops, unable to copy\");\r\n }\r\n};\r\n\r\nShareLinkController.prototype.selectUrl = function () {\r\n this.web_link_el.select();\r\n};\r\n","export default ``;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"../../assetsWithLinks/directives/assetsWithLinks\";\r\nimport \"../../share/services/shareService\";\r\nimport \"../../modal/services/modal\";\r\nimport \"../../assetStore/services/assetStoreService\";\r\nimport \"../../share/directives/share\";\r\nimport \"../../share/directives/shareSelectSubmission.directive\";\r\nimport \"../../share/directives/shareSelectExternals.directive\";\r\nimport \"../../share/directives/shareLink\";\r\nimport \"../../utilities/domSearchHelper.service\";\r\nimport \"../../elementCreatedMarker/elementCreatedMarker.directive\";\r\nimport \"../../utilities/animationHelperService\";\r\nimport \"../../autoFocus/autoFocus.directive\";\r\nimport template from \"../templates/share-start.html\";\r\nimport { ButtonClass } from \"@pjs/core-ui\";\r\n\r\nangularAMD.directive(\"shareStart\", [\r\n \"$http\",\r\n \"$sce\",\r\n \"$compile\",\r\n \"$timeout\",\r\n \"$rootScope\",\r\n \"$q\",\r\n \"baseUrlsFactory\",\r\n \"shareService\",\r\n \"modal\",\r\n \"assetStoreService\",\r\n \"domSearchHelper\",\r\n \"animationHelperService\",\r\n function ($http, $sce, $compile, $timeout, $rootScope, $q, baseUrlsFactory, shareService, modal, assetStoreService, domSearchHelper, animationHelperService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n assetIds: \"=\", // list of Asset Id's?,\r\n noModal: \"@\",\r\n modalInterface: \"=\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n function ($scope, $element) {\r\n $scope.shareContainer_el = null;\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n $scope.imageShareToPeople = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/shareToPeople.svg\");\r\n $scope.imageShareToWeb = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/shareToWeb.svg\");\r\n $scope.imageShareForAssessment = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/shareForAssessment.svg\");\r\n $scope.shareForAssessmentUrl = baseUrlsFactory.shared_component_base_url + \"share/templates/share-for-assessment.lazy.html\";\r\n\r\n $scope.assetsWithLinks = [];\r\n $scope.hasSharableResource = false;\r\n $scope.revealOptions = false;\r\n $scope.shareModelSubTitle = \"\";\r\n $scope.showTopLevelAssetWithLinks = true;\r\n $scope.showListedItems = false;\r\n $scope.shareMode = \"\";\r\n $scope.buttonClass = ButtonClass;\r\n\r\n $scope.ids = {\r\n shareOptionDescription: \"share-start-options-description-\" + $scope.$id\r\n };\r\n\r\n $scope.openShare = function (mode) {\r\n $scope.shareMode = mode;\r\n $scope.hideAssetWithLinks = true;\r\n let modalTitle = \"\";\r\n let modalIcon = \"\";\r\n\r\n switch (mode) {\r\n case \"web\":\r\n modalTitle = $scope.multiLanguageService.getString(\"sharing.header.share_my_asset_web\");\r\n if ($scope.shareType === \"resource\" || $scope.shareType === \"template\") {\r\n modalTitle = $scope.multiLanguageService.getString(\"sharing.header.share_my_template_web\");\r\n } else if ($scope.shareType === \"workbook\") {\r\n modalTitle = $scope.multiLanguageService.getString(\"sharing.header.share_my_workbook_web\");\r\n }\r\n\r\n modalIcon = \"share-to-web\";\r\n break;\r\n case \"assessment\":\r\n modalTitle = $scope.multiLanguageService.getString(\"sharing.header.share_my_asset_assessment\");\r\n if ($scope.shareType === \"resource\" || $scope.shareType === \"workbook\" || $scope.shareType === \"template\") {\r\n modalTitle = $scope.multiLanguageService.getString(\"sharing.header.share_my_template_assessment\");\r\n }\r\n\r\n modalIcon = \"share-for-assessment\";\r\n break;\r\n default:\r\n modalTitle = $scope.multiLanguageService.getString(\"sharing.header.share_my_asset_people\");\r\n if ($scope.shareType === \"resource\" || $scope.shareType === \"template\") {\r\n modalTitle = $scope.multiLanguageService.getString(\"sharing.header.share_my_template_people\");\r\n } else if ($scope.shareType === \"workbook\") {\r\n modalTitle = $scope.multiLanguageService.getString(\"sharing.header.share_my_workbook_people\");\r\n }\r\n\r\n modalIcon = \"share-to-people\";\r\n $scope.changingExisting = void 0;\r\n break;\r\n }\r\n\r\n $scope.modalInterface.updateTitle(modalTitle);\r\n $scope.modalInterface.updateIcon(modalIcon);\r\n\r\n const html = $compile(`\r\n \r\n \r\n `)($scope);\r\n\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n $scope.shareContainer_el.append(html);\r\n };\r\n\r\n $scope.openStudentLedShare = function () {\r\n $scope.shareMode = \"studentLedExternals\";\r\n $scope.modalInterface.updateTitle($scope.multiLanguageService.getString(\"sharing.header.share_with_external_assessor\"));\r\n\r\n $scope.mainAssetId = $scope.assetIds[0];\r\n var selectedSubmission = $scope.studentLedSubmissions.length === 1 ? $scope.studentLedSubmissions[0] : null;\r\n\r\n if (selectedSubmission !== null) {\r\n $scope.compileShareSelectExternal(selectedSubmission);\r\n } else {\r\n $scope.compileShareSelectSubmission();\r\n }\r\n };\r\n\r\n $scope.shareInit = function () {\r\n var assetId = $scope.assetIds[0];\r\n\r\n return shareService.getHowCanIShare(assetId).then(function (shareDetailsModel) {\r\n if (shareDetailsModel.ExistingWebShare !== null) {\r\n $scope.changingExisting = shareDetailsModel.ExistingWebShare;\r\n }\r\n\r\n var studentLedExternalsEnabled = shareDetailsModel.StudentLedSubmissions.length !== 0;\r\n if (studentLedExternalsEnabled) {\r\n $scope.studentLedSubmissions = shareDetailsModel.StudentLedSubmissions;\r\n $scope.shareStartSubTitle = $scope.multiLanguageService.getString(\"sharing.labels.share_the_following_asset\");\r\n $scope.shareType = \"asset\";\r\n $scope.revealOptions = !studentLedExternalsEnabled;\r\n } else {\r\n $scope.setupAvailableShareTypes(shareDetailsModel.WhatCanIShare);\r\n $scope.revealOptions = !$scope.hasSharableResource || $scope.shareType;\r\n }\r\n\r\n $scope.shareModelSubTitle = $scope.shareStartSubTitle;\r\n $scope.studentLedExternalsEnabled = studentLedExternalsEnabled;\r\n\r\n $timeout(() => {\r\n $scope.shareLoaded = true;\r\n }, 300);\r\n }, angular.noop);\r\n };\r\n\r\n $scope.setupAvailableShareTypes = function (whatCanIShareList) {\r\n //DETAILS OF ADDITIONAL VARIABLES FOR WHEN A RESOURCE TEMPLATE AND ASSET ARE AVAILABLE TO SHARE AT THE SAME TIME.\r\n //$scope.shareStartSubtitle is used to make sure that the shareStart title is specific to the item being shared, i.e. resource/asset/both.\r\n //$scope.hasSharableResource is true when the user has a choice between sharing either the resource or response.\r\n //$scope.revealOptions determines whether the \"share with\" buttons are visible, shouldn't be initially when hasSharableResource is true.\r\n //$scope.sharableResourceId is used when their is a choice between resource or asset when hasSharableResource is true\r\n //$scope.shareLoaded is used to eliminate flashing of options on startup.\r\n\r\n if (whatCanIShareList) {\r\n if (whatCanIShareList.length === 1 && whatCanIShareList[0].MainType === \"Form\") {\r\n $scope.shareStartSubTitle = $scope.multiLanguageService.getString(\"sharing.labels.share_the_following_template\");\r\n $scope.shareType = \"template\";\r\n } else if (whatCanIShareList.length === 1 && whatCanIShareList[0].MainType === \"WorkBook\") {\r\n $scope.shareStartSubTitle = $scope.multiLanguageService.getString(\"sharing.labels.share_the_following_workbook\");\r\n $scope.shareType = \"workbook\";\r\n } else if (whatCanIShareList.length === 1) {\r\n $scope.shareStartSubTitle = $scope.multiLanguageService.getString(\"sharing.labels.share_the_following_asset\");\r\n $scope.shareType = \"asset\";\r\n } else if (whatCanIShareList.length === 2) {\r\n $scope.shareStartSubTitle = $scope.multiLanguageService.getString(\"sharing.labels.share_dot_dot_dot\");\r\n $scope.hasSharableResource = true;\r\n $scope.sharableResourceId = [];\r\n $scope.sharableResourceId.push(whatCanIShareList[1].Id);\r\n }\r\n }\r\n };\r\n\r\n $scope.compileShareSelectExternal = function (selectedSubmission) {\r\n let wrapperScope = $scope.$new();\r\n wrapperScope.assetId = $scope.mainAssetId;\r\n wrapperScope.submissionId = selectedSubmission.Id;\r\n wrapperScope.workspaceId = selectedSubmission.Location;\r\n wrapperScope.allowCustomExternals = selectedSubmission.AllowMemberCreationOfExternalAssessor; //TODO: Wait for Backend to give the Value and map to it.\r\n wrapperScope.onComplete = function () {\r\n $scope.cancel();\r\n };\r\n\r\n wrapperScope.onSubmit = function (externalAssessorShareDto) {\r\n return shareService.createExternalAssessorShare(externalAssessorShareDto);\r\n };\r\n\r\n $scope.shareContainer_el.empty();\r\n const html = $compile(`\r\n \r\n \r\n `)(wrapperScope);\r\n\r\n html.on(\"$destroy\", function () {\r\n wrapperScope.$destroy();\r\n wrapperScope = null;\r\n });\r\n\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n $scope.shareContainer_el.append(html);\r\n };\r\n\r\n $scope.compileShareSelectSubmission = function () {\r\n $scope.shareContainer_el.empty();\r\n const html = $compile('')($scope);\r\n\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n $scope.shareContainer_el.append(html);\r\n };\r\n\r\n $scope.revealStandardShareOptions = function () {\r\n $scope.revealOptions = true;\r\n $scope.animatingShareOptions = true;\r\n var defaultShareOptionsElement = $element[0].getElementsByClassName(\"share-default-options\")[0];\r\n //Wait for animation to end, then focus in on the first available element\r\n animationHelperService.applyAnimationClass(defaultShareOptionsElement, \"animate--fade-in\").then(function () {\r\n var focusOnElement = domSearchHelper.getFirstTabbableElement(defaultShareOptionsElement);\r\n $scope.animatingShareOptions = false;\r\n\r\n if (focusOnElement !== null) {\r\n focusOnElement.focus();\r\n }\r\n });\r\n };\r\n\r\n $scope.cancel = function () {\r\n $scope.$parent.hideModal();\r\n };\r\n\r\n $scope.selectShareOption = function (shareType, selectedId) {\r\n $scope.showListedItems = true;\r\n $scope.type = shareType;\r\n\r\n shareType === \"asset\" ? ($scope.ids = $scope.assetIds) : ($scope.ids = $scope.sharableResourceId);\r\n\r\n if (!$scope.revealOptions) {\r\n $scope.assetIds = selectedId;\r\n if ($scope.shareType === undefined) {\r\n $scope.shareType = shareType;\r\n }\r\n $scope.revealOptions = true;\r\n if (shareType === \"asset\") {\r\n $scope.shareStartSubTitle = $scope.multiLanguageService.getString(\"sharing.labels.share_the_following_asset\");\r\n }\r\n //make sure that selection is reflected in the associated assetWithLink component.\r\n $scope.$emit(\"selectShareMainTypeOption\", { selectedId: selectedId, shareType: shareType });\r\n }\r\n };\r\n\r\n $scope.resetShareChoice = function () {\r\n $scope.shareMode = \"\";\r\n $scope.shareContainer_el.empty();\r\n $scope.modalInterface.updateTitle($scope.multiLanguageService.getString(\"buttons.iWantToHandler.share\"));\r\n $scope.modalInterface.updateIcon(\"\");\r\n };\r\n\r\n $scope.onShareStartEnter = function ($event, data) {\r\n var keyPressed = $event.which;\r\n if (keyPressed === 13) {\r\n $scope.selectShareOption(data.type, data.id);\r\n }\r\n };\r\n }\r\n ],\r\n link: function ($scope, $element) {\r\n $scope.shareContainer_el = angular.element($element[0].getElementsByClassName(\"ppShareContainer\")[0]);\r\n\r\n $scope.$watchCollection(\"assetIds\", function () {\r\n if (!$scope.assetIds.length) {\r\n $scope.cancel();\r\n } else {\r\n assetStoreService.getAssetWithLinks($scope.assetIds[0], false).then(function (response) {\r\n $scope.asset = response.data;\r\n $scope.shareInit();\r\n });\r\n }\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{ shareStartSubTitle }}

{{::multiLanguageService.getString('labels.navigation.or')}}

{{::multiLanguageService.getString('sharing.labels.share_this')}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ButtonClass, warningNotice } from \"@pjs/core-ui\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../utilities/pebbleDate\";\r\nimport \"../../datePicker/datePickerHelper\";\r\nimport \"../../assetStore/services/assetStoreService\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"../services/shareService\";\r\nimport \"../../autocomplete/contactAutoComplete/contactAutoComplete\";\r\nimport \"../../expandable/expandable\";\r\nimport \"../../assetsWithLinks/directives/assetsWithLinks\";\r\nimport \"../../tooltip/tooltip\";\r\nimport \"../../utilities/text-editable/contenteditable\";\r\nimport \"../../builder/dataManager/helperService\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../utilities/urlService\";\r\nimport \"../../utilities/animationHelperService\";\r\nimport \"../../autoFocus/autoFocus.directive\";\r\nimport \"../../assetViews/sidebar/shares/deletableShare.service\";\r\nimport \"../../share/services/shareStatusService.service\";\r\nimport \"../../react2angular/htmlNotice\";\r\nimport \"../../dialogAction/dialogAction.component\";\r\nimport template from \"../templates/share.html\";\r\n\r\nangularAMD.directive(\"share\", [\r\n \"$q\",\r\n \"$http\",\r\n \"$sce\",\r\n \"$compile\",\r\n \"$timeout\",\r\n \"$rootScope\",\r\n \"$location\",\r\n \"$filter\",\r\n \"baseUrlsFactory\",\r\n \"assetStoreService\",\r\n \"shareService\",\r\n \"datePickerHelper\",\r\n \"helperService\",\r\n \"multiLanguageService\",\r\n \"urlService\",\r\n \"animationHelperService\",\r\n \"DeletableShareService\",\r\n \"shareStatusService\",\r\n function (\r\n $q,\r\n $http,\r\n $sce,\r\n $compile,\r\n $timeout,\r\n $rootScope,\r\n $location,\r\n $filter,\r\n baseUrlsFactory,\r\n assetStoreService,\r\n shareService,\r\n datePickerHelper,\r\n helperService,\r\n multiLanguageService,\r\n urlService,\r\n animationHelperService,\r\n DeletableShareService,\r\n shareStatusService\r\n ) {\r\n // usage: \r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n assetIds: \"=\", // list of Asset Id's?,\r\n assetsWithLinks: \"=\",\r\n changingExisting: \"=\", // use to edit an existing share\r\n noModal: \"@\",\r\n shareMode: \"=\",\r\n shareType: \"=\",\r\n hideAssetWithLinks: \"=\",\r\n showTopLevelAssetWithLinks: \"=?\",\r\n modalInterface: \"=?\",\r\n collaboratorIds: \"<\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n // Just in case I need to get an Image at some point\r\n $scope.imageWorkspace = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/workspace.svg\");\r\n $scope.imageAssignment = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/assignment.svg\");\r\n $scope.imageSharedAfter = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/sharedAfter.svg\");\r\n $scope.imageSharedBy = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/sharedBy.svg\");\r\n $scope.imageRevisedUntil = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/revisedUntil.svg\");\r\n $scope.imageWarning = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/general/warning48.svg\");\r\n\r\n $element.on(\"$destroy\", function () {\r\n $scope.$destroy();\r\n });\r\n }\r\n ],\r\n link: function (scope, element, attrs) {\r\n scope.multiLanguageService = multiLanguageService;\r\n scope.shareStatusService = shareStatusService;\r\n scope.buttonClass = ButtonClass;\r\n scope.permissionCollaborateFlagId = \"permission-collaborate-flag\";\r\n\r\n const labelType = multiLanguageService.getString(\"accessibility.notice.type.submission\");\r\n scope.warningNotice = {\r\n ariaLabel: multiLanguageService.getString(\"accessibility.notice.labels.warning\", { type: labelType }),\r\n type: warningNotice\r\n };\r\n\r\n scope.collabOptionDisabled = false;\r\n if (scope.collaboratorIds === undefined) {\r\n scope.collaboratorIds = [];\r\n }\r\n scope.helpLink = \"#/learningCentre?type=privacyAndSharing\";\r\n var saving_share_el = angular.element(element[0].getElementsByClassName(\"saving-share\")[0]);\r\n var modal_dialog_wrapper = document.getElementsByClassName(\"modal-dialog__wrapper\")[0];\r\n var assetMainTypes = [];\r\n scope.container = angular.element(document.getElementsByClassName(\"modal-dialog\")[0]);\r\n scope.sharees = [];\r\n scope.saveStatus = \"\";\r\n scope.shareForAssessmentUrl = baseUrlsFactory.shared_component_base_url + \"share/templates/share-for-assessment.lazy.html\";\r\n scope.workspaceAssignmentBlockUrl =\r\n baseUrlsFactory.shared_component_base_url + \"share/templates/workspace-assignment-deadline-blocks.lazy.html\";\r\n scope.copyBtnText = scope.multiLanguageService.getString(\"sharing.buttons.copy_url\");\r\n scope.collaborationShowing = false; // default collaboration to on (it can be switch off with an org setting)\r\n scope.allowHideFromSearchEngineChoice = false; // if share to web there is an org setting which allows the user to do this or not\r\n scope.collabConfirmDescriptionId = \"share-with-collab-confirmation-\" + scope.$id;\r\n scope.showExport = scope.shareType === \"asset\";\r\n\r\n var shareContainer = element[0].getElementsByClassName(\"share\")[0];\r\n animationHelperService.applyAnimationClass(shareContainer, \"animate--fade-in\").then(function () {\r\n scope.$broadcast(\"focusInput\");\r\n });\r\n\r\n scope.tooltips = {\r\n webShare: scope.multiLanguageService.getString(\"tips.sharing.share_web.content\"),\r\n shareWithUsers: scope.multiLanguageService.getString(\"tips.sharing.auto_complete.content\"),\r\n shareePermissions: scope.multiLanguageService.getString(\"tips.sharing.recipient_abilities.content\")\r\n };\r\n\r\n $http.get(baseUrlsFactory.api_base_url + \"Share/IsCollaborationDisabled\").then(function (response) {\r\n scope.collaborationEnabled = response.data !== true;\r\n if (scope.collaborationEnabled === false) {\r\n scope.share.collaborate = false;\r\n scope.collaborationShowing = false;\r\n } else {\r\n scope.collaborationShowing = true;\r\n }\r\n });\r\n\r\n $http.get(baseUrlsFactory.api_base_url + \"Share/DoesUserHaveChoiceToHideFromSearchEngines\").then(\r\n function (response) {\r\n scope.allowHideFromSearchEngineChoice = response.data === true;\r\n },\r\n function () {\r\n scope.allowHideFromSearchEngineChoice = false;\r\n }\r\n );\r\n\r\n bindWatchers();\r\n if (scope.assetsWithLinks && scope.assetsWithLinks.length) {\r\n scope._assetIds = scope.assetsWithLinks.selectOne(\"Id\");\r\n assetMainTypes = scope.assetsWithLinks.selectOne(\"MainType\");\r\n } else {\r\n scope._assetIds = scope.assetIds;\r\n\r\n var removeEvent = scope.$on(\"updateAssetMainTypes\", function (event, data) {\r\n assetMainTypes = data;\r\n scope.setCopyOption();\r\n removeEvent();\r\n });\r\n }\r\n\r\n // share info\r\n if (scope.changingExisting) {\r\n var collaboratorObjs = scope.collaboratorIds.map(function (c) {\r\n return { Id: c };\r\n });\r\n var thisShareIsDeletable = !DeletableShareService.getNonDeletableShareIds([scope.changingExisting], collaboratorObjs).some(function (s) {\r\n return s === scope.changingExisting.ShareInfo.Id;\r\n });\r\n scope.saveStatus = \"saved\";\r\n\r\n scope.shareUserRecipients = scope.changingExisting.Sharees || [];\r\n\r\n // Autocomplete model to view the users on the form\r\n angular.forEach(scope.changingExisting.Sharees, function (sharee) {\r\n scope.sharees.push({\r\n UserId: sharee.Id,\r\n IsExternal: sharee.IsExternal,\r\n IconUrl: baseUrlsFactory.api_base_url + \"File/TransmitProfilePic?id=\" + sharee.ProfileImageId + \"&x=32&y=32\",\r\n Title: sharee.Forename + \" \" + sharee.Surname,\r\n SubTitle: sharee.Email,\r\n canRemoveFromShare:\r\n (!scope.collaboratorIds.contains(sharee.Id) && scope.changingExisting.ShareInfo.SharedWith.contains(sharee.Id)) ||\r\n thisShareIsDeletable\r\n });\r\n });\r\n\r\n scope.collabOptionDisabled = scope.sharees.some(function (s) {\r\n return !s.canRemoveFromShare;\r\n });\r\n\r\n // External contacts\r\n scope.shareContactRecipients = [];\r\n\r\n var expiryDate = new Date(scope.changingExisting.ShareInfo.SharedUntil);\r\n scope.share = {\r\n hasExpiration: expiryDate.getUTCFullYear() < 2100,\r\n expiresIn: expiryDate.getUTCFullYear() < 2100 ? \"date\" : \"week\",\r\n expiration: expiryDate.getUTCFullYear() < 2100 ? expiryDate : Date.now(),\r\n message: scope.changingExisting.ShareInfo.Message\r\n };\r\n\r\n if (scope.changingExisting.ShareInfo.SharedWithPermissions) {\r\n scope.share.canLeaveComments = scope.changingExisting.ShareInfo.SharedWithPermissions.contains(\"Comment\");\r\n scope.share.canTakeACopy = scope.changingExisting.ShareInfo.SharedWithPermissions.contains(\"Copy\");\r\n scope.share.canExport = scope.changingExisting.ShareInfo.SharedWithPermissions.contains(\"Export\");\r\n scope.share.copyCriteriaOnly = \"false\";\r\n scope.share.confirmCopy = scope.share.copyCriteriaOnly === \"false\";\r\n scope.share.hideFromSearchEngines = scope.changingExisting.ShareInfo.SharedWithPermissions.contains(\"IsPrivate\");\r\n scope.share.collaborate = scope.changingExisting.ShareInfo.Collaborative; //TODO: Remove later!\r\n }\r\n\r\n scope.storedObject = angular.copy(scope.share);\r\n } else {\r\n // base init\r\n scope.shareUserRecipients = [];\r\n scope.shareContactRecipients = [];\r\n\r\n scope.share = {\r\n canLeaveComments: false,\r\n canTakeACopy: false,\r\n copyCriteriaOnly: \"false\",\r\n confirmCopy: false,\r\n canExport: false,\r\n hideFromSearchEngines: true,\r\n hasExpiration: false,\r\n expiresIn: \"week\",\r\n expiration: Date.now(),\r\n message: \"\",\r\n collaborate: false //TODO: Remove later!\r\n };\r\n }\r\n\r\n // Setup visible permissions\r\n scope.setCopyOption = function () {\r\n if (assetMainTypes.containsAny([\"AssetCollectionWrapper\", \"ActivityLog\"])) {\r\n scope.showExtendedCopyOptions = scope.share.canTakeACopy;\r\n if (scope.changingExisting) {\r\n scope.share.copyCriteriaOnly = scope.changingExisting.ShareInfo.SharedWithPermissions.contains(\"CopyLinked\") ? \"false\" : \"true\"; // radio button value\r\n }\r\n }\r\n\r\n if (scope.showExtendedCopyOptions) {\r\n // tslint:disable-next-line:triple-equals\r\n if (extendedCopyWatch == undefined) {\r\n var extendedCopyWatch = scope.$watch(\"share.copyCriteriaOnly\", function (newVal) {\r\n if (newVal === \"true\") {\r\n scope.share.confirmCopy = false;\r\n }\r\n });\r\n }\r\n\r\n if (!scope.share.canTakeACopy) {\r\n scope.share.copyCriteriaOnly = \"true\";\r\n }\r\n }\r\n\r\n // set the asset type for the hint text\r\n scope.assetType = assetMainTypes.contains(\"AssetCollectionWrapper\")\r\n ? helperService.friendlyMainType(\"AssetCollectionWrapper\")\r\n : helperService.friendlyMainType(\"ActivityLog\");\r\n scope.permissionHint = multiLanguageService.getString(\"sharing.permissions.copy_criteria_hint\", { assetType: scope.assetType });\r\n };\r\n\r\n if (assetMainTypes.length) {\r\n scope.setCopyOption();\r\n }\r\n\r\n switch (scope.shareType) {\r\n case \"asset\":\r\n scope.sharingModelSubTitle = $rootScope.multiLanguageService.getString(\"sharing.labels.share_the_following_asset\");\r\n break;\r\n case \"resource\":\r\n scope.sharingModelSubTitle = $rootScope.multiLanguageService.getString(\"sharing.labels.share_the_following_resource\");\r\n break;\r\n case \"workbook\":\r\n scope.sharingModelSubTitle = $rootScope.multiLanguageService.getString(\"sharing.labels.share_the_following_workbook\");\r\n break;\r\n case \"template\":\r\n scope.sharingModelSubTitle = $rootScope.multiLanguageService.getString(\"sharing.labels.share_the_following_template\");\r\n break;\r\n default:\r\n scope.sharingModelSubTitle = $rootScope.multiLanguageService.getString(\"sharing.labels.share_the_following\");\r\n }\r\n\r\n scope.onCollaborationSelect = function (collaborationState) {\r\n // deselect 'share.hasExpiration' option in case it was selected\r\n scope.share.hasExpiration = false;\r\n\r\n if (collaborationState === true) {\r\n // select these options because collaboration implies them to be true\r\n scope.share.canLeaveComments = true;\r\n scope.share.canTakeACopy = true;\r\n scope.share.canExport = true;\r\n } else {\r\n scope.share.canLeaveComments = false;\r\n scope.share.canTakeACopy = false;\r\n scope.share.canExport = false;\r\n }\r\n };\r\n\r\n function bindWatchers() {\r\n scope.$watch(\"sharees\", onShareesWatch, true);\r\n }\r\n\r\n function onShareesWatch(newVal) {\r\n scope.hasExternal = onShareesUpdate(newVal);\r\n }\r\n\r\n function onShareesUpdate(sharees) {\r\n if (sharees) {\r\n return sharees.some(function (user) {\r\n return user.IsExternal;\r\n });\r\n }\r\n\r\n return false;\r\n }\r\n\r\n scope.confirmCollaboration = function () {\r\n scope.collaborationConfirmation = true;\r\n scope.showTopLevelAssetWithLinks = false;\r\n scope.share.hasExpiration = false;\r\n\r\n if (scope.modalInterface) {\r\n scope.modalInterface.updateTitle(scope.multiLanguageService.getString(\"sharing.collaboration.modal.title\"));\r\n scope.modalInterface.updateDescribedBy(scope.collabConfirmDescriptionId);\r\n }\r\n };\r\n\r\n scope.onDateChange = function (date) {\r\n scope.share.expiration = date;\r\n };\r\n\r\n scope.shareAsset = function () {\r\n if (scope.shareMode === \"web\") {\r\n scope.saveStatus = \"saving\";\r\n } else {\r\n // get the overlay at this point... tried caching it at the start but wasn't reliable\r\n var overlay = angular.element(document.getElementsByClassName(\"builder-canvas-dark-layer\")[0]);\r\n overlay.addClass(\"show-overlay\");\r\n }\r\n\r\n var shareId = scope.changingExisting ? scope.changingExisting.ShareInfo.Id : null;\r\n var assetIds = scope._assetIds;\r\n var userIds = scope.shareUserRecipients.selectOne(\"Id\");\r\n var contactIds = scope.shareContactRecipients.selectOne(\"Id\");\r\n var expiration = null;\r\n if (scope.selectedWorkspace && scope.selectedAssignment) {\r\n var workspaceId = scope.selectedWorkspace.Id || \"\";\r\n var assignmentId = scope.selectedAssignment.Id || \"\";\r\n }\r\n\r\n function newDate(date) {\r\n date = date || new Date();\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);\r\n }\r\n\r\n if (scope.share.hasExpiration) {\r\n if (scope.share.expiresIn === \"week\") {\r\n expiration = newDate();\r\n expiration.setDate(expiration.getDate() + 7);\r\n } else if (scope.share.expiresIn === \"month\") {\r\n expiration = newDate();\r\n expiration.setMonth(expiration.getMonth() + 1);\r\n } else if (scope.share.expiresIn === \"date\") {\r\n expiration = newDate(new Date(scope.share.expiration));\r\n }\r\n }\r\n\r\n if (scope.noModal === undefined && scope.shareMode !== \"web\") {\r\n scope.$emit(\"hideModal\");\r\n }\r\n\r\n // if collaboration is disabled ensure it is turned off before save\r\n if (scope.collaborationEnabled === false) {\r\n scope.share.collaborate = false;\r\n scope.collaborationShowing = false;\r\n }\r\n\r\n const sharePromise = shareService.shareAssets(\r\n {\r\n shareId: shareId,\r\n assetIds: assetIds,\r\n userIds: userIds,\r\n contactIds: contactIds,\r\n workspaceId: workspaceId,\r\n assignmentId: assignmentId\r\n },\r\n {\r\n canLeaveComments: scope.share.canLeaveComments,\r\n canTakeCopy: scope.share.canTakeACopy,\r\n copyCriteriaOnly: scope.share.copyCriteriaOnly,\r\n hideFromSearchEngines: scope.share.hideFromSearchEngines,\r\n expiration: expiration,\r\n collaborate: scope.share.collaborate,\r\n canExport: scope.share.canExport\r\n },\r\n scope.shareMode,\r\n scope.share.message\r\n );\r\n\r\n sharePromise.then(function () {\r\n if (scope.shareMode === \"web\") {\r\n saving_share_el.addClass(\"action-complete\");\r\n // Show the successful share\r\n $timeout(function () {\r\n saving_share_el.removeClass(\"action-complete\");\r\n scope.saveStatus = \"saved\";\r\n scope.storedObject = angular.copy(scope.share);\r\n $rootScope.$broadcast(\"shareSuccessful\", assetIds);\r\n }, 1000);\r\n } else {\r\n // Allow modal to close\r\n $timeout(function () {\r\n overlay.addClass(\"share-complete\");\r\n // Show the successful share\r\n $timeout(function () {\r\n overlay.removeClass(\"share-complete\");\r\n overlay.removeClass(\"show-overlay\");\r\n $rootScope.$broadcast(\"shareSuccessful\", assetIds);\r\n\r\n scope.shareStatusService.notifyShareUpdate(scope.shareMode, assetIds);\r\n\r\n //Redirect to view mode if we are submitting to a Workspace, LockAssetsOnSubmission is true and we are currently in the builder for the asset.\r\n if (assignmentId && scope.selectedAssignment.LockAssetsOnSubmission) {\r\n var redirectAsset = scope.getSubmittedAssetForRedirect(assetIds, assetMainTypes);\r\n if (redirectAsset) {\r\n $location.path(urlService.createUrl(redirectAsset.id, redirectAsset.mainType, true)).replace();\r\n }\r\n }\r\n }, 1000);\r\n }, 1000);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * @param {string} assetIds\r\n * @param {mainType} mainTypes\r\n * @returns {{id: string, mainType: string} | null}\r\n */\r\n scope.getSubmittedAssetForRedirect = function (assetIds, mainTypes) {\r\n var assetId = \"\";\r\n var mainType = \"\";\r\n\r\n for (var i = 0, l = assetIds.length; i < l; i++) {\r\n assetId = assetIds[i];\r\n mainType = mainTypes[i];\r\n\r\n if (urlService.checkIfOnBuilderForAsset(assetId, mainType)) {\r\n return { id: assetId, mainType: mainType };\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n scope.isDirty = function () {\r\n if (scope.saveStatus === \"saving\") {\r\n return false;\r\n }\r\n\r\n if (!scope.shareMode || scope.shareMode === \"users\") {\r\n // You must agree to allow the recipients to copy everything\r\n if (scope.showExtendedCopyOptions && scope.share.copyCriteriaOnly === \"false\" && !scope.share.confirmCopy) {\r\n return false;\r\n }\r\n // You must have people to share with\r\n return scope.shareUserRecipients.length + scope.shareContactRecipients.length > 0;\r\n }\r\n\r\n if (scope.shareMode === \"web\") {\r\n for (var item in scope.storedObject) {\r\n // skip nested properties and expiration date because it is always reformatted by the page object\r\n if (!scope.storedObject.hasOwnProperty(item)) {\r\n continue;\r\n }\r\n // Specific check for expiry date change as the bound expiration date always gets reformatted\r\n if (item === \"expiration\" && Object.prototype.toString.call(scope.storedObject.expiration) === \"[object Date]\") {\r\n if (scope.storedObject.expiration.getTime() !== scope.share.expiration.getTime()) {\r\n return true;\r\n } else {\r\n continue;\r\n }\r\n }\r\n // if the properties don't match then object is dirty\r\n if (scope.storedObject[item] !== scope.share[item]) {\r\n return true;\r\n }\r\n }\r\n }\r\n return scope.storedObject === undefined || scope.storedObject === null;\r\n };\r\n\r\n var getSubmissionLocations = (function () {\r\n if (scope.shareMode === \"assessment\") {\r\n scope.loadingLocations = true;\r\n var submissionLocationPromise = shareService.getSubmissionLocations(scope._assetIds[0]);\r\n submissionLocationPromise.then(function (response) {\r\n scope.locations = response.data;\r\n scope.loadingLocations = false;\r\n var focus_el = element[0].getElementsByClassName(\"autofocus\")[0];\r\n if (focus_el) {\r\n focus_el.focus();\r\n }\r\n });\r\n }\r\n })();\r\n\r\n scope.updateSubmissionDeadlineInfo = function () {\r\n var pebbleDate = $filter(\"pebbleDate\");\r\n scope.submissionDeadlineInfo = {\r\n acceptingSubmissionsFrom: multiLanguageService.getString(\"pebble_date.time_on_date\", {\r\n time: pebbleDate(scope.selectedAssignment.AcceptSubmissionsFrom, \"timeOnly\", true),\r\n date: pebbleDate(scope.selectedAssignment.AcceptSubmissionsFrom, undefined, true)\r\n }),\r\n submissionDeadline: multiLanguageService.getString(\"pebble_date.time_on_date\", {\r\n time: pebbleDate(scope.selectedAssignment.SubmissionDeadline, \"timeOnly\", true),\r\n date: pebbleDate(scope.selectedAssignment.SubmissionDeadline, undefined, true)\r\n }),\r\n revisionDeadline: multiLanguageService.getString(\"pebble_date.time_on_date\", {\r\n time: pebbleDate(scope.selectedAssignment.RevisionDeadline, \"timeOnly\", true),\r\n date: pebbleDate(scope.selectedAssignment.RevisionDeadline, undefined, true)\r\n })\r\n };\r\n };\r\n\r\n scope.selectWorkspace = function (workspaceId) {\r\n for (var i = 0; i < scope.locations.length; i++) {\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.locations[i].Id == workspaceId) {\r\n scope.selectedWorkspace = scope.locations[i];\r\n if (scope.selectedWorkspace.SubLocations.length === 1) {\r\n scope.selectedAssignment = scope.selectedWorkspace.SubLocations[0];\r\n scope.updateSubmissionDeadlineInfo();\r\n setupRemainingDays(scope.selectedAssignment);\r\n } else {\r\n //null it out in case they go back and select a different workspace.\r\n scope.selectedAssignment = null;\r\n }\r\n scope.share.agreeToTerms = false;\r\n modal_dialog_wrapper.scrollTop = 0;\r\n var focus_el = element[0].getElementsByClassName(\"autofocus\")[0];\r\n if (focus_el) {\r\n focus_el.focus();\r\n }\r\n return;\r\n }\r\n }\r\n };\r\n\r\n scope.selectAssignment = function (assignmentId) {\r\n for (var i = 0; i < scope.selectedWorkspace.SubLocations.length; i++) {\r\n if (scope.selectedWorkspace.SubLocations[i].Id === assignmentId) {\r\n scope.selectedAssignment = scope.selectedWorkspace.SubLocations[i];\r\n scope.submissionCountInfo = multiLanguageService.getString(\"sharing.labels.submission_count_info\", {\r\n user_num_shares: scope.selectedAssignment.UserSubmissionCount,\r\n total_num_shares: scope.selectedAssignment.SubmissionsPerUser,\r\n count: scope.selectedAssignment.UserSubmissionCount\r\n });\r\n scope.updateSubmissionDeadlineInfo();\r\n scope.share.agreeToTerms = false;\r\n\r\n setupRemainingDays(scope.selectedAssignment);\r\n modal_dialog_wrapper.scrollTop = 0;\r\n var focus_el = element[0].getElementsByClassName(\"autofocus\")[0];\r\n if (focus_el) {\r\n focus_el.focus();\r\n }\r\n return;\r\n }\r\n }\r\n };\r\n\r\n //This is pure filth.\r\n //But essential... thanks Lethal-DBiz.\r\n scope.processWarningMessage = function (warning, acceptedTypes) {\r\n if (warning.indexOf(\"Only the following Asset types are accepted\") > -1) {\r\n var newWarning = \"Only the following Asset types are accepted:
\";\r\n angular.forEach(acceptedTypes, function (acceptedType) {\r\n // tslint:disable-next-line:triple-equals\r\n var type = acceptedType.SubType != \"\" ? acceptedType.SubType : acceptedType.MainType;\r\n\r\n //Strip out anything before the actual asset type.\r\n //Again... filth.\r\n type = type.replace(\"Conversation\", \"Summary\");\r\n type = type.replace(\"Document/\", \"\");\r\n type = type.replace(\"Personal/AboutMe\", \"\");\r\n type = type.replace(\"Academic/AboutMe\", \"\");\r\n type = type.replace(\"Professional/AboutMe\", \"\");\r\n\r\n newWarning +=\r\n \"
\" +\r\n type.replace(/([a-z])([A-Z])/g, \"$1 $2\") +\r\n \"
\";\r\n });\r\n return (newWarning += \"
\");\r\n } else {\r\n return $sce.trustAsHtml(warning);\r\n }\r\n };\r\n\r\n var setupRemainingDays = function (assignment) {\r\n var now = new Date();\r\n now.setHours(0, 0, 0, 0);\r\n\r\n var sharedAfter = mydiff(now, datePickerHelper.normalizeDate(assignment.AcceptSubmissionsFrom, true), \"days\");\r\n if (sharedAfter < 0) {\r\n sharedAfter = undefined;\r\n }\r\n var sharedBy = mydiff(now, datePickerHelper.normalizeDate(assignment.SubmissionDeadline, true), \"days\");\r\n if (sharedBy < 0) {\r\n sharedBy = undefined;\r\n }\r\n var revisedUntil = mydiff(now, datePickerHelper.normalizeDate(assignment.RevisionDeadline, true), \"days\");\r\n if (revisedUntil < 0) {\r\n revisedUntil = undefined;\r\n }\r\n\r\n scope.remainingDays = {\r\n sharedAfter: sharedAfter,\r\n sharedBy: sharedBy,\r\n revisedUntil: revisedUntil\r\n };\r\n };\r\n\r\n scope.cancel = function () {\r\n scope.$emit(\"hideModal\");\r\n };\r\n\r\n scope.back = function () {\r\n if (scope.selectedWorkspace.SubLocations.length > 1 && scope.selectedAssignment) {\r\n scope.selectedAssignment = null;\r\n } else {\r\n scope.selectedWorkspace = null;\r\n }\r\n modal_dialog_wrapper.scrollTop = 0;\r\n };\r\n\r\n // I would REALLY like to see this available as a toolkit function somewhere\r\n function mydiff(date1, date2, interval) {\r\n var second = 1000,\r\n minute = second * 60,\r\n hour = minute * 60,\r\n day = hour * 24,\r\n week = day * 7;\r\n date1 = new Date(date1);\r\n date2 = new Date(date2);\r\n var timediff = date2 - date1;\r\n if (isNaN(timediff)) {\r\n return undefined;\r\n }\r\n switch (interval) {\r\n case \"years\":\r\n return date2.getFullYear() - date1.getFullYear();\r\n case \"months\":\r\n return (\r\n (date2.getFullYear() * 12 + date2.getMonth())(date2.getFullYear() * 12 + date2.getMonth()) -\r\n (date1.getFullYear() * 12 + date1.getMonth())\r\n );\r\n case \"weeks\":\r\n return Math.floor(timediff / week);\r\n case \"days\":\r\n return Math.floor(timediff / day);\r\n case \"hours\":\r\n return Math.floor(timediff / hour);\r\n case \"minutes\":\r\n return Math.floor(timediff / minute);\r\n case \"seconds\":\r\n return Math.floor(timediff / second);\r\n default:\r\n return undefined;\r\n }\r\n }\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{ sharingModelSubTitle }}

{{::(assetIds.length > 1 ? multiLanguageService.getString('sharing.labels.sending_to_plural'): multiLanguageService.getString('sharing.labels.sending_to'))}}

{{::multiLanguageService.getString('sharing.labels.find_who_by')}}

{{::multiLanguageService.getString('sharing.labels.what_can_they_do_web')}}

{{::multiLanguageService.getString('sharing.labels.what_can_they_do')}}

{{permissionHint}}

({{::multiLanguageService.getString('sharing.collaboration.label_flag')}})

{{::multiLanguageService.getString('sharing.labels.why_are_you_sending', { count: assetIds.length })}}

{{::multiLanguageService.getString('sharing.placeholders.add_a_message')}}

{{::multiLanguageService.getString('sharing.collaboration.modal.heading')}}

{{::multiLanguageService.getString('sharing.collaboration.modal.message')}}

{{::multiLanguageService.getString('sharing.collaboration.modal.message_resource')}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../externalContact/externalContact\";\r\nimport \"../extendSearch/services/searchService\";\r\nimport template from \"./templates/external-from-workspace.html\";\r\n\r\nangularAMD.directive(\"externalFromWorkspace\", ExternalFromWorkspace);\r\nExternalFromWorkspace.$inject = [];\r\n\r\nangularAMD.controller(\"ExternalFromWorkspaceController\", ExternalFromWorkspaceController);\r\nExternalFromWorkspaceController.$inject = [\"$scope\", \"multiLanguageService\", \"baseUrlsFactory\", \"searchService\"];\r\n\r\nvar searchService = null;\r\n\r\nfunction ExternalFromWorkspace() {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n externalList: \"=\", //Array - List of Externals users. Default value should be an empty array.\r\n workspaceId: \"@\", //String\r\n allowCreate: \"=\", //Boolean - Allow creation of external users\r\n viewUsersOnly: \"=\", //Boolean - View mode\r\n describedBy: \"@\"\r\n },\r\n controller: \"ExternalFromWorkspaceController\",\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n };\r\n}\r\n\r\nfunction ExternalFromWorkspaceController($scope, _multiLanguageService_, baseUrlsFactory, _searchService_) {\r\n searchService = _searchService_;\r\n\r\n this.searchText = \"\";\r\n this.errorMessage = \"\";\r\n this.showAddExternal = false;\r\n this.userSelectionList = []; // when search returns multiple results this list is what the user selects from\r\n this.defaultIcon = baseUrlsFactory.api_base_url + \"File/TransmitProfilePic?id=&x=32&y=32\"; //Get default profile pic from Backend\r\n this.multiLanguageService = _multiLanguageService_;\r\n\r\n // in case we add an external set up object required by externalContact directive\r\n this.setupEventListeners($scope);\r\n this.setUpNewExternalData();\r\n}\r\n\r\nExternalFromWorkspaceController.prototype.setupEventListeners = function ($scope) {\r\n $scope.$on(\r\n \"closeExternalForm\",\r\n function (event) {\r\n this.showAddExternal = false;\r\n this.setUpNewExternalData();\r\n }.bind(this)\r\n );\r\n\r\n $scope.$on(\r\n \"newContactAdded\",\r\n function (event, data) {\r\n if (data) {\r\n this.addExternalToList(data);\r\n }\r\n this.setUpNewExternalData();\r\n }.bind(this)\r\n );\r\n};\r\n\r\nExternalFromWorkspaceController.prototype.findExternal = function () {\r\n return searchService.getExternalsFromATLAS(this.searchText, this.workspaceId).then(\r\n function (externals) {\r\n if (externals && externals.length === 1) {\r\n // either add to the list or display error\r\n this.addExternalToListIfUnique(externals[0]);\r\n } else {\r\n // else there are multiple results, show them to the user to decide, 0 results are dealt with via promise rejection below\r\n this.userSelectionList = externals;\r\n this.errorMessage = \"\";\r\n this.searchText = \"\";\r\n }\r\n }.bind(this),\r\n function (rejection) {\r\n this.userSelectionList.length = 0;\r\n this.errorMessage =\r\n rejection === \"noResults\"\r\n ? this.multiLanguageService.getString(\"external_from_workspace.no_external_found\")\r\n : this.multiLanguageService.getString(\"external_from_workspace.server_error\");\r\n }.bind(this)\r\n );\r\n};\r\n\r\nExternalFromWorkspaceController.prototype.isExternalAlreadyInList = function (newUser) {\r\n return this.externalList.some(function (user) {\r\n return newUser.UserId === user.UserId;\r\n });\r\n};\r\n\r\nExternalFromWorkspaceController.prototype.addExternalToList = function (data) {\r\n this.errorMessage = \"\";\r\n this.userSelectionList = []; // reset any selection list\r\n this.externalList.push(data);\r\n};\r\n\r\nExternalFromWorkspaceController.prototype.addExternalToListIfUnique = function (data) {\r\n if (!this.isExternalAlreadyInList(data)) {\r\n this.addExternalToList(data);\r\n } else {\r\n this.errorMessage = this.multiLanguageService.getString(\"external_from_workspace.already_added_to_list\");\r\n }\r\n this.searchText = \"\";\r\n};\r\n\r\nExternalFromWorkspaceController.prototype.removeExternal = function (index) {\r\n this.externalList.removeOne(index);\r\n};\r\n\r\nExternalFromWorkspaceController.prototype.addNewExternal = function () {\r\n this.errorMessage = \"\";\r\n this.newExternalData.email = this.searchText;\r\n this.searchText = \"\";\r\n this.userSelectionList = [];\r\n this.showAddExternal = true;\r\n};\r\n\r\nExternalFromWorkspaceController.prototype.setUpNewExternalData = function () {\r\n this.newExternalData = {\r\n firstName: \"\",\r\n secondName: \"\",\r\n email: \"\",\r\n emailConfirmation: \"\",\r\n organisation: \"\",\r\n role: \"\"\r\n };\r\n};\r\n","export default `
0\" class=\"selected-holder user-selection-list\">
\"\"

{{user.Title || user.Name}}

{{:: vm.multiLanguageService.getString('external_from_workspace.external_user_flag')}}

{{:: vm.multiLanguageService.getString('external_from_workspace.email', {email: user.SubTitle || user.Email})}}

{{ vm.errorMessage }}
0)) \" class=\"add-new-external\" ng-click=\"::vm.addNewExternal()\">
{{:: vm.multiLanguageService.getString('external_from_workspace.add_new_external') }}
\"\"

{{user.Title}}

{{:: vm.multiLanguageService.getString('external_from_workspace.external_user_flag')}}

{{:: vm.multiLanguageService.getString('external_from_workspace.email', {email: user.SubTitle})}}

\"\"

{{user.Title || user.Name}}

{{:: vm.multiLanguageService.getString('external_from_workspace.external_user_flag')}}

{{:: vm.multiLanguageService.getString('external_from_workspace.email')}} {{user.SubTitle || user.Email}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../datePicker/datePicker\";\r\nimport \"../externalFromWorkspace/externalFromWorkspace\";\r\n\r\nimport template from \"./templates/external-from-workspace-share.html\";\r\n\r\nangularAMD.directive(\"externalFromWorkspaceShare\", ExternalFromWorkspaceShare);\r\nExternalFromWorkspaceShare.$inject = [];\r\n\r\nangularAMD.controller(\"ExternalFromWorkspaceShareController\", ExternalFromWorkspaceShareController);\r\nExternalFromWorkspaceShareController.$inject = [\"$scope\", \"multiLanguageService\"];\r\n\r\nfunction ExternalFromWorkspaceShare() {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n externalList: \"=\", //Array - List of Externals users. Default value should be an empty array.\r\n workspaceId: \"@\", //String\r\n allowCreate: \"=\", //Boolean - Allow creation of external users\r\n messageToExternal: \"=\", //String - Message to send to externals\r\n expires: \"=\", //Date|null - Expiry date of share\r\n viewUsersOnly: \"=\" //Boolean - View mode\r\n },\r\n controller: \"ExternalFromWorkspaceShareController\",\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n };\r\n}\r\n\r\nExternalFromWorkspaceShareController.prototype.onDateChange = function (date) {\r\n this.expires = date;\r\n};\r\n\r\nfunction ExternalFromWorkspaceShareController($scope, _multiLanguageService_) {\r\n this.multiLanguageService = _multiLanguageService_;\r\n}\r\n","export default `

{{::vm.multiLanguageService.getString('external_from_workspace.title_who_am_i_sharing_with')}}

{{::vm.multiLanguageService.getString('external_from_workspace.enter_email_below')}}

{{::vm.multiLanguageService.getString('external_from_workspace.currently_sharing_width')}}

{{::vm.multiLanguageService.getString('external_from_workspace.title_share_expiry_date')}}

{{::vm.multiLanguageService.getString('external_from_workspace.share_expiry_explain')}}

{{::vm.multiLanguageService.getString('external_from_workspace.title_external_message')}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../services/shareService\";\r\nimport \"../../utilities/helpers\";\r\nimport \"../../datePicker/datePickerHelper\";\r\nimport \"../../externalFromWorkspace/externalFromWorkspaceShare\";\r\nimport \"../../clickAndDisable/directives/clickAndDisable.directive\";\r\nimport template from \"../templates/share-select-externals.html\";\r\nimport { ButtonClass } from \"@pjs/core-ui\";\r\n\r\nangularAMD.directive(\"shareSelectExternals\", ShareSelectExternals);\r\nShareSelectExternals.$inject = [];\r\n\r\nangularAMD.controller(\"ShareSelectExternalsController\", ShareSelectExternalsController);\r\nShareSelectExternalsController.$inject = [\"$scope\", \"$element\", \"$rootScope\", \"shareService\", \"helpers\", \"multiLanguageService\", \"datePickerHelper\"];\r\n\r\n//Injects\r\nvar $rootScope = null,\r\n ShareService = null,\r\n DatePickerHelper = null;\r\n\r\n//Help Classes\r\nfunction ExternalAssessorShareCreateRequest(submissionId, workspaceId, userIds, expiry, message) {\r\n this.SubmissionId = submissionId;\r\n this.WorkspaceId = workspaceId;\r\n this.UserIds = userIds;\r\n this.Expiry = expiry;\r\n this.Message = message;\r\n}\r\n\r\n//Directive\r\n//------------------------------------------------------------------------------------------------------------------\r\nfunction ShareSelectExternals() {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n scope: {\r\n assetId: \"@\", //String\r\n submissionId: \"@\", //String\r\n workspaceId: \"@\", //String\r\n onSubmit: \"&\", //Function - Expects PromisedPost to be returned\r\n onComplete: \"&\", //Function\r\n allowCustomExternals: \"=\", //Boolean\r\n expiryDate: \"=?\", //Date | null\r\n updatingExisting: \"=?\", //Boolean\r\n externals: \"=?\" //Array of External Users - Optional\r\n },\r\n bindToController: true,\r\n controller: \"ShareSelectExternalsController\",\r\n controllerAs: \"vm\"\r\n };\r\n}\r\n\r\n//Controller\r\n//------------------------------------------------------------------------------------------------------------------\r\nfunction ShareSelectExternalsController($scope, $element, _$rootScope_, _ShareService_, Helpers, multiLanguageService, _DatePickerHelper_) {\r\n $rootScope = _$rootScope_;\r\n ShareService = _ShareService_;\r\n DatePickerHelper = _DatePickerHelper_;\r\n\r\n this.shareMessage = \"\";\r\n this.originalExpiryDate = DatePickerHelper.setToStartOfDay(this.expiryDate);\r\n this.shareFailed = false;\r\n this.isValid = false;\r\n this.activeRequest = null;\r\n this.multiLanguageService = multiLanguageService;\r\n this.buttonClass = ButtonClass;\r\n\r\n if (isNaN(Date.parse(this.expiryDate))) {\r\n this.expiryDate = null;\r\n }\r\n\r\n if (!Helpers.isNotEmptyArray(this.externals)) {\r\n this.externals = [];\r\n }\r\n\r\n $scope.$watchCollection(\"vm.externals\", this.onExternalListChange.bind(this));\r\n $scope.$watch(\"vm.expiryDate\", this.validate.bind(this));\r\n\r\n this.handleSubmit = this._submit.bind(this);\r\n this.handleCancel = this._cancel.bind(this);\r\n}\r\n\r\n//Instance Methods\r\n//--------------------------------------------------------------------------------------------------------------\r\nShareSelectExternalsController.prototype._submit = function () {\r\n var userIds = this.externals.map(function (external) {\r\n return external.UserId;\r\n });\r\n\r\n var externalAssessorShareDto = new ExternalAssessorShareCreateRequest(this.submissionId, this.workspaceId, userIds, this.expiryDate, this.shareMessage);\r\n this.activeRequest = this.onSubmit({ shareModel: externalAssessorShareDto });\r\n return this.activeRequest.then(this.onSubmitSuccess.bind(this), this.onSubmitFailure.bind(this));\r\n};\r\n\r\nShareSelectExternalsController.prototype.onSubmitSuccess = function (response) {\r\n if (response.status !== 200) {\r\n this.onSubmitFailure(response);\r\n return;\r\n }\r\n\r\n this.activeRequest = null;\r\n this.shareFailed = false;\r\n $rootScope.$broadcast(\"shareSuccessful\", [this.assetId]);\r\n return this.onComplete({ externals: this.externals, expiryDate: this.expiryDate, cancelled: false });\r\n};\r\n\r\nShareSelectExternalsController.prototype.onSubmitFailure = function (rejectionResponse) {\r\n this.shareFailed = true;\r\n};\r\n\r\nShareSelectExternalsController.prototype._cancel = function () {\r\n if (this.activeRequest !== null) {\r\n this.activeRequest._httpTimeout.resolve();\r\n this.activeRequest = null;\r\n }\r\n\r\n return this.onComplete({ externals: null, expiryDate: null, cancelled: true });\r\n};\r\n\r\nShareSelectExternalsController.prototype.onExternalListChange = function (newValue, oldValue) {\r\n if (newValue && oldValue && newValue.length === oldValue.length) {\r\n return;\r\n }\r\n\r\n this.validate();\r\n};\r\n\r\nShareSelectExternalsController.prototype.validate = function () {\r\n var isValid = true;\r\n if (this.externals.length === 0) {\r\n isValid = false;\r\n } else {\r\n var expiryDate = DatePickerHelper.setToStartOfDay(this.expiryDate);\r\n if (this.expiryDate === this.originalExpiryDate || DatePickerHelper.compareDates(expiryDate, this.originalExpiryDate)) {\r\n isValid = false;\r\n }\r\n }\r\n\r\n this.isValid = isValid;\r\n};\r\n","export default `

{{::vm.multiLanguageService.getString('sharing.errors.share_failure_generic')}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\n\r\nangularAMD.factory(\"shareService\", [\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"$q\",\r\n function ($http, baseUrlsFactory, $q) {\r\n function promisedGet(url, params) {\r\n $http.defaults.withCredentials = true;\r\n var httpTimeout = $q.defer();\r\n var request = $http.get(url, {\r\n timeout: httpTimeout.promise,\r\n params: params\r\n });\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n promise._httpTimeout = httpTimeout;\r\n return promise;\r\n }\r\n\r\n function promisedPost(url, data) {\r\n $http.defaults.withCredentials = true;\r\n var httpTimeout = $q.defer();\r\n var request = $http.post(url, data, { timeout: httpTimeout.promise });\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n promise._httpTimeout = httpTimeout;\r\n return promise;\r\n }\r\n\r\n return {\r\n shareAssets: function (ids, accessControl, shareMode, message) {\r\n return promisedPost(baseUrlsFactory.api_base_url + \"Share/ShareAssets\", {\r\n ...ids,\r\n ...accessControl,\r\n shareType: shareMode,\r\n message: message\r\n });\r\n },\r\n\r\n deleteShare: function (shareOrPublishedId, isWebShare) {\r\n if (isWebShare) {\r\n return promisedPost(baseUrlsFactory.api_base_url + \"Share/DeleteWebShare?publishedId=\" + shareOrPublishedId);\r\n }\r\n return promisedPost(baseUrlsFactory.api_base_url + \"Share/DeleteShare?id=\" + shareOrPublishedId);\r\n },\r\n\r\n removeSubmission: function (submissionId) {\r\n return promisedPost(baseUrlsFactory.api_base_url + \"Share/RemoveSubmission?id=\" + submissionId);\r\n },\r\n\r\n getSubmissionLocations: function (assetId) {\r\n return promisedGet(baseUrlsFactory.api_base_url + \"Share/GetSubmissionLocations?assetId=\" + assetId);\r\n },\r\n\r\n getHowCanIShare: function (assetId) {\r\n return promisedGet(baseUrlsFactory.api_base_url + \"Share/HowCanIShare?assetId=\" + assetId).then(function (response) {\r\n return response.data && !response.data.ErrorMessage ? response.data : $q.reject(response);\r\n });\r\n },\r\n\r\n createExternalAssessorShare: function (externalAssessorShareCreateRequest) {\r\n return promisedPost(baseUrlsFactory.api_base_url + \"Share/CreateExternalAssessorShare\", externalAssessorShareCreateRequest);\r\n },\r\n\r\n removeSLA: function (user, submission) {\r\n return promisedPost(baseUrlsFactory.api_base_url + \"Share/RemoveExternalAssessorShare\", {\r\n UserId: user,\r\n SubmissionId: submission\r\n });\r\n },\r\n updateExternalAssessorShare: function (externalShareUpdate) {\r\n return promisedPost(baseUrlsFactory.api_base_url + \"Share/UpdateExternalAssessorShare\", externalShareUpdate);\r\n },\r\n\r\n getSubmissionLocationDetails: function (assignmentId) {\r\n return $http.get(baseUrlsFactory.api_base_url + \"Workspace/GetSubmissionLocationDetails?assignmentId=\" + assignmentId);\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { Subject, filter } from \"@pjs/observables\";\r\nimport { SHARE_TYPES } from \"../../constants/shareTypes.constants\";\r\n\r\nexport class ShareStatusService {\r\n constructor() {\r\n this._subject = new Subject();\r\n }\r\n\r\n observeAssessmentShares() {\r\n return this._subject.pipe(filter((share) => share.type === SHARE_TYPES.ASSESSMENT));\r\n }\r\n\r\n notifyShareUpdate(shareMode, assetIds) {\r\n this._subject.next({\r\n type: shareMode,\r\n assetIds: assetIds\r\n });\r\n }\r\n}\r\n\r\nShareStatusService.$inject = [];\r\nangularAMD.service(\"shareStatusService\", ShareStatusService);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../assetEndpointService/assetEndpoint.service\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../modal/services/modal\";\r\nimport \"../../assetFiltering/assetFilteringConfig.provider\";\r\n\r\nimport { FILTER_CRITERIA_TYPES_CONSTANTS } from \"../../constants/filterCriteriaTypes.constants\";\r\nimport { FILTER_TYPES_CONSTANTS } from \"../../constants/filterTypes.constants\";\r\nimport { EventEmitter } from \"../../eventEmitter/eventEmitter\";\r\nimport { ButtonClass } from \"@pjs/core-ui\";\r\n\r\nclass AssetFilteringService {\r\n constructor(multiLanguageService, modal, baseUrlsFactory, assetEndpointService, $rootScope, $q, $routeParams, assetFilteringConfig) {\r\n this._multiLang = multiLanguageService;\r\n this._modal = modal;\r\n this._baseUrlsFactory = baseUrlsFactory;\r\n this._assetEndpointService = assetEndpointService;\r\n this._$rootScope = $rootScope;\r\n this._$q = $q;\r\n this._$routeParams = $routeParams;\r\n this._filterCache = new Map();\r\n this._eventEmitter = new EventEmitter([]);\r\n this._inFlightLoadFilterRequests = new Map();\r\n this._previousRouteAssetId = this._$routeParams.assetId;\r\n this._assetFilteringConfig = assetFilteringConfig;\r\n\r\n $rootScope.$on(\"$routeChangeSuccess\", () => this._onRouteChange());\r\n }\r\n\r\n subscribe(assetId, callback) {\r\n this._eventEmitter.on(assetId, callback);\r\n }\r\n\r\n unsubscribe(assetId, callback) {\r\n this._eventEmitter.off(assetId, callback);\r\n }\r\n\r\n loadExistingFilter(assetId) {\r\n const cachedFilter = this._filterCache.get(assetId);\r\n\r\n if (cachedFilter !== undefined) {\r\n return this._$q.resolve(cachedFilter);\r\n }\r\n\r\n if (!this._assetFilteringConfig.enablePersistentFilters) {\r\n return this._$q.resolve(null);\r\n }\r\n\r\n const inFlightRequest = this._inFlightLoadFilterRequests.get(assetId);\r\n if (inFlightRequest !== undefined) {\r\n return inFlightRequest;\r\n }\r\n\r\n const request = this._assetEndpointService\r\n .getDataFilter(assetId)\r\n .then((response) => {\r\n if (response.data.length > 0) {\r\n const filterObject = this._mapApiFilterToLocalFilter(response.data[0]);\r\n this._filterCache.set(assetId, filterObject);\r\n return filterObject;\r\n }\r\n return null;\r\n })\r\n .catch(() => {\r\n const errorMsgs = [this._multiLang.getString(\"filter_evidence.unable_to_get_filters\")];\r\n this.showFilteringErrorModal(errorMsgs);\r\n return null;\r\n })\r\n .finally(() => {\r\n this._inFlightLoadFilterRequests.delete(assetId);\r\n });\r\n\r\n this._inFlightLoadFilterRequests.set(assetId, request);\r\n\r\n return request;\r\n }\r\n\r\n applyFilter(assetId, filterData, saveFilter) {\r\n const cachedFilter = this._filterCache.get(assetId);\r\n const newFilter = this._mapFilterOptionsToFilter(filterData, saveFilter);\r\n\r\n if (saveFilter) {\r\n if (cachedFilter === undefined || !cachedFilter.IsPersistent) {\r\n return this._addFilter(assetId, newFilter);\r\n }\r\n\r\n return this._updateFilter(assetId, cachedFilter, newFilter);\r\n }\r\n\r\n if (!saveFilter && cachedFilter !== undefined && cachedFilter.IsPersistent) {\r\n return this._removePersistentFilter(assetId, filterData.filterId).then(() => {\r\n this._addLocalFilter(assetId, newFilter);\r\n this._notifySubscribers(assetId);\r\n });\r\n }\r\n\r\n this._addLocalFilter(assetId, newFilter);\r\n this._notifySubscribers(assetId);\r\n return this._$q.resolve();\r\n }\r\n\r\n removeFilter(assetId, filterId) {\r\n const cachedFilter = this._filterCache.get(assetId);\r\n\r\n if (cachedFilter !== undefined && !cachedFilter.IsPersistent) {\r\n this._filterCache.delete(assetId);\r\n this._notifySubscribers(assetId);\r\n return this._$q.resolve();\r\n }\r\n\r\n return this._removePersistentFilter(assetId, filterId).then(() => this._notifySubscribers(assetId));\r\n }\r\n\r\n showFilteringErrorModal(messages) {\r\n const filterModalTitle = this._multiLang.getString(\"filter_evidence.error_title\");\r\n\r\n this._modal.launch(`${this._baseUrlsFactory.shared_component_base_url}modalDialogComponent/templates/generic-pop-up-with-repeating-content.lazy.html`, {\r\n title: filterModalTitle,\r\n messages: messages,\r\n buttons: [\r\n {\r\n action: angular.noop,\r\n class: ButtonClass.Contained,\r\n text: this._multiLang.getString(\"filter_evidence.error_btn_title\")\r\n }\r\n ]\r\n });\r\n }\r\n\r\n _addLocalFilter(assetId, newFilter) {\r\n this._filterCache.set(assetId, newFilter);\r\n }\r\n\r\n _getCachedFilter(assetId) {\r\n const filter = this._filterCache.get(assetId);\r\n return filter !== undefined ? filter : null;\r\n }\r\n\r\n _mapFilterOptionsToFilter(filterData, isPersistent) {\r\n const criteria = [];\r\n\r\n if (filterData.after !== null) {\r\n criteria.push({ Id: \"\", Key: FILTER_CRITERIA_TYPES_CONSTANTS.START_DATE, Value: filterData.after });\r\n }\r\n if (filterData.before !== null) {\r\n criteria.push({ Id: \"\", Key: FILTER_CRITERIA_TYPES_CONSTANTS.END_DATE, Value: filterData.before });\r\n }\r\n return {\r\n Criteria: criteria,\r\n FilterTypes: [FILTER_TYPES_CONSTANTS.EVIDENCE],\r\n Id: filterData.filterId,\r\n IsPersistent: isPersistent\r\n };\r\n }\r\n\r\n _mapApiFilterToLocalFilter(apiFilter) {\r\n return {\r\n ...apiFilter,\r\n IsPersistent: true\r\n };\r\n }\r\n\r\n _addFilter(assetId, filterData) {\r\n return this._assetEndpointService\r\n .createDataFilter(assetId, filterData)\r\n .then((response) => {\r\n this._addLocalFilter(assetId, this._mapApiFilterToLocalFilter(response.data));\r\n this._notifySubscribers(assetId);\r\n })\r\n .catch(() => {\r\n const errorMsgs = [this._multiLang.getString(\"filter_evidence.unable_to_save_filter\"), this._multiLang.getString(\"filter_evidence.reload_save_message\")];\r\n this.showFilteringErrorModal(errorMsgs);\r\n return this._$q.reject();\r\n });\r\n }\r\n\r\n _updateFilter(assetId, oldFilter, newFilter) {\r\n const mergedFilter = this._mergeFilters(oldFilter, newFilter);\r\n\r\n return this._assetEndpointService\r\n .updateDataFilter(assetId, mergedFilter)\r\n .then((response) => {\r\n this._addLocalFilter(assetId, this._mapApiFilterToLocalFilter(response.data));\r\n this._notifySubscribers(assetId);\r\n })\r\n .catch(() => {\r\n const errorMsgs = [this._multiLang.getString(\"filter_evidence.unable_to_update_filter\")];\r\n this.showFilteringErrorModal(errorMsgs);\r\n return this._$q.reject();\r\n });\r\n }\r\n\r\n _removePersistentFilter(assetId, filterId) {\r\n return this._assetEndpointService\r\n .removeDataFilter(assetId, filterId)\r\n .then(() => {\r\n this._filterCache.delete(assetId);\r\n })\r\n .catch(() => {\r\n const errorMsgs = [this._multiLang.getString(\"filter_evidence.unable_to_delete_filter\"), this._multiLang.getString(\"filter_evidence.reload_delete_message\")];\r\n this.showFilteringErrorModal(errorMsgs);\r\n return this._$q.reject();\r\n });\r\n }\r\n\r\n _mergeFilters(existingFilter, newFilter) {\r\n newFilter.Id = existingFilter.Id;\r\n for (const criteria of newFilter.Criteria) {\r\n const matchingCriteria = existingFilter.Criteria.find((c) => c.Key === criteria.Key);\r\n if (matchingCriteria !== undefined) {\r\n criteria.Id = matchingCriteria.Id;\r\n }\r\n }\r\n return newFilter;\r\n }\r\n\r\n _notifySubscribers(assetId) {\r\n this._eventEmitter.emit(assetId);\r\n }\r\n\r\n _onRouteChange() {\r\n const newAssetId = this._$routeParams.assetId;\r\n if (newAssetId === undefined || newAssetId !== this._previousRouteAssetId) {\r\n const cachedFilter = this._getCachedFilter(this._previousRouteAssetId);\r\n if (cachedFilter !== null && !cachedFilter.IsPersistent) {\r\n this._filterCache.delete(this._previousRouteAssetId);\r\n }\r\n }\r\n\r\n this._previousRouteAssetId = newAssetId === undefined ? \"\" : newAssetId;\r\n }\r\n}\r\n\r\nAssetFilteringService.$inject = [\"multiLanguageService\", \"modal\", \"baseUrlsFactory\", \"AssetEndpointService\", \"$rootScope\", \"$q\", \"$routeParams\", \"assetFilteringConfig\"];\r\nangularAMD.service(\"assetFilteringService\", AssetFilteringService);\r\n","const constants = {\r\n EVIDENCE: \"Evidence\"\r\n};\r\nexport { constants as FILTER_TYPES_CONSTANTS };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./commentsService\";\r\nimport \"../../../builder/dataManager/helperService\";\r\nimport \"../../../user/user.service\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\n\r\nangularAMD.factory(\"commentsDataModel\", [\r\n \"$sce\",\r\n \"commentsService\",\r\n \"helperService\",\r\n \"multiLanguageService\",\r\n \"User\",\r\n function ($sce, commentsService, helperService, multiLanguageService, User) {\r\n return {\r\n data: {},\r\n\r\n getComments: function (assetId, submissionId, anchorId) {\r\n return commentsService\r\n .getComments(assetId, submissionId, anchorId)\r\n .then((response) => {\r\n this.data = response.data;\r\n })\r\n .catch((error) => {\r\n this.data = error.data;\r\n });\r\n },\r\n\r\n deleteComment: function (commentDto, submissionId, anchorId) {\r\n return commentsService.deleteComment(commentDto.AssetId, submissionId, commentDto.Id, anchorId).then((response) => {\r\n if (response.data !== null) {\r\n response.data.Replies = commentDto.Replies; // endpoint doesn't get all children so keep them\r\n return response.data;\r\n }\r\n for (let i = 0; i < this.data.Comments.length; i++) {\r\n const comment = this.data.Comments[i];\r\n if (comment.Id === commentDto.Id) {\r\n this.data.Comments.splice(i, 1);\r\n }\r\n if (comment.Id === commentDto.ParentId) {\r\n for (let j = 0; j < comment.Children.length; j++) {\r\n const child = comment.Children[j];\r\n if (child.Id === commentDto.Id) {\r\n comment.Children.splice(j, 1);\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n });\r\n },\r\n\r\n addNewComment: function (body, author, parentId, assetId, anchorId, submissionId) {\r\n const commentDto = this._createInsertModel(body, parentId, author || User.getFullName(), assetId, anchorId);\r\n return commentsService.addNewOrUpdate(commentDto, submissionId, anchorId).then(() => {\r\n return this._createFullModel(commentDto.Id, body, parentId, author || User.getFullName(), assetId, anchorId);\r\n });\r\n },\r\n\r\n updateComment: function (dto, id, anchorId, submissionId) {\r\n const commentDto = this._createUpdateModel(dto, id, anchorId);\r\n return commentsService.addNewOrUpdate(commentDto, submissionId);\r\n },\r\n\r\n _createUpdateModel: function (dto, parentId, anchorId) {\r\n return {\r\n AssetId: dto.AssetId,\r\n Id: dto.Id,\r\n Body: dto.Body,\r\n ParentId: parentId,\r\n AnchorId: anchorId\r\n };\r\n },\r\n\r\n _createInsertModel: function (bodyText, parentId, posterName, assetId, anchorId) {\r\n return {\r\n AnchorId: anchorId || \"\",\r\n AssetId: assetId || \"\",\r\n Body: bodyText ? $sce.trustAsHtml(bodyText).toString() : \"\",\r\n Id: helperService.guid(),\r\n ParentId: parentId ? parentId : \"\",\r\n PosterName:\r\n posterName !== null && posterName !== undefined && posterName !== \"\"\r\n ? $sce.trustAsHtml(posterName).toString()\r\n : multiLanguageService.getString(\"sidebar.asset_comments.anonymous\"),\r\n NewComment: true\r\n };\r\n },\r\n\r\n _createFullModel: function (id, bodyText, parentId, posterName, assetId, anchorId) {\r\n const userDto = User.getDto();\r\n const hasUser = userDto !== null;\r\n\r\n return {\r\n AssetTitle: \"\",\r\n Permissions: {\r\n AllowEdit: hasUser,\r\n AllowDelete: hasUser,\r\n AllowReply: true\r\n },\r\n AnchorId: anchorId || \"\",\r\n AssetId: assetId || \"\",\r\n Attachments: [],\r\n Blanked: false,\r\n Comment: bodyText ? $sce.trustAsHtml(bodyText).toString() : \"\",\r\n Replies: [],\r\n Deleted: false,\r\n Id: id || helperService.guid(),\r\n LastModified: new Date(),\r\n Posted: new Date().toString(),\r\n ParentId: parentId ? parentId : \"\",\r\n Poster: {\r\n Name:\r\n posterName !== null && posterName !== undefined && posterName !== \"\"\r\n ? $sce.trustAsHtml(posterName).toString()\r\n : multiLanguageService.getString(\"sidebar.asset_comments.anonymous\"),\r\n ProfilePicId: hasUser === true ? userDto.ProfilePic.slice(userDto.ProfilePic.indexOf(\"=\") + 1) : \"\"\r\n }\r\n };\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../assetEndpointService/assetEndpoint.service\";\r\nimport { ACTION_CONSTANTS } from \"../../../constants/action.constants\";\r\nimport { tracker } from \"@pjs/analytics\";\r\n\r\nangularAMD.factory(\"commentsService\", [\r\n \"AssetEndpointService\",\r\n function (AssetEndpointService) {\r\n var factory = {};\r\n let onCommentChangeCallbacks = new Set();\r\n\r\n factory.addCommentListener = function (callback) {\r\n onCommentChangeCallbacks.add(callback);\r\n };\r\n\r\n factory.getComment = function (assetId, commentId, submissionId) {\r\n return AssetEndpointService.getComment(assetId, commentId, submissionId).then((response) => {\r\n response.data = this.mapComment(response.data);\r\n return response;\r\n });\r\n };\r\n\r\n factory.getComments = function (assetId, submissionId, answerId = \"\") {\r\n return AssetEndpointService.getComments(assetId, submissionId, answerId).then((response) => {\r\n response.data.Comments = response.data.Comments.map((comment) => this.mapComment(comment));\r\n return response;\r\n });\r\n };\r\n\r\n factory.addNewOrUpdate = function (dto, submissionId, anchorId = \"\") {\r\n tracker.trackEvent(\"Comments\", \"Add/edit comment\", `Comment ${anchorId !== \"\" ? \"on block\" : \"\"} `);\r\n const saveCommentRequest = {\r\n AssetId: dto.AssetId,\r\n PosterName: dto.PosterName,\r\n CommentId: dto.Id,\r\n Body: dto.Body,\r\n ParentId: dto.ParentId,\r\n AnchorId: dto.AnchorId,\r\n NewComment: dto.NewComment || false\r\n };\r\n\r\n return AssetEndpointService.addNewOrUpdateComment(saveCommentRequest, submissionId).then((response) => {\r\n if (dto.NewComment && anchorId !== \"\") {\r\n onCommentChangeCallbacks.forEach((callback) => callback(dto.AssetId, ACTION_CONSTANTS.ADD, anchorId));\r\n }\r\n return response;\r\n });\r\n };\r\n\r\n factory.deleteComment = function (assetId, submissionId, commentId, anchorId = \"\") {\r\n return AssetEndpointService.deleteComment(assetId, submissionId, commentId).then((response) => {\r\n if (anchorId !== \"\") {\r\n onCommentChangeCallbacks.forEach((callback) => callback(assetId, ACTION_CONSTANTS.DELETE, anchorId));\r\n }\r\n\r\n if (response.data !== null) {\r\n response.data = this.mapComment(response.data);\r\n }\r\n\r\n return response;\r\n });\r\n };\r\n\r\n factory.mapComment = function (comment) {\r\n return {\r\n AssetTitle: comment.AssetTitle,\r\n Anonymous: comment.Anonymous,\r\n Permissions: {\r\n AllowEdit: comment.AllowEdit,\r\n AllowDelete: comment.AllowDelete,\r\n AllowReply: comment.AllowReply\r\n },\r\n AnchorId: comment.AnchorId,\r\n AssetId: comment.AssetId,\r\n AttachmentReferences: comment.AttachmentReferences,\r\n Attachments: comment.Attachments,\r\n Blanked: comment.Blanked,\r\n Comment: comment.Body,\r\n CommentType: comment.CommentType,\r\n Deleted: comment.Deleted,\r\n Replies: comment.Children !== undefined ? comment.Children.map((comment) => this.mapComment(comment)) : null,\r\n Id: comment.Id,\r\n LastModified: comment.LastModified,\r\n LastModifiedBy: comment.LastModifiedBy,\r\n LastModifierName: comment.LastModifierName,\r\n New: comment.New,\r\n Omission: comment.Omission,\r\n OmissionAfter: comment.OmissionAfter,\r\n OmissionBefore: comment.OmissionBefore,\r\n Owner: comment.Owner,\r\n Quotes: comment.Quotes,\r\n Subject: comment.Subject,\r\n TargetVersion: comment.TargetVersion,\r\n TargetedUsers: comment.TargetedUsers,\r\n Posted: comment.Posted,\r\n ParentId: comment.ParentId,\r\n Poster: {\r\n Name: comment.PosterName,\r\n ProfilePicId: comment.ProfileImageId\r\n }\r\n };\r\n };\r\n\r\n return factory;\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../../utilities/baseUrlsFactory\";\r\nimport \"../commentsDataModel\";\r\nimport \"../commentsService\";\r\nimport \"../../../../reply/replyWrapper/replyWrapper\";\r\nimport \"../../../../reply/reply\";\r\nimport \"../../../../multiLanguageService/multiLanguageService\";\r\nimport template from \"../templates/comment.html\";\r\n\r\nangularAMD.directive(\"comment\", Comment);\r\nComment.$inject = [];\r\n\r\nangularAMD.controller(\"CommentController\", CommentController);\r\nCommentController.$inject = [\"commentsService\", \"commentsDataModel\", \"multiLanguageService\", \"modal\", \"baseUrlsFactory\", \"$filter\"];\r\n\r\nfunction Comment() {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n scope: {\r\n data: \"<\",\r\n anchorId: \"=anchorId\",\r\n requiresAuthor: \"=\",\r\n summaryAsset: \"=\",\r\n commentIndex: \"=\",\r\n commentCount: \"<\",\r\n submissionId: \"<\",\r\n onUpdate: \"&\",\r\n onDelete: \"&\",\r\n isDisabled: \"<\"\r\n },\r\n bindToController: true, //binds directive attributes ($scope values above) directly to the Controller (this.)\r\n controller: \"CommentController\",\r\n controllerAs: \"vm\"\r\n };\r\n}\r\n\r\nfunction CommentController(commentsService, commentsDataModel, multiLanguageService, modal, baseUrlsFactory, $filter) {\r\n this.services = {\r\n commentsService: commentsService,\r\n commentsDataModel: commentsDataModel,\r\n multiLanguageService: multiLanguageService,\r\n modal: modal,\r\n baseUrlsFactory: baseUrlsFactory,\r\n $filter\r\n };\r\n\r\n this.hideReplySection = false;\r\n this.activeReply = false;\r\n\r\n this.commentEditor = multiLanguageService.getString(\"labels.form_element_toolbar.a11y.comment_editor\");\r\n\r\n this.disabledDropdownToolTip = multiLanguageService.getString(\"sidebar.asset_comments.edit_in_progress\");\r\n this.commentAriaTitle = multiLanguageService.getString(\"atlas_sidebar.a11y.comment_lower\");\r\n}\r\n\r\nCommentController.prototype.$onChanges = function (changes) {\r\n if (changes.commentIndex !== undefined || changes.commentCount !== undefined) {\r\n this._updateMainArialLabel();\r\n }\r\n};\r\n\r\nCommentController.prototype.refreshData = function (data) {\r\n this.data = data;\r\n};\r\n\r\nCommentController.prototype.onAddComment = function (body, author) {\r\n return this.services.commentsDataModel.addNewComment(body, author, this.data.Id, this.data.AssetId, this.anchorId, this.submissionId);\r\n};\r\n\r\nCommentController.prototype.onCommentUpdate = function (commentDto) {\r\n return this.services.commentsDataModel.updateComment(commentDto, this.data.Id, this.anchorId, this.submissionId);\r\n};\r\n\r\nCommentController.prototype.onCommentDelete = function (commentDto) {\r\n return this.services.commentsService.deleteComment(commentDto.AssetId, this.submissionId, commentDto.Id, this.anchorId).then((response) => {\r\n this.onDelete({ isMainComment: false });\r\n return response;\r\n });\r\n};\r\n\r\nCommentController.prototype.onMainCommentDelete = function (commentDto) {\r\n return this.services.commentsDataModel\r\n .deleteComment(commentDto, this.submissionId, this.anchorId)\r\n .then((comment) => {\r\n this.data = comment;\r\n this.onDelete({ isMainComment: true });\r\n })\r\n .catch(() => {\r\n this.services.modal.launch(this.services.baseUrlsFactory.shared_component_base_url + \"spaMenu/okmessage.lazy.html\", {\r\n okButton: this.services.multiLanguageService.getString(\"buttons.confirm\"),\r\n okButtonTitle: this.services.multiLanguageService.getString(\"buttons.generic.popup\"),\r\n confirmMessage: this.services.multiLanguageService.getString(\"sidebar.asset_comments.unable_to_delete_comment\")\r\n });\r\n });\r\n};\r\n\r\nCommentController.prototype.toggleReplyOption = function (activeEditor) {\r\n this.hideReplySection = activeEditor;\r\n\r\n this.onUpdate({ commentInProgress: activeEditor, isNewComment: false });\r\n};\r\n\r\nCommentController.prototype.onReplyStateChange = function (activeReply) {\r\n this.activeReply = activeReply;\r\n\r\n this.onUpdate({ commentInProgress: activeReply, isNewComment: false });\r\n};\r\n\r\nCommentController.prototype._updateMainArialLabel = function () {\r\n this.mainAriaLabel = this.services.multiLanguageService.getString(\"sidebar.asset_comments.comment_n_of_total_made_by_name_at_on\", {\r\n number: this.commentIndex,\r\n total: this.commentCount,\r\n name: this.data.Poster.Name,\r\n time: this.services.$filter(\"pebbleDate\")(this.data.Posted, \"timeOnly\"),\r\n date: this.services.$filter(\"pebbleDate\")(this.data.Posted)\r\n });\r\n};\r\n","export default `

0\" class=\"comment__omission-before\"> {{::vm.services.multiLanguageService.getString('sidebar.asset_comments.omitted_before', { omissionBefore: vm.data.OmissionBefore })}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\n\r\nangularAMD.factory(\"assetFeedbackService\", [\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"AssetEndpointService\",\r\n function ($http, baseUrlsFactory, AssetEndpointService) {\r\n return {\r\n getFeedback: function (mainAssetId, pageAssetId = \"\", anchorId = \"\") {\r\n var params = {\r\n assetId: mainAssetId,\r\n pageAssetId: pageAssetId,\r\n anchorId: anchorId\r\n };\r\n\r\n return AssetEndpointService.getFeedback(params);\r\n },\r\n\r\n getFeedbackById: function (feedbackId, assetId, submissionId) {\r\n return AssetEndpointService.getSingleFeedback({\r\n feedbackId: feedbackId,\r\n assetId: assetId,\r\n submissionId: submissionId\r\n });\r\n },\r\n\r\n addFeedback: function (feedbackItem) {\r\n return AssetEndpointService.addFeedback(\r\n {\r\n feedbackType: feedbackItem.FeedbackType\r\n },\r\n feedbackItem\r\n );\r\n },\r\n\r\n saveMultipleFeedback: function (feedbackItems, feedbackType, assetId, submissionId) {\r\n return AssetEndpointService.saveMultipleFeedback(\r\n {\r\n feedbackType: feedbackType,\r\n assetId: assetId,\r\n submissionId: submissionId\r\n },\r\n feedbackItems\r\n );\r\n },\r\n\r\n editFeedback: function (feedbackItem) {\r\n return AssetEndpointService.editFeedback(\r\n {\r\n feedbackType: feedbackItem.FeedbackType\r\n },\r\n feedbackItem\r\n );\r\n },\r\n\r\n deleteFeedback: function (assetId, feedbackId) {\r\n return AssetEndpointService.deleteFeedback({\r\n assetId: assetId,\r\n feedbackId: feedbackId\r\n });\r\n },\r\n\r\n getState: function (feedbackId) {\r\n return $http.get(`${baseUrlsFactory.api_base_url}FeedbackState/${feedbackId}`);\r\n },\r\n\r\n getReplyToFeedback: function (assetId, replyId, feedbackId) {\r\n return AssetEndpointService.getReplyToFeedback({ assetId: assetId, replyId: replyId, feedbackId: feedbackId });\r\n },\r\n\r\n addNewOrUpdateReplyToFeedback: function (dto) {\r\n dto.Comment = dto.Body;\r\n\r\n return AssetEndpointService.addNewOrUpdateReplyToFeedback(\r\n {\r\n assetId: dto.AssetId\r\n },\r\n dto\r\n );\r\n },\r\n\r\n deleteReplyToFeedback: function (dto) {\r\n var params = {\r\n assetId: dto.AssetId,\r\n feedbackId: dto.ParentId,\r\n replyId: dto.Id\r\n };\r\n\r\n return AssetEndpointService.deleteReplyToFeedback(params);\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSESSMENT_CONSTANTS } from \"../../../../constants/assessment.constants\";\r\nimport { MAP_TO_STANDARDS_CONSTANTS } from \"../../../../constants/mapToStandards.constants\";\r\nimport \"../../../../utilities/helpers\";\r\nimport \"../../../../utilities/urlService\";\r\nimport \"../../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../../feedbackLeftOnChoice/feedbackLeftOn.service\";\r\n\r\nclass FeedbackHelper {\r\n constructor(multiLanguageService, $q, $routeParams, helpers, urlService, feedbackLeftOnService) {\r\n this.multiLanguageService = multiLanguageService;\r\n this.$q = $q;\r\n this.helpers = helpers;\r\n this.$routeParams = $routeParams;\r\n this.urlService = urlService;\r\n this._approvalStrings = new Map();\r\n this.feedbackLeftOnService = feedbackLeftOnService;\r\n\r\n this.STATES = {\r\n NOPERMISSION: \"NoPermission\", // user can't do anything so hide all\r\n ADDINGWRITTEN: \"AddingWritten\", // user is adding normal feedback\r\n ADDINGGRADE: \"AddingGrade\", // user is adding a grade\r\n ADDINGTEMPLATE: \"AddingTemplate\", // user is adding a feedback template\r\n ADDINGBLOCKLEVEL: \"AddingBlockLevel\", // user is adding a feedback comment to a block\r\n ADDINGAPPROVAL: \"AddingApproval\", // user is adding an approval to a block\r\n ADDINGSCORECARD: \"AddingScorecard\" // user is adding a scorecard to a submission\r\n };\r\n\r\n this.GRADEFORMATS = {\r\n PERCENTAGE: \"Percentage\",\r\n STRING: \"String\"\r\n };\r\n }\r\n\r\n createAddFeedbackDto(type, assetId, status = \"\") {\r\n return {\r\n FeedbackType: type || ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.COMMENT,\r\n Comment: \"\",\r\n Released: true,\r\n AssetId: assetId || \"\",\r\n Attachments: [],\r\n FeedbackTemplates: [],\r\n Posted: new Date().toISOString(),\r\n Id: \"00000000-0000-0000-0000-000000000000\",\r\n Permissions: {},\r\n Replies: [],\r\n LeftOn: {},\r\n Status: status,\r\n AnchorId: null\r\n };\r\n }\r\n\r\n createAddAssessorFeedbackDto(assetId, elementDto) {\r\n return {\r\n Modifier: {},\r\n LeftOn: {},\r\n Values: [],\r\n AnchorId: elementDto.Id,\r\n FeedbackType: ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.ASSESSOR_FIELD,\r\n SubType: elementDto.ElementType,\r\n IsNew: true,\r\n AssetId: assetId\r\n };\r\n }\r\n\r\n createAddScorecardDto(assetId, permissions) {\r\n let scores = [];\r\n if (permissions.ScorecardTemplateComponents !== null) {\r\n scores = permissions.ScorecardTemplateComponents.map((component) => {\r\n return {\r\n Title: component.Title,\r\n Description: component.Description,\r\n Score: null,\r\n Weighting: component.Weighting,\r\n ScorecardTemplateComponentId: component.Id\r\n };\r\n });\r\n }\r\n return {\r\n FeedbackType: ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.SCORECARD,\r\n AssetId: assetId || \"\",\r\n Attachments: [],\r\n FeedbackTemplates: [],\r\n Posted: new Date().toISOString(),\r\n Id: \"00000000-0000-0000-0000-000000000000\",\r\n Permissions: {},\r\n Replies: [],\r\n LeftOn: {},\r\n Status: \"\",\r\n AnchorId: null,\r\n Scores: scores,\r\n Weighted: permissions.IsScorecardWeighted,\r\n Grade: null,\r\n TotalScore: null\r\n };\r\n }\r\n\r\n getStateTitle(state) {\r\n switch (state) {\r\n case this.STATES.ADDINGGRADE:\r\n return this.multiLanguageService.getString(\"atlas_sidebar.feedback_types.grade.add\");\r\n case this.STATES.ADDINGWRITTEN:\r\n return this.multiLanguageService.getString(\"atlas_sidebar.feedback_types.written.add\");\r\n case this.STATES.ADDINGTEMPLATE:\r\n return this.multiLanguageService.getString(\"atlas_sidebar.feedback_types.template.add\");\r\n case this.STATES.ADDINGSCORECARD:\r\n return this.multiLanguageService.getString(\"atlas_sidebar.feedback_types.scorecard.add\");\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n getApprovalValidation(status) {\r\n const validation = {\r\n valid: true,\r\n message: \"\"\r\n };\r\n\r\n if (status === \"\") {\r\n validation.valid = false;\r\n validation.message = this.multiLanguageService.getString(\"sidebar.asset_feedback.approval_status_missing\");\r\n }\r\n\r\n return validation;\r\n }\r\n\r\n getFeedbackValidation(feedbackText, attachments = [], templates = []) {\r\n const validation = {\r\n valid: true,\r\n message: \"\"\r\n };\r\n\r\n if (attachments.length === 0 && templates.length === 0 && this.isEmpty(feedbackText)) {\r\n validation.valid = false;\r\n validation.message = this.multiLanguageService.getString(\"sidebar.asset_feedback.blank_feedback_edit\");\r\n }\r\n\r\n return validation;\r\n }\r\n\r\n getAssessorFeedbackValidation(feedback) {\r\n const isValid = feedback.Values !== undefined && feedback.Values.length > 0 && feedback.Values.every((v) => !this.isEmpty(v));\r\n\r\n return {\r\n valid: isValid,\r\n message: isValid ? \"\" : this.multiLanguageService.getString(\"sidebar.asset_feedback.blank_assessor_feedback_edit\")\r\n };\r\n }\r\n\r\n getGradeValidation(feedbackString) {\r\n const validation = {\r\n valid: true,\r\n message: \"\"\r\n };\r\n\r\n if (this.isEmpty(feedbackString)) {\r\n validation.valid = false;\r\n validation.message = this.multiLanguageService.getString(\"sidebar.asset_feedback.blank_grade_edit\");\r\n } else if (this.usingPercentages && !this.isValidGradePercentage(feedbackString)) {\r\n validation.valid = false;\r\n validation.message = this.multiLanguageService.getString(\"sidebar.asset_feedback.percentage_error_message\");\r\n } else if (feedbackString.length >= 100) {\r\n validation.valid = false;\r\n validation.message = this.multiLanguageService.getString(\"sidebar.asset_feedback.grade_is_too_long\");\r\n }\r\n\r\n return validation;\r\n }\r\n\r\n getScorecardValidation(changes) {\r\n const validation = {\r\n valid: true,\r\n message: \"\"\r\n };\r\n\r\n const noScores = changes.Scores.every((x) => x.Score === \"\" || x.Score === null);\r\n if (noScores && (changes.Grade === null || changes.Grade === \"\")) {\r\n validation.valid = false;\r\n validation.message = this.multiLanguageService.getString(\"sidebar.asset_feedback.blank_scorecard_edit\");\r\n }\r\n\r\n if (changes.Grade !== null && changes.Grade.length >= 100) {\r\n validation.valid = false;\r\n validation.message = this.multiLanguageService.getString(\"sidebar.asset_feedback.grade_is_too_long\");\r\n }\r\n\r\n return validation;\r\n }\r\n\r\n getApprovalCollectionValidation(status, feedbackString) {\r\n const validation = {\r\n valid: true,\r\n message: \"\"\r\n };\r\n\r\n if (status === \"\") {\r\n validation.valid = false;\r\n validation.message = this.multiLanguageService.getString(\"atlas_sidebar.tabs.mapping_approval.error_messages.no_option_selected_error\");\r\n } else if (status === MAP_TO_STANDARDS_CONSTANTS.STATUS.REJECTED && this.isEmpty(feedbackString)) {\r\n validation.valid = false;\r\n validation.message = this.multiLanguageService.getString(\"atlas_sidebar.tabs.mapping_approval.error_messages.no_justification_error\");\r\n }\r\n\r\n return validation;\r\n }\r\n\r\n isEmpty(comment) {\r\n return !/\\S/g.test(this.helpers.htmlToPlain(comment));\r\n }\r\n\r\n isValidGradePercentage(value) {\r\n const floatValue = parseFloat(value);\r\n if (isNaN(floatValue)) {\r\n return false;\r\n } else {\r\n return floatValue <= 100.0 && floatValue >= 0.0;\r\n }\r\n }\r\n\r\n setDefaults(permissions) {\r\n return {\r\n displayIWantTo: permissions,\r\n displayMenuBar: true,\r\n displayFeedbackList: true,\r\n feedback: null,\r\n validator: () => ({\r\n valid: true,\r\n message: \"\"\r\n }),\r\n data: {}\r\n };\r\n }\r\n\r\n setApprovalDefaults(assetId, anchorId, status = \"\", level) {\r\n const approvalDefaults = {\r\n displayIWantTo: false,\r\n displayMenuBar: false,\r\n displayFeedbackList: true,\r\n feedback: this.createAddFeedbackDto(level, assetId, status),\r\n validator: (feedback) => this.getApprovalValidation(feedback.Status),\r\n data: {}\r\n };\r\n if (anchorId !== undefined) {\r\n approvalDefaults.feedback.AnchorId = anchorId;\r\n }\r\n\r\n return approvalDefaults;\r\n }\r\n\r\n setFeedbackDefaults(assetId) {\r\n return {\r\n displayIWantTo: false,\r\n displayMenuBar: false,\r\n displayFeedbackList: true,\r\n feedback: this.createAddFeedbackDto(ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.COMMENT, assetId),\r\n validator: (feedback) => this.getFeedbackValidation(feedback.Comment, feedback.Attachments),\r\n data: {}\r\n };\r\n }\r\n\r\n setGradeDefaults(assetId) {\r\n return {\r\n displayIWantTo: false,\r\n displayMenuBar: false,\r\n displayFeedbackList: true,\r\n feedback: this.createAddFeedbackDto(ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.GRADE, assetId),\r\n validator: (feedback) => this.getGradeValidation(feedback.Comment),\r\n data: {\r\n gradeFormat: this.GRADEFORMATS.STRING\r\n }\r\n };\r\n }\r\n\r\n setNumericGradeDefaults(assetId, callback) {\r\n return {\r\n displayIWantTo: false,\r\n displayMenuBar: false,\r\n displayFeedbackList: true,\r\n feedback: this.createAddFeedbackDto(ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.GRADE, assetId),\r\n validator: (feedback) => this.getGradeValidation(feedback.Comment),\r\n data: {\r\n gradeFormat: this.GRADEFORMATS.PERCENTAGE,\r\n gradeSettings: {\r\n decimalPlaces: 0,\r\n max: 100,\r\n min: 0,\r\n value: 0,\r\n eventId: \"\",\r\n hideClearBtn: true,\r\n ariaLabel: this.multiLanguageService.getString(\"atlas_sidebar.a11y.grade_input_edit\"),\r\n onValueChange: callback\r\n }\r\n }\r\n };\r\n }\r\n\r\n setScorecardDefaults(permissions, assetId) {\r\n return {\r\n displayIWantTo: false,\r\n displayMenuBar: false,\r\n displayFeedbackList: false,\r\n canBeLeftOnPage: false,\r\n feedback: this.createAddScorecardDto(assetId, permissions),\r\n validator: (feedback) => this.getScorecardValidation(feedback),\r\n data: {\r\n components: permissions.ScorecardTemplateComponents,\r\n altGradeEnabled: permissions.IsScorecardAlternativeGradeEnabled,\r\n isWeighted: permissions.IsScorecardWeighted\r\n }\r\n };\r\n }\r\n\r\n setTemplateDefaults() {\r\n return {\r\n displayIWantTo: false,\r\n displayMenuBar: false,\r\n displayFeedbackList: false,\r\n feedback: null,\r\n validator: () => ({\r\n valid: true,\r\n message: \"\"\r\n }),\r\n data: {}\r\n };\r\n }\r\n\r\n setPageVerificationDefaults(assetId, pageId) {\r\n const leaveFeedbackOnAssetId = this.feedbackLeftOnService.getLeftOnAssetInfo(assetId, pageId).leaveFeedbackOnAssetId;\r\n let newFeedback = this.createAddFeedbackDto(ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.PAGEVERIFICATION, leaveFeedbackOnAssetId);\r\n return {\r\n displayIWantTo: false,\r\n displayMenuBar: false,\r\n displayFeedbackList: true,\r\n feedback: newFeedback,\r\n validator: () => ({\r\n valid: true,\r\n message: \"\"\r\n }),\r\n data: {}\r\n };\r\n }\r\n\r\n getLeftOnString(pageTitle) {\r\n return this.multiLanguageService.getString(\"sidebar.asset_feedback.labels.left_on\", { page: pageTitle });\r\n }\r\n\r\n getLeftOnOriginString(originName, subOriginName) {\r\n if (originName !== null && subOriginName !== null) {\r\n return this.multiLanguageService.getString(\"sidebar.asset_feedback.labels.left_from_multiple\", { title1: originName, title2: subOriginName });\r\n }\r\n\r\n if (subOriginName !== null) {\r\n return this.multiLanguageService.getString(\"sidebar.asset_feedback.labels.left_from\", { title: subOriginName });\r\n }\r\n\r\n if (originName !== null) {\r\n return this.multiLanguageService.getString(\"sidebar.asset_feedback.labels.left_from\", { title: originName });\r\n }\r\n }\r\n\r\n getLeftOnRelativeLink(mainAssetId, pageId, forwardingTimeslice) {\r\n let timeslice = forwardingTimeslice;\r\n if (forwardingTimeslice === null) {\r\n timeslice = this.urlService.getTimesliceFromRoute();\r\n }\r\n\r\n const baseUrl = this.urlService.createHashUrl(mainAssetId, null, true, false, timeslice, this.$routeParams.submissionId);\r\n\r\n let paramsToAdd = [];\r\n if (this.$routeParams.historyId) {\r\n paramsToAdd.push({ key: \"historyId\", value: this.$routeParams.historyId });\r\n }\r\n if (pageId !== null) {\r\n paramsToAdd.push({ key: \"pageId\", value: pageId });\r\n }\r\n\r\n return this.urlService.addParameters(baseUrl, paramsToAdd);\r\n }\r\n\r\n setApprovalLevelStringsFromSettings(settings) {\r\n this._approvalStrings.clear();\r\n settings.forEach((setting) => this._approvalStrings.set(setting.ApprovalType, setting.Title));\r\n }\r\n\r\n getApprovalLevelString(level) {\r\n const matchingSetting = this._approvalStrings.get(level);\r\n return matchingSetting !== undefined ? matchingSetting : this.multiLanguageService.getString(\"sidebar.asset_feedback.type_titles.approval\", \"\");\r\n }\r\n\r\n getLastFeedbackItemOfType(array, assetId, type) {\r\n for (let i = array.length - 1; i >= 0; i--) {\r\n if (array[i].AssetId === assetId && array[i].FeedbackType === type) {\r\n return array[i];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nFeedbackHelper.$inject = [\"multiLanguageService\", \"$q\", \"$routeParams\", \"helpers\", \"urlService\", \"feedbackLeftOnService\"];\r\nangularAMD.service(\"feedbackHelper\", FeedbackHelper);\r\nexport { FeedbackHelper as feedbackHelper };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSESSMENT_CONSTANTS } from \"../../../../constants/assessment.constants\";\r\nimport \"../../../../user/user.service\";\r\n\r\nSubmissionPermissionHelper.$inject = [\"$q\", \"User\"];\r\n\r\nfunction SubmissionPermissionHelper($q, user) {\r\n this.services = {\r\n user: user,\r\n $q: $q\r\n };\r\n\r\n this.supportedPermissions = [\"AddFeedbackComments\", \"AddGrades\", \"AddLevelOneApprovals\", \"AddLevelTwoApprovals\", \"AddLevelThreeApprovals\", \"AddPageVerifications\"];\r\n}\r\n\r\nSubmissionPermissionHelper.prototype.getPermissions = function () {\r\n var user = this.services.user.getDto();\r\n return user !== null ? user.SubmissionPermissions : null;\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.hasSupportedPermissions = function () {\r\n var user = this.services.user.getDto();\r\n if (user === null) {\r\n return false;\r\n }\r\n\r\n var keys = Object.keys(user.SubmissionPermissions);\r\n return keys.some(\r\n function (key) {\r\n return user.SubmissionPermissions[key] && this.supportedPermissions.indexOf(key) !== -1;\r\n }.bind(this)\r\n );\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.doesWorkspaceAllowRelease = function () {\r\n var releaseSetting = this.getFeedbackReleaseSetting();\r\n return (\r\n releaseSetting === ASSESSMENT_CONSTANTS.RELEASE_SETTINGS.ALWAYS_RELEASE ||\r\n releaseSetting === ASSESSMENT_CONSTANTS.RELEASE_SETTINGS.DEFAULT_HOLD ||\r\n releaseSetting === ASSESSMENT_CONSTANTS.RELEASE_SETTINGS.DEFAULT_RELEASE\r\n );\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.getFeedbackReleaseSetting = function (feedbackType) {\r\n const user = this.services.user.getDto();\r\n if (user === null || user.SubmissionPermissions === null || user.SubmissionPermissions === undefined) {\r\n return \"\";\r\n }\r\n\r\n switch (feedbackType) {\r\n case ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL_LEVEL_ONE:\r\n return user.SubmissionPermissions.ReleaseLevelOneApprovals === true ? user.SubmissionPermissions.ReleaseFeedbackSetting : ASSESSMENT_CONSTANTS.RELEASE_SETTINGS.ALWAYS_HOLD;\r\n case ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL_LEVEL_TWO:\r\n return user.SubmissionPermissions.ReleaseLevelTwoApprovals === true ? user.SubmissionPermissions.ReleaseFeedbackSetting : ASSESSMENT_CONSTANTS.RELEASE_SETTINGS.ALWAYS_HOLD;\r\n case ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL_LEVEL_THREE:\r\n return user.SubmissionPermissions.ReleaseLevelThreeApprovals === true ? user.SubmissionPermissions.ReleaseFeedbackSetting : ASSESSMENT_CONSTANTS.RELEASE_SETTINGS.ALWAYS_HOLD;\r\n case ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.PAGEVERIFICATION:\r\n return user.SubmissionPermissions.ReleasePageVerifications === true ? ASSESSMENT_CONSTANTS.RELEASE_SETTINGS.ALWAYS_RELEASE : ASSESSMENT_CONSTANTS.RELEASE_SETTINGS.ALWAYS_HOLD;\r\n default:\r\n return user.SubmissionPermissions.ReleaseFeedbackSetting;\r\n }\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.getSubmissionsMainAssetId = function () {\r\n var user = this.services.user.getDto();\r\n return user !== null && user.SubmissionPermissions ? user.SubmissionPermissions.SubmissionsMainAssetRefId : \"\";\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.hasCorrectRoleForElement = function (userDto, elementDto) {\r\n if (!elementDto.EditAvailableFor || elementDto.EditAvailableFor.length === 0) {\r\n return true;\r\n }\r\n var useRole = userDto.Role.toLowerCase();\r\n return elementDto.EditAvailableFor.some(function (role) {\r\n return role.toLowerCase() === useRole;\r\n });\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.canUserFillInAssessorFields = function (userDto) {\r\n return (this.canUserAddAssessorFeedback(userDto) || this.userHasManageFeedback(userDto)) && userDto.SubmissionPermissions.CanModifyAssessorFeedback;\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.canUserAddAssessorFeedback = function (userDto) {\r\n return Boolean(userDto && userDto.SubmissionPermissions && userDto.SubmissionPermissions.AddAssessorFeedback);\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.userHasManageFeedback = function (userDto) {\r\n return Boolean(userDto && userDto.SubmissionPermissions && userDto.SubmissionPermissions.ManageFeedback);\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.canUserAddFeedbackComments = function (userDto = null) {\r\n return Boolean(\r\n userDto !== null &&\r\n userDto.SubmissionPermissions !== undefined &&\r\n userDto.SubmissionPermissions.CanAddBlockFeedback &&\r\n userDto.SubmissionPermissions.AddFeedbackComments &&\r\n userDto.SubmissionPermissions.CanAddFeedback\r\n );\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.canUserAddCapabilityApprovals = function (userDto = null) {\r\n return Boolean(userDto !== null && userDto.SubmissionPermissions !== undefined && userDto.SubmissionPermissions.AddCapabilityApprovals && userDto.SubmissionPermissions.CanAddFeedback);\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.canUserEditAssessorField = function (userDto, elementDto) {\r\n return Boolean(\r\n userDto &&\r\n userDto.SubmissionPermissions &&\r\n (userDto.SubmissionPermissions.ManageFeedback || (userDto.UserId === elementDto.AnswerLastUpdatedBy && userDto.SubmissionPermissions.AddAssessorFeedback))\r\n );\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.canUserFillInAssessorField = function (userDto, elementDto) {\r\n if (elementDto.IsNew) {\r\n return this.canUserAddAssessorFeedback(userDto) && this.hasCorrectRoleForElement(userDto, elementDto);\r\n }\r\n\r\n if (this.userHasManageFeedback(userDto)) {\r\n return true;\r\n }\r\n\r\n return this.canUserEditAssessorField(userDto, elementDto) && this.hasCorrectRoleForElement(userDto, elementDto);\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.isOwnerOrCollaborator = function (userDto, assetRefResponse, asset) {\r\n return Boolean(\r\n userDto && assetRefResponse && (asset.CreatedBy === userDto.UserId || (assetRefResponse.CollaborateWithUsers && assetRefResponse.CollaborateWithUsers.indexOf(userDto.UserId) >= 0))\r\n );\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.doesWorkspaceRestrictRecallingFeedback = function (userDto) {\r\n return Boolean(userDto && userDto.SubmissionPermissions && userDto.SubmissionPermissions.RestrictRecallFeedback);\r\n};\r\n\r\nSubmissionPermissionHelper.prototype.getScorecardSettings = function () {\r\n var user = this.services.user.getDto();\r\n if (user !== null && user.SubmissionPermissions) {\r\n const permissions = user.SubmissionPermissions;\r\n return {\r\n components: permissions.ScorecardTemplateComponents,\r\n altGradeEnabled: permissions.IsScorecardAlternativeGradeEnabled,\r\n isWeighted: permissions.IsScorecardWeighted\r\n };\r\n }\r\n};\r\n\r\nangularAMD.service(\"SubmissionPermissionHelper\", SubmissionPermissionHelper);\r\n\r\nexport { SubmissionPermissionHelper };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../utilities/urlService\";\r\n\r\nangularAMD.factory(\"spaLogOutService\", [\r\n \"$http\",\r\n \"$window\",\r\n \"baseUrlsFactory\",\r\n \"urlService\",\r\n function ($http, $window, baseUrlsFactory, urlService) {\r\n var factory = {};\r\n\r\n factory.logOut = function () {\r\n try {\r\n $window.localStorage.setItem(\"seenWelcomeModal\", false);\r\n // tslint:disable-next-line:no-empty\r\n } catch (e) {}\r\n\r\n $http.defaults.withCredentials = true;\r\n return urlService.promisedPost(baseUrlsFactory.api_base_url + \"SharedMenu/Logout\");\r\n };\r\n\r\n return factory;\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../expandable/expandable\";\r\nimport \"../../../assetEndpointService/assetEndpoint.service\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\n\r\nangularAMD.factory(\"spaSelectorService\", [\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"AssetEndpointService\",\r\n \"multiLanguageService\",\r\n function ($http, baseUrlsFactory, AssetEndpointService, multiLanguageService) {\r\n const factory = {};\r\n const subTypeMap = {\r\n document: \"Documents\"\r\n };\r\n const defaultItemsForSelectorMapper = {\r\n AssetStoreAndResourceCentre: (selectorData) => {\r\n const assets = selectorData[0].Items;\r\n const resources = selectorData[1].Items.map((r) => ({ ...r, Subtitle: multiLanguageService.getString(`labels.selector.subtitles.${r.MainType.toLowerCase()}`) }));\r\n\r\n const merged = assets.concat(resources).sort((a, b) => (a.LastModified <= b.LastModified ? 1 : -1));\r\n return {\r\n Description: multiLanguageService.getString(\"labels.selector.asset_and_resource\", { count: merged.length }),\r\n Items: merged\r\n };\r\n },\r\n default: (selectorData) => selectorData[0]\r\n };\r\n\r\n factory.getDefaultItemsForSelector = function (select_type, main_types, sub_types, exclude_ids, exclude_main_types, exclude_children_of, ownerships, config) {\r\n $http.defaults.withCredentials = true;\r\n const selectorObj = {\r\n SelectType: select_type,\r\n MainTypes: main_types,\r\n SubTypes: Array.isArray(sub_types) ? this.convertSubTypesToSearchSubTypes(sub_types) : null,\r\n ExcludeIds: exclude_ids,\r\n ExcludeChildrenOf: exclude_children_of,\r\n ExcludeMainTypes: exclude_main_types,\r\n Ownerships: ownerships\r\n };\r\n\r\n const responseMapper = defaultItemsForSelectorMapper[select_type] ?? defaultItemsForSelectorMapper.default;\r\n return $http\r\n .post(baseUrlsFactory.api_base_url + \"SharedMenu/GetDefaultItemsForSelector\", selectorObj, config)\r\n .then((response) => (response.data.length > 0 ? responseMapper(response.data) : { Items: [], Description: \"\" }));\r\n };\r\n\r\n factory.getFeedbackTemplates = function () {\r\n $http.defaults.withCredentials = true;\r\n return AssetEndpointService.getFeedbackTemplates();\r\n };\r\n\r\n factory.getSelectorsBasedOnIds = function (select_type, ids, config) {\r\n $http.defaults.withCredentials = true;\r\n const selectorObj = {\r\n SelectType: select_type,\r\n Ids: ids\r\n };\r\n return $http.post(baseUrlsFactory.api_base_url + \"SharedMenu/GetSelectorsForSpecifiedIds\", selectorObj, config);\r\n };\r\n\r\n factory.convertSubTypesToSearchSubTypes = function (subTypes) {\r\n return subTypes.map(function (subType) {\r\n const value = subTypeMap[subType.toLowerCase()];\r\n return value !== undefined ? value : subType;\r\n });\r\n };\r\n\r\n return factory;\r\n }\r\n]);\r\n","export enum ApprovalStatus {\r\n Positive = \"Positive\",\r\n Neutral = \"Neutral\",\r\n Negative = \"Negative\"\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ButtonClass } from \"@pjs/core-ui\";\r\nimport { informationNotice } from \"@pjs/core-ui\";\r\nimport \"../../../../utilities/baseUrlsFactory\";\r\nimport \"../../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../../modal/services/modal\";\r\nimport \"../../../../utilities/helpers\";\r\nimport \"../../../../user/user.service\";\r\nimport \"../../../../react2angular/htmlLabelCheckbox\";\r\nimport \"../../../../react2angular/htmlNotice\";\r\nimport \"../../../../react2angular/buttonComponent\";\r\nimport \"../../../../persistentCompactRichTextEditor/stickyPersistentCompactRichTextEditor.component\";\r\nimport { withDigest } from \"../../../../react2angular/utilities/WithDigest.function\";\r\nimport template from \"../templates/comment-input-box.html\";\r\n\r\nangularAMD.directive(\"commentInputBox\", CommentInputBox);\r\nCommentInputBox.$inject = [];\r\n\r\nangularAMD.controller(\"CommentInputBoxController\", CommentInputBoxController);\r\nCommentInputBoxController.$inject = [\"$rootScope\", \"$compile\", \"$timeout\", \"$scope\", \"baseUrlsFactory\", \"multiLanguageService\", \"modal\", \"helpers\", \"User\"];\r\n\r\n//Injectors\r\nvar $rootScope, $compile, $timeout, $scope, baseUrlsFactory, multiLanguageService, modal, helpers, User;\r\n\r\nfunction SimpleCommentDto(body, author, isPageComment) {\r\n this.body = body ?? \"\";\r\n this.author = author ?? \"\";\r\n this.isPageComment = isPageComment ?? false;\r\n}\r\n\r\n//Directive\r\n//==============================================================================================================\r\nfunction CommentInputBox() {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n scope: {\r\n commentBody: \"=\",\r\n modifying: \"@\",\r\n submitText: \"@\",\r\n cancelText: \"@\",\r\n onSubmit: \"&\", //Expects to be called with {body: String, author: String}\r\n onCancel: \"&\", //Expects {active: false}\r\n autoFocus: \"@\",\r\n commentTitle: \"@?\",\r\n a11ySubmitText: \"@\",\r\n a11yCancelText: \"@\",\r\n onUpdate: \"&\",\r\n editorLabel: \"<\",\r\n pageData: \".\r\n if (this.validateField(this.comment.body) === false) {\r\n this.launchErrorModal(this.multiLanguageService.getString(\"sidebar.asset_comments.no_comment_error_message\"));\r\n return false;\r\n }\r\n\r\n if (this.comment.body.length > 50000) {\r\n this.launchErrorModal(this.multiLanguageService.getString(\"sidebar.asset_comments.comment_too_long\"));\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nCommentInputBoxController.prototype.validateField = function (field) {\r\n return /\\S/g.test(helpers.htmlToPlain(field));\r\n};\r\n\r\nCommentInputBoxController.prototype.submit = function () {\r\n this.onSubmit({ data: new SimpleCommentDto(this.comment.body, this.comment.author, this.comment.isPageComment) })\r\n .then(() => {\r\n this._cancelEdit();\r\n })\r\n .catch(() => {\r\n this.launchErrorModal(this.multiLanguageService.getString(\"sidebar.asset_comments.unable_to_save_comment\"));\r\n this.disableButtons = false;\r\n });\r\n};\r\n\r\nCommentInputBoxController.prototype._cancelEdit = function () {\r\n this.comment.body = \"\";\r\n this.comment.author = \"\";\r\n this.comment.isPageComment = false;\r\n this.commentBody = this.originalCommentBody;\r\n this.disableButtons = false;\r\n this.firstChange = true;\r\n\r\n this.updateCommentBody(\"\");\r\n this.onCancel({ active: false });\r\n this.onUpdate({ commentInProgress: false, isNewComment: true });\r\n};\r\n\r\nCommentInputBoxController.prototype.launchErrorModal = function (message) {\r\n var modalScope = $rootScope.$new(true);\r\n modalScope.multiLanguageService = multiLanguageService;\r\n modalScope.confirmMessage = message;\r\n modalScope.okButton = this.multiLanguageService.getString(\"buttons.confirm\");\r\n modalScope.okButtonTitle = this.multiLanguageService.getString(\"buttons.generic.popup\");\r\n\r\n modalScope.onClose = function () {\r\n modalScope.$destroy();\r\n modalScope = null;\r\n };\r\n\r\n return modal.newModal({\r\n scope: modalScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"spaMenu/okmessage.lazy.html\"\r\n });\r\n};\r\n\r\nCommentInputBoxController.prototype.cacheElements = function (parentElement) {\r\n this.elements.authorField = parentElement.getElementsByClassName(\"poster-name\")[0];\r\n};\r\n\r\nCommentInputBoxController.prototype.focusInField = function () {\r\n if (!this.requiresAuthor) {\r\n return;\r\n }\r\n\r\n return $timeout(\r\n function () {\r\n if (this.elements.authorField) {\r\n this.elements.authorField.focus();\r\n }\r\n }.bind(this)\r\n );\r\n};\r\n\r\nCommentInputBoxController.prototype.updateCommentBody = function (content) {\r\n if (this.firstChange && content !== \"\") {\r\n this.firstChange = false;\r\n this.onUpdate({\r\n commentInProgress: true,\r\n isNewComment: true\r\n });\r\n }\r\n this.comment.body = content;\r\n};\r\n\r\nCommentInputBoxController.prototype.onInit = function (parentElement) {\r\n this.comment.body = this.commentBody || \"\";\r\n this.comment.isPageComment = false;\r\n this.cacheElements(parentElement);\r\n if (this.autoFocus === \"true\") {\r\n this.focusInField();\r\n }\r\n};\r\n\r\nCommentInputBoxController.prototype.$onChanges = function (changes) {\r\n if (changes.pageData !== undefined) {\r\n this._updateIsPageComment(changes.pageData.previousValue);\r\n }\r\n};\r\n\r\nCommentInputBoxController.prototype._onPageChange = function (isChecked) {\r\n this.comment.isPageComment = isChecked;\r\n};\r\n\r\nCommentInputBoxController.prototype._updateIsPageComment = function (previousPageData) {\r\n if (this.pageData?.mainAssetId !== previousPageData?.mainAssetId) {\r\n this.comment.isPageComment = false;\r\n }\r\n};\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./sidebar-elements-view-section.html\";\r\nimport { MAP_TO_STANDARDS_CONSTANTS } from \"../../../../constants/mapToStandards.constants\";\r\nimport \"../../../../mapToStandards/mapToStandardsWrapper/standardsRatingSlider/standardsRatingSlider.component\";\r\nimport \"../../../../mapToStandards/mapToStandardsWrapper/standardsRatingInfo/standardsRatingInfo.component\";\r\nimport \"../../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../../userStatusPermissionsService/userStatusPermissions.service\";\r\nimport \"../../../../utilities/scrollToElement.service\";\r\n\r\nclass SidebarElementsViewSection extends NgComponent {\r\n constructor($location, multiLanguageService, standardsOverviewService, userStatusPermissions, scrollToElementService) {\r\n super();\r\n\r\n this.MAP_TO_STANDARDS_CONSTANTS = MAP_TO_STANDARDS_CONSTANTS;\r\n this.$location = $location;\r\n\r\n this.standardsOverviewService = standardsOverviewService;\r\n this.multiLanguageService = multiLanguageService;\r\n this.userStatusPermissions = userStatusPermissions;\r\n this._scrollToElementService = scrollToElementService;\r\n\r\n this.aggregateText = this.multiLanguageService.getString(\"labels.viewer.standards_overview.aggregate_text\");\r\n this.thumbDimensions = {\r\n thumbHeight: MAP_TO_STANDARDS_CONSTANTS.RATING_SLIDER.DEFAULT_VALUES.THUMB_HEIGHT,\r\n thumbWidth: MAP_TO_STANDARDS_CONSTANTS.RATING_SLIDER.DEFAULT_VALUES.THUMB_WIDTH\r\n };\r\n }\r\n\r\n $onInit() {\r\n this.userStatusPermissions\r\n .canSelfAssess(this.assetId)\r\n .then((response) => {\r\n this.canShowRating = response;\r\n })\r\n .catch(() => {\r\n this.canShowRating = false;\r\n });\r\n }\r\n\r\n jumpToElement(pageId, elementId) {\r\n this._scrollToElementService.goToElementWithPageId(`Element${elementId}`, pageId);\r\n this.$location.search(\"pageId\", pageId);\r\n this.standardsOverviewService.toggleSidebar();\r\n }\r\n}\r\n\r\nexport const sidebarElementsViewSection = {\r\n bindings: {\r\n standards: \"<\",\r\n pageId: \"@\",\r\n assetId: \"<\"\r\n },\r\n template: template,\r\n controller: SidebarElementsViewSection\r\n};\r\n\r\nSidebarElementsViewSection.$inject = [\"$location\", \"multiLanguageService\", \"standardsOverviewService\", \"userStatusPermissions\", \"scrollToElementService\"];\r\nangularAMD.component(\"sidebarElementsViewSection\", sidebarElementsViewSection);\r\n","export default `
0}\">
0\" aria-hidden=\"true\">

{{element.EvidenceCount > 0 ? $ctrl.multiLanguageService.getString('labels.viewer.standards_overview.sidebar_elements_view.evidence_count', {count: element.EvidenceCount}) : $ctrl.multiLanguageService.getString('labels.viewer.standards_overview.sidebar_elements_view.no_evidence')}}

`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./sidebar-elements-view.html\";\r\nimport \"../../../userStatusPermissionsService/userStatusPermissions.service\";\r\nimport \"./sidebarElementViewSection/sidebarElementsViewSection.component\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../helpExpandable/helpExpandable.component\";\r\n\r\nclass SidebarElementsView extends NgComponent {\r\n constructor(multiLanguageService, userStatusPermissions) {\r\n super();\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n this.userStatusPermissions = userStatusPermissions;\r\n }\r\n\r\n $onInit() {\r\n this.userStatusPermissions\r\n .canSelfAssess(this.assetId)\r\n .then((response) => {\r\n this.canShowRating = response;\r\n })\r\n .catch(() => {\r\n this.canShowRating = false;\r\n });\r\n }\r\n}\r\n\r\nexport const sidebarElementsView = {\r\n bindings: {\r\n data: \"<\",\r\n assetId: \"<\"\r\n },\r\n template: template,\r\n controller: SidebarElementsView\r\n};\r\n\r\nSidebarElementsView.$inject = [\"multiLanguageService\", \"userStatusPermissions\"];\r\nangularAMD.component(\"sidebarElementsView\", sidebarElementsView);\r\n","export default `

{{::$ctrl.multiLanguageService.getString('labels.viewer.standards_overview.sidebar_elements_view.help.para_1')}}

{{ $ctrl.data.Title }}

{{ ::group.Title }}

`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./sidebar-elements-view-wrapper.html\";\r\nimport \"../sidebarElementsView.component\";\r\n\r\nclass SidebarElementsViewWrapper extends NgComponent {\r\n constructor($scope, multiLanguageService) {\r\n super();\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n this.$scope = $scope;\r\n }\r\n\r\n closeSidebarElementsView() {\r\n this.$scope.$emit(\"closeRightHandSidePanel\");\r\n }\r\n}\r\n\r\nexport const sidebarElementsViewWrapper = {\r\n bindings: {\r\n data: \"<\",\r\n assetId: \"<\"\r\n },\r\n template: template,\r\n controller: SidebarElementsViewWrapper\r\n};\r\n\r\nSidebarElementsViewWrapper.$inject = [\"$scope\", \"multiLanguageService\"];\r\nangularAMD.component(\"sidebarElementsViewWrapper\", sidebarElementsViewWrapper);\r\n","export default `
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../tagger/tagger\";\r\nimport \"../../../loadingSpinner/loadingSpinner\";\r\nimport \"../../services/collectionService\";\r\nimport \"../../../builder/dataManager/dtoFactory\";\r\nimport template from \"../templates/criteria-tagger.html\";\r\n\r\nangularAMD.directive(\"criteriaTagger\", [\r\n \"$sce\",\r\n \"baseUrlsFactory\",\r\n \"multiLanguageService\",\r\n \"$rootScope\",\r\n \"collectionService\",\r\n \"dtoFactory\",\r\n function ($sce, baseUrlsFactory, multiLanguageService, $rootScope, collectionService, dtoFactory) {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n scope: {\r\n wrapperId: \"@\", //String Id of CollectionWrapperDto\r\n collection: \"=\", //CollectionDto\r\n onConfirm: \"=\", //Callback Function\r\n onCancel: \"=\" //Callback Function\r\n },\r\n\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n //Initialise variables ---------------------------------------------------------------------------------\r\n $scope.multiLanguageService = multiLanguageService;\r\n $scope.criteria = {\r\n tags: []\r\n };\r\n\r\n $scope.viewData = {\r\n saving: false\r\n };\r\n\r\n //Functions --------------------------------------------------------------------------------------------\r\n $scope.validCriteria = function () {\r\n var criteria = $scope.criteria;\r\n return criteria.tags.length !== 0;\r\n };\r\n\r\n $scope.cancel = function () {\r\n $scope.criteria.tags.length = 0;\r\n $scope.onCancel();\r\n };\r\n\r\n $scope.loadFromExistingCriteria = function (collectionDto) {\r\n //Pre-load data from Collection Dto\r\n $scope.criteria.tags = $scope.collection.Search.Tags.slice(0);\r\n doSearch();\r\n };\r\n\r\n $scope.addCriteria = function () {\r\n $scope.viewData.saving = true;\r\n var collectionCriteria = $scope.collection;\r\n if (!collectionCriteria) {\r\n collectionCriteria = new dtoFactory.CollectionDto({});\r\n collectionCriteria.Search.ExcludeAssetIds = [$scope.wrapperId];\r\n }\r\n collectionCriteria.Search.Tags = $scope.criteria.tags.slice(0);\r\n $scope.onConfirm(collectionCriteria);\r\n };\r\n\r\n //Private functions ------------------------------------------------------------------------------------\r\n var eventUpdate = function (event) {\r\n event.stopPropagation();\r\n doSearch();\r\n };\r\n\r\n var doSearch = function () {\r\n var filterData = null;\r\n if ($scope.validCriteria()) {\r\n filterData = {\r\n SearchType: \"asset\",\r\n TypeFilters: [],\r\n Tags: $scope.criteria.tags\r\n };\r\n }\r\n $scope.$emit(\"criteriaUpdated\", filterData);\r\n };\r\n\r\n //Events -----------------------------------------------------------------------------------------------\r\n $scope.$on(\"tagAdded\", eventUpdate);\r\n $scope.$on(\"tagRemoved\", function (event, tag) {\r\n $scope.validCriteria();\r\n eventUpdate(event);\r\n });\r\n\r\n $scope.$on(\"$destroy\", function () {\r\n if ($scope.watcher) {\r\n $scope.watcher();\r\n }\r\n $scope.criteria.tags.length = 0;\r\n });\r\n }\r\n ],\r\n\r\n link: function (scope, element, attr) {\r\n //Init -------------------------------------------------------------------------------------------------\r\n var init = function () {\r\n scope.watcher = scope.$watch(\"collection\", function () {\r\n if (scope.collection) {\r\n scope.loadFromExistingCriteria(scope.collection);\r\n scope.watcher();\r\n }\r\n });\r\n };\r\n init();\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{::multiLanguageService.getString('collections.criteria.create_tag')}}

{{::multiLanguageService.getString('collections.criteria.tag_descriptions')}}

{{::multiLanguageService.getString('collections.criteria.labels.add_tag')}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../tagger/tagger\";\r\nimport \"../../../datePicker/datePicker\";\r\nimport \"../../../dropdown/dropdown\";\r\nimport \"../../../loadingSpinner/loadingSpinner\";\r\nimport \"../../../extensions/arrayExtensions\";\r\nimport \"../../../assetStore/services/filterFactory\";\r\nimport \"../../services/collectionService\";\r\nimport \"../../../builder/dataManager/dtoFactory\";\r\nimport \"../../../mappers/assetMapper\";\r\nimport \"../../../assetStore/directives/advancedSearchContent\";\r\nimport \"../../../utilities/helpers\";\r\nimport template from \"../templates/criteria-advanced.html\";\r\n\r\nangularAMD.directive(\"criteriaAdvanced\", [\r\n \"$sce\",\r\n \"baseUrlsFactory\",\r\n \"multiLanguageService\",\r\n \"$rootScope\",\r\n \"$timeout\",\r\n \"filterFactory\",\r\n \"collectionService\",\r\n \"dtoFactory\",\r\n \"assetMapper\",\r\n \"helpers\",\r\n function ($sce, baseUrlsFactory, multiLanguageService, $rootScope, $timeout, filterFactory, collectionService, dtoFactory, assetMapper, helpers) {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n scope: {\r\n wrapperId: \"@\", //String Id of CollectionWrapperDto\r\n collection: \"=\", //CollectionDto\r\n onConfirm: \"=\", //Callback Function\r\n onCancel: \"=\", //Callback Function\r\n disableSearchResult: \"=\",\r\n disableResponsesToFilter: \"<\",\r\n showAllTypes: \"=\", // don't get type in the filter from server... just show all\r\n allowSearchDefaulting: \"<\"\r\n },\r\n\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n //Initialise variables ---------------------------------------------------------------------------------\r\n $scope.multiLanguageService = multiLanguageService;\r\n $scope.filterFactory = new filterFactory();\r\n $scope.filterOptions = null;\r\n $scope.searchType = \"asset\";\r\n $scope.buttonOptions = [];\r\n $scope.collectionDto = new dtoFactory.CollectionDto({});\r\n $scope.collectionDto.Search.ExcludeAssetIds = [$scope.wrapperId];\r\n\r\n $scope.criteria = {\r\n assetTypes: null,\r\n responsesTo: null,\r\n ownership: null,\r\n tags: [],\r\n keywords: null,\r\n dateFrom: null,\r\n dateTo: null,\r\n enableSearchByDefault: false\r\n };\r\n\r\n $scope.viewData = {\r\n saving: false,\r\n loaded: false,\r\n labels: {\r\n dates: {\r\n after: $scope.multiLanguageService.getString(\"collections.criteria.datePicker.after\"),\r\n ariaAfter: $scope.multiLanguageService.getString(\"advanced_search_content.aria.created_after_filter\"),\r\n ariaClearAfter: $scope.multiLanguageService.getString(\"advanced_search_content.aria.clear_after\"),\r\n before: $scope.multiLanguageService.getString(\"collections.criteria.datePicker.before\"),\r\n ariaBefore: $scope.multiLanguageService.getString(\"advanced_search_content.aria.created_before_filter\"),\r\n ariaClearBefore: $scope.multiLanguageService.getString(\"advanced_search_content.aria.clear_before\"),\r\n ariaFrom: $scope.multiLanguageService.getString(\"advanced_search_content.aria.from_filter\"),\r\n ariaClearFrom: $scope.multiLanguageService.getString(\"advanced_search_content.aria.clear_from\"),\r\n ariaTo: $scope.multiLanguageService.getString(\"advanced_search_content.aria.to_filter\"),\r\n ariaClearTo: $scope.multiLanguageService.getString(\"advanced_search_content.aria.clear_to\")\r\n },\r\n dateOptions: {}\r\n }\r\n };\r\n\r\n $scope.elements = {\r\n dropdowns: null\r\n };\r\n\r\n //Functions --------------------------------------------------------------------------------------------\r\n $scope.loadFromExistingCriteria = function (collectionDto) {\r\n $scope.collectionDto = collectionDto;\r\n assetMapper.collection.collectionDtoToCriteria($scope.collectionDto, $scope.criteria);\r\n\r\n //Link has not initialised yet, no need to reset the dropdown events\r\n if ($scope.elements.dropdowns) {\r\n $scope.resetDropdownEvents();\r\n }\r\n };\r\n\r\n $scope.addCriteria = function (criteriaFilters) {\r\n var collectionCriteria = $scope.collectionDto;\r\n //Map Data\r\n assetMapper.collection.advancedFiltersToCollection(criteriaFilters, collectionCriteria);\r\n $scope.onConfirm(collectionCriteria);\r\n };\r\n\r\n $scope.resetDropdownEvents = function () {\r\n angular.forEach($scope.elements.dropdowns, function (dropdown_el) {\r\n angular.element(dropdown_el).scope().reset();\r\n });\r\n };\r\n\r\n //Private functions ------------------------------------------------------------------------------------\r\n //Map filter value to Criteria, then compile filterData and update the search criteria.\r\n var onFilterChange = function (event, filterName, filter, isNotEmpty) {\r\n event.stopPropagation();\r\n var criteria = $scope.criteria,\r\n criteriaFilter = criteria[filterName];\r\n if (criteriaFilter !== undefined) {\r\n criteria[filterName] = filter.Filter;\r\n }\r\n doSearch(isNotEmpty);\r\n };\r\n\r\n var doSearch = function (isNotEmpty) {\r\n if (isNotEmpty) {\r\n var criteria = $scope.criteria,\r\n filterData = {\r\n SearchType: \"asset\",\r\n Keywords: helpers.isNotEmptyArray($scope.criteria.keywords) ? $scope.criteria.keywords : null,\r\n Ownership: [criteria.ownership],\r\n TypeFilters: criteria.assetTypes ? [criteria.assetTypes] : [],\r\n FormId: criteria.responsesTo !== null ? criteria.responsesTo.Id : null,\r\n LastModifiedBefore: criteria.dateTo,\r\n LastModifiedAfter: criteria.dateFrom,\r\n Tags: $scope.criteria.tags\r\n };\r\n }\r\n if (!filterData || !filterData.Keywords) {\r\n $scope.$emit(\"criteriaUpdated\", filterData);\r\n }\r\n };\r\n\r\n var init = function () {\r\n if ($scope.showAllTypes === true) {\r\n $scope.filterOptions = { filters: $scope.filterFactory.getAllFilters() };\r\n } else {\r\n $scope.filterFactory.init().then(function () {\r\n var availableSearches = $scope.filterFactory.getAvailableSearches();\r\n // Find selected search object from available searches\r\n $scope.filterOptions = availableSearches[availableSearches.findInNestedObject(\"id\", \"asset\")];\r\n $scope.filterOptions.filters.secondary.ownership = null;\r\n var searchObj = $scope.collectionDto.Search;\r\n\r\n if (helpers.isNotEmptyArray(searchObj.Keywords)) {\r\n $scope.filterOptions.filters.primary.keywords = searchObj.Keywords.join(\" \");\r\n }\r\n\r\n if ($scope.collection) {\r\n $timeout(function () {\r\n doSearch(true);\r\n }, 250);\r\n }\r\n });\r\n }\r\n\r\n $scope.buttonOptions.push(\r\n {\r\n title: $scope.multiLanguageService.getString(\"buttons.confirm\"),\r\n class: \"btn-success\",\r\n action: $scope.addCriteria,\r\n validation: true\r\n },\r\n {\r\n title: $scope.multiLanguageService.getString(\"buttons.cancel\"),\r\n class: \"btn-danger\",\r\n action: $scope.onCancel,\r\n validation: false\r\n }\r\n );\r\n };\r\n\r\n //EVENTS -----------------------------------------------------------------------------------------------\r\n $scope.$on(\"searchFilterChange\", onFilterChange);\r\n $scope.$on(\"dateToggleLoaded\", function () {\r\n $scope.viewData.loaded = true;\r\n });\r\n\r\n //Init -------------------------------------------------------------------------------------------------\r\n init();\r\n }\r\n ],\r\n\r\n link: function (scope, element, attr) {\r\n //Init -------------------------------------------------------------------------------------------------\r\n //Temp fix for dropdown registering events too early...this needs fixing or at least a cleaner way to handle it.\r\n $timeout(function () {\r\n scope.elements.dropdowns = element[0].querySelectorAll(\".filter-dropdown[dropdown]\");\r\n scope.resetDropdownEvents();\r\n }, 250);\r\n\r\n if (scope.collection) {\r\n scope.loadFromExistingCriteria(scope.collection);\r\n }\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{::multiLanguageService.getString('collections.criteria.create_advanced')}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { informationIcon } from \"@pjs/core-ui\";\r\nimport { TIMEOUT_CONSTANTS } from \"../../../constants/timeout.constants\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../utilities/urlService\";\r\nimport \"./criteriaTagger\";\r\nimport \"./criteriaAdvanced\";\r\nimport \"../../../assetStore/services/assetStoreService\";\r\nimport \"../../services/collectionService\";\r\nimport \"../../../extensions/arrayExtensions\";\r\nimport \"../../../utilities/helpers\";\r\nimport \"../../../builder/dataManager/helperService\";\r\nimport \"../../../modal/services/modal\";\r\nimport \"../../../datePicker/datePickerHelper\";\r\nimport \"../../../builder/dataManager/dataManagerService\";\r\nimport \"../../../localChanges/services/localChangesResolver\";\r\nimport \"../../../user/user.service\";\r\nimport \"../../../assetSelector/assetSelector.service\";\r\nimport template from \"../templates/criteria-manager.html\";\r\n\r\nangularAMD.directive(\"criteriaManager\", [\r\n \"$sce\",\r\n \"$q\",\r\n \"baseUrlsFactory\",\r\n \"urlService\",\r\n \"multiLanguageService\",\r\n \"$rootScope\",\r\n \"$timeout\",\r\n \"assetStoreService\",\r\n \"collectionService\",\r\n \"helpers\",\r\n \"helperService\",\r\n \"modal\",\r\n \"datePickerHelper\",\r\n \"dataManagerService\",\r\n \"localChangesResolver\",\r\n \"User\",\r\n \"assetSelector\",\r\n function (\r\n $sce,\r\n $q,\r\n baseUrlsFactory,\r\n urlService,\r\n multiLanguageService,\r\n $rootScope,\r\n $timeout,\r\n assetStoreService,\r\n collectionService,\r\n helpers,\r\n helperService,\r\n modal,\r\n datePickerHelper,\r\n dataManagerService,\r\n localChangesResolver,\r\n User,\r\n assetSelector\r\n ) {\r\n //Uses a smelly shared scope...in order to work with the bloated, hacky SpaMenu. One day it will become beautiful...\r\n return {\r\n //Scope gets passed:\r\n //type (String)\r\n //callback (Function)\r\n //edit (Boolean)\r\n //collectionWrapper (CollectionWrapperDto)\r\n //id (String)\r\n restrict: \"E\",\r\n template: template,\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n //Initialise variables ---------------------------------------------------------------------------------\r\n $scope.multiLanguageService = multiLanguageService;\r\n $scope.activeUserId = User.getId();\r\n $scope.friendlyMainType = helperService.friendlyMainType;\r\n $scope.collection = $scope.collection || null;\r\n $scope.searchResult = [];\r\n $scope.searchComplete = false;\r\n $scope.inSidebar = true;\r\n $scope.collectionCriteria = null;\r\n $scope.primarySort = \"LastModified\";\r\n $scope.reverseOrder = true;\r\n $scope.imageInfo = informationIcon;\r\n $scope.disableResponsesToFilter = !$scope.allowCriteriaResponsesTo && ($scope.collection === null || $scope.collection.Search.ResponsesTo === null);\r\n $scope.overlay = angular.element(document.getElementsByClassName(\"builder-canvas-dark-layer\")[0]);\r\n $scope.viewData = {\r\n deleting: false,\r\n showEditMode: false,\r\n hasCriteria: false,\r\n listViewTemplate: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"collections/templates/collection.lazy.html\"),\r\n images: {\r\n manual: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"collections/images/addAssets.svg\"),\r\n tag: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"collections/images/taggedAssets.svg\"),\r\n advanced: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"collections/images/advancedCriteria.svg\")\r\n },\r\n typeTitles: {\r\n manual: multiLanguageService.getString(\"collections.criteria.types.manual\"),\r\n tag: multiLanguageService.getString(\"collections.criteria.types.tagged_assets\"),\r\n advanced: multiLanguageService.getString(\"collections.criteria.types.advanced\")\r\n }\r\n };\r\n\r\n $scope.blankTarget = true;\r\n\r\n $scope.onComplete = function (collectionDto) {\r\n if ($scope.edit) {\r\n saveCriteria(collectionDto);\r\n } else {\r\n $scope.callback(collectionDto);\r\n }\r\n $scope.onClose(true);\r\n };\r\n\r\n $scope.onClose = function (completed) {\r\n if (!completed && $scope.edit) {\r\n $scope.type = null;\r\n $scope.viewData.showEditMode = true;\r\n $scope.searchComplete = $scope.viewData.hasCriteria = false;\r\n $scope.searchResult.length = 0;\r\n return;\r\n }\r\n $scope.closePanel();\r\n };\r\n\r\n $scope.deleteCriteria = function (assetId, id, index) {\r\n var isolatedScope = $scope.$new(true);\r\n isolatedScope.onClose = function () {\r\n isolatedScope.$destroy();\r\n };\r\n\r\n isolatedScope.confirmAction = function () {\r\n $scope.viewData.deleting = true;\r\n //Remove immediately from the view\r\n $scope.collectionCriteria.splice(index, 1);\r\n $scope.collectionWrapper.AssetCollections.splice($scope.collectionWrapper.AssetCollections.indexOf(assetId), 1);\r\n\r\n var managerData = dataManagerService.getDto($scope.id).data;\r\n if ($scope.collectionWrapper !== managerData) {\r\n managerData.AssetCollections.splice(managerData.AssetCollections.indexOf(assetId), 1);\r\n }\r\n\r\n saveCollectionWrapper($scope.id).then(function () {\r\n $rootScope.$broadcast(\r\n \"collectionUpdated\",\r\n $scope.id,\r\n {\r\n originalId: id,\r\n assetId: assetId\r\n },\r\n \"delete\"\r\n );\r\n $scope.viewData.deleting = false;\r\n if ($scope.collectionWrapper.AssetCollections.length === 0) {\r\n $scope.closePanel();\r\n }\r\n });\r\n };\r\n\r\n modal.newModal({\r\n scope: isolatedScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"collections/templates/delete-criteria-message.lazy.html\"\r\n });\r\n };\r\n\r\n $scope.openInfoPanel = function (id, panel, actionData) {\r\n panel = typeof panel !== \"undefined\" ? panel : \"asset-info\";\r\n $rootScope.$broadcast(\"openRightHandSidePanel\", {\r\n panel: panel,\r\n assetId: id,\r\n actionData: actionData\r\n });\r\n };\r\n\r\n $scope.closePanel = function () {\r\n $rootScope.$broadcast(\"closeRightHandSidePanel\");\r\n };\r\n\r\n $scope.getCollectionCriteria = function (id) {\r\n collectionService.getCriteriaFromCollectionWrapper(id).then(function (response) {\r\n $scope.viewData.showEditMode = true;\r\n\r\n if (helpers.isNotEmptyArray(response.data)) {\r\n $scope.collectionCriteria = response.data;\r\n $scope.collectionCriteria.forEach(function (collectionDto) {\r\n collectionDto.Type = getCollectionCriteriaType(collectionDto);\r\n });\r\n }\r\n });\r\n };\r\n\r\n $scope.editCollectionCriteria = function (collection, type) {\r\n if (type === \"manual\") {\r\n launchSelector(collection.Items.getValuesFromNestedKeys(\"Id\"), collection);\r\n } else {\r\n $scope.viewData.showEditMode = false;\r\n $scope.collection = collection;\r\n $scope.type = type;\r\n $scope.disableResponsesToFilter = !$scope.allowCriteriaResponsesTo && $scope.collection.Search.ResponsesTo === null;\r\n }\r\n };\r\n\r\n $scope.getTitleFromType = function (type) {\r\n return $scope.viewData.typeTitles[type];\r\n };\r\n\r\n $scope.getImageFromType = function (type) {\r\n return $scope.viewData.images[type];\r\n };\r\n\r\n //Private Functions ------------------------------------------------------------------------------------\r\n var criteriaUpdated = function (event, filterData) {\r\n if ($scope.disableSearchResult) {\r\n return;\r\n }\r\n\r\n $scope.cachedFilterData = filterData;\r\n if (event) {\r\n event.stopPropagation();\r\n }\r\n if (filterData) {\r\n filterData.Ownership = [\"ByMe\"];\r\n $scope.viewData.hasCriteria = true;\r\n $scope.searchComplete = false;\r\n\r\n collectionService.getCollectionResults($scope.id, filterData).then(function (response) {\r\n $scope.searchComplete = true;\r\n $scope.searchResult = response.data.TitleResults;\r\n\r\n // Configure url\r\n for (var i = 0, item; i < $scope.searchResult.length; i++) {\r\n item = $scope.searchResult[i];\r\n if (item.Id === $scope.id) {\r\n $scope.searchResult.splice(i, 1);\r\n i--;\r\n } else {\r\n item.url = urlService.configureAssetUrl(item.OpenUrl, \"view\");\r\n item.Created = datePickerHelper.normalizeDate(item.Created);\r\n item.LastModified = datePickerHelper.normalizeDate(item.LastModified);\r\n }\r\n }\r\n });\r\n } else {\r\n $scope.searchResult.length = 0;\r\n $scope.viewData.hasCriteria = false;\r\n }\r\n };\r\n\r\n $scope.$on(\"TagListUpdated\", function (event, data) {\r\n criteriaUpdated(null, $scope.cachedFilterData);\r\n });\r\n\r\n var getCollectionCriteriaType = function (collectionDto) {\r\n var type = \"tag\";\r\n if (collectionDto.StaticCollection) {\r\n type = \"manual\";\r\n } else if (\r\n collectionDto.Search.SubType ||\r\n collectionDto.Filter.Category ||\r\n collectionDto.Search.ResponsesTo ||\r\n collectionDto.Search.CreatedAfter ||\r\n collectionDto.Search.CreatedBefore ||\r\n collectionDto.Search.Keywords.length > 0\r\n ) {\r\n //Hacky workaround to check if the collectionDto is advanced or tagging...Store type on the backend instead?\r\n type = \"advanced\";\r\n }\r\n return type;\r\n };\r\n\r\n var launchSelector = function (assetIds, collectionDto) {\r\n $scope.activeCollection = collectionDto;\r\n assetSelector\r\n .selectAssets({\r\n requiresWritePermission: true,\r\n excludeIds: [$scope.id],\r\n currentlySelectedIds: assetIds,\r\n showSelected: true,\r\n includeUpload: true\r\n })\r\n .then((assets) => {\r\n if (assets === null) {\r\n return;\r\n }\r\n\r\n saveManualCriteria(assets);\r\n })\r\n .catch(angular.noop);\r\n };\r\n\r\n //Only used in Edit mode\r\n var showSaving = function () {\r\n $scope.overlay.addClass(\"show-overlay\");\r\n };\r\n\r\n var hideSaving = function () {\r\n $timeout(function () {\r\n $scope.overlay.removeClass(\"save-complete\");\r\n $scope.overlay.removeClass(\"show-overlay\");\r\n }, TIMEOUT_CONSTANTS.SAVE_OVERLAY);\r\n };\r\n\r\n var saveManualCriteria = function (assets) {\r\n if (!assets.getValuesFromNestedKeys(\"Id\").isEqualTo($scope.activeCollection.Items.getValuesFromNestedKeys(\"Id\"))) {\r\n showSaving();\r\n collectionService.addManualCriteriaToCollectionDto(assets, $scope.activeCollection);\r\n collectionService.saveCollection($scope.activeCollection).then(function (response) {\r\n $rootScope.$broadcast(\"manualCollectionUpdated\", response.data.Asset);\r\n postSave();\r\n $scope.closePanel();\r\n });\r\n }\r\n $scope.activeCollection = null;\r\n };\r\n\r\n var saveCriteria = function (collectionDto) {\r\n showSaving();\r\n collectionService.saveCollection(collectionDto).then(postSave);\r\n };\r\n\r\n var postSave = function () {\r\n $rootScope.$broadcast(\"collectionUpdated\", $scope.id);\r\n //Update last modified date\r\n\r\n saveCollectionWrapper($scope.id);\r\n hideSaving();\r\n };\r\n\r\n var saveCollectionWrapper = function (id) {\r\n var deferred = $q.defer(),\r\n manager = dataManagerService.getDto(id),\r\n save = manager.data.MainType === \"AssetCollectionWrapper\" ? manager.saveCollectionToServer.bind(manager) : manager.saveActivityLogToServer.bind(manager);\r\n\r\n dataManagerService.checkBeforeSave(id, manager.data.MainType).then(function () {\r\n save(id).then(function (data) {\r\n data.promises.then(function () {\r\n var manager = dataManagerService.getDto(id);\r\n if (manager) {\r\n manager.is_saved = true;\r\n }\r\n\r\n dataManagerService.cleanupStorageOfAssetId(id);\r\n deferred.resolve(true);\r\n });\r\n });\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n //Events -----------------------------------------------------------------------------------------------\r\n $scope.$on(\"criteriaUpdated\", criteriaUpdated);\r\n }\r\n ],\r\n\r\n link: function (scope, element, attr) {\r\n element.on(\"$destroy\", function () {\r\n scope.collectionCriteria = null;\r\n scope.collectionWrapper = null;\r\n scope.$destroy();\r\n });\r\n\r\n if (scope.edit && scope.id) {\r\n scope.getCollectionCriteria(scope.id);\r\n }\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{::multiLanguageService.getString('collections.criteria.edit')}}

\"\"

{{::getTitleFromType(criteria.Type)}}

{{::multiLanguageService.getString(\"collections.criteria.stringText.responses_to\", { title: criteria.Search.ResponsesTo.Title })}} {{friendlyMainType(criteria.Search.SubType || criteria.Filter.Category) || multiLanguageService.getString('asset_store.filters.everything')}} 0\"> {{::multiLanguageService.getString('collections.criteria.keyword', {count: criteria.Search.Keywords.length, keywords: criteria.Search.Keywords})}} 0\"> {{::multiLanguageService.getString('collections.criteria.tagged_with_advanced', {tags: criteria.Search.Tags})}} {{::multiLanguageService.getString('collections.criteria.created_after', {date: (criteria.Search.CreatedAfter.DateValue | pebbleDate)})}} {{::multiLanguageService.getString('collections.criteria.created_before', {date: (criteria.Search.CreatedBefore.DateValue | pebbleDate)})}}

{{::multiLanguageService.getString('collections.criteria.stringText.tagged', {tags: criteria.Search.Tags})}}

{{::multiLanguageService.getString('collections.criteria.added_on', {count: criteria.StaticCollectionAssetIds.length, date: (criteria.LastModified | pebbleDate)})}}

`;",null,null,null,"import { angularAMD } from \"@pebblepad/amd\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { first, merge, from, tap, combineLatest, finalise } from \"@pjs/observables\";\r\nimport \"../../assetEndpointService/assetEndpoint.service\";\r\nimport \"../../builder/builderToolbar/toolbar-tools/components/dropDownOption.component\";\r\nimport \"../../builder/builderToolbar/toolbar-tools/components/radioButtonOption.component\";\r\nimport \"../../builderBlocks/blockEmbed/embedConsent/embedConsent.service\";\r\nimport \"../../user/user.service\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../loadingSpinner/loadingSpinner\";\r\n\r\nclass UserSettingsService {\r\n constructor($q, assetEndpointService, multiLanguageService, modal, baseUrlsFactory, embedConsentService) {\r\n this._$q = $q;\r\n this._modal = modal;\r\n this._baseUrlsFactory = baseUrlsFactory;\r\n this.multiLanguageService = multiLanguageService;\r\n this._assetEndpointService = assetEndpointService;\r\n this._embedConsentService = embedConsentService;\r\n this._consentValues = {\r\n consented: \"consented\",\r\n notConsented: \"notconsented\"\r\n };\r\n this._loading = false;\r\n }\r\n\r\n showUserSettingsModal() {\r\n combineLatest([from(this._assetEndpointService.getUserSettings()), this._embedConsentService.consent()])\r\n .pipe(first())\r\n .subscribe(([userSettingsResponse, hasConsented]) => {\r\n const modalProps = this._getUserSettingsModalProps(userSettingsResponse, hasConsented);\r\n this._modal.launch(this._baseUrlsFactory.shared_component_base_url + \"userSettings/templates/user-settings.lazy.html\", modalProps);\r\n });\r\n }\r\n\r\n updateUserSettings(originalSettings, settings, hideModel) {\r\n const updateObservables = [];\r\n this._loading = true;\r\n\r\n if (originalSettings.userLanguage !== settings.userLanguage) {\r\n updateObservables.push(from(this._assetEndpointService.updateUserSettings({ Language: settings.userLanguage })).pipe(tap(() => location.reload())));\r\n tracker.trackEvent(\"User Settings\", \"Click Language dropdown\", \"Save language change\");\r\n }\r\n\r\n if (originalSettings.consentValue !== settings.consentValue) {\r\n updateObservables.push(settings.consentValue === this._consentValues.consented ? this._embedConsentService.grantConsent() : this._embedConsentService.revokeConsent());\r\n tracker.trackEvent(\"User Settings\", \"Click cookie radio buttons\", \"Save cookie change\");\r\n }\r\n\r\n merge(...updateObservables)\r\n .pipe(\r\n finalise(() => {\r\n this._loading = false;\r\n hideModel();\r\n })\r\n )\r\n .subscribe({\r\n error: () => {\r\n this._modal.launch(this._baseUrlsFactory.shared_component_base_url + \"spaMenu/okmessage.lazy.html\", this._getErrorModalProps());\r\n }\r\n });\r\n }\r\n\r\n _getUserSettingsModalProps(userSettingsResponse, hasConsented) {\r\n const originalSettings = {\r\n userLanguage: userSettingsResponse.data.Language,\r\n consentValue: hasConsented ? this._consentValues.consented : this._consentValues.notConsented\r\n };\r\n\r\n const modalProps = {\r\n languages: userSettingsResponse.data.PossibleLanguages,\r\n settings: { ...originalSettings },\r\n settingsLanguageSet: (key, value) => {\r\n modalProps.settings.userLanguage = value;\r\n },\r\n consentChanged: (value) => {\r\n modalProps.settings.consentValue = value;\r\n },\r\n confirm: (updatedSettings, hideModal) => this.updateUserSettings(originalSettings, updatedSettings, hideModal),\r\n consentOptions: [\r\n {\r\n key: this._consentValues.consented,\r\n label: this.multiLanguageService.getString(\"user_settings.embed_consent_options.consent_yes\")\r\n },\r\n {\r\n key: this._consentValues.notConsented,\r\n label: this.multiLanguageService.getString(\"user_settings.embed_consent_options.consent_no\")\r\n }\r\n ],\r\n showLoading: () => this._loading\r\n };\r\n\r\n return modalProps;\r\n }\r\n\r\n _getErrorModalProps() {\r\n return {\r\n confirmMessage: this.multiLanguageService.getString(\"user_settings.something_went_wrong\")\r\n };\r\n }\r\n}\r\n\r\nUserSettingsService.$inject = [\"$q\", \"AssetEndpointService\", \"multiLanguageService\", \"modal\", \"baseUrlsFactory\", \"embedConsentService\"];\r\nangularAMD.service(\"UserSettingsService\", UserSettingsService);\r\n\r\nexport { UserSettingsService };\r\n",null,"import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../autoFocus/autoFocus.directive\";\r\nimport template from \"../views/spa-action-item.html\";\r\n\r\nangularAMD.directive(\"spaActionItem\", SpaActionItemDirective);\r\nSpaActionItemDirective.$inject = [];\r\n\r\nangularAMD.controller(\"SpaActionItemController\", SpaActionItemController);\r\nSpaActionItemController.$inject = [\"baseUrlsFactory\"];\r\n\r\nfunction SpaActionItemDirective() {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n menuItem: \"=\",\r\n onItemClick: \"&\",\r\n focus: \"@\"\r\n },\r\n controller: \"SpaActionItemController\",\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n };\r\n}\r\n\r\nfunction SpaActionItemController(baseUrlsFactory) {\r\n this.innerContentTemplate = baseUrlsFactory.shared_component_base_url + \"spaMenu/actionMenu/views/spa-action-inner-content.lazy.html\";\r\n}\r\n\r\nSpaActionItemController.prototype.itemClick = function () {\r\n this.onItemClick({ item: this.menuItem });\r\n};\r\n","export default ` `;","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.service(\"IconHelper\", IconHelper);\r\nIconHelper.$inject = [];\r\n\r\nfunction IconHelper() {\r\n var mainTypeMap = {\r\n activitylog: \"icon-activitylog\",\r\n assetcollectionwrapper: \"icon-assetcollectionwrapper\",\r\n blog: \"icon-blog\",\r\n conversation: \"icon-summary\",\r\n cv: \"icon-cv\",\r\n file: \"icon-file\",\r\n post: \"icon-post\",\r\n tempatebuilder: \"icon-form-reversed\",\r\n webfolio: \"icon-webfolio\",\r\n webfoliopage: \"icon-webfoliopage\",\r\n workbookresponse: \"icon-workbook\",\r\n workbookbuilder: \"icon-workbook-reversed\"\r\n };\r\n\r\n var subTypeMap = {\r\n audio: \"icon-audio\",\r\n image: \"icon-image\",\r\n document: \"icon-document\",\r\n \"document/database\": \"icon-database\",\r\n \"document/pdf\": \"icon-pdf\",\r\n \"document/presentation\": \"icon-presentation\",\r\n \"document/spreadsheet\": \"icon-spreadsheet\",\r\n \"document/text\": \"icon-text\",\r\n experience: \"icon-experience\",\r\n feedback: \"icon-feedback-template\",\r\n plan: \"icon-plan\",\r\n other: \"icon-other\",\r\n reflection: \"icon-reflection\",\r\n talent: \"icon-talent\",\r\n worksheet: \"icon-worksheet\",\r\n video: \"icon-video\"\r\n };\r\n\r\n /**\r\n * @param {Object} map\r\n * @param {String} type\r\n * @returns {String}\r\n */\r\n this.getIcon = function (map, type) {\r\n if (!type) {\r\n return \"\";\r\n }\r\n\r\n var icon = map[type.toLowerCase()];\r\n return icon || \"\";\r\n };\r\n\r\n /**\r\n * @param {String} type\r\n * @returns {String}\r\n */\r\n this.getIconFromMainType = function (type) {\r\n return this.getIcon(mainTypeMap, type);\r\n };\r\n\r\n /**\r\n * @param {String} type\r\n * @returns {String}\r\n */\r\n this.getIconFromSubType = function (type) {\r\n return this.getIcon(subTypeMap, type);\r\n };\r\n\r\n /**\r\n * @param {String} type\r\n * @returns {string}\r\n */\r\n this.getIconFromType = function (type) {\r\n var icon = this.getIconFromMainType(type);\r\n return icon ? icon : this.getIconFromSubType(type);\r\n };\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/shameOnBrowser\";\r\nimport \"../progressDots/progressDots\";\r\nimport \"../utilities/onRepeatEnd\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport template from \"./templates/sliding-banner-new.html\";\r\n\r\nangularAMD.directive(\"slidingBannerNew\", SlidingBannerNew);\r\nSlidingBannerNew.$inject = [\"$sce\", \"$rootScope\", \"baseUrlsFactory\", \"multiLanguageService\"];\r\n\r\nangularAMD.controller(\"SlidingBannerNewController\", SlidingBannerNewController);\r\nSlidingBannerNewController.$inject = [\"$timeout\", \"shameOnBrowser\", \"$element\"];\r\n\r\nfunction SlidingBannerNew($sce, $rootScope, baseUrlsFactory, multiLanguageService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n slides: \"=\"\r\n },\r\n controller: \"SlidingBannerNewController\",\r\n controllerAs: \"vm\",\r\n bindToController: true,\r\n link: function (scope) {\r\n scope.shared_component_base_url = baseUrlsFactory.shared_component_base_url;\r\n scope.helpIconsFolder = $sce.getTrustedResourceUrl(scope.shared_component_base_url + \"builder/helpBannerTemplates/workbook/images/\");\r\n scope.multiLanguageService = multiLanguageService;\r\n $rootScope.banner_ready = true;\r\n }\r\n };\r\n}\r\n\r\nfunction SlidingBannerNewController($timeout, shameOnBrowser, $element) {\r\n this.services = {\r\n timeout: $timeout,\r\n shameOnBrowser: shameOnBrowser\r\n };\r\n this.element = $element;\r\n this.currentStage = 0;\r\n this.styleClasses = {\r\n active: \"sliding-banner-new__pane--active\"\r\n };\r\n\r\n this.elements = {\r\n panes: []\r\n };\r\n}\r\n\r\nSlidingBannerNewController.prototype.prevSlide = function () {\r\n this.nextSlidingStage(-1);\r\n};\r\n\r\nSlidingBannerNewController.prototype.nextSlide = function () {\r\n this.nextSlidingStage(1);\r\n};\r\n\r\nSlidingBannerNewController.prototype.nextSlidingStage = function (position) {\r\n var newStage = this.currentStage + position;\r\n\r\n if (newStage < 0) {\r\n this.setStage(this.slides.length - 1);\r\n } else if (newStage >= this.slides.length) {\r\n this.setStage(0);\r\n } else {\r\n this.setStage(newStage);\r\n }\r\n};\r\n\r\nSlidingBannerNewController.prototype.setStage = function (index) {\r\n if (index < 0) {\r\n index = this.slides.length - 1;\r\n } else if (index >= this.slides.length) {\r\n index = 0;\r\n }\r\n\r\n var stage = this.slides[index],\r\n lastStage = this.currentStage;\r\n if (stage) {\r\n this.currentStage = index;\r\n this.updateView(this.currentStage, lastStage);\r\n }\r\n\r\n return this.currentStage;\r\n};\r\n\r\nSlidingBannerNewController.prototype.updateView = function (index, lastIndex) {\r\n var newPane = this.elements.panes[index],\r\n lastPane = this.elements.panes[lastIndex];\r\n\r\n lastPane.removeClass(this.styleClasses.active);\r\n newPane.addClass(this.styleClasses.active);\r\n};\r\n\r\nSlidingBannerNewController.prototype.cachePaneElements = function () {\r\n this.elements.panes = Array.prototype.slice.call(this.element[0].getElementsByClassName(\"sliding-banner-new__pane\"));\r\n for (var i = 0, l = this.elements.panes.length; i < l; i++) {\r\n this.elements.panes[i] = angular.element(this.elements.panes[i]);\r\n }\r\n\r\n return this.elements.panes;\r\n};\r\n\r\nSlidingBannerNewController.prototype.init = function () {\r\n this.cachePaneElements();\r\n this.elements.panes[this.currentStage].addClass(this.styleClasses.active);\r\n};\r\n","export default `
\"\"
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../slidingBannerNew/slidingBannerNew\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../screenReaderAnnouncer/screenReaderAnnouncer.directive\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport template from \"./templates/help-banner.html\";\r\nimport { tracker } from \"@pjs/analytics\";\r\n\r\nangularAMD.directive(\"helpBanner\", HelpBanner);\r\nHelpBanner.$inject = [\"$sce\", \"baseUrlsFactory\", \"multiLanguageService\"];\r\n\r\nangularAMD.controller(\"HelpBannerController\", HelpBannerController);\r\nHelpBannerController.$inject = [\"$scope\", \"$timeout\", \"$element\"];\r\n\r\nfunction HelpBanner($sce, baseUrlsFactory, multiLanguageService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n slides: \"=\",\r\n onCloseCallback: \"=\"\r\n },\r\n controller: \"HelpBannerController\",\r\n controllerAs: \"vm\",\r\n bindToController: true,\r\n\r\n link: function (scope) {\r\n scope.multiLanguageService = multiLanguageService;\r\n }\r\n };\r\n}\r\n\r\nfunction HelpBannerController($scope, $timeout, $element) {\r\n this.timeout = $timeout;\r\n this.element = $element;\r\n this.bindRef = this.setCloseFocusOnEnterOrEsc.bind(this);\r\n this.helpMinimised = true;\r\n this.help_banner_toggle_btn_el = angular.element(document.querySelector(\".help-banner-toggle-btn\"));\r\n\r\n //New user\r\n $scope.$on(\"openHelpBanner\", this.showHelp.bind(this));\r\n}\r\n\r\nHelpBannerController.prototype.bindEscKey = function () {\r\n this.element[0].addEventListener(\"keydown\", this.bindRef, true);\r\n};\r\n\r\nHelpBannerController.prototype.unbindEscKey = function () {\r\n this.element[0].removeEventListener(\"keydown\", this.bindRef);\r\n};\r\n\r\nHelpBannerController.prototype.showHelp = function () {\r\n if (this.helpMinimised === true) {\r\n this.openHelp();\r\n }\r\n};\r\n\r\nHelpBannerController.prototype.openHelp = function () {\r\n tracker.trackEvent(\"Asset/Resource Store\", \"Click\", \"Open Help banner\");\r\n\r\n this.bindEscKey();\r\n this.openFocus = false;\r\n\r\n this.timeout(\r\n function () {\r\n var activeDot = document.querySelector(\".progress-dots__dot--active\");\r\n if (activeDot) {\r\n activeDot.focus();\r\n }\r\n }.bind(this),\r\n 0\r\n );\r\n\r\n this.helpMinimised = false;\r\n};\r\n\r\nHelpBannerController.prototype.setCloseFocus = function () {\r\n this.closeHelp();\r\n};\r\n\r\nHelpBannerController.prototype.setCloseFocusOnEnterOrEsc = function (e) {\r\n if (e.keyCode === 13 || e.keyCode === 27) {\r\n this.closeHelp();\r\n if (e.keyCode === 27) {\r\n e.stopPropagation();\r\n }\r\n }\r\n};\r\n\r\nHelpBannerController.prototype.closeHelp = function () {\r\n tracker.trackEvent(\"Asset/Resource Store\", \"Click\", \"Close Help banner\");\r\n this.helpMinimised = true;\r\n this.unbindEscKey();\r\n this.onCloseCallback();\r\n\r\n this.timeout(\r\n function () {\r\n this.openFocus = true;\r\n }.bind(this),\r\n 0\r\n );\r\n};\r\n","export default `
`;","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.provider(\"A11yContainersService\", A11yContainersServiceProvider);\r\n\r\nfunction A11yContainersServiceProvider() {\r\n this.elements = {\r\n spaMenu: null,\r\n app: null,\r\n modal: null\r\n };\r\n this.$get = function () {\r\n return this.elements;\r\n }.bind(this);\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../assetStore/directives/assetStore\";\r\nimport template from \"../views/spa-asset-store.html\";\r\n\r\nangularAMD.directive(\"spaAssetStore\", function () {\r\n return {\r\n restrict: \"E\",\r\n scope: false,\r\n template: template\r\n };\r\n});\r\n","export default ` `;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\n\r\nangularAMD.factory(\"spaActionMenuService\", [\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n function ($http, baseUrlsFactory) {\r\n var factory = {};\r\n\r\n factory.getMenu = function () {\r\n $http.defaults.withCredentials = true;\r\n return $http.get(baseUrlsFactory.api_base_url + \"SharedMenu/MainMenu\");\r\n };\r\n\r\n return factory;\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../services/spaActionMenuService\";\r\n\r\nangularAMD.controller(\"SpaActionMenuCtrl\", [\r\n \"$scope\",\r\n \"spaActionMenuService\",\r\n \"$rootScope\",\r\n \"$sce\",\r\n \"baseUrlsFactory\",\r\n function ($scope, spaActionMenuService, $rootScope, $sce, baseUrlsFactory) {\r\n //functions moved to directive due to having to manipulate the dom once the data call was made\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../controllers/spaActionMenuCtrl\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../services/spaActionMenuService\";\r\nimport \"./spaActionItem\";\r\nimport \"../../../utilities/iconHelper.service\";\r\nimport \"../../../userAgent/userAgent.service\";\r\nimport \"../../../utilities/urlService\";\r\nimport \"../../../featureSettings/FeatureSettings\";\r\nimport template from \"../views/spa-action-menu.html\";\r\nimport { tracker } from \"@pjs/analytics\";\r\n\r\nangularAMD.directive(\"spaActionMenu\", [\r\n \"$sce\",\r\n \"$window\",\r\n \"$rootScope\",\r\n \"$document\",\r\n \"baseUrlsFactory\",\r\n \"$route\",\r\n \"spaActionMenuService\",\r\n \"$timeout\",\r\n \"IconHelper\",\r\n \"UserAgentService\",\r\n \"urlService\",\r\n \"featureSettings\",\r\n function (\r\n $sce,\r\n $window,\r\n $rootScope,\r\n $document,\r\n baseUrlsFactory,\r\n $route,\r\n spaActionMenuService,\r\n $timeout,\r\n IconHelper,\r\n UserAgentService,\r\n urlService,\r\n featureSettings\r\n ) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: false,\r\n link: function (scope, element, attrs) {\r\n scope.showTermsAndPolicy = false;\r\n featureSettings.load().then(() => (scope.showTermsAndPolicy = !featureSettings.isEnabled(\"AccountSettings\")));\r\n\r\n scope.tracker = tracker;\r\n scope.multiLanguageService = $rootScope.multiLanguageService;\r\n scope.termsAndConditionsURL = urlService.getForwardingUrl([\r\n {\r\n key: \"location\",\r\n value: \"PebblePadWebsite\"\r\n },\r\n {\r\n key: \"action\",\r\n value: \"Terms\"\r\n }\r\n ]);\r\n scope.gdprURL = urlService.getForwardingUrl([\r\n {\r\n key: \"location\",\r\n value: \"PebblePadWebsite\"\r\n },\r\n {\r\n key: \"action\",\r\n value: \"GDPR\"\r\n }\r\n ]);\r\n scope.iconFolderPath = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"spaMenu/styles/images/\");\r\n var imgIcons = {\r\n assetStore: scope.iconFolderPath + \"assetStore.svg\",\r\n resourceStore: scope.iconFolderPath + \"resourceStore.svg\"\r\n };\r\n\r\n var specialIconTypes = {\r\n \"workbook-reversed\": \"icon-workbook-reversed\",\r\n \"form-reversed\": \"icon-form-reversed\"\r\n };\r\n if (UserAgentService.touch) {\r\n // require(['bouncefix'], function(bouncefix) { //FIXME:\r\n // bouncefix.add('main-menu');\r\n // });\r\n }\r\n\r\n /**\r\n * Removes spaces and dots from string to construct a data hook friendly string for e2e tests.\r\n * (This is because the burger menu is constructed from the backend) >:(\r\n * @param item\r\n * @returns {string}\r\n */\r\n scope.getFriendlyDataHook = function (item) {\r\n return item.replace(/\\s+/g, \"-\").replace(/\\./g, \"\").toLowerCase();\r\n };\r\n\r\n scope.onItemClick = function (item) {\r\n if (item.Action.startsWith(\"http\")) {\r\n const params = new URL(item.Action).searchParams;\r\n tracker.trackEvent(\"Burger Menu\", `${params.get(\"mainType\")} Button Clicked`);\r\n } else {\r\n tracker.trackEvent(\"Burger Menu\", `${item.Action} Button Clicked`);\r\n }\r\n\r\n if (item.Target === \"_blank\") {\r\n return;\r\n }\r\n\r\n scope.closePanels();\r\n if (item.IsFunction) {\r\n scope.openUrl(item.Action, item.Target, item.IsFunction, item.RelativePathForPlus);\r\n }\r\n };\r\n\r\n scope.openUrl = function (action, target, isFunction, relativePath) {\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.currentProduct === \"plus\" && relativePath != null) {\r\n scope.usePath(isFunction, relativePath, target);\r\n } else {\r\n scope.usePath(isFunction, action, target);\r\n }\r\n };\r\n\r\n scope.usePath = function (isFunction, path, target) {\r\n if (isFunction) {\r\n scope.$emit(path, true);\r\n } else {\r\n // timeout to fix spa menu overlay when link in new window is opened\r\n $timeout(function () {\r\n $window.open(path, target);\r\n }, 250);\r\n }\r\n };\r\n\r\n scope.processMenuData = function (menuData) {\r\n var menuDataItem = null;\r\n var dataHook = null;\r\n for (var i = 0; i < menuData.length; i++) {\r\n menuDataItem = menuData[i];\r\n dataHook = scope.getFriendlyDataHook(menuDataItem.DisplayText);\r\n menuDataItem.buttonDataHook = dataHook + \"-menu-button\";\r\n menuDataItem.panelDataHook = dataHook + \"-menu-panel\";\r\n\r\n scope.mapMenuItemGraphics(menuDataItem);\r\n scope.processMenuData(menuDataItem.Children);\r\n }\r\n };\r\n\r\n scope.mapMenuItemGraphics = function (menuItem) {\r\n if (imgIcons[menuItem.Icon]) {\r\n menuItem.Image = imgIcons[menuItem.Icon];\r\n menuItem.Icon = \"\";\r\n return;\r\n }\r\n\r\n menuItem.Icon = specialIconTypes[menuItem.Icon] || IconHelper.getIconFromType(menuItem.Icon);\r\n };\r\n\r\n var deregisterSpaGetData = $rootScope.$on(\"spaGetData\", function (event, data) {\r\n if (scope.menuData === undefined) {\r\n spaActionMenuService.getMenu().then(function (response) {\r\n scope.processMenuData(response.data);\r\n scope.menuData = response.data;\r\n scope.action_menu_data_ready = true;\r\n\r\n $timeout(function () {\r\n scope.termsBtn = angular.element(document.getElementsByClassName(\"terms-btn\")[0]);\r\n scope.burgerBtn = angular.element(document.getElementsByClassName(\"btn-spa-burger\")[0]);\r\n });\r\n });\r\n }\r\n });\r\n scope.$on(\"$destroy\", function () {\r\n deregisterSpaGetData();\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","export default ` `;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../utilities/urlService\";\r\n\r\nangularAMD.factory(\"productMenuService\", [\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"urlService\",\r\n function ($http, baseUrlsFactory, urlService) {\r\n var factory = {};\r\n\r\n factory.getProductMenuData = function () {\r\n $http.defaults.withCredentials = true;\r\n return $http.get(baseUrlsFactory.api_base_url + \"SharedMenu/GetProductDropdown\");\r\n };\r\n\r\n factory.checkLoggedIn = function () {\r\n return urlService.promisedGet(baseUrlsFactory.api_base_url + \"SharedMenu/GetLoggedInUserId\");\r\n };\r\n\r\n return factory;\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/baseUrlsFactory\";\r\n\r\nangularAMD.directive(\"imgFallback\", [\r\n \"$sce\",\r\n \"baseUrlsFactory\",\r\n function ($sce, baseUrlsFactory) {\r\n return {\r\n restrict: \"A\",\r\n link: function (scope, el, attrs) {\r\n el.bind(\"error\", function () {\r\n scope.$emit(\"imgFallback\", el);\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\n\r\nangularAMD.factory(\"SpaHistoryService\", SpaHistoryService);\r\nSpaHistoryService.$inject = [\"$q\", \"$http\", \"baseUrlsFactory\"];\r\n\r\nfunction SpaHistoryService($q, $http, baseUrlsFactory) {\r\n var cancelPromise;\r\n\r\n return {\r\n getHistory: function (date) {\r\n $http.defaults.withCredentials = true;\r\n cancelPromise = $q.defer();\r\n return $http.get(baseUrlsFactory.api_base_url + \"SharedMenu/History?historyFrom=\" + date + \"&minimumTake=20\", { timeout: cancelPromise.promise });\r\n },\r\n cancel: function () {\r\n cancelPromise.resolve();\r\n }\r\n };\r\n}\r\n","import { Search } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\r\n \"searchComponent\",\r\n react2angular(Search, [\"onSearch\", \"onChange\", \"searchString\", \"clearSearchLabel\", \"searchButtonLabel\", \"searchInputLabel\", \"disabled\", \"placeholder\", \"className\", \"autoFocus\", \"dataHooks\"])\r\n);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { bannerIcon, listIcon, gridIcon, ButtonClass, AriaMenuStatus, findFirstInteractiveElement } from \"@pjs/core-ui\";\r\nimport { SELECTOR } from \"../../../constants/selector.constants\";\r\nimport { withDigest } from \"../../../react2angular/utilities/WithDigest.function\";\r\nimport { itemSelectorFilters } from \"../../../itemSelector/itemSelectorFilters\";\r\nimport { PANEL_CONSTANTS } from \"../../../constants/panel.constants\";\r\nimport \"../services/spaSelectorService\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../expandable/expandable\";\r\nimport \"../../../extensions/arrayExtensions\";\r\nimport \"../../../navigationMenu/navigationMenu\";\r\nimport \"../../../utilities/checklistModel\";\r\nimport \"../../../imgFallback/imgFallback\";\r\nimport \"../../../assetLocking/services/assetLockingNotification.service\";\r\nimport \"../../../modal/services/modal\";\r\nimport \"../../../assetStore/services/assetStoreService\";\r\nimport \"../../../userAgent/userAgent.service\";\r\nimport \"../../../accessKeys/accessKey.service\";\r\nimport \"../../../itemSelector/itemSelector.component\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../react2angular/buttonComponent\";\r\nimport \"../../../react2angular/scopedSearch\";\r\nimport \"../../../react2angular/searchComponent\";\r\nimport \"../../../utilities/subscriptionServiceProvider\";\r\nimport template from \"../views/spa-selector.html\";\r\n\r\nangularAMD.directive(\"spaSelector\", [\r\n \"$timeout\",\r\n \"$interval\",\r\n \"$window\",\r\n \"spaSelectorService\",\r\n \"baseUrlsFactory\",\r\n \"$rootScope\",\r\n \"multiLanguageService\",\r\n \"$q\",\r\n \"assetLockingNotificationService\",\r\n \"modal\",\r\n \"assetStoreService\",\r\n \"accessKeyService\",\r\n \"subscriptionServiceProvider\",\r\n function (\r\n $timeout,\r\n $interval,\r\n $window,\r\n spaSelectorService,\r\n baseUrlsFactory,\r\n $rootScope,\r\n multiLanguageService,\r\n $q,\r\n assetLockingNotificationService,\r\n modal,\r\n assetStoreService,\r\n accessKeyService,\r\n subscriptionServiceProvider\r\n ) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n link: function (scope, element, attrs) {\r\n scope.selectorDisplayResults = {\r\n Items: [],\r\n Description: \"\"\r\n }; // an object that contains a description and list of results\r\n scope.selectedSelectors = []; // items selected by user\r\n scope.excludeIds = []; // list of item ids which should not appear in any search/autocomplete/default results\r\n scope.search = {\r\n searchTerm: \"\",\r\n dataHooks: { input: \"spa-selector-search-input\", searchButton: \"spa-selector-search-button\", clearButton: \"spa-selector-clear-search-button\", select: \"spa-selector-search-select\" }\r\n }; // user search string bound to input field\r\n scope.selectType = \"\"; // What to search on (AssetStore, ResourceCentre, AssetStoreAndResourceCentre, etc)\r\n scope.mainTypes = []; // If searching asset store or resource centre then is used for asset maintypes\r\n scope.subTypes = []; // If searching asset store or resource centre then is used for asset subtypes\r\n scope.ownerships = []; // ByMe, ForMe, and/or WithMe\r\n scope.singleOrMultipleSelect = \"\"; // Selecting Single or Multiple items\r\n scope.broadcastCommand = \"\"; // name of command to broadcast results too\r\n scope.broadcastType = \"\"; // when to broadcast results to the broadcastCommand (everyAction or onDone)\r\n\r\n scope.originalSelectors = []; // takes currentlySelectedIds from setup command and gets original list of ids already selected\r\n scope.selectorSpinner = true; // whether to display the spinner or not\r\n scope.showClearAll = false; // toggle between showing a select all button and a clear all button\r\n scope.previousItemsFound = false; // a bool to record whether or not previously selected items have been found\r\n scope.defaultItemsFound = false; // a bool to record whether or not the default items have loaded\r\n scope.defaultBanners = {}; //object with title and arry of items to display as defaults\r\n scope.back_to_start_el = angular.element(document.getElementsByClassName(\"back-to-start\")[0]);\r\n scope.viewsDirectoryUrl = baseUrlsFactory.shared_component_base_url + \"spaMenu/selector/views/\";\r\n scope.defaultLimit = 4;\r\n scope.currentLimit = scope.defaultLimit;\r\n scope.selectorLimit = 50;\r\n scope.uploadTypes = [\"Image\", \"File\", \"Video\", \"Audio\"]; //Determines if upload Page needs to be added.\r\n scope.showIWantTo = false; // Don't have all the asset management options when just selecting an asset\r\n scope.previousData = null;\r\n scope.limitedView = false;\r\n scope.activeRequests = [];\r\n scope.deleteMode = false;\r\n scope.requiresWritePermission = false;\r\n scope.defaultBannerViews = [];\r\n scope.selectorViews = [];\r\n scope.stopExtraAction = false;\r\n scope.buttonClass = ButtonClass;\r\n scope.showScopedSearch = true;\r\n scope._subscriptionProviderId = \"spa-selector\";\r\n\r\n subscriptionServiceProvider.subscribe(\"spaMenuRightPanelVisible\", scope._subscriptionProviderId, (panelName) => {\r\n if (panelName === PANEL_CONSTANTS.PANEL.SELECTOR) {\r\n scope._onSpaSelectorVisible();\r\n }\r\n });\r\n element.on(\"$destroy\", () => subscriptionServiceProvider.unsubscribe(\"spaMenuRightPanelVisible\", scope._subscriptionProviderId));\r\n\r\n const bannerView = { id: \"banner\", icon: bannerIcon, ariaLabel: multiLanguageService.getString(\"accessibility.spa_menu.selector.bannerView\") };\r\n const listView = { id: \"list\", icon: listIcon, ariaLabel: multiLanguageService.getString(\"accessibility.spa_menu.selector.listView\") };\r\n const galleryView = { id: \"gallery\", icon: gridIcon, ariaLabel: multiLanguageService.getString(\"accessibility.spa_menu.selector.galleryView\") };\r\n\r\n scope._focusSearchForm = function () {\r\n const focusTarget = findFirstInteractiveElement(document.querySelector(\"[data-hook='spa-selector-search-controls']\"));\r\n focusTarget?.focus();\r\n };\r\n\r\n scope.$on(\"setupSelector\", function (event, data) {\r\n scope.selectorSpinner = true;\r\n scope.previousItemsFound = false;\r\n scope.defaultItemsFound = false;\r\n scope.hideMenu = data.hideMenu;\r\n scope.selectType = data.selectType;\r\n scope.singleOrMultipleSelect = data.singleOrMultipleSelect;\r\n scope.broadcastCommand = data.broadcastCommand;\r\n scope.broadcastType = data.broadcastType;\r\n scope.excludeIds = data.excludeIds;\r\n scope.excludeChildrenOf = data.excludeChildrenOf !== undefined ? data.excludeChildrenOf : [];\r\n scope.excludeMainTypes = data.excludeMainTypes;\r\n scope.mainTypes = data.mainTypes;\r\n scope.subTypes = data.subTypes;\r\n scope.ownerships = data.ownerships;\r\n scope.defaultBanners = data.defaultBanners;\r\n scope.restrictedFileTypes = data.restrictedFileTypes;\r\n scope.lockOnSelect = data.lockOnSelect;\r\n scope.limitedView = false;\r\n scope.requiresWritePermission = data.requiresWritePermission === true;\r\n scope.selectorViews = data.selectorViews || [];\r\n scope.showCurrentDefaultSelector = data.showCurrentDefaultSelector;\r\n\r\n scope._setSearchFieldsToDefaults();\r\n\r\n if (data.currentDefault !== undefined) {\r\n scope.currentDefault = {\r\n Description: data.currentDefault.Title,\r\n Items: [data.currentDefault]\r\n };\r\n }\r\n\r\n scope.resetDefaultBannerDisplay();\r\n scope.handleLimitedViewString(0);\r\n\r\n scope.screenReaderMessage = \"\";\r\n scope.imageViewLimit = 15;\r\n scope.allLoaded = false;\r\n scope.defaultBannerViews = [bannerView, galleryView, listView];\r\n\r\n var selectorViews = [galleryView, listView, bannerView];\r\n\r\n scope.showTagger = true;\r\n if (data.actionData && data.actionData.excludeAssetFunctionality) {\r\n scope.showTagger = !data.actionData.excludeAssetFunctionality.contains(\"tagger\");\r\n scope.showDescription = !data.actionData.excludeAssetFunctionality.contains(\"asset-description\");\r\n }\r\n\r\n if (data.actionData) {\r\n scope.deleteMode = data.actionData.deleteMode;\r\n if (scope.deleteMode) {\r\n scope.hideGalleryUpload = true;\r\n }\r\n }\r\n\r\n if (scope.selectType === SELECTOR.SELECT_TYPE.STANDARDS) {\r\n scope.stopExtraAction = true;\r\n }\r\n\r\n scope.currentLimit = scope.defaultLimit;\r\n\r\n scope.bindAccessKeys();\r\n\r\n //Reset requests\r\n scope.activeRequests.forEach(function (q) {\r\n if (q) {\r\n q.resolve(null);\r\n }\r\n });\r\n scope.activeRequests.length = 0;\r\n scope.activeRequests.push($q.defer(), $q.defer());\r\n\r\n const isFileUploadForceEnabled = data.includeUpload !== false;\r\n var shouldIncludeFileUploadByDefault = false;\r\n var promises = [];\r\n promises.push(\r\n spaSelectorService.getSelectorsBasedOnIds(scope.selectType, data.currentlySelectedIds, { timeout: scope.activeRequests[0].promise }).then(function (response) {\r\n scope.previousItemsFound = true;\r\n scope.originalSelectors = response.data;\r\n scope.selectedSelectors = angular.copy(response.data); // take a copy, don't reference the same original data\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.defaultItemsFound == true && scope.previousItemsFound == true) {\r\n scope.selectorSpinner = false;\r\n }\r\n })\r\n );\r\n\r\n if (data.feedbackTemplates) {\r\n scope.showScopedSearch = false;\r\n promises.push(\r\n spaSelectorService.getFeedbackTemplates({ timeout: scope.activeRequests[0].promise }).then(function (response) {\r\n scope.defaultItemsFound = true;\r\n scope.selectorDisplayResults = response.data[0];\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.defaultItemsFound == true && scope.previousItemsFound == true) {\r\n scope.selectorSpinner = false;\r\n }\r\n\r\n selectorViews = [listView];\r\n shouldIncludeFileUploadByDefault = false;\r\n })\r\n );\r\n } else {\r\n promises.push(\r\n spaSelectorService\r\n .getDefaultItemsForSelector(scope.selectType, scope.mainTypes, scope.subTypes, scope.excludeIds, scope.excludeMainTypes, scope.excludeChildrenOf, scope.ownerships, {\r\n timeout: scope.activeRequests[1].promise\r\n })\r\n .then(function (selectorItem) {\r\n scope.defaultItemsFound = true;\r\n scope.selectorDisplayResults = selectorItem;\r\n\r\n if (scope.selectorDisplayResults.Items.length > 0 && scope.selectorDisplayResults.Description === \"Your image assets\") {\r\n scope.selectorDisplayResults.Description = multiLanguageService.getString(\"labels.selector.your_image_assets\");\r\n }\r\n\r\n scope.showClearAll = allSelected();\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.defaultItemsFound == true && scope.previousItemsFound == true) {\r\n scope.selectorSpinner = false;\r\n }\r\n\r\n shouldIncludeFileUploadByDefault = false;\r\n const uploadSubTypes = [\"image\", \"video\", \"audio\"];\r\n\r\n if ((scope.mainTypes && scope.mainTypes.length > 0) || scope.selectType === SELECTOR.SELECT_TYPE.RESOURCE || scope.selectType === SELECTOR.SELECT_TYPE.STANDARDS) {\r\n selectorViews = [listView];\r\n }\r\n\r\n if (scope.subTypes && scope.subTypes.length !== 0) {\r\n if (!scope.subTypes.contains(\"Image\")) {\r\n selectorViews = [listView];\r\n } else if (\r\n scope.subTypes.some(function (type) {\r\n return uploadSubTypes.indexOf(type.toLowerCase()) > -1;\r\n })\r\n ) {\r\n shouldIncludeFileUploadByDefault = true;\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n $q.all(promises).then(function () {\r\n scope.onRequestUpload = isFileUploadForceEnabled || shouldIncludeFileUploadByDefault ? scope.launchFileUpload : undefined;\r\n scope.selectorViews = scope.selectorViews.length > 0 ? scope.selectorViews : selectorViews;\r\n if (data.showSelected && data.currentlySelectedIds && data.currentlySelectedIds.length !== 0) {\r\n scope.displayCurrentlySelectedSelectors();\r\n }\r\n\r\n if (scope.selectedSelectors.length > 0 && scope.selectorDisplayResults.Items.length === 0) {\r\n scope.selectorDisplayResults.Items = scope.selectedSelectors.slice();\r\n }\r\n scope.screenReaderMessage = multiLanguageService.getString(\"search.a11y.loaded_items\");\r\n // reset scroll position for results panel so on every\r\n // other load user starts from the top of the list\r\n $window.requestAnimationFrame(function () {\r\n scope.resultsPanelEl = element[0].querySelector(\"[data-hook='spa-selector-results']\");\r\n scope.resultsPanelEl.scrollTop = 0;\r\n });\r\n scope._focusSearchForm();\r\n });\r\n });\r\n\r\n scope._onSpaSelectorVisible = () => {\r\n scope.screenReaderMessage = multiLanguageService.getString(`search.a11y.${scope.selectorSpinner ? \"loading_items\" : \"loaded_items\"}`);\r\n };\r\n\r\n scope.defaultSearchResults = function () {\r\n return {\r\n Items: [],\r\n Description: \"\"\r\n };\r\n };\r\n\r\n scope.handleLimitedViewString = function (value) {\r\n scope.value = value;\r\n };\r\n\r\n scope.selectSelector = function (selector) {\r\n if (scope.singleOrMultipleSelect === \"Single\") {\r\n scope.screenReaderMessage = multiLanguageService.getString(\"labels.selector.a11y.on_selection\", { title: selector.Title });\r\n\r\n $timeout(function () {\r\n scope.validateSelection([selector]).then(function () {\r\n scope.selectSingle(selector);\r\n });\r\n }, 100);\r\n } else {\r\n scope.showClearAll = allSelected();\r\n }\r\n };\r\n\r\n scope.selectingDone = function () {\r\n scope.validateSelection(scope.selectedSelectors).then(scope.selectionConfirm);\r\n scope.$applyAsync();\r\n };\r\n\r\n scope.selectionConfirm = function () {\r\n $rootScope.$broadcast(scope.broadcastCommand, scope.selectedSelectors);\r\n $timeout(function () {\r\n scope.selectorDisplayResults = scope.defaultSearchResults();\r\n });\r\n scope.selectedSelectors = [];\r\n scope.originalSelectors = [];\r\n scope._setSearchFieldsToDefaults();\r\n scope.showClearAll = false;\r\n scope.previousData = null;\r\n\r\n scope.goToPreviousPanel(true);\r\n };\r\n\r\n scope.validateSelection = function (selection) {\r\n var promise = null;\r\n if (scope.requiresWritePermission && selection.length > 0) {\r\n var assetIds = selection.reduce(function (assetIds, item) {\r\n if (!item.IsDefault) {\r\n assetIds.push(item.Id);\r\n }\r\n return assetIds;\r\n }, []);\r\n\r\n if (assetIds.length === 0) {\r\n return $q.when();\r\n }\r\n\r\n promise = assetStoreService.getEditStatusForAssets(assetIds).then(function (assets) {\r\n var invalidAssets = [];\r\n var containsCollab = false;\r\n var statusInfo = \"\";\r\n\r\n for (var i = 0, l = assets.length; i < l; i++) {\r\n statusInfo = assets[i];\r\n\r\n if (statusInfo.Value === \"NoPermission\") {\r\n invalidAssets.push(selection[i]);\r\n } else if (statusInfo.Value === \"Collaborate\") {\r\n invalidAssets.push(selection[i]);\r\n containsCollab = true;\r\n }\r\n }\r\n\r\n if (invalidAssets.length > 0) {\r\n scope.showBadPermissionModal(invalidAssets, containsCollab);\r\n return $q.reject();\r\n }\r\n });\r\n } else {\r\n promise = $q.when();\r\n }\r\n\r\n return promise;\r\n };\r\n\r\n scope.selectSingle = function (selector) {\r\n scope.selectedSelectors = []; // make sure only one object is returned\r\n scope.selectedSelectors.push(selector);\r\n\r\n if (scope.lockOnSelect) {\r\n scope\r\n .lockSingle(selector)\r\n .then(function (lock) {\r\n scope.selectionConfirm();\r\n })\r\n .catch(function (err) {\r\n scope.selectedSelectors.length = 0;\r\n });\r\n } else {\r\n scope.selectionConfirm();\r\n }\r\n };\r\n\r\n scope.showBadPermissionModal = function (invalidAssets, containsCollab) {\r\n var isolatedScope = scope.$new(true);\r\n var modalTemplate = \"spaMenu/selector/invalid-selection-modal.lazy.html\";\r\n var whichCentre = scope.selectType === SELECTOR.SELECT_TYPE.RESOURCE ? \"resource\" : \"asset\";\r\n\r\n isolatedScope.title = multiLanguageService.getString(\"builder.adding_\" + whichCentre + \"_not_accepted_modal.title\");\r\n isolatedScope.message = containsCollab\r\n ? multiLanguageService.getString(\"builder.adding_\" + whichCentre + \"_not_accepted_modal.collab_error\")\r\n : multiLanguageService.getString(\"builder.adding_\" + whichCentre + \"_not_accepted_modal.permission_error\");\r\n isolatedScope.invalidAssets = invalidAssets;\r\n\r\n isolatedScope.button_label = multiLanguageService.getString(\"portfolioAndFoliopages.okay\");\r\n isolatedScope.onClose = function () {\r\n isolatedScope.$destroy();\r\n };\r\n\r\n modal.newModal({\r\n scope: isolatedScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + modalTemplate\r\n });\r\n };\r\n\r\n scope.launchFileUpload = (selectorId) => {\r\n $rootScope.$broadcast(\"openRightHandSidePanel\", {\r\n panel: \"file-upload\",\r\n panelSettings: {\r\n selectorId: selectorId\r\n }\r\n });\r\n };\r\n\r\n scope.onCancel = function () {\r\n // when cancelling broadcast back any original ids the user had\r\n $rootScope.$broadcast(scope.broadcastCommand, scope.originalSelectors);\r\n scope.selectorDisplayResults = scope.defaultSearchResults();\r\n scope.selectedSelectors = [];\r\n scope.originalSelectors = [];\r\n scope.showClearAll = false;\r\n scope.previousData = null;\r\n scope.screenReaderMessage = \"\";\r\n };\r\n\r\n scope.onClose = function (stopExtraAction) {\r\n scope.onCancel();\r\n scope.goToPreviousPanel(stopExtraAction);\r\n };\r\n\r\n scope.closeSidebar = () => {\r\n scope.onClose(scope.stopExtraAction);\r\n };\r\n\r\n scope.goToPreviousPanel = function (stopExtraAction) {\r\n scope.unbindAccessKeys();\r\n scope.previousPanel(false, stopExtraAction);\r\n };\r\n\r\n scope.lockSingle = function (selector) {\r\n // Check if this asset is locked\r\n return assetLockingNotificationService.setupLockWithModalForAdding(selector.Id, selector.MainType, \"\").catch(function () {\r\n return $q.reject(selector);\r\n });\r\n };\r\n\r\n scope.extraActionFromOtherSidePanel = scope.onCancel;\r\n\r\n scope.onSearch = withDigest((searchString, searchScope) => {\r\n const trimmedSearch = searchString.trim();\r\n if (trimmedSearch === \"\") {\r\n scope.selectingClearButtonPressed();\r\n return;\r\n }\r\n\r\n const filterData = { searchTerm: trimmedSearch };\r\n if (searchScope !== undefined) {\r\n filterData.filter = searchScope.filter;\r\n }\r\n\r\n $rootScope.$broadcast(\"filterItemSelector\", filterData);\r\n }, scope);\r\n\r\n scope.selectingClearButtonPressed = function () {\r\n scope.search.searchTerm = \"\";\r\n $rootScope.$broadcast(\"filterItemSelector\");\r\n };\r\n\r\n scope.onChange = withDigest((searchString) => {\r\n scope.search.searchTerm = searchString;\r\n }, scope);\r\n\r\n scope.onFilterChange = withDigest((filterModel) => {\r\n scope.search.filterModel = filterModel;\r\n }, scope);\r\n\r\n scope._setSearchFieldsToDefaults = () => {\r\n scope.search.filterOptions = [\r\n {\r\n value: multiLanguageService.getString(itemSelectorFilters.all.label),\r\n filter: itemSelectorFilters.all,\r\n fullLabel: multiLanguageService.getString(itemSelectorFilters.all.fullLabel)\r\n },\r\n {\r\n value: multiLanguageService.getString(itemSelectorFilters.tag.label),\r\n filter: itemSelectorFilters.tag,\r\n fullLabel: multiLanguageService.getString(itemSelectorFilters.tag.fullLabel)\r\n },\r\n {\r\n value: multiLanguageService.getString(itemSelectorFilters.title.label),\r\n filter: itemSelectorFilters.title,\r\n fullLabel: multiLanguageService.getString(itemSelectorFilters.title.fullLabel)\r\n }\r\n ];\r\n scope.search.filterModel = {\r\n activeItemIndex: 0,\r\n type: AriaMenuStatus.Closed,\r\n isOpen: false\r\n };\r\n scope.search.searchTerm = \"\";\r\n };\r\n\r\n scope._setSearchFieldsToDefaults();\r\n\r\n scope.displayCurrentlySelectedSelectors = function () {\r\n scope.selectorSpinner = true;\r\n\r\n //Toggle view between showing only selected results and all results.\r\n if (!scope.previousData) {\r\n scope.previousData = scope.selectorDisplayResults;\r\n scope.selectorDisplayResults = {\r\n Items: angular.copy(scope.selectedSelectors),\r\n Description: multiLanguageService.getString(\"search.current_selection\")\r\n };\r\n scope.limitedView = true;\r\n } else {\r\n scope.selectorDisplayResults = scope.previousData;\r\n scope.previousData = null;\r\n scope.limitedView = false;\r\n }\r\n\r\n scope._setSearchFieldsToDefaults();\r\n $rootScope.$broadcast(\"filterItemSelector\");\r\n\r\n $rootScope.$broadcast(\"updateItemsInSelector\", scope.selectorDisplayResults);\r\n\r\n scope.selectorSpinner = false;\r\n scope.showClearAll = allSelected();\r\n };\r\n\r\n scope.selectAll = function () {\r\n $rootScope.$broadcast(\"selectAllItemSelector\", true);\r\n\r\n if (scope.broadcastType === \"everyAction\") {\r\n $rootScope.$broadcast(scope.broadcastCommand, scope.selectorDisplayResults.Items);\r\n }\r\n scope.showClearAll = true;\r\n scope.$applyAsync();\r\n };\r\n\r\n scope.clearAll = function () {\r\n $rootScope.$broadcast(\"selectAllItemSelector\", false);\r\n\r\n if (scope.broadcastType === \"everyAction\") {\r\n $rootScope.$broadcast(scope.broadcastCommand, scope.selectedSelectors);\r\n }\r\n scope.showClearAll = false;\r\n scope.$applyAsync();\r\n };\r\n\r\n scope.checkSelected = function (id) {\r\n return checkSelected(id) !== -1;\r\n };\r\n\r\n var checkSelected = function (selector) {\r\n for (var i = 0, len = scope.selectedSelectors.length; i < len; i++) {\r\n if (scope.selectedSelectors[i].Id === selector.Id) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n\r\n var allSelected = function () {\r\n for (const item of scope.selectorDisplayResults.Items) {\r\n if (checkSelected(item) === -1) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n /*\r\n * Access key logic\r\n */\r\n\r\n scope.onEscKey = function () {\r\n scope.onClose(true);\r\n };\r\n\r\n scope.bindAccessKeys = function () {\r\n const q = {\r\n key: \"q\",\r\n altKey: true,\r\n callback: function () {\r\n const selectAllButton = document.querySelector(`[data-hook=\"spa-selector__select-all-button\"]`);\r\n if (selectAllButton) {\r\n selectAllButton.focus();\r\n }\r\n }\r\n };\r\n accessKeyService.register(\"spaSelector\", [q]);\r\n };\r\n\r\n scope.unbindAccessKeys = function () {\r\n accessKeyService.remove(\"spaSelector\");\r\n };\r\n\r\n scope.getImageUrl = function (id) {\r\n return baseUrlsFactory.api_base_url + \"file/transmitImage?id=\" + id + \"&x=144&y=144&shortSideScale=true\";\r\n };\r\n\r\n scope.resetDefaultBannerDisplay = function () {\r\n scope.currentLimit = scope.defaultLimit;\r\n scope.displayingAll = false;\r\n };\r\n\r\n scope.switchGallery = function () {\r\n scope.imageGallery = !scope.imageGallery;\r\n };\r\n\r\n scope.openInfoPanel = function (id, panel, actionData) {\r\n panel = typeof panel !== \"undefined\" ? panel : \"asset-info\";\r\n $rootScope.$broadcast(\"openRightHandSidePanel\", {\r\n panel: panel,\r\n assetId: id,\r\n actionData: actionData\r\n });\r\n };\r\n\r\n scope.showMoreImages = function (inview) {\r\n if (inview) {\r\n if (scope.imageViewLimit >= scope.selectorDisplayResults.Items.length) {\r\n scope.allLoaded = true;\r\n scope.imageViewLimit = scope.selectorDisplayResults.Items.length;\r\n } else {\r\n scope.imageViewLimit += 15;\r\n }\r\n }\r\n };\r\n\r\n // Not the best plan but it will fix the images that don't have thumbnails for now\r\n scope.$on(\"imgFallback\", function (event, data) {\r\n var item = scope.selectorDisplayResults.Items.where({ Id: data[0].id });\r\n if (item.length > 0) {\r\n item[0].showIcon = true;\r\n }\r\n scope.$digest(); // Unfortunately this adds a digest each time an image thumbnail fails\r\n });\r\n\r\n scope.showIcon = function (item) {\r\n return item.SubType && (item.SubType.toLowerCase() !== \"image\" || item.showIcon);\r\n };\r\n\r\n scope.isSelected = function (item) {\r\n if (scope.selectedSelectors.where({ Id: item.Id }).length) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{::multiLanguageService.getString('search.heading')}}

0\" item-data=\"defaultBanners\" available-views=\"defaultBannerViews\" on-select=\"::selectSelector(item)\" starting-amount=\"4\" pagination-amount=\"0\" main-selection=\"singleOrMultipleSelect\"> 0 || selectorDisplayResults.Description !== ''\" item-data=\"selectorDisplayResults\" items-selected=\"selectedSelectors\" available-views=\"selectorViews\" on-select=\"::selectSelector(item)\" on-update=\"::handleLimitedViewString(value)\" starting-amount=\"50\" pagination-amount=\"50\" on-request-upload=\"onRequestUpload\" main-selection=\"singleOrMultipleSelect\" sub-types=\"subTypes\">
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../services/spaHistoryService\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../assetStore/services/useResourceService\";\r\nimport \"../../../utilities/urlService\";\r\nimport \"../../../history/services/historyService\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../screenReaderAnnouncer/screenReaderAnnouncer.directive\";\r\nimport \"../../../assetListItem/assetListItem.directive\";\r\nimport template from \"../views/spa-history.html\";\r\n\r\nangularAMD.directive(\"spaHistory\", [\r\n \"$timeout\",\r\n \"$sce\",\r\n \"SpaHistoryService\",\r\n \"baseUrlsFactory\",\r\n \"$rootScope\",\r\n \"$routeParams\",\r\n \"$window\",\r\n \"$location\",\r\n \"useResourceService\",\r\n \"urlService\",\r\n \"historyService\",\r\n \"multiLanguageService\",\r\n function ($timeout, $sce, SpaHistoryService, baseUrlsFactory, $rootScope, $routeParams, $window, $location, useResourceService, urlService, historyService, multiLanguageService) {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.multiLanguageService = multiLanguageService;\r\n $scope.historyList = [];\r\n $scope.routeParams = $routeParams;\r\n\r\n $scope.setupHistory = function () {\r\n $scope.history_panel_el = angular.element($element[0].getElementsByClassName(\"spa-history__tab-trap\")[0]);\r\n $scope.spaAppContainer = document.getElementById(\"app-container\");\r\n $scope.spaMenuWrapper = document.getElementById(\"spa-menu-wrapper\");\r\n\r\n if ($scope.initiatingButton === \"dash\") {\r\n $scope.history_panel_button = document.getElementById(\"dashboard-history-button\");\r\n } else if ($scope.initiatingButton === \"spa\") {\r\n $scope.history_panel_button = document.getElementById(\"spa-history-btn\");\r\n }\r\n\r\n bindEscKey();\r\n\r\n SpaHistoryService.getHistory(Date.now()).then(function (response) {\r\n setHistoryDataOnScope(response.data);\r\n autoFocusOnFirstResult();\r\n });\r\n };\r\n\r\n $scope.getMore = function () {\r\n $scope.loading = true;\r\n var nextItemIndex = $scope.historyList.length;\r\n SpaHistoryService.getHistory($scope.getDateOfLastItem()).then(function (response) {\r\n setHistoryDataOnScope(response.data);\r\n autoFocusOnNextResult(nextItemIndex);\r\n });\r\n };\r\n\r\n $scope.historyBtnClicked = function () {\r\n if ($scope.historyList.length === 0) {\r\n $scope.setupHistory();\r\n }\r\n };\r\n\r\n $scope.loadMore = function () {\r\n if (!$scope.loading) {\r\n $scope.showHistorySpinner = true;\r\n $scope.getMore();\r\n }\r\n };\r\n\r\n // a singleton signal r gets the message on the rootscope and broadcasts down to here\r\n $rootScope.$on(\"refreshHistorySection\", function () {\r\n $scope.setupHistory();\r\n });\r\n\r\n $scope.getDateOfLastItem = function () {\r\n return $scope.earliestDateLoaded;\r\n };\r\n\r\n $scope.closeHistoryPanel = function () {\r\n closeHistoryPanel();\r\n };\r\n\r\n $scope.$on(\"$routeChangeStart\", removeEventListeners);\r\n $scope.$on(\"spa-action-menu-collapse\", closeHistoryPanel);\r\n $element.on(\"$destroy\", function () {\r\n removeEventListeners();\r\n $scope.$destroy();\r\n });\r\n\r\n function bindEscKey() {\r\n document.addEventListener(\"keydown\", escKeyPressed, true);\r\n }\r\n\r\n function unbindEscKey() {\r\n document.removeEventListener(\"keydown\", escKeyPressed, true);\r\n }\r\n\r\n function escKeyPressed(e) {\r\n if (e.keyCode === 27) {\r\n e.stopPropagation();\r\n closeHistoryPanel();\r\n }\r\n }\r\n\r\n function closeHistoryPanel(e) {\r\n SpaHistoryService.cancel();\r\n removeEventListeners();\r\n\r\n $scope.history_panel_button.focus();\r\n\r\n if (!e) {\r\n $scope.$emit(\"spaMenuClosePanels\");\r\n $scope.$destroy();\r\n }\r\n }\r\n\r\n function removeEventListeners() {\r\n unbindEscKey();\r\n }\r\n\r\n function autoFocusOnFirstResult() {\r\n $timeout(function () {\r\n var firstResult = angular.element($element[0].getElementsByClassName(\"asset-list-item__title\")[0]);\r\n if (firstResult[0]) {\r\n firstResult[0].focus();\r\n }\r\n });\r\n }\r\n\r\n function autoFocusOnNextResult(nextResultIndex) {\r\n $timeout(function () {\r\n var allLinks = angular.element($element[0].getElementsByClassName(\"asset-list-item__title\"));\r\n allLinks[nextResultIndex].focus();\r\n });\r\n }\r\n\r\n function setHistoryDataOnScope(historyList) {\r\n historyList.Items = flatPackHistoryItems(historyList.Items);\r\n $scope.historyList = $scope.historyList.concat(historyList.Items);\r\n\r\n $scope.loading = false;\r\n $scope.noMoreItems = historyList.NoMoreItems;\r\n $scope.noMoreItemsText = historyList.NoMoreItemsText;\r\n $scope.showMore = !historyList.noMoreItems;\r\n\r\n if (!$scope.noMoreItems) {\r\n $scope.showNoMore = false;\r\n } else {\r\n $scope.showNoMore = true;\r\n }\r\n $scope.showHistorySpinner = false;\r\n }\r\n\r\n function flatPackHistoryItems(oldHistoryList) {\r\n var newHistoryList = [];\r\n\r\n for (var i = 0; i < oldHistoryList.length; i++) {\r\n newHistoryList = newHistoryList.concat(oldHistoryList[i].Children);\r\n\r\n if (oldHistoryList.length - 1 === i) {\r\n $scope.earliestDateLoaded = oldHistoryList[i].UtcDayBeforeThisDate;\r\n }\r\n }\r\n\r\n return newHistoryList;\r\n }\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n scope.showNoMore = false;\r\n scope.showHistorySpinner = true;\r\n\r\n var resourceDict = {\r\n form: \"templateBuilder\",\r\n workbook: \"workbookBuilder\"\r\n };\r\n scope.redirectURL = function (path, targetType) {\r\n if (path) {\r\n if (targetType === \"_blank\") {\r\n return path;\r\n } else {\r\n if (urlService.isAsset(path)) {\r\n //Local Asset / Resource\r\n var match = path.match(/maintype=(form|workbook)(&|$)/i);\r\n if (match !== null) {\r\n path = path.replace(/(maintype=)(form|workbook)/i, \"$1\" + resourceDict[match[1].toLowerCase()]);\r\n }\r\n return urlService.configureAssetUrl(path, null);\r\n } else {\r\n //Relative Path\r\n return path;\r\n }\r\n }\r\n }\r\n };\r\n\r\n scope.setupHistory();\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{::multiLanguageService.getString('labels.cards.last_worked_on.workingOn')}}

`;","import { Keys } from \"@pjs/core-ui\";\r\nimport { withDigest } from \"../react2angular/utilities/WithDigest.function\";\r\n\r\nexport const getFeedbackListShortcuts = (element, services) => {\r\n return [\r\n {\r\n keys: [Keys.Control, Keys.Shift, \"k\"],\r\n callback: withDigest(() => element.querySelector(`[data-hook='feedback-search-input']`)?.focus(), services.scope),\r\n description: services.multiLangService.getString(\"shortcuts.start_keyword_search\")\r\n }\r\n ];\r\n};\r\n","import { Keys } from \"@pjs/core-ui\";\r\nimport { withDigest } from \"../../../react2angular/utilities/WithDigest.function\";\r\n\r\nexport const getCommentsListShortcuts = (element, services) => {\r\n return [\r\n {\r\n keys: [Keys.Control, Keys.Shift, \"k\"],\r\n callback: withDigest(() => element.querySelector(`[data-hook='comments-search-input']`)?.focus(), services.scope),\r\n description: services.multiLangService.getString(\"shortcuts.start_keyword_search\")\r\n }\r\n ];\r\n};\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.service(\"pageReloadService\", PageReloadService);\r\nPageReloadService.$inject = [\"helperService\"];\r\n\r\nfunction PageReloadService(helperService) {\r\n this.isUpdated = false;\r\n\r\n this.notifyOnUpdate = function () {\r\n if (!helperService.isNotInAsset()) {\r\n this.isUpdated = true;\r\n }\r\n };\r\n\r\n this.locationReloadOnSidePanelClose = function () {\r\n if (this.isUpdated) {\r\n location.reload();\r\n }\r\n\r\n this.isUpdated = false;\r\n };\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { dataEncryptionService } from \"../../../utilities/dataEncryptionService\";\r\nimport { ASSET_CONSTANTS } from \"../../../constants/asset.constants\";\r\nimport { heartIcon } from \"@pjs/core-ui\";\r\nimport { KillSignal, takeUntil } from \"@pjs/observables\";\r\nimport { FavouriteStates } from \"../../../observer/favourites/FavouriteStates\";\r\nimport { favouritesObserver } from \"../../../observer/favourites/FavouritesObserver.const\";\r\nimport \"../../../featureSettings/FeatureSettings\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../assetViews/sidebar/shares/shares\";\r\nimport \"../../../assetLocking/services/assetLockingAPI.service\";\r\nimport \"../../../assetViews/sidebar/submissions/submissions\";\r\nimport \"../../../tagger/tagger\";\r\nimport \"../../../builder/dataManager/dataManagerService\";\r\nimport \"../../../modal/services/modal\";\r\nimport \"../../services/pageReloadService\";\r\nimport \"../../../builder/pageReuse/pageReuse.directive\";\r\nimport \"../../../workbook/service/workbookService\";\r\nimport \"../../../overlay/services/overlayFactory\";\r\nimport \"../../../builder/pageReuse/services/pageReuseFactory.factory\";\r\nimport \"../../../utilities/iconHelper.service\";\r\nimport \"../../../screenReaderAnnouncer/screenReaderAnnouncer.directive\";\r\nimport \"../../../utilities/pebbleDate\";\r\nimport \"../../../post/services/post.service\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../assetStore/services/assetStoreService\";\r\nimport \"../../../react2angular/assetIcon\";\r\nimport template from \"./templates/asset-base-info.html\";\r\n\r\nangularAMD.directive(\"assetBaseInfo\", [\r\n \"$window\",\r\n \"$rootScope\",\r\n \"$http\",\r\n \"$location\",\r\n \"$timeout\",\r\n \"$q\",\r\n \"baseUrlsFactory\",\r\n \"dataManagerService\",\r\n \"modal\",\r\n \"pageReloadService\",\r\n \"workbookService\",\r\n \"overlayFactory\",\r\n \"PageReuseFactory\",\r\n \"IconHelper\",\r\n \"AssetLockingAPI\",\r\n \"PostService\",\r\n \"multiLanguageService\",\r\n \"assetStoreService\",\r\n \"featureSettings\",\r\n function (\r\n $window,\r\n $rootScope,\r\n $http,\r\n $location,\r\n $timeout,\r\n $q,\r\n baseUrlsFactory,\r\n dataManagerService,\r\n modal,\r\n pageReloadService,\r\n workbookService,\r\n overlayFactory,\r\n PageReuseFactory,\r\n IconHelper,\r\n AssetLockingAPI,\r\n PostService,\r\n multiLanguageService,\r\n assetStoreService,\r\n featureSettings\r\n ) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n info: \"=?info\",\r\n assetId: \"=?assetid\",\r\n pageReuseId: \"=\",\r\n loading: \"@\",\r\n disableEdit: \"<\"\r\n },\r\n\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n $scope.savedTitle = false;\r\n $scope.titleAnnouncerMessage = \"\";\r\n\r\n const favouritesEnabled = featureSettings.isEnabled(\"Favourites\");\r\n $scope.isFavourite = $scope.info.IsFavourite && favouritesEnabled;\r\n $scope.heartIcon = heartIcon;\r\n\r\n const killFavouritesSignal = new KillSignal();\r\n\r\n if ($scope.info.Authors.length === 1 && $scope.info.Collaborators.length <= 1) {\r\n $scope.AuthorString = $rootScope.multiLanguageService.getString(\"asset_summary.headings.author\");\r\n } else if ($scope.info.Authors.length > 1 && $scope.info.Collaborators.length <= 1) {\r\n $scope.AuthorString = $rootScope.multiLanguageService.getString(\"asset_summary.headings.authors\");\r\n }\r\n\r\n $scope.getPage = function (assetId, pageId) {\r\n var manager = dataManagerService.getDto(assetId);\r\n if (!manager) {\r\n return null;\r\n }\r\n\r\n var page = manager.get(pageId);\r\n if (page === -1) {\r\n return null;\r\n }\r\n\r\n return page;\r\n };\r\n\r\n $scope.canReusePage = function (page) {\r\n if (!page.UserResponseId || !PageReuseFactory.isSupportedFolder(page.PageFolder)) {\r\n return false;\r\n }\r\n\r\n // Only display option if it's a template in a Workbook or a placeholder page which is already in the invisible folder!\r\n return workbookService.isTemplatePage(page) || (page.PageFolder === ASSET_CONSTANTS.FOLDERS.INVISIBLE && workbookService.isPageUserDefined(page));\r\n };\r\n\r\n $scope.reusePage = function (pageAssetId, folder, rootAssetId) {\r\n const manager = dataManagerService.getDto(rootAssetId);\r\n const savePromise = manager !== null && manager !== undefined ? dataManagerService.saveViaAssetId(rootAssetId, true) : $q.resolve();\r\n return savePromise.then(() => assetStoreService.changeAssetFolder(pageAssetId, folder)).finally(() => overlayFactory.saveOverlay.hide());\r\n };\r\n\r\n if (!favouritesEnabled) {\r\n return;\r\n }\r\n\r\n favouritesObserver\r\n .onChange()\r\n .pipe(takeUntil(killFavouritesSignal))\r\n .subscribe((result) => ($scope.isFavourite = result.state === FavouriteStates.Favourite));\r\n\r\n $scope.$on(\"$destroy\", () => {\r\n killFavouritesSignal.send();\r\n });\r\n }\r\n ],\r\n\r\n link: function (scope, element) {\r\n scope.edit_btn_el = angular.element(element[0].getElementsByClassName(\"edit-btn\")[0]);\r\n scope.input_el = angular.element(element[0].getElementsByClassName(\"editable-title\")[0]);\r\n scope.letterLimit = 150;\r\n scope.editMode = false;\r\n scope.user_has_edit_permission = false;\r\n scope.user_can_edit_title = false;\r\n\r\n scope.new_title = scope.info.Title;\r\n scope.threeDotsString = \"...\";\r\n scope.emptyString = \"\";\r\n scope.withDay = \"withDay\";\r\n\r\n scope.pageReuseEnabled = false;\r\n scope.page = null;\r\n\r\n var url = $location.url();\r\n scope.isPublic = url.indexOf(\"public\") > -1;\r\n\r\n if (scope.info.CurrentUserCanEdit) {\r\n AssetLockingAPI.lockedByAnother(scope.assetId).then(function (response) {\r\n if (response) {\r\n scope.user_has_edit_permission = false;\r\n scope.user_can_edit_title = false;\r\n scope.info.CurrentUserCanChangeTitle = false;\r\n } else {\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.info.CurrentUserCanEdit == true) {\r\n if ((scope.info.MainType === \"FormResponse\" && url.indexOf(\"template\") > -1) || (scope.info.MainType === \"File\" && url.indexOf(\"file\") > -1)) {\r\n //we are not allowing currently loaded form responses in EDIT MODE to edit there title\r\n scope.user_has_edit_permission = false;\r\n } else {\r\n scope.user_has_edit_permission = true;\r\n setupPageReuse();\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.info.CurrentUserCanChangeTitle == true) {\r\n if ((scope.info.MainType === \"FormResponse\" && url.indexOf(\"template\") > -1) || (scope.info.MainType === \"File\" && url.indexOf(\"file\") > -1)) {\r\n //we are not allowing currently loaded form responses in EDIT MODE to edit there title\r\n scope.user_can_edit_title = false;\r\n } else {\r\n scope.user_can_edit_title = true;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n var setupPageReuse = function () {\r\n if (scope.pageReuseId && scope.info.MainType === ASSET_CONSTANTS.TYPES.WORKBOOK_RESPONSE) {\r\n scope.page = scope.getPage(scope.assetId, scope.pageReuseId);\r\n if (scope.page) {\r\n scope.pageAssetIcon = IconHelper.getIconFromType(scope.page.PageIcon);\r\n scope.pageReuseEnabled = scope.canReusePage(scope.page);\r\n }\r\n }\r\n };\r\n\r\n // watch the url, close the info panel if moving away from the page\r\n var $off = $rootScope.$on(\"$locationChangeStart\", function (event, next, current) {\r\n var nextStartingUrl = next;\r\n var currentStartingUrl = current;\r\n\r\n if (next.indexOf(\"?\") > -1) {\r\n nextStartingUrl = next.substring(0, next.indexOf(\"?\"));\r\n }\r\n if (current.indexOf(\"?\") > -1) {\r\n currentStartingUrl = current.substring(0, current.indexOf(\"?\"));\r\n }\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (nextStartingUrl != currentStartingUrl) {\r\n scope.$emit(\"closeRightHandSidePanel\");\r\n $off();\r\n }\r\n });\r\n\r\n scope.editClicked = function () {\r\n if (window.event && window.event.type === \"keyup\") {\r\n var code = window.event.keyCode ? window.event.keyCode : window.event.which;\r\n if (code !== 13 && code !== 32) {\r\n return;\r\n }\r\n }\r\n scope.editTitle();\r\n };\r\n\r\n /**\r\n * Make the title editable\r\n * @param e {Event}\r\n */\r\n scope.editTitle = function (e) {\r\n scope.savedTitle = false;\r\n scope.titleAnnouncerMessage = \"\";\r\n\r\n if (scope.editMode) {\r\n scope.editMode = false;\r\n scope.new_title = scope.info.Title;\r\n scope.input_el.unbind(\"keydown\");\r\n } else {\r\n scope.editMode = true;\r\n $timeout(function () {\r\n scope.input_el[0].focus();\r\n scope.input_el[0].select();\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Save the new asset title\r\n */\r\n scope.saveTitle = function () {\r\n if (scope.info.Title === scope.new_title || scope.new_title === \"\") {\r\n return;\r\n }\r\n\r\n scope.info.Title = scope.new_title;\r\n scope.editMode = false;\r\n scope.savedTitle = true;\r\n scope.titleAnnouncerMessage = multiLanguageService.getString(\"sidebar.asset_title_saved_as\", { title: scope.new_title });\r\n\r\n //deal with local storage\r\n switch (scope.info.MainType) {\r\n case \"Webfolio\":\r\n //editing the asset that's on screen\r\n scope.setupDataManager(function () {\r\n scope.setupManagerObject(dataManagerService.pageManagerObject);\r\n });\r\n break;\r\n case \"WorkbookResponse\":\r\n //editing the asset that's on screen\r\n scope.setupDataManager(function () {\r\n scope.setupManagerObject(dataManagerService.workbookManagerObject);\r\n });\r\n break;\r\n case \"WebfolioPage\":\r\n //editing the asset that's on screen\r\n scope.setupDataManager(function () {\r\n scope.setupManagerObject(dataManagerService.pageManagerObject);\r\n });\r\n break;\r\n case \"Post\":\r\n //editing the asset that's on screen\r\n scope.setupDataManager(function () {\r\n scope.setupManagerObject(dataManagerService.postManagerObject);\r\n });\r\n break;\r\n }\r\n\r\n //call service to save title tp server\r\n $http.defaults.withCredentials = true;\r\n $http\r\n .post(baseUrlsFactory.api_base_url + \"AssetSidebar/UpdateAssetTitle\", {\r\n AssetId: scope.assetId,\r\n NewTitle: scope.info.Title\r\n })\r\n .then(function (response) {\r\n if (response.data === \"true\") {\r\n pageReloadService.notifyOnUpdate();\r\n } else {\r\n modal.launch(modal.genericTemplates.popup, {\r\n title: $rootScope.multiLanguageService.getString(\"workbook.error_modals.generic_title\"),\r\n message: $rootScope.multiLanguageService.getString(\"workbook.error_modals.unable_save_title.message\"),\r\n button_label: $rootScope.multiLanguageService.getString(\"buttons.ok\")\r\n });\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Update local storage with the correct asset title\r\n */\r\n scope.saveTitleInLocalStorage = function () {\r\n const assetDto = dataManagerService.loadFromPersistentObjStore(scope.assetId);\r\n if (assetDto !== null) {\r\n var stringifiedAssetDto = JSON.stringify(updateAssetTitle(assetDto, scope.info.Title));\r\n\r\n dataManagerService.getUserData().then(function (response) {\r\n var user_id;\r\n\r\n if (response.data) {\r\n user_id = response.data ? response.data : \"pebblelocalstorage\";\r\n } else {\r\n user_id = response ? response : \"pebblelocalstorage\";\r\n }\r\n\r\n stringifiedAssetDto = dataEncryptionService.AES.encrypt(stringifiedAssetDto, user_id);\r\n\r\n try {\r\n $window.localStorage.setItem(user_id, stringifiedAssetDto);\r\n } catch (e) {\r\n return false;\r\n }\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Set up the manager object with the scope data\r\n * @param managerObject {BasicInfoViewModel}\r\n */\r\n scope.setupManagerObject = function (managerObject) {\r\n // tslint:disable-next-line:triple-equals\r\n if (managerObject && managerObject.AssetId == scope.assetId) {\r\n updateAssetTitle(managerObject.data, scope.info.Title);\r\n managerObject.save();\r\n } else {\r\n scope.saveTitleInLocalStorage();\r\n }\r\n };\r\n\r\n var updateAssetTitle = function (assetDto, title) {\r\n if (assetDto.MainType === ASSET_CONSTANTS.TYPES.POST) {\r\n var titleBanner = PostService.getTitleBannerSection(assetDto);\r\n if (titleBanner !== null) {\r\n titleBanner.Title = title;\r\n }\r\n }\r\n assetDto.Title = title;\r\n assetDto.LastModified = new Date();\r\n return assetDto;\r\n };\r\n\r\n /**\r\n * Initialise the data manager object\r\n * @param callback {Function}\r\n */\r\n scope.setupDataManager = function (callback) {\r\n //DataManager has already been initialised don't bother.\r\n if (!dataManagerService.primary_id) {\r\n dataManagerService\r\n .init({\r\n AssetId: null,\r\n Asset: { MainType: scope.info.MainType }\r\n })\r\n .then(callback);\r\n } else {\r\n callback();\r\n }\r\n };\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{::multiLanguageService.getString('asset_summary.headings.title')}}

{{info.Title}}

{{::multiLanguageService.getString('asset_summary.headings.title')}}

{{::multiLanguageService.getString('asset_summary.favourite')}}

{{::multiLanguageService.getString('asset_summary.headings.page_reuse')}}

{{::page.PageTitle}}

{{::multiLanguageService.getString('asset_summary.headings.description')}}

{{::multiLanguageService.getString('asset_summary.headings.created')}}

{{::multiLanguageService.getString('asset_summary.time_on_day_date', { time: (info.CreatedOn | pebbleDate: \"timeOnly\"), dateWithDay: (info.CreatedOn | pebbleDate:withDay) })}}

{{::multiLanguageService.getString('asset_summary.headings.modified')}}

{{::multiLanguageService.getString('asset_summary.time_on_day_date', { time: (info.ModifiedOn | pebbleDate: \"timeOnly\"), dateWithDay: (info.ModifiedOn | pebbleDate:withDay) })}}

{{::AuthorString}}

=1 && info.Collaborators.length<=1\" class=\"author-item sidebar-author-item\" ng-repeat=\"author in info.Authors\"> \"\"

{{::author.Forename}} {{::author.Surname}}

1\"> {{::multiLanguageService.getString('asset_summary.headings.authors_collab')}}

1\" class=\"author-item sidebar-author-item\" ng-repeat=\"author in info.Collaborators\"> \"\"

{{::author.Forename}} {{::author.Surname}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../assetStore/services/assetStoreService\";\r\nimport \"../../../assetViews/sidebar/shares/shares\";\r\nimport \"../../../assetViews/sidebar/submissions/submissions\";\r\nimport \"../../../tagger/tagger\";\r\nimport template from \"./templates/base.html\";\r\n\r\nangularAMD.directive(\"institutionInfo\", [\r\n \"$sce\",\r\n \"$rootScope\",\r\n \"$compile\",\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"assetStoreService\",\r\n function ($sce, $rootScope, $compile, $http, baseUrlsFactory, assetStoreService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n info: \"=?info\"\r\n },\r\n\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n scope.letterLimit = 150;\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{::multiLanguageService.getString('plus_home.pages.personalise_page.institution')}}

{{::info.OrgName}}

\"\"
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../assetEndpointService/assetEndpoint.service\";\r\n\r\nangularAMD.factory(\"assetBaseInfoService\", [\r\n \"$http\",\r\n \"AssetEndpointService\",\r\n function ($http, assetEndpointService) {\r\n const factory = {};\r\n\r\n factory.getBaseInfo = function (assetId) {\r\n $http.defaults.withCredentials = true;\r\n return assetEndpointService.getBasicDetails(assetId);\r\n };\r\n\r\n return factory;\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../../utilities/baseUrlsFactory\";\r\n\r\nangularAMD.factory(\"reportService\", [\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"$q\",\r\n function ($http, baseUrlsFactory, $q) {\r\n function promisedPost(url, data) {\r\n $http.defaults.withCredentials = true;\r\n var httpTimeout = $q.defer();\r\n var request = $http.post(url, data, { timeout: httpTimeout.promise });\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n promise._httpTimeout = httpTimeout;\r\n return promise;\r\n }\r\n\r\n return {\r\n reportInappropriate: function (reportRequest) {\r\n return promisedPost(baseUrlsFactory.api_base_url + \"Asset/ReportAbuse\", reportRequest);\r\n }\r\n };\r\n }\r\n]);\r\n",null,null,null,"import { httpService, IResponseError, WebRequestFactory } from \"@pjs/http\";\r\nimport { apiConfig } from \"../../../ApiConfig\";\r\nimport { IReportInappropriateBody } from \"../interfaces/IReportInappropriateBody\";\r\n\r\nexport const sendReport = WebRequestFactory.createPost({\r\n errorMapper: (errorResponse: Response) => Promise.resolve({ code: errorResponse.status.toString(), headers: errorResponse.headers }),\r\n http: httpService,\r\n responseMapper: (response: Response) => response.json(),\r\n url: (params) => apiConfig.reportInappropriate(params.assetId)\r\n});\r\n","import { ButtonClass, DialogSize, IDialogStepConfig, IMultiStepDialogInstance, launchMultiStepDialog, LazyDialogInstanceType } from \"@pjs/core-ui\";\r\nimport { AsyncModelStatus } from \"@pjs/utilities\";\r\nimport { auditTime, catchError, switchMap, takeUntil, throwError, timer } from \"@pjs/observables\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { assetCoreI18n } from \"../../i18n/AssetCoreI18n.const\";\r\nimport { IAssetSummaryProps } from \"../../asset-summary/interfaces/IAssetSummaryProps\";\r\nimport { IReportModel } from \"../interfaces/IReportModel\";\r\nimport { IReportInappropriateBody } from \"../interfaces/IReportInappropriateBody\";\r\nimport { reportReasonLimit } from \"../consts/ReportReasonLimit.const\";\r\nimport { sendReport } from \"./SendReport.function\";\r\n\r\nexport const launchReportDialog = (assetId: string, assetSummary: IAssetSummaryProps, triggerElement: HTMLElement): LazyDialogInstanceType => {\r\n const stepOne: IDialogStepConfig> = {\r\n title: assetCoreI18n.getString(\"report_dialog.titles.report\"),\r\n actions: {\r\n left: [],\r\n right: [\r\n {\r\n label: assetCoreI18n.getString(\"report_dialog.actions.cancel\"),\r\n ariaLabel: assetCoreI18n.getString(\"report_dialog.actions.cancel\"),\r\n buttonClass: ButtonClass.Outlined,\r\n dataHook: \"modal-cancel-button\",\r\n disabled: () => false,\r\n action: (_model, instance) => {\r\n instance.close(triggerElement);\r\n }\r\n },\r\n {\r\n label: assetCoreI18n.getString(\"report_dialog.actions.report\"),\r\n ariaLabel: assetCoreI18n.getString(\"report_dialog.actions.report\"),\r\n buttonClass: ButtonClass.Contained,\r\n dataHook: \"modal-report-button\",\r\n disabled: (model) => {\r\n return model.reason.trim().length === 0 || model.reason.length > reportReasonLimit;\r\n },\r\n action: (_model, instance) => {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n const params: IReportInappropriateBody = { Reason: instance.model.reason };\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n\r\n tracker.trackEvent(\"Reporting content\", \"click\", \"Report (Logged in)\", instance.model.reason.length);\r\n\r\n sendReport(params, { assetId: assetId })\r\n .pipe(\r\n auditTime(700),\r\n catchError((err) => timer(700).pipe(switchMap(() => throwError(err)))),\r\n takeUntil(instance.destroyObservable)\r\n )\r\n .subscribe({\r\n next: () => instance.updateModel({ status: AsyncModelStatus.Resolved }),\r\n error: () => {\r\n instance.updateModel({ status: AsyncModelStatus.Error });\r\n instance.steps.previous();\r\n }\r\n });\r\n instance.steps.next();\r\n }\r\n }\r\n ]\r\n },\r\n component: () => import(\"../ReportDialog.component\").then((module) => module.ReportDialog)\r\n };\r\n\r\n const stepTwo: IDialogStepConfig> = {\r\n title: assetCoreI18n.getString(\"report_dialog.titles.submit\"),\r\n actions: {\r\n left: [],\r\n right: [\r\n {\r\n label: assetCoreI18n.getString(\"report_dialog.actions.done\"),\r\n ariaLabel: assetCoreI18n.getString(\"report_dialog.actions.done_label\"),\r\n buttonClass: ButtonClass.Contained,\r\n dataHook: \"modal-report-button\",\r\n disabled: (model) => {\r\n return model.status !== AsyncModelStatus.Resolved;\r\n },\r\n action: (_model, instance) => {\r\n instance.close(triggerElement);\r\n }\r\n }\r\n ]\r\n },\r\n component: () => import(\"../ReportDialogPending.component\").then((module) => module.ReportDialogPending)\r\n };\r\n\r\n return launchMultiStepDialog({\r\n size: DialogSize.Small,\r\n dismissAction: (_model, instance) => {\r\n instance.close(triggerElement);\r\n },\r\n initialModel: {\r\n assetSummary: assetSummary,\r\n reason: \"\",\r\n status: null\r\n },\r\n steps: [stepOne, stepTwo]\r\n });\r\n};\r\n","import { httpService, IResponseError, WebRequestFactory } from \"@pjs/http\";\r\nimport { apiConfig } from \"../../../ApiConfig\";\r\nimport { IPublicReportInappropriateBody } from \"../interfaces/IPublicReportInappropriateBody\";\r\n\r\nexport const sendPublicReport = WebRequestFactory.createPost({\r\n errorMapper: (errorResponse: Response) => Promise.resolve({ code: errorResponse.status.toString(), headers: errorResponse.headers }),\r\n http: httpService,\r\n responseMapper: (response: Response) => response.json(),\r\n url: (params) => apiConfig.publicReportInappropriate(params.assetId)\r\n});\r\n","import { ButtonClass, DialogSize, IDialogStepConfig, IMultiStepDialogInstance, launchMultiStepDialog, LazyDialogInstanceType } from \"@pjs/core-ui\";\r\nimport { AsyncModelStatus } from \"@pjs/utilities\";\r\nimport { auditTime, catchError, switchMap, takeUntil, throwError, timer } from \"@pjs/observables\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { assetCoreI18n } from \"../../i18n/AssetCoreI18n.const\";\r\nimport { IAssetSummaryProps } from \"../../asset-summary/interfaces/IAssetSummaryProps\";\r\nimport { IPublicReportModel } from \"../interfaces/IPublicReportModel\";\r\nimport { IPublicReportInappropriateBody } from \"../interfaces/IPublicReportInappropriateBody\";\r\nimport { reportReasonLimit } from \"../consts/ReportReasonLimit.const\";\r\nimport { sendPublicReport } from \"./SendPublicReport.function\";\r\n\r\nexport const launchPublicReportDialog = (\r\n assetId: string,\r\n assetSummary: IAssetSummaryProps,\r\n triggerElement: HTMLElement\r\n): LazyDialogInstanceType => {\r\n const stepOne: IDialogStepConfig> = {\r\n title: assetCoreI18n.getString(\"report_dialog.titles.report\"),\r\n actions: {\r\n left: [],\r\n right: [\r\n {\r\n label: assetCoreI18n.getString(\"report_dialog.actions.cancel\"),\r\n ariaLabel: assetCoreI18n.getString(\"report_dialog.actions.cancel\"),\r\n buttonClass: ButtonClass.Outlined,\r\n dataHook: \"modal-cancel-button\",\r\n disabled: () => false,\r\n action: (_model, instance) => {\r\n instance.close(triggerElement);\r\n }\r\n },\r\n {\r\n label: assetCoreI18n.getString(\"report_dialog.actions.report\"),\r\n ariaLabel: assetCoreI18n.getString(\"report_dialog.actions.report\"),\r\n buttonClass: ButtonClass.Contained,\r\n dataHook: \"modal-report-button\",\r\n disabled: (model) => {\r\n const isNameEmpty = model.name.trim().length === 0;\r\n const isEmailEmpty = model.email.trim().length === 0;\r\n const isReasonEmpty = model.reason.trim().length === 0;\r\n const isReasonOverLimit = model.reason.length > reportReasonLimit;\r\n\r\n return isNameEmpty || isEmailEmpty || !model.isEmailValid || isReasonEmpty || isReasonOverLimit;\r\n },\r\n action: (_model, instance) => {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n const params: IPublicReportInappropriateBody = {\r\n Name: instance.model.name,\r\n Email: instance.model.email,\r\n Reason: instance.model.reason\r\n };\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n\r\n tracker.trackEvent(\"Reporting content\", \"click\", \"Report (Public)\", instance.model.reason.length);\r\n\r\n sendPublicReport(params, { assetId: assetId })\r\n .pipe(\r\n auditTime(700),\r\n catchError((err) => timer(700).pipe(switchMap(() => throwError(err)))),\r\n takeUntil(instance.destroyObservable)\r\n )\r\n .subscribe({\r\n next: () => {\r\n instance.updateModel({ status: AsyncModelStatus.Resolved });\r\n },\r\n error: () => {\r\n instance.updateModel({ status: AsyncModelStatus.Error });\r\n instance.steps.previous();\r\n }\r\n });\r\n instance.steps.next();\r\n }\r\n }\r\n ]\r\n },\r\n component: () => import(\"../PublicReportDialog.component\").then((module) => module.PublicReportDialog)\r\n };\r\n\r\n const stepTwo: IDialogStepConfig> = {\r\n title: assetCoreI18n.getString(\"report_dialog.titles.submit\"),\r\n actions: {\r\n left: [],\r\n right: [\r\n {\r\n label: assetCoreI18n.getString(\"report_dialog.actions.done\"),\r\n ariaLabel: assetCoreI18n.getString(\"report_dialog.actions.done_label\"),\r\n buttonClass: ButtonClass.Contained,\r\n dataHook: \"modal-report-button\",\r\n disabled: (model) => {\r\n return model.status !== AsyncModelStatus.Resolved;\r\n },\r\n action: (_model, instance) => {\r\n instance.close(triggerElement);\r\n }\r\n }\r\n ]\r\n },\r\n component: () => import(\"../ReportDialogPending.component\").then((module) => module.ReportDialogPending)\r\n };\r\n\r\n return launchMultiStepDialog({\r\n size: DialogSize.Small,\r\n dismissAction: (_model, instance) => {\r\n instance.close(triggerElement);\r\n },\r\n initialModel: {\r\n assetSummary: assetSummary,\r\n name: \"\",\r\n email: \"\",\r\n reason: \"\",\r\n status: null,\r\n isEmailValid: false\r\n },\r\n steps: [stepOne, stepTwo]\r\n });\r\n};\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../../utilities/baseUrlsFactory\";\r\nimport \"../../../../assetStore/services/assetStoreService\";\r\nimport \"../../../../assetViews/sidebar/shares/shares\";\r\nimport \"../../../../assetViews/sidebar/submissions/submissions\";\r\nimport \"../../../../extensions/arrayExtensions\";\r\nimport \"../../../../expandable/expandable\";\r\nimport \"../../../../tagger/tagger\";\r\nimport \"../../../../assetsWithLinks/directives/assetsWithLinks\";\r\nimport \"../services/reportService\";\r\nimport \"../../../../userAgent/userAgent.service\";\r\nimport \"../../../../user/user.service\";\r\nimport template from \"../templates/reportInappropriate.html\";\r\nimport { launchPublicReportDialog, launchReportDialog } from \"@pjs/asset-core\";\r\n\r\nangularAMD.directive(\"reportInappropriate\", [\r\n \"$q\",\r\n \"$sce\",\r\n \"$rootScope\",\r\n \"User\",\r\n function ($q, $sce, $rootScope, User) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n info: \"=?info\",\r\n assetId: \"=assetId\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n \"$filter\",\r\n function ($scope, $element, $attrs, $filter) {\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n\r\n $scope.launchDialog = ($event) => {\r\n const userDto = User.getDto();\r\n const isLoggedIn = userDto !== null;\r\n\r\n const author = $scope.info.Authors[0];\r\n const authorName = `${author.Forename} ${author.Surname}`;\r\n const subtext = $scope.multiLanguageService.getString(\"sidebar.inappropriate.asset_summary\", {\r\n name: authorName,\r\n time: $filter(\"pebbleDate\")($scope.info.CreatedOn, \"timeOnly\"),\r\n date: $filter(\"pebbleDate\")($scope.info.CreatedOn, \"dateOnly\")\r\n });\r\n const assetSummary = {\r\n title: $scope.info.Title,\r\n subtext: subtext,\r\n mainType: $scope.info.MainType,\r\n subType: $scope.info.SubType\r\n };\r\n\r\n let trigger = document.activeElement;\r\n if (trigger === document.body) {\r\n trigger = $event.currentTarget;\r\n }\r\n\r\n if (isLoggedIn) {\r\n launchReportDialog($scope.assetId, assetSummary, trigger);\r\n return;\r\n }\r\n\r\n launchPublicReportDialog($scope.assetId, assetSummary, trigger);\r\n };\r\n }\r\n ]\r\n };\r\n }\r\n]);\r\n","export default `
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../numberPicker/numberPicker\";\r\nimport \"../../builder/dataManager/helperService\";\r\nimport \"../../screenReaderAnnouncer/screenReaderAnnouncer.directive\";\r\nimport \"../../utilities/restrictDecimals.directive\";\r\nimport \"../../utilities/helpers\";\r\nimport \"../../react2angular/htmlNotice\";\r\nimport { warningNotice } from \"@pjs/core-ui\";\r\nimport template from \"../templates/activity-log-info.html\";\r\n\r\nangularAMD.directive(\"activityLogInfo\", [\r\n \"$sce\",\r\n \"multiLanguageService\",\r\n \"baseUrlsFactory\",\r\n \"$http\",\r\n \"helperService\",\r\n \"helpers\",\r\n function ($sce, multiLanguageService, baseUrlsFactory, $http, helperService, helpers) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n assetId: \"@\",\r\n assetOptions: \"=\",\r\n type: \"@\",\r\n disableEdit: \"<\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n //Variables --------------------------------------------------------------------------------------------\r\n const labelType = multiLanguageService.getString(\"accessibility.notice.type.hours_and_points\");\r\n $scope.warningLabel = multiLanguageService.getString(\"accessibility.notice.labels.warning\", { type: labelType });\r\n $scope.warningNotice = warningNotice;\r\n $scope.multiLanguageService = multiLanguageService;\r\n $scope.hoursAndPointsWarning = $scope.multiLanguageService.getString(\"labels.signatures.hours_and_points_warning\");\r\n $scope.shouldDisplayWarning = false;\r\n $scope.invalidTypes = [\"ActivityLog\"];\r\n $scope.assetValues = {\r\n points: null,\r\n hours: null,\r\n minutes: null\r\n };\r\n\r\n $scope.points = {\r\n value: null,\r\n placeholder: $scope.multiLanguageService.getString(\"sidebar.activity_logs.placeholders.add_points\"),\r\n ariaLabel: $scope.multiLanguageService.getString(\"sidebar.activity_logs.placeholders.add_points\"),\r\n min: 0,\r\n cancelAriaLabel: $scope.multiLanguageService.getString(\"sidebar.activity_logs.aria_labels.clear_points\"),\r\n focus: false,\r\n type: \"points\"\r\n };\r\n $scope.time = {\r\n hours: {\r\n value: null,\r\n placeholder: $scope.multiLanguageService.getString(\"sidebar.activity_logs.placeholders.add_hours\"),\r\n ariaLabel: $scope.multiLanguageService.getString(\"sidebar.activity_logs.placeholders.add_hours\"),\r\n min: 0,\r\n cancelAriaLabel: $scope.multiLanguageService.getString(\"sidebar.activity_logs.aria_labels.clear_hours\"),\r\n focus: false,\r\n type: \"hours\"\r\n },\r\n minutes: {\r\n value: null,\r\n placeholder: $scope.multiLanguageService.getString(\"sidebar.activity_logs.placeholders.add_minutes\"),\r\n ariaLabel: $scope.multiLanguageService.getString(\"sidebar.activity_logs.placeholders.add_minutes\"),\r\n min: 0,\r\n cancelAriaLabel: $scope.multiLanguageService.getString(\"sidebar.activity_logs.aria_labels.clear_minutes\"),\r\n focus: false,\r\n type: \"minutes\"\r\n }\r\n };\r\n\r\n $scope.viewData = {\r\n validType: false,\r\n type: \"\",\r\n editMode: false,\r\n autoCalculatePoints: false,\r\n autoCalculateMinutes: false,\r\n autoCalculateLabel: multiLanguageService.getString(\"sidebar.activity_logs.auto_calculated\"),\r\n hasPoints: false,\r\n hasTime: false,\r\n pointsLabel: \"\",\r\n hoursLabel: \"\",\r\n minutesLabel: \"\",\r\n images: {\r\n hours: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"collections/images/hours.svg\"),\r\n points: $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"collections/images/points.svg\")\r\n }\r\n };\r\n $scope.activityAnnouncerMessage = \"\";\r\n $scope.viewModeOnly = true;\r\n if ($scope.assetId && $scope.disableEdit === false) {\r\n $http.defaults.withCredentials = true;\r\n $http.get(baseUrlsFactory.api_base_url + \"Locking/IsLockedByAnother?assetId=\" + $scope.assetId).then(function (response) {\r\n $scope.viewModeOnly = response.data;\r\n });\r\n\r\n if ($scope.type === \"FormResponse\") {\r\n $http\r\n .get(baseUrlsFactory.api_base_url + \"AssetDto/GetSignatureInformation?assetId=\" + $scope.assetId)\r\n .then((response) => {\r\n const signatureInformation = response.data;\r\n $scope.shouldDisplayWarning = signatureInformation.some((signature) => signature.IsSigned);\r\n const containsSignedWarning = signatureInformation.some((signature) => signature.InvalidationLevel === \"warnWhenEdited\" && signature.IsSigned);\r\n const containsSignedBlank = signatureInformation.some((signature) => signature.InvalidationLevel === \"blankWhenEdited\" && signature.IsSigned);\r\n\r\n if (!containsSignedWarning && containsSignedBlank) {\r\n $scope.hoursAndPointsWarning = $scope.multiLanguageService.getString(\"labels.signatures.hours_and_points_blank_warning\");\r\n } else {\r\n $scope.hoursAndPointsWarning = $scope.multiLanguageService.getString(\"labels.signatures.hours_and_points_generic_warning\");\r\n }\r\n })\r\n .catch(() => {\r\n $scope.shouldDisplayWarning = false;\r\n });\r\n }\r\n }\r\n\r\n //Functions --------------------------------------------------------------------------------------------\r\n $scope.setDataFromAssetOptions = function () {\r\n const hours = $scope.assetOptions.where({ Key: \"CpdTimeInMins\" })[0];\r\n const points = $scope.assetOptions.where({ Key: \"CpdPoints\" })[0];\r\n\r\n const autoCalculatePoints = $scope.assetOptions.where({ Key: \"AutoCalculatePoints\" })[0];\r\n const autoCalculateMinutes = $scope.assetOptions.where({ Key: \"AutoCalculateMinutes\" })[0];\r\n $scope.viewData.autoCalculatePoints = autoCalculatePoints !== undefined && autoCalculatePoints.Value === \"true\";\r\n $scope.viewData.autoCalculateMinutes = autoCalculateMinutes !== undefined && autoCalculateMinutes.Value === \"true\";\r\n\r\n if (points && points.Value) {\r\n const number = parseFloat(points.Value);\r\n $scope.points.value = number ? number : null;\r\n $scope.viewData.hasPoints = true;\r\n }\r\n\r\n if (hours && hours.Value) {\r\n $scope.updateTimeValues(hours.Value);\r\n $scope.viewData.hasTime = true;\r\n }\r\n\r\n $scope.assetValues.hours = $scope.time.hours.value;\r\n $scope.assetValues.minutes = $scope.time.minutes.value;\r\n $scope.assetValues.points = $scope.points.value;\r\n $scope.updateMultiLangStrings();\r\n };\r\n\r\n $scope.updateMultiLangStrings = function () {\r\n $scope.viewData.hoursLabel = multiLanguageService.getString(\"sidebar.activity_logs.n_logged_hours\", { count: $scope.assetValues.hours || 0 });\r\n $scope.viewData.minutesLabel = multiLanguageService.getString(\"sidebar.activity_logs.n_logged_minutes\", { count: $scope.assetValues.minutes || 0 });\r\n $scope.viewData.pointsLabel = multiLanguageService.getString(\"sidebar.activity_logs.n_logged_points\", { count: $scope.assetValues.points || 0 });\r\n };\r\n\r\n $scope.saveValues = function () {\r\n $http.post(baseUrlsFactory.api_base_url + \"Asset/UpdateHoursAndPoints\", {\r\n AssetId: $scope.assetId,\r\n Hours: $scope.time.hours.value,\r\n Minutes: $scope.time.minutes.value,\r\n Points: $scope.points.value\r\n });\r\n };\r\n\r\n $scope.updateTimeValues = function (timeValue) {\r\n const timeObj = helpers.formatTime(timeValue),\r\n minutes = timeObj.minutes << 0;\r\n\r\n if (timeObj.hours || timeObj.minutes) {\r\n $scope.time.hours.value = timeObj.hours;\r\n $scope.time.minutes.value = minutes;\r\n } else {\r\n $scope.time.hours.value = null;\r\n $scope.time.minutes.value = null;\r\n }\r\n };\r\n\r\n /**\r\n * Change the editMode value and initialise fields\r\n * @param {Boolean} value\r\n * @param {Number} [numberPickerModel]\r\n */\r\n $scope.updateEditMode = function (value, numberPickerModel) {\r\n $scope.viewData.editMode = value;\r\n $scope.time.hours.focus = false;\r\n $scope.time.minutes.focus = false;\r\n $scope.points.focus = false;\r\n $scope.activityAnnouncerMessage = \"\";\r\n\r\n if (value === true) {\r\n $scope.time.hours.value = $scope.assetValues.hours;\r\n $scope.time.minutes.value = $scope.assetValues.minutes;\r\n $scope.points.value = $scope.assetValues.points;\r\n $scope.updateMultiLangStrings();\r\n if (numberPickerModel) {\r\n numberPickerModel.focus = true;\r\n }\r\n } else {\r\n $scope.activityAnnouncerMessage = $scope.multiLanguageService.getString(\"sidebar.activity_logs.hours_points_saved\");\r\n }\r\n };\r\n\r\n $scope.submitKeypress = function (event) {\r\n if (event.keyCode === 13) {\r\n $scope.onConfirm();\r\n }\r\n event.stopImmediatePropagation();\r\n };\r\n $scope.onConfirm = function () {\r\n //Update stored values\r\n $scope.updateTimeValues($scope.time.hours.value * 60 + $scope.time.minutes.value);\r\n $scope.assetValues.hours = $scope.time.hours.value;\r\n $scope.assetValues.minutes = $scope.time.minutes.value;\r\n $scope.assetValues.points = $scope.points.value;\r\n $scope.updateMultiLangStrings();\r\n\r\n //Update view information\r\n $scope.setViewData();\r\n $scope.saveValues();\r\n\r\n $scope.$emit(\"infoPanelLocalDataUpdate\", \"CpdTimeInMins\", $scope.time.hours.value * 60 + $scope.time.minutes.value);\r\n $scope.$emit(\"infoPanelLocalDataUpdate\", \"CpdPoints\", $scope.points.value);\r\n $scope.updateEditMode(!$scope.viewData.editMode);\r\n };\r\n\r\n $scope.setViewData = function () {\r\n $scope.viewData.hasTime = $scope.assetValues.hours !== null || $scope.assetValues.minutes !== null;\r\n $scope.viewData.hasPoints = $scope.assetValues.points > 0 || $scope.assetValues.points !== null;\r\n };\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n if (scope.invalidTypes.indexOf(scope.type) === -1) {\r\n scope.viewData.validType = true;\r\n scope.setDataFromAssetOptions();\r\n scope.setViewData();\r\n }\r\n scope.viewData.type = helperService.friendlyMainType(scope.type);\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

{{::multiLanguageService.getString('sidebar.activity_logs.title')}}

\"\"

{{::multiLanguageService.getString('sidebar.activity_logs.hours')}}

{{viewData.hoursLabel}} {{viewData.minutesLabel}} {{::viewData.autoCalculateLabel}}
\"\"

{{::multiLanguageService.getString('sidebar.activity_logs.points')}}

{{viewData.pointsLabel}} {{::viewData.autoCalculateLabel}}

{{::multiLanguageService.getString('sidebar.activity_logs.title')}}

{{::multiLanguageService.getString('sidebar.activity_logs.invalid_type')}} {{viewData.type}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../assetViews/sidebar/shares/shares\";\r\nimport \"../../../assetViews/sidebar/submissions/submissions\";\r\nimport \"../../../tagger/tagger\";\r\nimport \"../assetBaseInfo/assetBaseInfo\";\r\nimport \"../../../profileImage/profileImg\";\r\nimport \"../institutionInfo/institutionInfo\";\r\nimport \"./assetBaseInfoService\";\r\nimport \"../reportInappropriate/directives/reportInappropriate\";\r\nimport \"../../../activityLogs/directives/activityLogInfo\";\r\nimport \"../../../utilities/pebbleDate\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../assetViews/sidebar/shares/deletableShare.service\";\r\nimport \"../../../statusToolbar/services/statusToolbar.service\";\r\nimport \"../../../statusToolbar/factories/statusToolbar.factory\";\r\nimport \"../../../dynamicStatusServiceLoader/dynamicStatusServiceLoader.service\";\r\nimport \"../../../featureSettings/FeatureSettings\";\r\nimport template from \"./templates/asset-info.html\";\r\n\r\nangularAMD.directive(\"assetInfo\", [\r\n \"$sce\",\r\n \"$rootScope\",\r\n \"$compile\",\r\n \"$http\",\r\n \"$timeout\",\r\n \"$location\",\r\n \"$routeParams\",\r\n \"$filter\",\r\n \"baseUrlsFactory\",\r\n \"assetBaseInfoService\",\r\n \"multiLanguageService\",\r\n \"DeletableShareService\",\r\n \"StatusToolbar\",\r\n \"StatusToolbarFactory\",\r\n \"DynamicStatusServiceLoader\",\r\n \"featureSettings\",\r\n function (\r\n $sce,\r\n $rootScope,\r\n $compile,\r\n $http,\r\n $timeout,\r\n $location,\r\n $routeParams,\r\n $filter,\r\n baseUrlsFactory,\r\n assetBaseInfoService,\r\n multiLanguageService,\r\n DeletableShareService,\r\n statusToolbar,\r\n statusToolbarFactory,\r\n DynamicStatusServiceLoader,\r\n featureSettings\r\n ) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n $scope.assetInfoLoading = $rootScope.multiLanguageService.getString(\"sidebar.asset_info_loading\");\r\n $scope.toolbarHandler = statusToolbarFactory.createHandler($timeout, 3);\r\n\r\n DynamicStatusServiceLoader.getAssetLockedService().then((assetLockedStatusService) => {\r\n const preexistingLockStatusBar = assetLockedStatusService.createStatus(false, \"\");\r\n $scope.toolbarHandler.addStatus(preexistingLockStatusBar, true);\r\n });\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n var assetPromise;\r\n scope.nonDeletableShares = {};\r\n scope.collaboratorIds = [];\r\n\r\n scope.scrollToSection = function () {\r\n $timeout(function () {\r\n var jumpTo_el = element[0].getElementsByClassName(scope.jumpTo.class)[0];\r\n if (jumpTo_el) {\r\n scope.jumpTo.scroll_el.scrollTop = jumpTo_el.offsetTop;\r\n }\r\n });\r\n };\r\n\r\n scope.focusElement = function () {\r\n $timeout(function () {\r\n var focus_el = element[0].getElementsByClassName(scope.elementToFocus.class)[0];\r\n if (focus_el) {\r\n focus_el.focus();\r\n }\r\n });\r\n };\r\n\r\n scope.cacheElems = function () {\r\n scope.tooltip_boundary_el = angular.element(element[0].getElementsByClassName(\"asset-info-wrapper\")[0]);\r\n };\r\n\r\n scope.init = function () {\r\n scope.cacheElems();\r\n scope.tooltip = multiLanguageService.getString(\"tips.tags.adding_tags.content\");\r\n\r\n const multilangKey = scope.baseInfo.IsFavourite && featureSettings.isEnabled(\"Favourites\") ? \"sidebar.favourite_asset_info_announcement\" : \"sidebar.asset_info_announcement\";\r\n\r\n scope.screenReaderAnnouncement = multiLanguageService.getString(multilangKey, {\r\n asset_name: scope.baseInfo.Title,\r\n created_date: $filter(\"pebbleDate\")(scope.baseInfo.CreatedOn, \"withDay\"),\r\n modified_date: $filter(\"pebbleDate\")(scope.baseInfo.ModifiedOn, \"withDay\"),\r\n created_time: $filter(\"pebbleDate\")(scope.baseInfo.CreatedOn, \"timeOnly\"),\r\n modified_time: $filter(\"pebbleDate\")(scope.baseInfo.ModifiedOn, \"timeOnly\")\r\n });\r\n\r\n if (scope.jumpTo) {\r\n $timeout(scope.scrollToSection);\r\n }\r\n\r\n if (scope.elementToFocus) {\r\n $timeout(scope.focusElement);\r\n }\r\n };\r\n\r\n if ($routeParams.assetId === scope.asset.Id) {\r\n scope.showPreview = false;\r\n }\r\n\r\n assetBaseInfoService.getBaseInfo(scope.asset.Id).then(function (response) {\r\n scope.collaboratorIds = response.data.Collaborators.map(function (c) {\r\n return c.Id;\r\n });\r\n DeletableShareService.getNonDeletableShareIds(scope.asset.Shares, response.data.Collaborators).map(function (id) {\r\n scope.nonDeletableShares[id] = true;\r\n });\r\n scope.viewerActions = $rootScope.viewerActions;\r\n scope.baseInfo = response.data;\r\n\r\n if (scope.viewerActions && !scope.viewerActions.edit) {\r\n scope.baseInfo.CurrentUserCanEdit = false;\r\n scope.baseInfo.CurrentUserCanChangeTitle = false;\r\n }\r\n\r\n scope.init();\r\n scope.$emit(\"infoPanelContentLoaded\", true, !scope.jumpTo);\r\n });\r\n\r\n scope.$on(\"infoPanelLocalDataUpdate\", function (evt, key, val) {\r\n var opts = scope.asset.AssetOptions.where({ Key: key })[0];\r\n if (opts !== undefined) {\r\n opts.Value = val;\r\n } else {\r\n scope.asset.AssetOptions.push({ Key: key, Value: val });\r\n }\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
-1\">
-1\">
-1\"> \"{{::multiLanguageService.getString('file.displaying')}}{{asset.Title}}\"

{{::multiLanguageService.getString('sidebar.tags.header')}}

0\">
0\">
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { MAP_TO_STANDARDS_CONSTANTS } from \"../../../constants/mapToStandards.constants\";\r\nimport \"../../../assetEndpointService/assetEndpoint.service\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../utilities/helpers\";\r\n\r\nexport class SidebarMappingService {\r\n constructor($http, AssetEndpointService, multiLanguageService, helpers) {\r\n this.$http = $http;\r\n this.assetEndpointService = AssetEndpointService;\r\n this.multiLanguageService = multiLanguageService;\r\n this._helpers = helpers;\r\n }\r\n\r\n getMappingInfo(assetId, submissionId, timeslice) {\r\n this.$http.defaults.withCredentials = true;\r\n return this.assetEndpointService.getMappingDetails(assetId, submissionId, timeslice).then((response) => {\r\n let standardsResponse = {\r\n canApprove: response.data.CanApprove,\r\n standards: [],\r\n status: response.data.Status,\r\n submissions: []\r\n };\r\n\r\n if (response.data.Submissions !== undefined && response.data.Submissions !== null) {\r\n standardsResponse.submissions = response.data.Submissions.map((submission) => {\r\n return {\r\n LinkToSubmission: submission.LinkToSubmission,\r\n LocationName: submission.WorkspaceName,\r\n SubLocationName: submission.AssignmentName\r\n };\r\n });\r\n }\r\n\r\n const mappings = response.data.Standards !== undefined ? response.data.Standards : response.data.Mappings;\r\n\r\n if (mappings !== null) {\r\n for (let i = 0; i < mappings.length; i++) {\r\n const standard = mappings[i];\r\n const element = this._getElement(standard);\r\n\r\n if (element !== null) {\r\n standardsResponse.standards.push({\r\n Breadcrumb: this._getBreadcrumb(standard),\r\n FormElementId: standard.StandardResponse !== undefined ? standard.StandardResponse.FormElementId : null,\r\n Id: i,\r\n Info: element.ElementInfo,\r\n Justification: standard.Justification,\r\n Max: 100,\r\n Min: 0,\r\n ProgressColour: MAP_TO_STANDARDS_CONSTANTS.RATING_SLIDER.DEFAULT_VALUES.PROGRESS_COLOUR,\r\n Rating: standard.StandardResponse !== undefined ? standard.StandardResponse.Rating : null,\r\n RatingStepSize: element.RatingStepSize,\r\n RatingType: element.RatingType,\r\n Recalled: standard.Recalled,\r\n Reflection: standard.Reflection,\r\n Released: standard.Released,\r\n ShowReflection: this._showReflection(standard, i, mappings),\r\n Status: standard.Status,\r\n ThumbHeight: 0,\r\n ThumbWidth: 0,\r\n Ticks: this._getTicks(element),\r\n Title: this._helpers.htmlToPlain(element.Label)\r\n });\r\n }\r\n }\r\n }\r\n\r\n return standardsResponse;\r\n });\r\n }\r\n\r\n returnSidebarMessage(standards, userCanViewMappings, isMappable) {\r\n if (!userCanViewMappings) {\r\n return this.multiLanguageService.getString(\"asset_summary.mapping.no_permission_to_view\");\r\n } else if (isMappable) {\r\n return this.multiLanguageService.getString(\"asset_summary.mapping.cannot_map\");\r\n } else if (standards === null) {\r\n return this.multiLanguageService.getString(\"asset_summary.mapping.unable_to_load\");\r\n } else if (standards.length === 0) {\r\n return this.multiLanguageService.getString(\"asset_summary.mapping.no_mapping\");\r\n }\r\n }\r\n\r\n _getBreadcrumb(standard) {\r\n let crumbs = \"\";\r\n standard.Breadcrumb.forEach((crumb) => {\r\n if (crumb.Type !== MAP_TO_STANDARDS_CONSTANTS.BREADCRUMB.TYPES.STANDARD && crumb.Type !== MAP_TO_STANDARDS_CONSTANTS.BREADCRUMB.TYPES.MAPPING) {\r\n crumbs = crumbs === \"\" ? crumb.Name : `${crumbs} > ${crumb.Name}`;\r\n }\r\n });\r\n return crumbs;\r\n }\r\n\r\n _getTicks(element) {\r\n if (element.RatingLabels === undefined || element.RatingLabels === null || element.RatingLabels.length === 0) {\r\n return [];\r\n }\r\n return element.RatingLabels.map((label) => {\r\n return {\r\n tooltip: label.Label,\r\n label: label.ShortLabel,\r\n placement: label.Position\r\n };\r\n });\r\n }\r\n\r\n _getElement(standard) {\r\n return standard.Breadcrumb.length > 0 ? standard.Breadcrumb[standard.Breadcrumb.length - 1].Element : null;\r\n }\r\n\r\n _showReflection(standard, position, list) {\r\n if (standard.Reflection === \"\") {\r\n return false;\r\n }\r\n\r\n if (position < list.length - 1) {\r\n const nextStandard = list[position + 1];\r\n if (standard.Reflection === nextStandard.Reflection) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\nSidebarMappingService.$inject = [\"$http\", \"AssetEndpointService\", \"multiLanguageService\", \"helpers\"];\r\nangularAMD.service(\"sidebarMappingService\", SidebarMappingService);\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { MAP_TO_STANDARDS_CONSTANTS } from \"../../../constants/mapToStandards.constants\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport \"../../../mapToStandards/mapToStandardsWrapper/standardsRatingSlider/standardsRatingSlider.component\";\r\nimport \"../../../mapToStandards/mapToStandardsWrapper/standardsRatingInfo/standardsRatingInfo.component\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../userStatusPermissionsService/userStatusPermissions.service\";\r\nimport \"../../../feedback/feedbackComponents/approvalStatus/approvalStatus.component\";\r\nimport \"../../../react2angular/richTextView\";\r\nimport template from \"./templates/sidebar-mapping.html\";\r\n\r\nclass SidebarMappingComponent extends NgComponent {\r\n constructor($scope, multiLanguageService, standardsOverviewService, userStatusPermissions) {\r\n super();\r\n\r\n this._$scope = $scope;\r\n this.MAP_TO_STANDARDS_CONSTANTS = MAP_TO_STANDARDS_CONSTANTS;\r\n this.multiLanguageService = multiLanguageService;\r\n this.standardsOverviewService = standardsOverviewService;\r\n this.userStatusPermissions = userStatusPermissions;\r\n this.hasStandards = this.standards !== null && this.standards.length > 0;\r\n this.thumbDimensions = {\r\n thumbHeight: MAP_TO_STANDARDS_CONSTANTS.RATING_SLIDER.DEFAULT_VALUES.THUMB_HEIGHT,\r\n thumbWidth: MAP_TO_STANDARDS_CONSTANTS.RATING_SLIDER.DEFAULT_VALUES.THUMB_WIDTH\r\n };\r\n }\r\n\r\n $onInit() {\r\n this._setStatus();\r\n\r\n this.userStatusPermissions\r\n .canSelfAssess(this.assetId)\r\n .then((response) => {\r\n this.canShowRating = response;\r\n })\r\n .catch(() => {\r\n this.canShowRating = false;\r\n });\r\n\r\n this.userStatusPermissions\r\n .canApprove(this.assetId)\r\n .then((response) => {\r\n this.canApprove = response;\r\n })\r\n .catch(() => {\r\n this.canApprove = false;\r\n });\r\n\r\n this.workspaceSharingInfoProps = {\r\n header: this.multiLanguageService.getString(\"sidebar.submissions.mapping_sharing_info.header\"),\r\n content: this.multiLanguageService.getString(\"sidebar.submissions.mapping_sharing_info.content\"),\r\n isOpen: false,\r\n onToggle: () => {\r\n this.workspaceSharingInfoProps.isOpen = !this.workspaceSharingInfoProps.isOpen;\r\n this._$scope.$applyAsync();\r\n }\r\n };\r\n }\r\n\r\n $onChanges() {\r\n this._setStatus();\r\n }\r\n\r\n _setStatus() {\r\n if (this.standards !== null && this.standards[0] !== undefined) {\r\n this.status = this.standardsOverviewService.getStatusInfo(this.standards[0].Status, this.standards[0].Recalled, this.standards[0].Released);\r\n }\r\n }\r\n\r\n _goToSubmissionLink(link) {\r\n tracker.trackEvent(\"EWC Mapping Approval\", \"Click\", \"Go to assessor view\");\r\n window.open(link, \"_blank\");\r\n }\r\n}\r\n\r\nexport const sidebarMapping = {\r\n bindings: {\r\n sidebarMessage: \"@\",\r\n submissionInfo: \"<\",\r\n standards: \"<\",\r\n assetId: \"<\"\r\n },\r\n template: template,\r\n controller: SidebarMappingComponent\r\n};\r\n\r\nSidebarMappingComponent.$inject = [\"$scope\", \"multiLanguageService\", \"standardsOverviewService\", \"userStatusPermissions\"];\r\nangularAMD.component(\"sidebarMapping\", sidebarMapping);\r\n","export default `

0\">{{::$ctrl.multiLanguageService.getString('sidebar.submissions.header')}}

{{::$ctrl.multiLanguageService.getString('asset_summary.mapping.details_title')}}

{{::$ctrl.sidebarMessage}}
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../../react2angular/richTextView\";\r\nimport \"../../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../../utilities/helpers\";\r\nimport template from \"./capability-mapping.html\";\r\n\r\nclass CapabilityMappingComponent extends NgComponent {\r\n constructor(multiLanguageService, helpers) {\r\n super();\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n this._helpers = helpers;\r\n this.hasCapabilities = this.capabilities !== null && this.capabilities.length > 0;\r\n\r\n if (!this.mappingAllowed) {\r\n this.header = multiLanguageService.getString(\"asset_summary.mapping.cannot_map_title\");\r\n } else {\r\n this.header = this.hasCapabilities ? multiLanguageService.getString(\"asset_summary.mapping.details_title\") : this.errorMessage;\r\n }\r\n }\r\n}\r\n\r\nexport const capabilityMapping = {\r\n bindings: {\r\n errorMessage: \"@\",\r\n capabilities: \"<\",\r\n mappingAllowed: \"<\"\r\n },\r\n template: template,\r\n controller: CapabilityMappingComponent\r\n};\r\n\r\nCapabilityMappingComponent.$inject = [\"multiLanguageService\", \"helpers\"];\r\nangularAMD.component(\"capabilityMapping\", capabilityMapping);\r\n","export default `

{{::$ctrl.header}}

  • {{ ::capability.Title }}
    {{ ::capability.Breadcrumb }}
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { MAP_TO_STANDARDS_CONSTANTS } from \"../../../constants/mapToStandards.constants\";\r\nimport { ASSET_CONSTANTS } from \"../../../constants/asset.constants\";\r\nimport template from \"./templates/sidebar-mapping-wrapper.html\";\r\nimport \"../../../formComponents/StandardsElement/standardsInformation.service\";\r\nimport \"../../../messageAnnouncer/messageAnnouncer.directive\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../user/user.service\";\r\nimport \"../../../userStatusPermissionsService/userStatusPermissions.service\";\r\nimport \"./sidebarMapping.service\";\r\nimport \"./sidebarMapping\";\r\nimport \"./capabilityMapping/capabilityMapping.component\";\r\n\r\nclass SidebarMappingWrapperComponent extends NgComponent {\r\n constructor($routeParams, $location, sidebarMappingService, standardsInformation, urlService, multiLanguageService, User, userStatusPermissions) {\r\n super();\r\n\r\n this.$location = $location;\r\n this._userStatusPermissions = userStatusPermissions;\r\n this.sidebarMappingService = sidebarMappingService;\r\n this.standardsInformation = standardsInformation;\r\n this.multiLanguageService = multiLanguageService;\r\n this.urlService = urlService;\r\n this.announcerMessage = \"\";\r\n this.submissionId = $routeParams.submissionId;\r\n this.sidebarMessage = \"\";\r\n this.standards = null;\r\n this.submissionInfo = null;\r\n this.loaded = false;\r\n this.allowMappingBtn = false;\r\n this.mappingBtn = \"\";\r\n this.mmlEnabled = User.getDto().EnableMapMyLearning;\r\n this.mappingAllowed = true;\r\n }\r\n\r\n $onInit() {\r\n if (!this.userCanViewMappings) {\r\n this.sidebarMessage = this.sidebarMappingService.returnSidebarMessage(this.standards, this.userCanViewMappings, false);\r\n this.announcerMessage = this.sidebarMessage;\r\n this.loaded = true;\r\n return;\r\n }\r\n\r\n this.announcerMessage = this.multiLanguageService.getString(\"asset_summary.mapping.loading\");\r\n this.sidebarMappingService\r\n .getMappingInfo(this.assetId, this.submissionId)\r\n .then((response) => {\r\n if (this.mmlEnabled) {\r\n if (response.status === ASSET_CONSTANTS.PERMISSIONS.NOPERMISSION) {\r\n this.standards = [];\r\n this.sidebarMessage = this.sidebarMappingService.returnSidebarMessage(this.standards, false, false);\r\n this.mappingAllowed = false;\r\n return false;\r\n }\r\n\r\n if (response.status === ASSET_CONSTANTS.ASSET_OPTIONS.IS_MAPPABLE) {\r\n this.standards = [];\r\n this.sidebarMessage = this.sidebarMappingService.returnSidebarMessage(this.standards, this.userCanViewMappings, true);\r\n this.mappingAllowed = false;\r\n return false;\r\n }\r\n\r\n this.standards = response.standards;\r\n return true;\r\n }\r\n\r\n this.submissionInfo = response.submissions;\r\n this.standards = response.standards;\r\n return this._userStatusPermissions.canMap(this.assetId);\r\n })\r\n .then((userCanMap) => {\r\n const mappingApproved = this.standards[0] !== undefined ? this.standards[0].Status === MAP_TO_STANDARDS_CONSTANTS.STATUS.APPROVED : false;\r\n this.allowMappingBtn = !mappingApproved && userCanMap;\r\n\r\n this.mappingBtn =\r\n this.standards.length > 0 ? this.multiLanguageService.getString(\"asset_summary.mapping.edit_mapping\") : this.multiLanguageService.getString(\"asset_summary.mapping.create_mapping\");\r\n })\r\n .catch(() => {\r\n this.sidebarMessage = this.sidebarMappingService.returnSidebarMessage(this.standards, this.userCanViewMappings, false);\r\n })\r\n .finally(() => {\r\n if (this.sidebarMessage === \"\") {\r\n this.sidebarMessage = this.sidebarMappingService.returnSidebarMessage(this.standards, this.userCanViewMappings, false);\r\n }\r\n\r\n this.announcerMessage =\r\n this.standards !== null && this.standards.length > 0\r\n ? this.multiLanguageService.getString(\"asset_summary.mapping.a11y.total\", { count: this.standards.length })\r\n : this.sidebarMessage;\r\n\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n openStandardsSidePanel() {\r\n this.standardsInformation.setStandardsData([], \"\", [], this.assetId, \"\", \"\", false, false);\r\n this.standardsInformation.setNavigationalUrl(this.assetId, this.$location.url());\r\n const mappingUrl = this.urlService.configureMappingUrl(this.assetId);\r\n this.$location.url(mappingUrl);\r\n }\r\n}\r\n\r\nexport const sidebarMappingWrapper = {\r\n bindings: {\r\n assetId: \"@\",\r\n userCanViewMappings: \"<\"\r\n },\r\n template: template,\r\n controller: SidebarMappingWrapperComponent\r\n};\r\n\r\nSidebarMappingWrapperComponent.$inject = [\"$routeParams\", \"$location\", \"sidebarMappingService\", \"standardsInformation\", \"urlService\", \"multiLanguageService\", \"User\", \"userStatusPermissions\"];\r\nangularAMD.component(\"sidebarMappingWrapper\", sidebarMappingWrapper);\r\n","export default `

{{::$ctrl.sidebarMessage}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/urlService\";\r\nimport template from \"./templates/navigation-list.html\";\r\n\r\nangularAMD.directive(\"navigationList\", [\r\n \"$routeParams\",\r\n \"$location\",\r\n \"multiLanguageService\",\r\n \"urlService\",\r\n function ($routeParams, $location, multiLanguageService, urlService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n list: \"=?\",\r\n assetId: \"=?\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.presetData = function () {\r\n $scope.parentType = [\"WorkBook\", \"WorkBookResponse\"];\r\n $scope.multiLanguageService = multiLanguageService;\r\n $scope.assetId = $scope.assetId || $routeParams.assetId;\r\n };\r\n\r\n $scope.bindEvents = function () {\r\n $scope.$watch(\"list\", function () {\r\n $scope.updateProcessedDataList();\r\n });\r\n };\r\n\r\n $scope.removeAllItemsWithChildren = function (dataList, propName, propValue, expandChildren) {\r\n const pagesArr = [];\r\n const length = dataList.Children.length;\r\n\r\n if (length > 0) {\r\n for (let i = 0; i < length; i++) {\r\n if (propValue.indexOf(dataList.Children[i][propName]) === -1) {\r\n dataList.Children[i][\"isChild\"] = true;\r\n pagesArr.push(dataList.Children[i]);\r\n }\r\n }\r\n }\r\n\r\n dataList.Children = pagesArr;\r\n\r\n if (expandChildren) {\r\n pagesArr.unshift(dataList);\r\n return pagesArr;\r\n }\r\n\r\n return [dataList];\r\n };\r\n\r\n /**\r\n * Gets navigation array and returns array ready for rendering in page release or page tracking.\r\n * @param dataList\r\n * @param opts\r\n * @param opts.propName\r\n * @param opts.propValue\r\n * @param opts.initialLevel\r\n * @param opts.expandChildren If true, then array will contain all children on the same level with it's parent.\r\n * @returns {Array}\r\n */\r\n $scope.getProcessedDataList = function (dataList, opts) {\r\n opts = opts || {};\r\n const propName = opts.propName;\r\n const propValue = opts.propValue;\r\n const expandChildren = opts.expandChildren;\r\n const initialLevel = opts.initialLevel ?? false;\r\n const list = [];\r\n\r\n for (let i = 0, len = dataList.length; i < len; i++) {\r\n let arrayItem = dataList[i];\r\n\r\n if (propValue.indexOf(arrayItem[propName]) > -1) {\r\n const cachedArrayItem = angular.copy(arrayItem);\r\n arrayItem = $scope.removeAllItemsWithChildren(arrayItem, propName, propValue, expandChildren);\r\n Array.prototype.push.apply(list, arrayItem);\r\n Array.prototype.push.apply(\r\n list,\r\n $scope.getProcessedDataList(cachedArrayItem.Children, {\r\n propName: propName,\r\n propValue: propValue,\r\n expandChildren: expandChildren\r\n })\r\n );\r\n } else {\r\n if (initialLevel) {\r\n list.push(arrayItem);\r\n }\r\n }\r\n }\r\n\r\n return list;\r\n };\r\n\r\n $scope.isParentType = function (type) {\r\n return $scope.parentType.indexOf(type) > -1;\r\n };\r\n\r\n $scope.getItemLink = function (item) {\r\n if (!item.ProgressTrackingMainType) {\r\n item.ProgressTrackingMainType = \"WorkBookResponse\";\r\n }\r\n\r\n const existingParams = $location.search();\r\n const newQueryString = new URLSearchParams(existingParams);\r\n\r\n let url;\r\n switch (item.ProgressTrackingMainType) {\r\n case \"AssetCollectionWrapper\":\r\n case \"FormResponse\":\r\n url = urlService.createBaseUrl(item.PageId, item.ProgressTrackingMainType, true, false, $routeParams.timeslice, $routeParams.submissionId);\r\n break;\r\n default:\r\n url = urlService.createBaseUrl(\r\n $scope.assetId,\r\n item.ProgressTrackingMainType,\r\n $routeParams.submissionId !== undefined,\r\n false,\r\n $routeParams.timeslice,\r\n $routeParams.submissionId\r\n );\r\n\r\n newQueryString.set(\"pageId\", item.PageId);\r\n break;\r\n }\r\n\r\n url = `#${url}?${newQueryString.toString()}`;\r\n\r\n return url || \"#/\";\r\n };\r\n\r\n $scope.updateProcessedDataList = function (dataList) {\r\n dataList = angular.copy(dataList || $scope.list || []);\r\n $scope.processedList = $scope.getProcessedDataList(dataList, {\r\n propName: \"PageType\",\r\n propValue: $scope.parentType,\r\n initialLevel: true,\r\n expandChildren: true\r\n });\r\n };\r\n\r\n $scope.init = function () {\r\n $scope.presetData();\r\n $element.addClass(\"navigation-list--link\");\r\n $scope.bindEvents();\r\n };\r\n\r\n $scope.init();\r\n }\r\n ]\r\n };\r\n }\r\n]);\r\n","export default `

{{::item.PageTitle}}

{{::item.PageTitle}}
{{::multiLanguageService.getString('labels.toolbar.progress_tracking_status.' + item.TrackingStatus)}} {{::item.Percentage}}%
{{item.LastModified | pebbleDate:'fullDateAndTime'}}
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../navigation/navigationList/navigationList\";\r\nimport \"./services/assetProgressTrackingService\";\r\nimport \"../../../react2angular/progressVisualisation\";\r\nimport template from \"./templates/asset-progress-tracking.html\";\r\n\r\nangularAMD.directive(\"assetProgressTracking\", [\r\n \"$sce\",\r\n \"$q\",\r\n \"$http\",\r\n \"$rootScope\",\r\n \"$routeParams\",\r\n \"$timeout\",\r\n \"baseUrlsFactory\",\r\n \"assetProgressTrackingService\",\r\n function ($sce, $q, $http, $rootScope, $routeParams, $timeout, baseUrlsFactory, assetProgressTrackingService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: true,\r\n\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.presetData = function () {\r\n $scope.loadInfo();\r\n $scope.filterDropdownOptions = $scope.getFilterDropdownOptions();\r\n $scope.setCurrentDropdownOption($scope.filterDropdownOptions[0], true);\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n $scope.assetId = $attrs.assetId;\r\n };\r\n\r\n $scope.cacheElems = function () {\r\n if ($scope.diagramSectionEl && $scope.diagramSectionEl[0]) {\r\n return;\r\n }\r\n $scope.diagramSectionEl = angular.element(document.getElementsByClassName(\"asset-progress-tracking__diagram-section\")[0]);\r\n };\r\n\r\n $scope.setDiagramVisibility = function (currentFilterDropdownOption) {\r\n $scope.cacheElems();\r\n\r\n if (currentFilterDropdownOption.value.value === \"all\" || (currentFilterDropdownOption.value.hide === true && currentFilterDropdownOption.value.value === \"NotTracked\")) {\r\n $scope.diagramSectionEl.removeClass(\"inactive\");\r\n } else {\r\n $scope.diagramSectionEl.addClass(\"inactive\");\r\n }\r\n };\r\n\r\n $scope.setCurrentDropdownOption = function (item, processData) {\r\n $scope.currentFilterDropdownOption = item;\r\n $scope.setDiagramVisibility($scope.currentFilterDropdownOption);\r\n if (processData === true) {\r\n return;\r\n }\r\n $scope.progressTrackingInfo = $scope.getProcessedTrackingData($scope.progressTrackingInfoOrig, $scope.currentFilterDropdownOption);\r\n };\r\n\r\n $scope.getFilterDropdownOptions = function () {\r\n return [\r\n {\r\n value: { hide: true, value: \"NotTracked\" },\r\n label: $rootScope.multiLanguageService.getString(\"labels.toolbar.progress_tracking_filter_options.hideNotTracked\")\r\n },\r\n {\r\n value: { hide: false, value: \"all\" },\r\n label: $rootScope.multiLanguageService.getString(\"labels.toolbar.progress_tracking_filter_options.all\")\r\n },\r\n {\r\n value: { hide: false, value: \"Completed\" },\r\n label: $rootScope.multiLanguageService.getString(\"labels.toolbar.progress_tracking_filter_options.completed\")\r\n },\r\n {\r\n value: { hide: false, value: \"InProgress\" },\r\n label: $rootScope.multiLanguageService.getString(\"labels.toolbar.progress_tracking_filter_options.inProgress\")\r\n },\r\n {\r\n value: { hide: false, value: \"NotStarted\" },\r\n label: $rootScope.multiLanguageService.getString(\"labels.toolbar.progress_tracking_filter_options.notStarted\")\r\n },\r\n {\r\n value: { hide: false, value: \"NotTracked\" },\r\n label: $rootScope.multiLanguageService.getString(\"labels.toolbar.progress_tracking_filter_options.notTracked\")\r\n }\r\n ];\r\n };\r\n\r\n $scope.onProgressDataSuccess = function (success) {\r\n $scope.progressTrackingInfoOrig = angular.copy($scope.getProcessedTrackingData(success));\r\n $scope.progressTrackingInfo = $scope.getProcessedTrackingData($scope.progressTrackingInfoOrig, $scope.currentFilterDropdownOption);\r\n };\r\n\r\n $scope.isParentType = function (type) {\r\n $scope.parentType = [\"WorkBook\", \"WorkBookResponse\"];\r\n return $scope.parentType.indexOf(type) > -1;\r\n };\r\n\r\n $scope.filterDataByStatus = function (data, filter) {\r\n var arr = [],\r\n item;\r\n\r\n if (filter.value.value === \"all\") {\r\n return data.Children;\r\n }\r\n\r\n for (var i = 0, len = data.Children.length; i < len; i++) {\r\n item = data.Children[i];\r\n\r\n if (item.Children && item.Children.length > 0) {\r\n item.Children = $scope.filterDataByStatus(item, filter);\r\n if (item.Children.length > 0) {\r\n if (item.Children.length === 1 && $scope.isParentType(item.Children[0].PageType)) {\r\n arr.push(item.Children[0]);\r\n } else {\r\n arr.push(item);\r\n }\r\n }\r\n } else if ((filter.value.hide === false && item.TrackingStatus === filter.value.value) || (filter.value.hide === true && item.TrackingStatus !== filter.value.value)) {\r\n arr.push(item);\r\n }\r\n }\r\n\r\n return arr;\r\n };\r\n\r\n $scope.getProcessedTrackingData = function (data, filterOptions) {\r\n data = angular.copy(data);\r\n if (filterOptions) {\r\n data.Children = $scope.filterDataByStatus(data, filterOptions);\r\n }\r\n\r\n return data;\r\n };\r\n\r\n $scope.getTrackingStatus = function (item) {\r\n // tslint:disable-next-line:triple-equals\r\n if (item.Completed == true) {\r\n return { status: \"Completed\", icon: \"completed\" };\r\n } else if (item.NotTracked === true) {\r\n return { status: \"NotTracked\", icon: \"not-tracked\" };\r\n } else if (item.Progress > 0) {\r\n return { status: \"InProgress\", icon: \"in-progress\" };\r\n } else if (item.Progress === 0) {\r\n return { status: \"NotStarted\", icon: \"not-started\" };\r\n }\r\n };\r\n\r\n $scope.temporaryDataNormalizer = function (data) {\r\n data = data.slice();\r\n\r\n var item;\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n item = data[i];\r\n if (i === 1) {\r\n data[i].Progress = 1;\r\n }\r\n\r\n for (var prop in item) {\r\n if (item.hasOwnProperty(prop)) {\r\n if (prop === \"Title\" || prop === \"Type\" || prop === \"Id\") {\r\n item[\"Page\" + prop] = item[prop];\r\n delete item[prop];\r\n }\r\n var trackingStatusInfo = $scope.getTrackingStatus(item);\r\n item[\"TrackingStatus\"] = trackingStatusInfo.status;\r\n item[\"TrackingIcon\"] = trackingStatusInfo.icon;\r\n item[\"PageIcon\"] = \"activitylog\";\r\n }\r\n }\r\n if (item.Children.length > 0) {\r\n item.Children = $scope.temporaryDataNormalizer(item.Children);\r\n }\r\n }\r\n\r\n return data;\r\n };\r\n\r\n $scope.onProgressDataFail = function (fail) {\r\n $element.addClass(\"progress-tracking-error-occurred\");\r\n\r\n if (fail && fail.data && typeof fail.data === \"string\") {\r\n $scope.errorMessage = fail.data;\r\n } else {\r\n $scope.errorMessage = $rootScope.multiLanguageService.getString(\"labels.toolbar.progress_tracking_errors.other\");\r\n }\r\n };\r\n\r\n $scope.loadInfo = function () {\r\n assetProgressTrackingService\r\n .getProgressData($scope.assetId || $routeParams.assetId, $routeParams.submissionId, $routeParams.timeslice)\r\n .then($scope.onProgressDataSuccess, $scope.onProgressDataFail)\r\n .finally($scope.onContentLoaded);\r\n };\r\n\r\n $scope.onContentLoaded = function () {\r\n $timeout(function () {\r\n $scope.$emit(\"infoPanelContentLoaded\", true, true);\r\n }, 80);\r\n };\r\n\r\n $scope.bindEvents = function () {\r\n $scope.$offRouteUpdate = $scope.$on(\"$routeUpdate\", function (event, location) {\r\n if (location.params.pageId) {\r\n $scope.$emit(\"spaMenuClosePanels\");\r\n }\r\n });\r\n\r\n $scope.$on(\"$scope -> $destroy\", function () {\r\n $scope.unbindEvents();\r\n });\r\n\r\n $element.on(\"$destroy\", function () {\r\n $scope.unbindEvents();\r\n });\r\n };\r\n\r\n $scope.unbindEvents = function () {\r\n $scope.$offRouteUpdate();\r\n };\r\n\r\n $scope.setup = function () {\r\n $scope.presetData();\r\n $scope.bindEvents();\r\n };\r\n\r\n $scope.progressDiagramOptions = {\r\n duration: 1200,\r\n lineWidth: 6,\r\n progressColour: \"#0566a9\",\r\n showPercentage: true,\r\n size: 180,\r\n strokeColour: \"#ddd\"\r\n };\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n scope.setup();\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
{{::errorMessage}}

{{::progressTrackingInfo.PageTitle}}

{{::multiLanguageService.getString('labels.toolbar.progress_tracking_no_item_displayed')}}

0\" asset-id=\"assetId\">
`;","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nScrollToItemDirective.$inject = [];\r\nfunction ScrollToItemDirective() {\r\n return {\r\n restrict: \"A\",\r\n scope: {\r\n options: \" {\r\n return this._searchTermFilters.some((comparator) => comparator(feedback, text));\r\n });\r\n }\r\n\r\n searchComment(searchText, comments) {\r\n const text = searchText.toLowerCase();\r\n\r\n return comments.filter((comment) => {\r\n return this._searchCommentTermFilters.some((comparator) => comparator(comment, text));\r\n });\r\n }\r\n\r\n _checkName(feedback, searchText) {\r\n return this._containsText(feedback.Poster.Name, searchText);\r\n }\r\n\r\n _checkComment(feedback, searchText) {\r\n return this._containsTextNoHtml(feedback.Comment, searchText);\r\n }\r\n\r\n _checkType(feedback, searchText) {\r\n return this._containsText(feedback.FeedbackType, searchText);\r\n }\r\n\r\n _checkStatus(feedback, searchText) {\r\n return (searchText === \"released\" && feedback.Released) || (searchText === \"unreleased\" && !feedback.Released);\r\n }\r\n\r\n _checkLeftOn(feedback, searchText) {\r\n const dateText = this._multiLanguageService.getString(\"sidebar.asset_feedback.labels.left_at\", {\r\n time: this._$filter(\"pebbleDate\")(feedback.Posted, \"timeOnly\"),\r\n date: this._$filter(\"pebbleDate\")(feedback.Posted)\r\n });\r\n\r\n let page = \"\";\r\n let origin = \"\";\r\n\r\n if (feedback.LeftOn === undefined) {\r\n page = ` ${this._feedbackHelper.getLeftOnString(feedback.AssetTitle)}`;\r\n } else {\r\n if (feedback.LeftOn.PageTitle !== null) {\r\n page = ` ${this._feedbackHelper.getLeftOnString(feedback.LeftOn.PageTitle)}`;\r\n }\r\n if (feedback.LeftOn.WorkspaceName !== null || feedback.LeftOn.AssignmentName !== null) {\r\n origin = ` ${this._feedbackHelper.getLeftOnOriginString(feedback.LeftOn.WorkspaceName, feedback.LeftOn.AssignmentName)}`;\r\n }\r\n }\r\n\r\n return this._containsText(`${dateText}${page}${origin}`, searchText);\r\n }\r\n\r\n _checkDate(feedback, searchText) {\r\n const monthList = this._multiLanguageService.getString(\"sidebar.asset_feedback.filtering.months\").split(\",\");\r\n return monthList[new Date(feedback.Posted).getMonth()].toLowerCase().includes(searchText);\r\n }\r\n\r\n _checkSimilarity(feedback, searchText) {\r\n if (feedback.FeedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.SIMILARITYSCORE) {\r\n const keys = [\r\n ASSESSMENT_CONSTANTS.FEEDBACK_PROPERTIES.SIMILARITYSCORE.INTERNETSIMILARITY,\r\n ASSESSMENT_CONSTANTS.FEEDBACK_PROPERTIES.SIMILARITYSCORE.PUBLICATIONSSIMILARITY,\r\n ASSESSMENT_CONSTANTS.FEEDBACK_PROPERTIES.SIMILARITYSCORE.DOCUMENTSSIMILARITY,\r\n ASSESSMENT_CONSTANTS.FEEDBACK_PROPERTIES.SIMILARITYSCORE.OVERALLSIMILARITY\r\n ];\r\n const foundText = keys.some((key) => this._containsText(feedback[key], searchText));\r\n\r\n if (foundText) {\r\n return true;\r\n }\r\n\r\n return this._containsText(this._multiLanguageService.getString(\"sidebar.asset_feedback.type_titles.similarity\"), searchText);\r\n }\r\n return false;\r\n }\r\n\r\n _checkCapability(feedback, searchText) {\r\n if (feedback.FeedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.CAPABILITY) {\r\n if (this._containsText(this._multiLanguageService.getString(\"atlas_sidebar.feedback_types.approval.capability_label\"), searchText)) {\r\n return true;\r\n }\r\n\r\n const statusText = feedback[ASSESSMENT_CONSTANTS.FEEDBACK_PROPERTIES.APPROVAL.STATUSTEXT];\r\n if (this._containsText(statusText, searchText)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n _checkApproval(feedback, searchText) {\r\n if (feedback.FeedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL) {\r\n const keys = [ASSESSMENT_CONSTANTS.FEEDBACK_PROPERTIES.APPROVAL.STATUSTEXT, ASSESSMENT_CONSTANTS.FEEDBACK_PROPERTIES.APPROVAL.LEVELTEXT];\r\n return keys.some((key) => this._containsText(feedback[key], searchText));\r\n }\r\n return false;\r\n }\r\n\r\n _checkGrade(feedback, searchText) {\r\n if (feedback.FeedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.GRADE) {\r\n const foundText = this._containsTextNoHtml(feedback.Grade, searchText);\r\n\r\n if (foundText) {\r\n return true;\r\n }\r\n\r\n return this._containsText(this._multiLanguageService.getString(\"atlas_sidebar.feedback_types.grade.graded\"), searchText);\r\n }\r\n return false;\r\n }\r\n\r\n _checkPageVerification(feedback, searchText) {\r\n if (feedback.FeedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.PAGEVERIFICATION) {\r\n return this._containsText(this._multiLanguageService.getString(\"sidebar.asset_feedback.labels.page_verified\"), searchText);\r\n }\r\n return false;\r\n }\r\n\r\n _checkAttachmentName(feedback, searchText) {\r\n if (feedback.Attachments.length > 0) {\r\n return feedback.Attachments.some((attachment) => this._containsTextNoHtml(attachment.Title, searchText));\r\n }\r\n return false;\r\n }\r\n\r\n _checkFeedbackTemplateName(feedback, searchText) {\r\n if (feedback.FeedbackTemplates.length > 0) {\r\n return feedback.FeedbackTemplates.some((feedbackTemplate) => this._containsText(feedbackTemplate.Title.replace(/ /gi, \" \"), searchText));\r\n }\r\n return false;\r\n }\r\n\r\n _checkScorecard(feedback, searchText) {\r\n if (feedback.FeedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.SCORECARD) {\r\n if (this._containsText(this._multiLanguageService.getString(\"sidebar.asset_feedback.labels.additional_grade\"), searchText)) {\r\n return true;\r\n }\r\n\r\n if (this._containsText(feedback.Grade, searchText)) {\r\n return true;\r\n }\r\n\r\n if (this._containsText(this._multiLanguageService.getString(\"sidebar.asset_feedback.labels.total_weighted_score\"), searchText)) {\r\n return true;\r\n }\r\n\r\n if (this._numberContainsText(feedback.TotalScore, searchText)) {\r\n return true;\r\n }\r\n\r\n return feedback.Scores.some((score) => {\r\n if (this._containsText(score.Description, searchText)) {\r\n return true;\r\n }\r\n if (feedback.Weighted !== true) {\r\n if (this._containsText(score.Title, searchText)) {\r\n return true;\r\n }\r\n } else if (this._containsText(this._multiLanguageService.getString(\"sidebar.asset_feedback.labels.weighted_title\", { title: score.Title, weighting: score.Weighting }), searchText)) {\r\n return true;\r\n }\r\n if (this._containsText(this._multiLanguageService.getString(\"sidebar.asset_feedback.labels.score\", { score: score.Score }), searchText)) {\r\n return true;\r\n }\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n _checkReplies(feedback, searchText) {\r\n const replies = feedback.Replies;\r\n\r\n if (replies.length > 0) {\r\n const foundText = replies.some((reply) => {\r\n if (this._containsText(reply.Comment, searchText)) {\r\n return true;\r\n }\r\n\r\n if (this._containsText(reply.Poster.Name, searchText)) {\r\n return true;\r\n }\r\n\r\n const dateText = this._multiLanguageService.getString(\"sidebar.asset_feedback.labels.left_at\", {\r\n time: this._$filter(\"pebbleDate\")(reply.Posted, \"timeOnly\"),\r\n date: this._$filter(\"pebbleDate\")(reply.Posted)\r\n });\r\n\r\n if (dateText.toLowerCase().includes(searchText)) {\r\n return true;\r\n }\r\n });\r\n\r\n if (foundText && replies.length > ASSESSMENT_CONSTANTS.FEEDBACK_REPLIES.DEFAULT_SHOW_AMOUNT) {\r\n feedback.expandReplies = true;\r\n }\r\n return foundText;\r\n }\r\n return false;\r\n }\r\n\r\n _checkTurnitinInfo(feedback, searchText) {\r\n return (\r\n feedback.SubType === ASSESSMENT_CONSTANTS.FEEDBACK_SUBTYPES.TURNITIN &&\r\n this._containsText(this._multiLanguageService.getString(`sidebar.asset_feedback.title_${feedback.SubType}.type_${feedback.FeedbackType}`), searchText)\r\n );\r\n }\r\n\r\n _containsText(text, searchText) {\r\n return text !== null && text.toLowerCase().includes(searchText);\r\n }\r\n\r\n _numberContainsText(number, searchText) {\r\n return number !== null && number.toString().includes(searchText);\r\n }\r\n\r\n _containsTextNoHtml(text, searchText) {\r\n const sanitisedText = this._helpers.htmlToPlain(text.replace(/ /gi, \" \")).toLowerCase();\r\n return sanitisedText.includes(searchText);\r\n }\r\n}\r\n\r\nFeedbackSearchService.$inject = [\"multiLanguageService\", \"feedbackHelper\", \"helpers\", \"$filter\"];\r\nangularAMD.service(\"feedbackSearchService\", FeedbackSearchService);\r\nexport { FeedbackSearchService };\r\n","import { HtmlLabelCheckbox } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"htmlLabelCheckbox\", react2angular(HtmlLabelCheckbox, [\"label\", \"isChecked\", \"isDisabled\", \"isRequired\", \"onChange\"]));\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { ToolbarDisplayState } from \"@pjs/rich-text\";\r\nimport \"../utilities/debounce.service.js\";\r\nimport \"./ActiveToolbarCoordinator.service\";\r\nimport \"../pebbleEditorPlugins/linkerPlugin/LinkerService\";\r\n\r\nexport class StickyReactEditorAdapterController extends NgComponent {\r\n constructor(activeToolbarCoordinator, $scope, linkerService, stickyContainer) {\r\n super();\r\n this.stickyContainer = stickyContainer;\r\n\r\n this.onToolbarDisplayChange = (displayState, element) => {\r\n if (displayState === ToolbarDisplayState.Pending) {\r\n return;\r\n }\r\n\r\n activeToolbarCoordinator.onToolbarToggle(displayState, element);\r\n\r\n if (displayState === ToolbarDisplayState.Shown) {\r\n this.stickyContainer.coordinator.add(element);\r\n } else {\r\n this.stickyContainer.coordinator.remove(element);\r\n }\r\n };\r\n\r\n this.onEditorChange = (value) => {\r\n this.onChange(value);\r\n $scope.$applyAsync();\r\n };\r\n\r\n this.onLink = (result, focusTrackerProxy) => linkerService.createModal(result, focusTrackerProxy);\r\n }\r\n\r\n $onChanges() {\r\n this.editorContent = this.content === undefined || this.content === null ? \"\" : this.content;\r\n this.editorPlaceholder = this.placeholder === undefined ? \"\" : this.placeholder;\r\n }\r\n}\r\nStickyReactEditorAdapterController.$inject = [\"ActiveToolbarCoordinator\", \"$scope\", \"linkerService\"];\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { reactEditorAdapterBindings } from \"../reactEditorAdapter/ReactEditorAdapterBindings.const\";\r\nimport { StickyReactEditorAdapterController } from \"../reactEditorAdapter/StickyReactEditorAdapterController\";\r\nimport \"../stickyElementCoordinator/stickyContainer.directive\";\r\nimport template from \"./persistent-compact-rich-text-editor.html\";\r\n\r\nexport const stickyPersistentCompactRichTextEditorDefinition = {\r\n bindings: {\r\n autoFocus: \"<\",\r\n ...reactEditorAdapterBindings\r\n },\r\n require: {\r\n stickyContainer: \"^stickyContainer\"\r\n },\r\n controller: StickyReactEditorAdapterController,\r\n name: \"stickyPersistentCompactRichTextEditor\",\r\n template: template\r\n};\r\nangularAMD.component(stickyPersistentCompactRichTextEditorDefinition.name, stickyPersistentCompactRichTextEditorDefinition);\r\n","export default `

{{::vm.commentTitle}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport Mark from \"mark.js/dist/mark.min\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../react2angular/htmlNotice\";\r\nimport \"../../../react2angular/dismissableHtmlNotice\";\r\nimport \"../../../react2angular/searchComponent\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../utilities/scrollToItem.directive\";\r\nimport \"../../../utilities/highlightItem.directive\";\r\nimport \"../../../builder/dataManager/dataManagerService\";\r\nimport \"../../../user/user.service\";\r\nimport \"../../../messageAnnouncer/messageAnnouncer.directive\";\r\nimport \"../../../utilities/pebbleDate\";\r\nimport \"../../../feedback/feedbackSearchService/feedbackSearchService.service\";\r\nimport \"./commentsDataModel\";\r\nimport \"./directives/commentInputBox\";\r\nimport \"./directives/comment\";\r\nimport template from \"./templates/asset-comments.html\";\r\n\r\nangularAMD.directive(\"assetComments\", AssetComments);\r\nAssetComments.$inject = [];\r\n\r\nangularAMD.controller(\"AssetCommentsController\", AssetCommentsController);\r\nAssetCommentsController.$inject = [\r\n \"$scope\",\r\n \"$routeParams\",\r\n \"$timeout\",\r\n \"$rootScope\",\r\n \"$window\",\r\n \"commentsDataModel\",\r\n \"multiLanguageService\",\r\n \"dataManagerService\",\r\n \"User\",\r\n \"feedbackSearchService\",\r\n \"$element\",\r\n \"$q\",\r\n \"domSearchHelper\"\r\n];\r\n\r\n//Directive\r\nfunction AssetComments() {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n scope: {\r\n assetId: \"=\",\r\n submissionId: \"<\",\r\n anchorId: \"=?\",\r\n onUpdate: \"&\",\r\n asset: \" {\r\n this.createCommentOptions();\r\n });\r\n\r\n this.onTextSearchHandler = (searchString) => {\r\n this.onSearch(searchString.trim());\r\n $scope.$applyAsync();\r\n };\r\n\r\n this.onChangeHandler = (searchString) => {\r\n this.searchText = searchString;\r\n $scope.$applyAsync();\r\n };\r\n}\r\n\r\nAssetCommentsController.prototype.$onDestroy = function () {\r\n this.urlChange();\r\n this.services.$timeout.cancel(this._searchTimeout);\r\n};\r\n\r\nAssetCommentsController.prototype.setupComments = function (focusPanelTab) {\r\n this.data = this.services.commentsDataModel.data;\r\n if (this.data.Comments === undefined) {\r\n this._setCommentState();\r\n this.showSearchHelp = false;\r\n this.dataLoaded = true;\r\n return;\r\n }\r\n\r\n this.comments = this.services.commentsDataModel.data.Comments;\r\n this.sort(this.sortAscending);\r\n this.showInconsistentWarning = this.services.commentsDataModel.data.CommentCountDifferentFromCountOnAssetRef;\r\n\r\n this._setCommentState();\r\n\r\n this.createCommentOptions();\r\n this.dataLoaded = true;\r\n\r\n this.services.eventEmitter(\"infoPanelContentLoaded\", true, focusPanelTab);\r\n};\r\n\r\nAssetCommentsController.prototype.onCommentChange = function (commentInProgress, isNewComment) {\r\n if (isNewComment) {\r\n this.isNewCommentDisabled = commentInProgress;\r\n } else {\r\n this.isDisabled = commentInProgress;\r\n }\r\n\r\n this.onUpdate({\r\n id: this.assetId,\r\n commentInProgress: commentInProgress\r\n });\r\n};\r\n\r\nAssetCommentsController.prototype.createCommentOptions = function () {\r\n const pageId = this.services.$routeParams.pageId;\r\n this.commentOptions = null;\r\n this.pageDto = null;\r\n this.pageCommentMessage = \"\";\r\n\r\n if (pageId !== undefined && /^(workbookresponse|webfolio)$/i.test(this.assetInfo.mainType)) {\r\n this.pageDto = this.assetManager.get(pageId, false);\r\n const pageAssetId = this.pageDto.UserResponseId || this.pageDto.PageAssetId;\r\n\r\n this.commentOptions = {\r\n mainAssetId: this.assetId,\r\n pageId: pageAssetId,\r\n pageTitle: this.services.multiLanguageService.getString(\"sidebar.asset_comments.save_on_this_page_title\", {\r\n assetTitle: this.pageDto.PageTitle\r\n })\r\n };\r\n\r\n if (this.pageDto.UserResponseId === \"\" || this.pageDto.UserResponseId === null) {\r\n this.commentOptions = null;\r\n this.pageCommentMessage = this.services.multiLanguageService.getString(\"sidebar.asset_comments.page_comments_disabled\");\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * @param {{body: string; author: string; isPageComment: string}} data\r\n * @returns Promise\r\n */\r\nAssetCommentsController.prototype.onNewCommentAdd = function (data) {\r\n const assetId = data.isPageComment ? this.commentOptions.pageId : this.assetId;\r\n let commentDto = null;\r\n return this.services.commentsDataModel\r\n .addNewComment(data.body, data.author, \"\", assetId, this.anchorId, this.submissionId)\r\n .then((comment) => {\r\n commentDto = comment;\r\n commentDto.AssetTitle = data.isPageComment ? this.pageDto.PageTitle : this.assetInfo.title;\r\n commentDto.CommentType = \"Normal\";\r\n this.comments.push(commentDto);\r\n this.sort(this.sortAscending);\r\n this.isNewCommentDisabled = false;\r\n return this.onSearch(this.searchText);\r\n })\r\n .then(() => {\r\n this.screenReaderMessage = `${this.services.multiLanguageService.getString(\"sidebar.asset_comments.comment_added\")}. ${this.screenReaderMessage}`;\r\n const newCommentId = `asset-comments-comment-${commentDto.Id}`;\r\n this.newCommentScrollId = newCommentId;\r\n this.newCommentHighlightId = newCommentId;\r\n this.onUpdate({\r\n id: this.assetId,\r\n commentInProgress: false\r\n });\r\n\r\n if (this.comments.length === 0 || (this.comments[0].Id !== commentDto.Id && this.comments[this.comments.length - 1].Id !== commentDto.Id)) {\r\n return;\r\n }\r\n const commentElement = document.getElementById(newCommentId);\r\n const focusTarget =\r\n this.services.domSearchHelper.getFirstTabbableElement(commentElement) ?? commentElement.querySelector(\"[data-hook='saved-comment-reply-text']\");\r\n focusTarget.focus({ preventScroll: true });\r\n });\r\n};\r\n\r\nAssetCommentsController.prototype.clearScrollId = function () {\r\n this.newCommentScrollId = \"\";\r\n};\r\n\r\nAssetCommentsController.prototype.clearHighlightId = function () {\r\n this.newCommentHighlightId = \"\";\r\n};\r\n\r\nAssetCommentsController.prototype.onCommentDelete = function (deletedIndex, isMainComment) {\r\n this.onSearch(this.searchText).then(() => {\r\n this.screenReaderMessage = `${this.services.multiLanguageService.getString(\"sidebar.asset_comments.comment_deleted\")}. ${this.screenReaderMessage}`;\r\n\r\n if (!isMainComment) {\r\n return;\r\n }\r\n\r\n let isLastElement = deletedIndex === this.comments.length;\r\n if (this.comments.length === 0) {\r\n this.services.$element[0].querySelector(`[data-hook=\"comment-text-area\"]`).focus();\r\n return;\r\n }\r\n\r\n const targetIndex = isLastElement ? this.comments.length - 1 : deletedIndex;\r\n const commentElement = document.getElementById(`asset-comments-comment-${this.comments[targetIndex].Id}`);\r\n const focusTarget =\r\n this.services.domSearchHelper.getFirstTabbableElement(commentElement) ?? commentElement.querySelector(\"[data-hook='saved-comment-reply-text']\");\r\n focusTarget.focus();\r\n });\r\n};\r\n\r\nAssetCommentsController.prototype.onSearch = function (searchText) {\r\n this.searchText = searchText;\r\n this._resetInitialLoadState(false);\r\n this.screenReaderMessage = \"\";\r\n\r\n const deferred = this.services.$q.defer();\r\n\r\n this._searchTimeout = this.services.$timeout(() => {\r\n let comments = this.services.commentsDataModel.data.Comments;\r\n if (this.searchText !== \"\") {\r\n comments = this._feedbackSearchService.searchComment(this.searchText, this.comments);\r\n }\r\n this.comments = comments;\r\n this.dataLoaded = true;\r\n\r\n this._setCommentState();\r\n this._markText(this._assetCommentsMark);\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise;\r\n};\r\n\r\nAssetCommentsController.prototype.sort = function (ascending) {\r\n this.sortAscending = ascending;\r\n this.comments.sort(this.sortAscending ? this._sortByDateAsc : this._sortByDateDesc);\r\n\r\n this.sortButtonTitle = this.sortAscending\r\n ? this.services.multiLanguageService.getString(\"search_bar.sort_options.sort_ascending\")\r\n : this.services.multiLanguageService.getString(\"search_bar.sort_options.sort_descending\");\r\n};\r\n\r\nAssetCommentsController.prototype._sortByDateAsc = function (a, b) {\r\n if (a.Posted < b.Posted) {\r\n return -1;\r\n } else if (a.Posted > b.Posted) {\r\n return 1;\r\n }\r\n return 0;\r\n};\r\n\r\nAssetCommentsController.prototype._sortByDateDesc = function (a, b) {\r\n if (a.Posted > b.Posted) {\r\n return -1;\r\n } else if (a.Posted < b.Posted) {\r\n return 1;\r\n }\r\n return 0;\r\n};\r\n\r\nAssetCommentsController.prototype._setCommentState = function () {\r\n if (this.data.Comments === undefined) {\r\n this.screenReaderMessage = this.services.multiLanguageService.getString(\"sidebar.asset_comments.no_permission\");\r\n this.showSearchHelp = false;\r\n this.commentExists = false;\r\n } else if (this.data.Comments.length < 1) {\r\n this.screenReaderMessage = this.services.multiLanguageService.getString(\"sidebar.asset_comments.no_comments\");\r\n this.showSearchHelp = false;\r\n this.commentExists = false;\r\n } else if (this.comments.length < 1) {\r\n this.screenReaderMessage = this.services.multiLanguageService.getString(\"search_bar.no_search_results.message\");\r\n this.showSearchHelp = true;\r\n this.commentExists = true;\r\n } else {\r\n this.screenReaderMessage = this.services.multiLanguageService.getString(\"sidebar.asset_comments.aria.loaded_message\", {\r\n count: this.comments.length\r\n });\r\n this.commentExists = true;\r\n }\r\n};\r\n\r\nAssetCommentsController.prototype._resetInitialLoadState = function (focusPanelTab) {\r\n this._assetCommentsMark.unmark();\r\n this.setupComments(focusPanelTab);\r\n this.showSearchHelp = false;\r\n};\r\n\r\nAssetCommentsController.prototype._markText = function (markElement) {\r\n if (markElement !== null && this.searchText !== \"\") {\r\n this._$window.requestAnimationFrame(() => {\r\n markElement.mark(this.searchText, {\r\n acrossElements: true,\r\n ignoreJoiners: true,\r\n separateWordSearch: false\r\n });\r\n });\r\n }\r\n};\r\n","export default `

{{::vm.services.multiLanguageService.getString('sidebar.asset_comments.post_a_comment')}}

{{::vm.services.multiLanguageService.getString(\"search_bar.no_search_results.message\")}}

{{::vm.services.multiLanguageService.getString(\"search_bar.no_search_results.sub_heading\")}}

  • {{::vm.services.multiLanguageService.getString(\"search_bar.no_search_results.suggestion_keyword_spelling\")}}
  • {{::vm.services.multiLanguageService.getString(\"search_bar.no_search_results.suggestion_different_keywords\")}}

{{::vm.data}}

{{::vm.services.multiLanguageService.getString('sidebar.asset_comments.no_comments')}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../services/versionHelper.service\";\r\nimport \"../../screenReaderAnnouncer/screenReaderAnnouncer.directive\";\r\nimport template from \"./templates/version-list.html\";\r\n\r\nangularAMD.directive(\"versionList\", VersionList);\r\nVersionList.$inject = [];\r\n\r\nfunction VersionList() {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n assetId: \"@assetId\",\r\n asset: \"=\"\r\n },\r\n controller: \"VersionListController\",\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n };\r\n}\r\n\r\nangularAMD.controller(\"VersionListController\", VersionListController);\r\nVersionListController.$inject = [\"$location\", \"$filter\", \"multiLanguageService\", \"VersionHelper\", \"$scope\"];\r\n\r\nfunction VersionListController(_$location_, _$filter_, multiLanguageService, _VersionHelper_, _scope_) {\r\n this.services = {\r\n filter: _$filter_,\r\n location: _$location_,\r\n versionHelper: _VersionHelper_,\r\n scope: _scope_\r\n };\r\n this.multiLanguageService = multiLanguageService;\r\n this.errorMessage = \"\";\r\n this.loading = true;\r\n this.versions = [];\r\n this.setupVersionList(this.assetId);\r\n}\r\n\r\nVersionListController.prototype.setupVersionList = function (id) {\r\n this.loading = true;\r\n return this.services.versionHelper.getAssetVersions(id).then(\r\n function (response) {\r\n if (!response) {\r\n this.onError();\r\n return;\r\n }\r\n\r\n if (response.UserHasWritePermission === true) {\r\n // user has write and list provided (empty or not)\r\n this.versions = response.Versions;\r\n this.errorMessage = \"\";\r\n } else if (this.services.location.url().indexOf(\"public\") > -1) {\r\n // user doesn't have write and its the public page\r\n this.versions = [];\r\n this.errorMessage = this.multiLanguageService.getString(\"versioning.side_bar.no_available_versions\");\r\n }\r\n\r\n if (this.errorMessage !== null && this.errorMessage !== \"\") {\r\n this.loadedMessage = this.errorMessage;\r\n } else if (this.versions.length !== 0) {\r\n this.loadedMessage = this.multiLanguageService.getString(\"versioning.side_bar.versions_loaded\");\r\n } else {\r\n this.loadedMessage = this.multiLanguageService.getString(\"versioning.side_bar.no_available_versions\");\r\n }\r\n\r\n this.loading = false;\r\n this.services.scope.$emit(\"infoPanelContentLoaded\", true, true); // let sidebar know it can turn off its loading spinner\r\n }.bind(this),\r\n this.onError.bind(this)\r\n );\r\n};\r\n\r\nVersionListController.prototype.onError = function (rejection) {\r\n this.loading = false;\r\n this.errorMessage = this.multiLanguageService.getString(\"versioning.side_bar.error_getting_versions\");\r\n this.services.scope.$emit(\"infoPanelContentLoaded\", true, true); // let sidebar know it can turn off its loading spinner\r\n};\r\n\r\nVersionListController.prototype.getVersionDescription = function (modifiedTime, index) {\r\n var timeFormatted = this.services.filter(\"pebbleDate\")(modifiedTime, \"timeOnly\");\r\n var dateFormatted = this.services.filter(\"pebbleDate\")(modifiedTime, \"dateAndMonth\");\r\n\r\n var description = this.multiLanguageService.getString(\"versioning.side_bar.versions_list_item_prompt\", {\r\n time: timeFormatted,\r\n date: dateFormatted\r\n });\r\n\r\n if (this.versions.length === 1) {\r\n description += \" \" + this.multiLanguageService.getString(\"versioning.side_bar.versions_list_item_lonely_prompt\");\r\n } else if (index === 0) {\r\n description += \" \" + this.multiLanguageService.getString(\"versioning.side_bar.versions_list_item_latest_prompt\");\r\n } else if (index === this.versions.length - 1) {\r\n description += \" \" + this.multiLanguageService.getString(\"versioning.side_bar.versions_list_item_ealiest_prompt\");\r\n }\r\n return description;\r\n};\r\n","export default `

{{::vm.multiLanguageService.getString('versioning.side_bar.asset_history')}}

{{::version.Modified | pebbleDate : \"dateAndMonth\"}}

{{::vm.multiLanguageService.getString('versioning.side_bar.asset_saved', { date: (version.Modified | pebbleDate : \"timeOnly\") })}}

{{::vm.multiLanguageService.getString('versioning.side_bar.no_available_versions')}}

{{::vm.errorMessage}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./assetLockedMessage.html\";\r\n\r\nangularAMD.directive(\"assetLockedMessage\", AssetLockedMessage);\r\nAssetLockedMessage.$inject = [\"multiLanguageService\"];\r\n\r\nfunction AssetLockedMessage(multiLanguageService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n lockedInfo: \"=\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.multiLanguageService = multiLanguageService;\r\n }\r\n ]\r\n };\r\n}\r\n","export default `

{{::multiLanguageService.getString('sidebar.locked.asset_locked', { name: lockedInfo.LockedBy.Name, assetTitle: lockedInfo.LockOriginatedOnAsset.Title })}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../react2angular/richTextView\";\r\nimport template from \"./feedback-text.html\";\r\n\r\nvar feedbackTextDefinition = {\r\n bindings: {\r\n text: \"<\"\r\n },\r\n template: template,\r\n controller: feedbackTextComponent\r\n};\r\n\r\nfeedbackTextComponent.$inject = [\"multiLanguageService\"];\r\nfunction feedbackTextComponent(multiLanguageService) {\r\n this.multiLanguageService = multiLanguageService;\r\n}\r\n\r\nangularAMD.component(\"feedbackText\", feedbackTextDefinition);\r\nexport { feedbackTextDefinition as feedbackText };\r\n","export default ` `;","import { DecoupledEditor } from \"@pebblepad/ckeditor\";\r\nimport { Observable, Subscription } from \"@pjs/observables\";\r\nimport { RefObject } from \"react\";\r\nimport { IEditor } from \"../../editor/interfaces/IEditor\";\r\nimport { EditorEnabledState } from \"../../editor/types/EditorEnabledState\";\r\n\r\nexport class ContentInsertionHandler {\r\n private readonly _editor: IEditor;\r\n private readonly _contentObservable: Observable;\r\n private readonly _enabledSubscription: Subscription;\r\n private readonly _focusContainers: ReadonlyArray>;\r\n private _contentSubscription: Subscription | null = null;\r\n\r\n constructor(editor: IEditor, contentObservable: Observable, focusContainers: ReadonlyArray>) {\r\n this._editor = editor;\r\n this._contentObservable = contentObservable;\r\n this._focusContainers = focusContainers;\r\n this._enabledSubscription = editor.enabled.subscribe((state) => this._onEnabledStateChange(state));\r\n }\r\n\r\n public destroy(): void {\r\n if (this._contentSubscription !== null) {\r\n this._contentSubscription.unsubscribe();\r\n }\r\n\r\n const ckeInstance = this._editor.getInstance();\r\n if (ckeInstance !== null) {\r\n this._unregisterFocusContainers(ckeInstance);\r\n }\r\n\r\n this._enabledSubscription.unsubscribe();\r\n }\r\n\r\n private _onEnabledStateChange(state: EditorEnabledState): void {\r\n if (state.isEnabled) {\r\n this._contentSubscription = this._contentObservable.subscribe((content) => this._insertContent(state.editor, content));\r\n this._registerFocusContainers(state.editor);\r\n return;\r\n }\r\n\r\n if (this._contentSubscription !== null) {\r\n this._contentSubscription.unsubscribe();\r\n this._contentSubscription = null;\r\n }\r\n }\r\n\r\n private _insertContent(ckeInstance: DecoupledEditor, content: string): void {\r\n const sanitisedContent = this._editor.parser.parseToString(content);\r\n const viewFragment = ckeInstance.data.processor.toView(sanitisedContent);\r\n const modelFragment = ckeInstance.data.toModel(viewFragment);\r\n\r\n ckeInstance.model.insertContent(modelFragment);\r\n ckeInstance.focus();\r\n }\r\n\r\n private _registerFocusContainers(ckeInstance: DecoupledEditor): void {\r\n for (const element of this._focusContainers) {\r\n if (element.current !== null) {\r\n ckeInstance.ui.focusTracker.add(element.current);\r\n }\r\n }\r\n }\r\n\r\n private _unregisterFocusContainers(ckeInstance: DecoupledEditor): void {\r\n for (const element of this._focusContainers) {\r\n if (element.current !== null) {\r\n ckeInstance.ui.focusTracker.remove(element.current);\r\n }\r\n }\r\n }\r\n}\r\n","import { Observable } from \"@pjs/observables\";\r\nimport { RefObject } from \"react\";\r\nimport { IEditor } from \"../../editor/interfaces/IEditor\";\r\nimport { BehaviourCleanup } from \"../types/BehaviourCleanup\";\r\nimport { ContentInsertionHandler } from \"../insert-at-caret/ContentInsertionHandler\";\r\nimport { Behaviour } from \"../types/Behaviour\";\r\n\r\nexport const insertAtCaretBehaviourFactory = (contentObservable: Observable, trackingElements: Array>): Behaviour => {\r\n return insertAtCaret.bind(null, contentObservable, trackingElements);\r\n};\r\n\r\nfunction insertAtCaret(contentObservable: Observable, trackingElements: Array>, editor: IEditor): BehaviourCleanup {\r\n const contentInsertionHandler = new ContentInsertionHandler(editor, contentObservable, trackingElements);\r\n return () => {\r\n contentInsertionHandler.destroy();\r\n };\r\n}\r\n","import { Component, Context, createRef, ReactElement, RefObject } from \"react\";\r\nimport { BoundaryContext, IBoundaryContext } from \"@pjs/core-ui\";\r\nimport { IEditorFactoryConfig } from \"../editor-factories/interfaces/IEditorFactoryConfig\";\r\nimport { compactToolbarPreset } from \"../toolbar-items/presets/Compact\";\r\nimport { BaseEditor } from \"../base-editor/BaseEditor.component\";\r\nimport { multiLineFactory } from \"../editor-factories/MultiLineFactory.function\";\r\nimport { displayShortcuts } from \"../behaviours/display-shortcuts/functions/DisplayShortcuts.function\";\r\nimport { insertAtCaretBehaviourFactory } from \"../behaviours/insert-at-caret/InsertAtCaret.function\";\r\nimport { persistentEditorToolbar } from \"../behaviours/persistent-editor-toolbar/PersistentEditorToolbar.function\";\r\nimport { autoEnable } from \"../behaviours/auto-enable/AutoEnable.function\";\r\nimport { compactMultiLineParser } from \"../html-parsers/CompactMultiLineParser.const.\";\r\nimport { ContentInjectionEditorProps } from \"./types/ContentInjectionEditorProps\";\r\nimport \"../../styles/attached-editor.css\";\r\nimport \"../../styles/persistent-editor.css\";\r\nimport \"../../styles/utilities.css\";\r\n\r\nexport class ContentInjectionEditor extends Component {\r\n public static contextType: Context = BoundaryContext;\r\n private readonly _toolbarRef: RefObject;\r\n private readonly _config: IEditorFactoryConfig;\r\n\r\n constructor(props: ContentInjectionEditorProps, context: IBoundaryContext) {\r\n super(props);\r\n this._toolbarRef = createRef();\r\n\r\n this._config = {\r\n behaviours: [\r\n autoEnable,\r\n persistentEditorToolbar,\r\n insertAtCaretBehaviourFactory(this.props.contentObservable, this.props.trackingElements),\r\n displayShortcuts\r\n ],\r\n boundaryElement: context.element,\r\n parser: compactMultiLineParser,\r\n placeholder: this.props.placeholder,\r\n pluginOverrides: { linker: { onLink: this.props.onLink } },\r\n toolbarItems: compactToolbarPreset\r\n };\r\n }\r\n\r\n public render(): ReactElement {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import { ComponentType, FunctionComponent } from \"react\";\r\nimport { BoundaryBridge } from \"@pjs/core-ui\";\r\nimport { WithLabelAndLabelledBy } from \"../../types/WithLabelAndLabelledBy\";\r\nimport { ContentInjectionEditorProps } from \"./types/ContentInjectionEditorProps\";\r\nimport { ContentInjectionEditor } from \"./ContentInjectionEditor.component\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst EditorWithLabelAndLabelledBy = ContentInjectionEditor as ComponentType>;\r\n\r\nexport const ContentInjectionEditorWithBoundary: FunctionComponent = (props) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import { i18nManager, withImport } from \"@pjs/i18n\";\r\nimport defaultLanguageJson from \"../../resources/lang/en-GB.json\";\r\n\r\nexport const feedbackI18n = i18nManager.createSet(\"feedback\");\r\n\r\nfeedbackI18n.add(\r\n \"en-GB\",\r\n withImport(() => import(\"../../resources/lang/en-GB.json\"))\r\n);\r\n\r\nfeedbackI18n.add(\r\n \"cy-GB\",\r\n withImport(() => import(\"../../resources/lang/cy-GB.json\"))\r\n);\r\n\r\nfeedbackI18n.add(\r\n \"nl-NL\",\r\n withImport(() => import(\"../../resources/lang/nl-NL.json\"))\r\n);\r\n\r\nfeedbackI18n.add(\r\n \"en-US\",\r\n withImport(() => import(\"../../resources/lang/en-US.json\"))\r\n);\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.fbk-comment-editor__text-area{--base-editor-min-height:calc(var(--font-line-height-body)*var(--font-size-body)*5);background:var(--colour-input-background-default);height:auto}.fbk-comment-editor__item-picker-button{border:var(--layout-border-thickness-standout)solid transparent;font-weight:var(--font-weight-action);font-size:var(--font-size-meta);padding:.5rem var(--layout-padding-chip);border-radius:var(--effect-border-radius-action);background-color:#0000;margin:.6rem}.fbk-comment-editor__item-picker-button:focus{border:var(--layout-border-thickness-standout)solid var(--palette-secondary-600);outline:none}.fbk-comment-editor__item-picker-button:hover{background-color:var(--palette-secondary-100)}.fbk-comment-editor__item-picker-button:disabled{color:var(--colour-action-outlined-text-disabled);background-color:#0000}.fbk-comment-editor__item-picker-button--active,.fbk-comment-editor__item-picker-button--active:hover{background-color:var(--palette-secondary-300)}.fbk-comment-editor__item-picker-container{background:var(--colour-input-background-default);border:var(--layout-border-thickness-default)solid var(--colour-border);border-top:0}`);","import { Component, createRef, Fragment, ReactElement, RefObject } from \"react\";\r\nimport { BoundaryBridge, GroupedItemPicker } from \"@pjs/core-ui\";\r\nimport { ContentInjectionEditorWithBoundary } from \"@pjs/rich-text\";\r\nimport { Subject } from \"@pjs/observables\";\r\nimport { LineClampedTextOption } from \"@pjs/core-ui\";\r\nimport { IFeedbackStatementsGroupItem } from \"../../mappers/feedbackStatementsMapper/interfaces/IFeedbackStatementsGroupItem\";\r\nimport { feedbackI18n } from \"../../i18n/FeedbackI18n.const\";\r\nimport { IFeedbackCommentEditorProps } from \"./interfaces/IFeedbackCommentEditorProps\";\r\nimport \"./styles/feedback-comment-editor.css\";\r\n\r\nexport class FeedbackCommentEditor extends Component {\r\n private readonly _contentSubject: Subject;\r\n private readonly _itemPickerRef: RefObject = createRef();\r\n private readonly _onStatementSelectedBound: (item: IFeedbackStatementsGroupItem) => void = this._onStatementSelected.bind(this);\r\n\r\n constructor(props: IFeedbackCommentEditorProps) {\r\n super(props);\r\n this._contentSubject = new Subject();\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n this._contentSubject.complete();\r\n }\r\n\r\n public render(): ReactElement {\r\n const buttonText = feedbackI18n.getString(\"feedback_comment.labels.feedback_statements_picker_button\");\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private _onStatementSelected(item: IFeedbackStatementsGroupItem): void {\r\n this._contentSubject.next(item.htmlValue);\r\n }\r\n}\r\n","import { FeedbackCommentEditor } from \"@pjs/feedback\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"feedbackCommentEditor\", react2angular(FeedbackCommentEditor, [\"content\", \"ariaLabel\", \"onChange\", \"onLink\", \"placeholder\", \"autoFocus\", \"statements\", \"onToolbarDisplayChange\"]));\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./feedbackCommentsEditor.html\";\r\nimport \"../react2angular/feedbackCommentEditor\";\r\nimport { feedbackCommentEditorAdapterBindings } from \"../reactEditorAdapter/FeedbackCommentEditorAdapterBindings.const\";\r\nimport { StickyReactEditorAdapterController } from \"../reactEditorAdapter/StickyReactEditorAdapterController\";\r\n\r\nexport const feedbackCommentsEditorDefinition = {\r\n bindings: {\r\n autoFocus: \"<\",\r\n ...feedbackCommentEditorAdapterBindings\r\n },\r\n require: {\r\n stickyContainer: \"^stickyContainer\"\r\n },\r\n controller: StickyReactEditorAdapterController,\r\n name: \"feedbackCommentsEditor\",\r\n template: template\r\n};\r\n\r\nangularAMD.component(feedbackCommentsEditorDefinition.name, feedbackCommentsEditorDefinition);\r\n","export const feedbackCommentEditorAdapterBindings = {\r\n className: \" `;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { createGuid } from \"@pjs/utilities\";\r\nimport { MAP_TO_STANDARDS_CONSTANTS } from \"../../../constants/mapToStandards.constants\";\r\nimport \"../../../spaMenu/assetInfoPanel/assetFeedback/helpers/FeedbackHelper\";\r\nimport \"../../../feedbackCommentsEditor/feedbackCommentsEditor\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport template from \"./approval-collection-item.html\";\r\n\r\nclass ApprovalCollectionItemComponent extends NgComponent {\r\n constructor(multiLanguageService, feedbackHelper) {\r\n super();\r\n\r\n this.MAP_TO_STANDARDS_CONSTANTS = MAP_TO_STANDARDS_CONSTANTS;\r\n this.multiLanguageService = multiLanguageService;\r\n this.feedbackHelper = feedbackHelper;\r\n\r\n this.textEditorLabel = this.getTextEditorLabel();\r\n this.richTextEditorClass = \"rich-text-comment-box\";\r\n this.richTextEditorDataHook = \"approval-feedback-textbox\";\r\n this.richTextLabelledBy = createGuid();\r\n this.richTextAutoFocus = true;\r\n this.editorPlaceholder = \"\";\r\n\r\n this.onAnswerChange = this._updateContent.bind(this);\r\n }\r\n\r\n updateAnswer() {\r\n this.onEdit({\r\n validation: this.feedbackHelper.getApprovalCollectionValidation(this.status, this.comment),\r\n changes: { ApprovalCollectionStatus: this.status, Comment: this.comment }\r\n });\r\n\r\n this.textEditorLabel = this.getTextEditorLabel();\r\n }\r\n\r\n getTextEditorLabel() {\r\n return this.status === this.MAP_TO_STANDARDS_CONSTANTS.STATUS.APPROVED\r\n ? this.multiLanguageService.getString(\"atlas_sidebar.tabs.mapping_approval.feedback_label_optional\")\r\n : this.multiLanguageService.getString(\"atlas_sidebar.tabs.mapping_approval.feedback_label_compulsory\");\r\n }\r\n\r\n _updateContent(comment) {\r\n this.comment = comment;\r\n this.updateAnswer();\r\n }\r\n}\r\n\r\nexport const approvalCollectionItem = {\r\n bindings: {\r\n assetId: \"<\",\r\n comment: \"<\",\r\n status: \"<\",\r\n onEdit: \"&\",\r\n feedbackStatements: \"<\"\r\n },\r\n template: template,\r\n controller: ApprovalCollectionItemComponent\r\n};\r\n\r\nApprovalCollectionItemComponent.$inject = [\"multiLanguageService\", \"feedbackHelper\"];\r\nangularAMD.component(\"approvalCollectionItem\", approvalCollectionItem);\r\n","export default `
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { MAP_TO_STANDARDS_CONSTANTS } from \"../../../constants/mapToStandards.constants\";\r\nimport { ACTION_CONSTANTS } from \"../../../constants/action.constants\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../feedbackText/feedbackText.component\";\r\nimport \"../approvalCollectionItem/approvalCollectionItem.component\";\r\nimport \"../../../spaMenu/assetInfoPanel/assetFeedback/helpers/FeedbackHelper\";\r\nimport template from \"./approval-collection.html\";\r\n\r\nclass ApprovalCollectionComponent extends NgComponent {\r\n constructor(multiLanguageService, feedbackHelper) {\r\n super();\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n this.feedbackHelper = feedbackHelper;\r\n this.ACTION_CONSTANTS = ACTION_CONSTANTS;\r\n this.comment = this.feedback.Comment;\r\n\r\n this.iconName = this._getIconName();\r\n this.statusText = this._getStatusText();\r\n }\r\n\r\n $onChanges(changes) {\r\n this.iconName = this._getIconName();\r\n this.statusText = this._getStatusText();\r\n this.comment = this.feedback.Comment;\r\n\r\n if (this._isEditMode(changes)) {\r\n this.onEdit({\r\n validation: this.feedbackHelper.getApprovalCollectionValidation(this.status, this.comment),\r\n changes: { ApprovalCollectionStatus: this.feedback.ApprovalCollectionStatus, Comment: this.comment }\r\n });\r\n }\r\n }\r\n\r\n _getIconName() {\r\n return this.feedback.ApprovalCollectionStatus === MAP_TO_STANDARDS_CONSTANTS.STATUS.APPROVED ? `icon-mapping-approved` : `icon-mapping-not-approved`;\r\n }\r\n\r\n _getStatusText() {\r\n return this.feedback.ApprovalCollectionStatus === MAP_TO_STANDARDS_CONSTANTS.STATUS.APPROVED\r\n ? this.multiLanguageService.getString(\"atlas_sidebar.tabs.mapping_approval.mapping_approved\")\r\n : this.multiLanguageService.getString(\"atlas_sidebar.tabs.mapping_approval.mapping_not_approved\");\r\n }\r\n\r\n _isEditMode(changes) {\r\n return changes.mode !== undefined && changes.mode.currentValue === this.ACTION_CONSTANTS.EDIT;\r\n }\r\n\r\n changeAnswer(validation, changes) {\r\n this.onEdit({\r\n validation: validation,\r\n changes: changes\r\n });\r\n }\r\n}\r\n\r\nexport const approvalCollection = {\r\n bindings: {\r\n feedback: \"<\",\r\n mode: \"<\",\r\n onEdit: \"&\",\r\n feedbackStatements: \"<\"\r\n },\r\n template: template,\r\n controller: ApprovalCollectionComponent\r\n};\r\n\r\nApprovalCollectionComponent.$inject = [\"multiLanguageService\", \"feedbackHelper\"];\r\nangularAMD.component(\"approvalCollection\", approvalCollection);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/urlService\";\r\n\r\nfunction FeedbackUrlServiceProvider() {\r\n this.config = {\r\n fullURL: true,\r\n queryParams: null\r\n };\r\n\r\n this.$get = [\r\n \"$location\",\r\n \"urlService\",\r\n function ($location, urlService) {\r\n return new FeedbackUrlService(this.config.fullURL, this.config.queryParams, $location, urlService);\r\n }\r\n ];\r\n}\r\n\r\nfunction FeedbackUrlService(fullURL, queryParams, $location, urlService) {\r\n this._fullURL = fullURL;\r\n this._queryParams = queryParams;\r\n this._location = $location;\r\n this._urlService = urlService;\r\n}\r\n\r\n/**\r\n * @param {object} params\r\n * @param {boolean} noHash\r\n * @return {string}\r\n */\r\nFeedbackUrlService.prototype.createFeedbackTemplateUrl = function (params, noHash) {\r\n if (this._fullURL) {\r\n return this._urlService.createHashUrl(params.assetId, \"\", true);\r\n } else {\r\n var queryParams = [];\r\n for (var key in this._queryParams) {\r\n if (params[key] !== undefined) {\r\n queryParams.push({ key: this._queryParams[key], value: params[key] });\r\n }\r\n }\r\n\r\n return (noHash ? \"\" : \"#\") + this._urlService.addParameters(this._location.url(), queryParams);\r\n }\r\n};\r\n\r\n/**\r\n * @param {string} assetId\r\n * @param {string=} mainType\r\n * @param {boolean=} viewer\r\n * @return {string}\r\n */\r\nFeedbackUrlService.prototype.createFeedbackAttachmentUrl = function (assetId, mainType, viewer) {\r\n return this._urlService.createHashUrl(assetId, mainType, viewer === true);\r\n};\r\n\r\nangularAMD.provider(\"feedbackUrlService\", FeedbackUrlServiceProvider);\r\n\r\nexport { FeedbackUrlServiceProvider as feedbackUrlService };\r\n","export default `

{{$ctrl.statusText}}

`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { ACTION_CONSTANTS } from \"../../../constants/action.constants\";\r\nimport \"../../../feedback/feedbackUrlService/feedbackUrlService.service\";\r\nimport \"../../../utilities/iconHelper.service\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport template from \"./feedback-template.html\";\r\n\r\nclass feedbackTemplateComponent extends NgComponent {\r\n constructor(feedbackUrlService, $location, multiLanguageService, iconHelper) {\r\n super();\r\n\r\n this.ACTION_CONSTANTS = ACTION_CONSTANTS;\r\n this._feedbackUrlService = feedbackUrlService;\r\n this._$location = $location;\r\n this.multiLanguageService = multiLanguageService;\r\n this.iconHelper = iconHelper;\r\n\r\n this.ariaString = \"\";\r\n }\r\n\r\n $onChanges() {\r\n for (let i = 0; i < this.feedbackTemplates.length; i++) {\r\n this.feedbackTemplates[i].Url = this._feedbackUrlService.createFeedbackTemplateUrl(\r\n {\r\n feedbackId: this.feedbackId,\r\n assetId: this.feedbackTemplates[i].AssetId,\r\n editable: this.mode !== this.ACTION_CONSTANTS.VIEW\r\n },\r\n this.mode === this.ACTION_CONSTANTS.ADD\r\n );\r\n\r\n if (this.mode === this.ACTION_CONSTANTS.ADD) {\r\n this._$location.url(this.feedbackTemplates[i].Url);\r\n this.onCancel();\r\n }\r\n\r\n this.ariaString = this.multiLanguageService.getString(`actions.a11y.${this.mode}`);\r\n }\r\n }\r\n\r\n removeTemplate(assetId) {\r\n for (let i = 0; i < this.feedbackTemplates.length; i++) {\r\n if (assetId === this.feedbackTemplates[i].AssetId) {\r\n this.feedbackTemplates.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n this.onEdit({\r\n templates: this.feedbackTemplates\r\n });\r\n }\r\n}\r\n\r\nexport const feedbackTemplate = {\r\n bindings: {\r\n feedbackId: \"<\",\r\n feedbackTemplates: \"<\",\r\n mode: \"<\",\r\n onEdit: \"&\",\r\n onCancel: \"&\"\r\n },\r\n template: template,\r\n controller: feedbackTemplateComponent\r\n};\r\n\r\nfeedbackTemplateComponent.$inject = [\"feedbackUrlService\", \"$location\", \"multiLanguageService\", \"IconHelper\"];\r\nangularAMD.component(\"feedbackTemplate\", feedbackTemplate);\r\n","export default ``;","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.fbk-notice{--cui-notice-layout-width:auto}.fbk-notice__content{font-weight:var(--font-weight-semi-bold)}`);","import { FunctionComponent } from \"react\";\r\nimport { Notice } from \"@pjs/core-ui\";\r\nimport { IFeedbackNoticeProps } from \"./interfaces/IFeedbackNoticeProps\";\r\nimport \"./styles/feedback-notice.css\";\r\n\r\nexport const FeedbackNotice: FunctionComponent = (props) => {\r\n return (\r\n
\r\n \r\n \r\n {props.statusNotice.statusText}\r\n \r\n \r\n
\r\n );\r\n};\r\n","import { INoticeType, verifyIcon } from \"@pjs/core-ui\";\r\nexport const verifiedNotice: INoticeType = {\r\n colour: \"#0077BB\",\r\n icon: verifyIcon\r\n};\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../feedbackText/feedbackText.component\";\r\nimport template from \"./similarity-score.html\";\r\n\r\nvar similarityScoreDefinition = {\r\n bindings: {\r\n feedback: \"<\"\r\n },\r\n template: template,\r\n controller: SimilarityScoreComponent\r\n};\r\n\r\nSimilarityScoreComponent.$inject = [\"multiLanguageService\"];\r\nfunction SimilarityScoreComponent(multiLanguageService) {\r\n this.multiLanguageService = multiLanguageService;\r\n}\r\n\r\nangularAMD.component(\"similarityScore\", similarityScoreDefinition);\r\nexport { similarityScoreDefinition as similarityScore };\r\n","import { VerificationView } from \"@pjs/feedback\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nangularAMD.component(\"verificationView\", react2angular(VerificationView));\r\n","import { FunctionComponent } from \"react\";\r\nimport { feedbackI18n } from \"../i18n/FeedbackI18n.const\";\r\nimport { FeedbackNotice } from \"../feedback-notice/FeedbackNotice.component\";\r\nimport { ApprovalStatus } from \"../../features/approvals/enums/ApprovalStatus\";\r\nimport { verifiedNotice } from \"./consts/VerifiedNotice.const\";\r\n\r\nexport const VerificationView: FunctionComponent = () => {\r\n const noticeLabel = feedbackI18n.getString(\"accessibility.notice.labels.page_verification\");\r\n const statusNotice = {\r\n noticeType: verifiedNotice,\r\n status: ApprovalStatus.Positive,\r\n statusText: feedbackI18n.getString(\"notice.labels.page_verified\")\r\n };\r\n return ;\r\n};\r\n","export default `

{{::$ctrl.multiLanguageService.getString('sidebar.asset_feedback.type_titles.similarity')}}

{{::$ctrl.feedback.InternetSimilarity}}

{{::$ctrl.feedback.PublicationsSimilarity}}

{{::$ctrl.feedback.DocumentsSimilarity}}

{{::$ctrl.feedback.OverallSimilarity}}

`;","import { StaticLabel } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nangularAMD.component(\"staticLabel\", react2angular(StaticLabel, [\"text\", \"dataHook\"]));\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { historyIcon } from \"@pjs/core-ui\";\r\nimport \"../feedbackText/feedbackText.component\";\r\nimport \"../../../react2angular/StaticLabel\";\r\nimport \"../../../react2angular/icon\";\r\nimport template from \"./assessor-field.html\";\r\n\r\nclass AssessorFieldComponent extends NgComponent {\r\n constructor(multiLanguageService) {\r\n super();\r\n\r\n this.newerExistsText = multiLanguageService.getString(\"labels.canvas.assessor_feedback_newer_exists\");\r\n this.labelText = multiLanguageService.getString(\"labels.canvas.assessor_feedback\");\r\n this.historyIcon = historyIcon.toString();\r\n this.labelDataHook = \"assessor-field-type-label\";\r\n }\r\n}\r\n\r\nconst assessorFieldDefinition = {\r\n bindings: {\r\n feedback: \"<\"\r\n },\r\n template: template,\r\n controller: AssessorFieldComponent\r\n};\r\n\r\nAssessorFieldComponent.$inject = [\"multiLanguageService\"];\r\nangularAMD.component(\"assessorField\", assessorFieldDefinition);\r\nexport { assessorFieldDefinition as assessorField };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../feedbackText/feedbackText.component\";\r\nimport template from \"./certificate.html\";\r\n\r\nvar certificateDefinition = {\r\n bindings: {\r\n feedback: \"<\"\r\n },\r\n template: template,\r\n controller: CertificateComponent\r\n};\r\n\r\nCertificateComponent.$inject = [];\r\n// tslint:disable-next-line:no-empty\r\nfunction CertificateComponent() {}\r\n\r\nangularAMD.component(\"certificate\", certificateDefinition);\r\nexport { certificateDefinition as certificate };\r\n","export default `
`;","export default `
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSESSMENT_CONSTANTS } from \"../../constants/assessment.constants\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\n\r\nexport class FeedbackInfoWrapperService {\r\n constructor($sce, multiLanguageService, baseUrlsFactory) {\r\n this._$sce = $sce;\r\n this._baseUrlsFactory = baseUrlsFactory;\r\n this._multiLanguageService = multiLanguageService;\r\n }\r\n\r\n _getProfileImageLink(profileImageId) {\r\n return `${this._baseUrlsFactory.api_base_url}File/TransmitProfilePic?id=${profileImageId}&x=35&y=35&shortSideScale=True`;\r\n }\r\n\r\n getInfoModel(feedbackItem) {\r\n const viewModel = {\r\n title: \"\",\r\n icon: \"\",\r\n timeStamp: feedbackItem.Posted,\r\n leftOn: { ...feedbackItem.LeftOn, AssetId: feedbackItem.AssetId }\r\n };\r\n\r\n if (feedbackItem.SubType === ASSESSMENT_CONSTANTS.FEEDBACK_SUBTYPES.STANDARD || feedbackItem.FeedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.ASSESSOR_FIELD) {\r\n viewModel.title = feedbackItem.Poster.Name;\r\n viewModel.icon = this._getProfileImageLink(feedbackItem.Poster.ProfilePicId);\r\n } else {\r\n viewModel.title = this._multiLanguageService.getString(`sidebar.asset_feedback.title_${feedbackItem.SubType}.type_${feedbackItem.FeedbackType}`);\r\n viewModel.icon = this._$sce.getTrustedResourceUrl(`${this._baseUrlsFactory.shared_component_base_url}images/feedback/${feedbackItem.SubType}.png`);\r\n }\r\n\r\n return viewModel;\r\n }\r\n}\r\n\r\nFeedbackInfoWrapperService.$inject = [\"$sce\", \"multiLanguageService\", \"baseUrlsFactory\"];\r\nangularAMD.service(\"feedbackInfoWrapperService\", FeedbackInfoWrapperService);\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSESSMENT_CONSTANTS } from \"../../../constants/assessment.constants\";\r\nimport \"../../../spaMenu/assetInfoPanel/assetFeedback/helpers/FeedbackHelper\";\r\nimport \"../../../utilities/urlService\";\r\nimport template from \"./feedback-left-on.html\";\r\n\r\nclass FeedbackLeftOn extends NgComponent {\r\n constructor(feedbackHelper, urlService) {\r\n super();\r\n\r\n this.ASSESSMENT_CONSTANTS = ASSESSMENT_CONSTANTS;\r\n this._feedbackHelper = feedbackHelper;\r\n this.urlService = urlService;\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.data !== undefined) {\r\n this.buildLeftOnDetails();\r\n }\r\n }\r\n\r\n buildLeftOnDetails() {\r\n this.leftOnLink = \"\";\r\n this.leftOnText = \"\";\r\n\r\n if (this.data.PageTitle !== null && this.currentAssetId !== this.data.AssetId) {\r\n this.leftOnText = this._feedbackHelper.getLeftOnString(this.data.PageTitle);\r\n\r\n if (this.data.MainAssetId !== undefined && this.data.MainAssetId !== null) {\r\n this.leftOnLink = this._generateLeftOnLink();\r\n }\r\n }\r\n\r\n if (this.data.WorkspaceName !== null || this.data.AssignmentName !== null) {\r\n this.leftOnOrigin = this._feedbackHelper.getLeftOnOriginString(this.data.WorkspaceName, this.data.AssignmentName);\r\n }\r\n }\r\n\r\n _generateLeftOnLink() {\r\n const applicableId = this.data.LinkedAsset ? this.data.AssetId : this.data.MainAssetId;\r\n let url = this._feedbackHelper.getLeftOnRelativeLink(applicableId, this.data.PageId, this.data.ForwardingTimeslice);\r\n return this._requiresMappingParameters(this.feedbackType) ? this.urlService.addParameters(url, [{ key: \"mapping\", value: true }]) : url;\r\n }\r\n\r\n _requiresMappingParameters(feedbackType) {\r\n return feedbackType === this.ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVALCOLLECTION;\r\n }\r\n}\r\n\r\nexport const feedbackLeftOnDefinition = {\r\n bindings: {\r\n data: \"<\",\r\n currentAssetId: \"<\",\r\n feedbackType: \"@\"\r\n },\r\n template: template,\r\n controller: FeedbackLeftOn\r\n};\r\n\r\nFeedbackLeftOn.$inject = [\"feedbackHelper\", \"urlService\"];\r\nangularAMD.component(\"feedbackLeftOn\", feedbackLeftOnDefinition);\r\n","export default `{{$ctrl.leftOnText}} {{$ctrl.leftOnText}} {{::$ctrl.leftOnOrigin}}`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./feedback-info-wrapper.html\";\r\nimport \"./feedbackInfoWrapper.service\";\r\nimport \"../../feedback/feedbackComponents/feedbackLeftOn/feedbackLeftOn.component\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\n\r\nclass FeedbackInfoWrapper extends NgComponent {\r\n constructor(feedbackInfoWrapperService, multiLanguageService) {\r\n super();\r\n\r\n this.feedbackInfoWrapperService = feedbackInfoWrapperService;\r\n this.multiLanguageService = multiLanguageService;\r\n this.feedbackType = null;\r\n this.infoViewModel = null;\r\n }\r\n\r\n $onInit() {\r\n this.infoViewModel = this.feedbackInfoWrapperService.getInfoModel(this.feedback);\r\n this.feedbackType = this.feedback.FeedbackType;\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.feedback !== undefined && !changes.feedback.isFirstChange()) {\r\n this.infoViewModel = this.feedbackInfoWrapperService.getInfoModel(this.feedback);\r\n }\r\n }\r\n}\r\n\r\nexport const feedbackInfoWrapper = {\r\n bindings: {\r\n feedback: \"<\",\r\n currentAssetId: \"<\"\r\n },\r\n template: template,\r\n controller: FeedbackInfoWrapper\r\n};\r\n\r\nFeedbackInfoWrapper.$inject = [\"feedbackInfoWrapperService\", \"multiLanguageService\"];\r\nangularAMD.component(\"feedbackInfoWrapper\", feedbackInfoWrapper);\r\n","export default `

{{::$ctrl.infoViewModel.title}}

{{::$ctrl.multiLanguageService.getString('sidebar.asset_feedback.labels.left_at', { time: ($ctrl.infoViewModel.timeStamp | pebbleDate : 'timeOnly'), date: ($ctrl.infoViewModel.timeStamp | pebbleDate)})}}

`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../../react2angular/StaticLabel\";\r\nimport \"../../../../multiLanguageService/multiLanguageService\";\r\nimport template from \"./scorecard-view.html\";\r\n\r\nclass ScorecardViewComponent extends NgComponent {\r\n constructor(multiLanguageService) {\r\n super();\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n this.totalScoreForView = \"--\";\r\n this.labelDataHook = \"scorecard-type-label\";\r\n }\r\n\r\n $onInit() {\r\n if (this.feedback.TotalScore !== null) {\r\n this.totalScoreForView = this.feedback.Weighted === true ? this._formatScore(this.feedback.TotalScore) : this.feedback.TotalScore;\r\n }\r\n }\r\n\r\n _formatScore(score) {\r\n return Number(score / 100).toLocaleString(undefined, { style: \"percent\" });\r\n }\r\n}\r\n\r\nvar scorecardViewDefinition = {\r\n bindings: {\r\n feedback: \"<\"\r\n },\r\n template: template,\r\n controller: ScorecardViewComponent\r\n};\r\n\r\nScorecardViewComponent.$inject = [\"multiLanguageService\"];\r\nangularAMD.component(\"scorecardView\", scorecardViewDefinition);\r\nexport { scorecardViewDefinition as scorecardView };\r\n","export default `

{{::$ctrl.feedback.Weighted ? $ctrl.multiLanguageService.getString('sidebar.asset_feedback.labels.weighted_title', { title: score.Title, weighting: score.Weighting }) : score.Title}}

{{::score.Score || \"--\"}}

{{::$ctrl.feedback.Weighted ? $ctrl.multiLanguageService.getString('sidebar.asset_feedback.labels.total_weighted_score') : $ctrl.multiLanguageService.getString('sidebar.asset_feedback.labels.total_score')}} {{::$ctrl.totalScoreForView}}
{{::$ctrl.multiLanguageService.getString('atlas_sidebar.feedback_types.grade.title')}} {{::$ctrl.feedback.Grade}}
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./scorecard-edit.html\";\r\nimport \"../../../../numberPicker/numberPicker\";\r\nimport \"../../../../utilities/debounce.service\";\r\nimport \"../../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../../spaMenu/assetInfoPanel/assetFeedback/helpers/SubmissionPermissionHelper\";\r\n\r\nclass ScorecardEditComponent extends NgComponent {\r\n constructor(multiLanguageService, $scope, debounce, SubmissionPermissionHelper) {\r\n super();\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n this._$scope = $scope;\r\n this._debounce = debounce;\r\n this._submissionPermissionHelper = SubmissionPermissionHelper;\r\n\r\n this.feedbackModel = { ...this.feedback };\r\n }\r\n\r\n $onInit() {\r\n this._$scope.$emit(\"feedbackInProgress\", { id: this._$scope.$id, feedbackInProgress: true });\r\n\r\n if (this.data === undefined) {\r\n this.data = this._submissionPermissionHelper.getScorecardSettings();\r\n }\r\n\r\n this.numberPickerSettings = {\r\n decimalPlaces: 0,\r\n max: 100,\r\n min: 0,\r\n value: 0,\r\n eventId: \"\",\r\n ariaLabel: this.multiLanguageService.getString(\"sidebar.asset_feedback.labels.score\"),\r\n hideClearBtn: true,\r\n onValueChange: null\r\n };\r\n\r\n this.scores = this.feedbackModel.Scores.map((score) => {\r\n const debouncer = this._debounce.fn(this.onValueChange, this, 300);\r\n const settings = [{ ...this.numberPickerSettings }];\r\n settings[0].value = score.Score;\r\n settings[0].onValueChange = debouncer.run.bind(debouncer);\r\n return { ...score, Settings: settings };\r\n });\r\n\r\n this._calculateTotal();\r\n }\r\n\r\n $onDestroy() {\r\n this._$scope.$emit(\"feedbackInProgress\", { id: this._$scope.$id, feedbackInProgress: false });\r\n }\r\n\r\n onValueChange(value, scoreId) {\r\n const score = this.scores.find((x) => x.ScorecardTemplateComponentId === scoreId);\r\n score.Score = value;\r\n this._calculateTotal();\r\n this._updateFeedback();\r\n }\r\n\r\n onGradeChanged() {\r\n this._updateFeedback();\r\n }\r\n\r\n _calculateTotal() {\r\n this.feedbackModel.TotalScore = null;\r\n if (this.feedbackModel.Weighted === true) {\r\n if (this.scores.every((x) => x.Score !== \"\" && x.Score !== null)) {\r\n const calculatedScore = this.scores.reduce((total, score) => {\r\n return total + (score.Weighting / 100) * score.Score;\r\n }, 0);\r\n this.feedbackModel.TotalScore = calculatedScore;\r\n this.totalScoreForView = this._formatScore(this.feedbackModel.TotalScore);\r\n }\r\n } else {\r\n const sumOfScores = this.scores.reduce((total, score) => {\r\n return total + Number(score.Score);\r\n }, 0);\r\n this.feedbackModel.TotalScore = sumOfScores;\r\n this.totalScoreForView = sumOfScores.toString();\r\n }\r\n\r\n if (this.feedbackModel.TotalScore === null) {\r\n this.totalScoreForView = \"--\";\r\n }\r\n }\r\n\r\n _formatScore(score) {\r\n return Number(score / 100).toLocaleString(undefined, { style: \"percent\" });\r\n }\r\n\r\n _updateFeedback() {\r\n if (this.onChange !== undefined) {\r\n this.onChange({\r\n Scores: this.scores,\r\n TotalScore: this.feedbackModel.TotalScore,\r\n Grade: this.feedbackModel.Grade\r\n });\r\n }\r\n }\r\n}\r\n\r\nvar scorecardEditDefinition = {\r\n bindings: {\r\n feedback: \"<\",\r\n data: \"

{{::$ctrl.data.isWeighted ? $ctrl.multiLanguageService.getString('sidebar.asset_feedback.labels.weighted_title', { title: score.Title, weighting: score.Weighting }) : score.Title}}

{{::$ctrl.feedbackModel.Weighted ? $ctrl.multiLanguageService.getString('sidebar.asset_feedback.labels.total_weighted_score') : $ctrl.multiLanguageService.getString('sidebar.asset_feedback.labels.total_score')}} {{$ctrl.totalScoreForView}}
{{::$ctrl.multiLanguageService.getString('sidebar.asset_feedback.labels.additional_grade')}}
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { ACTION_CONSTANTS } from \"../../../constants/action.constants\";\r\nimport \"../../../spaMenu/assetInfoPanel/assetFeedback/helpers/FeedbackHelper\";\r\nimport \"./scorecardView/scorecardView.component\";\r\nimport \"./scorecardEdit/scorecardEdit.component\";\r\nimport template from \"./scorecard.html\";\r\n\r\nclass ScorecardComponent extends NgComponent {\r\n constructor(feedbackHelper) {\r\n super();\r\n\r\n this.ACTION_CONSTANTS = ACTION_CONSTANTS;\r\n this._feedbackHelper = feedbackHelper;\r\n\r\n this._saveData = null;\r\n this.onUpdateFeedback = this._updateFeedback.bind(this);\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.mode !== undefined && changes.mode.currentValue === ACTION_CONSTANTS.EDIT) {\r\n this._saveData = {\r\n Scores: [...this.feedback.Scores],\r\n TotalScore: this.feedback.TotalScore,\r\n Grade: this.feedback.Grade\r\n };\r\n }\r\n }\r\n _updateFeedback(changes) {\r\n Object.assign(this._saveData, changes);\r\n this._validation = this._feedbackHelper.getScorecardValidation(this._saveData);\r\n\r\n if (this.onEdit !== undefined) {\r\n this.onEdit({\r\n validation: this._validation,\r\n changes: { Scores: this._saveData.Scores, TotalScore: this._saveData.TotalScore, Grade: this._saveData.Grade }\r\n });\r\n }\r\n }\r\n}\r\n\r\nvar scorecardDefinition = {\r\n bindings: {\r\n feedback: \"<\",\r\n onEdit: \"&?\",\r\n mode: \"<\"\r\n },\r\n template: template,\r\n controller: ScorecardComponent\r\n};\r\n\r\nScorecardComponent.$inject = [\"feedbackHelper\"];\r\nangularAMD.component(\"scorecard\", scorecardDefinition);\r\nexport { scorecardDefinition as scorecard };\r\n","export default ` `;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { ACTION_CONSTANTS } from \"../../../constants/action.constants\";\r\nimport \"../feedbackText/feedbackText.component\";\r\nimport \"../../../feedbackCommentsEditor/feedbackCommentsEditor\";\r\nimport \"../../../spaMenu/assetInfoPanel/assetFeedback/helpers/FeedbackHelper\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport template from \"./feedback.html\";\r\n\r\nclass FeedbackComponent extends NgComponent {\r\n constructor(feedbackHelper, multiLanguageService) {\r\n super();\r\n\r\n this.ACTION_CONSTANTS = ACTION_CONSTANTS;\r\n this._feedbackHelper = feedbackHelper;\r\n this.richTextAutoFocus = true;\r\n this.richTextEditorClass = \"rich-text-comment-box\";\r\n this.richTextEditorDataHook = \"edit-feedback-body\";\r\n this._feedbackComment = \"\";\r\n this._validation = null;\r\n this.onFeedbackChange = this._editFeedback.bind(this);\r\n this.editorPlaceholder = \"\";\r\n this.editorLabel = multiLanguageService.getString(\"atlas_sidebar.feedback.feedback_editor\");\r\n }\r\n\r\n $onChanges(changes) {\r\n const isEditMode = this._isEditMode(changes);\r\n\r\n if (this._changesRequireValidation(changes) || isEditMode) {\r\n this._updateValidation();\r\n\r\n this.onEdit({\r\n validation: this._validation,\r\n changes: isEditMode ? { Comment: this._feedbackComment } : null\r\n });\r\n }\r\n }\r\n\r\n _changesRequireValidation(changes) {\r\n return changes.mode === undefined && (changes.attachments !== undefined || changes.templates !== undefined);\r\n }\r\n\r\n _editFeedback(content) {\r\n this._feedbackComment = content;\r\n this._updateValidation();\r\n\r\n this.onEdit({\r\n validation: this._validation,\r\n changes: { Comment: this._feedbackComment }\r\n });\r\n }\r\n\r\n _isEditMode(changes) {\r\n return changes.mode !== undefined && changes.mode.currentValue === this.ACTION_CONSTANTS.EDIT;\r\n }\r\n\r\n _updateValidation() {\r\n this._validation = this._feedbackHelper.getFeedbackValidation(this._feedbackComment, this.attachments, this.templates);\r\n }\r\n}\r\n\r\nconst feedbackDefinition = {\r\n bindings: {\r\n comment: \"<\",\r\n attachments: \"<\",\r\n templates: \"<\",\r\n mode: \"<\",\r\n onEdit: \"&\",\r\n feedbackStatements: \"<\"\r\n },\r\n template: template,\r\n controller: FeedbackComponent\r\n};\r\n\r\nFeedbackComponent.$inject = [\"feedbackHelper\", \"multiLanguageService\"];\r\nangularAMD.component(\"feedback\", feedbackDefinition);\r\nexport { feedbackDefinition as feedback };\r\n","export default `
`;","import { approvalPositiveIcon } from \"@pjs/core-ui\";\r\nimport { INoticeType } from \"@pjs/core-ui\";\r\n\r\nexport const approvalPositive: INoticeType = {\r\n colour: \"#008540\",\r\n icon: approvalPositiveIcon\r\n};\r\n","import { approvalNegativeIcon } from \"@pjs/core-ui\";\r\nimport { INoticeType } from \"@pjs/core-ui\";\r\n\r\nexport const approvalNegative: INoticeType = {\r\n colour: \"#B40000\",\r\n icon: approvalNegativeIcon\r\n};\r\n","import { approvalNeutralIcon } from \"@pjs/core-ui\";\r\nimport { INoticeType } from \"@pjs/core-ui\";\r\n\r\nexport const approvalNeutral: INoticeType = {\r\n colour: \"#D04010\",\r\n icon: approvalNeutralIcon\r\n};\r\n","import { ApprovalStatus } from \"../enums/ApprovalStatus\";\r\n\r\nexport const approvalStatusMap = {\r\n [ApprovalStatus.Negative]: \"accessibility.notice.labels.approvals.negative\",\r\n [ApprovalStatus.Neutral]: \"accessibility.notice.labels.approvals.neutral\",\r\n [ApprovalStatus.Positive]: \"accessibility.notice.labels.approvals.positive\"\r\n} as const;\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.fbk-approval-view-base__feedback{margin-top:var(--layout-margin-between-content-sections);line-height:var(--font-line-height-body);overflow-wrap:break-word}.fbk-approval-view-base__header{margin-bottom:var(--layout-margin-between-content-sections);align-items:center;display:flex}`);","import { FunctionComponent } from \"react\";\r\nimport { RichTextView } from \"@pjs/rich-text\";\r\nimport { feedbackI18n } from \"../../i18n/FeedbackI18n.const\";\r\nimport { approvalStatusMap } from \"../consts/ApprovalMap\";\r\nimport { FeedbackNotice } from \"../../feedback-notice/FeedbackNotice.component\";\r\nimport { IApprovalViewBaseProps } from \"./interfaces/IApprovalViewBaseProps\";\r\nimport \"./styles/approval-view-base.css\";\r\n\r\nexport const ApprovalViewBase: FunctionComponent = (props) => {\r\n const noticeLabel = feedbackI18n.getString(approvalStatusMap[props.statusNotice.status]);\r\n\r\n return (\r\n
\r\n
\r\n {props.header}\r\n
\r\n \r\n {props.feedback !== \"\" && }\r\n
\r\n );\r\n};\r\n","import { ApprovalView } from \"@pjs/feedback\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nangularAMD.component(\"approvalView\", react2angular(ApprovalView, [\"feedback\", \"labelText\", \"statusNotice\"]));\r\n","import { FunctionComponent } from \"react\";\r\nimport { StaticLabel } from \"@pjs/core-ui\";\r\nimport { ApprovalViewBase } from \"../approval-view-base/ApprovalViewBase.component\";\r\nimport { IApprovalViewProps } from \"./interfaces/IApprovalViewProps\";\r\n\r\nexport const ApprovalView: FunctionComponent = (props) => {\r\n return } />;\r\n};\r\n","import { Component, ReactNode } from \"react\";\r\nimport { approvalNegativeIcon, approvalNeutralIcon, approvalPositiveIcon, IconOption, IIcon, IIconSelectOption, MenuAriaModel, Select } from \"@pjs/core-ui\";\r\nimport { ApprovalStatus } from \"../enums/ApprovalStatus\";\r\nimport { IApprovalSelectProps } from \"./interfaces/IApprovalSelectProps.interface\";\r\nimport { IApprovalItem } from \"./interfaces/IApprovalItem.interface\";\r\nimport { IApprovalSelectState } from \"./interfaces/IApprovalSelectState.interface\";\r\n\r\nexport class ApprovalSelect extends Component {\r\n public renderOption: (item: IApprovalItem) => JSX.Element;\r\n\r\n private readonly _modelChangedBound: (model: MenuAriaModel) => void = this._handleModelChanged.bind(this);\r\n\r\n private readonly _approvalIcons: { [type in ApprovalStatus]: { icon: IIcon; fill: string } } = {\r\n [ApprovalStatus.Positive]: {\r\n fill: \"#008540\",\r\n icon: approvalPositiveIcon\r\n },\r\n [ApprovalStatus.Neutral]: {\r\n fill: \"#D04010\",\r\n icon: approvalNeutralIcon\r\n },\r\n [ApprovalStatus.Negative]: {\r\n fill: \"#B40000\",\r\n icon: approvalNegativeIcon\r\n }\r\n };\r\n\r\n constructor(props: IApprovalSelectProps) {\r\n super(props);\r\n\r\n this.renderOption = this._renderOption.bind(this);\r\n this.state = {\r\n model: this.props.initialModel\r\n };\r\n }\r\n\r\n public render(): ReactNode {\r\n return (\r\n
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { ACTION_CONSTANTS } from \"../../../constants/action.constants\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../spaMenu/assetInfoPanel/assetFeedback/helpers/FeedbackHelper\";\r\nimport \"../../../numberPicker/numberPicker\";\r\nimport template from \"./grade-numeric.html\";\r\n\r\nclass GradeNumericComponent extends NgComponent {\r\n constructor(multiLanguageService, feedbackHelper) {\r\n super();\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n this._feedbackHelper = feedbackHelper;\r\n this.ACTION_CONSTANTS = ACTION_CONSTANTS;\r\n\r\n this.numberPickerField = {\r\n decimalPlaces: 0,\r\n max: 100,\r\n min: 0,\r\n value: this.grade,\r\n eventId: \"\",\r\n hideClearBtn: true,\r\n ariaLabel: this.multiLanguageService.getString(\"atlas_sidebar.a11y.grade_input_edit\"),\r\n onValueChange: this.editNumericGrade.bind(this)\r\n };\r\n }\r\n\r\n $onChanges() {\r\n this.numberPickerField.value = this.grade;\r\n }\r\n\r\n editNumericGrade(newGrade) {\r\n const validation = this._feedbackHelper.getGradeValidation(newGrade);\r\n\r\n this.onEdit({\r\n validation: validation,\r\n changes: { Grade: newGrade }\r\n });\r\n }\r\n}\r\n\r\nconst gradeNumericDefinition = {\r\n bindings: {\r\n grade: \"<\",\r\n mode: \"<\",\r\n onEdit: \"&\"\r\n },\r\n template: template,\r\n controller: GradeNumericComponent\r\n};\r\n\r\nGradeNumericComponent.$inject = [\"multiLanguageService\", \"feedbackHelper\"];\r\nangularAMD.component(\"gradeNumeric\", gradeNumericDefinition);\r\nexport { gradeNumericDefinition as gradeNumeric };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./manage-attachments.html\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../assetSelector/assetSelector.service\";\r\nimport \"../autoFocus/autoFocus.directive\";\r\nimport \"../user/user.service\";\r\nimport \"../react2angular/assetIcon\";\r\nimport { listIcon, gridIcon } from \"@pjs/core-ui\";\r\n\r\nvar manageAttachmentsDefinition = {\r\n bindings: {\r\n attachments: \"<\",\r\n onChange: \"&\"\r\n },\r\n template: template,\r\n controller: ManageAttachments\r\n};\r\n\r\nManageAttachments.$inject = [\"$rootScope\", \"multiLanguageService\", \"assetSelector\", \"User\"];\r\nfunction ManageAttachments($rootScope, multiLanguageService, assetSelector, User) {\r\n this.eventHandler = $rootScope.$on(\"updateItemsInSelector\", this._addUploadedAttachments.bind(this));\r\n this.$rootScope = $rootScope;\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n this.attachments = this.attachments || [];\r\n this.attachmentItems = null;\r\n this._assetSelector = assetSelector;\r\n this.focusAddAttachments = false;\r\n this.User = User;\r\n}\r\n\r\nManageAttachments.prototype.$onInit = function () {\r\n this.attachmentItems = [...this.attachments];\r\n};\r\n\r\nManageAttachments.prototype.$onChanges = function () {\r\n this.focusAddAttachments = false;\r\n};\r\n\r\nManageAttachments.prototype.select = function () {\r\n if (this.User.isExternal()) {\r\n this.$rootScope.$broadcast(\"openRightHandSidePanel\", {\r\n panel: \"file-upload\",\r\n showTagger: false,\r\n showDescription: false,\r\n panelSettings: {}\r\n });\r\n } else {\r\n this._selectAssets(this.attachmentItems).then(this._handleAttachmentChange.bind(this));\r\n }\r\n};\r\n\r\nManageAttachments.prototype._handleAttachmentChange = function (newAttachments) {\r\n this.focusAddAttachments = true;\r\n\r\n const diff = this._getAttachmentsDiff(this.attachmentItems, newAttachments);\r\n if (diff.added.length === 0 && diff.removed.length === 0) {\r\n return;\r\n }\r\n\r\n if (this.User.isExternal() && diff.added.length > 0) {\r\n this.attachmentItems = this.attachmentItems.concat(diff.added);\r\n } else {\r\n this.attachmentItems = newAttachments;\r\n }\r\n\r\n this.onChange({\r\n attachments: this.attachmentItems,\r\n added: diff.added,\r\n removed: diff.removed\r\n });\r\n};\r\n\r\nManageAttachments.prototype.remove = function (attachment) {\r\n const item = this.attachmentItems.filter(function (item) {\r\n return item.AssetId === attachment.AssetId;\r\n })[0];\r\n\r\n if (!item) {\r\n return;\r\n }\r\n\r\n const index = this.attachmentItems.indexOf(item);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n this.attachmentItems.splice(index, 1);\r\n this.onChange({\r\n attachments: this.attachmentItems,\r\n added: [],\r\n removed: [attachment]\r\n });\r\n};\r\n\r\nManageAttachments.prototype._selectAssets = function (attachments) {\r\n const listView = { id: \"list\", icon: listIcon, ariaLabel: this.multiLanguageService.getString(\"accessibility.spa_menu.selector.listView\") };\r\n const galleryView = { id: \"gallery\", icon: gridIcon, ariaLabel: this.multiLanguageService.getString(\"accessibility.spa_menu.selector.galleryView\") };\r\n\r\n return this._assetSelector\r\n .selectAssets({\r\n mainTypes: [\"File\"],\r\n includeUpload: true,\r\n selectType: \"MainStore\",\r\n selectorViews: [listView, galleryView],\r\n currentlySelectedIds: attachments.map(function (a) {\r\n return a.AssetId;\r\n })\r\n })\r\n .then(\r\n function (assetRefs) {\r\n return assetRefs.map(this._mapItemToAttachment);\r\n }.bind(this)\r\n );\r\n};\r\n\r\nManageAttachments.prototype._getAttachmentsDiff = function (oldAttachments, newAttachments) {\r\n var removed = [];\r\n\r\n if (!this.User.isExternal()) {\r\n removed = oldAttachments.filter(function (attachment) {\r\n return !newAttachments.some(function (newAttachment) {\r\n return newAttachment.AssetId === attachment.AssetId;\r\n });\r\n });\r\n }\r\n\r\n var added = newAttachments.filter(function (attachment) {\r\n return !oldAttachments.some(function (oldAttachment) {\r\n return oldAttachment.AssetId === attachment.AssetId;\r\n });\r\n });\r\n\r\n return {\r\n added: added,\r\n removed: removed\r\n };\r\n};\r\n\r\nManageAttachments.prototype._mapItemToAttachment = function (selectorItem) {\r\n return {\r\n AssetId: selectorItem.Id,\r\n MainType: selectorItem.MainType,\r\n SubType: selectorItem.SubType,\r\n Title: selectorItem.Title\r\n };\r\n};\r\n\r\nManageAttachments.prototype._addUploadedAttachments = function (event, data) {\r\n if (data && data.Items && data.Items.length > 0) {\r\n var mappedAttachments = data.Items.map(this._mapItemToAttachment);\r\n this._handleAttachmentChange(mappedAttachments);\r\n }\r\n};\r\n\r\nManageAttachments.prototype.$onDestroy = function () {\r\n this.eventHandler();\r\n};\r\n\r\nangularAMD.component(\"manageAttachments\", manageAttachmentsDefinition);\r\nexport { manageAttachmentsDefinition as manageAttachments };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../feedback/feedbackUrlService/feedbackUrlService.service\";\r\nimport \"../../react2angular/assetIcon\";\r\nimport template from \"./attachment.html\";\r\n\r\nvar attachmentDefinition = {\r\n bindings: {\r\n item: \"<\",\r\n a11yLabel: \"@\"\r\n },\r\n controller: Attachment,\r\n template: template\r\n};\r\n\r\nAttachment.$inject = [\"multiLanguageService\", \"feedbackUrlService\"];\r\nfunction Attachment(multiLanguageService, feedbackUrlService) {\r\n this.multiLanguageService = multiLanguageService;\r\n this.feedbackUrlService = feedbackUrlService;\r\n\r\n this.url = this.feedbackUrlService.createFeedbackAttachmentUrl(this.item.AssetId, this.item.MainType, true);\r\n this.target = \"_blank\";\r\n}\r\n\r\nangularAMD.component(\"attachment\", attachmentDefinition);\r\n\r\nexport { attachmentDefinition as attachment };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport template from \"./templates/feedback-left-on-choice.html\";\r\n\r\nvar FeedbackLeftOnChoiceComponentDefinition = {\r\n bindings: {\r\n leftOnDetails: \"=\"\r\n },\r\n controller: FeedbackLeftOnChoiceComponent,\r\n template: template\r\n};\r\n\r\nFeedbackLeftOnChoiceComponent.$inject = [\"$rootScope\", \"$routeParams\", \"multiLanguageService\", \"feedbackLeftOnService\"];\r\n\r\nfunction FeedbackLeftOnChoiceComponent($rootScope, $routeParams, multiLanguageService, feedbackLeftOnService) {\r\n this.$rootScope = $rootScope;\r\n this.$routeParams = $routeParams;\r\n this.multiLanguageService = multiLanguageService;\r\n this.feedbackLeftOnService = feedbackLeftOnService;\r\n this.urlChange = null;\r\n this.originalDetailsText = \"\";\r\n this.originalDetails = angular.copy(this.leftOnDetails);\r\n}\r\n\r\nFeedbackLeftOnChoiceComponent.prototype.$onInit = function () {\r\n this._calculateLeftOnChoice();\r\n\r\n this.urlChange = this.$rootScope.$on(\r\n \"$locationChangeSuccess\",\r\n function (event, args) {\r\n this._calculateLeftOnChoice();\r\n }.bind(this)\r\n );\r\n};\r\n\r\nFeedbackLeftOnChoiceComponent.prototype.$onDestroy = function () {\r\n if (this.urlChange !== null) {\r\n this.urlChange();\r\n }\r\n};\r\n\r\nFeedbackLeftOnChoiceComponent.prototype._updateOriginalDetailsText = function () {\r\n this.originalDetailsText = \"\";\r\n\r\n // If viewing a workbook\r\n if (this.$routeParams.pageId !== undefined && this.originalDetails.mainAssetId === this.$routeParams.assetId) {\r\n // and the feedback was left on a page\r\n if (this.originalDetails.pageId !== null) {\r\n // and we are viewing any page other than the one that the feedback was left on\r\n if (this.$routeParams.pageId !== this.originalDetails.pageId) {\r\n this.originalDetailsText = this.multiLanguageService.getString(\"sidebar.asset_feedback.left_on_choice.leave_feedback_on_warning\");\r\n }\r\n }\r\n }\r\n\r\n // If we are looking at linked assets\r\n else if (this.originalDetails.mainAssetId !== this.$routeParams.assetId) {\r\n // And the feedback was not left on the main asset\r\n if (this.originalDetails.feedbackAssetId !== this.originalDetails.mainAssetId) {\r\n // and we are viewing a linked asset that the feedback was not left on\r\n if (this.$routeParams.assetId !== this.originalDetails.feedbackAssetId) {\r\n this.originalDetailsText = this.multiLanguageService.getString(\"sidebar.asset_feedback.left_on_choice.leave_feedback_on_warning\");\r\n }\r\n }\r\n }\r\n};\r\n\r\nFeedbackLeftOnChoiceComponent.prototype._calculateLeftOnChoice = function () {\r\n const leftOnAssetInfo = this.feedbackLeftOnService.getLeftOnAssetInfo(this.$routeParams.assetId, this.$routeParams.pageId);\r\n this.leftOnDetails.leaveFeedbackOnAssetId = leftOnAssetInfo.leaveFeedbackOnAssetId;\r\n this.pageName = leftOnAssetInfo.pageName;\r\n this.containerOrLinkedAsset = leftOnAssetInfo.isContainerAsset || leftOnAssetInfo.isLinkedAsset;\r\n this.hideCheckbox = this.containerOrLinkedAsset && leftOnAssetInfo.leaveFeedbackOnAssetId === \"\";\r\n\r\n if (this.hideCheckbox) {\r\n this.leaveOnMessage = this.multiLanguageService.getString(\"sidebar.asset_feedback.left_on_choice.user_has_not_created\");\r\n } else if (leftOnAssetInfo.isLinkedAsset) {\r\n this.leaveOnMessage = this.multiLanguageService.getString(\"sidebar.asset_feedback.left_on_choice.leave_feedback_on_link\");\r\n } else {\r\n this.leaveOnMessage = this.multiLanguageService.getString(\"sidebar.asset_feedback.left_on_choice.leave_feedback_on_page\");\r\n }\r\n this._updateOriginalDetailsText();\r\n};\r\n\r\nangularAMD.component(\"feedbackLeftOnChoice\", FeedbackLeftOnChoiceComponentDefinition);\r\n\r\nexport { FeedbackLeftOnChoiceComponentDefinition as feedbackLeftOnChoice };\r\n","export default `

{{::$ctrl.multiLanguageService.getString('atlas_sidebar.feedback_types.grade.graded')}}

`;","export default `

{{::attachment.Title}}

`;","export default ` `;","export default `

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSESSMENT_CONSTANTS } from \"../constants/assessment.constants\";\r\nimport { MenuItem } from \"../splitButton/menuItem.js\";\r\nimport \"../spaMenu/assetInfoPanel/assetFeedback/helpers/SubmissionPermissionHelper\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport template from \"./templates/feedback-release.html\";\r\n\r\nconst FeedbackReleaseDefinition = {\r\n bindings: {\r\n onSave: \"&\",\r\n onConfirm: \"&\",\r\n onCancel: \"&\",\r\n disableButtons: \"<\",\r\n releaseSetting: \"<\"\r\n },\r\n template: template,\r\n controller: FeedbackRelease\r\n};\r\n\r\nFeedbackRelease.$inject = [\"multiLanguageService\", \"SubmissionPermissionHelper\"];\r\nfunction FeedbackRelease(multiLanguageService, SubmissionPermissionHelper) {\r\n this.multiLanguageService = multiLanguageService;\r\n this.releaseOpts = this._initReleaseFeedbackOpts();\r\n this.releaseOpts.defaultButton = this._defaultButton();\r\n this.releaseOpts.dropdownMenu = this._dropdownMenu();\r\n}\r\n\r\nFeedbackRelease.prototype._dropdownMenu = function () {\r\n if (this.releaseSetting === ASSESSMENT_CONSTANTS.RELEASE_SETTINGS.DEFAULT_HOLD || this.releaseSetting === ASSESSMENT_CONSTANTS.RELEASE_SETTINGS.DEFAULT_RELEASE) {\r\n return this.releaseOpts.all;\r\n }\r\n return []; // A workspace setting is restricting options given to assessors, so adhere to that restriction and show only the default button\r\n};\r\n\r\nFeedbackRelease.prototype._defaultButton = function () {\r\n return this.releaseOpts[this.releaseSetting] || this.releaseOpts.default;\r\n};\r\n\r\nFeedbackRelease.prototype._initReleaseFeedbackOpts = function () {\r\n //default button needed?\r\n const defaultBtn = new MenuItem({\r\n label: this.multiLanguageService.getString(\"sidebar.asset_feedback.buttons.save_ellipsis\"),\r\n action: null\r\n });\r\n const saveAndHoldBtn = new MenuItem({\r\n label: this.multiLanguageService.getString(\"sidebar.asset_feedback.buttons.save_and_hold\"),\r\n action: this.releaseOrHoldSave.bind(this, false),\r\n dataHook: \"split-btn-secondary\"\r\n });\r\n const saveAndReleaseBtn = new MenuItem({\r\n label: this.multiLanguageService.getString(\"sidebar.asset_feedback.buttons.save_and_release\"),\r\n action: this.releaseOrHoldSave.bind(this, true),\r\n dataHook: \"split-btn-secondary\"\r\n });\r\n // map the button keys to release setting constants\r\n return {\r\n default: defaultBtn,\r\n all: [saveAndHoldBtn, saveAndReleaseBtn],\r\n AlwaysHold: saveAndHoldBtn,\r\n AlwaysRelease: saveAndReleaseBtn,\r\n DefaultHold: saveAndHoldBtn,\r\n DefaultRelease: saveAndReleaseBtn\r\n };\r\n};\r\n\r\nFeedbackRelease.prototype.releaseOrHoldSave = function (released) {\r\n this.onSave({\r\n released: released\r\n });\r\n};\r\n\r\nangularAMD.component(\"feedbackRelease\", FeedbackReleaseDefinition);\r\n\r\nexport { FeedbackReleaseDefinition as feedbackRelease };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"../templates/feedback-input.html\";\r\nimport { ASSESSMENT_CONSTANTS } from \"../../constants/assessment.constants\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport \"../../manageAttachments/manageAttachments.component\";\r\nimport \"../../attachments/attachment/attachment.component\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../feedbackLeftOnChoice/feedbackLeftOnChoice\";\r\nimport \"../../assetSelector/assetSelector.service\";\r\nimport \"../../feedbackRelease/feedbackRelease\";\r\nimport \"./FeedbackInputHelper\";\r\nimport \"../../feedbackLeftOnChoice/feedbackLeftOn.service\";\r\nimport \"../../utilities/escapeHelper.service\";\r\nimport \"../../spaMenu/assetInfoPanel/assetFeedback/helpers/SubmissionPermissionHelper\";\r\n\r\nangularAMD.directive(\"feedbackInput\", FeedbackInput);\r\nFeedbackInput.$inject = [];\r\n\r\nangularAMD.controller(\"FeedbackInputController\", FeedbackInputController);\r\nFeedbackInputController.$inject = [\"$timeout\", \"multiLanguageService\", \"FeedbackInputHelper\", \"assetSelector\", \"feedbackLeftOnService\", \"EscapeHelper\", \"SubmissionPermissionHelper\"];\r\n\r\n//Directive\r\n//==============================================================================================================\r\nfunction FeedbackInput() {\r\n return {\r\n restrict: \"E\",\r\n template: template,\r\n scope: {\r\n feedback: \"<\",\r\n singleLine: \"<\",\r\n allowAttachments: \"<\",\r\n onSubmit: \"&\", //Expects to be called with {body: String, author: String}\r\n onCancel: \"&\", //Expects {active: false}\r\n onChange: \"&\",\r\n feedbackFormat: \"<\",\r\n validation: \"<\",\r\n disableButtons: \"<\",\r\n assetId: \"<\",\r\n pageId: \"<\",\r\n blockTitle: \"<\",\r\n canBeLeftOnPage: \"<\"\r\n },\r\n bindToController: true, //binds directive attributes ($scope values above) directly to the Controller (this.)\r\n controller: \"FeedbackInputController\",\r\n controllerAs: \"$ctrl\",\r\n transclude: true\r\n };\r\n}\r\n\r\n//Controller\r\n//==============================================================================================================\r\nfunction FeedbackInputController($timeout, multiLanguageService, feedbackInputHelper, assetSelector, feedbackLeftOnService, escapeHelper, SubmissionPermissionHelper) {\r\n this.$timeout = $timeout;\r\n this.multiLanguageService = multiLanguageService;\r\n this.feedbackInputHelper = feedbackInputHelper;\r\n this.assetSelector = assetSelector;\r\n this.savingFeedback = false;\r\n this.placeholderText = \"\";\r\n this.feedbackLeftOnService = feedbackLeftOnService;\r\n this.isBlockLevelFeedback = false;\r\n this.isApprovalFeedback = false;\r\n this.leftOnDetails = null;\r\n this._escapeHelper = escapeHelper;\r\n this.blockTitleText = \"\";\r\n this.submissionPermissionHelper = SubmissionPermissionHelper;\r\n this.releaseSetting = this.submissionPermissionHelper.getFeedbackReleaseSetting(this.feedback.FeedbackType);\r\n}\r\n\r\nFeedbackInputController.prototype.$onChanges = function (changes) {\r\n if (changes.feedback !== undefined) {\r\n this._setupLeftOnDetails();\r\n }\r\n\r\n if (changes.blockTitle !== undefined) {\r\n this.blockTitleText = this.multiLanguageService.getString(\"sidebar.asset_feedback.left_on_choice.leave_feedback_on_block\", { title: this._escapeHelper.convertHTMLChars(this.blockTitle) });\r\n }\r\n};\r\n\r\nFeedbackInputController.prototype._setupLeftOnDetails = function () {\r\n this.isBlockLevelFeedback = this.feedback.AnchorId !== null;\r\n this.isApprovalFeedback = this.feedback.FeedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.CAPABILITY;\r\n\r\n if (this.canBeLeftOnPage === false) {\r\n this.leftOnDetails = {\r\n leaveFeedbackOnPage: false\r\n };\r\n return;\r\n }\r\n\r\n this.leftOnDetails = {\r\n leaveFeedbackOnPage: this.isBlockLevelFeedback,\r\n leaveFeedbackOnAssetId: this.feedbackLeftOnService.getLeftOnAssetInfo(this.assetId, this.pageId, this.feedback.AnchorId).leaveFeedbackOnAssetId\r\n };\r\n};\r\n\r\nFeedbackInputController.prototype.validateThenSubmit = function (released) {\r\n if (this._validate()) {\r\n this.savingFeedback = true;\r\n this._submit(released);\r\n }\r\n};\r\n\r\nFeedbackInputController.prototype._validate = function () {\r\n if (this.validation === undefined || this.validation.valid) {\r\n return true;\r\n }\r\n\r\n this.feedbackInputHelper.launchInvalidModal(this.validation.message, this.multiLanguageService.getString(\"sidebar.asset_feedback.blank_feedback_title\"));\r\n return false;\r\n};\r\n\r\nFeedbackInputController.prototype._submit = function (released) {\r\n let leaveOnPageOrLinkedAssetId = \"\";\r\n\r\n tracker.trackEvent(\"Feedback\", \"Add feedback\", `${this.feedback.FeedbackType} ${this.isBlockLevelFeedback ? \"on block\" : \"\"}`);\r\n\r\n if (this.leftOnDetails.leaveFeedbackOnPage === true && this.leftOnDetails.leaveFeedbackOnAssetId !== \"\") {\r\n leaveOnPageOrLinkedAssetId = this.leftOnDetails.leaveFeedbackOnAssetId;\r\n }\r\n\r\n this.feedback.Released = released;\r\n\r\n if (leaveOnPageOrLinkedAssetId !== \"\") {\r\n this.feedback.AssetId = leaveOnPageOrLinkedAssetId;\r\n }\r\n\r\n this.onSubmit({ feedback: this.feedback })\r\n .catch(angular.noop)\r\n .finally(() => {\r\n this.savingFeedback = false;\r\n });\r\n};\r\n\r\nFeedbackInputController.prototype.cancelEdit = function () {\r\n const feedbackHasCommentsOrAttachments = this.feedback.Comment !== \"\" || this.feedback.Attachments.length > 0;\r\n feedbackHasCommentsOrAttachments ? this.feedbackInputHelper.launchCancelModal(this.cancel.bind(this)) : this.cancel();\r\n};\r\n\r\nFeedbackInputController.prototype.cancel = function () {\r\n this.onCancel({ active: false });\r\n};\r\n\r\n/**\r\n * Update feedback attachments\r\n *\r\n * @param attachments\r\n * @param added\r\n * @param removed\r\n */\r\nFeedbackInputController.prototype.updateAttachments = function (attachments, added, removed) {\r\n this.feedback.Attachments = attachments;\r\n\r\n /* call change event on parent component */\r\n this.onChange();\r\n};\r\n","export default `

{{::$ctrl.multiLanguageService.getString('loading_spinner.saving')}}

`;","export default `
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../spaMenu/assetInfoPanel/assetFeedback/assetFeedbackService\";\r\nimport \"../../user/user.service\";\r\nimport \"../../builder/dataManager/helperService\";\r\n\r\nclass ReplyDataService {\r\n constructor(assetFeedbackService, User, helperService, $sce) {\r\n this._assetFeedbackService = assetFeedbackService;\r\n this._user = User;\r\n this._helperService = helperService;\r\n this._$sce = $sce;\r\n }\r\n\r\n addNewReply(body, author, parentId, assetId, anchorId) {\r\n const replyDto = this._createInsertModel(null, body, parentId, author || this._user.getFullName(), assetId, anchorId);\r\n return this._assetFeedbackService.addNewOrUpdateReplyToFeedback(replyDto);\r\n }\r\n\r\n updateReply(dto, id, anchorId) {\r\n const replyDto = this._createUpdateModel(dto, id, anchorId);\r\n return this._assetFeedbackService.addNewOrUpdateReplyToFeedback(replyDto);\r\n }\r\n\r\n deleteReply(dto) {\r\n return this._assetFeedbackService.deleteReplyToFeedback(dto);\r\n }\r\n\r\n _createUpdateModel(dto, parentId, anchorId) {\r\n return {\r\n AssetId: dto.AssetId,\r\n Id: dto.Id,\r\n Body: dto.Body,\r\n ParentId: parentId,\r\n AnchorId: anchorId\r\n };\r\n }\r\n\r\n _createInsertModel(id, bodyText, parentId, posterName, assetId, anchorId) {\r\n return {\r\n AnchorId: anchorId || \"\",\r\n AssetId: assetId || \"\",\r\n Body: bodyText ? this._$sce.trustAsHtml(bodyText).toString() : \"\",\r\n Id: id || this._helperService.guid(),\r\n ParentId: parentId ? parentId : \"\",\r\n PosterName: posterName ? this._$sce.trustAsHtml(posterName).toString() : \"\"\r\n };\r\n }\r\n}\r\n\r\nReplyDataService.$inject = [\"assetFeedbackService\", \"User\", \"helperService\", \"$sce\"];\r\nangularAMD.service(\"replyDataService\", ReplyDataService);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./attachment/attachment.component\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport template from \"./attachments.html\";\r\n\r\nvar attachmentsDefinition = {\r\n bindings: {\r\n items: \"<\"\r\n },\r\n controller: Attachments,\r\n template: template\r\n};\r\n\r\nAttachments.$inject = [\"multiLanguageService\"];\r\nfunction Attachments(multiLanguageService) {\r\n this.multiLanguageService = multiLanguageService;\r\n}\r\n\r\nangularAMD.component(\"attachments\", attachmentsDefinition);\r\n\r\nexport { attachmentsDefinition as attachments };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nclass FeedbackSettingsServiceProvider {\r\n constructor() {\r\n this.config = {\r\n showModifiedTooltip: true,\r\n showActions: true\r\n };\r\n }\r\n\r\n $get() {\r\n return { config: this.config };\r\n }\r\n}\r\n\r\nangularAMD.provider(\"feedbackSettingsService\", FeedbackSettingsServiceProvider);\r\nexport { FeedbackSettingsServiceProvider as feedbackSettingsService };\r\n","export default ``;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./jump-to-button.html\";\r\nimport \"../../utilities/scrollToElement.service\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\n\r\nclass JumpToButtonComponent extends NgComponent {\r\n constructor(multiLanguageService, scrollToElementService) {\r\n super();\r\n\r\n this._scrollToElementService = scrollToElementService;\r\n this.jumpToText = multiLanguageService.getString(\"labels.canvas.feedback_jump_to\");\r\n this.jumpToDataHook = this.feedback.AnchorId !== null ? `jump-to-${this.feedback.AnchorId}` : \"\";\r\n }\r\n\r\n jumpToBlock() {\r\n const targetPageId = this.feedback.LeftOn.PageId;\r\n const targetAssetId = this.feedback.AssetId;\r\n\r\n if (targetPageId !== null && targetPageId !== this.currentPageId) {\r\n this._scrollToElementService.goToElementWithPageId(`Element${this.feedback.AnchorId}`, targetPageId);\r\n this.updateQueryStringParam(\"pageId\", targetPageId);\r\n return;\r\n } else if (this.feedback.LeftOn.LinkedAsset && targetAssetId !== this.assetId) {\r\n this._scrollToElementService.goToElementWithAssetId(`Element${this.feedback.AnchorId}`, targetAssetId);\r\n this.updateRoute(targetAssetId);\r\n return;\r\n }\r\n this._scrollToElementService.goToElement(`Element${this.feedback.AnchorId}`);\r\n }\r\n}\r\n\r\nexport const jumpToButtonComponentDefinition = {\r\n bindings: {\r\n feedback: \"<\",\r\n updateRoute: \"<\",\r\n updateQueryStringParam: \"<\",\r\n assetId: \"<\",\r\n currentPageId: \"<\"\r\n },\r\n template: template,\r\n controller: JumpToButtonComponent\r\n};\r\n\r\nJumpToButtonComponent.$inject = [\"multiLanguageService\", \"scrollToElementService\"];\r\nangularAMD.component(\"jumpToButton\", jumpToButtonComponentDefinition);\r\n","export default ``;","export const apiConfig = {\r\n getFeedbackStatements: (submissionId: number): string => {\r\n throw new Error(`getFeedbackStatements api request URL not implemented to accept an id like ${submissionId}`);\r\n }\r\n};\r\n","import { htmlStringToPlainText } from \"@pjs/security\";\r\nimport { PascalToCamel } from \"@pjs/http\";\r\nimport { FeedbackStatementsList } from \"./types/FeedbackStatementsList\";\r\nimport { FeedbackStatementsApiResponse } from \"./types/FeedbackStatementsApiResponse\";\r\nimport { IFeedbackStatementsGroupItem } from \"./interfaces/IFeedbackStatementsGroupItem\";\r\n\r\nconst mapStatementStrings = (statementStrings: Array): Array => {\r\n return statementStrings.map((statement) => {\r\n return {\r\n htmlValue: statement,\r\n value: htmlStringToPlainText(statement)\r\n };\r\n });\r\n};\r\n\r\nexport const mapFeedbackStatements = (feedbackStatements: PascalToCamel): FeedbackStatementsList => {\r\n return feedbackStatements.map((serverModel) => {\r\n return {\r\n items: mapStatementStrings(serverModel.statements),\r\n title: serverModel.name\r\n };\r\n });\r\n};\r\n","import { fromPascalToCamel, httpService, IResponseError, WebRequestFactory } from \"@pjs/http\";\r\nimport { Observable } from \"@pjs/observables\";\r\nimport { apiConfig } from \"../../../ApiConfig\";\r\nimport { mapFeedbackStatements } from \"../../mappers/feedbackStatementsMapper/feedbackStatementsMapper.function\";\r\nimport { FeedbackStatementsList } from \"../../mappers/feedbackStatementsMapper/types/FeedbackStatementsList\";\r\nimport { FeedbackStatementsApiResponse } from \"../../mappers/feedbackStatementsMapper/types/FeedbackStatementsApiResponse\";\r\n\r\nconst request = WebRequestFactory.createGet({\r\n errorMapper: (errorResponse: Response) => Promise.resolve({ code: errorResponse.status.toString(), headers: errorResponse.headers }),\r\n http: httpService,\r\n responseMapper: fromPascalToCamel(mapFeedbackStatements),\r\n url: (params) => apiConfig.getFeedbackStatements(params.submissionId)\r\n});\r\n\r\nexport const getFeedbackStatements = (submissionId: number): Observable => {\r\n return request({ submissionId: submissionId });\r\n};\r\n","import { Observable, of, share, tap } from \"@pjs/observables\";\r\nimport { FeedbackStatementsList } from \"../../mappers/feedbackStatementsMapper/types/FeedbackStatementsList\";\r\nimport { getFeedbackStatements } from \"../functions/getFeedbackStatementsRequest.function\";\r\n\r\nexport class StatementCollection {\r\n private readonly _statementCache: Map = new Map();\r\n\r\n public getStatements(submissionId: number): Observable {\r\n const statements = this._statementCache.get(submissionId);\r\n\r\n return statements !== undefined ? of(statements) : this._fetchStatementsForSubmission(submissionId);\r\n }\r\n\r\n public removeStatements(submissionId: number): void {\r\n this._statementCache.delete(submissionId);\r\n }\r\n\r\n public clearCache(): void {\r\n this._statementCache.clear();\r\n }\r\n\r\n private _fetchStatementsForSubmission(submissionId: number): Observable {\r\n const request = getFeedbackStatements(submissionId);\r\n\r\n return request.pipe(\r\n tap((statements) => {\r\n this._statementCache.set(submissionId, statements);\r\n }),\r\n share()\r\n );\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { StatementCollection } from \"@pjs/feedback\";\r\n\r\nangularAMD.factory(\"statementCollectionCache\", [\r\n \"$rootScope\",\r\n ($rootScope) => {\r\n const statementCollection = new StatementCollection();\r\n\r\n $rootScope.$on(\"$routeChangeSuccess\", (event, currentRoute, previousRoute) => {\r\n if (previousRoute !== undefined) {\r\n const submissionId = Number(previousRoute.params.submissionId);\r\n statementCollection.removeStatements(submissionId);\r\n }\r\n });\r\n\r\n return statementCollection;\r\n }\r\n]);\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { createAsyncModelError, createAsyncModelPending, createAsyncModelResult } from \"@pjs/utilities\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSESSMENT_CONSTANTS } from \"../../constants/assessment.constants\";\r\nimport { ACTION_CONSTANTS } from \"../../constants/action.constants\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport template from \"./feedback-wrapper.html\";\r\nimport \"../../feedback/feedbackComponents/approvalCollection/approvalCollection.component\";\r\nimport \"../../feedback/feedbackComponents/feedbackTemplate/feedbackTemplate.component\";\r\nimport \"../../react2angular/verificationView\";\r\nimport \"../../feedback/feedbackComponents/similarityScore/similarityScore.component\";\r\nimport \"../../feedback/feedbackComponents/releaseStatus/releaseStatus.component\";\r\nimport \"../../feedback/feedbackComponents/assessorField/assessorField.component\";\r\nimport \"../../feedback/feedbackComponents/certificate/certificate.component\";\r\nimport \"../../feedback/feedbackInfoWrapper/feedbackInfoWrapper.component\";\r\nimport \"../../feedback/feedbackComponents/scorecard/scorecard.component\";\r\nimport \"../../feedback/feedbackDataService/feedbackDataService.service\";\r\nimport \"../../spaMenu/assetInfoPanel/assetFeedback/helpers/FeedbackHelper\";\r\nimport \"../../feedback/feedbackComponents/feedback/feedback.component\";\r\nimport \"../feedbackComponents/approval/approval.component\";\r\nimport \"../feedbackComponents/capabilityApproval/capabilityApproval.component\";\r\nimport \"../../feedback/feedbackComponents/default/default.component\";\r\nimport \"../../feedback/feedbackComponents/grade/grade.component\";\r\nimport \"../../feedback/feedbackComponents/gradeNumeric/gradeNumeric.component\";\r\nimport \"../../feedbackInput/directives/feedbackInput.directive\";\r\nimport \"../../reply/replyDataService/replyDataService.service\";\r\nimport \"../feedbackSettingsProvider/feedbackSettings.provider\";\r\nimport \"../../manageAttachments/manageAttachments.component\";\r\nimport \"../../feedbackInput/directives/FeedbackInputHelper\";\r\nimport \"../../dropdownWrapper/dropdownWrapper.component\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../feedbackLeftOnChoice/feedbackLeftOnChoice\";\r\nimport \"../../attachments/attachments.component\";\r\nimport \"../../reply/replyWrapper/replyWrapper\";\r\nimport \"../../feedbackRelease/feedbackRelease\";\r\nimport \"../../utilities/pebbleDate\";\r\nimport \"../../tooltip/tooltip\";\r\nimport \"../jumpToButton/jumpToButton\";\r\nimport \"../../spaMenu/assetInfoPanel/assetFeedback/helpers/SubmissionPermissionHelper\";\r\nimport \"../../feedbackStatements/statementCollectionCache.service\";\r\nimport \"../../utilities/urlService\";\r\n\r\nclass FeedbackWrapperComponent extends NgComponent {\r\n constructor(\r\n $scope,\r\n $filter,\r\n $element,\r\n $routeParams,\r\n $route,\r\n $location,\r\n multiLanguageService,\r\n replyDataService,\r\n FeedbackDataService,\r\n FeedbackInputHelper,\r\n feedbackSettingsService,\r\n SubmissionPermissionHelper,\r\n feedbackHelper,\r\n statementCollectionCache,\r\n UrlService\r\n ) {\r\n super();\r\n\r\n this._$scope = $scope;\r\n this._$filter = $filter;\r\n this._$element = $element;\r\n this._multiLanguageService = multiLanguageService;\r\n this._replyDataService = replyDataService;\r\n this._feedbackDataService = FeedbackDataService;\r\n this._submissionPermissionHelper = SubmissionPermissionHelper;\r\n this._feedbackInputHelper = FeedbackInputHelper;\r\n this._feedbackHelper = feedbackHelper;\r\n this._statementCollectionCache = statementCollectionCache;\r\n this._urlService = UrlService;\r\n\r\n this._ASSESSMENT_CONSTANTS = ASSESSMENT_CONSTANTS;\r\n this.ACTION_CONSTANTS = ACTION_CONSTANTS;\r\n this.$route = $route;\r\n this.$location = $location;\r\n\r\n this.mode = this.ACTION_CONSTANTS.VIEW;\r\n this.feedbackItemOptions = [];\r\n this.feedbackTemplates = null;\r\n this.currentModel = null;\r\n this.leftOnDetails = null;\r\n this.actionPending = false;\r\n this.actionSaving = false;\r\n this.isRecognisedType = false;\r\n this.disabledDropdownToolTip = \"\";\r\n this.editingReply = false;\r\n this.config = feedbackSettingsService.config;\r\n this.showThreeDotButton = false;\r\n this._validation = null;\r\n this.disableButtons = false;\r\n this.assetId = $routeParams.assetId;\r\n this.showJumpToButton = false;\r\n this._feedbackStatementsSubscription = null;\r\n this.feedbackStatements = createAsyncModelPending(multiLanguageService.getString(\"atlas_sidebar.loading_feedback_statements\"));\r\n\r\n let permissions = this._submissionPermissionHelper.getPermissions();\r\n this.gradeFormat = permissions !== undefined && permissions !== null ? permissions.GradeFormat : this._feedbackHelper.GRADEFORMATS.STRING;\r\n\r\n this.releaseSetting = \"\";\r\n\r\n this.updateRoute = (targetAssetId) => {\r\n this.$location.url(this._urlService.createUrl(targetAssetId, null, true, null, null, null, true));\r\n };\r\n\r\n this.updateQueryStringParam = (searchAttribute, searchValue) => {\r\n this.$location.search(searchAttribute, searchValue);\r\n };\r\n\r\n this.feedbackAriaTitle = multiLanguageService.getString(\"atlas_sidebar.a11y.feedback_item_lower\");\r\n }\r\n\r\n $onInit() {\r\n this.actionPending = this.pending || this.feedbackItem.Releasing;\r\n this.isDisabled = this.isDisabled || false;\r\n this.disabledDropdownToolTip = this._multiLanguageService.getString(\"sidebar.asset_feedback.messages.edit_in_progress\");\r\n this.isRecognisedType = this._isRecognisedFeedbackType();\r\n this.allowAttachments =\r\n this.feedbackItem.FeedbackType === this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.COMMENT ||\r\n this.feedbackItem.FeedbackType === this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.CAPABILITY ||\r\n this.feedbackItem.FeedbackType === this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL;\r\n this.isBlockFeedback = this.feedbackItem.AnchorId !== null;\r\n this.disableLeftOn = this.isBlockFeedback || this.feedbackItem.FeedbackType === this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVALCOLLECTION;\r\n this.canBeLeftOnPage = this._canFeedbackBeLeftOnPage(this.feedbackItem);\r\n\r\n this._setLeftOnDetails();\r\n this._setCurrentModel();\r\n\r\n if (!this.actionPending) {\r\n this._populateFeedbackOptions();\r\n }\r\n\r\n if (this.feedbackItem.FeedbackTemplates.length > 0) {\r\n this._feedbackDataService.setObservable(this.feedbackItem.Id, this.feedbackItem.FeedbackTemplates);\r\n this._feedbackDataService.subscribe(this.feedbackItem.Id, this.updateTemplateChanges.bind(this));\r\n }\r\n\r\n this.showThreeDotButton = this._showThreeDotButton();\r\n\r\n if (this.feedbackItem.FeedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL) {\r\n let level = ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL_LEVEL_ONE;\r\n if (this.feedbackItem.Level === \"2\") {\r\n level = ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL_LEVEL_TWO;\r\n } else if (this.feedbackItem.Level === \"3\") {\r\n level = ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL_LEVEL_THREE;\r\n }\r\n this.releaseSetting = this._submissionPermissionHelper.getFeedbackReleaseSetting(level);\r\n } else {\r\n this.releaseSetting = this._submissionPermissionHelper.getFeedbackReleaseSetting();\r\n }\r\n }\r\n\r\n $postLink() {\r\n this.editedTooltipBoundary = angular.element(this._$element[0].querySelector(\".feedback-wrapper__footer\"));\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.feedbackItem !== undefined && !changes.feedbackItem.isFirstChange()) {\r\n this._setCurrentModel();\r\n }\r\n\r\n if (changes.pending !== undefined && !changes.pending.isFirstChange()) {\r\n this.actionPending = this.pending;\r\n\r\n if (!this.actionPending) {\r\n this._populateFeedbackOptions();\r\n\r\n if (typeof this.reloadStandards === \"function\") {\r\n this.reloadStandards();\r\n }\r\n }\r\n }\r\n\r\n if (changes.feedbackItem !== undefined || changes.isBlockFeedbackListView !== undefined) {\r\n this.showJumpToButton = this._shouldShowJumpToButton();\r\n }\r\n\r\n if (changes.feedbackCount !== undefined || changes.feedbackIndex !== undefined || changes.feedbackGroup !== undefined) {\r\n this._setOptionsMenuLabel();\r\n }\r\n\r\n this.editedDate = this.getEditedTooltipMessage();\r\n this.showThreeDotButton = this._showThreeDotButton();\r\n }\r\n\r\n $onDestroy() {\r\n this._feedbackDataService.unsubscribe(this.feedbackItem.Id, this.updateTemplateChanges.bind(this));\r\n if (this.mode === ACTION_CONSTANTS.EDIT) {\r\n this.onToggleEditMode({ disabled: false });\r\n }\r\n\r\n this._unsubscribeFromFeedbackStatements();\r\n }\r\n\r\n onEdit(validation, changes) {\r\n if (changes !== null) {\r\n Object.assign(this.currentModel, changes);\r\n this._$scope.$emit(\"feedbackInProgress\", { id: this._$scope.$id, feedbackInProgress: true, isTemplate: false });\r\n }\r\n\r\n this.disableButtons = !validation.valid;\r\n this._validation = validation;\r\n }\r\n\r\n onCancel() {\r\n this.mode === this.ACTION_CONSTANTS.ADD ? this._cancel() : this._feedbackInputHelper.launchCancelModal(this._cancel.bind(this));\r\n }\r\n\r\n onSave(released) {\r\n this.actionSaving = true;\r\n\r\n if (this._validation && !this._validation.valid) {\r\n this._feedbackInputHelper.launchInvalidModal(this._validation.message, this._multiLanguageService.getString(\"sidebar.asset_feedback.blank_feedback_title\"));\r\n this.actionSaving = false;\r\n return;\r\n }\r\n\r\n tracker.trackEvent(\"Feedback\", \"Edit feedback\", `${this.feedbackItem.FeedbackType} ${this.feedbackItem.AnchorId !== null ? \"on block\" : \"\"}`);\r\n this.currentModel.Released = released;\r\n this.currentModel.AssetId = this.leftOnDetails.leaveFeedbackOnPage ? this.leftOnDetails.leaveFeedbackOnAssetId : this.leftOnDetails.mainAssetId;\r\n\r\n this._feedbackDataService\r\n .replace(this.assetId, this.currentModel, this.feedbackItem)\r\n .then(() => {\r\n this._$scope.$emit(\"feedbackInProgress\", { id: this._$scope.$id, feedbackInProgress: false, isTemplate: false });\r\n this.mode = this.ACTION_CONSTANTS.VIEW;\r\n this.onToggleEditMode({ disabled: false, updateDetails: true });\r\n this.actionSaving = false;\r\n this._unsubscribeFromFeedbackStatements();\r\n })\r\n .catch(() => {\r\n this.actionSaving = false;\r\n });\r\n }\r\n\r\n onReplyAdd(body, author) {\r\n return this._replyDataService.addNewReply(body, author, this.feedbackItem.Id, this.feedbackItem.AssetId, this.feedbackItem.AnchorId).then((response) => {\r\n this.onRepliesChange !== undefined ? this.onRepliesChange({ id: this.feedbackItem.Id }) : null;\r\n return response;\r\n });\r\n }\r\n\r\n onReplyUpdate(dto) {\r\n return this._replyDataService.updateReply(dto, this.feedbackItem.Id).then((response) => {\r\n this.onRepliesChange !== undefined ? this.onRepliesChange({ id: response.data.Id }) : null;\r\n return response;\r\n });\r\n }\r\n\r\n onReplyDelete(dto) {\r\n return this._replyDataService.deleteReply(dto);\r\n }\r\n\r\n updateAttachments(attachments) {\r\n this.currentModel.Attachments = [...attachments];\r\n }\r\n\r\n updateTemplates(templates) {\r\n this.currentModel.FeedbackTemplates = [...templates];\r\n this._$scope.$emit(\"feedbackInProgress\", { id: this._$scope.$id, feedbackInProgress: false, isTemplate: false });\r\n }\r\n\r\n updateTemplateChanges(changes) {\r\n if (changes.action !== ACTION_CONSTANTS.EDIT) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < this.feedbackItem.FeedbackTemplates.length; i++) {\r\n if (this.feedbackItem.FeedbackTemplates[i].AssetId === changes.newItem.AssetId) {\r\n this.feedbackItem.FeedbackTemplates[i] = changes.newItem;\r\n break;\r\n }\r\n }\r\n\r\n for (let i = 0; i < this.feedbackTemplates.length; i++) {\r\n if (this.feedbackTemplates[i].AssetId === changes.newItem.AssetId) {\r\n this.feedbackTemplates[i] = changes.newItem;\r\n break;\r\n }\r\n }\r\n\r\n this.updateTemplates(this.feedbackTemplates);\r\n }\r\n\r\n toggleReply(isEditing) {\r\n this.editingReply = isEditing;\r\n this.onToggleEditMode({ disabled: isEditing, updateDetails: false });\r\n this._$scope.$emit(\"feedbackInProgress\", { id: this._$scope.$id, feedbackInProgress: isEditing, isTemplate: false });\r\n }\r\n\r\n getEditedTooltipMessage() {\r\n const params = {\r\n modifiedByName: this.feedbackItem.Modifier.Name,\r\n date: this._$filter(\"pebbleDate\")(this.feedbackItem.Modified, \"default\"),\r\n time: this._$filter(\"pebbleDate\")(this.feedbackItem.Modified, \"timeOnly\")\r\n };\r\n return this._multiLanguageService.getString(\"sidebar.asset_feedback.labels.edited_tooltip\", params);\r\n }\r\n\r\n showEditedByTooltip() {\r\n return this.config.showModifiedTooltip && !this.editingReply && this.mode === this.ACTION_CONSTANTS.VIEW && new Date(this.feedbackItem.Modified) > new Date(this.feedbackItem.Posted);\r\n }\r\n\r\n _shouldShowJumpToButton() {\r\n if (this.isBlockFeedbackListView === true) {\r\n return false;\r\n }\r\n const isMostRecentAssessorFeedback = this.feedbackItem.FeedbackType === this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.ASSESSOR_FIELD && this.feedbackItem.MostRecentForElementId;\r\n const isBlockLevelFeedback = this.feedbackItem.FeedbackType !== this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.ASSESSOR_FIELD && this.feedbackItem.AnchorId !== null;\r\n\r\n if (!isMostRecentAssessorFeedback && !isBlockLevelFeedback) {\r\n return false;\r\n }\r\n\r\n const submissionMainAssetId = this._submissionPermissionHelper.getSubmissionsMainAssetId();\r\n\r\n const isOnFeedbackAssetOrItsContainer = this.feedbackItem.AssetId === this.assetId || [this.assetId, submissionMainAssetId].includes(this.feedbackItem.LeftOn.MainAssetId);\r\n const isAssessorFieldOnLinkedAsset =\r\n this.assetId === undefined && this.feedbackItem.LeftOn.LinkedAsset && this.feedbackItem.FeedbackType === this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.ASSESSOR_FIELD;\r\n\r\n return isOnFeedbackAssetOrItsContainer || isAssessorFieldOnLinkedAsset;\r\n }\r\n\r\n _setCurrentModel() {\r\n this.currentModel = { ...this.feedbackItem };\r\n\r\n if (this.feedbackItem.FeedbackTemplates.length > 0) {\r\n this.feedbackTemplates = [...this.feedbackItem.FeedbackTemplates];\r\n }\r\n }\r\n\r\n _setInitialValidationState() {\r\n switch (this.feedbackItem.FeedbackType) {\r\n case this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.CAPABILITY:\r\n case this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL:\r\n this.disableButtons = !this._feedbackHelper.getApprovalValidation(this.feedbackItem.Status).valid;\r\n break;\r\n case this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.SCORECARD:\r\n this.disableButtons = false;\r\n break;\r\n default:\r\n this.disableButtons = true;\r\n break;\r\n }\r\n }\r\n\r\n _isRecognisedFeedbackType() {\r\n return Object.values(this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES).indexOf(this.feedbackItem.FeedbackType) > -1;\r\n }\r\n\r\n _showThreeDotButton() {\r\n return Boolean(this.feedbackItemOptions.length !== 0 && !this.feedbackItem.ReadOnly && !this.feedbackItem.IsLegacy);\r\n }\r\n\r\n _isFeedbackTemplate() {\r\n return this.feedbackItem.FeedbackTemplates.length === 1 && this.feedbackItem.Comment === \"\" && this.feedbackItem.Attachments.length === 0;\r\n }\r\n\r\n _confirmDelete() {\r\n this._feedbackDataService.remove(this.assetId, this.feedbackItem).catch(angular.noop);\r\n }\r\n\r\n _fetchFeedbackStatements() {\r\n const subscriptionResponseHandlers = {\r\n next: (statements) => this._handleFeedbackStatementsResponse(statements, false),\r\n error: () => this._handleFeedbackStatementsResponse([], true)\r\n };\r\n\r\n this._feedbackStatementsSubscription = this._statementCollectionCache.getStatements(this.feedbackItem.SubmissionId).subscribe(subscriptionResponseHandlers);\r\n }\r\n\r\n _handleFeedbackStatementsResponse(statements, hasError) {\r\n this._$scope.$applyAsync(() => {\r\n if (hasError) {\r\n this.feedbackStatements = createAsyncModelError(this._multiLanguageService.getString(\"atlas_sidebar.feedback_statements_error\"));\r\n return;\r\n }\r\n\r\n this.feedbackStatements =\r\n statements.length > 0 ? createAsyncModelResult(statements) : createAsyncModelError(this._multiLanguageService.getString(\"atlas_sidebar.no_feedback_statements_available\"));\r\n });\r\n }\r\n\r\n _unsubscribeFromFeedbackStatements() {\r\n if (this._feedbackStatementsSubscription !== null) {\r\n this._feedbackStatementsSubscription.unsubscribe();\r\n this._feedbackStatementsSubscription = null;\r\n }\r\n }\r\n\r\n _confirmEdit() {\r\n this._fetchFeedbackStatements();\r\n this._setLeftOnDetails();\r\n this._setInitialValidationState();\r\n this.mode = this._isFeedbackTemplate() ? this.ACTION_CONSTANTS.ADD : this.ACTION_CONSTANTS.EDIT;\r\n this.onToggleEditMode({ disabled: true, updateDetails: false });\r\n }\r\n\r\n _cancel() {\r\n if (!this._isFeedbackTemplate()) {\r\n this._$scope.$emit(\"feedbackInProgress\", { id: this._$scope.$id, feedbackInProgress: false, isTemplate: false });\r\n }\r\n this._unsubscribeFromFeedbackStatements();\r\n this.mode = this.ACTION_CONSTANTS.VIEW;\r\n this._setCurrentModel();\r\n this.onToggleEditMode({ disabled: false, updateDetails: false });\r\n }\r\n\r\n _updateReleasedStatus(released) {\r\n const newFeedbackItem = { ...this.feedbackItem, Released: released, Pending: true };\r\n this._feedbackDataService.updateReleasedStatus(this.assetId, this.feedbackItem, newFeedbackItem).catch(angular.noop);\r\n }\r\n\r\n _multiLangFeedbackType() {\r\n if (this._isFeedbackTemplate()) {\r\n return this._multiLanguageService.getString(\"atlas_sidebar.feedback_types.template.short\").toLowerCase();\r\n }\r\n\r\n switch (this.feedbackItem.FeedbackType) {\r\n case this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.COMMENT:\r\n return this._multiLanguageService.getString(\"atlas_sidebar.feedback_types.written.title\").toLowerCase();\r\n case this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.GRADE:\r\n return this._multiLanguageService.getString(\"atlas_sidebar.feedback_types.grade.title\").toLowerCase();\r\n case this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.ASSESSOR_FIELD:\r\n return this._multiLanguageService.getString(\"atlas_sidebar.feedback_types.assessor_field.title\").toLowerCase();\r\n case this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.CAPABILITY:\r\n case this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.APPROVAL:\r\n return this._multiLanguageService.getString(\"atlas_sidebar.feedback_types.approval.title\").toLowerCase();\r\n case this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.SCORECARD:\r\n return this._multiLanguageService.getString(\"atlas_sidebar.feedback_types.scorecard.title\").toLowerCase();\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n _setLeftOnDetails() {\r\n if (this.disableLeftOn) {\r\n this.leftOnDetails = {\r\n leaveFeedbackOnPage: true,\r\n leaveFeedbackOnAssetId: this.feedbackItem.AssetId,\r\n mainAssetId: this.feedbackItem.LeftOn.MainAssetId,\r\n pageId: this.feedbackItem.LeftOn.PageId,\r\n feedbackAssetId: this.feedbackItem.AssetId\r\n };\r\n return;\r\n }\r\n\r\n this.leftOnDetails = {\r\n leaveFeedbackOnPage: false,\r\n // If feedback is not left on the main asset, use the current assetId\r\n leaveFeedbackOnAssetId: this.feedbackItem.LeftOn.MainAssetId === this.feedbackItem.AssetId && this.feedbackItem.LeftOn.PageId === null ? \"\" : this.assetId,\r\n mainAssetId: this.feedbackItem.LeftOn.MainAssetId,\r\n pageId: this.feedbackItem.LeftOn.PageId,\r\n feedbackAssetId: this.feedbackItem.AssetId\r\n };\r\n\r\n // If the feedback is left on the main asset, leftOnChoice should be unchecked.\r\n if (this.feedbackItem.AssetId === this.feedbackItem.LeftOn.MainAssetId) {\r\n this.leftOnDetails.leaveFeedbackOnPage = false;\r\n }\r\n // If feedback is left on linked asset, leftOnChoice should be checked if we are viewing the asset it was left on.\r\n else if (this.feedbackItem.LeftOn.LinkedAsset && this.assetId === this.feedbackItem.AssetId) {\r\n this.leftOnDetails.leaveFeedbackOnPage = true;\r\n }\r\n // If the feedback is left on a workbook page, leftOnChoice should be checked if we are viewing the page it was left on.\r\n else if (this.feedbackItem.LeftOn.PageId !== null && this.assetId === this.feedbackItem.LeftOn.PageId) {\r\n this.leftOnDetails.leaveFeedbackOnPage = true;\r\n }\r\n }\r\n\r\n _feedbackLabels(action) {\r\n switch (action) {\r\n case this.ACTION_CONSTANTS.CANCEL:\r\n return {\r\n text: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.cancel\"),\r\n title: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.cancel_title\")\r\n };\r\n case this.ACTION_CONSTANTS.EDIT:\r\n return {\r\n text: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.edit.name\", { type: this._multiLangFeedbackType() }),\r\n allyLabel: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.edit.title\", { type: this._multiLangFeedbackType() })\r\n };\r\n case this.ACTION_CONSTANTS.DELETE:\r\n return {\r\n text: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.delete.name\", { type: this._multiLangFeedbackType() }),\r\n allyLabel: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.delete.title\", { type: this._multiLangFeedbackType() }),\r\n confirm: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.delete.confirm\"),\r\n confirmA11yLabel: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.delete.confirm_ally\")\r\n };\r\n case this.ACTION_CONSTANTS.RECALL:\r\n return {\r\n text: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.recall.name\", { type: this._multiLangFeedbackType() }),\r\n allyLabel: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.recall.title\", { type: this._multiLangFeedbackType() }),\r\n confirm: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.recall.confirm\"),\r\n confirmA11yLabel: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.recall.confirm_ally\")\r\n };\r\n case this.ACTION_CONSTANTS.RELEASE:\r\n return {\r\n text: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.release.name\", { type: this._multiLangFeedbackType() }),\r\n allyLabel: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.release.title\", { type: this._multiLangFeedbackType() }),\r\n confirm: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.release.confirm\"),\r\n confirmA11yLabel: this._multiLanguageService.getString(\"sidebar.asset_feedback.buttons.release.confirm_ally\")\r\n };\r\n }\r\n }\r\n\r\n _setOptionsMenuLabel() {\r\n if (this.feedbackIndex === undefined || this.feedbackCount === undefined || this.feedbackGroup === undefined) {\r\n this.feedbackOptionsLabel = this._multiLanguageService.getString(\"atlas_sidebar.a11y.feedback_options\");\r\n\r\n return;\r\n }\r\n\r\n this.feedbackOptionsLabel = this._multiLanguageService.getString(\"atlas_sidebar.a11y.feedback_options_for_n_of_n_in_the_group\", {\r\n number: this.feedbackIndex,\r\n total: this.feedbackCount,\r\n groupValue: this.feedbackGroup\r\n });\r\n }\r\n\r\n _populateFeedbackOptions() {\r\n this._setOptionsMenuLabel();\r\n\r\n this.feedbackItemOptions = [];\r\n\r\n if (this.feedbackItem.Permissions.AllowRelease) {\r\n const releaseText = this._feedbackLabels(this.ACTION_CONSTANTS.RELEASE);\r\n\r\n this.feedbackItemOptions.push({\r\n name: releaseText.text,\r\n dataHook: `dropdown-option-release-${this.feedbackItem.FeedbackType}`,\r\n ally: releaseText.allyLabel,\r\n displayConfirmation: true,\r\n confirm: releaseText.confirm,\r\n confirmA11y: releaseText.confirmA11yLabel,\r\n onConfirm: this._updateReleasedStatus.bind(this, true),\r\n icon: \"icon-release\"\r\n });\r\n }\r\n\r\n if (this.feedbackItem.Permissions.AllowRecall) {\r\n const recallText = this._feedbackLabels(this.ACTION_CONSTANTS.RECALL);\r\n\r\n this.feedbackItemOptions.push({\r\n name: recallText.text,\r\n dataHook: `dropdown-option-recall-${this.feedbackItem.FeedbackType}`,\r\n ally: recallText.allyLabel,\r\n displayConfirmation: true,\r\n confirm: recallText.confirm,\r\n confirmA11y: recallText.confirmA11yLabel,\r\n onConfirm: this._updateReleasedStatus.bind(this, false),\r\n icon: \"icon-recall\"\r\n });\r\n }\r\n\r\n if (this.feedbackItem.Permissions.AllowEdit) {\r\n const editText = this._feedbackLabels(this.ACTION_CONSTANTS.EDIT);\r\n this.feedbackItemOptions.push({\r\n name: editText.text,\r\n dataHook: `dropdown-option-edit-${this.feedbackItem.FeedbackType}`,\r\n ally: editText.allyLabel,\r\n displayConfirmation: false,\r\n onConfirm: this._confirmEdit.bind(this),\r\n icon: \"icon-edit\"\r\n });\r\n }\r\n\r\n if (this.feedbackItem.Permissions.AllowDelete) {\r\n const deleteText = this._feedbackLabels(this.ACTION_CONSTANTS.DELETE);\r\n\r\n this.feedbackItemOptions.push({\r\n name: deleteText.text,\r\n dataHook: `dropdown-option-delete-${this.feedbackItem.FeedbackType}`,\r\n ally: deleteText.allyLabel,\r\n displayConfirmation: true,\r\n confirm: deleteText.confirm,\r\n confirmA11y: deleteText.confirmA11yLabel,\r\n onConfirm: this._confirmDelete.bind(this),\r\n icon: \"icon-delete\"\r\n });\r\n }\r\n }\r\n\r\n _canFeedbackBeLeftOnPage(feedbackItem) {\r\n return feedbackItem.FeedbackType !== this._ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.SCORECARD;\r\n }\r\n}\r\n\r\nconst feedbackWrapperDefinition = {\r\n bindings: {\r\n feedbackItem: \"<\",\r\n pending: \"<\",\r\n onToggleEditMode: \"&\",\r\n isDisabled: \"
0\" items=\"$ctrl.feedbackItem.Attachments\" data-markable data-hook=\"view-feedback-attachments\">
{{::$ctrl._multiLanguageService.getString('sidebar.submissions.saving')}}
`;","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nclass FeedbackGroupService {\r\n buildFeedbackGroups(feedbackItems, sortAscending, loadSize) {\r\n const feedbackGroups = [];\r\n if (feedbackItems.length > 0) {\r\n feedbackItems.sort(sortAscending ? this._sortByDateAsc : this._sortByDateDesc);\r\n const groupedFeedbackData = {};\r\n const length = loadSize < feedbackItems.length ? loadSize : feedbackItems.length;\r\n for (let i = 0; i < length; i++) {\r\n const groupingValue = this._getGroupingValue(feedbackItems[i]);\r\n if (!(groupingValue in groupedFeedbackData)) {\r\n groupedFeedbackData[groupingValue] = [];\r\n }\r\n groupedFeedbackData[groupingValue].push(feedbackItems[i]);\r\n }\r\n for (let groupValue in groupedFeedbackData) {\r\n const feedbackItems = groupedFeedbackData[groupValue].map((feedbackItem) => {\r\n feedbackItem.groupName = groupValue;\r\n return feedbackItem;\r\n });\r\n feedbackGroups.push({\r\n groupValue: groupValue,\r\n feedbackItems: feedbackItems\r\n });\r\n }\r\n }\r\n return feedbackGroups;\r\n }\r\n\r\n deleteFeedbackItem(feedbackItem, feedbackGroups) {\r\n const groupingValue = this._getGroupingValue(feedbackItem);\r\n const group = feedbackGroups.find((group) => group.groupValue === groupingValue);\r\n\r\n if (group !== undefined) {\r\n const feedbackItemIndex = group.feedbackItems.findIndex((groupFeedbackItem) => groupFeedbackItem.Id === feedbackItem.Id);\r\n if (feedbackItemIndex > -1) {\r\n group.feedbackItems.splice(feedbackItemIndex, 1);\r\n\r\n if (group.feedbackItems.length === 0) {\r\n feedbackGroups.splice(feedbackGroups.indexOf(group), 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n addFeedbackItem(feedbackItem, feedbackGroups, sortAscending) {\r\n const groupingValue = this._getGroupingValue(feedbackItem);\r\n let group = feedbackGroups.find((group) => group.groupValue === groupingValue);\r\n if (group === undefined) {\r\n group = this._insertNewGroup(groupingValue, feedbackGroups, sortAscending);\r\n }\r\n this._insertNewFeedbackItem(feedbackItem, group, sortAscending);\r\n }\r\n\r\n replaceFeedbackItem(feedbackGroups, oldFeedbackItem, newFeedbackItem) {\r\n const groupingValue = this._getGroupingValue(newFeedbackItem);\r\n const group = feedbackGroups.find((group) => group.groupValue === groupingValue);\r\n\r\n if (group !== undefined) {\r\n const feedbackItemIndex = group.feedbackItems.findIndex((groupFeedbackItem) => groupFeedbackItem.Id === oldFeedbackItem.Id);\r\n if (feedbackItemIndex > -1) {\r\n group.feedbackItems.splice(feedbackItemIndex, 1, newFeedbackItem);\r\n }\r\n }\r\n }\r\n\r\n _getGroupingValue(feedbackItem) {\r\n const postedDate = new Date(feedbackItem.Posted);\r\n const year = postedDate.getFullYear();\r\n let month = String(postedDate.getMonth() + 1);\r\n month = month.length === 1 ? `0${month}` : month;\r\n return year + \"-\" + month + \"-\" + \"01\";\r\n }\r\n\r\n _insertNewGroup(groupValue, feedbackGroups, sortAscending) {\r\n const group = {\r\n groupValue: groupValue,\r\n feedbackItems: []\r\n };\r\n\r\n let groupInserted = false;\r\n let i = 0;\r\n while (!groupInserted) {\r\n if (i === feedbackGroups.length) {\r\n feedbackGroups.push(group);\r\n groupInserted = true;\r\n } else if ((sortAscending && group.groupValue < feedbackGroups[i].groupValue) || (!sortAscending && group.groupValue > feedbackGroups[i].groupValue)) {\r\n feedbackGroups.splice(i, 0, group);\r\n groupInserted = true;\r\n }\r\n i++;\r\n }\r\n return group;\r\n }\r\n\r\n _insertNewFeedbackItem(feedbackItem, feedbackGroup, sortAscending) {\r\n let itemInserted = false;\r\n let i = 0;\r\n feedbackItem.groupName = feedbackGroup.groupValue;\r\n\r\n while (!itemInserted) {\r\n if (i === feedbackGroup.feedbackItems.length) {\r\n feedbackGroup.feedbackItems.push(feedbackItem);\r\n itemInserted = true;\r\n } else if ((sortAscending && feedbackItem.Posted < feedbackGroup.feedbackItems[i].Posted) || (!sortAscending && feedbackItem.Posted > feedbackGroup.feedbackItems[i].Posted)) {\r\n feedbackGroup.feedbackItems.splice(i, 0, feedbackItem);\r\n itemInserted = true;\r\n }\r\n i++;\r\n }\r\n }\r\n\r\n _sortByDateAsc(a, b) {\r\n if (a.Posted < b.Posted) {\r\n return -1;\r\n } else if (a.Posted > b.Posted) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n _sortByDateDesc(a, b) {\r\n if (a.Posted > b.Posted) {\r\n return -1;\r\n } else if (a.Posted < b.Posted) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n}\r\n\r\nFeedbackGroupService.$inject = [];\r\nangularAMD.service(\"FeedbackGroupService\", FeedbackGroupService);\r\nexport { FeedbackGroupService };\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./filter-checkbox.html\";\r\n\r\nclass filterCheckboxComponent extends NgComponent {\r\n constructor() {\r\n super();\r\n\r\n this.filterCheckbox = false;\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.selected !== undefined) {\r\n this.filterCheckbox = changes.selected.currentValue;\r\n }\r\n }\r\n\r\n setCheckbox(checked) {\r\n this.onChange({\r\n checked: checked\r\n });\r\n }\r\n}\r\n\r\nexport const FilterCheckbox = {\r\n bindings: {\r\n label: \"<\",\r\n selected: \"<\",\r\n idHook: \"<\",\r\n onChange: \"&\"\r\n },\r\n template: template,\r\n controller: filterCheckboxComponent\r\n};\r\n\r\nFilterCheckbox.$inject = [];\r\nangularAMD.component(\"filterCheckbox\", FilterCheckbox);\r\n","export default ``;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSET_CONSTANTS } from \"../constants/asset.constants\";\r\nimport template from \"./feedback-filters.html\";\r\nimport \"./filterCheckbox/filterCheckbox.component\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\n\r\nclass FeedbackFiltersComponent extends NgComponent {\r\n constructor($routeParams, $rootScope, multiLanguageService) {\r\n super();\r\n\r\n this._$routeParams = $routeParams;\r\n this._$rootScope = $rootScope;\r\n this.multiLanguageService = multiLanguageService;\r\n this._currentPageAssetId = null;\r\n this._currentPageTitle = \"\";\r\n this._resetDefaultCheckboxFilters();\r\n\r\n this._routeFilters = {\r\n pageId: {\r\n set: () => {\r\n this._getPageInfo();\r\n const isPageChecked = this.checkboxFilters.some((checkboxFilter) => checkboxFilter.filter === \"leftOn\" && checkboxFilter.checked);\r\n if (isPageChecked) {\r\n this.filterer.updateActiveFilter({ leftOn: this._currentPageAssetId });\r\n }\r\n }\r\n }\r\n };\r\n\r\n this._pageChangeEvent = null;\r\n }\r\n\r\n $onInit() {\r\n this._pageChangeEvent = this._$rootScope.$on(\"$locationChangeSuccess\", () => {\r\n for (const key in this._$routeParams) {\r\n const filter = this._routeFilters[key];\r\n\r\n if (filter !== undefined) {\r\n filter.set();\r\n }\r\n }\r\n });\r\n this._getPageInfo();\r\n this._onFilterUpdate();\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.activeFiltersList !== undefined && !changes.activeFiltersList.isFirstChange()) {\r\n this._onFilterUpdate();\r\n }\r\n }\r\n\r\n $onDestroy() {\r\n if (this._pageChangeEvent !== null) {\r\n this._pageChangeEvent();\r\n }\r\n }\r\n\r\n updateFilter(newFilter, active) {\r\n if (newFilter === \"leftOn\") {\r\n this.filterer.updateActiveFilter({ leftOn: active ? this._currentPageAssetId : undefined });\r\n } else if (newFilter === \"showMostRecentPerAssessorField\") {\r\n this.filterer.updateActiveFilter({\r\n showMostRecentPerAssessorField: active\r\n });\r\n }\r\n }\r\n\r\n _onFilterUpdate() {\r\n for (const checkboxFilter of this.checkboxFilters) {\r\n checkboxFilter.checked = this.activeFiltersList.includes(checkboxFilter.filter);\r\n }\r\n\r\n this._setActiveFilterText();\r\n }\r\n\r\n reset() {\r\n this.filterer.resetFilter();\r\n }\r\n\r\n _resetDefaultCheckboxFilters() {\r\n this.checkboxFilters = [\r\n {\r\n label: this._currentPageTitle,\r\n filter: \"leftOn\",\r\n checked: false,\r\n dataHook: \"feedback-filter-left-on-page\"\r\n },\r\n {\r\n label: this.multiLanguageService.getString(\"sidebar.asset_feedback.filter_options.include_assessor_fields\"),\r\n filter: \"showMostRecentPerAssessorField\",\r\n checked: false,\r\n dataHook: \"feedback-filter-include-assessor-fields\"\r\n }\r\n ];\r\n }\r\n\r\n _setActiveFilterText() {\r\n const activeFilterCount = this.activeFiltersList.length;\r\n if (activeFilterCount === 0) {\r\n this.activeFilterText = this.multiLanguageService.getString(\"sidebar.asset_feedback.filter_options.filter_by\");\r\n } else {\r\n this.activeFilterText = this.multiLanguageService.getString(\"sidebar.asset_feedback.filter_options.filters_applied\", { count: activeFilterCount });\r\n }\r\n }\r\n\r\n _getPageInfo() {\r\n if (this.assetManager !== undefined && this.assetManager !== null) {\r\n const pageId = this._$routeParams.pageId !== undefined ? this._$routeParams.pageId : null;\r\n let title = \"\";\r\n\r\n const assetTypesWithPages = [ASSET_CONSTANTS.TYPES.WEBFOLIO, ASSET_CONSTANTS.TYPES.WORKBOOK_RESPONSE, ASSET_CONSTANTS.TYPES.WORKBOOK];\r\n if (assetTypesWithPages.includes(this.assetManager.data.MainType)) {\r\n if (pageId !== null) {\r\n const currentPage = this.assetManager.get(pageId, false);\r\n if (currentPage !== null) {\r\n this._currentPageAssetId = currentPage.UserResponseId !== undefined ? currentPage.UserResponseId : currentPage.PageAssetId;\r\n title = currentPage.PageTitle;\r\n }\r\n }\r\n } else {\r\n this._currentPageAssetId = this.assetManager.AssetId;\r\n title = this.assetManager.data.Title;\r\n }\r\n\r\n this._currentPageTitle = title;\r\n const pageCheckBoxFilter = this.checkboxFilters.find((checkboxFilters) => checkboxFilters.filter === \"leftOn\");\r\n pageCheckBoxFilter.label = this.multiLanguageService.getString(\"sidebar.asset_feedback.filter_options.left_on_page\", { title: title });\r\n }\r\n }\r\n}\r\n\r\nconst FeedbackFilters = {\r\n bindings: {\r\n assetManager: \"<\",\r\n activeFiltersList: \"<\",\r\n filterer: \"<\"\r\n },\r\n template: template,\r\n controller: FeedbackFiltersComponent\r\n};\r\n\r\nFeedbackFilters.$inject = [\"$routeParams\", \"$rootScope\", \"multiLanguageService\"];\r\nangularAMD.component(\"feedbackFilters\", FeedbackFilters);\r\nexport { FeedbackFilters as feedbackFilters };\r\n","export default `

{{$ctrl.activeFilterText}}

`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./feedback-search.html\";\r\nimport \"../feedbackFilters/feedbackFilters.component\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../builder/dataManager/dataManagerService\";\r\nimport \"../feedback/feedbackFilterer/feedbackFiltererCollection.service\";\r\nimport \"../react2angular/searchComponent\";\r\n\r\nclass FeedbackSearchComponent extends NgComponent {\r\n constructor($scope, multiLanguageService, $routeParams, $rootScope, dataManagerService, feedbackFiltererCollection) {\r\n super();\r\n\r\n this._$scope = $scope;\r\n this.multiLanguageService = multiLanguageService;\r\n this._$routeParams = $routeParams;\r\n this._$rootscope = $rootScope;\r\n this._dataManagerService = dataManagerService;\r\n this._filtererCollection = feedbackFiltererCollection;\r\n this.isFilterOpen = false;\r\n this.assetManager = null;\r\n this.ariaId = $scope.$id;\r\n this._dtoAddedHandler = null;\r\n this._filtererUnsubscribe = null;\r\n this.filterButtonTitle = \"\";\r\n this.sortButtonTitle = \"\";\r\n this.currentFilterCount = 0;\r\n this.filterer = null;\r\n this.activeFiltersList = [];\r\n\r\n this.searchTerm = \"\";\r\n this.searchBarOptions = {\r\n inputLabel: this.multiLanguageService.getString(\"sidebar.asset_feedback.aria.keyword_search_input\"),\r\n searchButtonLabel: this.multiLanguageService.getString(\"search.a11y.search_button\"),\r\n clearButtonLabel: this.multiLanguageService.getString(\"search.a11y.clear_search\"),\r\n dataHooks: {\r\n input: \"feedback-search-input\",\r\n clearButton: \"feedback-search-clear\",\r\n searchButton: \"feedback-search-button\"\r\n }\r\n };\r\n\r\n this.onTextSearchHandler = this.onTextSearch.bind(this);\r\n this.onChangeHandler = this.onChange.bind(this);\r\n }\r\n\r\n $onInit() {\r\n if (this.searchDisabled === undefined) {\r\n this.searchDisabled = false;\r\n }\r\n\r\n this.assetManager = this._dataManagerService.getDto(this._$routeParams.assetId);\r\n\r\n if (this.assetManager === undefined || this.assetManager === null) {\r\n this._dtoAddedHandler = this._$rootscope.$on(\"dtoAdded\", (event, assetId) => {\r\n if (this._$routeParams.assetId === assetId) {\r\n this.assetManager = this._dataManagerService.getDto(this._$routeParams.assetId);\r\n this._initialiseFilterer();\r\n this._dtoAddedHandler();\r\n }\r\n });\r\n } else {\r\n this._initialiseFilterer();\r\n }\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.searchDisabled !== undefined && changes.searchDisabled.currentValue) {\r\n this.isFilterOpen = false;\r\n }\r\n\r\n if (changes.sortAscending !== undefined) {\r\n this.sortButtonTitle = this.sortAscending\r\n ? this.multiLanguageService.getString(\"search_bar.sort_options.sort_ascending\")\r\n : this.multiLanguageService.getString(\"search_bar.sort_options.sort_descending\");\r\n }\r\n }\r\n\r\n $onDestroy() {\r\n if (this._dtoAddedHandler !== null) {\r\n this._dtoAddedHandler();\r\n }\r\n\r\n if (this.filterer !== null) {\r\n this.filterer.resetFilter();\r\n }\r\n\r\n if (this._filtererUnsubscribe !== null) {\r\n this._filtererUnsubscribe();\r\n this._filtererCollection.remove(this.assetId);\r\n }\r\n }\r\n\r\n onTextSearch(searchString) {\r\n this.onSearch({ searchText: searchString.trim() });\r\n this._$scope.$applyAsync();\r\n }\r\n\r\n onChange(searchString) {\r\n this.searchTerm = searchString;\r\n this._$scope.$applyAsync();\r\n }\r\n\r\n onSorting(ascending) {\r\n this.onSort({\r\n ascending: ascending\r\n });\r\n }\r\n\r\n toggleFilter() {\r\n this.isFilterOpen = !this.isFilterOpen;\r\n }\r\n\r\n resetFilterer() {\r\n this.filterer.resetFilter();\r\n }\r\n\r\n _initialiseFilterer() {\r\n this.filterer = this._filtererCollection.get(this.assetId);\r\n this._filtererUnsubscribe = this.filterer.subscribe(this._setActiveFilters.bind(this));\r\n this._setActiveFilters();\r\n }\r\n\r\n _setActiveFilters() {\r\n const activeFiltersList = [];\r\n const { excludeTypes, ...filters } = this.filterer.getActiveFilter();\r\n\r\n Object.entries(filters).forEach(([key, value]) => {\r\n if (value !== false && value !== undefined) {\r\n activeFiltersList.push(key);\r\n }\r\n });\r\n\r\n this.activeFiltersList = activeFiltersList;\r\n this.currentFilterCount = activeFiltersList.length;\r\n this.filterButtonTitle = this.multiLanguageService.getString(\"sidebar.asset_feedback.filter_options.feedback_filter\", {\r\n count: this.currentFilterCount\r\n });\r\n }\r\n}\r\n\r\nconst FeedbackSearch = {\r\n bindings: {\r\n onSearch: \"&\",\r\n sortAscending: \"<\",\r\n onSort: \"&\",\r\n assetId: \"<\",\r\n searchDisabled: \"
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport Mark from \"mark.js/dist/mark.min\";\r\nimport { ACTION_CONSTANTS } from \"../constants/action.constants\";\r\nimport { ASSESSMENT_CONSTANTS } from \"../constants/assessment.constants\";\r\nimport { FEEDBACK_ERRORS } from \"../constants/feedbackErrors.constants\";\r\nimport \"../utilities/scrollToItem.directive\";\r\nimport \"../utilities/highlightItem.directive\";\r\nimport \"../utilities/pebbleDate\";\r\nimport \"../feedback/feedbackWrapper/feedbackWrapper.component\";\r\nimport \"../feedback/feedbackGroupService/feedbackGroupService.service\";\r\nimport \"../feedback/feedbackDataService/feedbackDataService.service\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../feedbackSearch/feedbackSearch.component\";\r\nimport \"../loadingAnnouncer/loadingAnnouncer.directive\";\r\nimport \"../loadingSpinner/loadingSpinner\";\r\nimport \"../messageAnnouncer/messageAnnouncer.directive\";\r\nimport \"../feedback/feedbackFilterer/feedbackFiltererCollection.service\";\r\nimport \"../feedback/feedbackSearchService/feedbackSearchService.service\";\r\nimport \"../stickyElementCoordinator/stickyItem.directive\";\r\nimport template from \"./feedback-list.html\";\r\n\r\nclass FeedbackListComponent extends NgComponent {\r\n constructor($filter, $timeout, $window, multiLanguageService, FeedbackGroupService, feedbackDataService, feedbackFiltererCollection, feedbackSearchService) {\r\n super();\r\n\r\n this._$filter = $filter;\r\n this._$timeout = $timeout;\r\n this._$window = $window;\r\n this._feedbackDataService = feedbackDataService;\r\n this._feedbackGroupService = FeedbackGroupService;\r\n this._feedbackSearchService = feedbackSearchService;\r\n this._feedbackFiltererCollection = feedbackFiltererCollection;\r\n this.multiLanguageService = multiLanguageService;\r\n\r\n this.loadingFeedback = false;\r\n this.feedbackExists = false;\r\n this.showSearchHelp = false;\r\n this.searchDisabled = false;\r\n this.errorMessage = \"\";\r\n this.loadedMessage = \"\";\r\n this.feedbackGroups = [];\r\n this.sortAscending = false;\r\n this.scrollToOptions = null;\r\n this.loadSize = 0;\r\n this.filteredFeedback = [];\r\n this.filterForElement = false;\r\n this.filterForElementText = \"\";\r\n\r\n this._defaultPageSize = 20;\r\n this._searchTimeout = null;\r\n this._observable = undefined;\r\n\r\n this._feedbackListMark = new Mark(\"feedback-wrapper [data-markable]\");\r\n this._feedbackWrapperMark = null;\r\n this._searchText = \"\";\r\n this._focusAnchorId = null;\r\n\r\n this._filterer = this._feedbackFiltererCollection.get(this.assetId);\r\n this._unsubscribe = this._filterer.subscribe(this._filterFeedback.bind(this));\r\n this._feedbackObserver = this.onUpdateList.bind(this);\r\n }\r\n\r\n $onInit() {\r\n this._loadFeedback();\r\n this._setFilterForElementText();\r\n this.scrollToOptions = {\r\n block: \"end\",\r\n behavior: \"smooth\"\r\n };\r\n }\r\n\r\n $onDestroy() {\r\n this._$timeout.cancel(this._searchTimeout);\r\n this._unsubscribe();\r\n this._feedbackDataService.unsubscribe(this.assetId, this._feedbackObserver);\r\n this._feedbackFiltererCollection.remove(this.assetId);\r\n }\r\n\r\n loadMoreItems() {\r\n let previousLoadSize = this.loadSize;\r\n this.loadSize = previousLoadSize + this._defaultPageSize;\r\n this.buildFeedbackGroups();\r\n\r\n const feedbackLength = this.filteredFeedback.length;\r\n let loadedLength = this.loadSize;\r\n if (loadedLength >= feedbackLength) {\r\n loadedLength = feedbackLength;\r\n }\r\n\r\n this.loadedMessage = this.multiLanguageService.getString(\"sidebar.asset_feedback.aria.feedback_loaded_out_of\", {\r\n loadedAmount: loadedLength,\r\n count: feedbackLength\r\n });\r\n\r\n this._$window.requestAnimationFrame(() => {\r\n document.getElementById(`focus-${this.filteredFeedback[previousLoadSize].Id}`).focus();\r\n });\r\n\r\n this._markText(this._feedbackListMark);\r\n }\r\n\r\n onSearch(searchText) {\r\n this._searchText = searchText;\r\n this._filterFeedback();\r\n }\r\n\r\n onUpdateList(changes) {\r\n this._feedbackDataService.updateMostRecentFlagsForBlockFeedback(this.assetId);\r\n\r\n switch (changes.action) {\r\n case ACTION_CONSTANTS.ADD: {\r\n const filteredItems = this._filterer.filter(changes.items);\r\n if (filteredItems.length > 0) {\r\n for (const feedbackItem of filteredItems) {\r\n this._feedbackGroupService.addFeedbackItem(feedbackItem, this.feedbackGroups, this.sortAscending);\r\n }\r\n this.filteredFeedback.push(...filteredItems);\r\n this.loadSize += filteredItems.length;\r\n }\r\n this.feedbackExists = true;\r\n\r\n if (filteredItems.length === 1) {\r\n this._$timeout(() => {\r\n this.highlightFeedbackId = `id-${filteredItems[0].Id}`;\r\n this.scrollToFeedbackId = `id-${filteredItems[0].Id}`;\r\n });\r\n }\r\n\r\n if (this.feedbackGroups.length < 1) {\r\n this._handleError(FEEDBACK_ERRORS.NO_SEARCH_FEEDBACK_ERROR);\r\n }\r\n break;\r\n }\r\n case ACTION_CONSTANTS.DELETE: {\r\n if (this._filterer.filter([changes.item]).length > 0) {\r\n this._feedbackGroupService.deleteFeedbackItem(changes.item, this.feedbackGroups);\r\n const feedbackItemIndex = this.filteredFeedback.findIndex((feedbackItem) => feedbackItem.Id === changes.item.Id);\r\n if (feedbackItemIndex !== -1) {\r\n this.filteredFeedback.splice(feedbackItemIndex, 1);\r\n }\r\n this.loadSize--;\r\n\r\n if (this._observable.listArray.length > 0 && changes.item.FeedbackType === ASSESSMENT_CONSTANTS.FEEDBACK_TYPES.ASSESSOR_FIELD) {\r\n this._filterFeedback();\r\n }\r\n }\r\n\r\n if (this._observable.listArray.length < 1) {\r\n this.feedbackExists = false;\r\n this._handleError(FEEDBACK_ERRORS.NO_FEEDBACK_ERROR);\r\n } else if (this.feedbackGroups.length < 1) {\r\n this.feedbackExists = true;\r\n this._handleError(FEEDBACK_ERRORS.NO_SEARCH_FEEDBACK_ERROR);\r\n }\r\n break;\r\n }\r\n case ACTION_CONSTANTS.EDIT: {\r\n this._feedbackGroupService.replaceFeedbackItem(this.feedbackGroups, changes.oldItem, changes.newItem);\r\n\r\n const feedbackItemIndex = this.filteredFeedback.findIndex((feedbackItem) => feedbackItem.Id === changes.newItem.Id);\r\n if (feedbackItemIndex !== -1) {\r\n this.filteredFeedback[feedbackItemIndex] = changes.newItem;\r\n }\r\n\r\n this._$timeout(() => {\r\n this.highlightFeedbackId = `id-${changes.newItem.Id}`;\r\n\r\n if (changes.newItem.FeedbackTemplates.length !== 0) {\r\n this.scrollToOptions.behavior = \"smooth\";\r\n\r\n this.scrollToFeedbackId = `id-${changes.newItem.Id}`;\r\n }\r\n });\r\n\r\n if ((changes.newItem.Pending === undefined || changes.newItem.Pending === false) && this._searchText !== \"\") {\r\n this._feedbackWrapperMark = new Mark(`#id-${changes.newItem.Id} [data-markable]`);\r\n this._markText(this._feedbackWrapperMark);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n onRepliesChange(id) {\r\n this._feedbackWrapperMark = new Mark(`#id-${id} [data-markable]`);\r\n this._markText(this._feedbackWrapperMark);\r\n }\r\n\r\n buildFeedbackGroups() {\r\n this.feedbackGroups = this._feedbackGroupService.buildFeedbackGroups(this.filteredFeedback, this.sortAscending, this.loadSize);\r\n }\r\n\r\n getAriaLabel(feedbackItem, feedbackIndex, groupSize) {\r\n const ariaProps = {\r\n number: feedbackIndex + 1,\r\n total: groupSize,\r\n posterName: feedbackItem.Poster.Name,\r\n workspace: feedbackItem.OriginName,\r\n assignment: feedbackItem.SubOriginName,\r\n assetTitle: feedbackItem.AssetTitle,\r\n date: this._$filter(\"pebbleDate\")(feedbackItem.Posted),\r\n time: this._$filter(\"pebbleDate\")(feedbackItem.Posted, \"timeOnly\"),\r\n count: feedbackItem.Replies.length\r\n };\r\n\r\n return this.multiLanguageService.getString(\"sidebar.asset_feedback.aria.feedback_section_aria\", ariaProps);\r\n }\r\n\r\n getLoadingLabel(feedbackItem) {\r\n const heldString = this.multiLanguageService.getString(\"sidebar.asset_feedback.held\");\r\n const releasedString = this.multiLanguageService.getString(\"sidebar.asset_feedback.released\");\r\n const action = feedbackItem.Released ? releasedString : heldString;\r\n\r\n return this.multiLanguageService.getString(\"sidebar.asset_feedback.aria.action_complete\", { action: action });\r\n }\r\n\r\n updateScrollOptions() {\r\n this.scrollToFeedbackId = \"\";\r\n this.scrollToOptions.behavior = \"smooth\";\r\n }\r\n\r\n sort(ascending) {\r\n this.sortAscending = ascending;\r\n this.buildFeedbackGroups();\r\n\r\n if (this.filteredFeedback.length > this.loadSize) {\r\n this._markText(this._feedbackListMark);\r\n }\r\n }\r\n\r\n toggleSearch(disabled) {\r\n this.searchDisabled = disabled;\r\n }\r\n\r\n getGroupValueAria(groupValue) {\r\n return this.multiLanguageService.getString(\"sidebar.asset_feedback.aria.feedback_grouping\", {\r\n group: this.getParsedGroupValue(groupValue)\r\n });\r\n }\r\n\r\n getParsedGroupValue(groupValue) {\r\n return this._$filter(\"pebbleDate\")(new Date(groupValue), \"monthAndYear\");\r\n }\r\n\r\n _filterFeedback() {\r\n if (this._observable === undefined) {\r\n this._observable = this._feedbackDataService.getObservable(this.assetId);\r\n this._feedbackDataService.subscribe(this.assetId, this._feedbackObserver);\r\n }\r\n\r\n this._resetInitialLoadState();\r\n this.loadedMessage = \"\";\r\n\r\n this._searchTimeout = this._$timeout(() => {\r\n let feedback = [...this._observable.listArray];\r\n feedback = this._filterer.filter(feedback);\r\n if (this._searchText !== \"\") {\r\n feedback = this._feedbackSearchService.searchFeedback(this._searchText, feedback);\r\n }\r\n this.filteredFeedback = feedback;\r\n this.buildFeedbackGroups();\r\n\r\n this._setFilterForElementText();\r\n this._setFeedbackState(this.filteredFeedback.length);\r\n this._setInitialLoadState();\r\n this._markText(this._feedbackListMark);\r\n\r\n this._focusFeedback();\r\n });\r\n }\r\n\r\n _focusFeedback() {\r\n const activeFilter = this._filterer.getActiveFilter();\r\n let newFocusAnchorId = null;\r\n\r\n if (activeFilter.forElement !== undefined && activeFilter.forElement.anchorId !== undefined) {\r\n newFocusAnchorId = activeFilter.forElement.anchorId;\r\n } else {\r\n this._focusAnchorId = null;\r\n return;\r\n }\r\n\r\n if (this._focusAnchorId !== newFocusAnchorId) {\r\n const filteredFeedback = this.filteredFeedback[0];\r\n\r\n if (filteredFeedback !== undefined) {\r\n requestAnimationFrame(() => {\r\n const feedbackElement = document.getElementById(`focus-${filteredFeedback.Id}`);\r\n if (feedbackElement) {\r\n feedbackElement.focus();\r\n }\r\n });\r\n }\r\n\r\n this._focusAnchorId = newFocusAnchorId;\r\n }\r\n }\r\n\r\n _loadFeedback() {\r\n this.feedbackExists = false;\r\n this._resetInitialLoadState();\r\n\r\n this._observable = this._feedbackDataService.getObservable(this.assetId);\r\n\r\n if (this._observable !== undefined) {\r\n this._feedbackDataService.subscribe(this.assetId, this._feedbackObserver);\r\n this.sortAscending = false;\r\n\r\n this._setupFeedbackList();\r\n } else {\r\n this._handleError();\r\n this._setInitialLoadState();\r\n }\r\n }\r\n\r\n _handleError(error) {\r\n switch (error) {\r\n case FEEDBACK_ERRORS.NO_SEARCH_FEEDBACK_ERROR: {\r\n this.errorMessage = this.multiLanguageService.getString(\"search_bar.no_search_results.message\");\r\n this.showSearchHelp = true;\r\n break;\r\n }\r\n case FEEDBACK_ERRORS.NO_FEEDBACK_ERROR: {\r\n if (this.anchorId !== undefined) {\r\n this.errorMessage = this.multiLanguageService.getString(\"sidebar.asset_feedback.messages.no_feedback_block\");\r\n } else {\r\n this.errorMessage = this.multiLanguageService.getString(\"sidebar.asset_feedback.messages.no_feedback\");\r\n }\r\n this.showSearchHelp = false;\r\n break;\r\n }\r\n default: {\r\n this.errorMessage = this.multiLanguageService.getString(\"sidebar.asset_feedback.messages.cant_load_feedback\");\r\n }\r\n }\r\n\r\n this.loadedMessage = this.errorMessage;\r\n }\r\n\r\n _setupFeedbackList() {\r\n this.filteredFeedback = this._filterer.filter([...this._observable.listArray]);\r\n this.buildFeedbackGroups();\r\n this._setFeedbackState(this.filteredFeedback.length);\r\n this._setInitialLoadState();\r\n }\r\n\r\n _setFeedbackState(feedbackLength) {\r\n if (this._observable.listArray.length < 1) {\r\n this._handleError(FEEDBACK_ERRORS.NO_FEEDBACK_ERROR);\r\n } else if (this.feedbackGroups.length < 1) {\r\n this.feedbackExists = true;\r\n this._handleError(FEEDBACK_ERRORS.NO_SEARCH_FEEDBACK_ERROR);\r\n } else {\r\n if (feedbackLength > this.loadSize) {\r\n this.loadedMessage = this.multiLanguageService.getString(\"sidebar.asset_feedback.aria.feedback_loaded_partial\", {\r\n count: feedbackLength,\r\n loadedAmount: this.loadSize\r\n });\r\n } else {\r\n this.loadedMessage = this.multiLanguageService.getString(\"sidebar.asset_feedback.aria.feedback_loaded\", {\r\n count: feedbackLength\r\n });\r\n }\r\n\r\n this.feedbackExists = true;\r\n }\r\n }\r\n\r\n _setInitialLoadState() {\r\n this.loadingFeedback = false;\r\n }\r\n\r\n _resetInitialLoadState() {\r\n this._feedbackListMark.unmark();\r\n this._feedbackWrapperMark = null;\r\n this.loadSize = this._defaultPageSize;\r\n this.loadingFeedback = true;\r\n this.showSearchHelp = false;\r\n }\r\n\r\n _setFilterForElementText() {\r\n const activeFilter = this._filterer.getActiveFilter();\r\n this.filterForElement = activeFilter.forElement !== undefined;\r\n this.filterForElementText = this.filterForElement ? activeFilter.forElement.label : \"\";\r\n }\r\n\r\n _markText(markElement) {\r\n if (markElement !== null && this._searchText !== \"\") {\r\n this._$window.requestAnimationFrame(() => {\r\n markElement.mark(this._searchText, {\r\n acrossElements: true,\r\n ignoreJoiners: true,\r\n separateWordSearch: false\r\n });\r\n });\r\n }\r\n }\r\n}\r\n\r\nconst feedbackListDefinition = {\r\n bindings: {\r\n assetId: \"<\",\r\n anchorId: \"
0\" class=\"feedback-list__main-wrapper\">
0\">

{{::$ctrl.getParsedGroupValue(feedbackGroup.groupValue)}}

$ctrl.loadSize\">

{{::$ctrl.errorMessage}}

{{::$ctrl.multiLanguageService.getString(\"search_bar.no_search_results.sub_heading\")}}

  • {{::$ctrl.multiLanguageService.getString(\"search_bar.no_search_results.suggestion_keyword_spelling\")}}
  • {{::$ctrl.multiLanguageService.getString(\"search_bar.no_search_results.suggestion_different_keywords\")}}
  • {{::$ctrl.multiLanguageService.getString(\"search_bar.no_search_results.suggestion_filters\")}}

{{ $ctrl.errorMessage }}

`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { AbortablePromiseSet } from \"../abortablePromises/AbortablePromiseSet\";\r\nimport { FEEDBACK_ERRORS } from \"../constants/feedbackErrors.constants\";\r\nimport \"../feedback/feedbackDataService/feedbackDataService.service\";\r\nimport \"../feedbackList/feedbackList.component\";\r\nimport \"../messageAnnouncer/messageAnnouncer.directive\";\r\nimport \"../loadingSpinner/loadingSpinner\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport template from \"./feedback-list-wrapper.html\";\r\n\r\nclass FeedbackListWrapperComponent extends NgComponent {\r\n constructor(feedbackDataService, multiLanguageService) {\r\n super();\r\n\r\n this.loadingFeedback = true;\r\n this.errorMessage = \"\";\r\n this.loadedMessage = \"\";\r\n\r\n this._feedbackDataService = feedbackDataService;\r\n this.multiLanguageService = multiLanguageService;\r\n this._abortablePromiseSet = new AbortablePromiseSet();\r\n }\r\n\r\n $onInit() {\r\n this.loadedMessage = this.multiLanguageService.getString(\"sidebar.asset_feedback.aria.feedback_loading\");\r\n\r\n const createOrUpdateObservableRequest = this._feedbackDataService\r\n .createOrUpdateObservable(this.assetId, this.anchorId)\r\n .catch((error) => {\r\n if (error.data !== undefined) {\r\n if (error.data.Error !== undefined) {\r\n this._handleError(error.data.Error);\r\n } else {\r\n this._handleError(error.data);\r\n }\r\n } else {\r\n this._handleError(error);\r\n }\r\n })\r\n .finally(() => {\r\n this.loadingFeedback = false;\r\n });\r\n\r\n this._abortablePromiseSet.add(createOrUpdateObservableRequest);\r\n }\r\n\r\n $onDestroy() {\r\n this._abortablePromiseSet.abortAll();\r\n }\r\n\r\n _handleError(error) {\r\n switch (error) {\r\n case FEEDBACK_ERRORS.NO_PERMISSION_ERROR: {\r\n this.errorMessage = this.multiLanguageService.getString(\"sidebar.asset_feedback.messages.no_permission\");\r\n break;\r\n }\r\n default: {\r\n this.errorMessage = this.multiLanguageService.getString(\"sidebar.asset_feedback.messages.cant_load_feedback\");\r\n }\r\n }\r\n\r\n this.loadedMessage = this.errorMessage;\r\n }\r\n}\r\n\r\nconst feedbackListWrapperDefinition = {\r\n bindings: {\r\n assetId: \"<\",\r\n anchorId: \"

{{::$ctrl.multiLanguageService.getString('sidebar.asset_feedback.sidebar_view')}}

{{ $ctrl.errorMessage }}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { noop } from \"@pjs/utilities\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { filterIcon, Keys, shortcutManager } from \"@pjs/core-ui\";\r\nimport { PANEL_CONSTANTS } from \"../../constants/panel.constants\";\r\nimport { IWantToOption } from \"../../iWantTo/directives/iWantToOption\";\r\nimport { STORE_CONSTANTS } from \"../../constants/store.constants\";\r\nimport { ASSET_CONSTANTS } from \"../../constants/asset.constants\";\r\nimport { favouritesObserver } from \"../../observer/favourites/FavouritesObserver.const\";\r\nimport { launchDeleteDialog } from \"../../assetActionDialogs/launchDeleteDialog\";\r\nimport { launchRestoreDialog } from \"../../assetActionDialogs/launchRestoreDialog\";\r\nimport { launchPurgeDialog } from \"../../assetActionDialogs/launchPurgeDialog\";\r\nimport { getFeedbackListShortcuts } from \"../../feedbackList/getFeedbackListShortcuts.function\";\r\nimport { getCommentsListShortcuts } from \"./assetComments/getCommentsListShortcuts.function\";\r\nimport \"../../extensions/arrayExtensions\";\r\nimport \"./assetInfo/assetInfo\";\r\nimport \"../../assetStore/services/assetStoreService\";\r\nimport \"../../assetViews/sidebar/mapping/sidebarMappingWrapper.component\";\r\nimport \"../../assetViews/sidebar/mapping/sidebarMapping\";\r\nimport \"../../builder/progressTracking/assetProgressTracking/assetProgressTracking\";\r\nimport \"./assetComments/assetComments\";\r\nimport \"../../versioning/versionList/versionList.directive\";\r\nimport \"../../versioning/services/versionHelper.service\";\r\nimport \"../../utilities/assetActionService\";\r\nimport \"../../modal/services/modal\";\r\nimport \"../../utilities/helpers\";\r\nimport \"../../builder/dataManager/dataManagerService\";\r\nimport \"../../assetStore/services/assetDtoHelperFactory\";\r\nimport \"../../builder/progressTracking/assetProgressTracking/services/assetProgressTrackingService\";\r\nimport \"../services/pageReloadService\";\r\nimport \"../../utilities/urlService\";\r\nimport \"../../assetLocking/services/assetLockingHelper.service\";\r\nimport \"./assetLockedMessage/assetLockedMessage.directive\";\r\nimport \"../../builder/dataManager/dtoFactory\";\r\nimport \"../../user/user.service\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../recoveryLogger/recoveryLogger\";\r\nimport \"../../feedbackListWrapper/feedbackListWrapper.component\";\r\nimport \"../../workbook/service/standards.service\";\r\nimport \"../../stickyElementCoordinator/stickyContainer.directive\";\r\nimport template from \"./templates/asset-info-panel.html\";\r\n\r\nangularAMD.directive(\"assetInfoPanel\", [\r\n \"$sce\",\r\n \"$rootScope\",\r\n \"$compile\",\r\n \"$location\",\r\n \"$routeParams\",\r\n \"baseUrlsFactory\",\r\n \"$timeout\",\r\n \"$q\",\r\n \"assetStoreService\",\r\n \"assetActionService\",\r\n \"modal\",\r\n \"helpers\",\r\n \"VersionHelper\",\r\n \"dataManagerService\",\r\n \"StandardsService\",\r\n \"assetDtoHelperFactory\",\r\n \"assetProgressTrackingService\",\r\n \"pageReloadService\",\r\n \"urlService\",\r\n \"AssetLockingHelper\",\r\n \"dtoFactory\",\r\n \"User\",\r\n \"multiLanguageService\",\r\n \"recoveryLogger\",\r\n function (\r\n $sce,\r\n $rootScope,\r\n $compile,\r\n $location,\r\n $routeParams,\r\n baseUrlsFactory,\r\n $timeout,\r\n $q,\r\n assetStoreService,\r\n assetActionService,\r\n modal,\r\n helpers,\r\n VersionHelper,\r\n dataManagerService,\r\n StandardsService,\r\n assetDtoHelperFactory,\r\n assetProgressTrackingService,\r\n pageReloadService,\r\n urlService,\r\n AssetLockingHelper,\r\n dtoFactory,\r\n User,\r\n multiLanguageService,\r\n recoveryLogger\r\n ) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n\r\n //Controller for more logic / data oriented things, link for more element stuff, events and post-compilation calls.\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n $scope.multiLanguageService = multiLanguageService;\r\n $scope.showIWantTo = false;\r\n $scope.asset = {};\r\n $scope.isAssetType = false;\r\n $scope.hasLoaded = false;\r\n $scope.isPublic = $location.$$url.indexOf(\"public\") > -1; // need a better way to detect this\r\n $scope.assetDtoHelper = new assetDtoHelperFactory();\r\n $scope.isEditorPage = false;\r\n $scope.excludeFunctionalityList = [];\r\n $scope.extendedIWantToOptions = [];\r\n $scope.viewerActions = $rootScope.viewerActions;\r\n $scope.hasIWantToOptionsLoaded = false;\r\n $scope._removeShortcuts = noop;\r\n $scope._shortcuts = null;\r\n\r\n if ($scope.panelActionData && $scope.panelActionData.excludeAssetFunctionality) {\r\n $scope.excludeFunctionalityList = $scope.excludeFunctionalityList.concat($scope.panelActionData.excludeAssetFunctionality);\r\n }\r\n\r\n if ($scope.viewerActions) {\r\n if ($scope.viewerActions.infoPanel) {\r\n for (var key in $scope.viewerActions.infoPanel) {\r\n if ($scope.viewerActions.infoPanel.hasOwnProperty(key)) {\r\n if (!$scope.viewerActions.infoPanel[key]) {\r\n $scope.excludeFunctionalityList.push(key);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!$scope.viewerActions.iWantTo) {\r\n $scope.excludeFunctionalityList.push(\"i-want-to\");\r\n }\r\n }\r\n\r\n var assetActionHandler = new assetActionService();\r\n $scope.getAssetDetails = function (callback) {\r\n if (typeof $scope.assetId === \"undefined\") {\r\n if ($routeParams.pageId) {\r\n $scope.assetId = $routeParams.pageId;\r\n } else {\r\n $scope.assetId = $routeParams.assetId;\r\n }\r\n }\r\n\r\n if (!$scope.isPublic) {\r\n var assetPromise = assetStoreService.getAssetWithAvailableActions($scope.assetId);\r\n assetPromise.then(\r\n function (response) {\r\n if (response.data) {\r\n $scope.populateAssetData(response.data);\r\n\r\n if (isWorkflow(response.data.AssetOptions)) {\r\n $scope.excludeFunctionalityList.push(\"i-want-to\");\r\n }\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n },\r\n function (error) {\r\n console.warn(\"Asset load error:\");\r\n }\r\n );\r\n\r\n return assetPromise;\r\n } else {\r\n // public asset\r\n // exclude I want to functionality for public use\r\n if (!$scope.panelActionData) {\r\n $scope.panelActionData = {};\r\n }\r\n if (!$scope.panelActionData.excludeAssetFunctionality) {\r\n $scope.panelActionData.excludeAssetFunctionality = [];\r\n }\r\n if (!$scope.panelActionData.excludeAssetFunctionality.contains(\"i-want-to\")) {\r\n $scope.panelActionData.excludeAssetFunctionality.push(\"i-want-to\");\r\n }\r\n\r\n var publicPromise = assetStoreService.getPublicAssetReference($scope.assetId);\r\n publicPromise.then(\r\n function (response) {\r\n if (response.data) {\r\n $scope.populateAssetDataWithAssetRef(response.data);\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n },\r\n function (error) {\r\n console.warn(\"Asset load error:\");\r\n }\r\n );\r\n return publicPromise;\r\n }\r\n };\r\n\r\n function isWorkflow(assetOptions) {\r\n // is workflow?\r\n if (assetOptions) {\r\n for (var i = 0; i < assetOptions.length; i++) {\r\n if (assetOptions[i].Key === \"isWorkflow\" && assetOptions[i].Value === \"true\") {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n $scope.getSubmissionsWithAssessors = function (submissions, assessors) {\r\n if (!helpers.isNotEmptyArray(submissions) && !helpers.isNotEmptyArray(assessors)) {\r\n return;\r\n }\r\n\r\n var assessorSubmissionList = [];\r\n var assessorList = assessors;\r\n var externals = [];\r\n var assessorSubmission = null;\r\n\r\n //For each assessor, remove the assessor from the list where the Submission Id is a match for the current Submission\r\n var filterFoundAssessors = function (assessor) {\r\n var foundMatch = assessor.SubmissionId === assessorSubmission.Id;\r\n if (foundMatch) {\r\n externals.push(assessor);\r\n }\r\n\r\n return !foundMatch;\r\n };\r\n\r\n for (var i = 0; i < submissions.length; i++) {\r\n externals = [];\r\n assessorSubmission = new dtoFactory.AssessorSubmissionDto(submissions[i]);\r\n\r\n assessorList = assessorList.filter(filterFoundAssessors);\r\n\r\n assessorSubmission.ExternalAssessors = externals;\r\n assessorSubmissionList.push(assessorSubmission);\r\n }\r\n return assessorSubmissionList;\r\n };\r\n\r\n $scope.populateAssetDataWithAssetRef = function (reference) {\r\n var asset = $scope.asset;\r\n\r\n asset.Title = reference.Title;\r\n asset.Id = reference.Id;\r\n asset.CommentCount = reference.CommentCount;\r\n asset.Description = reference.Description;\r\n asset.FeedbackCount = reference.FeedbackCount;\r\n asset.PublishCount = reference.PublishCount;\r\n asset.ShareCount = reference.ShareCount;\r\n asset.SubmissionCount = reference.SubmissionCount;\r\n asset.Shares = reference.Shares || [];\r\n asset.IsComplete = reference.IsComplete;\r\n asset.Tags = reference.Tags;\r\n asset.ThumbnailUrl = reference.ThumbnailUrl + \"&ticks=\" + Math.random();\r\n asset.FullyLoaded = true;\r\n asset.MainType = reference.MainType;\r\n asset.SubType = reference.SubType;\r\n\r\n $scope.excludeOptions = [\"Tag\"];\r\n };\r\n\r\n $scope.populateAssetData = function (fullAsset) {\r\n var asset = $scope.asset;\r\n\r\n asset.Title = fullAsset.Title;\r\n asset.Id = fullAsset.Id;\r\n asset.CommentCount = fullAsset.CommentCount;\r\n asset.Description = fullAsset.Description;\r\n asset.FeedbackCount = fullAsset.FeedbackCount;\r\n asset.PublishCount = fullAsset.PublishCount;\r\n asset.ShareCount = fullAsset.ShareCount;\r\n asset.SubmissionCount = fullAsset.SubmissionCount;\r\n asset.Shares = fullAsset.Shares || [];\r\n asset.Submissions = $scope.getSubmissionsWithAssessors(fullAsset.Submissions, fullAsset.ExternalAssessors);\r\n asset.IsComplete = fullAsset.IsComplete;\r\n asset.Tags = fullAsset.Tags;\r\n asset.ThumbnailUrl = fullAsset.ThumbnailUrl + \"&ticks=\" + Math.random();\r\n asset.FullyLoaded = true;\r\n asset.MainType = fullAsset.MainType;\r\n asset.SubType = fullAsset.SubType;\r\n asset.AssetOptions = fullAsset.AssetOptions;\r\n asset.AvailableActions = fullAsset.AvailableActions;\r\n asset.LockedBy = fullAsset.LockedBy;\r\n asset.IsStandardsWorkBook = fullAsset.IsStandardsWorkBook;\r\n asset.CreatedBy = fullAsset.CreatedBy;\r\n\r\n $scope.isLocked = helpers.isNotEmptyArray(asset.LockedBy);\r\n $scope.excludeOptions = [\"Tag\"];\r\n\r\n if ($routeParams.assetId === $scope.assetId) {\r\n $scope.excludeOptions.push(\"View\");\r\n $scope.excludeOptions.push(\"Purge\");\r\n $scope.excludeOptions.push(\"Delete\");\r\n }\r\n\r\n if (asset.MainType !== ASSET_CONSTANTS.TYPES.FORM && asset.MainType !== ASSET_CONSTANTS.TYPES.WORKBOOK) {\r\n $scope.excludeOptions.push(\"Edit\");\r\n }\r\n\r\n if (asset.MainType === ASSET_CONSTANTS.TYPES.FILE) {\r\n $scope.excludeOptions.push(\"Export\");\r\n }\r\n };\r\n\r\n var confirmModal = function () {\r\n const onDialogClose = function (instance) {\r\n instance.destroyObservable.subscribe(() => {\r\n $scope.confirmAssetAction();\r\n $scope.$applyAsync();\r\n });\r\n };\r\n\r\n const trigger = document.querySelector(\"asset-info-panel [data-hook='iWantTo-btn']\");\r\n\r\n if ($scope.assetActionName === \"delete\") {\r\n launchDeleteDialog(multiLanguageService, onDialogClose, 1, $scope.has_linked_assets, trigger);\r\n } else if ($scope.assetActionName === \"restore\") {\r\n launchRestoreDialog(multiLanguageService, onDialogClose, 1, trigger);\r\n } else {\r\n launchPurgeDialog(multiLanguageService, onDialogClose, 1, $scope.has_linked_assets, trigger);\r\n }\r\n };\r\n\r\n var postAction = function (ids) {\r\n $rootScope.$broadcast(\"removeFromSearchResultsEvent\", { removedArray: ids });\r\n $scope.$emit(\"closeRightHandSidePanel\");\r\n };\r\n\r\n assetActionHandler.addAction(\"deleteAssets\", function (ids) {\r\n $scope.assetActionName = \"delete\";\r\n $scope.confirmAssetAction = function () {\r\n assetStoreService.deleteAssets(ids).then((response) => postAction(response.config.data));\r\n };\r\n confirmModal();\r\n });\r\n\r\n assetActionHandler.addAction(\"purgeAssets\", function (ids) {\r\n $scope.assetActionName = \"purge\";\r\n $scope.confirmAssetAction = function () {\r\n assetStoreService.purgeAssets(ids).then((response) => postAction(response.config.data.assetIds));\r\n };\r\n confirmModal();\r\n });\r\n\r\n assetActionHandler.addAction(\"restoreAssets\", function (ids) {\r\n $scope.assetActionName = \"restore\";\r\n $scope.confirmAssetAction = function () {\r\n assetStoreService.restoreAssets(ids).then((response) => postAction(response.config.data));\r\n };\r\n confirmModal();\r\n });\r\n\r\n assetActionHandler.addAction(\"unfavouriteAssets\", function (ids) {\r\n assetStoreService\r\n .favouriteAsset(ids, false)\r\n .then(() => {\r\n favouritesObserver.remove(ids);\r\n tracker.trackEvent(\"Favourite\", \"Remove\", \"Unfavourite from info panel\");\r\n })\r\n .catch(angular.noop);\r\n });\r\n\r\n assetActionHandler.addAction(\"favouriteAssets\", function (ids) {\r\n assetStoreService\r\n .favouriteAsset(ids, true)\r\n .then(() => {\r\n favouritesObserver.add(ids);\r\n tracker.trackEvent(\"Favourite\", \"Add\", \"Favourite from info panel\");\r\n })\r\n .catch(angular.noop);\r\n });\r\n\r\n assetActionHandler.addAction(\"editAssets\", function (ids) {\r\n //Broadcast to searchresult so we can open\r\n $rootScope.$broadcast(\"editResource\", ids[0]);\r\n });\r\n\r\n assetActionHandler.addAction(\"evidenceFilter\", () => {\r\n $rootScope.$broadcast(\"openRightHandSidePanel\", { panel: PANEL_CONSTANTS.PANEL.ASSET_FILTERING_PANEL, assetId: $scope.assetId });\r\n });\r\n\r\n $scope.addFilterButton = function (assetId) {\r\n if ($scope.isPublic) {\r\n return;\r\n }\r\n StandardsService.canFilterEvidence(assetId, false)\r\n .then((canFilterEvidence) => {\r\n if (canFilterEvidence) {\r\n $scope.extendedIWantToOptions.push(\r\n new IWantToOption(\r\n \"EvidenceFilter\",\r\n multiLanguageService.getString(\"buttons.iWantToHandler.evidence_filter\"),\r\n multiLanguageService.getString(\"buttons.i_want_to_extended_labels.evidence_filter\"),\r\n \"evidenceFilter\",\r\n 86,\r\n filterIcon\r\n )\r\n );\r\n }\r\n })\r\n .catch(angular.noop)\r\n .finally(() => {\r\n $scope.hasIWantToOptionsLoaded = true;\r\n });\r\n };\r\n\r\n $scope.setupIWantTo = function () {\r\n var type =\r\n $scope.asset.MainType === ASSET_CONSTANTS.TYPES.FORM || $scope.asset.MainType === ASSET_CONSTANTS.TYPES.WORKBOOK\r\n ? STORE_CONSTANTS.STORE_TYPE.RESOURCE\r\n : STORE_CONSTANTS.STORE_TYPE.ASSET;\r\n $scope.$on(\"executeIWantToOption\", function (event, iWantTo_event) {\r\n $scope.has_linked_assets = iWantTo_event.has_linked_assets;\r\n assetActionHandler.invoke(iWantTo_event.broadcast_name, iWantTo_event.for_ids, {\r\n type: type,\r\n scope: $scope\r\n });\r\n event.stopPropagation();\r\n });\r\n };\r\n\r\n var notifyOnUpdate = function () {\r\n pageReloadService.notifyOnUpdate();\r\n };\r\n\r\n // Check if a lock is needed\r\n var isLockRequired = function () {\r\n return (\r\n !$scope.isEditorPage &&\r\n !urlService.isPublic($location.url()) &&\r\n $scope.asset.AvailableActions.indexOf(\"Edit\") !== -1 &&\r\n $scope.viewerActions?.edit !== false\r\n );\r\n };\r\n\r\n $scope.setupLock = function () {\r\n // Check if a lock is required\r\n $scope.lockRequired = isLockRequired();\r\n if ($scope.lockRequired) {\r\n if (!recoveryLogger.isInProgress()) {\r\n recoveryLogger.start($scope.asset.MainType, \"Info panel init\");\r\n }\r\n recoveryLogger.step(\"lock\", `Locking via info panel`);\r\n return AssetLockingHelper.setupLock($scope.asset.Id, $scope.asset.MainType, \"\").catch(function (lockedInfo) {\r\n $scope.lockedInfo = lockedInfo;\r\n });\r\n } else {\r\n return $q.when();\r\n }\r\n };\r\n\r\n $scope.$on(\"tagRemoved\", notifyOnUpdate);\r\n $scope.$on(\"tagAdded\", notifyOnUpdate);\r\n $scope.$on(\"infoPanelLocalDataUpdate\", notifyOnUpdate);\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n scope.type = attrs.type;\r\n scope.assetFor = [scope.assetId];\r\n scope.iWantToString = \"i-want-to\";\r\n scope.assetInfoString = PANEL_CONSTANTS.PANEL.ASSET_INFO;\r\n scope.assetCommentsString = PANEL_CONSTANTS.PANEL.ASSET_COMMENTS;\r\n scope.assetFeedbackString = PANEL_CONSTANTS.PANEL.ASSET_FEEDBACK;\r\n scope.assetMappingString = PANEL_CONSTANTS.PANEL.ASSET_MAPPING;\r\n scope.assetVersioningString = PANEL_CONSTANTS.PANEL.ASSET_VERSIONING;\r\n scope.assetProgressTrackingString = PANEL_CONSTANTS.PANEL.ASSET_PROGRESS_TRACKING;\r\n\r\n /**\r\n * Cache all elements used by directive\r\n */\r\n scope.directive_wrapper_el = angular.element(element[0].getElementsByClassName(\"directive-holder\")[0]);\r\n\r\n scope._shortcuts = {\r\n [PANEL_CONSTANTS.PANEL.ASSET_COMMENTS]: getCommentsListShortcuts(scope.directive_wrapper_el[0], {\r\n multiLangService: multiLanguageService,\r\n scope: scope\r\n }),\r\n [PANEL_CONSTANTS.PANEL.ASSET_FEEDBACK]: getFeedbackListShortcuts(scope.directive_wrapper_el[0], {\r\n multiLangService: multiLanguageService,\r\n scope: scope\r\n })\r\n };\r\n\r\n scope.cacheElems = function () {\r\n scope.asset_info_btn_el = angular.element(element[0].getElementsByClassName(\"asset-info-btn\")[0]);\r\n scope.asset_comments_btn_el = angular.element(element[0].getElementsByClassName(\"asset-comments-btn\")[0]);\r\n scope.asset_feedback_btn_el = angular.element(element[0].getElementsByClassName(\"asset-feedback-btn\")[0]);\r\n scope.asset_mapping_btn_el = angular.element(element[0].getElementsByClassName(\"asset-mapping-btn\")[0]);\r\n scope.asset_progress_tracking_btn_el = angular.element(element[0].getElementsByClassName(\"asset-progress-tracking-btn\")[0]);\r\n scope.asset_version_btn_el = angular.element(element[0].getElementsByClassName(\"asset-versioning-btn\")[0]);\r\n };\r\n\r\n scope.setFocusOnCorrectTab = function () {\r\n element.addClass(\"no-transition\");\r\n setTimeout(function () {\r\n scope.cacheElems(); // after compile);\r\n switch (scope.type) {\r\n case PANEL_CONSTANTS.PANEL.ASSET_INFO:\r\n scope.asset_info_btn_el[0].focus();\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ASSET_COMMENTS:\r\n scope.asset_comments_btn_el[0].focus();\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ASSET_FEEDBACK:\r\n scope.asset_feedback_btn_el[0].focus();\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ASSET_PROGRESS_TRACKING:\r\n scope.asset_progress_tracking_btn_el[0].focus();\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ASSET_VERSIONING:\r\n scope.asset_version_btn_el[0].focus();\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ASSET_MAPPING:\r\n scope.asset_mapping_btn_el[0].focus();\r\n break;\r\n }\r\n }, 0);\r\n };\r\n\r\n scope.switchType = function (new_type) {\r\n if (new_type !== scope.type) {\r\n scope.type = new_type;\r\n scope.compileBody();\r\n }\r\n };\r\n\r\n scope._registerShortcutsForTab = (tabType) => {\r\n if (scope._shortcuts === null) {\r\n return;\r\n }\r\n scope._removeShortcuts();\r\n const shortcuts = scope._shortcuts[tabType];\r\n if (shortcuts !== undefined) {\r\n scope._removeShortcuts = shortcutManager.add(shortcuts, multiLanguageService.getString(\"shortcuts.group_descriptions.navigation\"));\r\n }\r\n };\r\n\r\n scope.compileBody = function () {\r\n var html = \"\";\r\n var new_scope = scope.$new(true);\r\n new_scope.asset = scope.asset;\r\n new_scope.assetId = scope.assetId;\r\n new_scope.anchorId = scope.anchorId;\r\n new_scope.pageId = scope.pageId;\r\n new_scope.isAssetType = scope.isAssetType;\r\n new_scope.lockedInfo = scope.lockedInfo;\r\n new_scope.isLocked = scope.isLocked;\r\n new_scope.submissionId = scope.submissionId;\r\n\r\n var panelActionData = scope.panelActionData;\r\n new_scope.showPreview = true;\r\n if (panelActionData) {\r\n if (panelActionData.jumpToSection) {\r\n new_scope.jumpTo = {\r\n scroll_el: element[0].getElementsByClassName(\"scroll-wrapper\")[0],\r\n class: panelActionData.jumpToSection\r\n };\r\n }\r\n\r\n if (panelActionData.elementToFocus) {\r\n new_scope.elementToFocus = {\r\n class: panelActionData.elementToFocus\r\n };\r\n }\r\n\r\n if (typeof panelActionData.preview !== \"undefined\") {\r\n new_scope.showPreview = panelActionData.preview;\r\n }\r\n\r\n new_scope.showTagger = true;\r\n if (panelActionData.excludeAssetFunctionality) {\r\n new_scope.showTagger = !panelActionData.excludeAssetFunctionality.contains(\"tagger\");\r\n }\r\n }\r\n\r\n switch (scope.type) {\r\n case PANEL_CONSTANTS.PANEL.ASSET_INFO:\r\n html = '';\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ASSET_COMMENTS:\r\n html = '';\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ASSET_FEEDBACK:\r\n html = '';\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ASSET_PROGRESS_TRACKING:\r\n html = '';\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ASSET_VERSIONING:\r\n html = '';\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ASSET_MAPPING:\r\n let userCanViewMappings = !scope.isPublic;\r\n\r\n if (userCanViewMappings && scope.asset.ShareCount > 0) {\r\n // IsMyShare is being checked to see if a collaborative share has been accepted.\r\n userCanViewMappings = scope.asset.Shares.some(\r\n (share) => scope.asset.CreatedBy === User.getId() || (share.ShareInfo.Collaborative && share.IsMyShare)\r\n );\r\n }\r\n\r\n html =\r\n '';\r\n break;\r\n }\r\n\r\n var compiledHtml = $compile(html)(new_scope);\r\n compiledHtml.on(\"$destroy\", function () {\r\n new_scope.$destroy();\r\n new_scope = null;\r\n });\r\n\r\n scope.directive_wrapper_el.empty();\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n scope.directive_wrapper_el.append(compiledHtml);\r\n\r\n if (scope.type === PANEL_CONSTANTS.PANEL.ASSET_FEEDBACK || scope.type === PANEL_CONSTANTS.PANEL.ASSET_MAPPING) {\r\n scope.hasLoaded = true;\r\n scope.setFocusOnCorrectTab();\r\n }\r\n\r\n scope._registerShortcutsForTab(scope.type);\r\n };\r\n\r\n scope.getShowProgressTracking = function () {\r\n assetProgressTrackingService\r\n .getProgressData(scope.assetId)\r\n .then(\r\n function () {\r\n scope.showProgressTracking = true;\r\n },\r\n function () {\r\n scope.showProgressTracking = false;\r\n }\r\n )\r\n .finally(function () {\r\n if (assetProgressTrackingService.isPublic(true)) {\r\n scope.showProgressTracking = false;\r\n }\r\n });\r\n };\r\n scope.getShowProgressTracking();\r\n\r\n scope.showFunctionality = function (functionality) {\r\n return !scope.excludeFunctionalityList.contains(functionality);\r\n };\r\n\r\n scope.$on(\"shareSuccessful\", function (event, assetIds) {\r\n if (assetIds && assetIds.contains(scope.assetId)) {\r\n scope.hasLoaded = false;\r\n scope.getAssetDetails().then(scope.compileBody);\r\n }\r\n });\r\n\r\n scope.$on(\"infoPanelContentLoaded\", function (event, hasLoaded, applyFocus) {\r\n scope.hasLoaded = hasLoaded;\r\n if (applyFocus) {\r\n scope.setFocusOnCorrectTab();\r\n }\r\n });\r\n\r\n scope.$on(\"infoPanelLocalDataUpdate\", function (event, property, value) {\r\n event.stopPropagation();\r\n\r\n var localStore = dataManagerService.dtos[scope.assetId];\r\n if (localStore && localStore.data) {\r\n scope.assetDtoHelper.updateModel(property, value, localStore.data, false, scope.assetId);\r\n }\r\n });\r\n\r\n element.on(\"$destroy\", function () {\r\n if (scope.lockRequired) {\r\n var activeLock = AssetLockingHelper.getActiveLockById(scope.asset.Id);\r\n if (activeLock) {\r\n activeLock.cancelAndUnlock();\r\n }\r\n }\r\n\r\n scope.$destroy();\r\n scope._removeShortcuts();\r\n });\r\n\r\n /**\r\n * Auto-run on start\r\n */\r\n scope.init = (function () {\r\n scope.addFilterButton(scope.assetId);\r\n $timeout(scope.cacheElems, 0);\r\n scope.getAssetDetails(function () {\r\n //Determine if item is asset or resource.\r\n assetStoreService\r\n .isAsset(scope.assetId, scope.asset.MainType)\r\n .then(function (response) {\r\n scope.isAssetType = response.data;\r\n if (!scope.isAssetType || scope.isPublic) {\r\n scope.excludeFunctionalityList.push(scope.assetFeedbackString);\r\n }\r\n\r\n const showVersioning =\r\n VersionHelper.isSupportedByAssetType(scope.asset.MainType, scope.asset.SubType) &&\r\n User.isVersioningEnabled() &&\r\n !scope.isPublic;\r\n if (!showVersioning || scope.anchorId !== undefined) {\r\n scope.excludeFunctionalityList.push(scope.assetVersioningString);\r\n }\r\n\r\n const userDto = User.getDto();\r\n if (\r\n !scope.isAssetType ||\r\n scope.asset.IsStandardsWorkBook ||\r\n userDto === null ||\r\n scope.anchorId !== undefined ||\r\n (!userDto.EnableMapMyLearning && !userDto.EnableStandardsWorkbooks)\r\n ) {\r\n scope.excludeFunctionalityList.push(scope.assetMappingString);\r\n }\r\n\r\n if (scope.anchorId !== undefined) {\r\n scope.excludeFunctionalityList.push(scope.assetInfoString);\r\n }\r\n\r\n scope.isEditorPage = urlService.checkIfOnBuilderForAsset(scope.asset.Id, scope.asset.MainType);\r\n scope.pageId = scope.isEditorPage ? $routeParams.pageId : \"\";\r\n })\r\n .then(scope.setupLock)\r\n .then(scope.compileBody)\r\n .then(scope.setupIWantTo);\r\n });\r\n })();\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
`;","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.filter(\"capitalize\", [\r\n function () {\r\n return function (input) {\r\n if (input) {\r\n input = input.charAt(0).toUpperCase() + input.slice(1);\r\n }\r\n\r\n return input;\r\n };\r\n }\r\n]);\r\n","import { REDIRECT_BLOCKING_PURPOSES } from \"../../constants/redirectBlockingPurposes.constants\";\r\n\r\nexport class UnsavedChangesPreventRedirectResolver {\r\n /**\r\n * @typedef UnsavedChangesWarningMessage\r\n * @type {object}\r\n * @property {string} cancelRedirectBtn\r\n * @property {string} continueBtn\r\n * @property {string} title\r\n * @property {string} message\r\n */\r\n\r\n /**\r\n * @param {{ logout: UnsavedChangesWarningMessage, locationChange: UnsavedChangesWarningMessage }} messages\r\n */\r\n constructor(messages) {\r\n this.purpose = REDIRECT_BLOCKING_PURPOSES.GENERIC;\r\n this._trackedIds = new Set();\r\n this._messages = messages;\r\n }\r\n\r\n addTrackedId(id) {\r\n if (!this._trackedIds.has(id)) {\r\n this._trackedIds.add(id);\r\n }\r\n }\r\n\r\n removeTrackedId(id) {\r\n if (this._trackedIds.has(id)) {\r\n this._trackedIds.delete(id);\r\n }\r\n }\r\n\r\n redirectionIsBlocked() {\r\n return this._trackedIds.size > 0;\r\n }\r\n\r\n onLocationChange(newUrl, currentUrl) {\r\n const nextRoute = newUrl.split(\"?\");\r\n const currentRoute = currentUrl.split(\"?\");\r\n const nextUrlParams = new URLSearchParams(nextRoute[1]);\r\n const currentUrlParams = new URLSearchParams(currentRoute[1]);\r\n const sameRoute = nextRoute[0] === currentRoute[0] && nextUrlParams.get(\"pageId\") === currentUrlParams.get(\"pageId\");\r\n\r\n return this.redirectionIsBlocked() ? { allowRedirect: sameRoute, removeWatcher: !sameRoute } : { allowRedirect: true, removeWatcher: !sameRoute };\r\n }\r\n\r\n getLogoutMessage() {\r\n return this._messages.logout;\r\n }\r\n\r\n getLocationChangeMessage() {\r\n return this._messages.locationChange;\r\n }\r\n\r\n cleanUp() {\r\n this._trackedIds.clear();\r\n }\r\n\r\n /**\r\n * @param {getString(): string} multiLanguageService\r\n * @returns {{ logout: UnsavedChangesWarningMessage, locationChange: UnsavedChangesWarningMessage }}\r\n */\r\n static defaultMessages(multiLanguageService, currentAppName) {\r\n const appName = multiLanguageService.getString(`app_name.${currentAppName}`);\r\n\r\n return {\r\n logout: {\r\n title: multiLanguageService.getString(\"logout.title_unsaved_changes\"),\r\n message: multiLanguageService.getString(\"logout.message_logout_unsaved_changes\", { app: appName }),\r\n continueBtn: multiLanguageService.getString(\"buttons.logout_without_saving\"),\r\n cancelRedirectBtn: multiLanguageService.getString(\"buttons.cancel\")\r\n },\r\n locationChange: {\r\n title: multiLanguageService.getString(\"logout.title_unsaved_changes\"),\r\n message: multiLanguageService.getString(\"logout.message_unsaved_changes\"),\r\n continueBtn: multiLanguageService.getString(\"buttons.discard_changes\"),\r\n cancelRedirectBtn: multiLanguageService.getString(\"buttons.cancel\")\r\n }\r\n };\r\n }\r\n}\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { warningNotice } from \"@pjs/core-ui\";\r\nimport \"../../react2angular/htmlNotice\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../tabSet/tabSet.component\";\r\nimport \"../../tabContent/tabContent.component\";\r\nimport \"../../autoFocus/autoFocus.directive\";\r\nimport \"../../messageAnnouncer/messageAnnouncer.directive\";\r\nimport \"../../formComponents/formElementInfo/formElementInfoService.service\";\r\nimport \"../../titledTextEditor/titledTextEditor.component\";\r\nimport \"../../persistentCompactRichTextEditor/peristentCompactRichTextEditor.component\";\r\nimport \"../../utilities/helpers\";\r\nimport template from \"./text-only-evidence.html\";\r\n\r\nclass TextOnlyEvidenceComponent extends NgComponent {\r\n constructor(multiLanguageService, formElementInfoService, helpers) {\r\n super();\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n this._formElementInfoService = formElementInfoService;\r\n this.helpers = helpers;\r\n this.justificationLabel = this.multiLanguageService.getString(\"labels.evidence.evidence_justification_editor\");\r\n\r\n this.writeTab = {\r\n active: true,\r\n id: \"write-tab\",\r\n title: multiLanguageService.getString(\"labels.add_evidence_sidebar.text_only_evidence.tabs.write\"),\r\n disabled: false\r\n };\r\n this.justifyTab = {\r\n active: false,\r\n id: \"justify-tab\",\r\n title: multiLanguageService.getString(\"labels.add_evidence_sidebar.text_only_evidence.tabs.justify\"),\r\n disabled: true\r\n };\r\n\r\n this.tabs = [this.writeTab, this.justifyTab];\r\n\r\n this.evidenceData = {\r\n justification: \"\",\r\n title: \"\",\r\n text: \"\",\r\n valid: false\r\n };\r\n this.originalEvidenceData = { ...this.evidenceData };\r\n this.isSaving = false;\r\n this.warningNotice = warningNotice;\r\n const labelType = multiLanguageService.getString(\"accessibility.notice.type.text_only_evidence\");\r\n this.warningLabel = multiLanguageService.getString(\"accessibility.notice.labels.warning\", { type: labelType });\r\n this.errorMsg = \"\";\r\n this.announcerMessage = \"\";\r\n\r\n this.richTextClassName = \"text-only-evidence__editor\";\r\n this.richTextEditorDatahook = \"text-only-evidence-justification\";\r\n this.richTextAutoFocus = true;\r\n this.onJustificationChange = this._updateJustification.bind(this);\r\n }\r\n\r\n _updateJustification(content) {\r\n this.evidenceData.justification = content;\r\n this.onChange(this._hasEvidenceDataChanged());\r\n }\r\n\r\n updateEvidenceEntry(content) {\r\n this.evidenceData.text = content;\r\n this.onChange(this._hasEvidenceDataChanged());\r\n this._validator();\r\n }\r\n\r\n updateEvidenceTitle() {\r\n this.onChange(this._hasEvidenceDataChanged());\r\n this._validator();\r\n }\r\n\r\n setActiveTab(activeTab) {\r\n this.tabs.forEach((tab) => (tab.active = tab.id === activeTab.id));\r\n }\r\n\r\n goToJustifyPanel() {\r\n this.setActiveTab(this.justifyTab);\r\n }\r\n\r\n goToEvidencePanel() {\r\n this.setActiveTab(this.writeTab);\r\n }\r\n\r\n saveEvidence() {\r\n this.announcerMessage = this.multiLanguageService.getString(\"labels.add_evidence_sidebar.text_only_evidence.a11y.evidence_being_saved\");\r\n this.isSaving = true;\r\n this.errorMsg = \"\";\r\n\r\n this._formElementInfoService\r\n .createTextOnlyEvidence(this.evidenceData.title, this.evidenceData.text)\r\n .then((response) => {\r\n const evidence = [\r\n {\r\n Id: response.data,\r\n Justification: this.evidenceData.justification\r\n }\r\n ];\r\n\r\n return this._formElementInfoService.addEvidence(this.assetId, this.elementId, evidence);\r\n })\r\n .then(() => {\r\n this.onSave();\r\n })\r\n .catch(() => {\r\n this.errorMsg = this.multiLanguageService.getString(\"labels.add_evidence_sidebar.save_error\");\r\n this.announcerMessage = this.errorMsg;\r\n })\r\n .finally(() => {\r\n this.isSaving = false;\r\n });\r\n }\r\n\r\n _validator() {\r\n this.evidenceData.valid = this.evidenceData.title.length >= 1 && /\\S/g.test(this.helpers.htmlToPlain(this.evidenceData.text));\r\n this.justifyTab.disabled = !this.evidenceData.valid;\r\n }\r\n\r\n _hasEvidenceDataChanged() {\r\n const titleChanged = this.originalEvidenceData.title !== this.evidenceData.title;\r\n const textChanged = this.originalEvidenceData.text !== this.evidenceData.text;\r\n const justificationChanged = this.originalEvidenceData.justification !== this.evidenceData.justification;\r\n\r\n return titleChanged || textChanged || justificationChanged;\r\n }\r\n}\r\n\r\nexport const TextOnlyEvidenceComponentDefinition = {\r\n bindings: {\r\n elementId: \"<\",\r\n assetId: \"<\",\r\n onSave: \"<\",\r\n onChange: \"<\"\r\n },\r\n template: template,\r\n controller: TextOnlyEvidenceComponent\r\n};\r\n\r\nTextOnlyEvidenceComponent.$inject = [\"multiLanguageService\", \"formElementInfoService\", \"helpers\"];\r\nangularAMD.component(\"textOnlyEvidence\", TextOnlyEvidenceComponentDefinition);\r\n","export default `

{{::$ctrl.multiLanguageService.getString('labels.add_evidence_sidebar.text_only_evidence.add_title')}}

{{::$ctrl.multiLanguageService.getString('labels.add_evidence_sidebar.text_only_evidence.add_subtext')}}

{{::$ctrl.multiLanguageService.getString('labels.add_evidence_sidebar.text_only_evidence.title_header')}}

{{::$ctrl.multiLanguageService.getString('labels.add_evidence_sidebar.justification_header')}}

{{::$ctrl.multiLanguageService.getString('labels.add_evidence_sidebar.justification_subtext')}}
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { assetEvidenceIcon, textEvidenceIcon, warningNotice } from \"@pjs/core-ui\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./add-evidence.html\";\r\nimport { UnsavedChangesPreventRedirectResolver } from \"../preventRedirect/resolvers/unsavedChangesPreventRedirectResolver\";\r\nimport \"../react2angular/htmlNotice\";\r\nimport \"../autoFocus/autoFocus.directive\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../utilities/subscriptionServiceProvider\";\r\nimport \"../assetSelector/assetSelector.service\";\r\nimport \"../modal/services/modal\";\r\nimport \"../preventRedirect/preventRedirect\";\r\nimport \"./evidenceJustification/evidenceJustification.component\";\r\nimport \"../formComponents/formElementInfo/formElementInfoService.service\";\r\nimport \"./textOnlyEvidence/textOnlyEvidence.component\";\r\nimport \"../capabilityCriteriaService/capabilityCriteriaService\";\r\nimport { MAP_TO_STANDARDS_CONSTANTS } from \"../constants/mapToStandards.constants\";\r\n\r\nclass AddEvidenceComponent extends NgComponent {\r\n constructor($rootScope, $scope, $q, multiLanguageService, subscriptionServiceProvider, modal, baseUrlsFactory, assetSelector, preventRedirect, formElementInfoService, capabilityCriteriaService) {\r\n super();\r\n\r\n this._$rootScope = $rootScope;\r\n this._$q = $q;\r\n this._$scope = $scope;\r\n this.multiLanguageService = multiLanguageService;\r\n this._subscriptionServiceProvider = subscriptionServiceProvider;\r\n this._preventRedirectResolver = new UnsavedChangesPreventRedirectResolver(UnsavedChangesPreventRedirectResolver.defaultMessages(multiLanguageService, $rootScope.appName.toLowerCase()));\r\n this._baseUrlsFactory = baseUrlsFactory;\r\n this._assetSelector = assetSelector;\r\n this._preventRedirect = preventRedirect;\r\n this._formElementInfoService = formElementInfoService;\r\n this.assetEvidenceIcon = assetEvidenceIcon.toString();\r\n this.textEvidenceIcon = textEvidenceIcon.toString();\r\n this.mappingsList = [];\r\n this._mappingsIndexedById = new Map();\r\n this._subscriptionId = \"addEvidenceInProgress\";\r\n this._changeTrackingId = `${this.assetId}-${this.anchorId}`;\r\n this._modal = modal;\r\n this.evidenceJustificationMode = MAP_TO_STANDARDS_CONSTANTS.EVIDENCE_MODE.ONE_JUSTIFICATION_FOR_ALL_ITEMS;\r\n this._justificationForAllEvidence = \"\";\r\n this.isSaving = false;\r\n this.warningNotice = warningNotice;\r\n const labelType = multiLanguageService.getString(\"accessibility.notice.type.evidence\");\r\n this.warningLabel = multiLanguageService.getString(\"accessibility.notice.labels.warning\", { type: labelType });\r\n this.errorMsg = \"\";\r\n this.assetSelectorOpen = false;\r\n this.textOnlyEvidenceOpen = false;\r\n this._selectAssetsPromise = null;\r\n this.setUnsavedChanges = this._setUnsavedChanges.bind(this);\r\n this.onTextOnlyEvidenceSave = this._onTextOnlyEvidenceSave.bind(this);\r\n this.evidenceCriteriaData = capabilityCriteriaService.getRenderData(this.evidenceCount, this.evidenceMinimum);\r\n }\r\n\r\n $onInit() {\r\n this._preventRedirect.addCustomResolver(this._preventRedirectResolver);\r\n this._subscriptionServiceProvider.subscribe(\"spaMenu\", this._subscriptionId, () => this._onSpaMenuAction());\r\n }\r\n\r\n $onDestroy() {\r\n if (this._selectAssetsPromise !== null) {\r\n this._selectAssetsPromise.abort();\r\n }\r\n this._cleanupBindings();\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.isActivePanel !== undefined && !changes.isActivePanel.isFirstChange()) {\r\n if (changes.isActivePanel.currentValue) {\r\n this.assetSelectorOpen = false;\r\n }\r\n }\r\n }\r\n\r\n openAssetSelector() {\r\n this.errorMsg = \"\";\r\n this.assetSelectorOpen = true;\r\n\r\n this._selectAssetsPromise = this._assetSelector\r\n .selectAssets({\r\n requiresWritePermission: true,\r\n excludeChildrenOf: [this.topLevelAssetId],\r\n excludeIds: [this.assetId, this.topLevelAssetId, ...this.evidenceAssetIds],\r\n includeUpload: true,\r\n currentlySelectedIds: [...this._mappingsIndexedById.keys()]\r\n })\r\n .then((data) => {\r\n this.evidenceJustificationMode =\r\n data.length > 1 && this._mappingsIndexedById.size > 1\r\n ? MAP_TO_STANDARDS_CONSTANTS.EVIDENCE_MODE.JUSTIFICATION_PER_ITEM\r\n : MAP_TO_STANDARDS_CONSTANTS.EVIDENCE_MODE.ONE_JUSTIFICATION_FOR_ALL_ITEMS;\r\n this._updateMappingJustificationModels(data);\r\n this.assetSelectorOpen = false;\r\n this._setUnsavedChanges(data.length > 0);\r\n });\r\n }\r\n\r\n openTextOnlyEvidence() {\r\n this.textOnlyEvidenceOpen = true;\r\n }\r\n\r\n closeEvidence() {\r\n if (this._preventRedirectResolver.redirectionIsBlocked()) {\r\n this._showConfirmationModal();\r\n } else {\r\n this._resetEvidence();\r\n }\r\n }\r\n\r\n closeSidebar() {\r\n if (this._preventRedirectResolver.redirectionIsBlocked()) {\r\n this._showConfirmationModal(this.closeInfo.closeAction);\r\n } else {\r\n this.closeInfo.closeAction();\r\n }\r\n }\r\n\r\n updateJustification(justification, evidenceId = \"\") {\r\n if (evidenceId === \"\") {\r\n this._justificationForAllEvidence = justification;\r\n } else {\r\n const mappingModel = this._mappingsIndexedById.get(evidenceId);\r\n mappingModel.Justification = justification;\r\n }\r\n }\r\n\r\n updateJustificationMode(mode) {\r\n this.evidenceJustificationMode = mode;\r\n }\r\n\r\n saveEvidence() {\r\n this.isSaving = true;\r\n this.errorMsg = \"\";\r\n\r\n let evidence = this.mappingsList.map((item) => {\r\n const evidenceItem = { Id: item.EvidenceId, Justification: \"\" };\r\n\r\n if (this.evidenceJustificationMode === MAP_TO_STANDARDS_CONSTANTS.EVIDENCE_MODE.ONE_JUSTIFICATION_FOR_ALL_ITEMS) {\r\n evidenceItem.Justification = this._justificationForAllEvidence;\r\n } else {\r\n const mappingModel = this._mappingsIndexedById.get(item.EvidenceId);\r\n evidenceItem.Justification = mappingModel !== undefined ? mappingModel.Justification : \"\";\r\n }\r\n\r\n return evidenceItem;\r\n });\r\n\r\n this._formElementInfoService\r\n .addEvidence(this.assetId, this.anchorId, evidence)\r\n .then(() => {\r\n this._preventRedirectResolver.cleanUp();\r\n this.closeSidebar();\r\n })\r\n .catch(() => {\r\n this.errorMsg = this.multiLanguageService.getString(\"labels.add_evidence_sidebar.save_error\");\r\n })\r\n .finally(() => {\r\n this.isSaving = false;\r\n });\r\n }\r\n\r\n _updateMappingJustificationModels(selectedAssets) {\r\n this.mappingsList = [];\r\n if (selectedAssets.length === 0) {\r\n this._mappingsIndexedById.clear();\r\n return;\r\n }\r\n\r\n for (const asset of selectedAssets) {\r\n let mappingModel = this._mappingsIndexedById.get(asset.Id);\r\n if (mappingModel === undefined) {\r\n mappingModel = {\r\n Title: asset.Title,\r\n Justification: \"\",\r\n EvidenceId: asset.Id,\r\n CapabilityId: this.anchorId\r\n };\r\n }\r\n\r\n this.mappingsList.push(mappingModel);\r\n this._mappingsIndexedById.set(asset.Id, mappingModel);\r\n }\r\n }\r\n\r\n _setUnsavedChanges(changes) {\r\n if (changes) {\r\n this._preventRedirectResolver.addTrackedId(this._changeTrackingId);\r\n } else {\r\n this._preventRedirectResolver.removeTrackedId(this._changeTrackingId);\r\n }\r\n }\r\n\r\n _onTextOnlyEvidenceSave() {\r\n this._preventRedirectResolver.cleanUp();\r\n this.closeSidebar();\r\n }\r\n\r\n _onSpaMenuAction() {\r\n if (this.isActivePanel && this._preventRedirectResolver.redirectionIsBlocked()) {\r\n this._showConfirmationModal(this.closeInfo.closeAction);\r\n return this._$q.reject(\"Preventing close due to user choice\");\r\n }\r\n return this._$q.resolve();\r\n }\r\n\r\n _cleanupBindings() {\r\n this._subscriptionServiceProvider.unsubscribe(\"spaMenu\", this._subscriptionId);\r\n this._preventRedirectResolver.cleanUp();\r\n this._preventRedirect.removeCustomResolver(this._preventRedirectResolver);\r\n }\r\n\r\n _showConfirmationModal(closeCallback = null) {\r\n if (!this._preventRedirect.doesExist) {\r\n const modalContent = this._preventRedirectResolver.getLocationChangeMessage();\r\n\r\n this._modal.launch(`${this._baseUrlsFactory.shared_component_base_url}preventRedirect/templates/warning-modal-alt.lazy.html`, {\r\n title: modalContent.title,\r\n message: modalContent.message,\r\n continueBtn: modalContent.continueBtn,\r\n cancelRedirectBtn: modalContent.cancelRedirectBtn,\r\n continue: () => {\r\n this._resetEvidence();\r\n if (closeCallback !== null) {\r\n closeCallback();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n _resetEvidence() {\r\n this._preventRedirectResolver.cleanUp();\r\n this._justificationForAllEvidence = \"\";\r\n this.textOnlyEvidenceOpen = false;\r\n this._mappingsIndexedById.clear();\r\n this.mappingsList = [];\r\n }\r\n}\r\n\r\nexport const addEvidenceComponentDefinition = {\r\n bindings: {\r\n anchorId: \"<\",\r\n assetId: \"<\",\r\n closeInfo: \"<\",\r\n evidenceAssetIds: \"<\",\r\n isActivePanel: \"<\",\r\n topLevelAssetId: \"<\",\r\n evidenceCount: \"<\",\r\n evidenceMinimum: \"<\"\r\n },\r\n template: template,\r\n controller: AddEvidenceComponent\r\n};\r\n\r\nAddEvidenceComponent.$inject = [\r\n \"$rootScope\",\r\n \"$scope\",\r\n \"$q\",\r\n \"multiLanguageService\",\r\n \"subscriptionServiceProvider\",\r\n \"modal\",\r\n \"baseUrlsFactory\",\r\n \"assetSelector\",\r\n \"preventRedirect\",\r\n \"formElementInfoService\",\r\n \"capabilityCriteriaService\"\r\n];\r\n\r\nangularAMD.component(\"addEvidence\", addEvidenceComponentDefinition);\r\n","export default `

{{ ::$ctrl.multiLanguageService.getString('labels.add_evidence_sidebar.add_evidence_heading') }}

0 && !$ctrl.assetSelectorOpen\" data-hook=\"multiple-justification_wrapper\" class=\"add-evidence__justification-panel\">

{{ ::$ctrl.multiLanguageService.getString('labels.add_evidence_sidebar.justification_header') }}

{{::$ctrl.multiLanguageService.getString('labels.add_evidence_sidebar.justification_subtext')}}
`;","import { CapabilityHistoryItem } from \"@pjs/form-response-element\";\r\nimport { WithBoundaryBridge } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"capabilityHistoryItem\", react2angular(WithBoundaryBridge(CapabilityHistoryItem), [\"onEditJustification\", \"historyItem\", \"isEditable\", \"answeredByCurrentUser\"]));\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../../pui/src/accordion/accordion.component\";\r\nimport \"../../../../pui/src/accordion/accordion-content.component\";\r\nimport \"../../../../pui/src/accordion/accordion-header.component\";\r\nimport \"../../../../pui/src/accordion/accordion-panel.component\";\r\nimport \"../../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../../react2angular/capabilityHistoryItem\";\r\nimport template from \"./answer-history-accordion.html\";\r\n\r\nclass AnswerHistoryAccordionComponent extends NgComponent {\r\n constructor(multiLanguageService) {\r\n super();\r\n\r\n this._multiLanguageService = multiLanguageService;\r\n this.accordionHeaderLevel = 3;\r\n this.accordionHeaderText = \"\";\r\n this.accordionLevel = 2;\r\n\r\n if (this.answerHistory.length > 0) {\r\n this._setAccordionHeader();\r\n }\r\n }\r\n\r\n _setAccordionHeader() {\r\n const topItem = this.answerHistory[0];\r\n const multiLangKeys = { name: topItem.lastUpdatedByName, value1: topItem.previousAnswer, value2: topItem.answer };\r\n\r\n const accordionHeaderKey = \"labels.answer_history.history_accordion_header\";\r\n const accordionHeaderAction = topItem.previousAnswer !== undefined ? \"_changed\" : \"_chose\";\r\n const accordionHeaderPerson = this.userId === topItem.lastUpdatedBy ? \"_you\" : \"_name\";\r\n\r\n const i18nKey = `${accordionHeaderKey}${accordionHeaderAction}${accordionHeaderPerson}`;\r\n\r\n this.accordionHeaderText = this._multiLanguageService.getString(i18nKey, multiLangKeys);\r\n }\r\n}\r\n\r\nconst AnswerHistoryAccordionDefinition = {\r\n bindings: {\r\n canEditJustification: \"<\",\r\n answerHistory: \"<\",\r\n onEditJustification: \"<\",\r\n userId: \"<\"\r\n },\r\n template: template,\r\n controller: AnswerHistoryAccordionComponent\r\n};\r\n\r\nAnswerHistoryAccordionComponent.$inject = [\"multiLanguageService\"];\r\n\r\nangularAMD.component(\"answerHistoryAccordion\", AnswerHistoryAccordionDefinition);\r\n\r\nexport { AnswerHistoryAccordionDefinition as answerHistoryAccordion };\r\n","export default `
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { ButtonClass, DialogSize, launchDialog } from \"@pjs/core-ui\";\r\nimport { mapCapabilityValueToLabel } from \"../../mapCapabilityValueToLabel/mapCapabilityValueToLabel\";\r\nimport \"./answerHistoryAccordion/answerHistoryAccordion.component\";\r\nimport \"../../../multiLanguageService/multiLanguageService\";\r\nimport \"../../../utilities/pebbleDate\";\r\nimport \"../../../user/user.service\";\r\nimport \"../../../utilities/helpers\";\r\nimport template from \"./answer-history.html\";\r\n\r\nclass AnswerHistoryComponent extends NgComponent {\r\n constructor($filter, $scope, multiLanguageService, User, helpers) {\r\n super();\r\n\r\n this._$filter = $filter;\r\n this._$scope = $scope;\r\n this.multiLanguageService = multiLanguageService;\r\n this.helpers = helpers;\r\n this.userId = User.getId();\r\n this.historyTitle = this.multiLanguageService.getString(\"labels.answer_history.answer_history_title\");\r\n this.historyItems = null;\r\n this.onEditJustification = this._editJustification.bind(this);\r\n this._setHistoryItems();\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.answerHistory !== undefined && !changes.answerHistory.isFirstChange()) {\r\n this._setHistoryItems();\r\n }\r\n }\r\n\r\n _createAndSortCapabilityHistoryArray() {\r\n return this.answerHistory\r\n .sort((a, b) => new Date(b.LastUpdatedOn) - new Date(a.LastUpdatedOn))\r\n .map((item) => {\r\n const answer = mapCapabilityValueToLabel(this.originalElement, item.Answer);\r\n const previousAnswer = item.PreviousAnswer !== \"\" ? mapCapabilityValueToLabel(this.originalElement, item.PreviousAnswer) : undefined;\r\n\r\n return {\r\n answer: answer,\r\n justification: item.Justification,\r\n lastUpdatedBy: item.LastUpdatedBy,\r\n lastUpdatedByName: item.LastUpdatedByName,\r\n lastUpdatedOnDate: this._$filter(\"pebbleDate\")(item.LastUpdatedOn, \"dateOnly\"),\r\n lastUpdatedOnTime: this._$filter(\"pebbleDate\")(item.LastUpdatedOn, \"timeOnly\"),\r\n originalItem: item,\r\n previousAnswer: previousAnswer\r\n };\r\n });\r\n }\r\n\r\n _editJustification(historyItem) {\r\n const cancelText = this.multiLanguageService.getString(\"buttons.cancel\");\r\n const confirmText = this.multiLanguageService.getString(\"buttons.confirm\");\r\n const initialModel = {\r\n newValue: mapCapabilityValueToLabel(this.originalElement, historyItem.originalItem.Answer),\r\n justificationContent: historyItem.justification\r\n };\r\n\r\n const currentValue = historyItem.originalItem.PreviousAnswer;\r\n\r\n if (currentValue !== \"\" && currentValue !== null) {\r\n initialModel.currentValue = mapCapabilityValueToLabel(this.originalElement, currentValue);\r\n }\r\n\r\n launchDialog({\r\n title: this.multiLanguageService.getString(\"capability_justification.justify\"),\r\n size: DialogSize.Large,\r\n component: () => import(\"@pjs/form-response-element\").then((module) => module.JustificationDialogContent),\r\n actions: [\r\n {\r\n label: cancelText,\r\n ariaLabel: cancelText,\r\n buttonClass: ButtonClass.Outlined,\r\n dataHook: \"justification-cancel-button\",\r\n disabled: () => false,\r\n action: (_, instance) => {\r\n instance.close();\r\n this._$scope.$applyAsync();\r\n }\r\n },\r\n {\r\n label: confirmText,\r\n ariaLabel: confirmText,\r\n buttonClass: ButtonClass.Contained,\r\n dataHook: \"justification-confirm-button\",\r\n disabled: (model) => !/\\S/g.test(this.helpers.htmlToPlain(model.justificationContent)),\r\n action: (model, instance) => {\r\n this._updateJustification(model.justificationContent);\r\n instance.close();\r\n this._$scope.$applyAsync();\r\n }\r\n }\r\n ],\r\n initialModel: initialModel\r\n });\r\n\r\n this._$scope.$applyAsync();\r\n }\r\n\r\n _setHistoryItems() {\r\n this.historyItems = this._createAndSortCapabilityHistoryArray();\r\n this.historyTitle = this.multiLanguageService.getString(\"labels.answer_history.answer_history_title\", { count: this.historyItems.length });\r\n }\r\n\r\n _updateJustification(justification) {\r\n this.onUpdateAnswerHistoryJustification(justification);\r\n }\r\n}\r\n\r\nconst AnswerHistoryDefinition = {\r\n bindings: {\r\n titleId: \"<\",\r\n answerHistory: \"<\",\r\n viewMode: \"<\",\r\n originalElement: \"<\",\r\n onUpdateAnswerHistoryJustification: \"<\"\r\n },\r\n template: template,\r\n controller: AnswerHistoryComponent\r\n};\r\n\r\nAnswerHistoryComponent.$inject = [\"$filter\", \"$scope\", \"multiLanguageService\", \"User\", \"helpers\"];\r\n\r\nangularAMD.component(\"answerHistory\", AnswerHistoryDefinition);\r\n\r\nexport { AnswerHistoryDefinition as answerHistory };\r\n","export default `

{{ $ctrl.historyTitle }}

{{ ::$ctrl.multiLanguageService.getString('labels.answer_history.no_history') }}
1\" on-edit-justification=\"::$ctrl.onEditJustification\" user-id=\"::$ctrl.userId\">
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { textEvidenceIcon, warningNotice } from \"@pjs/core-ui\";\r\nimport \"../../../react2angular/htmlNotice\";\r\nimport \"../../../react2angular/assetIcon\";\r\nimport \"../../../react2angular/icon\";\r\nimport \"../../../persistentCompactRichTextEditor/peristentCompactRichTextEditor.component\";\r\nimport \"../../../utilities/baseUrlsFactory\";\r\nimport \"../../../utilities/subscriptionServiceProvider\";\r\nimport \"../../../modal/services/modal\";\r\nimport \"../../../preventRedirect/preventRedirect\";\r\nimport template from \"./evidence-justification-editor.html\";\r\n\r\nclass EvidenceJustificationEditor extends NgComponent {\r\n constructor(multiLanguageService, formElementInfoService, modal, baseUrlsFactory, $sce) {\r\n super();\r\n\r\n this._formElementInfoService = formElementInfoService;\r\n this._modal = modal;\r\n this._baseUrlsFactory = baseUrlsFactory;\r\n this._$sce = $sce;\r\n this._originalEvidence = this.evidenceItem.originalEvidence;\r\n this.textEvidenceIcon = textEvidenceIcon;\r\n this.mappedEvidence = this.evidenceItem.mappedEvidence;\r\n this.multiLanguageService = multiLanguageService;\r\n this.noticeType = warningNotice;\r\n const labelType = multiLanguageService.getString(\"accessibility.notice.type.evidence_justification\");\r\n this.noticeLabel = multiLanguageService.getString(\"accessibility.notice.labels.warning\", { type: labelType });\r\n this.noticeMessage = \"\";\r\n this._latestJustification = this._$sce.trustAsHtml(this.mappedEvidence.justification).toString();\r\n this.announcerMessage = this.multiLanguageService.getString(\"labels.form_element_info.edit_evidence_justification.title\");\r\n this.richTextClassName = \"evidence-editing__rich-text-editor\";\r\n this.richTextEditorDataHook = \"justification-editor-text-editor\";\r\n this.richTextAutoFocus = true;\r\n this.justificationLabel = this.multiLanguageService.getString(\"labels.evidence.evidence_justification_editor\");\r\n\r\n if (this.mappedEvidence.justification === \"\") {\r\n this.saveButtonText = this.multiLanguageService.getString(\"labels.form_element_info.edit_evidence_justification.controls.confirm_add\");\r\n } else {\r\n this.saveButtonText = this.multiLanguageService.getString(\"labels.form_element_info.edit_evidence_justification.controls.confirm_edit\");\r\n }\r\n\r\n this.onSetEvidenceJustificationContent = this._setEvidenceJustificationContent.bind(this);\r\n this.onSaveEditedJustification = this._saveUpdatedEvidenceJustification.bind(this);\r\n this.onCancelClicked = this._cancelEdit.bind(this);\r\n this._hasLiveChanges = false;\r\n }\r\n\r\n $onDestroy() {\r\n this.preventRedirectResolver.removeTrackedId(this.evidenceItem.originalEvidence.AggregateId);\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.isActive !== undefined) {\r\n if (!changes.isActive.currentValue) {\r\n this.preventRedirectResolver.removeTrackedId(this.evidenceItem.originalEvidence.AggregateId);\r\n } else {\r\n if (this._hasLiveChanges) {\r\n this.preventRedirectResolver.addTrackedId(this.evidenceItem.originalEvidence.AggregateId);\r\n }\r\n }\r\n }\r\n }\r\n\r\n _setEvidenceJustificationContent(update) {\r\n const updateTrustedAsHtml = this._$sce.trustAsHtml(update).toString();\r\n if (updateTrustedAsHtml !== this._latestJustification) {\r\n this._latestJustification = updateTrustedAsHtml;\r\n if (!this.preventRedirectResolver.redirectionIsBlocked()) {\r\n this.preventRedirectResolver.addTrackedId(this.evidenceItem.originalEvidence.AggregateId);\r\n this._hasLiveChanges = true;\r\n }\r\n }\r\n }\r\n\r\n _saveUpdatedEvidenceJustification() {\r\n this.noticeMessage = \"\";\r\n this.announcerMessage = \"\";\r\n this._originalEvidence.Justification = this._latestJustification;\r\n this.isSavingEvidenceJustification = true;\r\n\r\n this._formElementInfoService\r\n .updateEvidenceJustification(this._originalEvidence)\r\n .then(() => {\r\n this.preventRedirectResolver.removeTrackedId(this.evidenceItem.originalEvidence.AggregateId);\r\n this._hasLiveChanges = false;\r\n this.onConfirmSave();\r\n })\r\n .catch(() => {\r\n this.noticeMessage = this.multiLanguageService.getString(\"labels.form_element_info.edit_evidence_justification.save_error\");\r\n this.announcerMessage = this.noticeMessage;\r\n })\r\n .finally(() => {\r\n this.isSavingEvidenceJustification = false;\r\n });\r\n }\r\n\r\n _cancelEdit() {\r\n if (!this.preventRedirectResolver.redirectionIsBlocked()) {\r\n this._hasLiveChanges = false;\r\n this.onCancelEdit();\r\n } else {\r\n this._showUnsavedChangesModal();\r\n }\r\n }\r\n\r\n _showUnsavedChangesModal() {\r\n const modalTemplateUrl = `${this._baseUrlsFactory.shared_component_base_url}preventRedirect/templates/warning-modal-alt.lazy.html`;\r\n\r\n this._modal.launch(modalTemplateUrl, {\r\n title: this.multiLanguageService.getString(\"logout.title_unsaved_changes\"),\r\n message: this.multiLanguageService.getString(\"logout.message_unsaved_changes\"),\r\n continueBtn: this.multiLanguageService.getString(\"buttons.discard_changes\"),\r\n cancelRedirectBtn: this.multiLanguageService.getString(\"buttons.cancel\"),\r\n continue: () => {\r\n this.preventRedirectResolver.removeTrackedId(this.evidenceItem.originalEvidence.AggregateId);\r\n this._hasLiveChanges = false;\r\n this.onCancelEdit();\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport const EvidenceJustificationEditorDefinition = {\r\n bindings: {\r\n evidenceItem: \"<\",\r\n onConfirmSave: \"<\",\r\n onCancelEdit: \"<\",\r\n isActive: \"<\",\r\n preventRedirectResolver: \"<\"\r\n },\r\n template: template,\r\n controller: EvidenceJustificationEditor\r\n};\r\n\r\nEvidenceJustificationEditor.$inject = [\"multiLanguageService\", \"formElementInfoService\", \"modal\", \"baseUrlsFactory\", \"$sce\"];\r\n\r\nangularAMD.component(\"evidenceJustificationEditor\", EvidenceJustificationEditorDefinition);\r\n","export default `
{{::$ctrl.multiLanguageService.getString('loading_spinner.saving')}}
{{::$ctrl.mappedEvidence.assetTitle}}
{{$ctrl.mappedEvidence.formattedDates}}
`;","import { AnswerEvidence } from \"@pjs/form-response-element\";\r\nimport { WithBoundaryBridge } from \"@pjs/core-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\r\n \"answerEvidence\",\r\n react2angular(WithBoundaryBridge(AnswerEvidence), [\r\n \"isEvidenceComplete\",\r\n \"isDisabled\",\r\n \"showMarkAsComplete\",\r\n \"evidence\",\r\n \"onToggleEvidenceIsComplete\",\r\n \"onEditJustification\",\r\n \"onDeleteEvidence\",\r\n \"onSelectEvidence\"\r\n ])\r\n);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nexport class RouteChangeModifier {\r\n constructor($rootScope, $location) {\r\n this._$rootScope = $rootScope;\r\n this._$location = $location;\r\n this._modifiers = [];\r\n }\r\n\r\n add(modifier) {\r\n this._register();\r\n this._modifiers.push(modifier);\r\n }\r\n\r\n _register() {\r\n this._successDestroy = this._$rootScope.$on(\"$routeChangeSuccess\", this._success.bind(this));\r\n this._errorDestroy = this._$rootScope.$on(\"$routeChangeError\", this._error.bind(this));\r\n }\r\n\r\n _destroy() {\r\n this._successDestroy();\r\n this._errorDestroy();\r\n }\r\n\r\n _success() {\r\n if (this._modifiers.length > 0) {\r\n for (const modifier of this._modifiers) {\r\n const abs = this._$location.absUrl();\r\n\r\n if (modifier.target === abs) {\r\n modifier.modifier();\r\n }\r\n }\r\n }\r\n\r\n this._modifiers.length = 0;\r\n this._destroy();\r\n }\r\n\r\n _error() {\r\n this._modifiers.length = 0;\r\n this._destroy();\r\n }\r\n}\r\n\r\nRouteChangeModifier.$inject = [\"$rootScope\", \"$location\"];\r\nangularAMD.service(\"routeChangeModifier\", RouteChangeModifier);\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { warningNotice, successNotice } from \"@pjs/core-ui\";\r\nimport { ASSET_CONSTANTS } from \"../../constants/asset.constants\";\r\nimport \"./formElementInfoService.service\";\r\nimport \"./answerHistory/answerHistory.component\";\r\nimport \"./evidence/evidenceJustificationEditor.component\";\r\nimport \"../../react2angular/dismissableHtmlNotice\";\r\nimport \"../../react2angular/htmlNotice\";\r\nimport \"../../react2angular/answerEvidence\";\r\nimport \"../../utilities/pebbleDate\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../utilities/urlService\";\r\nimport \"../../user/user.service\";\r\nimport \"../../modal/services/modal\";\r\nimport \"../../messageAnnouncer/messageAnnouncer.directive\";\r\nimport \"../../capabilityCriteriaService/capabilityCriteriaService\";\r\nimport \"../../history/services/historyService\";\r\nimport \"../../history/services/routeChangeModifier.service\";\r\nimport template from \"./form-element-info.html\";\r\nimport { FOCUS_CONSTANTS } from \"../../constants/focus.constants\";\r\n\r\nclass FormElementInfoComponent extends NgComponent {\r\n constructor(\r\n $scope,\r\n $element,\r\n $routeParams,\r\n $timeout,\r\n $filter,\r\n $location,\r\n $window,\r\n $sce,\r\n formElementInfoService,\r\n multiLanguageService,\r\n urlService,\r\n User,\r\n modal,\r\n capabilityCriteriaService,\r\n historyService,\r\n routeChangeModifier\r\n ) {\r\n super();\r\n\r\n this._$scope = $scope;\r\n this._$element = $element;\r\n this._$timeout = $timeout;\r\n this._$filter = $filter;\r\n this._$location = $location;\r\n this._$window = $window;\r\n this._$sce = $sce;\r\n this._formElementInfoService = formElementInfoService;\r\n this._modal = modal;\r\n this._urlService = urlService;\r\n this._historyService = historyService;\r\n this._routeChangeModifier = routeChangeModifier;\r\n this._routeParam = $routeParams.assetId;\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n\r\n this.customSuccessNotice = {\r\n colour: successNotice.colour,\r\n icon: \"\"\r\n };\r\n\r\n this.evidenceNoticeType = this.customSuccessNotice;\r\n this._evidenceLabelType = this.multiLanguageService.getString(\"accessibility.notice.type.evidence\");\r\n this.evidenceNoticeLabel = this.multiLanguageService.getString(\"accessibility.notice.labels.success\", { type: this._evidenceLabelType });\r\n this.evidenceNoticeMessage = \"\";\r\n this.elementInfo = null;\r\n this._elementData = null;\r\n this.formElementInfo = null;\r\n this.evidenceData = null;\r\n this.showAnswerHistory = false;\r\n this.announcerMessage = \"\";\r\n this._evidenceTitleFocusTimeout = null;\r\n this._evidenceMenuFocusTimeout = null;\r\n this._userExists = User.getDto() !== null;\r\n this._timeslice = urlService.getTimesliceFromRoute();\r\n\r\n this.historyTitleId = `history-title-${this.elementId}`;\r\n this.evidenceTitleId = `evidence-title-${this.elementId}`;\r\n\r\n this.loadingErrorMessage = multiLanguageService.getString(\"labels.form_element_info.get_error\");\r\n this.addEvidenceButtonText = multiLanguageService.getString(\"labels.form_element_info.add_evidence_button\");\r\n this.loading = true;\r\n this.isEditingEvidenceJustification = false;\r\n this.evidenceSectionTitle = `${this.multiLanguageService.getString(\"labels.form_element_info.evidence_info.title\")} (0)`;\r\n this.onUpdateAnswerHistoryJustification = this._updateAnswerHistoryJustification.bind(this);\r\n this.onBeginUpdateEvidenceJustification = this._beginUpdateEvidenceJustification.bind(this);\r\n this.onCancelUpdateEvidenceJustification = this._cancelUpdateEvidenceJustification.bind(this);\r\n this.onCompleteUpdateEvidenceJustification = this._completeUpdateEvidenceJustification.bind(this);\r\n this.onEvidenceNoticeDismiss = this.onEvidenceNoticeDismiss.bind(this);\r\n this.onDeleteEvidence = this.onDeleteEvidence.bind(this);\r\n this.onSelectEvidence = this.onSelectEvidence.bind(this);\r\n\r\n this.editingEvidenceItem = {\r\n mappedEvidence: null,\r\n originalEvidence: null\r\n };\r\n\r\n this._capabilityCriteriaService = capabilityCriteriaService;\r\n this.evidenceCriteriaScreenReaderMessage = \"\";\r\n }\r\n\r\n $onInit() {\r\n this._loadElementData();\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.elementId !== undefined && !changes.elementId.isFirstChange()) {\r\n this._loadElementData();\r\n }\r\n }\r\n\r\n $onDestroy() {\r\n this._$timeout.cancel(this._evidenceTitleFocusTimeout);\r\n this._$timeout.cancel(this._evidenceMenuFocusTimeout);\r\n }\r\n\r\n async _loadElementData() {\r\n this.loading = true;\r\n this.historyTitleId = `history-title-${this.elementId}`;\r\n this.evidenceTitleId = `evidence-title-${this.elementId}`;\r\n\r\n this._setLoadingMessage();\r\n // This await is used to wait for the digest triggered by this.loading = false\r\n // to be completed so elements hidden by an ng-if can be focused\r\n await this._setCurrentElement().then(() => (this.loading = false));\r\n // This must be called outside of the digest triggered by this.loading = false\r\n // Calling this within the .then() above will cause focusing to fail as the .then\r\n // is in the middle of a digest and the elements are not yet visible\r\n this._onElementLoadComplete();\r\n }\r\n\r\n /**\r\n * !!! Must be called outside of a digest !!!\r\n * Used to focus titles during the loading process and\r\n * calls the onLoadComplete callback if set\r\n * @private\r\n */\r\n _onElementLoadComplete() {\r\n this.highlightEvidenceId = \"\";\r\n\r\n if (this.evidenceAnchorId !== \"\") {\r\n this.highlightEvidenceId = `evidence-item-${this.evidenceAnchorId}`;\r\n const anchorEvidenceTitle = document.getElementById(`evidence-title-${this.evidenceAnchorId}`);\r\n anchorEvidenceTitle.focus({ preventScroll: true });\r\n } else {\r\n let focusTitleElement = null;\r\n if (this.focusTitleType === FOCUS_CONSTANTS.SIDEBAR.HISTORY_TITLE) {\r\n focusTitleElement = document.getElementById(this.historyTitleId);\r\n } else if (this.focusTitleType === FOCUS_CONSTANTS.SIDEBAR.EVIDENCE_TITLE) {\r\n focusTitleElement = document.getElementById(this.evidenceTitleId);\r\n }\r\n\r\n if (focusTitleElement !== null) {\r\n focusTitleElement.focus();\r\n }\r\n }\r\n\r\n if (typeof this.onLoadComplete === \"function\") {\r\n this.onLoadComplete();\r\n }\r\n }\r\n\r\n _setLoadingMessage() {\r\n if (this.isCapability) {\r\n this.announcerMessage = this.multiLanguageService.getString(\"labels.form_element_toolbar.a11y.capability_sidebar_opened\");\r\n } else {\r\n this.announcerMessage = this.multiLanguageService.getString(\"labels.form_element_toolbar.a11y.evidence_sidebar_opened\");\r\n }\r\n }\r\n\r\n _resetEvidenceNotice() {\r\n this.evidenceNoticeType = null;\r\n this.evidenceNoticeMessage = \"\";\r\n this.evidenceNoticeLabel = \"\";\r\n }\r\n\r\n addEvidence() {\r\n this.evidenceCriteriaScreenReaderMessage = \"\";\r\n\r\n const callbacks = {\r\n onEvidenceAdded: (evidence) => this._onEvidenceAdded(evidence)\r\n };\r\n\r\n this.announcerMessage = \"\";\r\n this._resetEvidenceNotice();\r\n\r\n if (this.onAddEvidence !== undefined) {\r\n this.onAddEvidence();\r\n }\r\n\r\n const evidenceCount = this.elementInfo.Evidence.length;\r\n const evidenceMinimum = this.formElementInfo.originalElement.Evidence.MinimumRequiredCount;\r\n\r\n const data = {\r\n info: this._elementData.elementInfo,\r\n callbacks: callbacks,\r\n assetId: this.assetId,\r\n topLevelAssetId: this.topLevelAssetId,\r\n evidenceCount: evidenceCount,\r\n evidenceMinimum: evidenceMinimum\r\n };\r\n\r\n this._formElementInfoService.openAddEvidenceSidebar(data);\r\n }\r\n\r\n _setCurrentElement() {\r\n this.evidenceCriteriaScreenReaderMessage = \"\";\r\n\r\n return this._formElementInfoService\r\n .getElementDetails(this.elementId, this.assetId, this._timeslice)\r\n .then((response) => {\r\n this.elementInfo = response.data;\r\n this._elementData = this._formElementInfoService.getElementData(this.elementId);\r\n this.formElementInfo = this._elementData.elementInfo;\r\n\r\n this._setEvidenceData();\r\n this.evidenceSectionTitle = `${this.multiLanguageService.getString(\"labels.form_element_info.evidence_info.title\")} (${this.evidenceData.evidenceCount})`;\r\n this.showAnswerHistory = response.data.AnswerHistory !== null;\r\n\r\n if (this.elementInfo.IsCapability) {\r\n this.announcerMessage = this.multiLanguageService.getString(\"labels.form_element_info.a11y.capability_loaded\");\r\n } else {\r\n this.announcerMessage = this.multiLanguageService.getString(\"labels.form_element_info.a11y.evidence_loaded\");\r\n }\r\n })\r\n .catch(() => {\r\n this.announcerMessage = this.loadingErrorMessage;\r\n });\r\n }\r\n\r\n _beginUpdateEvidenceJustification(evidenceItem) {\r\n this.evidenceNoticeMessage = \"\";\r\n this.editingEvidenceItem = {\r\n mappedEvidence: evidenceItem,\r\n originalEvidence: this.elementInfo.Evidence.find((evidence) => evidence.AggregateId === evidenceItem.aggregateId)\r\n };\r\n\r\n this.isEditingEvidenceJustification = true;\r\n\r\n if (evidenceItem.justification !== \"\") {\r\n this.evidenceSectionTitle = this.multiLanguageService.getString(\"labels.form_element_info.edit_evidence_justification.title\");\r\n } else {\r\n this.evidenceSectionTitle = this.multiLanguageService.getString(\"labels.form_element_info.add_evidence_justification_title\");\r\n }\r\n\r\n if (this.onEditStateChange !== undefined) {\r\n this.onEditStateChange(true);\r\n }\r\n\r\n this._$scope.$applyAsync();\r\n }\r\n\r\n _completeUpdateEvidenceJustification() {\r\n const editedElementId = this.editingEvidenceItem.mappedEvidence.aggregateId;\r\n this._clearEditingEvidenceState();\r\n this.evidenceNoticeType = this.customSuccessNotice;\r\n this.evidenceNoticeMessage = this.multiLanguageService.getString(\"labels.form_element_info.edit_evidence_justification_success\");\r\n this.evidenceNoticeLabel = this.multiLanguageService.getString(\"accessibility.notice.labels.success\", { type: this._evidenceLabelType });\r\n\r\n this._setCurrentElement().then(() => {\r\n this._focusEvidenceTitleById(editedElementId);\r\n });\r\n this.announcerMessage = this.evidenceNoticeMessage;\r\n }\r\n\r\n _clearEditingEvidenceState() {\r\n this.isEditingEvidenceJustification = false;\r\n this.evidenceSectionTitle = `${this.multiLanguageService.getString(\"labels.form_element_info.evidence_info.title\")} (${this.evidenceData.evidenceCount})`;\r\n this.evidenceNoticeMessage = \"\";\r\n this.editingEvidenceItem = {\r\n mappedEvidence: null,\r\n originalEvidence: null\r\n };\r\n this.preventRedirectResolver.cleanUp();\r\n\r\n if (this.onEditStateChange !== undefined) {\r\n this.onEditStateChange(false);\r\n }\r\n }\r\n\r\n _cancelUpdateEvidenceJustification() {\r\n const editedElementId = this.editingEvidenceItem.mappedEvidence.aggregateId;\r\n this._clearEditingEvidenceState();\r\n this._focusEvidenceTitleById(editedElementId);\r\n }\r\n\r\n _focusEvidenceTitleById(aggregateId) {\r\n this._evidenceTitleFocusTimeout = this._$timeout(() => {\r\n const element = document.getElementById(`evidence-title-${aggregateId}`);\r\n if (element !== null) {\r\n element.focus();\r\n }\r\n });\r\n }\r\n\r\n _focusEvidenceActionMenuById(aggregateId) {\r\n this._evidenceMenuFocusTimeout = this._$timeout(() => {\r\n const element = document.getElementById(`evidence-action-menu-${aggregateId}`);\r\n if (element !== null) {\r\n element.focus();\r\n }\r\n });\r\n }\r\n\r\n _updateAnswerHistoryJustification(justification) {\r\n this._formElementInfoService.updateAnswerHistoryJustification(this.elementId, justification);\r\n }\r\n\r\n _removeEvidenceItem(evidence) {\r\n this.evidenceData.disabled = true;\r\n\r\n this._formElementInfoService\r\n .removeEvidence(this.assetId, this.elementInfo.ElementId, evidence.aggregateId)\r\n .then((elementInfo) => {\r\n this.evidenceData.disabled = false;\r\n const updatedEvidence = this.elementInfo.Evidence.filter((item) => item.AggregateId !== evidence.aggregateId);\r\n if (updatedEvidence.length === 0) {\r\n const addEvidenceElement = document.getElementById(\"add-evidence-button\");\r\n if (addEvidenceElement !== null) {\r\n addEvidenceElement.focus();\r\n }\r\n } else {\r\n const currentIndex = this.elementInfo.Evidence.findIndex((item) => item.AggregateId === evidence.aggregateId);\r\n if (currentIndex + 1 > updatedEvidence.length) {\r\n const lastEvidenceId = updatedEvidence[updatedEvidence.length - 1].AggregateId;\r\n this._focusEvidenceTitleById(lastEvidenceId);\r\n } else {\r\n const nextEvidenceId = updatedEvidence[currentIndex].AggregateId;\r\n this._focusEvidenceTitleById(nextEvidenceId);\r\n }\r\n }\r\n\r\n this.elementInfo.Evidence = updatedEvidence;\r\n if (elementInfo.status !== \"\") {\r\n this.elementInfo.EvidenceStatus = elementInfo.status;\r\n this.formElementInfo.evidenceStatus = elementInfo.status;\r\n }\r\n\r\n this.evidenceNoticeType = this.customSuccessNotice;\r\n this.evidenceNoticeLabel = this.multiLanguageService.getString(\"accessibility.notice.labels.success\", { type: this._evidenceLabelType });\r\n this.evidenceNoticeMessage = this.multiLanguageService.getString(\"labels.form_element_info.delete_evidence.success_message\");\r\n this.announcerMessage = this.multiLanguageService.getString(\"labels.form_element_info.a11y.evidence_deleted\");\r\n })\r\n .catch(() => {\r\n this.evidenceNoticeType = warningNotice;\r\n this.evidenceNoticeLabel = this.multiLanguageService.getString(\"accessibility.notice.labels.warning\", { type: this._evidenceLabelType });\r\n this.evidenceNoticeMessage = this.multiLanguageService.getString(\"labels.form_element_info.delete_evidence.error_message\");\r\n this.announcerMessage = this.multiLanguageService.getString(\"labels.form_element_info.a11y.evidence_delete_failed\");\r\n this._focusEvidenceActionMenuById(evidence.aggregateId);\r\n })\r\n .finally(() => {\r\n this._setEvidenceData();\r\n this.evidenceSectionTitle = `${this.multiLanguageService.getString(\"labels.form_element_info.evidence_info.title\")} (${this.evidenceData.evidenceCount})`;\r\n });\r\n }\r\n\r\n onSelectEvidence(evidence, newTab, event) {\r\n if (event !== undefined && (event.ctrlKey || event.shiftKey)) {\r\n return;\r\n }\r\n\r\n if (!newTab) {\r\n const targetUrl = this._urlService.convertRouteToFullUrl(evidence.assetLink);\r\n const historyModifierInfo = {\r\n target: targetUrl,\r\n modifier: () => this._historyService.updateHistory(this._routeParam, { anchorInfo: { elementId: this.elementInfo.ElementId, evidenceId: evidence.aggregateId } })\r\n };\r\n\r\n this._routeChangeModifier.add(historyModifierInfo);\r\n }\r\n\r\n if (event === undefined) {\r\n if (newTab) {\r\n const windowReference = this._$window.open();\r\n windowReference.sessionStorage.clear();\r\n windowReference.location = evidence.assetLink;\r\n } else {\r\n this._$location.url(this._urlService.removeHash(evidence.assetLink));\r\n this._$scope.$applyAsync();\r\n }\r\n }\r\n }\r\n\r\n onDeleteEvidence(evidence) {\r\n this._resetEvidenceNotice();\r\n this.evidenceCriteriaScreenReaderMessage = \"\";\r\n const removeEvidenceModalScope = {\r\n message: this.multiLanguageService.getString(\"labels.form_element_info.delete_evidence.modal_content\"),\r\n title: this.multiLanguageService.getString(\"labels.form_element_info.delete_evidence.modal_title\"),\r\n okay_button_label: this.multiLanguageService.getString(\"buttons.confirm\"),\r\n cancel_button_label: this.multiLanguageService.getString(\"buttons.cancel\")\r\n };\r\n\r\n removeEvidenceModalScope.on_okay_fn = () => {\r\n this.announcerMessage = this.multiLanguageService.getString(\"labels.form_element_info.a11y.evidence_being_deleted\");\r\n this._removeEvidenceItem(evidence);\r\n };\r\n\r\n this._modal.launch(this._modal.genericTemplates.popupWithButtons, removeEvidenceModalScope);\r\n this._$scope.$applyAsync();\r\n }\r\n\r\n onEvidenceNoticeDismiss() {\r\n this._resetEvidenceNotice();\r\n this._$scope.$applyAsync();\r\n }\r\n\r\n _setEvidenceData() {\r\n const evidenceCount = this.elementInfo.Evidence.length;\r\n const evidenceMinimum = this.formElementInfo.originalElement.Evidence.MinimumRequiredCount;\r\n\r\n const evidenceCriteriaData = this._capabilityCriteriaService.getRenderData(evidenceCount, evidenceMinimum);\r\n\r\n const evidenceIsComplete = this._capabilityCriteriaService.getBlockIsComplete(\r\n this.formElementInfo.evidenceStatus === ASSET_CONSTANTS.EVIDENCE_STATES.FULLY_EVIDENCED,\r\n evidenceCount,\r\n evidenceMinimum\r\n );\r\n\r\n const criteriaIsAvailable = this._capabilityCriteriaService.isCriteriaAvailable(evidenceMinimum);\r\n const disabled = this.viewMode;\r\n\r\n this.evidenceData = {\r\n showMarkAsComplete: !criteriaIsAvailable,\r\n isEvidenceComplete: evidenceIsComplete,\r\n disabled: disabled,\r\n evidence: this.elementInfo.Evidence.map((evidence) => this._mapEvidence(evidence)),\r\n evidenceCount: evidenceCount,\r\n onToggleEvidenceIsComplete: this._toggleEvidenceStatus.bind(this),\r\n evidenceMessage: evidenceCriteriaData.message,\r\n evidenceCriteriaAriaLabel: evidenceCriteriaData.ariaLabel,\r\n evidenceNoticeType: evidenceCriteriaData.notice\r\n };\r\n\r\n this.evidenceCriteriaScreenReaderMessage = evidenceCriteriaData.message;\r\n }\r\n\r\n _onEvidenceAdded(newEvidence) {\r\n this.announcerMessage = this.multiLanguageService.getString(\"labels.form_element_info.a11y.evidence_added\", { count: newEvidence.length });\r\n this.evidenceNoticeType = this.customSuccessNotice;\r\n this.evidenceNoticeLabel = this.multiLanguageService.getString(\"accessibility.notice.labels.success\", { type: this._evidenceLabelType });\r\n this.evidenceNoticeMessage = this.multiLanguageService.getString(\"labels.form_element_info.add_evidence.success_message\");\r\n\r\n this.elementInfo.Evidence = [...newEvidence, ...this.elementInfo.Evidence];\r\n this._setEvidenceData();\r\n\r\n this.evidenceSectionTitle = `${this.multiLanguageService.getString(\"labels.form_element_info.evidence_info.title\")} (${this.evidenceData.evidenceCount})`;\r\n this._focusEvidenceTitleById(this.elementInfo.Evidence[0].AggregateId);\r\n this.preventRedirectResolver.cleanUp();\r\n }\r\n\r\n _mapEvidence(evidence) {\r\n let assetLink = \"\";\r\n let assetTitle = evidence.Title;\r\n let evidenceId = evidence.Id;\r\n\r\n if (evidenceId !== null) {\r\n assetLink = this._urlService.createHashUrl(evidence.Id, null, this.viewMode, !this._userExists, this._timeslice, \"\", true);\r\n } else {\r\n evidenceId = \"\";\r\n assetTitle = this.multiLanguageService.getString(\"labels.form_element_info.justification_only\");\r\n }\r\n\r\n return {\r\n aggregateId: evidence.AggregateId,\r\n assetId: evidenceId,\r\n assetTitle: assetTitle,\r\n justification: evidence.Justification !== null ? this._$sce.trustAsHtml(evidence.Justification).toString() : \"\",\r\n assetLink: assetLink,\r\n mainType: evidence.MainType,\r\n subType: evidence.SubType,\r\n evidenceTitleId: `evidence-title-${evidence.AggregateId}`,\r\n evidenceMenuId: `evidence-action-menu-${evidence.AggregateId}`,\r\n formattedDates: this.multiLanguageService.getString(\"labels.form_element_info.evidence_info.date\", {\r\n createdTime: this._$filter(\"pebbleDate\")(evidence.Created, \"timeOnly\"),\r\n createdDate: this._$filter(\"pebbleDate\")(evidence.Created, \"dateOnly\"),\r\n modifiedDate: this._$filter(\"pebbleDate\")(evidence.Modified, \"dateOnly\")\r\n })\r\n };\r\n }\r\n\r\n _toggleEvidenceStatus() {\r\n this.evidenceData.isEvidenceComplete = this._formElementInfoService.updateEvidenceStatus(this.elementId, !this.evidenceData.isEvidenceComplete);\r\n this._$scope.$applyAsync();\r\n }\r\n}\r\n\r\nexport const FormElementInfoComponentDefinition = {\r\n bindings: {\r\n elementId: \"<\",\r\n isCapability: \"<\",\r\n assetId: \"<\",\r\n topLevelAssetId: \"<\",\r\n viewMode: \"<\",\r\n evidenceAnchorId: \"<\",\r\n focusTitleType: \"

{{$ctrl.evidenceSectionTitle}}

{{$ctrl.loadingErrorMessage }}

`;","import { shortcutManager } from \"@pjs/core-ui\";\r\nimport { noop } from \"@pjs/utilities\";\r\nimport { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./element-info-panel.html\";\r\nimport { PANEL_CONSTANTS } from \"../constants/panel.constants\";\r\nimport { UnsavedChangesPreventRedirectResolver } from \"../preventRedirect/resolvers/unsavedChangesPreventRedirectResolver\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../utilities/subscriptionServiceProvider\";\r\nimport \"../modal/services/modal\";\r\nimport \"../preventRedirect/preventRedirect\";\r\nimport \"../formComponents/formElementInfo/formElementInfo.component\";\r\nimport \"../feedbackListWrapper/feedbackListWrapper.component\";\r\nimport \"../spaMenu/assetInfoPanel/assetComments/assetComments\";\r\nimport \"../tabSet/tabSet.component\";\r\nimport \"../tabContent/tabContent.component\";\r\nimport { getCommentsListShortcuts } from \"../spaMenu/assetInfoPanel/assetComments/getCommentsListShortcuts.function\";\r\nimport { getFeedbackListShortcuts } from \"../feedbackList/getFeedbackListShortcuts.function\";\r\n\r\nclass ElementInfoPanelComponent extends NgComponent {\r\n constructor(multiLanguageService, modal, subscriptionServiceProvider, baseUrlsFactory, $q, preventRedirect, $rootScope, $scope) {\r\n super();\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n this._modal = modal;\r\n this._subscriptionServiceProvider = subscriptionServiceProvider;\r\n this._subscriptionId = \"element-info\";\r\n this.preventRedirectResolver = new UnsavedChangesPreventRedirectResolver(\r\n UnsavedChangesPreventRedirectResolver.defaultMessages(multiLanguageService, $rootScope.appName.toLowerCase())\r\n );\r\n this._$q = $q;\r\n this._$rootScope = $rootScope;\r\n this._$scope = $scope;\r\n this._preventRedirect = preventRedirect;\r\n this._baseUrlsFactory = baseUrlsFactory;\r\n\r\n const evidenceAllowed = this.panelData.evidenceAllowed || this.panelData.isCapability;\r\n if (this.viewerActions !== undefined && this.viewerActions.infoPanel !== undefined) {\r\n this._canViewElementInfo = this.viewerActions.infoPanel[\"element-info\"] && evidenceAllowed;\r\n } else {\r\n this._canViewElementInfo = evidenceAllowed;\r\n }\r\n\r\n this._locationChangeSuccessHandler = null;\r\n\r\n this.infoTab = {\r\n active: false,\r\n id: \"element-info\",\r\n title: this.panelData.tabTitle,\r\n canView: this._canViewElementInfo,\r\n disabled: false\r\n };\r\n this.commentsTab = {\r\n active: false,\r\n id: \"element-comments\",\r\n title: multiLanguageService.getString(\"asset_summary.headings.comments\"),\r\n canView: this.panelData.commentsAllowed,\r\n disabled: false\r\n };\r\n this.feedbackTab = {\r\n active: false,\r\n id: \"element-feedback\",\r\n title: multiLanguageService.getString(\"asset_summary.headings.feedback\"),\r\n canView: this.panelData.feedbackAllowed,\r\n disabled: false\r\n };\r\n\r\n this._shortcuts = {\r\n [this.commentsTab.id]: getCommentsListShortcuts(document, { multiLangService: multiLanguageService, scope: $scope }),\r\n [this.feedbackTab.id]: getFeedbackListShortcuts(document, { multiLangService: multiLanguageService, scope: $scope })\r\n };\r\n\r\n this.focusTitleType = null;\r\n if (this.panelData.focusTitleType !== undefined) {\r\n this.focusTitleType = this.panelData.focusTitleType;\r\n }\r\n\r\n this.tabs = [this.infoTab, this.commentsTab, this.feedbackTab];\r\n this.showElementInfoOnly = false;\r\n this.onEditStateChange = this._editStateChange.bind(this);\r\n this.onFormElementLoadComplete = this._onFormElementLoadComplete.bind(this);\r\n this._removeShortcuts = noop;\r\n }\r\n\r\n $onInit() {\r\n this._setupPanel();\r\n this._subscriptionServiceProvider.subscribe(\"spaMenu\", this._subscriptionId, () => this._onSpaMenuAction());\r\n this._preventRedirect.addCustomResolver(this.preventRedirectResolver);\r\n this._locationChangeSuccessHandler = this._$rootScope.$on(\"$locationChangeSuccess\", () => this.closePanel());\r\n this._preventRedirect.watchLocationChange(this.assetId);\r\n }\r\n\r\n $onDestroy() {\r\n this._subscriptionServiceProvider.unsubscribe(\"spaMenu\", this._subscriptionId);\r\n this._allowCloseOrRedirect();\r\n this._preventRedirect.removeCustomResolver(this.preventRedirectResolver);\r\n if (this._locationChangeSuccessHandler !== null) {\r\n this._locationChangeSuccessHandler();\r\n }\r\n this._removeShortcuts();\r\n }\r\n\r\n setActiveTab(activeTab) {\r\n this.tabs.forEach((tab) => (tab.active = tab.id === activeTab.id));\r\n this._registerTabShortcuts(activeTab.id);\r\n }\r\n\r\n _registerTabShortcuts(tabId) {\r\n this._removeShortcuts();\r\n const shortcuts = this._shortcuts[tabId];\r\n if (shortcuts !== undefined) {\r\n this._removeShortcuts = shortcutManager.add(shortcuts, this.multiLanguageService.getString(\"shortcuts.group_descriptions.navigation\"));\r\n }\r\n }\r\n\r\n _setupPanel() {\r\n if (!this.panelData.commentsAllowed && !this.panelData.feedbackAllowed && this._canViewElementInfo) {\r\n this.showElementInfoOnly = true;\r\n return;\r\n }\r\n\r\n if (this.panelData.commentsAllowed) {\r\n if (this.panelType === PANEL_CONSTANTS.PANEL.ELEMENT_COMMENTS) {\r\n this.setActiveTab(this.commentsTab);\r\n return;\r\n }\r\n }\r\n\r\n if (this.panelData.feedbackAllowed) {\r\n if (this.panelType === PANEL_CONSTANTS.PANEL.ELEMENT_FEEDBACK) {\r\n this.setActiveTab(this.feedbackTab);\r\n return;\r\n }\r\n }\r\n\r\n if (this._canViewElementInfo) {\r\n if (this.panelType === PANEL_CONSTANTS.PANEL.ELEMENT_INFO) {\r\n this.setActiveTab(this.infoTab);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n closePanel() {\r\n if (this.preventRedirectResolver.redirectionIsBlocked()) {\r\n this._showConfirmCloseModal();\r\n } else {\r\n this._allowCloseOrRedirect();\r\n this.closeInfo.action();\r\n }\r\n }\r\n\r\n _onSpaMenuAction() {\r\n if (this.preventRedirectResolver.redirectionIsBlocked()) {\r\n this._showConfirmCloseModal();\r\n return this._$q.reject(\"Preventing close due to user choice\");\r\n }\r\n\r\n this._allowCloseOrRedirect();\r\n return this._$q.resolve();\r\n }\r\n\r\n _showConfirmCloseModal() {\r\n if (!this._preventRedirect.doesExist) {\r\n const modalTemplateUrl = `${this._baseUrlsFactory.shared_component_base_url}preventRedirect/templates/warning-modal-alt.lazy.html`;\r\n\r\n this._modal.launch(modalTemplateUrl, {\r\n title: this.multiLanguageService.getString(\"logout.title_unsaved_changes\"),\r\n message: this.multiLanguageService.getString(\"logout.message_unsaved_changes\"),\r\n continueBtn: this.multiLanguageService.getString(\"buttons.discard_changes\"),\r\n cancelRedirectBtn: this.multiLanguageService.getString(\"buttons.cancel\"),\r\n continue: () => {\r\n this._allowCloseOrRedirect();\r\n this.closeInfo.action();\r\n }\r\n });\r\n }\r\n }\r\n\r\n _editStateChange(isEditing) {\r\n this.tabs.forEach((tab) => (tab.disabled = isEditing));\r\n }\r\n\r\n _allowCloseOrRedirect() {\r\n this.preventRedirectResolver.cleanUp();\r\n }\r\n\r\n _onFormElementLoadComplete() {\r\n const evidenceAnchorId = this.panelData.evidenceAnchorId;\r\n\r\n if (evidenceAnchorId !== \"\") {\r\n const anchorEvidence = document.getElementById(`evidence-item-${evidenceAnchorId}`);\r\n const tabContent = document.getElementById(`${this.infoTab.id}-tab-content-body`);\r\n tabContent.scrollTop = anchorEvidence.offsetTop - tabContent.offsetHeight / 2 + anchorEvidence.offsetHeight / 2;\r\n }\r\n\r\n this.focusTitleType = null;\r\n }\r\n}\r\n\r\nexport const ElementInfoPanelComponentDefinition = {\r\n bindings: {\r\n elementId: \"<\",\r\n assetId: \"<\",\r\n topLevelAssetId: \"<\",\r\n closeInfo: \"<\",\r\n panelType: \"<\",\r\n panelData: \"<\",\r\n isActivePanel: \"<\",\r\n submissionId: \"

{{ ::$ctrl.panelData.elementTitle }}

{{::$ctrl.multiLanguageService.getString(\"labels.element_info_panel.form_element_headers.capability\")}}

{{::$ctrl.multiLanguageService.getString(\"labels.element_info_panel.form_element_headers.evidence\")}}

`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../assetFilteringConfig.provider\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../spaMenu/assetFilteringService/assetFiltering.service\";\r\nimport \"../../datePicker/datePicker\";\r\nimport \"../../datePicker/datePickerHelper\";\r\nimport \"../../utilities/pebbleDate\";\r\nimport \"../../react2angular/checkbox\";\r\nimport \"../../autoFocus/autoFocus.directive\";\r\nimport { FILTER_CRITERIA_TYPES_CONSTANTS } from \"../../constants/filterCriteriaTypes.constants\";\r\nimport template from \"./asset-filtering-content.html\";\r\n\r\nclass AssetFilteringContent extends NgComponent {\r\n constructor($scope, $filter, multiLanguageService, datePickerHelper, assetFilteringService, assetFilteringConfig) {\r\n super();\r\n\r\n this._$filter = $filter;\r\n this._$scope = $scope;\r\n this.multiLanguageService = multiLanguageService;\r\n this.datePickerHelper = datePickerHelper;\r\n this._assetFilteringService = assetFilteringService;\r\n this.showSaveFilter = assetFilteringConfig.enablePersistentFilters;\r\n this.before = null;\r\n this.after = null;\r\n this.minDate = null;\r\n this.resetBtnAria = this.multiLanguageService.getString(\"filter_evidence.reset_filter\");\r\n this.applyBtnText = this.multiLanguageService.getString(\"buttons.apply_filter\");\r\n this.applyBtnAria = \"\";\r\n this.saveFilter = false;\r\n this._filterId = \"\";\r\n this.disableApplyBtn = false;\r\n this.showResetBtn = false;\r\n this.maxDate = new Date();\r\n }\r\n\r\n $onInit() {\r\n this._assetFilteringService.loadExistingFilter(this.assetId).then((filter) => {\r\n if (filter === null) {\r\n return;\r\n }\r\n\r\n this._filterId = filter.Id;\r\n this.saveFilter = filter.IsPersistent;\r\n this.showResetBtn = true;\r\n\r\n const afterData = filter.Criteria.find((criteria) => criteria.Key === FILTER_CRITERIA_TYPES_CONSTANTS.START_DATE);\r\n const beforeData = filter.Criteria.find((criteria) => criteria.Key === FILTER_CRITERIA_TYPES_CONSTANTS.END_DATE);\r\n\r\n this.before = beforeData !== undefined ? beforeData.Value : null;\r\n this.after = afterData !== undefined ? afterData.Value : null;\r\n });\r\n\r\n this.toggleSaveFilter = (checked) => {\r\n this.saveFilter = checked;\r\n this._$scope.$applyAsync();\r\n };\r\n\r\n this.updateApplyBtnAria();\r\n }\r\n\r\n fromDateChange(date) {\r\n this.after = date;\r\n this.minDate = this.datePickerHelper.dateAdd(this.after, \"day\", 1);\r\n this.updateApplyBtnAria();\r\n }\r\n\r\n toDateChange(date) {\r\n this.before = date;\r\n this.updateApplyBtnAria();\r\n }\r\n\r\n resetFilter() {\r\n this.before = null;\r\n this.after = null;\r\n if (this.saveFilter) {\r\n this.toggleSaveFilter(false);\r\n this.saveFilter = false;\r\n }\r\n\r\n this._assetFilteringService\r\n .removeFilter(this.assetId, this._filterId)\r\n .then(() => {\r\n this.showResetBtn = false;\r\n })\r\n .catch(angular.noop);\r\n }\r\n\r\n updateApplyBtnAria() {\r\n if (this.before !== null && this.after !== null) {\r\n this.applyBtnAria = this.multiLanguageService.getString(\"filter_evidence.apply_filter_hint_range\", {\r\n dateBefore: this._$filter(\"pebbleDate\")(this.before, \"WithDay\"),\r\n dateAfter: this._$filter(\"pebbleDate\")(this.after, \"WithDay\")\r\n });\r\n } else if (this.after === null && this.before !== null) {\r\n this.applyBtnAria = this.multiLanguageService.getString(\"filter_evidence.apply_filter_hint_before\", { dateBefore: this._$filter(\"pebbleDate\")(this.before, \"WithDay\") });\r\n } else if (this.before === null && this.after !== null) {\r\n this.applyBtnAria = this.multiLanguageService.getString(\"filter_evidence.apply_filter_hint_after\", { dateAfter: this._$filter(\"pebbleDate\")(this.after, \"WithDay\") });\r\n } else if (this.before === null && this.after === null) {\r\n this.applyBtnAria = this.multiLanguageService.getString(\"filter_evidence.apply_filter_hint_default\");\r\n }\r\n }\r\n\r\n applyFilter() {\r\n this.disableApplyBtn = true;\r\n this.applyBtnText = this.multiLanguageService.getString(\"buttons.applying_filter\");\r\n\r\n const filterData = {\r\n before: this.before,\r\n after: this.after,\r\n filterId: this._filterId\r\n };\r\n\r\n this._assetFilteringService\r\n .applyFilter(this.assetId, filterData, this.saveFilter)\r\n .then(() => {\r\n if (this.onApply !== undefined) {\r\n this.onApply();\r\n }\r\n\r\n this.showResetBtn = true;\r\n })\r\n .catch(angular.noop)\r\n .finally(() => {\r\n this.disableApplyBtn = false;\r\n this.applyBtnText = this.multiLanguageService.getString(\"buttons.apply_filter\");\r\n });\r\n }\r\n}\r\n\r\nexport const assetFilteringContentDefinition = {\r\n bindings: {\r\n assetId: \"<\",\r\n onApply: \"&?\"\r\n },\r\n template: template,\r\n controller: AssetFilteringContent\r\n};\r\n\r\nassetFilteringContentDefinition.$inject = [\"$scope\", \"$filter\", \"multiLanguageService\", \"datePickerHelper\", \"assetFilteringService\", \"assetFilteringConfig\"];\r\nangularAMD.component(\"assetFilteringContent\", assetFilteringContentDefinition);\r\n","export default `
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../assetFiltering/assetFilteringContent/assetFilteringContent\";\r\nimport template from \"./asset-filtering-panel.html\";\r\n\r\nclass AssetFilteringPanel extends NgComponent {\r\n constructor(multiLanguageService) {\r\n super();\r\n\r\n this.multiLanguageService = multiLanguageService;\r\n\r\n this.onClickClose = () => {\r\n this.closePanel();\r\n };\r\n }\r\n\r\n closePanel() {\r\n this.closeInfo.action();\r\n }\r\n}\r\n\r\nexport const assetFilteringPanelDefinition = {\r\n bindings: {\r\n closeInfo: \"<\",\r\n assetId: \"<\"\r\n },\r\n template: template,\r\n controller: AssetFilteringPanel\r\n};\r\n\r\nassetFilteringPanelDefinition.$inject = [\"multiLanguageService\"];\r\nangularAMD.component(\"assetFilteringPanel\", assetFilteringPanelDefinition);\r\n","export default `
`;","import { AccountMenuDropdown } from \"@pjs/user-ui\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\"accountMenuDropdown\", react2angular(AccountMenuDropdown, [\"accountMenuData\", \"accountMenuButtons\"]));\r\n","import { cogWheelIcon, Keys, launchShortcutViewer, shortcutManager } from \"@pjs/core-ui\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { noop } from \"@pjs/utilities\";\r\nimport { PANEL_CONSTANTS } from \"../constants/panel.constants\";\r\nimport { TIMEOUT_CONSTANTS } from \"../constants/timeout.constants\";\r\nimport template from \"./spa-menu.html\";\r\nimport \"../workbook/standardsOverview/sidebarElementsView/sidebarElementsViewWrapper/sidebarElementsViewWrapper.component\";\r\nimport \"../mapToStandards/mapToStandardsWrapper/mapToStandardsWrapper.component\";\r\nimport \"../assetLocking/services/assetLockingHelper.service\";\r\nimport \"../collections/criteria/directives/criteriaManager\";\r\nimport \"../userSettings/services/UserSettingsService\";\r\nimport \"../assetEndpointService/assetEndpoint.service\";\r\nimport \"../a11y/providers/a11yContainers.provider\";\r\nimport \"../assetStore/services/assetCreateService\";\r\nimport \"../utilities/subscriptionServiceProvider\";\r\nimport \"./spaAssetStore/directives/spaAssetStore\";\r\nimport \"./spaAssetStore/directives/spaAssetStore\";\r\nimport \"../helpBannerWrapper/helpBannerWrapper\";\r\nimport \"./actionMenu/directives/spaActionMenu\";\r\nimport \"./spaMenuServices/productMenuService\";\r\nimport \"../fileUpload/directives/fileUpload\";\r\nimport \"../helpBanner/helpBanner.directive\";\r\nimport \"./spaMenuServices/spaDisplayHelper\";\r\nimport \"../security/pebbleSecurity.service\";\r\nimport \"../preventRedirect/preventRedirect\";\r\nimport \"./logOut/services/spaLogOutService\";\r\nimport \"./selector/directives/spaSelector\";\r\nimport \"../loadingSpinner/loadingSpinner\";\r\nimport \"./history/directives/spaHistory\";\r\nimport \"../utilities/focusStyleProvider\";\r\nimport \"./assetInfoPanel/assetInfoPanel\";\r\nimport \"./services/pageReloadService\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../expandable/expandable\";\r\nimport \"../modal/services/modal\";\r\nimport \"../utilities/capitalize\";\r\nimport \"../user/user.service\";\r\nimport \"../dropdown/dropdown\";\r\nimport \"../addEvidence/addEvidence.component\";\r\nimport \"../elementInfoPanel/elementInfoPanel.component\";\r\nimport \"../accessKeys/accessKey.service\";\r\nimport \"../focusTrap/focusTrap.service\";\r\nimport \"./assetFilteringPanel/assetFilteringPanel\";\r\nimport \"../featureSettings/FeatureSettings\";\r\nimport \"../react2angular/icon\";\r\nimport \"../react2angular/accountMenuDropdown\";\r\n\r\n/*\r\n * Binds the to the expression once at startup,\r\n * Usage: \r\n */\r\nangularAMD.directive(\"bindOnce\", [\r\n \"$parse\",\r\n function ($parse) {\r\n return {\r\n compile: function compile(element, attributes) {\r\n var expr = $parse(attributes.bindOnce);\r\n\r\n return function link(scope, element) {\r\n element.text(expr(scope));\r\n };\r\n }\r\n };\r\n }\r\n]);\r\n\r\nangularAMD.directive(\"spaMenu\", [\r\n \"$sce\",\r\n \"$q\",\r\n \"$location\",\r\n \"$timeout\",\r\n \"$http\",\r\n \"$rootScope\",\r\n \"$compile\",\r\n \"$routeParams\",\r\n \"$document\",\r\n \"spaLogOutService\",\r\n \"baseUrlsFactory\",\r\n \"multiLanguageService\",\r\n \"productMenuService\",\r\n \"preventRedirect\",\r\n \"focusStyleProvider\",\r\n \"dataManagerService\",\r\n \"assetCreateService\",\r\n \"spaDisplayHelper\",\r\n \"modal\",\r\n \"subscriptionServiceProvider\",\r\n \"pageReloadService\",\r\n \"AssetLockingHelper\",\r\n \"User\",\r\n \"UserSettingsService\",\r\n \"AssetEndpointService\",\r\n \"accessKeyService\",\r\n \"focusTrapService\",\r\n \"featureSettings\",\r\n function (\r\n $sce,\r\n $q,\r\n $location,\r\n $timeout,\r\n $http,\r\n $rootScope,\r\n $compile,\r\n $routeParams,\r\n $document,\r\n spaLogOutService,\r\n baseUrlsFactory,\r\n multiLanguageService,\r\n productMenuService,\r\n preventRedirect,\r\n focusStyleProvider,\r\n dataManagerService,\r\n assetCreateService,\r\n spaDisplayHelper,\r\n modal,\r\n subscriptionServiceProvider,\r\n pageReloadService,\r\n AssetLockingHelper,\r\n User,\r\n UserSettingsService,\r\n AssetEndpointService,\r\n accessKeyService,\r\n focusTrapService,\r\n featureSettings\r\n ) {\r\n return {\r\n restrict: \"E\",\r\n scope: {\r\n viewSegments: \"=viewSegments\",\r\n excludeSelectorPages: \"=excludeSelectorPages\",\r\n excludeAssetFunctionality: \"=excludeAssetFunctionality\",\r\n productUrl: \"=productUrl\",\r\n userData: \"=userData\",\r\n unlinkLogo: \"=unlinkLogo\"\r\n },\r\n template: template,\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n subscriptionServiceProvider.addService(\"spaMenu\");\r\n subscriptionServiceProvider.addService(\"spaMenuRightPanelVisible\");\r\n //Initialise variables -----------------------------------------------------------------------------\r\n $scope.multiLanguageService = multiLanguageService;\r\n $scope.loginServiceUrl = baseUrlsFactory.api_base_url + \"SharedMenu/Forwarder?location=LoginService&action=JustOpenLocation\";\r\n $scope.testingEnvironment = baseUrlsFactory.testing_environment;\r\n $scope.showProductDropDown = false;\r\n $scope.panelContentHistory = [];\r\n $scope.extraActionFromOtherSidePanel = false; // overwritten by other component to trigger on close\r\n $scope.focusTrapService = focusTrapService;\r\n $scope.focusTrapId = null;\r\n $scope.spaAppContainer = document.getElementById(\"app-container\");\r\n $scope.spaMenuWrapper = document.getElementById(\"spa-menu-wrapper\");\r\n $scope._removeActionMenuShortcutStack = noop;\r\n\r\n const userSettingsTitle = $scope.multiLanguageService.getString(\"user_settings.modal_title\");\r\n const accountSettingsTitle = $scope.multiLanguageService.getString(\"page_titles.account_settings\");\r\n const logOutTitle = $scope.multiLanguageService.getString(\"logout.title\");\r\n\r\n //Toolbar Buttons;\r\n $scope.buttons = {\r\n accountSettings: null,\r\n assetStore: {\r\n action: () => {\r\n tracker.trackEvent(\"SPA Bar\", \"Toggle Asset Store Sidebar\");\r\n $scope.openRightSidePanel(\"asset-store\");\r\n },\r\n id: \"spa-search-btn\",\r\n title: $scope.multiLanguageService.getString(\"buttons.generic.search\"),\r\n icon: \"icon-asset-store\",\r\n label: $scope.multiLanguageService.getString(\"accessibility.spa_menu.spa_menu_items.asset_store\"),\r\n aria_label: $scope.multiLanguageService.getString(\"accessibility.spa_menu.spa_buttons.search\")\r\n },\r\n history: {\r\n action: () => {\r\n tracker.trackEvent(\"SPA Bar\", \"Toggle History Sidebar\");\r\n $scope.openRightSidePanel(\"history\", \"\", \"spa\");\r\n },\r\n id: \"spa-history-btn\",\r\n title: $scope.multiLanguageService.getString(\"buttons.history\"),\r\n icon: \"icon-history\",\r\n label: $scope.multiLanguageService.getString(\"buttons.history\"),\r\n aria_label: $scope.multiLanguageService.getString(\"accessibility.spa_menu.spa_buttons.history\")\r\n },\r\n logOut: null\r\n };\r\n\r\n $scope.accountMenuButtons = [];\r\n\r\n featureSettings.load().then(() => {\r\n $scope.accountMenuToggle = featureSettings.isEnabled(\"AccountSettings\");\r\n\r\n if ($scope.accountMenuToggle) {\r\n $scope.accountMenuButtons.push(\r\n {\r\n onSelect: () => {\r\n tracker.trackEvent(\"SPA Bar\", \"Open User Account Settings\");\r\n $location.url(\"/account/settings\");\r\n $scope.$applyAsync();\r\n },\r\n text: accountSettingsTitle,\r\n ariaLabel: $scope.multiLanguageService.getString(\"accessibility.spa_menu.spa_buttons.account_settings\"),\r\n dataHook: \"open-account-settings-button\"\r\n },\r\n {\r\n onSelect: () => {\r\n tracker.trackEvent(\"SPA Bar\", \"Open Keyboard Shortcuts\");\r\n launchShortcutViewer(\r\n document.activeElement,\r\n shortcutManager.getActiveShortcuts().sort((groupA, groupB) => groupA.description.localeCompare(groupB.description))\r\n );\r\n $scope.$applyAsync();\r\n },\r\n text: $scope.multiLanguageService.getString(\"shortcuts.title\"),\r\n ariaLabel: $scope.multiLanguageService.getString(\"accessibility.spa_menu.spa_buttons.keyboard_shortcuts\"),\r\n dataHook: \"open-keyboard-shortcuts-button\"\r\n },\r\n {\r\n onSelect: () => {\r\n tracker.trackEvent(\"SPA Bar\", \"Open Logout Modal\");\r\n $scope.logOut();\r\n $scope.$applyAsync();\r\n },\r\n text: logOutTitle,\r\n ariaLabel: $scope.multiLanguageService.getString(\"accessibility.spa_menu.spa_buttons.logout\"),\r\n dataHook: \"spa-menu-tools-spa-log-out-btn\"\r\n }\r\n );\r\n } else {\r\n if ($scope.current_product !== \"atlas\") {\r\n $scope.buttons.accountSettings = {\r\n action: () => {\r\n tracker.trackEvent(\"SPA Bar\", \"Open User Settings Modal\");\r\n UserSettingsService.showUserSettingsModal();\r\n },\r\n id: \"spa-user-settings\",\r\n title: userSettingsTitle,\r\n label: userSettingsTitle,\r\n ariaLabel: $scope.multiLanguageService.getString(\"user_settings.a11y.open_modal\"),\r\n svgIcon: cogWheelIcon\r\n };\r\n }\r\n\r\n $scope.buttons.logOut = {\r\n action: () => {\r\n tracker.trackEvent(\"SPA Bar\", \"Open Logout Modal\");\r\n $scope.logOut();\r\n },\r\n id: \"spa-log-out-btn\",\r\n title: logOutTitle,\r\n icon: \"icon-log-out\",\r\n label: logOutTitle,\r\n ariaLabel: $scope.multiLanguageService.getString(\"accessibility.spa_menu.spa_buttons.logout\")\r\n };\r\n }\r\n });\r\n\r\n //Rendered Toolbar\r\n $scope.viewToolButtons = [];\r\n\r\n $scope.savingOverlay = {\r\n overlay: null,\r\n show: function () {\r\n if (this.overlay === null || !this.overlay[0]) {\r\n this.overlay = angular.element(document.getElementsByClassName(\"builder-canvas-dark-layer\")[0]);\r\n }\r\n this.overlay.addClass(\"show-overlay\");\r\n },\r\n update: function () {\r\n this.overlay.addClass(\"save-complete\");\r\n },\r\n hide: function () {\r\n this.overlay.removeClass(\"save-complete\");\r\n this.overlay.removeClass(\"show-overlay\");\r\n }\r\n };\r\n\r\n $scope._resetPaneContentHistory = () => {\r\n $scope.panelContentHistory.forEach((panelHistory) => panelHistory.removeShortcutStack());\r\n $scope.panelContentHistory.length = 0;\r\n };\r\n\r\n $scope.getProductAriaLabel = function (product, target) {\r\n var langOptions = {\r\n OpensNewTab: target === \"_blank\" ? multiLanguageService.getString(\"accessibility.opens_in_new_window\") : \"\"\r\n };\r\n\r\n switch (product) {\r\n case \"atlas\":\r\n return multiLanguageService.getString(\"accessibility.spa_menu.spa_buttons.atlas\", langOptions);\r\n case \"plus\":\r\n return multiLanguageService.getString(\"accessibility.spa_menu.spa_buttons.plus\", langOptions);\r\n case \"home\":\r\n return multiLanguageService.getString(\"accessibility.spa_menu.spa_buttons.pebble_home\", langOptions);\r\n default:\r\n return product;\r\n }\r\n };\r\n\r\n //Private variables (no need to pollute the scope all the time) ------------------------------------\r\n var invalidItems = [\"help\", \"pebblepad\"];\r\n\r\n //Product Menu -------------------------------------------------------------------------------------\r\n $scope.initialiseProductMenuData = function () {\r\n $scope.current_product = $attrs.product;\r\n $scope.products = [getHomeProduct()];\r\n };\r\n\r\n $scope.getProductMenuData = function () {\r\n productMenuService.getProductMenuData().then(function (response) {\r\n $scope.products.length = 0;\r\n $scope.products.push(getHomeProduct());\r\n var segmentProducts = $scope.viewSegments.products;\r\n for (var i = 0; i < response.data.length; i++) {\r\n const item = response.data[i];\r\n // Validate URL for a product menu item\r\n item.Url = $scope.getProductUrl(item.Product, $scope.current_product, item.Url);\r\n item.ActionCallback = () => tracker.trackEvent(\"SPA Bar\", `Click ${item.Product} Button`);\r\n\r\n if ($scope.current_product === \"atlas\" && item.Product === $scope.current_product) {\r\n $scope.products.find((product) => {\r\n if (product.Product === \"home\") {\r\n product.Url = item.Url;\r\n }\r\n });\r\n }\r\n\r\n if (item.Product !== $scope.current_product) {\r\n item.Target = \"_blank\";\r\n } else {\r\n item.Target = \"_self\";\r\n }\r\n\r\n //Filter what products can be seen.\r\n if (!segmentProducts.filters && invalidItems.indexOf(item.Product) === -1) {\r\n $scope.products.push(item);\r\n } else if (segmentProducts.filters && segmentProducts.filters.indexOf(item.Product) !== -1) {\r\n $scope.products.push(item);\r\n }\r\n }\r\n spaDisplayHelper.sort(segmentProducts, $scope.products, \"Product\");\r\n });\r\n };\r\n\r\n $scope.getProductUrl = function (product, currentProduct, url) {\r\n if (url.indexOf(\"http\") === -1) {\r\n if (currentProduct !== product) {\r\n url = baseUrlsFactory.api_base_url + url;\r\n } else {\r\n switch (product) {\r\n case \"pebblepad\":\r\n url = \"#/main\";\r\n break;\r\n case \"atlas\":\r\n url = baseUrlsFactory.api_base_url + url;\r\n break;\r\n default:\r\n url = \"#/\";\r\n break;\r\n }\r\n }\r\n }\r\n return url;\r\n };\r\n\r\n $scope.getProductLogoUrl = function (product) {\r\n var logo_url = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"spaMenu/styles/images/logos/\");\r\n\r\n switch (product) {\r\n case \"home\":\r\n logo_url = logo_url + \"pebble-pad.png\";\r\n break;\r\n case \"home-icon\":\r\n logo_url = logo_url + \"pebble-pad-icon.png\";\r\n break;\r\n case \"plus\":\r\n logo_url = logo_url + \"plus.png\";\r\n break;\r\n case \"atlas\":\r\n logo_url = logo_url + \"atlas.png\";\r\n break;\r\n case \"help\":\r\n logo_url = logo_url + \"help.png\";\r\n break;\r\n case \"admissions\":\r\n logo_url = logo_url + \"admissions.png\";\r\n break;\r\n default:\r\n logo_url = logo_url + \"pebble-pad-icon.png\";\r\n }\r\n\r\n return logo_url;\r\n };\r\n\r\n //Toolbar ------------------------------------------------------------------------------------------\r\n $scope.addToolButtons = function () {\r\n $scope.viewToolButtons = spaDisplayHelper.filter($scope.viewSegments.tools, $scope.buttons);\r\n };\r\n\r\n $scope.displayConciseBar = function () {\r\n $scope.viewSegments.menu.display = false;\r\n $scope.viewSegments.products.display = false;\r\n $scope.viewSegments.tools.filters = [\"logOut\"];\r\n };\r\n\r\n $scope.resetBarFilters = function () {\r\n $scope.viewSegments.menu.filters = null;\r\n $scope.viewSegments.products.filters = null;\r\n $scope.viewSegments.tools.filters = null;\r\n };\r\n\r\n //Reset display and filters\r\n $scope.resetBar = function () {\r\n $scope.viewSegments.menu.display = true;\r\n $scope.viewSegments.menu.filters = null;\r\n\r\n $scope.viewSegments.products.display = true;\r\n $scope.viewSegments.products.filters = null;\r\n\r\n $scope.viewSegments.tools.display = true;\r\n $scope.viewSegments.tools.filters = null;\r\n $scope.customLogo = \"\";\r\n };\r\n\r\n $scope.menuUpdate = function (doRequest, reset, user) {\r\n if (reset) {\r\n //Reset SpaMenu completely, everything is viewable.\r\n $scope.resetBar();\r\n }\r\n\r\n $scope.mainDashboardLink = \"#/\";\r\n\r\n if (user) {\r\n $scope.userData = user;\r\n $scope.isLoggedIn = user.UserId;\r\n $scope.accountMenuData = {\r\n firstname: $scope.userData.Firstname,\r\n lastname: $scope.userData.Surname,\r\n organisation: $scope.userData.Institution,\r\n profilePic:\r\n $scope.userData.ProfilePic !== \"\"\r\n ? $scope.userData.ProfilePic + \"&x=110&y=110&shortSideScale=True\"\r\n : $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"profileImage/image/no_profile.svg\").toString()\r\n };\r\n\r\n if (user.DashboardUrl !== \"\") {\r\n $scope.mainDashboardLink = user.DashboardUrl;\r\n }\r\n }\r\n\r\n featureSettings.load().then(() => {\r\n //Get product data again.\r\n if (doRequest) {\r\n $scope.getProductMenuData();\r\n\r\n //Filter what tools can be viewed after this MenuUpdate.\r\n $scope.viewToolButtons = spaDisplayHelper.filter($scope.viewSegments.tools, $scope.buttons);\r\n } else {\r\n $scope.viewToolButtons = spaDisplayHelper.filter($scope.viewSegments.tools, $scope.buttons);\r\n spaDisplayHelper.sort($scope.viewSegments.products, $scope.products, \"Product\");\r\n }\r\n });\r\n\r\n if ($scope.userData && $scope.userData.SpaBarLogo) {\r\n const params = {\r\n id: $scope.userData.SpaBarLogo,\r\n x: 0,\r\n y: 0\r\n };\r\n\r\n $scope.customLogo = AssetEndpointService.transmitImageUrl(params);\r\n }\r\n };\r\n\r\n var getHomeProduct = function () {\r\n switch ($scope.current_product) {\r\n case \"pebblepad\":\r\n return {\r\n Product: \"home\",\r\n Target: \"_self\",\r\n Url: \"#/main\",\r\n ActionCallback: () => tracker.trackEvent(\"SPA Bar\", \"Click Home Button\"),\r\n IconImageUrl: $scope.getProductLogoUrl(\"home-icon\"),\r\n FullImageUrl: $scope.getProductLogoUrl(\"home\")\r\n };\r\n case \"atlas\":\r\n return {\r\n Product: \"home\",\r\n Target: \"_self\",\r\n Url: baseUrlsFactory.api_base_url,\r\n ActionCallback: () => tracker.trackEvent(\"SPA Bar\", \"Click Home Button\"),\r\n IconImageUrl: $scope.getProductLogoUrl(\"home-icon\"),\r\n FullImageUrl: $scope.getProductLogoUrl(\"home\")\r\n };\r\n default:\r\n return {\r\n Product: \"home\",\r\n Target: \"_self\",\r\n Url: \"#/\",\r\n ActionCallback: () => tracker.trackEvent(\"SPA Bar\", \"Click Home Button\"),\r\n IconImageUrl: $scope.getProductLogoUrl(\"home-icon\"),\r\n FullImageUrl: $scope.getProductLogoUrl(\"home\")\r\n };\r\n }\r\n };\r\n\r\n $scope.updateSpaData = function (data) {\r\n if (data && data.updateProducts) {\r\n $scope.initialiseProductMenuData();\r\n if ($scope.userData) {\r\n $scope.getProductMenuData();\r\n }\r\n }\r\n };\r\n\r\n var cleanUpFunc = $rootScope.$on(\"spaGetData\", function (event, data) {\r\n $scope._unbindAccessKeys();\r\n $scope.updateSpaData(data);\r\n });\r\n\r\n $scope.$on(\"$destroy\", function () {\r\n cleanUpFunc();\r\n });\r\n\r\n focusStyleProvider.bindFocusApplier();\r\n\r\n $scope.logOut = function () {\r\n // Confirmation dialog\r\n const can_log_out = preventRedirect.checkIfCanLogOut();\r\n const modal_message = preventRedirect.getLogoutMessage(can_log_out, $rootScope.appName);\r\n\r\n const modalProps = {\r\n title: modal_message.title,\r\n message: modal_message.message,\r\n saveAndContinueBtn: modal_message.saveAndContinueBtn,\r\n continueBtn: modal_message.continueBtn,\r\n cancelRedirectBtn: modal_message.cancelRedirectBtn,\r\n can_log_out: can_log_out\r\n };\r\n\r\n modalProps.saveAndContinue = function () {\r\n if (!can_log_out) {\r\n modalProps.saveAndLogout();\r\n } else {\r\n $scope.confirm();\r\n }\r\n };\r\n\r\n modalProps.saveAndLogout = function () {\r\n // we need to check maintype, as form response put there title inside an element we need to check it in a different way\r\n var mainType = dataManagerService.dtos[$routeParams.assetId].data.MainType;\r\n var assetTitle = dataManagerService.dtos[$routeParams.assetId].data.Title;\r\n if (\r\n (assetTitle === null || assetTitle === undefined || assetTitle.toLowerCase() === \"no title\") &&\r\n mainType &&\r\n mainType !== \"Form\" &&\r\n mainType !== \"FormResponse\"\r\n ) {\r\n $scope.askUserForTitle();\r\n } else {\r\n $scope.savingOverlay.show();\r\n dataManagerService.saveViaAssetId($routeParams.assetId).then(\r\n function (data) {\r\n if (data && data.validation && data.validation.valid === false) {\r\n $scope.confirmMessage = data.validation.message;\r\n $scope.savingOverlay.hide();\r\n modal.newModal({\r\n scope: $scope.$new(),\r\n templateUrl: `${baseUrlsFactory.shared_component_base_url}formCanvas/templates/invalid-page.lazy.html`\r\n });\r\n } else {\r\n $scope.savingOverlay.update();\r\n $timeout(function () {\r\n $scope.savingOverlay.hide();\r\n $scope.confirm();\r\n }, TIMEOUT_CONSTANTS.SAVE_OVERLAY);\r\n }\r\n },\r\n function () {\r\n $scope.savingOverlay.hide();\r\n $scope.confirm();\r\n }\r\n );\r\n }\r\n };\r\n\r\n modalProps.continue = function () {\r\n dataManagerService.cleanupStorageOfAssetId($routeParams.assetId);\r\n $scope.confirm();\r\n };\r\n\r\n const templateUrl = preventRedirect.resolversAreBlocking()\r\n ? `${baseUrlsFactory.shared_component_base_url}preventRedirect/templates/warning-modal-alt.lazy.html`\r\n : `${baseUrlsFactory.shared_component_base_url}preventRedirect/templates/warning-modal.lazy.html`;\r\n\r\n $scope.modal = modal.launch(templateUrl, modalProps);\r\n };\r\n\r\n $scope.askUserForTitle = function () {\r\n var isolatedScope = $scope.$new(true),\r\n managerObj = dataManagerService.dtos[$routeParams.assetId],\r\n assetDto = managerObj.data;\r\n isolatedScope.first_title_el = angular.element(document.getElementsByClassName(\"title-text-editable\")[0]);\r\n isolatedScope.newTitle = assetDto.Title;\r\n isolatedScope.mainType = assetDto.MainType.toLowerCase();\r\n isolatedScope.assetMainType = assetDto.MainType;\r\n isolatedScope.saveOrPreview = \"save\";\r\n isolatedScope.confirmMessage = $scope.multiLanguageService.getString(\"labels.pop_ups.\" + isolatedScope.mainType + \"_save_message\");\r\n\r\n isolatedScope.confirmTitle = function (newTitle, saveOrPreview) {\r\n managerObj.updateDtoProperty(\"Title\", newTitle);\r\n $scope.saveAndContinue();\r\n };\r\n $timeout(function () {\r\n modal.newModal({\r\n scope: isolatedScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"builder/saveBuilderMessage/templates/save-builder-message.lazy.html\"\r\n });\r\n });\r\n };\r\n\r\n $scope.confirm = function () {\r\n return AssetLockingHelper.cancelAllActiveLocks()\r\n .then(spaLogOutService.logOut)\r\n .then(function (response) {\r\n $scope.loginServiceUrl = response.data;\r\n })\r\n .finally(function () {\r\n $scope.displayConciseBar();\r\n $scope.resetBarFilters();\r\n\r\n if ($scope.panelContentHistory.length > 0) {\r\n $scope.closeSidePanel($scope.right_panel_holder_el);\r\n } else if ($scope.action_menu_holder_el.hasClass(\"enabled\")) {\r\n $scope.closeSidePanel($scope.action_menu_holder_el);\r\n }\r\n\r\n $rootScope.userData = undefined; // some service rely on this existing or they get it... make sure its cleared when user changes\r\n User.reset();\r\n\r\n $location.$search = {};\r\n preventRedirect.allowRedirect(true);\r\n\r\n if ($scope.panelContentHistory.length > 0) {\r\n $scope.closeSidePanel($scope.right_panel_holder_el);\r\n } else if ($scope.action_menu_holder_el.hasClass(\"enabled\")) {\r\n $scope.closeSidePanel($scope.action_menu_holder_el);\r\n }\r\n\r\n //Reset both $rootScope and $scope, as the reference could have been broken by external directives updating userData.\r\n $scope.userData = $rootScope.userData = undefined; // some service rely on this existing or they get it... make sure its cleared when user changes\r\n $location.$search = {};\r\n preventRedirect.allowRedirect(true);\r\n\r\n if ($scope.testingEnvironment) {\r\n $location.path(\"login\");\r\n } else {\r\n window.location.href = $scope.loginServiceUrl;\r\n }\r\n\r\n $scope.isLoggedIn = null;\r\n });\r\n };\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n var userDataWatch = scope.$watch(\"userData\", function () {\r\n if (scope.userData && scope.userData.UserId) {\r\n scope.isLoggedIn = scope.userData.UserId;\r\n scope.updateViewFromRole(scope.userData);\r\n scope.menuUpdate(true, false);\r\n\r\n userDataWatch(); //Destroy watch\r\n }\r\n });\r\n\r\n scope.currentProduct = attrs.product;\r\n scope.addToolButtons();\r\n // core elements used by spa menu\r\n scope.html_el = angular.element(document.documentElement);\r\n scope.body_el = angular.element(document.body);\r\n scope.window_el = angular.element(window);\r\n scope.panel_backing_el = angular.element(document.getElementsByClassName(\"panel-backing\"));\r\n scope.panels_holder_el = angular.element(document.getElementById(\"spa-menu-container\"));\r\n\r\n scope.action_menu_holder_el = angular.element(document.getElementsByClassName(\"action-menu-holder\"));\r\n scope.right_panel_holder_el = angular.element(document.getElementsByClassName(\"right-panel-holder\"));\r\n scope.spa_assetstore_wrapper_element = angular.element(document.getElementById(\"spa-asset-store\"));\r\n scope.spa_history_wrapper_element = angular.element(document.getElementById(\"spa-history-panel\"));\r\n scope.spa_asset_info_panel_wrapper_element = angular.element(document.getElementById(\"spa-asset-info-panel\"));\r\n scope.spa_collection_criteria_wrapper_element = angular.element(document.getElementById(\"spa-criteria\"));\r\n scope.spa_map_to_standards_wrapper_el = angular.element(document.getElementById(\"spa-map-to-standards-panel\"));\r\n scope.spa_file_upload_wrapper_el = angular.element(document.getElementById(\"spa-file-upload\"));\r\n scope.spa_sidebar_elements_view_el = angular.element(document.getElementById(\"spa-sidebar-elements-view-panel\"));\r\n scope.spa_add_evidence_wrapper_el = angular.element(document.getElementById(\"spa-add-evidence\"));\r\n scope.spa_element_info_wrapper_el = angular.element(document.getElementById(\"spa-element-info\"));\r\n scope.spa_asset_filtering_wrapper_element = angular.element(document.getElementById(\"spa-asset-filtering-panel\"));\r\n\r\n const activeClass = \"active\";\r\n const previousClass = \"previous\";\r\n const repeatClass = \"repeat\";\r\n const asset_info_panel = angular.element(document.getElementsByClassName(\"spa-asset-info-panel\")[0]);\r\n const elementInfoPanel = angular.element(document.getElementsByClassName(\"element-info__panel\")[0]);\r\n\r\n scope.panels = {\r\n history: {\r\n name: PANEL_CONSTANTS.PANEL.HISTORY,\r\n linkedId: scope.buttons.history.id,\r\n element: angular.element(element[0].getElementsByClassName(\"spa-history\")[0]),\r\n isStartingPoint: true,\r\n canDelete: true\r\n },\r\n selector: {\r\n name: PANEL_CONSTANTS.PANEL.SELECTOR,\r\n element: angular.element(element[0].getElementsByClassName(\"spa-selector\")[0])\r\n },\r\n store: {\r\n name: PANEL_CONSTANTS.PANEL.ASSET_STORE,\r\n linkedId: scope.buttons.assetStore.id,\r\n element: angular.element(element[0].getElementsByClassName(\"asset-store\")[0]),\r\n canDelete: true,\r\n isStartingPoint: true\r\n },\r\n info: {\r\n name: PANEL_CONSTANTS.PANEL.ASSET_INFO,\r\n element: asset_info_panel,\r\n canDelete: true\r\n },\r\n collectionCriteria: {\r\n name: PANEL_CONSTANTS.PANEL.COLLECTION_CRITERIA,\r\n element: angular.element(element[0].getElementsByClassName(\"spa-collection-criteria-panel\")[0]),\r\n canDelete: true\r\n },\r\n comments: {\r\n name: PANEL_CONSTANTS.PANEL.ASSET_COMMENTS,\r\n element: asset_info_panel,\r\n canDelete: true\r\n },\r\n feedback: {\r\n name: PANEL_CONSTANTS.PANEL.ASSET_FEEDBACK,\r\n element: asset_info_panel,\r\n canDelete: true\r\n },\r\n mapping: {\r\n name: PANEL_CONSTANTS.PANEL.ASSET_MAPPING,\r\n element: asset_info_panel,\r\n canDelete: true\r\n },\r\n versioning: {\r\n name: PANEL_CONSTANTS.PANEL.ASSET_VERSIONING,\r\n element: asset_info_panel,\r\n canDelete: true\r\n },\r\n progressTracking: {\r\n name: PANEL_CONSTANTS.PANEL.ASSET_PROGRESS_TRACKING,\r\n element: asset_info_panel,\r\n canDelete: true\r\n },\r\n standardsSelection: {\r\n name: PANEL_CONSTANTS.PANEL.STANDARDS_SELECTOR_PANEL,\r\n element: angular.element(element[0].getElementsByClassName(\"spa-standards-selection-info-panel\")[0]),\r\n canDelete: true\r\n },\r\n sidebarElementsView: {\r\n name: PANEL_CONSTANTS.PANEL.ELEMENTS_OVERVIEW,\r\n element: angular.element(element[0].getElementsByClassName(\"spa-standards-elements-overview__panel\")[0]),\r\n canDelete: true\r\n },\r\n fileUpload: {\r\n name: PANEL_CONSTANTS.PANEL.FILE_UPLOAD,\r\n element: angular.element(element[0].getElementsByClassName(\"spa-file-upload-panel\")[0]),\r\n canDelete: true\r\n },\r\n addEvidence: {\r\n name: PANEL_CONSTANTS.PANEL.ADD_EVIDENCE,\r\n element: angular.element(element[0].getElementsByClassName(\"add-evidence__panel\")[0]),\r\n canDelete: true\r\n },\r\n elementInfo: {\r\n name: PANEL_CONSTANTS.PANEL.ELEMENT_INFO,\r\n element: elementInfoPanel,\r\n canDelete: true\r\n },\r\n elementFeedback: {\r\n name: PANEL_CONSTANTS.PANEL.ELEMENT_FEEDBACK,\r\n element: elementInfoPanel,\r\n canDelete: true\r\n },\r\n elementComments: {\r\n name: PANEL_CONSTANTS.PANEL.ELEMENT_COMMENTS,\r\n element: elementInfoPanel,\r\n canDelete: true\r\n },\r\n assetFilteringPanel: {\r\n name: PANEL_CONSTANTS.PANEL.ASSET_FILTERING_PANEL,\r\n element: angular.element(element[0].getElementsByClassName(\"asset-filtering-panel\")[0]),\r\n canDelete: true\r\n }\r\n };\r\n scope.activePanelScopes = {};\r\n\r\n scope._bindAccessKeys = function () {\r\n const escape = {\r\n key: \"escape\",\r\n altKey: false,\r\n callback: () => {\r\n subscriptionServiceProvider\r\n .runSubscriptions(\"spaMenu\")\r\n .then(() => {\r\n scope.previousPanel();\r\n })\r\n .catch(angular.noop);\r\n }\r\n };\r\n\r\n const ie11Esc = { ...escape, key: \"esc\" };\r\n accessKeyService.register(\"spaMenu\", [escape, ie11Esc]);\r\n };\r\n\r\n scope._unbindAccessKeys = function () {\r\n accessKeyService.remove(\"spaMenu\");\r\n };\r\n\r\n scope.disable_body_scrolling = function (action) {\r\n if (action === \"bind\") {\r\n if (scope.html_el[0].scrollTop > 0) {\r\n scope.html_el.addClass(\"side-panel-enabled\");\r\n }\r\n } else if (\"unbind\") {\r\n scope.html_el.removeClass(\"side-panel-enabled\");\r\n }\r\n };\r\n\r\n scope.removeActionMenuListeners = function () {\r\n $document[0].removeEventListener(\"focus\", scope.checkActionMenuHasFocus, true);\r\n };\r\n\r\n scope.setupActionMenuEventListeners = function () {\r\n $document[0].addEventListener(\"focus\", scope.checkActionMenuHasFocus, true);\r\n };\r\n\r\n scope.checkActionMenuHasFocus = function (e) {\r\n if (!scope.action_menu_holder_el[0].contains((e.originalEvent || e).target)) {\r\n scope.closePanels();\r\n var burgerMenuButton = document.getElementById(\"spa-burger-menu-button\");\r\n if (burgerMenuButton !== null) {\r\n $timeout(function () {\r\n burgerMenuButton.focus();\r\n });\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Toggle any side panel\r\n * @param panel_name\r\n * @param push_content - usually \"false\", need \"true\" for action menu\r\n */\r\n scope.toggleSidePanel = function (panel_name, push_content) {\r\n // make current element the one which was clicked\r\n switch (panel_name) {\r\n case \"action-menu\":\r\n scope.current_el = scope.action_menu_holder_el;\r\n scope._resetPaneContentHistory();\r\n var closed = !scope.current_el.hasClass(\"enabled\");\r\n scope.actionMenuOpen = closed;\r\n if (closed) {\r\n scope.setupActionMenuEventListeners();\r\n scope._removeActionMenuShortcutStack();\r\n scope._removeActionMenuShortcutStack = shortcutManager.addStack();\r\n scope.$emit(\"spaGetData\");\r\n }\r\n break;\r\n case \"right-side-menu\":\r\n scope.current_el = scope.right_panel_holder_el;\r\n break;\r\n default:\r\n throw new Error(\"No panel with this name\");\r\n }\r\n\r\n // check if current element already opened\r\n if (scope.current_el.hasClass(\"enabled\")) {\r\n scope.closeSidePanel(scope.current_el);\r\n } else {\r\n scope.openSidePanel(scope.current_el, push_content);\r\n }\r\n };\r\n\r\n /**\r\n * Opens any side panel and add all needed classes for transition\r\n * Closes all other panels\r\n * @param current_el\r\n * @param push_content\r\n */\r\n scope.openSidePanel = function (current_el, push_content) {\r\n scope.panels_holder_el.addClass(\"enabled\");\r\n current_el.addClass(\"enabled\");\r\n\r\n setTimeout(function () {\r\n current_el.addClass(activeClass);\r\n\r\n if (push_content) {\r\n scope.app_el = angular.element(document.getElementById(\"app\"));\r\n scope.app_el.addClass(\"side-menu-enabled\");\r\n }\r\n scope.panel_backing_el.addClass(activeClass);\r\n scope.focusInPanel(current_el);\r\n }, 50);\r\n\r\n scope.disable_body_scrolling(\"bind\", current_el);\r\n\r\n // if left side menu is open, then close right side menu\r\n if (scope.any_panel_enabled && current_el === scope.action_menu_holder_el) {\r\n scope.closeSidePanel(scope.right_panel_holder_el);\r\n }\r\n // if right side panel is already open, then close it when left side menu open\r\n else if (scope.any_panel_enabled && current_el === scope.right_panel_holder_el) {\r\n scope.closeSidePanel(scope.action_menu_holder_el, true);\r\n }\r\n\r\n scope.any_panel_enabled = true;\r\n };\r\n\r\n /**\r\n * Closes the panel\r\n * @param current_el\r\n * @param keepData\r\n */\r\n scope.closeSidePanel = function (current_el, keepData) {\r\n if (scope.focusTrapId !== null && current_el[0] === scope.container_el) {\r\n scope.focusTrapService.removeTrap(scope.focusTrapId);\r\n scope.focusTrapId = null;\r\n }\r\n\r\n if (current_el[0] === scope.action_menu_holder_el[0]) {\r\n scope.actionMenuOpen = false;\r\n }\r\n\r\n pageReloadService.locationReloadOnSidePanelClose();\r\n\r\n if (current_el.hasClass(\"action-menu-holder\")) {\r\n scope.$broadcast(\"spa-action-menu-collapse\");\r\n scope._removeActionMenuShortcutStack();\r\n }\r\n\r\n // if app_el isn't defined, then do define\r\n if (!scope.app_el) {\r\n scope.app_el = angular.element(document.getElementById(\"app\"));\r\n }\r\n scope.app_el.removeClass(\"side-menu-enabled\");\r\n current_el.removeClass(activeClass);\r\n\r\n scope.removeActionMenuListeners();\r\n scope._unbindAccessKeys();\r\n\r\n setTimeout(function () {\r\n current_el.removeClass(\"enabled\");\r\n if (!scope.any_panel_enabled) {\r\n scope.panels_holder_el.removeClass(\"enabled\");\r\n scope.panel_backing_el.removeClass(activeClass);\r\n }\r\n scope.disable_body_scrolling(\"unbind\", current_el);\r\n }, 200);\r\n\r\n if (current_el !== scope.action_menu_holder_el) {\r\n scope._resetPaneContentHistory();\r\n }\r\n scope.any_panel_enabled = false;\r\n scope.removePanelClasses();\r\n\r\n if (!keepData) {\r\n scope.removePanelData();\r\n }\r\n };\r\n\r\n scope.focusInPanel = function (current_el, panel_name) {\r\n setTimeout(function () {\r\n if (current_el === scope.action_menu_holder_el) {\r\n scope.action_menu_holder_el[0].focus();\r\n }\r\n }, 300);\r\n };\r\n\r\n scope.lastOpened = 0;\r\n scope.openRightSidePanel = function (panel_name, store_name, initiatingButton, onPanelClose) {\r\n //Prevent Spam Clicking which can cause issues with Angular cleaning up after itself (Memory leak) - Temporary fix.\r\n if (Date.now() - scope.lastOpened < 400) {\r\n return;\r\n }\r\n\r\n scope.container_el = element[0].getElementsByClassName(\"right-panel-holder\")[0];\r\n\r\n const accountMenuDropdownElement = element[0].getElementsByClassName(\"cui-floating-panel-menu__container\")[0];\r\n\r\n if (scope.focusTrapId === null) {\r\n scope.focusTrapId = scope.focusTrapService.addTrap(\r\n scope.container_el,\r\n [scope.spaAppContainer, scope.spaMenuWrapper],\r\n accountMenuDropdownElement\r\n );\r\n }\r\n\r\n const active = scope.right_panel_holder_el.hasClass(activeClass);\r\n let historyLength = scope.panelContentHistory.length - 1;\r\n\r\n if (!active) {\r\n scope._bindAccessKeys();\r\n }\r\n\r\n //If the sidebar is not open or the panel is not equal to the last panel (e.g. toggle)\r\n if (!active || (active && panel_name !== scope.panelContentHistory[historyLength].name)) {\r\n var panel = scope.panels.where({ name: panel_name })[0];\r\n if (panel && panel.isStartingPoint) {\r\n scope._resetPaneContentHistory();\r\n historyLength = scope.panelContentHistory.length - 1;\r\n scope.removePanelClasses();\r\n scope.removePanelData();\r\n }\r\n\r\n if (historyLength === -1 || scope.panelContentHistory[historyLength].name !== panel_name) {\r\n //Set current side panel content\r\n scope.panelContentHistory.push({ name: panel_name, onPanelClose: onPanelClose, removeShortcutStack: shortcutManager.addStack() });\r\n scope.initShortcutViewer();\r\n scope.updateActivePanel(panel_name);\r\n }\r\n scope.closeButtonMessage =\r\n scope.panelContentHistory.length > 1\r\n ? scope.multiLanguageService.getString(\"buttons.back\")\r\n : scope.multiLanguageService.getString(\"buttons.close\");\r\n\r\n var newScope, html;\r\n // create asset store directive from scratch\r\n switch (panel_name) {\r\n case PANEL_CONSTANTS.PANEL.HISTORY:\r\n newScope = scope.$new(true);\r\n newScope.initiatingButton = initiatingButton;\r\n html = '';\r\n scope.spa_history_wrapper_element.empty();\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n scope.spa_history_wrapper_element.append($compile(html)(newScope));\r\n scope.panels.history.element = angular.element(element[0].getElementsByClassName(\"spa-history\")[0]);\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ASSET_STORE:\r\n newScope = scope.$new(true);\r\n newScope.startingSearchType = store_name;\r\n newScope.assetStoreLabel = multiLanguageService.getString(\"asset_store.accessibility.side_panel_main_heading\");\r\n html = `'`;\r\n scope.spa_assetstore_wrapper_element.empty();\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n scope.spa_assetstore_wrapper_element.append($compile(html)(newScope));\r\n scope.panels.store.element = angular.element(element[0].getElementsByClassName(\"asset-store\")[0]);\r\n break;\r\n\r\n case PANEL_CONSTANTS.PANEL.ASSET_INFO:\r\n case PANEL_CONSTANTS.PANEL.ASSET_COMMENTS:\r\n case PANEL_CONSTANTS.PANEL.ASSET_FEEDBACK:\r\n case PANEL_CONSTANTS.PANEL.ASSET_VERSIONING:\r\n case PANEL_CONSTANTS.PANEL.ASSET_MAPPING:\r\n case PANEL_CONSTANTS.PANEL.ASSET_PROGRESS_TRACKING:\r\n newScope = scope.$new(true);\r\n newScope.closeButtonMessage = scope.closeButtonMessage;\r\n newScope.goToPreviousPanel = scope.goToPreviousPanel;\r\n newScope.panelActionData = scope.panelActionData;\r\n newScope.anchorId = scope.data.anchorId;\r\n newScope.assetId = scope.data.assetId;\r\n newScope.submissionId = $routeParams.submissionId;\r\n\r\n html = ``;\r\n\r\n scope.spa_asset_info_panel_wrapper_element.empty();\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n scope.spa_asset_info_panel_wrapper_element.append($compile(html)(newScope));\r\n\r\n var info_el = angular.element(element[0].getElementsByClassName(\"spa-asset-info-panel\")[0]);\r\n scope.panels.versioning.element = info_el;\r\n scope.panels.progressTracking.element = info_el;\r\n scope.panels.mapping.element = info_el;\r\n scope.panels.feedback.element = info_el;\r\n scope.panels.comments.element = info_el;\r\n scope.panels.info.element = info_el;\r\n break;\r\n\r\n case PANEL_CONSTANTS.PANEL.COLLECTION_CRITERIA:\r\n newScope = scope.$new(true);\r\n newScope.callback = scope.data.callback;\r\n newScope.type = scope.data.type;\r\n newScope.id = scope.data.id;\r\n newScope.edit = scope.data.edit;\r\n newScope.collection = scope.data.collection;\r\n newScope.disableSearchResult = scope.data.disableSearchResult;\r\n newScope.allowCriteriaResponsesTo = scope.data.allowCriteriaResponsesTo;\r\n newScope.collectionWrapper = scope.data.collectionWrapper;\r\n newScope.allowSearchDefaulting = scope.data.allowSearchDefaulting;\r\n html =\r\n '';\r\n\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n scope.spa_collection_criteria_wrapper_element.append($compile(html)(newScope));\r\n scope.panels.collectionCriteria.element = angular.element(\r\n element[0].getElementsByClassName(\"spa-collection-criteria-panel\")[0]\r\n );\r\n break;\r\n case PANEL_CONSTANTS.PANEL.STANDARDS_SELECTOR_PANEL:\r\n newScope = scope.$new(true);\r\n newScope.standardsInfo = scope.data.standardsInfo;\r\n newScope.callback = scope.data.callback;\r\n newScope.assetId = scope.data.assetId;\r\n newScope.standardsInfo.close = {\r\n action: scope.previousPanel.bind(scope, false, true),\r\n title: scope.closeButtonMessage\r\n };\r\n\r\n html =\r\n '';\r\n var compileElement = $compile(html)(newScope);\r\n scope.spa_map_to_standards_wrapper_el.empty();\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n scope.spa_map_to_standards_wrapper_el.append(compileElement);\r\n scope.panels.standardsSelection.element = compileElement;\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ELEMENTS_OVERVIEW:\r\n newScope = scope.$new(true);\r\n newScope.data = scope.data.panelData;\r\n newScope.assetId = scope.data.assetId;\r\n html = `\r\n \r\n \r\n `;\r\n var compileElement = $compile(html)(newScope);\r\n scope.spa_sidebar_elements_view_el.empty();\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n scope.spa_sidebar_elements_view_el.append(compileElement);\r\n scope.panels.sidebarElementsView.element = compileElement;\r\n break;\r\n case PANEL_CONSTANTS.PANEL.FILE_UPLOAD:\r\n newScope = scope.$new(true);\r\n newScope.panelInfo = scope.data.panelSettings;\r\n newScope.panelInfo.close = scope.previousPanel.bind(scope);\r\n\r\n const showTagger = scope.data.showTagger === undefined ? true : scope.data.showTagger;\r\n const showDescription = scope.data.showDescription === undefined ? true : scope.data.showDescription;\r\n\r\n html =\r\n '';\r\n\r\n var compileElement = $compile(html)(newScope);\r\n scope.spa_file_upload_wrapper_el.empty();\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n scope.spa_file_upload_wrapper_el.append(compileElement);\r\n scope.panels.fileUpload.element = compileElement;\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ADD_EVIDENCE:\r\n newScope = scope.$new(true);\r\n newScope.closeInfo = {\r\n closeAction: scope.previousPanel.bind(scope),\r\n fullyCloseAction: scope.closePanels.bind(scope),\r\n label: scope.closeButtonMessage\r\n };\r\n\r\n newScope.assetId = scope.data.assetId;\r\n newScope.anchorId = scope.data.anchorId;\r\n newScope.evidenceAssetIds = scope.data.evidenceAssetIds;\r\n newScope.isActivePanel = true;\r\n newScope.topLevelAssetId = scope.data.topLevelAssetId;\r\n newScope.evidenceMinimum = scope.data.evidenceMinimum;\r\n newScope.evidenceCount = scope.data.evidenceCount;\r\n\r\n html = ``;\r\n\r\n var compileElement = $compile(html)(newScope);\r\n const addEvidenceScope = newScope;\r\n\r\n compileElement.on(\"$destroy\", () => {\r\n addEvidenceScope.$destroy();\r\n });\r\n scope.spa_add_evidence_wrapper_el.empty();\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n scope.spa_add_evidence_wrapper_el.append(compileElement);\r\n scope.panels.addEvidence.element = compileElement;\r\n scope.activePanelScopes[panel_name] = addEvidenceScope;\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ELEMENT_COMMENTS:\r\n case PANEL_CONSTANTS.PANEL.ELEMENT_FEEDBACK:\r\n case PANEL_CONSTANTS.PANEL.ELEMENT_INFO:\r\n newScope = scope.$new(true);\r\n newScope.closeInfo = {\r\n action: scope.previousPanel.bind(scope),\r\n label: scope.closeButtonMessage\r\n };\r\n\r\n newScope.elementId = scope.data.anchorId;\r\n newScope.panelType = scope.data.panel;\r\n newScope.panelData = scope.data.panelData;\r\n newScope.assetId = scope.data.assetId;\r\n newScope.submissionId = $routeParams.submissionId;\r\n newScope.viewerActions = $rootScope.viewerActions;\r\n newScope.isActivePanel = true;\r\n newScope.topLevelAssetId = scope.data.topLevelAssetId;\r\n\r\n html = ``;\r\n\r\n const elementInfoElement = $compile(html)(newScope);\r\n scope.spa_element_info_wrapper_el.empty();\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n scope.spa_element_info_wrapper_el.append(elementInfoElement);\r\n\r\n scope.panels.elementInfo.element = elementInfoElement;\r\n scope.panels.elementFeedback.element = elementInfoElement;\r\n scope.panels.elementComments.element = elementInfoElement;\r\n\r\n const elementInfoPanelScope = newScope;\r\n scope.activePanelScopes[panel_name] = elementInfoPanelScope;\r\n\r\n elementInfoElement.on(\"$destroy\", () => {\r\n elementInfoPanelScope.$destroy();\r\n });\r\n break;\r\n case PANEL_CONSTANTS.PANEL.ASSET_FILTERING_PANEL:\r\n newScope = scope.$new(true);\r\n newScope.assetId = scope.data.assetId;\r\n newScope.closeInfo = {\r\n action: scope.previousPanel.bind(scope),\r\n label: scope.closeButtonMessage\r\n };\r\n\r\n html = ``;\r\n const compiledElement = $compile(html)(newScope);\r\n scope.spa_asset_filtering_wrapper_element.empty();\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n scope.spa_asset_filtering_wrapper_element.append(compiledElement);\r\n scope.panels.assetFilteringPanel.element = compiledElement;\r\n\r\n const assetFilteringPanelScope = newScope;\r\n scope.activePanelScopes[panel_name] = assetFilteringPanelScope;\r\n\r\n compiledElement.on(\"$destroy\", () => {\r\n assetFilteringPanelScope.$destroy();\r\n });\r\n break;\r\n }\r\n html = null;\r\n newScope = null;\r\n // if previous panel match clicked one, then hide it\r\n if (active) {\r\n $timeout(function () {\r\n scope.activateCurrentPanel(panel_name);\r\n });\r\n } else {\r\n //scope.activateCurrentPanel(panel_name);\r\n scope.toggleSidePanel(\"right-side-menu\", false);\r\n $timeout(function () {\r\n scope.activateCurrentPanel(panel_name);\r\n });\r\n }\r\n scope.focusInPanel(scope.right_panel_holder_el, panel_name);\r\n } else {\r\n scope.closePanels();\r\n }\r\n scope.lastOpened = Date.now();\r\n };\r\n\r\n scope.getPanelFromName = function (panel_name) {\r\n var item,\r\n keys = Object.keys(scope.panels);\r\n for (var i = 0, l = keys.length; i < l; i++) {\r\n item = scope.panels[keys[i]];\r\n\r\n if (item.name === panel_name) {\r\n return item;\r\n }\r\n }\r\n };\r\n\r\n scope.updateActivePanel = function (activePanelName) {\r\n for (let [panelName, panelScope] of Object.entries(scope.activePanelScopes)) {\r\n if (panelScope !== null) {\r\n panelScope.isActivePanel = panelName === activePanelName;\r\n }\r\n }\r\n };\r\n\r\n scope.activateCurrentPanel = function (panel_name, historyItemRemoved) {\r\n let item = null;\r\n const length = scope.panelContentHistory.length - 1;\r\n let active = { element: null };\r\n const keys = Object.keys(scope.panels);\r\n let activatedPanel = false;\r\n\r\n for (var i = 0, l = keys.length; i < l; i++) {\r\n item = scope.panels[keys[i]];\r\n\r\n if (item.element !== null) {\r\n if (item.name === panel_name) {\r\n active = item;\r\n\r\n item.element.addClass(activeClass);\r\n activatedPanel = true;\r\n if (item.element.hasClass(previousClass)) {\r\n item.element.removeClass(previousClass);\r\n }\r\n\r\n //Stops elements from crossing over each other when switching back and forth.\r\n if (length >= 2 && item.name === scope.panelContentHistory[length - 2].name && !historyItemRemoved) {\r\n item.element.addClass(repeatClass);\r\n }\r\n } else if (item.element !== active.element && item.element.hasClass(activeClass)) {\r\n item.element.removeClass(activeClass);\r\n item.element.removeClass(repeatClass);\r\n }\r\n\r\n if (length >= 1 && item.name === scope.panelContentHistory[length - 1].name) {\r\n item.element.addClass(previousClass);\r\n }\r\n }\r\n }\r\n if (activatedPanel) {\r\n subscriptionServiceProvider.runSubscriptions(\"spaMenuRightPanelVisible\", panel_name);\r\n }\r\n };\r\n\r\n scope.closeCurrentPanel = function (panel_name) {\r\n var item,\r\n lastItem = scope.panelContentHistory.length - 1,\r\n keys = Object.keys(scope.panels);\r\n for (var i = 0, l = keys.length; i < l; i++) {\r\n item = scope.panels[keys[i]];\r\n\r\n if (item.name === panel_name) {\r\n item.element.removeClass(activeClass);\r\n } else if (item.name === scope.panelContentHistory[lastItem].name) {\r\n item.element.removeClass(previousClass);\r\n }\r\n }\r\n };\r\n\r\n scope.removePanelClasses = function () {\r\n var item,\r\n keys = Object.keys(scope.panels);\r\n for (var i = 0, l = keys.length; i < l; i++) {\r\n item = scope.panels[keys[i]];\r\n\r\n if (item.element !== null) {\r\n if (item.element.hasClass(activeClass)) {\r\n item.element.removeClass(activeClass);\r\n } else if (item.element.hasClass(previousClass)) {\r\n item.element.removeClass(previousClass);\r\n }\r\n\r\n if (item.element.hasClass(repeatClass)) {\r\n item.element.removeClass(repeatClass);\r\n }\r\n }\r\n }\r\n };\r\n\r\n scope.removePanelData = function () {\r\n var item,\r\n keys = Object.keys(scope.panels);\r\n for (var i = 0, l = keys.length; i < l; i++) {\r\n item = scope.panels[keys[i]];\r\n\r\n //Check to see if the panel can be 'cleaned' - SpaHistory cannot.\r\n if (item.element !== null && item.canDelete === true) {\r\n if (scope.activePanelScopes[item.name] !== undefined) {\r\n scope.activePanelScopes[item.name] = null;\r\n }\r\n\r\n item.element.remove();\r\n item.element = null;\r\n }\r\n }\r\n };\r\n\r\n scope.previousPanel = function (eraseData, stopExtraAction) {\r\n scope.right_panel_holder_el.removeClass(\"right-panel-holder__width-larger\");\r\n const panelHistoryItem = scope.panelContentHistory.pop();\r\n let panel;\r\n if (panelHistoryItem !== undefined) {\r\n panelHistoryItem.removeShortcutStack();\r\n panel = scope.getPanelFromName(panelHistoryItem.name);\r\n }\r\n //If you can't find a panel, resort to default behaviour and try and close any panels\r\n if (panel === undefined) {\r\n scope.closePanels(stopExtraAction);\r\n return;\r\n }\r\n\r\n if (panel.canDelete) {\r\n panel.element.remove();\r\n }\r\n const length = scope.panelContentHistory.length;\r\n\r\n //Erase cached data\r\n if (eraseData) {\r\n scope.data = null;\r\n scope.panelActionData = {};\r\n }\r\n //Activate last known panel\r\n if (length > 0) {\r\n const previousPanel = scope.panelContentHistory[length - 1];\r\n scope.updateActivePanel(previousPanel.name);\r\n scope.activateCurrentPanel(previousPanel.name, true);\r\n if (typeof panelHistoryItem.onPanelClose === \"function\") {\r\n panelHistoryItem.onPanelClose();\r\n }\r\n } else {\r\n scope.closePanels(stopExtraAction, panelHistoryItem.onPanelClose);\r\n }\r\n };\r\n\r\n scope.overlayCloseMenu = () => {\r\n let onPanelClose;\r\n if (scope.panelContentHistory.length > 0) {\r\n onPanelClose = scope.panelContentHistory[0].onPanelClose;\r\n }\r\n scope.closePanels(true, onPanelClose);\r\n };\r\n\r\n scope.closePanels = function (stop_extra_fn, onPanelClose) {\r\n scope.right_panel_holder_el.removeClass(\"right-panel-holder__width-larger\");\r\n var promise = subscriptionServiceProvider.runSubscriptions(\"spaMenu\");\r\n scope.searchString = \"\";\r\n\r\n //Only runs if all of the subscribed promises are successfully resolved. If you need to handle a rejection, add an extra callback parameter to the .then\r\n promise\r\n .then(() => {\r\n scope.forceCloseSidePanels(stop_extra_fn, onPanelClose);\r\n })\r\n .catch(function (error) {\r\n if (scope.focusTrapId === null) {\r\n scope.focusTrapId = scope.focusTrapService.addTrap(scope.container_el, [scope.spaAppContainer, scope.spaMenuWrapper]);\r\n }\r\n });\r\n };\r\n\r\n // make it possible to close side panel via $broadcast, from any other component\r\n scope.$on(\"spaMenuClosePanels\", scope.closePanels);\r\n\r\n scope.forceCloseSidePanels = function (stop_extra_fn, onPanelClose = null) {\r\n if (scope.extraActionFromOtherSidePanel && !stop_extra_fn) {\r\n scope.extraActionFromOtherSidePanel();\r\n }\r\n\r\n if (scope.actionMenuOpen) {\r\n scope.closeSidePanel(scope.action_menu_holder_el);\r\n scope.actionMenuOpen = false;\r\n }\r\n if (scope.right_panel_holder_el.hasClass(activeClass)) {\r\n scope.closeSidePanel(scope.right_panel_holder_el);\r\n }\r\n\r\n scope.panel_backing_el.removeClass(activeClass);\r\n scope.removePanelClasses();\r\n scope.removePanelData();\r\n scope._unbindAccessKeys();\r\n\r\n if (typeof onPanelClose === \"function\") {\r\n onPanelClose();\r\n }\r\n\r\n if (typeof scope.unbindAccessKeys === \"function\") {\r\n scope.unbindAccessKeys();\r\n }\r\n\r\n scope._resetPaneContentHistory();\r\n };\r\n\r\n scope.toProductHome = function () {\r\n var url = scope.productUrl ? scope.productUrl : \"/\";\r\n $location.path(url);\r\n };\r\n\r\n scope.updateViewFromRole = function (user) {\r\n scope.viewSegments.menu.display = spaDisplayHelper.checkRoles(scope.viewSegments.menu, user);\r\n scope.viewSegments.products.display = spaDisplayHelper.checkRoles(scope.viewSegments.products, user);\r\n };\r\n\r\n scope.initShortcutViewer = () => {\r\n shortcutManager.add(\r\n [\r\n {\r\n keys: [Keys.Control, \"/\"],\r\n callback: () =>\r\n launchShortcutViewer(\r\n document.activeElement,\r\n shortcutManager.getActiveShortcuts().sort((groupA, groupB) => groupA.description.localeCompare(groupB.description))\r\n ),\r\n description: scope.multiLanguageService.getString(\"shortcuts.toggle_shortcuts\")\r\n }\r\n ],\r\n scope.multiLanguageService.getString(\"shortcuts.group_descriptions.navigation\")\r\n );\r\n };\r\n\r\n // this is used to open the right hand side panel from non-shared components\r\n $rootScope.$on(\"openRightHandSidePanel\", function (event, data) {\r\n scope.data = data;\r\n if (data.actionData !== undefined) {\r\n scope.panelActionData = data.actionData;\r\n } else {\r\n scope.panelActionData = {};\r\n }\r\n\r\n if (scope.excludeAssetFunctionality && scope.excludeAssetFunctionality.length) {\r\n if (!scope.panelActionData.excludeAssetFunctionality) {\r\n scope.panelActionData.excludeAssetFunctionality = [];\r\n }\r\n scope.panelActionData.excludeAssetFunctionality = scope.panelActionData.excludeAssetFunctionality.concat(\r\n scope.excludeAssetFunctionality\r\n );\r\n scope.panelActionData.excludeAssetFunctionality = scope.panelActionData.excludeAssetFunctionality.distinct();\r\n }\r\n\r\n if (data.panel !== \"selector\") {\r\n scope.openRightSidePanel(data.panel, null, null, data.onPanelClose);\r\n return;\r\n }\r\n\r\n const onPanelClose = (...args) => {\r\n scope.extraActionFromOtherSidePanel();\r\n if (typeof data.onPanelClose === \"function\") {\r\n data.onPanelClose.apply(null, args);\r\n }\r\n };\r\n scope.openRightSidePanel(data.panel, null, null, onPanelClose);\r\n scope.$emit(\"setupSelector\", data);\r\n });\r\n\r\n $rootScope.$on(\"openRightHandHistoryPanel\", function (event, data) {\r\n scope.openRightSidePanel(\"history\", \"\", data);\r\n });\r\n\r\n $rootScope.$on(\"openRightHandAssetStore\", function (event, store_name) {\r\n scope.openRightSidePanel(\"asset-store\", store_name);\r\n });\r\n\r\n $rootScope.$on(\"closeRightHandSidePanel\", function (event, data) {\r\n scope.closeSidePanel(scope.right_panel_holder_el);\r\n });\r\n\r\n $rootScope.$on(\"forceCloseRightHandSidePanel\", function (event, data) {\r\n scope.forceCloseSidePanels(scope.right_panel_holder_el);\r\n });\r\n\r\n $rootScope.$on(\"openUserSettingModal\", function () {\r\n UserSettingsService.showUserSettingsModal();\r\n });\r\n\r\n $rootScope.$on(\"openUploadFileModal\", function (event, data) {\r\n if (data === true) {\r\n modal.newModal(\r\n {\r\n scope: scope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"fileUpload/templates/modal-wrapper.lazy.html\"\r\n },\r\n true\r\n );\r\n } else {\r\n $timeout(function () {\r\n modal.newModal(\r\n {\r\n scope: scope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"fileUpload/templates/modal-wrapper.lazy.html\"\r\n },\r\n true\r\n );\r\n }, 210);\r\n }\r\n });\r\n\r\n // todo: refactor this\r\n $rootScope.$on(\"createAndOpenWebfolio\", function (event, forceHistory) {\r\n assetCreateService.createAndGoToWebfolio(forceHistory);\r\n });\r\n $rootScope.$on(\"createAndOpenFoliopage\", function (event, forceHistory, onBeforeRedirect, keepHistory) {\r\n assetCreateService.createAndGoToFolioPage(forceHistory, onBeforeRedirect, keepHistory);\r\n });\r\n $rootScope.$on(\"createAndOpenCollection\", function () {\r\n assetCreateService.createAndGoToCollection();\r\n });\r\n $rootScope.$on(\"createAndOpenActivityLog\", function () {\r\n assetCreateService.createAndGoToActivityLog();\r\n });\r\n $rootScope.$on(\"createAndOpenBlog\", function () {\r\n assetCreateService.createAndGoToBlog();\r\n });\r\n $rootScope.$on(\"createAndOpenTemplateBuilder\", function (event, forceHistory) {\r\n assetCreateService.createAndGoToTemplateBuilder(forceHistory);\r\n });\r\n\r\n $rootScope.$on(\"createAndOpenWorkbookBuilder\", function (event, forceHistory) {\r\n assetCreateService.createAndGoToWorkbookBuilder(forceHistory);\r\n });\r\n\r\n scope.$on(\"$routeChangeStart\", function (event, next, current) {\r\n if (scope.any_panel_enabled === true) {\r\n scope.closePanels(scope.right_panel_holder_el);\r\n }\r\n });\r\n\r\n scope.$on(\"loginSuccess\", function (event, obj) {\r\n scope.isLoggedIn = obj.user.UserId;\r\n scope.updateViewFromRole(obj.user);\r\n });\r\n\r\n scope.$on(\"menuUpdate\", function (event, doRequest, reset, user) {\r\n scope.menuUpdate(doRequest, reset, user);\r\n });\r\n\r\n scope.$on(\"$routeChangeSuccess\", scope.initShortcutViewer);\r\n\r\n scope.updateSpaData({ updateProducts: true });\r\n\r\n scope.spa_products_icon_folder = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"spaMenu/styles/images/\");\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
`;","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\n//Segment used for Menu, Products and Tools\r\nvar SpaSegmentProperties = function (display, excludeRoles, filters, order) {\r\n this.display = display;\r\n this.excludeRoles = excludeRoles || null;\r\n this.filters = filters || null;\r\n this.order = order || null; //Used to sort the order of appearance within a segment.\r\n};\r\n\r\nangularAMD.factory(\"spaDisplayHelper\", function () {\r\n return {\r\n createSegment: function (display, excludeRoles, filters, order) {\r\n return new SpaSegmentProperties(display, excludeRoles, filters, order);\r\n },\r\n //Check whether a segment should be shown depending on a value in an obj and the excludeRoles\r\n checkRoles: function (segment, obj) {\r\n if (segment.excludeRoles !== null) {\r\n var keys = Object.keys(obj),\r\n index;\r\n for (var i = 0, l = segment.excludeRoles.length; i < l; i++) {\r\n index = keys.indexOf(segment.excludeRoles[i]);\r\n\r\n if (index !== -1 && obj[keys[index]] === true) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n return segment.display;\r\n },\r\n\r\n filter: function (segment, obj) {\r\n const filteredResults = [];\r\n\r\n if (segment.filters !== null) {\r\n for (let i = 0; i < segment.filters.length; i++) {\r\n let item = segment.filters[i];\r\n if (typeof obj[item] !== \"undefined\" && obj[item] !== null) {\r\n filteredResults.push(obj[item]);\r\n }\r\n }\r\n } else {\r\n //If no filters, return an array of all the buttons.\r\n var keys = Object.keys(obj);\r\n for (let i = 0; i < keys.length; i++) {\r\n if (obj[keys[i]] !== null) {\r\n filteredResults.push(obj[keys[i]]);\r\n }\r\n }\r\n }\r\n return filteredResults;\r\n },\r\n sort: function (segment, toSort, property) {\r\n if (segment.order !== null) {\r\n var valueIndex = -1,\r\n nextValueIndex = -1,\r\n length = toSort.length - 1;\r\n\r\n toSort.sort(function (value, nextValue) {\r\n valueIndex = segment.order.indexOf(value[property]);\r\n nextValueIndex = segment.order.indexOf(nextValue[property]);\r\n\r\n //If an item is not in the order array, it gets pushed to the back of the list\r\n if (valueIndex === -1) {\r\n valueIndex = length;\r\n }\r\n if (nextValueIndex === -1) {\r\n nextValueIndex = length;\r\n }\r\n\r\n return valueIndex - nextValueIndex;\r\n });\r\n }\r\n }\r\n };\r\n});\r\n","function MenuItem(data) {\r\n this.label = data.label;\r\n this.toggleMenu = data.toggleMenu;\r\n this.action = data.action;\r\n this.dataHook = data.dataHook;\r\n}\r\n\r\nexport { MenuItem };\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./standards-navigational-buttons.html\";\r\n\r\n// tslint:disable-next-line:no-empty\r\nclass StandardsNavigationalButtons extends NgComponent {\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\nexport const standardsNavigationalButtons = {\r\n bindings: {\r\n tabButtons: \"<\",\r\n isDisabled: \"<\"\r\n },\r\n template: template,\r\n controller: StandardsNavigationalButtons\r\n};\r\n\r\nStandardsNavigationalButtons.$inject = [];\r\nangularAMD.component(\"standardsNavigationalButtons\", standardsNavigationalButtons);\r\n","export default `
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { EventEmitter } from \"../../eventEmitter/eventEmitter\";\r\nimport \"../../utilities/helpers\";\r\n\r\nangularAMD.factory(\"StatusToolbarFactory\", StatusToolbarFactory);\r\nStatusToolbarFactory.$inject = [\"helpers\"];\r\n\r\nfunction StatusToolbarFactory(helpers) {\r\n return {\r\n createStatusDictionary: function (message, a11yNotification, a11yActionLabel, a11yCloseLabel, closeTitleLabel) {\r\n return new StatusItemDictionary(message, a11yNotification, a11yActionLabel, a11yCloseLabel, closeTitleLabel);\r\n },\r\n createStatus: function (message, close, duration, action, onComplete, icon, colour, content, statusClassName) {\r\n var textTheme = colour && helpers.getContrastYIQ(colour, 128) === \"black\" ? \"status-toolbar__list-item--dark-text\" : \"\";\r\n return new StatusItem(message, close, duration, action, onComplete, icon, colour, textTheme, content, statusClassName);\r\n },\r\n createQueuedItemCollection: function (statuses, maxActiveStatuses) {\r\n return new QueuedStatusItemCollection(statuses, maxActiveStatuses);\r\n },\r\n createHandler: function (timeoutFactory, maxDisplayedTimedStatuses) {\r\n return new StatusHandler(timeoutFactory, maxDisplayedTimedStatuses);\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * @typedef {Object} ContentItem\r\n * @property {String} text\r\n * @property {Function} onClick\r\n * @property {String} ariaLabel\r\n * @property {String} dataHook\r\n *\r\n * @param {StatusItemDictionary} dictionary\r\n * @param {Boolean} close\r\n * @param {Number} duration - 0 or Infinity for persistent.\r\n * @param {Function=} action\r\n * @param {Function=} onComplete\r\n * @param {String=} icon\r\n * @param {String=} colour - Hex or RGB colour value\r\n * @param {String=} textTheme\r\n * @param {ContentItem[]} content - Array of {@link ContentItem} objects to display as buttons on the toolbar\r\n * @constructor\r\n */\r\nfunction StatusItem(dictionary, close, duration, action, onComplete, icon, colour, textTheme, content, statusClassName) {\r\n this.dictionary = dictionary || \"\";\r\n this.close = typeof close === \"boolean\" ? close : true;\r\n this.duration = !isNaN(duration) && duration >= 0 ? duration : 5000;\r\n this.action = typeof action === \"function\" ? action : null;\r\n this.onComplete = typeof onComplete === \"function\" ? onComplete : null;\r\n this.icon = icon || \"\";\r\n this.colour = colour || \"\";\r\n this.textTheme = textTheme || \"\";\r\n this.content = content || [];\r\n this.statusClassName = statusClassName ?? \"\";\r\n}\r\n\r\n/**\r\n * @param {String} message\r\n * @param {String} a11yNotification\r\n * @param {String} a11yActionLabel\r\n * @param {String} a11yCloseLabel\r\n * @param {String} closeTitleLabel\r\n * @constructor\r\n */\r\nfunction StatusItemDictionary(message, a11yNotification, a11yActionLabel, a11yCloseLabel, closeTitleLabel) {\r\n this.message = message;\r\n this.a11yNotification = a11yNotification || message;\r\n this.a11yActionLabel = a11yActionLabel || message;\r\n this.a11yCloseLabel = a11yCloseLabel || message;\r\n this.closeTitleLabel = closeTitleLabel || null;\r\n}\r\n\r\n/**\r\n * @return {Boolean}\r\n */\r\nStatusItem.prototype.isPersistent = function () {\r\n return this.duration <= 0 || this.duration === Infinity;\r\n};\r\n\r\n/**\r\n * @param {Array=} statuses\r\n * @param {Number=} maxActiveStatuses\r\n * @constructor\r\n */\r\nfunction QueuedStatusItemCollection(statuses, maxActiveStatuses) {\r\n this.statuses = statuses || [];\r\n this.maxActiveStatuses = maxActiveStatuses || Infinity;\r\n this.activeList = statuses.slice(0, this.maxActiveStatuses);\r\n}\r\n\r\nQueuedStatusItemCollection.prototype.add = function (status) {\r\n var displayed = false;\r\n this.statuses.push(status);\r\n\r\n if (this.activeList.length <= this.maxActiveStatuses) {\r\n displayed = true;\r\n this.activeList.push(status);\r\n }\r\n\r\n return displayed;\r\n};\r\n\r\nQueuedStatusItemCollection.prototype.remove = function (status) {\r\n this.statuses.remove(status);\r\n this.activeList.remove(status);\r\n};\r\n\r\nQueuedStatusItemCollection.prototype.inActiveList = function (status) {\r\n return this.activeList.some(function (displayedStatus) {\r\n return displayedStatus === status;\r\n });\r\n};\r\n\r\n/**\r\n * @return {StatusItem|null}\r\n */\r\nQueuedStatusItemCollection.prototype.incrementQueue = function () {\r\n if (this.activeList.length <= this.maxActiveStatuses && this.activeList.length < this.statuses.length) {\r\n var item = this.statuses[this.activeList.length];\r\n this.activeList.push(item);\r\n return item;\r\n }\r\n\r\n return null;\r\n};\r\n\r\n/**\r\n * @param {$timeout} timeoutFactory\r\n * @param {Number=} maxDisplayedTimedStatuses\r\n * @constructor\r\n */\r\nfunction StatusHandler(timeoutFactory, maxDisplayedTimedStatuses) {\r\n this.timeoutFactory = timeoutFactory;\r\n this.timeouts = [];\r\n this.statusCollection = new QueuedStatusItemCollection([], maxDisplayedTimedStatuses || StatusHandler.maxDisplayedTimedStatuses);\r\n\r\n this.events = new EventEmitter([\"statusListChange\"]);\r\n}\r\n\r\nStatusHandler.maxDisplayedTimedStatuses = 5;\r\n\r\nStatusHandler.prototype.addStatus = function (status, push) {\r\n var isActive = this.statusCollection.add(status, push);\r\n\r\n if (isActive && !status.isPersistent()) {\r\n this.timeouts.push(this._createNewTimeout(status));\r\n }\r\n\r\n this.events.emit(\"statusListChange\");\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * @param {StatusItem} status\r\n */\r\nStatusHandler.prototype.removeStatus = function (status) {\r\n this.statusCollection.remove(status);\r\n\r\n this.events.emit(\"statusListChange\");\r\n\r\n var index = this.timeouts.findIndex(function (item) {\r\n return item.key === status;\r\n });\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n this.timeoutFactory.cancel(this.timeouts[index].value);\r\n this.timeouts.splice(index, 1);\r\n};\r\n\r\nStatusHandler.prototype.removeAllStatus = function () {\r\n var statuses = this.statusCollection.activeList.slice();\r\n statuses.forEach(this.removeStatus.bind(this));\r\n this.statusCollection.statuses.length = 0;\r\n};\r\n\r\nStatusHandler.prototype.updateQueue = function () {\r\n var lastActiveItem = this.statusCollection.incrementQueue();\r\n\r\n if (lastActiveItem === null || lastActiveItem.isPersistent()) {\r\n return;\r\n }\r\n\r\n this.timeouts.push(this._createNewTimeout(lastActiveItem));\r\n};\r\n\r\n/**\r\n * @param {StatusItem} status\r\n * @return {{key: StatusItem, value: Promise}}\r\n * @private\r\n */\r\nStatusHandler.prototype._createNewTimeout = function (status) {\r\n var timeoutPromise = this.timeoutFactory(this.onComplete.bind(this, status), status.duration);\r\n return { key: status, value: timeoutPromise };\r\n};\r\n\r\n/**\r\n * @param {StatusItem} status\r\n */\r\nStatusHandler.prototype.onComplete = function (status) {\r\n if (typeof status.onComplete === \"function\") {\r\n status.onComplete();\r\n }\r\n\r\n this.removeStatus(status);\r\n this.updateQueue();\r\n};\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../../utilities/accessibilityKeyEventHelper.service\";\r\nimport template from \"./templates/status-toolbar.html\";\r\n\r\nangularAMD.directive(\"statusToolbar\", StatusToolbar);\r\nStatusToolbar.$inject = [];\r\n\r\nangularAMD.controller(\"StatusToolbarController\", StatusToolbarController);\r\nStatusToolbarController.$inject = [\"multiLanguageService\", \"accessibilityKeyEventHelper\"];\r\n\r\nfunction StatusToolbar() {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n handler: \"=\"\r\n },\r\n controller: \"StatusToolbarController\",\r\n controllerAs: \"vm\",\r\n bindToController: true\r\n };\r\n}\r\n\r\nfunction StatusToolbarController(multiLanguageService, accessibilityKeyEventHelper) {\r\n this.multiLanguageService = multiLanguageService;\r\n this.accessibilityKeyEventHelper = accessibilityKeyEventHelper;\r\n this.statusToolbarAriaLabel = this.setAriaLabel(this.handler.statusCollection.activeList.length);\r\n\r\n this.handler.events.on(\r\n \"statusListChange\",\r\n function () {\r\n this.statusToolbarAriaLabel = this.setAriaLabel(this.handler.statusCollection.activeList.length);\r\n }.bind(this)\r\n );\r\n}\r\n\r\nStatusToolbarController.prototype.setAriaLabel = function (count) {\r\n if (count > 0) {\r\n return this.multiLanguageService.getString(\"status_toolbar.toolbar_aria_label\", {\r\n count: count\r\n });\r\n }\r\n\r\n return this.multiLanguageService.getString(\"status_toolbar.toolbar_aria_label_none\", {\r\n count: count\r\n });\r\n};\r\n\r\nStatusToolbarController.prototype.onEscape = function (event, status) {\r\n if (event.keyCode === this.accessibilityKeyEventHelper.keyCodeMap.escape) {\r\n this.handler.onComplete(status);\r\n }\r\n};\r\n","export default `
  • {{::status.dictionary.a11yNotification}}
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/compileHelper.factory\";\r\nimport \"../directives/statusToolbar/statusToolbar.directive\";\r\nimport \"../factories/statusToolbar.factory\";\r\n\r\nangularAMD.provider(\"StatusToolbar\", StatusToolbarProvider);\r\n\r\nfunction StatusToolbarProvider() {\r\n this.container = null;\r\n\r\n this.setContainer = function (element) {\r\n this.container = element;\r\n };\r\n\r\n this.$get = [\r\n \"$rootScope\",\r\n \"$timeout\",\r\n \"$document\",\r\n \"CompileHelperFactory\",\r\n \"StatusToolbarFactory\",\r\n function ($rootScope, $timeout, $document, compileHelperFactory, statusToolbarFactory) {\r\n var compiler = new compileHelperFactory($rootScope, angular.element(this.container), true);\r\n return new StatusToolbar($timeout, $document, compiler, statusToolbarFactory);\r\n }.bind(this)\r\n ];\r\n}\r\n\r\nfunction StatusToolbar($timeout, $document, compiler, statusToolbarFactory) {\r\n this.$document = $document;\r\n this.$timeout = $timeout;\r\n\r\n this.persistentHandler = statusToolbarFactory.createHandler($timeout, Infinity);\r\n this.statusHandler = statusToolbarFactory.createHandler($timeout);\r\n this.actionHandler = statusToolbarFactory.createHandler($timeout, Infinity);\r\n var args = { persistentHandler: this.persistentHandler, statusHandler: this.statusHandler, actionHandler: this.actionHandler };\r\n\r\n this.toolbarContainer = compiler.compile(\r\n `
\r\n \r\n \r\n \r\n
`,\r\n args,\r\n true,\r\n true,\r\n false\r\n );\r\n}\r\n\r\nStatusToolbar.prototype.addStatus = function (status) {\r\n var handler = status.isPersistent() ? this.persistentHandler : this.statusHandler;\r\n handler.addStatus(status);\r\n};\r\n\r\nStatusToolbar.prototype.addActionStatus = function (status) {\r\n this.actionHandler.addStatus(status);\r\n};\r\n\r\nStatusToolbar.prototype.removeStatus = function (status) {\r\n if (!status) {\r\n return;\r\n }\r\n\r\n var handler = status.isPersistent() ? this.persistentHandler : this.statusHandler;\r\n handler.removeStatus(status);\r\n};\r\n\r\nStatusToolbar.prototype.removeActionStatus = function (status) {\r\n if (!status) {\r\n return;\r\n }\r\n\r\n this.actionHandler.removeStatus(status);\r\n};\r\n\r\nStatusToolbar.prototype.removeAllStatuses = function () {\r\n this.persistentHandler.removeAllStatus();\r\n this.statusHandler.removeAllStatus();\r\n this.actionHandler.removeAllStatus();\r\n};\r\n\r\nStatusToolbar.prototype.hide = function () {\r\n this.toolbarContainer[0].style.display = \"none\";\r\n};\r\n\r\nStatusToolbar.prototype.show = function () {\r\n this.toolbarContainer[0].style.display = \"block\";\r\n};\r\n\r\nStatusToolbar.prototype.reposition = function () {\r\n var navigation = this.$document[0].querySelector(\"navigation\");\r\n var assetTopBar = this.$document[0].querySelector('[data-hook=\"asset-top-bar\"]');\r\n\r\n if (navigation) {\r\n this.toolbarContainer[0].style.top = navigation.getBoundingClientRect().bottom + \"px\";\r\n } else if (assetTopBar) {\r\n this.toolbarContainer[0].style.top = assetTopBar.getBoundingClientRect().bottom + \"px\";\r\n } else if (this.toolbarContainer[0].style.top !== \"\") {\r\n this.resetPosition();\r\n }\r\n};\r\n\r\nStatusToolbar.prototype.resetPosition = function () {\r\n this.toolbarContainer[0].removeAttribute(\"style\");\r\n};\r\n\r\nStatusToolbar.prototype.focusElement = function (dataHook) {\r\n const element = this.$document[0].querySelector(`[data-hook=\"${dataHook}\"]`);\r\n if (element !== null) {\r\n element.focus();\r\n }\r\n};\r\n","import { isAndroid, isIphoneLike, isIpadLike } from \"@pjs/utilities\";\r\n\r\nclass StickyElementCoordinatorImplementation {\r\n constructor(container) {\r\n this._container = container;\r\n this._trackedElements = new Map();\r\n\r\n this._containerObserver = new ResizeObserver(this._handleContainerResize.bind(this));\r\n this._stickyElementObserver = new ResizeObserver(this._repositionStickyElements.bind(this));\r\n }\r\n\r\n add(element) {\r\n const isElementTracked = this._trackedElements.has(element);\r\n if (isElementTracked) {\r\n return;\r\n }\r\n\r\n if (this._trackedElements.size === 0) {\r\n this._containerObserver.observe(this._container);\r\n }\r\n\r\n this._trackedElements.set(element, true);\r\n this._stickyElementObserver.observe(element);\r\n }\r\n\r\n remove(element) {\r\n const isElementTracked = this._trackedElements.has(element);\r\n if (!isElementTracked) {\r\n return;\r\n }\r\n\r\n element.style.removeProperty(\"top\");\r\n this._trackedElements.delete(element);\r\n this._stickyElementObserver.unobserve(element);\r\n\r\n if (this._trackedElements.size === 0) {\r\n this._containerObserver.unobserve(this._container);\r\n }\r\n\r\n this._repositionStickyElements();\r\n }\r\n\r\n destroy() {\r\n this._containerObserver.disconnect();\r\n this._stickyElementObserver.disconnect();\r\n }\r\n\r\n _handleContainerResize(_) {\r\n for (const [element, lastStickyState] of this._trackedElements) {\r\n const currentStickyState = getComputedStyle(element).position === \"sticky\";\r\n\r\n if (currentStickyState === false) {\r\n this._stickyElementObserver.unobserve(element);\r\n this._trackedElements.set(element, false);\r\n continue;\r\n }\r\n\r\n if (lastStickyState === false) {\r\n this._stickyElementObserver.observe(element);\r\n this._trackedElements.set(element, true);\r\n }\r\n }\r\n\r\n this._repositionStickyElements();\r\n }\r\n\r\n _repositionStickyElements(_) {\r\n let previousHeight = 0;\r\n for (const [element, isSticky] of this._trackedElements) {\r\n if (!isSticky) {\r\n continue;\r\n }\r\n\r\n element.style.top = `${previousHeight}px`;\r\n previousHeight = element.clientHeight + previousHeight;\r\n }\r\n }\r\n}\r\n\r\n/* tslint:disable:no-empty */\r\nclass StickyElementCoordinatorNoop {\r\n add() {}\r\n remove() {}\r\n destroy() {}\r\n}\r\n/* tslint:enable:no-empty */\r\n\r\nconst isMobile = isIphoneLike || isAndroid || isIpadLike;\r\nexport const StickyElementCoordinator = isMobile ? StickyElementCoordinatorNoop : StickyElementCoordinatorImplementation;\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { StickyElementCoordinator } from \"./StickyElementCoordinator\";\r\n\r\nclass StickyContainerController extends NgComponent {\r\n constructor($element) {\r\n super();\r\n\r\n this.coordinator = new StickyElementCoordinator($element[0]);\r\n }\r\n\r\n $onDestroy() {\r\n this.coordinator.destroy();\r\n }\r\n}\r\nStickyContainerController.$inject = [\"$element\"];\r\n\r\nfunction StickyContainer() {\r\n return {\r\n restrict: \"A\",\r\n controller: StickyContainerController\r\n };\r\n}\r\n\r\nangularAMD.directive(\"stickyContainer\", StickyContainer);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./stickyContainer.directive\";\r\n\r\nfunction StickyItem() {\r\n return {\r\n restrict: \"A\",\r\n require: \"?^stickyContainer\",\r\n link: (scope, element, attrs, stickyContainer) => {\r\n if (stickyContainer === null) {\r\n return;\r\n }\r\n\r\n stickyContainer.coordinator.add(element[0]);\r\n\r\n element.on(\"$destroy\", () => {\r\n stickyContainer.coordinator.remove(element[0]);\r\n });\r\n }\r\n };\r\n}\r\n\r\nangularAMD.directive(\"stickyItem\", StickyItem);\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../stickyElementCoordinator/stickyContainer.directive\";\r\nimport template from \"./tab-content.html\";\r\n\r\nclass TabContent extends NgComponent {\r\n constructor() {\r\n super();\r\n\r\n this.state = { title: this.tabTitle, isActive: false, isDisabled: false, id: this.id };\r\n }\r\n\r\n $onInit() {\r\n this.state = { title: this.tabTitle, isActive: this.active, isDisabled: this.tabDisabled, id: this.id };\r\n this.tabSet.addTab(this.state);\r\n\r\n if (this.active) {\r\n this.tabSet.setActiveTab(this.state);\r\n }\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.active !== undefined && changes.active.currentValue && !changes.active.isFirstChange()) {\r\n this.tabSet.setActiveTab(this.state);\r\n }\r\n\r\n if (changes.tabDisabled !== undefined) {\r\n this.state.isDisabled = changes.tabDisabled.currentValue;\r\n }\r\n\r\n if (changes.tabTitle !== undefined) {\r\n this.state.title = this.tabTitle;\r\n }\r\n }\r\n\r\n $onDestroy() {\r\n this.tabSet.removeTab(this.state);\r\n }\r\n}\r\n\r\nexport const tabContent = {\r\n restrict: \"E\",\r\n transclude: true,\r\n template: template,\r\n controller: TabContent,\r\n bindings: {\r\n active: \"
`;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { chevronIcon } from \"@pjs/core-ui\";\r\nimport template from \"./tab-set.html\";\r\nimport \"../tabContent/tabContent.component\";\r\nimport \"../utilities/accessibilityKeyEventHelper.service\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../react2angular/icon\";\r\n\r\nclass TabSet extends NgComponent {\r\n constructor($element, $timeout, $scope, accessibilityKeyEventHelper, multiLanguageService) {\r\n super();\r\n\r\n this._$element = $element;\r\n this._$timeout = $timeout;\r\n this._$scope = $scope;\r\n this._keyCodeMap = accessibilityKeyEventHelper.keyCodeMap;\r\n this._multiLanguageService = multiLanguageService;\r\n this._tabRowElement = this._$element[0].querySelector(\"[data-hook='tab-row']\");\r\n this.tabs = [];\r\n this.icon = chevronIcon;\r\n this.addTabCount = 0;\r\n this.showScrollButtons = false;\r\n this.disableLeftScroll = false;\r\n this.disableRightScroll = false;\r\n\r\n this.buttonLabels = {\r\n left: this._multiLanguageService.getString(\"atlas_sidebar.scroll_left\"),\r\n right: this._multiLanguageService.getString(\"atlas_sidebar.scroll_right\")\r\n };\r\n\r\n this.observer = this._setupIntersectionObserver();\r\n\r\n $scope.$on(\"splitAreaSizes\", () => {\r\n this._$scope.$applyAsync(() => {\r\n this._showScrollButtons();\r\n });\r\n });\r\n }\r\n\r\n $postLink() {\r\n if (typeof this.focusTabId === \"string\" && this._focusTabId !== \"\") {\r\n this._$timeout(() => {\r\n this._focusTab();\r\n });\r\n }\r\n\r\n this._$scope.$applyAsync(() => {\r\n this._showScrollButtons();\r\n this._setupObservers();\r\n });\r\n }\r\n\r\n $onChanges(changes) {\r\n if (typeof this.focusTabId === \"string\" && changes.focusTabId !== undefined && this._focusTabId !== \"\") {\r\n this._focusTab();\r\n }\r\n }\r\n\r\n $onDestroy() {\r\n this.observer.disconnect();\r\n }\r\n\r\n scroll(scrollRight) {\r\n const tabRow = this._tabRowElement;\r\n const buttons = tabRow.querySelectorAll(\"button\");\r\n const tabRowRect = tabRow.getBoundingClientRect();\r\n\r\n for (const button of buttons) {\r\n const buttonRect = button.getBoundingClientRect();\r\n if (!scrollRight && buttonRect.left < tabRowRect.left && buttonRect.right >= tabRowRect.left) {\r\n const left = button === buttons[0] ? -tabRow.scrollLeft : Math.floor(buttonRect.left - tabRowRect.left);\r\n tabRow.scrollBy({ left: left });\r\n break;\r\n }\r\n if (scrollRight && buttonRect.left <= tabRowRect.right && buttonRect.right > tabRowRect.right) {\r\n const left = button === buttons[buttons.length - 1] ? tabRow.scrollWidth - (tabRow.scrollLeft + tabRow.clientWidth) : Math.ceil(buttonRect.right - tabRowRect.right);\r\n tabRow.scrollBy({ left: left });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n getTabSet() {\r\n return this.tabs;\r\n }\r\n\r\n addTab(tabObject) {\r\n this.tabs.push(tabObject);\r\n this.addTabCount = 0;\r\n this._$scope.$applyAsync(() => {\r\n this.addTabCount++;\r\n if (this.addTabCount === 1) {\r\n this._showScrollButtons();\r\n }\r\n });\r\n }\r\n\r\n removeTab(tabObject) {\r\n const index = this.tabs.indexOf(tabObject);\r\n if (index !== -1) {\r\n this.tabs.splice(index, 1);\r\n }\r\n }\r\n\r\n clearTabSet() {\r\n this.tabs.length = 0;\r\n }\r\n\r\n setActiveTab(activeTab) {\r\n const index = this.tabs.indexOf(activeTab);\r\n if (index !== -1) {\r\n this.tabs.forEach((tab) => {\r\n tab.isActive = tab === activeTab;\r\n });\r\n }\r\n\r\n this.onTabChange({\r\n activeTab: activeTab\r\n });\r\n\r\n this._$timeout(() => {\r\n this._setupObservers();\r\n\r\n if (this.showScrollButtons === true && index !== -1) {\r\n // This is to get around a chromium bug relating to smooth scrolling 😔\r\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1121151\r\n this._tabRowElement.style.scrollBehavior = \"unset\";\r\n\r\n this._$element[0].querySelector(`[data-hook=\"${activeTab.id}-tab\"]`).scrollIntoView({\r\n inline: \"center\",\r\n block: \"center\"\r\n });\r\n\r\n this._tabRowElement.style.scrollBehavior = \"smooth\";\r\n }\r\n });\r\n }\r\n\r\n setFocusedTab(e) {\r\n if (e.keyCode === this._keyCodeMap.rightArrow || e.keyCode === this._keyCodeMap.leftArrow) {\r\n let selectedTabIndex = this.tabs.findIndex((tab) => `${tab.id}-tab` === e.target.id);\r\n let initialTabIndex = selectedTabIndex;\r\n let direction = e.keyCode === this._keyCodeMap.rightArrow ? 1 : -1;\r\n\r\n for (let i = 0; i < this.tabs.length; i++) {\r\n selectedTabIndex = selectedTabIndex + direction;\r\n if (selectedTabIndex >= this.tabs.length) {\r\n selectedTabIndex = 0;\r\n }\r\n if (selectedTabIndex < 0) {\r\n selectedTabIndex = this.tabs.length - 1;\r\n }\r\n if (initialTabIndex === selectedTabIndex) {\r\n break;\r\n }\r\n\r\n const selectedTab = this.tabs[selectedTabIndex];\r\n if (!selectedTab.isDisabled) {\r\n this._$element[0].querySelector(`#${selectedTab.id}-tab`).focus();\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n _focusTab() {\r\n this._$element[0].querySelector(`[data-hook='${this.focusTabId}-tab']`)?.focus();\r\n }\r\n\r\n _showScrollButtons() {\r\n // If the element width is a decimal funky things happen due to scrollWidth rounding up and clientWidth rounding down.\r\n // Offset added to normalise the values. 💩\r\n const roundingOffset = 1;\r\n this.showScrollButtons = this._tabRowElement.scrollWidth > this._tabRowElement.clientWidth + roundingOffset;\r\n }\r\n\r\n _setupIntersectionObserver() {\r\n return new IntersectionObserver(\r\n (payload) => {\r\n for (const entry of payload) {\r\n const isIntersecting = entry.intersectionRatio === 1;\r\n if (entry.target === this._leftEdgeButton && this.disableLeftScroll !== isIntersecting) {\r\n this.disableLeftScroll = isIntersecting;\r\n this._$scope.$applyAsync();\r\n }\r\n if (entry.target === this._rightEdgeButton && this.disableRightScroll !== isIntersecting) {\r\n this.disableRightScroll = isIntersecting;\r\n this._$scope.$applyAsync();\r\n }\r\n }\r\n },\r\n {\r\n root: this._tabRowElement,\r\n threshold: 1\r\n }\r\n );\r\n }\r\n\r\n _setupObservers() {\r\n this.observer.disconnect();\r\n\r\n if (this.tabs.length > 0) {\r\n this._leftEdgeButton = this._$element[0].querySelector(`[data-hook='${this.tabs[0].id}-tab']`);\r\n this._rightEdgeButton = this._$element[0].querySelector(`[data-hook='${this.tabs[this.tabs.length - 1].id}-tab']`);\r\n\r\n this.observer.observe(this._leftEdgeButton);\r\n this.observer.observe(this._rightEdgeButton);\r\n }\r\n }\r\n}\r\n\r\nexport const tabSet = {\r\n restrict: \"E\",\r\n transclude: true,\r\n template: template,\r\n controller: TabSet,\r\n bindings: {\r\n onTabChange: \"&\",\r\n focusTabId: \"
`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\n\r\nangularAMD.factory(\"tagService\", [\r\n \"$http\",\r\n \"$q\",\r\n \"baseUrlsFactory\",\r\n function ($http, $q, baseUrlsFactory) {\r\n function promisedGet(url, params) {\r\n $http.defaults.withCredentials = true;\r\n var httpTimeout = $q.defer();\r\n var request = $http.get(url, {\r\n timeout: httpTimeout.promise,\r\n params: params\r\n });\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n promise._httpTimeout = httpTimeout;\r\n return promise;\r\n }\r\n\r\n function promisedPost(url, data) {\r\n $http.defaults.withCredentials = true;\r\n var httpTimeout = $q.defer();\r\n var request = $http.post(url, data, { timeout: httpTimeout.promise });\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n promise._httpTimeout = httpTimeout;\r\n return promise;\r\n }\r\n\r\n return {\r\n getCourseTags: function (workbookId, assetId) {\r\n return promisedGet(`${baseUrlsFactory.api_base_url}Tag/GetCourseTags`, { mappingSourceId: workbookId, assetId: assetId });\r\n },\r\n\r\n getTags: function () {\r\n return promisedGet(baseUrlsFactory.api_base_url + \"Tag/GetTags\");\r\n },\r\n\r\n addTag: function (assetIds, tags) {\r\n var model = {\r\n assetIds: assetIds,\r\n tags: tags\r\n };\r\n return promisedPost(baseUrlsFactory.api_base_url + \"Tag/AddTag\", model);\r\n },\r\n\r\n removeTag: function (assetIds, tags) {\r\n var model = {\r\n assetIds: assetIds,\r\n tags: tags\r\n };\r\n return promisedPost(baseUrlsFactory.api_base_url + \"Tag/RemoveTag\", model);\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../extensions/arrayExtensions\";\r\nimport \"./services/tagService\";\r\nimport \"../autocomplete/autoComplete\";\r\nimport template from \"./templates/tagger.html\";\r\n\r\nangularAMD.directive(\"tagger\", [\r\n \"$q\",\r\n \"$sce\",\r\n \"$rootScope\",\r\n \"$timeout\",\r\n \"$http\",\r\n \"baseUrlsFactory\",\r\n \"tagService\",\r\n function ($q, $sce, $rootScope, $timeout, $http, baseUrlsFactory, tagService) {\r\n return {\r\n template: template,\r\n restrict: \"E\",\r\n scope: {\r\n assetIds: \"=?assetIds\",\r\n tags: \"=?tags\",\r\n filterOnly: \"=?filterOnly\"\r\n },\r\n controller: [\r\n \"$scope\",\r\n function ($scope) {\r\n $scope.getTagList = function () {\r\n tagService.getTags().then(function (response) {\r\n $scope.autoCompleteTags = response.data;\r\n angular.forEach($scope.autoCompleteTags, function (tag) {\r\n // tslint:disable-next-line:triple-equals\r\n tag.IconUrl = baseUrlsFactory.shared_component_base_url + \"images/tagger/\" + (tag.OrganisationalTag == true ? \"institutional-tag.svg\" : \"tag.svg\");\r\n });\r\n });\r\n };\r\n $scope.getTagList();\r\n\r\n $scope.multiLanguageService = $rootScope.multiLanguageService;\r\n\r\n if (!$scope.tags) {\r\n $scope.tags = [];\r\n }\r\n\r\n $scope.viewMode = false;\r\n if ($scope.assetIds && $scope.assetIds.length === 1) {\r\n $http.defaults.withCredentials = true;\r\n $http.get(baseUrlsFactory.api_base_url + \"Locking/IsLockedByAnother?assetId=\" + $scope.assetIds[0]).then(function (response) {\r\n $scope.viewMode = response.data;\r\n });\r\n }\r\n\r\n $scope.$on(\"autoCompleteItemSelected\", function (event, data) {\r\n $scope.addTag(data.Title);\r\n });\r\n\r\n $scope.addTag = function (tag) {\r\n if (!tag) {\r\n return;\r\n }\r\n\r\n var regex = new RegExp(\",\", \"g\");\r\n tag = tag.replace(regex, \"\");\r\n // Make sure there is an acceptable tag to add\r\n if (!tag || tag.length < 1) {\r\n // Clear text box\r\n $scope.$broadcast(\"clearAutoCompleteInput\");\r\n return;\r\n }\r\n for (var i = 0; i < $scope.tags.length; i++) {\r\n if ($scope.tags[i].toLowerCase() === tag.toLowerCase()) {\r\n // Clear text box\r\n $scope.$broadcast(\"clearAutoCompleteInput\");\r\n return;\r\n }\r\n }\r\n\r\n $scope.tags.push(tag);\r\n $scope.$emit(\"tagAdded\", tag);\r\n\r\n // If not adding tags just for filtering a search then save them\r\n // tslint:disable-next-line:triple-equals\r\n if ($scope.filterOnly == undefined) {\r\n tagService.addTag($scope.assetIds, $scope.tags);\r\n }\r\n\r\n //Reset tag to stop it from being remembered when add is hit.\r\n $scope.tag = \"\";\r\n\r\n // Clear text box\r\n $scope.$broadcast(\"clearAutoCompleteInput\");\r\n\r\n // Maintain focus within the tagger\r\n $timeout(function () {\r\n $scope.$broadcast(\"focusInput\");\r\n });\r\n };\r\n\r\n $scope.removeTag = function (index) {\r\n var removedTag = {\r\n index: index,\r\n tag: $scope.tags[index]\r\n };\r\n $scope.tags.splice(index, 1);\r\n $scope.$emit(\"tagRemoved\", removedTag);\r\n\r\n // If removing tags from an asset\r\n // tslint:disable-next-line:triple-equals\r\n if ($scope.filterOnly == undefined && $scope.assetIds) {\r\n tagService.removeTag($scope.assetIds, [removedTag.tag]);\r\n }\r\n\r\n // Maintain focus within the tagger\r\n $timeout(function () {\r\n var first_tag_el = document.getElementsByClassName(\"tag-delete\")[0];\r\n if (first_tag_el) {\r\n first_tag_el.focus();\r\n } else {\r\n $scope.$broadcast(\"focusInput\");\r\n }\r\n });\r\n };\r\n\r\n $scope.$on(\"clearTagsFromFilters\", function () {\r\n $scope.tags = [];\r\n });\r\n\r\n $scope.onTagEntryKeyUp = function (event, text) {\r\n var keyPressed = event.which;\r\n $scope.tag = text;\r\n if (keyPressed === 13 || keyPressed === 188) {\r\n // enter or comma\r\n $scope.addTag(text);\r\n }\r\n };\r\n }\r\n ],\r\n link: function (scope, element, attrs) {\r\n scope.$on(\"resetTagsList\", function (event) {\r\n scope.getTagList();\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","export default `
  • {{ tag }}
`;","import { Component, Context, createRef, ReactElement, RefObject } from \"react\";\r\nimport { BoundaryContext, IBoundaryContext } from \"@pjs/core-ui\";\r\nimport { BaseEditor } from \"../base-editor/BaseEditor.component\";\r\nimport { IEditorFactoryConfig } from \"../editor-factories/interfaces/IEditorFactoryConfig\";\r\nimport { limitInstances } from \"../behaviours/limit-instances/LimitInstances.function\";\r\nimport { displayShortcuts } from \"../behaviours/display-shortcuts/functions/DisplayShortcuts.function\";\r\nimport { multiLineFactory } from \"../editor-factories/MultiLineFactory.function\";\r\nimport { compactToolbarPreset } from \"../toolbar-items/presets/Compact\";\r\nimport { compactMultiLineParser } from \"../html-parsers/CompactMultiLineParser.const.\";\r\nimport { CompactMultiLineEditorProps } from \"./types/CompactMultiLineEditorProps\";\r\nimport \"../../styles/attached-editor.css\";\r\nimport \"../../styles/utilities.css\";\r\n\r\nexport class CompactMultiLineEditor extends Component {\r\n public static contextType: Context = BoundaryContext;\r\n private readonly _toolbarRef: RefObject;\r\n private readonly _config: IEditorFactoryConfig;\r\n\r\n constructor(props: CompactMultiLineEditorProps, context: IBoundaryContext) {\r\n super(props);\r\n this._toolbarRef = createRef();\r\n\r\n this._config = {\r\n behaviours: [limitInstances, displayShortcuts],\r\n boundaryElement: context.element,\r\n parser: compactMultiLineParser,\r\n placeholder: this.props.placeholder,\r\n pluginOverrides: { linker: { onLink: this.props.onLink } },\r\n toolbarItems: compactToolbarPreset\r\n };\r\n }\r\n\r\n public render(): ReactElement {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import { CompactMultiLineEditorWithBoundary } from \"@pjs/rich-text\";\r\nimport { react2angular } from \"@pebblepad/react2angular\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.component(\r\n \"compactMultiLineEditor\",\r\n react2angular(CompactMultiLineEditorWithBoundary, [\"className\", \"content\", \"dataHook\", \"ariaLabel\", \"ariaLabelledBy\", \"onToolbarDisplayChange\", \"onChange\", \"onLink\", \"placeholder\", \"autoFocus\"])\r\n);\r\n","import { ComponentType, FunctionComponent } from \"react\";\r\nimport { BoundaryBridge } from \"@pjs/core-ui\";\r\nimport { WithLabelAndLabelledBy } from \"../../types/WithLabelAndLabelledBy\";\r\nimport { CompactMultiLineEditorProps } from \"./types/CompactMultiLineEditorProps\";\r\nimport { CompactMultiLineEditor } from \"./CompactMultiLineEditor.component\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst EditorWithLabelAndLabelledBy = CompactMultiLineEditor as ComponentType>;\r\n\r\nexport const CompactMultiLineEditorWithBoundary: FunctionComponent = (props) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport template from \"./compact-floating-rich-text-editor.html\";\r\nimport \"../react2angular/compactMultiLineEditor\";\r\nimport { reactEditorAdapterBindings } from \"../reactEditorAdapter/ReactEditorAdapterBindings.const\";\r\nimport { FloatingToolbarReactEditorAdapterController } from \"../reactEditorAdapter/FloatingToolbarReactEditorAdapterController\";\r\n\r\nexport const compactFloatingRichTextEditorDefinition = {\r\n bindings: {\r\n autoFocus: \"<\",\r\n ...reactEditorAdapterBindings\r\n },\r\n controller: FloatingToolbarReactEditorAdapterController,\r\n name: \"compactFloatingRichTextEditor\",\r\n template: template\r\n};\r\n\r\nangularAMD.component(compactFloatingRichTextEditorDefinition.name, compactFloatingRichTextEditorDefinition);\r\n","export default ` `;","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../compactFloatingRichTextEditor/compactFloatingRichTextEditor.component\";\r\nimport template from \"./titled-text-editor.html\";\r\nimport { createGuid } from \"@pjs/utilities\";\r\n\r\nclass TitledTextEditor extends NgComponent {\r\n constructor() {\r\n super();\r\n\r\n this.richTextAutoFocus = this.focusOnLoad !== undefined ? this.focusOnLoad : false;\r\n this.richTextClassName = \"titled-text-editor__textbox\";\r\n this.richTextEditorDatahook = \"titled-text-editor-textbox\";\r\n this.onChange = this._onChange.bind(this);\r\n this.id = createGuid();\r\n this.labelledBy = `titled-textarea-title-${this.id}`;\r\n }\r\n\r\n _onChange(content) {\r\n this.onUpdate({ content: content });\r\n }\r\n}\r\n\r\nexport const titledTextEditor = {\r\n template: template,\r\n controller: TitledTextEditor,\r\n bindings: {\r\n heading: \"<\",\r\n entry: \"<\",\r\n onUpdate: \"&\",\r\n isPersistentEditor: \"<\",\r\n subTitle: \" {{::$ctrl.heading}} {{::$ctrl.subTitle}}
`;","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.service(\"clickableService\", ClickableService);\r\n\r\nClickableService.$inject = [];\r\nfunction ClickableService() {\r\n var Clickable = function (element, container, child_el, applyTo_el) {\r\n this.element = element;\r\n this.container = container || angular.element(document.body);\r\n this.child_el = child_el || null;\r\n this.applyTo_el = applyTo_el || element;\r\n this.isOpen = false;\r\n this.onGoing = 101;\r\n this.unbind = null;\r\n };\r\n\r\n Clickable.prototype.lastClickable = null;\r\n Clickable.prototype.cssClass = \"active\";\r\n Clickable.prototype.eventType = \"click\";\r\n\r\n Clickable.prototype.addTrigger = function (callback, unbind) {\r\n var that = this;\r\n\r\n //Unbind first if value of true provided.\r\n if (unbind !== undefined && unbind === true) {\r\n this.element.unbind(this.eventType);\r\n }\r\n\r\n this.unbind = function (event) {\r\n that.didClickOutside(event);\r\n };\r\n\r\n this.element.bind(this.eventType, function (e) {\r\n that.toggle(e);\r\n //Pass in null instead of a callback, if none needed.\r\n if (callback !== undefined && callback !== null && that.isOpen === true) {\r\n callback(e);\r\n }\r\n });\r\n };\r\n\r\n Clickable.prototype.toggle = function (e) {\r\n var that = this;\r\n //Deals with async issue with events firing in different orders\r\n if (Date.now() - this.onGoing > 100) {\r\n this.isOpen = !this.isOpen;\r\n\r\n if (this.isOpen === true) {\r\n this.element.addClass(this.cssClass);\r\n this.applyTo_el.addClass(this.cssClass);\r\n\r\n //Hide element when the clicking outside of the clickable's rendered area\r\n window.addEventListener(\"click\", this.unbind, true);\r\n\r\n //Prevent collapsing when clicking a child element (dropdown's list_el if provided).\r\n if (this.child_el !== null) {\r\n this.child_el.bind(this.eventType, function (event) {\r\n event.stopPropagation();\r\n });\r\n }\r\n } else {\r\n this.hide();\r\n }\r\n\r\n //In case any other dropdown was opened before, remove class from it - taken from original code in dropdown\r\n if (this.lastClickable !== null && this.lastClickable !== this.applyTo_el && this.lastClickable.hasClass(this.cssClass) === true) {\r\n this.lastClickable.removeClass(this.cssClass);\r\n }\r\n this.constructor.prototype.lastClickable = this.applyTo_el;\r\n\r\n if (e !== undefined) {\r\n //e.stopPropagation();\r\n }\r\n }\r\n };\r\n\r\n Clickable.prototype.hide = function () {\r\n this.isOpen = false;\r\n this.element.removeClass(this.cssClass);\r\n this.applyTo_el.removeClass(this.cssClass);\r\n window.removeEventListener(this.eventType, this.unbind, true);\r\n //this.container.unbind(this.eventType);\r\n\r\n if (this.child_el !== null) {\r\n this.child_el.unbind(this.eventType);\r\n }\r\n };\r\n\r\n Clickable.prototype.hideOnBlur = function () {\r\n var that = this;\r\n setTimeout(function () {\r\n if (!that.element[0].querySelector(\":active\") && !that.element[0].querySelector(\":focus\")) {\r\n that.hide();\r\n }\r\n }, 50);\r\n };\r\n\r\n Clickable.prototype.didClickOutside = function (e) {\r\n if (this.applyTo_el[0] !== e.target && !this.applyTo_el[0].contains(e.target)) {\r\n this.hide();\r\n }\r\n this.onGoing = Date.now();\r\n };\r\n\r\n return Clickable;\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.service(\"relationalPositioningService\", function () {\r\n /**\r\n * Repositions elements to fit within a boundary and next to an existing relative element\r\n * @param target_el - Angular Element\r\n * @param linked_el - Angular Element\r\n * @param boundary_el - Angular Element, Optional\r\n * @param {Number} [buffer] - Optional\r\n * @param {Object} [clearance] - Optional\r\n * @returns {Object}\r\n */\r\n var RelationalPositioner = function (target_el, linked_el, boundary_el, buffer, clearance) {\r\n this.target_el = target_el;\r\n this.linked_el = linked_el[0];\r\n this.boundary_el = boundary_el[0] || document.body;\r\n this.target = this.target_el[0].getBoundingClientRect(); //top, left, bottom, right, width, height\r\n this.linked = this.linked_el.getBoundingClientRect();\r\n this.boundary = this.convertClientRectToObj(this.boundary_el.getBoundingClientRect());\r\n this.buffer = buffer || 0; //Space between linked_el and positioned target_el\r\n this.setToBoundaryWidth = false;\r\n\r\n //Space between sides of container (e.g. reduce available space the target_el can fit in)\r\n this.clearance = this.createPositionObject(clearance);\r\n\r\n //Pre-populate differences object for better browser optimisations\r\n this.differences = this.createPositionObject();\r\n\r\n this.lastSide = null;\r\n };\r\n\r\n RelationalPositioner.prototype.defaultPositioningOrder = [\"left\", \"bottom\", \"right\", \"top\"];\r\n\r\n RelationalPositioner.prototype.createPositionObject = function (obj) {\r\n var positionObj = {\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0\r\n };\r\n\r\n for (var property in obj) {\r\n if (obj.hasOwnProperty(property) && typeof positionObj[property] !== \"undefined\") {\r\n positionObj[property] = obj[property];\r\n }\r\n }\r\n\r\n return positionObj;\r\n };\r\n\r\n RelationalPositioner.prototype.convertClientRectToObj = function (rect) {\r\n return {\r\n top: rect.top,\r\n right: rect.right,\r\n bottom: rect.bottom,\r\n left: rect.left,\r\n width: rect.width,\r\n height: rect.height\r\n };\r\n };\r\n\r\n //Call update before checking any axis IF the target element has been changed from being hidden (display none) or scrolling has occurred.\r\n RelationalPositioner.prototype.update = function () {\r\n this.target = this.target_el[0].getBoundingClientRect();\r\n this.linked = this.linked_el.getBoundingClientRect();\r\n var boundary = this.boundary_el.getBoundingClientRect(),\r\n widthDiff = boundary.width - this.boundary_el.clientWidth; //Remove a vertical scrollbar from being in the available position\r\n\r\n this.boundary.top = boundary.top + this.clearance.top;\r\n this.boundary.right = boundary.right - widthDiff - this.clearance.right;\r\n this.boundary.bottom = boundary.bottom - this.clearance.top - this.clearance.bottom;\r\n this.boundary.left = boundary.left + this.clearance.left;\r\n this.boundary.width = boundary.width - widthDiff - this.clearance.left - this.clearance.right;\r\n this.boundary.height = boundary.height - this.clearance.top - this.clearance.bottom;\r\n\r\n this.setDifferences();\r\n };\r\n\r\n //Find the difference between all the sides (available space).\r\n RelationalPositioner.prototype.setDifferences = function () {\r\n this.differences.top = this.linked.top - this.boundary.top;\r\n this.differences.right = this.boundary.right - this.linked.right;\r\n this.differences.bottom = this.boundary.bottom - this.linked.bottom;\r\n this.differences.left = this.linked.left - this.boundary.left;\r\n };\r\n\r\n RelationalPositioner.prototype.isSpaceOnSide = function (side, dimension) {\r\n return this.differences[side] + this.buffer >= this.target[dimension];\r\n };\r\n\r\n RelationalPositioner.prototype.getAreaSize = function (side) {\r\n if (side === \"left\" || side === \"right\") {\r\n return {\r\n x: this.differences[side],\r\n y: this.differences.top + this.differences.bottom + this.linked.height\r\n };\r\n } else {\r\n return {\r\n x: this.differences.left + this.differences.right + this.linked.width,\r\n y: this.differences[side]\r\n };\r\n }\r\n };\r\n\r\n RelationalPositioner.prototype.alignOnAxisRelative = function (side) {\r\n var space = { x: -1, y: -1 },\r\n dimension = this.getDimensionFromSide(side);\r\n\r\n if (this.isSpaceOnSide(side, dimension) === true) {\r\n if (dimension === \"width\") {\r\n space.x = this.linked.width;\r\n space.y = this.getNewPositionOnAxis(\"top\", \"height\");\r\n } else {\r\n space.y = this.linked.height;\r\n space.x = this.getNewPositionOnAxis(\"left\", \"width\");\r\n }\r\n }\r\n return space;\r\n };\r\n\r\n RelationalPositioner.prototype.alignOnAxisAbsolute = function (side) {\r\n var space = { x: -1, y: -1 },\r\n dimension = this.getDimensionFromSide(side),\r\n offsetObj,\r\n operator = 1,\r\n scrollOffsetX = this.boundary_el.scrollLeft,\r\n scrollOffsetY = this.boundary_el.scrollTop;\r\n\r\n //Determine how much to offset the position (e.g. width of element or width of the linked element - left or right)\r\n if (side === \"left\" || side === \"top\") {\r\n offsetObj = this.target;\r\n } else {\r\n offsetObj = this.linked;\r\n operator = 0;\r\n }\r\n\r\n if (this.isSpaceOnSide(side, dimension) === true) {\r\n if (dimension === \"width\") {\r\n space.x = this.linked[side] - offsetObj.width * operator;\r\n space.y = this.linked.top + this.getNewPositionOnAxis(\"top\", \"height\");\r\n } else {\r\n space.y = this.linked[side] - offsetObj.height * operator;\r\n space.x = this.linked.left + this.getNewPositionOnAxis(\"left\", \"width\") + scrollOffsetX;\r\n }\r\n }\r\n return space;\r\n };\r\n\r\n RelationalPositioner.prototype.getNewPositionOnAxis = function (side, dimension) {\r\n var pos = -1;\r\n if (this.setToBoundaryWidth) {\r\n this.target.width = this.boundary.width;\r\n }\r\n if (this.boundary[dimension] - this.buffer >= this.target[dimension]) {\r\n //Centre if possible\r\n pos = this.linked[dimension] / 2 - this.target[dimension] / 2;\r\n var total = this.linked[side] - this.boundary[side] + Math.abs(pos);\r\n //Check if the sum total of the new position wanted is outside of the boundary\r\n if (total > this.boundary[dimension]) {\r\n pos -= total - this.boundary[dimension] + this.linked[dimension];\r\n } else if (this.linked[side] + pos < 0) {\r\n pos = this.boundary[side] - this.linked[side];\r\n }\r\n }\r\n return pos;\r\n };\r\n\r\n RelationalPositioner.prototype.getDimensionFromSide = function (side) {\r\n return side === \"left\" || side === \"right\" ? \"width\" : \"height\";\r\n };\r\n\r\n RelationalPositioner.prototype.getPositioningSides = function (side, mirrorSides) {\r\n if (mirrorSides === true) {\r\n return {\r\n x: side === \"left\" ? \"right\" : \"left\",\r\n y: side === \"top\" ? \"bottom\" : \"top\"\r\n };\r\n } else {\r\n return {\r\n x: \"left\",\r\n y: \"top\"\r\n };\r\n }\r\n };\r\n\r\n RelationalPositioner.prototype.setPos = function (pos, positioningSides, maxWidth, maxHeight) {\r\n var rules = {\r\n maxWidth: maxWidth + \"px\",\r\n maxHeight: maxHeight + \"px\"\r\n };\r\n\r\n //Do not like to add extra properties to an object after creation...though it is easier to read and saves on extra function calls.\r\n rules[positioningSides.x] = pos.x + \"px\";\r\n rules[positioningSides.y] = pos.y + \"px\";\r\n\r\n if (this.target.width > maxWidth || this.target.height > maxHeight) {\r\n rules.overflow = \"scroll\";\r\n }\r\n this.resetStyles();\r\n this.target_el.css(rules);\r\n\r\n return pos;\r\n };\r\n\r\n RelationalPositioner.prototype.resetStyles = function () {\r\n this.target_el[0].removeAttribute(\"style\");\r\n };\r\n\r\n RelationalPositioner.prototype.fillAreaWidth = function (side, positioningAlignment) {\r\n this.update();\r\n var areaSize;\r\n if (side) {\r\n areaSize = this.getAreaSize(side);\r\n } else {\r\n var currentSide,\r\n largest = { x: -1, y: -1 };\r\n for (var i = 0, l = this.defaultPositioningOrder.length; i < l; i++) {\r\n currentSide = this.defaultPositioningOrder[i];\r\n areaSize = this.getAreaSize(currentSide);\r\n if (this.isLargerArea(areaSize, largest)) {\r\n largest = areaSize;\r\n side = currentSide;\r\n }\r\n }\r\n areaSize = largest;\r\n }\r\n this.target_el.css(\"width\", areaSize.x + \"px\");\r\n this.lastSide = side;\r\n };\r\n\r\n RelationalPositioner.prototype.isLargerArea = function (areaSize, largest) {\r\n return areaSize.x + areaSize.y > largest.x + largest.y;\r\n };\r\n\r\n RelationalPositioner.prototype.findLargestSuitableSide = function (side, positioningAlignment) {\r\n var currentSide = \"\",\r\n largest = {\r\n side: \"\",\r\n area: side ? this.getAreaSize(side) : { x: -1, y: -1 },\r\n pos: null\r\n },\r\n newPos,\r\n areaSize;\r\n\r\n positioningAlignment = positioningAlignment !== undefined ? positioningAlignment : this.alignOnAxisRelative;\r\n\r\n for (var i = 0, l = this.defaultPositioningOrder.length; i < l; i++) {\r\n currentSide = this.defaultPositioningOrder[i];\r\n\r\n //No point in checking the same side again. Avoiding splicing the side out of the array as it is considerably slower.\r\n if (currentSide !== side) {\r\n newPos = positioningAlignment(currentSide);\r\n areaSize = this.getAreaSize(currentSide);\r\n\r\n //Keep track of the largest available space.\r\n if (this.isLargerArea(areaSize, largest.area)) {\r\n largest.side = currentSide;\r\n largest.area = areaSize;\r\n largest.pos = newPos;\r\n }\r\n\r\n //Break as soon as finds a side that it will fit in\r\n if (newPos.x !== -1 && newPos.y !== -1) {\r\n largest.side = currentSide;\r\n largest.area = areaSize;\r\n largest.pos = newPos;\r\n this.lastSide = currentSide;\r\n break;\r\n }\r\n }\r\n }\r\n return largest;\r\n };\r\n\r\n /**\r\n * Repositions elements to fit within a boundary\r\n * @param {String} [side] - Optional: top, right, bottom or left\r\n * @param {String} [positioningType] - Optional: relative or absolute\r\n * @returns {Object}\r\n */\r\n RelationalPositioner.prototype.fit = function (side, positioningType, setToBoundaryWidth) {\r\n this.setToBoundaryWidth = !!setToBoundaryWidth;\r\n side = side ? side : this.lastSide !== null ? this.lastSide : this.defaultPositioningOrder[0];\r\n positioningType = positioningType ? positioningType : \"relative\";\r\n var positioningAlignment,\r\n mirrorSides = true;\r\n\r\n if (positioningType === \"absolute\") {\r\n positioningAlignment = this.alignOnAxisAbsolute.bind(this);\r\n mirrorSides = false;\r\n } else {\r\n positioningAlignment = this.alignOnAxisRelative.bind(this);\r\n }\r\n\r\n //Update before trying to fit as scrolling or other page movement changes viewport / clientRect relative values\r\n this.update();\r\n\r\n var areaSize = this.getAreaSize(side),\r\n newPos = positioningAlignment(side);\r\n //If both x and y are not equal to -1, then it can fit on the desired side.\r\n if (newPos.x === -1 && newPos.y === -1) {\r\n var largest = this.findLargestSuitableSide(null, positioningAlignment);\r\n\r\n //In the event that it cannot fit on any of the sides, width and height must be adjusted\r\n if (largest.pos.x === -1 && largest.pos.y === -1) {\r\n this.target_el.css({\r\n width: largest.area.x + \"px\"\r\n //height: largest.area.y + 'px'\r\n });\r\n this.target = this.target_el[0].getBoundingClientRect();\r\n largest.pos = positioningAlignment(largest.side);\r\n }\r\n side = largest.side;\r\n newPos = largest.pos;\r\n areaSize = largest.area;\r\n }\r\n\r\n this.lastSide = side;\r\n this.target_el.addClass(positioningType);\r\n return this.setPos(newPos, this.getPositioningSides(side, mirrorSides), areaSize.x, areaSize.y);\r\n };\r\n\r\n return RelationalPositioner;\r\n});\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/baseUrlsFactory\";\r\nimport \"../utilities/relationalPositioningService\";\r\nimport \"../utilities/clickableService\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport template from \"./templates/tooltip.html\";\r\n\r\nangularAMD.directive(\"tooltip\", [\r\n \"$sce\",\r\n \"baseUrlsFactory\",\r\n \"clickableService\",\r\n \"relationalPositioningService\",\r\n \"multiLanguageService\",\r\n function ($sce, baseUrlsFactory, clickableService, relationalPositioningService, multiLanguageService) {\r\n return {\r\n restrict: \"E\",\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n function ($scope, $element) {\r\n $scope.getTemplate = function () {\r\n return $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + $scope.template);\r\n };\r\n\r\n $scope.onTransitionEnd = function () {\r\n //Handle rapid clicks which would otherwise cause unnecessary positioning calculations, due to transitions not happening\r\n if ($scope.clickable.isOpen === true && $scope.transitionsEnded > $scope.numberOfTransitions) {\r\n $scope.transitionsEnded -= $scope.numberOfTransitions;\r\n }\r\n\r\n if (--$scope.transitionsEnded < 1) {\r\n $scope.displayTip();\r\n /* When the tooltip is toggled off the number of transitions is double the original, due to transitions running when the tip gets reset.\r\n Prevents the position calculations from running unnecessarily */\r\n $scope.transitionsEnded = $scope.numberOfTransitions * 2;\r\n }\r\n };\r\n\r\n $scope.displayTip = function () {\r\n var last = $scope.positioner.lastSide;\r\n $scope.positioner.fit($scope.side, $scope.position, $scope.setToBoundaryWidth);\r\n if (last !== $scope.positioner.lastSide) {\r\n $scope.trigger_el.removeClass(last);\r\n }\r\n $scope.trigger_el.addClass($scope.positioner.lastSide);\r\n var sides = $scope.positioner.getPositioningSides($scope.positioner.lastSide, true);\r\n $scope.content_el.css(\"float\", sides.x);\r\n $scope.content_el[0].focus();\r\n };\r\n }\r\n ],\r\n\r\n scope: {\r\n label: \"@\",\r\n tip: \"<\",\r\n template: \"@template\", //Full path to template\r\n side: \"@side\", //Preferred side to position the tooltip on\r\n position: \"@position\", //Empty, relative or absolute\r\n boundary: \"=boundary\", //Angular Element. Element to use as a boundary for positioning logic and Clickable Service.\r\n setToBoundaryWidth: \"=\",\r\n targetText: \" {\r\n scope.clickable.toggle(e);\r\n scope.displayTip();\r\n });\r\n scope.trigger_el.bind(\"mouseleave\", (e) => scope.clickable.hide());\r\n }\r\n\r\n scope.content_el.bind(\"blur\", function (e) {\r\n scope.clickable.hide();\r\n });\r\n unbind();\r\n });\r\n }\r\n };\r\n }\r\n]);\r\n","export default `

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../userAgent/userAgent.service\";\r\n\r\nangularAMD.factory(\"uberDropdownHelper\", [\r\n \"$window\",\r\n \"$timeout\",\r\n \"UserAgentService\",\r\n function ($window, $timeout, UserAgentService) {\r\n var dropdownHelper = {};\r\n\r\n dropdownHelper.toggleScrollIndicators = function () {\r\n dropdownHelper.detectScrollEdges(this.scrollableEl, this.element, this.bodyEl);\r\n };\r\n\r\n /**\r\n * Stop scrolling when user hits top or bottom of scrollable dropdown\r\n * @param e\r\n */\r\n dropdownHelper.stopScrollingInBodyEl = function (e) {\r\n var detectScrollEdgedData = dropdownHelper.detectScrollEdges(this.scrollableEl, this.element, this.bodyEl);\r\n\r\n // cross-browser wheel delta\r\n var delta = Math.max(-1, Math.min(1, e.wheelDelta || -e.detail));\r\n\r\n // if there is no scroll distance on top and user scrolls up, then do nothing\r\n // or\r\n // if user is on the bottom of scrolling distance and tries to scroll down, then do nothing\r\n if ((detectScrollEdgedData.scrollTop < 1 && delta > 0) || (detectScrollEdgedData.scrollTop >= detectScrollEdgedData.verticalScrollPos && delta < 0)) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n dropdownHelper.detectScrollEdges = function (scrollableEl, element, bodyEl) {\r\n // find scroll position inside of target\r\n var thisRect = scrollableEl.getBoundingClientRect(),\r\n verticalScrollPos = scrollableEl.scrollHeight - thisRect.height,\r\n scrollTop = scrollableEl.scrollTop;\r\n\r\n dropdownHelper.applyScrollingIndicators({\r\n element: element,\r\n scrollTop: scrollTop,\r\n bodyEl: bodyEl,\r\n verticalScrollPos: verticalScrollPos\r\n });\r\n\r\n return {\r\n scrollTop: scrollTop,\r\n verticalScrollPos: verticalScrollPos\r\n };\r\n };\r\n\r\n dropdownHelper.applyScrollingIndicators = function (opts) {\r\n opts = opts || {};\r\n var element = opts.element,\r\n bodyEl = opts.bodyEl,\r\n scrollTop = opts.scrollTop,\r\n verticalScrollPos = parseInt(opts.verticalScrollPos, 10) || 0,\r\n resetIndicators = opts.resetIndicators;\r\n\r\n if (resetIndicators) {\r\n element.removeClass(\"dropdown__scrolling-indicator--top\");\r\n element.removeClass(\"dropdown__scrolling-indicator--bottom\");\r\n bodyEl.removeClass(\"dropdown__scrolling-indicator--top\");\r\n bodyEl.removeClass(\"dropdown__scrolling-indicator--bottom\");\r\n return;\r\n }\r\n\r\n if (scrollTop < 1) {\r\n element.removeClass(\"dropdown__scrolling-indicator--top\");\r\n bodyEl.removeClass(\"dropdown__scrolling-indicator--top\");\r\n element.addClass(\"dropdown__scrolling-indicator--bottom\");\r\n bodyEl.addClass(\"dropdown__scrolling-indicator--bottom\");\r\n } else if (scrollTop >= verticalScrollPos) {\r\n element.removeClass(\"dropdown__scrolling-indicator--bottom\");\r\n bodyEl.removeClass(\"dropdown__scrolling-indicator--bottom\");\r\n element.addClass(\"dropdown__scrolling-indicator--top\");\r\n bodyEl.addClass(\"dropdown__scrolling-indicator--top\");\r\n } else {\r\n element.addClass(\"dropdown__scrolling-indicator--top\");\r\n bodyEl.addClass(\"dropdown__scrolling-indicator--top\");\r\n element.addClass(\"dropdown__scrolling-indicator--bottom\");\r\n bodyEl.addClass(\"dropdown__scrolling-indicator--bottom\");\r\n }\r\n };\r\n\r\n dropdownHelper.adjustOptions = {\r\n getBoxModelExtras: function (target) {\r\n var style = target.currentStyle || window.getComputedStyle(target);\r\n return (parseInt(style.marginTop, 10) || 0) + (parseInt(style.paddingTop, 10) || 0) + (parseInt(style.marginBottom, 10) || 0) + (parseInt(style.paddingBottom, 10) || 0);\r\n },\r\n toTop: function (target, height, element, bodyEl) {\r\n element.addClass(\"dropdown--reverse\");\r\n bodyEl.addClass(\"dropdown--reverse\");\r\n target.css({ height: height ? height + \"px\" : \"\" });\r\n },\r\n toBottom: function (target, height) {\r\n target.css({ height: height + \"px\" });\r\n },\r\n resetVertical: function (element, bodyEl, bodyInnerEl, headerEl, relativeToEl) {\r\n var top;\r\n\r\n if (relativeToEl) {\r\n var headerElTop = headerEl[0].getBoundingClientRect().bottom;\r\n top = headerElTop + \"px\";\r\n } else {\r\n top = \"\";\r\n }\r\n\r\n element.removeClass(\"dropdown--reverse\");\r\n bodyEl.css({ height: \"\" });\r\n bodyEl.css({ top: top });\r\n bodyEl.removeClass(\"dropdown--reverse\");\r\n bodyInnerEl.unbind(\"scroll\");\r\n bodyInnerEl.unbind(\"mousewheel DOMMouseScroll\");\r\n },\r\n resetHorizontal: function (bodyEl) {\r\n bodyEl.css({ right: \"\" });\r\n bodyEl.css({ left: \"\" });\r\n }\r\n };\r\n\r\n dropdownHelper.setTopValue = function (direction, bodyEl, headerElRect, relativeToElRect, relativeToEl) {\r\n if (!relativeToEl) {\r\n return;\r\n }\r\n\r\n var top;\r\n\r\n if (direction === \"bottom\") {\r\n top = headerElRect.bottom + \"px\";\r\n } else if (direction === \"top\") {\r\n top = headerElRect.top + \"px\";\r\n }\r\n\r\n bodyEl.css({ top: top });\r\n bodyEl.css({ bottom: \"auto\" }); // overwrite styles, that can be applied by developer\r\n };\r\n\r\n dropdownHelper.adjustVerticalPosition = function (opts) {\r\n var element = opts.element,\r\n bodyEl = opts.bodyEl,\r\n headerEl = opts.headerEl,\r\n bodyInnerEl = opts.bodyInnerEl,\r\n bodyElRect = opts.bodyElRect,\r\n relativeToEl = opts.relativeToEl,\r\n relativeToElRect = opts.relativeToElRect,\r\n limitationBoxEl = opts.limitationBoxEl,\r\n limitationBoxElRect = limitationBoxEl ? limitationBoxEl.getBoundingClientRect() : false,\r\n headerElRect = headerEl[0].getBoundingClientRect(),\r\n windowHeight = $window.innerHeight,\r\n extraBottomOrTopRoom = opts.minimumVerticalSpace !== void 0 ? opts.minimumVerticalSpace : Math.floor(windowHeight * 0.07),\r\n distanceToBottom,\r\n distanceToTop,\r\n top;\r\n\r\n // get distance from bottom\r\n if (limitationBoxElRect) {\r\n distanceToBottom = limitationBoxElRect.height + limitationBoxElRect.top - bodyElRect.bottom - extraBottomOrTopRoom;\r\n } else {\r\n distanceToBottom = windowHeight - bodyElRect.bottom - extraBottomOrTopRoom;\r\n }\r\n\r\n // Timeout for fixing Firefox\r\n var dirtyDelay = UserAgentService.firefox ? 100 : 0;\r\n $timeout(function () {\r\n // get distance from top\r\n element.addClass(\"dropdown--reverse\");\r\n bodyEl.addClass(\"dropdown--reverse\");\r\n dropdownHelper.setTopValue(\"top\", bodyEl, headerElRect, relativeToElRect, relativeToEl);\r\n bodyElRect = bodyEl[0].getBoundingClientRect();\r\n if (limitationBoxElRect) {\r\n distanceToTop = bodyElRect.top - limitationBoxElRect.top - dropdownHelper.adjustOptions.getBoxModelExtras(relativeToEl) - extraBottomOrTopRoom;\r\n } else {\r\n distanceToTop = bodyElRect.top - extraBottomOrTopRoom;\r\n }\r\n\r\n element.removeClass(\"dropdown--reverse\");\r\n bodyEl.removeClass(\"dropdown--reverse\");\r\n dropdownHelper.applyScrollingIndicators({\r\n element: element,\r\n bodyEl: bodyEl,\r\n resetIndicators: true\r\n });\r\n\r\n // dropdown doesn't fit screen; both negative\r\n if (distanceToTop < 0 && distanceToBottom < 0) {\r\n // drop to bottom\r\n if (Math.abs(distanceToTop) > Math.abs(distanceToBottom)) {\r\n dropdownHelper.adjustOptions.toBottom(bodyEl, bodyElRect.height + distanceToBottom);\r\n dropdownHelper.setTopValue(\"bottom\", bodyEl, headerElRect, relativeToElRect, relativeToEl);\r\n }\r\n // drop to top\r\n else {\r\n dropdownHelper.adjustOptions.toTop(bodyEl, bodyElRect.height + distanceToTop, element, bodyEl);\r\n dropdownHelper.setTopValue(\"top\", bodyEl, headerElRect, relativeToElRect, relativeToEl);\r\n }\r\n\r\n // in this case bodyInnerEl has scrollbar, so we need to apply all scrolling related logic and events\r\n dropdownHelper.detectScrollEdges(bodyInnerEl[0], element, bodyEl);\r\n if (UserAgentService.touch) {\r\n bodyInnerEl.bind(\r\n \"scroll\",\r\n dropdownHelper.toggleScrollIndicators.bind({\r\n scrollableEl: bodyInnerEl[0],\r\n element: element,\r\n bodyEl: bodyEl\r\n })\r\n );\r\n } else {\r\n bodyInnerEl.bind(\r\n \"scroll\",\r\n dropdownHelper.toggleScrollIndicators.bind({\r\n scrollableEl: bodyInnerEl[0],\r\n element: element,\r\n bodyEl: bodyEl\r\n })\r\n );\r\n // stop scrolling when reaches top or bottom side of dropdown scrollable body\r\n bodyInnerEl.bind(\r\n \"mousewheel DOMMouseScroll\",\r\n dropdownHelper.stopScrollingInBodyEl.bind({\r\n scrollableEl: bodyInnerEl[0],\r\n element: element,\r\n bodyEl: bodyEl\r\n })\r\n );\r\n }\r\n }\r\n // not enough on the bottom only, so render dropdown in to top direction\r\n else if (distanceToBottom < 0) {\r\n dropdownHelper.adjustOptions.toTop(bodyEl, null, element, bodyEl);\r\n dropdownHelper.setTopValue(\"top\", bodyEl, headerElRect, relativeToElRect, relativeToEl);\r\n } else {\r\n dropdownHelper.setTopValue(\"bottom\", bodyEl, headerElRect, relativeToElRect, relativeToEl);\r\n }\r\n }, dirtyDelay);\r\n };\r\n\r\n dropdownHelper.adjustHorizontalPosition = function (opts) {\r\n var headerEl = opts.headerEl,\r\n bodyEl = opts.bodyEl,\r\n bodyElRect = opts.bodyElRect,\r\n windowWidth = $window.innerWidth, // initialise core dimensions\r\n relativeToEl = opts.relativeToEl,\r\n limitationBoxEl = opts.limitationBoxEl,\r\n limitationBoxElRect = limitationBoxEl ? limitationBoxEl.getBoundingClientRect() : false,\r\n hasPosFixedInTransformBug = opts.hasPosFixedInTransformBug,\r\n extraRoom = 6,\r\n headerElRect = headerEl[0].getBoundingClientRect(),\r\n headerElDistanceToRight,\r\n headerElDistanceToLeft,\r\n bodyElDistanceToLeft,\r\n bodyElWidthOffset = (bodyElRect.width - headerElRect.width) / 2, // get offset distance from right\r\n right,\r\n left;\r\n\r\n if (limitationBoxElRect) {\r\n headerElDistanceToLeft = headerElRect.left - extraRoom - limitationBoxElRect.left;\r\n headerElDistanceToRight = limitationBoxElRect.right - headerElRect.right - extraRoom;\r\n } else {\r\n headerElDistanceToLeft = headerElRect.left - extraRoom;\r\n headerElDistanceToRight = windowWidth - headerElRect.right - extraRoom;\r\n }\r\n\r\n bodyElDistanceToLeft = bodyElRect.left - extraRoom;\r\n\r\n // if there is room for moving bodyEl to right, then do it\r\n if (bodyElWidthOffset < headerElDistanceToRight) {\r\n if (relativeToEl) {\r\n if (limitationBoxElRect) {\r\n right = (hasPosFixedInTransformBug ? 0 : windowWidth - limitationBoxElRect.right) + headerElDistanceToRight + extraRoom - bodyElWidthOffset + \"px\";\r\n } else {\r\n right = headerElDistanceToRight + extraRoom - bodyElWidthOffset + \"px\";\r\n }\r\n } else {\r\n right = -bodyElWidthOffset + \"px\";\r\n }\r\n bodyEl.css({ right: right });\r\n bodyEl.css({ left: \"auto\" }); // overwrite styles, that can be applied by developer\r\n } else {\r\n if (relativeToEl) {\r\n if (headerElDistanceToRight >= extraRoom) {\r\n if (limitationBoxElRect) {\r\n right = (hasPosFixedInTransformBug ? 0 : windowWidth - limitationBoxElRect.right) + extraRoom + \"px\";\r\n } else {\r\n right = extraRoom + \"px\";\r\n }\r\n } else {\r\n if (limitationBoxElRect) {\r\n right = (hasPosFixedInTransformBug ? 0 : windowWidth - limitationBoxElRect.right) + headerElDistanceToRight + extraRoom + \"px\";\r\n } else {\r\n right = headerElDistanceToRight + extraRoom + \"px\";\r\n }\r\n }\r\n } else {\r\n right = -headerElDistanceToRight + \"px\";\r\n }\r\n bodyEl.css({ right: right });\r\n bodyEl.css({ left: \"auto\" }); // overwrite styles, that can be applied by developer\r\n }\r\n\r\n // if bodyEl doesn't fit on the left, then stick it to left\r\n if (bodyElWidthOffset > headerElDistanceToLeft) {\r\n bodyEl.css({ right: \"\" });\r\n\r\n // if no room on left then align to left\r\n if (headerElDistanceToLeft <= bodyElDistanceToLeft) {\r\n if (limitationBoxElRect) {\r\n left = (hasPosFixedInTransformBug ? 0 : limitationBoxElRect.left) + extraRoom + \"px\";\r\n } else {\r\n left = extraRoom + \"px\";\r\n }\r\n bodyEl.css({ left: left });\r\n bodyEl.css({ right: \"auto\" }); // overwrite styles, that can be applied by developer\r\n }\r\n // if there is room on left, then move bodyEl into that spare space\r\n else {\r\n if (relativeToEl) {\r\n if (limitationBoxElRect) {\r\n left = (hasPosFixedInTransformBug ? 0 : limitationBoxElRect.left) + extraRoom + \"px\";\r\n } else {\r\n left = extraRoom + \"px\";\r\n }\r\n } else {\r\n left = -headerElDistanceToLeft + \"px\";\r\n }\r\n bodyEl.css({ left: left });\r\n bodyEl.css({ right: \"auto\" }); // overwrite styles, that can be applied by developer\r\n }\r\n }\r\n };\r\n\r\n dropdownHelper.setDropdownBodyWidth = function (headerEl, bodyEl) {\r\n var headerElWidth = headerEl[0].getBoundingClientRect().width;\r\n if (headerElWidth) {\r\n bodyEl.css({ width: headerElWidth + \"px\" });\r\n }\r\n };\r\n\r\n dropdownHelper.adjustPosition = function (element, headerEl, bodyEl, bodyInnerEl, relativeToEl, limitationBoxEl, hasPosFixedInTransformBug, minimumVerticalSpace) {\r\n // reset any previously added adjustments\r\n dropdownHelper.adjustOptions.resetHorizontal(bodyEl);\r\n dropdownHelper.adjustOptions.resetVertical(element, bodyEl, bodyInnerEl, headerEl, relativeToEl);\r\n\r\n // cache initial bodyEl dimensions\r\n var bodyElRect = bodyEl[0].getBoundingClientRect(),\r\n relativeToElRect;\r\n\r\n if (relativeToEl) {\r\n relativeToElRect = relativeToEl.getBoundingClientRect();\r\n }\r\n\r\n // apply position adjustments on both axises\r\n dropdownHelper.adjustVerticalPosition({\r\n element: element,\r\n bodyEl: bodyEl,\r\n headerEl: headerEl,\r\n bodyInnerEl: bodyInnerEl,\r\n bodyElRect: bodyElRect,\r\n relativeToEl: relativeToEl,\r\n relativeToElRect: relativeToElRect,\r\n limitationBoxEl: limitationBoxEl,\r\n minimumVerticalSpace: minimumVerticalSpace\r\n });\r\n\r\n dropdownHelper.adjustHorizontalPosition({\r\n headerEl: headerEl,\r\n bodyEl: bodyEl,\r\n bodyElRect: bodyElRect,\r\n relativeToEl: relativeToEl,\r\n relativeToElRect: relativeToElRect,\r\n limitationBoxEl: limitationBoxEl,\r\n hasPosFixedInTransformBug: hasPosFixedInTransformBug\r\n });\r\n };\r\n\r\n dropdownHelper.getStyleTransformAttr = function (elem) {\r\n var style = window.getComputedStyle(elem),\r\n transform = style.transform || style.webkitTransform || style.mozTransform;\r\n\r\n return transform !== \"none\";\r\n };\r\n\r\n dropdownHelper.checkPosFixedInTransformBug = function (dropdownBodyEl, hasPosFixedInTransformBug) {\r\n if (hasPosFixedInTransformBug !== void 0) {\r\n return hasPosFixedInTransformBug;\r\n }\r\n if (UserAgentService.ie) {\r\n return false;\r\n }\r\n\r\n while (!dropdownHelper.getStyleTransformAttr(dropdownBodyEl)) {\r\n dropdownBodyEl = dropdownBodyEl.parentNode;\r\n\r\n if (dropdownBodyEl.nodeName === \"HTML\") {\r\n return (dropdownBodyEl = false);\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n dropdownHelper.getRequestedItem = function (selector, element, requestedItemEl, dropdownBodyEl) {\r\n if (requestedItemEl || !selector) {\r\n return requestedItemEl;\r\n }\r\n\r\n requestedItemEl = dropdownHelper.findClosestParentBySelector(selector, element);\r\n if (dropdownBodyEl && dropdownBodyEl.length > 0 && dropdownBodyEl[0]) {\r\n dropdownHelper.compileRelativeDropdownBody(requestedItemEl, dropdownBodyEl[0]);\r\n dropdownBodyEl.addClass(\"relative-to\");\r\n }\r\n return requestedItemEl;\r\n };\r\n\r\n dropdownHelper.compileRelativeDropdownBody = function (relativeToEl, dropdownBodyEl) {\r\n // tslint:disable-next-line:no-unsafe-dom-insert-calls\r\n relativeToEl.parentNode.insertBefore(dropdownBodyEl, relativeToEl.nextSibling);\r\n };\r\n\r\n dropdownHelper.findClosestParentBySelector = function (selector, element) {\r\n if (!selector) {\r\n return false;\r\n }\r\n\r\n var target = element;\r\n var el;\r\n\r\n try {\r\n while (target !== null) {\r\n if (target.parentNode) {\r\n el = target.parentNode.querySelectorAll(selector);\r\n } else {\r\n return false;\r\n }\r\n\r\n for (var x = 0; x < el.length; x++) {\r\n if (el[x] === target) {\r\n return target;\r\n }\r\n }\r\n\r\n target = target.parentNode;\r\n }\r\n\r\n return false;\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n return dropdownHelper;\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../utilities/helpers\";\r\nimport \"../utilities/globalEvents\";\r\nimport \"./uberDropdownHelper\";\r\nimport \"../userAgent/userAgent.service\";\r\n\r\nangularAMD.directive(\"uberDropdown\", [\r\n \"$timeout\",\r\n \"$q\",\r\n \"helpers\",\r\n \"globalEvents\",\r\n \"uberDropdownHelper\",\r\n \"UserAgentService\",\r\n function ($timeout, $q, helpers, globalEvents, dropdownHelper, UserAgentService) {\r\n return {\r\n restrict: \"A\",\r\n scope: true,\r\n\r\n controller: [\r\n \"$scope\",\r\n \"$element\",\r\n \"$attrs\",\r\n function ($scope, $element, $attrs) {\r\n var globalReferences = {};\r\n $scope.isActive = false;\r\n\r\n $scope.presetObligatoryData = function () {\r\n $scope.dropdownDeferred = $q.defer();\r\n };\r\n\r\n $scope.presetData = function () {\r\n globalReferences.documentEl = angular.element(document.documentElement);\r\n $scope.relativeToEl = false;\r\n };\r\n\r\n $scope.mapAttrs = function () {\r\n $scope.onDropdownOpenFn = $attrs.onDropdownOpen ? $attrs.onDropdownOpen : false;\r\n $scope.onDropdownCloseFn = $attrs.onDropdownClose ? $attrs.onDropdownClose : false;\r\n $scope.inheritWidth = $attrs.inheritWidth !== undefined;\r\n $scope.displayOnResolve = $attrs.displayOnResolve !== undefined;\r\n $scope.minimumVerticalSpace = $attrs.minimumVerticalSpace !== void 0 ? parseFloat($attrs.minimumVerticalSpace) : null;\r\n };\r\n\r\n $scope.cacheElems = function () {\r\n $scope.dropdownHeaderEl = angular.element($element[0].getElementsByClassName(\"dropdown__header\")[0]);\r\n $scope.dropdownBodyEl = angular.element($element[0].getElementsByClassName(\"dropdown__body\")[0]);\r\n $scope.dropdownBodyInnerEl = angular.element($element[0].getElementsByClassName(\"dropdown__body-inner\")[0]);\r\n };\r\n\r\n $scope.resolveDropdown = function (autoFocus) {\r\n if ($scope.displayOnResolve && $scope.onResolveDropdown) {\r\n $scope.onResolveDropdown(autoFocus);\r\n }\r\n $scope.dropdownDeferred.resolve();\r\n };\r\n\r\n $scope.toggleDropdown = function () {\r\n if ($scope.isActive) {\r\n $scope.closeDropdown();\r\n } else {\r\n if (UserAgentService.touch && $scope.activeElementIsInput) {\r\n $timeout($scope.openDropdown, 400);\r\n } else {\r\n $scope.openDropdown();\r\n }\r\n }\r\n };\r\n\r\n $scope.openDropdown = function () {\r\n if ($scope.displayOnResolve && !$scope.onResolveDropdown) {\r\n $scope.onResolveDropdown = $scope.openDropdownCore;\r\n }\r\n\r\n $scope.runOnDropdownOpenFn();\r\n\r\n if (!$scope.displayOnResolve) {\r\n $scope.openDropdownCore();\r\n }\r\n };\r\n\r\n $scope.openDropdownCore = function (autoFocus) {\r\n $scope.relativeToEl = dropdownHelper.getRequestedItem($scope.relativeToAttr, $element[0], $scope.relativeToEl, $scope.dropdownBodyEl);\r\n $scope.limitationBoxEl = dropdownHelper.getRequestedItem($scope.limitationBoxAttr, $element[0], $scope.limitationBoxEl);\r\n $scope.behaveRelativeToEl = dropdownHelper.getRequestedItem($scope.behaveRelativeToAttr, $element[0], $scope.behaveRelativeToEl);\r\n $scope.hasPosFixedInTransformBug = dropdownHelper.checkPosFixedInTransformBug($scope.dropdownHeaderEl[0], $scope.hasPosFixedInTransformBug);\r\n\r\n $scope.bindUIEvents();\r\n $element.addClass(\"active\");\r\n if ($scope.relativeToEl) {\r\n $scope.dropdownBodyEl.addClass(\"active\");\r\n }\r\n\r\n if ($scope.inheritWidth) {\r\n dropdownHelper.setDropdownBodyWidth($scope.dropdownHeaderEl, $scope.dropdownBodyEl);\r\n }\r\n\r\n var triggerAdjustPosition = function () {\r\n dropdownHelper.adjustPosition(\r\n $element,\r\n $scope.dropdownHeaderEl,\r\n $scope.dropdownBodyEl,\r\n $scope.dropdownBodyInnerEl,\r\n $scope.relativeToEl,\r\n $scope.limitationBoxEl,\r\n $scope.hasPosFixedInTransformBug,\r\n $scope.minimumVerticalSpace\r\n );\r\n\r\n if (autoFocus === void 0 || autoFocus === true) {\r\n $timeout(function () {\r\n $scope.accessibilityControls.first();\r\n });\r\n }\r\n };\r\n\r\n triggerAdjustPosition();\r\n // run again in case bodyElement wasn't ready and been waiting for promise to resolve\r\n if ($scope.dropdownDeferred.promise.$$state.status === 0) {\r\n $scope.dropdownDeferred.promise.then(function () {\r\n triggerAdjustPosition();\r\n });\r\n }\r\n\r\n $scope.isActive = true;\r\n globalEvents.onWindowResize.addFn($scope.closeDropdown);\r\n };\r\n\r\n $scope.closeDropdown = function () {\r\n $scope.unbindUIEvents();\r\n $element.removeClass(\"active\");\r\n $scope.isActive = false;\r\n globalEvents.onWindowResize.removeFn($scope.closeDropdown);\r\n $scope.runOnDropdownCloseFn();\r\n\r\n if ($scope.relativeToEl) {\r\n $scope.dropdownBodyEl.removeClass(\"active\");\r\n }\r\n };\r\n\r\n $scope.elementIsInput = function (element) {\r\n if (element) {\r\n if (\r\n element.getAttribute(\"contenteditable\") === \"true\" ||\r\n element.getAttribute(\"contenteditable\") === \"\" ||\r\n element.tagName.toLowerCase() === \"input\" ||\r\n element.tagName.toLowerCase() === \"textarea\"\r\n ) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n $scope.findActiveElement = function () {\r\n $scope.activeElementIsInput = $scope.elementIsInput(document.activeElement);\r\n };\r\n\r\n $scope.runOnDropdownOpenFn = function () {\r\n if ($scope.onDropdownOpenFn) {\r\n $scope.$eval($scope.onDropdownOpenFn);\r\n }\r\n };\r\n\r\n $scope.runOnDropdownCloseFn = function () {\r\n if ($scope.onDropdownCloseFn) {\r\n $scope.$eval($scope.onDropdownCloseFn);\r\n }\r\n };\r\n\r\n // Function for running ng-click events manually, when user using keyboard\r\n $scope.runOnNgClickFn = function () {\r\n $scope.onNgClickFn = $scope.dropdownHeaderEl[0].getAttribute(\"ng-click\");\r\n\r\n if ($scope.onNgClickFn) {\r\n $scope.$eval($scope.onNgClickFn);\r\n }\r\n };\r\n\r\n $scope.closeDropdownWhenPointedOutside = function (e) {\r\n if (helpers.isClickedOutsideElement(e, $element[0])) {\r\n $scope.closeDropdown();\r\n }\r\n };\r\n\r\n $scope.closeDropdownWithDelay = function () {\r\n $timeout(function () {\r\n $scope.closeDropdown();\r\n $scope.accessibilityControls.focusBackInHeaderEl(true);\r\n }, 100);\r\n };\r\n\r\n $scope.closeOnEsc = function (e) {\r\n if (e.keyCode === 27) {\r\n e.stopPropagation();\r\n $scope.accessibilityControls.leaveDropdown();\r\n $scope.accessibilityControls.performFocus(e, $scope.dropdownHeaderEl[0]);\r\n }\r\n };\r\n\r\n $scope.accessibilityControls = {\r\n getElements: function (single) {\r\n if (single) {\r\n return $scope.dropdownBodyInnerEl[0].querySelector('[tabindex=\"0\"]');\r\n } else {\r\n return $scope.dropdownBodyInnerEl[0].querySelectorAll('[tabindex=\"0\"]');\r\n }\r\n },\r\n\r\n performFocus: function (e, target, force) {\r\n // don't manually focus, let 'tab' key do it for us\r\n if (e && e.keyCode === 9 && !force) {\r\n return;\r\n }\r\n\r\n if (target) {\r\n target.focus();\r\n }\r\n },\r\n\r\n getCurrent: function (e) {\r\n if (e.keyCode !== 9) {\r\n e.preventDefault();\r\n }\r\n return e.target;\r\n },\r\n\r\n focusBackInHeaderEl: function (force) {\r\n if ($scope.relativeToEl || force) {\r\n $timeout(\r\n function () {\r\n this.performFocus(null, $scope.dropdownHeaderEl[0]);\r\n }.bind(this)\r\n );\r\n }\r\n },\r\n\r\n leaveDropdown: function () {\r\n $scope.dropdownBodyInnerEl.unbind(\"keydown\", $scope.navigateDropdownBody);\r\n $scope.closeDropdown();\r\n this.focusBackInHeaderEl();\r\n },\r\n\r\n first: function (e) {\r\n // unbind first in case thing method is called multiple times by 'triggerAdjustPosition'\r\n $scope.dropdownBodyInnerEl.unbind(\"keydown\", $scope.navigateDropdownBody);\r\n\r\n // don't enable focus style in case user opens dropdown via mouse events.\r\n if (e !== void 0) {\r\n globalReferences.documentEl.addClass(\"focus-style\");\r\n }\r\n this.performFocus(e, this.getElements(true));\r\n\r\n $scope.dropdownBodyInnerEl.bind(\"keydown\", $scope.navigateDropdownBody);\r\n },\r\n\r\n next: function (e) {\r\n var current = this.getCurrent(e),\r\n allElems = this.getElements(), // get all elements\r\n nextItemIndex = Array.prototype.indexOf.call(allElems, current), // get index of current item\r\n nextItem;\r\n\r\n // if there is next item, then focus in it\r\n if (nextItemIndex < allElems.length - 1) {\r\n nextItemIndex += 1;\r\n } else {\r\n // close dropdown if user tabbed away\r\n if (e.keyCode === 9 && !e.shiftKey) {\r\n $scope.accessibilityControls.leaveDropdown();\r\n }\r\n return;\r\n }\r\n\r\n nextItem = allElems[nextItemIndex];\r\n this.performFocus(e, nextItem);\r\n },\r\n\r\n prev: function (e) {\r\n var current = this.getCurrent(e),\r\n allElems = this.getElements(),\r\n nextItemIndex = Array.prototype.indexOf.call(allElems, current),\r\n prevItem;\r\n\r\n // if there is previous item, then focus in it\r\n if (nextItemIndex > 0) {\r\n nextItemIndex -= 1;\r\n }\r\n // in case there no previous item, then jump back to dropdown header\r\n else {\r\n e.preventDefault(); // prevent when so when user uses tab it doesn't jump back too far\r\n this.performFocus(e, $scope.dropdownHeaderEl[0], true);\r\n $scope.accessibilityControls.leaveDropdown();\r\n return;\r\n }\r\n\r\n prevItem = allElems[nextItemIndex];\r\n this.performFocus(e, prevItem);\r\n }\r\n };\r\n\r\n $scope.navigateDropdownBody = function (e) {\r\n // down\r\n if (e.keyCode === 40 || e.keyCode === 39 || (e.keyCode === 9 && !e.shiftKey)) {\r\n $scope.accessibilityControls.next(e);\r\n }\r\n // up\r\n else if (e.keyCode === 38 || e.keyCode === 37 || (e.keyCode === 9 && e.shiftKey)) {\r\n $scope.accessibilityControls.prev(e);\r\n }\r\n };\r\n\r\n $scope.bindAccessibilityControls = function (e) {\r\n // on arrow down or tab\r\n if (e.keyCode === 40 || e.keyCode === 39 || e.keyCode === 13 || e.keyCode === 32 || (e.keyCode === 9 && !e.shiftKey)) {\r\n if (e.keyCode !== 9) {\r\n e.preventDefault();\r\n }\r\n\r\n // on arrow down/right open dropdown\r\n // and focus in first dropdown element\r\n if (!$scope.isActive) {\r\n if (e.keyCode !== 9) {\r\n $scope.runOnNgClickFn();\r\n $scope.openDropdown();\r\n $scope.accessibilityControls.first(e);\r\n }\r\n }\r\n }\r\n // leave dropdown when still on header and pressing 'back'\r\n else if (e.keyCode === 37 || e.keyCode === 38 || (e.keyCode === 9 && e.shiftKey)) {\r\n if ($scope.isActive) {\r\n $scope.closeDropdown();\r\n }\r\n }\r\n };\r\n\r\n $scope.bindCoreEvents = function () {\r\n if (UserAgentService.touch) {\r\n $scope.dropdownHeaderEl.bind(\"touchstart\", $scope.findActiveElement);\r\n }\r\n $scope.dropdownHeaderEl.bind(\"click\", $scope.toggleDropdown);\r\n $scope.$on(\"$destroy\", function () {\r\n $scope.dropdownBodyEl.remove();\r\n });\r\n $element.on(\"$destroy\", function () {\r\n $scope.dropdownBodyEl.remove();\r\n });\r\n\r\n if (!UserAgentService.touch) {\r\n $scope.dropdownHeaderEl.bind(\"keydown\", $scope.bindAccessibilityControls);\r\n }\r\n };\r\n\r\n $scope.bindUIEvents = function () {\r\n globalReferences.documentEl.bind(\"click\", $scope.closeDropdownWhenPointedOutside);\r\n $scope.dropdownBodyEl.bind(\"click\", $scope.closeDropdownWithDelay);\r\n if ($scope.relativeToEl) {\r\n var delay = 0;\r\n if (UserAgentService.firefox) {\r\n delay = 100;\r\n }\r\n $timeout(function () {\r\n // Dirty fix for Firefox\r\n var origScrollTop = $scope.relativeToEl.scrollTop;\r\n $scope.relativeToEl.addEventListener(\"scroll\", function () {\r\n if (origScrollTop !== $scope.relativeToEl.scrollTop) {\r\n $scope.closeDropdown();\r\n }\r\n });\r\n }, delay);\r\n }\r\n if ($scope.behaveRelativeToEl) {\r\n $scope.behaveRelativeToEl.addEventListener(\"scroll\", $scope.closeDropdown);\r\n }\r\n\r\n if (!UserAgentService.touch) {\r\n globalReferences.documentEl[0].addEventListener(\"keydown\", $scope.closeOnEsc, true);\r\n }\r\n };\r\n\r\n $scope.unbindUIEvents = function () {\r\n globalReferences.documentEl.unbind(\"click\", $scope.closeDropdownWhenPointedOutside);\r\n $scope.dropdownBodyEl.unbind(\"click\", $scope.closeDropdownWithDelay);\r\n if ($scope.relativeToEl) {\r\n $scope.relativeToEl.removeEventListener(\"scroll\", $scope.closeDropdown);\r\n }\r\n if ($scope.behaveRelativeToEl) {\r\n $scope.behaveRelativeToEl.removeEventListener(\"scroll\", $scope.closeDropdown);\r\n }\r\n\r\n if (!UserAgentService.touch) {\r\n globalReferences.documentEl[0].removeEventListener(\"keydown\", $scope.closeOnEsc, true);\r\n }\r\n };\r\n\r\n $scope.init = function () {\r\n $scope.presetData();\r\n $scope.mapAttrs();\r\n $scope.cacheElems();\r\n $scope.bindCoreEvents();\r\n };\r\n\r\n $scope.waitForAttribute = function (attrName, promises) {\r\n var deferred = $q.defer();\r\n\r\n // in case relativeTo available, the kickstart dropdown after value is ready\r\n if ($attrs[attrName] !== undefined) {\r\n var $offObserver = $attrs.$observe(attrName, function (newVal, oldVal) {\r\n if (newVal !== oldVal) {\r\n $scope[attrName + \"Attr\"] = newVal;\r\n deferred.resolve();\r\n $offObserver();\r\n }\r\n });\r\n promises.push(deferred.promise);\r\n } else {\r\n $scope[attrName + \"Attr\"] = false;\r\n }\r\n };\r\n\r\n $scope.waitForAttributes = function (attrNames) {\r\n var attrName;\r\n var promises = [];\r\n\r\n for (var i = 0, len = attrNames.length; i < len; i++) {\r\n attrName = attrNames[i];\r\n\r\n $scope.waitForAttribute(attrName, promises);\r\n }\r\n\r\n if (promises.length > 0) {\r\n return $q.all(promises);\r\n } else {\r\n return false;\r\n }\r\n };\r\n }\r\n ],\r\n\r\n link: function (scope, element, attrs) {\r\n scope.presetObligatoryData();\r\n var waitForAttributesPromise = scope.waitForAttributes([\"relativeTo\", \"limitationBox\", \"behaveRelativeTo\"]);\r\n\r\n // in case attributes are available, the kickstart dropdown after all attributes value is ready\r\n if (waitForAttributesPromise) {\r\n waitForAttributesPromise.then(function () {\r\n scope.init();\r\n });\r\n }\r\n // kickstart as normal\r\n else {\r\n scope.init();\r\n }\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\n/**\r\n * Injected services should be lower camel as they should be treated as if we have an instance of something!\r\n * @param $window\r\n * @constructor\r\n */\r\nfunction UserAgentService($window) {\r\n this.window = $window;\r\n this.deviceVersion = null;\r\n this.browserVersion = null;\r\n this.edge = false;\r\n this.ie = false;\r\n this.unsupported = false;\r\n this.android = false;\r\n this.ios = false;\r\n this.firefox = false;\r\n this.chrome = false;\r\n this.safari = false;\r\n this.touch = false;\r\n var htmlClasses = [\"no-edge\", \"no-ie\", \"no-ie10\", \"no-firefox\", \"no-safari\", \"no-touch\", \"no-chrome\", \"no-android\", \"no-ios\"];\r\n var self = this;\r\n /**\r\n * Run the user agent checks.\r\n */\r\n this.init = function () {\r\n detectBrowser();\r\n detectDevice();\r\n testTouch();\r\n cleanUpHtmlClasses();\r\n };\r\n\r\n /**\r\n * Append appropriate CSS classes to HTML element\r\n */\r\n function cleanUpHtmlClasses() {\r\n var htmlDoc = self.window.document.querySelector(\"html\");\r\n angular.element(htmlDoc).removeClass(\"no-js\");\r\n for (var i = 0, ii = htmlClasses.length; i < ii; i++) {\r\n angular.element(htmlDoc).addClass(htmlClasses[i]);\r\n }\r\n }\r\n\r\n /**\r\n * Remove the class of the user agent from the list of CSS classes\r\n * @param uaData {Object}\r\n * @param uaData.browser {?string}\r\n * @param uaData.device {?string}\r\n * @constructor\r\n */\r\n function removeUAClass(uaData) {\r\n var classPart = uaData.browser !== undefined ? uaData.browser.toLowerCase() : uaData.device.toLowerCase();\r\n htmlClasses[htmlClasses.indexOf(\"no-\" + classPart)] = classPart;\r\n }\r\n\r\n /**\r\n * Check which browser the user is using.\r\n */\r\n function detectBrowser() {\r\n if (testIe()) {\r\n return;\r\n }\r\n //Edge must be checked first because browser wars\r\n var tests = [\r\n {\r\n browser: \"Edge\",\r\n keyword: \"Edge\"\r\n },\r\n {\r\n browser: \"Firefox\",\r\n keyword: \"Firefox\"\r\n },\r\n {\r\n browser: \"Chrome\",\r\n keyword: \"Chrome\"\r\n },\r\n {\r\n browser: \"Safari\",\r\n keyword: \"Version\"\r\n }\r\n ];\r\n\r\n for (var i = 0; i < tests.length; i++) {\r\n if (testGeneric(tests[i])) {\r\n return;\r\n }\r\n }\r\n self.unsupported = true;\r\n }\r\n\r\n /**\r\n * Check if user agent is mobile device\r\n */\r\n function detectDevice() {\r\n if (\r\n testGeneric({\r\n device: \"Android\",\r\n keyword: \"Android\",\r\n //Some android versions are 5 digits long\r\n //User Agents are difficult to parse on purpose\r\n //This makes it consistent.\r\n offset: 3\r\n })\r\n ) {\r\n return;\r\n }\r\n if (testIOS()) {\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * A method for parsing the most common type of user agent.\r\n * Just like browser user agents, this is a tiny bit hacky, but can be used to successfully parse:\r\n * Safari, Firefox, Edge, Chrome and Android devices\r\n * @param uaData\r\n * @param uaData.offset {?Number}\r\n * @param uaData.browser {?String}\r\n * @param uaData.device {?String}\r\n * @param uaData.keyword {String}\r\n * @param uaData.ignoreVersion {Boolean}\r\n * @returns {boolean} Checks complete\r\n */\r\n function testGeneric(uaData) {\r\n var searchIndex = self.window.navigator.userAgent.indexOf(uaData.keyword);\r\n\r\n if (uaData.offset === undefined) {\r\n uaData.offset = 2;\r\n }\r\n\r\n if (searchIndex > -1) {\r\n var name = \"\";\r\n var type = \"\";\r\n if (uaData.browser !== undefined) {\r\n type = \"browser\";\r\n name = uaData.browser.toLowerCase();\r\n } else {\r\n type = \"device\";\r\n name = uaData.device.toLowerCase();\r\n }\r\n self[name] = true;\r\n if (!uaData.ignoreVersion) {\r\n var versionPosition = uaData.keyword.length + searchIndex + 1;\r\n var versionString = self.window.navigator.userAgent.substring(versionPosition, versionPosition + uaData.offset);\r\n if (versionString.length === 2 && versionString[1] === \".\") {\r\n versionString = versionString[0];\r\n }\r\n self[type + \"Version\"] = versionString;\r\n }\r\n removeUAClass(uaData);\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * User agent strings are even less consistent on older browsers.\r\n * This will detect IE10 and above. Other versions of IE are considered to be unsupported\r\n * @returns {boolean} Is it IE?\r\n */\r\n function testIe() {\r\n if (Function(\"/*@cc_on return document.documentMode===10@*/\")()) {\r\n self.version = 10;\r\n self.ie = true;\r\n removeUAClass({\r\n browser: \"ie\"\r\n });\r\n return true;\r\n }\r\n if (/(?:\\sTrident\\/7\\.0;.*\\srv:11\\.0)/i.test(self.window.navigator.userAgent)) {\r\n self.browserVersion = \"11\";\r\n self.ie = true;\r\n removeUAClass({\r\n browser: \"ie\"\r\n });\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Catch all for Apple devices.\r\n * Currently no version checks, but the could be added if needed.\r\n * @returns {boolean}\r\n */\r\n function testIOS() {\r\n if (/iP(hone|od|ad)/.test(self.window.navigator.userAgent)) {\r\n self.ios = true;\r\n //Currently no mechanism of easily getting the IOS version, could be added if needed.\r\n removeUAClass({\r\n device: \"ios\"\r\n });\r\n return true;\r\n }\r\n\r\n // Check if the user is on an iPad Pro running iOS 13+\r\n if (/MacIntel/.test(self.window.navigator.platform) && self.window.navigator.maxTouchPoints && self.window.navigator.maxTouchPoints > 2) {\r\n self.ios = true;\r\n removeUAClass({\r\n device: \"ios\"\r\n });\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Check if the device is touchscreen.\r\n * Devices with mice will fallback to non-touch version.\r\n */\r\n function testTouch() {\r\n if (\"onpointerdown\" in self.window) {\r\n self.touch = false;\r\n\r\n return;\r\n }\r\n if (\"ontouchstart\" in self.window) {\r\n self.touch = true;\r\n removeUAClass({\r\n device: \"touch\"\r\n });\r\n return;\r\n }\r\n self.touch = false;\r\n return;\r\n }\r\n}\r\n\r\nUserAgentService.$inject = [\"$window\"];\r\nangularAMD.service(\"UserAgentService\", UserAgentService);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../assetEndpointService/assetEndpoint.service\";\r\nimport { STATUS_PERMISSIONS_CONSTANTS } from \"../constants/statusPermissions.constants.js\";\r\n\r\nexport class UserStatusPermissions {\r\n constructor($q, assetEndpointService) {\r\n this._$q = $q;\r\n this._assetEndpointService = assetEndpointService;\r\n this._permissionsCache = new Map();\r\n this._pendingRequests = new Map();\r\n }\r\n\r\n canSelfAssess(assetId) {\r\n return this._getPermission(STATUS_PERMISSIONS_CONSTANTS.CAN_SELF_ASSESS, assetId);\r\n }\r\n\r\n canMap(assetId) {\r\n return this._getPermission(STATUS_PERMISSIONS_CONSTANTS.CAN_MAP, assetId);\r\n }\r\n\r\n canViewProgressChart(assetId) {\r\n return this._getPermission(STATUS_PERMISSIONS_CONSTANTS.CAN_VIEW_PROGRESS_CHART, assetId);\r\n }\r\n\r\n canViewPendingList(assetId) {\r\n return this._getPermission(STATUS_PERMISSIONS_CONSTANTS.CAN_VIEW_PENDING_LIST, assetId);\r\n }\r\n\r\n canApprove(assetId) {\r\n return this._getPermission(STATUS_PERMISSIONS_CONSTANTS.CAN_APPROVE, assetId);\r\n }\r\n\r\n _getPermission(key, assetId) {\r\n const permission = this._permissionsCache.get(key);\r\n if (permission !== undefined) {\r\n return this._$q.when(permission);\r\n }\r\n\r\n const pending = this._pendingRequests.get(key);\r\n if (pending !== undefined) {\r\n return pending;\r\n }\r\n\r\n const request = this._assetEndpointService\r\n .getCreatorPermission(key, assetId)\r\n .then((response) => {\r\n const value = response.data;\r\n this._permissionsCache.set(key, value);\r\n return value;\r\n })\r\n .catch(() => {\r\n return false;\r\n })\r\n .finally(() => this._pendingRequests.delete(key));\r\n\r\n this._pendingRequests.set(key, request);\r\n return request;\r\n }\r\n}\r\n\r\nUserStatusPermissions.$inject = [\"$q\", \"AssetEndpointService\"];\r\nangularAMD.service(\"userStatusPermissions\", UserStatusPermissions);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./userAPI.service\";\r\n\r\nangularAMD.service(\"User\", User);\r\nUser.$inject = [\"UserAPI\", \"$window\"];\r\n\r\nfunction User(UserAPI, $window) {\r\n //Private State - Not great to store state on a singleton, however this is an exception...better than $rootScope.\r\n //==============================================================================================================\r\n var activeUser = {\r\n dto: null\r\n };\r\n\r\n //Public API\r\n //==============================================================================================================\r\n this.getDto = getDto;\r\n this.setDto = setDto;\r\n this.getId = getId;\r\n this.getFullName = getFullName;\r\n this.setupDto = setupDto;\r\n this.isLoggedIn = isLoggedIn;\r\n this.isExternal = isExternal;\r\n this.reset = reset;\r\n this.isVersioningEnabled = isVersioningEnabled;\r\n this.canUseMml = canUseMml;\r\n this.hasConsentedToEmbeddedContent = hasConsentedToEmbeddedContent;\r\n this.canUseInlineFilePreview = canUseInlineFilePreview;\r\n\r\n //Private Methods\r\n //==============================================================================================================\r\n /**\r\n * @returns {Object|null}\r\n */\r\n function getDto() {\r\n return activeUser.dto;\r\n }\r\n\r\n /**\r\n * @param {Object|null} userDto\r\n * @returns {Object|null}\r\n */\r\n function setDto(userDto) {\r\n activeUser.dto = userDto;\r\n return activeUser.dto;\r\n }\r\n\r\n function reset() {\r\n activeUser.dto = null;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n function getId() {\r\n return activeUser.dto !== null ? activeUser.dto.UserId : \"\";\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n function getFullName() {\r\n return activeUser.dto !== null ? activeUser.dto.Firstname + \" \" + activeUser.dto.Surname : \"\";\r\n }\r\n\r\n /**\r\n * @returns {Promise} - Resolve with UserDto or null\r\n */\r\n function setupDto() {\r\n return UserAPI.getLoggedInUserData().then(function (userDto) {\r\n activeUser.dto = userDto;\r\n return getDto();\r\n });\r\n }\r\n\r\n /**\r\n * @returns {Promise}\r\n */\r\n function isLoggedIn() {\r\n return setupDto().then(function (userDto) {\r\n return !!userDto;\r\n });\r\n }\r\n\r\n /**\r\n * @returns {Boolean}\r\n */\r\n function isExternal() {\r\n return activeUser.dto !== null && activeUser.dto.IsExternal;\r\n }\r\n\r\n /**\r\n * @returns {Boolean}\r\n */\r\n function isVersioningEnabled() {\r\n return activeUser.dto !== null && activeUser.dto.VersioningEnabled;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n function canUseMml() {\r\n return activeUser.dto.EnableMapMyLearning;\r\n }\r\n\r\n function hasConsentedToEmbeddedContent() {\r\n return activeUser.dto !== null ? activeUser.dto.EmbedBlockConsent : false;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n function canUseInlineFilePreview() {\r\n return activeUser.dto !== null ? activeUser.dto.EnableInlineFilePreview : false;\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.service(\"UserAPI\", UserAPI);\r\nUserAPI.$inject = [\"$http\", \"$q\", \"baseUrlsFactory\", \"AssetEndpointService\"];\r\n\r\nfunction UserAPI($http, $q, baseUrlsFactory, AssetEndpointService) {\r\n this.getLoggedInUserData = getLoggedInUserData;\r\n this.keepUserLoggedIn = keepUserLoggedIn;\r\n this.changeUserSetting = changeUserSetting;\r\n this.sendResetAndMerge = sendResetAndMerge;\r\n\r\n /**\r\n * @returns {Promise} - Resolves with either null or an Object\r\n */\r\n function getLoggedInUserData() {\r\n return AssetEndpointService.getLoggedInUserData();\r\n }\r\n\r\n function keepUserLoggedIn() {\r\n return $http.get(baseUrlsFactory.api_base_url + \"SharedMenu/KeepMeLoggedIn\").then(function (response) {\r\n //If they response returns false, user is not logged in - reject!\r\n return response.data ? true : $q.reject();\r\n });\r\n }\r\n\r\n function changeUserSetting(settingName, value) {\r\n return $http.get(baseUrlsFactory.api_base_url + \"Home/ChangeUserSetting?settingName=\" + settingName + \"&value=\" + value);\r\n }\r\n\r\n function sendResetAndMerge() {\r\n return $http.get(baseUrlsFactory.api_base_url + \"Home/MergeExternalAccounts\");\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./typeCheck.service\";\r\n\r\nangularAMD.service(\"accessibilityKeyEventHelper\", AccessibilityKeyHelper);\r\nAccessibilityKeyHelper.$inject = [\"typeCheck\"];\r\n\r\nfunction AccessibilityKeyHelper(typeCheck) {\r\n this.keyboardEventTypes = [\"keyup\", \"keydown\", \"keypress\"];\r\n this.keyCodeMap = {\r\n numbers: {\r\n normal: { from: 48, to: 57 },\r\n numpad: { from: 96, to: 105 }\r\n },\r\n backspace: 8,\r\n delete: 46,\r\n tab: 9,\r\n escape: 27,\r\n F5: 116,\r\n enter: 13,\r\n dot: [190, 110],\r\n a: 65,\r\n r: 82,\r\n home: 36,\r\n end: 35,\r\n leftArrow: 37,\r\n upArrow: 38,\r\n rightArrow: 39,\r\n downArrow: 40,\r\n pageUp: 33,\r\n pageDown: 34\r\n };\r\n\r\n this.keyMap = {\r\n enter: \"Enter\"\r\n };\r\n\r\n this.arrowCombos = {\r\n leftUpArrows: [this.keyCodeMap.leftArrow, this.keyCodeMap.upArrow],\r\n leftDownArrows: [this.keyCodeMap.leftArrow, this.keyCodeMap.downArrow],\r\n rightUpArrows: [this.keyCodeMap.rightArrow, this.keyCodeMap.upArrow],\r\n rightDownArrows: [this.keyCodeMap.rightArrow, this.keyCodeMap.downArrow],\r\n allArrows: []\r\n };\r\n this.arrowCombos.allArrows = this.arrowCombos.leftUpArrows.concat(this.arrowCombos.rightDownArrows);\r\n\r\n this.isArrowKey = function (e, which) {\r\n var keyCodes = this.arrowCombos[which + \"Arrows\"] || this.arrowCombos.allArrows;\r\n return keyCodes.indexOf(e.keyCode) > -1;\r\n };\r\n\r\n /**\r\n * Return true if event happened from keyboard.\r\n * Use this check, when you share event method with other input type events.\r\n * @param e\r\n * @returns {boolean}\r\n */\r\n this.isKeyboardEvent = function (e) {\r\n return this.keyboardEventTypes.indexOf(e.type) > -1;\r\n };\r\n\r\n this.isEnterKey = function (e) {\r\n return this.keyMap.enter === e.key;\r\n };\r\n\r\n this.isShiftKey = function (e) {\r\n return (e.shiftKey && e.keyCode === 16) || (e.type === \"keyup\" && e.keyCode === 16);\r\n };\r\n\r\n this.isWithShiftKey = function (e) {\r\n return e.shiftKey && e.keyCode !== 16;\r\n };\r\n\r\n this.isWithCtrlKey = function (e) {\r\n // ctrlKey - Windows, Linux\r\n // metaKey - COMMAND key on macOS\r\n return e.ctrlKey || e.metaKey;\r\n };\r\n\r\n this.isWithAltKey = function (e) {\r\n return e.altKey && e.keyCode !== 18;\r\n };\r\n\r\n this.isCtrlKey = function (e) {\r\n // ctrlKey - Windows, Linux\r\n // metaKey - COMMAND key on macOS\r\n return e.ctrlKey || e.metaKey || (e.type === \"keyup\" && e.keyCode === 17);\r\n };\r\n\r\n this.isTabKey = function (e) {\r\n return this.keyCodeMap.tab === e.keyCode;\r\n };\r\n\r\n // ctrl+A / cmd+A\r\n this.isSelectAll = function (e) {\r\n return e.keyCode === this.keyCodeMap.a && this.isCtrlKey(e);\r\n };\r\n\r\n this.refreshKeyCombination = function (e) {\r\n return e.keyCode === this.keyCodeMap.r && this.isCtrlKey(e);\r\n };\r\n\r\n this.isNumber = function (e, supportFloats, decimalSeparator) {\r\n var decimalSeparatorKeys = [];\r\n\r\n if (supportFloats) {\r\n var decimalSeparatorKeyCode = this.keyCodeMap[decimalSeparator || \"dot\"] || null;\r\n if (typeCheck.isArray(decimalSeparatorKeyCode)) {\r\n decimalSeparatorKeys = decimalSeparatorKeys.concat(decimalSeparatorKeyCode);\r\n } else {\r\n decimalSeparatorKeys.push(decimalSeparatorKeyCode);\r\n }\r\n }\r\n\r\n var isDecimalSeparator = decimalSeparatorKeys.indexOf(e.keyCode) > -1, // backspace, delete, tab, home, end, (possibly dot|comma if 'supportFloats' flag is set to true)\r\n digits =\r\n (e.keyCode >= this.keyCodeMap.numbers.normal.from && e.keyCode <= this.keyCodeMap.numbers.normal.to) ||\r\n (e.keyCode >= this.keyCodeMap.numbers.numpad.from && e.keyCode <= this.keyCodeMap.numbers.numpad.to);\r\n\r\n if (this.isWithShiftKey(e)) {\r\n return false;\r\n }\r\n\r\n return digits || isDecimalSeparator;\r\n };\r\n\r\n this.isSelectionManipulationKeys = function (e, backspaceDelete) {\r\n var manipulateSelectionKeys = [this.keyCodeMap.tab, this.keyCodeMap.home, this.keyCodeMap.end];\r\n if (backspaceDelete) {\r\n manipulateSelectionKeys = manipulateSelectionKeys.concat([this.keyCodeMap.backspace, this.keyCodeMap.delete]);\r\n }\r\n\r\n var selectAll = this.isSelectAll(e),\r\n arrowKey = this.isArrowKey(e),\r\n shiftKey = this.isShiftKey(e),\r\n refreshKeyCombination = this.refreshKeyCombination(e),\r\n escKey = e.keyCode === this.keyCodeMap.escape,\r\n F5Key = e.keyCode === this.keyCodeMap.F5,\r\n manipulateSelection = manipulateSelectionKeys.indexOf(e.keyCode) > -1; // backspace, delete, tab, home, end, (possibly dot|comma if 'supportFloats' flag is set to true)\r\n\r\n return selectAll || arrowKey || shiftKey || manipulateSelection || escKey || F5Key || refreshKeyCombination;\r\n };\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./typeCheck.service\";\r\n\r\nangularAMD.factory(\"animationHelperService\", [\r\n \"$timeout\",\r\n \"typeCheck\",\r\n function ($timeout, typeCheck) {\r\n return {\r\n animate: function (options) {\r\n var self = this; // map \"this\" with \"self\" to solve scope issue\r\n var is_array = typeCheck.isArray(options.step); // check if \"step\" is an array\r\n\r\n // if step is an array, then add new property \"fn_iterator\" to perform sequential function run\r\n if (is_array && !options.hasOwnProperty(\"fn_iterator\")) {\r\n options[\"fn_iterator\"] = 0;\r\n }\r\n\r\n var start_time = new Date(); // record time when animation was triggered\r\n\r\n // repeat run step_fn until animation is completed\r\n var timer = setInterval(function () {\r\n var time_passed = new Date() - start_time; // get time passed since last run\r\n var progress = time_passed / (options.duration === undefined ? 1000 : options.duration); // calculate progress. \"duration\" is 1000ms by default\r\n\r\n // progress_condition if step is an array, then look for break_animation attribute, otherwise check the progress\r\n var progress_condition = is_array ? progress > 1 || options.step[options.fn_iterator].break_animation : progress > 1;\r\n if (progress_condition) {\r\n progress = 1;\r\n } // make progress equal 1 when break_animation is true or progress is greater than 1\r\n\r\n var delta = options.timing_fn(progress); // calculate delta with passed timing function\r\n is_array ? options.step[options.fn_iterator].step_fn(delta) : options.step(delta); // run step from array or from a function\r\n\r\n // tslint:disable-next-line:triple-equals\r\n if (progress == 1) {\r\n clearInterval(timer); // clear interval when animation is completed\r\n\r\n // if is an array, then increment fn_iterator, so next time code will run next in a row function\r\n if (is_array) {\r\n if (options.fn_iterator < options.step.length - 1) {\r\n options.fn_iterator++;\r\n self.animate(options);\r\n } else {\r\n options.fn_iterator = 0;\r\n }\r\n }\r\n }\r\n }, options.delay || 10);\r\n\r\n return timer;\r\n },\r\n\r\n timing_functions: {\r\n easeIn: function (progress) {\r\n return progress * progress;\r\n },\r\n easeOut: function (progress) {\r\n return progress * (2 - progress);\r\n },\r\n easeInOut: function (progress) {\r\n return progress < 0.5 ? 2 * progress * progress : -1 + (4 - 2 * progress) * progress;\r\n },\r\n easeInCubic: function (progress) {\r\n return progress * progress * progress;\r\n },\r\n easeOutCubic: function (progress) {\r\n return --progress * progress * progress + 1;\r\n },\r\n easeInOutCubic: function (progress) {\r\n return progress < 0.5 ? 4 * progress * progress * progress : (progress - 1) * (2 * progress - 2) * (2 * progress - 2) + 1;\r\n }\r\n },\r\n\r\n /**\r\n * @param {Element} element\r\n * @param {String} className\r\n * @param {=Number} timeoutDuration\r\n * @returns {Promise}\r\n */\r\n applyAnimationClass: function (element, className, timeoutDuration) {\r\n element.classList.add(className);\r\n element.setAttribute(\"aria-hidden\", \"true\");\r\n var duration = !isNaN(timeoutDuration) ? timeoutDuration : 300;\r\n\r\n //Wait for animation to end, then focus in on the first available element\r\n return $timeout(function () {\r\n element.setAttribute(\"aria-hidden\", \"false\");\r\n element.classList.remove(className);\r\n }, duration);\r\n }\r\n };\r\n }\r\n]);\r\n","import { createGuid } from \"@pjs/utilities\";\r\n\r\nexport class ExportOptionItem {\r\n constructor(scope, key, label, value) {\r\n this._scope = scope;\r\n this.id = createGuid();\r\n this.key = key;\r\n this.label = label;\r\n this.value = value ?? false;\r\n this.toggle = (checked) => {\r\n this.value = checked;\r\n this._scope.$applyAsync();\r\n };\r\n }\r\n}\r\n","import { NgComponent } from \"@pebblepad/angular/ngComponent\";\r\nimport { angularAMD } from \"@pebblepad/amd\";\r\nimport { ButtonClass } from \"@pjs/core-ui\";\r\nimport { ExportOptionItem } from \"./ExportOptionItem\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../react2angular/buttonComponent\";\r\nimport \"../react2angular/checkbox\";\r\nimport \"../assetEndpointService/assetEndpoint.service\";\r\nimport template from \"./templates/export-options.html\";\r\n\r\nclass ExportOptionsController extends NgComponent {\r\n constructor($scope, multiLanguageService, AssetEndpointService) {\r\n super();\r\n this.multiLanguageService = multiLanguageService;\r\n this.url = AssetEndpointService.exportToPdfUrl(this.assetId);\r\n this.buttonClass = ButtonClass;\r\n this.exporting = false;\r\n this._scope = $scope;\r\n this._assetEndpointService = AssetEndpointService;\r\n this.close = this.close.bind(this);\r\n this.startAgain = this.startAgain.bind(this);\r\n\r\n this.layoutOptions = [\r\n new ExportOptionItem(this._scope, \"portraitPrinting\", multiLanguageService.getString(\"export_options.labels.portrait\"), true),\r\n new ExportOptionItem(this._scope, \"landscapePrinting\", multiLanguageService.getString(\"export_options.labels.landscape\"))\r\n ];\r\n\r\n this.fileNameOptions = [\r\n new ExportOptionItem(this._scope, \"assetTitle\", multiLanguageService.getString(\"export_options.labels.asset_title\"), true),\r\n new ExportOptionItem(this._scope, \"prefixUsernameToFilename\", multiLanguageService.getString(\"export_options.labels.prefix_username_to_filename\"))\r\n ];\r\n\r\n this._populateOptionalContent();\r\n\r\n this.layout = { mode: this.layoutOptions[0].key };\r\n this.fileName = { mode: this.fileNameOptions[0].key };\r\n }\r\n\r\n $onChanges(changes) {\r\n if (changes.optionalContent !== undefined && !changes.optionalContent.isFirstChange()) {\r\n this._populateOptionalContent();\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.exporting = true;\r\n }\r\n\r\n close() {\r\n if (typeof this.onComplete === \"function\") {\r\n this.onComplete();\r\n this._scope.$applyAsync();\r\n }\r\n }\r\n\r\n startAgain() {\r\n this.exporting = false;\r\n this._scope.$applyAsync();\r\n }\r\n\r\n _populateOptionalContent() {\r\n this.optionalContentItems = [\r\n new ExportOptionItem(this._scope, \"linked\", this.multiLanguageService.getString(\"export_options.labels.linked_items\")),\r\n new ExportOptionItem(this._scope, \"downloadLinked\", this.multiLanguageService.getString(\"export_options.labels.download_linked_items\")),\r\n new ExportOptionItem(this._scope, \"banners\", this.multiLanguageService.getString(\"export_options.labels.banners\")),\r\n new ExportOptionItem(this._scope, \"footers\", this.multiLanguageService.getString(\"export_options.labels.footers\"), true)\r\n ];\r\n\r\n if (this.optionalContent.comments) {\r\n this.optionalContentItems.push(new ExportOptionItem(this._scope, \"comments\", this.multiLanguageService.getString(\"export_options.labels.comments\")));\r\n }\r\n\r\n if (this.optionalContent.feedback) {\r\n this.optionalContentItems.push(new ExportOptionItem(this._scope, \"feedbackAndGrades\", this.multiLanguageService.getString(\"export_options.labels.feedback\")));\r\n }\r\n }\r\n}\r\n\r\nExportOptionsController.$inject = [\"$scope\", \"multiLanguageService\", \"AssetEndpointService\"];\r\n\r\nangularAMD.component(\"exportOptions\", {\r\n bindings: {\r\n assetId: \"<\",\r\n optionalContent: \"<\",\r\n onComplete: \"&?\",\r\n allowMultipleExports: \"

{{::$ctrl.multiLanguageService.getString(\"export_options.title\")}}

{{::$ctrl.multiLanguageService.getString(\"export_options.description\")}}

{{::$ctrl.multiLanguageService.getString(\"export_options.page_layout\")}}

{{::$ctrl.multiLanguageService.getString(\"export_options.file_name_option_title\")}}

{{::$ctrl.multiLanguageService.getString(\"export_options.optional_content\")}}

{{::$ctrl.multiLanguageService.getString(\"export_options.exporting\")}}

{{::$ctrl.multiLanguageService.getString(\"export_options.export_info\")}}

{{::$ctrl.multiLanguageService.getString(\"export_options.do_not_close\")}}

`;","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport \"../assetStore/services/assetStoreService\";\r\nimport \"../assetStore/services/useResourceService\";\r\nimport \"./baseUrlsFactory\";\r\nimport \"../modal/services/modal\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\nimport \"../exportOptions/exportOptions\";\r\nimport \"../formComponents/StandardsElement/standardsInformation.service\";\r\nimport \"./urlService\";\r\nimport \"@pebblepad/angular\";\r\n\r\nangularAMD.factory(\"assetActionService\", [\r\n \"$compile\",\r\n \"$location\",\r\n \"assetStoreService\",\r\n \"useResourceService\",\r\n \"baseUrlsFactory\",\r\n \"$rootScope\",\r\n \"modal\",\r\n \"multiLanguageService\",\r\n \"standardsInformation\",\r\n \"urlService\",\r\n \"AssetEndpointService\",\r\n function ($compile, $location, assetStoreService, useResourceService, baseUrlsFactory, $rootScope, modal, multiLanguageService, standardsInformation, urlService, assetEndpointService) {\r\n function Actions() {\r\n this.aliases = {\r\n viewAssets: this.view.bind(this),\r\n copyAssets: this.copy.bind(this),\r\n shareAssets: this.share.bind(this),\r\n tagAssets: this.tag.bind(this),\r\n exportAssets: this.export.bind(this),\r\n purgeAssets: this.purge.bind(this),\r\n deleteAssets: this.delete.bind(this),\r\n restoreAssets: this.restore.bind(this),\r\n archiveAssets: this.archive.bind(this),\r\n unarchiveAssets: this.unarchive.bind(this),\r\n mapAssets: this.map.bind(this),\r\n favouriteAssets: this.favourite.bind(this),\r\n unfavouriteAssets: this.unfavourite.bind(this)\r\n };\r\n this.paramsDefault = {};\r\n }\r\n\r\n //Helpers for adding aliases and running callbacks ------------------------------------------------------------------------\r\n //Call a function via an Alias\r\n Actions.prototype.invoke = function (name, id, params) {\r\n var callback = this.aliases[name];\r\n params = typeof params !== \"object\" ? this.paramsDefault : params;\r\n\r\n if (typeof callback !== \"undefined\") {\r\n callback(id, params);\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n //Add an Alias - Only affects one instances of the Action object\r\n Actions.prototype.addAction = function (alias, callback) {\r\n this.aliases[alias] = callback;\r\n };\r\n\r\n Actions.prototype.removeAction = function (alias) {\r\n delete this.aliases[alias];\r\n };\r\n\r\n //Use when there maybe references to callbacks/functions which belong to something being deleted and the instance of this object remains alive.\r\n Actions.prototype.removeAllActions = function () {\r\n this.aliases = null;\r\n };\r\n\r\n //Default Actions below ------------------------------------------------------------------------\r\n Actions.prototype.share = function (assetIds, params) {\r\n if (params.scope) {\r\n var sharingScope = params.scope.$new(true);\r\n sharingScope.assetIds = assetIds.slice(); // need to copy value because original reference array get cleaned up in assetStore.js\r\n sharingScope.shareMode = \"web\";\r\n sharingScope.modalDetails = {\r\n title: multiLanguageService.getString(\"buttons.iWantToHandler.share\"),\r\n icon: \"share\"\r\n };\r\n\r\n modal.newModal({\r\n scope: sharingScope,\r\n autofocus: false,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"shareStart/templates/modal-wrapper.lazy.html\"\r\n });\r\n }\r\n };\r\n\r\n Actions.prototype.view = function (assetIds, params) {\r\n if (params.type === \"resource\") {\r\n assetIds.forEach(function (assetId) {\r\n useResourceService.checkUse({ AssetId: assetId });\r\n });\r\n } else if (params.type === \"asset\") {\r\n assetStoreService.openAssets(assetIds);\r\n } else if (params.type === \"deleted\") {\r\n assetIds.forEach(function (assetId) {\r\n // should only ever be one as you can't open/view multiple deleted items\r\n $location.url(\"viewer/\" + assetId);\r\n });\r\n }\r\n };\r\n\r\n Actions.prototype.copy = function (assetId, params) {\r\n if (params.scope) {\r\n var copyScope = params.scope.$new(true);\r\n copyScope.assetId = assetId[0];\r\n\r\n modal.newModal({\r\n scope: copyScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"takeACopy/templates/modal-wrapper.lazy.html\"\r\n });\r\n }\r\n };\r\n\r\n Actions.prototype.tag = function (assetIds, params) {\r\n $rootScope.$broadcast(\"openRightHandSidePanel\", {\r\n panel: \"asset-info\",\r\n assetId: assetIds[0],\r\n actionData: {\r\n preview: false,\r\n jumpToSection: \"tagger-wrapper\",\r\n elementToFocus: \"auto-complete-search\"\r\n }\r\n });\r\n };\r\n\r\n Actions.prototype.export = function (assetId, params) {\r\n if (params.scope) {\r\n var modalScope = params.scope.$new(true);\r\n modalScope.assetId = assetId[0];\r\n modalScope.multiLanguageService = multiLanguageService;\r\n modalScope.onClose = function () {\r\n modalScope.$destroy();\r\n };\r\n\r\n modalScope.optionalContent = { comments: true, feedback: false };\r\n assetEndpointService.getBasicDetails(modalScope.assetId).then((rsp) => {\r\n modalScope.optionalContent = { comments: true, feedback: rsp.data.CurrentUserCanEdit };\r\n modalScope.$applyAsync();\r\n });\r\n\r\n modal.newModal({\r\n scope: modalScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"exportOptions/templates/modal-export.lazy.html\"\r\n });\r\n }\r\n };\r\n\r\n Actions.prototype.purge = function (assetIds, ignoreDeletedFolder) {\r\n return assetStoreService.purgeAssets(assetIds, ignoreDeletedFolder).then(function (response) {\r\n return response.data ? assetIds : [];\r\n });\r\n };\r\n\r\n Actions.prototype.delete = function (assetIds) {\r\n return assetStoreService.deleteAssets(assetIds).then(function (response) {\r\n return response.data ? assetIds : [];\r\n });\r\n };\r\n\r\n Actions.prototype.restore = function (assetIds) {\r\n return assetStoreService.restoreAssets(assetIds).then(function (response) {\r\n return response.data ? assetIds : [];\r\n });\r\n };\r\n\r\n Actions.prototype.archive = function (assetIds) {\r\n return assetStoreService.archiveAssets(assetIds).then(function (response) {\r\n return response.data ? assetIds : [];\r\n });\r\n };\r\n\r\n Actions.prototype.unarchive = function (assetIds) {\r\n return assetStoreService.unarchiveAssets(assetIds).then(function (response) {\r\n return response.data ? assetIds : [];\r\n });\r\n };\r\n\r\n Actions.prototype.map = function (assetIds, params) {\r\n standardsInformation.setStandardsData([], \"\", [], assetIds[0], \"\", \"\", false, false);\r\n standardsInformation.setNavigationalUrl(assetIds[0], $location.url());\r\n\r\n const mappingUrl = urlService.configureMappingUrl(assetIds[0]);\r\n $location.url(mappingUrl);\r\n };\r\n\r\n Actions.prototype.favourite = function (assetIds) {\r\n return assetStoreService\r\n .favouriteAsset(assetIds, true)\r\n .then(function (response) {\r\n tracker.trackEvent(\"Favourite\", \"Add\");\r\n return response.data !== null ? assetIds : [];\r\n })\r\n .catch(() => []);\r\n };\r\n\r\n Actions.prototype.unfavourite = function (assetIds) {\r\n return assetStoreService\r\n .favouriteAsset(assetIds, false)\r\n .then(function (response) {\r\n tracker.trackEvent(\"Favourite\", \"Remove\");\r\n return response.data !== null ? assetIds : [];\r\n })\r\n .catch(() => []);\r\n };\r\n\r\n return Actions;\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.factory(\"baseUrlsFactory\", function () {\r\n return {\r\n shared_component_base_url: window.config.getSharedComponentBaseUrl(),\r\n api_base_url: window.config.getApiBaseUrl(),\r\n login_url: window.config.getApiBaseUrl() + \"SharedMenu/Forwarder?location=LoginService&action=JustOpenLocation\",\r\n forwarding_url: window.config.getApiBaseUrl() + \"SharedMenu/Forwarder\",\r\n testing_environment: window.config.getTestingEnvironment()\r\n };\r\n});\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.filter(\"bytesToSize\", [\r\n \"multiLanguageService\",\r\n function (multiLanguageService) {\r\n return function (bytes) {\r\n if (bytes === 0) {\r\n return multiLanguageService.getString(\"file_uploads.labels.zeroBytes\");\r\n } else if (!bytes) {\r\n return \"\";\r\n }\r\n\r\n var k = 1024;\r\n var sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\r\n var i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return (bytes / Math.pow(k, i)).toFixed(2) + \" \" + sizes[i];\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.directive(\"checklistModel\", [\r\n \"$parse\",\r\n \"$compile\",\r\n function ($parse, $compile) {\r\n // contains\r\n function contains(arr, item, comparator) {\r\n if (angular.isArray(arr)) {\r\n for (var i = arr.length; i--; ) {\r\n if (comparator(arr[i], item)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n // add\r\n function add(arr, item, comparator) {\r\n arr = angular.isArray(arr) ? arr : [];\r\n if (!contains(arr, item, comparator)) {\r\n arr.push(item);\r\n }\r\n return arr;\r\n }\r\n\r\n // remove\r\n function remove(arr, item, comparator) {\r\n if (angular.isArray(arr)) {\r\n for (var i = arr.length; i--; ) {\r\n if (comparator(arr[i], item)) {\r\n arr.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n // http://stackoverflow.com/a/19228302/1458162\r\n function postLinkFn(scope, elem, attrs) {\r\n // compile with `ng-model` pointing to `checked`\r\n $compile(elem)(scope);\r\n\r\n // getter / setter for original model\r\n var getter = $parse(attrs.checklistModel);\r\n var setter = getter.assign;\r\n var checklistChange = $parse(attrs.checklistChange);\r\n\r\n // value added to list\r\n var value = $parse(attrs.checklistValue)(scope.$parent);\r\n\r\n var comparator = angular.equals;\r\n\r\n if (attrs.hasOwnProperty(\"checklistComparator\")) {\r\n comparator = $parse(attrs.checklistComparator)(scope.$parent);\r\n }\r\n\r\n // watch UI checked change\r\n scope.$watch(\"checked\", function (newValue, oldValue) {\r\n if (newValue === oldValue) {\r\n return;\r\n }\r\n var current = getter(scope.$parent);\r\n if (newValue === true) {\r\n setter(scope.$parent, add(current, value, comparator));\r\n } else {\r\n setter(scope.$parent, remove(current, value, comparator));\r\n }\r\n\r\n if (checklistChange) {\r\n checklistChange(scope);\r\n }\r\n });\r\n\r\n // declare one function to be used for both $watch functions\r\n function setChecked(newArr, oldArr) {\r\n scope.checked = contains(newArr, value, comparator);\r\n }\r\n\r\n // watch original model change\r\n // use the faster $watchCollection method if it's available\r\n if (angular.isFunction(scope.$parent.$watchCollection)) {\r\n scope.$parent.$watchCollection(attrs.checklistModel, setChecked);\r\n } else {\r\n scope.$parent.$watch(attrs.checklistModel, setChecked, true);\r\n }\r\n }\r\n\r\n return {\r\n restrict: \"A\",\r\n priority: 1000,\r\n terminal: true,\r\n scope: true,\r\n compile: function (tElement, tAttrs) {\r\n if (tElement[0].tagName !== \"INPUT\" || tAttrs.type !== \"checkbox\") {\r\n throw new Error('checklist-model should be applied to `input[type=\"checkbox\"]`.');\r\n }\r\n\r\n if (!tAttrs.checklistValue) {\r\n throw new Error(\"You should provide `checklist-value`.\");\r\n }\r\n\r\n // exclude recursion\r\n tElement.removeAttr(\"checklist-model\");\r\n\r\n // local scope var storing individual checkbox model\r\n tElement.attr(\"ng-model\", \"checked\");\r\n\r\n return postLinkFn;\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.factory(\"CompileHelperFactory\", [\r\n \"$compile\",\r\n function ($compile) {\r\n var CompileHelper = (function () {\r\n /**\r\n * @param {$scope} [scope]\r\n * @param {Element} [element] - Angular Element\r\n * @param {Boolean} [autoClean]\r\n */\r\n function CompileHelper(scope, element, autoClean) {\r\n this.scope = scope;\r\n this.element = element;\r\n this.lastCreatedScope = null;\r\n\r\n if (autoClean === true) {\r\n this.scope.$on(\"$destroy\", this.reset.bind(this));\r\n }\r\n }\r\n\r\n /**\r\n * @param {string} html - HTML / Directive to be complied.\r\n * @param {Object} [scopeValues]\r\n * @param {Boolean} [preventLastScopeCleanUp]\r\n * @param {Boolean} [cleanupImmediatelyOnElementDestroy] - When true the scope will be automatically be cleaned up when the element is destroyed.\r\n * @param {Boolean} [emptyElement] - True\r\n */\r\n CompileHelper.prototype.compile = function (html, scopeValues, preventLastScopeCleanUp, cleanupImmediatelyOnElementDestroy, emptyElement) {\r\n if (!preventLastScopeCleanUp) {\r\n this.cleanUpLastCompile();\r\n }\r\n\r\n var childScope = this.scope.$new(true, this.scope);\r\n if (scopeValues) {\r\n for (var key in scopeValues) {\r\n if (scopeValues.hasOwnProperty(key) === true) {\r\n childScope[key] = scopeValues[key];\r\n }\r\n }\r\n }\r\n\r\n var compiledElem = this.compileWithScope(html, childScope, emptyElement !== false);\r\n\r\n if (cleanupImmediatelyOnElementDestroy) {\r\n compiledElem.on(\"$destroy\", this.cleanUpLastCompile.bind(this));\r\n }\r\n\r\n this.lastCreatedScope = childScope;\r\n\r\n return compiledElem;\r\n };\r\n\r\n /**\r\n * @param {string} html - HTML / Directive to be complied.\r\n * @param {Object} scope\r\n * @param {Boolean} [empty] - empty before appending new compiled element.\r\n * @returns {Element}\r\n */\r\n CompileHelper.prototype.compileWithScope = function (html, scope, empty) {\r\n if (empty) {\r\n this.element.empty();\r\n }\r\n var compileElem = $compile(html)(scope);\r\n\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n this.element.append(compileElem);\r\n\r\n return compileElem;\r\n };\r\n\r\n CompileHelper.prototype.setElement = function (element) {\r\n this.element = element;\r\n };\r\n\r\n CompileHelper.prototype.cleanUpLastCompile = function () {\r\n if (this.lastCreatedScope) {\r\n this.lastCreatedScope.$destroy();\r\n this.lastCreatedScope = null;\r\n }\r\n };\r\n\r\n CompileHelper.prototype.reset = function () {\r\n this.scope = null;\r\n this.element = null;\r\n };\r\n\r\n return CompileHelper;\r\n })();\r\n\r\n return CompileHelper;\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./typeCheck.service\";\r\n\r\nangularAMD.service(\"computedStyleService\", ComputedStyleService);\r\nComputedStyleService.$inject = [\"typeCheck\"];\r\n\r\nfunction ComputedStyleService(typeCheck) {\r\n // Public API\r\n // =============================================================================================================\r\n this.getComputedStyles = getComputedStyles;\r\n this.parseStyleValue = parseStyleValue;\r\n\r\n // Private methods\r\n // =============================================================================================================\r\n var _stripValueUnitRegex = /(\\D*$)/;\r\n\r\n function getComputedStyles(el, styles, parse) {\r\n var computedStyles = window.getComputedStyle(el),\r\n styleValues = {},\r\n currStyle;\r\n\r\n if (!typeCheck.isArray(styles)) {\r\n styles = [styles];\r\n }\r\n\r\n if (computedStyles !== void 0) {\r\n for (var i = 0, len = styles.length; i < len; i++) {\r\n currStyle = styles[i];\r\n styleValues[currStyle] = computedStyles[currStyle];\r\n if (parse) {\r\n styleValues[currStyle] = parseStyleValue(styleValues[currStyle]);\r\n }\r\n }\r\n }\r\n\r\n return styleValues;\r\n }\r\n\r\n function parseStyleValue(value) {\r\n if (value !== void 0) {\r\n return parseFloat(value.replace(_stripValueUnitRegex, \"\"));\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","/*\r\n CryptoJS v3.1.2\r\n code.google.com/p/crypto-js\r\n (c) 2009-2013 by Jeff Mott. All rights reserved.\r\n code.google.com/p/crypto-js/wiki/License\r\n */\r\nvar CryptoJS =\r\n CryptoJS ||\r\n (function (u, p) {\r\n var d = {},\r\n l = (d.lib = {}),\r\n // tslint:disable-next-line:no-empty\r\n s = function () {},\r\n t = (l.Base = {\r\n extend: function (a) {\r\n s.prototype = this;\r\n var c = new s();\r\n a && c.mixIn(a);\r\n c.hasOwnProperty(\"init\") ||\r\n (c.init = function () {\r\n c.$super.init.apply(this, arguments);\r\n });\r\n c.init.prototype = c;\r\n c.$super = this;\r\n return c;\r\n },\r\n create: function () {\r\n var a = this.extend();\r\n a.init.apply(a, arguments);\r\n return a;\r\n },\r\n // tslint:disable-next-line:no-empty\r\n init: function () {},\r\n mixIn: function (a) {\r\n for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]);\r\n a.hasOwnProperty(\"toString\") && (this.toString = a.toString);\r\n },\r\n clone: function () {\r\n return this.init.prototype.extend(this);\r\n }\r\n }),\r\n r = (l.WordArray = t.extend({\r\n init: function (a, c) {\r\n a = this.words = a || [];\r\n // tslint:disable-next-line:triple-equals\r\n this.sigBytes = c != p ? c : 4 * a.length;\r\n },\r\n toString: function (a) {\r\n return (a || v).stringify(this);\r\n },\r\n concat: function (a) {\r\n var c = this.words,\r\n e = a.words,\r\n j = this.sigBytes;\r\n a = a.sigBytes;\r\n this.clamp();\r\n if (j % 4) for (var k = 0; k < a; k++) c[(j + k) >>> 2] |= ((e[k >>> 2] >>> (24 - 8 * (k % 4))) & 255) << (24 - 8 * ((j + k) % 4));\r\n else if (65535 < e.length) for (k = 0; k < a; k += 4) c[(j + k) >>> 2] = e[k >>> 2];\r\n else c.push.apply(c, e);\r\n this.sigBytes += a;\r\n return this;\r\n },\r\n clamp: function () {\r\n var a = this.words,\r\n c = this.sigBytes;\r\n a[c >>> 2] &= 4294967295 << (32 - 8 * (c % 4));\r\n a.length = u.ceil(c / 4);\r\n },\r\n clone: function () {\r\n var a = t.clone.call(this);\r\n a.words = this.words.slice(0);\r\n return a;\r\n },\r\n random: function (a) {\r\n for (var c = [], e = 0; e < a; e += 4) c.push((4294967296 * u.random()) | 0);\r\n return new r.init(c, a);\r\n }\r\n })),\r\n w = (d.enc = {}),\r\n v = (w.Hex = {\r\n stringify: function (a) {\r\n var c = a.words;\r\n a = a.sigBytes;\r\n for (var e = [], j = 0; j < a; j++) {\r\n var k = (c[j >>> 2] >>> (24 - 8 * (j % 4))) & 255;\r\n e.push((k >>> 4).toString(16));\r\n e.push((k & 15).toString(16));\r\n }\r\n return e.join(\"\");\r\n },\r\n parse: function (a) {\r\n for (var c = a.length, e = [], j = 0; j < c; j += 2) e[j >>> 3] |= parseInt(a.substr(j, 2), 16) << (24 - 4 * (j % 8));\r\n return new r.init(e, c / 2);\r\n }\r\n }),\r\n b = (w.Latin1 = {\r\n stringify: function (a) {\r\n var c = a.words;\r\n a = a.sigBytes;\r\n for (var e = [], j = 0; j < a; j++) e.push(String.fromCharCode((c[j >>> 2] >>> (24 - 8 * (j % 4))) & 255));\r\n return e.join(\"\");\r\n },\r\n parse: function (a) {\r\n for (var c = a.length, e = [], j = 0; j < c; j++) e[j >>> 2] |= (a.charCodeAt(j) & 255) << (24 - 8 * (j % 4));\r\n return new r.init(e, c);\r\n }\r\n }),\r\n x = (w.Utf8 = {\r\n stringify: function (a) {\r\n try {\r\n return decodeURIComponent(escape(b.stringify(a)));\r\n } catch (c) {\r\n throw Error(\"Malformed UTF-8 data\");\r\n }\r\n },\r\n parse: function (a) {\r\n return b.parse(unescape(encodeURIComponent(a)));\r\n }\r\n }),\r\n q = (l.BufferedBlockAlgorithm = t.extend({\r\n reset: function () {\r\n this._data = new r.init();\r\n this._nDataBytes = 0;\r\n },\r\n _append: function (a) {\r\n \"string\" === typeof a && (a = x.parse(a));\r\n this._data.concat(a);\r\n this._nDataBytes += a.sigBytes;\r\n },\r\n _process: function (a) {\r\n var c = this._data,\r\n e = c.words,\r\n j = c.sigBytes,\r\n k = this.blockSize,\r\n b = j / (4 * k),\r\n b = a ? u.ceil(b) : u.max((b | 0) - this._minBufferSize, 0);\r\n a = b * k;\r\n j = u.min(4 * a, j);\r\n if (a) {\r\n for (var q = 0; q < a; q += k) this._doProcessBlock(e, q);\r\n q = e.splice(0, a);\r\n c.sigBytes -= j;\r\n }\r\n return new r.init(q, j);\r\n },\r\n clone: function () {\r\n var a = t.clone.call(this);\r\n a._data = this._data.clone();\r\n return a;\r\n },\r\n _minBufferSize: 0\r\n }));\r\n l.Hasher = q.extend({\r\n cfg: t.extend(),\r\n init: function (a) {\r\n this.cfg = this.cfg.extend(a);\r\n this.reset();\r\n },\r\n reset: function () {\r\n q.reset.call(this);\r\n this._doReset();\r\n },\r\n update: function (a) {\r\n this._append(a);\r\n this._process();\r\n return this;\r\n },\r\n finalize: function (a) {\r\n a && this._append(a);\r\n return this._doFinalize();\r\n },\r\n blockSize: 16,\r\n _createHelper: function (a) {\r\n return function (b, e) {\r\n return new a.init(e).finalize(b);\r\n };\r\n },\r\n _createHmacHelper: function (a) {\r\n return function (b, e) {\r\n return new n.HMAC.init(a, e).finalize(b);\r\n };\r\n }\r\n });\r\n var n = (d.algo = {});\r\n return d;\r\n })(Math);\r\n(function () {\r\n var u = CryptoJS,\r\n p = u.lib.WordArray;\r\n u.enc.Base64 = {\r\n stringify: function (d) {\r\n var l = d.words,\r\n p = d.sigBytes,\r\n t = this._map;\r\n d.clamp();\r\n d = [];\r\n for (var r = 0; r < p; r += 3)\r\n for (\r\n var w =\r\n (((l[r >>> 2] >>> (24 - 8 * (r % 4))) & 255) << 16) |\r\n (((l[(r + 1) >>> 2] >>> (24 - 8 * ((r + 1) % 4))) & 255) << 8) |\r\n ((l[(r + 2) >>> 2] >>> (24 - 8 * ((r + 2) % 4))) & 255),\r\n v = 0;\r\n 4 > v && r + 0.75 * v < p;\r\n v++\r\n )\r\n d.push(t.charAt((w >>> (6 * (3 - v))) & 63));\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if ((l = t.charAt(64))) for (; d.length % 4; ) d.push(l);\r\n return d.join(\"\");\r\n },\r\n parse: function (d) {\r\n var l = d.length,\r\n s = this._map,\r\n t = s.charAt(64);\r\n // tslint:disable-next-line:triple-equals\r\n t && ((t = d.indexOf(t)), -1 != t && (l = t));\r\n for (var t = [], r = 0, w = 0; w < l; w++)\r\n if (w % 4) {\r\n var v = s.indexOf(d.charAt(w - 1)) << (2 * (w % 4)),\r\n b = s.indexOf(d.charAt(w)) >>> (6 - 2 * (w % 4));\r\n t[r >>> 2] |= (v | b) << (24 - 8 * (r % 4));\r\n r++;\r\n }\r\n return p.create(t, r);\r\n },\r\n _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"\r\n };\r\n})();\r\n(function (u) {\r\n function p(b, n, a, c, e, j, k) {\r\n b = b + ((n & a) | (~n & c)) + e + k;\r\n return ((b << j) | (b >>> (32 - j))) + n;\r\n }\r\n function d(b, n, a, c, e, j, k) {\r\n b = b + ((n & c) | (a & ~c)) + e + k;\r\n return ((b << j) | (b >>> (32 - j))) + n;\r\n }\r\n function l(b, n, a, c, e, j, k) {\r\n b = b + (n ^ a ^ c) + e + k;\r\n return ((b << j) | (b >>> (32 - j))) + n;\r\n }\r\n function s(b, n, a, c, e, j, k) {\r\n b = b + (a ^ (n | ~c)) + e + k;\r\n return ((b << j) | (b >>> (32 - j))) + n;\r\n }\r\n for (var t = CryptoJS, r = t.lib, w = r.WordArray, v = r.Hasher, r = t.algo, b = [], x = 0; 64 > x; x++) b[x] = (4294967296 * u.abs(u.sin(x + 1))) | 0;\r\n r = r.MD5 = v.extend({\r\n _doReset: function () {\r\n this._hash = new w.init([1732584193, 4023233417, 2562383102, 271733878]);\r\n },\r\n _doProcessBlock: function (q, n) {\r\n for (var a = 0; 16 > a; a++) {\r\n var c = n + a,\r\n e = q[c];\r\n q[c] = (((e << 8) | (e >>> 24)) & 16711935) | (((e << 24) | (e >>> 8)) & 4278255360);\r\n }\r\n var a = this._hash.words,\r\n c = q[n + 0],\r\n e = q[n + 1],\r\n j = q[n + 2],\r\n k = q[n + 3],\r\n z = q[n + 4],\r\n r = q[n + 5],\r\n t = q[n + 6],\r\n w = q[n + 7],\r\n v = q[n + 8],\r\n A = q[n + 9],\r\n B = q[n + 10],\r\n C = q[n + 11],\r\n u = q[n + 12],\r\n D = q[n + 13],\r\n E = q[n + 14],\r\n x = q[n + 15],\r\n f = a[0],\r\n m = a[1],\r\n g = a[2],\r\n h = a[3],\r\n f = p(f, m, g, h, c, 7, b[0]),\r\n h = p(h, f, m, g, e, 12, b[1]),\r\n g = p(g, h, f, m, j, 17, b[2]),\r\n m = p(m, g, h, f, k, 22, b[3]),\r\n f = p(f, m, g, h, z, 7, b[4]),\r\n h = p(h, f, m, g, r, 12, b[5]),\r\n g = p(g, h, f, m, t, 17, b[6]),\r\n m = p(m, g, h, f, w, 22, b[7]),\r\n f = p(f, m, g, h, v, 7, b[8]),\r\n h = p(h, f, m, g, A, 12, b[9]),\r\n g = p(g, h, f, m, B, 17, b[10]),\r\n m = p(m, g, h, f, C, 22, b[11]),\r\n f = p(f, m, g, h, u, 7, b[12]),\r\n h = p(h, f, m, g, D, 12, b[13]),\r\n g = p(g, h, f, m, E, 17, b[14]),\r\n m = p(m, g, h, f, x, 22, b[15]),\r\n f = d(f, m, g, h, e, 5, b[16]),\r\n h = d(h, f, m, g, t, 9, b[17]),\r\n g = d(g, h, f, m, C, 14, b[18]),\r\n m = d(m, g, h, f, c, 20, b[19]),\r\n f = d(f, m, g, h, r, 5, b[20]),\r\n h = d(h, f, m, g, B, 9, b[21]),\r\n g = d(g, h, f, m, x, 14, b[22]),\r\n m = d(m, g, h, f, z, 20, b[23]),\r\n f = d(f, m, g, h, A, 5, b[24]),\r\n h = d(h, f, m, g, E, 9, b[25]),\r\n g = d(g, h, f, m, k, 14, b[26]),\r\n m = d(m, g, h, f, v, 20, b[27]),\r\n f = d(f, m, g, h, D, 5, b[28]),\r\n h = d(h, f, m, g, j, 9, b[29]),\r\n g = d(g, h, f, m, w, 14, b[30]),\r\n m = d(m, g, h, f, u, 20, b[31]),\r\n f = l(f, m, g, h, r, 4, b[32]),\r\n h = l(h, f, m, g, v, 11, b[33]),\r\n g = l(g, h, f, m, C, 16, b[34]),\r\n m = l(m, g, h, f, E, 23, b[35]),\r\n f = l(f, m, g, h, e, 4, b[36]),\r\n h = l(h, f, m, g, z, 11, b[37]),\r\n g = l(g, h, f, m, w, 16, b[38]),\r\n m = l(m, g, h, f, B, 23, b[39]),\r\n f = l(f, m, g, h, D, 4, b[40]),\r\n h = l(h, f, m, g, c, 11, b[41]),\r\n g = l(g, h, f, m, k, 16, b[42]),\r\n m = l(m, g, h, f, t, 23, b[43]),\r\n f = l(f, m, g, h, A, 4, b[44]),\r\n h = l(h, f, m, g, u, 11, b[45]),\r\n g = l(g, h, f, m, x, 16, b[46]),\r\n m = l(m, g, h, f, j, 23, b[47]),\r\n f = s(f, m, g, h, c, 6, b[48]),\r\n h = s(h, f, m, g, w, 10, b[49]),\r\n g = s(g, h, f, m, E, 15, b[50]),\r\n m = s(m, g, h, f, r, 21, b[51]),\r\n f = s(f, m, g, h, u, 6, b[52]),\r\n h = s(h, f, m, g, k, 10, b[53]),\r\n g = s(g, h, f, m, B, 15, b[54]),\r\n m = s(m, g, h, f, e, 21, b[55]),\r\n f = s(f, m, g, h, v, 6, b[56]),\r\n h = s(h, f, m, g, x, 10, b[57]),\r\n g = s(g, h, f, m, t, 15, b[58]),\r\n m = s(m, g, h, f, D, 21, b[59]),\r\n f = s(f, m, g, h, z, 6, b[60]),\r\n h = s(h, f, m, g, C, 10, b[61]),\r\n g = s(g, h, f, m, j, 15, b[62]),\r\n m = s(m, g, h, f, A, 21, b[63]);\r\n a[0] = (a[0] + f) | 0;\r\n a[1] = (a[1] + m) | 0;\r\n a[2] = (a[2] + g) | 0;\r\n a[3] = (a[3] + h) | 0;\r\n },\r\n _doFinalize: function () {\r\n var b = this._data,\r\n n = b.words,\r\n a = 8 * this._nDataBytes,\r\n c = 8 * b.sigBytes;\r\n n[c >>> 5] |= 128 << (24 - (c % 32));\r\n var e = u.floor(a / 4294967296);\r\n n[(((c + 64) >>> 9) << 4) + 15] = (((e << 8) | (e >>> 24)) & 16711935) | (((e << 24) | (e >>> 8)) & 4278255360);\r\n n[(((c + 64) >>> 9) << 4) + 14] = (((a << 8) | (a >>> 24)) & 16711935) | (((a << 24) | (a >>> 8)) & 4278255360);\r\n b.sigBytes = 4 * (n.length + 1);\r\n this._process();\r\n b = this._hash;\r\n n = b.words;\r\n for (a = 0; 4 > a; a++) (c = n[a]), (n[a] = (((c << 8) | (c >>> 24)) & 16711935) | (((c << 24) | (c >>> 8)) & 4278255360));\r\n return b;\r\n },\r\n clone: function () {\r\n var b = v.clone.call(this);\r\n b._hash = this._hash.clone();\r\n return b;\r\n }\r\n });\r\n t.MD5 = v._createHelper(r);\r\n t.HmacMD5 = v._createHmacHelper(r);\r\n})(Math);\r\n(function () {\r\n var u = CryptoJS,\r\n p = u.lib,\r\n d = p.Base,\r\n l = p.WordArray,\r\n p = u.algo,\r\n s = (p.EvpKDF = d.extend({\r\n cfg: d.extend({ keySize: 4, hasher: p.MD5, iterations: 1 }),\r\n init: function (d) {\r\n this.cfg = this.cfg.extend(d);\r\n },\r\n compute: function (d, r) {\r\n for (var p = this.cfg, s = p.hasher.create(), b = l.create(), u = b.words, q = p.keySize, p = p.iterations; u.length < q; ) {\r\n n && s.update(n);\r\n var n = s.update(d).finalize(r);\r\n s.reset();\r\n for (var a = 1; a < p; a++) (n = s.finalize(n)), s.reset();\r\n b.concat(n);\r\n }\r\n b.sigBytes = 4 * q;\r\n return b;\r\n }\r\n }));\r\n u.EvpKDF = function (d, l, p) {\r\n return s.create(p).compute(d, l);\r\n };\r\n})();\r\nCryptoJS.lib.Cipher ||\r\n (function (u) {\r\n var p = CryptoJS,\r\n d = p.lib,\r\n l = d.Base,\r\n s = d.WordArray,\r\n t = d.BufferedBlockAlgorithm,\r\n r = p.enc.Base64,\r\n w = p.algo.EvpKDF,\r\n v = (d.Cipher = t.extend({\r\n cfg: l.extend(),\r\n createEncryptor: function (e, a) {\r\n return this.create(this._ENC_XFORM_MODE, e, a);\r\n },\r\n createDecryptor: function (e, a) {\r\n return this.create(this._DEC_XFORM_MODE, e, a);\r\n },\r\n init: function (e, a, b) {\r\n this.cfg = this.cfg.extend(b);\r\n this._xformMode = e;\r\n this._key = a;\r\n this.reset();\r\n },\r\n reset: function () {\r\n t.reset.call(this);\r\n this._doReset();\r\n },\r\n process: function (e) {\r\n this._append(e);\r\n return this._process();\r\n },\r\n finalize: function (e) {\r\n e && this._append(e);\r\n return this._doFinalize();\r\n },\r\n keySize: 4,\r\n ivSize: 4,\r\n _ENC_XFORM_MODE: 1,\r\n _DEC_XFORM_MODE: 2,\r\n _createHelper: function (e) {\r\n return {\r\n encrypt: function (b, k, d) {\r\n return (\"string\" === typeof k ? c : a).encrypt(e, b, k, d);\r\n },\r\n decrypt: function (b, k, d) {\r\n return (\"string\" === typeof k ? c : a).decrypt(e, b, k, d);\r\n }\r\n };\r\n }\r\n }));\r\n d.StreamCipher = v.extend({\r\n _doFinalize: function () {\r\n return this._process(!0);\r\n },\r\n blockSize: 1\r\n });\r\n var b = (p.mode = {}),\r\n x = function (e, a, b) {\r\n var c = this._iv;\r\n c ? (this._iv = u) : (c = this._prevBlock);\r\n for (var d = 0; d < b; d++) e[a + d] ^= c[d];\r\n },\r\n q = (d.BlockCipherMode = l.extend({\r\n createEncryptor: function (e, a) {\r\n return this.Encryptor.create(e, a);\r\n },\r\n createDecryptor: function (e, a) {\r\n return this.Decryptor.create(e, a);\r\n },\r\n init: function (e, a) {\r\n this._cipher = e;\r\n this._iv = a;\r\n }\r\n })).extend();\r\n q.Encryptor = q.extend({\r\n processBlock: function (e, a) {\r\n var b = this._cipher,\r\n c = b.blockSize;\r\n x.call(this, e, a, c);\r\n b.encryptBlock(e, a);\r\n this._prevBlock = e.slice(a, a + c);\r\n }\r\n });\r\n q.Decryptor = q.extend({\r\n processBlock: function (e, a) {\r\n var b = this._cipher,\r\n c = b.blockSize,\r\n d = e.slice(a, a + c);\r\n b.decryptBlock(e, a);\r\n x.call(this, e, a, c);\r\n this._prevBlock = d;\r\n }\r\n });\r\n b = b.CBC = q;\r\n q = (p.pad = {}).Pkcs7 = {\r\n pad: function (a, b) {\r\n for (var c = 4 * b, c = c - (a.sigBytes % c), d = (c << 24) | (c << 16) | (c << 8) | c, l = [], n = 0; n < c; n += 4) l.push(d);\r\n c = s.create(l, c);\r\n a.concat(c);\r\n },\r\n unpad: function (a) {\r\n a.sigBytes -= a.words[(a.sigBytes - 1) >>> 2] & 255;\r\n }\r\n };\r\n d.BlockCipher = v.extend({\r\n cfg: v.cfg.extend({ mode: b, padding: q }),\r\n reset: function () {\r\n v.reset.call(this);\r\n var a = this.cfg,\r\n b = a.iv,\r\n a = a.mode;\r\n // tslint:disable-next-line:triple-equals\r\n if (this._xformMode == this._ENC_XFORM_MODE) var c = a.createEncryptor;\r\n else (c = a.createDecryptor), (this._minBufferSize = 1);\r\n this._mode = c.call(a, this, b && b.words);\r\n },\r\n _doProcessBlock: function (a, b) {\r\n this._mode.processBlock(a, b);\r\n },\r\n _doFinalize: function () {\r\n var a = this.cfg.padding;\r\n // tslint:disable-next-line:triple-equals\r\n if (this._xformMode == this._ENC_XFORM_MODE) {\r\n a.pad(this._data, this.blockSize);\r\n var b = this._process(!0);\r\n } else (b = this._process(!0)), a.unpad(b);\r\n return b;\r\n },\r\n blockSize: 4\r\n });\r\n var n = (d.CipherParams = l.extend({\r\n init: function (a) {\r\n this.mixIn(a);\r\n },\r\n toString: function (a) {\r\n return (a || this.formatter).stringify(this);\r\n }\r\n })),\r\n b = ((p.format = {}).OpenSSL = {\r\n stringify: function (a) {\r\n var b = a.ciphertext;\r\n a = a.salt;\r\n return (a ? s.create([1398893684, 1701076831]).concat(a).concat(b) : b).toString(r);\r\n },\r\n parse: function (a) {\r\n a = r.parse(a);\r\n var b = a.words;\r\n // tslint:disable-next-line:triple-equals\r\n if (1398893684 == b[0] && 1701076831 == b[1]) {\r\n var c = s.create(b.slice(2, 4));\r\n b.splice(0, 4);\r\n a.sigBytes -= 16;\r\n }\r\n return n.create({ ciphertext: a, salt: c });\r\n }\r\n }),\r\n a = (d.SerializableCipher = l.extend({\r\n cfg: l.extend({ format: b }),\r\n encrypt: function (a, b, c, d) {\r\n d = this.cfg.extend(d);\r\n var l = a.createEncryptor(c, d);\r\n b = l.finalize(b);\r\n l = l.cfg;\r\n return n.create({ ciphertext: b, key: c, iv: l.iv, algorithm: a, mode: l.mode, padding: l.padding, blockSize: a.blockSize, formatter: d.format });\r\n },\r\n decrypt: function (a, b, c, d) {\r\n d = this.cfg.extend(d);\r\n b = this._parse(b, d.format);\r\n return a.createDecryptor(c, d).finalize(b.ciphertext);\r\n },\r\n _parse: function (a, b) {\r\n return \"string\" === typeof a ? b.parse(a, this) : a;\r\n }\r\n })),\r\n p = ((p.kdf = {}).OpenSSL = {\r\n execute: function (a, b, c, d) {\r\n d || (d = s.random(8));\r\n a = w.create({ keySize: b + c }).compute(a, d);\r\n c = s.create(a.words.slice(b), 4 * c);\r\n a.sigBytes = 4 * b;\r\n return n.create({ key: a, iv: c, salt: d });\r\n }\r\n }),\r\n c = (d.PasswordBasedCipher = a.extend({\r\n cfg: a.cfg.extend({ kdf: p }),\r\n encrypt: function (b, c, d, l) {\r\n l = this.cfg.extend(l);\r\n d = l.kdf.execute(d, b.keySize, b.ivSize);\r\n l.iv = d.iv;\r\n b = a.encrypt.call(this, b, c, d.key, l);\r\n b.mixIn(d);\r\n return b;\r\n },\r\n decrypt: function (b, c, d, l) {\r\n l = this.cfg.extend(l);\r\n c = this._parse(c, l.format);\r\n d = l.kdf.execute(d, b.keySize, b.ivSize, c.salt);\r\n l.iv = d.iv;\r\n return a.decrypt.call(this, b, c, d.key, l);\r\n }\r\n }));\r\n })();\r\n(function () {\r\n for (var u = CryptoJS, p = u.lib.BlockCipher, d = u.algo, l = [], s = [], t = [], r = [], w = [], v = [], b = [], x = [], q = [], n = [], a = [], c = 0; 256 > c; c++)\r\n a[c] = 128 > c ? c << 1 : (c << 1) ^ 283;\r\n for (var e = 0, j = 0, c = 0; 256 > c; c++) {\r\n var k = j ^ (j << 1) ^ (j << 2) ^ (j << 3) ^ (j << 4),\r\n k = (k >>> 8) ^ (k & 255) ^ 99;\r\n l[e] = k;\r\n s[k] = e;\r\n var z = a[e],\r\n F = a[z],\r\n G = a[F],\r\n y = (257 * a[k]) ^ (16843008 * k);\r\n t[e] = (y << 24) | (y >>> 8);\r\n r[e] = (y << 16) | (y >>> 16);\r\n w[e] = (y << 8) | (y >>> 24);\r\n v[e] = y;\r\n y = (16843009 * G) ^ (65537 * F) ^ (257 * z) ^ (16843008 * e);\r\n b[k] = (y << 24) | (y >>> 8);\r\n x[k] = (y << 16) | (y >>> 16);\r\n q[k] = (y << 8) | (y >>> 24);\r\n n[k] = y;\r\n e ? ((e = z ^ a[a[a[G ^ z]]]), (j ^= a[a[j]])) : (e = j = 1);\r\n }\r\n var H = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54],\r\n d = (d.AES = p.extend({\r\n _doReset: function () {\r\n for (var a = this._key, c = a.words, d = a.sigBytes / 4, a = 4 * ((this._nRounds = d + 6) + 1), e = (this._keySchedule = []), j = 0; j < a; j++)\r\n if (j < d) e[j] = c[j];\r\n else {\r\n var k = e[j - 1];\r\n /* tslint:disable:triple-equals */\r\n j % d\r\n ? 6 < d && 4 == j % d && (k = (l[k >>> 24] << 24) | (l[(k >>> 16) & 255] << 16) | (l[(k >>> 8) & 255] << 8) | l[k & 255])\r\n : ((k = (k << 8) | (k >>> 24)), (k = (l[k >>> 24] << 24) | (l[(k >>> 16) & 255] << 16) | (l[(k >>> 8) & 255] << 8) | l[k & 255]), (k ^= H[(j / d) | 0] << 24));\r\n /* tslint:enable:triple-equals */\r\n e[j] = e[j - d] ^ k;\r\n }\r\n c = this._invKeySchedule = [];\r\n for (d = 0; d < a; d++) (j = a - d), (k = d % 4 ? e[j] : e[j - 4]), (c[d] = 4 > d || 4 >= j ? k : b[l[k >>> 24]] ^ x[l[(k >>> 16) & 255]] ^ q[l[(k >>> 8) & 255]] ^ n[l[k & 255]]);\r\n },\r\n encryptBlock: function (a, b) {\r\n this._doCryptBlock(a, b, this._keySchedule, t, r, w, v, l);\r\n },\r\n decryptBlock: function (a, c) {\r\n var d = a[c + 1];\r\n a[c + 1] = a[c + 3];\r\n a[c + 3] = d;\r\n this._doCryptBlock(a, c, this._invKeySchedule, b, x, q, n, s);\r\n d = a[c + 1];\r\n a[c + 1] = a[c + 3];\r\n a[c + 3] = d;\r\n },\r\n _doCryptBlock: function (a, b, c, d, e, j, l, f) {\r\n for (var m = this._nRounds, g = a[b] ^ c[0], h = a[b + 1] ^ c[1], k = a[b + 2] ^ c[2], n = a[b + 3] ^ c[3], p = 4, r = 1; r < m; r++)\r\n var q = d[g >>> 24] ^ e[(h >>> 16) & 255] ^ j[(k >>> 8) & 255] ^ l[n & 255] ^ c[p++],\r\n s = d[h >>> 24] ^ e[(k >>> 16) & 255] ^ j[(n >>> 8) & 255] ^ l[g & 255] ^ c[p++],\r\n t = d[k >>> 24] ^ e[(n >>> 16) & 255] ^ j[(g >>> 8) & 255] ^ l[h & 255] ^ c[p++],\r\n n = d[n >>> 24] ^ e[(g >>> 16) & 255] ^ j[(h >>> 8) & 255] ^ l[k & 255] ^ c[p++],\r\n g = q,\r\n h = s,\r\n k = t;\r\n q = ((f[g >>> 24] << 24) | (f[(h >>> 16) & 255] << 16) | (f[(k >>> 8) & 255] << 8) | f[n & 255]) ^ c[p++];\r\n s = ((f[h >>> 24] << 24) | (f[(k >>> 16) & 255] << 16) | (f[(n >>> 8) & 255] << 8) | f[g & 255]) ^ c[p++];\r\n t = ((f[k >>> 24] << 24) | (f[(n >>> 16) & 255] << 16) | (f[(g >>> 8) & 255] << 8) | f[h & 255]) ^ c[p++];\r\n n = ((f[n >>> 24] << 24) | (f[(g >>> 16) & 255] << 16) | (f[(h >>> 8) & 255] << 8) | f[k & 255]) ^ c[p++];\r\n a[b] = q;\r\n a[b + 1] = s;\r\n a[b + 2] = t;\r\n a[b + 3] = n;\r\n },\r\n keySize: 8\r\n }));\r\n u.AES = p._createHelper(d);\r\n})();\r\n\r\nexport { CryptoJS as dataEncryptionService };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.service(\"debounce\", DebounceService);\r\nDebounceService.$inject = [\"$timeout\"];\r\n\r\nfunction DebounceService($timeout) {\r\n // Public API\r\n // =============================================================================================================\r\n this.event = getDebounceMethod(\"Event\");\r\n this.fn = getDebounceMethod(\"Fn\");\r\n\r\n // Private methods\r\n // =============================================================================================================\r\n var DebounceClass = {\r\n Event: EventDebounceClass,\r\n Fn: FnDebounceClass\r\n };\r\n\r\n function getDebounceMethod(type) {\r\n return function (fn, context, delay) {\r\n if (!fn || typeof fn !== \"function\") {\r\n throw new Error(\"Function undefined or not valid. Please provide a proper function.\");\r\n }\r\n\r\n return new DebounceClass[type](fn, context, delay);\r\n };\r\n }\r\n\r\n function EventDebounceClass(fn, context, delay) {\r\n this.timeout = null;\r\n var self = this;\r\n return {\r\n cancel: function () {\r\n $timeout.cancel(self.timeout);\r\n },\r\n run: function (e) {\r\n $timeout.cancel(self.timeout);\r\n self.timeout = $timeout(fn.bind(context || this, e), delay || 250);\r\n }\r\n };\r\n }\r\n\r\n function FnDebounceClass(fn, context, delay) {\r\n this.timeout = null;\r\n var self = this;\r\n\r\n return {\r\n cancel: function () {\r\n $timeout.cancel(self.timeout);\r\n },\r\n run: function () {\r\n var args = arguments;\r\n this.cancel();\r\n self.timeout = $timeout(function () {\r\n fn.apply(context || this, args);\r\n }, delay || 250);\r\n }\r\n };\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { findFirstInteractiveElement } from \"@pjs/core-ui\";\r\nimport \"./computedStyle.service\";\r\n\r\nangularAMD.service(\"domSearchHelper\", DomSearchHelperService);\r\nDomSearchHelperService.$inject = [\"computedStyleService\"];\r\n\r\nfunction DomSearchHelperService(computedStyleService) {\r\n // Public API\r\n // =============================================================================================================\r\n this.getElementFromDomTree = getElementFromDomTree;\r\n this.getInputElement = getInputElement;\r\n this.elementContains = elementContains;\r\n this.getTabbableElements = getTabbableElements;\r\n this.getFirstTabbableElement = findFirstInteractiveElement;\r\n this.elementIsVisible = elementIsVisible;\r\n\r\n // Private methods\r\n // =============================================================================================================\r\n /**\r\n * @param {Element} element\r\n * @param {Function} matchFn\r\n * @param {Object} limits\r\n * @param {Boolean} checkParentNode\r\n * @return {Element|null}\r\n */\r\n function getElementFromDomTree(element, matchFn, limits, checkParentNode) {\r\n if (!element || !matchFn) {\r\n return null;\r\n }\r\n\r\n while (!matchFn(element)) {\r\n // stop looping, when reach HTML tag or match all limits\r\n if (notValidNode(element, limits) || notValidParentNode(element, limits, checkParentNode)) {\r\n return null;\r\n }\r\n\r\n // select next element in the DOM tree\r\n try {\r\n element = element.parentNode;\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n return element;\r\n }\r\n\r\n /*\r\n * Find check if a node is nested within a node\r\n * Created due to Node.contains only matching elements on Internet Explorer ಠ_ಠ\r\n */\r\n function elementContains(element, child) {\r\n if (element === child) {\r\n return true;\r\n }\r\n if (element.hasChildNodes()) {\r\n for (var i = 0; i < element.childNodes.length; i++) {\r\n if (elementContains(element.childNodes[i], child)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n function notValidNode(node, limits) {\r\n if (!node) {\r\n return false;\r\n }\r\n\r\n var isHTMLTag = node.nodeName === \"HTML\";\r\n if (limits && !isHTMLTag) {\r\n return stopByLimits(node, limits);\r\n } else {\r\n return isHTMLTag;\r\n }\r\n }\r\n\r\n function stopByLimits(node, limits) {\r\n var objectSize = 0;\r\n for (var limit in limits) {\r\n if (limits.hasOwnProperty(limit)) {\r\n objectSize++;\r\n\r\n // make tag name uppercase in case lowercase value been passed\r\n if (limit === \"tagName\") {\r\n limits[limit] = (limits[limit] || \"\").toUpperCase();\r\n }\r\n if (limit.node) {\r\n return node === limit.node;\r\n }\r\n if (node[limit] !== limits[limit]) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return objectSize > 0;\r\n }\r\n\r\n function notValidParentNode(node, limits, checkParentNode) {\r\n if (!checkParentNode || !node || !node.parentNode) {\r\n return;\r\n }\r\n\r\n return notValidNode(node.parentNode, limits);\r\n }\r\n\r\n function elementIsInput(element) {\r\n if (element && element.getAttribute) {\r\n if (\r\n element.getAttribute(\"contenteditable\") === \"true\" ||\r\n element.getAttribute(\"contenteditable\") === \"\" ||\r\n element.tagName.toLowerCase() === \"input\" ||\r\n element.tagName.toLowerCase() === \"textarea\"\r\n ) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function getInputElement(element, limits) {\r\n return getElementFromDomTree(element, elementIsInput, limits);\r\n }\r\n\r\n /**\r\n * @param {Element} container\r\n * @return {Array}\r\n */\r\n function getTabbableElements(container) {\r\n var selector =\r\n 'a[href]:not([tabindex=\"-1\"]), button:not([tabindex=\"-1\"]), textarea:not([tabindex=\"-1\"]), ' +\r\n '[tabindex]:not([tabindex=\"-1\"]), [contentEditable=true]:not([tabindex=\"-1\"]), ' +\r\n 'select:not([tabindex=\"-1\"]), input:not([type=\"hidden\"])';\r\n var elements = container.querySelectorAll(selector);\r\n return Array.prototype.slice.call(elements).filter(function (element) {\r\n return elementIsVisible(element) && element.disabled !== true;\r\n });\r\n }\r\n\r\n function elementIsVisible(element) {\r\n //If the element is display none or dimensions are equal to 0, null will be returned via offsetParent.\r\n if (element.offsetParent === null) {\r\n return false;\r\n }\r\n\r\n var style = computedStyleService.getComputedStyles(element, \"visibility\", false);\r\n return style.visibility !== \"hidden\";\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nfunction ErrorHighlighter($timeout) {\r\n this.$timeout = $timeout;\r\n this.declineShakeTimer = null;\r\n}\r\n\r\nErrorHighlighter.prototype.highlightInvalidInput = function (elementToHighlight, className, persistStyles) {\r\n if (elementToHighlight && elementToHighlight.length === undefined) {\r\n elementToHighlight = angular.element(elementToHighlight);\r\n }\r\n if (this.declineShakeTimer === null) {\r\n this.setElementInvalid(elementToHighlight, className);\r\n if (!persistStyles) {\r\n this.removeInvalidStyling(elementToHighlight, className, 400);\r\n }\r\n }\r\n};\r\n\r\nErrorHighlighter.prototype.removeInvalidStyling = function (element, className, timer) {\r\n if (element && element.length === undefined) {\r\n element = angular.element(element);\r\n }\r\n this.declineShakeTimer = this.$timeout(\r\n function () {\r\n element.removeClass(className);\r\n element.attr(\"aria-invalid\", false);\r\n this.declineShakeTimer = null;\r\n }.bind(this),\r\n timer\r\n );\r\n};\r\n\r\nErrorHighlighter.prototype.setElementInvalid = function (elementToHighlight, className) {\r\n elementToHighlight.removeClass(className).addClass(className);\r\n elementToHighlight.attr(\"aria-invalid\", true);\r\n};\r\n\r\nErrorHighlighter.$inject = [\"$timeout\"];\r\nangularAMD.service(\"errorHighlighter\", ErrorHighlighter);\r\n\r\nexport { ErrorHighlighter as errorHighlighter };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.service(\"EscapeHelper\", EscapeHelper);\r\n\r\nfunction EscapeHelper() {\r\n // Public API\r\n // =============================================================================================================\r\n this.convertHTMLChars = convertHTMLChars;\r\n this.convertRegexChars = convertRegexChars;\r\n\r\n // Private Variables\r\n // =============================================================================================================\r\n var regexStringHelper = {\r\n unescapedRegex: /[\\*\\+\\?\\.\\-\\/\\{\\}\\(\\)\\[\\]\\\\\\^\\$\\|]/g,\r\n escapedMatch: \"\\\\$&\"\r\n };\r\n\r\n var htmlStringHelper = {\r\n unescapedRegex: /[<>\"'&]/g,\r\n escapedCharsDictionary: {\r\n \"<\": \"<\",\r\n \">\": \">\",\r\n '\"': \""\",\r\n \"'\": \"'\",\r\n \"&\": \"&\"\r\n }\r\n };\r\n\r\n // Private Methods\r\n // =============================================================================================================\r\n /**\r\n * Converts HTML characters in a string to their safe encoded entities.\r\n * Allows HTML strings inserted into the DOM to be displayed as the plain text, rather than HTML.\r\n * In most cases using Angulars {{}} or ng-bind will be enough.\r\n * Some scenarios may require a string containing HTML chars to not be rendered as HTML and to be escaped before it is used in something like compile-html\r\n * @param {string} htmlString\r\n * @returns {string}\r\n */\r\n function convertHTMLChars(htmlString) {\r\n return htmlStringHelper.unescapedRegex.test(htmlString) ? htmlString.replace(htmlStringHelper.unescapedRegex, replaceUnescapedHTMLChar) : htmlString;\r\n }\r\n\r\n /**\r\n * @param char\r\n * @returns {*|string}\r\n */\r\n function replaceUnescapedHTMLChar(char) {\r\n return htmlStringHelper.escapedCharsDictionary[char] || \"\";\r\n }\r\n\r\n /**\r\n * Converts regex characters in a string to their escaped versions.\r\n * Can allow Regex objects to be safely created from strings containing characters like | and $, without treating them as special characters\r\n * Example:\r\n * var regexStr = 'Brown | October 21, 2015';\r\n * var searchStr = 'Emmett Brown | October 21, 2015'\r\n * var searchStr2 = ' October 21, 2015';\r\n *\r\n * var safeRegexStr = convertRegexChars(regexStr);\r\n *\r\n * new RegExp(regexStr).test(searchStr) === true\r\n * new RegExp(regexStr).test(searchStr2) === true //Should be false\r\n *\r\n * new RegExp(safeRegexStr).test(searchStr) === true\r\n * new RegExp(safeRegexStr).test(searchStr2) === false\r\n *\r\n * @param {string} regexString\r\n * @returns {string}\r\n */\r\n function convertRegexChars(regexString) {\r\n return regexString.replace(regexStringHelper.unescapedRegex, regexStringHelper.escapedMatch);\r\n }\r\n}\r\n","/**\r\n * @param {String} eventName\r\n * @param {Function} callback\r\n * @param {Boolean=} useCapture\r\n * @param {Object=} context\r\n * @returns {{}}\r\n */\r\nfunction bindEvent(eventName, callback, useCapture, context) {\r\n var element = this || document.documentElement,\r\n handler = {},\r\n eventNameList;\r\n\r\n // validate parameters\r\n useCapture = useCapture || false;\r\n if (eventName && (typeof eventName === \"string\" || eventName instanceof String)) {\r\n eventNameList = eventName.split(\" \");\r\n } else {\r\n throw new Error(\"Please provide a valid event name!\");\r\n }\r\n\r\n if (typeof callback !== \"function\") {\r\n throw new Error(\"Please provide a valid function to run!\");\r\n }\r\n\r\n function handlerFn(event) {\r\n if (context) {\r\n callback.call(context, event);\r\n } else {\r\n callback.call(element, event);\r\n }\r\n }\r\n\r\n var i,\r\n eventNameListLength = eventNameList.length;\r\n\r\n // Add event listener to all events\r\n for (i = 0; i < eventNameListLength; i++) {\r\n element.addEventListener(eventNameList[i], handlerFn, useCapture);\r\n }\r\n\r\n // Public API\r\n handler.unbindEvent = function () {\r\n for (i = 0; i < eventNameListLength; i++) {\r\n element.removeEventListener(eventNameList[i], handlerFn, useCapture);\r\n }\r\n };\r\n handler.target = element;\r\n\r\n return handler;\r\n}\r\n\r\nObject.defineProperty(Element.prototype, \"bindEvent\", {\r\n get: function () {\r\n return bindEvent;\r\n },\r\n configurable: true,\r\n writeable: false\r\n});\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.service(\"EventHelper\", eventHelper);\r\nfunction eventHelper() {\r\n return {\r\n EventThrottler: EventThrottler,\r\n stopEvent: stopEvent\r\n };\r\n}\r\n\r\nfunction stopEvent(event) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n return false;\r\n}\r\n\r\n/**\r\n * @param {Function} eventHandler\r\n * @param {Number} [throttleSpeed]\r\n * @constructor\r\n */\r\nfunction EventThrottler(eventHandler, throttleSpeed) {\r\n this.inProgress = false;\r\n this.eventHandler = eventHandler;\r\n this.throttleSpeed = throttleSpeed || 250;\r\n}\r\n\r\nEventThrottler.prototype.handler = function (e) {\r\n if (this.inProgress === false) {\r\n this.inProgress = true;\r\n this.eventHandler(e);\r\n setTimeout(this.reset.bind(this), this.throttleSpeed);\r\n }\r\n};\r\n\r\nEventThrottler.prototype.reset = function () {\r\n this.inProgress = false;\r\n};\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.factory(\"focusStyleProvider\", function () {\r\n return {\r\n document_el: null,\r\n\r\n getDocumentEl: function () {\r\n if (!this.document_el) {\r\n this.document_el = angular.element(document.documentElement);\r\n }\r\n\r\n return this.document_el;\r\n },\r\n\r\n addFocusStyleClass: function () {\r\n this.getDocumentEl().addClass(\"focus-style\");\r\n },\r\n\r\n bindFocusApplier: function () {\r\n var self = this;\r\n\r\n /**\r\n * Show focus styles only when keyboard being used\r\n */\r\n document.addEventListener(\"mousedown\", function () {\r\n self.getDocumentEl().removeClass(\"focus-style\"); // remove all focus styles from page when user interact with mouse\r\n });\r\n\r\n document.addEventListener(\"keydown\", function (e) {\r\n // add focus styles on a page when user interact with keyboard\r\n if (e.keyCode === 9 || e.altKey) {\r\n self.getDocumentEl().addClass(\"focus-style\");\r\n }\r\n });\r\n }\r\n };\r\n});\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.factory(\"globalEvents\", [\r\n \"$timeout\",\r\n \"$window\",\r\n function ($timeout, $window) {\r\n var globalEvents = {};\r\n\r\n globalEvents.bindEvent = function (target, event, handler) {\r\n target.addEventListener(event, handler, false);\r\n\r\n return function () {\r\n target.removeEventListener(event, handler, false);\r\n };\r\n };\r\n\r\n globalEvents.runAll = function () {\r\n var self = this;\r\n $timeout.cancel(globalEvents.timer);\r\n globalEvents.timer = $timeout(function () {\r\n for (var i = 0; i < self.fnArray.length; i++) {\r\n self.fnArray[i]();\r\n }\r\n }, 250);\r\n };\r\n\r\n globalEvents.onWindowResize = {\r\n fnArray: [],\r\n unbindHandler: null,\r\n\r\n addFn: function (fn) {\r\n var index = this.fnArray.indexOf(fn);\r\n if (index === -1) {\r\n this.fnArray.push(fn);\r\n }\r\n\r\n // Bind event and run all commands\r\n if (this.fnArray.length > 0 && !this.unbindHandler) {\r\n var handler = globalEvents.runAll.bind(this);\r\n this.unbindHandler = globalEvents.bindEvent($window, \"resize\", handler);\r\n }\r\n },\r\n\r\n removeFn: function (fn) {\r\n var index = this.fnArray.indexOf(fn);\r\n if (index > -1) {\r\n this.fnArray.splice(index, 1);\r\n }\r\n\r\n // Unbind event in case there is no functions to run\r\n if (this.fnArray.length === 0 && this.unbindHandler) {\r\n this.unbindHandler();\r\n this.unbindHandler = null;\r\n }\r\n }\r\n };\r\n\r\n return globalEvents;\r\n }\r\n]);\r\n","export function createGuidString() {\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\r\n var r = (Math.random() * 16) | 0,\r\n v = c === \"x\" ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { htmlStringToPlainText } from \"@pjs/security\";\r\nimport { createGuidString } from \"./createGuidString.function\";\r\n\r\n//Nice-ish way to wrap a Class\r\nvar ObjectCollection = (function () {\r\n function ObjectCollection() {\r\n this.items = [];\r\n }\r\n\r\n ObjectCollection.prototype.add = function (item) {\r\n this.items.push(item);\r\n };\r\n\r\n ObjectCollection.prototype.remove = function (property, value) {\r\n for (var i = 0, l = this.items.length, item; i < l; i++) {\r\n item = this.items[i];\r\n if (item[property] === value) {\r\n this.items[i] = null;\r\n this.items.splice(i, 1);\r\n break;\r\n }\r\n }\r\n };\r\n\r\n ObjectCollection.prototype.removeAll = function () {\r\n this.items.length = 0;\r\n };\r\n\r\n ObjectCollection.prototype.exists = function (property, value) {\r\n var index = this.find(property, value);\r\n return index !== -1;\r\n };\r\n\r\n ObjectCollection.prototype.find = function (property, value) {\r\n for (var i = 0, l = this.items.length, item; i < l; i++) {\r\n item = this.items[i];\r\n\r\n if (item[property] === value || (item[property] && value === undefined)) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n\r\n ObjectCollection.prototype.getFromProperty = function (property, value) {\r\n var index = this.find(property, value);\r\n return index !== -1 ? this.items[index] : null;\r\n };\r\n\r\n return ObjectCollection;\r\n})();\r\n\r\nfunction GenericOption(title, key, value, hook) {\r\n this.title = title;\r\n this.key = key;\r\n this.value = value;\r\n this.hook = hook;\r\n}\r\n\r\nfunction IconOption(title, key, value, hook, icon) {\r\n GenericOption.apply(this, arguments);\r\n this.icon = icon;\r\n}\r\n\r\nfunction ActionOption(title, key, value, hook, action) {\r\n GenericOption.apply(this, arguments);\r\n this.action = action;\r\n}\r\n\r\nangularAMD.factory(\"helpers\", [\r\n \"$window\",\r\n function ($window) {\r\n return {\r\n guid: createGuidString,\r\n isGuid: function (id) {\r\n return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(id);\r\n },\r\n\r\n /**\r\n * Here is used approach using ‘YIQ’ colour equation [https://en.wikipedia.org/wiki/YIQ]\r\n * Warning: This should not be used for anything which needs to meet WCAG AA colour contrast. YIQ contrasting checking != AA\r\n * See https://www.w3.org/TR/WCAG20-TECHS/G17.html and https://webaim.org/resources/contrastchecker/ for more info!\r\n * @param hexColour\r\n * @param coefficient - The darker colour is, lesser yiq will be. If some of the colours doesn't give you more contrast, then increase 'coefficient'.\r\n * @returns {*}\r\n */\r\n getContrastYIQ: function (hexColour, coefficient) {\r\n var regex = /\\w+/;\r\n coefficient = coefficient || 128;\r\n hexColour = hexColour.match(regex)[0];\r\n\r\n if (hexColour === \"transparent\") {\r\n return \"black\";\r\n }\r\n\r\n var r = parseInt(hexColour.substr(0, 2), 16);\r\n var g = parseInt(hexColour.substr(2, 2), 16);\r\n var b = parseInt(hexColour.substr(4, 2), 16);\r\n var yiq = (r * 299 + g * 587 + b * 114) / 1000;\r\n\r\n return yiq >= coefficient ? \"black\" : \"white\";\r\n },\r\n\r\n fileExists: function (file_url) {\r\n var http = new XMLHttpRequest();\r\n http.open(\"HEAD\", file_url, false);\r\n http.send();\r\n\r\n return http.status !== 404;\r\n },\r\n\r\n testIfClickedOutsideElement: function (e, el) {\r\n e = e || $window.event;\r\n var target = e.target;\r\n\r\n if (!el || !el.contains) {\r\n return false;\r\n }\r\n\r\n return !el.contains(target);\r\n },\r\n\r\n isClickedOutsideElement: function (e) {\r\n var argument;\r\n\r\n // loop through each element\r\n for (var i = 1; i < arguments.length; i++) {\r\n argument = arguments[i];\r\n if (argument && !this.testIfClickedOutsideElement(e.originalEvent || e, argument.length ? argument[0] : argument)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n randomString: function (length, chars) {\r\n chars = chars || \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\n var result = \"\";\r\n for (var i = length; i > 0; --i) {\r\n result += chars[Math.floor(Math.random() * chars.length)];\r\n }\r\n return result;\r\n },\r\n\r\n /**\r\n * @param {string|null|undefined} htmlString\r\n */\r\n htmlToPlain: (htmlString) => {\r\n if (htmlString === null || htmlString === undefined) {\r\n return \"\";\r\n }\r\n\r\n return htmlStringToPlainText(htmlString);\r\n },\r\n\r\n setToolbarClosed: function (open) {\r\n var documentEl = angular.element(document.documentElement);\r\n\r\n if (open) {\r\n documentEl.removeClass(\"toolbar-closed\");\r\n } else {\r\n documentEl.addClass(\"toolbar-closed\");\r\n }\r\n },\r\n\r\n //Thorough Class inheritance - helpers.extendClass(myClass, parentClass); In constructor parentClass.call(this);\r\n extendClass: function (child, parent) {\r\n //Copy properties over from parent\r\n for (var property in parent) {\r\n if (parent.hasOwnProperty(property)) {\r\n child[property] = parent[property];\r\n }\r\n }\r\n\r\n child.prototype = Object.create(parent.prototype);\r\n },\r\n\r\n isEmpty(value) {\r\n return !/\\S/g.test(this.htmlToPlain(value));\r\n },\r\n\r\n isNotEmptyArray: function (value) {\r\n return value && value.length > 0;\r\n },\r\n\r\n //Checks to see if an Object and its values are not all undefined, null or ''\r\n isNotEmptyObject: function (obj) {\r\n if (!obj) {\r\n return false;\r\n }\r\n\r\n var keys = Object.keys(obj),\r\n isNotEmpty = false,\r\n emptyValues = [undefined, null, \"\"];\r\n\r\n for (var i = 0, l = keys.length; i < l; i++) {\r\n if (emptyValues.indexOf(obj[keys[i]]) === -1) {\r\n isNotEmpty = true;\r\n break;\r\n }\r\n }\r\n return isNotEmpty;\r\n },\r\n\r\n createIconOption: function (title, key, value, icon, hook) {\r\n return new IconOption(title, key, value, hook, icon);\r\n },\r\n\r\n createActionOption: function (title, action, key, value, hook) {\r\n return new ActionOption(title, key, value, hook, action);\r\n },\r\n\r\n getValueFromObjectPath: function (obj, stringPath) {\r\n var path = stringPath.split(\".\"),\r\n value = obj;\r\n\r\n for (var i = 0, l = path.length; i < l; i++) {\r\n value = value[path[i]];\r\n if (!value) {\r\n return null;\r\n }\r\n }\r\n\r\n return value;\r\n },\r\n\r\n getScrollPositionForNestedElement: function (nestedElem, parentElem) {\r\n return nestedElem.getBoundingClientRect().bottom - parentElem.getBoundingClientRect().bottom;\r\n },\r\n\r\n convertStringBoolean: function (value) {\r\n return value === true || /^true$/i.test(value);\r\n },\r\n\r\n escapeRegexChars: function (value) {\r\n return value.replace(/[\\*\\+\\?\\.\\-\\/\\{\\}\\(\\)\\[\\]\\\\\\^\\$\\|]/g, \"\\\\$&\");\r\n },\r\n\r\n addToQueryString: function (url, queryStringPartial) {\r\n var key = queryStringPartial.substring(0, queryStringPartial.indexOf(\"=\"));\r\n var match = new RegExp(\"(&|\\\\?)\" + key, \"i\").exec(url);\r\n var delimiter = \"\";\r\n\r\n if (match) {\r\n var newUrl = url;\r\n var partial = newUrl.substring(match.index);\r\n var endpoint = /&|$/.exec(partial).index;\r\n delimiter = /\\?/.test(partial) ? \"?\" : \"&\";\r\n\r\n return newUrl.substring(0, match.index) + delimiter + queryStringPartial + newUrl.substring(match.index + endpoint);\r\n } else {\r\n delimiter = /\\?/.test(url) ? \"&\" : \"?\";\r\n return url + delimiter + queryStringPartial;\r\n }\r\n },\r\n\r\n /**\r\n * @param {Number} num\r\n * @param {Array} values\r\n * @return {Number}\r\n */\r\n getNearestNumber: function (num, values) {\r\n if (values.length === 0) {\r\n return Number.NaN;\r\n }\r\n\r\n var nearest = values[0];\r\n for (var i = 1, l = values.length; i < l; i++) {\r\n if (Math.abs(num - values[i]) < Math.abs(num - nearest)) {\r\n nearest = values[i];\r\n }\r\n }\r\n\r\n return nearest;\r\n },\r\n\r\n /**s\r\n * @return {{width: Number, height: Number, dprWidth: Number, dprHeight: Number}}\r\n */\r\n getScreenSizes: function () {\r\n var width = $window.screen.availWidth;\r\n var height = $window.screen.availHeight;\r\n var dpr = $window.devicePixelRatio;\r\n\r\n return {\r\n width: width,\r\n height: height,\r\n dprWidth: Math.floor(width * dpr),\r\n dprHeight: Math.floor(height * dpr)\r\n };\r\n },\r\n\r\n /**\r\n *\r\n * @param {object} startingContext\r\n * @param {string} objPath\r\n * @return {null}\r\n */\r\n getCallbackFromPath: function (startingContext, objPath) {\r\n var path = objPath.split(\".\");\r\n var obj = startingContext;\r\n var context = null;\r\n for (var i = 0, l = path.length; i < l; i++) {\r\n if (obj[path[i]] !== undefined) {\r\n context = obj;\r\n obj = obj[path[i]];\r\n }\r\n }\r\n\r\n return typeof obj === \"function\" ? obj.bind(context) : null;\r\n },\r\n\r\n areObjectsEqual: function (ob1, ob2) {\r\n return JSON.stringify(ob1) === JSON.stringify(ob2);\r\n },\r\n\r\n zeroIfNaN: function (val) {\r\n val = val === null ? \"0\" : val;\r\n if (isNaN(val)) {\r\n val = \"0\";\r\n }\r\n return val;\r\n },\r\n\r\n formatTime: function (totalMinutes) {\r\n var hours = null,\r\n minutes = null;\r\n totalMinutes = parseFloat(totalMinutes);\r\n if (!isNaN(totalMinutes)) {\r\n hours = Math.floor(totalMinutes / 60);\r\n minutes = totalMinutes % 60;\r\n }\r\n return { hours: hours, minutes: minutes };\r\n },\r\n\r\n chunkArray: (array, chunkSize) => {\r\n const chunked = [];\r\n for (let i = 0; i < array.length; i += chunkSize) {\r\n chunked.push(array.slice(i, i + chunkSize));\r\n }\r\n\r\n return chunked;\r\n },\r\n\r\n //Class rather the a create new function to allow it to be easily extended\r\n ObjectCollection: ObjectCollection\r\n };\r\n }\r\n]);\r\n","import { i18nManager } from \"@pjs/i18n\";\r\n\r\nconst i18n = angular.module(\"i18n\", [\"ng\"]);\r\ni18n.config([\r\n \"$sceDelegateProvider\",\r\n function ($sceDelegateProvider) {\r\n var whiteListUrlShared = window.config.getSharedComponentBaseUrl() + \"**\";\r\n\r\n $sceDelegateProvider.resourceUrlWhitelist([\r\n // Allow same origin resource loads.\r\n \"self\",\r\n // Allow loading from our assets domain. Notice the difference between * and **.\r\n whiteListUrlShared\r\n ]);\r\n }\r\n]);\r\n\r\ni18n.service(\"i18nHelper\", I18nHelper);\r\nI18nHelper.$inject = [\"$http\"];\r\n\r\nfunction I18nHelper($http) {\r\n // Public API\r\n // =============================================================================================================\r\n this.getLanguageData = getLanguageData;\r\n this.getLanguageContent = getLanguageContent;\r\n this.setCacheBuster = setCacheBuster;\r\n this.fetchDictionary = fetchDictionary;\r\n\r\n // Private variables\r\n // =============================================================================================================\r\n let cacheBuster = \"\";\r\n\r\n // Private methods\r\n\r\n // =============================================================================================================\r\n function getLanguageForUser() {\r\n $http.defaults.withCredentials = true;\r\n return $http.get(window.config.getApiBaseUrl() + \"SharedMenu/GetLoggedInUserData\").then(function (userData) {\r\n return userData.data.Language || \"en-GB\";\r\n });\r\n }\r\n\r\n function fetchLanguageFile(path, lang, bail) {\r\n const url = window.config.getSharedComponentBaseUrl() + path + lang + \".json?\" + cacheBuster;\r\n\r\n $http.defaults.withCredentials = false;\r\n return $http\r\n .get(url)\r\n .then(function (file) {\r\n return file.data;\r\n })\r\n .catch(function () {\r\n if (bail) {\r\n throw new Error(\"Failed to load file located at \" + path + \", for \" + lang + \" language\");\r\n }\r\n\r\n return fetchLanguageFile(path, \"en-GB\", true);\r\n });\r\n }\r\n\r\n function getLanguageData() {\r\n let dictionaries = {\r\n main: null,\r\n fallback: null\r\n };\r\n\r\n let mainLang = \"en-GB\";\r\n\r\n return getLanguageForUser()\r\n .then((lang) => {\r\n mainLang = lang;\r\n i18nManager.setDefaultLanguage(\"en-GB\").setLanguage(lang);\r\n\r\n return i18nManager.load();\r\n })\r\n .then(() => {\r\n return fetchDictionary(mainLang).then(function (fetchedLang) {\r\n dictionaries.main = fetchedLang;\r\n\r\n if (fetchedLang.lang_attr.toLowerCase() !== \"en-gb\") {\r\n return fetchDictionary(\"en-GB\").then(function (langData) {\r\n dictionaries.fallback = langData;\r\n\r\n return dictionaries;\r\n });\r\n } else {\r\n return dictionaries;\r\n }\r\n });\r\n });\r\n }\r\n\r\n function fetchDictionary(lang) {\r\n return fetchLanguageFile(\"multiLanguageService/languages/\", lang);\r\n }\r\n\r\n function getLanguageContent(filePath) {\r\n return getLanguageForUser().then(function (lang) {\r\n return fetchLanguageFile(filePath, lang);\r\n });\r\n }\r\n\r\n function setCacheBuster(cacheBusterValue) {\r\n cacheBuster = cacheBusterValue;\r\n }\r\n}\r\n","/**\r\n * A class used to run data migrators where appropriate.\r\n */\r\nexport class MigratorRunner {\r\n constructor() {\r\n this._migrators = [];\r\n }\r\n\r\n /**\r\n * Register the provided migrator to be run provided its conditions are met.\r\n * @param migrator - The data migrator being registered.\r\n * @returns {void}\r\n */\r\n registerMigrator(migrator) {\r\n this._migrators.push(migrator);\r\n }\r\n\r\n /**\r\n * Iterate over the registered migrators, and run them if their conditions are met.\r\n * @param {string} assetId - The short Id of the current asset\r\n * @param {Object} assetDto - The dto representing the current asset\r\n * @param {Object} localStorageData - Changes to the current asset present in local storage\r\n * @returns {Promise} - Promise that resolves to the result of the last migrator to run\r\n */\r\n\r\n async execute(assetId, assetDto, localStorageData) {\r\n if (assetDto === null || localStorageData === null) {\r\n return localStorageData;\r\n }\r\n\r\n let workingData = localStorageData;\r\n for (const migrator of this._migrators) {\r\n if (migrator.isRequired(assetDto, workingData)) {\r\n workingData = await migrator.run(assetId, workingData);\r\n }\r\n }\r\n\r\n return workingData;\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { MigratorRunner } from \"./migratorRunner\";\r\nimport \"../../assetEndpointService/assetEndpoint.service\";\r\n\r\nclass MigratorRunnerProvider {\r\n constructor() {\r\n this._migrators = [];\r\n this._runner = new MigratorRunner();\r\n this.$get = (...migrators) => {\r\n migrators.forEach((migrator) => this._runner.registerMigrator(migrator));\r\n return this._runner;\r\n };\r\n this.$get.$inject = [];\r\n }\r\n\r\n /**\r\n * Sets the list of migrators to register with the runner.\r\n * @param {string} migratorToken - The AngularJS token used to inject the migrator service.\r\n * @returns {void}\r\n */\r\n registerMigrators(migratorToken) {\r\n this.$get.$inject.push(migratorToken);\r\n }\r\n}\r\n\r\nangularAMD.provider(\"migratorRunner\", MigratorRunnerProvider);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.directive(\"onRepeatEnd\", [\r\n \"$timeout\",\r\n function ($timeout) {\r\n return {\r\n scope: true,\r\n restrict: \"A\",\r\n\r\n link: function (scope, _, attrs) {\r\n if (scope.$last) {\r\n var fnName = attrs.onRepeatEnd || \"init\";\r\n\r\n var properties = fnName.split(\".\");\r\n var value = scope;\r\n var context = null;\r\n\r\n for (var i = 0; i < properties.length; i++) {\r\n context = value;\r\n value = value[properties[i]];\r\n\r\n if (!value) {\r\n return;\r\n }\r\n }\r\n\r\n $timeout(value.bind(context));\r\n }\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../datePicker/datePickerHelper\";\r\nimport \"../multiLanguageService/multiLanguageService\";\r\n\r\nangularAMD.filter(\"pebbleDate\", PebbleDateWrapper);\r\nPebbleDateWrapper.$inject = [\"$filter\", \"datePickerHelper\", \"multiLanguageService\"];\r\n\r\nfunction PebbleDateWrapper($filter, datePickerHelper, multiLanguageService) {\r\n var lang = multiLanguageService.lang_attr;\r\n var standardDateFilterFn = $filter(\"date\");\r\n\r\n //If using API pre-converted localised time pass true for usePreConvertedTime\r\n function pebbleDate(date, layout, usePreConvertedTime) {\r\n var formatter = PebbleDateFormats[layout] || PebbleDateFormats.default;\r\n return formatter(date, usePreConvertedTime);\r\n }\r\n\r\n function updateLanguage(dateAsString, normalizedDate, replaceList) {\r\n // only translate if not english and have stuff to replace\r\n if (dateAsString && normalizedDate && replaceList && replaceList.length > 0 && lang !== \"en-GB\" && lang !== \"en-US\" && lang !== \"en-NZ\" && lang !== \"en-AU\") {\r\n replaceList.forEach(function (replace) {\r\n switch (replace) {\r\n case \"EEEE\":\r\n dateAsString = longDayLanguage(normalizedDate, dateAsString);\r\n break;\r\n case \"EEE\":\r\n dateAsString = shortDayLanguage(normalizedDate, dateAsString);\r\n break;\r\n case \"MMMM\":\r\n dateAsString = longMonthLanguage(normalizedDate, dateAsString);\r\n break;\r\n case \"MMM\":\r\n dateAsString = shortMonthLanguage(normalizedDate, dateAsString);\r\n break;\r\n }\r\n });\r\n }\r\n\r\n return dateAsString;\r\n }\r\n\r\n function findAndReplace(findIn, find, replaceWith) {\r\n return findIn ? findIn.replace(find, replaceWith) : findIn;\r\n }\r\n\r\n function longDayLanguage(normalizedDate, dateAsString) {\r\n switch (standardDateFilterFn(normalizedDate, \"EEEE\")) {\r\n case \"Monday\":\r\n return findAndReplace(dateAsString, \"Monday\", multiLanguageService.getString(\"builder.datePicker.weekdays.mon.full\"));\r\n case \"Tuesday\":\r\n return findAndReplace(dateAsString, \"Tuesday\", multiLanguageService.getString(\"builder.datePicker.weekdays.tue.full\"));\r\n case \"Wednesday\":\r\n return findAndReplace(dateAsString, \"Wednesday\", multiLanguageService.getString(\"builder.datePicker.weekdays.wed.full\"));\r\n case \"Thursday\":\r\n return findAndReplace(dateAsString, \"Thursday\", multiLanguageService.getString(\"builder.datePicker.weekdays.thu.full\"));\r\n case \"Friday\":\r\n return findAndReplace(dateAsString, \"Friday\", multiLanguageService.getString(\"builder.datePicker.weekdays.fri.full\"));\r\n case \"Saturday\":\r\n return findAndReplace(dateAsString, \"Saturday\", multiLanguageService.getString(\"builder.datePicker.weekdays.sat.full\"));\r\n case \"Sunday\":\r\n return findAndReplace(dateAsString, \"Sunday\", multiLanguageService.getString(\"builder.datePicker.weekdays.sun.full\"));\r\n }\r\n return dateAsString;\r\n }\r\n\r\n function shortDayLanguage(normalizedDate, dateAsString) {\r\n switch (standardDateFilterFn(normalizedDate, \"EEE\")) {\r\n case \"Mon\":\r\n return findAndReplace(dateAsString, \"Mon\", multiLanguageService.getString(\"builder.datePicker.weekdays.mon.short\"));\r\n case \"Tue\":\r\n return findAndReplace(dateAsString, \"Tue\", multiLanguageService.getString(\"builder.datePicker.weekdays.tue.short\"));\r\n case \"Wed\":\r\n return findAndReplace(dateAsString, \"Wed\", multiLanguageService.getString(\"builder.datePicker.weekdays.wed.short\"));\r\n case \"Thu\":\r\n return findAndReplace(dateAsString, \"Thu\", multiLanguageService.getString(\"builder.datePicker.weekdays.thu.short\"));\r\n case \"Fri\":\r\n return findAndReplace(dateAsString, \"Fri\", multiLanguageService.getString(\"builder.datePicker.weekdays.fri.short\"));\r\n case \"Sat\":\r\n return findAndReplace(dateAsString, \"Sat\", multiLanguageService.getString(\"builder.datePicker.weekdays.sat.short\"));\r\n case \"Sun\":\r\n return findAndReplace(dateAsString, \"Sun\", multiLanguageService.getString(\"builder.datePicker.weekdays.sun.short\"));\r\n }\r\n return dateAsString;\r\n }\r\n\r\n function longMonthLanguage(normalizedDate, dateAsString) {\r\n switch (standardDateFilterFn(normalizedDate, \"MMMM\")) {\r\n case \"January\":\r\n return findAndReplace(dateAsString, \"January\", multiLanguageService.getString(\"builder.datePicker.months.jan.full\"));\r\n case \"February\":\r\n return findAndReplace(dateAsString, \"February\", multiLanguageService.getString(\"builder.datePicker.months.feb.full\"));\r\n case \"March\":\r\n return findAndReplace(dateAsString, \"March\", multiLanguageService.getString(\"builder.datePicker.months.mar.full\"));\r\n case \"April\":\r\n return findAndReplace(dateAsString, \"April\", multiLanguageService.getString(\"builder.datePicker.months.apr.full\"));\r\n case \"May\":\r\n return findAndReplace(dateAsString, \"May\", multiLanguageService.getString(\"builder.datePicker.months.may.full\"));\r\n case \"June\":\r\n return findAndReplace(dateAsString, \"June\", multiLanguageService.getString(\"builder.datePicker.months.jun.full\"));\r\n case \"July\":\r\n return findAndReplace(dateAsString, \"July\", multiLanguageService.getString(\"builder.datePicker.months.jul.full\"));\r\n case \"August\":\r\n return findAndReplace(dateAsString, \"August\", multiLanguageService.getString(\"builder.datePicker.months.aug.full\"));\r\n case \"September\":\r\n return findAndReplace(dateAsString, \"September\", multiLanguageService.getString(\"builder.datePicker.months.sep.full\"));\r\n case \"October\":\r\n return findAndReplace(dateAsString, \"October\", multiLanguageService.getString(\"builder.datePicker.months.oct.full\"));\r\n case \"November\":\r\n return findAndReplace(dateAsString, \"November\", multiLanguageService.getString(\"builder.datePicker.months.nov.full\"));\r\n case \"December\":\r\n return findAndReplace(dateAsString, \"December\", multiLanguageService.getString(\"builder.datePicker.months.dec.full\"));\r\n }\r\n return dateAsString;\r\n }\r\n\r\n function shortMonthLanguage(normalizedDate, dateAsString) {\r\n switch (standardDateFilterFn(normalizedDate, \"MMM\")) {\r\n case \"Jan\":\r\n return findAndReplace(dateAsString, \"Jan\", multiLanguageService.getString(\"builder.datePicker.months.jan.short\"));\r\n case \"Feb\":\r\n return findAndReplace(dateAsString, \"Feb\", multiLanguageService.getString(\"builder.datePicker.months.feb.short\"));\r\n case \"Mar\":\r\n return findAndReplace(dateAsString, \"Mar\", multiLanguageService.getString(\"builder.datePicker.months.mar.short\"));\r\n case \"Apr\":\r\n return findAndReplace(dateAsString, \"Apr\", multiLanguageService.getString(\"builder.datePicker.months.apr.short\"));\r\n case \"May\":\r\n return findAndReplace(dateAsString, \"May\", multiLanguageService.getString(\"builder.datePicker.months.may.short\"));\r\n case \"Jun\":\r\n return findAndReplace(dateAsString, \"Jun\", multiLanguageService.getString(\"builder.datePicker.months.jun.short\"));\r\n case \"Jul\":\r\n return findAndReplace(dateAsString, \"Jul\", multiLanguageService.getString(\"builder.datePicker.months.jul.short\"));\r\n case \"Aug\":\r\n return findAndReplace(dateAsString, \"Aug\", multiLanguageService.getString(\"builder.datePicker.months.aug.short\"));\r\n case \"Sep\":\r\n return findAndReplace(dateAsString, \"Sep\", multiLanguageService.getString(\"builder.datePicker.months.sep.short\"));\r\n case \"Oct\":\r\n return findAndReplace(dateAsString, \"Oct\", multiLanguageService.getString(\"builder.datePicker.months.oct.short\"));\r\n case \"Nov\":\r\n return findAndReplace(dateAsString, \"Nov\", multiLanguageService.getString(\"builder.datePicker.months.nov.short\"));\r\n case \"Dec\":\r\n return findAndReplace(dateAsString, \"Dec\", multiLanguageService.getString(\"builder.datePicker.months.dec.short\"));\r\n }\r\n return dateAsString;\r\n }\r\n\r\n function timeDifference(dateTime) {\r\n var current = new Date();\r\n var previous = Date.parse(dateTime);\r\n\r\n var msPerMinute = 60 * 1000;\r\n var msPerHour = msPerMinute * 60;\r\n var msPerDay = msPerHour * 24;\r\n var msPerMonth = msPerDay * 30;\r\n var msPerYear = msPerDay * 365;\r\n\r\n var elapsed = current - previous;\r\n\r\n if (elapsed < msPerMinute) {\r\n return multiLanguageService.getString(\"pebble_date.number_second_ago\", {\r\n count: Math.round(elapsed / 1000)\r\n });\r\n }\r\n\r\n if (elapsed < msPerHour) {\r\n return multiLanguageService.getString(\"pebble_date.number_minute_ago\", {\r\n count: Math.round(elapsed / msPerMinute)\r\n });\r\n }\r\n\r\n if (elapsed < msPerDay) {\r\n return multiLanguageService.getString(\"pebble_date.number_hour_ago\", {\r\n count: Math.round(elapsed / msPerHour)\r\n });\r\n }\r\n\r\n if (elapsed < msPerMonth) {\r\n return multiLanguageService.getString(\"pebble_date.number_day_ago\", {\r\n count: Math.round(elapsed / msPerDay)\r\n });\r\n }\r\n\r\n if (elapsed < msPerYear) {\r\n return multiLanguageService.getString(\"pebble_date.number_month_ago\", {\r\n count: Math.round(elapsed / msPerMonth)\r\n });\r\n }\r\n\r\n return multiLanguageService.getString(\"pebble_date.number_year_ago\", {\r\n count: Math.round(elapsed / msPerYear)\r\n });\r\n }\r\n\r\n //Formats - Access via literal string notation (string key).\r\n var PebbleDateFormats = {\r\n relativeTime: function (date) {\r\n return timeDifference(date);\r\n },\r\n timeOnly: function (date, usePreConvertedTime) {\r\n var time = standardDateFilterFn(datePickerHelper.normalizeDate(date, usePreConvertedTime), \"HH:mm\");\r\n if (time === \"23:59\") {\r\n return multiLanguageService.getString(\"labels.midnight\");\r\n } else if (time === \"12:00\") {\r\n return multiLanguageService.getString(\"labels.midday\");\r\n } else {\r\n return time;\r\n }\r\n },\r\n\r\n timeWithSecondsOnly: function (date, usePreConvertedTime) {\r\n var time = standardDateFilterFn(datePickerHelper.normalizeDate(date, usePreConvertedTime), \"HH:mm:ss\");\r\n if (time === \"23:59:59\") {\r\n return multiLanguageService.getString(\"labels.midnight\");\r\n } else if (time === \"12:00:00\") {\r\n return multiLanguageService.getString(\"labels.midday\");\r\n } else {\r\n return time;\r\n }\r\n },\r\n\r\n yearOnly: function (date, usePreConvertedTime) {\r\n return standardDateFilterFn(datePickerHelper.normalizeDate(date, usePreConvertedTime), \"yyyy\");\r\n },\r\n\r\n withDay: function (date, usePreConvertedTime) {\r\n var normalizedDate = datePickerHelper.normalizeDate(date, usePreConvertedTime);\r\n return updateLanguage(standardDateFilterFn(normalizedDate, \"EEEE dd-MMM-yyyy\"), normalizedDate, [\"EEEE\", \"MMM\"]);\r\n },\r\n\r\n contextual: function (date, usePreConvertedTime) {\r\n var myDate = datePickerHelper.normalizeDate(date, usePreConvertedTime);\r\n var today = datePickerHelper.normalizeDate(new Date(), usePreConvertedTime);\r\n\r\n if (myDate.setHours(0, 0, 0, 0) === today.setHours(0, 0, 0, 0)) {\r\n return standardDateFilterFn(datePickerHelper.normalizeDate(date, usePreConvertedTime), \"HH:mm\");\r\n }\r\n\r\n var normalizedDate = datePickerHelper.normalizeDate(date, usePreConvertedTime);\r\n return updateLanguage(standardDateFilterFn(normalizedDate, \"dd-MMM\"), normalizedDate, [\"MMM\"]);\r\n },\r\n\r\n dateAndMonth: function (date, usePreConvertedTime) {\r\n var normalizedDate = datePickerHelper.normalizeDate(date, usePreConvertedTime);\r\n return updateLanguage(standardDateFilterFn(normalizedDate, \"dd MMMM yyyy\"), normalizedDate, [\"MMMM\"]);\r\n },\r\n\r\n monthAndYear: function (date, usePreConvertedTime) {\r\n var normalizedDate = datePickerHelper.normalizeDate(date, usePreConvertedTime);\r\n return updateLanguage(standardDateFilterFn(normalizedDate, \"MMMM yyyy\"), normalizedDate, [\"MMMM\"]);\r\n },\r\n\r\n fullDateAndTime: function (date, usePreConvertedTime) {\r\n var normalizedDate = datePickerHelper.normalizeDate(date, usePreConvertedTime);\r\n return updateLanguage(standardDateFilterFn(normalizedDate, \"EEEE, dd MMMM yyyy HH:mm:ss\"), normalizedDate, [\"EEEE\", \"MMMM\"]);\r\n },\r\n\r\n fullDateAndTimeWithoutSeconds: function (date, usePreConvertedTime) {\r\n var normalizedDate = datePickerHelper.normalizeDate(date, usePreConvertedTime);\r\n return updateLanguage(standardDateFilterFn(normalizedDate, \"EEEE, dd MMMM yyyy HH:mm\"), normalizedDate, [\"EEEE\", \"MMMM\"]);\r\n },\r\n\r\n default: function (date, usePreConvertedTime) {\r\n var normalizedDate = datePickerHelper.normalizeDate(date, usePreConvertedTime);\r\n return updateLanguage(standardDateFilterFn(normalizedDate, \"dd-MMM-yyyy\"), normalizedDate, [\"MMM\"]);\r\n }\r\n };\r\n\r\n return pebbleDate;\r\n}\r\n","const _moduleExport = {\r\n MAX_DOUBLE_LENGTH: 15\r\n};\r\nexport { _moduleExport as DATA_TYPES };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\n// tslint:disable-next-line:no-empty\r\nfunction RegexHelper() {}\r\n\r\nRegexHelper.prototype.decimalOrInt = function (decimalPlaces, min) {\r\n var optionalMinusSymbol = min !== undefined && min >= 0 ? \"\" : \"-?\";\r\n if (decimalPlaces > 0) {\r\n return new RegExp(\"^\" + optionalMinusSymbol + \"([\\\\d]*)\\\\.?([\\\\d]{1,\" + decimalPlaces + \"})?$\");\r\n }\r\n return new RegExp(\"^\" + optionalMinusSymbol + \"[0-9]*$\");\r\n};\r\n\r\nRegexHelper.$inject = [];\r\nangularAMD.service(\"regexHelper\", RegexHelper);\r\n\r\nexport { RegexHelper as regexHelper };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { DATA_TYPES } from \"../constants/dataTypes.constants\";\r\nimport \"./errorHighlighter.service\";\r\nimport \"./regexHelper.service\";\r\nimport \"../utilities/typeCheck.service\";\r\n\r\nRestrictDecimals.$inject = [\"errorHighlighter\", \"regexHelper\"];\r\n\r\nvar checks = [isDecimalOrInt, isNotTooLong, isBelowMax, isAboveMin];\r\n\r\nfunction allChecksSucceed(config) {\r\n return checks.every(function (check) {\r\n return check(config);\r\n });\r\n}\r\n\r\nfunction isDecimalOrInt(config) {\r\n return config.regex.test(config.val);\r\n}\r\n\r\nfunction isNotTooLong(config) {\r\n const maxLength = config.maxLength || DATA_TYPES.MAX_DOUBLE_LENGTH;\r\n return config.val.length <= maxLength;\r\n}\r\n\r\nfunction isAboveMin(config) {\r\n return Number(config.val) >= config.min;\r\n}\r\n\r\nfunction isBelowMax(config) {\r\n return Number(config.val) <= config.max;\r\n}\r\n\r\nfunction RestrictDecimals(errorHighlighter, regexHelper) {\r\n return {\r\n restrict: \"A\",\r\n scope: {\r\n restrictDecimals: \"@restrictDecimals\",\r\n model: \"=ngModel\",\r\n min: \"@min\",\r\n max: \"@?\",\r\n shouldShake: \" {\r\n if (val && !allChecksSucceed({ val: val, min: minValue, max: maxValue, regex: regex, maxLength: scope.maxLength })) {\r\n element.val(lastAcceptedValue);\r\n if (scope.shouldShake !== false) {\r\n errorHighlighter.highlightInvalidInput(element, \"decline-shake\");\r\n }\r\n ngModel.$setViewValue(lastAcceptedValue);\r\n if (scope.errorCallback !== undefined) {\r\n scope.errorCallback({ lastValue: lastAcceptedValue });\r\n }\r\n return lastAcceptedValue;\r\n }\r\n\r\n lastAcceptedValue = val;\r\n return val;\r\n });\r\n }\r\n };\r\n}\r\n\r\nangularAMD.directive(\"restrictDecimals\", RestrictDecimals);\r\n\r\nexport { RestrictDecimals as restrictDecimals };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nexport class ScrollToElement {\r\n constructor($location, $routeParams) {\r\n this._$location = $location;\r\n this._$routeParams = $routeParams;\r\n\r\n this._callbacks = new Set();\r\n this._cachedElement = \"\";\r\n this._cachedAssetId = \"\";\r\n this._cachedPageId = \"\";\r\n }\r\n\r\n subscribe(callback) {\r\n if (!this._callbacks.has(callback)) {\r\n this._callbacks.add(callback);\r\n }\r\n\r\n if (this._cachedElement !== \"\") {\r\n if (this._cachedAssetId !== \"\") {\r\n this.goToElementWithAssetId(this._cachedElement, this._cachedAssetId);\r\n } else if (this._cachedPageId !== \"\") {\r\n this.goToElementWithPageId(this._cachedElement, this._cachedPageId);\r\n } else {\r\n this.goToElement(this._cachedElement);\r\n }\r\n }\r\n }\r\n\r\n unsubscribe(callback) {\r\n this._callbacks.delete(callback);\r\n }\r\n\r\n goToElement(elementId) {\r\n this._triggerCallbacks(elementId);\r\n }\r\n\r\n goToElementWithPageId(elementId, pageId) {\r\n if (pageId === this._$location.search().pageId) {\r\n this._triggerCallbacks(elementId);\r\n } else {\r\n this._cachedElement = elementId;\r\n this._cachedPageId = pageId;\r\n }\r\n }\r\n\r\n goToElementWithAssetId(elementId, assetId) {\r\n if (assetId === this._$location.search().assetId || this._$routeParams.assetId === assetId) {\r\n this._triggerCallbacks(elementId);\r\n } else {\r\n this._cachedElement = elementId;\r\n this._cachedAssetId = assetId;\r\n }\r\n }\r\n\r\n _triggerCallbacks(elementId) {\r\n for (const callback of this._callbacks) {\r\n callback(elementId);\r\n }\r\n\r\n this._cachedElement = \"\";\r\n this._cachedPageId = \"\";\r\n this._cachedAssetId = \"\";\r\n }\r\n}\r\n\r\nScrollToElement.$inject = [\"$location\", \"$routeParams\"];\r\nangularAMD.service(\"scrollToElementService\", ScrollToElement);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../userAgent/userAgent.service\";\r\n\r\nangularAMD.service(\"shameOnBrowser\", shameOnBrowser);\r\n\r\nshameOnBrowser.$inject = [\"$timeout\", \"UserAgentService\"];\r\n\r\nfunction shameOnBrowser($timeout, UserAgentService) {\r\n // Public API\r\n this.forceElementRepaint = forceElementRepaint;\r\n this.forceWidthRepaint = forceWidthRepaint;\r\n this.forceElementRepaintLight = forceElementRepaintLight;\r\n\r\n // Local methods\r\n function forceElementRepaint(element, callback, timeout) {\r\n if (!element) {\r\n return;\r\n }\r\n\r\n // apply this to trigger browser repaint (http://csstriggers.com/)\r\n // this needed to make browsers recalculate width on max-width element\r\n // this is due to buggy webkit renderer\r\n element.style.boxShadow = \"0 0 0 0 transparent\";\r\n\r\n if (timeout === void 0) {\r\n if (UserAgentService.safari) {\r\n timeout = 350;\r\n } else if (UserAgentService.ios) {\r\n timeout = 1000;\r\n } else {\r\n timeout = 250;\r\n }\r\n }\r\n\r\n return $timeout(function () {\r\n // set back to default to trigger browser repaint\r\n element.style.boxShadow = \"\";\r\n if (callback) {\r\n callback();\r\n }\r\n }, timeout);\r\n }\r\n\r\n function forceWidthRepaint(element) {\r\n element.style.width = \"auto\";\r\n return $timeout(function () {\r\n requestAnimationFrame(function () {\r\n element.style.width = \"\";\r\n });\r\n }, 50);\r\n }\r\n\r\n function forceElementRepaintLight(element) {\r\n element.style.bottom = \"auto\";\r\n requestAnimationFrame(function () {\r\n element.style.bottom = \"\";\r\n });\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./helpers\";\r\n\r\nangularAMD.service(\"subscriptionServiceProvider\", [\r\n \"$q\",\r\n \"helpers\",\r\n function ($q, helpers) {\r\n this.services = {};\r\n\r\n this.addService = function (id) {\r\n if (id !== undefined) {\r\n this.services[id] = new helpers.ObjectCollection();\r\n return this.services[id];\r\n }\r\n };\r\n\r\n this.removeService = function (id) {\r\n var service = this.services[id];\r\n if (service !== undefined) {\r\n delete this.services[id];\r\n }\r\n };\r\n\r\n this.clearServices = function () {\r\n for (var service in this.services) {\r\n if (this.services.hasOwnProperty(service)) {\r\n this.services[service] = null;\r\n delete this.services[service];\r\n }\r\n }\r\n };\r\n\r\n this.runSubscriptions = function (id, data) {\r\n var list = this.services[id].items,\r\n q = $q.defer(),\r\n promise = q.promise;\r\n for (var i = 0, l = list.length, item; i < l; i++) {\r\n item = list[i];\r\n promise = promise.then(item.callback);\r\n }\r\n\r\n q.resolve(data);\r\n return promise;\r\n };\r\n\r\n this.subscribe = function (serviceId, id, callback) {\r\n var service = this.services[serviceId];\r\n if (service !== undefined) {\r\n service.add({\r\n id: id,\r\n callback: callback\r\n });\r\n }\r\n };\r\n\r\n this.unsubscribe = function (serviceId, id) {\r\n var service = this.services[serviceId];\r\n if (service !== undefined) {\r\n service.remove(\"id\", id);\r\n }\r\n };\r\n\r\n this.clearSubscriptions = function (serviceId) {\r\n var service = this.services[serviceId];\r\n if (service !== undefined) {\r\n service.removeAll();\r\n }\r\n };\r\n\r\n this.subscriptionExists = function (serviceId, id) {\r\n var service = this.services[serviceId];\r\n return service !== undefined ? service.exists(\"id\", id) : false;\r\n };\r\n }\r\n]);\r\n","var HTML_INPUT = {\r\n INLINE_TAGS_WHITELIST: [\"a\", \"strong\", \"b\", \"i\", \"em\", \"font\", \"u\", \"span\", \"sub\", \"sup\", \"small\", \"mark\", \"cite\", \"abbr\", \"s\", \"strike\"],\r\n BLOCK_TAGS_WHITELIST: [\"div\", \"p\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"ul\", \"ol\", \"li\", \"br\"],\r\n ATTRIBUTES_WHITELIST: [\"style\", \"href\", \"title\", \"target\", \"face\", \"size\", \"color\", \"align\", \"start\", \"reversed\", \"type\"],\r\n STYLE_PROPERTY_BLACKLIST: [\r\n //TODO: Rework paste data to have whitelist instead!\r\n \"orphans\",\r\n \"widows\",\r\n \"fontVariantLigatures\",\r\n \"fontFeatureSettings\",\r\n \"fontKerning\",\r\n \"verticalAlign\",\r\n \"whiteSpace\",\r\n \"letterSpacing\",\r\n \"wordWrap\",\r\n \"userSelect\",\r\n \"outline\",\r\n \"cursor\",\r\n \"display\",\r\n \"flex\",\r\n \"alignContent\",\r\n \"alignItems\",\r\n \"justifyContent\",\r\n \"float\",\r\n \"overflow\",\r\n \"position\",\r\n \"top\",\r\n \"right\",\r\n \"bottom\",\r\n \"left\",\r\n \"margin\",\r\n \"marginTop\",\r\n \"marginBottom\",\r\n \"marginRight\",\r\n \"padding\",\r\n \"paddingTop\",\r\n \"paddingBottom\",\r\n \"paddingLeft\",\r\n \"paddingRight\",\r\n \"width\",\r\n \"height\",\r\n \"transform\",\r\n \"opacity\",\r\n \"backgroundImage\",\r\n \"backgroundSize\",\r\n \"backgroundAttachment\",\r\n \"backgroundPosition\",\r\n \"backgroundRepeatY\",\r\n \"backgroundRepeatX\",\r\n \"backgroundRepeat\",\r\n \"backgroundOrigin\",\r\n \"backgroundClip\",\r\n \"clip\",\r\n \"border\",\r\n \"borderTop\",\r\n \"borderRight\",\r\n \"borderBottom\",\r\n \"borderLeft\",\r\n \"borderWidth\",\r\n \"borderStyle\",\r\n \"zIndex\",\r\n \"lineHeight\",\r\n \"letterSpacing\"\r\n ],\r\n WYSIWYG_STYLES_WHITELIST: [\"font\", \"font-size\", \"font-style\", \"font-variant\", \"font-weight\", \"font-stretch\", \"font-family\", \"color\"]\r\n};\r\n\r\nexport { HTML_INPUT };\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../security/pebbleSecurity.module\";\r\n\r\nangularAMD.service(\"SelectionService\", SelectionService);\r\nSelectionService.$inject = [\"$window\", \"domSearchHelper\", \"helpers\", \"PebbleSecurityService\"];\r\n\r\nfunction SelectionService($window, domSearchHelper, helpers, pebbleSecurityService) {\r\n // Public API\r\n // =============================================================================================================\r\n this.saveSelection = saveSelection;\r\n this.restoreSelection = restoreSelection;\r\n this.pasteHtmlAtCaret = pasteHtmlAtCaret;\r\n this.wrapSelection = wrapSelection;\r\n this.insertBookmark = insertBookmark;\r\n this.removeSelectionBookmark = removeSelectionBookmark;\r\n this.getBookmarkDomInfo = getBookmarkDomInfo;\r\n this.isSelectionWithinElement = isSelectionWithinElement;\r\n\r\n // Globals\r\n // =============================================================================================================\r\n var markerClassNamePrefix = \"pebble\",\r\n selectionBoundary = \"selection-boundary\",\r\n markerTextChar = \"\\ufeff\";\r\n\r\n var bookmarkDomInfo = {\r\n tagName: \"selection-bookmark\",\r\n data: \"data-selection-bookmark\",\r\n dataEnd: \"data-selection-bookmark-end\"\r\n };\r\n\r\n function getBookmarkDomInfo() {\r\n return bookmarkDomInfo;\r\n }\r\n\r\n function wrapSelection(action_parameter, before, renderNode) {\r\n var selection = document.getSelection();\r\n var range = selection.getRangeAt(0);\r\n var commonAncestorContainer = range.commonAncestorContainer.parentNode;\r\n var startContainer = range.startContainer;\r\n var endContainer = range.endContainer;\r\n var startOffset = range.startOffset;\r\n var endOffset = range.endOffset;\r\n\r\n if (before) {\r\n var killFunction = before(range);\r\n if (killFunction) {\r\n return;\r\n }\r\n }\r\n if (startContainer === endContainer) {\r\n renderNode(startContainer, startOffset, endOffset, range);\r\n } else {\r\n recurseNodes(commonAncestorContainer, renderNode, {\r\n startOffset: startOffset,\r\n endOffset: endOffset,\r\n startContainer: startContainer,\r\n endContainer: endContainer,\r\n wrapTextNodes: false,\r\n range: range\r\n });\r\n }\r\n }\r\n\r\n // Private methods\r\n // =============================================================================================================\r\n /**\r\n * @param {Element} el\r\n * @param {Function} renderNode\r\n * @param {{startOffset: Number, endOffset: Number, startContainer: Node, endContainer: Node, wrapTextNodes: Boolean}} state\r\n * @returns {boolean}\r\n */\r\n function recurseNodes(el, renderNode, state) {\r\n if ([\"UL\", \"OL\", \"LI\"].contains(el.nodeName)) {\r\n var startRender = false;\r\n if (!state.wrapTextNodes) {\r\n startRender = domSearchHelper.elementContains(el, state.startContainer);\r\n }\r\n if (startRender || state.wrapTextNodes) {\r\n state.wrapTextNodes = true;\r\n renderNode(el, state.startOffset, state.endOffset, state.range);\r\n }\r\n if (domSearchHelper.elementContains(el, state.endContainer)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n if (el === state.startContainer) {\r\n state.wrapTextNodes = true;\r\n renderNode(el, state.startOffset, null, state.range);\r\n } else if (el === state.endContainer) {\r\n renderNode(el, 0, state.endOffset, state.range);\r\n return false;\r\n } else if (state.wrapTextNodes && (el.nodeName === \"#text\" || el.nodeName === \"span\")) {\r\n renderNode(el, 0, null, state.range);\r\n }\r\n\r\n if (el.hasChildNodes()) {\r\n var cachedNodes = Array.prototype.slice.call(el.childNodes, 0);\r\n for (var i = 0; i < cachedNodes.length; i++) {\r\n var result = recurseNodes(cachedNodes[i], renderNode, state);\r\n if (!result) {\r\n i = cachedNodes.length;\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function saveSelection(autoFocusOnRestore) {\r\n // Check if selection is valid\r\n var sel = $window.getSelection();\r\n if (sel.rangeCount < 1) {\r\n return;\r\n }\r\n\r\n var ranges = getAllRanges(sel);\r\n var backward = ranges.length === 1 && isSelectionBackwards(sel);\r\n var rangeInfos = saveRanges(ranges, backward);\r\n\r\n return {\r\n targetContainer: domSearchHelper.getInputElement(ranges[0].commonAncestorContainer),\r\n autoFocusOnRestore: autoFocusOnRestore !== false, //Default is true\r\n rangeInfos: rangeInfos,\r\n restored: false\r\n };\r\n }\r\n\r\n function restoreSelection(savedSel, ignoreDirection) {\r\n if (savedSel && !savedSel.restored) {\r\n if (savedSel.targetContainer && savedSel.autoFocusOnRestore) {\r\n savedSel.targetContainer.focus();\r\n }\r\n\r\n var rangeInfos = savedSel.rangeInfos,\r\n sel = $window.getSelection(),\r\n ranges = restoreRanges(rangeInfos),\r\n rangeCount = rangeInfos.length;\r\n\r\n if (rangeCount === 1 && !ignoreDirection && rangeInfos[0].backward) {\r\n sel.removeAllRanges();\r\n addRange(sel, ranges[0], true);\r\n } else {\r\n setRanges(sel, ranges);\r\n }\r\n savedSel.restored = true;\r\n }\r\n }\r\n\r\n function addRange(sel, range, backward) {\r\n if (backward) {\r\n selectRangeBackwards(sel, range);\r\n }\r\n }\r\n\r\n function setRanges(sel, ranges) {\r\n sel.removeAllRanges();\r\n for (var i = 0, len = ranges.length; i < len; ++i) {\r\n sel.addRange(ranges[i]);\r\n }\r\n }\r\n\r\n function restoreRanges(rangeInfos) {\r\n var ranges = [];\r\n\r\n // Ranges are in reverse order of appearance in the DOM. We want to restore earliest first to avoid\r\n // normalization affecting previously restored ranges.\r\n var rangeCount = rangeInfos.length;\r\n\r\n for (var i = rangeCount - 1; i >= 0; i--) {\r\n ranges[i] = restoreRange(rangeInfos[i]);\r\n }\r\n\r\n return ranges;\r\n }\r\n\r\n function restoreRange(rangeInfo) {\r\n var range = document.createRange();\r\n\r\n if (rangeInfo.collapsed) {\r\n var markerEl = document.getElementById(rangeInfo.markerId);\r\n\r\n if (markerEl) {\r\n markerEl.style.display = \"inline\";\r\n collapseBefore(range, markerEl);\r\n removeNode(markerEl);\r\n } else {\r\n throw new Error(\"Marker element has been removed. Cannot restore selection.\");\r\n }\r\n } else {\r\n setRangeBoundary(range, rangeInfo.startMarkerId, true);\r\n setRangeBoundary(range, rangeInfo.endMarkerId, false);\r\n }\r\n\r\n return range;\r\n }\r\n\r\n function setRangeBoundary(range, markerId, atStart) {\r\n var markerEl = document.getElementById(markerId);\r\n\r\n if (markerEl) {\r\n range[atStart ? \"setStartBefore\" : \"setEndBefore\"](markerEl);\r\n removeNode(markerEl);\r\n } else {\r\n throw new Error(\"Marker element has been removed. Cannot restore selection.\");\r\n }\r\n }\r\n\r\n function isSelectionBackwards() {\r\n var backwards = false;\r\n\r\n if ($window.getSelection) {\r\n var sel = $window.getSelection();\r\n\r\n // check if any text is selected\r\n if (!sel.isCollapsed) {\r\n var range = document.createRange();\r\n\r\n // 'anchorNode' is the node where selection begins.\r\n // 'anchorNode' ignores direction, so it will not move (doesn't matter which direction user selects).\r\n range.setStart(sel.anchorNode, sel.anchorOffset);\r\n\r\n // 'focusNode' is the node in which the selection ends.\r\n // 'focusNode' move with the selection direction.\r\n range.setEnd(sel.focusNode, sel.focusOffset);\r\n\r\n // So in case user selected backwards, 'anchorNode' & 'focusNode' will be at the same point, which means\r\n // that range is collapsed.\r\n backwards = range.collapsed;\r\n\r\n // 'detach' method releases a Range from use by the browser (simply speaking it does 'unbind/destroy/cleanup')\r\n range.detach();\r\n }\r\n }\r\n\r\n return backwards;\r\n }\r\n\r\n function selectRangeBackwards(sel, range) {\r\n if ($window.getSelection !== void 0) {\r\n var selection = sel || $window.getSelection();\r\n\r\n // select backward if 'extend' method is supported\r\n if (selection.extend !== void 0) {\r\n var endRange = range.cloneRange();\r\n endRange.collapse(false);\r\n selection.removeAllRanges();\r\n selection.addRange(endRange);\r\n selection.extend(range.startContainer, range.startOffset);\r\n }\r\n // fallback in case browser doesn't support 'extend'.\r\n // select by default from left-to-right\r\n else {\r\n sel.addRange(range);\r\n }\r\n }\r\n }\r\n\r\n function getAllRanges(sel) {\r\n var ranges = [];\r\n for (var i = 0; i < sel.rangeCount; i++) {\r\n ranges[i] = sel.getRangeAt(i);\r\n }\r\n return ranges;\r\n }\r\n\r\n function saveRanges(ranges, backward) {\r\n var rangeInfos = [],\r\n range;\r\n\r\n for (var i = 0, len = ranges.length; i < len; ++i) {\r\n rangeInfos[i] = saveRange(ranges[i], backward);\r\n }\r\n\r\n // Now that all the markers are in place and DOM manipulation over, adjust each range's boundaries to lie\r\n // between its markers\r\n for (i = len - 1; i >= 0; --i) {\r\n range = ranges[i];\r\n if (range.collapsed) {\r\n collapseAfter(range, document.getElementById(rangeInfos[i].markerId));\r\n } else {\r\n setEndBefore(range, document.getElementById(rangeInfos[i].endMarkerId));\r\n setStartAfter(range, document.getElementById(rangeInfos[i].startMarkerId));\r\n }\r\n }\r\n\r\n return rangeInfos;\r\n }\r\n\r\n function saveRange(range, backward) {\r\n var startEl,\r\n endEl,\r\n text = range.toString();\r\n\r\n if (range.collapsed) {\r\n endEl = insertRangeBoundaryMarker(range, false);\r\n\r\n return {\r\n markerId: endEl.id,\r\n collapsed: true\r\n };\r\n } else {\r\n endEl = insertRangeBoundaryMarker(range, false);\r\n startEl = insertRangeBoundaryMarker(range, true);\r\n\r\n return {\r\n startMarkerId: startEl.id,\r\n endMarkerId: endEl.id,\r\n collapsed: false,\r\n backward: backward,\r\n toString: function () {\r\n return \"original text: '\" + text + \"', new text: '\" + range.toString() + \"'\";\r\n }\r\n };\r\n }\r\n }\r\n\r\n function generateUniqueMarkerId() {\r\n return selectionBoundary + \"-\" + Date.now() + \"-\" + helpers.guid();\r\n }\r\n\r\n function insertRangeBoundaryMarker(range, atStart) {\r\n // Clone the Range and collapse to the appropriate boundary point\r\n var boundaryRange = range.cloneRange();\r\n boundaryRange.collapse(atStart);\r\n\r\n // Create the marker element containing a single invisible character using DOM methods and insert it\r\n var markerEl = document.createElement(\"span\");\r\n markerEl.id = generateUniqueMarkerId();\r\n markerEl.style.lineHeight = \"0\";\r\n markerEl.style.display = \"none\";\r\n markerEl.className = markerClassNamePrefix + \"-\" + selectionBoundary;\r\n // tslint:disable-next-line:no-unsafe-dom-insert-calls\r\n markerEl.appendChild(document.createTextNode(markerTextChar));\r\n\r\n boundaryRange.insertNode(markerEl);\r\n return markerEl;\r\n }\r\n\r\n function collapseAfter(range, node) {\r\n range.setStartAfter(node);\r\n range.collapse(true);\r\n }\r\n\r\n function setEndBefore(range, node) {\r\n range.setEndBefore(node);\r\n }\r\n\r\n function setStartAfter(range, node) {\r\n range.setStartAfter(node);\r\n }\r\n\r\n function collapseBefore(range, node) {\r\n range.setEndBefore(node);\r\n range.collapse(false);\r\n }\r\n\r\n function removeNode(node) {\r\n return !node || node.parentNode.removeChild(node);\r\n }\r\n\r\n function pasteHtmlAtCaret(html, selectPastedContent) {\r\n var sel, range;\r\n if ($window.getSelection) {\r\n // IE9 and non-IE\r\n sel = $window.getSelection();\r\n if (sel.getRangeAt && sel.rangeCount) {\r\n range = sel.getRangeAt(0);\r\n range.deleteContents();\r\n\r\n // Range.createContextualFragment() would be useful here but is\r\n // only relatively recently standardized and is not supported in\r\n // some browsers (IE9, for one)\r\n var el = document.createElement(\"div\");\r\n el.innerHTML = pebbleSecurityService.sanitise(html);\r\n var frag = document.createDocumentFragment();\r\n var node = null;\r\n var lastNode = null;\r\n // tslint:disable-next-line:no-conditional-assignment\r\n while ((node = el.firstChild)) {\r\n // tslint:disable-next-line:no-unsafe-dom-insert-calls\r\n lastNode = frag.appendChild(node);\r\n }\r\n var firstNode = frag.firstChild;\r\n range.insertNode(frag);\r\n\r\n // Preserve the selection\r\n if (lastNode) {\r\n range = range.cloneRange();\r\n range.setStartAfter(lastNode);\r\n if (selectPastedContent) {\r\n range.setStartBefore(firstNode);\r\n } else {\r\n range.collapse(true);\r\n }\r\n sel.removeAllRanges();\r\n sel.addRange(range);\r\n }\r\n }\r\n // tslint:disable-next-line:no-conditional-assignment\r\n } else if ((sel = document.selection) && sel.type !== \"Control\") {\r\n // IE < 9\r\n var originalRange = sel.createRange();\r\n originalRange.collapse(true);\r\n sel.createRange().pasteHTML(html);\r\n if (selectPastedContent) {\r\n range = sel.createRange();\r\n range.setEndPoint(\"StartToStart\", originalRange);\r\n range.select();\r\n }\r\n }\r\n }\r\n\r\n function SelectionBookmark(element, selector) {\r\n this.element = element;\r\n this.selector = selector;\r\n }\r\n\r\n /**\r\n * @param {String=} bookmarkId\r\n * @returns {{start: SelectionBookmark|null, end: SelectionBookmark|null}}\r\n */\r\n function insertBookmark(bookmarkId) {\r\n var id = bookmarkId || helpers.guid();\r\n var selection = $window.getSelection();\r\n var bookmark = { start: null, end: null };\r\n\r\n if (selection.rangeCount > 0) {\r\n var range = selection.getRangeAt(0);\r\n var isCollapsed = range.collapsed;\r\n\r\n bookmark.start = createSelectionBookmark(id, range.collapsed);\r\n bookmark.end = bookmark.start;\r\n range.insertNode(bookmark.start.element);\r\n range.setStartAfter(bookmark.start.element);\r\n\r\n if (!isCollapsed) {\r\n bookmark.end = createSelectionBookmark(id, true);\r\n range.collapse(false);\r\n range.insertNode(bookmark.end.element);\r\n range.setEndBefore(bookmark.end.element);\r\n }\r\n }\r\n\r\n return bookmark;\r\n }\r\n\r\n /**\r\n * @param {String} id\r\n * @param {Boolean} isEnd\r\n * @returns {SelectionBookmark}\r\n */\r\n function createSelectionBookmark(id, isEnd) {\r\n var element = document.createElement(bookmarkDomInfo.tagName);\r\n var bookmarkAttr = bookmarkDomInfo.data;\r\n var selector = \"[\" + bookmarkAttr + '=\"' + id + '\"]';\r\n\r\n element.textContent = \" \";\r\n element.setAttribute(bookmarkAttr, id);\r\n\r\n if (isEnd) {\r\n var endBookmarkAttr = bookmarkDomInfo.dataEnd;\r\n var endBookMarkValue = \"true\";\r\n selector += \"[\" + endBookmarkAttr + '=\"' + endBookMarkValue + '\"]';\r\n element.setAttribute(endBookmarkAttr, endBookMarkValue);\r\n }\r\n\r\n return new SelectionBookmark(element, selector);\r\n }\r\n\r\n /**\r\n *\r\n * @param {{start: SelectionBookmark, end: SelectionBookmark}} bookmark\r\n */\r\n function removeSelectionBookmark(bookmark) {\r\n if (bookmark.start && bookmark.start.element.parentNode) {\r\n bookmark.start.element.parentNode.removeChild(bookmark.start.element);\r\n }\r\n\r\n if (bookmark.end && bookmark.end.element.parentNode) {\r\n bookmark.end.element.parentNode.removeChild(bookmark.end.element);\r\n }\r\n\r\n bookmark.start = null;\r\n bookmark.end = null;\r\n }\r\n\r\n function isSelectionWithinElement(element) {\r\n const selection = window.getSelection();\r\n if (selection.rangeCount === 0) {\r\n return false;\r\n }\r\n\r\n const containsNode = (node) => node === element;\r\n const containsAnchorNode = selection.anchorNode === element || !!domSearchHelper.getElementFromDomTree(selection.anchorNode, containsNode, { node: element });\r\n const containsFocusNode = selection.focusNode === element || !!domSearchHelper.getElementFromDomTree(selection.focusNode, containsNode, { node: element });\r\n return containsAnchorNode && containsFocusNode;\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { HTML_INPUT } from \"../constants/htmlInput.constants\";\r\nimport \"../utilities/urlService\";\r\n\r\nangularAMD.service(\"NodeAttributeModifier\", NodeAttributeModifier);\r\nNodeAttributeModifier.$inject = [\"urlService\"];\r\n\r\nfunction NodeAttributeModifier(urlService) {\r\n //Public API\r\n //=============================================================================================================\r\n this.getAttributeDefaults = getAttributeDefaults;\r\n this.getNodeDefaults = getNodeDefaults;\r\n this.removeEmptyBackgroundColours = removeEmptyBackgroundColours;\r\n this.removeListStyles = removeListStyles;\r\n this.removeRelativeFontSizes = removeRelativeFontSizes;\r\n this.removePageAnchorLink = removePageAnchorLink;\r\n\r\n //Private variables\r\n //=============================================================================================================\r\n var prefixBlacklist = [\"-webkit-\", \"-moz-\", \"-ms-\", \"mso-\"];\r\n var prefixBlackListRegex = new RegExp(\r\n \"(\" +\r\n prefixBlacklist.reduce(function (prev, curr) {\r\n return prev + \"|\" + curr;\r\n }) +\r\n \")[a-z0-9-]+:\\\\s?[a-z0-9-\\\\(\\\\)#,!\\\\s]+;\",\r\n \"gi\"\r\n );\r\n\r\n var stylesValueBlacklist = [\"initial\", \"inherit\"];\r\n var stylesValueBlacklistRegex = new RegExp(\r\n \"[a-z0-9-]+:\\\\s?(\" +\r\n stylesValueBlacklist.reduce(function (prev, curr) {\r\n return prev + \"|\" + curr;\r\n }) +\r\n \");\",\r\n \"gi\"\r\n );\r\n\r\n //Private methods\r\n //=============================================================================================================\r\n function getAttributeDefaults() {\r\n return [sanitiseStyleAttribute, removeListStyles, removeRelativeFontSizes];\r\n }\r\n\r\n function getNodeDefaults() {\r\n return [removePageAnchorLink, removeHeadingOne];\r\n }\r\n\r\n function sanitiseStyleAttribute(node) {\r\n var style = node.getAttribute(\"style\");\r\n if (style === null) {\r\n return;\r\n }\r\n\r\n node.setAttribute(\"style\", style.replace(prefixBlackListRegex, \"\").replace(stylesValueBlacklistRegex, \"\"));\r\n\r\n var key = \"\";\r\n for (var i = 0, l = HTML_INPUT.STYLE_PROPERTY_BLACKLIST.length; i < l; i++) {\r\n key = HTML_INPUT.STYLE_PROPERTY_BLACKLIST[i];\r\n if (node.style[key]) {\r\n node.style[key] = \"\";\r\n }\r\n }\r\n }\r\n\r\n function removeEmptyBackgroundColours(node) {\r\n if (node.style.backgroundColor === \"transparent\") {\r\n node.style.backgroundColor = \"\";\r\n }\r\n }\r\n\r\n function removeRelativeFontSizes(node) {\r\n var fontSize = node.style.fontSize;\r\n if (/%|em/.test(fontSize)) {\r\n node.style.fontSize = \"\";\r\n }\r\n }\r\n\r\n function removeListStyles(node) {\r\n if (/^(li|ul|ol)$/i.test(node.nodeName)) {\r\n node.removeAttribute(\"style\");\r\n }\r\n }\r\n\r\n function removeHeadingOne(node) {\r\n return node.nodeName === \"H1\" ? replaceNodeType(node, document.createElement(\"h2\")) : node;\r\n }\r\n\r\n function removePageAnchorLink(node) {\r\n if (node.nodeName !== \"A\") {\r\n return node;\r\n }\r\n\r\n var href = node.getAttribute(\"href\");\r\n return /^#/.test(href) && !urlService.isSupportedRoute(href) ? replaceNodeType(node, document.createElement(\"span\")) : node;\r\n }\r\n\r\n function replaceNodeType(node, newNode) {\r\n while (node.firstChild) {\r\n // tslint:disable-next-line:no-unsafe-dom-insert-calls\r\n newNode.appendChild(node.firstChild);\r\n }\r\n // tslint:disable-next-line:no-unsafe-dom-insert-calls\r\n node.parentNode.replaceChild(newNode, node);\r\n return newNode;\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { globalAnchorSanitiseEventHandler, HtmlStringSanitiser, HtmlSanitiserEvent } from \"@pjs/security\";\r\nimport { HTML_INPUT } from \"../constants/htmlInput.constants\";\r\nimport \"./selection.service\";\r\nimport \"./nodeAttributeModifier.service\";\r\nimport \"../utilities/helpers\";\r\nimport \"../utilities/escapeHelper.service\";\r\nimport \"../utilities/typeCheck.service\";\r\nimport \"../utilities/domSearchHelper.service\";\r\nimport \"../utilities/eventHelper.service\";\r\nimport \"../userAgent/userAgent.service\";\r\n\r\nangularAMD.factory(\"PasteService\", PasteService);\r\nPasteService.$inject = [\"$sanitize\", \"$timeout\", \"SelectionService\", \"NodeAttributeModifier\", \"helpers\", \"EscapeHelper\", \"typeCheck\", \"domSearchHelper\", \"EventHelper\", \"UserAgentService\"];\r\n\r\nvar $sanitize = null,\r\n $timeout = null,\r\n SelectionService = null,\r\n NodeAttributeModifier = null,\r\n helpers = null,\r\n EscapeHelper = null,\r\n typeCheck = null,\r\n domSearchHelper = null,\r\n EventHelper = null,\r\n UserAgentService;\r\n\r\nfunction PasteService(_$sanitize_, _$timeout_, _SelectionService_, _NodeAttributeModifier_, _helpers_, _EscapeHelper_, _typeCheck_, _domSearchHelper_, _EventHelper_, _UserAgentService_) {\r\n $sanitize = _$sanitize_;\r\n $timeout = _$timeout_;\r\n SelectionService = _SelectionService_;\r\n NodeAttributeModifier = _NodeAttributeModifier_;\r\n helpers = _helpers_;\r\n EscapeHelper = _EscapeHelper_;\r\n typeCheck = _typeCheck_;\r\n domSearchHelper = _domSearchHelper_;\r\n EventHelper = _EventHelper_;\r\n UserAgentService = _UserAgentService_;\r\n\r\n return PasteServiceClass;\r\n}\r\n\r\n// Static class variables\r\nPasteServiceClass.defaultSanitizeConfig = {\r\n ALLOWED_TAGS: HTML_INPUT.BLOCK_TAGS_WHITELIST.concat(HTML_INPUT.INLINE_TAGS_WHITELIST),\r\n ALLOWED_ATTR: HTML_INPUT.ATTRIBUTES_WHITELIST.slice(),\r\n FORBID_ATTR: [],\r\n FORBID_TAGS: [],\r\n RETURN_DOM: false\r\n};\r\n\r\nPasteServiceClass.dummyContainerId = \"on-paste-secret-container\";\r\nPasteServiceClass.focusAnchorId = \"focus-target-element\";\r\n// Service Class\r\nfunction PasteServiceClass(opts) {\r\n opts = opts || {};\r\n this.onSanitize = opts.onSanitize || false;\r\n this.pastePlain = opts.pastePlain || false;\r\n this.onPasteComplete = opts.onPasteComplete || null;\r\n this.selection = null;\r\n this.target = opts.target || null; // if no target specified, then automatic script will loop the\r\n // DOM to get first possible contenteditable\r\n\r\n this.attributeModifiers = opts.attributeModifiers || NodeAttributeModifier.getAttributeDefaults();\r\n this.nodeModifiers = opts.nodeModifiers || NodeAttributeModifier.getNodeDefaults();\r\n\r\n const sanitiserConfig = Object.assign({}, PasteServiceClass.defaultSanitizeConfig, opts.sanitizeConfig || {});\r\n this._sanitiser = HtmlStringSanitiser.createFromWhitelist({ attributes: sanitiserConfig.ALLOWED_ATTR, tags: sanitiserConfig.ALLOWED_TAGS });\r\n this._sanitiser.on(HtmlSanitiserEvent.BeforeElement, globalAnchorSanitiseEventHandler);\r\n this._sanitiser.on(HtmlSanitiserEvent.BeforeElement, this.sanitiseNode.bind(this));\r\n this._sanitiser.on(HtmlSanitiserEvent.AfterAttribute, this.sanitiseAttributes.bind(this));\r\n}\r\n\r\nPasteServiceClass.prototype.enable = function () {\r\n if (this.pastePlain === false && UserAgentService.ie && UserAgentService.version === 10) {\r\n // For IE10, the browser will only paste HTML if a\r\n // contenteditable div is selected before paste.\r\n // Luckily, the browser fires a before paste event which\r\n // lets us switch the focus to the appropriate element.\r\n this.onBeforePasteHandler = this.onBeforePaste.bind(this);\r\n document.addEventListener(\"beforepaste\", this.onBeforePasteHandler, true);\r\n //Have to disable right click for IE10 to prevent issue with right click triggering beforepaste event, even when the paste option never gets chosen.\r\n this.target.addEventListener(\"contextmenu\", EventHelper.stopEvent, false);\r\n }\r\n\r\n this.onPasteHandler = this.onPaste.bind(this);\r\n document.addEventListener(\"paste\", this.onPasteHandler);\r\n document.addEventListener(\"drop\", this.onContentDrop);\r\n};\r\n\r\nPasteServiceClass.prototype.disable = function () {\r\n if (this.onBeforePasteHandler) {\r\n document.removeEventListener(\"beforepaste\", this.onBeforePasteHandler, true);\r\n }\r\n if (this.onPasteHandler) {\r\n document.removeEventListener(\"paste\", this.onPasteHandler);\r\n }\r\n\r\n document.removeEventListener(\"drop\", this.onContentDrop);\r\n this.target.removeEventListener(\"contextmenu\", EventHelper.stopEvent);\r\n};\r\n\r\nPasteServiceClass.prototype.completePaste = function (pastedRawData, target, autoFocusOnRestore) {\r\n //Set the autoFocusOnRestore state for the saved selection. If false, the SelectionService does not focus twice on the parent - resets scroll pos to top of container in Safari\r\n if (this.selection) {\r\n this.selection.autoFocusOnRestore = autoFocusOnRestore;\r\n }\r\n\r\n // 1. restore user selection\r\n SelectionService.restoreSelection(this.selection);\r\n\r\n // 2. sanitize pastedData\r\n var sanitizedPastedData = this.sanitizeData(pastedRawData);\r\n\r\n // 3. put data at caret\r\n SelectionService.pasteHtmlAtCaret(sanitizedPastedData);\r\n\r\n // 4. focus at caret\r\n this.focusAtCaret(target, autoFocusOnRestore);\r\n if (typeCheck.isFunction(this.onPasteComplete)) {\r\n this.onPasteComplete();\r\n }\r\n};\r\n\r\nPasteServiceClass.prototype.focusAtCaret = function (target, autoFocusOnRestore) {\r\n // create focusable element that we put on caret position to perform focus\r\n var focusTarget = this.createFocusableCaretAnchor();\r\n\r\n // save caret position before because it's going to be removed after we add focusable element at caret position\r\n this.selection = SelectionService.saveSelection(autoFocusOnRestore);\r\n\r\n // paste focusable element at caret position\r\n SelectionService.pasteHtmlAtCaret(focusTarget);\r\n\r\n // select focusable element to focus on it\r\n focusTarget = document.getElementById(PasteServiceClass.focusAnchorId);\r\n focusTarget.focus();\r\n\r\n // remove focusable element after focus\r\n focusTarget.parentNode.removeChild(focusTarget);\r\n\r\n // restore our saved caret position to where it was after last action\r\n SelectionService.restoreSelection(this.selection);\r\n\r\n if (target) {\r\n target.focus();\r\n }\r\n};\r\n\r\nPasteServiceClass.prototype.createFocusableCaretAnchor = function () {\r\n return '
';\r\n};\r\n\r\nPasteServiceClass.prototype.sanitizeData = function (dirtyData) {\r\n const blockElementWhiteSpaceRegex = new RegExp(`(\\\\s+<`, \"g\");\r\n\r\n var regexResult = dirtyData\r\n .replace(/([a-z])?(\\r\\n|\\n)/gi, \"$1 \")\r\n .replace(blockElementWhiteSpaceRegex, \"$1><\")\r\n .replace(/<\\/html>.+/g, \"\");\r\n\r\n var clean = this._sanitiser.clean(regexResult);\r\n\r\n if (this.onSanitize) {\r\n clean = this.onSanitize(clean);\r\n }\r\n\r\n clean = this.checkIfOnlyEmptyTags(clean);\r\n\r\n return clean;\r\n};\r\n\r\nPasteServiceClass.prototype.checkIfOnlyEmptyTags = function (data) {\r\n // if plain contains nothing, then paste nothing instead of empty tags.\r\n // e.g. you paste

, but is not allowed,\r\n // so it will be wiped and you will get:

\r\n // it is pointless to paste empty tags, so we check if there is any non-html content.\r\n if (!helpers.htmlToPlain(data)) {\r\n return \"\";\r\n }\r\n\r\n return data;\r\n};\r\n\r\nPasteServiceClass.prototype.onBeforePaste = function () {\r\n this.focusInDummyContainer();\r\n};\r\n\r\nPasteServiceClass.prototype.onContentDrop = function (e) {\r\n e.preventDefault();\r\n};\r\n\r\nPasteServiceClass.prototype.getDataFromClipboard = function (e, type, ieType) {\r\n return UserAgentService.ie ? window.clipboardData.getData(ieType) : (e.originalEvent || e).clipboardData.getData(type);\r\n};\r\n\r\nPasteServiceClass.prototype.pastePlainContent = function (e) {\r\n if (e.type === \"paste\") {\r\n //If user pasted data\r\n e.preventDefault();\r\n\r\n var text = \"\";\r\n var clipboardData = this.getDataFromClipboard(e, \"text/plain\", \"Text\"); //Get data from clipboard as plain text\r\n //$sanitize could throw an error if some funky / invalid HTML has been pasted in. If an error occurs, handle it - strip HTML chars and output escaped string\r\n try {\r\n text = $sanitize(clipboardData);\r\n // tslint:disable-next-line:no-empty\r\n } catch (e) {}\r\n\r\n if (clipboardData && !text) {\r\n //If $sanitize parsed some blacklisted HTML and there was some text, strip HTML chars and output escaped string\r\n text = EscapeHelper.convertHTMLChars(clipboardData);\r\n }\r\n\r\n //For damn IE - Vlad, 2016\r\n if (!document.queryCommandSupported(\"insertHTML\")) {\r\n SelectionService.pasteHtmlAtCaret(text); //Fix for unimplemented in IE 'execCommand(\"insertHTML\")'\r\n } else {\r\n document.execCommand(\"insertHTML\", false, text);\r\n }\r\n\r\n if (typeCheck.isFunction(this.onPasteComplete)) {\r\n this.onPasteComplete();\r\n }\r\n }\r\n};\r\n\r\nPasteServiceClass.prototype.onPaste = function (e) {\r\n if (this.target !== e.target && !this.target.contains(e.target)) {\r\n return;\r\n }\r\n\r\n if (this.pastePlain === true) {\r\n return this.pastePlainContent(e);\r\n }\r\n //Check if e.clipboardData exists and has data (standards compliant - <= IE 11). If not then use workaround custom paste.\r\n if (!this.hasEventClipboardSupport(e)) {\r\n this.clipboardEvent(\"non-standard\", e);\r\n } else {\r\n //Check content types. If there is a type of text/HTML, run custom paste / sanitisation. If not, fallback and treat as paste content as plain text.\r\n if (this.clipboardContainsHTMLContent(e.clipboardData)) {\r\n this.clipboardEvent(\"standard\", e);\r\n e.preventDefault();\r\n } else if (this.clipboardContainsHTMLWebArchive(e.clipboardData)) {\r\n //If there is no text/HTML, check if Mac Safari Webarchive is available - Default HTML clipboard value for Safari\r\n this.clipboardEvent(\"non-standard\", e);\r\n } else {\r\n return this.pastePlainContent(e);\r\n }\r\n }\r\n};\r\n\r\nPasteServiceClass.prototype.getTargetEl = function (e) {\r\n var targetEl = e.target;\r\n\r\n var foundTargetEl = domSearchHelper.getInputElement(targetEl);\r\n if (foundTargetEl !== null) {\r\n targetEl = foundTargetEl;\r\n }\r\n\r\n return targetEl;\r\n};\r\n\r\nPasteServiceClass.prototype.clipboardEvent = function (type, e) {\r\n var targetEl = this.target || this.getTargetEl(e);\r\n\r\n switch (type) {\r\n case \"non-standard\":\r\n this.clipboardEventNonStandard(targetEl);\r\n break;\r\n case \"standard\":\r\n this.clipboardEventStandard(e, targetEl);\r\n break;\r\n }\r\n};\r\n\r\nPasteServiceClass.prototype.clipboardEventStandard = function (e, targetEl) {\r\n var clipboardData = e.clipboardData;\r\n this.completePaste(clipboardData.getData(\"text/html\"), targetEl, true);\r\n};\r\n\r\nPasteServiceClass.prototype.clipboardEventNonStandard = function (targetEl) {\r\n if (!(UserAgentService.ie && UserAgentService.version === 10)) {\r\n this.focusInDummyContainer();\r\n }\r\n\r\n $timeout(\r\n function () {\r\n this.completePaste(this.getDataFromDummyContainer(), targetEl, false);\r\n this.destroyDummyContainer();\r\n }.bind(this),\r\n 0\r\n );\r\n};\r\n\r\nPasteServiceClass.prototype.selectDummyContainer = function () {\r\n return document.getElementById(PasteServiceClass.dummyContainerId);\r\n};\r\n\r\nPasteServiceClass.prototype.focusInDummyContainer = function () {\r\n var container = this.selectDummyContainer();\r\n\r\n if (!container) {\r\n this.selection = SelectionService.saveSelection();\r\n container = document.createElement(\"DIV\");\r\n container.id = PasteServiceClass.dummyContainerId;\r\n container.className = \"editor\";\r\n container.contentEditable = true;\r\n container.style.position = \"fixed\";\r\n container.style.left = \"-99999px\";\r\n container.style.width = \"1px\";\r\n container.style.height = \"1px\";\r\n container.style.overflow = \"hidden\";\r\n container.style.opacity = 0;\r\n // tslint:disable-next-line:no-unsafe-dom-insert-calls\r\n document.body.appendChild(container);\r\n }\r\n\r\n container.focus();\r\n\r\n return container;\r\n};\r\n\r\nPasteServiceClass.prototype.getDataFromDummyContainer = function () {\r\n var containerEl = this.selectDummyContainer();\r\n var content = containerEl.innerHTML;\r\n containerEl.innerHTML = \"\";\r\n return content;\r\n};\r\n\r\nPasteServiceClass.prototype.destroyDummyContainer = function () {\r\n var containerEl = this.selectDummyContainer();\r\n if (containerEl) {\r\n containerEl.parentNode.removeChild(containerEl);\r\n }\r\n};\r\n\r\nPasteServiceClass.prototype.sanitiseNode = function (originalNode) {\r\n var node = originalNode;\r\n for (var i = 0, l = this.nodeModifiers.length; i < l; i++) {\r\n node = this.nodeModifiers[i](node);\r\n }\r\n\r\n return node;\r\n};\r\n\r\nPasteServiceClass.prototype.sanitiseAttributes = function (node) {\r\n for (var i = 0, l = this.attributeModifiers.length; i < l; i++) {\r\n this.attributeModifiers[i](node);\r\n }\r\n\r\n if (node.getAttribute(\"style\") === \"\") {\r\n node.removeAttribute(\"style\");\r\n }\r\n};\r\n\r\nPasteServiceClass.prototype.hasEventClipboardSupport = function (e) {\r\n var support = e && e.clipboardData && e.clipboardData.getData && e.clipboardData.types;\r\n return !!support;\r\n};\r\n\r\nPasteServiceClass.prototype.clipboardContainsHTMLContent = function (clipboardData) {\r\n return Array.prototype.indexOf.call(clipboardData.types, \"text/html\") > -1;\r\n};\r\n\r\nPasteServiceClass.prototype.clipboardContainsHTMLWebArchive = function (clipboardData) {\r\n var clipboardDataTypesArray = Array.prototype.slice.call(clipboardData.types); //Forcefully convert clipboard.types to array to ensure all browsers behave the same.\r\n return clipboardDataTypesArray.indexOf(\"com.apple.webarchive\") > -1 && clipboardDataTypesArray.indexOf(\"text/plain\") > -1;\r\n};\r\n\r\nconst _moduleExport = new PasteService();\r\nexport { _moduleExport as PasteService };\r\n","import \"../helpers\";\r\nimport \"../../copyPaste/paste.service\";\r\nimport \"../../userAgent/userAgent.service\";\r\nimport { HTML_INPUT } from \"../../constants/htmlInput.constants\";\r\nimport { applyIosCaretNotAppearingOnTapFix } from \"../ApplyIosCaretNotAppearingOnTapFix.function\";\r\nimport { noop } from \"@pjs/utilities\";\r\n\r\nexport const textEditableDirectiveFactory = (attributeName, attributeSetup = noop) => {\r\n return [\r\n \"$sce\",\r\n \"$rootScope\",\r\n \"$window\",\r\n \"helpers\",\r\n \"PasteService\",\r\n \"UserAgentService\",\r\n function ($sce, $rootScope, $window, helpers, PasteService, UserAgentService) {\r\n return {\r\n restrict: \"A\",\r\n require: \"?ngModel\",\r\n link: function (scope, element, attrs, ngModel) {\r\n attributeSetup(attrs, element[0]);\r\n\r\n const currentClass = element[0].getAttribute(\"class\");\r\n element[0].setAttribute(\"class\", `legacy-content-editable ${currentClass}`);\r\n\r\n let sanitiseConfig = null;\r\n if (attrs.singleLine === \"true\") {\r\n sanitiseConfig = { ALLOWED_TAGS: HTML_INPUT.INLINE_TAGS_WHITELIST };\r\n }\r\n\r\n const pasteObject = new PasteService({\r\n onPasteComplete: onPaste,\r\n sanitizeConfig: sanitiseConfig,\r\n target: element[0]\r\n });\r\n\r\n const isNative = attrs.nativeContenteditable !== undefined;\r\n const updateEvents = isNative ? \"blur\" : \"blur keydown keyup texteditorchange input\";\r\n const saving_events = [\"keyup\", \"paste\", \"texteditorchange\", \"input\"];\r\n\r\n let dataUpdateTimer = 0;\r\n let old_model_value = undefined;\r\n\r\n if (!UserAgentService.safari) {\r\n // don't update localstorage on keydown\r\n // to avoid fake highlight saving, when user enters into editor toolbar\r\n saving_events.push(\"keydown\");\r\n }\r\n\r\n if (!ngModel) {\r\n return;\r\n } // do nothing if no ng-model\r\n\r\n if (UserAgentService.ios) {\r\n applyIosCaretNotAppearingOnTapFix(element[0]);\r\n }\r\n\r\n ngModel.$render = function () {\r\n const value = $sce.trustAsHtml(ngModel.$viewValue || \"\");\r\n // tslint:disable-next-line:no-unsafe-jq-lite\r\n element.html(value.toString());\r\n };\r\n\r\n function setA11yAttributes(isEditable) {\r\n if (!isEditable) {\r\n element[0].removeAttribute(\"aria-multiline\");\r\n if (element[0].attributes.role === \"textbox\") {\r\n element[0].removeAttribute(\"textbox\");\r\n }\r\n return;\r\n }\r\n\r\n if (element[0].attributes.role === undefined) {\r\n element[0].setAttribute(\"role\", \"textbox\");\r\n }\r\n\r\n element[0].setAttribute(\"aria-multiline\", attrs.singleLine !== \"true\");\r\n }\r\n\r\n setA11yAttributes(attrs[attributeName] !== \"false\");\r\n\r\n function preventLinkAction(e) {\r\n if (e.target.tagName === \"A\") {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n function onEventHappened(e) {\r\n if (attrs.singleLine && attrs.singleLine.toLowerCase() === \"true\" && e.keyCode === 13) {\r\n e.preventDefault();\r\n }\r\n\r\n if (e.type === \"blur\") {\r\n unbindAll();\r\n }\r\n\r\n if (isNative) {\r\n return;\r\n }\r\n\r\n if (saving_events.indexOf(e.type) > -1) {\r\n update();\r\n }\r\n }\r\n\r\n function update() {\r\n scope.$evalAsync(read);\r\n clearTimeout(dataUpdateTimer);\r\n dataUpdateTimer = setTimeout(function () {\r\n if (old_model_value !== ngModel.$viewValue) {\r\n triggerUpdateCallbacks(ngModel.$viewValue);\r\n }\r\n\r\n old_model_value = ngModel.$viewValue;\r\n }, 100);\r\n }\r\n\r\n function triggerUpdateCallbacks(value) {\r\n if (scope.updateModel) {\r\n scope.updateModel(attrs.saveTarget ? attrs.saveTarget : attrs.ngModel, value);\r\n }\r\n\r\n if (attrs.onUpdate) {\r\n const callback = helpers.getCallbackFromPath(scope, attrs.onUpdate);\r\n const callbackKey = attrs.onUpdateKey || \"\";\r\n if (callback) {\r\n scope.$apply(function () {\r\n callback(value, callbackKey);\r\n });\r\n }\r\n }\r\n }\r\n\r\n function onPaste() {\r\n read();\r\n triggerUpdateCallbacks(ngModel.$viewValue);\r\n }\r\n\r\n function bindAll() {\r\n old_model_value = ngModel.$viewValue;\r\n\r\n element.bind(\"click\", preventLinkAction);\r\n element.bind(updateEvents, onEventHappened);\r\n\r\n pasteObject.pastePlain = true;\r\n\r\n pasteObject.disable(); //Remove and previous event listeners, just in case of users not removing focus in a standard way (Console, or alt+tab);\r\n pasteObject.enable();\r\n }\r\n\r\n function unbindAll() {\r\n if (document.activeElement === element[0]) {\r\n return;\r\n }\r\n\r\n element.unbind(\"click\", preventLinkAction);\r\n element.unbind(updateEvents, onEventHappened);\r\n pasteObject.disable();\r\n $window.getSelection().removeAllRanges();\r\n }\r\n\r\n var clearEditableAttributeObserver = attrs.$observe(attributeName, function () {\r\n setA11yAttributes(attrs[attributeName] !== \"false\");\r\n if (attrs[attributeName] !== \"false\") {\r\n element.bind(\"focus\", bindAll); // start listening for event only when element is in focus\r\n // tslint:disable-next-line:triple-equals\r\n if (scope.contenteditable_deferred != undefined) {\r\n scope.contenteditable_deferred.resolve();\r\n }\r\n clearEditableAttributeObserver();\r\n }\r\n });\r\n\r\n // write data to the model\r\n function read() {\r\n let html = element.html();\r\n // when we clear the content editable the browser leaves a
behind\r\n // if strip-br attribute is provided then we strip this out\r\n if (html && (html.replace(/
/g, \"\").length === 0 || html === \"
\")) {\r\n element.empty();\r\n html = element.html();\r\n }\r\n ngModel.$setViewValue(html);\r\n }\r\n }\r\n };\r\n }\r\n ];\r\n};\r\n","export function applyIosCaretNotAppearingOnTapFix(element) {\r\n element.style.webkitUserSelect = \"auto\";\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { textEditableDirectiveFactory } from \"./TextEditableDirectiveFactory\";\r\n\r\nangularAMD.directive(\"contenteditable\", textEditableDirectiveFactory(\"contenteditable\"));\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nangularAMD.service(\"typeCheck\", TypeCheck);\r\nTypeCheck.$inject = [];\r\n\r\nfunction TypeCheck() {\r\n // Public API\r\n // =============================================================================================================\r\n this.isObject = isObject;\r\n this.isString = isString;\r\n this.isArray = isArray;\r\n this.isFunction = isFunction;\r\n\r\n // Private methods\r\n // =============================================================================================================\r\n function isObject(variable) {\r\n return variable !== null && typeof variable === \"object\";\r\n }\r\n\r\n function isString(variable) {\r\n return typeof variable === \"string\" || variable instanceof String;\r\n }\r\n\r\n function isArray(variable) {\r\n return variable.constructor === Array;\r\n }\r\n\r\n function isFunction(variable) {\r\n return typeof variable === \"function\";\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"./baseUrlsFactory\";\r\n\r\nangularAMD.provider(\"urlService\", UrlServiceProvider);\r\n\r\nfunction UrlServiceProvider() {\r\n var useRelativeAssetPaths = true;\r\n\r\n this.useRelativeAssetPaths = function (value) {\r\n useRelativeAssetPaths = value;\r\n };\r\n\r\n this.$get = [\r\n \"$http\",\r\n \"$window\",\r\n \"$location\",\r\n \"$routeParams\",\r\n \"$q\",\r\n \"baseUrlsFactory\",\r\n function ($http, $window, $location, $routeParams, $q, baseUrlsFactory) {\r\n return urlService($http, $window, $location, $routeParams, $q, baseUrlsFactory, useRelativeAssetPaths);\r\n }\r\n ];\r\n}\r\n\r\nfunction urlService($http, $window, $location, $routeParams, $q, baseUrlsFactory, useRelativeAssetPaths) {\r\n //Private variables --------------------------------------------------------------------------------------------\r\n var paths = {\r\n assetcollectionwrapper: \"collection\",\r\n form: \"template\",\r\n formresponse: \"template\",\r\n workbook: \"workbook\",\r\n workbookresponse: \"workbook\",\r\n webfoliopage: \"foliopage\",\r\n templatebuilder: \"builder/template\",\r\n workbookbuilder: \"builder/workbook\",\r\n activitylog: \"activitylog\",\r\n post: \"post\",\r\n blog: \"blog\",\r\n file: \"file\",\r\n webfolio: \"webfolio\",\r\n viewer: \"viewer\"\r\n };\r\n\r\n var pathsRegex = Object.keys(paths).map(function (key) {\r\n return new RegExp(\"#/\" + paths[key], \"i\");\r\n });\r\n\r\n //Private Methods ----------------------------------------------------------------------------------------------\r\n function getParameterByName(url, name) {\r\n name = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\r\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\"),\r\n results = regex.exec(url);\r\n return results === null ? \"\" : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\r\n }\r\n\r\n function fixMainType(mainType) {\r\n if (!mainType) {\r\n return paths.viewer;\r\n }\r\n\r\n var path = paths[mainType.toLowerCase()];\r\n return path !== void 0 ? path : paths.viewer;\r\n }\r\n\r\n function getSubmissionId(submissionId) {\r\n if (submissionId) {\r\n return submissionId;\r\n } else if ($routeParams.submissionId) {\r\n return $routeParams.submissionId;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n function getSubmissionIdQueryString(submissionId) {\r\n var queryStringSubmissionId = getSubmissionId(submissionId);\r\n\r\n if (queryStringSubmissionId) {\r\n return \"&submissionId=\" + queryStringSubmissionId;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n //Public API ---------------------------------------------------------------------------------------------------\r\n return {\r\n useRelativeAssetPaths: useRelativeAssetPaths,\r\n /**\r\n * Add parameters to a URL\r\n * @param url {String}\r\n * @param values {Array<{key: String, value: String}>}\r\n */\r\n addParameters: function (url, values) {\r\n var joiningChar = !/\\?/.test(url) ? \"?\" : \"&\";\r\n var regex = null;\r\n var param = null;\r\n for (var i = 0, l = values.length; i < l; i++) {\r\n regex = new RegExp(\"([?&])\" + values[i].key + \"=.*?(&|$)\", \"i\");\r\n param = values[i];\r\n\r\n if (url.match(regex) !== null) {\r\n url = url.replace(regex, \"$1\" + param.key + \"=\" + param.value + \"$2\");\r\n } else {\r\n url = url + joiningChar + param.key + \"=\" + param.value;\r\n }\r\n\r\n joiningChar = \"&\";\r\n }\r\n return url;\r\n },\r\n configureAssetUrl: function (url, overrideAction, compileUrl, timeslice, submissionId) {\r\n if (!this.useRelativeAssetPaths) {\r\n return url;\r\n }\r\n\r\n var urlSubmissionId = getSubmissionId(submissionId);\r\n\r\n var urlTimeslice = null;\r\n if (timeslice) {\r\n urlTimeslice = timeslice;\r\n // tslint:disable-next-line:triple-equals\r\n } else if (timeslice != 0) {\r\n urlTimeslice = $routeParams.timeslice;\r\n }\r\n\r\n var assetUrl = url;\r\n var id = getParameterByName(url, \"id\");\r\n var pageId = getParameterByName(url, \"pageId\");\r\n var location = getParameterByName(url, \"location\");\r\n var action = overrideAction || getParameterByName(url, \"action\");\r\n var maintype = getParameterByName(url, \"mainType\");\r\n var isPublic = $location.path().indexOf(\"public\") > -1;\r\n maintype = fixMainType(maintype);\r\n\r\n // If it can be loaded in the local project\r\n if (location.toLowerCase() === \"plushtml5\" || location.toLowerCase() === \"admissions\" || compileUrl) {\r\n // Use relative path instead\r\n\r\n if (action.toLowerCase() === \"edit\" && !isPublic) {\r\n assetUrl = \"#/\" + maintype.toLowerCase() + \"/\" + id;\r\n } else {\r\n // Check for public viewing\r\n if (isPublic) {\r\n assetUrl = \"#/public/\" + id;\r\n } else {\r\n assetUrl = \"#/viewer/\";\r\n\r\n if (urlSubmissionId) {\r\n assetUrl = assetUrl + urlSubmissionId + \"/\";\r\n }\r\n\r\n if (urlTimeslice) {\r\n assetUrl = assetUrl + urlTimeslice + \"/\";\r\n }\r\n\r\n assetUrl = assetUrl + id;\r\n }\r\n }\r\n\r\n if (pageId) {\r\n assetUrl = assetUrl + \"?pageId=\" + pageId;\r\n }\r\n }\r\n\r\n return assetUrl;\r\n },\r\n\r\n configureMappingUrl: function (assetId) {\r\n return `mapping/${assetId}`;\r\n },\r\n\r\n promisedGet: function (url, params) {\r\n $http.defaults.withCredentials = true;\r\n var httpTimeout = $q.defer();\r\n var request = $http.get(url, {\r\n timeout: httpTimeout.promise,\r\n params: params\r\n });\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return $q.reject(httpError);\r\n }\r\n );\r\n promise._httpTimeout = httpTimeout;\r\n return promise;\r\n },\r\n\r\n promisedPost: function (url, data) {\r\n $http.defaults.withCredentials = true;\r\n var httpTimeout = $q.defer();\r\n var request = $http.post(url, data, { timeout: httpTimeout.promise });\r\n var promise = request.then(\r\n function (response) {\r\n return response;\r\n },\r\n function (httpError) {\r\n return httpError;\r\n }\r\n );\r\n promise._httpTimeout = httpTimeout;\r\n return promise;\r\n },\r\n /**\r\n *\r\n * @param params Array\r\n * @returns {string}\r\n */\r\n getForwardingUrl: function (params) {\r\n return this.addParameters(baseUrlsFactory.forwarding_url, params);\r\n },\r\n getFileImageUrl: function (id, submissionId) {\r\n return baseUrlsFactory.api_base_url + \"file/transmitImage?id=\" + id + getSubmissionIdQueryString(submissionId) + \"&x=0&y=0\";\r\n },\r\n\r\n /**\r\n * @param {string} assetId\r\n * @param {string|null=} assetMainType\r\n * @param {Boolean=} viewMode\r\n * @param {Boolean=} publicUrl\r\n * @param {Number=} timeslice\r\n * @param {Number=} submissionid\r\n * @returns {string}\r\n */\r\n createBaseUrl: function (assetId, assetMainType, viewMode, publicUrl, timeslice, submissionId) {\r\n let url = \"\";\r\n\r\n let urlSubmissionId = getSubmissionId(submissionId);\r\n if (urlSubmissionId) {\r\n urlSubmissionId = urlSubmissionId + \"/\";\r\n }\r\n\r\n if (publicUrl) {\r\n url = \"/public/\" + assetId;\r\n } else if (viewMode) {\r\n url = \"/viewer/\" + urlSubmissionId + assetId;\r\n } else {\r\n url = \"/\" + fixMainType(assetMainType) + \"/\" + assetId;\r\n }\r\n\r\n //url could be set to /viewer/ via the viewMode Boolean or fixMainType, so we have to check the current value here;\r\n if (/^\\/viewer/.test(url)) {\r\n let urlTimeslice = null;\r\n if (timeslice) {\r\n urlTimeslice = timeslice;\r\n // tslint:disable-next-line:triple-equals\r\n } else if (timeslice != 0) {\r\n urlTimeslice = $routeParams.timeslice;\r\n }\r\n\r\n if (urlTimeslice) {\r\n url = \"/viewer/\" + urlSubmissionId + urlTimeslice + \"/\" + assetId;\r\n }\r\n }\r\n\r\n return url;\r\n },\r\n\r\n /**\r\n * @param {string} assetId\r\n * @param {string|null=} assetMainType\r\n * @param {Boolean=} viewMode\r\n * @param {Boolean=} publicUrl\r\n * @param {Number=} timeslice\r\n * @param {Number=} submissionid\r\n * @param {Boolean=} includeHistoryId\r\n * @returns {string}\r\n */\r\n createUrl: function (assetId, assetMainType, viewMode, publicUrl, timeslice, submissionId, includeHistoryId) {\r\n let url = this.createBaseUrl(assetId, assetMainType, viewMode, publicUrl, timeslice, submissionId);\r\n\r\n if (includeHistoryId && $routeParams.historyId) {\r\n url += `?historyId=${$routeParams.historyId}`;\r\n }\r\n\r\n return url;\r\n },\r\n\r\n createHashUrl: function (assetId, assetMainType, viewMode, publicUrl, timeslice, submissionId, includeHistoryId) {\r\n return `#${this.createUrl(assetId, assetMainType, viewMode, publicUrl, timeslice, submissionId, includeHistoryId)}`;\r\n },\r\n\r\n setNavId: function (url) {\r\n if ($routeParams.navId) {\r\n const joiningChar = !/\\?/.test(url) ? \"?\" : \"&\";\r\n url += `${joiningChar}navId=${$routeParams.navId}`;\r\n }\r\n\r\n return url;\r\n },\r\n\r\n isAsset: function (url) {\r\n return !!(getParameterByName(url, \"id\") && getParameterByName(url, \"mainType\"));\r\n },\r\n\r\n isViewer: function (url) {\r\n return /\\/viewer\\//.test(url);\r\n },\r\n\r\n isPublic: function (url) {\r\n return /\\/public\\//.test(url);\r\n },\r\n\r\n isSupportedRoute: function (url) {\r\n if (url[0] !== \"#\" && url.indexOf($window.location.origin) === -1) {\r\n return false;\r\n }\r\n\r\n return pathsRegex.some((pathRegex) => pathRegex.test(url));\r\n },\r\n\r\n createStoreRedirectUrl: function (path) {\r\n return this.checkIfAssetFromPath(path) ? \"/store?type=asset\" : \"/store?type=resource\";\r\n },\r\n\r\n checkIfAssetFromPath: function (path) {\r\n return !/\\/builder\\/(template|workbook)\\//.test(path);\r\n },\r\n\r\n checkIfOnBuilderForAsset: function (assetId, mainType) {\r\n var typePath = fixMainType(mainType);\r\n\r\n if (typePath === \"viewer\") {\r\n return false;\r\n }\r\n\r\n return new RegExp(\"/\" + typePath + \"/\" + assetId).test($location.path());\r\n },\r\n\r\n removeHash: function (path) {\r\n var hashIndex = path.indexOf(\"#\");\r\n return hashIndex !== -1 ? path.slice(hashIndex + 1) : path;\r\n },\r\n\r\n getTimesliceQueryString: function () {\r\n return $routeParams.timeslice ? \"×lice=\" + $routeParams.timeslice : \"\";\r\n },\r\n\r\n getTimesliceFromRoute: function () {\r\n return $routeParams.timeslice ? $routeParams.timeslice : \"\";\r\n },\r\n\r\n getParameterByName: getParameterByName,\r\n\r\n isUrl: function (value) {\r\n return /^http(s)?:\\/\\//.test(value);\r\n },\r\n\r\n convertRouteToFullUrl: function (route) {\r\n return `${location.origin}${location.pathname}${route}`;\r\n },\r\n\r\n getRouteFromFullUrl: function (url) {\r\n const hashIndex = url.indexOf(\"#\");\r\n if (hashIndex === -1 || url.slice(0, hashIndex) !== `${location.origin}${location.pathname}`) {\r\n return \"\";\r\n }\r\n\r\n return url.slice(hashIndex);\r\n }\r\n };\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSET_CONSTANTS } from \"../../constants/asset.constants\";\r\nimport \"../../assetStore/services/assetStoreService\";\r\nimport \"../../utilities/helpers\";\r\nimport \"../../utilities/urlService\";\r\n\r\nangularAMD.service(\"VersionHelper\", VersionHelper);\r\nVersionHelper.$inject = [\"$routeParams\", \"assetStoreService\", \"helpers\", \"urlService\"];\r\n\r\nfunction VersionHelper($routeParams, assetStoreService, helpers, urlService) {\r\n //Public API\r\n //==============================================================================================================\r\n this.getAssetVersions = getAssetVersions;\r\n this.validateTimeslice = validateTimeslice;\r\n this.isTimesliceSupportedAPICall = isTimesliceSupportedAPICall;\r\n this.isSupportedByAssetType = isSupportedByAssetType;\r\n this.getUrlTimeslice = getUrlTimeslice;\r\n this.isUnsupportedByAssetTypeToDisplayMessage = isUnsupportedByAssetTypeToDisplayMessage;\r\n\r\n //Private Variables\r\n //==============================================================================================================\r\n //Temp whitelist of API calls to ensure to possible conflict.\r\n var timesliceSupportedAPIs = [\"assetDto/GetAssetAndCheckPermission\"];\r\n\r\n var supportedMainTypes = [\r\n ASSET_CONSTANTS.TYPES.ACTIVITY_LOG,\r\n ASSET_CONSTANTS.TYPES.BLOG,\r\n ASSET_CONSTANTS.TYPES.COLLECTION_WRAPPER,\r\n ASSET_CONSTANTS.TYPES.COLLECTION,\r\n ASSET_CONSTANTS.TYPES.FILE,\r\n ASSET_CONSTANTS.TYPES.FORM_RESPONSE,\r\n ASSET_CONSTANTS.TYPES.POST,\r\n ASSET_CONSTANTS.TYPES.WEBFOLIO_PAGE,\r\n ASSET_CONSTANTS.TYPES.WEBFOLIO,\r\n ASSET_CONSTANTS.TYPES.WORKBOOK_RESPONSE\r\n ];\r\n\r\n var unsupportedSubTypes = [\r\n ASSET_CONSTANTS.SUB_TYPES.ACCOLADE,\r\n ASSET_CONSTANTS.SUB_TYPES.AFFILIATION,\r\n ASSET_CONSTANTS.SUB_TYPES.BELIEF,\r\n ASSET_CONSTANTS.SUB_TYPES.EMPLOYMENT,\r\n ASSET_CONSTANTS.SUB_TYPES.HOBBY,\r\n ASSET_CONSTANTS.SUB_TYPES.LANGUAGE,\r\n ASSET_CONSTANTS.SUB_TYPES.PERSONAL_STATEMENT,\r\n ASSET_CONSTANTS.SUB_TYPES.PUBLICATION,\r\n ASSET_CONSTANTS.SUB_TYPES.QUALIFICATION,\r\n ASSET_CONSTANTS.SUB_TYPES.REFEREE,\r\n ASSET_CONSTANTS.SUB_TYPES.ROLE\r\n ];\r\n\r\n var isUnsupportedByAssetTypeToDisplayMessage = [ASSET_CONSTANTS.TYPES.CONVERSATION, ASSET_CONSTANTS.TYPES.CALLING_CARD];\r\n\r\n //Private Methods\r\n //==============================================================================================================\r\n function getAssetVersions(id) {\r\n return assetStoreService.getAssetVersions(id).then(function (response) {\r\n // if there are any previous versions then map the data as needed\r\n if (response && response.data) {\r\n if (helpers.isNotEmptyArray(response.data.Versions)) {\r\n response.data.Versions = response.data.Versions.map(mapVersionResponse);\r\n }\r\n return response.data;\r\n }\r\n return null;\r\n });\r\n }\r\n\r\n function mapVersionResponse(versionResponse) {\r\n return {\r\n Id: versionResponse.Id,\r\n Modified: versionResponse.Modified,\r\n ModifiedBy: versionResponse.ModifiedBy,\r\n ModifiedByName: versionResponse.ModifiedByName,\r\n MainType: versionResponse.MainType,\r\n Timeslice: versionResponse.Timeslice,\r\n Url: urlService.createHashUrl(versionResponse.Id, versionResponse.MainType, true, false, versionResponse.Timeslice)\r\n };\r\n }\r\n\r\n function isTimesliceSupportedAPICall(url) {\r\n var lowerUrl = url.toLowerCase();\r\n return timesliceSupportedAPIs.some(function (apiUrl) {\r\n return lowerUrl.indexOf(apiUrl.toLowerCase()) !== -1;\r\n });\r\n }\r\n\r\n function validateTimeslice(timeslice) {\r\n //If timeslice is null, undefined, or contains non-digit characters (0-9 only) return false!\r\n if (/^\\d+$/.test(timeslice)) {\r\n var timesliceMS = getUrlTimeslice(timeslice);\r\n //If timeslice is 0 or in the future return false - CertainLy not 100% accurate, JS value may be a several microseconds out of sync as we cant get UNIX ticks!\r\n return !!(timesliceMS && timesliceMS <= Date.now());\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Convert backend ticks based timeslice to readable ms timeslice\r\n * @param {number=} timeslice\r\n * @returns {number}\r\n */\r\n function getUrlTimeslice(timeslice) {\r\n var urlTimeslice = timeslice !== undefined ? timeslice : $routeParams.timeslice;\r\n\r\n if (urlTimeslice === undefined) {\r\n return 0;\r\n }\r\n\r\n return timeslice <= 10000 ? timeslice : Math.floor(parseInt(urlTimeslice, 10) / 10000);\r\n }\r\n\r\n function isSupportedByAssetType(mainType, subType) {\r\n return supportedMainTypes.contains(mainType) && !unsupportedSubTypes.contains(subType);\r\n }\r\n\r\n function isUnsupportedByAssetTypeToDisplayMessage(mainType, subType) {\r\n if (isSupportedByAssetType(mainType, subType)) {\r\n return false;\r\n }\r\n return isUnsupportedByAssetTypeToDisplayMessage.contains(mainType);\r\n }\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport \"../../modal/services/modal\";\r\nimport \"../../assetEndpointService/assetEndpoint.service\";\r\nimport \"../../iWantTo/services/iWantToService\";\r\nimport \"../../builder/dataManager/dataManagerService\";\r\nimport { PageModelSearch } from \"../../pageModelSearch/pageModelSearch\";\r\nimport \"../../spaMenu/assetFilteringService/assetFiltering.service\";\r\nimport \"../../assetFiltering/assetFilteringConfig.provider\";\r\nimport { MAP_TO_STANDARDS_CONSTANTS } from \"../../constants/mapToStandards.constants\";\r\nimport { ASSET_CONSTANTS } from \"../../constants/asset.constants\";\r\nimport { ELEMENT_CONSTANTS } from \"../../constants/element.constants\";\r\n\r\nangularAMD.service(\"StandardsService\", StandardsService);\r\n\r\nStandardsService.$inject = [\"$http\", \"baseUrlsFactory\", \"urlService\", \"modal\", \"AssetEndpointService\", \"dataManagerService\", \"$q\", \"assetFilteringService\", \"assetFilteringConfig\"];\r\n\r\nfunction StandardsService($http, baseUrlsFactory, urlService, modal, AssetEndpointService, dataManagerService, $q, assetFilteringService, assetFilteringConfig) {\r\n this.getStandards = (workBookId, submissionId = null) => {\r\n return $http.get(`${baseUrlsFactory.api_base_url}WorkBook/GetStandards?workBookId=${workBookId}&submissionId=${submissionId}`).then((response) => {\r\n const data = response.data;\r\n data.Groups = data.Groups.map((group) => this._convertCapabilitiesToStandards(group));\r\n return data;\r\n });\r\n };\r\n\r\n /*\r\n TODO: Remove convertCapabilitiesToStandards once getAllStandardsWorkbooksForOrg is removed\r\n getAllStandardsWorkbooksForOrg returns .Standards, this endpoint returns .Capabilities\r\n In an attempt to keep as much of the code as possibly unchanged to prevent any possibly issues with\r\n EWC standards we're converting .Capabilities to .Standards.\r\n */\r\n this._convertCapabilitiesToStandards = (group) => {\r\n if (group.Groups.length) {\r\n group.Groups.map((group) => this._convertCapabilitiesToStandards(group));\r\n }\r\n\r\n group.Standards = group.Capabilities.map((capability) => {\r\n capability.Checked = capability.IsMapped;\r\n return capability;\r\n });\r\n\r\n delete group.Capabilities;\r\n return group;\r\n };\r\n\r\n this.canFilterEvidence = (assetId, canWaitForDto = true) => {\r\n let managerPromise;\r\n\r\n if (!canWaitForDto) {\r\n let manager = dataManagerService.getDto(assetId);\r\n\r\n if (manager === null || manager === undefined) {\r\n return $q.resolve(false);\r\n }\r\n\r\n managerPromise = $q.resolve(manager);\r\n } else {\r\n managerPromise = dataManagerService.waitForDto(assetId);\r\n }\r\n\r\n return managerPromise\r\n .then((manager) => {\r\n if (manager.data.MainType !== ASSET_CONSTANTS.TYPES.WORKBOOK_RESPONSE) {\r\n return false;\r\n }\r\n\r\n if (assetFilteringConfig.disableWhenInFolders.includes(manager.data.AssetFolder)) {\r\n return false;\r\n }\r\n\r\n if (manager.data.SubType === ASSET_CONSTANTS.SUB_TYPES.STANDARDS) {\r\n return true;\r\n }\r\n\r\n const pageSearch = new PageModelSearch(manager.data.Pages);\r\n const hasStandardsPage = pageSearch.contains((p) => p.PageSubType === ASSET_CONSTANTS.SUB_TYPES.STANDARDS);\r\n\r\n if (hasStandardsPage) {\r\n return true;\r\n }\r\n\r\n return false;\r\n })\r\n .catch(() => {\r\n return false;\r\n });\r\n };\r\n\r\n this.includesStandardsElements = (assetId) => {\r\n const managerPromise = dataManagerService.waitForDto(assetId);\r\n\r\n return managerPromise.then((manager) => {\r\n const elements = manager.data.Elements;\r\n\r\n if (elements === undefined) {\r\n return false;\r\n }\r\n\r\n return elements.some(\r\n (element) =>\r\n element.ElementType === ELEMENT_CONSTANTS.TYPES.STANDARDS_SELECTION ||\r\n element.ElementType === ELEMENT_CONSTANTS.TYPES.STANDARDS ||\r\n element.ElementType === ELEMENT_CONSTANTS.TYPES.FORM_BASIC_CONTAINER\r\n );\r\n });\r\n };\r\n\r\n this.getMappableCapabilities = (userId, assetId) => {\r\n return $http.get(`${baseUrlsFactory.api_base_url}Capability/GetMappableCapabilities?userId=${userId}&assetId=${assetId}`).then((response) => {\r\n const data = response.data.map((item) => {\r\n item.Groups = item.Groups.map((group) => this._convertCapabilitiesToStandards(group));\r\n return item;\r\n });\r\n return data;\r\n });\r\n };\r\n\r\n this.getAllStandardsWorkbooksForOrg = (assetId, submissionId = null) => {\r\n return $http.get(`${baseUrlsFactory.api_base_url}WorkBook/GetAllStandardsWorkbooksForOrg?assetId=${assetId}&submissionId=${submissionId}`).then((response) => {\r\n return response.data.map((item) => {\r\n item.Groups = item.Groups.map((group) => this._convertCapabilitiesToStandards(group));\r\n return item;\r\n });\r\n });\r\n };\r\n\r\n this.getSelectedStandards = (standardsAnswersArray) => {\r\n return standardsAnswersArray.map((answer) => {\r\n return {\r\n PageId: answer.PageId,\r\n PageFormId: answer.PageFormId,\r\n FormElementId: answer.ElementId,\r\n ElementId: answer.ElementId,\r\n WorkBookId: answer.WorkBookRefId || answer.WorkBookId,\r\n Rating: answer.Rating\r\n };\r\n });\r\n };\r\n\r\n this.setStandards = (standards) => {\r\n return urlService.promisedPost(`${baseUrlsFactory.api_base_url}WorkBook/SetStandards`, standards);\r\n };\r\n\r\n this._buildNewCapabilityMap = (capabilities, newCapabilities, assetRefId = null) => {\r\n return capabilities.reduce((accumulator, capability) => {\r\n const groupItem = {\r\n Pages: [],\r\n Capabilities: [],\r\n AssetRefId: capability.AssetRefId || capability.PageFormId,\r\n PageId: capability.AssetId || capability.PageId\r\n };\r\n\r\n const currentRefId = capability.AssetRefId || assetRefId;\r\n\r\n if (capability.MainType === \"Form\") {\r\n if (capability.Groups.length > 0) {\r\n groupItem.Capabilities = capability.Groups[0].Standards.reduce((caps, item) => {\r\n var addCapability = newCapabilities.find((newCap) => currentRefId === newCap.AssetRefId && newCap.ElementId === item.ElementId);\r\n if (addCapability !== undefined) {\r\n caps.push({\r\n ElementId: addCapability.ElementId,\r\n Justification: addCapability.Justification\r\n });\r\n }\r\n return caps;\r\n }, []);\r\n }\r\n } else {\r\n if (capability.Groups !== undefined && capability.Groups.length > 0) {\r\n groupItem.Pages = this._buildNewCapabilityMap(capability.Groups, newCapabilities, currentRefId);\r\n } else if (capability.Standards !== undefined && capability.Standards.length > 0) {\r\n groupItem.Capabilities = capability.Standards.reduce((caps, item) => {\r\n const addCapability = newCapabilities.find((newCap) => currentRefId === newCap.AssetRefId && newCap.PageId === capability.PageId && newCap.ElementId === item.ElementId);\r\n if (addCapability !== undefined) {\r\n caps.push({\r\n ElementId: addCapability.ElementId,\r\n Justification: addCapability.Justification\r\n });\r\n }\r\n\r\n return caps;\r\n }, []);\r\n }\r\n }\r\n\r\n if ((groupItem.Pages !== undefined && groupItem.Pages.length > 0) || (groupItem.Capabilities !== undefined && groupItem.Capabilities.length > 0)) {\r\n accumulator.push(groupItem);\r\n }\r\n return accumulator;\r\n }, []);\r\n };\r\n\r\n this.saveCapabilitiesFromStandards = (assetId, standardsData, addedCaps, removedCaps, updatedJustifications) => {\r\n const promises = [];\r\n const ADD_FAIL = MAP_TO_STANDARDS_CONSTANTS.CAPABILTY_SAVE_RESPONSES.ADD_FAIL;\r\n const UPDATE_FAIL = MAP_TO_STANDARDS_CONSTANTS.CAPABILTY_SAVE_RESPONSES.UPDATE_FAIL;\r\n const REMOVE_FAIL = MAP_TO_STANDARDS_CONSTANTS.CAPABILTY_SAVE_RESPONSES.REMOVE_FAIL;\r\n\r\n if (updatedJustifications.length > 0) {\r\n const updateCapabilitiesFormat = {\r\n EvidenceAssetRefId: assetId,\r\n Mappings: this._buildNewCapabilityMap(standardsData, updatedJustifications)\r\n };\r\n\r\n promises.push(\r\n this._updateCapabilities(updateCapabilitiesFormat)\r\n .then(() => MAP_TO_STANDARDS_CONSTANTS.CAPABILTY_SAVE_RESPONSES.UPDATE_SUCCESS)\r\n .catch(() => UPDATE_FAIL)\r\n );\r\n }\r\n\r\n if (addedCaps.length > 0) {\r\n const addCapabilitiesFormat = {\r\n EvidenceAssetRefId: assetId,\r\n Mappings: this._buildNewCapabilityMap(standardsData, addedCaps)\r\n };\r\n\r\n promises.push(\r\n this._addCapabilities(addCapabilitiesFormat)\r\n .then(() => MAP_TO_STANDARDS_CONSTANTS.CAPABILTY_SAVE_RESPONSES.ADD_SUCCESS)\r\n .catch(() => ADD_FAIL)\r\n );\r\n }\r\n\r\n if (removedCaps.length > 0) {\r\n const removeCapabilitiesFormat = {\r\n EvidenceAssetRefId: assetId,\r\n Mappings: this._buildNewCapabilityMap(standardsData, removedCaps)\r\n };\r\n\r\n promises.push(\r\n this._removeCapabilities(removeCapabilitiesFormat)\r\n .then(() => MAP_TO_STANDARDS_CONSTANTS.CAPABILTY_SAVE_RESPONSES.REMOVE_SUCCESS)\r\n .catch(() => REMOVE_FAIL)\r\n );\r\n }\r\n\r\n return $q.all(promises).then((messages) => {\r\n const failureMessages = [ADD_FAIL, UPDATE_FAIL, REMOVE_FAIL];\r\n const hasARequestFailed = messages.some((msg) => failureMessages.includes(msg));\r\n if (hasARequestFailed) {\r\n return $q.reject(messages);\r\n }\r\n return messages;\r\n });\r\n };\r\n\r\n this._updateCapabilities = (updatedCapabilities) => {\r\n return $http.post(`${baseUrlsFactory.api_base_url}EvidenceMap/Update`, updatedCapabilities);\r\n };\r\n\r\n this._addCapabilities = (saveObj) => {\r\n return $http.put(`${baseUrlsFactory.api_base_url}EvidenceMap/Add`, saveObj);\r\n };\r\n\r\n this._removeCapabilities = (removeObj) => {\r\n return $http({\r\n method: \"DELETE\",\r\n url: `${baseUrlsFactory.api_base_url}EvidenceMap/Remove`,\r\n data: removeObj,\r\n headers: { \"Content-type\": \"application/json\" }\r\n });\r\n };\r\n\r\n this._pendingStandardsForAssetRequests = new Map();\r\n\r\n this.getStandardsForAsset = (assetId, submissionId = null, timeslice = null) => {\r\n const key = `${assetId}-${submissionId}-${timeslice}`;\r\n const pending = this._pendingStandardsForAssetRequests.get(key);\r\n if (pending !== undefined) {\r\n return pending;\r\n }\r\n\r\n const request = $http.get(`${baseUrlsFactory.api_base_url}WorkBook/GetStandardsForAsset?assetId=${assetId}&submissionId=${submissionId}×lice=${timeslice}`).then((response) => {\r\n const data = response.data;\r\n data.Standards = data.Standards.map((standard) => {\r\n standard.AssetRefId = standard.WorkBookId;\r\n return standard;\r\n });\r\n return data;\r\n });\r\n\r\n this._pendingStandardsForAssetRequests.set(key, request);\r\n request.finally(() => setTimeout(this._pendingStandardsForAssetRequests.delete(key), 5000));\r\n return request;\r\n };\r\n\r\n this.isStandardSelected = (standardElementId, standardPageId, selectedStandards) => {\r\n if (selectedStandards.length > 0) {\r\n for (let i = 0; i < selectedStandards.length; i++) {\r\n if (selectedStandards[i].ElementId === standardElementId && selectedStandards[i].PageId === standardPageId) {\r\n return true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n this.openStandardsInfo = (title, info, btnLabel) => {\r\n modal.launch(\r\n `${baseUrlsFactory.shared_component_base_url}modalDialogComponent/templates/generic-pop-up.lazy.html`,\r\n {\r\n title: title,\r\n message: info,\r\n button_label: btnLabel\r\n },\r\n {\r\n focusStyle: false,\r\n disableFocusScroll: true\r\n }\r\n );\r\n };\r\n\r\n this.removeMapping = (data) => {\r\n return AssetEndpointService.removeMapping(data);\r\n };\r\n\r\n this.getStandardsOverviewData = (assetId, pageId, submissionId, timeslice) => {\r\n return assetFilteringService\r\n .loadExistingFilter(assetId)\r\n .then((filter) => {\r\n const nonPersistentFilter = this._getNonPersistentFilter(filter);\r\n const filterArray = nonPersistentFilter === null ? [] : [nonPersistentFilter];\r\n return AssetEndpointService.getStandardsOverviewData(assetId, pageId, submissionId, timeslice, filterArray);\r\n })\r\n .then((response) => response.data);\r\n };\r\n\r\n this.getStandardsPageOverviews = (assetId, pageId, submissionId, timeslice) => {\r\n return assetFilteringService\r\n .loadExistingFilter(assetId)\r\n .then((filter) => {\r\n const nonPersistentFilter = this._getNonPersistentFilter(filter);\r\n const filterArray = nonPersistentFilter === null ? [] : [nonPersistentFilter];\r\n return AssetEndpointService.getStandardsPageOverviews(assetId, pageId, submissionId, timeslice, filterArray);\r\n })\r\n .then((response) => response.data);\r\n };\r\n\r\n this.getStandardsElementsData = (assetId, pageId, submissionId, timeslice) => {\r\n return assetFilteringService\r\n .loadExistingFilter(assetId)\r\n .then((filter) => {\r\n const nonPersistentFilter = this._getNonPersistentFilter(filter);\r\n const filterArray = nonPersistentFilter === null ? [] : [nonPersistentFilter];\r\n return AssetEndpointService.getStandardsElementsData(assetId, pageId, submissionId, timeslice, filterArray);\r\n })\r\n .then((response) => response.data);\r\n };\r\n\r\n this.getAssessmentOverview = (assetId, pageId, submissionId, timeslice) => {\r\n return assetFilteringService\r\n .loadExistingFilter(assetId)\r\n .then((filter) => {\r\n const nonPersistentFilter = this._getNonPersistentFilter(filter);\r\n const filterArray = nonPersistentFilter === null ? [] : [nonPersistentFilter];\r\n return AssetEndpointService.getAssessmentOverview(assetId, pageId, submissionId, timeslice, filterArray);\r\n })\r\n .then((response) => response.data);\r\n };\r\n\r\n this._getNonPersistentFilter = (filter) => {\r\n if (filter !== null && !filter.IsPersistent) {\r\n return filter;\r\n }\r\n\r\n return null;\r\n };\r\n}\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\nimport { ASSET_CONSTANTS } from \"../../constants/asset.constants\";\r\nimport \"../../multiLanguageService/multiLanguageService\";\r\nimport \"../../modal/services/modal\";\r\nimport \"../../share/services/shareService\";\r\nimport \"../../utilities/baseUrlsFactory\";\r\nimport \"../../builder/dataManager/dataManagerService\";\r\nimport { ButtonClass } from \"@pjs/core-ui\";\r\n\r\nangularAMD.factory(\"workbookService\", [\r\n \"$filter\",\r\n \"$rootScope\",\r\n \"$sce\",\r\n \"$location\",\r\n \"$q\",\r\n \"multiLanguageService\",\r\n \"modal\",\r\n \"shareService\",\r\n \"baseUrlsFactory\",\r\n \"dataManagerService\",\r\n \"StatusToolbarFactory\",\r\n \"StatusToolbar\",\r\n function ($filter, $rootScope, $sce, $location, $q, multiLanguageService, modal, shareService, baseUrlsFactory, dataManagerService, statusToolbarFactory, statusToolbar) {\r\n return {\r\n createCriteriaString: function (collectionDto) {\r\n var resultString = \"\";\r\n var spacer = \" | \";\r\n\r\n if (collectionDto.Search.ResponsesTo !== null && collectionDto.Search.ResponsesTo !== undefined) {\r\n resultString += multiLanguageService.getString(\"collections.criteria.stringText.responses_to\", { title: collectionDto.Search.ResponsesTo.Title });\r\n } else {\r\n // add the asset type\r\n resultString += this.getTypeFromCriteria(collectionDto);\r\n }\r\n\r\n // if keyword list exists add them\r\n if (collectionDto.Search.Keywords && collectionDto.Search.Keywords.length > 0) {\r\n resultString +=\r\n spacer +\r\n multiLanguageService.getString(\"collections.criteria.stringText.keywords\", {\r\n count: collectionDto.Search.Keywords.length,\r\n keywords: collectionDto.Search.Keywords\r\n });\r\n }\r\n\r\n // if tags exist add them\r\n if (collectionDto.Search.Tags && collectionDto.Search.Tags.length > 0) {\r\n resultString += spacer + multiLanguageService.getString(\"collections.criteria.stringText.tagged\", { tags: collectionDto.Search.Tags });\r\n }\r\n\r\n // if created after exists\r\n if (collectionDto.Search.CreatedAfter) {\r\n resultString +=\r\n spacer + multiLanguageService.getString(\"collections.criteria.stringText.created_after\", { createdAfter: $filter(\"pebbleDate\")(collectionDto.Search.CreatedAfter.DateValue) });\r\n }\r\n\r\n // if created before exists\r\n if (collectionDto.Search.CreatedBefore) {\r\n resultString +=\r\n spacer +\r\n multiLanguageService.getString(\"collections.criteria.stringText.created_before\", { createdBefore: $filter(\"pebbleDate\")(collectionDto.Search.CreatedBefore.DateValue) });\r\n }\r\n\r\n if (collectionDto.Search.EnableSearchByDefault) {\r\n resultString += spacer + multiLanguageService.getString(\"collections.criteria.stringText.search_enabled\");\r\n }\r\n\r\n return resultString;\r\n },\r\n\r\n getTypeFromCriteria: function (collectionDto) {\r\n var type = collectionDto.Search.SubType || collectionDto.Filter.Category;\r\n\r\n if (!type) {\r\n // if null or undefined then the search is for all assets\r\n return multiLanguageService.getString(\"pebble_terms.asset_categories.all_assets\");\r\n }\r\n\r\n var dict = {\r\n activitylog: multiLanguageService.getString(\"builder.workbook.asset_names.activity_log\"),\r\n assetcollectionwrapper: multiLanguageService.getString(\"builder.workbook.asset_names.collection\"),\r\n blog: multiLanguageService.getString(\"builder.workbook.asset_names.blog\"),\r\n post: multiLanguageService.getString(\"builder.workbook.asset_names.post\"),\r\n webfolio: multiLanguageService.getString(\"builder.workbook.asset_names.portfolio\"),\r\n webfoliopage: multiLanguageService.getString(\"builder.workbook.asset_names.page\"),\r\n workbookresponse: multiLanguageService.getString(\"builder.workbook.asset_names.workbook\"),\r\n worksheet: multiLanguageService.getString(\"builder.workbook.asset_names.worksheet\"),\r\n experience: multiLanguageService.getString(\"builder.workbook.asset_names.experience\"),\r\n plan: multiLanguageService.getString(\"builder.workbook.asset_names.plan\"),\r\n reflection: multiLanguageService.getString(\"builder.workbook.asset_names.reflection\"),\r\n talent: multiLanguageService.getString(\"builder.workbook.asset_names.talent\"),\r\n file: multiLanguageService.getString(\"builder.workbook.asset_names.file\"),\r\n image: multiLanguageService.getString(\"builder.workbook.asset_names.image\"),\r\n video: multiLanguageService.getString(\"builder.workbook.asset_names.video\"),\r\n audio: multiLanguageService.getString(\"pebble_terms.asset_types.audio\", { count: 1 }),\r\n \"document/pdf\": multiLanguageService.getString(\"pebble_terms.asset_types.documentpdf\", { count: 1 }),\r\n documents: multiLanguageService.getString(\"pebble_terms.asset_categories.documents\"),\r\n otherfiles: multiLanguageService.getString(\"pebble_terms.asset_categories.other_files\"),\r\n allassets: multiLanguageService.getString(\"pebble_terms.asset_categories.all_assets\")\r\n };\r\n\r\n var foundType = type ? dict[type.toLowerCase()] : \"\";\r\n return foundType || type;\r\n },\r\n\r\n onLoadAutoSubmitModal: function (response) {\r\n var isolatedScope = $rootScope.$new(true);\r\n isolatedScope.goToResourceStore = function () {\r\n $location.path(\"store/\").search({ type: \"resource\" });\r\n };\r\n return shareService.getSubmissionLocationDetails(response.Asset.AssignmentId).then(\r\n function (response) {\r\n isolatedScope.workspaceAssignmentBlockUrl = baseUrlsFactory.shared_component_base_url + \"share/templates/workspace-assignment-deadline-blocks.lazy.html\";\r\n isolatedScope.imageSharedBy = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/sharedBy.svg\");\r\n isolatedScope.imageAssignment = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/assignment.svg\");\r\n isolatedScope.imageWorkspace = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/workspace.svg\");\r\n isolatedScope.imageSharedAfter = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/sharedAfter.svg\");\r\n isolatedScope.imageRevisedUntil = $sce.getTrustedResourceUrl(baseUrlsFactory.shared_component_base_url + \"images/sharing/revisedUntil.svg\");\r\n\r\n isolatedScope.selectedAssignment = response.data;\r\n isolatedScope.selectedAssignment.IsAutoSubmitInfo = true;\r\n isolatedScope.showTerms = false;\r\n isolatedScope.submissionCountInfo = multiLanguageService.getString(\"sharing.labels.submission_count_info\", {\r\n user_num_shares: isolatedScope.selectedAssignment.UserSubmissionCount,\r\n total_num_shares: isolatedScope.selectedAssignment.SubmissionsPerUser,\r\n count: isolatedScope.selectedAssignment.UserSubmissionCount\r\n });\r\n\r\n isolatedScope.onClose = function () {\r\n isolatedScope.$destroy();\r\n };\r\n\r\n modal.newModal(\r\n {\r\n scope: isolatedScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"workbook/workbookFiller/templates/auto-submit-warning-modal.lazy.html\",\r\n disableClose: true\r\n },\r\n true\r\n );\r\n },\r\n function (rejection) {\r\n var deferred = $q.defer();\r\n\r\n isolatedScope.title = multiLanguageService.getString(\"workbook.error_modals.generic_title\");\r\n isolatedScope.message = multiLanguageService.getString(\"workbook.error_modals.unable_get_response.message\");\r\n isolatedScope.button_label = multiLanguageService.getString(\"buttons.confirm\");\r\n isolatedScope.onClose = function () {\r\n deferred.reject();\r\n isolatedScope.goToResourceStore();\r\n isolatedScope.$destroy();\r\n };\r\n\r\n modal.newModal(\r\n {\r\n scope: isolatedScope,\r\n templateUrl: modal.genericTemplates.popup\r\n },\r\n true\r\n );\r\n\r\n return deferred.promise;\r\n }\r\n );\r\n },\r\n\r\n isPageUserDefined: function (page) {\r\n var isUserDefined = false;\r\n\r\n switch (page.PageType) {\r\n case ASSET_CONSTANTS.TYPES.ACTIVITY_LOG:\r\n var extraInfo = page.ExtraInfo;\r\n isUserDefined = extraInfo && !(extraInfo.TargetHours || extraInfo.TargetPoints) && page.ExtraInfo.UserCreatedCollection;\r\n break;\r\n case ASSET_CONSTANTS.TYPES.COLLECTION_WRAPPER:\r\n isUserDefined = page.ExtraInfo && page.ExtraInfo.UserCreatedCollection;\r\n break;\r\n case ASSET_CONSTANTS.SPECIAL_TYPES.APPLICANT:\r\n case ASSET_CONSTANTS.TYPES.COLLECTION:\r\n isUserDefined = false;\r\n break;\r\n default:\r\n isUserDefined = true;\r\n break;\r\n }\r\n\r\n return !!isUserDefined;\r\n },\r\n\r\n isTemplatePage: function (page) {\r\n return page.PageType === ASSET_CONSTANTS.TYPES.FORM || page.PageType === ASSET_CONSTANTS.TYPES.FORM_RESPONSE;\r\n },\r\n\r\n displayRemovalModal: function (assetId, action, isRemove) {\r\n var manager = dataManagerService.getDto(assetId);\r\n var isolatedScope = $rootScope.$new(true);\r\n isolatedScope.title = isRemove === true ? multiLanguageService.getString(\"buttons.remove\") : multiLanguageService.getString(\"buttons.replace\");\r\n isolatedScope.confirm_label = multiLanguageService.getString(\"buttons.confirm\");\r\n isolatedScope.cancel_label = multiLanguageService.getString(\"buttons.cancel\");\r\n manager.data.Title !== \"\" ? (isolatedScope.assetTitle = manager.data.Title) : (isolatedScope.assetTitle = multiLanguageService.getString(\"labels.pop_ups.this_asset\"));\r\n\r\n isolatedScope.messages = [\r\n multiLanguageService.getString(\"labels.pop_ups.are_you_sure\", {\r\n actionName: isolatedScope.title,\r\n assetTitle: isolatedScope.assetTitle\r\n })\r\n ];\r\n\r\n isolatedScope.buttons = [\r\n {\r\n action: angular.noop, // needs to be a function but modal closes by default on button press\r\n class: ButtonClass.Outlined,\r\n text: isolatedScope.cancel_label\r\n },\r\n {\r\n action: action,\r\n class: ButtonClass.Contained,\r\n text: isolatedScope.confirm_label\r\n }\r\n ];\r\n\r\n isolatedScope.onClose = function () {\r\n isolatedScope.$destroy();\r\n };\r\n\r\n modal.newModal({\r\n scope: isolatedScope,\r\n templateUrl: baseUrlsFactory.shared_component_base_url + \"modalDialogComponent/templates/generic-pop-up-with-repeating-content.lazy.html\",\r\n disableClose: true\r\n });\r\n },\r\n\r\n displayPlaceholderPageStatus: function (pageType, onReplace, onRemove, onEdit) {\r\n const message = `\r\n ${multiLanguageService.getString(\"tips.placeholder_page.actions\")}\r\n ${multiLanguageService.getString(\"tips.placeholder_page.action_bar_region\", { type: pageType })}\r\n `;\r\n\r\n const statusDictionary = statusToolbarFactory.createStatusDictionary(message, \"\", \"\", \"\");\r\n const content = [\r\n {\r\n text: multiLanguageService.getString(\"buttons.replace_caps_first_char\"),\r\n onClick: onReplace,\r\n ariaLabel: multiLanguageService.getString(\"tips.placeholder_page.replace_chosen_type\", { type: pageType }),\r\n dataHook: \"placeholder-replace-asset-btn\"\r\n },\r\n {\r\n text: multiLanguageService.getString(\"buttons.remove\"),\r\n onClick: onRemove,\r\n ariaLabel: multiLanguageService.getString(\"tips.placeholder_page.remove_chosen_type\", { type: pageType }),\r\n dataHook: \"placeholder-remove-asset-btn\"\r\n },\r\n {\r\n text: multiLanguageService.getString(\"buttons.edit\"),\r\n onClick: onEdit,\r\n ariaLabel: multiLanguageService.getString(\"tips.placeholder_page.edit_chosen_type\", { type: pageType }),\r\n dataHook: \"placeholder-edit-asset-btn\"\r\n }\r\n ];\r\n const status = statusToolbarFactory.createStatus(statusDictionary, false, Infinity, null, null, null, null, content);\r\n statusToolbar.addActionStatus(status);\r\n return () => statusToolbar.removeActionStatus(status);\r\n },\r\n\r\n focusPlaceholderReplaceButton: function () {\r\n statusToolbar.focusElement(\"placeholder-replace-asset-btn\");\r\n },\r\n\r\n launchPageUpdateErrorModal: function (onClose) {\r\n const model = {\r\n button_label: multiLanguageService.getString(\"buttons.ok\"),\r\n message: multiLanguageService.getString(\"workbook.error_modals.unable_to_update.message\"),\r\n onClose: onClose,\r\n title: multiLanguageService.getString(\"workbook.error_modals.generic_title\")\r\n };\r\n\r\n return modal.launch(`${baseUrlsFactory.shared_component_base_url}modalDialogComponent/templates/generic-pop-up.lazy.html`, model);\r\n }\r\n };\r\n }\r\n]);\r\n","import { angularAMD } from \"@pebblepad/amd\";\r\n\r\nexport class StandardsOverviewProvider {\r\n constructor() {\r\n this.$get = () => {\r\n throw new Error(\"Missing implementation\");\r\n };\r\n }\r\n\r\n setResolver(resolver) {\r\n this.$get = resolver;\r\n }\r\n}\r\n\r\nangularAMD.provider(\"standardsOverviewService\", StandardsOverviewProvider);\r\n","export const apiConfig = {\r\n validateEmbedRequest: (): string => {\r\n throw new Error(\"You haven't set the validateEmbedRequest endpoint\");\r\n }\r\n};\r\n","import { IApiConfig } from \"./interfaces/IApiConfig\";\r\n\r\nexport const apiConfig: IApiConfig = {\r\n reportInappropriate: (): string => {\r\n throw new Error(\"You haven't set the reportInappropriate endpoint\");\r\n },\r\n publicReportInappropriate: (): string => {\r\n throw new Error(\"You haven't set the publicReportInappropriate endpoint\");\r\n }\r\n};\r\n","export enum MainType {\r\n ActivityLog = \"ActivityLog\",\r\n Blog = \"Blog\",\r\n CallingCard = \"CallingCard\",\r\n Collection = \"AssetCollectionWrapper\",\r\n Conversation = \"Conversation\",\r\n Cv = \"CV\",\r\n Page = \"WebfolioPage\",\r\n File = \"File\",\r\n FormResponse = \"FormResponse\",\r\n Portfolio = \"Webfolio\",\r\n Post = \"Post\",\r\n WorkBookResponse = \"WorkBookResponse\",\r\n WorkBook = \"WorkBook\",\r\n Form = \"Form\"\r\n}\r\n","import { FunctionComponent } from \"react\";\r\nimport { Icon } from \"@pjs/core-ui\";\r\nimport { assetIcons } from \"./AssetIcons.const\";\r\nimport { IAssetIconProps } from \"./interfaces/IAssetIconProps\";\r\n\r\nexport const AssetIcon: FunctionComponent = (props: IAssetIconProps) => {\r\n const iconInfo = assetIcons.get(props.mainType, props.subType);\r\n return iconInfo !== null ? : null;\r\n};\r\n","export enum FileType {\r\n Archive = \"Archive\",\r\n Audio = \"Audio\",\r\n Database = \"Document/Database\",\r\n Document = \"Document/Text\",\r\n Image = \"Image\",\r\n Other = \"Other\",\r\n Pdf = \"Document/Pdf\",\r\n Presentation = \"Document/Presentation\",\r\n Spreadsheet = \"Document/Spreadsheet\",\r\n Video = \"Video\"\r\n}\r\n","export enum FormType {\r\n Experience = \"Experience\",\r\n Feedback = \"Feedback\",\r\n Plan = \"Plan\",\r\n Reflection = \"Reflection\",\r\n Talent = \"Talent\",\r\n Worksheet = \"Worksheet\"\r\n}\r\n","import { FileType } from \"./FileType\";\r\nimport { FormType } from \"./FormType\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const SubType = { ...FileType, ...FormType } as const;\r\n/**\r\n * Due to destructing to allow automatic merging of typings.\r\n * Subtype has to be re-exported as a derived value type in order to mimic Enum type and usage.\r\n */\r\n// eslint-disable-next-line no-redeclare\r\nexport type SubType = (typeof SubType)[keyof typeof SubType];\r\n","import {\r\n activityLogIcon,\r\n archiveIcon,\r\n audioIcon,\r\n blogIcon,\r\n callingCardIcon,\r\n collectionIcon,\r\n conversationIcon,\r\n cvIcon,\r\n databaseIcon,\r\n documentIcon,\r\n experienceIcon,\r\n experienceResourceIcon,\r\n feedbackIcon,\r\n feedbackResourceIcon,\r\n fileIcon,\r\n imageIcon,\r\n pageIcon,\r\n pdfIcon,\r\n planIcon,\r\n planResourceIcon,\r\n portfolioIcon,\r\n postIcon,\r\n presentationIcon,\r\n reflectionIcon,\r\n reflectionResourceIcon,\r\n spreadsheetIcon,\r\n talentIcon,\r\n talentResourceIcon,\r\n videoIcon,\r\n workbookResourceIcon,\r\n workbookResponseIcon,\r\n worksheetIcon,\r\n worksheetResourceIcon\r\n} from \"@pjs/core-ui\";\r\nimport { MainType } from \"../../enums/MainType\";\r\nimport { SubType } from \"../../enums/SubType\";\r\nimport { IAssetIconInfo } from \"./interfaces/IAssetIconInfo\";\r\n\r\nconst assetIconMap = new Map([\r\n [MainType.ActivityLog, { fill: \"#BA3231\", source: activityLogIcon }],\r\n [SubType.Archive, { fill: \"#5B7589\", source: archiveIcon }],\r\n [SubType.Audio, { fill: \"#5B7589\", source: audioIcon }],\r\n [MainType.Blog, { fill: \"#A3B73C\", source: blogIcon }],\r\n [MainType.CallingCard, { fill: \"#BA3231\", source: callingCardIcon }],\r\n [MainType.Collection, { fill: \"#52485B\", source: collectionIcon }],\r\n [MainType.Conversation, { fill: \"#5B7589\", source: conversationIcon }],\r\n [MainType.Cv, { fill: \"#5B8E3E\", source: cvIcon }],\r\n [SubType.Database, { fill: \"#5B7589\", source: databaseIcon }],\r\n [SubType.Document, { fill: \"#5B7589\", source: documentIcon }],\r\n [SubType.Experience, { fill: \"#B24F64\", source: experienceIcon }],\r\n [SubType.Feedback, { fill: \"#45A4A7\", source: feedbackIcon }],\r\n [MainType.File, { fill: \"#5B7589\", source: fileIcon }],\r\n [SubType.Image, { fill: \"#5B7589\", source: imageIcon }],\r\n [MainType.Page, { fill: \"#CC6CB3\", source: pageIcon }],\r\n [SubType.Pdf, { fill: \"#5B7589\", source: pdfIcon }],\r\n [SubType.Plan, { fill: \"#429176\", source: planIcon }],\r\n [MainType.Portfolio, { fill: \"#4AA7AA\", source: portfolioIcon }],\r\n [MainType.Post, { fill: \"#429176\", source: postIcon }],\r\n [SubType.Presentation, { fill: \"#5B7589\", source: presentationIcon }],\r\n [SubType.Reflection, { fill: \"#607768\", source: reflectionIcon }],\r\n [SubType.Spreadsheet, { fill: \"#5B7589\", source: spreadsheetIcon }],\r\n [SubType.Talent, { fill: \"#DD9A27\", source: talentIcon }],\r\n [SubType.Video, { fill: \"#5B7589\", source: videoIcon }],\r\n [MainType.WorkBookResponse, { fill: \"#C86127\", source: workbookResponseIcon }],\r\n [SubType.Worksheet, { fill: \"#881744\", source: worksheetIcon }]\r\n]);\r\n\r\nconst resourceIconMap = new Map([\r\n [SubType.Experience, { fill: \"#B24F64\", source: experienceResourceIcon }],\r\n [SubType.Feedback, { fill: \"#45A4A7\", source: feedbackResourceIcon }],\r\n [SubType.Plan, { fill: \"#429176\", source: planResourceIcon }],\r\n [SubType.Reflection, { fill: \"#607768\", source: reflectionResourceIcon }],\r\n [SubType.Talent, { fill: \"#DD9A27\", source: talentResourceIcon }],\r\n [SubType.Worksheet, { fill: \"#881744\", source: worksheetResourceIcon }],\r\n [MainType.WorkBook, { fill: \"#C86127\", source: workbookResourceIcon }],\r\n [MainType.Form, { fill: \"#C86127\", source: talentResourceIcon }]\r\n]);\r\n\r\nexport const assetIcons = {\r\n get: (mainType: MainType, subType?: SubType): IAssetIconInfo | null => {\r\n const iconMap = mainType === MainType.Form || mainType === MainType.WorkBook ? resourceIconMap : assetIconMap;\r\n\r\n if (subType !== undefined) {\r\n const iconInfoBySubType = iconMap.get(subType);\r\n if (iconInfoBySubType !== undefined) {\r\n return iconInfoBySubType;\r\n }\r\n }\r\n const iconInfoByMainType = iconMap.get(mainType);\r\n return iconInfoByMainType !== undefined ? iconInfoByMainType : null;\r\n }\r\n};\r\n","import { i18nManager, withImport } from \"@pjs/i18n\";\r\nimport defaultLanguageJson from \"../../resources/lang/en-GB.json\";\r\n\r\nexport const assetCoreI18n = i18nManager.createSet(\"asset-core\");\r\n\r\nassetCoreI18n.add(\r\n \"en-GB\",\r\n withImport(() => import(\"../../resources/lang/en-GB.json\"))\r\n);\r\n\r\nassetCoreI18n.add(\r\n \"cy-GB\",\r\n withImport(() => import(\"../../resources/lang/cy-GB.json\"))\r\n);\r\n\r\nassetCoreI18n.add(\r\n \"nl-NL\",\r\n withImport(() => import(\"../../resources/lang/nl-NL.json\"))\r\n);\r\n\r\nassetCoreI18n.add(\r\n \"en-US\",\r\n withImport(() => import(\"../../resources/lang/en-US.json\"))\r\n);\r\n","export const reportReasonLimit = 255;\r\n","import { IGetFilePreviewBody } from \"./features/document-viewer/interfaces/IGetFilePreviewBody\";\r\n\r\nexport const apiConfig = {\r\n getFilePreview: (_params: IGetFilePreviewBody): string => {\r\n throw new Error(\"You haven't set the getFilePreview endpoint\");\r\n }\r\n};\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.fre-evidence-item{background-color:var(--colour-background);border:var(--layout-border-thickness-default)solid var(--colour-border);padding:var(--layout-padding-nested-content);border-top:0}.fre-evidence-item__asset-icon{height:var(--icon-size-asset);vertical-align:middle;width:var(--icon-size-asset);margin-right:1rem;display:inline-block}.fre-evidence-item__header{align-items:flex-start;display:flex}.fre-evidence-item__evidence-info{flex-grow:1;min-width:0;display:flex}.fre-evidence-item__mapping-info{vertical-align:middle;flex:1;height:100%;display:inline-block;overflow:hidden}.fre-evidence-item-mapping-info__mapping-dates{color:var(--colour-supporting-text);font-size:var(--font-size-meta);line-height:var(--font-line-height-body);display:block}.fre-evidence-item-mapping-info__overflow-menu{white-space:nowrap;position:relative}.fre-evidence-item__justification{background-color:var(--colour-highlighted-region-background);border-radius:var(--effect-border-radius-content);padding:var(--layout-padding-blockquote);word-wrap:break-word;margin-top:.5rem}.fre-evidence-item-mapping-info__evidence-asset-title{white-space:nowrap;text-overflow:ellipsis;word-wrap:break-word;min-width:0;display:block;overflow:hidden}@supports (-webkit-line-clamp:2){.fre-evidence-item-mapping-info__evidence-asset-title{overflow-wrap:anywhere;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}}`);","import { Component, ReactElement, MouseEvent } from \"react\";\r\nimport { AssetIcon } from \"@pjs/asset-core\";\r\nimport { RichTextView } from \"@pjs/rich-text\";\r\nimport { OverflowMenu, editIcon, removeAttachmentIcon, IButtonMenuOption, Icon, textEvidenceIcon, Hyperlink, openIcon, openNewTabIcon } from \"@pjs/core-ui\";\r\nimport { formResponseElementI18n } from \"../i18n/FormResponseElementI18n.const\";\r\nimport { IEvidenceItemProps } from \"./interfaces/IEvidenceItemProps\";\r\nimport \"./styles/evidence-item.css\";\r\n\r\nexport class EvidenceItem extends Component {\r\n private static readonly _editIconColour: string = \"var(--colour-icon-fill-info)\";\r\n public onClick: (event: MouseEvent) => void;\r\n private readonly _optionsLabel: string = formResponseElementI18n.getString(\"evidence.overflow_menu.aria\");\r\n private readonly _menuEvidenceOptions: Array;\r\n private readonly _menuLinkOptions: Array;\r\n private _previousJustification: string;\r\n\r\n constructor(props: IEvidenceItemProps) {\r\n super(props);\r\n this.onClick = this._onClick.bind(this);\r\n\r\n this._menuLinkOptions = [\r\n {\r\n icon: openIcon,\r\n iconColour: EvidenceItem._editIconColour,\r\n onSelect: () => this._openEvidence(),\r\n text: formResponseElementI18n.getString(\"evidence.overflow_menu.open\")\r\n },\r\n {\r\n icon: openNewTabIcon,\r\n iconColour: EvidenceItem._editIconColour,\r\n onSelect: () => this._openEvidenceInNewTab(),\r\n text: formResponseElementI18n.getString(\"evidence.overflow_menu.open_new_tab\")\r\n }\r\n ];\r\n\r\n this._menuEvidenceOptions = [\r\n {\r\n icon: editIcon,\r\n iconColour: EvidenceItem._editIconColour,\r\n onSelect: () => this._editJustification(),\r\n text: this._getAddEditOptionText()\r\n },\r\n {\r\n icon: removeAttachmentIcon,\r\n iconColour: EvidenceItem._editIconColour,\r\n onSelect: () => this._deleteEvidence(),\r\n text: formResponseElementI18n.getString(\"evidence.overflow_menu.remove\")\r\n }\r\n ];\r\n\r\n this._previousJustification = this.props.evidence.justification;\r\n }\r\n\r\n public render(): ReactElement {\r\n const menuOptions = this._getMenuOptions();\r\n const disabled = menuOptions.length === 0;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {this.props.evidence.mainType === null ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n {this.props.evidence.assetLink === \"\" ? (\r\n
\r\n {this.props.evidence.assetTitle}\r\n
\r\n ) : (\r\n \r\n {this.props.evidence.assetTitle}\r\n \r\n )}\r\n \r\n {this.props.evidence.formattedDates}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {this.props.evidence.justification !== \"\" && (\r\n \r\n )}\r\n
\r\n );\r\n }\r\n\r\n private _onClick(event: MouseEvent): void {\r\n this.props.onSelectEvidence(this.props.evidence, false, event);\r\n }\r\n\r\n private _openEvidence(): void {\r\n this.props.onSelectEvidence(this.props.evidence, false);\r\n }\r\n\r\n private _openEvidenceInNewTab(): void {\r\n this.props.onSelectEvidence(this.props.evidence, true);\r\n }\r\n\r\n private _editJustification(): void {\r\n this.props.onEditJustification(this.props.evidence);\r\n }\r\n\r\n private _deleteEvidence(): void {\r\n this.props.onDeleteEvidence(this.props.evidence);\r\n }\r\n\r\n private _getAddEditOptionText(): string {\r\n return formResponseElementI18n.getString(`evidence.overflow_menu.${this.props.evidence.justification !== \"\" ? \"edit\" : \"add\"}`);\r\n }\r\n\r\n private _getMenuOptions(): Array {\r\n const hasAssetLink = this.props.evidence.assetLink !== \"\";\r\n let menuOptions: Array = [];\r\n\r\n if (this.props.evidence.justification !== this._previousJustification) {\r\n this._menuEvidenceOptions[0].text = this._getAddEditOptionText();\r\n this._previousJustification = this.props.evidence.justification;\r\n }\r\n\r\n if (hasAssetLink) {\r\n menuOptions = menuOptions.concat(this._menuLinkOptions);\r\n }\r\n\r\n if (!this.props.isDisabled) {\r\n menuOptions = menuOptions.concat(this._menuEvidenceOptions);\r\n }\r\n\r\n return menuOptions;\r\n }\r\n}\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.fre-answer-evidence__status{border:var(--layout-border-thickness-default)solid var(--colour-border);padding:var(--layout-padding-action-container);background-color:var(--colour-background);align-items:center;display:flex}.fre-answer-evidence__status--disabled{border:var(--layout-border-thickness-default)dashed var(--colour-border)}.fre-answer-evidence__status-checkbox-wrapper{flex:100%;min-width:1px}.fre-answer-evidence__status-icon-wrapper{line-height:1}.fre-answer-evidence__status-icon{width:2.5rem;height:2.5rem;display:inline-block}.fre-answer-evidence__status-icon--hidden{visibility:hidden}.fre-answer-evidence__no-evidence-message{border:var(--layout-border-thickness-default)dashed var(--colour-border);background-color:var(--colour-background);text-align:center;border-top:0;padding:4rem}`);","import { FunctionComponent } from \"react\";\r\nimport { Icon, evidenceCompleteIcon, Checkbox } from \"@pjs/core-ui\";\r\nimport { formResponseElementI18n } from \"../i18n/FormResponseElementI18n.const\";\r\nimport { IAnswerEvidenceProps } from \"./interfaces/IAnswerEvidenceProps\";\r\nimport { EvidenceItem } from \"./EvidenceItem.component\";\r\nimport \"./styles/answer-evidence.css\";\r\n\r\nconst iconEnabledFill: string = \"#0077BB\";\r\nconst iconDisabledFill: string = \"#89929A\";\r\n\r\nexport const AnswerEvidence: FunctionComponent = (props: IAnswerEvidenceProps) => {\r\n const evidenceComplete = formResponseElementI18n.getString(\"evidence.complete\");\r\n const evidenceNotComplete = formResponseElementI18n.getString(\"evidence.not_complete\");\r\n const noEvidence = formResponseElementI18n.getString(\"evidence.no_evidence\");\r\n const hasEvidence = props.evidence.length > 0;\r\n const isDisabled = props.isDisabled || !hasEvidence;\r\n\r\n const evidenceCompletionText = props.isEvidenceComplete ? evidenceComplete : evidenceNotComplete;\r\n\r\n const answerEvidenceIconHiddenClass = props.isEvidenceComplete ? \"\" : \"fre-answer-evidence__status-icon--hidden\";\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {props.showMarkAsComplete ? (\r\n \r\n {evidenceComplete}\r\n \r\n ) : (\r\n {evidenceCompletionText}\r\n )}\r\n
\r\n \r\n \r\n \r\n
\r\n {hasEvidence ? (\r\n props.evidence.map((evidence) => (\r\n \r\n ))\r\n ) : (\r\n
\r\n

{noEvidence}

\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.fre-capability-history-item{background:var(--colour-background);border:var(--layout-border-thickness-default)solid var(--colour-border);padding:var(--layout-padding-nested-content);max-width:100%}.fre-capability-history-item .fre-capability-history-item__data-wrapper{align-items:flex-start;display:flex}.fre-capability-history-item .fre-capability-history-item__data{flex-direction:column;flex:1;display:flex}.fre-capability-history-item .fre-capability-history-item__data-entry{font-size:var(--font-size-body);line-height:var(--font-line-height-body);word-wrap:break-word;flex:auto;min-width:1px}.fre-capability-history-item .fre-capability-history-item__data-timestamp{color:var(--colour-supporting-text);font-size:var(--font-size-meta)}.fre-capability-history-item .fre-capability-history-item__justification{background:var(--colour-highlighted-region-background);border-radius:var(--effect-border-radius-content);margin-top:var(--layout-margin-between-content);font-size:var(--font-size-body);line-height:var(--font-line-height-body);padding:var(--layout-padding-blockquote);word-wrap:break-word;flex:auto;min-width:1px}`);","import { Component, ReactElement } from \"react\";\r\nimport { OverflowMenu, IButtonMenuOption, editIcon } from \"@pjs/core-ui\";\r\nimport { RichTextView } from \"@pjs/rich-text\";\r\nimport { ParseHtml } from \"@pjs/security\";\r\nimport { formResponseElementI18n } from \"../i18n/FormResponseElementI18n.const\";\r\nimport { ICapabilityHistoryItemProps } from \"./interfaces/ICapabilityHistoryItemProps\";\r\nimport \"./styles/capability-history.css\";\r\n\r\nexport class CapabilityHistoryItem extends Component {\r\n private static readonly _editIconColour: string = \"#0077BB\";\r\n private readonly _optionsLabel: string = formResponseElementI18n.getString(\"capability_history.history_item.options\");\r\n private readonly _menuOptions: Array;\r\n\r\n constructor(props: ICapabilityHistoryItemProps) {\r\n super(props);\r\n\r\n this._menuOptions = [\r\n {\r\n icon: editIcon,\r\n iconColour: CapabilityHistoryItem._editIconColour,\r\n onSelect: () => this.props.onEditJustification(this.props.historyItem),\r\n text: formResponseElementI18n.getString(\"capability_history.history_item.edit_justification\")\r\n }\r\n ];\r\n }\r\n\r\n public render(): ReactElement {\r\n const entry = this._getEntryText(this.props.historyItem.previousAnswer !== undefined);\r\n const timeStamp = this._getTimeStampText();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n {timeStamp}\r\n
\r\n
\r\n\r\n {this.props.isEditable && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n {this.props.historyItem.justification !== null && (\r\n \r\n )}\r\n
\r\n );\r\n }\r\n\r\n private _getEntryText(isChangeItem: boolean): string {\r\n const values = {\r\n answer: this.props.historyItem.answer,\r\n name: this.props.historyItem.lastUpdatedByName,\r\n previousAnswer: this.props.historyItem.previousAnswer\r\n };\r\n\r\n if (isChangeItem) {\r\n return this.props.answeredByCurrentUser\r\n ? formResponseElementI18n.getString(\"capability_history.history_item.you_changed\", values)\r\n : formResponseElementI18n.getString(\"capability_history.history_item.person_changed\", values);\r\n }\r\n\r\n return this.props.answeredByCurrentUser\r\n ? formResponseElementI18n.getString(\"capability_history.history_item.you_chose\", values)\r\n : formResponseElementI18n.getString(\"capability_history.history_item.person_chose\", values);\r\n }\r\n\r\n private _getTimeStampText(): string {\r\n return formResponseElementI18n.getString(\"capability_history.history_item.answer_timestamp\", {\r\n date: this.props.historyItem.lastUpdatedOnDate,\r\n time: this.props.historyItem.lastUpdatedOnTime\r\n });\r\n }\r\n}\r\n","import { i18nManager, withImport } from \"@pjs/i18n\";\r\nimport defaultLanguageJson from \"../../resources/lang/en-GB.json\";\r\n\r\nexport const formResponseElementI18n = i18nManager.createSet(\"form-response-element\");\r\n\r\nformResponseElementI18n.add(\r\n \"en-GB\",\r\n withImport(() => import(\"../../resources/lang/en-GB.json\"))\r\n);\r\n\r\nformResponseElementI18n.add(\r\n \"cy-GB\",\r\n withImport(() => import(\"../../resources/lang/cy-GB.json\"))\r\n);\r\n\r\nformResponseElementI18n.add(\r\n \"nl-NL\",\r\n withImport(() => import(\"../../resources/lang/nl-NL.json\"))\r\n);\r\n\r\nformResponseElementI18n.add(\r\n \"en-US\",\r\n withImport(() => import(\"../../resources/lang/en-US.json\"))\r\n);\r\n","export const apiConfig = {\r\n accountSettings: (): string => {\r\n throw new Error(\"You haven't set the accountSettings endpoint\");\r\n },\r\n digestStatus: (): string => {\r\n throw new Error(\"You haven't set the digestStatus endpoint\");\r\n }\r\n};\r\n","export enum BackendSettings {\r\n PageSaving = \"User.PageSaving\",\r\n LanguageChoice = \"Language\",\r\n EmbedConsent = \"Pref.Consent.EmbeddedContent\",\r\n Grades = \"Pref.Notification.Grades\",\r\n Feedback = \"Pref.Notification.Feedback\",\r\n Comments = \"Pref.Notification.Comments\",\r\n Updated = \"Pref.Notification.Updated\",\r\n Shares = \"Pref.Notification.Shares\",\r\n AtlasReceipts = \"Pref.Notification.AtlasReceipts\",\r\n NotificationTime = \"Pref.Notification.Time\",\r\n NotificationFrequency = \"Pref.Notification.Frequency\"\r\n}\r\n","export enum PatchOperation {\r\n Update = \"update\",\r\n InsertBefore = \"insertBefore\",\r\n InsertAfter = \"insertAfter\",\r\n Remove = \"remove\",\r\n Add = \"add\"\r\n}\r\n","export enum SettingPatchPaths {\r\n PageSaving = \"assessment.pageSaving\",\r\n LanguageChoice = \"language.languageChoice\",\r\n EmbedConsent = \"privacy.embedConsent\",\r\n Grades = \"notifications.settings.grades\",\r\n Feedback = \"notifications.settings.feedback\",\r\n Comments = \"notifications.settings.comments\",\r\n Updated = \"notifications.settings.updated\",\r\n Shares = \"notifications.settings.shares\",\r\n AtlasReceipts = \"notifications.settings.atlasReceipts\",\r\n NotificationFrequency = \"notifications.settings.notificationFrequency\",\r\n NotificationTime = \"notifications.settings.notificationTime\"\r\n}\r\n","import { ISettingBooleanItem } from \"../../interfaces/setting-items/ISettingBooleanItem\";\r\n\r\nexport const defaultBoolSetting = (value: boolean): ISettingBooleanItem => {\r\n return {\r\n type: \"Boolean\",\r\n value: value\r\n };\r\n};\r\n","import { ISettingListItem } from \"../../interfaces/setting-items/ISettingListItem\";\r\n\r\nexport const defaultListSetting = (value: string): ISettingListItem => {\r\n return {\r\n options: [],\r\n type: \"List\",\r\n value: value\r\n };\r\n};\r\n","import { ISettingListItem } from \"../../interfaces/setting-items/ISettingListItem\";\r\nimport { ISettingResponseItem } from \"../../interfaces/setting-items/ISettingResponseItem\";\r\n\r\nexport const fromListOptions = (setting: ISettingResponseItem): ISettingListItem => {\r\n return {\r\n options: setting.options ?? [],\r\n type: \"List\",\r\n value: setting.value\r\n };\r\n};\r\n","import { ISettingBooleanItem } from \"../../interfaces/setting-items/ISettingBooleanItem\";\r\nimport { ISettingResponseItem } from \"../../interfaces/setting-items/ISettingResponseItem\";\r\n\r\nexport const fromStringBool = (setting: ISettingResponseItem): ISettingBooleanItem => {\r\n return {\r\n type: \"Boolean\",\r\n value: setting.value.toLowerCase() === \"true\"\r\n };\r\n};\r\n","import { BackendSettings } from \"../enums/BackendSettings\";\r\nimport { ISettingResponseItem } from \"../interfaces/setting-items/ISettingResponseItem\";\r\nimport { ISettingsModel } from \"../interfaces/ISettingsModel\";\r\nimport { ISimpleSettingResponseItem } from \"../interfaces/setting-items/ISimpleSettingResponseItem\";\r\nimport { defaultBoolSetting } from \"./functions/DefaultBoolSetting.function\";\r\nimport { defaultListSetting } from \"./functions/DefaultListSetting.function\";\r\nimport { fromListOptions } from \"./functions/FromListOptions.function\";\r\nimport { fromStringBool } from \"./functions/FromStringBool.function\";\r\n\r\nexport const settingsModelMapper = (response: ReadonlyArray): ISettingsModel => {\r\n const settingsMap = new Map();\r\n\r\n for (const setting of response) {\r\n settingsMap.set(setting.name, setting);\r\n }\r\n\r\n const pageSaving = settingsMap.get(BackendSettings.PageSaving);\r\n const embedConsent = settingsMap.get(BackendSettings.EmbedConsent);\r\n const languageChoice = settingsMap.get(BackendSettings.LanguageChoice);\r\n const grades = settingsMap.get(BackendSettings.Grades);\r\n const feedback = settingsMap.get(BackendSettings.Feedback);\r\n const comments = settingsMap.get(BackendSettings.Comments);\r\n const updated = settingsMap.get(BackendSettings.Updated);\r\n const shares = settingsMap.get(BackendSettings.Shares);\r\n const atlasReceipts = settingsMap.get(BackendSettings.AtlasReceipts);\r\n const notificationFrequency = settingsMap.get(BackendSettings.NotificationFrequency);\r\n const notificationTime = settingsMap.get(BackendSettings.NotificationTime) as ISimpleSettingResponseItem;\r\n\r\n return {\r\n assessment: {\r\n enabled: pageSaving !== undefined,\r\n pageSaving: pageSaving !== undefined ? fromStringBool(pageSaving) : defaultBoolSetting(false)\r\n },\r\n language: {\r\n enabled: true,\r\n languageChoice: languageChoice !== undefined ? fromListOptions(languageChoice) : defaultListSetting(\"en-GB\")\r\n },\r\n privacy: {\r\n enabled: true,\r\n embedConsent: embedConsent !== undefined ? fromStringBool(embedConsent) : defaultBoolSetting(false)\r\n },\r\n notifications: {\r\n enabled: true,\r\n settings: {\r\n grades: {\r\n name: BackendSettings.Grades,\r\n value: grades !== undefined ? grades.value : \"F\"\r\n },\r\n feedback: {\r\n name: BackendSettings.Feedback,\r\n value: feedback !== undefined ? feedback.value : \"F\"\r\n },\r\n comments: {\r\n name: BackendSettings.Comments,\r\n value: comments !== undefined ? comments.value : \"F\"\r\n },\r\n updated: {\r\n name: BackendSettings.Updated,\r\n value: updated !== undefined ? updated.value : \"F\"\r\n },\r\n shares: {\r\n name: BackendSettings.Shares,\r\n value: shares !== undefined ? shares.value : \"F\"\r\n },\r\n atlasReceipts: {\r\n name: BackendSettings.AtlasReceipts,\r\n value: atlasReceipts !== undefined ? atlasReceipts.value : \"F\"\r\n },\r\n notificationFrequency: {\r\n name: BackendSettings.NotificationFrequency,\r\n value: notificationFrequency !== undefined ? notificationFrequency.value : \"Daily\",\r\n options: notificationFrequency !== undefined && notificationFrequency.options !== undefined ? notificationFrequency.options : []\r\n },\r\n notificationTime: {\r\n name: BackendSettings.NotificationTime,\r\n value: notificationTime !== undefined ? notificationTime.value : \"1\",\r\n options: notificationTime !== undefined && notificationTime.options !== undefined ? notificationTime.options : []\r\n }\r\n }\r\n }\r\n };\r\n};\r\n","import { httpService, IResponseError, WebRequestFactory, fromPascalToCamel } from \"@pjs/http\";\r\nimport { apiConfig } from \"../../../ApiConfig\";\r\nimport { ISettingsModel } from \"../interfaces/ISettingsModel\";\r\nimport { BackendGetAccountSettingsResponse } from \"../types/BackendGetAccountSettingsResponse\";\r\nimport { settingsModelMapper } from \"../mappers/SettingsModelMapper.function\";\r\n\r\nexport const getAccountSettings = WebRequestFactory.createGet({\r\n errorMapper: (errorResponse: Response) => Promise.resolve({ code: errorResponse.status.toString(), headers: errorResponse.headers }),\r\n http: httpService,\r\n responseMapper: (response: Response) => fromPascalToCamel((data) => settingsModelMapper(data))(response),\r\n url: () => apiConfig.accountSettings()\r\n});\r\n","/**\r\n * A type-guard function which can be used to check if a value is an object.\r\n * The type-guard will not fully narrow any unions which contain Arrays - Array | Record would result in the same type after the type-guard.\r\n */\r\nexport function isPlainObject(value: any): value is Record {\r\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\r\n}\r\n","import { isPlainObject } from \"@pjs/utilities\";\r\nimport { PatchPath } from \"../patcher/types/PatchPath\";\r\nimport { ITraversalResult } from \"./interfaces/ITraversalResult\";\r\n\r\n/**\r\n * The `traverseObject` function enables the consumer to use our PatchPath to retrieve a value from a object or array.\r\n * The traverser does not support\r\n * - traversing multi-dimensional Arrays\r\n * - objects which have optional properties\r\n * The ITraversalResult.nodeIndex will be -1 when the parent is not an array.\r\n */\r\nexport function traverseObject(patchPath: PatchPath, object: Array> | Record): ITraversalResult | null {\r\n if (patchPath.length === 0) {\r\n return { node: object, nodeIndex: -1, parent: null, parsedPath: [] };\r\n }\r\n\r\n const parsedPath: Array = [];\r\n let parent: any = null;\r\n let node: any = object;\r\n let nodeIndex = -1;\r\n\r\n for (const pathOption of patchPath) {\r\n parent = node;\r\n nodeIndex = -1;\r\n node = undefined;\r\n\r\n if (typeof pathOption === \"string\" && isPlainObject(parent)) {\r\n node = parent[pathOption];\r\n parsedPath.push(pathOption);\r\n } else if (Array.isArray(parent)) {\r\n if (isPlainObject(pathOption)) {\r\n const matcherEntries = Object.entries(pathOption);\r\n\r\n nodeIndex = parent.findIndex((item) => {\r\n if (item === null || item === undefined) {\r\n return false;\r\n }\r\n\r\n return matcherEntries.every(([pathKey, pathValue]) => item[pathKey] === pathValue);\r\n });\r\n } else {\r\n nodeIndex = parent.indexOf(pathOption);\r\n }\r\n\r\n parsedPath.push(nodeIndex);\r\n node = parent[nodeIndex];\r\n }\r\n\r\n if (node === undefined) {\r\n return null;\r\n }\r\n }\r\n\r\n return { node: node, nodeIndex: nodeIndex, parent: parent, parsedPath: parsedPath };\r\n}\r\n","import { isPlainObject } from \"@pjs/utilities\";\r\nimport { traverseObject } from \"../traverse-object/TraverseObject.function\";\r\nimport { AllPatchOperations } from \"../proxy/types/AllPatchOperations\";\r\nimport { PatchOperation } from \"../../enums/PatchOperation\";\r\nimport { IPatcher } from \"./interfaces/IPatcher\";\r\nimport { PatchPath } from \"./types/PatchPath\";\r\nimport { BasePatcherModel } from \"./types/BasePatcherModel\";\r\n\r\nexport class Patcher implements IPatcher {\r\n private _model: TModel;\r\n\r\n constructor(model: TModel) {\r\n this._model = model;\r\n }\r\n\r\n public getModel(): TModel {\r\n return this._model;\r\n }\r\n\r\n public patch(patch: AllPatchOperations): boolean {\r\n switch (patch.op) {\r\n case PatchOperation.Add:\r\n return this._add(patch.path, patch.value);\r\n case PatchOperation.Remove:\r\n return this._remove(patch.path);\r\n case PatchOperation.Update:\r\n return this._update(patch.path, patch.value);\r\n case PatchOperation.InsertBefore:\r\n return this._insertBefore(patch.path, patch.value);\r\n case PatchOperation.InsertAfter:\r\n return this._insertAfter(patch.path, patch.value);\r\n default:\r\n throw new Error(`This operation ${(patch as any).op} shall not pass! 🧙`);\r\n }\r\n }\r\n\r\n private _add(path: PatchPath, value: any): boolean {\r\n const result = traverseObject(path, this._model);\r\n\r\n if (result === null || !Array.isArray(result.node)) {\r\n return false;\r\n }\r\n\r\n const parsedPath = result.parsedPath;\r\n const clonedResult = this._cloneAlongPath(parsedPath);\r\n clonedResult.push(value);\r\n\r\n return true;\r\n }\r\n\r\n private _update(path: PatchPath, value: any): boolean {\r\n const result = traverseObject(path, this._model);\r\n\r\n if (result === null || !isPlainObject(result.node)) {\r\n return false;\r\n }\r\n\r\n if (result.parsedPath.length === 0) {\r\n this._model = { ...this._model, ...value };\r\n return true;\r\n }\r\n\r\n const lastItem = result.parsedPath.pop();\r\n const clonedResult = this._cloneAlongPath(result.parsedPath);\r\n clonedResult[lastItem as keyof typeof clonedResult] = { ...clonedResult[lastItem as keyof typeof clonedResult], ...value };\r\n\r\n return true;\r\n }\r\n\r\n private _remove(path: PatchPath): boolean {\r\n const result = traverseObject(path, this._model);\r\n\r\n if (result === null || !Array.isArray(result.parent)) {\r\n return false;\r\n }\r\n\r\n const parsedPath = result.parsedPath;\r\n const lastItem = parsedPath.pop();\r\n\r\n const clonedResult = this._cloneAlongPath(parsedPath);\r\n clonedResult.splice(lastItem, 1);\r\n\r\n return true;\r\n }\r\n\r\n private _insertBefore(path: PatchPath, value: any): boolean {\r\n const result = traverseObject(path, this._model);\r\n\r\n if (result === null || !Array.isArray(result.parent)) {\r\n return false;\r\n }\r\n\r\n const parsedPath = result.parsedPath;\r\n const lastItem = parsedPath.pop();\r\n\r\n const clonedResult = this._cloneAlongPath(parsedPath);\r\n clonedResult.splice(lastItem, 0, value);\r\n\r\n return true;\r\n }\r\n\r\n private _insertAfter(path: PatchPath, value: any): boolean {\r\n const result = traverseObject(path, this._model);\r\n\r\n if (result === null || !Array.isArray(result.parent)) {\r\n return false;\r\n }\r\n\r\n const parsedPath = result.parsedPath;\r\n const lastItem = parsedPath.pop() as number;\r\n\r\n const clonedResult = this._cloneAlongPath(parsedPath);\r\n clonedResult.splice(lastItem + 1, 0, value);\r\n\r\n return true;\r\n }\r\n\r\n private _cloneAlongPath(parsedPath: Array): Array | Record {\r\n let node: any = Array.isArray(this._model) ? this._model.slice() : { ...this._model };\r\n this._model = node;\r\n\r\n for (const pathItem of parsedPath) {\r\n const parent = node;\r\n const value = parent[pathItem];\r\n\r\n parent[pathItem] = Array.isArray(value) ? value.slice() : { ...value };\r\n node = node[pathItem];\r\n }\r\n\r\n return node;\r\n }\r\n}\r\n","import { filter, finalise, map, Observable } from \"@pjs/observables\";\r\nimport { Primitive } from \"@pjs/utilities\";\r\nimport { ItemSelectorAtPath } from \"../patcher/types/ItemSelectorAtPath\";\r\nimport { PatchPath } from \"../patcher/types/PatchPath\";\r\nimport { IOperationResult } from \"../patcher/interfaces/IOperationResult\";\r\nimport { PatchOperation } from \"../../enums/PatchOperation\";\r\nimport { ModelProxy } from \"./types/ModelProxy\";\r\nimport { IProxyOperations } from \"./interfaces/IProxyOperations\";\r\nimport { IProxyController } from \"./interfaces/IProxyController\";\r\nimport { DocumentPatchOperations } from \"./types/DocumentPatchOperations\";\r\n\r\nexport class ProxyController | Array> implements IProxyController {\r\n public readonly proxy: ModelProxy;\r\n\r\n private readonly _operations: IProxyOperations;\r\n private readonly _changes: Observable;\r\n\r\n private readonly _nodeSubscriptionCache: Map> = new Map();\r\n private readonly _patchSubscriptionCache: Map> = new Map();\r\n\r\n private readonly _callableTraps: Record any> = {\r\n insertAfter: this._insertAfter.bind(this),\r\n insertBefore: this._insertBefore.bind(this),\r\n remove: this._remove.bind(this),\r\n select: this._select.bind(this)\r\n };\r\n\r\n private readonly _propertyTraps: Record = {\r\n items: this._items.bind(this),\r\n properties: this._properties.bind(this)\r\n };\r\n\r\n constructor(operations: IProxyOperations, changes: Observable) {\r\n this._operations = operations;\r\n this._changes = changes;\r\n this.proxy = this._createProxy([]);\r\n }\r\n\r\n private _handler(property: string, path: PatchPath): any {\r\n if (property === \"subscribe\" || property === \"pipe\") {\r\n return (...args: [any]) => this._getObservableForAllChangesAtPath(path)[property](...args);\r\n }\r\n\r\n if (this._propertyTraps[property] !== undefined) {\r\n return this._propertyTraps[property](path);\r\n }\r\n\r\n if (this._callableTraps[property] !== undefined) {\r\n return this._callableTraps[property].bind(this, path);\r\n }\r\n\r\n if (this._operations[property as keyof IProxyOperations] !== undefined) {\r\n return this._operations[property as keyof IProxyOperations].bind(this, path);\r\n }\r\n\r\n return this._createProxy([...path, property]);\r\n }\r\n\r\n private _createProxy(path: PatchPath): any {\r\n return new Proxy(path, {\r\n get: (_, property) => this._handler(property as string, path)\r\n });\r\n }\r\n\r\n private _items(path: PatchPath): Observable {\r\n return this._getObservableForSpecificChangesAtPath(path);\r\n }\r\n\r\n private _select(path: PatchPath, selector: ItemSelectorAtPath): void {\r\n return this._createProxy([...path, selector]);\r\n }\r\n\r\n private _properties(path: PatchPath): Observable {\r\n return this._getObservableForSpecificChangesAtPath(path);\r\n }\r\n\r\n private _insertBefore(path: PatchPath, selection: Record, newValue: any): IOperationResult {\r\n return this._operations.insertBefore([...path, selection], newValue);\r\n }\r\n\r\n private _insertAfter(path: PatchPath, selection: Record, newValue: any): IOperationResult {\r\n return this._operations.insertAfter([...path, selection], newValue);\r\n }\r\n\r\n private _remove(path: PatchPath, selection: Record): IOperationResult {\r\n return this._operations.remove([...path, selection]);\r\n }\r\n\r\n private _pathItemsAreEqual(pathItem: PatchPath[0], changePathItem: PatchPath[0]): boolean {\r\n const isPathItemString = typeof pathItem === \"string\";\r\n const isChangePathItemString = typeof changePathItem === \"string\";\r\n\r\n if (isPathItemString && isChangePathItemString) {\r\n return pathItem === changePathItem;\r\n }\r\n\r\n if (!isPathItemString && !isChangePathItemString) {\r\n return Object.entries(pathItem as Record).every(([key, prop]) => prop === (changePathItem as Record)[key]);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _getObservableForAllChangesAtPath(path: PatchPath): Observable {\r\n const pathString = JSON.stringify(path);\r\n const cachedObservable = this._nodeSubscriptionCache.get(pathString);\r\n\r\n if (cachedObservable !== undefined) {\r\n return cachedObservable;\r\n }\r\n\r\n const observable = this._changes.pipe(\r\n filter((change) => {\r\n return path.every((pathItem, index) => this._pathItemsAreEqual(pathItem, change.path[index]));\r\n }),\r\n map(() => this._operations.get(path)),\r\n finalise(() => this._nodeSubscriptionCache.delete(pathString))\r\n );\r\n\r\n this._nodeSubscriptionCache.set(pathString, observable);\r\n return observable;\r\n }\r\n\r\n private _getObservableForSpecificChangesAtPath(path: PatchPath): Observable {\r\n const pathString = JSON.stringify(path);\r\n const cachedObservable = this._patchSubscriptionCache.get(pathString);\r\n\r\n if (cachedObservable !== undefined) {\r\n return cachedObservable;\r\n }\r\n const observable = this._changes.pipe(\r\n filter((change) => this._doesPatchMatchPath(change, path)),\r\n finalise(() => this._patchSubscriptionCache.delete(pathString))\r\n );\r\n\r\n this._patchSubscriptionCache.set(pathString, observable);\r\n return observable;\r\n }\r\n\r\n private _doesPatchMatchPath(patch: DocumentPatchOperations, path: PatchPath): boolean {\r\n const patchPathLength =\r\n patch.op === PatchOperation.InsertBefore || patch.op === PatchOperation.InsertAfter || patch.op === PatchOperation.Remove\r\n ? patch.path.length - 1\r\n : patch.path.length;\r\n return patchPathLength === path.length && path.every((pathItem, index) => this._pathItemsAreEqual(pathItem, path[index]));\r\n }\r\n}\r\n","import { Observable, Subject } from \"@pjs/observables\";\r\nimport { ModelProxy } from \"../proxy/types/ModelProxy\";\r\nimport { IPatcher } from \"../patcher/interfaces/IPatcher\";\r\nimport { Patcher } from \"../patcher/Patcher\";\r\nimport { DocumentPatchOperations } from \"../proxy/types/DocumentPatchOperations\";\r\nimport { IProxyController } from \"../proxy/interfaces/IProxyController\";\r\nimport { ProxyController } from \"../proxy/Proxy\";\r\nimport { IProxyOperations } from \"../proxy/interfaces/IProxyOperations\";\r\nimport { PatchPath } from \"../patcher/types/PatchPath\";\r\nimport { BasePatcherModel } from \"../patcher/types/BasePatcherModel\";\r\nimport { IOperationResult } from \"../patcher/interfaces/IOperationResult\";\r\nimport { traverseObject } from \"../traverse-object/TraverseObject.function\";\r\nimport { PatchOperation } from \"../../enums/PatchOperation\";\r\nimport { IModelDocument } from \"./interfaces/IModelDocument\";\r\n\r\nexport class ModelDocument implements IModelDocument {\r\n public readonly changeStream: Observable;\r\n public readonly model: ModelProxy;\r\n\r\n private readonly _proxyController: IProxyController;\r\n private readonly _changesSubject: Subject;\r\n private readonly _patcher: IPatcher;\r\n\r\n constructor(model: T) {\r\n this._patcher = new Patcher(model);\r\n this._changesSubject = new Subject();\r\n this.changeStream = this._changesSubject.asObservable();\r\n\r\n this._proxyController = new ProxyController(this._getProxyOperations(), this.changeStream);\r\n this.model = this._proxyController.proxy;\r\n }\r\n\r\n public destroy(): void {\r\n this._changesSubject.complete();\r\n }\r\n\r\n protected _patch(patch: DocumentPatchOperations): IOperationResult {\r\n const patchResult = this._patcher.patch(patch);\r\n\r\n if (patchResult) {\r\n this._changesSubject.next(patch);\r\n\r\n return this._createOperationReceipt(patch.id);\r\n }\r\n\r\n return this._createErroredOperationReceipt(patch);\r\n }\r\n\r\n private _getProxyOperations(): IProxyOperations {\r\n return {\r\n add: (path: PatchPath, value: TModel) => this._patch({ id: Symbol(), op: PatchOperation.Add, path: path, value: value }),\r\n get: this._get.bind(this),\r\n insertAfter: (path: PatchPath, value: TModel) => this._patch({ id: Symbol(), op: PatchOperation.InsertAfter, path: path, value: value }),\r\n insertBefore: (path: PatchPath, value: TModel) => this._patch({ id: Symbol(), op: PatchOperation.InsertBefore, path: path, value: value }),\r\n remove: (path: PatchPath) => this._patch({ id: Symbol(), op: PatchOperation.Remove, path: path }),\r\n update: >(path: PatchPath, value: TModel) =>\r\n this._patch({ id: Symbol(), op: PatchOperation.Update, path: path, value: value })\r\n };\r\n }\r\n\r\n private _get(path: PatchPath): TModel | null {\r\n const modelAtPath = traverseObject(path, this._patcher.getModel());\r\n return modelAtPath !== null ? modelAtPath.node : modelAtPath;\r\n }\r\n\r\n private _generateErrorMessage(path: PatchPath, operation: string): string {\r\n return `Error - attempting ${operation} operation on path: ${JSON.stringify(path)}`;\r\n }\r\n\r\n private _createErroredOperationReceipt(patch: DocumentPatchOperations): IOperationResult {\r\n return { error: this._generateErrorMessage(patch.path, patch.op), patchId: patch.id };\r\n }\r\n\r\n private _createOperationReceipt(patchId: symbol): IOperationResult {\r\n return { error: null, patchId: patchId };\r\n }\r\n}\r\n","import { DocumentPatchOperations } from \"../proxy/types/DocumentPatchOperations\";\r\nimport { IOperationResult } from \"../patcher/interfaces/IOperationResult\";\r\nimport { ModelDocument } from \"../model-document/ModelDocument\";\r\nimport { BasePatcherModel } from \"../patcher/types/BasePatcherModel\";\r\n\r\nexport class PatchableModelDocument extends ModelDocument {\r\n public patch(patch: DocumentPatchOperations): IOperationResult {\r\n return this._patch(patch);\r\n }\r\n}\r\n","import { Observable } from \"@pjs/observables\";\r\nimport { Immutable } from \"@pjs/utilities\";\r\nimport { ModelDocument } from \"../model-document/ModelDocument\";\r\nimport { ModelProxy } from \"../proxy/types/ModelProxy\";\r\nimport { ReadonlyModelProxy } from \"../proxy/types/ReadonlyModelProxy\";\r\nimport { DocumentPatchOperations } from \"../proxy/types/DocumentPatchOperations\";\r\nimport { PatchableModelDocument } from \"../patchable-model-document/PatchableModelDocument\";\r\nimport { BasePatcherModel } from \"../patcher/types/BasePatcherModel\";\r\nimport { ITrackedModelDocument } from \"./interfaces/ITrackedModelDocument\";\r\n\r\nexport class TrackedModelDocument implements ITrackedModelDocument {\r\n public readonly latestModel: ModelProxy;\r\n public readonly model: ReadonlyModelProxy;\r\n public readonly changeStream: Observable>;\r\n\r\n private readonly _latestModelDocument: ModelDocument;\r\n private readonly _modelDocument: PatchableModelDocument;\r\n private readonly _changes: Array;\r\n\r\n constructor(model: T) {\r\n this._latestModelDocument = new ModelDocument(structuredClone(model));\r\n this.latestModel = this._latestModelDocument.model;\r\n this.changeStream = this._latestModelDocument.changeStream;\r\n\r\n this._modelDocument = new PatchableModelDocument(model);\r\n this.model = this._modelDocument.model as unknown as ReadonlyModelProxy;\r\n\r\n this._changes = [];\r\n this._subscribeToLatestModelChanges();\r\n }\r\n\r\n public applyChanges(patchId?: symbol): void {\r\n const targetPatchIndex = patchId !== undefined ? this._changes.findIndex((patch) => patch.id === patchId) : this._changes.length - 1;\r\n\r\n if (targetPatchIndex === -1) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i <= targetPatchIndex; i++) {\r\n this._modelDocument.patch(this._changes[i]);\r\n }\r\n\r\n this._changes.splice(0, targetPatchIndex + 1);\r\n }\r\n\r\n public destroy(): void {\r\n this._modelDocument.destroy();\r\n this._latestModelDocument.destroy();\r\n }\r\n\r\n public hasChanges(): boolean {\r\n return this._changes.length > 0;\r\n }\r\n\r\n public getChanges(): Immutable> {\r\n return this._changes;\r\n }\r\n\r\n private _subscribeToLatestModelChanges(): void {\r\n this._latestModelDocument.changeStream.subscribe((patchOperation) => this._changes.push(patchOperation));\r\n }\r\n}\r\n","import { Errors } from \"../enums/Errors\";\r\n\r\nexport class AccountSettingsException extends Error {\r\n constructor(name: Errors, message: string) {\r\n super(message);\r\n this.name = name;\r\n }\r\n}\r\n","export enum Errors {\r\n DocumentNotFoundException = \"DocumentNotFoundException\"\r\n}\r\n","import { ITrackedModelDocument, TrackedModelDocument } from \"@pjs/storage\";\r\nimport { BehaviorSubject, Observable } from \"@pjs/observables\";\r\nimport { IAccountSettingsStore } from \"../interfaces/IAccountSettingsStore\";\r\nimport { ISettingsModel } from \"../interfaces/ISettingsModel\";\r\nimport { AccountSettingsException } from \"../errors/AccountSettingsException\";\r\nimport { Errors } from \"../enums/Errors\";\r\nimport { ISettingsState } from \"../interfaces/ISettingsState\";\r\n\r\nconst initialState: ISettingsState = {\r\n error: false,\r\n saving: false\r\n};\r\n\r\nexport class AccountSettingsStore implements IAccountSettingsStore {\r\n public stateObservable: Observable;\r\n private _stateSubject: BehaviorSubject;\r\n private _document: TrackedModelDocument | null;\r\n\r\n constructor() {\r\n this._document = null;\r\n this._stateSubject = new BehaviorSubject(initialState);\r\n\r\n this.stateObservable = this._stateSubject.asObservable();\r\n }\r\n\r\n public initialiseModel(model: ISettingsModel): void {\r\n this._destroyDocument();\r\n this._document = new TrackedModelDocument(model);\r\n }\r\n\r\n public getModelDocument(): ITrackedModelDocument {\r\n if (this._document === null) {\r\n throw new AccountSettingsException(Errors.DocumentNotFoundException, \"Must call 'initialiseModel' before 'getModelDocument'\");\r\n }\r\n\r\n return this._document;\r\n }\r\n\r\n public updateState(newState: Partial): void {\r\n const prevState = this._stateSubject.getValue();\r\n const hasChanged = Object.entries(newState).some(([key, value]) => prevState[key as keyof ISettingsState] !== value);\r\n if (!hasChanged) {\r\n return;\r\n }\r\n this._stateSubject.next({ ...prevState, ...newState });\r\n }\r\n\r\n public clear(): void {\r\n this._destroyDocument();\r\n\r\n this._stateSubject.complete();\r\n this._stateSubject = new BehaviorSubject(initialState);\r\n this.stateObservable = this._stateSubject.asObservable();\r\n }\r\n\r\n private _destroyDocument(): void {\r\n if (this._document === null) {\r\n return;\r\n }\r\n\r\n this._document.destroy();\r\n this._document = null;\r\n }\r\n}\r\n","import { AccountSettingsStore } from \"./AccountSettingsStore\";\r\n\r\nexport const accountSettingsStore = new AccountSettingsStore();\r\n","import { Observable, startWith, switchMap, share } from \"@pjs/observables\";\r\nimport { Immutable } from \"@pjs/utilities\";\r\nimport { getAccountSettings } from \"./functions/GetAccountSettings.function\";\r\nimport { accountSettingsStore } from \"./stores/AccountSettingsStore.const\";\r\nimport { ISettingsState } from \"./interfaces/ISettingsState\";\r\nimport { ISettingsModel } from \"./interfaces/ISettingsModel\";\r\n\r\nexport class AccountSettings {\r\n public static getSettings(): Observable> {\r\n try {\r\n const document = accountSettingsStore.getModelDocument();\r\n return document.latestModel.pipe(startWith(document.model.get()));\r\n } catch {\r\n return getAccountSettings().pipe(\r\n switchMap((response) => {\r\n accountSettingsStore.initialiseModel(response);\r\n const document = accountSettingsStore.getModelDocument();\r\n return document.latestModel.pipe(startWith(document.model.get()), share());\r\n })\r\n );\r\n }\r\n }\r\n\r\n public static getState(): Observable {\r\n return accountSettingsStore.stateObservable;\r\n }\r\n\r\n public static clear(): void {\r\n accountSettingsStore.clear();\r\n }\r\n\r\n public static hasChanges(): boolean {\r\n const document = accountSettingsStore.getModelDocument();\r\n return document.hasChanges();\r\n }\r\n}\r\n","import { httpService, IResponseError, WebRequestFactory } from \"@pjs/http\";\r\nimport { apiConfig } from \"../../../ApiConfig\";\r\n\r\nexport const getDigestStatus = WebRequestFactory.createGet({\r\n errorMapper: (errorResponse: Response) => Promise.resolve({ code: errorResponse.status.toString(), headers: errorResponse.headers }),\r\n http: httpService,\r\n responseMapper: (response: Response) => response.text().then((data) => data.toLowerCase() === \"true\"),\r\n url: () => apiConfig.digestStatus()\r\n});\r\n","import { fromCamelToPascal, httpService, IResponseError, WebRequestFactory } from \"@pjs/http\";\r\nimport { Observable } from \"@pjs/observables\";\r\nimport { apiConfig } from \"../../../ApiConfig\";\r\nimport { BackendPatchAccountSettingsBody } from \"../types/BackendPatchAccountSettingsBody\";\r\nimport { ISettingSaveItem } from \"../interfaces/setting-items/ISettingSaveItem\";\r\n\r\nconst patchAccountSettingsObservable = WebRequestFactory.createPatch({\r\n errorMapper: (errorResponse: Response) => Promise.resolve({ code: errorResponse.status.toString(), headers: errorResponse.headers }),\r\n http: httpService,\r\n responseMapper: () => Promise.resolve(true),\r\n url: () => apiConfig.accountSettings()\r\n});\r\n\r\nexport const patchAccountSettings = (body: ReadonlyArray): Observable => {\r\n return patchAccountSettingsObservable(fromCamelToPascal(body));\r\n};\r\n","import { CamelToPascal } from \"./types/CamelToPascal\";\r\n\r\nexport function fromCamelToPascal(model: T): CamelToPascal {\r\n if (Array.isArray(model)) {\r\n const newModel = [];\r\n for (const item of model) {\r\n newModel.push(fromCamelToPascal(item));\r\n }\r\n\r\n return newModel as CamelToPascal;\r\n }\r\n\r\n if (model === null || typeof model !== \"object\") {\r\n return model as CamelToPascal;\r\n }\r\n\r\n const newModel: Record = {};\r\n const entries = Object.entries(model);\r\n\r\n for (const [key, value] of entries) {\r\n const newKey = /^[a-z]/.test(key) ? key[0].toUpperCase() + key.slice(1) : key;\r\n newModel[newKey] = fromCamelToPascal(value);\r\n }\r\n\r\n return newModel as CamelToPascal;\r\n}\r\n","import { DocumentPatchOperations, PatchOperation } from \"@pjs/storage\";\r\nimport { Immutable, isPlainObject } from \"@pjs/utilities\";\r\nimport { ISettingSaveItem } from \"../interfaces/setting-items/ISettingSaveItem\";\r\nimport { BackendSettings } from \"../enums/BackendSettings\";\r\nimport { SettingPatchPaths } from \"../enums/SettingPatchPaths\";\r\n\r\nconst settingPatchMap: { [key in SettingPatchPaths]: BackendSettings } = {\r\n [SettingPatchPaths.EmbedConsent]: BackendSettings.EmbedConsent,\r\n [SettingPatchPaths.LanguageChoice]: BackendSettings.LanguageChoice,\r\n [SettingPatchPaths.PageSaving]: BackendSettings.PageSaving,\r\n [SettingPatchPaths.Grades]: BackendSettings.Grades,\r\n [SettingPatchPaths.Feedback]: BackendSettings.Feedback,\r\n [SettingPatchPaths.Comments]: BackendSettings.Comments,\r\n [SettingPatchPaths.Updated]: BackendSettings.Updated,\r\n [SettingPatchPaths.Shares]: BackendSettings.Shares,\r\n [SettingPatchPaths.AtlasReceipts]: BackendSettings.AtlasReceipts,\r\n [SettingPatchPaths.NotificationFrequency]: BackendSettings.NotificationFrequency,\r\n [SettingPatchPaths.NotificationTime]: BackendSettings.NotificationTime\r\n};\r\n\r\nexport const requestBodyMapper = (patches: Immutable>): ReadonlyArray => {\r\n const patchMap = new Map();\r\n\r\n for (const patch of patches) {\r\n if (patch.op !== PatchOperation.Update) {\r\n continue;\r\n }\r\n\r\n const pathKey = patch.path.join(\".\");\r\n if (!(pathKey in settingPatchMap)) {\r\n continue;\r\n }\r\n\r\n const value = patch.value.value;\r\n if (value === undefined || isPlainObject(value)) {\r\n continue;\r\n }\r\n\r\n const name = settingPatchMap[pathKey as SettingPatchPaths];\r\n patchMap.set(name, (value as string | boolean).toString());\r\n }\r\n\r\n return Array.from(patchMap, ([name, setting]) => ({\r\n name,\r\n value: setting\r\n }));\r\n};\r\n","import { tracker } from \"@pjs/analytics\";\r\nimport { ISettingSaveItem } from \"../interfaces/setting-items/ISettingSaveItem\";\r\n\r\nexport const trackSaveAnalytics = (changes: ReadonlyArray): void => {\r\n for (const change of changes) {\r\n tracker.trackEvent(\"User Settings\", \"Save account settings\", change.name);\r\n }\r\n};\r\n","import { patchAccountSettings } from \"../functions/PatchAccountSettings.function\";\r\nimport { requestBodyMapper } from \"../mappers/RequestBodyMapper.function\";\r\nimport { accountSettingsStore } from \"../stores/AccountSettingsStore.const\";\r\nimport { trackSaveAnalytics } from \"../functions/TrackSaveAnalytics.function\";\r\n\r\nexport const saveSettingsEffect = (): void => {\r\n const document = accountSettingsStore.getModelDocument();\r\n const patches = document.getChanges();\r\n const bodyData = requestBodyMapper(patches);\r\n\r\n if (bodyData.length === 0) {\r\n return;\r\n }\r\n\r\n accountSettingsStore.updateState({ error: false, saving: true });\r\n\r\n const patchTo = patches.at(-1);\r\n patchAccountSettings(bodyData).subscribe({\r\n error: () => accountSettingsStore.updateState({ error: true, saving: false }),\r\n next: () => {\r\n trackSaveAnalytics(bodyData);\r\n document.applyChanges(patchTo?.id);\r\n accountSettingsStore.updateState({ saving: false });\r\n location.reload();\r\n }\r\n });\r\n};\r\n","import { DeepPartial } from \"@pjs/utilities\";\r\nimport { accountSettingsStore } from \"../stores/AccountSettingsStore.const\";\r\nimport { IPrivacy } from \"../interfaces/setting-categories/IPrivacy\";\r\n\r\nexport const updatePrivacySettingEffect = (payload: DeepPartial): void => {\r\n const document = accountSettingsStore.getModelDocument();\r\n\r\n for (const [key, value] of Object.entries(payload)) {\r\n const typedKey = key as keyof Omit;\r\n document.latestModel.privacy[typedKey].update(value as any);\r\n }\r\n};\r\n","import { DeepPartial } from \"@pjs/utilities\";\r\nimport { accountSettingsStore } from \"../stores/AccountSettingsStore.const\";\r\nimport { IAssessment } from \"../interfaces/setting-categories/IAssessment\";\r\n\r\nexport const updateAssessmentSettingEffect = (payload: DeepPartial): void => {\r\n const document = accountSettingsStore.getModelDocument();\r\n\r\n for (const [key, value] of Object.entries(payload)) {\r\n const typedKey = key as keyof Omit;\r\n document.latestModel.assessment[typedKey].update(value as any);\r\n }\r\n};\r\n","import { DeepPartial } from \"@pjs/utilities\";\r\nimport { accountSettingsStore } from \"../stores/AccountSettingsStore.const\";\r\nimport { ILanguage } from \"../interfaces/setting-categories/ILanguage\";\r\n\r\nexport const updateLanguageSettingEffect = (payload: DeepPartial): void => {\r\n const document = accountSettingsStore.getModelDocument();\r\n\r\n for (const [key, value] of Object.entries(payload)) {\r\n const typedKey = key as keyof Omit;\r\n document.latestModel.language[typedKey].update(value as any);\r\n }\r\n};\r\n","import { accountSettingsStore } from \"../stores/AccountSettingsStore.const\";\r\n\r\nexport const updateNotificationValues = (payload: { type: string; value: string }): void => {\r\n const document = accountSettingsStore.getModelDocument();\r\n const settings = document.latestModel.notifications.settings.get();\r\n\r\n if (settings !== null) {\r\n const item = settings[payload.type];\r\n const newItem = {\r\n ...item,\r\n value: payload.value\r\n };\r\n\r\n document.latestModel.notifications.settings[payload.type].update(newItem);\r\n }\r\n};\r\n","import { accountSettingsStore } from \"../stores/AccountSettingsStore.const\";\r\nimport { BackendSettings } from \"../enums/BackendSettings\";\r\n\r\nexport const updateDigestSettings = (payload: { name: string; index: number }): void => {\r\n const document = accountSettingsStore.getModelDocument();\r\n\r\n if (payload.name === BackendSettings.NotificationFrequency) {\r\n const frequency = document.latestModel.notifications.settings.notificationFrequency.get();\r\n if (frequency !== null) {\r\n const newValue = frequency.options[payload.index].key;\r\n document.latestModel.notifications.settings.notificationFrequency.update({ value: newValue });\r\n }\r\n }\r\n\r\n if (payload.name === BackendSettings.NotificationTime) {\r\n const times = document.latestModel.notifications.settings.notificationTime.get();\r\n if (times !== null) {\r\n const newValue = times.options[payload.index];\r\n document.latestModel.notifications.settings.notificationTime.update({ value: newValue });\r\n }\r\n }\r\n};\r\n","export enum View {\r\n Assessment = \"assessment\",\r\n Language = \"language\",\r\n Privacy = \"privacy\",\r\n Profile = \"profile\",\r\n Notifications = \"notifications\"\r\n}\r\n","import { injectCss } from \"../../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.uui-avatar{border-radius:50%;width:100%;height:100%;display:flex;overflow:hidden}.uui-avatar img{object-fit:cover;object-position:center;width:100%;height:100%}`);","import {FunctionComponent} from \"react\";\r\nimport {IAvatarProps} from \"./interfaces/IAvatarProps\";\r\nimport \"./styles/avatar.css\";\r\n\r\nexport const Avatar: FunctionComponent = (props) => {\r\n const alt = props.alt !== undefined ? props.alt : \"\";\r\n const className = `uui-avatar ${props.className !== undefined ? props.className : \"\"}`\r\n\r\n return (\r\n
\r\n {alt}\r\n
\r\n )\r\n}","import { i18nManager, withImport } from \"@pjs/i18n\";\r\nimport defaultLanguageJson from \"../../resources/lang/en-GB.json\";\r\n\r\nexport const userUiI18n = i18nManager.createSet(\"user-ui\");\r\n\r\nuserUiI18n.add(\r\n \"en-GB\",\r\n withImport(() => import(\"../../resources/lang/en-GB.json\"))\r\n);\r\n\r\nuserUiI18n.add(\r\n \"cy-GB\",\r\n withImport(() => import(\"../../resources/lang/cy-GB.json\"))\r\n);\r\n\r\nuserUiI18n.add(\r\n \"nl-NL\",\r\n withImport(() => import(\"../../resources/lang/nl-NL.json\"))\r\n);\r\n\r\nuserUiI18n.add(\r\n \"en-US\",\r\n withImport(() => import(\"../../resources/lang/en-US.json\"))\r\n);\r\n","import {\r\n updateAssessmentSettingEffect,\r\n updatePrivacySettingEffect,\r\n updateLanguageSettingEffect,\r\n saveSettingsEffect,\r\n updateNotificationValues,\r\n updateDigestSettings\r\n} from \"@pjs/user-domain\";\r\nimport { IAppNotification } from \"../notifications/interfaces/IAppNotification\";\r\nimport { IAppDigestSetting } from \"../notifications/interfaces/IAppDigestSetting\";\r\nimport { IAccountSettingsActions } from \"./interfaces/IAccountSettingsActions\";\r\n\r\nconst embedConsentUpdateAction = (embedConsent: boolean): void => {\r\n updatePrivacySettingEffect({\r\n embedConsent: {\r\n value: embedConsent\r\n }\r\n });\r\n};\r\n\r\nconst languageChoiceUpdateAction = (languageChoice: string): void => {\r\n updateLanguageSettingEffect({\r\n languageChoice: {\r\n value: languageChoice\r\n }\r\n });\r\n};\r\n\r\nconst pageSavingUpdateAction = (pageSaving: boolean): void => {\r\n updateAssessmentSettingEffect({\r\n pageSaving: {\r\n value: pageSaving\r\n }\r\n });\r\n};\r\n\r\nconst notificationsUpdateAction = (notificationItem: IAppNotification): void => {\r\n let newValue = \"\";\r\n newValue += notificationItem.settings.digest ? \"D\" : \"\";\r\n newValue += notificationItem.settings.email ? \"E\" : \"\";\r\n newValue += notificationItem.settings.feed ? \"F\" : \"\";\r\n\r\n updateNotificationValues({\r\n type: notificationItem.type,\r\n value: newValue\r\n });\r\n};\r\n\r\nconst digestUpdateAction = (digestSetting: IAppDigestSetting): void => {\r\n updateDigestSettings({\r\n name: digestSetting.name,\r\n index: digestSetting.index\r\n });\r\n};\r\n\r\nexport const accountSettingsActions: IAccountSettingsActions = {\r\n language: {\r\n languageChoice: languageChoiceUpdateAction\r\n },\r\n privacy: {\r\n embedConsent: embedConsentUpdateAction\r\n },\r\n assessment: {\r\n pageSaving: pageSavingUpdateAction\r\n },\r\n notifications: {\r\n updateNotification: notificationsUpdateAction,\r\n updateDigestSetting: digestUpdateAction\r\n },\r\n saveSettings: saveSettingsEffect\r\n};\r\n","import { View } from \"../enums/View\";\r\n\r\nexport const getDefaultView = (): View | null => (window.matchMedia(\"(max-width: 620px)\").matches ? null : View.Profile);\r\n","import { View } from \"../enums/View\";\r\nimport { getDefaultView } from \"./GetDefaultView.function\";\r\n\r\nexport const getView = (view: View | null, availableViews: Array, replaceView: (view: View | null) => void): View | null => {\r\n if (availableViews.length === 0) {\r\n return view;\r\n }\r\n\r\n const newView = availableViews.includes(view as View) ? view : getDefaultView();\r\n if (view !== newView) {\r\n replaceView(newView);\r\n }\r\n\r\n return newView;\r\n};\r\n","export const apiConfig = {\r\n policyLink: (): string => {\r\n throw new Error(\"You haven't set the gdpr forwarder endpoint\");\r\n },\r\n termsLink: (): string => {\r\n throw new Error(\"You haven't set the terms forwarder endpoint\");\r\n }\r\n};\r\n","import { feedbackTemplateIcon, languageIcon, notificationsIcon, privacyIcon, profileIcon } from \"@pjs/core-ui\";\r\nimport { userUiI18n } from \"../../i18n/UserUiI18n.const\";\r\nimport { ISidebarButton } from \"../interfaces/ISidebarButton\";\r\nimport { View } from \"../enums/View\";\r\n\r\nexport const sidebarButtons: Array = [\r\n {\r\n icon: profileIcon,\r\n get text() {\r\n return userUiI18n.getString(\"settings_sidebar.buttons.profile\");\r\n },\r\n view: View.Profile\r\n },\r\n {\r\n icon: languageIcon,\r\n get text() {\r\n return userUiI18n.getString(\"settings_sidebar.buttons.language\");\r\n },\r\n view: View.Language\r\n },\r\n {\r\n icon: privacyIcon,\r\n get text() {\r\n return userUiI18n.getString(\"settings_sidebar.buttons.privacy\");\r\n },\r\n view: View.Privacy\r\n },\r\n {\r\n icon: notificationsIcon,\r\n get text() {\r\n return userUiI18n.getString(\"settings_sidebar.buttons.notifications\");\r\n },\r\n view: View.Notifications\r\n },\r\n {\r\n icon: feedbackTemplateIcon,\r\n separated: true,\r\n get text() {\r\n return userUiI18n.getString(\"settings_sidebar.buttons.assessment\");\r\n },\r\n view: View.Assessment\r\n }\r\n];\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.uui-settings-sidebar{background:var(--colour-background);border:var(--layout-border-thickness-default)solid var(--colour-border);padding:var(--layout-padding-action-container)0;flex:1}.uui-settings-sidebar__button{text-align:left;padding:var(--layout-padding-action-container)var(--layout-padding-content-container);background:var(--colour-action-outlined-background-default);color:var(--colour-body-text);font-weight:var(--font-weight-action);border:none;border-left:5px solid #0000;justify-items:start;width:100%;display:flex}.uui-settings-sidebar__button:hover,.uui-settings-sidebar__button:focus-visible{background:var(--colour-action-outlined-background-hover)}.uui-settings-sidebar__button:focus-visible{outline:var(--layout-border-thickness-standout)solid var(--colour-action-outlined-border-focused);outline-offset:calc(var(--layout-border-thickness-standout)*-1)}.uui-settings-sidebar__button.uui-settings-sidebar__link{width:auto;text-decoration:none}.uui-settings-sidebar__button.uui-settings-sidebar__link:hover,.uui-settings-sidebar__button.uui-settings-sidebar__link:focus{color:var(--colour-body-text);text-decoration:none}.uui-settings-sidebar__button--selected{border-color:var(--colour-highlight-active);color:var(--colour-highlight-active);fill:var(--colour-highlight-active)}.uui-settings-sidebar__icon{margin-right:var(--layout-margin-between-text-content);flex-shrink:0;width:2rem;height:2rem}.uui-settings-sidebar__divider{height:var(--layout-border-thickness-default);background:var(--palette-primary-200);margin:var(--layout-margin-between-content)}@media (max-width:620px){.uui-settings-sidebar--hide-mobile{display:none}.uui-settings-sidebar{border:none}.uui-settings-sidebar__button:hover{border-color:var(--colour-highlight-active)}}`);","import { Fragment, FunctionComponent } from \"react\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { Hyperlink, Icon, privacyIcon } from \"@pjs/core-ui\";\r\nimport { apiConfig } from \"../../ApiConfig\";\r\nimport { userUiI18n } from \"../i18n/UserUiI18n.const\";\r\nimport { ISettingsSidebarProps } from \"./interfaces/ISettingsSidebarProps\";\r\nimport { View } from \"./enums/View\";\r\nimport { sidebarButtons } from \"./consts/SidebarButtons.const\";\r\nimport \"./styles/settings-sidebar.css\";\r\n\r\nexport const SettingsSidebar: FunctionComponent = (props) => {\r\n const handleSetView = (view: View): void => {\r\n tracker.trackEvent(\"Account Settings\", \"Select view\", `${view} view selected`);\r\n props.setView(view);\r\n };\r\n\r\n const filteredButtons = sidebarButtons.filter((button) => props.views.includes(button.view));\r\n const hideMobile = props.view !== null ? \"uui-settings-sidebar--hide-mobile\" : \"\";\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.uui-profile__avatar{margin:var(--layout-margin-between-content)0 0 0;width:10rem;height:10rem}.uui-profile__title,.uui-profile__content{word-break:break-word;color:var(--colour-body-text);margin:var(--layout-margin-between-content)0 0 0}.uui-profile__title{font-size:var(--font-size-h5);line-height:var(--font-line-height-heading);font-weight:var(--font-weight-semi-bold)}.uui-profile__content{font-size:var(--font-size-body);line-height:var(--font-line-height-body)}`);","import { Fragment, FunctionComponent } from \"react\";\r\nimport { Avatar } from \"../avatar/Avatar.component\";\r\nimport { userUiI18n } from \"../i18n/UserUiI18n.const\";\r\nimport { IProfileProps } from \"./interfaces/IProfileProps\";\r\nimport \"./styles/profile.css\";\r\n\r\nexport const Profile: FunctionComponent = (props) => {\r\n return (\r\n \r\n

{userUiI18n.getString(`profile.sub_titles.avatar`)}

\r\n \r\n\r\n

{userUiI18n.getString(`profile.sub_titles.organisation`)}

\r\n

\r\n {props.userDetails.institution}\r\n

\r\n\r\n

{userUiI18n.getString(`profile.sub_titles.given_name`)}

\r\n

\r\n {props.userDetails.firstName}\r\n

\r\n\r\n

{userUiI18n.getString(`profile.sub_titles.family_name`)}

\r\n

\r\n {props.userDetails.surname}\r\n

\r\n
\r\n );\r\n};\r\n","import { IRadioGroupItem } from \"@pjs/core-ui\";\r\nimport { userUiI18n } from \"../../i18n/UserUiI18n.const\";\r\n\r\nexport const embedConsentRadioGroupItems: Array = [\r\n {\r\n id: \"cookie-true\",\r\n value: \"true\",\r\n get label() {\r\n return userUiI18n.getString(\"privacy.cookies.true\");\r\n }\r\n },\r\n {\r\n id: \"cookie-false\",\r\n value: \"false\",\r\n get label() {\r\n return userUiI18n.getString(\"privacy.cookies.false\");\r\n }\r\n }\r\n];\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.uui-privacy__title{font-size:var(--font-size-h5);line-height:var(--font-line-height-heading);font-weight:var(--font-weight-semi-bold);color:var(--colour-body-text);margin-bottom:var(--layout-margin-between-text-content)}.uui-privacy__description,.uui-privacy__cookie-policy{font-size:var(--font-size-body);line-height:var(--font-line-height-body);color:var(--colour-supporting-text);margin-bottom:var(--layout-margin-between-text-content)}.uui-privacy__cookie-policy{margin-bottom:var(--layout-margin-between-content-sections)}.uui-privacy__radio-group{margin-bottom:var(--layout-margin-between-text-content)}`);","import { Fragment, FunctionComponent } from \"react\";\r\nimport { ParseHtml } from \"@pjs/security\";\r\nimport { RadioGroup } from \"@pjs/core-ui\";\r\nimport { userUiI18n } from \"../i18n/UserUiI18n.const\";\r\nimport { IPrivacyProps } from \"./interfaces/IPrivacyProps\";\r\nimport { embedConsentRadioGroupItems } from \"./consts/EmbedConsentRadioGroupItems.const\";\r\nimport \"./styles/privacy.css\";\r\n\r\nexport const Privacy: FunctionComponent = (props) => {\r\n return (\r\n \r\n

{userUiI18n.getString(\"privacy.cookies.title\")}

\r\n

{userUiI18n.getString(\"privacy.cookies.description\")}

\r\n \r\n
\r\n props.actions.embedConsent(value === \"true\")}\r\n />\r\n
\r\n
\r\n );\r\n};\r\n","import { IRadioGroupItem } from \"@pjs/core-ui\";\r\nimport { userUiI18n } from \"../../i18n/UserUiI18n.const\";\r\n\r\nexport const pageSavingRadioGroupItems: Array = [\r\n {\r\n id: \"page-saving-false\",\r\n value: \"false\",\r\n get label() {\r\n return userUiI18n.getString(\"assessment.page_saving.false\");\r\n }\r\n },\r\n {\r\n id: \"page-saving-true\",\r\n value: \"true\",\r\n get label() {\r\n return userUiI18n.getString(\"assessment.page_saving.true\");\r\n }\r\n }\r\n];\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.uui-page-saving__title{font-size:var(--font-size-h5);line-height:var(--font-line-height-heading);font-weight:var(--font-weight-semi-bold);color:var(--colour-body-text);margin-bottom:var(--layout-margin-between-text-content)}.uui-page-saving__description{font-size:var(--font-size-body);line-height:var(--font-line-height-body);color:var(--colour-supporting-text);margin-bottom:var(--layout-margin-between-content-sections)}.uui-page-saving__radio-group{margin-bottom:var(--layout-margin-between-text-content)}`);","import { Fragment, FunctionComponent } from \"react\";\r\nimport { RadioGroup } from \"@pjs/core-ui\";\r\nimport { userUiI18n } from \"../i18n/UserUiI18n.const\";\r\nimport { IAssessmentProps } from \"./interfaces/IAssessmentProps\";\r\nimport { pageSavingRadioGroupItems } from \"./consts/PageSavingRadioGroupItems.const\";\r\nimport \"./styles/assessment-preferences.css\";\r\n\r\nexport const AssessmentPreferences: FunctionComponent = (props) => {\r\n return (\r\n \r\n

{userUiI18n.getString(\"assessment.page_saving.title\")}

\r\n

{userUiI18n.getString(\"assessment.page_saving.description\")}

\r\n
\r\n props.actions.pageSaving(value === \"true\")}\r\n />\r\n
\r\n
\r\n );\r\n};\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.uui-language__select{width:30rem}.uui-language__title{word-break:break-word;color:var(--colour-body-text);margin:0 0 var(--layout-margin-between-text-content)0;font-size:var(--font-size-h5);line-height:var(--font-line-height-heading);font-weight:var(--font-weight-semi-bold)}`);","import { Fragment, FunctionComponent, useId, useState } from \"react\";\r\nimport { useOnValueChange } from \"@pjs/react-utilities\";\r\nimport { AriaMenuStatus, BoundaryBridge, MenuAriaModel, Select, TextOption } from \"@pjs/core-ui\";\r\nimport { userUiI18n } from \"../i18n/UserUiI18n.const\";\r\nimport { ILanguageProps } from \"./interfaces/ILanguageProps\";\r\nimport { ILanguageOption } from \"./interfaces/ILanguageOption\";\r\nimport \"./styles/language.css\";\r\n\r\nexport const Language: FunctionComponent = (props) => {\r\n const id = useId();\r\n const options = props.settings.languageChoice.options as Array;\r\n const [model, setModel] = useState({\r\n type: AriaMenuStatus.Closed,\r\n isOpen: false,\r\n activeItemIndex: options.findIndex((value) => value.key === props.settings.languageChoice.value)\r\n });\r\n\r\n useOnValueChange(() => {\r\n const key = props.settings.languageChoice.options[model.activeItemIndex].key;\r\n props.actions.languageChoice(key);\r\n }, [model.activeItemIndex]);\r\n\r\n return (\r\n \r\n

{userUiI18n.getString(\"language.language_choice.title\")}

\r\n
\r\n \r\n ;\r\n});\r\n","import { FunctionComponent } from \"react\";\r\nimport { ILoadingSpinnerProps } from \"./interfaces/ILoadingSpinnerProps\";\r\nimport \"./styles/loading-spinner.css\";\r\n\r\nconst sizeRegex = /^[0-9]+(\\.[0-9]+)?(px|%|em|rem)$/i;\r\nexport const LoadingSpinner: FunctionComponent = (props) => {\r\n if (!sizeRegex.test(props.size)) {\r\n throw new Error(`LoadingSpinner size prop is not a valid unit, The value must be in px, %, rem or em. ${props.size} was provided`);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nLoadingSpinner.displayName = \"LoadingSpinner\";\r\n","import { FunctionComponent } from \"react\";\r\nimport { IStyledLoadingSpinnerProps } from \"./interfaces/IStyledLoadingSpinnerProps\";\r\nimport \"./styles/loading-spinner.css\";\r\n\r\nexport const StyledLoadingSpinner: FunctionComponent = (props) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { FunctionComponent, PropsWithChildren } from \"react\";\r\nimport { Icon } from \"../icon/Icon.component\";\r\nimport { INoticeProps } from \"./interfaces/INoticeProps\";\r\nimport \"./styles/notice.css\";\r\n\r\nexport const Notice: FunctionComponent> = (props) => {\r\n const noticeBorderStyle = {\r\n borderLeftColor: props.type.colour\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
{props.children}
\r\n
\r\n
\r\n );\r\n};\r\n","import { errorIcon } from \"../../icon/icons/Error.icon\";\r\nimport { INoticeType } from \"../interfaces/INoticeType\";\r\n\r\nexport const errorNotice: INoticeType = {\r\n colour: \"var(--colour-danger)\",\r\n icon: errorIcon\r\n};\r\n","import { INoticeType } from \"../interfaces/INoticeType\";\r\nimport { informationIcon } from \"../../icon/icons/Information.icon\";\r\n\r\nexport const informationNotice: INoticeType = {\r\n colour: \"var(--colour-info)\",\r\n icon: informationIcon\r\n};\r\n","import { INoticeType } from \"../interfaces/INoticeType\";\r\nimport { successIcon } from \"../../icon/icons/Success.icon\";\r\n\r\nexport const successNotice: INoticeType = {\r\n colour: \"var(--colour-success)\",\r\n icon: successIcon\r\n};\r\n","import { INoticeType } from \"../interfaces/INoticeType\";\r\nimport { warningIcon } from \"../../icon/icons/Warning.icon\";\r\n\r\nexport const warningNotice: INoticeType = {\r\n colour: \"var(--colour-warning)\",\r\n icon: warningIcon\r\n};\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-overflow-menu__button{--cui-icon-button-height:calc(var(--font-size-body)*var(--font-line-height-body));--cui-icon-button-width:calc(var(--font-size-body)*var(--font-line-height-body));background-color:var(--colour-action-outlined-background-default);flex-wrap:nowrap;max-width:100%;padding:.8rem}.cui-overflow-menu__button--menu-open{background-color:var(--colour-action-menu-active)}.cui-overflow-menu__button--menu-open:hover{background-color:var(--colour-action-outlined-background-hover)}.cui-overflow-menu__icon--disabled{fill:var(--colour-icon-fill-disabled)}`);","import { FunctionComponent } from \"react\";\r\nimport { IconButtonClass } from \"../icon-button/enums/IconButtonClass\";\r\nimport { ButtonMenu } from \"../button-menu/ButtonMenu.component\";\r\nimport { overflowMenuIcon } from \"../icon/icons/OverflowMenu.icon\";\r\nimport { Icon } from \"../icon/Icon.component\";\r\nimport { IOverflowMenuProps } from \"./interfaces/IOverflowMenuProps\";\r\nimport \"./styles/overflow-menu.css\";\r\nimport \"../icon-button/styles/icon-button.css\";\r\n\r\nexport const OverflowMenu: FunctionComponent = (props: IOverflowMenuProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-progress-visualisation{position:relative}.cui-progress-visualisation__canvas{position:absolute;top:0;left:0}.cui-progress-visualisation__percentage-wrapper{text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%)translateY(-50%)}.cui-progress-visualisation__count{color:inherit;font-size:var(--font-size-h1);margin:0;line-height:1}.cui-progress-visualisation__complete{color:inherit;font-size:var(--font-size-body);line-height:var(--font-line-height-body);margin:0}`);","import { ReactElement, RefObject, PureComponent, createRef } from \"react\";\r\nimport { createGuid } from \"@pjs/utilities\";\r\nimport { TimedAnimation } from \"../timed-animation/TimedAnimation\";\r\nimport { ITimedAnimation } from \"../timed-animation/interfaces/ITimedAnimation\";\r\nimport { easeInOutCubic } from \"../timed-animation/easings/easeInOutCubic\";\r\nimport { coreUiI18n } from \"../i18n/CoreUiI18n.const\";\r\nimport { IProgressVisualisationProps } from \"./interfaces/IProgressVisualisationProps\";\r\nimport { IProgressVisualisationState } from \"./interfaces/IProgressVisualisationState\";\r\nimport \"./styles/progress-visualisation.css\";\r\n\r\nconst placeholderCanvasRenderingContext2D = null as unknown as CanvasRenderingContext2D;\r\n\r\nexport class ProgressVisualisation extends PureComponent {\r\n private readonly _canvasRef: RefObject = createRef();\r\n private _timedAnimation: ITimedAnimation;\r\n private _ctx: CanvasRenderingContext2D = placeholderCanvasRenderingContext2D;\r\n private readonly _id: string = createGuid();\r\n\r\n private readonly _completeText: string = coreUiI18n.getString(\"progress_visualisation.complete\");\r\n\r\n constructor(props: IProgressVisualisationProps) {\r\n super(props);\r\n this.state = {\r\n text: \"\"\r\n };\r\n\r\n this._timedAnimation = new TimedAnimation(this.props.duration, easeInOutCubic);\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (this._canvasRef.current === null) {\r\n return;\r\n }\r\n\r\n const context = this._canvasRef.current.getContext(\"2d\");\r\n\r\n if (context !== null) {\r\n this._ctx = context;\r\n }\r\n\r\n this._drawDiagramBase();\r\n this._timedAnimation.start(this._animate.bind(this));\r\n }\r\n\r\n public componentDidUpdate(prevProps: IProgressVisualisationProps): void {\r\n if (this._timedAnimation.isAnimating()) {\r\n if (this.props.size !== prevProps.size || this.props.count !== prevProps.count || this.props.duration !== prevProps.duration || this.props.total !== prevProps.total) {\r\n this._timedAnimation.stop();\r\n if (this.props.duration !== prevProps.duration) {\r\n this._timedAnimation = new TimedAnimation(this.props.duration, easeInOutCubic);\r\n }\r\n this._timedAnimation.start(this._animate.bind(this));\r\n }\r\n } else {\r\n this._animate(1);\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n this._timedAnimation.stop();\r\n }\r\n\r\n public render(): ReactElement {\r\n return (\r\n
\r\n \r\n\r\n
\r\n

\r\n {this.state.text}\r\n

\r\n

\r\n {this._completeText}\r\n

\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _animate(easedProgress: number): void {\r\n const calc = (this.props.count / this.props.total) * 100;\r\n this.setState((currentState) => {\r\n const newText = this.props.showPercentage ? `${Math.round(easedProgress * calc)}%` : `${Math.round(easedProgress * this.props.count)}`;\r\n if (currentState.text === newText) {\r\n return null;\r\n }\r\n return {\r\n text: newText\r\n };\r\n });\r\n\r\n this._drawDiagramBase();\r\n this._renderProgress(this.props.progressColour, easedProgress);\r\n }\r\n\r\n private _drawDiagramBase(): void {\r\n this._ctx.clearRect(0, 0, this.props.size, this.props.size);\r\n\r\n this._ctx.beginPath();\r\n this._ctx.arc(this.props.size / 2, this.props.size / 2, this.props.size / 2 - this.props.lineWidth, 0, Math.PI * 2);\r\n this._ctx.lineWidth = this.props.lineWidth;\r\n this._ctx.strokeStyle = this.props.strokeColour;\r\n this._ctx.stroke();\r\n }\r\n\r\n private _renderProgress(colour: string, easedProgress: number): void {\r\n const circleStart = 1.5 * Math.PI;\r\n const totalCalculation = this.props.count / this.props.total;\r\n const progress = easedProgress * totalCalculation;\r\n const circleProgress = progress * 360;\r\n const radianCalc = (circleProgress * Math.PI) / 180;\r\n const circleEnd = circleStart + radianCalc;\r\n\r\n this._ctx.beginPath();\r\n this._ctx.arc(this.props.size / 2, this.props.size / 2, this.props.size / 2 - this.props.lineWidth, circleStart, circleEnd, false);\r\n this._ctx.lineWidth = this.props.lineWidth;\r\n this._ctx.strokeStyle = colour;\r\n this._ctx.stroke();\r\n }\r\n}\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-radio-group{gap:var(--layout-margin-between-buttons);flex-direction:column;display:flex}`);","import { FunctionComponent, useId } from \"react\";\r\nimport { Radio } from \"../radio/Radio.component\";\r\nimport { IRadioGroupProps } from \"./interfaces/IRadioGroupProps\";\r\nimport { Orientation } from \"./enums/Orientation\";\r\nimport \"./styles/radio-group.css\";\r\n\r\nexport const RadioGroup: FunctionComponent = (props) => {\r\n const groupId = useId();\r\n const orientation = props.orientation !== undefined ? props.orientation : Orientation.Vertical;\r\n\r\n return (\r\n
\r\n {props.items.map((item) => (\r\n \r\n {item.label}\r\n \r\n ))}\r\n
\r\n );\r\n};\r\n","export enum Orientation {\r\n Vertical = \"column\",\r\n Horizontal = \"row\"\r\n}\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-radio__label{--radio-size:2rem;--inner-radio-size:1rem;--outer-radio-size:1.2rem;gap:calc(var(--outer-radio-size) + var(--layout-border-thickness-standout));font-size:var(--font-size-body);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-body);color:var(--colour-body-text);display:flex}.cui-radio__label:has(.cui-radio__input:not(:disabled)):hover{cursor:pointer}.cui-radio__label:has(.cui-radio__input:disabled){color:var(--colour-action-outlined-text-disabled)}.cui-radio__input{appearance:none;width:var(--radio-size);height:var(--radio-size);border:var(--layout-border-thickness-default)solid var(--colour-action-outlined-border-default);background-color:var(--colour-action-outlined-background-default);transform:translateY(calc(var(--layout-border-thickness-default)*2));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin:0;display:flex}.cui-radio__input:before{content:\"\";width:var(--inner-radio-size);height:var(--inner-radio-size);box-sizing:border-box;background-color:var(--colour-action-outlined-text-default);border-radius:50%;transition:transform .15s;transform:scale(0)}.cui-radio__input:checked{border-color:var(--colour-action-outlined-border-focused)}.cui-radio__input:checked:before{transform:scale(1)}.cui-radio__input:checked:disabled{border-color:var(--palette-secondary-400)}.cui-radio__input:checked:disabled:before{background-color:var(--palette-secondary-400)}.cui-radio__input:disabled{background-color:var(--colour-action-outlined-background-disabled);border-color:var(--palette-primary-200)}.cui-radio__input:not(:disabled):hover{cursor:pointer}.cui-radio__input:not(:disabled):hover,.cui-radio__input:not(:disabled):focus{box-shadow:0 0 0 var(--outer-radio-size)var(--colour-action-outlined-background-hover)}.cui-radio__input:not(:disabled):active{box-shadow:0 0 0 var(--outer-radio-size)var(--palette-secondary-300)}.cui-radio__input:not(:disabled):focus{outline:var(--layout-border-thickness-standout)solid var(--colour-action-outlined-border-focused);outline-offset:var(--outer-radio-size)}@media (prefers-contrast:more){.cui-radio__input:before,.cui-radio__input:checked:disabled:before{background-color:canvastext}}`);","import { FunctionComponent, PropsWithChildren } from \"react\";\r\nimport { IRadioProps } from \"./interfaces/IRadioProps\";\r\nimport \"./styles/radio.css\";\r\n\r\nexport const Radio: FunctionComponent> = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-tick__marker{width:.5rem;height:2rem;margin-top:.8rem;position:absolute}.cui-tick__label{font-size:var(--font-size-body);text-align:center;white-space:nowrap;text-overflow:ellipsis;width:20%;margin-top:3.5rem;margin-left:-10%;line-height:1.1;position:absolute;overflow:hidden}.cui-tick__label--right{text-align:right;margin-left:0}.cui-tick__label--left{text-align:left;margin-left:0}`);","import { PureComponent, ReactElement } from \"react\";\r\nimport { ITickProps } from \"../interfaces/ITickProps\";\r\nimport { TickAlignment } from \"../enums/TickAlignment\";\r\nimport \"../styles/tick.css\";\r\n\r\nexport class Tick extends PureComponent {\r\n constructor(props: ITickProps) {\r\n super(props);\r\n }\r\n\r\n public render(): ReactElement {\r\n let labelClass = \"cui-tick__label\";\r\n const left = this.props.alignment === TickAlignment.Left ? `${this.props.placement}%` : \"\";\r\n const right = this.props.alignment === TickAlignment.Right ? `${100 - this.props.placement}%` : \"\";\r\n\r\n if (this.props.alignment === TickAlignment.Left && this.props.placement < 10) {\r\n labelClass += \" cui-tick__label--left\";\r\n } else if (this.props.alignment === TickAlignment.Right && this.props.placement > 90) {\r\n labelClass += \" cui-tick__label--right\";\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n {this.props.label}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-range-slider__container{box-sizing:border-box;flex-wrap:wrap;justify-content:center;display:flex}.cui-range-slider{width:100%;height:3.6rem;padding-bottom:.99rem;display:flex}.cui-range-slider__track{align-self:center;width:100%;height:.5rem}.cui-range-slider__thumb{border:var(--layout-border-thickness-default)solid #ccc;background-color:var(--colour-action-outlined-background-default);box-sizing:border-box;border-radius:25px;justify-content:center;align-items:center;display:flex}.cui-range-slider__thumb:focus{outline:none;box-shadow:0 0 0 1px}`);","import { PureComponent, ReactElement } from \"react\";\r\nimport { getTrackBackground, Range } from \"react-range\";\r\nimport { IRangeSliderProps } from \"./interfaces/IRangeSliderProps\";\r\nimport { Tick } from \"./tick/Tick.component\";\r\nimport { TickAlignment } from \"./enums/TickAlignment\";\r\nimport { IRangeSliderDefaultProps } from \"./interfaces/IRangeSliderDefaultProps\";\r\nimport \"./styles/range-slider.css\";\r\n\r\nexport class RangeSlider extends PureComponent {\r\n public static defaultProps: IRangeSliderDefaultProps = {\r\n colour: \"#ccc\",\r\n disabled: false,\r\n progressColour: \"#0566a9\"\r\n };\r\n\r\n public readonly onChangeHandler: (values: Array) => void;\r\n\r\n constructor(props: IRangeSliderProps) {\r\n super(props);\r\n this.onChangeHandler = this._onChangeHandler.bind(this);\r\n }\r\n\r\n public componentDidUpdate(prevProps: Readonly): void {\r\n if (prevProps.max !== this.props.max && this.props.value > this.props.max) {\r\n this._onChangeHandler([this.props.max]);\r\n }\r\n\r\n if (prevProps.min !== this.props.min && this.props.value < this.props.min) {\r\n this._onChangeHandler([this.props.min]);\r\n }\r\n }\r\n\r\n public render(): ReactElement {\r\n const values = [this.props.value];\r\n\r\n return (\r\n
\r\n (\r\n
\r\n
\r\n {this.props.ticks.map((tick) => (\r\n \r\n ))}\r\n
\r\n\r\n \r\n {track.children}\r\n
\r\n
\r\n )}\r\n renderThumb={(thumb) => (\r\n \r\n )}\r\n />\r\n
\r\n );\r\n }\r\n\r\n private _onChangeHandler(values: Array): void {\r\n if (this.props.disabled) {\r\n return;\r\n }\r\n\r\n if (typeof this.props.onChange === \"function\") {\r\n this.props.onChange(values[0]);\r\n }\r\n }\r\n}\r\n","export enum TickAlignment {\r\n Left = \"left\",\r\n Right = \"right\"\r\n}\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-scoped-search{display:flex;position:relative}.cui-scoped-search .cui-select{width:40%;display:flex}.cui-scoped-search .cui-select .cui-text-option__item-text{padding:var(--layout-padding-form-element);line-height:var(--font-line-height-input)}.cui-scoped-search .cui-search__text-field-container{border-left:#0000;border-radius:0}@media (max-width:800px){.cui-scoped-search .cui-search__text-field-container{border-left:var(--layout-border-thickness-default)solid var(--colour-input-border-default);border-bottom-left-radius:var(--effect-border-radius-action);border-top-left-radius:var(--effect-border-radius-action)}.cui-scoped-search .cui-search__text-field-container input{border-bottom-left-radius:var(--effect-border-radius-action);border-top-left-radius:var(--effect-border-radius-action)}}@media (max-width:800px){.cui-scoped-search{gap:var(--layout-margin-between-content);flex-direction:column}.cui-scoped-search .cui-select{width:100%}}`);","import { FunctionComponent, useId } from \"react\";\r\nimport { Select } from \"../select/Select.component\";\r\nimport { TextOption } from \"../select/options/text-option/TextOption.component\";\r\nimport { Search } from \"./Search.component\";\r\nimport { IScopedSearchProps } from \"./interfaces/IScopedSearchProps\";\r\nimport \"../../public-utilities.css\";\r\nimport \"./styles/scoped-search.css\";\r\n\r\nexport const ScopedSearch: FunctionComponent = (props) => {\r\n const id = useId();\r\n\r\n const onTextFieldSearch = (searchString: string): void => {\r\n props.onSearch(searchString, props.filterOptions[props.filterModel.activeItemIndex]);\r\n };\r\n\r\n return (\r\n
\r\n \r\n {props.scopedSearchLabel}\r\n \r\n \r\n {props.filterOptions[props.filterModel.activeItemIndex].fullLabel} {props.scopedSearchLabel}\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-search{width:100%;display:flex}.cui-search .cui-search__text-field-container{border-bottom-left-radius:var(--effect-border-radius-action);border-top-left-radius:var(--effect-border-radius-action)}.cui-search .cui-search__text-field-container input{border-bottom-left-radius:var(--effect-border-radius-action);border-top-left-radius:var(--effect-border-radius-action)}.cui-search .cui-search__text-field-container input:disabled{cursor:not-allowed}.cui-search .cui-icon-button{flex-shrink:0}.cui-search .cui-icon-button:disabled{cursor:not-allowed;background-color:var(--colour-input-background-disabled)}.cui-search .cui-icon-button,.cui-search .cui-icon-button:after{border-bottom-right-radius:var(--effect-border-radius-action);border-top-right-radius:var(--effect-border-radius-action)}.cui-search__text-field-container{background-color:var(--colour-input-background-default);border:var(--layout-border-thickness-default)solid var(--colour-input-border-default);border-right:#0000;flex:1;display:flex}.cui-search__text-field-container:focus-within{outline:var(--layout-border-thickness-standout)solid var(--colour-action-outlined-border-focused);outline-offset:calc(var(--layout-border-thickness-default)*-1);z-index:var(--layer-level-1)}.cui-search__text-field-container:has(.cui-icon-button:focus){outline:none}.cui-search__text-field-container input{box-sizing:content-box;-webkit-appearance:none;border:none;flex:1}.cui-search__text-field-container input::-webkit-search-cancel-button{display:none}.cui-search__text-field-container input:focus{z-index:auto;outline:none}.cui-search__text-field-container .cui-icon-button{border:none;border-radius:50%;justify-content:center;align-items:center;margin-right:.1rem;line-height:0;display:flex}.cui-search__text-field-container .cui-icon-button .cui-icon-svg{fill:var(--colour-body-text);width:var(--icon-size-default);height:var(--icon-size-default);justify-content:center;align-items:center;display:flex}.cui-search__text-field-container .cui-icon-button:focus{z-index:var(--layer-level-1)}.cui-search__text-field-container .cui-icon-button:hover:after{content:\"\";inset:calc(var(--layout-border-thickness-standout)*-1);border-radius:50%;position:absolute}.cui-search__text-field-container .cui-icon-button:focus:after{inset:calc(var(--layout-border-thickness-standout)*-1);border-radius:50%}`);","import { FunctionComponent, KeyboardEvent, useRef } from \"react\";\r\nimport { Input } from \"../input/Input.component\";\r\nimport { IconButton } from \"../icon-button/IconButton.component\";\r\nimport { IconButtonClass } from \"../icon-button/enums/IconButtonClass\";\r\nimport { crossIcon } from \"../icon/icons/Cross.icon\";\r\nimport { searchIcon } from \"../icon/icons/Search.icon\";\r\nimport { Keys } from \"../../enums/Keys\";\r\nimport { ISearchProps } from \"./interfaces/ISearchProps\";\r\nimport \"./styles/search.css\";\r\n\r\nexport const Search: FunctionComponent = (props) => {\r\n const inputRef = useRef(null);\r\n\r\n const onKeyDown = (event: KeyboardEvent): void => {\r\n if (event.key === Keys.Enter) {\r\n props.onSearch(props.searchString);\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n const onClearSearch = (): void => {\r\n props.onChange(\"\");\r\n props.onSearch(\"\");\r\n if (inputRef.current !== null) {\r\n inputRef.current.focus();\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n props.onChange(event.target.value)}\r\n placeholder={props.placeholder}\r\n aria-label={props.searchInputLabel}\r\n autoFocus={props.autoFocus}\r\n disabled={props.disabled}\r\n data-hook={props.dataHooks?.input ?? \"cui-search-input\"}\r\n />\r\n {props.searchString.length > 0 && (\r\n \r\n )}\r\n
\r\n props.onSearch(props.searchString)}\r\n ariaLabel={props.searchButtonLabel}\r\n disabled={props.disabled}\r\n dataHook={props.dataHooks?.searchButton ?? \"cui-search-button\"}\r\n />\r\n
\r\n );\r\n};\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-segmented-control{border:none;margin:0;padding:0;display:flex;position:relative}.cui-segmented-control__control input[type=radio]:checked+label{background-color:var(--colour-action-contained-background-default);fill:var(--colour-action-contained-text-default);border-color:var(--colour-action-contained-border-default)}.cui-segmented-control__control input:disabled+label{background-color:var(--colour-action-outlined-background-disabled);fill:var(--colour-action-outlined-text-disabled);cursor:default}.cui-segmented-control__control:first-of-type .cui-segmented-control__label{border-bottom-left-radius:var(--effect-border-radius-action);border-top-left-radius:var(--effect-border-radius-action)}.cui-segmented-control__control:last-of-type .cui-segmented-control__label{border-bottom-right-radius:var(--effect-border-radius-action);border-top-right-radius:var(--effect-border-radius-action);border-right:var(--layout-border-thickness-default)solid var(--colour-action-outlined-border-default)}.cui-segmented-control__control:focus-within input[type=radio]:checked+label{background-color:var(--colour-action-contained-background-default);fill:var(--colour-action-contained-text-default);border-color:var(--colour-action-contained-border-default);outline:var(--layout-border-thickness-standout)solid var(--colour-action-outlined-background-default);outline-offset:calc(var(--layout-border-thickness-standout)*-2);z-index:1}.cui-segmented-control__control:focus-within .cui-segmented-control__label{background-color:var(--colour-action-outlined-background-focused);outline:var(--layout-border-thickness-standout)solid var(--colour-action-outlined-border-focused);z-index:1;border-color:#0000}.cui-segmented-control__control:focus-within+.cui-segmented-control__control .cui-segmented-control__label{border-left-color:#0000}.cui-segmented-control__label{box-sizing:content-box;cursor:pointer;width:var(--icon-size-content);height:var(--icon-size-content);background-color:var(--colour-action-outlined-background-default);fill:var(--colour-action-outlined-text-default);border:var(--layout-border-thickness-default)solid var(--colour-action-outlined-border-default);border-right:#0000;outline:none;padding:.94rem;display:inline-block;position:relative}.cui-segmented-control__label:hover,.cui-segmented-control__label:active{background-color:var(--colour-action-outlined-background-hover);fill:var(--colour-action-outlined-text-hover)}`);","import { FunctionComponent, useId } from \"react\";\r\nimport { Icon } from \"../icon/Icon.component\";\r\nimport { ISegmentedControlProps } from \"./interfaces/ISegmentedControlProps\";\r\nimport \"../../public-utilities.css\";\r\nimport \"./styles/segmented-control.css\";\r\n\r\nexport const SegmentedControl: FunctionComponent = (props) => {\r\n const uniqueId = useId();\r\n return (\r\n
\r\n {props.label}\r\n {props.buttons.map((button) => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n })}\r\n
\r\n );\r\n};\r\n","import { Immutable } from \"@pjs/utilities\";\r\nimport { MenuAriaModel } from \"../menu-event-adapter/types/MenuAriaModel\";\r\nimport { AriaMenuStatus } from \"../menu-event-adapter/enums/AriaMenuStatus\";\r\n\r\nexport function setOpened(): Partial> {\r\n return {\r\n isOpen: true,\r\n type: AriaMenuStatus.Open\r\n };\r\n}\r\n","const smallScreenSize = 490;\r\nlet smallScreenMediaQuery: null | MediaQueryList = null;\r\n\r\nexport function getSmallScreenMediaQuery(): MediaQueryList {\r\n if (smallScreenMediaQuery !== null) {\r\n return smallScreenMediaQuery;\r\n }\r\n smallScreenMediaQuery = window.matchMedia(`(max-width: ${smallScreenSize}px), (max-height:${smallScreenSize}px)`);\r\n return smallScreenMediaQuery;\r\n}\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-select__button,.cui-select__list-item{box-sizing:border-box;align-items:center;display:flex}.cui-select__button:focus{z-index:var(--layer-level-1);position:relative}.cui-select__button:focus,.cui-select__native-select:focus+.cui-select__button{outline:var(--layout-border-thickness-standout)solid var(--colour-action-outlined-border-focused);outline-offset:calc(var(--layout-border-thickness-default)*-1)}.cui-select__button{border:var(--layout-border-thickness-default)solid var(--colour-action-outlined-border-default);background:var(--colour-action-outlined-background-default);font-weight:var(--font-weight-action);font-size:var(--font-size-body);border-radius:0;width:100%;padding:0}.cui-select__button-item{text-align:left;text-overflow:ellipsis;white-space:nowrap;min-width:1px;overflow:hidden}.cui-select__button-chevron{flex:0 0 var(--icon-size-expand-indicator);margin-right:var(--layout-margin-between-content);fill:var(--colour-icon-fill-info);margin-left:auto;line-height:0}.cui-select__button-chevron--open svg{transform:rotate(180deg)}.cui-select__dropdown-header{display:block}.cui-select__button-wrapper{position:relative}.cui-select__native-select{color:#0000;background:0 0;border:none;outline:none;width:100%;height:auto;margin:0;padding:0;position:absolute;inset:0}.cui-select__list-container{z-index:var(--layer-context-dropdown);box-shadow:var(--effect-elevation-inline)}.cui-select__list{border-left:var(--layout-border-thickness-default)solid var(--colour-action-outlined-border-default);border-right:var(--layout-border-thickness-default)solid var(--colour-action-outlined-border-default);z-index:var(--layer-context-dropdown);max-height:35rem;margin:0;padding:0;position:absolute;overflow-y:auto}.cui-select__list [aria-selected=true]{outline:var(--layout-border-thickness-standout)solid var(--colour-action-outlined-border-focused);outline-offset:calc(var(--layout-border-thickness-default)*-1);background-color:var(--colour-action-outlined-background-focused)}.cui-select__list:focus,.cui-select__list:focus-within{outline:var(--layout-border-thickness-standout)solid var(--colour-action-outlined-border-focused);outline-offset:calc(var(--layout-border-thickness-standout)*-1)}.cui-select__list-item{background:var(--colour-action-outlined-background-default);cursor:pointer;border-bottom:var(--layout-border-thickness-default)solid var(--colour-action-outlined-border-default);line-height:var(--font-line-height-body);overflow:hidden}.cui-select__list-item:hover{background-color:var(--colour-action-outlined-background-hover)}`);","import { Context, ChangeEvent, Component, RefObject, KeyboardEvent, createRef } from \"react\";\r\nimport { createGuid, isAndroid, isIphoneLike } from \"@pjs/utilities\";\r\nimport { hideWhenClosed } from \"../../utils/hide-when-closed/hideWhenClosed\";\r\nimport { scrollToElementInList } from \"../../utils/scroll-to-aria-active-descendant/scrollToElementInList.function\";\r\nimport { Icon } from \"../icon/Icon.component\";\r\nimport { chevronIcon } from \"../icon/icons/Chevron.icon\";\r\nimport { AriaMenuStatus } from \"../aria-roles/menus/menu-event-adapter/enums/AriaMenuStatus\";\r\nimport { IMenuEventModelHandlers } from \"../aria-roles/menus/menu-event-adapter/interfaces/IMenuEventModelHandlers\";\r\nimport { IBoundaryContext } from \"../boundary/interfaces/IBoundaryContext\";\r\nimport { BoundaryContext } from \"../boundary/Boundary.context\";\r\nimport { FloatingMenu } from \"../aria-roles/menus/floating-menu/FloatingMenu\";\r\nimport { floatingListBoxFactory } from \"../aria-roles/menus/floating-menu/factories/FloatingListBoxFactory\";\r\nimport { IMenuItem } from \"../aria-roles/menus/types/IMenuItem\";\r\nimport { MenuAriaModel } from \"../aria-roles/menus/menu-event-adapter/types/MenuAriaModel\";\r\nimport { getSmallScreenMediaQuery } from \"./getSmallScreenMediaQuery.function\";\r\nimport { ISelectProps } from \"./interfaces/ISelectProps.interface\";\r\nimport \"./styles/select.css\";\r\n\r\nexport class Select extends Component> {\r\n public static contextType: Context = BoundaryContext;\r\n\r\n private readonly _buttonReference: RefObject = createRef();\r\n private readonly _listReference: RefObject = createRef();\r\n private readonly _activeItemReference: RefObject = createRef();\r\n private readonly _selectDefaultId: string = createGuid();\r\n private readonly _listId: string = createGuid();\r\n private readonly _onNativeSelectChange: OmitThisParameter<(event: ChangeEvent) => void>;\r\n private readonly _floatingMenu: FloatingMenu>;\r\n\r\n constructor(props: ISelectProps, context: IBoundaryContext) {\r\n super(props);\r\n\r\n this._onNativeSelectChange = this._handleNativeSelectChange.bind(this);\r\n\r\n this._floatingMenu = floatingListBoxFactory({\r\n boundaryRef: context.element,\r\n floatingRef: this._listReference,\r\n initialModel: this.props.model,\r\n matchItemOnKeys: (item: TData, currentKeys: string) => item.value.toLowerCase().startsWith(currentKeys),\r\n onModelChange: this.props.onModelChange,\r\n triggerRef: this._buttonReference\r\n });\r\n\r\n this._floatingMenu.addReaction(AriaMenuStatus.ClosedByKeyboardEvent, () => {\r\n if (this._buttonReference.current !== null) {\r\n this._buttonReference.current.focus();\r\n }\r\n });\r\n }\r\n\r\n public componentDidMount(): void {\r\n this._floatingMenu.updateModel(this.props.model);\r\n }\r\n\r\n public componentDidUpdate(prevProps: ISelectProps): void {\r\n if (prevProps.model !== this.props.model) {\r\n this._floatingMenu.updateModel(this.props.model);\r\n }\r\n\r\n if (\r\n this.props.model.activeItemIndex !== prevProps.model.activeItemIndex &&\r\n this._listReference.current !== null &&\r\n this._activeItemReference.current !== null\r\n ) {\r\n scrollToElementInList(this._listReference.current, this._activeItemReference.current);\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n this._floatingMenu.destroy();\r\n }\r\n\r\n public render(): JSX.Element {\r\n const selectId = this.props.id !== undefined ? this.props.id : this._selectDefaultId;\r\n if ((isAndroid && getSmallScreenMediaQuery().matches) || isIphoneLike) {\r\n return (\r\n
\r\n
\r\n \r\n {this.props.dataSet.map((item) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n this._floatingMenu.events.trigger.onKeyDown(e, this.props.dataSet)}\r\n onMouseDown={this._floatingMenu.events.trigger.onMouseDown}\r\n type=\"button\">\r\n {this.props.renderOption(this.props.dataSet[this.props.model.activeItemIndex])}\r\n \r\n \r\n
\r\n {\r\n this._floatingMenu.events.target.onKeyDown(e, this.props.dataSet);\r\n }}>\r\n {this._renderList()}\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderList(): Array {\r\n return this.props.dataSet.map((item, index) => {\r\n const isActive = index === this.props.model.activeItemIndex;\r\n\r\n return (\r\n this._floatingMenu.events.item.onClick(e, index)}>\r\n {this.props.renderOption(item)}\r\n \r\n );\r\n });\r\n }\r\n\r\n private _handleNativeSelectChange(event: ChangeEvent): void {\r\n const itemIndex = this.props.dataSet.findIndex((item) => item.value === event.target.value);\r\n\r\n if (itemIndex > -1) {\r\n this.props.onModelChange({\r\n ...this.props.model,\r\n activeItemIndex: itemIndex\r\n });\r\n }\r\n }\r\n}\r\n","import { Immutable } from \"@pjs/utilities\";\r\nimport { RefObject } from \"react\";\r\nimport { FloatingMenu } from \"../FloatingMenu\";\r\nimport { MenuAriaModel } from \"../../menu-event-adapter/types/MenuAriaModel\";\r\nimport { IMenuEventModelHandlers } from \"../../menu-event-adapter/interfaces/IMenuEventModelHandlers\";\r\nimport { dropdownMatchedWidthPositioningFactory } from \"../../../../floating-positioner/factories/DropdownMatchedWidthPositioningFactory\";\r\nimport { MenuEventAdapter } from \"../../menu-event-adapter/MenuEventAdapter\";\r\nimport { selectClickedItemAndSetClosed } from \"../../reducers/SelectClickedItemAndSetClosed.function\";\r\nimport { Keys } from \"../../../../../enums/Keys\";\r\nimport { selectPreviousItem } from \"../../reducers/SelectPreviousItem.function\";\r\nimport { selectNextItem } from \"../../reducers/SelectNextItem.function\";\r\nimport { selectLastItem } from \"../../reducers/SelectLastItem.function\";\r\nimport { selectFirstItem } from \"../../reducers/SelectFirstItem.function\";\r\nimport { setClosed } from \"../../reducers/SetClosed.function\";\r\nimport { createSelectMatchedItem } from \"../../reducers/SelectMatchedItem.function\";\r\nimport { closeIfFocusIsOutside } from \"../../reducers/CloseIfFocusIsOutside.function\";\r\nimport { setOpened } from \"../../reducers/SetOpened.function\";\r\nimport { toggleIsOpenOnClick } from \"../../reducers/ToggleIsOpenOnClick.function\";\r\nimport { IMenuModelAdapterConfig } from \"../../menu-event-adapter/interfaces/IMenuModelAdapterConfig\";\r\nimport { toggleIsOpen } from \"../../reducers/ToggleIsOpen.function\";\r\n\r\nexport function floatingListBoxFactory(config: {\r\n matchItemOnKeys: (item: T, currentKeys: string) => boolean;\r\n initialModel: Immutable;\r\n onModelChange: (model: MenuAriaModel) => void;\r\n triggerRef: RefObject;\r\n floatingRef: RefObject;\r\n boundaryRef: RefObject;\r\n}): FloatingMenu> {\r\n const eventAdapterPreset: IMenuModelAdapterConfig = {\r\n item: {\r\n onClick: selectClickedItemAndSetClosed\r\n },\r\n target: {\r\n [Keys.ArrowUp]: selectPreviousItem,\r\n [Keys.ArrowDown]: selectNextItem,\r\n [Keys.End]: selectLastItem,\r\n [Keys.Home]: selectFirstItem,\r\n [Keys.Enter]: setClosed,\r\n [Keys.Escape]: setClosed,\r\n [Keys.Space]: setClosed,\r\n default: createSelectMatchedItem(config.matchItemOnKeys),\r\n onFocusLoss: closeIfFocusIsOutside\r\n },\r\n trigger: {\r\n [Keys.ArrowUp]: setOpened,\r\n [Keys.ArrowDown]: setOpened,\r\n [Keys.Enter]: toggleIsOpen,\r\n [Keys.Space]: toggleIsOpen,\r\n onClick: toggleIsOpenOnClick\r\n }\r\n };\r\n\r\n return new FloatingMenu>(config.triggerRef, config.floatingRef, config.boundaryRef, {\r\n ariaEventAdapter: new MenuEventAdapter(eventAdapterPreset, config.triggerRef, config.floatingRef, config.initialModel),\r\n floatingPositionerConfig: {\r\n middlewareFactory: dropdownMatchedWidthPositioningFactory,\r\n placement: \"bottom-end\"\r\n },\r\n onFirstPosition: () => {\r\n if (config.floatingRef.current !== null) {\r\n config.floatingRef.current.focus();\r\n }\r\n },\r\n onModelChange: config.onModelChange\r\n });\r\n}\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-icon-option__item{padding:var(--layout-padding-menu-option);align-items:center;display:flex;overflow:hidden}.cui-icon-option__item-text{text-overflow:ellipsis;line-height:var(--font-line-height-body);overflow-wrap:break-word;overflow:hidden}.cui-icon-option__icon{flex:0 0 calc(var(--font-size-body)*var(--font-line-height-body));margin-right:var(--layout-margin-between-text-content);align-self:flex-start;line-height:0;display:block}`);","import { Icon } from \"../../../icon/Icon.component\";\r\nimport { IIconSelectOption } from \"./interfaces/IIconSelectOption\";\r\nimport \"./styles/icon-option.css\";\r\n\r\nexport const IconOption = (item: T): JSX.Element => (\r\n \r\n \r\n \r\n {item.value}\r\n \r\n \r\n);\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-line-clamped-text-option__item-text{overflow-wrap:break-word;text-overflow:ellipsis;white-space:inherit;-webkit-line-clamp:2;margin:var(--layout-padding-menu-option)var(--layout-padding-action-container);line-height:var(--font-line-height-body);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}`);","import \"./styles/line-clamped-text-option.css\";\r\nimport { IMenuItem } from \"../../../aria-roles/menus/types/IMenuItem\";\r\n\r\nexport const LineClampedTextOption = (item: T): JSX.Element => (\r\n \r\n {item.value}\r\n \r\n);\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-text-option__item-text{overflow-wrap:break-word;text-overflow:ellipsis;white-space:inherit;padding:var(--layout-padding-menu-option)var(--layout-padding-action-container);line-height:var(--font-line-height-body);display:block;overflow:hidden}`);","import { IMenuItem } from \"../../../aria-roles/menus/types/IMenuItem\";\r\nimport \"./styles/text-option.css\";\r\n\r\nexport const TextOption = (item: T): JSX.Element => (\r\n \r\n {item.value}\r\n \r\n);\r\n","import { IShortcutDescriptorGroup } from \"../../../utils/shortcut-manager/interfaces/IShortcutDescriptorGroup\";\r\nimport { launchDialog } from \"../../dialog-factories/LaunchDialog.function\";\r\nimport { DialogSize } from \"../../dialog-instance/enums/DialogSize\";\r\nimport { ButtonClass } from \"../../../enums/ButtonClass\";\r\nimport { IShortcutViewerModel } from \"../interfaces/IShortcutViewerModel\";\r\nimport { coreUiI18n } from \"../../i18n/CoreUiI18n.const\";\r\n\r\nexport const launchShortcutViewer = (element: HTMLElement, shortcuts: Array): void => {\r\n launchDialog({\r\n size: DialogSize.Medium,\r\n title: coreUiI18n.getString(\"shortcut_viewer.dialog_title\"),\r\n component: () => import(\"../ShortcutViewerDialogContent.component\").then((module) => module.ShortcutViewerDialogContent),\r\n initialModel: {\r\n shortcutGroups: shortcuts\r\n },\r\n dismissAction: (_, instance) => {\r\n instance.close(element);\r\n },\r\n actions: [\r\n {\r\n label: coreUiI18n.getString(\"buttons.close\"),\r\n ariaLabel: coreUiI18n.getString(\"buttons.close\"),\r\n buttonClass: ButtonClass.Outlined,\r\n disabled: () => false,\r\n action: (_, instance) => {\r\n instance.close(element);\r\n }\r\n }\r\n ]\r\n });\r\n};\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-static-label{background:var(--colour-static-label-background);color:var(--colour-text-on-accent);font-size:var(--font-size-meta);font-weight:var(--font-weight-semi-bold);word-wrap:break-word;border-radius:1.5rem;min-width:1px;padding:.5rem 1rem;display:inline-block}`);","import { FunctionComponent } from \"react\";\r\nimport { IStaticLabelProps } from \"./interfaces/IStaticLabelProps\";\r\nimport \"./styles/static-label.css\";\r\n\r\nexport const StaticLabel: FunctionComponent = (props: IStaticLabelProps) => {\r\n return (\r\n
\r\n {props.text}\r\n
\r\n );\r\n};\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-styled-collapsible{--styled-collapsible-header-height:calc(var(--font-size-body)*var(--font-line-height-body));--styled-collapsible-header-computed-line-height:calc(var(--styled-collapsible-header-height) - var(--font-size-body));--styled-collapsible-header-vertical-padding:calc(var(--layout-padding-action-container) - var(--styled-collapsible-header-computed-line-height)/2);box-sizing:border-box;word-break:break-word;width:100%}.cui-styled-collapsible--contained{border:var(--layout-border-thickness-default)solid var(--colour-border);padding:var(--styled-collapsible-header-vertical-padding)var(--layout-padding-action-container);background-color:var(--colour-background)}.cui-styled-collapsible__header{text-align:left;color:var(--colour-action-outlined-text-default);font-size:var(--font-size-body);font-weight:var(--font-weight-action);line-height:var(--font-line-height-body);background:0 0;border:none;align-items:baseline;width:100%;padding:0;display:flex;position:relative}.cui-styled-collapsible__header:hover{cursor:pointer}.cui-styled-collapsible__header:hover .cui-styled-collapsible__header-text{text-decoration:underline}.cui-styled-collapsible__header:focus{outline:var(--layout-border-thickness-standout)solid var(--colour-action-outlined-border-focused);outline-offset:calc((var(--layout-border-thickness-standout)/2) + var(--layout-border-thickness-standout))}.cui-styled-collapsible__header-arrow{width:var(--icon-size-expand-indicator);height:var(--icon-size-expand-indicator);fill:var(--colour-icon-fill-info)}.cui-styled-collapsible__header-arrow--rotate svg{transform:rotate(270deg)}.cui-styled-collapsible__header-text{word-wrap:break-word;margin:0 var(--layout-margin-between-text-content);flex:100%;min-width:0}.cui-styled-collapsible__content{margin:var(--layout-margin-between-text-content)0 calc((var(--font-size-body)*var(--font-line-height-body) - var(--font-size-body))/2);line-height:var(--font-line-height-body)}`);","import { FunctionComponent, PropsWithChildren } from \"react\";\r\nimport { Icon } from \"../icon/Icon.component\";\r\nimport { accordionIndicatorIcon } from \"../icon/icons/AccordionIndicator.icon\";\r\nimport { CollapsibleManual } from \"../collapsible/CollapsibleManual.component\";\r\nimport { IStyledCollapsibleProps } from \"./interfaces/IStyledCollapsibleProps\";\r\nimport \"./styles/styled-collapsible.css\";\r\n\r\nexport const StyledCollapsible: FunctionComponent> = (props) => {\r\n const className = props.isOpen ? \"cui-styled-collapsible__header-arrow\" : \"cui-styled-collapsible__header-arrow cui-styled-collapsible__header-arrow--rotate\";\r\n const styledClassName = props.isContained ? \"cui-styled-collapsible--contained\" : \"\";\r\n\r\n return (\r\n \r\n \r\n \r\n {props.header}\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-switch__label{--cui-switch-width:5.2rem;--cui-switch-height:3rem;--cui-switch-layout-border-focus-gap:.2rem;--cui-switch-layout-border-focus-thickness:var(--layout-border-thickness-standout);--cui-switch-layout-border-focus-offset:calc((var(--cui-switch-layout-border-focus-thickness) + var(--layout-border-thickness-default) + var(--cui-switch-layout-border-focus-gap))*-1);--cui-switch-layout-border-focus-radius:calc(var(--cui-switch-height) + calc(var(--cui-switch-layout-border-focus-offset)*2)/2);--cui-switch-thumb-off-scale:.5;--cui-switch-thumb-size:2.4rem;--cui-switch-thumb-gap:calc(calc(var(--cui-switch-height) - var(--cui-switch-thumb-size))/2);cursor:pointer;z-index:0;align-items:flex-start;max-width:100%;display:inline-flex;position:relative}.cui-switch{width:var(--cui-switch-width);height:var(--cui-switch-height);flex:none;display:inline;position:relative}.cui-switch__input{cursor:pointer;opacity:0;z-index:1;width:100%;height:100%;margin:0;padding:0;position:absolute;top:0;left:0}.cui-switch__rail{background-color:var(--colour-action-outlined-background-default);border-radius:calc(var(--cui-switch-height)/2);box-sizing:border-box;border:var(--layout-border-thickness-default)solid var(--colour-input-border-active);align-items:center;width:100%;height:100%;display:flex}.cui-switch__input:disabled~.cui-switch>.cui-switch__rail{border-color:var(--colour-input-border-disabled)}.cui-switch__input:checked~.cui-switch>.cui-switch__rail{background-color:var(--colour-action-contained-background-default);border-color:var(--colour-action-contained-border-default)}.cui-switch__input:checked:disabled~.cui-switch>.cui-switch__rail{background-color:var(--colour-action-contained-background-disabled);border-color:var(--colour-action-contained-border-disabled)}.cui-switch__input:focus~.cui-switch>.cui-switch__rail:after{content:\"\";top:var(--cui-switch-layout-border-focus-offset);bottom:var(--cui-switch-layout-border-focus-offset);left:var(--cui-switch-layout-border-focus-offset);right:var(--cui-switch-layout-border-focus-offset);border:var(--cui-switch-layout-border-focus-thickness)solid var(--colour-action-contained-border-focused);border-radius:var(--cui-switch-layout-border-focus-radius);position:absolute}.cui-switch_thumb{background-color:var(--colour-input-border-active);width:var(--cui-switch-thumb-size);height:var(--cui-switch-thumb-size);transform:translateX(var(--cui-switch-thumb-gap))scale3d(var(--cui-switch-thumb-off-scale),var(--cui-switch-thumb-off-scale),var(--cui-switch-thumb-off-scale));transition:transform .15s;transition-timing-function:var(--effect-transition-ease-in-default);border-radius:100%;align-content:center;display:flex;position:relative}.cui-switch__input:disabled~.cui-switch>.cui-switch__rail>.cui-switch_thumb{background-color:var(--colour-input-border-disabled)}.cui-switch__input:checked~.cui-switch>.cui-switch__rail>.cui-switch_thumb{background-color:var(--colour-input-background-default);transform:translateX(calc(var(--cui-switch-width) - calc(var(--cui-switch-thumb-size) + var(--cui-switch-thumb-gap) + var(--layout-border-thickness-default))))scale3d(1,1,1)}.cui-switch_thumb-icon{opacity:0;width:var(--icon-size-default);height:var(--icon-size-default);fill:var(--colour-action-contained-background-default);margin:auto;display:block}.cui-switch__input:checked~.cui-switch>.cui-switch__rail>.cui-switch_thumb>.cui-switch_thumb-icon{opacity:1}.cui-switch__input:checked:disabled~.cui-switch>.cui-switch__rail>.cui-switch_thumb>.cui-switch_thumb-icon{fill:var(--colour-action-contained-background-disabled)}.cui-switch__label-text{overflow-wrap:break-word;margin:auto auto auto var(--layout-margin-between-text-content);min-width:1px}.cui-switch__input:disabled~.cui-switch__input{cursor:default}`);","import { ChangeEvent, Component, ReactElement } from \"react\";\r\nimport { createGuid } from \"@pjs/utilities\";\r\nimport { tickIcon } from \"../icon/icons/Tick.icon\";\r\nimport { Icon } from \"../icon/Icon.component\";\r\n\r\nimport { ISwitchProps } from \"./interfaces/ISwitchProps\";\r\n\r\nimport \"./styles/switch.css\";\r\n\r\nexport class Switch extends Component {\r\n public readonly onChangeHandler: (event: ChangeEvent) => void;\r\n private readonly _id: string = createGuid();\r\n\r\n constructor(props: ISwitchProps) {\r\n super(props);\r\n this.onChangeHandler = this._handleCheckedChange.bind(this);\r\n }\r\n\r\n public render(): ReactElement {\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _handleCheckedChange(event: ChangeEvent): void {\r\n this.props.onChange(event.target.checked);\r\n }\r\n}\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`:root{--table-column-border:0}.cui-table{border-collapse:collapse;border-spacing:0}.cui-table__header,.cui-table__row-header{line-height:var(--font-line-height-body);font-size:var(--font-size-body);text-align:left}.cui-table>.cui-table__body:first-child>.cui-table__row:first-child{border-top:var(--layout-border-thickness-default)solid var(--colour-border)}.cui-table__header .cui-table__header-cell{border-top:var(--layout-border-thickness-default)solid var(--colour-border);border-bottom:var(--layout-border-thickness-default)solid var(--colour-border)}.cui-table__header .cui-table__header-cell:first-child{border-left:var(--layout-border-thickness-default)solid var(--colour-border)}.cui-table__header .cui-table__header-cell:last-child{border-right:var(--layout-border-thickness-default)solid var(--colour-border)}.cui-table__header .cui-table__header-cell,.cui-table__row-header{background:var(--palette-secondary-200);font-weight:var(--font-weight-semi-bold);padding:var(--layout-margin-between-text-content)var(--layout-margin-between-content)}.cui-table__row-header{border-left:var(--layout-border-thickness-default)solid var(--colour-border);border-right:var(--layout-border-thickness-default)solid var(--colour-border);border-bottom:var(--layout-border-thickness-default)solid var(--colour-border)}.cui-table .cui-table__header-cell+.cui-table__header-cell,.cui-table .cui-table__cell+.cui-table__cell{border-left:var(--table-column-border)}.cui-table__cell{padding:var(--layout-padding-action-container);border-bottom:var(--layout-border-thickness-default)solid var(--colour-border)}.cui-table__cell:first-child{border-left:var(--layout-border-thickness-default)solid var(--colour-border)}.cui-table__cell:last-child{border-right:var(--layout-border-thickness-default)solid var(--colour-border)}.cui-table__cell--empty{border-top:none;border-left:none;border-right:var(--layout-border-thickness-default)solid var(--colour-border);border-bottom:var(--layout-border-thickness-default)solid var(--colour-border);background:0 0}.cui-table--bordered-cells{--table-column-border:var(--layout-border-thickness-default)solid var(--colour-border)}`);","import { Table as TableBase } from \"../Table.component\";\r\nimport { TableHeader } from \"../TableHeader.component\";\r\nimport { TableBody } from \"../TableBody.component\";\r\nimport { TableRow } from \"../TableRow.component\";\r\nimport { TableRowHeader } from \"../TableRowHeader.component\";\r\nimport { TableCell } from \"../TableCell.component\";\r\nimport { TableEmptyCell } from \"../TableEmptyCell.component\";\r\nimport { TableHeaderCell } from \"../TableHeaderCell.component\";\r\nimport { TableEmptyHeaderCell } from \"../TableEmptyHeaderCell.component\";\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\nexport const Table = Object.assign(TableBase, {\r\n Header: TableHeader,\r\n Body: TableBody,\r\n Row: TableRow,\r\n RowHeader: TableRowHeader,\r\n Cell: TableCell,\r\n EmptyCell: TableEmptyCell,\r\n HeaderCell: TableHeaderCell,\r\n EmptyHeaderCell: TableEmptyHeaderCell\r\n});\r\n","import { FunctionComponent, PropsWithChildren } from \"react\";\r\nimport { ITableProps } from \"./interfaces/ITableProps\";\r\nimport \"./styles/table.css\";\r\n\r\nexport const Table: FunctionComponent> = (props) => {\r\n const className = props.tableStyle === undefined ? \"cui-table\" : `cui-table ${props.tableStyle}`;\r\n\r\n return {props.children}
;\r\n};\r\n","import { FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nexport const TableHeader: FunctionComponent = (props) => {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n","import { FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nexport const TableBody: FunctionComponent = (props) => {\r\n return {props.children};\r\n};\r\n","import { FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nexport const TableRow: FunctionComponent = (props) => {\r\n return {props.children};\r\n};\r\n","import { FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nexport const TableRowHeader: FunctionComponent = (props) => {\r\n return {props.children};\r\n};\r\n","import { FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nexport const TableCell: FunctionComponent = (props) => {\r\n return {props.children};\r\n};\r\n","import { FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nexport const TableEmptyCell: FunctionComponent = (props) => {\r\n return {props.children};\r\n};\r\n","import { FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nexport const TableHeaderCell: FunctionComponent = (props) => {\r\n return {props.children};\r\n};\r\n","import { FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nexport const TableEmptyHeaderCell: FunctionComponent = (props) => {\r\n return {props.children};\r\n};\r\n","import { ITimedAnimation } from \"./interfaces/ITimedAnimation\";\r\nimport { EasingFunction } from \"./types/easingFunction.type\";\r\n\r\nexport class TimedAnimation implements ITimedAnimation {\r\n private _requestId: number;\r\n private readonly _duration: number;\r\n private readonly _easingFunction: EasingFunction;\r\n\r\n private _startTime: DOMHighResTimeStamp;\r\n private _onFrame: ((easedProgress: number, progress: number) => void) | null;\r\n\r\n constructor(duration: number, easingFunction: EasingFunction) {\r\n this._duration = duration;\r\n this._easingFunction = easingFunction;\r\n\r\n this._requestId = -1;\r\n this._startTime = -1;\r\n\r\n this._onFrame = null;\r\n }\r\n\r\n public start(onFrame: (easedProgress: number, progress: number) => void): void {\r\n if (this.isAnimating()) {\r\n this.stop();\r\n }\r\n\r\n this._onFrame = onFrame;\r\n\r\n // Fix: Chrome's elapsed time / current frame time can be behind start time\r\n // performance.now() before a requestAnimationFrame\r\n // Link to Chrome Bug Issue https://bugs.chromium.org/p/chromium/issues/detail?id=652680&q=performance.now\r\n this._requestId = requestAnimationFrame((currentTime) => {\r\n this._startTime = currentTime;\r\n this._requestId = requestAnimationFrame(this._frameUpdate.bind(this));\r\n });\r\n }\r\n\r\n public stop(): void {\r\n cancelAnimationFrame(this._requestId);\r\n\r\n this._requestId = -1;\r\n }\r\n\r\n public isAnimating(): boolean {\r\n return this._requestId !== -1;\r\n }\r\n\r\n private _frameUpdate(currentFrameTime: DOMHighResTimeStamp): void {\r\n const progress = Math.min((currentFrameTime - this._startTime) / this._duration, 1);\r\n const easedProgress = this._easingFunction(progress);\r\n\r\n if (this._onFrame !== null) {\r\n this._onFrame(easedProgress, progress);\r\n }\r\n\r\n if (progress < 1) {\r\n this._requestId = requestAnimationFrame(this._frameUpdate.bind(this));\r\n } else {\r\n this._requestId = -1;\r\n }\r\n }\r\n}\r\n","export function easeInOutCubic(progress: number): number {\r\n return progress < 0.5 ? 4 * progress * progress * progress : 1 - Math.pow(-2 * progress + 2, 3) / 2;\r\n}\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.cui-validated-input--invalid{border-color:var(--colour-warning);outline-color:var(--colour-warning);animation-name:invalid-shake;animation-duration:.35s;animation-timing-function:cubic-bezier(.645,.045,.355,1)}.cui-validated-input--invalid:focus{outline-color:var(--colour-warning)}@keyframes invalid-shake{0%{transform:translate(0,0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}to{transform:translate(0,0)}}`);","import { Component, ChangeEvent, ReactNode, KeyboardEvent, FocusEvent } from \"react\";\r\nimport { Keys } from \"../../enums/Keys\";\r\nimport { IValidatedInputProps } from \"./interfaces/IValidatedInputProps\";\r\nimport { IValidatedInputState } from \"./interfaces/IValidatedInputState\";\r\n\r\nimport \"../input/styles/input.css\";\r\nimport \"./styles/validated-input.css\";\r\n\r\nexport class ValidatedInput extends Component {\r\n public onChange: (event: ChangeEvent) => void;\r\n public onKeyDown: (event: KeyboardEvent) => void;\r\n public onBlur: (event: FocusEvent) => void;\r\n\r\n constructor(props: IValidatedInputProps) {\r\n super(props);\r\n\r\n this.onChange = this._onChange.bind(this);\r\n this.onKeyDown = this._onKeyDown.bind(this);\r\n this.onBlur = this._onBlur.bind(this);\r\n\r\n this.state = {\r\n touchedByUser: false,\r\n valid: true,\r\n value: props.value === undefined ? \"\" : props.value\r\n };\r\n }\r\n\r\n public componentDidUpdate(prevProps: Readonly): void {\r\n if (prevProps.value !== this.props.value && this.props.value !== this.state.value) {\r\n const isValid = this.props.value !== undefined ? this.props.isValid(this.props.value) : false;\r\n this.setState({\r\n valid: isValid,\r\n value: this.props.value === undefined ? \"\" : this.props.value\r\n });\r\n }\r\n }\r\n\r\n public render(): ReactNode {\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _onBlur(event: FocusEvent): void {\r\n if (this.state.touchedByUser) {\r\n const isValid = this.props.isValid(event.target.value);\r\n this.setState({ valid: isValid });\r\n }\r\n\r\n if (this.props.onBlur !== undefined) {\r\n this.props.onBlur(event);\r\n }\r\n }\r\n\r\n private _onChange(event: ChangeEvent): void {\r\n this.setState({ touchedByUser: true, value: event.target.value });\r\n\r\n const isValid = this.props.isValid(event.target.value);\r\n\r\n if (isValid) {\r\n this.setState({ valid: true });\r\n this.props.onValidInput(event.target.value);\r\n } else {\r\n this.props.onInvalidInput(event.target.value);\r\n }\r\n }\r\n\r\n private _onKeyDown(event: KeyboardEvent): void {\r\n if (event.key === Keys.Enter) {\r\n const isValid = this.props.isValid((event.target as HTMLInputElement).value);\r\n this.setState({ valid: isValid });\r\n\r\n if (this.props.onEnter !== undefined) {\r\n this.props.onEnter(event);\r\n }\r\n }\r\n }\r\n}\r\n","import { ComponentType } from \"react\";\r\nimport { AnyProps } from \"@pjs/react-utilities\";\r\nimport { BoundaryBridge } from \"../boundary-bridge/BoundaryBridge.component\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport function WithBoundaryBridge(Component: ComponentType): ComponentType {\r\n // eslint-disable-next-line react/display-name\r\n return (props: T) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n}\r\n","import { IAnimationOptions } from \"./interfaces/IAnimationOptions\";\r\n\r\nexport const animateElement = async (element: HTMLElement, { keyframes, easing, duration }: IAnimationOptions): Promise => {\r\n const prefersNoAnimations = window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;\r\n\r\n if (prefersNoAnimations) {\r\n const finalStyles: Partial = {};\r\n\r\n for (const frame of keyframes) {\r\n Object.assign(finalStyles, frame);\r\n }\r\n\r\n Object.assign(element.style, finalStyles);\r\n return Promise.resolve();\r\n }\r\n\r\n return element\r\n .animate(keyframes, {\r\n duration: duration,\r\n easing: easing,\r\n fill: \"forwards\"\r\n })\r\n .finished.then((a) => {\r\n if (document.body.contains(element)) {\r\n a.commitStyles();\r\n a.cancel();\r\n }\r\n });\r\n};\r\n","import { InteractiveElementsList } from \"../interactive-elements-list/InteractiveElementsList\";\r\n\r\nexport function findFirstInteractiveElement(container: HTMLElement): HTMLElement | null {\r\n const interactiveElementsList = new InteractiveElementsList(container);\r\n return interactiveElementsList.first();\r\n}\r\n","import { findFirstInteractiveElement } from \"../find-first-interactive-element/FindFirstInteractiveElement.function\";\r\n\r\nexport const focusFirstInteractiveElement = (element: HTMLElement | null, fallback?: HTMLElement | null): void => {\r\n if (element === null) {\r\n return;\r\n }\r\n\r\n const firstFocusableElement = findFirstInteractiveElement(element);\r\n return firstFocusableElement !== null ? firstFocusableElement.focus() : fallback?.focus();\r\n};\r\n","import { Keys } from \"../../enums/Keys\";\r\nimport { findFirstInteractiveElement } from \"../find-first-interactive-element/FindFirstInteractiveElement.function\";\r\nimport { InteractiveElementsList } from \"../interactive-elements-list/InteractiveElementsList\";\r\nimport { IFocusTrapper } from \"./interfaces/IFocusTrapper\";\r\nimport { IFocusTrapContainers } from \"./interfaces/IFocusTrapContainers\";\r\n\r\nexport class FocusTrapper implements IFocusTrapper {\r\n private static readonly _problemElementsSelector: string =\r\n \"iframe:not([aria-hidden='true']), [type=number]:not([aria-hidden='true']), [type=range]:not([aria-hidden='true']), audio:not([aria-hidden='true']), q:not([aria-hidden='true'])\";\r\n\r\n private readonly _focusTrapContainers: Array = [];\r\n private readonly _onFocusBound: (event: FocusEvent) => void = this._onFocus.bind(this);\r\n private readonly _onKeyDownBound: (event: KeyboardEvent) => void = this._onKeyDown.bind(this);\r\n private readonly _hostProblemElementsCache: Map> = new Map();\r\n\r\n public trap(container: HTMLElement, exclusion: HTMLElement | null = null): () => void {\r\n if (this._focusTrapContainers.length === 0) {\r\n this._addListeners();\r\n }\r\n\r\n this._focusTrapContainers.push({\r\n container: container,\r\n exclusion: exclusion\r\n });\r\n\r\n this._hideProblemElements();\r\n return () => this._removeTrap(container);\r\n }\r\n\r\n private _removeTrap(container: HTMLElement): void {\r\n const index = this._focusTrapContainers.findIndex((focusTrap) => focusTrap.container === container);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n const wasActiveTrap = container === this._focusTrapContainers[this._focusTrapContainers.length - 1].container;\r\n this._focusTrapContainers.splice(index, 1);\r\n\r\n if (!container.isConnected) {\r\n this._hostProblemElementsCache.delete(container);\r\n }\r\n\r\n if (this._focusTrapContainers.length > 0 && wasActiveTrap) {\r\n this._showCurrentTrapsProblemElements();\r\n return;\r\n }\r\n\r\n if (this._focusTrapContainers.length === 0) {\r\n this._removeListeners();\r\n this._showAllProblemElementsCached();\r\n this._hostProblemElementsCache.clear();\r\n }\r\n }\r\n\r\n private _showCurrentTrapsProblemElements(): void {\r\n const container = this._focusTrapContainers[this._focusTrapContainers.length - 1].container;\r\n const problemElements = this._hostProblemElementsCache.get(container);\r\n\r\n if (problemElements === undefined) {\r\n return;\r\n }\r\n\r\n for (const element of problemElements) {\r\n element.removeAttribute(\"aria-hidden\");\r\n }\r\n }\r\n\r\n private _showAllProblemElementsCached(): void {\r\n for (const elements of this._hostProblemElementsCache.values()) {\r\n for (const element of elements) {\r\n element.removeAttribute(\"aria-hidden\");\r\n }\r\n }\r\n }\r\n\r\n private _addListeners(): void {\r\n document.addEventListener(\"focus\", this._onFocusBound, true);\r\n // eslint-disable-next-line @pebblepad/no-global-keydown-listeners\r\n document.addEventListener(\"keydown\", this._onKeyDownBound);\r\n }\r\n\r\n private _removeListeners(): void {\r\n document.removeEventListener(\"focus\", this._onFocusBound, true);\r\n document.removeEventListener(\"keydown\", this._onKeyDownBound);\r\n }\r\n\r\n private _onFocus(event: FocusEvent): void {\r\n const focusTrap = this._focusTrapContainers[this._focusTrapContainers.length - 1];\r\n\r\n if (focusTrap.exclusion !== null && focusTrap.exclusion.contains(event.target as HTMLElement)) {\r\n return;\r\n }\r\n\r\n if (focusTrap.container.contains(event.target as HTMLElement)) {\r\n return;\r\n }\r\n\r\n const nextElement = findFirstInteractiveElement(focusTrap.container);\r\n\r\n if (nextElement !== null) {\r\n nextElement.focus();\r\n }\r\n }\r\n\r\n private _onKeyDown(event: KeyboardEvent): void {\r\n const container = this._focusTrapContainers[this._focusTrapContainers.length - 1].container;\r\n\r\n if (!container.contains(event.target as HTMLElement)) {\r\n event.preventDefault();\r\n const nextElement = findFirstInteractiveElement(container);\r\n if (nextElement !== null) {\r\n nextElement.focus();\r\n }\r\n return;\r\n }\r\n\r\n if (event.key !== Keys.Tab) {\r\n return;\r\n }\r\n\r\n const interactiveElements = new InteractiveElementsList(container);\r\n\r\n if (!event.shiftKey && event.target === interactiveElements.last()) {\r\n event.preventDefault();\r\n const firstElement = interactiveElements.first();\r\n if (firstElement !== null) {\r\n firstElement.focus();\r\n }\r\n return;\r\n }\r\n\r\n if (event.shiftKey && (event.target === container || event.target === interactiveElements.first())) {\r\n event.preventDefault();\r\n const lastElement = interactiveElements.last();\r\n if (lastElement !== null) {\r\n lastElement.focus();\r\n }\r\n return;\r\n }\r\n }\r\n\r\n private _hideProblemElements(): void {\r\n // See this ADR for why this function is needed\r\n // https://dev.azure.com/PebblePad/PebblePad.Core/_git/PebblePad.ADRs?path=/decisions/modals/20240219_%5Bmodals%5D_resolving-dialog-content-leaks.md&_a=preview\r\n\r\n const lastActiveContainer = this._focusTrapContainers[this._focusTrapContainers.length - 2];\r\n const activeContainer = this._focusTrapContainers[this._focusTrapContainers.length - 1];\r\n for (const element of document.querySelectorAll(FocusTrapper._problemElementsSelector)) {\r\n if (activeContainer.container.contains(element)) {\r\n continue;\r\n }\r\n const hostElement = lastActiveContainer?.container.contains(element) === true ? lastActiveContainer.container : document.body;\r\n element.setAttribute(\"aria-hidden\", \"true\");\r\n const hostElements = this._hostProblemElementsCache.get(hostElement) ?? new Set();\r\n hostElements.add(element);\r\n this._hostProblemElementsCache.set(hostElement, hostElements);\r\n }\r\n }\r\n}\r\n","import { FocusTrapper } from \"./FocusTrapper\";\r\nimport { IFocusTrapper } from \"./interfaces/IFocusTrapper\";\r\n\r\nexport const focusTrapper: IFocusTrapper = new FocusTrapper();\r\n","export function getTabIndex(element: HTMLElement): number {\r\n // Workaround for Chromium versions 107-118 returning a tabindex of -1 for audio/video/details elements which do not have a tabindex attribute explicitly set\r\n if (!element.hasAttribute(\"tabindex\") && (element.isContentEditable || [\"AUDIO\", \"VIDEO\", \"DETAILS\"].includes(element.tagName))) {\r\n return 0;\r\n }\r\n\r\n return element.tabIndex;\r\n}\r\n","import { CSSProperties } from \"react\";\r\n\r\nconst closedStyle: CSSProperties = { display: \"none\" };\r\n\r\nexport function hideWhenClosed(isOpen: boolean): Readonly | undefined {\r\n return isOpen ? undefined : closedStyle;\r\n}\r\n","const radioHostCache = new Map>();\r\nlet hasScheduledCacheClear = false;\r\n\r\nexport function isRadioButtonTabbable(radioButton: HTMLInputElement): boolean {\r\n if (radioButton.checked) {\r\n return true;\r\n }\r\n\r\n const radioButtonHost = radioButton.form ?? document.body;\r\n const hostQueryResults = radioHostCache.get(radioButtonHost) ?? {};\r\n let groupsCheckedRadio = hostQueryResults[radioButton.name];\r\n\r\n if (groupsCheckedRadio === undefined) {\r\n const checkedRadioSelector = `input[type=\"radio\"][name=\"${CSS.escape(radioButton.name)}\"]:checked`;\r\n const selector = radioButton.form === null ? `${checkedRadioSelector}:not(:is(form input))` : `form ${checkedRadioSelector}`;\r\n groupsCheckedRadio = radioButtonHost.querySelector(selector);\r\n hostQueryResults[radioButton.name] = groupsCheckedRadio;\r\n radioHostCache.set(radioButtonHost, hostQueryResults);\r\n }\r\n\r\n if (!hasScheduledCacheClear) {\r\n hasScheduledCacheClear = true;\r\n queueMicrotask(() => {\r\n radioHostCache.clear();\r\n hasScheduledCacheClear = false;\r\n });\r\n }\r\n\r\n if (groupsCheckedRadio === null) {\r\n return true;\r\n }\r\n return groupsCheckedRadio === radioButton;\r\n}\r\n","function isScreenReaderHidden(element: HTMLElement): boolean {\r\n // Using getAttribute instead of element.ariaHidden due to FF not supporting it until version 119\r\n return element.getAttribute(\"aria-hidden\") === \"true\" || (element as HTMLElement & { inert: boolean }).inert;\r\n}\r\n\r\nconst inputElements: ReadonlyArray = [\"INPUT\", \"BUTTON\", \"SELECT\", \"TEXTAREA\"];\r\n\r\nexport function withinDisablingParent(element: HTMLElement, container: HTMLElement): boolean {\r\n if (isScreenReaderHidden(element) || (element as HTMLInputElement).disabled === true) {\r\n return true;\r\n }\r\n\r\n let ancestor = element.parentElement;\r\n\r\n while (ancestor !== container && ancestor !== null) {\r\n if (isScreenReaderHidden(ancestor)) {\r\n return true;\r\n }\r\n\r\n if (ancestor instanceof HTMLFieldSetElement && ancestor.disabled && inputElements.includes(element.tagName)) {\r\n return true;\r\n }\r\n\r\n ancestor = ancestor.parentElement;\r\n }\r\n return false;\r\n}\r\n","import { isVisuallyHidden } from \"../is-visually-hidden/IsVisuallyHidden.function\";\r\nimport { getTabIndex } from \"../get-tab-index/GetTabIndex.function\";\r\nimport { isRadioButtonTabbable } from \"./IsRadioButtonTabbable.function\";\r\nimport { withinDisablingParent } from \"./WithinDisablingParent.function\";\r\n\r\nexport function isValidTabBoundaryElement(element: HTMLElement, container: HTMLElement): boolean {\r\n if (getTabIndex(element) === -1) {\r\n return false;\r\n }\r\n\r\n if (withinDisablingParent(element, container)) {\r\n return false;\r\n }\r\n\r\n if (element instanceof HTMLInputElement && element.type === \"radio\" && !isRadioButtonTabbable(element)) {\r\n return false;\r\n }\r\n\r\n return !isVisuallyHidden(element);\r\n}\r\n","import { tabbableSelector } from \"../find-first-interactive-element/TabbableSelector.const\";\r\nimport { isValidTabBoundaryElement } from \"../find-first-interactive-element/IsValidTabBoundaryElement.function\";\r\nimport { IInteractiveElementsList } from \"./interface/IInteractiveElementsList\";\r\n\r\nexport class InteractiveElementsList implements IInteractiveElementsList {\r\n private readonly _container: HTMLElement;\r\n private readonly _potentialElements: NodeListOf;\r\n\r\n constructor(container: HTMLElement) {\r\n this._container = container;\r\n this._potentialElements = container.querySelectorAll(tabbableSelector);\r\n }\r\n\r\n public first(): HTMLElement | null {\r\n for (const element of this._potentialElements) {\r\n if (isValidTabBoundaryElement(element, this._container)) {\r\n return element;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public last(): HTMLElement | null {\r\n for (let i = this._potentialElements.length - 1; i >= 0; i--) {\r\n const element = this._potentialElements[i];\r\n\r\n if (isValidTabBoundaryElement(element, this._container)) {\r\n return element;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public *[Symbol.iterator](): IterableIterator {\r\n for (const element of this._potentialElements) {\r\n if (isValidTabBoundaryElement(element, this._container)) {\r\n yield element;\r\n }\r\n }\r\n }\r\n}\r\n","export const tabbableSelector = \"[contentEditable=true], details>summary:first-of-type, a[href], [tabindex], audio[controls], video[controls], button, textarea, select, input:not([type='hidden'])\";\r\n","/**\r\n * @description - isVisuallyHidden limitations are that\r\n\r\n * - it will return true for position:fixed elements\r\n * - it does not check if the element is attached to the page or that it's inside an inert/aria-hidden container\r\n */\r\nexport function isVisuallyHidden(element: HTMLElement): boolean {\r\n if (element.tagName !== \"SUMMARY\" && element.parentElement instanceof HTMLDetailsElement && !element.parentElement.open) {\r\n return true;\r\n }\r\n\r\n if (element.offsetParent === null) {\r\n return true;\r\n }\r\n\r\n const styles = getComputedStyle(element);\r\n\r\n if (styles.visibility === \"hidden\") {\r\n return true;\r\n }\r\n\r\n return element.offsetWidth === 0 && element.offsetHeight === 0;\r\n}\r\n","export function scrollToElementInList(listElement: HTMLElement, activeItemElement: HTMLElement): void {\r\n if (listElement.scrollHeight <= listElement.clientHeight) {\r\n return;\r\n }\r\n\r\n if (activeItemElement.offsetTop + activeItemElement.offsetHeight > listElement.scrollTop + listElement.clientHeight) {\r\n listElement.scrollTop = activeItemElement.offsetTop + activeItemElement.offsetHeight - listElement.clientHeight;\r\n } else if (activeItemElement.offsetTop < listElement.scrollTop) {\r\n listElement.scrollTop = activeItemElement.offsetTop;\r\n }\r\n}\r\n","import { Keys } from \"../../enums/Keys\";\r\nimport { coreUiI18n } from \"../../features/i18n/CoreUiI18n.const\";\r\nimport { IShortcut } from \"./interfaces/IShortcut\";\r\nimport { ShortcutKeys } from \"./types/ShortcutKeys\";\r\nimport { IShortcutDescriptorGroup } from \"./interfaces/IShortcutDescriptorGroup\";\r\nimport { IShortcutDescriptor } from \"./interfaces/IShortcutDescriptor\";\r\n\r\nexport class ShortcutStack {\r\n private readonly _groupDescriptions: WeakMap = new WeakMap();\r\n private readonly _allShortcuts: Array = [];\r\n private readonly _isMac: boolean;\r\n\r\n constructor(isMac: boolean) {\r\n this._isMac = isMac;\r\n }\r\n\r\n public addGroup(shortcuts: ReadonlyArray, description: string): () => void {\r\n const lowerCaseShortcuts = shortcuts.map((shortcut) => {\r\n const newShortcut = {\r\n callback: shortcut.callback,\r\n description: shortcut.description,\r\n keys: shortcut.keys.map((key) => key.toLowerCase()) as ShortcutKeys\r\n };\r\n\r\n const isDuplicate = this._allShortcuts.some((existingShortcut) => this._doesKeysMatchShortcut(newShortcut.keys, existingShortcut));\r\n if (isDuplicate) {\r\n throw new Error(`The shortcut ${shortcut.keys} has a duplicate key.`);\r\n }\r\n\r\n this._allShortcuts.push(newShortcut);\r\n this._groupDescriptions.set(newShortcut, description);\r\n return newShortcut;\r\n });\r\n\r\n return () => this._removeGroup(lowerCaseShortcuts);\r\n }\r\n\r\n public getShortcut(keys: ReadonlyArray): IShortcut | null {\r\n return this._allShortcuts.find((shortcut) => this._doesKeysMatchShortcut(keys, shortcut)) ?? null;\r\n }\r\n\r\n public getShortcutGroups(): Array {\r\n const groups: Record = {};\r\n const keyTranslations = {\r\n [Keys.Control.toLowerCase()]: this._isMac ? coreUiI18n.getString(\"shortcut_viewer.command\") : coreUiI18n.getString(\"shortcut_viewer.control\"),\r\n [Keys.ArrowUp.toLowerCase()]: coreUiI18n.getString(\"shortcut_viewer.arrow_up\"),\r\n [Keys.ArrowDown.toLowerCase()]: coreUiI18n.getString(\"shortcut_viewer.arrow_down\"),\r\n [Keys.ArrowLeft.toLowerCase()]: coreUiI18n.getString(\"shortcut_viewer.arrow_left\"),\r\n [Keys.ArrowRight.toLowerCase()]: coreUiI18n.getString(\"shortcut_viewer.arrow_right\")\r\n };\r\n\r\n for (const shortcut of this._allShortcuts) {\r\n const description = this._groupDescriptions.get(shortcut);\r\n if (description === undefined) {\r\n continue;\r\n }\r\n\r\n const shortcutCopy: IShortcutDescriptor = {\r\n description: shortcut.description,\r\n keys: shortcut.keys.map((key) => {\r\n const keyTranslation = keyTranslations[key];\r\n return keyTranslation !== undefined ? keyTranslation : key;\r\n }) as ShortcutKeys\r\n };\r\n\r\n if (groups[description] === undefined) {\r\n groups[description] = {\r\n description: description,\r\n shortcuts: [shortcutCopy]\r\n };\r\n } else {\r\n groups[description].shortcuts.push(shortcutCopy);\r\n }\r\n }\r\n\r\n return Object.values(groups);\r\n }\r\n\r\n private _removeGroup(shortcuts: ReadonlyArray): void {\r\n for (const shortcut of shortcuts) {\r\n const index = this._allShortcuts.indexOf(shortcut);\r\n if (index !== -1) {\r\n this._allShortcuts.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n private _doesKeysMatchShortcut(keys: ReadonlyArray, shortcut: IShortcut): boolean {\r\n if (keys.length === shortcut.keys.length) {\r\n return shortcut.keys.every((key) => keys.includes(key));\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Keys } from \"../../enums/Keys\";\r\nimport { IShortcutManager } from \"./interfaces/IShortcutManager\";\r\nimport { IShortcut } from \"./interfaces/IShortcut\";\r\nimport { IShortcutDescriptorGroup } from \"./interfaces/IShortcutDescriptorGroup\";\r\nimport { ShortcutStack } from \"./ShortcutStack\";\r\n\r\n/**\r\n * Supported access and modifier keys include control and shift, alt is not a supported key.\r\n * Shortcuts using the control key will be triggered by both command and control on Mac e.g. control + s becomes command + s.\r\n * Single key shortcuts e.g. \"s\" are not supported.\r\n */\r\nexport class ShortcutManager implements IShortcutManager {\r\n private readonly _element: HTMLElement;\r\n private readonly _isMac: boolean;\r\n private readonly _stacks: Array = [];\r\n private readonly _triggerCallbackBound: (event: KeyboardEvent) => void = this._triggerCallback.bind(this);\r\n private readonly _keyupResetFn: (event: KeyboardEvent) => void;\r\n private readonly _resetPressedKeysBound: () => void = this._resetPressedKeys.bind(this);\r\n private _pressedKeys: Array = [];\r\n\r\n private readonly _arrowKeys: Array = [Keys.ArrowDown, Keys.ArrowUp, Keys.ArrowRight, Keys.ArrowLeft].map((key) => key.toLowerCase());\r\n\r\n constructor(element: HTMLElement, isMac: boolean) {\r\n this._element = element;\r\n this._isMac = isMac;\r\n this._keyupResetFn = isMac ? this._macResetKeyPress.bind(this) : this._resetKeyPress.bind(this);\r\n }\r\n\r\n public enableListeners(): void {\r\n this._element.addEventListener(\"keydown\", this._triggerCallbackBound);\r\n this._element.addEventListener(\"keyup\", this._keyupResetFn, true);\r\n window.addEventListener(\"blur\", this._resetPressedKeysBound);\r\n }\r\n\r\n public disableListeners(): void {\r\n this._element.removeEventListener(\"keydown\", this._triggerCallbackBound);\r\n this._element.removeEventListener(\"keyup\", this._keyupResetFn, true);\r\n window.removeEventListener(\"blur\", this._resetPressedKeysBound);\r\n }\r\n\r\n public add(shortcuts: ReadonlyArray, description: string): () => void {\r\n const stack = this._getCurrentStack();\r\n if (stack === undefined) {\r\n throw new Error(\"No Stack available to add shortcuts to.\");\r\n }\r\n\r\n return stack.addGroup(shortcuts, description);\r\n }\r\n\r\n public addStack(): () => void {\r\n const stack = new ShortcutStack(this._isMac);\r\n this._stacks.push(stack);\r\n\r\n return () => {\r\n const index = this._stacks.indexOf(stack);\r\n if (index !== -1) {\r\n this._stacks.splice(index, 1);\r\n }\r\n };\r\n }\r\n\r\n public getActiveShortcuts(): Array {\r\n const stack = this._getCurrentStack();\r\n return stack === undefined ? [] : stack.getShortcutGroups();\r\n }\r\n\r\n private _getCurrentStack(): ShortcutStack | undefined {\r\n return this._stacks[this._stacks.length - 1];\r\n }\r\n\r\n private _triggerCallback(event: KeyboardEvent): void {\r\n const stack = this._getCurrentStack();\r\n if (stack === undefined) {\r\n return;\r\n }\r\n\r\n const key = this._isMac && event.key === Keys.Meta ? Keys.Control.toLowerCase() : event.key.toLowerCase();\r\n const isNewKey = !this._pressedKeys.includes(key);\r\n if (isNewKey) {\r\n this._pressedKeys.push(key);\r\n }\r\n\r\n // Due to quirks with Mac Command key blocking keyup events the repeat flag must be checked in case the key is a key being pressed again.\r\n if (event.repeat || this._pressedKeys.length <= 1) {\r\n return;\r\n }\r\n\r\n const shortcut = stack.getShortcut(this._pressedKeys);\r\n if (shortcut !== null) {\r\n event.preventDefault();\r\n shortcut.callback(event);\r\n }\r\n }\r\n\r\n private _resetKeyPress(event: KeyboardEvent): void {\r\n const key = event.key.toLowerCase();\r\n if (this._pressedKeys.includes(key)) {\r\n const index = this._pressedKeys.indexOf(key);\r\n this._pressedKeys.splice(index, 1);\r\n }\r\n }\r\n\r\n /**\r\n * Whilst Command is pressed on Mac, keyup events for alphanumeric characters and symbols will never trigger. 🙃\r\n * When the Command key is released we need to clean up any tracked alphanumeric and symbol characters.\r\n */\r\n private _macResetKeyPress(event: KeyboardEvent): void {\r\n if (event.key === Keys.Meta) {\r\n const controlKey = Keys.Control.toLowerCase();\r\n this._pressedKeys = this._pressedKeys.filter((key) => {\r\n return key.length > 1 && key !== controlKey && !this._arrowKeys.includes(key as Keys);\r\n });\r\n return;\r\n }\r\n\r\n this._resetKeyPress(event);\r\n }\r\n\r\n private _resetPressedKeys(): void {\r\n this._pressedKeys.length = 0;\r\n }\r\n}\r\n","import { ShortcutManager } from \"./ShortcutManager\";\r\nimport { IShortcutManager } from \"./interfaces/IShortcutManager\";\r\n\r\nexport const createShortcutManagerInstance = (element: HTMLElement): IShortcutManager => {\r\n const manager = new ShortcutManager(element, navigator.userAgent.includes(\"Mac\"));\r\n manager.enableListeners();\r\n\r\n return manager;\r\n};\r\n","import { IShortcutManager } from \"./interfaces/IShortcutManager\";\r\nimport { createShortcutManagerInstance } from \"./CreateShortcutManagerInstance.function\";\r\n\r\nexport const shortcutManager: IShortcutManager = createShortcutManagerInstance(document.documentElement);\r\n","/**\r\n * A class which will tell you if a particular user agent can accept the cookie `samesite=none` without issues.\r\n * See this [google announcement](https://blog.chromium.org/2019/10/developers-get-ready-for-new.html) for details.\r\n */\r\nexport class CookieSameSiteHelper {\r\n public static shouldSendSameSiteNone(useragent: string): boolean {\r\n return !CookieSameSiteHelper._isSameSiteNoneIncompatible(useragent);\r\n }\r\n\r\n private static _isSameSiteNoneIncompatible(useragent: string): boolean {\r\n return CookieSameSiteHelper._hasWebKitSameSiteBug(useragent) || CookieSameSiteHelper._dropsUnrecognizedSameSiteCookies(useragent);\r\n }\r\n\r\n private static _hasWebKitSameSiteBug(useragent: string): boolean {\r\n return (\r\n CookieSameSiteHelper._isIosVersion(12, useragent) ||\r\n (CookieSameSiteHelper._isMacosxVersion(10, 14, useragent) && (CookieSameSiteHelper._isSafari(useragent) || CookieSameSiteHelper._isMacEmbeddedBrowser(useragent)))\r\n );\r\n }\r\n\r\n private static _dropsUnrecognizedSameSiteCookies(useragent: string): boolean {\r\n if (CookieSameSiteHelper._isUcBrowser(useragent)) {\r\n return !CookieSameSiteHelper._isUcBrowserVersionAtLeast(12, 13, 2, useragent);\r\n }\r\n return CookieSameSiteHelper._isChromiumBased(useragent) && CookieSameSiteHelper._isChromiumVersionAtLeast(51, useragent) && !CookieSameSiteHelper._isChromiumVersionAtLeast(67, useragent);\r\n }\r\n\r\n private static _isIosVersion(major: number, useragent: string): boolean {\r\n const regex = /\\(iP.+; CPU .*OS (\\d+)[_\\d]*.*\\) AppleWebKit\\//;\r\n const matches = useragent.match(regex) ?? [\"\", \"\"];\r\n return matches[1] === String(major);\r\n }\r\n\r\n private static _isMacosxVersion(major: number, minor: number, useragent: string): boolean {\r\n const regex = /\\(Macintosh;.*Mac OS X (\\d+)_(\\d+)[_\\d]*.*\\) AppleWebKit\\//;\r\n const matches = useragent.match(regex) ?? [\"\", \"\", \"\"];\r\n return matches[1] === String(major) && matches[2] === String(minor);\r\n }\r\n\r\n private static _isSafari(useragent: string): boolean {\r\n const safariRegex = /Version\\/.* Safari\\//;\r\n return safariRegex.test(useragent) && !CookieSameSiteHelper._isChromiumBased(useragent);\r\n }\r\n\r\n private static _isMacEmbeddedBrowser(useragent: string): boolean {\r\n const regex = /^Mozilla\\/[\\.\\d]+ \\(Macintosh;.*Mac OS X [_\\d]+\\) AppleWebKit\\/[\\.\\d]+ \\(KHTML, like Gecko\\)$/;\r\n return regex.test(useragent);\r\n }\r\n\r\n private static _isChromiumBased(useragent: string): boolean {\r\n return /Chrom(e|ium)/.test(useragent) && !CookieSameSiteHelper._isEdgeBrowser(useragent);\r\n }\r\n\r\n private static _isEdgeBrowser(useragent: string): boolean {\r\n // \"EdgiOS/\", \"edga/\", \"edgios/\" & \"edg/\" are not included in this check as they use different engines\r\n return /Edge\\/((\\d+)?[\\w\\.]+)/.test(useragent);\r\n }\r\n\r\n private static _isChromiumVersionAtLeast(major: number, useragent: string): boolean {\r\n const regex = /Chrom[^ \\/]+\\/(\\d+)[\\.\\d]*/;\r\n const match = useragent.match(regex) ?? [\"\", \"\"];\r\n const version = parseInt(match[1], 10);\r\n return version >= major;\r\n }\r\n\r\n private static _isUcBrowser(useragent: string): boolean {\r\n return /UCBrowser\\//.test(useragent);\r\n }\r\n\r\n private static _isUcBrowserVersionAtLeast(major: number, minor: number, build: number, useragent: string): boolean {\r\n const regex = /UCBrowser\\/(\\d+)\\.(\\d+)\\.(\\d+)[\\.\\d]* /;\r\n const match = useragent.match(regex) ?? [\"\", \"\", \"\", \"\"];\r\n const majorVersion = parseInt(match[1], 10);\r\n const minorVersion = parseInt(match[2], 10);\r\n const buildVersion = parseInt(match[3], 10);\r\n if (majorVersion !== major) {\r\n return majorVersion > major;\r\n }\r\n if (minorVersion !== minor) {\r\n return minorVersion > minor;\r\n }\r\n return buildVersion >= build;\r\n }\r\n}\r\n","import { generateCsrfToken } from \"@pjs/security\";\r\nimport { cookieStore, ICookieOptions, SameSite } from \"@pjs/storage\";\r\nimport { CookieSameSiteHelper } from \"../cookie-same-site-helper/CookieSameSiteHelper\";\r\n\r\nexport class CsrfCookie {\r\n public static readonly cookieName: string = \"CSRF_Token\";\r\n public static readonly cookieExpiryName: string = \"CSRF_Token_Expiry\";\r\n\r\n public static get(): string {\r\n const cookie = cookieStore.get(CsrfCookie.cookieName);\r\n const expiryCookie = cookieStore.get(CsrfCookie.cookieExpiryName);\r\n\r\n if (cookie === null) {\r\n return CsrfCookie._create();\r\n }\r\n\r\n if (expiryCookie === null || new Date(expiryCookie.value).getTime() - 600000 <= Date.now()) {\r\n return CsrfCookie._create();\r\n }\r\n\r\n return cookie.value;\r\n }\r\n\r\n private static _create(): string {\r\n const token = generateCsrfToken();\r\n CsrfCookie._set(token);\r\n return token;\r\n }\r\n\r\n private static _set(token: string): void {\r\n const hour = 60 * 60 * 1000;\r\n const expiry = new Date(Date.now() + hour);\r\n\r\n const cookieOptions: ICookieOptions = {\r\n expiry: expiry,\r\n path: \"/\",\r\n secure: true\r\n };\r\n\r\n if (CookieSameSiteHelper.shouldSendSameSiteNone(window.navigator.userAgent)) {\r\n cookieOptions.sameSite = SameSite.None;\r\n }\r\n\r\n const expiryToken = expiry.toISOString();\r\n cookieStore.set(CsrfCookie.cookieName, token, cookieOptions);\r\n cookieStore.set(CsrfCookie.cookieExpiryName, expiryToken, cookieOptions);\r\n }\r\n}\r\n","export function generateCsrfToken(): string {\r\n const tokenLength = 64;\r\n const crypto = window.crypto;\r\n const bigIndexes = crypto.getRandomValues(new Uint32Array(tokenLength));\r\n const charSet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789[]\";\r\n\r\n let token = \"\";\r\n\r\n for (let i = 0; i < tokenLength; i++) {\r\n token += charSet[bigIndexes[i] % charSet.length];\r\n }\r\n\r\n return token;\r\n}\r\n","export function pascalCaseToCamelCaseReviver(this: any, key: string, value: any): any {\r\n if (key === \"\" || !/^[A-Z]/.test(key)) {\r\n return value;\r\n }\r\n\r\n const processedKey = key.charAt(0).toLowerCase() + key.slice(1);\r\n this[processedKey] = value;\r\n}\r\n","import { camelCaseModifier } from \"./CamelCaseModifier.function\";\r\nimport { PascalToCamel } from \"./types/PascalToCamel\";\r\n\r\nexport const fromPascalToCamel = (modifier: (data: PascalToCamel) => TReturn): ((response: Response) => Promise) => {\r\n return (response: Response): Promise => {\r\n return response.text().then((text: string) => modifier(camelCaseModifier(text)));\r\n };\r\n};\r\n","import { pascalCaseToCamelCaseReviver } from \"./PascalCaseToCamelCaseReviver.function\";\r\nimport { PascalToCamel } from \"./types/PascalToCamel\";\r\n\r\nexport function camelCaseModifier(data: string): PascalToCamel {\r\n return JSON.parse(data, pascalCaseToCamelCaseReviver);\r\n}\r\n","export enum HttpMethod {\r\n Get = \"GET\",\r\n Head = \"HEAD\",\r\n Post = \"POST\",\r\n Put = \"PUT\",\r\n Delete = \"DELETE\",\r\n Patch = \"PATCH\"\r\n}\r\n","import { IAbortableHttpRequest } from \"./interfaces/IAbortableHttpRequest\";\r\n\r\nexport class AbortableHttpRequest implements IAbortableHttpRequest {\r\n public readonly [Symbol.toStringTag]: string = \"Promise\";\r\n public readonly then: Promise[\"then\"];\r\n public readonly catch: Promise[\"catch\"];\r\n public readonly finally: Promise[\"finally\"];\r\n public readonly abort: () => void;\r\n\r\n constructor(promise: Promise, abort: () => void) {\r\n this.then = promise.then.bind(promise);\r\n this.catch = promise.catch.bind(promise);\r\n this.finally = promise.finally.bind(promise);\r\n this.abort = abort;\r\n }\r\n\r\n public toArrayBuffer(): Promise {\r\n return this.then((response) => response.arrayBuffer());\r\n }\r\n\r\n public toBlob(): Promise {\r\n return this.then((response) => response.blob());\r\n }\r\n\r\n public toJson(): Promise {\r\n return this.then((response) => response.json() as Promise);\r\n }\r\n\r\n public toText(): Promise {\r\n return this.then((response) => response.text());\r\n }\r\n}\r\n","import { IHttpInterceptor } from \"../../interfaces/IHttpInterceptor\";\r\nimport { IHttpOptions } from \"../http-service/interfaces/IHttpOptions\";\r\nimport { IInterceptorRunner } from \"./interfaces/IInterceptorRunner\";\r\n\r\nexport class InterceptorRunner implements IInterceptorRunner {\r\n private readonly _interceptors: Array;\r\n private _aborted: boolean;\r\n\r\n constructor(interceptors: Array) {\r\n this._interceptors = interceptors;\r\n this._aborted = false;\r\n }\r\n\r\n public runResponses(promiseResponse: Promise): Promise {\r\n let responsePromise = promiseResponse;\r\n for (const interceptor of this._interceptors) {\r\n responsePromise = responsePromise.then((response) => this._response(response, interceptor), (reject: unknown) => this._reject(reject, interceptor));\r\n }\r\n\r\n return responsePromise;\r\n }\r\n\r\n public async runRequests(promiseHttpOptions: Promise): Promise {\r\n let httpOptions = await promiseHttpOptions;\r\n for (const interceptor of this._interceptors) {\r\n httpOptions = await this._request(httpOptions, interceptor);\r\n }\r\n return httpOptions;\r\n }\r\n\r\n public abort(): void {\r\n this._aborted = true;\r\n }\r\n\r\n private _request(value: IHttpOptions, interceptor: IHttpInterceptor): IHttpOptions | Promise {\r\n if (this._aborted) {\r\n this._throwAbortError(\"Aborted before HTTP request\");\r\n }\r\n return interceptor.request !== undefined ? interceptor.request(value) : value;\r\n }\r\n\r\n private _response(value: Response, interceptor: IHttpInterceptor): Response | Promise | never {\r\n if (this._aborted) {\r\n this._throwAbortError(\"Aborted after HTTP request\");\r\n }\r\n return interceptor.response !== undefined ? interceptor.response(value) : value;\r\n }\r\n\r\n private _reject(rejection: unknown, interceptor: IHttpInterceptor): Response | Promise | never {\r\n if (this._aborted) {\r\n this._throwAbortError(\"Aborted after HTTP request\");\r\n }\r\n if (interceptor.responseError !== undefined) {\r\n return interceptor.responseError(rejection);\r\n }\r\n throw rejection;\r\n }\r\n\r\n private _throwAbortError(message: string): never {\r\n const error = new Error(message);\r\n error.name = \"AbortError\";\r\n throw error;\r\n }\r\n}\r\n","import { noop } from \"@pjs/utilities\";\r\nimport { HttpMethod } from \"../../enums/HttpMethod\";\r\nimport { IAbortableHttpRequest } from \"../abortable-http-request/interfaces/IAbortableHttpRequest\";\r\nimport { IHttpInterceptor } from \"../../interfaces/IHttpInterceptor\";\r\nimport { AbortableHttpRequest } from \"../abortable-http-request/AbortableHttpRequest\";\r\nimport { InterceptorRunner } from \"../interceptor-runner/InterceptorRunner\";\r\nimport { IPartialHttpOptions } from \"./interfaces/IPartialHttpOptions\";\r\nimport { IHttpService } from \"./interfaces/IHttpService\";\r\nimport { IHttpOptions } from \"./interfaces/IHttpOptions\";\r\n\r\nexport class HttpService implements IHttpService {\r\n private readonly _defaultOptions: IHttpOptions;\r\n private readonly _httpInterceptors: Array;\r\n\r\n constructor(overrideDefaultOptions?: IPartialHttpOptions) {\r\n this._httpInterceptors = [];\r\n this._defaultOptions = HttpService.getDefaultHttpOptions();\r\n\r\n if (overrideDefaultOptions !== undefined) {\r\n this._defaultOptions = {\r\n ...this._defaultOptions,\r\n ...overrideDefaultOptions,\r\n headers: this._mergeHeaders(this._defaultOptions.headers, overrideDefaultOptions.headers)\r\n };\r\n }\r\n }\r\n\r\n public static getDefaultHttpOptions(): IHttpOptions {\r\n const headers = new Headers();\r\n headers.append(\"Content-Type\", \"application/json\");\r\n\r\n return {\r\n credentials: \"same-origin\",\r\n headers: headers,\r\n method: HttpMethod.Get,\r\n timeout: 0,\r\n url: \"\"\r\n };\r\n }\r\n\r\n public delete(url: string, options?: IPartialHttpOptions): IAbortableHttpRequest {\r\n return this._makeRequest(this._mergeOptions(options, url, HttpMethod.Delete));\r\n }\r\n\r\n public get(url: string, options?: IPartialHttpOptions): IAbortableHttpRequest {\r\n return this._makeRequest(this._mergeOptions(options, url, HttpMethod.Get));\r\n }\r\n\r\n public head(url: string, options?: IPartialHttpOptions): IAbortableHttpRequest {\r\n return this._makeRequest(this._mergeOptions(options, url, HttpMethod.Head));\r\n }\r\n\r\n public patch(url: string, data: T, options?: IPartialHttpOptions): IAbortableHttpRequest {\r\n return this._makeRequestWithJson(this._mergeOptions(options, url, HttpMethod.Patch), data);\r\n }\r\n\r\n public post(url: string, data: T, options?: IPartialHttpOptions): IAbortableHttpRequest {\r\n return this._makeRequestWithJson(this._mergeOptions(options, url, HttpMethod.Post), data);\r\n }\r\n\r\n public put(url: string, data: T, options?: IPartialHttpOptions): IAbortableHttpRequest {\r\n return this._makeRequestWithJson(this._mergeOptions(options, url, HttpMethod.Put), data);\r\n }\r\n\r\n public request(method: HttpMethod, url: string, data?: BodyInit, options?: IPartialHttpOptions): IAbortableHttpRequest {\r\n return this._makeRequest(this._mergeOptions(options, url, method), data);\r\n }\r\n\r\n public registerInterceptor(httpInterceptor: IHttpInterceptor): void {\r\n const index = this._httpInterceptors.findIndex((interceptor) => httpInterceptor.id === interceptor.id);\r\n if (index !== -1) {\r\n throw new Error(`Interceptor with id:${httpInterceptor.id} is already registered`);\r\n }\r\n\r\n this._httpInterceptors.push(httpInterceptor);\r\n }\r\n\r\n public unregisterInterceptor(id: string): void {\r\n const index = this._httpInterceptors.findIndex((interceptor) => interceptor.id === id);\r\n if (index !== -1) {\r\n this._httpInterceptors.splice(index, 1);\r\n }\r\n }\r\n\r\n private _makeRequestWithJson(options: IHttpOptions, data?: unknown): IAbortableHttpRequest {\r\n const requestData = data === null || data === undefined || typeof data === \"string\" ? data : JSON.stringify(data);\r\n return this._makeRequest(options, requestData);\r\n }\r\n\r\n private _makeRequest(options: IHttpOptions, data?: BodyInit | null): IAbortableHttpRequest {\r\n const controller = new AbortController();\r\n const signal = controller.signal;\r\n const interceptorRunner = new InterceptorRunner(this._httpInterceptors);\r\n let promise: Promise = Promise.resolve(options);\r\n\r\n if (this._httpInterceptors.length > 0) {\r\n promise = interceptorRunner.runRequests(promise);\r\n }\r\n\r\n let fetchPromise = promise.then((requestOptions) => {\r\n if (requestOptions.timeout > 0) {\r\n const timeout = setTimeout(() => controller.abort(), requestOptions.timeout);\r\n fetchPromise\r\n .finally(() => clearTimeout(timeout))\r\n .catch(() => {\r\n noop();\r\n });\r\n }\r\n\r\n return fetch(requestOptions.url, {\r\n body: data,\r\n credentials: requestOptions.credentials,\r\n headers: requestOptions.headers,\r\n method: requestOptions.method,\r\n signal: signal\r\n }).then((response: Response) => {\r\n if (response.status >= 200 && response.status <= 299) {\r\n return response;\r\n }\r\n\r\n throw response;\r\n });\r\n });\r\n\r\n if (this._httpInterceptors.length > 0) {\r\n fetchPromise = interceptorRunner.runResponses(fetchPromise);\r\n }\r\n\r\n return new AbortableHttpRequest(fetchPromise, () => {\r\n interceptorRunner.abort();\r\n controller.abort();\r\n });\r\n }\r\n\r\n private _mergeOptions(options: IPartialHttpOptions | undefined, url: string, method: HttpMethod): IHttpOptions {\r\n const httpOptions = options ?? { ...this._defaultOptions };\r\n\r\n return {\r\n ...this._defaultOptions,\r\n ...httpOptions,\r\n headers: this._mergeHeaders(this._defaultOptions.headers, httpOptions.headers),\r\n method: method,\r\n url: url\r\n };\r\n }\r\n\r\n private _mergeHeaders(originalHeaders: Headers, overrideHeaders?: Headers): Headers {\r\n const headers = new Headers(originalHeaders);\r\n\r\n if (overrideHeaders !== undefined) {\r\n overrideHeaders.forEach((val, key) => headers.set(key, val));\r\n }\r\n\r\n return headers;\r\n }\r\n}\r\n","export enum HttpHeader {\r\n Csrf = \"X-CSRF-Token\"\r\n}\r\n","import { createGuid } from \"@pjs/utilities\";\r\nimport { HttpHeader } from \"../../enums/HttpHeader\";\r\nimport { IHttpInterceptor } from \"../../interfaces/IHttpInterceptor\";\r\nimport { CsrfCookie } from \"../csrf-cookie/CsrfCookie\";\r\nimport { IHttpOptions } from \"../http-service/interfaces/IHttpOptions\";\r\n\r\nexport const csrfInterceptor: IHttpInterceptor = {\r\n id: createGuid(),\r\n request: (httpOptions: IHttpOptions) => {\r\n httpOptions.headers.append(HttpHeader.Csrf, CsrfCookie.get());\r\n return httpOptions;\r\n }\r\n};\r\n","import { csrfInterceptor } from \"../http-interceptors/CsrfInterceptor.const\";\r\nimport { HttpService } from \"./HttpService\";\r\nimport { IHttpService } from \"./interfaces/IHttpService\";\r\n\r\nexport const httpService: IHttpService = new HttpService();\r\n\r\nhttpService.registerInterceptor(csrfInterceptor);\r\n","import { Observable, finalise, exhaustMap, last, takeWhile, timer, share, defer } from \"@pjs/observables\";\r\nimport { IAbortableHttpRequest } from \"../abortable-http-request/interfaces/IAbortableHttpRequest\";\r\nimport { IWebRequestConfig } from \"./interfaces/IWebRequestConfig\";\r\nimport { IResponseError } from \"./interfaces/IResponseError\";\r\nimport { WebRequestWithBody } from \"./types/WebRequestWithBody\";\r\nimport { IWebPollingRequestConfig } from \"./interfaces/IWebPollingRequestConfig\";\r\nimport { WebRequest } from \"./types/WebRequest\";\r\n\r\nexport class WebRequestFactory {\r\n public static createGet(config: IWebRequestConfig): WebRequest {\r\n return WebRequestFactory._createRequestWithoutBody(config, \"get\");\r\n }\r\n\r\n public static createDelete(config: IWebRequestConfig): WebRequest {\r\n return WebRequestFactory._createRequestWithoutBody(config, \"delete\");\r\n }\r\n\r\n public static createPut(config: IWebRequestConfig): WebRequestWithBody {\r\n return WebRequestFactory._createRequestWithBody(config, \"put\");\r\n }\r\n\r\n public static createPatch(config: IWebRequestConfig): WebRequestWithBody {\r\n return WebRequestFactory._createRequestWithBody(config, \"patch\");\r\n }\r\n\r\n public static createPost(config: IWebRequestConfig): WebRequestWithBody {\r\n return WebRequestFactory._createRequestWithBody(config, \"post\");\r\n }\r\n\r\n public static createPolledGet(config: IWebPollingRequestConfig): WebRequest {\r\n return (urlParams: TParams): Observable => {\r\n let abortablePromise: IAbortableHttpRequest;\r\n const url = config.url(urlParams);\r\n\r\n return timer(0, config.interval).pipe(\r\n exhaustMap(() => {\r\n abortablePromise = config.http.get(url);\r\n return abortablePromise.then(config.responseMapper, (error) => WebRequestFactory._handleResponseError(error, config.errorMapper));\r\n }),\r\n takeWhile(config.takeWhile, true),\r\n last(),\r\n finalise(() => abortablePromise.abort()),\r\n share()\r\n );\r\n };\r\n }\r\n\r\n private static _createRequestWithBody(\r\n config: IWebRequestConfig,\r\n httpMethod: \"post\" | \"patch\" | \"put\"\r\n ): WebRequestWithBody {\r\n return (bodyData: TBody, urlParams: TParams): Observable => {\r\n let abortableRequest: IAbortableHttpRequest;\r\n\r\n return defer>(() => {\r\n abortableRequest = config.http[httpMethod](config.url(urlParams), bodyData);\r\n return abortableRequest.then(config.responseMapper, (error) => WebRequestFactory._handleResponseError(error, config.errorMapper));\r\n }).pipe(\r\n finalise(() => abortableRequest.abort()),\r\n share()\r\n );\r\n };\r\n }\r\n\r\n private static _createRequestWithoutBody(config: IWebRequestConfig, method: \"get\" | \"delete\"): WebRequest {\r\n return (urlParams: TParams): Observable => {\r\n let abortableRequest: IAbortableHttpRequest;\r\n\r\n return defer>(() => {\r\n const url = config.url(urlParams);\r\n abortableRequest = config.http[method](url);\r\n return abortableRequest.then(config.responseMapper, (error) => WebRequestFactory._handleResponseError(error, config.errorMapper));\r\n }).pipe(\r\n finalise(() => abortableRequest.abort()),\r\n share()\r\n );\r\n };\r\n }\r\n\r\n private static async _handleResponseError(error: Response | Error, mapper: (error: Response) => Promise): Promise {\r\n if (error instanceof Response) {\r\n throw await mapper(error);\r\n }\r\n throw error;\r\n }\r\n}\r\n",null,null,null,"// eslint-disable-next-line @typescript-eslint/no-empty-function\r\nexport const noop = (): void => {};\r\n","import { INumberFormatter } from \"./interfaces/INumberFormatter\";\r\n\r\nexport class NumberFormatter implements INumberFormatter {\r\n private readonly _numberFormatter: Intl.NumberFormat;\r\n private _groupSeparator: RegExp | null = null;\r\n private _decimal: string = \"\";\r\n private _decimalCheck: RegExp | null = null;\r\n\r\n constructor(languageCode: string) {\r\n this._numberFormatter = new Intl.NumberFormat(languageCode);\r\n this._setSeparators();\r\n }\r\n\r\n public formatNumber(value: number): string {\r\n return this._numberFormatter.format(value);\r\n }\r\n\r\n /**\r\n * Warning: Languages that don't make use of western digits are not currently supported!\r\n */\r\n public parseNumber(value: string): number {\r\n if (this._decimalCheck !== null && this._decimalCheck.test(value)) {\r\n return NaN;\r\n }\r\n\r\n let newValue = this._groupSeparator !== null ? value.replace(this._groupSeparator, \"\") : value;\r\n newValue = newValue.replace(this._decimal, \".\");\r\n return Number(newValue);\r\n }\r\n\r\n private _setSeparators(): void {\r\n const parts = this._numberFormatter.formatToParts(12345678910.42);\r\n let groupSeparator = \"\";\r\n\r\n for (const part of parts) {\r\n if (part.type === \"group\" && this._groupSeparator === null) {\r\n groupSeparator = part.value.replace(/\\s/g, \"s\");\r\n this._groupSeparator = new RegExp(`\\\\${groupSeparator}(?!\\\\${groupSeparator})`, \"g\");\r\n } else if (part.type === \"decimal\" && this._decimal === \"\") {\r\n this._decimal = part.value;\r\n this._decimalCheck = new RegExp(`(?:\\\\${part.value}(?=\\\\${groupSeparator}))|(?:\\\\${groupSeparator}\\\\${part.value})(?![\\\\${part.value}\\\\${groupSeparator}])`);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import { INumberFormatter } from \"./interfaces/INumberFormatter\";\r\n\r\nexport const invalidNumberFormatter: INumberFormatter = {\r\n formatNumber: (): string => {\r\n throw new Error(\"Invalid NumberFormatter, language not configured!\");\r\n },\r\n parseNumber: (): number => {\r\n throw new Error(\"Invalid NumberFormatter, language not configured!\");\r\n }\r\n};\r\n","import { DeepPartial } from \"@pjs/utilities\";\r\nimport { i18n } from \"i18next\";\r\nimport { noop } from \"../../utils/noop\";\r\nimport { AsyncResolver } from \"../../interfaces/AsyncResolver\";\r\nimport { SingularPaths } from \"../../types/SingularPaths\";\r\nimport { PluralPaths } from \"../../types/PluralPaths\";\r\nimport { PluralProperties } from \"../../types/PluralProperties\";\r\nimport { ResourceLoader } from \"../resource-loader/ResourceLoader\";\r\nimport { NumberFormatter } from \"../number-formatter/NumberFormatter\";\r\nimport { invalidNumberFormatter } from \"../number-formatter/InvalidNumberFormatter\";\r\nimport { INumberFormatter } from \"../number-formatter/interfaces/INumberFormatter\";\r\nimport { I18nSetNamespace } from \"./enums/I18nSetNamespace\";\r\nimport { I18nInterpolationProperties } from \"./types/I18nInterpolationProperties\";\r\nimport { II18nSet } from \"./interfaces/II18nSet\";\r\n\r\nexport class I18nSet> implements II18nSet {\r\n protected readonly _i18next: i18n;\r\n protected readonly _resourceLoader: ResourceLoader>;\r\n private _numberFormatter: INumberFormatter;\r\n private _defaultLanguage: string = \"\";\r\n private _language: string = \"\";\r\n\r\n constructor(\r\n i18nextFactory: i18n,\r\n escapeValue: boolean = true,\r\n formatParser?: (languageCode: string, value: any, format: string) => string\r\n ) {\r\n this._i18next = i18nextFactory.createInstance({\r\n contextSeparator: \"^\",\r\n defaultNS: \"\",\r\n fallbackLng: \"\",\r\n initImmediate: true,\r\n interpolation: {\r\n escapeValue: escapeValue,\r\n format: (value, format) => {\r\n if (formatParser !== undefined && format !== undefined) {\r\n return formatParser(this._i18next.language, value, format);\r\n }\r\n\r\n if (typeof value === \"string\") {\r\n return value;\r\n }\r\n\r\n return \"\";\r\n },\r\n skipOnVariables: false\r\n },\r\n pluralSeparator: \"__\",\r\n resources: {},\r\n returnDetails: false,\r\n returnObjects: false\r\n });\r\n\r\n this._i18next.init().catch(noop);\r\n this._resourceLoader = new ResourceLoader>(this._addResourceToI18next.bind(this));\r\n this._numberFormatter = invalidNumberFormatter;\r\n }\r\n\r\n public add(languageCode: string, resolver: AsyncResolver>): this {\r\n this._resourceLoader.add(I18nSetNamespace.String, languageCode, resolver);\r\n return this;\r\n }\r\n\r\n public getLanguage(): string {\r\n return this._language;\r\n }\r\n\r\n public getDefaultLanguage(): string {\r\n return this._defaultLanguage;\r\n }\r\n\r\n public setDefaultLanguage(languageCode: string): this {\r\n this._defaultLanguage = languageCode;\r\n this._i18next.options.fallbackLng = languageCode;\r\n return this;\r\n }\r\n\r\n public setLanguage(languageCode: string): this {\r\n this._language = languageCode;\r\n this._i18next.changeLanguage(languageCode).catch(noop);\r\n this._numberFormatter = languageCode !== \"\" ? new NumberFormatter(languageCode) : invalidNumberFormatter;\r\n return this;\r\n }\r\n\r\n public changeLanguage(languageCode: string): Promise {\r\n const currentLanguage = this.getLanguage();\r\n return this.setLanguage(languageCode)\r\n .load()\r\n .catch((error) => {\r\n this.setLanguage(currentLanguage);\r\n throw error;\r\n });\r\n }\r\n\r\n public getString(key: SingularPaths, properties?: I18nInterpolationProperties): string {\r\n return this._i18next.t(`${I18nSetNamespace.String}:${key}`, \"\", properties) as string;\r\n }\r\n\r\n public getPluralString

(key: PluralPaths, properties: PluralProperties

): string {\r\n return this._i18next.t(`${I18nSetNamespace.String}:${key}`, \"\", properties) as string;\r\n }\r\n\r\n public load(languageCode: string = this._i18next.language): Promise {\r\n if (this._i18next.options.fallbackLng !== languageCode) {\r\n return this._resourceLoader.load(this._i18next.options.fallbackLng as string).finally(() => {\r\n return this._resourceLoader.load(languageCode);\r\n });\r\n }\r\n\r\n return this._resourceLoader.load(languageCode);\r\n }\r\n\r\n public formatNumber(value: number): string {\r\n return this._numberFormatter.formatNumber(value);\r\n }\r\n\r\n public parseNumber(value: string): number {\r\n return this._numberFormatter.parseNumber(value);\r\n }\r\n\r\n private _addResourceToI18next(languageCode: string, namespace: string, resource: DeepPartial): void {\r\n this._i18next.addResourceBundle(languageCode, namespace, resource);\r\n }\r\n}\r\n","import { i18n } from \"i18next\";\r\nimport { II18nResourceSet } from \"../i18n-set/interfaces/II18nResourceSet\";\r\nimport { I18nSet } from \"../i18n-set/I18nSet\";\r\nimport { II18nSet } from \"../i18n-set/interfaces/II18nSet\";\r\nimport { II18nManager } from \"./interfaces/II18nManager\";\r\n\r\nexport class I18nManager implements II18nManager {\r\n public readonly i18nextFactory: i18n;\r\n private _defaultLanguage: string = \"\";\r\n private _language: string = \"\";\r\n private readonly _i18nSetMap: Map>> = new Map();\r\n\r\n constructor(i18nextFactory: i18n) {\r\n this.i18nextFactory = i18nextFactory;\r\n }\r\n\r\n public addSet(id: string, set: II18nResourceSet>): this {\r\n this._i18nSetMap.set(id, set);\r\n return this;\r\n }\r\n\r\n public createSet>(id: string, escapeValue?: boolean): II18nSet {\r\n const i18nSet = new I18nSet(this.i18nextFactory, escapeValue);\r\n\r\n i18nSet.setDefaultLanguage(this._defaultLanguage).setLanguage(this._language);\r\n\r\n this._i18nSetMap.set(id, i18nSet);\r\n return i18nSet;\r\n }\r\n\r\n public getLanguage(): string {\r\n return this._language;\r\n }\r\n\r\n public getDefaultLanguage(): string {\r\n return this._defaultLanguage;\r\n }\r\n\r\n public setDefaultLanguage(languageCode: string): this {\r\n this._defaultLanguage = languageCode;\r\n this._i18nSetMap.forEach((i18nSet) => i18nSet.setDefaultLanguage(languageCode));\r\n\r\n return this;\r\n }\r\n\r\n public setLanguage(languageCode: string): this {\r\n this._language = languageCode;\r\n this._i18nSetMap.forEach((i18nSet) => i18nSet.setLanguage(languageCode));\r\n\r\n return this;\r\n }\r\n\r\n public async load(languageCode?: string): Promise {\r\n const promises: Array> = [];\r\n this._i18nSetMap.forEach((i18nSet) => promises.push(i18nSet.load(languageCode)));\r\n await Promise.all(promises);\r\n }\r\n\r\n public changeLanguage(languageCode: string): Promise {\r\n const promises: Array> = [];\r\n this._i18nSetMap.forEach((i18nSet) => promises.push(i18nSet.changeLanguage(languageCode)));\r\n return Promise.all(promises)\r\n .then(() => {\r\n this._language = languageCode;\r\n })\r\n .catch((error) => {\r\n this.setLanguage(this._language);\r\n throw error;\r\n });\r\n }\r\n}\r\n","import i18next from \"i18next\";\r\nimport { I18nManager } from \"./I18nManager\";\r\nimport { II18nManager } from \"./interfaces/II18nManager\";\r\n\r\nexport const i18nManager: II18nManager = new I18nManager(i18next);\r\n","export enum I18nSetNamespace {\r\n String = \"string\"\r\n}","import { AsyncResolver } from \"../../interfaces/AsyncResolver\";\r\nimport { INamespaceAsyncResource } from \"./interfaces/INamespaceAsyncResource\";\r\n\r\nexport class ResourceLoader {\r\n private readonly _resources: Map>> = new Map();\r\n private readonly _resourceResolvedCallback: (languageCode: string, namespace: string, resourceData: T) => void;\r\n\r\n constructor(resourceResolved: (languageCode: string, namespace: string, resourceData: T) => void) {\r\n this._resourceResolvedCallback = resourceResolved;\r\n }\r\n\r\n public add(namespace: string, languageCode: string, resolver: AsyncResolver): void {\r\n const resourceLoaderItem = this._getResourceLoaderItem(languageCode);\r\n resourceLoaderItem.push({\r\n namespace: namespace,\r\n resolver: resolver\r\n });\r\n }\r\n\r\n public load(languageCode: string): Promise {\r\n const resourceItem = this._resources.get(languageCode);\r\n if (resourceItem === undefined) {\r\n return Promise.resolve();\r\n }\r\n\r\n return this._loadAsyncResources(languageCode, resourceItem);\r\n }\r\n\r\n private _getResourceLoaderItem(languageCode: string): Array> {\r\n let resourceItem = this._resources.get(languageCode);\r\n\r\n if (resourceItem === undefined) {\r\n resourceItem = [];\r\n this._resources.set(languageCode, resourceItem);\r\n }\r\n\r\n return resourceItem;\r\n }\r\n\r\n private async _loadAsyncResources(languageCode: string, resourceItems: Array>): Promise {\r\n const promises = resourceItems.map((resource) => {\r\n return resource\r\n .resolver()\r\n .then((resourceData) => this._resourceResolvedCallback(languageCode, resource.namespace, resourceData))\r\n .catch((error) => {\r\n resourceItems.push(resource);\r\n throw error;\r\n });\r\n });\r\n\r\n resourceItems.length = 0;\r\n await Promise.all(promises);\r\n }\r\n}\r\n","import { AsyncResolver } from \"../interfaces/AsyncResolver\";\r\nimport { AsyncImportResolver } from \"../interfaces/AsyncImportResolver\";\r\nimport { IJsonStringResource } from \"../interfaces/IJsonStringResource\";\r\n\r\nexport function withImport(resolver: AsyncImportResolver): AsyncResolver {\r\n return () => resolver().then((r) => r.default);\r\n}\r\n","import { Subject } from \"rxjs\";\r\n\r\n/**\r\n * A limited Subject type used for verbose Observable cleanup with operators such as takeUntil\r\n * The `send` method wraps all necessary logic to emit to a takeUntil and complete the Observable.\r\n */\r\nexport class KillSignal extends Subject {\r\n private _isClosed: boolean = false;\r\n private _isTerminated: boolean = false;\r\n\r\n public complete(): void {\r\n this._isClosed = true;\r\n super.complete();\r\n }\r\n\r\n public send(): void {\r\n this.next();\r\n this.complete();\r\n this._isTerminated = true;\r\n }\r\n\r\n public isClosed(): boolean {\r\n return this._isClosed;\r\n }\r\n\r\n public isTerminated(): boolean {\r\n return this._isTerminated;\r\n }\r\n}\r\n","import { useRef } from \"react\";\r\nimport { AnyClass } from \"./types/AnyClass\";\r\n\r\nexport const useClassRef = (classType: T, ...args: ConstructorParameters): InstanceType => {\r\n const classRef = useRef | null>(null);\r\n\r\n if (classRef.current === null) {\r\n classRef.current = new classType(...args);\r\n }\r\n\r\n return classRef.current as InstanceType;\r\n};\r\n","import { useRef } from \"react\";\r\n\r\nexport const useFactoryRef = ) => any>(func: T, ...args: Parameters): ReturnType => {\r\n const classRef = useRef | null>(null);\r\n\r\n if (classRef.current === null) {\r\n classRef.current = func(...args);\r\n }\r\n\r\n return classRef.current as ReturnType;\r\n};\r\n","import { EffectCallback, useEffect } from \"react\";\r\n\r\nexport const useOnMount = (callback: EffectCallback): void => {\r\n useEffect(callback, []);\r\n};\r\n","import { useEffect } from \"react\";\r\n\r\nexport const useOnUnmount = (callback: () => void): void => {\r\n useEffect(() => {\r\n return callback;\r\n }, []);\r\n};\r\n","import { EffectCallback, useEffect, useRef } from \"react\";\r\nimport { DependencyArray } from \"./types/DependencyArray\";\r\n\r\n/**\r\n * When ANY of the provided dependencies change, the callback is invoked after the current React render cycle fully\r\n * completes and a browser repaint has occurred.\r\n *\r\n * By default this hook will not fire during the initial component mount, this can be changed by setting the runOnMount flag to true\r\n */\r\nexport const useOnValueChange = (callback: EffectCallback, dependencies: DependencyArray, runOnMount: boolean = false): void => {\r\n if (runOnMount) {\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n useEffect(callback, dependencies);\r\n return;\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n const hasMounted = useRef(false);\r\n\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n useEffect(() => {\r\n if (hasMounted.current === false) {\r\n hasMounted.current = true;\r\n return;\r\n }\r\n\r\n callback();\r\n }, dependencies);\r\n};\r\n","export const richTextConfig = {\r\n licenseKey: \"\"\r\n};\r\n","import { RefObject } from \"react\";\r\n\r\nexport const blockHyperlinkClick = (event: MouseEvent, elementRef: RefObject): void => {\r\n if (event.ctrlKey || event.metaKey) {\r\n return;\r\n }\r\n\r\n const target = event.target as Element;\r\n if (target.tagName === \"A\") {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n let parent = target.parentElement;\r\n while (parent !== null && parent !== elementRef.current) {\r\n if (parent.tagName === \"A\") {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n parent = parent.parentElement;\r\n }\r\n};\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`:root{--base-editor-border-thickness:var(--layout-border-thickness-default);--base-editor-top-border-thickness:var(--layout-border-thickness-default);--base-editor-outline-thickness:var(--layout-border-thickness-standout);--base-editor-padding:var(--layout-padding-form-element);--base-editor-min-height:auto}.rt-base-editor__editor-placeholder-container{--placeholder-text:\"\";display:contents}.rt-base-editor__text-area:not(.ck-focused):not(:focus):before{content:var(--placeholder-text);pointer-events:none;position:absolute}.rt-base-editor__text-area:empty:after{content:\" \";display:inline-block}.rt-base-editor__editor-placeholder-container .rt-base-editor__text-area{border:solid var(--base-editor-border-thickness)var(--colour-border);border-top:solid var(--base-editor-top-border-thickness)var(--colour-border);padding:var(--base-editor-padding);min-height:var(--base-editor-min-height)}.rt-base-editor__toolbar-shortcut-text{display:none}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{min-width:0;display:flex}ppmarker{opacity:0;white-space:nowrap;width:0;height:0;line-height:0;display:inline;overflow:hidden}`);","import { injectCss } from \"../../../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`:root{--ck-focus-ring:var(--layout-border-thickness-standout)solid var(--colour-action-outlined-border-focused);--ck-color-focus-border:var(--colour-action-outlined-border-focused);--ck-focus-outer-shadow:none;--ck-color-toolbar-border:var(--colour-border);--ck-color-toolbar-background:var(--colour-background);--ck-color-button-default-background:var(--colour-action-outlined-background-default);--ck-color-button-default-active-background:var(--colour-action-outlined-background-focused);--ck-color-button-default-disabled-background:var(--colour-action-outlined-background-disabled);--ck-color-button-default-hover-background:var(--colour-action-outlined-background-hover);--ck-color-button-on-disabled-background:var(--colour-action-outlined-background-disabled);--ck-color-button-on-background:var(--colour-action-menu-active);--ck-color-button-on-hover-background:var(--colour-action-menu-active);--ck-color-button-on-active-background:var(--colour-action-menu-active);--ck-color-button-on-color:var(--colour-body-text);--ck-color-list-button-on-background:var(--colour-action-menu-active);--ck-color-list-button-on-background-focus:var(--colour-action-menu-active);--ck-color-list-button-on-text:var(--colour-body-text);--ck-color-list-button-hover-background:var(--colour-action-outlined-background-hover);--ck-color-split-button-hover-background:var(--colour-action-outlined-background-hover);--ck-color-split-button-hover-border:var(--colour-action-outlined-border-hover);--ck-drop-shadow:var(--effect-elevation-inline);--ck-color-base-foreground:var(--colour-background);--ck-color-base-background:var(--colour-background);--ck-color-base-border:var(--colour-border);--ck-color-base-text:var(--colour-body-text);--ck-color-text:var(--colour-body-text);--ck-color-base-error:var(--colour-danger);--ck-color-button-save:var(--colour-success);--ck-color-button-cancel:var(--colour-danger);--ck-color-dropdown-panel-background:var(--colour-background);--ck-color-dropdown-panel-border:var(--colour-border);--ck-color-input-border:var(--colour-input-border-default);--ck-color-input-background:var(--colour-input-background-default);--ck-color-input-error-border:var(--colour-danger);--ck-color-input-text:var(--colour-input-text-default);--ck-color-input-disabled-background:var(--colour-input-background-disabled);--ck-color-input-disabled-border:var(--colour-input-border-disabled);--ck-color-input-disabled-text:var(--colour-input-text-disabled);--ck-color-list-background:var(--colour-background);--ck-color-panel-background:var(--colour-background);--ck-color-panel-border:var(--colour-border);--ck-form-header-height:3.8rem;--ck-character-grid-tile-size:2.4rem;--ck-dropdown-boundary-width:280px;--ck-color-tooltip-background:var(--colour-static-label-background);--ck-color-tooltip-text:var(--colour-text-on-accent);--ck-font-size-base:var(--font-size-body);--ck-line-height-base:var(--font-line-height-body);--ck-font-face:var(--font-family-default)}.ck.ck-content.ck-editor__editable.ck-editor__editable_inline:not(:focus){outline:none}.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable){border:solid var(--base-editor-border-thickness)var(--colour-border);border-top:solid var(--base-editor-top-border-thickness)var(--colour-border);outline:var(--base-editor-outline-thickness)solid var(--colour-action-outlined-border-focused);outline-offset:calc(var(--layout-border-thickness-default)*-1);box-shadow:unset}.ck.ck-editor__editable_inline>:last-child{margin-bottom:unset}.ck.ck-editor__editable_inline>:first-child{margin-top:unset}.ck.ck-editor__editable.ck-editor__editable_inline.ck-rounded-corners{border-radius:0}.ck.ck-toolbar.ck-rounded-corners{border-bottom-right-radius:0;border-bottom-left-radius:0}.ck.ck-button.ck-disabled,a.ck.ck-button.ck-disabled{color:var(--colour-icon-fill-disabled);pointer-events:none}.ck-dropdown__panel{scrollbar-gutter:stable}.ck.ck-list{padding:0}.ck-dropdown__panel .ck.ck-list__item{min-width:12em}.ck.ck-list__item .ck-button.ck-on:focus:not(.ck-switchbutton):not(.ck-disabled){border-color:var(--colour-input-border-focused)}.ck.ck-button{border:var(--layout-border-thickness-standout)solid transparent;transition:none}.ck-button svg{pointer-events:none}.ck.ck-list__item .ck-button{min-height:var(--layout-action-accessible-min-height)}.ck.ck-list__item .ck-button .ck-button__label{line-height:1}.ck-fontsize-option{overflow:hidden}.ck-button.ck-heading_heading2 .ck-button__label,.ck-button.ck-heading_heading3 .ck-button__label,.ck-button.ck-heading_heading4 .ck-button__label{font-size:unset}.ck-button.ck-heading_heading2,.ck-button.ck-heading_heading3,.ck-button.ck-heading_heading4{font-weight:var(--font-weight-regular);line-height:var(--font-line-height-heading)}.ck-button.ck-heading_heading2{font-size:var(--font-size-h2)}.ck-button.ck-heading_heading3{font-size:var(--font-size-h3)}.ck-button.ck-heading_heading4{font-size:var(--font-size-h4)}.ck-color-grid .ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered{margin-bottom:var(--layout-margin-between-buttons)}.ck-color-grid .ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered:not(:focus):not(:hover){box-shadow:none}.ck-color-grid .ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered:last-of-type{margin-bottom:0}.ck-special-characters-navigation .ck-dropdown__panel-visible{max-height:calc(var(--ck-dropdown-height) - var(--ck-form-header-height));overflow-y:auto}.ck.ck-dialog.ck-special-characters{max-width:100%}.ck.ck-character-grid{box-sizing:border-box;scrollbar-gutter:stable;max-width:none;overflow:auto}.ck.ck-character-grid .ck-character-grid__tiles{grid-template-columns:repeat(auto-fit,minmax(var(--ck-character-grid-tile-size),1fr))}.ck.ck-character-grid .ck-dropdown__panel{scrollbar-gutter:auto}.ck.ck-character-grid,.ck.ck-special-characters-navigation,.ck.ck-character-info{max-width:100%}.ck.ck-dialog-overlay{position:static}.ck.ck-dialog{z-index:calc(var(--layer-context-overlay) - 1)}.ck.ck-dialog>.ck-form__header .ck-form__header__label{font-size:var(--font-size-h4);font-weight:var(--font-weight-regular);margin:0}.ck-special-characters .ck-character-categories .ck-labeled-field-view__input-wrapper>.ck-label{display:none}@media (max-width:490px){:root{--ck-dropdown-max-width:calc(100vw - 10px)}.ck-toolbar__items .ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item,.ck-dropdown__panel .ck.ck-list__item{min-width:16rem}.ck-toolbar .ck-dropdown.ck-heading-dropdown .ck-button_with-text.ck-dropdown__button{padding-left:.2rem;padding-right:.2rem}.ck-toolbar .ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:clamp(4rem,18vw,9rem)}}@media (max-width:400px){.ck-toolbar .ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:clamp(4rem,11.5vw,9rem)}}@media (orientation:landscape) and (max-height:400px){.ck.ck-dialog.ck-special-characters{overflow-y:auto}.ck.ck-special-characters .ck.ck-dialog__content .ck.ck-character-grid{max-height:none}}`);","import { FunctionComponent, MutableRefObject, useId, useRef } from \"react\";\r\nimport { useOnMount, useOnUnmount, useOnValueChange } from \"@pjs/react-utilities\";\r\nimport { richTextI18n } from \"../i18n/RichTextI18n.const\";\r\nimport { CKEditorPlaceholder } from \"../editor/CKEditorPlaceholder\";\r\nimport { IEditor } from \"../editor/interfaces/IEditor\";\r\nimport { blockHyperlinkClick } from \"../../utils/block-hyperlink-click/BlockHyperlinkClick.function\";\r\nimport { IBaseEditorProps } from \"./interfaces/IBaseEditorProps\";\r\nimport \"./styles/base-editor.css\";\r\nimport \"./styles/ckeditor-overrides.css\";\r\n\r\nexport const BaseEditor: FunctionComponent = (props) => {\r\n const editorContainerRef = useRef(null);\r\n const editorPlaceholderContainerRef = useRef(null);\r\n const editor: MutableRefObject = useRef(null);\r\n const toolbarShortcutId = useId();\r\n const shortcutText = richTextI18n.getString(\"editor.shortcutText\");\r\n\r\n useOnMount(() => {\r\n if (editorContainerRef.current === null || editorPlaceholderContainerRef.current === null) {\r\n return;\r\n }\r\n\r\n editor.current = props.factory(\r\n editorContainerRef,\r\n props.toolbarRef,\r\n editorPlaceholderContainerRef,\r\n props.content,\r\n props.onChange,\r\n props.config,\r\n props.onToolbarDisplayChange\r\n );\r\n\r\n const placeholder = CKEditorPlaceholder.doesEditorHaveContent(props.content) ? \"\" : props.config.placeholder;\r\n editorPlaceholderContainerRef.current.style.setProperty(\"--placeholder-text\", `\"${placeholder}\"`);\r\n editorContainerRef.current.addEventListener(\"click\", (e) => blockHyperlinkClick(e, editorContainerRef));\r\n\r\n if (props.autoFocus) {\r\n editorContainerRef.current.focus();\r\n }\r\n });\r\n\r\n useOnUnmount(() => {\r\n editor.current?.destroy();\r\n });\r\n\r\n useOnValueChange(() => {\r\n editor.current?.setData(props.content);\r\n }, [props.content]);\r\n\r\n const label = props.ariaLabel !== undefined ? `${props.ariaLabel} ${shortcutText}` : undefined;\r\n const labelledBy = props.ariaLabelledBy !== undefined ? `${props.ariaLabelledBy} ${toolbarShortcutId}` : undefined;\r\n const className = `rt-base-editor__text-area rt-content-font-styles${props.className !== undefined ? ` ${props.className}` : \"\"}`;\r\n return (\r\n

\r\n \r\n {labelledBy !== undefined && (\r\n \r\n {shortcutText}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n","import { noop } from \"@pjs/utilities\";\r\nimport { IEditor } from \"../../editor/interfaces/IEditor\";\r\n\r\nexport function autoEnable(editorController: IEditor): () => void {\r\n editorController.enable();\r\n return noop;\r\n}\r\n","export const shortcutKeysExcludeList: ReadonlyArray = [\r\n \"enter\",\r\n \"shift+enter\",\r\n \"esc\",\r\n \"arrowup\",\r\n \"arrowdown\",\r\n \"arrowleft\",\r\n \"arrowright\",\r\n \"alt+0\",\r\n \"tab\",\r\n \"shift+tab\",\r\n \"space\"\r\n];\r\n","import { Keys, ShortcutKeys, IShortcutDescriptor, IShortcutDescriptorGroup } from \"@pjs/core-ui\";\r\nimport { KeystrokeInfoCategory } from \"@pebblepad/ckeditor\";\r\nimport { richTextI18n } from \"../../../i18n/RichTextI18n.const\";\r\nimport { shortcutKeysExcludeList } from \"../ShortcutKeysExcludeList.const\";\r\n\r\nexport const mapEditorKeysToShortcut = (keys: Map): IShortcutDescriptorGroup => {\r\n const newGroup: IShortcutDescriptorGroup = {\r\n description: richTextI18n.getString(\"editor_usv.shortcut_keys_group\"),\r\n shortcuts: []\r\n };\r\n\r\n for (const category of keys.values()) {\r\n for (const group of category.groups.values()) {\r\n for (const keyStroke of group.keystrokes) {\r\n if (typeof keyStroke.keystroke === \"string\") {\r\n if (!isKeyExcluded(keyStroke.keystroke)) {\r\n const shortCut: IShortcutDescriptor = {\r\n keys: createKeys(keyStroke.keystroke),\r\n description: keyStroke.label\r\n };\r\n\r\n newGroup.shortcuts.push(shortCut);\r\n }\r\n\r\n continue;\r\n }\r\n\r\n processKeystrokeArray(\r\n newGroup,\r\n keyStroke.label,\r\n keyStroke.keystroke.flatMap((keystroke) => keystroke)\r\n );\r\n }\r\n }\r\n }\r\n\r\n return newGroup;\r\n};\r\n\r\nconst processKeystrokeArray = (newGroup: IShortcutDescriptorGroup, label: string, keystrokes: Array): void => {\r\n if (!isKeyExcluded(keystrokes[0])) {\r\n const shortCut: IShortcutDescriptor = {\r\n keys: createKeys(keystrokes[0]),\r\n description: label\r\n };\r\n\r\n newGroup.shortcuts.push(shortCut);\r\n }\r\n\r\n keystrokes.splice(0, 1);\r\n\r\n for (const combo of keystrokes) {\r\n if (!isKeyExcluded(combo)) {\r\n const shortCut: IShortcutDescriptor = {\r\n keys: createKeys(combo),\r\n description: richTextI18n.getString(\"editor_usv.alternate_key_combo\", { label: label })\r\n };\r\n\r\n newGroup.shortcuts.push(shortCut);\r\n }\r\n }\r\n};\r\n\r\nconst createKeys = (keystroke: string): ShortcutKeys => {\r\n const parts = keystroke.split(\"+\");\r\n const shortcut: Array = [];\r\n\r\n for (const part of parts) {\r\n if (part.toLowerCase() === \"ctrl\") {\r\n shortcut.push(navigator.userAgent.includes(\"Mac\") ? richTextI18n.getString(\"editor_usv.command\") : richTextI18n.getString(\"editor_usv.control\"));\r\n } else if (part.toLowerCase() === \"shift\") {\r\n shortcut.push(Keys.Shift.toLowerCase());\r\n } else {\r\n shortcut.push(part.toLowerCase());\r\n }\r\n }\r\n\r\n return shortcut as ShortcutKeys;\r\n};\r\n\r\nconst isKeyExcluded = (key: string): boolean => {\r\n return shortcutKeysExcludeList.includes(key.toLowerCase());\r\n};\r\n","import { Keys, createShortcutManagerInstance, shortcutManager, IShortcutDescriptorGroup, launchShortcutViewer } from \"@pjs/core-ui\";\r\nimport { IEditor } from \"../../../editor/interfaces/IEditor\";\r\nimport { richTextI18n } from \"../../../i18n/RichTextI18n.const\";\r\nimport { mapEditorKeysToShortcut } from \"./MapEditorKeysToShortcuts.function\";\r\n\r\nexport const displayShortcuts = (editor: IEditor): (() => void) => {\r\n const shortcutCallback = (evt: KeyboardEvent): void => {\r\n const editorInstance = editor.getInstance();\r\n\r\n if (editorInstance !== null) {\r\n evt.stopPropagation();\r\n\r\n const activeShortcuts: Array = shortcutManager.getActiveShortcuts().sort((a, b) => {\r\n return a.description.localeCompare(b.description);\r\n });\r\n\r\n activeShortcuts.unshift(mapEditorKeysToShortcut(editorInstance.accessibility.keystrokeInfos));\r\n\r\n launchShortcutViewer(editor.sourceElement, activeShortcuts);\r\n }\r\n };\r\n\r\n const editorShortcutManager = createShortcutManagerInstance(editor.sourceElement);\r\n const removeEditorStack = editorShortcutManager.addStack();\r\n\r\n editorShortcutManager.add(\r\n [\r\n {\r\n keys: [Keys.Control, \"/\"],\r\n callback: shortcutCallback,\r\n description: richTextI18n.getString(\"editor_usv.trigger_description\")\r\n }\r\n ],\r\n richTextI18n.getString(\"editor_usv.trigger_group_label\")\r\n );\r\n\r\n return (): void => {\r\n editorShortcutManager.disableListeners();\r\n removeEditorStack();\r\n };\r\n};\r\n","import { IEditor } from \"../editor/interfaces/IEditor\";\r\nimport { IEditorCache } from \"./interfaces/IEditorCache\";\r\n\r\nexport class EditorCache implements IEditorCache {\r\n private readonly _maxEditors: number;\r\n private readonly _editors: Set = new Set();\r\n\r\n constructor(maxEditors: number) {\r\n this._maxEditors = maxEditors;\r\n }\r\n\r\n public add(newEditorToCache: IEditor): void {\r\n if (this._editors.has(newEditorToCache)) {\r\n this._editors.delete(newEditorToCache);\r\n }\r\n\r\n if (this._editors.size === this._maxEditors) {\r\n this._removeLeastRecentlyUsed();\r\n }\r\n\r\n this._editors.add(newEditorToCache);\r\n }\r\n\r\n public remove(editor: IEditor): void {\r\n this._editors.delete(editor);\r\n }\r\n\r\n public has(editor: IEditor): boolean {\r\n return this._editors.has(editor);\r\n }\r\n\r\n private _removeLeastRecentlyUsed(): void {\r\n const addedLeastRecently = this._editors.keys().next().value;\r\n\r\n if (addedLeastRecently !== undefined) {\r\n addedLeastRecently.disable();\r\n this._editors.delete(addedLeastRecently);\r\n }\r\n }\r\n}\r\n","import { isAndroid, isIphoneLike, isIpadLike } from \"@pjs/utilities\";\r\nimport { EditorCache } from \"./EditorCache\";\r\n\r\nconst editorCount = isAndroid || isIphoneLike || isIpadLike ? 4 : 8;\r\n\r\nexport const editorCacheInstance = new EditorCache(editorCount);\r\n","import { DecoupledEditor } from \"@pebblepad/ckeditor\";\r\nimport { Subscription } from \"@pjs/observables\";\r\nimport { IEditor } from \"../../editor/interfaces/IEditor\";\r\nimport { EditorEnabledState } from \"../../editor/types/EditorEnabledState\";\r\nimport { IEditorCache } from \"../../editor-cache/interfaces/IEditorCache\";\r\nimport { ToolbarDisplay } from \"../../editor/ToolbarDisplay\";\r\n\r\nexport class LimitedInstancesCoordinator {\r\n private readonly _cache: IEditorCache;\r\n private readonly _editor: IEditor;\r\n private readonly _onFirstFocusBound: () => void;\r\n private readonly _onSourceElementBlurBound: () => void;\r\n private readonly _onEditorChangeDataBound: () => void;\r\n private readonly _onEditorChangeFocusBound: (_eventInfo: unknown, name: string, value: boolean) => void;\r\n private readonly _enabledSubscription: Subscription;\r\n\r\n private _pendingEnableTimer: number = 0;\r\n private _pendingDisableTimer: number = 0;\r\n\r\n constructor(editor: IEditor, cache: IEditorCache) {\r\n this._cache = cache;\r\n this._editor = editor;\r\n this._onFirstFocusBound = this._onFirstFocus.bind(this);\r\n this._onSourceElementBlurBound = this._onSourceElementBlur.bind(this);\r\n this._onEditorChangeDataBound = this._onEditorChangeData.bind(this);\r\n this._onEditorChangeFocusBound = this._onEditorFocusChange.bind(this);\r\n\r\n editor.sourceElement.addEventListener(\"focus\", this._onFirstFocusBound);\r\n editor.sourceElement.addEventListener(\"blur\", this._onSourceElementBlurBound);\r\n\r\n this._enabledSubscription = editor.enabled.subscribe((editorState: EditorEnabledState) => {\r\n if (editorState.isEnabled) {\r\n this._onEditorEnabled(editorState);\r\n return;\r\n }\r\n this._onEditorDisabled();\r\n });\r\n }\r\n\r\n public destroy(): void {\r\n this._cache.remove(this._editor);\r\n\r\n clearTimeout(this._pendingEnableTimer);\r\n clearTimeout(this._pendingDisableTimer);\r\n\r\n this._editor.sourceElement.removeEventListener(\"focus\", this._onFirstFocusBound);\r\n this._editor.sourceElement.removeEventListener(\"blur\", this._onSourceElementBlurBound);\r\n this._enabledSubscription.unsubscribe();\r\n }\r\n\r\n private _onFirstFocus(): void {\r\n this._pendingEnableTimer = window.setTimeout(() => {\r\n this._editor.enable();\r\n this._editor.sourceElement.removeEventListener(\"focus\", this._onFirstFocusBound);\r\n }, 0);\r\n }\r\n\r\n private _onSourceElementBlur(): void {\r\n if (this._editor.getInstance() === null) {\r\n clearTimeout(this._pendingEnableTimer);\r\n this._onEditorBlurred();\r\n }\r\n }\r\n\r\n private _onEditorEnabled(state: EditorEnabledState): void {\r\n const editor = state.editor as DecoupledEditor;\r\n (this._editor.toolbar as ToolbarDisplay).show();\r\n\r\n editor.model.document.once(\"change:data\", this._onEditorChangeDataBound);\r\n editor.ui.focusTracker.on(\"change:isFocused\", this._onEditorChangeFocusBound);\r\n this._editor.sourceElement.removeEventListener(\"blur\", this._onSourceElementBlurBound);\r\n }\r\n\r\n private _onEditorDisabled(): void {\r\n this._editor.sourceElement.addEventListener(\"focus\", this._onFirstFocusBound);\r\n this._editor.sourceElement.addEventListener(\"blur\", this._onSourceElementBlurBound);\r\n\r\n this._cache.remove(this._editor);\r\n }\r\n\r\n private _onEditorBlurred(): void {\r\n this._pendingDisableTimer = window.setTimeout(() => {\r\n if (this._cache.has(this._editor) && this._editor.toolbar !== null) {\r\n this._editor.toolbar.hide();\r\n return;\r\n }\r\n\r\n this._editor.disable();\r\n }, 0);\r\n }\r\n\r\n private _onEditorFocusChange(_eventInfo: unknown, _name: string, value: boolean): void {\r\n if (!value) {\r\n this._onEditorBlurred();\r\n return;\r\n }\r\n\r\n clearTimeout(this._pendingDisableTimer);\r\n if (this._editor.toolbar !== null) {\r\n this._editor.toolbar.show();\r\n }\r\n if (this._cache.has(this._editor)) {\r\n this._cache.add(this._editor);\r\n }\r\n\r\n return;\r\n }\r\n\r\n private _onEditorChangeData(): void {\r\n this._cache.add(this._editor);\r\n }\r\n}\r\n","import { IEditor } from \"../../editor/interfaces/IEditor\";\r\nimport { editorCacheInstance } from \"../../editor-cache/editorCacheInstance.const\";\r\nimport { BehaviourCleanup } from \"../types/BehaviourCleanup\";\r\nimport { LimitedInstancesCoordinator } from \"./LimitedInstancesCoordinator\";\r\n\r\nexport function limitInstances(editor: IEditor): BehaviourCleanup {\r\n const editorCoordinator = new LimitedInstancesCoordinator(editor, editorCacheInstance);\r\n return () => {\r\n editorCoordinator.destroy();\r\n };\r\n}\r\n","import { filter } from \"@pjs/observables\";\r\nimport { IEditor } from \"../../editor/interfaces/IEditor\";\r\nimport { EditorEnabledState } from \"../../editor/types/EditorEnabledState\";\r\n\r\nexport function persistentEditorToolbar(editor: IEditor): () => void {\r\n const onEnabled = (enabledState: EditorEnabledState): void => {\r\n if (editor.toolbar === null || enabledState.editor === null) {\r\n return;\r\n }\r\n\r\n editor.toolbar.show();\r\n };\r\n\r\n const onEnableSubscription = editor.enabled.pipe(filter((state: EditorEnabledState) => state.isEnabled)).subscribe(onEnabled);\r\n\r\n return () => {\r\n onEnableSubscription.unsubscribe();\r\n };\r\n}\r\n","export enum EventType {\r\n Blur = \"blur\",\r\n Input = \"input\",\r\n ContextMenu = \"contextmenu\",\r\n DragStart = \"dragstart\",\r\n KeyDown = \"keydown\",\r\n KeyUp = \"keyup\",\r\n MouseDown = \"mousedown\",\r\n MouseUp = \"mouseup\",\r\n TouchEnd = \"touchend\",\r\n TouchStart = \"touchstart\"\r\n}\r\n","import { DropdownView, EventInfo } from \"@pebblepad/ckeditor\";\r\nimport { createToolbarDropdownPositioner, createToolbarOverflowMenuPositioner, isVisuallyHidden, Placement } from \"@pjs/core-ui\";\r\nimport { finalise, first, KillSignal, Subscription, switchMap, takeUntil, tap } from \"@pjs/observables\";\r\n\r\nconst priorityHighest = { priority: \"highest\" } as const;\r\nconst priorityLowest = { priority: \"lowest\" } as const;\r\n\r\nexport class CkePanelPositionHandler {\r\n public static handle(\r\n toolbarElement: HTMLElement | null,\r\n dropdownView: DropdownView,\r\n placement: Placement,\r\n boundaryElement: HTMLElement | null,\r\n killSignal: KillSignal,\r\n isOverflowMenu: boolean\r\n ): void {\r\n const referenceElement = dropdownView.buttonView.element as HTMLElement;\r\n const floatingElement = dropdownView.panelView.element as HTMLElement;\r\n\r\n const boundary = boundaryElement ?? document.body;\r\n\r\n let subscription: Subscription | null = null;\r\n\r\n dropdownView.on(\"change:isOpen\", CkePanelPositionHandler._blockPanelFocus, priorityHighest);\r\n\r\n dropdownView.on(\r\n \"change:isOpen\",\r\n (_evt, _name, value: boolean) => {\r\n if (!value) {\r\n if (subscription !== null) {\r\n subscription.unsubscribe();\r\n }\r\n\r\n return;\r\n }\r\n\r\n const observable = isOverflowMenu\r\n ? createToolbarOverflowMenuPositioner(referenceElement, floatingElement, boundary, toolbarElement, placement)\r\n : createToolbarDropdownPositioner(referenceElement, floatingElement, boundary, placement);\r\n\r\n subscription = observable\r\n .pipe(\r\n first(),\r\n tap(() => {\r\n CkePanelPositionHandler._resetPanelState(dropdownView);\r\n CkePanelPositionHandler._setPanelSizeCssVariables(dropdownView, boundary);\r\n }),\r\n switchMap(() => observable),\r\n tap(() => {\r\n CkePanelPositionHandler._setScrollbarState(dropdownView);\r\n CkePanelPositionHandler._setPanelSizeCssVariables(dropdownView, boundary);\r\n }),\r\n takeUntil(killSignal),\r\n finalise(() => CkePanelPositionHandler._clearPanelStyles(dropdownView))\r\n )\r\n .subscribe();\r\n },\r\n priorityLowest\r\n );\r\n }\r\n\r\n private static _blockPanelFocus(evt: EventInfo, _name: string, value: boolean): void {\r\n if (value) {\r\n const dropdownView = evt.source as unknown as DropdownView;\r\n (dropdownView.panelView.element as HTMLElement).style.visibility = \"hidden\";\r\n }\r\n }\r\n\r\n private static _setPanelSizeCssVariables(dropdownView: DropdownView, boundary: HTMLElement): void {\r\n const panelElement = dropdownView.panelView.element as HTMLElement;\r\n\r\n panelElement.style.setProperty(\"--ck-dropdown-height\", `${panelElement.offsetHeight}px`);\r\n panelElement.style.setProperty(\"--ck-dropdown-boundary-width\", `${boundary.clientWidth}px`);\r\n }\r\n\r\n private static _clearPanelStyles(dropdownView: DropdownView): void {\r\n if (dropdownView.panelView.element !== undefined && dropdownView.panelView.element !== null) {\r\n dropdownView.panelView.element.removeAttribute(\"style\");\r\n }\r\n }\r\n\r\n private static _setScrollbarState(dropdownView: DropdownView): void {\r\n const element: HTMLElement = dropdownView.panelView.element as HTMLElement;\r\n if (element.style.maxHeight !== \"\") {\r\n element.style.overflowY = \"auto\";\r\n return;\r\n }\r\n element.style.removeProperty(\"overflow-y\");\r\n }\r\n\r\n private static _resetPanelState(dropdownView: DropdownView): void {\r\n const selectedItem = (dropdownView.panelView.element as HTMLElement).querySelector(\".ck-on\");\r\n const element: HTMLElement = dropdownView.panelView.element as HTMLElement;\r\n\r\n element.style.visibility = \"\";\r\n\r\n CkePanelPositionHandler._setScrollbarState(dropdownView);\r\n\r\n if (selectedItem !== null && !isVisuallyHidden(selectedItem)) {\r\n selectedItem.focus();\r\n } else {\r\n dropdownView.panelView.focus();\r\n }\r\n }\r\n}\r\n","export const preventDefault = (event: Event): void => {\r\n event.preventDefault();\r\n};\r\n","import { Observable, Subject } from \"@pjs/observables\";\r\nimport { EventType } from \"./enums/EventType\";\r\nimport { IActiveInteractionState } from \"./interfaces/IActiveInteractionState\";\r\nimport { IInteractionTracker } from \"./interfaces/IInteractionTracker\";\r\n\r\nexport class InteractionTracker implements IInteractionTracker {\r\n private static readonly _passiveOption: { passive: boolean } = { passive: true };\r\n private readonly _editorElement: HTMLElement;\r\n private readonly _onContentChangeBound: () => void = this._onContentChange.bind(this);\r\n private readonly _onKeyDownBound: (event: KeyboardEvent) => void = this._onKeyDown.bind(this);\r\n private readonly _onMouseDownBound: () => void = this._onMouseDown.bind(this);\r\n private readonly _onTouchStartBound: () => void = this._onTouchStart.bind(this);\r\n private readonly _onResetEventFiredBound: () => void = this._onResetEventFired.bind(this);\r\n private readonly _onKeyUpBound: () => void = this._onKeyUp.bind(this);\r\n private readonly _onMouseUpBound: () => void = this._onMouseUp.bind(this);\r\n private readonly _onTouchEndBound: () => void = this._onTouchEnd.bind(this);\r\n private _hasInsertedContent: boolean = false;\r\n\r\n private readonly _activeEventState: IActiveInteractionState = {\r\n keyDown: false,\r\n mouseDown: false,\r\n touchStart: false\r\n };\r\n\r\n private _interactionsEnded: Subject = new Subject();\r\n\r\n constructor(editorElement: HTMLElement) {\r\n this._editorElement = editorElement;\r\n }\r\n\r\n public startTracking(): void {\r\n this._removeAllListeners();\r\n this._resetAllState();\r\n this._addInteractionListeners();\r\n }\r\n\r\n public stopTracking(): void {\r\n this._removeAllListeners();\r\n this._resetAllState();\r\n\r\n this._interactionsEnded.complete();\r\n this._interactionsEnded = new Subject();\r\n }\r\n\r\n public onInteractionsEnd(): Observable {\r\n return this._interactionsEnded;\r\n }\r\n\r\n public hasInsertedContent(): boolean {\r\n return this._hasInsertedContent;\r\n }\r\n\r\n public hasEventsInProgress(): boolean {\r\n return this._activeEventState.keyDown || this._activeEventState.mouseDown || this._activeEventState.touchStart;\r\n }\r\n\r\n private _onResetEventFired(): void {\r\n this._resetActiveEventState();\r\n this._removeAllListeners();\r\n this._addInteractionListeners();\r\n\r\n this._interactionsEnded.next();\r\n }\r\n\r\n private _onContentChange(): void {\r\n this._hasInsertedContent = true;\r\n }\r\n\r\n private _onKeyDown(event: KeyboardEvent): void {\r\n if (!event.getModifierState(event.key)) {\r\n document.addEventListener(EventType.KeyUp, this._onKeyUpBound, InteractionTracker._passiveOption);\r\n this._editorElement.removeEventListener(EventType.KeyDown, this._onKeyDownBound);\r\n this._activeEventState.keyDown = true;\r\n this._addResetListeners();\r\n }\r\n }\r\n\r\n private _onKeyUp(): void {\r\n document.removeEventListener(EventType.KeyUp, this._onKeyUpBound);\r\n this._editorElement.addEventListener(EventType.KeyDown, this._onKeyDownBound, InteractionTracker._passiveOption);\r\n this._activeEventState.keyDown = false;\r\n this._onEventEnd();\r\n }\r\n\r\n private _onMouseDown(): void {\r\n document.addEventListener(EventType.MouseUp, this._onMouseUpBound, InteractionTracker._passiveOption);\r\n this._editorElement.removeEventListener(EventType.MouseDown, this._onMouseDownBound);\r\n this._activeEventState.mouseDown = true;\r\n this._addResetListeners();\r\n }\r\n\r\n private _onMouseUp(): void {\r\n document.removeEventListener(EventType.MouseUp, this._onMouseUpBound);\r\n this._editorElement.addEventListener(EventType.MouseDown, this._onMouseDownBound, InteractionTracker._passiveOption);\r\n this._activeEventState.mouseDown = false;\r\n this._onEventEnd();\r\n }\r\n\r\n private _onTouchStart(): void {\r\n document.addEventListener(EventType.TouchEnd, this._onTouchEndBound, InteractionTracker._passiveOption);\r\n this._editorElement.removeEventListener(EventType.TouchStart, this._onTouchStartBound);\r\n this._activeEventState.touchStart = true;\r\n this._addResetListeners();\r\n }\r\n\r\n private _onTouchEnd(): void {\r\n document.removeEventListener(EventType.TouchEnd, this._onTouchEndBound);\r\n this._editorElement.addEventListener(EventType.TouchStart, this._onTouchStartBound, InteractionTracker._passiveOption);\r\n this._activeEventState.touchStart = false;\r\n this._onEventEnd();\r\n }\r\n\r\n private _addInteractionListeners(): void {\r\n this._editorElement.addEventListener(EventType.KeyDown, this._onKeyDownBound, InteractionTracker._passiveOption);\r\n this._editorElement.addEventListener(EventType.MouseDown, this._onMouseDownBound, InteractionTracker._passiveOption);\r\n this._editorElement.addEventListener(EventType.TouchStart, this._onTouchStartBound, InteractionTracker._passiveOption);\r\n this._editorElement.addEventListener(EventType.Input, this._onContentChangeBound, InteractionTracker._passiveOption);\r\n }\r\n\r\n private _addResetListeners(): void {\r\n this._editorElement.addEventListener(EventType.Blur, this._onResetEventFiredBound, true);\r\n document.addEventListener(EventType.DragStart, this._onResetEventFiredBound, true);\r\n document.addEventListener(EventType.ContextMenu, this._onResetEventFiredBound, true);\r\n }\r\n\r\n private _removeResetListeners(): void {\r\n this._editorElement.removeEventListener(EventType.Blur, this._onResetEventFiredBound, true);\r\n document.removeEventListener(EventType.DragStart, this._onResetEventFiredBound, true);\r\n document.removeEventListener(EventType.ContextMenu, this._onResetEventFiredBound, true);\r\n }\r\n\r\n private _removeAllListeners(): void {\r\n this._editorElement.removeEventListener(EventType.KeyDown, this._onKeyDownBound);\r\n this._editorElement.removeEventListener(EventType.MouseDown, this._onMouseDownBound);\r\n this._editorElement.removeEventListener(EventType.TouchStart, this._onTouchStartBound);\r\n this._editorElement.removeEventListener(EventType.Input, this._onContentChangeBound);\r\n\r\n document.removeEventListener(EventType.KeyUp, this._onKeyUpBound, true);\r\n document.removeEventListener(EventType.MouseUp, this._onMouseUpBound, true);\r\n document.removeEventListener(EventType.TouchEnd, this._onTouchEndBound, true);\r\n\r\n this._removeResetListeners();\r\n }\r\n\r\n private _onEventEnd(): void {\r\n if (!this.hasEventsInProgress()) {\r\n this._removeAllListeners();\r\n this._addInteractionListeners();\r\n\r\n this._interactionsEnded.next();\r\n }\r\n }\r\n\r\n private _resetActiveEventState(): void {\r\n this._activeEventState.keyDown = false;\r\n this._activeEventState.mouseDown = false;\r\n this._activeEventState.touchStart = false;\r\n }\r\n\r\n private _resetAllState(): void {\r\n this._resetActiveEventState();\r\n this._hasInsertedContent = false;\r\n }\r\n}\r\n","import { createGuid } from \"@pjs/utilities\";\r\nimport { ISelectionMarkerRange } from \"./interfaces/ISelectionMarkerRange\";\r\n\r\nexport class PpMarkerRange implements ISelectionMarkerRange {\r\n public static readonly tagName: string = \"ppmarker\";\r\n public readonly start: HTMLElement;\r\n public readonly end: HTMLElement | null;\r\n\r\n constructor(hasEnd: boolean = false) {\r\n this.start = PpMarkerRange._createElement();\r\n this.end = hasEnd ? PpMarkerRange._createElement() : null;\r\n }\r\n\r\n private static _createElement(): HTMLElement {\r\n const element = document.createElement(PpMarkerRange.tagName);\r\n element.id = createGuid();\r\n return element;\r\n }\r\n}\r\n","export class SlowProcessReporter {\r\n private readonly _onReport: (elapsedTime: number) => void;\r\n private readonly _minimumElapsedTime: number;\r\n private readonly _throttleTime: number;\r\n private _startTime: number = 0;\r\n private _lastTriggeredTime: number = 0;\r\n\r\n constructor(onReport: (elapsedTime: number) => void, minimumElapsedTime: number, throttleTime: number) {\r\n this._onReport = onReport;\r\n this._minimumElapsedTime = minimumElapsedTime;\r\n this._throttleTime = throttleTime;\r\n }\r\n\r\n public start(): void {\r\n this._startTime = Date.now();\r\n }\r\n\r\n public stop(): void {\r\n if (this._lastTriggeredTime + this._throttleTime >= this._startTime) {\r\n return;\r\n }\r\n\r\n const endTime = Date.now();\r\n const elapsedTime = endTime - this._startTime;\r\n if (elapsedTime <= this._minimumElapsedTime) {\r\n return;\r\n }\r\n\r\n this._lastTriggeredTime = endTime;\r\n this._onReport(elapsedTime);\r\n }\r\n\r\n public cancel(): void {\r\n this._startTime = Infinity;\r\n }\r\n}\r\n","export function generateElapsedTimeEventName(elapsedTime: number): string {\r\n const range = 500;\r\n const diff = elapsedTime / range;\r\n\r\n return diff % 1 === 0 ? `Elapsed ${diff * range}ms` : `Elapsed ${Math.floor(diff) * range}-${Math.ceil(diff) * range}ms`;\r\n}\r\n","import { exhaustMap, first, from, KillSignal, map, Observable, of, takeUntil, tap } from \"@pjs/observables\";\r\nimport { DecoupledEditor } from \"@pebblepad/ckeditor\";\r\nimport { noop, preventDefault } from \"@pjs/utilities\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { IEditorConfig } from \"../editor-factories/interfaces/IEditorConfig\";\r\nimport { InteractionTracker } from \"../editor-interactions/InteractionTracker\";\r\nimport { insertMarkerWithinContainerSelection } from \"../insert-marker-within-container-selection/InsertMarkerWithinContainerSelection.function\";\r\nimport { PpMarkerRange } from \"../pp-marker-range/PpMarkerRange\";\r\nimport { IEditorDataHandler } from \"../editor/interfaces/IEditorDataHandler\";\r\nimport { SlowProcessReporter } from \"../../utils/slow-process-reporter/SlowProcessReporter\";\r\nimport { generateElapsedTimeEventName } from \"../../utils/slow-process-reporter/GenerateElapsedTimeEventName.function\";\r\nimport { IEditorViewState } from \"./interfaces/IEditorViewState\";\r\nimport { ICKEditorAdapter } from \"./interfaces/ICKEditorAdapter\";\r\n\r\nexport class CKEditorAdapter implements ICKEditorAdapter {\r\n private readonly _interactionTracker: InteractionTracker;\r\n private readonly _sourceElement: HTMLElement;\r\n private readonly _killSignal: KillSignal;\r\n private readonly _slowStartupReporter: SlowProcessReporter;\r\n private _creationPromise: Promise | null;\r\n\r\n constructor(sourceElement: HTMLElement) {\r\n this._interactionTracker = new InteractionTracker(sourceElement);\r\n this._sourceElement = sourceElement;\r\n this._creationPromise = null;\r\n this._killSignal = new KillSignal();\r\n this._slowStartupReporter = new SlowProcessReporter(this._logSlowStartup.bind(this), 500, 5000);\r\n }\r\n\r\n private static _preventPaste(event: Event): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n event.stopImmediatePropagation();\r\n }\r\n\r\n public startEventTracking(): void {\r\n this.stopEventTracking();\r\n\r\n this._interactionTracker.startTracking();\r\n this._sourceElement.addEventListener(\"paste\", CKEditorAdapter._preventPaste);\r\n }\r\n\r\n public stopEventTracking(): void {\r\n this._interactionTracker.stopTracking();\r\n this._sourceElement.removeEventListener(\"paste\", CKEditorAdapter._preventPaste);\r\n }\r\n\r\n public load(editorConfig: IEditorConfig, dataHandler: IEditorDataHandler): Observable {\r\n this._creationPromise = this._createInstance(editorConfig);\r\n\r\n return from(this._creationPromise).pipe(\r\n exhaustMap((ckeInstance) => {\r\n const hasInteraction = this._interactionTracker.hasEventsInProgress();\r\n\r\n if (hasInteraction) {\r\n return this._interactionTracker.onInteractionsEnd().pipe(\r\n first(),\r\n map(() => ckeInstance)\r\n );\r\n }\r\n\r\n return of(ckeInstance);\r\n }),\r\n exhaustMap((ckeInstance) => this._finishSetup(ckeInstance, dataHandler)),\r\n tap(() => {\r\n this._creationPromise = null;\r\n this.stopEventTracking();\r\n }),\r\n takeUntil(this._killSignal)\r\n );\r\n }\r\n\r\n public destroy(): void {\r\n this.stopEventTracking();\r\n this._killSignal.send();\r\n this._enableInputEvents();\r\n\r\n if (this._creationPromise !== null) {\r\n this._creationPromise\r\n .then((ckeInstance) => {\r\n ckeInstance.destroy().catch(noop);\r\n\r\n const toolbar = ckeInstance.ui.view.toolbar.element;\r\n if (toolbar !== null && toolbar !== undefined) {\r\n toolbar.remove();\r\n }\r\n })\r\n .catch(noop);\r\n }\r\n }\r\n\r\n private _createInstance(editorConfig: IEditorConfig): Promise {\r\n const ckeInstance = new DecoupledEditor(this._sourceElement, editorConfig) as DecoupledEditor;\r\n ckeInstance.editing.view.disableObservers();\r\n\r\n return ckeInstance.initPlugins().then(() => ckeInstance);\r\n }\r\n\r\n private _finishSetup(ckeInstance: DecoupledEditor, dataHandler: IEditorDataHandler): Promise {\r\n const sourceElementHasFocus = document.activeElement === this._sourceElement;\r\n const userSelectionMarker = sourceElementHasFocus ? insertMarkerWithinContainerSelection(this._sourceElement) : null;\r\n const hasUserUpdatedContent = this._interactionTracker.hasInsertedContent();\r\n\r\n const initialDataToLoad = dataHandler.getData();\r\n let content = hasUserUpdatedContent || userSelectionMarker !== null ? this._sourceElement.innerHTML : initialDataToLoad;\r\n\r\n this._disableInputEvents();\r\n\r\n this._slowStartupReporter.start();\r\n ckeInstance.ui.init();\r\n\r\n return ckeInstance.data.init(content).then(() => {\r\n ckeInstance.fire(\"ready\");\r\n this._slowStartupReporter.stop();\r\n\r\n this._enableInputEvents();\r\n ckeInstance.editing.view.enableObservers();\r\n\r\n const latestDataToLoad = dataHandler.getData();\r\n if (!hasUserUpdatedContent && latestDataToLoad !== initialDataToLoad) {\r\n content = latestDataToLoad;\r\n ckeInstance.setData(content);\r\n }\r\n\r\n if (document.activeElement === this._sourceElement) {\r\n this._handleEditorFocus(this._sourceElement, ckeInstance);\r\n }\r\n\r\n if (userSelectionMarker !== null) {\r\n this._restoreSelection(ckeInstance, userSelectionMarker);\r\n }\r\n\r\n return { ckeInstance: ckeInstance, hasUserUpdatedContent: hasUserUpdatedContent };\r\n });\r\n }\r\n\r\n private _restoreSelection(ckeInstance: DecoupledEditor, userSelectionMarker: PpMarkerRange): void {\r\n ckeInstance.model.enqueueChange({ isUndoable: false }, (writer) => {\r\n const startMarker = ckeInstance.model.markers.get(userSelectionMarker.start.id);\r\n if (startMarker === null) {\r\n return;\r\n }\r\n\r\n const endMarker = userSelectionMarker.end !== null ? ckeInstance.model.markers.get(userSelectionMarker.end.id) : null;\r\n const startPosition = startMarker.getEnd();\r\n const endPosition = endMarker !== null ? endMarker.getStart() : undefined;\r\n const range = ckeInstance.editing.model.createRange(startPosition, endPosition);\r\n writer.setSelection(range);\r\n writer.removeMarker(startMarker.name);\r\n\r\n if (endMarker !== null) {\r\n writer.removeMarker(endMarker.name);\r\n }\r\n });\r\n }\r\n\r\n private _handleEditorFocus(editorContainer: HTMLElement, editor: DecoupledEditor): void {\r\n editorContainer.dispatchEvent(new FocusEvent(\"focus\"));\r\n editor.editing.view.focus();\r\n }\r\n\r\n private _disableInputEvents(): void {\r\n this._sourceElement.addEventListener(\"beforeinput\", preventDefault);\r\n this._sourceElement.addEventListener(\"mousedown\", preventDefault);\r\n this._sourceElement.addEventListener(\"touchstart\", preventDefault);\r\n this._sourceElement.addEventListener(\"keydown\", preventDefault);\r\n }\r\n\r\n private _enableInputEvents(): void {\r\n this._sourceElement.removeEventListener(\"beforeinput\", preventDefault);\r\n this._sourceElement.removeEventListener(\"mousedown\", preventDefault);\r\n this._sourceElement.removeEventListener(\"touchstart\", preventDefault);\r\n this._sourceElement.removeEventListener(\"keydown\", preventDefault);\r\n }\r\n\r\n private _logSlowStartup(elapsedTime: number): void {\r\n tracker.trackEvent(\"CKE5 Input\", \"Startup\", generateElapsedTimeEventName(elapsedTime), this._sourceElement.querySelectorAll(\"*\").length);\r\n }\r\n}\r\n","import { insertMarkerAroundRange } from \"../insert-marker-around-range/InsertMarkerAroundRange\";\r\nimport { isSelectionWithinContainer } from \"../is-selection-within-container/IsSelectionWithinContainer.function\";\r\nimport { PpMarkerRange } from \"../pp-marker-range/PpMarkerRange\";\r\n\r\nexport function insertMarkerWithinContainerSelection(container: HTMLElement): null | PpMarkerRange {\r\n const selection = window.getSelection();\r\n\r\n if (selection === null || selection.rangeCount === 0 || !isSelectionWithinContainer(selection, container)) {\r\n return null;\r\n }\r\n\r\n const range = selection.getRangeAt(0);\r\n\r\n const markerRange = new PpMarkerRange(!range.collapsed);\r\n\r\n insertMarkerAroundRange(markerRange, range);\r\n\r\n return markerRange;\r\n}\r\n","export function isSelectionWithinContainer(selection: Selection, element: HTMLElement): boolean {\r\n if (selection.rangeCount === 0) {\r\n return false;\r\n }\r\n\r\n return element.contains(selection.anchorNode) && element.contains(selection.focusNode);\r\n}\r\n","import { ISelectionMarkerRange } from \"../pp-marker-range/interfaces/ISelectionMarkerRange\";\r\n\r\nexport function insertMarkerAroundRange(marker: ISelectionMarkerRange, range: Range): void {\r\n range.insertNode(marker.start);\r\n range.setStartAfter(marker.start);\r\n\r\n if (!range.collapsed && marker.end !== null) {\r\n range.collapse(false);\r\n range.insertNode(marker.end);\r\n range.setEndBefore(marker.end);\r\n }\r\n}\r\n","const unsafeCharMap: Record = {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n '\"': \""\",\r\n \"&\": \"&\",\r\n \"'\": \"'\",\r\n \"<\": \"<\",\r\n \">\": \">\"\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n};\r\n\r\nconst replacer = (char: string): string => unsafeCharMap[char];\r\n\r\nexport function convertToHtmlSafeChars(value: string): string {\r\n return value.replace(/[<>\"'&]/g, replacer);\r\n}\r\n","import { IEditorPlaceholder } from \"./interfaces/IEditorPlaceholder\";\r\n\r\nexport class DefaultEditorPlaceholder implements IEditorPlaceholder {\r\n public active: boolean;\r\n private readonly _editorPlaceholderContainer: HTMLElement;\r\n private readonly _element: HTMLElement;\r\n private readonly _text: string;\r\n\r\n constructor(element: HTMLElement, editorPlaceholderContainer: HTMLElement, text: string) {\r\n this._element = element;\r\n this._editorPlaceholderContainer = editorPlaceholderContainer;\r\n this._text = text;\r\n const existingPlaceholder = this._element.dataset.editorPlaceholder;\r\n this.active = existingPlaceholder !== undefined && existingPlaceholder !== \"\";\r\n }\r\n\r\n public update(content: string): void {\r\n const hasContent = content !== \"\" && this._element.textContent !== null && this._element.textContent !== \"\";\r\n\r\n if (!hasContent && !this.active) {\r\n this.active = true;\r\n this._editorPlaceholderContainer.style.setProperty(\"--placeholder-text\", `\"${this._text}\"`);\r\n } else if (hasContent && this.active) {\r\n this.active = false;\r\n this._editorPlaceholderContainer.style.setProperty(\"--placeholder-text\", `\"\"`);\r\n }\r\n }\r\n}\r\n",null,"import { BehaviorSubject, distinctUntilChanged, Observable, skip } from \"@pjs/observables\";\r\nimport { IToolbarDisplay } from \"./interfaces/IToolbarDisplay\";\r\nimport { ToolbarDisplayState } from \"./enums/ToolbarDisplayState\";\r\n\r\nexport class ToolbarDisplay implements IToolbarDisplay {\r\n public readonly displayChange: Observable;\r\n\r\n private readonly _displaySubject: BehaviorSubject;\r\n private readonly _toolbarElement: HTMLElement;\r\n\r\n constructor(element: HTMLElement) {\r\n this._toolbarElement = element;\r\n this._toolbarElement.style.display = \"none\";\r\n\r\n this._displaySubject = new BehaviorSubject(ToolbarDisplayState.Hidden);\r\n\r\n this.displayChange = this._displaySubject.pipe(distinctUntilChanged(), skip(1));\r\n }\r\n\r\n public destroy(): void {\r\n this._displaySubject.next(ToolbarDisplayState.Hidden);\r\n this._displaySubject.complete();\r\n }\r\n\r\n public show(): void {\r\n this._displaySubject.next(ToolbarDisplayState.Shown);\r\n this._toolbarElement.style.removeProperty(\"display\");\r\n }\r\n\r\n public hide(): void {\r\n this._displaySubject.next(ToolbarDisplayState.Hidden);\r\n this._toolbarElement.style.display = \"none\";\r\n }\r\n}\r\n","import { IEditorDataHandler } from \"./interfaces/IEditorDataHandler\";\r\n\r\nexport class ElementDataHandler implements IEditorDataHandler {\r\n private readonly _element: HTMLElement;\r\n private _data: string;\r\n\r\n constructor(existingData: string, element: HTMLElement) {\r\n this._data = existingData;\r\n this._element = element;\r\n }\r\n\r\n public getData(): string {\r\n return this._data;\r\n }\r\n\r\n public setData(data: string): void {\r\n this._data = data;\r\n // eslint-disable-next-line no-unsanitized/property\r\n this._element.innerHTML = data;\r\n }\r\n\r\n public destroy(): void {\r\n /**/\r\n }\r\n}\r\n","import { DecoupledEditor } from \"@pebblepad/ckeditor\";\r\nimport { Debouncer, IDebouncer } from \"@pjs/utilities\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { SlowProcessReporter } from \"../../utils/slow-process-reporter/SlowProcessReporter\";\r\nimport { generateElapsedTimeEventName } from \"../../utils/slow-process-reporter/GenerateElapsedTimeEventName.function\";\r\nimport { IEditorDataHandler } from \"./interfaces/IEditorDataHandler\";\r\n\r\nexport class CKEditorDataHandler implements IEditorDataHandler {\r\n public static readonly debounceTime: number = 300;\r\n private static readonly _blurOptions: { capture: true; passive: true } = { capture: true, passive: true };\r\n private readonly _ckeInstance: DecoupledEditor;\r\n private readonly _debouncer: IDebouncer;\r\n private readonly _onChange: (value: string) => void;\r\n private readonly _onBlur: () => void;\r\n private readonly _slowWriteReporter: SlowProcessReporter;\r\n private readonly _slowReadReporter: SlowProcessReporter;\r\n private _data: string;\r\n\r\n constructor(existingData: string, ckeInstance: DecoupledEditor, onChange: (value: string) => void) {\r\n this._data = existingData;\r\n this._ckeInstance = ckeInstance;\r\n this._onChange = onChange;\r\n this._debouncer = new Debouncer(CKEditorDataHandler.debounceTime, () => this._updateData());\r\n this._onBlur = () => this._debouncer.flush();\r\n this._slowWriteReporter = new SlowProcessReporter(this._logSlowUpdate.bind(this, \"Writing data slowly\"), 500, 10000);\r\n this._slowReadReporter = new SlowProcessReporter(this._logSlowUpdate.bind(this, \"Reading data slowly\"), 400, 10000);\r\n\r\n this._ckeInstance.model.document.on(\"change:data\", this._debouncer.run);\r\n document.addEventListener(\"blur\", this._onBlur, CKEditorDataHandler._blurOptions);\r\n }\r\n\r\n public getData(): string {\r\n return this._data;\r\n }\r\n\r\n public setData(data: string): void {\r\n this._debouncer.cancel();\r\n this._data = data;\r\n\r\n this._slowWriteReporter.start();\r\n\r\n this._ckeInstance.model.document.off(\"change:data\", this._debouncer.run);\r\n this._ckeInstance.setData(data);\r\n this._ckeInstance.model.document.on(\"change:data\", this._debouncer.run);\r\n\r\n this._slowWriteReporter.stop();\r\n }\r\n\r\n public destroy(): void {\r\n this._debouncer.flush();\r\n document.removeEventListener(\"blur\", this._onBlur, CKEditorDataHandler._blurOptions);\r\n }\r\n\r\n private _updateData(): void {\r\n this._slowReadReporter.start();\r\n\r\n const data = this._ckeInstance.getData({ trim: \"none\" });\r\n this._data = data;\r\n\r\n this._slowReadReporter.stop();\r\n this._onChange(data);\r\n }\r\n\r\n private _logSlowUpdate(actionName: string, elapsedTime: number): void {\r\n tracker.trackEvent(\"CKE5 Input\", actionName, generateElapsedTimeEventName(elapsedTime), this._ckeInstance.sourceElement?.querySelectorAll(\"*\").length);\r\n }\r\n}\r\n","import { DecoupledEditor, ClipboardInputTransformationData, ClipboardPipeline } from \"@pebblepad/ckeditor\";\r\nimport { IHtmlStringParser } from \"@pjs/security\";\r\nimport { noop } from \"@pjs/utilities\";\r\nimport { concatMap, filter, from, map, Observable, pairwise, share, startWith, Subject, Subscription, takeUntil } from \"@pjs/observables\";\r\nimport { RefObject } from \"react\";\r\nimport { IEditorConfig } from \"../editor-factories/interfaces/IEditorConfig\";\r\nimport { CKEditorAdapter } from \"../editor-adapter/CKEditorAdapter\";\r\nimport { IEditorViewState } from \"../editor-adapter/interfaces/IEditorViewState\";\r\nimport { convertPlainTextToSemanticHtml } from \"../../utils/convert-plain-text-to-html/ConvertPlainTextToSemanticHtml.function\";\r\nimport { IEditor } from \"./interfaces/IEditor\";\r\nimport { EditorEnabledState } from \"./types/EditorEnabledState\";\r\nimport { CKEditorPlaceholder } from \"./CKEditorPlaceholder\";\r\nimport { DefaultEditorPlaceholder } from \"./DefaultEditorPlaceholder\";\r\nimport { IEditorPlaceholder } from \"./interfaces/IEditorPlaceholder\";\r\nimport { ToolbarDisplay } from \"./ToolbarDisplay\";\r\nimport { IToolbarDisplay } from \"./interfaces/IToolbarDisplay\";\r\nimport { IEditorDataHandler } from \"./interfaces/IEditorDataHandler\";\r\nimport { ElementDataHandler } from \"./ElementDataHandler\";\r\nimport { CKEditorDataHandler } from \"./CKEditorDataHandler\";\r\nimport { ToolbarDisplayState } from \"./enums/ToolbarDisplayState\";\r\n\r\nexport class Editor implements IEditor {\r\n public readonly sourceElement: HTMLElement;\r\n public readonly enabled: Observable;\r\n public readonly destruction: Observable;\r\n public readonly parser: IHtmlStringParser;\r\n public toolbar: IToolbarDisplay | null = null;\r\n\r\n private readonly _editorPlaceholderContainer: HTMLElement;\r\n private readonly _enabledStateSubject: Subject;\r\n private readonly _destruction: Subject;\r\n private readonly _onChange: (value: string) => void;\r\n private readonly _onToolbarDisplayChange: (toolbarState: ToolbarDisplayState, toolbarContainer: HTMLElement) => void;\r\n private readonly _editorConfig: IEditorConfig;\r\n private readonly _enabledSubscription: Subscription;\r\n private readonly _toolbarContainerRef: RefObject;\r\n private readonly _onEditorEnabledBound: (state: IEditorViewState | null) => void;\r\n private readonly _ckeAdapter: CKEditorAdapter;\r\n private readonly _placeholderText: string;\r\n private _placeholder: IEditorPlaceholder;\r\n private _ckeInstance: DecoupledEditor | null = null;\r\n private _dataHandler: IEditorDataHandler;\r\n\r\n constructor(\r\n config: IEditorConfig,\r\n editorContainer: RefObject,\r\n toolbarContainer: RefObject,\r\n editorPlaceholderContainer: RefObject,\r\n parser: IHtmlStringParser,\r\n onChange: (value: string) => void,\r\n onToolbarDisplayChange: (toolbarState: ToolbarDisplayState, toolbarContainer: HTMLElement) => void,\r\n placeholder: string\r\n ) {\r\n this.sourceElement = editorContainer.current as HTMLElement;\r\n this._toolbarContainerRef = toolbarContainer;\r\n this._editorPlaceholderContainer = editorPlaceholderContainer.current as HTMLElement;\r\n this.parser = parser;\r\n this._editorConfig = config;\r\n this._placeholderText = placeholder;\r\n\r\n this._enabledStateSubject = new Subject();\r\n this._destruction = new Subject();\r\n this.destruction = this._destruction.asObservable();\r\n this._ckeAdapter = new CKEditorAdapter(this.sourceElement);\r\n this._ckeAdapter.startEventTracking();\r\n\r\n this._onChange = onChange;\r\n this._onToolbarDisplayChange = onToolbarDisplayChange;\r\n this._onEditorEnabledBound = this._onEditorStateChange.bind(this);\r\n\r\n const enabled = this._getEnabledStateObservable();\r\n this.enabled = enabled.pipe(map(Editor._adapterStateToEnabledState));\r\n this._enabledSubscription = enabled.subscribe(this._onEditorEnabledBound);\r\n\r\n this._placeholder = new DefaultEditorPlaceholder(this.sourceElement, this._editorPlaceholderContainer, this._placeholderText);\r\n this._dataHandler = new ElementDataHandler(\"\", this.sourceElement);\r\n\r\n this._setData(config.initialData);\r\n }\r\n\r\n private static _adapterStateToEnabledState(state: IEditorViewState | null): EditorEnabledState {\r\n return state === null ? { editor: null, isEnabled: false } : { editor: state.ckeInstance, isEnabled: true };\r\n }\r\n\r\n public enable(): void {\r\n this._enabledStateSubject.next(true);\r\n }\r\n\r\n public disable(): void {\r\n this._ckeAdapter.startEventTracking();\r\n this._enabledStateSubject.next(false);\r\n }\r\n\r\n public destroy(): void {\r\n if (this._ckeInstance !== null) {\r\n this._cleanupEditor(this._ckeInstance).catch(noop);\r\n }\r\n\r\n this._destruction.next();\r\n this._destruction.complete();\r\n this._enabledSubscription.unsubscribe();\r\n this._enabledStateSubject.complete();\r\n this._ckeAdapter.destroy();\r\n }\r\n\r\n public getInstance(): DecoupledEditor | null {\r\n return this._ckeInstance;\r\n }\r\n\r\n public getData(): string {\r\n return this._dataHandler.getData();\r\n }\r\n\r\n public setData(data: string): void {\r\n if (data !== this.getData()) {\r\n this._setData(data);\r\n }\r\n }\r\n\r\n private _setData(data: string): void {\r\n const parsedData = data === \"\" ? data : this.parser.parseToString(data);\r\n this._dataHandler.setData(parsedData);\r\n this._placeholder.update(parsedData);\r\n }\r\n\r\n private _onEditorStateChange(state: IEditorViewState | null): void {\r\n let currentData = this._dataHandler.getData();\r\n\r\n if (state === null) {\r\n this._ckeInstance = null;\r\n this._dataHandler = new ElementDataHandler(currentData, this.sourceElement);\r\n this._placeholder = new DefaultEditorPlaceholder(this.sourceElement, this._editorPlaceholderContainer, this._placeholderText);\r\n return;\r\n }\r\n\r\n this._ckeInstance = state.ckeInstance;\r\n if (state.hasUserUpdatedContent) {\r\n currentData = this._ckeInstance.getData({ trim: \"none\" });\r\n this._onChange(currentData);\r\n }\r\n\r\n this._placeholder = new CKEditorPlaceholder(this._editorPlaceholderContainer, this._placeholderText);\r\n this._dataHandler = new CKEditorDataHandler(currentData, this._ckeInstance, (newData) => {\r\n this._placeholder.update(newData);\r\n this._onChange(newData);\r\n });\r\n\r\n this._ckeInstance.plugins.get(ClipboardPipeline).on(\"inputTransformation\", (_: unknown, clipboard: ClipboardInputTransformationData) => this._onPaste(clipboard));\r\n\r\n const toolbarElement = this._ckeInstance.ui.view.toolbar.element as HTMLElement;\r\n this.toolbar = new ToolbarDisplay(toolbarElement);\r\n const toolbarContainer = this._toolbarContainerRef.current as HTMLElement;\r\n this.toolbar.displayChange.subscribe((isDisplayed) => this._onToolbarDisplayChange(isDisplayed, toolbarContainer));\r\n (this._toolbarContainerRef.current as HTMLElement).appendChild(toolbarElement);\r\n }\r\n\r\n private _onPaste(clipboard: ClipboardInputTransformationData): void {\r\n const viewFragmentProcessor = (this._ckeInstance as DecoupledEditor).data.htmlProcessor;\r\n let htmlString = \"\";\r\n\r\n if (clipboard.dataTransfer.types.includes(\"text/html\")) {\r\n htmlString = viewFragmentProcessor.toData(clipboard.content);\r\n }\r\n\r\n if (htmlString === \"\" && clipboard.dataTransfer.types.includes(\"text/plain\")) {\r\n htmlString = convertPlainTextToSemanticHtml(clipboard.dataTransfer.getData(\"text/plain\"));\r\n }\r\n\r\n if (htmlString !== \"\") {\r\n clipboard.content = viewFragmentProcessor.toView(this.parser.parseToString(htmlString));\r\n }\r\n }\r\n\r\n private _getEnabledStateObservable(): Observable {\r\n return this._enabledStateSubject.pipe(\r\n startWith(false),\r\n pairwise(),\r\n filter(([previousValue, currentValue]) => previousValue !== currentValue),\r\n concatMap(([_, newEnabledState]: [boolean, boolean]) => this._toggleEditor(newEnabledState)),\r\n takeUntil(this._destruction),\r\n share()\r\n );\r\n }\r\n\r\n private _toggleEditor(shouldEnable: boolean): Observable {\r\n if (shouldEnable) {\r\n this._onToolbarDisplayChange(ToolbarDisplayState.Pending, this._toolbarContainerRef.current as HTMLElement);\r\n\r\n return this._ckeAdapter.load(this._editorConfig, this._dataHandler);\r\n }\r\n\r\n return from(this._cleanupEditor(this._ckeInstance as DecoupledEditor).then(() => null));\r\n }\r\n\r\n private _cleanupEditor(editor: DecoupledEditor): Promise {\r\n this._dataHandler.destroy();\r\n\r\n (editor.ui.view.toolbar.element as HTMLElement).remove();\r\n (this.toolbar as ToolbarDisplay).destroy();\r\n this.toolbar = null;\r\n this._ckeInstance = null;\r\n\r\n return editor.destroy();\r\n }\r\n}\r\n","import { convertToHtmlSafeChars } from \"./ConvertToHtmlSafeChars.function\";\r\n\r\nexport function convertPlainTextToSemanticHtml(value: string): string {\r\n return convertToHtmlSafeChars(value)\r\n .replace(/\\t/g, \"    \")\r\n .replace(/^[^\\S\\r\\n]/, \" \")\r\n .replace(/\\n([^\\n]+)(?=\\n|$)/g, \"

$1

\")\r\n .replace(/\\n/g, \"

 

\")\r\n .replace(/\\s\\s/g, \"  \")\r\n .replace(/\\s$/, \" \");\r\n}\r\n",null,"import { noop } from \"@pjs/utilities\";\r\nimport { tracker } from \"@pjs/analytics\";\r\nimport { ButtonView, DecoupledEditor, DropdownView, SplitButtonView, SpecialCharactersView } from \"@pebblepad/ckeditor\";\r\nimport { IEditor } from \"../../editor/interfaces/IEditor\";\r\nimport { IEditorFactoryConfig } from \"../../editor-factories/interfaces/IEditorFactoryConfig\";\r\nimport { IEditorConfig } from \"../../editor-factories/interfaces/IEditorConfig\";\r\n\r\nconst trackButton = (itemName: string, itemView: ButtonView | DropdownView): void => {\r\n const triggerElement = itemView.element as HTMLElement;\r\n triggerElement.addEventListener(\"click\", () => tracker.trackEvent(\"Ckeditor 5 toolbar\", \"click\", itemName));\r\n};\r\n\r\nconst trackDropdown = (itemName: string, itemView: ButtonView | DropdownView): void => {\r\n if (!(itemView instanceof DropdownView)) {\r\n return;\r\n }\r\n\r\n const panelElement = itemView.panelView.element as HTMLElement;\r\n panelElement.addEventListener(\"click\", (e) => {\r\n if (e.target !== null && (e.target as Element).closest(\"button\") !== null) {\r\n tracker.trackEvent(\"Ckeditor 5 toolbar\", \"click\", itemName);\r\n }\r\n });\r\n};\r\n\r\nconst trackSplitDropdown = (itemName: string, itemView: ButtonView | DropdownView): void => {\r\n trackDropdown(itemName, itemView);\r\n\r\n if (itemView instanceof DropdownView && itemView.buttonView instanceof SplitButtonView) {\r\n (itemView.buttonView.actionView.element as HTMLElement).addEventListener(\"click\", () => tracker.trackEvent(\"Ckeditor 5 toolbar\", \"click\", itemName));\r\n }\r\n};\r\n\r\nconst trackSpecialCharacters = (editor: DecoupledEditor): void => {\r\n if (!editor.plugins.has(\"Dialog\")) {\r\n return;\r\n }\r\n\r\n const plugin = editor.plugins.get(\"Dialog\");\r\n plugin.on(\"show\", () => {\r\n if (plugin.view === undefined || plugin.view.contentView === undefined) {\r\n return;\r\n }\r\n const specialCharactersView = plugin.view.contentView.children.first;\r\n if (specialCharactersView instanceof SpecialCharactersView) {\r\n specialCharactersView.gridView.on(\"execute\", () => {\r\n tracker.trackEvent(\"Ckeditor 5 toolbar\", \"click\", \"specialCharacters\");\r\n });\r\n }\r\n });\r\n};\r\n\r\nconst toolbarItemTrackers: Readonly void>> = {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n ParagraphIndent: trackDropdown,\r\n alignment: trackSplitDropdown,\r\n bold: trackButton,\r\n bulletedList: trackSplitDropdown,\r\n fontBackgroundColor: trackDropdown,\r\n fontColor: trackDropdown,\r\n fontFamily: trackDropdown,\r\n fontSize: trackDropdown,\r\n heading: trackDropdown,\r\n indent: trackButton,\r\n italic: trackButton,\r\n linker: trackButton,\r\n numberedList: trackSplitDropdown,\r\n outdent: trackButton,\r\n redo: trackButton,\r\n removeFormat: trackButton,\r\n strikethrough: trackButton,\r\n subscript: trackButton,\r\n superscript: trackButton,\r\n underline: trackButton,\r\n undo: trackButton\r\n};\r\n\r\nexport function trackToolbarItems(editor: IEditor, _: IEditorFactoryConfig): () => void {\r\n editor.enabled.subscribe((state) => {\r\n if (!state.isEnabled) {\r\n return;\r\n }\r\n\r\n const toolbarItemNames = (state.editor.config.get(\"toolbar\") as IEditorConfig[\"toolbar\"]).items;\r\n const toolbarButtonViews = state.editor.ui.view.toolbar.items;\r\n\r\n for (let i = 0; i < toolbarItemNames.length; i++) {\r\n const toolbarItem = toolbarButtonViews.get(i);\r\n\r\n if (toolbarItem instanceof DropdownView || toolbarItem instanceof ButtonView) {\r\n const toolbarItemName = toolbarItemNames[i];\r\n\r\n const toolbarItemTracker = toolbarItemTrackers[toolbarItemName];\r\n if (toolbarItemName === \"specialCharacters\") {\r\n trackSpecialCharacters(state.editor);\r\n continue;\r\n }\r\n\r\n if (toolbarItemTracker !== undefined) {\r\n toolbarItemTracker(toolbarItemName, toolbarItem);\r\n }\r\n }\r\n }\r\n });\r\n\r\n return noop;\r\n}\r\n","import { tracker } from \"@pjs/analytics\";\r\nimport { noop } from \"@pjs/utilities\";\r\nimport { SlowProcessReporter } from \"../../../utils/slow-process-reporter/SlowProcessReporter\";\r\nimport { Behaviour } from \"../types/Behaviour\";\r\nimport { generateElapsedTimeEventName } from \"../../../utils/slow-process-reporter/GenerateElapsedTimeEventName.function\";\r\n\r\nexport const slowPasteLogging: Behaviour = (editor) => {\r\n let nativePasteHandler = noop;\r\n\r\n editor.enabled.subscribe((enabledState) => {\r\n if (!enabledState.isEnabled) {\r\n editor.sourceElement.removeEventListener(\"paste\", nativePasteHandler);\r\n return;\r\n }\r\n\r\n const ckeInstance = enabledState.editor;\r\n const reportSlowPaste = (elapsedTime: number): void => {\r\n tracker.trackEvent(\"CKE5 Input\", \"Paste\", generateElapsedTimeEventName(elapsedTime), editor.sourceElement.querySelectorAll(\"*\").length);\r\n };\r\n\r\n const reporter = new SlowProcessReporter(reportSlowPaste, 1000, 10000);\r\n ckeInstance.editing.view.document.on(\"paste\", () => reporter.start(), { priority: \"highest\" });\r\n\r\n nativePasteHandler = () => reporter.stop();\r\n editor.sourceElement.addEventListener(\"paste\", nativePasteHandler, { passive: true });\r\n });\r\n\r\n return noop;\r\n};\r\n","import { tracker } from \"@pjs/analytics\";\r\nimport { noop } from \"@pjs/utilities\";\r\nimport { DecoupledEditor } from \"@pebblepad/ckeditor\";\r\nimport { SlowProcessReporter } from \"../../../utils/slow-process-reporter/SlowProcessReporter\";\r\nimport { Behaviour } from \"../types/Behaviour\";\r\nimport { generateElapsedTimeEventName } from \"../../../utils/slow-process-reporter/GenerateElapsedTimeEventName.function\";\r\n\r\nexport const slowUndoRedoLogging: Behaviour = (editor) => {\r\n editor.enabled.subscribe((enabledState) => {\r\n if (!enabledState.isEnabled) {\r\n return;\r\n }\r\n\r\n trackCommandExecutions(enabledState.editor);\r\n });\r\n\r\n return noop;\r\n};\r\n\r\nconst trackCommandExecutions = (editor: DecoupledEditor): void => {\r\n const reportSlowUndo = (elapsedTime: number): void => {\r\n tracker.trackEvent(\"CKE5 Input\", \"Undo/Redo\", generateElapsedTimeEventName(elapsedTime), editor.model.document.version);\r\n };\r\n\r\n const reportSlowBatchUndoRedo = (elapsedTime: number): void => {\r\n tracker.trackEvent(\"CKE5 Input\", \"Batched Undo/Redo\", generateElapsedTimeEventName(elapsedTime), editor.model.document.version);\r\n };\r\n\r\n const undoRedoReporter = new SlowProcessReporter(reportSlowUndo, 450, 10000);\r\n const batchReporter = new SlowProcessReporter(reportSlowBatchUndoRedo, 1000, 10000);\r\n\r\n const undoCommand = editor.commands.get(\"undo\");\r\n const redoCommand = editor.commands.get(\"redo\");\r\n\r\n const highestPriority = { priority: \"highest\" } as const;\r\n const lowestPriority = { priority: \"lowest\" } as const;\r\n const batchBufferPeriod = 350;\r\n\r\n let batchCount = 0;\r\n let lastExecutedTime = 0;\r\n\r\n const beforeExecute = (): void => {\r\n if (batchCount === 0) {\r\n batchReporter.start();\r\n } else if (lastExecutedTime + batchBufferPeriod <= Date.now()) {\r\n batchCount = 0;\r\n lastExecutedTime = 0;\r\n batchReporter.cancel();\r\n }\r\n\r\n undoRedoReporter.start();\r\n batchCount++;\r\n };\r\n\r\n const afterExecute = (): void => {\r\n lastExecutedTime = Date.now();\r\n if (batchCount === 3) {\r\n batchReporter.stop();\r\n batchCount = 0;\r\n }\r\n\r\n undoRedoReporter.stop();\r\n };\r\n\r\n if (undoCommand !== undefined) {\r\n undoCommand.on(\"execute\", beforeExecute, highestPriority);\r\n undoCommand.on(\"execute\", afterExecute, lowestPriority);\r\n }\r\n\r\n if (redoCommand !== undefined) {\r\n redoCommand.on(\"execute\", beforeExecute, highestPriority);\r\n redoCommand.on(\"execute\", afterExecute, lowestPriority);\r\n }\r\n};\r\n","import { noop } from \"@pjs/utilities\";\r\nimport { RefObject } from \"react\";\r\nimport { IEditor } from \"../../editor/interfaces/IEditor\";\r\nimport { IEditorFactoryConfig } from \"../../editor-factories/interfaces/IEditorFactoryConfig\";\r\nimport { Behaviour } from \"../types/Behaviour\";\r\n\r\n/**\r\n *\r\n * @param element\r\n * @param boundary\r\n * @param proposedElementX This X coordinate is RELATIVE to the boundary element, not absolute to the viewport\r\n * @param proposedElementY This Y coordinate is RELATIVE to the boundary element, not absolute to the viewport\r\n * @param positionElement Callback which is provided the new X and Y values for the element\r\n */\r\nfunction moveElementWithinBoundary(element: HTMLElement, boundary: HTMLElement, proposedElementX: number, proposedElementY: number): [number, number] {\r\n const boundaryRect = boundary.getBoundingClientRect();\r\n const elementRect = element.getBoundingClientRect();\r\n let finalX: number = proposedElementX;\r\n let finalY: number = proposedElementY;\r\n\r\n const elementRightEdge = proposedElementX + elementRect.width;\r\n\r\n if (elementRightEdge > boundary.clientWidth) {\r\n finalX = boundary.clientWidth - elementRect.width;\r\n\r\n // Should be prevented via css but in the event the dialog exceeds its container, we default x to 0\r\n if (finalX < 0) {\r\n finalX = 0;\r\n }\r\n }\r\n\r\n if (proposedElementX < 0) {\r\n finalX = 0;\r\n }\r\n\r\n if (proposedElementY < boundary.scrollTop) {\r\n finalY = boundary.scrollTop;\r\n }\r\n\r\n const boundaryVisibleBottom = boundary.scrollTop + boundaryRect.height;\r\n const elementBottomEdge = proposedElementY + elementRect.height;\r\n\r\n if (elementBottomEdge > boundaryVisibleBottom) {\r\n // Edge case for mobile landscape, allows element to be moved below the visible area\r\n if (boundaryRect.height < elementRect.height) {\r\n if (elementBottomEdge > boundary.scrollHeight) {\r\n finalY = boundary.scrollHeight - elementRect.height;\r\n }\r\n } else {\r\n finalY = boundaryVisibleBottom - elementRect.height;\r\n }\r\n }\r\n\r\n return [finalX, finalY];\r\n}\r\n\r\nfunction calculateOriginalDialogPosition(dialog: HTMLElement, boundary: HTMLElement, editorToolbar: HTMLElement): [number, number] {\r\n const boundaryRect = boundary.getBoundingClientRect();\r\n const dialogRect = dialog.getBoundingClientRect();\r\n const editorToolbarRect = editorToolbar.getBoundingClientRect();\r\n const offset = 15;\r\n const left = editorToolbarRect.right - dialogRect.width - offset - boundaryRect.left;\r\n const top = Math.abs(boundaryRect.top - boundary.scrollTop - editorToolbarRect.bottom - offset);\r\n\r\n return [left, top];\r\n}\r\n\r\nfunction repositionDialog(boundaryRef: RefObject, editor: IEditor, _: IEditorFactoryConfig): () => void {\r\n editor.enabled.subscribe((editorState) => {\r\n let currentTop = 0;\r\n let currentLeft = 0;\r\n let resizeObserver: ResizeObserver | null = null;\r\n\r\n if (!editorState.isEnabled || !editorState.editor.plugins.has(\"Dialog\")) {\r\n return;\r\n }\r\n\r\n const dialogPlugin = editorState.editor.plugins.get(\"Dialog\");\r\n\r\n editorState.editor.ui.focusTracker.on(\"change:isFocused\", () => {\r\n if (dialogPlugin.isOpen && !editorState.editor.ui.focusTracker.isFocused) {\r\n // eslint-disable-next-line @typescript-eslint/unbound-method\r\n const temp = editorState.editor.editing.view.focus;\r\n editorState.editor.editing.view.focus = noop;\r\n dialogPlugin.hide();\r\n editorState.editor.editing.view.focus = temp;\r\n }\r\n });\r\n\r\n dialogPlugin.on(\"show\", () => {\r\n const dialogView = dialogPlugin.view;\r\n if (dialogView === undefined) {\r\n return;\r\n }\r\n\r\n const overlay = dialogView.element as HTMLElement;\r\n const dialogElement = overlay.firstElementChild as HTMLElement;\r\n\r\n boundaryRef.current?.append(overlay);\r\n overlay.parentElement?.setAttribute(\"dir\", \"ltr\");\r\n\r\n // eslint-disable-next-line @typescript-eslint/unbound-method\r\n const originalMoveTo = dialogView.moveTo;\r\n\r\n dialogView.moveTo = (x, y) => {\r\n const [left, top] = moveElementWithinBoundary(dialogElement, boundaryRef.current as HTMLElement, x, y);\r\n originalMoveTo.call(dialogView, left, top);\r\n currentTop = top;\r\n currentLeft = left;\r\n };\r\n\r\n dialogView.updatePosition = () => {\r\n const [x, y] = calculateOriginalDialogPosition(\r\n dialogElement,\r\n boundaryRef.current as HTMLElement,\r\n editorState.editor.ui.view.toolbar.element as HTMLElement\r\n );\r\n dialogView.moveTo(x, y);\r\n };\r\n\r\n // Re-run the logic to position the dialog within the boundary when the boundary is resized\r\n resizeObserver = new ResizeObserver(() => {\r\n dialogView.moveTo(currentLeft, currentTop);\r\n });\r\n\r\n resizeObserver.observe(boundaryRef.current as HTMLElement);\r\n });\r\n\r\n dialogPlugin.on(\"hide\", () => {\r\n if (resizeObserver !== null) {\r\n resizeObserver.disconnect();\r\n resizeObserver = null;\r\n }\r\n });\r\n });\r\n\r\n return noop;\r\n}\r\n\r\nexport const repositionDialogBehaviourFactory = (boundaryRef: RefObject): Behaviour => {\r\n return repositionDialog.bind(null, boundaryRef);\r\n};\r\n","import { Plugin, SchemaItemDefinition, ViewElement, IElementToMarkerConfig } from \"@pebblepad/ckeditor\";\r\nimport { PpMarkerRange } from \"../../pp-marker-range/PpMarkerRange\";\r\n\r\nexport class PpMarkerRangePlugin extends Plugin {\r\n private static readonly _schemaConfig: SchemaItemDefinition = {\r\n allowAttributes: [\"id\"],\r\n allowIn: [\"$root\", \"$container\", \"$block\", \"blockQuote\", \"paragraph\", \"$text\"],\r\n isBlock: false,\r\n isContent: false,\r\n isInline: false,\r\n isLimit: false,\r\n isSelectable: false\r\n };\r\n\r\n private static readonly _upcastConfig: IElementToMarkerConfig = {\r\n model: PpMarkerRangePlugin._viewElementToMarker,\r\n view: {\r\n attributes: [\"id\"],\r\n name: PpMarkerRange.tagName\r\n }\r\n };\r\n\r\n private static _viewElementToMarker(viewElement: ViewElement): string {\r\n const idValue = viewElement.getAttribute(\"id\");\r\n return idValue !== undefined ? idValue : \"\";\r\n }\r\n\r\n public init(): void {\r\n this.editor.model.schema.register(PpMarkerRange.tagName, PpMarkerRangePlugin._schemaConfig);\r\n this.editor.conversion.for(\"upcast\").elementToMarker(PpMarkerRangePlugin._upcastConfig);\r\n }\r\n}\r\n","import { Enter, ShiftEnter, SelectAll, Clipboard, Typing, Undo, GeneralHtmlSupport, PasteFromOffice, Plugin } from \"@pebblepad/ckeditor\";\r\nimport { PpMarkerRangePlugin } from \"../../editor-plugins/pp-marker-range-plugin/PpMarkerRangePlugin\";\r\n\r\nexport const baseCkEditorPlugins: ReadonlyArray = [\r\n Enter,\r\n ShiftEnter,\r\n SelectAll,\r\n Clipboard,\r\n Typing,\r\n Undo,\r\n GeneralHtmlSupport,\r\n PasteFromOffice,\r\n PpMarkerRangePlugin\r\n];\r\n","import { RefObject } from \"react\";\r\nimport { Plugin } from \"@pebblepad/ckeditor\";\r\nimport { isIpadLike, isIphoneLike, noop } from \"@pjs/utilities\";\r\nimport { replaceDropdownPositioningLogic } from \"../behaviours/replace-dropdown-positioning-logic/ReplaceDropdownPositioningLogic\";\r\nimport { IEditor } from \"../editor/interfaces/IEditor\";\r\nimport { Editor } from \"../editor/Editor\";\r\nimport { ToolbarDisplayState } from \"../editor/enums/ToolbarDisplayState\";\r\nimport { handleIosBlockingClicks } from \"../behaviours/handle-ios-blocking-clicks/HandleIosBlockingClicks.function\";\r\nimport { richTextI18n } from \"../i18n/RichTextI18n.const\";\r\nimport { trackToolbarItems } from \"../behaviours/track-toolbar-items/TrackToolbarItems.function\";\r\nimport { richTextConfig } from \"../../RichTextConfig\";\r\nimport { slowPasteLogging } from \"../behaviours/slow-paste-logging/SlowPasteLogging.function\";\r\nimport { slowUndoRedoLogging } from \"../behaviours/slow-undo-redo-logging/SlowUndoRedoLogging.function\";\r\nimport { repositionDialogBehaviourFactory } from \"../behaviours/reposition-dialog/RepositionDialog.function\";\r\nimport { IEditorConfig } from \"./interfaces/IEditorConfig\";\r\nimport { EditorChangeCallback } from \"./types/EditorChangeCallback\";\r\nimport { IEditorFactoryConfig } from \"./interfaces/IEditorFactoryConfig\";\r\nimport { baseCkEditorPlugins } from \"./consts/BaseCkEditorPlugins.const\";\r\n\r\nexport class EditorFactory {\r\n private static readonly _htmlSupportConfig: IEditorConfig[\"htmlSupport\"] = {\r\n allow: [\r\n {\r\n attributes: true,\r\n classes: true,\r\n name: /.*/,\r\n styles: true\r\n }\r\n ]\r\n };\r\n\r\n public static create(\r\n editorContainer: RefObject,\r\n toolbarContainer: RefObject,\r\n editorPlaceholderContainer: RefObject,\r\n content: string,\r\n onChange: EditorChangeCallback,\r\n config: IEditorFactoryConfig,\r\n plugins: Array = [],\r\n onToolbarDisplayChange?: (toolbarState: ToolbarDisplayState, toolbarContainer: HTMLElement) => void\r\n ): IEditor {\r\n const editorConfig = EditorFactory._mapToCkEditorConfig(config);\r\n editorConfig.initialData = content;\r\n editorConfig.plugins = editorConfig.plugins.concat(baseCkEditorPlugins, plugins);\r\n editorConfig.licenseKey = richTextConfig.licenseKey;\r\n\r\n const toolbarDisplayCallback = onToolbarDisplayChange ?? noop;\r\n const editor = new Editor(\r\n editorConfig,\r\n editorContainer,\r\n toolbarContainer,\r\n editorPlaceholderContainer,\r\n config.parser,\r\n onChange,\r\n toolbarDisplayCallback,\r\n config.placeholder\r\n );\r\n\r\n const behaviourCleanupDelegates = config.behaviours.map((behaviour) => behaviour(editor, config));\r\n\r\n behaviourCleanupDelegates.push(replaceDropdownPositioningLogic(editor, config));\r\n behaviourCleanupDelegates.push(trackToolbarItems(editor, config));\r\n behaviourCleanupDelegates.push(slowPasteLogging(editor, config));\r\n behaviourCleanupDelegates.push(slowUndoRedoLogging(editor, config));\r\n behaviourCleanupDelegates.push(repositionDialogBehaviourFactory(config.boundaryElement)(editor, config));\r\n\r\n if (isIpadLike || isIphoneLike) {\r\n behaviourCleanupDelegates.push(handleIosBlockingClicks(editor, config));\r\n }\r\n\r\n editor.destruction.subscribe(() => {\r\n behaviourCleanupDelegates.forEach((cleanUpMethod) => cleanUpMethod());\r\n });\r\n\r\n return editor;\r\n }\r\n\r\n private static _mapToCkEditorConfig(config: IEditorFactoryConfig): IEditorConfig {\r\n const ckeConfig: IEditorConfig = {\r\n htmlSupport: EditorFactory._htmlSupportConfig,\r\n initialData: \"\",\r\n language: richTextI18n.getLanguage(),\r\n plugins: [],\r\n toolbar: {\r\n items: [],\r\n shouldNotGroupWhenFull: false\r\n },\r\n updateSourceElementOnDestroy: true\r\n };\r\n\r\n const toolbarItems = ckeConfig.toolbar.items;\r\n const plugins = new Set();\r\n\r\n for (const toolbarGroup of config.toolbarItems) {\r\n for (const toolbarItem of toolbarGroup) {\r\n toolbarItems.push(toolbarItem.name);\r\n\r\n if (toolbarItem.pluginConfig !== null) {\r\n Object.assign(ckeConfig, toolbarItem.pluginConfig);\r\n }\r\n\r\n for (const plugin of toolbarItem.plugins) {\r\n plugins.add(plugin);\r\n }\r\n }\r\n\r\n toolbarItems.push(\"|\");\r\n }\r\n\r\n toolbarItems.pop();\r\n ckeConfig.plugins = [...plugins];\r\n\r\n if (config.pluginOverrides !== null) {\r\n Object.assign(ckeConfig, config.pluginOverrides);\r\n }\r\n\r\n return ckeConfig;\r\n }\r\n}\r\n","import { KillSignal } from \"@pjs/observables\";\r\nimport { DropdownView, ToolbarView } from \"@pebblepad/ckeditor\";\r\nimport { IEditorFactoryConfig } from \"../../editor-factories/interfaces/IEditorFactoryConfig\";\r\nimport { IEditor } from \"../../editor/interfaces/IEditor\";\r\nimport { CkePanelPositionHandler } from \"./CkePanelPositionHandler\";\r\n\r\nexport function replaceDropdownPositioningLogic(editorController: IEditor, config: IEditorFactoryConfig): () => void {\r\n const killSignal = new KillSignal();\r\n\r\n editorController.enabled.subscribe((state) => {\r\n if (!state.isEnabled) {\r\n killSignal.next();\r\n return;\r\n }\r\n\r\n const toolbarElement = state.editor.ui.view.toolbar.element;\r\n\r\n for (const dropdownView of state.editor.ui.view.toolbar.items) {\r\n if (dropdownView instanceof DropdownView) {\r\n CkePanelPositionHandler.handle(toolbarElement, dropdownView, \"bottom-start\", config.boundaryElement.current, killSignal, false);\r\n }\r\n }\r\n\r\n state.editor.ui.view.toolbar.once(\"groupedItemsUpdate\", (evt) => {\r\n const toolbarView = evt.source as unknown as ToolbarView;\r\n const dropdownView: DropdownView = toolbarView.children.last as DropdownView;\r\n\r\n CkePanelPositionHandler.handle(toolbarElement, dropdownView, \"bottom-end\", config.boundaryElement.current, killSignal, true);\r\n });\r\n });\r\n\r\n return () => {\r\n killSignal.send();\r\n };\r\n}\r\n","import { noop } from \"@pjs/utilities\";\r\nimport { IEditor } from \"../../editor/interfaces/IEditor\";\r\nimport { EditorEnabledState } from \"../../editor/types/EditorEnabledState\";\r\nimport { IEditorFactoryConfig } from \"../../editor-factories/interfaces/IEditorFactoryConfig\";\r\nimport { BehaviourCleanup } from \"../types/BehaviourCleanup\";\r\nimport { ITouchEventData } from \"./interfaces/ITouchEventData\";\r\n\r\nconst maxClickBlockTime = 1000;\r\n\r\nfunction handleIosBlockingClicks(toolbarElement: HTMLElement): BehaviourCleanup {\r\n const touchDataCache = new WeakMap();\r\n\r\n function onTouchStart(event: TouchEvent): void {\r\n const touch = event.targetTouches[0];\r\n const element = event.target as HTMLElement;\r\n\r\n if (touchDataCache.has(element)) {\r\n const data = touchDataCache.get(element) as ITouchEventData;\r\n clearTimeout(data.clickTimer);\r\n clearTimeout(data.expiryTimer);\r\n }\r\n\r\n touchDataCache.set(element, {\r\n clickTimer: 0,\r\n expiryTimer: 0,\r\n isMoving: false,\r\n receivedClick: false,\r\n startTouchCoords: { x: touch.clientX, y: touch.clientY }\r\n });\r\n }\r\n\r\n const touchMoveTolerance = 10;\r\n\r\n function onTouchMove(event: TouchEvent): void {\r\n const touchData = touchDataCache.get(event.target as HTMLElement);\r\n if (touchData === undefined) {\r\n return;\r\n }\r\n\r\n const touch = event.targetTouches[0];\r\n if (Math.abs(touch.clientX - touchData.startTouchCoords.x) > touchMoveTolerance || Math.abs(touch.clientY - touchData.startTouchCoords.y) > touchMoveTolerance) {\r\n touchData.isMoving = true;\r\n }\r\n }\r\n\r\n function onTouchEnd(event: TouchEvent): void {\r\n const element = event.target as HTMLElement;\r\n const touchData = touchDataCache.get(element);\r\n if (touchData === undefined) {\r\n return;\r\n }\r\n\r\n clearTimeout(touchData.clickTimer);\r\n\r\n if (touchData.isMoving || element.closest(\"button\") === null) {\r\n touchDataCache.delete(element);\r\n return;\r\n }\r\n\r\n touchData.clickTimer = window.setTimeout(() => {\r\n element.dispatchEvent(\r\n new PointerEvent(\"click\", {\r\n bubbles: true,\r\n cancelable: true\r\n })\r\n );\r\n }, 100);\r\n }\r\n\r\n function onMouseDown(event: MouseEvent): void {\r\n const touchData = touchDataCache.get(event.target as HTMLElement);\r\n\r\n if (touchData === undefined) {\r\n return;\r\n }\r\n\r\n if (touchData.receivedClick) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n function onClick(event: MouseEvent): void {\r\n const element = event.target as HTMLElement;\r\n const touchData = touchDataCache.get(element);\r\n if (touchData === undefined) {\r\n return;\r\n }\r\n\r\n clearTimeout(touchData.clickTimer);\r\n\r\n if (touchData.receivedClick) {\r\n event.stopPropagation();\r\n touchDataCache.delete(element);\r\n return;\r\n }\r\n\r\n touchData.receivedClick = true;\r\n\r\n touchData.expiryTimer = window.setTimeout(() => {\r\n touchDataCache.delete(element);\r\n }, maxClickBlockTime);\r\n }\r\n\r\n toolbarElement.addEventListener(\"touchstart\", onTouchStart, { passive: true });\r\n toolbarElement.addEventListener(\"touchmove\", onTouchMove, { passive: true });\r\n toolbarElement.addEventListener(\"touchend\", onTouchEnd, { passive: true });\r\n toolbarElement.addEventListener(\"mousedown\", onMouseDown, true);\r\n toolbarElement.addEventListener(\"click\", onClick, true);\r\n\r\n return () => {\r\n toolbarElement.removeEventListener(\"touchstart\", onTouchStart);\r\n toolbarElement.removeEventListener(\"touchmove\", onTouchMove);\r\n toolbarElement.removeEventListener(\"touchend\", onTouchEnd);\r\n toolbarElement.removeEventListener(\"mousedown\", onMouseDown, true);\r\n toolbarElement.removeEventListener(\"click\", onClick, true);\r\n };\r\n}\r\n\r\nfunction onEditorInit(editor: IEditor, _config: IEditorFactoryConfig): BehaviourCleanup {\r\n let onCleanup = noop;\r\n editor.enabled.subscribe((editorState: EditorEnabledState) => {\r\n if (editorState.isEnabled) {\r\n onCleanup = handleIosBlockingClicks(editorState.editor.ui.view.toolbar.element as HTMLElement);\r\n return;\r\n }\r\n\r\n onCleanup();\r\n });\r\n\r\n return onCleanup;\r\n}\r\n\r\nexport { onEditorInit as handleIosBlockingClicks };\r\n","import { Paragraph } from \"@pebblepad/ckeditor\";\r\nimport { EditorFactory } from \"./EditorFactory\";\r\nimport { EditorFactoryFunction } from \"./types/EditorFactoryFunction\";\r\n\r\nexport const multiLineFactory: EditorFactoryFunction = (editorContainer, toolbarContainer, editorPlaceholderContainer, content, onChange, config, onToolbarDisplayChange) => {\r\n return EditorFactory.create(editorContainer, toolbarContainer, editorPlaceholderContainer, content, onChange, config, [Paragraph], onToolbarDisplayChange);\r\n};\r\n","import { IEditorPlaceholder } from \"./interfaces/IEditorPlaceholder\";\r\n\r\nexport class CKEditorPlaceholder implements IEditorPlaceholder {\r\n private _active: boolean;\r\n private readonly _editorPlaceholderContainer: HTMLElement;\r\n private readonly _text: string;\r\n\r\n constructor(editorPlaceholderContainer: HTMLElement, text: string) {\r\n this._editorPlaceholderContainer = editorPlaceholderContainer;\r\n this._text = text;\r\n\r\n const existingPlaceholder = getComputedStyle(editorPlaceholderContainer).getPropertyValue(\"--placeholder-text\");\r\n this._active = existingPlaceholder !== undefined && existingPlaceholder !== \"\";\r\n }\r\n\r\n public static doesEditorHaveContent(content: string): boolean {\r\n return content !== \"\" && content !== \"

 

\" && !/^(?:
)+$/.test(content);\r\n }\r\n\r\n public update(content: string): void {\r\n const hasContent = CKEditorPlaceholder.doesEditorHaveContent(content);\r\n if (hasContent && !this._active) {\r\n return;\r\n }\r\n\r\n this._active = !hasContent;\r\n const placeholderValue = !hasContent ? this._text : \"\";\r\n\r\n this._editorPlaceholderContainer.style.setProperty(\"--placeholder-text\", `\"${placeholderValue}\"`);\r\n }\r\n}\r\n","export enum ToolbarDisplayState {\r\n Pending,\r\n Shown,\r\n Hidden\r\n}\r\n","import { emptyTagConfig, globalAnchorTransform, IHtmlStringParserConfig } from \"@pjs/security\";\r\nimport { boldTransform } from \"../transforms/BoldTransform.const\";\r\nimport { strikeTransform } from \"../transforms/StrikeTransform.const\";\r\nimport { cke5BrTransform } from \"../transforms/Cke5BrTransform.const\";\r\nimport { italicTransform } from \"../transforms/ItalicTransform.const\";\r\nimport { divTransform } from \"../transforms/DivTransform.const\";\r\nimport { anchorConfig } from \"../tag-configs/AnchorConfig.const\";\r\nimport { olConfig } from \"../tag-configs/OlConfig.const\";\r\nimport { ulConfig } from \"../tag-configs/UlConfig.const\";\r\nimport { spanCleanupTransform } from \"../transforms/SpanCleanupTransform.const\";\r\nimport { processCssClassFactory } from \"../tag-configs/ProcessCssClassFactory.function\";\r\nimport { ParagraphCleanupMutation } from \"../transforms/blocks/ParagraphCleanupMutation\";\r\nimport { blockIndentConverter } from \"../transforms/blocks/BlockIndentConverter.function\";\r\nimport { IndentBlockClass } from \"../../toolbar-items/enums/IndentBlockClass\";\r\nimport { headingToBlockTransform } from \"../transforms/HeadingToBlockTransform.const\";\r\nimport { StylesToChildrenConverter } from \"../transforms/blocks/StylesToChildrenConverter\";\r\nimport { AttributeOnlyMutation } from \"../transforms/blocks/AttributeOnlyMutation\";\r\n\r\nconst styleToChildrenConverter = new StylesToChildrenConverter([\"font-weight\", \"font-style\", \"text-decoration-line\", \"vertical-align\"]);\r\n\r\nconst paragraphTransform = new ParagraphCleanupMutation([blockIndentConverter, styleToChildrenConverter.convert]);\r\nconst liTransform = new AttributeOnlyMutation([styleToChildrenConverter.convert]);\r\n\r\nexport const compactMultiLineConfig: IHtmlStringParserConfig = {\r\n tags: {\r\n a: anchorConfig,\r\n br: emptyTagConfig,\r\n i: emptyTagConfig,\r\n li: emptyTagConfig,\r\n ol: olConfig,\r\n p: {\r\n attributes: {\r\n class: processCssClassFactory(Object.values(IndentBlockClass).join(\"|\"))\r\n },\r\n styles: null\r\n },\r\n s: emptyTagConfig,\r\n strong: emptyTagConfig,\r\n u: emptyTagConfig,\r\n ul: ulConfig\r\n },\r\n transforms: {\r\n a: globalAnchorTransform,\r\n b: boldTransform,\r\n br: cke5BrTransform,\r\n cite: italicTransform,\r\n div: divTransform,\r\n em: italicTransform,\r\n h1: headingToBlockTransform,\r\n h2: headingToBlockTransform,\r\n h3: headingToBlockTransform,\r\n h4: headingToBlockTransform,\r\n h5: headingToBlockTransform,\r\n h6: headingToBlockTransform,\r\n li: liTransform,\r\n p: paragraphTransform,\r\n span: spanCleanupTransform,\r\n strike: strikeTransform\r\n }\r\n};\r\n","import { HtmlStringParser, IHtmlStringParser } from \"@pjs/security\";\r\nimport { compactMultiLineConfig } from \"./full-configs/CompactMultiLineConfig.const\";\r\n\r\nexport const compactMultiLineParser: IHtmlStringParser = new HtmlStringParser(compactMultiLineConfig, null);\r\n","import { IHtmlTagConfig, isSafeUrlProtocol } from \"@pjs/security\";\r\n\r\nexport const anchorConfig: IHtmlTagConfig = {\r\n attributes: {\r\n href: (value) => (isSafeUrlProtocol(value) ? value : null),\r\n rel: (value) => (/^\\s*(?:(?:noreferrer|noopener)\\s*){1,2}\\s*$/.test(value) ? value : \"\"),\r\n target: (value) => (value === \"_blank\" ? value : null)\r\n },\r\n styles: null\r\n};\r\n","import { IHtmlTagConfig } from \"@pjs/security\";\r\n\r\nexport const olConfig: IHtmlTagConfig = {\r\n attributes: null,\r\n styles: {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n \"list-style-type\": (value) => {\r\n if (/^(?:decimal|decimal-leading-zero|lower-roman|upper-roman|lower-latin|upper-latin)$/.test(value)) {\r\n return value;\r\n }\r\n\r\n if (value === \"lower-alpha\") {\r\n return \"lower-latin\";\r\n }\r\n\r\n if (value === \"upper-alpha\") {\r\n return \"upper-latin\";\r\n }\r\n\r\n return \"\";\r\n }\r\n }\r\n};\r\n","import { ProcessAttribute } from \"@pjs/security\";\r\n\r\nexport function processCssClassFactory(validClassesUnion: string): ProcessAttribute {\r\n const allValidClassesMatcher = new RegExp(`^(?:(?:${validClassesUnion})(?:\\\\s|$))+$`);\r\n const validClassesMatcher = new RegExp(`(?:${validClassesUnion})(?:\\\\s|$)`, \"g\");\r\n\r\n return (value) => {\r\n if (allValidClassesMatcher.test(value)) {\r\n return value;\r\n }\r\n\r\n const validClassesMatch = value.match(validClassesMatcher);\r\n return validClassesMatch !== null ? validClassesMatch.join(\"\").trim() : null;\r\n };\r\n}\r\n","import { IHtmlTagConfig } from \"@pjs/security\";\r\n\r\nexport const ulConfig: IHtmlTagConfig = {\r\n attributes: null,\r\n styles: {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n \"list-style-type\": (value) => (/^(disc|circle|square)$/.test(value) ? value : \"\")\r\n }\r\n};\r\n","import { SandboxedTagSwap } from \"@pjs/security\";\r\nimport { moveElementChildren } from \"@pjs/utilities\";\r\n\r\nexport class BasicTagSwap extends SandboxedTagSwap {\r\n protected _swap(sandboxedElement: Element, newElement: Element): void {\r\n const attributes = sandboxedElement.getAttributeNames();\r\n\r\n for (const attribute of attributes) {\r\n newElement.setAttribute(attribute, sandboxedElement.getAttribute(attribute) as string);\r\n }\r\n\r\n moveElementChildren(sandboxedElement, newElement);\r\n }\r\n}\r\n","import { SandboxedTagSwap } from \"@pjs/security\";\r\nimport { BasicTagSwap } from \"./BasicTagSwap\";\r\n\r\nexport const boldTransform: SandboxedTagSwap = new BasicTagSwap(\"strong\");\r\n","import { SandboxedTagMutation } from \"@pjs/security\";\r\nimport { commonInlineTagNames } from \"../CommonInlineTagNames.const\";\r\n\r\nexport class Cke5BrMutation extends SandboxedTagMutation {\r\n private static _hasSiblingContent(sandboxedBr: HTMLBRElement, direction: \"previousSibling\" | \"nextSibling\"): boolean {\r\n let sibling = sandboxedBr[direction];\r\n while (sibling !== null) {\r\n if (sibling.nodeName !== \"BR\" && (sibling.nodeType === Node.ELEMENT_NODE || sibling.nodeType === Node.TEXT_NODE)) {\r\n return true;\r\n }\r\n\r\n sibling = sibling[direction];\r\n }\r\n\r\n return false;\r\n }\r\n\r\n protected _mutate(sandboxedBr: HTMLBRElement, sandboxedDocument: Document): boolean {\r\n const parent = sandboxedBr.parentElement;\r\n if (parent === null) {\r\n return false;\r\n }\r\n\r\n if (parent.tagName === \"BODY\") {\r\n return this._transformRootBr(sandboxedBr, sandboxedDocument);\r\n }\r\n\r\n if (parent.tagName === \"LI\" && parent.lastChild === sandboxedBr) {\r\n return false;\r\n }\r\n\r\n if (parent.childNodes.length === 1 && (parent.tagName === \"P\" || parent.tagName === \"LI\")) {\r\n sandboxedBr.replaceWith(sandboxedDocument.createTextNode(\"\\u00A0\"));\r\n return false;\r\n }\r\n\r\n const nextNode = sandboxedBr.nextSibling;\r\n if (nextNode !== null && (nextNode.nodeName === \"UL\" || nextNode.nodeName === \"OL\")) {\r\n return false;\r\n }\r\n\r\n const hasContentBefore = Cke5BrMutation._hasSiblingContent(sandboxedBr, \"previousSibling\");\r\n const hasContentAfter = Cke5BrMutation._hasSiblingContent(sandboxedBr, \"nextSibling\");\r\n\r\n if (hasContentBefore && hasContentAfter) {\r\n return true;\r\n }\r\n\r\n if (nextNode !== null && nextNode.nodeName === \"BR\") {\r\n sandboxedBr.insertAdjacentText(\"afterend\", \"\\u00A0\");\r\n return true;\r\n }\r\n\r\n return hasContentAfter;\r\n }\r\n\r\n private _transformRootBr(sandboxedBr: HTMLBRElement, sandboxedDocument: Document): boolean {\r\n const siblingsToMove: Array = [sandboxedBr];\r\n let previousSibling: Node | null = sandboxedBr.previousSibling;\r\n\r\n while (previousSibling !== null && (previousSibling.nodeType === Node.TEXT_NODE || commonInlineTagNames.includes(previousSibling.nodeName))) {\r\n siblingsToMove.push(previousSibling);\r\n previousSibling = previousSibling.previousSibling;\r\n }\r\n\r\n siblingsToMove.reverse();\r\n let nextSibling = sandboxedBr.nextSibling;\r\n while (nextSibling !== null && (nextSibling.nodeType === Node.TEXT_NODE || nextSibling.nodeName === \"BR\" || commonInlineTagNames.includes(nextSibling.nodeName))) {\r\n siblingsToMove.push(nextSibling);\r\n nextSibling = nextSibling.nextSibling;\r\n }\r\n\r\n if (siblingsToMove.length === 1) {\r\n return false;\r\n }\r\n\r\n const p = sandboxedDocument.createElement(\"p\");\r\n sandboxedBr.replaceWith(p);\r\n p.append(...siblingsToMove);\r\n\r\n return true;\r\n }\r\n}\r\n","import { SandboxedTagMutation } from \"@pjs/security\";\r\nimport { Cke5BrMutation } from \"./inline/Cke5BrMutation\";\r\n\r\nexport const cke5BrTransform: SandboxedTagMutation = new Cke5BrMutation();\r\n","export const commonInlineTagNames: ReadonlyArray = [\"A\", \"ABBR\", \"B\", \"CITE\", \"EM\", \"FONT\", \"I\", \"MARK\", \"Q\", \"S\", \"SMALL\", \"SPAN\", \"STRIKE\", \"STRONG\", \"SUB\", \"SUP\", \"TIME\", \"U\"];\r\n","import { SandboxedTagMutation } from \"@pjs/security\";\r\nimport { commonInlineTagNames } from \"../CommonInlineTagNames.const\";\r\n\r\nexport class DivCleanupMutation extends SandboxedTagMutation {\r\n protected _mutate(sandboxedDiv: HTMLDivElement, sandboxedDocument: Document): boolean {\r\n if (sandboxedDiv.childNodes.length === 0) {\r\n return false;\r\n }\r\n\r\n const parent = sandboxedDiv.parentNode;\r\n if (parent === null) {\r\n return true;\r\n }\r\n\r\n const sibling = sandboxedDiv.nextSibling;\r\n\r\n let child = sandboxedDiv.firstChild;\r\n let inlineContainer = null;\r\n\r\n while (child !== null) {\r\n if (child.nodeType === Node.TEXT_NODE || commonInlineTagNames.includes(child.nodeName)) {\r\n if (inlineContainer === null) {\r\n inlineContainer = sandboxedDocument.createDocumentFragment();\r\n }\r\n\r\n inlineContainer.appendChild(child);\r\n } else {\r\n if (inlineContainer !== null) {\r\n const p = this._createParagraphReplacement(sandboxedDiv, sandboxedDocument);\r\n p.appendChild(inlineContainer);\r\n parent.insertBefore(p, sibling);\r\n\r\n inlineContainer = null;\r\n }\r\n\r\n parent.insertBefore(child, sibling);\r\n }\r\n\r\n child = sandboxedDiv.firstChild;\r\n }\r\n\r\n if (inlineContainer !== null) {\r\n const p = this._createParagraphReplacement(sandboxedDiv, sandboxedDocument);\r\n p.appendChild(inlineContainer);\r\n parent.insertBefore(p, sibling);\r\n\r\n inlineContainer = null;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _createParagraphReplacement(sandboxedDiv: HTMLDivElement, sandboxedDocument: Document): HTMLParagraphElement {\r\n const p = sandboxedDocument.createElement(\"p\");\r\n const attributes = sandboxedDiv.getAttributeNames();\r\n\r\n for (const attribute of attributes) {\r\n p.setAttribute(attribute, sandboxedDiv.getAttribute(attribute) as string);\r\n }\r\n\r\n return p;\r\n }\r\n}\r\n","import { SandboxedTagMutation } from \"@pjs/security\";\r\nimport { DivCleanupMutation } from \"./blocks/DivCleanupMutation\";\r\n\r\nexport const divTransform: SandboxedTagMutation = new DivCleanupMutation();\r\n","import { BasicTagSwap } from \"./BasicTagSwap\";\r\n\r\nexport const headingToBlockTransform = new BasicTagSwap(\"p\");\r\n","import { SandboxedTagSwap } from \"@pjs/security\";\r\nimport { BasicTagSwap } from \"./BasicTagSwap\";\r\n\r\nexport const italicTransform: SandboxedTagSwap = new BasicTagSwap(\"I\");\r\n","export function replaceCollectionItemsWithChildren(elements: HTMLCollection): void {\r\n while (elements.length > 0) {\r\n const element = elements[0];\r\n element.replaceWith(...element.childNodes);\r\n }\r\n}\r\n","import { moveElementChildren } from \"@pjs/utilities\";\r\nimport { replaceCollectionItemsWithChildren } from \"../replace-collection-with-children/ReplaceCollectionItemsWithChildren.function\";\r\n\r\nexport function semanticInlineSwap(newTagName: string, sandboxedElement: HTMLElement, sandboxedDocument: Document, legacyTagName?: string): void {\r\n let parent = sandboxedElement.parentElement;\r\n while (parent !== null) {\r\n if (parent.tagName === newTagName) {\r\n return;\r\n }\r\n\r\n parent = parent.parentElement;\r\n }\r\n\r\n replaceCollectionItemsWithChildren(sandboxedElement.getElementsByTagName(newTagName));\r\n\r\n if (legacyTagName !== undefined) {\r\n replaceCollectionItemsWithChildren(sandboxedElement.getElementsByTagName(legacyTagName));\r\n }\r\n\r\n const semanticTag = sandboxedDocument.createElement(newTagName);\r\n moveElementChildren(sandboxedElement, semanticTag);\r\n sandboxedElement.append(semanticTag);\r\n}\r\n","import { AttributeConverter } from \"../../types/AttributeConverter\";\r\nimport { isFontWeightBold } from \"../../../../utils/is-font-weight-bold/IsFontWeightBold.function\";\r\nimport { semanticInlineSwap } from \"../../../../utils/semantic-inline-tag-swap/SemanticInlineSwap.function\";\r\n\r\nexport const inlineFontWeightConverter: AttributeConverter = (sandboxedElement, sandboxedDocument) => {\r\n const fontWeight = sandboxedElement.style.fontWeight;\r\n if (fontWeight === \"\") {\r\n return;\r\n }\r\n\r\n sandboxedElement.style.fontWeight = \"\";\r\n if (!isFontWeightBold(fontWeight)) {\r\n return;\r\n }\r\n\r\n semanticInlineSwap(\"STRONG\", sandboxedElement, sandboxedDocument, \"B\");\r\n};\r\n","export function isFontWeightBold(fontWeight: string): boolean {\r\n return /^bold|[56789]00$/.test(fontWeight);\r\n}\r\n","import { AttributeConverter } from \"../../types/AttributeConverter\";\r\nimport { semanticInlineSwap } from \"../../../../utils/semantic-inline-tag-swap/SemanticInlineSwap.function\";\r\n\r\nexport const inlineFontStyleConverter: AttributeConverter = (sandboxedElement, sandboxedDocument) => {\r\n const fontStyle = sandboxedElement.style.fontStyle;\r\n if (fontStyle === \"\") {\r\n return;\r\n }\r\n\r\n sandboxedElement.style.fontStyle = \"\";\r\n if (fontStyle !== \"italic\") {\r\n return;\r\n }\r\n\r\n semanticInlineSwap(\"I\", sandboxedElement, sandboxedDocument, \"EM\");\r\n};\r\n","import { AttributeConverter } from \"../../types/AttributeConverter\";\r\nimport { semanticInlineSwap } from \"../../../../utils/semantic-inline-tag-swap/SemanticInlineSwap.function\";\r\n\r\nexport const inlineTextDecorationConverter: AttributeConverter = (sandboxedElement, sandboxedDocument) => {\r\n let decorationLineStyle = sandboxedElement.style.textDecorationLine;\r\n if (decorationLineStyle === \"\") {\r\n decorationLineStyle = sandboxedElement.style.textDecoration;\r\n\r\n if (decorationLineStyle === \"\") {\r\n return;\r\n }\r\n }\r\n\r\n sandboxedElement.style.textDecorationLine = \"\";\r\n sandboxedElement.style.textDecoration = \"\";\r\n\r\n if (decorationLineStyle === \"line-through\") {\r\n semanticInlineSwap(\"S\", sandboxedElement, sandboxedDocument, \"STRIKE\");\r\n return;\r\n }\r\n\r\n if (decorationLineStyle === \"underline\") {\r\n semanticInlineSwap(\"U\", sandboxedElement, sandboxedDocument);\r\n }\r\n};\r\n","import { AttributeConverter } from \"../../types/AttributeConverter\";\r\nimport { semanticInlineSwap } from \"../../../../utils/semantic-inline-tag-swap/SemanticInlineSwap.function\";\r\n\r\nexport const inlineVerticalAlignmentConverter: AttributeConverter = (sandboxedElement, sandboxedDocument) => {\r\n const verticalAlignment = sandboxedElement.style.verticalAlign;\r\n if (verticalAlignment === \"\") {\r\n return;\r\n }\r\n\r\n sandboxedElement.style.verticalAlign = \"\";\r\n if (verticalAlignment === \"super\") {\r\n semanticInlineSwap(\"SUP\", sandboxedElement, sandboxedDocument);\r\n return;\r\n }\r\n\r\n if (verticalAlignment === \"sub\") {\r\n semanticInlineSwap(\"SUB\", sandboxedElement, sandboxedDocument);\r\n return;\r\n }\r\n};\r\n","import { SandboxedTagMutation } from \"@pjs/security\";\r\nimport { inlineFontWeightConverter } from \"./InlineFontWeightConverter.function\";\r\nimport { inlineFontStyleConverter } from \"./InlineFontStyleConverter.function\";\r\nimport { inlineTextDecorationConverter } from \"./InlineTextDecorationConverter.function\";\r\nimport { inlineVerticalAlignmentConverter } from \"./InlineVerticalAlignmentConverter.function\";\r\n\r\nexport class InlineCleanupMutation extends SandboxedTagMutation {\r\n protected _mutate(sandboxedElement: HTMLElement, sandboxedDocument: Document): boolean {\r\n if (sandboxedElement.childNodes.length === 0) {\r\n this._removeEmptyElement(sandboxedElement);\r\n return false;\r\n }\r\n\r\n inlineFontWeightConverter(sandboxedElement, sandboxedDocument);\r\n inlineFontStyleConverter(sandboxedElement, sandboxedDocument);\r\n inlineTextDecorationConverter(sandboxedElement, sandboxedDocument);\r\n inlineVerticalAlignmentConverter(sandboxedElement, sandboxedDocument);\r\n\r\n return this._cleanupUnnecessaryParents(sandboxedElement);\r\n }\r\n\r\n private _removeEmptyElement(sandboxedElement: HTMLElement): void {\r\n let parent = sandboxedElement.parentElement;\r\n let toRemove = sandboxedElement;\r\n while (parent !== null && parent.tagName !== \"BODY\" && parent.tagName !== \"LI\" && parent.childNodes.length === 1) {\r\n toRemove = parent;\r\n parent = parent.parentElement;\r\n }\r\n\r\n toRemove.remove();\r\n }\r\n\r\n private _cleanupUnnecessaryParents(sandboxedElement: HTMLElement): boolean {\r\n const hasChildren = sandboxedElement.childNodes.length > 0;\r\n const shouldKeepElement = hasChildren && (sandboxedElement.tagName !== \"SPAN\" || sandboxedElement.style.length > 0);\r\n const children: Array = [];\r\n let parent = sandboxedElement.parentElement;\r\n let toReplace: Element | null = shouldKeepElement ? null : sandboxedElement;\r\n\r\n if (!shouldKeepElement && hasChildren) {\r\n sandboxedElement.replaceWith(...sandboxedElement.childNodes);\r\n toReplace = null;\r\n }\r\n\r\n while (parent !== null && parent.tagName === \"SPAN\" && parent.style.length === 0) {\r\n for (const child of parent.childNodes) {\r\n if (child !== toReplace) {\r\n children.push(child);\r\n }\r\n }\r\n\r\n toReplace = parent;\r\n parent = parent.parentElement;\r\n }\r\n\r\n if (toReplace === null) {\r\n return true;\r\n }\r\n\r\n const childrenToInsert = toReplace === sandboxedElement ? sandboxedElement.childNodes : children;\r\n toReplace.replaceWith(...childrenToInsert);\r\n\r\n return shouldKeepElement;\r\n }\r\n}\r\n","import { SandboxedTagMutation } from \"@pjs/security\";\r\nimport { InlineCleanupMutation } from \"./inline/InlineCleanupMutation\";\r\n\r\nexport const spanCleanupTransform: SandboxedTagMutation = new InlineCleanupMutation();\r\n","import { SandboxedTagSwap } from \"@pjs/security\";\r\nimport { BasicTagSwap } from \"./BasicTagSwap\";\r\n\r\nexport const strikeTransform: SandboxedTagSwap = new BasicTagSwap(\"s\");\r\n","import { SandboxedTagMutation } from \"@pjs/security\";\r\n\r\nexport class AttributeOnlyMutation extends SandboxedTagMutation {\r\n private readonly _attributeProcessors: ReadonlyArray<(sandboxedElement: HTMLElement, sandboxedDocument: Document) => void>;\r\n\r\n constructor(attributeProcessors: ReadonlyArray<(sandboxedElement: HTMLElement, sandboxedDocument: Document) => void>) {\r\n super();\r\n this._attributeProcessors = attributeProcessors;\r\n }\r\n\r\n protected _mutate(sandboxedElement: HTMLElement, sandboxedDocument: Document): boolean {\r\n for (const attributeProcessor of this._attributeProcessors) {\r\n attributeProcessor(sandboxedElement, sandboxedDocument);\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { IndentBlockClass } from \"../../../toolbar-items/enums/IndentBlockClass\";\r\nimport { getClosestNumericalMatch } from \"../../../../utils/get-closest-numerical-match/GetClosestNumericalMatch.function\";\r\nimport { RemConverter } from \"../../../../utils/rem-converter/RemConverter\";\r\nimport { AttributeConverter } from \"../../types/AttributeConverter\";\r\n\r\nconst marginToClassMap: ReadonlyMap = new Map([\r\n [2, IndentBlockClass.Indent2],\r\n [4, IndentBlockClass.Indent4],\r\n [6, IndentBlockClass.Indent6],\r\n [8, IndentBlockClass.Indent8],\r\n [10, IndentBlockClass.Indent10],\r\n [12, IndentBlockClass.Indent12],\r\n [14, IndentBlockClass.Indent14],\r\n [16, IndentBlockClass.Indent16],\r\n [18, IndentBlockClass.Indent18],\r\n [20, IndentBlockClass.Indent20]\r\n]);\r\n\r\nconst marginValues: ReadonlyArray = Array.from(marginToClassMap.keys());\r\nconst hasMarginClass = new RegExp(`${Object.values(IndentBlockClass).join(\"|\")}`);\r\n\r\nexport const blockIndentConverter: AttributeConverter = (sandboxedElement) => {\r\n const marginLeft = sandboxedElement.style.marginLeft;\r\n if (marginLeft === \"\") {\r\n return;\r\n }\r\n\r\n sandboxedElement.style.marginLeft = \"\";\r\n const value = RemConverter.cssValueToRem(marginLeft);\r\n if (Number.isNaN(value) || value <= 0) {\r\n return;\r\n }\r\n\r\n const closestValue = getClosestNumericalMatch(value, marginValues);\r\n\r\n if (closestValue !== null && !hasMarginClass.test(sandboxedElement.className)) {\r\n sandboxedElement.classList.add(marginToClassMap.get(closestValue) as IndentBlockClass);\r\n }\r\n};\r\n","export function doesNodeDirectlyContainText(node: Node): boolean {\r\n const content = node.nodeValue;\r\n return content !== null && (/\\u00A0/.test(content) || /\\S/.test(content));\r\n}\r\n","import { SandboxedTagMutation } from \"@pjs/security\";\r\nimport { moveElementChildren } from \"@pjs/utilities\";\r\nimport { doNodesDirectlyContainText } from \"../../../../utils/do-nodes-directly-contain-text/DoNodesDirectlyContainText.function\";\r\nimport { doesNodeDirectlyContainText } from \"../../../../utils/do-nodes-directly-contain-text/DoesNodeDirectlyContainText.function\";\r\n\r\nexport class ParagraphCleanupMutation extends SandboxedTagMutation {\r\n private readonly _attributeProcessors: ReadonlyArray<(sandboxedElement: HTMLElement, sandboxedDocument: Document) => void>;\r\n\r\n constructor(attributeProcessors: ReadonlyArray<(sandboxedElement: HTMLElement, sandboxedDocument: Document) => void>) {\r\n super();\r\n this._attributeProcessors = attributeProcessors;\r\n }\r\n\r\n protected _mutate(sandboxedP: HTMLParagraphElement, sandboxedDocument: Document): boolean {\r\n if (this._isEmptyStarter(sandboxedP)) {\r\n return false;\r\n }\r\n\r\n if (this._requiresFiller(sandboxedP)) {\r\n sandboxedP.innerHTML = \" \";\r\n }\r\n\r\n if (this._handleCke5LiConflict(sandboxedP, sandboxedDocument)) {\r\n return false;\r\n }\r\n\r\n for (const attributeProcessor of this._attributeProcessors) {\r\n attributeProcessor(sandboxedP, sandboxedDocument);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _requiresFiller(sandboxedP: HTMLParagraphElement): boolean {\r\n return sandboxedP.childElementCount === 0 && !doNodesDirectlyContainText(sandboxedP.childNodes);\r\n }\r\n\r\n private _isEmptyStarter(sandboxedP: HTMLParagraphElement): boolean {\r\n const parent = sandboxedP.parentElement;\r\n if (parent === null || parent.tagName !== \"BODY\" || parent.childNodes.length > 1) {\r\n return false;\r\n }\r\n\r\n const childNodesCount = sandboxedP.childNodes.length;\r\n if (childNodesCount > 1) {\r\n return false;\r\n }\r\n\r\n if (childNodesCount === 0) {\r\n return true;\r\n }\r\n\r\n const elementCount = sandboxedP.childElementCount;\r\n const firstChild = sandboxedP.firstChild as Node;\r\n if (elementCount > 1 || !(elementCount === 1 && firstChild.nodeName === \"BR\")) {\r\n return false;\r\n }\r\n\r\n return !doesNodeDirectlyContainText(firstChild);\r\n }\r\n\r\n private _handleCke5LiConflict(sandboxedP: HTMLParagraphElement, sandboxedDocument: Document): boolean {\r\n const parent = sandboxedP.parentElement;\r\n const isCke5ParagraphInvalidWithinLi = parent !== null && parent.tagName === \"LI\" && parent.childElementCount === 1 && sandboxedP.style.length === 0 && sandboxedP.className === \"\";\r\n\r\n if (!isCke5ParagraphInvalidWithinLi) {\r\n return false;\r\n }\r\n\r\n const span = sandboxedDocument.createElement(\"span\");\r\n moveElementChildren(sandboxedP, span);\r\n sandboxedP.replaceWith(span);\r\n return true;\r\n }\r\n}\r\n","import { doesNodeDirectlyContainText } from \"./DoesNodeDirectlyContainText.function\";\r\n\r\nexport function doNodesDirectlyContainText(nodes: NodeList): boolean {\r\n for (const node of nodes) {\r\n if (doesNodeDirectlyContainText(node)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n","import { KebabCssStyleDeclarationKeys } from \"@pjs/security\";\r\nimport { HTMLElementWithSpecStyles } from \"@pjs/security\";\r\nimport { AttributeConverter } from \"../../types/AttributeConverter\";\r\nimport { commonInlineTagNames } from \"../CommonInlineTagNames.const\";\r\n\r\nexport class StylesToChildrenConverter {\r\n public readonly convert: AttributeConverter;\r\n private readonly _stylesToMoveToChildren: ReadonlyArray;\r\n\r\n constructor(stylesToMoveToChildren: ReadonlyArray) {\r\n this._stylesToMoveToChildren = stylesToMoveToChildren;\r\n this.convert = this._convert.bind(this);\r\n }\r\n\r\n private static _applyStyles(element: HTMLElement, styles: ReadonlyArray<[KebabCssStyleDeclarationKeys, string]>): void {\r\n for (const [key, value] of styles) {\r\n if ((element as HTMLElementWithSpecStyles).style[key] === \"\") {\r\n (element as HTMLElementWithSpecStyles).style[key] = value;\r\n }\r\n }\r\n }\r\n\r\n private _convert(sandboxedBlockElement: HTMLElement, sandboxedDocument: Document): void {\r\n if (sandboxedBlockElement.style.length === 0) {\r\n return;\r\n }\r\n\r\n const stylesToCopy = this._getStylesToCopy(sandboxedBlockElement);\r\n if (stylesToCopy.length === 0) {\r\n return;\r\n }\r\n\r\n const templateSpan = sandboxedDocument.createElement(\"span\") as HTMLElementWithSpecStyles;\r\n StylesToChildrenConverter._applyStyles(templateSpan, stylesToCopy);\r\n\r\n for (const child of sandboxedBlockElement.childNodes) {\r\n if (child.nodeName === \"BR\") {\r\n continue;\r\n }\r\n\r\n if (child.nodeType === Node.ELEMENT_NODE && (child.nodeName === \"SPAN\" || !commonInlineTagNames.includes(child.nodeName))) {\r\n StylesToChildrenConverter._applyStyles(child as HTMLElementWithSpecStyles, stylesToCopy);\r\n continue;\r\n }\r\n\r\n const span = templateSpan.cloneNode() as Element;\r\n child.replaceWith(span);\r\n span.appendChild(child);\r\n }\r\n }\r\n\r\n private _getStylesToCopy(sandboxedBlockElement: HTMLElement): ReadonlyArray<[KebabCssStyleDeclarationKeys, string]> {\r\n const specValidElement = sandboxedBlockElement as HTMLElementWithSpecStyles;\r\n const stylesToTransfer: Array<[KebabCssStyleDeclarationKeys, string]> = [];\r\n\r\n for (const styleKey of specValidElement.style) {\r\n const kebabKey = styleKey as KebabCssStyleDeclarationKeys;\r\n\r\n if (this._stylesToMoveToChildren.includes(kebabKey)) {\r\n stylesToTransfer.push([styleKey as KebabCssStyleDeclarationKeys, specValidElement.style[kebabKey]]);\r\n }\r\n }\r\n\r\n return stylesToTransfer;\r\n }\r\n}\r\n","import { i18nManager } from \"@pjs/i18n\";\r\nimport { ckeI18nResources } from \"@pebblepad/ckeditor\";\r\nimport { CkeI18nSet } from \"./CkeI18nSet\";\r\n\r\nconst ckeI18nSet = new CkeI18nSet(\"en-GB\", ckeI18nResources.mandatory);\r\n\r\nfor (const resource of ckeI18nResources.translations) {\r\n ckeI18nSet.add(resource.languageCode, resource.load);\r\n}\r\n\r\ni18nManager.addSet(\"ckeditor\", ckeI18nSet);\r\n","import { AsyncResolver, I18nSetNamespace, II18nResourceSet, ResourceLoader } from \"@pjs/i18n\";\r\nimport { ICkeI18nResource } from \"@pebblepad/ckeditor\";\r\nimport { noop } from \"@pjs/utilities\";\r\n\r\nexport class CkeI18nSet implements II18nResourceSet> {\r\n private readonly _mandatoryResource: ICkeI18nResource;\r\n private readonly _resourceLoader: ResourceLoader;\r\n private _defaultLanguage: string;\r\n private _language: string = \"\";\r\n\r\n constructor(defaultLanguage: string, mandatoryResource: ICkeI18nResource) {\r\n this._mandatoryResource = mandatoryResource;\r\n this._defaultLanguage = defaultLanguage;\r\n this._resourceLoader = new ResourceLoader(noop);\r\n this._resourceLoader.add(I18nSetNamespace.String, this._mandatoryResource.languageCode, this._mandatoryResource.load);\r\n }\r\n\r\n public add(languageCode: string, resolver: AsyncResolver): this {\r\n this._resourceLoader.add(I18nSetNamespace.String, languageCode, resolver);\r\n return this;\r\n }\r\n\r\n public getLanguage(): string {\r\n return this._language;\r\n }\r\n\r\n public getDefaultLanguage(): string {\r\n return this._defaultLanguage;\r\n }\r\n\r\n public setDefaultLanguage(languageCode: string): this {\r\n this._defaultLanguage = languageCode;\r\n return this;\r\n }\r\n\r\n public setLanguage(languageCode: string): this {\r\n this._language = languageCode;\r\n return this;\r\n }\r\n\r\n public changeLanguage(languageCode: string): Promise {\r\n const currentLanguage = this.getLanguage();\r\n return this.setLanguage(languageCode)\r\n .load()\r\n .catch((error) => {\r\n this.setLanguage(currentLanguage);\r\n throw error;\r\n });\r\n }\r\n\r\n public async load(languageCode: string = this._language): Promise {\r\n const loadPromises: Array> = [this._resourceLoader.load(this._mandatoryResource.languageCode)];\r\n\r\n if (this._defaultLanguage !== languageCode) {\r\n loadPromises.push(this._resourceLoader.load(this._defaultLanguage));\r\n }\r\n\r\n loadPromises.push(this._resourceLoader.load(languageCode));\r\n await Promise.all(loadPromises);\r\n }\r\n}\r\n","import { i18nManager, withImport } from \"@pjs/i18n\";\r\nimport defaultLanguageJson from \"../../resources/lang/en-GB.json\";\r\nimport \"./CkeI18nSet.effect\";\r\n\r\nexport const richTextI18n = i18nManager.createSet(\"rich-text\");\r\n\r\nrichTextI18n.add(\r\n \"en-GB\",\r\n withImport(() => import(\"../../resources/lang/en-GB.json\"))\r\n);\r\n\r\nrichTextI18n.add(\r\n \"cy-GB\",\r\n withImport(() => import(\"../../resources/lang/cy-GB.json\"))\r\n);\r\n\r\nrichTextI18n.add(\r\n \"nl-NL\",\r\n withImport(() => import(\"../../resources/lang/nl-NL.json\"))\r\n);\r\n\r\nrichTextI18n.add(\r\n \"en-US\",\r\n withImport(() => import(\"../../resources/lang/en-US.json\"))\r\n);\r\n","import \"@pjs/theming/dist/theme.css\";\nimport { injectCss } from \"../../../../node_modules/@pebblepad/pebblepack/runtime/InjectCss.runtime.js\";\ninjectCss(`.rt-content-font-styles,.rt-content-font-styles p,.rt-content-font-styles li{font-size:var(--font-size-body);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-body)}.rt-content-font-styles :first-child{margin-top:0}.rt-content-font-styles :last-child,.rt-content-font-styles p:last-child,.rt-content-font-styles li>p:last-child{margin-bottom:0}.rt-content-font-styles h2,.rt-content-font-styles h3,.rt-content-font-styles h4,.rt-content-font-styles h5,.rt-content-font-styles h6{line-height:var(--font-line-height-heading);font-weight:var(--font-weight-regular);text-transform:none}.rt-content-font-styles h2{font-size:var(--font-size-h2)}.rt-content-font-styles h3{font-size:var(--font-size-h3)}.rt-content-font-styles h4{font-size:var(--font-size-h4)}.rt-content-font-styles h5,.rt-content-font-styles h6{font-size:var(--font-size-h5)}.rt-content-font-styles ol{list-style-type:decimal}.rt-content-font-styles ol ol{list-style-type:lower-latin}.rt-content-font-styles ol ol ol{list-style-type:lower-roman}.rt-content-font-styles ol ol ol ol{list-style-type:upper-latin}.rt-content-font-styles ol ol ol ol ol{list-style-type:upper-roman}`);","import { FunctionComponent, ReactElement } from \"react\";\r\nimport { ParseHtml } from \"@pjs/security\";\r\nimport { IRichTextViewProps } from \"./interfaces/IRichTextViewProps\";\r\nimport \"../../styles/rich-text-font-styles.css\";\r\n\r\nexport const RichTextView: FunctionComponent = (props): ReactElement => {\r\n return ;\r\n};\r\n","import { Bold } from \"@pebblepad/ckeditor\";\r\nimport { IToolbarItem } from \"./interfaces/IToolbarItem\";\r\n\r\nexport const bold: IToolbarItem = {\r\n name: \"bold\",\r\n pluginConfig: null,\r\n plugins: [Bold]\r\n};\r\n","import { List, ListProperties } from \"@pebblepad/ckeditor\";\r\nimport { IToolbarItem } from \"./interfaces/IToolbarItem\";\r\n\r\nexport const bulletedList: IToolbarItem = {\r\n name: \"bulletedList\",\r\n pluginConfig: null,\r\n plugins: [List, ListProperties]\r\n};\r\n","import { Indent, IndentBlock } from \"@pebblepad/ckeditor\";\r\nimport { IndentBlockClass } from \"./enums/IndentBlockClass\";\r\nimport { IToolbarItem } from \"./interfaces/IToolbarItem\";\r\n\r\nexport const indent: IToolbarItem = {\r\n name: \"indent\",\r\n pluginConfig: {\r\n indentBlock: {\r\n classes: Object.values(IndentBlockClass)\r\n }\r\n },\r\n plugins: [Indent, IndentBlock]\r\n};\r\n","import { Italic } from \"@pebblepad/ckeditor\";\r\nimport { IToolbarItem } from \"./interfaces/IToolbarItem\";\r\n\r\nexport const italic: IToolbarItem = {\r\n name: \"italic\",\r\n pluginConfig: null,\r\n plugins: [Italic]\r\n};\r\n","import { DecoupledEditor, EventInfo, FocusTracker } from \"@pebblepad/ckeditor\";\r\nimport { noop } from \"@pjs/utilities\";\r\n\r\nexport class FocusTrackerProxy {\r\n private readonly _focusTracker: FocusTracker;\r\n private readonly _processedElements: Set = new Set();\r\n private readonly _editor: DecoupledEditor;\r\n private _handleChange: (event: EventInfo, _: string, _value: unknown, oldValue: unknown) => unknown = noop;\r\n\r\n constructor(editor: DecoupledEditor) {\r\n this._editor = editor;\r\n this._focusTracker = editor.ui.focusTracker;\r\n }\r\n\r\n public track(element: HTMLElement): void {\r\n this._processedElements.add(element);\r\n this._focusTracker.add(element);\r\n }\r\n\r\n public untrack(element: HTMLElement): void {\r\n this._processedElements.delete(element);\r\n this._focusTracker.remove(element);\r\n }\r\n\r\n public freeze(): void {\r\n this.unfreeze();\r\n\r\n this._handleChange = (event, _, _value, oldValue) => {\r\n event.stop();\r\n event.return = oldValue;\r\n };\r\n\r\n this._focusTracker.on(\"set:isFocused\", this._handleChange);\r\n this._focusTracker.on(\"set:focusedElement\", this._handleChange);\r\n }\r\n\r\n public unfreeze(): void {\r\n this._focusTracker.off(\"set:isFocused\", this._handleChange);\r\n this._focusTracker.off(\"set:focusedElement\", this._handleChange);\r\n\r\n this._handleChange = noop;\r\n }\r\n\r\n public reset(): void {\r\n for (const element of this._processedElements) {\r\n this._focusTracker.remove(element);\r\n }\r\n\r\n this._processedElements.clear();\r\n this.unfreeze();\r\n }\r\n\r\n public restore(): void {\r\n this.reset();\r\n this._editor.editing.view.focus();\r\n }\r\n}\r\n","export const linkModelAttributes = {\r\n href: \"linkHref\",\r\n isExternal: \"linkIsExternal\"\r\n} as const;\r\n","import { DecoupledEditor, DocumentSelection, Node, Range } from \"@pebblepad/ckeditor\";\r\nimport { linkModelAttributes } from \"./constants/LinkModelAttributes.const\";\r\nimport { ILinkSelectionContent } from \"./interfaces/ILinkSelectionContent\";\r\nimport { ITypeCheckable } from \"./interfaces/ITypeCheckable\";\r\nimport { ILinkRangeBoundary } from \"./interfaces/ILinkRangeBoundary\";\r\nimport { ITextLike } from \"./interfaces/ITextLike\";\r\nimport { StringCollator } from \"./types/StringCollator\";\r\n\r\nexport class LinkerSelection {\r\n private readonly _editor: DecoupledEditor;\r\n\r\n constructor(editor: DecoupledEditor) {\r\n this._editor = editor;\r\n }\r\n\r\n private static _createDefaultSelectionResult(blockCount: number = 0): ILinkSelectionContent {\r\n return {\r\n blockCount: blockCount,\r\n isExternal: false,\r\n link: \"\",\r\n linkText: \"\"\r\n };\r\n }\r\n\r\n private static _appendText(currentText: string, newText: string): string {\r\n return currentText + newText;\r\n }\r\n private static _prependText(currentText: string, newText: string): string {\r\n return newText + currentText;\r\n }\r\n\r\n public getContent(): ILinkSelectionContent {\r\n const selectedBlocks = Array.from(this._editor.model.document.selection.getSelectedBlocks()).length;\r\n\r\n if (selectedBlocks > 1) {\r\n return LinkerSelection._createDefaultSelectionResult(selectedBlocks);\r\n }\r\n\r\n return this._extractTextFromSelection();\r\n }\r\n\r\n public moveCaretToEnd(): void {\r\n const selection = this._editor.model.document.selection;\r\n if (selection.rangeCount === 0 || !selection.hasAttribute(linkModelAttributes.href)) {\r\n return;\r\n }\r\n\r\n const currentRange = selection.getLastRange() as Range;\r\n const end = this._editor.model.createPositionAt(currentRange.end);\r\n const newRange = this._editor.model.createRange(end);\r\n this._editor.model.change((writer) => writer.setSelection(newRange));\r\n }\r\n\r\n private _isTextLike(node: T): node is T & ITextLike {\r\n return node.is(\"$text\") || node.is(\"$textProxy\");\r\n }\r\n\r\n private _getAttributes(node: Node): [string, boolean] {\r\n return [(node.getAttribute(linkModelAttributes.href) as string) ?? \"\", node.getAttribute(linkModelAttributes.isExternal) === true];\r\n }\r\n\r\n private _getClosestLinkedNode(position: any): Node | null {\r\n const nodeBefore = position.nodeBefore;\r\n const nodeAfter = position.nodeAfter;\r\n\r\n let beforeLink = \"\";\r\n let beforeIsExternal = false;\r\n let afterLink = \"\";\r\n let afterIsExternal = false;\r\n\r\n if (nodeBefore !== null) {\r\n [beforeLink, beforeIsExternal] = this._getAttributes(nodeBefore);\r\n }\r\n\r\n if (nodeAfter !== null) {\r\n [afterLink, afterIsExternal] = this._getAttributes(nodeAfter);\r\n }\r\n\r\n if ((beforeLink === afterLink && beforeIsExternal === afterIsExternal) || afterLink !== \"\") {\r\n return nodeAfter;\r\n }\r\n\r\n if (beforeLink !== \"\") {\r\n return nodeBefore;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _handleCollapsedSelection(selection: DocumentSelection): ILinkSelectionContent {\r\n const firstPosition = selection.getFirstPosition();\r\n if (firstPosition === null) {\r\n return LinkerSelection._createDefaultSelectionResult();\r\n }\r\n\r\n let caretNode: Node | null = firstPosition.textNode;\r\n if (caretNode === null) {\r\n caretNode = this._getClosestLinkedNode(firstPosition);\r\n\r\n if (caretNode === null) {\r\n return LinkerSelection._createDefaultSelectionResult();\r\n }\r\n }\r\n\r\n const [link, isExternal] = this._getAttributes(caretNode);\r\n if (link === \"\") {\r\n return LinkerSelection._createDefaultSelectionResult(1);\r\n }\r\n\r\n const startBoundary = this._getLinkBoundary(caretNode, link, isExternal, \"previousSibling\", LinkerSelection._prependText);\r\n const endBoundary = this._getLinkBoundary(caretNode, link, isExternal, \"nextSibling\", LinkerSelection._appendText);\r\n\r\n let text = this._isTextLike(caretNode) ? caretNode.data : \"\";\r\n let startingNode = caretNode;\r\n let endingNode = caretNode;\r\n\r\n if (startBoundary !== null) {\r\n text = startBoundary.collatedText + text;\r\n startingNode = startBoundary.node;\r\n }\r\n\r\n if (endBoundary !== null) {\r\n text += endBoundary.collatedText;\r\n endingNode = endBoundary.node;\r\n }\r\n\r\n this._selectNodes(startingNode, endingNode);\r\n\r\n return {\r\n blockCount: 1,\r\n isExternal: isExternal,\r\n link: link,\r\n linkText: text\r\n };\r\n }\r\n\r\n private _handleInlineSelection(selection: DocumentSelection): ILinkSelectionContent {\r\n const firstRange = selection.getFirstRange();\r\n if (firstRange === null) {\r\n return LinkerSelection._createDefaultSelectionResult();\r\n }\r\n\r\n const itemIterator = firstRange.getItems();\r\n let collatedText = \"\";\r\n let selectionLink = \"\";\r\n let selectionLinkIsExternal = false;\r\n let hasSingleLink = false;\r\n\r\n for (const item of itemIterator) {\r\n const [itemLink, itemIsExternal] = this._getAttributes(item as Node);\r\n\r\n if (this._isTextLike(item)) {\r\n collatedText += item.data;\r\n }\r\n\r\n if (itemLink !== \"\") {\r\n if (selectionLink !== \"\") {\r\n hasSingleLink = itemLink === selectionLink && itemIsExternal === selectionLinkIsExternal;\r\n continue;\r\n }\r\n\r\n hasSingleLink = true;\r\n selectionLink = itemLink;\r\n selectionLinkIsExternal = itemIsExternal;\r\n }\r\n }\r\n\r\n return {\r\n blockCount: 1,\r\n isExternal: hasSingleLink && selectionLinkIsExternal,\r\n link: hasSingleLink ? selectionLink : \"\",\r\n linkText: collatedText\r\n };\r\n }\r\n\r\n private _extractTextFromSelection(): ILinkSelectionContent {\r\n const selection = this._editor.model.document.selection;\r\n\r\n if (selection.isCollapsed) {\r\n return this._handleCollapsedSelection(selection);\r\n }\r\n\r\n return this._handleInlineSelection(selection);\r\n }\r\n\r\n private _getLinkBoundary(node: Node, linkValue: string, isExternal: boolean, traversalKey: \"nextSibling\" | \"previousSibling\", collator: StringCollator): ILinkRangeBoundary | null {\r\n let currentNode = node[traversalKey];\r\n let boundaryNode = null;\r\n let collatedText = \"\";\r\n\r\n while (currentNode !== null) {\r\n const [nodeLink, nodeIsExternal] = this._getAttributes(currentNode);\r\n if (nodeLink !== linkValue || nodeIsExternal !== isExternal) {\r\n break;\r\n }\r\n\r\n if (this._isTextLike(currentNode)) {\r\n collatedText = collator(collatedText, currentNode.data);\r\n }\r\n\r\n boundaryNode = currentNode;\r\n currentNode = currentNode[traversalKey];\r\n }\r\n\r\n if (boundaryNode === null) {\r\n return null;\r\n }\r\n\r\n return {\r\n collatedText: collatedText,\r\n node: boundaryNode\r\n };\r\n }\r\n\r\n private _selectNodes(startNode: Node, endNode: Node): void {\r\n const start = this._editor.model.createPositionAt(startNode, \"before\");\r\n const end = this._editor.model.createPositionAt(endNode, \"after\");\r\n const range = this._editor.model.createRange(start, end);\r\n\r\n this._editor.model.change((writer) => writer.setSelection(range));\r\n }\r\n}\r\n","import { DecoupledEditor, LinkCommand, UnlinkCommand } from \"@pebblepad/ckeditor\";\r\nimport { LinkerSelection } from \"./LinkerSelection\";\r\nimport { FocusTrackerProxy } from \"./FocusTrackerProxy\";\r\nimport { ILinkSelectionContent } from \"./interfaces/ILinkSelectionContent\";\r\nimport { linkModelAttributes } from \"./constants/LinkModelAttributes.const\";\r\n\r\nexport class LinkerProcessor {\r\n public readonly focusTrackerProxy: FocusTrackerProxy;\r\n\r\n private readonly _editor: DecoupledEditor;\r\n private readonly _linkerSelection: LinkerSelection;\r\n private readonly _linkCommand: LinkCommand;\r\n private readonly _unlinkCommand: UnlinkCommand;\r\n\r\n constructor(editor: DecoupledEditor, linkCommand: LinkCommand, unlinkCommand: UnlinkCommand) {\r\n this._editor = editor;\r\n this._linkCommand = linkCommand;\r\n this._unlinkCommand = unlinkCommand;\r\n\r\n this._linkerSelection = new LinkerSelection(editor);\r\n this.focusTrackerProxy = new FocusTrackerProxy(editor);\r\n }\r\n\r\n public getSelectedContent(): ILinkSelectionContent {\r\n return this._linkerSelection.getContent();\r\n }\r\n\r\n public addLink(link: string, isExternal: boolean): void {\r\n this._linkCommand.execute(link, { [linkModelAttributes.isExternal]: isExternal });\r\n this._linkerSelection.moveCaretToEnd();\r\n }\r\n\r\n public removeLink(): void {\r\n this._unlinkCommand.execute();\r\n this._editor.editing.view.focus();\r\n }\r\n\r\n public insertText(text: string): void {\r\n this._editor.model.change((writer) => {\r\n const node = writer.createText(text);\r\n const range = this._editor.model.insertContent(node);\r\n writer.setSelection(range);\r\n });\r\n }\r\n}\r\n","import { AttributeElement, DecoupledEditor, DowncastConversionApi, Match, ViewElement } from \"@pebblepad/ckeditor\";\r\nimport { linkModelAttributes } from \"./constants/LinkModelAttributes.const\";\r\n\r\nexport class LinkerModelSchema {\r\n public static applyTo(editor: DecoupledEditor): void {\r\n editor.model.schema.extend(\"$text\", {\r\n allowAttributes: [linkModelAttributes.href, linkModelAttributes.isExternal]\r\n });\r\n\r\n editor.conversion.for(\"downcast\").attributeToElement({\r\n model: linkModelAttributes.href,\r\n view: LinkerModelSchema._hrefAttributeToElement\r\n });\r\n\r\n editor.conversion.for(\"downcast\").attributeToElement({\r\n model: linkModelAttributes.isExternal,\r\n view: LinkerModelSchema._externalAttributeToElement\r\n });\r\n\r\n editor.conversion.for(\"upcast\").elementToAttribute({\r\n model: {\r\n key: linkModelAttributes.href,\r\n value: (viewElement: ViewElement) => viewElement.getAttribute(\"href\") ?? null\r\n },\r\n view: {\r\n attributes: \"href\",\r\n name: \"a\"\r\n }\r\n });\r\n\r\n editor.conversion.for(\"upcast\").elementToAttribute({\r\n model: linkModelAttributes.isExternal,\r\n view: LinkerModelSchema._elementToExternalAttributeConverter\r\n });\r\n }\r\n\r\n private static _hrefAttributeToElement(value: string, api: DowncastConversionApi): AttributeElement {\r\n return api.writer.createAttributeElement(\"a\", { href: value });\r\n }\r\n\r\n private static _externalAttributeToElement(_: string, api: DowncastConversionApi): AttributeElement {\r\n return api.writer.createAttributeElement(\"a\", { rel: \"noopener noreferrer\", target: \"_blank\" });\r\n }\r\n\r\n private static _elementToExternalAttributeConverter(element: ViewElement): Match | null {\r\n if (element.name !== \"a\" || element.getAttribute(\"target\") !== \"_blank\") {\r\n return null;\r\n }\r\n\r\n const attributes = [\"target\"];\r\n if (element.hasAttribute(\"rel\")) {\r\n attributes.push(\"rel\");\r\n }\r\n\r\n return { attributes: attributes, name: true };\r\n }\r\n}\r\n","import { ButtonView, DecoupledEditor, DirectChange, EventInfo, LinkCommand, ManualDecorator, Plugin, UnlinkCommand } from \"@pebblepad/ckeditor\";\r\nimport { isSafeUrlProtocol } from \"@pjs/security\";\r\nimport { richTextI18n } from \"../../i18n/RichTextI18n.const\";\r\nimport { FocusTrackerProxy } from \"./FocusTrackerProxy\";\r\nimport { linkModelAttributes } from \"./constants/LinkModelAttributes.const\";\r\nimport { linkIcon } from \"./Linker.icon\";\r\nimport { LinkerProcessor } from \"./LinkerProcessor\";\r\nimport { ProcessLink } from \"./types/ProcessLink\";\r\nimport { LinkerModelSchema } from \"./LinkerModelSchema\";\r\nimport { ILinkerSelectionPosition } from \"./interfaces/ILinkerSelectionPosition\";\r\n\r\nexport class LinkerPlugin extends Plugin {\r\n public static readonly linkCommand: string = \"link\";\r\n public static readonly unlinkCommand: string = \"unlink\";\r\n public static readonly configKey: string = \"linker\";\r\n private _caretGravityId: string = \"\";\r\n\r\n public init(): void {\r\n const editor = this.editor as DecoupledEditor;\r\n\r\n const linkerConfig = editor.config.get(LinkerPlugin.configKey) as { onLink: ProcessLink } | undefined;\r\n if (linkerConfig === undefined || linkerConfig.onLink === undefined) {\r\n return;\r\n }\r\n\r\n LinkerModelSchema.applyTo(editor);\r\n editor.model.document.selection.on(\"change:range\", this._fixCaretPosition.bind(this));\r\n editor.model.document.selection.on(\"change:attribute\", this._fixStartOfLinkCaretPosition.bind(this));\r\n\r\n const linkCommand = new LinkCommand(editor);\r\n const unlinkCommand = new UnlinkCommand(editor);\r\n\r\n editor.commands.add(LinkerPlugin.linkCommand, linkCommand);\r\n editor.commands.add(LinkerPlugin.unlinkCommand, unlinkCommand);\r\n\r\n linkCommand.manualDecorators.add(\r\n new ManualDecorator({\r\n attributes: {\r\n rel: \"noopener noreferrer\",\r\n target: \"_blank\"\r\n },\r\n id: linkModelAttributes.isExternal,\r\n label: \"\",\r\n mode: \"manual\"\r\n })\r\n );\r\n\r\n editor.ui.componentFactory.add(\"linker\", () => this._setupButtonView(editor, linkerConfig.onLink, linkCommand, unlinkCommand));\r\n }\r\n\r\n private _setupButtonView(editor: DecoupledEditor, onLink: ProcessLink, linkCommand: LinkCommand, unlinkCommand: UnlinkCommand): ButtonView {\r\n const button = new ButtonView();\r\n\r\n editor.keystrokes.set(\"Ctrl+K\", (_, cancel) => {\r\n button.fire(\"execute\");\r\n cancel();\r\n });\r\n\r\n button.set({\r\n icon: linkIcon,\r\n label: richTextI18n.getString(\"toolbar_items.linker.label\"),\r\n tooltip: true\r\n });\r\n\r\n button.on(\"execute\", () => {\r\n const linkProcessor = new LinkerProcessor(editor, linkCommand, unlinkCommand);\r\n const focusTrackerProxy = new FocusTrackerProxy(editor);\r\n const result = linkProcessor.getSelectedContent();\r\n\r\n onLink(result, focusTrackerProxy).subscribe({\r\n complete: () => focusTrackerProxy.restore(),\r\n next: (linkObj) => {\r\n if (linkObj.mode === \"remove\") {\r\n linkProcessor.removeLink();\r\n return;\r\n }\r\n\r\n if (!isSafeUrlProtocol(linkObj.updatedLink)) {\r\n return;\r\n }\r\n\r\n const updatedLinkText = linkObj.updatedLinkText === \"\" && result.blockCount <= 1 ? linkObj.updatedLink : linkObj.updatedLinkText;\r\n if (updatedLinkText !== result.linkText) {\r\n linkProcessor.insertText(updatedLinkText);\r\n }\r\n\r\n linkProcessor.addLink(linkObj.updatedLink, linkObj.isExternal);\r\n }\r\n });\r\n });\r\n\r\n return button;\r\n }\r\n\r\n private _fixCaretPosition(): void {\r\n if (this._caretGravityId !== \"\") {\r\n this.editor.model.change((writer) => {\r\n writer.restoreSelectionGravity(this._caretGravityId);\r\n this._caretGravityId = \"\";\r\n });\r\n }\r\n\r\n const selection = this.editor.model.document.selection;\r\n if (!selection.isCollapsed) {\r\n return;\r\n }\r\n\r\n const position = selection.getFirstPosition();\r\n if (position === null) {\r\n return;\r\n }\r\n\r\n if (this._isCaretAtStartOfLink(position)) {\r\n this._removeLinkAttributesFromSelection();\r\n return;\r\n }\r\n\r\n if (this._isCaretAtEndOfLink(position)) {\r\n this._caretGravityId = this.editor.model.change((writer) => writer.overrideSelectionGravity());\r\n }\r\n }\r\n\r\n private _isCaretAtEndOfLink(position: ILinkerSelectionPosition): boolean {\r\n return position.nodeBefore !== null && position.nodeBefore.hasAttribute(linkModelAttributes.href) && position.nodeBefore.endOffset === position.path[position.path.length - 1];\r\n }\r\n\r\n private _isCaretAtStartOfLink(position: ILinkerSelectionPosition): boolean {\r\n return position.nodeBefore === null && position.isAtStart && position.nodeAfter !== null && position.nodeAfter.hasAttribute(linkModelAttributes.href);\r\n }\r\n\r\n private _removeLinkAttributesFromSelection(): void {\r\n this.editor.model.change((writer) => {\r\n writer.removeSelectionAttribute(\"linkHref\");\r\n writer.removeSelectionAttribute(\"linkIsExternal\");\r\n });\r\n }\r\n\r\n private _fixStartOfLinkCaretPosition(_: EventInfo, directChange: DirectChange): void {\r\n const selection = this.editor.model.document.selection;\r\n if (!selection.isCollapsed || !directChange.attributeKeys.includes(\"linkHref\")) {\r\n return;\r\n }\r\n\r\n const position = selection.getFirstPosition();\r\n if (position !== null && this._isCaretAtStartOfLink(position)) {\r\n this._removeLinkAttributesFromSelection();\r\n }\r\n }\r\n}\r\n","export const linkIcon = ``;\r\n","import { LinkerPlugin } from \"../editor-plugins/linker/LinkerPlugin\";\r\nimport { IToolbarItem } from \"./interfaces/IToolbarItem\";\r\n\r\nexport const linker: IToolbarItem = {\r\n name: \"linker\",\r\n pluginConfig: null,\r\n plugins: [LinkerPlugin],\r\n registeredCommands: [LinkerPlugin.linkCommand, LinkerPlugin.unlinkCommand]\r\n};\r\n","import { List, ListProperties } from \"@pebblepad/ckeditor\";\r\nimport { IToolbarItem } from \"./interfaces/IToolbarItem\";\r\n\r\nexport const numberedList: IToolbarItem = {\r\n name: \"numberedList\",\r\n pluginConfig: null,\r\n plugins: [List, ListProperties]\r\n};\r\n","import { Indent, IndentBlock } from \"@pebblepad/ckeditor\";\r\nimport { IToolbarItem } from \"./interfaces/IToolbarItem\";\r\n\r\nexport const outdent: IToolbarItem = {\r\n name: \"outdent\",\r\n pluginConfig: null,\r\n plugins: [Indent, IndentBlock]\r\n};\r\n","import { Undo } from \"@pebblepad/ckeditor\";\r\nimport { IToolbarItem } from \"./interfaces/IToolbarItem\";\r\n\r\nexport const redo: IToolbarItem = {\r\n name: \"redo\",\r\n pluginConfig: null,\r\n plugins: [Undo]\r\n};\r\n","import { RemoveFormat } from \"@pebblepad/ckeditor\";\r\nimport { IToolbarItem } from \"./interfaces/IToolbarItem\";\r\n\r\nexport const removeFormat: IToolbarItem = {\r\n name: \"removeFormat\",\r\n pluginConfig: null,\r\n plugins: [RemoveFormat]\r\n};\r\n","import { Plugin } from \"@pebblepad/ckeditor\";\r\nimport { richTextI18n } from \"../../i18n/RichTextI18n.const\";\r\n\r\nexport class SpecialCharactersGreek extends Plugin {\r\n public init(): void {\r\n const plugin = this.editor.plugins.get(\"SpecialCharacters\");\r\n\r\n plugin.addItems(richTextI18n.getString(\"toolbar_items.special_characters.greek.name\"), [\r\n { character: \"Α\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.alpha\") },\r\n { character: \"α\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.alpha_lower\") },\r\n { character: \"Β\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.beta\") },\r\n { character: \"β\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.beta_lower\") },\r\n { character: \"Γ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.gamma\") },\r\n { character: \"γ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.gamma_lower\") },\r\n { character: \"Δ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.delta\") },\r\n { character: \"δ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.delta_lower\") },\r\n { character: \"Ε\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.epsilon\") },\r\n { character: \"ε\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.epsilon_lower\") },\r\n { character: \"Ζ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.zeta\") },\r\n { character: \"ζ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.zeta_lower\") },\r\n { character: \"Η\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.eta\") },\r\n { character: \"η\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.eta_lower\") },\r\n { character: \"Θ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.theta\") },\r\n { character: \"θ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.theta_lower\") },\r\n { character: \"Ι\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.iota\") },\r\n { character: \"ι\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.iota_lower\") },\r\n { character: \"Κ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.kappa\") },\r\n { character: \"κ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.kappa_lower\") },\r\n { character: \"Λ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.lambda\") },\r\n { character: \"λ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.lambda_lower\") },\r\n { character: \"Μ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.mu\") },\r\n { character: \"μ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.mu_lower\") },\r\n { character: \"Ν\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.nu\") },\r\n { character: \"ν\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.nu_lower\") },\r\n { character: \"Ξ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.xi\") },\r\n { character: \"ξ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.xi_lower\") },\r\n { character: \"Ο\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.omicron\") },\r\n { character: \"ο\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.omicron_lower\") },\r\n { character: \"Π\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.pi\") },\r\n { character: \"π\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.pi_lower\") },\r\n { character: \"Ρ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.rho\") },\r\n { character: \"ρ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.rho_lower\") },\r\n { character: \"Σ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.sigma\") },\r\n { character: \"σ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.sigma_lower\") },\r\n { character: \"ς\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.sigma_lower_end\") },\r\n { character: \"Τ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.tau\") },\r\n { character: \"τ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.tau_lower\") },\r\n { character: \"Υ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.upsilon\") },\r\n { character: \"υ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.upsilon_lower\") },\r\n { character: \"Φ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.phi\") },\r\n { character: \"φ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.phi_lower\") },\r\n { character: \"Χ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.chi\") },\r\n { character: \"χ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.chi_lower\") },\r\n { character: \"Ψ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.psi\") },\r\n { character: \"ψ\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.psi_lower\") },\r\n { character: \"Ω\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.omega\") },\r\n { character: \"ω\", title: richTextI18n.getString(\"toolbar_items.special_characters.greek.omega_lower\") }\r\n ]);\r\n }\r\n}\r\n","import { Plugin } from \"@pebblepad/ckeditor\";\r\nimport { richTextI18n } from \"../../i18n/RichTextI18n.const\";\r\n\r\n/**\r\n * A plugin which adds additional characters to the CKE5 \"Mathematical\" special character preset.\r\n * As per the docs, a key of \"Mathematical\" must be hardcoded in order to add more to CKE5's existing data set.\r\n * Internally CKE5 will make use of translations for this special key (no multi-lang issues).\r\n * Docs: https://ckeditor.com/docs/ckeditor5/latest/features/special-characters.html#adding-characters-to-an-existing-category\r\n */\r\nexport class SpecialCharactersMathExtended extends Plugin {\r\n public init(): void {\r\n const plugin = this.editor.plugins.get(\"SpecialCharacters\");\r\n\r\n plugin.addItems(\"Mathematical\", [\r\n { character: \"‰\", title: richTextI18n.getString(\"toolbar_items.special_characters.math.per_mille\") },\r\n { character: \"‱\", title: richTextI18n.getString(\"toolbar_items.special_characters.math.per_ten_thousand\") }\r\n ]);\r\n }\r\n}\r\n","import { SpecialCharacters, SpecialCharactersLatin, SpecialCharactersMathematical } from \"@pebblepad/ckeditor\";\r\nimport { SpecialCharactersGreek } from \"../editor-plugins/special-characters/SpecialCharactersGreek\";\r\nimport { SpecialCharactersMathExtended } from \"../editor-plugins/special-characters/SpecialCharactersMathExtended\";\r\nimport { IToolbarItem } from \"./interfaces/IToolbarItem\";\r\n\r\nexport const specialCharacters: IToolbarItem = {\r\n name: \"specialCharacters\",\r\n pluginConfig: null,\r\n plugins: [SpecialCharacters, SpecialCharactersGreek, SpecialCharactersLatin, SpecialCharactersMathematical, SpecialCharactersMathExtended]\r\n};\r\n","import { Strikethrough } from \"@pebblepad/ckeditor\";\r\nimport { IToolbarItem } from \"./interfaces/IToolbarItem\";\r\n\r\nexport const strikethrough: IToolbarItem = {\r\n name: \"strikethrough\",\r\n pluginConfig: null,\r\n plugins: [Strikethrough]\r\n};\r\n","import { Underline } from \"@pebblepad/ckeditor\";\r\nimport { IToolbarItem } from \"./interfaces/IToolbarItem\";\r\n\r\nexport const underline: IToolbarItem = {\r\n name: \"underline\",\r\n pluginConfig: null,\r\n plugins: [Underline]\r\n};\r\n","import { Undo } from \"@pebblepad/ckeditor\";\r\nimport { IToolbarItem } from \"./interfaces/IToolbarItem\";\r\n\r\nexport const undo: IToolbarItem = {\r\n name: \"undo\",\r\n pluginConfig: null,\r\n plugins: [Undo]\r\n};\r\n","export enum IndentBlockClass {\r\n Indent2 = \"rt-i2\",\r\n Indent4 = \"rt-i4\",\r\n Indent6 = \"rt-i6\",\r\n Indent8 = \"rt-i8\",\r\n Indent10 = \"rt-i10\",\r\n Indent12 = \"rt-i12\",\r\n Indent14 = \"rt-i14\",\r\n Indent16 = \"rt-i16\",\r\n Indent18 = \"rt-i18\",\r\n Indent20 = \"rt-i20\"\r\n}\r\n","import { IToolbarItem } from \"../interfaces/IToolbarItem\";\r\nimport { removeFormat } from \"../RemoveFormat\";\r\nimport { numberedList } from \"../NumberedList\";\r\nimport { bulletedList } from \"../BulletedList\";\r\nimport { outdent } from \"../Outdent\";\r\nimport { indent } from \"../Indent\";\r\nimport { bold } from \"../Bold\";\r\nimport { italic } from \"../Italic\";\r\nimport { underline } from \"../Underline\";\r\nimport { strikethrough } from \"../StrikeThrough\";\r\nimport { linker } from \"../Linker\";\r\nimport { undo } from \"../Undo\";\r\nimport { redo } from \"../Redo\";\r\nimport { specialCharacters } from \"../SpecialCharacters\";\r\n\r\nexport const compactToolbarPreset: Array> = [\r\n [bold, italic, underline, strikethrough],\r\n [numberedList, bulletedList],\r\n [removeFormat],\r\n [linker],\r\n [outdent, indent],\r\n [specialCharacters],\r\n [undo, redo]\r\n];\r\n","/**\r\n * @description A basic binary search to get the closest number within a list of numbers. The list of numbers MUST BE ordered in ascending order!\r\n */\r\nexport function getClosestNumericalMatch(target: number, numbers: ReadonlyArray): number | null {\r\n let left = 0;\r\n let right = numbers.length - 1;\r\n let closestValue = null;\r\n\r\n while (left <= right) {\r\n const middle = Math.floor((left + right) / 2);\r\n const value = numbers[middle];\r\n\r\n if (value === target) {\r\n return value;\r\n }\r\n\r\n if (closestValue === null || Math.abs(target - value) <= Math.abs(target - closestValue)) {\r\n closestValue = value;\r\n }\r\n\r\n if (value < target) {\r\n left = middle + 1;\r\n } else {\r\n right = middle - 1;\r\n }\r\n }\r\n\r\n return closestValue;\r\n}\r\n","export const passThrough = (value: T): T => value;\r\n","import { convertPixelToRem } from \"@pjs/theming\";\r\nimport { passThrough } from \"../pass-through/PassThrough.function\";\r\n\r\nexport class RemConverter {\r\n private static readonly _cmToPxAtStandardDpiRatio: number = 37.795;\r\n private static readonly _ptToPxRatio: number = 1.333;\r\n private static readonly _numberAndUnitMatcher: RegExp = /^([0-9.-]+)([a-zA-Z%]+)$/;\r\n private static readonly _unitMap: Readonly number>> = {\r\n cm: (value) => convertPixelToRem(value * RemConverter._cmToPxAtStandardDpiRatio),\r\n em: passThrough,\r\n in: (value) => convertPixelToRem(value * 2.54 * RemConverter._cmToPxAtStandardDpiRatio),\r\n mm: (value) => convertPixelToRem(value * 0.1 * RemConverter._cmToPxAtStandardDpiRatio),\r\n pt: (value) => convertPixelToRem(value * RemConverter._ptToPxRatio),\r\n px: convertPixelToRem,\r\n rem: passThrough\r\n };\r\n\r\n public static cssValueToRem(cssValue: string): number {\r\n const match = cssValue.match(RemConverter._numberAndUnitMatcher);\r\n if (match === null) {\r\n return NaN;\r\n }\r\n\r\n return RemConverter._convertToRem(parseFloat(match[1]), match[2]);\r\n }\r\n\r\n private static _convertToRem(value: number, unit: string): number {\r\n const converter = RemConverter._unitMap[unit];\r\n\r\n if (converter === undefined) {\r\n return NaN;\r\n }\r\n\r\n return converter(value);\r\n }\r\n}\r\n","export enum HtmlSanitiserEvent {\r\n BeforeElement = \"beforeSanitizeElements\",\r\n OnAttribute = \"uponSanitizeAttribute\",\r\n AfterAttribute = \"afterSanitizeAttributes\"\r\n}\r\n","import { SanitiserEventCallback } from \"../../types/SanitiserEventCallback\";\r\nimport { globalAnchorTransform } from \"./GlobalAnchorTransform.const\";\r\n\r\nexport const globalAnchorSanitiseEventHandler: SanitiserEventCallback = (element) => {\r\n if (element.nodeName === \"A\") {\r\n globalAnchorTransform.transform(element as HTMLAnchorElement);\r\n }\r\n};\r\n","import { isSafeUrlProtocol } from \"../is-safe-url-protocol/IsSafeUrlProtocol.function\";\r\nimport { SandboxedTagMutation } from \"../html-string-parser/SandboxedTagMutation\";\r\nimport { IAnchorTransformConfig } from \"./interfaces/IAnchorTransformConfig\";\r\n\r\nexport class AnchorTransform extends SandboxedTagMutation {\r\n private readonly _config: IAnchorTransformConfig;\r\n\r\n constructor(config: IAnchorTransformConfig) {\r\n super();\r\n this._config = config;\r\n }\r\n\r\n protected _mutate(element: HTMLAnchorElement): boolean {\r\n let href = element.getAttribute(\"href\") ?? \"\";\r\n href = this._config.preprocessHref(href, element);\r\n\r\n if (href === \"\" || !isSafeUrlProtocol(href)) {\r\n const parent = element.parentElement;\r\n if (parent !== null) {\r\n element.replaceWith(...element.childNodes);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n this._makeTargetSafe(element);\r\n return true;\r\n }\r\n\r\n private _makeTargetSafe(element: HTMLAnchorElement): void {\r\n if (element.target === \"\") {\r\n return;\r\n }\r\n\r\n if (element.target === \"_blank\") {\r\n element.setAttribute(\"rel\", \"noreferrer noopener\");\r\n return;\r\n }\r\n\r\n element.removeAttribute(\"target\");\r\n }\r\n}\r\n","import { SandboxedTagMutation } from \"../html-string-parser/SandboxedTagMutation\";\r\nimport { globalAnchorTransformConfig } from \"./GlobalAnchorTransformConfig.const\";\r\nimport { AnchorTransform } from \"./AnchorTransform\";\r\n\r\nexport const globalAnchorTransform: SandboxedTagMutation = new AnchorTransform(globalAnchorTransformConfig);\r\n","import { IAnchorTransformConfig } from \"./interfaces/IAnchorTransformConfig\";\r\n\r\nexport const globalAnchorTransformConfig: IAnchorTransformConfig = {\r\n preprocessHref: (): string => {\r\n throw new Error(\"Href rule not configured\");\r\n }\r\n};\r\n","import { IHtmlTagConfig } from \"./interfaces/IHtmlTagConfig\";\r\n\r\nexport const emptyTagConfig: IHtmlTagConfig = {\r\n attributes: null,\r\n styles: null\r\n};\r\n","import { commonBlockElements } from \"./CommonBlockElements.const\";\r\n\r\nconst cleanupRegex = new RegExp(`\\\\r?\\\\n|\\\\t|( ) +|(\\\\/(?:${commonBlockElements.join(\"|\")})>)\\\\s+(<)`, \"g\");\r\n\r\nexport function cleanupWhitespaceInHtmlString(htmlString: string): string {\r\n return htmlString.replace(cleanupRegex, \"$1$2$3\");\r\n}\r\n","import { moveElementChildren } from \"@pjs/utilities\";\r\nimport { HeadingTagName } from \"../../types/HeadingTagName\";\r\n\r\nexport class SemanticHeadingFixer {\r\n public static readonly headingNames: Array = [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"];\r\n private readonly _startingIndex: number;\r\n\r\n constructor(startingHeadingIndex: number) {\r\n this._startingIndex = startingHeadingIndex;\r\n }\r\n\r\n public static createFromHeadingName(startingHeadingName: HeadingTagName): SemanticHeadingFixer {\r\n const index = SemanticHeadingFixer.headingNames.indexOf(startingHeadingName);\r\n return new SemanticHeadingFixer(index);\r\n }\r\n\r\n public fix(containerElement: Element): void {\r\n if (this._startingIndex === -1) {\r\n return;\r\n }\r\n\r\n let index = this._startingIndex;\r\n let newTagName = SemanticHeadingFixer.headingNames[index];\r\n\r\n const allHeadings: Array> = [];\r\n for (const headingName of SemanticHeadingFixer.headingNames) {\r\n const headings = containerElement.getElementsByTagName(headingName);\r\n\r\n if (headings.length > 0) {\r\n allHeadings.push(Array.from(headings));\r\n }\r\n }\r\n\r\n const lastIndex = SemanticHeadingFixer.headingNames.length - 1;\r\n for (const headings of allHeadings) {\r\n if (headings[0].tagName === newTagName) {\r\n continue;\r\n }\r\n\r\n for (const heading of headings) {\r\n this._replace(heading, newTagName);\r\n }\r\n\r\n index++;\r\n newTagName = SemanticHeadingFixer.headingNames[Math.min(index, lastIndex)];\r\n }\r\n }\r\n\r\n private _replace(heading: Element, newHeadingName: HeadingTagName): void {\r\n const newHeading = heading.ownerDocument.createElement(newHeadingName);\r\n\r\n const attributes = heading.getAttributeNames();\r\n for (const attribute of attributes) {\r\n newHeading.setAttribute(attribute, heading.getAttribute(attribute) as string);\r\n }\r\n\r\n moveElementChildren(heading, newHeading);\r\n heading.replaceWith(newHeading);\r\n }\r\n}\r\n","const dumpsterName = \"domPurifyDumpster\";\r\nconst dumpsterDocument = document.implementation.createDocument(dumpsterName, null);\r\n\r\nexport const domPurifyDumpster = {\r\n _element: dumpsterDocument.createElementNS(dumpsterName, dumpsterName),\r\n empty: (): void => {\r\n domPurifyDumpster._element.innerHTML = \"\";\r\n },\r\n trash: (node: Node): void => {\r\n domPurifyDumpster._element.appendChild(node);\r\n }\r\n} as const;\r\n","import DOMPurify, { SanitizeAttributeHookEvent } from \"dompurify\";\r\nimport { HtmlSanitiserEvent } from \"../../enums/HtmlSanitiserEvent\";\r\nimport { HeadingTagName } from \"../../types/HeadingTagName\";\r\nimport { SanitiserEventCallback } from \"../../types/SanitiserEventCallback\";\r\nimport { DomPurifyConfig } from \"../../types/DomPurifyConfig\";\r\nimport { convertElementToFragment } from \"../../utilities/ConvertElementToFragment.function\";\r\nimport { cleanupWhitespaceInHtmlString } from \"../../utilities/cleanupWhitespaceInHtmlString.function\";\r\nimport { SemanticHeadingFixer } from \"./SemanticHeadingFixer\";\r\nimport { KebabCssStyleDeclarationKeys } from \"./types/KebabCssStyleDeclarationKeys\";\r\nimport { HTMLElementWithSpecStyles } from \"./types/HTMLElementWithSpecStyles\";\r\nimport { IHtmlStringParserConfig } from \"./interfaces/IHtmlStringParserConfig\";\r\nimport { IHtmlTagConfig } from \"./interfaces/IHtmlTagConfig\";\r\nimport { domPurifyDumpster } from \"./DomPurifyDumpster.const\";\r\nimport { emptyTagConfig } from \"./EmptyTagConfig.const\";\r\nimport { ReadonlyElement } from \"./types/ReadonlyElement\";\r\nimport { ReadonlyCssStyleDeclaration } from \"./types/ReadonlyCssStyleDeclaration\";\r\nimport { IHtmlStringParser } from \"./interfaces/IHtmlStringParser\";\r\nimport { StyleConfig } from \"./types/StyleConfig\";\r\n\r\nexport class HtmlStringParser implements IHtmlStringParser {\r\n private readonly _config: IHtmlStringParserConfig;\r\n private readonly _domPurifyConfig: DomPurifyConfig;\r\n private readonly _headingFixer: SemanticHeadingFixer | null;\r\n private readonly _processNodeWithContext: SanitiserEventCallback;\r\n private readonly _preprocessWithContext: SanitiserEventCallback;\r\n private readonly _processAttributeWithContext: (element: Element, eventData: SanitizeAttributeHookEvent) => void;\r\n private _activeTagConfig: IHtmlTagConfig = emptyTagConfig;\r\n\r\n constructor(config: IHtmlStringParserConfig, baseHeadingLevel: HeadingTagName | null) {\r\n this._config = config;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n this._domPurifyConfig = { ADD_ATTR: [\"target\"], ALLOWED_TAGS: Object.keys(this._config.tags), RETURN_DOM: true };\r\n this._headingFixer = baseHeadingLevel === null ? null : SemanticHeadingFixer.createFromHeadingName(baseHeadingLevel);\r\n\r\n this._processNodeWithContext = this._processNode.bind(this);\r\n this._processAttributeWithContext = this._processAttribute.bind(this);\r\n this._preprocessWithContext = this._preprocess.bind(this);\r\n }\r\n\r\n private static _isElement(node: Node): node is Element {\r\n return node.nodeType === Node.ELEMENT_NODE;\r\n }\r\n\r\n /**\r\n * @description The provided content is parsed into a sandbox Document. Once the content is cleaned, the body of that document is returned.\r\n * This allows:\r\n * - consumers to do further post-processing using the HTMLElement API.\r\n * - an efficient way to work with the internal DOMPurify (avoids unnecessary post-processing to a DocumentFragment)\r\n */\r\n public parse(dirtyContent: string): HTMLBodyElement {\r\n DOMPurify.addHook(HtmlSanitiserEvent.BeforeElement, this._preprocessWithContext);\r\n\r\n const parsedHtml = DOMPurify.sanitize(cleanupWhitespaceInHtmlString(dirtyContent), this._domPurifyConfig);\r\n\r\n DOMPurify.removeAllHooks();\r\n DOMPurify.removed.length = 0;\r\n domPurifyDumpster.empty();\r\n this._activeTagConfig = emptyTagConfig;\r\n\r\n return parsedHtml as HTMLBodyElement;\r\n }\r\n\r\n public parseToFragment(dirtyContent: string): DocumentFragment {\r\n const parsedHtml = this.parse(dirtyContent);\r\n return convertElementToFragment(parsedHtml);\r\n }\r\n\r\n public parseToString(dirtyContent: string): string {\r\n return this.parse(dirtyContent).innerHTML;\r\n }\r\n\r\n private _preprocess(node: Node): void {\r\n if (this._headingFixer !== null && HtmlStringParser._isElement(node)) {\r\n this._headingFixer.fix(node);\r\n }\r\n\r\n DOMPurify.removeHook(HtmlSanitiserEvent.BeforeElement);\r\n DOMPurify.addHook(HtmlSanitiserEvent.BeforeElement, this._processNodeWithContext);\r\n DOMPurify.addHook(HtmlSanitiserEvent.OnAttribute, this._processAttributeWithContext);\r\n }\r\n\r\n private _processNode(node: Node): void {\r\n this._activeTagConfig = emptyTagConfig;\r\n\r\n if (node.nodeType === Node.TEXT_NODE) {\r\n if (this._isRedundantWhitespace(node as Text)) {\r\n domPurifyDumpster.trash(node);\r\n }\r\n return;\r\n }\r\n\r\n if (!HtmlStringParser._isElement(node)) {\r\n domPurifyDumpster.trash(node);\r\n return;\r\n }\r\n\r\n const tagName = node.tagName.toLowerCase();\r\n if (tagName === \"body\") {\r\n return;\r\n }\r\n\r\n const transformer = this._config.transforms[tagName];\r\n if (transformer !== undefined) {\r\n const newElement = transformer.transform(node);\r\n\r\n if (newElement !== node) {\r\n if (newElement !== null) {\r\n node.replaceWith(newElement);\r\n }\r\n\r\n domPurifyDumpster.trash(node);\r\n return;\r\n }\r\n }\r\n\r\n const tagConfig = this._config.tags[tagName];\r\n if (tagConfig === undefined) {\r\n if (node.childNodes.length > 0) {\r\n node.replaceWith(node, ...node.childNodes);\r\n }\r\n\r\n domPurifyDumpster.trash(node);\r\n return;\r\n }\r\n\r\n this._activeTagConfig = tagConfig;\r\n }\r\n\r\n private _processAttribute(element: Element, eventData: SanitizeAttributeHookEvent): void {\r\n if (this._activeTagConfig.styles !== null && eventData.attrName === \"style\") {\r\n eventData.attrValue = this._processStyles(element as HTMLElementWithSpecStyles, this._activeTagConfig.styles);\r\n eventData.keepAttr = eventData.attrValue !== \"\";\r\n return;\r\n }\r\n\r\n if (this._activeTagConfig.attributes === null) {\r\n eventData.keepAttr = false;\r\n return;\r\n }\r\n\r\n const processor = this._activeTagConfig.attributes[eventData.attrName];\r\n if (processor === undefined) {\r\n eventData.keepAttr = false;\r\n return;\r\n }\r\n\r\n const newValue = processor(eventData.attrValue, element as ReadonlyElement);\r\n if (newValue === null) {\r\n eventData.keepAttr = false;\r\n return;\r\n }\r\n\r\n eventData.attrValue = newValue;\r\n }\r\n\r\n private _processStyles(element: HTMLElementWithSpecStyles, styleConfig: StyleConfig): string {\r\n const styles = Array.from(element.style) as Array;\r\n let processedStyles = \"\";\r\n\r\n for (const style of styles) {\r\n const processor = styleConfig[style];\r\n if (processor === undefined) {\r\n continue;\r\n }\r\n\r\n const currentValue = element.style[style];\r\n const newValue = processor(currentValue, element.style as ReadonlyCssStyleDeclaration);\r\n if (newValue !== \"\") {\r\n processedStyles += `${style}: ${newValue};`;\r\n }\r\n }\r\n\r\n return processedStyles;\r\n }\r\n\r\n private _isRedundantWhitespace(textNode: Text): boolean {\r\n const textValue = textNode.nodeValue;\r\n if (textValue === null) {\r\n return true;\r\n }\r\n\r\n const previousSibling = textNode.previousSibling;\r\n if (previousSibling === null || previousSibling.nodeType !== Node.TEXT_NODE || previousSibling.nodeValue === null) {\r\n return false;\r\n }\r\n\r\n return /^\\s*$/.test(textValue) && /(?:\\s|\\u00A0)$/.test(previousSibling.nodeValue);\r\n }\r\n}\r\n","import { IHtmlTagTransform } from \"./interfaces/IHtmlTagTransform\";\r\n\r\n/**\r\n * @description Only to be used in conjunction with a HtmlStringParser and IHtmlStringParserConfig.\r\n */\r\nexport abstract class SandboxedTagMutation implements IHtmlTagTransform {\r\n public transform(sandboxedElement: Element): Element | null {\r\n const keepElement = this._mutate(sandboxedElement as T, sandboxedElement.ownerDocument);\r\n return keepElement ? sandboxedElement : null;\r\n }\r\n\r\n /**\r\n * @description Allow any mutation on the given element before full sanitisation. If `false` is returned the element will be discarded.\r\n */\r\n protected abstract _mutate(sandboxedElement: T, sandboxedDocument: Document): boolean;\r\n}\r\n","import { IHtmlTagTransform } from \"./interfaces/IHtmlTagTransform\";\r\n\r\n/**\r\n * @description Only to be used in conjunction with a HtmlStringParser and IHtmlStringParserConfig.\r\n */\r\nexport abstract class SandboxedTagSwap implements IHtmlTagTransform {\r\n private readonly _newTagName: string;\r\n\r\n constructor(newTagName: string) {\r\n this._newTagName = newTagName;\r\n }\r\n\r\n public transform(sandboxedElement: Element): Element | null {\r\n // New element must be created safely. `document.createElement` cannot be used.\r\n // In this context, `element.ownerDocument` will be the sandbox document which is created as part of the sanitisation process\r\n const newElement: Element = sandboxedElement.ownerDocument.createElement(this._newTagName);\r\n this._swap(sandboxedElement as T, newElement as R, sandboxedElement.ownerDocument);\r\n return newElement;\r\n }\r\n\r\n protected abstract _swap(sandboxedElement: T, newElement: R, sandboxedDocument: Document): void;\r\n}\r\n","import DOMPurify from \"dompurify\";\r\nimport { moveElementChildren } from \"@pjs/utilities\";\r\nimport { HtmlSanitiserEvent } from \"../../enums/HtmlSanitiserEvent\";\r\nimport { DomPurifyConfig } from \"../../types/DomPurifyConfig\";\r\nimport { SanitiserEventCallback } from \"../../types/SanitiserEventCallback\";\r\nimport { convertElementToFragment } from \"../../utilities/ConvertElementToFragment.function\";\r\nimport { IWhitelistHtmlSanitiserConfig } from \"./types/IWhitelistHtmlSanitiserConfig\";\r\nimport { IExtendedHtmlSanitiserConfig } from \"./types/IExtendedHtmlSanitiserConfig\";\r\nimport { IHtmlStringSanitiser } from \"./interfaces/IHtmlStringSanitiser\";\r\n\r\nexport class HtmlStringSanitiser implements IHtmlStringSanitiser {\r\n private readonly _config: DomPurifyConfig;\r\n private readonly _hooks: Array<{ callback: SanitiserEventCallback; name: DOMPurify.HookName }>;\r\n\r\n private constructor(config: DomPurifyConfig) {\r\n this._config = config;\r\n this._hooks = [];\r\n }\r\n\r\n public static createFromExtendedDefaults(config: IExtendedHtmlSanitiserConfig): HtmlStringSanitiser {\r\n return new HtmlStringSanitiser({\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n ADD_ATTR: (config.additionalAttributes as Array) ?? [],\r\n FORBID_TAGS: (config.forbiddenTags as Array) ?? [],\r\n RETURN_DOM: true\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n });\r\n }\r\n\r\n public static createFromWhitelist(config: IWhitelistHtmlSanitiserConfig): HtmlStringSanitiser {\r\n return new HtmlStringSanitiser({\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n ALLOWED_ATTR: (config.attributes as Array) ?? [],\r\n ALLOWED_TAGS: (config.tags as Array) ?? [],\r\n RETURN_DOM: true\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n });\r\n }\r\n\r\n public append(dirtyContent: string, parent: Element): void {\r\n moveElementChildren(this.convert(dirtyContent), parent);\r\n }\r\n\r\n public convert(dirtyContent: string): HTMLBodyElement {\r\n for (const hook of this._hooks) {\r\n DOMPurify.addHook(hook.name, hook.callback);\r\n }\r\n\r\n const sanitisedHtml = DOMPurify.sanitize(dirtyContent, this._config);\r\n DOMPurify.removeAllHooks();\r\n DOMPurify.removed.length = 0;\r\n\r\n return sanitisedHtml as HTMLBodyElement;\r\n }\r\n\r\n public convertToFragment(dirtyContent: string): DocumentFragment {\r\n const sanitisedHtml = this.convert(dirtyContent);\r\n return convertElementToFragment(sanitisedHtml);\r\n }\r\n\r\n public clean(dirtyContent: string): string {\r\n return this.convert(dirtyContent).innerHTML;\r\n }\r\n\r\n public on(eventName: HtmlSanitiserEvent, callback: SanitiserEventCallback): void {\r\n this._hooks.push({ callback: callback, name: eventName });\r\n }\r\n}\r\n","import { INonDocumentNode } from \"./interfaces/INonDocumentNode\";\r\n\r\nconst cachedSafeDocument = document.implementation.createHTMLDocument(\"\");\r\n\r\n/**\r\n * @description Caveats:\r\n * - If a string with invalid HTML is provided, an empty string will be returned.\r\n * - Whitespace unicode characters will be removed (e.g. `\\u200B`).\r\n */\r\nexport function htmlStringToPlainText(htmlString: string): string {\r\n // eslint-disable-next-line no-unsanitized/property\r\n cachedSafeDocument.body.innerHTML = htmlString;\r\n const textContent = (cachedSafeDocument.body as INonDocumentNode).textContent.replace(/\\u200B/g, \"\");\r\n cachedSafeDocument.body.textContent = \"\";\r\n\r\n return textContent;\r\n}\r\n","export const protocolWhitelist = /^\\s*(https?|mailto|tel):/;\r\n","import { protocolWhitelist } from \"./ProtocolWhitelist.const\";\r\n\r\nconst normaliserElement = document.createElement<\"a\">(\"a\");\r\n\r\nexport function isSafeUrlProtocol(url: string): boolean {\r\n if (protocolWhitelist.test(url)) {\r\n return true;\r\n }\r\n\r\n // Anchor element href is used over URL instance, due to Core-JS polyfill encoding issues - https://github.com/zloirock/core-js#caveats-when-using-url-and-urlsearchparams\r\n normaliserElement.href = url;\r\n const normalisedUrl = normaliserElement.href;\r\n\r\n return protocolWhitelist.test(normalisedUrl);\r\n}\r\n","import { FunctionComponent, useRef } from \"react\";\r\nimport { useClassRef, useOnMount, useOnValueChange } from \"@pjs/react-utilities\";\r\nimport { IParseHtmlProps } from \"./interfaces/IParseHtmlProps\";\r\nimport { ParseHtmlSanitiser } from \"./ParseHtmlSanitiser\";\r\n\r\nexport const ParseHtml: FunctionComponent = (props) => {\r\n const elementRef = useRef(null);\r\n const parseHtmlSanitiser = useClassRef(ParseHtmlSanitiser, props.debounceTime ?? 0);\r\n\r\n useOnMount(() => {\r\n parseHtmlSanitiser.sanitise(props.htmlString, elementRef, true);\r\n\r\n return () => {\r\n parseHtmlSanitiser.destroy();\r\n };\r\n });\r\n\r\n useOnValueChange(() => {\r\n parseHtmlSanitiser.sanitise(props.htmlString, elementRef, false);\r\n }, [props.htmlString]);\r\n\r\n return
;\r\n};\r\n","import { HtmlSanitiserEvent } from \"../../enums/HtmlSanitiserEvent\";\r\nimport { globalAnchorSanitiseEventHandler } from \"../anchor-transform/GlobalAnchorSanitiseEventHandler.function\";\r\nimport { IHtmlStringSanitiser } from \"./interfaces/IHtmlStringSanitiser\";\r\nimport { HtmlStringSanitiser } from \"./HtmlStringSanitiser\";\r\n\r\nexport const basicHtmlStringSanitiser: IHtmlStringSanitiser = HtmlStringSanitiser.createFromExtendedDefaults({ additionalAttributes: [\"target\"], forbiddenTags: [\"form\"] });\r\nbasicHtmlStringSanitiser.on(HtmlSanitiserEvent.BeforeElement, globalAnchorSanitiseEventHandler);\r\n","import { RefObject } from \"react\";\r\nimport { IHtmlStringSanitiser } from \"../html-string-sanitiser/interfaces/IHtmlStringSanitiser\";\r\nimport { basicHtmlStringSanitiser } from \"../html-string-sanitiser/BasicHtmlStringSanitiser.const\";\r\nimport { IParseHtmlSanitiser } from \"./interfaces/IParseHtmlSanitiser\";\r\n\r\nexport class ParseHtmlSanitiser implements IParseHtmlSanitiser {\r\n private readonly _sanitiser: IHtmlStringSanitiser = basicHtmlStringSanitiser;\r\n private readonly _delay: number;\r\n private _debounceTimerId: number = 0;\r\n\r\n constructor(delay: number) {\r\n this._delay = delay;\r\n }\r\n\r\n public sanitise(htmlString: string, elementRef: RefObject, skipDelay: boolean): void {\r\n if (skipDelay || this._delay === 0) {\r\n this._sanitise(htmlString, elementRef);\r\n return;\r\n }\r\n clearTimeout(this._debounceTimerId);\r\n this._debounceTimerId = window.setTimeout(() => this._sanitise(htmlString, elementRef), this._delay);\r\n }\r\n\r\n public destroy(): void {\r\n clearTimeout(this._debounceTimerId);\r\n }\r\n\r\n private _sanitise(htmlString: string, elementRef: RefObject): void {\r\n const parseHtmlElement = elementRef.current;\r\n if (parseHtmlElement !== null) {\r\n parseHtmlElement.innerHTML = \"\";\r\n\r\n this._sanitiser.append(htmlString, parseHtmlElement);\r\n }\r\n }\r\n}\r\n","export function convertElementToFragment(element: Element): DocumentFragment {\r\n const fragment = document.createDocumentFragment();\r\n\r\n while (element.firstChild !== null) {\r\n fragment.appendChild(element.firstChild);\r\n }\r\n\r\n return fragment;\r\n}\r\n","export enum SameSite {\r\n Strict = \"Strict\",\r\n Lax = \"Lax\",\r\n None = \"None\"\r\n}\r\n","import { ICookieOptions } from \"./interfaces/ICookieOptions\";\r\nimport { cookieOptionsToString } from \"./functions/CookieOptionsToString.function\";\r\nimport { ICookieResult } from \"./interfaces/ICookieResult\";\r\nimport { ICookieStore } from \"./interfaces/ICookieStore\";\r\n\r\nconst cookieRegex = /[^\\s,;]+=[^\\s,;]+/g;\r\n\r\nexport const cookieStore: ICookieStore = {\r\n delete: (name: string): void => {\r\n document.cookie = `${name}=;Expires=Thu, 01 Jan 1970 00:00:01 GMT;`;\r\n },\r\n get: (name: string): ICookieResult | null => {\r\n const matchRegex = new RegExp(`${name}=[^\\\\s,;]+`);\r\n const matchingCookie = document.cookie.match(matchRegex);\r\n\r\n if (matchingCookie === null) {\r\n return null;\r\n }\r\n\r\n const splitCookie = matchingCookie[0].split(\"=\");\r\n const key = splitCookie[0];\r\n const value = splitCookie[1];\r\n\r\n if (value.length === 0) {\r\n return null;\r\n }\r\n\r\n return {\r\n name: key,\r\n value: value\r\n };\r\n },\r\n getAll: (): Array => {\r\n const cookieMatches = document.cookie.match(cookieRegex);\r\n\r\n if (cookieMatches === null) {\r\n return [];\r\n }\r\n\r\n return cookieMatches.map((s) => {\r\n const arr = s.split(\"=\");\r\n return {\r\n name: arr[0],\r\n value: arr[1]\r\n };\r\n });\r\n },\r\n set: (name: string, value: string, options?: ICookieOptions): void => {\r\n const cookieOptions = options === undefined ? \"\" : cookieOptionsToString(options);\r\n document.cookie = `${name}=${value}; ${cookieOptions}`;\r\n }\r\n};\r\n","import { ICookieOptions } from \"../interfaces/ICookieOptions\";\r\n\r\nexport function cookieOptionsToString(options: ICookieOptions): string {\r\n const cookieOptions: Array = [];\r\n\r\n if (options.expiry !== undefined) {\r\n cookieOptions.push(`Expires=${options.expiry.toUTCString()};`);\r\n }\r\n\r\n if (options.path !== undefined) {\r\n cookieOptions.push(`Path=${options.path};`);\r\n }\r\n\r\n if (options.sameSite !== undefined) {\r\n cookieOptions.push(`SameSite=${options.sameSite};`);\r\n }\r\n\r\n if (options.secure !== undefined) {\r\n cookieOptions.push(`Secure;`);\r\n }\r\n\r\n return cookieOptions.join(\" \");\r\n}\r\n","import { AsyncModelStatus } from \"./enums/AsyncModelStatus\";\r\nimport { IAsyncModelError } from \"./interfaces/IAsyncModelError\";\r\n\r\nexport function createAsyncModelError(error: T): IAsyncModelError {\r\n return {\r\n error: error,\r\n pending: null,\r\n result: null,\r\n status: AsyncModelStatus.Error\r\n };\r\n}\r\n","import { AsyncModelStatus } from \"./enums/AsyncModelStatus\";\r\nimport { IAsyncModelPending } from \"./interfaces/IAsyncModelPending\";\r\n\r\nexport function createAsyncModelPending(pending: T): IAsyncModelPending {\r\n return {\r\n error: null,\r\n pending: pending,\r\n result: null,\r\n status: AsyncModelStatus.Pending\r\n };\r\n}\r\n","import { IAsyncModelResult } from \"./interfaces/IAsyncModelResult\";\r\nimport { AsyncModelStatus } from \"./enums/AsyncModelStatus\";\r\n\r\nexport function createAsyncModelResult(result: T): IAsyncModelResult {\r\n return {\r\n error: null,\r\n pending: null,\r\n result: result,\r\n status: AsyncModelStatus.Resolved\r\n };\r\n}\r\n","export enum AsyncModelStatus {\r\n Resolved = \"resolved\",\r\n Pending = \"pending\",\r\n Error = \"error\"\r\n}\r\n","import { IDebouncer } from \"./interfaces/IDebouncer\";\r\n\r\nexport class Debouncer implements IDebouncer {\r\n public readonly run: () => void;\r\n private readonly _delay: number;\r\n private readonly _callback: () => void;\r\n private readonly _onTimeout: () => void;\r\n private _timeoutId: number;\r\n\r\n constructor(delay: number, callback: () => void) {\r\n this._delay = delay;\r\n this._callback = callback;\r\n this._timeoutId = 0;\r\n this._onTimeout = this.flush.bind(this);\r\n this.run = this._run.bind(this);\r\n }\r\n\r\n public cancel(): void {\r\n window.clearTimeout(this._timeoutId);\r\n this._timeoutId = 0;\r\n }\r\n\r\n public flush(): void {\r\n if (this._timeoutId !== 0) {\r\n this.cancel();\r\n this._callback();\r\n }\r\n }\r\n\r\n private _run(): void {\r\n this.cancel();\r\n this._timeoutId = window.setTimeout(this._onTimeout, this._delay);\r\n }\r\n}\r\n","import { makeStringRegexSafe } from \"../make-string-regex-safe/MakeStringRegexSafe.function\";\r\nimport { ISearchField } from \"./interfaces/ISearchField\";\r\n\r\nexport function getBestTextMatches(searchString: string, collection: ReadonlyArray, searchFields: ReadonlyArray>): ReadonlyArray {\r\n const toMatchLower = searchString.toLowerCase();\r\n const findMatchRegex = new RegExp(`(^|[-\"'\\\\s])${makeStringRegexSafe(toMatchLower)}([-\"'\\\\s]|$)`);\r\n\r\n const matchingItems = [];\r\n const scores = new Map();\r\n\r\n for (const item of collection) {\r\n let score = 0;\r\n for (const searchField of searchFields) {\r\n const propertyValue = searchField.getProperty(item);\r\n if (typeof propertyValue === \"string\") {\r\n score = score + scoreString(propertyValue, toMatchLower, findMatchRegex) * searchField.weight;\r\n continue;\r\n }\r\n for (const arrayItem of propertyValue) {\r\n score = score + scoreString(arrayItem, toMatchLower, findMatchRegex) * searchField.weight;\r\n }\r\n }\r\n\r\n if (score > 0) {\r\n scores.set(item, score);\r\n matchingItems.push(item);\r\n }\r\n }\r\n\r\n return matchingItems.sort((a, b) => scores.get(b) - scores.get(a));\r\n}\r\n\r\nfunction scoreString(content: string, toMatchLower: string, findMatchRegex: RegExp): number {\r\n const toCompare = content.toLowerCase();\r\n if (!toCompare.includes(toMatchLower)) {\r\n return 0;\r\n }\r\n\r\n const exactMatchIndex = toCompare.search(findMatchRegex);\r\n const startsWithSearchText = toCompare.startsWith(toMatchLower);\r\n\r\n let exactMatchWeight = 0;\r\n if (exactMatchIndex !== -1) {\r\n exactMatchWeight = exactMatchIndex + 1 <= toMatchLower.length ? 1 : toMatchLower.length / exactMatchIndex;\r\n }\r\n\r\n const normalWeight = toMatchLower.length / toCompare.length;\r\n const initialMatchWeight = startsWithSearchText ? normalWeight : 0;\r\n return normalWeight + exactMatchWeight + initialMatchWeight;\r\n}\r\n","export function makeStringRegexSafe(value: string): string {\r\n return value.replace(/[\\*\\+\\?\\.\\-\\/\\{\\}\\(\\)\\[\\]\\\\\\^\\$\\|]/g, \"\\\\$&\");\r\n}\r\n","const replace = (match: string): string => {\r\n const randomNum = (Math.random() * 16) | 0;\r\n const value = match === \"x\" ? randomNum : (randomNum & 0x3) | 0x8;\r\n return value.toString(16);\r\n};\r\n\r\nexport function createGuid(): string {\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, replace);\r\n}\r\n","export const isAndroid = /android/i.test(window.navigator.userAgent);\r\n","import { isIphoneLike } from \"../is-iphone-like/isIphoneLike.constant\";\r\n/**\r\n * A boolean which indicates if the device could be a iPad. Potential for false positives with non iPad Apple devices which have touch screens.\r\n */\r\nexport const isIpadLike = navigator.userAgent.includes(\"iPad\") || (!isIphoneLike && navigator.userAgent.includes(\"Mac\") && window.navigator.maxTouchPoints > 2);\r\n","export const isIphoneLike = /iP(hone|od)/.test(self.window.navigator.userAgent);\r\n","export function moveElementChildren(currentParent: Element, newParent: Element): void {\r\n while (currentParent.firstChild !== null) {\r\n newParent.appendChild(currentParent.firstChild);\r\n }\r\n}\r\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\r\nexport function noop(): void {}\r\n","/**\n * @license MIT\n */\n(function(window, document, undefined) {'use strict';\n if (!window || !document) {\n console.warn('Flowjs needs window and document objects to work');\n return;\n }\n // ie10+\n var ie10plus = window.navigator.msPointerEnabled;\n /**\n * Flow.js is a library providing multiple simultaneous, stable and\n * resumable uploads via the HTML5 File API.\n * @param [opts]\n * @param {number|Function} [opts.chunkSize]\n * @param {bool} [opts.forceChunkSize]\n * @param {number} [opts.simultaneousUploads]\n * @param {bool} [opts.singleFile]\n * @param {string} [opts.fileParameterName]\n * @param {number} [opts.progressCallbacksInterval]\n * @param {number} [opts.speedSmoothingFactor]\n * @param {Object|Function} [opts.query]\n * @param {Object|Function} [opts.headers]\n * @param {bool} [opts.withCredentials]\n * @param {Function} [opts.preprocess]\n * @param {string} [opts.method]\n * @param {string|Function} [opts.testMethod]\n * @param {string|Function} [opts.uploadMethod]\n * @param {bool} [opts.prioritizeFirstAndLastChunk]\n * @param {bool} [opts.allowDuplicateUploads]\n * @param {string|Function} [opts.target]\n * @param {number} [opts.maxChunkRetries]\n * @param {number} [opts.chunkRetryInterval]\n * @param {Array.} [opts.permanentErrors]\n * @param {Array.} [opts.successStatuses]\n * @param {Function} [opts.initFileFn]\n * @param {Function} [opts.readFileFn]\n * @param {Function} [opts.generateUniqueIdentifier]\n * @constructor\n */\n function Flow(opts) {\n /**\n * Supported by browser?\n * @type {boolean}\n */\n this.support = (\n typeof File !== 'undefined' &&\n typeof Blob !== 'undefined' &&\n typeof FileList !== 'undefined' &&\n (\n !!Blob.prototype.slice || !!Blob.prototype.webkitSlice || !!Blob.prototype.mozSlice ||\n false\n ) // slicing files support\n );\n\n if (!this.support) {\n return ;\n }\n\n /**\n * Check if directory upload is supported\n * @type {boolean}\n */\n this.supportDirectory = (\n /Chrome/.test(window.navigator.userAgent) ||\n /Firefox/.test(window.navigator.userAgent) ||\n /Edge/.test(window.navigator.userAgent)\n );\n\n /**\n * List of FlowFile objects\n * @type {Array.}\n */\n this.files = [];\n\n /**\n * Default options for flow.js\n * @type {Object}\n */\n this.defaults = {\n chunkSize: 1024 * 1024,\n forceChunkSize: false,\n simultaneousUploads: 3,\n singleFile: false,\n fileParameterName: 'file',\n progressCallbacksInterval: 500,\n speedSmoothingFactor: 0.1,\n query: {},\n headers: {},\n withCredentials: false,\n preprocess: null,\n changeRawDataBeforeSend: null,\n method: 'multipart',\n testMethod: 'GET',\n uploadMethod: 'POST',\n prioritizeFirstAndLastChunk: false,\n allowDuplicateUploads: false,\n target: '/',\n testChunks: true,\n generateUniqueIdentifier: null,\n maxChunkRetries: 0,\n chunkRetryInterval: null,\n permanentErrors: [404, 413, 415, 500, 501],\n successStatuses: [200, 201, 202],\n onDropStopPropagation: false,\n initFileFn: null,\n readFileFn: webAPIFileRead\n };\n\n /**\n * Current options\n * @type {Object}\n */\n this.opts = {};\n\n /**\n * List of events:\n * key stands for event name\n * value array list of callbacks\n * @type {}\n */\n this.events = {};\n\n var $ = this;\n\n /**\n * On drop event\n * @function\n * @param {MouseEvent} event\n */\n this.onDrop = function (event) {\n if ($.opts.onDropStopPropagation) {\n event.stopPropagation();\n }\n event.preventDefault();\n var dataTransfer = event.dataTransfer;\n if (dataTransfer.items && dataTransfer.items[0] &&\n dataTransfer.items[0].webkitGetAsEntry) {\n $.webkitReadDataTransfer(event);\n } else {\n $.addFiles(dataTransfer.files, event);\n }\n };\n\n /**\n * Prevent default\n * @function\n * @param {MouseEvent} event\n */\n this.preventEvent = function (event) {\n event.preventDefault();\n };\n\n\n /**\n * Current options\n * @type {Object}\n */\n this.opts = Flow.extend({}, this.defaults, opts || {});\n\n }\n\n Flow.prototype = {\n /**\n * Set a callback for an event, possible events:\n * fileSuccess(file), fileProgress(file), fileAdded(file, event),\n * fileRemoved(file), fileRetry(file), fileError(file, message),\n * complete(), progress(), error(message, file), pause()\n * @function\n * @param {string} event\n * @param {Function} callback\n */\n on: function (event, callback) {\n event = event.toLowerCase();\n if (!this.events.hasOwnProperty(event)) {\n this.events[event] = [];\n }\n this.events[event].push(callback);\n },\n\n /**\n * Remove event callback\n * @function\n * @param {string} [event] removes all events if not specified\n * @param {Function} [fn] removes all callbacks of event if not specified\n */\n off: function (event, fn) {\n if (event !== undefined) {\n event = event.toLowerCase();\n if (fn !== undefined) {\n if (this.events.hasOwnProperty(event)) {\n arrayRemove(this.events[event], fn);\n }\n } else {\n delete this.events[event];\n }\n } else {\n this.events = {};\n }\n },\n\n /**\n * Fire an event\n * @function\n * @param {string} event event name\n * @param {...} args arguments of a callback\n * @return {bool} value is false if at least one of the event handlers which handled this event\n * returned false. Otherwise it returns true.\n */\n fire: function (event, args) {\n // `arguments` is an object, not array, in FF, so:\n args = Array.prototype.slice.call(arguments);\n event = event.toLowerCase();\n var preventDefault = false;\n if (this.events.hasOwnProperty(event)) {\n each(this.events[event], function (callback) {\n preventDefault = callback.apply(this, args.slice(1)) === false || preventDefault;\n }, this);\n }\n if (event != 'catchall') {\n args.unshift('catchAll');\n preventDefault = this.fire.apply(this, args) === false || preventDefault;\n }\n return !preventDefault;\n },\n\n /**\n * Read webkit dataTransfer object\n * @param event\n */\n webkitReadDataTransfer: function (event) {\n var $ = this;\n var queue = event.dataTransfer.items.length;\n var files = [];\n each(event.dataTransfer.items, function (item) {\n var entry = item.webkitGetAsEntry();\n if (!entry) {\n decrement();\n return ;\n }\n if (entry.isFile) {\n // due to a bug in Chrome's File System API impl - #149735\n fileReadSuccess(item.getAsFile(), entry.fullPath);\n } else {\n readDirectory(entry.createReader());\n }\n });\n function readDirectory(reader) {\n reader.readEntries(function (entries) {\n if (entries.length) {\n queue += entries.length;\n each(entries, function(entry) {\n if (entry.isFile) {\n var fullPath = entry.fullPath;\n entry.file(function (file) {\n fileReadSuccess(file, fullPath);\n }, readError);\n } else if (entry.isDirectory) {\n readDirectory(entry.createReader());\n }\n });\n readDirectory(reader);\n } else {\n decrement();\n }\n }, readError);\n }\n function fileReadSuccess(file, fullPath) {\n // relative path should not start with \"/\"\n file.relativePath = fullPath.substring(1);\n files.push(file);\n decrement();\n }\n function readError(fileError) {\n decrement();\n throw fileError;\n }\n function decrement() {\n if (--queue == 0) {\n $.addFiles(files, event);\n }\n }\n },\n\n /**\n * Generate unique identifier for a file\n * @function\n * @param {FlowFile} file\n * @returns {string}\n */\n generateUniqueIdentifier: function (file) {\n var custom = this.opts.generateUniqueIdentifier;\n if (typeof custom === 'function') {\n return custom(file);\n }\n // Some confusion in different versions of Firefox\n var relativePath = file.relativePath || file.webkitRelativePath || file.fileName || file.name;\n return file.size + '-' + relativePath.replace(/[^0-9a-zA-Z_-]/img, '');\n },\n\n /**\n * Upload next chunk from the queue\n * @function\n * @returns {boolean}\n * @private\n */\n uploadNextChunk: function (preventEvents) {\n // In some cases (such as videos) it's really handy to upload the first\n // and last chunk of a file quickly; this let's the server check the file's\n // metadata and determine if there's even a point in continuing.\n var found = false;\n if (this.opts.prioritizeFirstAndLastChunk) {\n each(this.files, function (file) {\n if (!file.paused && file.chunks.length &&\n file.chunks[0].status() === 'pending') {\n file.chunks[0].send();\n found = true;\n return false;\n }\n if (!file.paused && file.chunks.length > 1 &&\n file.chunks[file.chunks.length - 1].status() === 'pending') {\n file.chunks[file.chunks.length - 1].send();\n found = true;\n return false;\n }\n });\n if (found) {\n return found;\n }\n }\n\n // Now, simply look for the next, best thing to upload\n each(this.files, function (file) {\n if (!file.paused) {\n each(file.chunks, function (chunk) {\n if (chunk.status() === 'pending') {\n chunk.send();\n found = true;\n return false;\n }\n });\n }\n if (found) {\n return false;\n }\n });\n if (found) {\n return true;\n }\n\n // The are no more outstanding chunks to upload, check is everything is done\n var outstanding = false;\n each(this.files, function (file) {\n if (!file.isComplete()) {\n outstanding = true;\n return false;\n }\n });\n if (!outstanding && !preventEvents) {\n // All chunks have been uploaded, complete\n async(function () {\n this.fire('complete');\n }, this);\n }\n return false;\n },\n\n\n /**\n * Assign a browse action to one or more DOM nodes.\n * @function\n * @param {Element|Array.} domNodes\n * @param {boolean} isDirectory Pass in true to allow directories to\n * @param {boolean} singleFile prevent multi file upload\n * @param {Object} attributes set custom attributes:\n * http://www.w3.org/TR/html-markup/input.file.html#input.file-attributes\n * eg: accept: 'image/*'\n * be selected (Chrome only).\n */\n assignBrowse: function (domNodes, isDirectory, singleFile, attributes) {\n if (domNodes instanceof Element) {\n domNodes = [domNodes];\n }\n\n each(domNodes, function (domNode) {\n var input;\n if (domNode.tagName === 'INPUT' && domNode.type === 'file') {\n input = domNode;\n } else {\n input = document.createElement('input');\n input.setAttribute('type', 'file');\n // display:none - not working in opera 12\n extend(input.style, {\n visibility: 'hidden',\n position: 'absolute',\n width: '1px',\n height: '1px'\n });\n // for opera 12 browser, input must be assigned to a document\n domNode.appendChild(input);\n // https://developer.mozilla.org/en/using_files_from_web_applications)\n // event listener is executed two times\n // first one - original mouse click event\n // second - input.click(), input is inside domNode\n domNode.addEventListener('click', function() {\n input.click();\n }, false);\n }\n if (!this.opts.singleFile && !singleFile) {\n input.setAttribute('multiple', 'multiple');\n }\n if (isDirectory) {\n input.setAttribute('webkitdirectory', 'webkitdirectory');\n }\n each(attributes, function (value, key) {\n input.setAttribute(key, value);\n });\n // When new files are added, simply append them to the overall list\n var $ = this;\n input.addEventListener('change', function (e) {\n \t if (e.target.value) {\n $.addFiles(e.target.files, e);\n e.target.value = '';\n \t }\n }, false);\n }, this);\n },\n\n /**\n * Assign one or more DOM nodes as a drop target.\n * @function\n * @param {Element|Array.} domNodes\n */\n assignDrop: function (domNodes) {\n if (typeof domNodes.length === 'undefined') {\n domNodes = [domNodes];\n }\n each(domNodes, function (domNode) {\n domNode.addEventListener('dragover', this.preventEvent, false);\n domNode.addEventListener('dragenter', this.preventEvent, false);\n domNode.addEventListener('drop', this.onDrop, false);\n }, this);\n },\n\n /**\n * Un-assign drop event from DOM nodes\n * @function\n * @param domNodes\n */\n unAssignDrop: function (domNodes) {\n if (typeof domNodes.length === 'undefined') {\n domNodes = [domNodes];\n }\n each(domNodes, function (domNode) {\n domNode.removeEventListener('dragover', this.preventEvent);\n domNode.removeEventListener('dragenter', this.preventEvent);\n domNode.removeEventListener('drop', this.onDrop);\n }, this);\n },\n\n /**\n * Returns a boolean indicating whether or not the instance is currently\n * uploading anything.\n * @function\n * @returns {boolean}\n */\n isUploading: function () {\n var uploading = false;\n each(this.files, function (file) {\n if (file.isUploading()) {\n uploading = true;\n return false;\n }\n });\n return uploading;\n },\n\n /**\n * should upload next chunk\n * @function\n * @returns {boolean|number}\n */\n _shouldUploadNext: function () {\n var num = 0;\n var should = true;\n var simultaneousUploads = this.opts.simultaneousUploads;\n each(this.files, function (file) {\n each(file.chunks, function(chunk) {\n if (chunk.status() === 'uploading') {\n num++;\n if (num >= simultaneousUploads) {\n should = false;\n return false;\n }\n }\n });\n });\n // if should is true then return uploading chunks's length\n return should && num;\n },\n\n /**\n * Start or resume uploading.\n * @function\n */\n upload: function () {\n // Make sure we don't start too many uploads at once\n var ret = this._shouldUploadNext();\n if (ret === false) {\n return;\n }\n // Kick off the queue\n this.fire('uploadStart');\n var started = false;\n for (var num = 1; num <= this.opts.simultaneousUploads - ret; num++) {\n started = this.uploadNextChunk(true) || started;\n }\n if (!started) {\n async(function () {\n this.fire('complete');\n }, this);\n }\n },\n\n /**\n * Resume uploading.\n * @function\n */\n resume: function () {\n each(this.files, function (file) {\n if (!file.isComplete()) {\n file.resume();\n }\n });\n },\n\n /**\n * Pause uploading.\n * @function\n */\n pause: function () {\n each(this.files, function (file) {\n file.pause();\n });\n },\n\n /**\n * Cancel upload of all FlowFile objects and remove them from the list.\n * @function\n */\n cancel: function () {\n for (var i = this.files.length - 1; i >= 0; i--) {\n this.files[i].cancel();\n }\n },\n\n /**\n * Returns a number between 0 and 1 indicating the current upload progress\n * of all files.\n * @function\n * @returns {number}\n */\n progress: function () {\n var totalDone = 0;\n var totalSize = 0;\n // Resume all chunks currently being uploaded\n each(this.files, function (file) {\n totalDone += file.progress() * file.size;\n totalSize += file.size;\n });\n return totalSize > 0 ? totalDone / totalSize : 0;\n },\n\n /**\n * Add a HTML5 File object to the list of files.\n * @function\n * @param {File} file\n * @param {Event} [event] event is optional\n */\n addFile: function (file, event) {\n this.addFiles([file], event);\n },\n\n /**\n * Add a HTML5 File object to the list of files.\n * @function\n * @param {FileList|Array} fileList\n * @param {Event} [event] event is optional\n */\n addFiles: function (fileList, event) {\n var files = [];\n each(fileList, function (file) {\n // https://github.com/flowjs/flow.js/issues/55\n if ((!ie10plus || ie10plus && file.size > 0) && !(file.size % 4096 === 0 && (file.name === '.' || file.fileName === '.'))) {\n var uniqueIdentifier = this.generateUniqueIdentifier(file);\n if (this.opts.allowDuplicateUploads || !this.getFromUniqueIdentifier(uniqueIdentifier)) {\n var f = new FlowFile(this, file, uniqueIdentifier);\n if (this.fire('fileAdded', f, event)) {\n files.push(f);\n }\n }\n }\n }, this);\n if (this.fire('filesAdded', files, event)) {\n each(files, function (file) {\n if (this.opts.singleFile && this.files.length > 0) {\n this.removeFile(this.files[0]);\n }\n this.files.push(file);\n }, this);\n this.fire('filesSubmitted', files, event);\n }\n },\n\n\n /**\n * Cancel upload of a specific FlowFile object from the list.\n * @function\n * @param {FlowFile} file\n */\n removeFile: function (file) {\n for (var i = this.files.length - 1; i >= 0; i--) {\n if (this.files[i] === file) {\n this.files.splice(i, 1);\n file.abort();\n this.fire('fileRemoved', file);\n }\n }\n },\n\n /**\n * Look up a FlowFile object by its unique identifier.\n * @function\n * @param {string} uniqueIdentifier\n * @returns {boolean|FlowFile} false if file was not found\n */\n getFromUniqueIdentifier: function (uniqueIdentifier) {\n var ret = false;\n each(this.files, function (file) {\n if (file.uniqueIdentifier === uniqueIdentifier) {\n ret = file;\n }\n });\n return ret;\n },\n\n /**\n * Returns the total size of all files in bytes.\n * @function\n * @returns {number}\n */\n getSize: function () {\n var totalSize = 0;\n each(this.files, function (file) {\n totalSize += file.size;\n });\n return totalSize;\n },\n\n /**\n * Returns the total size uploaded of all files in bytes.\n * @function\n * @returns {number}\n */\n sizeUploaded: function () {\n var size = 0;\n each(this.files, function (file) {\n size += file.sizeUploaded();\n });\n return size;\n },\n\n /**\n * Returns remaining time to upload all files in seconds. Accuracy is based on average speed.\n * If speed is zero, time remaining will be equal to positive infinity `Number.POSITIVE_INFINITY`\n * @function\n * @returns {number}\n */\n timeRemaining: function () {\n var sizeDelta = 0;\n var averageSpeed = 0;\n each(this.files, function (file) {\n if (!file.paused && !file.error) {\n sizeDelta += file.size - file.sizeUploaded();\n averageSpeed += file.averageSpeed;\n }\n });\n if (sizeDelta && !averageSpeed) {\n return Number.POSITIVE_INFINITY;\n }\n if (!sizeDelta && !averageSpeed) {\n return 0;\n }\n return Math.floor(sizeDelta / averageSpeed);\n }\n };\n\n\n\n\n\n\n /**\n * FlowFile class\n * @name FlowFile\n * @param {Flow} flowObj\n * @param {File} file\n * @param {string} uniqueIdentifier\n * @constructor\n */\n function FlowFile(flowObj, file, uniqueIdentifier) {\n\n /**\n * Reference to parent Flow instance\n * @type {Flow}\n */\n this.flowObj = flowObj;\n\n /**\n * Used to store the bytes read\n * @type {Blob|string}\n */\n this.bytes = null;\n\n /**\n * Reference to file\n * @type {File}\n */\n this.file = file;\n\n /**\n * File name. Some confusion in different versions of Firefox\n * @type {string}\n */\n this.name = file.fileName || file.name;\n\n /**\n * File size\n * @type {number}\n */\n this.size = file.size;\n\n /**\n * Relative file path\n * @type {string}\n */\n this.relativePath = file.relativePath || file.webkitRelativePath || this.name;\n\n /**\n * File unique identifier\n * @type {string}\n */\n this.uniqueIdentifier = (uniqueIdentifier === undefined ? flowObj.generateUniqueIdentifier(file) : uniqueIdentifier);\n\n /**\n * Size of Each Chunk\n * @type {number}\n */\n this.chunkSize = 0;\n\n /**\n * List of chunks\n * @type {Array.}\n */\n this.chunks = [];\n\n /**\n * Indicated if file is paused\n * @type {boolean}\n */\n this.paused = false;\n\n /**\n * Indicated if file has encountered an error\n * @type {boolean}\n */\n this.error = false;\n\n /**\n * Average upload speed\n * @type {number}\n */\n this.averageSpeed = 0;\n\n /**\n * Current upload speed\n * @type {number}\n */\n this.currentSpeed = 0;\n\n /**\n * Date then progress was called last time\n * @type {number}\n * @private\n */\n this._lastProgressCallback = Date.now();\n\n /**\n * Previously uploaded file size\n * @type {number}\n * @private\n */\n this._prevUploadedSize = 0;\n\n /**\n * Holds previous progress\n * @type {number}\n * @private\n */\n this._prevProgress = 0;\n\n this.bootstrap();\n }\n\n FlowFile.prototype = {\n /**\n * Update speed parameters\n * @link http://stackoverflow.com/questions/2779600/how-to-estimate-download-time-remaining-accurately\n * @function\n */\n measureSpeed: function () {\n var timeSpan = Date.now() - this._lastProgressCallback;\n if (!timeSpan) {\n return ;\n }\n var smoothingFactor = this.flowObj.opts.speedSmoothingFactor;\n var uploaded = this.sizeUploaded();\n // Prevent negative upload speed after file upload resume\n this.currentSpeed = Math.max((uploaded - this._prevUploadedSize) / timeSpan * 1000, 0);\n this.averageSpeed = smoothingFactor * this.currentSpeed + (1 - smoothingFactor) * this.averageSpeed;\n this._prevUploadedSize = uploaded;\n },\n\n /**\n * For internal usage only.\n * Callback when something happens within the chunk.\n * @function\n * @param {FlowChunk} chunk\n * @param {string} event can be 'progress', 'success', 'error' or 'retry'\n * @param {string} [message]\n */\n chunkEvent: function (chunk, event, message) {\n switch (event) {\n case 'progress':\n if (Date.now() - this._lastProgressCallback <\n this.flowObj.opts.progressCallbacksInterval) {\n break;\n }\n this.measureSpeed();\n this.flowObj.fire('fileProgress', this, chunk);\n this.flowObj.fire('progress');\n this._lastProgressCallback = Date.now();\n break;\n case 'error':\n this.error = true;\n this.abort(true);\n this.flowObj.fire('fileError', this, message, chunk);\n this.flowObj.fire('error', message, this, chunk);\n break;\n case 'success':\n if (this.error) {\n return;\n }\n this.measureSpeed();\n this.flowObj.fire('fileProgress', this, chunk);\n this.flowObj.fire('progress');\n this._lastProgressCallback = Date.now();\n if (this.isComplete()) {\n this.currentSpeed = 0;\n this.averageSpeed = 0;\n this.flowObj.fire('fileSuccess', this, message, chunk);\n }\n break;\n case 'retry':\n this.flowObj.fire('fileRetry', this, chunk);\n break;\n }\n },\n\n /**\n * Pause file upload\n * @function\n */\n pause: function() {\n this.paused = true;\n this.abort();\n },\n\n /**\n * Resume file upload\n * @function\n */\n resume: function() {\n this.paused = false;\n this.flowObj.upload();\n },\n\n /**\n * Abort current upload\n * @function\n */\n abort: function (reset) {\n this.currentSpeed = 0;\n this.averageSpeed = 0;\n var chunks = this.chunks;\n if (reset) {\n this.chunks = [];\n }\n each(chunks, function (c) {\n if (c.status() === 'uploading') {\n c.abort();\n this.flowObj.uploadNextChunk();\n }\n }, this);\n },\n\n /**\n * Cancel current upload and remove from a list\n * @function\n */\n cancel: function () {\n this.flowObj.removeFile(this);\n },\n\n /**\n * Retry aborted file upload\n * @function\n */\n retry: function () {\n this.bootstrap();\n this.flowObj.upload();\n },\n\n /**\n * Clear current chunks and slice file again\n * @function\n */\n bootstrap: function () {\n if (typeof this.flowObj.opts.initFileFn === \"function\") {\n this.flowObj.opts.initFileFn(this);\n }\n\n this.abort(true);\n this.error = false;\n // Rebuild stack of chunks from file\n this._prevProgress = 0;\n var round = this.flowObj.opts.forceChunkSize ? Math.ceil : Math.floor;\n this.chunkSize = evalOpts(this.flowObj.opts.chunkSize, this);\n var chunks = Math.max(\n round(this.size / this.chunkSize), 1\n );\n for (var offset = 0; offset < chunks; offset++) {\n this.chunks.push(\n new FlowChunk(this.flowObj, this, offset)\n );\n }\n },\n\n /**\n * Get current upload progress status\n * @function\n * @returns {number} from 0 to 1\n */\n progress: function () {\n if (this.error) {\n return 1;\n }\n if (this.chunks.length === 1) {\n this._prevProgress = Math.max(this._prevProgress, this.chunks[0].progress());\n return this._prevProgress;\n }\n // Sum up progress across everything\n var bytesLoaded = 0;\n each(this.chunks, function (c) {\n // get chunk progress relative to entire file\n bytesLoaded += c.progress() * (c.endByte - c.startByte);\n });\n var percent = bytesLoaded / this.size;\n // We don't want to lose percentages when an upload is paused\n this._prevProgress = Math.max(this._prevProgress, percent > 0.9999 ? 1 : percent);\n return this._prevProgress;\n },\n\n /**\n * Indicates if file is being uploaded at the moment\n * @function\n * @returns {boolean}\n */\n isUploading: function () {\n var uploading = false;\n each(this.chunks, function (chunk) {\n if (chunk.status() === 'uploading') {\n uploading = true;\n return false;\n }\n });\n return uploading;\n },\n\n /**\n * Indicates if file is has finished uploading and received a response\n * @function\n * @returns {boolean}\n */\n isComplete: function () {\n var outstanding = false;\n each(this.chunks, function (chunk) {\n var status = chunk.status();\n if (status === 'pending' || status === 'uploading' || status === 'reading' || chunk.preprocessState === 1 || chunk.readState === 1) {\n outstanding = true;\n return false;\n }\n });\n return !outstanding;\n },\n\n /**\n * Count total size uploaded\n * @function\n * @returns {number}\n */\n sizeUploaded: function () {\n var size = 0;\n each(this.chunks, function (chunk) {\n size += chunk.sizeUploaded();\n });\n return size;\n },\n\n /**\n * Returns remaining time to finish upload file in seconds. Accuracy is based on average speed.\n * If speed is zero, time remaining will be equal to positive infinity `Number.POSITIVE_INFINITY`\n * @function\n * @returns {number}\n */\n timeRemaining: function () {\n if (this.paused || this.error) {\n return 0;\n }\n var delta = this.size - this.sizeUploaded();\n if (delta && !this.averageSpeed) {\n return Number.POSITIVE_INFINITY;\n }\n if (!delta && !this.averageSpeed) {\n return 0;\n }\n return Math.floor(delta / this.averageSpeed);\n },\n\n /**\n * Get file type\n * @function\n * @returns {string}\n */\n getType: function () {\n return this.file.type && this.file.type.split('/')[1];\n },\n\n /**\n * Get file extension\n * @function\n * @returns {string}\n */\n getExtension: function () {\n return this.name.substr((~-this.name.lastIndexOf(\".\") >>> 0) + 2).toLowerCase();\n }\n };\n\n /**\n * Default read function using the webAPI\n *\n * @function webAPIFileRead(fileObj, startByte, endByte, fileType, chunk)\n *\n */\n function webAPIFileRead(fileObj, startByte, endByte, fileType, chunk) {\n var function_name = 'slice';\n\n if (fileObj.file.slice)\n function_name = 'slice';\n else if (fileObj.file.mozSlice)\n function_name = 'mozSlice';\n else if (fileObj.file.webkitSlice)\n function_name = 'webkitSlice';\n\n chunk.readFinished(fileObj.file[function_name](startByte, endByte, fileType));\n }\n\n\n /**\n * Class for storing a single chunk\n * @name FlowChunk\n * @param {Flow} flowObj\n * @param {FlowFile} fileObj\n * @param {number} offset\n * @constructor\n */\n function FlowChunk(flowObj, fileObj, offset) {\n\n /**\n * Reference to parent flow object\n * @type {Flow}\n */\n this.flowObj = flowObj;\n\n /**\n * Reference to parent FlowFile object\n * @type {FlowFile}\n */\n this.fileObj = fileObj;\n\n /**\n * File offset\n * @type {number}\n */\n this.offset = offset;\n\n /**\n * Indicates if chunk existence was checked on the server\n * @type {boolean}\n */\n this.tested = false;\n\n /**\n * Number of retries performed\n * @type {number}\n */\n this.retries = 0;\n\n /**\n * Pending retry\n * @type {boolean}\n */\n this.pendingRetry = false;\n\n /**\n * Preprocess state\n * @type {number} 0 = unprocessed, 1 = processing, 2 = finished\n */\n this.preprocessState = 0;\n\n /**\n * Read state\n * @type {number} 0 = not read, 1 = reading, 2 = finished\n */\n this.readState = 0;\n\n\n /**\n * Bytes transferred from total request size\n * @type {number}\n */\n this.loaded = 0;\n\n /**\n * Total request size\n * @type {number}\n */\n this.total = 0;\n\n /**\n * Size of a chunk\n * @type {number}\n */\n this.chunkSize = this.fileObj.chunkSize;\n\n /**\n * Chunk start byte in a file\n * @type {number}\n */\n this.startByte = this.offset * this.chunkSize;\n\n /**\n * A specific filename for this chunk which otherwise default to the main name\n * @type {string}\n */\n this.filename = null;\n\n /**\n * Compute the endbyte in a file\n *\n */\n this.computeEndByte = function() {\n var endByte = Math.min(this.fileObj.size, (this.offset + 1) * this.chunkSize);\n if (this.fileObj.size - endByte < this.chunkSize && !this.flowObj.opts.forceChunkSize) {\n // The last chunk will be bigger than the chunk size,\n // but less than 2 * this.chunkSize\n endByte = this.fileObj.size;\n }\n return endByte;\n }\n\n /**\n * Chunk end byte in a file\n * @type {number}\n */\n this.endByte = this.computeEndByte();\n\n /**\n * XMLHttpRequest\n * @type {XMLHttpRequest}\n */\n this.xhr = null;\n\n var $ = this;\n\n /**\n * Send chunk event\n * @param event\n * @param {...} args arguments of a callback\n */\n this.event = function (event, args) {\n args = Array.prototype.slice.call(arguments);\n args.unshift($);\n $.fileObj.chunkEvent.apply($.fileObj, args);\n };\n /**\n * Catch progress event\n * @param {ProgressEvent} event\n */\n this.progressHandler = function(event) {\n if (event.lengthComputable) {\n $.loaded = event.loaded ;\n $.total = event.total;\n }\n $.event('progress', event);\n };\n\n /**\n * Catch test event\n * @param {Event} event\n */\n this.testHandler = function(event) {\n var status = $.status(true);\n if (status === 'error') {\n $.event(status, $.message());\n $.flowObj.uploadNextChunk();\n } else if (status === 'success') {\n $.tested = true;\n $.event(status, $.message());\n $.flowObj.uploadNextChunk();\n } else if (!$.fileObj.paused) {\n // Error might be caused by file pause method\n // Chunks does not exist on the server side\n $.tested = true;\n $.send();\n }\n };\n\n /**\n * Upload has stopped\n * @param {Event} event\n */\n this.doneHandler = function(event) {\n var status = $.status();\n if (status === 'success' || status === 'error') {\n delete this.data;\n $.event(status, $.message());\n $.flowObj.uploadNextChunk();\n } else if (!$.fileObj.paused) {\n $.event('retry', $.message());\n $.pendingRetry = true;\n $.abort();\n $.retries++;\n var retryInterval = $.flowObj.opts.chunkRetryInterval;\n if (retryInterval !== null) {\n setTimeout(function () {\n $.send();\n }, retryInterval);\n } else {\n $.send();\n }\n }\n };\n }\n\n FlowChunk.prototype = {\n /**\n * Get params for a request\n * @function\n */\n getParams: function () {\n return {\n flowChunkNumber: this.offset + 1,\n flowChunkSize: this.chunkSize,\n flowCurrentChunkSize: this.endByte - this.startByte,\n flowTotalSize: this.fileObj.size,\n flowIdentifier: this.fileObj.uniqueIdentifier,\n flowFilename: this.fileObj.name,\n flowRelativePath: this.fileObj.relativePath,\n flowTotalChunks: this.fileObj.chunks.length\n };\n },\n\n /**\n * Get target option with query params\n * @function\n * @param params\n * @returns {string}\n */\n getTarget: function(target, params){\n if (params.length == 0) {\n\treturn target;\n }\n\n if(target.indexOf('?') < 0) {\n target += '?';\n } else {\n target += '&';\n }\n return target + params.join('&');\n },\n\n /**\n * Makes a GET request without any data to see if the chunk has already\n * been uploaded in a previous session\n * @function\n */\n test: function () {\n // Set up request and listen for event\n this.xhr = new XMLHttpRequest();\n this.xhr.addEventListener(\"load\", this.testHandler, false);\n this.xhr.addEventListener(\"error\", this.testHandler, false);\n var testMethod = evalOpts(this.flowObj.opts.testMethod, this.fileObj, this);\n var data = this.prepareXhrRequest(testMethod, true);\n this.xhr.send(data);\n },\n\n /**\n * Finish preprocess state\n * @function\n */\n preprocessFinished: function () {\n // Re-compute the endByte after the preprocess function to allow an\n // implementer of preprocess to set the fileObj size\n this.endByte = this.computeEndByte();\n\n this.preprocessState = 2;\n this.send();\n },\n\n /**\n * Finish read state\n * @function\n */\n readFinished: function (bytes) {\n this.readState = 2;\n this.bytes = bytes;\n this.send();\n },\n\n\n /**\n * Uploads the actual data in a POST call\n * @function\n */\n send: function () {\n var preprocess = this.flowObj.opts.preprocess;\n var read = this.flowObj.opts.readFileFn;\n if (typeof preprocess === 'function') {\n switch (this.preprocessState) {\n case 0:\n this.preprocessState = 1;\n preprocess(this);\n return;\n case 1:\n return;\n }\n }\n switch (this.readState) {\n case 0:\n this.readState = 1;\n read(this.fileObj, this.startByte, this.endByte, this.fileObj.file.type, this);\n return;\n case 1:\n return;\n }\n if (this.flowObj.opts.testChunks && !this.tested) {\n this.test();\n return;\n }\n\n this.loaded = 0;\n this.total = 0;\n this.pendingRetry = false;\n\n // Set up request and listen for event\n this.xhr = new XMLHttpRequest();\n this.xhr.upload.addEventListener('progress', this.progressHandler, false);\n this.xhr.addEventListener(\"load\", this.doneHandler, false);\n this.xhr.addEventListener(\"error\", this.doneHandler, false);\n\n var uploadMethod = evalOpts(this.flowObj.opts.uploadMethod, this.fileObj, this);\n var data = this.prepareXhrRequest(uploadMethod, false, this.flowObj.opts.method, this.bytes);\n var changeRawDataBeforeSend = this.flowObj.opts.changeRawDataBeforeSend;\n if (typeof changeRawDataBeforeSend === 'function') {\n data = changeRawDataBeforeSend(this, data);\n }\n this.xhr.send(data);\n },\n\n /**\n * Abort current xhr request\n * @function\n */\n abort: function () {\n // Abort and reset\n var xhr = this.xhr;\n this.xhr = null;\n if (xhr) {\n xhr.abort();\n }\n },\n\n /**\n * Retrieve current chunk upload status\n * @function\n * @returns {string} 'pending', 'uploading', 'success', 'error'\n */\n status: function (isTest) {\n if (this.readState === 1) {\n return 'reading';\n } else if (this.pendingRetry || this.preprocessState === 1) {\n // if pending retry then that's effectively the same as actively uploading,\n // there might just be a slight delay before the retry starts\n return 'uploading';\n } else if (!this.xhr) {\n return 'pending';\n } else if (this.xhr.readyState < 4) {\n // Status is really 'OPENED', 'HEADERS_RECEIVED'\n // or 'LOADING' - meaning that stuff is happening\n return 'uploading';\n } else {\n if (this.flowObj.opts.successStatuses.indexOf(this.xhr.status) > -1) {\n // HTTP 200, perfect\n\t\t // HTTP 202 Accepted - The request has been accepted for processing, but the processing has not been completed.\n return 'success';\n } else if (this.flowObj.opts.permanentErrors.indexOf(this.xhr.status) > -1 ||\n !isTest && this.retries >= this.flowObj.opts.maxChunkRetries) {\n // HTTP 413/415/500/501, permanent error\n return 'error';\n } else {\n // this should never happen, but we'll reset and queue a retry\n // a likely case for this would be 503 service unavailable\n this.abort();\n return 'pending';\n }\n }\n },\n\n /**\n * Get response from xhr request\n * @function\n * @returns {String}\n */\n message: function () {\n return this.xhr ? this.xhr.responseText : '';\n },\n\n /**\n * Get upload progress\n * @function\n * @returns {number}\n */\n progress: function () {\n if (this.pendingRetry) {\n return 0;\n }\n var s = this.status();\n if (s === 'success' || s === 'error') {\n return 1;\n } else if (s === 'pending') {\n return 0;\n } else {\n return this.total > 0 ? this.loaded / this.total : 0;\n }\n },\n\n /**\n * Count total size uploaded\n * @function\n * @returns {number}\n */\n sizeUploaded: function () {\n var size = this.endByte - this.startByte;\n // can't return only chunk.loaded value, because it is bigger than chunk size\n if (this.status() !== 'success') {\n size = this.progress() * size;\n }\n return size;\n },\n\n /**\n * Prepare Xhr request. Set query, headers and data\n * @param {string} method GET or POST\n * @param {bool} isTest is this a test request\n * @param {string} [paramsMethod] octet or form\n * @param {Blob} [blob] to send\n * @returns {FormData|Blob|Null} data to send\n */\n prepareXhrRequest: function(method, isTest, paramsMethod, blob) {\n // Add data from the query options\n var query = evalOpts(this.flowObj.opts.query, this.fileObj, this, isTest);\n query = extend(query || {}, this.getParams());\n\n var target = evalOpts(this.flowObj.opts.target, this.fileObj, this, isTest);\n var data = null;\n if (method === 'GET' || paramsMethod === 'octet') {\n // Add data from the query options\n var params = [];\n each(query, function (v, k) {\n params.push([encodeURIComponent(k), encodeURIComponent(v)].join('='));\n });\n target = this.getTarget(target, params);\n data = blob || null;\n } else {\n // Add data from the query options\n data = new FormData();\n each(query, function (v, k) {\n data.append(k, v);\n });\n if (typeof blob !== \"undefined\") {\n data.append(this.flowObj.opts.fileParameterName, blob, this.filename || this.fileObj.file.name);\n }\n }\n\n this.xhr.open(method, target, true);\n this.xhr.withCredentials = this.flowObj.opts.withCredentials;\n\n // Add data from header options\n each(evalOpts(this.flowObj.opts.headers, this.fileObj, this, isTest), function (v, k) {\n this.xhr.setRequestHeader(k, v);\n }, this);\n\n return data;\n }\n };\n\n /**\n * Remove value from array\n * @param array\n * @param value\n */\n function arrayRemove(array, value) {\n var index = array.indexOf(value);\n if (index > -1) {\n array.splice(index, 1);\n }\n }\n\n /**\n * If option is a function, evaluate it with given params\n * @param {*} data\n * @param {...} args arguments of a callback\n * @returns {*}\n */\n function evalOpts(data, args) {\n if (typeof data === \"function\") {\n // `arguments` is an object, not array, in FF, so:\n args = Array.prototype.slice.call(arguments);\n data = data.apply(null, args.slice(1));\n }\n return data;\n }\n Flow.evalOpts = evalOpts;\n\n /**\n * Execute function asynchronously\n * @param fn\n * @param context\n */\n function async(fn, context) {\n setTimeout(fn.bind(context), 0);\n }\n\n /**\n * Extends the destination object `dst` by copying all of the properties from\n * the `src` object(s) to `dst`. You can specify multiple `src` objects.\n * @function\n * @param {Object} dst Destination object.\n * @param {...Object} src Source object(s).\n * @returns {Object} Reference to `dst`.\n */\n function extend(dst, src) {\n each(arguments, function(obj) {\n if (obj !== dst) {\n each(obj, function(value, key){\n dst[key] = value;\n });\n }\n });\n return dst;\n }\n Flow.extend = extend;\n\n /**\n * Iterate each element of an object\n * @function\n * @param {Array|Object} obj object or an array to iterate\n * @param {Function} callback first argument is a value and second is a key.\n * @param {Object=} context Object to become context (`this`) for the iterator function.\n */\n function each(obj, callback, context) {\n if (!obj) {\n return ;\n }\n var key;\n // Is Array?\n // Array.isArray won't work, not only arrays can be iterated by index https://github.com/flowjs/ng-flow/issues/236#\n if (typeof(obj.length) !== 'undefined') {\n for (key = 0; key < obj.length; key++) {\n if (callback.call(context, obj[key], key) === false) {\n return ;\n }\n }\n } else {\n for (key in obj) {\n if (obj.hasOwnProperty(key) && callback.call(context, obj[key], key) === false) {\n return ;\n }\n }\n }\n }\n Flow.each = each;\n\n /**\n * FlowFile constructor\n * @type {FlowFile}\n */\n Flow.FlowFile = FlowFile;\n\n /**\n * FlowFile constructor\n * @type {FlowChunk}\n */\n Flow.FlowChunk = FlowChunk;\n\n /**\n * Library version\n * @type {string}\n */\n Flow.version = '<%= version %>';\n\n if ( typeof module === \"object\" && module && typeof module.exports === \"object\" ) {\n // Expose Flow as module.exports in loaders that implement the Node\n // module pattern (including browserify). Do not create the global, since\n // the user will be storing it themselves locally, and globals are frowned\n // upon in the Node module world.\n module.exports = Flow;\n } else {\n // Otherwise expose Flow to the global object as usual\n window.Flow = Flow;\n\n // Register as a named AMD module, since Flow can be concatenated with other\n // files that may use define, but not via a proper concatenation script that\n // understands anonymous AMD modules. A named AMD is safest and most robust\n // way to register. Lowercase flow is used because AMD module names are\n // derived from file names, and Flow is normally delivered in a lowercase\n // file name. Do this after creating the global so that if an AMD module wants\n // to call noConflict to hide this version of Flow, it will work.\n if ( typeof define === \"function\" && define.amd ) {\n define( \"flow\", [], function () { return Flow; } );\n }\n }\n})(typeof window !== 'undefined' && window, typeof document !== 'undefined' && document);\n","/**\n * @description\n * var app = angular.module('App', ['flow.provider'], function(flowFactoryProvider){\n * flowFactoryProvider.defaults = {target: '/'};\n * });\n * @name flowFactoryProvider\n */\nangular.module('flow.provider', [])\n.provider('flowFactory', function() {\n 'use strict';\n /**\n * Define the default properties for flow.js\n * @name flowFactoryProvider.defaults\n * @type {Object}\n */\n this.defaults = {};\n\n /**\n * Flow, MaybeFlow or NotFlow\n * @name flowFactoryProvider.factory\n * @type {function}\n * @return {Flow}\n */\n this.factory = function (options) {\n return new Flow(options);\n };\n\n /**\n * Define the default events\n * @name flowFactoryProvider.events\n * @type {Array}\n * @private\n */\n this.events = [];\n\n /**\n * Add default events\n * @name flowFactoryProvider.on\n * @function\n * @param {string} event\n * @param {Function} callback\n */\n this.on = function (event, callback) {\n this.events.push([event, callback]);\n };\n\n this.$get = function() {\n var fn = this.factory;\n var defaults = this.defaults;\n var events = this.events;\n return {\n 'create': function(opts) {\n // combine default options with global options and options\n var flow = fn(angular.extend({}, defaults, opts));\n angular.forEach(events, function (event) {\n flow.on(event[0], event[1]);\n });\n return flow;\n }\n };\n };\n});\nangular.module('flow.init', ['flow.provider'])\n .controller('flowCtrl', ['$scope', '$attrs', '$parse', 'flowFactory',\n function ($scope, $attrs, $parse, flowFactory) {\n\n var options = angular.extend({}, $scope.$eval($attrs.flowInit));\n\n // use existing flow object or create a new one\n var flow = $scope.$eval($attrs.flowObject) || flowFactory.create(options);\n\n var catchAllHandler = function(eventName){\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n var event = $scope.$broadcast.apply($scope, ['flow::' + eventName, flow].concat(args));\n if ({\n 'progress':1, 'filesSubmitted':1, 'fileSuccess': 1, 'fileError': 1, 'complete': 1\n }[eventName]) {\n $scope.$applyAsync();\n }\n if (event.defaultPrevented) {\n return false;\n }\n };\n\n flow.on('catchAll', catchAllHandler);\n $scope.$on('$destroy', function(){\n flow.off('catchAll', catchAllHandler);\n });\n\n $scope.$flow = flow;\n\n if ($attrs.hasOwnProperty('flowName')) {\n $parse($attrs.flowName).assign($scope, flow);\n $scope.$on('$destroy', function () {\n $parse($attrs.flowName).assign($scope);\n });\n }\n }])\n .directive('flowInit', [function() {\n return {\n scope: true,\n controller: 'flowCtrl'\n };\n }]);\nangular.module('flow.btn', ['flow.init'])\n.directive('flowBtn', [function() {\n return {\n 'restrict': 'EA',\n 'scope': false,\n 'require': '^flowInit',\n 'link': function(scope, element, attrs) {\n var isDirectory = attrs.hasOwnProperty('flowDirectory');\n var isSingleFile = attrs.hasOwnProperty('flowSingleFile');\n var inputAttrs = attrs.hasOwnProperty('flowAttrs') && scope.$eval(attrs.flowAttrs);\n scope.$flow.assignBrowse(element, isDirectory, isSingleFile, inputAttrs);\n }\n };\n}]);\nangular.module('flow.dragEvents', ['flow.init'])\n/**\n * @name flowPreventDrop\n * Prevent loading files then dropped on element\n */\n .directive('flowPreventDrop', function() {\n return {\n 'scope': false,\n 'link': function(scope, element, attrs) {\n element.bind('drop dragover', function (event) {\n event.preventDefault();\n });\n }\n };\n })\n/**\n * @name flowDragEnter\n * executes `flowDragEnter` and `flowDragLeave` events\n */\n .directive('flowDragEnter', ['$timeout', function($timeout) {\n return {\n 'scope': false,\n 'link': function(scope, element, attrs) {\n var promise;\n var enter = false;\n element.bind('dragover', function (event) {\n if (!isFileDrag(event)) {\n return ;\n }\n if (!enter) {\n scope.$apply(attrs.flowDragEnter);\n enter = true;\n }\n $timeout.cancel(promise);\n event.preventDefault();\n });\n element.bind('dragleave drop', function (event) {\n $timeout.cancel(promise);\n promise = $timeout(function () {\n scope.$eval(attrs.flowDragLeave);\n promise = null;\n enter = false;\n }, 100);\n });\n function isFileDrag(dragEvent) {\n var fileDrag = false;\n var dataTransfer = dragEvent.dataTransfer || dragEvent.originalEvent.dataTransfer;\n angular.forEach(dataTransfer && dataTransfer.types, function(val) {\n if (val === 'Files') {\n fileDrag = true;\n }\n });\n return fileDrag;\n }\n }\n };\n }]);\n\nangular.module('flow.drop', ['flow.init'])\n.directive('flowDrop', function() {\n return {\n 'scope': false,\n 'require': '^flowInit',\n 'link': function(scope, element, attrs) {\n if (attrs.flowDropEnabled) {\n scope.$watch(attrs.flowDropEnabled, function (value) {\n if (value) {\n assignDrop();\n } else {\n unAssignDrop();\n }\n });\n } else {\n assignDrop();\n }\n function assignDrop() {\n scope.$flow.assignDrop(element);\n }\n function unAssignDrop() {\n scope.$flow.unAssignDrop(element);\n }\n }\n };\n});\n\n!function (angular) {'use strict';\n var module = angular.module('flow.events', ['flow.init']);\n var events = {\n fileSuccess: ['$file', '$message'],\n fileProgress: ['$file'],\n fileAdded: ['$file', '$event'],\n filesAdded: ['$files', '$event'],\n filesSubmitted: ['$files', '$event'],\n fileRetry: ['$file'],\n fileRemoved: ['$file'],\n fileError: ['$file', '$message'],\n uploadStart: [],\n complete: [],\n progress: [],\n error: ['$message', '$file']\n };\n\n angular.forEach(events, function (eventArgs, eventName) {\n var name = 'flow' + capitaliseFirstLetter(eventName);\n if (name == 'flowUploadStart') {\n name = 'flowUploadStarted';// event alias\n }\n module.directive(name, [function() {\n return {\n require: '^flowInit',\n controller: ['$scope', '$attrs', function ($scope, $attrs) {\n $scope.$on('flow::' + eventName, function () {\n var funcArgs = Array.prototype.slice.call(arguments);\n var event = funcArgs.shift();// remove angular event\n // remove flow object and ignore event if it is from parent directive\n if ($scope.$flow !== funcArgs.shift()) {\n return ;\n }\n var args = {};\n angular.forEach(eventArgs, function(value, key) {\n args[value] = funcArgs[key];\n });\n if ($scope.$eval($attrs[name], args) === false) {\n event.preventDefault();\n }\n });\n }]\n };\n }]);\n });\n\n function capitaliseFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n}(angular);\n\nangular.module('flow.img', ['flow.init'])\n.directive('flowImg', [function() {\n return {\n 'scope': false,\n 'require': '^flowInit',\n 'link': function(scope, element, attrs) {\n var file = attrs.flowImg;\n scope.$watch(file, function (file) {\n if (!file) {\n return ;\n }\n var fileReader = new FileReader();\n fileReader.readAsDataURL(file.file);\n fileReader.onload = function (event) {\n scope.$apply(function () {\n attrs.$set('src', event.target.result);\n });\n };\n });\n }\n };\n}]);\nangular.module('flow.transfers', ['flow.init'])\n.directive('flowTransfers', [function() {\n return {\n 'scope': true,\n 'require': '^flowInit',\n 'link': function(scope) {\n scope.transfers = scope.$flow.files;\n }\n };\n}]);\nangular.module('flow', ['flow.provider', 'flow.init', 'flow.events', 'flow.btn',\n 'flow.drop', 'flow.transfers', 'flow.img', 'flow.dragEvents']);","import type { IAngularAmd } from \"../interfaces/IAngularAmd\";\r\nimport type { IAngularStatic } from \"angular\";\r\n\r\ndeclare global {\r\n type angular = IAngularStatic;\r\n}\r\n\r\nlet bootstrapped = false;\r\n\r\n// Used in .bootstrap\r\nlet app_name: any;\r\nlet orig_app: any;\r\nlet alt_app: any;\r\nlet run_injector: any;\r\nlet config_injector: any;\r\nlet app_cached_providers: any = {};\r\n\r\n// Used in setAlternateAngular(), alt_angular is set to become angular.module\r\nlet orig_angular: any;\r\nlet alt_angular: any;\r\n\r\n// Object that wrap the provider methods that enables lazy loading\r\nlet onDemandLoader: any = {}\r\nlet preBootstrapLoaderQueue: any = [];\r\n\r\n// Used in setAlternateAngular() and .processQueue\r\nlet alternate_modules: any = {};\r\nlet alternate_modules_tracker: any = {};\r\nlet alternate_queue: any = [];\r\n\r\n// Private method to check if angularAMD has been initialized\r\nfunction checkBootstrapped() {\r\n if ( !bootstrapped ) {\r\n throw new Error('angularAMD not initialized. Need to call angularAMD.bootstrap(app) first.');\r\n }\r\n}\r\n/**\r\n * Create an alternate angular so that subsequent call to angular.module will queue up\r\n * the module created for later processing via the .processQueue method.\r\n *\r\n * This delaying processing is needed as angular does not recognize any newly created\r\n * module after angular.bootstrap has ran. The only way to add new objects to angular\r\n * post bootstrap is using cached provider.\r\n *\r\n * Once the modules has been queued, processQueue would then use each module's _invokeQueue\r\n * and _runBlock to recreate object using cached $provider. In essence, creating a duplicate\r\n * object into the current ng-app. As result, if there are subsequent call to retrieve the\r\n * module post processQueue, it would retrieve a module that is not integrated into the ng-app.\r\n *\r\n * Therefore, any subsequent to call to angular.module after processQueue should return undefined\r\n * to prevent obtaining a duplicated object. However, it is critical that angular.module return\r\n * appropriate object *during* processQueue.\r\n */\r\nfunction setAlternateAngular() {\r\n // This method cannot be called more than once\r\n if (alt_angular) {\r\n throw new Error('setAlternateAngular can only be called once.');\r\n } else {\r\n alt_angular = {};\r\n }\r\n\r\n // Make sure that bootstrap has been called\r\n checkBootstrapped();\r\n\r\n // Create a a copy of orig_angular with on demand loading capability\r\n orig_angular.extend(alt_angular, orig_angular);\r\n\r\n // Custom version of angular.module used as cache\r\n alt_angular.module = function (name: any, requires: any) {\r\n if (typeof requires === 'undefined') {\r\n // Return module from alternate_modules if it was created using the alt_angular\r\n if (alternate_modules_tracker.hasOwnProperty(name)) {\r\n return alternate_modules[name];\r\n } else {\r\n return orig_angular.module(name);\r\n }\r\n } else {\r\n var orig_mod = orig_angular.module.apply(null, arguments),\r\n item = { name: name, module: orig_mod};\r\n alternate_queue.push(item);\r\n orig_angular.extend(orig_mod, onDemandLoader);\r\n\r\n /*\r\n Use `alternate_modules_tracker` to track which module has been created by alt_angular\r\n but use `alternate_modules` to cache the module created. This is to simplify the\r\n removal of cached modules after .processQueue.\r\n */\r\n alternate_modules_tracker[name] = true;\r\n alternate_modules[name] = orig_mod;\r\n\r\n // Return created module\r\n return orig_mod;\r\n }\r\n };\r\n\r\n window.angular = alt_angular;\r\n\r\n // if (require.defined('angular')) {\r\n // require.undef('angular');\r\n // define('angular', [], alt_angular);\r\n // }\r\n}\r\n\r\n// Constructor\r\nclass AngularAMD implements IAngularAmd {\r\n \r\n public provider = this.executeProvider('provider');\r\n public controller = this.executeProvider('controller');\r\n public directive = this.executeProvider('directive');\r\n public filter = this.executeProvider('filter');\r\n public factory = this.executeProvider('factory');\r\n public service = this.executeProvider('service');\r\n public constant = this.executeProvider('constant');\r\n public value = this.executeProvider('value');\r\n public animation = this.executeProvider('animation');\r\n public component = this.executeProvider('component');\r\n \r\n /**\r\n * Expose name of the app that has been bootstrapped\r\n */\r\n appname() {\r\n checkBootstrapped();\r\n return app_name;\r\n };\r\n\r\n /**\r\n * Recreate the modules created by alternate angular in ng-app using cached $provider.\r\n * As AMD loader does not guarantee the order of dependency in a require([...],...)\r\n * clause, user must make sure that dependecies are clearly setup in shim in order\r\n * for this to work.\r\n *\r\n * HACK ALERT:\r\n * This method relay on inner working of angular.module code, and access _invokeQueue\r\n * and _runBlock private variable. Must test carefully with each release of angular.\r\n *\r\n * As of AngularJS 1.3.x, there is new _configBlocks that get populated with configuration\r\n * blocks, thus replacing the need for \"provider === '$injector' && method === 'invoke'\"\r\n * logic.\r\n */\r\n processQueue() {\r\n checkBootstrapped();\r\n\r\n if (typeof alt_angular === 'undefined') {\r\n throw new Error('Alternate angular not set. Make sure that `enable_ngload` option has been set when calling angularAMD.bootstrap');\r\n }\r\n\r\n // Process alternate queue in FIFO fashion\r\n function processRunBlock(block: any) {\r\n //console.info('\"' + item.name + '\": executing run block: ', run_block);\r\n run_injector.invoke(block);\r\n }\r\n\r\n // Process the config blocks\r\n for (var i = 0; i < alternate_queue.length; i++) {\r\n var item = alternate_queue[i],\r\n invokeQueue = item.module._invokeQueue,\r\n y;\r\n\r\n // Setup the providers define in the module\r\n // console.info('invokeQueue: ', invokeQueue);\r\n for (y = 0; y < invokeQueue.length; y += 1) {\r\n var q = invokeQueue[y],\r\n provider = q[0],\r\n method = q[1],\r\n args = q[2];\r\n\r\n // Make sure that provider exists.\r\n if (app_cached_providers.hasOwnProperty(provider)) {\r\n var cachedProvider;\r\n if (provider === '$injector' && method === 'invoke') {\r\n cachedProvider = config_injector;\r\n } else {\r\n cachedProvider = app_cached_providers[provider];\r\n }\r\n // console.info('\"' + item.name + '\": applying ' + provider + '.' + method + ' for args: ', args);\r\n cachedProvider[method].apply(null, args);\r\n } else {\r\n // Make sure that console exists before calling it\r\n if (window.console) {\r\n window.console.error('\"' + provider + '\" not found!!!');\r\n }\r\n }\r\n }\r\n\r\n /*\r\n As of AngularJS 1.3.x, the config block are now stored in a new _configBlocks private\r\n variable. Loop through the list and invoke the config block with config_injector\r\n */\r\n if (item.module._configBlocks) {\r\n var configBlocks = item.module._configBlocks;\r\n\r\n // console.info('configBlock: ', configBlocks);\r\n for (y = 0; y < configBlocks.length; y += 1) {\r\n var cf = configBlocks[y],\r\n cf_method = cf[1],\r\n cf_args = cf[2];\r\n\r\n config_injector[cf_method].apply(null, cf_args);\r\n }\r\n }\r\n\r\n }\r\n\r\n //after we have executed all config blocks, we finally execute the run blocks\r\n while (alternate_queue.length) {\r\n var item = alternate_queue.shift();\r\n if (item.module._runBlocks) {\r\n angular.forEach(item.module._runBlocks, processRunBlock);\r\n }\r\n }\r\n\r\n /*\r\n Clear the cached modules created by alt_angular so that subsequent call to\r\n angular.module will return undefined.\r\n */\r\n alternate_modules = {};\r\n\r\n };\r\n\r\n /**\r\n * Return cached app provider\r\n */\r\n getCachedProvider(provider_name: any) {\r\n checkBootstrapped();\r\n // Hack used for unit testing that orig_angular has been captured\r\n var cachedProvider;\r\n\r\n switch (provider_name) {\r\n case '__orig_angular':\r\n cachedProvider = orig_angular;\r\n break;\r\n case '__alt_angular':\r\n cachedProvider = alt_angular;\r\n break;\r\n case '__orig_app':\r\n cachedProvider = orig_app;\r\n break;\r\n case '__alt_app':\r\n cachedProvider = alt_app;\r\n break;\r\n default:\r\n cachedProvider = app_cached_providers[provider_name];\r\n }\r\n\r\n return cachedProvider;\r\n };\r\n\r\n /**\r\n * Create inject function that uses cached $injector.\r\n * Designed primarly to be used during unit testing.\r\n */\r\n inject() {\r\n checkBootstrapped();\r\n return run_injector.invoke.apply(null, arguments);\r\n };\r\n\r\n /**\r\n * Create config function that uses cached config_injector.\r\n * Designed to simulate app.config.\r\n */\r\n config() {\r\n checkBootstrapped();\r\n return config_injector.invoke.apply(null, arguments);\r\n };\r\n\r\n /**\r\n * Reset angularAMD for resuse\r\n */\r\n reset() {\r\n if (typeof orig_angular === 'undefined') {\r\n return;\r\n }\r\n\r\n // Restore original angular instance\r\n window.angular = orig_angular;\r\n // if (require.defined('angular')) {\r\n // require.undef('angular');\r\n // define('angular', [], orig_angular);\r\n // }\r\n\r\n // Clear stored app\r\n orig_app = undefined;\r\n alt_app = undefined;\r\n\r\n // Clear original angular\r\n alt_angular = undefined;\r\n orig_angular = undefined;\r\n onDemandLoader = {};\r\n preBootstrapLoaderQueue = [];\r\n\r\n // Clear private variables\r\n alternate_queue = [];\r\n app_name = undefined;\r\n run_injector = undefined;\r\n config_injector = undefined;\r\n app_cached_providers = {};\r\n\r\n // Clear bootstrap flag but there is no way to un-bootstrap AngularJS\r\n bootstrapped = false;\r\n };\r\n\r\n /**\r\n * Initialization of angularAMD that bootstraps AngularJS. The objective is to cache the\r\n * $provider and $injector from the app to be used later.\r\n *\r\n * enable_ngload:\r\n */\r\n bootstrap(app: any, enable_ngload?: any, elem?: any) {\r\n // Prevent bootstrap from being called multiple times\r\n if (bootstrapped) {\r\n throw Error('bootstrap can only be called once.');\r\n }\r\n\r\n if (typeof enable_ngload === 'undefined') {\r\n enable_ngload = true;\r\n }\r\n\r\n // Store reference to original angular and app\r\n orig_angular = angular;\r\n\r\n // Create new version of app\r\n orig_app = app;\r\n alt_app = {};\r\n orig_angular.extend(alt_app, orig_app);\r\n\r\n // Determine element to bootstrap angular\r\n elem = elem || document.documentElement;\r\n\r\n // Cache provider needed\r\n app.config(\r\n ['$controllerProvider', '$compileProvider', '$filterProvider', '$animateProvider', '$provide', '$injector', function (controllerProvider: any, compileProvider: any, filterProvider: any, animateProvider: any, provide: any, injector: any) {\r\n // Cache Providers\r\n config_injector = injector;\r\n app_cached_providers = {\r\n $controllerProvider: controllerProvider,\r\n $compileProvider: compileProvider,\r\n $filterProvider: filterProvider,\r\n $animateProvider: animateProvider,\r\n $provide: provide\r\n };\r\n\r\n // Substitue provider methods from app call the cached provider\r\n angular.extend(onDemandLoader, {\r\n provider: function (name: any, constructor: any) {\r\n provide.provider(name, constructor);\r\n return this;\r\n },\r\n controller: function (name: any, constructor: any) {\r\n controllerProvider.register(name, constructor);\r\n return this;\r\n },\r\n directive: function (name: any, constructor: any) {\r\n compileProvider.directive(name, constructor);\r\n return this;\r\n },\r\n filter: function (name: any, constructor: any) {\r\n filterProvider.register(name, constructor);\r\n return this;\r\n },\r\n factory: function (name: any, constructor: any) {\r\n provide.factory(name, constructor);\r\n return this;\r\n },\r\n service: function (name: any, constructor: any) {\r\n provide.service(name, constructor);\r\n return this;\r\n },\r\n constant: function (name: any, constructor: any) {\r\n provide.constant(name, constructor);\r\n return this;\r\n },\r\n value: function (name: any, constructor: any) {\r\n provide.value(name, constructor);\r\n return this;\r\n },\r\n component: function (name: any, constructor: any) {\r\n compileProvider.component(name, constructor);\r\n return this;\r\n },\r\n animation: angular.bind(animateProvider, animateProvider.register)\r\n });\r\n angular.extend(alt_app, onDemandLoader);\r\n\r\n }]\r\n );\r\n\r\n // Get the injector for the app\r\n app.run(['$injector', function ($injector: any) {\r\n // $injector must be obtained in .run instead of .config\r\n run_injector = $injector;\r\n app_cached_providers.$injector = run_injector;\r\n }]);\r\n\r\n // Store the app name needed by .bootstrap function.\r\n app_name = app.name;\r\n\r\n // If there are angular provider recipe queued up, process it\r\n if (preBootstrapLoaderQueue.length > 0) {\r\n for (var iq = 0; iq < preBootstrapLoaderQueue.length; iq += 1) {\r\n var item = preBootstrapLoaderQueue[iq];\r\n orig_app[item.recipe](item.name, item.constructor);\r\n }\r\n preBootstrapLoaderQueue = [];\r\n }\r\n\r\n // Create a app.register object to keep backward compatibility\r\n orig_app.register = onDemandLoader;\r\n\r\n // Bootstrap Angular\r\n orig_angular.element(document).ready(function () {\r\n orig_angular.bootstrap(elem, [app_name]);\r\n // Indicate bootstrap completed\r\n bootstrapped = true;\r\n\r\n // Replace angular.module\r\n if (enable_ngload) {\r\n //console.info('Setting alternate angular');\r\n setAlternateAngular();\r\n }\r\n });\r\n\r\n // Return app\r\n return alt_app;\r\n };\r\n\r\n // Define provider\r\n executeProvider(providerRecipe: any) {\r\n return function (this: any, name: any, constructor: any) {\r\n if (bootstrapped) {\r\n onDemandLoader[providerRecipe](name, constructor);\r\n } else {\r\n // Queue up the request to be used during .bootstrap\r\n preBootstrapLoaderQueue.push({\r\n 'recipe': providerRecipe,\r\n 'name': name,\r\n 'constructor': constructor\r\n });\r\n }\r\n return this;\r\n };\r\n }\r\n\r\n}\r\n\r\nvar _moduleExport = new AngularAMD();\r\nexport { _moduleExport as angularAMD };\r\n","import type { IPromise, IQService } from \"angular\";\r\nimport type { IModule } from \"../interfaces/IModule\";\r\nimport type { IRouteConfig } from \"../interfaces/IRouteConfig\";\r\nimport { angularAMD } from \"../angularAmd/angularAmd\";\r\n\r\nexport class PebbleAmdRoute {\r\n public readonly resolve: { [key: string]: any };\r\n public readonly import: () => Promise>;\r\n public readonly controller: string;\r\n private _assetsLoaded: boolean;\r\n private readonly _afterImport: null | (() => Promise);\r\n\r\n constructor(routeConfig: IRouteConfig) {\r\n this.import = routeConfig.import;\r\n this.controller = routeConfig.controller;\r\n this._afterImport = routeConfig.afterImport || null;\r\n this._assetsLoaded = false;\r\n this.resolve = [\"$q\", ($q: IQService) => {\r\n return this._resolveController($q);\r\n }];\r\n }\r\n\r\n private _resolveController($q: IQService): IPromise {\r\n if (this._assetsLoaded) {\r\n return $q.when();\r\n }\r\n const deferred = $q.defer();\r\n this.import()\r\n .then((module: IModule) => {\r\n angularAMD.controller(this.controller, module.Controller);\r\n if (this._afterImport !== null) {\r\n return this._afterImport();\r\n }\r\n return;\r\n })\r\n .then(() => {\r\n this._assetsLoaded = true;\r\n deferred.resolve();\r\n })\r\n .catch((error) => {\r\n deferred.reject(error);\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n}\r\n","import type { IRouteConfig } from \"../interfaces/IRouteConfig\";\r\nimport { PebbleAmdRoute } from \"./pebbleAmdRoute\";\r\n\r\nexport class PebbleAmdRouteFactory {\r\n public static create(routeConfig: IRouteConfig): IRouteConfig {\r\n const newRouteConfig = Object.assign({}, routeConfig);\r\n const route = new PebbleAmdRoute(newRouteConfig);\r\n \r\n if (newRouteConfig.resolve === undefined) {\r\n newRouteConfig.resolve = {};\r\n }\r\n\r\n newRouteConfig.resolve.___APebbleRouteResolve = route.resolve;\r\n return newRouteConfig;\r\n }\r\n}\r\n","\n/**\n * @license AngularJS v2.0.0\n * (c) 2010-2020 Google, Inc. http://angularjs.org\n * License: MIT\n * Forked maintenance by PebblePad\n */\n((window, angular) => {\r\n'use strict';\n\n/**\n * @ngdoc module\n * @name ngAria\n * @description\n *\n * The `ngAria` module provides support for common\n * [ARIA](http://www.w3.org/TR/wai-aria/)\n * attributes that convey state or semantic information about the application for users\n * of assistive technologies, such as screen readers.\n *\n * ## Usage\n *\n * For ngAria to do its magic, simply include the module `ngAria` as a dependency. The following\n * directives are supported:\n * `ngModel`, `ngChecked`, `ngReadonly`, `ngRequired`, `ngValue`, `ngDisabled`, `ngShow`, `ngHide`, `ngClick`,\n * `ngDblClick`, and `ngMessages`.\n *\n * Below is a more detailed breakdown of the attributes handled by ngAria:\n *\n * | Directive | Supported Attributes |\n * |---------------------------------------------|-----------------------------------------------------------------------------------------------------|\n * | {@link ng.directive:ngModel ngModel} | aria-checked, aria-valuemin, aria-valuemax, aria-valuenow, aria-invalid, aria-required, input roles |\n * | {@link ng.directive:ngDisabled ngDisabled} | aria-disabled |\n * | {@link ng.directive:ngRequired ngRequired} | aria-required |\n * | {@link ng.directive:ngChecked ngChecked} | aria-checked |\n * | {@link ng.directive:ngReadonly ngReadonly} | aria-readonly |\n * | {@link ng.directive:ngValue ngValue} | aria-checked |\n * | {@link ng.directive:ngShow ngShow} | aria-hidden |\n * | {@link ng.directive:ngHide ngHide} | aria-hidden |\n * | {@link ng.directive:ngDblclick ngDblclick} | tabindex |\n * | {@link module:ngMessages ngMessages} | aria-live |\n * | {@link ng.directive:ngClick ngClick} | tabindex, keydown event, button role |\n *\n * Find out more information about each directive by reading the\n * {@link guide/accessibility ngAria Developer Guide}.\n *\n * ## Example\n * Using ngDisabled with ngAria:\n * ```html\n * \n * ```\n * Becomes:\n * ```html\n * \n * ```\n *\n * ## Disabling Attributes\n * It's possible to disable individual attributes added by ngAria with the\n * {@link ngAria.$ariaProvider#config config} method. For more details, see the\n * {@link guide/accessibility Developer Guide}.\n */\nvar ngAriaModule = angular.module('ngAria', ['ng']).\n info({ angularVersion: '2.0.0' }).\n provider('$aria', $AriaProvider);\n\n/**\n* Internal Utilities\n*/\nvar nodeBlackList = ['BUTTON', 'A', 'INPUT', 'TEXTAREA', 'SELECT', 'DETAILS', 'SUMMARY'];\n\nvar isNodeOneOf = function(elem, nodeTypeArray) {\n if (nodeTypeArray.includes(elem[0].nodeName)) {\n return true;\n }\n};\n/**\n * @ngdoc provider\n * @name $ariaProvider\n * @this\n *\n * @description\n *\n * Used for configuring the ARIA attributes injected and managed by ngAria.\n *\n * ```js\n * angular.module('myApp', ['ngAria'], function config($ariaProvider) {\n * $ariaProvider.config({\n * ariaValue: true,\n * tabindex: false\n * });\n * });\n *```\n *\n * ## Dependencies\n * Requires the {@link ngAria} module to be installed.\n *\n */\nfunction $AriaProvider() {\n var config = {\n ariaHidden: true,\n ariaChecked: true,\n ariaReadonly: true,\n ariaDisabled: true,\n ariaRequired: true,\n ariaInvalid: true,\n ariaValue: true,\n tabindex: true,\n bindKeydown: true,\n bindRoleForClick: true\n };\n\n /**\n * @ngdoc method\n * @name $ariaProvider#config\n *\n * @param {object} config object to enable/disable specific ARIA attributes\n *\n * - **ariaHidden** – `{boolean}` – Enables/disables aria-hidden tags\n * - **ariaChecked** – `{boolean}` – Enables/disables aria-checked tags\n * - **ariaReadonly** – `{boolean}` – Enables/disables aria-readonly tags\n * - **ariaDisabled** – `{boolean}` – Enables/disables aria-disabled tags\n * - **ariaRequired** – `{boolean}` – Enables/disables aria-required tags\n * - **ariaInvalid** – `{boolean}` – Enables/disables aria-invalid tags\n * - **ariaValue** – `{boolean}` – Enables/disables aria-valuemin, aria-valuemax and\n * aria-valuenow tags\n * - **tabindex** – `{boolean}` – Enables/disables tabindex tags\n * - **bindKeydown** – `{boolean}` – Enables/disables keyboard event binding on non-interactive\n * elements (such as `div` or `li`) using ng-click, making them more accessible to users of\n * assistive technologies\n * - **bindRoleForClick** – `{boolean}` – Adds role=button to non-interactive elements (such as\n * `div` or `li`) using ng-click, making them more accessible to users of assistive\n * technologies\n *\n * @description\n * Enables/disables various ARIA attributes\n */\n this.config = function(newConfig) {\n config = angular.extend(config, newConfig);\n };\n\n function watchExpr(attrName, ariaAttr, nodeBlackList, negate) {\n return function(scope, elem, attr) {\n var ariaCamelName = attr.$normalize(ariaAttr);\n if (config[ariaCamelName] && !isNodeOneOf(elem, nodeBlackList) && !attr[ariaCamelName]) {\n scope.$watch(attr[attrName], function(boolVal) {\n // ensure boolean value\n boolVal = negate ? !boolVal : !!boolVal;\n elem.attr(ariaAttr, boolVal);\n });\n }\n };\n }\n /**\n * @ngdoc service\n * @name $aria\n *\n * @description\n * @priority 200\n *\n * The $aria service contains helper methods for applying common\n * [ARIA](http://www.w3.org/TR/wai-aria/) attributes to HTML directives.\n *\n * ngAria injects common accessibility attributes that tell assistive technologies when HTML\n * elements are enabled, selected, hidden, and more. To see how this is performed with ngAria,\n * let's review a code snippet from ngAria itself:\n *\n *```js\n * ngAriaModule.directive('ngDisabled', ['$aria', function($aria) {\n * return $aria.$$watchExpr('ngDisabled', 'aria-disabled', nodeBlackList, false);\n * }])\n *```\n * Shown above, the ngAria module creates a directive with the same signature as the\n * traditional `ng-disabled` directive. But this ngAria version is dedicated to\n * solely managing accessibility attributes on custom elements. The internal `$aria` service is\n * used to watch the boolean attribute `ngDisabled`. If it has not been explicitly set by the\n * developer, `aria-disabled` is injected as an attribute with its value synchronized to the\n * value in `ngDisabled`.\n *\n * Because ngAria hooks into the `ng-disabled` directive, developers do not have to do\n * anything to enable this feature. The `aria-disabled` attribute is automatically managed\n * simply as a silent side-effect of using `ng-disabled` with the ngAria module.\n *\n * The full list of directives that interface with ngAria:\n * * **ngModel**\n * * **ngChecked**\n * * **ngReadonly**\n * * **ngRequired**\n * * **ngDisabled**\n * * **ngValue**\n * * **ngShow**\n * * **ngHide**\n * * **ngClick**\n * * **ngDblclick**\n * * **ngMessages**\n *\n * Read the {@link guide/accessibility ngAria Developer Guide} for a thorough explanation of each\n * directive.\n *\n *\n * ## Dependencies\n * Requires the {@link ngAria} module to be installed.\n */\n this.$get = function() {\n return {\n config(key) {\n return config[key];\n },\n $$watchExpr: watchExpr\n };\n };\n}\n\n\nngAriaModule.directive('ngShow', ['$aria', function($aria) {\n return $aria.$$watchExpr('ngShow', 'aria-hidden', [], true);\n}])\n.directive('ngHide', ['$aria', function($aria) {\n return $aria.$$watchExpr('ngHide', 'aria-hidden', [], false);\n}])\n.directive('ngValue', ['$aria', function($aria) {\n return $aria.$$watchExpr('ngValue', 'aria-checked', nodeBlackList, false);\n}])\n.directive('ngChecked', ['$aria', function($aria) {\n return $aria.$$watchExpr('ngChecked', 'aria-checked', nodeBlackList, false);\n}])\n.directive('ngReadonly', ['$aria', function($aria) {\n return $aria.$$watchExpr('ngReadonly', 'aria-readonly', nodeBlackList, false);\n}])\n.directive('ngRequired', ['$aria', function($aria) {\n return $aria.$$watchExpr('ngRequired', 'aria-required', nodeBlackList, false);\n}])\n.directive('ngModel', ['$aria', function($aria) {\n\n function shouldAttachAttr(attr, normalizedAttr, elem, allowBlacklistEls) {\n return $aria.config(normalizedAttr) && !elem.attr(attr) && (allowBlacklistEls || !isNodeOneOf(elem, nodeBlackList));\n }\n\n function shouldAttachRole(role, elem) {\n // if element does not have role attribute\n // AND element type is equal to role (if custom element has a type equaling shape) <-- remove?\n // AND element is not in nodeBlackList\n return !elem.attr('role') && (elem.attr('type') === role) && !isNodeOneOf(elem, nodeBlackList);\n }\n\n function getShape(attr, elem) {\n var type = attr.type;\n var role = attr.role;\n\n return ((type || role) === 'checkbox' || role === 'menuitemcheckbox') ? 'checkbox' :\n ((type || role) === 'radio' || role === 'menuitemradio') ? 'radio' :\n (type === 'range' || role === 'progressbar' || role === 'slider') ? 'range' : '';\n }\n\n return {\n restrict: 'A',\n require: 'ngModel',\n priority: 200, //Make sure watches are fired after any other directives that affect the ngModel value\n compile(elem, attr) {\n var shape = getShape(attr, elem);\n\n return {\n post(scope, elem, attr, ngModel) {\n var needsTabIndex = shouldAttachAttr('tabindex', 'tabindex', elem, false);\n\n function ngAriaWatchModelValue() {\n return ngModel.$modelValue;\n }\n\n function getRadioReaction(newVal) {\n // Strict comparison would cause a BC\n // eslint-disable-next-line eqeqeq\n var boolVal = (attr.value == ngModel.$viewValue);\n elem.attr('aria-checked', boolVal);\n }\n\n function getCheckboxReaction() {\n elem.attr('aria-checked', !ngModel.$isEmpty(ngModel.$viewValue));\n }\n\n switch (shape) {\n case 'radio':\n case 'checkbox':\n if (shouldAttachRole(shape, elem)) {\n elem.attr('role', shape);\n }\n if (shouldAttachAttr('aria-checked', 'ariaChecked', elem, false)) {\n scope.$watch(ngAriaWatchModelValue, shape === 'radio' ?\n getRadioReaction : getCheckboxReaction);\n }\n if (needsTabIndex) {\n elem.attr('tabindex', 0);\n }\n break;\n case 'range':\n if (shouldAttachRole(shape, elem)) {\n elem.attr('role', 'slider');\n }\n if ($aria.config('ariaValue')) {\n var needsAriaValuemin = !elem.attr('aria-valuemin') &&\n (attr.hasOwnProperty('min') || attr.hasOwnProperty('ngMin'));\n var needsAriaValuemax = !elem.attr('aria-valuemax') &&\n (attr.hasOwnProperty('max') || attr.hasOwnProperty('ngMax'));\n var needsAriaValuenow = !elem.attr('aria-valuenow');\n\n if (needsAriaValuemin) {\n attr.$observe('min', function ngAriaValueMinReaction(newVal) {\n elem.attr('aria-valuemin', newVal);\n });\n }\n if (needsAriaValuemax) {\n attr.$observe('max', function ngAriaValueMinReaction(newVal) {\n elem.attr('aria-valuemax', newVal);\n });\n }\n if (needsAriaValuenow) {\n scope.$watch(ngAriaWatchModelValue, function ngAriaValueNowReaction(newVal) {\n elem.attr('aria-valuenow', newVal);\n });\n }\n }\n if (needsTabIndex) {\n elem.attr('tabindex', 0);\n }\n break;\n }\n\n if (!attr.hasOwnProperty('ngRequired') && ngModel.$validators.required\n && shouldAttachAttr('aria-required', 'ariaRequired', elem, false)) {\n // ngModel.$error.required is undefined on custom controls\n attr.$observe('required', function() {\n elem.attr('aria-required', !!attr['required']);\n });\n }\n\n if (shouldAttachAttr('aria-invalid', 'ariaInvalid', elem, true)) {\n scope.$watch(function ngAriaInvalidWatch() {\n return ngModel.$invalid;\n }, function ngAriaInvalidReaction(newVal) {\n elem.attr('aria-invalid', !!newVal);\n });\n }\n }\n };\n }\n };\n}])\n.directive('ngDisabled', ['$aria', function($aria) {\n return $aria.$$watchExpr('ngDisabled', 'aria-disabled', nodeBlackList, false);\n}])\n.directive('ngMessages', function() {\n return {\n restrict: 'A',\n require: '?ngMessages',\n link(scope, elem, attr, ngMessages) {\n if (!elem.attr('aria-live')) {\n elem.attr('aria-live', 'assertive');\n }\n }\n };\n})\n.directive('ngClick',['$aria', '$parse', function($aria, $parse) {\n return {\n restrict: 'A',\n compile(elem, attr) {\n var fn = $parse(attr.ngClick);\n return function(scope, elem, attr) {\n\n if (!isNodeOneOf(elem, nodeBlackList)) {\n\n if ($aria.config('bindRoleForClick') && !elem.attr('role')) {\n elem.attr('role', 'button');\n }\n\n if ($aria.config('tabindex') && !elem.attr('tabindex')) {\n elem.attr('tabindex', 0);\n }\n\n if ($aria.config('bindKeydown') && !attr.ngKeydown && !attr.ngKeypress && !attr.ngKeyup) {\n elem.on('keydown', function(event) {\n var keyCode = event.which || event.keyCode;\n if (keyCode === 32 || keyCode === 13) {\n scope.$apply(callback);\n }\n\n function callback() {\n fn(scope, { $event: event });\n }\n });\n }\n }\n };\n }\n };\n}])\n.directive('ngDblclick', ['$aria', function($aria) {\n return function(scope, elem, attr) {\n if ($aria.config('tabindex') && !elem.attr('tabindex') && !isNodeOneOf(elem, nodeBlackList)) {\n elem.attr('tabindex', 0);\n }\n };\n}]);\n\r\n})(window, window.angular);\r\n","\n/**\n * @license AngularJS v2.0.0\n * (c) 2010-2020 Google, Inc. http://angularjs.org\n * License: MIT\n * Forked maintenance by PebblePad\n */\n((window, angular) => {\r\n'use strict';\n\n/* global shallowCopy: true */\n\n/**\n * Creates a shallow copy of an object, an array or a primitive.\n *\n * Assumes that there are no proto properties for objects.\n */\nfunction shallowCopy(src, dst) {\n if (isArray(src)) {\n dst = dst || [];\n\n for (var i = 0, ii = src.length; i < ii; i++) {\n dst[i] = src[i];\n }\n } else if (isObject(src)) {\n dst = dst || {};\n\n for (var key in src) {\n if (!(key.charAt(0) === '$' && key.charAt(1) === '$')) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst || src;\n}\n'use strict';\n\n/* global shallowCopy: false */\n\n// `isArray` and `isObject` are necessary for `shallowCopy()` (included via `src/shallowCopy.js`).\n// They are initialized inside the `$RouteProvider`, to ensure `window.angular` is available.\nvar isArray;\nvar isObject;\nvar isDefined;\nvar noop;\n\n/**\n * @ngdoc module\n * @name ngRoute\n * @description\n *\n * The `ngRoute` module provides routing and deeplinking services and directives for AngularJS apps.\n *\n * ## Example\n * See {@link ngRoute.$route#examples $route} for an example of configuring and using `ngRoute`.\n *\n */\n/* global -ngRouteModule */\nvar ngRouteModule = angular.\n module('ngRoute', []).\n info({ angularVersion: '2.0.0' }).\n provider('$route', $RouteProvider).\n // Ensure `$route` will be instantiated in time to capture the initial `$locationChangeSuccess`\n // event (unless explicitly disabled). This is necessary in case `ngView` is included in an\n // asynchronously loaded template.\n run(instantiateRoute);\nvar $routeMinErr = angular.$$minErr('ngRoute');\nvar isEagerInstantiationEnabled;\n\n\n/**\n * @ngdoc provider\n * @name $routeProvider\n * @this\n *\n * @description\n *\n * Used for configuring routes.\n *\n * ## Example\n * See {@link ngRoute.$route#examples $route} for an example of configuring and using `ngRoute`.\n *\n * ## Dependencies\n * Requires the {@link ngRoute `ngRoute`} module to be installed.\n */\nfunction $RouteProvider() {\n isArray = angular.isArray;\n isObject = angular.isObject;\n isDefined = angular.isDefined;\n noop = angular.noop;\n\n function inherit(parent, extra) {\n return angular.extend(Object.create(parent), extra);\n }\n\n var routes = {};\n\n /**\n * @ngdoc method\n * @name $routeProvider#when\n *\n * @param {string} path Route path (matched against `$location.path`). If `$location.path`\n * contains redundant trailing slash or is missing one, the route will still match and the\n * `$location.path` will be updated to add or drop the trailing slash to exactly match the\n * route definition.\n *\n * * `path` can contain named groups starting with a colon: e.g. `:name`. All characters up\n * to the next slash are matched and stored in `$routeParams` under the given `name`\n * when the route matches.\n * * `path` can contain named groups starting with a colon and ending with a star:\n * e.g.`:name*`. All characters are eagerly stored in `$routeParams` under the given `name`\n * when the route matches.\n * * `path` can contain optional named groups with a question mark: e.g.`:name?`.\n *\n * For example, routes like `/color/:color/largecode/:largecode*\\/edit` will match\n * `/color/brown/largecode/code/with/slashes/edit` and extract:\n *\n * * `color: brown`\n * * `largecode: code/with/slashes`.\n *\n *\n * @param {Object} route Mapping information to be assigned to `$route.current` on route\n * match.\n *\n * Object properties:\n *\n * - `controller` – `{(string|Function)=}` – Controller fn that should be associated with\n * newly created scope or the name of a {@link angular.Module#controller registered\n * controller} if passed as a string.\n * - `controllerAs` – `{string=}` – An identifier name for a reference to the controller.\n * If present, the controller will be published to scope under the `controllerAs` name.\n * - `template` – `{(string|Function)=}` – html template as a string or a function that\n * returns an html template as a string which should be used by {@link\n * ngRoute.directive:ngView ngView} or {@link ng.directive:ngInclude ngInclude} directives.\n * This property takes precedence over `templateUrl`.\n *\n * If `template` is a function, it will be called with the following parameters:\n *\n * - `{Array.}` - route parameters extracted from the current\n * `$location.path()` by applying the current route\n *\n * One of `template` or `templateUrl` is required.\n *\n * - `templateUrl` – `{(string|Function)=}` – path or function that returns a path to an html\n * template that should be used by {@link ngRoute.directive:ngView ngView}.\n *\n * If `templateUrl` is a function, it will be called with the following parameters:\n *\n * - `{Array.}` - route parameters extracted from the current\n * `$location.path()` by applying the current route\n *\n * One of `templateUrl` or `template` is required.\n *\n * - `resolve` - `{Object.=}` - An optional map of dependencies which should\n * be injected into the controller. If any of these dependencies are promises, the router\n * will wait for them all to be resolved or one to be rejected before the controller is\n * instantiated.\n * If all the promises are resolved successfully, the values of the resolved promises are\n * injected and {@link ngRoute.$route#$routeChangeSuccess $routeChangeSuccess} event is\n * fired. If any of the promises are rejected the\n * {@link ngRoute.$route#$routeChangeError $routeChangeError} event is fired.\n * For easier access to the resolved dependencies from the template, the `resolve` map will\n * be available on the scope of the route, under `$resolve` (by default) or a custom name\n * specified by the `resolveAs` property (see below). This can be particularly useful, when\n * working with {@link angular.Module#component components} as route templates.
\n *
\n * **Note:** If your scope already contains a property with this name, it will be hidden\n * or overwritten. Make sure, you specify an appropriate name for this property, that\n * does not collide with other properties on the scope.\n *
\n * The map object is:\n *\n * - `key` – `{string}`: a name of a dependency to be injected into the controller.\n * - `factory` - `{string|Function}`: If `string` then it is an alias for a service.\n * Otherwise if function, then it is {@link auto.$injector#invoke injected}\n * and the return value is treated as the dependency. If the result is a promise, it is\n * resolved before its value is injected into the controller. Be aware that\n * `ngRoute.$routeParams` will still refer to the previous route within these resolve\n * functions. Use `$route.current.params` to access the new route parameters, instead.\n *\n * - `resolveAs` - `{string=}` - The name under which the `resolve` map will be available on\n * the scope of the route. If omitted, defaults to `$resolve`.\n *\n * - `redirectTo` – `{(string|Function)=}` – value to update\n * {@link ng.$location $location} path with and trigger route redirection.\n *\n * If `redirectTo` is a function, it will be called with the following parameters:\n *\n * - `{Object.}` - route parameters extracted from the current\n * `$location.path()` by applying the current route templateUrl.\n * - `{string}` - current `$location.path()`\n * - `{Object}` - current `$location.search()`\n *\n * The custom `redirectTo` function is expected to return a string which will be used\n * to update `$location.url()`. If the function throws an error, no further processing will\n * take place and the {@link ngRoute.$route#$routeChangeError $routeChangeError} event will\n * be fired.\n *\n * Routes that specify `redirectTo` will not have their controllers, template functions\n * or resolves called, the `$location` will be changed to the redirect url and route\n * processing will stop. The exception to this is if the `redirectTo` is a function that\n * returns `undefined`. In this case the route transition occurs as though there was no\n * redirection.\n *\n * - `resolveRedirectTo` – `{Function=}` – a function that will (eventually) return the value\n * to update {@link ng.$location $location} URL with and trigger route redirection. In\n * contrast to `redirectTo`, dependencies can be injected into `resolveRedirectTo` and the\n * return value can be either a string or a promise that will be resolved to a string.\n *\n * Similar to `redirectTo`, if the return value is `undefined` (or a promise that gets\n * resolved to `undefined`), no redirection takes place and the route transition occurs as\n * though there was no redirection.\n *\n * If the function throws an error or the returned promise gets rejected, no further\n * processing will take place and the\n * {@link ngRoute.$route#$routeChangeError $routeChangeError} event will be fired.\n *\n * `redirectTo` takes precedence over `resolveRedirectTo`, so specifying both on the same\n * route definition, will cause the latter to be ignored.\n *\n * - `[reloadOnSearch=true]` - `{boolean=}` - reload route when only `$location.search()`\n * or `$location.hash()` changes.\n *\n * If the option is set to `false` and url in the browser changes, then\n * `$routeUpdate` event is broadcasted on the root scope.\n *\n * - `[caseInsensitiveMatch=false]` - `{boolean=}` - match routes without being case sensitive\n *\n * If the option is set to `true`, then the particular route can be matched without being\n * case sensitive\n *\n * @returns {Object} self\n *\n * @description\n * Adds a new route definition to the `$route` service.\n */\n this.when = function(path, route) {\n //copy original route object to preserve params inherited from proto chain\n var routeCopy = shallowCopy(route);\n if (angular.isUndefined(routeCopy.reloadOnSearch)) {\n routeCopy.reloadOnSearch = true;\n }\n if (angular.isUndefined(routeCopy.caseInsensitiveMatch)) {\n routeCopy.caseInsensitiveMatch = this.caseInsensitiveMatch;\n }\n routes[path] = angular.extend(\n routeCopy,\n path && pathRegExp(path, routeCopy)\n );\n\n // create redirection for trailing slashes\n if (path) {\n var redirectPath = (path[path.length - 1] === '/')\n ? path.substr(0, path.length - 1)\n : path + '/';\n\n routes[redirectPath] = angular.extend(\n {redirectTo: path},\n pathRegExp(redirectPath, routeCopy)\n );\n }\n\n return this;\n };\n\n /**\n * @ngdoc property\n * @name $routeProvider#caseInsensitiveMatch\n * @description\n *\n * A boolean property indicating if routes defined\n * using this provider should be matched using a case insensitive\n * algorithm. Defaults to `false`.\n */\n this.caseInsensitiveMatch = false;\n\n /**\n * @param path {string} path\n * @param opts {Object} options\n * @return {?Object}\n *\n * @description\n * Normalizes the given path, returning a regular expression\n * and the original path.\n *\n * Inspired by pathRexp in visionmedia/express/lib/utils.js.\n */\n function pathRegExp(path, opts) {\n var insensitive = opts.caseInsensitiveMatch;\n\n var ret = {\n originalPath: path,\n regexp: path\n };\n\n var keys = ret.keys = [];\n\n path = path\n .replace(/([().])/g, '\\\\$1')\n .replace(/(\\/)?:(\\w+)(\\*\\?|[?*])?/g, function(_, slash, key, option) {\n var optional = (option === '?' || option === '*?') ? '?' : null;\n var star = (option === '*' || option === '*?') ? '*' : null;\n keys.push({ name: key, optional: !!optional });\n slash = slash || '';\n return ''\n + (optional ? '' : slash)\n + '(?:'\n + (optional ? slash : '')\n + (star && '(.+?)' || '([^/]+)')\n + (optional || '')\n + ')'\n + (optional || '');\n })\n .replace(/([/$*])/g, '\\\\$1');\n\n ret.regexp = new RegExp('^' + path + '$', insensitive ? 'i' : '');\n return ret;\n }\n\n /**\n * @ngdoc method\n * @name $routeProvider#otherwise\n *\n * @description\n * Sets route definition that will be used on route change when no other route definition\n * is matched.\n *\n * @param {Object|string} params Mapping information to be assigned to `$route.current`.\n * If called with a string, the value maps to `redirectTo`.\n * @returns {Object} self\n */\n this.otherwise = function(params) {\n if (typeof params === 'string') {\n params = {redirectTo: params};\n }\n this.when(null, params);\n return this;\n };\n\n /**\n * @ngdoc method\n * @name $routeProvider#eagerInstantiationEnabled\n * @kind function\n *\n * @description\n * Call this method as a setter to enable/disable eager instantiation of the\n * {@link ngRoute.$route $route} service upon application bootstrap. You can also call it as a\n * getter (i.e. without any arguments) to get the current value of the\n * `eagerInstantiationEnabled` flag.\n *\n * Instantiating `$route` early is necessary for capturing the initial\n * {@link ng.$location#$locationChangeStart $locationChangeStart} event and navigating to the\n * appropriate route. Usually, `$route` is instantiated in time by the\n * {@link ngRoute.ngView ngView} directive. Yet, in cases where `ngView` is included in an\n * asynchronously loaded template (e.g. in another directive's template), the directive factory\n * might not be called soon enough for `$route` to be instantiated _before_ the initial\n * `$locationChangeSuccess` event is fired. Eager instantiation ensures that `$route` is always\n * instantiated in time, regardless of when `ngView` will be loaded.\n *\n * The default value is true.\n *\n * **Note**:
\n * You may want to disable the default behavior when unit-testing modules that depend on\n * `ngRoute`, in order to avoid an unexpected request for the default route's template.\n *\n * @param {boolean=} enabled - If provided, update the internal `eagerInstantiationEnabled` flag.\n *\n * @returns {*} The current value of the `eagerInstantiationEnabled` flag if used as a getter or\n * itself (for chaining) if used as a setter.\n */\n isEagerInstantiationEnabled = true;\n this.eagerInstantiationEnabled = function eagerInstantiationEnabled(enabled) {\n if (isDefined(enabled)) {\n isEagerInstantiationEnabled = enabled;\n return this;\n }\n\n return isEagerInstantiationEnabled;\n };\n\n\n this.$get = ['$rootScope',\n '$location',\n '$routeParams',\n '$q',\n '$injector',\n '$templateRequest',\n '$sce',\n '$browser',\n function($rootScope, $location, $routeParams, $q, $injector, $templateRequest, $sce, $browser) {\n /**\n * @ngdoc service\n * @name $route\n * @requires $location\n * @requires $routeParams\n *\n * @property {Object} current Reference to the current route definition.\n * The route definition contains:\n *\n * - `controller`: The controller constructor as defined in the route definition.\n * - `locals`: A map of locals which is used by {@link ng.$controller $controller} service for\n * controller instantiation. The `locals` contain\n * the resolved values of the `resolve` map. Additionally the `locals` also contain:\n *\n * - `$scope` - The current route scope.\n * - `$template` - The current route template HTML.\n *\n * The `locals` will be assigned to the route scope's `$resolve` property. You can override\n * the property name, using `resolveAs` in the route definition. See\n * {@link ngRoute.$routeProvider $routeProvider} for more info.\n *\n * @property {Object} routes Object with all route configuration Objects as its properties.\n *\n * @description\n * `$route` is used for deep-linking URLs to controllers and views (HTML partials).\n * It watches `$location.url()` and tries to map the path to an existing route definition.\n *\n * Requires the {@link ngRoute `ngRoute`} module to be installed.\n *\n * You can define routes through {@link ngRoute.$routeProvider $routeProvider}'s API.\n *\n * The `$route` service is typically used in conjunction with the\n * {@link ngRoute.directive:ngView `ngView`} directive and the\n * {@link ngRoute.$routeParams `$routeParams`} service.\n *\n * @example\n * This example shows how changing the URL hash causes the `$route` to match a route against the\n * URL, and the `ngView` pulls in the partial.\n *\n * \n * \n *
\n * Choose:\n * Moby |\n * Moby: Ch1 |\n * Gatsby |\n * Gatsby: Ch4 |\n * Scarlet Letter
\n *\n *
\n *\n *
\n *\n *
$location.path() = {{$location.path()}}
\n *
$route.current.templateUrl = {{$route.current.templateUrl}}
\n *
$route.current.params = {{$route.current.params}}
\n *
$route.current.scope.name = {{$route.current.scope.name}}
\n *
$routeParams = {{$routeParams}}
\n *
\n *
\n *\n * \n * controller: {{name}}
\n * Book Id: {{params.bookId}}
\n *
\n *\n * \n * controller: {{name}}
\n * Book Id: {{params.bookId}}
\n * Chapter Id: {{params.chapterId}}\n *
\n *\n * \n * angular.module('ngRouteExample', ['ngRoute'])\n *\n * .controller('MainController', function($scope, $route, $routeParams, $location) {\n * $scope.$route = $route;\n * $scope.$location = $location;\n * $scope.$routeParams = $routeParams;\n * })\n *\n * .controller('BookController', function($scope, $routeParams) {\n * $scope.name = 'BookController';\n * $scope.params = $routeParams;\n * })\n *\n * .controller('ChapterController', function($scope, $routeParams) {\n * $scope.name = 'ChapterController';\n * $scope.params = $routeParams;\n * })\n *\n * .config(function($routeProvider, $locationProvider) {\n * $routeProvider\n * .when('/Book/:bookId', {\n * templateUrl: 'book.html',\n * controller: 'BookController',\n * resolve: {\n * // I will cause a 1 second delay\n * delay: function($q, $timeout) {\n * var delay = $q.defer();\n * $timeout(delay.resolve, 1000);\n * return delay.promise;\n * }\n * }\n * })\n * .when('/Book/:bookId/ch/:chapterId', {\n * templateUrl: 'chapter.html',\n * controller: 'ChapterController'\n * });\n *\n * // configure html5 to get links working on jsfiddle\n * $locationProvider.html5Mode(true);\n * });\n *\n * \n *\n * \n * it('should load and compile correct template', function() {\n * element(by.linkText('Moby: Ch1')).click();\n * var content = element(by.css('[ng-view]')).getText();\n * expect(content).toMatch(/controller: ChapterController/);\n * expect(content).toMatch(/Book Id: Moby/);\n * expect(content).toMatch(/Chapter Id: 1/);\n *\n * element(by.partialLinkText('Scarlet')).click();\n *\n * content = element(by.css('[ng-view]')).getText();\n * expect(content).toMatch(/controller: BookController/);\n * expect(content).toMatch(/Book Id: Scarlet/);\n * });\n * \n *
\n */\n\n /**\n * @ngdoc event\n * @name $route#$routeChangeStart\n * @eventType broadcast on root scope\n * @description\n * Broadcasted before a route change. At this point the route services starts\n * resolving all of the dependencies needed for the route change to occur.\n * Typically this involves fetching the view template as well as any dependencies\n * defined in `resolve` route property. Once all of the dependencies are resolved\n * `$routeChangeSuccess` is fired.\n *\n * The route change (and the `$location` change that triggered it) can be prevented\n * by calling `preventDefault` method of the event. See {@link ng.$rootScope.Scope#$on}\n * for more details about event object.\n *\n * @param {Object} angularEvent Synthetic event object.\n * @param {Route} next Future route information.\n * @param {Route} current Current route information.\n */\n\n /**\n * @ngdoc event\n * @name $route#$routeChangeSuccess\n * @eventType broadcast on root scope\n * @description\n * Broadcasted after a route change has happened successfully.\n * The `resolve` dependencies are now available in the `current.locals` property.\n *\n * {@link ngRoute.directive:ngView ngView} listens for the directive\n * to instantiate the controller and render the view.\n *\n * @param {Object} angularEvent Synthetic event object.\n * @param {Route} current Current route information.\n * @param {Route|Undefined} previous Previous route information, or undefined if current is\n * first route entered.\n */\n\n /**\n * @ngdoc event\n * @name $route#$routeChangeError\n * @eventType broadcast on root scope\n * @description\n * Broadcasted if a redirection function fails or any redirection or resolve promises are\n * rejected.\n *\n * @param {Object} angularEvent Synthetic event object\n * @param {Route} current Current route information.\n * @param {Route} previous Previous route information.\n * @param {Route} rejection The thrown error or the rejection reason of the promise. Usually\n * the rejection reason is the error that caused the promise to get rejected.\n */\n\n /**\n * @ngdoc event\n * @name $route#$routeUpdate\n * @eventType broadcast on root scope\n * @description\n * The `reloadOnSearch` property has been set to false, and we are reusing the same\n * instance of the Controller.\n *\n * @param {Object} angularEvent Synthetic event object\n * @param {Route} current Current/previous route information.\n */\n\n var forceReload = false;\n\n var preparedRoute;\n var preparedRouteIsUpdateOnly;\n\n var $route = {\n routes: routes,\n\n /**\n * @ngdoc method\n * @name $route#reload\n *\n * @description\n * Causes `$route` service to reload the current route even if\n * {@link ng.$location $location} hasn't changed.\n *\n * As a result of that, {@link ngRoute.directive:ngView ngView}\n * creates new scope and reinstantiates the controller.\n */\n reload() {\n forceReload = true;\n\n var fakeLocationEvent = {\n defaultPrevented: false,\n preventDefault: function fakePreventDefault() {\n this.defaultPrevented = true;\n forceReload = false;\n }\n };\n\n $rootScope.$evalAsync(function() {\n prepareRoute(fakeLocationEvent);\n if (!fakeLocationEvent.defaultPrevented) commitRoute();\n });\n },\n\n /**\n * @ngdoc method\n * @name $route#updateParams\n *\n * @description\n * Causes `$route` service to update the current URL, replacing\n * current route parameters with those specified in `newParams`.\n * Provided property names that match the route's path segment\n * definitions will be interpolated into the location's path, while\n * remaining properties will be treated as query params.\n *\n * @param {!Object} newParams mapping of URL parameter names to values\n */\n updateParams(newParams) {\n if (this.current && this.current.$$route) {\n newParams = angular.extend({}, this.current.params, newParams);\n $location.path(interpolate(this.current.$$route.originalPath, newParams));\n // interpolate modifies newParams, only query params are left\n $location.search(newParams);\n } else {\n throw $routeMinErr('norout', 'Tried updating route with no current route');\n }\n }\n };\n\n $rootScope.$on('$locationChangeStart', prepareRoute);\n $rootScope.$on('$locationChangeSuccess', commitRoute);\n\n return $route;\n\n /////////////////////////////////////////////////////\n\n /**\n * @param on {string} current url\n * @param route {Object} route regexp to match the url against\n * @return {?Object}\n *\n * @description\n * Check if the route matches the current url.\n *\n * Inspired by match in\n * visionmedia/express/lib/router/router.js.\n */\n function switchRouteMatcher(on, route) {\n var keys = route.keys;\n var params = {};\n\n if (!route.regexp) return null;\n\n var m = route.regexp.exec(on);\n if (!m) return null;\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = keys[i - 1];\n\n var val = m[i];\n\n if (key && val) {\n params[key.name] = val;\n }\n }\n return params;\n }\n\n function prepareRoute($locationEvent) {\n var lastRoute = $route.current;\n\n preparedRoute = parseRoute();\n preparedRouteIsUpdateOnly = preparedRoute && lastRoute && preparedRoute.$$route === lastRoute.$$route\n && angular.equals(preparedRoute.pathParams, lastRoute.pathParams)\n && !preparedRoute.reloadOnSearch && !forceReload;\n\n if (!preparedRouteIsUpdateOnly && (lastRoute || preparedRoute)) {\n if ($rootScope.$broadcast('$routeChangeStart', preparedRoute, lastRoute).defaultPrevented) {\n if ($locationEvent) {\n $locationEvent.preventDefault();\n }\n }\n }\n }\n\n function commitRoute() {\n var lastRoute = $route.current;\n var nextRoute = preparedRoute;\n\n if (preparedRouteIsUpdateOnly) {\n lastRoute.params = nextRoute.params;\n angular.copy(lastRoute.params, $routeParams);\n $rootScope.$broadcast('$routeUpdate', lastRoute);\n } else if (nextRoute || lastRoute) {\n forceReload = false;\n $route.current = nextRoute;\n\n var nextRoutePromise = $q.resolve(nextRoute);\n\n $browser.$$incOutstandingRequestCount();\n\n nextRoutePromise.\n then(getRedirectionData).\n then(handlePossibleRedirection).\n then(function(keepProcessingRoute) {\n return keepProcessingRoute && nextRoutePromise.\n then(resolveLocals).\n then(function(locals) {\n // after route change\n if (nextRoute === $route.current) {\n if (nextRoute) {\n nextRoute.locals = locals;\n angular.copy(nextRoute.params, $routeParams);\n }\n $rootScope.$broadcast('$routeChangeSuccess', nextRoute, lastRoute);\n }\n });\n }).catch(function(error) {\n if (nextRoute === $route.current) {\n $rootScope.$broadcast('$routeChangeError', nextRoute, lastRoute, error);\n }\n }).finally(function() {\n // Because `commitRoute()` is called from a `$rootScope.$evalAsync` block (see\n // `$locationWatch`), this `$$completeOutstandingRequest()` call will not cause\n // `outstandingRequestCount` to hit zero. This is important in case we are redirecting\n // to a new route which also requires some asynchronous work.\n\n $browser.$$completeOutstandingRequest(noop);\n });\n }\n }\n\n function getRedirectionData(route) {\n var data = {\n route: route,\n hasRedirection: false\n };\n\n if (route) {\n if (route.redirectTo) {\n if (angular.isString(route.redirectTo)) {\n data.path = interpolate(route.redirectTo, route.params);\n data.search = route.params;\n data.hasRedirection = true;\n } else {\n var oldPath = $location.path();\n var oldSearch = $location.search();\n var newUrl = route.redirectTo(route.pathParams, oldPath, oldSearch);\n\n if (angular.isDefined(newUrl)) {\n data.url = newUrl;\n data.hasRedirection = true;\n }\n }\n } else if (route.resolveRedirectTo) {\n return $q.\n resolve($injector.invoke(route.resolveRedirectTo)).\n then(function(newUrl) {\n if (angular.isDefined(newUrl)) {\n data.url = newUrl;\n data.hasRedirection = true;\n }\n\n return data;\n });\n }\n }\n\n return data;\n }\n\n function handlePossibleRedirection(data) {\n var keepProcessingRoute = true;\n\n if (data.route !== $route.current) {\n keepProcessingRoute = false;\n } else if (data.hasRedirection) {\n var oldUrl = $location.url();\n var newUrl = data.url;\n\n if (newUrl) {\n $location.\n url(newUrl).\n replace();\n } else {\n newUrl = $location.\n path(data.path).\n search(data.search).\n replace().\n url();\n }\n\n if (newUrl !== oldUrl) {\n // Exit out and don't process current next value,\n // wait for next location change from redirect\n keepProcessingRoute = false;\n }\n }\n\n return keepProcessingRoute;\n }\n\n function resolveLocals(route) {\n if (route) {\n var locals = angular.extend({}, route.resolve);\n angular.forEach(locals, function(value, key) {\n locals[key] = angular.isString(value) ?\n $injector.get(value) :\n $injector.invoke(value, null, null, key);\n });\n var template = getTemplateFor(route);\n if (angular.isDefined(template)) {\n locals['$template'] = template;\n }\n return $q.all(locals);\n }\n }\n\n function getTemplateFor(route) {\n var template;\n var templateUrl;\n if (angular.isDefined(template = route.template)) {\n if (angular.isFunction(template)) {\n template = template(route.params);\n }\n } else if (angular.isDefined(templateUrl = route.templateUrl)) {\n if (angular.isFunction(templateUrl)) {\n templateUrl = templateUrl(route.params);\n }\n if (angular.isDefined(templateUrl)) {\n route.loadedTemplateUrl = $sce.valueOf(templateUrl);\n template = $templateRequest(templateUrl);\n }\n }\n return template;\n }\n\n /**\n * @returns {Object} the current active route, by matching it against the URL\n */\n function parseRoute() {\n // Match a route\n var params;\n\n var match;\n angular.forEach(routes, function(route, path) {\n if (!match && (params = switchRouteMatcher($location.path(), route))) {\n match = inherit(route, {\n params: angular.extend({}, $location.search(), params),\n pathParams: params});\n match.$$route = route;\n }\n });\n // No route matched; fallback to \"otherwise\" route\n return match || routes[null] && inherit(routes[null], {params: {}, pathParams:{}});\n }\n\n /**\n * @returns {string} interpolation of the redirect path with the parameters\n */\n function interpolate(string, params) {\n var result = [];\n angular.forEach((string || '').split(':'), function(segment, i) {\n if (i === 0) {\n result.push(segment);\n } else {\n var segmentMatch = segment.match(/(\\w+)(?:[?*])?(.*)/);\n var key = segmentMatch[1];\n result.push(params[key]);\n result.push(segmentMatch[2] || '');\n delete params[key];\n }\n });\n return result.join('');\n }\n }];\n}\n\ninstantiateRoute.$inject = ['$injector'];\nfunction instantiateRoute($injector) {\n if (isEagerInstantiationEnabled) {\n // Instantiate `$route`\n $injector.get('$route');\n }\n}\n'use strict';\n\nngRouteModule.provider('$routeParams', $RouteParamsProvider);\n\n\n/**\n * @ngdoc service\n * @name $routeParams\n * @requires $route\n * @this\n *\n * @description\n * The `$routeParams` service allows you to retrieve the current set of route parameters.\n *\n * Requires the {@link ngRoute `ngRoute`} module to be installed.\n *\n * The route parameters are a combination of {@link ng.$location `$location`}'s\n * {@link ng.$location#search `search()`} and {@link ng.$location#path `path()`}.\n * The `path` parameters are extracted when the {@link ngRoute.$route `$route`} path is matched.\n *\n * In case of parameter name collision, `path` params take precedence over `search` params.\n *\n * The service guarantees that the identity of the `$routeParams` object will remain unchanged\n * (but its properties will likely change) even when a route change occurs.\n *\n * Note that the `$routeParams` are only updated *after* a route change completes successfully.\n * This means that you cannot rely on `$routeParams` being correct in route resolve functions.\n * Instead you can use `$route.current.params` to access the new route's parameters.\n *\n * @example\n * ```js\n * // Given:\n * // URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby\n * // Route: /Chapter/:chapterId/Section/:sectionId\n * //\n * // Then\n * $routeParams ==> {chapterId:'1', sectionId:'2', search:'moby'}\n * ```\n */\nfunction $RouteParamsProvider() {\n this.$get = function() { return {}; };\n}\n'use strict';\n\nngRouteModule.directive('ngView', ngViewFactory);\nngRouteModule.directive('ngView', ngViewFillContentFactory);\n\n\n/**\n * @ngdoc directive\n * @name ngView\n * @restrict ECA\n *\n * @description\n * `ngView` is a directive that complements the {@link ngRoute.$route $route} service by\n * including the rendered template of the current route into the main layout (`index.html`) file.\n * Every time the current route changes, the included view changes with it according to the\n * configuration of the `$route` service.\n *\n * Requires the {@link ngRoute `ngRoute`} module to be installed.\n *\n * @animations\n * | Animation | Occurs |\n * |----------------------------------|-------------------------------------|\n * | {@link ng.$animate#enter enter} | when the new element is inserted to the DOM |\n * | {@link ng.$animate#leave leave} | when the old element is removed from to the DOM |\n *\n * The enter and leave animation occur concurrently.\n *\n * @scope\n * @priority 400\n * @param {string=} onload Expression to evaluate whenever the view updates.\n *\n * @param {string=} autoscroll Whether `ngView` should call {@link ng.$anchorScroll\n * $anchorScroll} to scroll the viewport after the view is updated.\n *\n * - If the attribute is not set, disable scrolling.\n * - If the attribute is set without value, enable scrolling.\n * - Otherwise enable scrolling only if the `autoscroll` attribute value evaluated\n * as an expression yields a truthy value.\n * @example\n \n \n
\n Choose:\n Moby |\n Moby: Ch1 |\n Gatsby |\n Gatsby: Ch4 |\n Scarlet Letter
\n\n
\n
\n
\n
\n\n
$location.path() = {{main.$location.path()}}
\n
$route.current.templateUrl = {{main.$route.current.templateUrl}}
\n
$route.current.params = {{main.$route.current.params}}
\n
$routeParams = {{main.$routeParams}}
\n
\n
\n\n \n
\n controller: {{book.name}}
\n Book Id: {{book.params.bookId}}
\n
\n
\n\n \n
\n controller: {{chapter.name}}
\n Book Id: {{chapter.params.bookId}}
\n Chapter Id: {{chapter.params.chapterId}}\n
\n
\n\n \n .view-animate-container {\n position:relative;\n height:100px!important;\n background:white;\n border:1px solid black;\n height:40px;\n overflow:hidden;\n }\n\n .view-animate {\n padding:10px;\n }\n\n .view-animate.ng-enter, .view-animate.ng-leave {\n transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s;\n\n display:block;\n width:100%;\n border-left:1px solid black;\n\n position:absolute;\n top:0;\n left:0;\n right:0;\n bottom:0;\n padding:10px;\n }\n\n .view-animate.ng-enter {\n left:100%;\n }\n .view-animate.ng-enter.ng-enter-active {\n left:0;\n }\n .view-animate.ng-leave.ng-leave-active {\n left:-100%;\n }\n \n\n \n angular.module('ngViewExample', ['ngRoute', 'ngAnimate'])\n .config(['$routeProvider', '$locationProvider',\n function($routeProvider, $locationProvider) {\n $routeProvider\n .when('/Book/:bookId', {\n templateUrl: 'book.html',\n controller: 'BookCtrl',\n controllerAs: 'book'\n })\n .when('/Book/:bookId/ch/:chapterId', {\n templateUrl: 'chapter.html',\n controller: 'ChapterCtrl',\n controllerAs: 'chapter'\n });\n\n $locationProvider.html5Mode(true);\n }])\n .controller('MainCtrl', ['$route', '$routeParams', '$location',\n function MainCtrl($route, $routeParams, $location) {\n this.$route = $route;\n this.$location = $location;\n this.$routeParams = $routeParams;\n }])\n .controller('BookCtrl', ['$routeParams', function BookCtrl($routeParams) {\n this.name = 'BookCtrl';\n this.params = $routeParams;\n }])\n .controller('ChapterCtrl', ['$routeParams', function ChapterCtrl($routeParams) {\n this.name = 'ChapterCtrl';\n this.params = $routeParams;\n }]);\n\n \n\n \n it('should load and compile correct template', function() {\n element(by.linkText('Moby: Ch1')).click();\n var content = element(by.css('[ng-view]')).getText();\n expect(content).toMatch(/controller: ChapterCtrl/);\n expect(content).toMatch(/Book Id: Moby/);\n expect(content).toMatch(/Chapter Id: 1/);\n\n element(by.partialLinkText('Scarlet')).click();\n\n content = element(by.css('[ng-view]')).getText();\n expect(content).toMatch(/controller: BookCtrl/);\n expect(content).toMatch(/Book Id: Scarlet/);\n });\n \n
\n */\n\n\n/**\n * @ngdoc event\n * @name ngView#$viewContentLoaded\n * @eventType emit on the current ngView scope\n * @description\n * Emitted every time the ngView content is reloaded.\n */\nngViewFactory.$inject = ['$route', '$anchorScroll', '$animate'];\nfunction ngViewFactory($route, $anchorScroll, $animate) {\n return {\n restrict: 'ECA',\n terminal: true,\n priority: 400,\n transclude: 'element',\n link(scope, $element, attr, ctrl, $transclude) {\n var currentScope;\n var currentElement;\n var previousLeaveAnimation;\n var autoScrollExp = attr.autoscroll;\n var onloadExp = attr.onload || '';\n\n scope.$on('$routeChangeSuccess', update);\n update();\n\n function cleanupLastView() {\n if (previousLeaveAnimation) {\n $animate.cancel(previousLeaveAnimation);\n previousLeaveAnimation = null;\n }\n\n if (currentScope) {\n currentScope.$destroy();\n currentScope = null;\n }\n if (currentElement) {\n previousLeaveAnimation = $animate.leave(currentElement);\n previousLeaveAnimation.done(function(response) {\n if (response !== false) previousLeaveAnimation = null;\n });\n currentElement = null;\n }\n }\n\n function update() {\n var locals = $route.current && $route.current.locals;\n var template = locals && locals.$template;\n\n if (angular.isDefined(template)) {\n var newScope = scope.$new();\n var current = $route.current;\n\n // Note: This will also link all children of ng-view that were contained in the original\n // html. If that content contains controllers, ... they could pollute/change the scope.\n // However, using ng-view on an element with additional content does not make sense...\n // Note: We can't remove them in the cloneAttchFn of $transclude as that\n // function is called before linking the content, which would apply child\n // directives to non existing elements.\n var clone = $transclude(newScope, function(clone) {\n $animate.enter(clone, null, currentElement || $element).done(function onNgViewEnter(response) {\n if (response !== false && angular.isDefined(autoScrollExp)\n && (!autoScrollExp || scope.$eval(autoScrollExp))) {\n $anchorScroll();\n }\n });\n cleanupLastView();\n });\n\n currentElement = clone;\n currentScope = current.scope = newScope;\n currentScope.$emit('$viewContentLoaded');\n currentScope.$eval(onloadExp);\n } else {\n cleanupLastView();\n }\n }\n }\n };\n}\n\n// This directive is called during the $transclude call of the first `ngView` directive.\n// It will replace and compile the content of the element with the loaded template.\n// We need this directive so that the element content is already filled when\n// the link function of another directive on the same element as ngView\n// is called.\nngViewFillContentFactory.$inject = ['$compile', '$controller', '$route'];\nfunction ngViewFillContentFactory($compile, $controller, $route) {\n return {\n restrict: 'ECA',\n priority: -400,\n link(scope, $element) {\n var current = $route.current;\n var locals = current.locals;\n\n $element.html(locals.$template);\n\n var link = $compile($element.contents());\n\n if (current.controller) {\n locals.$scope = scope;\n var controller = $controller(current.controller, locals);\n if (current.controllerAs) {\n scope[current.controllerAs] = controller;\n }\n $element.data('$ngControllerController', controller);\n $element.children().data('$ngControllerController', controller);\n }\n scope[current.resolveAs || '$resolve'] = locals;\n\n link(scope);\n }\n };\n}\n\r\n})(window, window.angular);\r\n","\n/**\n * @license AngularJS v2.0.0\n * (c) 2010-2020 Google, Inc. http://angularjs.org\n * License: MIT\n * Forked maintenance by PebblePad\n */\n((window, angular) => {\r\n'use strict';\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Any commits to this file should be reviewed with security in mind. *\n * Changes to this file can potentially create security vulnerabilities. *\n * An approval from 2 Core members with history of modifying *\n * this file is required. *\n * *\n * Does the change somehow allow for arbitrary javascript to be executed? *\n * Or allows for someone to change the prototype of built-in objects? *\n * Or gives undesired access to variables likes document or window? *\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\nvar $sanitizeMinErr = angular.$$minErr('$sanitize');\nvar bind;\nvar extend;\nvar forEach;\nvar isArray;\nvar isDefined;\nvar lowercase;\nvar noop;\nvar htmlParser;\nvar htmlSanitizeWriter;\n\n/**\n * @ngdoc module\n * @name ngSanitize\n * @description\n *\n * The `ngSanitize` module provides functionality to sanitize HTML.\n *\n * See {@link ngSanitize.$sanitize `$sanitize`} for usage.\n */\n\n/**\n * @ngdoc service\n * @name $sanitize\n * @kind function\n *\n * @description\n * Sanitizes an html string by stripping all potentially dangerous tokens.\n *\n * The input is sanitized by parsing the HTML into tokens. All safe tokens (from a whitelist) are\n * then serialized back to properly escaped html string. This means that no unsafe input can make\n * it into the returned string.\n *\n * The whitelist for URL sanitization of attribute values is configured using the functions\n * `aHrefSanitizationWhitelist` and `imgSrcSanitizationWhitelist` of {@link ng.$compileProvider\n * `$compileProvider`}.\n *\n * The input may also contain SVG markup if this is enabled via {@link $sanitizeProvider}.\n *\n * @param {string} html HTML input.\n * @returns {string} Sanitized HTML.\n *\n * @example\n \n \n \n
\n Snippet: \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
DirectiveHowSourceRendered
ng-bind-htmlAutomatically uses $sanitize
<div ng-bind-html=\"snippet\">
</div>
ng-bind-htmlBypass $sanitize by explicitly trusting the dangerous value\n
<div ng-bind-html=\"deliberatelyTrustDangerousSnippet()\">\n</div>
\n
ng-bindAutomatically escapes
<div ng-bind=\"snippet\">
</div>
\n
\n
\n \n it('should sanitize the html snippet by default', function() {\n expect(element(by.css('#bind-html-with-sanitize div')).getAttribute('innerHTML')).\n toBe('

an html\\nclick here\\nsnippet

');\n });\n\n it('should inline raw snippet if bound to a trusted value', function() {\n expect(element(by.css('#bind-html-with-trust div')).getAttribute('innerHTML')).\n toBe(\"

an html\\n\" +\n \"click here\\n\" +\n \"snippet

\");\n });\n\n it('should escape snippet without any filter', function() {\n expect(element(by.css('#bind-default div')).getAttribute('innerHTML')).\n toBe(\"<p style=\\\"color:blue\\\">an html\\n\" +\n \"<em onmouseover=\\\"this.textContent='PWN3D!'\\\">click here</em>\\n\" +\n \"snippet</p>\");\n });\n\n it('should update', function() {\n element(by.model('snippet')).clear();\n element(by.model('snippet')).sendKeys('new text');\n expect(element(by.css('#bind-html-with-sanitize div')).getAttribute('innerHTML')).\n toBe('new text');\n expect(element(by.css('#bind-html-with-trust div')).getAttribute('innerHTML')).toBe(\n 'new text');\n expect(element(by.css('#bind-default div')).getAttribute('innerHTML')).toBe(\n \"new <b onclick=\\\"alert(1)\\\">text</b>\");\n });\n
\n
\n */\n\n\n/**\n * @ngdoc provider\n * @name $sanitizeProvider\n * @this\n *\n * @description\n * Creates and configures {@link $sanitize} instance.\n */\nfunction $SanitizeProvider() {\n var hasBeenInstantiated = false;\n var svgEnabled = false;\n\n this.$get = ['$$sanitizeUri', function($$sanitizeUri) {\n hasBeenInstantiated = true;\n if (svgEnabled) {\n extend(validElements, svgElements);\n }\n return function(html) {\n var buf = [];\n htmlParser(html, htmlSanitizeWriter(buf, function(uri, isImage) {\n return !/^unsafe:/.test($$sanitizeUri(uri, isImage));\n }));\n return buf.join('');\n };\n }];\n\n\n /**\n * @ngdoc method\n * @name $sanitizeProvider#enableSvg\n * @kind function\n *\n * @description\n * Enables a subset of svg to be supported by the sanitizer.\n *\n *
\n *

By enabling this setting without taking other precautions, you might expose your\n * application to click-hijacking attacks. In these attacks, sanitized svg elements could be positioned\n * outside of the containing element and be rendered over other elements on the page (e.g. a login\n * link). Such behavior can then result in phishing incidents.

\n *\n *

To protect against these, explicitly setup `overflow: hidden` css rule for all potential svg\n * tags within the sanitized content:

\n *\n *
\n *\n *
\n   *   .rootOfTheIncludedContent svg {\n   *     overflow: hidden !important;\n   *   }\n   *   
\n *
\n *\n * @param {boolean=} flag Enable or disable SVG support in the sanitizer.\n * @returns {boolean|$sanitizeProvider} Returns the currently configured value if called\n * without an argument or self for chaining otherwise.\n */\n this.enableSvg = function(enableSvg) {\n if (isDefined(enableSvg)) {\n svgEnabled = enableSvg;\n return this;\n } else {\n return svgEnabled;\n }\n };\n\n\n /**\n * @ngdoc method\n * @name $sanitizeProvider#addValidElements\n * @kind function\n *\n * @description\n * Extends the built-in lists of valid HTML/SVG elements, i.e. elements that are considered safe\n * and are not stripped off during sanitization. You can extend the following lists of elements:\n *\n * - `htmlElements`: A list of elements (tag names) to extend the current list of safe HTML\n * elements. HTML elements considered safe will not be removed during sanitization. All other\n * elements will be stripped off.\n *\n * - `htmlVoidElements`: This is similar to `htmlElements`, but marks the elements as\n * \"void elements\" (similar to HTML\n * [void elements](https://rawgit.com/w3c/html/html5.1-2/single-page.html#void-elements)). These\n * elements have no end tag and cannot have content.\n *\n * - `svgElements`: This is similar to `htmlElements`, but for SVG elements. This list is only\n * taken into account if SVG is {@link ngSanitize.$sanitizeProvider#enableSvg enabled} for\n * `$sanitize`.\n *\n *
\n * This method must be called during the {@link angular.Module#config config} phase. Once the\n * `$sanitize` service has been instantiated, this method has no effect.\n *
\n *\n *
\n * Keep in mind that extending the built-in lists of elements may expose your app to XSS or\n * other vulnerabilities. Be very mindful of the elements you add.\n *
\n *\n * @param {Array|Object} elements - A list of valid HTML elements or an object with one or\n * more of the following properties:\n * - **htmlElements** - `{Array}` - A list of elements to extend the current list of\n * HTML elements.\n * - **htmlVoidElements** - `{Array}` - A list of elements to extend the current list of\n * void HTML elements; i.e. elements that do not have an end tag.\n * - **svgElements** - `{Array}` - A list of elements to extend the current list of SVG\n * elements. The list of SVG elements is only taken into account if SVG is\n * {@link ngSanitize.$sanitizeProvider#enableSvg enabled} for `$sanitize`.\n *\n * Passing an array (`[...]`) is equivalent to passing `{htmlElements: [...]}`.\n *\n * @return {$sanitizeProvider} Returns self for chaining.\n */\n this.addValidElements = function(elements) {\n if (!hasBeenInstantiated) {\n if (isArray(elements)) {\n elements = {htmlElements: elements};\n }\n\n addElementsTo(svgElements, elements.svgElements);\n addElementsTo(voidElements, elements.htmlVoidElements);\n addElementsTo(validElements, elements.htmlVoidElements);\n addElementsTo(validElements, elements.htmlElements);\n }\n\n return this;\n };\n\n\n /**\n * @ngdoc method\n * @name $sanitizeProvider#addValidAttrs\n * @kind function\n *\n * @description\n * Extends the built-in list of valid attributes, i.e. attributes that are considered safe and are\n * not stripped off during sanitization.\n *\n * **Note**:\n * The new attributes will not be treated as URI attributes, which means their values will not be\n * sanitized as URIs using `$compileProvider`'s\n * {@link ng.$compileProvider#aHrefSanitizationWhitelist aHrefSanitizationWhitelist} and\n * {@link ng.$compileProvider#imgSrcSanitizationWhitelist imgSrcSanitizationWhitelist}.\n *\n *
\n * This method must be called during the {@link angular.Module#config config} phase. Once the\n * `$sanitize` service has been instantiated, this method has no effect.\n *
\n *\n *
\n * Keep in mind that extending the built-in list of attributes may expose your app to XSS or\n * other vulnerabilities. Be very mindful of the attributes you add.\n *
\n *\n * @param {Array} attrs - A list of valid attributes.\n *\n * @returns {$sanitizeProvider} Returns self for chaining.\n */\n this.addValidAttrs = function(attrs) {\n if (!hasBeenInstantiated) {\n extend(validAttrs, arrayToMap(attrs, true));\n }\n return this;\n };\n\n //////////////////////////////////////////////////////////////////////////////////////////////////\n // Private stuff\n //////////////////////////////////////////////////////////////////////////////////////////////////\n\n bind = angular.bind;\n extend = angular.extend;\n forEach = angular.forEach;\n isArray = angular.isArray;\n isDefined = angular.isDefined;\n lowercase = angular.lowercase;\n noop = angular.noop;\n\n htmlParser = htmlParserImpl;\n htmlSanitizeWriter = htmlSanitizeWriterImpl;\n\n // Regular Expressions for parsing tags and attributes\n var SURROGATE_PAIR_REGEXP = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\n var // Match everything outside of normal chars and \" (quote character)\n NON_ALPHANUMERIC_REGEXP = /([^#-~ |!])/g;\n\n\n // Good source of info about elements and attributes\n // http://dev.w3.org/html5/spec/Overview.html#semantics\n // http://simon.html5.org/html-elements\n\n // Safe Void Elements - HTML5\n // http://dev.w3.org/html5/spec/Overview.html#void-elements\n var voidElements = stringToMap('area,br,col,hr,img,wbr');\n\n // Elements that you can, intentionally, leave open (and which close themselves)\n // http://dev.w3.org/html5/spec/Overview.html#optional-tags\n var optionalEndTagBlockElements = stringToMap('colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr');\n\n var optionalEndTagInlineElements = stringToMap('rp,rt');\n\n var optionalEndTagElements = extend({},\n optionalEndTagInlineElements,\n optionalEndTagBlockElements);\n\n // Safe Block Elements - HTML5\n var blockElements = extend({}, optionalEndTagBlockElements, stringToMap('address,article,' +\n 'aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,' +\n 'h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul'));\n\n // Inline Elements - HTML5\n var inlineElements = extend({}, optionalEndTagInlineElements, stringToMap('a,abbr,acronym,b,' +\n 'bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,' +\n 'samp,small,span,strike,strong,sub,sup,time,tt,u,var'));\n\n // SVG Elements\n // https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Elements\n // Note: the elements animate,animateColor,animateMotion,animateTransform,set are intentionally omitted.\n // They can potentially allow for arbitrary javascript to be executed. See #11290\n var svgElements = stringToMap('circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,' +\n 'hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,' +\n 'radialGradient,rect,stop,svg,switch,text,title,tspan');\n\n // Blocked Elements (will be stripped)\n var blockedElements = stringToMap('script,style');\n\n var validElements = extend({},\n voidElements,\n blockElements,\n inlineElements,\n optionalEndTagElements);\n\n //Attributes that have href and hence need to be sanitized\n var uriAttrs = stringToMap('background,cite,href,longdesc,src,xlink:href,xml:base');\n\n var htmlAttrs = stringToMap('abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,' +\n 'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,' +\n 'ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,' +\n 'scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,' +\n 'valign,value,vspace,width');\n\n // SVG attributes (without \"id\" and \"name\" attributes)\n // https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Attributes\n var svgAttrs = stringToMap('accent-height,accumulate,additive,alphabetic,arabic-form,ascent,' +\n 'baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,' +\n 'cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,' +\n 'font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,' +\n 'height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,' +\n 'marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,' +\n 'max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,' +\n 'path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,' +\n 'requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,' +\n 'stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,' +\n 'stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,' +\n 'stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,' +\n 'underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,' +\n 'width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,' +\n 'xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan', true);\n\n var validAttrs = extend({},\n uriAttrs,\n svgAttrs,\n htmlAttrs);\n\n function stringToMap(str, lowercaseKeys) {\n return arrayToMap(str.split(','), lowercaseKeys);\n }\n\n function arrayToMap(items, lowercaseKeys) {\n var obj = {};\n var i;\n for (i = 0; i < items.length; i++) {\n obj[lowercaseKeys ? lowercase(items[i]) : items[i]] = true;\n }\n return obj;\n }\n\n function addElementsTo(elementsMap, newElements) {\n if (newElements && newElements.length) {\n extend(elementsMap, arrayToMap(newElements));\n }\n }\n\n /**\n * Create an inert document that contains the dirty HTML that needs sanitizing\n * Depending upon browser support we use one of three strategies for doing this.\n * Support: Safari 10.x -> XHR strategy\n * Support: Firefox -> DomParser strategy\n */\n var getInertBodyElement /* function(html: string): HTMLBodyElement */ = (function(window, document) {\n var inertDocument;\n if (document && document.implementation) {\n inertDocument = document.implementation.createHTMLDocument('inert');\n } else {\n throw $sanitizeMinErr('noinert', 'Can\\'t create an inert html document');\n }\n var inertBodyElement = (inertDocument.documentElement || inertDocument.getDocumentElement()).querySelector('body');\n\n // Check for the Safari 10.1 bug - which allows JS to run inside the SVG G element\n inertBodyElement.innerHTML = '';\n if (!inertBodyElement.querySelector('svg')) {\n return getInertBodyElement_XHR;\n } else {\n // Check for the Firefox bug - which prevents the inner img JS from being sanitized\n inertBodyElement.innerHTML = '

';\n if (inertBodyElement.querySelector('svg img')) {\n return getInertBodyElement_DOMParser;\n } else {\n return getInertBodyElement_InertDocument;\n }\n }\n\n function getInertBodyElement_XHR(html) {\n // We add this dummy element to ensure that the rest of the content is parsed as expected\n // e.g. leading whitespace is maintained and tags like `` do not get hoisted to the `` tag.\n html = '' + html;\n try {\n html = encodeURI(html);\n } catch (e) {\n return undefined;\n }\n var xhr = new window.XMLHttpRequest();\n xhr.responseType = 'document';\n xhr.open('GET', 'data:text/html;charset=utf-8,' + html, false);\n xhr.send(null);\n var body = xhr.response.body;\n body.firstChild.remove();\n return body;\n }\n\n function getInertBodyElement_DOMParser(html) {\n // We add this dummy element to ensure that the rest of the content is parsed as expected\n // e.g. leading whitespace is maintained and tags like `` do not get hoisted to the `` tag.\n html = '' + html;\n try {\n var body = new window.DOMParser().parseFromString(html, 'text/html').body;\n body.firstChild.remove();\n return body;\n } catch (e) {\n return undefined;\n }\n }\n\n function getInertBodyElement_InertDocument(html) {\n inertBodyElement.innerHTML = html;\n return inertBodyElement;\n }\n })(window, window.document);\n\n /**\n * @example\n * htmlParser(htmlString, {\n * start: function(tag, attrs) {},\n * end: function(tag) {},\n * chars: function(text) {},\n * comment: function(text) {}\n * });\n *\n * @param {string} html string\n * @param {object} handler\n */\n function htmlParserImpl(html, handler) {\n if (html === null || html === undefined) {\n html = '';\n } else if (typeof html !== 'string') {\n html = '' + html;\n }\n\n var inertBodyElement = getInertBodyElement(html);\n if (!inertBodyElement) return '';\n\n //mXSS protection\n var mXSSAttempts = 5;\n do {\n if (mXSSAttempts === 0) {\n throw $sanitizeMinErr('uinput', 'Failed to sanitize html because the input is unstable');\n }\n mXSSAttempts--;\n\n // trigger mXSS if it is going to happen by reading and writing the innerHTML\n html = inertBodyElement.innerHTML;\n inertBodyElement = getInertBodyElement(html);\n } while (html !== inertBodyElement.innerHTML);\n\n var node = inertBodyElement.firstChild;\n while (node) {\n switch (node.nodeType) {\n case 1: // ELEMENT_NODE\n handler.start(node.nodeName.toLowerCase(), attrToMap(node.attributes));\n break;\n case 3: // TEXT NODE\n handler.chars(node.textContent);\n break;\n }\n\n var nextNode;\n if (!(nextNode = node.firstChild)) {\n if (node.nodeType === 1) {\n handler.end(node.nodeName.toLowerCase());\n }\n nextNode = getNonDescendant('nextSibling', node);\n if (!nextNode) {\n while (nextNode == null) {\n node = getNonDescendant('parentNode', node);\n if (node === inertBodyElement) break;\n nextNode = getNonDescendant('nextSibling', node);\n if (node.nodeType === 1) {\n handler.end(node.nodeName.toLowerCase());\n }\n }\n }\n }\n node = nextNode;\n }\n\n while ((node = inertBodyElement.firstChild)) {\n inertBodyElement.removeChild(node);\n }\n }\n\n function attrToMap(attrs) {\n var map = {};\n for (var i = 0, ii = attrs.length; i < ii; i++) {\n var attr = attrs[i];\n map[attr.name] = attr.value;\n }\n return map;\n }\n\n\n /**\n * Escapes all potentially dangerous characters, so that the\n * resulting string can be safely inserted into attribute or\n * element text.\n * @param value\n * @returns {string} escaped text\n */\n function encodeEntities(value) {\n return value.\n replace(/&/g, '&').\n replace(SURROGATE_PAIR_REGEXP, function(value) {\n var hi = value.charCodeAt(0);\n var low = value.charCodeAt(1);\n return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';';\n }).\n replace(NON_ALPHANUMERIC_REGEXP, function(value) {\n return '&#' + value.charCodeAt(0) + ';';\n }).\n replace(//g, '>');\n }\n\n /**\n * create an HTML/XML writer which writes to buffer\n * @param {Array} buf use buf.join('') to get out sanitized html string\n * @returns {object} in the form of {\n * start: function(tag, attrs) {},\n * end: function(tag) {},\n * chars: function(text) {},\n * comment: function(text) {}\n * }\n */\n function htmlSanitizeWriterImpl(buf, uriValidator) {\n var ignoreCurrentElement = false;\n var out = bind(buf, buf.push);\n return {\n start(tag, attrs) {\n tag = lowercase(tag);\n if (!ignoreCurrentElement && blockedElements[tag]) {\n ignoreCurrentElement = tag;\n }\n if (!ignoreCurrentElement && validElements[tag] === true) {\n out('<');\n out(tag);\n forEach(attrs, function(value, key) {\n var lkey = lowercase(key);\n var isImage = (tag === 'img' && lkey === 'src') || (lkey === 'background');\n if (validAttrs[lkey] === true &&\n (uriAttrs[lkey] !== true || uriValidator(value, isImage))) {\n out(' ');\n out(key);\n out('=\"');\n out(encodeEntities(value));\n out('\"');\n }\n });\n out('>');\n }\n },\n end(tag) {\n tag = lowercase(tag);\n if (!ignoreCurrentElement && validElements[tag] === true && voidElements[tag] !== true) {\n out('');\n }\n // eslint-disable-next-line eqeqeq\n if (tag == ignoreCurrentElement) {\n ignoreCurrentElement = false;\n }\n },\n chars(chars) {\n if (!ignoreCurrentElement) {\n out(encodeEntities(chars));\n }\n }\n };\n }\n\n function getNonDescendant(propName, node) {\n // An element is clobbered if its `propName` property points to one of its descendants\n var nextNode = node[propName];\n if (nextNode && Node.prototype.contains.call(node, nextNode)) {\n throw $sanitizeMinErr('elclob', 'Failed to sanitize html because the element is clobbered: {0}', node.outerHTML || node.outerText);\n }\n return nextNode;\n }\n}\n\nfunction sanitizeText(chars) {\n var buf = [];\n var writer = htmlSanitizeWriter(buf, noop);\n writer.chars(chars);\n return buf.join('');\n}\n\n\n// define ngSanitize module and register $sanitize service\nangular.module('ngSanitize', [])\n .provider('$sanitize', $SanitizeProvider)\n .info({ angularVersion: '2.0.0' });\n'use strict';\n\n/**\n * @ngdoc filter\n * @name linky\n * @kind function\n *\n * @description\n * Finds links in text input and turns them into html links. Supports `http/https/ftp/sftp/mailto` and\n * plain email address links.\n *\n * Requires the {@link ngSanitize `ngSanitize`} module to be installed.\n *\n * @param {string} text Input text.\n * @param {string} [target] Window (`_blank|_self|_parent|_top`) or named frame to open links in.\n * @param {object|function(url)} [attributes] Add custom attributes to the link element.\n *\n * Can be one of:\n *\n * - `object`: A map of attributes\n * - `function`: Takes the url as a parameter and returns a map of attributes\n *\n * If the map of attributes contains a value for `target`, it overrides the value of\n * the target parameter.\n *\n *\n * @returns {string} Html-linkified and {@link $sanitize sanitized} text.\n *\n * @usage\n \n *\n * @example\n \n \n

\n Snippet: \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FilterSourceRendered
linky filter\n
<div ng-bind-html=\"snippet | linky\">
</div>
\n
\n
\n
linky target\n
<div ng-bind-html=\"snippetWithSingleURL | linky:'_blank'\">
</div>
\n
\n
\n
linky custom attributes\n
<div ng-bind-html=\"snippetWithSingleURL | linky:'_self':{rel: 'nofollow'}\">
</div>
\n
\n
\n
no filter
<div ng-bind=\"snippet\">
</div>
\n \n \n angular.module('linkyExample', ['ngSanitize'])\n .controller('ExampleController', ['$scope', function($scope) {\n $scope.snippet =\n 'Pretty text with some links:\\n' +\n 'http://angularjs.org/,\\n' +\n 'mailto:us@somewhere.org,\\n' +\n 'another@somewhere.org,\\n' +\n 'and one more: ftp://127.0.0.1/.';\n $scope.snippetWithSingleURL = 'http://angularjs.org/';\n }]);\n \n \n it('should linkify the snippet with urls', function() {\n expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()).\n toBe('Pretty text with some links: http://angularjs.org/, us@somewhere.org, ' +\n 'another@somewhere.org, and one more: ftp://127.0.0.1/.');\n expect(element.all(by.css('#linky-filter a')).count()).toEqual(4);\n });\n\n it('should not linkify snippet without the linky filter', function() {\n expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText()).\n toBe('Pretty text with some links: http://angularjs.org/, mailto:us@somewhere.org, ' +\n 'another@somewhere.org, and one more: ftp://127.0.0.1/.');\n expect(element.all(by.css('#escaped-html a')).count()).toEqual(0);\n });\n\n it('should update', function() {\n element(by.model('snippet')).clear();\n element(by.model('snippet')).sendKeys('new http://link.');\n expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()).\n toBe('new http://link.');\n expect(element.all(by.css('#linky-filter a')).count()).toEqual(1);\n expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText())\n .toBe('new http://link.');\n });\n\n it('should work with the target property', function() {\n expect(element(by.id('linky-target')).\n element(by.binding(\"snippetWithSingleURL | linky:'_blank'\")).getText()).\n toBe('http://angularjs.org/');\n expect(element(by.css('#linky-target a')).getAttribute('target')).toEqual('_blank');\n });\n\n it('should optionally add custom attributes', function() {\n expect(element(by.id('linky-custom-attributes')).\n element(by.binding(\"snippetWithSingleURL | linky:'_self':{rel: 'nofollow'}\")).getText()).\n toBe('http://angularjs.org/');\n expect(element(by.css('#linky-custom-attributes a')).getAttribute('rel')).toEqual('nofollow');\n });\n \n \n */\nangular.module('ngSanitize').filter('linky', ['$sanitize', function($sanitize) {\n var LINKY_URL_REGEXP = /((s?ftp|https?):\\/\\/|(www\\.)|(mailto:)[a-z0-9._%+-]+@|((?:[^a-z0-9._%+-]|^)[a-z0-9._%+-]+)@)\\S*[^\\s.;,(){}<>\"\\u201d\\u2019]/i;\n var MAILTO_REGEXP = /^mailto:/i;\n\n var linkyMinErr = angular.$$minErr('linky');\n var isDefined = angular.isDefined;\n var isFunction = angular.isFunction;\n var isObject = angular.isObject;\n var isString = angular.isString;\n\n return function(text, target, attributes) {\n if (text == null || text === '') return text;\n if (!isString(text)) throw linkyMinErr('notstring', 'Expected string but received: {0}', text);\n\n var attributesFn =\n isFunction(attributes) ? attributes :\n isObject(attributes) ? function getAttributesObject() {return attributes;} :\n function getEmptyAttributesObject() {return {};};\n\n var match;\n var raw = text;\n var html = [];\n var url;\n var i;\n while ((match = raw.match(LINKY_URL_REGEXP))) {\n let fullMatch = \"\";\n // We can not end in these as they are sometimes found at the end of the sentence\n if (match[5] === undefined) {\n fullMatch = match[0]\n url = fullMatch;\n i = match.index;\n } else {\n const offset = match.index === 0 ? 0 : 1;\n fullMatch = match[0].substring(offset);\n url = fullMatch;\n i = match.index + offset;\n }\n // if we did not match ftp/http or mailto then assume it could be url (regex match 3) or email without protocol (regex match 5)\n if (!match[2] && !match[4]) {\n url = (match[3] ? 'http://' : 'mailto:') + url;\n }\n\n addText(raw.substr(0, i));\n addLink(url, fullMatch.replace(MAILTO_REGEXP, ''));\n raw = raw.substring(i + fullMatch.length);\n }\n addText(raw);\n return $sanitize(html.join(''));\n\n function addText(text) {\n if (!text) {\n return;\n }\n html.push(sanitizeText(text));\n }\n\n function addLink(url, text) {\n var key;\n var linkAttributes = attributesFn(url);\n html.push('');\n addText(text);\n html.push('');\n }\n };\n}]);\n\r\n})(window, window.angular);\r\n","\n/**\n * @license AngularJS v2.0.0\n * (c) 2010-2020 Google, Inc. http://angularjs.org\n * License: MIT\n * Forked maintenance by PebblePad\n */\n((window) => {\r\n'use strict';\nvar compilationBindings = {\n current: null\n};\n'use strict';\n\n/* exported\n minErrConfig,\n errorHandlingConfig,\n isValidObjectMaxDepth\n*/\n\nvar minErrConfig = {\n objectMaxDepth: 5\n};\n\n/**\n * @ngdoc function\n * @name angular.errorHandlingConfig\n * @module ng\n * @kind function\n *\n * @description\n * Configure several aspects of error handling in AngularJS if used as a setter or return the\n * current configuration if used as a getter. The following options are supported:\n *\n * - **objectMaxDepth**: The maximum depth to which objects are traversed when stringified for error messages.\n *\n * Omitted or undefined options will leave the corresponding configuration values unchanged.\n *\n * @param {Object=} config - The configuration object. May only contain the options that need to be\n * updated. Supported keys:\n *\n * * `objectMaxDepth` **{Number}** - The max depth for stringifying objects. Setting to a\n * non-positive or non-numeric value, removes the max depth limit.\n * Default: 5\n */\nfunction errorHandlingConfig(config) {\n if (isObject(config)) {\n if (isDefined(config.objectMaxDepth)) {\n minErrConfig.objectMaxDepth = isValidObjectMaxDepth(config.objectMaxDepth) ? config.objectMaxDepth : NaN;\n }\n } else {\n return minErrConfig;\n }\n}\n\n/**\n * @private\n * @param {Number} maxDepth\n * @return {boolean}\n */\nfunction isValidObjectMaxDepth(maxDepth) {\n return isNumber(maxDepth) && maxDepth > 0;\n}\n\n/**\n * @description\n *\n * This object provides a utility for producing rich Error messages within\n * AngularJS. It can be called as follows:\n *\n * var exampleMinErr = minErr('example');\n * throw exampleMinErr('one', 'This {0} is {1}', foo, bar);\n *\n * The above creates an instance of minErr in the example namespace. The\n * resulting error will have a namespaced error code of example.one. The\n * resulting error will replace {0} with the value of foo, and {1} with the\n * value of bar. The object is not restricted in the number of arguments it can\n * take.\n *\n * If fewer arguments are specified than necessary for interpolation, the extra\n * interpolation markers will be preserved in the final string.\n *\n * Since data will be parsed statically during a build step, some restrictions\n * are applied with respect to how minErr instances are created and called.\n * Instances should have names of the form namespaceMinErr for a minErr created\n * using minErr('namespace') . Error codes, namespaces and template strings\n * should all be static strings, not variables or general expressions.\n *\n * @param {string} module The namespace to use for the new minErr instance.\n * @param {function} ErrorConstructor Custom error constructor to be instantiated when returning\n * error from returned function, for cases when a particular type of error is useful.\n * @returns {function(code:string, template:string, ...templateArgs): Error} minErr instance\n */\n\nfunction minErr(module, ErrorConstructor) {\n ErrorConstructor = ErrorConstructor || Error;\n\n var url = 'https://errors.angularjs.org/1.6.10/';\n var regex = url.replace('.', '\\\\.') + '[\\\\s\\\\S]*';\n var errRegExp = new RegExp(regex, 'g');\n\n return function() {\n var code = arguments[0];\n var template = arguments[1];\n var message = '[' + (module ? module + ':' : '') + code + '] ';\n\n var templateArgs = sliceArgs(arguments, 2).map(function(arg) {\n return toDebugString(arg, minErrConfig.objectMaxDepth);\n });\n\n var paramPrefix;\n var i;\n\n // A minErr message has two parts: the message itself and the url that contains the\n // encoded message.\n // The message's parameters can contain other error messages which also include error urls.\n // To prevent the messages from getting too long, we strip the error urls from the parameters.\n\n message += template.replace(/\\{\\d+\\}/g, function(match) {\n var index = +match.slice(1, -1);\n\n if (index < templateArgs.length) {\n return templateArgs[index].replace(errRegExp, '');\n }\n\n return match;\n });\n\n message += '\\n' + url + (module ? module + '/' : '') + code;\n\n for (i = 0, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') {\n message += paramPrefix + 'p' + i + '=' + encodeURIComponent(templateArgs[i]);\n }\n\n return new ErrorConstructor(message);\n };\n}\n'use strict';\n\n/* We need to tell ESLint what variables are being exported */\n/* exported\n angular,\n jqLite,\n slice,\n splice,\n push,\n toString,\n minErrConfig,\n errorHandlingConfig,\n isValidObjectMaxDepth,\n ngMinErr,\n angularModule,\n uid,\n REGEX_STRING_REGEXP,\n VALIDITY_STATE_PROPERTY,\n\n lowercase,\n uppercase,\n manualLowercase,\n manualUppercase,\n nodeName_,\n isArrayLike,\n forEach,\n forEachSorted,\n reverseParams,\n nextUid,\n setHashKey,\n extend,\n toInt,\n inherit,\n merge,\n noop,\n identity,\n valueFn,\n isUndefined,\n isDefined,\n isObject,\n isBlankObject,\n isString,\n isNumber,\n isNumberNaN,\n isDate,\n isError,\n isArray,\n isFunction,\n isRegExp,\n isWindow,\n isScope,\n isFile,\n isFormData,\n isBlob,\n isBoolean,\n isPromiseLike,\n trim,\n escapeForRegexp,\n isElement,\n makeMap,\n includes,\n arrayRemove,\n copy,\n simpleCompare,\n equals,\n csp,\n jq,\n concat,\n sliceArgs,\n bind,\n toJsonReplacer,\n toJson,\n fromJson,\n convertTimezoneToLocal,\n timezoneToOffset,\n addDateMinutes,\n startingTag,\n tryDecodeURIComponent,\n parseKeyValue,\n toKeyValue,\n encodeUriSegment,\n encodeUriQuery,\n angularInit,\n bootstrap,\n getTestability,\n snake_case,\n bindJQuery,\n assertArg,\n assertArgFn,\n assertNotHasOwnProperty,\n getter,\n getBlockNodes,\n hasOwnProperty,\n createMap,\n stringify,\n UNSAFE_restoreLegacyJqLiteXHTMLReplacement,\n compilationBindings\n\n NODE_TYPE_ELEMENT,\n NODE_TYPE_ATTRIBUTE,\n NODE_TYPE_TEXT,\n NODE_TYPE_COMMENT,\n NODE_TYPE_DOCUMENT,\n NODE_TYPE_DOCUMENT_FRAGMENT\n*/\n\n////////////////////////////////////\n/**\n * documentMode is an IE-only property\n * http://msdn.microsoft.com/en-us/library/ie/cc196988(v=vs.85).aspx\n */\nif (window.document.documentMode) {\n throw new Error('Internet Explorer is not supported!');\n}\n\n\n/**\n * @ngdoc module\n * @name ng\n * @module ng\n * @installation\n * @description\n *\n * The ng module is loaded by default when an AngularJS application is started. The module itself\n * contains the essential components for an AngularJS application to function. The table below\n * lists a high level breakdown of each of the services/factories, filters, directives and testing\n * components available within this core module.\n *\n */\n\nvar REGEX_STRING_REGEXP = /^\\/(.+)\\/([a-z]*)$/;\n\n// The name of a form control's ValidityState property.\n// This is used so that it's possible for internal tests to create mock ValidityStates.\nvar VALIDITY_STATE_PROPERTY = 'validity';\n\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * @ngdoc function\n * @name angular.lowercase\n * @module ng\n * @kind function\n *\n * @deprecated\n * sinceVersion=\"1.5.0\"\n * removeVersion=\"1.7.0\"\n * Use [String.prototype.toLowerCase](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase) instead.\n *\n * @description Converts the specified string to lowercase.\n * @param {string} string String to be converted to lowercase.\n * @returns {string} Lowercased string.\n */\nvar lowercase = function(string) {return isString(string) ? string.toLowerCase() : string;};\n\n/**\n * @ngdoc function\n * @name angular.uppercase\n * @module ng\n * @kind function\n *\n * @deprecated\n * sinceVersion=\"1.5.0\"\n * removeVersion=\"1.7.0\"\n * Use [String.prototype.toUpperCase](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase) instead.\n *\n * @description Converts the specified string to uppercase.\n * @param {string} string String to be converted to uppercase.\n * @returns {string} Uppercased string.\n */\nvar uppercase = function(string) {return isString(string) ? string.toUpperCase() : string;};\n\n\nvar manualLowercase = function(s) {\n /* eslint-disable no-bitwise */\n return isString(s)\n ? s.replace(/[A-Z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) | 32);})\n : s;\n /* eslint-enable */\n};\nvar manualUppercase = function(s) {\n /* eslint-disable no-bitwise */\n return isString(s)\n ? s.replace(/[a-z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) & ~32);})\n : s;\n /* eslint-enable */\n};\n\n\n// String#toLowerCase and String#toUpperCase don't produce correct results in browsers with Turkish\n// locale, for this reason we need to detect this case and redefine lowercase/uppercase methods\n// with correct but slower alternatives. See https://github.com/angular/angular.js/issues/11387\nif ('i' !== 'I'.toLowerCase()) {\n lowercase = manualLowercase;\n uppercase = manualUppercase;\n}\n\nvar jqLite;\nvar slice = [].slice;\nvar splice = [].splice;\nvar push = [].push;\nvar toString = Object.prototype.toString;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar ngMinErr = minErr('ng');\n\n/** @name angular */\nvar angular = window.angular || (window.angular = {});\nvar angularModule;\nvar uid = { current: 0 };\n\n\n/**\n * @private\n * @param {*} obj\n * @return {boolean} Returns true if `obj` is an array or array-like object (NodeList, Arguments,\n * String ...)\n */\nfunction isArrayLike(obj) {\n\n // `null`, `undefined` and `window` are not array-like\n if (obj == null || isWindow(obj)) return false;\n\n // arrays, strings and jQuery/jqLite objects are array like\n // * jqLite is either the jQuery or jqLite constructor function\n // * we have to check the existence of jqLite first as this method is called\n // via the forEach method when constructing the jqLite object in the first place\n if (isArray(obj) || isString(obj) || (jqLite && obj instanceof jqLite)) return true;\n\n // Support: iOS 8.2 (not reproducible in simulator)\n // \"length\" in obj used to prevent JIT error (gh-11508)\n var length = 'length' in Object(obj) && obj.length;\n\n // NodeList objects (with `item` method) and\n // other objects with suitable length characteristics are array-like\n return isNumber(length) &&\n (length >= 0 && ((length - 1) in obj || obj instanceof Array) || typeof obj.item === 'function');\n\n}\n\n/**\n * @ngdoc function\n * @name angular.forEach\n * @module ng\n * @kind function\n *\n * @description\n * Invokes the `iterator` function once for each item in `obj` collection, which can be either an\n * object or an array. The `iterator` function is invoked with `iterator(value, key, obj)`, where `value`\n * is the value of an object property or an array element, `key` is the object property key or\n * array element index and obj is the `obj` itself. Specifying a `context` for the function is optional.\n *\n * It is worth noting that `.forEach` does not iterate over inherited properties because it filters\n * using the `hasOwnProperty` method.\n *\n * Unlike ES262's\n * [Array.prototype.forEach](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.18),\n * providing 'undefined' or 'null' values for `obj` will not throw a TypeError, but rather just\n * return the value provided.\n *\n ```js\n var values = {name: 'misko', gender: 'male'};\n var log = [];\n angular.forEach(values, function(value, key) {\n this.push(key + ': ' + value);\n }, log);\n expect(log).toEqual(['name: misko', 'gender: male']);\n ```\n *\n * @param {Object|Array} obj Object to iterate over.\n * @param {Function} iterator Iterator function.\n * @param {Object=} context Object to become context (`this`) for the iterator function.\n * @returns {Object|Array} Reference to `obj`.\n */\n\nfunction forEach(obj, iterator, context) {\n var key;\n var length;\n if (obj) {\n if (isFunction(obj)) {\n for (key in obj) {\n if (key !== 'prototype' && key !== 'length' && key !== 'name' && obj.hasOwnProperty(key)) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n } else if (isArray(obj) || isArrayLike(obj)) {\n var isPrimitive = typeof obj !== 'object';\n for (key = 0, length = obj.length; key < length; key++) {\n if (isPrimitive || key in obj) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n } else if (obj.forEach && obj.forEach !== forEach) {\n obj.forEach(iterator, context, obj);\n } else if (isBlankObject(obj)) {\n // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty\n for (key in obj) {\n iterator.call(context, obj[key], key, obj);\n }\n } else if (typeof obj.hasOwnProperty === 'function') {\n // Slow path for objects inheriting Object.prototype, hasOwnProperty check needed\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n } else {\n // Slow path for objects which do not have a method `hasOwnProperty`\n for (key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n }\n }\n return obj;\n}\n\nfunction forEachSorted(obj, iterator, context) {\n var keys = Object.keys(obj).sort();\n for (var i = 0; i < keys.length; i++) {\n iterator.call(context, obj[keys[i]], keys[i]);\n }\n return keys;\n}\n\n\n/**\n * when using forEach the params are value, key, but it is often useful to have key, value.\n * @param {function(string, *)} iteratorFn\n * @returns {function(*, string)}\n */\nfunction reverseParams(iteratorFn) {\n return function(value, key) {iteratorFn(key, value);};\n}\n\n/**\n * A consistent way of creating unique IDs in angular.\n *\n * Using simple numbers allows us to generate 28.6 million unique ids per second for 10 years before\n * we hit number precision issues in JavaScript.\n *\n * Math.pow(2,53) / 60 / 60 / 24 / 365 / 10 = 28.6M\n *\n * @returns {number} an unique alpha-numeric string\n */\nfunction nextUid() {\n return ++uid.current;\n}\n\n\n/**\n * Set or clear the hashkey for an object.\n * @param obj object\n * @param h the hashkey (!truthy to delete the hashkey)\n */\nfunction setHashKey(obj, h) {\n if (h) {\n obj.$$hashKey = h;\n } else {\n delete obj.$$hashKey;\n }\n}\n\n\nfunction baseExtend(dst, objs, deep) {\n var h = dst.$$hashKey;\n\n for (var i = 0, ii = objs.length; i < ii; ++i) {\n var obj = objs[i];\n if (!isObject(obj) && !isFunction(obj)) continue;\n var keys = Object.keys(obj);\n for (var j = 0, jj = keys.length; j < jj; j++) {\n var key = keys[j];\n var src = obj[key];\n\n if (deep && isObject(src)) {\n if (isDate(src)) {\n dst[key] = new Date(src.valueOf());\n } else if (isRegExp(src)) {\n dst[key] = new RegExp(src);\n } else if (src.nodeName) {\n dst[key] = src.cloneNode(true);\n } else if (isElement(src)) {\n dst[key] = src.clone();\n } else {\n if (key !== '__proto__') {\n if (!isObject(dst[key])) dst[key] = isArray(src) ? [] : {};\n baseExtend(dst[key], [src], true);\n }\n }\n } else {\n dst[key] = src;\n }\n }\n }\n\n setHashKey(dst, h);\n return dst;\n}\n\n/**\n * @ngdoc function\n * @name angular.extend\n * @module ng\n * @kind function\n *\n * @description\n * Extends the destination object `dst` by copying own enumerable properties from the `src` object(s)\n * to `dst`. You can specify multiple `src` objects. If you want to preserve original objects, you can do so\n * by passing an empty object as the target: `var object = angular.extend({}, object1, object2)`.\n *\n * **Note:** Keep in mind that `angular.extend` does not support recursive merge (deep copy). Use\n * {@link angular.merge} for this.\n *\n * @param {Object} dst Destination object.\n * @param {...Object} src Source object(s).\n * @returns {Object} Reference to `dst`.\n */\nfunction extend(dst) {\n return baseExtend(dst, slice.call(arguments, 1), false);\n}\n\n\n/**\n* @ngdoc function\n* @name angular.merge\n* @module ng\n* @kind function\n*\n* @description\n* Deeply extends the destination object `dst` by copying own enumerable properties from the `src` object(s)\n* to `dst`. You can specify multiple `src` objects. If you want to preserve original objects, you can do so\n* by passing an empty object as the target: `var object = angular.merge({}, object1, object2)`.\n*\n* Unlike {@link angular.extend extend()}, `merge()` recursively descends into object properties of source\n* objects, performing a deep copy.\n*\n* @deprecated\n* sinceVersion=\"1.6.5\"\n* This function is deprecated, but will not be removed in the 1.x lifecycle.\n* There are edge cases (see {@link angular.merge#known-issues known issues}) that are not\n* supported by this function. We suggest\n* using [lodash's merge()](https://lodash.com/docs/4.17.4#merge) instead.\n*\n* @knownIssue\n* This is a list of (known) object types that are not handled correctly by this function:\n* - [`Blob`](https://developer.mozilla.org/docs/Web/API/Blob)\n* - [`MediaStream`](https://developer.mozilla.org/docs/Web/API/MediaStream)\n* - [`CanvasGradient`](https://developer.mozilla.org/docs/Web/API/CanvasGradient)\n* - AngularJS {@link $rootScope.Scope scopes};\n*\n* @param {Object} dst Destination object.\n* @param {...Object} src Source object(s).\n* @returns {Object} Reference to `dst`.\n*/\nfunction merge(dst) {\n return baseExtend(dst, slice.call(arguments, 1), true);\n}\n\n\n\nfunction toInt(str) {\n return parseInt(str, 10);\n}\n\nvar isNumberNaN = Number.isNaN || function isNumberNaN(num) {\n // eslint-disable-next-line no-self-compare\n return num !== num;\n};\n\n\nfunction inherit(parent, extra) {\n return extend(Object.create(parent), extra);\n}\n\n/**\n * @ngdoc function\n * @name angular.noop\n * @module ng\n * @kind function\n *\n * @description\n * A function that performs no operations. This function can be useful when writing code in the\n * functional style.\n ```js\n function foo(callback) {\n var result = calculateResult();\n (callback || angular.noop)(result);\n }\n ```\n */\nfunction noop() {}\nnoop.$inject = [];\n\n\n/**\n * @ngdoc function\n * @name angular.identity\n * @module ng\n * @kind function\n *\n * @description\n * A function that returns its first argument. This function is useful when writing code in the\n * functional style.\n *\n ```js\n function transformer(transformationFn, value) {\n return (transformationFn || angular.identity)(value);\n };\n\n // E.g.\n function getResult(fn, input) {\n return (fn || angular.identity)(input);\n };\n\n getResult(function(n) { return n * 2; }, 21); // returns 42\n getResult(null, 21); // returns 21\n getResult(undefined, 21); // returns 21\n ```\n *\n * @param {*} value to be returned.\n * @returns {*} the value passed in.\n */\nfunction identity($) {return $;}\nidentity.$inject = [];\n\n\nfunction valueFn(value) {return function valueRef() {return value;};}\n\nfunction hasCustomToString(obj) {\n return isFunction(obj.toString) && obj.toString !== toString;\n}\n\n\n/**\n * @ngdoc function\n * @name angular.isUndefined\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is undefined.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is undefined.\n */\nfunction isUndefined(value) {return typeof value === 'undefined';}\n\n\n/**\n * @ngdoc function\n * @name angular.isDefined\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is defined.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is defined.\n */\nfunction isDefined(value) {return typeof value !== 'undefined';}\n\n\n/**\n * @ngdoc function\n * @name angular.isObject\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is an `Object`. Unlike `typeof` in JavaScript, `null`s are not\n * considered to be objects. Note that JavaScript arrays are objects.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is an `Object` but not `null`.\n */\nfunction isObject(value) {\n // http://jsperf.com/isobject4\n return value !== null && typeof value === 'object';\n}\n\n\n/**\n * Determine if a value is an object with a null prototype\n *\n * @returns {boolean} True if `value` is an `Object` with a null prototype\n */\nfunction isBlankObject(value) {\n return value !== null && typeof value === 'object' && !getPrototypeOf(value);\n}\n\n\n/**\n * @ngdoc function\n * @name angular.isString\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is a `String`.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is a `String`.\n */\nfunction isString(value) {return typeof value === 'string';}\n\n\n/**\n * @ngdoc function\n * @name angular.isNumber\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is a `Number`.\n *\n * This includes the \"special\" numbers `NaN`, `+Infinity` and `-Infinity`.\n *\n * If you wish to exclude these then you can use the native\n * [`isFinite'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite)\n * method.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is a `Number`.\n */\nfunction isNumber(value) {return typeof value === 'number';}\n\n\n/**\n * @ngdoc function\n * @name angular.isDate\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a value is a date.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is a `Date`.\n */\nfunction isDate(value) {\n return toString.call(value) === '[object Date]';\n}\n\n\n/**\n * @ngdoc function\n * @name angular.isArray\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is an `Array`. Alias of Array.isArray.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is an `Array`.\n */\nvar isArray = Array.isArray;\n\n/**\n * @description\n * Determines if a reference is an `Error`.\n * Loosely based on https://www.npmjs.com/package/iserror\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is an `Error`.\n */\nfunction isError(value) {\n var tag = toString.call(value);\n switch (tag) {\n case '[object Error]': return true;\n case '[object Exception]': return true;\n case '[object DOMException]': return true;\n default: return value instanceof Error;\n }\n}\n\n/**\n * @ngdoc function\n * @name angular.isFunction\n * @module ng\n * @kind function\n *\n * @description\n * Determines if a reference is a `Function`.\n *\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is a `Function`.\n */\nfunction isFunction(value) {return typeof value === 'function';}\n\n\n/**\n * Determines if a value is a regular expression object.\n *\n * @private\n * @param {*} value Reference to check.\n * @returns {boolean} True if `value` is a `RegExp`.\n */\nfunction isRegExp(value) {\n return toString.call(value) === '[object RegExp]';\n}\n\n\n/**\n * Checks if `obj` is a window object.\n *\n * @private\n * @param {*} obj Object to check\n * @returns {boolean} True if `obj` is a window obj.\n */\nfunction isWindow(obj) {\n return obj && obj.window === obj;\n}\n\n\nfunction isScope(obj) {\n return obj && obj.$evalAsync && obj.$watch;\n}\n\n\nfunction isFile(obj) {\n return toString.call(obj) === '[object File]';\n}\n\n\nfunction isFormData(obj) {\n return toString.call(obj) === '[object FormData]';\n}\n\n\nfunction isBlob(obj) {\n return toString.call(obj) === '[object Blob]';\n}\n\n\nfunction isBoolean(value) {\n return typeof value === 'boolean';\n}\n\n\nfunction isPromiseLike(obj) {\n return obj && isFunction(obj.then);\n}\n\n\nvar TYPED_ARRAY_REGEXP = /^\\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/;\nfunction isTypedArray(value) {\n return value && isNumber(value.length) && TYPED_ARRAY_REGEXP.test(toString.call(value));\n}\n\nfunction isArrayBuffer(obj) {\n return toString.call(obj) === '[object ArrayBuffer]';\n}\n\n\nvar trim = function(value) {\n return isString(value) ? value.trim() : value;\n};\n\n// Copied from:\n// http://docs.closure-library.googlecode.com/git/local_closure_goog_string_string.js.source.html#line1021\n// Prereq: s is a string.\nvar escapeForRegexp = function(s) {\n return s\n .replace(/([-()[\\]{}+?*.$^|,:#= 0) {\n array.splice(index, 1);\n }\n return index;\n}\n\n/**\n * @ngdoc function\n * @name angular.copy\n * @module ng\n * @kind function\n *\n * @description\n * Creates a deep copy of `source`, which should be an object or an array.\n *\n * * If no destination is supplied, a copy of the object or array is created.\n * * If a destination is provided, all of its elements (for arrays) or properties (for objects)\n * are deleted and then all elements/properties from the source are copied to it.\n * * If `source` is not an object or array (inc. `null` and `undefined`), `source` is returned.\n * * If `source` is identical to `destination` an exception will be thrown.\n *\n *
\n *
\n * Only enumerable properties are taken into account. Non-enumerable properties (both on `source`\n * and on `destination`) will be ignored.\n *
\n *\n * @param {*} source The source that will be used to make a copy.\n * Can be any type, including primitives, `null`, and `undefined`.\n * @param {(Object|Array)=} destination Destination into which the source is copied. If\n * provided, must be of the same type as `source`.\n * @returns {*} The copy or updated `destination`, if `destination` was specified.\n *\n * @example\n \n \n
\n
\n
\n
\n Gender: \n
\n \n \n
\n
form = {{user | json}}
\n
leader = {{leader | json}}
\n
\n
\n \n // Module: copyExample\n angular.\n module('copyExample', []).\n controller('ExampleController', ['$scope', function($scope) {\n $scope.leader = {};\n\n $scope.reset = function() {\n // Example with 1 argument\n $scope.user = angular.copy($scope.leader);\n };\n\n $scope.update = function(user) {\n // Example with 2 arguments\n angular.copy(user, $scope.leader);\n };\n\n $scope.reset();\n }]);\n \n
\n */\nfunction copy(source, destination, maxDepth) {\n var stackSource = [];\n var stackDest = [];\n maxDepth = isValidObjectMaxDepth(maxDepth) ? maxDepth : NaN;\n\n if (destination) {\n if (isTypedArray(destination) || isArrayBuffer(destination)) {\n throw ngMinErr('cpta', 'Can\\'t copy! TypedArray destination cannot be mutated.');\n }\n if (source === destination) {\n throw ngMinErr('cpi', 'Can\\'t copy! Source and destination are identical.');\n }\n\n // Empty the destination object\n if (isArray(destination)) {\n destination.length = 0;\n } else {\n forEach(destination, function(value, key) {\n if (key !== '$$hashKey') {\n delete destination[key];\n }\n });\n }\n\n stackSource.push(source);\n stackDest.push(destination);\n return copyRecurse(source, destination, maxDepth);\n }\n\n return copyElement(source, maxDepth);\n\n function copyRecurse(source, destination, maxDepth) {\n maxDepth--;\n if (maxDepth < 0) {\n return '...';\n }\n var h = destination.$$hashKey;\n var key;\n if (isArray(source)) {\n for (var i = 0, ii = source.length; i < ii; i++) {\n destination.push(copyElement(source[i], maxDepth));\n }\n } else if (isBlankObject(source)) {\n // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty\n for (key in source) {\n destination[key] = copyElement(source[key], maxDepth);\n }\n } else if (source && typeof source.hasOwnProperty === 'function') {\n // Slow path, which must rely on hasOwnProperty\n for (key in source) {\n if (source.hasOwnProperty(key)) {\n destination[key] = copyElement(source[key], maxDepth);\n }\n }\n } else {\n // Slowest path --- hasOwnProperty can't be called as a method\n for (key in source) {\n if (hasOwnProperty.call(source, key)) {\n destination[key] = copyElement(source[key], maxDepth);\n }\n }\n }\n setHashKey(destination, h);\n return destination;\n }\n\n function copyElement(source, maxDepth) {\n // Simple values\n if (!isObject(source)) {\n return source;\n }\n\n // Already copied values\n var index = stackSource.indexOf(source);\n if (index !== -1) {\n return stackDest[index];\n }\n\n if (isWindow(source) || isScope(source)) {\n throw ngMinErr('cpws',\n 'Can\\'t copy! Making copies of Window or Scope instances is not supported.');\n }\n\n var needsRecurse = false;\n var destination = copyType(source);\n\n if (destination === undefined) {\n destination = isArray(source) ? [] : Object.create(getPrototypeOf(source));\n needsRecurse = true;\n }\n\n stackSource.push(source);\n stackDest.push(destination);\n\n return needsRecurse\n ? copyRecurse(source, destination, maxDepth)\n : destination;\n }\n\n function copyType(source) {\n switch (toString.call(source)) {\n case '[object Int8Array]':\n case '[object Int16Array]':\n case '[object Int32Array]':\n case '[object Float32Array]':\n case '[object Float64Array]':\n case '[object Uint8Array]':\n case '[object Uint8ClampedArray]':\n case '[object Uint16Array]':\n case '[object Uint32Array]':\n return new source.constructor(copyElement(source.buffer), source.byteOffset, source.length);\n\n case '[object ArrayBuffer]':\n return source.slice(0);\n\n case '[object Boolean]':\n case '[object Number]':\n case '[object String]':\n case '[object Date]':\n return new source.constructor(source.valueOf());\n\n case '[object RegExp]':\n var re = new RegExp(source.source, source.flags);\n re.lastIndex = source.lastIndex;\n return re;\n\n case '[object Blob]':\n return new source.constructor([source], {type: source.type});\n }\n\n if (isFunction(source.cloneNode)) {\n return source.cloneNode(true);\n }\n }\n}\n\n\n// eslint-disable-next-line no-self-compare\nfunction simpleCompare(a, b) { return a === b || (a !== a && b !== b); }\n\n\n/**\n * @ngdoc function\n * @name angular.equals\n * @module ng\n * @kind function\n *\n * @description\n * Determines if two objects or two values are equivalent. Supports value types, regular\n * expressions, arrays and objects.\n *\n * Two objects or values are considered equivalent if at least one of the following is true:\n *\n * * Both objects or values pass `===` comparison.\n * * Both objects or values are of the same type and all of their properties are equal by\n * comparing them with `angular.equals`.\n * * Both values are NaN. (In JavaScript, NaN == NaN => false. But we consider two NaN as equal)\n * * Both values represent the same regular expression (In JavaScript,\n * /abc/ == /abc/ => false. But we consider two regular expressions as equal when their textual\n * representation matches).\n *\n * During a property comparison, properties of `function` type and properties with names\n * that begin with `$` are ignored.\n *\n * Scope and DOMWindow objects are being compared only by identify (`===`).\n *\n * @param {*} o1 Object or value to compare.\n * @param {*} o2 Object or value to compare.\n * @returns {boolean} True if arguments are equal.\n *\n * @example\n \n \n
\n
\n

User 1

\n Name: \n Age: \n\n

User 2

\n Name: \n Age: \n\n
\n
\n \n
\n User 1:
{{user1 | json}}
\n User 2:
{{user2 | json}}
\n Equal:
{{result}}
\n
\n
\n
\n \n angular.module('equalsExample', []).controller('ExampleController', ['$scope', function($scope) {\n $scope.user1 = {};\n $scope.user2 = {};\n $scope.compare = function() {\n $scope.result = angular.equals($scope.user1, $scope.user2);\n };\n }]);\n \n
\n */\nfunction equals(o1, o2) {\n if (o1 === o2) return true;\n if (o1 === null || o2 === null) return false;\n // eslint-disable-next-line no-self-compare\n if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN\n var t1 = typeof o1;\n var t2 = typeof o2;\n var length;\n var key;\n var keySet;\n if (t1 === t2 && t1 === 'object') {\n if (isArray(o1)) {\n if (!isArray(o2)) return false;\n if ((length = o1.length) === o2.length) {\n for (key = 0; key < length; key++) {\n if (!equals(o1[key], o2[key])) return false;\n }\n return true;\n }\n } else if (isDate(o1)) {\n if (!isDate(o2)) return false;\n return simpleCompare(o1.getTime(), o2.getTime());\n } else if (isRegExp(o1)) {\n if (!isRegExp(o2)) return false;\n return o1.toString() === o2.toString();\n } else {\n if (isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) ||\n isArray(o2) || isDate(o2) || isRegExp(o2)) return false;\n keySet = createMap();\n for (key in o1) {\n if (key.charAt(0) === '$' || isFunction(o1[key])) continue;\n if (!equals(o1[key], o2[key])) return false;\n keySet[key] = true;\n }\n for (key in o2) {\n if (!(key in keySet) &&\n key.charAt(0) !== '$' &&\n isDefined(o2[key]) &&\n !isFunction(o2[key])) return false;\n }\n return true;\n }\n }\n return false;\n}\n\nvar csp = function() {\n if (!isDefined(csp.rules)) {\n\n\n var ngCspElement = (window.document.querySelector('[ng-csp]') ||\n window.document.querySelector('[data-ng-csp]'));\n\n if (ngCspElement) {\n var ngCspAttribute = ngCspElement.getAttribute('ng-csp') ||\n ngCspElement.getAttribute('data-ng-csp');\n csp.rules = {\n noUnsafeEval: !ngCspAttribute || (ngCspAttribute.includes('no-unsafe-eval'))\n };\n } else {\n csp.rules = {\n noUnsafeEval: noUnsafeEval()\n };\n }\n }\n\n return csp.rules;\n\n function noUnsafeEval() {\n try {\n // eslint-disable-next-line no-new, no-new-func\n new Function('');\n return false;\n } catch (e) {\n return true;\n }\n }\n};\n\nfunction concat(array1, array2, index) {\n return array1.concat(slice.call(array2, index));\n}\n\nfunction sliceArgs(args, startIndex) {\n return slice.call(args, startIndex || 0);\n}\n\n\n/**\n * @ngdoc function\n * @name angular.bind\n * @module ng\n * @kind function\n *\n * @description\n * Returns a function which calls function `fn` bound to `self` (`self` becomes the `this` for\n * `fn`). You can supply optional `args` that are prebound to the function. This feature is also\n * known as [partial application](http://en.wikipedia.org/wiki/Partial_application), as\n * distinguished from [function currying](http://en.wikipedia.org/wiki/Currying#Contrast_with_partial_function_application).\n *\n * @param {Object} self Context which `fn` should be evaluated in.\n * @param {function()} fn Function to be bound.\n * @param {...*} args Optional arguments to be prebound to the `fn` function call.\n * @returns {function()} Function that wraps the `fn` with all the specified bindings.\n */\nfunction bind(self, fn) {\n var curryArgs = arguments.length > 2 ? sliceArgs(arguments, 2) : [];\n if (isFunction(fn) && !(fn instanceof RegExp)) {\n return curryArgs.length\n ? function() {\n return arguments.length\n ? fn.apply(self, concat(curryArgs, arguments, 0))\n : fn.apply(self, curryArgs);\n }\n : function() {\n return arguments.length\n ? fn.apply(self, arguments)\n : fn.call(self);\n };\n } else {\n // In IE, native methods are not functions so they cannot be bound (note: they don't need to be).\n return fn;\n }\n}\n\n\nfunction toJsonReplacer(key, value) {\n var val = value;\n\n if (typeof key === 'string' && key.charAt(0) === '$' && key.charAt(1) === '$') {\n val = undefined;\n } else if (isWindow(value)) {\n val = '$WINDOW';\n } else if (value && window.document === value) {\n val = '$DOCUMENT';\n } else if (isScope(value)) {\n val = '$SCOPE';\n }\n\n return val;\n}\n\n\n/**\n * @ngdoc function\n * @name angular.toJson\n * @module ng\n * @kind function\n *\n * @description\n * Serializes input into a JSON-formatted string. Properties with leading $$ characters will be\n * stripped since AngularJS uses this notation internally.\n *\n * @param {Object|Array|Date|string|number|boolean} obj Input to be serialized into JSON.\n * @param {boolean|number} [pretty=2] If set to true, the JSON output will contain newlines and whitespace.\n * If set to an integer, the JSON output will contain that many spaces per indentation.\n * @returns {string|undefined} JSON-ified string representing `obj`.\n * @knownIssue\n *\n * The Safari browser throws a `RangeError` instead of returning `null` when it tries to stringify a `Date`\n * object with an invalid date value. The only reliable way to prevent this is to monkeypatch the\n * `Date.prototype.toJSON` method as follows:\n *\n * ```\n * var _DatetoJSON = Date.prototype.toJSON;\n * Date.prototype.toJSON = function() {\n * try {\n * return _DatetoJSON.call(this);\n * } catch(e) {\n * if (e instanceof RangeError) {\n * return null;\n * }\n * throw e;\n * }\n * };\n * ```\n *\n * See https://github.com/angular/angular.js/pull/14221 for more information.\n */\nfunction toJson(obj, pretty) {\n if (isUndefined(obj)) return undefined;\n if (!isNumber(pretty)) {\n pretty = pretty ? 2 : null;\n }\n return JSON.stringify(obj, toJsonReplacer, pretty);\n}\n\n\n/**\n * @ngdoc function\n * @name angular.fromJson\n * @module ng\n * @kind function\n *\n * @description\n * Deserializes a JSON string.\n *\n * @param {string} json JSON string to deserialize.\n * @returns {Object|Array|string|number} Deserialized JSON string.\n */\nfunction fromJson(json) {\n return isString(json)\n ? JSON.parse(json)\n : json;\n}\n\n\nvar ALL_COLONS = /:/g;\nfunction timezoneToOffset(timezone, fallback) {\n // Support: Edge 13-15+\n // Edge does not \"understand\" colon (`:`) in timezone\n timezone = timezone.replace(ALL_COLONS, '');\n var requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;\n return isNumberNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;\n}\n\n\nfunction addDateMinutes(date, minutes) {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + minutes);\n return date;\n}\n\n\nfunction convertTimezoneToLocal(date, timezone, reverse) {\n reverse = reverse ? -1 : 1;\n var dateTimezoneOffset = date.getTimezoneOffset();\n var timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n return addDateMinutes(date, reverse * (timezoneOffset - dateTimezoneOffset));\n}\n\n\n/**\n * @returns {string} Returns the string representation of the element.\n */\nfunction startingTag(element) {\n element = jqLite(element).clone().empty();\n var elemHtml = jqLite('
').append(element).html();\n try {\n return element[0].nodeType === NODE_TYPE_TEXT ? lowercase(elemHtml) :\n elemHtml.\n match(/^(<[^>]+>)/)[1].\n replace(/^<([\\w-]+)/, function(match, nodeName) {return '<' + lowercase(nodeName);});\n } catch (e) {\n return lowercase(elemHtml);\n }\n\n}\n\n\n/////////////////////////////////////////////////\n\n/**\n * Tries to decode the URI component without throwing an exception.\n *\n * @private\n * @param str value potential URI component to check.\n * @returns {boolean} True if `value` can be decoded\n * with the decodeURIComponent function.\n */\nfunction tryDecodeURIComponent(value) {\n try {\n return decodeURIComponent(value);\n } catch (e) {\n // Ignore any invalid uri component.\n }\n}\n\n\n/**\n * Parses an escaped url query string into key-value pairs.\n * @returns {Object.}\n */\nfunction parseKeyValue(/**string*/keyValue) {\n var obj = {};\n forEach((keyValue || '').split('&'), function(keyValue) {\n var splitPoint;\n var key;\n var val;\n if (keyValue) {\n key = keyValue = keyValue.replace(/\\+/g,'%20');\n splitPoint = keyValue.indexOf('=');\n if (splitPoint !== -1) {\n key = keyValue.substring(0, splitPoint);\n val = keyValue.substring(splitPoint + 1);\n }\n key = tryDecodeURIComponent(key);\n if (isDefined(key)) {\n val = isDefined(val) ? tryDecodeURIComponent(val) : true;\n if (!hasOwnProperty.call(obj, key)) {\n obj[key] = val;\n } else if (isArray(obj[key])) {\n obj[key].push(val);\n } else {\n obj[key] = [obj[key],val];\n }\n }\n }\n });\n return obj;\n}\n\nfunction toKeyValue(obj) {\n var parts = [];\n forEach(obj, function(value, key) {\n if (isArray(value)) {\n forEach(value, function(arrayValue) {\n parts.push(encodeUriQuery(key, true) +\n (arrayValue === true ? '' : '=' + encodeUriQuery(arrayValue, true)));\n });\n } else {\n parts.push(encodeUriQuery(key, true) +\n (value === true ? '' : '=' + encodeUriQuery(value, true)));\n }\n });\n return parts.length ? parts.join('&') : '';\n}\n\n\n/**\n * We need our custom method because encodeURIComponent is too aggressive and doesn't follow\n * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set (pchar) allowed in path\n * segments:\n * segment = *pchar\n * pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n * pct-encoded = \"%\" HEXDIG HEXDIG\n * unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n * sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\"\n * / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n */\nfunction encodeUriSegment(val) {\n return encodeUriQuery(val, true).\n replace(/%26/gi, '&').\n replace(/%3D/gi, '=').\n replace(/%2B/gi, '+');\n}\n\n\n/**\n * This method is intended for encoding *key* or *value* parts of query component. We need a custom\n * method because encodeURIComponent is too aggressive and encodes stuff that doesn't have to be\n * encoded per http://tools.ietf.org/html/rfc3986:\n * query = *( pchar / \"/\" / \"?\" )\n * pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n * unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n * pct-encoded = \"%\" HEXDIG HEXDIG\n * sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\"\n * / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n */\nfunction encodeUriQuery(val, pctEncodeSpaces) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%3B/gi, ';').\n replace(/%20/g, (pctEncodeSpaces ? '%20' : '+'));\n}\n\nvar ngAttrPrefixes = ['ng-', 'data-ng-', 'ng:', 'x-ng-'];\n\nfunction getNgAttribute(element, ngAttr) {\n var attr;\n var i;\n var ii = ngAttrPrefixes.length;\n for (i = 0; i < ii; ++i) {\n attr = ngAttrPrefixes[i] + ngAttr;\n if (isString(attr = element.getAttribute(attr))) {\n return attr;\n }\n }\n return null;\n}\n\nfunction allowAutoBootstrap(document) {\n var script = document.currentScript;\n if (!script) {\n return true;\n }\n\n // If the `currentScript` property has been clobbered just return false, since this indicates a probable attack\n if (!(script instanceof window.HTMLScriptElement || script instanceof window.SVGScriptElement)) {\n return false;\n }\n\n var attributes = script.attributes;\n var srcs = [attributes.getNamedItem('src'), attributes.getNamedItem('href'), attributes.getNamedItem('xlink:href')];\n\n return srcs.every(function(src) {\n if (!src) {\n return true;\n }\n if (!src.value) {\n return false;\n }\n\n var link = document.createElement('a');\n link.href = src.value;\n\n if (document.location.origin === link.origin) {\n // Same-origin resources are always allowed, even for non-whitelisted schemes.\n return true;\n }\n // Disabled bootstrapping unless angular.js was loaded from a known scheme used on the web.\n // This is to prevent angular.js bundled with browser extensions from being used to bypass the\n // content security policy in web pages and other browser extensions.\n switch (link.protocol) {\n case 'http:':\n case 'https:':\n case 'ftp:':\n case 'blob:':\n case 'file:':\n case 'data:':\n return true;\n default:\n return false;\n }\n });\n}\n\n// Cached as it has to run during loading so that document.currentScript is available.\nvar isAutoBootstrapAllowed = allowAutoBootstrap(window.document);\n\n/**\n * @ngdoc directive\n * @name ngApp\n * @module ng\n *\n * @element ANY\n * @param {angular.Module} ngApp an optional application\n * {@link angular.module module} name to load.\n * @param {boolean=} ngStrictDi if this attribute is present on the app element, the injector will be\n * created in \"strict-di\" mode. This means that the application will fail to invoke functions which\n * do not use explicit function annotation (and are thus unsuitable for minification), as described\n * in {@link guide/di the Dependency Injection guide}, and useful debugging info will assist in\n * tracking down the root of these bugs.\n *\n * @description\n *\n * Use this directive to **auto-bootstrap** an AngularJS application. The `ngApp` directive\n * designates the **root element** of the application and is typically placed near the root element\n * of the page - e.g. on the `` or `` tags.\n *\n * There are a few things to keep in mind when using `ngApp`:\n * - only one AngularJS application can be auto-bootstrapped per HTML document. The first `ngApp`\n * found in the document will be used to define the root element to auto-bootstrap as an\n * application. To run multiple applications in an HTML document you must manually bootstrap them using\n * {@link angular.bootstrap} instead.\n * - AngularJS applications cannot be nested within each other.\n * - Do not use a directive that uses {@link ng.$compile#transclusion transclusion} on the same element as `ngApp`.\n * This includes directives such as {@link ng.ngIf `ngIf`}, {@link ng.ngInclude `ngInclude`} and\n * {@link ngRoute.ngView `ngView`}.\n * Doing this misplaces the app {@link ng.$rootElement `$rootElement`} and the app's {@link auto.$injector injector},\n * causing animations to stop working and making the injector inaccessible from outside the app.\n *\n * You can specify an **AngularJS module** to be used as the root module for the application. This\n * module will be loaded into the {@link auto.$injector} when the application is bootstrapped. It\n * should contain the application code needed or have dependencies on other modules that will\n * contain the code. See {@link angular.module} for more information.\n *\n * In the example below if the `ngApp` directive were not placed on the `html` element then the\n * document would not be compiled, the `AppController` would not be instantiated and the `{{ a+b }}`\n * would not be resolved to `3`.\n *\n * @example\n *\n * ### Simple Usage\n *\n * `ngApp` is the easiest, and most common way to bootstrap an application.\n *\n \n \n
\n I can add: {{a}} + {{b}} = {{ a+b }}\n
\n
\n \n angular.module('ngAppDemo', []).controller('ngAppDemoController', function($scope) {\n $scope.a = 1;\n $scope.b = 2;\n });\n \n
\n *\n * @example\n *\n * ### With `ngStrictDi`\n *\n * Using `ngStrictDi`, you would see something like this:\n *\n \n \n
\n
\n I can add: {{a}} + {{b}} = {{ a+b }}\n\n

This renders because the controller does not fail to\n instantiate, by using explicit annotation style (see\n script.js for details)\n

\n
\n\n
\n Name:
\n Hello, {{name}}!\n\n

This renders because the controller does not fail to\n instantiate, by using explicit annotation style\n (see script.js for details)\n

\n
\n\n
\n I can add: {{a}} + {{b}} = {{ a+b }}\n\n

The controller could not be instantiated, due to relying\n on automatic function annotations (which are disabled in\n strict mode). As such, the content of this section is not\n interpolated, and there should be an error in your web console.\n

\n
\n
\n
\n \n angular.module('ngAppStrictDemo', [])\n // BadController will fail to instantiate, due to relying on automatic function annotation,\n // rather than an explicit annotation\n .controller('BadController', function($scope) {\n $scope.a = 1;\n $scope.b = 2;\n })\n // Unlike BadController, GoodController1 and GoodController2 will not fail to be instantiated,\n // due to using explicit annotations using the array style and $inject property, respectively.\n .controller('GoodController1', ['$scope', function($scope) {\n $scope.a = 1;\n $scope.b = 2;\n }])\n .controller('GoodController2', GoodController2);\n function GoodController2($scope) {\n $scope.name = 'World';\n }\n GoodController2.$inject = ['$scope'];\n \n \n div[ng-controller] {\n margin-bottom: 1em;\n -webkit-border-radius: 4px;\n border-radius: 4px;\n border: 1px solid;\n padding: .5em;\n }\n div[ng-controller^=Good] {\n border-color: #d6e9c6;\n background-color: #dff0d8;\n color: #3c763d;\n }\n div[ng-controller^=Bad] {\n border-color: #ebccd1;\n background-color: #f2dede;\n color: #a94442;\n margin-bottom: 0;\n }\n \n
\n */\nfunction angularInit(element, bootstrap) {\n var appElement;\n var module;\n var config = {};\n\n // The element `element` has priority over any other element.\n forEach(ngAttrPrefixes, function(prefix) {\n var name = prefix + 'app';\n\n if (!appElement && element.hasAttribute && element.hasAttribute(name)) {\n appElement = element;\n module = element.getAttribute(name);\n }\n });\n forEach(ngAttrPrefixes, function(prefix) {\n var name = prefix + 'app';\n var candidate;\n\n if (!appElement && (candidate = element.querySelector('[' + name.replace(':', '\\\\:') + ']'))) {\n appElement = candidate;\n module = candidate.getAttribute(name);\n }\n });\n if (appElement) {\n if (!isAutoBootstrapAllowed) {\n window.console.error('AngularJS: disabling automatic bootstrap. \n * \n * \n * \n * ```\n *\n * @param {DOMElement} element DOM element which is the root of AngularJS application.\n * @param {Array=} modules an array of modules to load into the application.\n * Each item in the array should be the name of a predefined module or a (DI annotated)\n * function that will be invoked by the injector as a `config` block.\n * See: {@link angular.module modules}\n * @param {Object=} config an object for defining configuration options for the application. The\n * following keys are supported:\n *\n * * `strictDi` - disable automatic function annotation for the application. This is meant to\n * assist in finding bugs which break minified code. Defaults to `false`.\n *\n * @returns {auto.$injector} Returns the newly created injector for this app.\n */\nfunction bootstrap(element, modules, config) {\n if (!isObject(config)) config = {};\n var defaultConfig = {\n strictDi: false\n };\n config = extend(defaultConfig, config);\n var doBootstrap = function() {\n element = jqLite(element);\n\n if (element.injector()) {\n var tag = (element[0] === window.document) ? 'document' : startingTag(element);\n // Encode angle brackets to prevent input from being sanitized to empty string #8683.\n throw ngMinErr(\n 'btstrpd',\n 'App already bootstrapped with this element \\'{0}\\'',\n tag.replace(//,'>'));\n }\n\n modules = modules || [];\n modules.unshift(['$provide', function($provide) {\n $provide.value('$rootElement', element);\n }]);\n\n if (config.debugInfoEnabled) {\n // Pushing so that this overrides `debugInfoEnabled` setting defined in user's `modules`.\n modules.push(['$compileProvider', function($compileProvider) {\n $compileProvider.debugInfoEnabled(true);\n }]);\n }\n\n modules.unshift('ng');\n var injector = createInjector(modules, config.strictDi);\n injector.invoke(['$rootScope', '$rootElement', '$compile', '$injector',\n function bootstrapApply(scope, element, compile, injector) {\n scope.$apply(function() {\n element.data('$injector', injector);\n compile(element)(scope);\n });\n }]\n );\n return injector;\n };\n\n var NG_ENABLE_DEBUG_INFO = /^NG_ENABLE_DEBUG_INFO!/;\n var NG_DEFER_BOOTSTRAP = /^NG_DEFER_BOOTSTRAP!/;\n\n if (window && NG_ENABLE_DEBUG_INFO.test(window.name)) {\n config.debugInfoEnabled = true;\n window.name = window.name.replace(NG_ENABLE_DEBUG_INFO, '');\n }\n\n if (window && !NG_DEFER_BOOTSTRAP.test(window.name)) {\n return doBootstrap();\n }\n\n window.name = window.name.replace(NG_DEFER_BOOTSTRAP, '');\n angular.resumeBootstrap = function(extraModules) {\n forEach(extraModules, function(module) {\n modules.push(module);\n });\n return doBootstrap();\n };\n\n if (isFunction(angular.resumeDeferredBootstrap)) {\n angular.resumeDeferredBootstrap();\n }\n}\n\n/**\n * @ngdoc function\n * @name angular.reloadWithDebugInfo\n * @module ng\n * @description\n * Use this function to reload the current application with debug information turned on.\n * This takes precedence over a call to `$compileProvider.debugInfoEnabled(false)`.\n *\n * See {@link ng.$compileProvider#debugInfoEnabled} for more.\n */\nfunction reloadWithDebugInfo() {\n window.name = 'NG_ENABLE_DEBUG_INFO!' + window.name;\n window.location.reload();\n}\n\n/**\n * @name angular.getTestability\n * @module ng\n * @description\n * Get the testability service for the instance of AngularJS on the given\n * element.\n * @param {DOMElement} element DOM element which is the root of AngularJS application.\n */\nfunction getTestability(rootElement) {\n var injector = angular.element(rootElement).injector();\n if (!injector) {\n throw ngMinErr('test',\n 'no injector found for element argument to getTestability');\n }\n return injector.get('$$testability');\n}\n\nvar SNAKE_CASE_REGEXP = /[A-Z]/g;\nfunction snake_case(name, separator) {\n separator = separator || '_';\n return name.replace(SNAKE_CASE_REGEXP, function(letter, pos) {\n return (pos ? separator : '') + letter.toLowerCase();\n });\n}\n\nvar bindJQueryFired = false;\nfunction bindJQuery() {\n var originalCleanData;\n\n if (bindJQueryFired) {\n return;\n }\n\n jqLite = JQLite;\n angular.element = jqLite;\n // Prevent double-proxying.\n bindJQueryFired = true;\n}\n\n/**\n * @ngdoc function\n * @name angular.UNSAFE_restoreLegacyJqLiteXHTMLReplacement\n * @module ng\n * @kind function\n *\n * @description\n * Restores the pre-1.8 behavior of jqLite that turns XHTML-like strings like\n * `
` to `
` instead of `
`.\n * The new behavior is a security fix so if you use this method, please try to adjust\n * to the change & remove the call as soon as possible.\n\n * Note that this only patches jqLite. If you use jQuery 3.5.0 or newer, please read\n * [jQuery 3.5 upgrade guide](https://jquery.com/upgrade-guide/3.5/) for more details\n * about the workarounds.\n */\nfunction UNSAFE_restoreLegacyJqLiteXHTMLReplacement() {\n JQLite.legacyXHTMLReplacement = true;\n}\n\n/**\n * throw error if the argument is falsy.\n */\nfunction assertArg(arg, name, reason) {\n if (!arg) {\n throw ngMinErr('areq', 'Argument \\'{0}\\' is {1}', (name || '?'), (reason || 'required'));\n }\n return arg;\n}\n\nfunction assertArgFn(arg, name, acceptArrayAnnotation) {\n if (acceptArrayAnnotation && isArray(arg)) {\n arg = arg[arg.length - 1];\n }\n\n assertArg(isFunction(arg), name, 'not a function, got ' +\n (arg && typeof arg === 'object' ? arg.constructor.name || 'Object' : typeof arg));\n return arg;\n}\n\n/**\n * throw error if the name given is hasOwnProperty\n * @param {String} name the name to test\n * @param {String} context the context in which the name is used, such as module or directive\n */\nfunction assertNotHasOwnProperty(name, context) {\n if (name === 'hasOwnProperty') {\n throw ngMinErr('badname', 'hasOwnProperty is not a valid {0} name', context);\n }\n}\n\n/**\n * Return the value accessible from the object by path. Any undefined traversals are ignored\n * @param {Object} obj starting object\n * @param {String} path path to traverse\n * @param {boolean} [bindFnToScope=true]\n * @returns {Object} value as accessible by path\n */\n//TODO(misko): this function needs to be removed\nfunction getter(obj, path, bindFnToScope) {\n if (!path) return obj;\n var keys = path.split('.');\n var key;\n var lastInstance = obj;\n var len = keys.length;\n\n for (var i = 0; i < len; i++) {\n key = keys[i];\n if (obj) {\n obj = (lastInstance = obj)[key];\n }\n }\n if (!bindFnToScope && isFunction(obj)) {\n return bind(lastInstance, obj);\n }\n return obj;\n}\n\n/**\n * Return the DOM siblings between the first and last node in the given array.\n * @param {Array} array like object\n * @returns {Array} the inputted object or a jqLite collection containing the nodes\n */\nfunction getBlockNodes(nodes) {\n // TODO(perf): update `nodes` instead of creating a new object?\n var node = nodes[0];\n var endNode = nodes[nodes.length - 1];\n var blockNodes;\n\n for (var i = 1; node !== endNode && (node = node.nextSibling); i++) {\n if (blockNodes || nodes[i] !== node) {\n if (!blockNodes) {\n blockNodes = jqLite(slice.call(nodes, 0, i));\n }\n blockNodes.push(node);\n }\n }\n\n return blockNodes || nodes;\n}\n\n\n/**\n * Creates a new object without a prototype. This object is useful for lookup without having to\n * guard against prototypically inherited properties via hasOwnProperty.\n *\n * Related micro-benchmarks:\n * - http://jsperf.com/object-create2\n * - http://jsperf.com/proto-map-lookup/2\n * - http://jsperf.com/for-in-vs-object-keys2\n *\n * @returns {Object}\n */\nfunction createMap() {\n return Object.create(null);\n}\n\nfunction stringify(value) {\n if (value == null) { // null || undefined\n return '';\n }\n switch (typeof value) {\n case 'string':\n break;\n case 'number':\n value = '' + value;\n break;\n default:\n if (hasCustomToString(value) && !isArray(value) && !isDate(value)) {\n value = value.toString();\n } else {\n value = toJson(value);\n }\n }\n\n return value;\n}\n\nvar NODE_TYPE_ELEMENT = 1;\nvar NODE_TYPE_ATTRIBUTE = 2;\nvar NODE_TYPE_TEXT = 3;\nvar NODE_TYPE_COMMENT = 8;\nvar NODE_TYPE_DOCUMENT = 9;\nvar NODE_TYPE_DOCUMENT_FRAGMENT = 11;\n'use strict';\n\n/**\n * @ngdoc type\n * @name angular.Module\n * @module ng\n * @description\n *\n * Interface for configuring AngularJS {@link angular.module modules}.\n */\n\nfunction setupModuleLoader(window) {\n\n var $injectorMinErr = minErr('$injector');\n var ngMinErr = minErr('ng');\n\n function ensure(obj, name, factory) {\n return obj[name] || (obj[name] = factory());\n }\n\n var angular = ensure(window, 'angular', Object);\n\n // We need to expose `angular.$$minErr` to modules such as `ngResource` that reference it during bootstrap\n angular.$$minErr = angular.$$minErr || minErr;\n\n return ensure(angular, 'module', function() {\n /** @type {Object.} */\n var modules = {};\n\n /**\n * @ngdoc function\n * @name angular.module\n * @module ng\n * @description\n *\n * The `angular.module` is a global place for creating, registering and retrieving AngularJS\n * modules.\n * All modules (AngularJS core or 3rd party) that should be available to an application must be\n * registered using this mechanism.\n *\n * Passing one argument retrieves an existing {@link angular.Module},\n * whereas passing more than one argument creates a new {@link angular.Module}\n *\n *\n * # Module\n *\n * A module is a collection of services, directives, controllers, filters, and configuration information.\n * `angular.module` is used to configure the {@link auto.$injector $injector}.\n *\n * ```js\n * // Create a new module\n * var myModule = angular.module('myModule', []);\n *\n * // register a new service\n * myModule.value('appName', 'MyCoolApp');\n *\n * // configure existing services inside initialization blocks.\n * myModule.config(['$locationProvider', function($locationProvider) {\n * // Configure existing providers\n * $locationProvider.hashPrefix('!');\n * }]);\n * ```\n *\n * Then you can create an injector and load your modules like this:\n *\n * ```js\n * var injector = angular.injector(['ng', 'myModule'])\n * ```\n *\n * However it's more likely that you'll just use\n * {@link ng.directive:ngApp ngApp} or\n * {@link angular.bootstrap} to simplify this process for you.\n *\n * @param {!string} name The name of the module to create or retrieve.\n * @param {!Array.=} requires If specified then new module is being created. If\n * unspecified then the module is being retrieved for further configuration.\n * @param {Function=} configFn Optional configuration function for the module. Same as\n * {@link angular.Module#config Module#config()}.\n * @returns {angular.Module} new module with the {@link angular.Module} api.\n */\n return function module(name, requires, configFn) {\n\n var info = {};\n\n var assertNotHasOwnProperty = function(name, context) {\n if (name === 'hasOwnProperty') {\n throw ngMinErr('badname', 'hasOwnProperty is not a valid {0} name', context);\n }\n };\n\n assertNotHasOwnProperty(name, 'module');\n if (requires && modules.hasOwnProperty(name)) {\n modules[name] = null;\n }\n return ensure(modules, name, function() {\n if (!requires) {\n throw $injectorMinErr('nomod', 'Module \\'{0}\\' is not available! You either misspelled ' +\n 'the module name or forgot to load it. If registering a module ensure that you ' +\n 'specify the dependencies as the second argument.', name);\n }\n\n /** @type {!Array.>} */\n var invokeQueue = [];\n\n /** @type {!Array.} */\n var configBlocks = [];\n\n /** @type {!Array.} */\n var runBlocks = [];\n\n var config = invokeLater('$injector', 'invoke', 'push', configBlocks);\n\n /** @type {angular.Module} */\n var moduleInstance = {\n // Private state\n _invokeQueue: invokeQueue,\n _configBlocks: configBlocks,\n _runBlocks: runBlocks,\n\n /**\n * @ngdoc method\n * @name angular.Module#info\n * @module ng\n *\n * @param {Object=} info Information about the module\n * @returns {Object|Module} The current info object for this module if called as a getter,\n * or `this` if called as a setter.\n *\n * @description\n * Read and write custom information about this module.\n * For example you could put the version of the module in here.\n *\n * ```js\n * angular.module('myModule', []).info({ version: '1.0.0' });\n * ```\n *\n * The version could then be read back out by accessing the module elsewhere:\n *\n * ```\n * var version = angular.module('myModule').info().version;\n * ```\n *\n * You can also retrieve this information during runtime via the\n * {@link $injector#modules `$injector.modules`} property:\n *\n * ```js\n * var version = $injector.modules['myModule'].info().version;\n * ```\n */\n info(value) {\n if (isDefined(value)) {\n if (!isObject(value)) throw ngMinErr('aobj', 'Argument \\'{0}\\' must be an object', 'value');\n info = value;\n return this;\n }\n return info;\n },\n\n /**\n * @ngdoc property\n * @name angular.Module#requires\n * @module ng\n *\n * @description\n * Holds the list of modules which the injector will load before the current module is\n * loaded.\n */\n requires: requires,\n\n /**\n * @ngdoc property\n * @name angular.Module#name\n * @module ng\n *\n * @description\n * Name of the module.\n */\n name: name,\n\n\n /**\n * @ngdoc method\n * @name angular.Module#provider\n * @module ng\n * @param {string} name service name\n * @param {Function} providerType Construction function for creating new instance of the\n * service.\n * @description\n * See {@link auto.$provide#provider $provide.provider()}.\n */\n provider: invokeLaterAndSetModuleName('$provide', 'provider'),\n\n /**\n * @ngdoc method\n * @name angular.Module#factory\n * @module ng\n * @param {string} name service name\n * @param {Function} providerFunction Function for creating new instance of the service.\n * @description\n * See {@link auto.$provide#factory $provide.factory()}.\n */\n factory: invokeLaterAndSetModuleName('$provide', 'factory'),\n\n /**\n * @ngdoc method\n * @name angular.Module#service\n * @module ng\n * @param {string} name service name\n * @param {Function} constructor A constructor function that will be instantiated.\n * @description\n * See {@link auto.$provide#service $provide.service()}.\n */\n service: invokeLaterAndSetModuleName('$provide', 'service'),\n\n /**\n * @ngdoc method\n * @name angular.Module#value\n * @module ng\n * @param {string} name service name\n * @param {*} object Service instance object.\n * @description\n * See {@link auto.$provide#value $provide.value()}.\n */\n value: invokeLater('$provide', 'value'),\n\n /**\n * @ngdoc method\n * @name angular.Module#constant\n * @module ng\n * @param {string} name constant name\n * @param {*} object Constant value.\n * @description\n * Because the constants are fixed, they get applied before other provide methods.\n * See {@link auto.$provide#constant $provide.constant()}.\n */\n constant: invokeLater('$provide', 'constant', 'unshift'),\n\n /**\n * @ngdoc method\n * @name angular.Module#decorator\n * @module ng\n * @param {string} name The name of the service to decorate.\n * @param {Function} decorFn This function will be invoked when the service needs to be\n * instantiated and should return the decorated service instance.\n * @description\n * See {@link auto.$provide#decorator $provide.decorator()}.\n */\n decorator: invokeLaterAndSetModuleName('$provide', 'decorator', configBlocks),\n\n /**\n * @ngdoc method\n * @name angular.Module#animation\n * @module ng\n * @param {string} name animation name\n * @param {Function} animationFactory Factory function for creating new instance of an\n * animation.\n * @description\n *\n * **NOTE**: animations take effect only if the **ngAnimate** module is loaded.\n *\n *\n * Defines an animation hook that can be later used with\n * {@link $animate $animate} service and directives that use this service.\n *\n * ```js\n * module.animation('.animation-name', function($inject1, $inject2) {\n * return {\n * eventName : function(element, done) {\n * //code to run the animation\n * //once complete, then run done()\n * return function cancellationFunction(element) {\n * //code to cancel the animation\n * }\n * }\n * }\n * })\n * ```\n *\n * See {@link ng.$animateProvider#register $animateProvider.register()} and\n * {@link ngAnimate ngAnimate module} for more information.\n */\n animation: invokeLaterAndSetModuleName('$animateProvider', 'register'),\n\n /**\n * @ngdoc method\n * @name angular.Module#filter\n * @module ng\n * @param {string} name Filter name - this must be a valid AngularJS expression identifier\n * @param {Function} filterFactory Factory function for creating new instance of filter.\n * @description\n * See {@link ng.$filterProvider#register $filterProvider.register()}.\n *\n *
\n * **Note:** Filter names must be valid AngularJS {@link expression} identifiers, such as `uppercase` or `orderBy`.\n * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace\n * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores\n * (`myapp_subsection_filterx`).\n *
\n */\n filter: invokeLaterAndSetModuleName('$filterProvider', 'register'),\n\n /**\n * @ngdoc method\n * @name angular.Module#controller\n * @module ng\n * @param {string|Object} name Controller name, or an object map of controllers where the\n * keys are the names and the values are the constructors.\n * @param {Function} constructor Controller constructor function.\n * @description\n * See {@link ng.$controllerProvider#register $controllerProvider.register()}.\n */\n controller: invokeLaterAndSetModuleName('$controllerProvider', 'register'),\n\n /**\n * @ngdoc method\n * @name angular.Module#directive\n * @module ng\n * @param {string|Object} name Directive name, or an object map of directives where the\n * keys are the names and the values are the factories.\n * @param {Function} directiveFactory Factory function for creating new instance of\n * directives.\n * @description\n * See {@link ng.$compileProvider#directive $compileProvider.directive()}.\n */\n directive: invokeLaterAndSetModuleName('$compileProvider', 'directive'),\n\n /**\n * @ngdoc method\n * @name angular.Module#component\n * @module ng\n * @param {string} name Name of the component in camel-case (i.e. myComp which will match as my-comp)\n * @param {Object} options Component definition object (a simplified\n * {@link ng.$compile#directive-definition-object directive definition object})\n *\n * @description\n * See {@link ng.$compileProvider#component $compileProvider.component()}.\n */\n component: invokeLaterAndSetModuleName('$compileProvider', 'component'),\n\n /**\n * @ngdoc method\n * @name angular.Module#config\n * @module ng\n * @param {Function} configFn Execute this function on module load. Useful for service\n * configuration.\n * @description\n * Use this method to configure services by injecting their\n * {@link angular.Module#provider `providers`}, e.g. for adding routes to the\n * {@link ngRoute.$routeProvider $routeProvider}.\n *\n * Note that you can only inject {@link angular.Module#provider `providers`} and\n * {@link angular.Module#constant `constants`} into this function.\n *\n * For more about how to configure services, see\n * {@link providers#provider-recipe Provider Recipe}.\n */\n config: config,\n\n /**\n * @ngdoc method\n * @name angular.Module#run\n * @module ng\n * @param {Function} initializationFn Execute this function after injector creation.\n * Useful for application initialization.\n * @description\n * Use this method to register work which should be performed when the injector is done\n * loading all modules.\n */\n run(block) {\n runBlocks.push(block);\n return this;\n }\n };\n\n if (configFn) {\n config(configFn);\n }\n\n return moduleInstance;\n\n /**\n * @param {string} provider\n * @param {string} method\n * @param {String=} insertMethod\n * @returns {angular.Module}\n */\n function invokeLater(provider, method, insertMethod, queue) {\n if (!queue) queue = invokeQueue;\n return function() {\n queue[insertMethod || 'push']([provider, method, arguments]);\n return moduleInstance;\n };\n }\n\n /**\n * @param {string} provider\n * @param {string} method\n * @returns {angular.Module}\n */\n function invokeLaterAndSetModuleName(provider, method, queue) {\n if (!queue) queue = invokeQueue;\n return function(recipeName, factoryFunction) {\n if (factoryFunction && isFunction(factoryFunction)) factoryFunction.$$moduleName = name;\n queue.push([provider, method, arguments]);\n return moduleInstance;\n };\n }\n });\n };\n });\n\n}\n'use strict';\n\n/* global shallowCopy: true */\n\n/**\n * Creates a shallow copy of an object, an array or a primitive.\n *\n * Assumes that there are no proto properties for objects.\n */\nfunction shallowCopy(src, dst) {\n if (isArray(src)) {\n dst = dst || [];\n\n for (var i = 0, ii = src.length; i < ii; i++) {\n dst[i] = src[i];\n }\n } else if (isObject(src)) {\n dst = dst || {};\n\n for (var key in src) {\n if (!(key.charAt(0) === '$' && key.charAt(1) === '$')) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst || src;\n}\n'use strict';\n\n/* exported toDebugString */\n\nfunction serializeObject(obj, maxDepth) {\n var seen = [];\n\n // There is no direct way to stringify object until reaching a specific depth\n // and a very deep object can cause a performance issue, so we copy the object\n // based on this specific depth and then stringify it.\n if (isValidObjectMaxDepth(maxDepth)) {\n // This file is also included in `angular-loader`, so `copy()` might not always be available in\n // the closure. Therefore, it is lazily retrieved as `angular.copy()` when needed.\n obj = angular.copy(obj, null, maxDepth);\n }\n return JSON.stringify(obj, function(key, val) {\n val = toJsonReplacer(key, val);\n if (isObject(val)) {\n\n if (seen.includes(val)) return '...';\n\n seen.push(val);\n }\n return val;\n });\n}\n\nfunction toDebugString(obj, maxDepth) {\n if (typeof obj === 'function') {\n return obj.toString().replace(/ \\{[\\s\\S]*$/, '');\n } else if (isUndefined(obj)) {\n return 'undefined';\n } else if (typeof obj !== 'string') {\n return serializeObject(obj, maxDepth);\n }\n return obj;\n}\n'use strict';\n\n/* global angularModule: true,\n version: true,\n\n $CompileProvider,\n\n htmlAnchorDirective,\n inputDirective,\n inputDirective,\n formDirective,\n scriptDirective,\n selectDirective,\n optionDirective,\n ngBindDirective,\n ngBindHtmlDirective,\n ngBindTemplateDirective,\n ngClassDirective,\n ngClassEvenDirective,\n ngClassOddDirective,\n ngCloakDirective,\n ngControllerDirective,\n ngFormDirective,\n ngHideDirective,\n ngIfDirective,\n ngIncludeDirective,\n ngIncludeFillContentDirective,\n ngInitDirective,\n ngNonBindableDirective,\n ngPluralizeDirective,\n ngRepeatDirective,\n ngShowDirective,\n ngStyleDirective,\n ngSwitchDirective,\n ngSwitchWhenDirective,\n ngSwitchDefaultDirective,\n ngOptionsDirective,\n ngTranscludeDirective,\n ngModelDirective,\n ngListDirective,\n ngChangeDirective,\n patternDirective,\n patternDirective,\n requiredDirective,\n requiredDirective,\n minlengthDirective,\n minlengthDirective,\n maxlengthDirective,\n maxlengthDirective,\n ngValueDirective,\n ngModelOptionsDirective,\n ngAttributeAliasDirectives,\n ngEventDirectives,\n\n $AnchorScrollProvider,\n $AnimateProvider,\n $CoreAnimateCssProvider,\n $$CoreAnimateJsProvider,\n $$CoreAnimateQueueProvider,\n $$AnimateRunnerFactoryProvider,\n $$AnimateAsyncRunFactoryProvider,\n $BrowserProvider,\n $CacheFactoryProvider,\n $ControllerProvider,\n $DateProvider,\n $DocumentProvider,\n $$IsDocumentHiddenProvider,\n $ExceptionHandlerProvider,\n $FilterProvider,\n $$ForceReflowProvider,\n $InterpolateProvider,\n $IntervalProvider,\n $HttpProvider,\n $HttpParamSerializerProvider,\n $HttpParamSerializerJQLikeProvider,\n $HttpBackendProvider,\n $xhrFactoryProvider,\n $jsonpCallbacksProvider,\n $LocationProvider,\n $LogProvider,\n $$MapProvider,\n $ParseProvider,\n $RootScopeProvider,\n $QProvider,\n $$QProvider,\n $$SanitizeUriProvider,\n $SceProvider,\n $SceDelegateProvider,\n $SnifferProvider,\n $TemplateCacheProvider,\n $TemplateRequestProvider,\n $$TestabilityProvider,\n $TimeoutProvider,\n $$RAFProvider,\n $WindowProvider,\n $$jqLiteProvider,\n $$CookieReaderProvider\n*/\n\n\nfunction publishExternalAPI(angular) {\n extend(angular, {\n 'errorHandlingConfig': errorHandlingConfig,\n 'bootstrap': bootstrap,\n 'copy': copy,\n 'shallowCopy': shallowCopy,\n 'extend': extend,\n 'merge': merge,\n 'equals': equals,\n 'element': jqLite,\n 'forEach': forEach,\n 'injector': createInjector,\n 'noop': noop,\n 'bind': bind,\n 'toJson': toJson,\n 'fromJson': fromJson,\n 'identity': identity,\n 'isUndefined': isUndefined,\n 'isDefined': isDefined,\n 'isString': isString,\n 'isFunction': isFunction,\n 'isObject': isObject,\n 'isNumber': isNumber,\n 'isElement': isElement,\n 'isArray': isArray,\n 'isRegExp': isRegExp,\n 'isDate': isDate,\n 'lowercase': lowercase,\n 'uppercase': uppercase,\n 'callbacks': {$$counter: 0},\n 'getTestability': getTestability,\n 'reloadWithDebugInfo': reloadWithDebugInfo,\n 'UNSAFE_restoreLegacyJqLiteXHTMLReplacement': UNSAFE_restoreLegacyJqLiteXHTMLReplacement,\n '$$minErr': minErr,\n '$$csp': csp,\n '$$encodeUriSegment': encodeUriSegment,\n '$$encodeUriQuery': encodeUriQuery,\n '$$stringify': stringify,\n '$$compilationBindings': compilationBindings\n });\n\n angularModule = setupModuleLoader(window);\n\n angularModule('ng', ['ngLocale'], ['$provide',\n function ngModule($provide) {\n // $$sanitizeUriProvider needs to be before $compileProvider as it is used by it.\n $provide.provider({\n $$sanitizeUri: $$SanitizeUriProvider\n });\n $provide.provider('$compile', $CompileProvider).\n directive({\n a: htmlAnchorDirective,\n input: inputDirective,\n textarea: inputDirective,\n form: formDirective,\n script: scriptDirective,\n select: selectDirective,\n option: optionDirective,\n ngBind: ngBindDirective,\n ngBindHtml: ngBindHtmlDirective,\n ngBindTemplate: ngBindTemplateDirective,\n ngClass: ngClassDirective,\n ngClassEven: ngClassEvenDirective,\n ngClassOdd: ngClassOddDirective,\n ngCloak: ngCloakDirective,\n ngController: ngControllerDirective,\n ngForm: ngFormDirective,\n ngHide: ngHideDirective,\n ngIf: ngIfDirective,\n ngInclude: ngIncludeDirective,\n ngInit: ngInitDirective,\n ngNonBindable: ngNonBindableDirective,\n ngPluralize: ngPluralizeDirective,\n ngRepeat: ngRepeatDirective,\n ngShow: ngShowDirective,\n ngStyle: ngStyleDirective,\n ngSwitch: ngSwitchDirective,\n ngSwitchWhen: ngSwitchWhenDirective,\n ngSwitchDefault: ngSwitchDefaultDirective,\n ngOptions: ngOptionsDirective,\n ngTransclude: ngTranscludeDirective,\n ngModel: ngModelDirective,\n ngList: ngListDirective,\n ngChange: ngChangeDirective,\n pattern: patternDirective,\n ngPattern: patternDirective,\n required: requiredDirective,\n ngRequired: requiredDirective,\n minlength: minlengthDirective,\n ngMinlength: minlengthDirective,\n maxlength: maxlengthDirective,\n ngMaxlength: maxlengthDirective,\n ngValue: ngValueDirective,\n ngModelOptions: ngModelOptionsDirective\n }).\n directive({\n ngInclude: ngIncludeFillContentDirective\n }).\n directive(ngAttributeAliasDirectives).\n directive(ngEventDirectives);\n $provide.provider({\n $anchorScroll: $AnchorScrollProvider,\n $animate: $AnimateProvider,\n $animateCss: $CoreAnimateCssProvider,\n $$animateJs: $$CoreAnimateJsProvider,\n $$animateQueue: $$CoreAnimateQueueProvider,\n $$AnimateRunner: $$AnimateRunnerFactoryProvider,\n $$animateAsyncRun: $$AnimateAsyncRunFactoryProvider,\n $browser: $BrowserProvider,\n $cacheFactory: $CacheFactoryProvider,\n $controller: $ControllerProvider,\n $document: $DocumentProvider,\n $$isDocumentHidden: $$IsDocumentHiddenProvider,\n $exceptionHandler: $ExceptionHandlerProvider,\n $filter: $FilterProvider,\n $$forceReflow: $$ForceReflowProvider,\n $interpolate: $InterpolateProvider,\n $interval: $IntervalProvider,\n $http: $HttpProvider,\n $httpParamSerializer: $HttpParamSerializerProvider,\n $httpParamSerializerJQLike: $HttpParamSerializerJQLikeProvider,\n $httpBackend: $HttpBackendProvider,\n $xhrFactory: $xhrFactoryProvider,\n $jsonpCallbacks: $jsonpCallbacksProvider,\n $location: $LocationProvider,\n $log: $LogProvider,\n $parse: $ParseProvider,\n $rootScope: $RootScopeProvider,\n $q: $QProvider,\n $$q: $$QProvider,\n $sce: $SceProvider,\n $sceDelegate: $SceDelegateProvider,\n $sniffer: $SnifferProvider,\n $templateCache: $TemplateCacheProvider,\n $templateRequest: $TemplateRequestProvider,\n $$testability: $$TestabilityProvider,\n $timeout: $TimeoutProvider,\n $window: $WindowProvider,\n $$rAF: $$RAFProvider,\n $$jqLite: $$jqLiteProvider,\n $$Map: $$MapProvider,\n $$cookieReader: $$CookieReaderProvider\n });\n }\n ])\n .info({ angularVersion: '2.0.0' });\n}\n'use strict';\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Any commits to this file should be reviewed with security in mind. *\n * Changes to this file can potentially create security vulnerabilities. *\n * An approval from 2 Core members with history of modifying *\n * this file is required. *\n * *\n * Does the change somehow allow for arbitrary javascript to be executed? *\n * Or allows for someone to change the prototype of built-in objects? *\n * Or gives undesired access to variables likes document or window? *\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n/* global\n JQLitePrototype: true,\n BOOLEAN_ATTR: true,\n ALIASED_ATTR: true\n*/\n\n//////////////////////////////////\n//JQLite\n//////////////////////////////////\n\n/**\n * @ngdoc function\n * @name angular.element\n * @module ng\n * @kind function\n *\n * @description\n * Wraps a raw DOM element or HTML string as a [jQuery](http://jquery.com) element.\n *\n * If jQuery is available, `angular.element` is an alias for the\n * [jQuery](http://api.jquery.com/jQuery/) function. If jQuery is not available, `angular.element`\n * delegates to AngularJS's built-in subset of jQuery, called \"jQuery lite\" or **jqLite**.\n *\n * jqLite is a tiny, API-compatible subset of jQuery that allows\n * AngularJS to manipulate the DOM in a cross-browser compatible way. jqLite implements only the most\n * commonly needed functionality with the goal of having a very small footprint.\n *\n * To use `jQuery`, simply ensure it is loaded before the `angular.js` file. You can also use the\n * {@link ngJq `ngJq`} directive to specify that jqlite should be used over jQuery, or to use a\n * specific version of jQuery if multiple versions exist on the page.\n *\n *
**Note:** All element references in AngularJS are always wrapped with jQuery or\n * jqLite (such as the element argument in a directive's compile / link function). They are never raw DOM references.
\n *\n *
**Note:** Keep in mind that this function will not find elements\n * by tag name / CSS selector. For lookups by tag name, try instead `angular.element(document).find(...)`\n * or `$document.find()`, or use the standard DOM APIs, e.g. `document.querySelectorAll()`.
\n *\n * ## AngularJS's jqLite\n * jqLite provides only the following jQuery methods:\n *\n * - [`addClass()`](http://api.jquery.com/addClass/) - Does not support a function as first argument\n * - [`after()`](http://api.jquery.com/after/)\n * - [`append()`](http://api.jquery.com/append/) - Contrary to jQuery, this doesn't clone elements\n * so will not work correctly when invoked on a jqLite object containing more than one DOM node\n * - [`attr()`](http://api.jquery.com/attr/) - Does not support functions as parameters\n * - [`bind()`](http://api.jquery.com/bind/) (_deprecated_, use [`on()`](http://api.jquery.com/on/)) - Does not support namespaces, selectors or eventData\n * - [`children()`](http://api.jquery.com/children/) - Does not support selectors\n * - [`clone()`](http://api.jquery.com/clone/)\n * - [`contents()`](http://api.jquery.com/contents/)\n * - [`css()`](http://api.jquery.com/css/) - Only retrieves inline-styles, does not call `getComputedStyle()`.\n * As a setter, does not convert numbers to strings or append 'px', and also does not have automatic property prefixing.\n * - [`data()`](http://api.jquery.com/data/)\n * - [`detach()`](http://api.jquery.com/detach/)\n * - [`empty()`](http://api.jquery.com/empty/)\n * - [`eq()`](http://api.jquery.com/eq/)\n * - [`find()`](http://api.jquery.com/find/) - Limited to lookups by tag name\n * - [`hasClass()`](http://api.jquery.com/hasClass/)\n * - [`html()`](http://api.jquery.com/html/)\n * - [`next()`](http://api.jquery.com/next/) - Does not support selectors\n * - [`on()`](http://api.jquery.com/on/) - Does not support namespaces, selectors or eventData\n * - [`off()`](http://api.jquery.com/off/) - Does not support namespaces, selectors or event object as parameter\n * - [`one()`](http://api.jquery.com/one/) - Does not support namespaces or selectors\n * - [`parent()`](http://api.jquery.com/parent/) - Does not support selectors\n * - [`prepend()`](http://api.jquery.com/prepend/)\n * - [`prop()`](http://api.jquery.com/prop/)\n * - [`ready()`](http://api.jquery.com/ready/) (_deprecated_, use `angular.element(callback)` instead of `angular.element(document).ready(callback)`)\n * - [`remove()`](http://api.jquery.com/remove/)\n * - [`removeAttr()`](http://api.jquery.com/removeAttr/) - Does not support multiple attributes\n * - [`removeClass()`](http://api.jquery.com/removeClass/) - Does not support a function as first argument\n * - [`removeData()`](http://api.jquery.com/removeData/)\n * - [`replaceWith()`](http://api.jquery.com/replaceWith/)\n * - [`text()`](http://api.jquery.com/text/)\n * - [`toggleClass()`](http://api.jquery.com/toggleClass/) - Does not support a function as first argument\n * - [`triggerHandler()`](http://api.jquery.com/triggerHandler/) - Passes a dummy event object to handlers\n * - [`unbind()`](http://api.jquery.com/unbind/) (_deprecated_, use [`off()`](http://api.jquery.com/off/)) - Does not support namespaces or event object as parameter\n * - [`val()`](http://api.jquery.com/val/)\n * - [`wrap()`](http://api.jquery.com/wrap/)\n *\n * jqLite also provides a method restoring pre-1.8 insecure treatment of XHTML-like tags\n * that makes input like `
` turned to `
` instead of\n * `
` like version 1.8 & newer do:\n * ```js\n * angular.UNSAFE_restoreLegacyJqLiteXHTMLReplacement();\n * ```\n * Note that this only patches jqLite. If you use jQuery 3.5.0 or newer, please read\n * [jQuery 3.5 upgrade guide](https://jquery.com/upgrade-guide/3.5/) for more details\n * about the workarounds.\n *\n * ## jQuery/jqLite Extras\n * AngularJS also provides the following additional methods and events to both jQuery and jqLite:\n *\n * ### Events\n * - `$destroy` - AngularJS intercepts all jqLite/jQuery's DOM destruction apis and fires this event\n * on all DOM nodes being removed. This can be used to clean up any 3rd party bindings to the DOM\n * element before it is removed.\n *\n * ### Methods\n * - `controller(name)` - retrieves the controller of the current element or its parent. By default\n * retrieves controller associated with the `ngController` directive. If `name` is provided as\n * camelCase directive name, then the controller for this directive will be retrieved (e.g.\n * `'ngModel'`).\n * - `injector()` - retrieves the injector of the current element or its parent.\n * - `scope()` - retrieves the {@link ng.$rootScope.Scope scope} of the current\n * element or its parent. Requires {@link guide/production#disabling-debug-data Debug Data} to\n * be enabled.\n * - `isolateScope()` - retrieves an isolate {@link ng.$rootScope.Scope scope} if one is attached directly to the\n * current element. This getter should be used only on elements that contain a directive which starts a new isolate\n * scope. Calling `scope()` on this element always returns the original non-isolate scope.\n * Requires {@link guide/production#disabling-debug-data Debug Data} to be enabled.\n * - `inheritedData()` - same as `data()`, but walks up the DOM until a value is found or the top\n * parent element is reached.\n *\n * @knownIssue You cannot spy on `angular.element` if you are using Jasmine version 1.x. See\n * https://github.com/angular/angular.js/issues/14251 for more information.\n *\n * @param {string|DOMElement} element HTML string or DOMElement to be wrapped into jQuery.\n * @returns {Object} jQuery object.\n */\n\nJQLite.expando = 'ng339';\n\nvar jqCache = JQLite.cache = {};\nvar jqId = 1;\n\n/*\n * !!! This is an undocumented \"private\" function !!!\n */\nJQLite._data = function(node) {\n //jQuery always returns an object on cache miss\n return this.cache[node[this.expando]] || {};\n};\n\nfunction jqNextId() { return ++jqId; }\n\n\nvar DASH_LOWERCASE_REGEXP = /-([a-z])/g;\nvar MS_HACK_REGEXP = /^-ms-/;\nvar MOUSE_EVENT_MAP = { mouseleave: 'mouseout', mouseenter: 'mouseover' };\nvar jqLiteMinErr = minErr('jqLite');\n\n/**\n * Converts kebab-case to camelCase.\n * There is also a special case for the ms prefix starting with a lowercase letter.\n * @param name Name to normalize\n */\nfunction cssKebabToCamel(name) {\n return kebabToCamel(name.replace(MS_HACK_REGEXP, 'ms-'));\n}\n\nfunction fnCamelCaseReplace(all, letter) {\n return letter.toUpperCase();\n}\n\n/**\n * Converts kebab-case to camelCase.\n * @param name Name to normalize\n */\nfunction kebabToCamel(name) {\n return name\n .replace(DASH_LOWERCASE_REGEXP, fnCamelCaseReplace);\n}\n\nvar SINGLE_TAG_REGEXP = /^<([\\w-]+)\\s*\\/?>(?:<\\/\\1>|)$/;\nvar HTML_REGEXP = /<|&#?\\w+;/;\nvar TAG_NAME_REGEXP = /<([\\w:-]+)/;\nvar XHTML_TAG_REGEXP = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:-]+)[^>]*)\\/>/gi;\n\n// Table parts need to be wrapped with `` or they're\n// stripped to their contents when put in a div.\n// XHTML parsers do not magically insert elements in the\n// same way that tag soup parsers do, so we cannot shorten\n// this by omitting or other required elements.\nvar wrapMap = {\n thead: ['table'],\n col: ['colgroup', 'table'],\n tr: ['tbody', 'table'],\n td: ['tr', 'tbody', 'table']\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\nfor (var key in wrapMap) {\n var wrapMapValueClosing = wrapMap[key];\n var wrapMapValue = wrapMapValueClosing.slice().reverse();\n}\n\nfunction jqLiteIsTextNode(html) {\n return !HTML_REGEXP.test(html);\n}\n\nfunction jqLiteAcceptsData(node) {\n // The window object can accept data but has no nodeType\n // Otherwise we are only interested in elements (1) and documents (9)\n var nodeType = node.nodeType;\n return nodeType === NODE_TYPE_ELEMENT || !nodeType || nodeType === NODE_TYPE_DOCUMENT;\n}\n\nfunction jqLiteHasData(node) {\n for (var key in jqCache[node.ng339]) {\n return true;\n }\n return false;\n}\n\nfunction jqLiteBuildFragment(html, context) {\n var tmp;\n var tag;\n var wrap;\n var finalHtml;\n var fragment = context.createDocumentFragment();\n var nodes = [];\n var i;\n\n if (jqLiteIsTextNode(html)) {\n // Convert non-html into a text node\n nodes.push(context.createTextNode(html));\n } else {\n // Convert html into DOM nodes\n tmp = fragment.appendChild(context.createElement('div'));\n tag = (TAG_NAME_REGEXP.exec(html) || ['', ''])[1].toLowerCase();\n finalHtml = JQLite.legacyXHTMLReplacement ?\n html.replace(XHTML_TAG_REGEXP, '<$1>') :\n html;\n wrap = wrapMap[tag] || [];\n\n // Create wrappers & descend into them\n i = wrap.length;\n while (--i > -1) {\n tmp.appendChild(window.document.createElement(wrap[i]));\n tmp = tmp.firstChild;\n }\n\n tmp.innerHTML = finalHtml;\n\n nodes = concat(nodes, tmp.childNodes);\n\n tmp = fragment.firstChild;\n tmp.textContent = '';\n }\n\n // Remove wrapper from fragment\n fragment.textContent = '';\n fragment.innerHTML = ''; // Clear inner HTML\n forEach(nodes, function(node) {\n fragment.appendChild(node);\n });\n\n return fragment;\n}\n\nfunction jqLiteParseHTML(html, context) {\n context = context || window.document;\n var parsed;\n\n if ((parsed = SINGLE_TAG_REGEXP.exec(html))) {\n return [context.createElement(parsed[1])];\n }\n\n if ((parsed = jqLiteBuildFragment(html, context))) {\n return parsed.childNodes;\n }\n\n return [];\n}\n\nfunction jqLiteWrapNode(node, wrapper) {\n var parent = node.parentNode;\n\n if (parent) {\n parent.replaceChild(wrapper, node);\n }\n\n wrapper.appendChild(node);\n}\n\n\n/////////////////////////////////////////////\nfunction JQLite(element) {\n if (element instanceof JQLite) {\n return element;\n }\n\n var argIsString;\n\n if (isString(element)) {\n element = trim(element);\n argIsString = true;\n }\n if (!(this instanceof JQLite)) {\n if (argIsString && element.charAt(0) !== '<') {\n throw jqLiteMinErr('nosel', 'Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element');\n }\n return new JQLite(element);\n }\n\n if (argIsString) {\n jqLiteAddNodes(this, jqLiteParseHTML(element));\n } else if (isFunction(element)) {\n jqLiteReady(element);\n } else {\n jqLiteAddNodes(this, element);\n }\n}\n\nfunction jqLiteClone(element) {\n return element.cloneNode(true);\n}\n\nfunction jqLiteDealoc(element, onlyDescendants) {\n if (!onlyDescendants && jqLiteAcceptsData(element)) jqLite.cleanData([element]);\n\n if (element.querySelectorAll) {\n jqLite.cleanData(element.querySelectorAll('*'));\n }\n}\n\nfunction jqLiteOff(element, type, fn, unsupported) {\n if (isDefined(unsupported)) throw jqLiteMinErr('offargs', 'jqLite#off() does not support the `selector` argument');\n\n var expandoStore = jqLiteExpandoStore(element);\n var events = expandoStore && expandoStore.events;\n var handle = expandoStore && expandoStore.handle;\n\n if (!handle) return; //no listeners registered\n\n if (!type) {\n for (type in events) {\n if (type !== '$destroy') {\n element.removeEventListener(type, handle);\n }\n delete events[type];\n }\n } else {\n\n var removeHandler = function(type) {\n var listenerFns = events[type];\n if (isDefined(fn)) {\n arrayRemove(listenerFns || [], fn);\n }\n if (!(isDefined(fn) && listenerFns && listenerFns.length > 0)) {\n element.removeEventListener(type, handle);\n delete events[type];\n }\n };\n\n forEach(type.split(' '), function(type) {\n removeHandler(type);\n if (MOUSE_EVENT_MAP[type]) {\n removeHandler(MOUSE_EVENT_MAP[type]);\n }\n });\n }\n}\n\nfunction jqLiteRemoveData(element, name) {\n var expandoId = element.ng339;\n var expandoStore = expandoId && jqCache[expandoId];\n\n if (expandoStore) {\n if (name) {\n delete expandoStore.data[name];\n return;\n }\n\n if (expandoStore.handle) {\n if (expandoStore.events.$destroy) {\n expandoStore.handle({}, '$destroy');\n }\n jqLiteOff(element);\n }\n delete jqCache[expandoId];\n element.ng339 = undefined; // don't delete DOM expandos. IE and Chrome don't like it\n }\n}\n\n\nfunction jqLiteExpandoStore(element, createIfNecessary) {\n var expandoId = element.ng339;\n var expandoStore = expandoId && jqCache[expandoId];\n\n if (createIfNecessary && !expandoStore) {\n element.ng339 = expandoId = jqNextId();\n expandoStore = jqCache[expandoId] = {events: {}, data: {}, handle: undefined};\n }\n\n return expandoStore;\n}\n\n\nfunction jqLiteData(element, key, value) {\n if (jqLiteAcceptsData(element)) {\n var prop;\n\n var isSimpleSetter = isDefined(value);\n var isSimpleGetter = !isSimpleSetter && key && !isObject(key);\n var massGetter = !key;\n var expandoStore = jqLiteExpandoStore(element, !isSimpleGetter);\n var data = expandoStore && expandoStore.data;\n\n if (isSimpleSetter) { // data('key', value)\n data[kebabToCamel(key)] = value;\n } else {\n if (massGetter) { // data()\n return data;\n } else {\n if (isSimpleGetter) { // data('key')\n // don't force creation of expandoStore if it doesn't exist yet\n return data && data[kebabToCamel(key)];\n } else { // mass-setter: data({key1: val1, key2: val2})\n for (prop in key) {\n data[kebabToCamel(prop)] = key[prop];\n }\n }\n }\n }\n }\n}\n\nfunction jqLiteHasClass(element, selector) {\n if (!element.getAttribute) return false;\n return (' ' + (element.getAttribute('class') || '') + ' ').replace(/[\\n\\t]/g, ' ').includes(' ' + selector + ' ');\n}\n\nfunction jqLiteRemoveClass(element, cssClasses) {\n if (cssClasses && element.setAttribute) {\n var existingClasses = (' ' + (element.getAttribute('class') || '') + ' ')\n .replace(/[\\n\\t]/g, ' ');\n var newClasses = existingClasses;\n\n forEach(cssClasses.split(' '), function(cssClass) {\n cssClass = trim(cssClass);\n newClasses = newClasses.replace(' ' + cssClass + ' ', ' ');\n });\n\n if (newClasses !== existingClasses) {\n element.setAttribute('class', trim(newClasses));\n }\n }\n}\n\nfunction jqLiteAddClass(element, cssClasses) {\n if (cssClasses && element.setAttribute) {\n var existingClasses = (' ' + (element.getAttribute('class') || '') + ' ')\n .replace(/[\\n\\t]/g, ' ');\n var newClasses = existingClasses;\n\n forEach(cssClasses.split(' '), function(cssClass) {\n cssClass = trim(cssClass);\n if (!newClasses.includes(' ' + cssClass + ' ')) {\n newClasses += cssClass + ' ';\n }\n });\n\n if (newClasses !== existingClasses) {\n element.setAttribute('class', trim(newClasses));\n }\n }\n}\n\n\nfunction jqLiteAddNodes(root, elements) {\n // THIS CODE IS VERY HOT. Don't make changes without benchmarking.\n\n if (elements) {\n\n // if a Node (the most common case)\n if (elements.nodeType) {\n root[root.length++] = elements;\n } else {\n var length = elements.length;\n\n // if an Array or NodeList and not a Window\n if (typeof length === 'number' && elements.window !== elements) {\n if (length) {\n for (var i = 0; i < length; i++) {\n root[root.length++] = elements[i];\n }\n }\n } else {\n root[root.length++] = elements;\n }\n }\n }\n}\n\n\nfunction jqLiteController(element, name) {\n return jqLiteInheritedData(element, '$' + (name || 'ngController') + 'Controller');\n}\n\nfunction jqLiteInheritedData(element, name, value) {\n // if element is the document object work with the html element instead\n // this makes $(document).scope() possible\n if (element.nodeType === NODE_TYPE_DOCUMENT) {\n element = element.documentElement;\n }\n var names = isArray(name) ? name : [name];\n\n while (element) {\n for (var i = 0, ii = names.length; i < ii; i++) {\n if (isDefined(value = jqLite.data(element, names[i]))) return value;\n }\n\n // If dealing with a document fragment node with a host element, and no parent, use the host\n // element as the parent. This enables directives within a Shadow DOM or polyfilled Shadow DOM\n // to lookup parent controllers.\n element = element.parentNode || (element.nodeType === NODE_TYPE_DOCUMENT_FRAGMENT && element.host);\n }\n}\n\nfunction jqLiteEmpty(element) {\n jqLiteDealoc(element, true);\n while (element.firstChild) {\n element.removeChild(element.firstChild);\n }\n}\n\nfunction jqLiteRemove(element, keepData) {\n if (!keepData) jqLiteDealoc(element);\n var parent = element.parentNode;\n if (parent) parent.removeChild(element);\n}\n\n\nfunction jqLiteDocumentLoaded(action, win) {\n win = win || window;\n if (win.document.readyState === 'complete') {\n // Force the action to be run async for consistent behavior\n // from the action's point of view\n // i.e. it will definitely not be in a $apply\n win.setTimeout(action);\n } else {\n // No need to unbind this handler as load is only ever called once\n jqLite(win).on('load', action);\n }\n}\n\nfunction jqLiteReady(fn) {\n function trigger() {\n window.document.removeEventListener('DOMContentLoaded', trigger);\n window.removeEventListener('load', trigger);\n fn();\n }\n\n // check if document is already loaded\n if (window.document.readyState === 'complete') {\n window.setTimeout(fn);\n } else {\n window.document.addEventListener('DOMContentLoaded', trigger);\n window.addEventListener('load', trigger);\n }\n}\n\n//////////////////////////////////////////\n// Functions which are declared directly.\n//////////////////////////////////////////\nvar JQLitePrototype = JQLite.prototype = {\n ready: jqLiteReady,\n toString() {\n var value = [];\n forEach(this, function(e) { value.push('' + e);});\n return '[' + value.join(', ') + ']';\n },\n\n eq(index) {\n return (index >= 0) ? jqLite(this[index]) : jqLite(this[this.length + index]);\n },\n\n length: 0,\n push: push,\n sort: [].sort,\n splice: [].splice\n};\n\n//////////////////////////////////////////\n// Functions iterating getter/setters.\n// these functions return self on setter and\n// value on get.\n//////////////////////////////////////////\nvar BOOLEAN_ATTR = {};\nforEach('multiple,selected,checked,disabled,readOnly,required,open'.split(','), function(value) {\n BOOLEAN_ATTR[lowercase(value)] = value;\n});\nvar BOOLEAN_ELEMENTS = {};\nforEach('input,select,option,textarea,button,form,details'.split(','), function(value) {\n BOOLEAN_ELEMENTS[value] = true;\n});\nvar ALIASED_ATTR = {\n 'ngMinlength': 'minlength',\n 'ngMaxlength': 'maxlength',\n 'ngMin': 'min',\n 'ngMax': 'max',\n 'ngPattern': 'pattern',\n 'ngStep': 'step'\n};\n\nfunction getBooleanAttrName(element, name) {\n // check dom last since we will most likely fail on name\n var booleanAttr = BOOLEAN_ATTR[name.toLowerCase()];\n\n // booleanAttr is here twice to minimize DOM access\n return booleanAttr && BOOLEAN_ELEMENTS[nodeName_(element)] && booleanAttr;\n}\n\nfunction getAliasedAttrName(name) {\n return ALIASED_ATTR[name];\n}\n\nforEach({\n data: jqLiteData,\n removeData: jqLiteRemoveData,\n hasData: jqLiteHasData,\n cleanData: function jqLiteCleanData(nodes) {\n for (var i = 0, ii = nodes.length; i < ii; i++) {\n jqLiteRemoveData(nodes[i]);\n }\n }\n}, function(fn, name) {\n JQLite[name] = fn;\n});\n\nforEach({\n data: jqLiteData,\n inheritedData: jqLiteInheritedData,\n\n scope(element) {\n // Can't use jqLiteData here directly so we stay compatible with jQuery!\n return jqLite.data(element, '$scope') || jqLiteInheritedData(element.parentNode || element, ['$isolateScope', '$scope']);\n },\n\n isolateScope(element) {\n // Can't use jqLiteData here directly so we stay compatible with jQuery!\n return jqLite.data(element, '$isolateScope') || jqLite.data(element, '$isolateScopeNoTemplate');\n },\n\n controller: jqLiteController,\n\n injector(element) {\n return jqLiteInheritedData(element, '$injector');\n },\n\n removeAttr(element, name) {\n element.removeAttribute(name);\n },\n\n hasClass: jqLiteHasClass,\n\n css(element, name, value) {\n name = cssKebabToCamel(name);\n\n if (isDefined(value)) {\n element.style[name] = value;\n } else {\n return element.style[name];\n }\n },\n\n attr(element, name, value) {\n var ret;\n var nodeType = element.nodeType;\n if (nodeType === NODE_TYPE_TEXT || nodeType === NODE_TYPE_ATTRIBUTE || nodeType === NODE_TYPE_COMMENT ||\n !element.getAttribute) {\n return;\n }\n\n var lowercasedName = lowercase(name);\n var isBooleanAttr = BOOLEAN_ATTR[lowercasedName];\n\n if (isDefined(value)) {\n // setter\n\n if (value === null || (value === false && isBooleanAttr)) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, isBooleanAttr ? lowercasedName : value);\n }\n } else {\n // getter\n\n ret = element.getAttribute(name);\n\n if (isBooleanAttr && ret !== null) {\n ret = lowercasedName;\n }\n // Normalize non-existing attributes to undefined (as jQuery).\n return ret === null ? undefined : ret;\n }\n },\n\n prop(element, name, value) {\n if (isDefined(value)) {\n element[name] = value;\n } else {\n return element[name];\n }\n },\n\n text: (function() {\n getText.$dv = '';\n return getText;\n\n function getText(element, value) {\n if (isUndefined(value)) {\n var nodeType = element.nodeType;\n return (nodeType === NODE_TYPE_ELEMENT || nodeType === NODE_TYPE_TEXT) ? element.textContent : '';\n }\n element.textContent = value;\n }\n })(),\n\n val(element, value) {\n if (isUndefined(value)) {\n if (element.multiple && nodeName_(element) === 'select') {\n var result = [];\n forEach(element.options, function(option) {\n if (option.selected) {\n result.push(option.value || option.text);\n }\n });\n return result;\n }\n return element.value;\n }\n element.value = value;\n },\n\n html(element, value) {\n if (isUndefined(value)) {\n return element.innerHTML;\n }\n jqLiteDealoc(element, true);\n element.innerHTML = value;\n },\n\n empty: jqLiteEmpty\n}, function(fn, name) {\n /**\n * Properties: writes return selection, reads return first value\n */\n JQLite.prototype[name] = function(arg1, arg2) {\n var i;\n var key;\n var nodeCount = this.length;\n\n // jqLiteHasClass has only two arguments, but is a getter-only fn, so we need to special-case it\n // in a way that survives minification.\n // jqLiteEmpty takes no arguments but is a setter.\n if (fn !== jqLiteEmpty &&\n (isUndefined((fn.length === 2 && (fn !== jqLiteHasClass && fn !== jqLiteController)) ? arg1 : arg2))) {\n if (isObject(arg1)) {\n\n // we are a write, but the object properties are the key/values\n for (i = 0; i < nodeCount; i++) {\n if (fn === jqLiteData) {\n // data() takes the whole object in jQuery\n fn(this[i], arg1);\n } else {\n for (key in arg1) {\n fn(this[i], key, arg1[key]);\n }\n }\n }\n // return self for chaining\n return this;\n } else {\n // we are a read, so read the first child.\n // TODO: do we still need this?\n var value = fn.$dv;\n // Only if we have $dv do we iterate over all, otherwise it is just the first element.\n var jj = (isUndefined(value)) ? Math.min(nodeCount, 1) : nodeCount;\n for (var j = 0; j < jj; j++) {\n var nodeValue = fn(this[j], arg1, arg2);\n value = value ? value + nodeValue : nodeValue;\n }\n return value;\n }\n } else {\n // we are a write, so apply to all children\n for (i = 0; i < nodeCount; i++) {\n fn(this[i], arg1, arg2);\n }\n // return self for chaining\n return this;\n }\n };\n});\n\nfunction createEventHandler(element, events) {\n var eventHandler = function(event, type) {\n // jQuery specific api\n event.isDefaultPrevented = function() {\n return event.defaultPrevented;\n };\n\n var eventFns = events[type || event.type];\n var eventFnsLength = eventFns ? eventFns.length : 0;\n\n if (!eventFnsLength) return;\n\n if (isUndefined(event.immediatePropagationStopped)) {\n var originalStopImmediatePropagation = event.stopImmediatePropagation;\n event.stopImmediatePropagation = function() {\n event.immediatePropagationStopped = true;\n\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n\n if (originalStopImmediatePropagation) {\n originalStopImmediatePropagation.call(event);\n }\n };\n }\n\n event.isImmediatePropagationStopped = function() {\n return event.immediatePropagationStopped === true;\n };\n\n // Some events have special handlers that wrap the real handler\n var handlerWrapper = eventFns.specialHandlerWrapper || defaultHandlerWrapper;\n\n // Copy event handlers in case event handlers array is modified during execution.\n if ((eventFnsLength > 1)) {\n eventFns = shallowCopy(eventFns);\n }\n\n for (var i = 0; i < eventFnsLength; i++) {\n if (!event.isImmediatePropagationStopped()) {\n handlerWrapper(element, event, eventFns[i]);\n }\n }\n };\n\n // TODO: this is a hack for angularMocks/clearDataCache that makes it possible to deregister all\n // events on `element`\n eventHandler.elem = element;\n return eventHandler;\n}\n\nfunction defaultHandlerWrapper(element, event, handler) {\n handler.call(element, event);\n}\n\nfunction specialMouseHandlerWrapper(target, event, handler) {\n // Refer to jQuery's implementation of mouseenter & mouseleave\n // Read about mouseenter and mouseleave:\n // http://www.quirksmode.org/js/events_mouse.html#link8\n var related = event.relatedTarget;\n // For mousenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n if (!related || (related !== target && !target.contains(related))) {\n handler.call(target, event);\n }\n}\n\n//////////////////////////////////////////\n// Functions iterating traversal.\n// These functions chain results into a single\n// selector.\n//////////////////////////////////////////\nforEach({\n removeData: jqLiteRemoveData,\n\n on: function jqLiteOn(element, type, fn, unsupported) {\n if (isDefined(unsupported)) throw jqLiteMinErr('onargs', 'jqLite#on() does not support the `selector` or `eventData` parameters');\n\n // Do not add event handlers to non-elements because they will not be cleaned up.\n if (!jqLiteAcceptsData(element)) {\n return;\n }\n\n var expandoStore = jqLiteExpandoStore(element, true);\n var events = expandoStore.events;\n var handle = expandoStore.handle;\n\n if (!handle) {\n handle = expandoStore.handle = createEventHandler(element, events);\n }\n\n // http://jsperf.com/string-indexof-vs-split\n var types = type.includes(' ') ? type.split(' ') : [type];\n var i = types.length;\n\n var addHandler = function(type, specialHandlerWrapper, noEventListener) {\n var eventFns = events[type];\n\n if (!eventFns) {\n eventFns = events[type] = [];\n eventFns.specialHandlerWrapper = specialHandlerWrapper;\n if (type !== '$destroy' && !noEventListener) {\n element.addEventListener(type, handle);\n }\n }\n\n eventFns.push(fn);\n };\n\n while (i--) {\n type = types[i];\n if (MOUSE_EVENT_MAP[type]) {\n addHandler(MOUSE_EVENT_MAP[type], specialMouseHandlerWrapper);\n addHandler(type, undefined, true);\n } else {\n addHandler(type);\n }\n }\n },\n\n off: jqLiteOff,\n\n one(element, type, fn) {\n element = jqLite(element);\n\n //add the listener twice so that when it is called\n //you can remove the original function and still be\n //able to call element.off(ev, fn) normally\n element.on(type, function onFn() {\n element.off(type, fn);\n element.off(type, onFn);\n });\n element.on(type, fn);\n },\n\n replaceWith(element, replaceNode) {\n var index;\n var parent = element.parentNode;\n jqLiteDealoc(element);\n forEach(new JQLite(replaceNode), function(node) {\n if (index) {\n parent.insertBefore(node, index.nextSibling);\n } else {\n parent.replaceChild(node, element);\n }\n index = node;\n });\n },\n\n children(element) {\n var children = [];\n forEach(element.childNodes, function(element) {\n if (element.nodeType === NODE_TYPE_ELEMENT) {\n children.push(element);\n }\n });\n return children;\n },\n\n contents(element) {\n return element.contentDocument || element.childNodes || [];\n },\n\n append(element, node) {\n var nodeType = element.nodeType;\n if (nodeType !== NODE_TYPE_ELEMENT && nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT) return;\n\n node = new JQLite(node);\n\n for (var i = 0, ii = node.length; i < ii; i++) {\n var child = node[i];\n element.appendChild(child);\n }\n },\n\n prepend(element, node) {\n if (element.nodeType === NODE_TYPE_ELEMENT) {\n var index = element.firstChild;\n forEach(new JQLite(node), function(child) {\n element.insertBefore(child, index);\n });\n }\n },\n\n wrap(element, wrapNode) {\n jqLiteWrapNode(element, jqLite(wrapNode).eq(0).clone()[0]);\n },\n\n remove: jqLiteRemove,\n\n detach(element) {\n jqLiteRemove(element, true);\n },\n\n after(element, newElement) {\n var index = element;\n var parent = element.parentNode;\n\n if (parent) {\n newElement = new JQLite(newElement);\n\n for (var i = 0, ii = newElement.length; i < ii; i++) {\n var node = newElement[i];\n parent.insertBefore(node, index.nextSibling);\n index = node;\n }\n }\n },\n\n addClass: jqLiteAddClass,\n removeClass: jqLiteRemoveClass,\n\n toggleClass(element, selector, condition) {\n if (selector) {\n forEach(selector.split(' '), function(className) {\n var classCondition = condition;\n if (isUndefined(classCondition)) {\n classCondition = !jqLiteHasClass(element, className);\n }\n (classCondition ? jqLiteAddClass : jqLiteRemoveClass)(element, className);\n });\n }\n },\n\n parent(element) {\n var parent = element.parentNode;\n return parent && parent.nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT ? parent : null;\n },\n\n next(element) {\n return element.nextElementSibling;\n },\n\n find(element, selector) {\n if (element.getElementsByTagName) {\n return element.getElementsByTagName(selector);\n } else {\n return [];\n }\n },\n\n clone: jqLiteClone,\n\n triggerHandler(element, event, extraParameters) {\n var dummyEvent;\n var eventFnsCopy;\n var handlerArgs;\n var eventName = event.type || event;\n var expandoStore = jqLiteExpandoStore(element);\n var events = expandoStore && expandoStore.events;\n var eventFns = events && events[eventName];\n\n if (eventFns) {\n // Create a dummy event to pass to the handlers\n dummyEvent = {\n preventDefault() { this.defaultPrevented = true; },\n isDefaultPrevented() { return this.defaultPrevented === true; },\n stopImmediatePropagation() { this.immediatePropagationStopped = true; },\n isImmediatePropagationStopped() { return this.immediatePropagationStopped === true; },\n stopPropagation: noop,\n type: eventName,\n target: element\n };\n\n // If a custom event was provided then extend our dummy event with it\n if (event.type) {\n dummyEvent = extend(dummyEvent, event);\n }\n\n // Copy event handlers in case event handlers array is modified during execution.\n eventFnsCopy = shallowCopy(eventFns);\n handlerArgs = extraParameters ? [dummyEvent].concat(extraParameters) : [dummyEvent];\n\n forEach(eventFnsCopy, function(fn) {\n if (!dummyEvent.isImmediatePropagationStopped()) {\n fn.apply(element, handlerArgs);\n }\n });\n }\n }\n}, function(fn, name) {\n /**\n * chaining functions\n */\n JQLite.prototype[name] = function(arg1, arg2, arg3) {\n var value;\n\n for (var i = 0, ii = this.length; i < ii; i++) {\n if (isUndefined(value)) {\n value = fn(this[i], arg1, arg2, arg3);\n if (isDefined(value)) {\n // any function which returns a value needs to be wrapped\n value = jqLite(value);\n }\n } else {\n jqLiteAddNodes(value, fn(this[i], arg1, arg2, arg3));\n }\n }\n return isDefined(value) ? value : this;\n };\n});\n\n// bind legacy bind/unbind to on/off\nJQLite.prototype.bind = JQLite.prototype.on;\nJQLite.prototype.unbind = JQLite.prototype.off;\n\n\n// Provider for private $$jqLite service\n/** @this */\nfunction $$jqLiteProvider() {\n this.$get = function $$jqLite() {\n return extend(JQLite, {\n hasClass(node, classes) {\n if (node.attr) node = node[0];\n return jqLiteHasClass(node, classes);\n },\n addClass(node, classes) {\n if (node.attr) node = node[0];\n return jqLiteAddClass(node, classes);\n },\n removeClass(node, classes) {\n if (node.attr) node = node[0];\n return jqLiteRemoveClass(node, classes);\n }\n });\n };\n}\n'use strict';\n\n/**\n * Computes a hash of an 'obj'.\n * Hash of a:\n * string is string\n * number is number as string\n * object is either result of calling $$hashKey function on the object or uniquely generated id,\n * that is also assigned to the $$hashKey property of the object.\n *\n * @param obj\n * @returns {string} hash string such that the same input will have the same hash string.\n * The resulting string key is in 'type:hashKey' format.\n */\nfunction hashKey(obj, nextUidFn) {\n var key = obj && obj.$$hashKey;\n\n if (key) {\n if (typeof key === 'function') {\n key = obj.$$hashKey();\n }\n return key;\n }\n\n var objType = typeof obj;\n if (objType === 'function' || (objType === 'object' && obj !== null)) {\n key = obj.$$hashKey = objType + ':' + (nextUidFn || nextUid)();\n } else {\n key = objType + ':' + obj;\n }\n\n return key;\n}\n\nvar NgMap = Map;\nvar $$MapProvider = [/** @this */function() {\n this.$get = [function() {\n return NgMap;\n }];\n}];\n'use strict';\n\n/**\n * @ngdoc function\n * @module ng\n * @name angular.injector\n * @kind function\n *\n * @description\n * Creates an injector object that can be used for retrieving services as well as for\n * dependency injection (see {@link guide/di dependency injection}).\n *\n * @param {Array.} modules A list of module functions or their aliases. See\n * {@link angular.module}. The `ng` module must be explicitly added.\n * @param {boolean=} [strictDi=false] Whether the injector should be in strict mode, which\n * disallows argument name annotation inference.\n * @returns {injector} Injector object. See {@link auto.$injector $injector}.\n *\n * @example\n * Typical usage\n * ```js\n * // create an injector\n * var $injector = angular.injector(['ng']);\n *\n * // use the injector to kick off your application\n * // use the type inference to auto inject arguments, or use implicit injection\n * $injector.invoke(function($rootScope, $compile, $document) {\n * $compile($document)($rootScope);\n * $rootScope.$digest();\n * });\n * ```\n *\n * Sometimes you want to get access to the injector of a currently running AngularJS app\n * from outside AngularJS. Perhaps, you want to inject and compile some markup after the\n * application has been bootstrapped. You can do this using the extra `injector()` added\n * to JQuery/jqLite elements. See {@link angular.element}.\n *\n * *This is fairly rare but could be the case if a third party library is injecting the\n * markup.*\n *\n * In the following example a new block of HTML containing a `ng-controller`\n * directive is added to the end of the document body by JQuery. We then compile and link\n * it into the current AngularJS scope.\n *\n * ```js\n * var $div = $('
{{content.label}}
');\n * $(document.body).append($div);\n *\n * angular.element(document).injector().invoke(function($compile) {\n * var scope = angular.element($div).scope();\n * $compile($div)(scope);\n * });\n * ```\n */\n\n\n/**\n * @ngdoc module\n * @name auto\n * @installation\n * @description\n *\n * Implicit module which gets automatically added to each {@link auto.$injector $injector}.\n */\n\nvar ARROW_ARG = /^([^(]+?)=>/;\nvar FN_ARGS = /^[^(]*\\(\\s*([^)]*)\\)/m;\nvar FN_ARG_SPLIT = /,/;\nvar FN_ARG = /^\\s*(_?)(\\S+?)\\1\\s*$/;\nvar STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/mg;\nvar $injectorMinErr = minErr('$injector');\n\nfunction stringifyFn(fn) {\n return Function.prototype.toString.call(fn);\n}\n\nfunction extractArgs(fn) {\n var fnText = stringifyFn(fn).replace(STRIP_COMMENTS, '');\n var args = fnText.match(ARROW_ARG) || fnText.match(FN_ARGS);\n return args;\n}\n\nfunction anonFn(fn) {\n // For anonymous functions, showing at the very least the function signature can help in\n // debugging.\n var args = extractArgs(fn);\n if (args) {\n return 'function(' + (args[1] || '').replace(/[\\s\\r\\n]+/, ' ') + ')';\n }\n return 'fn';\n}\n\nfunction annotate(fn, strictDi, name) {\n var $inject;\n var argDecl;\n var last;\n\n if (typeof fn === 'function') {\n if (!($inject = fn.$inject)) {\n $inject = [];\n if (fn.length) {\n if (strictDi) {\n if (!isString(name) || !name) {\n name = fn.name || anonFn(fn);\n }\n throw $injectorMinErr('strictdi',\n '{0} is not using explicit annotation and cannot be invoked in strict mode', name);\n }\n argDecl = extractArgs(fn);\n forEach(argDecl[1].split(FN_ARG_SPLIT), function(arg) {\n arg.replace(FN_ARG, function(all, underscore, name) {\n $inject.push(name);\n });\n });\n }\n fn.$inject = $inject;\n }\n } else if (isArray(fn)) {\n last = fn.length - 1;\n assertArgFn(fn[last], 'fn');\n $inject = fn.slice(0, last);\n } else {\n assertArgFn(fn, 'fn', true);\n }\n return $inject;\n}\n\n///////////////////////////////////////\n\n/**\n * @ngdoc service\n * @name $injector\n *\n * @description\n *\n * `$injector` is used to retrieve object instances as defined by\n * {@link auto.$provide provider}, instantiate types, invoke methods,\n * and load modules.\n *\n * The following always holds true:\n *\n * ```js\n * var $injector = angular.injector();\n * expect($injector.get('$injector')).toBe($injector);\n * expect($injector.invoke(function($injector) {\n * return $injector;\n * })).toBe($injector);\n * ```\n *\n * ## Injection Function Annotation\n *\n * JavaScript does not have annotations, and annotations are needed for dependency injection. The\n * following are all valid ways of annotating function with injection arguments and are equivalent.\n *\n * ```js\n * // inferred (only works if code not minified/obfuscated)\n * $injector.invoke(function(serviceA){});\n *\n * // annotated\n * function explicit(serviceA) {};\n * explicit.$inject = ['serviceA'];\n * $injector.invoke(explicit);\n *\n * // inline\n * $injector.invoke(['serviceA', function(serviceA){}]);\n * ```\n *\n * ### Inference\n *\n * In JavaScript calling `toString()` on a function returns the function definition. The definition\n * can then be parsed and the function arguments can be extracted. This method of discovering\n * annotations is disallowed when the injector is in strict mode.\n * *NOTE:* This does not work with minification, and obfuscation tools since these tools change the\n * argument names.\n *\n * ### `$inject` Annotation\n * By adding an `$inject` property onto a function the injection parameters can be specified.\n *\n * ### Inline\n * As an array of injection names, where the last item in the array is the function to call.\n */\n\n/**\n * @ngdoc property\n * @name $injector#modules\n * @type {Object}\n * @description\n * A hash containing all the modules that have been loaded into the\n * $injector.\n *\n * You can use this property to find out information about a module via the\n * {@link angular.Module#info `myModule.info(...)`} method.\n *\n * For example:\n *\n * ```\n * var info = $injector.modules['ngAnimate'].info();\n * ```\n *\n * **Do not use this property to attempt to modify the modules after the application\n * has been bootstrapped.**\n */\n\n\n/**\n * @ngdoc method\n * @name $injector#get\n *\n * @description\n * Return an instance of the service.\n *\n * @param {string} name The name of the instance to retrieve.\n * @param {string=} caller An optional string to provide the origin of the function call for error messages.\n * @return {*} The instance.\n */\n\n/**\n * @ngdoc method\n * @name $injector#invoke\n *\n * @description\n * Invoke the method and supply the method arguments from the `$injector`.\n *\n * @param {Function|Array.} fn The injectable function to invoke. Function parameters are\n * injected according to the {@link guide/di $inject Annotation} rules.\n * @param {Object=} self The `this` for the invoked method.\n * @param {Object=} locals Optional object. If preset then any argument names are read from this\n * object first, before the `$injector` is consulted.\n * @returns {*} the value returned by the invoked `fn` function.\n */\n\n/**\n * @ngdoc method\n * @name $injector#has\n *\n * @description\n * Allows the user to query if the particular service exists.\n *\n * @param {string} name Name of the service to query.\n * @returns {boolean} `true` if injector has given service.\n */\n\n/**\n * @ngdoc method\n * @name $injector#instantiate\n * @description\n * Create a new instance of JS type. The method takes a constructor function, invokes the new\n * operator, and supplies all of the arguments to the constructor function as specified by the\n * constructor annotation.\n *\n * @param {Function} Type Annotated constructor function.\n * @param {Object=} locals Optional object. If preset then any argument names are read from this\n * object first, before the `$injector` is consulted.\n * @returns {Object} new instance of `Type`.\n */\n\n/**\n * @ngdoc method\n * @name $injector#annotate\n *\n * @description\n * Returns an array of service names which the function is requesting for injection. This API is\n * used by the injector to determine which services need to be injected into the function when the\n * function is invoked. There are three ways in which the function can be annotated with the needed\n * dependencies.\n *\n * #### Argument names\n *\n * The simplest form is to extract the dependencies from the arguments of the function. This is done\n * by converting the function into a string using `toString()` method and extracting the argument\n * names.\n * ```js\n * // Given\n * function MyController($scope, $route) {\n * // ...\n * }\n *\n * // Then\n * expect(injector.annotate(MyController)).toEqual(['$scope', '$route']);\n * ```\n *\n * You can disallow this method by using strict injection mode.\n *\n * This method does not work with code minification / obfuscation. For this reason the following\n * annotation strategies are supported.\n *\n * #### The `$inject` property\n *\n * If a function has an `$inject` property and its value is an array of strings, then the strings\n * represent names of services to be injected into the function.\n * ```js\n * // Given\n * var MyController = function(obfuscatedScope, obfuscatedRoute) {\n * // ...\n * }\n * // Define function dependencies\n * MyController['$inject'] = ['$scope', '$route'];\n *\n * // Then\n * expect(injector.annotate(MyController)).toEqual(['$scope', '$route']);\n * ```\n *\n * #### The array notation\n *\n * It is often desirable to inline Injected functions and that's when setting the `$inject` property\n * is very inconvenient. In these situations using the array notation to specify the dependencies in\n * a way that survives minification is a better choice:\n *\n * ```js\n * // We wish to write this (not minification / obfuscation safe)\n * injector.invoke(function($compile, $rootScope) {\n * // ...\n * });\n *\n * // We are forced to write break inlining\n * var tmpFn = function(obfuscatedCompile, obfuscatedRootScope) {\n * // ...\n * };\n * tmpFn.$inject = ['$compile', '$rootScope'];\n * injector.invoke(tmpFn);\n *\n * // To better support inline function the inline annotation is supported\n * injector.invoke(['$compile', '$rootScope', function(obfCompile, obfRootScope) {\n * // ...\n * }]);\n *\n * // Therefore\n * expect(injector.annotate(\n * ['$compile', '$rootScope', function(obfus_$compile, obfus_$rootScope) {}])\n * ).toEqual(['$compile', '$rootScope']);\n * ```\n *\n * @param {Function|Array.} fn Function for which dependent service names need to\n * be retrieved as described above.\n *\n * @param {boolean=} [strictDi=false] Disallow argument name annotation inference.\n *\n * @returns {Array.} The names of the services which the function requires.\n */\n/**\n * @ngdoc method\n * @name $injector#loadNewModules\n *\n * @description\n *\n * **This is a dangerous API, which you use at your own risk!**\n *\n * Add the specified modules to the current injector.\n *\n * This method will add each of the injectables to the injector and execute all of the config and run\n * blocks for each module passed to the method.\n *\n * If a module has already been loaded into the injector then it will not be loaded again.\n *\n * * The application developer is responsible for loading the code containing the modules; and for\n * ensuring that lazy scripts are not downloaded and executed more often that desired.\n * * Previously compiled HTML will not be affected by newly loaded directives, filters and components.\n * * Modules cannot be unloaded.\n *\n * You can use {@link $injector#modules `$injector.modules`} to check whether a module has been loaded\n * into the injector, which may indicate whether the script has been executed already.\n *\n * @example\n * Here is an example of loading a bundle of modules, with a utility method called `getScript`:\n *\n * ```javascript\n * app.factory('loadModule', function($injector) {\n * return function loadModule(moduleName, bundleUrl) {\n * return getScript(bundleUrl).then(function() { $injector.loadNewModules([moduleName]); });\n * };\n * })\n * ```\n *\n * @param {Array=} mods an array of modules to load into the application.\n * Each item in the array should be the name of a predefined module or a (DI annotated)\n * function that will be invoked by the injector as a `config` block.\n * See: {@link angular.module modules}\n */\n\n\n/**\n * @ngdoc service\n * @name $provide\n *\n * @description\n *\n * The {@link auto.$provide $provide} service has a number of methods for registering components\n * with the {@link auto.$injector $injector}. Many of these functions are also exposed on\n * {@link angular.Module}.\n *\n * An AngularJS **service** is a singleton object created by a **service factory**. These **service\n * factories** are functions which, in turn, are created by a **service provider**.\n * The **service providers** are constructor functions. When instantiated they must contain a\n * property called `$get`, which holds the **service factory** function.\n *\n * When you request a service, the {@link auto.$injector $injector} is responsible for finding the\n * correct **service provider**, instantiating it and then calling its `$get` **service factory**\n * function to get the instance of the **service**.\n *\n * Often services have no configuration options and there is no need to add methods to the service\n * provider. The provider will be no more than a constructor function with a `$get` property. For\n * these cases the {@link auto.$provide $provide} service has additional helper methods to register\n * services without specifying a provider.\n *\n * * {@link auto.$provide#provider provider(name, provider)} - registers a **service provider** with the\n * {@link auto.$injector $injector}\n * * {@link auto.$provide#constant constant(name, obj)} - registers a value/object that can be accessed by\n * providers and services.\n * * {@link auto.$provide#value value(name, obj)} - registers a value/object that can only be accessed by\n * services, not providers.\n * * {@link auto.$provide#factory factory(name, fn)} - registers a service **factory function**\n * that will be wrapped in a **service provider** object, whose `$get` property will contain the\n * given factory function.\n * * {@link auto.$provide#service service(name, Fn)} - registers a **constructor function**\n * that will be wrapped in a **service provider** object, whose `$get` property will instantiate\n * a new object using the given constructor function.\n * * {@link auto.$provide#decorator decorator(name, decorFn)} - registers a **decorator function** that\n * will be able to modify or replace the implementation of another service.\n *\n * See the individual methods for more information and examples.\n */\n\n/**\n * @ngdoc method\n * @name $provide#provider\n * @description\n *\n * Register a **provider function** with the {@link auto.$injector $injector}. Provider functions\n * are constructor functions, whose instances are responsible for \"providing\" a factory for a\n * service.\n *\n * Service provider names start with the name of the service they provide followed by `Provider`.\n * For example, the {@link ng.$log $log} service has a provider called\n * {@link ng.$logProvider $logProvider}.\n *\n * Service provider objects can have additional methods which allow configuration of the provider\n * and its service. Importantly, you can configure what kind of service is created by the `$get`\n * method, or how that service will act. For example, the {@link ng.$logProvider $logProvider} has a\n * method {@link ng.$logProvider#debugEnabled debugEnabled}\n * which lets you specify whether the {@link ng.$log $log} service will log debug messages to the\n * console or not.\n *\n * It is possible to inject other providers into the provider function,\n * but the injected provider must have been defined before the one that requires it.\n *\n * @param {string} name The name of the instance. NOTE: the provider will be available under `name +\n 'Provider'` key.\n * @param {(Object|function())} provider If the provider is:\n *\n * - `Object`: then it should have a `$get` method. The `$get` method will be invoked using\n * {@link auto.$injector#invoke $injector.invoke()} when an instance needs to be created.\n * - `Constructor`: a new instance of the provider will be created using\n * {@link auto.$injector#instantiate $injector.instantiate()}, then treated as `object`.\n *\n * @returns {Object} registered provider instance\n\n * @example\n *\n * The following example shows how to create a simple event tracking service and register it using\n * {@link auto.$provide#provider $provide.provider()}.\n *\n * ```js\n * // Define the eventTracker provider\n * function EventTrackerProvider() {\n * var trackingUrl = '/track';\n *\n * // A provider method for configuring where the tracked events should been saved\n * this.setTrackingUrl = function(url) {\n * trackingUrl = url;\n * };\n *\n * // The service factory function\n * this.$get = ['$http', function($http) {\n * var trackedEvents = {};\n * return {\n * // Call this to track an event\n * event: function(event) {\n * var count = trackedEvents[event] || 0;\n * count += 1;\n * trackedEvents[event] = count;\n * return count;\n * },\n * // Call this to save the tracked events to the trackingUrl\n * save: function() {\n * $http.post(trackingUrl, trackedEvents);\n * }\n * };\n * }];\n * }\n *\n * describe('eventTracker', function() {\n * var postSpy;\n *\n * beforeEach(module(function($provide) {\n * // Register the eventTracker provider\n * $provide.provider('eventTracker', EventTrackerProvider);\n * }));\n *\n * beforeEach(module(function(eventTrackerProvider) {\n * // Configure eventTracker provider\n * eventTrackerProvider.setTrackingUrl('/custom-track');\n * }));\n *\n * it('tracks events', inject(function(eventTracker) {\n * expect(eventTracker.event('login')).toEqual(1);\n * expect(eventTracker.event('login')).toEqual(2);\n * }));\n *\n * it('saves to the tracking url', inject(function(eventTracker, $http) {\n * postSpy = spyOn($http, 'post');\n * eventTracker.event('login');\n * eventTracker.save();\n * expect(postSpy).toHaveBeenCalled();\n * expect(postSpy.mostRecentCall.args[0]).not.toEqual('/track');\n * expect(postSpy.mostRecentCall.args[0]).toEqual('/custom-track');\n * expect(postSpy.mostRecentCall.args[1]).toEqual({ 'login': 1 });\n * }));\n * });\n * ```\n */\n\n/**\n * @ngdoc method\n * @name $provide#factory\n * @description\n *\n * Register a **service factory**, which will be called to return the service instance.\n * This is short for registering a service where its provider consists of only a `$get` property,\n * which is the given service factory function.\n * You should use {@link auto.$provide#factory $provide.factory(getFn)} if you do not need to\n * configure your service in a provider.\n *\n * @param {string} name The name of the instance.\n * @param {Function|Array.} $getFn The injectable $getFn for the instance creation.\n * Internally this is a short hand for `$provide.provider(name, {$get: $getFn})`.\n * @returns {Object} registered provider instance\n *\n * @example\n * Here is an example of registering a service\n * ```js\n * $provide.factory('ping', ['$http', function($http) {\n * return function ping() {\n * return $http.send('/ping');\n * };\n * }]);\n * ```\n * You would then inject and use this service like this:\n * ```js\n * someModule.controller('Ctrl', ['ping', function(ping) {\n * ping();\n * }]);\n * ```\n */\n\n\n/**\n * @ngdoc method\n * @name $provide#service\n * @description\n *\n * Register a **service constructor**, which will be invoked with `new` to create the service\n * instance.\n * This is short for registering a service where its provider's `$get` property is a factory\n * function that returns an instance instantiated by the injector from the service constructor\n * function.\n *\n * Internally it looks a bit like this:\n *\n * ```\n * {\n * $get: function() {\n * return $injector.instantiate(constructor);\n * }\n * }\n * ```\n *\n *\n * You should use {@link auto.$provide#service $provide.service(class)} if you define your service\n * as a type/class.\n *\n * @param {string} name The name of the instance.\n * @param {Function|Array.} constructor An injectable class (constructor function)\n * that will be instantiated.\n * @returns {Object} registered provider instance\n *\n * @example\n * Here is an example of registering a service using\n * {@link auto.$provide#service $provide.service(class)}.\n * ```js\n * var Ping = function($http) {\n * this.$http = $http;\n * };\n *\n * Ping.$inject = ['$http'];\n *\n * Ping.prototype.send = function() {\n * return this.$http.get('/ping');\n * };\n * $provide.service('ping', Ping);\n * ```\n * You would then inject and use this service like this:\n * ```js\n * someModule.controller('Ctrl', ['ping', function(ping) {\n * ping.send();\n * }]);\n * ```\n */\n\n\n/**\n * @ngdoc method\n * @name $provide#value\n * @description\n *\n * Register a **value service** with the {@link auto.$injector $injector}, such as a string, a\n * number, an array, an object or a function. This is short for registering a service where its\n * provider's `$get` property is a factory function that takes no arguments and returns the **value\n * service**. That also means it is not possible to inject other services into a value service.\n *\n * Value services are similar to constant services, except that they cannot be injected into a\n * module configuration function (see {@link angular.Module#config}) but they can be overridden by\n * an AngularJS {@link auto.$provide#decorator decorator}.\n *\n * @param {string} name The name of the instance.\n * @param {*} value The value.\n * @returns {Object} registered provider instance\n *\n * @example\n * Here are some examples of creating value services.\n * ```js\n * $provide.value('ADMIN_USER', 'admin');\n *\n * $provide.value('RoleLookup', { admin: 0, writer: 1, reader: 2 });\n *\n * $provide.value('halfOf', function(value) {\n * return value / 2;\n * });\n * ```\n */\n\n\n/**\n * @ngdoc method\n * @name $provide#constant\n * @description\n *\n * Register a **constant service** with the {@link auto.$injector $injector}, such as a string,\n * a number, an array, an object or a function. Like the {@link auto.$provide#value value}, it is not\n * possible to inject other services into a constant.\n *\n * But unlike {@link auto.$provide#value value}, a constant can be\n * injected into a module configuration function (see {@link angular.Module#config}) and it cannot\n * be overridden by an AngularJS {@link auto.$provide#decorator decorator}.\n *\n * @param {string} name The name of the constant.\n * @param {*} value The constant value.\n * @returns {Object} registered instance\n *\n * @example\n * Here a some examples of creating constants:\n * ```js\n * $provide.constant('SHARD_HEIGHT', 306);\n *\n * $provide.constant('MY_COLOURS', ['red', 'blue', 'grey']);\n *\n * $provide.constant('double', function(value) {\n * return value * 2;\n * });\n * ```\n */\n\n\n/**\n * @ngdoc method\n * @name $provide#decorator\n * @description\n *\n * Register a **decorator function** with the {@link auto.$injector $injector}. A decorator function\n * intercepts the creation of a service, allowing it to override or modify the behavior of the\n * service. The return value of the decorator function may be the original service, or a new service\n * that replaces (or wraps and delegates to) the original service.\n *\n * You can find out more about using decorators in the {@link guide/decorators} guide.\n *\n * @param {string} name The name of the service to decorate.\n * @param {Function|Array.} decorator This function will be invoked when the service needs to be\n * provided and should return the decorated service instance. The function is called using\n * the {@link auto.$injector#invoke injector.invoke} method and is therefore fully injectable.\n * Local injection arguments:\n *\n * * `$delegate` - The original service instance, which can be replaced, monkey patched, configured,\n * decorated or delegated to.\n *\n * @example\n * Here we decorate the {@link ng.$log $log} service to convert warnings to errors by intercepting\n * calls to {@link ng.$log#error $log.warn()}.\n * ```js\n * $provide.decorator('$log', ['$delegate', function($delegate) {\n * $delegate.warn = $delegate.error;\n * return $delegate;\n * }]);\n * ```\n */\n\n\nfunction createInjector(modulesToLoad, strictDi) {\n strictDi = (strictDi === true);\n var INSTANTIATING = {};\n var providerSuffix = 'Provider';\n var path = [];\n var loadedModules = new NgMap();\n\n var providerCache = {\n $provide: {\n provider: supportObject(provider),\n factory: supportObject(factory),\n service: supportObject(service),\n value: supportObject(value),\n constant: supportObject(constant),\n decorator: decorator\n }\n };\n\n var providerInjector = (providerCache.$injector =\n createInternalInjector(providerCache, function(serviceName, caller) {\n if (angular.isString(caller)) {\n path.push(caller);\n }\n throw $injectorMinErr('unpr', 'Unknown provider: {0}', path.join(' <- '));\n }));\n\n var instanceCache = {};\n\n var protoInstanceInjector =\n createInternalInjector(instanceCache, function(serviceName, caller) {\n var provider = providerInjector.get(serviceName + providerSuffix, caller);\n return instanceInjector.invoke(\n provider.$get, provider, undefined, serviceName);\n });\n\n var instanceInjector = protoInstanceInjector;\n\n providerCache['$injector' + providerSuffix] = { $get: valueFn(protoInstanceInjector) };\n instanceInjector.modules = providerInjector.modules = createMap();\n var runBlocks = loadModules(modulesToLoad);\n instanceInjector = protoInstanceInjector.get('$injector');\n instanceInjector.strictDi = strictDi;\n forEach(runBlocks, function(fn) { if (fn) instanceInjector.invoke(fn); });\n\n instanceInjector.loadNewModules = function(mods) {\n forEach(loadModules(mods), function(fn) { if (fn) instanceInjector.invoke(fn); });\n };\n\n\n return instanceInjector;\n\n ////////////////////////////////////\n // $provider\n ////////////////////////////////////\n\n function supportObject(delegate) {\n return function(key, value) {\n if (isObject(key)) {\n forEach(key, reverseParams(delegate));\n } else {\n return delegate(key, value);\n }\n };\n }\n\n function provider(name, provider_) {\n assertNotHasOwnProperty(name, 'service');\n if (isFunction(provider_) || isArray(provider_)) {\n provider_ = providerInjector.instantiate(provider_);\n }\n if (!provider_.$get) {\n throw $injectorMinErr('pget', 'Provider \\'{0}\\' must define $get factory method.', name);\n }\n return (providerCache[name + providerSuffix] = provider_);\n }\n\n function enforceReturnValue(name, factory) {\n return /** @this */ function enforcedReturnValue() {\n var result = instanceInjector.invoke(factory, this);\n if (isUndefined(result)) {\n throw $injectorMinErr('undef', 'Provider \\'{0}\\' must return a value from $get factory method.', name);\n }\n return result;\n };\n }\n\n function factory(name, factoryFn, enforce) {\n return provider(name, {\n $get: enforce !== false ? enforceReturnValue(name, factoryFn) : factoryFn\n });\n }\n\n function service(name, constructor) {\n return factory(name, ['$injector', function($injector) {\n return $injector.instantiate(constructor);\n }]);\n }\n\n function value(name, val) { return factory(name, valueFn(val), false); }\n\n function constant(name, value) {\n assertNotHasOwnProperty(name, 'constant');\n providerCache[name] = value;\n instanceCache[name] = value;\n }\n\n function decorator(serviceName, decorFn) {\n var origProvider = providerInjector.get(serviceName + providerSuffix);\n var orig$get = origProvider.$get;\n\n origProvider.$get = function() {\n var origInstance = instanceInjector.invoke(orig$get, origProvider);\n return instanceInjector.invoke(decorFn, null, {$delegate: origInstance});\n };\n }\n\n ////////////////////////////////////\n // Module Loading\n ////////////////////////////////////\n function loadModules(modulesToLoad) {\n assertArg(isUndefined(modulesToLoad) || isArray(modulesToLoad), 'modulesToLoad', 'not an array');\n var runBlocks = [];\n var moduleFn;\n forEach(modulesToLoad, function(module) {\n if (loadedModules.get(module)) return;\n loadedModules.set(module, true);\n\n function runInvokeQueue(queue) {\n var i;\n var ii;\n for (i = 0, ii = queue.length; i < ii; i++) {\n var invokeArgs = queue[i];\n var provider = providerInjector.get(invokeArgs[0]);\n\n provider[invokeArgs[1]](...invokeArgs[2]);\n }\n }\n\n try {\n if (isString(module)) {\n moduleFn = angularModule(module);\n instanceInjector.modules[module] = moduleFn;\n runBlocks = runBlocks.concat(loadModules(moduleFn.requires)).concat(moduleFn._runBlocks);\n runInvokeQueue(moduleFn._invokeQueue);\n runInvokeQueue(moduleFn._configBlocks);\n } else if (isFunction(module)) {\n runBlocks.push(providerInjector.invoke(module));\n } else if (isArray(module)) {\n runBlocks.push(providerInjector.invoke(module));\n } else {\n assertArgFn(module, 'module');\n }\n } catch (e) {\n if (isArray(module)) {\n module = module[module.length - 1];\n }\n if (e.message && e.stack && !e.stack.includes(e.message)) {\n // Safari & FF's stack traces don't contain error.message content\n // unlike those of Chrome and IE\n // So if stack doesn't contain message, we create a new string that contains both.\n // Since error.stack is read-only in Safari, I'm overriding e and not e.stack here.\n // eslint-disable-next-line no-ex-assign\n e = e.message + '\\n' + e.stack;\n }\n throw $injectorMinErr('modulerr', 'Failed to instantiate module {0} due to:\\n{1}',\n module, e.stack || e.message || e);\n }\n });\n return runBlocks;\n }\n\n ////////////////////////////////////\n // internal Injector\n ////////////////////////////////////\n\n function createInternalInjector(cache, factory) {\n\n function getService(serviceName, caller) {\n if (cache.hasOwnProperty(serviceName)) {\n if (cache[serviceName] === INSTANTIATING) {\n throw $injectorMinErr('cdep', 'Circular dependency found: {0}',\n serviceName + ' <- ' + path.join(' <- '));\n }\n return cache[serviceName];\n } else {\n try {\n path.unshift(serviceName);\n cache[serviceName] = INSTANTIATING;\n cache[serviceName] = factory(serviceName, caller);\n return cache[serviceName];\n } catch (err) {\n if (cache[serviceName] === INSTANTIATING) {\n delete cache[serviceName];\n }\n throw err;\n } finally {\n path.shift();\n }\n }\n }\n\n\n function injectionArgs(fn, locals, serviceName) {\n var args = [];\n var $inject = createInjector.$$annotate(fn, strictDi, serviceName);\n\n for (var i = 0, length = $inject.length; i < length; i++) {\n var key = $inject[i];\n if (typeof key !== 'string') {\n throw $injectorMinErr('itkn',\n 'Incorrect injection token! Expected service name as string, got {0}', key);\n }\n args.push(locals && locals.hasOwnProperty(key) ? locals[key] :\n getService(key, serviceName));\n }\n return args;\n }\n\n function isClass(func) {\n if (typeof func !== 'function') {\n return false;\n }\n var result = func.$$ngIsClass;\n if (!isBoolean(result)) {\n // Support: Edge 12-13 only\n // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/6156135/\n result = func.$$ngIsClass = /^(?:class\\b|constructor\\()/.test(stringifyFn(func));\n }\n return result;\n }\n\n function invoke(fn, self, locals, serviceName) {\n if (typeof locals === 'string') {\n serviceName = locals;\n locals = null;\n }\n\n var args = injectionArgs(fn, locals, serviceName);\n if (isArray(fn)) {\n fn = fn[fn.length - 1];\n }\n\n if (!isClass(fn)) {\n // http://jsperf.com/angularjs-invoke-apply-vs-switch\n // #5388\n return fn.apply(self, args);\n } else {\n args.unshift(null);\n compilationBindings.current = self;\n\n var instance = new (Function.prototype.bind.apply(fn, args))();\n compilationBindings.current = null;\n\n return instance;\n }\n }\n\n\n function instantiate(Type, locals, serviceName) {\n // Check if Type is annotated and use just the given function at n-1 as parameter\n // e.g. someModule.factory('greeter', ['$window', function(renamed$window) {}]);\n var ctor = (isArray(Type) ? Type[Type.length - 1] : Type);\n var args = injectionArgs(Type, locals, serviceName);\n // Empty object at position 0 is ignored for invocation with `new`, but required.\n args.unshift(null);\n return new (Function.prototype.bind.apply(ctor, args))();\n }\n\n\n return {\n invoke: invoke,\n instantiate: instantiate,\n get: getService,\n annotate: createInjector.$$annotate,\n has(name) {\n return providerCache.hasOwnProperty(name + providerSuffix) || cache.hasOwnProperty(name);\n }\n };\n }\n}\n\ncreateInjector.$$annotate = annotate;\n'use strict';\n\n/**\n * @ngdoc provider\n * @name $anchorScrollProvider\n * @this\n *\n * @description\n * Use `$anchorScrollProvider` to disable automatic scrolling whenever\n * {@link ng.$location#hash $location.hash()} changes.\n */\nfunction $AnchorScrollProvider() {\n\n var autoScrollingEnabled = true;\n\n /**\n * @ngdoc method\n * @name $anchorScrollProvider#disableAutoScrolling\n *\n * @description\n * By default, {@link ng.$anchorScroll $anchorScroll()} will automatically detect changes to\n * {@link ng.$location#hash $location.hash()} and scroll to the element matching the new hash.
\n * Use this method to disable automatic scrolling.\n *\n * If automatic scrolling is disabled, one must explicitly call\n * {@link ng.$anchorScroll $anchorScroll()} in order to scroll to the element related to the\n * current hash.\n */\n this.disableAutoScrolling = function() {\n autoScrollingEnabled = false;\n };\n\n /**\n * @ngdoc service\n * @name $anchorScroll\n * @kind function\n * @requires $window\n * @requires $location\n * @requires $rootScope\n *\n * @description\n * When called, it scrolls to the element related to the specified `hash` or (if omitted) to the\n * current value of {@link ng.$location#hash $location.hash()}, according to the rules specified\n * in the\n * [HTML5 spec](http://www.w3.org/html/wg/drafts/html/master/browsers.html#an-indicated-part-of-the-document).\n *\n * It also watches the {@link ng.$location#hash $location.hash()} and automatically scrolls to\n * match any anchor whenever it changes. This can be disabled by calling\n * {@link ng.$anchorScrollProvider#disableAutoScrolling $anchorScrollProvider.disableAutoScrolling()}.\n *\n * Additionally, you can use its {@link ng.$anchorScroll#yOffset yOffset} property to specify a\n * vertical scroll-offset (either fixed or dynamic).\n *\n * @param {string=} hash The hash specifying the element to scroll to. If omitted, the value of\n * {@link ng.$location#hash $location.hash()} will be used.\n *\n * @property {(number|function|jqLite)} yOffset\n * If set, specifies a vertical scroll-offset. This is often useful when there are fixed\n * positioned elements at the top of the page, such as navbars, headers etc.\n *\n * `yOffset` can be specified in various ways:\n * - **number**: A fixed number of pixels to be used as offset.

\n * - **function**: A getter function called everytime `$anchorScroll()` is executed. Must return\n * a number representing the offset (in pixels).

\n * - **jqLite**: A jqLite/jQuery element to be used for specifying the offset. The distance from\n * the top of the page to the element's bottom will be used as offset.
\n * **Note**: The element will be taken into account only as long as its `position` is set to\n * `fixed`. This option is useful, when dealing with responsive navbars/headers that adjust\n * their height and/or positioning according to the viewport's size.\n *\n *
\n *
\n * In order for `yOffset` to work properly, scrolling should take place on the document's root and\n * not some child element.\n *
\n *\n * @example\n \n \n
\n Go to bottom\n You're at the bottom!\n
\n
\n \n angular.module('anchorScrollExample', [])\n .controller('ScrollController', ['$scope', '$location', '$anchorScroll',\n function($scope, $location, $anchorScroll) {\n $scope.gotoBottom = function() {\n // set the location.hash to the id of\n // the element you wish to scroll to.\n $location.hash('bottom');\n\n // call $anchorScroll()\n $anchorScroll();\n };\n }]);\n \n \n #scrollArea {\n height: 280px;\n overflow: auto;\n }\n\n #bottom {\n display: block;\n margin-top: 2000px;\n }\n \n
\n *\n *
\n * The example below illustrates the use of a vertical scroll-offset (specified as a fixed value).\n * See {@link ng.$anchorScroll#yOffset $anchorScroll.yOffset} for more details.\n *\n * @example\n \n \n \n
\n Anchor {{x}} of 5\n
\n
\n \n angular.module('anchorScrollOffsetExample', [])\n .run(['$anchorScroll', function($anchorScroll) {\n $anchorScroll.yOffset = 50; // always scroll by 50 extra pixels\n }])\n .controller('headerCtrl', ['$anchorScroll', '$location', '$scope',\n function($anchorScroll, $location, $scope) {\n $scope.gotoAnchor = function(x) {\n var newHash = 'anchor' + x;\n if ($location.hash() !== newHash) {\n // set the $location.hash to `newHash` and\n // $anchorScroll will automatically scroll to it\n $location.hash('anchor' + x);\n } else {\n // call $anchorScroll() explicitly,\n // since $location.hash hasn't changed\n $anchorScroll();\n }\n };\n }\n ]);\n \n \n body {\n padding-top: 50px;\n }\n\n .anchor {\n border: 2px dashed DarkOrchid;\n padding: 10px 10px 200px 10px;\n }\n\n .fixed-header {\n background-color: rgba(0, 0, 0, 0.2);\n height: 50px;\n position: fixed;\n top: 0; left: 0; right: 0;\n }\n\n .fixed-header > a {\n display: inline-block;\n margin: 5px 15px;\n }\n \n
\n */\n this.$get = ['$window', '$location', '$rootScope', function($window, $location, $rootScope) {\n var document = $window.document;\n\n // Helper function to get first anchor from a NodeList\n // (using `Array#some()` instead of `angular#forEach()` since it's more performant\n // and working in all supported browsers.)\n function getFirstAnchor(list) {\n var result = null;\n Array.prototype.some.call(list, function(element) {\n if (nodeName_(element) === 'a') {\n result = element;\n return true;\n }\n });\n return result;\n }\n\n function getYOffset() {\n\n var offset = scroll.yOffset;\n\n if (isFunction(offset)) {\n offset = offset();\n } else if (isElement(offset)) {\n var elem = offset[0];\n var style = $window.getComputedStyle(elem);\n if (style.position !== 'fixed') {\n offset = 0;\n } else {\n offset = elem.getBoundingClientRect().bottom;\n }\n } else if (!isNumber(offset)) {\n offset = 0;\n }\n\n return offset;\n }\n\n function scrollTo(elem) {\n if (elem) {\n elem.scrollIntoView();\n\n var offset = getYOffset();\n\n if (offset) {\n // `offset` is the number of pixels we should scroll UP in order to align `elem` properly.\n // This is true ONLY if the call to `elem.scrollIntoView()` initially aligns `elem` at the\n // top of the viewport.\n //\n // IF the number of pixels from the top of `elem` to the end of the page's content is less\n // than the height of the viewport, then `elem.scrollIntoView()` will align the `elem` some\n // way down the page.\n //\n // This is often the case for elements near the bottom of the page.\n //\n // In such cases we do not need to scroll the whole `offset` up, just the difference between\n // the top of the element and the offset, which is enough to align the top of `elem` at the\n // desired position.\n var elemTop = elem.getBoundingClientRect().top;\n $window.scrollBy(0, elemTop - offset);\n }\n } else {\n $window.scrollTo(0, 0);\n }\n }\n\n function scroll(hash) {\n // Allow numeric hashes\n hash = isString(hash) ? hash : isNumber(hash) ? hash.toString() : $location.hash();\n var elm;\n\n // empty hash, scroll to the top of the page\n if (!hash) scrollTo(null);\n\n // element with given id\n else if ((elm = document.getElementById(hash))) scrollTo(elm);\n\n // first anchor with given name :-D\n else if ((elm = getFirstAnchor(document.getElementsByName(hash)))) scrollTo(elm);\n\n // no element and hash === 'top', scroll to the top of the page\n else if (hash === 'top') scrollTo(null);\n }\n\n // does not scroll when user clicks on anchor link that is currently on\n // (no url change, no $location.hash() change), browser native does scroll\n if (autoScrollingEnabled) {\n $rootScope.$watch(function autoScrollWatch() {return $location.hash();},\n function autoScrollWatchAction(newVal, oldVal) {\n // skip the initial scroll if $location.hash is empty\n if (newVal === oldVal && newVal === '') return;\n\n jqLiteDocumentLoaded(function() {\n $rootScope.$evalAsync(scroll);\n });\n });\n }\n\n return scroll;\n }];\n}\n'use strict';\n\nvar $animateMinErr = minErr('$animate');\nvar ELEMENT_NODE = 1;\nvar NG_ANIMATE_CLASSNAME = 'ng-animate';\n\nfunction mergeClasses(a,b) {\n if (!a && !b) return '';\n if (!a) return b;\n if (!b) return a;\n if (isArray(a)) a = a.join(' ');\n if (isArray(b)) b = b.join(' ');\n return a + ' ' + b;\n}\n\nfunction extractElementNode(element) {\n for (var i = 0; i < element.length; i++) {\n var elm = element[i];\n if (elm.nodeType === ELEMENT_NODE) {\n return elm;\n }\n }\n}\n\nfunction splitClasses(classes) {\n if (isString(classes)) {\n classes = classes.split(' ');\n }\n\n // Use createMap() to prevent class assumptions involving property names in\n // Object.prototype\n var obj = createMap();\n forEach(classes, function(klass) {\n // sometimes the split leaves empty string values\n // incase extra spaces were applied to the options\n if (klass.length) {\n obj[klass] = true;\n }\n });\n return obj;\n}\n\n// if any other type of options value besides an Object value is\n// passed into the $animate.method() animation then this helper code\n// will be run which will ignore it. While this patch is not the\n// greatest solution to this, a lot of existing plugins depend on\n// $animate to either call the callback (< 1.2) or return a promise\n// that can be changed. This helper function ensures that the options\n// are wiped clean incase a callback function is provided.\nfunction prepareAnimateOptions(options) {\n return isObject(options)\n ? options\n : {};\n}\n\nvar $$CoreAnimateJsProvider = /** @this */ function() {\n this.$get = noop;\n};\n\n// this is prefixed with Core since it conflicts with\n// the animateQueueProvider defined in ngAnimate/animateQueue.js\nvar $$CoreAnimateQueueProvider = /** @this */ function() {\n var postDigestQueue = new NgMap();\n var postDigestElements = [];\n\n this.$get = ['$$AnimateRunner', '$rootScope',\n function($$AnimateRunner, $rootScope) {\n return {\n enabled: noop,\n on: noop,\n off: noop,\n pin: noop,\n\n push(element, event, options, domOperation) {\n if (domOperation) {\n domOperation();\n }\n\n options = options || {};\n if (options.from) {\n element.css(options.from);\n }\n if (options.to) {\n element.css(options.to);\n }\n\n if (options.addClass || options.removeClass) {\n addRemoveClassesPostDigest(element, options.addClass, options.removeClass);\n }\n\n var runner = new $$AnimateRunner();\n\n // since there are no animations to run the runner needs to be\n // notified that the animation call is complete.\n runner.complete();\n return runner;\n }\n };\n\n\n function updateData(data, classes, value) {\n var changed = false;\n if (classes) {\n classes = isString(classes) ? classes.split(' ') :\n isArray(classes) ? classes : [];\n forEach(classes, function(className) {\n if (className) {\n changed = true;\n data[className] = value;\n }\n });\n }\n return changed;\n }\n\n function handleCSSClassChanges() {\n forEach(postDigestElements, function(element) {\n var data = postDigestQueue.get(element);\n if (data) {\n var existing = splitClasses(element.attr('class'));\n var toAdd = '';\n var toRemove = '';\n forEach(data, function(status, className) {\n var hasClass = !!existing[className];\n if (status !== hasClass) {\n if (status) {\n toAdd += (toAdd.length ? ' ' : '') + className;\n } else {\n toRemove += (toRemove.length ? ' ' : '') + className;\n }\n }\n });\n\n forEach(element, function(elm) {\n if (toAdd) {\n jqLiteAddClass(elm, toAdd);\n }\n if (toRemove) {\n jqLiteRemoveClass(elm, toRemove);\n }\n });\n postDigestQueue.delete(element);\n }\n });\n postDigestElements.length = 0;\n }\n\n\n function addRemoveClassesPostDigest(element, add, remove) {\n var data = postDigestQueue.get(element) || {};\n\n var classesAdded = updateData(data, add, true);\n var classesRemoved = updateData(data, remove, false);\n\n if (classesAdded || classesRemoved) {\n\n postDigestQueue.set(element, data);\n postDigestElements.push(element);\n\n if (postDigestElements.length === 1) {\n $rootScope.$$postDigest(handleCSSClassChanges);\n }\n }\n }\n }];\n};\n\n/**\n * @ngdoc provider\n * @name $animateProvider\n *\n * @description\n * Default implementation of $animate that doesn't perform any animations, instead just\n * synchronously performs DOM updates and resolves the returned runner promise.\n *\n * In order to enable animations the `ngAnimate` module has to be loaded.\n *\n * To see the functional implementation check out `src/ngAnimate/animate.js`.\n */\nvar $AnimateProvider = ['$provide', /** @this */ function($provide) {\n var provider = this;\n var classNameFilter = null;\n var customFilter = null;\n\n this.$$registeredAnimations = Object.create(null);\n\n /**\n * @ngdoc method\n * @name $animateProvider#register\n *\n * @description\n * Registers a new injectable animation factory function. The factory function produces the\n * animation object which contains callback functions for each event that is expected to be\n * animated.\n *\n * * `eventFn`: `function(element, ... , doneFunction, options)`\n * The element to animate, the `doneFunction` and the options fed into the animation. Depending\n * on the type of animation additional arguments will be injected into the animation function. The\n * list below explains the function signatures for the different animation methods:\n *\n * - setClass: function(element, addedClasses, removedClasses, doneFunction, options)\n * - addClass: function(element, addedClasses, doneFunction, options)\n * - removeClass: function(element, removedClasses, doneFunction, options)\n * - enter, leave, move: function(element, doneFunction, options)\n * - animate: function(element, fromStyles, toStyles, doneFunction, options)\n *\n * Make sure to trigger the `doneFunction` once the animation is fully complete.\n *\n * ```js\n * return {\n * //enter, leave, move signature\n * eventFn : function(element, done, options) {\n * //code to run the animation\n * //once complete, then run done()\n * return function endFunction(wasCancelled) {\n * //code to cancel the animation\n * }\n * }\n * }\n * ```\n *\n * @param {string} name The name of the animation (this is what the class-based CSS value will be compared to).\n * @param {Function} factory The factory function that will be executed to return the animation\n * object.\n */\n this.register = function(name, factory) {\n if (name && name.charAt(0) !== '.') {\n throw $animateMinErr('notcsel', 'Expecting class selector starting with \\'.\\' got \\'{0}\\'.', name);\n }\n\n var key = name + '-animation';\n provider.$$registeredAnimations[name.substr(1)] = key;\n $provide.factory(key, factory);\n };\n\n /**\n * @ngdoc method\n * @name $animateProvider#customFilter\n *\n * @description\n * Sets and/or returns the custom filter function that is used to \"filter\" animations, i.e.\n * determine if an animation is allowed or not. When no filter is specified (the default), no\n * animation will be blocked. Setting the `customFilter` value will only allow animations for\n * which the filter function's return value is truthy.\n *\n * This allows to easily create arbitrarily complex rules for filtering animations, such as\n * allowing specific events only, or enabling animations on specific subtrees of the DOM, etc.\n * Filtering animations can also boost performance for low-powered devices, as well as\n * applications containing a lot of structural operations.\n *\n *
\n * **Best Practice:**\n * Keep the filtering function as lean as possible, because it will be called for each DOM\n * action (e.g. insertion, removal, class change) performed by \"animation-aware\" directives.\n * See {@link guide/animations#which-directives-support-animations- here} for a list of built-in\n * directives that support animations.\n * Performing computationally expensive or time-consuming operations on each call of the\n * filtering function can make your animations sluggish.\n *
\n *\n * **Note:** If present, `customFilter` will be checked before\n * {@link $animateProvider#classNameFilter classNameFilter}.\n *\n * @param {Function=} filterFn - The filter function which will be used to filter all animations.\n * If a falsy value is returned, no animation will be performed. The function will be called\n * with the following arguments:\n * - **node** `{DOMElement}` - The DOM element to be animated.\n * - **event** `{String}` - The name of the animation event (e.g. `enter`, `leave`, `addClass`\n * etc).\n * - **options** `{Object}` - A collection of options/styles used for the animation.\n * @return {Function} The current filter function or `null` if there is none set.\n */\n this.customFilter = function(filterFn) {\n if (arguments.length === 1) {\n customFilter = isFunction(filterFn) ? filterFn : null;\n }\n\n return customFilter;\n };\n\n /**\n * @ngdoc method\n * @name $animateProvider#classNameFilter\n *\n * @description\n * Sets and/or returns the CSS class regular expression that is checked when performing\n * an animation. Upon bootstrap the classNameFilter value is not set at all and will\n * therefore enable $animate to attempt to perform an animation on any element that is triggered.\n * When setting the `classNameFilter` value, animations will only be performed on elements\n * that successfully match the filter expression. This in turn can boost performance\n * for low-powered devices as well as applications containing a lot of structural operations.\n *\n * **Note:** If present, `classNameFilter` will be checked after\n * {@link $animateProvider#customFilter customFilter}. If `customFilter` is present and returns\n * false, `classNameFilter` will not be checked.\n *\n * @param {RegExp=} expression The className expression which will be checked against all animations\n * @return {RegExp} The current CSS className expression value. If null then there is no expression value\n */\n this.classNameFilter = function(expression) {\n if (arguments.length === 1) {\n classNameFilter = (expression instanceof RegExp) ? expression : null;\n if (classNameFilter) {\n var reservedRegex = new RegExp('[(\\\\s|\\\\/)]' + NG_ANIMATE_CLASSNAME + '[(\\\\s|\\\\/)]');\n if (reservedRegex.test(classNameFilter.toString())) {\n classNameFilter = null;\n throw $animateMinErr('nongcls', '$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the \"{0}\" CSS class.', NG_ANIMATE_CLASSNAME);\n }\n }\n }\n return classNameFilter;\n };\n\n this.$get = ['$$animateQueue', function($$animateQueue) {\n function domInsert(element, parentElement, afterElement) {\n // if for some reason the previous element was removed\n // from the dom sometime before this code runs then let's\n // just stick to using the parent element as the anchor\n if (afterElement) {\n var afterNode = extractElementNode(afterElement);\n if (afterNode && !afterNode.parentNode && !afterNode.previousElementSibling) {\n afterElement = null;\n }\n }\n if (afterElement) {\n afterElement.after(element);\n } else {\n parentElement.prepend(element);\n }\n }\n\n /**\n * @ngdoc service\n * @name $animate\n * @description The $animate service exposes a series of DOM utility methods that provide support\n * for animation hooks. The default behavior is the application of DOM operations, however,\n * when an animation is detected (and animations are enabled), $animate will do the heavy lifting\n * to ensure that animation runs with the triggered DOM operation.\n *\n * By default $animate doesn't trigger any animations. This is because the `ngAnimate` module isn't\n * included and only when it is active then the animation hooks that `$animate` triggers will be\n * functional. Once active then all structural `ng-` directives will trigger animations as they perform\n * their DOM-related operations (enter, leave and move). Other directives such as `ngClass`,\n * `ngShow`, `ngHide` and `ngMessages` also provide support for animations.\n *\n * It is recommended that the`$animate` service is always used when executing DOM-related procedures within directives.\n *\n * To learn more about enabling animation support, click here to visit the\n * {@link ngAnimate ngAnimate module page}.\n */\n return {\n // we don't call it directly since non-existant arguments may\n // be interpreted as null within the sub enabled function\n\n /**\n *\n * @ngdoc method\n * @name $animate#on\n * @kind function\n * @description Sets up an event listener to fire whenever the animation event (enter, leave, move, etc...)\n * has fired on the given element or among any of its children. Once the listener is fired, the provided callback\n * is fired with the following params:\n *\n * ```js\n * $animate.on('enter', container,\n * function callback(element, phase) {\n * // cool we detected an enter animation within the container\n * }\n * );\n * ```\n *\n * @param {string} event the animation event that will be captured (e.g. enter, leave, move, addClass, removeClass, etc...)\n * @param {DOMElement} container the container element that will capture each of the animation events that are fired on itself\n * as well as among its children\n * @param {Function} callback the callback function that will be fired when the listener is triggered\n *\n * The arguments present in the callback function are:\n * * `element` - The captured DOM element that the animation was fired on.\n * * `phase` - The phase of the animation. The two possible phases are **start** (when the animation starts) and **close** (when it ends).\n */\n on: $$animateQueue.on,\n\n /**\n *\n * @ngdoc method\n * @name $animate#off\n * @kind function\n * @description Deregisters an event listener based on the event which has been associated with the provided element. This method\n * can be used in three different ways depending on the arguments:\n *\n * ```js\n * // remove all the animation event listeners listening for `enter`\n * $animate.off('enter');\n *\n * // remove listeners for all animation events from the container element\n * $animate.off(container);\n *\n * // remove all the animation event listeners listening for `enter` on the given element and its children\n * $animate.off('enter', container);\n *\n * // remove the event listener function provided by `callback` that is set\n * // to listen for `enter` on the given `container` as well as its children\n * $animate.off('enter', container, callback);\n * ```\n *\n * @param {string|DOMElement} event|container the animation event (e.g. enter, leave, move,\n * addClass, removeClass, etc...), or the container element. If it is the element, all other\n * arguments are ignored.\n * @param {DOMElement=} container the container element the event listener was placed on\n * @param {Function=} callback the callback function that was registered as the listener\n */\n off: $$animateQueue.off,\n\n /**\n * @ngdoc method\n * @name $animate#pin\n * @kind function\n * @description Associates the provided element with a host parent element to allow the element to be animated even if it exists\n * outside of the DOM structure of the AngularJS application. By doing so, any animation triggered via `$animate` can be issued on the\n * element despite being outside the realm of the application or within another application. Say for example if the application\n * was bootstrapped on an element that is somewhere inside of the `` tag, but we wanted to allow for an element to be situated\n * as a direct child of `document.body`, then this can be achieved by pinning the element via `$animate.pin(element)`. Keep in mind\n * that calling `$animate.pin(element, parentElement)` will not actually insert into the DOM anywhere; it will just create the association.\n *\n * Note that this feature is only active when the `ngAnimate` module is used.\n *\n * @param {DOMElement} element the external element that will be pinned\n * @param {DOMElement} parentElement the host parent element that will be associated with the external element\n */\n pin: $$animateQueue.pin,\n\n /**\n *\n * @ngdoc method\n * @name $animate#enabled\n * @kind function\n * @description Used to get and set whether animations are enabled or not on the entire application or on an element and its children. This\n * function can be called in four ways:\n *\n * ```js\n * // returns true or false\n * $animate.enabled();\n *\n * // changes the enabled state for all animations\n * $animate.enabled(false);\n * $animate.enabled(true);\n *\n * // returns true or false if animations are enabled for an element\n * $animate.enabled(element);\n *\n * // changes the enabled state for an element and its children\n * $animate.enabled(element, true);\n * $animate.enabled(element, false);\n * ```\n *\n * @param {DOMElement=} element the element that will be considered for checking/setting the enabled state\n * @param {boolean=} enabled whether or not the animations will be enabled for the element\n *\n * @return {boolean} whether or not animations are enabled\n */\n enabled: $$animateQueue.enabled,\n\n /**\n * @ngdoc method\n * @name $animate#cancel\n * @kind function\n * @description Cancels the provided animation.\n *\n * @param {Promise} animationPromise The animation promise that is returned when an animation is started.\n */\n cancel(runner) {\n if (runner.end) {\n runner.end();\n }\n },\n\n /**\n *\n * @ngdoc method\n * @name $animate#enter\n * @kind function\n * @description Inserts the element into the DOM either after the `after` element (if provided) or\n * as the first child within the `parent` element and then triggers an animation.\n * A promise is returned that will be resolved during the next digest once the animation\n * has completed.\n *\n * @param {DOMElement} element the element which will be inserted into the DOM\n * @param {DOMElement} parent the parent element which will append the element as\n * a child (so long as the after element is not present)\n * @param {DOMElement=} after the sibling element after which the element will be appended\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n enter(element, parent, after, options) {\n parent = parent && jqLite(parent);\n after = after && jqLite(after);\n parent = parent || after.parent();\n domInsert(element, parent, after);\n return $$animateQueue.push(element, 'enter', prepareAnimateOptions(options));\n },\n\n /**\n *\n * @ngdoc method\n * @name $animate#move\n * @kind function\n * @description Inserts (moves) the element into its new position in the DOM either after\n * the `after` element (if provided) or as the first child within the `parent` element\n * and then triggers an animation. A promise is returned that will be resolved\n * during the next digest once the animation has completed.\n *\n * @param {DOMElement} element the element which will be moved into the new DOM position\n * @param {DOMElement} parent the parent element which will append the element as\n * a child (so long as the after element is not present)\n * @param {DOMElement=} after the sibling element after which the element will be appended\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n move(element, parent, after, options) {\n parent = parent && jqLite(parent);\n after = after && jqLite(after);\n parent = parent || after.parent();\n domInsert(element, parent, after);\n return $$animateQueue.push(element, 'move', prepareAnimateOptions(options));\n },\n\n /**\n * @ngdoc method\n * @name $animate#leave\n * @kind function\n * @description Triggers an animation and then removes the element from the DOM.\n * When the function is called a promise is returned that will be resolved during the next\n * digest once the animation has completed.\n *\n * @param {DOMElement} element the element which will be removed from the DOM\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n leave(element, options) {\n return $$animateQueue.push(element, 'leave', prepareAnimateOptions(options), function() {\n element.remove();\n });\n },\n\n /**\n * @ngdoc method\n * @name $animate#addClass\n * @kind function\n *\n * @description Triggers an addClass animation surrounding the addition of the provided CSS class(es). Upon\n * execution, the addClass operation will only be handled after the next digest and it will not trigger an\n * animation if element already contains the CSS class or if the class is removed at a later step.\n * Note that class-based animations are treated differently compared to structural animations\n * (like enter, move and leave) since the CSS classes may be added/removed at different points\n * depending if CSS or JavaScript animations are used.\n *\n * @param {DOMElement} element the element which the CSS classes will be applied to\n * @param {string} className the CSS class(es) that will be added (multiple classes are separated via spaces)\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n addClass(element, className, options) {\n options = prepareAnimateOptions(options);\n options.addClass = mergeClasses(options.addclass, className);\n return $$animateQueue.push(element, 'addClass', options);\n },\n\n /**\n * @ngdoc method\n * @name $animate#removeClass\n * @kind function\n *\n * @description Triggers a removeClass animation surrounding the removal of the provided CSS class(es). Upon\n * execution, the removeClass operation will only be handled after the next digest and it will not trigger an\n * animation if element does not contain the CSS class or if the class is added at a later step.\n * Note that class-based animations are treated differently compared to structural animations\n * (like enter, move and leave) since the CSS classes may be added/removed at different points\n * depending if CSS or JavaScript animations are used.\n *\n * @param {DOMElement} element the element which the CSS classes will be applied to\n * @param {string} className the CSS class(es) that will be removed (multiple classes are separated via spaces)\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n removeClass(element, className, options) {\n options = prepareAnimateOptions(options);\n options.removeClass = mergeClasses(options.removeClass, className);\n return $$animateQueue.push(element, 'removeClass', options);\n },\n\n /**\n * @ngdoc method\n * @name $animate#setClass\n * @kind function\n *\n * @description Performs both the addition and removal of a CSS classes on an element and (during the process)\n * triggers an animation surrounding the class addition/removal. Much like `$animate.addClass` and\n * `$animate.removeClass`, `setClass` will only evaluate the classes being added/removed once a digest has\n * passed. Note that class-based animations are treated differently compared to structural animations\n * (like enter, move and leave) since the CSS classes may be added/removed at different points\n * depending if CSS or JavaScript animations are used.\n *\n * @param {DOMElement} element the element which the CSS classes will be applied to\n * @param {string} add the CSS class(es) that will be added (multiple classes are separated via spaces)\n * @param {string} remove the CSS class(es) that will be removed (multiple classes are separated via spaces)\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n setClass(element, add, remove, options) {\n options = prepareAnimateOptions(options);\n options.addClass = mergeClasses(options.addClass, add);\n options.removeClass = mergeClasses(options.removeClass, remove);\n return $$animateQueue.push(element, 'setClass', options);\n },\n\n /**\n * @ngdoc method\n * @name $animate#animate\n * @kind function\n *\n * @description Performs an inline animation on the element which applies the provided to and from CSS styles to the element.\n * If any detected CSS transition, keyframe or JavaScript matches the provided className value, then the animation will take\n * on the provided styles. For example, if a transition animation is set for the given className, then the provided `from` and\n * `to` styles will be applied alongside the given transition. If the CSS style provided in `from` does not have a corresponding\n * style in `to`, the style in `from` is applied immediately, and no animation is run.\n * If a JavaScript animation is detected then the provided styles will be given in as function parameters into the `animate`\n * method (or as part of the `options` parameter):\n *\n * ```js\n * ngModule.animation('.my-inline-animation', function() {\n * return {\n * animate : function(element, from, to, done, options) {\n * //animation\n * done();\n * }\n * }\n * });\n * ```\n *\n * @param {DOMElement} element the element which the CSS styles will be applied to\n * @param {object} from the from (starting) CSS styles that will be applied to the element and across the animation.\n * @param {object} to the to (destination) CSS styles that will be applied to the element and across the animation.\n * @param {string=} className an optional CSS class that will be applied to the element for the duration of the animation. If\n * this value is left as empty then a CSS class of `ng-inline-animate` will be applied to the element.\n * (Note that if no animation is detected then this value will not be applied to the element.)\n * @param {object=} options an optional collection of options/styles that will be applied to the element.\n * The object can have the following properties:\n *\n * - **addClass** - `{string}` - space-separated CSS classes to add to element\n * - **from** - `{Object}` - CSS properties & values at the beginning of animation. Must have matching `to`\n * - **removeClass** - `{string}` - space-separated CSS classes to remove from element\n * - **to** - `{Object}` - CSS properties & values at end of animation. Must have matching `from`\n *\n * @return {Promise} the animation callback promise\n */\n animate(element, from, to, className, options) {\n options = prepareAnimateOptions(options);\n options.from = options.from ? extend(options.from, from) : from;\n options.to = options.to ? extend(options.to, to) : to;\n\n className = className || 'ng-inline-animate';\n options.tempClasses = mergeClasses(options.tempClasses, className);\n return $$animateQueue.push(element, 'animate', options);\n }\n };\n }];\n}];\n'use strict';\n\nvar $$AnimateAsyncRunFactoryProvider = /** @this */ function() {\n this.$get = ['$$rAF', function($$rAF) {\n var waitQueue = [];\n\n function waitForTick(fn) {\n waitQueue.push(fn);\n if (waitQueue.length > 1) return;\n $$rAF(function() {\n for (var i = 0; i < waitQueue.length; i++) {\n waitQueue[i]();\n }\n waitQueue = [];\n });\n }\n\n return function() {\n var passed = false;\n waitForTick(function() {\n passed = true;\n });\n return function(callback) {\n if (passed) {\n callback();\n } else {\n waitForTick(callback);\n }\n };\n };\n }];\n};\n\nvar $$AnimateRunnerFactoryProvider = /** @this */ function() {\n this.$get = ['$q', '$sniffer', '$$animateAsyncRun', '$$isDocumentHidden', '$timeout',\n function($q, $sniffer, $$animateAsyncRun, $$isDocumentHidden, $timeout) {\n\n var INITIAL_STATE = 0;\n var DONE_PENDING_STATE = 1;\n var DONE_COMPLETE_STATE = 2;\n\n AnimateRunner.chain = function(chain, callback) {\n var index = 0;\n\n next();\n function next() {\n if (index === chain.length) {\n callback(true);\n return;\n }\n\n chain[index](function(response) {\n if (response === false) {\n callback(false);\n return;\n }\n index++;\n next();\n });\n }\n };\n\n AnimateRunner.all = function(runners, callback) {\n var count = 0;\n var status = true;\n forEach(runners, function(runner) {\n runner.done(onProgress);\n });\n\n function onProgress(response) {\n status = status && response;\n if (++count === runners.length) {\n callback(status);\n }\n }\n };\n\n function AnimateRunner(host) {\n this.setHost(host);\n\n var rafTick = $$animateAsyncRun();\n var timeoutTick = function(fn) {\n $timeout(fn, 0, false);\n };\n\n this._doneCallbacks = [];\n this._tick = function(fn) {\n if ($$isDocumentHidden()) {\n timeoutTick(fn);\n } else {\n rafTick(fn);\n }\n };\n this._state = 0;\n }\n\n AnimateRunner.prototype = {\n setHost(host) {\n this.host = host || {};\n },\n\n done(fn) {\n if (this._state === DONE_COMPLETE_STATE) {\n fn();\n } else {\n this._doneCallbacks.push(fn);\n }\n },\n\n progress: noop,\n\n getPromise() {\n if (!this.promise) {\n var self = this;\n this.promise = $q(function(resolve, reject) {\n self.done(function(status) {\n if (status === false) {\n reject();\n } else {\n resolve();\n }\n });\n });\n }\n return this.promise;\n },\n\n then(resolveHandler, rejectHandler) {\n return this.getPromise().then(resolveHandler, rejectHandler);\n },\n\n 'catch': function(handler) {\n return this.getPromise()['catch'](handler);\n },\n\n 'finally': function(handler) {\n return this.getPromise()['finally'](handler);\n },\n\n pause() {\n if (this.host.pause) {\n this.host.pause();\n }\n },\n\n resume() {\n if (this.host.resume) {\n this.host.resume();\n }\n },\n\n end() {\n if (this.host.end) {\n this.host.end();\n }\n this._resolve(true);\n },\n\n cancel() {\n if (this.host.cancel) {\n this.host.cancel();\n }\n this._resolve(false);\n },\n\n complete(response) {\n var self = this;\n if (self._state === INITIAL_STATE) {\n self._state = DONE_PENDING_STATE;\n self._tick(function() {\n self._resolve(response);\n });\n }\n },\n\n _resolve(response) {\n if (this._state !== DONE_COMPLETE_STATE) {\n forEach(this._doneCallbacks, function(fn) {\n fn(response);\n });\n this._doneCallbacks.length = 0;\n this._state = DONE_COMPLETE_STATE;\n }\n }\n };\n\n return AnimateRunner;\n }];\n};\n'use strict';\n\n/* exported $CoreAnimateCssProvider */\n\n/**\n * @ngdoc service\n * @name $animateCss\n * @kind object\n * @this\n *\n * @description\n * This is the core version of `$animateCss`. By default, only when the `ngAnimate` is included,\n * then the `$animateCss` service will actually perform animations.\n *\n * Click here {@link ngAnimate.$animateCss to read the documentation for $animateCss}.\n */\nvar $CoreAnimateCssProvider = function() {\n this.$get = ['$$rAF', '$q', '$$AnimateRunner', function($$rAF, $q, $$AnimateRunner) {\n\n return function(element, initialOptions) {\n // all of the animation functions should create\n // a copy of the options data, however, if a\n // parent service has already created a copy then\n // we should stick to using that\n var options = initialOptions || {};\n if (!options.$$prepared) {\n options = copy(options);\n }\n\n // there is no point in applying the styles since\n // there is no animation that goes on at all in\n // this version of $animateCss.\n if (options.cleanupStyles) {\n options.from = options.to = null;\n }\n\n if (options.from) {\n element.css(options.from);\n options.from = null;\n }\n\n var closed;\n var runner = new $$AnimateRunner();\n return {\n start: run,\n end: run\n };\n\n function run() {\n $$rAF(function() {\n applyAnimationContents();\n if (!closed) {\n runner.complete();\n }\n closed = true;\n });\n return runner;\n }\n\n function applyAnimationContents() {\n if (options.addClass) {\n element.addClass(options.addClass);\n options.addClass = null;\n }\n if (options.removeClass) {\n element.removeClass(options.removeClass);\n options.removeClass = null;\n }\n if (options.to) {\n element.css(options.to);\n options.to = null;\n }\n }\n };\n }];\n};\n'use strict';\n/* global stripHash: true */\n\n/**\n * ! This is a private undocumented service !\n *\n * @name $browser\n * @requires $log\n * @description\n * This object has two goals:\n *\n * - hide all the global state in the browser caused by the window object\n * - abstract away all the browser specific features and inconsistencies\n *\n * For tests we provide {@link ngMock.$browser mock implementation} of the `$browser`\n * service, which can be used for convenient testing of the application without the interaction with\n * the real browser apis.\n */\n/**\n * @param {object} window The global window object.\n * @param {object} document jQuery wrapped document.\n * @param {object} $log window.console or an object with the same interface.\n * @param {object} $sniffer $sniffer service\n */\nfunction Browser(window, document, $log, $sniffer) {\n var self = this;\n var location = window.location;\n var history = window.history;\n var setTimeout = window.setTimeout;\n var clearTimeout = window.clearTimeout;\n var pendingDeferIds = {};\n\n self.isMock = false;\n\n var outstandingRequestCount = 0;\n var outstandingRequestCallbacks = [];\n\n // TODO(vojta): remove this temporary api\n self.$$completeOutstandingRequest = completeOutstandingRequest;\n self.$$incOutstandingRequestCount = function() { outstandingRequestCount++; };\n\n /**\n * Executes the `fn` function(supports currying) and decrements the `outstandingRequestCallbacks`\n * counter. If the counter reaches 0, all the `outstandingRequestCallbacks` are executed.\n */\n function completeOutstandingRequest(fn) {\n try {\n fn(...sliceArgs(arguments, 1));\n } finally {\n outstandingRequestCount--;\n if (outstandingRequestCount === 0) {\n while (outstandingRequestCallbacks.length) {\n try {\n outstandingRequestCallbacks.pop()();\n } catch (e) {\n $log.error(e);\n }\n }\n }\n }\n }\n\n function getHash(url) {\n var index = url.indexOf('#');\n return index === -1 ? '' : url.substr(index);\n }\n\n /**\n * @private\n * TODO(vojta): prefix this method with $$ ?\n * @param {function()} callback Function that will be called when no outstanding request\n */\n self.notifyWhenNoOutstandingRequests = function(callback) {\n if (outstandingRequestCount === 0) {\n callback();\n } else {\n outstandingRequestCallbacks.push(callback);\n }\n };\n\n //////////////////////////////////////////////////////////////\n // URL API\n //////////////////////////////////////////////////////////////\n\n var cachedState;\n\n var lastHistoryState;\n var lastBrowserUrl = location.href;\n var baseElement = document.find('base');\n var pendingLocation = null;\n\n var getCurrentState = !$sniffer.history ? noop : function getCurrentState() {\n try {\n return history.state;\n } catch (e) { /**/ }\n };\n\n cacheState();\n\n /**\n * @name $browser#url\n *\n * @description\n * GETTER:\n * Without any argument, this method just returns current value of location.href.\n *\n * SETTER:\n * With at least one argument, this method sets url to new value.\n * If html5 history api supported, pushState/replaceState is used, otherwise\n * location.href/location.replace is used.\n * Returns its own instance to allow chaining\n *\n * NOTE: this api is intended for use only by the $location service. Please use the\n * {@link ng.$location $location service} to change url.\n *\n * @param {string} url New url (when used as setter)\n * @param {boolean=} replace Should new url replace current history record?\n * @param {object=} state object to use with pushState/replaceState\n */\n self.url = function(url, replace, state) {\n // In modern browsers `history.state` is `null` by default; treating it separately\n // from `undefined` would cause `$browser.url('/foo')` to change `history.state`\n // to undefined via `pushState`. Instead, let's change `undefined` to `null` here.\n if (isUndefined(state)) {\n state = null;\n }\n\n // Android Browser BFCache causes location, history reference to become stale.\n if (location !== window.location) location = window.location;\n if (history !== window.history) history = window.history;\n\n // setter\n if (url) {\n var sameState = lastHistoryState === state;\n\n // Don't change anything if previous and current URLs and states match. This also prevents\n // IE<10 from getting into redirect loop when in LocationHashbangInHtml5Url mode.\n // See https://github.com/angular/angular.js/commit/ffb2701\n if (lastBrowserUrl === url && (!$sniffer.history || sameState)) {\n return self;\n }\n var sameBase = lastBrowserUrl && stripHash(lastBrowserUrl) === stripHash(url);\n lastBrowserUrl = url;\n lastHistoryState = state;\n // Don't use history API if only the hash changed\n // due to a bug in IE10/IE11 which leads\n // to not firing a `hashchange` nor `popstate` event\n // in some cases (see #9143).\n if ($sniffer.history && (!sameBase || !sameState)) {\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\n cacheState();\n } else {\n if (!sameBase) {\n pendingLocation = url;\n }\n if (replace) {\n location.replace(url);\n } else if (!sameBase) {\n location.href = url;\n } else {\n location.hash = getHash(url);\n }\n if (location.href !== url) {\n pendingLocation = url;\n }\n }\n if (pendingLocation) {\n pendingLocation = url;\n }\n return self;\n // getter\n } else {\n // - pendingLocation is needed as browsers don't allow to read out\n // the new location.href if a reload happened or if there is a bug like in iOS 9 (see\n // https://openradar.appspot.com/22186109).\n // - the replacement is a workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=407172\n return pendingLocation || location.href.replace(/%27/g,'\\'');\n }\n };\n\n /**\n * @name $browser#state\n *\n * @description\n * This method is a getter.\n *\n * Return history.state or null if history.state is undefined.\n *\n * @returns {object} state\n */\n self.state = function() {\n return cachedState;\n };\n\n var urlChangeListeners = [];\n var urlChangeInit = false;\n\n function cacheStateAndFireUrlChange() {\n pendingLocation = null;\n fireStateOrUrlChange();\n }\n\n // This variable should be used *only* inside the cacheState function.\n var lastCachedState = null;\n function cacheState() {\n // This should be the only place in $browser where `history.state` is read.\n cachedState = getCurrentState();\n cachedState = isUndefined(cachedState) ? null : cachedState;\n\n // Prevent callbacks fo fire twice if both hashchange & popstate were fired.\n if (equals(cachedState, lastCachedState)) {\n cachedState = lastCachedState;\n }\n\n lastCachedState = cachedState;\n lastHistoryState = cachedState;\n }\n\n function fireStateOrUrlChange() {\n var prevLastHistoryState = lastHistoryState;\n cacheState();\n\n if (lastBrowserUrl === self.url() && prevLastHistoryState === cachedState) {\n return;\n }\n\n lastBrowserUrl = self.url();\n lastHistoryState = cachedState;\n forEach(urlChangeListeners, function(listener) {\n listener(self.url(), cachedState);\n });\n }\n\n /**\n * @name $browser#onUrlChange\n *\n * @description\n * Register callback function that will be called, when url changes.\n *\n * It's only called when the url is changed from outside of AngularJS:\n * - user types different url into address bar\n * - user clicks on history (forward/back) button\n * - user clicks on a link\n *\n * It's not called when url is changed by $browser.url() method\n *\n * The listener gets called with new url as parameter.\n *\n * NOTE: this api is intended for use only by the $location service. Please use the\n * {@link ng.$location $location service} to monitor url changes in AngularJS apps.\n *\n * @param {function(string)} listener Listener function to be called when url changes.\n * @return {function(string)} Returns the registered listener fn - handy if the fn is anonymous.\n */\n self.onUrlChange = function(callback) {\n // TODO(vojta): refactor to use node's syntax for events\n if (!urlChangeInit) {\n // We listen on both (hashchange/popstate) when available, as some browsers don't\n // fire popstate when user changes the address bar and don't fire hashchange when url\n // changed by push/replaceState\n\n // html5 history api - popstate event\n if ($sniffer.history) jqLite(window).on('popstate', cacheStateAndFireUrlChange);\n // hashchange event\n jqLite(window).on('hashchange', cacheStateAndFireUrlChange);\n\n urlChangeInit = true;\n }\n\n urlChangeListeners.push(callback);\n return callback;\n };\n\n /**\n * @private\n * Remove popstate and hashchange handler from window.\n *\n * NOTE: this api is intended for use only by $rootScope.\n */\n self.$$applicationDestroyed = function() {\n jqLite(window).off('hashchange popstate', cacheStateAndFireUrlChange);\n };\n\n /**\n * Checks whether the url has changed outside of AngularJS.\n * Needs to be exported to be able to check for changes that have been done in sync,\n * as hashchange/popstate events fire in async.\n */\n self.$$checkUrlChange = fireStateOrUrlChange;\n\n //////////////////////////////////////////////////////////////\n // Misc API\n //////////////////////////////////////////////////////////////\n\n /**\n * @name $browser#baseHref\n *\n * @description\n * Returns current \n * (always relative - without domain)\n *\n * @returns {string} The current base href\n */\n self.baseHref = function() {\n var href = baseElement.attr('href');\n return href ? href.replace(/^(https?:)?\\/\\/[^/]*/, '') : '';\n };\n\n /**\n * @name $browser#defer\n * @param {function()} fn A function, who's execution should be deferred.\n * @param {number=} [delay=0] of milliseconds to defer the function execution.\n * @returns {*} DeferId that can be used to cancel the task via `$browser.defer.cancel()`.\n *\n * @description\n * Executes a fn asynchronously via `setTimeout(fn, delay)`.\n *\n * Unlike when calling `setTimeout` directly, in test this function is mocked and instead of using\n * `setTimeout` in tests, the fns are queued in an array, which can be programmatically flushed\n * via `$browser.defer.flush()`.\n *\n */\n self.defer = function(fn, delay) {\n var timeoutId;\n outstandingRequestCount++;\n timeoutId = setTimeout(function() {\n delete pendingDeferIds[timeoutId];\n completeOutstandingRequest(fn);\n }, delay || 0);\n pendingDeferIds[timeoutId] = true;\n return timeoutId;\n };\n\n\n /**\n * @name $browser#defer.cancel\n *\n * @description\n * Cancels a deferred task identified with `deferId`.\n *\n * @param {*} deferId Token returned by the `$browser.defer` function.\n * @returns {boolean} Returns `true` if the task hasn't executed yet and was successfully\n * canceled.\n */\n self.defer.cancel = function(deferId) {\n if (pendingDeferIds[deferId]) {\n delete pendingDeferIds[deferId];\n clearTimeout(deferId);\n completeOutstandingRequest(noop);\n return true;\n }\n return false;\n };\n}\n\n/** @this */\nfunction $BrowserProvider() {\n this.$get = ['$window', '$log', '$sniffer', '$document',\n function($window, $log, $sniffer, $document) {\n return new Browser($window, $document, $log, $sniffer);\n }];\n}\n'use strict';\n\n/**\n * @ngdoc service\n * @name $cacheFactory\n * @this\n *\n * @description\n * Factory that constructs {@link $cacheFactory.Cache Cache} objects and gives access to\n * them.\n *\n * ```js\n *\n * var cache = $cacheFactory('cacheId');\n * expect($cacheFactory.get('cacheId')).toBe(cache);\n * expect($cacheFactory.get('noSuchCacheId')).not.toBeDefined();\n *\n * cache.put(\"key\", \"value\");\n * cache.put(\"another key\", \"another value\");\n *\n * // We've specified no options on creation\n * expect(cache.info()).toEqual({id: 'cacheId', size: 2});\n *\n * ```\n *\n *\n * @param {string} cacheId Name or id of the newly created cache.\n * @param {object=} options Options object that specifies the cache behavior. Properties:\n *\n * - `{number=}` `capacity` — turns the cache into LRU cache.\n *\n * @returns {object} Newly created cache object with the following set of methods:\n *\n * - `{object}` `info()` — Returns id, size, and options of cache.\n * - `{{*}}` `put({string} key, {*} value)` — Puts a new key-value pair into the cache and returns\n * it.\n * - `{{*}}` `get({string} key)` — Returns cached value for `key` or undefined for cache miss.\n * - `{void}` `remove({string} key)` — Removes a key-value pair from the cache.\n * - `{void}` `removeAll()` — Removes all cached values.\n * - `{void}` `destroy()` — Removes references to this cache from $cacheFactory.\n *\n * @example\n \n \n
\n \n \n \n\n

Cached Values

\n
\n \n : \n \n
\n\n

Cache Info

\n
\n \n : \n \n
\n
\n
\n \n angular.module('cacheExampleApp', []).\n controller('CacheController', ['$scope', '$cacheFactory', function($scope, $cacheFactory) {\n $scope.keys = [];\n $scope.cache = $cacheFactory('cacheId');\n $scope.put = function(key, value) {\n if (angular.isUndefined($scope.cache.get(key))) {\n $scope.keys.push(key);\n }\n $scope.cache.put(key, angular.isUndefined(value) ? null : value);\n };\n }]);\n \n \n p {\n margin: 10px 0 3px;\n }\n \n
\n */\nfunction $CacheFactoryProvider() {\n\n this.$get = function() {\n var caches = {};\n\n function cacheFactory(cacheId, options) {\n if (cacheId in caches) {\n throw minErr('$cacheFactory')('iid', 'CacheId \\'{0}\\' is already taken!', cacheId);\n }\n\n var size = 0;\n var stats = extend({}, options, {id: cacheId});\n var data = createMap();\n var capacity = (options && options.capacity) || Number.MAX_VALUE;\n var lruHash = createMap();\n var freshEnd = null;\n var staleEnd = null;\n\n /**\n * @ngdoc type\n * @name $cacheFactory.Cache\n *\n * @description\n * A cache object used to store and retrieve data, primarily used by\n * {@link $templateRequest $templateRequest} and the {@link ng.directive:script script}\n * directive to cache templates and other data.\n *\n * ```js\n * angular.module('superCache')\n * .factory('superCache', ['$cacheFactory', function($cacheFactory) {\n * return $cacheFactory('super-cache');\n * }]);\n * ```\n *\n * Example test:\n *\n * ```js\n * it('should behave like a cache', inject(function(superCache) {\n * superCache.put('key', 'value');\n * superCache.put('another key', 'another value');\n *\n * expect(superCache.info()).toEqual({\n * id: 'super-cache',\n * size: 2\n * });\n *\n * superCache.remove('another key');\n * expect(superCache.get('another key')).toBeUndefined();\n *\n * superCache.removeAll();\n * expect(superCache.info()).toEqual({\n * id: 'super-cache',\n * size: 0\n * });\n * }));\n * ```\n */\n return caches[cacheId] = {\n\n /**\n * @ngdoc method\n * @name $cacheFactory.Cache#put\n * @kind function\n *\n * @description\n * Inserts a named entry into the {@link $cacheFactory.Cache Cache} object to be\n * retrieved later, and incrementing the size of the cache if the key was not already\n * present in the cache. If behaving like an LRU cache, it will also remove stale\n * entries from the set.\n *\n * It will not insert undefined values into the cache.\n *\n * @param {string} key the key under which the cached data is stored.\n * @param {*} value the value to store alongside the key. If it is undefined, the key\n * will not be stored.\n * @returns {*} the value stored.\n */\n put(key, value) {\n if (isUndefined(value)) return;\n if (capacity < Number.MAX_VALUE) {\n var lruEntry = lruHash[key] || (lruHash[key] = {key: key});\n\n refresh(lruEntry);\n }\n\n if (!(key in data)) size++;\n data[key] = value;\n\n if (size > capacity) {\n this.remove(staleEnd.key);\n }\n\n return value;\n },\n\n /**\n * @ngdoc method\n * @name $cacheFactory.Cache#get\n * @kind function\n *\n * @description\n * Retrieves named data stored in the {@link $cacheFactory.Cache Cache} object.\n *\n * @param {string} key the key of the data to be retrieved\n * @returns {*} the value stored.\n */\n get(key) {\n if (capacity < Number.MAX_VALUE) {\n var lruEntry = lruHash[key];\n\n if (!lruEntry) return;\n\n refresh(lruEntry);\n }\n\n return data[key];\n },\n\n\n /**\n * @ngdoc method\n * @name $cacheFactory.Cache#remove\n * @kind function\n *\n * @description\n * Removes an entry from the {@link $cacheFactory.Cache Cache} object.\n *\n * @param {string} key the key of the entry to be removed\n */\n remove(key) {\n if (capacity < Number.MAX_VALUE) {\n var lruEntry = lruHash[key];\n\n if (!lruEntry) return;\n\n if (lruEntry === freshEnd) freshEnd = lruEntry.p;\n if (lruEntry === staleEnd) staleEnd = lruEntry.n;\n link(lruEntry.n,lruEntry.p);\n\n delete lruHash[key];\n }\n\n if (!(key in data)) return;\n\n delete data[key];\n size--;\n },\n\n\n /**\n * @ngdoc method\n * @name $cacheFactory.Cache#removeAll\n * @kind function\n *\n * @description\n * Clears the cache object of any entries.\n */\n removeAll() {\n data = createMap();\n size = 0;\n lruHash = createMap();\n freshEnd = staleEnd = null;\n },\n\n\n /**\n * @ngdoc method\n * @name $cacheFactory.Cache#destroy\n * @kind function\n *\n * @description\n * Destroys the {@link $cacheFactory.Cache Cache} object entirely,\n * removing it from the {@link $cacheFactory $cacheFactory} set.\n */\n destroy() {\n data = null;\n stats = null;\n lruHash = null;\n delete caches[cacheId];\n },\n\n\n /**\n * @ngdoc method\n * @name $cacheFactory.Cache#info\n * @kind function\n *\n * @description\n * Retrieve information regarding a particular {@link $cacheFactory.Cache Cache}.\n *\n * @returns {object} an object with the following properties:\n *
    \n *
  • **id**: the id of the cache instance
  • \n *
  • **size**: the number of entries kept in the cache instance
  • \n *
  • **...**: any additional properties from the options object when creating the\n * cache.
  • \n *
\n */\n info() {\n return extend({}, stats, {size: size});\n }\n };\n\n\n /**\n * makes the `entry` the freshEnd of the LRU linked list\n */\n function refresh(entry) {\n if (entry !== freshEnd) {\n if (!staleEnd) {\n staleEnd = entry;\n } else if (staleEnd === entry) {\n staleEnd = entry.n;\n }\n\n link(entry.n, entry.p);\n link(entry, freshEnd);\n freshEnd = entry;\n freshEnd.n = null;\n }\n }\n\n\n /**\n * bidirectionally links two entries of the LRU linked list\n */\n function link(nextEntry, prevEntry) {\n if (nextEntry !== prevEntry) {\n if (nextEntry) nextEntry.p = prevEntry; //p stands for previous, 'prev' didn't minify\n if (prevEntry) prevEntry.n = nextEntry; //n stands for next, 'next' didn't minify\n }\n }\n }\n\n\n /**\n * @ngdoc method\n * @name $cacheFactory#info\n *\n * @description\n * Get information about all the caches that have been created\n *\n * @returns {Object} - key-value map of `cacheId` to the result of calling `cache#info`\n */\n cacheFactory.info = function() {\n var info = {};\n forEach(caches, function(cache, cacheId) {\n info[cacheId] = cache.info();\n });\n return info;\n };\n\n\n /**\n * @ngdoc method\n * @name $cacheFactory#get\n *\n * @description\n * Get access to a cache object by the `cacheId` used when it was created.\n *\n * @param {string} cacheId Name or id of a cache to access.\n * @returns {object} Cache object identified by the cacheId or undefined if no such cache.\n */\n cacheFactory.get = function(cacheId) {\n return caches[cacheId];\n };\n\n\n return cacheFactory;\n };\n}\n\n/**\n * @ngdoc service\n * @name $templateCache\n * @this\n *\n * @description\n * `$templateCache` is a {@link $cacheFactory.Cache Cache object} created by the\n * {@link ng.$cacheFactory $cacheFactory}.\n *\n * The first time a template is used, it is loaded in the template cache for quick retrieval. You\n * can load templates directly into the cache in a `script` tag, by using {@link $templateRequest},\n * or by consuming the `$templateCache` service directly.\n *\n * Adding via the `script` tag:\n *\n * ```html\n * \n * ```\n *\n * **Note:** the `script` tag containing the template does not need to be included in the `head` of\n * the document, but it must be a descendent of the {@link ng.$rootElement $rootElement} (e.g.\n * element with {@link ngApp} attribute), otherwise the template will be ignored.\n *\n * Adding via the `$templateCache` service:\n *\n * ```js\n * var myApp = angular.module('myApp', []);\n * myApp.run(function($templateCache) {\n * $templateCache.put('templateId.html', 'This is the content of the template');\n * });\n * ```\n *\n * To retrieve the template later, simply use it in your component:\n * ```js\n * myApp.component('myComponent', {\n * templateUrl: 'templateId.html'\n * });\n * ```\n *\n * or get it via the `$templateCache` service:\n * ```js\n * $templateCache.get('templateId.html')\n * ```\n *\n */\nfunction $TemplateCacheProvider() {\n this.$get = ['$cacheFactory', function($cacheFactory) {\n return $cacheFactory('templates');\n }];\n}\n'use strict';\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Any commits to this file should be reviewed with security in mind. *\n * Changes to this file can potentially create security vulnerabilities. *\n * An approval from 2 Core members with history of modifying *\n * this file is required. *\n * *\n * Does the change somehow allow for arbitrary javascript to be executed? *\n * Or allows for someone to change the prototype of built-in objects? *\n * Or gives undesired access to variables like document or window? *\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n/* ! VARIABLE/FUNCTION NAMING CONVENTIONS THAT APPLY TO THIS FILE!\n *\n * DOM-related variables:\n *\n * - \"node\" - DOM Node\n * - \"element\" - DOM Element or Node\n * - \"$node\" or \"$element\" - jqLite-wrapped node or element\n *\n *\n * Compiler related stuff:\n *\n * - \"linkFn\" - linking fn of a single directive\n * - \"nodeLinkFn\" - function that aggregates all linking fns for a particular node\n * - \"childLinkFn\" - function that aggregates all linking fns for child nodes of a particular node\n * - \"compositeLinkFn\" - function that aggregates all linking fns for a compilation root (nodeList)\n */\n\n\n/**\n * @ngdoc service\n * @name $compile\n * @kind function\n *\n * @description\n * Compiles an HTML string or DOM into a template and produces a template function, which\n * can then be used to link {@link ng.$rootScope.Scope `scope`} and the template together.\n *\n * The compilation is a process of walking the DOM tree and matching DOM elements to\n * {@link ng.$compileProvider#directive directives}.\n *\n *
\n * **Note:** This document is an in-depth reference of all directive options.\n * For a gentle introduction to directives with examples of common use cases,\n * see the {@link guide/directive directive guide}.\n *
\n *\n * ## Comprehensive Directive API\n *\n * There are many different options for a directive.\n *\n * The difference resides in the return value of the factory function.\n * You can either return a {@link $compile#directive-definition-object Directive Definition Object (see below)}\n * that defines the directive properties, or just the `postLink` function (all other properties will have\n * the default values).\n *\n *
\n * **Best Practice:** It's recommended to use the \"directive definition object\" form.\n *
\n *\n * Here's an example directive declared with a Directive Definition Object:\n *\n * ```js\n * var myModule = angular.module(...);\n *\n * myModule.directive('directiveName', function factory(injectables) {\n * var directiveDefinitionObject = {\n * {@link $compile#-priority- priority}: 0,\n * {@link $compile#-template- template}: '
', // or // function(tElement, tAttrs) { ... },\n * // or\n * // {@link $compile#-templateurl- templateUrl}: 'directive.html', // or // function(tElement, tAttrs) { ... },\n * {@link $compile#-transclude- transclude}: false,\n * {@link $compile#-restrict- restrict}: 'A',\n * {@link $compile#-templatenamespace- templateNamespace}: 'html',\n * {@link $compile#-scope- scope}: false,\n * {@link $compile#-controller- controller}: function($scope, $element, $attrs, $transclude, otherInjectables) { ... },\n * {@link $compile#-controlleras- controllerAs}: 'stringIdentifier',\n * {@link $compile#-bindtocontroller- bindToController}: false,\n * {@link $compile#-require- require}: 'siblingDirectiveName', // or // ['^parentDirectiveName', '?optionalDirectiveName', '?^optionalParent'],\n * {@link $compile#-multielement- multiElement}: false,\n * {@link $compile#-compile- compile}: function compile(tElement, tAttrs, transclude) {\n * return {\n * {@link $compile#pre-linking-function pre}: function preLink(scope, iElement, iAttrs, controller) { ... },\n * {@link $compile#post-linking-function post}: function postLink(scope, iElement, iAttrs, controller) { ... }\n * }\n * // or\n * // return function postLink( ... ) { ... }\n * },\n * // or\n * // {@link $compile#-link- link}: {\n * // {@link $compile#pre-linking-function pre}: function preLink(scope, iElement, iAttrs, controller) { ... },\n * // {@link $compile#post-linking-function post}: function postLink(scope, iElement, iAttrs, controller) { ... }\n * // }\n * // or\n * // {@link $compile#-link- link}: function postLink( ... ) { ... }\n * };\n * return directiveDefinitionObject;\n * });\n * ```\n *\n *
\n * **Note:** Any unspecified options will use the default value. You can see the default values below.\n *
\n *\n * Therefore the above can be simplified as:\n *\n * ```js\n * var myModule = angular.module(...);\n *\n * myModule.directive('directiveName', function factory(injectables) {\n * var directiveDefinitionObject = {\n * link: function postLink(scope, iElement, iAttrs) { ... }\n * };\n * return directiveDefinitionObject;\n * // or\n * // return function postLink(scope, iElement, iAttrs) { ... }\n * });\n * ```\n *\n * ### Life-cycle hooks\n * Directive controllers can provide the following methods that are called by AngularJS at points in the life-cycle of the\n * directive:\n * * `$onInit()` - Called on each controller after all the controllers on an element have been constructed and\n * had their bindings initialized (and before the pre & post linking functions for the directives on\n * this element). This is a good place to put initialization code for your controller.\n * * `$onChanges(changesObj)` - Called whenever one-way (`<`) or interpolation (`@`) bindings are updated. The\n * `changesObj` is a hash whose keys are the names of the bound properties that have changed, and the values are an\n * object of the form `{ currentValue, previousValue, isFirstChange() }`. Use this hook to trigger updates within a\n * component such as cloning the bound value to prevent accidental mutation of the outer value. Note that this will\n * also be called when your bindings are initialized.\n * * `$doCheck()` - Called on each turn of the digest cycle. Provides an opportunity to detect and act on\n * changes. Any actions that you wish to take in response to the changes that you detect must be\n * invoked from this hook; implementing this has no effect on when `$onChanges` is called. For example, this hook\n * could be useful if you wish to perform a deep equality check, or to check a Date object, changes to which would not\n * be detected by AngularJS's change detector and thus not trigger `$onChanges`. This hook is invoked with no arguments;\n * if detecting changes, you must store the previous value(s) for comparison to the current values.\n * * `$onDestroy()` - Called on a controller when its containing scope is destroyed. Use this hook for releasing\n * external resources, watches and event handlers. Note that components have their `$onDestroy()` hooks called in\n * the same order as the `$scope.$broadcast` events are triggered, which is top down. This means that parent\n * components will have their `$onDestroy()` hook called before child components.\n * * `$postLink()` - Called after this controller's element and its children have been linked. Similar to the post-link\n * function this hook can be used to set up DOM event handlers and do direct DOM manipulation.\n * Note that child elements that contain `templateUrl` directives will not have been compiled and linked since\n * they are waiting for their template to load asynchronously and their own compilation and linking has been\n * suspended until that occurs.\n *\n * #### Comparison with life-cycle hooks in the new Angular\n * The new Angular also uses life-cycle hooks for its components. While the AngularJS life-cycle hooks are similar there are\n * some differences that you should be aware of, especially when it comes to moving your code from AngularJS to Angular:\n *\n * * AngularJS hooks are prefixed with `$`, such as `$onInit`. Angular hooks are prefixed with `ng`, such as `ngOnInit`.\n * * AngularJS hooks can be defined on the controller prototype or added to the controller inside its constructor.\n * In Angular you can only define hooks on the prototype of the Component class.\n * * Due to the differences in change-detection, you may get many more calls to `$doCheck` in AngularJS than you would to\n * `ngDoCheck` in Angular.\n * * Changes to the model inside `$doCheck` will trigger new turns of the digest loop, which will cause the changes to be\n * propagated throughout the application.\n * Angular does not allow the `ngDoCheck` hook to trigger a change outside of the component. It will either throw an\n * error or do nothing depending upon the state of `enableProdMode()`.\n *\n * #### Life-cycle hook examples\n *\n * This example shows how you can check for mutations to a Date object even though the identity of the object\n * has not changed.\n *\n * \n * \n * angular.module('do-check-module', [])\n * .component('app', {\n * template:\n * 'Month: ' +\n * 'Date: {{ $ctrl.date }}' +\n * '',\n * controller: function() {\n * this.date = new Date();\n * this.month = this.date.getMonth();\n * this.updateDate = function() {\n * this.date.setMonth(this.month);\n * };\n * }\n * })\n * .component('test', {\n * bindings: { date: '<' },\n * template:\n * '
{{ $ctrl.log | json }}
',\n * controller: function() {\n * var previousValue;\n * this.log = [];\n * this.$doCheck = function() {\n * var currentValue = this.date && this.date.valueOf();\n * if (previousValue !== currentValue) {\n * this.log.push('doCheck: date mutated: ' + this.date);\n * previousValue = currentValue;\n * }\n * };\n * }\n * });\n *
\n * \n * \n * \n *
\n *\n * This example show how you might use `$doCheck` to trigger changes in your component's inputs even if the\n * actual identity of the component doesn't change. (Be aware that cloning and deep equality checks on large\n * arrays or objects can have a negative impact on your application performance)\n *\n * \n * \n *
\n * \n * \n *
{{ items }}
\n * \n *
\n *
\n * \n * angular.module('do-check-module', [])\n * .component('test', {\n * bindings: { items: '<' },\n * template:\n * '
{{ $ctrl.log | json }}
',\n * controller: function() {\n * this.log = [];\n *\n * this.$doCheck = function() {\n * if (this.items_ref !== this.items) {\n * this.log.push('doCheck: items changed');\n * this.items_ref = this.items;\n * }\n * if (!angular.equals(this.items_clone, this.items)) {\n * this.log.push('doCheck: items mutated');\n * this.items_clone = angular.copy(this.items);\n * }\n * };\n * }\n * });\n *
\n *
\n *\n *\n * ### Directive Definition Object\n *\n * The directive definition object provides instructions to the {@link ng.$compile\n * compiler}. The attributes are:\n *\n * #### `multiElement`\n * When this property is set to true (default is `false`), the HTML compiler will collect DOM nodes between\n * nodes with the attributes `directive-name-start` and `directive-name-end`, and group them\n * together as the directive elements. It is recommended that this feature be used on directives\n * which are not strictly behavioral (such as {@link ngClick}), and which\n * do not manipulate or replace child nodes (such as {@link ngInclude}).\n *\n * #### `priority`\n * When there are multiple directives defined on a single DOM element, sometimes it\n * is necessary to specify the order in which the directives are applied. The `priority` is used\n * to sort the directives before their `compile` functions get called. Priority is defined as a\n * number. Directives with greater numerical `priority` are compiled first. Pre-link functions\n * are also run in priority order, but post-link functions are run in reverse order. The order\n * of directives with the same priority is undefined. The default priority is `0`.\n *\n * #### `terminal`\n * If set to true then the current `priority` will be the last set of directives\n * which will execute (any directives at the current priority will still execute\n * as the order of execution on same `priority` is undefined). Note that expressions\n * and other directives used in the directive's template will also be excluded from execution.\n *\n * #### `scope`\n * The scope property can be `false`, `true`, or an object:\n *\n * * **`false` (default):** No scope will be created for the directive. The directive will use its\n * parent's scope.\n *\n * * **`true`:** A new child scope that prototypically inherits from its parent will be created for\n * the directive's element. If multiple directives on the same element request a new scope,\n * only one new scope is created.\n *\n * * **`{...}` (an object hash):** A new \"isolate\" scope is created for the directive's template.\n * The 'isolate' scope differs from normal scope in that it does not prototypically\n * inherit from its parent scope. This is useful when creating reusable components, which should not\n * accidentally read or modify data in the parent scope. Note that an isolate scope\n * directive without a `template` or `templateUrl` will not apply the isolate scope\n * to its children elements.\n *\n * The 'isolate' scope object hash defines a set of local scope properties derived from attributes on the\n * directive's element. These local properties are useful for aliasing values for templates. The keys in\n * the object hash map to the name of the property on the isolate scope; the values define how the property\n * is bound to the parent scope, via matching attributes on the directive's element:\n *\n * * `@` or `@attr` - bind a local scope property to the value of DOM attribute. The result is\n * always a string since DOM attributes are strings. If no `attr` name is specified then the\n * attribute name is assumed to be the same as the local name. Given `` and the isolate scope definition `scope: { localName:'@myAttr' }`,\n * the directive's scope property `localName` will reflect the interpolated value of `hello\n * {{name}}`. As the `name` attribute changes so will the `localName` property on the directive's\n * scope. The `name` is read from the parent scope (not the directive's scope).\n *\n * * `=` or `=attr` - set up a bidirectional binding between a local scope property and an expression\n * passed via the attribute `attr`. The expression is evaluated in the context of the parent scope.\n * If no `attr` name is specified then the attribute name is assumed to be the same as the local\n * name. Given `` and the isolate scope definition `scope: {\n * localModel: '=myAttr' }`, the property `localModel` on the directive's scope will reflect the\n * value of `parentModel` on the parent scope. Changes to `parentModel` will be reflected in\n * `localModel` and vice versa. Optional attributes should be marked as such with a question mark:\n * `=?` or `=?attr`. If the binding expression is non-assignable, or if the attribute isn't\n * optional and doesn't exist, an exception ({@link error/$compile/nonassign `$compile:nonassign`})\n * will be thrown upon discovering changes to the local value, since it will be impossible to sync\n * them back to the parent scope. By default, the {@link ng.$rootScope.Scope#$watch `$watch`}\n * method is used for tracking changes, and the equality check is based on object identity.\n * However, if an object literal or an array literal is passed as the binding expression, the\n * equality check is done by value (using the {@link angular.equals} function). It's also possible\n * to watch the evaluated value shallowly with {@link ng.$rootScope.Scope#$watchCollection\n * `$watchCollection`}: use `=*` or `=*attr` (`=*?` or `=*?attr` if the attribute is optional).\n *\n * * `<` or `` and directive definition of\n * `scope: { localModel:'` and the isolate scope definition `scope: {\n * localFn:'&myAttr' }`, the isolate scope property `localFn` will point to a function wrapper for\n * the `count = count + value` expression. Often it's desirable to pass data from the isolated scope\n * via an expression to the parent scope. This can be done by passing a map of local variable names\n * and values into the expression wrapper fn. For example, if the expression is `increment(amount)`\n * then we can specify the amount value by calling the `localFn` as `localFn({amount: 22})`.\n *\n * In general it's possible to apply more than one directive to one element, but there might be limitations\n * depending on the type of scope required by the directives. The following points will help explain these limitations.\n * For simplicity only two directives are taken into account, but it is also applicable for several directives:\n *\n * * **no scope** + **no scope** => Two directives which don't require their own scope will use their parent's scope\n * * **child scope** + **no scope** => Both directives will share one single child scope\n * * **child scope** + **child scope** => Both directives will share one single child scope\n * * **isolated scope** + **no scope** => The isolated directive will use it's own created isolated scope. The other directive will use\n * its parent's scope\n * * **isolated scope** + **child scope** => **Won't work!** Only one scope can be related to one element. Therefore these directives cannot\n * be applied to the same element.\n * * **isolated scope** + **isolated scope** => **Won't work!** Only one scope can be related to one element. Therefore these directives\n * cannot be applied to the same element.\n *\n *\n * #### `bindToController`\n * This property is used to bind scope properties directly to the controller. It can be either\n * `true` or an object hash with the same format as the `scope` property.\n *\n * When an isolate scope is used for a directive (see above), `bindToController: true` will\n * allow a component to have its properties bound to the controller, rather than to scope.\n *\n * After the controller is instantiated, the initial values of the isolate scope bindings will be bound to the controller\n * properties. You can access these bindings once they have been initialized by providing a controller method called\n * `$onInit`, which is called after all the controllers on an element have been constructed and had their bindings\n * initialized.\n *\n *
\n * **Deprecation warning:** if `$compileProcvider.preAssignBindingsEnabled(true)` was called, bindings for non-ES6 class\n * controllers are bound to `this` before the controller constructor is called but this use is now deprecated. Please\n * place initialization code that relies upon bindings inside a `$onInit` method on the controller, instead.\n *
\n *\n * It is also possible to set `bindToController` to an object hash with the same format as the `scope` property.\n * This will set up the scope bindings to the controller directly. Note that `scope` can still be used\n * to define which kind of scope is created. By default, no scope is created. Use `scope: {}` to create an isolate\n * scope (useful for component directives).\n *\n * If both `bindToController` and `scope` are defined and have object hashes, `bindToController` overrides `scope`.\n *\n *\n * #### `controller`\n * Controller constructor function. The controller is instantiated before the\n * pre-linking phase and can be accessed by other directives (see\n * `require` attribute). This allows the directives to communicate with each other and augment\n * each other's behavior. The controller is injectable (and supports bracket notation) with the following locals:\n *\n * * `$scope` - Current scope associated with the element\n * * `$element` - Current element\n * * `$attrs` - Current attributes object for the element\n * * `$transclude` - A transclude linking function pre-bound to the correct transclusion scope:\n * `function([scope], cloneLinkingFn, futureParentElement, slotName)`:\n * * `scope`: (optional) override the scope.\n * * `cloneLinkingFn`: (optional) argument to create clones of the original transcluded content.\n * * `futureParentElement` (optional):\n * * defines the parent to which the `cloneLinkingFn` will add the cloned elements.\n * * default: `$element.parent()` resp. `$element` for `transclude:'element'` resp. `transclude:true`.\n * * only needed for transcludes that are allowed to contain non html elements (e.g. SVG elements)\n * and when the `cloneLinkingFn` is passed,\n * as those elements need to created and cloned in a special way when they are defined outside their\n * usual containers (e.g. like ``).\n * * See also the `directive.templateNamespace` property.\n * * `slotName`: (optional) the name of the slot to transclude. If falsy (e.g. `null`, `undefined` or `''`)\n * then the default transclusion is provided.\n * The `$transclude` function also has a method on it, `$transclude.isSlotFilled(slotName)`, which returns\n * `true` if the specified slot contains content (i.e. one or more DOM nodes).\n *\n * #### `require`\n * Require another directive and inject its controller as the fourth argument to the linking function. The\n * `require` property can be a string, an array or an object:\n * * a **string** containing the name of the directive to pass to the linking function\n * * an **array** containing the names of directives to pass to the linking function. The argument passed to the\n * linking function will be an array of controllers in the same order as the names in the `require` property\n * * an **object** whose property values are the names of the directives to pass to the linking function. The argument\n * passed to the linking function will also be an object with matching keys, whose values will hold the corresponding\n * controllers.\n *\n * If the `require` property is an object and `bindToController` is truthy, then the required controllers are\n * bound to the controller using the keys of the `require` property. This binding occurs after all the controllers\n * have been constructed but before `$onInit` is called.\n * If the name of the required controller is the same as the local name (the key), the name can be\n * omitted. For example, `{parentDir: '^^'}` is equivalent to `{parentDir: '^^parentDir'}`.\n * See the {@link $compileProvider#component} helper for an example of how this can be used.\n * If no such required directive(s) can be found, or if the directive does not have a controller, then an error is\n * raised (unless no link function is specified and the required controllers are not being bound to the directive\n * controller, in which case error checking is skipped). The name can be prefixed with:\n *\n * * (no prefix) - Locate the required controller on the current element. Throw an error if not found.\n * * `?` - Attempt to locate the required controller or pass `null` to the `link` fn if not found.\n * * `^` - Locate the required controller by searching the element and its parents. Throw an error if not found.\n * * `^^` - Locate the required controller by searching the element's parents. Throw an error if not found.\n * * `?^` - Attempt to locate the required controller by searching the element and its parents or pass\n * `null` to the `link` fn if not found.\n * * `?^^` - Attempt to locate the required controller by searching the element's parents, or pass\n * `null` to the `link` fn if not found.\n *\n *\n * #### `controllerAs`\n * Identifier name for a reference to the controller in the directive's scope.\n * This allows the controller to be referenced from the directive template. This is especially\n * useful when a directive is used as component, i.e. with an `isolate` scope. It's also possible\n * to use it in a directive without an `isolate` / `new` scope, but you need to be aware that the\n * `controllerAs` reference might overwrite a property that already exists on the parent scope.\n *\n *\n * #### `restrict`\n * String of subset of `EACM` which restricts the directive to a specific directive\n * declaration style. If omitted, the defaults (elements and attributes) are used.\n *\n * * `E` - Element name (default): ``\n * * `A` - Attribute (default): `
`\n * * `C` - Class: `
`\n * * `M` - Comment: ``\n *\n *\n * #### `templateNamespace`\n * String representing the document type used by the markup in the template.\n * AngularJS needs this information as those elements need to be created and cloned\n * in a special way when they are defined outside their usual containers like `` and ``.\n *\n * * `html` - All root nodes in the template are HTML. Root nodes may also be\n * top-level elements such as `` or ``.\n * * `svg` - The root nodes in the template are SVG elements (excluding ``).\n * * `math` - The root nodes in the template are MathML elements (excluding ``).\n *\n * If no `templateNamespace` is specified, then the namespace is considered to be `html`.\n *\n * #### `template`\n * HTML markup that may:\n * * Replace the contents of the directive's element (default).\n * * Replace the directive's element itself (if `replace` is true - DEPRECATED).\n * * Wrap the contents of the directive's element (if `transclude` is true).\n *\n * Value may be:\n *\n * * A string. For example `
{{delete_str}}
`.\n * * A function which takes two arguments `tElement` and `tAttrs` (described in the `compile`\n * function api below) and returns a string value.\n *\n *\n * #### `templateUrl`\n * This is similar to `template` but the template is loaded from the specified URL, asynchronously.\n *\n * Because template loading is asynchronous the compiler will suspend compilation of directives on that element\n * for later when the template has been resolved. In the meantime it will continue to compile and link\n * sibling and parent elements as though this element had not contained any directives.\n *\n * The compiler does not suspend the entire compilation to wait for templates to be loaded because this\n * would result in the whole app \"stalling\" until all templates are loaded asynchronously - even in the\n * case when only one deeply nested directive has `templateUrl`.\n *\n * Template loading is asynchronous even if the template has been preloaded into the {@link $templateCache}\n *\n * You can specify `templateUrl` as a string representing the URL or as a function which takes two\n * arguments `tElement` and `tAttrs` (described in the `compile` function api below) and returns\n * a string value representing the url. In either case, the template URL is passed through {@link\n * $sce#getTrustedResourceUrl $sce.getTrustedResourceUrl}.\n *\n *\n * #### `replace`\n *
\n * **Note:** `replace` is deprecated in AngularJS and has been removed in the new Angular (v2+).\n *
\n *\n * Specifies what the template should replace. Defaults to `false`.\n *\n * * `true` - the template will replace the directive's element.\n * * `false` - the template will replace the contents of the directive's element.\n *\n * The replacement process migrates all of the attributes / classes from the old element to the new\n * one. See the {@link guide/directive#template-expanding-directive\n * Directives Guide} for an example.\n *\n * There are very few scenarios where element replacement is required for the application function,\n * the main one being reusable custom components that are used within SVG contexts\n * (because SVG doesn't work with custom elements in the DOM tree).\n *\n * #### `transclude`\n * Extract the contents of the element where the directive appears and make it available to the directive.\n * The contents are compiled and provided to the directive as a **transclusion function**. See the\n * {@link $compile#transclusion Transclusion} section below.\n *\n *\n * #### `compile`\n *\n * ```js\n * function compile(tElement, tAttrs, transclude) { ... }\n * ```\n *\n * The compile function deals with transforming the template DOM. Since most directives do not do\n * template transformation, it is not used often. The compile function takes the following arguments:\n *\n * * `tElement` - template element - The element where the directive has been declared. It is\n * safe to do template transformation on the element and child elements only.\n *\n * * `tAttrs` - template attributes - Normalized list of attributes declared on this element shared\n * between all directive compile functions.\n *\n * * `transclude` - [*DEPRECATED*!] A transclude linking function: `function(scope, cloneLinkingFn)`\n *\n *
\n * **Note:** The template instance and the link instance may be different objects if the template has\n * been cloned. For this reason it is **not** safe to do anything other than DOM transformations that\n * apply to all cloned DOM nodes within the compile function. Specifically, DOM listener registration\n * should be done in a linking function rather than in a compile function.\n *
\n\n *
\n * **Note:** The compile function cannot handle directives that recursively use themselves in their\n * own templates or compile functions. Compiling these directives results in an infinite loop and\n * stack overflow errors.\n *\n * This can be avoided by manually using $compile in the postLink function to imperatively compile\n * a directive's template instead of relying on automatic template compilation via `template` or\n * `templateUrl` declaration or manual compilation inside the compile function.\n *
\n *\n *
\n * **Note:** The `transclude` function that is passed to the compile function is deprecated, as it\n * e.g. does not know about the right outer scope. Please use the transclude function that is passed\n * to the link function instead.\n *
\n\n * A compile function can have a return value which can be either a function or an object.\n *\n * * returning a (post-link) function - is equivalent to registering the linking function via the\n * `link` property of the config object when the compile function is empty.\n *\n * * returning an object with function(s) registered via `pre` and `post` properties - allows you to\n * control when a linking function should be called during the linking phase. See info about\n * pre-linking and post-linking functions below.\n *\n *\n * #### `link`\n * This property is used only if the `compile` property is not defined.\n *\n * ```js\n * function link(scope, iElement, iAttrs, controller, transcludeFn) { ... }\n * ```\n *\n * The link function is responsible for registering DOM listeners as well as updating the DOM. It is\n * executed after the template has been cloned. This is where most of the directive logic will be\n * put.\n *\n * * `scope` - {@link ng.$rootScope.Scope Scope} - The scope to be used by the\n * directive for registering {@link ng.$rootScope.Scope#$watch watches}.\n *\n * * `iElement` - instance element - The element where the directive is to be used. It is safe to\n * manipulate the children of the element only in `postLink` function since the children have\n * already been linked.\n *\n * * `iAttrs` - instance attributes - Normalized list of attributes declared on this element shared\n * between all directive linking functions.\n *\n * * `controller` - the directive's required controller instance(s) - Instances are shared\n * among all directives, which allows the directives to use the controllers as a communication\n * channel. The exact value depends on the directive's `require` property:\n * * no controller(s) required: the directive's own controller, or `undefined` if it doesn't have one\n * * `string`: the controller instance\n * * `array`: array of controller instances\n *\n * If a required controller cannot be found, and it is optional, the instance is `null`,\n * otherwise the {@link error:$compile:ctreq Missing Required Controller} error is thrown.\n *\n * Note that you can also require the directive's own controller - it will be made available like\n * any other controller.\n *\n * * `transcludeFn` - A transclude linking function pre-bound to the correct transclusion scope.\n * This is the same as the `$transclude` parameter of directive controllers,\n * see {@link ng.$compile#-controller- the controller section for details}.\n * `function([scope], cloneLinkingFn, futureParentElement)`.\n *\n * #### Pre-linking function\n *\n * Executed before the child elements are linked. Not safe to do DOM transformation since the\n * compiler linking function will fail to locate the correct elements for linking.\n *\n * #### Post-linking function\n *\n * Executed after the child elements are linked.\n *\n * Note that child elements that contain `templateUrl` directives will not have been compiled\n * and linked since they are waiting for their template to load asynchronously and their own\n * compilation and linking has been suspended until that occurs.\n *\n * It is safe to do DOM transformation in the post-linking function on elements that are not waiting\n * for their async templates to be resolved.\n *\n *\n * ### Transclusion\n *\n * Transclusion is the process of extracting a collection of DOM elements from one part of the DOM and\n * copying them to another part of the DOM, while maintaining their connection to the original AngularJS\n * scope from where they were taken.\n *\n * Transclusion is used (often with {@link ngTransclude}) to insert the\n * original contents of a directive's element into a specified place in the template of the directive.\n * The benefit of transclusion, over simply moving the DOM elements manually, is that the transcluded\n * content has access to the properties on the scope from which it was taken, even if the directive\n * has isolated scope.\n * See the {@link guide/directive#creating-a-directive-that-wraps-other-elements Directives Guide}.\n *\n * This makes it possible for the widget to have private state for its template, while the transcluded\n * content has access to its originating scope.\n *\n *
\n * **Note:** When testing an element transclude directive you must not place the directive at the root of the\n * DOM fragment that is being compiled. See {@link guide/unit-testing#testing-transclusion-directives\n * Testing Transclusion Directives}.\n *
\n *\n * There are three kinds of transclusion depending upon whether you want to transclude just the contents of the\n * directive's element, the entire element or multiple parts of the element contents:\n *\n * * `true` - transclude the content (i.e. the child nodes) of the directive's element.\n * * `'element'` - transclude the whole of the directive's element including any directives on this\n * element that defined at a lower priority than this directive. When used, the `template`\n * property is ignored.\n * * **`{...}` (an object hash):** - map elements of the content onto transclusion \"slots\" in the template.\n *\n * **Mult-slot transclusion** is declared by providing an object for the `transclude` property.\n *\n * This object is a map where the keys are the name of the slot to fill and the value is an element selector\n * used to match the HTML to the slot. The element selector should be in normalized form (e.g. `myElement`)\n * and will match the standard element variants (e.g. `my-element`, `my:element`, `data-my-element`, etc).\n *\n * For further information check out the guide on {@link guide/directive#matching-directives Matching Directives}\n *\n * If the element selector is prefixed with a `?` then that slot is optional.\n *\n * For example, the transclude object `{ slotA: '?myCustomElement' }` maps `` elements to\n * the `slotA` slot, which can be accessed via the `$transclude` function or via the {@link ngTransclude} directive.\n *\n * Slots that are not marked as optional (`?`) will trigger a compile time error if there are no matching elements\n * in the transclude content. If you wish to know if an optional slot was filled with content, then you can call\n * `$transclude.isSlotFilled(slotName)` on the transclude function passed to the directive's link function and\n * injectable into the directive's controller.\n *\n *\n * #### Transclusion Functions\n *\n * When a directive requests transclusion, the compiler extracts its contents and provides a **transclusion\n * function** to the directive's `link` function and `controller`. This transclusion function is a special\n * **linking function** that will return the compiled contents linked to a new transclusion scope.\n *\n *
\n * If you are just using {@link ngTransclude} then you don't need to worry about this function, since\n * ngTransclude will deal with it for us.\n *
\n *\n * If you want to manually control the insertion and removal of the transcluded content in your directive\n * then you must use this transclude function. When you call a transclude function it returns a a jqLite/JQuery\n * object that contains the compiled DOM, which is linked to the correct transclusion scope.\n *\n * When you call a transclusion function you can pass in a **clone attach function**. This function accepts\n * two parameters, `function(clone, scope) { ... }`, where the `clone` is a fresh compiled copy of your transcluded\n * content and the `scope` is the newly created transclusion scope, which the clone will be linked to.\n *\n *
\n * **Best Practice**: Always provide a `cloneFn` (clone attach function) when you call a transclude function\n * since you then get a fresh clone of the original DOM and also have access to the new transclusion scope.\n *
\n *\n * It is normal practice to attach your transcluded content (`clone`) to the DOM inside your **clone\n * attach function**:\n *\n * ```js\n * var transcludedContent, transclusionScope;\n *\n * $transclude(function(clone, scope) {\n * element.append(clone);\n * transcludedContent = clone;\n * transclusionScope = scope;\n * });\n * ```\n *\n * Later, if you want to remove the transcluded content from your DOM then you should also destroy the\n * associated transclusion scope:\n *\n * ```js\n * transcludedContent.remove();\n * transclusionScope.$destroy();\n * ```\n *\n *
\n * **Best Practice**: if you intend to add and remove transcluded content manually in your directive\n * (by calling the transclude function to get the DOM and calling `element.remove()` to remove it),\n * then you are also responsible for calling `$destroy` on the transclusion scope.\n *
\n *\n * The built-in DOM manipulation directives, such as {@link ngIf}, {@link ngSwitch} and {@link ngRepeat}\n * automatically destroy their transcluded clones as necessary so you do not need to worry about this if\n * you are simply using {@link ngTransclude} to inject the transclusion into your directive.\n *\n *\n * #### Transclusion Scopes\n *\n * When you call a transclude function it returns a DOM fragment that is pre-bound to a **transclusion\n * scope**. This scope is special, in that it is a child of the directive's scope (and so gets destroyed\n * when the directive's scope gets destroyed) but it inherits the properties of the scope from which it\n * was taken.\n *\n * For example consider a directive that uses transclusion and isolated scope. The DOM hierarchy might look\n * like this:\n *\n * ```html\n *
\n *
\n *
\n *
\n *
\n *
\n * ```\n *\n * The `$parent` scope hierarchy will look like this:\n *\n ```\n - $rootScope\n - isolate\n - transclusion\n ```\n *\n * but the scopes will inherit prototypically from different scopes to their `$parent`.\n *\n ```\n - $rootScope\n - transclusion\n - isolate\n ```\n *\n *\n * ### Attributes\n *\n * The {@link ng.$compile.directive.Attributes Attributes} object - passed as a parameter in the\n * `link()` or `compile()` functions. It has a variety of uses.\n *\n * * *Accessing normalized attribute names:* Directives like 'ngBind' can be expressed in many ways:\n * 'ng:bind', `data-ng-bind`, or 'x-ng-bind'. The attributes object allows for normalized access\n * to the attributes.\n *\n * * *Directive inter-communication:* All directives share the same instance of the attributes\n * object which allows the directives to use the attributes object as inter directive\n * communication.\n *\n * * *Supports interpolation:* Interpolation attributes are assigned to the attribute object\n * allowing other directives to read the interpolated value.\n *\n * * *Observing interpolated attributes:* Use `$observe` to observe the value changes of attributes\n * that contain interpolation (e.g. `src=\"{{bar}}\"`). Not only is this very efficient but it's also\n * the only way to easily get the actual value because during the linking phase the interpolation\n * hasn't been evaluated yet and so the value is at this time set to `undefined`.\n *\n * ```js\n * function linkingFn(scope, elm, attrs, ctrl) {\n * // get the attribute value\n * console.log(attrs.ngModel);\n *\n * // change the attribute\n * attrs.$set('ngModel', 'new value');\n *\n * // observe changes to interpolated attribute\n * attrs.$observe('ngModel', function(value) {\n * console.log('ngModel has changed value to ' + value);\n * });\n * }\n * ```\n *\n * ## Example\n *\n *
\n * **Note**: Typically directives are registered with `module.directive`. The example below is\n * to illustrate how `$compile` works.\n *
\n *\n \n \n \n
\n
\n
\n
\n
\n
\n \n it('should auto compile', function() {\n var textarea = $('textarea');\n var output = $('div[compile]');\n // The initial state reads 'Hello AngularJS'.\n expect(output.getText()).toBe('Hello AngularJS');\n textarea.clear();\n textarea.sendKeys('{{name}}!');\n expect(output.getText()).toBe('AngularJS!');\n });\n \n
\n\n *\n *\n * @param {string|DOMElement} element Element or HTML string to compile into a template function.\n * @param {function(angular.Scope, cloneAttachFn=)} transclude function available to directives - DEPRECATED.\n *\n *
\n * **Note:** Passing a `transclude` function to the $compile function is deprecated, as it\n * e.g. will not use the right outer scope. Please pass the transclude function as a\n * `parentBoundTranscludeFn` to the link function instead.\n *
\n *\n * @param {number} maxPriority only apply directives lower than given priority (Only effects the\n * root element(s), not their children)\n * @returns {function(scope, cloneAttachFn=, options=)} a link function which is used to bind template\n * (a DOM element/tree) to a scope. Where:\n *\n * * `scope` - A {@link ng.$rootScope.Scope Scope} to bind to.\n * * `cloneAttachFn` - If `cloneAttachFn` is provided, then the link function will clone the\n * `template` and call the `cloneAttachFn` function allowing the caller to attach the\n * cloned elements to the DOM document at the appropriate place. The `cloneAttachFn` is\n * called as:
`cloneAttachFn(clonedElement, scope)` where:\n *\n * * `clonedElement` - is a clone of the original `element` passed into the compiler.\n * * `scope` - is the current scope with which the linking function is working with.\n *\n * * `options` - An optional object hash with linking options. If `options` is provided, then the following\n * keys may be used to control linking behavior:\n *\n * * `parentBoundTranscludeFn` - the transclude function made available to\n * directives; if given, it will be passed through to the link functions of\n * directives found in `element` during compilation.\n * * `transcludeControllers` - an object hash with keys that map controller names\n * to a hash with the key `instance`, which maps to the controller instance;\n * if given, it will make the controllers available to directives on the compileNode:\n * ```\n * {\n * parent: {\n * instance: parentControllerInstance\n * }\n * }\n * ```\n * * `futureParentElement` - defines the parent to which the `cloneAttachFn` will add\n * the cloned elements; only needed for transcludes that are allowed to contain non html\n * elements (e.g. SVG elements). See also the directive.controller property.\n *\n * Calling the linking function returns the element of the template. It is either the original\n * element passed in, or the clone of the element if the `cloneAttachFn` is provided.\n *\n * After linking the view is not updated until after a call to $digest which typically is done by\n * AngularJS automatically.\n *\n * If you need access to the bound view, there are two ways to do it:\n *\n * - If you are not asking the linking function to clone the template, create the DOM element(s)\n * before you send them to the compiler and keep this reference around.\n * ```js\n * var element = $compile('

{{total}}

')(scope);\n * ```\n *\n * - if on the other hand, you need the element to be cloned, the view reference from the original\n * example would not point to the clone, but rather to the original template that was cloned. In\n * this case, you can access the clone via the cloneAttachFn:\n * ```js\n * var templateElement = angular.element('

{{total}}

'),\n * scope = ....;\n *\n * var clonedElement = $compile(templateElement)(scope, function(clonedElement, scope) {\n * //attach the clone to DOM document at the right place\n * });\n *\n * //now we have reference to the cloned DOM via `clonedElement`\n * ```\n *\n *\n * For information on how the compiler works, see the\n * {@link guide/compiler AngularJS HTML Compiler} section of the Developer Guide.\n *\n * @knownIssue\n *\n * ### Double Compilation\n *\n Double compilation occurs when an already compiled part of the DOM gets\n compiled again. This is an undesired effect and can lead to misbehaving directives, performance issues,\n and memory leaks. Refer to the Compiler Guide {@link guide/compiler#double-compilation-and-how-to-avoid-it\n section on double compilation} for an in-depth explanation and ways to avoid it.\n\n * @knownIssue\n\n ### Issues with `replace: true`\n *\n *
\n * **Note**: {@link $compile#-replace- `replace: true`} is deprecated and not recommended to use,\n * mainly due to the issues listed here. It has been completely removed in the new Angular.\n *
\n *\n * #### Attribute values are not merged\n *\n * When a `replace` directive encounters the same attribute on the original and the replace node,\n * it will simply deduplicate the attribute and join the values with a space or with a `;` in case of\n * the `style` attribute.\n * ```html\n * Original Node: \n * Replace Template: \n * Result: \n * ```\n *\n * That means attributes that contain AngularJS expressions will not be merged correctly, e.g.\n * {@link ngShow} or {@link ngClass} will cause a {@link $parse} error:\n *\n * ```html\n * Original Node: \n * Replace Template: \n * Result: \n * ```\n *\n * See issue [#5695](https://github.com/angular/angular.js/issues/5695).\n *\n * #### Directives are not deduplicated before compilation\n *\n * When the original node and the replace template declare the same directive(s), they will be\n * {@link guide/compiler#double-compilation-and-how-to-avoid-it compiled twice} because the compiler\n * does not deduplicate them. In many cases, this is not noticable, but e.g. {@link ngModel} will\n * attach `$formatters` and `$parsers` twice.\n *\n * See issue [#2573](https://github.com/angular/angular.js/issues/2573).\n *\n * #### `transclude: element` in the replace template root can have\n * unexpected effects\n *\n * When the replace template has a directive at the root node that uses\n * {@link $compile#-transclude- `transclude: element`}, e.g.\n * {@link ngIf} or {@link ngRepeat}, the DOM structure or scope inheritance can be incorrect.\n * See the following issues:\n *\n * - Incorrect scope on replaced element:\n * [#9837](https://github.com/angular/angular.js/issues/9837)\n * - Different DOM between `template` and `templateUrl`:\n * [#10612](https://github.com/angular/angular.js/issues/14326)\n *\n */\n\nvar $compileMinErr = minErr('$compile');\n\nfunction UNINITIALIZED_VALUE() {}\nvar _UNINITIALIZED_VALUE = new UNINITIALIZED_VALUE();\n\n/**\n * @ngdoc provider\n * @name $compileProvider\n *\n * @description\n */\n$CompileProvider.$inject = ['$provide', '$$sanitizeUriProvider'];\n/** @this */\nfunction $CompileProvider($provide, $$sanitizeUriProvider) {\n var hasDirectives = {};\n var Suffix = 'Directive';\n var COMMENT_DIRECTIVE_REGEXP = /^\\s*directive:\\s*([\\w-]+)\\s+(.*)$/;\n var CLASS_DIRECTIVE_REGEXP = /(([\\w-]+)(?::([^;]+))?;?)/;\n var ALL_OR_NOTHING_ATTRS = makeMap('ngSrc,ngSrcset,src,srcset');\n var REQUIRE_PREFIX_REGEXP = /^(?:(\\^\\^?)?(\\?)?(\\^\\^?)?)?/;\n\n // Ref: http://developers.whatwg.org/webappapis.html#event-handler-idl-attributes\n // The assumption is that future DOM event attribute names will begin with\n // 'on' and be composed of only English letters.\n var EVENT_HANDLER_ATTR_REGEXP = /^(on[a-z]+|formaction)$/;\n var bindingCache = createMap();\n\n function parseIsolateBindings(scope, directiveName, isController) {\n var LOCAL_REGEXP = /^([@&<]|=(\\*?))(\\??)\\s*([\\w$]*)$/;\n\n var bindings = createMap();\n\n forEach(scope, function(definition, scopeName) {\n definition = definition.trim();\n\n if (definition in bindingCache) {\n bindings[scopeName] = bindingCache[definition];\n return;\n }\n var match = definition.match(LOCAL_REGEXP);\n\n if (!match) {\n throw $compileMinErr('iscp',\n 'Invalid {3} for directive \\'{0}\\'.' +\n ' Definition: {... {1}: \\'{2}\\' ...}',\n directiveName, scopeName, definition,\n (isController ? 'controller bindings definition' :\n 'isolate scope definition'));\n }\n\n bindings[scopeName] = {\n mode: match[1][0],\n collection: match[2] === '*',\n optional: match[3] === '?',\n attrName: match[4] || scopeName\n };\n if (match[4]) {\n bindingCache[definition] = bindings[scopeName];\n }\n });\n\n return bindings;\n }\n\n function parseDirectiveBindings(directive, directiveName) {\n var bindings = {\n isolateScope: null,\n bindToController: null\n };\n if (isObject(directive.scope)) {\n if (directive.bindToController === true) {\n bindings.bindToController = parseIsolateBindings(directive.scope,\n directiveName, true);\n bindings.isolateScope = {};\n } else {\n bindings.isolateScope = parseIsolateBindings(directive.scope,\n directiveName, false);\n }\n }\n if (isObject(directive.bindToController)) {\n bindings.bindToController =\n parseIsolateBindings(directive.bindToController, directiveName, true);\n }\n if (bindings.bindToController && !directive.controller) {\n // There is no controller\n throw $compileMinErr('noctrl',\n 'Cannot bind to controller without directive \\'{0}\\'s controller.',\n directiveName);\n }\n return bindings;\n }\n\n function assertValidDirectiveName(name) {\n var letter = name.charAt(0);\n if (!letter || letter !== lowercase(letter)) {\n throw $compileMinErr('baddir', 'Directive/Component name \\'{0}\\' is invalid. The first character must be a lowercase letter', name);\n }\n if (name !== name.trim()) {\n throw $compileMinErr('baddir',\n 'Directive/Component name \\'{0}\\' is invalid. The name should not contain leading or trailing whitespaces',\n name);\n }\n }\n\n function getDirectiveRequire(directive) {\n var require = directive.require || (directive.controller && directive.name);\n\n if (!isArray(require) && isObject(require)) {\n forEach(require, function(value, key) {\n var match = value.match(REQUIRE_PREFIX_REGEXP);\n var name = value.substring(match[0].length);\n if (!name) require[key] = match[0] + key;\n });\n }\n\n return require;\n }\n\n function getDirectiveRestrict(restrict, name) {\n if (restrict && !(isString(restrict) && /[EACM]/.test(restrict))) {\n throw $compileMinErr('badrestrict',\n 'Restrict property \\'{0}\\' of directive \\'{1}\\' is invalid',\n restrict,\n name);\n }\n\n return restrict || 'EA';\n }\n\n /**\n * @ngdoc method\n * @name $compileProvider#directive\n * @kind function\n *\n * @description\n * Register a new directive with the compiler.\n *\n * @param {string|Object} name Name of the directive in camel-case (i.e. ngBind which\n * will match as ng-bind), or an object map of directives where the keys are the\n * names and the values are the factories.\n * @param {Function|Array} directiveFactory An injectable directive factory function. See the\n * {@link guide/directive directive guide} and the {@link $compile compile API} for more info.\n * @returns {ng.$compileProvider} Self for chaining.\n */\n this.directive = function registerDirective(name, directiveFactory) {\n assertArg(name, 'name');\n assertNotHasOwnProperty(name, 'directive');\n if (isString(name)) {\n assertValidDirectiveName(name);\n assertArg(directiveFactory, 'directiveFactory');\n if (!hasDirectives.hasOwnProperty(name)) {\n hasDirectives[name] = [];\n $provide.factory(name + Suffix, ['$injector', '$exceptionHandler',\n function($injector, $exceptionHandler) {\n var directives = [];\n forEach(hasDirectives[name], function(directiveFactory, index) {\n try {\n var directive = $injector.invoke(directiveFactory);\n if (isFunction(directive)) {\n directive = { compile: valueFn(directive) };\n } else if (!directive.compile && directive.link) {\n directive.compile = valueFn(directive.link);\n }\n directive.priority = directive.priority || 0;\n directive.index = index;\n directive.name = directive.name || name;\n directive.require = getDirectiveRequire(directive);\n directive.restrict = getDirectiveRestrict(directive.restrict, name);\n directive.$$moduleName = directiveFactory.$$moduleName;\n directives.push(directive);\n } catch (e) {\n $exceptionHandler(e);\n }\n });\n return directives;\n }]);\n }\n hasDirectives[name].push(directiveFactory);\n } else {\n forEach(name, reverseParams(registerDirective));\n }\n return this;\n };\n\n /**\n * @ngdoc method\n * @name $compileProvider#component\n * @module ng\n * @param {string|Object} name Name of the component in camelCase (i.e. `myComp` which will match ``),\n * or an object map of components where the keys are the names and the values are the component definition objects.\n * @param {Object} options Component definition object (a simplified\n * {@link ng.$compile#directive-definition-object directive definition object}),\n * with the following properties (all optional):\n *\n * - `controller` – `{(string|function()=}` – controller constructor function that should be\n * associated with newly created scope or the name of a {@link ng.$compile#-controller-\n * registered controller} if passed as a string. An empty `noop` function by default.\n * - `controllerAs` – `{string=}` – identifier name for to reference the controller in the component's scope.\n * If present, the controller will be published to scope under the `controllerAs` name.\n * If not present, this will default to be `$ctrl`.\n * - `template` – `{string=|function()=}` – html template as a string or a function that\n * returns an html template as a string which should be used as the contents of this component.\n * Empty string by default.\n *\n * If `template` is a function, then it is {@link auto.$injector#invoke injected} with\n * the following locals:\n *\n * - `$element` - Current element\n * - `$attrs` - Current attributes object for the element\n *\n * - `templateUrl` – `{string=|function()=}` – path or function that returns a path to an html\n * template that should be used as the contents of this component.\n *\n * If `templateUrl` is a function, then it is {@link auto.$injector#invoke injected} with\n * the following locals:\n *\n * - `$element` - Current element\n * - `$attrs` - Current attributes object for the element\n *\n * - `bindings` – `{object=}` – defines bindings between DOM attributes and component properties.\n * Component properties are always bound to the component controller and not to the scope.\n * See {@link ng.$compile#-bindtocontroller- `bindToController`}.\n * - `transclude` – `{boolean=}` – whether {@link $compile#transclusion content transclusion} is enabled.\n * Disabled by default.\n * - `require` - `{Object=}` - requires the controllers of other directives and binds them to\n * this component's controller. The object keys specify the property names under which the required\n * controllers (object values) will be bound. See {@link ng.$compile#-require- `require`}.\n * - `$...` – additional properties to attach to the directive factory function and the controller\n * constructor function. (This is used by the component router to annotate)\n *\n * @returns {ng.$compileProvider} the compile provider itself, for chaining of function calls.\n * @description\n * Register a **component definition** with the compiler. This is a shorthand for registering a special\n * type of directive, which represents a self-contained UI component in your application. Such components\n * are always isolated (i.e. `scope: {}`) and are always restricted to elements (i.e. `restrict: 'E'`).\n *\n * Component definitions are very simple and do not require as much configuration as defining general\n * directives. Component definitions usually consist only of a template and a controller backing it.\n *\n * In order to make the definition easier, components enforce best practices like use of `controllerAs`,\n * `bindToController`. They always have **isolate scope** and are restricted to elements.\n *\n * Here are a few examples of how you would usually define components:\n *\n * ```js\n * var myMod = angular.module(...);\n * myMod.component('myComp', {\n * template: '
My name is {{$ctrl.name}}
',\n * controller: function() {\n * this.name = 'shahar';\n * }\n * });\n *\n * myMod.component('myComp', {\n * template: '
My name is {{$ctrl.name}}
',\n * bindings: {name: '@'}\n * });\n *\n * myMod.component('myComp', {\n * templateUrl: 'views/my-comp.html',\n * controller: 'MyCtrl',\n * controllerAs: 'ctrl',\n * bindings: {name: '@'}\n * });\n *\n * ```\n * For more examples, and an in-depth guide, see the {@link guide/component component guide}.\n *\n *
\n * See also {@link ng.$compileProvider#directive $compileProvider.directive()}.\n */\n this.component = function registerComponent(name, options) {\n if (!isString(name)) {\n forEach(name, reverseParams(bind(this, registerComponent)));\n return this;\n }\n\n var controller = options.controller || function() {};\n\n function factory($injector) {\n function makeInjectable(fn) {\n if (isFunction(fn) || isArray(fn)) {\n return /** @this */ function(tElement, tAttrs) {\n return $injector.invoke(fn, this, {$element: tElement, $attrs: tAttrs});\n };\n } else {\n return fn;\n }\n }\n\n var template = (!options.template && !options.templateUrl ? '' : options.template);\n var ddo = {\n controller: controller,\n controllerAs: identifierForController(options.controller) || options.controllerAs || '$ctrl',\n template: makeInjectable(template),\n templateUrl: makeInjectable(options.templateUrl),\n transclude: options.transclude,\n scope: {},\n bindToController: options.bindings || {},\n restrict: 'E',\n require: options.require\n };\n\n // Copy annotations (starting with $) over to the DDO\n forEach(options, function(val, key) {\n if (key.charAt(0) === '$') ddo[key] = val;\n });\n\n return ddo;\n }\n\n // TODO(pete) remove the following `forEach` before we release 1.6.0\n // The component-router@0.2.0 looks for the annotations on the controller constructor\n // Nothing in AngularJS looks for annotations on the factory function but we can't remove\n // it from 1.5.x yet.\n\n // Copy any annotation properties (starting with $) over to the factory and controller constructor functions\n // These could be used by libraries such as the new component router\n forEach(options, function(val, key) {\n if (key.charAt(0) === '$') {\n factory[key] = val;\n // Don't try to copy over annotations to named controller\n if (isFunction(controller)) controller[key] = val;\n }\n });\n\n factory.$inject = ['$injector'];\n\n return this.directive(name, factory);\n };\n\n\n /**\n * @ngdoc method\n * @name $compileProvider#aHrefSanitizationWhitelist\n * @kind function\n *\n * @description\n * Retrieves or overrides the default regular expression that is used for whitelisting of safe\n * urls during a[href] sanitization.\n *\n * The sanitization is a security measure aimed at preventing XSS attacks via html links.\n *\n * Any url about to be assigned to a[href] via data-binding is first normalized and turned into\n * an absolute url. Afterwards, the url is matched against the `aHrefSanitizationWhitelist`\n * regular expression. If a match is found, the original url is written into the dom. Otherwise,\n * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM.\n *\n * @param {RegExp=} regexp New regexp to whitelist urls with.\n * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for\n * chaining otherwise.\n */\n this.aHrefSanitizationWhitelist = function(regexp) {\n if (isDefined(regexp)) {\n $$sanitizeUriProvider.aHrefSanitizationWhitelist(regexp);\n return this;\n } else {\n return $$sanitizeUriProvider.aHrefSanitizationWhitelist();\n }\n };\n\n\n /**\n * @ngdoc method\n * @name $compileProvider#imgSrcSanitizationWhitelist\n * @kind function\n *\n * @description\n * Retrieves or overrides the default regular expression that is used for whitelisting of safe\n * urls during img[src] sanitization.\n *\n * The sanitization is a security measure aimed at prevent XSS attacks via html links.\n *\n * Any url about to be assigned to img[src] via data-binding is first normalized and turned into\n * an absolute url. Afterwards, the url is matched against the `imgSrcSanitizationWhitelist`\n * regular expression. If a match is found, the original url is written into the dom. Otherwise,\n * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM.\n *\n * @param {RegExp=} regexp New regexp to whitelist urls with.\n * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for\n * chaining otherwise.\n */\n this.imgSrcSanitizationWhitelist = function(regexp) {\n if (isDefined(regexp)) {\n $$sanitizeUriProvider.imgSrcSanitizationWhitelist(regexp);\n return this;\n } else {\n return $$sanitizeUriProvider.imgSrcSanitizationWhitelist();\n }\n };\n\n /**\n * @ngdoc method\n * @name $compileProvider#debugInfoEnabled\n *\n * @param {boolean=} enabled update the debugInfoEnabled state if provided, otherwise just return the\n * current debugInfoEnabled state\n * @returns {*} current value if used as getter or itself (chaining) if used as setter\n *\n * @kind function\n *\n * @description\n * Call this method to enable/disable various debug runtime information in the compiler such as adding\n * binding information and a reference to the current scope on to DOM elements.\n * If enabled, the compiler will add the following to DOM elements that have been bound to the scope\n * * `ng-binding` CSS class\n * * `ng-scope` and `ng-isolated-scope` CSS classes\n * * `$binding` data property containing an array of the binding expressions\n * * Data properties used by the {@link angular.element#methods `scope()`/`isolateScope()` methods} to return\n * the element's scope.\n * * Placeholder comments will contain information about what directive and binding caused the placeholder.\n * E.g. ``.\n *\n * You may want to disable this in production for a significant performance boost. See\n * {@link guide/production#disabling-debug-data Disabling Debug Data} for more.\n *\n * The default value is true.\n */\n var debugInfoEnabled = true;\n this.debugInfoEnabled = function(enabled) {\n if (isDefined(enabled)) {\n debugInfoEnabled = enabled;\n return this;\n }\n return debugInfoEnabled;\n };\n\n /**\n * @ngdoc method\n * @name $compileProvider#preAssignBindingsEnabled\n *\n * @param {boolean=} enabled update the preAssignBindingsEnabled state if provided, otherwise just return the\n * current preAssignBindingsEnabled state\n * @returns {*} current value if used as getter or itself (chaining) if used as setter\n *\n * @kind function\n *\n * @description\n * Call this method to enable/disable whether directive controllers are assigned bindings before\n * calling the controller's constructor.\n * If enabled (true), the compiler assigns the value of each of the bindings to the\n * properties of the controller object before the constructor of this object is called.\n *\n * If disabled (false), the compiler calls the constructor first before assigning bindings.\n *\n * The default value is false.\n *\n * @deprecated\n * sinceVersion=\"1.6.0\"\n * removeVersion=\"1.7.0\"\n *\n * This method and the option to assign the bindings before calling the controller's constructor\n * will be removed in v1.7.0.\n */\n var preAssignBindingsEnabled = false;\n this.preAssignBindingsEnabled = function(enabled) {\n if (isDefined(enabled)) {\n preAssignBindingsEnabled = enabled;\n return this;\n }\n return preAssignBindingsEnabled;\n };\n\n /**\n * @ngdoc method\n * @name $compileProvider#strictComponentBindingsEnabled\n *\n * @param {boolean=} enabled update the strictComponentBindingsEnabled state if provided, otherwise just return the\n * current strictComponentBindingsEnabled state\n * @returns {*} current value if used as getter or itself (chaining) if used as setter\n *\n * @kind function\n *\n * @description\n * Call this method to enable/disable strict component bindings check. If enabled, the compiler will enforce that\n * for all bindings of a component that are not set as optional with `?`, an attribute needs to be provided\n * on the component's HTML tag.\n *\n * The default value is false.\n */\n var strictComponentBindingsEnabled = false;\n this.strictComponentBindingsEnabled = function(enabled) {\n if (isDefined(enabled)) {\n strictComponentBindingsEnabled = enabled;\n return this;\n }\n return strictComponentBindingsEnabled;\n };\n\n var TTL = 10;\n /**\n * @ngdoc method\n * @name $compileProvider#onChangesTtl\n * @description\n *\n * Sets the number of times `$onChanges` hooks can trigger new changes before giving up and\n * assuming that the model is unstable.\n *\n * The current default is 10 iterations.\n *\n * In complex applications it's possible that dependencies between `$onChanges` hooks and bindings will result\n * in several iterations of calls to these hooks. However if an application needs more than the default 10\n * iterations to stabilize then you should investigate what is causing the model to continuously change during\n * the `$onChanges` hook execution.\n *\n * Increasing the TTL could have performance implications, so you should not change it without proper justification.\n *\n * @param {number} limit The number of `$onChanges` hook iterations.\n * @returns {number|object} the current limit (or `this` if called as a setter for chaining)\n */\n this.onChangesTtl = function(value) {\n if (arguments.length) {\n TTL = value;\n return this;\n }\n return TTL;\n };\n\n var commentDirectivesEnabledConfig = true;\n /**\n * @ngdoc method\n * @name $compileProvider#commentDirectivesEnabled\n * @description\n *\n * It indicates to the compiler\n * whether or not directives on comments should be compiled.\n * Defaults to `true`.\n *\n * Calling this function with false disables the compilation of directives\n * on comments for the whole application.\n * This results in a compilation performance gain,\n * as the compiler doesn't have to check comments when looking for directives.\n * This should however only be used if you are sure that no comment directives are used in\n * the application (including any 3rd party directives).\n *\n * @param {boolean} enabled `false` if the compiler may ignore directives on comments\n * @returns {boolean|object} the current value (or `this` if called as a setter for chaining)\n */\n this.commentDirectivesEnabled = function(value) {\n if (arguments.length) {\n commentDirectivesEnabledConfig = value;\n return this;\n }\n return commentDirectivesEnabledConfig;\n };\n\n\n var cssClassDirectivesEnabledConfig = true;\n /**\n * @ngdoc method\n * @name $compileProvider#cssClassDirectivesEnabled\n * @description\n *\n * It indicates to the compiler\n * whether or not directives on element classes should be compiled.\n * Defaults to `true`.\n *\n * Calling this function with false disables the compilation of directives\n * on element classes for the whole application.\n * This results in a compilation performance gain,\n * as the compiler doesn't have to check element classes when looking for directives.\n * This should however only be used if you are sure that no class directives are used in\n * the application (including any 3rd party directives).\n *\n * @param {boolean} enabled `false` if the compiler may ignore directives on element classes\n * @returns {boolean|object} the current value (or `this` if called as a setter for chaining)\n */\n this.cssClassDirectivesEnabled = function(value) {\n if (arguments.length) {\n cssClassDirectivesEnabledConfig = value;\n return this;\n }\n return cssClassDirectivesEnabledConfig;\n };\n\n this.$get = [\n '$injector', '$interpolate', '$exceptionHandler', '$templateRequest', '$parse',\n '$controller', '$rootScope', '$sce', '$animate', '$$sanitizeUri',\n function($injector, $interpolate, $exceptionHandler, $templateRequest, $parse,\n $controller, $rootScope, $sce, $animate, $$sanitizeUri) {\n var SIMPLE_ATTR_NAME = /^\\w/;\n var specialAttrHolder = window.document.createElement('div');\n\n\n var commentDirectivesEnabled = commentDirectivesEnabledConfig;\n var cssClassDirectivesEnabled = cssClassDirectivesEnabledConfig;\n\n\n var onChangesTtl = TTL;\n // The onChanges hooks should all be run together in a single digest\n // When changes occur, the call to trigger their hooks will be added to this queue\n var onChangesQueue;\n\n // This function is called in a $$postDigest to trigger all the onChanges hooks in a single digest\n function flushOnChangesQueue() {\n try {\n if (!(--onChangesTtl)) {\n // We have hit the TTL limit so reset everything\n onChangesQueue = undefined;\n throw $compileMinErr('infchng', '{0} $onChanges() iterations reached. Aborting!\\n', TTL);\n }\n // We must run this hook in an apply since the $$postDigest runs outside apply\n $rootScope.$apply(function() {\n for (var i = 0, ii = onChangesQueue.length; i < ii; ++i) {\n try {\n onChangesQueue[i]();\n } catch (e) {\n $exceptionHandler(e);\n }\n }\n // Reset the queue to trigger a new schedule next time there is a change\n onChangesQueue = undefined;\n });\n } finally {\n onChangesTtl++;\n }\n }\n\n\n function Attributes(element, attributesToCopy) {\n if (attributesToCopy) {\n var keys = Object.keys(attributesToCopy);\n var i;\n var l;\n var key;\n\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n this[key] = attributesToCopy[key];\n }\n } else {\n this.$attr = {};\n }\n\n this.$$element = element;\n }\n\n Attributes.prototype = {\n /**\n * @ngdoc method\n * @name $compile.directive.Attributes#$normalize\n * @kind function\n *\n * @description\n * Converts an attribute name (e.g. dash/colon/underscore-delimited string, optionally prefixed with `x-` or\n * `data-`) to its normalized, camelCase form.\n *\n * Also there is special case for Moz prefix starting with upper case letter.\n *\n * For further information check out the guide on {@link guide/directive#matching-directives Matching Directives}\n *\n * @param {string} name Name to normalize\n */\n $normalize: directiveNormalize,\n\n\n /**\n * @ngdoc method\n * @name $compile.directive.Attributes#$addClass\n * @kind function\n *\n * @description\n * Adds the CSS class value specified by the classVal parameter to the element. If animations\n * are enabled then an animation will be triggered for the class addition.\n *\n * @param {string} classVal The className value that will be added to the element\n */\n $addClass(classVal) {\n if (classVal && classVal.length > 0) {\n $animate.addClass(this.$$element, classVal);\n }\n },\n\n /**\n * @ngdoc method\n * @name $compile.directive.Attributes#$removeClass\n * @kind function\n *\n * @description\n * Removes the CSS class value specified by the classVal parameter from the element. If\n * animations are enabled then an animation will be triggered for the class removal.\n *\n * @param {string} classVal The className value that will be removed from the element\n */\n $removeClass(classVal) {\n if (classVal && classVal.length > 0) {\n $animate.removeClass(this.$$element, classVal);\n }\n },\n\n /**\n * @ngdoc method\n * @name $compile.directive.Attributes#$updateClass\n * @kind function\n *\n * @description\n * Adds and removes the appropriate CSS class values to the element based on the difference\n * between the new and old CSS class values (specified as newClasses and oldClasses).\n *\n * @param {string} newClasses The current CSS className value\n * @param {string} oldClasses The former CSS className value\n */\n $updateClass(newClasses, oldClasses) {\n var toAdd = tokenDifference(newClasses, oldClasses);\n if (toAdd && toAdd.length) {\n $animate.addClass(this.$$element, toAdd);\n }\n\n var toRemove = tokenDifference(oldClasses, newClasses);\n if (toRemove && toRemove.length) {\n $animate.removeClass(this.$$element, toRemove);\n }\n },\n\n /**\n * Set a normalized attribute on the element in a way such that all directives\n * can share the attribute. This function properly handles boolean attributes.\n * @param {string} key Normalized key. (ie ngAttribute)\n * @param {string|boolean} value The value to set. If `null` attribute will be deleted.\n * @param {boolean=} writeAttr If false, does not write the value to DOM element attribute.\n * Defaults to true.\n * @param {string=} attrName Optional none normalized name. Defaults to key.\n */\n $set(key, value, writeAttr, attrName) {\n // TODO: decide whether or not to throw an error if \"class\"\n //is set through this function since it may cause $updateClass to\n //become unstable.\n\n var node = this.$$element[0];\n\n var booleanKey = getBooleanAttrName(node, key);\n var aliasedKey = getAliasedAttrName(key);\n var observer = key;\n var nodeName;\n\n if (booleanKey) {\n this.$$element.prop(key, value);\n attrName = booleanKey;\n } else if (aliasedKey) {\n this[aliasedKey] = value;\n observer = aliasedKey;\n }\n\n this[key] = value;\n\n // translate normalized key to actual key\n if (attrName) {\n this.$attr[key] = attrName;\n } else {\n attrName = this.$attr[key];\n if (!attrName) {\n this.$attr[key] = attrName = snake_case(key, '-');\n }\n }\n\n nodeName = nodeName_(this.$$element);\n\n if ((nodeName === 'a' && (key === 'href' || key === 'xlinkHref')) || ((nodeName === 'img' || nodeName === 'source') && key === 'src')) {\n // sanitize a[href] and img[src] values\n this[key] = value = (value == null) ? value : $$sanitizeUri(value, key === 'src');\n } else if ((nodeName === 'img' || nodeName === 'source') && key === 'srcset' && isDefined(value)) {\n const srcSetValues = value.split(',')\n const sanitisedSrcSet = [];\n for (const srcSetValue of srcSetValues) {\n const wellTrimmedSrcSetValue = srcSetValue.trim().replace(/\\s{2,}/, ' ');\n const srcSplit = wellTrimmedSrcSetValue.split(' ');\n const uri = $$sanitizeUri(srcSplit[0], true);\n sanitisedSrcSet.push(`${uri}${srcSplit[1] !== undefined ? \" \" + srcSplit[1] : \"\"}`)\n }\n\n const result = sanitisedSrcSet.join(',');\n // sanitize img[srcset] values\n this[key] = value = result;\n }\n\n if (writeAttr !== false) {\n if (value == null) {\n this.$$element.removeAttr(attrName);\n } else {\n if (SIMPLE_ATTR_NAME.test(attrName)) {\n this.$$element.attr(attrName, value);\n } else {\n setSpecialAttr(this.$$element[0], attrName, value);\n }\n }\n }\n\n // fire observers\n var $$observers = this.$$observers;\n if ($$observers) {\n forEach($$observers[observer], function(fn) {\n try {\n fn(value);\n } catch (e) {\n $exceptionHandler(e);\n }\n });\n }\n },\n\n\n /**\n * @ngdoc method\n * @name $compile.directive.Attributes#$observe\n * @kind function\n *\n * @description\n * Observes an interpolated attribute.\n *\n * The observer function will be invoked once during the next `$digest` following\n * compilation. The observer is then invoked whenever the interpolated value\n * changes.\n *\n * @param {string} key Normalized key. (ie ngAttribute) .\n * @param {function(interpolatedValue)} fn Function that will be called whenever\n the interpolated value of the attribute changes.\n * See the {@link guide/interpolation#how-text-and-attribute-bindings-work Interpolation\n * guide} for more info.\n * @returns {function()} Returns a deregistration function for this observer.\n */\n $observe(key, fn) {\n var attrs = this;\n var $$observers = (attrs.$$observers || (attrs.$$observers = createMap()));\n var listeners = ($$observers[key] || ($$observers[key] = []));\n\n listeners.push(fn);\n $rootScope.$evalAsync(function() {\n if (!listeners.$$inter && attrs.hasOwnProperty(key) && !isUndefined(attrs[key])) {\n // no one registered attribute interpolation function, so lets call it manually\n fn(attrs[key]);\n }\n });\n\n return function() {\n arrayRemove(listeners, fn);\n };\n }\n };\n\n function setSpecialAttr(element, attrName, value) {\n // Attributes names that do not start with letters (such as `(click)`) cannot be set using `setAttribute`\n // so we have to jump through some hoops to get such an attribute\n // https://github.com/angular/angular.js/pull/13318\n specialAttrHolder.innerHTML = '';\n var attributes = specialAttrHolder.firstChild.attributes;\n var attribute = attributes[0];\n // We have to remove the attribute from its container element before we can add it to the destination element\n attributes.removeNamedItem(attribute.name);\n attribute.value = value;\n element.attributes.setNamedItem(attribute);\n }\n\n function safeAddClass($element, className) {\n try {\n $element.addClass(className);\n } catch (e) {\n // ignore, since it means that we are trying to set class on\n // SVG element, where class name is read-only.\n }\n }\n\n\n var startSymbol = $interpolate.startSymbol();\n var endSymbol = $interpolate.endSymbol();\n\n var denormalizeTemplate = (startSymbol === '{{' && endSymbol === '}}')\n ? identity\n : function denormalizeTemplate(template) {\n return template.replace(/\\{\\{/g, startSymbol).replace(/}}/g, endSymbol);\n };\n\n var NG_ATTR_BINDING = /^ngAttr[A-Z]/;\n var MULTI_ELEMENT_DIR_RE = /^(.+)Start$/;\n\n compile.$$addBindingInfo = debugInfoEnabled ? function $$addBindingInfo($element, binding) {\n var bindings = $element.data('$binding') || [];\n\n if (isArray(binding)) {\n bindings = bindings.concat(binding);\n } else {\n bindings.push(binding);\n }\n\n $element.data('$binding', bindings);\n } : noop;\n\n compile.$$addBindingClass = debugInfoEnabled ? function $$addBindingClass($element) {\n safeAddClass($element, 'ng-binding');\n } : noop;\n\n compile.$$addScopeInfo = debugInfoEnabled ? function $$addScopeInfo($element, scope, isolated, noTemplate) {\n var dataName = isolated ? (noTemplate ? '$isolateScopeNoTemplate' : '$isolateScope') : '$scope';\n $element.data(dataName, scope);\n } : noop;\n\n compile.$$addScopeClass = debugInfoEnabled ? function $$addScopeClass($element, isolated) {\n safeAddClass($element, isolated ? 'ng-isolate-scope' : 'ng-scope');\n } : noop;\n\n compile.$$createComment = function(directiveName, comment) {\n var content = '';\n if (debugInfoEnabled) {\n content = ' ' + (directiveName || '') + ': ';\n if (comment) content += comment + ' ';\n }\n return window.document.createComment(content);\n };\n\n return compile;\n\n //================================\n\n function compile($compileNodes, transcludeFn, maxPriority, ignoreDirective,\n previousCompileContext) {\n if (!($compileNodes instanceof jqLite)) {\n // jquery always rewraps, whereas we need to preserve the original selector so that we can\n // modify it.\n $compileNodes = jqLite($compileNodes);\n }\n var compositeLinkFn =\n compileNodes($compileNodes, transcludeFn, $compileNodes,\n maxPriority, ignoreDirective, previousCompileContext);\n compile.$$addScopeClass($compileNodes);\n var namespace = null;\n return function publicLinkFn(scope, cloneConnectFn, options) {\n if (!$compileNodes) {\n throw $compileMinErr('multilink', 'This element has already been linked.');\n }\n assertArg(scope, 'scope');\n\n if (previousCompileContext && previousCompileContext.needsNewScope) {\n // A parent directive did a replace and a directive on this element asked\n // for transclusion, which caused us to lose a layer of element on which\n // we could hold the new transclusion scope, so we will create it manually\n // here.\n scope = scope.$parent.$new();\n }\n\n options = options || {};\n var parentBoundTranscludeFn = options.parentBoundTranscludeFn;\n var transcludeControllers = options.transcludeControllers;\n var futureParentElement = options.futureParentElement;\n\n // When `parentBoundTranscludeFn` is passed, it is a\n // `controllersBoundTransclude` function (it was previously passed\n // as `transclude` to directive.link) so we must unwrap it to get\n // its `boundTranscludeFn`\n if (parentBoundTranscludeFn && parentBoundTranscludeFn.$$boundTransclude) {\n parentBoundTranscludeFn = parentBoundTranscludeFn.$$boundTransclude;\n }\n\n if (!namespace) {\n namespace = detectNamespaceForChildElements(futureParentElement);\n }\n var $linkNode;\n if (namespace !== 'html') {\n // When using a directive with replace:true and templateUrl the $compileNodes\n // (or a child element inside of them)\n // might change, so we need to recreate the namespace adapted compileNodes\n // for call to the link function.\n // Note: This will already clone the nodes...\n $linkNode = jqLite(\n wrapTemplate(namespace, jqLite('
').append($compileNodes).html())\n );\n } else if (cloneConnectFn) {\n // important!!: we must call our jqLite.clone() since the jQuery one is trying to be smart\n // and sometimes changes the structure of the DOM.\n $linkNode = JQLitePrototype.clone.call($compileNodes);\n } else {\n $linkNode = $compileNodes;\n }\n\n if (transcludeControllers) {\n for (var controllerName in transcludeControllers) {\n $linkNode.data('$' + controllerName + 'Controller', transcludeControllers[controllerName].instance);\n }\n }\n\n compile.$$addScopeInfo($linkNode, scope);\n\n if (cloneConnectFn) cloneConnectFn($linkNode, scope);\n if (compositeLinkFn) compositeLinkFn(scope, $linkNode, $linkNode, parentBoundTranscludeFn);\n\n if (!cloneConnectFn) {\n $compileNodes = compositeLinkFn = null;\n }\n return $linkNode;\n };\n }\n\n function detectNamespaceForChildElements(parentElement) {\n // TODO: Make this detect MathML as well...\n var node = parentElement && parentElement[0];\n if (!node) {\n return 'html';\n } else {\n return nodeName_(node) !== 'foreignobject' && toString.call(node).match(/SVG/) ? 'svg' : 'html';\n }\n }\n\n /**\n * Compile function matches each node in nodeList against the directives. Once all directives\n * for a particular node are collected their compile functions are executed. The compile\n * functions return values - the linking functions - are combined into a composite linking\n * function, which is the a linking function for the node.\n *\n * @param {NodeList} nodeList an array of nodes or NodeList to compile\n * @param {function(angular.Scope, cloneAttachFn=)} transcludeFn A linking function, where the\n * scope argument is auto-generated to the new child of the transcluded parent scope.\n * @param {DOMElement=} $rootElement If the nodeList is the root of the compilation tree then\n * the rootElement must be set the jqLite collection of the compile root. This is\n * needed so that the jqLite collection items can be replaced with widgets.\n * @param {number=} maxPriority Max directive priority.\n * @returns {Function} A composite linking function of all of the matched directives or null.\n */\n function compileNodes(nodeList, transcludeFn, $rootElement, maxPriority, ignoreDirective,\n previousCompileContext) {\n var linkFns = [];\n var attrs;\n var directives;\n var nodeLinkFn;\n var childNodes;\n var childLinkFn;\n var linkFnFound;\n var nodeLinkFnFound;\n\n\n for (var i = 0; i < nodeList.length; i++) {\n attrs = new Attributes();\n\n // We must always refer to `nodeList[i]` hereafter,\n // since the nodes can be replaced underneath us.\n directives = collectDirectives(nodeList[i], [], attrs, i === 0 ? maxPriority : undefined,\n ignoreDirective);\n\n nodeLinkFn = (directives.length)\n ? applyDirectivesToNode(directives, nodeList[i], attrs, transcludeFn, $rootElement,\n null, [], [], previousCompileContext)\n : null;\n\n if (nodeLinkFn && nodeLinkFn.scope) {\n compile.$$addScopeClass(attrs.$$element);\n }\n\n childLinkFn = (nodeLinkFn && nodeLinkFn.terminal ||\n !(childNodes = nodeList[i].childNodes) ||\n !childNodes.length)\n ? null\n : compileNodes(childNodes,\n nodeLinkFn ? (\n (nodeLinkFn.transcludeOnThisElement || !nodeLinkFn.templateOnThisElement)\n && nodeLinkFn.transclude) : transcludeFn);\n\n if (nodeLinkFn || childLinkFn) {\n linkFns.push(i, nodeLinkFn, childLinkFn);\n linkFnFound = true;\n nodeLinkFnFound = nodeLinkFnFound || nodeLinkFn;\n }\n\n //use the previous context only for the first element in the virtual group\n previousCompileContext = null;\n }\n\n // return a linking function if we have found anything, null otherwise\n return linkFnFound ? compositeLinkFn : null;\n\n function compositeLinkFn(scope, nodeList, $rootElement, parentBoundTranscludeFn) {\n var nodeLinkFn;\n var childLinkFn;\n var node;\n var childScope;\n var i;\n var ii;\n var idx;\n var childBoundTranscludeFn;\n var stableNodeList;\n\n\n if (nodeLinkFnFound) {\n // copy nodeList so that if a nodeLinkFn removes or adds an element at this DOM level our\n // offsets don't get screwed up\n var nodeListLength = nodeList.length;\n stableNodeList = new Array(nodeListLength);\n\n // create a sparse array by only copying the elements which have a linkFn\n for (i = 0; i < linkFns.length; i += 3) {\n idx = linkFns[i];\n stableNodeList[idx] = nodeList[idx];\n }\n } else {\n stableNodeList = nodeList;\n }\n\n for (i = 0, ii = linkFns.length; i < ii;) {\n node = stableNodeList[linkFns[i++]];\n nodeLinkFn = linkFns[i++];\n childLinkFn = linkFns[i++];\n\n if (nodeLinkFn) {\n if (nodeLinkFn.scope) {\n childScope = scope.$new();\n compile.$$addScopeInfo(jqLite(node), childScope);\n } else {\n childScope = scope;\n }\n\n if (nodeLinkFn.transcludeOnThisElement) {\n childBoundTranscludeFn = createBoundTranscludeFn(\n scope, nodeLinkFn.transclude, parentBoundTranscludeFn);\n\n } else if (!nodeLinkFn.templateOnThisElement && parentBoundTranscludeFn) {\n childBoundTranscludeFn = parentBoundTranscludeFn;\n\n } else if (!parentBoundTranscludeFn && transcludeFn) {\n childBoundTranscludeFn = createBoundTranscludeFn(scope, transcludeFn);\n\n } else {\n childBoundTranscludeFn = null;\n }\n\n nodeLinkFn(childLinkFn, childScope, node, $rootElement, childBoundTranscludeFn);\n\n } else if (childLinkFn) {\n childLinkFn(scope, node.childNodes, undefined, parentBoundTranscludeFn);\n }\n }\n }\n }\n\n function createBoundTranscludeFn(scope, transcludeFn, previousBoundTranscludeFn) {\n function boundTranscludeFn(transcludedScope, cloneFn, controllers, futureParentElement, containingScope) {\n\n if (!transcludedScope) {\n transcludedScope = scope.$new(false, containingScope);\n transcludedScope.$$transcluded = true;\n }\n\n return transcludeFn(transcludedScope, cloneFn, {\n parentBoundTranscludeFn: previousBoundTranscludeFn,\n transcludeControllers: controllers,\n futureParentElement: futureParentElement\n });\n }\n\n // We need to attach the transclusion slots onto the `boundTranscludeFn`\n // so that they are available inside the `controllersBoundTransclude` function\n var boundSlots = boundTranscludeFn.$$slots = createMap();\n for (var slotName in transcludeFn.$$slots) {\n if (transcludeFn.$$slots[slotName]) {\n boundSlots[slotName] = createBoundTranscludeFn(scope, transcludeFn.$$slots[slotName], previousBoundTranscludeFn);\n } else {\n boundSlots[slotName] = null;\n }\n }\n\n return boundTranscludeFn;\n }\n\n /**\n * Looks for directives on the given node and adds them to the directive collection which is\n * sorted.\n *\n * @param node Node to search.\n * @param directives An array to which the directives are added to. This array is sorted before\n * the function returns.\n * @param attrs The shared attrs object which is used to populate the normalized attributes.\n * @param {number=} maxPriority Max directive priority.\n */\n function collectDirectives(node, directives, attrs, maxPriority, ignoreDirective) {\n var nodeType = node.nodeType;\n var attrsMap = attrs.$attr;\n var match;\n var nodeName;\n var className;\n\n switch (nodeType) {\n case NODE_TYPE_ELEMENT: /* Element */\n\n nodeName = nodeName_(node);\n\n // use the node name: \n addDirective(directives,\n directiveNormalize(nodeName), 'E', maxPriority, ignoreDirective);\n\n // iterate over the attributes\n for (var attr, name, nName, ngAttrName, value, isNgAttr, nAttrs = node.attributes,\n j = 0, jj = nAttrs && nAttrs.length; j < jj; j++) {\n var attrStartName = false;\n var attrEndName = false;\n\n attr = nAttrs[j];\n name = attr.name;\n value = attr.value;\n\n // support ngAttr attribute binding\n ngAttrName = directiveNormalize(name);\n isNgAttr = NG_ATTR_BINDING.test(ngAttrName);\n if (isNgAttr) {\n name = name.replace(PREFIX_REGEXP, '')\n .substr(8).replace(/_(.)/g, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n var multiElementMatch = ngAttrName.match(MULTI_ELEMENT_DIR_RE);\n if (multiElementMatch && directiveIsMultiElement(multiElementMatch[1])) {\n attrStartName = name;\n attrEndName = name.substr(0, name.length - 5) + 'end';\n name = name.substr(0, name.length - 6);\n }\n\n nName = directiveNormalize(name.toLowerCase());\n attrsMap[nName] = name;\n if (isNgAttr || !attrs.hasOwnProperty(nName)) {\n attrs[nName] = value;\n if (getBooleanAttrName(node, nName)) {\n attrs[nName] = true; // presence means true\n }\n }\n addAttrInterpolateDirective(node, directives, value, nName, isNgAttr);\n addDirective(directives, nName, 'A', maxPriority, ignoreDirective, attrStartName,\n attrEndName);\n }\n\n if (nodeName === 'input' && node.getAttribute('type') === 'hidden') {\n // Hidden input elements can have strange behaviour when navigating back to the page\n // This tells the browser not to try to cache and reinstate previous values\n node.setAttribute('autocomplete', 'off');\n }\n\n // use class as directive\n if (!cssClassDirectivesEnabled) break;\n className = node.className;\n if (isObject(className)) {\n // Maybe SVGAnimatedString\n className = className.animVal;\n }\n if (isString(className) && className !== '') {\n while ((match = CLASS_DIRECTIVE_REGEXP.exec(className))) {\n nName = directiveNormalize(match[2]);\n if (addDirective(directives, nName, 'C', maxPriority, ignoreDirective)) {\n attrs[nName] = trim(match[3]);\n }\n className = className.substr(match.index + match[0].length);\n }\n }\n break;\n case NODE_TYPE_TEXT: /* Text Node */\n addTextInterpolateDirective(directives, node.nodeValue);\n break;\n case NODE_TYPE_COMMENT: /* Comment */\n if (!commentDirectivesEnabled) break;\n collectCommentDirectives(node, directives, attrs, maxPriority, ignoreDirective);\n break;\n }\n\n directives.sort(byPriority);\n return directives;\n }\n\n function collectCommentDirectives(node, directives, attrs, maxPriority, ignoreDirective) {\n // function created because of performance, try/catch disables\n // the optimization of the whole function #14848\n try {\n var match = COMMENT_DIRECTIVE_REGEXP.exec(node.nodeValue);\n if (match) {\n var nName = directiveNormalize(match[1]);\n if (addDirective(directives, nName, 'M', maxPriority, ignoreDirective)) {\n attrs[nName] = trim(match[2]);\n }\n }\n } catch (e) {/**/}\n }\n\n /**\n * Given a node with a directive-start it collects all of the siblings until it finds\n * directive-end.\n * @param node\n * @param attrStart\n * @param attrEnd\n * @returns {*}\n */\n function groupScan(node, attrStart, attrEnd) {\n var nodes = [];\n var depth = 0;\n if (attrStart && node.hasAttribute && node.hasAttribute(attrStart)) {\n do {\n if (!node) {\n throw $compileMinErr('uterdir',\n 'Unterminated attribute, found \\'{0}\\' but no matching \\'{1}\\' found.',\n attrStart, attrEnd);\n }\n if (node.nodeType === NODE_TYPE_ELEMENT) {\n if (node.hasAttribute(attrStart)) depth++;\n if (node.hasAttribute(attrEnd)) depth--;\n }\n nodes.push(node);\n node = node.nextSibling;\n } while (depth > 0);\n } else {\n nodes.push(node);\n }\n\n return jqLite(nodes);\n }\n\n /**\n * Wrapper for linking function which converts normal linking function into a grouped\n * linking function.\n * @param linkFn\n * @param attrStart\n * @param attrEnd\n * @returns {Function}\n */\n function groupElementsLinkFnWrapper(linkFn, attrStart, attrEnd) {\n return function groupedElementsLink(scope, element, attrs, controllers, transcludeFn) {\n element = groupScan(element[0], attrStart, attrEnd);\n return linkFn(scope, element, attrs, controllers, transcludeFn);\n };\n }\n\n /**\n * A function generator that is used to support both eager and lazy compilation\n * linking function.\n * @param eager\n * @param $compileNodes\n * @param transcludeFn\n * @param maxPriority\n * @param ignoreDirective\n * @param previousCompileContext\n * @returns {Function}\n */\n function compilationGenerator(eager, $compileNodes, transcludeFn, maxPriority, ignoreDirective, previousCompileContext) {\n var compiled;\n\n if (eager) {\n return compile($compileNodes, transcludeFn, maxPriority, ignoreDirective, previousCompileContext);\n }\n return /** @this */ function lazyCompilation() {\n if (!compiled) {\n compiled = compile($compileNodes, transcludeFn, maxPriority, ignoreDirective, previousCompileContext);\n\n // Null out all of these references in order to make them eligible for garbage collection\n // since this is a potentially long lived closure\n $compileNodes = transcludeFn = previousCompileContext = null;\n }\n return compiled.apply(this, arguments);\n };\n }\n\n /**\n * Once the directives have been collected, their compile functions are executed. This method\n * is responsible for inlining directive templates as well as terminating the application\n * of the directives if the terminal directive has been reached.\n *\n * @param {Array} directives Array of collected directives to execute their compile function.\n * this needs to be pre-sorted by priority order.\n * @param {Node} compileNode The raw DOM node to apply the compile functions to\n * @param {Object} templateAttrs The shared attribute function\n * @param {function(angular.Scope, cloneAttachFn=)} transcludeFn A linking function, where the\n * scope argument is auto-generated to the new\n * child of the transcluded parent scope.\n * @param {JQLite} jqCollection If we are working on the root of the compile tree then this\n * argument has the root jqLite array so that we can replace nodes\n * on it.\n * @param {Object=} originalReplaceDirective An optional directive that will be ignored when\n * compiling the transclusion.\n * @param {Array.} preLinkFns\n * @param {Array.} postLinkFns\n * @param {Object} previousCompileContext Context used for previous compilation of the current\n * node\n * @returns {Function} linkFn\n */\n function applyDirectivesToNode(directives, compileNode, templateAttrs, transcludeFn,\n jqCollection, originalReplaceDirective, preLinkFns, postLinkFns,\n previousCompileContext) {\n previousCompileContext = previousCompileContext || {};\n\n var terminalPriority = -Number.MAX_VALUE;\n var newScopeDirective = previousCompileContext.newScopeDirective;\n var controllerDirectives = previousCompileContext.controllerDirectives;\n var newIsolateScopeDirective = previousCompileContext.newIsolateScopeDirective;\n var templateDirective = previousCompileContext.templateDirective;\n var nonTlbTranscludeDirective = previousCompileContext.nonTlbTranscludeDirective;\n var hasTranscludeDirective = false;\n var hasTemplate = false;\n var hasElementTranscludeDirective = previousCompileContext.hasElementTranscludeDirective;\n var $compileNode = templateAttrs.$$element = jqLite(compileNode);\n var directive;\n var directiveName;\n var $template;\n var replaceDirective = originalReplaceDirective;\n var childTranscludeFn = transcludeFn;\n var linkFn;\n var didScanForMultipleTransclusion = false;\n var mightHaveMultipleTransclusionError = false;\n var directiveValue;\n\n // executes all directives on the current element\n for (var i = 0, ii = directives.length; i < ii; i++) {\n directive = directives[i];\n var attrStart = directive.$$start;\n var attrEnd = directive.$$end;\n\n // collect multiblock sections\n if (attrStart) {\n $compileNode = groupScan(compileNode, attrStart, attrEnd);\n }\n $template = undefined;\n\n if (terminalPriority > directive.priority) {\n break; // prevent further processing of directives\n }\n\n directiveValue = directive.scope;\n\n if (directiveValue) {\n\n // skip the check for directives with async templates, we'll check the derived sync\n // directive when the template arrives\n if (!directive.templateUrl) {\n if (isObject(directiveValue)) {\n // This directive is trying to add an isolated scope.\n // Check that there is no scope of any kind already\n assertNoDuplicate('new/isolated scope', newIsolateScopeDirective || newScopeDirective,\n directive, $compileNode);\n newIsolateScopeDirective = directive;\n } else {\n // This directive is trying to add a child scope.\n // Check that there is no isolated scope already\n assertNoDuplicate('new/isolated scope', newIsolateScopeDirective, directive,\n $compileNode);\n }\n }\n\n newScopeDirective = newScopeDirective || directive;\n }\n\n directiveName = directive.name;\n\n // If we encounter a condition that can result in transclusion on the directive,\n // then scan ahead in the remaining directives for others that may cause a multiple\n // transclusion error to be thrown during the compilation process. If a matching directive\n // is found, then we know that when we encounter a transcluded directive, we need to eagerly\n // compile the `transclude` function rather than doing it lazily in order to throw\n // exceptions at the correct time\n if (!didScanForMultipleTransclusion && ((directive.replace && (directive.templateUrl || directive.template))\n || (directive.transclude && !directive.$$tlb))) {\n var candidateDirective;\n\n for (var scanningIndex = i + 1; (candidateDirective = directives[scanningIndex++]);) {\n if ((candidateDirective.transclude && !candidateDirective.$$tlb)\n || (candidateDirective.replace && (candidateDirective.templateUrl || candidateDirective.template))) {\n mightHaveMultipleTransclusionError = true;\n break;\n }\n }\n\n didScanForMultipleTransclusion = true;\n }\n\n if (!directive.templateUrl && directive.controller) {\n controllerDirectives = controllerDirectives || createMap();\n assertNoDuplicate('\\'' + directiveName + '\\' controller',\n controllerDirectives[directiveName], directive, $compileNode);\n controllerDirectives[directiveName] = directive;\n }\n\n directiveValue = directive.transclude;\n\n if (directiveValue) {\n hasTranscludeDirective = true;\n\n // Special case ngIf and ngRepeat so that we don't complain about duplicate transclusion.\n // This option should only be used by directives that know how to safely handle element transclusion,\n // where the transcluded nodes are added or replaced after linking.\n if (!directive.$$tlb) {\n assertNoDuplicate('transclusion', nonTlbTranscludeDirective, directive, $compileNode);\n nonTlbTranscludeDirective = directive;\n }\n\n if (directiveValue === 'element') {\n hasElementTranscludeDirective = true;\n terminalPriority = directive.priority;\n $template = $compileNode;\n $compileNode = templateAttrs.$$element =\n jqLite(compile.$$createComment(directiveName, templateAttrs[directiveName]));\n compileNode = $compileNode[0];\n replaceWith(jqCollection, sliceArgs($template), compileNode);\n\n // Support: Chrome < 50\n // https://github.com/angular/angular.js/issues/14041\n\n // In the versions of V8 prior to Chrome 50, the document fragment that is created\n // in the `replaceWith` function is improperly garbage collected despite still\n // being referenced by the `parentNode` property of all of the child nodes. By adding\n // a reference to the fragment via a different property, we can avoid that incorrect\n // behavior.\n // TODO: remove this line after Chrome 50 has been released\n $template[0].$$parentNode = $template[0].parentNode;\n\n childTranscludeFn = compilationGenerator(mightHaveMultipleTransclusionError, $template, transcludeFn, terminalPriority,\n replaceDirective && replaceDirective.name, {\n // Don't pass in:\n // - controllerDirectives - otherwise we'll create duplicates controllers\n // - newIsolateScopeDirective or templateDirective - combining templates with\n // element transclusion doesn't make sense.\n //\n // We need only nonTlbTranscludeDirective so that we prevent putting transclusion\n // on the same element more than once.\n nonTlbTranscludeDirective: nonTlbTranscludeDirective\n });\n } else {\n\n var slots = createMap();\n\n if (!isObject(directiveValue)) {\n $template = jqLite(jqLiteClone(compileNode)).contents();\n } else {\n\n // We have transclusion slots,\n // collect them up, compile them and store their transclusion functions\n $template = [];\n\n var slotMap = createMap();\n var filledSlots = createMap();\n\n // Parse the element selectors\n forEach(directiveValue, function(elementSelector, slotName) {\n // If an element selector starts with a ? then it is optional\n var optional = (elementSelector.charAt(0) === '?');\n elementSelector = optional ? elementSelector.substring(1) : elementSelector;\n\n slotMap[elementSelector] = slotName;\n\n // We explicitly assign `null` since this implies that a slot was defined but not filled.\n // Later when calling boundTransclusion functions with a slot name we only error if the\n // slot is `undefined`\n slots[slotName] = null;\n\n // filledSlots contains `true` for all slots that are either optional or have been\n // filled. This is used to check that we have not missed any required slots\n filledSlots[slotName] = optional;\n });\n\n // Add the matching elements into their slot\n forEach($compileNode.contents(), function(node) {\n var slotName = slotMap[directiveNormalize(nodeName_(node))];\n if (slotName) {\n filledSlots[slotName] = true;\n slots[slotName] = slots[slotName] || [];\n slots[slotName].push(node);\n } else {\n $template.push(node);\n }\n });\n\n // Check for required slots that were not filled\n forEach(filledSlots, function(filled, slotName) {\n if (!filled) {\n throw $compileMinErr('reqslot', 'Required transclusion slot `{0}` was not filled.', slotName);\n }\n });\n\n for (var slotName in slots) {\n if (slots[slotName]) {\n // Only define a transclusion function if the slot was filled\n slots[slotName] = compilationGenerator(mightHaveMultipleTransclusionError, slots[slotName], transcludeFn);\n }\n }\n }\n\n $compileNode.empty(); // clear contents\n childTranscludeFn = compilationGenerator(mightHaveMultipleTransclusionError, $template, transcludeFn, undefined,\n undefined, { needsNewScope: directive.$$isolateScope || directive.$$newScope});\n childTranscludeFn.$$slots = slots;\n }\n }\n\n if (directive.template) {\n hasTemplate = true;\n assertNoDuplicate('template', templateDirective, directive, $compileNode);\n templateDirective = directive;\n\n directiveValue = (isFunction(directive.template))\n ? directive.template($compileNode, templateAttrs)\n : directive.template;\n\n directiveValue = denormalizeTemplate(directiveValue);\n\n if (directive.replace) {\n replaceDirective = directive;\n if (jqLiteIsTextNode(directiveValue)) {\n $template = [];\n } else {\n $template = removeComments(wrapTemplate(directive.templateNamespace, trim(directiveValue)));\n }\n compileNode = $template[0];\n\n if ($template.length !== 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT) {\n throw $compileMinErr('tplrt',\n 'Template for directive \\'{0}\\' must have exactly one root element. {1}',\n directiveName, '');\n }\n\n replaceWith(jqCollection, $compileNode, compileNode);\n\n var newTemplateAttrs = {$attr: {}};\n\n // combine directives from the original node and from the template:\n // - take the array of directives for this element\n // - split it into two parts, those that already applied (processed) and those that weren't (unprocessed)\n // - collect directives from the template and sort them by priority\n // - combine directives as: processed + template + unprocessed\n var templateDirectives = collectDirectives(compileNode, [], newTemplateAttrs);\n var unprocessedDirectives = directives.splice(i + 1, directives.length - (i + 1));\n\n if (newIsolateScopeDirective || newScopeDirective) {\n // The original directive caused the current element to be replaced but this element\n // also needs to have a new scope, so we need to tell the template directives\n // that they would need to get their scope from further up, if they require transclusion\n markDirectiveScope(templateDirectives, newIsolateScopeDirective, newScopeDirective);\n }\n directives = directives.concat(templateDirectives).concat(unprocessedDirectives);\n mergeTemplateAttributes(templateAttrs, newTemplateAttrs);\n\n ii = directives.length;\n } else {\n $compileNode.html(directiveValue);\n }\n }\n\n if (directive.templateUrl) {\n hasTemplate = true;\n assertNoDuplicate('template', templateDirective, directive, $compileNode);\n templateDirective = directive;\n\n if (directive.replace) {\n replaceDirective = directive;\n }\n\n // eslint-disable-next-line no-func-assign\n nodeLinkFn = compileTemplateUrl(directives.splice(i, directives.length - i), $compileNode,\n templateAttrs, jqCollection, hasTranscludeDirective && childTranscludeFn, preLinkFns, postLinkFns, {\n controllerDirectives: controllerDirectives,\n newScopeDirective: (newScopeDirective !== directive) && newScopeDirective,\n newIsolateScopeDirective: newIsolateScopeDirective,\n templateDirective: templateDirective,\n nonTlbTranscludeDirective: nonTlbTranscludeDirective\n });\n ii = directives.length;\n } else if (directive.compile) {\n try {\n linkFn = directive.compile($compileNode, templateAttrs, childTranscludeFn);\n var context = directive.$$originalDirective || directive;\n if (isFunction(linkFn)) {\n addLinkFns(null, bind(context, linkFn), attrStart, attrEnd);\n } else if (linkFn) {\n addLinkFns(bind(context, linkFn.pre), bind(context, linkFn.post), attrStart, attrEnd);\n }\n } catch (e) {\n $exceptionHandler(e, startingTag($compileNode));\n }\n }\n\n if (directive.terminal) {\n nodeLinkFn.terminal = true;\n terminalPriority = Math.max(terminalPriority, directive.priority);\n }\n\n }\n\n nodeLinkFn.scope = newScopeDirective && newScopeDirective.scope === true;\n nodeLinkFn.transcludeOnThisElement = hasTranscludeDirective;\n nodeLinkFn.templateOnThisElement = hasTemplate;\n nodeLinkFn.transclude = childTranscludeFn;\n\n previousCompileContext.hasElementTranscludeDirective = hasElementTranscludeDirective;\n\n // might be normal or delayed nodeLinkFn depending on if templateUrl is present\n return nodeLinkFn;\n\n ////////////////////\n\n function addLinkFns(pre, post, attrStart, attrEnd) {\n if (pre) {\n if (attrStart) pre = groupElementsLinkFnWrapper(pre, attrStart, attrEnd);\n pre.require = directive.require;\n pre.directiveName = directiveName;\n if (newIsolateScopeDirective === directive || directive.$$isolateScope) {\n pre = cloneAndAnnotateFn(pre, {isolateScope: true});\n }\n preLinkFns.push(pre);\n }\n if (post) {\n if (attrStart) post = groupElementsLinkFnWrapper(post, attrStart, attrEnd);\n post.require = directive.require;\n post.directiveName = directiveName;\n if (newIsolateScopeDirective === directive || directive.$$isolateScope) {\n post = cloneAndAnnotateFn(post, {isolateScope: true});\n }\n postLinkFns.push(post);\n }\n }\n\n function nodeLinkFn(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn) {\n var i;\n var ii;\n var linkFn;\n var isolateScope;\n var controllerScope;\n var elementControllers;\n var transcludeFn;\n var $element;\n var attrs;\n var scopeBindingInfo;\n\n if (compileNode === linkNode) {\n attrs = templateAttrs;\n $element = templateAttrs.$$element;\n } else {\n $element = jqLite(linkNode);\n attrs = new Attributes($element, templateAttrs);\n }\n\n controllerScope = scope;\n if (newIsolateScopeDirective) {\n isolateScope = scope.$new(true);\n } else if (newScopeDirective) {\n controllerScope = scope.$parent;\n }\n\n if (boundTranscludeFn) {\n // track `boundTranscludeFn` so it can be unwrapped if `transcludeFn`\n // is later passed as `parentBoundTranscludeFn` to `publicLinkFn`\n transcludeFn = controllersBoundTransclude;\n transcludeFn.$$boundTransclude = boundTranscludeFn;\n // expose the slots on the `$transclude` function\n transcludeFn.isSlotFilled = function(slotName) {\n return !!boundTranscludeFn.$$slots[slotName];\n };\n }\n\n if (controllerDirectives) {\n elementControllers = setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope, newIsolateScopeDirective);\n }\n\n if (newIsolateScopeDirective) {\n // Initialize isolate scope bindings for new isolate scope directive.\n compile.$$addScopeInfo($element, isolateScope, true, !(templateDirective && (templateDirective === newIsolateScopeDirective ||\n templateDirective === newIsolateScopeDirective.$$originalDirective)));\n compile.$$addScopeClass($element, true);\n isolateScope.$$isolateBindings =\n newIsolateScopeDirective.$$isolateBindings;\n scopeBindingInfo = initializeDirectiveBindings(scope, attrs, isolateScope,\n isolateScope.$$isolateBindings,\n newIsolateScopeDirective);\n if (scopeBindingInfo.removeWatches) {\n isolateScope.$on('$destroy', scopeBindingInfo.removeWatches);\n }\n }\n\n // Initialize bindToController bindings\n for (var name in elementControllers) {\n var controllerDirective = controllerDirectives[name];\n var controller = elementControllers[name];\n var bindings = controllerDirective.$$bindings.bindToController;\n\n if (preAssignBindingsEnabled) {\n if (bindings) {\n controller.bindingInfo =\n initializeDirectiveBindings(controllerScope, attrs, controller.instance, bindings, controllerDirective);\n } else {\n controller.bindingInfo = {};\n }\n\n var controllerResult = controller();\n if (controllerResult !== controller.instance) {\n // If the controller constructor has a return value, overwrite the instance\n // from setupControllers\n controller.instance = controllerResult;\n $element.data('$' + controllerDirective.name + 'Controller', controllerResult);\n if (controller.bindingInfo.removeWatches) {\n controller.bindingInfo.removeWatches();\n }\n controller.bindingInfo =\n initializeDirectiveBindings(controllerScope, attrs, controller.instance, bindings, controllerDirective);\n }\n } else {\n controller.instance = controller();\n $element.data('$' + controllerDirective.name + 'Controller', controller.instance);\n controller.bindingInfo =\n initializeDirectiveBindings(controllerScope, attrs, controller.instance, bindings, controllerDirective);\n }\n }\n\n // Bind the required controllers to the controller, if `require` is an object and `bindToController` is truthy\n forEach(controllerDirectives, function(controllerDirective, name) {\n var require = controllerDirective.require;\n if (controllerDirective.bindToController && !isArray(require) && isObject(require)) {\n extend(elementControllers[name].instance, getControllers(name, require, $element, elementControllers));\n }\n });\n\n // Handle the init and destroy lifecycle hooks on all controllers that have them\n forEach(elementControllers, function(controller) {\n var controllerInstance = controller.instance;\n if (isFunction(controllerInstance.$onChanges)) {\n try {\n controllerInstance.$onChanges(controller.bindingInfo.initialChanges);\n } catch (e) {\n $exceptionHandler(e);\n }\n }\n if (isFunction(controllerInstance.$onInit)) {\n try {\n controllerInstance.$onInit();\n } catch (e) {\n $exceptionHandler(e);\n }\n }\n if (isFunction(controllerInstance.$doCheck)) {\n controllerScope.$watch(function() { controllerInstance.$doCheck(); });\n controllerInstance.$doCheck();\n }\n if (isFunction(controllerInstance.$onDestroy)) {\n controllerScope.$on('$destroy', function callOnDestroyHook() {\n controllerInstance.$onDestroy();\n });\n }\n });\n\n // PRELINKING\n for (i = 0, ii = preLinkFns.length; i < ii; i++) {\n linkFn = preLinkFns[i];\n invokeLinkFn(linkFn,\n linkFn.isolateScope ? isolateScope : scope,\n $element,\n attrs,\n linkFn.require && getControllers(linkFn.directiveName, linkFn.require, $element, elementControllers),\n transcludeFn\n );\n }\n\n // RECURSION\n // We only pass the isolate scope, if the isolate directive has a template,\n // otherwise the child elements do not belong to the isolate directive.\n var scopeToChild = scope;\n if (newIsolateScopeDirective && (newIsolateScopeDirective.template || newIsolateScopeDirective.templateUrl === null)) {\n scopeToChild = isolateScope;\n }\n if (childLinkFn) {\n childLinkFn(scopeToChild, linkNode.childNodes, undefined, boundTranscludeFn);\n }\n\n // POSTLINKING\n for (i = postLinkFns.length - 1; i >= 0; i--) {\n linkFn = postLinkFns[i];\n invokeLinkFn(linkFn,\n linkFn.isolateScope ? isolateScope : scope,\n $element,\n attrs,\n linkFn.require && getControllers(linkFn.directiveName, linkFn.require, $element, elementControllers),\n transcludeFn\n );\n }\n\n // Trigger $postLink lifecycle hooks\n forEach(elementControllers, function(controller) {\n var controllerInstance = controller.instance;\n if (isFunction(controllerInstance.$postLink)) {\n controllerInstance.$postLink();\n }\n });\n\n // This is the function that is injected as `$transclude`.\n // Note: all arguments are optional!\n function controllersBoundTransclude(scope, cloneAttachFn, futureParentElement, slotName) {\n var transcludeControllers;\n // No scope passed in:\n if (!isScope(scope)) {\n slotName = futureParentElement;\n futureParentElement = cloneAttachFn;\n cloneAttachFn = scope;\n scope = undefined;\n }\n\n if (hasElementTranscludeDirective) {\n transcludeControllers = elementControllers;\n }\n if (!futureParentElement) {\n futureParentElement = hasElementTranscludeDirective ? $element.parent() : $element;\n }\n if (slotName) {\n // slotTranscludeFn can be one of three things:\n // * a transclude function - a filled slot\n // * `null` - an optional slot that was not filled\n // * `undefined` - a slot that was not declared (i.e. invalid)\n var slotTranscludeFn = boundTranscludeFn.$$slots[slotName];\n if (slotTranscludeFn) {\n return slotTranscludeFn(scope, cloneAttachFn, transcludeControllers, futureParentElement, scopeToChild);\n } else if (isUndefined(slotTranscludeFn)) {\n throw $compileMinErr('noslot',\n 'No parent directive that requires a transclusion with slot name \"{0}\". ' +\n 'Element: {1}',\n slotName, startingTag($element));\n }\n } else {\n return boundTranscludeFn(scope, cloneAttachFn, transcludeControllers, futureParentElement, scopeToChild);\n }\n }\n }\n }\n\n function getControllers(directiveName, require, $element, elementControllers) {\n var value;\n\n if (isString(require)) {\n var match = require.match(REQUIRE_PREFIX_REGEXP);\n var name = require.substring(match[0].length);\n var inheritType = match[1] || match[3];\n var optional = match[2] === '?';\n\n //If only parents then start at the parent element\n if (inheritType === '^^') {\n $element = $element.parent();\n //Otherwise attempt getting the controller from elementControllers in case\n //the element is transcluded (and has no data) and to avoid .data if possible\n } else {\n value = elementControllers && elementControllers[name];\n value = value && value.instance;\n }\n\n if (!value) {\n var dataName = '$' + name + 'Controller';\n value = inheritType ? $element.inheritedData(dataName) : $element.data(dataName);\n }\n\n if (!value && !optional) {\n throw $compileMinErr('ctreq',\n 'Controller \\'{0}\\', required by directive \\'{1}\\', can\\'t be found!',\n name, directiveName);\n }\n } else if (isArray(require)) {\n value = [];\n for (var i = 0, ii = require.length; i < ii; i++) {\n value[i] = getControllers(directiveName, require[i], $element, elementControllers);\n }\n } else if (isObject(require)) {\n value = {};\n forEach(require, function(controller, property) {\n value[property] = getControllers(directiveName, controller, $element, elementControllers);\n });\n }\n\n return value || null;\n }\n\n function setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope, newIsolateScopeDirective) {\n var elementControllers = createMap();\n for (var controllerKey in controllerDirectives) {\n var directive = controllerDirectives[controllerKey];\n var locals = {\n $scope: directive === newIsolateScopeDirective || directive.$$isolateScope ? isolateScope : scope,\n $element: $element,\n $attrs: attrs,\n $transclude: transcludeFn\n };\n\n var controller = directive.controller;\n if (controller === '@') {\n controller = attrs[directive.name];\n }\n\n var controllerInstance = $controller(controller, locals, true, directive.controllerAs);\n\n // For directives with element transclusion the element is a comment.\n // In this case .data will not attach any data.\n // Instead, we save the controllers for the element in a local hash and attach to .data\n // later, once we have the actual element.\n elementControllers[directive.name] = controllerInstance;\n $element.data('$' + directive.name + 'Controller', controllerInstance.instance);\n }\n return elementControllers;\n }\n\n // Depending upon the context in which a directive finds itself it might need to have a new isolated\n // or child scope created. For instance:\n // * if the directive has been pulled into a template because another directive with a higher priority\n // asked for element transclusion\n // * if the directive itself asks for transclusion but it is at the root of a template and the original\n // element was replaced. See https://github.com/angular/angular.js/issues/12936\n function markDirectiveScope(directives, isolateScope, newScope) {\n for (var j = 0, jj = directives.length; j < jj; j++) {\n directives[j] = inherit(directives[j], {$$isolateScope: isolateScope, $$newScope: newScope});\n }\n }\n\n /**\n * looks up the directive and decorates it with exception handling and proper parameters. We\n * call this the boundDirective.\n *\n * @param {string} name name of the directive to look up.\n * @param {string} location The directive must be found in specific format.\n * String containing any of theses characters:\n *\n * * `E`: element name\n * * `A': attribute\n * * `C`: class\n * * `M`: comment\n * @returns {boolean} true if directive was added.\n */\n function addDirective(tDirectives, name, location, maxPriority, ignoreDirective, startAttrName,\n endAttrName) {\n if (name === ignoreDirective) return null;\n var match = null;\n if (hasDirectives.hasOwnProperty(name)) {\n for (var directive, directives = $injector.get(name + Suffix),\n i = 0, ii = directives.length; i < ii; i++) {\n directive = directives[i];\n if ((isUndefined(maxPriority) || maxPriority > directive.priority) &&\n directive.restrict.includes(location)) {\n if (startAttrName) {\n directive = inherit(directive, {$$start: startAttrName, $$end: endAttrName});\n }\n if (!directive.$$bindings) {\n var bindings = directive.$$bindings =\n parseDirectiveBindings(directive, directive.name);\n if (isObject(bindings.isolateScope)) {\n directive.$$isolateBindings = bindings.isolateScope;\n }\n }\n tDirectives.push(directive);\n match = directive;\n }\n }\n }\n return match;\n }\n\n\n /**\n * looks up the directive and returns true if it is a multi-element directive,\n * and therefore requires DOM nodes between -start and -end markers to be grouped\n * together.\n *\n * @param {string} name name of the directive to look up.\n * @returns true if directive was registered as multi-element.\n */\n function directiveIsMultiElement(name) {\n if (hasDirectives.hasOwnProperty(name)) {\n for (var directive, directives = $injector.get(name + Suffix),\n i = 0, ii = directives.length; i < ii; i++) {\n directive = directives[i];\n if (directive.multiElement) {\n return true;\n }\n }\n }\n return false;\n }\n\n /**\n * When the element is replaced with HTML template then the new attributes\n * on the template need to be merged with the existing attributes in the DOM.\n * The desired effect is to have both of the attributes present.\n *\n * @param {object} dst destination attributes (original DOM)\n * @param {object} src source attributes (from the directive template)\n */\n function mergeTemplateAttributes(dst, src) {\n var srcAttr = src.$attr;\n var dstAttr = dst.$attr;\n\n // reapply the old attributes to the new element\n forEach(dst, function(value, key) {\n if (key.charAt(0) !== '$') {\n if (src[key] && src[key] !== value) {\n if (value.length) {\n value += (key === 'style' ? ';' : ' ') + src[key];\n } else {\n value = src[key];\n }\n }\n dst.$set(key, value, true, srcAttr[key]);\n }\n });\n\n // copy the new attributes on the old attrs object\n forEach(src, function(value, key) {\n // Check if we already set this attribute in the loop above.\n // `dst` will never contain hasOwnProperty as DOM parser won't let it.\n // You will get an \"InvalidCharacterError: DOM Exception 5\" error if you\n // have an attribute like \"has-own-property\" or \"data-has-own-property\", etc.\n if (!dst.hasOwnProperty(key) && key.charAt(0) !== '$') {\n dst[key] = value;\n\n if (key !== 'class' && key !== 'style') {\n dstAttr[key] = srcAttr[key];\n }\n }\n });\n }\n\n\n function compileTemplateUrl(directives, $compileNode, tAttrs,\n $rootElement, childTranscludeFn, preLinkFns, postLinkFns, previousCompileContext) {\n var linkQueue = [];\n var afterTemplateNodeLinkFn;\n var afterTemplateChildLinkFn;\n var beforeTemplateCompileNode = $compileNode[0];\n var origAsyncDirective = directives.shift();\n\n var derivedSyncDirective = inherit(origAsyncDirective, {\n templateUrl: null, transclude: null, replace: null, $$originalDirective: origAsyncDirective\n });\n\n var templateUrl = (isFunction(origAsyncDirective.templateUrl))\n ? origAsyncDirective.templateUrl($compileNode, tAttrs)\n : origAsyncDirective.templateUrl;\n\n var templateNamespace = origAsyncDirective.templateNamespace;\n\n $compileNode.empty();\n\n $templateRequest(templateUrl)\n .then(function(content) {\n var compileNode;\n var tempTemplateAttrs;\n var $template;\n var childBoundTranscludeFn;\n\n content = denormalizeTemplate(content);\n\n if (origAsyncDirective.replace) {\n if (jqLiteIsTextNode(content)) {\n $template = [];\n } else {\n $template = removeComments(wrapTemplate(templateNamespace, trim(content)));\n }\n compileNode = $template[0];\n\n if ($template.length !== 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT) {\n throw $compileMinErr('tplrt',\n 'Template for directive \\'{0}\\' must have exactly one root element. {1}',\n origAsyncDirective.name, templateUrl);\n }\n\n tempTemplateAttrs = {$attr: {}};\n replaceWith($rootElement, $compileNode, compileNode);\n var templateDirectives = collectDirectives(compileNode, [], tempTemplateAttrs);\n\n if (isObject(origAsyncDirective.scope)) {\n // the original directive that caused the template to be loaded async required\n // an isolate scope\n markDirectiveScope(templateDirectives, true);\n }\n directives = templateDirectives.concat(directives);\n mergeTemplateAttributes(tAttrs, tempTemplateAttrs);\n } else {\n compileNode = beforeTemplateCompileNode;\n $compileNode.html(content);\n }\n\n directives.unshift(derivedSyncDirective);\n\n afterTemplateNodeLinkFn = applyDirectivesToNode(directives, compileNode, tAttrs,\n childTranscludeFn, $compileNode, origAsyncDirective, preLinkFns, postLinkFns,\n previousCompileContext);\n forEach($rootElement, function(node, i) {\n if (node === compileNode) {\n $rootElement[i] = $compileNode[0];\n }\n });\n afterTemplateChildLinkFn = compileNodes($compileNode[0].childNodes, childTranscludeFn);\n\n while (linkQueue.length) {\n var scope = linkQueue.shift();\n var beforeTemplateLinkNode = linkQueue.shift();\n var linkRootElement = linkQueue.shift();\n var boundTranscludeFn = linkQueue.shift();\n var linkNode = $compileNode[0];\n\n if (scope.$$destroyed) continue;\n\n if (beforeTemplateLinkNode !== beforeTemplateCompileNode) {\n var oldClasses = beforeTemplateLinkNode.className;\n\n if (!(previousCompileContext.hasElementTranscludeDirective &&\n origAsyncDirective.replace)) {\n // it was cloned therefore we have to clone as well.\n linkNode = jqLiteClone(compileNode);\n }\n replaceWith(linkRootElement, jqLite(beforeTemplateLinkNode), linkNode);\n\n // Copy in CSS classes from original node\n safeAddClass(jqLite(linkNode), oldClasses);\n }\n if (afterTemplateNodeLinkFn.transcludeOnThisElement) {\n childBoundTranscludeFn = createBoundTranscludeFn(scope, afterTemplateNodeLinkFn.transclude, boundTranscludeFn);\n } else {\n childBoundTranscludeFn = boundTranscludeFn;\n }\n afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, linkNode, $rootElement,\n childBoundTranscludeFn);\n }\n linkQueue = null;\n }).catch(function(error) {\n if (isError(error)) {\n $exceptionHandler(error);\n }\n });\n\n return function delayedNodeLinkFn(ignoreChildLinkFn, scope, node, rootElement, boundTranscludeFn) {\n var childBoundTranscludeFn = boundTranscludeFn;\n if (scope.$$destroyed) return;\n if (linkQueue) {\n linkQueue.push(scope,\n node,\n rootElement,\n childBoundTranscludeFn);\n } else {\n if (afterTemplateNodeLinkFn.transcludeOnThisElement) {\n childBoundTranscludeFn = createBoundTranscludeFn(scope, afterTemplateNodeLinkFn.transclude, boundTranscludeFn);\n }\n afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, node, rootElement, childBoundTranscludeFn);\n }\n };\n }\n\n\n /**\n * Sorting function for bound directives.\n */\n function byPriority(a, b) {\n var diff = b.priority - a.priority;\n if (diff !== 0) return diff;\n if (a.name !== b.name) return (a.name < b.name) ? -1 : 1;\n return a.index - b.index;\n }\n\n function assertNoDuplicate(what, previousDirective, directive, element) {\n\n function wrapModuleNameIfDefined(moduleName) {\n return moduleName ?\n (' (module: ' + moduleName + ')') :\n '';\n }\n\n if (previousDirective) {\n throw $compileMinErr('multidir', 'Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}',\n previousDirective.name, wrapModuleNameIfDefined(previousDirective.$$moduleName),\n directive.name, wrapModuleNameIfDefined(directive.$$moduleName), what, startingTag(element));\n }\n }\n\n\n function addTextInterpolateDirective(directives, text) {\n var interpolateFn = $interpolate(text, true);\n if (interpolateFn) {\n directives.push({\n priority: 0,\n compile: function textInterpolateCompileFn(templateNode) {\n var templateNodeParent = templateNode.parent();\n var hasCompileParent = !!templateNodeParent.length;\n\n // When transcluding a template that has bindings in the root\n // we don't have a parent and thus need to add the class during linking fn.\n if (hasCompileParent) compile.$$addBindingClass(templateNodeParent);\n\n return function textInterpolateLinkFn(scope, node) {\n var parent = node.parent();\n if (!hasCompileParent) compile.$$addBindingClass(parent);\n compile.$$addBindingInfo(parent, interpolateFn.expressions);\n scope.$watch(interpolateFn, function interpolateFnWatchAction(value) {\n node[0].nodeValue = value;\n });\n };\n }\n });\n }\n }\n\n\n function wrapTemplate(type, template) {\n type = lowercase(type || 'html');\n switch (type) {\n case 'svg':\n case 'math':\n var wrapper = window.document.createElement('div');\n wrapper.innerHTML = '<' + type + '>' + template + '';\n return wrapper.childNodes[0].childNodes;\n default:\n return template;\n }\n }\n\n\n function getTrustedContext(node, attrNormalizedName) {\n if (attrNormalizedName === 'srcdoc') {\n return $sce.HTML;\n }\n var tag = nodeName_(node);\n // All tags with src attributes require a RESOURCE_URL value, except for\n // img and various html5 media tags.\n if (attrNormalizedName === 'src' || attrNormalizedName === 'ngSrc') {\n if (!['img', 'video', 'audio', 'source', 'track'].includes(tag)) {\n return $sce.RESOURCE_URL;\n }\n // maction[xlink:href] can source SVG. It's not limited to .\n } else if (attrNormalizedName === 'xlinkHref' ||\n (tag === 'form' && attrNormalizedName === 'action') ||\n // links can be stylesheets or imports, which can run script in the current origin\n (tag === 'link' && attrNormalizedName === 'href')\n ) {\n return $sce.RESOURCE_URL;\n }\n }\n\n\n function addAttrInterpolateDirective(node, directives, value, name, isNgAttr) {\n var trustedContext = getTrustedContext(node, name);\n var mustHaveExpression = !isNgAttr;\n var allOrNothing = ALL_OR_NOTHING_ATTRS[name] || isNgAttr;\n\n var interpolateFn = $interpolate(value, mustHaveExpression, trustedContext, allOrNothing);\n\n // no interpolation found -> ignore\n if (!interpolateFn) return;\n\n if (name === 'multiple' && nodeName_(node) === 'select') {\n throw $compileMinErr('selmulti',\n 'Binding to the \\'multiple\\' attribute is not supported. Element: {0}',\n startingTag(node));\n }\n\n if (EVENT_HANDLER_ATTR_REGEXP.test(name)) {\n throw $compileMinErr('nodomevents',\n 'Interpolations for HTML DOM event attributes are disallowed. Please use the ' +\n 'ng- versions (such as ng-click instead of onclick) instead.');\n }\n\n directives.push({\n priority: 100,\n compile() {\n return {\n pre: function attrInterpolatePreLinkFn(scope, element, attr) {\n var $$observers = (attr.$$observers || (attr.$$observers = createMap()));\n\n // If the attribute has changed since last $interpolate()ed\n var newValue = attr[name];\n if (newValue !== value) {\n // we need to interpolate again since the attribute value has been updated\n // (e.g. by another directive's compile function)\n // ensure unset/empty values make interpolateFn falsy\n interpolateFn = newValue && $interpolate(newValue, true, trustedContext, allOrNothing);\n value = newValue;\n }\n\n // if attribute was updated so that there is no interpolation going on we don't want to\n // register any observers\n if (!interpolateFn) return;\n\n // initialize attr object so that it's ready in case we need the value for isolate\n // scope initialization, otherwise the value would not be available from isolate\n // directive's linking fn during linking phase\n attr[name] = interpolateFn(scope);\n\n ($$observers[name] || ($$observers[name] = [])).$$inter = true;\n (attr.$$observers && attr.$$observers[name].$$scope || scope).\n $watch(interpolateFn, function interpolateFnWatchAction(newValue, oldValue) {\n //special case for class attribute addition + removal\n //so that class changes can tap into the animation\n //hooks provided by the $animate service. Be sure to\n //skip animations when the first digest occurs (when\n //both the new and the old values are the same) since\n //the CSS classes are the non-interpolated values\n if (name === 'class' && newValue !== oldValue) {\n attr.$updateClass(newValue, oldValue);\n } else {\n attr.$set(name, newValue);\n }\n });\n }\n };\n }\n });\n }\n\n\n /**\n * This is a special jqLite.replaceWith, which can replace items which\n * have no parents, provided that the containing jqLite collection is provided.\n *\n * @param {JqLite=} $rootElement The root of the compile tree. Used so that we can replace nodes\n * in the root of the tree.\n * @param {JqLite} elementsToRemove The jqLite element which we are going to replace. We keep\n * the shell, but replace its DOM node reference.\n * @param {Node} newNode The new DOM node.\n */\n function replaceWith($rootElement, elementsToRemove, newNode) {\n var firstElementToRemove = elementsToRemove[0];\n var removeCount = elementsToRemove.length;\n var parent = firstElementToRemove.parentNode;\n var i;\n var ii;\n\n if ($rootElement) {\n for (i = 0, ii = $rootElement.length; i < ii; i++) {\n if ($rootElement[i] === firstElementToRemove) {\n $rootElement[i++] = newNode;\n for (var j = i, j2 = j + removeCount - 1,\n jj = $rootElement.length;\n j < jj; j++, j2++) {\n if (j2 < jj) {\n $rootElement[j] = $rootElement[j2];\n } else {\n delete $rootElement[j];\n }\n }\n $rootElement.length -= removeCount - 1;\n\n // If the replaced element is also the jQuery .context then replace it\n // .context is a deprecated jQuery api, so we should set it only when jQuery set it\n // http://api.jquery.com/context/\n if ($rootElement.context === firstElementToRemove) {\n $rootElement.context = newNode;\n }\n break;\n }\n }\n }\n\n if (parent) {\n parent.replaceChild(newNode, firstElementToRemove);\n }\n\n // Append all the `elementsToRemove` to a fragment. This will...\n // - remove them from the DOM\n // - allow them to still be traversed with .nextSibling\n // - allow a single fragment.qSA to fetch all elements being removed\n var fragment = window.document.createDocumentFragment();\n for (i = 0; i < removeCount; i++) {\n fragment.appendChild(elementsToRemove[i]);\n }\n\n if (jqLite.hasData(firstElementToRemove)) {\n // Copy over user data (that includes AngularJS's $scope etc.). Don't copy private\n // data here because there's no public interface in jQuery to do that and copying over\n // event listeners (which is the main use of private data) wouldn't work anyway.\n jqLite.data(newNode, jqLite.data(firstElementToRemove));\n\n // Remove $destroy event listeners from `firstElementToRemove`\n jqLite(firstElementToRemove).off('$destroy');\n }\n\n // Cleanup any data/listeners on the elements and children.\n // This includes invoking the $destroy event on any elements with listeners.\n jqLite.cleanData(fragment.querySelectorAll('*'));\n\n // Update the jqLite collection to only contain the `newNode`\n for (i = 1; i < removeCount; i++) {\n delete elementsToRemove[i];\n }\n elementsToRemove[0] = newNode;\n elementsToRemove.length = 1;\n }\n\n\n function cloneAndAnnotateFn(fn, annotation) {\n return extend(function() { return fn(...arguments); }, fn, annotation);\n }\n\n\n function invokeLinkFn(linkFn, scope, $element, attrs, controllers, transcludeFn) {\n try {\n linkFn(scope, $element, attrs, controllers, transcludeFn);\n } catch (e) {\n $exceptionHandler(e, startingTag($element));\n }\n }\n\n function strictBindingsCheck(attrName, directiveName) {\n if (strictComponentBindingsEnabled) {\n throw $compileMinErr('missingattr',\n 'Attribute \\'{0}\\' of \\'{1}\\' is non-optional and must be set!',\n attrName, directiveName);\n }\n }\n\n // Set up $watches for isolate scope and controller bindings.\n function initializeDirectiveBindings(scope, attrs, destination, bindings, directive) {\n var removeWatchCollection = [];\n var initialChanges = {};\n var changes;\n\n forEach(bindings, function initializeBinding(definition, scopeName) {\n var attrName = definition.attrName;\n var optional = definition.optional;\n\n var // @, =, <, or &\n mode = definition.mode;\n\n var lastValue;\n var parentGet;\n var parentSet;\n var compare;\n var removeWatch;\n\n switch (mode) {\n\n case '@':\n if (!optional && !hasOwnProperty.call(attrs, attrName)) {\n strictBindingsCheck(attrName, directive.name);\n destination[scopeName] = attrs[attrName] = undefined;\n\n }\n removeWatch = attrs.$observe(attrName, function(value) {\n if (isString(value) || isBoolean(value)) {\n var oldValue = destination[scopeName];\n recordChanges(scopeName, value, oldValue);\n destination[scopeName] = value;\n }\n });\n attrs.$$observers[attrName].$$scope = scope;\n lastValue = attrs[attrName];\n if (isString(lastValue)) {\n // If the attribute has been provided then we trigger an interpolation to ensure\n // the value is there for use in the link fn\n destination[scopeName] = $interpolate(lastValue)(scope);\n } else if (isBoolean(lastValue)) {\n // If the attributes is one of the BOOLEAN_ATTR then AngularJS will have converted\n // the value to boolean rather than a string, so we special case this situation\n destination[scopeName] = lastValue;\n }\n initialChanges[scopeName] = new SimpleChange(_UNINITIALIZED_VALUE, destination[scopeName]);\n removeWatchCollection.push(removeWatch);\n break;\n\n case '=':\n if (!hasOwnProperty.call(attrs, attrName)) {\n if (optional) break;\n strictBindingsCheck(attrName, directive.name);\n attrs[attrName] = undefined;\n }\n if (optional && !attrs[attrName]) break;\n\n parentGet = $parse(attrs[attrName]);\n if (parentGet.literal) {\n compare = equals;\n } else {\n compare = simpleCompare;\n }\n parentSet = parentGet.assign || function() {\n // reset the change, or we will throw this exception on every $digest\n lastValue = destination[scopeName] = parentGet(scope);\n throw $compileMinErr('nonassign',\n 'Expression \\'{0}\\' in attribute \\'{1}\\' used with directive \\'{2}\\' is non-assignable!',\n attrs[attrName], attrName, directive.name);\n };\n lastValue = destination[scopeName] = parentGet(scope);\n var parentValueWatch = function parentValueWatch(parentValue) {\n if (!compare(parentValue, destination[scopeName])) {\n // we are out of sync and need to copy\n if (!compare(parentValue, lastValue)) {\n // parent changed and it has precedence\n destination[scopeName] = parentValue;\n } else {\n // if the parent can be assigned then do so\n parentSet(scope, parentValue = destination[scopeName]);\n }\n }\n lastValue = parentValue;\n return lastValue;\n };\n parentValueWatch.$stateful = true;\n if (definition.collection) {\n removeWatch = scope.$watchCollection(attrs[attrName], parentValueWatch);\n } else {\n removeWatch = scope.$watch($parse(attrs[attrName], parentValueWatch), null, parentGet.literal);\n }\n removeWatchCollection.push(removeWatch);\n break;\n\n case '<':\n if (!hasOwnProperty.call(attrs, attrName)) {\n if (optional) break;\n strictBindingsCheck(attrName, directive.name);\n attrs[attrName] = undefined;\n }\n if (optional && !attrs[attrName]) break;\n\n parentGet = $parse(attrs[attrName]);\n var deepWatch = parentGet.literal;\n\n var initialValue = destination[scopeName] = parentGet(scope);\n initialChanges[scopeName] = new SimpleChange(_UNINITIALIZED_VALUE, destination[scopeName]);\n\n removeWatch = scope.$watch(parentGet, function parentValueWatchAction(newValue, oldValue) {\n if (oldValue === newValue) {\n if (oldValue === initialValue || (deepWatch && equals(oldValue, initialValue))) {\n return;\n }\n oldValue = initialValue;\n }\n recordChanges(scopeName, newValue, oldValue);\n destination[scopeName] = newValue;\n }, deepWatch);\n\n removeWatchCollection.push(removeWatch);\n break;\n\n case '&':\n if (!optional && !hasOwnProperty.call(attrs, attrName)) {\n strictBindingsCheck(attrName, directive.name);\n }\n // Don't assign Object.prototype method to scope\n parentGet = attrs.hasOwnProperty(attrName) ? $parse(attrs[attrName]) : noop;\n\n // Don't assign noop to destination if expression is not valid\n if (parentGet === noop && optional) break;\n\n destination[scopeName] = function(locals) {\n return parentGet(scope, locals);\n };\n break;\n }\n });\n\n function recordChanges(key, currentValue, previousValue) {\n if (isFunction(destination.$onChanges) && !simpleCompare(currentValue, previousValue)) {\n // If we have not already scheduled the top level onChangesQueue handler then do so now\n if (!onChangesQueue) {\n scope.$$postDigest(flushOnChangesQueue);\n onChangesQueue = [];\n }\n // If we have not already queued a trigger of onChanges for this controller then do so now\n if (!changes) {\n changes = {};\n onChangesQueue.push(triggerOnChangesHook);\n }\n // If the has been a change on this property already then we need to reuse the previous value\n if (changes[key]) {\n previousValue = changes[key].previousValue;\n }\n // Store this change\n changes[key] = new SimpleChange(previousValue, currentValue);\n }\n }\n\n function triggerOnChangesHook() {\n destination.$onChanges(changes);\n // Now clear the changes so that we schedule onChanges when more changes arrive\n changes = undefined;\n }\n\n return {\n initialChanges: initialChanges,\n removeWatches: removeWatchCollection.length && function removeWatches() {\n for (var i = 0, ii = removeWatchCollection.length; i < ii; ++i) {\n removeWatchCollection[i]();\n }\n }\n };\n }\n }];\n}\n\nfunction SimpleChange(previous, current) {\n this.previousValue = previous;\n this.currentValue = current;\n}\nSimpleChange.prototype.isFirstChange = function() { return this.previousValue === _UNINITIALIZED_VALUE; };\n\n\nvar PREFIX_REGEXP = /^((?:x|data)[:\\-_])/i;\nvar SPECIAL_CHARS_REGEXP = /[:\\-_]+(.)/g;\n\n/**\n * Converts all accepted directives format into proper directive name.\n * @param name Name to normalize\n */\nfunction directiveNormalize(name) {\n return name\n .replace(PREFIX_REGEXP, '')\n .replace(SPECIAL_CHARS_REGEXP, function(_, letter, offset) {\n return offset ? letter.toUpperCase() : letter;\n });\n}\n\n/**\n * @ngdoc type\n * @name $compile.directive.Attributes\n *\n * @description\n * A shared object between directive compile / linking functions which contains normalized DOM\n * element attributes. The values reflect current binding state `{{ }}`. The normalization is\n * needed since all of these are treated as equivalent in AngularJS:\n *\n * ```\n * \n * ```\n */\n\n/**\n * @ngdoc property\n * @name $compile.directive.Attributes#$attr\n *\n * @description\n * A map of DOM element attribute names to the normalized name. This is\n * needed to do reverse lookup from normalized name back to actual name.\n */\n\n\n/**\n * @ngdoc method\n * @name $compile.directive.Attributes#$set\n * @kind function\n *\n * @description\n * Set DOM element attribute value.\n *\n *\n * @param {string} name Normalized element attribute name of the property to modify. The name is\n * reverse-translated using the {@link ng.$compile.directive.Attributes#$attr $attr}\n * property to the original name.\n * @param {string} value Value to set the attribute to. The value can be an interpolated string.\n */\n\n\n\n/**\n * Closure compiler type information\n */\n\nfunction nodesetLinkingFn(\n /* angular.Scope */ scope,\n /* NodeList */ nodeList,\n /* Element */ rootElement,\n /* function(Function) */ boundTranscludeFn\n) {}\n\nfunction directiveLinkingFn(\n /* nodesetLinkingFn */ nodesetLinkingFn,\n /* angular.Scope */ scope,\n /* Node */ node,\n /* Element */ rootElement,\n /* function(Function) */ boundTranscludeFn\n) {}\n\nfunction tokenDifference(str1, str2) {\n var values = '';\n var tokens1 = str1.split(/\\s+/);\n var tokens2 = str2.split(/\\s+/);\n\n outer:\n for (var i = 0; i < tokens1.length; i++) {\n var token = tokens1[i];\n for (var j = 0; j < tokens2.length; j++) {\n if (token === tokens2[j]) continue outer;\n }\n values += (values.length > 0 ? ' ' : '') + token;\n }\n return values;\n}\n\nfunction removeComments(jqNodes) {\n jqNodes = jqLite(jqNodes);\n var i = jqNodes.length;\n\n if (i <= 1) {\n return jqNodes;\n }\n\n while (i--) {\n var node = jqNodes[i];\n if (node.nodeType === NODE_TYPE_COMMENT ||\n (node.nodeType === NODE_TYPE_TEXT && node.nodeValue.trim() === '')) {\n splice.call(jqNodes, i, 1);\n }\n }\n return jqNodes;\n}\n'use strict';\n\nvar $controllerMinErr = minErr('$controller');\n\n\nvar CNTRL_REG = /^(\\S+)(\\s+as\\s+([\\w$]+))?$/;\nfunction identifierForController(controller, ident) {\n if (ident && isString(ident)) return ident;\n if (isString(controller)) {\n var match = CNTRL_REG.exec(controller);\n if (match) return match[3];\n }\n}\n\n\n/**\n * @ngdoc provider\n * @name $controllerProvider\n * @this\n *\n * @description\n * The {@link ng.$controller $controller service} is used by AngularJS to create new\n * controllers.\n *\n * This provider allows controller registration via the\n * {@link ng.$controllerProvider#register register} method.\n */\nfunction $ControllerProvider() {\n var controllers = {};\n var globals = false;\n\n /**\n * @ngdoc method\n * @name $controllerProvider#has\n * @param {string} name Controller name to check.\n */\n this.has = function(name) {\n return controllers.hasOwnProperty(name);\n };\n\n /**\n * @ngdoc method\n * @name $controllerProvider#register\n * @param {string|Object} name Controller name, or an object map of controllers where the keys are\n * the names and the values are the constructors.\n * @param {Function|Array} constructor Controller constructor fn (optionally decorated with DI\n * annotations in the array notation).\n */\n this.register = function(name, constructor) {\n assertNotHasOwnProperty(name, 'controller');\n if (isObject(name)) {\n extend(controllers, name);\n } else {\n controllers[name] = constructor;\n }\n };\n\n /**\n * @ngdoc method\n * @name $controllerProvider#allowGlobals\n * @description If called, allows `$controller` to find controller constructors on `window`\n *\n * @deprecated\n * sinceVersion=\"v1.3.0\"\n * removeVersion=\"v1.7.0\"\n * This method of finding controllers has been deprecated.\n */\n this.allowGlobals = function() {\n globals = true;\n };\n\n\n this.$get = ['$injector', '$window', function($injector, $window) {\n\n /**\n * @ngdoc service\n * @name $controller\n * @requires $injector\n *\n * @param {Function|string} constructor If called with a function then it's considered to be the\n * controller constructor function. Otherwise it's considered to be a string which is used\n * to retrieve the controller constructor using the following steps:\n *\n * * check if a controller with given name is registered via `$controllerProvider`\n * * check if evaluating the string on the current scope returns a constructor\n * * if $controllerProvider#allowGlobals, check `window[constructor]` on the global\n * `window` object (deprecated, not recommended)\n *\n * The string can use the `controller as property` syntax, where the controller instance is published\n * as the specified property on the `scope`; the `scope` must be injected into `locals` param for this\n * to work correctly.\n *\n * @param {Object} locals Injection locals for Controller.\n * @return {Object} Instance of given controller.\n *\n * @description\n * `$controller` service is responsible for instantiating controllers.\n *\n * It's just a simple call to {@link auto.$injector $injector}, but extracted into\n * a service, so that one can override this service with [BC version](https://gist.github.com/1649788).\n */\n return function $controller(expression, locals, later, ident) {\n // PRIVATE API:\n // param `later` --- indicates that the controller's constructor is invoked at a later time.\n // If true, $controller will allocate the object with the correct\n // prototype chain, but will not invoke the controller until a returned\n // callback is invoked.\n // param `ident` --- An optional label which overrides the label parsed from the controller\n // expression, if any.\n var instance;\n\n var match;\n var constructor;\n var identifier;\n later = later === true;\n if (ident && isString(ident)) {\n identifier = ident;\n }\n\n if (isString(expression)) {\n match = expression.match(CNTRL_REG);\n if (!match) {\n throw $controllerMinErr('ctrlfmt',\n 'Badly formed controller string \\'{0}\\'. ' +\n 'Must match `__name__ as __id__` or `__name__`.', expression);\n }\n constructor = match[1];\n identifier = identifier || match[3];\n expression = controllers.hasOwnProperty(constructor)\n ? controllers[constructor]\n : getter(locals.$scope, constructor, true) ||\n (globals ? getter($window, constructor, true) : undefined);\n\n if (!expression) {\n throw $controllerMinErr('ctrlreg',\n 'The controller with the name \\'{0}\\' is not registered.', constructor);\n }\n\n assertArgFn(expression, constructor, true);\n }\n\n if (later) {\n // Instantiate controller later:\n // This machinery is used to create an instance of the object before calling the\n // controller's constructor itself.\n //\n // This allows properties to be added to the controller before the constructor is\n // invoked. Primarily, this is used for isolate scope bindings in $compile.\n //\n // This feature is not intended for use by applications, and is thus not documented\n // publicly.\n // Object creation: http://jsperf.com/create-constructor/2\n var controllerPrototype = (isArray(expression) ?\n expression[expression.length - 1] : expression).prototype;\n instance = Object.create(controllerPrototype || null);\n\n if (identifier) {\n addIdentifier(locals, identifier, instance, constructor || expression.name);\n }\n\n return extend(function $controllerInit() {\n var result = $injector.invoke(expression, instance, locals, constructor);\n if (result !== instance && (isObject(result) || isFunction(result))) {\n instance = result;\n if (identifier) {\n // If result changed, re-assign controllerAs value to scope.\n addIdentifier(locals, identifier, instance, constructor || expression.name);\n }\n }\n return instance;\n }, {\n instance: instance,\n identifier: identifier\n });\n }\n\n instance = $injector.instantiate(expression, locals, constructor);\n\n if (identifier) {\n addIdentifier(locals, identifier, instance, constructor || expression.name);\n }\n\n return instance;\n };\n\n function addIdentifier(locals, identifier, instance, name) {\n if (!(locals && isObject(locals.$scope))) {\n throw minErr('$controller')('noscp',\n 'Cannot export controller \\'{0}\\' as \\'{1}\\'! No $scope object provided via `locals`.',\n name, identifier);\n }\n\n locals.$scope[identifier] = instance;\n }\n }];\n}\n'use strict';\n\n/**\n * @ngdoc service\n * @name $document\n * @requires $window\n * @this\n *\n * @description\n * A {@link angular.element jQuery or jqLite} wrapper for the browser's `window.document` object.\n *\n * @example\n \n \n
\n

$document title:

\n

window.document title:

\n
\n
\n \n angular.module('documentExample', [])\n .controller('ExampleController', ['$scope', '$document', function($scope, $document) {\n $scope.title = $document[0].title;\n $scope.windowTitle = angular.element(window.document)[0].title;\n }]);\n \n
\n */\nfunction $DocumentProvider() {\n this.$get = ['$window', function(window) {\n return jqLite(window.document);\n }];\n}\n\n\n/**\n * @private\n * @this\n * Listens for document visibility change and makes the current status accessible.\n */\nfunction $$IsDocumentHiddenProvider() {\n this.$get = ['$document', '$rootScope', function($document, $rootScope) {\n var doc = $document[0];\n var hidden = doc && doc.hidden;\n\n $document.on('visibilitychange', changeListener);\n\n $rootScope.$on('$destroy', function() {\n $document.off('visibilitychange', changeListener);\n });\n\n function changeListener() {\n hidden = doc.hidden;\n }\n\n return function() {\n return hidden;\n };\n }];\n}\n'use strict';\n\n/**\n * @ngdoc service\n * @name $exceptionHandler\n * @requires ng.$log\n * @this\n *\n * @description\n * Any uncaught exception in AngularJS expressions is delegated to this service.\n * The default implementation simply delegates to `$log.error` which logs it into\n * the browser console.\n *\n * In unit tests, if `angular-mocks.js` is loaded, this service is overridden by\n * {@link ngMock.$exceptionHandler mock $exceptionHandler} which aids in testing.\n *\n * ## Example:\n *\n * The example below will overwrite the default `$exceptionHandler` in order to (a) log uncaught\n * errors to the backend for later inspection by the developers and (b) to use `$log.warn()` instead\n * of `$log.error()`.\n *\n * ```js\n * angular.\n * module('exceptionOverwrite', []).\n * factory('$exceptionHandler', ['$log', 'logErrorsToBackend', function($log, logErrorsToBackend) {\n * return function myExceptionHandler(exception, cause) {\n * logErrorsToBackend(exception, cause);\n * $log.warn(exception, cause);\n * };\n * }]);\n * ```\n *\n *
\n * Note, that code executed in event-listeners (even those registered using jqLite's `on`/`bind`\n * methods) does not delegate exceptions to the {@link ng.$exceptionHandler $exceptionHandler}\n * (unless executed during a digest).\n *\n * If you wish, you can manually delegate exceptions, e.g.\n * `try { ... } catch(e) { $exceptionHandler(e); }`\n *\n * @param {Error} exception Exception associated with the error.\n * @param {string=} cause Optional information about the context in which\n * the error was thrown.\n *\n */\nfunction $ExceptionHandlerProvider() {\n this.$get = ['$log', function($log) {\n return function(exception, cause) {\n $log.error(...arguments);\n };\n }];\n}\n'use strict';\n\nvar $$ForceReflowProvider = /** @this */ function() {\n this.$get = ['$document', function($document) {\n return function(domNode) {\n //the line below will force the browser to perform a repaint so\n //that all the animated elements within the animation frame will\n //be properly updated and drawn on screen. This is required to\n //ensure that the preparation animation is properly flushed so that\n //the active state picks up from there. DO NOT REMOVE THIS LINE.\n //DO NOT OPTIMIZE THIS LINE. THE MINIFIER WILL REMOVE IT OTHERWISE WHICH\n //WILL RESULT IN AN UNPREDICTABLE BUG THAT IS VERY HARD TO TRACK DOWN AND\n //WILL TAKE YEARS AWAY FROM YOUR LIFE.\n if (domNode) {\n if (!domNode.nodeType && domNode instanceof jqLite) {\n domNode = domNode[0];\n }\n } else {\n domNode = $document[0].body;\n }\n return domNode.offsetWidth + 1;\n };\n }];\n};\n'use strict';\n\nvar APPLICATION_JSON = 'application/json';\nvar CONTENT_TYPE_APPLICATION_JSON = {'Content-Type': APPLICATION_JSON + ';charset=utf-8'};\nvar JSON_START = /^\\[|^\\{(?!\\{)/;\nvar JSON_ENDS = {\n '[': /]$/,\n '{': /}$/\n};\nvar JSON_PROTECTION_PREFIX = /^\\)]\\}',?\\n/;\nvar $httpMinErr = minErr('$http');\n\nfunction serializeValue(v) {\n if (isObject(v)) {\n return isDate(v) ? v.toISOString() : toJson(v);\n }\n return v;\n}\n\n\n/** @this */\nfunction $HttpParamSerializerProvider() {\n /**\n * @ngdoc service\n * @name $httpParamSerializer\n * @description\n *\n * Default {@link $http `$http`} params serializer that converts objects to strings\n * according to the following rules:\n *\n * * `{'foo': 'bar'}` results in `foo=bar`\n * * `{'foo': Date.now()}` results in `foo=2015-04-01T09%3A50%3A49.262Z` (`toISOString()` and encoded representation of a Date object)\n * * `{'foo': ['bar', 'baz']}` results in `foo=bar&foo=baz` (repeated key for each array element)\n * * `{'foo': {'bar':'baz'}}` results in `foo=%7B%22bar%22%3A%22baz%22%7D` (stringified and encoded representation of an object)\n *\n * Note that serializer will sort the request parameters alphabetically.\n */\n\n this.$get = function() {\n return function ngParamSerializer(params) {\n if (!params) return '';\n var parts = [];\n forEachSorted(params, function(value, key) {\n if (value === null || isUndefined(value) || isFunction(value)) return;\n if (isArray(value)) {\n forEach(value, function(v) {\n parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(v)));\n });\n } else {\n parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(value)));\n }\n });\n\n return parts.join('&');\n };\n };\n}\n\n/** @this */\nfunction $HttpParamSerializerJQLikeProvider() {\n /**\n * @ngdoc service\n * @name $httpParamSerializerJQLike\n *\n * @description\n *\n * Alternative {@link $http `$http`} params serializer that follows\n * jQuery's [`param()`](http://api.jquery.com/jquery.param/) method logic.\n * The serializer will also sort the params alphabetically.\n *\n * To use it for serializing `$http` request parameters, set it as the `paramSerializer` property:\n *\n * ```js\n * $http({\n * url: myUrl,\n * method: 'GET',\n * params: myParams,\n * paramSerializer: '$httpParamSerializerJQLike'\n * });\n * ```\n *\n * It is also possible to set it as the default `paramSerializer` in the\n * {@link $httpProvider#defaults `$httpProvider`}.\n *\n * Additionally, you can inject the serializer and use it explicitly, for example to serialize\n * form data for submission:\n *\n * ```js\n * .controller(function($http, $httpParamSerializerJQLike) {\n * //...\n *\n * $http({\n * url: myUrl,\n * method: 'POST',\n * data: $httpParamSerializerJQLike(myData),\n * headers: {\n * 'Content-Type': 'application/x-www-form-urlencoded'\n * }\n * });\n *\n * });\n * ```\n *\n */\n this.$get = function() {\n return function jQueryLikeParamSerializer(params) {\n if (!params) return '';\n var parts = [];\n serialize(params, '', true);\n return parts.join('&');\n\n function serialize(toSerialize, prefix, topLevel) {\n if (toSerialize === null || isUndefined(toSerialize)) return;\n if (isArray(toSerialize)) {\n forEach(toSerialize, function(value, index) {\n serialize(value, prefix + '[' + (isObject(value) ? index : '') + ']');\n });\n } else if (isObject(toSerialize) && !isDate(toSerialize)) {\n forEachSorted(toSerialize, function(value, key) {\n serialize(value, prefix +\n (topLevel ? '' : '[') +\n key +\n (topLevel ? '' : ']'));\n });\n } else {\n parts.push(encodeUriQuery(prefix) + '=' + encodeUriQuery(serializeValue(toSerialize)));\n }\n }\n };\n };\n}\n\nfunction defaultHttpResponseTransform(data, headers) {\n if (isString(data)) {\n // Strip json vulnerability protection prefix and trim whitespace\n var tempData = data.replace(JSON_PROTECTION_PREFIX, '').trim();\n\n if (tempData) {\n var contentType = headers('Content-Type');\n var hasJsonContentType = contentType && (contentType.indexOf(APPLICATION_JSON) === 0);\n\n if (hasJsonContentType || isJsonLike(tempData)) {\n try {\n data = fromJson(tempData);\n } catch (e) {\n if (!hasJsonContentType) {\n return data;\n }\n throw $httpMinErr('baddata', 'Data must be a valid JSON object. Received: \"{0}\". ' +\n 'Parse error: \"{1}\"', data, e);\n }\n }\n }\n }\n\n return data;\n}\n\nfunction isJsonLike(str) {\n var jsonStart = str.match(JSON_START);\n return jsonStart && JSON_ENDS[jsonStart[0]].test(str);\n}\n\n/**\n * Parse headers into key value object\n *\n * @param {string} headers Raw headers as a string\n * @returns {Object} Parsed headers as key value object\n */\nfunction parseHeaders(headers) {\n var parsed = createMap();\n var i;\n\n function fillInParsed(key, val) {\n if (key) {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n\n if (isString(headers)) {\n forEach(headers.split('\\n'), function(line) {\n i = line.indexOf(':');\n fillInParsed(lowercase(trim(line.substr(0, i))), trim(line.substr(i + 1)));\n });\n } else if (isObject(headers)) {\n forEach(headers, function(headerVal, headerKey) {\n fillInParsed(lowercase(headerKey), trim(headerVal));\n });\n }\n\n return parsed;\n}\n\n\n/**\n * Returns a function that provides access to parsed headers.\n *\n * Headers are lazy parsed when first requested.\n * @see parseHeaders\n *\n * @param {(string|Object)} headers Headers to provide access to.\n * @returns {function(string=)} Returns a getter function which if called with:\n *\n * - if called with an argument returns a single header value or null\n * - if called with no arguments returns an object containing all headers.\n */\nfunction headersGetter(headers) {\n var headersObj;\n\n return function(name) {\n if (!headersObj) headersObj = parseHeaders(headers);\n\n if (name) {\n var value = headersObj[lowercase(name)];\n if (value === undefined) {\n value = null;\n }\n return value;\n }\n\n return headersObj;\n };\n}\n\n\n/**\n * Chain all given functions\n *\n * This function is used for both request and response transforming\n *\n * @param {*} data Data to transform.\n * @param {function(string=)} headers HTTP headers getter fn.\n * @param {number} status HTTP status code of the response.\n * @param {(Function|Array.)} fns Function or an array of functions.\n * @returns {*} Transformed data.\n */\nfunction transformData(data, headers, status, fns) {\n if (isFunction(fns)) {\n return fns(data, headers, status);\n }\n\n forEach(fns, function(fn) {\n data = fn(data, headers, status);\n });\n\n return data;\n}\n\n\nfunction isSuccess(status) {\n return 200 <= status && status < 300;\n}\n\n\n/**\n * @ngdoc provider\n * @name $httpProvider\n * @this\n *\n * @description\n * Use `$httpProvider` to change the default behavior of the {@link ng.$http $http} service.\n */\nfunction $HttpProvider() {\n /**\n * @ngdoc property\n * @name $httpProvider#defaults\n * @description\n *\n * Object containing default values for all {@link ng.$http $http} requests.\n *\n * - **`defaults.cache`** - {boolean|Object} - A boolean value or object created with\n * {@link ng.$cacheFactory `$cacheFactory`} to enable or disable caching of HTTP responses\n * by default. See {@link $http#caching $http Caching} for more information.\n *\n * - **`defaults.headers`** - {Object} - Default headers for all $http requests.\n * Refer to {@link ng.$http#setting-http-headers $http} for documentation on\n * setting default headers.\n * - **`defaults.headers.common`**\n * - **`defaults.headers.post`**\n * - **`defaults.headers.put`**\n * - **`defaults.headers.patch`**\n *\n * - **`defaults.jsonpCallbackParam`** - `{string}` - the name of the query parameter that passes the name of the\n * callback in a JSONP request. The value of this parameter will be replaced with the expression generated by the\n * {@link $jsonpCallbacks} service. Defaults to `'callback'`.\n *\n * - **`defaults.paramSerializer`** - `{string|function(Object):string}` - A function\n * used to the prepare string representation of request parameters (specified as an object).\n * If specified as string, it is interpreted as a function registered with the {@link auto.$injector $injector}.\n * Defaults to {@link ng.$httpParamSerializer $httpParamSerializer}.\n *\n * - **`defaults.transformRequest`** -\n * `{Array|function(data, headersGetter)}` -\n * An array of functions (or a single function) which are applied to the request data.\n * By default, this is an array with one request transformation function:\n *\n * - If the `data` property of the request configuration object contains an object, serialize it\n * into JSON format.\n *\n * - **`defaults.transformResponse`** -\n * `{Array|function(data, headersGetter, status)}` -\n * An array of functions (or a single function) which are applied to the response data. By default,\n * this is an array which applies one response transformation function that does two things:\n *\n * - If XSRF prefix is detected, strip it\n * (see {@link ng.$http#security-considerations Security Considerations in the $http docs}).\n * - If the `Content-Type` is `application/json` or the response looks like JSON,\n * deserialize it using a JSON parser.\n *\n * - **`defaults.xsrfCookieName`** - {string} - Name of cookie containing the XSRF token.\n * Defaults value is `'XSRF-TOKEN'`.\n *\n * - **`defaults.xsrfHeaderName`** - {string} - Name of HTTP header to populate with the\n * XSRF token. Defaults value is `'X-XSRF-TOKEN'`.\n *\n */\n var defaults = this.defaults = {\n // transform incoming response data\n transformResponse: [defaultHttpResponseTransform],\n\n // transform outgoing request data\n transformRequest: [function(d) {\n return isObject(d) && !isFile(d) && !isBlob(d) && !isFormData(d) ? toJson(d) : d;\n }],\n\n // default headers\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n },\n post: shallowCopy(CONTENT_TYPE_APPLICATION_JSON),\n put: shallowCopy(CONTENT_TYPE_APPLICATION_JSON),\n patch: shallowCopy(CONTENT_TYPE_APPLICATION_JSON)\n },\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n paramSerializer: '$httpParamSerializer',\n\n jsonpCallbackParam: 'callback'\n };\n\n var useApplyAsync = false;\n /**\n * @ngdoc method\n * @name $httpProvider#useApplyAsync\n * @description\n *\n * Configure $http service to combine processing of multiple http responses received at around\n * the same time via {@link ng.$rootScope.Scope#$applyAsync $rootScope.$applyAsync}. This can result in\n * significant performance improvement for bigger applications that make many HTTP requests\n * concurrently (common during application bootstrap).\n *\n * Defaults to false. If no value is specified, returns the current configured value.\n *\n * @param {boolean=} value If true, when requests are loaded, they will schedule a deferred\n * \"apply\" on the next tick, giving time for subsequent requests in a roughly ~10ms window\n * to load and share the same digest cycle.\n *\n * @returns {boolean|Object} If a value is specified, returns the $httpProvider for chaining.\n * otherwise, returns the current configured value.\n */\n this.useApplyAsync = function(value) {\n if (isDefined(value)) {\n useApplyAsync = !!value;\n return this;\n }\n return useApplyAsync;\n };\n\n /**\n * @ngdoc property\n * @name $httpProvider#interceptors\n * @description\n *\n * Array containing service factories for all synchronous or asynchronous {@link ng.$http $http}\n * pre-processing of request or postprocessing of responses.\n *\n * These service factories are ordered by request, i.e. they are applied in the same order as the\n * array, on request, but reverse order, on response.\n *\n * {@link ng.$http#interceptors Interceptors detailed info}\n */\n var interceptorFactories = this.interceptors = [];\n\n /**\n * @ngdoc property\n * @name $httpProvider#xsrfWhitelistedOrigins\n * @description\n *\n * Array containing URLs whose origins are trusted to receive the XSRF token. See the\n * {@link ng.$http#security-considerations Security Considerations} sections for more details on\n * XSRF.\n *\n * **Note:** An \"origin\" consists of the [URI scheme](https://en.wikipedia.org/wiki/URI_scheme),\n * the [hostname](https://en.wikipedia.org/wiki/Hostname) and the\n * [port number](https://en.wikipedia.org/wiki/Port_(computer_networking). For `http:` and\n * `https:`, the port number can be omitted if using th default ports (80 and 443 respectively).\n * Examples: `http://example.com`, `https://api.example.com:9876`\n *\n *
\n * It is not possible to whitelist specific URLs/paths. The `path`, `query` and `fragment` parts\n * of a URL will be ignored. For example, `https://foo.com/path/bar?query=baz#fragment` will be\n * treated as `https://foo.com`, meaning that **all** requests to URLs starting with\n * `https://foo.com/` will include the XSRF token.\n *
\n *\n * @example\n *\n * ```js\n * // App served from `https://example.com/`.\n * angular.\n * module('xsrfWhitelistedOriginsExample', []).\n * config(['$httpProvider', function($httpProvider) {\n * $httpProvider.xsrfWhitelistedOrigins.push('https://api.example.com');\n * }]).\n * run(['$http', function($http) {\n * // The XSRF token will be sent.\n * $http.get('https://api.example.com/preferences').then(...);\n *\n * // The XSRF token will NOT be sent.\n * $http.get('https://stats.example.com/activity').then(...);\n * }]);\n * ```\n */\n var xsrfWhitelistedOrigins = this.xsrfWhitelistedOrigins = [];\n\n this.$get = ['$browser', '$httpBackend', '$$cookieReader', '$cacheFactory', '$rootScope', '$q', '$injector', '$sce',\n function($browser, $httpBackend, $$cookieReader, $cacheFactory, $rootScope, $q, $injector, $sce) {\n\n var defaultCache = $cacheFactory('$http');\n\n /**\n * Make sure that default param serializer is exposed as a function\n */\n defaults.paramSerializer = isString(defaults.paramSerializer) ?\n $injector.get(defaults.paramSerializer) : defaults.paramSerializer;\n\n /**\n * Interceptors stored in reverse order. Inner interceptors before outer interceptors.\n * The reversal is needed so that we can build up the interception chain around the\n * server request.\n */\n var reversedInterceptors = [];\n\n forEach(interceptorFactories, function(interceptorFactory) {\n reversedInterceptors.unshift(isString(interceptorFactory)\n ? $injector.get(interceptorFactory) : $injector.invoke(interceptorFactory));\n });\n\n /**\n * A function to check request URLs against a list of allowed origins.\n */\n var urlIsAllowedOrigin = urlIsAllowedOriginFactory(xsrfWhitelistedOrigins);\n\n /**\n * @ngdoc service\n * @kind function\n * @name $http\n * @requires ng.$httpBackend\n * @requires $cacheFactory\n * @requires $rootScope\n * @requires $q\n * @requires $injector\n *\n * @description\n * The `$http` service is a core AngularJS service that facilitates communication with the remote\n * HTTP servers via the browser's [XMLHttpRequest](https://developer.mozilla.org/en/xmlhttprequest)\n * object or via [JSONP](http://en.wikipedia.org/wiki/JSONP).\n *\n * For unit testing applications that use `$http` service, see\n * {@link ngMock.$httpBackend $httpBackend mock}.\n *\n * For a higher level of abstraction, please check out the {@link ngResource.$resource\n * $resource} service.\n *\n * The $http API is based on the {@link ng.$q deferred/promise APIs} exposed by\n * the $q service. While for simple usage patterns this doesn't matter much, for advanced usage\n * it is important to familiarize yourself with these APIs and the guarantees they provide.\n *\n *\n * ## General usage\n * The `$http` service is a function which takes a single argument — a {@link $http#usage configuration object} —\n * that is used to generate an HTTP request and returns a {@link ng.$q promise} that is\n * resolved (request success) or rejected (request failure) with a\n * {@link ng.$http#$http-returns response} object.\n *\n * ```js\n * // Simple GET request example:\n * $http({\n * method: 'GET',\n * url: '/someUrl'\n * }).then(function successCallback(response) {\n * // this callback will be called asynchronously\n * // when the response is available\n * }, function errorCallback(response) {\n * // called asynchronously if an error occurs\n * // or server returns response with an error status.\n * });\n * ```\n *\n *\n * ## Shortcut methods\n *\n * Shortcut methods are also available. All shortcut methods require passing in the URL, and\n * request data must be passed in for POST/PUT requests. An optional config can be passed as the\n * last argument.\n *\n * ```js\n * $http.get('/someUrl', config).then(successCallback, errorCallback);\n * $http.post('/someUrl', data, config).then(successCallback, errorCallback);\n * ```\n *\n * Complete list of shortcut methods:\n *\n * - {@link ng.$http#get $http.get}\n * - {@link ng.$http#head $http.head}\n * - {@link ng.$http#post $http.post}\n * - {@link ng.$http#put $http.put}\n * - {@link ng.$http#delete $http.delete}\n * - {@link ng.$http#jsonp $http.jsonp}\n * - {@link ng.$http#patch $http.patch}\n *\n *\n * ## Writing Unit Tests that use $http\n * When unit testing (using {@link ngMock ngMock}), it is necessary to call\n * {@link ngMock.$httpBackend#flush $httpBackend.flush()} to flush each pending\n * request using trained responses.\n *\n * ```\n * $httpBackend.expectGET(...);\n * $http.get(...);\n * $httpBackend.flush();\n * ```\n *\n * ## Setting HTTP Headers\n *\n * The $http service will automatically add certain HTTP headers to all requests. These defaults\n * can be fully configured by accessing the `$httpProvider.defaults.headers` configuration\n * object, which currently contains this default configuration:\n *\n * - `$httpProvider.defaults.headers.common` (headers that are common for all requests):\n * - Accept: application/json, text/plain, \\*/\\*\n * - `$httpProvider.defaults.headers.post`: (header defaults for POST requests)\n * - `Content-Type: application/json`\n * - `$httpProvider.defaults.headers.put` (header defaults for PUT requests)\n * - `Content-Type: application/json`\n *\n * To add or overwrite these defaults, simply add or remove a property from these configuration\n * objects. To add headers for an HTTP method other than POST or PUT, simply add a new object\n * with the lowercased HTTP method name as the key, e.g.\n * `$httpProvider.defaults.headers.get = { 'My-Header' : 'value' }`.\n *\n * The defaults can also be set at runtime via the `$http.defaults` object in the same\n * fashion. For example:\n *\n * ```\n * module.run(function($http) {\n * $http.defaults.headers.common.Authorization = 'Basic YmVlcDpib29w';\n * });\n * ```\n *\n * In addition, you can supply a `headers` property in the config object passed when\n * calling `$http(config)`, which overrides the defaults without changing them globally.\n *\n * To explicitly remove a header automatically added via $httpProvider.defaults.headers on a per request basis,\n * Use the `headers` property, setting the desired header to `undefined`. For example:\n *\n * ```js\n * var req = {\n * method: 'POST',\n * url: 'http://example.com',\n * headers: {\n * 'Content-Type': undefined\n * },\n * data: { test: 'test' }\n * }\n *\n * $http(req).then(function(){...}, function(){...});\n * ```\n *\n * ## Transforming Requests and Responses\n *\n * Both requests and responses can be transformed using transformation functions: `transformRequest`\n * and `transformResponse`. These properties can be a single function that returns\n * the transformed value (`function(data, headersGetter, status)`) or an array of such transformation functions,\n * which allows you to `push` or `unshift` a new transformation function into the transformation chain.\n *\n *
\n * **Note:** AngularJS does not make a copy of the `data` parameter before it is passed into the `transformRequest` pipeline.\n * That means changes to the properties of `data` are not local to the transform function (since Javascript passes objects by reference).\n * For example, when calling `$http.get(url, $scope.myObject)`, modifications to the object's properties in a transformRequest\n * function will be reflected on the scope and in any templates where the object is data-bound.\n * To prevent this, transform functions should have no side-effects.\n * If you need to modify properties, it is recommended to make a copy of the data, or create new object to return.\n *
\n *\n * ### Default Transformations\n *\n * The `$httpProvider` provider and `$http` service expose `defaults.transformRequest` and\n * `defaults.transformResponse` properties. If a request does not provide its own transformations\n * then these will be applied.\n *\n * You can augment or replace the default transformations by modifying these properties by adding to or\n * replacing the array.\n *\n * AngularJS provides the following default transformations:\n *\n * Request transformations (`$httpProvider.defaults.transformRequest` and `$http.defaults.transformRequest`) is\n * an array with one function that does the following:\n *\n * - If the `data` property of the request configuration object contains an object, serialize it\n * into JSON format.\n *\n * Response transformations (`$httpProvider.defaults.transformResponse` and `$http.defaults.transformResponse`) is\n * an array with one function that does the following:\n *\n * - If XSRF prefix is detected, strip it (see Security Considerations section below).\n * - If the `Content-Type` is `application/json` or the response looks like JSON,\n * deserialize it using a JSON parser.\n *\n *\n * ### Overriding the Default Transformations Per Request\n *\n * If you wish to override the request/response transformations only for a single request then provide\n * `transformRequest` and/or `transformResponse` properties on the configuration object passed\n * into `$http`.\n *\n * Note that if you provide these properties on the config object the default transformations will be\n * overwritten. If you wish to augment the default transformations then you must include them in your\n * local transformation array.\n *\n * The following code demonstrates adding a new response transformation to be run after the default response\n * transformations have been run.\n *\n * ```js\n * function appendTransform(defaults, transform) {\n *\n * // We can't guarantee that the default transformation is an array\n * defaults = angular.isArray(defaults) ? defaults : [defaults];\n *\n * // Append the new transformation to the defaults\n * return defaults.concat(transform);\n * }\n *\n * $http({\n * url: '...',\n * method: 'GET',\n * transformResponse: appendTransform($http.defaults.transformResponse, function(value) {\n * return doTransform(value);\n * })\n * });\n * ```\n *\n *\n * ## Caching\n *\n * {@link ng.$http `$http`} responses are not cached by default. To enable caching, you must\n * set the config.cache value or the default cache value to TRUE or to a cache object (created\n * with {@link ng.$cacheFactory `$cacheFactory`}). If defined, the value of config.cache takes\n * precedence over the default cache value.\n *\n * In order to:\n * * cache all responses - set the default cache value to TRUE or to a cache object\n * * cache a specific response - set config.cache value to TRUE or to a cache object\n *\n * If caching is enabled, but neither the default cache nor config.cache are set to a cache object,\n * then the default `$cacheFactory(\"$http\")` object is used.\n *\n * The default cache value can be set by updating the\n * {@link ng.$http#defaults `$http.defaults.cache`} property or the\n * {@link $httpProvider#defaults `$httpProvider.defaults.cache`} property.\n *\n * When caching is enabled, {@link ng.$http `$http`} stores the response from the server using\n * the relevant cache object. The next time the same request is made, the response is returned\n * from the cache without sending a request to the server.\n *\n * Take note that:\n *\n * * Only GET and JSONP requests are cached.\n * * The cache key is the request URL including search parameters; headers are not considered.\n * * Cached responses are returned asynchronously, in the same way as responses from the server.\n * * If multiple identical requests are made using the same cache, which is not yet populated,\n * one request will be made to the server and remaining requests will return the same response.\n * * A cache-control header on the response does not affect if or how responses are cached.\n *\n *\n * ## Interceptors\n *\n * Before you start creating interceptors, be sure to understand the\n * {@link ng.$q $q and deferred/promise APIs}.\n *\n * For purposes of global error handling, authentication, or any kind of synchronous or\n * asynchronous pre-processing of request or postprocessing of responses, it is desirable to be\n * able to intercept requests before they are handed to the server and\n * responses before they are handed over to the application code that\n * initiated these requests. The interceptors leverage the {@link ng.$q\n * promise APIs} to fulfill this need for both synchronous and asynchronous pre-processing.\n *\n * The interceptors are service factories that are registered with the `$httpProvider` by\n * adding them to the `$httpProvider.interceptors` array. The factory is called and\n * injected with dependencies (if specified) and returns the interceptor.\n *\n * There are two kinds of interceptors (and two kinds of rejection interceptors):\n *\n * * `request`: interceptors get called with a http {@link $http#usage config} object. The function is free to\n * modify the `config` object or create a new one. The function needs to return the `config`\n * object directly, or a promise containing the `config` or a new `config` object.\n * * `requestError`: interceptor gets called when a previous interceptor threw an error or\n * resolved with a rejection.\n * * `response`: interceptors get called with http `response` object. The function is free to\n * modify the `response` object or create a new one. The function needs to return the `response`\n * object directly, or as a promise containing the `response` or a new `response` object.\n * * `responseError`: interceptor gets called when a previous interceptor threw an error or\n * resolved with a rejection.\n *\n *\n * ```js\n * // register the interceptor as a service\n * $provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {\n * return {\n * // optional method\n * 'request': function(config) {\n * // do something on success\n * return config;\n * },\n *\n * // optional method\n * 'requestError': function(rejection) {\n * // do something on error\n * if (canRecover(rejection)) {\n * return responseOrNewPromise\n * }\n * return $q.reject(rejection);\n * },\n *\n *\n *\n * // optional method\n * 'response': function(response) {\n * // do something on success\n * return response;\n * },\n *\n * // optional method\n * 'responseError': function(rejection) {\n * // do something on error\n * if (canRecover(rejection)) {\n * return responseOrNewPromise\n * }\n * return $q.reject(rejection);\n * }\n * };\n * });\n *\n * $httpProvider.interceptors.push('myHttpInterceptor');\n *\n *\n * // alternatively, register the interceptor via an anonymous factory\n * $httpProvider.interceptors.push(function($q, dependency1, dependency2) {\n * return {\n * 'request': function(config) {\n * // same as above\n * },\n *\n * 'response': function(response) {\n * // same as above\n * }\n * };\n * });\n * ```\n *\n * ## Security Considerations\n *\n * When designing web applications, consider security threats from:\n *\n * - [JSON vulnerability](http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx)\n * - [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery)\n *\n * Both server and the client must cooperate in order to eliminate these threats. AngularJS comes\n * pre-configured with strategies that address these issues, but for this to work backend server\n * cooperation is required.\n *\n * ### JSON Vulnerability Protection\n *\n * A [JSON vulnerability](http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx)\n * allows third party website to turn your JSON resource URL into\n * [JSONP](http://en.wikipedia.org/wiki/JSONP) request under some conditions. To\n * counter this your server can prefix all JSON requests with following string `\")]}',\\n\"`.\n * AngularJS will automatically strip the prefix before processing it as JSON.\n *\n * For example if your server needs to return:\n * ```js\n * ['one','two']\n * ```\n *\n * which is vulnerable to attack, your server can return:\n * ```js\n * )]}',\n * ['one','two']\n * ```\n *\n * AngularJS will strip the prefix, before processing the JSON.\n *\n *\n * ### Cross Site Request Forgery (XSRF) Protection\n *\n * [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) is an attack technique by\n * which the attacker can trick an authenticated user into unknowingly executing actions on your\n * website. AngularJS provides a mechanism to counter XSRF. When performing XHR requests, the\n * $http service reads a token from a cookie (by default, `XSRF-TOKEN`) and sets it as an HTTP\n * header (by default `X-XSRF-TOKEN`). Since only JavaScript that runs on your domain could read\n * the cookie, your server can be assured that the XHR came from JavaScript running on your\n * domain.\n *\n * To take advantage of this, your server needs to set a token in a JavaScript readable session\n * cookie called `XSRF-TOKEN` on the first HTTP GET request. On subsequent XHR requests the\n * server can verify that the cookie matches the `X-XSRF-TOKEN` HTTP header, and therefore be\n * sure that only JavaScript running on your domain could have sent the request. The token must\n * be unique for each user and must be verifiable by the server (to prevent the JavaScript from\n * making up its own tokens). We recommend that the token is a digest of your site's\n * authentication cookie with a [salt](https://en.wikipedia.org/wiki/Salt_(cryptography))\n * for added security.\n *\n * The header will — by default — **not** be set for cross-domain requests. This\n * prevents unauthorized servers (e.g. malicious or compromised 3rd-party APIs) from gaining\n * access to your users' XSRF tokens and exposing them to Cross Site Request Forgery. If you\n * want to, you can whitelist additional origins to also receive the XSRF token, by adding them\n * to {@link ng.$httpProvider#xsrfWhitelistedOrigins xsrfWhitelistedOrigins}. This might be\n * useful, for example, if your application, served from `example.com`, needs to access your API\n * at `api.example.com`.\n * See {@link ng.$httpProvider#xsrfWhitelistedOrigins $httpProvider.xsrfWhitelistedOrigins} for\n * more details.\n *\n *
\n * **Warning**
\n * Only whitelist origins that you have control over and make sure you understand the\n * implications of doing so.\n *
\n *\n * The name of the cookie and the header can be specified using the `xsrfCookieName` and\n * `xsrfHeaderName` properties of either `$httpProvider.defaults` at config-time,\n * `$http.defaults` at run-time, or the per-request config object.\n *\n * In order to prevent collisions in environments where multiple AngularJS apps share the\n * same domain or subdomain, we recommend that each application uses a unique cookie name.\n *\n *\n * @param {object} config Object describing the request to be made and how it should be\n * processed. The object has following properties:\n *\n * - **method** – `{string}` – HTTP method (e.g. 'GET', 'POST', etc)\n * - **url** – `{string|TrustedObject}` – Absolute or relative URL of the resource that is being requested;\n * or an object created by a call to `$sce.trustAsResourceUrl(url)`.\n * - **params** – `{Object.}` – Map of strings or objects which will be serialized\n * with the `paramSerializer` and appended as GET parameters.\n * - **data** – `{string|Object}` – Data to be sent as the request message data.\n * - **headers** – `{Object}` – Map of strings or functions which return strings representing\n * HTTP headers to send to the server. If the return value of a function is null, the\n * header will not be sent. Functions accept a config object as an argument.\n * - **eventHandlers** - `{Object}` - Event listeners to be bound to the XMLHttpRequest object.\n * To bind events to the XMLHttpRequest upload object, use `uploadEventHandlers`.\n * The handler will be called in the context of a `$apply` block.\n * - **uploadEventHandlers** - `{Object}` - Event listeners to be bound to the XMLHttpRequest upload\n * object. To bind events to the XMLHttpRequest object, use `eventHandlers`.\n * The handler will be called in the context of a `$apply` block.\n * - **xsrfHeaderName** – `{string}` – Name of HTTP header to populate with the XSRF token.\n * - **xsrfCookieName** – `{string}` – Name of cookie containing the XSRF token.\n * - **transformRequest** –\n * `{function(data, headersGetter)|Array.}` –\n * transform function or an array of such functions. The transform function takes the http\n * request body and headers and returns its transformed (typically serialized) version.\n * See {@link ng.$http#overriding-the-default-transformations-per-request\n * Overriding the Default Transformations}\n * - **transformResponse** –\n * `{function(data, headersGetter, status)|Array.}` –\n * transform function or an array of such functions. The transform function takes the http\n * response body, headers and status and returns its transformed (typically deserialized) version.\n * See {@link ng.$http#overriding-the-default-transformations-per-request\n * Overriding the Default Transformations}\n * - **paramSerializer** - `{string|function(Object):string}` - A function used to\n * prepare the string representation of request parameters (specified as an object).\n * If specified as string, it is interpreted as function registered with the\n * {@link $injector $injector}, which means you can create your own serializer\n * by registering it as a {@link auto.$provide#service service}.\n * The default serializer is the {@link $httpParamSerializer $httpParamSerializer};\n * alternatively, you can use the {@link $httpParamSerializerJQLike $httpParamSerializerJQLike}\n * - **cache** – `{boolean|Object}` – A boolean value or object created with\n * {@link ng.$cacheFactory `$cacheFactory`} to enable or disable caching of the HTTP response.\n * See {@link $http#caching $http Caching} for more information.\n * - **timeout** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise}\n * that should abort the request when resolved.\n *\n * A numerical timeout or a promise returned from {@link ng.$timeout $timeout}, will set\n * the `xhrStatus` in the {@link $http#$http-returns response} to \"timeout\", and any other\n * resolved promise will set it to \"abort\", following standard XMLHttpRequest behavior.\n *\n * - **withCredentials** - `{boolean}` - whether to set the `withCredentials` flag on the\n * XHR object. See [requests with credentials](https://developer.mozilla.org/docs/Web/HTTP/Access_control_CORS#Requests_with_credentials)\n * for more information.\n * - **responseType** - `{string}` - see\n * [XMLHttpRequest.responseType](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#xmlhttprequest-responsetype).\n *\n * @returns {HttpPromise} A {@link ng.$q `Promise}` that will be resolved (request success)\n * or rejected (request failure) with a response object.\n *\n * The response object has these properties:\n *\n * - **data** – `{string|Object}` – The response body transformed with\n * the transform functions.\n * - **status** – `{number}` – HTTP status code of the response.\n * - **headers** – `{function([headerName])}` – Header getter function.\n * - **config** – `{Object}` – The configuration object that was used\n * to generate the request.\n * - **statusText** – `{string}` – HTTP status text of the response.\n * - **xhrStatus** – `{string}` – Status of the XMLHttpRequest\n * (`complete`, `error`, `timeout` or `abort`).\n *\n *\n * A response status code between 200 and 299 is considered a success status\n * and will result in the success callback being called. Any response status\n * code outside of that range is considered an error status and will result\n * in the error callback being called.\n * Also, status codes less than -1 are normalized to zero. -1 usually means\n * the request was aborted, e.g. using a `config.timeout`. More information\n * about the status might be available in the `xhrStatus` property.\n *\n * Note that if the response is a redirect, XMLHttpRequest will transparently\n * follow it, meaning that the outcome (success or error) will be determined\n * by the final response status code.\n *\n *\n * @property {Array.} pendingRequests Array of config objects for currently pending\n * requests. This is primarily meant to be used for debugging purposes.\n *\n *\n * @example\n\n\n
\n \n \n
\n \n \n \n
http status code: {{status}}
\n
http response data: {{data}}
\n
\n
\n\n angular.module('httpExample', [])\n .config(['$sceDelegateProvider', function($sceDelegateProvider) {\n // We must whitelist the JSONP endpoint that we are using to show that we trust it\n $sceDelegateProvider.resourceUrlWhitelist([\n 'self',\n 'https://angularjs.org/**'\n ]);\n }])\n .controller('FetchController', ['$scope', '$http', '$templateCache',\n function($scope, $http, $templateCache) {\n $scope.method = 'GET';\n $scope.url = 'http-hello.html';\n\n $scope.fetch = function() {\n $scope.code = null;\n $scope.response = null;\n\n $http({method: $scope.method, url: $scope.url, cache: $templateCache}).\n then(function(response) {\n $scope.status = response.status;\n $scope.data = response.data;\n }, function(response) {\n $scope.data = response.data || 'Request failed';\n $scope.status = response.status;\n });\n };\n\n $scope.updateModel = function(method, url) {\n $scope.method = method;\n $scope.url = url;\n };\n }]);\n\n\n Hello, $http!\n\n\n var status = element(by.binding('status'));\n var data = element(by.binding('data'));\n var fetchBtn = element(by.id('fetchbtn'));\n var sampleGetBtn = element(by.id('samplegetbtn'));\n var invalidJsonpBtn = element(by.id('invalidjsonpbtn'));\n\n it('should make an xhr GET request', function() {\n sampleGetBtn.click();\n fetchBtn.click();\n expect(status.getText()).toMatch('200');\n expect(data.getText()).toMatch(/Hello, \\$http!/);\n });\n\n// Commented out due to flakes. See https://github.com/angular/angular.js/issues/9185\n// it('should make a JSONP request to angularjs.org', function() {\n// var sampleJsonpBtn = element(by.id('samplejsonpbtn'));\n// sampleJsonpBtn.click();\n// fetchBtn.click();\n// expect(status.getText()).toMatch('200');\n// expect(data.getText()).toMatch(/Super Hero!/);\n// });\n\n it('should make JSONP request to invalid URL and invoke the error handler',\n function() {\n invalidJsonpBtn.click();\n fetchBtn.click();\n expect(status.getText()).toMatch('0');\n expect(data.getText()).toMatch('Request failed');\n });\n\n
\n */\n function $http(requestConfig) {\n\n if (!isObject(requestConfig)) {\n throw minErr('$http')('badreq', 'Http request configuration must be an object. Received: {0}', requestConfig);\n }\n\n if (!isString($sce.valueOf(requestConfig.url))) {\n throw minErr('$http')('badreq', 'Http request configuration url must be a string or a $sce trusted object. Received: {0}', requestConfig.url);\n }\n\n var config = extend({\n method: 'get',\n transformRequest: defaults.transformRequest,\n transformResponse: defaults.transformResponse,\n paramSerializer: defaults.paramSerializer,\n jsonpCallbackParam: defaults.jsonpCallbackParam\n }, requestConfig);\n\n config.headers = mergeHeaders(requestConfig);\n config.method = uppercase(config.method);\n config.paramSerializer = isString(config.paramSerializer) ?\n $injector.get(config.paramSerializer) : config.paramSerializer;\n\n $browser.$$incOutstandingRequestCount();\n\n var requestInterceptors = [];\n var responseInterceptors = [];\n var promise = $q.resolve(config);\n\n // apply interceptors\n forEach(reversedInterceptors, function(interceptor) {\n if (interceptor.request || interceptor.requestError) {\n requestInterceptors.unshift(interceptor.request, interceptor.requestError);\n }\n if (interceptor.response || interceptor.responseError) {\n responseInterceptors.push(interceptor.response, interceptor.responseError);\n }\n });\n\n promise = chainInterceptors(promise, requestInterceptors);\n promise = promise.then(serverRequest);\n promise = chainInterceptors(promise, responseInterceptors);\n promise = promise.finally(completeOutstandingRequest);\n\n return promise;\n\n\n function chainInterceptors(promise, interceptors) {\n for (var i = 0, ii = interceptors.length; i < ii;) {\n var thenFn = interceptors[i++];\n var rejectFn = interceptors[i++];\n\n promise = promise.then(thenFn, rejectFn);\n }\n\n interceptors.length = 0;\n\n return promise;\n }\n\n function completeOutstandingRequest() {\n $browser.$$completeOutstandingRequest(noop);\n }\n\n function executeHeaderFns(headers, config) {\n var headerContent;\n var processedHeaders = {};\n\n forEach(headers, function(headerFn, header) {\n if (isFunction(headerFn)) {\n headerContent = headerFn(config);\n if (headerContent != null) {\n processedHeaders[header] = headerContent;\n }\n } else {\n processedHeaders[header] = headerFn;\n }\n });\n\n return processedHeaders;\n }\n\n function mergeHeaders(config) {\n var defHeaders = defaults.headers;\n var reqHeaders = extend({}, config.headers);\n var defHeaderName;\n var lowercaseDefHeaderName;\n var reqHeaderName;\n\n defHeaders = extend({}, defHeaders.common, defHeaders[lowercase(config.method)]);\n\n // using for-in instead of forEach to avoid unnecessary iteration after header has been found\n defaultHeadersIteration:\n for (defHeaderName in defHeaders) {\n lowercaseDefHeaderName = lowercase(defHeaderName);\n\n for (reqHeaderName in reqHeaders) {\n if (lowercase(reqHeaderName) === lowercaseDefHeaderName) {\n continue defaultHeadersIteration;\n }\n }\n\n reqHeaders[defHeaderName] = defHeaders[defHeaderName];\n }\n\n // execute if header value is a function for merged headers\n return executeHeaderFns(reqHeaders, shallowCopy(config));\n }\n\n function serverRequest(config) {\n var headers = config.headers;\n var reqData = transformData(config.data, headersGetter(headers), undefined, config.transformRequest);\n\n // strip content-type if data is undefined\n if (isUndefined(reqData)) {\n forEach(headers, function(value, header) {\n if (lowercase(header) === 'content-type') {\n delete headers[header];\n }\n });\n }\n\n if (isUndefined(config.withCredentials) && !isUndefined(defaults.withCredentials)) {\n config.withCredentials = defaults.withCredentials;\n }\n\n // send request\n return sendReq(config, reqData).then(transformResponse, transformResponse);\n }\n\n function transformResponse(response) {\n // make a copy since the response must be cacheable\n var resp = extend({}, response);\n resp.data = transformData(response.data, response.headers, response.status,\n config.transformResponse);\n return (isSuccess(response.status))\n ? resp\n : $q.reject(resp);\n }\n }\n\n $http.pendingRequests = [];\n\n /**\n * @ngdoc method\n * @name $http#get\n *\n * @description\n * Shortcut method to perform `GET` request.\n *\n * @param {string|TrustedObject} url Absolute or relative URL of the resource that is being requested;\n * or an object created by a call to `$sce.trustAsResourceUrl(url)`.\n * @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.\n * @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.\n * See {@link ng.$http#$http-returns `$http()` return value}.\n */\n\n /**\n * @ngdoc method\n * @name $http#delete\n *\n * @description\n * Shortcut method to perform `DELETE` request.\n *\n * @param {string|TrustedObject} url Absolute or relative URL of the resource that is being requested;\n * or an object created by a call to `$sce.trustAsResourceUrl(url)`.\n * @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.\n * @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.\n * See {@link ng.$http#$http-returns `$http()` return value}.\n */\n\n /**\n * @ngdoc method\n * @name $http#head\n *\n * @description\n * Shortcut method to perform `HEAD` request.\n *\n * @param {string|TrustedObject} url Absolute or relative URL of the resource that is being requested;\n * or an object created by a call to `$sce.trustAsResourceUrl(url)`.\n * @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.\n * @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.\n * See {@link ng.$http#$http-returns `$http()` return value}.\n */\n\n /**\n * @ngdoc method\n * @name $http#jsonp\n *\n * @description\n * Shortcut method to perform `JSONP` request.\n *\n * Note that, since JSONP requests are sensitive because the response is given full access to the browser,\n * the url must be declared, via {@link $sce} as a trusted resource URL.\n * You can trust a URL by adding it to the whitelist via\n * {@link $sceDelegateProvider#resourceUrlWhitelist `$sceDelegateProvider.resourceUrlWhitelist`} or\n * by explicitly trusting the URL via {@link $sce#trustAsResourceUrl `$sce.trustAsResourceUrl(url)`}.\n *\n * You should avoid generating the URL for the JSONP request from user provided data.\n * Provide additional query parameters via `params` property of the `config` parameter, rather than\n * modifying the URL itself.\n *\n * JSONP requests must specify a callback to be used in the response from the server. This callback\n * is passed as a query parameter in the request. You must specify the name of this parameter by\n * setting the `jsonpCallbackParam` property on the request config object.\n *\n * ```\n * $http.jsonp('some/trusted/url', {jsonpCallbackParam: 'callback'})\n * ```\n *\n * You can also specify a default callback parameter name in `$http.defaults.jsonpCallbackParam`.\n * Initially this is set to `'callback'`.\n *\n *
\n * You can no longer use the `JSON_CALLBACK` string as a placeholder for specifying where the callback\n * parameter value should go.\n *
\n *\n * If you would like to customise where and how the callbacks are stored then try overriding\n * or decorating the {@link $jsonpCallbacks} service.\n *\n * @param {string|TrustedObject} url Absolute or relative URL of the resource that is being requested;\n * or an object created by a call to `$sce.trustAsResourceUrl(url)`.\n * @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.\n * @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.\n * See {@link ng.$http#$http-returns `$http()` return value}.\n */\n createShortMethods('get', 'delete', 'head', 'jsonp');\n\n /**\n * @ngdoc method\n * @name $http#post\n *\n * @description\n * Shortcut method to perform `POST` request.\n *\n * @param {string} url Relative or absolute URL specifying the destination of the request\n * @param {*} data Request content\n * @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.\n * @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.\n * See {@link ng.$http#$http-returns `$http()` return value}.\n */\n\n /**\n * @ngdoc method\n * @name $http#put\n *\n * @description\n * Shortcut method to perform `PUT` request.\n *\n * @param {string} url Relative or absolute URL specifying the destination of the request\n * @param {*} data Request content\n * @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.\n * @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.\n * See {@link ng.$http#$http-returns `$http()` return value}.\n */\n\n /**\n * @ngdoc method\n * @name $http#patch\n *\n * @description\n * Shortcut method to perform `PATCH` request.\n *\n * @param {string} url Relative or absolute URL specifying the destination of the request\n * @param {*} data Request content\n * @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.\n * @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.\n * See {@link ng.$http#$http-returns `$http()` return value}.\n */\n createShortMethodsWithData('post', 'put', 'patch');\n\n /**\n * @ngdoc property\n * @name $http#defaults\n *\n * @description\n * Runtime equivalent of the `$httpProvider.defaults` property. Allows configuration of\n * default headers, withCredentials as well as request and response transformations.\n *\n * See \"Setting HTTP Headers\" and \"Transforming Requests and Responses\" sections above.\n */\n $http.defaults = defaults;\n\n\n return $http;\n\n\n function createShortMethods(names) {\n forEach(arguments, function(name) {\n $http[name] = function(url, config) {\n return $http(extend({}, config || {}, {\n method: name,\n url: url\n }));\n };\n });\n }\n\n\n function createShortMethodsWithData(name) {\n forEach(arguments, function(name) {\n $http[name] = function(url, data, config) {\n return $http(extend({}, config || {}, {\n method: name,\n url: url,\n data: data\n }));\n };\n });\n }\n\n\n /**\n * Makes the request.\n *\n * !!! ACCESSES CLOSURE VARS:\n * $httpBackend, defaults, $log, $rootScope, defaultCache, $http.pendingRequests\n */\n function sendReq(config, reqData) {\n var deferred = $q.defer();\n var promise = deferred.promise;\n var cache;\n var cachedResp;\n var reqHeaders = config.headers;\n var isJsonp = lowercase(config.method) === 'jsonp';\n var url = config.url;\n\n if (isJsonp) {\n // JSONP is a pretty sensitive operation where we're allowing a script to have full access to\n // our DOM and JS space. So we require that the URL satisfies SCE.RESOURCE_URL.\n url = $sce.getTrustedResourceUrl(url);\n } else if (!isString(url)) {\n // If it is not a string then the URL must be a $sce trusted object\n url = $sce.valueOf(url);\n }\n\n url = buildUrl(url, config.paramSerializer(config.params));\n\n if (isJsonp) {\n // Check the url and add the JSONP callback placeholder\n url = sanitizeJsonpCallbackParam(url, config.jsonpCallbackParam);\n }\n\n $http.pendingRequests.push(config);\n promise.then(removePendingReq, removePendingReq);\n\n if ((config.cache || defaults.cache) && config.cache !== false &&\n (config.method === 'GET' || config.method === 'JSONP')) {\n cache = isObject(config.cache) ? config.cache\n : isObject(/** @type {?} */ (defaults).cache)\n ? /** @type {?} */ (defaults).cache\n : defaultCache;\n }\n\n if (cache) {\n cachedResp = cache.get(url);\n if (isDefined(cachedResp)) {\n if (isPromiseLike(cachedResp)) {\n // cached request has already been sent, but there is no response yet\n cachedResp.then(resolvePromiseWithResult, resolvePromiseWithResult);\n } else {\n // serving from cache\n if (isArray(cachedResp)) {\n resolvePromise(cachedResp[1], cachedResp[0], shallowCopy(cachedResp[2]), cachedResp[3], cachedResp[4]);\n } else {\n resolvePromise(cachedResp, 200, {}, 'OK', 'complete');\n }\n }\n } else {\n // put the promise for the non-transformed response into cache as a placeholder\n cache.put(url, promise);\n }\n }\n\n\n // if we won't have the response in cache, set the xsrf headers and\n // send the request to the backend\n if (isUndefined(cachedResp)) {\n var xsrfValue = urlIsAllowedOrigin(config.url)\n ? $$cookieReader()[config.xsrfCookieName || defaults.xsrfCookieName]\n : undefined;\n if (xsrfValue) {\n reqHeaders[(config.xsrfHeaderName || defaults.xsrfHeaderName)] = xsrfValue;\n }\n\n $httpBackend(config.method, url, reqData, done, reqHeaders, config.timeout,\n config.withCredentials, config.responseType,\n createApplyHandlers(config.eventHandlers),\n createApplyHandlers(config.uploadEventHandlers));\n }\n\n return promise;\n\n function createApplyHandlers(eventHandlers) {\n if (eventHandlers) {\n var applyHandlers = {};\n forEach(eventHandlers, function(eventHandler, key) {\n applyHandlers[key] = function(event) {\n if (useApplyAsync) {\n $rootScope.$applyAsync(callEventHandler);\n } else if ($rootScope.$$phase) {\n callEventHandler();\n } else {\n $rootScope.$apply(callEventHandler);\n }\n\n function callEventHandler() {\n eventHandler(event);\n }\n };\n });\n return applyHandlers;\n }\n }\n\n\n /**\n * Callback registered to $httpBackend():\n * - caches the response if desired\n * - resolves the raw $http promise\n * - calls $apply\n */\n function done(status, response, headersString, statusText, xhrStatus) {\n if (cache) {\n if (isSuccess(status)) {\n cache.put(url, [status, response, parseHeaders(headersString), statusText, xhrStatus]);\n } else {\n // remove promise from the cache\n cache.remove(url);\n }\n }\n\n function resolveHttpPromise() {\n resolvePromise(response, status, headersString, statusText, xhrStatus);\n }\n\n if (useApplyAsync) {\n $rootScope.$applyAsync(resolveHttpPromise);\n } else {\n resolveHttpPromise();\n if (!$rootScope.$$phase) $rootScope.$apply();\n }\n }\n\n\n /**\n * Resolves the raw $http promise.\n */\n function resolvePromise(response, status, headers, statusText, xhrStatus) {\n //status: HTTP response status code, 0, -1 (aborted by timeout / promise)\n status = status >= -1 ? status : 0;\n\n (isSuccess(status) ? deferred.resolve : deferred.reject)({\n data: response,\n status: status,\n headers: headersGetter(headers),\n config: config,\n statusText: statusText,\n xhrStatus: xhrStatus\n });\n }\n\n function resolvePromiseWithResult(result) {\n resolvePromise(result.data, result.status, shallowCopy(result.headers()), result.statusText, result.xhrStatus);\n }\n\n function removePendingReq() {\n var idx = $http.pendingRequests.indexOf(config);\n if (idx !== -1) $http.pendingRequests.splice(idx, 1);\n }\n }\n\n\n function buildUrl(url, serializedParams) {\n if (serializedParams.length > 0) {\n url += ((!url.includes('?')) ? '?' : '&') + serializedParams;\n }\n return url;\n }\n\n function sanitizeJsonpCallbackParam(url, cbKey) {\n var parts = url.split('?');\n if (parts.length > 2) {\n // Throw if the url contains more than one `?` query indicator\n throw $httpMinErr('badjsonp', 'Illegal use more than one \"?\", in url, \"{1}\"', url);\n }\n var params = parseKeyValue(parts[1]);\n forEach(params, function(value, key) {\n if (value === 'JSON_CALLBACK') {\n // Throw if the url already contains a reference to JSON_CALLBACK\n throw $httpMinErr('badjsonp', 'Illegal use of JSON_CALLBACK in url, \"{0}\"', url);\n }\n if (key === cbKey) {\n // Throw if the callback param was already provided\n throw $httpMinErr('badjsonp', 'Illegal use of callback param, \"{0}\", in url, \"{1}\"', cbKey, url);\n }\n });\n\n // Add in the JSON_CALLBACK callback param value\n url += ((!url.includes('?')) ? '?' : '&') + cbKey + '=JSON_CALLBACK';\n\n return url;\n }\n }];\n}\n'use strict';\n\n/**\n * @ngdoc service\n * @name $xhrFactory\n * @this\n *\n * @description\n * Factory function used to create XMLHttpRequest objects.\n *\n * Replace or decorate this service to create your own custom XMLHttpRequest objects.\n *\n * ```\n * angular.module('myApp', [])\n * .factory('$xhrFactory', function() {\n * return function createXhr(method, url) {\n * return new window.XMLHttpRequest({mozSystem: true});\n * };\n * });\n * ```\n *\n * @param {string} method HTTP method of the request (GET, POST, PUT, ..)\n * @param {string} url URL of the request.\n */\nfunction $xhrFactoryProvider() {\n this.$get = function() {\n return function createXhr() {\n return new window.XMLHttpRequest();\n };\n };\n}\n\n/**\n * @ngdoc service\n * @name $httpBackend\n * @requires $jsonpCallbacks\n * @requires $document\n * @requires $xhrFactory\n * @this\n *\n * @description\n * HTTP backend used by the {@link ng.$http service} that delegates to\n * XMLHttpRequest object or JSONP and deals with browser incompatibilities.\n *\n * You should never need to use this service directly, instead use the higher-level abstractions:\n * {@link ng.$http $http} or {@link ngResource.$resource $resource}.\n *\n * During testing this implementation is swapped with {@link ngMock.$httpBackend mock\n * $httpBackend} which can be trained with responses.\n */\nfunction $HttpBackendProvider() {\n this.$get = ['$browser', '$jsonpCallbacks', '$document', '$xhrFactory', function($browser, $jsonpCallbacks, $document, $xhrFactory) {\n return createHttpBackend($browser, $xhrFactory, $browser.defer, $jsonpCallbacks, $document[0]);\n }];\n}\n\nfunction createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDocument) {\n // TODO(vojta): fix the signature\n return function(method, url, post, callback, headers, timeout, withCredentials, responseType, eventHandlers, uploadEventHandlers) {\n url = url || $browser.url();\n\n if (lowercase(method) === 'jsonp') {\n var callbackPath = callbacks.createCallback(url);\n var jsonpDone = jsonpReq(url, callbackPath, function(status, text) {\n // jsonpReq only ever sets status to 200 (OK), 404 (ERROR) or -1 (WAITING)\n var response = (status === 200) && callbacks.getResponse(callbackPath);\n completeRequest(callback, status, response, '', text, 'complete');\n callbacks.removeCallback(callbackPath);\n });\n } else {\n\n var xhr = createXhr(method, url);\n var abortedByTimeout = false;\n\n xhr.open(method, url, true);\n forEach(headers, function(value, key) {\n if (isDefined(value)) {\n xhr.setRequestHeader(key, value);\n }\n });\n\n xhr.onload = function requestLoaded() {\n var statusText = xhr.statusText || '';\n var response = ('response' in xhr) ? xhr.response : xhr.responseText;\n var status = xhr.status;\n\n // fix status code when it is 0 (0 status is undocumented).\n // Occurs when accessing file resources or on Android 4.1 stock browser\n // while retrieving files from application cache.\n if (status === 0) {\n status = response ? 200 : urlResolve(url).protocol === 'file' ? 404 : 0;\n }\n\n completeRequest(callback,\n status,\n response,\n xhr.getAllResponseHeaders(),\n statusText,\n 'complete');\n };\n\n var requestError = function() {\n // The response is always empty\n // See https://xhr.spec.whatwg.org/#request-error-steps and https://fetch.spec.whatwg.org/#concept-network-error\n completeRequest(callback, -1, null, null, '', 'error');\n };\n\n var requestAborted = function() {\n completeRequest(callback, -1, null, null, '', abortedByTimeout ? 'timeout' : 'abort');\n };\n\n var requestTimeout = function() {\n // The response is always empty\n // See https://xhr.spec.whatwg.org/#request-error-steps and https://fetch.spec.whatwg.org/#concept-network-error\n completeRequest(callback, -1, null, null, '', 'timeout');\n };\n\n xhr.onerror = requestError;\n xhr.ontimeout = requestTimeout;\n xhr.onabort = requestAborted;\n\n forEach(eventHandlers, function(value, key) {\n xhr.addEventListener(key, value);\n });\n\n forEach(uploadEventHandlers, function(value, key) {\n xhr.upload.addEventListener(key, value);\n });\n\n if (withCredentials) {\n xhr.withCredentials = true;\n }\n\n if (responseType) {\n try {\n xhr.responseType = responseType;\n } catch (e) {\n // WebKit added support for the json responseType value on 09/03/2013\n // https://bugs.webkit.org/show_bug.cgi?id=73648. Versions of Safari prior to 7 are\n // known to throw when setting the value \"json\" as the response type. Other older\n // browsers implementing the responseType\n //\n // The json response type can be ignored if not supported, because JSON payloads are\n // parsed on the client-side regardless.\n if (responseType !== 'json') {\n throw e;\n }\n }\n }\n\n xhr.send(isUndefined(post) ? null : post);\n }\n\n // Since we are using xhr.abort() when a request times out, we have to set a flag that\n // indicates to requestAborted if the request timed out or was aborted.\n //\n // http.timeout = numerical timeout timeout\n // http.timeout = $timeout timeout\n // http.timeout = promise abort\n // xhr.abort() abort (The xhr object is normally inaccessible, but\n // can be exposed with the xhrFactory)\n if (timeout > 0) {\n var timeoutId = $browserDefer(function() {\n timeoutRequest('timeout');\n }, timeout);\n } else if (isPromiseLike(timeout)) {\n timeout.then(function() {\n timeoutRequest(isDefined(timeout.$$timeoutId) ? 'timeout' : 'abort');\n });\n }\n\n function timeoutRequest(reason) {\n abortedByTimeout = reason === 'timeout';\n if (jsonpDone) {\n jsonpDone();\n }\n if (xhr) {\n xhr.abort();\n }\n }\n\n function completeRequest(callback, status, response, headersString, statusText, xhrStatus) {\n // cancel timeout and subsequent timeout promise resolution\n if (isDefined(timeoutId)) {\n $browserDefer.cancel(timeoutId);\n }\n jsonpDone = xhr = null;\n\n callback(status, response, headersString, statusText, xhrStatus);\n }\n };\n\n function jsonpReq(url, callbackPath, done) {\n url = url.replace('JSON_CALLBACK', callbackPath);\n\n // we can't use jQuery/jqLite here because jQuery does crazy stuff with script elements, e.g.:\n // - fetches local scripts via XHR and evals them\n // - adds and immediately removes script elements from the document\n var script = rawDocument.createElement('script');\n\n var callback = null;\n script.type = 'text/javascript';\n script.src = url;\n script.async = true;\n\n callback = function(event) {\n script.removeEventListener('load', callback);\n script.removeEventListener('error', callback);\n rawDocument.body.removeChild(script);\n script = null;\n var status = -1;\n var text = 'unknown';\n\n if (event) {\n if (event.type === 'load' && !callbacks.wasCalled(callbackPath)) {\n event = { type: 'error' };\n }\n text = event.type;\n status = event.type === 'error' ? 404 : 200;\n }\n\n if (done) {\n done(status, text);\n }\n };\n\n script.addEventListener('load', callback);\n script.addEventListener('error', callback);\n rawDocument.body.appendChild(script);\n return callback;\n }\n}\n'use strict';\n\nvar $interpolateMinErr = angular.$interpolateMinErr = minErr('$interpolate');\n$interpolateMinErr.throwNoconcat = function(text) {\n throw $interpolateMinErr('noconcat',\n 'Error while interpolating: {0}\\nStrict Contextual Escaping disallows ' +\n 'interpolations that concatenate multiple expressions when a trusted value is ' +\n 'required. See http://docs.angularjs.org/api/ng.$sce', text);\n};\n\n$interpolateMinErr.interr = function(text, err) {\n return $interpolateMinErr('interr', 'Can\\'t interpolate: {0}\\n{1}', text, err.toString());\n};\n\n/**\n * @ngdoc provider\n * @name $interpolateProvider\n * @this\n *\n * @description\n *\n * Used for configuring the interpolation markup. Defaults to `{{` and `}}`.\n *\n *
\n * This feature is sometimes used to mix different markup languages, e.g. to wrap an AngularJS\n * template within a Python Jinja template (or any other template language). Mixing templating\n * languages is **very dangerous**. The embedding template language will not safely escape AngularJS\n * expressions, so any user-controlled values in the template will cause Cross Site Scripting (XSS)\n * security bugs!\n *
\n *\n * @example\n\n\n\n
\n //demo.label//\n
\n
\n\n it('should interpolate binding with custom symbols', function() {\n expect(element(by.binding('demo.label')).getText()).toBe('This binding is brought you by // interpolation symbols.');\n });\n\n
\n */\nfunction $InterpolateProvider() {\n var startSymbol = '{{';\n var endSymbol = '}}';\n\n /**\n * @ngdoc method\n * @name $interpolateProvider#startSymbol\n * @description\n * Symbol to denote start of expression in the interpolated string. Defaults to `{{`.\n *\n * @param {string=} value new value to set the starting symbol to.\n * @returns {string|self} Returns the symbol when used as getter and self if used as setter.\n */\n this.startSymbol = function(value) {\n if (value) {\n startSymbol = value;\n return this;\n } else {\n return startSymbol;\n }\n };\n\n /**\n * @ngdoc method\n * @name $interpolateProvider#endSymbol\n * @description\n * Symbol to denote the end of expression in the interpolated string. Defaults to `}}`.\n *\n * @param {string=} value new value to set the ending symbol to.\n * @returns {string|self} Returns the symbol when used as getter and self if used as setter.\n */\n this.endSymbol = function(value) {\n if (value) {\n endSymbol = value;\n return this;\n } else {\n return endSymbol;\n }\n };\n\n\n this.$get = ['$parse', '$exceptionHandler', '$sce', function($parse, $exceptionHandler, $sce) {\n var startSymbolLength = startSymbol.length;\n var endSymbolLength = endSymbol.length;\n var escapedStartRegexp = new RegExp(startSymbol.replace(/./g, escape), 'g');\n var escapedEndRegexp = new RegExp(endSymbol.replace(/./g, escape), 'g');\n\n function escape(ch) {\n return '\\\\\\\\\\\\' + ch;\n }\n\n function unescapeText(text) {\n return text.replace(escapedStartRegexp, startSymbol).\n replace(escapedEndRegexp, endSymbol);\n }\n\n // TODO: this is the same as the constantWatchDelegate in parse.js\n function constantWatchDelegate(scope, listener, objectEquality, constantInterp) {\n var unwatch = scope.$watch(function constantInterpolateWatch(scope) {\n unwatch();\n return constantInterp(scope);\n }, listener, objectEquality);\n return unwatch;\n }\n\n /**\n * @ngdoc service\n * @name $interpolate\n * @kind function\n *\n * @requires $parse\n * @requires $sce\n *\n * @description\n *\n * Compiles a string with markup into an interpolation function. This service is used by the\n * HTML {@link ng.$compile $compile} service for data binding. See\n * {@link ng.$interpolateProvider $interpolateProvider} for configuring the\n * interpolation markup.\n *\n *\n * ```js\n * var $interpolate = ...; // injected\n * var exp = $interpolate('Hello {{name | uppercase}}!');\n * expect(exp({name:'AngularJS'})).toEqual('Hello ANGULAR!');\n * ```\n *\n * `$interpolate` takes an optional fourth argument, `allOrNothing`. If `allOrNothing` is\n * `true`, the interpolation function will return `undefined` unless all embedded expressions\n * evaluate to a value other than `undefined`.\n *\n * ```js\n * var $interpolate = ...; // injected\n * var context = {greeting: 'Hello', name: undefined };\n *\n * // default \"forgiving\" mode\n * var exp = $interpolate('{{greeting}} {{name}}!');\n * expect(exp(context)).toEqual('Hello !');\n *\n * // \"allOrNothing\" mode\n * exp = $interpolate('{{greeting}} {{name}}!', false, null, true);\n * expect(exp(context)).toBeUndefined();\n * context.name = 'AngularJS';\n * expect(exp(context)).toEqual('Hello AngularJS!');\n * ```\n *\n * `allOrNothing` is useful for interpolating URLs. `ngSrc` and `ngSrcset` use this behavior.\n *\n * #### Escaped Interpolation\n * $interpolate provides a mechanism for escaping interpolation markers. Start and end markers\n * can be escaped by preceding each of their characters with a REVERSE SOLIDUS U+005C (backslash).\n * It will be rendered as a regular start/end marker, and will not be interpreted as an expression\n * or binding.\n *\n * This enables web-servers to prevent script injection attacks and defacing attacks, to some\n * degree, while also enabling code examples to work without relying on the\n * {@link ng.directive:ngNonBindable ngNonBindable} directive.\n *\n * **For security purposes, it is strongly encouraged that web servers escape user-supplied data,\n * replacing angle brackets (<, >) with &lt; and &gt; respectively, and replacing all\n * interpolation start/end markers with their escaped counterparts.**\n *\n * Escaped interpolation markers are only replaced with the actual interpolation markers in rendered\n * output when the $interpolate service processes the text. So, for HTML elements interpolated\n * by {@link ng.$compile $compile}, or otherwise interpolated with the `mustHaveExpression` parameter\n * set to `true`, the interpolated text must contain an unescaped interpolation expression. As such,\n * this is typically useful only when user-data is used in rendering a template from the server, or\n * when otherwise untrusted data is used by a directive.\n *\n * \n * \n *
\n *

{{apptitle}}: \\{\\{ username = \"defaced value\"; \\}\\}\n *

\n *

{{username}} attempts to inject code which will deface the\n * application, but fails to accomplish their task, because the server has correctly\n * escaped the interpolation start/end markers with REVERSE SOLIDUS U+005C (backslash)\n * characters.

\n *

Instead, the result of the attempted script injection is visible, and can be removed\n * from the database by an administrator.

\n *
\n *
\n *
\n *\n * @knownIssue\n * It is currently not possible for an interpolated expression to contain the interpolation end\n * symbol. For example, `{{ '}}' }}` will be incorrectly interpreted as `{{ ' }}` + `' }}`, i.e.\n * an interpolated expression consisting of a single-quote (`'`) and the `' }}` string.\n *\n * @knownIssue\n * All directives and components must use the standard `{{` `}}` interpolation symbols\n * in their templates. If you change the application interpolation symbols the {@link $compile}\n * service will attempt to denormalize the standard symbols to the custom symbols.\n * The denormalization process is not clever enough to know not to replace instances of the standard\n * symbols where they would not normally be treated as interpolation symbols. For example in the following\n * code snippet the closing braces of the literal object will get incorrectly denormalized:\n *\n * ```\n *
\n * ```\n *\n * See https://github.com/angular/angular.js/pull/14610#issuecomment-219401099 for more information.\n *\n * @param {string} text The text with markup to interpolate.\n * @param {boolean=} mustHaveExpression if set to true then the interpolation string must have\n * embedded expression in order to return an interpolation function. Strings with no\n * embedded expression will return null for the interpolation function.\n * @param {string=} trustedContext when provided, the returned function passes the interpolated\n * result through {@link ng.$sce#getTrusted $sce.getTrusted(interpolatedResult,\n * trustedContext)} before returning it. Refer to the {@link ng.$sce $sce} service that\n * provides Strict Contextual Escaping for details.\n * @param {boolean=} allOrNothing if `true`, then the returned function returns undefined\n * unless all embedded expressions evaluate to a value other than `undefined`.\n * @returns {function(context)} an interpolation function which is used to compute the\n * interpolated string. The function has these parameters:\n *\n * - `context`: evaluation context for all expressions embedded in the interpolated text\n */\n function $interpolate(text, mustHaveExpression, trustedContext, allOrNothing) {\n // Provide a quick exit and simplified result function for text with no interpolation\n if (!text.length || !text.includes(startSymbol)) {\n var constantInterp;\n if (!mustHaveExpression) {\n var unescapedText = unescapeText(text);\n constantInterp = valueFn(unescapedText);\n constantInterp.exp = text;\n constantInterp.expressions = [];\n constantInterp.$$watchDelegate = constantWatchDelegate;\n }\n return constantInterp;\n }\n\n allOrNothing = !!allOrNothing;\n var startIndex;\n var endIndex;\n var index = 0;\n var expressions = [];\n var parseFns = [];\n var textLength = text.length;\n var exp;\n var concat = [];\n var expressionPositions = [];\n\n while (index < textLength) {\n if (((startIndex = text.indexOf(startSymbol, index)) !== -1) &&\n ((endIndex = text.indexOf(endSymbol, startIndex + startSymbolLength)) !== -1)) {\n if (index !== startIndex) {\n concat.push(unescapeText(text.substring(index, startIndex)));\n }\n exp = text.substring(startIndex + startSymbolLength, endIndex);\n expressions.push(exp);\n parseFns.push($parse(exp, parseStringifyInterceptor));\n index = endIndex + endSymbolLength;\n expressionPositions.push(concat.length);\n concat.push('');\n } else {\n // we did not find an interpolation, so we have to add the remainder to the separators array\n if (index !== textLength) {\n concat.push(unescapeText(text.substring(index)));\n }\n break;\n }\n }\n\n // Concatenating expressions makes it hard to reason about whether some combination of\n // concatenated values are unsafe to use and could easily lead to XSS. By requiring that a\n // single expression be used for iframe[src], object[src], etc., we ensure that the value\n // that's used is assigned or constructed by some JS code somewhere that is more testable or\n // make it obvious that you bound the value to some user controlled value. This helps reduce\n // the load when auditing for XSS issues.\n if (trustedContext && concat.length > 1) {\n $interpolateMinErr.throwNoconcat(text);\n }\n\n if (!mustHaveExpression || expressions.length) {\n var compute = function(values) {\n for (var i = 0, ii = expressions.length; i < ii; i++) {\n if (allOrNothing && isUndefined(values[i])) return;\n concat[expressionPositions[i]] = values[i];\n }\n return concat.join('');\n };\n\n var getValue = function(value) {\n return trustedContext ?\n $sce.getTrusted(trustedContext, value) :\n $sce.valueOf(value);\n };\n\n return extend(function interpolationFn(context) {\n var i = 0;\n var ii = expressions.length;\n var values = new Array(ii);\n\n try {\n for (; i < ii; i++) {\n values[i] = parseFns[i](context);\n }\n\n return compute(values);\n } catch (err) {\n $exceptionHandler($interpolateMinErr.interr(text, err));\n }\n\n }, {\n // all of these properties are undocumented for now\n exp: text, //just for compatibility with regular watchers created via $watch\n expressions: expressions,\n $$watchDelegate(scope, listener) {\n var lastValue;\n return scope.$watchGroup(parseFns, /** @this */ function interpolateFnWatcher(values, oldValues) {\n var currValue = compute(values);\n listener.call(this, currValue, values !== oldValues ? lastValue : currValue, scope);\n lastValue = currValue;\n });\n }\n });\n }\n\n function parseStringifyInterceptor(value) {\n try {\n value = getValue(value);\n return allOrNothing && !isDefined(value) ? value : stringify(value);\n } catch (err) {\n $exceptionHandler($interpolateMinErr.interr(text, err));\n }\n }\n }\n\n\n /**\n * @ngdoc method\n * @name $interpolate#startSymbol\n * @description\n * Symbol to denote the start of expression in the interpolated string. Defaults to `{{`.\n *\n * Use {@link ng.$interpolateProvider#startSymbol `$interpolateProvider.startSymbol`} to change\n * the symbol.\n *\n * @returns {string} start symbol.\n */\n $interpolate.startSymbol = function() {\n return startSymbol;\n };\n\n\n /**\n * @ngdoc method\n * @name $interpolate#endSymbol\n * @description\n * Symbol to denote the end of expression in the interpolated string. Defaults to `}}`.\n *\n * Use {@link ng.$interpolateProvider#endSymbol `$interpolateProvider.endSymbol`} to change\n * the symbol.\n *\n * @returns {string} end symbol.\n */\n $interpolate.endSymbol = function() {\n return endSymbol;\n };\n\n return $interpolate;\n }];\n}\n\n'use strict';\n\n/** @this */\nfunction $IntervalProvider() {\n this.$get = ['$rootScope', '$window', '$q', '$$q', '$browser',\n function($rootScope, $window, $q, $$q, $browser) {\n var intervals = {};\n\n\n /**\n * @ngdoc service\n * @name $interval\n *\n * @description\n * AngularJS's wrapper for `window.setInterval`. The `fn` function is executed every `delay`\n * milliseconds.\n *\n * The return value of registering an interval function is a promise. This promise will be\n * notified upon each tick of the interval, and will be resolved after `count` iterations, or\n * run indefinitely if `count` is not defined. The value of the notification will be the\n * number of iterations that have run.\n * To cancel an interval, call `$interval.cancel(promise)`.\n *\n * In tests you can use {@link ngMock.$interval#flush `$interval.flush(millis)`} to\n * move forward by `millis` milliseconds and trigger any functions scheduled to run in that\n * time.\n *\n *
\n * **Note**: Intervals created by this service must be explicitly destroyed when you are finished\n * with them. In particular they are not automatically destroyed when a controller's scope or a\n * directive's element are destroyed.\n * You should take this into consideration and make sure to always cancel the interval at the\n * appropriate moment. See the example below for more details on how and when to do this.\n *
\n *\n * @param {function()} fn A function that should be called repeatedly. If no additional arguments\n * are passed (see below), the function is called with the current iteration count.\n * @param {number} delay Number of milliseconds between each function call.\n * @param {number=} [count=0] Number of times to repeat. If not set, or 0, will repeat\n * indefinitely.\n * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise\n * will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block.\n * @param {...*=} Pass additional parameters to the executed function.\n * @returns {promise} A promise which will be notified on each iteration. It will resolve once all iterations of the interval complete.\n *\n * @example\n * \n * \n * \n *\n *
\n *
\n *
\n * Current time is: \n *
\n * Blood 1 : {{blood_1}}\n * Blood 2 : {{blood_2}}\n * \n * \n * \n *
\n *
\n *\n *
\n *
\n */\n function interval(fn, delay, count, invokeApply) {\n var hasParams = arguments.length > 4;\n var args = hasParams ? sliceArgs(arguments, 4) : [];\n var setInterval = $window.setInterval;\n var clearInterval = $window.clearInterval;\n var iteration = 0;\n var skipApply = (isDefined(invokeApply) && !invokeApply);\n var deferred = (skipApply ? $$q : $q).defer();\n var promise = deferred.promise;\n\n count = isDefined(count) ? count : 0;\n\n promise.$$intervalId = setInterval(function tick() {\n if (skipApply) {\n $browser.defer(callback);\n } else {\n $rootScope.$evalAsync(callback);\n }\n deferred.notify(iteration++);\n\n if (count > 0 && iteration >= count) {\n deferred.resolve(iteration);\n clearInterval(promise.$$intervalId);\n delete intervals[promise.$$intervalId];\n }\n\n if (!skipApply) $rootScope.$apply();\n\n }, delay);\n\n intervals[promise.$$intervalId] = deferred;\n\n return promise;\n\n function callback() {\n if (!hasParams) {\n fn(iteration);\n } else {\n fn(...args);\n }\n }\n }\n\n\n /**\n * @ngdoc method\n * @name $interval#cancel\n *\n * @description\n * Cancels a task associated with the `promise`.\n *\n * @param {Promise=} promise returned by the `$interval` function.\n * @returns {boolean} Returns `true` if the task was successfully canceled.\n */\n interval.cancel = function(promise) {\n if (promise && promise.$$intervalId in intervals) {\n // Interval cancels should not report as unhandled promise.\n markQExceptionHandled(intervals[promise.$$intervalId].promise);\n intervals[promise.$$intervalId].reject('canceled');\n $window.clearInterval(promise.$$intervalId);\n delete intervals[promise.$$intervalId];\n return true;\n }\n return false;\n };\n\n return interval;\n }];\n}\n'use strict';\n\n/**\n * @ngdoc service\n * @name $jsonpCallbacks\n * @requires $window\n * @description\n * This service handles the lifecycle of callbacks to handle JSONP requests.\n * Override this service if you wish to customise where the callbacks are stored and\n * how they vary compared to the requested url.\n */\nvar $jsonpCallbacksProvider = /** @this */ function() {\n this.$get = function() {\n var callbacks = angular.callbacks;\n var callbackMap = {};\n\n function createCallback(callbackId) {\n var callback = function(data) {\n callback.data = data;\n callback.called = true;\n };\n callback.id = callbackId;\n return callback;\n }\n\n return {\n /**\n * @ngdoc method\n * @name $jsonpCallbacks#createCallback\n * @param {string} url the url of the JSONP request\n * @returns {string} the callback path to send to the server as part of the JSONP request\n * @description\n * {@link $httpBackend} calls this method to create a callback and get hold of the path to the callback\n * to pass to the server, which will be used to call the callback with its payload in the JSONP response.\n */\n createCallback(url) {\n var callbackId = '_' + (callbacks.$$counter++).toString(36);\n var callbackPath = 'angular.callbacks.' + callbackId;\n var callback = createCallback(callbackId);\n callbackMap[callbackPath] = callbacks[callbackId] = callback;\n return callbackPath;\n },\n /**\n * @ngdoc method\n * @name $jsonpCallbacks#wasCalled\n * @param {string} callbackPath the path to the callback that was sent in the JSONP request\n * @returns {boolean} whether the callback has been called, as a result of the JSONP response\n * @description\n * {@link $httpBackend} calls this method to find out whether the JSONP response actually called the\n * callback that was passed in the request.\n */\n wasCalled(callbackPath) {\n return callbackMap[callbackPath].called;\n },\n /**\n * @ngdoc method\n * @name $jsonpCallbacks#getResponse\n * @param {string} callbackPath the path to the callback that was sent in the JSONP request\n * @returns {*} the data received from the response via the registered callback\n * @description\n * {@link $httpBackend} calls this method to get hold of the data that was provided to the callback\n * in the JSONP response.\n */\n getResponse(callbackPath) {\n return callbackMap[callbackPath].data;\n },\n /**\n * @ngdoc method\n * @name $jsonpCallbacks#removeCallback\n * @param {string} callbackPath the path to the callback that was sent in the JSONP request\n * @description\n * {@link $httpBackend} calls this method to remove the callback after the JSONP request has\n * completed or timed-out.\n */\n removeCallback(callbackPath) {\n var callback = callbackMap[callbackPath];\n delete callbacks[callback.id];\n delete callbackMap[callbackPath];\n }\n };\n };\n};\n'use strict';\n\n/**\n * @ngdoc service\n * @name $locale\n *\n * @description\n * $locale service provides localization rules for various AngularJS components. As of right now the\n * only public api is:\n *\n * * `id` – `{string}` – locale id formatted as `languageId-countryId` (e.g. `en-us`)\n */\n\n'use strict';\n\nvar PATH_MATCH = /^([^?#]*)(\\?([^#]*))?(#(.*))?$/;\nvar DEFAULT_PORTS = {'http': 80, 'https': 443, 'ftp': 21};\nvar $locationMinErr = minErr('$location');\n\n\n/**\n * Encode path using encodeUriSegment, ignoring forward slashes\n *\n * @param {string} path Path to encode\n * @returns {string}\n */\nfunction encodePath(path) {\n var segments = path.split('/');\n var i = segments.length;\n\n while (i--) {\n // decode forward slashes to prevent them from being double encoded\n segments[i] = encodeUriSegment(segments[i].replace(/%2F/g, '/'));\n }\n\n return segments.join('/');\n}\n\nfunction decodePath(path, html5Mode) {\n var segments = path.split('/');\n var i = segments.length;\n\n while (i--) {\n segments[i] = decodeURIComponent(segments[i]);\n if (html5Mode) {\n // encode forward slashes to prevent them from being mistaken for path separators\n segments[i] = segments[i].replace(/\\//g, '%2F');\n }\n }\n\n return segments.join('/');\n}\n\nfunction parseAbsoluteUrl(absoluteUrl, locationObj) {\n var parsedUrl = urlResolve(absoluteUrl);\n\n locationObj.$$protocol = parsedUrl.protocol;\n locationObj.$$host = parsedUrl.hostname;\n locationObj.$$port = toInt(parsedUrl.port) || DEFAULT_PORTS[parsedUrl.protocol] || null;\n}\n\nvar DOUBLE_SLASH_REGEX = /^\\s*[\\\\/]{2,}/;\nfunction parseAppUrl(url, locationObj, html5Mode) {\n\n if (DOUBLE_SLASH_REGEX.test(url)) {\n throw $locationMinErr('badpath', 'Invalid url \"{0}\".', url);\n }\n\n var prefixed = (url.charAt(0) !== '/');\n if (prefixed) {\n url = '/' + url;\n }\n var match = urlResolve(url);\n var path = prefixed && match.pathname.charAt(0) === '/' ? match.pathname.substring(1) : match.pathname;\n locationObj.$$path = decodePath(path, html5Mode);\n locationObj.$$search = parseKeyValue(match.search);\n locationObj.$$hash = decodeURIComponent(match.hash);\n\n // make sure path starts with '/';\n if (locationObj.$$path && locationObj.$$path.charAt(0) !== '/') {\n locationObj.$$path = '/' + locationObj.$$path;\n }\n}\n\nfunction startsWith(str, search) {\n return str.slice(0, search.length) === search;\n}\n\n/**\n *\n * @param {string} base\n * @param {string} url\n * @returns {string} returns text from `url` after `base` or `undefined` if it does not begin with\n * the expected string.\n */\nfunction stripBaseUrl(base, url) {\n if (startsWith(url, base)) {\n return url.substr(base.length);\n }\n}\n\n\nfunction stripHash(url) {\n var index = url.indexOf('#');\n return index === -1 ? url : url.substr(0, index);\n}\n\nfunction trimEmptyHash(url) {\n return url.replace(/(#.+)|#$/, '$1');\n}\n\n\nfunction stripFile(url) {\n return url.substr(0, stripHash(url).lastIndexOf('/') + 1);\n}\n\n/* return the server only (scheme://host:port) */\nfunction serverBase(url) {\n return url.substring(0, url.indexOf('/', url.indexOf('//') + 2));\n}\n\n\n/**\n * LocationHtml5Url represents a URL\n * This object is exposed as $location service when HTML5 mode is enabled and supported\n *\n * @constructor\n * @param {string} appBase application base URL\n * @param {string} appBaseNoFile application base URL stripped of any filename\n * @param {string} basePrefix URL path prefix\n */\nfunction LocationHtml5Url(appBase, appBaseNoFile, basePrefix) {\n this.$$html5 = true;\n basePrefix = basePrefix || '';\n parseAbsoluteUrl(appBase, this);\n\n\n /**\n * Parse given HTML5 (regular) URL string into properties\n * @param {string} url HTML5 URL\n * @private\n */\n this.$$parse = function(url) {\n var pathUrl = stripBaseUrl(appBaseNoFile, url);\n if (!isString(pathUrl)) {\n throw $locationMinErr('ipthprfx', 'Invalid url \"{0}\", missing path prefix \"{1}\".', url,\n appBaseNoFile);\n }\n\n parseAppUrl(pathUrl, this, true);\n\n if (!this.$$path) {\n this.$$path = '/';\n }\n\n this.$$compose();\n };\n\n /**\n * Compose url and update `absUrl` property\n * @private\n */\n this.$$compose = function() {\n var search = toKeyValue(this.$$search);\n var hash = this.$$hash ? '#' + encodeUriSegment(this.$$hash) : '';\n\n this.$$url = encodePath(this.$$path) + (search ? '?' + search : '') + hash;\n this.$$absUrl = appBaseNoFile + this.$$url.substr(1); // first char is always '/'\n\n this.$$urlUpdatedByLocation = true;\n };\n\n this.$$parseLinkUrl = function(url, relHref) {\n if (relHref && relHref[0] === '#') {\n // special case for links to hash fragments:\n // keep the old url and only replace the hash fragment\n this.hash(relHref.slice(1));\n return true;\n }\n var appUrl;\n var prevAppUrl;\n var rewrittenUrl;\n\n\n if (isDefined(appUrl = stripBaseUrl(appBase, url))) {\n prevAppUrl = appUrl;\n if (basePrefix && isDefined(appUrl = stripBaseUrl(basePrefix, appUrl))) {\n rewrittenUrl = appBaseNoFile + (stripBaseUrl('/', appUrl) || appUrl);\n } else {\n rewrittenUrl = appBase + prevAppUrl;\n }\n } else if (isDefined(appUrl = stripBaseUrl(appBaseNoFile, url))) {\n rewrittenUrl = appBaseNoFile + appUrl;\n } else if (appBaseNoFile === url + '/') {\n rewrittenUrl = appBaseNoFile;\n }\n if (rewrittenUrl) {\n this.$$parse(rewrittenUrl);\n }\n return !!rewrittenUrl;\n };\n}\n\n\n/**\n * LocationHashbangUrl represents URL\n * This object is exposed as $location service when developer doesn't opt into html5 mode.\n * It also serves as the base class for html5 mode fallback on legacy browsers.\n *\n * @constructor\n * @param {string} appBase application base URL\n * @param {string} appBaseNoFile application base URL stripped of any filename\n * @param {string} hashPrefix hashbang prefix\n */\nfunction LocationHashbangUrl(appBase, appBaseNoFile, hashPrefix) {\n\n parseAbsoluteUrl(appBase, this);\n\n\n /**\n * Parse given hashbang URL into properties\n * @param {string} url Hashbang URL\n * @private\n */\n this.$$parse = function(url) {\n var withoutBaseUrl = stripBaseUrl(appBase, url) || stripBaseUrl(appBaseNoFile, url);\n var withoutHashUrl;\n\n if (!isUndefined(withoutBaseUrl) && withoutBaseUrl.charAt(0) === '#') {\n\n // The rest of the URL starts with a hash so we have\n // got either a hashbang path or a plain hash fragment\n withoutHashUrl = stripBaseUrl(hashPrefix, withoutBaseUrl);\n if (isUndefined(withoutHashUrl)) {\n // There was no hashbang prefix so we just have a hash fragment\n withoutHashUrl = withoutBaseUrl;\n }\n\n } else {\n // There was no hashbang path nor hash fragment:\n // If we are in HTML5 mode we use what is left as the path;\n // Otherwise we ignore what is left\n if (this.$$html5) {\n withoutHashUrl = withoutBaseUrl;\n } else {\n withoutHashUrl = '';\n if (isUndefined(withoutBaseUrl)) {\n appBase = url;\n /** @type {?} */ (this).replace();\n }\n }\n }\n\n parseAppUrl(withoutHashUrl, this, false);\n\n this.$$path = removeWindowsDriveName(this.$$path, withoutHashUrl, appBase);\n\n this.$$compose();\n\n /*\n * In Windows, on an anchor node on documents loaded from\n * the filesystem, the browser will return a pathname\n * prefixed with the drive name ('/C:/path') when a\n * pathname without a drive is set:\n * * a.setAttribute('href', '/foo')\n * * a.pathname === '/C:/foo' //true\n *\n * Inside of AngularJS, we're always using pathnames that\n * do not include drive names for routing.\n */\n function removeWindowsDriveName(path, url, base) {\n /*\n Matches paths for file protocol on windows,\n such as /C:/foo/bar, and captures only /foo/bar.\n */\n var windowsFilePathExp = /^\\/[A-Z]:(\\/.*)/;\n\n var firstPathSegmentMatch;\n\n //Get the relative path from the input URL.\n if (startsWith(url, base)) {\n url = url.replace(base, '');\n }\n\n // The input URL intentionally contains a first path segment that ends with a colon.\n if (windowsFilePathExp.exec(url)) {\n return path;\n }\n\n firstPathSegmentMatch = windowsFilePathExp.exec(path);\n return firstPathSegmentMatch ? firstPathSegmentMatch[1] : path;\n }\n };\n\n /**\n * Compose hashbang URL and update `absUrl` property\n * @private\n */\n this.$$compose = function() {\n var search = toKeyValue(this.$$search);\n var hash = this.$$hash ? '#' + encodeUriSegment(this.$$hash) : '';\n\n this.$$url = encodePath(this.$$path) + (search ? '?' + search : '') + hash;\n this.$$absUrl = appBase + (this.$$url ? hashPrefix + this.$$url : '');\n\n this.$$urlUpdatedByLocation = true;\n };\n\n this.$$parseLinkUrl = function(url, relHref) {\n if (stripHash(appBase) === stripHash(url)) {\n this.$$parse(url);\n return true;\n }\n return false;\n };\n}\n\n\n/**\n * LocationHashbangUrl represents URL\n * This object is exposed as $location service when html5 history api is enabled but the browser\n * does not support it.\n *\n * @constructor\n * @param {string} appBase application base URL\n * @param {string} appBaseNoFile application base URL stripped of any filename\n * @param {string} hashPrefix hashbang prefix\n */\nfunction LocationHashbangInHtml5Url(appBase, appBaseNoFile, hashPrefix) {\n this.$$html5 = true;\n LocationHashbangUrl.apply(this, arguments);\n\n this.$$parseLinkUrl = function(url, relHref) {\n if (relHref && relHref[0] === '#') {\n // special case for links to hash fragments:\n // keep the old url and only replace the hash fragment\n this.hash(relHref.slice(1));\n return true;\n }\n\n var rewrittenUrl;\n var appUrl;\n\n if (appBase === stripHash(url)) {\n rewrittenUrl = url;\n } else if ((appUrl = stripBaseUrl(appBaseNoFile, url))) {\n rewrittenUrl = appBase + hashPrefix + appUrl;\n } else if (appBaseNoFile === url + '/') {\n rewrittenUrl = appBaseNoFile;\n }\n if (rewrittenUrl) {\n this.$$parse(rewrittenUrl);\n }\n return !!rewrittenUrl;\n };\n\n this.$$compose = function() {\n var search = toKeyValue(this.$$search);\n var hash = this.$$hash ? '#' + encodeUriSegment(this.$$hash) : '';\n\n this.$$url = encodePath(this.$$path) + (search ? '?' + search : '') + hash;\n // include hashPrefix in $$absUrl when $$url is empty so IE9 does not reload page because of removal of '#'\n this.$$absUrl = appBase + hashPrefix + this.$$url;\n\n this.$$urlUpdatedByLocation = true;\n };\n\n}\n\n\nvar locationPrototype = {\n\n /**\n * Ensure absolute URL is initialized.\n * @private\n */\n $$absUrl:'',\n\n /**\n * Are we in html5 mode?\n * @private\n */\n $$html5: false,\n\n /**\n * Has any change been replacing?\n * @private\n */\n $$replace: false,\n\n /**\n * @ngdoc method\n * @name $location#absUrl\n *\n * @description\n * This method is getter only.\n *\n * Return full URL representation with all segments encoded according to rules specified in\n * [RFC 3986](http://www.ietf.org/rfc/rfc3986.txt).\n *\n *\n * ```js\n * // given URL http://example.com/#/some/path?foo=bar&baz=xoxo\n * var absUrl = $location.absUrl();\n * // => \"http://example.com/#/some/path?foo=bar&baz=xoxo\"\n * ```\n *\n * @return {string} full URL\n */\n absUrl: locationGetter('$$absUrl'),\n\n /**\n * @ngdoc method\n * @name $location#url\n *\n * @description\n * This method is getter / setter.\n *\n * Return URL (e.g. `/path?a=b#hash`) when called without any parameter.\n *\n * Change path, search and hash, when called with parameter and return `$location`.\n *\n *\n * ```js\n * // given URL http://example.com/#/some/path?foo=bar&baz=xoxo\n * var url = $location.url();\n * // => \"/some/path?foo=bar&baz=xoxo\"\n * ```\n *\n * @param {string=} url New URL without base prefix (e.g. `/path?a=b#hash`)\n * @return {string} url\n */\n url(url) {\n if (isUndefined(url)) {\n return this.$$url;\n }\n\n var match = PATH_MATCH.exec(url);\n if (match[1] || url === '') this.path(decodeURIComponent(match[1]));\n if (match[2] || match[1] || url === '') this.search(match[3] || '');\n this.hash(match[5] || '');\n\n return this;\n },\n\n /**\n * @ngdoc method\n * @name $location#protocol\n *\n * @description\n * This method is getter only.\n *\n * Return protocol of current URL.\n *\n *\n * ```js\n * // given URL http://example.com/#/some/path?foo=bar&baz=xoxo\n * var protocol = $location.protocol();\n * // => \"http\"\n * ```\n *\n * @return {string} protocol of current URL\n */\n protocol: locationGetter('$$protocol'),\n\n /**\n * @ngdoc method\n * @name $location#host\n *\n * @description\n * This method is getter only.\n *\n * Return host of current URL.\n *\n * Note: compared to the non-AngularJS version `location.host` which returns `hostname:port`, this returns the `hostname` portion only.\n *\n *\n * ```js\n * // given URL http://example.com/#/some/path?foo=bar&baz=xoxo\n * var host = $location.host();\n * // => \"example.com\"\n *\n * // given URL http://user:password@example.com:8080/#/some/path?foo=bar&baz=xoxo\n * host = $location.host();\n * // => \"example.com\"\n * host = location.host;\n * // => \"example.com:8080\"\n * ```\n *\n * @return {string} host of current URL.\n */\n host: locationGetter('$$host'),\n\n /**\n * @ngdoc method\n * @name $location#port\n *\n * @description\n * This method is getter only.\n *\n * Return port of current URL.\n *\n *\n * ```js\n * // given URL http://example.com/#/some/path?foo=bar&baz=xoxo\n * var port = $location.port();\n * // => 80\n * ```\n *\n * @return {Number} port\n */\n port: locationGetter('$$port'),\n\n /**\n * @ngdoc method\n * @name $location#path\n *\n * @description\n * This method is getter / setter.\n *\n * Return path of current URL when called without any parameter.\n *\n * Change path when called with parameter and return `$location`.\n *\n * Note: Path should always begin with forward slash (/), this method will add the forward slash\n * if it is missing.\n *\n *\n * ```js\n * // given URL http://example.com/#/some/path?foo=bar&baz=xoxo\n * var path = $location.path();\n * // => \"/some/path\"\n * ```\n *\n * @param {(string|number)=} path New path\n * @return {(string|object)} path if called with no parameters, or `$location` if called with a parameter\n */\n path: locationGetterSetter('$$path', function(path) {\n path = path !== null ? path.toString() : '';\n return path.charAt(0) === '/' ? path : '/' + path;\n }),\n\n /**\n * @ngdoc method\n * @name $location#search\n *\n * @description\n * This method is getter / setter.\n *\n * Return search part (as object) of current URL when called without any parameter.\n *\n * Change search part when called with parameter and return `$location`.\n *\n *\n * ```js\n * // given URL http://example.com/#/some/path?foo=bar&baz=xoxo\n * var searchObject = $location.search();\n * // => {foo: 'bar', baz: 'xoxo'}\n *\n * // set foo to 'yipee'\n * $location.search('foo', 'yipee');\n * // $location.search() => {foo: 'yipee', baz: 'xoxo'}\n * ```\n *\n * @param {string|Object.|Object.>} search New search params - string or\n * hash object.\n *\n * When called with a single argument the method acts as a setter, setting the `search` component\n * of `$location` to the specified value.\n *\n * If the argument is a hash object containing an array of values, these values will be encoded\n * as duplicate search parameters in the URL.\n *\n * @param {(string|Number|Array|boolean)=} paramValue If `search` is a string or number, then `paramValue`\n * will override only a single search property.\n *\n * If `paramValue` is an array, it will override the property of the `search` component of\n * `$location` specified via the first argument.\n *\n * If `paramValue` is `null`, the property specified via the first argument will be deleted.\n *\n * If `paramValue` is `true`, the property specified via the first argument will be added with no\n * value nor trailing equal sign.\n *\n * @return {Object} If called with no arguments returns the parsed `search` object. If called with\n * one or more arguments returns `$location` object itself.\n */\n search(search, paramValue) {\n switch (arguments.length) {\n case 0:\n return this.$$search;\n case 1:\n if (isString(search) || isNumber(search)) {\n search = search.toString();\n this.$$search = parseKeyValue(search);\n } else if (isObject(search)) {\n search = copy(search, {});\n // remove object undefined or null properties\n forEach(search, function(value, key) {\n if (value == null) delete search[key];\n });\n\n this.$$search = search;\n } else {\n throw $locationMinErr('isrcharg',\n 'The first argument of the `$location#search()` call must be a string or an object.');\n }\n break;\n default:\n if (isUndefined(paramValue) || paramValue === null) {\n delete this.$$search[search];\n } else {\n this.$$search[search] = paramValue;\n }\n }\n\n this.$$compose();\n return this;\n },\n\n /**\n * @ngdoc method\n * @name $location#hash\n *\n * @description\n * This method is getter / setter.\n *\n * Returns the hash fragment when called without any parameters.\n *\n * Changes the hash fragment when called with a parameter and returns `$location`.\n *\n *\n * ```js\n * // given URL http://example.com/#/some/path?foo=bar&baz=xoxo#hashValue\n * var hash = $location.hash();\n * // => \"hashValue\"\n * ```\n *\n * @param {(string|number)=} hash New hash fragment\n * @return {string} hash\n */\n hash: locationGetterSetter('$$hash', function(hash) {\n return hash !== null ? hash.toString() : '';\n }),\n\n /**\n * @ngdoc method\n * @name $location#replace\n *\n * @description\n * If called, all changes to $location during the current `$digest` will replace the current history\n * record, instead of adding a new one.\n */\n replace() {\n this.$$replace = true;\n return this;\n }\n};\n\nforEach([LocationHashbangInHtml5Url, LocationHashbangUrl, LocationHtml5Url], function(Location) {\n Location.prototype = Object.create(locationPrototype);\n\n /**\n * @ngdoc method\n * @name $location#state\n *\n * @description\n * This method is getter / setter.\n *\n * Return the history state object when called without any parameter.\n *\n * Change the history state object when called with one parameter and return `$location`.\n * The state object is later passed to `pushState` or `replaceState`.\n *\n * NOTE: This method is supported only in HTML5 mode and only in browsers supporting\n * the HTML5 History API (i.e. methods `pushState` and `replaceState`).\n *\n * @param {object=} state State object for pushState or replaceState\n * @return {object} state\n */\n Location.prototype.state = function(state) {\n if (!arguments.length) {\n return this.$$state;\n }\n\n if (Location !== LocationHtml5Url || !this.$$html5) {\n throw $locationMinErr('nostate', 'History API state support is available only ' +\n 'in HTML5 mode and only in browsers supporting HTML5 History API');\n }\n // The user might modify `stateObject` after invoking `$location.state(stateObject)`\n // but we're changing the $$state reference to $browser.state() during the $digest\n // so the modification window is narrow.\n this.$$state = isUndefined(state) ? null : state;\n this.$$urlUpdatedByLocation = true;\n\n return this;\n };\n});\n\n\nfunction locationGetter(property) {\n return /** @this */ function() {\n return this[property];\n };\n}\n\n\nfunction locationGetterSetter(property, preprocess) {\n return /** @this */ function(value) {\n if (isUndefined(value)) {\n return this[property];\n }\n\n this[property] = preprocess(value);\n this.$$compose();\n\n return this;\n };\n}\n\n\n/**\n * @ngdoc service\n * @name $location\n *\n * @requires $rootElement\n *\n * @description\n * The $location service parses the URL in the browser address bar (based on the\n * [window.location](https://developer.mozilla.org/en/window.location)) and makes the URL\n * available to your application. Changes to the URL in the address bar are reflected into\n * $location service and changes to $location are reflected into the browser address bar.\n *\n * **The $location service:**\n *\n * - Exposes the current URL in the browser address bar, so you can\n * - Watch and observe the URL.\n * - Change the URL.\n * - Synchronizes the URL with the browser when the user\n * - Changes the address bar.\n * - Clicks the back or forward button (or clicks a History link).\n * - Clicks on a link.\n * - Represents the URL object as a set of methods (protocol, host, port, path, search, hash).\n *\n * For more information see {@link guide/$location Developer Guide: Using $location}\n */\n\n/**\n * @ngdoc provider\n * @name $locationProvider\n * @this\n *\n * @description\n * Use the `$locationProvider` to configure how the application deep linking paths are stored.\n */\nfunction $LocationProvider() {\n var hashPrefix = '!';\n\n var html5Mode = {\n enabled: false,\n requireBase: true,\n rewriteLinks: true\n };\n\n /**\n * @ngdoc method\n * @name $locationProvider#hashPrefix\n * @description\n * The default value for the prefix is `'!'`.\n * @param {string=} prefix Prefix for hash part (containing path and search)\n * @returns {*} current value if used as getter or itself (chaining) if used as setter\n */\n this.hashPrefix = function(prefix) {\n if (isDefined(prefix)) {\n hashPrefix = prefix;\n return this;\n } else {\n return hashPrefix;\n }\n };\n\n /**\n * @ngdoc method\n * @name $locationProvider#html5Mode\n * @description\n * @param {(boolean|Object)=} mode If boolean, sets `html5Mode.enabled` to value.\n * If object, sets `enabled`, `requireBase` and `rewriteLinks` to respective values. Supported\n * properties:\n * - **enabled** – `{boolean}` – (default: false) If true, will rely on `history.pushState` to\n * change urls where supported. Will fall back to hash-prefixed paths in browsers that do not\n * support `pushState`.\n * - **requireBase** - `{boolean}` - (default: `true`) When html5Mode is enabled, specifies\n * whether or not a tag is required to be present. If `enabled` and `requireBase` are\n * true, and a base tag is not present, an error will be thrown when `$location` is injected.\n * See the {@link guide/$location $location guide for more information}\n * - **rewriteLinks** - `{boolean|string}` - (default: `true`) When html5Mode is enabled,\n * enables/disables URL rewriting for relative links. If set to a string, URL rewriting will\n * only happen on links with an attribute that matches the given string. For example, if set\n * to `'internal-link'`, then the URL will only be rewritten for `` links.\n * Note that [attribute name normalization](guide/directive#normalization) does not apply\n * here, so `'internalLink'` will **not** match `'internal-link'`.\n *\n * @returns {Object} html5Mode object if used as getter or itself (chaining) if used as setter\n */\n this.html5Mode = function(mode) {\n if (isBoolean(mode)) {\n html5Mode.enabled = mode;\n return this;\n } else if (isObject(mode)) {\n\n if (isBoolean(mode.enabled)) {\n html5Mode.enabled = mode.enabled;\n }\n\n if (isBoolean(mode.requireBase)) {\n html5Mode.requireBase = mode.requireBase;\n }\n\n if (isBoolean(mode.rewriteLinks) || isString(mode.rewriteLinks)) {\n html5Mode.rewriteLinks = mode.rewriteLinks;\n }\n\n return this;\n } else {\n return html5Mode;\n }\n };\n\n /**\n * @ngdoc event\n * @name $location#$locationChangeStart\n * @eventType broadcast on root scope\n * @description\n * Broadcasted before a URL will change.\n *\n * This change can be prevented by calling\n * `preventDefault` method of the event. See {@link ng.$rootScope.Scope#$on} for more\n * details about event object. Upon successful change\n * {@link ng.$location#$locationChangeSuccess $locationChangeSuccess} is fired.\n *\n * The `newState` and `oldState` parameters may be defined only in HTML5 mode and when\n * the browser supports the HTML5 History API.\n *\n * @param {Object} angularEvent Synthetic event object.\n * @param {string} newUrl New URL\n * @param {string=} oldUrl URL that was before it was changed.\n * @param {string=} newState New history state object\n * @param {string=} oldState History state object that was before it was changed.\n */\n\n /**\n * @ngdoc event\n * @name $location#$locationChangeSuccess\n * @eventType broadcast on root scope\n * @description\n * Broadcasted after a URL was changed.\n *\n * The `newState` and `oldState` parameters may be defined only in HTML5 mode and when\n * the browser supports the HTML5 History API.\n *\n * @param {Object} angularEvent Synthetic event object.\n * @param {string} newUrl New URL\n * @param {string=} oldUrl URL that was before it was changed.\n * @param {string=} newState New history state object\n * @param {string=} oldState History state object that was before it was changed.\n */\n\n this.$get = ['$rootScope', '$browser', '$sniffer', '$rootElement', '$window',\n function($rootScope, $browser, $sniffer, $rootElement, $window) {\n var $location;\n var LocationMode;\n\n // if base[href] is undefined, it defaults to ''\n var baseHref = $browser.baseHref();\n\n var initialUrl = $browser.url();\n var appBase;\n\n if (html5Mode.enabled) {\n if (!baseHref && html5Mode.requireBase) {\n throw $locationMinErr('nobase',\n '$location in HTML5 mode requires a tag to be present!');\n }\n appBase = serverBase(initialUrl) + (baseHref || '/');\n LocationMode = $sniffer.history ? LocationHtml5Url : LocationHashbangInHtml5Url;\n } else {\n appBase = stripHash(initialUrl);\n LocationMode = LocationHashbangUrl;\n }\n var appBaseNoFile = stripFile(appBase);\n\n $location = new LocationMode(appBase, appBaseNoFile, '#' + hashPrefix);\n $location.$$parseLinkUrl(initialUrl, initialUrl);\n\n $location.$$state = $browser.state();\n\n var IGNORE_URI_REGEXP = /^\\s*(javascript|mailto):/i;\n\n function setBrowserUrlWithFallback(url, replace, state) {\n var oldUrl = $location.url();\n var oldState = $location.$$state;\n try {\n $browser.url(url, replace, state);\n\n // Make sure $location.state() returns referentially identical (not just deeply equal)\n // state object; this makes possible quick checking if the state changed in the digest\n // loop. Checking deep equality would be too expensive.\n $location.$$state = $browser.state();\n } catch (e) {\n // Restore old values if pushState fails\n $location.url(oldUrl);\n $location.$$state = oldState;\n\n throw e;\n }\n }\n\n $rootElement.on('click', function(event) {\n var rewriteLinks = html5Mode.rewriteLinks;\n // TODO(vojta): rewrite link when opening in new tab/window (in legacy browser)\n // currently we open nice url link and redirect then\n\n if (!rewriteLinks || event.ctrlKey || event.metaKey || event.shiftKey || event.which === 2 || event.button === 2) return;\n\n var elm = jqLite(event.target);\n\n // traverse the DOM up to find first A tag\n while (nodeName_(elm[0]) !== 'a') {\n // ignore rewriting if no A tag (reached root element, or no parent - removed from document)\n if (elm[0] === $rootElement[0] || !(elm = elm.parent())[0]) return;\n }\n\n if (isString(rewriteLinks) && isUndefined(elm.attr(rewriteLinks))) return;\n\n var absHref = elm.prop('href');\n // get the actual href attribute - see\n // http://msdn.microsoft.com/en-us/library/ie/dd347148(v=vs.85).aspx\n var relHref = elm.attr('href') || elm.attr('xlink:href');\n\n if (isObject(absHref) && absHref.toString() === '[object SVGAnimatedString]') {\n // SVGAnimatedString.animVal should be identical to SVGAnimatedString.baseVal, unless during\n // an animation.\n absHref = urlResolve(absHref.animVal).href;\n }\n\n // Ignore when url is started with javascript: or mailto:\n if (IGNORE_URI_REGEXP.test(absHref)) return;\n\n if (absHref && !elm.attr('target') && !event.isDefaultPrevented()) {\n if ($location.$$parseLinkUrl(absHref, relHref)) {\n // We do a preventDefault for all urls that are part of the AngularJS application,\n // in html5mode and also without, so that we are able to abort navigation without\n // getting double entries in the location history.\n event.preventDefault();\n // update location manually\n if ($location.absUrl() !== $browser.url()) {\n $rootScope.$apply();\n // hack to work around FF6 bug 684208 when scenario runner clicks on links\n $window.angular['ff-684208-preventDefault'] = true;\n }\n }\n }\n });\n\n\n // rewrite hashbang url <> html5 url\n if (trimEmptyHash($location.absUrl()) !== trimEmptyHash(initialUrl)) {\n $browser.url($location.absUrl(), true);\n }\n\n var initializing = true;\n\n // update $location when $browser url changes\n $browser.onUrlChange(function(newUrl, newState) {\n\n if (!startsWith(newUrl, appBaseNoFile)) {\n // If we are navigating outside of the app then force a reload\n $window.location.href = newUrl;\n return;\n }\n\n $rootScope.$evalAsync(function() {\n var oldUrl = $location.absUrl();\n var oldState = $location.$$state;\n var defaultPrevented;\n newUrl = trimEmptyHash(newUrl);\n $location.$$parse(newUrl);\n $location.$$state = newState;\n\n defaultPrevented = $rootScope.$broadcast('$locationChangeStart', newUrl, oldUrl,\n newState, oldState).defaultPrevented;\n\n // if the location was changed by a `$locationChangeStart` handler then stop\n // processing this location change\n if ($location.absUrl() !== newUrl) return;\n\n if (defaultPrevented) {\n $location.$$parse(oldUrl);\n $location.$$state = oldState;\n setBrowserUrlWithFallback(oldUrl, false, oldState);\n } else {\n initializing = false;\n afterLocationChange(oldUrl, oldState);\n }\n });\n if (!$rootScope.$$phase) $rootScope.$digest();\n });\n\n // update browser\n $rootScope.$watch(function $locationWatch() {\n if (initializing || $location.$$urlUpdatedByLocation) {\n $location.$$urlUpdatedByLocation = false;\n\n var oldUrl = trimEmptyHash($browser.url());\n var newUrl = trimEmptyHash($location.absUrl());\n var oldState = $browser.state();\n var currentReplace = $location.$$replace;\n var urlOrStateChanged = oldUrl !== newUrl ||\n ($location.$$html5 && $sniffer.history && oldState !== $location.$$state);\n\n if (initializing || urlOrStateChanged) {\n initializing = false;\n\n $rootScope.$evalAsync(function() {\n var newUrl = $location.absUrl();\n var defaultPrevented = $rootScope.$broadcast('$locationChangeStart', newUrl, oldUrl,\n $location.$$state, oldState).defaultPrevented;\n\n // if the location was changed by a `$locationChangeStart` handler then stop\n // processing this location change\n if ($location.absUrl() !== newUrl) return;\n\n if (defaultPrevented) {\n $location.$$parse(oldUrl);\n $location.$$state = oldState;\n } else {\n if (urlOrStateChanged) {\n setBrowserUrlWithFallback(newUrl, currentReplace,\n oldState === $location.$$state ? null : $location.$$state);\n }\n afterLocationChange(oldUrl, oldState);\n }\n });\n }\n }\n\n $location.$$replace = false;\n\n // we don't need to return anything because $evalAsync will make the digest loop dirty when\n // there is a change\n });\n\n return $location;\n\n function afterLocationChange(oldUrl, oldState) {\n $rootScope.$broadcast('$locationChangeSuccess', $location.absUrl(), oldUrl,\n $location.$$state, oldState);\n }\n }];\n}\n'use strict';\n\n/**\n * @ngdoc service\n * @name $log\n * @requires $window\n *\n * @description\n * Simple service for logging. Default implementation safely writes the message\n * into the browser's console (if present).\n *\n * The main purpose of this service is to simplify debugging and troubleshooting.\n *\n * To reveal the location of the calls to `$log` in the JavaScript console,\n * you can \"blackbox\" the AngularJS source in your browser:\n *\n * [Mozilla description of blackboxing](https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Black_box_a_source).\n * [Chrome description of blackboxing](https://developer.chrome.com/devtools/docs/blackboxing).\n *\n * Note: Not all browsers support blackboxing.\n *\n * The default is to log `debug` messages. You can use\n * {@link ng.$logProvider ng.$logProvider#debugEnabled} to change this.\n *\n * @example\n \n \n angular.module('logExample', [])\n .controller('LogController', ['$scope', '$log', function($scope, $log) {\n $scope.$log = $log;\n $scope.message = 'Hello World!';\n }]);\n \n \n
\n

Reload this page with open console, enter text and hit the log button...

\n \n \n \n \n \n \n
\n
\n
\n */\n\n/**\n * @ngdoc provider\n * @name $logProvider\n * @this\n *\n * @description\n * Use the `$logProvider` to configure how the application logs messages\n */\nfunction $LogProvider() {\n var debug = true;\n var self = this;\n\n /**\n * @ngdoc method\n * @name $logProvider#debugEnabled\n * @description\n * @param {boolean=} flag enable or disable debug level messages\n * @returns {*} current value if used as getter or itself (chaining) if used as setter\n */\n this.debugEnabled = function(flag) {\n if (isDefined(flag)) {\n debug = flag;\n return this;\n } else {\n return debug;\n }\n };\n\n this.$get = ['$window', function($window) {\n // Support: Edge 12-14+\n // IE/Edge display errors in such a way that it requires the user to click in 4 places\n // to see the stack trace. There is no way to feature-detect it so there's a chance\n // of the user agent sniffing to go wrong but since it's only about logging, this shouldn't\n // break apps. Other browsers display errors in a sensible way and some of them map stack\n // traces along source maps if available so it makes sense to let browsers display it\n // as they want.\n var formatStackTrace = /\\bEdge\\//.test($window.navigator && $window.navigator.userAgent);\n\n return {\n /**\n * @ngdoc method\n * @name $log#log\n *\n * @description\n * Write a log message\n */\n log: consoleLog('log'),\n\n /**\n * @ngdoc method\n * @name $log#info\n *\n * @description\n * Write an information message\n */\n info: consoleLog('info'),\n\n /**\n * @ngdoc method\n * @name $log#warn\n *\n * @description\n * Write a warning message\n */\n warn: consoleLog('warn'),\n\n /**\n * @ngdoc method\n * @name $log#error\n *\n * @description\n * Write an error message\n */\n error: consoleLog('error'),\n\n /**\n * @ngdoc method\n * @name $log#debug\n *\n * @description\n * Write a debug message\n */\n debug: (function() {\n var fn = consoleLog('debug');\n\n return function() {\n if (debug) {\n fn.apply(self, arguments);\n }\n };\n })()\n };\n\n function formatError(arg) {\n if (isError(arg)) {\n if (arg.stack && formatStackTrace) {\n arg = (arg.message && !arg.stack.includes(arg.message))\n ? 'Error: ' + arg.message + '\\n' + arg.stack\n : arg.stack;\n } else if (arg.sourceURL) {\n arg = arg.message + '\\n' + arg.sourceURL + ':' + arg.line;\n }\n }\n return arg;\n }\n\n function consoleLog(type) {\n var console = $window.console || {};\n var logFn = console[type] || console.log || noop;\n\n return function() {\n var args = [];\n forEach(arguments, function(arg) {\n args.push(formatError(arg));\n });\n return logFn.apply(console, args);\n };\n }\n }];\n}\n'use strict';\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Any commits to this file should be reviewed with security in mind. *\n * Changes to this file can potentially create security vulnerabilities. *\n * An approval from 2 Core members with history of modifying *\n * this file is required. *\n * *\n * Does the change somehow allow for arbitrary javascript to be executed? *\n * Or allows for someone to change the prototype of built-in objects? *\n * Or gives undesired access to variables likes document or window? *\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\nvar $parseMinErr = minErr('$parse');\n\nvar objectValueOf = {}.constructor.prototype.valueOf;\n\n// Sandboxing AngularJS Expressions\n// ------------------------------\n// AngularJS expressions are no longer sandboxed. So it is now even easier to access arbitrary JS code by\n// various means such as obtaining a reference to native JS functions like the Function constructor.\n//\n// As an example, consider the following AngularJS expression:\n//\n// {}.toString.constructor('alert(\"evil JS code\")')\n//\n// It is important to realize that if you create an expression from a string that contains user provided\n// content then it is possible that your application contains a security vulnerability to an XSS style attack.\n//\n// See https://docs.angularjs.org/guide/security\n\n\nfunction getStringValue(name) {\n // Property names must be strings. This means that non-string objects cannot be used\n // as keys in an object. Any non-string object, including a number, is typecasted\n // into a string via the toString method.\n // -- MDN, https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Property_accessors#Property_names\n //\n // So, to ensure that we are checking the same `name` that JavaScript would use, we cast it\n // to a string. It's not always possible. If `name` is an object and its `toString` method is\n // 'broken' (doesn't return a string, isn't a function, etc.), an error will be thrown:\n //\n // TypeError: Cannot convert object to primitive value\n //\n // For performance reasons, we don't catch this error here and allow it to propagate up the call\n // stack. Note that you'll get the same error in JavaScript if you try to access a property using\n // such a 'broken' object as a key.\n return name + '';\n}\n\n\nvar OPERATORS = createMap();\nforEach('+ - * / % === !== == != < > <= >= && || ! = |'.split(' '), function(operator) { OPERATORS[operator] = true; });\nvar ESCAPE = {'n':'\\n', 'f':'\\f', 'r':'\\r', 't':'\\t', 'v':'\\v', '\\'':'\\'', '\"':'\"'};\n\n\n/////////////////////////////////////////\n\n\n/**\n * @constructor\n */\nvar Lexer = function Lexer(options) {\n this.options = options;\n};\n\nLexer.prototype = {\n constructor: Lexer,\n\n lex(text) {\n this.text = text;\n this.index = 0;\n this.tokens = [];\n\n while (this.index < this.text.length) {\n var ch = this.text.charAt(this.index);\n if (ch === '\"' || ch === '\\'') {\n this.readString(ch);\n } else if (this.isNumber(ch) || ch === '.' && this.isNumber(this.peek())) {\n this.readNumber();\n } else if (this.isIdentifierStart(this.peekMultichar())) {\n this.readIdent();\n } else if (this.is(ch, '(){}[].,;:?')) {\n this.tokens.push({index: this.index, text: ch});\n this.index++;\n } else if (this.isWhitespace(ch)) {\n this.index++;\n } else {\n var ch2 = ch + this.peek();\n var ch3 = ch2 + this.peek(2);\n var op1 = OPERATORS[ch];\n var op2 = OPERATORS[ch2];\n var op3 = OPERATORS[ch3];\n if (op1 || op2 || op3) {\n var token = op3 ? ch3 : (op2 ? ch2 : ch);\n this.tokens.push({index: this.index, text: token, operator: true});\n this.index += token.length;\n } else {\n this.throwError('Unexpected next character ', this.index, this.index + 1);\n }\n }\n }\n return this.tokens;\n },\n\n is(ch, chars) {\n return chars.includes(ch);\n },\n\n peek(i) {\n var num = i || 1;\n return (this.index + num < this.text.length) ? this.text.charAt(this.index + num) : false;\n },\n\n isNumber(ch) {\n return ('0' <= ch && ch <= '9') && typeof ch === 'string';\n },\n\n isWhitespace(ch) {\n // IE treats non-breaking space as \\u00A0\n return (ch === ' ' || ch === '\\r' || ch === '\\t' ||\n ch === '\\n' || ch === '\\v' || ch === '\\u00A0');\n },\n\n isIdentifierStart(ch) {\n return this.options.isIdentifierStart ?\n this.options.isIdentifierStart(ch, this.codePointAt(ch)) :\n this.isValidIdentifierStart(ch);\n },\n\n isValidIdentifierStart(ch) {\n return ('a' <= ch && ch <= 'z' ||\n 'A' <= ch && ch <= 'Z' ||\n '_' === ch || ch === '$');\n },\n\n isIdentifierContinue(ch) {\n return this.options.isIdentifierContinue ?\n this.options.isIdentifierContinue(ch, this.codePointAt(ch)) :\n this.isValidIdentifierContinue(ch);\n },\n\n isValidIdentifierContinue(ch, cp) {\n return this.isValidIdentifierStart(ch, cp) || this.isNumber(ch);\n },\n\n codePointAt(ch) {\n if (ch.length === 1) return ch.charCodeAt(0);\n // eslint-disable-next-line no-bitwise\n return (ch.charCodeAt(0) << 10) + ch.charCodeAt(1) - 0x35FDC00;\n },\n\n peekMultichar() {\n var ch = this.text.charAt(this.index);\n var peek = this.peek();\n if (!peek) {\n return ch;\n }\n var cp1 = ch.charCodeAt(0);\n var cp2 = peek.charCodeAt(0);\n if (cp1 >= 0xD800 && cp1 <= 0xDBFF && cp2 >= 0xDC00 && cp2 <= 0xDFFF) {\n return ch + peek;\n }\n return ch;\n },\n\n isExpOperator(ch) {\n return (ch === '-' || ch === '+' || this.isNumber(ch));\n },\n\n throwError(error, start, end) {\n end = end || this.index;\n var colStr = (isDefined(start)\n ? 's ' + start + '-' + this.index + ' [' + this.text.substring(start, end) + ']'\n : ' ' + end);\n throw $parseMinErr('lexerr', 'Lexer Error: {0} at column{1} in expression [{2}].',\n error, colStr, this.text);\n },\n\n readNumber() {\n var number = '';\n var start = this.index;\n while (this.index < this.text.length) {\n var ch = lowercase(this.text.charAt(this.index));\n if (ch === '.' || this.isNumber(ch)) {\n number += ch;\n } else {\n var peekCh = this.peek();\n if (ch === 'e' && this.isExpOperator(peekCh)) {\n number += ch;\n } else if (this.isExpOperator(ch) &&\n peekCh && this.isNumber(peekCh) &&\n number.charAt(number.length - 1) === 'e') {\n number += ch;\n } else if (this.isExpOperator(ch) &&\n (!peekCh || !this.isNumber(peekCh)) &&\n number.charAt(number.length - 1) === 'e') {\n this.throwError('Invalid exponent');\n } else {\n break;\n }\n }\n this.index++;\n }\n this.tokens.push({\n index: start,\n text: number,\n constant: true,\n value: Number(number)\n });\n },\n\n readIdent() {\n var start = this.index;\n this.index += this.peekMultichar().length;\n while (this.index < this.text.length) {\n var ch = this.peekMultichar();\n if (!this.isIdentifierContinue(ch)) {\n break;\n }\n this.index += ch.length;\n }\n this.tokens.push({\n index: start,\n text: this.text.slice(start, this.index),\n identifier: true\n });\n },\n\n readString(quote) {\n var start = this.index;\n this.index++;\n var string = '';\n var rawString = quote;\n var escape = false;\n while (this.index < this.text.length) {\n var ch = this.text.charAt(this.index);\n rawString += ch;\n if (escape) {\n if (ch === 'u') {\n var hex = this.text.substring(this.index + 1, this.index + 5);\n if (!hex.match(/[\\da-f]{4}/i)) {\n this.throwError('Invalid unicode escape [\\\\u' + hex + ']');\n }\n this.index += 4;\n string += String.fromCharCode(parseInt(hex, 16));\n } else {\n var rep = ESCAPE[ch];\n string = string + (rep || ch);\n }\n escape = false;\n } else if (ch === '\\\\') {\n escape = true;\n } else if (ch === quote) {\n this.index++;\n this.tokens.push({\n index: start,\n text: rawString,\n constant: true,\n value: string\n });\n return;\n } else {\n string += ch;\n }\n this.index++;\n }\n this.throwError('Unterminated quote', start);\n }\n};\n\nvar AST = function AST(lexer, options) {\n this.lexer = lexer;\n this.options = options;\n};\n\nAST.Program = 'Program';\nAST.ExpressionStatement = 'ExpressionStatement';\nAST.AssignmentExpression = 'AssignmentExpression';\nAST.ConditionalExpression = 'ConditionalExpression';\nAST.LogicalExpression = 'LogicalExpression';\nAST.BinaryExpression = 'BinaryExpression';\nAST.UnaryExpression = 'UnaryExpression';\nAST.CallExpression = 'CallExpression';\nAST.MemberExpression = 'MemberExpression';\nAST.Identifier = 'Identifier';\nAST.Literal = 'Literal';\nAST.ArrayExpression = 'ArrayExpression';\nAST.Property = 'Property';\nAST.ObjectExpression = 'ObjectExpression';\nAST.ThisExpression = 'ThisExpression';\nAST.LocalsExpression = 'LocalsExpression';\n\n// Internal use only\nAST.NGValueParameter = 'NGValueParameter';\n\nAST.prototype = {\n ast(text) {\n this.text = text;\n this.tokens = this.lexer.lex(text);\n\n var value = this.program();\n\n if (this.tokens.length !== 0) {\n this.throwError('is an unexpected token', this.tokens[0]);\n }\n\n return value;\n },\n\n program() {\n var body = [];\n while (true) {\n if (this.tokens.length > 0 && !this.peek('}', ')', ';', ']'))\n body.push(this.expressionStatement());\n if (!this.expect(';')) {\n return { type: AST.Program, body: body};\n }\n }\n },\n\n expressionStatement() {\n return { type: AST.ExpressionStatement, expression: this.filterChain() };\n },\n\n filterChain() {\n var left = this.expression();\n while (this.expect('|')) {\n left = this.filter(left);\n }\n return left;\n },\n\n expression() {\n return this.assignment();\n },\n\n assignment() {\n var result = this.ternary();\n if (this.expect('=')) {\n if (!isAssignable(result)) {\n throw $parseMinErr('lval', 'Trying to assign a value to a non l-value');\n }\n\n result = { type: AST.AssignmentExpression, left: result, right: this.assignment(), operator: '='};\n }\n return result;\n },\n\n ternary() {\n var test = this.logicalOR();\n var alternate;\n var consequent;\n if (this.expect('?')) {\n alternate = this.expression();\n if (this.consume(':')) {\n consequent = this.expression();\n return { type: AST.ConditionalExpression, test: test, alternate: alternate, consequent: consequent};\n }\n }\n return test;\n },\n\n logicalOR() {\n var left = this.logicalAND();\n while (this.expect('||')) {\n left = { type: AST.LogicalExpression, operator: '||', left: left, right: this.logicalAND() };\n }\n return left;\n },\n\n logicalAND() {\n var left = this.equality();\n while (this.expect('&&')) {\n left = { type: AST.LogicalExpression, operator: '&&', left: left, right: this.equality()};\n }\n return left;\n },\n\n equality() {\n var left = this.relational();\n var token;\n while ((token = this.expect('==','!=','===','!=='))) {\n left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.relational() };\n }\n return left;\n },\n\n relational() {\n var left = this.additive();\n var token;\n while ((token = this.expect('<', '>', '<=', '>='))) {\n left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.additive() };\n }\n return left;\n },\n\n additive() {\n var left = this.multiplicative();\n var token;\n while ((token = this.expect('+','-'))) {\n left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.multiplicative() };\n }\n return left;\n },\n\n multiplicative() {\n var left = this.unary();\n var token;\n while ((token = this.expect('*','/','%'))) {\n left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.unary() };\n }\n return left;\n },\n\n unary() {\n var token;\n if ((token = this.expect('+', '-', '!'))) {\n return { type: AST.UnaryExpression, operator: token.text, prefix: true, argument: this.unary() };\n } else {\n return this.primary();\n }\n },\n\n primary() {\n var primary;\n if (this.expect('(')) {\n primary = this.filterChain();\n this.consume(')');\n } else if (this.expect('[')) {\n primary = this.arrayDeclaration();\n } else if (this.expect('{')) {\n primary = this.object();\n } else if (this.selfReferential.hasOwnProperty(this.peek().text)) {\n primary = copy(this.selfReferential[this.consume().text]);\n } else if (this.options.literals.hasOwnProperty(this.peek().text)) {\n primary = { type: AST.Literal, value: this.options.literals[this.consume().text]};\n } else if (this.peek().identifier) {\n primary = this.identifier();\n } else if (this.peek().constant) {\n primary = this.constant();\n } else {\n this.throwError('not a primary expression', this.peek());\n }\n\n var next;\n while ((next = this.expect('(', '[', '.'))) {\n if (next.text === '(') {\n primary = {type: AST.CallExpression, callee: primary, arguments: this.parseArguments() };\n this.consume(')');\n } else if (next.text === '[') {\n primary = { type: AST.MemberExpression, object: primary, property: this.expression(), computed: true };\n this.consume(']');\n } else if (next.text === '.') {\n primary = { type: AST.MemberExpression, object: primary, property: this.identifier(), computed: false };\n } else {\n this.throwError('IMPOSSIBLE');\n }\n }\n return primary;\n },\n\n filter(baseExpression) {\n var args = [baseExpression];\n var result = {type: AST.CallExpression, callee: this.identifier(), arguments: args, filter: true};\n\n while (this.expect(':')) {\n args.push(this.expression());\n }\n\n return result;\n },\n\n parseArguments() {\n var args = [];\n if (this.peekToken().text !== ')') {\n do {\n args.push(this.filterChain());\n } while (this.expect(','));\n }\n return args;\n },\n\n identifier() {\n var token = this.consume();\n if (!token.identifier) {\n this.throwError('is not a valid identifier', token);\n }\n return { type: AST.Identifier, name: token.text };\n },\n\n constant() {\n // TODO check that it is a constant\n return { type: AST.Literal, value: this.consume().value };\n },\n\n arrayDeclaration() {\n var elements = [];\n if (this.peekToken().text !== ']') {\n do {\n if (this.peek(']')) {\n // Support trailing commas per ES5.1.\n break;\n }\n elements.push(this.expression());\n } while (this.expect(','));\n }\n this.consume(']');\n\n return { type: AST.ArrayExpression, elements: elements };\n },\n\n object() {\n var properties = [];\n var property;\n if (this.peekToken().text !== '}') {\n do {\n if (this.peek('}')) {\n // Support trailing commas per ES5.1.\n break;\n }\n property = {type: AST.Property, kind: 'init'};\n if (this.peek().constant) {\n property.key = this.constant();\n property.computed = false;\n this.consume(':');\n property.value = this.expression();\n } else if (this.peek().identifier) {\n property.key = this.identifier();\n property.computed = false;\n if (this.peek(':')) {\n this.consume(':');\n property.value = this.expression();\n } else {\n property.value = property.key;\n }\n } else if (this.peek('[')) {\n this.consume('[');\n property.key = this.expression();\n this.consume(']');\n property.computed = true;\n this.consume(':');\n property.value = this.expression();\n } else {\n this.throwError('invalid key', this.peek());\n }\n properties.push(property);\n } while (this.expect(','));\n }\n this.consume('}');\n\n return {type: AST.ObjectExpression, properties: properties };\n },\n\n throwError(msg, token) {\n throw $parseMinErr('syntax',\n 'Syntax Error: Token \\'{0}\\' {1} at column {2} of the expression [{3}] starting at [{4}].',\n token.text, msg, (token.index + 1), this.text, this.text.substring(token.index));\n },\n\n consume(e1) {\n if (this.tokens.length === 0) {\n throw $parseMinErr('ueoe', 'Unexpected end of expression: {0}', this.text);\n }\n\n var token = this.expect(e1);\n if (!token) {\n this.throwError('is unexpected, expecting [' + e1 + ']', this.peek());\n }\n return token;\n },\n\n peekToken() {\n if (this.tokens.length === 0) {\n throw $parseMinErr('ueoe', 'Unexpected end of expression: {0}', this.text);\n }\n return this.tokens[0];\n },\n\n peek(e1, e2, e3, e4) {\n return this.peekAhead(0, e1, e2, e3, e4);\n },\n\n peekAhead(i, e1, e2, e3, e4) {\n if (this.tokens.length > i) {\n var token = this.tokens[i];\n var t = token.text;\n if (t === e1 || t === e2 || t === e3 || t === e4 ||\n (!e1 && !e2 && !e3 && !e4)) {\n return token;\n }\n }\n return false;\n },\n\n expect(e1, e2, e3, e4) {\n var token = this.peek(e1, e2, e3, e4);\n if (token) {\n this.tokens.shift();\n return token;\n }\n return false;\n },\n\n selfReferential: {\n 'this': {type: AST.ThisExpression },\n '$locals': {type: AST.LocalsExpression }\n }\n};\n\nfunction ifDefined(v, d) {\n return typeof v !== 'undefined' ? v : d;\n}\n\nfunction plusFn(l, r) {\n if (typeof l === 'undefined') return r;\n if (typeof r === 'undefined') return l;\n return l + r;\n}\n\nfunction isStateless($filter, filterName) {\n var fn = $filter(filterName);\n return !fn.$stateful;\n}\n\nvar PURITY_ABSOLUTE = 1;\nvar PURITY_RELATIVE = 2;\n\n// Detect nodes which could depend on non-shallow state of objects\nfunction isPure(node, parentIsPure) {\n switch (node.type) {\n // Computed members might invoke a stateful toString()\n case AST.MemberExpression:\n if (node.computed) {\n return false;\n }\n break;\n\n // Unary always convert to primative\n case AST.UnaryExpression:\n return PURITY_ABSOLUTE;\n\n // The binary + operator can invoke a stateful toString().\n case AST.BinaryExpression:\n return node.operator !== '+' ? PURITY_ABSOLUTE : false;\n\n // Functions / filters probably read state from within objects\n case AST.CallExpression:\n return false;\n }\n\n return (undefined === parentIsPure) ? PURITY_RELATIVE : parentIsPure;\n}\n\nfunction findConstantAndWatchExpressions(ast, $filter, parentIsPure) {\n var allConstants;\n var argsToWatch;\n var isStatelessFilter;\n\n var astIsPure = ast.isPure = isPure(ast, parentIsPure);\n\n switch (ast.type) {\n case AST.Program:\n allConstants = true;\n forEach(ast.body, function(expr) {\n findConstantAndWatchExpressions(expr.expression, $filter, astIsPure);\n allConstants = allConstants && expr.expression.constant;\n });\n ast.constant = allConstants;\n break;\n case AST.Literal:\n ast.constant = true;\n ast.toWatch = [];\n break;\n case AST.UnaryExpression:\n findConstantAndWatchExpressions(ast.argument, $filter, astIsPure);\n ast.constant = ast.argument.constant;\n ast.toWatch = ast.argument.toWatch;\n break;\n case AST.BinaryExpression:\n findConstantAndWatchExpressions(ast.left, $filter, astIsPure);\n findConstantAndWatchExpressions(ast.right, $filter, astIsPure);\n ast.constant = ast.left.constant && ast.right.constant;\n ast.toWatch = ast.left.toWatch.concat(ast.right.toWatch);\n break;\n case AST.LogicalExpression:\n findConstantAndWatchExpressions(ast.left, $filter, astIsPure);\n findConstantAndWatchExpressions(ast.right, $filter, astIsPure);\n ast.constant = ast.left.constant && ast.right.constant;\n ast.toWatch = ast.constant ? [] : [ast];\n break;\n case AST.ConditionalExpression:\n findConstantAndWatchExpressions(ast.test, $filter, astIsPure);\n findConstantAndWatchExpressions(ast.alternate, $filter, astIsPure);\n findConstantAndWatchExpressions(ast.consequent, $filter, astIsPure);\n ast.constant = ast.test.constant && ast.alternate.constant && ast.consequent.constant;\n ast.toWatch = ast.constant ? [] : [ast];\n break;\n case AST.Identifier:\n ast.constant = false;\n ast.toWatch = [ast];\n break;\n case AST.MemberExpression:\n findConstantAndWatchExpressions(ast.object, $filter, astIsPure);\n if (ast.computed) {\n findConstantAndWatchExpressions(ast.property, $filter, astIsPure);\n }\n ast.constant = ast.object.constant && (!ast.computed || ast.property.constant);\n ast.toWatch = ast.constant ? [] : [ast];\n break;\n case AST.CallExpression:\n isStatelessFilter = ast.filter ? isStateless($filter, ast.callee.name) : false;\n allConstants = isStatelessFilter;\n argsToWatch = [];\n forEach(ast.arguments, function(expr) {\n findConstantAndWatchExpressions(expr, $filter, astIsPure);\n allConstants = allConstants && expr.constant;\n argsToWatch.push(...expr.toWatch);\n });\n ast.constant = allConstants;\n ast.toWatch = isStatelessFilter ? argsToWatch : [ast];\n break;\n case AST.AssignmentExpression:\n findConstantAndWatchExpressions(ast.left, $filter, astIsPure);\n findConstantAndWatchExpressions(ast.right, $filter, astIsPure);\n ast.constant = ast.left.constant && ast.right.constant;\n ast.toWatch = [ast];\n break;\n case AST.ArrayExpression:\n allConstants = true;\n argsToWatch = [];\n forEach(ast.elements, function(expr) {\n findConstantAndWatchExpressions(expr, $filter, astIsPure);\n allConstants = allConstants && expr.constant;\n argsToWatch.push(...expr.toWatch);\n });\n ast.constant = allConstants;\n ast.toWatch = argsToWatch;\n break;\n case AST.ObjectExpression:\n allConstants = true;\n argsToWatch = [];\n forEach(ast.properties, function(property) {\n findConstantAndWatchExpressions(property.value, $filter, astIsPure);\n allConstants = allConstants && property.value.constant;\n argsToWatch.push(...property.value.toWatch);\n if (property.computed) {\n //`{[key]: value}` implicitly does `key.toString()` which may be non-pure\n findConstantAndWatchExpressions(property.key, $filter, /*parentIsPure=*/false);\n allConstants = allConstants && property.key.constant;\n argsToWatch.push(...property.key.toWatch);\n }\n });\n ast.constant = allConstants;\n ast.toWatch = argsToWatch;\n break;\n case AST.ThisExpression:\n ast.constant = false;\n ast.toWatch = [];\n break;\n case AST.LocalsExpression:\n ast.constant = false;\n ast.toWatch = [];\n break;\n }\n}\n\nfunction getInputs(body) {\n if (body.length !== 1) return;\n var lastExpression = body[0].expression;\n var candidate = lastExpression.toWatch;\n if (candidate.length !== 1) return candidate;\n return candidate[0] !== lastExpression ? candidate : undefined;\n}\n\nfunction isAssignable(ast) {\n return ast.type === AST.Identifier || ast.type === AST.MemberExpression;\n}\n\nfunction assignableAST(ast) {\n if (ast.body.length === 1 && isAssignable(ast.body[0].expression)) {\n return {type: AST.AssignmentExpression, left: ast.body[0].expression, right: {type: AST.NGValueParameter}, operator: '='};\n }\n}\n\nfunction isLiteral(ast) {\n return ast.body.length === 0 ||\n ast.body.length === 1 && (\n ast.body[0].expression.type === AST.Literal ||\n ast.body[0].expression.type === AST.ArrayExpression ||\n ast.body[0].expression.type === AST.ObjectExpression);\n}\n\nfunction isConstant(ast) {\n return ast.constant;\n}\n\nfunction ASTCompiler($filter) {\n this.$filter = $filter;\n}\n\nASTCompiler.prototype = {\n compile(ast) {\n var self = this;\n this.state = {\n nextId: 0,\n filters: {},\n fn: {vars: [], body: [], own: {}},\n assign: {vars: [], body: [], own: {}},\n inputs: []\n };\n findConstantAndWatchExpressions(ast, self.$filter);\n var extra = '';\n var assignable;\n this.stage = 'assign';\n if ((assignable = assignableAST(ast))) {\n this.state.computing = 'assign';\n var result = this.nextId();\n this.recurse(assignable, result);\n this.return_(result);\n extra = 'fn.assign=' + this.generateFunction('assign', 's,v,l');\n }\n var toWatch = getInputs(ast.body);\n self.stage = 'inputs';\n forEach(toWatch, function(watch, key) {\n var fnKey = 'fn' + key;\n self.state[fnKey] = {vars: [], body: [], own: {}};\n self.state.computing = fnKey;\n var intoId = self.nextId();\n self.recurse(watch, intoId);\n self.return_(intoId);\n self.state.inputs.push({name: fnKey, isPure: watch.isPure});\n watch.watchId = key;\n });\n this.state.computing = 'fn';\n this.stage = 'main';\n this.recurse(ast);\n var fnString =\n // The build and minification steps remove the string \"use strict\" from the code, but this is done using a regex.\n // This is a workaround for this until we do a better job at only removing the prefix only when we should.\n '\"' + this.USE + ' ' + this.STRICT + '\";\\n' +\n this.filterPrefix() +\n 'var fn=' + this.generateFunction('fn', 's,l,a,i') +\n extra +\n this.watchFns() +\n 'return fn;';\n\n // eslint-disable-next-line no-new-func\n var fn = (new Function('$filter',\n 'getStringValue',\n 'ifDefined',\n 'plus',\n fnString))(\n this.$filter,\n getStringValue,\n ifDefined,\n plusFn);\n this.state = this.stage = undefined;\n return fn;\n },\n\n USE: 'use',\n\n STRICT: 'strict',\n\n watchFns() {\n var result = [];\n var inputs = this.state.inputs;\n var self = this;\n forEach(inputs, function(input) {\n result.push('var ' + input.name + '=' + self.generateFunction(input.name, 's'));\n if (input.isPure) {\n result.push(input.name, '.isPure=' + JSON.stringify(input.isPure) + ';');\n }\n });\n if (inputs.length) {\n result.push('fn.inputs=[' + inputs.map(function(i) { return i.name; }).join(',') + '];');\n }\n return result.join('');\n },\n\n generateFunction(name, params) {\n return 'function(' + params + '){' +\n this.varsPrefix(name) +\n this.body(name) +\n '};';\n },\n\n filterPrefix() {\n var parts = [];\n var self = this;\n forEach(this.state.filters, function(id, filter) {\n parts.push(id + '=$filter(' + self.escape(filter) + ')');\n });\n if (parts.length) return 'var ' + parts.join(',') + ';';\n return '';\n },\n\n varsPrefix(section) {\n return this.state[section].vars.length ? 'var ' + this.state[section].vars.join(',') + ';' : '';\n },\n\n body(section) {\n return this.state[section].body.join('');\n },\n\n recurse(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck) {\n var left;\n var right;\n var self = this;\n var args;\n var expression;\n var computed;\n recursionFn = recursionFn || noop;\n if (!skipWatchIdCheck && isDefined(ast.watchId)) {\n intoId = intoId || this.nextId();\n this.if_('i',\n this.lazyAssign(intoId, this.computedMember('i', ast.watchId)),\n this.lazyRecurse(ast, intoId, nameId, recursionFn, create, true)\n );\n return;\n }\n switch (ast.type) {\n case AST.Program:\n forEach(ast.body, function(expression, pos) {\n self.recurse(expression.expression, undefined, undefined, function(expr) { right = expr; });\n if (pos !== ast.body.length - 1) {\n self.current().body.push(right, ';');\n } else {\n self.return_(right);\n }\n });\n break;\n case AST.Literal:\n expression = this.escape(ast.value);\n this.assign(intoId, expression);\n recursionFn(intoId || expression);\n break;\n case AST.UnaryExpression:\n this.recurse(ast.argument, undefined, undefined, function(expr) { right = expr; });\n expression = ast.operator + '(' + this.ifDefined(right, 0) + ')';\n this.assign(intoId, expression);\n recursionFn(expression);\n break;\n case AST.BinaryExpression:\n this.recurse(ast.left, undefined, undefined, function(expr) { left = expr; });\n this.recurse(ast.right, undefined, undefined, function(expr) { right = expr; });\n if (ast.operator === '+') {\n expression = this.plus(left, right);\n } else if (ast.operator === '-') {\n expression = this.ifDefined(left, 0) + ast.operator + this.ifDefined(right, 0);\n } else {\n expression = '(' + left + ')' + ast.operator + '(' + right + ')';\n }\n this.assign(intoId, expression);\n recursionFn(expression);\n break;\n case AST.LogicalExpression:\n intoId = intoId || this.nextId();\n self.recurse(ast.left, intoId);\n self.if_(ast.operator === '&&' ? intoId : self.not(intoId), self.lazyRecurse(ast.right, intoId));\n recursionFn(intoId);\n break;\n case AST.ConditionalExpression:\n intoId = intoId || this.nextId();\n self.recurse(ast.test, intoId);\n self.if_(intoId, self.lazyRecurse(ast.alternate, intoId), self.lazyRecurse(ast.consequent, intoId));\n recursionFn(intoId);\n break;\n case AST.Identifier:\n intoId = intoId || this.nextId();\n if (nameId) {\n nameId.context = self.stage === 'inputs' ? 's' : this.assign(this.nextId(), this.getHasOwnProperty('l', ast.name) + '?l:s');\n nameId.computed = false;\n nameId.name = ast.name;\n }\n self.if_(self.stage === 'inputs' || self.not(self.getHasOwnProperty('l', ast.name)),\n function() {\n self.if_(self.stage === 'inputs' || 's', function() {\n if (create && create !== 1) {\n self.if_(\n self.isNull(self.nonComputedMember('s', ast.name)),\n self.lazyAssign(self.nonComputedMember('s', ast.name), '{}'));\n }\n self.assign(intoId, self.nonComputedMember('s', ast.name));\n });\n }, intoId && self.lazyAssign(intoId, self.nonComputedMember('l', ast.name))\n );\n recursionFn(intoId);\n break;\n case AST.MemberExpression:\n left = nameId && (nameId.context = this.nextId()) || this.nextId();\n intoId = intoId || this.nextId();\n self.recurse(ast.object, left, undefined, function() {\n self.if_(self.notNull(left), function() {\n if (ast.computed) {\n right = self.nextId();\n self.recurse(ast.property, right);\n self.getStringValue(right);\n if (create && create !== 1) {\n self.if_(self.not(self.computedMember(left, right)), self.lazyAssign(self.computedMember(left, right), '{}'));\n }\n expression = self.computedMember(left, right);\n self.assign(intoId, expression);\n if (nameId) {\n nameId.computed = true;\n nameId.name = right;\n }\n } else {\n if (create && create !== 1) {\n self.if_(self.isNull(self.nonComputedMember(left, ast.property.name)), self.lazyAssign(self.nonComputedMember(left, ast.property.name), '{}'));\n }\n expression = self.nonComputedMember(left, ast.property.name);\n self.assign(intoId, expression);\n if (nameId) {\n nameId.computed = false;\n nameId.name = ast.property.name;\n }\n }\n }, function() {\n self.assign(intoId, 'undefined');\n });\n recursionFn(intoId);\n }, !!create);\n break;\n case AST.CallExpression:\n intoId = intoId || this.nextId();\n if (ast.filter) {\n right = self.filter(ast.callee.name);\n args = [];\n forEach(ast.arguments, function(expr) {\n var argument = self.nextId();\n self.recurse(expr, argument);\n args.push(argument);\n });\n expression = right + '(' + args.join(',') + ')';\n self.assign(intoId, expression);\n recursionFn(intoId);\n } else {\n right = self.nextId();\n left = {};\n args = [];\n self.recurse(ast.callee, right, left, function() {\n self.if_(self.notNull(right), function() {\n forEach(ast.arguments, function(expr) {\n self.recurse(expr, ast.constant ? undefined : self.nextId(), undefined, function(argument) {\n args.push(argument);\n });\n });\n if (left.name) {\n expression = self.member(left.context, left.name, left.computed) + '(' + args.join(',') + ')';\n } else {\n expression = right + '(' + args.join(',') + ')';\n }\n self.assign(intoId, expression);\n }, function() {\n self.assign(intoId, 'undefined');\n });\n recursionFn(intoId);\n });\n }\n break;\n case AST.AssignmentExpression:\n right = this.nextId();\n left = {};\n this.recurse(ast.left, undefined, left, function() {\n self.if_(self.notNull(left.context), function() {\n self.recurse(ast.right, right);\n expression = self.member(left.context, left.name, left.computed) + ast.operator + right;\n self.assign(intoId, expression);\n recursionFn(intoId || expression);\n });\n }, 1);\n break;\n case AST.ArrayExpression:\n args = [];\n forEach(ast.elements, function(expr) {\n self.recurse(expr, ast.constant ? undefined : self.nextId(), undefined, function(argument) {\n args.push(argument);\n });\n });\n expression = '[' + args.join(',') + ']';\n this.assign(intoId, expression);\n recursionFn(intoId || expression);\n break;\n case AST.ObjectExpression:\n args = [];\n computed = false;\n forEach(ast.properties, function(property) {\n if (property.computed) {\n computed = true;\n }\n });\n if (computed) {\n intoId = intoId || this.nextId();\n this.assign(intoId, '{}');\n forEach(ast.properties, function(property) {\n if (property.computed) {\n left = self.nextId();\n self.recurse(property.key, left);\n } else {\n left = property.key.type === AST.Identifier ?\n property.key.name :\n ('' + property.key.value);\n }\n right = self.nextId();\n self.recurse(property.value, right);\n self.assign(self.member(intoId, left, property.computed), right);\n });\n } else {\n forEach(ast.properties, function(property) {\n self.recurse(property.value, ast.constant ? undefined : self.nextId(), undefined, function(expr) {\n args.push(self.escape(\n property.key.type === AST.Identifier ? property.key.name :\n ('' + property.key.value)) +\n ':' + expr);\n });\n });\n expression = '{' + args.join(',') + '}';\n this.assign(intoId, expression);\n }\n recursionFn(intoId || expression);\n break;\n case AST.ThisExpression:\n this.assign(intoId, 's');\n recursionFn(intoId || 's');\n break;\n case AST.LocalsExpression:\n this.assign(intoId, 'l');\n recursionFn(intoId || 'l');\n break;\n case AST.NGValueParameter:\n this.assign(intoId, 'v');\n recursionFn(intoId || 'v');\n break;\n }\n },\n\n getHasOwnProperty(element, property) {\n var key = element + '.' + property;\n var own = this.current().own;\n if (!own.hasOwnProperty(key)) {\n own[key] = this.nextId(false, element + '&&(' + this.escape(property) + ' in ' + element + ')');\n }\n return own[key];\n },\n\n assign(id, value) {\n if (!id) return;\n this.current().body.push(id, '=', value, ';');\n return id;\n },\n\n filter(filterName) {\n if (!this.state.filters.hasOwnProperty(filterName)) {\n this.state.filters[filterName] = this.nextId(true);\n }\n return this.state.filters[filterName];\n },\n\n ifDefined(id, defaultValue) {\n return 'ifDefined(' + id + ',' + this.escape(defaultValue) + ')';\n },\n\n plus(left, right) {\n return 'plus(' + left + ',' + right + ')';\n },\n\n return_(id) {\n this.current().body.push('return ', id, ';');\n },\n\n if_(test, alternate, consequent) {\n if (test === true) {\n alternate();\n } else {\n var body = this.current().body;\n body.push('if(', test, '){');\n alternate();\n body.push('}');\n if (consequent) {\n body.push('else{');\n consequent();\n body.push('}');\n }\n }\n },\n\n not(expression) {\n return '!(' + expression + ')';\n },\n\n isNull(expression) {\n return expression + '==null';\n },\n\n notNull(expression) {\n return expression + '!=null';\n },\n\n nonComputedMember(left, right) {\n var SAFE_IDENTIFIER = /^[$_a-zA-Z][$_a-zA-Z0-9]*$/;\n var UNSAFE_CHARACTERS = /[^$_a-zA-Z0-9]/g;\n if (SAFE_IDENTIFIER.test(right)) {\n return left + '.' + right;\n } else {\n return left + '[\"' + right.replace(UNSAFE_CHARACTERS, this.stringEscapeFn) + '\"]';\n }\n },\n\n computedMember(left, right) {\n return left + '[' + right + ']';\n },\n\n member(left, right, computed) {\n if (computed) return this.computedMember(left, right);\n return this.nonComputedMember(left, right);\n },\n\n getStringValue(item) {\n this.assign(item, 'getStringValue(' + item + ')');\n },\n\n lazyRecurse(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck) {\n var self = this;\n return function() {\n self.recurse(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck);\n };\n },\n\n lazyAssign(id, value) {\n var self = this;\n return function() {\n self.assign(id, value);\n };\n },\n\n stringEscapeRegex: /[^ a-zA-Z0-9]/g,\n\n stringEscapeFn(c) {\n return '\\\\u' + ('0000' + c.charCodeAt(0).toString(16)).slice(-4);\n },\n\n escape(value) {\n if (isString(value)) return '\\'' + value.replace(this.stringEscapeRegex, this.stringEscapeFn) + '\\'';\n if (isNumber(value)) return value.toString();\n if (value === true) return 'true';\n if (value === false) return 'false';\n if (value === null) return 'null';\n if (typeof value === 'undefined') return 'undefined';\n\n throw $parseMinErr('esc', 'IMPOSSIBLE');\n },\n\n nextId(skip, init) {\n var id = 'v' + (this.state.nextId++);\n if (!skip) {\n this.current().vars.push(id + (init ? '=' + init : ''));\n }\n return id;\n },\n\n current() {\n return this.state[this.state.computing];\n }\n};\n\n\nfunction ASTInterpreter($filter) {\n this.$filter = $filter;\n}\n\nASTInterpreter.prototype = {\n compile(ast) {\n var self = this;\n findConstantAndWatchExpressions(ast, self.$filter);\n var assignable;\n var assign;\n if ((assignable = assignableAST(ast))) {\n assign = this.recurse(assignable);\n }\n var toWatch = getInputs(ast.body);\n var inputs;\n if (toWatch) {\n inputs = [];\n forEach(toWatch, function(watch, key) {\n var input = self.recurse(watch);\n input.isPure = watch.isPure;\n watch.input = input;\n inputs.push(input);\n watch.watchId = key;\n });\n }\n var expressions = [];\n forEach(ast.body, function(expression) {\n expressions.push(self.recurse(expression.expression));\n });\n var fn = ast.body.length === 0 ? noop :\n ast.body.length === 1 ? expressions[0] :\n function(scope, locals) {\n var lastValue;\n forEach(expressions, function(exp) {\n lastValue = exp(scope, locals);\n });\n return lastValue;\n };\n if (assign) {\n fn.assign = function(scope, value, locals) {\n return assign(scope, locals, value);\n };\n }\n if (inputs) {\n fn.inputs = inputs;\n }\n return fn;\n },\n\n recurse(ast, context, create) {\n var left;\n var right;\n var self = this;\n var args;\n if (ast.input) {\n return this.inputs(ast.input, ast.watchId);\n }\n switch (ast.type) {\n case AST.Literal:\n return this.value(ast.value, context);\n case AST.UnaryExpression:\n right = this.recurse(ast.argument);\n return this['unary' + ast.operator](right, context);\n case AST.BinaryExpression:\n left = this.recurse(ast.left);\n right = this.recurse(ast.right);\n return this['binary' + ast.operator](left, right, context);\n case AST.LogicalExpression:\n left = this.recurse(ast.left);\n right = this.recurse(ast.right);\n return this['binary' + ast.operator](left, right, context);\n case AST.ConditionalExpression:\n return this['ternary?:'](\n this.recurse(ast.test),\n this.recurse(ast.alternate),\n this.recurse(ast.consequent),\n context\n );\n case AST.Identifier:\n return self.identifier(ast.name, context, create);\n case AST.MemberExpression:\n left = this.recurse(ast.object, false, !!create);\n if (!ast.computed) {\n right = ast.property.name;\n }\n if (ast.computed) right = this.recurse(ast.property);\n return ast.computed ?\n this.computedMember(left, right, context, create) :\n this.nonComputedMember(left, right, context, create);\n case AST.CallExpression:\n args = [];\n forEach(ast.arguments, function(expr) {\n args.push(self.recurse(expr));\n });\n if (ast.filter) right = this.$filter(ast.callee.name);\n if (!ast.filter) right = this.recurse(ast.callee, true);\n return ast.filter ?\n function(scope, locals, assign, inputs) {\n var values = [];\n for (var i = 0; i < args.length; ++i) {\n values.push(args[i](scope, locals, assign, inputs));\n }\n var value = right(...values);\n return context ? {context: undefined, name: undefined, value: value} : value;\n } :\n function(scope, locals, assign, inputs) {\n var rhs = right(scope, locals, assign, inputs);\n var value;\n if (rhs.value != null) {\n var values = [];\n for (var i = 0; i < args.length; ++i) {\n values.push(args[i](scope, locals, assign, inputs));\n }\n value = rhs.value.apply(rhs.context, values);\n }\n return context ? {value: value} : value;\n };\n case AST.AssignmentExpression:\n left = this.recurse(ast.left, true, 1);\n right = this.recurse(ast.right);\n return function(scope, locals, assign, inputs) {\n var lhs = left(scope, locals, assign, inputs);\n var rhs = right(scope, locals, assign, inputs);\n lhs.context[lhs.name] = rhs;\n return context ? {value: rhs} : rhs;\n };\n case AST.ArrayExpression:\n args = [];\n forEach(ast.elements, function(expr) {\n args.push(self.recurse(expr));\n });\n return function(scope, locals, assign, inputs) {\n var value = [];\n for (var i = 0; i < args.length; ++i) {\n value.push(args[i](scope, locals, assign, inputs));\n }\n return context ? {value: value} : value;\n };\n case AST.ObjectExpression:\n args = [];\n forEach(ast.properties, function(property) {\n if (property.computed) {\n args.push({key: self.recurse(property.key),\n computed: true,\n value: self.recurse(property.value)\n });\n } else {\n args.push({key: property.key.type === AST.Identifier ?\n property.key.name :\n ('' + property.key.value),\n computed: false,\n value: self.recurse(property.value)\n });\n }\n });\n return function(scope, locals, assign, inputs) {\n var value = {};\n for (var i = 0; i < args.length; ++i) {\n if (args[i].computed) {\n value[args[i].key(scope, locals, assign, inputs)] = args[i].value(scope, locals, assign, inputs);\n } else {\n value[args[i].key] = args[i].value(scope, locals, assign, inputs);\n }\n }\n return context ? {value: value} : value;\n };\n case AST.ThisExpression:\n return function(scope) {\n return context ? {value: scope} : scope;\n };\n case AST.LocalsExpression:\n return function(scope, locals) {\n return context ? {value: locals} : locals;\n };\n case AST.NGValueParameter:\n return function(scope, locals, assign) {\n return context ? {value: assign} : assign;\n };\n }\n },\n\n 'unary+': function(argument, context) {\n return function(scope, locals, assign, inputs) {\n var arg = argument(scope, locals, assign, inputs);\n if (isDefined(arg)) {\n arg = +arg;\n } else {\n arg = 0;\n }\n return context ? {value: arg} : arg;\n };\n },\n 'unary-': function(argument, context) {\n return function(scope, locals, assign, inputs) {\n var arg = argument(scope, locals, assign, inputs);\n if (isDefined(arg)) {\n arg = -arg;\n } else {\n arg = -0;\n }\n return context ? {value: arg} : arg;\n };\n },\n 'unary!': function(argument, context) {\n return function(scope, locals, assign, inputs) {\n var arg = !argument(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary+': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n var lhs = left(scope, locals, assign, inputs);\n var rhs = right(scope, locals, assign, inputs);\n var arg = plusFn(lhs, rhs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary-': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n var lhs = left(scope, locals, assign, inputs);\n var rhs = right(scope, locals, assign, inputs);\n var arg = (isDefined(lhs) ? lhs : 0) - (isDefined(rhs) ? rhs : 0);\n return context ? {value: arg} : arg;\n };\n },\n 'binary*': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n var arg = left(scope, locals, assign, inputs) * right(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary/': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n var arg = left(scope, locals, assign, inputs) / right(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary%': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n var arg = left(scope, locals, assign, inputs) % right(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary===': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n var arg = left(scope, locals, assign, inputs) === right(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary!==': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n var arg = left(scope, locals, assign, inputs) !== right(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary==': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n // eslint-disable-next-line eqeqeq\n var arg = left(scope, locals, assign, inputs) == right(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary!=': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n // eslint-disable-next-line eqeqeq\n var arg = left(scope, locals, assign, inputs) != right(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary<': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n var arg = left(scope, locals, assign, inputs) < right(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary>': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n var arg = left(scope, locals, assign, inputs) > right(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary<=': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n var arg = left(scope, locals, assign, inputs) <= right(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary>=': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n var arg = left(scope, locals, assign, inputs) >= right(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary&&': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n var arg = left(scope, locals, assign, inputs) && right(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'binary||': function(left, right, context) {\n return function(scope, locals, assign, inputs) {\n var arg = left(scope, locals, assign, inputs) || right(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n 'ternary?:': function(test, alternate, consequent, context) {\n return function(scope, locals, assign, inputs) {\n var arg = test(scope, locals, assign, inputs) ? alternate(scope, locals, assign, inputs) : consequent(scope, locals, assign, inputs);\n return context ? {value: arg} : arg;\n };\n },\n value(value, context) {\n return function() { return context ? {context: undefined, name: undefined, value: value} : value; };\n },\n identifier(name, context, create) {\n return function(scope, locals, assign, inputs) {\n var base = locals && (name in locals) ? locals : scope;\n if (create && create !== 1 && base && base[name] == null) {\n base[name] = {};\n }\n var value = base ? base[name] : undefined;\n if (context) {\n return {context: base, name: name, value: value};\n } else {\n return value;\n }\n };\n },\n computedMember(left, right, context, create) {\n return function(scope, locals, assign, inputs) {\n var lhs = left(scope, locals, assign, inputs);\n var rhs;\n var value;\n if (lhs != null) {\n rhs = right(scope, locals, assign, inputs);\n rhs = getStringValue(rhs);\n if (create && create !== 1) {\n if (lhs && !(lhs[rhs])) {\n lhs[rhs] = {};\n }\n }\n value = lhs[rhs];\n }\n if (context) {\n return {context: lhs, name: rhs, value: value};\n } else {\n return value;\n }\n };\n },\n nonComputedMember(left, right, context, create) {\n return function(scope, locals, assign, inputs) {\n var lhs = left(scope, locals, assign, inputs);\n if (create && create !== 1) {\n if (lhs && lhs[right] == null) {\n lhs[right] = {};\n }\n }\n var value = lhs != null ? lhs[right] : undefined;\n if (context) {\n return {context: lhs, name: right, value: value};\n } else {\n return value;\n }\n };\n },\n inputs(input, watchId) {\n return function(scope, value, locals, inputs) {\n if (inputs) return inputs[watchId];\n return input(scope, value, locals);\n };\n }\n};\n\n/**\n * @constructor\n */\nfunction Parser(lexer, $filter, options) {\n this.ast = new AST(lexer, options);\n this.astCompiler = options.csp ? new ASTInterpreter($filter) :\n new ASTCompiler($filter);\n}\n\nParser.prototype = {\n constructor: Parser,\n\n parse(text) {\n var ast = this.getAst(text);\n var fn = this.astCompiler.compile(ast.ast);\n fn.literal = isLiteral(ast.ast);\n fn.constant = isConstant(ast.ast);\n fn.oneTime = ast.oneTime;\n return fn;\n },\n\n getAst(exp) {\n var oneTime = false;\n exp = exp.trim();\n\n if (exp.charAt(0) === ':' && exp.charAt(1) === ':') {\n oneTime = true;\n exp = exp.substring(2);\n }\n return {\n ast: this.ast.ast(exp),\n oneTime: oneTime\n };\n }\n};\n\nfunction getValueOf(value) {\n return isFunction(value.valueOf) ? value.valueOf() : objectValueOf.call(value);\n}\n\n///////////////////////////////////\n\n/**\n * @ngdoc service\n * @name $parse\n * @kind function\n *\n * @description\n *\n * Converts AngularJS {@link guide/expression expression} into a function.\n *\n * ```js\n * var getter = $parse('user.name');\n * var setter = getter.assign;\n * var context = {user:{name:'AngularJS'}};\n * var locals = {user:{name:'local'}};\n *\n * expect(getter(context)).toEqual('AngularJS');\n * setter(context, 'newValue');\n * expect(context.user.name).toEqual('newValue');\n * expect(getter(context, locals)).toEqual('local');\n * ```\n *\n *\n * @param {string} expression String expression to compile.\n * @returns {function(context, locals)} a function which represents the compiled expression:\n *\n * * `context` – `{object}` – an object against which any expressions embedded in the strings\n * are evaluated against (typically a scope object).\n * * `locals` – `{object=}` – local variables context object, useful for overriding values in\n * `context`.\n *\n * The returned function also has the following properties:\n * * `literal` – `{boolean}` – whether the expression's top-level node is a JavaScript\n * literal.\n * * `constant` – `{boolean}` – whether the expression is made entirely of JavaScript\n * constant literals.\n * * `assign` – `{?function(context, value)}` – if the expression is assignable, this will be\n * set to a function to change its value on the given context.\n *\n */\n\n\n/**\n * @ngdoc provider\n * @name $parseProvider\n * @this\n *\n * @description\n * `$parseProvider` can be used for configuring the default behavior of the {@link ng.$parse $parse}\n * service.\n */\nfunction $ParseProvider() {\n var cache = createMap();\n var literals = {\n 'true': true,\n 'false': false,\n 'null': null,\n 'undefined': undefined\n };\n var identStart;\n var identContinue;\n\n /**\n * @ngdoc method\n * @name $parseProvider#addLiteral\n * @description\n *\n * Configure $parse service to add literal values that will be present as literal at expressions.\n *\n * @param {string} literalName Token for the literal value. The literal name value must be a valid literal name.\n * @param {*} literalValue Value for this literal. All literal values must be primitives or `undefined`.\n *\n **/\n this.addLiteral = function(literalName, literalValue) {\n literals[literalName] = literalValue;\n };\n\n /**\n * @ngdoc method\n * @name $parseProvider#setIdentifierFns\n *\n * @description\n *\n * Allows defining the set of characters that are allowed in AngularJS expressions. The function\n * `identifierStart` will get called to know if a given character is a valid character to be the\n * first character for an identifier. The function `identifierContinue` will get called to know if\n * a given character is a valid character to be a follow-up identifier character. The functions\n * `identifierStart` and `identifierContinue` will receive as arguments the single character to be\n * identifier and the character code point. These arguments will be `string` and `numeric`. Keep in\n * mind that the `string` parameter can be two characters long depending on the character\n * representation. It is expected for the function to return `true` or `false`, whether that\n * character is allowed or not.\n *\n * Since this function will be called extensively, keep the implementation of these functions fast,\n * as the performance of these functions have a direct impact on the expressions parsing speed.\n *\n * @param {function=} identifierStart The function that will decide whether the given character is\n * a valid identifier start character.\n * @param {function=} identifierContinue The function that will decide whether the given character is\n * a valid identifier continue character.\n */\n this.setIdentifierFns = function(identifierStart, identifierContinue) {\n identStart = identifierStart;\n identContinue = identifierContinue;\n return this;\n };\n\n this.$get = ['$filter', function($filter) {\n var noUnsafeEval = csp().noUnsafeEval;\n var $parseOptions = {\n csp: noUnsafeEval,\n literals: copy(literals),\n isIdentifierStart: isFunction(identStart) && identStart,\n isIdentifierContinue: isFunction(identContinue) && identContinue\n };\n $parse.$$getAst = $$getAst;\n return $parse;\n\n function $parse(exp, interceptorFn) {\n var parsedExpression;\n var cacheKey;\n\n switch (typeof exp) {\n case 'string':\n exp = exp.trim();\n cacheKey = exp;\n\n parsedExpression = cache[cacheKey];\n\n if (!parsedExpression) {\n var lexer = new Lexer($parseOptions);\n var parser = new Parser(lexer, $filter, $parseOptions);\n parsedExpression = parser.parse(exp);\n if (parsedExpression.constant) {\n parsedExpression.$$watchDelegate = constantWatchDelegate;\n } else if (parsedExpression.oneTime) {\n parsedExpression.$$watchDelegate = parsedExpression.literal ?\n oneTimeLiteralWatchDelegate : oneTimeWatchDelegate;\n } else if (parsedExpression.inputs) {\n parsedExpression.$$watchDelegate = inputsWatchDelegate;\n }\n cache[cacheKey] = parsedExpression;\n }\n return addInterceptor(parsedExpression, interceptorFn);\n\n case 'function':\n return addInterceptor(exp, interceptorFn);\n\n default:\n return addInterceptor(noop, interceptorFn);\n }\n }\n\n function $$getAst(exp) {\n var lexer = new Lexer($parseOptions);\n var parser = new Parser(lexer, $filter, $parseOptions);\n return parser.getAst(exp).ast;\n }\n\n function expressionInputDirtyCheck(newValue, oldValueOfValue, compareObjectIdentity) {\n\n if (newValue == null || oldValueOfValue == null) { // null/undefined\n return newValue === oldValueOfValue;\n }\n\n if (typeof newValue === 'object') {\n\n // attempt to convert the value to a primitive type\n // TODO(docs): add a note to docs that by implementing valueOf even objects and arrays can\n // be cheaply dirty-checked\n newValue = getValueOf(newValue);\n\n if (typeof newValue === 'object' && !compareObjectIdentity) {\n // objects/arrays are not supported - deep-watching them would be too expensive\n return false;\n }\n\n // fall-through to the primitive equality check\n }\n\n //Primitive or NaN\n // eslint-disable-next-line no-self-compare\n return newValue === oldValueOfValue || (newValue !== newValue && oldValueOfValue !== oldValueOfValue);\n }\n\n function inputsWatchDelegate(scope, listener, objectEquality, parsedExpression, prettyPrintExpression) {\n var inputExpressions = parsedExpression.inputs;\n var lastResult;\n\n if (inputExpressions.length === 1) {\n var oldInputValueOf = expressionInputDirtyCheck; // init to something unique so that equals check fails\n inputExpressions = inputExpressions[0];\n return scope.$watch(function expressionInputWatch(scope) {\n var newInputValue = inputExpressions(scope);\n if (!expressionInputDirtyCheck(newInputValue, oldInputValueOf, inputExpressions.isPure)) {\n lastResult = parsedExpression(scope, undefined, undefined, [newInputValue]);\n oldInputValueOf = newInputValue && getValueOf(newInputValue);\n }\n return lastResult;\n }, listener, objectEquality, prettyPrintExpression);\n }\n\n var oldInputValueOfValues = [];\n var oldInputValues = [];\n for (var i = 0, ii = inputExpressions.length; i < ii; i++) {\n oldInputValueOfValues[i] = expressionInputDirtyCheck; // init to something unique so that equals check fails\n oldInputValues[i] = null;\n }\n\n return scope.$watch(function expressionInputsWatch(scope) {\n var changed = false;\n\n for (var i = 0, ii = inputExpressions.length; i < ii; i++) {\n var newInputValue = inputExpressions[i](scope);\n if (changed || (changed = !expressionInputDirtyCheck(newInputValue, oldInputValueOfValues[i], inputExpressions[i].isPure))) {\n oldInputValues[i] = newInputValue;\n oldInputValueOfValues[i] = newInputValue && getValueOf(newInputValue);\n }\n }\n\n if (changed) {\n lastResult = parsedExpression(scope, undefined, undefined, oldInputValues);\n }\n\n return lastResult;\n }, listener, objectEquality, prettyPrintExpression);\n }\n\n function oneTimeWatchDelegate(scope, listener, objectEquality, parsedExpression, prettyPrintExpression) {\n var unwatch;\n var lastValue;\n if (parsedExpression.inputs) {\n unwatch = inputsWatchDelegate(scope, oneTimeListener, objectEquality, parsedExpression, prettyPrintExpression);\n } else {\n unwatch = scope.$watch(oneTimeWatch, oneTimeListener, objectEquality);\n }\n return unwatch;\n\n function oneTimeWatch(scope) {\n return parsedExpression(scope);\n }\n function oneTimeListener(value, old, scope) {\n lastValue = value;\n if (isFunction(listener)) {\n listener(value, old, scope);\n }\n if (isDefined(value)) {\n scope.$$postDigest(function() {\n if (isDefined(lastValue)) {\n unwatch();\n }\n });\n }\n }\n }\n\n function oneTimeLiteralWatchDelegate(scope, listener, objectEquality, parsedExpression) {\n var unwatch;\n var lastValue;\n unwatch = scope.$watch(function oneTimeWatch(scope) {\n return parsedExpression(scope);\n }, function oneTimeListener(value, old, scope) {\n lastValue = value;\n if (isFunction(listener)) {\n listener(value, old, scope);\n }\n if (isAllDefined(value)) {\n scope.$$postDigest(function() {\n if (isAllDefined(lastValue)) unwatch();\n });\n }\n }, objectEquality);\n\n return unwatch;\n\n function isAllDefined(value) {\n var allDefined = true;\n forEach(value, function(val) {\n if (!isDefined(val)) allDefined = false;\n });\n return allDefined;\n }\n }\n\n function constantWatchDelegate(scope, listener, objectEquality, parsedExpression) {\n var unwatch = scope.$watch(function constantWatch(scope) {\n unwatch();\n return parsedExpression(scope);\n }, listener, objectEquality);\n return unwatch;\n }\n\n function addInterceptor(parsedExpression, interceptorFn) {\n if (!interceptorFn) return parsedExpression;\n var watchDelegate = parsedExpression.$$watchDelegate;\n var useInputs = false;\n\n var regularWatch =\n watchDelegate !== oneTimeLiteralWatchDelegate &&\n watchDelegate !== oneTimeWatchDelegate;\n\n var fn = regularWatch ? function regularInterceptedExpression(scope, locals, assign, inputs) {\n var value = useInputs && inputs ? inputs[0] : parsedExpression(scope, locals, assign, inputs);\n return interceptorFn(value, scope, locals);\n } : function oneTimeInterceptedExpression(scope, locals, assign, inputs) {\n var value = parsedExpression(scope, locals, assign, inputs);\n var result = interceptorFn(value, scope, locals);\n // we only return the interceptor's result if the\n // initial value is defined (for bind-once)\n return isDefined(value) ? result : value;\n };\n\n // Propagate $$watchDelegates other then inputsWatchDelegate\n useInputs = !parsedExpression.inputs;\n if (watchDelegate && watchDelegate !== inputsWatchDelegate) {\n fn.$$watchDelegate = watchDelegate;\n fn.inputs = parsedExpression.inputs;\n } else if (!interceptorFn.$stateful) {\n // Treat interceptor like filters - assume non-stateful by default and use the inputsWatchDelegate\n fn.$$watchDelegate = inputsWatchDelegate;\n fn.inputs = parsedExpression.inputs ? parsedExpression.inputs : [parsedExpression];\n }\n\n if (fn.inputs) {\n fn.inputs = fn.inputs.map(function(e) {\n // Remove the isPure flag of inputs when it is not absolute because they are now wrapped in a\n // potentially non-pure interceptor function.\n if (e.isPure === PURITY_RELATIVE) {\n return function depurifier(s) { return e(s); };\n }\n return e;\n });\n }\n\n return fn;\n }\n }];\n}\n'use strict';\n\n/**\n * @ngdoc service\n * @name $q\n * @requires $rootScope\n *\n * @description\n * A service that helps you run functions asynchronously, and use their return values (or exceptions)\n * when they are done processing.\n *\n * This is a [Promises/A+](https://promisesaplus.com/)-compliant implementation of promises/deferred\n * objects inspired by [Kris Kowal's Q](https://github.com/kriskowal/q).\n *\n * $q can be used in two fashions --- one which is more similar to Kris Kowal's Q or jQuery's Deferred\n * implementations, and the other which resembles ES6 (ES2015) promises to some degree.\n *\n * ## $q constructor\n *\n * The streamlined ES6 style promise is essentially just using $q as a constructor which takes a `resolver`\n * function as the first argument. This is similar to the native Promise implementation from ES6,\n * see [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n *\n * While the constructor-style use is supported, not all of the supporting methods from ES6 promises are\n * available yet.\n *\n * It can be used like so:\n *\n * ```js\n * // for the purpose of this example let's assume that variables `$q` and `okToGreet`\n * // are available in the current lexical scope (they could have been injected or passed in).\n *\n * function asyncGreet(name) {\n * // perform some asynchronous operation, resolve or reject the promise when appropriate.\n * return $q(function(resolve, reject) {\n * setTimeout(function() {\n * if (okToGreet(name)) {\n * resolve('Hello, ' + name + '!');\n * } else {\n * reject('Greeting ' + name + ' is not allowed.');\n * }\n * }, 1000);\n * });\n * }\n *\n * var promise = asyncGreet('Robin Hood');\n * promise.then(function(greeting) {\n * alert('Success: ' + greeting);\n * }, function(reason) {\n * alert('Failed: ' + reason);\n * });\n * ```\n *\n * Note: progress/notify callbacks are not currently supported via the ES6-style interface.\n *\n * Note: unlike ES6 behavior, an exception thrown in the constructor function will NOT implicitly reject the promise.\n *\n * However, the more traditional CommonJS-style usage is still available, and documented below.\n *\n * [The CommonJS Promise proposal](http://wiki.commonjs.org/wiki/Promises) describes a promise as an\n * interface for interacting with an object that represents the result of an action that is\n * performed asynchronously, and may or may not be finished at any given point in time.\n *\n * From the perspective of dealing with error handling, deferred and promise APIs are to\n * asynchronous programming what `try`, `catch` and `throw` keywords are to synchronous programming.\n *\n * ```js\n * // for the purpose of this example let's assume that variables `$q` and `okToGreet`\n * // are available in the current lexical scope (they could have been injected or passed in).\n *\n * function asyncGreet(name) {\n * var deferred = $q.defer();\n *\n * setTimeout(function() {\n * deferred.notify('About to greet ' + name + '.');\n *\n * if (okToGreet(name)) {\n * deferred.resolve('Hello, ' + name + '!');\n * } else {\n * deferred.reject('Greeting ' + name + ' is not allowed.');\n * }\n * }, 1000);\n *\n * return deferred.promise;\n * }\n *\n * var promise = asyncGreet('Robin Hood');\n * promise.then(function(greeting) {\n * alert('Success: ' + greeting);\n * }, function(reason) {\n * alert('Failed: ' + reason);\n * }, function(update) {\n * alert('Got notification: ' + update);\n * });\n * ```\n *\n * At first it might not be obvious why this extra complexity is worth the trouble. The payoff\n * comes in the way of guarantees that promise and deferred APIs make, see\n * https://github.com/kriskowal/uncommonjs/blob/master/promises/specification.md.\n *\n * Additionally the promise api allows for composition that is very hard to do with the\n * traditional callback ([CPS](http://en.wikipedia.org/wiki/Continuation-passing_style)) approach.\n * For more on this please see the [Q documentation](https://github.com/kriskowal/q) especially the\n * section on serial or parallel joining of promises.\n *\n * ## The Deferred API\n *\n * A new instance of deferred is constructed by calling `$q.defer()`.\n *\n * The purpose of the deferred object is to expose the associated Promise instance as well as APIs\n * that can be used for signaling the successful or unsuccessful completion, as well as the status\n * of the task.\n *\n * **Methods**\n *\n * - `resolve(value)` – resolves the derived promise with the `value`. If the value is a rejection\n * constructed via `$q.reject`, the promise will be rejected instead.\n * - `reject(reason)` – rejects the derived promise with the `reason`. This is equivalent to\n * resolving it with a rejection constructed via `$q.reject`.\n * - `notify(value)` - provides updates on the status of the promise's execution. This may be called\n * multiple times before the promise is either resolved or rejected.\n *\n * **Properties**\n *\n * - promise – `{Promise}` – promise object associated with this deferred.\n *\n *\n * ## The Promise API\n *\n * A new promise instance is created when a deferred instance is created and can be retrieved by\n * calling `deferred.promise`.\n *\n * The purpose of the promise object is to allow for interested parties to get access to the result\n * of the deferred task when it completes.\n *\n * **Methods**\n *\n * - `then(successCallback, [errorCallback], [notifyCallback])` – regardless of when the promise was or\n * will be resolved or rejected, `then` calls one of the success or error callbacks asynchronously\n * as soon as the result is available. The callbacks are called with a single argument: the result\n * or rejection reason. Additionally, the notify callback may be called zero or more times to\n * provide a progress indication, before the promise is resolved or rejected.\n *\n * This method *returns a new promise* which is resolved or rejected via the return value of the\n * `successCallback`, `errorCallback` (unless that value is a promise, in which case it is resolved\n * with the value which is resolved in that promise using\n * [promise chaining](http://www.html5rocks.com/en/tutorials/es6/promises/#toc-promises-queues)).\n * It also notifies via the return value of the `notifyCallback` method. The promise cannot be\n * resolved or rejected from the notifyCallback method. The errorCallback and notifyCallback\n * arguments are optional.\n *\n * - `catch(errorCallback)` – shorthand for `promise.then(null, errorCallback)`\n *\n * - `finally(callback, notifyCallback)` – allows you to observe either the fulfillment or rejection of a promise,\n * but to do so without modifying the final value. This is useful to release resources or do some\n * clean-up that needs to be done whether the promise was rejected or resolved. See the [full\n * specification](https://github.com/kriskowal/q/wiki/API-Reference#promisefinallycallback) for\n * more information.\n *\n * ## Chaining promises\n *\n * Because calling the `then` method of a promise returns a new derived promise, it is easily\n * possible to create a chain of promises:\n *\n * ```js\n * promiseB = promiseA.then(function(result) {\n * return result + 1;\n * });\n *\n * // promiseB will be resolved immediately after promiseA is resolved and its value\n * // will be the result of promiseA incremented by 1\n * ```\n *\n * It is possible to create chains of any length and since a promise can be resolved with another\n * promise (which will defer its resolution further), it is possible to pause/defer resolution of\n * the promises at any point in the chain. This makes it possible to implement powerful APIs like\n * $http's response interceptors.\n *\n *\n * ## Differences between Kris Kowal's Q and $q\n *\n * There are two main differences:\n *\n * - $q is integrated with the {@link ng.$rootScope.Scope} Scope model observation\n * mechanism in AngularJS, which means faster propagation of resolution or rejection into your\n * models and avoiding unnecessary browser repaints, which would result in flickering UI.\n * - Q has many more features than $q, but that comes at a cost of bytes. $q is tiny, but contains\n * all the important functionality needed for common async tasks.\n *\n * ## Testing\n *\n * ```js\n * it('should simulate promise', inject(function($q, $rootScope) {\n * var deferred = $q.defer();\n * var promise = deferred.promise;\n * var resolvedValue;\n *\n * promise.then(function(value) { resolvedValue = value; });\n * expect(resolvedValue).toBeUndefined();\n *\n * // Simulate resolving of promise\n * deferred.resolve(123);\n * // Note that the 'then' function does not get called synchronously.\n * // This is because we want the promise API to always be async, whether or not\n * // it got called synchronously or asynchronously.\n * expect(resolvedValue).toBeUndefined();\n *\n * // Propagate promise resolution to 'then' functions using $apply().\n * $rootScope.$apply();\n * expect(resolvedValue).toEqual(123);\n * }));\n * ```\n *\n * @param {function(function, function)} resolver Function which is responsible for resolving or\n * rejecting the newly created promise. The first parameter is a function which resolves the\n * promise, the second parameter is a function which rejects the promise.\n *\n * @returns {Promise} The newly created promise.\n */\n/**\n * @ngdoc provider\n * @name $qProvider\n * @this\n *\n * @description\n */\nfunction $QProvider() {\n var errorOnUnhandledRejections = true;\n this.$get = ['$rootScope', '$exceptionHandler', function($rootScope, $exceptionHandler) {\n return qFactory(function(callback) {\n $rootScope.$evalAsync(callback);\n }, $exceptionHandler, errorOnUnhandledRejections);\n }];\n\n /**\n * @ngdoc method\n * @name $qProvider#errorOnUnhandledRejections\n * @kind function\n *\n * @description\n * Retrieves or overrides whether to generate an error when a rejected promise is not handled.\n * This feature is enabled by default.\n *\n * @param {boolean=} value Whether to generate an error when a rejected promise is not handled.\n * @returns {boolean|ng.$qProvider} Current value when called without a new value or self for\n * chaining otherwise.\n */\n this.errorOnUnhandledRejections = function(value) {\n if (isDefined(value)) {\n errorOnUnhandledRejections = value;\n return this;\n } else {\n return errorOnUnhandledRejections;\n }\n };\n}\n\n/** @this */\nfunction $$QProvider() {\n var errorOnUnhandledRejections = true;\n this.$get = ['$browser', '$exceptionHandler', function($browser, $exceptionHandler) {\n return qFactory(function(callback) {\n $browser.defer(callback);\n }, $exceptionHandler, errorOnUnhandledRejections);\n }];\n\n this.errorOnUnhandledRejections = function(value) {\n if (isDefined(value)) {\n errorOnUnhandledRejections = value;\n return this;\n } else {\n return errorOnUnhandledRejections;\n }\n };\n}\n\n/**\n * Constructs a promise manager.\n *\n * @param {function(function)} nextTick Function for executing functions in the next turn.\n * @param {function(...*)} exceptionHandler Function into which unexpected exceptions are passed for\n * debugging purposes.\n * @param {boolean=} errorOnUnhandledRejections Whether an error should be generated on unhandled\n * promises rejections.\n * @returns {object} Promise manager.\n */\nfunction qFactory(nextTick, exceptionHandler, errorOnUnhandledRejections) {\n var $qMinErr = minErr('$q', TypeError);\n var queueSize = 0;\n var checkQueue = [];\n\n /**\n * @ngdoc method\n * @name ng.$q#defer\n * @kind function\n *\n * @description\n * Creates a `Deferred` object which represents a task which will finish in the future.\n *\n * @returns {Deferred} Returns a new instance of deferred.\n */\n function defer() {\n return new Deferred();\n }\n\n function Deferred() {\n var promise = this.promise = new Promise();\n //Non prototype methods necessary to support unbound execution :/\n this.resolve = function(val) { resolvePromise(promise, val); };\n this.reject = function(reason) { rejectPromise(promise, reason); };\n this.notify = function(progress) { notifyPromise(promise, progress); };\n }\n\n\n function Promise() {\n this.$$state = { status: 0 };\n }\n\n extend(Promise.prototype, {\n then(onFulfilled, onRejected, progressBack) {\n if (isUndefined(onFulfilled) && isUndefined(onRejected) && isUndefined(progressBack)) {\n return this;\n }\n var result = new Promise();\n\n this.$$state.pending = this.$$state.pending || [];\n this.$$state.pending.push([result, onFulfilled, onRejected, progressBack]);\n if (this.$$state.status > 0) scheduleProcessQueue(this.$$state);\n\n return result;\n },\n\n 'catch': function(callback) {\n return this.then(null, callback);\n },\n\n 'finally': function(callback, progressBack) {\n return this.then(function(value) {\n return handleCallback(value, resolve, callback);\n }, function(error) {\n return handleCallback(error, reject, callback);\n }, progressBack);\n }\n });\n\n function processQueue(state) {\n var fn;\n var promise;\n var pending;\n\n pending = state.pending;\n state.processScheduled = false;\n state.pending = undefined;\n try {\n for (var i = 0, ii = pending.length; i < ii; ++i) {\n markQStateExceptionHandled(state);\n promise = pending[i][0];\n fn = pending[i][state.status];\n try {\n if (isFunction(fn)) {\n resolvePromise(promise, fn(state.value));\n } else if (state.status === 1) {\n resolvePromise(promise, state.value);\n } else {\n rejectPromise(promise, state.value);\n }\n } catch (e) {\n rejectPromise(promise, e);\n // This error is explicitly marked for being passed to the $exceptionHandler\n if (e && e.$$passToExceptionHandler === true) {\n exceptionHandler(e);\n }\n }\n }\n } finally {\n --queueSize;\n if (errorOnUnhandledRejections && queueSize === 0) {\n nextTick(processChecks);\n }\n }\n }\n\n function processChecks() {\n // eslint-disable-next-line no-unmodified-loop-condition\n while (!queueSize && checkQueue.length) {\n var toCheck = checkQueue.shift();\n if (!isStateExceptionHandled(toCheck)) {\n markQStateExceptionHandled(toCheck);\n var errorMessage = 'Possibly unhandled rejection: ' + toDebugString(toCheck.value);\n if (isError(toCheck.value)) {\n exceptionHandler(toCheck.value, errorMessage);\n } else {\n exceptionHandler(errorMessage);\n }\n }\n }\n }\n\n function scheduleProcessQueue(state) {\n if (errorOnUnhandledRejections && !state.pending && state.status === 2 && !isStateExceptionHandled(state)) {\n if (queueSize === 0 && checkQueue.length === 0) {\n nextTick(processChecks);\n }\n checkQueue.push(state);\n }\n if (state.processScheduled || !state.pending) return;\n state.processScheduled = true;\n ++queueSize;\n nextTick(function() { processQueue(state); });\n }\n\n function resolvePromise(promise, val) {\n if (promise.$$state.status) return;\n if (val === promise) {\n $$reject(promise, $qMinErr(\n 'qcycle',\n 'Expected promise to be resolved with value other than itself \\'{0}\\'',\n val));\n } else {\n $$resolve(promise, val);\n }\n\n }\n\n function $$resolve(promise, val) {\n var then;\n var done = false;\n try {\n if (isObject(val) || isFunction(val)) then = val.then;\n if (isFunction(then)) {\n promise.$$state.status = -1;\n then.call(val, doResolve, doReject, doNotify);\n } else {\n promise.$$state.value = val;\n promise.$$state.status = 1;\n scheduleProcessQueue(promise.$$state);\n }\n } catch (e) {\n doReject(e);\n }\n\n function doResolve(val) {\n if (done) return;\n done = true;\n $$resolve(promise, val);\n }\n function doReject(val) {\n if (done) return;\n done = true;\n $$reject(promise, val);\n }\n function doNotify(progress) {\n notifyPromise(promise, progress);\n }\n }\n\n function rejectPromise(promise, reason) {\n if (promise.$$state.status) return;\n $$reject(promise, reason);\n }\n\n function $$reject(promise, reason) {\n promise.$$state.value = reason;\n promise.$$state.status = 2;\n scheduleProcessQueue(promise.$$state);\n }\n\n function notifyPromise(promise, progress) {\n var callbacks = promise.$$state.pending;\n\n if ((promise.$$state.status <= 0) && callbacks && callbacks.length) {\n nextTick(function() {\n var callback;\n var result;\n for (var i = 0, ii = callbacks.length; i < ii; i++) {\n result = callbacks[i][0];\n callback = callbacks[i][3];\n try {\n notifyPromise(result, isFunction(callback) ? callback(progress) : progress);\n } catch (e) {\n exceptionHandler(e);\n }\n }\n });\n }\n }\n\n /**\n * @ngdoc method\n * @name $q#reject\n * @kind function\n *\n * @description\n * Creates a promise that is resolved as rejected with the specified `reason`. This api should be\n * used to forward rejection in a chain of promises. If you are dealing with the last promise in\n * a promise chain, you don't need to worry about it.\n *\n * When comparing deferreds/promises to the familiar behavior of try/catch/throw, think of\n * `reject` as the `throw` keyword in JavaScript. This also means that if you \"catch\" an error via\n * a promise error callback and you want to forward the error to the promise derived from the\n * current promise, you have to \"rethrow\" the error by returning a rejection constructed via\n * `reject`.\n *\n * ```js\n * promiseB = promiseA.then(function(result) {\n * // success: do something and resolve promiseB\n * // with the old or a new result\n * return result;\n * }, function(reason) {\n * // error: handle the error if possible and\n * // resolve promiseB with newPromiseOrValue,\n * // otherwise forward the rejection to promiseB\n * if (canHandle(reason)) {\n * // handle the error and recover\n * return newPromiseOrValue;\n * }\n * return $q.reject(reason);\n * });\n * ```\n *\n * @param {*} reason Constant, message, exception or an object representing the rejection reason.\n * @returns {Promise} Returns a promise that was already resolved as rejected with the `reason`.\n */\n function reject(reason) {\n var result = new Promise();\n rejectPromise(result, reason);\n return result;\n }\n\n function handleCallback(value, resolver, callback) {\n var callbackOutput = null;\n try {\n if (isFunction(callback)) callbackOutput = callback();\n } catch (e) {\n return reject(e);\n }\n if (isPromiseLike(callbackOutput)) {\n return callbackOutput.then(function() {\n return resolver(value);\n }, reject);\n } else {\n return resolver(value);\n }\n }\n\n /**\n * @ngdoc method\n * @name $q#when\n * @kind function\n *\n * @description\n * Wraps an object that might be a value or a (3rd party) then-able promise into a $q promise.\n * This is useful when you are dealing with an object that might or might not be a promise, or if\n * the promise comes from a source that can't be trusted.\n *\n * @param {*} value Value or a promise\n * @param {Function=} successCallback\n * @param {Function=} errorCallback\n * @param {Function=} progressCallback\n * @returns {Promise} Returns a promise of the passed value or promise\n */\n\n\n function when(value, callback, errback, progressBack) {\n var result = new Promise();\n resolvePromise(result, value);\n return result.then(callback, errback, progressBack);\n }\n\n /**\n * @ngdoc method\n * @name $q#resolve\n * @kind function\n *\n * @description\n * Alias of {@link ng.$q#when when} to maintain naming consistency with ES6.\n *\n * @param {*} value Value or a promise\n * @param {Function=} successCallback\n * @param {Function=} errorCallback\n * @param {Function=} progressCallback\n * @returns {Promise} Returns a promise of the passed value or promise\n */\n var resolve = when;\n\n /**\n * @ngdoc method\n * @name $q#all\n * @kind function\n *\n * @description\n * Combines multiple promises into a single promise that is resolved when all of the input\n * promises are resolved.\n *\n * @param {Array.|Object.} promises An array or hash of promises.\n * @returns {Promise} Returns a single promise that will be resolved with an array/hash of values,\n * each value corresponding to the promise at the same index/key in the `promises` array/hash.\n * If any of the promises is resolved with a rejection, this resulting promise will be rejected\n * with the same rejection value.\n */\n\n function all(promises) {\n var result = new Promise();\n var counter = 0;\n var results = isArray(promises) ? [] : {};\n\n forEach(promises, function(promise, key) {\n counter++;\n when(promise).then(function(value) {\n results[key] = value;\n if (!(--counter)) resolvePromise(result, results);\n }, function(reason) {\n rejectPromise(result, reason);\n });\n });\n\n if (counter === 0) {\n resolvePromise(result, results);\n }\n\n return result;\n }\n\n /**\n * @ngdoc method\n * @name $q#race\n * @kind function\n *\n * @description\n * Returns a promise that resolves or rejects as soon as one of those promises\n * resolves or rejects, with the value or reason from that promise.\n *\n * @param {Array.|Object.} promises An array or hash of promises.\n * @returns {Promise} a promise that resolves or rejects as soon as one of the `promises`\n * resolves or rejects, with the value or reason from that promise.\n */\n\n function race(promises) {\n var deferred = defer();\n\n forEach(promises, function(promise) {\n when(promise).then(deferred.resolve, deferred.reject);\n });\n\n return deferred.promise;\n }\n\n function $Q(resolver) {\n if (!isFunction(resolver)) {\n throw $qMinErr('norslvr', 'Expected resolverFn, got \\'{0}\\'', resolver);\n }\n\n var promise = new Promise();\n\n function resolveFn(value) {\n resolvePromise(promise, value);\n }\n\n function rejectFn(reason) {\n rejectPromise(promise, reason);\n }\n\n resolver(resolveFn, rejectFn);\n\n return promise;\n }\n\n // Let's make the instanceof operator work for promises, so that\n // `new $q(fn) instanceof $q` would evaluate to true.\n $Q.prototype = Promise.prototype;\n\n $Q.defer = defer;\n $Q.reject = reject;\n $Q.when = when;\n $Q.resolve = resolve;\n $Q.all = all;\n $Q.race = race;\n\n return $Q;\n}\n\nfunction isStateExceptionHandled(state) {\n return !!state.pur;\n}\nfunction markQStateExceptionHandled(state) {\n state.pur = true;\n}\nfunction markQExceptionHandled(q) {\n markQStateExceptionHandled(q.$$state);\n}\n'use strict';\n\n/** @this */\nfunction $$RAFProvider() { //rAF\n this.$get = ['$window', '$timeout', function($window, $timeout) {\n var requestAnimationFrame = $window.requestAnimationFrame ||\n $window.webkitRequestAnimationFrame;\n\n var cancelAnimationFrame = $window.cancelAnimationFrame ||\n $window.webkitCancelAnimationFrame ||\n $window.webkitCancelRequestAnimationFrame;\n\n var rafSupported = !!requestAnimationFrame;\n var raf = rafSupported\n ? function(fn) {\n var id = requestAnimationFrame(fn);\n return function() {\n cancelAnimationFrame(id);\n };\n }\n : function(fn) {\n var timer = $timeout(fn, 16.66, false); // 1000 / 60 = 16.666\n return function() {\n $timeout.cancel(timer);\n };\n };\n\n raf.supported = rafSupported;\n\n return raf;\n }];\n}\n'use strict';\n\n/**\n * DESIGN NOTES\n *\n * The design decisions behind the scope are heavily favored for speed and memory consumption.\n *\n * The typical use of scope is to watch the expressions, which most of the time return the same\n * value as last time so we optimize the operation.\n *\n * Closures construction is expensive in terms of speed as well as memory:\n * - No closures, instead use prototypical inheritance for API\n * - Internal state needs to be stored on scope directly, which means that private state is\n * exposed as $$____ properties\n *\n * Loop operations are optimized by using while(count--) { ... }\n * - This means that in order to keep the same order of execution as addition we have to add\n * items to the array at the beginning (unshift) instead of at the end (push)\n *\n * Child scopes are created and removed often\n * - Using an array would be slow since inserts in the middle are expensive; so we use linked lists\n *\n * There are fewer watches than observers. This is why you don't want the observer to be implemented\n * in the same way as watch. Watch requires return of the initialization function which is expensive\n * to construct.\n */\n\n\n/**\n * @ngdoc provider\n * @name $rootScopeProvider\n * @description\n *\n * Provider for the $rootScope service.\n */\n\n/**\n * @ngdoc method\n * @name $rootScopeProvider#digestTtl\n * @description\n *\n * Sets the number of `$digest` iterations the scope should attempt to execute before giving up and\n * assuming that the model is unstable.\n *\n * The current default is 10 iterations.\n *\n * In complex applications it's possible that the dependencies between `$watch`s will result in\n * several digest iterations. However if an application needs more than the default 10 digest\n * iterations for its model to stabilize then you should investigate what is causing the model to\n * continuously change during the digest.\n *\n * Increasing the TTL could have performance implications, so you should not change it without\n * proper justification.\n *\n * @param {number} limit The number of digest iterations.\n */\n\n\n/**\n * @ngdoc service\n * @name $rootScope\n * @this\n *\n * @description\n *\n * Every application has a single root {@link ng.$rootScope.Scope scope}.\n * All other scopes are descendant scopes of the root scope. Scopes provide separation\n * between the model and the view, via a mechanism for watching the model for changes.\n * They also provide event emission/broadcast and subscription facility. See the\n * {@link guide/scope developer guide on scopes}.\n */\nfunction $RootScopeProvider() {\n var TTL = 10;\n var $rootScopeMinErr = minErr('$rootScope');\n var lastDirtyWatch = null;\n var applyAsyncId = null;\n\n this.digestTtl = function(value) {\n if (arguments.length) {\n TTL = value;\n }\n return TTL;\n };\n\n function createChildScopeClass(parent) {\n function ChildScope() {\n this.$$watchers = this.$$nextSibling =\n this.$$childHead = this.$$childTail = null;\n this.$$listeners = {};\n this.$$listenerCount = {};\n this.$$watchersCount = 0;\n this.$id = nextUid();\n this.$$ChildScope = null;\n this.$$suspended = false;\n }\n ChildScope.prototype = parent;\n return ChildScope;\n }\n\n this.$get = ['$exceptionHandler', '$parse', '$browser',\n function($exceptionHandler, $parse, $browser) {\n\n function destroyChildScope($event) {\n $event.currentScope.$$destroyed = true;\n }\n\n function cleanUpScope($scope) {\n // The code below works around V8's memory leaks\n //\n // See:\n // - https://code.google.com/p/v8/issues/detail?id=2073#c26\n // - https://github.com/angular/angular.js/issues/6794#issuecomment-38648909\n // - https://github.com/angular/angular.js/issues/1313#issuecomment-10378451\n\n $scope.$parent = $scope.$$nextSibling = $scope.$$prevSibling = $scope.$$childHead =\n $scope.$$childTail = $scope.$root = $scope.$$watchers = null;\n }\n\n /**\n * @ngdoc type\n * @name $rootScope.Scope\n *\n * @description\n * A root scope can be retrieved using the {@link ng.$rootScope $rootScope} key from the\n * {@link auto.$injector $injector}. Child scopes are created using the\n * {@link ng.$rootScope.Scope#$new $new()} method. (Most scopes are created automatically when\n * compiled HTML template is executed.) See also the {@link guide/scope Scopes guide} for\n * an in-depth introduction and usage examples.\n *\n *\n * ## Inheritance\n * A scope can inherit from a parent scope, as in this example:\n * ```js\n var parent = $rootScope;\n var child = parent.$new();\n\n parent.salutation = \"Hello\";\n expect(child.salutation).toEqual('Hello');\n\n child.salutation = \"Welcome\";\n expect(child.salutation).toEqual('Welcome');\n expect(parent.salutation).toEqual('Hello');\n * ```\n *\n * When interacting with `Scope` in tests, additional helper methods are available on the\n * instances of `Scope` type. See {@link ngMock.$rootScope.Scope ngMock Scope} for additional\n * details.\n *\n *\n * @param {Object.=} providers Map of service factory which need to be\n * provided for the current scope. Defaults to {@link ng}.\n * @param {Object.=} instanceCache Provides pre-instantiated services which should\n * append/override services provided by `providers`. This is handy\n * when unit-testing and having the need to override a default\n * service.\n * @returns {Object} Newly created scope.\n *\n */\n function Scope() {\n this.$id = nextUid();\n this.$$phase = this.$parent = this.$$watchers =\n this.$$nextSibling = this.$$prevSibling =\n this.$$childHead = this.$$childTail = null;\n this.$root = this;\n this.$$destroyed = false;\n this.$$suspended = false;\n this.$$listeners = {};\n this.$$listenerCount = {};\n this.$$watchersCount = 0;\n this.$$isolateBindings = null;\n }\n\n /**\n * @ngdoc property\n * @name $rootScope.Scope#$id\n *\n * @description\n * Unique scope ID (monotonically increasing) useful for debugging.\n */\n\n /**\n * @ngdoc property\n * @name $rootScope.Scope#$parent\n *\n * @description\n * Reference to the parent scope.\n */\n\n /**\n * @ngdoc property\n * @name $rootScope.Scope#$root\n *\n * @description\n * Reference to the root scope.\n */\n\n Scope.prototype = {\n constructor: Scope,\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$new\n * @kind function\n *\n * @description\n * Creates a new child {@link ng.$rootScope.Scope scope}.\n *\n * The parent scope will propagate the {@link ng.$rootScope.Scope#$digest $digest()} event.\n * The scope can be removed from the scope hierarchy using {@link ng.$rootScope.Scope#$destroy $destroy()}.\n *\n * {@link ng.$rootScope.Scope#$destroy $destroy()} must be called on a scope when it is\n * desired for the scope and its child scopes to be permanently detached from the parent and\n * thus stop participating in model change detection and listener notification by invoking.\n *\n * @param {boolean} isolate If true, then the scope does not prototypically inherit from the\n * parent scope. The scope is isolated, as it can not see parent scope properties.\n * When creating widgets, it is useful for the widget to not accidentally read parent\n * state.\n *\n * @param {Scope} [parent=this] The {@link ng.$rootScope.Scope `Scope`} that will be the `$parent`\n * of the newly created scope. Defaults to `this` scope if not provided.\n * This is used when creating a transclude scope to correctly place it\n * in the scope hierarchy while maintaining the correct prototypical\n * inheritance.\n *\n * @returns {Object} The newly created child scope.\n *\n */\n $new(isolate, parent) {\n var child;\n\n parent = parent || this;\n\n if (isolate) {\n child = new Scope();\n child.$root = this.$root;\n } else {\n // Only create a child scope class if somebody asks for one,\n // but cache it to allow the VM to optimize lookups.\n if (!this.$$ChildScope) {\n this.$$ChildScope = createChildScopeClass(this);\n }\n child = new this.$$ChildScope();\n }\n child.$parent = parent;\n child.$$prevSibling = parent.$$childTail;\n if (parent.$$childHead) {\n parent.$$childTail.$$nextSibling = child;\n parent.$$childTail = child;\n } else {\n parent.$$childHead = parent.$$childTail = child;\n }\n\n // When the new scope is not isolated or we inherit from `this`, and\n // the parent scope is destroyed, the property `$$destroyed` is inherited\n // prototypically. In all other cases, this property needs to be set\n // when the parent scope is destroyed.\n // The listener needs to be added after the parent is set\n if (isolate || parent !== this) child.$on('$destroy', destroyChildScope);\n\n return child;\n },\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$watch\n * @kind function\n *\n * @description\n * Registers a `listener` callback to be executed whenever the `watchExpression` changes.\n *\n * - The `watchExpression` is called on every call to {@link ng.$rootScope.Scope#$digest\n * $digest()} and should return the value that will be watched. (`watchExpression` should not change\n * its value when executed multiple times with the same input because it may be executed multiple\n * times by {@link ng.$rootScope.Scope#$digest $digest()}. That is, `watchExpression` should be\n * [idempotent](http://en.wikipedia.org/wiki/Idempotence).)\n * - The `listener` is called only when the value from the current `watchExpression` and the\n * previous call to `watchExpression` are not equal (with the exception of the initial run,\n * see below). Inequality is determined according to reference inequality,\n * [strict comparison](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators)\n * via the `!==` Javascript operator, unless `objectEquality == true`\n * (see next point)\n * - When `objectEquality == true`, inequality of the `watchExpression` is determined\n * according to the {@link angular.equals} function. To save the value of the object for\n * later comparison, the {@link angular.copy} function is used. This therefore means that\n * watching complex objects will have adverse memory and performance implications.\n * - This should not be used to watch for changes in objects that are\n * or contain [File](https://developer.mozilla.org/docs/Web/API/File) objects due to limitations with {@link angular.copy `angular.copy`}.\n * - The watch `listener` may change the model, which may trigger other `listener`s to fire.\n * This is achieved by rerunning the watchers until no changes are detected. The rerun\n * iteration limit is 10 to prevent an infinite loop deadlock.\n *\n *\n * If you want to be notified whenever {@link ng.$rootScope.Scope#$digest $digest} is called,\n * you can register a `watchExpression` function with no `listener`. (Be prepared for\n * multiple calls to your `watchExpression` because it will execute multiple times in a\n * single {@link ng.$rootScope.Scope#$digest $digest} cycle if a change is detected.)\n *\n * After a watcher is registered with the scope, the `listener` fn is called asynchronously\n * (via {@link ng.$rootScope.Scope#$evalAsync $evalAsync}) to initialize the\n * watcher. In rare cases, this is undesirable because the listener is called when the result\n * of `watchExpression` didn't change. To detect this scenario within the `listener` fn, you\n * can compare the `newVal` and `oldVal`. If these two values are identical (`===`) then the\n * listener was called due to initialization.\n *\n *\n *\n * @example\n * ```js\n // let's assume that scope was dependency injected as the $rootScope\n var scope = $rootScope;\n scope.name = 'misko';\n scope.counter = 0;\n\n expect(scope.counter).toEqual(0);\n scope.$watch('name', function(newValue, oldValue) {\n scope.counter = scope.counter + 1;\n });\n expect(scope.counter).toEqual(0);\n\n scope.$digest();\n // the listener is always called during the first $digest loop after it was registered\n expect(scope.counter).toEqual(1);\n\n scope.$digest();\n // but now it will not be called unless the value changes\n expect(scope.counter).toEqual(1);\n\n scope.name = 'adam';\n scope.$digest();\n expect(scope.counter).toEqual(2);\n\n\n\n // Using a function as a watchExpression\n var food;\n scope.foodCounter = 0;\n expect(scope.foodCounter).toEqual(0);\n scope.$watch(\n // This function returns the value being watched. It is called for each turn of the $digest loop\n function() { return food; },\n // This is the change listener, called when the value returned from the above function changes\n function(newValue, oldValue) {\n if ( newValue !== oldValue ) {\n // Only increment the counter if the value changed\n scope.foodCounter = scope.foodCounter + 1;\n }\n }\n );\n // No digest has been run so the counter will be zero\n expect(scope.foodCounter).toEqual(0);\n\n // Run the digest but since food has not changed count will still be zero\n scope.$digest();\n expect(scope.foodCounter).toEqual(0);\n\n // Update food and run digest. Now the counter will increment\n food = 'cheeseburger';\n scope.$digest();\n expect(scope.foodCounter).toEqual(1);\n\n * ```\n *\n *\n *\n * @param {(function()|string)} watchExpression Expression that is evaluated on each\n * {@link ng.$rootScope.Scope#$digest $digest} cycle. A change in the return value triggers\n * a call to the `listener`.\n *\n * - `string`: Evaluated as {@link guide/expression expression}\n * - `function(scope)`: called with current `scope` as a parameter.\n * @param {function(newVal, oldVal, scope)} listener Callback called whenever the value\n * of `watchExpression` changes.\n *\n * - `newVal` contains the current value of the `watchExpression`\n * - `oldVal` contains the previous value of the `watchExpression`\n * - `scope` refers to the current scope\n * @param {boolean=} [objectEquality=false] Compare for object equality using {@link angular.equals} instead of\n * comparing for reference equality.\n * @returns {function()} Returns a deregistration function for this listener.\n */\n $watch(watchExp, listener, objectEquality, prettyPrintExpression) {\n var get = $parse(watchExp);\n var fn = isFunction(listener) ? listener : noop;\n\n if (get.$$watchDelegate) {\n return get.$$watchDelegate(this, fn, objectEquality, get, watchExp);\n }\n var scope = this;\n var array = scope.$$watchers;\n\n var watcher = {\n fn: fn,\n last: initWatchVal,\n get: get,\n exp: prettyPrintExpression || watchExp,\n eq: !!objectEquality\n };\n\n lastDirtyWatch = null;\n\n if (!array) {\n array = scope.$$watchers = [];\n array.$$digestWatchIndex = -1;\n }\n // we use unshift since we use a while loop in $digest for speed.\n // the while loop reads in reverse order.\n array.unshift(watcher);\n array.$$digestWatchIndex++;\n incrementWatchersCount(this, 1);\n\n return function deregisterWatch() {\n var index = arrayRemove(array, watcher);\n if (index >= 0) {\n incrementWatchersCount(scope, -1);\n if (index < array.$$digestWatchIndex) {\n array.$$digestWatchIndex--;\n }\n }\n lastDirtyWatch = null;\n };\n },\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$watchGroup\n * @kind function\n *\n * @description\n * A variant of {@link ng.$rootScope.Scope#$watch $watch()} where it watches an array of `watchExpressions`.\n * If any one expression in the collection changes the `listener` is executed.\n *\n * - The items in the `watchExpressions` array are observed via the standard `$watch` operation. Their return\n * values are examined for changes on every call to `$digest`.\n * - The `listener` is called whenever any expression in the `watchExpressions` array changes.\n *\n * `$watchGroup` is more performant than watching each expression individually, and should be\n * used when the listener does not need to know which expression has changed.\n * If the listener needs to know which expression has changed,\n * {@link ng.$rootScope.Scope#$watch $watch()} or\n * {@link ng.$rootScope.Scope#$watchCollection $watchCollection()} should be used.\n *\n * @param {Array.} watchExpressions Array of expressions that will be individually\n * watched using {@link ng.$rootScope.Scope#$watch $watch()}\n *\n * @param {function(newValues, oldValues, scope)} listener Callback called whenever the return value of any\n * expression in `watchExpressions` changes\n * The `newValues` array contains the current values of the `watchExpressions`, with the indexes matching\n * those of `watchExpression`\n * and the `oldValues` array contains the previous values of the `watchExpressions`, with the indexes matching\n * those of `watchExpression`.\n *\n * Note that `newValues` and `oldValues` reflect the differences in each **individual**\n * expression, and not the difference of the values between each call of the listener.\n * That means the difference between `newValues` and `oldValues` cannot be used to determine\n * which expression has changed / remained stable:\n *\n * ```js\n *\n * $scope.$watchGroup(['v1', 'v2'], function(newValues, oldValues) {\n * console.log(newValues, oldValues);\n * });\n *\n * // newValues, oldValues initially\n * // [undefined, undefined], [undefined, undefined]\n *\n * $scope.v1 = 'a';\n * $scope.v2 = 'a';\n *\n * // ['a', 'a'], [undefined, undefined]\n *\n * $scope.v2 = 'b'\n *\n * // v1 hasn't changed since it became `'a'`, therefore its oldValue is still `undefined`\n * // ['a', 'b'], [undefined, 'a']\n *\n * ```\n *\n * The `scope` refers to the current scope.\n * @returns {function()} Returns a de-registration function for all listeners.\n */\n $watchGroup(watchExpressions, listener) {\n var oldValues = new Array(watchExpressions.length);\n var newValues = new Array(watchExpressions.length);\n var deregisterFns = [];\n var self = this;\n var changeReactionScheduled = false;\n var firstRun = true;\n\n if (!watchExpressions.length) {\n // No expressions means we call the listener ASAP\n var shouldCall = true;\n self.$evalAsync(function() {\n if (shouldCall) listener(newValues, newValues, self);\n });\n return function deregisterWatchGroup() {\n shouldCall = false;\n };\n }\n\n if (watchExpressions.length === 1) {\n // Special case size of one\n return this.$watch(watchExpressions[0], function watchGroupAction(value, oldValue, scope) {\n newValues[0] = value;\n oldValues[0] = oldValue;\n listener(newValues, (value === oldValue) ? newValues : oldValues, scope);\n });\n }\n\n forEach(watchExpressions, function(expr, i) {\n var unwatchFn = self.$watch(expr, function watchGroupSubAction(value, oldValue) {\n newValues[i] = value;\n oldValues[i] = oldValue;\n if (!changeReactionScheduled) {\n changeReactionScheduled = true;\n self.$evalAsync(watchGroupAction);\n }\n });\n deregisterFns.push(unwatchFn);\n });\n\n function watchGroupAction() {\n changeReactionScheduled = false;\n\n if (firstRun) {\n firstRun = false;\n listener(newValues, newValues, self);\n } else {\n listener(newValues, oldValues, self);\n }\n }\n\n return function deregisterWatchGroup() {\n while (deregisterFns.length) {\n deregisterFns.shift()();\n }\n };\n },\n\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$watchCollection\n * @kind function\n *\n * @description\n * Shallow watches the properties of an object and fires whenever any of the properties change\n * (for arrays, this implies watching the array items; for object maps, this implies watching\n * the properties). If a change is detected, the `listener` callback is fired.\n *\n * - The `obj` collection is observed via standard $watch operation and is examined on every\n * call to $digest() to see if any items have been added, removed, or moved.\n * - The `listener` is called whenever anything within the `obj` has changed. Examples include\n * adding, removing, and moving items belonging to an object or array.\n *\n *\n * @example\n * ```js\n $scope.names = ['igor', 'matias', 'misko', 'james'];\n $scope.dataCount = 4;\n\n $scope.$watchCollection('names', function(newNames, oldNames) {\n $scope.dataCount = newNames.length;\n });\n\n expect($scope.dataCount).toEqual(4);\n $scope.$digest();\n\n //still at 4 ... no changes\n expect($scope.dataCount).toEqual(4);\n\n $scope.names.pop();\n $scope.$digest();\n\n //now there's been a change\n expect($scope.dataCount).toEqual(3);\n * ```\n *\n *\n * @param {string|function(scope)} obj Evaluated as {@link guide/expression expression}. The\n * expression value should evaluate to an object or an array which is observed on each\n * {@link ng.$rootScope.Scope#$digest $digest} cycle. Any shallow change within the\n * collection will trigger a call to the `listener`.\n *\n * @param {function(newCollection, oldCollection, scope)} listener a callback function called\n * when a change is detected.\n * - The `newCollection` object is the newly modified data obtained from the `obj` expression\n * - The `oldCollection` object is a copy of the former collection data.\n * Due to performance considerations, the`oldCollection` value is computed only if the\n * `listener` function declares two or more arguments.\n * - The `scope` argument refers to the current scope.\n *\n * @returns {function()} Returns a de-registration function for this listener. When the\n * de-registration function is executed, the internal watch operation is terminated.\n */\n $watchCollection(obj, listener) {\n $watchCollectionInterceptor.$stateful = true;\n\n var self = this;\n // the current value, updated on each dirty-check run\n var newValue;\n // a shallow copy of the newValue from the last dirty-check run,\n // updated to match newValue during dirty-check run\n var oldValue;\n // a shallow copy of the newValue from when the last change happened\n var veryOldValue;\n // only track veryOldValue if the listener is asking for it\n var trackVeryOldValue = (listener.length > 1);\n var changeDetected = 0;\n var changeDetector = $parse(obj, $watchCollectionInterceptor);\n var internalArray = [];\n var internalObject = {};\n var initRun = true;\n var oldLength = 0;\n\n function $watchCollectionInterceptor(_value) {\n newValue = _value;\n var newLength;\n var key;\n var bothNaN;\n var newItem;\n var oldItem;\n\n // If the new value is undefined, then return undefined as the watch may be a one-time watch\n if (isUndefined(newValue)) return;\n\n if (!isObject(newValue)) { // if primitive\n if (oldValue !== newValue) {\n oldValue = newValue;\n changeDetected++;\n }\n } else if (isArrayLike(newValue)) {\n if (oldValue !== internalArray) {\n // we are transitioning from something which was not an array into array.\n oldValue = internalArray;\n oldLength = oldValue.length = 0;\n changeDetected++;\n }\n\n newLength = newValue.length;\n\n if (oldLength !== newLength) {\n // if lengths do not match we need to trigger change notification\n changeDetected++;\n oldValue.length = oldLength = newLength;\n }\n // copy the items to oldValue and look for changes.\n for (var i = 0; i < newLength; i++) {\n oldItem = oldValue[i];\n newItem = newValue[i];\n\n // eslint-disable-next-line no-self-compare\n bothNaN = (oldItem !== oldItem) && (newItem !== newItem);\n if (!bothNaN && (oldItem !== newItem)) {\n changeDetected++;\n oldValue[i] = newItem;\n }\n }\n } else {\n if (oldValue !== internalObject) {\n // we are transitioning from something which was not an object into object.\n oldValue = internalObject = {};\n oldLength = 0;\n changeDetected++;\n }\n // copy the items to oldValue and look for changes.\n newLength = 0;\n for (key in newValue) {\n if (hasOwnProperty.call(newValue, key)) {\n newLength++;\n newItem = newValue[key];\n oldItem = oldValue[key];\n\n if (key in oldValue) {\n // eslint-disable-next-line no-self-compare\n bothNaN = (oldItem !== oldItem) && (newItem !== newItem);\n if (!bothNaN && (oldItem !== newItem)) {\n changeDetected++;\n oldValue[key] = newItem;\n }\n } else {\n oldLength++;\n oldValue[key] = newItem;\n changeDetected++;\n }\n }\n }\n if (oldLength > newLength) {\n // we used to have more keys, need to find them and destroy them.\n changeDetected++;\n for (key in oldValue) {\n if (!hasOwnProperty.call(newValue, key)) {\n oldLength--;\n delete oldValue[key];\n }\n }\n }\n }\n return changeDetected;\n }\n\n function $watchCollectionAction() {\n if (initRun) {\n initRun = false;\n listener(newValue, newValue, self);\n } else {\n listener(newValue, veryOldValue, self);\n }\n\n // make a copy for the next time a collection is changed\n if (trackVeryOldValue) {\n if (!isObject(newValue)) {\n //primitive\n veryOldValue = newValue;\n } else if (isArrayLike(newValue)) {\n veryOldValue = new Array(newValue.length);\n for (var i = 0; i < newValue.length; i++) {\n veryOldValue[i] = newValue[i];\n }\n } else { // if object\n veryOldValue = {};\n for (var key in newValue) {\n if (hasOwnProperty.call(newValue, key)) {\n veryOldValue[key] = newValue[key];\n }\n }\n }\n }\n }\n\n return this.$watch(changeDetector, $watchCollectionAction);\n },\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$digest\n * @kind function\n *\n * @description\n * Processes all of the {@link ng.$rootScope.Scope#$watch watchers} of the current scope and\n * its children. Because a {@link ng.$rootScope.Scope#$watch watcher}'s listener can change\n * the model, the `$digest()` keeps calling the {@link ng.$rootScope.Scope#$watch watchers}\n * until no more listeners are firing. This means that it is possible to get into an infinite\n * loop. This function will throw `'Maximum iteration limit exceeded.'` if the number of\n * iterations exceeds 10.\n *\n * Usually, you don't call `$digest()` directly in\n * {@link ng.directive:ngController controllers} or in\n * {@link ng.$compileProvider#directive directives}.\n * Instead, you should call {@link ng.$rootScope.Scope#$apply $apply()} (typically from within\n * a {@link ng.$compileProvider#directive directive}), which will force a `$digest()`.\n *\n * If you want to be notified whenever `$digest()` is called,\n * you can register a `watchExpression` function with\n * {@link ng.$rootScope.Scope#$watch $watch()} with no `listener`.\n *\n * In unit tests, you may need to call `$digest()` to simulate the scope life cycle.\n *\n * @example\n * ```js\n var scope = ...;\n scope.name = 'misko';\n scope.counter = 0;\n\n expect(scope.counter).toEqual(0);\n scope.$watch('name', function(newValue, oldValue) {\n scope.counter = scope.counter + 1;\n });\n expect(scope.counter).toEqual(0);\n\n scope.$digest();\n // the listener is always called during the first $digest loop after it was registered\n expect(scope.counter).toEqual(1);\n\n scope.$digest();\n // but now it will not be called unless the value changes\n expect(scope.counter).toEqual(1);\n\n scope.name = 'adam';\n scope.$digest();\n expect(scope.counter).toEqual(2);\n * ```\n *\n */\n $digest() {\n var watch;\n var value;\n var last;\n var fn;\n var get;\n var watchers;\n var dirty;\n var ttl = TTL;\n var next;\n var current;\n var target = this;\n var watchLog = [];\n var logIdx;\n var asyncTask;\n\n beginPhase('$digest');\n // Check for changes to browser url that happened in sync before the call to $digest\n $browser.$$checkUrlChange();\n\n if (this === $rootScope && applyAsyncId !== null) {\n // If this is the root scope, and $applyAsync has scheduled a deferred $apply(), then\n // cancel the scheduled $apply and flush the queue of expressions to be evaluated.\n $browser.defer.cancel(applyAsyncId);\n flushApplyAsync();\n }\n\n lastDirtyWatch = null;\n\n do { // \"while dirty\" loop\n dirty = false;\n current = target;\n\n // It's safe for asyncQueuePosition to be a local variable here because this loop can't\n // be reentered recursively. Calling $digest from a function passed to $evalAsync would\n // lead to a '$digest already in progress' error.\n for (var asyncQueuePosition = 0; asyncQueuePosition < asyncQueue.length; asyncQueuePosition++) {\n try {\n asyncTask = asyncQueue[asyncQueuePosition];\n fn = asyncTask.fn;\n fn(asyncTask.scope, asyncTask.locals);\n } catch (e) {\n $exceptionHandler(e);\n }\n lastDirtyWatch = null;\n }\n asyncQueue.length = 0;\n\n traverseScopesLoop:\n do { // \"traverse the scopes\" loop\n if ((watchers = !current.$$suspended && current.$$watchers)) {\n // process our watches\n watchers.$$digestWatchIndex = watchers.length;\n while (watchers.$$digestWatchIndex--) {\n try {\n watch = watchers[watchers.$$digestWatchIndex];\n // Most common watches are on primitives, in which case we can short\n // circuit it with === operator, only when === fails do we use .equals\n if (watch) {\n get = watch.get;\n if ((value = get(current)) !== (last = watch.last) &&\n !(watch.eq\n ? equals(value, last)\n : (isNumberNaN(value) && isNumberNaN(last)))) {\n dirty = true;\n lastDirtyWatch = watch;\n watch.last = watch.eq ? copy(value, null) : value;\n fn = watch.fn;\n fn(value, ((last === initWatchVal) ? value : last), current);\n if (ttl < 5) {\n logIdx = 4 - ttl;\n if (!watchLog[logIdx]) watchLog[logIdx] = [];\n watchLog[logIdx].push({\n msg: isFunction(watch.exp) ? 'fn: ' + (watch.exp.name || watch.exp.toString()) : watch.exp,\n newVal: value,\n oldVal: last\n });\n }\n } else if (watch === lastDirtyWatch) {\n // If the most recently dirty watcher is now clean, short circuit since the remaining watchers\n // have already been tested.\n dirty = false;\n break traverseScopesLoop;\n }\n }\n } catch (e) {\n $exceptionHandler(e);\n }\n }\n }\n\n // Insanity Warning: scope depth-first traversal\n // yes, this code is a bit crazy, but it works and we have tests to prove it!\n // this piece should be kept in sync with the traversal in $broadcast\n // (though it differs due to having the extra check for $$suspended and does not\n // check $$listenerCount)\n if (!(next = ((!current.$$suspended && current.$$watchersCount && current.$$childHead) ||\n (current !== target && current.$$nextSibling)))) {\n while (current !== target && !(next = current.$$nextSibling)) {\n current = current.$parent;\n }\n }\n } while ((current = next));\n\n // `break traverseScopesLoop;` takes us to here\n\n if ((dirty || asyncQueue.length) && !(ttl--)) {\n clearPhase();\n throw $rootScopeMinErr('infdig',\n '{0} $digest() iterations reached. Aborting!\\n' +\n 'Watchers fired in the last 5 iterations: {1}',\n TTL, watchLog);\n }\n\n } while (dirty || asyncQueue.length);\n\n clearPhase();\n\n // postDigestQueuePosition isn't local here because this loop can be reentered recursively.\n while (postDigestQueuePosition < postDigestQueue.length) {\n try {\n postDigestQueue[postDigestQueuePosition++]();\n } catch (e) {\n $exceptionHandler(e);\n }\n }\n postDigestQueue.length = postDigestQueuePosition = 0;\n\n // Check for changes to browser url that happened during the $digest\n // (for which no event is fired; e.g. via `history.pushState()`)\n $browser.$$checkUrlChange();\n },\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$suspend\n * @kind function\n *\n * @description\n * Suspend watchers of this scope subtree so that they will not be invoked during digest.\n *\n * This can be used to optimize your application when you know that running those watchers\n * is redundant.\n *\n * **Warning**\n *\n * Suspending scopes from the digest cycle can have unwanted and difficult to debug results.\n * Only use this approach if you are confident that you know what you are doing and have\n * ample tests to ensure that bindings get updated as you expect.\n *\n * Some of the things to consider are:\n *\n * * Any external event on a directive/component will not trigger a digest while the hosting\n * scope is suspended - even if the event handler calls `$apply()` or `$rootScope.$digest()`.\n * * Transcluded content exists on a scope that inherits from outside a directive but exists\n * as a child of the directive's containing scope. If the containing scope is suspended the\n * transcluded scope will also be suspended, even if the scope from which the transcluded\n * scope inherits is not suspended.\n * * Multiple directives trying to manage the suspended status of a scope can confuse each other:\n * * A call to `$suspend()` on an already suspended scope is a no-op.\n * * A call to `$resume()` on a non-suspended scope is a no-op.\n * * If two directives suspend a scope, then one of them resumes the scope, the scope will no\n * longer be suspended. This could result in the other directive believing a scope to be\n * suspended when it is not.\n * * If a parent scope is suspended then all its descendants will be also excluded from future\n * digests whether or not they have been suspended themselves. Note that this also applies to\n * isolate child scopes.\n * * Calling `$digest()` directly on a descendant of a suspended scope will still run the watchers\n * for that scope and its descendants. When digesting we only check whether the current scope is\n * locally suspended, rather than checking whether it has a suspended ancestor.\n * * Calling `$resume()` on a scope that has a suspended ancestor will not cause the scope to be\n * included in future digests until all its ancestors have been resumed.\n * * Resolved promises, e.g. from explicit `$q` deferreds and `$http` calls, trigger `$apply()`\n * against the `$rootScope` and so will still trigger a global digest even if the promise was\n * initiated by a component that lives on a suspended scope.\n */\n $suspend() {\n this.$$suspended = true;\n },\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$isSuspended\n * @kind function\n *\n * @description\n * Call this method to determine if this scope has been explicitly suspended. It will not\n * tell you whether an ancestor has been suspended.\n * To determine if this scope will be excluded from a digest triggered at the $rootScope,\n * for example, you must check all its ancestors:\n *\n * ```\n * function isExcludedFromDigest(scope) {\n * while(scope) {\n * if (scope.$isSuspended()) return true;\n * scope = scope.$parent;\n * }\n * return false;\n * ```\n *\n * Be aware that a scope may not be included in digests if it has a suspended ancestor,\n * even if `$isSuspended()` returns false.\n *\n * @returns true if the current scope has been suspended.\n */\n $isSuspended() {\n return this.$$suspended;\n },\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$resume\n * @kind function\n *\n * @description\n * Resume watchers of this scope subtree in case it was suspended.\n *\n * See {@link $rootScope.Scope#$suspend} for information about the dangers of using this approach.\n */\n $resume() {\n this.$$suspended = false;\n },\n\n /**\n * @ngdoc event\n * @name $rootScope.Scope#$destroy\n * @eventType broadcast on scope being destroyed\n *\n * @description\n * Broadcasted when a scope and its children are being destroyed.\n *\n * Note that, in AngularJS, there is also a `$destroy` jQuery event, which can be used to\n * clean up DOM bindings before an element is removed from the DOM.\n */\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$destroy\n * @kind function\n *\n * @description\n * Removes the current scope (and all of its children) from the parent scope. Removal implies\n * that calls to {@link ng.$rootScope.Scope#$digest $digest()} will no longer\n * propagate to the current scope and its children. Removal also implies that the current\n * scope is eligible for garbage collection.\n *\n * The `$destroy()` is usually used by directives such as\n * {@link ng.directive:ngRepeat ngRepeat} for managing the\n * unrolling of the loop.\n *\n * Just before a scope is destroyed, a `$destroy` event is broadcasted on this scope.\n * Application code can register a `$destroy` event handler that will give it a chance to\n * perform any necessary cleanup.\n *\n * Note that, in AngularJS, there is also a `$destroy` jQuery event, which can be used to\n * clean up DOM bindings before an element is removed from the DOM.\n */\n $destroy() {\n // We can't destroy a scope that has been already destroyed.\n if (this.$$destroyed) return;\n var parent = this.$parent;\n\n this.$broadcast('$destroy');\n this.$$destroyed = true;\n\n if (this === $rootScope) {\n //Remove handlers attached to window when $rootScope is removed\n $browser.$$applicationDestroyed();\n }\n\n incrementWatchersCount(this, -this.$$watchersCount);\n for (var eventName in this.$$listenerCount) {\n decrementListenerCount(this, this.$$listenerCount[eventName], eventName);\n }\n\n // sever all the references to parent scopes (after this cleanup, the current scope should\n // not be retained by any of our references and should be eligible for garbage collection)\n if (parent && parent.$$childHead === this) parent.$$childHead = this.$$nextSibling;\n if (parent && parent.$$childTail === this) parent.$$childTail = this.$$prevSibling;\n if (this.$$prevSibling) this.$$prevSibling.$$nextSibling = this.$$nextSibling;\n if (this.$$nextSibling) this.$$nextSibling.$$prevSibling = this.$$prevSibling;\n\n // Disable listeners, watchers and apply/digest methods\n this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = noop;\n this.$on = this.$watch = this.$watchGroup = function() { return noop; };\n this.$$listeners = {};\n\n // Disconnect the next sibling to prevent `cleanUpScope` destroying those too\n this.$$nextSibling = null;\n cleanUpScope(this);\n },\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$eval\n * @kind function\n *\n * @description\n * Executes the `expression` on the current scope and returns the result. Any exceptions in\n * the expression are propagated (uncaught). This is useful when evaluating AngularJS\n * expressions.\n *\n * @example\n * ```js\n var scope = ng.$rootScope.Scope();\n scope.a = 1;\n scope.b = 2;\n\n expect(scope.$eval('a+b')).toEqual(3);\n expect(scope.$eval(function(scope){ return scope.a + scope.b; })).toEqual(3);\n * ```\n *\n * @param {(string|function())=} expression An AngularJS expression to be executed.\n *\n * - `string`: execute using the rules as defined in {@link guide/expression expression}.\n * - `function(scope)`: execute the function with the current `scope` parameter.\n *\n * @param {(object)=} locals Local variables object, useful for overriding values in scope.\n * @returns {*} The result of evaluating the expression.\n */\n $eval(expr, locals) {\n return $parse(expr)(this, locals);\n },\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$evalAsync\n * @kind function\n *\n * @description\n * Executes the expression on the current scope at a later point in time.\n *\n * The `$evalAsync` makes no guarantees as to when the `expression` will be executed, only\n * that:\n *\n * - it will execute after the function that scheduled the evaluation (preferably before DOM\n * rendering).\n * - at least one {@link ng.$rootScope.Scope#$digest $digest cycle} will be performed after\n * `expression` execution.\n *\n * Any exceptions from the execution of the expression are forwarded to the\n * {@link ng.$exceptionHandler $exceptionHandler} service.\n *\n * __Note:__ if this function is called outside of a `$digest` cycle, a new `$digest` cycle\n * will be scheduled. However, it is encouraged to always call code that changes the model\n * from within an `$apply` call. That includes code evaluated via `$evalAsync`.\n *\n * @param {(string|function())=} expression An AngularJS expression to be executed.\n *\n * - `string`: execute using the rules as defined in {@link guide/expression expression}.\n * - `function(scope)`: execute the function with the current `scope` parameter.\n *\n * @param {(object)=} locals Local variables object, useful for overriding values in scope.\n */\n $evalAsync(expr, locals) {\n // if we are outside of an $digest loop and this is the first time we are scheduling async\n // task also schedule async auto-flush\n if (!$rootScope.$$phase && !asyncQueue.length) {\n $browser.defer(function() {\n if (asyncQueue.length) {\n $rootScope.$digest();\n }\n });\n }\n\n asyncQueue.push({scope: this, fn: $parse(expr), locals: locals});\n },\n\n $$postDigest(fn) {\n postDigestQueue.push(fn);\n },\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$apply\n * @kind function\n *\n * @description\n * `$apply()` is used to execute an expression in AngularJS from outside of the AngularJS\n * framework. (For example from browser DOM events, setTimeout, XHR or third party libraries).\n * Because we are calling into the AngularJS framework we need to perform proper scope life\n * cycle of {@link ng.$exceptionHandler exception handling},\n * {@link ng.$rootScope.Scope#$digest executing watches}.\n *\n * **Life cycle: Pseudo-Code of `$apply()`**\n *\n * ```js\n function $apply(expr) {\n try {\n return $eval(expr);\n } catch (e) {\n $exceptionHandler(e);\n } finally {\n $root.$digest();\n }\n }\n * ```\n *\n *\n * Scope's `$apply()` method transitions through the following stages:\n *\n * 1. The {@link guide/expression expression} is executed using the\n * {@link ng.$rootScope.Scope#$eval $eval()} method.\n * 2. Any exceptions from the execution of the expression are forwarded to the\n * {@link ng.$exceptionHandler $exceptionHandler} service.\n * 3. The {@link ng.$rootScope.Scope#$watch watch} listeners are fired immediately after the\n * expression was executed using the {@link ng.$rootScope.Scope#$digest $digest()} method.\n *\n *\n * @param {(string|function())=} exp An AngularJS expression to be executed.\n *\n * - `string`: execute using the rules as defined in {@link guide/expression expression}.\n * - `function(scope)`: execute the function with current `scope` parameter.\n *\n * @returns {*} The result of evaluating the expression.\n */\n $apply(expr) {\n try {\n beginPhase('$apply');\n try {\n return this.$eval(expr);\n } finally {\n clearPhase();\n }\n } catch (e) {\n $exceptionHandler(e);\n } finally {\n try {\n $rootScope.$digest();\n } catch (e) {\n $exceptionHandler(e);\n // eslint-disable-next-line no-unsafe-finally\n throw e;\n }\n }\n },\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$applyAsync\n * @kind function\n *\n * @description\n * Schedule the invocation of $apply to occur at a later time. The actual time difference\n * varies across browsers, but is typically around ~10 milliseconds.\n *\n * This can be used to queue up multiple expressions which need to be evaluated in the same\n * digest.\n *\n * @param {(string|function())=} exp An AngularJS expression to be executed.\n *\n * - `string`: execute using the rules as defined in {@link guide/expression expression}.\n * - `function(scope)`: execute the function with current `scope` parameter.\n */\n $applyAsync(expr) {\n var scope = this;\n if (expr) {\n applyAsyncQueue.push($applyAsyncExpression);\n }\n expr = $parse(expr);\n scheduleApplyAsync();\n\n function $applyAsyncExpression() {\n scope.$eval(expr);\n }\n },\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$on\n * @kind function\n *\n * @description\n * Listens on events of a given type. See {@link ng.$rootScope.Scope#$emit $emit} for\n * discussion of event life cycle.\n *\n * The event listener function format is: `function(event, args...)`. The `event` object\n * passed into the listener has the following attributes:\n *\n * - `targetScope` - `{Scope}`: the scope on which the event was `$emit`-ed or\n * `$broadcast`-ed.\n * - `currentScope` - `{Scope}`: the scope that is currently handling the event. Once the\n * event propagates through the scope hierarchy, this property is set to null.\n * - `name` - `{string}`: name of the event.\n * - `stopPropagation` - `{function=}`: calling `stopPropagation` function will cancel\n * further event propagation (available only for events that were `$emit`-ed).\n * - `preventDefault` - `{function}`: calling `preventDefault` sets `defaultPrevented` flag\n * to true.\n * - `defaultPrevented` - `{boolean}`: true if `preventDefault` was called.\n *\n * @param {string} name Event name to listen on.\n * @param {function(event, ...args)} listener Function to call when the event is emitted.\n * @returns {function()} Returns a deregistration function for this listener.\n */\n $on(name, listener) {\n var namedListeners = this.$$listeners[name];\n if (!namedListeners) {\n this.$$listeners[name] = namedListeners = [];\n }\n namedListeners.push(listener);\n\n var current = this;\n do {\n if (!current.$$listenerCount[name]) {\n current.$$listenerCount[name] = 0;\n }\n current.$$listenerCount[name]++;\n } while ((current = current.$parent));\n\n var self = this;\n return function() {\n var indexOfListener = namedListeners.indexOf(listener);\n if (indexOfListener !== -1) {\n // Use delete in the hope of the browser deallocating the memory for the array entry,\n // while not shifting the array indexes of other listeners.\n // See issue https://github.com/angular/angular.js/issues/16135\n delete namedListeners[indexOfListener];\n decrementListenerCount(self, 1, name);\n }\n };\n },\n\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$emit\n * @kind function\n *\n * @description\n * Dispatches an event `name` upwards through the scope hierarchy notifying the\n * registered {@link ng.$rootScope.Scope#$on} listeners.\n *\n * The event life cycle starts at the scope on which `$emit` was called. All\n * {@link ng.$rootScope.Scope#$on listeners} listening for `name` event on this scope get\n * notified. Afterwards, the event traverses upwards toward the root scope and calls all\n * registered listeners along the way. The event will stop propagating if one of the listeners\n * cancels it.\n *\n * Any exception emitted from the {@link ng.$rootScope.Scope#$on listeners} will be passed\n * onto the {@link ng.$exceptionHandler $exceptionHandler} service.\n *\n * @param {string} name Event name to emit.\n * @param {...*} args Optional one or more arguments which will be passed onto the event listeners.\n * @return {Object} Event object (see {@link ng.$rootScope.Scope#$on}).\n */\n $emit(name, args) {\n var empty = [];\n var namedListeners;\n var scope = this;\n var stopPropagation = false;\n\n var event = {\n name: name,\n targetScope: scope,\n stopPropagation() {stopPropagation = true;},\n preventDefault() {\n event.defaultPrevented = true;\n },\n defaultPrevented: false\n };\n\n var listenerArgs = concat([event], arguments, 1);\n var i;\n var length;\n\n do {\n namedListeners = scope.$$listeners[name] || empty;\n event.currentScope = scope;\n for (i = 0, length = namedListeners.length; i < length; i++) {\n\n // if listeners were deregistered, defragment the array\n if (!namedListeners[i]) {\n namedListeners.splice(i, 1);\n i--;\n length--;\n continue;\n }\n try {\n //allow all listeners attached to the current scope to run\n namedListeners[i].apply(null, listenerArgs);\n } catch (e) {\n $exceptionHandler(e);\n }\n }\n //if any listener on the current scope stops propagation, prevent bubbling\n if (stopPropagation) {\n break;\n }\n //traverse upwards\n scope = scope.$parent;\n } while (scope);\n\n event.currentScope = null;\n\n return event;\n },\n\n\n /**\n * @ngdoc method\n * @name $rootScope.Scope#$broadcast\n * @kind function\n *\n * @description\n * Dispatches an event `name` downwards to all child scopes (and their children) notifying the\n * registered {@link ng.$rootScope.Scope#$on} listeners.\n *\n * The event life cycle starts at the scope on which `$broadcast` was called. All\n * {@link ng.$rootScope.Scope#$on listeners} listening for `name` event on this scope get\n * notified. Afterwards, the event propagates to all direct and indirect scopes of the current\n * scope and calls all registered listeners along the way. The event cannot be canceled.\n *\n * Any exception emitted from the {@link ng.$rootScope.Scope#$on listeners} will be passed\n * onto the {@link ng.$exceptionHandler $exceptionHandler} service.\n *\n * @param {string} name Event name to broadcast.\n * @param {...*} args Optional one or more arguments which will be passed onto the event listeners.\n * @return {Object} Event object, see {@link ng.$rootScope.Scope#$on}\n */\n $broadcast(name, args) {\n var target = this;\n var current = target;\n var next = target;\n\n var event = {\n name: name,\n targetScope: target,\n preventDefault() {\n event.defaultPrevented = true;\n },\n defaultPrevented: false\n };\n\n if (!target.$$listenerCount[name]) return event;\n\n var listenerArgs = concat([event], arguments, 1);\n var listeners;\n var i;\n var length;\n\n //down while you can, then up and next sibling or up and next sibling until back at root\n while ((current = next)) {\n event.currentScope = current;\n listeners = current.$$listeners[name] || [];\n for (i = 0, length = listeners.length; i < length; i++) {\n // if listeners were deregistered, defragment the array\n if (!listeners[i]) {\n listeners.splice(i, 1);\n i--;\n length--;\n continue;\n }\n\n try {\n listeners[i].apply(null, listenerArgs);\n } catch (e) {\n $exceptionHandler(e);\n }\n }\n\n // Insanity Warning: scope depth-first traversal\n // yes, this code is a bit crazy, but it works and we have tests to prove it!\n // this piece should be kept in sync with the traversal in $digest\n // (though it differs due to having the extra check for $$listenerCount and\n // does not check $$suspended)\n if (!(next = ((current.$$listenerCount[name] && current.$$childHead) ||\n (current !== target && current.$$nextSibling)))) {\n while (current !== target && !(next = current.$$nextSibling)) {\n current = current.$parent;\n }\n }\n }\n\n event.currentScope = null;\n return event;\n }\n };\n\n var $rootScope = new Scope();\n\n //The internal queues. Expose them on the $rootScope for debugging/testing purposes.\n var asyncQueue = $rootScope.$$asyncQueue = [];\n var postDigestQueue = $rootScope.$$postDigestQueue = [];\n var applyAsyncQueue = $rootScope.$$applyAsyncQueue = [];\n\n var postDigestQueuePosition = 0;\n\n return $rootScope;\n\n\n function beginPhase(phase) {\n if ($rootScope.$$phase) {\n throw $rootScopeMinErr('inprog', '{0} already in progress', $rootScope.$$phase);\n }\n\n $rootScope.$$phase = phase;\n }\n\n function clearPhase() {\n $rootScope.$$phase = null;\n }\n\n function incrementWatchersCount(current, count) {\n do {\n current.$$watchersCount += count;\n } while ((current = current.$parent));\n }\n\n function decrementListenerCount(current, count, name) {\n do {\n current.$$listenerCount[name] -= count;\n\n if (current.$$listenerCount[name] === 0) {\n delete current.$$listenerCount[name];\n }\n } while ((current = current.$parent));\n }\n\n /**\n * function used as an initial value for watchers.\n * because it's unique we can easily tell it apart from other values\n */\n function initWatchVal() {}\n\n function flushApplyAsync() {\n while (applyAsyncQueue.length) {\n try {\n applyAsyncQueue.shift()();\n } catch (e) {\n $exceptionHandler(e);\n }\n }\n applyAsyncId = null;\n }\n\n function scheduleApplyAsync() {\n if (applyAsyncId === null) {\n applyAsyncId = $browser.defer(function() {\n $rootScope.$apply(flushApplyAsync);\n });\n }\n }\n }];\n}\n'use strict';\n\n/**\n * @ngdoc service\n * @name $rootElement\n *\n * @description\n * The root element of AngularJS application. This is either the element where {@link\n * ng.directive:ngApp ngApp} was declared or the element passed into\n * {@link angular.bootstrap}. The element represents the root element of application. It is also the\n * location where the application's {@link auto.$injector $injector} service gets\n * published, and can be retrieved using `$rootElement.injector()`.\n */\n\n\n// the implementation is in angular.bootstrap\n'use strict';\n\n/**\n * @this\n * @description\n * Private service to sanitize uris for links and images. Used by $compile and $sanitize.\n */\nfunction $$SanitizeUriProvider() {\n var aHrefSanitizationWhitelist = /^\\s*(https?|s?ftp|mailto|tel|file):/;\n var imgSrcSanitizationWhitelist = /^\\s*((https?|ftp|file|blob):|data:image\\/)/;\n\n /**\n * @description\n * Retrieves or overrides the default regular expression that is used for whitelisting of safe\n * urls during a[href] sanitization.\n *\n * The sanitization is a security measure aimed at prevent XSS attacks via html links.\n *\n * Any url about to be assigned to a[href] via data-binding is first normalized and turned into\n * an absolute url. Afterwards, the url is matched against the `aHrefSanitizationWhitelist`\n * regular expression. If a match is found, the original url is written into the dom. Otherwise,\n * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM.\n *\n * @param {RegExp=} regexp New regexp to whitelist urls with.\n * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for\n * chaining otherwise.\n */\n this.aHrefSanitizationWhitelist = function(regexp) {\n if (isDefined(regexp)) {\n aHrefSanitizationWhitelist = regexp;\n return this;\n }\n return aHrefSanitizationWhitelist;\n };\n\n\n /**\n * @description\n * Retrieves or overrides the default regular expression that is used for whitelisting of safe\n * urls during img[src] sanitization.\n *\n * The sanitization is a security measure aimed at prevent XSS attacks via html links.\n *\n * Any url about to be assigned to img[src] via data-binding is first normalized and turned into\n * an absolute url. Afterwards, the url is matched against the `imgSrcSanitizationWhitelist`\n * regular expression. If a match is found, the original url is written into the dom. Otherwise,\n * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM.\n *\n * @param {RegExp=} regexp New regexp to whitelist urls with.\n * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for\n * chaining otherwise.\n */\n this.imgSrcSanitizationWhitelist = function(regexp) {\n if (isDefined(regexp)) {\n imgSrcSanitizationWhitelist = regexp;\n return this;\n }\n return imgSrcSanitizationWhitelist;\n };\n\n this.$get = function() {\n return function sanitizeUri(uri, isImage) {\n var regex = isImage ? imgSrcSanitizationWhitelist : aHrefSanitizationWhitelist;\n var normalizedVal;\n normalizedVal = urlResolve(uri && uri.trim()).href;\n if (normalizedVal !== '' && !normalizedVal.match(regex)) {\n return 'unsafe:' + normalizedVal;\n }\n return uri;\n };\n };\n}\n'use strict';\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Any commits to this file should be reviewed with security in mind. *\n * Changes to this file can potentially create security vulnerabilities. *\n * An approval from 2 Core members with history of modifying *\n * this file is required. *\n * *\n * Does the change somehow allow for arbitrary javascript to be executed? *\n * Or allows for someone to change the prototype of built-in objects? *\n * Or gives undesired access to variables likes document or window? *\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\n/* exported $SceProvider, $SceDelegateProvider */\n\nvar $sceMinErr = minErr('$sce');\n\nvar SCE_CONTEXTS = {\n // HTML is used when there's HTML rendered (e.g. ng-bind-html, iframe srcdoc binding).\n HTML: 'html',\n\n // Style statements or stylesheets. Currently unused in AngularJS.\n CSS: 'css',\n\n // An URL used in a context where it does not refer to a resource that loads code. Currently\n // unused in AngularJS.\n URL: 'url',\n\n // RESOURCE_URL is a subtype of URL used where the referred-to resource could be interpreted as\n // code. (e.g. ng-include, script src binding, templateUrl)\n RESOURCE_URL: 'resourceUrl',\n\n // Script. Currently unused in AngularJS.\n JS: 'js'\n};\n\n// Helper functions follow.\n\nvar UNDERSCORE_LOWERCASE_REGEXP = /_([a-z])/g;\n\nfunction snakeToCamel(name) {\n return name\n .replace(UNDERSCORE_LOWERCASE_REGEXP, fnCamelCaseReplace);\n}\n\nfunction adjustMatcher(matcher) {\n if (matcher === 'self') {\n return matcher;\n } else if (isString(matcher)) {\n // Strings match exactly except for 2 wildcards - '*' and '**'.\n // '*' matches any character except those from the set ':/.?&'.\n // '**' matches any character (like .* in a RegExp).\n // More than 2 *'s raises an error as it's ill defined.\n if (matcher.includes('***')) {\n throw $sceMinErr('iwcard',\n 'Illegal sequence *** in string matcher. String: {0}', matcher);\n }\n matcher = escapeForRegexp(matcher).\n replace(/\\\\\\*\\\\\\*/g, '.*').\n replace(/\\\\\\*/g, '[^:/.?&;]*');\n return new RegExp('^' + matcher + '$');\n } else if (isRegExp(matcher)) {\n // The only other type of matcher allowed is a Regexp.\n // Match entire URL / disallow partial matches.\n // Flags are reset (i.e. no global, ignoreCase or multiline)\n return new RegExp('^' + matcher.source + '$');\n } else {\n throw $sceMinErr('imatcher',\n 'Matchers may only be \"self\", string patterns or RegExp objects');\n }\n}\n\n\nfunction adjustMatchers(matchers) {\n var adjustedMatchers = [];\n if (isDefined(matchers)) {\n forEach(matchers, function(matcher) {\n adjustedMatchers.push(adjustMatcher(matcher));\n });\n }\n return adjustedMatchers;\n}\n\n\n/**\n * @ngdoc service\n * @name $sceDelegate\n * @kind function\n *\n * @description\n *\n * `$sceDelegate` is a service that is used by the `$sce` service to provide {@link ng.$sce Strict\n * Contextual Escaping (SCE)} services to AngularJS.\n *\n * For an overview of this service and the functionnality it provides in AngularJS, see the main\n * page for {@link ng.$sce SCE}. The current page is targeted for developers who need to alter how\n * SCE works in their application, which shouldn't be needed in most cases.\n *\n *
\n * AngularJS strongly relies on contextual escaping for the security of bindings: disabling or\n * modifying this might cause cross site scripting (XSS) vulnerabilities. For libraries owners,\n * changes to this service will also influence users, so be extra careful and document your changes.\n *
\n *\n * Typically, you would configure or override the {@link ng.$sceDelegate $sceDelegate} instead of\n * the `$sce` service to customize the way Strict Contextual Escaping works in AngularJS. This is\n * because, while the `$sce` provides numerous shorthand methods, etc., you really only need to\n * override 3 core functions (`trustAs`, `getTrusted` and `valueOf`) to replace the way things\n * work because `$sce` delegates to `$sceDelegate` for these operations.\n *\n * Refer {@link ng.$sceDelegateProvider $sceDelegateProvider} to configure this service.\n *\n * The default instance of `$sceDelegate` should work out of the box with little pain. While you\n * can override it completely to change the behavior of `$sce`, the common case would\n * involve configuring the {@link ng.$sceDelegateProvider $sceDelegateProvider} instead by setting\n * your own whitelists and blacklists for trusting URLs used for loading AngularJS resources such as\n * templates. Refer {@link ng.$sceDelegateProvider#resourceUrlWhitelist\n * $sceDelegateProvider.resourceUrlWhitelist} and {@link\n * ng.$sceDelegateProvider#resourceUrlBlacklist $sceDelegateProvider.resourceUrlBlacklist}\n */\n\n/**\n * @ngdoc provider\n * @name $sceDelegateProvider\n * @this\n *\n * @description\n *\n * The `$sceDelegateProvider` provider allows developers to configure the {@link ng.$sceDelegate\n * $sceDelegate service}, used as a delegate for {@link ng.$sce Strict Contextual Escaping (SCE)}.\n *\n * The `$sceDelegateProvider` allows one to get/set the whitelists and blacklists used to ensure\n * that the URLs used for sourcing AngularJS templates and other script-running URLs are safe (all\n * places that use the `$sce.RESOURCE_URL` context). See\n * {@link ng.$sceDelegateProvider#resourceUrlWhitelist $sceDelegateProvider.resourceUrlWhitelist}\n * and\n * {@link ng.$sceDelegateProvider#resourceUrlBlacklist $sceDelegateProvider.resourceUrlBlacklist},\n *\n * For the general details about this service in AngularJS, read the main page for {@link ng.$sce\n * Strict Contextual Escaping (SCE)}.\n *\n * **Example**: Consider the following case.
\n *\n * - your app is hosted at url `http://myapp.example.com/`\n * - but some of your templates are hosted on other domains you control such as\n * `http://srv01.assets.example.com/`, `http://srv02.assets.example.com/`, etc.\n * - and you have an open redirect at `http://myapp.example.com/clickThru?...`.\n *\n * Here is what a secure configuration for this scenario might look like:\n *\n * ```\n * angular.module('myApp', []).config(function($sceDelegateProvider) {\n * $sceDelegateProvider.resourceUrlWhitelist([\n * // Allow same origin resource loads.\n * 'self',\n * // Allow loading from our assets domain. Notice the difference between * and **.\n * 'http://srv*.assets.example.com/**'\n * ]);\n *\n * // The blacklist overrides the whitelist so the open redirect here is blocked.\n * $sceDelegateProvider.resourceUrlBlacklist([\n * 'http://myapp.example.com/clickThru**'\n * ]);\n * });\n * ```\n * Note that an empty whitelist will block every resource URL from being loaded, and will require\n * you to manually mark each one as trusted with `$sce.trustAsResourceUrl`. However, templates\n * requested by {@link ng.$templateRequest $templateRequest} that are present in\n * {@link ng.$templateCache $templateCache} will not go through this check. If you have a mechanism\n * to populate your templates in that cache at config time, then it is a good idea to remove 'self'\n * from that whitelist. This helps to mitigate the security impact of certain types of issues, like\n * for instance attacker-controlled `ng-includes`.\n */\n\nfunction $SceDelegateProvider() {\n this.SCE_CONTEXTS = SCE_CONTEXTS;\n\n // Resource URLs can also be trusted by policy.\n var resourceUrlWhitelist = ['self'];\n\n var resourceUrlBlacklist = [];\n\n /**\n * @ngdoc method\n * @name $sceDelegateProvider#resourceUrlWhitelist\n * @kind function\n *\n * @param {Array=} whitelist When provided, replaces the resourceUrlWhitelist with the value\n * provided. This must be an array or null. A snapshot of this array is used so further\n * changes to the array are ignored.\n * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items\n * allowed in this array.\n *\n * @return {Array} The currently set whitelist array.\n *\n * @description\n * Sets/Gets the whitelist of trusted resource URLs.\n *\n * The **default value** when no whitelist has been explicitly set is `['self']` allowing only\n * same origin resource requests.\n *\n *
\n * **Note:** the default whitelist of 'self' is not recommended if your app shares its origin\n * with other apps! It is a good idea to limit it to only your application's directory.\n *
\n */\n this.resourceUrlWhitelist = function(value) {\n if (arguments.length) {\n resourceUrlWhitelist = adjustMatchers(value);\n }\n return resourceUrlWhitelist;\n };\n\n /**\n * @ngdoc method\n * @name $sceDelegateProvider#resourceUrlBlacklist\n * @kind function\n *\n * @param {Array=} blacklist When provided, replaces the resourceUrlBlacklist with the value\n * provided. This must be an array or null. A snapshot of this array is used so further\n * changes to the array are ignored.

\n * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items\n * allowed in this array.

\n * The typical usage for the blacklist is to **block\n * [open redirects](http://cwe.mitre.org/data/definitions/601.html)** served by your domain as\n * these would otherwise be trusted but actually return content from the redirected domain.\n *

\n * Finally, **the blacklist overrides the whitelist** and has the final say.\n *\n * @return {Array} The currently set blacklist array.\n *\n * @description\n * Sets/Gets the blacklist of trusted resource URLs.\n *\n * The **default value** when no whitelist has been explicitly set is the empty array (i.e. there\n * is no blacklist.)\n */\n\n this.resourceUrlBlacklist = function(value) {\n if (arguments.length) {\n resourceUrlBlacklist = adjustMatchers(value);\n }\n return resourceUrlBlacklist;\n };\n\n this.$get = ['$injector', function($injector) {\n var htmlSanitizer = function htmlSanitizer(html) {\n throw $sceMinErr('unsafe', 'Attempting to use an unsafe value in a safe context.');\n };\n\n if ($injector.has('$sanitize')) {\n htmlSanitizer = $injector.get('$sanitize');\n }\n\n\n function matchUrl(matcher, parsedUrl) {\n if (matcher === 'self') {\n return urlIsSameOrigin(parsedUrl);\n } else {\n // definitely a regex. See adjustMatchers()\n return !!matcher.exec(parsedUrl.href);\n }\n }\n\n function isResourceUrlAllowedByPolicy(url) {\n var parsedUrl = urlResolve(url.toString());\n var i;\n var n;\n var allowed = false;\n // Ensure that at least one item from the whitelist allows this url.\n for (i = 0, n = resourceUrlWhitelist.length; i < n; i++) {\n if (matchUrl(resourceUrlWhitelist[i], parsedUrl)) {\n allowed = true;\n break;\n }\n }\n if (allowed) {\n // Ensure that no item from the blacklist blocked this url.\n for (i = 0, n = resourceUrlBlacklist.length; i < n; i++) {\n if (matchUrl(resourceUrlBlacklist[i], parsedUrl)) {\n allowed = false;\n break;\n }\n }\n }\n return allowed;\n }\n\n function generateHolderType(Base) {\n var holderType = function TrustedValueHolderType(trustedValue) {\n this.$$unwrapTrustedValue = function() {\n return trustedValue;\n };\n };\n if (Base) {\n holderType.prototype = new Base();\n }\n holderType.prototype.valueOf = function sceValueOf() {\n return this.$$unwrapTrustedValue();\n };\n holderType.prototype.toString = function sceToString() {\n return this.$$unwrapTrustedValue().toString();\n };\n return holderType;\n }\n\n var trustedValueHolderBase = generateHolderType();\n var byType = {};\n\n byType[SCE_CONTEXTS.HTML] = generateHolderType(trustedValueHolderBase);\n byType[SCE_CONTEXTS.CSS] = generateHolderType(trustedValueHolderBase);\n byType[SCE_CONTEXTS.URL] = generateHolderType(trustedValueHolderBase);\n byType[SCE_CONTEXTS.JS] = generateHolderType(trustedValueHolderBase);\n byType[SCE_CONTEXTS.RESOURCE_URL] = generateHolderType(byType[SCE_CONTEXTS.URL]);\n\n /**\n * @ngdoc method\n * @name $sceDelegate#trustAs\n *\n * @description\n * Returns a trusted representation of the parameter for the specified context. This trusted\n * object will later on be used as-is, without any security check, by bindings or directives\n * that require this security context.\n * For instance, marking a string as trusted for the `$sce.HTML` context will entirely bypass\n * the potential `$sanitize` call in corresponding `$sce.HTML` bindings or directives, such as\n * `ng-bind-html`. Note that in most cases you won't need to call this function: if you have the\n * sanitizer loaded, passing the value itself will render all the HTML that does not pose a\n * security risk.\n *\n * See {@link ng.$sceDelegate#getTrusted getTrusted} for the function that will consume those\n * trusted values, and {@link ng.$sce $sce} for general documentation about strict contextual\n * escaping.\n *\n * @param {string} type The context in which this value is safe for use, e.g. `$sce.URL`,\n * `$sce.RESOURCE_URL`, `$sce.HTML`, `$sce.JS` or `$sce.CSS`.\n *\n * @param {*} value The value that should be considered trusted.\n * @return {*} A trusted representation of value, that can be used in the given context.\n */\n function trustAs(type, trustedValue) {\n var Constructor = (byType.hasOwnProperty(type) ? byType[type] : null);\n if (!Constructor) {\n throw $sceMinErr('icontext',\n 'Attempted to trust a value in invalid context. Context: {0}; Value: {1}',\n type, trustedValue);\n }\n if (trustedValue === null || isUndefined(trustedValue) || trustedValue === '') {\n return trustedValue;\n }\n // All the current contexts in SCE_CONTEXTS happen to be strings. In order to avoid trusting\n // mutable objects, we ensure here that the value passed in is actually a string.\n if (typeof trustedValue !== 'string') {\n throw $sceMinErr('itype',\n 'Attempted to trust a non-string value in a content requiring a string: Context: {0}',\n type);\n }\n return new Constructor(trustedValue);\n }\n\n /**\n * @ngdoc method\n * @name $sceDelegate#valueOf\n *\n * @description\n * If the passed parameter had been returned by a prior call to {@link ng.$sceDelegate#trustAs\n * `$sceDelegate.trustAs`}, returns the value that had been passed to {@link\n * ng.$sceDelegate#trustAs `$sceDelegate.trustAs`}.\n *\n * If the passed parameter is not a value that had been returned by {@link\n * ng.$sceDelegate#trustAs `$sceDelegate.trustAs`}, it must be returned as-is.\n *\n * @param {*} value The result of a prior {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs`}\n * call or anything else.\n * @return {*} The `value` that was originally provided to {@link ng.$sceDelegate#trustAs\n * `$sceDelegate.trustAs`} if `value` is the result of such a call. Otherwise, returns\n * `value` unchanged.\n */\n function valueOf(maybeTrusted) {\n if (maybeTrusted instanceof trustedValueHolderBase) {\n return maybeTrusted.$$unwrapTrustedValue();\n } else {\n return maybeTrusted;\n }\n }\n\n /**\n * @ngdoc method\n * @name $sceDelegate#getTrusted\n *\n * @description\n * Takes any input, and either returns a value that's safe to use in the specified context, or\n * throws an exception.\n *\n * In practice, there are several cases. When given a string, this function runs checks\n * and sanitization to make it safe without prior assumptions. When given the result of a {@link\n * ng.$sceDelegate#trustAs `$sceDelegate.trustAs`} call, it returns the originally supplied\n * value if that value's context is valid for this call's context. Finally, this function can\n * also throw when there is no way to turn `maybeTrusted` in a safe value (e.g., no sanitization\n * is available or possible.)\n *\n * @param {string} type The context in which this value is to be used (such as `$sce.HTML`).\n * @param {*} maybeTrusted The result of a prior {@link ng.$sceDelegate#trustAs\n * `$sceDelegate.trustAs`} call, or anything else (which will not be considered trusted.)\n * @return {*} A version of the value that's safe to use in the given context, or throws an\n * exception if this is impossible.\n */\n function getTrusted(type, maybeTrusted) {\n if (maybeTrusted === null || isUndefined(maybeTrusted) || maybeTrusted === '') {\n return maybeTrusted;\n }\n var constructor = (byType.hasOwnProperty(type) ? byType[type] : null);\n // If maybeTrusted is a trusted class instance or subclass instance, then unwrap and return\n // as-is.\n if (constructor && maybeTrusted instanceof constructor) {\n return maybeTrusted.$$unwrapTrustedValue();\n }\n // Otherwise, if we get here, then we may either make it safe, or throw an exception. This\n // depends on the context: some are sanitizatible (HTML), some use whitelists (RESOURCE_URL),\n // some are impossible to do (JS). This step isn't implemented for CSS and URL, as AngularJS\n // has no corresponding sinks.\n if (type === SCE_CONTEXTS.RESOURCE_URL) {\n // RESOURCE_URL uses a whitelist.\n if (isResourceUrlAllowedByPolicy(maybeTrusted)) {\n return maybeTrusted;\n } else {\n throw $sceMinErr('insecurl',\n 'Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}',\n maybeTrusted.toString());\n }\n } else if (type === SCE_CONTEXTS.HTML) {\n // htmlSanitizer throws its own error when no sanitizer is available.\n return htmlSanitizer(maybeTrusted);\n }\n // Default error when the $sce service has no way to make the input safe.\n throw $sceMinErr('unsafe', 'Attempting to use an unsafe value in a safe context.');\n }\n\n return { trustAs: trustAs,\n getTrusted: getTrusted,\n valueOf: valueOf };\n }];\n}\n\n\n/**\n * @ngdoc provider\n * @name $sceProvider\n * @this\n *\n * @description\n *\n * The $sceProvider provider allows developers to configure the {@link ng.$sce $sce} service.\n * - enable/disable Strict Contextual Escaping (SCE) in a module\n * - override the default implementation with a custom delegate\n *\n * Read more about {@link ng.$sce Strict Contextual Escaping (SCE)}.\n */\n\n/**\n * @ngdoc service\n * @name $sce\n * @kind function\n *\n * @description\n *\n * `$sce` is a service that provides Strict Contextual Escaping services to AngularJS.\n *\n * ## Strict Contextual Escaping\n *\n * Strict Contextual Escaping (SCE) is a mode in which AngularJS constrains bindings to only render\n * trusted values. Its goal is to assist in writing code in a way that (a) is secure by default, and\n * (b) makes auditing for security vulnerabilities such as XSS, clickjacking, etc. a lot easier.\n *\n * ### Overview\n *\n * To systematically block XSS security bugs, AngularJS treats all values as untrusted by default in\n * HTML or sensitive URL bindings. When binding untrusted values, AngularJS will automatically\n * run security checks on them (sanitizations, whitelists, depending on context), or throw when it\n * cannot guarantee the security of the result. That behavior depends strongly on contexts: HTML\n * can be sanitized, but template URLs cannot, for instance.\n *\n * To illustrate this, consider the `ng-bind-html` directive. It renders its value directly as HTML:\n * we call that the *context*. When given an untrusted input, AngularJS will attempt to sanitize it\n * before rendering if a sanitizer is available, and throw otherwise. To bypass sanitization and\n * render the input as-is, you will need to mark it as trusted for that context before attempting\n * to bind it.\n *\n * As of version 1.2, AngularJS ships with SCE enabled by default.\n *\n * ### In practice\n *\n * Here's an example of a binding in a privileged context:\n *\n * ```\n * \n *

\n * ```\n *\n * Notice that `ng-bind-html` is bound to `userHtml` controlled by the user. With SCE\n * disabled, this application allows the user to render arbitrary HTML into the DIV, which would\n * be an XSS security bug. In a more realistic example, one may be rendering user comments, blog\n * articles, etc. via bindings. (HTML is just one example of a context where rendering user\n * controlled input creates security vulnerabilities.)\n *\n * For the case of HTML, you might use a library, either on the client side, or on the server side,\n * to sanitize unsafe HTML before binding to the value and rendering it in the document.\n *\n * How would you ensure that every place that used these types of bindings was bound to a value that\n * was sanitized by your library (or returned as safe for rendering by your server?) How can you\n * ensure that you didn't accidentally delete the line that sanitized the value, or renamed some\n * properties/fields and forgot to update the binding to the sanitized value?\n *\n * To be secure by default, AngularJS makes sure bindings go through that sanitization, or\n * any similar validation process, unless there's a good reason to trust the given value in this\n * context. That trust is formalized with a function call. This means that as a developer, you\n * can assume all untrusted bindings are safe. Then, to audit your code for binding security issues,\n * you just need to ensure the values you mark as trusted indeed are safe - because they were\n * received from your server, sanitized by your library, etc. You can organize your codebase to\n * help with this - perhaps allowing only the files in a specific directory to do this.\n * Ensuring that the internal API exposed by that code doesn't markup arbitrary values as safe then\n * becomes a more manageable task.\n *\n * In the case of AngularJS' SCE service, one uses {@link ng.$sce#trustAs $sce.trustAs}\n * (and shorthand methods such as {@link ng.$sce#trustAsHtml $sce.trustAsHtml}, etc.) to\n * build the trusted versions of your values.\n *\n * ### How does it work?\n *\n * In privileged contexts, directives and code will bind to the result of {@link ng.$sce#getTrusted\n * $sce.getTrusted(context, value)} rather than to the value directly. Think of this function as\n * a way to enforce the required security context in your data sink. Directives use {@link\n * ng.$sce#parseAs $sce.parseAs} rather than `$parse` to watch attribute bindings, which performs\n * the {@link ng.$sce#getTrusted $sce.getTrusted} behind the scenes on non-constant literals. Also,\n * when binding without directives, AngularJS will understand the context of your bindings\n * automatically.\n *\n * As an example, {@link ng.directive:ngBindHtml ngBindHtml} uses {@link\n * ng.$sce#parseAsHtml $sce.parseAsHtml(binding expression)}. Here's the actual code (slightly\n * simplified):\n *\n * ```\n * var ngBindHtmlDirective = ['$sce', function($sce) {\n * return function(scope, element, attr) {\n * scope.$watch($sce.parseAsHtml(attr.ngBindHtml), function(value) {\n * element.html(value || '');\n * });\n * };\n * }];\n * ```\n *\n * ### Impact on loading templates\n *\n * This applies both to the {@link ng.directive:ngInclude `ng-include`} directive as well as\n * `templateUrl`'s specified by {@link guide/directive directives}.\n *\n * By default, AngularJS only loads templates from the same domain and protocol as the application\n * document. This is done by calling {@link ng.$sce#getTrustedResourceUrl\n * $sce.getTrustedResourceUrl} on the template URL. To load templates from other domains and/or\n * protocols, you may either {@link ng.$sceDelegateProvider#resourceUrlWhitelist whitelist\n * them} or {@link ng.$sce#trustAsResourceUrl wrap it} into a trusted value.\n *\n * *Please note*:\n * The browser's\n * [Same Origin Policy](https://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_XMLHttpRequest)\n * and [Cross-Origin Resource Sharing (CORS)](http://www.w3.org/TR/cors/)\n * policy apply in addition to this and may further restrict whether the template is successfully\n * loaded. This means that without the right CORS policy, loading templates from a different domain\n * won't work on all browsers. Also, loading templates from `file://` URL does not work on some\n * browsers.\n *\n * ### This feels like too much overhead\n *\n * It's important to remember that SCE only applies to interpolation expressions.\n *\n * If your expressions are constant literals, they're automatically trusted and you don't need to\n * call `$sce.trustAs` on them (e.g.\n * `
implicitly trusted'\">
`) just works. The `$sceDelegate` will\n * also use the `$sanitize` service if it is available when binding untrusted values to\n * `$sce.HTML` context. AngularJS provides an implementation in `angular-sanitize.js`, and if you\n * wish to use it, you will also need to depend on the {@link ngSanitize `ngSanitize`} module in\n * your application.\n *\n * The included {@link ng.$sceDelegate $sceDelegate} comes with sane defaults to allow you to load\n * templates in `ng-include` from your application's domain without having to even know about SCE.\n * It blocks loading templates from other domains or loading templates over http from an https\n * served document. You can change these by setting your own custom {@link\n * ng.$sceDelegateProvider#resourceUrlWhitelist whitelists} and {@link\n * ng.$sceDelegateProvider#resourceUrlBlacklist blacklists} for matching such URLs.\n *\n * This significantly reduces the overhead. It is far easier to pay the small overhead and have an\n * application that's secure and can be audited to verify that with much more ease than bolting\n * security onto an application later.\n *\n * \n * ### What trusted context types are supported?\n *\n * | Context | Notes |\n * |---------------------|----------------|\n * | `$sce.HTML` | For HTML that's safe to source into the application. The {@link ng.directive:ngBindHtml ngBindHtml} directive uses this context for bindings. If an unsafe value is encountered, and the {@link ngSanitize.$sanitize $sanitize} service is available (implemented by the {@link ngSanitize ngSanitize} module) this will sanitize the value instead of throwing an error. |\n * | `$sce.CSS` | For CSS that's safe to source into the application. Currently, no bindings require this context. Feel free to use it in your own directives. |\n * | `$sce.URL` | For URLs that are safe to follow as links. Currently unused (`
Note that `$sce.RESOURCE_URL` makes a stronger statement about the URL than `$sce.URL` does (it's not just the URL that matters, but also what is at the end of it), and therefore contexts requiring values trusted for `$sce.RESOURCE_URL` can be used anywhere that values trusted for `$sce.URL` are required. |\n * | `$sce.JS` | For JavaScript that is safe to execute in your application's context. Currently, no bindings require this context. Feel free to use it in your own directives. |\n *\n *\n * Be aware that `a[href]` and `img[src]` automatically sanitize their URLs and do not pass them\n * through {@link ng.$sce#getTrusted $sce.getTrusted}. There's no CSS-, URL-, or JS-context bindings\n * in AngularJS currently, so their corresponding `$sce.trustAs` functions aren't useful yet. This\n * might evolve.\n *\n * ### Format of items in {@link ng.$sceDelegateProvider#resourceUrlWhitelist resourceUrlWhitelist}/{@link ng.$sceDelegateProvider#resourceUrlBlacklist Blacklist}
\n *\n * Each element in these arrays must be one of the following:\n *\n * - **'self'**\n * - The special **string**, `'self'`, can be used to match against all URLs of the **same\n * domain** as the application document using the **same protocol**.\n * - **String** (except the special value `'self'`)\n * - The string is matched against the full *normalized / absolute URL* of the resource\n * being tested (substring matches are not good enough.)\n * - There are exactly **two wildcard sequences** - `*` and `**`. All other characters\n * match themselves.\n * - `*`: matches zero or more occurrences of any character other than one of the following 6\n * characters: '`:`', '`/`', '`.`', '`?`', '`&`' and '`;`'. It's a useful wildcard for use\n * in a whitelist.\n * - `**`: matches zero or more occurrences of *any* character. As such, it's not\n * appropriate for use in a scheme, domain, etc. as it would match too much. (e.g.\n * http://**.example.com/ would match http://evil.com/?ignore=.example.com/ and that might\n * not have been the intention.) Its usage at the very end of the path is ok. (e.g.\n * http://foo.example.com/templates/**).\n * - **RegExp** (*see caveat below*)\n * - *Caveat*: While regular expressions are powerful and offer great flexibility, their syntax\n * (and all the inevitable escaping) makes them *harder to maintain*. It's easy to\n * accidentally introduce a bug when one updates a complex expression (imho, all regexes should\n * have good test coverage). For instance, the use of `.` in the regex is correct only in a\n * small number of cases. A `.` character in the regex used when matching the scheme or a\n * subdomain could be matched against a `:` or literal `.` that was likely not intended. It\n * is highly recommended to use the string patterns and only fall back to regular expressions\n * as a last resort.\n * - The regular expression must be an instance of RegExp (i.e. not a string.) It is\n * matched against the **entire** *normalized / absolute URL* of the resource being tested\n * (even when the RegExp did not have the `^` and `$` codes.) In addition, any flags\n * present on the RegExp (such as multiline, global, ignoreCase) are ignored.\n * - If you are generating your JavaScript from some other templating engine (not\n * recommended, e.g. in issue [#4006](https://github.com/angular/angular.js/issues/4006)),\n * remember to escape your regular expression (and be aware that you might need more than\n * one level of escaping depending on your templating engine and the way you interpolated\n * the value.) Do make use of your platform's escaping mechanism as it might be good\n * enough before coding your own. E.g. Ruby has\n * [Regexp.escape(str)](http://www.ruby-doc.org/core-2.0.0/Regexp.html#method-c-escape)\n * and Python has [re.escape](http://docs.python.org/library/re.html#re.escape).\n * Javascript lacks a similar built in function for escaping. Take a look at Google\n * Closure library's [goog.string.regExpEscape(s)](\n * http://docs.closure-library.googlecode.com/git/closure_goog_string_string.js.source.html#line962).\n *\n * Refer {@link ng.$sceDelegateProvider $sceDelegateProvider} for an example.\n *\n * ### Show me an example using SCE.\n *\n * \n * \n *
\n *

\n * User comments
\n * By default, HTML that isn't explicitly trusted (e.g. Alice's comment) is sanitized when\n * $sanitize is available. If $sanitize isn't available, this results in an error instead of an\n * exploit.\n *
\n *
\n * {{userComment.name}}:\n * \n *
\n *
\n *
\n *
\n *
\n *\n * \n * angular.module('mySceApp', ['ngSanitize'])\n * .controller('AppController', ['$http', '$templateCache', '$sce',\n * function AppController($http, $templateCache, $sce) {\n * var self = this;\n * $http.get('test_data.json', {cache: $templateCache}).then(function(response) {\n * self.userComments = response.data;\n * });\n * self.explicitlyTrustedHtml = $sce.trustAsHtml(\n * 'Hover over this text.');\n * }]);\n * \n *\n * \n * [\n * { \"name\": \"Alice\",\n * \"htmlComment\":\n * \"Is anyone reading this?\"\n * },\n * { \"name\": \"Bob\",\n * \"htmlComment\": \"Yes! Am I the only other one?\"\n * }\n * ]\n * \n *\n * \n * describe('SCE doc demo', function() {\n * it('should sanitize untrusted values', function() {\n * expect(element.all(by.css('.htmlComment')).first().getAttribute('innerHTML'))\n * .toBe('Is anyone reading this?');\n * });\n *\n * it('should NOT sanitize explicitly trusted values', function() {\n * expect(element(by.id('explicitlyTrustedHtml')).getAttribute('innerHTML')).toBe(\n * 'Hover over this text.');\n * });\n * });\n * \n *
\n *\n *\n *\n * ## Can I disable SCE completely?\n *\n * Yes, you can. However, this is strongly discouraged. SCE gives you a lot of security benefits\n * for little coding overhead. It will be much harder to take an SCE disabled application and\n * either secure it on your own or enable SCE at a later stage. It might make sense to disable SCE\n * for cases where you have a lot of existing code that was written before SCE was introduced and\n * you're migrating them a module at a time. Also do note that this is an app-wide setting, so if\n * you are writing a library, you will cause security bugs applications using it.\n *\n * That said, here's how you can completely disable SCE:\n *\n * ```\n * angular.module('myAppWithSceDisabledmyApp', []).config(function($sceProvider) {\n * // Completely disable SCE. For demonstration purposes only!\n * // Do not use in new projects or libraries.\n * $sceProvider.enabled(false);\n * });\n * ```\n *\n */\n\nfunction $SceProvider() {\n var enabled = true;\n\n /**\n * @ngdoc method\n * @name $sceProvider#enabled\n * @kind function\n *\n * @param {boolean=} value If provided, then enables/disables SCE application-wide.\n * @return {boolean} True if SCE is enabled, false otherwise.\n *\n * @description\n * Enables/disables SCE and returns the current value.\n */\n this.enabled = function(value) {\n if (arguments.length) {\n enabled = !!value;\n }\n return enabled;\n };\n\n\n /* Design notes on the default implementation for SCE.\n *\n * The API contract for the SCE delegate\n * -------------------------------------\n * The SCE delegate object must provide the following 3 methods:\n *\n * - trustAs(contextEnum, value)\n * This method is used to tell the SCE service that the provided value is OK to use in the\n * contexts specified by contextEnum. It must return an object that will be accepted by\n * getTrusted() for a compatible contextEnum and return this value.\n *\n * - valueOf(value)\n * For values that were not produced by trustAs(), return them as is. For values that were\n * produced by trustAs(), return the corresponding input value to trustAs. Basically, if\n * trustAs is wrapping the given values into some type, this operation unwraps it when given\n * such a value.\n *\n * - getTrusted(contextEnum, value)\n * This function should return the a value that is safe to use in the context specified by\n * contextEnum or throw and exception otherwise.\n *\n * NOTE: This contract deliberately does NOT state that values returned by trustAs() must be\n * opaque or wrapped in some holder object. That happens to be an implementation detail. For\n * instance, an implementation could maintain a registry of all trusted objects by context. In\n * such a case, trustAs() would return the same object that was passed in. getTrusted() would\n * return the same object passed in if it was found in the registry under a compatible context or\n * throw an exception otherwise. An implementation might only wrap values some of the time based\n * on some criteria. getTrusted() might return a value and not throw an exception for special\n * constants or objects even if not wrapped. All such implementations fulfill this contract.\n *\n *\n * A note on the inheritance model for SCE contexts\n * ------------------------------------------------\n * I've used inheritance and made RESOURCE_URL wrapped types a subtype of URL wrapped types. This\n * is purely an implementation details.\n *\n * The contract is simply this:\n *\n * getTrusted($sce.RESOURCE_URL, value) succeeding implies that getTrusted($sce.URL, value)\n * will also succeed.\n *\n * Inheritance happens to capture this in a natural way. In some future, we may not use\n * inheritance anymore. That is OK because no code outside of sce.js and sceSpecs.js would need to\n * be aware of this detail.\n */\n\n this.$get = ['$parse', '$sceDelegate', function(\n $parse, $sceDelegate) {\n var sce = shallowCopy(SCE_CONTEXTS);\n\n /**\n * @ngdoc method\n * @name $sce#isEnabled\n * @kind function\n *\n * @return {Boolean} True if SCE is enabled, false otherwise. If you want to set the value, you\n * have to do it at module config time on {@link ng.$sceProvider $sceProvider}.\n *\n * @description\n * Returns a boolean indicating if SCE is enabled.\n */\n sce.isEnabled = function() {\n return enabled;\n };\n sce.trustAs = $sceDelegate.trustAs;\n sce.getTrusted = $sceDelegate.getTrusted;\n sce.valueOf = $sceDelegate.valueOf;\n\n if (!enabled) {\n sce.trustAs = sce.getTrusted = function(type, value) { return value; };\n sce.valueOf = identity;\n }\n\n /**\n * @ngdoc method\n * @name $sce#parseAs\n *\n * @description\n * Converts AngularJS {@link guide/expression expression} into a function. This is like {@link\n * ng.$parse $parse} and is identical when the expression is a literal constant. Otherwise, it\n * wraps the expression in a call to {@link ng.$sce#getTrusted $sce.getTrusted(*type*,\n * *result*)}\n *\n * @param {string} type The SCE context in which this result will be used.\n * @param {string} expression String expression to compile.\n * @return {function(context, locals)} A function which represents the compiled expression:\n *\n * * `context` – `{object}` – an object against which any expressions embedded in the\n * strings are evaluated against (typically a scope object).\n * * `locals` – `{object=}` – local variables context object, useful for overriding values\n * in `context`.\n */\n sce.parseAs = function sceParseAs(type, expr) {\n var parsed = $parse(expr);\n if (parsed.literal && parsed.constant) {\n return parsed;\n } else {\n return $parse(expr, function(value) {\n return sce.getTrusted(type, value);\n });\n }\n };\n\n /**\n * @ngdoc method\n * @name $sce#trustAs\n *\n * @description\n * Delegates to {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs`}. As such, returns a\n * wrapped object that represents your value, and the trust you have in its safety for the given\n * context. AngularJS can then use that value as-is in bindings of the specified secure context.\n * This is used in bindings for `ng-bind-html`, `ng-include`, and most `src` attribute\n * interpolations. See {@link ng.$sce $sce} for strict contextual escaping.\n *\n * @param {string} type The context in which this value is safe for use, e.g. `$sce.URL`,\n * `$sce.RESOURCE_URL`, `$sce.HTML`, `$sce.JS` or `$sce.CSS`.\n *\n * @param {*} value The value that that should be considered trusted.\n * @return {*} A wrapped version of value that can be used as a trusted variant of your `value`\n * in the context you specified.\n */\n\n /**\n * @ngdoc method\n * @name $sce#trustAsHtml\n *\n * @description\n * Shorthand method. `$sce.trustAsHtml(value)` →\n * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.HTML, value)`}\n *\n * @param {*} value The value to mark as trusted for `$sce.HTML` context.\n * @return {*} A wrapped version of value that can be used as a trusted variant of your `value`\n * in `$sce.HTML` context (like `ng-bind-html`).\n */\n\n /**\n * @ngdoc method\n * @name $sce#trustAsCss\n *\n * @description\n * Shorthand method. `$sce.trustAsCss(value)` →\n * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.CSS, value)`}\n *\n * @param {*} value The value to mark as trusted for `$sce.CSS` context.\n * @return {*} A wrapped version of value that can be used as a trusted variant\n * of your `value` in `$sce.CSS` context. This context is currently unused, so there are\n * almost no reasons to use this function so far.\n */\n\n /**\n * @ngdoc method\n * @name $sce#trustAsUrl\n *\n * @description\n * Shorthand method. `$sce.trustAsUrl(value)` →\n * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.URL, value)`}\n *\n * @param {*} value The value to mark as trusted for `$sce.URL` context.\n * @return {*} A wrapped version of value that can be used as a trusted variant of your `value`\n * in `$sce.URL` context. That context is currently unused, so there are almost no reasons\n * to use this function so far.\n */\n\n /**\n * @ngdoc method\n * @name $sce#trustAsResourceUrl\n *\n * @description\n * Shorthand method. `$sce.trustAsResourceUrl(value)` →\n * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.RESOURCE_URL, value)`}\n *\n * @param {*} value The value to mark as trusted for `$sce.RESOURCE_URL` context.\n * @return {*} A wrapped version of value that can be used as a trusted variant of your `value`\n * in `$sce.RESOURCE_URL` context (template URLs in `ng-include`, most `src` attribute\n * bindings, ...)\n */\n\n /**\n * @ngdoc method\n * @name $sce#trustAsJs\n *\n * @description\n * Shorthand method. `$sce.trustAsJs(value)` →\n * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.JS, value)`}\n *\n * @param {*} value The value to mark as trusted for `$sce.JS` context.\n * @return {*} A wrapped version of value that can be used as a trusted variant of your `value`\n * in `$sce.JS` context. That context is currently unused, so there are almost no reasons to\n * use this function so far.\n */\n\n /**\n * @ngdoc method\n * @name $sce#getTrusted\n *\n * @description\n * Delegates to {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted`}. As such,\n * takes any input, and either returns a value that's safe to use in the specified context,\n * or throws an exception. This function is aware of trusted values created by the `trustAs`\n * function and its shorthands, and when contexts are appropriate, returns the unwrapped value\n * as-is. Finally, this function can also throw when there is no way to turn `maybeTrusted` in a\n * safe value (e.g., no sanitization is available or possible.)\n *\n * @param {string} type The context in which this value is to be used.\n * @param {*} maybeTrusted The result of a prior {@link ng.$sce#trustAs\n * `$sce.trustAs`} call, or anything else (which will not be considered trusted.)\n * @return {*} A version of the value that's safe to use in the given context, or throws an\n * exception if this is impossible.\n */\n\n /**\n * @ngdoc method\n * @name $sce#getTrustedHtml\n *\n * @description\n * Shorthand method. `$sce.getTrustedHtml(value)` →\n * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.HTML, value)`}\n *\n * @param {*} value The value to pass to `$sce.getTrusted`.\n * @return {*} The return value of `$sce.getTrusted($sce.HTML, value)`\n */\n\n /**\n * @ngdoc method\n * @name $sce#getTrustedCss\n *\n * @description\n * Shorthand method. `$sce.getTrustedCss(value)` →\n * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.CSS, value)`}\n *\n * @param {*} value The value to pass to `$sce.getTrusted`.\n * @return {*} The return value of `$sce.getTrusted($sce.CSS, value)`\n */\n\n /**\n * @ngdoc method\n * @name $sce#getTrustedUrl\n *\n * @description\n * Shorthand method. `$sce.getTrustedUrl(value)` →\n * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.URL, value)`}\n *\n * @param {*} value The value to pass to `$sce.getTrusted`.\n * @return {*} The return value of `$sce.getTrusted($sce.URL, value)`\n */\n\n /**\n * @ngdoc method\n * @name $sce#getTrustedResourceUrl\n *\n * @description\n * Shorthand method. `$sce.getTrustedResourceUrl(value)` →\n * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.RESOURCE_URL, value)`}\n *\n * @param {*} value The value to pass to `$sceDelegate.getTrusted`.\n * @return {*} The return value of `$sce.getTrusted($sce.RESOURCE_URL, value)`\n */\n\n /**\n * @ngdoc method\n * @name $sce#getTrustedJs\n *\n * @description\n * Shorthand method. `$sce.getTrustedJs(value)` →\n * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.JS, value)`}\n *\n * @param {*} value The value to pass to `$sce.getTrusted`.\n * @return {*} The return value of `$sce.getTrusted($sce.JS, value)`\n */\n\n /**\n * @ngdoc method\n * @name $sce#parseAsHtml\n *\n * @description\n * Shorthand method. `$sce.parseAsHtml(expression string)` →\n * {@link ng.$sce#parseAs `$sce.parseAs($sce.HTML, value)`}\n *\n * @param {string} expression String expression to compile.\n * @return {function(context, locals)} A function which represents the compiled expression:\n *\n * * `context` – `{object}` – an object against which any expressions embedded in the\n * strings are evaluated against (typically a scope object).\n * * `locals` – `{object=}` – local variables context object, useful for overriding values\n * in `context`.\n */\n\n /**\n * @ngdoc method\n * @name $sce#parseAsCss\n *\n * @description\n * Shorthand method. `$sce.parseAsCss(value)` →\n * {@link ng.$sce#parseAs `$sce.parseAs($sce.CSS, value)`}\n *\n * @param {string} expression String expression to compile.\n * @return {function(context, locals)} A function which represents the compiled expression:\n *\n * * `context` – `{object}` – an object against which any expressions embedded in the\n * strings are evaluated against (typically a scope object).\n * * `locals` – `{object=}` – local variables context object, useful for overriding values\n * in `context`.\n */\n\n /**\n * @ngdoc method\n * @name $sce#parseAsUrl\n *\n * @description\n * Shorthand method. `$sce.parseAsUrl(value)` →\n * {@link ng.$sce#parseAs `$sce.parseAs($sce.URL, value)`}\n *\n * @param {string} expression String expression to compile.\n * @return {function(context, locals)} A function which represents the compiled expression:\n *\n * * `context` – `{object}` – an object against which any expressions embedded in the\n * strings are evaluated against (typically a scope object).\n * * `locals` – `{object=}` – local variables context object, useful for overriding values\n * in `context`.\n */\n\n /**\n * @ngdoc method\n * @name $sce#parseAsResourceUrl\n *\n * @description\n * Shorthand method. `$sce.parseAsResourceUrl(value)` →\n * {@link ng.$sce#parseAs `$sce.parseAs($sce.RESOURCE_URL, value)`}\n *\n * @param {string} expression String expression to compile.\n * @return {function(context, locals)} A function which represents the compiled expression:\n *\n * * `context` – `{object}` – an object against which any expressions embedded in the\n * strings are evaluated against (typically a scope object).\n * * `locals` – `{object=}` – local variables context object, useful for overriding values\n * in `context`.\n */\n\n /**\n * @ngdoc method\n * @name $sce#parseAsJs\n *\n * @description\n * Shorthand method. `$sce.parseAsJs(value)` →\n * {@link ng.$sce#parseAs `$sce.parseAs($sce.JS, value)`}\n *\n * @param {string} expression String expression to compile.\n * @return {function(context, locals)} A function which represents the compiled expression:\n *\n * * `context` – `{object}` – an object against which any expressions embedded in the\n * strings are evaluated against (typically a scope object).\n * * `locals` – `{object=}` – local variables context object, useful for overriding values\n * in `context`.\n */\n\n // Shorthand delegations.\n var parse = sce.parseAs;\n\n var getTrusted = sce.getTrusted;\n var trustAs = sce.trustAs;\n\n forEach(SCE_CONTEXTS, function(enumValue, name) {\n var lName = lowercase(name);\n sce[snakeToCamel('parse_as_' + lName)] = function(expr) {\n return parse(enumValue, expr);\n };\n sce[snakeToCamel('get_trusted_' + lName)] = function(value) {\n return getTrusted(enumValue, value);\n };\n sce[snakeToCamel('trust_as_' + lName)] = function(value) {\n return trustAs(enumValue, value);\n };\n });\n\n return sce;\n }];\n}\n'use strict';\n\n/* exported $SnifferProvider */\n\n/**\n * !!! This is an undocumented \"private\" service !!!\n *\n * @name $sniffer\n * @requires $window\n * @requires $document\n * @this\n *\n * @property {boolean} history Does the browser support html5 history api ?\n * @property {boolean} transitions Does the browser support CSS transition events ?\n * @property {boolean} animations Does the browser support CSS animation events ?\n *\n * @description\n * This is very simple implementation of testing browser's features.\n */\nfunction $SnifferProvider() {\n this.$get = ['$window', '$document', function($window, $document) {\n var eventSupport = {};\n\n var // Chrome Packaged Apps are not allowed to access `history.pushState`.\n // If not sandboxed, they can be detected by the presence of `chrome.app.runtime`\n // (see https://developer.chrome.com/apps/api_index). If sandboxed, they can be detected by\n // the presence of an extension runtime ID and the absence of other Chrome runtime APIs\n // (see https://developer.chrome.com/apps/manifest/sandbox).\n // (NW.js apps have access to Chrome APIs, but do support `history`.)\n isNw = $window.nw && $window.nw.process;\n\n var isChromePackagedApp =\n !isNw &&\n $window.chrome &&\n ($window.chrome.app && $window.chrome.app.runtime ||\n !$window.chrome.app && $window.chrome.runtime && $window.chrome.runtime.id);\n\n var hasHistoryPushState = !isChromePackagedApp && $window.history && $window.history.pushState;\n\n var android =\n toInt((/android (\\d+)/.exec(lowercase(($window.navigator || {}).userAgent)) || [])[1]);\n\n var boxee = /Boxee/i.test(($window.navigator || {}).userAgent);\n var document = $document[0] || {};\n var bodyStyle = document.body && document.body.style;\n var transitions = false;\n var animations = false;\n\n if (bodyStyle) {\n // Support: Android <5, Blackberry Browser 10, default Chrome in Android 4.4.x\n // Mentioned browsers need a -webkit- prefix for transitions & animations.\n transitions = !!('transition' in bodyStyle || 'webkitTransition' in bodyStyle);\n animations = !!('animation' in bodyStyle || 'webkitAnimation' in bodyStyle);\n }\n\n\n return {\n // Android has history.pushState, but it does not update location correctly\n // so let's not use the history API at all.\n // http://code.google.com/p/android/issues/detail?id=17471\n // https://github.com/angular/angular.js/issues/904\n\n // older webkit browser (533.9) on Boxee box has exactly the same problem as Android has\n // so let's not use the history API also\n // We are purposefully using `!(android < 4)` to cover the case when `android` is undefined\n history: !!(hasHistoryPushState && !(android < 4) && !boxee),\n hasEvent(event) {\n if (isUndefined(eventSupport[event])) {\n var divElm = document.createElement('div');\n eventSupport[event] = 'on' + event in divElm;\n }\n\n return eventSupport[event];\n },\n csp: csp(),\n transitions: transitions,\n animations: animations,\n android: android\n };\n }];\n}\n'use strict';\n\nvar $templateRequestMinErr = minErr('$compile');\n\n/**\n * @ngdoc provider\n * @name $templateRequestProvider\n * @this\n *\n * @description\n * Used to configure the options passed to the {@link $http} service when making a template request.\n *\n * For example, it can be used for specifying the \"Accept\" header that is sent to the server, when\n * requesting a template.\n */\nfunction $TemplateRequestProvider() {\n\n var httpOptions;\n\n /**\n * @ngdoc method\n * @name $templateRequestProvider#httpOptions\n * @description\n * The options to be passed to the {@link $http} service when making the request.\n * You can use this to override options such as the \"Accept\" header for template requests.\n *\n * The {@link $templateRequest} will set the `cache` and the `transformResponse` properties of the\n * options if not overridden here.\n *\n * @param {string=} value new value for the {@link $http} options.\n * @returns {string|self} Returns the {@link $http} options when used as getter and self if used as setter.\n */\n this.httpOptions = function(val) {\n if (val) {\n httpOptions = val;\n return this;\n }\n return httpOptions;\n };\n\n /**\n * @ngdoc service\n * @name $templateRequest\n *\n * @description\n * The `$templateRequest` service runs security checks then downloads the provided template using\n * `$http` and, upon success, stores the contents inside of `$templateCache`. If the HTTP request\n * fails or the response data of the HTTP request is empty, a `$compile` error will be thrown (the\n * exception can be thwarted by setting the 2nd parameter of the function to true). Note that the\n * contents of `$templateCache` are trusted, so the call to `$sce.getTrustedUrl(tpl)` is omitted\n * when `tpl` is of type string and `$templateCache` has the matching entry.\n *\n * If you want to pass custom options to the `$http` service, such as setting the Accept header you\n * can configure this via {@link $templateRequestProvider#httpOptions}.\n *\n * `$templateRequest` is used internally by {@link $compile}, {@link ngRoute.$route}, and directives such\n * as {@link ngInclude} to download and cache templates.\n *\n * 3rd party modules should use `$templateRequest` if their services or directives are loading\n * templates.\n *\n * @param {string|TrustedResourceUrl} tpl The HTTP request template URL\n * @param {boolean=} ignoreRequestError Whether or not to ignore the exception when the request fails or the template is empty\n *\n * @return {Promise} a promise for the HTTP response data of the given URL.\n *\n * @property {number} totalPendingRequests total amount of pending template requests being downloaded.\n */\n this.$get = ['$exceptionHandler', '$templateCache', '$http', '$q', '$sce',\n function($exceptionHandler, $templateCache, $http, $q, $sce) {\n\n function handleRequestFn(tpl, ignoreRequestError) {\n handleRequestFn.totalPendingRequests++;\n\n // We consider the template cache holds only trusted templates, so\n // there's no need to go through whitelisting again for keys that already\n // are included in there. This also makes AngularJS accept any script\n // directive, no matter its name. However, we still need to unwrap trusted\n // types.\n if (!isString(tpl) || isUndefined($templateCache.get(tpl))) {\n tpl = $sce.getTrustedResourceUrl(tpl);\n }\n\n var transformResponse = $http.defaults && $http.defaults.transformResponse;\n\n if (isArray(transformResponse)) {\n transformResponse = transformResponse.filter(function(transformer) {\n return transformer !== defaultHttpResponseTransform;\n });\n } else if (transformResponse === defaultHttpResponseTransform) {\n transformResponse = null;\n }\n\n return $http.get(tpl, extend({\n cache: $templateCache,\n transformResponse: transformResponse\n }, httpOptions))\n .finally(function() {\n handleRequestFn.totalPendingRequests--;\n })\n .then(function(response) {\n $templateCache.put(tpl, response.data);\n return response.data;\n }, handleError);\n\n function handleError(resp) {\n if (!ignoreRequestError) {\n resp = $templateRequestMinErr('tpload',\n 'Failed to load template: {0} (HTTP status: {1} {2})',\n tpl, resp.status, resp.statusText);\n\n $exceptionHandler(resp);\n }\n\n return $q.reject(resp);\n }\n }\n\n handleRequestFn.totalPendingRequests = 0;\n\n return handleRequestFn;\n }\n ];\n}\n'use strict';\n\n/** @this */\nfunction $$TestabilityProvider() {\n this.$get = ['$rootScope', '$browser', '$location',\n function($rootScope, $browser, $location) {\n\n /**\n * @name $testability\n *\n * @description\n * The private $$testability service provides a collection of methods for use when debugging\n * or by automated test and debugging tools.\n */\n var testability = {};\n\n /**\n * @name $$testability#findBindings\n *\n * @description\n * Returns an array of elements that are bound (via ng-bind or {{}})\n * to expressions matching the input.\n *\n * @param {Element} element The element root to search from.\n * @param {string} expression The binding expression to match.\n * @param {boolean} opt_exactMatch If true, only returns exact matches\n * for the expression. Filters and whitespace are ignored.\n */\n testability.findBindings = function(element, expression, opt_exactMatch) {\n var bindings = element.getElementsByClassName('ng-binding');\n var matches = [];\n forEach(bindings, function(binding) {\n var dataBinding = angular.element(binding).data('$binding');\n if (dataBinding) {\n forEach(dataBinding, function(bindingName) {\n if (opt_exactMatch) {\n var matcher = new RegExp('(^|\\\\s)' + escapeForRegexp(expression) + '(\\\\s|\\\\||$)');\n if (matcher.test(bindingName)) {\n matches.push(binding);\n }\n } else {\n if (bindingName.includes(expression)) {\n matches.push(binding);\n }\n }\n });\n }\n });\n return matches;\n };\n\n /**\n * @name $$testability#findModels\n *\n * @description\n * Returns an array of elements that are two-way found via ng-model to\n * expressions matching the input.\n *\n * @param {Element} element The element root to search from.\n * @param {string} expression The model expression to match.\n * @param {boolean} opt_exactMatch If true, only returns exact matches\n * for the expression.\n */\n testability.findModels = function(element, expression, opt_exactMatch) {\n var prefixes = ['ng-', 'data-ng-', 'ng\\\\:'];\n for (var p = 0; p < prefixes.length; ++p) {\n var attributeEquals = opt_exactMatch ? '=' : '*=';\n var selector = '[' + prefixes[p] + 'model' + attributeEquals + '\"' + expression + '\"]';\n var elements = element.querySelectorAll(selector);\n if (elements.length) {\n return elements;\n }\n }\n };\n\n /**\n * @name $$testability#getLocation\n *\n * @description\n * Shortcut for getting the location in a browser agnostic way. Returns\n * the path, search, and hash. (e.g. /path?a=b#hash)\n */\n testability.getLocation = function() {\n return $location.url();\n };\n\n /**\n * @name $$testability#setLocation\n *\n * @description\n * Shortcut for navigating to a location without doing a full page reload.\n *\n * @param {string} url The location url (path, search and hash,\n * e.g. /path?a=b#hash) to go to.\n */\n testability.setLocation = function(url) {\n if (url !== $location.url()) {\n $location.url(url);\n $rootScope.$digest();\n }\n };\n\n /**\n * @name $$testability#whenStable\n *\n * @description\n * Calls the callback when $timeout and $http requests are completed.\n *\n * @param {function} callback\n */\n testability.whenStable = function(callback) {\n $browser.notifyWhenNoOutstandingRequests(callback);\n };\n\n return testability;\n }];\n}\n'use strict';\n\n/** @this */\nfunction $TimeoutProvider() {\n this.$get = ['$rootScope', '$browser', '$q', '$$q', '$exceptionHandler',\n function($rootScope, $browser, $q, $$q, $exceptionHandler) {\n\n var deferreds = {};\n\n\n /**\n * @ngdoc service\n * @name $timeout\n *\n * @description\n * AngularJS's wrapper for `window.setTimeout`. The `fn` function is wrapped into a try/catch\n * block and delegates any exceptions to\n * {@link ng.$exceptionHandler $exceptionHandler} service.\n *\n * The return value of calling `$timeout` is a promise, which will be resolved when\n * the delay has passed and the timeout function, if provided, is executed.\n *\n * To cancel a timeout request, call `$timeout.cancel(promise)`.\n *\n * In tests you can use {@link ngMock.$timeout `$timeout.flush()`} to\n * synchronously flush the queue of deferred functions.\n *\n * If you only want a promise that will be resolved after some specified delay\n * then you can call `$timeout` without the `fn` function.\n *\n * @param {function()=} fn A function, whose execution should be delayed.\n * @param {number=} [delay=0] Delay in milliseconds.\n * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise\n * will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block.\n * @param {...*=} Pass additional parameters to the executed function.\n * @returns {Promise} Promise that will be resolved when the timeout is reached. The promise\n * will be resolved with the return value of the `fn` function.\n *\n */\n function timeout(fn, delay, invokeApply) {\n if (!isFunction(fn)) {\n invokeApply = delay;\n delay = fn;\n fn = noop;\n }\n\n var args = sliceArgs(arguments, 3);\n var skipApply = (isDefined(invokeApply) && !invokeApply);\n var deferred = (skipApply ? $$q : $q).defer();\n var promise = deferred.promise;\n var timeoutId;\n\n timeoutId = $browser.defer(function() {\n try {\n deferred.resolve(fn(...args));\n } catch (e) {\n deferred.reject(e);\n $exceptionHandler(e);\n } finally {\n delete deferreds[promise.$$timeoutId];\n }\n\n if (!skipApply) $rootScope.$apply();\n }, delay);\n\n promise.$$timeoutId = timeoutId;\n deferreds[timeoutId] = deferred;\n\n return promise;\n }\n\n\n /**\n * @ngdoc method\n * @name $timeout#cancel\n *\n * @description\n * Cancels a task associated with the `promise`. As a result of this, the promise will be\n * resolved with a rejection.\n *\n * @param {Promise=} promise Promise returned by the `$timeout` function.\n * @returns {boolean} Returns `true` if the task hasn't executed yet and was successfully\n * canceled.\n */\n timeout.cancel = function(promise) {\n if (promise && promise.$$timeoutId in deferreds) {\n // Timeout cancels should not report an unhandled promise.\n markQExceptionHandled(deferreds[promise.$$timeoutId].promise);\n deferreds[promise.$$timeoutId].reject('canceled');\n delete deferreds[promise.$$timeoutId];\n return $browser.defer.cancel(promise.$$timeoutId);\n }\n return false;\n };\n\n return timeout;\n }];\n}\n'use strict';\n// NOTE: The usage of window and document instead of $window and $document here is\n// deliberate. This service depends on the specific behavior of anchor nodes created by the\n// browser (resolving and parsing URLs) that is unlikely to be provided by mock objects and\n// cause us to break tests. In addition, when the browser resolves a URL for XHR, it\n// doesn't know about mocked locations and resolves URLs to the real document - which is\n// exactly the behavior needed here. There is little value is mocking these out for this\n// service.\nvar urlParsingNode = window.document.createElement('a');\nvar originUrl = urlResolve(window.location.href);\n\n\n/**\n *\n * Implementation Notes for non-IE browsers\n * ----------------------------------------\n * Assigning a URL to the href property of an anchor DOM node, even one attached to the DOM,\n * results both in the normalizing and parsing of the URL. Normalizing means that a relative\n * URL will be resolved into an absolute URL in the context of the application document.\n * Parsing means that the anchor node's host, hostname, protocol, port, pathname and related\n * properties are all populated to reflect the normalized URL. This approach has wide\n * compatibility - Safari 1+, Mozilla 1+ etc. See\n * http://www.aptana.com/reference/html/api/HTMLAnchorElement.html\n *\n * Implementation Notes for IE\n * ---------------------------\n * IE <= 10 normalizes the URL when assigned to the anchor node similar to the other\n * browsers. However, the parsed components will not be set if the URL assigned did not specify\n * them. (e.g. if you assign a.href = \"foo\", then a.protocol, a.host, etc. will be empty.) We\n * work around that by performing the parsing in a 2nd step by taking a previously normalized\n * URL (e.g. by assigning to a.href) and assigning it a.href again. This correctly populates the\n * properties such as protocol, hostname, port, etc.\n *\n * References:\n * http://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement\n * http://www.aptana.com/reference/html/api/HTMLAnchorElement.html\n * http://url.spec.whatwg.org/#urlutils\n * https://github.com/angular/angular.js/pull/2902\n * http://james.padolsey.com/javascript/parsing-urls-with-the-dom/\n *\n * @kind function\n * @param {string|object} url The URL to be parsed. If `url` is not a string, it will be returned\n * unchanged.\n * @description Normalizes and parses a URL.\n * @returns {object} Returns the normalized URL as a dictionary.\n *\n * | member name | Description |\n * |---------------|----------------|\n * | href | A normalized version of the provided URL if it was not an absolute URL |\n * | protocol | The protocol including the trailing colon |\n * | host | The host and port (if the port is non-default) of the normalizedUrl |\n * | search | The search params, minus the question mark |\n * | hash | The hash string, minus the hash symbol\n * | hostname | The hostname\n * | port | The port, without \":\"\n * | pathname | The pathname, beginning with \"/\"\n *\n */\nfunction urlResolve(url) {\n if (!isString(url)) return url;\n\n var href = url;\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/')\n ? urlParsingNode.pathname\n : '/' + urlParsingNode.pathname\n };\n}\n\n/**\n * Parse a request URL and determine whether this is a same-origin request as the application\n * document.\n *\n * @param {string|object} requestUrl The url of the request as a string that will be resolved\n * or a parsed URL object.\n * @returns {boolean} Whether the request is for the same origin as the application document.\n */\nfunction urlIsSameOrigin(requestUrl) {\n return urlsAreSameOrigin(requestUrl, originUrl);\n}\n\n/**\n * Create a function that can check a URL's origin against a list of allowed/whitelisted origins.\n * The current location's origin is implicitly trusted.\n *\n * @param {string[]} whitelistedOriginUrls - A list of URLs (strings), whose origins are trusted.\n *\n * @returns {Function} - A function that receives a URL (string or parsed URL object) and returns\n * whether it is of an allowed origin.\n */\nfunction urlIsAllowedOriginFactory(whitelistedOriginUrls) {\n var parsedAllowedOriginUrls = [originUrl].concat(whitelistedOriginUrls.map(urlResolve));\n\n /**\n * Check whether the specified URL (string or parsed URL object) has an origin that is allowed\n * based on a list of whitelisted-origin URLs. The current location's origin is implicitly\n * trusted.\n *\n * @param {string|Object} requestUrl - The URL to be checked (provided as a string that will be\n * resolved or a parsed URL object).\n *\n * @returns {boolean} - Whether the specified URL is of an allowed origin.\n */\n return function urlIsAllowedOrigin(requestUrl) {\n var parsedUrl = urlResolve(requestUrl);\n return parsedAllowedOriginUrls.some(urlsAreSameOrigin.bind(null, parsedUrl));\n };\n}\n\n/**\n * Determine if two URLs share the same origin.\n *\n * @param {string|Object} url1 - First URL to compare as a string or a normalized URL in the form of\n * a dictionary object returned by `urlResolve()`.\n * @param {string|object} url2 - Second URL to compare as a string or a normalized URL in the form\n * of a dictionary object returned by `urlResolve()`.\n *\n * @returns {boolean} - True if both URLs have the same origin, and false otherwise.\n */\nfunction urlsAreSameOrigin(url1, url2) {\n url1 = urlResolve(url1);\n url2 = urlResolve(url2);\n\n return (url1.protocol === url2.protocol &&\n url1.host === url2.host);\n}\n'use strict';\n\n/**\n * @ngdoc service\n * @name $window\n * @this\n *\n * @description\n * A reference to the browser's `window` object. While `window`\n * is globally available in JavaScript, it causes testability problems, because\n * it is a global variable. In AngularJS we always refer to it through the\n * `$window` service, so it may be overridden, removed or mocked for testing.\n *\n * Expressions, like the one defined for the `ngClick` directive in the example\n * below, are evaluated with respect to the current scope. Therefore, there is\n * no risk of inadvertently coding in a dependency on a global value in such an\n * expression.\n *\n * @example\n \n \n \n
\n \n \n
\n
\n \n it('should display the greeting in the input box', function() {\n element(by.model('greeting')).sendKeys('Hello, E2E Tests');\n // If we click the button it will block the test runner\n // element(':button').click();\n });\n \n
\n */\nfunction $WindowProvider() {\n this.$get = valueFn(window);\n}\n'use strict';\n\n/**\n * @name $$cookieReader\n * @requires $document\n *\n * @description\n * This is a private service for reading cookies used by $http and ngCookies\n *\n * @return {Object} a key/value map of the current cookies\n */\nfunction $$CookieReader($document) {\n var rawDocument = $document[0] || {};\n var lastCookies = {};\n var lastCookieString = '';\n\n function safeGetCookie(rawDocument) {\n try {\n return rawDocument.cookie || '';\n } catch (e) {\n return '';\n }\n }\n\n function safeDecodeURIComponent(str) {\n try {\n return decodeURIComponent(str);\n } catch (e) {\n return str;\n }\n }\n\n return function() {\n var cookieArray;\n var cookie;\n var i;\n var index;\n var name;\n var currentCookieString = safeGetCookie(rawDocument);\n\n if (currentCookieString !== lastCookieString) {\n lastCookieString = currentCookieString;\n cookieArray = lastCookieString.split('; ');\n lastCookies = {};\n\n for (i = 0; i < cookieArray.length; i++) {\n cookie = cookieArray[i];\n index = cookie.indexOf('=');\n if (index > 0) { //ignore nameless cookies\n name = safeDecodeURIComponent(cookie.substring(0, index));\n // the first value that is seen for a cookie is the most\n // specific one. values for the same cookie name that\n // follow are for less specific paths.\n if (isUndefined(lastCookies[name])) {\n lastCookies[name] = safeDecodeURIComponent(cookie.substring(index + 1));\n }\n }\n }\n }\n return lastCookies;\n };\n}\n\n$$CookieReader.$inject = ['$document'];\n\n/** @this */\nfunction $$CookieReaderProvider() {\n this.$get = $$CookieReader;\n}\n'use strict';\n\n/* global currencyFilter: true,\n dateFilter: true,\n filterFilter: true,\n jsonFilter: true,\n limitToFilter: true,\n lowercaseFilter: true,\n numberFilter: true,\n orderByFilter: true,\n uppercaseFilter: true,\n */\n\n/**\n * @ngdoc provider\n * @name $filterProvider\n * @description\n *\n * Filters are just functions which transform input to an output. However filters need to be\n * Dependency Injected. To achieve this a filter definition consists of a factory function which is\n * annotated with dependencies and is responsible for creating a filter function.\n *\n *
\n * **Note:** Filter names must be valid AngularJS {@link expression} identifiers, such as `uppercase` or `orderBy`.\n * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace\n * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores\n * (`myapp_subsection_filterx`).\n *
\n *\n * ```js\n * // Filter registration\n * function MyModule($provide, $filterProvider) {\n * // create a service to demonstrate injection (not always needed)\n * $provide.value('greet', function(name){\n * return 'Hello ' + name + '!';\n * });\n *\n * // register a filter factory which uses the\n * // greet service to demonstrate DI.\n * $filterProvider.register('greet', function(greet){\n * // return the filter function which uses the greet service\n * // to generate salutation\n * return function(text) {\n * // filters need to be forgiving so check input validity\n * return text && greet(text) || text;\n * };\n * });\n * }\n * ```\n *\n * The filter function is registered with the `$injector` under the filter name suffix with\n * `Filter`.\n *\n * ```js\n * it('should be the same instance', inject(\n * function($filterProvider) {\n * $filterProvider.register('reverse', function(){\n * return ...;\n * });\n * },\n * function($filter, reverseFilter) {\n * expect($filter('reverse')).toBe(reverseFilter);\n * });\n * ```\n *\n *\n * For more information about how AngularJS filters work, and how to create your own filters, see\n * {@link guide/filter Filters} in the AngularJS Developer Guide.\n */\n\n/**\n * @ngdoc service\n * @name $filter\n * @kind function\n * @description\n * Filters are used for formatting data displayed to the user.\n *\n * They can be used in view templates, controllers or services. AngularJS comes\n * with a collection of [built-in filters](api/ng/filter), but it is easy to\n * define your own as well.\n *\n * The general syntax in templates is as follows:\n *\n * ```html\n * {{ expression [| filter_name[:parameter_value] ... ] }}\n * ```\n *\n * @param {String} name Name of the filter function to retrieve\n * @return {Function} the filter function\n * @example\n \n \n
\n

{{ originalText }}

\n

{{ filteredText }}

\n
\n
\n\n \n angular.module('filterExample', [])\n .controller('MainCtrl', function($scope, $filter) {\n $scope.originalText = 'hello';\n $scope.filteredText = $filter('uppercase')($scope.originalText);\n });\n \n
\n */\n$FilterProvider.$inject = ['$provide'];\n/** @this */\nfunction $FilterProvider($provide) {\n var suffix = 'Filter';\n\n /**\n * @ngdoc method\n * @name $filterProvider#register\n * @param {string|Object} name Name of the filter function, or an object map of filters where\n * the keys are the filter names and the values are the filter factories.\n *\n *
\n * **Note:** Filter names must be valid AngularJS {@link expression} identifiers, such as `uppercase` or `orderBy`.\n * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace\n * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores\n * (`myapp_subsection_filterx`).\n *
\n * @param {Function} factory If the first argument was a string, a factory function for the filter to be registered.\n * @returns {Object} Registered filter instance, or if a map of filters was provided then a map\n * of the registered filter instances.\n */\n function register(name, factory) {\n if (isObject(name)) {\n var filters = {};\n forEach(name, function(filter, key) {\n filters[key] = register(key, filter);\n });\n return filters;\n } else {\n return $provide.factory(name + suffix, factory);\n }\n }\n this.register = register;\n\n this.$get = ['$injector', function($injector) {\n return function(name) {\n return $injector.get(name + suffix);\n };\n }];\n\n ////////////////////////////////////////\n\n /* global\n currencyFilter: false,\n dateFilter: false,\n filterFilter: false,\n jsonFilter: false,\n limitToFilter: false,\n lowercaseFilter: false,\n numberFilter: false,\n orderByFilter: false,\n uppercaseFilter: false\n */\n\n register('currency', currencyFilter);\n register('date', dateFilter);\n register('filter', filterFilter);\n register('json', jsonFilter);\n register('limitTo', limitToFilter);\n register('lowercase', lowercaseFilter);\n register('number', numberFilter);\n register('orderBy', orderByFilter);\n register('uppercase', uppercaseFilter);\n}\n'use strict';\n\n/**\n * @ngdoc filter\n * @name filter\n * @kind function\n *\n * @description\n * Selects a subset of items from `array` and returns it as a new array.\n *\n * @param {Array} array The source array.\n *
\n * **Note**: If the array contains objects that reference themselves, filtering is not possible.\n *
\n * @param {string|Object|function()} expression The predicate to be used for selecting items from\n * `array`.\n *\n * Can be one of:\n *\n * - `string`: The string is used for matching against the contents of the `array`. All strings or\n * objects with string properties in `array` that match this string will be returned. This also\n * applies to nested object properties.\n * The predicate can be negated by prefixing the string with `!`.\n *\n * - `Object`: A pattern object can be used to filter specific properties on objects contained\n * by `array`. For example `{name:\"M\", phone:\"1\"}` predicate will return an array of items\n * which have property `name` containing \"M\" and property `phone` containing \"1\". A special\n * property name (`$` by default) can be used (e.g. as in `{$: \"text\"}`) to accept a match\n * against any property of the object or its nested object properties. That's equivalent to the\n * simple substring match with a `string` as described above. The special property name can be\n * overwritten, using the `anyPropertyKey` parameter.\n * The predicate can be negated by prefixing the string with `!`.\n * For example `{name: \"!M\"}` predicate will return an array of items which have property `name`\n * not containing \"M\".\n *\n * Note that a named property will match properties on the same level only, while the special\n * `$` property will match properties on the same level or deeper. E.g. an array item like\n * `{name: {first: 'John', last: 'Doe'}}` will **not** be matched by `{name: 'John'}`, but\n * **will** be matched by `{$: 'John'}`.\n *\n * - `function(value, index, array)`: A predicate function can be used to write arbitrary filters.\n * The function is called for each element of the array, with the element, its index, and\n * the entire array itself as arguments.\n *\n * The final result is an array of those elements that the predicate returned true for.\n *\n * @param {function(actual, expected)|true|false} [comparator] Comparator which is used in\n * determining if values retrieved using `expression` (when it is not a function) should be\n * considered a match based on the expected value (from the filter expression) and actual\n * value (from the object in the array).\n *\n * Can be one of:\n *\n * - `function(actual, expected)`:\n * The function will be given the object value and the predicate value to compare and\n * should return true if both values should be considered equal.\n *\n * - `true`: A shorthand for `function(actual, expected) { return angular.equals(actual, expected)}`.\n * This is essentially strict comparison of expected and actual.\n *\n * - `false`: A short hand for a function which will look for a substring match in a case\n * insensitive way. Primitive values are converted to strings. Objects are not compared against\n * primitives, unless they have a custom `toString` method (e.g. `Date` objects).\n *\n *\n * Defaults to `false`.\n *\n * @param {string} [anyPropertyKey] The special property name that matches against any property.\n * By default `$`.\n *\n * @example\n \n \n
\n\n \n
\n \n \n \n \n \n
NamePhone
{{friend.name}}{{friend.phone}}
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n
NamePhone
{{friendObj.name}}{{friendObj.phone}}
\n \n \n var expectFriendNames = function(expectedNames, key) {\n element.all(by.repeater(key + ' in friends').column(key + '.name')).then(function(arr) {\n arr.forEach(function(wd, i) {\n expect(wd.getText()).toMatch(expectedNames[i]);\n });\n });\n };\n\n it('should search across all fields when filtering with a string', function() {\n var searchText = element(by.model('searchText'));\n searchText.clear();\n searchText.sendKeys('m');\n expectFriendNames(['Mary', 'Mike', 'Adam'], 'friend');\n\n searchText.clear();\n searchText.sendKeys('76');\n expectFriendNames(['John', 'Julie'], 'friend');\n });\n\n it('should search in specific fields when filtering with a predicate object', function() {\n var searchAny = element(by.model('search.$'));\n searchAny.clear();\n searchAny.sendKeys('i');\n expectFriendNames(['Mary', 'Mike', 'Julie', 'Juliette'], 'friendObj');\n });\n it('should use a equal comparison when comparator is true', function() {\n var searchName = element(by.model('search.name'));\n var strict = element(by.model('strict'));\n searchName.clear();\n searchName.sendKeys('Julie');\n strict.click();\n expectFriendNames(['Julie'], 'friendObj');\n });\n \n \n */\n\nfunction filterFilter() {\n return function(array, expression, comparator, anyPropertyKey) {\n if (!isArrayLike(array)) {\n if (array == null) {\n return array;\n } else {\n throw minErr('filter')('notarray', 'Expected array but received: {0}', array);\n }\n }\n\n anyPropertyKey = anyPropertyKey || '$';\n var expressionType = getTypeForFilter(expression);\n var predicateFn;\n var matchAgainstAnyProp;\n\n switch (expressionType) {\n case 'function':\n predicateFn = expression;\n break;\n case 'boolean':\n case 'null':\n case 'number':\n case 'string':\n matchAgainstAnyProp = true;\n // falls through\n case 'object':\n predicateFn = createPredicateFn(expression, comparator, anyPropertyKey, matchAgainstAnyProp);\n break;\n default:\n return array;\n }\n\n return Array.prototype.filter.call(array, predicateFn);\n };\n}\n\n// Helper functions for `filterFilter`\nfunction createPredicateFn(expression, comparator, anyPropertyKey, matchAgainstAnyProp) {\n var shouldMatchPrimitives = isObject(expression) && (anyPropertyKey in expression);\n var predicateFn;\n\n if (comparator === true) {\n comparator = equals;\n } else if (!isFunction(comparator)) {\n comparator = function(actual, expected) {\n if (isUndefined(actual)) {\n // No substring matching against `undefined`\n return false;\n }\n if ((actual === null) || (expected === null)) {\n // No substring matching against `null`; only match against `null`\n return actual === expected;\n }\n if (isObject(expected) || (isObject(actual) && !hasCustomToString(actual))) {\n // Should not compare primitives against objects, unless they have custom `toString` method\n return false;\n }\n\n actual = lowercase('' + actual);\n expected = lowercase('' + expected);\n return actual.includes(expected);\n };\n }\n\n predicateFn = function(item) {\n if (shouldMatchPrimitives && !isObject(item)) {\n return deepCompare(item, expression[anyPropertyKey], comparator, anyPropertyKey, false);\n }\n return deepCompare(item, expression, comparator, anyPropertyKey, matchAgainstAnyProp);\n };\n\n return predicateFn;\n}\n\nfunction deepCompare(actual, expected, comparator, anyPropertyKey, matchAgainstAnyProp, dontMatchWholeObject) {\n var actualType = getTypeForFilter(actual);\n var expectedType = getTypeForFilter(expected);\n\n if ((expectedType === 'string') && (expected.charAt(0) === '!')) {\n return !deepCompare(actual, expected.substring(1), comparator, anyPropertyKey, matchAgainstAnyProp);\n } else if (isArray(actual)) {\n // In case `actual` is an array, consider it a match\n // if ANY of it's items matches `expected`\n return actual.some(function(item) {\n return deepCompare(item, expected, comparator, anyPropertyKey, matchAgainstAnyProp);\n });\n }\n\n switch (actualType) {\n case 'object':\n var key;\n if (matchAgainstAnyProp) {\n for (key in actual) {\n // Under certain, rare, circumstances, key may not be a string and `charAt` will be undefined\n // See: https://github.com/angular/angular.js/issues/15644\n if (key.charAt && (key.charAt(0) !== '$') &&\n deepCompare(actual[key], expected, comparator, anyPropertyKey, true)) {\n return true;\n }\n }\n return dontMatchWholeObject ? false : deepCompare(actual, expected, comparator, anyPropertyKey, false);\n } else if (expectedType === 'object') {\n for (key in expected) {\n var expectedVal = expected[key];\n if (isFunction(expectedVal) || isUndefined(expectedVal)) {\n continue;\n }\n\n var matchAnyProperty = key === anyPropertyKey;\n var actualVal = matchAnyProperty ? actual : actual[key];\n if (!deepCompare(actualVal, expectedVal, comparator, anyPropertyKey, matchAnyProperty, matchAnyProperty)) {\n return false;\n }\n }\n return true;\n } else {\n return comparator(actual, expected);\n }\n case 'function':\n return false;\n default:\n return comparator(actual, expected);\n }\n}\n\n// Used for easily differentiating between `null` and actual `object`\nfunction getTypeForFilter(val) {\n return (val === null) ? 'null' : typeof val;\n}\n'use strict';\n\nvar MAX_DIGITS = 22;\nvar DECIMAL_SEP = '.';\nvar ZERO_CHAR = '0';\n\n/**\n * @ngdoc filter\n * @name currency\n * @kind function\n *\n * @description\n * Formats a number as a currency (ie $1,234.56). When no currency symbol is provided, default\n * symbol for current locale is used.\n *\n * @param {number} amount Input to filter.\n * @param {string=} symbol Currency symbol or identifier to be displayed.\n * @param {number=} fractionSize Number of decimal places to round the amount to, defaults to default max fraction size for current locale\n * @returns {string} Formatted number.\n *\n *\n * @example\n \n \n \n
\n
\n default currency symbol ($): {{amount | currency}}
\n custom currency identifier (USD$): {{amount | currency:\"USD$\"}}
\n no fractions (0): {{amount | currency:\"USD$\":0}}\n
\n
\n \n it('should init with 1234.56', function() {\n expect(element(by.id('currency-default')).getText()).toBe('$1,234.56');\n expect(element(by.id('currency-custom')).getText()).toBe('USD$1,234.56');\n expect(element(by.id('currency-no-fractions')).getText()).toBe('USD$1,235');\n });\n it('should update', function() {\n if (browser.params.browser === 'safari') {\n // Safari does not understand the minus key. See\n // https://github.com/angular/protractor/issues/481\n return;\n }\n element(by.model('amount')).clear();\n element(by.model('amount')).sendKeys('-1234');\n expect(element(by.id('currency-default')).getText()).toBe('-$1,234.00');\n expect(element(by.id('currency-custom')).getText()).toBe('-USD$1,234.00');\n expect(element(by.id('currency-no-fractions')).getText()).toBe('-USD$1,234');\n });\n \n
\n */\ncurrencyFilter.$inject = ['$locale'];\nfunction currencyFilter($locale) {\n var formats = $locale.NUMBER_FORMATS;\n return function(amount, currencySymbol, fractionSize) {\n if (isUndefined(currencySymbol)) {\n currencySymbol = formats.CURRENCY_SYM;\n }\n\n if (isUndefined(fractionSize)) {\n fractionSize = formats.PATTERNS[1].maxFrac;\n }\n\n // If the currency symbol is empty, trim whitespace around the symbol\n var currencySymbolRe = !currencySymbol ? /\\s*\\u00A4\\s*/g : /\\u00A4/g;\n\n // if null or undefined pass it through\n if (amount === null || amount === undefined) {\n return amount;\n }\n\n const formattedNumber = formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, fractionSize);\n // Validate if currency symbol whitespace trimming is required by checking for the currency symbol first. Fixes potential ReDoS vulnerability - https://www.cve.org/CVERecord?id=CVE-2022-25844\n return formattedNumber.includes(\"\\u00A4\") ? formattedNumber.replace(currencySymbolRe, currencySymbol) : formattedNumber;\n };\n}\n\n/**\n * @ngdoc filter\n * @name number\n * @kind function\n *\n * @description\n * Formats a number as text.\n *\n * If the input is null or undefined, it will just be returned.\n * If the input is infinite (Infinity or -Infinity), the Infinity symbol '∞' or '-∞' is returned, respectively.\n * If the input is not a number an empty string is returned.\n *\n *\n * @param {number|string} number Number to format.\n * @param {(number|string)=} fractionSize Number of decimal places to round the number to.\n * If this is not provided then the fraction size is computed from the current locale's number\n * formatting pattern. In the case of the default locale, it will be 3.\n * @returns {string} Number rounded to `fractionSize` appropriately formatted based on the current\n * locale (e.g., in the en_US locale it will have \".\" as the decimal separator and\n * include \",\" group separators after each third digit).\n *\n * @example\n \n \n \n
\n
\n Default formatting: {{val | number}}
\n No fractions: {{val | number:0}}
\n Negative number: {{-val | number:4}}\n
\n
\n \n it('should format numbers', function() {\n expect(element(by.id('number-default')).getText()).toBe('1,234.568');\n expect(element(by.binding('val | number:0')).getText()).toBe('1,235');\n expect(element(by.binding('-val | number:4')).getText()).toBe('-1,234.5679');\n });\n\n it('should update', function() {\n element(by.model('val')).clear();\n element(by.model('val')).sendKeys('3374.333');\n expect(element(by.id('number-default')).getText()).toBe('3,374.333');\n expect(element(by.binding('val | number:0')).getText()).toBe('3,374');\n expect(element(by.binding('-val | number:4')).getText()).toBe('-3,374.3330');\n });\n \n
\n */\nnumberFilter.$inject = ['$locale'];\nfunction numberFilter($locale) {\n var formats = $locale.NUMBER_FORMATS;\n return function(number, fractionSize) {\n\n // if null or undefined pass it through\n return (number == null)\n ? number\n : formatNumber(number, formats.PATTERNS[0], formats.GROUP_SEP, formats.DECIMAL_SEP,\n fractionSize);\n };\n}\n\n/**\n * Parse a number (as a string) into three components that can be used\n * for formatting the number.\n *\n * (Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/)\n *\n * @param {string} numStr The number to parse\n * @return {object} An object describing this number, containing the following keys:\n * - d : an array of digits containing leading zeros as necessary\n * - i : the number of the digits in `d` that are to the left of the decimal point\n * - e : the exponent for numbers that would need more than `MAX_DIGITS` digits in `d`\n *\n */\nfunction parse(numStr) {\n var exponent = 0;\n var digits;\n var numberOfIntegerDigits;\n var i;\n var j;\n var zeros;\n\n // Decimal point?\n if ((numberOfIntegerDigits = numStr.indexOf(DECIMAL_SEP)) > -1) {\n numStr = numStr.replace(DECIMAL_SEP, '');\n }\n\n // Exponential form?\n if ((i = numStr.search(/e/i)) > 0) {\n // Work out the exponent.\n if (numberOfIntegerDigits < 0) numberOfIntegerDigits = i;\n numberOfIntegerDigits += +numStr.slice(i + 1);\n numStr = numStr.substring(0, i);\n } else if (numberOfIntegerDigits < 0) {\n // There was no decimal point or exponent so it is an integer.\n numberOfIntegerDigits = numStr.length;\n }\n\n // Count the number of leading zeros.\n for (i = 0; numStr.charAt(i) === ZERO_CHAR; i++) { /* empty */ }\n\n if (i === (zeros = numStr.length)) {\n // The digits are all zero.\n digits = [0];\n numberOfIntegerDigits = 1;\n } else {\n // Count the number of trailing zeros\n zeros--;\n while (numStr.charAt(zeros) === ZERO_CHAR) zeros--;\n\n // Trailing zeros are insignificant so ignore them\n numberOfIntegerDigits -= i;\n digits = [];\n // Convert string to array of digits without leading/trailing zeros.\n for (j = 0; i <= zeros; i++, j++) {\n digits[j] = +numStr.charAt(i);\n }\n }\n\n // If the number overflows the maximum allowed digits then use an exponent.\n if (numberOfIntegerDigits > MAX_DIGITS) {\n digits = digits.splice(0, MAX_DIGITS - 1);\n exponent = numberOfIntegerDigits - 1;\n numberOfIntegerDigits = 1;\n }\n\n return { d: digits, e: exponent, i: numberOfIntegerDigits };\n}\n\n/**\n * Round the parsed number to the specified number of decimal places\n * This function changed the parsedNumber in-place\n */\nfunction roundNumber(parsedNumber, fractionSize, minFrac, maxFrac) {\n var digits = parsedNumber.d;\n var fractionLen = digits.length - parsedNumber.i;\n\n // determine fractionSize if it is not specified; `+fractionSize` converts it to a number\n fractionSize = (isUndefined(fractionSize)) ? Math.min(Math.max(minFrac, fractionLen), maxFrac) : +fractionSize;\n\n // The index of the digit to where rounding is to occur\n var roundAt = fractionSize + parsedNumber.i;\n var digit = digits[roundAt];\n\n if (roundAt > 0) {\n // Drop fractional digits beyond `roundAt`\n digits.splice(Math.max(parsedNumber.i, roundAt));\n\n // Set non-fractional digits beyond `roundAt` to 0\n for (var j = roundAt; j < digits.length; j++) {\n digits[j] = 0;\n }\n } else {\n // We rounded to zero so reset the parsedNumber\n fractionLen = Math.max(0, fractionLen);\n parsedNumber.i = 1;\n digits.length = Math.max(1, roundAt = fractionSize + 1);\n digits[0] = 0;\n for (var i = 1; i < roundAt; i++) digits[i] = 0;\n }\n\n if (digit >= 5) {\n if (roundAt - 1 < 0) {\n for (var k = 0; k > roundAt; k--) {\n digits.unshift(0);\n parsedNumber.i++;\n }\n digits.unshift(1);\n parsedNumber.i++;\n } else {\n digits[roundAt - 1]++;\n }\n }\n\n // Pad out with zeros to get the required fraction length\n for (; fractionLen < Math.max(0, fractionSize); fractionLen++) digits.push(0);\n\n\n // Do any carrying, e.g. a digit was rounded up to 10\n var carry = digits.reduceRight(function(carry, d, i, digits) {\n d = d + carry;\n digits[i] = d % 10;\n return Math.floor(d / 10);\n }, 0);\n if (carry) {\n digits.unshift(carry);\n parsedNumber.i++;\n }\n}\n\n/**\n * Format a number into a string\n * @param {number} number The number to format\n * @param {{\n * minFrac, // the minimum number of digits required in the fraction part of the number\n * maxFrac, // the maximum number of digits required in the fraction part of the number\n * gSize, // number of digits in each group of separated digits\n * lgSize, // number of digits in the last group of digits before the decimal separator\n * negPre, // the string to go in front of a negative number (e.g. `-` or `(`))\n * posPre, // the string to go in front of a positive number\n * negSuf, // the string to go after a negative number (e.g. `)`)\n * posSuf // the string to go after a positive number\n * }} pattern\n * @param {string} groupSep The string to separate groups of number (e.g. `,`)\n * @param {string} decimalSep The string to act as the decimal separator (e.g. `.`)\n * @param {[type]} fractionSize The size of the fractional part of the number\n * @return {string} The number formatted as a string\n */\nfunction formatNumber(number, pattern, groupSep, decimalSep, fractionSize) {\n if (!(isString(number) || isNumber(number)) || isNaN(number)) return '';\n\n var isInfinity = !isFinite(number);\n var isZero = false;\n var numStr = Math.abs(number) + '';\n var formattedText = '';\n var parsedNumber;\n\n if (isInfinity) {\n formattedText = '\\u221e';\n } else {\n parsedNumber = parse(numStr);\n\n roundNumber(parsedNumber, fractionSize, pattern.minFrac, pattern.maxFrac);\n\n var digits = parsedNumber.d;\n var integerLen = parsedNumber.i;\n var exponent = parsedNumber.e;\n var decimals = [];\n isZero = digits.reduce(function(isZero, d) { return isZero && !d; }, true);\n\n // pad zeros for small numbers\n while (integerLen < 0) {\n digits.unshift(0);\n integerLen++;\n }\n\n // extract decimals digits\n if (integerLen > 0) {\n decimals = digits.splice(integerLen, digits.length);\n } else {\n decimals = digits;\n digits = [0];\n }\n\n // format the integer digits with grouping separators\n var groups = [];\n if (digits.length >= pattern.lgSize) {\n groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));\n }\n while (digits.length > pattern.gSize) {\n groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));\n }\n if (digits.length) {\n groups.unshift(digits.join(''));\n }\n formattedText = groups.join(groupSep);\n\n // append the decimal digits\n if (decimals.length) {\n formattedText += decimalSep + decimals.join('');\n }\n\n if (exponent) {\n formattedText += 'e+' + exponent;\n }\n }\n if (number < 0 && !isZero) {\n return pattern.negPre + formattedText + pattern.negSuf;\n } else {\n return pattern.posPre + formattedText + pattern.posSuf;\n }\n}\n\nfunction padNumber(num, digits, trim, negWrap) {\n var neg = '';\n if (num < 0 || (negWrap && num <= 0)) {\n if (negWrap) {\n num = -num + 1;\n } else {\n num = -num;\n neg = '-';\n }\n }\n num = '' + num;\n while (num.length < digits) num = ZERO_CHAR + num;\n if (trim) {\n num = num.substr(num.length - digits);\n }\n return neg + num;\n}\n\n\nfunction dateGetter(name, size, offset, trim, negWrap) {\n offset = offset || 0;\n return function(date) {\n var value = date['get' + name]();\n if (offset > 0 || value > -offset) {\n value += offset;\n }\n if (value === 0 && offset === -12) value = 12;\n return padNumber(value, size, trim, negWrap);\n };\n}\n\nfunction dateStrGetter(name, shortForm, standAlone) {\n return function(date, formats) {\n var value = date['get' + name]();\n var propPrefix = (standAlone ? 'STANDALONE' : '') + (shortForm ? 'SHORT' : '');\n var get = uppercase(propPrefix + name);\n\n return formats[get][value];\n };\n}\n\nfunction timeZoneGetter(date, formats, offset) {\n var zone = -1 * offset;\n var paddedZone = (zone >= 0) ? '+' : '';\n\n paddedZone += padNumber(Math[zone > 0 ? 'floor' : 'ceil'](zone / 60), 2) +\n padNumber(Math.abs(zone % 60), 2);\n\n return paddedZone;\n}\n\nfunction getFirstThursdayOfYear(year) {\n // 0 = index of January\n var dayOfWeekOnFirst = (new Date(year, 0, 1)).getDay();\n // 4 = index of Thursday (+1 to account for 1st = 5)\n // 11 = index of *next* Thursday (+1 account for 1st = 12)\n return new Date(year, 0, ((dayOfWeekOnFirst <= 4) ? 5 : 12) - dayOfWeekOnFirst);\n}\n\nfunction getThursdayThisWeek(datetime) {\n return new Date(datetime.getFullYear(), datetime.getMonth(),\n // 4 = index of Thursday\n datetime.getDate() + (4 - datetime.getDay()));\n}\n\nfunction weekGetter(size) {\n return function(date) {\n var firstThurs = getFirstThursdayOfYear(date.getFullYear());\n var thisThurs = getThursdayThisWeek(date);\n var diff = +thisThurs - +firstThurs; // 6.048e8 ms per week\n var result = 1 + Math.round(diff / 6.048e8);\n\n return padNumber(result, size);\n };\n}\n\nfunction ampmGetter(date, formats) {\n return date.getHours() < 12 ? formats.AMPMS[0] : formats.AMPMS[1];\n}\n\nfunction eraGetter(date, formats) {\n return date.getFullYear() <= 0 ? formats.ERAS[0] : formats.ERAS[1];\n}\n\nfunction longEraGetter(date, formats) {\n return date.getFullYear() <= 0 ? formats.ERANAMES[0] : formats.ERANAMES[1];\n}\n\nvar DATE_FORMATS = {\n yyyy: dateGetter('FullYear', 4, 0, false, true),\n yy: dateGetter('FullYear', 2, 0, true, true),\n y: dateGetter('FullYear', 1, 0, false, true),\n MMMM: dateStrGetter('Month'),\n MMM: dateStrGetter('Month', true),\n MM: dateGetter('Month', 2, 1),\n M: dateGetter('Month', 1, 1),\n LLLL: dateStrGetter('Month', false, true),\n dd: dateGetter('Date', 2),\n d: dateGetter('Date', 1),\n HH: dateGetter('Hours', 2),\n H: dateGetter('Hours', 1),\n hh: dateGetter('Hours', 2, -12),\n h: dateGetter('Hours', 1, -12),\n mm: dateGetter('Minutes', 2),\n m: dateGetter('Minutes', 1),\n ss: dateGetter('Seconds', 2),\n s: dateGetter('Seconds', 1),\n // while ISO 8601 requires fractions to be prefixed with `.` or `,`\n // we can be just safely rely on using `sss` since we currently don't support single or two digit fractions\n sss: dateGetter('Milliseconds', 3),\n EEEE: dateStrGetter('Day'),\n EEE: dateStrGetter('Day', true),\n a: ampmGetter,\n Z: timeZoneGetter,\n ww: weekGetter(2),\n w: weekGetter(1),\n G: eraGetter,\n GG: eraGetter,\n GGG: eraGetter,\n GGGG: longEraGetter\n};\n\nvar DATE_FORMATS_SPLIT = /((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))([\\s\\S]*)/;\nvar NUMBER_STRING = /^-?\\d+$/;\n\n/**\n * @ngdoc filter\n * @name date\n * @kind function\n *\n * @description\n * Formats `date` to a string based on the requested `format`.\n *\n * `format` string can be composed of the following elements:\n *\n * * `'yyyy'`: 4 digit representation of year (e.g. AD 1 => 0001, AD 2010 => 2010)\n * * `'yy'`: 2 digit representation of year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)\n * * `'y'`: 1 digit representation of year, e.g. (AD 1 => 1, AD 199 => 199)\n * * `'MMMM'`: Month in year (January-December)\n * * `'MMM'`: Month in year (Jan-Dec)\n * * `'MM'`: Month in year, padded (01-12)\n * * `'M'`: Month in year (1-12)\n * * `'LLLL'`: Stand-alone month in year (January-December)\n * * `'dd'`: Day in month, padded (01-31)\n * * `'d'`: Day in month (1-31)\n * * `'EEEE'`: Day in Week,(Sunday-Saturday)\n * * `'EEE'`: Day in Week, (Sun-Sat)\n * * `'HH'`: Hour in day, padded (00-23)\n * * `'H'`: Hour in day (0-23)\n * * `'hh'`: Hour in AM/PM, padded (01-12)\n * * `'h'`: Hour in AM/PM, (1-12)\n * * `'mm'`: Minute in hour, padded (00-59)\n * * `'m'`: Minute in hour (0-59)\n * * `'ss'`: Second in minute, padded (00-59)\n * * `'s'`: Second in minute (0-59)\n * * `'sss'`: Millisecond in second, padded (000-999)\n * * `'a'`: AM/PM marker\n * * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200-+1200)\n * * `'ww'`: Week of year, padded (00-53). Week 01 is the week with the first Thursday of the year\n * * `'w'`: Week of year (0-53). Week 1 is the week with the first Thursday of the year\n * * `'G'`, `'GG'`, `'GGG'`: The abbreviated form of the era string (e.g. 'AD')\n * * `'GGGG'`: The long form of the era string (e.g. 'Anno Domini')\n *\n * `format` string can also be one of the following predefined\n * {@link guide/i18n localizable formats}:\n *\n * * `'medium'`: equivalent to `'MMM d, y h:mm:ss a'` for en_US locale\n * (e.g. Sep 3, 2010 12:05:08 PM)\n * * `'short'`: equivalent to `'M/d/yy h:mm a'` for en_US locale (e.g. 9/3/10 12:05 PM)\n * * `'fullDate'`: equivalent to `'EEEE, MMMM d, y'` for en_US locale\n * (e.g. Friday, September 3, 2010)\n * * `'longDate'`: equivalent to `'MMMM d, y'` for en_US locale (e.g. September 3, 2010)\n * * `'mediumDate'`: equivalent to `'MMM d, y'` for en_US locale (e.g. Sep 3, 2010)\n * * `'shortDate'`: equivalent to `'M/d/yy'` for en_US locale (e.g. 9/3/10)\n * * `'mediumTime'`: equivalent to `'h:mm:ss a'` for en_US locale (e.g. 12:05:08 PM)\n * * `'shortTime'`: equivalent to `'h:mm a'` for en_US locale (e.g. 12:05 PM)\n *\n * `format` string can contain literal values. These need to be escaped by surrounding with single quotes (e.g.\n * `\"h 'in the morning'\"`). In order to output a single quote, escape it - i.e., two single quotes in a sequence\n * (e.g. `\"h 'o''clock'\"`).\n *\n * Any other characters in the `format` string will be output as-is.\n *\n * @param {(Date|number|string)} date Date to format either as Date object, milliseconds (string or\n * number) or various ISO 8601 datetime string formats (e.g. yyyy-MM-ddTHH:mm:ss.sssZ and its\n * shorter versions like yyyy-MM-ddTHH:mmZ, yyyy-MM-dd or yyyyMMddTHHmmssZ). If no timezone is\n * specified in the string input, the time is considered to be in the local timezone.\n * @param {string=} format Formatting rules (see Description). If not specified,\n * `mediumDate` is used.\n * @param {string=} timezone Timezone to be used for formatting. It understands UTC/GMT and the\n * continental US time zone abbreviations, but for general use, use a time zone offset, for\n * example, `'+0430'` (4 hours, 30 minutes east of the Greenwich meridian)\n * If not specified, the timezone of the browser will be used.\n * @returns {string} Formatted string or the input if input is not recognized as date/millis.\n *\n * @example\n \n \n {{1288323623006 | date:'medium'}}:\n {{1288323623006 | date:'medium'}}
\n {{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}:\n {{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}
\n {{1288323623006 | date:'MM/dd/yyyy @ h:mma'}}:\n {{'1288323623006' | date:'MM/dd/yyyy @ h:mma'}}
\n {{1288323623006 | date:\"MM/dd/yyyy 'at' h:mma\"}}:\n {{'1288323623006' | date:\"MM/dd/yyyy 'at' h:mma\"}}
\n
\n \n it('should format date', function() {\n expect(element(by.binding(\"1288323623006 | date:'medium'\")).getText()).\n toMatch(/Oct 2\\d, 2010 \\d{1,2}:\\d{2}:\\d{2} (AM|PM)/);\n expect(element(by.binding(\"1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'\")).getText()).\n toMatch(/2010-10-2\\d \\d{2}:\\d{2}:\\d{2} (-|\\+)?\\d{4}/);\n expect(element(by.binding(\"'1288323623006' | date:'MM/dd/yyyy @ h:mma'\")).getText()).\n toMatch(/10\\/2\\d\\/2010 @ \\d{1,2}:\\d{2}(AM|PM)/);\n expect(element(by.binding(\"'1288323623006' | date:\\\"MM/dd/yyyy 'at' h:mma\\\"\")).getText()).\n toMatch(/10\\/2\\d\\/2010 at \\d{1,2}:\\d{2}(AM|PM)/);\n });\n \n
\n */\ndateFilter.$inject = ['$locale'];\nfunction dateFilter($locale) {\n\n\n var R_ISO8601_STR = /^(\\d{4})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\n // 1 2 3 4 5 6 7 8 9 10 11\n function jsonStringToDate(string) {\n var match;\n if ((match = string.match(R_ISO8601_STR))) {\n var date = new Date(0);\n var tzHour = 0;\n var tzMin = 0;\n var dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\n var timeSetter = match[8] ? date.setUTCHours : date.setHours;\n\n if (match[9]) {\n tzHour = toInt(match[9] + match[10]);\n tzMin = toInt(match[9] + match[11]);\n }\n dateSetter.call(date, toInt(match[1]), toInt(match[2]) - 1, toInt(match[3]));\n var h = toInt(match[4] || 0) - tzHour;\n var m = toInt(match[5] || 0) - tzMin;\n var s = toInt(match[6] || 0);\n var ms = Math.round(parseFloat('0.' + (match[7] || 0)) * 1000);\n timeSetter.call(date, h, m, s, ms);\n return date;\n }\n return string;\n }\n\n\n return function(date, format, timezone) {\n var text = '';\n var parts = [];\n var fn;\n var match;\n\n format = format || 'mediumDate';\n format = $locale.DATETIME_FORMATS[format] || format;\n if (isString(date)) {\n date = NUMBER_STRING.test(date) ? toInt(date) : jsonStringToDate(date);\n }\n\n if (isNumber(date)) {\n date = new Date(date);\n }\n\n if (!isDate(date) || !isFinite(date.getTime())) {\n return date;\n }\n\n while (format) {\n match = DATE_FORMATS_SPLIT.exec(format);\n if (match) {\n parts = concat(parts, match, 1);\n format = parts.pop();\n } else {\n parts.push(format);\n format = null;\n }\n }\n\n var dateTimezoneOffset = date.getTimezoneOffset();\n if (timezone) {\n dateTimezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n date = convertTimezoneToLocal(date, timezone, true);\n }\n forEach(parts, function(value) {\n fn = DATE_FORMATS[value];\n text += fn ? fn(date, $locale.DATETIME_FORMATS, dateTimezoneOffset)\n : value === '\\'\\'' ? '\\'' : value.replace(/(^'|'$)/g, '').replace(/''/g, '\\'');\n });\n\n return text;\n };\n}\n\n\n/**\n * @ngdoc filter\n * @name json\n * @kind function\n *\n * @description\n * Allows you to convert a JavaScript object into JSON string.\n *\n * This filter is mostly useful for debugging. When using the double curly {{value}} notation\n * the binding is automatically converted to JSON.\n *\n * @param {*} object Any JavaScript object (including arrays and primitive types) to filter.\n * @param {number=} spacing The number of spaces to use per indentation, defaults to 2.\n * @returns {string} JSON string.\n *\n *\n * @example\n \n \n
{{ {'name':'value'} | json }}
\n
{{ {'name':'value'} | json:4 }}
\n
\n \n it('should jsonify filtered objects', function() {\n expect(element(by.id('default-spacing')).getText()).toMatch(/\\{\\n {2}\"name\": ?\"value\"\\n}/);\n expect(element(by.id('custom-spacing')).getText()).toMatch(/\\{\\n {4}\"name\": ?\"value\"\\n}/);\n });\n \n
\n *\n */\nfunction jsonFilter() {\n return function(object, spacing) {\n if (isUndefined(spacing)) {\n spacing = 2;\n }\n return toJson(object, spacing);\n };\n}\n\n\n/**\n * @ngdoc filter\n * @name lowercase\n * @kind function\n * @description\n * Converts string to lowercase.\n *\n * See the {@link ng.uppercase uppercase filter documentation} for a functionally identical example.\n *\n * @see angular.lowercase\n */\nvar lowercaseFilter = valueFn(lowercase);\n\n\n/**\n * @ngdoc filter\n * @name uppercase\n * @kind function\n * @description\n * Converts string to uppercase.\n * @example\n \n \n \n
\n \n

{{title}}

\n \n

{{title | uppercase}}

\n
\n
\n
\n */\nvar uppercaseFilter = valueFn(uppercase);\n'use strict';\n\n/**\n * @ngdoc filter\n * @name limitTo\n * @kind function\n *\n * @description\n * Creates a new array or string containing only a specified number of elements. The elements are\n * taken from either the beginning or the end of the source array, string or number, as specified by\n * the value and sign (positive or negative) of `limit`. Other array-like objects are also supported\n * (e.g. array subclasses, NodeLists, jqLite/jQuery collections etc). If a number is used as input,\n * it is converted to a string.\n *\n * @param {Array|ArrayLike|string|number} input - Array/array-like, string or number to be limited.\n * @param {string|number} limit - The length of the returned array or string. If the `limit` number\n * is positive, `limit` number of items from the beginning of the source array/string are copied.\n * If the number is negative, `limit` number of items from the end of the source array/string\n * are copied. The `limit` will be trimmed if it exceeds `array.length`. If `limit` is undefined,\n * the input will be returned unchanged.\n * @param {(string|number)=} begin - Index at which to begin limitation. As a negative index,\n * `begin` indicates an offset from the end of `input`. Defaults to `0`.\n * @returns {Array|string} A new sub-array or substring of length `limit` or less if the input had\n * less than `limit` elements.\n *\n * @example\n \n \n \n
\n \n

Output numbers: {{ numbers | limitTo:numLimit }}

\n \n

Output letters: {{ letters | limitTo:letterLimit }}

\n \n

Output long number: {{ longNumber | limitTo:longNumberLimit }}

\n
\n
\n \n var numLimitInput = element(by.model('numLimit'));\n var letterLimitInput = element(by.model('letterLimit'));\n var longNumberLimitInput = element(by.model('longNumberLimit'));\n var limitedNumbers = element(by.binding('numbers | limitTo:numLimit'));\n var limitedLetters = element(by.binding('letters | limitTo:letterLimit'));\n var limitedLongNumber = element(by.binding('longNumber | limitTo:longNumberLimit'));\n\n it('should limit the number array to first three items', function() {\n expect(numLimitInput.getAttribute('value')).toBe('3');\n expect(letterLimitInput.getAttribute('value')).toBe('3');\n expect(longNumberLimitInput.getAttribute('value')).toBe('3');\n expect(limitedNumbers.getText()).toEqual('Output numbers: [1,2,3]');\n expect(limitedLetters.getText()).toEqual('Output letters: abc');\n expect(limitedLongNumber.getText()).toEqual('Output long number: 234');\n });\n\n // There is a bug in safari and protractor that doesn't like the minus key\n // it('should update the output when -3 is entered', function() {\n // numLimitInput.clear();\n // numLimitInput.sendKeys('-3');\n // letterLimitInput.clear();\n // letterLimitInput.sendKeys('-3');\n // longNumberLimitInput.clear();\n // longNumberLimitInput.sendKeys('-3');\n // expect(limitedNumbers.getText()).toEqual('Output numbers: [7,8,9]');\n // expect(limitedLetters.getText()).toEqual('Output letters: ghi');\n // expect(limitedLongNumber.getText()).toEqual('Output long number: 342');\n // });\n\n it('should not exceed the maximum size of input array', function() {\n numLimitInput.clear();\n numLimitInput.sendKeys('100');\n letterLimitInput.clear();\n letterLimitInput.sendKeys('100');\n longNumberLimitInput.clear();\n longNumberLimitInput.sendKeys('100');\n expect(limitedNumbers.getText()).toEqual('Output numbers: [1,2,3,4,5,6,7,8,9]');\n expect(limitedLetters.getText()).toEqual('Output letters: abcdefghi');\n expect(limitedLongNumber.getText()).toEqual('Output long number: 2345432342');\n });\n \n
\n*/\nfunction limitToFilter() {\n return function(input, limit, begin) {\n if (Math.abs(Number(limit)) === Infinity) {\n limit = Number(limit);\n } else {\n limit = toInt(limit);\n }\n if (isNumberNaN(limit)) return input;\n\n if (isNumber(input)) input = input.toString();\n if (!isArrayLike(input)) return input;\n\n begin = (!begin || isNaN(begin)) ? 0 : toInt(begin);\n begin = (begin < 0) ? Math.max(0, input.length + begin) : begin;\n\n if (limit >= 0) {\n return sliceFn(input, begin, begin + limit);\n } else {\n if (begin === 0) {\n return sliceFn(input, limit, input.length);\n } else {\n return sliceFn(input, Math.max(0, begin + limit), begin);\n }\n }\n };\n}\n\nfunction sliceFn(input, begin, end) {\n if (isString(input)) return input.slice(begin, end);\n\n return slice.call(input, begin, end);\n}\n'use strict';\n\n/**\n * @ngdoc filter\n * @name orderBy\n * @kind function\n *\n * @description\n * Returns an array containing the items from the specified `collection`, ordered by a `comparator`\n * function based on the values computed using the `expression` predicate.\n *\n * For example, `[{id: 'foo'}, {id: 'bar'}] | orderBy:'id'` would result in\n * `[{id: 'bar'}, {id: 'foo'}]`.\n *\n * The `collection` can be an Array or array-like object (e.g. NodeList, jQuery object, TypedArray,\n * String, etc).\n *\n * The `expression` can be a single predicate, or a list of predicates each serving as a tie-breaker\n * for the preceding one. The `expression` is evaluated against each item and the output is used\n * for comparing with other items.\n *\n * You can change the sorting order by setting `reverse` to `true`. By default, items are sorted in\n * ascending order.\n *\n * The comparison is done using the `comparator` function. If none is specified, a default, built-in\n * comparator is used (see below for details - in a nutshell, it compares numbers numerically and\n * strings alphabetically).\n *\n * ### Under the hood\n *\n * Ordering the specified `collection` happens in two phases:\n *\n * 1. All items are passed through the predicate (or predicates), and the returned values are saved\n * along with their type (`string`, `number` etc). For example, an item `{label: 'foo'}`, passed\n * through a predicate that extracts the value of the `label` property, would be transformed to:\n * ```\n * {\n * value: 'foo',\n * type: 'string',\n * index: ...\n * }\n * ```\n * 2. The comparator function is used to sort the items, based on the derived values, types and\n * indices.\n *\n * If you use a custom comparator, it will be called with pairs of objects of the form\n * `{value: ..., type: '...', index: ...}` and is expected to return `0` if the objects are equal\n * (as far as the comparator is concerned), `-1` if the 1st one should be ranked higher than the\n * second, or `1` otherwise.\n *\n * In order to ensure that the sorting will be deterministic across platforms, if none of the\n * specified predicates can distinguish between two items, `orderBy` will automatically introduce a\n * dummy predicate that returns the item's index as `value`.\n * (If you are using a custom comparator, make sure it can handle this predicate as well.)\n *\n * If a custom comparator still can't distinguish between two items, then they will be sorted based\n * on their index using the built-in comparator.\n *\n * Finally, in an attempt to simplify things, if a predicate returns an object as the extracted\n * value for an item, `orderBy` will try to convert that object to a primitive value, before passing\n * it to the comparator. The following rules govern the conversion:\n *\n * 1. If the object has a `valueOf()` method that returns a primitive, its return value will be\n * used instead.
\n * (If the object has a `valueOf()` method that returns another object, then the returned object\n * will be used in subsequent steps.)\n * 2. If the object has a custom `toString()` method (i.e. not the one inherited from `Object`) that\n * returns a primitive, its return value will be used instead.
\n * (If the object has a `toString()` method that returns another object, then the returned object\n * will be used in subsequent steps.)\n * 3. No conversion; the object itself is used.\n *\n * ### The default comparator\n *\n * The default, built-in comparator should be sufficient for most usecases. In short, it compares\n * numbers numerically, strings alphabetically (and case-insensitively), for objects falls back to\n * using their index in the original collection, and sorts values of different types by type.\n *\n * More specifically, it follows these steps to determine the relative order of items:\n *\n * 1. If the compared values are of different types, compare the types themselves alphabetically.\n * 2. If both values are of type `string`, compare them alphabetically in a case- and\n * locale-insensitive way.\n * 3. If both values are objects, compare their indices instead.\n * 4. Otherwise, return:\n * - `0`, if the values are equal (by strict equality comparison, i.e. using `===`).\n * - `-1`, if the 1st value is \"less than\" the 2nd value (compared using the `<` operator).\n * - `1`, otherwise.\n *\n * **Note:** If you notice numbers not being sorted as expected, make sure they are actually being\n * saved as numbers and not strings.\n * **Note:** For the purpose of sorting, `null` values are treated as the string `'null'` (i.e.\n * `type: 'string'`, `value: 'null'`). This may cause unexpected sort order relative to\n * other values.\n *\n * @param {Array|ArrayLike} collection - The collection (array or array-like object) to sort.\n * @param {(Function|string|Array.)=} expression - A predicate (or list of\n * predicates) to be used by the comparator to determine the order of elements.\n *\n * Can be one of:\n *\n * - `Function`: A getter function. This function will be called with each item as argument and\n * the return value will be used for sorting.\n * - `string`: An AngularJS expression. This expression will be evaluated against each item and the\n * result will be used for sorting. For example, use `'label'` to sort by a property called\n * `label` or `'label.substring(0, 3)'` to sort by the first 3 characters of the `label`\n * property.
\n * (The result of a constant expression is interpreted as a property name to be used for\n * comparison. For example, use `'\"special name\"'` (note the extra pair of quotes) to sort by a\n * property called `special name`.)
\n * An expression can be optionally prefixed with `+` or `-` to control the sorting direction,\n * ascending or descending. For example, `'+label'` or `'-label'`. If no property is provided,\n * (e.g. `'+'` or `'-'`), the collection element itself is used in comparisons.\n * - `Array`: An array of function and/or string predicates. If a predicate cannot determine the\n * relative order of two items, the next predicate is used as a tie-breaker.\n *\n * **Note:** If the predicate is missing or empty then it defaults to `'+'`.\n *\n * @param {boolean=} reverse - If `true`, reverse the sorting order.\n * @param {(Function)=} comparator - The comparator function used to determine the relative order of\n * value pairs. If omitted, the built-in comparator will be used.\n *\n * @returns {Array} - The sorted array.\n *\n *\n * @example\n * ### Ordering a table with `ngRepeat`\n *\n * The example below demonstrates a simple {@link ngRepeat ngRepeat}, where the data is sorted by\n * age in descending order (expression is set to `'-age'`). The `comparator` is not set, which means\n * it defaults to the built-in comparator.\n *\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n
NamePhone NumberAge
{{friend.name}}{{friend.phone}}{{friend.age}}
\n
\n
\n \n angular.module('orderByExample1', [])\n .controller('ExampleController', ['$scope', function($scope) {\n $scope.friends = [\n {name: 'John', phone: '555-1212', age: 10},\n {name: 'Mary', phone: '555-9876', age: 19},\n {name: 'Mike', phone: '555-4321', age: 21},\n {name: 'Adam', phone: '555-5678', age: 35},\n {name: 'Julie', phone: '555-8765', age: 29}\n ];\n }]);\n \n \n .friends {\n border-collapse: collapse;\n }\n\n .friends th {\n border-bottom: 1px solid;\n }\n .friends td, .friends th {\n border-left: 1px solid;\n padding: 5px 10px;\n }\n .friends td:first-child, .friends th:first-child {\n border-left: none;\n }\n \n \n // Element locators\n var names = element.all(by.repeater('friends').column('friend.name'));\n\n it('should sort friends by age in reverse order', function() {\n expect(names.get(0).getText()).toBe('Adam');\n expect(names.get(1).getText()).toBe('Julie');\n expect(names.get(2).getText()).toBe('Mike');\n expect(names.get(3).getText()).toBe('Mary');\n expect(names.get(4).getText()).toBe('John');\n });\n \n
\n *
\n *\n * @example\n * ### Changing parameters dynamically\n *\n * All parameters can be changed dynamically. The next example shows how you can make the columns of\n * a table sortable, by binding the `expression` and `reverse` parameters to scope properties.\n *\n \n \n
\n
Sort by = {{propertyName}}; reverse = {{reverse}}
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n
{{friend.name}}{{friend.phone}}{{friend.age}}
\n
\n
\n \n angular.module('orderByExample2', [])\n .controller('ExampleController', ['$scope', function($scope) {\n var friends = [\n {name: 'John', phone: '555-1212', age: 10},\n {name: 'Mary', phone: '555-9876', age: 19},\n {name: 'Mike', phone: '555-4321', age: 21},\n {name: 'Adam', phone: '555-5678', age: 35},\n {name: 'Julie', phone: '555-8765', age: 29}\n ];\n\n $scope.propertyName = 'age';\n $scope.reverse = true;\n $scope.friends = friends;\n\n $scope.sortBy = function(propertyName) {\n $scope.reverse = ($scope.propertyName === propertyName) ? !$scope.reverse : false;\n $scope.propertyName = propertyName;\n };\n }]);\n \n \n .friends {\n border-collapse: collapse;\n }\n\n .friends th {\n border-bottom: 1px solid;\n }\n .friends td, .friends th {\n border-left: 1px solid;\n padding: 5px 10px;\n }\n .friends td:first-child, .friends th:first-child {\n border-left: none;\n }\n\n .sortorder:after {\n content: '\\25b2'; // BLACK UP-POINTING TRIANGLE\n }\n .sortorder.reverse:after {\n content: '\\25bc'; // BLACK DOWN-POINTING TRIANGLE\n }\n \n \n // Element locators\n var unsortButton = element(by.partialButtonText('unsorted'));\n var nameHeader = element(by.partialButtonText('Name'));\n var phoneHeader = element(by.partialButtonText('Phone'));\n var ageHeader = element(by.partialButtonText('Age'));\n var firstName = element(by.repeater('friends').column('friend.name').row(0));\n var lastName = element(by.repeater('friends').column('friend.name').row(4));\n\n it('should sort friends by some property, when clicking on the column header', function() {\n expect(firstName.getText()).toBe('Adam');\n expect(lastName.getText()).toBe('John');\n\n phoneHeader.click();\n expect(firstName.getText()).toBe('John');\n expect(lastName.getText()).toBe('Mary');\n\n nameHeader.click();\n expect(firstName.getText()).toBe('Adam');\n expect(lastName.getText()).toBe('Mike');\n\n ageHeader.click();\n expect(firstName.getText()).toBe('John');\n expect(lastName.getText()).toBe('Adam');\n });\n\n it('should sort friends in reverse order, when clicking on the same column', function() {\n expect(firstName.getText()).toBe('Adam');\n expect(lastName.getText()).toBe('John');\n\n ageHeader.click();\n expect(firstName.getText()).toBe('John');\n expect(lastName.getText()).toBe('Adam');\n\n ageHeader.click();\n expect(firstName.getText()).toBe('Adam');\n expect(lastName.getText()).toBe('John');\n });\n\n it('should restore the original order, when clicking \"Set to unsorted\"', function() {\n expect(firstName.getText()).toBe('Adam');\n expect(lastName.getText()).toBe('John');\n\n unsortButton.click();\n expect(firstName.getText()).toBe('John');\n expect(lastName.getText()).toBe('Julie');\n });\n \n
\n *
\n *\n * @example\n * ### Using `orderBy` inside a controller\n *\n * It is also possible to call the `orderBy` filter manually, by injecting `orderByFilter`, and\n * calling it with the desired parameters. (Alternatively, you could inject the `$filter` factory\n * and retrieve the `orderBy` filter with `$filter('orderBy')`.)\n *\n \n \n
\n
Sort by = {{propertyName}}; reverse = {{reverse}}
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n
{{friend.name}}{{friend.phone}}{{friend.age}}
\n
\n
\n \n angular.module('orderByExample3', [])\n .controller('ExampleController', ['$scope', 'orderByFilter', function($scope, orderBy) {\n var friends = [\n {name: 'John', phone: '555-1212', age: 10},\n {name: 'Mary', phone: '555-9876', age: 19},\n {name: 'Mike', phone: '555-4321', age: 21},\n {name: 'Adam', phone: '555-5678', age: 35},\n {name: 'Julie', phone: '555-8765', age: 29}\n ];\n\n $scope.propertyName = 'age';\n $scope.reverse = true;\n $scope.friends = orderBy(friends, $scope.propertyName, $scope.reverse);\n\n $scope.sortBy = function(propertyName) {\n $scope.reverse = (propertyName !== null && $scope.propertyName === propertyName)\n ? !$scope.reverse : false;\n $scope.propertyName = propertyName;\n $scope.friends = orderBy(friends, $scope.propertyName, $scope.reverse);\n };\n }]);\n \n \n .friends {\n border-collapse: collapse;\n }\n\n .friends th {\n border-bottom: 1px solid;\n }\n .friends td, .friends th {\n border-left: 1px solid;\n padding: 5px 10px;\n }\n .friends td:first-child, .friends th:first-child {\n border-left: none;\n }\n\n .sortorder:after {\n content: '\\25b2'; // BLACK UP-POINTING TRIANGLE\n }\n .sortorder.reverse:after {\n content: '\\25bc'; // BLACK DOWN-POINTING TRIANGLE\n }\n \n \n // Element locators\n var unsortButton = element(by.partialButtonText('unsorted'));\n var nameHeader = element(by.partialButtonText('Name'));\n var phoneHeader = element(by.partialButtonText('Phone'));\n var ageHeader = element(by.partialButtonText('Age'));\n var firstName = element(by.repeater('friends').column('friend.name').row(0));\n var lastName = element(by.repeater('friends').column('friend.name').row(4));\n\n it('should sort friends by some property, when clicking on the column header', function() {\n expect(firstName.getText()).toBe('Adam');\n expect(lastName.getText()).toBe('John');\n\n phoneHeader.click();\n expect(firstName.getText()).toBe('John');\n expect(lastName.getText()).toBe('Mary');\n\n nameHeader.click();\n expect(firstName.getText()).toBe('Adam');\n expect(lastName.getText()).toBe('Mike');\n\n ageHeader.click();\n expect(firstName.getText()).toBe('John');\n expect(lastName.getText()).toBe('Adam');\n });\n\n it('should sort friends in reverse order, when clicking on the same column', function() {\n expect(firstName.getText()).toBe('Adam');\n expect(lastName.getText()).toBe('John');\n\n ageHeader.click();\n expect(firstName.getText()).toBe('John');\n expect(lastName.getText()).toBe('Adam');\n\n ageHeader.click();\n expect(firstName.getText()).toBe('Adam');\n expect(lastName.getText()).toBe('John');\n });\n\n it('should restore the original order, when clicking \"Set to unsorted\"', function() {\n expect(firstName.getText()).toBe('Adam');\n expect(lastName.getText()).toBe('John');\n\n unsortButton.click();\n expect(firstName.getText()).toBe('John');\n expect(lastName.getText()).toBe('Julie');\n });\n \n
\n *
\n *\n * @example\n * ### Using a custom comparator\n *\n * If you have very specific requirements about the way items are sorted, you can pass your own\n * comparator function. For example, you might need to compare some strings in a locale-sensitive\n * way. (When specifying a custom comparator, you also need to pass a value for the `reverse`\n * argument - passing `false` retains the default sorting order, i.e. ascending.)\n *\n \n \n
\n
\n

Locale-sensitive Comparator

\n \n \n \n \n \n \n \n \n \n
NameFavorite Letter
{{friend.name}}{{friend.favoriteLetter}}
\n
\n
\n

Default Comparator

\n \n \n \n \n \n \n \n \n \n
NameFavorite Letter
{{friend.name}}{{friend.favoriteLetter}}
\n
\n
\n
\n \n angular.module('orderByExample4', [])\n .controller('ExampleController', ['$scope', function($scope) {\n $scope.friends = [\n {name: 'John', favoriteLetter: 'Ä'},\n {name: 'Mary', favoriteLetter: 'Ü'},\n {name: 'Mike', favoriteLetter: 'Ö'},\n {name: 'Adam', favoriteLetter: 'H'},\n {name: 'Julie', favoriteLetter: 'Z'}\n ];\n\n $scope.localeSensitiveComparator = function(v1, v2) {\n // If we don't get strings, just compare by index\n if (v1.type !== 'string' || v2.type !== 'string') {\n return (v1.index < v2.index) ? -1 : 1;\n }\n\n // Compare strings alphabetically, taking locale into account\n return v1.value.localeCompare(v2.value);\n };\n }]);\n \n \n .friends-container {\n display: inline-block;\n margin: 0 30px;\n }\n\n .friends {\n border-collapse: collapse;\n }\n\n .friends th {\n border-bottom: 1px solid;\n }\n .friends td, .friends th {\n border-left: 1px solid;\n padding: 5px 10px;\n }\n .friends td:first-child, .friends th:first-child {\n border-left: none;\n }\n \n \n // Element locators\n var container = element(by.css('.custom-comparator'));\n var names = container.all(by.repeater('friends').column('friend.name'));\n\n it('should sort friends by favorite letter (in correct alphabetical order)', function() {\n expect(names.get(0).getText()).toBe('John');\n expect(names.get(1).getText()).toBe('Adam');\n expect(names.get(2).getText()).toBe('Mike');\n expect(names.get(3).getText()).toBe('Mary');\n expect(names.get(4).getText()).toBe('Julie');\n });\n \n
\n *\n */\norderByFilter.$inject = ['$parse'];\nfunction orderByFilter($parse) {\n return function(array, sortPredicate, reverseOrder, compareFn) {\n\n if (array == null) return array;\n if (!isArrayLike(array)) {\n throw minErr('orderBy')('notarray', 'Expected array but received: {0}', array);\n }\n\n if (!isArray(sortPredicate)) { sortPredicate = [sortPredicate]; }\n if (sortPredicate.length === 0) { sortPredicate = ['+']; }\n\n var predicates = processPredicates(sortPredicate);\n\n var descending = reverseOrder ? -1 : 1;\n\n // Define the `compare()` function. Use a default comparator if none is specified.\n var compare = isFunction(compareFn) ? compareFn : defaultCompare;\n\n // The next three lines are a version of a Swartzian Transform idiom from Perl\n // (sometimes called the Decorate-Sort-Undecorate idiom)\n // See https://en.wikipedia.org/wiki/Schwartzian_transform\n var compareValues = Array.prototype.map.call(array, getComparisonObject);\n compareValues.sort(doComparison);\n array = compareValues.map(function(item) { return item.value; });\n\n return array;\n\n function getComparisonObject(value, index) {\n // NOTE: We are adding an extra `tieBreaker` value based on the element's index.\n // This will be used to keep the sort stable when none of the input predicates can\n // distinguish between two elements.\n return {\n value: value,\n tieBreaker: {value: index, type: 'number', index: index},\n predicateValues: predicates.map(function(predicate) {\n return getPredicateValue(predicate.get(value), index);\n })\n };\n }\n\n function doComparison(v1, v2) {\n for (var i = 0, ii = predicates.length; i < ii; i++) {\n var result = compare(v1.predicateValues[i], v2.predicateValues[i]);\n if (result) {\n return result * predicates[i].descending * descending;\n }\n }\n\n return (compare(v1.tieBreaker, v2.tieBreaker) || defaultCompare(v1.tieBreaker, v2.tieBreaker)) * descending;\n }\n };\n\n function processPredicates(sortPredicates) {\n return sortPredicates.map(function(predicate) {\n var descending = 1;\n var get = identity;\n\n if (isFunction(predicate)) {\n get = predicate;\n } else if (isString(predicate)) {\n if ((predicate.charAt(0) === '+' || predicate.charAt(0) === '-')) {\n descending = predicate.charAt(0) === '-' ? -1 : 1;\n predicate = predicate.substring(1);\n }\n if (predicate !== '') {\n get = $parse(predicate);\n if (get.constant) {\n var key = get();\n get = function(value) { return value[key]; };\n }\n }\n }\n return {get: get, descending: descending};\n });\n }\n\n function isPrimitive(value) {\n switch (typeof value) {\n case 'number': /* falls through */\n case 'boolean': /* falls through */\n case 'string':\n return true;\n default:\n return false;\n }\n }\n\n function objectValue(value) {\n // If `valueOf` is a valid function use that\n if (isFunction(value.valueOf)) {\n value = value.valueOf();\n if (isPrimitive(value)) return value;\n }\n // If `toString` is a valid function and not the one from `Object.prototype` use that\n if (hasCustomToString(value)) {\n value = value.toString();\n if (isPrimitive(value)) return value;\n }\n\n return value;\n }\n\n function getPredicateValue(value, index) {\n var type = typeof value;\n if (value === null) {\n type = 'string';\n value = 'null';\n } else if (type === 'object') {\n value = objectValue(value);\n }\n return {value: value, type: type, index: index};\n }\n\n function defaultCompare(v1, v2) {\n var result = 0;\n var type1 = v1.type;\n var type2 = v2.type;\n\n if (type1 === type2) {\n var value1 = v1.value;\n var value2 = v2.value;\n\n if (type1 === 'string') {\n // Compare strings case-insensitively\n value1 = value1.toLowerCase();\n value2 = value2.toLowerCase();\n } else if (type1 === 'object') {\n // For basic objects, use the position of the object\n // in the collection instead of the value\n if (isObject(value1)) value1 = v1.index;\n if (isObject(value2)) value2 = v2.index;\n }\n\n if (value1 !== value2) {\n result = value1 < value2 ? -1 : 1;\n }\n } else {\n result = type1 < type2 ? -1 : 1;\n }\n\n return result;\n }\n}\n'use strict';\n\nfunction ngDirective(directive) {\n if (isFunction(directive)) {\n directive = {\n link: directive\n };\n }\n directive.restrict = directive.restrict || 'AC';\n return valueFn(directive);\n}\n'use strict';\n\n/**\n * @ngdoc directive\n * @name a\n * @restrict E\n *\n * @description\n * Modifies the default behavior of the html a tag so that the default action is prevented when\n * the href attribute is empty.\n *\n * For dynamically creating `href` attributes for a tags, see the {@link ng.ngHref `ngHref`} directive.\n */\nvar htmlAnchorDirective = valueFn({\n restrict: 'E',\n compile(element, attr) {\n if (!attr.href && !attr.xlinkHref) {\n return function(scope, element) {\n // If the linked element is not an anchor tag anymore, do nothing\n if (element[0].nodeName.toLowerCase() !== 'a') return;\n\n // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute.\n var href = toString.call(element.prop('href')) === '[object SVGAnimatedString]' ?\n 'xlink:href' : 'href';\n element.on('click', function(event) {\n // if we have no href url, then don't navigate anywhere.\n if (!element.attr(href)) {\n event.preventDefault();\n }\n });\n };\n }\n }\n});\n'use strict';\n\n/**\n * @ngdoc directive\n * @name ngHref\n * @restrict A\n * @priority 99\n *\n * @description\n * Using AngularJS markup like `{{hash}}` in an href attribute will\n * make the link go to the wrong URL if the user clicks it before\n * AngularJS has a chance to replace the `{{hash}}` markup with its\n * value. Until AngularJS replaces the markup the link will be broken\n * and will most likely return a 404 error. The `ngHref` directive\n * solves this problem.\n *\n * The wrong way to write it:\n * ```html\n * link1\n * ```\n *\n * The correct way to write it:\n * ```html\n * link1\n * ```\n *\n * @element A\n * @param {template} ngHref any string which can contain `{{}}` markup.\n *\n * @example\n * This example shows various combinations of `href`, `ng-href` and `ng-click` attributes\n * in links and their different behaviors:\n \n \n
\n link 1 (link, don't reload)
\n link 2 (link, don't reload)
\n link 3 (link, reload!)
\n anchor (link, don't reload)
\n anchor (no link)
\n link (link, change location)\n
\n \n it('should execute ng-click but not reload when href without value', function() {\n element(by.id('link-1')).click();\n expect(element(by.model('value')).getAttribute('value')).toEqual('1');\n expect(element(by.id('link-1')).getAttribute('href')).toBe('');\n });\n\n it('should execute ng-click but not reload when href empty string', function() {\n element(by.id('link-2')).click();\n expect(element(by.model('value')).getAttribute('value')).toEqual('2');\n expect(element(by.id('link-2')).getAttribute('href')).toBe('');\n });\n\n it('should execute ng-click and change url when ng-href specified', function() {\n expect(element(by.id('link-3')).getAttribute('href')).toMatch(/\\/123$/);\n\n element(by.id('link-3')).click();\n\n // At this point, we navigate away from an AngularJS page, so we need\n // to use browser.driver to get the base webdriver.\n\n browser.wait(function() {\n return browser.driver.getCurrentUrl().then(function(url) {\n return url.match(/\\/123$/);\n });\n }, 5000, 'page should navigate to /123');\n });\n\n it('should execute ng-click but not reload when href empty string and name specified', function() {\n element(by.id('link-4')).click();\n expect(element(by.model('value')).getAttribute('value')).toEqual('4');\n expect(element(by.id('link-4')).getAttribute('href')).toBe('');\n });\n\n it('should execute ng-click but not reload when no href but name specified', function() {\n element(by.id('link-5')).click();\n expect(element(by.model('value')).getAttribute('value')).toEqual('5');\n expect(element(by.id('link-5')).getAttribute('href')).toBe(null);\n });\n\n it('should only change url when only ng-href', function() {\n element(by.model('value')).clear();\n element(by.model('value')).sendKeys('6');\n expect(element(by.id('link-6')).getAttribute('href')).toMatch(/\\/6$/);\n\n element(by.id('link-6')).click();\n\n // At this point, we navigate away from an AngularJS page, so we need\n // to use browser.driver to get the base webdriver.\n browser.wait(function() {\n return browser.driver.getCurrentUrl().then(function(url) {\n return url.match(/\\/6$/);\n });\n }, 5000, 'page should navigate to /6');\n });\n \n
\n */\n\n/**\n * @ngdoc directive\n * @name ngSrc\n * @restrict A\n * @priority 99\n *\n * @description\n * Using AngularJS markup like `{{hash}}` in a `src` attribute doesn't\n * work right: The browser will fetch from the URL with the literal\n * text `{{hash}}` until AngularJS replaces the expression inside\n * `{{hash}}`. The `ngSrc` directive solves this problem.\n *\n * The buggy way to write it:\n * ```html\n * \"Description\"/\n * ```\n *\n * The correct way to write it:\n * ```html\n * \"Description\"\n * ```\n *\n * @element IMG\n * @param {template} ngSrc any string which can contain `{{}}` markup.\n */\n\n/**\n * @ngdoc directive\n * @name ngSrcset\n * @restrict A\n * @priority 99\n *\n * @description\n * Using AngularJS markup like `{{hash}}` in a `srcset` attribute doesn't\n * work right: The browser will fetch from the URL with the literal\n * text `{{hash}}` until AngularJS replaces the expression inside\n * `{{hash}}`. The `ngSrcset` directive solves this problem.\n *\n * The buggy way to write it:\n * ```html\n * \"Description\"/\n * ```\n *\n * The correct way to write it:\n * ```html\n * \"Description\"\n * ```\n *\n * @element IMG\n * @param {template} ngSrcset any string which can contain `{{}}` markup.\n */\n\n/**\n * @ngdoc directive\n * @name ngDisabled\n * @restrict A\n * @priority 100\n *\n * @description\n *\n * This directive sets the `disabled` attribute on the element (typically a form control,\n * e.g. `input`, `button`, `select` etc.) if the\n * {@link guide/expression expression} inside `ngDisabled` evaluates to truthy.\n *\n * A special directive is necessary because we cannot use interpolation inside the `disabled`\n * attribute. See the {@link guide/interpolation interpolation guide} for more info.\n *\n * @example\n \n \n
\n \n
\n \n it('should toggle button', function() {\n expect(element(by.css('button')).getAttribute('disabled')).toBeFalsy();\n element(by.model('checked')).click();\n expect(element(by.css('button')).getAttribute('disabled')).toBeTruthy();\n });\n \n
\n *\n * @element INPUT\n * @param {expression} ngDisabled If the {@link guide/expression expression} is truthy,\n * then the `disabled` attribute will be set on the element\n */\n\n\n/**\n * @ngdoc directive\n * @name ngChecked\n * @restrict A\n * @priority 100\n *\n * @description\n * Sets the `checked` attribute on the element, if the expression inside `ngChecked` is truthy.\n *\n * Note that this directive should not be used together with {@link ngModel `ngModel`},\n * as this can lead to unexpected behavior.\n *\n * A special directive is necessary because we cannot use interpolation inside the `checked`\n * attribute. See the {@link guide/interpolation interpolation guide} for more info.\n *\n * @example\n \n \n
\n \n
\n \n it('should check both checkBoxes', function() {\n expect(element(by.id('checkFollower')).getAttribute('checked')).toBeFalsy();\n element(by.model('leader')).click();\n expect(element(by.id('checkFollower')).getAttribute('checked')).toBeTruthy();\n });\n \n
\n *\n * @element INPUT\n * @param {expression} ngChecked If the {@link guide/expression expression} is truthy,\n * then the `checked` attribute will be set on the element\n */\n\n\n/**\n * @ngdoc directive\n * @name ngReadonly\n * @restrict A\n * @priority 100\n *\n * @description\n *\n * Sets the `readonly` attribute on the element, if the expression inside `ngReadonly` is truthy.\n * Note that `readonly` applies only to `input` elements with specific types. [See the input docs on\n * MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly) for more information.\n *\n * A special directive is necessary because we cannot use interpolation inside the `readonly`\n * attribute. See the {@link guide/interpolation interpolation guide} for more info.\n *\n * @example\n \n \n
\n \n
\n \n it('should toggle readonly attr', function() {\n expect(element(by.css('[type=\"text\"]')).getAttribute('readonly')).toBeFalsy();\n element(by.model('checked')).click();\n expect(element(by.css('[type=\"text\"]')).getAttribute('readonly')).toBeTruthy();\n });\n \n
\n *\n * @element INPUT\n * @param {expression} ngReadonly If the {@link guide/expression expression} is truthy,\n * then special attribute \"readonly\" will be set on the element\n */\n\n\n/**\n * @ngdoc directive\n * @name ngSelected\n * @restrict A\n * @priority 100\n *\n * @description\n *\n * Sets the `selected` attribute on the element, if the expression inside `ngSelected` is truthy.\n *\n * A special directive is necessary because we cannot use interpolation inside the `selected`\n * attribute. See the {@link guide/interpolation interpolation guide} for more info.\n *\n *
\n * **Note:** `ngSelected` does not interact with the `select` and `ngModel` directives, it only\n * sets the `selected` attribute on the element. If you are using `ngModel` on the select, you\n * should not use `ngSelected` on the options, as `ngModel` will set the select value and\n * selected options.\n *
\n *\n * @example\n \n \n
\n \n
\n \n it('should select Greetings!', function() {\n expect(element(by.id('greet')).getAttribute('selected')).toBeFalsy();\n element(by.model('selected')).click();\n expect(element(by.id('greet')).getAttribute('selected')).toBeTruthy();\n });\n \n
\n *\n * @element OPTION\n * @param {expression} ngSelected If the {@link guide/expression expression} is truthy,\n * then special attribute \"selected\" will be set on the element\n */\n\n/**\n * @ngdoc directive\n * @name ngOpen\n * @restrict A\n * @priority 100\n *\n * @description\n *\n * Sets the `open` attribute on the element, if the expression inside `ngOpen` is truthy.\n *\n * A special directive is necessary because we cannot use interpolation inside the `open`\n * attribute. See the {@link guide/interpolation interpolation guide} for more info.\n *\n * @example\n \n \n
\n
\n List\n
    \n
  • Apple
  • \n
  • Orange
  • \n
  • Durian
  • \n
\n
\n
\n \n it('should toggle open', function() {\n expect(element(by.id('details')).getAttribute('open')).toBeFalsy();\n element(by.model('open')).click();\n expect(element(by.id('details')).getAttribute('open')).toBeTruthy();\n });\n \n
\n *\n * @element DETAILS\n * @param {expression} ngOpen If the {@link guide/expression expression} is truthy,\n * then special attribute \"open\" will be set on the element\n */\n\nvar ngAttributeAliasDirectives = {};\n\n// boolean attrs are evaluated\nforEach(BOOLEAN_ATTR, function(propName, attrName) {\n // binding to multiple is not supported\n if (propName === 'multiple') return;\n\n function defaultLinkFn(scope, element, attr) {\n scope.$watch(attr[normalized], function ngBooleanAttrWatchAction(value) {\n attr.$set(attrName, !!value);\n });\n }\n\n var normalized = directiveNormalize('ng-' + attrName);\n var linkFn = defaultLinkFn;\n\n if (propName === 'checked') {\n linkFn = function(scope, element, attr) {\n // ensuring ngChecked doesn't interfere with ngModel when both are set on the same input\n if (attr.ngModel !== attr[normalized]) {\n defaultLinkFn(scope, element, attr);\n }\n };\n }\n\n ngAttributeAliasDirectives[normalized] = function() {\n return {\n restrict: 'A',\n priority: 100,\n link: linkFn\n };\n };\n});\n\n// aliased input attrs are evaluated\nforEach(ALIASED_ATTR, function(htmlAttr, ngAttr) {\n ngAttributeAliasDirectives[ngAttr] = function() {\n return {\n priority: 100,\n link(scope, element, attr) {\n //special case ngPattern when a literal regular expression value\n //is used as the expression (this way we don't have to watch anything).\n if (ngAttr === 'ngPattern' && attr.ngPattern.charAt(0) === '/') {\n var match = attr.ngPattern.match(REGEX_STRING_REGEXP);\n if (match) {\n attr.$set('ngPattern', new RegExp(match[1], match[2]));\n return;\n }\n }\n\n scope.$watch(attr[ngAttr], function ngAttrAliasWatchAction(value) {\n attr.$set(ngAttr, value);\n });\n }\n };\n };\n});\n\n// ng-src, ng-srcset, ng-href are interpolated\nforEach(['src', 'srcset', 'href'], function(attrName) {\n var normalized = directiveNormalize('ng-' + attrName);\n ngAttributeAliasDirectives[normalized] = function() {\n return {\n priority: 99, // it needs to run after the attributes are interpolated\n link(scope, element, attr) {\n var propName = attrName;\n var name = attrName;\n\n if (attrName === 'href' &&\n toString.call(element.prop('href')) === '[object SVGAnimatedString]') {\n name = 'xlinkHref';\n attr.$attr[name] = 'xlink:href';\n propName = null;\n }\n\n attr.$observe(normalized, function(value) {\n if (!value) {\n if (attrName === 'href') {\n attr.$set(name, null);\n }\n return;\n }\n\n attr.$set(name, value);\n });\n }\n };\n };\n});\n'use strict';\n\n/* global -nullFormCtrl, -PENDING_CLASS, -SUBMITTED_CLASS\n */\nvar nullFormCtrl = {\n $addControl: noop,\n $$renameControl: nullFormRenameControl,\n $removeControl: noop,\n $setValidity: noop,\n $setDirty: noop,\n $setPristine: noop,\n $setSubmitted: noop\n};\n\nvar PENDING_CLASS = 'ng-pending';\nvar SUBMITTED_CLASS = 'ng-submitted';\n\nfunction nullFormRenameControl(control, name) {\n control.$name = name;\n}\n\n/**\n * @ngdoc type\n * @name form.FormController\n *\n * @property {boolean} $pristine True if user has not interacted with the form yet.\n * @property {boolean} $dirty True if user has already interacted with the form.\n * @property {boolean} $valid True if all of the containing forms and controls are valid.\n * @property {boolean} $invalid True if at least one containing control or form is invalid.\n * @property {boolean} $submitted True if user has submitted the form even if its invalid.\n *\n * @property {Object} $pending An object hash, containing references to controls or forms with\n * pending validators, where:\n *\n * - keys are validations tokens (error names).\n * - values are arrays of controls or forms that have a pending validator for the given error name.\n *\n * See {@link form.FormController#$error $error} for a list of built-in validation tokens.\n *\n * @property {Object} $error An object hash, containing references to controls or forms with failing\n * validators, where:\n *\n * - keys are validation tokens (error names),\n * - values are arrays of controls or forms that have a failing validator for the given error name.\n *\n * Built-in validation tokens:\n * - `email`\n * - `max`\n * - `maxlength`\n * - `min`\n * - `minlength`\n * - `number`\n * - `pattern`\n * - `required`\n * - `url`\n * - `date`\n * - `datetimelocal`\n * - `time`\n * - `week`\n * - `month`\n *\n * @description\n * `FormController` keeps track of all its controls and nested forms as well as the state of them,\n * such as being valid/invalid or dirty/pristine.\n *\n * Each {@link ng.directive:form form} directive creates an instance\n * of `FormController`.\n *\n */\n//asks for $scope to fool the BC controller module\nFormController.$inject = ['$element', '$attrs', '$scope', '$animate', '$interpolate'];\nfunction FormController($element, $attrs, $scope, $animate, $interpolate) {\n this.$$controls = [];\n\n // init state\n this.$error = {};\n this.$$success = {};\n this.$pending = undefined;\n this.$name = $interpolate($attrs.name || $attrs.ngForm || '')($scope);\n this.$dirty = false;\n this.$pristine = true;\n this.$valid = true;\n this.$invalid = false;\n this.$submitted = false;\n this.$$parentForm = nullFormCtrl;\n\n this.$$element = $element;\n this.$$animate = $animate;\n\n setupValidity(this);\n}\n\nFormController.prototype = {\n /**\n * @ngdoc method\n * @name form.FormController#$rollbackViewValue\n *\n * @description\n * Rollback all form controls pending updates to the `$modelValue`.\n *\n * Updates may be pending by a debounced event or because the input is waiting for a some future\n * event defined in `ng-model-options`. This method is typically needed by the reset button of\n * a form that uses `ng-model-options` to pend updates.\n */\n $rollbackViewValue() {\n forEach(this.$$controls, function(control) {\n control.$rollbackViewValue();\n });\n },\n\n /**\n * @ngdoc method\n * @name form.FormController#$commitViewValue\n *\n * @description\n * Commit all form controls pending updates to the `$modelValue`.\n *\n * Updates may be pending by a debounced event or because the input is waiting for a some future\n * event defined in `ng-model-options`. This method is rarely needed as `NgModelController`\n * usually handles calling this in response to input events.\n */\n $commitViewValue() {\n forEach(this.$$controls, function(control) {\n control.$commitViewValue();\n });\n },\n\n /**\n * @ngdoc method\n * @name form.FormController#$addControl\n * @param {object} control control object, either a {@link form.FormController} or an\n * {@link ngModel.NgModelController}\n *\n * @description\n * Register a control with the form. Input elements using ngModelController do this automatically\n * when they are linked.\n *\n * Note that the current state of the control will not be reflected on the new parent form. This\n * is not an issue with normal use, as freshly compiled and linked controls are in a `$pristine`\n * state.\n *\n * However, if the method is used programmatically, for example by adding dynamically created controls,\n * or controls that have been previously removed without destroying their corresponding DOM element,\n * it's the developers responsibility to make sure the current state propagates to the parent form.\n *\n * For example, if an input control is added that is already `$dirty` and has `$error` properties,\n * calling `$setDirty()` and `$validate()` afterwards will propagate the state to the parent form.\n */\n $addControl(control) {\n // Breaking change - before, inputs whose name was \"hasOwnProperty\" were quietly ignored\n // and not added to the scope. Now we throw an error.\n assertNotHasOwnProperty(control.$name, 'input');\n this.$$controls.push(control);\n\n if (control.$name) {\n this[control.$name] = control;\n }\n\n control.$$parentForm = this;\n },\n\n // Private API: rename a form control\n $$renameControl(control, newName) {\n var oldName = control.$name;\n\n if (this[oldName] === control) {\n delete this[oldName];\n }\n this[newName] = control;\n control.$name = newName;\n },\n\n /**\n * @ngdoc method\n * @name form.FormController#$removeControl\n * @param {object} control control object, either a {@link form.FormController} or an\n * {@link ngModel.NgModelController}\n *\n * @description\n * Deregister a control from the form.\n *\n * Input elements using ngModelController do this automatically when they are destroyed.\n *\n * Note that only the removed control's validation state (`$errors`etc.) will be removed from the\n * form. `$dirty`, `$submitted` states will not be changed, because the expected behavior can be\n * different from case to case. For example, removing the only `$dirty` control from a form may or\n * may not mean that the form is still `$dirty`.\n */\n $removeControl(control) {\n if (control.$name && this[control.$name] === control) {\n delete this[control.$name];\n }\n forEach(this.$pending, function(value, name) {\n // eslint-disable-next-line no-invalid-this\n this.$setValidity(name, null, control);\n }, this);\n forEach(this.$error, function(value, name) {\n // eslint-disable-next-line no-invalid-this\n this.$setValidity(name, null, control);\n }, this);\n forEach(this.$$success, function(value, name) {\n // eslint-disable-next-line no-invalid-this\n this.$setValidity(name, null, control);\n }, this);\n\n arrayRemove(this.$$controls, control);\n control.$$parentForm = nullFormCtrl;\n },\n\n /**\n * @ngdoc method\n * @name form.FormController#$setDirty\n *\n * @description\n * Sets the form to a dirty state.\n *\n * This method can be called to add the 'ng-dirty' class and set the form to a dirty\n * state (ng-dirty class). This method will also propagate to parent forms.\n */\n $setDirty() {\n this.$$animate.removeClass(this.$$element, PRISTINE_CLASS);\n this.$$animate.addClass(this.$$element, DIRTY_CLASS);\n this.$dirty = true;\n this.$pristine = false;\n this.$$parentForm.$setDirty();\n },\n\n /**\n * @ngdoc method\n * @name form.FormController#$setPristine\n *\n * @description\n * Sets the form to its pristine state.\n *\n * This method sets the form's `$pristine` state to true, the `$dirty` state to false, removes\n * the `ng-dirty` class and adds the `ng-pristine` class. Additionally, it sets the `$submitted`\n * state to false.\n *\n * This method will also propagate to all the controls contained in this form.\n *\n * Setting a form back to a pristine state is often useful when we want to 'reuse' a form after\n * saving or resetting it.\n */\n $setPristine() {\n this.$$animate.setClass(this.$$element, PRISTINE_CLASS, DIRTY_CLASS + ' ' + SUBMITTED_CLASS);\n this.$dirty = false;\n this.$pristine = true;\n this.$submitted = false;\n forEach(this.$$controls, function(control) {\n control.$setPristine();\n });\n },\n\n /**\n * @ngdoc method\n * @name form.FormController#$setUntouched\n *\n * @description\n * Sets the form to its untouched state.\n *\n * This method can be called to remove the 'ng-touched' class and set the form controls to their\n * untouched state (ng-untouched class).\n *\n * Setting a form controls back to their untouched state is often useful when setting the form\n * back to its pristine state.\n */\n $setUntouched() {\n forEach(this.$$controls, function(control) {\n control.$setUntouched();\n });\n },\n\n /**\n * @ngdoc method\n * @name form.FormController#$setSubmitted\n *\n * @description\n * Sets the form to its submitted state.\n */\n $setSubmitted() {\n this.$$animate.addClass(this.$$element, SUBMITTED_CLASS);\n this.$submitted = true;\n this.$$parentForm.$setSubmitted();\n }\n};\n\n/**\n * @ngdoc method\n * @name form.FormController#$setValidity\n *\n * @description\n * Change the validity state of the form, and notify the parent form (if any).\n *\n * Application developers will rarely need to call this method directly. It is used internally, by\n * {@link ngModel.NgModelController#$setValidity NgModelController.$setValidity()}, to propagate a\n * control's validity state to the parent `FormController`.\n *\n * @param {string} validationErrorKey Name of the validator. The `validationErrorKey` will be\n * assigned to either `$error[validationErrorKey]` or `$pending[validationErrorKey]` (for\n * unfulfilled `$asyncValidators`), so that it is available for data-binding. The\n * `validationErrorKey` should be in camelCase and will get converted into dash-case for\n * class name. Example: `myError` will result in `ng-valid-my-error` and\n * `ng-invalid-my-error` classes and can be bound to as `{{ someForm.$error.myError }}`.\n * @param {boolean} isValid Whether the current state is valid (true), invalid (false), pending\n * (undefined), or skipped (null). Pending is used for unfulfilled `$asyncValidators`.\n * Skipped is used by AngularJS when validators do not run because of parse errors and when\n * `$asyncValidators` do not run because any of the `$validators` failed.\n * @param {NgModelController | FormController} controller - The controller whose validity state is\n * triggering the change.\n */\naddSetValidityMethod({\n clazz: FormController,\n set(object, property, controller) {\n var list = object[property];\n if (!list) {\n object[property] = [controller];\n } else {\n var index = list.indexOf(controller);\n if (index === -1) {\n list.push(controller);\n }\n }\n },\n unset(object, property, controller) {\n var list = object[property];\n if (!list) {\n return;\n }\n arrayRemove(list, controller);\n if (list.length === 0) {\n delete object[property];\n }\n }\n});\n\n/**\n * @ngdoc directive\n * @name ngForm\n * @restrict EAC\n *\n * @description\n * Nestable alias of {@link ng.directive:form `form`} directive. HTML\n * does not allow nesting of form elements. It is useful to nest forms, for example if the validity of a\n * sub-group of controls needs to be determined.\n *\n * Note: the purpose of `ngForm` is to group controls,\n * but not to be a replacement for the `
` tag with all of its capabilities\n * (e.g. posting to the server, ...).\n *\n * @param {string=} ngForm|name Name of the form. If specified, the form controller will be published into\n * related scope, under this name.\n *\n */\n\n/**\n* @ngdoc directive\n* @name form\n* @restrict E\n*\n* @description\n* Directive that instantiates\n* {@link form.FormController FormController}.\n*\n* If the `name` attribute is specified, the form controller is published onto the current scope under\n* this name.\n*\n* ## Alias: {@link ng.directive:ngForm `ngForm`}\n*\n* In AngularJS, forms can be nested. This means that the outer form is valid when all of the child\n* forms are valid as well. However, browsers do not allow nesting of `` elements, so\n* AngularJS provides the {@link ng.directive:ngForm `ngForm`} directive, which behaves identically to\n* `form` but can be nested. Nested forms can be useful, for example, if the validity of a sub-group\n* of controls needs to be determined.\n*\n* ## CSS classes\n* - `ng-valid` is set if the form is valid.\n* - `ng-invalid` is set if the form is invalid.\n* - `ng-pending` is set if the form is pending.\n* - `ng-pristine` is set if the form is pristine.\n* - `ng-dirty` is set if the form is dirty.\n* - `ng-submitted` is set if the form was submitted.\n*\n* Keep in mind that ngAnimate can detect each of these classes when added and removed.\n*\n*\n* ## Submitting a form and preventing the default action\n*\n* Since the role of forms in client-side AngularJS applications is different than in classical\n* roundtrip apps, it is desirable for the browser not to translate the form submission into a full\n* page reload that sends the data to the server. Instead some javascript logic should be triggered\n* to handle the form submission in an application-specific way.\n*\n* For this reason, AngularJS prevents the default action (form submission to the server) unless the\n* `` element has an `action` attribute specified.\n*\n* You can use one of the following two ways to specify what javascript method should be called when\n* a form is submitted:\n*\n* - {@link ng.directive:ngSubmit ngSubmit} directive on the form element\n* - {@link ng.directive:ngClick ngClick} directive on the first\n * button or input field of type submit (input[type=submit])\n*\n* To prevent double execution of the handler, use only one of the {@link ng.directive:ngSubmit ngSubmit}\n* or {@link ng.directive:ngClick ngClick} directives.\n* This is because of the following form submission rules in the HTML specification:\n*\n* - If a form has only one input field then hitting enter in this field triggers form submit\n* (`ngSubmit`)\n* - if a form has 2+ input fields and no buttons or input[type=submit] then hitting enter\n* doesn't trigger submit\n* - if a form has one or more input fields and one or more buttons or input[type=submit] then\n* hitting enter in any of the input fields will trigger the click handler on the *first* button or\n* input[type=submit] (`ngClick`) *and* a submit handler on the enclosing form (`ngSubmit`)\n*\n* Any pending `ngModelOptions` changes will take place immediately when an enclosing form is\n* submitted. Note that `ngClick` events will occur before the model is updated. Use `ngSubmit`\n* to have access to the updated model.\n*\n* @animations\n* Animations in ngForm are triggered when any of the associated CSS classes are added and removed.\n* These classes are: `.ng-pristine`, `.ng-dirty`, `.ng-invalid` and `.ng-valid` as well as any\n* other validations that are performed within the form. Animations in ngForm are similar to how\n* they work in ngClass and animations can be hooked into using CSS transitions, keyframes as well\n* as JS animations.\n*\n* The following example shows a simple way to utilize CSS transitions to style a form element\n* that has been rendered as invalid after it has been validated:\n*\n*
\n* //be sure to include ngAnimate as a module to hook into more\n* //advanced animations\n* .my-form {\n*   transition:0.5s linear all;\n*   background: white;\n* }\n* .my-form.ng-invalid {\n*   background: red;\n*   color:white;\n* }\n* 
\n*\n* @example\n \n \n \n \n \n userType: \n Required!
\n userType = {{userType}}
\n myForm.input.$valid = {{myForm.input.$valid}}
\n myForm.input.$error = {{myForm.input.$error}}
\n myForm.$valid = {{myForm.$valid}}
\n myForm.$error.required = {{!!myForm.$error.required}}
\n \n
\n \n it('should initialize to model', function() {\n var userType = element(by.binding('userType'));\n var valid = element(by.binding('myForm.input.$valid'));\n\n expect(userType.getText()).toContain('guest');\n expect(valid.getText()).toContain('true');\n });\n\n it('should be invalid if empty', function() {\n var userType = element(by.binding('userType'));\n var valid = element(by.binding('myForm.input.$valid'));\n var userInput = element(by.model('userType'));\n\n userInput.clear();\n userInput.sendKeys('');\n\n expect(userType.getText()).toEqual('userType =');\n expect(valid.getText()).toContain('false');\n });\n \n
\n*\n* @param {string=} name Name of the form. If specified, the form controller will be published into\n* related scope, under this name.\n*/\nvar formDirectiveFactory = function(isNgForm) {\n return ['$timeout', '$parse', function($timeout, $parse) {\n var formDirective = {\n name: 'form',\n restrict: isNgForm ? 'EAC' : 'E',\n require: ['form', '^^?form'], //first is the form's own ctrl, second is an optional parent form\n controller: FormController,\n compile: function ngFormCompile(formElement, attr) {\n // Setup initial state of the control\n formElement.addClass(PRISTINE_CLASS).addClass(VALID_CLASS);\n\n var nameAttr = attr.name ? 'name' : (isNgForm && attr.ngForm ? 'ngForm' : false);\n\n return {\n pre: function ngFormPreLink(scope, formElement, attr, ctrls) {\n var controller = ctrls[0];\n\n // if `action` attr is not present on the form, prevent the default action (submission)\n if (!('action' in attr)) {\n // we can't use jq events because if a form is destroyed during submission the default\n // action is not prevented. see #1238\n //\n // IE 9 is not affected because it doesn't fire a submit event and try to do a full\n // page reload if the form was destroyed by submission of the form via a click handler\n // on a button in the form. Looks like a potential IE9 limited bug but unconfirmed.\n var handleFormSubmission = function(event) {\n scope.$apply(function() {\n controller.$commitViewValue();\n controller.$setSubmitted();\n });\n\n event.preventDefault();\n };\n\n formElement[0].addEventListener('submit', handleFormSubmission);\n\n // unregister the preventDefault listener so that we don't not leak memory but in a\n // way that will achieve the prevention of the default action.\n formElement.on('$destroy', function() {\n $timeout(function() {\n formElement[0].removeEventListener('submit', handleFormSubmission);\n }, 0, false);\n });\n }\n\n var parentFormCtrl = ctrls[1] || controller.$$parentForm;\n parentFormCtrl.$addControl(controller);\n\n var setter = nameAttr ? getSetter(controller.$name) : noop;\n\n if (nameAttr) {\n setter(scope, controller);\n attr.$observe(nameAttr, function(newValue) {\n if (controller.$name === newValue) return;\n setter(scope, undefined);\n controller.$$parentForm.$$renameControl(controller, newValue);\n setter = getSetter(controller.$name);\n setter(scope, controller);\n });\n }\n formElement.on('$destroy', function() {\n controller.$$parentForm.$removeControl(controller);\n setter(scope, undefined);\n extend(controller, nullFormCtrl); //stop propagating child destruction handlers upwards\n });\n }\n };\n }\n };\n\n return formDirective;\n\n function getSetter(expression) {\n if (expression === '') {\n //create an assignable expression, so forms with an empty name can be renamed later\n return $parse('this[\"\"]').assign;\n }\n return $parse(expression).assign || noop;\n }\n }];\n};\n\nvar formDirective = formDirectiveFactory();\nvar ngFormDirective = formDirectiveFactory(true);\n\n\n\n// helper methods\nfunction setupValidity(instance) {\n instance.$$classCache = {};\n instance.$$classCache[INVALID_CLASS] = !(instance.$$classCache[VALID_CLASS] = instance.$$element.hasClass(VALID_CLASS));\n}\nfunction addSetValidityMethod(context) {\n var clazz = context.clazz;\n var set = context.set;\n var unset = context.unset;\n\n clazz.prototype.$setValidity = function(validationErrorKey, state, controller) {\n if (isUndefined(state)) {\n createAndSet(this, '$pending', validationErrorKey, controller);\n } else {\n unsetAndCleanup(this, '$pending', validationErrorKey, controller);\n }\n if (!isBoolean(state)) {\n unset(this.$error, validationErrorKey, controller);\n unset(this.$$success, validationErrorKey, controller);\n } else {\n if (state) {\n unset(this.$error, validationErrorKey, controller);\n set(this.$$success, validationErrorKey, controller);\n } else {\n set(this.$error, validationErrorKey, controller);\n unset(this.$$success, validationErrorKey, controller);\n }\n }\n if (this.$pending) {\n cachedToggleClass(this, PENDING_CLASS, true);\n this.$valid = this.$invalid = undefined;\n toggleValidationCss(this, '', null);\n } else {\n cachedToggleClass(this, PENDING_CLASS, false);\n this.$valid = isObjectEmpty(this.$error);\n this.$invalid = !this.$valid;\n toggleValidationCss(this, '', this.$valid);\n }\n\n // re-read the state as the set/unset methods could have\n // combined state in this.$error[validationError] (used for forms),\n // where setting/unsetting only increments/decrements the value,\n // and does not replace it.\n var combinedState;\n if (this.$pending && this.$pending[validationErrorKey]) {\n combinedState = undefined;\n } else if (this.$error[validationErrorKey]) {\n combinedState = false;\n } else if (this.$$success[validationErrorKey]) {\n combinedState = true;\n } else {\n combinedState = null;\n }\n\n toggleValidationCss(this, validationErrorKey, combinedState);\n this.$$parentForm.$setValidity(validationErrorKey, combinedState, this);\n };\n\n function createAndSet(ctrl, name, value, controller) {\n if (!ctrl[name]) {\n ctrl[name] = {};\n }\n set(ctrl[name], value, controller);\n }\n\n function unsetAndCleanup(ctrl, name, value, controller) {\n if (ctrl[name]) {\n unset(ctrl[name], value, controller);\n }\n if (isObjectEmpty(ctrl[name])) {\n ctrl[name] = undefined;\n }\n }\n\n function cachedToggleClass(ctrl, className, switchValue) {\n if (switchValue && !ctrl.$$classCache[className]) {\n ctrl.$$animate.addClass(ctrl.$$element, className);\n ctrl.$$classCache[className] = true;\n } else if (!switchValue && ctrl.$$classCache[className]) {\n ctrl.$$animate.removeClass(ctrl.$$element, className);\n ctrl.$$classCache[className] = false;\n }\n }\n\n function toggleValidationCss(ctrl, validationErrorKey, isValid) {\n validationErrorKey = validationErrorKey ? '-' + snake_case(validationErrorKey, '-') : '';\n\n cachedToggleClass(ctrl, VALID_CLASS + validationErrorKey, isValid === true);\n cachedToggleClass(ctrl, INVALID_CLASS + validationErrorKey, isValid === false);\n }\n}\n\nfunction isObjectEmpty(obj) {\n if (obj) {\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n }\n return true;\n}\n'use strict';\n\n/* global\n VALID_CLASS: false,\n INVALID_CLASS: false,\n PRISTINE_CLASS: false,\n DIRTY_CLASS: false,\n ngModelMinErr: false\n*/\n\n// Regex code was initially obtained from SO prior to modification: https://stackoverflow.com/questions/3143070/javascript-regex-iso-datetime#answer-3143231\nvar ISO_DATE_REGEXP = /^\\d{4,}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+(?:[+-][0-2]\\d:[0-5]\\d|Z)$/;\n// eslint-disable-next-line max-len\nvar EMAIL_REGEXP = /^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/;\nvar NUMBER_REGEXP = /^\\s*(-|\\+)?(\\d+|(\\d*(\\.\\d*)))([eE][+-]?\\d+)?\\s*$/;\nvar DATE_REGEXP = /^(\\d{4,})-(\\d{2})-(\\d{2})$/;\nvar DATETIMELOCAL_REGEXP = /^(\\d{4,})-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d)(?::(\\d\\d)(\\.\\d{1,3})?)?$/;\nvar WEEK_REGEXP = /^(\\d{4,})-W(\\d\\d)$/;\nvar MONTH_REGEXP = /^(\\d{4,})-(\\d\\d)$/;\nvar TIME_REGEXP = /^(\\d\\d):(\\d\\d)(?::(\\d\\d)(\\.\\d{1,3})?)?$/;\n\nconst isUrlLike = (value) => {\n try {\n new URL(value);\n return true;\n } catch (error) {\n return false;\n }\n}\n\nvar PARTIAL_VALIDATION_EVENTS = 'keydown wheel mousedown';\nvar PARTIAL_VALIDATION_TYPES = createMap();\nforEach('date,datetime-local,month,time,week'.split(','), function(type) {\n PARTIAL_VALIDATION_TYPES[type] = true;\n});\n\nvar inputType = {\n\n /**\n * @ngdoc input\n * @name input[text]\n *\n * @description\n * Standard HTML text input with AngularJS data binding, inherited by most of the `input` elements.\n *\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string=} name Property name of the form under which the control is published.\n * @param {string=} required Adds `required` validation error key if the value is not entered.\n * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to\n * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of\n * `required` when you want to data-bind to the `required` attribute.\n * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than\n * minlength.\n * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than\n * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of\n * any length.\n * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string\n * that contains the regular expression body that will be converted to a regular expression\n * as in the ngPattern directive.\n * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue}\n * does not match a RegExp found by evaluating the AngularJS expression given in the attribute value.\n * If the expression evaluates to a RegExp object, then this is used directly.\n * If the expression evaluates to a string, then it will be converted to a RegExp\n * after wrapping it in `^` and `$` characters. For instance, `\"abc\"` will be converted to\n * `new RegExp('^abc$')`.
\n * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to\n * start at the index of the last search's match, thus not taking the whole input value into\n * account.\n * @param {string=} ngChange AngularJS expression to be executed when input changes due to user\n * interaction with the input element.\n * @param {boolean=} [ngTrim=true] If set to false AngularJS will not automatically trim the input.\n * This parameter is ignored for input[type=password] controls, which will never trim the\n * input.\n *\n * @example\n \n \n \n
\n \n
\n \n Required!\n \n Single word only!\n
\n text = {{example.text}}
\n myForm.input.$valid = {{myForm.input.$valid}}
\n myForm.input.$error = {{myForm.input.$error}}
\n myForm.$valid = {{myForm.$valid}}
\n myForm.$error.required = {{!!myForm.$error.required}}
\n
\n
\n \n var text = element(by.binding('example.text'));\n var valid = element(by.binding('myForm.input.$valid'));\n var input = element(by.model('example.text'));\n\n it('should initialize to model', function() {\n expect(text.getText()).toContain('guest');\n expect(valid.getText()).toContain('true');\n });\n\n it('should be invalid if empty', function() {\n input.clear();\n input.sendKeys('');\n\n expect(text.getText()).toEqual('text =');\n expect(valid.getText()).toContain('false');\n });\n\n it('should be invalid if multi word', function() {\n input.clear();\n input.sendKeys('hello world');\n\n expect(valid.getText()).toContain('false');\n });\n \n
\n */\n 'text': textInputType,\n\n /**\n * @ngdoc input\n * @name input[date]\n *\n * @description\n * Input with date validation and transformation. In browsers that do not yet support\n * the HTML5 date input, a text element will be used. In that case, text must be entered in a valid ISO-8601\n * date format (yyyy-MM-dd), for example: `2009-01-06`. Since many\n * modern browsers do not yet support this input type, it is important to provide cues to users on the\n * expected input format via a placeholder or label.\n *\n * The model must always be a Date object, otherwise AngularJS will throw an error.\n * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string.\n *\n * The timezone to be used to read/write the `Date` instance in the model can be defined using\n * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser.\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string=} name Property name of the form under which the control is published.\n * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a\n * valid ISO date string (yyyy-MM-dd). You can also use interpolation inside this attribute\n * (e.g. `min=\"{{minDate | date:'yyyy-MM-dd'}}\"`). Note that `min` will also add native HTML5\n * constraint validation.\n * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be\n * a valid ISO date string (yyyy-MM-dd). You can also use interpolation inside this attribute\n * (e.g. `max=\"{{maxDate | date:'yyyy-MM-dd'}}\"`). Note that `max` will also add native HTML5\n * constraint validation.\n * @param {(date|string)=} ngMin Sets the `min` validation constraint to the Date / ISO date string\n * the `ngMin` expression evaluates to. Note that it does not set the `min` attribute.\n * @param {(date|string)=} ngMax Sets the `max` validation constraint to the Date / ISO date string\n * the `ngMax` expression evaluates to. Note that it does not set the `max` attribute.\n * @param {string=} required Sets `required` validation error key if the value is not entered.\n * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to\n * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of\n * `required` when you want to data-bind to the `required` attribute.\n * @param {string=} ngChange AngularJS expression to be executed when input changes due to user\n * interaction with the input element.\n *\n * @example\n \n \n \n
\n \n \n
\n \n Required!\n \n Not a valid date!\n
\n value = {{example.value | date: \"yyyy-MM-dd\"}}
\n myForm.input.$valid = {{myForm.input.$valid}}
\n myForm.input.$error = {{myForm.input.$error}}
\n myForm.$valid = {{myForm.$valid}}
\n myForm.$error.required = {{!!myForm.$error.required}}
\n
\n
\n \n var value = element(by.binding('example.value | date: \"yyyy-MM-dd\"'));\n var valid = element(by.binding('myForm.input.$valid'));\n\n // currently protractor/webdriver does not support\n // sending keys to all known HTML5 input controls\n // for various browsers (see https://github.com/angular/protractor/issues/562).\n function setInput(val) {\n // set the value of the element and force validation.\n var scr = \"var ipt = document.getElementById('exampleInput'); \" +\n \"ipt.value = '\" + val + \"';\" +\n \"angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('\" + val + \"'); });\";\n browser.executeScript(scr);\n }\n\n it('should initialize to model', function() {\n expect(value.getText()).toContain('2013-10-22');\n expect(valid.getText()).toContain('myForm.input.$valid = true');\n });\n\n it('should be invalid if empty', function() {\n setInput('');\n expect(value.getText()).toEqual('value =');\n expect(valid.getText()).toContain('myForm.input.$valid = false');\n });\n\n it('should be invalid if over max', function() {\n setInput('2015-01-01');\n expect(value.getText()).toContain('');\n expect(valid.getText()).toContain('myForm.input.$valid = false');\n });\n \n
\n */\n 'date': createDateInputType('date', DATE_REGEXP,\n createDateParser(DATE_REGEXP, ['yyyy', 'MM', 'dd']),\n 'yyyy-MM-dd'),\n\n /**\n * @ngdoc input\n * @name input[datetime-local]\n *\n * @description\n * Input with datetime validation and transformation. In browsers that do not yet support\n * the HTML5 date input, a text element will be used. In that case, the text must be entered in a valid ISO-8601\n * local datetime format (yyyy-MM-ddTHH:mm:ss), for example: `2010-12-28T14:57:00`.\n *\n * The model must always be a Date object, otherwise AngularJS will throw an error.\n * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string.\n *\n * The timezone to be used to read/write the `Date` instance in the model can be defined using\n * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser.\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string=} name Property name of the form under which the control is published.\n * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`.\n * This must be a valid ISO datetime format (yyyy-MM-ddTHH:mm:ss). You can also use interpolation\n * inside this attribute (e.g. `min=\"{{minDatetimeLocal | date:'yyyy-MM-ddTHH:mm:ss'}}\"`).\n * Note that `min` will also add native HTML5 constraint validation.\n * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`.\n * This must be a valid ISO datetime format (yyyy-MM-ddTHH:mm:ss). You can also use interpolation\n * inside this attribute (e.g. `max=\"{{maxDatetimeLocal | date:'yyyy-MM-ddTHH:mm:ss'}}\"`).\n * Note that `max` will also add native HTML5 constraint validation.\n * @param {(date|string)=} ngMin Sets the `min` validation error key to the Date / ISO datetime string\n * the `ngMin` expression evaluates to. Note that it does not set the `min` attribute.\n * @param {(date|string)=} ngMax Sets the `max` validation error key to the Date / ISO datetime string\n * the `ngMax` expression evaluates to. Note that it does not set the `max` attribute.\n * @param {string=} required Sets `required` validation error key if the value is not entered.\n * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to\n * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of\n * `required` when you want to data-bind to the `required` attribute.\n * @param {string=} ngChange AngularJS expression to be executed when input changes due to user\n * interaction with the input element.\n *\n * @example\n \n \n \n
\n \n \n
\n \n Required!\n \n Not a valid date!\n
\n value = {{example.value | date: \"yyyy-MM-ddTHH:mm:ss\"}}
\n myForm.input.$valid = {{myForm.input.$valid}}
\n myForm.input.$error = {{myForm.input.$error}}
\n myForm.$valid = {{myForm.$valid}}
\n myForm.$error.required = {{!!myForm.$error.required}}
\n
\n
\n \n var value = element(by.binding('example.value | date: \"yyyy-MM-ddTHH:mm:ss\"'));\n var valid = element(by.binding('myForm.input.$valid'));\n\n // currently protractor/webdriver does not support\n // sending keys to all known HTML5 input controls\n // for various browsers (https://github.com/angular/protractor/issues/562).\n function setInput(val) {\n // set the value of the element and force validation.\n var scr = \"var ipt = document.getElementById('exampleInput'); \" +\n \"ipt.value = '\" + val + \"';\" +\n \"angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('\" + val + \"'); });\";\n browser.executeScript(scr);\n }\n\n it('should initialize to model', function() {\n expect(value.getText()).toContain('2010-12-28T14:57:00');\n expect(valid.getText()).toContain('myForm.input.$valid = true');\n });\n\n it('should be invalid if empty', function() {\n setInput('');\n expect(value.getText()).toEqual('value =');\n expect(valid.getText()).toContain('myForm.input.$valid = false');\n });\n\n it('should be invalid if over max', function() {\n setInput('2015-01-01T23:59:00');\n expect(value.getText()).toContain('');\n expect(valid.getText()).toContain('myForm.input.$valid = false');\n });\n \n
\n */\n 'datetime-local': createDateInputType('datetimelocal', DATETIMELOCAL_REGEXP,\n createDateParser(DATETIMELOCAL_REGEXP, ['yyyy', 'MM', 'dd', 'HH', 'mm', 'ss', 'sss']),\n 'yyyy-MM-ddTHH:mm:ss.sss'),\n\n /**\n * @ngdoc input\n * @name input[time]\n *\n * @description\n * Input with time validation and transformation. In browsers that do not yet support\n * the HTML5 time input, a text element will be used. In that case, the text must be entered in a valid ISO-8601\n * local time format (HH:mm:ss), for example: `14:57:00`. Model must be a Date object. This binding will always output a\n * Date object to the model of January 1, 1970, or local date `new Date(1970, 0, 1, HH, mm, ss)`.\n *\n * The model must always be a Date object, otherwise AngularJS will throw an error.\n * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string.\n *\n * The timezone to be used to read/write the `Date` instance in the model can be defined using\n * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser.\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string=} name Property name of the form under which the control is published.\n * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`.\n * This must be a valid ISO time format (HH:mm:ss). You can also use interpolation inside this\n * attribute (e.g. `min=\"{{minTime | date:'HH:mm:ss'}}\"`). Note that `min` will also add\n * native HTML5 constraint validation.\n * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`.\n * This must be a valid ISO time format (HH:mm:ss). You can also use interpolation inside this\n * attribute (e.g. `max=\"{{maxTime | date:'HH:mm:ss'}}\"`). Note that `max` will also add\n * native HTML5 constraint validation.\n * @param {(date|string)=} ngMin Sets the `min` validation constraint to the Date / ISO time string the\n * `ngMin` expression evaluates to. Note that it does not set the `min` attribute.\n * @param {(date|string)=} ngMax Sets the `max` validation constraint to the Date / ISO time string the\n * `ngMax` expression evaluates to. Note that it does not set the `max` attribute.\n * @param {string=} required Sets `required` validation error key if the value is not entered.\n * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to\n * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of\n * `required` when you want to data-bind to the `required` attribute.\n * @param {string=} ngChange AngularJS expression to be executed when input changes due to user\n * interaction with the input element.\n *\n * @example\n \n \n \n
\n \n \n
\n \n Required!\n \n Not a valid date!\n
\n value = {{example.value | date: \"HH:mm:ss\"}}
\n myForm.input.$valid = {{myForm.input.$valid}}
\n myForm.input.$error = {{myForm.input.$error}}
\n myForm.$valid = {{myForm.$valid}}
\n myForm.$error.required = {{!!myForm.$error.required}}
\n
\n
\n \n var value = element(by.binding('example.value | date: \"HH:mm:ss\"'));\n var valid = element(by.binding('myForm.input.$valid'));\n\n // currently protractor/webdriver does not support\n // sending keys to all known HTML5 input controls\n // for various browsers (https://github.com/angular/protractor/issues/562).\n function setInput(val) {\n // set the value of the element and force validation.\n var scr = \"var ipt = document.getElementById('exampleInput'); \" +\n \"ipt.value = '\" + val + \"';\" +\n \"angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('\" + val + \"'); });\";\n browser.executeScript(scr);\n }\n\n it('should initialize to model', function() {\n expect(value.getText()).toContain('14:57:00');\n expect(valid.getText()).toContain('myForm.input.$valid = true');\n });\n\n it('should be invalid if empty', function() {\n setInput('');\n expect(value.getText()).toEqual('value =');\n expect(valid.getText()).toContain('myForm.input.$valid = false');\n });\n\n it('should be invalid if over max', function() {\n setInput('23:59:00');\n expect(value.getText()).toContain('');\n expect(valid.getText()).toContain('myForm.input.$valid = false');\n });\n \n
\n */\n 'time': createDateInputType('time', TIME_REGEXP,\n createDateParser(TIME_REGEXP, ['HH', 'mm', 'ss', 'sss']),\n 'HH:mm:ss.sss'),\n\n /**\n * @ngdoc input\n * @name input[week]\n *\n * @description\n * Input with week-of-the-year validation and transformation to Date. In browsers that do not yet support\n * the HTML5 week input, a text element will be used. In that case, the text must be entered in a valid ISO-8601\n * week format (yyyy-W##), for example: `2013-W02`.\n *\n * The model must always be a Date object, otherwise AngularJS will throw an error.\n * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string.\n *\n * The timezone to be used to read/write the `Date` instance in the model can be defined using\n * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser.\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string=} name Property name of the form under which the control is published.\n * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`.\n * This must be a valid ISO week format (yyyy-W##). You can also use interpolation inside this\n * attribute (e.g. `min=\"{{minWeek | date:'yyyy-Www'}}\"`). Note that `min` will also add\n * native HTML5 constraint validation.\n * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`.\n * This must be a valid ISO week format (yyyy-W##). You can also use interpolation inside this\n * attribute (e.g. `max=\"{{maxWeek | date:'yyyy-Www'}}\"`). Note that `max` will also add\n * native HTML5 constraint validation.\n * @param {(date|string)=} ngMin Sets the `min` validation constraint to the Date / ISO week string\n * the `ngMin` expression evaluates to. Note that it does not set the `min` attribute.\n * @param {(date|string)=} ngMax Sets the `max` validation constraint to the Date / ISO week string\n * the `ngMax` expression evaluates to. Note that it does not set the `max` attribute.\n * @param {string=} required Sets `required` validation error key if the value is not entered.\n * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to\n * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of\n * `required` when you want to data-bind to the `required` attribute.\n * @param {string=} ngChange AngularJS expression to be executed when input changes due to user\n * interaction with the input element.\n *\n * @example\n \n \n \n
\n \n
\n \n Required!\n \n Not a valid date!\n
\n value = {{example.value | date: \"yyyy-Www\"}}
\n myForm.input.$valid = {{myForm.input.$valid}}
\n myForm.input.$error = {{myForm.input.$error}}
\n myForm.$valid = {{myForm.$valid}}
\n myForm.$error.required = {{!!myForm.$error.required}}
\n
\n
\n \n var value = element(by.binding('example.value | date: \"yyyy-Www\"'));\n var valid = element(by.binding('myForm.input.$valid'));\n\n // currently protractor/webdriver does not support\n // sending keys to all known HTML5 input controls\n // for various browsers (https://github.com/angular/protractor/issues/562).\n function setInput(val) {\n // set the value of the element and force validation.\n var scr = \"var ipt = document.getElementById('exampleInput'); \" +\n \"ipt.value = '\" + val + \"';\" +\n \"angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('\" + val + \"'); });\";\n browser.executeScript(scr);\n }\n\n it('should initialize to model', function() {\n expect(value.getText()).toContain('2013-W01');\n expect(valid.getText()).toContain('myForm.input.$valid = true');\n });\n\n it('should be invalid if empty', function() {\n setInput('');\n expect(value.getText()).toEqual('value =');\n expect(valid.getText()).toContain('myForm.input.$valid = false');\n });\n\n it('should be invalid if over max', function() {\n setInput('2015-W01');\n expect(value.getText()).toContain('');\n expect(valid.getText()).toContain('myForm.input.$valid = false');\n });\n \n
\n */\n 'week': createDateInputType('week', WEEK_REGEXP, weekParser, 'yyyy-Www'),\n\n /**\n * @ngdoc input\n * @name input[month]\n *\n * @description\n * Input with month validation and transformation. In browsers that do not yet support\n * the HTML5 month input, a text element will be used. In that case, the text must be entered in a valid ISO-8601\n * month format (yyyy-MM), for example: `2009-01`.\n *\n * The model must always be a Date object, otherwise AngularJS will throw an error.\n * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string.\n * If the model is not set to the first of the month, the next view to model update will set it\n * to the first of the month.\n *\n * The timezone to be used to read/write the `Date` instance in the model can be defined using\n * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser.\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string=} name Property name of the form under which the control is published.\n * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`.\n * This must be a valid ISO month format (yyyy-MM). You can also use interpolation inside this\n * attribute (e.g. `min=\"{{minMonth | date:'yyyy-MM'}}\"`). Note that `min` will also add\n * native HTML5 constraint validation.\n * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`.\n * This must be a valid ISO month format (yyyy-MM). You can also use interpolation inside this\n * attribute (e.g. `max=\"{{maxMonth | date:'yyyy-MM'}}\"`). Note that `max` will also add\n * native HTML5 constraint validation.\n * @param {(date|string)=} ngMin Sets the `min` validation constraint to the Date / ISO week string\n * the `ngMin` expression evaluates to. Note that it does not set the `min` attribute.\n * @param {(date|string)=} ngMax Sets the `max` validation constraint to the Date / ISO week string\n * the `ngMax` expression evaluates to. Note that it does not set the `max` attribute.\n\n * @param {string=} required Sets `required` validation error key if the value is not entered.\n * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to\n * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of\n * `required` when you want to data-bind to the `required` attribute.\n * @param {string=} ngChange AngularJS expression to be executed when input changes due to user\n * interaction with the input element.\n *\n * @example\n \n \n \n
\n \n \n
\n \n Required!\n \n Not a valid month!\n
\n value = {{example.value | date: \"yyyy-MM\"}}
\n myForm.input.$valid = {{myForm.input.$valid}}
\n myForm.input.$error = {{myForm.input.$error}}
\n myForm.$valid = {{myForm.$valid}}
\n myForm.$error.required = {{!!myForm.$error.required}}
\n
\n
\n \n var value = element(by.binding('example.value | date: \"yyyy-MM\"'));\n var valid = element(by.binding('myForm.input.$valid'));\n\n // currently protractor/webdriver does not support\n // sending keys to all known HTML5 input controls\n // for various browsers (https://github.com/angular/protractor/issues/562).\n function setInput(val) {\n // set the value of the element and force validation.\n var scr = \"var ipt = document.getElementById('exampleInput'); \" +\n \"ipt.value = '\" + val + \"';\" +\n \"angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('\" + val + \"'); });\";\n browser.executeScript(scr);\n }\n\n it('should initialize to model', function() {\n expect(value.getText()).toContain('2013-10');\n expect(valid.getText()).toContain('myForm.input.$valid = true');\n });\n\n it('should be invalid if empty', function() {\n setInput('');\n expect(value.getText()).toEqual('value =');\n expect(valid.getText()).toContain('myForm.input.$valid = false');\n });\n\n it('should be invalid if over max', function() {\n setInput('2015-01');\n expect(value.getText()).toContain('');\n expect(valid.getText()).toContain('myForm.input.$valid = false');\n });\n \n
\n */\n 'month': createDateInputType('month', MONTH_REGEXP,\n createDateParser(MONTH_REGEXP, ['yyyy', 'MM']),\n 'yyyy-MM'),\n\n /**\n * @ngdoc input\n * @name input[number]\n *\n * @description\n * Text input with number validation and transformation. Sets the `number` validation\n * error if not a valid number.\n *\n *
\n * The model must always be of type `number` otherwise AngularJS will throw an error.\n * Be aware that a string containing a number is not enough. See the {@link ngModel:numfmt}\n * error docs for more information and an example of how to convert your model if necessary.\n *
\n *\n * ## Issues with HTML5 constraint validation\n *\n * In browsers that follow the\n * [HTML5 specification](https://html.spec.whatwg.org/multipage/forms.html#number-state-%28type=number%29),\n * `input[number]` does not work as expected with {@link ngModelOptions `ngModelOptions.allowInvalid`}.\n * If a non-number is entered in the input, the browser will report the value as an empty string,\n * which means the view / model values in `ngModel` and subsequently the scope value\n * will also be an empty string.\n *\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string=} name Property name of the form under which the control is published.\n * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`.\n * Can be interpolated.\n * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`.\n * Can be interpolated.\n * @param {string=} ngMin Like `min`, sets the `min` validation error key if the value entered is less than `ngMin`,\n * but does not trigger HTML5 native validation. Takes an expression.\n * @param {string=} ngMax Like `max`, sets the `max` validation error key if the value entered is greater than `ngMax`,\n * but does not trigger HTML5 native validation. Takes an expression.\n * @param {string=} step Sets the `step` validation error key if the value entered does not fit the `step` constraint.\n * Can be interpolated.\n * @param {string=} ngStep Like `step`, sets the `step` validation error key if the value entered does not fit the `ngStep` constraint,\n * but does not trigger HTML5 native validation. Takes an expression.\n * @param {string=} required Sets `required` validation error key if the value is not entered.\n * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to\n * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of\n * `required` when you want to data-bind to the `required` attribute.\n * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than\n * minlength.\n * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than\n * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of\n * any length.\n * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string\n * that contains the regular expression body that will be converted to a regular expression\n * as in the ngPattern directive.\n * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue}\n * does not match a RegExp found by evaluating the AngularJS expression given in the attribute value.\n * If the expression evaluates to a RegExp object, then this is used directly.\n * If the expression evaluates to a string, then it will be converted to a RegExp\n * after wrapping it in `^` and `$` characters. For instance, `\"abc\"` will be converted to\n * `new RegExp('^abc$')`.
\n * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to\n * start at the index of the last search's match, thus not taking the whole input value into\n * account.\n * @param {string=} ngChange AngularJS expression to be executed when input changes due to user\n * interaction with the input element.\n *\n * @example\n \n \n \n
\n \n
\n \n Required!\n \n Not valid number!\n
\n value = {{example.value}}
\n myForm.input.$valid = {{myForm.input.$valid}}
\n myForm.input.$error = {{myForm.input.$error}}
\n myForm.$valid = {{myForm.$valid}}
\n myForm.$error.required = {{!!myForm.$error.required}}
\n
\n
\n \n var value = element(by.binding('example.value'));\n var valid = element(by.binding('myForm.input.$valid'));\n var input = element(by.model('example.value'));\n\n it('should initialize to model', function() {\n expect(value.getText()).toContain('12');\n expect(valid.getText()).toContain('true');\n });\n\n it('should be invalid if empty', function() {\n input.clear();\n input.sendKeys('');\n expect(value.getText()).toEqual('value =');\n expect(valid.getText()).toContain('false');\n });\n\n it('should be invalid if over max', function() {\n input.clear();\n input.sendKeys('123');\n expect(value.getText()).toEqual('value =');\n expect(valid.getText()).toContain('false');\n });\n \n
\n */\n 'number': numberInputType,\n\n\n /**\n * @ngdoc input\n * @name input[url]\n *\n * @description\n * Text input with URL validation. Sets the `url` validation error key if the content is not a\n * valid URL.\n *\n *
\n * **Note:** `input[url]` uses a regex to validate urls that is derived from the regex\n * used in Chromium. If you need stricter validation, you can use `ng-pattern` or modify\n * the built-in validators (see the {@link guide/forms Forms guide})\n *
\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string=} name Property name of the form under which the control is published.\n * @param {string=} required Sets `required` validation error key if the value is not entered.\n * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to\n * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of\n * `required` when you want to data-bind to the `required` attribute.\n * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than\n * minlength.\n * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than\n * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of\n * any length.\n * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string\n * that contains the regular expression body that will be converted to a regular expression\n * as in the ngPattern directive.\n * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue}\n * does not match a RegExp found by evaluating the AngularJS expression given in the attribute value.\n * If the expression evaluates to a RegExp object, then this is used directly.\n * If the expression evaluates to a string, then it will be converted to a RegExp\n * after wrapping it in `^` and `$` characters. For instance, `\"abc\"` will be converted to\n * `new RegExp('^abc$')`.
\n * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to\n * start at the index of the last search's match, thus not taking the whole input value into\n * account.\n * @param {string=} ngChange AngularJS expression to be executed when input changes due to user\n * interaction with the input element.\n *\n * @example\n \n \n \n
\n
\n \n var text = element(by.binding('url.text'));\n var valid = element(by.binding('myForm.input.$valid'));\n var input = element(by.model('url.text'));\n\n it('should initialize to model', function() {\n expect(text.getText()).toContain('http://google.com');\n expect(valid.getText()).toContain('true');\n });\n\n it('should be invalid if empty', function() {\n input.clear();\n input.sendKeys('');\n\n expect(text.getText()).toEqual('text =');\n expect(valid.getText()).toContain('false');\n });\n\n it('should be invalid if not url', function() {\n input.clear();\n input.sendKeys('box');\n\n expect(valid.getText()).toContain('false');\n });\n \n
\n */\n 'url': urlInputType,\n\n\n /**\n * @ngdoc input\n * @name input[email]\n *\n * @description\n * Text input with email validation. Sets the `email` validation error key if not a valid email\n * address.\n *\n *
\n * **Note:** `input[email]` uses a regex to validate email addresses that is derived from the regex\n * used in Chromium. If you need stricter validation (e.g. requiring a top-level domain), you can\n * use `ng-pattern` or modify the built-in validators (see the {@link guide/forms Forms guide})\n *
\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string=} name Property name of the form under which the control is published.\n * @param {string=} required Sets `required` validation error key if the value is not entered.\n * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to\n * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of\n * `required` when you want to data-bind to the `required` attribute.\n * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than\n * minlength.\n * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than\n * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of\n * any length.\n * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string\n * that contains the regular expression body that will be converted to a regular expression\n * as in the ngPattern directive.\n * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue}\n * does not match a RegExp found by evaluating the AngularJS expression given in the attribute value.\n * If the expression evaluates to a RegExp object, then this is used directly.\n * If the expression evaluates to a string, then it will be converted to a RegExp\n * after wrapping it in `^` and `$` characters. For instance, `\"abc\"` will be converted to\n * `new RegExp('^abc$')`.
\n * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to\n * start at the index of the last search's match, thus not taking the whole input value into\n * account.\n * @param {string=} ngChange AngularJS expression to be executed when input changes due to user\n * interaction with the input element.\n *\n * @example\n \n \n \n
\n \n
\n \n Required!\n \n Not valid email!\n
\n text = {{email.text}}
\n myForm.input.$valid = {{myForm.input.$valid}}
\n myForm.input.$error = {{myForm.input.$error}}
\n myForm.$valid = {{myForm.$valid}}
\n myForm.$error.required = {{!!myForm.$error.required}}
\n myForm.$error.email = {{!!myForm.$error.email}}
\n
\n
\n \n var text = element(by.binding('email.text'));\n var valid = element(by.binding('myForm.input.$valid'));\n var input = element(by.model('email.text'));\n\n it('should initialize to model', function() {\n expect(text.getText()).toContain('me@example.com');\n expect(valid.getText()).toContain('true');\n });\n\n it('should be invalid if empty', function() {\n input.clear();\n input.sendKeys('');\n expect(text.getText()).toEqual('text =');\n expect(valid.getText()).toContain('false');\n });\n\n it('should be invalid if not email', function() {\n input.clear();\n input.sendKeys('xxx');\n\n expect(valid.getText()).toContain('false');\n });\n \n
\n */\n 'email': emailInputType,\n\n\n /**\n * @ngdoc input\n * @name input[radio]\n *\n * @description\n * HTML radio button.\n *\n * **Note:**
\n * All inputs controlled by {@link ngModel ngModel} (including those of type `radio`) will use the\n * value of their `name` attribute to determine the property under which their\n * {@link ngModel.NgModelController NgModelController} will be published on the parent\n * {@link form.FormController FormController}. Thus, if you use the same `name` for multiple\n * inputs of a form (e.g. a group of radio inputs), only _one_ `NgModelController` will be\n * published on the parent `FormController` under that name. The rest of the controllers will\n * continue to work as expected, but you won't be able to access them as properties on the parent\n * `FormController`.\n *\n *
\n *

\n * In plain HTML forms, the `name` attribute is used to identify groups of radio inputs, so\n * that the browser can manage their state (checked/unchecked) based on the state of other\n * inputs in the same group.\n *

\n *

\n * In AngularJS forms, this is not necessary. The input's state will be updated based on the\n * value of the underlying model data.\n *

\n *
\n *\n *
\n * If you omit the `name` attribute on a radio input, `ngModel` will automatically assign it a\n * unique name.\n *
\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string} value The value to which the `ngModel` expression should be set when selected.\n * Note that `value` only supports `string` values, i.e. the scope model needs to be a string,\n * too. Use `ngValue` if you need complex models (`number`, `object`, ...).\n * @param {string=} name Property name of the form under which the control is published.\n * @param {string=} ngChange AngularJS expression to be executed when input changes due to user\n * interaction with the input element.\n * @param {string} ngValue AngularJS expression to which `ngModel` will be be set when the radio\n * is selected. Should be used instead of the `value` attribute if you need\n * a non-string `ngModel` (`boolean`, `array`, ...).\n *\n * @example\n \n \n \n
\n
\n
\n
\n color = {{color.name | json}}
\n
\n Note that `ng-value=\"specialValue\"` sets radio item's value to be the value of `$scope.specialValue`.\n
\n \n it('should change state', function() {\n var inputs = element.all(by.model('color.name'));\n var color = element(by.binding('color.name'));\n\n expect(color.getText()).toContain('blue');\n\n inputs.get(0).click();\n expect(color.getText()).toContain('red');\n\n inputs.get(1).click();\n expect(color.getText()).toContain('green');\n });\n \n
\n */\n 'radio': radioInputType,\n\n /**\n * @ngdoc input\n * @name input[range]\n *\n * @description\n * Native range input with validation and transformation.\n *\n * The model for the range input must always be a `Number`.\n *\n * Browsers that support range (latest Chrome, Safari, Firefox, Edge) treat `input[range]`\n * in a way that never allows the input to hold an invalid value. That means:\n * - any non-numerical value is set to `(max + min) / 2`.\n * - any numerical value that is less than the current min val, or greater than the current max val\n * is set to the min / max val respectively.\n * - additionally, the current `step` is respected, so the nearest value that satisfies a step\n * is used.\n *\n * See the [HTML Spec on input[type=range]](https://www.w3.org/TR/html5/forms.html#range-state-(type=range))\n * for more info.\n *\n * This has the following consequences for AngularJS:\n *\n * Since the element value should always reflect the current model value, a range input\n * will set the bound ngModel expression to the value that the browser has set for the\n * input element. For example, in the following input ``,\n * if the application sets `model.value = null`, the browser will set the input to `'50'`.\n * AngularJS will then set the model to `50`, to prevent input and model value being out of sync.\n *\n * That means the model for range will immediately be set to `50` after `ngModel` has been\n * initialized. It also means a range input can never have the required error.\n *\n * This does not only affect changes to the model value, but also to the values of the `min`,\n * `max`, and `step` attributes. When these change in a way that will cause the browser to modify\n * the input value, AngularJS will also update the model value.\n *\n * Automatic value adjustment also means that a range input element can never have the `required`,\n * `min`, or `max` errors.\n *\n * However, `step` is currently only fully implemented by Firefox. Other browsers have problems\n * when the step value changes dynamically - they do not adjust the element value correctly, but\n * instead may set the `stepMismatch` error. If that's the case, the AngularJS will set the `step`\n * error on the input, and set the model to `undefined`.\n *\n * Note that `input[range]` is not compatible with`ngMax`, `ngMin`, and `ngStep`, because they do\n * not set the `min` and `max` attributes, which means that the browser won't automatically adjust\n * the input value based on their values, and will always assume min = 0, max = 100, and step = 1.\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string=} name Property name of the form under which the control is published.\n * @param {string=} min Sets the `min` validation to ensure that the value entered is greater\n * than `min`. Can be interpolated.\n * @param {string=} max Sets the `max` validation to ensure that the value entered is less than `max`.\n * Can be interpolated.\n * @param {string=} step Sets the `step` validation to ensure that the value entered matches the `step`\n * Can be interpolated.\n * @param {string=} ngChange AngularJS expression to be executed when the ngModel value changes due\n * to user interaction with the input element.\n * @param {expression=} ngChecked If the expression is truthy, then the `checked` attribute will be set on the\n * element. **Note** : `ngChecked` should not be used alongside `ngModel`.\n * Checkout {@link ng.directive:ngChecked ngChecked} for usage.\n *\n * @example\n \n \n \n
\n\n Model as range: \n
\n Model as number:
\n Min:
\n Max:
\n value = {{value}}
\n myForm.range.$valid = {{myForm.range.$valid}}
\n myForm.range.$error = {{myForm.range.$error}}\n
\n
\n
\n\n * ## Range Input with ngMin & ngMax attributes\n\n * @example\n \n \n \n
\n Model as range: \n
\n Model as number:
\n Min:
\n Max:
\n value = {{value}}
\n myForm.range.$valid = {{myForm.range.$valid}}
\n myForm.range.$error = {{myForm.range.$error}}\n
\n
\n
\n\n */\n 'range': rangeInputType,\n\n /**\n * @ngdoc input\n * @name input[checkbox]\n *\n * @description\n * HTML checkbox.\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string=} name Property name of the form under which the control is published.\n * @param {expression=} ngTrueValue The value to which the expression should be set when selected.\n * @param {expression=} ngFalseValue The value to which the expression should be set when not selected.\n * @param {string=} ngChange AngularJS expression to be executed when input changes due to user\n * interaction with the input element.\n *\n * @example\n \n \n \n
\n
\n
\n value1 = {{checkboxModel.value1}}
\n value2 = {{checkboxModel.value2}}
\n
\n
\n \n it('should change state', function() {\n var value1 = element(by.binding('checkboxModel.value1'));\n var value2 = element(by.binding('checkboxModel.value2'));\n\n expect(value1.getText()).toContain('true');\n expect(value2.getText()).toContain('YES');\n\n element(by.model('checkboxModel.value1')).click();\n element(by.model('checkboxModel.value2')).click();\n\n expect(value1.getText()).toContain('false');\n expect(value2.getText()).toContain('NO');\n });\n \n
\n */\n 'checkbox': checkboxInputType,\n\n 'hidden': noop,\n 'button': noop,\n 'submit': noop,\n 'reset': noop,\n 'file': noop\n};\n\nfunction stringBasedInputType(ctrl) {\n ctrl.$formatters.push(function(value) {\n return ctrl.$isEmpty(value) ? value : value.toString();\n });\n}\n\nfunction textInputType(scope, element, attr, ctrl, $sniffer, $browser) {\n baseInputType(scope, element, attr, ctrl, $sniffer, $browser);\n stringBasedInputType(ctrl);\n}\n\nfunction baseInputType(scope, element, attr, ctrl, $sniffer, $browser) {\n var type = lowercase(element[0].type);\n\n // In composition mode, users are still inputting intermediate text buffer,\n // hold the listener until composition is done.\n // More about composition events: https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent\n if (!$sniffer.android) {\n var composing = false;\n\n element.on('compositionstart', function() {\n composing = true;\n });\n\n element.on('compositionupdate', function(ev) {\n // End composition when ev.data is empty string on 'compositionupdate' event.\n // When the input de-focusses (e.g. by clicking away), IE triggers 'compositionupdate'\n // instead of 'compositionend'.\n if (isUndefined(ev.data) || ev.data === '') {\n composing = false;\n }\n });\n\n element.on('compositionend', function() {\n composing = false;\n listener();\n });\n }\n\n var timeout;\n\n var listener = function(ev) {\n if (timeout) {\n $browser.defer.cancel(timeout);\n timeout = null;\n }\n if (composing) return;\n var value = element.val();\n var event = ev && ev.type;\n\n // By default we will trim the value\n // If the attribute ng-trim exists we will avoid trimming\n // If input type is 'password', the value is never trimmed\n if (type !== 'password' && (!attr.ngTrim || attr.ngTrim !== 'false')) {\n value = trim(value);\n }\n\n // If a control is suffering from bad input (due to native validators), browsers discard its\n // value, so it may be necessary to revalidate (by calling $setViewValue again) even if the\n // control's value is the same empty value twice in a row.\n if (ctrl.$viewValue !== value || (value === '' && ctrl.$$hasNativeValidators)) {\n ctrl.$setViewValue(value, event);\n }\n };\n\n element.on('input', listener);\n // if user paste into input using mouse on older browser\n // or form autocomplete on newer browser, we need \"change\" event to catch it\n element.on('change', listener);\n\n // Some native input types (date-family) have the ability to change validity without\n // firing any input/change events.\n // For these event types, when native validators are present and the browser supports the type,\n // check for validity changes on various DOM events.\n if (PARTIAL_VALIDATION_TYPES[type] && ctrl.$$hasNativeValidators && type === attr.type) {\n element.on(PARTIAL_VALIDATION_EVENTS, /** @this */ function(ev) {\n if (!timeout) {\n var validity = this[VALIDITY_STATE_PROPERTY];\n var origBadInput = validity.badInput;\n var origTypeMismatch = validity.typeMismatch;\n timeout = $browser.defer(function() {\n timeout = null;\n if (validity.badInput !== origBadInput || validity.typeMismatch !== origTypeMismatch) {\n listener(ev);\n }\n });\n }\n });\n }\n\n ctrl.$render = function() {\n // Workaround for Firefox validation #12102.\n var value = ctrl.$isEmpty(ctrl.$viewValue) ? '' : ctrl.$viewValue;\n if (element.val() !== value) {\n element.val(value);\n }\n };\n}\n\nfunction weekParser(isoWeek, existingDate) {\n if (isDate(isoWeek)) {\n return isoWeek;\n }\n\n if (isString(isoWeek)) {\n WEEK_REGEXP.lastIndex = 0;\n var parts = WEEK_REGEXP.exec(isoWeek);\n if (parts) {\n var year = +parts[1];\n var week = +parts[2];\n var hours = 0;\n var minutes = 0;\n var seconds = 0;\n var milliseconds = 0;\n var firstThurs = getFirstThursdayOfYear(year);\n var addDays = (week - 1) * 7;\n\n if (existingDate) {\n hours = existingDate.getHours();\n minutes = existingDate.getMinutes();\n seconds = existingDate.getSeconds();\n milliseconds = existingDate.getMilliseconds();\n }\n\n return new Date(year, 0, firstThurs.getDate() + addDays, hours, minutes, seconds, milliseconds);\n }\n }\n\n return NaN;\n}\n\nfunction createDateParser(regexp, mapping) {\n return function(iso, date) {\n var parts;\n var map;\n\n if (isDate(iso)) {\n return iso;\n }\n\n if (isString(iso)) {\n // When a date is JSON'ified to wraps itself inside of an extra\n // set of double quotes. This makes the date parsing code unable\n // to match the date string and parse it as a date.\n if (iso.charAt(0) === '\"' && iso.charAt(iso.length - 1) === '\"') {\n iso = iso.substring(1, iso.length - 1);\n }\n if (ISO_DATE_REGEXP.test(iso)) {\n return new Date(iso);\n }\n regexp.lastIndex = 0;\n parts = regexp.exec(iso);\n\n if (parts) {\n parts.shift();\n if (date) {\n map = {\n yyyy: date.getFullYear(),\n MM: date.getMonth() + 1,\n dd: date.getDate(),\n HH: date.getHours(),\n mm: date.getMinutes(),\n ss: date.getSeconds(),\n sss: date.getMilliseconds() / 1000\n };\n } else {\n map = { yyyy: 1970, MM: 1, dd: 1, HH: 0, mm: 0, ss: 0, sss: 0 };\n }\n\n forEach(parts, function(part, index) {\n if (index < mapping.length) {\n map[mapping[index]] = +part;\n }\n });\n return new Date(map.yyyy, map.MM - 1, map.dd, map.HH, map.mm, map.ss || 0, map.sss * 1000 || 0);\n }\n }\n\n return NaN;\n };\n}\n\nfunction createDateInputType(type, regexp, parseDate, format) {\n return function dynamicDateInputType(scope, element, attr, ctrl, $sniffer, $browser, $filter) {\n badInputChecker(scope, element, attr, ctrl);\n baseInputType(scope, element, attr, ctrl, $sniffer, $browser);\n var previousDate;\n var previousTimezone;\n\n ctrl.$$parserName = type;\n ctrl.$parsers.push(function(value) {\n if (ctrl.$isEmpty(value)) return null;\n\n if (regexp.test(value)) {\n // Note: We cannot read ctrl.$modelValue, as there might be a different\n // parser/formatter in the processing chain so that the model\n // contains some different data format!\n return parseDateAndConvertTimeZoneToLocal(value, previousDate);\n }\n return undefined;\n });\n\n ctrl.$formatters.push(function(value) {\n if (value && !isDate(value)) {\n throw ngModelMinErr('datefmt', 'Expected `{0}` to be a date', value);\n }\n if (isValidDate(value)) {\n previousDate = value;\n var timezone = ctrl.$options.getOption('timezone');\n if (timezone) {\n previousTimezone = timezone;\n previousDate = convertTimezoneToLocal(previousDate, timezone, true);\n }\n return $filter('date')(value, format, timezone);\n } else {\n previousDate = null;\n previousTimezone = null;\n return '';\n }\n });\n\n if (isDefined(attr.min) || attr.ngMin) {\n var minVal;\n ctrl.$validators.min = function(value) {\n return !isValidDate(value) || isUndefined(minVal) || parseDate(value) >= minVal;\n };\n attr.$observe('min', function(val) {\n minVal = parseObservedDateValue(val);\n ctrl.$validate();\n });\n }\n\n if (isDefined(attr.max) || attr.ngMax) {\n var maxVal;\n ctrl.$validators.max = function(value) {\n return !isValidDate(value) || isUndefined(maxVal) || parseDate(value) <= maxVal;\n };\n attr.$observe('max', function(val) {\n maxVal = parseObservedDateValue(val);\n ctrl.$validate();\n });\n }\n\n function isValidDate(value) {\n // Invalid Date: getTime() returns NaN\n return value && !(value.getTime && value.getTime() !== value.getTime());\n }\n\n function parseObservedDateValue(val) {\n return isDefined(val) && !isDate(val) ? parseDateAndConvertTimeZoneToLocal(val) || undefined : val;\n }\n\n function parseDateAndConvertTimeZoneToLocal(value, previousDate) {\n var timezone = ctrl.$options.getOption('timezone');\n\n if (previousTimezone && previousTimezone !== timezone) {\n // If the timezone has changed, adjust the previousDate to the default timezone\n // so that the new date is converted with the correct timezone offset\n previousDate = addDateMinutes(previousDate, timezoneToOffset(previousTimezone));\n }\n\n var parsedDate = parseDate(value, previousDate);\n\n if (!isNaN(parsedDate) && timezone) {\n parsedDate = convertTimezoneToLocal(parsedDate, timezone);\n }\n return parsedDate;\n }\n };\n}\n\nfunction badInputChecker(scope, element, attr, ctrl) {\n var node = element[0];\n var nativeValidation = ctrl.$$hasNativeValidators = isObject(node.validity);\n if (nativeValidation) {\n ctrl.$parsers.push(function(value) {\n var validity = element.prop(VALIDITY_STATE_PROPERTY) || {};\n return validity.badInput || validity.typeMismatch ? undefined : value;\n });\n }\n}\n\nfunction numberFormatterParser(ctrl) {\n ctrl.$$parserName = 'number';\n ctrl.$parsers.push(function(value) {\n if (ctrl.$isEmpty(value)) return null;\n if (NUMBER_REGEXP.test(value)) return parseFloat(value);\n return undefined;\n });\n\n ctrl.$formatters.push(function(value) {\n if (!ctrl.$isEmpty(value)) {\n if (!isNumber(value)) {\n throw ngModelMinErr('numfmt', 'Expected `{0}` to be a number', value);\n }\n value = value.toString();\n }\n return value;\n });\n}\n\nfunction parseNumberAttrVal(val) {\n if (isDefined(val) && !isNumber(val)) {\n val = parseFloat(val);\n }\n return !isNumberNaN(val) ? val : undefined;\n}\n\nfunction isNumberInteger(num) {\n // See http://stackoverflow.com/questions/14636536/how-to-check-if-a-variable-is-an-integer-in-javascript#14794066\n // (minus the assumption that `num` is a number)\n\n // eslint-disable-next-line no-bitwise\n return (num | 0) === num;\n}\n\nfunction countDecimals(num) {\n var numString = num.toString();\n var decimalSymbolIndex = numString.indexOf('.');\n\n if (decimalSymbolIndex === -1) {\n if (-1 < num && num < 1) {\n // It may be in the exponential notation format (`1e-X`)\n var match = /e-(\\d+)$/.exec(numString);\n\n if (match) {\n return Number(match[1]);\n }\n }\n\n return 0;\n }\n\n return numString.length - decimalSymbolIndex - 1;\n}\n\nfunction isValidForStep(viewValue, stepBase, step) {\n // At this point `stepBase` and `step` are expected to be non-NaN values\n // and `viewValue` is expected to be a valid stringified number.\n var value = Number(viewValue);\n\n var isNonIntegerValue = !isNumberInteger(value);\n var isNonIntegerStepBase = !isNumberInteger(stepBase);\n var isNonIntegerStep = !isNumberInteger(step);\n\n // Due to limitations in Floating Point Arithmetic (e.g. `0.3 - 0.2 !== 0.1` or\n // `0.5 % 0.1 !== 0`), we need to convert all numbers to integers.\n if (isNonIntegerValue || isNonIntegerStepBase || isNonIntegerStep) {\n var valueDecimals = isNonIntegerValue ? countDecimals(value) : 0;\n var stepBaseDecimals = isNonIntegerStepBase ? countDecimals(stepBase) : 0;\n var stepDecimals = isNonIntegerStep ? countDecimals(step) : 0;\n\n var decimalCount = Math.max(valueDecimals, stepBaseDecimals, stepDecimals);\n var multiplier = Math.pow(10, decimalCount);\n\n value = value * multiplier;\n stepBase = stepBase * multiplier;\n step = step * multiplier;\n\n if (isNonIntegerValue) value = Math.round(value);\n if (isNonIntegerStepBase) stepBase = Math.round(stepBase);\n if (isNonIntegerStep) step = Math.round(step);\n }\n\n return (value - stepBase) % step === 0;\n}\n\nfunction numberInputType(scope, element, attr, ctrl, $sniffer, $browser) {\n badInputChecker(scope, element, attr, ctrl);\n numberFormatterParser(ctrl);\n baseInputType(scope, element, attr, ctrl, $sniffer, $browser);\n\n var minVal;\n var maxVal;\n\n if (isDefined(attr.min) || attr.ngMin) {\n ctrl.$validators.min = function(value) {\n return ctrl.$isEmpty(value) || isUndefined(minVal) || value >= minVal;\n };\n\n attr.$observe('min', function(val) {\n minVal = parseNumberAttrVal(val);\n // TODO(matsko): implement validateLater to reduce number of validations\n ctrl.$validate();\n });\n }\n\n if (isDefined(attr.max) || attr.ngMax) {\n ctrl.$validators.max = function(value) {\n return ctrl.$isEmpty(value) || isUndefined(maxVal) || value <= maxVal;\n };\n\n attr.$observe('max', function(val) {\n maxVal = parseNumberAttrVal(val);\n // TODO(matsko): implement validateLater to reduce number of validations\n ctrl.$validate();\n });\n }\n\n if (isDefined(attr.step) || attr.ngStep) {\n var stepVal;\n ctrl.$validators.step = function(modelValue, viewValue) {\n return ctrl.$isEmpty(viewValue) || isUndefined(stepVal) ||\n isValidForStep(viewValue, minVal || 0, stepVal);\n };\n\n attr.$observe('step', function(val) {\n stepVal = parseNumberAttrVal(val);\n // TODO(matsko): implement validateLater to reduce number of validations\n ctrl.$validate();\n });\n }\n}\n\nfunction rangeInputType(scope, element, attr, ctrl, $sniffer, $browser) {\n badInputChecker(scope, element, attr, ctrl);\n numberFormatterParser(ctrl);\n baseInputType(scope, element, attr, ctrl, $sniffer, $browser);\n\n var supportsRange = ctrl.$$hasNativeValidators && element[0].type === 'range';\n var minVal = supportsRange ? 0 : undefined;\n var maxVal = supportsRange ? 100 : undefined;\n var stepVal = supportsRange ? 1 : undefined;\n var validity = element[0].validity;\n var hasMinAttr = isDefined(attr.min);\n var hasMaxAttr = isDefined(attr.max);\n var hasStepAttr = isDefined(attr.step);\n\n var originalRender = ctrl.$render;\n\n ctrl.$render = supportsRange && isDefined(validity.rangeUnderflow) && isDefined(validity.rangeOverflow) ?\n //Browsers that implement range will set these values automatically, but reading the adjusted values after\n //$render would cause the min / max validators to be applied with the wrong value\n function rangeRender() {\n originalRender();\n ctrl.$setViewValue(element.val());\n } :\n originalRender;\n\n if (hasMinAttr) {\n ctrl.$validators.min = supportsRange ?\n // Since all browsers set the input to a valid value, we don't need to check validity\n function noopMinValidator() { return true; } :\n // non-support browsers validate the min val\n function minValidator(modelValue, viewValue) {\n return ctrl.$isEmpty(viewValue) || isUndefined(minVal) || viewValue >= minVal;\n };\n\n setInitialValueAndObserver('min', minChange);\n }\n\n if (hasMaxAttr) {\n ctrl.$validators.max = supportsRange ?\n // Since all browsers set the input to a valid value, we don't need to check validity\n function noopMaxValidator() { return true; } :\n // non-support browsers validate the max val\n function maxValidator(modelValue, viewValue) {\n return ctrl.$isEmpty(viewValue) || isUndefined(maxVal) || viewValue <= maxVal;\n };\n\n setInitialValueAndObserver('max', maxChange);\n }\n\n if (hasStepAttr) {\n ctrl.$validators.step = supportsRange ?\n function nativeStepValidator() {\n // Currently, only FF implements the spec on step change correctly (i.e. adjusting the\n // input element value to a valid value). It's possible that other browsers set the stepMismatch\n // validity error instead, so we can at least report an error in that case.\n return !validity.stepMismatch;\n } :\n // ngStep doesn't set the setp attr, so the browser doesn't adjust the input value as setting step would\n function stepValidator(modelValue, viewValue) {\n return ctrl.$isEmpty(viewValue) || isUndefined(stepVal) ||\n isValidForStep(viewValue, minVal || 0, stepVal);\n };\n\n setInitialValueAndObserver('step', stepChange);\n }\n\n function setInitialValueAndObserver(htmlAttrName, changeFn) {\n // interpolated attributes set the attribute value only after a digest, but we need the\n // attribute value when the input is first rendered, so that the browser can adjust the\n // input value based on the min/max value\n element.attr(htmlAttrName, attr[htmlAttrName]);\n attr.$observe(htmlAttrName, changeFn);\n }\n\n function minChange(val) {\n minVal = parseNumberAttrVal(val);\n // ignore changes before model is initialized\n if (isNumberNaN(ctrl.$modelValue)) {\n return;\n }\n\n if (supportsRange) {\n var elVal = element.val();\n // IE11 doesn't set the el val correctly if the minVal is greater than the element value\n if (minVal > elVal) {\n elVal = minVal;\n element.val(elVal);\n }\n ctrl.$setViewValue(elVal);\n } else {\n // TODO(matsko): implement validateLater to reduce number of validations\n ctrl.$validate();\n }\n }\n\n function maxChange(val) {\n maxVal = parseNumberAttrVal(val);\n // ignore changes before model is initialized\n if (isNumberNaN(ctrl.$modelValue)) {\n return;\n }\n\n if (supportsRange) {\n var elVal = element.val();\n // IE11 doesn't set the el val correctly if the maxVal is less than the element value\n if (maxVal < elVal) {\n element.val(maxVal);\n // IE11 and Chrome don't set the value to the minVal when max < min\n elVal = maxVal < minVal ? minVal : maxVal;\n }\n ctrl.$setViewValue(elVal);\n } else {\n // TODO(matsko): implement validateLater to reduce number of validations\n ctrl.$validate();\n }\n }\n\n function stepChange(val) {\n stepVal = parseNumberAttrVal(val);\n // ignore changes before model is initialized\n if (isNumberNaN(ctrl.$modelValue)) {\n return;\n }\n\n // Some browsers don't adjust the input value correctly, but set the stepMismatch error\n if (supportsRange && ctrl.$viewValue !== element.val()) {\n ctrl.$setViewValue(element.val());\n } else {\n // TODO(matsko): implement validateLater to reduce number of validations\n ctrl.$validate();\n }\n }\n}\n\nfunction urlInputType(scope, element, attr, ctrl, $sniffer, $browser) {\n // Note: no badInputChecker here by purpose as `url` is only a validation\n // in browsers, i.e. we can always read out input.value even if it is not valid!\n baseInputType(scope, element, attr, ctrl, $sniffer, $browser);\n stringBasedInputType(ctrl);\n\n ctrl.$$parserName = 'url';\n ctrl.$validators.url = function(modelValue, viewValue) {\n var value = modelValue || viewValue;\n return ctrl.$isEmpty(value) || isUrlLike(value);\n };\n}\n\nfunction emailInputType(scope, element, attr, ctrl, $sniffer, $browser) {\n // Note: no badInputChecker here by purpose as `url` is only a validation\n // in browsers, i.e. we can always read out input.value even if it is not valid!\n baseInputType(scope, element, attr, ctrl, $sniffer, $browser);\n stringBasedInputType(ctrl);\n\n ctrl.$$parserName = 'email';\n ctrl.$validators.email = function(modelValue, viewValue) {\n var value = modelValue || viewValue;\n return ctrl.$isEmpty(value) || EMAIL_REGEXP.test(value);\n };\n}\n\nfunction radioInputType(scope, element, attr, ctrl) {\n var doTrim = !attr.ngTrim || trim(attr.ngTrim) !== 'false';\n // make the name unique, if not defined\n if (isUndefined(attr.name)) {\n element.attr('name', nextUid());\n }\n\n var listener = function(ev) {\n var value;\n if (element[0].checked) {\n value = attr.value;\n if (doTrim) {\n value = trim(value);\n }\n ctrl.$setViewValue(value, ev && ev.type);\n }\n };\n\n element.on('click', listener);\n\n ctrl.$render = function() {\n var value = attr.value;\n if (doTrim) {\n value = trim(value);\n }\n element[0].checked = (value === ctrl.$viewValue);\n };\n\n attr.$observe('value', ctrl.$render);\n}\n\nfunction parseConstantExpr($parse, context, name, expression, fallback) {\n var parseFn;\n if (isDefined(expression)) {\n parseFn = $parse(expression);\n if (!parseFn.constant) {\n throw ngModelMinErr('constexpr', 'Expected constant expression for `{0}`, but saw ' +\n '`{1}`.', name, expression);\n }\n return parseFn(context);\n }\n return fallback;\n}\n\nfunction checkboxInputType(scope, element, attr, ctrl, $sniffer, $browser, $filter, $parse) {\n var trueValue = parseConstantExpr($parse, scope, 'ngTrueValue', attr.ngTrueValue, true);\n var falseValue = parseConstantExpr($parse, scope, 'ngFalseValue', attr.ngFalseValue, false);\n\n var listener = function(ev) {\n ctrl.$setViewValue(element[0].checked, ev && ev.type);\n };\n\n element.on('click', listener);\n\n ctrl.$render = function() {\n element[0].checked = ctrl.$viewValue;\n };\n\n // Override the standard `$isEmpty` because the $viewValue of an empty checkbox is always set to `false`\n // This is because of the parser below, which compares the `$modelValue` with `trueValue` to convert\n // it to a boolean.\n ctrl.$isEmpty = function(value) {\n return value === false;\n };\n\n ctrl.$formatters.push(function(value) {\n return equals(value, trueValue);\n });\n\n ctrl.$parsers.push(function(value) {\n return value ? trueValue : falseValue;\n });\n}\n\n\n/**\n * @ngdoc directive\n * @name textarea\n * @restrict E\n *\n * @description\n * HTML textarea element control with AngularJS data-binding. The data-binding and validation\n * properties of this element are exactly the same as those of the\n * {@link ng.directive:input input element}.\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string=} name Property name of the form under which the control is published.\n * @param {string=} required Sets `required` validation error key if the value is not entered.\n * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to\n * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of\n * `required` when you want to data-bind to the `required` attribute.\n * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than\n * minlength.\n * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than\n * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of any\n * length.\n * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue}\n * does not match a RegExp found by evaluating the AngularJS expression given in the attribute value.\n * If the expression evaluates to a RegExp object, then this is used directly.\n * If the expression evaluates to a string, then it will be converted to a RegExp\n * after wrapping it in `^` and `$` characters. For instance, `\"abc\"` will be converted to\n * `new RegExp('^abc$')`.
\n * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to\n * start at the index of the last search's match, thus not taking the whole input value into\n * account.\n * @param {string=} ngChange AngularJS expression to be executed when input changes due to user\n * interaction with the input element.\n * @param {boolean=} [ngTrim=true] If set to false AngularJS will not automatically trim the input.\n */\n\n\n/**\n * @ngdoc directive\n * @name input\n * @restrict E\n *\n * @description\n * HTML input element control. When used together with {@link ngModel `ngModel`}, it provides data-binding,\n * input state control, and validation.\n * Input control follows HTML5 input types and polyfills the HTML5 validation behavior for older browsers.\n *\n *
\n * **Note:** Not every feature offered is available for all input types.\n * Specifically, data binding and event handling via `ng-model` is unsupported for `input[file]`.\n *
\n *\n * @param {string} ngModel Assignable AngularJS expression to data-bind to.\n * @param {string=} name Property name of the form under which the control is published.\n * @param {string=} required Sets `required` validation error key if the value is not entered.\n * @param {boolean=} ngRequired Sets `required` attribute if set to true\n * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than\n * minlength.\n * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than\n * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of any\n * length.\n * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue}\n * value does not match a RegExp found by evaluating the AngularJS expression given in the attribute value.\n * If the expression evaluates to a RegExp object, then this is used directly.\n * If the expression evaluates to a string, then it will be converted to a RegExp\n * after wrapping it in `^` and `$` characters. For instance, `\"abc\"` will be converted to\n * `new RegExp('^abc$')`.
\n * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to\n * start at the index of the last search's match, thus not taking the whole input value into\n * account.\n * @param {string=} ngChange AngularJS expression to be executed when input changes due to user\n * interaction with the input element.\n * @param {boolean=} [ngTrim=true] If set to false AngularJS will not automatically trim the input.\n * This parameter is ignored for input[type=password] controls, which will never trim the\n * input.\n *\n * @example\n \n \n \n
\n
\n \n
\n \n Required!\n
\n \n
\n \n Too short!\n \n Too long!\n
\n
\n
\n user = {{user}}
\n myForm.userName.$valid = {{myForm.userName.$valid}}
\n myForm.userName.$error = {{myForm.userName.$error}}
\n myForm.lastName.$valid = {{myForm.lastName.$valid}}
\n myForm.lastName.$error = {{myForm.lastName.$error}}
\n myForm.$valid = {{myForm.$valid}}
\n myForm.$error.required = {{!!myForm.$error.required}}
\n myForm.$error.minlength = {{!!myForm.$error.minlength}}
\n myForm.$error.maxlength = {{!!myForm.$error.maxlength}}
\n
\n
\n \n var user = element(by.exactBinding('user'));\n var userNameValid = element(by.binding('myForm.userName.$valid'));\n var lastNameValid = element(by.binding('myForm.lastName.$valid'));\n var lastNameError = element(by.binding('myForm.lastName.$error'));\n var formValid = element(by.binding('myForm.$valid'));\n var userNameInput = element(by.model('user.name'));\n var userLastInput = element(by.model('user.last'));\n\n it('should initialize to model', function() {\n expect(user.getText()).toContain('{\"name\":\"guest\",\"last\":\"visitor\"}');\n expect(userNameValid.getText()).toContain('true');\n expect(formValid.getText()).toContain('true');\n });\n\n it('should be invalid if empty when required', function() {\n userNameInput.clear();\n userNameInput.sendKeys('');\n\n expect(user.getText()).toContain('{\"last\":\"visitor\"}');\n expect(userNameValid.getText()).toContain('false');\n expect(formValid.getText()).toContain('false');\n });\n\n it('should be valid if empty when min length is set', function() {\n userLastInput.clear();\n userLastInput.sendKeys('');\n\n expect(user.getText()).toContain('{\"name\":\"guest\",\"last\":\"\"}');\n expect(lastNameValid.getText()).toContain('true');\n expect(formValid.getText()).toContain('true');\n });\n\n it('should be invalid if less than required min length', function() {\n userLastInput.clear();\n userLastInput.sendKeys('xx');\n\n expect(user.getText()).toContain('{\"name\":\"guest\"}');\n expect(lastNameValid.getText()).toContain('false');\n expect(lastNameError.getText()).toContain('minlength');\n expect(formValid.getText()).toContain('false');\n });\n\n it('should be invalid if longer than max length', function() {\n userLastInput.clear();\n userLastInput.sendKeys('some ridiculously long name');\n\n expect(user.getText()).toContain('{\"name\":\"guest\"}');\n expect(lastNameValid.getText()).toContain('false');\n expect(lastNameError.getText()).toContain('maxlength');\n expect(formValid.getText()).toContain('false');\n });\n \n
\n */\nvar inputDirective = ['$browser', '$sniffer', '$filter', '$parse',\n function($browser, $sniffer, $filter, $parse) {\n return {\n restrict: 'E',\n require: ['?ngModel'],\n link: {\n pre(scope, element, attr, ctrls) {\n if (ctrls[0]) {\n (inputType[lowercase(attr.type)] || inputType.text)(scope, element, attr, ctrls[0], $sniffer,\n $browser, $filter, $parse);\n }\n }\n }\n };\n}];\n\n\n\nvar CONSTANT_VALUE_REGEXP = /^(true|false|\\d+)$/;\n/**\n * @ngdoc directive\n * @name ngValue\n * @restrict A\n * @priority 100\n *\n * @description\n * Binds the given expression to the value of the element.\n *\n * It is mainly used on {@link input[radio] `input[radio]`} and option elements,\n * so that when the element is selected, the {@link ngModel `ngModel`} of that element (or its\n * {@link select `select`} parent element) is set to the bound value. It is especially useful\n * for dynamically generated lists using {@link ngRepeat `ngRepeat`}, as shown below.\n *\n * It can also be used to achieve one-way binding of a given expression to an input element\n * such as an `input[text]` or a `textarea`, when that element does not use ngModel.\n *\n * @element ANY\n * @param {string=} ngValue AngularJS expression, whose value will be bound to the `value` attribute\n * and `value` property of the element.\n *\n * @example\n \n \n \n
\n

Which is your favorite?

\n \n
You chose {{my.favorite}}
\n
\n
\n \n var favorite = element(by.binding('my.favorite'));\n\n it('should initialize to model', function() {\n expect(favorite.getText()).toContain('unicorns');\n });\n it('should bind the values to the inputs', function() {\n element.all(by.model('my.favorite')).get(0).click();\n expect(favorite.getText()).toContain('pizza');\n });\n \n
\n */\nvar ngValueDirective = function() {\n /**\n * inputs use the value attribute as their default value if the value property is not set.\n * Once the value property has been set (by adding input), it will not react to changes to\n * the value attribute anymore. Setting both attribute and property fixes this behavior, and\n * makes it possible to use ngValue as a sort of one-way bind.\n */\n function updateElementValue(element, attr, value) {\n var propValue = isDefined(value) ? value : null;\n element.prop('value', propValue);\n attr.$set('value', value);\n }\n\n return {\n restrict: 'A',\n priority: 100,\n compile(tpl, tplAttr) {\n if (CONSTANT_VALUE_REGEXP.test(tplAttr.ngValue)) {\n return function ngValueConstantLink(scope, elm, attr) {\n var value = scope.$eval(attr.ngValue);\n updateElementValue(elm, attr, value);\n };\n } else {\n return function ngValueLink(scope, elm, attr) {\n scope.$watch(attr.ngValue, function valueWatchAction(value) {\n updateElementValue(elm, attr, value);\n });\n };\n }\n }\n };\n};\n'use strict';\n\n/**\n * @ngdoc directive\n * @name ngBind\n * @restrict AC\n *\n * @description\n * The `ngBind` attribute tells AngularJS to replace the text content of the specified HTML element\n * with the value of a given expression, and to update the text content when the value of that\n * expression changes.\n *\n * Typically, you don't use `ngBind` directly, but instead you use the double curly markup like\n * `{{ expression }}` which is similar but less verbose.\n *\n * It is preferable to use `ngBind` instead of `{{ expression }}` if a template is momentarily\n * displayed by the browser in its raw state before AngularJS compiles it. Since `ngBind` is an\n * element attribute, it makes the bindings invisible to the user while the page is loading.\n *\n * An alternative solution to this problem would be using the\n * {@link ng.directive:ngCloak ngCloak} directive.\n *\n *\n * @element ANY\n * @param {expression} ngBind {@link guide/expression Expression} to evaluate.\n *\n * @example\n * Enter a name in the Live Preview text box; the greeting below the text box changes instantly.\n \n \n \n
\n
\n Hello !\n
\n
\n \n it('should check ng-bind', function() {\n var nameInput = element(by.model('name'));\n\n expect(element(by.binding('name')).getText()).toBe('Whirled');\n nameInput.clear();\n nameInput.sendKeys('world');\n expect(element(by.binding('name')).getText()).toBe('world');\n });\n \n
\n */\nvar ngBindDirective = ['$compile', function($compile) {\n return {\n restrict: 'AC',\n compile: function ngBindCompile(templateElement) {\n $compile.$$addBindingClass(templateElement);\n return function ngBindLink(scope, element, attr) {\n $compile.$$addBindingInfo(element, attr.ngBind);\n element = element[0];\n scope.$watch(attr.ngBind, function ngBindWatchAction(value) {\n element.textContent = stringify(value);\n });\n };\n }\n };\n}];\n\n\n/**\n * @ngdoc directive\n * @name ngBindTemplate\n *\n * @description\n * The `ngBindTemplate` directive specifies that the element\n * text content should be replaced with the interpolation of the template\n * in the `ngBindTemplate` attribute.\n * Unlike `ngBind`, the `ngBindTemplate` can contain multiple `{{` `}}`\n * expressions. This directive is needed since some HTML elements\n * (such as TITLE and OPTION) cannot contain SPAN elements.\n *\n * @element ANY\n * @param {string} ngBindTemplate template of form\n * {{ expression }} to eval.\n *\n * @example\n * Try it here: enter text in text box and watch the greeting change.\n \n \n \n
\n
\n
\n
\n       
\n
\n \n it('should check ng-bind', function() {\n var salutationElem = element(by.binding('salutation'));\n var salutationInput = element(by.model('salutation'));\n var nameInput = element(by.model('name'));\n\n expect(salutationElem.getText()).toBe('Hello World!');\n\n salutationInput.clear();\n salutationInput.sendKeys('Greetings');\n nameInput.clear();\n nameInput.sendKeys('user');\n\n expect(salutationElem.getText()).toBe('Greetings user!');\n });\n \n
\n */\nvar ngBindTemplateDirective = ['$interpolate', '$compile', function($interpolate, $compile) {\n return {\n compile: function ngBindTemplateCompile(templateElement) {\n $compile.$$addBindingClass(templateElement);\n return function ngBindTemplateLink(scope, element, attr) {\n var interpolateFn = $interpolate(element.attr(attr.$attr.ngBindTemplate));\n $compile.$$addBindingInfo(element, interpolateFn.expressions);\n element = element[0];\n attr.$observe('ngBindTemplate', function(value) {\n element.textContent = isUndefined(value) ? '' : value;\n });\n };\n }\n };\n}];\n\n\n/**\n * @ngdoc directive\n * @name ngBindHtml\n *\n * @description\n * Evaluates the expression and inserts the resulting HTML into the element in a secure way. By default,\n * the resulting HTML content will be sanitized using the {@link ngSanitize.$sanitize $sanitize} service.\n * To utilize this functionality, ensure that `$sanitize` is available, for example, by including {@link\n * ngSanitize} in your module's dependencies (not in core AngularJS). In order to use {@link ngSanitize}\n * in your module's dependencies, you need to include \"angular-sanitize.js\" in your application.\n *\n * You may also bypass sanitization for values you know are safe. To do so, bind to\n * an explicitly trusted value via {@link ng.$sce#trustAsHtml $sce.trustAsHtml}. See the example\n * under {@link ng.$sce#show-me-an-example-using-sce- Strict Contextual Escaping (SCE)}.\n *\n * Note: If a `$sanitize` service is unavailable and the bound value isn't explicitly trusted, you\n * will have an exception (instead of an exploit.)\n *\n * @element ANY\n * @param {expression} ngBindHtml {@link guide/expression Expression} to evaluate.\n *\n * @example\n\n \n \n
\n

\n
\n
\n\n \n angular.module('bindHtmlExample', ['ngSanitize'])\n .controller('ExampleController', ['$scope', function($scope) {\n $scope.myHTML =\n 'I am an HTMLstring with ' +\n 'links! and other stuff';\n }]);\n \n\n \n it('should check ng-bind-html', function() {\n expect(element(by.binding('myHTML')).getText()).toBe(\n 'I am an HTMLstring with links! and other stuff');\n });\n \n
\n */\nvar ngBindHtmlDirective = ['$sce', '$parse', '$compile', function($sce, $parse, $compile) {\n return {\n restrict: 'A',\n compile: function ngBindHtmlCompile(tElement, tAttrs) {\n var ngBindHtmlGetter = $parse(tAttrs.ngBindHtml);\n var ngBindHtmlWatch = $parse(tAttrs.ngBindHtml, function sceValueOf(val) {\n // Unwrap the value to compare the actual inner safe value, not the wrapper object.\n return $sce.valueOf(val);\n });\n $compile.$$addBindingClass(tElement);\n\n return function ngBindHtmlLink(scope, element, attr) {\n $compile.$$addBindingInfo(element, attr.ngBindHtml);\n\n scope.$watch(ngBindHtmlWatch, function ngBindHtmlWatchAction() {\n // The watched value is the unwrapped value. To avoid re-escaping, use the direct getter.\n var value = ngBindHtmlGetter(scope);\n element.html($sce.getTrustedHtml(value) || '');\n });\n };\n }\n };\n}];\n'use strict';\n\n/**\n * @ngdoc directive\n * @name ngChange\n * @restrict A\n *\n * @description\n * Evaluate the given expression when the user changes the input.\n * The expression is evaluated immediately, unlike the JavaScript onchange event\n * which only triggers at the end of a change (usually, when the user leaves the\n * form element or presses the return key).\n *\n * The `ngChange` expression is only evaluated when a change in the input value causes\n * a new value to be committed to the model.\n *\n * It will not be evaluated:\n * * if the value returned from the `$parsers` transformation pipeline has not changed\n * * if the input has continued to be invalid since the model will stay `null`\n * * if the model is changed programmatically and not by a change to the input value\n *\n *\n * Note, this directive requires `ngModel` to be present.\n *\n * @element ANY\n * @param {expression} ngChange {@link guide/expression Expression} to evaluate upon change\n * in input value.\n *\n * @example\n * \n * \n * \n *
\n * \n * \n *
\n * debug = {{confirmed}}
\n * counter = {{counter}}
\n *
\n *
\n * \n * var counter = element(by.binding('counter'));\n * var debug = element(by.binding('confirmed'));\n *\n * it('should evaluate the expression if changing from view', function() {\n * expect(counter.getText()).toContain('0');\n *\n * element(by.id('ng-change-example1')).click();\n *\n * expect(counter.getText()).toContain('1');\n * expect(debug.getText()).toContain('true');\n * });\n *\n * it('should not evaluate the expression if changing from model', function() {\n * element(by.id('ng-change-example2')).click();\n\n * expect(counter.getText()).toContain('0');\n * expect(debug.getText()).toContain('true');\n * });\n * \n *
\n */\nvar ngChangeDirective = valueFn({\n restrict: 'A',\n require: 'ngModel',\n link(scope, element, attr, ctrl) {\n ctrl.$viewChangeListeners.push(function() {\n scope.$eval(attr.ngChange);\n });\n }\n});\n'use strict';\n\n/* exported\n ngClassDirective,\n ngClassEvenDirective,\n ngClassOddDirective\n*/\n\nfunction classDirective(name, selector) {\n name = 'ngClass' + name;\n var indexWatchExpression;\n\n return ['$parse', function($parse) {\n return {\n restrict: 'AC',\n link(scope, element, attr) {\n var expression = attr[name].trim();\n var isOneTime = (expression.charAt(0) === ':') && (expression.charAt(1) === ':');\n\n var watchInterceptor = isOneTime ? toFlatValue : toClassString;\n var watchExpression = $parse(expression, watchInterceptor);\n var watchAction = isOneTime ? ngClassOneTimeWatchAction : ngClassWatchAction;\n\n var classCounts = element.data('$classCounts');\n var oldModulo = true;\n var oldClassString;\n\n if (!classCounts) {\n // Use createMap() to prevent class assumptions involving property\n // names in Object.prototype\n classCounts = createMap();\n element.data('$classCounts', classCounts);\n }\n\n if (name !== 'ngClass') {\n if (!indexWatchExpression) {\n indexWatchExpression = $parse('$index', function moduloTwo($index) {\n // eslint-disable-next-line no-bitwise\n return $index & 1;\n });\n }\n\n scope.$watch(indexWatchExpression, ngClassIndexWatchAction);\n }\n\n scope.$watch(watchExpression, watchAction, isOneTime);\n\n function addClasses(classString) {\n classString = digestClassCounts(split(classString), 1);\n attr.$addClass(classString);\n }\n\n function removeClasses(classString) {\n classString = digestClassCounts(split(classString), -1);\n attr.$removeClass(classString);\n }\n\n function updateClasses(oldClassString, newClassString) {\n var oldClassArray = split(oldClassString);\n var newClassArray = split(newClassString);\n\n var toRemoveArray = arrayDifference(oldClassArray, newClassArray);\n var toAddArray = arrayDifference(newClassArray, oldClassArray);\n\n var toRemoveString = digestClassCounts(toRemoveArray, -1);\n var toAddString = digestClassCounts(toAddArray, 1);\n\n attr.$addClass(toAddString);\n attr.$removeClass(toRemoveString);\n }\n\n function digestClassCounts(classArray, count) {\n var classesToUpdate = [];\n\n forEach(classArray, function(className) {\n if (count > 0 || classCounts[className]) {\n classCounts[className] = (classCounts[className] || 0) + count;\n if (classCounts[className] === +(count > 0)) {\n classesToUpdate.push(className);\n }\n }\n });\n\n return classesToUpdate.join(' ');\n }\n\n function ngClassIndexWatchAction(newModulo) {\n // This watch-action should run before the `ngClass[OneTime]WatchAction()`, thus it\n // adds/removes `oldClassString`. If the `ngClass` expression has changed as well, the\n // `ngClass[OneTime]WatchAction()` will update the classes.\n if (newModulo === selector) {\n addClasses(oldClassString);\n } else {\n removeClasses(oldClassString);\n }\n\n oldModulo = newModulo;\n }\n\n function ngClassOneTimeWatchAction(newClassValue) {\n var newClassString = toClassString(newClassValue);\n\n if (newClassString !== oldClassString) {\n ngClassWatchAction(newClassString);\n }\n }\n\n function ngClassWatchAction(newClassString) {\n if (oldModulo === selector) {\n updateClasses(oldClassString, newClassString);\n }\n\n oldClassString = newClassString;\n }\n }\n };\n }];\n\n // Helpers\n function arrayDifference(tokens1, tokens2) {\n if (!tokens1 || !tokens1.length) return [];\n if (!tokens2 || !tokens2.length) return tokens1;\n\n var values = [];\n\n outer:\n for (var i = 0; i < tokens1.length; i++) {\n var token = tokens1[i];\n for (var j = 0; j < tokens2.length; j++) {\n if (token === tokens2[j]) continue outer;\n }\n values.push(token);\n }\n\n return values;\n }\n\n function split(classString) {\n return classString && classString.split(' ');\n }\n\n function toClassString(classValue) {\n var classString = classValue;\n\n if (isArray(classValue)) {\n classString = classValue.map(toClassString).join(' ');\n } else if (isObject(classValue)) {\n classString = Object.keys(classValue).\n filter(function(key) { return classValue[key]; }).\n join(' ');\n }\n\n return classString;\n }\n\n function toFlatValue(classValue) {\n var flatValue = classValue;\n\n if (isArray(classValue)) {\n flatValue = classValue.map(toFlatValue);\n } else if (isObject(classValue)) {\n var hasUndefined = false;\n\n flatValue = Object.keys(classValue).filter(function(key) {\n var value = classValue[key];\n\n if (!hasUndefined && isUndefined(value)) {\n hasUndefined = true;\n }\n\n return value;\n });\n\n if (hasUndefined) {\n // Prevent the `oneTimeLiteralWatchInterceptor` from unregistering\n // the watcher, by including at least one `undefined` value.\n flatValue.push(undefined);\n }\n }\n\n return flatValue;\n }\n}\n\n/**\n * @ngdoc directive\n * @name ngClass\n * @restrict AC\n * @element ANY\n *\n * @description\n * The `ngClass` directive allows you to dynamically set CSS classes on an HTML element by databinding\n * an expression that represents all classes to be added.\n *\n * The directive operates in three different ways, depending on which of three types the expression\n * evaluates to:\n *\n * 1. If the expression evaluates to a string, the string should be one or more space-delimited class\n * names.\n *\n * 2. If the expression evaluates to an object, then for each key-value pair of the\n * object with a truthy value the corresponding key is used as a class name.\n *\n * 3. If the expression evaluates to an array, each element of the array should either be a string as in\n * type 1 or an object as in type 2. This means that you can mix strings and objects together in an array\n * to give you more control over what CSS classes appear. See the code below for an example of this.\n *\n *\n * The directive won't add duplicate classes if a particular class was already set.\n *\n * When the expression changes, the previously added classes are removed and only then are the\n * new classes added.\n *\n * @knownIssue\n * You should not use {@link guide/interpolation interpolation} in the value of the `class`\n * attribute, when using the `ngClass` directive on the same element.\n * See {@link guide/interpolation#known-issues here} for more info.\n *\n * @animations\n * | Animation | Occurs |\n * |----------------------------------|-------------------------------------|\n * | {@link ng.$animate#addClass addClass} | just before the class is applied to the element |\n * | {@link ng.$animate#removeClass removeClass} | just before the class is removed from the element |\n *\n * ### ngClass and pre-existing CSS3 Transitions/Animations\n The ngClass directive still supports CSS3 Transitions/Animations even if they do not follow the ngAnimate CSS naming structure.\n Upon animation ngAnimate will apply supplementary CSS classes to track the start and end of an animation, but this will not hinder\n any pre-existing CSS transitions already on the element. To get an idea of what happens during a class-based animation, be sure\n to view the step by step details of {@link $animate#addClass $animate.addClass} and\n {@link $animate#removeClass $animate.removeClass}.\n *\n * @param {expression} ngClass {@link guide/expression Expression} to eval. The result\n * of the evaluation can be a string representing space delimited class\n * names, an array, or a map of class names to boolean values. In the case of a map, the\n * names of the properties whose values are truthy will be added as css classes to the\n * element.\n *\n * @example\n * ### Basic\n \n \n

Map Syntax Example

\n
\n
\n \n
\n

Using String Syntax

\n \n
\n

Using Array Syntax

\n
\n
\n
\n
\n

Using Array and Map Syntax

\n
\n \n
\n \n .strike {\n text-decoration: line-through;\n }\n .bold {\n font-weight: bold;\n }\n .red {\n color: red;\n }\n .has-error {\n color: red;\n background-color: yellow;\n }\n .orange {\n color: orange;\n }\n \n \n var ps = element.all(by.css('p'));\n\n it('should let you toggle the class', function() {\n\n expect(ps.first().getAttribute('class')).not.toMatch(/bold/);\n expect(ps.first().getAttribute('class')).not.toMatch(/has-error/);\n\n element(by.model('important')).click();\n expect(ps.first().getAttribute('class')).toMatch(/bold/);\n\n element(by.model('error')).click();\n expect(ps.first().getAttribute('class')).toMatch(/has-error/);\n });\n\n it('should let you toggle string example', function() {\n expect(ps.get(1).getAttribute('class')).toBe('');\n element(by.model('style')).clear();\n element(by.model('style')).sendKeys('red');\n expect(ps.get(1).getAttribute('class')).toBe('red');\n });\n\n it('array example should have 3 classes', function() {\n expect(ps.get(2).getAttribute('class')).toBe('');\n element(by.model('style1')).sendKeys('bold');\n element(by.model('style2')).sendKeys('strike');\n element(by.model('style3')).sendKeys('red');\n expect(ps.get(2).getAttribute('class')).toBe('bold strike red');\n });\n\n it('array with map example should have 2 classes', function() {\n expect(ps.last().getAttribute('class')).toBe('');\n element(by.model('style4')).sendKeys('bold');\n element(by.model('warning')).click();\n expect(ps.last().getAttribute('class')).toBe('bold orange');\n });\n \n
\n\n @example\n ### Animations\n\n The example below demonstrates how to perform animations using ngClass.\n\n \n \n \n \n
\n Sample Text\n
\n \n .base-class {\n transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;\n }\n\n .base-class.my-class {\n color: red;\n font-size:3em;\n }\n \n \n it('should check ng-class', function() {\n expect(element(by.css('.base-class')).getAttribute('class')).not.\n toMatch(/my-class/);\n\n element(by.id('setbtn')).click();\n\n expect(element(by.css('.base-class')).getAttribute('class')).\n toMatch(/my-class/);\n\n element(by.id('clearbtn')).click();\n\n expect(element(by.css('.base-class')).getAttribute('class')).not.\n toMatch(/my-class/);\n });\n \n
\n */\nvar ngClassDirective = classDirective('', true);\n\n/**\n * @ngdoc directive\n * @name ngClassOdd\n * @restrict AC\n *\n * @description\n * The `ngClassOdd` and `ngClassEven` directives work exactly as\n * {@link ng.directive:ngClass ngClass}, except they work in\n * conjunction with `ngRepeat` and take effect only on odd (even) rows.\n *\n * This directive can be applied only within the scope of an\n * {@link ng.directive:ngRepeat ngRepeat}.\n *\n * @animations\n * | Animation | Occurs |\n * |----------------------------------|-------------------------------------|\n * | {@link ng.$animate#addClass addClass} | just before the class is applied to the element |\n * | {@link ng.$animate#removeClass removeClass} | just before the class is removed from the element |\n *\n * @element ANY\n * @param {expression} ngClassOdd {@link guide/expression Expression} to eval. The result\n * of the evaluation can be a string representing space delimited class names or an array.\n *\n * @example\n \n \n
    \n
  1. \n \n {{name}}\n \n
  2. \n
\n
\n \n .odd {\n color: red;\n }\n .even {\n color: blue;\n }\n \n \n it('should check ng-class-odd and ng-class-even', function() {\n expect(element(by.repeater('name in names').row(0).column('name')).getAttribute('class')).\n toMatch(/odd/);\n expect(element(by.repeater('name in names').row(1).column('name')).getAttribute('class')).\n toMatch(/even/);\n });\n \n
\n *\n *
\n * @example\n * An example on how to implement animations using `ngClassOdd`:\n *\n \n \n
\n \n
\n \n \n \n \n
{{ item }}
\n
\n
\n \n .odd {\n background: rgba(255, 255, 0, 0.25);\n }\n\n .odd-add, .odd-remove {\n transition: 1.5s;\n }\n \n \n it('should add new entries to the beginning of the list', function() {\n var button = element(by.buttonText('Add item'));\n var rows = element.all(by.repeater('item in items'));\n\n expect(rows.count()).toBe(4);\n expect(rows.get(0).getText()).toBe('Item 3');\n expect(rows.get(1).getText()).toBe('Item 2');\n\n button.click();\n\n expect(rows.count()).toBe(5);\n expect(rows.get(0).getText()).toBe('Item 4');\n expect(rows.get(1).getText()).toBe('Item 3');\n });\n\n it('should add odd class to odd entries', function() {\n var button = element(by.buttonText('Add item'));\n var rows = element.all(by.repeater('item in items'));\n\n expect(rows.get(0).getAttribute('class')).toMatch(/odd/);\n expect(rows.get(1).getAttribute('class')).not.toMatch(/odd/);\n\n button.click();\n\n expect(rows.get(0).getAttribute('class')).toMatch(/odd/);\n expect(rows.get(1).getAttribute('class')).not.toMatch(/odd/);\n });\n \n
\n */\nvar ngClassOddDirective = classDirective('Odd', 0);\n\n/**\n * @ngdoc directive\n * @name ngClassEven\n * @restrict AC\n *\n * @description\n * The `ngClassOdd` and `ngClassEven` directives work exactly as\n * {@link ng.directive:ngClass ngClass}, except they work in\n * conjunction with `ngRepeat` and take effect only on odd (even) rows.\n *\n * This directive can be applied only within the scope of an\n * {@link ng.directive:ngRepeat ngRepeat}.\n *\n * @animations\n * | Animation | Occurs |\n * |----------------------------------|-------------------------------------|\n * | {@link ng.$animate#addClass addClass} | just before the class is applied to the element |\n * | {@link ng.$animate#removeClass removeClass} | just before the class is removed from the element |\n *\n * @element ANY\n * @param {expression} ngClassEven {@link guide/expression Expression} to eval. The\n * result of the evaluation can be a string representing space delimited class names or an array.\n *\n * @example\n \n \n
    \n
  1. \n \n {{name}}      \n \n
  2. \n
\n
\n \n .odd {\n color: red;\n }\n .even {\n color: blue;\n }\n \n \n it('should check ng-class-odd and ng-class-even', function() {\n expect(element(by.repeater('name in names').row(0).column('name')).getAttribute('class')).\n toMatch(/odd/);\n expect(element(by.repeater('name in names').row(1).column('name')).getAttribute('class')).\n toMatch(/even/);\n });\n \n
\n *\n *
\n * @example\n * An example on how to implement animations using `ngClassEven`:\n *\n \n \n
\n \n
\n \n \n \n \n
{{ item }}
\n
\n
\n \n .even {\n background: rgba(255, 255, 0, 0.25);\n }\n\n .even-add, .even-remove {\n transition: 1.5s;\n }\n \n \n it('should add new entries to the beginning of the list', function() {\n var button = element(by.buttonText('Add item'));\n var rows = element.all(by.repeater('item in items'));\n\n expect(rows.count()).toBe(4);\n expect(rows.get(0).getText()).toBe('Item 3');\n expect(rows.get(1).getText()).toBe('Item 2');\n\n button.click();\n\n expect(rows.count()).toBe(5);\n expect(rows.get(0).getText()).toBe('Item 4');\n expect(rows.get(1).getText()).toBe('Item 3');\n });\n\n it('should add even class to even entries', function() {\n var button = element(by.buttonText('Add item'));\n var rows = element.all(by.repeater('item in items'));\n\n expect(rows.get(0).getAttribute('class')).not.toMatch(/even/);\n expect(rows.get(1).getAttribute('class')).toMatch(/even/);\n\n button.click();\n\n expect(rows.get(0).getAttribute('class')).not.toMatch(/even/);\n expect(rows.get(1).getAttribute('class')).toMatch(/even/);\n });\n \n
\n */\nvar ngClassEvenDirective = classDirective('Even', 1);\n'use strict';\n\n/**\n * @ngdoc directive\n * @name ngCloak\n * @restrict AC\n *\n * @description\n * The `ngCloak` directive is used to prevent the AngularJS html template from being briefly\n * displayed by the browser in its raw (uncompiled) form while your application is loading. Use this\n * directive to avoid the undesirable flicker effect caused by the html template display.\n *\n * The directive can be applied to the `` element, but the preferred usage is to apply\n * multiple `ngCloak` directives to small portions of the page to permit progressive rendering\n * of the browser view.\n *\n * `ngCloak` works in cooperation with the following css rule embedded within `angular.js` and\n * `angular.min.js`.\n * For CSP mode please add `angular-csp.css` to your html file (see {@link ng.directive:ngCsp ngCsp}).\n *\n * ```css\n * [ng\\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {\n * display: none !important;\n * }\n * ```\n *\n * When this css rule is loaded by the browser, all html elements (including their children) that\n * are tagged with the `ngCloak` directive are hidden. When AngularJS encounters this directive\n * during the compilation of the template it deletes the `ngCloak` element attribute, making\n * the compiled element visible.\n *\n * For the best result, the `angular.js` script must be loaded in the head section of the html\n * document; alternatively, the css rule above must be included in the external stylesheet of the\n * application.\n *\n * @element ANY\n *\n * @example\n \n \n
{{ 'hello' }}
\n
{{ 'world' }}
\n
\n \n it('should remove the template directive and css class', function() {\n expect($('#template1').getAttribute('ng-cloak')).\n toBeNull();\n expect($('#template2').getAttribute('ng-cloak')).\n toBeNull();\n });\n \n
\n *\n */\nvar ngCloakDirective = ngDirective({\n compile(element, attr) {\n attr.$set('ngCloak', undefined);\n element.removeClass('ng-cloak');\n }\n});\n'use strict';\n\n/**\n * @ngdoc directive\n * @name ngController\n *\n * @description\n * The `ngController` directive attaches a controller class to the view. This is a key aspect of how angular\n * supports the principles behind the Model-View-Controller design pattern.\n *\n * MVC components in angular:\n *\n * * Model — Models are the properties of a scope; scopes are attached to the DOM where scope properties\n * are accessed through bindings.\n * * View — The template (HTML with data bindings) that is rendered into the View.\n * * Controller — The `ngController` directive specifies a Controller class; the class contains business\n * logic behind the application to decorate the scope with functions and values\n *\n * Note that you can also attach controllers to the DOM by declaring it in a route definition\n * via the {@link ngRoute.$route $route} service. A common mistake is to declare the controller\n * again using `ng-controller` in the template itself. This will cause the controller to be attached\n * and executed twice.\n *\n * @element ANY\n * @scope\n * @priority 500\n * @param {expression} ngController Name of a constructor function registered with the current\n * {@link ng.$controllerProvider $controllerProvider} or an {@link guide/expression expression}\n * that on the current scope evaluates to a constructor function.\n *\n * The controller instance can be published into a scope property by specifying\n * `ng-controller=\"as propertyName\"`.\n *\n * If the current `$controllerProvider` is configured to use globals (via\n * {@link ng.$controllerProvider#allowGlobals `$controllerProvider.allowGlobals()` }), this may\n * also be the name of a globally accessible constructor function (deprecated, not recommended).\n *\n * @example\n * Here is a simple form for editing user contact information. Adding, removing, clearing, and\n * greeting are methods declared on the controller (see source tab). These methods can\n * easily be called from the AngularJS markup. Any changes to the data are automatically reflected\n * in the View without the need for a manual update.\n *\n * Two different declaration styles are included below:\n *\n * * one binds methods and properties directly onto the controller using `this`:\n * `ng-controller=\"SettingsController1 as settings\"`\n * * one injects `$scope` into the controller:\n * `ng-controller=\"SettingsController2\"`\n *\n * The second option is more common in the AngularJS community, and is generally used in boilerplates\n * and in this guide. However, there are advantages to binding properties directly to the controller\n * and avoiding scope.\n *\n * * Using `controller as` makes it obvious which controller you are accessing in the template when\n * multiple controllers apply to an element.\n * * If you are writing your controllers as classes you have easier access to the properties and\n * methods, which will appear on the scope, from inside the controller code.\n * * Since there is always a `.` in the bindings, you don't have to worry about prototypal\n * inheritance masking primitives.\n *\n * This example demonstrates the `controller as` syntax.\n *\n * \n * \n *
\n * \n *
\n * Contact:\n *
    \n *
  • \n * \n * \n * \n * \n *
  • \n *
  • \n *
\n *
\n *
\n * \n * angular.module('controllerAsExample', [])\n * .controller('SettingsController1', SettingsController1);\n *\n * function SettingsController1() {\n * this.name = 'John Smith';\n * this.contacts = [\n * {type: 'phone', value: '408 555 1212'},\n * {type: 'email', value: 'john.smith@example.org'}\n * ];\n * }\n *\n * SettingsController1.prototype.greet = function() {\n * alert(this.name);\n * };\n *\n * SettingsController1.prototype.addContact = function() {\n * this.contacts.push({type: 'email', value: 'yourname@example.org'});\n * };\n *\n * SettingsController1.prototype.removeContact = function(contactToRemove) {\n * var index = this.contacts.indexOf(contactToRemove);\n * this.contacts.splice(index, 1);\n * };\n *\n * SettingsController1.prototype.clearContact = function(contact) {\n * contact.type = 'phone';\n * contact.value = '';\n * };\n * \n * \n * it('should check controller as', function() {\n * var container = element(by.id('ctrl-as-exmpl'));\n * expect(container.element(by.model('settings.name'))\n * .getAttribute('value')).toBe('John Smith');\n *\n * var firstRepeat =\n * container.element(by.repeater('contact in settings.contacts').row(0));\n * var secondRepeat =\n * container.element(by.repeater('contact in settings.contacts').row(1));\n *\n * expect(firstRepeat.element(by.model('contact.value')).getAttribute('value'))\n * .toBe('408 555 1212');\n *\n * expect(secondRepeat.element(by.model('contact.value')).getAttribute('value'))\n * .toBe('john.smith@example.org');\n *\n * firstRepeat.element(by.buttonText('clear')).click();\n *\n * expect(firstRepeat.element(by.model('contact.value')).getAttribute('value'))\n * .toBe('');\n *\n * container.element(by.buttonText('add')).click();\n *\n * expect(container.element(by.repeater('contact in settings.contacts').row(2))\n * .element(by.model('contact.value'))\n * .getAttribute('value'))\n * .toBe('yourname@example.org');\n * });\n * \n *
\n *\n * This example demonstrates the \"attach to `$scope`\" style of controller.\n *\n * \n * \n *
\n * \n *
\n * Contact:\n *
    \n *
  • \n * \n * \n * \n * \n *
  • \n *
  • [ ]
  • \n *
\n *
\n *
\n * \n * angular.module('controllerExample', [])\n * .controller('SettingsController2', ['$scope', SettingsController2]);\n *\n * function SettingsController2($scope) {\n * $scope.name = 'John Smith';\n * $scope.contacts = [\n * {type:'phone', value:'408 555 1212'},\n * {type:'email', value:'john.smith@example.org'}\n * ];\n *\n * $scope.greet = function() {\n * alert($scope.name);\n * };\n *\n * $scope.addContact = function() {\n * $scope.contacts.push({type:'email', value:'yourname@example.org'});\n * };\n *\n * $scope.removeContact = function(contactToRemove) {\n * var index = $scope.contacts.indexOf(contactToRemove);\n * $scope.contacts.splice(index, 1);\n * };\n *\n * $scope.clearContact = function(contact) {\n * contact.type = 'phone';\n * contact.value = '';\n * };\n * }\n * \n * \n * it('should check controller', function() {\n * var container = element(by.id('ctrl-exmpl'));\n *\n * expect(container.element(by.model('name'))\n * .getAttribute('value')).toBe('John Smith');\n *\n * var firstRepeat =\n * container.element(by.repeater('contact in contacts').row(0));\n * var secondRepeat =\n * container.element(by.repeater('contact in contacts').row(1));\n *\n * expect(firstRepeat.element(by.model('contact.value')).getAttribute('value'))\n * .toBe('408 555 1212');\n * expect(secondRepeat.element(by.model('contact.value')).getAttribute('value'))\n * .toBe('john.smith@example.org');\n *\n * firstRepeat.element(by.buttonText('clear')).click();\n *\n * expect(firstRepeat.element(by.model('contact.value')).getAttribute('value'))\n * .toBe('');\n *\n * container.element(by.buttonText('add')).click();\n *\n * expect(container.element(by.repeater('contact in contacts').row(2))\n * .element(by.model('contact.value'))\n * .getAttribute('value'))\n * .toBe('yourname@example.org');\n * });\n * \n *
\n\n */\nvar ngControllerDirective = [function() {\n return {\n restrict: 'A',\n scope: true,\n controller: '@',\n priority: 500\n };\n}];\n'use strict';\n\n/**\n * @ngdoc directive\n * @name ngCsp\n *\n * @restrict A\n * @element ANY\n * @description\n *\n * AngularJS has some features that can conflict with certain restrictions that are applied when using\n * [CSP (Content Security Policy)](https://developer.mozilla.org/en/Security/CSP) rules.\n *\n * If you intend to implement CSP with these rules then you must tell AngularJS not to use these\n * features.\n *\n * This is necessary when developing things like Google Chrome Extensions or Universal Windows Apps.\n *\n *\n * The following default rules in CSP affect AngularJS:\n *\n * * The use of `eval()`, `Function(string)` and similar functions to dynamically create and execute\n * code from strings is forbidden. AngularJS makes use of this in the {@link $parse} service to\n * provide a 30% increase in the speed of evaluating AngularJS expressions. (This CSP rule can be\n * disabled with the CSP keyword `unsafe-eval`, but it is generally not recommended as it would\n * weaken the protections offered by CSP.)\n *\n * * The use of inline resources, such as inline `\n
\n Enter text and hit enter:\n \n \n
list={{list}}
\n
\n \n \n it('should check ng-submit', function() {\n expect(element(by.binding('list')).getText()).toBe('list=[]');\n element(by.css('#submit')).click();\n expect(element(by.binding('list')).getText()).toContain('hello');\n expect(element(by.model('text')).getAttribute('value')).toBe('');\n });\n it('should ignore empty strings', function() {\n expect(element(by.binding('list')).getText()).toBe('list=[]');\n element(by.css('#submit')).click();\n element(by.css('#submit')).click();\n expect(element(by.binding('list')).getText()).toContain('hello');\n });\n \n \n */\n\n/**\n * @ngdoc directive\n * @name ngFocus\n * @restrict A\n * @element window, input, select, textarea, a\n * @priority 0\n *\n * @description\n * Specify custom behavior on focus event.\n *\n * Note: As the `focus` event is executed synchronously when calling `input.focus()`\n * AngularJS executes the expression using `scope.$evalAsync` if the event is fired\n * during an `$apply` to ensure a consistent state.\n *\n * @param {expression} ngFocus {@link guide/expression Expression} to evaluate upon\n * focus. ({@link guide/expression#-event- Event object is available as `$event`})\n *\n * @example\n * See {@link ng.directive:ngClick ngClick}\n */\n\n/**\n * @ngdoc directive\n * @name ngBlur\n * @restrict A\n * @element window, input, select, textarea, a\n * @priority 0\n *\n * @description\n * Specify custom behavior on blur event.\n *\n * A [blur event](https://developer.mozilla.org/en-US/docs/Web/Events/blur) fires when\n * an element has lost focus.\n *\n * Note: As the `blur` event is executed synchronously also during DOM manipulations\n * (e.g. removing a focussed input),\n * AngularJS executes the expression using `scope.$evalAsync` if the event is fired\n * during an `$apply` to ensure a consistent state.\n *\n * @param {expression} ngBlur {@link guide/expression Expression} to evaluate upon\n * blur. ({@link guide/expression#-event- Event object is available as `$event`})\n *\n * @example\n * See {@link ng.directive:ngClick ngClick}\n */\n\n/**\n * @ngdoc directive\n * @name ngCopy\n * @restrict A\n * @element window, input, select, textarea, a\n * @priority 0\n *\n * @description\n * Specify custom behavior on copy event.\n *\n * @param {expression} ngCopy {@link guide/expression Expression} to evaluate upon\n * copy. ({@link guide/expression#-event- Event object is available as `$event`})\n *\n * @example\n \n \n \n copied: {{copied}}\n \n \n */\n\n/**\n * @ngdoc directive\n * @name ngCut\n * @restrict A\n * @element window, input, select, textarea, a\n * @priority 0\n *\n * @description\n * Specify custom behavior on cut event.\n *\n * @param {expression} ngCut {@link guide/expression Expression} to evaluate upon\n * cut. ({@link guide/expression#-event- Event object is available as `$event`})\n *\n * @example\n \n \n \n cut: {{cut}}\n \n \n */\n\n/**\n * @ngdoc directive\n * @name ngPaste\n * @restrict A\n * @element window, input, select, textarea, a\n * @priority 0\n *\n * @description\n * Specify custom behavior on paste event.\n *\n * @param {expression} ngPaste {@link guide/expression Expression} to evaluate upon\n * paste. ({@link guide/expression#-event- Event object is available as `$event`})\n *\n * @example\n \n \n \n pasted: {{paste}}\n \n \n */\n'use strict';\n\n/**\n * @ngdoc directive\n * @name ngIf\n * @restrict A\n * @multiElement\n *\n * @description\n * The `ngIf` directive removes or recreates a portion of the DOM tree based on an\n * {expression}. If the expression assigned to `ngIf` evaluates to a false\n * value then the element is removed from the DOM, otherwise a clone of the\n * element is reinserted into the DOM.\n *\n * `ngIf` differs from `ngShow` and `ngHide` in that `ngIf` completely removes and recreates the\n * element in the DOM rather than changing its visibility via the `display` css property. A common\n * case when this difference is significant is when using css selectors that rely on an element's\n * position within the DOM, such as the `:first-child` or `:last-child` pseudo-classes.\n *\n * Note that when an element is removed using `ngIf` its scope is destroyed and a new scope\n * is created when the element is restored. The scope created within `ngIf` inherits from\n * its parent scope using\n * [prototypal inheritance](https://github.com/angular/angular.js/wiki/Understanding-Scopes#javascript-prototypal-inheritance).\n * An important implication of this is if `ngModel` is used within `ngIf` to bind to\n * a javascript primitive defined in the parent scope. In this case any modifications made to the\n * variable within the child scope will override (hide) the value in the parent scope.\n *\n * Also, `ngIf` recreates elements using their compiled state. An example of this behavior\n * is if an element's class attribute is directly modified after it's compiled, using something like\n * jQuery's `.addClass()` method, and the element is later removed. When `ngIf` recreates the element\n * the added class will be lost because the original compiled state is used to regenerate the element.\n *\n * Additionally, you can provide animations via the `ngAnimate` module to animate the `enter`\n * and `leave` effects.\n *\n * @animations\n * | Animation | Occurs |\n * |----------------------------------|-------------------------------------|\n * | {@link ng.$animate#enter enter} | just after the `ngIf` contents change and a new DOM element is created and injected into the `ngIf` container |\n * | {@link ng.$animate#leave leave} | just before the `ngIf` contents are removed from the DOM |\n *\n * @element ANY\n * @scope\n * @priority 600\n * @param {expression} ngIf If the {@link guide/expression expression} is falsy then\n * the element is removed from the DOM tree. If it is truthy a copy of the compiled\n * element is added to the DOM tree.\n *\n * @example\n \n \n
\n Show when checked:\n \n This is removed when the checkbox is unchecked.\n \n
\n \n .animate-if {\n background:white;\n border:1px solid black;\n padding:10px;\n }\n\n .animate-if.ng-enter, .animate-if.ng-leave {\n transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;\n }\n\n .animate-if.ng-enter,\n .animate-if.ng-leave.ng-leave-active {\n opacity:0;\n }\n\n .animate-if.ng-leave,\n .animate-if.ng-enter.ng-enter-active {\n opacity:1;\n }\n \n
\n */\nvar ngIfDirective = ['$animate', '$compile', function($animate, $compile) {\n return {\n multiElement: true,\n transclude: 'element',\n priority: 600,\n terminal: true,\n restrict: 'A',\n $$tlb: true,\n link($scope, $element, $attr, ctrl, $transclude) {\n var block;\n var childScope;\n var previousElements;\n $scope.$watch($attr.ngIf, function ngIfWatchAction(value) {\n\n if (value) {\n if (!childScope) {\n $transclude(function(clone, newScope) {\n childScope = newScope;\n clone[clone.length++] = $compile.$$createComment('end ngIf', $attr.ngIf);\n // Note: We only need the first/last node of the cloned nodes.\n // However, we need to keep the reference to the jqlite wrapper as it might be changed later\n // by a directive with templateUrl when its template arrives.\n block = {\n clone: clone\n };\n $animate.enter(clone, $element.parent(), $element);\n });\n }\n } else {\n if (previousElements) {\n previousElements.remove();\n previousElements = null;\n }\n if (childScope) {\n childScope.$destroy();\n childScope = null;\n }\n if (block) {\n previousElements = getBlockNodes(block.clone);\n $animate.leave(previousElements).done(function(response) {\n if (response !== false) previousElements = null;\n });\n block = null;\n }\n }\n });\n }\n };\n}];\n'use strict';\n\n/**\n * @ngdoc directive\n * @name ngInclude\n * @restrict ECA\n * @scope\n * @priority -400\n *\n * @description\n * Fetches, compiles and includes an external HTML fragment.\n *\n * By default, the template URL is restricted to the same domain and protocol as the\n * application document. This is done by calling {@link $sce#getTrustedResourceUrl\n * $sce.getTrustedResourceUrl} on it. To load templates from other domains or protocols\n * you may either {@link ng.$sceDelegateProvider#resourceUrlWhitelist whitelist them} or\n * {@link $sce#trustAsResourceUrl wrap them} as trusted values. Refer to AngularJS's {@link\n * ng.$sce Strict Contextual Escaping}.\n *\n * In addition, the browser's\n * [Same Origin Policy](https://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_XMLHttpRequest)\n * and [Cross-Origin Resource Sharing (CORS)](http://www.w3.org/TR/cors/)\n * policy may further restrict whether the template is successfully loaded.\n * For example, `ngInclude` won't work for cross-domain requests on all browsers and for `file://`\n * access on some browsers.\n *\n * @animations\n * | Animation | Occurs |\n * |----------------------------------|-------------------------------------|\n * | {@link ng.$animate#enter enter} | when the expression changes, on the new include |\n * | {@link ng.$animate#leave leave} | when the expression changes, on the old include |\n *\n * The enter and leave animation occur concurrently.\n *\n * @param {string} ngInclude|src AngularJS expression evaluating to URL. If the source is a string constant,\n * make sure you wrap it in **single** quotes, e.g. `src=\"'myPartialTemplate.html'\"`.\n * @param {string=} onload Expression to evaluate when a new partial is loaded.\n * @param {string=} autoscroll Whether `ngInclude` should call {@link ng.$anchorScroll\n * $anchorScroll} to scroll the viewport after the content is loaded.\n *\n * - If the attribute is not set, disable scrolling.\n * - If the attribute is set without value, enable scrolling.\n * - Otherwise enable scrolling only if the expression evaluates to truthy value.\n *\n * @example\n \n \n
\n \n url of the template: {{template.url}}\n
\n
\n
\n
\n
\n
\n \n angular.module('includeExample', ['ngAnimate'])\n .controller('ExampleController', ['$scope', function($scope) {\n $scope.templates =\n [{ name: 'template1.html', url: 'template1.html'},\n { name: 'template2.html', url: 'template2.html'}];\n $scope.template = $scope.templates[0];\n }]);\n \n \n Content of template1.html\n \n \n Content of template2.html\n \n \n .slide-animate-container {\n position:relative;\n background:white;\n border:1px solid black;\n height:40px;\n overflow:hidden;\n }\n\n .slide-animate {\n padding:10px;\n }\n\n .slide-animate.ng-enter, .slide-animate.ng-leave {\n transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;\n\n position:absolute;\n top:0;\n left:0;\n right:0;\n bottom:0;\n display:block;\n padding:10px;\n }\n\n .slide-animate.ng-enter {\n top:-50px;\n }\n .slide-animate.ng-enter.ng-enter-active {\n top:0;\n }\n\n .slide-animate.ng-leave {\n top:0;\n }\n .slide-animate.ng-leave.ng-leave-active {\n top:50px;\n }\n \n \n var templateSelect = element(by.model('template'));\n var includeElem = element(by.css('[ng-include]'));\n\n it('should load template1.html', function() {\n expect(includeElem.getText()).toMatch(/Content of template1.html/);\n });\n\n it('should load template2.html', function() {\n if (browser.params.browser === 'firefox') {\n // Firefox can't handle using selects\n // See https://github.com/angular/protractor/issues/480\n return;\n }\n templateSelect.click();\n templateSelect.all(by.css('option')).get(2).click();\n expect(includeElem.getText()).toMatch(/Content of template2.html/);\n });\n\n it('should change to blank', function() {\n if (browser.params.browser === 'firefox') {\n // Firefox can't handle using selects\n return;\n }\n templateSelect.click();\n templateSelect.all(by.css('option')).get(0).click();\n expect(includeElem.isPresent()).toBe(false);\n });\n \n
\n */\n\n\n/**\n * @ngdoc event\n * @name ngInclude#$includeContentRequested\n * @eventType emit on the scope ngInclude was declared in\n * @description\n * Emitted every time the ngInclude content is requested.\n *\n * @param {Object} angularEvent Synthetic event object.\n * @param {String} src URL of content to load.\n */\n\n\n/**\n * @ngdoc event\n * @name ngInclude#$includeContentLoaded\n * @eventType emit on the current ngInclude scope\n * @description\n * Emitted every time the ngInclude content is reloaded.\n *\n * @param {Object} angularEvent Synthetic event object.\n * @param {String} src URL of content to load.\n */\n\n\n/**\n * @ngdoc event\n * @name ngInclude#$includeContentError\n * @eventType emit on the scope ngInclude was declared in\n * @description\n * Emitted when a template HTTP request yields an erroneous response (status < 200 || status > 299)\n *\n * @param {Object} angularEvent Synthetic event object.\n * @param {String} src URL of content to load.\n */\nvar ngIncludeDirective = ['$templateRequest', '$anchorScroll', '$animate',\n function($templateRequest, $anchorScroll, $animate) {\n return {\n restrict: 'ECA',\n priority: 400,\n terminal: true,\n transclude: 'element',\n controller: angular.noop,\n compile(element, attr) {\n var srcExp = attr.ngInclude || attr.src;\n var onloadExp = attr.onload || '';\n var autoScrollExp = attr.autoscroll;\n\n return function(scope, $element, $attr, ctrl, $transclude) {\n var changeCounter = 0;\n var currentScope;\n var previousElement;\n var currentElement;\n\n var cleanupLastIncludeContent = function() {\n if (previousElement) {\n previousElement.remove();\n previousElement = null;\n }\n if (currentScope) {\n currentScope.$destroy();\n currentScope = null;\n }\n if (currentElement) {\n $animate.leave(currentElement).done(function(response) {\n if (response !== false) previousElement = null;\n });\n previousElement = currentElement;\n currentElement = null;\n }\n };\n\n scope.$watch(srcExp, function ngIncludeWatchAction(src) {\n var afterAnimation = function(response) {\n if (response !== false && isDefined(autoScrollExp) &&\n (!autoScrollExp || scope.$eval(autoScrollExp))) {\n $anchorScroll();\n }\n };\n var thisChangeId = ++changeCounter;\n\n if (src) {\n //set the 2nd param to true to ignore the template request error so that the inner\n //contents and scope can be cleaned up.\n $templateRequest(src, true).then(function(response) {\n if (scope.$$destroyed) return;\n\n if (thisChangeId !== changeCounter) return;\n var newScope = scope.$new();\n ctrl.template = response;\n\n // Note: This will also link all children of ng-include that were contained in the original\n // html. If that content contains controllers, ... they could pollute/change the scope.\n // However, using ng-include on an element with additional content does not make sense...\n // Note: We can't remove them in the cloneAttchFn of $transclude as that\n // function is called before linking the content, which would apply child\n // directives to non existing elements.\n var clone = $transclude(newScope, function(clone) {\n cleanupLastIncludeContent();\n $animate.enter(clone, null, $element).done(afterAnimation);\n });\n\n currentScope = newScope;\n currentElement = clone;\n\n currentScope.$emit('$includeContentLoaded', src);\n scope.$eval(onloadExp);\n }, function() {\n if (scope.$$destroyed) return;\n\n if (thisChangeId === changeCounter) {\n cleanupLastIncludeContent();\n scope.$emit('$includeContentError', src);\n }\n });\n scope.$emit('$includeContentRequested', src);\n } else {\n cleanupLastIncludeContent();\n ctrl.template = null;\n }\n });\n };\n }\n };\n}];\n\n// This directive is called during the $transclude call of the first `ngInclude` directive.\n// It will replace and compile the content of the element with the loaded template.\n// We need this directive so that the element content is already filled when\n// the link function of another directive on the same element as ngInclude\n// is called.\nvar ngIncludeFillContentDirective = ['$compile',\n function($compile) {\n return {\n restrict: 'ECA',\n priority: -400,\n require: 'ngInclude',\n link(scope, $element, $attr, ctrl) {\n if (toString.call($element[0]).match(/SVG/)) {\n // WebKit: https://bugs.webkit.org/show_bug.cgi?id=135698 --- SVG elements do not\n // support innerHTML, so detect this here and try to generate the contents\n // specially.\n $element.empty();\n $compile(jqLiteBuildFragment(ctrl.template, window.document).childNodes)(scope,\n function namespaceAdaptedClone(clone) {\n $element.append(clone);\n }, {futureParentElement: $element});\n return;\n }\n\n $element.html(ctrl.template);\n $compile($element.contents())(scope);\n }\n };\n }];\n'use strict';\n\n/**\n * @ngdoc directive\n * @name ngInit\n * @restrict AC\n * @priority 450\n * @element ANY\n *\n * @param {expression} ngInit {@link guide/expression Expression} to eval.\n *\n * @description\n * The `ngInit` directive allows you to evaluate an expression in the\n * current scope.\n *\n *
\n * This directive can be abused to add unnecessary amounts of logic into your templates.\n * There are only a few appropriate uses of `ngInit`:\n *
    \n *
  • aliasing special properties of {@link ng.directive:ngRepeat `ngRepeat`},\n * as seen in the demo below.
  • \n *
  • initializing data during development, or for examples, as seen throughout these docs.
  • \n *
  • injecting data via server side scripting.
  • \n *
\n *\n * Besides these few cases, you should use {@link guide/component Components} or\n * {@link guide/controller Controllers} rather than `ngInit` to initialize values on a scope.\n *
\n *\n *
\n * **Note**: If you have assignment in `ngInit` along with a {@link ng.$filter `filter`}, make\n * sure you have parentheses to ensure correct operator precedence:\n *
\n * `
`\n *
\n *
\n *\n * @example\n \n \n \n
\n
\n
\n list[ {{outerIndex}} ][ {{innerIndex}} ] = {{value}};\n
\n
\n
\n
\n \n it('should alias index positions', function() {\n var elements = element.all(by.css('.example-init'));\n expect(elements.get(0).getText()).toBe('list[ 0 ][ 0 ] = a;');\n expect(elements.get(1).getText()).toBe('list[ 0 ][ 1 ] = b;');\n expect(elements.get(2).getText()).toBe('list[ 1 ][ 0 ] = c;');\n expect(elements.get(3).getText()).toBe('list[ 1 ][ 1 ] = d;');\n });\n \n
\n */\nvar ngInitDirective = ngDirective({\n priority: 450,\n compile() {\n return {\n pre(scope, element, attrs) {\n scope.$eval(attrs.ngInit);\n }\n };\n }\n});\n'use strict';\n\n\n/**\n * @ngdoc directive\n * @name ngList\n * @restrict A\n * @priority 100\n *\n * @param {string=} ngList optional delimiter that should be used to split the value.\n *\n * @description\n * Text input that converts between a delimited string and an array of strings. The default\n * delimiter is a comma followed by a space - equivalent to `ng-list=\", \"`. You can specify a custom\n * delimiter as the value of the `ngList` attribute - for example, `ng-list=\" | \"`.\n *\n * The behaviour of the directive is affected by the use of the `ngTrim` attribute.\n * * If `ngTrim` is set to `\"false\"` then whitespace around both the separator and each\n * list item is respected. This implies that the user of the directive is responsible for\n * dealing with whitespace but also allows you to use whitespace as a delimiter, such as a\n * tab or newline character.\n * * Otherwise whitespace around the delimiter is ignored when splitting (although it is respected\n * when joining the list items back together) and whitespace around each list item is stripped\n * before it is added to the model.\n *\n * @example\n * ### Validation\n *\n * \n * \n * angular.module('listExample', [])\n * .controller('ExampleController', ['$scope', function($scope) {\n * $scope.names = ['morpheus', 'neo', 'trinity'];\n * }]);\n * \n * \n *
\n * \n * \n * \n * Required!\n * \n *
\n * names = {{names}}
\n * myForm.namesInput.$valid = {{myForm.namesInput.$valid}}
\n * myForm.namesInput.$error = {{myForm.namesInput.$error}}
\n * myForm.$valid = {{myForm.$valid}}
\n * myForm.$error.required = {{!!myForm.$error.required}}
\n *
\n *
\n * \n * var listInput = element(by.model('names'));\n * var names = element(by.exactBinding('names'));\n * var valid = element(by.binding('myForm.namesInput.$valid'));\n * var error = element(by.css('span.error'));\n *\n * it('should initialize to model', function() {\n * expect(names.getText()).toContain('[\"morpheus\",\"neo\",\"trinity\"]');\n * expect(valid.getText()).toContain('true');\n * expect(error.getCssValue('display')).toBe('none');\n * });\n *\n * it('should be invalid if empty', function() {\n * listInput.clear();\n * listInput.sendKeys('');\n *\n * expect(names.getText()).toContain('');\n * expect(valid.getText()).toContain('false');\n * expect(error.getCssValue('display')).not.toBe('none');\n * });\n * \n *
\n *\n * @example\n * ### Splitting on newline\n *\n * \n * \n * \n *
{{ list | json }}
\n *
\n * \n * it(\"should split the text by newlines\", function() {\n * var listInput = element(by.model('list'));\n * var output = element(by.binding('list | json'));\n * listInput.sendKeys('abc\\ndef\\nghi');\n * expect(output.getText()).toContain('[\\n \"abc\",\\n \"def\",\\n \"ghi\"\\n]');\n * });\n * \n *
\n *\n */\nvar ngListDirective = function() {\n return {\n restrict: 'A',\n priority: 100,\n require: 'ngModel',\n link(scope, element, attr, ctrl) {\n var ngList = attr.ngList || ', ';\n var trimValues = attr.ngTrim !== 'false';\n var separator = trimValues ? trim(ngList) : ngList;\n\n var parse = function(viewValue) {\n // If the viewValue is invalid (say required but empty) it will be `undefined`\n if (isUndefined(viewValue)) return;\n\n var list = [];\n\n if (viewValue) {\n forEach(viewValue.split(separator), function(value) {\n if (value) list.push(trimValues ? trim(value) : value);\n });\n }\n\n return list;\n };\n\n ctrl.$parsers.push(parse);\n ctrl.$formatters.push(function(value) {\n if (isArray(value)) {\n return value.join(ngList);\n }\n\n return undefined;\n });\n\n // Override the standard $isEmpty because an empty array means the input is empty.\n ctrl.$isEmpty = function(value) {\n return !value || !value.length;\n };\n }\n };\n};\n'use strict';\n\n/* global VALID_CLASS: true,\n INVALID_CLASS: true,\n PRISTINE_CLASS: true,\n DIRTY_CLASS: true,\n UNTOUCHED_CLASS: true,\n TOUCHED_CLASS: true,\n PENDING_CLASS: true,\n addSetValidityMethod: true,\n setupValidity: true,\n defaultModelOptions: false\n*/\n\n\nvar VALID_CLASS = 'ng-valid';\n\nvar INVALID_CLASS = 'ng-invalid';\nvar PRISTINE_CLASS = 'ng-pristine';\nvar DIRTY_CLASS = 'ng-dirty';\nvar UNTOUCHED_CLASS = 'ng-untouched';\nvar TOUCHED_CLASS = 'ng-touched';\nvar EMPTY_CLASS = 'ng-empty';\nvar NOT_EMPTY_CLASS = 'ng-not-empty';\n\nvar ngModelMinErr = minErr('ngModel');\n\n/**\n * @ngdoc type\n * @name ngModel.NgModelController\n * @property {*} $viewValue The actual value from the control's view. For `input` elements, this is a\n * String. See {@link ngModel.NgModelController#$setViewValue} for information about when the $viewValue\n * is set.\n *\n * @property {*} $modelValue The value in the model that the control is bound to.\n *\n * @property {Array.} $parsers Array of functions to execute, as a pipeline, whenever\n * the control updates the ngModelController with a new {@link ngModel.NgModelController#$viewValue\n `$viewValue`} from the DOM, usually via user input.\n See {@link ngModel.NgModelController#$setViewValue `$setViewValue()`} for a detailed lifecycle explanation.\n Note that the `$parsers` are not called when the bound ngModel expression changes programmatically.\n\n The functions are called in array order, each passing\n its return value through to the next. The last return value is forwarded to the\n {@link ngModel.NgModelController#$validators `$validators`} collection.\n\n Parsers are used to sanitize / convert the {@link ngModel.NgModelController#$viewValue\n `$viewValue`}.\n\n Returning `undefined` from a parser means a parse error occurred. In that case,\n no {@link ngModel.NgModelController#$validators `$validators`} will run and the `ngModel`\n will be set to `undefined` unless {@link ngModelOptions `ngModelOptions.allowInvalid`}\n is set to `true`. The parse error is stored in `ngModel.$error.parse`.\n\n This simple example shows a parser that would convert text input value to lowercase:\n * ```js\n * function parse(value) {\n * if (value) {\n * return value.toLowerCase();\n * }\n * }\n * ngModelController.$parsers.push(parse);\n * ```\n\n *\n * @property {Array.} $formatters Array of functions to execute, as a pipeline, whenever\n the bound ngModel expression changes programmatically. The `$formatters` are not called when the\n value of the control is changed by user interaction.\n\n Formatters are used to format / convert the {@link ngModel.NgModelController#$modelValue\n `$modelValue`} for display in the control.\n\n The functions are called in reverse array order, each passing the value through to the\n next. The last return value is used as the actual DOM value.\n\n This simple example shows a formatter that would convert the model value to uppercase:\n\n * ```js\n * function format(value) {\n * if (value) {\n * return value.toUpperCase();\n * }\n * }\n * ngModel.$formatters.push(format);\n * ```\n *\n * @property {Object.} $validators A collection of validators that are applied\n * whenever the model value changes. The key value within the object refers to the name of the\n * validator while the function refers to the validation operation. The validation operation is\n * provided with the model value as an argument and must return a true or false value depending\n * on the response of that validation.\n *\n * ```js\n * ngModel.$validators.validCharacters = function(modelValue, viewValue) {\n * var value = modelValue || viewValue;\n * return /[0-9]+/.test(value) &&\n * /[a-z]+/.test(value) &&\n * /[A-Z]+/.test(value) &&\n * /\\W+/.test(value);\n * };\n * ```\n *\n * @property {Object.} $asyncValidators A collection of validations that are expected to\n * perform an asynchronous validation (e.g. a HTTP request). The validation function that is provided\n * is expected to return a promise when it is run during the model validation process. Once the promise\n * is delivered then the validation status will be set to true when fulfilled and false when rejected.\n * When the asynchronous validators are triggered, each of the validators will run in parallel and the model\n * value will only be updated once all validators have been fulfilled. As long as an asynchronous validator\n * is unfulfilled, its key will be added to the controllers `$pending` property. Also, all asynchronous validators\n * will only run once all synchronous validators have passed.\n *\n * Please note that if $http is used then it is important that the server returns a success HTTP response code\n * in order to fulfill the validation and a status level of `4xx` in order to reject the validation.\n *\n * ```js\n * ngModel.$asyncValidators.uniqueUsername = function(modelValue, viewValue) {\n * var value = modelValue || viewValue;\n *\n * // Lookup user by username\n * return $http.get('/api/users/' + value).\n * then(function resolved() {\n * //username exists, this means validation fails\n * return $q.reject('exists');\n * }, function rejected() {\n * //username does not exist, therefore this validation passes\n * return true;\n * });\n * };\n * ```\n *\n * @property {Array.} $viewChangeListeners Array of functions to execute whenever\n * a change to {@link ngModel.NgModelController#$viewValue `$viewValue`} has caused a change\n * to {@link ngModel.NgModelController#$modelValue `$modelValue`}.\n * It is called with no arguments, and its return value is ignored.\n * This can be used in place of additional $watches against the model value.\n *\n * @property {Object} $error An object hash with all failing validator ids as keys.\n * @property {Object} $pending An object hash with all pending validator ids as keys.\n *\n * @property {boolean} $untouched True if control has not lost focus yet.\n * @property {boolean} $touched True if control has lost focus.\n * @property {boolean} $pristine True if user has not interacted with the control yet.\n * @property {boolean} $dirty True if user has already interacted with the control.\n * @property {boolean} $valid True if there is no error.\n * @property {boolean} $invalid True if at least one error on the control.\n * @property {string} $name The name attribute of the control.\n *\n * @description\n *\n * `NgModelController` provides API for the {@link ngModel `ngModel`} directive.\n * The controller contains services for data-binding, validation, CSS updates, and value formatting\n * and parsing. It purposefully does not contain any logic which deals with DOM rendering or\n * listening to DOM events.\n * Such DOM related logic should be provided by other directives which make use of\n * `NgModelController` for data-binding to control elements.\n * AngularJS provides this DOM logic for most {@link input `input`} elements.\n * At the end of this page you can find a {@link ngModel.NgModelController#custom-control-example\n * custom control example} that uses `ngModelController` to bind to `contenteditable` elements.\n *\n * @example\n * ### Custom Control Example\n * This example shows how to use `NgModelController` with a custom control to achieve\n * data-binding. Notice how different directives (`contenteditable`, `ng-model`, and `required`)\n * collaborate together to achieve the desired result.\n *\n * `contenteditable` is an HTML5 attribute, which tells the browser to let the element\n * contents be edited in place by the user.\n *\n * We are using the {@link ng.service:$sce $sce} service here and include the {@link ngSanitize $sanitize}\n * module to automatically remove \"bad\" content like inline event listener (e.g. ``).\n * However, as we are using `$sce` the model can still decide to provide unsafe content if it marks\n * that content using the `$sce` service.\n *\n * \n \n [contenteditable] {\n border: 1px solid black;\n background-color: white;\n min-height: 20px;\n }\n\n .ng-invalid {\n border: 1px solid red;\n }\n\n \n \n angular.module('customControl', ['ngSanitize']).\n directive('contenteditable', ['$sce', function($sce) {\n return {\n restrict: 'A', // only activate on element attribute\n require: '?ngModel', // get a hold of NgModelController\n link: function(scope, element, attrs, ngModel) {\n if (!ngModel) return; // do nothing if no ng-model\n\n // Specify how UI should be updated\n ngModel.$render = function() {\n element.html($sce.getTrustedHtml(ngModel.$viewValue || ''));\n };\n\n // Listen for change events to enable binding\n element.on('blur keyup change', function() {\n scope.$evalAsync(read);\n });\n read(); // initialize\n\n // Write data to the model\n function read() {\n var html = element.html();\n // When we clear the content editable the browser leaves a
behind\n // If strip-br attribute is provided then we strip this out\n if (attrs.stripBr && html === '
') {\n html = '';\n }\n ngModel.$setViewValue(html);\n }\n }\n };\n }]);\n
\n \n
\n
Change me!
\n Required!\n
\n \n
\n
\n \n it('should data-bind and become invalid', function() {\n if (browser.params.browser === 'safari' || browser.params.browser === 'firefox') {\n // SafariDriver can't handle contenteditable\n // and Firefox driver can't clear contenteditables very well\n return;\n }\n var contentEditable = element(by.css('[contenteditable]'));\n var content = 'Change me!';\n\n expect(contentEditable.getText()).toEqual(content);\n\n contentEditable.clear();\n contentEditable.sendKeys(protractor.Key.BACK_SPACE);\n expect(contentEditable.getText()).toEqual('');\n expect(contentEditable.getAttribute('class')).toMatch(/ng-invalid-required/);\n });\n \n *
\n *\n *\n */\nNgModelController.$inject = ['$scope', '$exceptionHandler', '$attrs', '$element', '$parse', '$animate', '$timeout', '$q', '$interpolate'];\nfunction NgModelController($scope, $exceptionHandler, $attr, $element, $parse, $animate, $timeout, $q, $interpolate) {\n this.$viewValue = Number.NaN;\n this.$modelValue = Number.NaN;\n this.$$rawModelValue = undefined; // stores the parsed modelValue / model set from scope regardless of validity.\n this.$validators = {};\n this.$asyncValidators = {};\n this.$parsers = [];\n this.$formatters = [];\n this.$viewChangeListeners = [];\n this.$untouched = true;\n this.$touched = false;\n this.$pristine = true;\n this.$dirty = false;\n this.$valid = true;\n this.$invalid = false;\n this.$error = {}; // keep invalid keys here\n this.$$success = {}; // keep valid keys here\n this.$pending = undefined; // keep pending keys here\n this.$name = $interpolate($attr.name || '', false)($scope);\n this.$$parentForm = nullFormCtrl;\n this.$options = defaultModelOptions;\n this.$$updateEvents = '';\n // Attach the correct context to the event handler function for updateOn\n this.$$updateEventHandler = this.$$updateEventHandler.bind(this);\n\n this.$$parsedNgModel = $parse($attr.ngModel);\n this.$$parsedNgModelAssign = this.$$parsedNgModel.assign;\n this.$$ngModelGet = this.$$parsedNgModel;\n this.$$ngModelSet = this.$$parsedNgModelAssign;\n this.$$pendingDebounce = null;\n this.$$parserValid = undefined;\n\n this.$$currentValidationRunId = 0;\n\n // https://github.com/angular/angular.js/issues/15833\n // Prevent `$$scope` from being iterated over by `copy` when NgModelController is deep watched\n Object.defineProperty(this, '$$scope', {value: $scope});\n this.$$attr = $attr;\n this.$$element = $element;\n this.$$animate = $animate;\n this.$$timeout = $timeout;\n this.$$parse = $parse;\n this.$$q = $q;\n this.$$exceptionHandler = $exceptionHandler;\n\n setupValidity(this);\n setupModelWatcher(this);\n}\n\nNgModelController.prototype = {\n $$initGetterSetters() {\n if (this.$options.getOption('getterSetter')) {\n var invokeModelGetter = this.$$parse(this.$$attr.ngModel + '()');\n var invokeModelSetter = this.$$parse(this.$$attr.ngModel + '($$$p)');\n\n this.$$ngModelGet = function($scope) {\n var modelValue = this.$$parsedNgModel($scope);\n if (isFunction(modelValue)) {\n modelValue = invokeModelGetter($scope);\n }\n return modelValue;\n };\n this.$$ngModelSet = function($scope, newValue) {\n if (isFunction(this.$$parsedNgModel($scope))) {\n invokeModelSetter($scope, {$$$p: newValue});\n } else {\n this.$$parsedNgModelAssign($scope, newValue);\n }\n };\n } else if (!this.$$parsedNgModel.assign) {\n throw ngModelMinErr('nonassign', 'Expression \\'{0}\\' is non-assignable. Element: {1}',\n this.$$attr.ngModel, startingTag(this.$$element));\n }\n },\n\n\n /**\n * @ngdoc method\n * @name ngModel.NgModelController#$render\n *\n * @description\n * Called when the view needs to be updated. It is expected that the user of the ng-model\n * directive will implement this method.\n *\n * The `$render()` method is invoked in the following situations:\n *\n * * `$rollbackViewValue()` is called. If we are rolling back the view value to the last\n * committed value then `$render()` is called to update the input control.\n * * The value referenced by `ng-model` is changed programmatically and both the `$modelValue` and\n * the `$viewValue` are different from last time.\n *\n * Since `ng-model` does not do a deep watch, `$render()` is only invoked if the values of\n * `$modelValue` and `$viewValue` are actually different from their previous values. If `$modelValue`\n * or `$viewValue` are objects (rather than a string or number) then `$render()` will not be\n * invoked if you only change a property on the objects.\n */\n $render: noop,\n\n /**\n * @ngdoc method\n * @name ngModel.NgModelController#$isEmpty\n *\n * @description\n * This is called when we need to determine if the value of an input is empty.\n *\n * For instance, the required directive does this to work out if the input has data or not.\n *\n * The default `$isEmpty` function checks whether the value is `undefined`, `''`, `null` or `NaN`.\n *\n * You can override this for input directives whose concept of being empty is different from the\n * default. The `checkboxInputType` directive does this because in its case a value of `false`\n * implies empty.\n *\n * @param {*} value The value of the input to check for emptiness.\n * @returns {boolean} True if `value` is \"empty\".\n */\n $isEmpty(value) {\n // eslint-disable-next-line no-self-compare\n return isUndefined(value) || value === '' || value === null || value !== value;\n },\n\n $$updateEmptyClasses(value) {\n if (this.$isEmpty(value)) {\n this.$$animate.removeClass(this.$$element, NOT_EMPTY_CLASS);\n this.$$animate.addClass(this.$$element, EMPTY_CLASS);\n } else {\n this.$$animate.removeClass(this.$$element, EMPTY_CLASS);\n this.$$animate.addClass(this.$$element, NOT_EMPTY_CLASS);\n }\n },\n\n /**\n * @ngdoc method\n * @name ngModel.NgModelController#$setPristine\n *\n * @description\n * Sets the control to its pristine state.\n *\n * This method can be called to remove the `ng-dirty` class and set the control to its pristine\n * state (`ng-pristine` class). A model is considered to be pristine when the control\n * has not been changed from when first compiled.\n */\n $setPristine() {\n this.$dirty = false;\n this.$pristine = true;\n this.$$animate.removeClass(this.$$element, DIRTY_CLASS);\n this.$$animate.addClass(this.$$element, PRISTINE_CLASS);\n },\n\n /**\n * @ngdoc method\n * @name ngModel.NgModelController#$setDirty\n *\n * @description\n * Sets the control to its dirty state.\n *\n * This method can be called to remove the `ng-pristine` class and set the control to its dirty\n * state (`ng-dirty` class). A model is considered to be dirty when the control has been changed\n * from when first compiled.\n */\n $setDirty() {\n this.$dirty = true;\n this.$pristine = false;\n this.$$animate.removeClass(this.$$element, PRISTINE_CLASS);\n this.$$animate.addClass(this.$$element, DIRTY_CLASS);\n this.$$parentForm.$setDirty();\n },\n\n /**\n * @ngdoc method\n * @name ngModel.NgModelController#$setUntouched\n *\n * @description\n * Sets the control to its untouched state.\n *\n * This method can be called to remove the `ng-touched` class and set the control to its\n * untouched state (`ng-untouched` class). Upon compilation, a model is set as untouched\n * by default, however this function can be used to restore that state if the model has\n * already been touched by the user.\n */\n $setUntouched() {\n this.$touched = false;\n this.$untouched = true;\n this.$$animate.setClass(this.$$element, UNTOUCHED_CLASS, TOUCHED_CLASS);\n },\n\n /**\n * @ngdoc method\n * @name ngModel.NgModelController#$setTouched\n *\n * @description\n * Sets the control to its touched state.\n *\n * This method can be called to remove the `ng-untouched` class and set the control to its\n * touched state (`ng-touched` class). A model is considered to be touched when the user has\n * first focused the control element and then shifted focus away from the control (blur event).\n */\n $setTouched() {\n this.$touched = true;\n this.$untouched = false;\n this.$$animate.setClass(this.$$element, TOUCHED_CLASS, UNTOUCHED_CLASS);\n },\n\n /**\n * @ngdoc method\n * @name ngModel.NgModelController#$rollbackViewValue\n *\n * @description\n * Cancel an update and reset the input element's value to prevent an update to the `$modelValue`,\n * which may be caused by a pending debounced event or because the input is waiting for some\n * future event.\n *\n * If you have an input that uses `ng-model-options` to set up debounced updates or updates that\n * depend on special events such as `blur`, there can be a period when the `$viewValue` is out of\n * sync with the ngModel's `$modelValue`.\n *\n * In this case, you can use `$rollbackViewValue()` to manually cancel the debounced / future update\n * and reset the input to the last committed view value.\n *\n * It is also possible that you run into difficulties if you try to update the ngModel's `$modelValue`\n * programmatically before these debounced/future events have resolved/occurred, because AngularJS's\n * dirty checking mechanism is not able to tell whether the model has actually changed or not.\n *\n * The `$rollbackViewValue()` method should be called before programmatically changing the model of an\n * input which may have such events pending. This is important in order to make sure that the\n * input field will be updated with the new model value and any pending operations are cancelled.\n *\n * @example\n * \n * \n * angular.module('cancel-update-example', [])\n *\n * .controller('CancelUpdateController', ['$scope', function($scope) {\n * $scope.model = {value1: '', value2: ''};\n *\n * $scope.setEmpty = function(e, value, rollback) {\n * if (e.keyCode === 27) {\n * e.preventDefault();\n * if (rollback) {\n * $scope.myForm[value].$rollbackViewValue();\n * }\n * $scope.model[value] = '';\n * }\n * };\n * }]);\n * \n * \n *
\n *

Both of these inputs are only updated if they are blurred. Hitting escape should\n * empty them. Follow these steps and observe the difference:

\n *
    \n *
  1. Type something in the input. You will see that the model is not yet updated
  2. \n *
  3. Press the Escape key.\n *
      \n *
    1. In the first example, nothing happens, because the model is already '', and no\n * update is detected. If you blur the input, the model will be set to the current view.\n *
    2. \n *
    3. In the second example, the pending update is cancelled, and the input is set back\n * to the last committed view value (''). Blurring the input does nothing.\n *
    4. \n *
    \n *
  4. \n *
\n *\n *
\n *
\n *

Without $rollbackViewValue():

\n * \n * value1: \"{{ model.value1 }}\"\n *
\n *\n *
\n *

With $rollbackViewValue():

\n * \n * value2: \"{{ model.value2 }}\"\n *
\n *
\n *
\n *
\n \n div {\n display: table-cell;\n }\n div:nth-child(1) {\n padding-right: 30px;\n }\n\n \n *
\n */\n $rollbackViewValue() {\n this.$$timeout.cancel(this.$$pendingDebounce);\n this.$viewValue = this.$$lastCommittedViewValue;\n this.$render();\n },\n\n /**\n * @ngdoc method\n * @name ngModel.NgModelController#$validate\n *\n * @description\n * Runs each of the registered validators (first synchronous validators and then\n * asynchronous validators).\n * If the validity changes to invalid, the model will be set to `undefined`,\n * unless {@link ngModelOptions `ngModelOptions.allowInvalid`} is `true`.\n * If the validity changes to valid, it will set the model to the last available valid\n * `$modelValue`, i.e. either the last parsed value or the last value set from the scope.\n */\n $validate() {\n // ignore $validate before model is initialized\n if (isNumberNaN(this.$modelValue)) {\n return;\n }\n\n var viewValue = this.$$lastCommittedViewValue;\n // Note: we use the $$rawModelValue as $modelValue might have been\n // set to undefined during a view -> model update that found validation\n // errors. We can't parse the view here, since that could change\n // the model although neither viewValue nor the model on the scope changed\n var modelValue = this.$$rawModelValue;\n\n var prevValid = this.$valid;\n var prevModelValue = this.$modelValue;\n\n var allowInvalid = this.$options.getOption('allowInvalid');\n\n var that = this;\n this.$$runValidators(modelValue, viewValue, function(allValid) {\n // If there was no change in validity, don't update the model\n // This prevents changing an invalid modelValue to undefined\n if (!allowInvalid && prevValid !== allValid) {\n // Note: Don't check this.$valid here, as we could have\n // external validators (e.g. calculated on the server),\n // that just call $setValidity and need the model value\n // to calculate their validity.\n that.$modelValue = allValid ? modelValue : undefined;\n\n if (that.$modelValue !== prevModelValue) {\n that.$$writeModelToScope();\n }\n }\n });\n },\n\n $$runValidators(modelValue, viewValue, doneCallback) {\n this.$$currentValidationRunId++;\n var localValidationRunId = this.$$currentValidationRunId;\n var that = this;\n\n // check parser error\n if (!processParseErrors()) {\n validationDone(false);\n return;\n }\n if (!processSyncValidators()) {\n validationDone(false);\n return;\n }\n processAsyncValidators();\n\n function processParseErrors() {\n var errorKey = that.$$parserName || 'parse';\n if (isUndefined(that.$$parserValid)) {\n setValidity(errorKey, null);\n } else {\n if (!that.$$parserValid) {\n forEach(that.$validators, function(v, name) {\n setValidity(name, null);\n });\n forEach(that.$asyncValidators, function(v, name) {\n setValidity(name, null);\n });\n }\n // Set the parse error last, to prevent unsetting it, should a $validators key == parserName\n setValidity(errorKey, that.$$parserValid);\n return that.$$parserValid;\n }\n return true;\n }\n\n function processSyncValidators() {\n var syncValidatorsValid = true;\n forEach(that.$validators, function(validator, name) {\n var result = Boolean(validator(modelValue, viewValue));\n syncValidatorsValid = syncValidatorsValid && result;\n setValidity(name, result);\n });\n if (!syncValidatorsValid) {\n forEach(that.$asyncValidators, function(v, name) {\n setValidity(name, null);\n });\n return false;\n }\n return true;\n }\n\n function processAsyncValidators() {\n var validatorPromises = [];\n var allValid = true;\n forEach(that.$asyncValidators, function(validator, name) {\n var promise = validator(modelValue, viewValue);\n if (!isPromiseLike(promise)) {\n throw ngModelMinErr('nopromise',\n 'Expected asynchronous validator to return a promise but got \\'{0}\\' instead.', promise);\n }\n setValidity(name, undefined);\n validatorPromises.push(promise.then(function() {\n setValidity(name, true);\n }, function() {\n allValid = false;\n setValidity(name, false);\n }));\n });\n if (!validatorPromises.length) {\n validationDone(true);\n } else {\n that.$$q.all(validatorPromises).then(function() {\n validationDone(allValid);\n }, noop);\n }\n }\n\n function setValidity(name, isValid) {\n if (localValidationRunId === that.$$currentValidationRunId) {\n that.$setValidity(name, isValid);\n }\n }\n\n function validationDone(allValid) {\n if (localValidationRunId === that.$$currentValidationRunId) {\n\n doneCallback(allValid);\n }\n }\n },\n\n /**\n * @ngdoc method\n * @name ngModel.NgModelController#$commitViewValue\n *\n * @description\n * Commit a pending update to the `$modelValue`.\n *\n * Updates may be pending by a debounced event or because the input is waiting for a some future\n * event defined in `ng-model-options`. this method is rarely needed as `NgModelController`\n * usually handles calling this in response to input events.\n */\n $commitViewValue() {\n var viewValue = this.$viewValue;\n\n this.$$timeout.cancel(this.$$pendingDebounce);\n\n // If the view value has not changed then we should just exit, except in the case where there is\n // a native validator on the element. In this case the validation state may have changed even though\n // the viewValue has stayed empty.\n if (this.$$lastCommittedViewValue === viewValue && (viewValue !== '' || !this.$$hasNativeValidators)) {\n return;\n }\n this.$$updateEmptyClasses(viewValue);\n this.$$lastCommittedViewValue = viewValue;\n\n // change to dirty\n if (this.$pristine) {\n this.$setDirty();\n }\n this.$$parseAndValidate();\n },\n\n $$parseAndValidate() {\n var viewValue = this.$$lastCommittedViewValue;\n var modelValue = viewValue;\n var that = this;\n\n this.$$parserValid = isUndefined(modelValue) ? undefined : true;\n\n if (this.$$parserValid) {\n for (var i = 0; i < this.$parsers.length; i++) {\n modelValue = this.$parsers[i](modelValue);\n if (isUndefined(modelValue)) {\n this.$$parserValid = false;\n break;\n }\n }\n }\n if (isNumberNaN(this.$modelValue)) {\n // this.$modelValue has not been touched yet...\n this.$modelValue = this.$$ngModelGet(this.$$scope);\n }\n var prevModelValue = this.$modelValue;\n var allowInvalid = this.$options.getOption('allowInvalid');\n this.$$rawModelValue = modelValue;\n\n if (allowInvalid) {\n this.$modelValue = modelValue;\n writeToModelIfNeeded();\n }\n\n // Pass the $$lastCommittedViewValue here, because the cached viewValue might be out of date.\n // This can happen if e.g. $setViewValue is called from inside a parser\n this.$$runValidators(modelValue, this.$$lastCommittedViewValue, function(allValid) {\n if (!allowInvalid) {\n // Note: Don't check this.$valid here, as we could have\n // external validators (e.g. calculated on the server),\n // that just call $setValidity and need the model value\n // to calculate their validity.\n that.$modelValue = allValid ? modelValue : undefined;\n writeToModelIfNeeded();\n }\n });\n\n function writeToModelIfNeeded() {\n if (that.$modelValue !== prevModelValue) {\n that.$$writeModelToScope();\n }\n }\n },\n\n $$writeModelToScope() {\n this.$$ngModelSet(this.$$scope, this.$modelValue);\n forEach(this.$viewChangeListeners, function(listener) {\n try {\n listener();\n } catch (e) {\n // eslint-disable-next-line no-invalid-this\n this.$$exceptionHandler(e);\n }\n }, this);\n },\n\n /**\n * @ngdoc method\n * @name ngModel.NgModelController#$setViewValue\n *\n * @description\n * Update the view value.\n *\n * This method should be called when a control wants to change the view value; typically,\n * this is done from within a DOM event handler. For example, the {@link ng.directive:input input}\n * directive calls it when the value of the input changes and {@link ng.directive:select select}\n * calls it when an option is selected.\n *\n * When `$setViewValue` is called, the new `value` will be staged for committing through the `$parsers`\n * and `$validators` pipelines. If there are no special {@link ngModelOptions} specified then the staged\n * value is sent directly for processing through the `$parsers` pipeline. After this, the `$validators` and\n * `$asyncValidators` are called and the value is applied to `$modelValue`.\n * Finally, the value is set to the **expression** specified in the `ng-model` attribute and\n * all the registered change listeners, in the `$viewChangeListeners` list are called.\n *\n * In case the {@link ng.directive:ngModelOptions ngModelOptions} directive is used with `updateOn`\n * and the `default` trigger is not listed, all those actions will remain pending until one of the\n * `updateOn` events is triggered on the DOM element.\n * All these actions will be debounced if the {@link ng.directive:ngModelOptions ngModelOptions}\n * directive is used with a custom debounce for this particular event.\n * Note that a `$digest` is only triggered once the `updateOn` events are fired, or if `debounce`\n * is specified, once the timer runs out.\n *\n * When used with standard inputs, the view value will always be a string (which is in some cases\n * parsed into another type, such as a `Date` object for `input[date]`.)\n * However, custom controls might also pass objects to this method. In this case, we should make\n * a copy of the object before passing it to `$setViewValue`. This is because `ngModel` does not\n * perform a deep watch of objects, it only looks for a change of identity. If you only change\n * the property of the object then ngModel will not realize that the object has changed and\n * will not invoke the `$parsers` and `$validators` pipelines. For this reason, you should\n * not change properties of the copy once it has been passed to `$setViewValue`.\n * Otherwise you may cause the model value on the scope to change incorrectly.\n *\n *
\n * In any case, the value passed to the method should always reflect the current value\n * of the control. For example, if you are calling `$setViewValue` for an input element,\n * you should pass the input DOM value. Otherwise, the control and the scope model become\n * out of sync. It's also important to note that `$setViewValue` does not call `$render` or change\n * the control's DOM value in any way. If we want to change the control's DOM value\n * programmatically, we should update the `ngModel` scope expression. Its new value will be\n * picked up by the model controller, which will run it through the `$formatters`, `$render` it\n * to update the DOM, and finally call `$validate` on it.\n *
\n *\n * @param {*} value value from the view.\n * @param {string} trigger Event that triggered the update.\n */\n $setViewValue(value, trigger) {\n this.$viewValue = value;\n if (this.$options.getOption('updateOnDefault')) {\n this.$$debounceViewValueCommit(trigger);\n }\n },\n\n $$debounceViewValueCommit(trigger) {\n var debounceDelay = this.$options.getOption('debounce');\n\n if (isNumber(debounceDelay[trigger])) {\n debounceDelay = debounceDelay[trigger];\n } else if (isNumber(debounceDelay['default'])) {\n debounceDelay = debounceDelay['default'];\n }\n\n this.$$timeout.cancel(this.$$pendingDebounce);\n var that = this;\n if (debounceDelay > 0) { // this fails if debounceDelay is an object\n this.$$pendingDebounce = this.$$timeout(function() {\n that.$commitViewValue();\n }, debounceDelay);\n } else if (this.$$scope.$root.$$phase) {\n this.$commitViewValue();\n } else {\n this.$$scope.$apply(function() {\n that.$commitViewValue();\n });\n }\n },\n\n /**\n * @ngdoc method\n *\n * @name ngModel.NgModelController#$overrideModelOptions\n *\n * @description\n *\n * Override the current model options settings programmatically.\n *\n * The previous `ModelOptions` value will not be modified. Instead, a\n * new `ModelOptions` object will inherit from the previous one overriding\n * or inheriting settings that are defined in the given parameter.\n *\n * See {@link ngModelOptions} for information about what options can be specified\n * and how model option inheritance works.\n *\n *
\n * **Note:** this function only affects the options set on the `ngModelController`,\n * and not the options on the {@link ngModelOptions} directive from which they might have been\n * obtained initially.\n *
\n *\n *
\n * **Note:** it is not possible to override the `getterSetter` option.\n *
\n *\n * @param {Object} options a hash of settings to override the previous options\n *\n */\n $overrideModelOptions(options) {\n this.$options = this.$options.createChild(options);\n this.$$setUpdateOnEvents();\n },\n\n /**\n * @ngdoc method\n *\n * @name ngModel.NgModelController#$processModelValue\n\n * @description\n *\n * Runs the model -> view pipeline on the current\n * {@link ngModel.NgModelController#$modelValue $modelValue}.\n *\n * The following actions are performed by this method:\n *\n * - the `$modelValue` is run through the {@link ngModel.NgModelController#$formatters $formatters}\n * and the result is set to the {@link ngModel.NgModelController#$viewValue $viewValue}\n * - the `ng-empty` or `ng-not-empty` class is set on the element\n * - if the `$viewValue` has changed:\n * - {@link ngModel.NgModelController#$render $render} is called on the control\n * - the {@link ngModel.NgModelController#$validators $validators} are run and\n * the validation status is set.\n *\n * This method is called by ngModel internally when the bound scope value changes.\n * Application developers usually do not have to call this function themselves.\n *\n * This function can be used when the `$viewValue` or the rendered DOM value are not correctly\n * formatted and the `$modelValue` must be run through the `$formatters` again.\n *\n * @example\n * Consider a text input with an autocomplete list (for fruit), where the items are\n * objects with a name and an id.\n * A user enters `ap` and then selects `Apricot` from the list.\n * Based on this, the autocomplete widget will call `$setViewValue({name: 'Apricot', id: 443})`,\n * but the rendered value will still be `ap`.\n * The widget can then call `ctrl.$processModelValue()` to run the model -> view\n * pipeline again, which formats the object to the string `Apricot`,\n * then updates the `$viewValue`, and finally renders it in the DOM.\n *\n * \n \n
\n
\n Search Fruit:\n \n
\n
\n Model:
\n
{{selectedFruit | json}}
\n
\n
\n
\n \n angular.module('inputExample', [])\n .controller('inputController', function($scope) {\n $scope.items = [\n {name: 'Apricot', id: 443},\n {name: 'Clementine', id: 972},\n {name: 'Durian', id: 169},\n {name: 'Jackfruit', id: 982},\n {name: 'Strawberry', id: 863}\n ];\n })\n .component('basicAutocomplete', {\n bindings: {\n items: '<',\n onSelect: '&'\n },\n templateUrl: 'autocomplete.html',\n controller: function($element, $scope) {\n var that = this;\n var ngModel;\n\n that.$postLink = function() {\n ngModel = $element.find('input').controller('ngModel');\n\n ngModel.$formatters.push(function(value) {\n return (value && value.name) || value;\n });\n\n ngModel.$parsers.push(function(value) {\n var match = value;\n for (var i = 0; i < that.items.length; i++) {\n if (that.items[i].name === value) {\n match = that.items[i];\n break;\n }\n }\n\n return match;\n });\n };\n\n that.selectItem = function(item) {\n ngModel.$setViewValue(item);\n ngModel.$processModelValue();\n that.onSelect({item: item});\n };\n }\n });\n \n \n
\n \n
    \n
  • \n \n
  • \n
\n
\n
\n *
\n *\n */\n $processModelValue() {\n var viewValue = this.$$format();\n\n if (this.$viewValue !== viewValue) {\n this.$$updateEmptyClasses(viewValue);\n this.$viewValue = this.$$lastCommittedViewValue = viewValue;\n this.$render();\n // It is possible that model and view value have been updated during render\n this.$$runValidators(this.$modelValue, this.$viewValue, noop);\n }\n },\n\n /**\n * This method is called internally to run the $formatters on the $modelValue\n */\n $$format() {\n var formatters = this.$formatters;\n var idx = formatters.length;\n\n var viewValue = this.$modelValue;\n while (idx--) {\n viewValue = formatters[idx](viewValue);\n }\n\n return viewValue;\n },\n\n /**\n * This method is called internally when the bound scope value changes.\n */\n $$setModelValue(modelValue) {\n this.$modelValue = this.$$rawModelValue = modelValue;\n this.$$parserValid = undefined;\n this.$processModelValue();\n },\n\n $$setUpdateOnEvents() {\n if (this.$$updateEvents) {\n this.$$element.off(this.$$updateEvents, this.$$updateEventHandler);\n }\n\n this.$$updateEvents = this.$options.getOption('updateOn');\n if (this.$$updateEvents) {\n this.$$element.on(this.$$updateEvents, this.$$updateEventHandler);\n }\n },\n\n $$updateEventHandler(ev) {\n this.$$debounceViewValueCommit(ev && ev.type);\n }\n};\n\nfunction setupModelWatcher(ctrl) {\n // model -> value\n // Note: we cannot use a normal scope.$watch as we want to detect the following:\n // 1. scope value is 'a'\n // 2. user enters 'b'\n // 3. ng-change kicks in and reverts scope value to 'a'\n // -> scope value did not change since the last digest as\n // ng-change executes in apply phase\n // 4. view should be changed back to 'a'\n ctrl.$$scope.$watch(function ngModelWatch(scope) {\n var modelValue = ctrl.$$ngModelGet(scope);\n\n // if scope model value and ngModel value are out of sync\n // This cannot be moved to the action function, because it would not catch the\n // case where the model is changed in the ngChange function or the model setter\n if (modelValue !== ctrl.$modelValue &&\n // checks for NaN is needed to allow setting the model to NaN when there's an asyncValidator\n // eslint-disable-next-line no-self-compare\n (ctrl.$modelValue === ctrl.$modelValue || modelValue === modelValue)\n ) {\n ctrl.$$setModelValue(modelValue);\n }\n\n return modelValue;\n });\n}\n\n/**\n * @ngdoc method\n * @name ngModel.NgModelController#$setValidity\n *\n * @description\n * Change the validity state, and notify the form.\n *\n * This method can be called within $parsers/$formatters or a custom validation implementation.\n * However, in most cases it should be sufficient to use the `ngModel.$validators` and\n * `ngModel.$asyncValidators` collections which will call `$setValidity` automatically.\n *\n * @param {string} validationErrorKey Name of the validator. The `validationErrorKey` will be assigned\n * to either `$error[validationErrorKey]` or `$pending[validationErrorKey]`\n * (for unfulfilled `$asyncValidators`), so that it is available for data-binding.\n * The `validationErrorKey` should be in camelCase and will get converted into dash-case\n * for class name. Example: `myError` will result in `ng-valid-my-error` and `ng-invalid-my-error`\n * classes and can be bound to as `{{ someForm.someControl.$error.myError }}`.\n * @param {boolean} isValid Whether the current state is valid (true), invalid (false), pending (undefined),\n * or skipped (null). Pending is used for unfulfilled `$asyncValidators`.\n * Skipped is used by AngularJS when validators do not run because of parse errors and\n * when `$asyncValidators` do not run because any of the `$validators` failed.\n */\naddSetValidityMethod({\n clazz: NgModelController,\n set(object, property) {\n object[property] = true;\n },\n unset(object, property) {\n delete object[property];\n }\n});\n\n\n/**\n * @ngdoc directive\n * @name ngModel\n * @restrict A\n * @priority 1\n * @param {expression} ngModel assignable {@link guide/expression Expression} to bind to.\n *\n * @description\n * The `ngModel` directive binds an `input`,`select`, `textarea` (or custom form control) to a\n * property on the scope using {@link ngModel.NgModelController NgModelController},\n * which is created and exposed by this directive.\n *\n * `ngModel` is responsible for:\n *\n * - Binding the view into the model, which other directives such as `input`, `textarea` or `select`\n * require.\n * - Providing validation behavior (i.e. required, number, email, url).\n * - Keeping the state of the control (valid/invalid, dirty/pristine, touched/untouched, validation errors).\n * - Setting related css classes on the element (`ng-valid`, `ng-invalid`, `ng-dirty`, `ng-pristine`, `ng-touched`,\n * `ng-untouched`, `ng-empty`, `ng-not-empty`) including animations.\n * - Registering the control with its parent {@link ng.directive:form form}.\n *\n * Note: `ngModel` will try to bind to the property given by evaluating the expression on the\n * current scope. If the property doesn't already exist on this scope, it will be created\n * implicitly and added to the scope.\n *\n * For best practices on using `ngModel`, see:\n *\n * - [Understanding Scopes](https://github.com/angular/angular.js/wiki/Understanding-Scopes)\n *\n * For basic examples, how to use `ngModel`, see:\n *\n * - {@link ng.directive:input input}\n * - {@link input[text] text}\n * - {@link input[checkbox] checkbox}\n * - {@link input[radio] radio}\n * - {@link input[number] number}\n * - {@link input[email] email}\n * - {@link input[url] url}\n * - {@link input[date] date}\n * - {@link input[datetime-local] datetime-local}\n * - {@link input[time] time}\n * - {@link input[month] month}\n * - {@link input[week] week}\n * - {@link ng.directive:select select}\n * - {@link ng.directive:textarea textarea}\n *\n * ## Complex Models (objects or collections)\n *\n * By default, `ngModel` watches the model by reference, not value. This is important to know when\n * binding inputs to models that are objects (e.g. `Date`) or collections (e.g. arrays). If only properties of the\n * object or collection change, `ngModel` will not be notified and so the input will not be re-rendered.\n *\n * The model must be assigned an entirely new object or collection before a re-rendering will occur.\n *\n * Some directives have options that will cause them to use a custom `$watchCollection` on the model expression\n * - for example, `ngOptions` will do so when a `track by` clause is included in the comprehension expression or\n * if the select is given the `multiple` attribute.\n *\n * The `$watchCollection()` method only does a shallow comparison, meaning that changing properties deeper than the\n * first level of the object (or only changing the properties of an item in the collection if it's an array) will still\n * not trigger a re-rendering of the model.\n *\n * ## CSS classes\n * The following CSS classes are added and removed on the associated input/select/textarea element\n * depending on the validity of the model.\n *\n * - `ng-valid`: the model is valid\n * - `ng-invalid`: the model is invalid\n * - `ng-valid-[key]`: for each valid key added by `$setValidity`\n * - `ng-invalid-[key]`: for each invalid key added by `$setValidity`\n * - `ng-pristine`: the control hasn't been interacted with yet\n * - `ng-dirty`: the control has been interacted with\n * - `ng-touched`: the control has been blurred\n * - `ng-untouched`: the control hasn't been blurred\n * - `ng-pending`: any `$asyncValidators` are unfulfilled\n * - `ng-empty`: the view does not contain a value or the value is deemed \"empty\", as defined\n * by the {@link ngModel.NgModelController#$isEmpty} method\n * - `ng-not-empty`: the view contains a non-empty value\n *\n * Keep in mind that ngAnimate can detect each of these classes when added and removed.\n *\n * @animations\n * Animations within models are triggered when any of the associated CSS classes are added and removed\n * on the input element which is attached to the model. These classes include: `.ng-pristine`, `.ng-dirty`,\n * `.ng-invalid` and `.ng-valid` as well as any other validations that are performed on the model itself.\n * The animations that are triggered within ngModel are similar to how they work in ngClass and\n * animations can be hooked into using CSS transitions, keyframes as well as JS animations.\n *\n * The following example shows a simple way to utilize CSS transitions to style an input element\n * that has been rendered as invalid after it has been validated:\n *\n *
\n * //be sure to include ngAnimate as a module to hook into more\n * //advanced animations\n * .my-input {\n *   transition:0.5s linear all;\n *   background: white;\n * }\n * .my-input.ng-invalid {\n *   background: red;\n *   color:white;\n * }\n * 
\n *\n * @example\n * ### Basic Usage\n * \n \n \n \n

\n Update input to see transitions when valid/invalid.\n Integer is a valid value.\n

\n
\n \n
\n
\n *
\n *\n * @example\n * ### Binding to a getter/setter\n *\n * Sometimes it's helpful to bind `ngModel` to a getter/setter function. A getter/setter is a\n * function that returns a representation of the model when called with zero arguments, and sets\n * the internal state of a model when called with an argument. It's sometimes useful to use this\n * for models that have an internal representation that's different from what the model exposes\n * to the view.\n *\n *
\n * **Best Practice:** It's best to keep getters fast because AngularJS is likely to call them more\n * frequently than other parts of your code.\n *
\n *\n * You use this behavior by adding `ng-model-options=\"{ getterSetter: true }\"` to an element that\n * has `ng-model` attached to it. You can also add `ng-model-options=\"{ getterSetter: true }\"` to\n * a `
`, which will enable this behavior for all ``s within it. See\n * {@link ng.directive:ngModelOptions `ngModelOptions`} for more.\n *\n * The following example shows how to use `ngModel` with a getter/setter:\n *\n * @example\n * \n \n
\n \n \n \n
user.name = 
\n
\n
\n \n angular.module('getterSetterExample', [])\n .controller('ExampleController', ['$scope', function($scope) {\n var _name = 'Brian';\n $scope.user = {\n name: function(newName) {\n // Note that newName can be undefined for two reasons:\n // 1. Because it is called as a getter and thus called with no arguments\n // 2. Because the property should actually be set to undefined. This happens e.g. if the\n // input is invalid\n return arguments.length ? (_name = newName) : _name;\n }\n };\n }]);\n \n *
\n */\nvar ngModelDirective = ['$rootScope', function($rootScope) {\n return {\n restrict: 'A',\n require: ['ngModel', '^?form', '^?ngModelOptions'],\n controller: NgModelController,\n // Prelink needs to run before any input directive\n // so that we can set the NgModelOptions in NgModelController\n // before anyone else uses it.\n priority: 1,\n compile: function ngModelCompile(element) {\n // Setup initial state of the control\n element.addClass(PRISTINE_CLASS).addClass(UNTOUCHED_CLASS).addClass(VALID_CLASS);\n\n return {\n pre: function ngModelPreLink(scope, element, attr, ctrls) {\n var modelCtrl = ctrls[0];\n var formCtrl = ctrls[1] || modelCtrl.$$parentForm;\n var optionsCtrl = ctrls[2];\n\n if (optionsCtrl) {\n modelCtrl.$options = optionsCtrl.$options;\n }\n\n modelCtrl.$$initGetterSetters();\n\n // notify others, especially parent forms\n formCtrl.$addControl(modelCtrl);\n\n attr.$observe('name', function(newValue) {\n if (modelCtrl.$name !== newValue) {\n modelCtrl.$$parentForm.$$renameControl(modelCtrl, newValue);\n }\n });\n\n scope.$on('$destroy', function() {\n modelCtrl.$$parentForm.$removeControl(modelCtrl);\n });\n },\n post: function ngModelPostLink(scope, element, attr, ctrls) {\n var modelCtrl = ctrls[0];\n modelCtrl.$$setUpdateOnEvents();\n\n function setTouched() {\n modelCtrl.$setTouched();\n }\n\n element.on('blur', function() {\n if (modelCtrl.$touched) return;\n\n if ($rootScope.$$phase) {\n scope.$evalAsync(setTouched);\n } else {\n scope.$apply(setTouched);\n }\n });\n }\n };\n }\n };\n}];\n'use strict';\n\n/* exported defaultModelOptions */\nvar defaultModelOptions;\nvar DEFAULT_REGEXP = /(\\s+|^)default(\\s+|$)/;\n\n/**\n * @ngdoc type\n * @name ModelOptions\n * @description\n * A container for the options set by the {@link ngModelOptions} directive\n */\nfunction ModelOptions(options) {\n this.$$options = options;\n}\n\nModelOptions.prototype = {\n\n /**\n * @ngdoc method\n * @name ModelOptions#getOption\n * @param {string} name the name of the option to retrieve\n * @returns {*} the value of the option\n * @description\n * Returns the value of the given option\n */\n getOption(name) {\n return this.$$options[name];\n },\n\n /**\n * @ngdoc method\n * @name ModelOptions#createChild\n * @param {Object} options a hash of options for the new child that will override the parent's options\n * @return {ModelOptions} a new `ModelOptions` object initialized with the given options.\n */\n createChild(options) {\n var inheritAll = false;\n\n // make a shallow copy\n options = extend({}, options);\n\n // Inherit options from the parent if specified by the value `\"$inherit\"`\n forEach(options, /* @this */ function(option, key) {\n if (option === '$inherit') {\n if (key === '*') {\n inheritAll = true;\n } else {\n options[key] = this.$$options[key];\n // `updateOn` is special so we must also inherit the `updateOnDefault` option\n if (key === 'updateOn') {\n options.updateOnDefault = this.$$options.updateOnDefault;\n }\n }\n } else {\n if (key === 'updateOn') {\n // If the `updateOn` property contains the `default` event then we have to remove\n // it from the event list and set the `updateOnDefault` flag.\n options.updateOnDefault = false;\n options[key] = trim(option.replace(DEFAULT_REGEXP, function() {\n options.updateOnDefault = true;\n return ' ';\n }));\n }\n }\n }, this);\n\n if (inheritAll) {\n // We have a property of the form: `\"*\": \"$inherit\"`\n delete options['*'];\n defaults(options, this.$$options);\n }\n\n // Finally add in any missing defaults\n defaults(options, defaultModelOptions.$$options);\n\n return new ModelOptions(options);\n }\n};\n\n\ndefaultModelOptions = new ModelOptions({\n updateOn: '',\n updateOnDefault: true,\n debounce: 0,\n getterSetter: false,\n allowInvalid: false,\n timezone: null\n});\n\n\n/**\n * @ngdoc directive\n * @name ngModelOptions\n * @restrict A\n * @priority 10\n *\n * @description\n * This directive allows you to modify the behaviour of {@link ngModel} directives within your\n * application. You can specify an `ngModelOptions` directive on any element. All {@link ngModel}\n * directives will use the options of their nearest `ngModelOptions` ancestor.\n *\n * The `ngModelOptions` settings are found by evaluating the value of the attribute directive as\n * an AngularJS expression. This expression should evaluate to an object, whose properties contain\n * the settings. For example: `
\n *
\n * \n *
\n *
\n * ```\n *\n * the `input` element will have the following settings\n *\n * ```js\n * { allowInvalid: true, updateOn: 'default', debounce: 0 }\n * ```\n *\n * Notice that the `debounce` setting was not inherited and used the default value instead.\n *\n * You can specify that all undefined settings are automatically inherited from an ancestor by\n * including a property with key of `\"*\"` and value of `\"$inherit\"`.\n *\n * For example given the following fragment of HTML\n *\n *\n * ```html\n *
\n *
\n * \n *
\n *
\n * ```\n *\n * the `input` element will have the following settings\n *\n * ```js\n * { allowInvalid: true, updateOn: 'default', debounce: 200 }\n * ```\n *\n * Notice that the `debounce` setting now inherits the value from the outer `
` element.\n *\n * If you are creating a reusable component then you should be careful when using `\"*\": \"$inherit\"`\n * since you may inadvertently inherit a setting in the future that changes the behavior of your component.\n *\n *\n * ## Triggering and debouncing model updates\n *\n * The `updateOn` and `debounce` properties allow you to specify a custom list of events that will\n * trigger a model update and/or a debouncing delay so that the actual update only takes place when\n * a timer expires; this timer will be reset after another change takes place.\n *\n * Given the nature of `ngModelOptions`, the value displayed inside input fields in the view might\n * be different from the value in the actual model. This means that if you update the model you\n * should also invoke {@link ngModel.NgModelController#$rollbackViewValue} on the relevant input field in\n * order to make sure it is synchronized with the model and that any debounced action is canceled.\n *\n * The easiest way to reference the control's {@link ngModel.NgModelController#$rollbackViewValue}\n * method is by making sure the input is placed inside a form that has a `name` attribute. This is\n * important because `form` controllers are published to the related scope under the name in their\n * `name` attribute.\n *\n * Any pending changes will take place immediately when an enclosing form is submitted via the\n * `submit` event. Note that `ngClick` events will occur before the model is updated. Use `ngSubmit`\n * to have access to the updated model.\n *\n * ### Overriding immediate updates\n *\n * The following example shows how to override immediate updates. Changes on the inputs within the\n * form will update the model only when the control loses focus (blur event). If `escape` key is\n * pressed while the input field is focused, the value is reset to the value in the current model.\n *\n * \n * \n *
\n *
\n *
\n *
\n *
\n *
user.name = 
\n *
\n *
\n * \n * angular.module('optionsExample', [])\n * .controller('ExampleController', ['$scope', function($scope) {\n * $scope.user = { name: 'say', data: '' };\n *\n * $scope.cancel = function(e) {\n * if (e.keyCode === 27) {\n * $scope.userForm.userName.$rollbackViewValue();\n * }\n * };\n * }]);\n * \n * \n * var model = element(by.binding('user.name'));\n * var input = element(by.model('user.name'));\n * var other = element(by.model('user.data'));\n *\n * it('should allow custom events', function() {\n * input.sendKeys(' hello');\n * input.click();\n * expect(model.getText()).toEqual('say');\n * other.click();\n * expect(model.getText()).toEqual('say hello');\n * });\n *\n * it('should $rollbackViewValue when model changes', function() {\n * input.sendKeys(' hello');\n * expect(input.getAttribute('value')).toEqual('say hello');\n * input.sendKeys(protractor.Key.ESCAPE);\n * expect(input.getAttribute('value')).toEqual('say');\n * other.click();\n * expect(model.getText()).toEqual('say');\n * });\n * \n *
\n *\n * ### Debouncing updates\n *\n * The next example shows how to debounce model changes. Model will be updated only 1 sec after last change.\n * If the `Clear` button is pressed, any debounced action is canceled and the value becomes empty.\n *\n * \n * \n *
\n *
\n * Name:\n * \n *
\n *
\n *
user.name = 
\n *
\n *
\n * \n * angular.module('optionsExample', [])\n * .controller('ExampleController', ['$scope', function($scope) {\n * $scope.user = { name: 'say' };\n * }]);\n * \n *
\n *\n *\n * ## Model updates and validation\n *\n * The default behaviour in `ngModel` is that the model value is set to `undefined` when the\n * validation determines that the value is invalid. By setting the `allowInvalid` property to true,\n * the model will still be updated even if the value is invalid.\n *\n *\n * ## Connecting to the scope\n *\n * By setting the `getterSetter` property to true you are telling ngModel that the `ngModel` expression\n * on the scope refers to a \"getter/setter\" function rather than the value itself.\n *\n * The following example shows how to bind to getter/setters:\n *\n * \n * \n *
\n *
\n * \n *
\n *
user.name = 
\n *
\n *
\n * \n * angular.module('getterSetterExample', [])\n * .controller('ExampleController', ['$scope', function($scope) {\n * var _name = 'Brian';\n * $scope.user = {\n * name: function(newName) {\n * return angular.isDefined(newName) ? (_name = newName) : _name;\n * }\n * };\n * }]);\n * \n *
\n *\n *\n * ## Specifying timezones\n *\n * You can specify the timezone that date/time input directives expect by providing its name in the\n * `timezone` property.\n *\n *\n * ## Programmatically changing options\n *\n * The `ngModelOptions` expression is only evaluated once when the directive is linked; it is not\n * watched for changes. However, it is possible to override the options on a single\n * {@link ngModel.NgModelController} instance with\n * {@link ngModel.NgModelController#$overrideModelOptions `NgModelController#$overrideModelOptions()`}.\n *\n *\n * @param {Object} ngModelOptions options to apply to {@link ngModel} directives on this element and\n * and its descendents. Valid keys are:\n * - `updateOn`: string specifying which event should the input be bound to. You can set several\n * events using an space delimited list. There is a special event called `default` that\n * matches the default events belonging to the control. These are the events that are bound to\n * the control, and when fired, update the `$viewValue` via `$setViewValue`.\n *\n * `ngModelOptions` considers every event that is not listed in `updateOn` a \"default\" event,\n * since different control types use different default events.\n *\n * See also the section {@link ngModelOptions#triggering-and-debouncing-model-updates\n * Triggering and debouncing model updates}.\n *\n * - `debounce`: integer value which contains the debounce model update value in milliseconds. A\n * value of 0 triggers an immediate update. If an object is supplied instead, you can specify a\n * custom value for each event. For example:\n * ```\n * ng-model-options=\"{\n * updateOn: 'default blur click',\n * debounce: { 'default': 500, 'blur': 0 }\n * }\"\n * ```\n *\n * \"default\" also applies to all events that are listed in `updateOn` but are not\n * listed in `debounce`, i.e. \"click\" would also be debounced by 500 milliseconds.\n *\n * - `allowInvalid`: boolean value which indicates that the model can be set with values that did\n * not validate correctly instead of the default behavior of setting the model to undefined.\n * - `getterSetter`: boolean value which determines whether or not to treat functions bound to\n * `ngModel` as getters/setters.\n * - `timezone`: Defines the timezone to be used to read/write the `Date` instance in the model for\n * ``, ``, ... . It understands UTC/GMT and the\n * continental US time zone abbreviations, but for general use, use a time zone offset, for\n * example, `'+0430'` (4 hours, 30 minutes east of the Greenwich meridian)\n * If not specified, the timezone of the browser will be used.\n * Note that changing the timezone will have no effect on the current date, and is only applied after\n * the next input / model change.\n *\n */\nvar ngModelOptionsDirective = function() {\n NgModelOptionsController.$inject = ['$attrs', '$scope'];\n function NgModelOptionsController($attrs, $scope) {\n this.$$attrs = $attrs;\n this.$$scope = $scope;\n }\n NgModelOptionsController.prototype = {\n $onInit() {\n var parentOptions = this.parentCtrl ? this.parentCtrl.$options : defaultModelOptions;\n var modelOptionsDefinition = this.$$scope.$eval(this.$$attrs.ngModelOptions);\n\n this.$options = parentOptions.createChild(modelOptionsDefinition);\n }\n };\n\n return {\n restrict: 'A',\n // ngModelOptions needs to run before ngModel and input directives\n priority: 10,\n require: {parentCtrl: '?^^ngModelOptions'},\n bindToController: true,\n controller: NgModelOptionsController\n };\n};\n\n\n// shallow copy over values from `src` that are not already specified on `dst`\nfunction defaults(dst, src) {\n forEach(src, function(value, key) {\n if (!isDefined(dst[key])) {\n dst[key] = value;\n }\n });\n}\n'use strict';\n\n/**\n * @ngdoc directive\n * @name ngNonBindable\n * @restrict AC\n * @priority 1000\n * @element ANY\n *\n * @description\n * The `ngNonBindable` directive tells AngularJS not to compile or bind the contents of the current\n * DOM element, including directives on the element itself that have a lower priority than\n * `ngNonBindable`. This is useful if the element contains what appears to be AngularJS directives\n * and bindings but which should be ignored by AngularJS. This could be the case if you have a site\n * that displays snippets of code, for instance.\n *\n * @example\n * In this example there are two locations where a simple interpolation binding (`{{}}`) is present,\n * but the one wrapped in `ngNonBindable` is left alone.\n *\n \n \n
Normal: {{1 + 2}}
\n
Ignored: {{1 + 2}}
\n
\n \n it('should check ng-non-bindable', function() {\n expect(element(by.binding('1 + 2')).getText()).toContain('3');\n expect(element.all(by.css('div')).last().getText()).toMatch(/1 \\+ 2/);\n });\n \n
\n */\nvar ngNonBindableDirective = ngDirective({ terminal: true, priority: 1000 });\n'use strict';\n\n/* exported ngOptionsDirective */\n\n/* global jqLiteRemove */\n\nvar ngOptionsMinErr = minErr('ngOptions');\n\n/**\n * @ngdoc directive\n * @name ngOptions\n * @restrict A\n *\n * @description\n *\n * The `ngOptions` attribute can be used to dynamically generate a list of ``\n * DOM element.\n * * `disable`: The result of this expression will be used to disable the rendered `\n * \n *
\n *\n *
\n *
\n *
\n * singleSelect = {{data.singleSelect}}\n *\n *
\n *
\n *
\n * multipleSelect = {{data.multipleSelect}}
\n * \n *
\n * \n * \n * angular.module('staticSelect', [])\n * .controller('ExampleController', ['$scope', function($scope) {\n * $scope.data = {\n * singleSelect: null,\n * multipleSelect: [],\n * option1: 'option-1'\n * };\n *\n * $scope.forceUnknownOption = function() {\n * $scope.data.singleSelect = 'nonsense';\n * };\n * }]);\n * \n *\n *\n * @example\n * ### Using `ngRepeat` to generate `select` options\n * \n * \n *
\n *
\n * \n * \n *
\n *
\n * model = {{data.model}}
\n *
\n *
\n * \n * angular.module('ngrepeatSelect', [])\n * .controller('ExampleController', ['$scope', function($scope) {\n * $scope.data = {\n * model: null,\n * availableOptions: [\n * {id: '1', name: 'Option A'},\n * {id: '2', name: 'Option B'},\n * {id: '3', name: 'Option C'}\n * ]\n * };\n * }]);\n * \n *
\n *\n * @example\n * ### Using `ngValue` to bind the model to an array of objects\n * \n * \n *
\n *
\n * \n * \n *
\n *
\n *
model = {{data.model | json}}

\n *
\n *
\n * \n * angular.module('ngvalueSelect', [])\n * .controller('ExampleController', ['$scope', function($scope) {\n * $scope.data = {\n * model: null,\n * availableOptions: [\n {value: 'myString', name: 'string'},\n {value: 1, name: 'integer'},\n {value: true, name: 'boolean'},\n {value: null, name: 'null'},\n {value: {prop: 'value'}, name: 'object'},\n {value: ['a'], name: 'array'}\n * ]\n * };\n * }]);\n * \n *
\n *\n * @example\n * ### Using `select` with `ngOptions` and setting a default value\n * See the {@link ngOptions ngOptions documentation} for more `ngOptions` usage examples.\n *\n * \n * \n *
\n *
\n * \n * \n *
\n *
\n * option = {{data.selectedOption}}
\n *
\n *
\n * \n * angular.module('defaultValueSelect', [])\n * .controller('ExampleController', ['$scope', function($scope) {\n * $scope.data = {\n * availableOptions: [\n * {id: '1', name: 'Option A'},\n * {id: '2', name: 'Option B'},\n * {id: '3', name: 'Option C'}\n * ],\n * selectedOption: {id: '3', name: 'Option C'} //This sets the default value of the select in the ui\n * };\n * }]);\n * \n *
\n *\n * @example\n * ### Binding `select` to a non-string value via `ngModel` parsing / formatting\n *\n * \n * \n * \n * {{ model }}\n * \n * \n * angular.module('nonStringSelect', [])\n * .run(function($rootScope) {\n * $rootScope.model = { id: 2 };\n * })\n * .directive('convertToNumber', 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 * \n * it('should initialize to model', function() {\n * expect(element(by.model('model.id')).$('option:checked').getText()).toEqual('Two');\n * });\n * \n * \n *\n */\nvar selectDirective = function() {\n\n return {\n restrict: 'E',\n require: ['select', '?ngModel'],\n controller: SelectController,\n priority: 1,\n link: {\n pre: selectPreLink,\n post: selectPostLink\n }\n };\n\n function selectPreLink(scope, element, attr, ctrls) {\n\n var selectCtrl = ctrls[0];\n var ngModelCtrl = ctrls[1];\n\n // if ngModel is not defined, we don't need to do anything but set the registerOption\n // function to noop, so options don't get added internally\n if (!ngModelCtrl) {\n selectCtrl.registerOption = noop;\n return;\n }\n\n\n selectCtrl.ngModelCtrl = ngModelCtrl;\n\n // When the selected item(s) changes we delegate getting the value of the select control\n // to the `readValue` method, which can be changed if the select can have multiple\n // selected values or if the options are being generated by `ngOptions`\n element.on('change', function() {\n selectCtrl.removeUnknownOption();\n scope.$apply(function() {\n ngModelCtrl.$setViewValue(selectCtrl.readValue());\n });\n });\n\n // If the select allows multiple values then we need to modify how we read and write\n // values from and to the control; also what it means for the value to be empty and\n // we have to add an extra watch since ngModel doesn't work well with arrays - it\n // doesn't trigger rendering if only an item in the array changes.\n if (attr.multiple) {\n selectCtrl.multiple = true;\n\n // Read value now needs to check each option to see if it is selected\n selectCtrl.readValue = function readMultipleValue() {\n var array = [];\n forEach(element.find('option'), function(option) {\n if (option.selected && !option.disabled) {\n var val = option.value;\n array.push(val in selectCtrl.selectValueMap ? selectCtrl.selectValueMap[val] : val);\n }\n });\n return array;\n };\n\n // Write value now needs to set the selected property of each matching option\n selectCtrl.writeValue = function writeMultipleValue(value) {\n forEach(element.find('option'), function(option) {\n var shouldBeSelected = !!value && (includes(value, option.value) ||\n includes(value, selectCtrl.selectValueMap[option.value]));\n var currentlySelected = option.selected;\n\n // Support: Edge 12-15+\n // In Edge adding options to the selection via shift+click/UP/DOWN\n // will de-select already selected options if \"selected\" on those options was set\n // more than once (i.e. when the options were already selected)\n // So we only modify the selected property if necessary.\n // Note: this behavior cannot be replicated via unit tests because it only shows in the\n // actual user interface.\n if (shouldBeSelected !== currentlySelected) {\n setOptionSelectedStatus(jqLite(option), shouldBeSelected);\n }\n\n });\n };\n\n // we have to do it on each watch since ngModel watches reference, but\n // we need to work of an array, so we need to see if anything was inserted/removed\n var lastView;\n\n var lastViewRef = NaN;\n scope.$watch(function selectMultipleWatch() {\n if (lastViewRef === ngModelCtrl.$viewValue && !equals(lastView, ngModelCtrl.$viewValue)) {\n lastView = shallowCopy(ngModelCtrl.$viewValue);\n ngModelCtrl.$render();\n }\n lastViewRef = ngModelCtrl.$viewValue;\n });\n\n // If we are a multiple select then value is now a collection\n // so the meaning of $isEmpty changes\n ngModelCtrl.$isEmpty = function(value) {\n return !value || value.length === 0;\n };\n }\n }\n\n function selectPostLink(scope, element, attrs, ctrls) {\n // if ngModel is not defined, we don't need to do anything\n var ngModelCtrl = ctrls[1];\n if (!ngModelCtrl) return;\n\n var selectCtrl = ctrls[0];\n\n // We delegate rendering to the `writeValue` method, which can be changed\n // if the select can have multiple selected values or if the options are being\n // generated by `ngOptions`.\n // This must be done in the postLink fn to prevent $render to be called before\n // all nodes have been linked correctly.\n ngModelCtrl.$render = function() {\n selectCtrl.writeValue(ngModelCtrl.$viewValue);\n };\n }\n};\n\n\n// The option directive is purely designed to communicate the existence (or lack of)\n// of dynamically created (and destroyed) option elements to their containing select\n// directive via its controller.\nvar optionDirective = ['$interpolate', function($interpolate) {\n return {\n restrict: 'E',\n priority: 100,\n compile(element, attr) {\n var interpolateValueFn;\n var interpolateTextFn;\n\n if (isDefined(attr.ngValue)) {\n // Will be handled by registerOption\n } else if (isDefined(attr.value)) {\n // If the value attribute is defined, check if it contains an interpolation\n interpolateValueFn = $interpolate(attr.value, true);\n } else {\n // If the value attribute is not defined then we fall back to the\n // text content of the option element, which may be interpolated\n interpolateTextFn = $interpolate(element.text(), true);\n if (!interpolateTextFn) {\n attr.$set('value', element.text());\n }\n }\n\n return function(scope, element, attr) {\n // This is an optimization over using ^^ since we don't want to have to search\n // all the way to the root of the DOM for every single option element\n var selectCtrlName = '$selectController'; // in case we are in optgroup\n\n var parent = element.parent();\n\n var selectCtrl = parent.data(selectCtrlName) ||\n parent.parent().data(selectCtrlName);\n\n if (selectCtrl) {\n selectCtrl.registerOption(scope, element, attr, interpolateValueFn, interpolateTextFn);\n }\n };\n }\n };\n}];\n'use strict';\n/**\n * @ngdoc directive\n * @name ngRequired\n * @restrict A\n *\n * @param {expression} ngRequired AngularJS expression. If it evaluates to `true`, it sets the\n * `required` attribute to the element and adds the `required`\n * {@link ngModel.NgModelController#$validators `validator`}.\n *\n * @description\n *\n * ngRequired adds the required {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}.\n * It is most often used for {@link input `input`} and {@link select `select`} controls, but can also be\n * applied to custom controls.\n *\n * The directive sets the `required` attribute on the element if the AngularJS expression inside\n * `ngRequired` evaluates to true. A special directive for setting `required` is necessary because we\n * cannot use interpolation inside `required`. See the {@link guide/interpolation interpolation guide}\n * for more info.\n *\n * The validator will set the `required` error key to true if the `required` attribute is set and\n * calling {@link ngModel.NgModelController#$isEmpty `NgModelController.$isEmpty`} with the\n * {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`} returns `true`. For example, the\n * `$isEmpty()` implementation for `input[text]` checks the length of the `$viewValue`. When developing\n * custom controls, `$isEmpty()` can be overwritten to account for a $viewValue that is not string-based.\n *\n * @example\n * \n * \n * \n *
\n *
\n * \n * \n *
\n * \n *
\n *
\n * required error set? = {{form.input.$error.required}}
\n * model = {{model}}\n *
\n *
\n *
\n * \n var required = element(by.binding('form.input.$error.required'));\n var model = element(by.binding('model'));\n var input = element(by.id('input'));\n\n it('should set the required error', function() {\n expect(required.getText()).toContain('true');\n\n input.sendKeys('123');\n expect(required.getText()).not.toContain('true');\n expect(model.getText()).toContain('123');\n });\n * \n *
\n */\nvar requiredDirective = function() {\n return {\n restrict: 'A',\n require: '?ngModel',\n link(scope, elm, attr, ctrl) {\n if (!ctrl) return;\n attr.required = true; // force truthy in case we are on non input element\n\n ctrl.$validators.required = function(modelValue, viewValue) {\n return !attr.required || !ctrl.$isEmpty(viewValue);\n };\n\n attr.$observe('required', function() {\n ctrl.$validate();\n });\n }\n };\n};\n\n/**\n * @ngdoc directive\n * @name ngPattern\n * @restrict A\n *\n * @param {expression|RegExp} ngPattern AngularJS expression that must evaluate to a `RegExp` or a `String`\n * parsable into a `RegExp`, or a `RegExp` literal. See above for\n * more details.\n *\n * @description\n *\n * ngPattern adds the pattern {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}.\n * It is most often used for text-based {@link input `input`} controls, but can also be applied to custom text-based controls.\n *\n * The validator sets the `pattern` error key if the {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`}\n * does not match a RegExp which is obtained from the `ngPattern` attribute value:\n * - the value is an AngularJS expression:\n * - If the expression evaluates to a RegExp object, then this is used directly.\n * - If the expression evaluates to a string, then it will be converted to a RegExp after wrapping it\n * in `^` and `$` characters. For instance, `\"abc\"` will be converted to `new RegExp('^abc$')`.\n * - If the value is a RegExp literal, e.g. `ngPattern=\"/^\\d+$/\"`, it is used directly.\n *\n *
\n * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to\n * start at the index of the last search's match, thus not taking the whole input value into\n * account.\n *
\n *\n *
\n * **Note:** This directive is also added when the plain `pattern` attribute is used, with two\n * differences:\n *
    \n *
  1. \n * `ngPattern` does not set the `pattern` attribute and therefore HTML5 constraint validation is\n * not available.\n *
  2. \n *
  3. \n * The `ngPattern` attribute must be an expression, while the `pattern` value must be\n * interpolated.\n *
  4. \n *
\n *
\n *\n * @example\n * \n * \n * \n *
\n *
\n * \n * \n *
\n * \n *
\n *
\n * input valid? = {{form.input.$valid}}
\n * model = {{model}}\n *
\n *
\n *
\n * \n var model = element(by.binding('model'));\n var input = element(by.id('input'));\n\n it('should validate the input with the default pattern', function() {\n input.sendKeys('aaa');\n expect(model.getText()).not.toContain('aaa');\n\n input.clear().then(function() {\n input.sendKeys('123');\n expect(model.getText()).toContain('123');\n });\n });\n * \n *
\n */\nvar patternDirective = function() {\n return {\n restrict: 'A',\n require: '?ngModel',\n link(scope, elm, attr, ctrl) {\n if (!ctrl) return;\n\n var regexp;\n var patternExp = attr.ngPattern || attr.pattern;\n attr.$observe('pattern', function(regex) {\n if (isString(regex) && regex.length > 0) {\n regex = new RegExp('^' + regex + '$');\n }\n\n if (regex && !regex.test) {\n throw minErr('ngPattern')('noregexp',\n 'Expected {0} to be a RegExp but was {1}. Element: {2}', patternExp,\n regex, startingTag(elm));\n }\n\n regexp = regex || undefined;\n ctrl.$validate();\n });\n\n ctrl.$validators.pattern = function(modelValue, viewValue) {\n // HTML5 pattern constraint validates the input value, so we validate the viewValue\n return ctrl.$isEmpty(viewValue) || isUndefined(regexp) || regexp.test(viewValue);\n };\n }\n };\n};\n\n/**\n * @ngdoc directive\n * @name ngMaxlength\n * @restrict A\n *\n * @param {expression} ngMaxlength AngularJS expression that must evaluate to a `Number` or `String`\n * parsable into a `Number`. Used as value for the `maxlength`\n * {@link ngModel.NgModelController#$validators validator}.\n *\n * @description\n *\n * ngMaxlength adds the maxlength {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}.\n * It is most often used for text-based {@link input `input`} controls, but can also be applied to custom text-based controls.\n *\n * The validator sets the `maxlength` error key if the {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`}\n * is longer than the integer obtained by evaluating the AngularJS expression given in the\n * `ngMaxlength` attribute value.\n *\n *
\n * **Note:** This directive is also added when the plain `maxlength` attribute is used, with two\n * differences:\n *
    \n *
  1. \n * `ngMaxlength` does not set the `maxlength` attribute and therefore HTML5 constraint\n * validation is not available.\n *
  2. \n *
  3. \n * The `ngMaxlength` attribute must be an expression, while the `maxlength` value must be\n * interpolated.\n *
  4. \n *
\n *
\n *\n * @example\n * \n * \n * \n *
\n *
\n * \n * \n *
\n * \n *
\n *
\n * input valid? = {{form.input.$valid}}
\n * model = {{model}}\n *
\n *
\n *
\n * \n var model = element(by.binding('model'));\n var input = element(by.id('input'));\n\n it('should validate the input with the default maxlength', function() {\n input.sendKeys('abcdef');\n expect(model.getText()).not.toContain('abcdef');\n\n input.clear().then(function() {\n input.sendKeys('abcde');\n expect(model.getText()).toContain('abcde');\n });\n });\n * \n *
\n */\nvar maxlengthDirective = function() {\n return {\n restrict: 'A',\n require: '?ngModel',\n link(scope, elm, attr, ctrl) {\n if (!ctrl) return;\n\n var maxlength = -1;\n attr.$observe('maxlength', function(value) {\n var intVal = toInt(value);\n maxlength = isNumberNaN(intVal) ? -1 : intVal;\n ctrl.$validate();\n });\n ctrl.$validators.maxlength = function(modelValue, viewValue) {\n return (maxlength < 0) || ctrl.$isEmpty(viewValue) || (viewValue.length <= maxlength);\n };\n }\n };\n};\n\n/**\n * @ngdoc directive\n * @name ngMinlength\n * @restrict A\n *\n * @param {expression} ngMinlength AngularJS expression that must evaluate to a `Number` or `String`\n * parsable into a `Number`. Used as value for the `minlength`\n * {@link ngModel.NgModelController#$validators validator}.\n *\n * @description\n *\n * ngMinlength adds the minlength {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}.\n * It is most often used for text-based {@link input `input`} controls, but can also be applied to custom text-based controls.\n *\n * The validator sets the `minlength` error key if the {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`}\n * is shorter than the integer obtained by evaluating the AngularJS expression given in the\n * `ngMinlength` attribute value.\n *\n *
\n * **Note:** This directive is also added when the plain `minlength` attribute is used, with two\n * differences:\n *
    \n *
  1. \n * `ngMinlength` does not set the `minlength` attribute and therefore HTML5 constraint\n * validation is not available.\n *
  2. \n *
  3. \n * The `ngMinlength` value must be an expression, while the `minlength` value must be\n * interpolated.\n *
  4. \n *
\n *
\n *\n * @example\n * \n * \n * \n *
\n *
\n * \n * \n *
\n * \n *
\n *
\n * input valid? = {{form.input.$valid}}
\n * model = {{model}}\n *
\n *
\n *
\n * \n var model = element(by.binding('model'));\n var input = element(by.id('input'));\n\n it('should validate the input with the default minlength', function() {\n input.sendKeys('ab');\n expect(model.getText()).not.toContain('ab');\n\n input.sendKeys('abc');\n expect(model.getText()).toContain('abc');\n });\n * \n *
\n */\nvar minlengthDirective = function() {\n return {\n restrict: 'A',\n require: '?ngModel',\n link(scope, elm, attr, ctrl) {\n if (!ctrl) return;\n\n var minlength = 0;\n attr.$observe('minlength', function(value) {\n minlength = toInt(value) || 0;\n ctrl.$validate();\n });\n ctrl.$validators.minlength = function(modelValue, viewValue) {\n return ctrl.$isEmpty(viewValue) || viewValue.length >= minlength;\n };\n }\n };\n};\nif (window.angular.bootstrap) {\n // AngularJS is already loaded, so we can return here...\n if (window.console) {\n console.log('WARNING: Tried to load AngularJS more than once.');\n }\n return;\n}\n\n// try to bind to jquery now so that one can write jqLite(fn)\n// but we will rebind on bootstrap again.\nbindJQuery();\n'use strict';\n\npublishExternalAPI(angular);\n'use strict';\nangular.module(\"ngLocale\", [], [\"$provide\", function($provide) {\nvar PLURAL_CATEGORY = {ZERO: \"zero\", ONE: \"one\", TWO: \"two\", FEW: \"few\", MANY: \"many\", OTHER: \"other\"};\nfunction getDecimals(n) {\n n = n + '';\n var i = n.indexOf('.');\n return (i == -1) ? 0 : n.length - i - 1;\n}\n\nfunction getVF(n, opt_precision) {\n var v = opt_precision;\n\n if (undefined === v) {\n v = Math.min(getDecimals(n), 3);\n }\n\n var base = Math.pow(10, v);\n var f = ((n * base) | 0) % base;\n return {v: v, f: f};\n}\n\n$provide.value(\"$locale\", {\n \"DATETIME_FORMATS\": {\n \"AMPMS\": [\n \"AM\",\n \"PM\"\n ],\n \"DAY\": [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ],\n \"ERANAMES\": [\n \"Before Christ\",\n \"Anno Domini\"\n ],\n \"ERAS\": [\n \"BC\",\n \"AD\"\n ],\n \"FIRSTDAYOFWEEK\": 6,\n \"MONTH\": [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ],\n \"SHORTDAY\": [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n \"SHORTMONTH\": [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n \"STANDALONEMONTH\": [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ],\n \"WEEKENDRANGE\": [\n 5,\n 6\n ],\n \"fullDate\": \"EEEE, MMMM d, y\",\n \"longDate\": \"MMMM d, y\",\n \"medium\": \"MMM d, y h:mm:ss a\",\n \"mediumDate\": \"MMM d, y\",\n \"mediumTime\": \"h:mm:ss a\",\n \"short\": \"M/d/yy h:mm a\",\n \"shortDate\": \"M/d/yy\",\n \"shortTime\": \"h:mm a\"\n },\n \"NUMBER_FORMATS\": {\n \"CURRENCY_SYM\": \"$\",\n \"DECIMAL_SEP\": \".\",\n \"GROUP_SEP\": \",\",\n \"PATTERNS\": [\n {\n \"gSize\": 3,\n \"lgSize\": 3,\n \"maxFrac\": 3,\n \"minFrac\": 0,\n \"minInt\": 1,\n \"negPre\": \"-\",\n \"negSuf\": \"\",\n \"posPre\": \"\",\n \"posSuf\": \"\"\n },\n {\n \"gSize\": 3,\n \"lgSize\": 3,\n \"maxFrac\": 2,\n \"minFrac\": 2,\n \"minInt\": 1,\n \"negPre\": \"-\\u00a4\",\n \"negSuf\": \"\",\n \"posPre\": \"\\u00a4\",\n \"posSuf\": \"\"\n }\n ]\n },\n \"id\": \"en-us\",\n \"localeID\": \"en_US\",\n \"pluralCat\": function(n, opt_precision) { var i = n | 0; var vf = getVF(n, opt_precision); if (i == 1 && vf.v == 0) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;}\n});\n}]);\nangular.element(document.head).prepend(\n ''\n);\n jqLite(() => {\r\n angularInit(window.document, bootstrap);\r\n });\r\n\r\n})(window);\r\n","\n/**\n * @license AngularJS v2.0.0\n * (c) 2010-2020 Google, Inc. http://angularjs.org\n * License: MIT\n * Forked maintenance by PebblePad\n */\n'use strict';\nexport class NgComponent {\n constructor() {\n if (window.angular.$$compilationBindings.current !== null) {\n Object.assign(this, window.angular.$$compilationBindings.current);\n }\n }\n}\n","const batchedCss = [];\r\nexport function injectCss(cssContent) {\r\n if (batchedCss.length === 0) {\r\n window.queueMicrotask(() => {\r\n const styleElement = document.createElement(\"style\");\r\n styleElement.setAttribute(\"type\", \"text/css\");\r\n\r\n styleElement.appendChild(document.createTextNode(batchedCss.join(\"\")));\r\n\r\n document.head.appendChild(styleElement);\r\n batchedCss.length = 0;\r\n });\r\n }\r\n\r\n batchedCss.push(cssContent);\r\n}\r\n",null,"const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n} = Object;\n\nlet { freeze, seal, create } = Object; // eslint-disable-line import/no-mutable-exports\nlet { apply, construct } = typeof Reflect !== 'undefined' && Reflect;\n\nif (!freeze) {\n freeze = function (x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = function (x) {\n return x;\n };\n}\n\nif (!apply) {\n apply = function (fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!construct) {\n construct = function (Func, args) {\n return new Func(...args);\n };\n}\n\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayIndexOf = unapply(Array.prototype.indexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySlice = unapply(Array.prototype.slice);\n\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\n\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n\nconst regExpTest = unapply(RegExp.prototype.test);\n\nconst typeErrorCreate = unconstruct(TypeError);\n\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param {Function} func - The function to be wrapped and called.\n * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return (thisArg, ...args) => apply(func, thisArg, args);\n}\n\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param {Function} func - The constructor function to be wrapped and called.\n * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(func) {\n return (...args) => construct(func, args);\n}\n\n/**\n * Add properties to a lookup table\n *\n * @param {Object} set - The set to which elements will be added.\n * @param {Array} array - The array containing elements to be added to the set.\n * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns {Object} The modified set with added elements.\n */\nfunction addToSet(set, array, transformCaseFunc = stringToLowerCase) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/**\n * Clean up an array to harden against CSPP\n *\n * @param {Array} array - The array to be cleaned.\n * @returns {Array} The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n\n return array;\n}\n\n/**\n * Shallow clone an object\n *\n * @param {Object} object - The object to be cloned.\n * @returns {Object} A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (\n value &&\n typeof value === 'object' &&\n value.constructor === Object\n ) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n\n return newObject;\n}\n\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param {Object} object - The object to look up the getter function in its prototype chain.\n * @param {String} prop - The property name for which to find the getter function.\n * @returns {Function} The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue() {\n return null;\n }\n\n return fallbackValue;\n}\n\nexport {\n // Array\n arrayForEach,\n arrayIndexOf,\n arrayPop,\n arrayPush,\n arraySlice,\n // Object\n entries,\n freeze,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n isFrozen,\n setPrototypeOf,\n seal,\n clone,\n create,\n objectHasOwnProperty,\n // RegExp\n regExpTest,\n // String\n stringIndexOf,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringTrim,\n // Errors\n typeErrorCreate,\n // Other\n lookupGetter,\n addToSet,\n // Reflect\n unapply,\n unconstruct,\n};\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blink',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'content',\n 'data',\n 'datalist',\n 'dd',\n 'decorator',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meter',\n 'nav',\n 'nobr',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'section',\n 'select',\n 'shadow',\n 'small',\n 'source',\n 'spacer',\n 'span',\n 'strike',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n]);\n\n// SVG\nexport const svg = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altglyphitem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circle',\n 'clippath',\n 'defs',\n 'desc',\n 'ellipse',\n 'filter',\n 'font',\n 'g',\n 'glyph',\n 'glyphref',\n 'hkern',\n 'image',\n 'line',\n 'lineargradient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'stop',\n 'style',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 'tref',\n 'tspan',\n 'view',\n 'vkern',\n]);\n\nexport const svgFilters = freeze([\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n]);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nexport const svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'discard',\n 'font-face',\n 'font-face-format',\n 'font-face-name',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch',\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'missing-glyph',\n 'script',\n 'set',\n 'solidcolor',\n 'unknown',\n 'use',\n]);\n\nexport const mathMl = freeze([\n 'math',\n 'menclose',\n 'merror',\n 'mfenced',\n 'mfrac',\n 'mglyph',\n 'mi',\n 'mlabeledtr',\n 'mmultiscripts',\n 'mn',\n 'mo',\n 'mover',\n 'mpadded',\n 'mphantom',\n 'mroot',\n 'mrow',\n 'ms',\n 'mspace',\n 'msqrt',\n 'mstyle',\n 'msub',\n 'msup',\n 'msubsup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderover',\n 'mprescripts',\n]);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nexport const mathMlDisallowed = freeze([\n 'maction',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'mscarries',\n 'mscarry',\n 'msgroup',\n 'mstack',\n 'msline',\n 'msrow',\n 'semantics',\n 'annotation',\n 'annotation-xml',\n 'mprescripts',\n 'none',\n]);\n\nexport const text = freeze(['#text']);\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'accept',\n 'action',\n 'align',\n 'alt',\n 'autocapitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'autoplay',\n 'background',\n 'bgcolor',\n 'border',\n 'capture',\n 'cellpadding',\n 'cellspacing',\n 'checked',\n 'cite',\n 'class',\n 'clear',\n 'color',\n 'cols',\n 'colspan',\n 'controls',\n 'controlslist',\n 'coords',\n 'crossorigin',\n 'datetime',\n 'decoding',\n 'default',\n 'dir',\n 'disabled',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'download',\n 'draggable',\n 'enctype',\n 'enterkeyhint',\n 'face',\n 'for',\n 'headers',\n 'height',\n 'hidden',\n 'high',\n 'href',\n 'hreflang',\n 'id',\n 'inputmode',\n 'integrity',\n 'ismap',\n 'kind',\n 'label',\n 'lang',\n 'list',\n 'loading',\n 'loop',\n 'low',\n 'max',\n 'maxlength',\n 'media',\n 'method',\n 'min',\n 'minlength',\n 'multiple',\n 'muted',\n 'name',\n 'nonce',\n 'noshade',\n 'novalidate',\n 'nowrap',\n 'open',\n 'optimum',\n 'pattern',\n 'placeholder',\n 'playsinline',\n 'popover',\n 'popovertarget',\n 'popovertargetaction',\n 'poster',\n 'preload',\n 'pubdate',\n 'radiogroup',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'reversed',\n 'role',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 'selected',\n 'shape',\n 'size',\n 'sizes',\n 'span',\n 'srclang',\n 'start',\n 'src',\n 'srcset',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'title',\n 'translate',\n 'type',\n 'usemap',\n 'valign',\n 'value',\n 'width',\n 'wrap',\n 'xmlns',\n 'slot',\n]);\n\nexport const svg = freeze([\n 'accent-height',\n 'accumulate',\n 'additive',\n 'alignment-baseline',\n 'amplitude',\n 'ascent',\n 'attributename',\n 'attributetype',\n 'azimuth',\n 'basefrequency',\n 'baseline-shift',\n 'begin',\n 'bias',\n 'by',\n 'class',\n 'clip',\n 'clippathunits',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'cx',\n 'cy',\n 'd',\n 'dx',\n 'dy',\n 'diffuseconstant',\n 'direction',\n 'display',\n 'divisor',\n 'dur',\n 'edgemode',\n 'elevation',\n 'end',\n 'exponent',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-color',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'fx',\n 'fy',\n 'g1',\n 'g2',\n 'glyph-name',\n 'glyphref',\n 'gradientunits',\n 'gradienttransform',\n 'height',\n 'href',\n 'id',\n 'image-rendering',\n 'in',\n 'in2',\n 'intercept',\n 'k',\n 'k1',\n 'k2',\n 'k3',\n 'k4',\n 'kerning',\n 'keypoints',\n 'keysplines',\n 'keytimes',\n 'lang',\n 'lengthadjust',\n 'letter-spacing',\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color',\n 'local',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'markerheight',\n 'markerunits',\n 'markerwidth',\n 'maskcontentunits',\n 'maskunits',\n 'max',\n 'mask',\n 'media',\n 'method',\n 'mode',\n 'min',\n 'name',\n 'numoctaves',\n 'offset',\n 'operator',\n 'opacity',\n 'order',\n 'orient',\n 'orientation',\n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'pathlength',\n 'patterncontentunits',\n 'patterntransform',\n 'patternunits',\n 'points',\n 'preservealpha',\n 'preserveaspectratio',\n 'primitiveunits',\n 'r',\n 'rx',\n 'ry',\n 'radius',\n 'refx',\n 'refy',\n 'repeatcount',\n 'repeatdur',\n 'restart',\n 'result',\n 'rotate',\n 'scale',\n 'seed',\n 'shape-rendering',\n 'slope',\n 'specularconstant',\n 'specularexponent',\n 'spreadmethod',\n 'startoffset',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke',\n 'stroke-width',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 'tabindex',\n 'tablevalues',\n 'targetx',\n 'targety',\n 'transform',\n 'transform-origin',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'textlength',\n 'type',\n 'u1',\n 'u2',\n 'unicode',\n 'values',\n 'viewbox',\n 'visibility',\n 'version',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'width',\n 'word-spacing',\n 'wrap',\n 'writing-mode',\n 'xchannelselector',\n 'ychannelselector',\n 'x',\n 'x1',\n 'x2',\n 'xmlns',\n 'y',\n 'y1',\n 'y2',\n 'z',\n 'zoomandpan',\n]);\n\nexport const mathMl = freeze([\n 'accent',\n 'accentunder',\n 'align',\n 'bevelled',\n 'close',\n 'columnsalign',\n 'columnlines',\n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'display',\n 'displaystyle',\n 'encoding',\n 'fence',\n 'frame',\n 'height',\n 'href',\n 'id',\n 'largeop',\n 'length',\n 'linethickness',\n 'lspace',\n 'lquote',\n 'mathbackground',\n 'mathcolor',\n 'mathsize',\n 'mathvariant',\n 'maxsize',\n 'minsize',\n 'movablelimits',\n 'notation',\n 'numalign',\n 'open',\n 'rowalign',\n 'rowlines',\n 'rowspacing',\n 'rowspan',\n 'rspace',\n 'rquote',\n 'scriptlevel',\n 'scriptminsize',\n 'scriptsizemultiplier',\n 'selection',\n 'separator',\n 'separators',\n 'stretchy',\n 'subscriptshift',\n 'supscriptshift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmlns',\n]);\n\nexport const xml = freeze([\n 'xlink:href',\n 'xml:id',\n 'xlink:title',\n 'xml:space',\n 'xmlns:xlink',\n]);\n","import { seal } from './utils.js';\n\n// eslint-disable-next-line unicorn/better-regex\nexport const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nexport const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nexport const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nexport const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nexport const IS_ALLOWED_URI = seal(\n /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nexport const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nexport const ATTR_WHITESPACE = seal(\n /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\nexport const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n","import * as TAGS from './tags.js';\nimport * as ATTRS from './attrs.js';\nimport * as EXPRESSIONS from './regexp.js';\nimport {\n addToSet,\n clone,\n entries,\n freeze,\n arrayForEach,\n arrayPop,\n arrayPush,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringIndexOf,\n stringTrim,\n regExpTest,\n typeErrorCreate,\n lookupGetter,\n create,\n objectHasOwnProperty,\n} from './utils.js';\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5, // Deprecated\n entityNode: 6, // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12, // Deprecated\n};\n\nconst getGlobal = function () {\n return typeof window === 'undefined' ? null : window;\n};\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function (trustedTypes, purifyHostElement) {\n if (\n typeof trustedTypes !== 'object' ||\n typeof trustedTypes.createPolicy !== 'function'\n ) {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n },\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn(\n 'TrustedTypes policy ' + policyName + ' could not be created.'\n );\n return null;\n }\n};\n\nfunction createDOMPurify(window = getGlobal()) {\n const DOMPurify = (root) => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = VERSION;\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (\n !window ||\n !window.document ||\n window.document.nodeType !== NODE_TYPE.document\n ) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n let { document } = window;\n\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes,\n } = window;\n\n const ElementPrototype = Element.prototype;\n\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n let trustedTypesPolicy;\n let emptyHTML = '';\n\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName,\n } = document;\n const { importNode } = originalDocument;\n\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported =\n typeof entries === 'function' &&\n typeof getParentNode === 'function' &&\n implementation &&\n implementation.createHTMLDocument !== undefined;\n\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT,\n } = EXPRESSIONS;\n\n let { IS_ALLOWED_URI } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [\n ...TAGS.html,\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.mathMl,\n ...TAGS.text,\n ]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [\n ...ATTRS.html,\n ...ATTRS.svg,\n ...ATTRS.mathMl,\n ...ATTRS.xml,\n ]);\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(\n create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false,\n },\n })\n );\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, [\n 'annotation-xml',\n 'audio',\n 'colgroup',\n 'desc',\n 'foreignobject',\n 'head',\n 'iframe',\n 'math',\n 'mi',\n 'mn',\n 'mo',\n 'ms',\n 'mtext',\n 'noembed',\n 'noframes',\n 'noscript',\n 'plaintext',\n 'script',\n 'style',\n 'svg',\n 'template',\n 'thead',\n 'title',\n 'video',\n 'xmp',\n ]);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n 'video',\n 'img',\n 'source',\n 'image',\n 'track',\n ]);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n 'alt',\n 'class',\n 'for',\n 'id',\n 'label',\n 'name',\n 'pattern',\n 'placeholder',\n 'role',\n 'summary',\n 'title',\n 'value',\n 'style',\n 'xmlns',\n ]);\n\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet(\n {},\n [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE],\n stringToString\n );\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n\n const isRegexOrFunction = function (testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function (cfg = {}) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n ? DEFAULT_PARSER_MEDIA_TYPE\n : cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc =\n PARSER_MEDIA_TYPE === 'application/xhtml+xml'\n ? stringToString\n : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS')\n ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc)\n : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR')\n ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES')\n ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString)\n : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR')\n ? addToSet(\n clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS')\n ? addToSet(\n clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS')\n ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc)\n : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS')\n ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc)\n : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR')\n ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc)\n : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES')\n ? cfg.USE_PROFILES\n : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI = cfg.ALLOWED_URI_REGEXP || EXPRESSIONS.IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements ===\n 'boolean'\n ) {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements =\n cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, TAGS.text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, TAGS.html);\n addToSet(ALLOWED_ATTR, ATTRS.html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, TAGS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, TAGS.svgFilters);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, TAGS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.'\n );\n }\n\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.'\n );\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(\n trustedTypes,\n currentScript\n );\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [\n 'mi',\n 'mo',\n 'mn',\n 'ms',\n 'mtext',\n ]);\n\n const HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n 'title',\n 'style',\n 'font',\n 'a',\n 'script',\n ]);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.svgDisallowed,\n ]);\n const ALL_MATHML_TAGS = addToSet({}, [\n ...TAGS.mathMl,\n ...TAGS.mathMlDisallowed,\n ]);\n\n /**\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function (element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template',\n };\n }\n\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return (\n tagName === 'svg' &&\n (parentTagName === 'annotation-xml' ||\n MATHML_TEXT_INTEGRATION_POINTS[parentTagName])\n );\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (\n parent.namespaceURI === SVG_NAMESPACE &&\n !HTML_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n if (\n parent.namespaceURI === MATHML_NAMESPACE &&\n !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return (\n !ALL_MATHML_TAGS[tagName] &&\n (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName])\n );\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n ALLOWED_NAMESPACES[element.namespaceURI]\n ) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = function (node) {\n arrayPush(DOMPurify.removed, { element: node });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function (name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node,\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node,\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n const _initDocument = function (dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n NAMESPACE === HTML_NAMESPACE\n ) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty =\n '' +\n dirty +\n '';\n }\n\n const dirtyPayload = trustedTypesPolicy\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT\n ? emptyHTML\n : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n const body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(\n document.createTextNode(leadingWhitespace),\n body.childNodes[0] || null\n );\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(\n doc,\n WHOLE_DOCUMENT ? 'html' : 'body'\n )[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param {Node} root The root element or node to start traversing on.\n * @return {NodeIterator} The created NodeIterator\n */\n const _createNodeIterator = function (root) {\n return createNodeIterator.call(\n root.ownerDocument || root,\n root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT |\n NodeFilter.SHOW_COMMENT |\n NodeFilter.SHOW_TEXT |\n NodeFilter.SHOW_PROCESSING_INSTRUCTION |\n NodeFilter.SHOW_CDATA_SECTION,\n null\n );\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n const _isClobbered = function (elm) {\n return (\n elm instanceof HTMLFormElement &&\n (typeof elm.nodeName !== 'string' ||\n typeof elm.textContent !== 'string' ||\n typeof elm.removeChild !== 'function' ||\n !(elm.attributes instanceof NamedNodeMap) ||\n typeof elm.removeAttribute !== 'function' ||\n typeof elm.setAttribute !== 'function' ||\n typeof elm.namespaceURI !== 'string' ||\n typeof elm.insertBefore !== 'function' ||\n typeof elm.hasChildNodes !== 'function')\n );\n };\n\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param {Node} object object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n const _isNode = function (object) {\n return typeof Node === 'function' && object instanceof Node;\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n const _executeHook = function (entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], (hook) => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n const _sanitizeElements = function (currentNode) {\n let content = null;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS,\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (\n currentNode.hasChildNodes() &&\n !_isNode(currentNode.firstElementChild) &&\n regExpTest(/<[/\\w]/g, currentNode.innerHTML) &&\n regExpTest(/<[/\\w]/g, currentNode.textContent)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any kind of possibly harmful comments */\n if (\n SAFE_FOR_XML &&\n currentNode.nodeType === NODE_TYPE.comment &&\n regExpTest(/<[/\\w]/g, currentNode.data)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)\n ) {\n return false;\n }\n\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)\n ) {\n return false;\n }\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if (\n (tagName === 'noscript' ||\n tagName === 'noembed' ||\n tagName === 'noframes') &&\n regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n content = stringReplace(content, expr, ' ');\n });\n\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function (lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (\n SANITIZE_DOM &&\n (lcName === 'id' || lcName === 'name') &&\n (value in document || value in formElement)\n ) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (\n ALLOW_DATA_ATTR &&\n !FORBID_ATTR[lcName] &&\n regExpTest(DATA_ATTR, lcName)\n ) {\n // This attribute is safe\n } else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n (_isBasicCustomElement(lcTag) &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag))) &&\n ((CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName)) ||\n (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)))) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n (lcName === 'is' &&\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))))\n ) {\n // If user has supplied a regexp or function in CUSTOM_ELEMENT_HANDLING.tagNameCheck, we need to also allow derived custom elements using the same tagName test.\n // Additionally, we need to allow attributes passing the CUSTOM_ELEMENT_HANDLING.attributeNameCheck user has configured, as custom elements can define these at their own discretion.\n } else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n // This attribute is safe\n /* Check no script, data or unknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (\n regExpTest(IS_ALLOWED_URI, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:href is allowed */\n /* Further prevent gadget XSS for dynamically built script tags */\n } else if (\n (lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') &&\n lcTag !== 'script' &&\n stringIndexOf(value, 'data:') === 0 &&\n DATA_URI_TAGS[lcTag]\n ) {\n // This attribute is safe\n /* Allow unknown protocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } else if (\n ALLOW_UNKNOWN_PROTOCOLS &&\n !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Check for binary attributes */\n } else if (value) {\n return false;\n } else {\n // Binary attributes are safe at this point\n /* Anything else, presume unsafe, do not add it back */\n }\n\n return true;\n };\n\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param {string} tagName name of the tag of the node to sanitize\n * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function (tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = function (currentNode) {\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n const { attributes } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n };\n let l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const { name, namespaceURI, value: attrValue } = attr;\n const lcName = transformCaseFunc(name);\n\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n value = stringReplace(value, expr, ' ');\n });\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Handle attributes that require Trusted Types */\n if (\n trustedTypesPolicy &&\n typeof trustedTypes === 'object' &&\n typeof trustedTypes.getAttributeType === 'function'\n ) {\n if (namespaceURI) {\n /* Namespaces are not yet supported, see https://bugs.chromium.org/p/chromium/issues/detail?id=1305293 */\n } else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML': {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n\n case 'TrustedScriptURL': {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n\n default: {\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function (fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while ((shadowNode = shadowIterator.nextNode())) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} cfg object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg = {}) {\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate(\n 'root node is forbidden and cannot be sanitized in-place'\n );\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (\n importedNode.nodeType === NODE_TYPE.element &&\n importedNode.nodeName === 'BODY'\n ) {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (\n !RETURN_DOM &&\n !SAFE_FOR_TEMPLATES &&\n !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1\n ) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while ((currentNode = nodeIterator.nextNode())) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n }\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (\n WHOLE_DOCUMENT &&\n ALLOWED_TAGS['!doctype'] &&\n body.ownerDocument &&\n body.ownerDocument.doctype &&\n body.ownerDocument.doctype.name &&\n regExpTest(EXPRESSIONS.DOCTYPE_NAME, body.ownerDocument.doctype.name)\n ) {\n serializedHTML =\n '\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(serializedHTML)\n : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg = {}) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {String} tag Tag name of containing element.\n * @param {String} attr Attribute name.\n * @param {String} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nexport default createDOMPurify();\n","/*!\n * enquire.js v2.1.6 - Awesome Media Queries in JavaScript\n * Copyright (c) 2017 Nick Williams - http://wicky.nillia.ms/enquire.js\n * License: MIT */\n\n\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.enquire = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o void;\r\n\r\n constructor(element: HTMLElement = document.documentElement) {\r\n this._element = element;\r\n this._keyDownHandler = this._debounce(this._handler.bind(this))\r\n this._element.addEventListener(\"keydown\", this._keyDownHandler);\r\n }\r\n\r\n private _handler(event: KeyboardEvent): void {\r\n if(event.key === undefined){\r\n return;\r\n }\r\n\r\n const shortcut = this._shortcuts[event.key.toLowerCase()];\r\n\r\n if (shortcut !== undefined && event.altKey === !!shortcut.altKey) {\r\n shortcut.callback(event);\r\n }\r\n }\r\n\r\n private _debounce(func: (event) => void, wait = 550) {\r\n let h: Timer;\r\n return event => {\r\n clearTimeout(h);\r\n h = setTimeout(() => func(event), wait);\r\n };\r\n }\r\n\r\n public register(contextId: string, shortcuts: Array): void {\r\n this.remove(contextId);\r\n for (let i = 0, ii = shortcuts.length; i < ii; i++) {\r\n const shortcutKey = shortcuts[i].key.toString().toLowerCase();\r\n if (this._shortcuts[shortcutKey] !== undefined) {\r\n throw new KeysyPeasyError(\"Duplicate shortcut\", shortcuts[i]);\r\n }\r\n const shortcutMap: IShortcutMapItem = shortcuts[i];\r\n shortcutMap.contextId = contextId;\r\n this._shortcuts[shortcutKey] = shortcutMap;\r\n }\r\n\r\n }\r\n\r\n public getHandlers(): IShortcutMap {\r\n return this._shortcuts;\r\n }\r\n\r\n public remove(contextId: string): void {\r\n for (let key in this._shortcuts) {\r\n if (this._shortcuts[key].contextId === contextId) {\r\n delete this._shortcuts[key];\r\n }\r\n }\r\n }\r\n\r\n public destroy(): void {\r\n this._shortcuts = {};\r\n this._element.removeEventListener(\"keydown\", this._keyDownHandler);\r\n }\r\n}","export * from \"./classes/Shortcuts\";\nexport * from \"./classes/KeasyPeasyError\"\nexport * from \"./interfaces/IShortcut\";\nexport * from \"./interfaces/IShortcutMap\";\nexport * from \"./interfaces/IShortcutMapItem\";","/**\n * lodash 4.0.1 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['fred', 30], ['barney', 40]]);\n * // => { 'fred': 30, 'barney': 40 }\n */\nfunction fromPairs(pairs) {\n var index = -1,\n length = pairs ? pairs.length : 0,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n}\n\nmodule.exports = fromPairs;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","/*!***************************************************\n* mark.js v8.11.1\n* https://markjs.io/\n* Copyright (c) 2014–2018, Julian Kühnel\n* Released under the MIT license https://git.io/vwTVl\n*****************************************************/\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.Mark=t()}(this,function(){\"use strict\";var e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")},n=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=i,this.iframesTimeout=o}return n(e,[{key:\"getContexts\",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:\"string\"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach(function(t){var n=e.filter(function(e){return e.contains(t)}).length>0;-1!==e.indexOf(t)||n||e.push(t)}),e}},{key:\"getIframeContents\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var i=e.contentWindow;if(r=i.document,!i||!r)throw new Error(\"iframe inaccessible\")}catch(e){n()}r&&t(r)}},{key:\"isIframeBlank\",value:function(e){var t=e.getAttribute(\"src\").trim();return\"about:blank\"===e.contentWindow.location.href&&\"about:blank\"!==t&&t}},{key:\"observeIframeLoad\",value:function(e,t,n){var r=this,i=!1,o=null,a=function a(){if(!i){i=!0,clearTimeout(o);try{r.isIframeBlank(e)||(e.removeEventListener(\"load\",a),r.getIframeContents(e,t,n))}catch(e){n()}}};e.addEventListener(\"load\",a),o=setTimeout(a,this.iframesTimeout)}},{key:\"onIframeReady\",value:function(e,t,n){try{\"complete\"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(e){n()}}},{key:\"waitForIframes\",value:function(e,t){var n=this,r=0;this.forEachIframe(e,function(){return!0},function(e){r++,n.waitForIframes(e.querySelector(\"html\"),function(){--r||t()})},function(e){e||t()})}},{key:\"forEachIframe\",value:function(t,n,r){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=t.querySelectorAll(\"iframe\"),s=a.length,c=0;a=Array.prototype.slice.call(a);var u=function(){--s<=0&&o(c)};s||u(),a.forEach(function(t){e.matches(t,i.exclude)?u():i.onIframeReady(t,function(e){n(t)&&(c++,r(e)),u()},u)})}},{key:\"createIterator\",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:\"createInstanceOnIframe\",value:function(t){return new e(t.querySelector(\"html\"),this.iframes)}},{key:\"compareNodeIframe\",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:\"getIteratorNode\",value:function(e){var t=e.previousNode();return{prevNode:t,node:null===t?e.nextNode():e.nextNode()&&e.nextNode()}}},{key:\"checkIframeFilter\",value:function(e,t,n,r){var i=!1,o=!1;return r.forEach(function(e,t){e.val===n&&(i=t,o=e.handled)}),this.compareNodeIframe(e,t,n)?(!1!==i||o?!1===i||o||(r[i].handled=!0):r.push({val:n,handled:!0}),!0):(!1===i&&r.push({val:n,handled:!1}),!1)}},{key:\"handleOpenIframes\",value:function(e,t,n,r){var i=this;e.forEach(function(e){e.handled||i.getIframeContents(e.val,function(e){i.createInstanceOnIframe(e).forEachNode(t,n,r)})})}},{key:\"iterateThroughNodes\",value:function(e,t,n,r,i){for(var o,a=this,s=this.createIterator(t,e,r),c=[],u=[],l=void 0,h=void 0;void 0,o=a.getIteratorNode(s),h=o.prevNode,l=o.node;)this.iframes&&this.forEachIframe(t,function(e){return a.checkIframeFilter(l,h,e,c)},function(t){a.createInstanceOnIframe(t).forEachNode(e,function(e){return u.push(e)},r)}),u.push(l);u.forEach(function(e){n(e)}),this.iframes&&this.handleOpenIframes(c,e,n,r),i()}},{key:\"forEachNode\",value:function(e,t,n){var r=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},o=this.getContexts(),a=o.length;a||i(),o.forEach(function(o){var s=function(){r.iterateThroughNodes(e,o,t,n,function(){--a<=0&&i()})};r.iframes?r.waitForIframes(o,s):s()})}}],[{key:\"matches\",value:function(e,t){var n=\"string\"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var i=!1;return n.every(function(t){return!r.call(e,t)||(i=!0,!1)}),i}return!1}}]),e}(),o=function(){function o(e){t(this,o),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf(\"MSIE\")>-1||n.indexOf(\"Trident\")>-1)&&(this.ie=!0)}return n(o,[{key:\"log\",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"debug\",r=this.opt.log;this.opt.debug&&\"object\"===(void 0===r?\"undefined\":e(r))&&\"function\"==typeof r[n]&&r[n](\"mark.js: \"+t)}},{key:\"escapeStr\",value:function(e){return e.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\")}},{key:\"createRegExp\",value:function(e){return\"disabled\"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),\"disabled\"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:\"createSynonymsRegExp\",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?\"\":\"i\",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?\"\\0\":\"\";for(var i in t)if(t.hasOwnProperty(i)){var o=t[i],a=\"disabled\"!==this.opt.wildcards?this.setupWildcardsRegExp(i):this.escapeStr(i),s=\"disabled\"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o);\"\"!==a&&\"\"!==s&&(e=e.replace(new RegExp(\"(\"+this.escapeStr(a)+\"|\"+this.escapeStr(s)+\")\",\"gm\"+n),r+\"(\"+this.processSynomyms(a)+\"|\"+this.processSynomyms(s)+\")\"+r))}return e}},{key:\"processSynomyms\",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:\"setupWildcardsRegExp\",value:function(e){return(e=e.replace(/(?:\\\\)*\\?/g,function(e){return\"\\\\\"===e.charAt(0)?\"?\":\"\u0001\"})).replace(/(?:\\\\)*\\*/g,function(e){return\"\\\\\"===e.charAt(0)?\"*\":\"\u0002\"})}},{key:\"createWildcardsRegExp\",value:function(e){var t=\"withSpaces\"===this.opt.wildcards;return e.replace(/\\u0001/g,t?\"[\\\\S\\\\s]?\":\"\\\\S?\").replace(/\\u0002/g,t?\"[\\\\S\\\\s]*?\":\"\\\\S*\")}},{key:\"setupIgnoreJoinersRegExp\",value:function(e){return e.replace(/[^(|)\\\\]/g,function(e,t,n){var r=n.charAt(t+1);return/[(|)\\\\]/.test(r)||\"\"===r?e:e+\"\\0\"})}},{key:\"createJoinersRegExp\",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(\"\"))),this.opt.ignoreJoiners&&t.push(\"\\\\u00ad\\\\u200b\\\\u200c\\\\u200d\"),t.length?e.split(/\\u0000+/).join(\"[\"+t.join(\"\")+\"]*\"):e}},{key:\"createDiacriticsRegExp\",value:function(e){var t=this.opt.caseSensitive?\"\":\"i\",n=this.opt.caseSensitive?[\"aàáảãạăằắẳẵặâầấẩẫậäåāą\",\"AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ\",\"cçćč\",\"CÇĆČ\",\"dđď\",\"DĐĎ\",\"eèéẻẽẹêềếểễệëěēę\",\"EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ\",\"iìíỉĩịîïī\",\"IÌÍỈĨỊÎÏĪ\",\"lł\",\"LŁ\",\"nñňń\",\"NÑŇŃ\",\"oòóỏõọôồốổỗộơởỡớờợöøō\",\"OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ\",\"rř\",\"RŘ\",\"sšśșş\",\"SŠŚȘŞ\",\"tťțţ\",\"TŤȚŢ\",\"uùúủũụưừứửữựûüůū\",\"UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ\",\"yýỳỷỹỵÿ\",\"YÝỲỶỸỴŸ\",\"zžżź\",\"ZŽŻŹ\"]:[\"aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ\",\"cçćčCÇĆČ\",\"dđďDĐĎ\",\"eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ\",\"iìíỉĩịîïīIÌÍỈĨỊÎÏĪ\",\"lłLŁ\",\"nñňńNÑŇŃ\",\"oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ\",\"rřRŘ\",\"sšśșşSŠŚȘŞ\",\"tťțţTŤȚŢ\",\"uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ\",\"yýỳỷỹỵÿYÝỲỶỸỴŸ\",\"zžżźZŽŻŹ\"],r=[];return e.split(\"\").forEach(function(i){n.every(function(n){if(-1!==n.indexOf(i)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp(\"[\"+n+\"]\",\"gm\"+t),\"[\"+n+\"]\"),r.push(n)}return!0})}),e}},{key:\"createMergedBlanksRegExp\",value:function(e){return e.replace(/[\\s]+/gim,\"[\\\\s]+\")}},{key:\"createAccuracyRegExp\",value:function(e){var t=this,n=this.opt.accuracy,r=\"string\"==typeof n?n:n.value,i=\"\";switch((\"string\"==typeof n?[]:n.limiters).forEach(function(e){i+=\"|\"+t.escapeStr(e)}),r){case\"partially\":default:return\"()(\"+e+\")\";case\"complementary\":return\"()([^\"+(i=\"\\\\s\"+(i||this.escapeStr(\"!\\\"#$%&'()*+,-./:;<=>?@[\\\\]^_`{|}~¡¿\")))+\"]*\"+e+\"[^\"+i+\"]*)\";case\"exactly\":return\"(^|\\\\s\"+i+\")(\"+e+\")(?=$|\\\\s\"+i+\")\"}}},{key:\"getSeparatedKeywords\",value:function(e){var t=this,n=[];return e.forEach(function(e){t.opt.separateWordSearch?e.split(\" \").forEach(function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)}):e.trim()&&-1===n.indexOf(e)&&n.push(e)}),{keywords:n.sort(function(e,t){return t.length-e.length}),length:n.length}}},{key:\"isNumeric\",value:function(e){return Number(parseFloat(e))==e}},{key:\"checkRanges\",value:function(e){var t=this;if(!Array.isArray(e)||\"[object Object]\"!==Object.prototype.toString.call(e[0]))return this.log(\"markRanges() will only accept an array of objects\"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort(function(e,t){return e.start-t.start}).forEach(function(e){var i=t.callNoMatchOnInvalidRanges(e,r),o=i.start,a=i.end;i.valid&&(e.start=o,e.length=a-o,n.push(e),r=a)}),n}},{key:\"callNoMatchOnInvalidRanges\",value:function(e,t){var n=void 0,r=void 0,i=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?i=!0:(this.log(\"Ignoring invalid or overlapping range: \"+JSON.stringify(e)),this.opt.noMatch(e))):(this.log(\"Ignoring invalid range: \"+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:i}}},{key:\"checkWhitespaceRanges\",value:function(e,t,n){var r=void 0,i=!0,o=n.length,a=t-o,s=parseInt(e.start,10)-a;return(r=(s=s>o?o:s)+parseInt(e.length,10))>o&&(r=o,this.log(\"End range automatically set to the max value of \"+o)),s<0||r-s<0||s>o||r>o?(i=!1,this.log(\"Invalid range: \"+JSON.stringify(e)),this.opt.noMatch(e)):\"\"===n.substring(s,r).replace(/\\s+/g,\"\")&&(i=!1,this.log(\"Skipping whitespace only range: \"+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:i}}},{key:\"getTextNodes\",value:function(e){var t=this,n=\"\",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})},function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},function(){e({value:n,nodes:r})})}},{key:\"matchesExclude\",value:function(e){return i.matches(e,this.opt.exclude.concat([\"script\",\"style\",\"title\",\"head\",\"html\"]))}},{key:\"wrapRangeInTextNode\",value:function(e,t,n){var r=this.opt.element?this.opt.element:\"mark\",i=e.splitText(t),o=i.splitText(n-t),a=document.createElement(r);return a.setAttribute(\"data-markjs\",\"true\"),this.opt.className&&a.setAttribute(\"class\",this.opt.className),a.textContent=i.textContent,i.parentNode.replaceChild(a,i),o}},{key:\"wrapRangeInMappedTextNode\",value:function(e,t,n,r,i){var o=this;e.nodes.every(function(a,s){var c=e.nodes[s+1];if(void 0===c||c.start>t){if(!r(a.node))return!1;var u=t-a.start,l=(n>a.end?a.end:n)-a.start,h=e.value.substr(0,a.start),f=e.value.substr(l+a.start);if(a.node=o.wrapRangeInTextNode(a.node,u,l),e.value=h+f,e.nodes.forEach(function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=l),e.nodes[n].end-=l)}),n-=l,i(a.node.previousSibling,a.start),!(n>a.end))return!1;t=a.end}return!0})}},{key:\"wrapMatches\",value:function(e,t,n,r,i){var o=this,a=0===t?0:t+1;this.getTextNodes(function(t){t.nodes.forEach(function(t){t=t.node;for(var i=void 0;null!==(i=e.exec(t.textContent))&&\"\"!==i[a];)if(n(i[a],t)){var s=i.index;if(0!==a)for(var c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 1 && _this.props.draggableTrack) {\n if (_this.thumbRefs.some(function (thumbRef) { var _a; return (_a = thumbRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target); }))\n return;\n // handle dragging the whole track\n _this.setState({\n draggedTrackPos: [e.clientX, e.clientY]\n }, function () { return _this.onMove(e.clientX, e.clientY); });\n }\n else {\n // get the index of the thumb that is closest to the place where the track is clicked\n var draggedThumbIndex = (0, utils_1.getClosestThumbIndex)(_this.thumbRefs.map(function (t) { return t.current; }), e.clientX, e.clientY, _this.props.direction);\n // move the thumb which is closest to the place where the track is clicked\n (_a = _this.thumbRefs[draggedThumbIndex].current) === null || _a === void 0 ? void 0 : _a.focus();\n _this.setState({\n draggedThumbIndex: draggedThumbIndex\n }, function () { return _this.onMove(e.clientX, e.clientY); });\n }\n };\n _this.onResize = function () {\n (0, utils_1.translateThumbs)(_this.getThumbs(), _this.getOffsets(), _this.props.rtl);\n _this.calculateMarkOffsets();\n };\n _this.onTouchStartTrack = function (e) {\n var _a;\n e.persist();\n _this.addTouchEvents(e.nativeEvent);\n if (_this.props.values.length > 1 && _this.props.draggableTrack) {\n if (_this.thumbRefs.some(function (thumbRef) { var _a; return (_a = thumbRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target); }))\n return;\n // handle dragging the whole track\n _this.setState({\n draggedTrackPos: [e.touches[0].clientX, e.touches[0].clientY]\n }, function () { return _this.onMove(e.touches[0].clientX, e.touches[0].clientY); });\n }\n else {\n // get the index of the thumb that is closest to the place where the track is clicked\n var draggedThumbIndex = (0, utils_1.getClosestThumbIndex)(_this.thumbRefs.map(function (t) { return t.current; }), e.touches[0].clientX, e.touches[0].clientY, _this.props.direction);\n // move the thumb which is closest to the place where the track is clicked\n (_a = _this.thumbRefs[draggedThumbIndex].current) === null || _a === void 0 ? void 0 : _a.focus();\n _this.setState({\n draggedThumbIndex: draggedThumbIndex\n }, function () { return _this.onMove(e.touches[0].clientX, e.touches[0].clientY); });\n }\n };\n _this.onMouseOrTouchStart = function (e) {\n if (_this.props.disabled)\n return;\n var isTouch = (0, utils_1.isTouchEvent)(e);\n if (!isTouch && e.button !== 0)\n return;\n var index = _this.getTargetIndex(e);\n if (index === -1)\n return;\n if (isTouch) {\n _this.addTouchEvents(e);\n }\n else {\n _this.addMouseEvents(e);\n }\n _this.setState({\n draggedThumbIndex: index,\n thumbZIndexes: _this.state.thumbZIndexes.map(function (t, i) {\n if (i === index) {\n return Math.max.apply(Math, _this.state.thumbZIndexes);\n }\n return t <= _this.state.thumbZIndexes[index] ? t : t - 1;\n })\n });\n };\n _this.onMouseMove = function (e) {\n e.preventDefault();\n _this.onMove(e.clientX, e.clientY);\n };\n _this.onTouchMove = function (e) {\n e.preventDefault();\n _this.onMove(e.touches[0].clientX, e.touches[0].clientY);\n };\n _this.onKeyDown = function (e) {\n var _a = _this.props, values = _a.values, onChange = _a.onChange, step = _a.step, rtl = _a.rtl, direction = _a.direction;\n var isChanged = _this.state.isChanged;\n var index = _this.getTargetIndex(e.nativeEvent);\n var inverter = rtl || direction === types_1.Direction.Left || direction === types_1.Direction.Down\n ? -1\n : 1;\n if (index === -1)\n return;\n if (INCREASE_KEYS.includes(e.key)) {\n e.preventDefault();\n _this.setState({\n draggedThumbIndex: index,\n isChanged: true\n });\n onChange((0, utils_1.replaceAt)(values, index, _this.normalizeValue(values[index] + inverter * (e.key === 'PageUp' ? step * 10 : step), index)));\n }\n else if (DECREASE_KEYS.includes(e.key)) {\n e.preventDefault();\n _this.setState({\n draggedThumbIndex: index,\n isChanged: true\n });\n onChange((0, utils_1.replaceAt)(values, index, _this.normalizeValue(values[index] -\n inverter * (e.key === 'PageDown' ? step * 10 : step), index)));\n }\n else if (e.key === 'Tab') {\n _this.setState({ draggedThumbIndex: -1 }, function () {\n // If key pressed when thumb was moving, fire onFinalChange\n if (isChanged) {\n _this.fireOnFinalChange();\n }\n });\n }\n else {\n if (isChanged) {\n _this.fireOnFinalChange();\n }\n }\n };\n _this.onKeyUp = function (e) {\n var isChanged = _this.state.isChanged;\n _this.setState({\n draggedThumbIndex: -1\n }, function () {\n if (isChanged) {\n _this.fireOnFinalChange();\n }\n });\n };\n _this.onMove = function (clientX, clientY) {\n var _a = _this.state, draggedThumbIndex = _a.draggedThumbIndex, draggedTrackPos = _a.draggedTrackPos;\n var _b = _this.props, direction = _b.direction, min = _b.min, max = _b.max, onChange = _b.onChange, values = _b.values, step = _b.step, rtl = _b.rtl;\n if (draggedThumbIndex === -1 &&\n draggedTrackPos[0] === -1 &&\n draggedTrackPos[1] === -1)\n return null;\n var trackElement = _this.trackRef.current;\n // If component was closed down prematurely, A last onMove could be triggered based on requestAnimationFrame()\n if (!trackElement)\n return null;\n var trackRect = trackElement.getBoundingClientRect();\n var trackLength = (0, utils_1.isVertical)(direction)\n ? trackRect.height\n : trackRect.width;\n if (draggedTrackPos[0] !== -1 && draggedTrackPos[1] !== -1) {\n // calculate how much it moved since the last update\n var dX = clientX - draggedTrackPos[0];\n var dY = clientY - draggedTrackPos[1];\n // calculate the delta of the value\n var deltaValue = 0;\n switch (direction) {\n case types_1.Direction.Right:\n case types_1.Direction.Left:\n deltaValue = (dX / trackLength) * (max - min);\n break;\n case types_1.Direction.Down:\n case types_1.Direction.Up:\n deltaValue = (dY / trackLength) * (max - min);\n break;\n default:\n (0, utils_1.assertUnreachable)(direction);\n }\n // invert for RTL\n if (rtl) {\n deltaValue *= -1;\n }\n if (Math.abs(deltaValue) >= step / 2) {\n // adjust delta so it fits into the range\n for (var i = 0; i < _this.thumbRefs.length; i++) {\n if ((values[i] === max && Math.sign(deltaValue) === 1) ||\n (values[i] === min && Math.sign(deltaValue) === -1))\n return;\n var thumbValue = values[i] + deltaValue;\n if (thumbValue > max)\n deltaValue = max - values[i];\n else if (thumbValue < min)\n deltaValue = min - values[i];\n }\n // add the delta to each thumb\n var newValues = values.slice(0);\n for (var i = 0; i < _this.thumbRefs.length; i++) {\n newValues = (0, utils_1.replaceAt)(newValues, i, _this.normalizeValue(values[i] + deltaValue, i));\n }\n _this.setState({\n draggedTrackPos: [clientX, clientY]\n });\n onChange(newValues);\n }\n }\n else {\n var newValue = 0;\n switch (direction) {\n case types_1.Direction.Right:\n newValue =\n ((clientX - trackRect.left) / trackLength) * (max - min) + min;\n break;\n case types_1.Direction.Left:\n newValue =\n ((trackLength - (clientX - trackRect.left)) / trackLength) *\n (max - min) +\n min;\n break;\n case types_1.Direction.Down:\n newValue =\n ((clientY - trackRect.top) / trackLength) * (max - min) + min;\n break;\n case types_1.Direction.Up:\n newValue =\n ((trackLength - (clientY - trackRect.top)) / trackLength) *\n (max - min) +\n min;\n break;\n default:\n (0, utils_1.assertUnreachable)(direction);\n }\n // invert for RTL\n if (rtl) {\n newValue = max + min - newValue;\n }\n if (Math.abs(values[draggedThumbIndex] - newValue) >= step / 2) {\n onChange((0, utils_1.replaceAt)(values, draggedThumbIndex, _this.normalizeValue(newValue, draggedThumbIndex)));\n }\n }\n };\n _this.normalizeValue = function (value, index) {\n var _a = _this.props, min = _a.min, max = _a.max, step = _a.step, allowOverlap = _a.allowOverlap, values = _a.values;\n return (0, utils_1.normalizeValue)(value, index, min, max, step, allowOverlap, values);\n };\n _this.onEnd = function (e) {\n e.preventDefault();\n document.removeEventListener('mousemove', _this.schdOnMouseMove);\n document.removeEventListener('touchmove', _this.schdOnTouchMove);\n document.removeEventListener('mouseup', _this.schdOnEnd);\n document.removeEventListener('touchend', _this.schdOnEnd);\n document.removeEventListener('touchcancel', _this.schdOnEnd);\n if (_this.state.draggedThumbIndex === -1 &&\n _this.state.draggedTrackPos[0] === -1 &&\n _this.state.draggedTrackPos[1] === -1)\n return null;\n _this.setState({ draggedThumbIndex: -1, draggedTrackPos: [-1, -1] }, function () {\n _this.fireOnFinalChange();\n });\n };\n _this.fireOnFinalChange = function () {\n _this.setState({ isChanged: false });\n var _a = _this.props, onFinalChange = _a.onFinalChange, values = _a.values;\n if (onFinalChange) {\n onFinalChange(values);\n }\n };\n _this.updateMarkRefs = function (props) {\n if (!props.renderMark) { // don't create mark refs unless we are rendering marks\n _this.numOfMarks = undefined;\n _this.markRefs = undefined;\n return;\n }\n _this.numOfMarks = (props.max - props.min) / _this.props.step;\n _this.markRefs = [];\n for (var i = 0; i < _this.numOfMarks + 1; i++) {\n _this.markRefs[i] = React.createRef();\n }\n };\n _this.calculateMarkOffsets = function () {\n if (!_this.props.renderMark ||\n !_this.trackRef ||\n !_this.numOfMarks ||\n !_this.markRefs ||\n _this.trackRef.current === null)\n return;\n var elStyles = window.getComputedStyle(_this.trackRef.current);\n var trackWidth = parseInt(elStyles.width, 10);\n var trackHeight = parseInt(elStyles.height, 10);\n var paddingLeft = parseInt(elStyles.paddingLeft, 10);\n var paddingTop = parseInt(elStyles.paddingTop, 10);\n var res = [];\n for (var i = 0; i < _this.numOfMarks + 1; i++) {\n var markHeight = 9999;\n var markWidth = 9999;\n if (_this.markRefs[i].current) {\n var markRect = _this.markRefs[i].current.getBoundingClientRect();\n markHeight = markRect.height;\n markWidth = markRect.width;\n }\n if (_this.props.direction === types_1.Direction.Left ||\n _this.props.direction === types_1.Direction.Right) {\n res.push([\n Math.round((trackWidth / _this.numOfMarks) * i + paddingLeft - markWidth / 2),\n -Math.round((markHeight - trackHeight) / 2)\n ]);\n }\n else {\n res.push([\n Math.round((trackHeight / _this.numOfMarks) * i + paddingTop - markHeight / 2),\n -Math.round((markWidth - trackWidth) / 2)\n ]);\n }\n }\n _this.setState({ markOffsets: res });\n };\n if (props.step === 0) {\n throw new Error('\"step\" property should be a positive number');\n }\n _this.schdOnMouseMove = (0, utils_1.schd)(_this.onMouseMove);\n _this.schdOnTouchMove = (0, utils_1.schd)(_this.onTouchMove);\n _this.schdOnEnd = (0, utils_1.schd)(_this.onEnd);\n _this.thumbRefs = props.values.map(function () { return React.createRef(); });\n _this.updateMarkRefs(props);\n return _this;\n }\n Range.prototype.componentDidMount = function () {\n var _this = this;\n var _a = this.props, values = _a.values, min = _a.min, step = _a.step;\n this.resizeObserver = window.ResizeObserver\n ? new window.ResizeObserver(this.onResize)\n : {\n observe: function () { return window.addEventListener('resize', _this.onResize); },\n unobserve: function () { return window.removeEventListener('resize', _this.onResize); }\n };\n document.addEventListener('touchstart', this.onMouseOrTouchStart, {\n passive: false\n });\n document.addEventListener('mousedown', this.onMouseOrTouchStart, {\n passive: false\n });\n !this.props.allowOverlap && (0, utils_1.checkInitialOverlap)(this.props.values);\n this.props.values.forEach(function (value) {\n return (0, utils_1.checkBoundaries)(value, _this.props.min, _this.props.max);\n });\n this.resizeObserver.observe(this.trackRef.current);\n (0, utils_1.translateThumbs)(this.getThumbs(), this.getOffsets(), this.props.rtl);\n this.calculateMarkOffsets();\n values.forEach(function (value) {\n if (!(0, utils_1.isStepDivisible)(min, value, step)) {\n console.warn('The `values` property is in conflict with the current `step`, `min`, and `max` properties. Please provide values that are accessible using the min, max, and step values.');\n }\n });\n };\n Range.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _a = this.props, max = _a.max, min = _a.min, step = _a.step, values = _a.values, rtl = _a.rtl;\n if (prevProps.max !== max ||\n prevProps.min !== min ||\n prevProps.step !== step) {\n this.updateMarkRefs(this.props);\n }\n (0, utils_1.translateThumbs)(this.getThumbs(), this.getOffsets(), rtl);\n // ensure offsets are calculated when the refs for the marks have been created\n // and those refs have been mounted to the dom\n // on the state update in calculateOffsets with new markOffsets are calculated\n if (prevProps.max !== max ||\n prevProps.min !== min ||\n prevProps.step !== step ||\n prevState.markOffsets.length !== this.state.markOffsets.length) {\n this.calculateMarkOffsets();\n values.forEach(function (value) {\n if (!(0, utils_1.isStepDivisible)(min, value, step)) {\n console.warn('The `values` property is in conflict with the current `step`, `min`, and `max` properties. Please provide values that are accessible using the min, max, and step values.');\n }\n });\n }\n };\n Range.prototype.componentWillUnmount = function () {\n var options = {\n passive: false\n };\n document.removeEventListener('mousedown', this.onMouseOrTouchStart, options);\n // These need to be removed!!\n document.removeEventListener('mousemove', this.schdOnMouseMove);\n document.removeEventListener('touchmove', this.schdOnTouchMove);\n document.removeEventListener('touchstart', this.onMouseOrTouchStart);\n document.removeEventListener('mouseup', this.schdOnEnd);\n document.removeEventListener('touchend', this.schdOnEnd);\n this.resizeObserver.unobserve(this.trackRef.current);\n };\n Range.prototype.render = function () {\n var _this = this;\n var _a = this.props, renderTrack = _a.renderTrack, renderThumb = _a.renderThumb, _b = _a.renderMark, renderMark = _b === void 0 ? function () { return null; } : _b, values = _a.values, min = _a.min, max = _a.max, allowOverlap = _a.allowOverlap, disabled = _a.disabled;\n var _c = this.state, draggedThumbIndex = _c.draggedThumbIndex, thumbZIndexes = _c.thumbZIndexes, markOffsets = _c.markOffsets;\n return renderTrack({\n props: {\n style: {\n // creates stacking context that prevents z-index applied to thumbs\n // interfere with other elements\n transform: 'scale(1)',\n cursor: draggedThumbIndex > -1\n ? 'grabbing'\n : this.props.draggableTrack\n ? (0, utils_1.isVertical)(this.props.direction)\n ? 'ns-resize'\n : 'ew-resize'\n : values.length === 1 && !disabled\n ? 'pointer'\n : 'inherit'\n },\n onMouseDown: disabled ? utils_1.voidFn : this.onMouseDownTrack,\n onTouchStart: disabled ? utils_1.voidFn : this.onTouchStartTrack,\n ref: this.trackRef\n },\n isDragged: this.state.draggedThumbIndex > -1,\n disabled: disabled,\n children: __spreadArray(__spreadArray([], markOffsets.map(function (offset, index, arr) {\n return renderMark({\n props: {\n style: _this.props.direction === types_1.Direction.Left ||\n _this.props.direction === types_1.Direction.Right\n ? {\n position: 'absolute',\n left: \"\".concat(offset[0], \"px\"),\n marginTop: \"\".concat(offset[1], \"px\")\n }\n : {\n position: 'absolute',\n top: \"\".concat(offset[0], \"px\"),\n marginLeft: \"\".concat(offset[1], \"px\")\n },\n key: \"mark\".concat(index),\n ref: _this.markRefs[index]\n },\n index: index\n });\n }), true), values.map(function (value, index) {\n var isDragged = _this.state.draggedThumbIndex === index;\n return renderThumb({\n index: index,\n value: value,\n isDragged: isDragged,\n props: {\n style: {\n position: 'absolute',\n zIndex: thumbZIndexes[index],\n cursor: disabled ? 'inherit' : isDragged ? 'grabbing' : 'grab',\n userSelect: 'none',\n touchAction: 'none',\n WebkitUserSelect: 'none',\n MozUserSelect: 'none',\n msUserSelect: 'none'\n },\n key: index,\n tabIndex: disabled ? undefined : 0,\n 'aria-valuemax': allowOverlap ? max : values[index + 1] || max,\n 'aria-valuemin': allowOverlap ? min : values[index - 1] || min,\n 'aria-valuenow': value,\n draggable: false,\n ref: _this.thumbRefs[index],\n role: 'slider',\n onKeyDown: disabled ? utils_1.voidFn : _this.onKeyDown,\n onKeyUp: disabled ? utils_1.voidFn : _this.onKeyUp\n }\n });\n }), true)\n });\n };\n Range.defaultProps = {\n step: 1,\n direction: types_1.Direction.Right,\n rtl: false,\n disabled: false,\n allowOverlap: false,\n draggableTrack: false,\n min: 0,\n max: 100\n };\n return Range;\n}(React.Component));\nexports.default = Range;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkValuesAgainstBoundaries = exports.relativeValue = exports.useThumbOverlap = exports.Direction = exports.getTrackBackground = exports.Range = void 0;\nvar Range_1 = __importDefault(require(\"./Range\"));\nexports.Range = Range_1.default;\nvar utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"getTrackBackground\", { enumerable: true, get: function () { return utils_1.getTrackBackground; } });\nObject.defineProperty(exports, \"useThumbOverlap\", { enumerable: true, get: function () { return utils_1.useThumbOverlap; } });\nObject.defineProperty(exports, \"relativeValue\", { enumerable: true, get: function () { return utils_1.relativeValue; } });\nObject.defineProperty(exports, \"checkValuesAgainstBoundaries\", { enumerable: true, get: function () { return utils_1.checkValuesAgainstBoundaries; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"Direction\", { enumerable: true, get: function () { return types_1.Direction; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Direction = void 0;\nvar Direction;\n(function (Direction) {\n Direction[\"Right\"] = \"to right\";\n Direction[\"Left\"] = \"to left\";\n Direction[\"Down\"] = \"to bottom\";\n Direction[\"Up\"] = \"to top\";\n})(Direction = exports.Direction || (exports.Direction = {}));\n","\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useThumbOverlap = exports.assertUnreachable = exports.voidFn = exports.getTrackBackground = exports.replaceAt = exports.schd = exports.translate = exports.getClosestThumbIndex = exports.translateThumbs = exports.getPaddingAndBorder = exports.getMargin = exports.checkInitialOverlap = exports.checkValuesAgainstBoundaries = exports.checkBoundaries = exports.isVertical = exports.relativeValue = exports.normalizeValue = exports.isStepDivisible = exports.isTouchEvent = exports.getStepDecimals = void 0;\nvar react_1 = require(\"react\");\nvar types_1 = require(\"./types\");\nvar getStepDecimals = function (step) {\n var decimals = step.toString().split('.')[1];\n return decimals ? decimals.length : 0;\n};\nexports.getStepDecimals = getStepDecimals;\nfunction isTouchEvent(event) {\n return ((event.touches && event.touches.length) ||\n (event.changedTouches && event.changedTouches.length));\n}\nexports.isTouchEvent = isTouchEvent;\nfunction isStepDivisible(min, max, step) {\n var res = (max - min) / step;\n var precision = 8;\n var roundedRes = Number(res.toFixed(precision));\n return parseInt(roundedRes.toString(), 10) === roundedRes;\n}\nexports.isStepDivisible = isStepDivisible;\nfunction normalizeValue(value, index, min, max, step, allowOverlap, values) {\n var BIG_NUM = 10e10;\n value = Math.round(value * BIG_NUM) / BIG_NUM;\n if (!allowOverlap) {\n var prev = values[index - 1];\n var next = values[index + 1];\n if (prev && prev > value)\n return prev;\n if (next && next < value)\n return next;\n }\n if (value > max)\n return max;\n if (value < min)\n return min;\n // `remainder` is a difference between the given value and a full step value\n // that is closest lower to the given value and is in the range between the min value\n // and the given value\n var remainder = Math.floor(value * BIG_NUM - min * BIG_NUM) %\n Math.floor(step * BIG_NUM);\n var closestLowerNum = Math.floor(value * BIG_NUM - Math.abs(remainder));\n var rounded = remainder === 0 ? value : closestLowerNum / BIG_NUM;\n // Values with a remainder `< step/2` are rounded to the closest lower value\n // while values with a remainder `= > step/2` are rounded to the closest bigger value\n var res = Math.abs(remainder / BIG_NUM) < step / 2\n ? rounded\n : rounded + step;\n var decimalPlaces = (0, exports.getStepDecimals)(step);\n return parseFloat(res.toFixed(decimalPlaces));\n}\nexports.normalizeValue = normalizeValue;\nfunction relativeValue(value, min, max) {\n return (value - min) / (max - min);\n}\nexports.relativeValue = relativeValue;\nfunction isVertical(direction) {\n return direction === types_1.Direction.Up || direction === types_1.Direction.Down;\n}\nexports.isVertical = isVertical;\nfunction checkBoundaries(value, min, max) {\n if (min >= max) {\n throw new RangeError(\"min (\".concat(min, \") is equal/bigger than max (\").concat(max, \")\"));\n }\n if (value < min) {\n throw new RangeError(\"value (\".concat(value, \") is smaller than min (\").concat(min, \")\"));\n }\n if (value > max) {\n throw new RangeError(\"value (\".concat(value, \") is bigger than max (\").concat(max, \")\"));\n }\n}\nexports.checkBoundaries = checkBoundaries;\nfunction checkValuesAgainstBoundaries(value, min, max) {\n if (value < min) {\n // set selectedValue to min\n return min;\n }\n if (value > max) {\n // set selectedValue to max\n return max;\n }\n else {\n return value;\n }\n}\nexports.checkValuesAgainstBoundaries = checkValuesAgainstBoundaries;\nfunction checkInitialOverlap(values) {\n if (values.length < 2)\n return;\n if (!values.slice(1).every(function (item, i) { return values[i] <= item; })) {\n throw new RangeError(\"values={[\".concat(values, \"]} needs to be sorted when allowOverlap={false}\"));\n }\n}\nexports.checkInitialOverlap = checkInitialOverlap;\nfunction getMargin(element) {\n var style = window.getComputedStyle(element);\n return {\n top: parseInt(style['margin-top'], 10),\n bottom: parseInt(style['margin-bottom'], 10),\n left: parseInt(style['margin-left'], 10),\n right: parseInt(style['margin-right'], 10)\n };\n}\nexports.getMargin = getMargin;\nfunction getPaddingAndBorder(element) {\n var style = window.getComputedStyle(element);\n return {\n top: parseInt(style['padding-top'], 10) + parseInt(style['border-top-width'], 10),\n bottom: parseInt(style['padding-bottom'], 10) + parseInt(style['border-bottom-width'], 10),\n left: parseInt(style['padding-left'], 10) + parseInt(style['border-left-width'], 10),\n right: parseInt(style['padding-right'], 10) + parseInt(style['border-right-width'], 10),\n };\n}\nexports.getPaddingAndBorder = getPaddingAndBorder;\nfunction translateThumbs(elements, offsets, rtl) {\n var inverter = rtl ? -1 : 1;\n elements.forEach(function (element, index) {\n return translate(element, inverter * offsets[index].x, offsets[index].y);\n });\n}\nexports.translateThumbs = translateThumbs;\n/**\n * Util function for calculating the index of the thumb that is closes to a given position\n * @param thumbs - array of Thumb element to calculate the distance from\n * @param clientX - target x position (mouse/touch)\n * @param clientY - target y position (mouse/touch)\n * @param direction - the direction of the track\n */\nfunction getClosestThumbIndex(thumbs, clientX, clientY, direction) {\n var thumbIndex = 0;\n var minThumbDistance = getThumbDistance(thumbs[0], clientX, clientY, direction);\n for (var i = 1; i < thumbs.length; i++) {\n var thumbDistance = getThumbDistance(thumbs[i], clientX, clientY, direction);\n if (thumbDistance < minThumbDistance) {\n minThumbDistance = thumbDistance;\n thumbIndex = i;\n }\n }\n return thumbIndex;\n}\nexports.getClosestThumbIndex = getClosestThumbIndex;\nfunction translate(element, x, y) {\n element.style.transform = \"translate(\".concat(x, \"px, \").concat(y, \"px)\");\n}\nexports.translate = translate;\n// adapted from https://github.com/alexreardon/raf-schd\nvar schd = function (fn) {\n var lastArgs = [];\n var frameId = null;\n var wrapperFn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n if (frameId) {\n return;\n }\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n return wrapperFn;\n};\nexports.schd = schd;\nfunction replaceAt(values, index, value) {\n var ret = values.slice(0);\n ret[index] = value;\n return ret;\n}\nexports.replaceAt = replaceAt;\nfunction getTrackBackground(_a) {\n var values = _a.values, colors = _a.colors, min = _a.min, max = _a.max, _b = _a.direction, direction = _b === void 0 ? types_1.Direction.Right : _b, _c = _a.rtl, rtl = _c === void 0 ? false : _c;\n if (rtl && direction === types_1.Direction.Right) {\n direction = types_1.Direction.Left;\n }\n else if (rtl && types_1.Direction.Left) {\n direction = types_1.Direction.Right;\n }\n // sort values ascending\n var progress = values.slice(0).sort(function (a, b) { return a - b; }).map(function (value) { return ((value - min) / (max - min)) * 100; });\n var middle = progress.reduce(function (acc, point, index) {\n return \"\".concat(acc, \", \").concat(colors[index], \" \").concat(point, \"%, \").concat(colors[index + 1], \" \").concat(point, \"%\");\n }, '');\n return \"linear-gradient(\".concat(direction, \", \").concat(colors[0], \" 0%\").concat(middle, \", \").concat(colors[colors.length - 1], \" 100%)\");\n}\nexports.getTrackBackground = getTrackBackground;\nfunction voidFn() { }\nexports.voidFn = voidFn;\nfunction assertUnreachable(x) {\n throw new Error(\"Didn't expect to get here\");\n}\nexports.assertUnreachable = assertUnreachable;\n/**\n * Util function for grabbing the true largest width of a thumb\n * including the label\n * @param thumbEl - Thumb element to grab the largest width from\n * @param value - Thumb value, not label value\n * @param separator - Label separator value\n */\nvar getThumbWidth = function (thumbEl, value, separator, decimalPlaces, valueToLabel) {\n if (valueToLabel === void 0) { valueToLabel = function (value) { return value; }; }\n var width = Math.ceil(__spreadArray([thumbEl], Array.from(thumbEl.children), true).reduce(function (width, el) {\n var elWidth = Math.ceil(el.getBoundingClientRect().width);\n /**\n * If a label contains a merged label value, it won't return the true\n * label width for that Thumb. Clone the label and change the value\n * to that individual Thumb value in order to grab the true width.\n */\n if (el.innerText &&\n el.innerText.includes(separator) &&\n el.childElementCount === 0) {\n var elClone = el.cloneNode(true);\n elClone.innerHTML = valueToLabel(value.toFixed(decimalPlaces));\n elClone.style.visibility = 'hidden';\n document.body.appendChild(elClone);\n elWidth = Math.ceil(elClone.getBoundingClientRect().width);\n document.body.removeChild(elClone);\n }\n return elWidth > width ? elWidth : width;\n }, thumbEl.getBoundingClientRect().width));\n return width;\n};\n/**\n * Bulk of logic for thumb overlaps\n * Consider a scenario with 5 thumbs;\n * Thumb 1 overlaps with thumb 0 and thumb 2\n * Thumb 2 overlaps with thumb 3\n * We need an array that contains [0, 1, 2, 3]\n * The function needs to return the directly overlapping thumbs\n * and all thumbs overlapping linked to those and so on\n * @param index - Thumb index calculating overlaps for\n * @param offsets - Current Array of Thumb offsets for Range\n * @param thumbs - Array of Thumb elements\n * @param values - Array of Thumb values\n * @param separator - String separator for merged label values\n * @returns overlaps - Array of all overlapping thumbs from the index\n */\nvar getOverlaps = function (index, offsets, thumbs, values, separator, decimalPlaces, valueToLabel) {\n if (valueToLabel === void 0) { valueToLabel = function (value) { return value; }; }\n var overlaps = [];\n /**\n * Recursive function for building the overlaps Array\n * If an overlap is found, find the overlaps for that overlap\n * @param thumbIndex current Thumb index to find overlaps from\n */\n var buildOverlaps = function (thumbIndex) {\n var thumbXWidth = getThumbWidth(thumbs[thumbIndex], values[thumbIndex], separator, decimalPlaces, valueToLabel);\n var thumbX = offsets[thumbIndex].x;\n /**\n * Iterate through the Thumb offsets, if there is a match\n * add the thumbIndex and siblingIndex to the overlaps Array\n *\n * Then build overlaps from the overlapping siblingIndex\n */\n offsets.forEach(function (_a, siblingIndex) {\n var siblingX = _a.x;\n var siblingWidth = getThumbWidth(thumbs[siblingIndex], values[siblingIndex], separator, decimalPlaces, valueToLabel);\n if (thumbIndex !== siblingIndex &&\n ((thumbX >= siblingX && thumbX <= siblingX + siblingWidth) ||\n (thumbX + thumbXWidth >= siblingX &&\n thumbX + thumbXWidth <= siblingX + siblingWidth))) {\n if (!overlaps.includes(siblingIndex)) {\n overlaps.push(thumbIndex);\n overlaps.push(siblingIndex);\n overlaps = __spreadArray(__spreadArray([], overlaps, true), [thumbIndex, siblingIndex], false);\n buildOverlaps(siblingIndex);\n }\n }\n });\n };\n buildOverlaps(index);\n // Sort and remove duplicates from the built overlaps\n return Array.from(new Set(overlaps.sort()));\n};\n/**\n * A custom React Hook for calculating whether a thumb overlaps\n * another and whether labels could/should merge.\n * @param rangeRef - React ref value of Range component\n * @param values - current Range values Array\n * @param index - thumb index\n * @param step - step value, used to calculate the number of decimal places\n * @param separator - string to separate thumb values\n * @returns label value + styling for thumb label\n */\nvar useThumbOverlap = function (rangeRef, values, index, step, separator, valueToLabel) {\n if (step === void 0) { step = 0.1; }\n if (separator === void 0) { separator = ' - '; }\n if (valueToLabel === void 0) { valueToLabel = function (value) { return value; }; }\n var decimalPlaces = (0, exports.getStepDecimals)(step);\n // Create initial label style and value. Label value defaults to thumb value\n var _a = (0, react_1.useState)({}), labelStyle = _a[0], setLabelStyle = _a[1];\n var _b = (0, react_1.useState)(valueToLabel(values[index].toFixed(decimalPlaces))), labelValue = _b[0], setLabelValue = _b[1];\n // When the rangeRef or values change, update the Thumb label values and styling\n (0, react_1.useEffect)(function () {\n if (rangeRef) {\n var thumbs = rangeRef.getThumbs();\n if (thumbs.length < 1)\n return;\n var newStyle = {};\n var offsets_1 = rangeRef.getOffsets();\n /**\n * Get any overlaps for the given Thumb index. This must return all linked\n * Thumbs. So if there are 4 Thumbs and Thumbs 2, 3 and 4 overlap. If we are\n * getting the overlaps for Thumb 1 and it overlaps only Thumb 2, we must get\n * 2, 3 and 4 also.\n */\n var overlaps = getOverlaps(index, offsets_1, thumbs, values, separator, decimalPlaces, valueToLabel);\n // Set a default label value of the Thumb value\n var labelValue_1 = valueToLabel(values[index].toFixed(decimalPlaces));\n /**\n * If there are overlaps for the Thumb, we need to calculate the correct\n * Label value along with the relevant styling. We only want to show a Label\n * for the left most Thumb in an overlapping set.\n * All other Thumbs will be set to display: none.\n */\n if (overlaps.length) {\n /**\n * Get an Array of the offsets for the overlapping Thumbs\n * This is so we can determine if the Thumb we are looking at\n * is the left most thumb in an overlapping set\n */\n var offsetsX = overlaps.reduce(function (a, c, i, s) {\n return a.length ? __spreadArray(__spreadArray([], a, true), [offsets_1[s[i]].x], false) : [offsets_1[s[i]].x];\n }, []);\n /**\n * If our Thumb is the left most Thumb, we can build a Label value\n * and set the style for that Label\n */\n if (Math.min.apply(Math, offsetsX) === offsets_1[index].x) {\n /**\n * First calculate the Label value. To do this,\n * grab all the values for the Thumbs in our overlaps.\n * Then convert that to a Set and sort it whilst removing duplicates.\n */\n var labelValues_1 = [];\n overlaps.forEach(function (thumb) {\n labelValues_1.push(values[thumb].toFixed(decimalPlaces));\n });\n /**\n * Update the labelValue with the resulting Array\n * joined by our defined separator\n */\n labelValue_1 = Array.from(new Set(labelValues_1.sort(function (a, b) { return parseFloat(a) - parseFloat(b); })))\n .map(valueToLabel)\n .join(separator);\n /**\n * Lastly, build the label styling. The label styling will\n * position the label and apply a transform so that it's centered.\n * We want the center point between the left edge of the left most Thumb\n * and the right edge of the right most Thumb.\n */\n var first = Math.min.apply(Math, offsetsX);\n var last = Math.max.apply(Math, offsetsX);\n var lastWidth = thumbs[overlaps[offsetsX.indexOf(last)]].getBoundingClientRect().width;\n newStyle.left = \"\".concat(Math.abs(first - (last + lastWidth)) / 2, \"px\");\n newStyle.transform = 'translate(-50%, 0)';\n }\n else {\n // If the Thumb isn't the left most Thumb, hide the Label!\n newStyle.visibility = 'hidden';\n }\n }\n // Update the label value and style\n setLabelValue(labelValue_1);\n setLabelStyle(newStyle);\n }\n }, [rangeRef, values]);\n return [labelValue, labelStyle];\n};\nexports.useThumbOverlap = useThumbOverlap;\n/**\n * Util function for calculating the distance of the center of a thumb\n * form a given mouse/touch target's position\n * @param thumbEl - Thumb element to calculate the distance from\n * @param clientX - target x position (mouse/touch)\n * @param clientY - target y position (mouse/touch)\n * @param direction - the direction of the track\n */\nfunction getThumbDistance(thumbEl, clientX, clientY, direction) {\n var _a = thumbEl.getBoundingClientRect(), left = _a.left, top = _a.top, width = _a.width, height = _a.height;\n return isVertical(direction) ? Math.abs(clientY - (top + height / 2)) : Math.abs(clientX - (left + width / 2));\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n *\n * Author: Gianluca Guarini\n * Contact: gianluca.guarini@gmail.com\n * Website: http://www.gianlucaguarini.com/\n * Twitter: @gianlucaguarini\n *\n * Copyright (c) Gianluca Guarini\n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n **/\n/* global jQuery */\n(function(doc, win) {\n if (typeof doc.createEvent !== 'function') return false // no tap events here\n // helpers\n var pointerEvent = function(type) {\n var lo = type.toLowerCase(),\n ms = 'MS' + type\n return navigator.msPointerEnabled ? ms : window.PointerEvent ? lo : false\n },\n touchEvent = function(name) {\n return 'on' + name in window ? name : false\n },\n defaults = {\n useJquery: !win.IGNORE_JQUERY && typeof jQuery !== 'undefined',\n swipeThreshold: win.SWIPE_THRESHOLD || 100,\n tapThreshold: win.TAP_THRESHOLD || 150, // range of time where a tap event could be detected\n dbltapThreshold: win.DBL_TAP_THRESHOLD || 200, // delay needed to detect a double tap\n longtapThreshold: win.LONG_TAP_THRESHOLD || 1000, // delay needed to detect a long tap\n tapPrecision: win.TAP_PRECISION / 2 || 60 / 2, // touch events boundaries ( 60px by default )\n justTouchEvents: win.JUST_ON_TOUCH_DEVICES\n },\n // was initially triggered a \"touchstart\" event?\n wasTouch = false,\n touchevents = {\n touchstart: touchEvent('touchstart') || pointerEvent('PointerDown'),\n touchend: touchEvent('touchend') || pointerEvent('PointerUp'),\n touchmove: touchEvent('touchmove') || pointerEvent('PointerMove')\n },\n isTheSameFingerId = function(e) {\n return !e.pointerId || typeof pointerId === 'undefined' || e.pointerId === pointerId\n },\n setListener = function(elm, events, callback) {\n var eventsArray = events.split(' '),\n i = eventsArray.length\n\n while (i--) {\n elm.addEventListener(eventsArray[i], callback, false)\n }\n },\n getPointerEvent = function(event) {\n var hasTargetTouches = Boolean(event.targetTouches && event.targetTouches.length)\n switch (true) {\n case Boolean(event.target.touches):\n return event.target.touches[0]\n case hasTargetTouches && typeof event.targetTouches[0].pageX !== 'undefined':\n return event.targetTouches[0]\n case hasTargetTouches && Boolean(event.targetTouches[0].touches):\n return event.targetTouches[0].touches[0]\n default:\n return event\n }\n },\n isMultipleTouches = function(event) {\n return (event.targetTouches || event.target.touches || []).length > 1\n },\n getTimestamp = function() {\n return new Date().getTime()\n },\n sendEvent = function(elm, eventName, originalEvent, data) {\n var customEvent = doc.createEvent('Event')\n customEvent.originalEvent = originalEvent\n data = data || {}\n data.x = currX\n data.y = currY\n\n // jquery\n if (defaults.useJquery) {\n customEvent = jQuery.Event(eventName, {originalEvent: originalEvent})\n jQuery(elm).trigger(customEvent, data)\n }\n\n // addEventListener\n if (customEvent.initEvent) {\n for (var key in data) {\n customEvent[key] = data[key]\n }\n\n customEvent.initEvent(eventName, true, true)\n elm.dispatchEvent(customEvent)\n }\n\n // detect all the inline events\n // also on the parent nodes\n while (elm) {\n // inline\n if (elm['on' + eventName])\n elm['on' + eventName](customEvent)\n elm = elm.parentNode\n }\n\n },\n\n onTouchStart = function(e) {\n /**\n * Skip all the mouse events\n * events order:\n * Chrome:\n * touchstart\n * touchmove\n * touchend\n * mousedown\n * mousemove\n * mouseup <- this must come always after a \"touchstart\"\n *\n * Safari\n * touchstart\n * mousedown\n * touchmove\n * mousemove\n * touchend\n * mouseup <- this must come always after a \"touchstart\"\n */\n\n if (!isTheSameFingerId(e) || isMultipleTouches(e)) return\n\n pointerId = e.pointerId\n\n // it looks like it was a touch event!\n if (e.type !== 'mousedown')\n wasTouch = true\n\n // skip this event we don't need to track it now\n if (e.type === 'mousedown' && wasTouch) return\n\n var pointer = getPointerEvent(e)\n\n // caching the current x\n cachedX = currX = pointer.pageX\n // caching the current y\n cachedY = currY = pointer.pageY\n\n longtapTimer = setTimeout(function() {\n sendEvent(e.target, 'longtap', e)\n target = e.target\n }, defaults.longtapThreshold)\n\n // we will use these variables on the touchend events\n timestamp = getTimestamp()\n\n tapNum++\n\n },\n onTouchEnd = function(e) {\n if (!isTheSameFingerId(e) || isMultipleTouches(e)) return\n\n pointerId = undefined\n\n // skip the mouse events if previously a touch event was dispatched\n // and reset the touch flag\n if (e.type === 'mouseup' && wasTouch) {\n wasTouch = false\n return\n }\n\n var eventsArr = [],\n now = getTimestamp(),\n deltaY = cachedY - currY,\n deltaX = cachedX - currX\n\n // clear the previous timer if it was set\n clearTimeout(dblTapTimer)\n // kill the long tap timer\n clearTimeout(longtapTimer)\n\n if (deltaX <= -defaults.swipeThreshold)\n eventsArr.push('swiperight')\n\n if (deltaX >= defaults.swipeThreshold)\n eventsArr.push('swipeleft')\n\n if (deltaY <= -defaults.swipeThreshold)\n eventsArr.push('swipedown')\n\n if (deltaY >= defaults.swipeThreshold)\n eventsArr.push('swipeup')\n\n if (eventsArr.length) {\n for (var i = 0; i < eventsArr.length; i++) {\n var eventName = eventsArr[i]\n sendEvent(e.target, eventName, e, {\n distance: {\n x: Math.abs(deltaX),\n y: Math.abs(deltaY)\n }\n })\n }\n // reset the tap counter\n tapNum = 0\n } else {\n\n if (\n cachedX >= currX - defaults.tapPrecision &&\n cachedX <= currX + defaults.tapPrecision &&\n cachedY >= currY - defaults.tapPrecision &&\n cachedY <= currY + defaults.tapPrecision\n ) {\n if (timestamp + defaults.tapThreshold - now >= 0)\n {\n // Here you get the Tap event\n sendEvent(e.target, tapNum >= 2 && target === e.target ? 'dbltap' : 'tap', e)\n target= e.target\n }\n }\n\n // reset the tap counter\n dblTapTimer = setTimeout(function() {\n tapNum = 0\n }, defaults.dbltapThreshold)\n\n }\n },\n onTouchMove = function(e) {\n if (!isTheSameFingerId(e)) return\n // skip the mouse move events if the touch events were previously detected\n if (e.type === 'mousemove' && wasTouch) return\n\n var pointer = getPointerEvent(e)\n currX = pointer.pageX\n currY = pointer.pageY\n },\n tapNum = 0,\n pointerId, currX, currY, cachedX, cachedY, timestamp, target, dblTapTimer, longtapTimer\n\n //setting the events listeners\n // we need to debounce the callbacks because some devices multiple events are triggered at same time\n setListener(doc, touchevents.touchstart + (defaults.justTouchEvents ? '' : ' mousedown'), onTouchStart)\n setListener(doc, touchevents.touchend + (defaults.justTouchEvents ? '' : ' mouseup'), onTouchEnd)\n setListener(doc, touchevents.touchmove + (defaults.justTouchEvents ? '' : ' mousemove'), onTouchMove)\n\n // Configure the tocca default options at any time\n win.tocca = function(options) {\n for (var opt in options) {\n defaults[opt] = options[opt]\n }\n\n return defaults\n }\n})(document, window)\n","module.exports = window[\"\"];","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nmodule.exports = function (O, C, index, value) {\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? value : O[k];\n return A;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = global.structuredClone;\nvar $ArrayBuffer = global.ArrayBuffer;\nvar $MessageChannel = global.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n detach = function (transferable) {\n structuredClone(transferable, { transfer: [transferable] });\n };\n} else if ($ArrayBuffer) try {\n if (!$MessageChannel) {\n WorkerThreads = tryNodeRequire('worker_threads');\n if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n }\n\n if ($MessageChannel) {\n channel = new $MessageChannel();\n buffer = new $ArrayBuffer(2);\n\n $detach = function (transferable) {\n channel.port1.postMessage(null, [transferable]);\n };\n\n if (buffer.byteLength === 2) {\n $detach(buffer);\n if (buffer.byteLength === 0) detach = $detach;\n }\n }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nmodule.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","'use strict';\n/* global Bun -- Bun case */\nmodule.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string';\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = new Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = global[TARGET] && global[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-map -- safe\n Map: Map,\n set: uncurryThis(MapPrototype.set),\n get: uncurryThis(MapPrototype.get),\n has: uncurryThis(MapPrototype.has),\n remove: uncurryThis(MapPrototype['delete']),\n proto: MapPrototype\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENGINE_IS_BUN = require('../internals/engine-is-bun');\nvar USER_AGENT = require('../internals/engine-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = global.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () {\n var version = global.Bun.version.split('.');\n return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n var firstParamIndex = hasTimeArg ? 2 : 1;\n return WRAP ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n var fn = isCallable(handler) ? handler : Function(handler);\n var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n var callback = boundArgs ? function () {\n apply(fn, this, params);\n } : fn;\n return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n } : scheduler;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.37.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.37.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/engine-v8-version');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar structuredClone = global.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n try {\n // eslint-disable-next-line no-new-func -- safe\n if (IS_NODE) return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar arrayWith = require('../internals/array-with');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar PROPER_ORDER = !!function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualValue = isBigIntArray(O) ? toBigInt(value) : +value;\n return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue);\n} }['with'], !PROPER_ORDER);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar clearImmediate = require('../internals/task').clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, {\n clearImmediate: clearImmediate\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.clear-immediate');\nrequire('../modules/web.set-immediate');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setTask = require('../internals/task').set;\nvar schedulersFix = require('../internals/schedulers-fix');\n\n// https://github.com/oven-sh/bun/issues/1633\nvar setImmediate = global.setImmediate ? schedulersFix(setTask, false) : setTask;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, {\n setImmediate: setImmediate\n});\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar MapHelpers = require('../internals/map-helpers');\nvar SetHelpers = require('../internals/set-helpers');\nvar setIterate = require('../internals/set-iterate');\nvar detachTransferable = require('../internals/detach-transferable');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar Object = global.Object;\nvar Array = global.Array;\nvar Date = global.Date;\nvar Error = global.Error;\nvar TypeError = global.TypeError;\nvar PerformanceMark = global.PerformanceMark;\nvar DOMException = getBuiltIn('DOMException');\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapGet = MapHelpers.get;\nvar mapSet = MapHelpers.set;\nvar Set = SetHelpers.Set;\nvar setAdd = SetHelpers.add;\nvar setHas = SetHelpers.has;\nvar objectKeys = getBuiltIn('Object', 'keys');\nvar push = uncurryThis([].push);\nvar thisBooleanValue = uncurryThis(true.valueOf);\nvar thisNumberValue = uncurryThis(1.0.valueOf);\nvar thisStringValue = uncurryThis(''.valueOf);\nvar thisTimeValue = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var set1 = new global.Set([7]);\n var set2 = structuredCloneImplementation(set1);\n var number = structuredCloneImplementation(Object(7));\n return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7;\n }) && structuredCloneImplementation;\n};\n\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n return !fails(function () {\n var error = new $Error();\n var test = structuredCloneImplementation({ a: error, b: error });\n return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n });\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3;\n });\n};\n\n// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+\n// FF<103 and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// FF103 can clone errors, but `.stack` of clone is an empty string\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762\n// FF104+ fixed it on usual errors, but not on DOMExceptions\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321\n// Chrome <102 returns `null` if cloned object contains multiple references to one error\n// https://bugs.chromium.org/p/v8/issues/detail?id=12542\n// NodeJS implementation can't clone DOMExceptions\n// https://github.com/nodejs/node/issues/41038\n// only FF103+ supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = global.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE\n || !checkErrorsCloning(nativeStructuredClone, Error)\n || !checkErrorsCloning(nativeStructuredClone, DOMException)\n || !checkNewErrorsCloningSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Chrome returns `null` if cloned object contains multiple references to one error\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor\n// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive\n// and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of those implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, action) {\n throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar tryNativeRestrictedStructuredClone = function (value, type) {\n if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type);\n return nativeRestrictedStructuredClone(value);\n};\n\nvar createDataTransfer = function () {\n var dataTransfer;\n try {\n dataTransfer = new global.DataTransfer();\n } catch (error) {\n try {\n dataTransfer = new global.ClipboardEvent('').clipboardData;\n } catch (error2) { /* empty */ }\n }\n return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null;\n};\n\nvar cloneBuffer = function (value, map, $type) {\n if (mapHas(map, value)) return mapGet(map, value);\n\n var type = $type || classof(value);\n var clone, length, options, source, target, i;\n\n if (type === 'SharedArrayBuffer') {\n if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value);\n // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n else clone = value;\n } else {\n var DataView = global.DataView;\n\n // `ArrayBuffer#slice` is not available in IE10\n // `ArrayBuffer#slice` and `DataView` are not available in old FF\n if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer');\n // detached buffers throws in `DataView` and `.slice`\n try {\n if (isCallable(value.slice) && !value.resizable) {\n clone = value.slice(0);\n } else {\n length = value.byteLength;\n options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined;\n // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe\n clone = new ArrayBuffer(length, options);\n source = new DataView(value);\n target = new DataView(clone);\n for (i = 0; i < length; i++) {\n target.setUint8(i, source.getUint8(i));\n }\n }\n } catch (error) {\n throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n }\n }\n\n mapSet(map, value, clone);\n\n return clone;\n};\n\nvar cloneView = function (value, type, offset, length, map) {\n var C = global[type];\n // in some old engines like Safari 9, typeof C is 'object'\n // on Uint8ClampedArray or some other constructors\n if (!isObject(C)) throwUnpolyfillable(type);\n return new C(cloneBuffer(value.buffer, map), offset, length);\n};\n\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value)) throwUncloneable('Symbol');\n if (!isObject(value)) return value;\n // effectively preserves circular references\n if (map) {\n if (mapHas(map, value)) return mapGet(map, value);\n } else map = new Map();\n\n var type = classof(value);\n var C, name, cloned, dataTransfer, i, length, keys, key;\n\n switch (type) {\n case 'Array':\n cloned = Array(lengthOfArrayLike(value));\n break;\n case 'Object':\n cloned = {};\n break;\n case 'Map':\n cloned = new Map();\n break;\n case 'Set':\n cloned = new Set();\n break;\n case 'RegExp':\n // in this block because of a Safari 14.1 bug\n // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n cloned = new RegExp(value.source, getRegExpFlags(value));\n break;\n case 'Error':\n name = value.name;\n switch (name) {\n case 'AggregateError':\n cloned = new (getBuiltIn(name))([]);\n break;\n case 'EvalError':\n case 'RangeError':\n case 'ReferenceError':\n case 'SuppressedError':\n case 'SyntaxError':\n case 'TypeError':\n case 'URIError':\n cloned = new (getBuiltIn(name))();\n break;\n case 'CompileError':\n case 'LinkError':\n case 'RuntimeError':\n cloned = new (getBuiltIn('WebAssembly', name))();\n break;\n default:\n cloned = new Error();\n }\n break;\n case 'DOMException':\n cloned = new DOMException(value.message, value.name);\n break;\n case 'ArrayBuffer':\n case 'SharedArrayBuffer':\n cloned = cloneBuffer(value, map, type);\n break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float16Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n length = type === 'DataView' ? value.byteLength : value.length;\n cloned = cloneView(value, type, value.byteOffset, length, map);\n break;\n case 'DOMQuad':\n try {\n cloned = new DOMQuad(\n structuredCloneInternal(value.p1, map),\n structuredCloneInternal(value.p2, map),\n structuredCloneInternal(value.p3, map),\n structuredCloneInternal(value.p4, map)\n );\n } catch (error) {\n cloned = tryNativeRestrictedStructuredClone(value, type);\n }\n break;\n case 'File':\n if (nativeRestrictedStructuredClone) try {\n cloned = nativeRestrictedStructuredClone(value);\n // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612\n if (classof(cloned) !== type) cloned = undefined;\n } catch (error) { /* empty */ }\n if (!cloned) try {\n cloned = new File([value], value.name, value);\n } catch (error) { /* empty */ }\n if (!cloned) throwUnpolyfillable(type);\n break;\n case 'FileList':\n dataTransfer = createDataTransfer();\n if (dataTransfer) {\n for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n dataTransfer.items.add(structuredCloneInternal(value[i], map));\n }\n cloned = dataTransfer.files;\n } else cloned = tryNativeRestrictedStructuredClone(value, type);\n break;\n case 'ImageData':\n // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n try {\n cloned = new ImageData(\n structuredCloneInternal(value.data, map),\n value.width,\n value.height,\n { colorSpace: value.colorSpace }\n );\n } catch (error) {\n cloned = tryNativeRestrictedStructuredClone(value, type);\n } break;\n default:\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else switch (type) {\n case 'BigInt':\n // can be a 3rd party polyfill\n cloned = Object(value.valueOf());\n break;\n case 'Boolean':\n cloned = Object(thisBooleanValue(value));\n break;\n case 'Number':\n cloned = Object(thisNumberValue(value));\n break;\n case 'String':\n cloned = Object(thisStringValue(value));\n break;\n case 'Date':\n cloned = new Date(thisTimeValue(value));\n break;\n case 'Blob':\n try {\n cloned = value.slice(0, value.size, value.type);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMPoint':\n case 'DOMPointReadOnly':\n C = global[type];\n try {\n cloned = C.fromPoint\n ? C.fromPoint(value)\n : new C(value.x, value.y, value.z, value.w);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMRect':\n case 'DOMRectReadOnly':\n C = global[type];\n try {\n cloned = C.fromRect\n ? C.fromRect(value)\n : new C(value.x, value.y, value.width, value.height);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMMatrix':\n case 'DOMMatrixReadOnly':\n C = global[type];\n try {\n cloned = C.fromMatrix\n ? C.fromMatrix(value)\n : new C(value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone)) throwUnpolyfillable(type);\n try {\n cloned = value.clone();\n } catch (error) {\n throwUncloneable(type);\n } break;\n case 'CropTarget':\n case 'CryptoKey':\n case 'FileSystemDirectoryHandle':\n case 'FileSystemFileHandle':\n case 'FileSystemHandle':\n case 'GPUCompilationInfo':\n case 'GPUCompilationMessage':\n case 'ImageBitmap':\n case 'RTCCertificate':\n case 'WebAssembly.Module':\n throwUnpolyfillable(type);\n // break omitted\n default:\n throwUncloneable(type);\n }\n }\n\n mapSet(map, value, cloned);\n\n switch (type) {\n case 'Array':\n case 'Object':\n keys = objectKeys(value);\n for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n key = keys[i];\n createProperty(cloned, key, structuredCloneInternal(value[key], map));\n } break;\n case 'Map':\n value.forEach(function (v, k) {\n mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n });\n break;\n case 'Set':\n value.forEach(function (v) {\n setAdd(cloned, structuredCloneInternal(v, map));\n });\n break;\n case 'Error':\n createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n if (hasOwn(value, 'cause')) {\n createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n }\n if (name === 'AggregateError') {\n cloned.errors = structuredCloneInternal(value.errors, map);\n } else if (name === 'SuppressedError') {\n cloned.error = structuredCloneInternal(value.error, map);\n cloned.suppressed = structuredCloneInternal(value.suppressed, map);\n } // break omitted\n case 'DOMException':\n if (ERROR_STACK_INSTALLABLE) {\n createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n }\n }\n\n return cloned;\n};\n\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence');\n\n var transfer = [];\n\n iterate(rawTransfer, function (value) {\n push(transfer, anObject(value));\n });\n\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var buffers = new Set();\n var value, type, C, transferred, canvas, context;\n\n while (i < length) {\n value = transfer[i++];\n\n type = classof(value);\n\n if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) {\n throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n }\n\n if (type === 'ArrayBuffer') {\n setAdd(buffers, value);\n continue;\n }\n\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n transferred = nativeStructuredClone(value, { transfer: [value] });\n } else switch (type) {\n case 'ImageBitmap':\n C = global.OffscreenCanvas;\n if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n canvas = new C(value.width, value.height);\n context = canvas.getContext('bitmaprenderer');\n context.transferFromImageBitmap(value);\n transferred = canvas.transferToImageBitmap();\n } catch (error) { /* empty */ }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n transferred = value.clone();\n value.close();\n } catch (error) { /* empty */ }\n break;\n case 'MediaSourceHandle':\n case 'MessagePort':\n case 'OffscreenCanvas':\n case 'ReadableStream':\n case 'TransformStream':\n case 'WritableStream':\n throwUnpolyfillable(type, TRANSFERRING);\n }\n\n if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n\n mapSet(map, value, transferred);\n }\n\n return buffers;\n};\n\nvar detachBuffers = function (buffers) {\n setIterate(buffers, function (buffer) {\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n nativeRestrictedStructuredClone(buffer, { transfer: [buffer] });\n } else if (isCallable(buffer.transfer)) {\n buffer.transfer();\n } else if (detachTransferable) {\n detachTransferable(buffer);\n } else {\n throwUnpolyfillable('ArrayBuffer', TRANSFERRING);\n }\n });\n};\n\n// `structuredClone` method\n// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone\n$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, {\n structuredClone: function structuredClone(value /* , { transfer } */) {\n var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;\n var transfer = options ? options.transfer : undefined;\n var map, buffers;\n\n if (transfer !== undefined) {\n map = new Map();\n buffers = tryToTransfer(transfer, map);\n }\n\n var clone = structuredCloneInternal(value, map);\n\n // since of an issue with cloning views of transferred buffers, we a forced to detach them later\n // https://github.com/zloirock/core-js/issues/1265\n if (buffers) detachBuffers(buffers);\n\n return clone;\n }\n});\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $delete(this, name);\n var entries = [];\n forEach(this, function (v, k) { // also validates `this`\n push(entries, { key: k, value: v });\n });\n validateArgumentsLength(length, 1);\n var key = toString(name);\n var value = toString($value);\n var index = 0;\n var dindex = 0;\n var found = false;\n var entriesLength = entries.length;\n var entry;\n while (index < entriesLength) {\n entry = entries[index++];\n if (found || entry.key === key) {\n found = true;\n $delete(this, entry.key);\n } else dindex++;\n }\n while (dindex < entriesLength) {\n entry = entries[dindex++];\n if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n }\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $has(this, name);\n var values = getAll(this, name); // also validates `this`\n validateArgumentsLength(length, 1);\n var value = toString($value);\n var index = 0;\n while (index < values.length) {\n if (values[index++] === value) return true;\n } return false;\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n var count = 0;\n forEach(this, function () { count++; });\n return count;\n },\n configurable: true,\n enumerable: true\n });\n}\n","import { fontSizeRemDivision } from \"../../consts/FontSizeRemDivision.const\";\r\n\r\nexport function convertPixelToRem(pixelValue: number): number {\r\n return pixelValue / fontSizeRemDivision;\r\n}\r\n","import {browserBaseFontSize} from \"./BrowserBaseFontSize.const\";\r\nimport {baseFontSizePercentage} from \"./BaseFontSizePercentage.const\";\r\n\r\nexport const fontSizeRemDivision = browserBaseFontSize * (baseFontSizePercentage / 100);\r\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// If has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n let htmlX = 0;\n let htmlY = 0;\n if (documentElement && !isOffsetParentAnElement && !isFixed) {\n const htmlRect = documentElement.getBoundingClientRect();\n htmlY = htmlRect.top + scroll.scrollTop;\n htmlX = htmlRect.left + scroll.scrollLeft -\n // RTL scrollbar.\n getWindowScrollBarX(documentElement, htmlRect);\n }\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlX;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlY;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the element as the offsetParent if it's non-static,\n // while Chrome and Safari return the element. The element must\n // be used to perform the correct calculations even if the element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle